From 2a27cee2cad0209188c43272c6fa03f96abad302 Mon Sep 17 00:00:00 2001 From: Punya Biswal Date: Wed, 28 Sep 2022 12:44:20 -0400 Subject: [PATCH] Squashed 'third_party/googleapis/' changes from 853e8a29c..6954c4da0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 6954c4da0 chore: put Locations mixin back 4689c7380 chore: override API mixins when needed c89757be1 chore(ruby): Update generator to 0.16.1 f252e11bd fix!: Fix resource annotations for Cloud Deploy to use common resource name for locations e17b31e1e chore: regenerate API index 4f945ca04 feat: publish Google Cloud's Enterprise Knowledge Graph service 844d0f793 feat: Add routing annotations f16389386 chore: regenerate API index 59a30fb00 feat: Publish new JobRun resource and associated methods for Google Cloud Deploy 2e19de1a9 chore: updated docs and code sturcture for Dataproc metric configuration 7d8a5ab06 docs: document max number (50) of DeliveryVehicle.Attributes ca00d4af9 chore: regenerate API index 695134be0 feat: Add an enum value for raw locations from Apple platforms 01d4201e2 chore: regenerate API index 080b9f75d feat: added initial version for discovery engine v1beta f51a7fd25 chore: regenerate API index 72f0faae3 feat: add model_source_info to Model in aiplatform v1beta1 model.proto aea0b4dc7 chore: regenerate API index 7f579ee59 docs: fix docstring formatting 1dc77cf75 chore: regenerate API index 0c4e682e3 feat: publish the RequestStats proto a7f38907a feat: add model_source_info to Model in aiplatform v1 model.proto 174b42d81 chore: revert removal of LRO mixin 652c4c1c8 fix: revert removal of LRO mixin 1e836f9a3 chore: revert removal of LRO mixin fafd03f8d feat: release SensitiveAction Cloud Logging payload to v1 210422e82 fix!: temporarily removed language rules from Speech-to-Text V2 API BUILD.bazel file 6abb2a269 chore: regenerate API index 65376f43d feat!: remove ListApplicablePolicies 0ba39988a feat!: removing protos from the wrong location 8933d4b4a feat: rename nodejs analyticshub library package name b17c252c6 feat: add finding stream proto for cloud logging d07267f1f build: add cross-API dependency for Node.js library b4e57a547 chore: regenerate API index b4f7b1eab feat: add new PhotoSequence resource and RPCs feat: add gps_record_timestamp_unix_epoch field to Pose resource 4adc478b2 feat: added support for `AppliedLabelChange` b7c271c01 chore: remove duplicated IAM mixin for Node.js library 30517fdc3 feat: add support for Dataproc metric configuration 7a1297363 test: use fully qualified request type name in tests df791ce27 chore: update gapic-generator-python-1.4.4 with unit tests generation fixes 532289228 fix: Ensure exceptions have the correct cause c3183fef5 chore: regenerate API index 044a15c14 feat: Add support for V1 and V2 classification models for the V1Beta2 API bd28cfb5d feat: Introduce an `optional_entry` field to make it possible to conditionally set a map or message field 05b99f982 feat: Add support for V1 and V2 classification models for the V1 API eda7bc066 feat: add finding cloud logs 15e7e23c0 chore: regenerate API index af65a1984 feat: add timestamp_outside_retention_rows_count to ImportFeatureValuesResponse and ImportFeatureValuesOperationMetadata in aiplatform v1 featurestore_service.proto feat: add RemoveContextChildren rpc to aiplatform v1 metadata_service.proto feat: add order_by to ListArtifactsRequest, ListContextsRequest, and ListExecutionsRequest in aiplatform v1 metadata_service.proto 24392ec4b chore: regenerate API index dbc83bd75 feat: add timestamp_outside_retention_rows_count to ImportFeatureValuesResponse and ImportFeatureValuesOperationMetadata in aiplatform v1beta1 featurestore_service.proto feat: add RemoveContextChildren rpc to aiplatform v1beta1 metadata_service.proto feat: add order_by to ListArtifactsRequest, ListContextsRequest, and ListExecutionsRequest in aiplatform v1beta1 metadata_service.proto feat: add InputArtifact to RuntimeConfig in aiplatform v1beta1 pipeline_job.proto feat: add read_mask to ListPipelineJobsRequest in aiplatform v1beta1 pipeline_service.proto feat: add TransferLearningConfig in aiplatform v1beta1 study.proto 4c4a9a261 chore: update gapic-generator-python to 1.4.3 with test fixes 7428dad9f feat: Add client library support for AssetService v1 SavedQuery APIs Committer: jeffreyai@ a3897f631 chore: regenerate API index bb4d7f494 feat: added Speech-to-Text V2 API proto 9a3dd7a18 feat: Update google-cloud-compute-v1 dependency to version 1.7 or later 8e0b16c2f docs: Add documentation for Cloud Healthcare API Stackdriver Logging Protos dfd68f74d docs: Remove unnecessary comment a5a882927 feat: added High Throughput Logging API for Google Kubernetes Engine docs: ReservationAffinity key field docs incorrect docs: missing period in description for min CPU platform b6c0e8abb docs: document explicitly quotes in attribute filter 1a176ac32 chore(ruby): Configure builds for BigQuery DataPolicies client 9212f73b8 feat: added High Throughput Logging API for Google Kubernetes Engine docs: ReservationAffinity key field docs incorrect docs: missing period in description for min CPU platform e3ff5d08f chore: regenerate API index a0a740c6e feat!: replace java_outer_classname option with use_java_stubby_library, add DisableServiceAccountKey and EnableServiceAccountKey, and update comments f90b329a7 feat: Add Secure Boot support to TPU v2alpha1 API fdf549580 chore: regenerate API index 39c28bfb6 feat: add deleteFeatureValues in aiplatform v1beta1 featurestore_service.proto 8b59cdf13 chore: regenerate API index 73f12f34f fix: Add proto options for Ruby, PHP and C# API client libraries a0093c4b6 feat: update package_name of nodejs library 5a9ee4d5d feat: enable REST transport for Python Preview clients 469904601 chore: regenerate API index 69c840ef9 feat: Add custom instance config operations 0487c63ac chore: regenerate API index 63674ebb0 feat: this is the first public release of the client libraries for Google Cloud's Document Warehouse service c31193a8e chore: regenerate API index 79bca74fe feat: add c#, php and pyhton language options to DataPolicy proto 8f81accbe chore: Explicitly set transport to grpc for python targets 0647eab53 docs: Fix the main client gem name listed in the readme d5d35e035 chore: use gapic-generator-typescript v2.17.0 c4dd79fe3 chore: regenerate API index 63c3007b2 feat: Update Compute Engine API to revision 20220831 (#729) 862f99fac feat: Added parent display name i.e. source display name for a finding as one of the finding attributes cec733349 chore: update to gapic-generator-python-1.4.2 (REST transport test fixes) 2d8030c41 chore(ruby): Configure Ruby client for PublicCA V1beta1 346e2f2a1 docs: update comments for image annotator OCR models a217609e0 chore: regenerate API index e210283d7 feat: Publish CBT deletion_protection field in Table, UpdateTableRequest, and UpdateTable API in **stable** proto to external customers 450fbd04c chore: regenerate API index e544df581 fix!: Revert add custom instance config operations (change broke client libraries; reverting before any are released) e2bb76c68 chore: regenerate API index 544004898 feat: Add custom instance config operations 565a55088 fix: integrate gapic-generator-python-1.4.1 and enable more py_test targets 9d1fbd0b8 chore: regenerate API index 46cfc4c8d feat: add proto annotation for non-ascii field mapping 0cac79bcf fix: Fix resource name configuration for graph API 18cb30d03 fix: Fix resource name for remoteworkers API ee05df981 fix: Fix recommendationengine resource name configuration 2c489b49f chore: regenerate API index 76c3b846f feat: generate BigQuery Analytics Hub API v1 client with renamed package name 4c6e7ec5b chore: regenerate API index a8c6c7cf8 feat: add firestore aggregation query apis to the stable googleapis branch b174c584f feat: published Cloud IDS Service v1 Logging 8167badf3 fix: remove 'cloud' name from package names 3a558759d chore: regenerate API index 56f204922 feat: add default retry configuration feat: add DeleteTransferJob operation feat: add AWS S3 compatible data source 38e8b447d chore: revert enable REST transport support for python media-translation 49dd2981f chore: regenerate API index 7b2540a2e feat: add Address Validation API f0e2be46a feat: Enable REST transport support for Python analytics-admin, media-translation and dataflow clients de76e0319 chore: fix typos fa86bc39f fix: Fix borinssl build failure on gcc12 89404eeb9 feat: bump gapic-generator-python to version 1.4.0 1cf9407d5 feat: add location to WriteStream and add WriteStreamView support 855b74d20 chore: use gapic-generator-python 1.3.1 4356ba6e8 feat: added NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN to ScanRunWarningTrace.Code fix: Added fix to return a list of the endpoints that encountered errors during crawl, along with the specific error message when the starting URL returns Http errors fix: GoogleAccount is deprecated 88f2ea3f5 chore(bazel): Update WORKSPACE files for rules_gapic, gax_java, generator_java versions 332ecf599 feat: Bump gapic-generator-python version to 1.3.0 58cc70d22 docs: Fix the main client gem name listed in the readme 725381dc1 chore: remove obsolete service config files 113921791 chore: Update Firestore Bazel files to refer to correct service config YAML files ab6b87cfe chore(ruby): Update out of date auth documentation 6d2514a70 chore: regenerate API index 62995d04b feat: add Deidentify action 2e7976e32 chore(bazel): update rules_gapic to v0.16.0 880d23085 chore: regenerate API index 151329409 feat: release Model Services to v2beta version feat: release BatchRemoveCatalogAttributes API to v2beta version feat: release ExactSearchableOption for attribute config to v2beta version feat: release diversity_type for ServingConfig in v2beta version feat: add local inventories info to the Product resource feat: deprecate unused page_token field of PredictionRequest in v2beta version feat: deprecate unused facet_spec field of Control in v2beta version docs: improve documentation of SearchRequest for Search Personalization docs: improve documentation for Fullfillment and Inventory API in ProductService docs: minor documentation fixes and improvements 48b9dec92 chore(bazel): update rules_gapic to v0.16.0 61f75b4f6 feat: Add compliant_but_disallowed_services field to the v1beta1 Workload proto 45a3d7a08 chore(bazel): update Go generator to v0.32.1 a34ef95fb docs: clarified values for the CreateExternalAccountKeyRequest proto fields b47cf72d1 docs: Publish Certificate Manager logging proto for documentation fff3f7302 fix: mark service_account_email as deprecated docs: removing comment from a deprecated field 0cb849945 docs: clarified wording around route-related fields e1b54cd79 fix: additional error codes added to service configuration for retry 42c571c1a chore(ruby): Configure build rules for IAM V2 Ruby clients 2de0a6b0f chore: Update C# generator to 1.4.8 dc85e8a11 feat: Updated dependency on google-cloud-retail-v2 to gem version 0.11 or later 86926e5c7 chore: regenerate API index 84950242f feat!: update BigQuery Analytics Hub API v1beta1 client BREAKING CHANGE: refresh current dataexchange/v1beta1/* directory to include recent change in protos. Removed common directory and use local enum Category fix!: refactor references to Category message docs: improve proto documentation. 4cb1497a1 chore: regenerate API index 86d9729e8 feat: add bigquery datapolicies v1beta1 API ea847a1bd chore(python): prepare for release of the iam/v2 python client c66871531 docs: clean up Unicode Normalization Form C references 5622895f7 chore: regenerate API index ed22b1ba7 fix!: remove decommissioned storage v1 RPCs 352756699 fix: use _gaxModule when accessing gax for bundling 4fcb07884 chore: regenerate API index 7a8b9881f docs: Publish Scan Run logging proto for documentation 284389e2b feat: add model_monitoring_stats_anomalies,model_monitoring_status to BatchPredictionJob in aiplatform v1beta1 batch_prediction_job.proto dabbb3a0b docs: update documentation for RoutingPreference to better describe behaviors dab43ab5c chore: regenerate API index dac66f656 feat: Create the public IAM Deny v2 API d4a236754 feat: accept google-gax instance as a parameter 87ba206e5 docs: update comment for Waypoint.side_of_road to accurately describe functionality 343f52cd3 feat: Adds auto-generated CL for googleapis for jsonb b8da8792e chore: regenerate API index f9382d1a8 feat: Add the edgecontainer v1 api 2593ea200 docs: update filter comment now that attribute query restrictions have been lifted 8d6fdc77e build: configuration files update d1b1556a6 docs: added Cloud Dataproc and Secret Manager to the list of supported services bbc0c85e0 chore: regenerate API index 402c5bd15 feat: add new toll passes feat!: add optional tags to proto3 index based fields to enable checking for field presence 586b2aabe chore: regenerate API index 748c2d67e feat: initial client library implementation for Timeseries Insights API eb382eda1 feat: add read_mask to ListPipelineJobsRequest in aiplatform v1 pipeline_service feat: add input_artifacts to PipelineJob.runtime_config in aiplatform v1 pipeline_job 97fa02d47 feat: environment variables, disk interfaces 10d4b8662 feat: environment variables, disk interfaces 842682e67 build: fix artifact name for bigquery migration c7a52f4e9 feat: serviceAccountKeyName, serviceAccountDelegationInfo, and principalSubject attributes added to the existing access attribute. These new attributes provide additional context about the principals that are associated with the finding 15b5fb348 build: fix artifact name for apigee registry faa3bdad6 chore: regenerate API index 32d2f9bab feat: Updated v1beta1 analyzeWorkloadMove documentation 7c3a38d62 chore: update count up_to field type in aggregation queries c17c5a6c2 chore: update count up_to field type in aggregation queries 8ec8bde9e chore: regenerate API index a887434dd feat: Adding database access information, such as queries field to a finding. A database may be a sub-resource of an instance (as in the case of CloudSQL instances or Cloud Spanner instances), or the database instance itself f3e6b9f42 chore: regenerate API index 441339af7 feat: added support for BigQuery destination and PostgreSQL source types 67e514e43 chore: regenerate API index e4fe55a80 feat: add UpsertDatapoints and RemoveDatapoints rpcs to IndexService in aiplatform v1 index_service.proto 95e44aeec chore: regenerate API index 624cc451f feat: add UpsertDatapoints and RemoveDatapoints rpcs to IndexService in aiplatform v1beta1 index_service.proto ebed4ae5c chore: regenerate API index 17b39f10e feat: Adds support for configuring scaling settings fcd2684cd chore: regenerate API index e9bcb6c5e feat: release Control and ServingConfig serivces to v2 version feat: release AttributesConfig APIs to v2 version feat: release CompletionConfig APIs to v2 version feat: add local inventories info to the Product resource docs: Improved documentation for Fullfillment and Inventory API in ProductService docs: minor documentation format and typo fixes 49de9d59d chore(googleads): Update C# targets to use GAX v4 dab9e5481 chore: regenerate API index 65b91e667 docs: Updating comments chore: added LRO to API list 873ab4562 fix: better support for fallback mode b965a2549 feat: added support for `force` field for API and API version deletion docs: updated proto comments to align with the public documentation ed55a83de chore: regenerate API index cfa1b3782 chore: remove unused proto imports 6007e17f1 chore(python): fix warehouse-package-name for secretmanager v1 07c3f5015 feat: Adding uris to indicator of compromise (IOC) field b775b02b1 chore(bazel): Update gapic-generator-csharp to 1.4.7 chore(bazel): Update gapic-generator-csharp-gaxv3 to 1.3.20 a58a6d7e1 chore: regenerate API index fb22ccd6c feat!: Update the public IAM Deny v2beta API BREAKING CHANGE: remove google.api.resource_reference annotations cda296bc1 fix: specify geo Viewport dependency 2032717c3 chore: regenerate API index 154b4102b feat: Add export config protos to API 260cd02ef fix: set longer polling timeouts for filestore RestoreInstance 62ae1af49 feat: allow users to set Apache Avro output format options through avro_serialization_options param in TableReadOptions message Through AvroSerializationOptions, users can set enable_display_name_attribute, which populates displayName for every avro field with the original column name Improved documentation for selected_fields, added example for clarity. 9086de870 chore: regenerate API index 3b3699b91 feat(googleads): Updated protos and build files for Google Ads API v11 d21399d54 chore: Specify the rest transport for C# (again) 5f5830157 chore(python): prepare for the v2 release of google/api/apikeys ff71e3846 chore: Update C# GAPIC generator version 84ed8f9a2 chore(ruby): Configure build rules for Ruby ApiKeys clients 37e782270 chore: regenerate API index d0237ea8f feat: Added field_mask to ProcessRequest object in document_processor_service.proto feat: Added parent_ids to Revision object in document.proto feat: Added integer_values, float_values and non_present to Entity object in document.proto feat: Added corrected_key_text, correct_value_text to FormField object in document.proto feat: Added OperationMetadata resource feat: Added Barcode support feat!: Added Processor Management and Processor Version support to v1 library 4bda29977 feat: Add client library support for AssetService v1 BatchGetEffectiveIamPolicies API Committer: haochunzhang@ b7cb84f5d Revert "chore: Specify rest transport for C# Compute GAPIC library (#730)" (#731) b1f76aafc chore: Specify rest transport for C# Compute GAPIC library (#730) e6e875a45 chore: use gapic-generator-python 1.2.0 ee4650b68 chore: regenerate API index 0e4fd8a45 feat: Created client libraries for Maps Platform Datasets API ad7ddfa74 chore: regenerate API index 0dd98150b feat: add WriteFeatureValues in aiplatform v1beta1 featurestore_online_service.proto a50718e2a chore: regenerate API index a23f8c6b3 feat: Public protos for Cloud Connectors API Based on: https://cloud.google.com/apigee/docs/reference/apis/connectors/rest be827beeb chore: regenerate API index 31f3dd8c0 feat: publish apikeys/v2 API a412f6802 chore: regenerate API index 80d630f73 feat: Release of query system Committer: lvv@ c2674a345 docs: fix minor docstring formatting 2bafaf1c1 feat: Add MySQL dialect to bigquerymigration v2 client library 164f1fa99 chore: regenerate API index 19bf693ab feat: Added field_mask to ProcessRequest object in document_processor_service.proto feat: Added parent_ids to Revision object in document.proto feat: Added integer_values, float_values and non_present to Entity object in document.proto feat: Added corrected_key_text, correct_value_text to FormField object in document.proto feat: Added OperationMetadata resource feat!: Added Processor Management and Processor Version support to v1 library d0de36997 chore: regenerate API index 63c73fb06 feat: Add client library support for AssetService v1 BatchGetEffectiveIamPolicies API Committer: haochunzhang@ d89cf3d2b fix: set longer polling timeouts for filestore UpdateInstance a6aca40e0 docs: refer to request field by correct name: routing_preference 9f7c0ffda feat: Added support for evaluating missing data in AlertPolicy f91fc4650 feat: Publish cloudsetup.googleapis.com/complete_deployment log stream payload proto 61614d488 chore: regenerate API index 80bf61314 feat: add `RunAccessReport` method to the Admin API v1alpha 45b340993 chore: regenerate API index 2f00b9a06 feat: add `GetAudience`, 'ListAudience', 'CreateAudience', 'UpdateAudience', 'ArchiveAudience' methods to the Admin API v1alpha feat: add `GetAttributionSettings`, `UpdateAttributionSettings` methods to the Admin API v1alpha 801d3303b feat: Publish Storage Transfer logging proto for documentation ad64930ea feat: Add TextDetectionParams.advanced_ocr_options 60a0fa73c feat: Update Compute Engine API to revision 20220720 (#723) 2206a0f35 feat: add content of IP Utilization insights to Stackdriver logging proto for Network Analyzer 072a9467b chore: regenerate API index 73c7cd836 feat!: Remove v1p4beta1 API protos. v1p4beta1 has been deprecated and announced through MSA. This is the cleanup c77c06724 docs: BinaryAuthorization.enabled field is marked as deprecated 901a2a2b9 docs: BinaryAuthorization.enabled field is marked as deprecated 34f273036 chore: regenerate API index c30c9ccfd feat: new model service to manage recommendation models feat: support case insensitive match on search facets feat: allow disabling spell check in search requests feat: allow adding labels in search requests feat: allow returning min/max values on search numeric facets feat: allow using serving configs as an alias of placements feat: allow enabling recommendation filtering on custom attributes feat: return output BigQuery table on product / event export response feat: allow skiping default branch protection when doing product full import docs: keep the API doc up-to-date with recent changes d7f756815 chore: add py_test target for compute (#728) 9f82a84cc fix!: fix datacatalog resource name config 75905af5a chore: deprecate the AwsCrossAccountRole property 0b60828b0 chore: regenerate API index 139f56eef feat: support case insensitive match on search facets feat: allow to return min/max values on search numeric facets feat: allow to use serving configs as an alias of placements docs: keep the API doc up-to-date with recent changes c52559c85 feat: Annotate RPCs with request routing information 2e0cfb95f chore: regenerate API index d6bce0ee5 feat: support case insensitive match on search facets feat: allow disabling spell check in search requests feat: allow adding labels in search requests feat: allow returning min/max values on search numeric facets feat: allow using serving configs as an alias of placements feat: allow enabling recommendation filtering on custom attributes feat: return output BigQuery table on product / event export response docs: keep the API doc up-to-date with recent changes 37aaa1e56 feat: making network arg optional in aiplatform v1 custom_job.proto feat: added SHARED_RESOURCES enum to aiplatform v1 model.proto docs: doc edits to aiplatform v1 dataset_service.proto, job_service.proto, model_service.proto, pipeline_service.proto, saved_query.proto, study.proto, types.proto efbe03db2 feat: making network arg optional in aiplatform v1beta1 custom_job.proto feat: DeploymentResourcePool and DeployementResourcePoolService added to aiplatform v1beta1 model.proto (cl/463147866) docs: doc edits to aiplatform v1beta1 job_service.proto, model_service.proto, pipeline_service.proto, saved_query.proto, study.proto, types.proto 378a63c8b chore(bazel): configure stand-alone LongRunning client for PHP 03b3402e6 chore: regenerate API index e47c0cdef docs: Updating comments chore:remove LRO to API list abe15226b fix: Add py_test targets 1d31f2fbe fix!: revert bad publishing 080f9b60d fix!: revert bad publishing d33b3fa08 docs: clarify size limitations for AppendRowsRequest chore: add preferred_min_stream_count to CreateReadSessionRequest chore: add write_stream to AppendRowsResponse e8f5319d9 fix: @bazel_tools//build_defs/pkg:pkg.bzl points to the deprecated, Bazel internal version of pkg_tar. This change migrates users of that version to the supported, public version in rules_pkg 643311525 chore(ruby): Regenerate using microgenerator 0.15.2 8c5066012 feat: add new load balancer insights to Stackdriver logging proto for Network Analyzer c5495962f chore(bazel): update gapic-generator-php to v1.5.0 fe833ddc7 feat: Add service_account_id output field to CloudSQL properties ea229665f docs: Remove a broken link 0381249b7 chore(ruby): Regenerate using microgenerator 0.15.1 8229ab4d3 feat: Publish new fields 1805fc2b0 docs: updated some method comments and added an explicit note that DetectIntentRequest's text input is limited by 256 characters 7152bf2b3 chore: update C# generator to 1.4.4 282d3d736 chore: regenerate API index 5261728f2 feat: Release API version v1beta1 (no changes to v1alpha2) eeacaabc3 docs: added an explicit note that DetectIntentRequest's text input is limited by 256 characters 039daa293 chore: Update networksecurity v1 BUILD.bazel for python f454c15b4 chore: regenerate API index 627646187 feat: add DeploymentResourcePool in aiplatform v1beta1 deployment_resource_pool.proto feat: add DeploymentResourcePoolService in aiplatform v1beta1 deployment_resource_pool_service.proto feat: add SHARED_RESOURCES to DeploymentResourcesType in aiplatform v1beta1 model.proto fbe2cfc2a chore(ruby): Configure Ruby Bazel builds for Functions V2 client 52130a9c3 chore(bazel): update protobuf to v3.21.3 0f38696be fix: target new spanner db admin service config de1ace47a docs: update comment to refer to to correct_default value for RoutingPreference.ROUTING_PREFERENCE_UNSPECIFIED 55f082c00 chore: regenerate API index b9cbfce17 feat: Add "or" query support (only in the preview API surface) docs: Clarify wording around default database_id usage 0d6261732 chore: regenerate API index 9213efa96 docs: update the comments of various networksecurity resources fix!: fix annotation of parent in Create*Request fb78f5b6b chore: regenerate API index dd2b0d26b feat: Added container field to findings attributes feat: Added kubernetes field to findings attribute. This field is populated only when the container is a kubernetes cluster explicitly 19cfbec38 chore(bazel): update Go gapic generator to v0.31.2 ff8159ec8 fix: fixes for routing headers 621192851 chore: regenerate API index 4f072bff7 feat: Add ListDatabaseRoles API to support role based access control 45e4f3084 chore: regenerate API index d8e37bb04 chore(googleads)!: remove protos for v8, which has sunset 90c21c04d chore: regenerate API index 2938d54a0 feat: Add routing annotations 0b24d03e9 feat: add a DeploymentResourcePool API resource_definition feat: add shared_resources for supported prediction_resources 53377c165 chore: regenerate API index 215f812fb feat: Rename product feat: API updates 16e7d1081 fix: specify geo Viewport dependency 8a417dea0 docs: Publish identitytoolkit request log proto 8a79ffed4 chore: regenerate API index 6aee59cd9 feat: Updated the method signature of analyzeWorkloadMove for v1beta API to accept project as source. AnalyzeWorkloadMove now also returns information about org policy differences between the project and target folder d108c5e55 feat: Updated the method signature of analyzeWorkloadMove for v1beta API 4753861df chore: regenerate API index 9af1b9b02 feat: Add IAM support for Explore content APIs feat: Add support for custom container for Task feat: Add support for cross project for Task feat: Add support for custom encryption key to be used for encrypt data on the PDs associated with the VMs in your Dataproc cluster for Task feat: Add support for Latest job in Task resource feat: User mode filter in Explore list sessions API feat: Support logging sampled file paths per partition to Cloud logging for Discovery event d3dbd87a2 chore(bazel): update Go generator version to v0.31.1 e523a17ea feat: added support for BatchCreateTasks preview fdb523df9 feat: add new deliver targets and drop causes for Private Service Connect 6f933fe5e feat: add fields to support Cloud functions b84cdd829 docs: update several comments 3f2a9986c feat: add destination egress location field to the probing details d99bd0cc9 feat: add new abort cause to the abort info c6dddefb8 feat: add source telemetry agent URI to the endpoint info 2fc4a7e6b feat: add new next hop type to the route info 46f2598ea feat: Add Presto dialect to bigquerymigration v2 client library 52cae2e8b chore: regenerate API index c501985a4 feat: added support for BatchCreateTasks preview d87a1707f chore: regenerate API index e7edbb9c3 feat: publish cloud networksecurity v1 5688bdb18 chore(python): prepare for the v2beta release of iam python client 898fcea96 feat: InfoType categories were added to built-in infoTypes 5c9007438 feat: add fields for tracking reachable status of resources in list methods feat: add the failure_reason field to workflow invocation actions 5813dcf3c feat: add new abort cause and new route next hop type f86f3a2eb chore(bazel): move rules_gapic up in WORKSPACE loading order 220b13e33 chore: internal change d684988bc chore: regenerate API index c894ed4e6 feat: Add traffic director API to cloud network services v1 client library feat: Add Service Directory Service API to cloud network services v1 client library 21ef8485a fix: update rules_go, grpc, gazelle and python toolchain to latest versions to fix various build issues 53a72100f feat: Added ISXR Logging 4d8b76dbf chore: regenerate API index f910a48aa feat: add Cloud Commerce Consumer Procurement API e0745546d chore(python): prepare for the v1 release of beyondcorp client libraries 7426af5f0 build(node): correct artifact name for npm 2e0497d3c Synchronize new proto/yaml changes. ed9ca3b26 chore: remove unused imports b1a966d50 chore: regenerate API index 24f073654 fix!: Removed resource definition of Compute API resources and incorrect resource references that used them ccb6738b4 chore: regenerate API index a07608440 feat: provide new parameter cx_current_page, the unique identifier of the CX page to override the `current_page` in the session. Add filter field to ListAnswerRecordsRequest. And add AudioInput to analysis requests docs: add more meaningful comments 9284ce6b4 chore: regenerate API index 2844793f7 feat: generating GAPIC libraries for Google Cloud Functions v2beta d7f3a38b0 chore: regenerate API index 1338a6ba9 feat: add response_params proto to clients 4f1be9926 chore: use gapic-generator-python 1.1.1 fac140050 build(node): correct artifact name for npm 6992972ac chore(python): prepare for the v1 release of google/cloud/paymentgateway/issuerswitch 7fc003279 build(node): correct artifact name for npm 99fa3a50a fix: Upgrade `rules_python` to 0.9.0 e0d010651 chore(python): prepare for the v1 release of google/cloud/gkemulticloud 207bf593d feat: Adding two new fields for Instance create_time and update_time ae6501404 fix: proper camel case for sequences of capital letters 01325bd38 chore: regenerate API index 7fdec6295 feat: Added contacts field to findings attributes, specifying Essential Contacts defined at org, folder or project level within a GCP org feat: Added process signature fields to the indicator attribute that helps surface multiple types of signature defined IOCs 1d3a23baa chore: regenerate API index 2bf9d8d49 feat: deprecated the filter field and add resource_definition docs: add more meaningful comments b574c0bc8 chore: remove unused protos ff1d8c034 chore: regenerate API index 6ef569eaf feat: release the Google Analytics Admin API V1 Beta 9b52d26b4 feat!: remove unused filter field BREAKING CHANGE: Remove unused filter field from alpha2 version of API before release 8d5b1a31f chore: regenerate API index c51f2edf5 feat: add support to modify kubelet pod pid limit in node system configuration feat: support spot VM feat: support Tier 1 bandwidth feat: update support for node pool labels, taints and network tags feat: add Binauthz Evaluation mode support to GKE Classic feat: add GKE Identity Service feat: add network tags to autopilot cluster feat: support enabling Confidential Nodes in the node pool feat: support node pool blue-green upgrade feat: add Location Policy API feat: support GPU timesharing feat: add managed prometheus feature 7cfa071be chore: regenerate API index 61ea2e50a feat: add cgroup mode to node system config feat: add support to modify kubelet pod pid limit in node system configuration feat: support Tier 1 bandwidth feat: support IPV6 Dual Stack (stack_type) feat: add Binauthz Evaluation mode support to GKE Classic feat: support GKE Cost Allocations feat: add network tags to autopilot cluster feat: add protect config audit api feat: support enabling Confidential Nodes in the node pool feat: support node pool blue-green upgrade feat: add Location Policy API feat: support GPU timesharing 503fcb19b docs: minor formatting fixes 917762b1d docs: clarify comment on update_time 523fdaf19 feat: ITAR June Preview Launch 1e6c63478 build: correct artifact name for npm 181b8566f fix(gaming): publish v1beta LRO HTTP rules 913b9bd72 docs: improve comments for protos e63fcd7ad fix(privateca): publish v1beta1 LRO HTTP rules d1c01713e feat: Update minimum Ruby version to 2.6 e5507fc82 fix: Revert Enable REST transport for Cloud Bigtable 98698f55a chore: regenerate API index 203c38ea6 feat: add options for library generation in C#, PHP and Ruby docs: clarify possible transaction types and API type enum values in several APIs 9b7d76e0c docs: corrected the Dataflow job name regex c425ac6db docs: clarify descriptions of the AdvancedSettings and WebhookRequest data types 79287704c chore: regenerate API index 4b15b5889 feat: add Payment Gateway issuer switch APIs 3023962ea chore: regenerate API index 67f6d0b27 build: library of v4 jobs onboarded to SAM 42a791157 chore(deps): add dependencies on date.proto, dayofweek.proto, and any.proto b9b85181f chore(deps): add dependency on duration.proto 220f5d802 fix: Set the transport of grafeas back to grpc only c90fadf00 chore: regenerate API index 6ff6b4939 build: library of v4 jobs onboarded to SAM 9f4d5b69a chore: regenerate API index 2b0fe3bef feat: Cloud Bigtable Undelete Table service and message proto files 982bb695a feat: Add storage_utilization_gib_per_node to Autoscaling target a4761d585 feat: add C++ library rules for the Live Stream API f37528b2c fix: set pubsublite back to grpc-only instead of grpc+rest 917e7f21c fix: update gapic-generator-java with mock service generation fixes f46dc249e chore: regenerate API index c13c88b19 feat: Implement configurable recommenders and update .bazel files dfefc95a2 feat: introduce a projects_missing_permissions field in the AbortInfo structure 8ff130bc8 fix: Modify client lib retry policy for CreateWriteStream with longer backoff, more error code and longer overall time cc92ed16b chore: regenerate API index ff0518928 feat: Publish public APIs for Routes c93602d4a feat: Add support for default_location field in CodeCompilationConfig feat: Support recent open-source additions: partition_expiration_days, require_partition_filter, and additional_options fields for relations in API feat: Introduce MATERIALIZED_VIEW relation type feat: Add CANCELING state for workflow invocations feat: Expose sql_script contents in WorkflowInvocationActions 88fd18d9d feat: support regapic LRO fa16a4a3d chore: regenerate API index 88f397321 feat: add ListSavedQueries rpc to aiplatform v1 dataset_service.proto feat: add saved_query.proto to aiplatform v1 feat: add saved_query_id to InputDataConfig in aiplatform v1 training_pipeline.proto 8ec83c867 chore: regenerate API index aeb384ae8 feat: add ListSavedQueries rpc to aiplatform v1beta1 dataset_service.proto feat: add saved_query.proto to aiplatform v1beta1 feat: add saved_query_id to InputDataConfig in aiplatform v1beta1 training_pipeline.proto fdca4dd8b chore: regenerate API index ebf8158cd feat: google.longrunning.Operations for Cloud Channel apis 8cc1c6824 chore: regenerate API index 17cc208d4 chore:add LRO to API list fc6a76e0d feat: set longer polling timeouts for filestore DeleteInstance and DeleteSnapshot 23f1a1571 feat: add audience parameter 8a251f522 feat: Enable REST transport for most of Java and Go clients 49de8b04c chore: regenerate API index d57f437df feat: add BatchImportModelEvaluationSlices API in aiplatform v1 model_service.proto f3b7f0383 chore: regenerate API index bf12acd0d feat: add client library BUILD rules, API proto option, v1alpha service config file and service YAML file 19bd392ee feat: add model_version_id to BatchPredictionJob in aiplatform v1 batch_prediction_job.proto fb1c7ffda chore: regenerate API index f5cd5093e feat: add BatchImportModelEvaluationSlices API in aiplatform v1beta1 model_service.proto dc5611c68 chore: regenerate API index 557d78e4c feat: add BeyondCorp appconnections API 426d87e9e chore: regenerate API index bbd13d3ff feat: add BeyondCorp clientconnectorservices API c63fb2b03 chore: regenerate API index e0e822c87 feat: add BeyondCorp appgateways API df910c64f chore: regenerate API index 584bde648 feat: add BeyondCorp clientgateways API 7eebdfc57 chore: regenerate API index c018a501f feat: add BeyondCorp appconnectors API d0b394f18 feat: added support for custom layer info 3b9c451c7 feat: add model_monitoring_config to BatchPredictionJob in aiplatform v1beta1 batch_prediction_job.proto f24b37a35 feat: add fields to eventually contain row level errors c65a86879 chore(python): prepare for the v1 release of google/cloud/apigeeregistry c81bb701e docs: publish Stackdriver logging proto for Network Analyzer 0cbea5c3b chore: Configure Ruby client configs 3418a7b5a chore: regenerate API index 7b1657f01 feat!: add support for new API methods BREAKING_CHANGE: the removed Snapshots methods were never officially released f2e55382d feat: add model_version_id to UploadModelResponse in aiplatform v1 model_service.proto 26faba69a chore(bazel): update Go generator version 40797bb9f chore: regenerate API index 0470cd6d5 docs: Clarified how clients should work with resumable uploads docs: Clarified ListNotifications pagination docs: Made "live generation" wording consistent with docs for other Cloud Storage APIs fix: Made negative offsets larger in magnitude that object size return the full object for ReadObject operations fix: Made naming format for Logging.log_bucket be a path rather than raw bucket name, to be consistent with the rest of the API feat: Changed Custom Dual Regions to be specified in a proto message rather than a syntactic encoding within the bucket location feat: Added etag support 1cbacff2f feat: Adds a pod_namespace field to pod events created by Continuous Validation, to distinguish pods with the same name that run in different namespaces a9969d336 feat: add support for user labels for job and job template 4fce83e64 chore(bazel): update gapic-generator-php to v1.4.8 ec8056e26 fix!: set the right field number for reCAPTCHA private password leak 484948074 fix!: rename the type `FunnelFilter` to `FunnelFieldFilter` fix!: rename the `funnel_filter` field of the `FunnelFilterExpression` type to `funnel_field_filter` db1cd5e9c feat: add default_skew_threshold to TrainingPredictionSkewDetectionConfig in aiplatform v1beta1, v1 model_monitoring.proto 49e6a7ed5 feat: add ClusterType field in MembershipEndpoint.OnPremCluster dcc5d9f59 chore: regenerate API index d571e2364 chore: include Ruby/PHP/C# options docs: clarified documentation, including resource name patterns 519ca4459 chore: update gapic-generator-java 263459093 chore: regenerate API index 05576c87b feat: generating GAPIC libraries for Google Cloud Functions v2beta b416c4cf3 chore: regenerate API index 7088e389a feat: generating GAPIC libraries for Google Cloud Functions v2alpha 65b5ea7ea chore: regenerate API index 163e8b266 chore(googleads)!: remove protos for v7, which has sunset d5d0f8dee feat: added webhook_config 585fa8c3c feat: added webhook_config 8105c580d feat: Include the location and iam_policy mixin clients b59159d63 chore: use gapic-generator-python 1.0.1 973b4bb18 chore: regenerate API index cf681da4e feat!: Removed _v1beta1 suffix from proto file names BREAKING CHANGE: proto file name is changed from assuredworkloads_v1beta1.proto to assuredworkloads.proto a0a949c7a chore: Update C# GAPIC generator to 1.4.2 84fb82208 feat: Add Java REST transport to analytics, servicecontrol, servicemanagement, serviceusage and langauge APIs a5f00a799 build: use gapic-generator-typescript v2.14.6 d42026b7a chore: include generated samples dir 1b222777b chore: Integrate new gapic-generator-java and rules_gapic f296ef560 feat: add asset_id and stream_id fields to VodSession and LiveSession responses fix!: remove COMPLETE_POD stitching option f30516e75 feat: Add SQL Server dialect to bigquerymigration v2 client library 25c51f31e chore: regenerate API index 8ee8c3786 feat: Remove Batch v1main and v1alpha1 protos d19c0d24d chore: regenerate API index 84720fbcd feat: add successful_forecast_point_count to CompletionStats in aiplatform v1 completion_stats.proto feat: add neighbors to Explanation in aiplatform v1 explanation.proto feat: add examples_override to ExplanationSpecOverride in aiplatform v1 explanation.proto feat: add version_id, version_aliases, version_create_time, version_update_time, and version_description to aiplatform v1 model.proto feat: add ModelVersion CRUD methods in aiplatform v1 model_service.proto feat: add model_id and parent_model to TrainingPipeline in aiplatform v1 training_pipeline.proto a95a55f58 feat: add env to ContainerSpec in aiplatform v1beta1 custom_job.proto b37008bb2 chore: regenerate API index 96e83d1a7 feat(googleads): Protos and build files for Google Ads API v11 9fda3a8de chore: regenerate API index ae532a6bb feat: Created client libraries for Region Lookup API bdea28692 feat: expose read_time fields in Firestore PartitionQuery and ListCollectionIds, currently only available in private preview ac9c39309 feat:Import of Grafeas from Github f735ad013 chore: Configure Ruby builds for google/cloud/batch ed8b5836f chore: regenerate API index 90a234cc4 feat: added Google Batch protos f8e97f98c chore: add http rules for LROs 87875b52e chore: regenerate API index 78374702d fix!: remove Application and Profile services and and related protos, enums, and messages d180952b2 feat: added support for CMEK docs: clarified wording around quota usage 239db5e27 feat: add monitor_window to ModelDeploymentMonitoringScheduleConfig proto in aiplatform v1/v1beta1 model_deployment_monitoring_job.proto 2fb7507ea chore: Update Bazel workspaces to support multiple concurrent C# generator versions chore: Update Ads Bazel scripts to explicitly use the GAX-v3-targeted C# generator 530ca5595 docs: Updating comments fbb5dd93b feat: Added support for locations and iam_policy clients df51ec8e9 feat: add Session creator role docs: clarify transaction semantics 13f9b8908 chore: regenerate API index 950dd7303 feat: Update Compute Engine API to revision 20220526 (#722) c19c96355 feat: add methods for Long Running Operations service 38a654069 chore: Configuration for Ruby gkebackup clients 454ad5ec4 docs: clarifications for `DatastoreFirestoreMigraitonMetadata` feat: new enum value `OPTIMISTIC_WITH_ENTITY_GROUPS` for `ConcurrencyMode` 4e0282f92 feat: allow users to disable spell check in search requests feat: allow users to add labels in search requests docs: deprecate indexable/searchable on the product level custom attributes docs: keep the API doc up-to-date with recent changes f432c46e0 chore: regenerate Java client with REST transport f19049fdd chore: regenerate API index 5bfadd980 feat: Add compliances, processes and exfiltration fields to findings attributes. They contain compliance information about a security standard indicating unmet recommendations, represents operating system processes, and data exfiltration attempt of one or more source(s) to one or more target(s). Source(s) represent the source of data that is exfiltrated, and Target(s) represents the destination the data was copied to a2df6aa93 chore: regenerate API index 34c6901df feat: Client libraries for the Dataform API 1848f0849 build(nodejs): include common protos in nodejs_gapic_assembly_pkg 95575851a feat: added current trips present feature to search vehicles 5b8c35781 chore: regenerate API index 40c23f164 fix: package names for PHP/Ruby/C# updated b9a19f3e3 chore: regenerate API index dea7c804b chore: expose new TTL / Database Admin experimental API cca5e8181 chore: use gapic-generator-python 1.0.0 06f21c441 feat: add EdgeCluster as a new membershipEndpoint type feat: add ApplianceCluster as a new membershipEndpoint type feat: add c++ rules in BUILD file doc: add API annotations doc: minor changes on code and doc format b0c0dabea chore: use GCS cache for Bazel builds 1df6a9544 build: correct artifact name for npm 02cdbfd36 chore: regenerate API index 5917d3445 chore: add php_namespace to iamcredentials.proto 665682daa feat: add IAM policy to aiplatform_v1beta1.yaml feat: add preset configuration for example-based explanations in aiplatform v1beta1 explanation.proto feat: add latent_space_source to ExplanationMetadata in aiplatform v1beta1 explanation_metadata.proto feat: add successful_forecast_point_count to CompletionStats in completion_stats.proto 80c19a4eb chore: Add DIREGAPIC Updater github action 6e77a717e chore: regenerate API index c875f2b20 feat: add failure_policy to PipelineJob in aiplatform v1 & v1beta1 pipeline_job.proto c6fb6acce feat: Add a new operator on companyDisplayNames filter to further support fuzzy match by treating input value as a multi word token feat: Add a new option TELECOMMUTE_JOBS_EXCLUDED under enum TelecommutePreference to completely filter out the telecommute jobs in response docs: Deprecate option TELECOMMUTE_EXCLUDED under enum TelecommutePreference da052c940 chore: include generated samples dir 373d1b4ef chore: regenerate API index bf83594d7 feat: public protos for apigeeregistry API 058bff383 feat: add latent_space_source to ExplanationMetadata in aiplatform v1 explanation_metadata.proto feat: add scaling to OnlineServingConfig in aiplatform v1 featurestore.proto feat: add template_metadata to PipelineJob in aiplatform v1 pipeline_job.proto 7a47b7279 fix: fixes for dynamic routing and streaming descriptors 55283447a chore(deps): upgrade gapic-generator-java to 2.8.0 and update gax-java to 2.18.1 2f003c03e docs: Document encoding of non-UTF-8 key strings in the Cloud Datastore API a7222a75c chore: remove unused imports 942691f8d chore: remove unused imports 2ac1b0abe chore: Configure Ruby clients 4c6f5836a docs: updated comments to match API behaviors 6b3b07186 chore: Add DIREGAPIC Updater github action (#721) 506de488b chore: regenerate API index 96825848f feat: update protos to include InvalidateApprovalRequest and GetAccessApprovalServiceAccount APIs cfe613f3d chore: regenerate API index a167db13e feat: Add Provider resources 2eec3efbe chore: regenerate API index 117f86bec feat: add Examples to Explanation related messages in aiplatform v1beta1 explanation.proto 912d50175 chore: regenerate API index ae78bfc62 feat: added PublicCA API client libraries 904345281 chore: regenerate API index 9dbfb83b4 feat: add config for invalidate RPC 1bed8a0d6 docs: fix docstring formatting d4444af5e feat!: Change GCS gRPC API to get user billing project from gRPC metadata instead of CommonRequestParams, and remove latter 134d8be4b chore: regenerate API index 3d7bd9d4a feat: Add SavedQuery CURD support feat: Add tags support feat!:*Add RelatedAsset and deprecate RelatedAssets for relationship GA 184432662 chore: regenerate API index e2ed48f52 feat: Add support for Password Check through the private_password_leak_verification field in the reCAPTCHA Assessment ff9d51284 chore: regenerate API index 3ce577103 fix: use GkeBackup instead of Gkebackup in csharp, ruby, and php 3150afaab Synchronize new proto/yaml changes. feec34dfa feat: add BigQuery configuration for subscriptions b6fa58e3e feat: refreshes Bigtable Admin API(s) protos cf88418a2 fix: Update the dependency on the underlying google-cloud-security-private_ca-v1 client ac491879a feat: Include the location mixin client 59174f7f6 feat: Provide interfaces for location and IAM policy calls cd14622e8 feat: Use a version of google-cloud-speech-v1 that supports the Adaptation API 1ad4bcbba feat!: delete ML v1 API protos ad90a17c8 chore: regenerate API index dd6f8dfcb feat: add the TunnelDestGroup-related methods and types feat: add ReauthSettings to the UpdateIapSettingsRequest 10bc133b6 chore(python): prepare for the v1 release of google/cloud/gkebackup 4ba76533e chore: Note samples browser in generated readmes 46d37bc21 Update README.md d018d545d fix: CustomDimension and CustomMetric resource configuration in Analytics Admin API 936ab3594 feat: add display_name and metadata to ModelEvaluation in aiplatform model_evaluation.proto c4f5b620a chore: regenerate API index 914bc5263 fix!: added packaging options for C#, Ruby, and PHP d664bc5d3 chore(ruby): Initial generation of google-iam-v1 10c88bb5c docs: Update client libraries for v1p1beta1 api d10a78d90 chore: regenerate API index ec9193e2e feat: Add adaptation proto for v1 api 9f45b0d26 chore: regenerate API index 02e4eb061 feat: Added support for other languages.Clients can now use this library to create gke clusters in cloud providers such as AWS and Azure 6609484e7 chore: Generate datastream wrapper from the correct service protos 6781fcd39 fix: Include common protos in google-cloud-bigquery-data_exchange-v1beta1 185ba8a93 fix!: Updates pre-release Cloud Run v2 Preview client libraries to work with the latest API revision 02b3022b9 feat: add template_metadata to PipelineJob in aiplatform v1beta1 pipeline_job.proto 9b1c49de2 chore(bazel): update bazel version to v4.2.2 dfc9737d2 fix!: BatchAnnotateImagesRequest.requests is required 044c5184e docs: update the doc on diagnostic info 4398b8477 feat!: Switch from Datastream V1alpha1 to Datastream V1 29b5e45b0 chore: regenerate API index b9927eb6f feat: add the API of StreamingAnalyzeContent 34e5f850a chore: regenerate API index 4c8ac5c07 fix!: Product search related messages and enums changed in an incompatible way fix!: NormalizedBoundingPoly message removed ca1777117 fix!: removed fields from SafeSearchAnnotation message f6bb25583 docs: add the fields for setting CX virtual agent session parameters cdd277340 chore: Fill out Ruby analyticshub configs 9805ded32 chore: regenerate API index 6d3ae1aca feat: add `runFunnelReport` method to the Alpha version of the Data API 976b05ce1 chore(bazel): update bazel version to v5.1.1 2d07d513b feat: add audio export settings to security settings docs: update the doc on diagnostic info cd7a3e5ea feat: add Application.service_account feat: add client library method signature to retrieve Application by name feat: add Service.labels feat: add Version.app_engine_apis feat: add VpcAccessConnector.egress_setting e24febce2 chore: use gapic-generator-python 0.65.3 240296342 docs: modifies the project ID pattern in comment for Workbench environment ad96d2427 fix!: Remove google-cloud-dataproc-v1beta2 from dependencies 95ce8b299 chore: regenerate API index 63d4fbab3 fix!: rename parent to project in SearchRelatedAccountGroupMembershipsRequest feat: introduced WafSettings 9911f3438 chore: remove unused imports 3a976a38e Synchronize new proto/yaml changes. 0bfcb46cb chore: include java generated samples dc4ef314f chore(deps): upgrade gapic-generator-java to 2.7.0 and update gax-java to 2.16.0 ecb0b0b8a feat!: Update to the Notebooks V1 service c033cb1be feat!: Update to the Domains V1 service 61a923fda docs: Update the service name 4f586ead8 docs: Add documentation for latest models to RecognitionConfig 27ee09419 chore: regenerate API index 3bcbf4d59 feat: Create the public IAM Deny v2beta API 1a70da9e1 feat: Update public api comments to hide internal comments 57961d0b5 chore: Add snippet-gen metadata files 10d0667af Synchronize new proto/yaml changes. 37077df43 feat: Added support for the ConversationDataset and ConversationModel services dfd09631f docs: fix typo in the comment ca19f9a44 chore: remove unused imports 8be32d2c9 chore: regenerate API index 79b905545 fix!: remove key management API feat: introduced Reason, PasswordLeakVerification, AccountDefenderAssessment e0aa9f4f1 chore: remove unused imports 62d27df4c chore: remove unused imports 0506e19ab feat!: field ObjectTrackingAnnotation.segment moved into oneof, added track_id dea9ccb4c docs: Use consistent language for formatting restrictions for user-provided ID fields 22d09aeac chore: regenerate API index 65b26a518 feat(googleads): Updated protos and build files for Google Ads API v10 c4b98bf38 feat:Enable RunQueryResponse.done a0d4c5c2a fix!: mark Document.Entity.type as REQUIRED in all versions fix!: remove Document.Entity.bounding_poly_for_demo_frontend from v1beta2 4bd299a6f feat: added audio_export_settings 6869f2fbc chore: fix typo in PACKAGES.md (#715) f91b6cf82 chore: use gapic-generator-python 0.65.2 c7ca416c2 chore(bazel): update version of Protobuf to v3.20.1 92c7dbc7a chore: regenerate API index 9efd9766f feat: Add API definitions for Cloud Channel Repricing APIs fd6935f04 docs: fix remaining broken links d4dd268f3 feat: Add new enum value, new filter in ListCustomersRequest of Cloud Channel API 6b3fdcea8 fix(compute): revert proto3_optional, required removal on parent_id (#714) 775267e23 build: fix broken links 824ea38ab feat: Google Chat API logging proto for documentation ba7f434b7 chore: regenerate API index 726dac2bf feat: Add publishing methods for channel resources 0d5e4e2c4 chore: regenerate API index 38b542a26 feat: Update Notebooks API for clients libraries b1e784c8d chore: regenerate API index 1900ca320 feat: initial generation of APIs acc16420c feat:Add a call log type for handled exceptions feat:Add a structured format for logged call arguments b62c5624b fix!: correct broken ConversationModelEvaluation resource pattern bd6f2c834 chore: Update disco-to-proto3-converter 4923ca580 chore(bazel): update rules_gapic to v0.12.1 5dcdea080 chore: regenerate API index 50fc83477 feat: Add connection and description field to finding's list of attributes 740f07273 docs: minor wording update 4445d1806 docs: minor wording update 4e5ef95b4 feat: add kernel_spec for libraries c56ae2a76 feat: add kernel_spec for libraries 487c2cba9 feat: Require google-cloud-compute-v1 version 1.3 004b289ee Synchronize new proto/yaml changes. 78dd5ed3b chore(bazel): update gapic-generator-csharp to v1.3.18 ccffe232c chore(bazel): update gapic-generator-go v0.28.0 a476b9f99 feat: add reserved_ip_ranges to CustomJobSpec in aiplatform v1 custom_job.proto feat: add nfs_mounts to WorkPoolSpec in aiplatform v1 custom_job.proto feat: add JOB_STATE_UPDATING to JobState in aiplatform v1 job_state.proto feat: add MfsMount in aiplatform v1 machine_resources.proto feat: add ConvexAutomatedStoppingSpec to StudySpec in aiplatform v1 study.proto e5debc99e chore: regenerate API index 2ce1c569b feat!: rename Similarity to Examples, and similarity to examples in ExplanationParameters in aiplatform v1beta1 explanation.proto feat: add reserved_ip_ranges to CustomJobSpec in aiplatform v1beta1 custom_job.proto feat: add nfs_mounts to WorkPoolSpec in aiplatform v1beta1 custom_job.proto feat: add PredictRequestResponseLoggingConfig to aiplatform v1beta1 endpoint.proto feat: add model_version_id to DeployedModel in aiplatform v1beta1 endpoint.proto feat: add JOB_STATE_UPDATING to JobState in aiplatform v1beta1 job_state.proto feat: add MfsMount in aiplatform v1beta1 machine_resources.proto feat: add version_id to Model in aiplatform v1beta1 model.proto feat: add LatestMonitoringPipelineMetadata to ModelDeploymentMonitoringJob in aiplatform v1beta1 model_deployment_monitoring_job.proto feat: add ListModelVersion, DeleteModelVersion, and MergeVersionAliases rpcs to aiplatform v1beta1 model_service.proto feat: add model_version_id to UploadModelRequest and UploadModelResponse in aiplatform v1beta1 model_service.proto feat: add model_version_id to PredictResponse in aiplatform v1beta1 prediction_service.proto feat: add ConvexAutomatedStoppingSpec to StudySpec in aiplatform v1beta1 study.proto feat: add model_id and parent_model to TrainingPipeline in aiplatform v1beta1 training_pipeline.proto a877d3d3a feat: Add field `check_preceding_lifecycle_events_present` to PublishBuildToolEventStreamRequest and PublishLifecycleEventRequest proto messages 2a273915b chore: use gapic-generator-python 0.65.1 fd16b6a23 fix(compute): remove proto3_optional from parent_id (#712) 9ef00159f docs: clarifications for filters 4bb6fd659 fix(compute): replace missing REQUIRED for parent_id (#711) 1e470c1b5 fix: Update grpc-google-iam-v1 dependency 43f667073 feat: Remove dependency on the obsolete v1alpha version 5e0a3d572 chore: Use gapic-generator-python 0.65.0 6e20d4e18 chore(python): prepare networkservices v1 for release 0ed730f27 feat: expose new read_time API fields, currently only available in private preview 4e55fdce1 chore: regenerate API index 7ab53cabd docs: cleanup and clarifications feat: add UpdateAssignment method feat: add "concurrency" and "multi_region_auxiliary" in reservation feat: add preferred table. f7831d2ae feat: Google Chat API logging proto for documentation cef116753 fix: fix type in docstring for map fields 6a211105d fix: use full link in comment to fix JSDoc broken link 5d8422267 chore: remove unused imports 3a92743bb chore: regenerate API index 99fd8be66 docs: update taxonomy display_name comment feat: added Dataplex specific fields d4ca15ba3 chore: generate common.proto for java 97350b3c2 chore: remove unused imports 6a276f6af feat: Add next_steps field to finding's list of attributes 23a2d2961 chore(bazel): update gapic-generator-go to v0.27.1 c782e4528 fix!: Move `yarn_config` into a `oneof` afc5066d9 fix!: Remove `temp_bucket` from VirtualClusterConfig, as its value was not used cbd3367ca docs: updated description of SearchVehiclesRequest.trip_types SearchVehiclesRequest.trip_types is more than just a filter. It is the TripType of the trip being proposed. f6d8d83fa chore: regenerate API index 2bff0f31f feat: Sync public protos with latests public api state. This adds support for collapsible groups, filters, labels, drilldowns, logs panels and tables e936352b4 chore: regenerate API index bc9955018 feat: support batch products purge (v2alpha) feat: users cannot switch to empty default branch unless force override (v2alpha) feat: allow search users to skip validation for invalid boost specs (v2alpha) feat: support search personalization (v2alpha) feat: search returns applied control ids in the response (v2alpha) docs: users can self enroll retail search feature on cloud console (v2alpha) docs: suggest search users not to send IP and use hashed user id (v2alpha) docs: deprecate request_id in ImportProductsRequest (v2alpha) docs: deprecate search dynamic_facet_spec and suggest to config on cloud console (v2alpha) docs: keep the API doc up-to-date with recent changes (v2alpha) 919198525 chore: regenerate API index 258ddb27e fix: fix type in docstring for map fields 0db710b48 chore: regenerate API index f83787ed5 feat: Add iam_binding field to findings attributes. It represents particular IAM bindings, which captures a member's role addition, removal, or state fef35d459 docs: explicitly document empty list and search responses 1a8770e28 chore: remove unused imports 68ad73b68 feat: update compute API to revision 20220322 (#710) 6d0a5db2c chore: Update disco-to-proto3-converter 3255022a9 docs: Mark v1beta1 API as deprecated 98a98fa65 chore: regenerate API index ef938a421 chore: remove unused imports fb51f3cd6 chore: remove unused imports 8d458c818 chore: remove unused imports 47b0f8695 chore: regenerate API index 43184df87 docs:Cloud Deploy API Platform Logging documentation 63db84f13 chore: remove unused imports 762f5a73c chore: Prepare bigquery dataexchange v1beta1 for release f87399b1c chore: regenerate API index bf6982693 feat: add support for Agent Pools feat: add support for transfers between file systems feat: add support for metadata preservation feat: add support for transferring a specific list of objects (manifest) feat: add support for Cloud Logging 1079dd15a chore: regenerate API index 0c1df83a7 feat: Initial commit for Anthos Multi-Cloud Library 8b9626e37 chore: Configure Ruby client for bigquerymigration a56f9fee6 chore: regenerate API index afa2ba156 feat: AuditConfig for IAM v1 bbe5618e3 feat: Added support for accessing secret versions by alias Clients can now associate custom strings with specified secret versions for later access. 536a2d8a2 chore: Prepare bigquery migration v2 for release 38a5417d3 feat: add a RegulatoryIntercept API 9da5e7f37 chore(ruby): configure Ruby builds for datastream v1, run v2, and the run wrapper 59b819d91 docs: Remove redundant "API" in the service name 20c3e3b67 chore: regenerate API index 21d47790c chore: add/correct proto namespace options 52df4b4b8 feat: add DataProfilePubSubMessage supporting pub/sub integration 33dd46bdd chore: remove unused imports d418985b5 chore: regenerate API index 84762fa7f feat!: Add bigquerymigration v2 client library 727f08ba4 feat: Deprecate format specific `row_count` field in Read API c59f02e87 docs: Update `cpu_utilization_percent` limit docs: Remove the limitation of all clusters in a CMEK instance must use the same key 480e3fbaf chore: regenerate API index d6abf6387 docs: users can self enroll retail search feature on cloud console (v2beta) docs: suggest search users not to send IP and use hashed user id (v2beta) docs: deprecate request_id in ImportProductsRequest (v2beta) docs: deprecate search dynamic_facet_spec and suggest to config on cloud console (v2beta) docs: keep the API doc up-to-date with recent changes (v2beta) feat: add new AddLocalInventories and RemoveLocalInventories APIs (v2beta) feat: users cannot switch to empty default branch unless force override (v2beta) feat: allow search users to skip validation for invalid boost specs (v2beta) feat: support search personalization (v2beta) feat: search returns applied control ids in the response (v2beta) 1821985de fix!: Updated resource patterns to comply with https://google.aip.dev/123#annotating-resource-types 510c51d34 chore(bazel): update gapic-generator-go to v0.27.0 chroe(bazel): add googleapis repo_mapping to gapic-generator-go chore(bazel): colocate Go dependencies in WORKSPACE chore(bazel): remove go-genproto version override 4411bf004 chore: regenerate API index a4591bf61 docs: Update comment in GCS gRPC v1 API spec noting that the v1 API service is no longer supported a8b068487 chore: Add Ruby wrapper for aiplatform 151e02bdb feat!: Replace enum with string representation for predefined ACLs and public_access_prevention b5efd1e4b feat: Added new database versions `MYSQL_8_0_27` and `MYSQL_8_0_28` Added `retention_interval` and `upload_interval` properties in the SqlServerAuditConfig proto Added `enable_password_policy` property in the PasswordValidationPolicy proto daffb064b feat: added support for locking an agent for changes feat: added data format specification for export agent 9346947b1 chore: remove unused imports e1b5a0175 chore(googleads): update a few Bazel import statements 36e9ea95c chore: regenerate API index b08a6a246 feat: Publish BigQuery Analytics Hub API v1beta1 client 7ee73a3b5 chore: regenerate API index 4d0081513 docs: users can self enroll retail search feature on cloud console docs: suggest search users not to send IP and use hashed user id docs: deprecate request_id in ImportProductsRequest docs: deprecate search dynamic_facet_spec and suggest to config on cloud console docs: keep the API doc up-to-date with recent changes feat: add new AddLocalInventories and RemoveLocalInventories APIs feat: users cannot switch to empty default branch unless force override feat: allow search users to skip validation for invalid boost specs feat: support search personalization feat: search returns applied control ids in the response 94287f458 feat: added support for locking an agent for changes feat: added data format specification for export agent 651416f51 chore(bazel): colocate Go targets in google/api with same importpath 8e6b72fc0 docs: clarified the deprecation of TEMPLATE in intent training phrase type 3c34a4075 feat: new Bytes and File types: POWERPOINT and EXCEL 422e8b7c1 feat: add RuntimeEvent log entry to Cloud Notebooks API abfc24ebf chore: regenerate API index 9ba488b28 feat: add ImportModelEvaluation in aiplatform v1 model_service.proto feat: add data_item_schema_uri, annotation_schema_uri, explanation_specs to ModelEvaluationExplanationSpec in aiplatform v1 model_evaluation.proto d37faaa2f chore: remove unused imports eb0e80a06 chore: regenerate API index 92ab86a79 feat: Add ListHotTablets API method and protobufs 6fb9df7c6 chore: remove unused imports 34ae62ad2 chore: remove unused imports ab8c7d205 chore: remove unused imports 34b98de13 chore: remove unused imports feefce3c8 chore: regenerate API index 40083727f feat: promote v1beta2 features to v1 42efaa78f docs: fix relative and broken links 4779e9f6a chore: Configure Ruby builds for cloudoptimization and certificatemanager 321e5e46e docs: improved docs format f6d7ccb67 chore: regenerate API index 463cacaf4 feat: Added DatabaseType field for the type of backing store used feat: Added AVRO DatabaseDumpSpec for importing and exporting Avro files feat: Added additional endTime field for MetadataImports feat: Added RESTORING status on Backups feat: Added support to record the services that are restoring the backup feat: Added configuration for Dataplex integration feat: Added support for IAM management for metadata resources feat: Added AuxiliaryVersionConfig for configuring the auxiliary hive versions during creation or update of the DPMS instance feat: Added NetworkConfig for exposing the DPMS endpoint in multiple subnetworks using PSC (this skips the need for VPC peering) feat: Added EncryptionConfig which contains information used to configure the Dataproc Metastore service to encrypt customer data at rest (CMEK) docs: formatting improvements 22e0fa00a chore: regenerate API index 6379d5fe7 Synchronize new proto/yaml changes. 5d85995db docs: added explanation for SuggestionResult 1605e8dce chore: regenerate API index d9ca51541 feat: added HUMAN_INTERVENTION_NEEDED type in ConversationEvent feat: added SetSuggestionFeatureConfig and ClearSuggestionFeatureConfig apis feat: added AGENT_FACING_SMART_REPLY type in KnowledgeType feat: added GcsDestination. docs: added explanation for uri fields in resources docs: added explanation for SuggestionResult docs: added explanation for language code in session 4dd75c267 docs: added explanation for uri fields in resources docs: improved docs format cb382857a docs: Added functionality in the companyDisplayNames filter to support fuzzy matching 1b146e73a docs: fixed a broken documentation link db9d2a3c5 chore: remove unused imports from google/spanner/* 721b367f4 feat: add `content` field in TextAnchor 6c791194e chore: regenerate API index 9c07d5f30 feat: Publish Cloud Batch v1alpha1 API Client dfdd5ee97 feat: add `service_account` to `BatchPredictionJob` in aiplatform `v1beta1` `batch_prediction_job.proto` 392ae9176 feat: Add the ability to plumb environment capabilities through v1beta3 protos. bc2432d50 chore: update v2.14.2 gapic-generator-typescript 4bfdcd371 feat: add IN/NOT_IN/NOT_EQUALS support to cloud datastore proto cd8039740 chore: regenerate API index db9aa740f feat: [Cloud Memorystore for Redis] Support Maintenance Window ff9e99400 chore: regenerate API index 7cef847af feat: add support for AUTH functionality feat: add support for TLS functionality feat: add secondary_ip_range field 9acf39829 chore: regenerate API index 110875a82 feat: Adds Cloud Run v2 API client libraries f8a290120 chore: regenerate API index 90f38d10b feat: add monitoring_config to EntityType in aiplatform v1 entity_type.proto feat: add disable_monitoring to Feature in aiplatform v1 feature.proto feat: add monitoring_stats_anomalies to Feature in aiplatform v1 feature.proto feat: add staleness_days to SnapshotAnalysis in aiplatform v1 featurestore_monitoring.proto feat: add import_features_analysis to FeaturestoreMonitoringConfig in aiplatform v1 featurestore_monitoring.proto feat: add numerical_threshold_config to FeaturestoreMonitoringConfig in aiplatform v1 featurestore_monitoring.proto feat: add categorical_threshold_config to FeaturestoreMonitoringConfig in aiplatform v1 featurestore_monitoring.proto feat: add objective to MonitoringStatsSpec in aiplatform v1 featurestore_service.proto cb5b02f55 feat: Update documentation with field references in REST and gRPC 9916192ab feat: promote CustomVoiceParams to v1 e0f0642a1 feat: add PredictRequestResponseLoggingConfig to Endpoint in aiplatform v1 endpoint.proto 4a2b09a4b chore: Prepare baremetalsolution v2 for release 6c2eceaaa feat: Add `skip_grace_period` flag to DeleteCertificateAuthority API e0b4fcf5f feat: added page in TestConfig 0e87dc724 feat: added page in TestConfig docs: clarified wording around Cloud Storage usage 252235134 feat: set longer polling timeouts for filestore CreateInstance c47720d26 chore: regenerate API index b96b21129 feat: Publish Cloud Optimization V1 API Client eb0700c6f feat: Add Cloud_Resource Connection Support 2a55d13d9 chore: update v2.14.1 gapic-generator-typescript abd73bc8f docs: fix docstring formatting 044a6c24e chore: fix Outer class name for CVSS.proto 555668821 docs: clarified the behavior of language_code in EventInput in the context of a followup event input docs: clarified wording around Cloud Storage usage docs: added a new resource name pattern for ConversationModel 8ba978c94 chore: regenerate API index 3db308737 fix: change REST binding for ListDocuments to support root collection b08e78b77 chore: regenerate API index a079cb09b feat!: remove `WebDataStream`, `IosAppDataStream`, `AndroidAppDataStream` resources and corresponding operations, as they are replaced by the `DataStream` resource feat: add `restricted_metric_type` field to the `CustomMetric` resource feat!: move the `GlobalSiteTag` resource from the property level to the data stream level af3ee0c71 chore: remove unused imports from google/cloud/channel/v1 4b97f6260 chore: regenerate API index 4fd97e79f feat: The experiment has ended and the API is deleted 8febda4c9 docs: more details for ListFilesRequest parent field 25d691b07 docs: improve documentation for write client feat: update default timeout/retry information feat: update parent annotation for BatchCommitWriteStreamsRequest feat: expose additional StorageError enum values c392eb060 feat!: modified descriptions of validation rules on create entity endpoints * Commas disallowed * Backslash allowed d4f3468ef chore: remove unused imports in google/cloud/retail/v2 4344efd20 chore: regenerate API index 4c1b56fdd feat: Add BigQuery export APIs that help you enable writing new/updated findings from Security Command Center to a BigQuery table in near-real time. You can then integrate the data into existing workflows and create custom analyses. You can enable this feature at the organization, folder, and project levels to export findings based on your requirements 47a728896 chore: regenerate API index 5a64eb374 chore: remove unused imports from google/monitoring/v3 513fc461b chore: disable Python snippetgen for compute (#705) 63d4c6170 chore: Prepare servicecontrol v2 for release 9ffb8bb21 chore(bazel): update gapic-generator-ruby to 0.11.0 8df2b3aaf docs: updated copyright e9e3c1bd5 chore: regenerate API index 43930af62 feat: Added Service Controller v2 API dbfbfdb38 chore: disable Python snippetgen for bigtable b3397f5fe chore: update copyright year to 2022 4b39bf110 docs: updated copyright 19753e2ba chore: add outer class name for CVSS.proto 5c4db9000 chore: regenerate API index 83795ddb9 feat: added ConversationModel resource and its APIs feat: added ConversationDataset resource and its APIs feat: added SetSuggestionFeatureConfig and ClearSuggestionFeatureConfig APIs for ConversationProfile feat: added new knowledge type of Document content feat: added states of Document feat: added metadata for the Knowledge operation docs: updated copyright 6bd2087c7 build: add flag to distinguish autogenerated libs with a handwritten layer ea5800229 chore: use gapic-generator-python 0.63.4 3c1719360 feat: added support for k8s_version field docs: k8s_version field is not part of resource_options struct 9e18f9c0f chore: new versions of Ruby and PHP generators with rebuilt runtimes 97cf70e32 feat: added support for k8s_version field docs: k8s_version field is not part of resource_options struct 5a1add9fa chore: regenerate API index 948c8fd1f refactor: use updated protos for DeliveryService 88075aead Synchronize new proto/yaml changes. 026165e22 chore: move gRPC service config for BigQuery Migration API to the proper place f873e7f13 feat: add TPU_V2 & TPU_V3 values to AcceleratorType in aiplatform v1/v1beta1 accelerator_type.proto 3e5d2eab1 build: update artifact name for npm 7af9c6893 chore: regenerate API index 95da686e8 feat: KMS configuration in settings chore: formatting changes fec96b7a1 chore: regenerate API index 71fe7ff3f fix!: Use http binding with location field as primary http bindings 60526031e feat: add trace_id for Read API f19466bdf chore: remove unused proto imports 6481719e9 chore(bazel): update gapic-generator-php to v1.4.5 c22272478 docs: Updating copyright to 2022 7bc124cb8 chore: Add service_yaml config to all BUILD.bazel files that generate C# GAPIC libraries ab177dc72 fix(ruby): Update the google-cloud-dataplex-v1 dependency to version 0.2 84594b35a docs(samples): include metadata file, add exclusions for samples to handwritten libraries f1529c000 build: add flag to distinguish autogenerated libs with a handwritten layer fb5fba4d8 build: add flag to distinguish autogenerated libs with a handwritten layer 4b2bd2637 fix!: remove bigquery.readonly auth scope e8fdeb9d9 chore: regenerate API index acd5f89b8 feat: Update Logging API with latest changes f30b83dd4 docs: fix docstring formatting c93764cc2 docs: Update documentation for the Finding resource field "project_display_name" docs: Update documentation for the Mute fields on Findings da999a239 feat!: add support for Virtual Dataproc cluster running on GKE cluster 62d0e0549 chore: cleanup unused proto imports e75c527be docs(aiplatform): fix misformatted field description dc04c1c48 fix!: annotating some fields as REQUIRED 1bbb5df67 chore: regenerate API index 7b42fd062 feat: added client side library for the followings: 1. Content APIs. 2. Create|Update|Delete Metadata APIs (e.g. Entity and/or Partition). f4b9e6477 feat(ruby): Update google-cloud-compute-v1 dependency to 1.1.0 or later 17ca03723 chore: Update rules_gapic Bazel rules to 0.12.0 ed90e7cb9 chore: cleanup unused protos in google/cloud/automl/v1 2b26aaa9b feat: Add field to PatchConfig message: - mig_instances_allowed fix: Add NONE Interpreter enum value that should be used over INTERPRETER_UNSPECIFIED in ExecStepConfig message bbb3c1f3b feat: Deprecates AlternativePolicySpec 3f75ee18f chore: regenerate API index 665a4f0e4 fix!: remove showcase protos (#702) 9f7048a87 chore(bazel): update gapic-generator-php v1.4.4 d3659fcc9 fix(ruby)!: Remove the obsolete v1beta1 version from the Ruby google-cloud-video-transcoder client's dependencies 86978fd50 Synchronize new proto/yaml changes. 298784cd8 Synchronize new proto/yaml changes. 4b022d9ad Synchronize new proto/yaml changes. fccbb78bd Synchronize new proto/yaml changes. 1ce14f509 Synchronize new proto/yaml changes. a618f00c0 Synchronize new proto/yaml changes. 08a6f9437 Synchronize new proto/yaml changes. 58fbca638 Synchronize new proto/yaml changes. 8c50f1d3a Synchronize new proto/yaml changes. 8cb469950 fix: clarify language b4792ab29 build: library of v1beta3 showcase onboarded to SAM ea2038006 feat: add `symbols` field, and auto-format comments c23aef2e0 build: library of v1 showcase onboarded to SAM 0eb43645d build: library of v1beta1 showcase onboarded to SAM 8b6181f5b feat: add `symbols` field, and auto-format comments 36a7e1dd1 chore: regenerate API index ea5146592 build: library of v1 showcase onboarded to SAM 4f919d158 chore: regenerate API index 59f9a97e5 build: library of v1beta2 showcase onboarded to SAM 1673d5759 build: library of v1beta3 showcase onboarded to SAM 79bec211c build: library of v1beta1 showcase onboarded to SAM e8fea5a7c chore: regenerate API index 6cce671cb feat: add WarmAndPing request for channel priming 82cc6da27 chore: regenerate API index f158f82ee feat: Add fields to RegisterAgentRequest: - supported_capabilities - os_long_name - os_short_name - os_version - os_architecture feat: Add field to PatchConfig message: - mig_instances_allowed fix: Add NONE Interpreter enum value that should be used over INTERPRETER_UNSPECIFIED in ExecStepConfig message bbfb1797b chore: Update C# generator version 3063338d3 chore: regenerate API index 42a19d6ea feat!: Remove EnableService and DisableService RPC methods and related protos from service management API BREAKING CHANGE: d19f69bd7 fix(ruby): Add google-cloud-location as a dependency for the privateca client 23d18b4f0 fix(ruby): Update kms-v1 dependency to 0.11 to ensure support for managing EKM connections 2ab0f060b fix(ruby): Update grafeas-v1 dependency for google-cloud-container_analysis-v1 3ec9414a6 chore(deps): upgrade gapic-generator-java to 2.6.1 and update gax-java to 2.12.2 82528cf32 chore(python): Prepare google/cloud/certificatemanager v1 BUILD.bazel for release 7c7a99a90 chore(ruby): Configure Ruby generator for Video Live Stream clients 4807247ce chore: cleanup unused imports in google/api/servicemanagement/v1 179840345 chore(ruby): Configure Ruby generator for Dataplex clients 8a718b286 chore(ruby): Configure Ruby generator for Video Stitcher clients eec8a47af chore: disable Python snippetgen for BigQuery 272c110ac fix: fix breaking changes in Compute API (#701) 63d374da5 fix!: removing misspelled field, add correctly spelled field a1b62c1ce fix: Fix description of an interpreter field, validate if the field is not unspecified 7a3089162 chore: regenerate API index 0b2c90694 fix: update third_party protos to the most actual version: - Add item that is affected by vulnerability - Add GetOsPolicyAssignmentReport and analogous List rpc method - Add Inventory to InstanceFilter - Add existing os_policy_assignment_reports.proto fixing the build - Mark methods as deprecated 249e9a119 feat: update compute API to revision 20220112 (#700) 44d6bef0c feat: Sustainability Projection 55b9e1e0b chore: use gapic-generator-python 0.63.2 docs: add generated snippets fed73d4cd feat: add secondary_ip_range field 5556c910e docs: added resource annotations feat: added flag for implicit dismissal for `DismissDecision` 46c5d6594 docs: Formatting change from HTML to markdown; Additional clarifications 14fe02398 chore: regenerate API index 250797db1 feat: Update v1beta protos with recently added features. PatchRollout proto, mig_instances_allowed field to PatchConfig, UpdatePatchDeployment RPC,PausePatchDeployment and ResumePatchDeployment pair of RPCs d450beb1c chore: regenerate API index 553cb54dd feat(googleads): Protos and build files for Google Ads API v10 978e373a2 chore: regenerate API index b409abd52 feat: Initial release of Video Stitcher API v1 Public Preview 95b627765 chore: regenerate API index 1bc2eca3b feat: Updates the summary of Binary Authorization to include more recently supported platforms, Anthos clusters on VMware and Cloud Run 48b6d012c chore: regenerate API index d5d129f57 feat: Adding Certificate Manager v1 API See public documentation at https://cloud.google.com/certificate-manager/docs 7a961f3c9 chore: regenerate API index 0f56b6966 feat: Add methods and messages related to starring feature feat: Add methods and messages related to business context feature docs: Updates copyright message c507c8d38 chore: regenerate API index 010716c26 feat: Update osconfig v1 protos 6d0be828b chore: regenerate API index 42d9ed35a fix!: Remove deprecated v1beta1 API that is no longer available BREAKING CHANGE: cb96586f1 feat: Add LocationMetadata message feat: Add RoutingVPC.required_for_new_site_to_site_data_transfer_spokes field docs: Update comments to reflect that spokes can now be created with data transfer disabled 4b7b03840 chore(python): Update pubsub BUILD.bazel package name to google-cloud-assured-workloads 397dc80e7 chore(python): Update pubsub BUILD.bazel package name to google-cloud-pubsub 1f707ab5f feat: add exactly once delivery flag f02f43926 feat: add exactly once delivery flag 5d7f6a21b chore(bazel): update gapic-generator-php v1.4.3 9ebabfa11 chore: use gapic-generator-python 0.63.1 e34d71212 chore(ruby): Regenerate using Ruby microgenerator 0.10.6 4eca5ca05 feat: Change description for GCP ProvisionedService.provisioning_id value feat: Update year from 2021 to 2022 66759bdf6 chore: regenerate API index 38a8eb97e feat: add question_id field in ReviewDocumentOperationMetadata 2b3708302 feat: add new detection params b906b7463 chore: regenerate API index 8dff5691c feat: add a new EkmService API 16ce67566 docs: mark CaPool.lifetime as IMMUTABLE docs: add format requirements on `custom_sans` 02089ff37 chore: regenerate API index 3766798d7 feat: Add Channel and ChannelConnection resources 84b1a5a4f chore: use gapic-generator-python 0.62.1 3759a2b72 chore(bazel): update gapic-generator-go to v0.25.0 69be7297c chore(bazel): update gapic-generator-php v1.4.2 580f31190 chore: regenerate API index 4cc768fe4 feat: add ControlService feat: and ServingConfigService b66eb0f9a chore: regenerate API index eceb9e8a3 feat: add ControlService feat: and ServingConfigService ce9fe28bc chore: regenerate API index 9d0fe5458 feat: new parameters in FlexTemplateRuntimeEnvironment fix: added google.api.http annotations to RPCs a09259936 chore: regenerate API index fa6793b31 feat: Release the access field in the v1 finding proto, which represents an access event tied to the finding docs: added more clarification around what event_time means on a v1 finding 903e011f0 feat!: Update definition of RewriteObjectRequest to bring to parity with JSON API support 687f5edc9 chore: update v2.12.2 gapic-generator-typescript 3ea1bccc2 feat: support explicit dynamic header routing f78745822 chore: regenerate API index 07cb2ca17 feat: Adding public Datastream client based on v1 API version: https://cloud.google.com/datastream/docs e3bcc1ee4 feat: add dedicated_resources to DeployedIndex in aiplatform v1beta1 index_endpoint.proto feat: add Scaling to OnlineServingConfig in aiplatform v1beta1 featurestore.proto chore: sort imports bd97e467a feat: add dedicated_resources to DeployedIndex message in aiplatform v1 index_endpoint.proto chore: sort imports ccb9d245d chore(bazel): update gapic-generator-php v1.4.1 70d389ce8 feat: Checksums in Secret Manager 77fada219 chore: use gapic-generator-python 0.61.0 087bceb20 feat: add question_id field in ReviewDocumentOperationMetadata 8ce193463 docs: update comments for ListVoicesRequest 62aaca31b chore: update v2.12.0 gapic-generator-typescript 28c6bb97c feat: Add automated RDB (AKA persistence) 9bee5bd16 fix(bigtableadmin): add missing service_yaml to php_gapic_library b93bf558b fix(iap): remove unpublished service from service config 241062730 fix: fix subpackage dependencies in BUILD.bezel e6b84fe4e chore(bazel): update go-genproto override 847956145 feat!: Change RewriteObjectRequest to specify bucket name, object name and KMS key outside of Object resource 2060f890c feat: Recommendation Priority / Insight Severity feat: Recommendation xor_group_id feat: Recommendation security projection 4b6b01f50 chore: update v2.12.0 gapic-generator-typescript ce0822830 feat: add new fields to `DatabaseInstance` message in the cloud_sql_resources.proto and cleanup proto descriptions git-subtree-dir: third_party/googleapis git-subtree-split: 6954c4da0f0ca8198157c9ad3507674e2ba608e7 --- .bazeliskrc | 2 +- .bazelrc | 3 + .github/mistaken-pull-closer.yml | 1 + .github/workflows/diregapic.yaml | 50 + .kokoro/Dockerfile | 6 +- .kokoro/build.sh | 6 +- .kokoro/docker_update.sh | 134 + .kokoro/start.sh | 2 +- BUILD.bazel | 3 +- PACKAGES.md | 2 +- README.md | 2 +- WORKSPACE | 237 +- api-index-v1.json | 50050 +++--- .../prompt/content/static_canvas_prompt.proto | 1 - google/ads/admob/v1/BUILD.bazel | 14 + google/ads/googleads/v10/BUILD.bazel | 266 + google/ads/googleads/v10/common/BUILD.bazel | 94 + .../ads/googleads/v10/common/ad_asset.proto | 74 + .../googleads/v10/common/ad_type_infos.proto | 796 + .../googleads/v10/common/asset_policy.proto | 45 + .../googleads/v10/common/asset_types.proto | 979 + .../googleads/v10/common/asset_usage.proto | 39 + .../ads/googleads/v10/common/audiences.proto | 173 + google/ads/googleads/v10/common/bidding.proto | 199 + .../googleads/v10/common/click_location.proto | 46 + .../ads/googleads/v10/common/criteria.proto | 696 + .../criterion_category_availability.proto | 81 + .../v10/common/custom_parameter.proto | 38 + .../v10/common/customizer_value.proto | 44 + google/ads/googleads/v10/common/dates.proto | 58 + .../explorer_auto_optimizer_setting.proto | 36 + .../ads/googleads/v10/common/extensions.proto | 367 + .../googleads/v10/common/feed_common.proto | 37 + .../feed_item_set_filter_type_infos.proto | 57 + .../googleads/v10/common/final_app_url.proto | 45 + .../googleads/v10/common/frequency_cap.proto | 60 + .../v10/common/keyword_plan_common.proto | 148 + .../v10/common/matching_function.proto | 125 + .../googleads/v10/common/metric_goal.proto | 42 + google/ads/googleads/v10/common/metrics.proto | 632 + .../v10/common/offline_user_data.proto | 295 + google/ads/googleads/v10/common/policy.proto | 219 + .../googleads/v10/common/policy_summary.proto | 45 + .../common/real_time_bidding_setting.proto | 35 + .../ads/googleads/v10/common/segments.proto | 392 + .../ads/googleads/v10/common/simulation.proto | 356 + .../googleads/v10/common/tag_snippet.proto | 49 + .../v10/common/targeting_setting.proto | 84 + .../ads/googleads/v10/common/text_label.proto | 38 + .../googleads/v10/common/url_collection.proto | 43 + .../ads/googleads/v10/common/user_lists.proto | 290 + google/ads/googleads/v10/common/value.proto | 49 + google/ads/googleads/v10/enums/BUILD.bazel | 89 + .../v10/enums/access_invitation_status.proto | 53 + .../googleads/v10/enums/access_reason.proto | 55 + .../ads/googleads/v10/enums/access_role.proto | 53 + .../account_budget_proposal_status.proto | 61 + .../enums/account_budget_proposal_type.proto | 54 + .../v10/enums/account_budget_status.proto | 51 + .../v10/enums/account_link_status.proto | 61 + .../ad_customizer_placeholder_field.proto | 54 + .../v10/enums/ad_destination_type.proto | 75 + .../v10/enums/ad_group_ad_rotation_mode.proto | 51 + .../v10/enums/ad_group_ad_status.proto | 53 + .../ad_group_criterion_approval_status.proto | 54 + .../v10/enums/ad_group_criterion_status.proto | 53 + .../googleads/v10/enums/ad_group_status.proto | 53 + .../googleads/v10/enums/ad_group_type.proto | 94 + .../googleads/v10/enums/ad_network_type.proto | 60 + .../ad_serving_optimization_status.proto | 62 + .../ads/googleads/v10/enums/ad_strength.proto | 60 + google/ads/googleads/v10/enums/ad_type.proto | 135 + .../enums/advertising_channel_sub_type.proto | 100 + .../v10/enums/advertising_channel_type.proto | 77 + ...iate_location_feed_relationship_type.proto | 46 + ...affiliate_location_placeholder_field.proto | 75 + .../googleads/v10/enums/age_range_type.proto | 63 + .../v10/enums/app_campaign_app_store.proto | 48 + ..._campaign_bidding_strategy_goal_type.proto | 68 + .../v10/enums/app_payment_model_type.proto | 45 + .../v10/enums/app_placeholder_field.proto | 73 + .../ads/googleads/v10/enums/app_store.proto | 48 + .../enums/app_url_operating_system_type.proto | 48 + .../v10/enums/asset_field_type.proto | 115 + .../v10/enums/asset_group_status.proto | 51 + .../v10/enums/asset_link_status.proto | 51 + .../v10/enums/asset_performance_label.proto | 60 + .../v10/enums/asset_set_asset_status.proto | 49 + .../v10/enums/asset_set_link_status.proto | 50 + .../v10/enums/asset_set_status.proto | 49 + .../googleads/v10/enums/asset_set_type.proto | 72 + .../ads/googleads/v10/enums/asset_type.proto | 117 + .../v10/enums/async_action_status.proto | 57 + .../v10/enums/attribution_model.proto | 70 + .../googleads/v10/enums/audience_status.proto | 49 + .../v10/enums/batch_job_status.proto | 51 + .../v10/enums/bid_modifier_source.proto | 49 + .../googleads/v10/enums/bidding_source.proto | 53 + .../v10/enums/bidding_strategy_status.proto | 50 + .../v10/enums/bidding_strategy_type.proto | 117 + .../v10/enums/billing_setup_status.proto | 56 + .../v10/enums/brand_safety_suitability.proto | 71 + .../budget_campaign_association_status.proto | 49 + .../v10/enums/budget_delivery_method.proto | 51 + .../googleads/v10/enums/budget_period.proto | 51 + .../googleads/v10/enums/budget_status.proto | 48 + .../ads/googleads/v10/enums/budget_type.proto | 71 + .../call_conversion_reporting_state.proto | 54 + .../v10/enums/call_placeholder_field.proto | 64 + .../v10/enums/call_to_action_type.proto | 69 + .../call_tracking_display_location.proto | 48 + .../ads/googleads/v10/enums/call_type.proto | 49 + .../v10/enums/callout_placeholder_field.proto | 45 + .../v10/enums/campaign_criterion_status.proto | 53 + .../v10/enums/campaign_draft_status.proto | 63 + .../enums/campaign_experiment_status.proto | 75 + ...mpaign_experiment_traffic_split_type.proto | 51 + .../v10/enums/campaign_experiment_type.proto | 57 + .../v10/enums/campaign_group_status.proto | 48 + .../v10/enums/campaign_serving_status.proto | 59 + .../enums/campaign_shared_set_status.proto | 48 + .../googleads/v10/enums/campaign_status.proto | 51 + .../v10/enums/change_client_type.proto | 85 + .../enums/change_event_resource_type.proto | 101 + .../v10/enums/change_status_operation.proto | 52 + .../enums/change_status_resource_type.proto | 92 + .../ads/googleads/v10/enums/click_type.proto | 204 + .../v10/enums/combined_audience_status.proto | 49 + .../v10/enums/content_label_type.proto | 87 + .../enums/conversion_action_category.proto | 114 + .../conversion_action_counting_type.proto | 50 + .../v10/enums/conversion_action_status.proto | 52 + .../v10/enums/conversion_action_type.proto | 172 + .../enums/conversion_adjustment_type.proto | 54 + .../conversion_attribution_event_type.proto | 46 + .../conversion_custom_variable_status.proto | 56 + .../enums/conversion_environment_enum.proto | 47 + .../v10/enums/conversion_lag_bucket.proto | 115 + .../conversion_or_adjustment_lag_bucket.proto | 204 + .../v10/enums/conversion_origin.proto | 65 + .../conversion_tracking_status_enum.proto | 56 + ...version_value_rule_primary_dimension.proto | 64 + .../conversion_value_rule_set_status.proto | 53 + .../enums/conversion_value_rule_status.proto | 51 + ...n_category_channel_availability_mode.proto | 56 + ...on_category_locale_availability_mode.proto | 59 + .../criterion_system_serving_status.proto | 48 + .../googleads/v10/enums/criterion_type.proto | 144 + .../enums/custom_audience_member_type.proto | 54 + .../v10/enums/custom_audience_status.proto | 49 + .../v10/enums/custom_audience_type.proto | 56 + .../enums/custom_conversion_goal_status.proto | 48 + .../enums/custom_interest_member_type.proto | 48 + .../v10/enums/custom_interest_status.proto | 49 + .../v10/enums/custom_interest_type.proto | 48 + .../v10/enums/custom_placeholder_field.proto | 127 + .../customer_match_upload_key_type.proto | 51 + ...onversion_eligibility_failure_reason.proto | 66 + .../googleads/v10/enums/customer_status.proto | 56 + .../enums/customizer_attribute_status.proto | 48 + .../v10/enums/customizer_attribute_type.proto | 54 + .../v10/enums/customizer_value_status.proto | 48 + .../v10/enums/data_driven_model_status.proto | 60 + .../ads/googleads/v10/enums/day_of_week.proto | 63 + google/ads/googleads/v10/enums/device.proto | 57 + .../v10/enums/display_ad_format_setting.proto | 52 + .../enums/display_upload_product_type.proto | 95 + .../googleads/v10/enums/distance_bucket.proto | 125 + .../enums/dsa_page_feed_criterion_field.proto | 49 + .../enums/education_placeholder_field.proto | 109 + .../v10/enums/experiment_metric.proto | 81 + .../enums/experiment_metric_direction.proto | 59 + .../v10/enums/experiment_status.proto | 65 + .../googleads/v10/enums/experiment_type.proto | 75 + .../v10/enums/extension_setting_device.proto | 50 + .../googleads/v10/enums/extension_type.proto | 82 + .../enums/external_conversion_source.proto | 153 + .../v10/enums/feed_attribute_type.proto | 81 + .../feed_item_quality_approval_status.proto | 50 + ...feed_item_quality_disapproval_reason.proto | 97 + .../v10/enums/feed_item_set_status.proto | 48 + .../feed_item_set_string_filter_type.proto | 43 + .../v10/enums/feed_item_status.proto | 48 + .../v10/enums/feed_item_target_device.proto | 46 + .../v10/enums/feed_item_target_status.proto | 48 + .../v10/enums/feed_item_target_type.proto | 51 + .../enums/feed_item_validation_status.proto | 51 + .../v10/enums/feed_link_status.proto | 48 + .../enums/feed_mapping_criterion_type.proto | 48 + .../v10/enums/feed_mapping_status.proto | 48 + .../ads/googleads/v10/enums/feed_origin.proto | 51 + .../ads/googleads/v10/enums/feed_status.proto | 48 + .../v10/enums/flight_placeholder_field.proto | 116 + .../v10/enums/frequency_cap_event_type.proto | 48 + .../v10/enums/frequency_cap_level.proto | 52 + .../v10/enums/frequency_cap_time_unit.proto | 51 + .../ads/googleads/v10/enums/gender_type.proto | 51 + .../enums/geo_target_constant_status.proto | 50 + .../v10/enums/geo_targeting_restriction.proto | 47 + .../v10/enums/geo_targeting_type.proto | 48 + .../v10/enums/goal_config_level.proto | 50 + .../v10/enums/google_ads_field_category.proto | 59 + .../enums/google_ads_field_data_type.proto | 100 + .../v10/enums/google_voice_call_status.proto | 48 + .../v10/enums/hotel_date_selection_type.proto | 48 + .../v10/enums/hotel_placeholder_field.proto | 122 + .../v10/enums/hotel_price_bucket.proto | 57 + .../googleads/v10/enums/hotel_rate_type.proto | 60 + .../enums/hotel_reconciliation_status.proto | 60 + .../v10/enums/image_placeholder_field.proto | 45 + .../v10/enums/income_range_type.proto | 63 + .../v10/enums/interaction_event_type.proto | 60 + .../v10/enums/interaction_type.proto | 45 + .../googleads/v10/enums/invoice_type.proto | 48 + .../v10/enums/job_placeholder_field.proto | 113 + .../v10/enums/keyword_match_type.proto | 51 + .../keyword_plan_aggregate_metric_type.proto | 45 + .../keyword_plan_competition_level.proto | 55 + .../keyword_plan_concept_group_type.proto | 56 + .../keyword_plan_forecast_interval.proto | 54 + .../keyword_plan_keyword_annotation.proto | 45 + .../v10/enums/keyword_plan_network.proto | 48 + .../googleads/v10/enums/label_status.proto | 46 + .../enums/lead_form_call_to_action_type.proto | 82 + .../v10/enums/lead_form_desired_intent.proto | 46 + .../lead_form_field_user_input_type.proto | 292 + ...form_post_submit_call_to_action_type.proto | 53 + .../legacy_app_install_ad_app_store.proto | 57 + .../v10/enums/linked_account_type.proto | 53 + ..._group_filter_bidding_category_level.proto | 58 + ..._group_filter_custom_attribute_index.proto | 58 + ...listing_group_filter_product_channel.proto | 48 + ...sting_group_filter_product_condition.proto | 51 + ...ting_group_filter_product_type_level.proto | 57 + .../listing_group_filter_type_enum.proto | 51 + .../enums/listing_group_filter_vertical.proto | 46 + .../v10/enums/listing_group_type.proto | 50 + .../v10/enums/local_placeholder_field.proto | 117 + ..._extension_targeting_criterion_field.proto | 60 + .../enums/location_group_radius_units.proto | 51 + .../enums/location_placeholder_field.proto | 66 + .../v10/enums/location_source_type.proto | 48 + .../v10/enums/manager_link_status.proto | 57 + .../matching_function_context_type.proto | 51 + .../enums/matching_function_operator.proto | 63 + .../ads/googleads/v10/enums/media_type.proto | 62 + .../enums/merchant_center_link_status.proto | 51 + .../v10/enums/message_placeholder_field.proto | 59 + .../ads/googleads/v10/enums/mime_type.proto | 80 + .../googleads/v10/enums/minute_of_hour.proto | 54 + .../v10/enums/mobile_app_vendor.proto | 46 + .../v10/enums/mobile_device_type.proto | 48 + .../googleads/v10/enums/month_of_year.proto | 78 + .../v10/enums/negative_geo_target_type.proto | 50 + ...offline_user_data_job_failure_reason.proto | 49 + ...fline_user_data_job_match_rate_range.proto | 69 + .../enums/offline_user_data_job_status.proto | 54 + .../enums/offline_user_data_job_type.proto | 54 + ...erating_system_version_operator_type.proto | 48 + .../v10/enums/optimization_goal_type.proto | 56 + .../v10/enums/parental_status_type.proto | 51 + .../googleads/v10/enums/payment_mode.proto | 62 + .../v10/enums/placeholder_type.proto | 122 + .../googleads/v10/enums/placement_type.proto | 57 + .../v10/enums/policy_approval_status.proto | 59 + .../v10/enums/policy_review_status.proto | 58 + .../v10/enums/policy_topic_entry_type.proto | 64 + ...idence_destination_mismatch_url_type.proto | 60 + ...dence_destination_not_working_device.proto | 55 + ...stination_not_working_dns_error_type.proto | 54 + .../v10/enums/positive_geo_target_type.proto | 56 + .../v10/enums/preferred_content_type.proto | 45 + .../price_extension_price_qualifier.proto | 51 + .../enums/price_extension_price_unit.proto | 60 + .../v10/enums/price_extension_type.proto | 69 + .../v10/enums/price_placeholder_field.proto | 238 + .../product_bidding_category_level.proto | 55 + .../product_bidding_category_status.proto | 48 + .../googleads/v10/enums/product_channel.proto | 48 + .../enums/product_channel_exclusivity.proto | 50 + .../v10/enums/product_condition.proto | 51 + .../product_custom_attribute_index.proto | 57 + .../v10/enums/product_type_level.proto | 57 + ...romotion_extension_discount_modifier.proto | 46 + .../enums/promotion_extension_occasion.proto | 155 + .../enums/promotion_placeholder_field.proto | 93 + .../v10/enums/proximity_radius_units.proto | 48 + .../v10/enums/quality_score_bucket.proto | 51 + .../v10/enums/reach_plan_ad_length.proto | 51 + .../v10/enums/reach_plan_age_range.proto | 120 + .../v10/enums/reach_plan_network.proto | 52 + .../enums/real_estate_placeholder_field.proto | 113 + .../v10/enums/recommendation_type.proto | 117 + .../v10/enums/resource_change_operation.proto | 53 + .../v10/enums/resource_limit_type.proto | 461 + .../v10/enums/response_content_type.proto | 46 + .../search_engine_results_page_type.proto | 52 + .../v10/enums/search_term_match_type.proto | 57 + .../enums/search_term_targeting_status.proto | 56 + .../v10/enums/seasonality_event_scope.proto | 57 + .../v10/enums/seasonality_event_status.proto | 51 + .../v10/enums/served_asset_field_type.proto | 59 + .../v10/enums/shared_set_status.proto | 48 + .../googleads/v10/enums/shared_set_type.proto | 48 + .../simulation_modification_method.proto | 57 + .../googleads/v10/enums/simulation_type.proto | 66 + .../enums/sitelink_placeholder_field.proto | 67 + .../enums/sk_ad_network_ad_event_type.proto | 52 + .../sk_ad_network_attribution_credit.proto | 53 + .../v10/enums/sk_ad_network_user_type.proto | 52 + google/ads/googleads/v10/enums/slot.proto | 63 + .../v10/enums/spending_limit_type.proto | 46 + ...structured_snippet_placeholder_field.proto | 53 + .../v10/enums/summary_row_setting.proto | 52 + .../enums/system_managed_entity_source.proto | 45 + ...arget_cpa_opt_in_recommendation_goal.proto | 55 + .../target_impression_share_location.proto | 53 + .../v10/enums/targeting_dimension.proto | 72 + .../ads/googleads/v10/enums/time_type.proto | 49 + .../v10/enums/tracking_code_page_format.proto | 48 + .../v10/enums/tracking_code_type.proto | 57 + .../v10/enums/travel_placeholder_field.proto | 126 + .../v10/enums/user_identifier_source.proto | 52 + .../enums/user_interest_taxonomy_type.proto | 57 + .../v10/enums/user_list_access_status.proto | 48 + .../v10/enums/user_list_closing_reason.proto | 46 + .../user_list_combined_rule_operator.proto | 46 + .../user_list_crm_data_source_type.proto | 49 + .../user_list_date_rule_item_operator.proto | 52 + .../user_list_logical_rule_operator.proto | 49 + .../enums/user_list_membership_status.proto | 50 + .../user_list_number_rule_item_operator.proto | 58 + .../user_list_prepopulation_status.proto | 49 + .../v10/enums/user_list_rule_type.proto | 46 + .../v10/enums/user_list_size_range.proto | 90 + .../user_list_string_rule_item_operator.proto | 64 + .../googleads/v10/enums/user_list_type.proto | 61 + .../v10/enums/value_rule_device_type.proto | 52 + .../value_rule_geo_location_match_type.proto | 49 + .../v10/enums/value_rule_operation.proto | 52 + .../value_rule_set_attachment_type.proto | 48 + .../v10/enums/value_rule_set_dimension.proto | 55 + .../vanity_pharma_display_url_mode.proto | 48 + .../v10/enums/vanity_pharma_text.proto | 85 + .../googleads/v10/enums/video_thumbnail.proto | 57 + .../v10/enums/webpage_condition_operand.proto | 57 + .../enums/webpage_condition_operator.proto | 49 + google/ads/googleads/v10/errors/BUILD.bazel | 94 + .../v10/errors/access_invitation_error.proto | 67 + .../account_budget_proposal_error.proto | 120 + .../v10/errors/account_link_error.proto | 45 + .../v10/errors/ad_customizer_error.proto | 57 + .../ads/googleads/v10/errors/ad_error.proto | 528 + .../v10/errors/ad_group_ad_error.proto | 78 + .../errors/ad_group_bid_modifier_error.proto | 49 + .../ad_group_criterion_customizer_error.proto | 45 + .../v10/errors/ad_group_criterion_error.proto | 135 + .../errors/ad_group_customizer_error.proto | 42 + .../googleads/v10/errors/ad_group_error.proto | 89 + .../v10/errors/ad_group_feed_error.proto | 65 + .../v10/errors/ad_parameter_error.proto | 48 + .../v10/errors/ad_sharing_error.proto | 52 + .../ads/googleads/v10/errors/adx_error.proto | 45 + .../googleads/v10/errors/asset_error.proto | 148 + .../v10/errors/asset_group_asset_error.proto | 51 + .../v10/errors/asset_group_error.proto | 72 + ...set_group_listing_group_filter_error.proto | 83 + .../v10/errors/asset_link_error.proto | 106 + .../v10/errors/asset_set_asset_error.proto | 54 + .../v10/errors/asset_set_error.proto | 45 + .../v10/errors/asset_set_link_error.proto | 59 + .../googleads/v10/errors/audience_error.proto | 68 + .../v10/errors/authentication_error.proto | 101 + .../v10/errors/authorization_error.proto | 93 + .../v10/errors/batch_job_error.proto | 61 + .../googleads/v10/errors/bidding_error.proto | 131 + .../v10/errors/bidding_strategy_error.proto | 59 + .../v10/errors/billing_setup_error.proto | 107 + .../v10/errors/campaign_budget_error.proto | 98 + .../campaign_conversion_goal_error.proto | 45 + .../v10/errors/campaign_criterion_error.proto | 97 + .../errors/campaign_customizer_error.proto | 42 + .../v10/errors/campaign_draft_error.proto | 77 + .../googleads/v10/errors/campaign_error.proto | 199 + .../errors/campaign_experiment_error.proto | 79 + .../v10/errors/campaign_feed_error.proto | 65 + .../errors/campaign_shared_set_error.proto | 45 + .../v10/errors/change_event_error.proto | 61 + .../v10/errors/change_status_error.proto | 61 + .../v10/errors/collection_size_error.proto | 48 + .../googleads/v10/errors/context_error.proto | 48 + .../v10/errors/conversion_action_error.proto | 80 + .../conversion_adjustment_upload_error.proto | 130 + .../conversion_custom_variable_error.proto | 52 + ...onversion_goal_campaign_config_error.proto | 53 + .../v10/errors/conversion_upload_error.proto | 209 + .../errors/conversion_value_rule_error.proto | 90 + .../conversion_value_rule_set_error.proto | 100 + .../v10/errors/country_code_error.proto | 45 + .../v10/errors/criterion_error.proto | 469 + .../v10/errors/currency_code_error.proto | 45 + .../v10/errors/custom_audience_error.proto | 66 + .../errors/custom_conversion_goal_error.proto | 59 + .../v10/errors/custom_interest_error.proto | 64 + .../errors/customer_client_link_error.proto | 66 + .../errors/customer_customizer_error.proto | 42 + .../googleads/v10/errors/customer_error.proto | 48 + .../v10/errors/customer_feed_error.proto | 64 + .../errors/customer_manager_link_error.proto | 73 + .../errors/customer_user_access_error.proto | 58 + .../errors/customizer_attribute_error.proto | 46 + .../googleads/v10/errors/database_error.proto | 54 + .../ads/googleads/v10/errors/date_error.proto | 72 + .../v10/errors/date_range_error.proto | 57 + .../googleads/v10/errors/distinct_error.proto | 48 + .../ads/googleads/v10/errors/enum_error.proto | 45 + google/ads/googleads/v10/errors/errors.proto | 735 + .../v10/errors/experiment_arm_error.proto | 86 + .../v10/errors/experiment_error.proto | 120 + .../errors/extension_feed_item_error.proto | 193 + .../v10/errors/extension_setting_error.proto | 259 + .../feed_attribute_reference_error.proto | 51 + .../ads/googleads/v10/errors/feed_error.proto | 112 + .../v10/errors/feed_item_error.proto | 69 + .../v10/errors/feed_item_set_error.proto | 69 + .../v10/errors/feed_item_set_link_error.proto | 49 + .../v10/errors/feed_item_target_error.proto | 68 + .../errors/feed_item_validation_error.proto | 375 + .../v10/errors/feed_mapping_error.proto | 98 + .../googleads/v10/errors/field_error.proto | 63 + .../v10/errors/field_mask_error.proto | 56 + .../googleads/v10/errors/function_error.proto | 91 + .../v10/errors/function_parsing_error.proto | 75 + ...geo_target_constant_suggestion_error.proto | 54 + .../googleads/v10/errors/header_error.proto | 48 + .../ads/googleads/v10/errors/id_error.proto | 45 + .../googleads/v10/errors/image_error.proto | 162 + .../googleads/v10/errors/internal_error.proto | 56 + .../googleads/v10/errors/invoice_error.proto | 58 + .../errors/keyword_plan_ad_group_error.proto | 51 + .../keyword_plan_ad_group_keyword_error.proto | 70 + .../errors/keyword_plan_campaign_error.proto | 63 + .../keyword_plan_campaign_keyword_error.proto | 47 + .../v10/errors/keyword_plan_error.proto | 89 + .../v10/errors/keyword_plan_idea_error.proto | 48 + .../googleads/v10/errors/label_error.proto | 71 + .../v10/errors/language_code_error.proto | 48 + .../v10/errors/list_operation_error.proto | 48 + .../v10/errors/manager_link_error.proto | 101 + .../v10/errors/media_bundle_error.proto | 108 + .../v10/errors/media_file_error.proto | 111 + .../v10/errors/media_upload_error.proto | 150 + .../v10/errors/merchant_center_error.proto | 48 + .../v10/errors/multiplier_error.proto | 79 + .../googleads/v10/errors/mutate_error.proto | 70 + .../errors/new_resource_creation_error.proto | 52 + .../v10/errors/not_allowlisted_error.proto | 45 + .../v10/errors/not_empty_error.proto | 45 + .../ads/googleads/v10/errors/null_error.proto | 45 + .../errors/offline_user_data_job_error.proto | 159 + .../operation_access_denied_error.proto | 72 + .../googleads/v10/errors/operator_error.proto | 45 + .../v10/errors/partial_failure_error.proto | 46 + .../v10/errors/payments_account_error.proto | 45 + .../v10/errors/policy_finding_error.proto | 49 + .../policy_validation_parameter_error.proto | 52 + .../v10/errors/policy_violation_error.proto | 45 + .../googleads/v10/errors/query_error.proto | 225 + .../googleads/v10/errors/quota_error.proto | 51 + .../googleads/v10/errors/range_error.proto | 48 + .../v10/errors/reach_plan_error.proto | 46 + .../v10/errors/recommendation_error.proto | 88 + .../v10/errors/region_code_error.proto | 45 + .../googleads/v10/errors/request_error.proto | 117 + .../errors/resource_access_denied_error.proto | 45 + .../resource_count_limit_exceeded_error.proto | 91 + .../googleads/v10/errors/setting_error.proto | 83 + .../v10/errors/shared_criterion_error.proto | 45 + .../v10/errors/shared_set_error.proto | 54 + .../v10/errors/size_limit_error.proto | 48 + .../v10/errors/string_format_error.proto | 48 + .../v10/errors/string_length_error.proto | 52 + ...third_party_app_analytics_link_error.proto | 55 + .../v10/errors/time_zone_error.proto | 45 + .../v10/errors/url_field_error.proto | 215 + .../v10/errors/user_data_error.proto | 52 + .../v10/errors/user_list_error.proto | 127 + .../youtube_video_registration_error.proto | 51 + google/ads/googleads/v10/googleads_gapic.yaml | 26 + .../v10/googleads_grpc_service_config.json | 324 + google/ads/googleads/v10/googleads_v10.yaml | 810 + .../ads/googleads/v10/resources/BUILD.bazel | 97 + .../accessible_bidding_strategy.proto | 171 + .../v10/resources/account_budget.proto | 251 + .../resources/account_budget_proposal.proto | 159 + .../v10/resources/account_link.proto | 133 + google/ads/googleads/v10/resources/ad.proto | 196 + .../googleads/v10/resources/ad_group.proto | 201 + .../googleads/v10/resources/ad_group_ad.proto | 102 + .../ad_group_ad_asset_combination_view.proto | 64 + .../resources/ad_group_ad_asset_view.proto | 104 + .../v10/resources/ad_group_ad_label.proto | 65 + .../v10/resources/ad_group_asset.proto | 79 + .../resources/ad_group_audience_view.proto | 53 + .../v10/resources/ad_group_bid_modifier.proto | 111 + .../v10/resources/ad_group_criterion.proto | 293 + .../ad_group_criterion_customizer.proto | 76 + .../resources/ad_group_criterion_label.proto | 65 + .../ad_group_criterion_simulation.proto | 89 + .../v10/resources/ad_group_customizer.proto | 75 + .../ad_group_extension_setting.proto | 78 + .../v10/resources/ad_group_feed.proto | 82 + .../v10/resources/ad_group_label.proto | 65 + .../v10/resources/ad_group_simulation.proto | 93 + .../v10/resources/ad_parameter.proto | 81 + .../v10/resources/ad_schedule_view.proto | 51 + .../v10/resources/age_range_view.proto | 50 + .../ads/googleads/v10/resources/asset.proto | 179 + .../v10/resources/asset_field_type_view.proto | 56 + .../googleads/v10/resources/asset_group.proto | 87 + .../v10/resources/asset_group_asset.proto | 82 + .../asset_group_listing_group_filter.proto | 172 + .../asset_group_product_group_view.proto | 66 + .../v10/resources/asset_group_signal.proto | 63 + .../googleads/v10/resources/asset_set.proto | 79 + .../v10/resources/asset_set_asset.proto | 69 + .../googleads/v10/resources/audience.proto | 76 + .../googleads/v10/resources/batch_job.proto | 97 + .../resources/bidding_data_exclusion.proto | 107 + .../bidding_seasonality_adjustment.proto | 113 + .../v10/resources/bidding_strategy.proto | 138 + .../bidding_strategy_simulation.proto | 81 + .../v10/resources/billing_setup.proto | 137 + .../googleads/v10/resources/call_view.proto | 79 + .../googleads/v10/resources/campaign.proto | 468 + .../v10/resources/campaign_asset.proto | 75 + .../v10/resources/campaign_asset_set.proto | 71 + .../resources/campaign_audience_view.proto | 54 + .../v10/resources/campaign_bid_modifier.proto | 75 + .../v10/resources/campaign_budget.proto | 155 + .../resources/campaign_conversion_goal.proto | 68 + .../v10/resources/campaign_criterion.proto | 180 + .../campaign_criterion_simulation.proto | 82 + .../v10/resources/campaign_customizer.proto | 75 + .../v10/resources/campaign_draft.proto | 97 + .../v10/resources/campaign_experiment.proto | 120 + .../campaign_extension_setting.proto | 78 + .../v10/resources/campaign_feed.proto | 82 + .../v10/resources/campaign_group.proto | 68 + .../v10/resources/campaign_label.proto | 65 + .../v10/resources/campaign_shared_set.proto | 76 + .../v10/resources/campaign_simulation.proto | 101 + .../v10/resources/carrier_constant.proto | 60 + .../v10/resources/change_event.proto | 208 + .../v10/resources/change_status.proto | 192 + .../googleads/v10/resources/click_view.proto | 107 + .../v10/resources/combined_audience.proto | 66 + .../v10/resources/conversion_action.proto | 191 + .../conversion_custom_variable.proto | 85 + .../conversion_goal_campaign_config.proto | 65 + .../v10/resources/conversion_value_rule.proto | 134 + .../resources/conversion_value_rule_set.proto | 99 + .../v10/resources/currency_constant.proto | 63 + .../v10/resources/custom_audience.proto | 106 + .../resources/custom_conversion_goal.proto | 63 + .../v10/resources/custom_interest.proto | 88 + .../googleads/v10/resources/customer.proto | 187 + .../v10/resources/customer_asset.proto | 70 + .../v10/resources/customer_client.proto | 104 + .../v10/resources/customer_client_link.proto | 69 + .../resources/customer_conversion_goal.proto | 63 + .../v10/resources/customer_customizer.proto | 67 + .../customer_extension_setting.proto | 66 + .../v10/resources/customer_feed.proto | 74 + .../v10/resources/customer_label.proto | 71 + .../v10/resources/customer_manager_link.proto | 64 + .../customer_negative_criterion.proto | 81 + .../v10/resources/customer_user_access.proto | 71 + .../customer_user_access_invitation.proto | 72 + .../v10/resources/customizer_attribute.proto | 71 + .../v10/resources/detail_placement_view.proto | 70 + .../v10/resources/detailed_demographic.proto | 73 + .../v10/resources/display_keyword_view.proto | 50 + .../v10/resources/distance_view.proto | 61 + .../v10/resources/domain_category.proto | 89 + .../dynamic_search_ads_search_term_view.proto | 85 + .../expanded_landing_page_view.proto | 54 + .../googleads/v10/resources/experiment.proto | 106 + .../v10/resources/experiment_arm.proto | 84 + .../v10/resources/extension_feed_item.proto | 150 + google/ads/googleads/v10/resources/feed.proto | 189 + .../googleads/v10/resources/feed_item.proto | 213 + .../v10/resources/feed_item_set.proto | 83 + .../v10/resources/feed_item_set_link.proto | 65 + .../v10/resources/feed_item_target.proto | 107 + .../v10/resources/feed_mapping.proto | 188 + .../v10/resources/feed_placeholder_view.proto | 54 + .../googleads/v10/resources/gender_view.proto | 50 + .../v10/resources/geo_target_constant.proto | 81 + .../v10/resources/geographic_view.proto | 62 + .../v10/resources/google_ads_field.proto | 107 + .../v10/resources/group_placement_view.proto | 65 + .../v10/resources/hotel_group_view.proto | 50 + .../resources/hotel_performance_view.proto | 50 + .../v10/resources/hotel_reconciliation.proto | 116 + .../v10/resources/income_range_view.proto | 50 + .../ads/googleads/v10/resources/invoice.proto | 202 + .../v10/resources/keyword_plan.proto | 81 + .../v10/resources/keyword_plan_ad_group.proto | 70 + .../keyword_plan_ad_group_keyword.proto | 76 + .../v10/resources/keyword_plan_campaign.proto | 97 + .../keyword_plan_campaign_keyword.proto | 70 + .../resources/keyword_theme_constant.proto | 63 + .../v10/resources/keyword_view.proto | 50 + .../ads/googleads/v10/resources/label.proto | 65 + .../v10/resources/landing_page_view.proto | 54 + .../v10/resources/language_constant.proto | 63 + .../resources/lead_form_submission_data.proto | 105 + .../googleads/v10/resources/life_event.proto | 72 + .../v10/resources/location_view.proto | 51 + .../resources/managed_placement_view.proto | 50 + .../googleads/v10/resources/media_file.proto | 136 + .../v10/resources/merchant_center_link.proto | 63 + .../mobile_app_category_constant.proto | 56 + .../resources/mobile_device_constant.proto | 66 + .../v10/resources/offline_user_data_job.proto | 94 + .../operating_system_version_constant.proto | 69 + .../paid_organic_search_term_view.proto | 55 + .../v10/resources/parental_status_view.proto | 50 + .../v10/resources/payments_account.proto | 77 + .../product_bidding_category_constant.proto | 82 + .../v10/resources/product_group_view.proto | 50 + .../v10/resources/recommendation.proto | 386 + .../v10/resources/remarketing_action.proto | 65 + .../v10/resources/search_term_view.proto | 67 + .../v10/resources/shared_criterion.proto | 91 + .../googleads/v10/resources/shared_set.proto | 76 + .../resources/shopping_performance_view.proto | 54 + .../smart_campaign_search_term_view.proto | 61 + .../resources/smart_campaign_setting.proto | 90 + .../third_party_app_analytics_link.proto | 54 + .../v10/resources/topic_constant.proto | 70 + .../googleads/v10/resources/topic_view.proto | 50 + .../v10/resources/user_interest.proto | 75 + .../googleads/v10/resources/user_list.proto | 173 + .../v10/resources/user_location_view.proto | 61 + .../ads/googleads/v10/resources/video.proto | 62 + .../v10/resources/webpage_view.proto | 50 + google/ads/googleads/v10/services/BUILD.bazel | 138 + .../account_budget_proposal_service.proto | 132 + .../v10/services/account_link_service.proto | 164 + .../services/ad_group_ad_label_service.proto | 120 + .../v10/services/ad_group_ad_service.proto | 172 + .../v10/services/ad_group_asset_service.proto | 139 + .../ad_group_bid_modifier_service.proto | 151 + ...d_group_criterion_customizer_service.proto | 121 + .../ad_group_criterion_label_service.proto | 119 + .../services/ad_group_criterion_service.proto | 171 + .../ad_group_customizer_service.proto | 118 + .../ad_group_extension_setting_service.proto | 159 + .../v10/services/ad_group_feed_service.proto | 149 + .../v10/services/ad_group_label_service.proto | 121 + .../v10/services/ad_group_service.proto | 155 + .../v10/services/ad_parameter_service.proto | 139 + .../googleads/v10/services/ad_service.proto | 186 + .../services/asset_group_asset_service.proto | 115 + ...t_group_listing_group_filter_service.proto | 120 + .../v10/services/asset_group_service.proto | 108 + .../services/asset_group_signal_service.proto | 117 + .../v10/services/asset_service.proto | 150 + .../services/asset_set_asset_service.proto | 117 + .../v10/services/asset_set_service.proto | 123 + .../v10/services/audience_service.proto | 118 + .../v10/services/batch_job_service.proto | 269 + .../bidding_data_exclusion_service.proto | 125 + ...dding_seasonality_adjustment_service.proto | 125 + .../services/bidding_strategy_service.proto | 154 + .../v10/services/billing_setup_service.proto | 112 + .../v10/services/campaign_asset_service.proto | 140 + .../services/campaign_asset_set_service.proto | 117 + .../campaign_bid_modifier_service.proto | 151 + .../services/campaign_budget_service.proto | 144 + .../campaign_conversion_goal_service.proto | 92 + .../services/campaign_criterion_service.proto | 155 + .../campaign_customizer_service.proto | 118 + .../v10/services/campaign_draft_service.proto | 236 + .../campaign_experiment_service.proto | 374 + .../campaign_extension_setting_service.proto | 158 + .../v10/services/campaign_feed_service.proto | 150 + .../v10/services/campaign_group_service.proto | 129 + .../v10/services/campaign_label_service.proto | 121 + .../v10/services/campaign_service.proto | 160 + .../campaign_shared_set_service.proto | 141 + .../services/conversion_action_service.proto | 144 + ...conversion_adjustment_upload_service.proto | 200 + .../conversion_custom_variable_service.proto | 132 + ...version_goal_campaign_config_service.proto | 103 + .../services/conversion_upload_service.proto | 347 + .../conversion_value_rule_service.proto | 128 + .../conversion_value_rule_set_service.proto | 128 + .../services/custom_audience_service.proto | 117 + .../custom_conversion_goal_service.proto | 114 + .../services/custom_interest_service.proto | 107 + .../v10/services/customer_asset_service.proto | 137 + .../customer_client_link_service.proto | 104 + .../customer_conversion_goal_service.proto | 92 + .../customer_customizer_service.proto | 118 + .../customer_extension_setting_service.proto | 156 + .../v10/services/customer_feed_service.proto | 149 + .../v10/services/customer_label_service.proto | 119 + .../customer_manager_link_service.proto | 157 + .../customer_negative_criterion_service.proto | 128 + .../v10/services/customer_service.proto | 191 + ...tomer_user_access_invitation_service.proto | 101 + .../customer_user_access_service.proto | 105 + .../customizer_attribute_service.proto | 122 + .../v10/services/experiment_arm_service.proto | 134 + .../v10/services/experiment_service.proto | 390 + .../extension_feed_item_service.proto | 152 + .../v10/services/feed_item_service.proto | 151 + .../services/feed_item_set_link_service.proto | 115 + .../v10/services/feed_item_set_service.proto | 123 + .../services/feed_item_target_service.proto | 138 + .../v10/services/feed_mapping_service.proto | 138 + .../googleads/v10/services/feed_service.proto | 150 + .../geo_target_constant_service.proto | 117 + .../services/google_ads_field_service.proto | 115 + .../v10/services/google_ads_service.proto | 1482 + .../v10/services/invoice_service.proto | 83 + ...eyword_plan_ad_group_keyword_service.proto | 139 + .../keyword_plan_ad_group_service.proto | 134 + ...eyword_plan_campaign_keyword_service.proto | 136 + .../keyword_plan_campaign_service.proto | 135 + .../services/keyword_plan_idea_service.proto | 246 + .../v10/services/keyword_plan_service.proto | 421 + .../keyword_theme_constant_service.proto | 77 + .../v10/services/label_service.proto | 145 + .../v10/services/media_file_service.proto | 131 + .../merchant_center_link_service.proto | 164 + .../offline_user_data_job_service.proto | 212 + .../services/payments_account_service.proto | 71 + .../v10/services/reach_plan_service.proto | 568 + .../v10/services/recommendation_service.proto | 304 + .../services/remarketing_action_service.proto | 116 + .../services/shared_criterion_service.proto | 139 + .../v10/services/shared_set_service.proto | 149 + .../smart_campaign_setting_service.proto | 111 + .../smart_campaign_suggest_service.proto | 224 + ...ird_party_app_analytics_link_service.proto | 69 + .../v10/services/user_data_service.proto | 97 + .../v10/services/user_list_service.proto | 136 + google/ads/googleads/v11/BUILD.bazel | 266 + google/ads/googleads/v11/common/BUILD.bazel | 94 + .../ads/googleads/v11/common/ad_asset.proto | 74 + .../googleads/v11/common/ad_type_infos.proto | 797 + .../googleads/v11/common/asset_policy.proto | 45 + .../googleads/v11/common/asset_types.proto | 983 + .../googleads/v11/common/asset_usage.proto | 39 + .../ads/googleads/v11/common/audiences.proto | 173 + google/ads/googleads/v11/common/bidding.proto | 208 + .../googleads/v11/common/click_location.proto | 46 + .../ads/googleads/v11/common/criteria.proto | 698 + .../criterion_category_availability.proto | 81 + .../v11/common/custom_parameter.proto | 38 + .../v11/common/customizer_value.proto | 44 + google/ads/googleads/v11/common/dates.proto | 58 + .../explorer_auto_optimizer_setting.proto | 36 + .../ads/googleads/v11/common/extensions.proto | 367 + .../googleads/v11/common/feed_common.proto | 37 + .../feed_item_set_filter_type_infos.proto | 57 + .../googleads/v11/common/final_app_url.proto | 45 + .../googleads/v11/common/frequency_cap.proto | 60 + .../v11/common/keyword_plan_common.proto | 148 + .../v11/common/matching_function.proto | 125 + .../googleads/v11/common/metric_goal.proto | 42 + google/ads/googleads/v11/common/metrics.proto | 674 + .../v11/common/offline_user_data.proto | 333 + google/ads/googleads/v11/common/policy.proto | 219 + .../googleads/v11/common/policy_summary.proto | 45 + .../common/real_time_bidding_setting.proto | 35 + .../ads/googleads/v11/common/segments.proto | 400 + .../ads/googleads/v11/common/simulation.proto | 356 + .../googleads/v11/common/tag_snippet.proto | 49 + .../v11/common/targeting_setting.proto | 84 + .../ads/googleads/v11/common/text_label.proto | 38 + .../googleads/v11/common/url_collection.proto | 43 + .../ads/googleads/v11/common/user_lists.proto | 292 + google/ads/googleads/v11/common/value.proto | 49 + google/ads/googleads/v11/enums/BUILD.bazel | 89 + .../v11/enums/access_invitation_status.proto | 53 + .../googleads/v11/enums/access_reason.proto | 55 + .../ads/googleads/v11/enums/access_role.proto | 53 + .../account_budget_proposal_status.proto | 61 + .../enums/account_budget_proposal_type.proto | 54 + .../v11/enums/account_budget_status.proto | 51 + .../v11/enums/account_link_status.proto | 61 + .../ad_customizer_placeholder_field.proto | 54 + .../v11/enums/ad_destination_type.proto | 75 + .../v11/enums/ad_group_ad_rotation_mode.proto | 51 + .../v11/enums/ad_group_ad_status.proto | 53 + .../ad_group_criterion_approval_status.proto | 54 + .../v11/enums/ad_group_criterion_status.proto | 53 + .../googleads/v11/enums/ad_group_status.proto | 53 + .../googleads/v11/enums/ad_group_type.proto | 94 + .../googleads/v11/enums/ad_network_type.proto | 60 + .../ad_serving_optimization_status.proto | 62 + .../ads/googleads/v11/enums/ad_strength.proto | 60 + google/ads/googleads/v11/enums/ad_type.proto | 135 + .../enums/advertising_channel_sub_type.proto | 100 + .../v11/enums/advertising_channel_type.proto | 77 + ...iate_location_feed_relationship_type.proto | 46 + ...affiliate_location_placeholder_field.proto | 75 + .../googleads/v11/enums/age_range_type.proto | 64 + .../v11/enums/app_campaign_app_store.proto | 48 + ..._campaign_bidding_strategy_goal_type.proto | 68 + .../v11/enums/app_payment_model_type.proto | 45 + .../v11/enums/app_placeholder_field.proto | 73 + .../ads/googleads/v11/enums/app_store.proto | 48 + .../enums/app_url_operating_system_type.proto | 48 + .../v11/enums/asset_field_type.proto | 115 + .../v11/enums/asset_group_status.proto | 51 + .../v11/enums/asset_link_status.proto | 51 + .../v11/enums/asset_performance_label.proto | 60 + .../v11/enums/asset_set_asset_status.proto | 49 + .../v11/enums/asset_set_link_status.proto | 50 + .../v11/enums/asset_set_status.proto | 49 + .../googleads/v11/enums/asset_set_type.proto | 72 + .../googleads/v11/enums/asset_source.proto | 49 + .../ads/googleads/v11/enums/asset_type.proto | 117 + .../v11/enums/async_action_status.proto | 57 + .../v11/enums/attribution_model.proto | 70 + .../enums/audience_insights_dimension.proto | 78 + .../googleads/v11/enums/audience_status.proto | 49 + .../v11/enums/batch_job_status.proto | 51 + .../v11/enums/bid_modifier_source.proto | 49 + .../googleads/v11/enums/bidding_source.proto | 53 + .../v11/enums/bidding_strategy_status.proto | 50 + .../bidding_strategy_system_status.proto | 139 + .../v11/enums/bidding_strategy_type.proto | 121 + .../v11/enums/billing_setup_status.proto | 56 + .../v11/enums/brand_safety_suitability.proto | 71 + .../budget_campaign_association_status.proto | 49 + .../v11/enums/budget_delivery_method.proto | 51 + .../googleads/v11/enums/budget_period.proto | 51 + .../googleads/v11/enums/budget_status.proto | 48 + .../ads/googleads/v11/enums/budget_type.proto | 71 + .../call_conversion_reporting_state.proto | 54 + .../v11/enums/call_placeholder_field.proto | 64 + .../v11/enums/call_to_action_type.proto | 69 + .../call_tracking_display_location.proto | 48 + .../ads/googleads/v11/enums/call_type.proto | 49 + .../v11/enums/callout_placeholder_field.proto | 45 + .../v11/enums/campaign_criterion_status.proto | 53 + .../v11/enums/campaign_draft_status.proto | 63 + .../enums/campaign_experiment_status.proto | 75 + ...mpaign_experiment_traffic_split_type.proto | 51 + .../v11/enums/campaign_experiment_type.proto | 57 + .../v11/enums/campaign_group_status.proto | 48 + .../v11/enums/campaign_serving_status.proto | 59 + .../enums/campaign_shared_set_status.proto | 48 + .../googleads/v11/enums/campaign_status.proto | 51 + .../v11/enums/change_client_type.proto | 85 + .../enums/change_event_resource_type.proto | 101 + .../v11/enums/change_status_operation.proto | 52 + .../enums/change_status_resource_type.proto | 92 + .../ads/googleads/v11/enums/click_type.proto | 204 + .../v11/enums/combined_audience_status.proto | 49 + .../v11/enums/content_label_type.proto | 87 + .../enums/conversion_action_category.proto | 114 + .../conversion_action_counting_type.proto | 50 + .../v11/enums/conversion_action_status.proto | 52 + .../v11/enums/conversion_action_type.proto | 173 + .../enums/conversion_adjustment_type.proto | 54 + .../conversion_attribution_event_type.proto | 46 + .../conversion_custom_variable_status.proto | 56 + .../enums/conversion_environment_enum.proto | 47 + .../v11/enums/conversion_lag_bucket.proto | 115 + .../conversion_or_adjustment_lag_bucket.proto | 204 + .../v11/enums/conversion_origin.proto | 65 + .../conversion_tracking_status_enum.proto | 56 + ...version_value_rule_primary_dimension.proto | 64 + .../conversion_value_rule_set_status.proto | 53 + .../enums/conversion_value_rule_status.proto | 51 + ...n_category_channel_availability_mode.proto | 56 + ...on_category_locale_availability_mode.proto | 59 + .../criterion_system_serving_status.proto | 48 + .../googleads/v11/enums/criterion_type.proto | 144 + .../enums/custom_audience_member_type.proto | 54 + .../v11/enums/custom_audience_status.proto | 49 + .../v11/enums/custom_audience_type.proto | 56 + .../enums/custom_conversion_goal_status.proto | 48 + .../enums/custom_interest_member_type.proto | 48 + .../v11/enums/custom_interest_status.proto | 49 + .../v11/enums/custom_interest_type.proto | 48 + .../v11/enums/custom_placeholder_field.proto | 127 + .../customer_match_upload_key_type.proto | 51 + ...onversion_eligibility_failure_reason.proto | 66 + .../googleads/v11/enums/customer_status.proto | 56 + .../enums/customizer_attribute_status.proto | 48 + .../v11/enums/customizer_attribute_type.proto | 54 + .../v11/enums/customizer_value_status.proto | 48 + .../v11/enums/data_driven_model_status.proto | 60 + .../ads/googleads/v11/enums/day_of_week.proto | 63 + google/ads/googleads/v11/enums/device.proto | 57 + .../v11/enums/display_ad_format_setting.proto | 52 + .../enums/display_upload_product_type.proto | 95 + .../googleads/v11/enums/distance_bucket.proto | 125 + .../enums/dsa_page_feed_criterion_field.proto | 49 + .../enums/education_placeholder_field.proto | 109 + .../v11/enums/experiment_metric.proto | 81 + .../enums/experiment_metric_direction.proto | 59 + .../v11/enums/experiment_status.proto | 65 + .../googleads/v11/enums/experiment_type.proto | 72 + .../v11/enums/extension_setting_device.proto | 50 + .../googleads/v11/enums/extension_type.proto | 82 + .../enums/external_conversion_source.proto | 153 + .../v11/enums/feed_attribute_type.proto | 81 + .../feed_item_quality_approval_status.proto | 50 + ...feed_item_quality_disapproval_reason.proto | 97 + .../v11/enums/feed_item_set_status.proto | 48 + .../feed_item_set_string_filter_type.proto | 43 + .../v11/enums/feed_item_status.proto | 48 + .../v11/enums/feed_item_target_device.proto | 46 + .../v11/enums/feed_item_target_status.proto | 48 + .../v11/enums/feed_item_target_type.proto | 51 + .../enums/feed_item_validation_status.proto | 51 + .../v11/enums/feed_link_status.proto | 48 + .../enums/feed_mapping_criterion_type.proto | 48 + .../v11/enums/feed_mapping_status.proto | 48 + .../ads/googleads/v11/enums/feed_origin.proto | 51 + .../ads/googleads/v11/enums/feed_status.proto | 48 + .../v11/enums/flight_placeholder_field.proto | 116 + .../v11/enums/frequency_cap_event_type.proto | 48 + .../v11/enums/frequency_cap_level.proto | 52 + .../v11/enums/frequency_cap_time_unit.proto | 51 + .../ads/googleads/v11/enums/gender_type.proto | 51 + .../enums/geo_target_constant_status.proto | 50 + .../v11/enums/geo_targeting_restriction.proto | 47 + .../v11/enums/geo_targeting_type.proto | 48 + .../v11/enums/goal_config_level.proto | 50 + .../v11/enums/google_ads_field_category.proto | 59 + .../enums/google_ads_field_data_type.proto | 100 + .../v11/enums/google_voice_call_status.proto | 48 + .../v11/enums/hotel_date_selection_type.proto | 48 + .../v11/enums/hotel_placeholder_field.proto | 122 + .../v11/enums/hotel_price_bucket.proto | 57 + .../googleads/v11/enums/hotel_rate_type.proto | 60 + .../enums/hotel_reconciliation_status.proto | 60 + .../v11/enums/image_placeholder_field.proto | 45 + .../v11/enums/income_range_type.proto | 63 + .../v11/enums/interaction_event_type.proto | 60 + .../v11/enums/interaction_type.proto | 45 + .../googleads/v11/enums/invoice_type.proto | 48 + .../v11/enums/job_placeholder_field.proto | 113 + .../v11/enums/keyword_match_type.proto | 51 + .../keyword_plan_aggregate_metric_type.proto | 45 + .../keyword_plan_competition_level.proto | 55 + .../keyword_plan_concept_group_type.proto | 56 + .../keyword_plan_forecast_interval.proto | 54 + .../keyword_plan_keyword_annotation.proto | 45 + .../v11/enums/keyword_plan_network.proto | 48 + .../googleads/v11/enums/label_status.proto | 46 + .../enums/lead_form_call_to_action_type.proto | 82 + .../v11/enums/lead_form_desired_intent.proto | 46 + .../lead_form_field_user_input_type.proto | 487 + ...form_post_submit_call_to_action_type.proto | 53 + .../legacy_app_install_ad_app_store.proto | 57 + .../v11/enums/linked_account_type.proto | 53 + ..._group_filter_bidding_category_level.proto | 58 + ..._group_filter_custom_attribute_index.proto | 58 + ...listing_group_filter_product_channel.proto | 48 + ...sting_group_filter_product_condition.proto | 51 + ...ting_group_filter_product_type_level.proto | 57 + .../listing_group_filter_type_enum.proto | 51 + .../enums/listing_group_filter_vertical.proto | 46 + .../v11/enums/listing_group_type.proto | 50 + .../v11/enums/local_placeholder_field.proto | 117 + ..._extension_targeting_criterion_field.proto | 60 + .../enums/location_group_radius_units.proto | 51 + .../enums/location_placeholder_field.proto | 66 + .../v11/enums/location_source_type.proto | 48 + .../v11/enums/manager_link_status.proto | 57 + .../matching_function_context_type.proto | 51 + .../enums/matching_function_operator.proto | 63 + .../ads/googleads/v11/enums/media_type.proto | 62 + .../enums/merchant_center_link_status.proto | 51 + .../v11/enums/message_placeholder_field.proto | 59 + .../ads/googleads/v11/enums/mime_type.proto | 80 + .../googleads/v11/enums/minute_of_hour.proto | 54 + .../v11/enums/mobile_app_vendor.proto | 46 + .../v11/enums/mobile_device_type.proto | 48 + .../googleads/v11/enums/month_of_year.proto | 78 + .../v11/enums/negative_geo_target_type.proto | 50 + ...offline_user_data_job_failure_reason.proto | 49 + ...fline_user_data_job_match_rate_range.proto | 69 + .../enums/offline_user_data_job_status.proto | 54 + .../enums/offline_user_data_job_type.proto | 54 + ...erating_system_version_operator_type.proto | 48 + .../v11/enums/optimization_goal_type.proto | 56 + .../v11/enums/parental_status_type.proto | 51 + .../googleads/v11/enums/payment_mode.proto | 62 + .../performance_max_upgrade_status.proto | 55 + .../v11/enums/placeholder_type.proto | 122 + .../googleads/v11/enums/placement_type.proto | 57 + .../v11/enums/policy_approval_status.proto | 59 + .../v11/enums/policy_review_status.proto | 58 + .../v11/enums/policy_topic_entry_type.proto | 64 + ...idence_destination_mismatch_url_type.proto | 60 + ...dence_destination_not_working_device.proto | 55 + ...stination_not_working_dns_error_type.proto | 54 + .../v11/enums/positive_geo_target_type.proto | 56 + .../v11/enums/preferred_content_type.proto | 45 + .../price_extension_price_qualifier.proto | 51 + .../enums/price_extension_price_unit.proto | 60 + .../v11/enums/price_extension_type.proto | 69 + .../v11/enums/price_placeholder_field.proto | 246 + .../product_bidding_category_level.proto | 55 + .../product_bidding_category_status.proto | 48 + .../googleads/v11/enums/product_channel.proto | 48 + .../enums/product_channel_exclusivity.proto | 50 + .../v11/enums/product_condition.proto | 51 + .../product_custom_attribute_index.proto | 57 + .../v11/enums/product_type_level.proto | 57 + ...romotion_extension_discount_modifier.proto | 46 + .../enums/promotion_extension_occasion.proto | 155 + .../enums/promotion_placeholder_field.proto | 93 + .../v11/enums/proximity_radius_units.proto | 48 + .../v11/enums/quality_score_bucket.proto | 51 + .../v11/enums/reach_plan_ad_length.proto | 51 + .../v11/enums/reach_plan_age_range.proto | 120 + .../v11/enums/reach_plan_network.proto | 52 + .../enums/real_estate_placeholder_field.proto | 113 + .../v11/enums/recommendation_type.proto | 131 + .../v11/enums/resource_change_operation.proto | 53 + .../v11/enums/resource_limit_type.proto | 461 + .../v11/enums/response_content_type.proto | 46 + .../search_engine_results_page_type.proto | 52 + .../v11/enums/search_term_match_type.proto | 57 + .../enums/search_term_targeting_status.proto | 56 + .../v11/enums/seasonality_event_scope.proto | 57 + .../v11/enums/seasonality_event_status.proto | 51 + .../v11/enums/served_asset_field_type.proto | 59 + .../v11/enums/shared_set_status.proto | 48 + .../googleads/v11/enums/shared_set_type.proto | 48 + .../simulation_modification_method.proto | 57 + .../googleads/v11/enums/simulation_type.proto | 66 + .../enums/sitelink_placeholder_field.proto | 67 + .../enums/sk_ad_network_ad_event_type.proto | 52 + .../sk_ad_network_attribution_credit.proto | 53 + .../v11/enums/sk_ad_network_user_type.proto | 52 + google/ads/googleads/v11/enums/slot.proto | 63 + .../v11/enums/spending_limit_type.proto | 46 + ...structured_snippet_placeholder_field.proto | 53 + .../v11/enums/summary_row_setting.proto | 52 + .../enums/system_managed_entity_source.proto | 45 + ...arget_cpa_opt_in_recommendation_goal.proto | 55 + .../target_impression_share_location.proto | 53 + .../v11/enums/targeting_dimension.proto | 72 + .../ads/googleads/v11/enums/time_type.proto | 49 + .../v11/enums/tracking_code_page_format.proto | 48 + .../v11/enums/tracking_code_type.proto | 57 + .../v11/enums/travel_placeholder_field.proto | 126 + .../v11/enums/user_identifier_source.proto | 52 + .../enums/user_interest_taxonomy_type.proto | 57 + .../v11/enums/user_list_access_status.proto | 48 + .../v11/enums/user_list_closing_reason.proto | 46 + .../user_list_combined_rule_operator.proto | 46 + .../user_list_crm_data_source_type.proto | 49 + .../user_list_date_rule_item_operator.proto | 52 + .../user_list_flexible_rule_operator.proto | 46 + .../user_list_logical_rule_operator.proto | 49 + .../enums/user_list_membership_status.proto | 50 + .../user_list_number_rule_item_operator.proto | 58 + .../user_list_prepopulation_status.proto | 49 + .../v11/enums/user_list_rule_type.proto | 46 + .../v11/enums/user_list_size_range.proto | 90 + .../user_list_string_rule_item_operator.proto | 64 + .../googleads/v11/enums/user_list_type.proto | 61 + .../v11/enums/value_rule_device_type.proto | 52 + .../value_rule_geo_location_match_type.proto | 49 + .../v11/enums/value_rule_operation.proto | 52 + .../value_rule_set_attachment_type.proto | 48 + .../v11/enums/value_rule_set_dimension.proto | 55 + .../vanity_pharma_display_url_mode.proto | 48 + .../v11/enums/vanity_pharma_text.proto | 85 + .../googleads/v11/enums/video_thumbnail.proto | 57 + .../v11/enums/webpage_condition_operand.proto | 57 + .../enums/webpage_condition_operator.proto | 49 + google/ads/googleads/v11/errors/BUILD.bazel | 94 + .../v11/errors/access_invitation_error.proto | 67 + .../account_budget_proposal_error.proto | 120 + .../v11/errors/account_link_error.proto | 45 + .../v11/errors/ad_customizer_error.proto | 57 + .../ads/googleads/v11/errors/ad_error.proto | 528 + .../v11/errors/ad_group_ad_error.proto | 78 + .../errors/ad_group_bid_modifier_error.proto | 49 + .../ad_group_criterion_customizer_error.proto | 45 + .../v11/errors/ad_group_criterion_error.proto | 135 + .../errors/ad_group_customizer_error.proto | 42 + .../googleads/v11/errors/ad_group_error.proto | 89 + .../v11/errors/ad_group_feed_error.proto | 65 + .../v11/errors/ad_parameter_error.proto | 48 + .../v11/errors/ad_sharing_error.proto | 52 + .../ads/googleads/v11/errors/adx_error.proto | 45 + .../googleads/v11/errors/asset_error.proto | 154 + .../v11/errors/asset_group_asset_error.proto | 51 + .../v11/errors/asset_group_error.proto | 72 + ...set_group_listing_group_filter_error.proto | 83 + .../v11/errors/asset_link_error.proto | 119 + .../v11/errors/asset_set_asset_error.proto | 54 + .../v11/errors/asset_set_error.proto | 45 + .../v11/errors/asset_set_link_error.proto | 59 + .../googleads/v11/errors/audience_error.proto | 68 + .../v11/errors/audience_insights_error.proto | 46 + .../v11/errors/authentication_error.proto | 101 + .../v11/errors/authorization_error.proto | 93 + .../v11/errors/batch_job_error.proto | 61 + .../googleads/v11/errors/bidding_error.proto | 131 + .../v11/errors/bidding_strategy_error.proto | 59 + .../v11/errors/billing_setup_error.proto | 107 + .../v11/errors/campaign_budget_error.proto | 98 + .../campaign_conversion_goal_error.proto | 45 + .../v11/errors/campaign_criterion_error.proto | 97 + .../errors/campaign_customizer_error.proto | 42 + .../v11/errors/campaign_draft_error.proto | 77 + .../googleads/v11/errors/campaign_error.proto | 211 + .../errors/campaign_experiment_error.proto | 79 + .../v11/errors/campaign_feed_error.proto | 65 + .../errors/campaign_shared_set_error.proto | 45 + .../v11/errors/change_event_error.proto | 61 + .../v11/errors/change_status_error.proto | 61 + .../v11/errors/collection_size_error.proto | 48 + .../googleads/v11/errors/context_error.proto | 48 + .../v11/errors/conversion_action_error.proto | 80 + .../conversion_adjustment_upload_error.proto | 134 + .../conversion_custom_variable_error.proto | 52 + ...onversion_goal_campaign_config_error.proto | 53 + .../v11/errors/conversion_upload_error.proto | 209 + .../errors/conversion_value_rule_error.proto | 90 + .../conversion_value_rule_set_error.proto | 100 + .../v11/errors/country_code_error.proto | 45 + .../v11/errors/criterion_error.proto | 470 + .../v11/errors/currency_code_error.proto | 45 + .../v11/errors/custom_audience_error.proto | 66 + .../errors/custom_conversion_goal_error.proto | 59 + .../v11/errors/custom_interest_error.proto | 64 + .../errors/customer_client_link_error.proto | 66 + .../errors/customer_customizer_error.proto | 42 + .../googleads/v11/errors/customer_error.proto | 48 + .../v11/errors/customer_feed_error.proto | 64 + .../errors/customer_manager_link_error.proto | 73 + .../errors/customer_user_access_error.proto | 58 + .../errors/customizer_attribute_error.proto | 46 + .../googleads/v11/errors/database_error.proto | 54 + .../ads/googleads/v11/errors/date_error.proto | 72 + .../v11/errors/date_range_error.proto | 57 + .../googleads/v11/errors/distinct_error.proto | 48 + .../ads/googleads/v11/errors/enum_error.proto | 45 + google/ads/googleads/v11/errors/errors.proto | 739 + .../v11/errors/experiment_arm_error.proto | 86 + .../v11/errors/experiment_error.proto | 120 + .../errors/extension_feed_item_error.proto | 193 + .../v11/errors/extension_setting_error.proto | 259 + .../feed_attribute_reference_error.proto | 51 + .../ads/googleads/v11/errors/feed_error.proto | 112 + .../v11/errors/feed_item_error.proto | 69 + .../v11/errors/feed_item_set_error.proto | 69 + .../v11/errors/feed_item_set_link_error.proto | 49 + .../v11/errors/feed_item_target_error.proto | 68 + .../errors/feed_item_validation_error.proto | 375 + .../v11/errors/feed_mapping_error.proto | 98 + .../googleads/v11/errors/field_error.proto | 66 + .../v11/errors/field_mask_error.proto | 56 + .../googleads/v11/errors/function_error.proto | 91 + .../v11/errors/function_parsing_error.proto | 75 + ...geo_target_constant_suggestion_error.proto | 54 + .../googleads/v11/errors/header_error.proto | 48 + .../ads/googleads/v11/errors/id_error.proto | 45 + .../googleads/v11/errors/image_error.proto | 162 + .../googleads/v11/errors/internal_error.proto | 56 + .../googleads/v11/errors/invoice_error.proto | 58 + .../errors/keyword_plan_ad_group_error.proto | 51 + .../keyword_plan_ad_group_keyword_error.proto | 70 + .../errors/keyword_plan_campaign_error.proto | 63 + .../keyword_plan_campaign_keyword_error.proto | 47 + .../v11/errors/keyword_plan_error.proto | 89 + .../v11/errors/keyword_plan_idea_error.proto | 48 + .../googleads/v11/errors/label_error.proto | 71 + .../v11/errors/language_code_error.proto | 48 + .../v11/errors/list_operation_error.proto | 48 + .../v11/errors/manager_link_error.proto | 101 + .../v11/errors/media_bundle_error.proto | 108 + .../v11/errors/media_file_error.proto | 111 + .../v11/errors/media_upload_error.proto | 150 + .../v11/errors/merchant_center_error.proto | 48 + .../v11/errors/multiplier_error.proto | 80 + .../googleads/v11/errors/mutate_error.proto | 70 + .../errors/new_resource_creation_error.proto | 52 + .../v11/errors/not_allowlisted_error.proto | 45 + .../v11/errors/not_empty_error.proto | 45 + .../ads/googleads/v11/errors/null_error.proto | 45 + .../errors/offline_user_data_job_error.proto | 173 + .../operation_access_denied_error.proto | 72 + .../googleads/v11/errors/operator_error.proto | 45 + .../v11/errors/partial_failure_error.proto | 46 + .../v11/errors/payments_account_error.proto | 45 + .../v11/errors/policy_finding_error.proto | 49 + .../policy_validation_parameter_error.proto | 52 + .../v11/errors/policy_violation_error.proto | 45 + .../googleads/v11/errors/query_error.proto | 225 + .../googleads/v11/errors/quota_error.proto | 51 + .../googleads/v11/errors/range_error.proto | 48 + .../v11/errors/reach_plan_error.proto | 46 + .../v11/errors/recommendation_error.proto | 88 + .../v11/errors/region_code_error.proto | 45 + .../googleads/v11/errors/request_error.proto | 117 + .../errors/resource_access_denied_error.proto | 45 + .../resource_count_limit_exceeded_error.proto | 91 + .../googleads/v11/errors/setting_error.proto | 88 + .../v11/errors/shared_criterion_error.proto | 45 + .../v11/errors/shared_set_error.proto | 54 + .../v11/errors/size_limit_error.proto | 50 + .../v11/errors/string_format_error.proto | 48 + .../v11/errors/string_length_error.proto | 52 + ...third_party_app_analytics_link_error.proto | 55 + .../v11/errors/time_zone_error.proto | 45 + .../v11/errors/url_field_error.proto | 216 + .../v11/errors/user_data_error.proto | 52 + .../v11/errors/user_list_error.proto | 127 + .../youtube_video_registration_error.proto | 51 + google/ads/googleads/v11/googleads_gapic.yaml | 26 + .../v11/googleads_grpc_service_config.json | 327 + google/ads/googleads/v11/googleads_v11.yaml | 811 + .../ads/googleads/v11/resources/BUILD.bazel | 97 + .../accessible_bidding_strategy.proto | 171 + .../v11/resources/account_budget.proto | 253 + .../resources/account_budget_proposal.proto | 161 + .../v11/resources/account_link.proto | 133 + google/ads/googleads/v11/resources/ad.proto | 196 + .../googleads/v11/resources/ad_group.proto | 201 + .../googleads/v11/resources/ad_group_ad.proto | 102 + .../ad_group_ad_asset_combination_view.proto | 64 + .../resources/ad_group_ad_asset_view.proto | 104 + .../v11/resources/ad_group_ad_label.proto | 65 + .../v11/resources/ad_group_asset.proto | 83 + .../resources/ad_group_audience_view.proto | 53 + .../v11/resources/ad_group_bid_modifier.proto | 111 + .../v11/resources/ad_group_criterion.proto | 293 + .../ad_group_criterion_customizer.proto | 76 + .../resources/ad_group_criterion_label.proto | 65 + .../ad_group_criterion_simulation.proto | 89 + .../v11/resources/ad_group_customizer.proto | 75 + .../ad_group_extension_setting.proto | 78 + .../v11/resources/ad_group_feed.proto | 82 + .../v11/resources/ad_group_label.proto | 65 + .../v11/resources/ad_group_simulation.proto | 93 + .../v11/resources/ad_parameter.proto | 81 + .../v11/resources/ad_schedule_view.proto | 51 + .../v11/resources/age_range_view.proto | 50 + .../ads/googleads/v11/resources/asset.proto | 183 + .../v11/resources/asset_field_type_view.proto | 56 + .../googleads/v11/resources/asset_group.proto | 91 + .../v11/resources/asset_group_asset.proto | 82 + .../asset_group_listing_group_filter.proto | 172 + .../asset_group_product_group_view.proto | 66 + .../v11/resources/asset_group_signal.proto | 63 + .../googleads/v11/resources/asset_set.proto | 79 + .../v11/resources/asset_set_asset.proto | 69 + .../googleads/v11/resources/audience.proto | 76 + .../googleads/v11/resources/batch_job.proto | 97 + .../resources/bidding_data_exclusion.proto | 107 + .../bidding_seasonality_adjustment.proto | 113 + .../v11/resources/bidding_strategy.proto | 138 + .../bidding_strategy_simulation.proto | 81 + .../v11/resources/billing_setup.proto | 139 + .../googleads/v11/resources/call_view.proto | 79 + .../googleads/v11/resources/campaign.proto | 535 + .../v11/resources/campaign_asset.proto | 79 + .../v11/resources/campaign_asset_set.proto | 71 + .../resources/campaign_audience_view.proto | 54 + .../v11/resources/campaign_bid_modifier.proto | 75 + .../v11/resources/campaign_budget.proto | 155 + .../resources/campaign_conversion_goal.proto | 68 + .../v11/resources/campaign_criterion.proto | 180 + .../campaign_criterion_simulation.proto | 82 + .../v11/resources/campaign_customizer.proto | 75 + .../v11/resources/campaign_draft.proto | 97 + .../v11/resources/campaign_experiment.proto | 120 + .../campaign_extension_setting.proto | 78 + .../v11/resources/campaign_feed.proto | 82 + .../v11/resources/campaign_group.proto | 68 + .../v11/resources/campaign_label.proto | 65 + .../v11/resources/campaign_shared_set.proto | 76 + .../v11/resources/campaign_simulation.proto | 101 + .../v11/resources/carrier_constant.proto | 60 + .../v11/resources/change_event.proto | 208 + .../v11/resources/change_status.proto | 192 + .../googleads/v11/resources/click_view.proto | 107 + .../v11/resources/combined_audience.proto | 66 + .../v11/resources/conversion_action.proto | 197 + .../conversion_custom_variable.proto | 85 + .../conversion_goal_campaign_config.proto | 65 + .../v11/resources/conversion_value_rule.proto | 134 + .../resources/conversion_value_rule_set.proto | 99 + .../v11/resources/currency_constant.proto | 64 + .../v11/resources/custom_audience.proto | 106 + .../resources/custom_conversion_goal.proto | 63 + .../v11/resources/custom_interest.proto | 88 + .../googleads/v11/resources/customer.proto | 188 + .../v11/resources/customer_asset.proto | 74 + .../v11/resources/customer_client.proto | 104 + .../v11/resources/customer_client_link.proto | 69 + .../resources/customer_conversion_goal.proto | 63 + .../v11/resources/customer_customizer.proto | 67 + .../customer_extension_setting.proto | 66 + .../v11/resources/customer_feed.proto | 74 + .../v11/resources/customer_label.proto | 71 + .../v11/resources/customer_manager_link.proto | 64 + .../customer_negative_criterion.proto | 81 + .../v11/resources/customer_user_access.proto | 71 + .../customer_user_access_invitation.proto | 72 + .../v11/resources/customizer_attribute.proto | 71 + .../v11/resources/detail_placement_view.proto | 71 + .../v11/resources/detailed_demographic.proto | 73 + .../v11/resources/display_keyword_view.proto | 50 + .../v11/resources/distance_view.proto | 61 + .../v11/resources/domain_category.proto | 90 + .../dynamic_search_ads_search_term_view.proto | 85 + .../expanded_landing_page_view.proto | 54 + .../googleads/v11/resources/experiment.proto | 106 + .../v11/resources/experiment_arm.proto | 84 + .../v11/resources/extension_feed_item.proto | 150 + google/ads/googleads/v11/resources/feed.proto | 189 + .../googleads/v11/resources/feed_item.proto | 214 + .../v11/resources/feed_item_set.proto | 83 + .../v11/resources/feed_item_set_link.proto | 65 + .../v11/resources/feed_item_target.proto | 107 + .../v11/resources/feed_mapping.proto | 188 + .../v11/resources/feed_placeholder_view.proto | 54 + .../googleads/v11/resources/gender_view.proto | 50 + .../v11/resources/geo_target_constant.proto | 81 + .../v11/resources/geographic_view.proto | 62 + .../v11/resources/google_ads_field.proto | 107 + .../v11/resources/group_placement_view.proto | 66 + .../v11/resources/hotel_group_view.proto | 50 + .../resources/hotel_performance_view.proto | 50 + .../v11/resources/hotel_reconciliation.proto | 116 + .../v11/resources/income_range_view.proto | 50 + .../ads/googleads/v11/resources/invoice.proto | 202 + .../v11/resources/keyword_plan.proto | 82 + .../v11/resources/keyword_plan_ad_group.proto | 70 + .../keyword_plan_ad_group_keyword.proto | 75 + .../v11/resources/keyword_plan_campaign.proto | 97 + .../keyword_plan_campaign_keyword.proto | 70 + .../resources/keyword_theme_constant.proto | 63 + .../v11/resources/keyword_view.proto | 50 + .../ads/googleads/v11/resources/label.proto | 65 + .../v11/resources/landing_page_view.proto | 54 + .../v11/resources/language_constant.proto | 63 + .../resources/lead_form_submission_data.proto | 105 + .../googleads/v11/resources/life_event.proto | 72 + .../v11/resources/location_view.proto | 51 + .../resources/managed_placement_view.proto | 50 + .../googleads/v11/resources/media_file.proto | 136 + .../v11/resources/merchant_center_link.proto | 63 + .../mobile_app_category_constant.proto | 56 + .../resources/mobile_device_constant.proto | 66 + .../v11/resources/offline_user_data_job.proto | 94 + .../operating_system_version_constant.proto | 69 + .../paid_organic_search_term_view.proto | 55 + .../v11/resources/parental_status_view.proto | 50 + .../v11/resources/payments_account.proto | 77 + .../product_bidding_category_constant.proto | 82 + .../v11/resources/product_group_view.proto | 50 + .../v11/resources/recommendation.proto | 434 + .../v11/resources/remarketing_action.proto | 65 + .../v11/resources/search_term_view.proto | 67 + .../v11/resources/shared_criterion.proto | 91 + .../googleads/v11/resources/shared_set.proto | 76 + .../resources/shopping_performance_view.proto | 54 + .../smart_campaign_search_term_view.proto | 61 + .../resources/smart_campaign_setting.proto | 110 + .../third_party_app_analytics_link.proto | 54 + .../v11/resources/topic_constant.proto | 70 + .../googleads/v11/resources/topic_view.proto | 50 + .../v11/resources/user_interest.proto | 75 + .../googleads/v11/resources/user_list.proto | 173 + .../v11/resources/user_location_view.proto | 61 + .../ads/googleads/v11/resources/video.proto | 62 + .../v11/resources/webpage_view.proto | 50 + google/ads/googleads/v11/services/BUILD.bazel | 138 + .../account_budget_proposal_service.proto | 132 + .../v11/services/account_link_service.proto | 164 + .../services/ad_group_ad_label_service.proto | 120 + .../v11/services/ad_group_ad_service.proto | 172 + .../v11/services/ad_group_asset_service.proto | 139 + .../ad_group_bid_modifier_service.proto | 151 + ...d_group_criterion_customizer_service.proto | 121 + .../ad_group_criterion_label_service.proto | 119 + .../services/ad_group_criterion_service.proto | 171 + .../ad_group_customizer_service.proto | 118 + .../ad_group_extension_setting_service.proto | 159 + .../v11/services/ad_group_feed_service.proto | 149 + .../v11/services/ad_group_label_service.proto | 121 + .../v11/services/ad_group_service.proto | 155 + .../v11/services/ad_parameter_service.proto | 139 + .../googleads/v11/services/ad_service.proto | 186 + .../services/asset_group_asset_service.proto | 115 + ...t_group_listing_group_filter_service.proto | 120 + .../v11/services/asset_group_service.proto | 108 + .../services/asset_group_signal_service.proto | 117 + .../v11/services/asset_service.proto | 150 + .../services/asset_set_asset_service.proto | 117 + .../v11/services/asset_set_service.proto | 123 + .../services/audience_insights_service.proto | 438 + .../v11/services/audience_service.proto | 118 + .../v11/services/batch_job_service.proto | 269 + .../bidding_data_exclusion_service.proto | 125 + ...dding_seasonality_adjustment_service.proto | 125 + .../services/bidding_strategy_service.proto | 154 + .../v11/services/billing_setup_service.proto | 112 + .../v11/services/campaign_asset_service.proto | 140 + .../services/campaign_asset_set_service.proto | 117 + .../campaign_bid_modifier_service.proto | 151 + .../services/campaign_budget_service.proto | 144 + .../campaign_conversion_goal_service.proto | 92 + .../services/campaign_criterion_service.proto | 155 + .../campaign_customizer_service.proto | 118 + .../v11/services/campaign_draft_service.proto | 236 + .../campaign_experiment_service.proto | 374 + .../campaign_extension_setting_service.proto | 158 + .../v11/services/campaign_feed_service.proto | 150 + .../v11/services/campaign_group_service.proto | 129 + .../v11/services/campaign_label_service.proto | 121 + .../v11/services/campaign_service.proto | 160 + .../campaign_shared_set_service.proto | 141 + .../services/conversion_action_service.proto | 144 + ...conversion_adjustment_upload_service.proto | 199 + .../conversion_custom_variable_service.proto | 132 + ...version_goal_campaign_config_service.proto | 103 + .../services/conversion_upload_service.proto | 347 + .../conversion_value_rule_service.proto | 128 + .../conversion_value_rule_set_service.proto | 128 + .../services/custom_audience_service.proto | 117 + .../custom_conversion_goal_service.proto | 114 + .../services/custom_interest_service.proto | 107 + .../v11/services/customer_asset_service.proto | 137 + .../customer_client_link_service.proto | 104 + .../customer_conversion_goal_service.proto | 92 + .../customer_customizer_service.proto | 118 + .../customer_extension_setting_service.proto | 156 + .../v11/services/customer_feed_service.proto | 149 + .../v11/services/customer_label_service.proto | 119 + .../customer_manager_link_service.proto | 157 + .../customer_negative_criterion_service.proto | 128 + .../v11/services/customer_service.proto | 192 + ...tomer_user_access_invitation_service.proto | 101 + .../customer_user_access_service.proto | 105 + .../customizer_attribute_service.proto | 122 + .../v11/services/experiment_arm_service.proto | 134 + .../v11/services/experiment_service.proto | 390 + .../extension_feed_item_service.proto | 152 + .../v11/services/feed_item_service.proto | 151 + .../services/feed_item_set_link_service.proto | 115 + .../v11/services/feed_item_set_service.proto | 123 + .../services/feed_item_target_service.proto | 138 + .../v11/services/feed_mapping_service.proto | 138 + .../googleads/v11/services/feed_service.proto | 150 + .../geo_target_constant_service.proto | 117 + .../services/google_ads_field_service.proto | 115 + .../v11/services/google_ads_service.proto | 1488 + .../v11/services/invoice_service.proto | 83 + ...eyword_plan_ad_group_keyword_service.proto | 139 + .../keyword_plan_ad_group_service.proto | 134 + ...eyword_plan_campaign_keyword_service.proto | 136 + .../keyword_plan_campaign_service.proto | 135 + .../services/keyword_plan_idea_service.proto | 352 + .../v11/services/keyword_plan_service.proto | 421 + .../keyword_theme_constant_service.proto | 77 + .../v11/services/label_service.proto | 145 + .../v11/services/media_file_service.proto | 131 + .../merchant_center_link_service.proto | 164 + .../offline_user_data_job_service.proto | 212 + .../services/payments_account_service.proto | 71 + .../v11/services/reach_plan_service.proto | 665 + .../v11/services/recommendation_service.proto | 316 + .../services/remarketing_action_service.proto | 116 + .../services/shared_criterion_service.proto | 139 + .../v11/services/shared_set_service.proto | 149 + .../smart_campaign_setting_service.proto | 111 + .../smart_campaign_suggest_service.proto | 226 + ...ird_party_app_analytics_link_service.proto | 69 + .../v11/services/user_data_service.proto | 104 + .../v11/services/user_list_service.proto | 136 + google/ads/googleads/v7/BUILD.bazel | 263 - google/ads/googleads/v7/common/BUILD.bazel | 94 - google/ads/googleads/v7/common/ad_asset.proto | 69 - .../googleads/v7/common/ad_type_infos.proto | 673 - .../googleads/v7/common/asset_policy.proto | 46 - .../ads/googleads/v7/common/asset_types.proto | 325 - google/ads/googleads/v7/common/bidding.proto | 179 - .../googleads/v7/common/click_location.proto | 48 - google/ads/googleads/v7/common/criteria.proto | 636 - .../criterion_category_availability.proto | 82 - .../v7/common/custom_parameter.proto | 40 - google/ads/googleads/v7/common/dates.proto | 59 - .../explorer_auto_optimizer_setting.proto | 38 - .../ads/googleads/v7/common/extensions.proto | 368 - .../ads/googleads/v7/common/feed_common.proto | 39 - .../feed_item_set_filter_type_infos.proto | 58 - .../googleads/v7/common/final_app_url.proto | 46 - .../googleads/v7/common/frequency_cap.proto | 61 - .../v7/common/keyword_plan_common.proto | 139 - .../v7/common/matching_function.proto | 126 - google/ads/googleads/v7/common/metrics.proto | 608 - .../v7/common/offline_user_data.proto | 218 - google/ads/googleads/v7/common/policy.proto | 220 - .../v7/common/real_time_bidding_setting.proto | 37 - google/ads/googleads/v7/common/segments.proto | 333 - .../ads/googleads/v7/common/simulation.proto | 358 - .../ads/googleads/v7/common/tag_snippet.proto | 50 - .../v7/common/targeting_setting.proto | 85 - .../ads/googleads/v7/common/text_label.proto | 40 - .../googleads/v7/common/url_collection.proto | 45 - .../ads/googleads/v7/common/user_lists.proto | 291 - google/ads/googleads/v7/common/value.proto | 51 - google/ads/googleads/v7/enums/BUILD.bazel | 89 - .../v7/enums/access_invitation_status.proto | 55 - .../googleads/v7/enums/access_reason.proto | 57 - .../ads/googleads/v7/enums/access_role.proto | 55 - .../account_budget_proposal_status.proto | 63 - .../enums/account_budget_proposal_type.proto | 56 - .../v7/enums/account_budget_status.proto | 53 - .../v7/enums/account_link_status.proto | 63 - .../ad_customizer_placeholder_field.proto | 56 - .../v7/enums/ad_destination_type.proto | 77 - .../v7/enums/ad_group_ad_rotation_mode.proto | 53 - .../v7/enums/ad_group_ad_status.proto | 55 - .../ad_group_criterion_approval_status.proto | 56 - .../v7/enums/ad_group_criterion_status.proto | 55 - .../googleads/v7/enums/ad_group_status.proto | 55 - .../googleads/v7/enums/ad_group_type.proto | 93 - .../googleads/v7/enums/ad_network_type.proto | 62 - .../ad_serving_optimization_status.proto | 64 - .../ads/googleads/v7/enums/ad_strength.proto | 62 - google/ads/googleads/v7/enums/ad_type.proto | 125 - .../enums/advertising_channel_sub_type.proto | 96 - .../v7/enums/advertising_channel_type.proto | 70 - ...iate_location_feed_relationship_type.proto | 48 - ...affiliate_location_placeholder_field.proto | 77 - .../googleads/v7/enums/age_range_type.proto | 65 - .../v7/enums/app_campaign_app_store.proto | 50 - ..._campaign_bidding_strategy_goal_type.proto | 64 - .../v7/enums/app_payment_model_type.proto | 47 - .../v7/enums/app_placeholder_field.proto | 75 - google/ads/googleads/v7/enums/app_store.proto | 50 - .../enums/app_url_operating_system_type.proto | 50 - .../googleads/v7/enums/asset_field_type.proto | 81 - .../v7/enums/asset_link_status.proto | 53 - .../v7/enums/asset_performance_label.proto | 62 - .../ads/googleads/v7/enums/asset_type.proto | 74 - .../v7/enums/attribution_model.proto | 72 - .../googleads/v7/enums/batch_job_status.proto | 53 - .../v7/enums/bid_modifier_source.proto | 51 - .../googleads/v7/enums/bidding_source.proto | 55 - .../v7/enums/bidding_strategy_status.proto | 52 - .../v7/enums/bidding_strategy_type.proto | 110 - .../v7/enums/billing_setup_status.proto | 58 - .../v7/enums/brand_safety_suitability.proto | 73 - .../budget_campaign_association_status.proto | 51 - .../v7/enums/budget_delivery_method.proto | 53 - .../googleads/v7/enums/budget_period.proto | 53 - .../googleads/v7/enums/budget_status.proto | 50 - .../ads/googleads/v7/enums/budget_type.proto | 66 - .../call_conversion_reporting_state.proto | 56 - .../v7/enums/call_placeholder_field.proto | 66 - .../call_tracking_display_location.proto | 50 - google/ads/googleads/v7/enums/call_type.proto | 51 - .../v7/enums/callout_placeholder_field.proto | 47 - .../v7/enums/campaign_criterion_status.proto | 55 - .../v7/enums/campaign_draft_status.proto | 65 - .../v7/enums/campaign_experiment_status.proto | 77 - ...mpaign_experiment_traffic_split_type.proto | 53 - .../v7/enums/campaign_experiment_type.proto | 59 - .../v7/enums/campaign_serving_status.proto | 61 - .../v7/enums/campaign_shared_set_status.proto | 50 - .../googleads/v7/enums/campaign_status.proto | 53 - .../v7/enums/change_client_type.proto | 87 - .../v7/enums/change_event_resource_type.proto | 82 - .../v7/enums/change_status_operation.proto | 54 - .../enums/change_status_resource_type.proto | 76 - .../ads/googleads/v7/enums/click_type.proto | 203 - .../v7/enums/combined_audience_status.proto | 51 - .../v7/enums/content_label_type.proto | 89 - .../v7/enums/conversion_action_category.proto | 106 - .../conversion_action_counting_type.proto | 52 - .../v7/enums/conversion_action_status.proto | 54 - .../v7/enums/conversion_action_type.proto | 174 - .../v7/enums/conversion_adjustment_type.proto | 52 - .../conversion_attribution_event_type.proto | 48 - .../conversion_custom_variable_status.proto | 58 - .../v7/enums/conversion_lag_bucket.proto | 117 - .../conversion_or_adjustment_lag_bucket.proto | 206 - ...n_category_channel_availability_mode.proto | 58 - ...on_category_locale_availability_mode.proto | 61 - .../criterion_system_serving_status.proto | 50 - .../googleads/v7/enums/criterion_type.proto | 140 - .../enums/custom_audience_member_type.proto | 56 - .../v7/enums/custom_audience_status.proto | 51 - .../v7/enums/custom_audience_type.proto | 58 - .../enums/custom_interest_member_type.proto | 50 - .../v7/enums/custom_interest_status.proto | 51 - .../v7/enums/custom_interest_type.proto | 50 - .../v7/enums/custom_placeholder_field.proto | 129 - .../customer_match_upload_key_type.proto | 53 - ...onversion_eligibility_failure_reason.proto | 68 - .../v7/enums/data_driven_model_status.proto | 62 - .../ads/googleads/v7/enums/day_of_week.proto | 65 - google/ads/googleads/v7/enums/device.proto | 59 - .../v7/enums/display_ad_format_setting.proto | 54 - .../enums/display_upload_product_type.proto | 97 - .../googleads/v7/enums/distance_bucket.proto | 127 - .../enums/dsa_page_feed_criterion_field.proto | 51 - .../enums/education_placeholder_field.proto | 111 - .../v7/enums/extension_setting_device.proto | 52 - .../googleads/v7/enums/extension_type.proto | 84 - .../v7/enums/external_conversion_source.proto | 152 - .../v7/enums/feed_attribute_type.proto | 83 - .../feed_item_quality_approval_status.proto | 52 - ...feed_item_quality_disapproval_reason.proto | 99 - .../v7/enums/feed_item_set_status.proto | 50 - .../feed_item_set_string_filter_type.proto | 45 - .../googleads/v7/enums/feed_item_status.proto | 50 - .../v7/enums/feed_item_target_device.proto | 48 - .../v7/enums/feed_item_target_status.proto | 50 - .../v7/enums/feed_item_target_type.proto | 53 - .../enums/feed_item_validation_status.proto | 53 - .../googleads/v7/enums/feed_link_status.proto | 50 - .../enums/feed_mapping_criterion_type.proto | 50 - .../v7/enums/feed_mapping_status.proto | 50 - .../ads/googleads/v7/enums/feed_origin.proto | 53 - .../ads/googleads/v7/enums/feed_status.proto | 50 - .../v7/enums/flight_placeholder_field.proto | 118 - .../v7/enums/frequency_cap_event_type.proto | 50 - .../v7/enums/frequency_cap_level.proto | 54 - .../v7/enums/frequency_cap_time_unit.proto | 53 - .../ads/googleads/v7/enums/gender_type.proto | 53 - .../v7/enums/geo_target_constant_status.proto | 52 - .../v7/enums/geo_targeting_restriction.proto | 49 - .../v7/enums/geo_targeting_type.proto | 50 - .../v7/enums/google_ads_field_category.proto | 61 - .../v7/enums/google_ads_field_data_type.proto | 102 - .../v7/enums/google_voice_call_status.proto | 50 - .../v7/enums/hotel_date_selection_type.proto | 50 - .../v7/enums/hotel_placeholder_field.proto | 124 - .../v7/enums/hotel_price_bucket.proto | 59 - .../googleads/v7/enums/hotel_rate_type.proto | 62 - .../v7/enums/image_placeholder_field.proto | 47 - .../v7/enums/income_range_type.proto | 65 - .../v7/enums/interaction_event_type.proto | 62 - .../googleads/v7/enums/interaction_type.proto | 47 - .../ads/googleads/v7/enums/invoice_type.proto | 50 - .../v7/enums/job_placeholder_field.proto | 115 - .../v7/enums/keyword_match_type.proto | 53 - .../keyword_plan_aggregate_metric_type.proto | 47 - .../keyword_plan_competition_level.proto | 57 - .../keyword_plan_concept_group_type.proto | 58 - .../keyword_plan_forecast_interval.proto | 56 - .../keyword_plan_keyword_annotation.proto | 47 - .../v7/enums/keyword_plan_network.proto | 50 - .../ads/googleads/v7/enums/label_status.proto | 48 - .../enums/lead_form_call_to_action_type.proto | 84 - .../v7/enums/lead_form_desired_intent.proto | 48 - .../lead_form_field_user_input_type.proto | 273 - ...form_post_submit_call_to_action_type.proto | 55 - .../legacy_app_install_ad_app_store.proto | 59 - .../v7/enums/linked_account_type.proto | 52 - .../v7/enums/listing_group_type.proto | 52 - .../v7/enums/local_placeholder_field.proto | 119 - ..._extension_targeting_criterion_field.proto | 62 - .../enums/location_group_radius_units.proto | 53 - .../v7/enums/location_placeholder_field.proto | 68 - .../v7/enums/location_source_type.proto | 50 - .../v7/enums/manager_link_status.proto | 59 - .../matching_function_context_type.proto | 53 - .../v7/enums/matching_function_operator.proto | 65 - .../ads/googleads/v7/enums/media_type.proto | 64 - .../enums/merchant_center_link_status.proto | 53 - .../v7/enums/message_placeholder_field.proto | 61 - google/ads/googleads/v7/enums/mime_type.proto | 82 - .../googleads/v7/enums/minute_of_hour.proto | 56 - .../v7/enums/mobile_app_vendor.proto | 48 - .../v7/enums/mobile_device_type.proto | 50 - .../googleads/v7/enums/month_of_year.proto | 80 - .../v7/enums/negative_geo_target_type.proto | 52 - ...offline_user_data_job_failure_reason.proto | 51 - .../enums/offline_user_data_job_status.proto | 56 - .../v7/enums/offline_user_data_job_type.proto | 56 - ...erating_system_version_operator_type.proto | 50 - .../v7/enums/optimization_goal_type.proto | 53 - .../v7/enums/parental_status_type.proto | 53 - .../ads/googleads/v7/enums/payment_mode.proto | 64 - .../googleads/v7/enums/placeholder_type.proto | 124 - .../googleads/v7/enums/placement_type.proto | 59 - .../v7/enums/policy_approval_status.proto | 61 - .../v7/enums/policy_review_status.proto | 60 - .../v7/enums/policy_topic_entry_type.proto | 66 - ...idence_destination_mismatch_url_type.proto | 62 - ...dence_destination_not_working_device.proto | 57 - ...stination_not_working_dns_error_type.proto | 56 - .../v7/enums/positive_geo_target_type.proto | 58 - .../v7/enums/preferred_content_type.proto | 47 - .../price_extension_price_qualifier.proto | 53 - .../v7/enums/price_extension_price_unit.proto | 62 - .../v7/enums/price_extension_type.proto | 71 - .../v7/enums/price_placeholder_field.proto | 240 - .../product_bidding_category_level.proto | 57 - .../product_bidding_category_status.proto | 50 - .../googleads/v7/enums/product_channel.proto | 50 - .../enums/product_channel_exclusivity.proto | 52 - .../v7/enums/product_condition.proto | 53 - .../product_custom_attribute_index.proto | 59 - .../v7/enums/product_type_level.proto | 59 - ...romotion_extension_discount_modifier.proto | 48 - .../enums/promotion_extension_occasion.proto | 157 - .../enums/promotion_placeholder_field.proto | 95 - .../v7/enums/proximity_radius_units.proto | 50 - .../v7/enums/quality_score_bucket.proto | 53 - .../v7/enums/reach_plan_ad_length.proto | 53 - .../v7/enums/reach_plan_age_range.proto | 122 - .../v7/enums/reach_plan_network.proto | 54 - .../enums/real_estate_placeholder_field.proto | 115 - .../v7/enums/recommendation_type.proto | 112 - .../v7/enums/resource_change_operation.proto | 55 - .../v7/enums/resource_limit_type.proto | 333 - .../v7/enums/response_content_type.proto | 48 - .../search_engine_results_page_type.proto | 54 - .../v7/enums/search_term_match_type.proto | 59 - .../enums/search_term_targeting_status.proto | 58 - .../v7/enums/served_asset_field_type.proto | 61 - .../v7/enums/shared_set_status.proto | 50 - .../googleads/v7/enums/shared_set_type.proto | 50 - .../simulation_modification_method.proto | 59 - .../googleads/v7/enums/simulation_type.proto | 68 - .../v7/enums/sitelink_placeholder_field.proto | 69 - google/ads/googleads/v7/enums/slot.proto | 65 - .../v7/enums/spending_limit_type.proto | 48 - ...structured_snippet_placeholder_field.proto | 55 - .../v7/enums/summary_row_setting.proto | 54 - .../enums/system_managed_entity_source.proto | 47 - ...arget_cpa_opt_in_recommendation_goal.proto | 57 - .../target_impression_share_location.proto | 55 - .../v7/enums/targeting_dimension.proto | 74 - google/ads/googleads/v7/enums/time_type.proto | 51 - .../v7/enums/tracking_code_page_format.proto | 50 - .../v7/enums/tracking_code_type.proto | 59 - .../v7/enums/travel_placeholder_field.proto | 128 - .../v7/enums/user_identifier_source.proto | 54 - .../enums/user_interest_taxonomy_type.proto | 59 - .../v7/enums/user_list_access_status.proto | 50 - .../v7/enums/user_list_closing_reason.proto | 48 - .../user_list_combined_rule_operator.proto | 48 - .../user_list_crm_data_source_type.proto | 51 - .../user_list_date_rule_item_operator.proto | 54 - .../user_list_logical_rule_operator.proto | 51 - .../enums/user_list_membership_status.proto | 52 - .../user_list_number_rule_item_operator.proto | 60 - .../user_list_prepopulation_status.proto | 51 - .../v7/enums/user_list_rule_type.proto | 48 - .../v7/enums/user_list_size_range.proto | 92 - .../user_list_string_rule_item_operator.proto | 66 - .../googleads/v7/enums/user_list_type.proto | 63 - .../vanity_pharma_display_url_mode.proto | 50 - .../v7/enums/vanity_pharma_text.proto | 87 - .../v7/enums/webpage_condition_operand.proto | 59 - .../v7/enums/webpage_condition_operator.proto | 51 - google/ads/googleads/v7/errors/BUILD.bazel | 94 - .../v7/errors/access_invitation_error.proto | 69 - .../account_budget_proposal_error.proto | 122 - .../v7/errors/account_link_error.proto | 47 - .../v7/errors/ad_customizer_error.proto | 59 - google/ads/googleads/v7/errors/ad_error.proto | 508 - .../v7/errors/ad_group_ad_error.proto | 76 - .../errors/ad_group_bid_modifier_error.proto | 51 - .../v7/errors/ad_group_criterion_error.proto | 137 - .../googleads/v7/errors/ad_group_error.proto | 91 - .../v7/errors/ad_group_feed_error.proto | 67 - .../v7/errors/ad_parameter_error.proto | 50 - .../v7/errors/ad_sharing_error.proto | 54 - .../ads/googleads/v7/errors/adx_error.proto | 47 - .../ads/googleads/v7/errors/asset_error.proto | 99 - .../v7/errors/asset_link_error.proto | 102 - .../v7/errors/authentication_error.proto | 103 - .../v7/errors/authorization_error.proto | 92 - .../googleads/v7/errors/batch_job_error.proto | 63 - .../googleads/v7/errors/bidding_error.proto | 122 - .../v7/errors/bidding_strategy_error.proto | 61 - .../v7/errors/billing_setup_error.proto | 105 - .../v7/errors/campaign_budget_error.proto | 97 - .../v7/errors/campaign_criterion_error.proto | 81 - .../v7/errors/campaign_draft_error.proto | 79 - .../googleads/v7/errors/campaign_error.proto | 190 - .../v7/errors/campaign_experiment_error.proto | 81 - .../v7/errors/campaign_feed_error.proto | 67 - .../v7/errors/campaign_shared_set_error.proto | 47 - .../v7/errors/change_event_error.proto | 63 - .../v7/errors/change_status_error.proto | 63 - .../v7/errors/collection_size_error.proto | 50 - .../googleads/v7/errors/context_error.proto | 50 - .../v7/errors/conversion_action_error.proto | 82 - .../conversion_adjustment_upload_error.proto | 85 - .../conversion_custom_variable_error.proto | 50 - .../v7/errors/conversion_upload_error.proto | 137 - .../v7/errors/country_code_error.proto | 47 - .../googleads/v7/errors/criterion_error.proto | 452 - .../v7/errors/currency_code_error.proto | 47 - .../v7/errors/custom_audience_error.proto | 68 - .../v7/errors/custom_interest_error.proto | 66 - .../errors/customer_client_link_error.proto | 68 - .../googleads/v7/errors/customer_error.proto | 50 - .../v7/errors/customer_feed_error.proto | 66 - .../errors/customer_manager_link_error.proto | 75 - .../errors/customer_user_access_error.proto | 60 - .../googleads/v7/errors/database_error.proto | 56 - .../ads/googleads/v7/errors/date_error.proto | 74 - .../v7/errors/date_range_error.proto | 59 - .../googleads/v7/errors/distinct_error.proto | 50 - .../ads/googleads/v7/errors/enum_error.proto | 47 - google/ads/googleads/v7/errors/errors.proto | 656 - .../v7/errors/extension_feed_item_error.proto | 195 - .../v7/errors/extension_setting_error.proto | 261 - .../feed_attribute_reference_error.proto | 53 - .../ads/googleads/v7/errors/feed_error.proto | 111 - .../googleads/v7/errors/feed_item_error.proto | 71 - .../v7/errors/feed_item_set_error.proto | 68 - .../v7/errors/feed_item_set_link_error.proto | 51 - .../v7/errors/feed_item_target_error.proto | 70 - .../errors/feed_item_validation_error.proto | 377 - .../v7/errors/feed_mapping_error.proto | 100 - .../ads/googleads/v7/errors/field_error.proto | 65 - .../v7/errors/field_mask_error.proto | 58 - .../googleads/v7/errors/function_error.proto | 93 - .../v7/errors/function_parsing_error.proto | 77 - ...geo_target_constant_suggestion_error.proto | 56 - .../googleads/v7/errors/header_error.proto | 50 - google/ads/googleads/v7/errors/id_error.proto | 47 - .../ads/googleads/v7/errors/image_error.proto | 164 - .../googleads/v7/errors/internal_error.proto | 58 - .../googleads/v7/errors/invoice_error.proto | 50 - .../errors/keyword_plan_ad_group_error.proto | 53 - .../keyword_plan_ad_group_keyword_error.proto | 72 - .../errors/keyword_plan_campaign_error.proto | 65 - .../keyword_plan_campaign_keyword_error.proto | 49 - .../v7/errors/keyword_plan_error.proto | 91 - .../v7/errors/keyword_plan_idea_error.proto | 50 - .../ads/googleads/v7/errors/label_error.proto | 73 - .../v7/errors/language_code_error.proto | 50 - .../v7/errors/list_operation_error.proto | 50 - .../v7/errors/manager_link_error.proto | 97 - .../v7/errors/media_bundle_error.proto | 110 - .../v7/errors/media_file_error.proto | 113 - .../v7/errors/media_upload_error.proto | 152 - .../v7/errors/multiplier_error.proto | 81 - .../googleads/v7/errors/mutate_error.proto | 69 - .../errors/new_resource_creation_error.proto | 54 - .../v7/errors/not_allowlisted_error.proto | 47 - .../googleads/v7/errors/not_empty_error.proto | 47 - .../ads/googleads/v7/errors/null_error.proto | 47 - .../errors/offline_user_data_job_error.proto | 146 - .../operation_access_denied_error.proto | 74 - .../googleads/v7/errors/operator_error.proto | 47 - .../v7/errors/partial_failure_error.proto | 48 - .../v7/errors/payments_account_error.proto | 47 - .../v7/errors/policy_finding_error.proto | 51 - .../policy_validation_parameter_error.proto | 54 - .../v7/errors/policy_violation_error.proto | 47 - .../ads/googleads/v7/errors/query_error.proto | 222 - .../ads/googleads/v7/errors/quota_error.proto | 53 - .../ads/googleads/v7/errors/range_error.proto | 50 - .../v7/errors/reach_plan_error.proto | 48 - .../v7/errors/recommendation_error.proto | 90 - .../v7/errors/region_code_error.proto | 47 - .../googleads/v7/errors/request_error.proto | 119 - .../errors/resource_access_denied_error.proto | 47 - .../resource_count_limit_exceeded_error.proto | 93 - .../googleads/v7/errors/setting_error.proto | 85 - .../v7/errors/shared_criterion_error.proto | 47 - .../v7/errors/shared_set_error.proto | 56 - .../v7/errors/size_limit_error.proto | 50 - .../v7/errors/string_format_error.proto | 50 - .../v7/errors/string_length_error.proto | 54 - ...third_party_app_analytics_link_error.proto | 57 - .../googleads/v7/errors/time_zone_error.proto | 47 - .../googleads/v7/errors/url_field_error.proto | 214 - .../googleads/v7/errors/user_data_error.proto | 53 - .../googleads/v7/errors/user_list_error.proto | 129 - .../youtube_video_registration_error.proto | 53 - google/ads/googleads/v7/googleads_gapic.yaml | 26 - .../v7/googleads_grpc_service_config.json | 396 - google/ads/googleads/v7/googleads_v7.yaml | 1284 - google/ads/googleads/v7/resources/BUILD.bazel | 97 - .../v7/resources/account_budget.proto | 252 - .../resources/account_budget_proposal.proto | 160 - .../googleads/v7/resources/account_link.proto | 125 - google/ads/googleads/v7/resources/ad.proto | 185 - .../ads/googleads/v7/resources/ad_group.proto | 187 - .../googleads/v7/resources/ad_group_ad.proto | 98 - .../v7/resources/ad_group_ad_asset_view.proto | 105 - .../v7/resources/ad_group_ad_label.proto | 66 - .../v7/resources/ad_group_asset.proto | 80 - .../v7/resources/ad_group_audience_view.proto | 54 - .../v7/resources/ad_group_bid_modifier.proto | 112 - .../v7/resources/ad_group_criterion.proto | 291 - .../resources/ad_group_criterion_label.proto | 66 - .../ad_group_criterion_simulation.proto | 90 - .../ad_group_extension_setting.proto | 79 - .../v7/resources/ad_group_feed.proto | 83 - .../v7/resources/ad_group_label.proto | 66 - .../v7/resources/ad_group_simulation.proto | 94 - .../googleads/v7/resources/ad_parameter.proto | 82 - .../v7/resources/ad_schedule_view.proto | 52 - .../v7/resources/age_range_view.proto | 51 - google/ads/googleads/v7/resources/asset.proto | 135 - .../googleads/v7/resources/batch_job.proto | 98 - .../v7/resources/bidding_strategy.proto | 130 - .../bidding_strategy_simulation.proto | 82 - .../v7/resources/billing_setup.proto | 138 - .../googleads/v7/resources/call_view.proto | 80 - .../ads/googleads/v7/resources/campaign.proto | 425 - .../v7/resources/campaign_asset.proto | 76 - .../v7/resources/campaign_audience_view.proto | 55 - .../v7/resources/campaign_bid_modifier.proto | 76 - .../v7/resources/campaign_budget.proto | 156 - .../v7/resources/campaign_criterion.proto | 178 - .../campaign_criterion_simulation.proto | 83 - .../v7/resources/campaign_draft.proto | 98 - .../v7/resources/campaign_experiment.proto | 121 - .../campaign_extension_setting.proto | 79 - .../v7/resources/campaign_feed.proto | 83 - .../v7/resources/campaign_label.proto | 66 - .../v7/resources/campaign_shared_set.proto | 77 - .../v7/resources/campaign_simulation.proto | 102 - .../v7/resources/carrier_constant.proto | 61 - .../googleads/v7/resources/change_event.proto | 178 - .../v7/resources/change_status.proto | 150 - .../googleads/v7/resources/click_view.proto | 108 - .../v7/resources/combined_audience.proto | 67 - .../v7/resources/conversion_action.proto | 176 - .../conversion_custom_variable.proto | 86 - .../v7/resources/currency_constant.proto | 64 - .../v7/resources/custom_audience.proto | 107 - .../v7/resources/custom_interest.proto | 89 - .../ads/googleads/v7/resources/customer.proto | 161 - .../v7/resources/customer_asset.proto | 71 - .../v7/resources/customer_client.proto | 89 - .../v7/resources/customer_client_link.proto | 70 - .../customer_extension_setting.proto | 67 - .../v7/resources/customer_feed.proto | 75 - .../v7/resources/customer_label.proto | 72 - .../v7/resources/customer_manager_link.proto | 65 - .../customer_negative_criterion.proto | 82 - .../v7/resources/customer_user_access.proto | 72 - .../customer_user_access_invitation.proto | 73 - .../v7/resources/detail_placement_view.proto | 71 - .../v7/resources/display_keyword_view.proto | 51 - .../v7/resources/distance_view.proto | 62 - .../v7/resources/domain_category.proto | 90 - .../dynamic_search_ads_search_term_view.proto | 86 - .../expanded_landing_page_view.proto | 55 - .../v7/resources/extension_feed_item.proto | 151 - google/ads/googleads/v7/resources/feed.proto | 190 - .../googleads/v7/resources/feed_item.proto | 214 - .../v7/resources/feed_item_set.proto | 84 - .../v7/resources/feed_item_set_link.proto | 66 - .../v7/resources/feed_item_target.proto | 108 - .../googleads/v7/resources/feed_mapping.proto | 189 - .../v7/resources/feed_placeholder_view.proto | 55 - .../googleads/v7/resources/gender_view.proto | 51 - .../v7/resources/geo_target_constant.proto | 82 - .../v7/resources/geographic_view.proto | 63 - .../v7/resources/google_ads_field.proto | 108 - .../v7/resources/group_placement_view.proto | 66 - .../v7/resources/hotel_group_view.proto | 51 - .../v7/resources/hotel_performance_view.proto | 51 - .../v7/resources/income_range_view.proto | 51 - .../ads/googleads/v7/resources/invoice.proto | 203 - .../googleads/v7/resources/keyword_plan.proto | 82 - .../v7/resources/keyword_plan_ad_group.proto | 71 - .../keyword_plan_ad_group_keyword.proto | 77 - .../v7/resources/keyword_plan_campaign.proto | 98 - .../keyword_plan_campaign_keyword.proto | 71 - .../googleads/v7/resources/keyword_view.proto | 51 - google/ads/googleads/v7/resources/label.proto | 66 - .../v7/resources/landing_page_view.proto | 55 - .../v7/resources/language_constant.proto | 64 - .../googleads/v7/resources/life_event.proto | 73 - .../v7/resources/location_view.proto | 52 - .../v7/resources/managed_placement_view.proto | 51 - .../googleads/v7/resources/media_file.proto | 137 - .../v7/resources/merchant_center_link.proto | 64 - .../mobile_app_category_constant.proto | 57 - .../v7/resources/mobile_device_constant.proto | 67 - .../v7/resources/offline_user_data_job.proto | 82 - .../operating_system_version_constant.proto | 70 - .../paid_organic_search_term_view.proto | 56 - .../v7/resources/parental_status_view.proto | 51 - .../v7/resources/payments_account.proto | 78 - .../product_bidding_category_constant.proto | 83 - .../v7/resources/product_group_view.proto | 51 - .../v7/resources/recommendation.proto | 350 - .../v7/resources/remarketing_action.proto | 66 - .../v7/resources/search_term_view.proto | 68 - .../v7/resources/shared_criterion.proto | 92 - .../googleads/v7/resources/shared_set.proto | 77 - .../resources/shopping_performance_view.proto | 55 - .../third_party_app_analytics_link.proto | 55 - .../v7/resources/topic_constant.proto | 71 - .../googleads/v7/resources/topic_view.proto | 51 - .../v7/resources/user_interest.proto | 76 - .../googleads/v7/resources/user_list.proto | 174 - .../v7/resources/user_location_view.proto | 62 - google/ads/googleads/v7/resources/video.proto | 63 - .../googleads/v7/resources/webpage_view.proto | 51 - google/ads/googleads/v7/services/BUILD.bazel | 138 - .../account_budget_proposal_service.proto | 161 - .../v7/services/account_budget_service.proto | 70 - .../v7/services/account_link_service.proto | 178 - .../ad_group_ad_asset_view_service.proto | 67 - .../services/ad_group_ad_label_service.proto | 144 - .../v7/services/ad_group_ad_service.proto | 195 - .../v7/services/ad_group_asset_service.proto | 152 - .../ad_group_audience_view_service.proto | 67 - .../ad_group_bid_modifier_service.proto | 174 - .../ad_group_criterion_label_service.proto | 143 - .../services/ad_group_criterion_service.proto | 194 - ...d_group_criterion_simulation_service.proto | 68 - .../ad_group_extension_setting_service.proto | 183 - .../v7/services/ad_group_feed_service.proto | 172 - .../v7/services/ad_group_label_service.proto | 144 - .../v7/services/ad_group_service.proto | 178 - .../ad_group_simulation_service.proto | 67 - .../v7/services/ad_parameter_service.proto | 162 - .../services/ad_schedule_view_service.proto | 67 - .../googleads/v7/services/ad_service.proto | 184 - .../v7/services/age_range_view_service.proto | 67 - .../googleads/v7/services/asset_service.proto | 175 - .../v7/services/batch_job_service.proto | 286 - .../services/bidding_strategy_service.proto | 177 - .../bidding_strategy_simulation_service.proto | 60 - .../v7/services/billing_setup_service.proto | 136 - .../v7/services/campaign_asset_service.proto | 153 - .../campaign_audience_view_service.proto | 67 - .../campaign_bid_modifier_service.proto | 174 - .../v7/services/campaign_budget_service.proto | 167 - .../services/campaign_criterion_service.proto | 178 - ...ampaign_criterion_simulation_service.proto | 68 - .../v7/services/campaign_draft_service.proto | 254 - .../campaign_experiment_service.proto | 382 - .../campaign_extension_setting_service.proto | 182 - .../v7/services/campaign_feed_service.proto | 173 - .../v7/services/campaign_label_service.proto | 144 - .../v7/services/campaign_service.proto | 183 - .../campaign_shared_set_service.proto | 164 - .../campaign_simulation_service.proto | 60 - .../services/carrier_constant_service.proto | 67 - .../v7/services/change_status_service.proto | 67 - .../v7/services/click_view_service.proto | 67 - .../services/combined_audience_service.proto | 69 - .../services/conversion_action_service.proto | 167 - ...conversion_adjustment_upload_service.proto | 190 - .../conversion_custom_variable_service.proto | 158 - .../services/conversion_upload_service.proto | 278 - .../services/currency_constant_service.proto | 65 - .../v7/services/custom_audience_service.proto | 140 - .../v7/services/custom_interest_service.proto | 132 - .../v7/services/customer_asset_service.proto | 150 - .../customer_client_link_service.proto | 129 - .../v7/services/customer_client_service.proto | 67 - .../customer_extension_setting_service.proto | 180 - .../v7/services/customer_feed_service.proto | 172 - .../v7/services/customer_label_service.proto | 142 - .../customer_manager_link_service.proto | 180 - .../customer_negative_criterion_service.proto | 152 - .../v7/services/customer_service.proto | 214 - ...tomer_user_access_invitation_service.proto | 125 - .../customer_user_access_service.proto | 129 - .../detail_placement_view_service.proto | 67 - .../display_keyword_view_service.proto | 67 - .../v7/services/distance_view_service.proto | 67 - .../v7/services/domain_category_service.proto | 68 - ..._search_ads_search_term_view_service.proto | 68 - .../expanded_landing_page_view_service.proto | 68 - .../extension_feed_item_service.proto | 175 - .../v7/services/feed_item_service.proto | 174 - .../services/feed_item_set_link_service.proto | 131 - .../v7/services/feed_item_set_service.proto | 139 - .../services/feed_item_target_service.proto | 161 - .../v7/services/feed_mapping_service.proto | 161 - .../feed_placeholder_view_service.proto | 67 - .../googleads/v7/services/feed_service.proto | 173 - .../v7/services/gender_view_service.proto | 67 - .../geo_target_constant_service.proto | 146 - .../v7/services/geographic_view_service.proto | 67 - .../services/google_ads_field_service.proto | 115 - .../v7/services/google_ads_service.proto | 1177 - .../group_placement_view_service.proto | 67 - .../services/hotel_group_view_service.proto | 67 - .../hotel_performance_view_service.proto | 67 - .../services/income_range_view_service.proto | 67 - .../v7/services/invoice_service.proto | 83 - ...eyword_plan_ad_group_keyword_service.proto | 165 - .../keyword_plan_ad_group_service.proto | 159 - ...eyword_plan_campaign_keyword_service.proto | 162 - .../keyword_plan_campaign_service.proto | 160 - .../services/keyword_plan_idea_service.proto | 181 - .../v7/services/keyword_plan_service.proto | 446 - .../v7/services/keyword_view_service.proto | 67 - .../googleads/v7/services/label_service.proto | 168 - .../services/landing_page_view_service.proto | 67 - .../services/language_constant_service.proto | 67 - .../v7/services/life_event_service.proto | 59 - .../v7/services/location_view_service.proto | 67 - .../managed_placement_view_service.proto | 67 - .../v7/services/media_file_service.proto | 156 - .../merchant_center_link_service.proto | 160 - ...mobile_app_category_constant_service.proto | 66 - .../mobile_device_constant_service.proto | 67 - .../offline_user_data_job_service.proto | 224 - ...ting_system_version_constant_service.proto | 68 - ...aid_organic_search_term_view_service.proto | 68 - .../parental_status_view_service.proto | 67 - .../services/payments_account_service.proto | 71 - ...ct_bidding_category_constant_service.proto | 68 - .../services/product_group_view_service.proto | 67 - .../v7/services/reach_plan_service.proto | 503 - .../v7/services/recommendation_service.proto | 309 - .../services/remarketing_action_service.proto | 141 - .../services/search_term_view_service.proto | 67 - .../services/shared_criterion_service.proto | 162 - .../v7/services/shared_set_service.proto | 172 - .../shopping_performance_view_service.proto | 68 - ...ird_party_app_analytics_link_service.proto | 94 - .../v7/services/topic_constant_service.proto | 67 - .../v7/services/topic_view_service.proto | 67 - .../v7/services/user_data_service.proto | 97 - .../v7/services/user_interest_service.proto | 67 - .../v7/services/user_list_service.proto | 159 - .../services/user_location_view_service.proto | 67 - .../googleads/v7/services/video_service.proto | 67 - .../v7/services/webpage_view_service.proto | 59 - google/ads/googleads/v8/BUILD.bazel | 263 - google/ads/googleads/v8/common/BUILD.bazel | 94 - google/ads/googleads/v8/common/ad_asset.proto | 69 - .../googleads/v8/common/ad_type_infos.proto | 691 - .../googleads/v8/common/asset_policy.proto | 46 - .../ads/googleads/v8/common/asset_types.proto | 325 - google/ads/googleads/v8/common/bidding.proto | 179 - .../googleads/v8/common/click_location.proto | 48 - google/ads/googleads/v8/common/criteria.proto | 651 - .../criterion_category_availability.proto | 82 - .../v8/common/custom_parameter.proto | 40 - google/ads/googleads/v8/common/dates.proto | 59 - .../explorer_auto_optimizer_setting.proto | 38 - .../ads/googleads/v8/common/extensions.proto | 368 - .../ads/googleads/v8/common/feed_common.proto | 39 - .../feed_item_set_filter_type_infos.proto | 58 - .../googleads/v8/common/final_app_url.proto | 46 - .../googleads/v8/common/frequency_cap.proto | 61 - .../v8/common/keyword_plan_common.proto | 139 - .../v8/common/matching_function.proto | 126 - google/ads/googleads/v8/common/metrics.proto | 619 - .../v8/common/offline_user_data.proto | 284 - google/ads/googleads/v8/common/policy.proto | 220 - .../v8/common/real_time_bidding_setting.proto | 37 - google/ads/googleads/v8/common/segments.proto | 369 - .../ads/googleads/v8/common/simulation.proto | 358 - .../ads/googleads/v8/common/tag_snippet.proto | 50 - .../v8/common/targeting_setting.proto | 85 - .../ads/googleads/v8/common/text_label.proto | 40 - .../googleads/v8/common/url_collection.proto | 45 - .../ads/googleads/v8/common/user_lists.proto | 291 - google/ads/googleads/v8/common/value.proto | 51 - google/ads/googleads/v8/enums/BUILD.bazel | 89 - .../v8/enums/access_invitation_status.proto | 55 - .../googleads/v8/enums/access_reason.proto | 57 - .../ads/googleads/v8/enums/access_role.proto | 55 - .../account_budget_proposal_status.proto | 63 - .../enums/account_budget_proposal_type.proto | 56 - .../v8/enums/account_budget_status.proto | 53 - .../v8/enums/account_link_status.proto | 63 - .../ad_customizer_placeholder_field.proto | 56 - .../v8/enums/ad_destination_type.proto | 77 - .../v8/enums/ad_group_ad_rotation_mode.proto | 53 - .../v8/enums/ad_group_ad_status.proto | 55 - .../ad_group_criterion_approval_status.proto | 56 - .../v8/enums/ad_group_criterion_status.proto | 55 - .../googleads/v8/enums/ad_group_status.proto | 55 - .../googleads/v8/enums/ad_group_type.proto | 96 - .../googleads/v8/enums/ad_network_type.proto | 62 - .../ad_serving_optimization_status.proto | 64 - .../ads/googleads/v8/enums/ad_strength.proto | 62 - google/ads/googleads/v8/enums/ad_type.proto | 128 - .../enums/advertising_channel_sub_type.proto | 96 - .../v8/enums/advertising_channel_type.proto | 70 - ...iate_location_feed_relationship_type.proto | 48 - ...affiliate_location_placeholder_field.proto | 77 - .../googleads/v8/enums/age_range_type.proto | 65 - .../v8/enums/app_campaign_app_store.proto | 50 - ..._campaign_bidding_strategy_goal_type.proto | 64 - .../v8/enums/app_payment_model_type.proto | 47 - .../v8/enums/app_placeholder_field.proto | 75 - google/ads/googleads/v8/enums/app_store.proto | 50 - .../enums/app_url_operating_system_type.proto | 50 - .../googleads/v8/enums/asset_field_type.proto | 81 - .../v8/enums/asset_link_status.proto | 53 - .../v8/enums/asset_performance_label.proto | 62 - .../ads/googleads/v8/enums/asset_type.proto | 74 - .../v8/enums/attribution_model.proto | 72 - .../googleads/v8/enums/batch_job_status.proto | 53 - .../v8/enums/bid_modifier_source.proto | 51 - .../googleads/v8/enums/bidding_source.proto | 55 - .../v8/enums/bidding_strategy_status.proto | 52 - .../v8/enums/bidding_strategy_type.proto | 119 - .../v8/enums/billing_setup_status.proto | 58 - .../v8/enums/brand_safety_suitability.proto | 73 - .../budget_campaign_association_status.proto | 51 - .../v8/enums/budget_delivery_method.proto | 53 - .../googleads/v8/enums/budget_period.proto | 53 - .../googleads/v8/enums/budget_status.proto | 50 - .../ads/googleads/v8/enums/budget_type.proto | 74 - .../call_conversion_reporting_state.proto | 56 - .../v8/enums/call_placeholder_field.proto | 66 - .../call_tracking_display_location.proto | 50 - google/ads/googleads/v8/enums/call_type.proto | 51 - .../v8/enums/callout_placeholder_field.proto | 47 - .../v8/enums/campaign_criterion_status.proto | 55 - .../v8/enums/campaign_draft_status.proto | 65 - .../v8/enums/campaign_experiment_status.proto | 77 - ...mpaign_experiment_traffic_split_type.proto | 53 - .../v8/enums/campaign_experiment_type.proto | 59 - .../v8/enums/campaign_serving_status.proto | 61 - .../v8/enums/campaign_shared_set_status.proto | 50 - .../googleads/v8/enums/campaign_status.proto | 53 - .../v8/enums/change_client_type.proto | 87 - .../v8/enums/change_event_resource_type.proto | 94 - .../v8/enums/change_status_operation.proto | 54 - .../enums/change_status_resource_type.proto | 94 - .../ads/googleads/v8/enums/click_type.proto | 203 - .../v8/enums/combined_audience_status.proto | 51 - .../v8/enums/content_label_type.proto | 89 - .../v8/enums/conversion_action_category.proto | 106 - .../conversion_action_counting_type.proto | 52 - .../v8/enums/conversion_action_status.proto | 54 - .../v8/enums/conversion_action_type.proto | 174 - .../v8/enums/conversion_adjustment_type.proto | 56 - .../conversion_attribution_event_type.proto | 48 - .../conversion_custom_variable_status.proto | 58 - .../v8/enums/conversion_lag_bucket.proto | 117 - .../conversion_or_adjustment_lag_bucket.proto | 206 - ...version_value_rule_primary_dimension.proto | 66 - .../conversion_value_rule_set_status.proto | 55 - .../enums/conversion_value_rule_status.proto | 53 - ...n_category_channel_availability_mode.proto | 58 - ...on_category_locale_availability_mode.proto | 61 - .../criterion_system_serving_status.proto | 50 - .../googleads/v8/enums/criterion_type.proto | 143 - .../enums/custom_audience_member_type.proto | 56 - .../v8/enums/custom_audience_status.proto | 51 - .../v8/enums/custom_audience_type.proto | 58 - .../enums/custom_interest_member_type.proto | 50 - .../v8/enums/custom_interest_status.proto | 51 - .../v8/enums/custom_interest_type.proto | 50 - .../v8/enums/custom_placeholder_field.proto | 129 - .../customer_match_upload_key_type.proto | 53 - ...onversion_eligibility_failure_reason.proto | 68 - .../v8/enums/data_driven_model_status.proto | 62 - .../ads/googleads/v8/enums/day_of_week.proto | 65 - google/ads/googleads/v8/enums/device.proto | 59 - .../v8/enums/display_ad_format_setting.proto | 54 - .../enums/display_upload_product_type.proto | 97 - .../googleads/v8/enums/distance_bucket.proto | 127 - .../enums/dsa_page_feed_criterion_field.proto | 51 - .../enums/education_placeholder_field.proto | 111 - .../v8/enums/extension_setting_device.proto | 52 - .../googleads/v8/enums/extension_type.proto | 84 - .../v8/enums/external_conversion_source.proto | 152 - .../v8/enums/feed_attribute_type.proto | 83 - .../feed_item_quality_approval_status.proto | 52 - ...feed_item_quality_disapproval_reason.proto | 99 - .../v8/enums/feed_item_set_status.proto | 50 - .../feed_item_set_string_filter_type.proto | 45 - .../googleads/v8/enums/feed_item_status.proto | 50 - .../v8/enums/feed_item_target_device.proto | 48 - .../v8/enums/feed_item_target_status.proto | 50 - .../v8/enums/feed_item_target_type.proto | 53 - .../enums/feed_item_validation_status.proto | 53 - .../googleads/v8/enums/feed_link_status.proto | 50 - .../enums/feed_mapping_criterion_type.proto | 50 - .../v8/enums/feed_mapping_status.proto | 50 - .../ads/googleads/v8/enums/feed_origin.proto | 53 - .../ads/googleads/v8/enums/feed_status.proto | 50 - .../v8/enums/flight_placeholder_field.proto | 118 - .../v8/enums/frequency_cap_event_type.proto | 50 - .../v8/enums/frequency_cap_level.proto | 54 - .../v8/enums/frequency_cap_time_unit.proto | 53 - .../ads/googleads/v8/enums/gender_type.proto | 53 - .../v8/enums/geo_target_constant_status.proto | 52 - .../v8/enums/geo_targeting_restriction.proto | 49 - .../v8/enums/geo_targeting_type.proto | 50 - .../v8/enums/google_ads_field_category.proto | 61 - .../v8/enums/google_ads_field_data_type.proto | 102 - .../v8/enums/google_voice_call_status.proto | 50 - .../v8/enums/hotel_date_selection_type.proto | 50 - .../v8/enums/hotel_placeholder_field.proto | 124 - .../v8/enums/hotel_price_bucket.proto | 59 - .../googleads/v8/enums/hotel_rate_type.proto | 62 - .../v8/enums/image_placeholder_field.proto | 47 - .../v8/enums/income_range_type.proto | 65 - .../v8/enums/interaction_event_type.proto | 62 - .../googleads/v8/enums/interaction_type.proto | 47 - .../ads/googleads/v8/enums/invoice_type.proto | 50 - .../v8/enums/job_placeholder_field.proto | 115 - .../v8/enums/keyword_match_type.proto | 53 - .../keyword_plan_aggregate_metric_type.proto | 47 - .../keyword_plan_competition_level.proto | 57 - .../keyword_plan_concept_group_type.proto | 58 - .../keyword_plan_forecast_interval.proto | 56 - .../keyword_plan_keyword_annotation.proto | 47 - .../v8/enums/keyword_plan_network.proto | 50 - .../ads/googleads/v8/enums/label_status.proto | 48 - .../enums/lead_form_call_to_action_type.proto | 84 - .../v8/enums/lead_form_desired_intent.proto | 48 - .../lead_form_field_user_input_type.proto | 273 - ...form_post_submit_call_to_action_type.proto | 55 - .../legacy_app_install_ad_app_store.proto | 59 - .../v8/enums/linked_account_type.proto | 52 - .../v8/enums/listing_group_type.proto | 52 - .../v8/enums/local_placeholder_field.proto | 119 - ..._extension_targeting_criterion_field.proto | 62 - .../enums/location_group_radius_units.proto | 53 - .../v8/enums/location_placeholder_field.proto | 68 - .../v8/enums/location_source_type.proto | 50 - .../v8/enums/manager_link_status.proto | 59 - .../matching_function_context_type.proto | 53 - .../v8/enums/matching_function_operator.proto | 65 - .../ads/googleads/v8/enums/media_type.proto | 64 - .../enums/merchant_center_link_status.proto | 53 - .../v8/enums/message_placeholder_field.proto | 61 - google/ads/googleads/v8/enums/mime_type.proto | 82 - .../googleads/v8/enums/minute_of_hour.proto | 56 - .../v8/enums/mobile_app_vendor.proto | 48 - .../v8/enums/mobile_device_type.proto | 50 - .../googleads/v8/enums/month_of_year.proto | 80 - .../v8/enums/negative_geo_target_type.proto | 52 - ...offline_user_data_job_failure_reason.proto | 51 - .../enums/offline_user_data_job_status.proto | 56 - .../v8/enums/offline_user_data_job_type.proto | 56 - ...erating_system_version_operator_type.proto | 50 - .../v8/enums/optimization_goal_type.proto | 53 - .../v8/enums/parental_status_type.proto | 53 - .../ads/googleads/v8/enums/payment_mode.proto | 64 - .../googleads/v8/enums/placeholder_type.proto | 124 - .../googleads/v8/enums/placement_type.proto | 59 - .../v8/enums/policy_approval_status.proto | 61 - .../v8/enums/policy_review_status.proto | 60 - .../v8/enums/policy_topic_entry_type.proto | 66 - ...idence_destination_mismatch_url_type.proto | 62 - ...dence_destination_not_working_device.proto | 57 - ...stination_not_working_dns_error_type.proto | 56 - .../v8/enums/positive_geo_target_type.proto | 58 - .../v8/enums/preferred_content_type.proto | 47 - .../price_extension_price_qualifier.proto | 53 - .../v8/enums/price_extension_price_unit.proto | 62 - .../v8/enums/price_extension_type.proto | 71 - .../v8/enums/price_placeholder_field.proto | 240 - .../product_bidding_category_level.proto | 57 - .../product_bidding_category_status.proto | 50 - .../googleads/v8/enums/product_channel.proto | 50 - .../enums/product_channel_exclusivity.proto | 52 - .../v8/enums/product_condition.proto | 53 - .../product_custom_attribute_index.proto | 59 - .../v8/enums/product_type_level.proto | 59 - ...romotion_extension_discount_modifier.proto | 48 - .../enums/promotion_extension_occasion.proto | 157 - .../enums/promotion_placeholder_field.proto | 95 - .../v8/enums/proximity_radius_units.proto | 50 - .../v8/enums/quality_score_bucket.proto | 53 - .../v8/enums/reach_plan_ad_length.proto | 53 - .../v8/enums/reach_plan_age_range.proto | 122 - .../v8/enums/reach_plan_network.proto | 54 - .../enums/real_estate_placeholder_field.proto | 115 - .../v8/enums/recommendation_type.proto | 112 - .../v8/enums/resource_change_operation.proto | 55 - .../v8/enums/resource_limit_type.proto | 333 - .../v8/enums/response_content_type.proto | 48 - .../search_engine_results_page_type.proto | 54 - .../v8/enums/search_term_match_type.proto | 59 - .../enums/search_term_targeting_status.proto | 58 - .../v8/enums/seasonality_event_scope.proto | 59 - .../v8/enums/seasonality_event_status.proto | 53 - .../v8/enums/served_asset_field_type.proto | 61 - .../v8/enums/shared_set_status.proto | 50 - .../googleads/v8/enums/shared_set_type.proto | 50 - .../simulation_modification_method.proto | 59 - .../googleads/v8/enums/simulation_type.proto | 68 - .../v8/enums/sitelink_placeholder_field.proto | 69 - google/ads/googleads/v8/enums/slot.proto | 65 - .../v8/enums/spending_limit_type.proto | 48 - ...structured_snippet_placeholder_field.proto | 55 - .../v8/enums/summary_row_setting.proto | 54 - .../enums/system_managed_entity_source.proto | 47 - ...arget_cpa_opt_in_recommendation_goal.proto | 57 - .../target_impression_share_location.proto | 55 - .../v8/enums/targeting_dimension.proto | 74 - google/ads/googleads/v8/enums/time_type.proto | 51 - .../v8/enums/tracking_code_page_format.proto | 50 - .../v8/enums/tracking_code_type.proto | 59 - .../v8/enums/travel_placeholder_field.proto | 128 - .../v8/enums/user_identifier_source.proto | 54 - .../enums/user_interest_taxonomy_type.proto | 59 - .../v8/enums/user_list_access_status.proto | 50 - .../v8/enums/user_list_closing_reason.proto | 48 - .../user_list_combined_rule_operator.proto | 48 - .../user_list_crm_data_source_type.proto | 51 - .../user_list_date_rule_item_operator.proto | 54 - .../user_list_logical_rule_operator.proto | 51 - .../enums/user_list_membership_status.proto | 52 - .../user_list_number_rule_item_operator.proto | 60 - .../user_list_prepopulation_status.proto | 51 - .../v8/enums/user_list_rule_type.proto | 48 - .../v8/enums/user_list_size_range.proto | 92 - .../user_list_string_rule_item_operator.proto | 66 - .../googleads/v8/enums/user_list_type.proto | 63 - .../v8/enums/value_rule_device_type.proto | 54 - .../value_rule_geo_location_match_type.proto | 51 - .../v8/enums/value_rule_operation.proto | 54 - .../value_rule_set_attachment_type.proto | 50 - .../v8/enums/value_rule_set_dimension.proto | 54 - .../vanity_pharma_display_url_mode.proto | 50 - .../v8/enums/vanity_pharma_text.proto | 87 - .../v8/enums/webpage_condition_operand.proto | 59 - .../v8/enums/webpage_condition_operator.proto | 51 - google/ads/googleads/v8/errors/BUILD.bazel | 94 - .../v8/errors/access_invitation_error.proto | 69 - .../account_budget_proposal_error.proto | 122 - .../v8/errors/account_link_error.proto | 47 - .../v8/errors/ad_customizer_error.proto | 59 - google/ads/googleads/v8/errors/ad_error.proto | 512 - .../v8/errors/ad_group_ad_error.proto | 80 - .../errors/ad_group_bid_modifier_error.proto | 51 - .../v8/errors/ad_group_criterion_error.proto | 137 - .../googleads/v8/errors/ad_group_error.proto | 91 - .../v8/errors/ad_group_feed_error.proto | 67 - .../v8/errors/ad_parameter_error.proto | 50 - .../v8/errors/ad_sharing_error.proto | 54 - .../ads/googleads/v8/errors/adx_error.proto | 47 - .../ads/googleads/v8/errors/asset_error.proto | 99 - .../v8/errors/asset_link_error.proto | 108 - .../v8/errors/authentication_error.proto | 103 - .../v8/errors/authorization_error.proto | 92 - .../googleads/v8/errors/batch_job_error.proto | 63 - .../googleads/v8/errors/bidding_error.proto | 122 - .../v8/errors/bidding_strategy_error.proto | 61 - .../v8/errors/billing_setup_error.proto | 105 - .../v8/errors/campaign_budget_error.proto | 97 - .../v8/errors/campaign_criterion_error.proto | 99 - .../v8/errors/campaign_draft_error.proto | 79 - .../googleads/v8/errors/campaign_error.proto | 190 - .../v8/errors/campaign_experiment_error.proto | 81 - .../v8/errors/campaign_feed_error.proto | 67 - .../v8/errors/campaign_shared_set_error.proto | 47 - .../v8/errors/change_event_error.proto | 63 - .../v8/errors/change_status_error.proto | 63 - .../v8/errors/collection_size_error.proto | 50 - .../googleads/v8/errors/context_error.proto | 50 - .../v8/errors/conversion_action_error.proto | 82 - .../conversion_adjustment_upload_error.proto | 105 - .../conversion_custom_variable_error.proto | 50 - .../v8/errors/conversion_upload_error.proto | 169 - .../errors/conversion_value_rule_error.proto | 92 - .../conversion_value_rule_set_error.proto | 84 - .../v8/errors/country_code_error.proto | 47 - .../googleads/v8/errors/criterion_error.proto | 456 - .../v8/errors/currency_code_error.proto | 47 - .../v8/errors/custom_audience_error.proto | 68 - .../v8/errors/custom_interest_error.proto | 66 - .../errors/customer_client_link_error.proto | 68 - .../googleads/v8/errors/customer_error.proto | 50 - .../v8/errors/customer_feed_error.proto | 66 - .../errors/customer_manager_link_error.proto | 75 - .../errors/customer_user_access_error.proto | 60 - .../googleads/v8/errors/database_error.proto | 56 - .../ads/googleads/v8/errors/date_error.proto | 74 - .../v8/errors/date_range_error.proto | 59 - .../googleads/v8/errors/distinct_error.proto | 50 - .../ads/googleads/v8/errors/enum_error.proto | 47 - google/ads/googleads/v8/errors/errors.proto | 664 - .../v8/errors/extension_feed_item_error.proto | 195 - .../v8/errors/extension_setting_error.proto | 261 - .../feed_attribute_reference_error.proto | 53 - .../ads/googleads/v8/errors/feed_error.proto | 111 - .../googleads/v8/errors/feed_item_error.proto | 71 - .../v8/errors/feed_item_set_error.proto | 71 - .../v8/errors/feed_item_set_link_error.proto | 51 - .../v8/errors/feed_item_target_error.proto | 70 - .../errors/feed_item_validation_error.proto | 377 - .../v8/errors/feed_mapping_error.proto | 100 - .../ads/googleads/v8/errors/field_error.proto | 65 - .../v8/errors/field_mask_error.proto | 58 - .../googleads/v8/errors/function_error.proto | 93 - .../v8/errors/function_parsing_error.proto | 77 - ...geo_target_constant_suggestion_error.proto | 56 - .../googleads/v8/errors/header_error.proto | 50 - google/ads/googleads/v8/errors/id_error.proto | 47 - .../ads/googleads/v8/errors/image_error.proto | 164 - .../googleads/v8/errors/internal_error.proto | 58 - .../googleads/v8/errors/invoice_error.proto | 53 - .../errors/keyword_plan_ad_group_error.proto | 53 - .../keyword_plan_ad_group_keyword_error.proto | 72 - .../errors/keyword_plan_campaign_error.proto | 65 - .../keyword_plan_campaign_keyword_error.proto | 49 - .../v8/errors/keyword_plan_error.proto | 91 - .../v8/errors/keyword_plan_idea_error.proto | 50 - .../ads/googleads/v8/errors/label_error.proto | 73 - .../v8/errors/language_code_error.proto | 50 - .../v8/errors/list_operation_error.proto | 50 - .../v8/errors/manager_link_error.proto | 97 - .../v8/errors/media_bundle_error.proto | 110 - .../v8/errors/media_file_error.proto | 113 - .../v8/errors/media_upload_error.proto | 152 - .../v8/errors/multiplier_error.proto | 81 - .../googleads/v8/errors/mutate_error.proto | 69 - .../errors/new_resource_creation_error.proto | 54 - .../v8/errors/not_allowlisted_error.proto | 47 - .../googleads/v8/errors/not_empty_error.proto | 47 - .../ads/googleads/v8/errors/null_error.proto | 47 - .../errors/offline_user_data_job_error.proto | 152 - .../operation_access_denied_error.proto | 74 - .../googleads/v8/errors/operator_error.proto | 47 - .../v8/errors/partial_failure_error.proto | 48 - .../v8/errors/payments_account_error.proto | 47 - .../v8/errors/policy_finding_error.proto | 51 - .../policy_validation_parameter_error.proto | 54 - .../v8/errors/policy_violation_error.proto | 47 - .../ads/googleads/v8/errors/query_error.proto | 222 - .../ads/googleads/v8/errors/quota_error.proto | 53 - .../ads/googleads/v8/errors/range_error.proto | 50 - .../v8/errors/reach_plan_error.proto | 48 - .../v8/errors/recommendation_error.proto | 90 - .../v8/errors/region_code_error.proto | 47 - .../googleads/v8/errors/request_error.proto | 119 - .../errors/resource_access_denied_error.proto | 47 - .../resource_count_limit_exceeded_error.proto | 93 - .../googleads/v8/errors/setting_error.proto | 85 - .../v8/errors/shared_criterion_error.proto | 47 - .../v8/errors/shared_set_error.proto | 56 - .../v8/errors/size_limit_error.proto | 50 - .../v8/errors/string_format_error.proto | 50 - .../v8/errors/string_length_error.proto | 54 - ...third_party_app_analytics_link_error.proto | 57 - .../googleads/v8/errors/time_zone_error.proto | 47 - .../googleads/v8/errors/url_field_error.proto | 214 - .../googleads/v8/errors/user_data_error.proto | 53 - .../googleads/v8/errors/user_list_error.proto | 129 - .../youtube_video_registration_error.proto | 53 - google/ads/googleads/v8/googleads_gapic.yaml | 26 - .../v8/googleads_grpc_service_config.json | 429 - google/ads/googleads/v8/googleads_v8.yaml | 1403 - google/ads/googleads/v8/resources/BUILD.bazel | 97 - .../accessible_bidding_strategy.proto | 172 - .../v8/resources/account_budget.proto | 252 - .../resources/account_budget_proposal.proto | 160 - .../googleads/v8/resources/account_link.proto | 125 - google/ads/googleads/v8/resources/ad.proto | 188 - .../ads/googleads/v8/resources/ad_group.proto | 187 - .../googleads/v8/resources/ad_group_ad.proto | 103 - .../v8/resources/ad_group_ad_asset_view.proto | 105 - .../v8/resources/ad_group_ad_label.proto | 66 - .../v8/resources/ad_group_asset.proto | 80 - .../v8/resources/ad_group_audience_view.proto | 54 - .../v8/resources/ad_group_bid_modifier.proto | 112 - .../v8/resources/ad_group_criterion.proto | 291 - .../resources/ad_group_criterion_label.proto | 66 - .../ad_group_criterion_simulation.proto | 90 - .../ad_group_extension_setting.proto | 79 - .../v8/resources/ad_group_feed.proto | 83 - .../v8/resources/ad_group_label.proto | 66 - .../v8/resources/ad_group_simulation.proto | 94 - .../googleads/v8/resources/ad_parameter.proto | 82 - .../v8/resources/ad_schedule_view.proto | 52 - .../v8/resources/age_range_view.proto | 51 - google/ads/googleads/v8/resources/asset.proto | 135 - .../v8/resources/asset_field_type_view.proto | 57 - .../googleads/v8/resources/batch_job.proto | 98 - .../v8/resources/bidding_data_exclusion.proto | 108 - .../bidding_seasonality_adjustment.proto | 114 - .../v8/resources/bidding_strategy.proto | 139 - .../bidding_strategy_simulation.proto | 82 - .../v8/resources/billing_setup.proto | 138 - .../googleads/v8/resources/call_view.proto | 80 - .../ads/googleads/v8/resources/campaign.proto | 441 - .../v8/resources/campaign_asset.proto | 76 - .../v8/resources/campaign_audience_view.proto | 55 - .../v8/resources/campaign_bid_modifier.proto | 76 - .../v8/resources/campaign_budget.proto | 156 - .../v8/resources/campaign_criterion.proto | 181 - .../campaign_criterion_simulation.proto | 83 - .../v8/resources/campaign_draft.proto | 98 - .../v8/resources/campaign_experiment.proto | 121 - .../campaign_extension_setting.proto | 79 - .../v8/resources/campaign_feed.proto | 83 - .../v8/resources/campaign_label.proto | 66 - .../v8/resources/campaign_shared_set.proto | 77 - .../v8/resources/campaign_simulation.proto | 102 - .../v8/resources/carrier_constant.proto | 61 - .../googleads/v8/resources/change_event.proto | 203 - .../v8/resources/change_status.proto | 199 - .../googleads/v8/resources/click_view.proto | 108 - .../v8/resources/combined_audience.proto | 67 - .../v8/resources/conversion_action.proto | 176 - .../conversion_custom_variable.proto | 86 - .../v8/resources/conversion_value_rule.proto | 135 - .../resources/conversion_value_rule_set.proto | 96 - .../v8/resources/currency_constant.proto | 64 - .../v8/resources/custom_audience.proto | 107 - .../v8/resources/custom_interest.proto | 89 - .../ads/googleads/v8/resources/customer.proto | 161 - .../v8/resources/customer_asset.proto | 71 - .../v8/resources/customer_client.proto | 101 - .../v8/resources/customer_client_link.proto | 70 - .../customer_extension_setting.proto | 67 - .../v8/resources/customer_feed.proto | 75 - .../v8/resources/customer_label.proto | 72 - .../v8/resources/customer_manager_link.proto | 65 - .../customer_negative_criterion.proto | 82 - .../v8/resources/customer_user_access.proto | 72 - .../customer_user_access_invitation.proto | 73 - .../v8/resources/detail_placement_view.proto | 71 - .../v8/resources/detailed_demographic.proto | 74 - .../v8/resources/display_keyword_view.proto | 51 - .../v8/resources/distance_view.proto | 62 - .../v8/resources/domain_category.proto | 90 - .../dynamic_search_ads_search_term_view.proto | 86 - .../expanded_landing_page_view.proto | 55 - .../v8/resources/extension_feed_item.proto | 151 - google/ads/googleads/v8/resources/feed.proto | 190 - .../googleads/v8/resources/feed_item.proto | 214 - .../v8/resources/feed_item_set.proto | 84 - .../v8/resources/feed_item_set_link.proto | 66 - .../v8/resources/feed_item_target.proto | 108 - .../googleads/v8/resources/feed_mapping.proto | 189 - .../v8/resources/feed_placeholder_view.proto | 55 - .../googleads/v8/resources/gender_view.proto | 51 - .../v8/resources/geo_target_constant.proto | 82 - .../v8/resources/geographic_view.proto | 63 - .../v8/resources/google_ads_field.proto | 108 - .../v8/resources/group_placement_view.proto | 66 - .../v8/resources/hotel_group_view.proto | 51 - .../v8/resources/hotel_performance_view.proto | 51 - .../v8/resources/income_range_view.proto | 51 - .../ads/googleads/v8/resources/invoice.proto | 203 - .../googleads/v8/resources/keyword_plan.proto | 82 - .../v8/resources/keyword_plan_ad_group.proto | 71 - .../keyword_plan_ad_group_keyword.proto | 77 - .../v8/resources/keyword_plan_campaign.proto | 98 - .../keyword_plan_campaign_keyword.proto | 71 - .../v8/resources/keyword_theme_constant.proto | 64 - .../googleads/v8/resources/keyword_view.proto | 51 - google/ads/googleads/v8/resources/label.proto | 66 - .../v8/resources/landing_page_view.proto | 55 - .../v8/resources/language_constant.proto | 64 - .../googleads/v8/resources/life_event.proto | 73 - .../v8/resources/location_view.proto | 52 - .../v8/resources/managed_placement_view.proto | 51 - .../googleads/v8/resources/media_file.proto | 137 - .../v8/resources/merchant_center_link.proto | 64 - .../mobile_app_category_constant.proto | 57 - .../v8/resources/mobile_device_constant.proto | 67 - .../v8/resources/offline_user_data_job.proto | 82 - .../operating_system_version_constant.proto | 70 - .../paid_organic_search_term_view.proto | 56 - .../v8/resources/parental_status_view.proto | 51 - .../v8/resources/payments_account.proto | 78 - .../product_bidding_category_constant.proto | 83 - .../v8/resources/product_group_view.proto | 51 - .../v8/resources/recommendation.proto | 350 - .../v8/resources/remarketing_action.proto | 66 - .../v8/resources/search_term_view.proto | 68 - .../v8/resources/shared_criterion.proto | 92 - .../googleads/v8/resources/shared_set.proto | 77 - .../resources/shopping_performance_view.proto | 55 - .../smart_campaign_search_term_view.proto | 62 - .../v8/resources/smart_campaign_setting.proto | 91 - .../third_party_app_analytics_link.proto | 55 - .../v8/resources/topic_constant.proto | 71 - .../googleads/v8/resources/topic_view.proto | 51 - .../v8/resources/user_interest.proto | 76 - .../googleads/v8/resources/user_list.proto | 174 - .../v8/resources/user_location_view.proto | 62 - google/ads/googleads/v8/resources/video.proto | 63 - .../googleads/v8/resources/webpage_view.proto | 51 - google/ads/googleads/v8/services/BUILD.bazel | 138 - .../accessible_bidding_strategy_service.proto | 58 - .../account_budget_proposal_service.proto | 161 - .../v8/services/account_budget_service.proto | 70 - .../v8/services/account_link_service.proto | 178 - .../ad_group_ad_asset_view_service.proto | 67 - .../services/ad_group_ad_label_service.proto | 144 - .../v8/services/ad_group_ad_service.proto | 195 - .../v8/services/ad_group_asset_service.proto | 162 - .../ad_group_audience_view_service.proto | 67 - .../ad_group_bid_modifier_service.proto | 174 - .../ad_group_criterion_label_service.proto | 143 - .../services/ad_group_criterion_service.proto | 194 - ...d_group_criterion_simulation_service.proto | 68 - .../ad_group_extension_setting_service.proto | 183 - .../v8/services/ad_group_feed_service.proto | 172 - .../v8/services/ad_group_label_service.proto | 144 - .../v8/services/ad_group_service.proto | 178 - .../ad_group_simulation_service.proto | 67 - .../v8/services/ad_parameter_service.proto | 162 - .../services/ad_schedule_view_service.proto | 67 - .../googleads/v8/services/ad_service.proto | 184 - .../v8/services/age_range_view_service.proto | 67 - .../asset_field_type_view_service.proto | 59 - .../googleads/v8/services/asset_service.proto | 175 - .../v8/services/batch_job_service.proto | 286 - .../bidding_data_exclusion_service.proto | 141 - ...dding_seasonality_adjustment_service.proto | 141 - .../services/bidding_strategy_service.proto | 177 - .../bidding_strategy_simulation_service.proto | 60 - .../v8/services/billing_setup_service.proto | 136 - .../v8/services/campaign_asset_service.proto | 163 - .../campaign_audience_view_service.proto | 67 - .../campaign_bid_modifier_service.proto | 174 - .../v8/services/campaign_budget_service.proto | 167 - .../services/campaign_criterion_service.proto | 178 - ...ampaign_criterion_simulation_service.proto | 68 - .../v8/services/campaign_draft_service.proto | 254 - .../campaign_experiment_service.proto | 382 - .../campaign_extension_setting_service.proto | 182 - .../v8/services/campaign_feed_service.proto | 173 - .../v8/services/campaign_label_service.proto | 144 - .../v8/services/campaign_service.proto | 183 - .../campaign_shared_set_service.proto | 164 - .../campaign_simulation_service.proto | 60 - .../services/carrier_constant_service.proto | 67 - .../v8/services/change_status_service.proto | 67 - .../v8/services/click_view_service.proto | 67 - .../services/combined_audience_service.proto | 69 - .../services/conversion_action_service.proto | 167 - ...conversion_adjustment_upload_service.proto | 203 - .../conversion_custom_variable_service.proto | 158 - .../services/conversion_upload_service.proto | 327 - .../conversion_value_rule_service.proto | 144 - .../conversion_value_rule_set_service.proto | 144 - .../services/currency_constant_service.proto | 65 - .../v8/services/custom_audience_service.proto | 140 - .../v8/services/custom_interest_service.proto | 132 - .../v8/services/customer_asset_service.proto | 160 - .../customer_client_link_service.proto | 129 - .../v8/services/customer_client_service.proto | 67 - .../customer_extension_setting_service.proto | 180 - .../v8/services/customer_feed_service.proto | 172 - .../v8/services/customer_label_service.proto | 142 - .../customer_manager_link_service.proto | 180 - .../customer_negative_criterion_service.proto | 152 - .../v8/services/customer_service.proto | 214 - ...tomer_user_access_invitation_service.proto | 125 - .../customer_user_access_service.proto | 129 - .../detail_placement_view_service.proto | 67 - .../detailed_demographic_service.proto | 59 - .../display_keyword_view_service.proto | 67 - .../v8/services/distance_view_service.proto | 67 - .../v8/services/domain_category_service.proto | 68 - ..._search_ads_search_term_view_service.proto | 68 - .../expanded_landing_page_view_service.proto | 68 - .../extension_feed_item_service.proto | 175 - .../v8/services/feed_item_service.proto | 174 - .../services/feed_item_set_link_service.proto | 131 - .../v8/services/feed_item_set_service.proto | 139 - .../services/feed_item_target_service.proto | 161 - .../v8/services/feed_mapping_service.proto | 161 - .../feed_placeholder_view_service.proto | 67 - .../googleads/v8/services/feed_service.proto | 173 - .../v8/services/gender_view_service.proto | 67 - .../geo_target_constant_service.proto | 146 - .../v8/services/geographic_view_service.proto | 67 - .../services/google_ads_field_service.proto | 115 - .../v8/services/google_ads_service.proto | 1252 - .../group_placement_view_service.proto | 67 - .../services/hotel_group_view_service.proto | 67 - .../hotel_performance_view_service.proto | 67 - .../services/income_range_view_service.proto | 67 - .../v8/services/invoice_service.proto | 83 - ...eyword_plan_ad_group_keyword_service.proto | 165 - .../keyword_plan_ad_group_service.proto | 159 - ...eyword_plan_campaign_keyword_service.proto | 162 - .../keyword_plan_campaign_service.proto | 160 - .../services/keyword_plan_idea_service.proto | 181 - .../v8/services/keyword_plan_service.proto | 446 - .../keyword_theme_constant_service.proto | 98 - .../v8/services/keyword_view_service.proto | 67 - .../googleads/v8/services/label_service.proto | 168 - .../services/landing_page_view_service.proto | 67 - .../services/language_constant_service.proto | 67 - .../v8/services/life_event_service.proto | 59 - .../v8/services/location_view_service.proto | 67 - .../managed_placement_view_service.proto | 67 - .../v8/services/media_file_service.proto | 156 - .../merchant_center_link_service.proto | 160 - ...mobile_app_category_constant_service.proto | 66 - .../mobile_device_constant_service.proto | 67 - .../offline_user_data_job_service.proto | 224 - ...ting_system_version_constant_service.proto | 68 - ...aid_organic_search_term_view_service.proto | 68 - .../parental_status_view_service.proto | 67 - .../services/payments_account_service.proto | 71 - ...ct_bidding_category_constant_service.proto | 68 - .../services/product_group_view_service.proto | 67 - .../v8/services/reach_plan_service.proto | 552 - .../v8/services/recommendation_service.proto | 309 - .../services/remarketing_action_service.proto | 141 - .../services/search_term_view_service.proto | 67 - .../services/shared_criterion_service.proto | 162 - .../v8/services/shared_set_service.proto | 172 - .../shopping_performance_view_service.proto | 68 - ...rt_campaign_search_term_view_service.proto | 68 - .../smart_campaign_setting_service.proto | 128 - .../smart_campaign_suggest_service.proto | 191 - ...ird_party_app_analytics_link_service.proto | 94 - .../v8/services/topic_constant_service.proto | 67 - .../v8/services/topic_view_service.proto | 67 - .../v8/services/user_data_service.proto | 97 - .../v8/services/user_interest_service.proto | 67 - .../v8/services/user_list_service.proto | 159 - .../services/user_location_view_service.proto | 67 - .../googleads/v8/services/video_service.proto | 67 - .../v8/services/webpage_view_service.proto | 59 - google/ads/googleads/v9/BUILD.bazel | 7 +- google/ads/googleads/v9/common/BUILD.bazel | 4 +- google/ads/googleads/v9/enums/BUILD.bazel | 4 +- google/ads/googleads/v9/errors/BUILD.bazel | 4 +- google/ads/googleads/v9/resources/BUILD.bazel | 4 +- google/ads/googleads/v9/services/BUILD.bazel | 4 +- google/analytics/admin/v1alpha/BUILD.bazel | 61 +- .../admin/v1alpha/access_report.proto | 328 + .../v1alpha/admin_grpc_service_config.json | 143 - .../admin/v1alpha/analytics_admin.proto | 717 +- .../admin/v1alpha/analyticsadmin.yaml | 198 + .../admin/v1alpha/analyticsadmin_v1alpha.yaml | 26 +- google/analytics/admin/v1alpha/audience.proto | 419 + .../analytics/admin/v1alpha/resources.proto | 305 +- google/analytics/admin/v1beta/BUILD.bazel | 376 + .../v1beta/admin_grpc_service_config.json | 158 + .../admin/v1beta/analytics_admin.proto | 1333 + .../admin/v1beta/analyticsadmin.yaml | 109 + google/analytics/admin/v1beta/resources.proto | 905 + google/analytics/data/BUILD.bazel | 2 +- google/analytics/data/v1alpha/BUILD.bazel | 370 + .../data/v1alpha/analytics_data_api.proto | 169 + .../analytics_data_grpc_service_config.json | 24 + .../data/v1alpha/analyticsdata_v1alpha.yaml | 23 + google/analytics/data/v1alpha/data.proto | 1233 + google/analytics/data/v1beta/BUILD.bazel | 17 + google/analytics/data/v1beta/data.proto | 8 +- google/api/BUILD.bazel | 16 +- google/api/apikeys/BUILD.bazel | 40 + google/api/apikeys/v2/BUILD.bazel | 390 + google/api/apikeys/v2/apikeys.proto | 287 + .../v2/apikeys_grpc_service_config.json | 8 + google/api/apikeys/v2/apikeys_v2.yaml | 55 + google/api/apikeys/v2/resources.proto | 172 + google/api/billing.proto | 2 - google/api/expr/v1alpha1/checked.proto | 27 +- google/api/expr/v1alpha1/eval.proto | 2 +- google/api/expr/v1alpha1/explain.proto | 2 +- google/api/expr/v1alpha1/syntax.proto | 9 +- google/api/expr/v1alpha1/value.proto | 2 +- google/api/service.proto | 3 - google/api/servicecontrol/v1/BUILD.bazel | 18 + .../v1/service_controller.proto | 1 - google/api/servicecontrol/v2/BUILD.bazel | 382 + .../v2/service_controller.proto | 190 + .../api/servicecontrol/v2/servicecontrol.yaml | 171 + .../servicecontrol_grpc_service_config.json | 20 + google/api/servicemanagement/BUILD.bazel | 2 +- google/api/servicemanagement/v1/BUILD.bazel | 50 +- .../api/servicemanagement/v1/resources.proto | 23 +- .../v1/servicemanagement_v1.yaml | 50 +- .../servicemanagement/v1/servicemanager.proto | 201 +- google/api/serviceusage/v1/BUILD.bazel | 18 +- google/api/serviceusage/v1/resources.proto | 1 - google/api/serviceusage/v1beta1/BUILD.bazel | 17 + .../api/serviceusage/v1beta1/resources.proto | 1 - .../serviceusage/v1beta1/serviceusage.proto | 1 - google/appengine/legacy/audit_data.proto | 2 - google/appengine/logging/v1/BUILD.bazel | 5 +- google/appengine/v1/BUILD.bazel | 26 +- google/appengine/v1/app_yaml.proto | 3 +- google/appengine/v1/appengine.proto | 616 +- google/appengine/v1/appengine_v1.yaml | 6 + google/appengine/v1/application.proto | 64 +- google/appengine/v1/audit_data.proto | 1 - google/appengine/v1/certificate.proto | 1 - google/appengine/v1/deploy.proto | 3 +- google/appengine/v1/deployed_files.proto | 2 - google/appengine/v1/domain.proto | 2 - google/appengine/v1/domain_mapping.proto | 2 - google/appengine/v1/firewall.proto | 2 - google/appengine/v1/instance.proto | 21 +- google/appengine/v1/location.proto | 3 +- google/appengine/v1/network_settings.proto | 4 +- google/appengine/v1/operation.proto | 4 +- google/appengine/v1/service.proto | 16 +- google/appengine/v1/version.proto | 58 +- google/appengine/v1beta/app_yaml.proto | 1 - google/appengine/v1beta/application.proto | 1 - google/appengine/v1beta/audit_data.proto | 1 - google/appengine/v1beta/certificate.proto | 1 - google/appengine/v1beta/deploy.proto | 1 - google/appengine/v1beta/domain.proto | 1 - google/appengine/v1beta/domain_mapping.proto | 1 - google/appengine/v1beta/firewall.proto | 1 - google/appengine/v1beta/instance.proto | 1 - google/appengine/v1beta/location.proto | 1 - .../appengine/v1beta/network_settings.proto | 1 - google/appengine/v1beta/operation.proto | 2 - google/appengine/v1beta/service.proto | 1 - google/appengine/v1beta/version.proto | 1 - google/apps/alertcenter/v1beta1/BUILD.bazel | 23 +- .../alertcenter/v1beta1/alertcenter.proto | 1 - google/apps/drive/activity/v2/BUILD.bazel | 33 + google/apps/drive/activity/v2/action.proto | 158 +- google/apps/drive/activity/v2/actor.proto | 4 +- google/apps/drive/activity/v2/common.proto | 2 +- .../activity/v2/drive_activity_service.proto | 4 +- .../v2/query_drive_activity_request.proto | 3 +- .../v2/query_drive_activity_response.proto | 2 +- google/apps/drive/activity/v2/target.proto | 2 +- google/apps/market/v2/BUILD.bazel | 18 + google/apps/market/v2/resources.proto | 1 - google/apps/script/type/BUILD.bazel | 6 + google/apps/script/type/calendar/BUILD.bazel | 10 +- google/apps/script/type/docs/BUILD.bazel | 10 +- google/apps/script/type/drive/BUILD.bazel | 10 +- google/apps/script/type/gmail/BUILD.bazel | 11 +- .../type/gmail/gmail_addon_manifest.proto | 1 - google/apps/script/type/sheets/BUILD.bazel | 10 +- google/apps/script/type/slides/BUILD.bazel | 10 +- google/area120/tables/v1alpha1/BUILD.bazel | 21 +- google/bigtable/admin/v2/BUILD.bazel | 21 + .../admin/v2/bigtable_instance_admin.proto | 105 +- .../admin/v2/bigtable_table_admin.proto | 89 +- .../v2/bigtableadmin_grpc_service_config.json | 21 +- .../bigtable/admin/v2/bigtableadmin_v2.yaml | 12 + google/bigtable/admin/v2/common.proto | 3 +- google/bigtable/admin/v2/instance.proto | 155 +- google/bigtable/admin/v2/table.proto | 98 +- google/bigtable/v2/BUILD.bazel | 25 +- google/bigtable/v2/bigtable.proto | 184 +- .../v2/bigtable_grpc_service_config.json | 32 +- google/bigtable/v2/bigtable_v2.yaml | 6 +- google/bigtable/v2/data.proto | 2 +- google/bigtable/v2/request_stats.proto | 117 + google/bigtable/v2/response_params.proto | 38 + google/chat/logging/v1/BUILD.bazel | 177 + .../chat/logging/v1/chat_app_log_entry.proto | 40 + google/chromeos/moblab/v1beta1/BUILD.bazel | 17 + google/chromeos/uidetection/v1/BUILD.bazel | 23 +- .../uidetection/v1/ui_detection.proto | 33 +- google/cloud/BUILD.bazel | 9 +- google/cloud/accessapproval/v1/BUILD.bazel | 19 + .../accessapproval/v1/accessapproval.proto | 362 +- .../accessapproval_grpc_service_config.json | 1 + google/cloud/aiplatform/BUILD.bazel | 41 + google/cloud/aiplatform/v1/BUILD.bazel | 38 + .../aiplatform/v1/accelerator_type.proto | 10 +- google/cloud/aiplatform/v1/aiplatform_v1.yaml | 31 +- google/cloud/aiplatform/v1/annotation.proto | 4 +- .../cloud/aiplatform/v1/annotation_spec.proto | 3 +- google/cloud/aiplatform/v1/artifact.proto | 4 +- .../aiplatform/v1/batch_prediction_job.proto | 12 +- .../aiplatform/v1/completion_stats.proto | 8 +- google/cloud/aiplatform/v1/context.proto | 4 +- google/cloud/aiplatform/v1/custom_job.proto | 27 +- google/cloud/aiplatform/v1/data_item.proto | 4 +- .../aiplatform/v1/data_labeling_job.proto | 5 +- google/cloud/aiplatform/v1/dataset.proto | 3 +- .../cloud/aiplatform/v1/dataset_service.proto | 52 +- .../aiplatform/v1/deployed_index_ref.proto | 3 +- .../aiplatform/v1/deployed_model_ref.proto | 3 +- .../cloud/aiplatform/v1/encryption_spec.proto | 3 +- google/cloud/aiplatform/v1/endpoint.proto | 40 +- .../aiplatform/v1/endpoint_service.proto | 2 +- google/cloud/aiplatform/v1/entity_type.proto | 15 +- google/cloud/aiplatform/v1/env_var.proto | 3 +- google/cloud/aiplatform/v1/event.proto | 3 +- google/cloud/aiplatform/v1/execution.proto | 4 +- google/cloud/aiplatform/v1/explanation.proto | 70 +- .../aiplatform/v1/explanation_metadata.proto | 6 +- google/cloud/aiplatform/v1/feature.proto | 42 +- .../v1/feature_monitoring_stats.proto | 3 +- .../aiplatform/v1/feature_selector.proto | 3 +- google/cloud/aiplatform/v1/featurestore.proto | 59 +- .../v1/featurestore_monitoring.proto | 149 + .../v1/featurestore_online_service.proto | 3 +- .../aiplatform/v1/featurestore_service.proto | 25 +- .../v1/hyperparameter_tuning_job.proto | 3 +- google/cloud/aiplatform/v1/index.proto | 80 +- .../cloud/aiplatform/v1/index_endpoint.proto | 29 +- .../v1/index_endpoint_service.proto | 2 +- .../cloud/aiplatform/v1/index_service.proto | 60 +- google/cloud/aiplatform/v1/io.proto | 3 +- google/cloud/aiplatform/v1/job_service.proto | 118 +- google/cloud/aiplatform/v1/job_state.proto | 11 +- .../aiplatform/v1/lineage_subgraph.proto | 3 +- .../aiplatform/v1/machine_resources.proto | 23 +- .../v1/manual_batch_tuning_parameters.proto | 5 +- .../cloud/aiplatform/v1/metadata_schema.proto | 3 +- .../aiplatform/v1/metadata_service.proto | 74 +- .../cloud/aiplatform/v1/metadata_store.proto | 3 +- .../aiplatform/v1/migratable_resource.proto | 3 +- .../aiplatform/v1/migration_service.proto | 4 +- google/cloud/aiplatform/v1/model.proto | 73 +- .../v1/model_deployment_monitoring_job.proto | 31 +- .../aiplatform/v1/model_evaluation.proto | 67 +- .../v1/model_evaluation_slice.proto | 3 +- .../aiplatform/v1/model_monitoring.proto | 21 +- .../cloud/aiplatform/v1/model_service.proto | 225 +- google/cloud/aiplatform/v1/operation.proto | 3 +- .../v1/pipeline_failure_policy.proto | 44 + google/cloud/aiplatform/v1/pipeline_job.proto | 53 +- .../aiplatform/v1/pipeline_service.proto | 37 +- .../cloud/aiplatform/v1/pipeline_state.proto | 4 +- .../aiplatform/v1/prediction_service.proto | 6 +- google/cloud/aiplatform/v1/saved_query.proto | 85 + .../v1/schema/predict/instance/BUILD.bazel | 17 +- .../instance/image_classification.proto | 1 - .../instance/image_object_detection.proto | 1 - .../predict/instance/image_segmentation.proto | 1 - .../instance/text_classification.proto | 1 - .../predict/instance/text_extraction.proto | 1 - .../predict/instance/text_sentiment.proto | 1 - .../instance/video_action_recognition.proto | 1 - .../instance/video_classification.proto | 1 - .../instance/video_object_tracking.proto | 1 - .../v1/schema/predict/params/BUILD.bazel | 6 +- .../predict/params/image_classification.proto | 1 - .../params/image_object_detection.proto | 1 - .../predict/params/image_segmentation.proto | 1 - .../params/video_action_recognition.proto | 1 - .../predict/params/video_classification.proto | 1 - .../params/video_object_tracking.proto | 1 - .../v1/schema/predict/prediction/BUILD.bazel | 9 +- .../predict/prediction/classification.proto | 1 - .../prediction/image_object_detection.proto | 1 - .../prediction/image_segmentation.proto | 1 - .../prediction/tabular_classification.proto | 1 - .../prediction/tabular_regression.proto | 1 - .../predict/prediction/text_extraction.proto | 1 - .../predict/prediction/text_sentiment.proto | 1 - .../prediction/video_action_recognition.proto | 1 - .../prediction/video_classification.proto | 1 - .../prediction/video_object_tracking.proto | 1 - .../schema/trainingjob/definition/BUILD.bazel | 1 + .../automl_image_classification.proto | 1 - .../automl_image_object_detection.proto | 1 - .../automl_image_segmentation.proto | 1 - .../definition/automl_tables.proto | 2 - .../automl_text_classification.proto | 1 - .../definition/automl_text_extraction.proto | 1 - .../definition/automl_text_sentiment.proto | 1 - .../automl_video_action_recognition.proto | 1 - .../automl_video_classification.proto | 1 - .../automl_video_object_tracking.proto | 1 - .../export_evaluated_data_items_config.proto | 1 - .../cloud/aiplatform/v1/specialist_pool.proto | 3 +- .../v1/specialist_pool_service.proto | 2 +- google/cloud/aiplatform/v1/study.proto | 69 +- google/cloud/aiplatform/v1/tensorboard.proto | 3 +- .../aiplatform/v1/tensorboard_data.proto | 3 +- .../v1/tensorboard_experiment.proto | 3 +- .../cloud/aiplatform/v1/tensorboard_run.proto | 3 +- .../aiplatform/v1/tensorboard_service.proto | 2 +- .../v1/tensorboard_time_series.proto | 3 +- .../aiplatform/v1/training_pipeline.proto | 30 +- google/cloud/aiplatform/v1/types.proto | 6 +- .../v1/unmanaged_container_model.proto | 3 +- .../aiplatform/v1/user_action_reference.proto | 4 +- google/cloud/aiplatform/v1/value.proto | 4 +- .../cloud/aiplatform/v1/vizier_service.proto | 4 +- google/cloud/aiplatform/v1beta1/BUILD.bazel | 39 + .../aiplatform/v1beta1/accelerator_type.proto | 10 +- .../aiplatform_grpc_service_config.json | 4 + .../v1beta1/aiplatform_v1beta1.yaml | 58 +- .../cloud/aiplatform/v1beta1/annotation.proto | 4 +- .../aiplatform/v1beta1/annotation_spec.proto | 3 +- .../cloud/aiplatform/v1beta1/artifact.proto | 4 +- .../v1beta1/batch_prediction_job.proto | 32 +- .../aiplatform/v1beta1/completion_stats.proto | 8 +- google/cloud/aiplatform/v1beta1/context.proto | 4 +- .../cloud/aiplatform/v1beta1/custom_job.proto | 35 +- .../cloud/aiplatform/v1beta1/data_item.proto | 4 +- .../v1beta1/data_labeling_job.proto | 5 +- google/cloud/aiplatform/v1beta1/dataset.proto | 3 +- .../aiplatform/v1beta1/dataset_service.proto | 52 +- .../v1beta1/deployed_index_ref.proto | 3 +- .../v1beta1/deployed_model_ref.proto | 3 +- .../v1beta1/deployment_resource_pool.proto | 50 + .../deployment_resource_pool_service.proto | 219 + .../aiplatform/v1beta1/encryption_spec.proto | 3 +- .../cloud/aiplatform/v1beta1/endpoint.proto | 47 +- .../aiplatform/v1beta1/endpoint_service.proto | 2 +- .../aiplatform/v1beta1/entity_type.proto | 4 +- google/cloud/aiplatform/v1beta1/env_var.proto | 3 +- google/cloud/aiplatform/v1beta1/event.proto | 3 +- .../cloud/aiplatform/v1beta1/execution.proto | 4 +- .../aiplatform/v1beta1/explanation.proto | 126 +- .../v1beta1/explanation_metadata.proto | 6 +- google/cloud/aiplatform/v1beta1/feature.proto | 52 +- .../v1beta1/feature_monitoring_stats.proto | 3 +- .../aiplatform/v1beta1/feature_selector.proto | 3 +- .../aiplatform/v1beta1/featurestore.proto | 59 +- .../v1beta1/featurestore_monitoring.proto | 92 +- .../v1beta1/featurestore_online_service.proto | 52 +- .../v1beta1/featurestore_service.proto | 123 +- .../v1beta1/hyperparameter_tuning_job.proto | 3 +- google/cloud/aiplatform/v1beta1/index.proto | 80 +- .../aiplatform/v1beta1/index_endpoint.proto | 29 +- .../v1beta1/index_endpoint_service.proto | 2 +- .../aiplatform/v1beta1/index_service.proto | 60 +- google/cloud/aiplatform/v1beta1/io.proto | 3 +- .../aiplatform/v1beta1/job_service.proto | 118 +- .../cloud/aiplatform/v1beta1/job_state.proto | 11 +- .../aiplatform/v1beta1/lineage_subgraph.proto | 3 +- .../v1beta1/machine_resources.proto | 23 +- .../manual_batch_tuning_parameters.proto | 5 +- .../aiplatform/v1beta1/metadata_schema.proto | 3 +- .../aiplatform/v1beta1/metadata_service.proto | 74 +- .../aiplatform/v1beta1/metadata_store.proto | 3 +- .../v1beta1/migratable_resource.proto | 3 +- .../v1beta1/migration_service.proto | 4 +- google/cloud/aiplatform/v1beta1/model.proto | 73 +- .../model_deployment_monitoring_job.proto | 31 +- .../aiplatform/v1beta1/model_evaluation.proto | 32 +- .../v1beta1/model_evaluation_slice.proto | 3 +- .../aiplatform/v1beta1/model_monitoring.proto | 45 +- .../aiplatform/v1beta1/model_service.proto | 266 +- .../cloud/aiplatform/v1beta1/operation.proto | 3 +- .../v1beta1/pipeline_failure_policy.proto | 44 + .../aiplatform/v1beta1/pipeline_job.proto | 53 +- .../aiplatform/v1beta1/pipeline_service.proto | 37 +- .../aiplatform/v1beta1/pipeline_state.proto | 4 +- .../v1beta1/prediction_service.proto | 6 +- .../aiplatform/v1beta1/saved_query.proto | 85 + .../v1beta1/schema/annotation_payload.proto | 4 +- .../schema/annotation_spec_color.proto | 4 +- .../v1beta1/schema/data_item_payload.proto | 5 +- .../v1beta1/schema/dataset_metadata.proto | 4 +- .../aiplatform/v1beta1/schema/geometry.proto | 4 +- .../aiplatform/v1beta1/schema/io_format.proto | 3 + .../schema/predict/instance/BUILD.bazel | 1 + .../instance/image_classification.proto | 4 +- .../instance/image_object_detection.proto | 4 +- .../predict/instance/image_segmentation.proto | 4 +- .../instance/text_classification.proto | 4 +- .../predict/instance/text_extraction.proto | 4 +- .../predict/instance/text_sentiment.proto | 4 +- .../instance/video_action_recognition.proto | 4 +- .../instance/video_classification.proto | 4 +- .../instance/video_object_tracking.proto | 4 +- .../v1beta1/schema/predict/params/BUILD.bazel | 1 + .../predict/params/image_classification.proto | 4 +- .../params/image_object_detection.proto | 4 +- .../predict/params/image_segmentation.proto | 4 +- .../params/video_action_recognition.proto | 4 +- .../predict/params/video_classification.proto | 4 +- .../params/video_object_tracking.proto | 4 +- .../schema/predict/prediction/BUILD.bazel | 2 +- .../predict/prediction/classification.proto | 4 +- .../prediction/image_object_detection.proto | 4 +- .../prediction/image_segmentation.proto | 4 +- .../prediction/tabular_classification.proto | 4 +- .../prediction/tabular_regression.proto | 4 +- .../predict/prediction/text_extraction.proto | 4 +- .../predict/prediction/text_sentiment.proto | 4 +- .../prediction/time_series_forecasting.proto | 4 +- .../prediction/video_action_recognition.proto | 4 +- .../prediction/video_classification.proto | 4 +- .../prediction/video_object_tracking.proto | 4 +- .../schema/trainingjob/definition/BUILD.bazel | 5 +- .../automl_image_classification.proto | 4 +- .../automl_image_object_detection.proto | 4 +- .../automl_image_segmentation.proto | 4 +- .../definition/automl_tables.proto | 4 +- .../automl_text_classification.proto | 4 +- .../definition/automl_text_extraction.proto | 4 +- .../definition/automl_text_sentiment.proto | 4 +- .../automl_time_series_forecasting.proto | 4 +- .../automl_video_action_recognition.proto | 4 +- .../automl_video_classification.proto | 4 +- .../automl_video_object_tracking.proto | 4 +- .../export_evaluated_data_items_config.proto | 4 +- .../aiplatform/v1beta1/specialist_pool.proto | 3 +- .../v1beta1/specialist_pool_service.proto | 2 +- google/cloud/aiplatform/v1beta1/study.proto | 86 +- .../aiplatform/v1beta1/tensorboard.proto | 3 +- .../aiplatform/v1beta1/tensorboard_data.proto | 3 +- .../v1beta1/tensorboard_experiment.proto | 3 +- .../aiplatform/v1beta1/tensorboard_run.proto | 3 +- .../v1beta1/tensorboard_service.proto | 2 +- .../v1beta1/tensorboard_time_series.proto | 3 +- .../v1beta1/training_pipeline.proto | 30 +- google/cloud/aiplatform/v1beta1/types.proto | 6 +- .../v1beta1/unmanaged_container_model.proto | 3 +- .../v1beta1/user_action_reference.proto | 4 +- google/cloud/aiplatform/v1beta1/value.proto | 4 +- .../aiplatform/v1beta1/vizier_service.proto | 4 +- google/cloud/apigateway/v1/BUILD.bazel | 20 +- google/cloud/apigateway/v1/apigateway.proto | 1 - google/cloud/apigeeconnect/v1/BUILD.bazel | 20 +- google/cloud/apigeeregistry/BUILD.bazel | 39 + google/cloud/apigeeregistry/v1/BUILD.bazel | 406 + .../apigeeregistry_grpc_service_config.json | 168 + .../apigeeregistry/v1/apigeeregistry_v1.yaml | 159 + .../v1/provisioning_service.proto | 205 + .../apigeeregistry/v1/registry_models.proto | 364 + .../apigeeregistry/v1/registry_service.proto | 1133 + google/cloud/asset/asset_v1beta1.yaml | 56 - google/cloud/asset/asset_v1p2beta1.yaml | 38 - google/cloud/asset/v1/BUILD.bazel | 31 +- google/cloud/asset/v1/asset_service.proto | 946 +- google/cloud/asset/v1/assets.proto | 146 +- .../v1/cloudasset_grpc_service_config.json | 37 + google/cloud/asset/v1/cloudasset_v1.yaml | 1 + google/cloud/asset/v1p1beta1/BUILD.bazel | 25 +- google/cloud/asset/v1p1beta1/assets.proto | 1 - google/cloud/asset/v1p2beta1/BUILD.bazel | 24 +- .../cloud/asset/v1p2beta1/asset_service.proto | 2 - google/cloud/asset/v1p2beta1/assets.proto | 2 - google/cloud/asset/v1p4beta1/BUILD.bazel | 332 - .../cloud/asset/v1p4beta1/asset_service.proto | 343 - google/cloud/asset/v1p4beta1/assets.proto | 167 - .../asset/v1p4beta1/cloudasset_gapic.yaml | 13 - .../cloudasset_grpc_service_config.json | 30 - .../asset/v1p4beta1/cloudasset_v1p4beta1.yaml | 44 - google/cloud/asset/v1p5beta1/BUILD.bazel | 29 +- google/cloud/asset/v1p5beta1/assets.proto | 3 - google/cloud/asset/v1p7beta1/BUILD.bazel | 17 +- .../cloud/asset/v1p7beta1/asset_service.proto | 2 - google/cloud/asset/v1p7beta1/assets.proto | 2 - .../logging/v1/BUILD.bazel | 173 + .../regulatory_intercept_ack_log_entry.proto | 32 + google/cloud/assuredworkloads/v1/BUILD.bazel | 21 + .../v1/assuredworkloads.proto | 3 + .../assuredworkloads/v1beta1/BUILD.bazel | 24 +- .../v1beta1/assuredworkloads.proto | 564 + .../assuredworkloads_grpc_service_config.json | 4 +- .../v1beta1/assuredworkloads_service.proto | 100 + .../v1beta1/assuredworkloads_v1beta1.proto | 554 - .../v1beta1/assuredworkloads_v1beta1.yaml | 1 + google/cloud/audit/BUILD.bazel | 19 +- google/cloud/automl/automl_v1.yaml | 117 - google/cloud/automl/automl_v1beta1.yaml | 129 - google/cloud/automl/v1/BUILD.bazel | 19 + .../cloud/automl/v1/annotation_payload.proto | 2 - google/cloud/automl/v1/annotation_spec.proto | 1 - google/cloud/automl/v1/classification.proto | 2 - google/cloud/automl/v1/data_items.proto | 4 - google/cloud/automl/v1/dataset.proto | 1 - google/cloud/automl/v1/detection.proto | 2 - google/cloud/automl/v1/geometry.proto | 2 - google/cloud/automl/v1/image.proto | 4 - google/cloud/automl/v1/io.proto | 1 - google/cloud/automl/v1/model.proto | 1 - google/cloud/automl/v1/model_evaluation.proto | 1 - google/cloud/automl/v1/operations.proto | 7 - google/cloud/automl/v1/text.proto | 2 - google/cloud/automl/v1/text_extraction.proto | 1 - google/cloud/automl/v1/text_segment.proto | 2 - google/cloud/automl/v1/text_sentiment.proto | 1 - google/cloud/automl/v1/translation.proto | 1 - google/cloud/automl/v1beta1/BUILD.bazel | 19 + .../automl/v1beta1/annotation_payload.proto | 2 - .../automl/v1beta1/annotation_spec.proto | 1 - .../cloud/automl/v1beta1/classification.proto | 1 - google/cloud/automl/v1beta1/column_spec.proto | 1 - google/cloud/automl/v1beta1/data_items.proto | 3 - google/cloud/automl/v1beta1/data_stats.proto | 1 - google/cloud/automl/v1beta1/data_types.proto | 1 - google/cloud/automl/v1beta1/dataset.proto | 1 - google/cloud/automl/v1beta1/detection.proto | 1 - google/cloud/automl/v1beta1/geometry.proto | 1 - google/cloud/automl/v1beta1/image.proto | 3 - google/cloud/automl/v1beta1/io.proto | 1 - google/cloud/automl/v1beta1/model.proto | 1 - .../automl/v1beta1/model_evaluation.proto | 1 - google/cloud/automl/v1beta1/operations.proto | 2 - google/cloud/automl/v1beta1/ranges.proto | 1 - google/cloud/automl/v1beta1/regression.proto | 1 - google/cloud/automl/v1beta1/table_spec.proto | 1 - google/cloud/automl/v1beta1/tables.proto | 1 - google/cloud/automl/v1beta1/temporal.proto | 1 - google/cloud/automl/v1beta1/text.proto | 1 - .../automl/v1beta1/text_extraction.proto | 1 - .../cloud/automl/v1beta1/text_segment.proto | 1 - .../cloud/automl/v1beta1/text_sentiment.proto | 1 - google/cloud/automl/v1beta1/translation.proto | 1 - google/cloud/automl/v1beta1/video.proto | 1 - google/cloud/baremetalsolution/BUILD.bazel | 39 + google/cloud/baremetalsolution/v2/BUILD.bazel | 41 +- .../v2/baremetalsolution.proto | 954 +- .../v2/baremetalsolution_v2.yaml | 12 +- .../cloud/baremetalsolution/v2/instance.proto | 288 + google/cloud/baremetalsolution/v2/lun.proto | 149 + .../cloud/baremetalsolution/v2/network.proto | 284 + .../baremetalsolution/v2/nfs_share.proto | 164 + .../cloud/baremetalsolution/v2/volume.proto | 231 + google/cloud/batch/BUILD.bazel | 38 + google/cloud/batch/v1/BUILD.bazel | 397 + google/cloud/batch/v1/batch.proto | 272 + google/cloud/batch/v1/batch_v1.yaml | 119 + .../v1/batch_v1_grpc_service_config.json | 25 + google/cloud/batch/v1/job.proto | 445 + google/cloud/batch/v1/task.proto | 297 + google/cloud/batch/v1/volume.proto | 72 + google/cloud/batch/v1alpha/BUILD.bazel | 397 + google/cloud/batch/v1alpha/batch.proto | 272 + google/cloud/batch/v1alpha/batch_v1alpha.yaml | 119 + .../batch_v1alpha_grpc_service_config.json | 25 + google/cloud/batch/v1alpha/job.proto | 560 + google/cloud/batch/v1alpha/task.proto | 322 + google/cloud/batch/v1alpha/volume.proto | 90 + .../beyondcorp/appconnections/BUILD.bazel | 39 + .../beyondcorp/appconnections/v1/BUILD.bazel | 343 + .../v1/app_connections_service.proto | 512 + ...rp-appconnections_grpc_service_config.json | 25 + .../appconnections/v1/beyondcorp_v1.yaml | 132 + .../beyondcorp/appconnectors/BUILD.bazel | 39 + .../beyondcorp/appconnectors/v1/BUILD.bazel | 347 + .../v1/app_connector_instance_config.proto | 72 + .../v1/app_connectors_service.proto | 435 + ...orp-appconnectors_grpc_service_config.json | 26 + .../appconnectors/v1/beyondcorp_v1.yaml | 132 + .../appconnectors/v1/resource_info.proto | 76 + .../cloud/beyondcorp/appgateways/BUILD.bazel | 39 + .../beyondcorp/appgateways/v1/BUILD.bazel | 342 + .../appgateways/v1/app_gateways_service.proto | 356 + ...dcorp-appgateways_grpc_service_config.json | 23 + .../appgateways/v1/beyondcorp_v1.yaml | 132 + .../clientconnectorservices/BUILD.bazel | 39 + .../clientconnectorservices/v1/BUILD.bazel | 342 + ...connectorservices_grpc_service_config.json | 25 + .../v1/beyondcorp_v1.yaml | 132 + .../client_connector_services_service.proto | 421 + .../beyondcorp/clientgateways/BUILD.bazel | 39 + .../beyondcorp/clientgateways/v1/BUILD.bazel | 342 + ...rp-clientgateways_grpc_service_config.json | 23 + .../clientgateways/v1/beyondcorp_v1.yaml | 132 + .../v1/client_gateways_service.proto | 296 + .../bigquery/analyticshub/v1/BUILD.bazel | 384 + .../analyticshub/v1/analyticshub.proto | 651 + .../analyticshub/v1/analyticshub_v1.yaml | 23 + .../analyticshub_v1_grpc_service_config.json | 22 + google/cloud/bigquery/bigquery_v2.yaml | 37 - .../cloud/bigquery/connection/v1/BUILD.bazel | 21 + .../bigquery/connection/v1/connection.proto | 63 +- .../bigquery/connection/v1beta1/BUILD.bazel | 24 +- .../connection/v1beta1/connection.proto | 13 +- .../cloud/bigquery/dataexchange/BUILD.bazel | 39 + .../bigquery/dataexchange/v1beta1/BUILD.bazel | 397 + .../v1beta1/analyticshub_v1beta1.yaml | 51 + ...lyticshub_v1beta1_grpc_service_config.json | 22 + .../dataexchange/v1beta1/dataexchange.proto | 651 + .../cloud/bigquery/datapolicies/BUILD.bazel | 39 + .../bigquery/datapolicies/v1beta1/BUILD.bazel | 387 + .../v1beta1/bigquerydatapolicy_v1beta1.yaml | 23 + ...apolicies_v1beta1_grpc_service_config.json | 46 + .../datapolicies/v1beta1/datapolicy.proto | 287 + .../bigquery/datatransfer/v1/BUILD.bazel | 18 + .../bigquery/datatransfer/v1/transfer.proto | 1 - google/cloud/bigquery/logging/v1/BUILD.bazel | 4 +- google/cloud/bigquery/migration/BUILD.bazel | 39 + .../cloud/bigquery/migration/v2/BUILD.bazel | 392 + ...bigquerymigration_grpc_service_config.json | 39 + .../migration/v2/bigquerymigration_v2.yaml | 24 + .../migration/v2/migration_entities.proto | 233 + .../v2/migration_error_details.proto | 62 + .../migration/v2/migration_metrics.proto | 111 + .../migration/v2/migration_service.proto | 245 + .../migration/v2/translation_config.proto | 257 + .../bigquery/migration/v2alpha/BUILD.bazel | 25 +- ...bigquerymigration_grpc_service_config.json | 16 + .../migration/v2alpha/migration_service.proto | 1 - .../cloud/bigquery/reservation/v1/BUILD.bazel | 18 + .../bigquery/reservation/v1/reservation.proto | 102 +- .../bigquery/reservation/v1beta1/BUILD.bazel | 17 +- .../reservation/v1beta1/reservation.proto | 2 + google/cloud/bigquery/storage/v1/BUILD.bazel | 13 + .../bigquery/storage/v1/annotations.proto | 28 + google/cloud/bigquery/storage/v1/arrow.proto | 7 +- google/cloud/bigquery/storage/v1/avro.proto | 22 +- .../bigquerystorage_grpc_service_config.json | 54 +- .../storage/v1/bigquerystorage_v1.yaml | 14 +- .../cloud/bigquery/storage/v1/protobuf.proto | 2 +- .../cloud/bigquery/storage/v1/storage.proto | 86 +- google/cloud/bigquery/storage/v1/stream.proto | 89 +- google/cloud/bigquery/storage/v1/table.proto | 6 +- .../bigquery/storage/v1beta1/BUILD.bazel | 18 +- .../bigquery/storage/v1beta1/storage.proto | 1 - .../storage/v1beta1/table_reference.proto | 1 - .../bigquery/storage/v1beta2/BUILD.bazel | 13 + .../bigquery/storage/v1beta2/storage.proto | 1 - google/cloud/bigquery/v2/BUILD.bazel | 22 +- .../cloud/bigquery/v2/encryption_config.proto | 1 - .../cloud/bigquery/v2/model_reference.proto | 1 - google/cloud/bigquery/v2/standard_sql.proto | 1 - .../cloud/bigquery/v2/table_reference.proto | 1 - ...bigquerymigration_grpc_service_config.json | 63 - google/cloud/billing/budgets/v1/BUILD.bazel | 26 +- .../cloud/billing/budgets/v1beta1/BUILD.bazel | 14 + .../budgets/v1beta1/budget_model.proto | 157 +- .../budgets/v1beta1/budget_service.proto | 7 +- google/cloud/billing/v1/BUILD.bazel | 22 + .../cloud/binaryauthorization/v1/BUILD.bazel | 29 +- .../v1/binaryauthorization_v1.yaml | 3 +- .../binaryauthorization/v1/resources.proto | 1 - .../binaryauthorization/v1beta1/BUILD.bazel | 18 + .../v1beta1/binaryauthorization_v1beta1.yaml | 3 +- .../continuous_validation_logging.proto | 21 +- .../v1beta1/resources.proto | 1 - google/cloud/certificatemanager/BUILD.bazel | 39 + .../certificatemanager/logging/v1/BUILD.bazel | 175 + .../certificatemanager/logging/v1/logs.proto | 57 + .../cloud/certificatemanager/v1/BUILD.bazel | 392 + .../v1/certificate_manager.proto | 1061 + ...ertificatemanager_grpc_service_config.json | 54 + .../v1/certificatemanager_v1.yaml | 68 + google/cloud/channel/v1/BUILD.bazel | 39 +- .../channel/v1/channel_partner_links.proto | 3 +- google/cloud/channel/v1/cloudchannel_v1.yaml | 1 + google/cloud/channel/v1/common.proto | 3 +- google/cloud/channel/v1/customers.proto | 3 +- google/cloud/channel/v1/entitlements.proto | 12 +- google/cloud/channel/v1/offers.proto | 3 +- google/cloud/channel/v1/operations.proto | 4 +- google/cloud/channel/v1/products.proto | 3 +- google/cloud/channel/v1/repricing.proto | 149 + google/cloud/channel/v1/service.proto | 500 +- .../cloud/channel/v1/subscriber_event.proto | 9 +- google/cloud/clouddms/v1/BUILD.bazel | 16 +- .../clouddms/v1/clouddms_resources.proto | 1 - .../cloud/cloudsetup/logging/v1/BUILD.bazel | 180 + .../logging/v1/complete_deployment.proto | 88 + .../consumer/procurement/v1alpha1/BUILD.bazel | 378 + ...dcommerceconsumerprocurement_v1alpha1.yaml | 30 + ...nsumerprocurement_grpc_service_config.json | 33 + .../consumer/procurement/v1alpha1/order.proto | 254 + .../v1alpha1/procurement_service.proto | 154 + google/cloud/common/BUILD.bazel | 8 +- google/cloud/compute/BUILD.bazel | 2 +- google/cloud/compute/v1/BUILD.bazel | 16 + google/cloud/compute/v1/compute.proto | 5754 +- google/cloud/compute/v1/compute.v1.json | 117136 ++++++++------- google/cloud/compute/v1/compute_gapic.yaml | 306 +- .../v1/compute_grpc_service_config.json | 249 + google/cloud/connectors/v1/BUILD.bazel | 399 + google/cloud/connectors/v1/authconfig.proto | 140 + google/cloud/connectors/v1/common.proto | 258 + google/cloud/connectors/v1/connection.proto | 596 + google/cloud/connectors/v1/connector.proto | 114 + .../connectors/v1/connector_version.proto | 213 + .../v1/connectors_grpc_service_config.json | 87 + .../connectors/v1/connectors_service.proto | 173 + google/cloud/connectors/v1/connectors_v1.yaml | 115 + .../connectors/v1/destination_config.proto | 43 + google/cloud/connectors/v1/provider.proto | 113 + google/cloud/connectors/v1/runtime.proto | 108 + .../contactcenterinsights/v1/BUILD.bazel | 18 + .../v1/contact_center_insights.proto | 2 +- .../v1/contactcenterinsights_v1.yaml | 1 + .../contactcenterinsights/v1/resources.proto | 18 +- google/cloud/contentwarehouse/v1/BUILD.bazel | 419 + .../v1/async_document_service_request.proto | 35 + google/cloud/contentwarehouse/v1/common.proto | 140 + .../contentwarehouse_grpc_service_config.json | 53 + .../v1/contentwarehouse_v1.yaml | 43 + .../cloud/contentwarehouse/v1/document.proto | 322 + .../v1/document_link_service.proto | 227 + .../contentwarehouse/v1/document_schema.proto | 172 + .../v1/document_schema_service.proto | 168 + .../v1/document_service.proto | 245 + .../v1/document_service_request.proto | 278 + .../cloud/contentwarehouse/v1/filters.proto | 207 + .../cloud/contentwarehouse/v1/histogram.proto | 102 + .../contentwarehouse/v1/rule_engine.proto | 436 + .../contentwarehouse/v1/ruleset_service.proto | 85 + .../v1/ruleset_service_request.proto | 155 + .../contentwarehouse/v1/synonymset.proto | 58 + .../v1/synonymset_service.proto | 83 + .../v1/synonymset_service_request.proto | 122 + google/cloud/datacatalog/v1/BUILD.bazel | 24 + google/cloud/datacatalog/v1/bigquery.proto | 3 +- google/cloud/datacatalog/v1/common.proto | 14 +- google/cloud/datacatalog/v1/data_source.proto | 38 +- google/cloud/datacatalog/v1/datacatalog.proto | 235 +- .../cloud/datacatalog/v1/dataplex_spec.proto | 90 + .../datacatalog/v1/gcs_fileset_spec.proto | 2 +- .../datacatalog/v1/physical_schema.proto | 83 + .../datacatalog/v1/policytagmanager.proto | 4 +- .../v1/policytagmanagerserialization.proto | 5 +- google/cloud/datacatalog/v1/schema.proto | 2 +- google/cloud/datacatalog/v1/search.proto | 2 +- google/cloud/datacatalog/v1/table_spec.proto | 2 +- google/cloud/datacatalog/v1/tags.proto | 73 +- google/cloud/datacatalog/v1/timestamps.proto | 2 +- google/cloud/datacatalog/v1/usage.proto | 2 +- google/cloud/datacatalog/v1beta1/BUILD.bazel | 26 +- .../datacatalog/v1beta1/datacatalog.proto | 4 +- google/cloud/datacatalog/v1beta1/search.proto | 2 - google/cloud/dataform/BUILD.bazel | 1 + google/cloud/dataform/v1alpha2/BUILD.bazel | 383 + google/cloud/dataform/v1alpha2/dataform.proto | 1628 + .../dataform_grpc_service_config.json | 26 + .../dataform/v1alpha2/dataform_v1alpha2.yaml | 95 + google/cloud/dataform/v1beta1/BUILD.bazel | 370 + google/cloud/dataform/v1beta1/dataform.proto | 1629 + .../v1beta1/dataform_grpc_service_config.json | 26 + .../dataform/v1beta1/dataform_v1beta1.yaml | 77 + google/cloud/datafusion/v1/BUILD.bazel | 18 + google/cloud/datafusion/v1beta1/BUILD.bazel | 21 + google/cloud/datalabeling/v1beta1/BUILD.bazel | 14 + .../datalabeling/v1beta1/annotation.proto | 2 - .../v1beta1/annotation_spec_set.proto | 1 - .../datalabeling/v1beta1/data_payloads.proto | 2 - .../cloud/datalabeling/v1beta1/dataset.proto | 1 - .../datalabeling/v1beta1/evaluation.proto | 1 - .../datalabeling/v1beta1/evaluation_job.proto | 1 - .../v1beta1/human_annotation_config.proto | 1 - .../datalabeling/v1beta1/instruction.proto | 1 - .../datalabeling/v1beta1/operations.proto | 2 - google/cloud/dataplex/BUILD.bazel | 39 + google/cloud/dataplex/v1/BUILD.bazel | 54 +- google/cloud/dataplex/v1/analyze.proto | 264 + google/cloud/dataplex/v1/content.proto | 268 + .../v1/dataplex_grpc_service_config.json | 81 + google/cloud/dataplex/v1/dataplex_v1.yaml | 15 +- google/cloud/dataplex/v1/logs.proto | 5 +- google/cloud/dataplex/v1/metadata.proto | 299 +- google/cloud/dataplex/v1/resources.proto | 10 +- google/cloud/dataplex/v1/service.proto | 228 +- google/cloud/dataplex/v1/tasks.proto | 33 +- google/cloud/dataproc/BUILD.bazel | 2 +- google/cloud/dataproc/dataproc.yaml | 127 - google/cloud/dataproc/v1/BUILD.bazel | 21 + .../dataproc/v1/autoscaling_policies.proto | 6 +- google/cloud/dataproc/v1/clusters.proto | 150 +- google/cloud/dataproc/v1/shared.proto | 175 +- google/cloud/dataqna/BUILD.bazel | 1 - google/cloud/dataqna/v1alpha/BUILD.bazel | 19 + google/cloud/datastream/BUILD.bazel | 6 +- google/cloud/datastream/v1/BUILD.bazel | 397 + google/cloud/datastream/v1/datastream.proto | 1042 + .../v1/datastream_grpc_service_config.json | 29 + .../datastream/v1/datastream_resources.proto | 1023 + google/cloud/datastream/v1/datastream_v1.yaml | 73 + google/cloud/datastream/v1alpha1/BUILD.bazel | 26 +- .../v1alpha1/datastream_resources.proto | 1 - google/cloud/deploy/v1/BUILD.bazel | 59 +- google/cloud/deploy/v1/cloud_deploy.proto | 684 +- .../v1/clouddeploy_grpc_service_config.json | 16 + google/cloud/deploy/v1/clouddeploy_v1.yaml | 9 + ...eliverypipeline_notification_payload.proto | 38 + .../v1/jobrun_notification_payload.proto | 50 + google/cloud/deploy/v1/log_enums.proto | 34 + .../v1/release_notification_payload.proto | 38 + .../deploy/v1/release_render_payload.proto | 33 + .../v1/rollout_notification_payload.proto | 47 + .../v1/target_notification_payload.proto | 38 + google/cloud/dialogflow/BUILD.bazel | 2 +- google/cloud/dialogflow/cx/v3/BUILD.bazel | 40 + .../dialogflow/cx/v3/advanced_settings.proto | 13 +- google/cloud/dialogflow/cx/v3/agent.proto | 31 +- .../cloud/dialogflow/cx/v3/audio_config.proto | 8 +- google/cloud/dialogflow/cx/v3/changelog.proto | 3 +- .../cloud/dialogflow/cx/v3/deployment.proto | 4 +- .../cloud/dialogflow/cx/v3/dialogflow_v3.yaml | 4 + .../cloud/dialogflow/cx/v3/entity_type.proto | 2 +- .../cloud/dialogflow/cx/v3/environment.proto | 14 +- .../cloud/dialogflow/cx/v3/experiment.proto | 2 +- google/cloud/dialogflow/cx/v3/flow.proto | 17 +- .../cloud/dialogflow/cx/v3/fulfillment.proto | 10 +- google/cloud/dialogflow/cx/v3/intent.proto | 4 +- google/cloud/dialogflow/cx/v3/page.proto | 5 +- .../dialogflow/cx/v3/response_message.proto | 3 +- .../dialogflow/cx/v3/security_settings.proto | 53 +- google/cloud/dialogflow/cx/v3/session.proto | 76 +- .../cx/v3/session_entity_type.proto | 2 +- google/cloud/dialogflow/cx/v3/test_case.proto | 35 +- .../cx/v3/transition_route_group.proto | 4 +- .../dialogflow/cx/v3/validation_message.proto | 5 +- google/cloud/dialogflow/cx/v3/version.proto | 7 +- google/cloud/dialogflow/cx/v3/webhook.proto | 14 +- .../cloud/dialogflow/cx/v3beta1/BUILD.bazel | 40 + .../cx/v3beta1/advanced_settings.proto | 13 +- .../cloud/dialogflow/cx/v3beta1/agent.proto | 31 +- .../dialogflow/cx/v3beta1/audio_config.proto | 8 +- .../dialogflow/cx/v3beta1/changelog.proto | 3 +- .../dialogflow/cx/v3beta1/deployment.proto | 4 +- .../cx/v3beta1/dialogflow_v3beta1.yaml | 4 + .../dialogflow/cx/v3beta1/entity_type.proto | 2 +- .../dialogflow/cx/v3beta1/environment.proto | 14 +- .../dialogflow/cx/v3beta1/experiment.proto | 2 +- google/cloud/dialogflow/cx/v3beta1/flow.proto | 17 +- .../dialogflow/cx/v3beta1/fulfillment.proto | 10 +- .../cloud/dialogflow/cx/v3beta1/intent.proto | 4 +- google/cloud/dialogflow/cx/v3beta1/page.proto | 5 +- .../cx/v3beta1/response_message.proto | 3 +- .../cx/v3beta1/security_settings.proto | 53 +- .../cloud/dialogflow/cx/v3beta1/session.proto | 76 +- .../cx/v3beta1/session_entity_type.proto | 2 +- .../dialogflow/cx/v3beta1/test_case.proto | 35 +- .../cx/v3beta1/transition_route_group.proto | 4 +- .../cx/v3beta1/validation_message.proto | 5 +- .../cloud/dialogflow/cx/v3beta1/version.proto | 7 +- .../cloud/dialogflow/cx/v3beta1/webhook.proto | 14 +- google/cloud/dialogflow/v2/BUILD.bazel | 47 +- google/cloud/dialogflow/v2/agent.proto | 20 +- .../cloud/dialogflow/v2/answer_record.proto | 14 +- google/cloud/dialogflow/v2/audio_config.proto | 12 +- google/cloud/dialogflow/v2/context.proto | 2 +- google/cloud/dialogflow/v2/conversation.proto | 5 +- .../dialogflow/v2/conversation_dataset.proto | 315 + .../dialogflow/v2/conversation_event.proto | 3 +- .../dialogflow/v2/conversation_model.proto | 653 + .../dialogflow/v2/conversation_profile.proto | 144 +- .../v2/dialogflow_grpc_service_config.json | 6 + google/cloud/dialogflow/v2/dialogflow_v2.yaml | 32 + google/cloud/dialogflow/v2/document.proto | 41 +- google/cloud/dialogflow/v2/entity_type.proto | 2 +- google/cloud/dialogflow/v2/environment.proto | 2 +- google/cloud/dialogflow/v2/fulfillment.proto | 5 +- google/cloud/dialogflow/v2/gcs.proto | 3 +- .../v2/human_agent_assistant_event.proto | 3 +- google/cloud/dialogflow/v2/intent.proto | 4 +- .../cloud/dialogflow/v2/knowledge_base.proto | 2 +- google/cloud/dialogflow/v2/participant.proto | 23 +- google/cloud/dialogflow/v2/session.proto | 19 +- .../dialogflow/v2/session_entity_type.proto | 2 +- .../dialogflow/v2/validation_result.proto | 4 +- google/cloud/dialogflow/v2/version.proto | 2 +- google/cloud/dialogflow/v2/webhook.proto | 3 +- google/cloud/dialogflow/v2beta1/BUILD.bazel | 41 +- google/cloud/dialogflow/v2beta1/agent.proto | 21 +- .../dialogflow/v2beta1/answer_record.proto | 12 +- .../dialogflow/v2beta1/audio_config.proto | 9 +- google/cloud/dialogflow/v2beta1/context.proto | 2 +- .../dialogflow/v2beta1/conversation.proto | 10 +- .../v2beta1/conversation_event.proto | 7 +- .../v2beta1/conversation_profile.proto | 141 +- .../dialogflow_grpc_service_config.json | 3 + .../v2beta1/dialogflow_v2beta1.yaml | 8 + .../cloud/dialogflow/v2beta1/document.proto | 46 +- .../dialogflow/v2beta1/entity_type.proto | 2 +- .../dialogflow/v2beta1/environment.proto | 2 +- .../dialogflow/v2beta1/fulfillment.proto | 6 +- google/cloud/dialogflow/v2beta1/gcs.proto | 13 +- .../v2beta1/human_agent_assistant_event.proto | 3 +- google/cloud/dialogflow/v2beta1/intent.proto | 12 +- .../dialogflow/v2beta1/knowledge_base.proto | 2 +- .../dialogflow/v2beta1/participant.proto | 297 +- google/cloud/dialogflow/v2beta1/session.proto | 13 +- .../v2beta1/session_entity_type.proto | 2 +- .../v2beta1/validation_result.proto | 4 +- google/cloud/dialogflow/v2beta1/version.proto | 2 +- google/cloud/dialogflow/v2beta1/webhook.proto | 3 +- .../cloud/discoveryengine/v1beta/BUILD.bazel | 406 + .../cloud/discoveryengine/v1beta/common.proto | 93 + .../discoveryengine_grpc_service_config.json | 52 + .../v1beta/discoveryengine_v1beta.yaml | 71 + .../discoveryengine/v1beta/document.proto | 77 + .../v1beta/document_service.proto | 261 + .../v1beta/import_config.proto | 265 + .../v1beta/recommendation_service.proto | 182 + .../discoveryengine/v1beta/user_event.proto | 447 + .../v1beta/user_event_service.proto | 122 + google/cloud/documentai/v1/BUILD.bazel | 49 +- google/cloud/documentai/v1/barcode.proto | 67 + google/cloud/documentai/v1/document.proto | 128 +- google/cloud/documentai/v1/document_io.proto | 4 +- .../v1/document_processor_service.proto | 534 +- .../cloud/documentai/v1/document_schema.proto | 140 + google/cloud/documentai/v1/documentai_v1.yaml | 14 + google/cloud/documentai/v1/geometry.proto | 4 +- .../documentai/v1/operation_metadata.proto | 6 +- google/cloud/documentai/v1/processor.proto | 185 + .../cloud/documentai/v1/processor_type.proto | 63 + google/cloud/documentai/v1beta1/BUILD.bazel | 20 +- .../cloud/documentai/v1beta1/document.proto | 6 +- .../cloud/documentai/v1beta1/geometry.proto | 1 - google/cloud/documentai/v1beta2/BUILD.bazel | 18 +- .../cloud/documentai/v1beta2/document.proto | 13 +- .../cloud/documentai/v1beta2/geometry.proto | 1 - google/cloud/documentai/v1beta3/BUILD.bazel | 68 +- google/cloud/documentai/v1beta3/barcode.proto | 67 + .../cloud/documentai/v1beta3/document.proto | 128 +- .../documentai/v1beta3/document_io.proto | 4 +- .../v1beta3/document_processor_service.proto | 350 +- .../documentai/v1beta3/document_schema.proto | 140 + .../v1beta3/documentai_v1beta3.yaml | 47 +- .../cloud/documentai/v1beta3/geometry.proto | 4 +- .../v1beta3/operation_metadata.proto | 6 +- .../cloud/documentai/v1beta3/processor.proto | 108 +- .../documentai/v1beta3/processor_type.proto | 19 +- google/cloud/domains/BUILD.bazel | 2 +- google/cloud/domains/v1/BUILD.bazel | 18 + google/cloud/domains/v1alpha2/BUILD.bazel | 18 + google/cloud/domains/v1beta1/BUILD.bazel | 18 + google/cloud/edgecontainer/v1/BUILD.bazel | 381 + .../v1/edgecontainer_grpc_service_config.json | 36 + .../edgecontainer/v1/edgecontainer_v1.yaml | 67 + google/cloud/edgecontainer/v1/resources.proto | 449 + google/cloud/edgecontainer/v1/service.proto | 593 + .../enterpriseknowledgegraph/v1/BUILD.bazel | 153 + ...iseknowledgegraph_grpc_service_config.json | 24 + .../v1/enterpriseknowledgegraph_v1.yaml | 18 + .../v1/job_state.proto | 55 + .../v1/operation_metadata.proto | 60 + .../enterpriseknowledgegraph/v1/service.proto | 358 + google/cloud/essentialcontacts/v1/BUILD.bazel | 26 +- .../cloud/eventarc/publishing/v1/BUILD.bazel | 20 +- .../publishing/v1/eventarcpublishing_v1.yaml | 4 + .../eventarc/publishing/v1/publisher.proto | 31 +- google/cloud/eventarc/v1/BUILD.bazel | 33 +- google/cloud/eventarc/v1/channel.proto | 103 + .../eventarc/v1/channel_connection.proto | 73 + google/cloud/eventarc/v1/discovery.proto | 86 + google/cloud/eventarc/v1/eventarc.proto | 369 +- .../v1/eventarc_grpc_service_config.json | 16 +- google/cloud/eventarc/v1/eventarc_v1.yaml | 13 + google/cloud/eventarc/v1/trigger.proto | 125 +- google/cloud/filestore/v1/BUILD.bazel | 21 + google/cloud/filestore/v1beta1/BUILD.bazel | 11 +- .../cloud/filestore/v1beta1/file_gapic.yaml | 41 + google/cloud/functions/v1/BUILD.bazel | 37 +- google/cloud/functions/v1/functions.proto | 105 +- google/cloud/functions/v1/operations.proto | 3 +- google/cloud/functions/v2/BUILD.bazel | 397 + .../cloud/functions/v2/cloudfunctions_v2.yaml | 91 + google/cloud/functions/v2/functions.proto | 1037 + .../v2/functions_grpc_service_config.json | 44 + google/cloud/functions/v2alpha/BUILD.bazel | 389 + .../v2alpha/cloudfunctions_v2alpha.yaml | 91 + .../cloud/functions/v2alpha/functions.proto | 1033 + .../functions_grpc_service_config.json | 44 + google/cloud/functions/v2beta/BUILD.bazel | 389 + .../v2beta/cloudfunctions_v2beta.yaml | 91 + google/cloud/functions/v2beta/functions.proto | 1033 + .../v2beta/functions_grpc_service_config.json | 44 + .../allocationendpoint/v1alpha/BUILD.bazel | 333 - .../v1alpha/allocation_endpoint.proto | 94 - ...location_endpoint_grpc_service_config.json | 19 - .../v1alpha/allocation_endpoint_v1alpha.yaml | 10 - google/cloud/gaming/v1/BUILD.bazel | 21 + google/cloud/gaming/v1/common.proto | 1 - .../gaming/v1/game_server_clusters.proto | 1 - .../cloud/gaming/v1/game_server_configs.proto | 1 - .../gaming/v1/game_server_deployments.proto | 1 - google/cloud/gaming/v1/realms.proto | 1 - google/cloud/gaming/v1beta/BUILD.bazel | 25 +- google/cloud/gaming/v1beta/common.proto | 1 - .../gaming/v1beta/game_server_clusters.proto | 1 - .../gaming/v1beta/game_server_configs.proto | 1 - .../v1beta/game_server_deployments.proto | 1 - .../gaming/v1beta/gameservices_v1beta.yaml | 12 + google/cloud/gaming/v1beta/realms.proto | 1 - google/cloud/gkebackup/BUILD.bazel | 39 + google/cloud/gkebackup/v1/BUILD.bazel | 339 + google/cloud/gkebackup/v1/backup.proto | 219 + google/cloud/gkebackup/v1/backup_plan.proto | 195 + google/cloud/gkebackup/v1/common.proto | 58 + google/cloud/gkebackup/v1/gkebackup.proto | 940 + .../v1/gkebackup_grpc_service_config.json | 54 + google/cloud/gkebackup/v1/gkebackup_v1.yaml | 132 + google/cloud/gkebackup/v1/restore.proto | 326 + google/cloud/gkebackup/v1/restore_plan.proto | 101 + google/cloud/gkebackup/v1/volume.proto | 222 + .../cloud/gkeconnect/gateway/v1/gateway.proto | 2 - .../gkeconnect/gateway/v1alpha1/gateway.proto | 2 - .../gkeconnect/gateway/v1beta1/BUILD.bazel | 22 +- google/cloud/gkehub/v1/BUILD.bazel | 45 +- .../gkehub/v1/configmanagement/BUILD.bazel | 2 +- .../configmanagement/configmanagement.proto | 1 - google/cloud/gkehub/v1/feature.proto | 1 - google/cloud/gkehub/v1/membership.proto | 1 - .../gkehub/v1/multiclusteringress/BUILD.bazel | 2 +- .../multiclusteringress.proto | 2 - google/cloud/gkehub/v1/service.proto | 1 - google/cloud/gkehub/v1alpha/BUILD.bazel | 18 +- .../v1alpha/cloudauditlogging/BUILD.bazel | 2 +- .../cloudauditlogging/cloudauditlogging.proto | 1 - .../v1alpha/configmanagement/BUILD.bazel | 2 +- .../configmanagement/configmanagement.proto | 1 - google/cloud/gkehub/v1alpha/feature.proto | 1 - .../cloud/gkehub/v1alpha/metering/BUILD.bazel | 2 +- .../gkehub/v1alpha/metering/metering.proto | 1 - .../v1alpha/multiclusteringress/BUILD.bazel | 2 +- .../multiclusteringress.proto | 1 - google/cloud/gkehub/v1alpha/service.proto | 1 - .../gkehub/v1alpha/servicemesh/BUILD.bazel | 3 +- .../v1alpha/servicemesh/servicemesh.proto | 1 - google/cloud/gkehub/v1alpha2/BUILD.bazel | 42 +- google/cloud/gkehub/v1alpha2/membership.proto | 13 +- google/cloud/gkehub/v1beta/BUILD.bazel | 25 +- .../v1beta/configmanagement/BUILD.bazel | 2 +- .../configmanagement/configmanagement.proto | 1 - google/cloud/gkehub/v1beta/feature.proto | 1 - .../cloud/gkehub/v1beta/metering/BUILD.bazel | 2 +- .../gkehub/v1beta/metering/metering.proto | 1 - .../v1beta/multiclusteringress/BUILD.bazel | 2 +- .../multiclusteringress.proto | 1 - google/cloud/gkehub/v1beta/service.proto | 1 - google/cloud/gkehub/v1beta1/BUILD.bazel | 47 +- .../cloud/gkehub/v1beta1/gkehub_v1beta1.yaml | 3 + google/cloud/gkehub/v1beta1/membership.proto | 113 +- google/cloud/gkemulticloud/BUILD.bazel | 39 + google/cloud/gkemulticloud/v1/BUILD.bazel | 393 + .../gkemulticloud/v1/aws_resources.proto | 556 + .../cloud/gkemulticloud/v1/aws_service.proto | 548 + .../gkemulticloud/v1/azure_resources.proto | 632 + .../gkemulticloud/v1/azure_service.proto | 701 + .../gkemulticloud/v1/common_resources.proto | 145 + .../v1/gkemulticloud_grpc_service_config.json | 131 + .../gkemulticloud/v1/gkemulticloud_v1.yaml | 59 + google/cloud/gsuiteaddons/v1/BUILD.bazel | 33 +- google/cloud/healthcare/logging/BUILD.bazel | 182 + .../cloud/healthcare/logging/annotation.proto | 62 + google/cloud/healthcare/logging/consent.proto | 43 + google/cloud/healthcare/logging/deid.proto | 31 + google/cloud/healthcare/logging/dicom.proto | 65 + google/cloud/healthcare/logging/fhir.proto | 101 + google/cloud/healthcare/logging/hl7v2.proto | 45 + google/cloud/iap/v1/BUILD.bazel | 34 +- google/cloud/iap/v1/iap_v1.yaml | 1 - google/cloud/iap/v1/service.proto | 297 +- google/cloud/iap/v1beta1/BUILD.bazel | 21 + .../cloud/identitytoolkit/logging/BUILD.bazel | 179 + .../identitytoolkit/logging/request_log.proto | 91 + google/cloud/identitytoolkit/v2/BUILD.bazel | 31 +- google/cloud/ids/logging/v1/BUILD.bazel | 177 + google/cloud/ids/logging/v1/logging.proto | 158 + google/cloud/ids/v1/BUILD.bazel | 28 +- google/cloud/ids/v1/ids.proto | 1 - .../integrations/v1alpha/task_config.proto | 2 +- google/cloud/iot/v1/BUILD.bazel | 21 + google/cloud/iot/v1/device_manager.proto | 1 - google/cloud/kms/BUILD.bazel | 2 +- google/cloud/kms/v1/BUILD.bazel | 40 + .../kms/v1/cloudkms_grpc_service_config.json | 28 + google/cloud/kms/v1/cloudkms_v1.yaml | 11 + google/cloud/kms/v1/ekm_service.proto | 293 + google/cloud/kms/v1/resources.proto | 551 +- google/cloud/kms/v1/service.proto | 1293 +- .../containersecurity_logging/BUILD.bazel | 175 + .../containersecurity_logging/logging.proto | 146 + google/cloud/language/language.yaml | 33 - google/cloud/language/v1/BUILD.bazel | 32 + .../cloud/language/v1/language_service.proto | 187 +- google/cloud/language/v1beta2/BUILD.bazel | 44 +- .../language/v1beta2/language_service.proto | 131 +- .../language/v1beta2/language_v1beta2.yaml | 18 +- google/cloud/lifesciences/v2beta/BUILD.bazel | 28 +- google/cloud/location/BUILD.bazel | 5 +- google/cloud/managedidentities/v1/BUILD.bazel | 17 +- .../cloud/managedidentities/v1/resource.proto | 1 - .../managedidentities/v1beta1/BUILD.bazel | 15 + .../managedidentities/v1beta1/resource.proto | 1 - .../mediatranslation/v1beta1/BUILD.bazel | 17 + google/cloud/memcache/v1/BUILD.bazel | 17 + google/cloud/memcache/v1beta2/BUILD.bazel | 17 + google/cloud/metastore/v1/BUILD.bazel | 18 + google/cloud/metastore/v1alpha/BUILD.bazel | 39 +- .../cloud/metastore/v1alpha/metastore.proto | 178 +- .../metastore/v1alpha/metastore_v1alpha.yaml | 18 + google/cloud/metastore/v1beta/BUILD.bazel | 20 +- google/cloud/ml/v1/job_service.proto | 613 - google/cloud/ml/v1/model_service.proto | 392 - google/cloud/ml/v1/operation_metadata.proto | 70 - google/cloud/ml/v1/prediction_service.proto | 241 - google/cloud/ml/v1/project_service.proto | 59 - .../networkanalyzer/logging/v1/BUILD.bazel | 176 + .../logging/v1/analyzer_log.proto | 208 + .../cloud/networkconnectivity/v1/BUILD.bazel | 14 + .../cloud/networkconnectivity/v1/common.proto | 3 +- google/cloud/networkconnectivity/v1/hub.proto | 92 +- .../v1/networkconnectivity_v1.yaml | 1 + .../networkconnectivity/v1alpha1/BUILD.bazel | 14 + .../networkconnectivity/v1alpha1/common.proto | 1 - google/cloud/networkmanagement/v1/BUILD.bazel | 20 +- .../v1/connectivity_test.proto | 3 +- .../networkmanagement/v1/reachability.proto | 3 +- google/cloud/networkmanagement/v1/trace.proto | 21 +- .../networkmanagement/v1beta1/BUILD.bazel | 18 + .../v1beta1/connectivity_test.proto | 49 +- .../v1beta1/reachability.proto | 5 +- .../networkmanagement/v1beta1/trace.proto | 102 +- google/cloud/networksecurity/v1/BUILD.bazel | 369 + .../v1/authorization_policy.proto | 249 + .../v1/client_tls_policy.proto | 160 + google/cloud/networksecurity/v1/common.proto | 55 + .../networksecurity/v1/network_security.proto | 201 + .../v1/networksecurity_v1.yaml | 117 + ...etworksecurity_v1_grpc_service_config.json | 12 + .../v1/server_tls_policy.proto | 181 + google/cloud/networksecurity/v1/tls.proto | 78 + .../cloud/networksecurity/v1beta1/BUILD.bazel | 54 +- .../v1beta1/authorization_policy.proto | 97 +- .../v1beta1/client_tls_policy.proto | 44 +- .../networksecurity/v1beta1/common.proto | 12 +- .../v1beta1/networksecurity_v1beta1.yaml | 3 + .../v1beta1/server_tls_policy.proto | 29 +- .../cloud/networksecurity/v1beta1/tls.proto | 11 +- google/cloud/networkservices/v1/BUILD.bazel | 56 +- google/cloud/networkservices/v1/common.proto | 3 +- .../networkservices/v1/endpoint_policy.proto | 3 +- google/cloud/networkservices/v1/gateway.proto | 188 + .../cloud/networkservices/v1/grpc_route.proto | 413 + .../cloud/networkservices/v1/http_route.proto | 616 + google/cloud/networkservices/v1/mesh.proto | 153 + .../networkservices/v1/network_services.proto | 374 +- .../v1/networkservices_v1.yaml | 18 + .../networkservices/v1/service_binding.proto | 131 + .../cloud/networkservices/v1/tcp_route.proto | 251 + .../cloud/networkservices/v1/tls_route.proto | 230 + .../cloud/networkservices/v1beta1/BUILD.bazel | 18 + .../networkservices/v1beta1/common.proto | 1 - .../v1beta1/endpoint_policy.proto | 1 - google/cloud/notebooks/BUILD.bazel | 2 +- google/cloud/notebooks/logging/v1/BUILD.bazel | 177 + .../notebooks/logging/v1/runtime_log.proto | 44 + google/cloud/notebooks/v1/BUILD.bazel | 28 +- google/cloud/notebooks/v1/environment.proto | 4 +- google/cloud/notebooks/v1/event.proto | 23 +- google/cloud/notebooks/v1/execution.proto | 112 +- google/cloud/notebooks/v1/instance.proto | 220 +- .../cloud/notebooks/v1/instance_config.proto | 2 +- .../cloud/notebooks/v1/managed_service.proto | 58 +- google/cloud/notebooks/v1/notebooks_v1.yaml | 8 + google/cloud/notebooks/v1/runtime.proto | 60 +- google/cloud/notebooks/v1/schedule.proto | 6 +- google/cloud/notebooks/v1/service.proto | 61 +- google/cloud/notebooks/v1beta1/BUILD.bazel | 15 + .../cloud/notebooks/v1beta1/environment.proto | 1 - google/cloud/notebooks/v1beta1/instance.proto | 1 - google/cloud/optimization/BUILD.bazel | 39 + google/cloud/optimization/v1/BUILD.bazel | 385 + .../cloud/optimization/v1/async_model.proto | 110 + .../v1/cloudoptimization_gapic.yaml | 11 + ...cloudoptimization_grpc_service_config.json | 28 + .../optimization/v1/cloudoptimization_v1.yaml | 39 + .../cloud/optimization/v1/fleet_routing.proto | 2615 + .../airflow/service/v1/BUILD.bazel | 29 +- .../airflow/service/v1/operations.proto | 1 - .../airflow/service/v1beta1/BUILD.bazel | 27 +- .../airflow/service/v1beta1/operations.proto | 1 - google/cloud/orgpolicy/v1/BUILD.bazel | 7 + google/cloud/orgpolicy/v1/orgpolicy.proto | 2 - google/cloud/orgpolicy/v2/BUILD.bazel | 18 + google/cloud/orgpolicy/v2/constraint.proto | 48 +- google/cloud/orgpolicy/v2/orgpolicy.proto | 22 +- .../osconfig/agentendpoint/v1/BUILD.bazel | 111 +- .../agentendpoint/v1/agentendpoint.proto | 46 +- .../osconfig/agentendpoint/v1/inventory.proto | 36 +- .../osconfig/agentendpoint/v1/os_policy.proto | 88 +- .../agentendpoint/v1/osconfig_v1.yaml | 14 +- .../agentendpoint/v1/patch_jobs.proto | 8 +- .../osconfig/agentendpoint/v1/tasks.proto | 14 +- .../osconfig/agentendpoint/v1beta/BUILD.bazel | 91 +- .../agentendpoint/v1beta/agentendpoint.proto | 57 +- .../agentendpoint/v1beta/osconfig_v1beta.yaml | 13 +- .../agentendpoint/v1beta/patch_jobs.proto | 13 +- .../osconfig/agentendpoint/v1beta/tasks.proto | 4 +- google/cloud/osconfig/v1/BUILD.bazel | 27 +- google/cloud/osconfig/v1/inventory.proto | 12 +- google/cloud/osconfig/v1/os_policy.proto | 58 +- .../v1/os_policy_assignment_reports.proto | 56 +- .../cloud/osconfig/v1/osconfig_common.proto | 2 +- .../cloud/osconfig/v1/osconfig_service.proto | 34 +- .../cloud/osconfig/v1/patch_deployments.proto | 73 +- google/cloud/osconfig/v1/patch_jobs.proto | 59 +- google/cloud/osconfig/v1alpha/BUILD.bazel | 42 +- .../osconfig/v1alpha/config_common.proto | 13 + .../instance_os_policies_compliance.proto | 9 + google/cloud/osconfig/v1alpha/inventory.proto | 26 +- google/cloud/osconfig/v1alpha/os_policy.proto | 112 +- .../os_policy_assignment_reports.proto | 296 + .../v1alpha/os_policy_assignments.proto | 41 +- .../osconfig/v1alpha/osconfig_common.proto | 1 + .../osconfig/v1alpha/osconfig_v1alpha.yaml | 6 +- .../v1alpha/osconfig_zonal_service.proto | 21 + .../osconfig/v1alpha/vulnerability.proto | 50 +- google/cloud/osconfig/v1beta/BUILD.bazel | 53 +- .../osconfig/v1beta/guest_policies.proto | 43 +- .../osconfig/v1beta/osconfig_common.proto | 36 + .../osconfig/v1beta/osconfig_service.proto | 29 + .../osconfig/v1beta/osconfig_v1beta.yaml | 10 +- .../osconfig/v1beta/patch_deployments.proto | 96 +- google/cloud/osconfig/v1beta/patch_jobs.proto | 138 +- google/cloud/oslogin/common/BUILD.bazel | 7 + google/cloud/oslogin/oslogin_v1beta.yaml | 40 - google/cloud/oslogin/v1/BUILD.bazel | 25 +- google/cloud/oslogin/v1beta/BUILD.bazel | 19 +- .../issuerswitch/v1/BUILD.bazel | 392 + .../issuerswitch/v1/common_fields.proto | 344 + .../v1/issuerswitch_grpc_service_config.json | 24 + .../issuerswitch/v1/issuerswitch_v1.yaml | 48 + .../issuerswitch/v1/resolutions.proto | 895 + .../issuerswitch/v1/rules.proto | 339 + .../issuerswitch/v1/transactions.proto | 1133 + .../phishingprotection/v1beta1/BUILD.bazel | 18 + .../cloud/policytroubleshooter/v1/BUILD.bazel | 23 +- .../cloud/privatecatalog/v1beta1/BUILD.bazel | 30 +- .../v1beta1/private_catalog.proto | 3 - google/cloud/pubsublite/v1/BUILD.bazel | 22 +- google/cloud/pubsublite/v1/common.proto | 78 +- google/cloud/pubsublite/v1/publisher.proto | 1 - google/cloud/pubsublite/v1/pubsublite_v1.yaml | 1 + google/cloud/pubsublite/v1/subscriber.proto | 1 - .../cloud/recaptchaenterprise/v1/BUILD.bazel | 14 + .../v1/recaptchaenterprise.proto | 194 +- .../recaptchaenterprise/v1beta1/BUILD.bazel | 18 + .../v1beta1/recaptchaenterprise.proto | 350 +- ...captchaenterprise_grpc_service_config.json | 20 - .../v1beta1/recaptchaenterprise_v1beta1.yaml | 6 +- .../recommendationengine/v1beta1/BUILD.bazel | 23 +- .../v1beta1/catalog.proto | 2 - .../recommendationengine/v1beta1/common.proto | 1 - .../recommendationengine/v1beta1/import.proto | 1 - .../recommendationengine_resources.proto | 11 +- .../v1beta1/user_event.proto | 1 - .../v1beta1/user_event_service.proto | 1 - google/cloud/recommender/v1/BUILD.bazel | 23 + google/cloud/recommender/v1/insight.proto | 37 +- .../recommender/v1/insight_type_config.proto | 85 + .../cloud/recommender/v1/recommendation.proto | 48 +- .../recommender/v1/recommender_config.proto | 85 + .../recommender/v1/recommender_service.proto | 253 +- google/cloud/recommender/v1beta1/BUILD.bazel | 20 + .../cloud/recommender/v1beta1/insight.proto | 2 +- .../v1beta1/insight_type_config.proto | 2 +- .../recommender/v1beta1/recommendation.proto | 14 + .../v1beta1/recommender_config.proto | 2 +- google/cloud/redis/redis_v1.yaml | 47 - google/cloud/redis/redis_v1beta1.yaml | 43 - google/cloud/redis/v1/BUILD.bazel | 24 + google/cloud/redis/v1/cloud_redis.proto | 218 +- .../redis/v1/redis_grpc_service_config.json | 4 + google/cloud/redis/v1beta1/BUILD.bazel | 18 + google/cloud/redis/v1beta1/cloud_redis.proto | 71 +- google/cloud/resourcemanager/v3/BUILD.bazel | 26 + .../resourcemanager/v3/organizations.proto | 1 - google/cloud/resourcesettings/v1/BUILD.bazel | 18 + google/cloud/retail/BUILD.bazel | 2 +- google/cloud/retail/logging/error_log.proto | 1 - google/cloud/retail/v2/BUILD.bazel | 34 + google/cloud/retail/v2/catalog.proto | 255 +- google/cloud/retail/v2/catalog_service.proto | 247 +- google/cloud/retail/v2/common.proto | 411 +- .../cloud/retail/v2/completion_service.proto | 67 +- google/cloud/retail/v2/control.proto | 93 + google/cloud/retail/v2/control_service.proto | 185 + google/cloud/retail/v2/import_config.proto | 93 +- .../cloud/retail/v2/prediction_service.proto | 70 +- google/cloud/retail/v2/product.proto | 100 +- google/cloud/retail/v2/product_service.proto | 356 +- google/cloud/retail/v2/promotion.proto | 40 + google/cloud/retail/v2/purge_config.proto | 7 +- .../retail/v2/retail_grpc_service_config.json | 135 +- google/cloud/retail/v2/retail_v2.yaml | 20 + google/cloud/retail/v2/search_service.proto | 267 +- google/cloud/retail/v2/serving_config.proto | 248 + .../retail/v2/serving_config_service.proto | 240 + google/cloud/retail/v2/user_event.proto | 45 +- .../cloud/retail/v2/user_event_service.proto | 11 +- google/cloud/retail/v2alpha/BUILD.bazel | 66 +- google/cloud/retail/v2alpha/catalog.proto | 283 +- .../retail/v2alpha/catalog_service.proto | 249 +- google/cloud/retail/v2alpha/common.proto | 417 +- .../retail/v2alpha/completion_service.proto | 64 +- google/cloud/retail/v2alpha/control.proto | 92 + .../retail/v2alpha/control_service.proto | 184 + .../cloud/retail/v2alpha/export_config.proto | 29 +- .../cloud/retail/v2alpha/import_config.proto | 78 +- google/cloud/retail/v2alpha/model.proto | 432 + .../cloud/retail/v2alpha/model_service.proto | 241 + .../retail/v2alpha/prediction_service.proto | 62 +- google/cloud/retail/v2alpha/product.proto | 93 +- .../retail/v2alpha/product_service.proto | 224 +- google/cloud/retail/v2alpha/promotion.proto | 40 + .../cloud/retail/v2alpha/purge_config.proto | 98 +- .../v2alpha/retail_grpc_service_config.json | 148 +- .../cloud/retail/v2alpha/retail_v2alpha.yaml | 41 +- .../cloud/retail/v2alpha/search_service.proto | 241 +- .../cloud/retail/v2alpha/serving_config.proto | 248 + .../v2alpha/serving_config_service.proto | 241 + google/cloud/retail/v2alpha/user_event.proto | 45 +- .../retail/v2alpha/user_event_service.proto | 8 +- google/cloud/retail/v2beta/BUILD.bazel | 66 +- google/cloud/retail/v2beta/catalog.proto | 341 +- .../cloud/retail/v2beta/catalog_service.proto | 293 +- google/cloud/retail/v2beta/common.proto | 429 +- .../retail/v2beta/completion_service.proto | 67 +- google/cloud/retail/v2beta/control.proto | 100 + .../cloud/retail/v2beta/control_service.proto | 185 + .../cloud/retail/v2beta/export_config.proto | 29 +- .../cloud/retail/v2beta/import_config.proto | 93 +- google/cloud/retail/v2beta/model.proto | 238 + .../cloud/retail/v2beta/model_service.proto | 244 + .../retail/v2beta/prediction_service.proto | 71 +- google/cloud/retail/v2beta/product.proto | 106 +- .../cloud/retail/v2beta/product_service.proto | 381 +- google/cloud/retail/v2beta/promotion.proto | 40 + google/cloud/retail/v2beta/purge_config.proto | 7 +- google/cloud/retail/v2beta/retail_v2beta.yaml | 33 +- .../cloud/retail/v2beta/search_service.proto | 287 +- .../cloud/retail/v2beta/serving_config.proto | 280 + .../v2beta/serving_config_service.proto | 240 + google/cloud/retail/v2beta/user_event.proto | 47 +- .../retail/v2beta/user_event_service.proto | 37 +- google/cloud/run/BUILD.bazel | 39 + google/cloud/run/v2/BUILD.bazel | 404 + google/cloud/run/v2/condition.proto | 199 + google/cloud/run/v2/k8s.min.proto | 274 + google/cloud/run/v2/revision.proto | 278 + google/cloud/run/v2/revision_template.proto | 79 + .../cloud/run/v2/run_grpc_service_config.json | 29 + google/cloud/run/v2/run_v2.yaml | 37 + google/cloud/run/v2/service.proto | 435 + google/cloud/run/v2/traffic_target.proto | 77 + google/cloud/run/v2/vendor_settings.proto | 102 + google/cloud/scheduler/v1/BUILD.bazel | 18 + google/cloud/scheduler/v1/job.proto | 1 - google/cloud/scheduler/v1/target.proto | 1 - google/cloud/scheduler/v1beta1/BUILD.bazel | 18 + google/cloud/scheduler/v1beta1/job.proto | 1 - google/cloud/scheduler/v1beta1/target.proto | 1 - google/cloud/secretmanager/v1/BUILD.bazel | 24 + google/cloud/secretmanager/v1/resources.proto | 31 +- google/cloud/secrets/v1beta1/BUILD.bazel | 21 + google/cloud/secrets/v1beta1/resources.proto | 1 - google/cloud/security/privateca/BUILD.bazel | 6 +- .../cloud/security/privateca/v1/BUILD.bazel | 21 +- .../security/privateca/v1/resources.proto | 115 +- .../cloud/security/privateca/v1/service.proto | 18 +- .../security/privateca/v1beta1/BUILD.bazel | 18 + .../privateca/v1beta1/privateca_v1beta1.yaml | 12 + .../privateca/v1beta1/resources.proto | 1 - .../security/privateca/v1beta1/service.proto | 1 - google/cloud/security/publicca/BUILD.bazel | 40 + .../security/publicca/v1beta1/BUILD.bazel | 387 + .../publicca/v1beta1/publicca_v1beta1.yaml | 25 + .../publicca_v1beta1_grpc_service_config.json | 21 + .../security/publicca/v1beta1/resources.proto | 52 + .../security/publicca/v1beta1/service.proto | 68 + .../securitycenter_v1beta1.yaml | 74 - .../settings/v1beta1/BUILD.bazel | 17 +- .../settings/v1beta1/billing_settings.proto | 1 - .../settings/v1beta1/component_settings.proto | 1 - .../settings/v1beta1/detector.proto | 1 - .../settings/v1beta1/settings.proto | 1 - .../settings/v1beta1/sink_settings.proto | 1 - google/cloud/securitycenter/v1/BUILD.bazel | 156 +- google/cloud/securitycenter/v1/access.proto | 100 + google/cloud/securitycenter/v1/asset.proto | 3 +- .../securitycenter/v1/bigquery_export.proto | 99 + .../cloud/securitycenter/v1/compliance.proto | 39 + .../cloud/securitycenter/v1/connection.proto | 66 + .../securitycenter/v1/contact_details.proto | 37 + .../cloud/securitycenter/v1/container.proto | 45 + google/cloud/securitycenter/v1/database.proto | 52 + .../securitycenter/v1/exfiltration.proto | 52 + .../securitycenter/v1/external_system.proto | 6 +- google/cloud/securitycenter/v1/file.proto | 52 + google/cloud/securitycenter/v1/finding.proto | 101 +- google/cloud/securitycenter/v1/folder.proto | 4 +- .../cloud/securitycenter/v1/iam_binding.proto | 52 + .../cloud/securitycenter/v1/indicator.proto | 52 +- .../cloud/securitycenter/v1/kubernetes.proto | 181 + google/cloud/securitycenter/v1/label.proto | 35 + .../securitycenter/v1/mitre_attack.proto | 208 + .../cloud/securitycenter/v1/mute_config.proto | 3 +- .../v1/notification_config.proto | 3 +- .../v1/notification_message.proto | 3 +- .../v1/organization_settings.proto | 3 +- google/cloud/securitycenter/v1/process.proto | 74 + google/cloud/securitycenter/v1/resource.proto | 17 +- .../v1/run_asset_discovery_response.proto | 3 +- .../securitycenter/v1/security_marks.proto | 3 +- .../v1/securitycenter_service.proto | 245 +- .../securitycenter/v1/securitycenter_v1.yaml | 3 +- google/cloud/securitycenter/v1/source.proto | 3 +- .../securitycenter/v1/vulnerability.proto | 7 +- .../cloud/securitycenter/v1beta1/BUILD.bazel | 25 +- .../cloud/securitycenter/v1beta1/asset.proto | 1 - .../securitycenter/v1beta1/finding.proto | 1 - .../v1beta1/organization_settings.proto | 1 - .../run_asset_discovery_response.proto | 1 - .../v1beta1/security_marks.proto | 1 - .../v1beta1/securitycenter_service.proto | 1 - .../cloud/securitycenter/v1beta1/source.proto | 1 - .../securitycenter/v1p1beta1/BUILD.bazel | 21 + .../securitycenter/v1p1beta1/asset.proto | 1 - .../securitycenter/v1p1beta1/finding.proto | 1 - .../securitycenter/v1p1beta1/folder.proto | 1 - .../v1p1beta1/notification_config.proto | 1 - .../v1p1beta1/notification_message.proto | 1 - .../v1p1beta1/organization_settings.proto | 1 - .../securitycenter/v1p1beta1/resource.proto | 1 - .../run_asset_discovery_response.proto | 1 - .../v1p1beta1/security_marks.proto | 1 - .../securitycenter/v1p1beta1/source.proto | 1 - .../sensitiveaction/logging/v1/BUILD.bazel | 127 + .../logging/v1/sensitive_action_payload.proto | 66 + google/cloud/servicedirectory/v1/BUILD.bazel | 22 + .../cloud/servicedirectory/v1/endpoint.proto | 1 - .../cloud/servicedirectory/v1/namespace.proto | 1 - .../cloud/servicedirectory/v1/service.proto | 1 - .../servicedirectory/v1beta1/BUILD.bazel | 22 + .../servicedirectory/v1beta1/endpoint.proto | 1 - .../servicedirectory/v1beta1/namespace.proto | 1 - .../servicedirectory/v1beta1/service.proto | 1 - google/cloud/shell/v1/BUILD.bazel | 18 + google/cloud/shell/v1/cloudshell.proto | 1 - google/cloud/shell/v1/cloudshell_v1.yaml | 11 + google/cloud/speech/BUILD.bazel | 2 +- google/cloud/speech/v1/BUILD.bazel | 26 +- google/cloud/speech/v1/cloud_speech.proto | 27 +- .../speech/v1/cloud_speech_adaptation.proto | 370 + google/cloud/speech/v1/resource.proto | 4 +- google/cloud/speech/v1/speech_v1.yaml | 7 + google/cloud/speech/v1p1beta1/BUILD.bazel | 19 + .../cloud/speech/v1p1beta1/cloud_speech.proto | 27 +- .../v1p1beta1/cloud_speech_adaptation.proto | 42 +- google/cloud/speech/v1p1beta1/resource.proto | 4 +- google/cloud/speech/v2/BUILD.bazel | 45 + google/cloud/speech/v2/cloud_speech.proto | 1965 + .../speech/v2/speech_grpc_service_config.json | 18 + google/cloud/speech/v2/speech_v2.yaml | 56 + google/cloud/sql/v1/BUILD.bazel | 14 +- .../sql/v1/cloud_sql_instance_names.proto | 2 - google/cloud/sql/v1/cloud_sql_instances.proto | 2 +- google/cloud/sql/v1beta4/BUILD.bazel | 12 + google/cloud/sql/v1beta4/cloud_sql.proto | 4 +- .../cloud/sql/v1beta4/cloud_sql_connect.proto | 30 +- .../sql/v1beta4/cloud_sql_resources.proto | 431 +- .../cloud/sql/v1beta4/cloud_sql_tiers.proto | 10 +- .../cloud/sql/v1beta4/cloud_sql_users.proto | 46 +- google/cloud/stream/logging/v1/BUILD.bazel | 175 + google/cloud/stream/logging/v1/logging.proto | 184 + google/cloud/talent/v4/BUILD.bazel | 22 + google/cloud/talent/v4/common.proto | 31 +- google/cloud/talent/v4/company.proto | 3 +- google/cloud/talent/v4/company_service.proto | 2 +- .../cloud/talent/v4/completion_service.proto | 4 +- google/cloud/talent/v4/event.proto | 3 +- google/cloud/talent/v4/event_service.proto | 2 +- google/cloud/talent/v4/filters.proto | 39 +- google/cloud/talent/v4/histogram.proto | 4 +- google/cloud/talent/v4/job.proto | 3 +- google/cloud/talent/v4/job_service.proto | 195 +- google/cloud/talent/v4/jobs_v4.yaml | 1 + google/cloud/talent/v4/tenant.proto | 3 +- google/cloud/talent/v4/tenant_service.proto | 2 +- google/cloud/talent/v4beta1/BUILD.bazel | 75 +- google/cloud/talent/v4beta1/application.proto | 183 - .../talent/v4beta1/application_service.proto | 181 - google/cloud/talent/v4beta1/batch.proto | 4 +- google/cloud/talent/v4beta1/common.proto | 390 +- google/cloud/talent/v4beta1/company.proto | 3 +- .../talent/v4beta1/company_service.proto | 2 +- .../talent/v4beta1/completion_service.proto | 4 +- google/cloud/talent/v4beta1/event.proto | 59 +- .../cloud/talent/v4beta1/event_service.proto | 2 +- google/cloud/talent/v4beta1/filters.proto | 494 +- google/cloud/talent/v4beta1/histogram.proto | 4 +- google/cloud/talent/v4beta1/job.proto | 4 +- google/cloud/talent/v4beta1/job_service.proto | 223 +- google/cloud/talent/v4beta1/jobs_v4beta1.yaml | 17 +- google/cloud/talent/v4beta1/profile.proto | 783 - .../talent/v4beta1/profile_service.proto | 467 - google/cloud/talent/v4beta1/tenant.proto | 4 +- .../cloud/talent/v4beta1/tenant_service.proto | 2 +- google/cloud/tasks/v2/BUILD.bazel | 21 + google/cloud/tasks/v2/queue.proto | 1 - google/cloud/tasks/v2/target.proto | 1 - google/cloud/tasks/v2/task.proto | 1 - google/cloud/tasks/v2beta2/BUILD.bazel | 21 + google/cloud/tasks/v2beta2/queue.proto | 1 - google/cloud/tasks/v2beta2/target.proto | 1 - google/cloud/tasks/v2beta2/task.proto | 1 - google/cloud/tasks/v2beta3/BUILD.bazel | 21 + google/cloud/tasks/v2beta3/queue.proto | 1 - google/cloud/tasks/v2beta3/target.proto | 1 - google/cloud/tasks/v2beta3/task.proto | 1 - google/cloud/texttospeech/tts.yaml | 21 - google/cloud/texttospeech/tts_v1.yaml | 23 - google/cloud/texttospeech/tts_v1beta1.yaml | 23 - google/cloud/texttospeech/v1/BUILD.bazel | 18 + google/cloud/texttospeech/v1/cloud_tts.proto | 64 +- google/cloud/texttospeech/v1beta1/BUILD.bazel | 18 + .../cloud/timeseriesinsights/v1/BUILD.bazel | 383 + .../v1/timeseries_insights.proto | 911 + ...meseries_insights_grpc_service_config.json | 25 + .../v1/timeseriesinsights_v1.yaml | 49 + google/cloud/tpu/v1/BUILD.bazel | 14 + google/cloud/tpu/v2alpha1/BUILD.bazel | 14 + google/cloud/tpu/v2alpha1/cloud_tpu.proto | 11 +- google/cloud/translate/v3/BUILD.bazel | 18 + .../translate/v3/translation_service.proto | 2 - google/cloud/translate/v3beta1/BUILD.bazel | 18 + .../v3beta1/translation_service.proto | 1 - google/cloud/video/livestream/BUILD.bazel | 39 + google/cloud/video/livestream/v1/BUILD.bazel | 45 +- .../cloud/video/livestream/v1/outputs.proto | 5 +- .../cloud/video/livestream/v1/resources.proto | 10 +- .../cloud/video/livestream/v1/service.proto | 2 +- google/cloud/video/stitcher/BUILD.bazel | 39 + google/cloud/video/stitcher/v1/BUILD.bazel | 383 + .../video/stitcher/v1/ad_tag_details.proto | 95 + google/cloud/video/stitcher/v1/cdn_keys.proto | 67 + .../cloud/video/stitcher/v1/companions.proto | 113 + google/cloud/video/stitcher/v1/events.proto | 131 + google/cloud/video/stitcher/v1/sessions.proto | 246 + google/cloud/video/stitcher/v1/slates.proto | 41 + .../video/stitcher/v1/stitch_details.proto | 60 + .../stitcher/v1/video_stitcher_service.proto | 570 + .../v1/videostitcher_grpc_service_config.json | 38 + .../video/stitcher/v1/videostitcher_v1.yaml | 19 + google/cloud/video/transcoder/BUILD.bazel | 2 +- google/cloud/video/transcoder/v1/BUILD.bazel | 24 +- .../cloud/video/transcoder/v1/resources.proto | 68 +- .../cloud/video/transcoder/v1/services.proto | 2 +- .../video/transcoder/v1beta1/BUILD.bazel | 343 - .../video/transcoder/v1beta1/resources.proto | 944 - .../video/transcoder/v1beta1/services.proto | 249 - .../transcoder_grpc_service_config.json | 26 - .../v1beta1/transcoder_v1beta1.yaml | 24 - google/cloud/videointelligence/v1/BUILD.bazel | 18 + .../videointelligence/v1beta2/BUILD.bazel | 17 + .../videointelligence/v1p1beta1/BUILD.bazel | 18 + .../videointelligence/v1p2beta1/BUILD.bazel | 18 + .../v1p2beta1/video_intelligence.proto | 19 +- .../videointelligence/v1p3beta1/BUILD.bazel | 22 +- google/cloud/vision/v1/BUILD.bazel | 53 +- google/cloud/vision/v1/geometry.proto | 4 +- google/cloud/vision/v1/image_annotator.proto | 105 +- google/cloud/vision/v1/product_search.proto | 3 +- .../vision/v1/product_search_service.proto | 2 +- google/cloud/vision/v1/text_annotation.proto | 3 +- google/cloud/vision/v1/web_detection.proto | 4 +- google/cloud/vision/v1p1beta1/BUILD.bazel | 25 +- .../vision/v1p1beta1/image_annotator.proto | 6 +- .../vision/v1p1beta1/text_annotation.proto | 1 - .../vision/v1p1beta1/web_detection.proto | 1 - google/cloud/vision/v1p2beta1/BUILD.bazel | 25 +- .../vision/v1p2beta1/image_annotator.proto | 6 +- .../vision/v1p2beta1/text_annotation.proto | 1 - .../vision/v1p2beta1/web_detection.proto | 1 - google/cloud/vision/v1p3beta1/BUILD.bazel | 24 +- google/cloud/vision/v1p3beta1/geometry.proto | 11 +- .../vision/v1p3beta1/image_annotator.proto | 8 +- .../vision/v1p3beta1/product_search.proto | 138 +- .../vision/v1p3beta1/text_annotation.proto | 1 - .../vision/v1p3beta1/web_detection.proto | 1 - google/cloud/vision/v1p4beta1/BUILD.bazel | 28 +- google/cloud/vision/v1p4beta1/face.proto | 1 - google/cloud/vision/v1p4beta1/geometry.proto | 1 - .../vision/v1p4beta1/image_annotator.proto | 7 +- .../vision/v1p4beta1/product_search.proto | 1 - .../vision/v1p4beta1/text_annotation.proto | 1 - .../vision/v1p4beta1/web_detection.proto | 1 - google/cloud/vision/vision_v1p1beta1.yaml | 21 - google/cloud/vision/vision_v1p2beta1.yaml | 26 - google/cloud/vision/vision_v1p3beta1.yaml | 37 - google/cloud/vision/vision_v1p4beta1.yaml | 39 - google/cloud/vmmigration/v1/BUILD.bazel | 26 +- google/cloud/vmmigration/v1/vmmigration.proto | 647 +- .../cloud/vmmigration/v1/vmmigration_v1.yaml | 6 +- google/cloud/vpcaccess/v1/BUILD.bazel | 37 +- google/cloud/vpcaccess/v1/vpc_access.proto | 41 +- google/cloud/vpcaccess/v1/vpcaccess_v1.yaml | 6 +- google/cloud/webrisk/v1/BUILD.bazel | 18 + google/cloud/webrisk/v1beta1/BUILD.bazel | 18 + .../cloud/websecurityscanner/v1/BUILD.bazel | 44 +- .../websecurityscanner/v1/crawled_url.proto | 2 +- .../cloud/websecurityscanner/v1/finding.proto | 5 +- .../websecurityscanner/v1/finding_addon.proto | 21 +- .../v1/finding_type_stats.proto | 2 +- .../websecurityscanner/v1/scan_config.proto | 9 +- .../v1/scan_config_error.proto | 2 +- .../websecurityscanner/v1/scan_run.proto | 2 +- .../v1/scan_run_error_trace.proto | 4 +- .../websecurityscanner/v1/scan_run_log.proto | 55 + .../v1/scan_run_warning_trace.proto | 5 +- .../v1/web_security_scanner.proto | 4 +- .../websecurityscanner/v1alpha/BUILD.bazel | 22 +- .../websecurityscanner/v1beta/BUILD.bazel | 18 + .../cloud/workflows/executions/v1/BUILD.bazel | 18 + .../workflows/executions/v1beta/BUILD.bazel | 18 + google/cloud/workflows/type/BUILD.bazel | 2 + google/cloud/workflows/type/engine_call.proto | 53 +- .../workflows/type/executions_system.proto | 38 +- google/cloud/workflows/v1/BUILD.bazel | 18 + google/cloud/workflows/v1beta/BUILD.bazel | 18 + google/container/v1/BUILD.bazel | 14 + google/container/v1/cluster_service.proto | 543 +- google/container/v1/container_v1.yaml | 2 + google/container/v1beta1/BUILD.bazel | 14 + .../container/v1beta1/cluster_service.proto | 626 +- .../container/v1beta1/container_v1beta1.yaml | 2 + google/dataflow/v1beta3/BUILD.bazel | 59 +- google/dataflow/v1beta3/environment.proto | 6 +- google/dataflow/v1beta3/jobs.proto | 166 +- google/dataflow/v1beta3/messages.proto | 61 +- google/dataflow/v1beta3/metrics.proto | 58 +- google/dataflow/v1beta3/snapshots.proto | 51 +- google/dataflow/v1beta3/streaming.proto | 2 +- google/dataflow/v1beta3/templates.proto | 120 +- google/datastore/admin/v1/BUILD.bazel | 25 +- .../datastore/admin/v1/datastore_admin.proto | 4 +- google/datastore/admin/v1/datastore_v1.yaml | 1 + google/datastore/admin/v1/index.proto | 21 +- google/datastore/admin/v1/migration.proto | 31 +- google/datastore/v1/BUILD.bazel | 22 + google/datastore/v1/datastore.proto | 91 +- .../v1/datastore_grpc_service_config.json | 9 +- google/datastore/v1/datastore_v1.yaml | 1 + google/datastore/v1/entity.proto | 25 +- google/datastore/v1/query.proto | 86 +- .../devtools/artifactregistry/v1/BUILD.bazel | 53 +- .../artifactregistry/v1/apt_artifact.proto | 116 + .../artifactregistry/v1/artifact.proto | 14 +- .../v1/artifactregistry_v1.yaml | 62 +- .../devtools/artifactregistry/v1/file.proto | 123 + .../artifactregistry/v1/package.proto | 87 + .../artifactregistry/v1/repository.proto | 80 +- .../artifactregistry/v1/service.proto | 248 +- .../artifactregistry/v1/settings.proto | 84 + google/devtools/artifactregistry/v1/tag.proto | 118 + .../artifactregistry/v1/version.proto | 127 + .../artifactregistry/v1/yum_artifact.proto | 108 + .../artifactregistry/v1beta2/BUILD.bazel | 22 +- .../v1beta2/apt_artifact.proto | 2 - .../artifactregistry/v1beta2/file.proto | 4 +- .../artifactregistry/v1beta2/package.proto | 1 - .../artifactregistry/v1beta2/repository.proto | 1 - .../artifactregistry/v1beta2/settings.proto | 1 - .../artifactregistry/v1beta2/tag.proto | 1 - .../artifactregistry/v1beta2/version.proto | 1 - .../v1beta2/yum_artifact.proto | 2 - google/devtools/build/buildeventservice.yaml | 17 - google/devtools/build/v1/BUILD.bazel | 19 +- .../build/v1/publish_build_event.proto | 14 + google/devtools/cloudbuild/cloudbuild.yaml | 58 - google/devtools/cloudbuild/v1/BUILD.bazel | 18 + google/devtools/clouddebugger/v2/BUILD.bazel | 20 +- .../clouddebugger/v2/controller.proto | 1 - google/devtools/clouddebugger/v2/data.proto | 1 - .../clouderrorreporting/v1beta1/BUILD.bazel | 21 +- .../clouderrorreporting/v1beta1/common.proto | 1 - .../devtools/cloudprofiler/cloudprofiler.yaml | 31 - google/devtools/cloudprofiler/v2/BUILD.bazel | 17 + google/devtools/cloudtrace/v1/BUILD.bazel | 22 +- google/devtools/cloudtrace/v1/trace.proto | 1 - google/devtools/cloudtrace/v2/BUILD.bazel | 22 +- google/devtools/cloudtrace/v2/trace.proto | 1 - google/devtools/cloudtrace/v2/tracing.proto | 1 - .../containeranalysis_v1beta1.yaml | 68 - .../devtools/containeranalysis/v1/BUILD.bazel | 23 +- .../v1/containeranalysis.proto | 3 - .../containeranalysis/v1beta1/BUILD.bazel | 9 +- .../remoteworkers/v1test2/BUILD.bazel | 20 +- .../devtools/remoteworkers/v1test2/bots.proto | 12 +- google/devtools/source/v1/BUILD.bazel | 9 +- .../devtools/source/v1/source_context.proto | 2 - google/devtools/testing/v1/BUILD.bazel | 19 +- .../devtools/testing/v1/test_execution.proto | 1 - google/example/library/v1/BUILD.bazel | 17 + google/example/showcase/v1/compliance.proto | 167 - google/example/showcase/v1/echo.proto | 229 - google/example/showcase/v1/sequence.proto | 138 - .../v1/showcase_grpc_service_config.json | 90 - google/example/showcase/v1/testing.proto | 392 - .../example/showcase/v1beta1/compliance.proto | 168 - google/example/showcase/v1beta1/echo.proto | 229 - .../example/showcase/v1beta1/sequence.proto | 138 - .../v1beta1/showcase_grpc_service_config.json | 90 - google/example/showcase/v1beta1/testing.proto | 392 - .../example/showcase/v1beta2/compliance.proto | 168 - google/example/showcase/v1beta2/echo.proto | 229 - .../example/showcase/v1beta2/sequence.proto | 138 - .../v1beta2/showcase_grpc_service_config.json | 90 - google/example/showcase/v1beta2/testing.proto | 392 - .../example/showcase/v1beta3/compliance.proto | 167 - google/example/showcase/v1beta3/echo.proto | 229 - .../example/showcase/v1beta3/sequence.proto | 138 - .../v1beta3/showcase_grpc_service_config.json | 90 - google/example/showcase/v1beta3/testing.proto | 392 - .../firestore/admin/firestore_admin_v1.yaml | 48 - google/firestore/admin/v1/BUILD.bazel | 45 +- google/firestore/admin/v1/database.proto | 53 +- google/firestore/admin/v1/field.proto | 40 +- .../firestore/admin/v1/firestore_admin.proto | 4 +- google/firestore/admin/v1/firestore_v1.yaml | 2 + google/firestore/admin/v1/index.proto | 37 +- google/firestore/admin/v1/location.proto | 5 +- google/firestore/admin/v1/operation.proto | 24 +- google/firestore/bundle/BUILD.bazel | 2 + google/firestore/firestore_v1.yaml | 15 - google/firestore/firestore_v1beta1.yaml | 15 - google/firestore/v1/BUILD.bazel | 64 +- google/firestore/v1/aggregation_result.proto | 42 + google/firestore/v1/common.proto | 5 +- google/firestore/v1/document.proto | 3 +- google/firestore/v1/firestore.proto | 117 +- .../v1/firestore_grpc_service_config.json | 4 + google/firestore/v1/firestore_v1.yaml | 2 + google/firestore/v1/query.proto | 205 +- google/firestore/v1/write.proto | 3 +- google/firestore/v1beta1/BUILD.bazel | 25 +- google/firestore/v1beta1/common.proto | 1 - google/firestore/v1beta1/document.proto | 1 - google/firestore/v1beta1/query.proto | 1 - google/firestore/v1beta1/write.proto | 1 - google/geo/type/BUILD.bazel | 24 +- google/home/enterprise/sdm/v1/BUILD.bazel | 21 +- .../v1/smart_device_management_service.proto | 2 - google/home/graph/base.yaml | 20 - google/home/graph/v1/BUILD.bazel | 20 +- google/home/graph/v1/homegraph.proto | 3 +- google/iam/BUILD.bazel | 38 + google/iam/admin/v1/BUILD.bazel | 32 +- google/iam/admin/v1/audit_data.proto | 4 +- google/iam/admin/v1/iam.proto | 401 +- google/iam/credentials/iamcredentials_v1.yaml | 17 - google/iam/credentials/v1/BUILD.bazel | 25 +- google/iam/credentials/v1/common.proto | 1 + .../iam/credentials/v1/iamcredentials.proto | 1 + google/iam/iam_meta_api.yaml | 85 - google/iam/v1/BUILD.bazel | 79 +- google/iam/v1/iam_meta_api.yaml | 47 +- google/iam/v1/iam_policy.proto | 24 +- google/iam/v1/logging/BUILD.bazel | 5 +- google/iam/v1/logging/audit_data.proto | 1 - google/iam/v1/options.proto | 23 +- google/iam/v1/policy.proto | 244 +- google/iam/v1beta/BUILD.bazel | 18 +- google/iam/v2/BUILD.bazel | 399 + google/iam/v2/deny.proto | 109 + google/iam/v2/iam_grpc_service_config.json | 38 + google/iam/v2/iam_v2.yaml | 33 + google/iam/v2/policy.proto | 287 + google/iam/v2beta/BUILD.bazel | 384 + google/iam/v2beta/deny.proto | 109 + .../iam/v2beta/iam_grpc_service_config.json | 42 + google/iam/v2beta/iam_v2beta.yaml | 33 + google/iam/v2beta/policy.proto | 283 + .../accesscontextmanager/type/BUILD.bazel | 1 + .../type/device_resources.proto | 2 - .../accesscontextmanager/v1/BUILD.bazel | 72 +- .../v1/access_level.proto | 1 - .../v1/access_policy.proto | 1 - .../v1/gcp_user_access_binding.proto | 1 - .../v1/service_perimeter.proto | 1 - google/logging/type/BUILD.bazel | 4 +- google/logging/type/http_request.proto | 3 +- google/logging/type/log_severity.proto | 5 +- google/logging/v2/BUILD.bazel | 38 +- google/logging/v2/log_entry.proto | 49 +- google/logging/v2/logging.proto | 121 +- google/logging/v2/logging.yaml | 141 - google/logging/v2/logging_config.proto | 794 +- google/logging/v2/logging_metrics.proto | 20 +- google/logging/v2/logging_v2.yaml | 202 + google/longrunning/BUILD.bazel | 65 +- google/maps/addressvalidation/v1/BUILD.bazel | 378 + .../maps/addressvalidation/v1/address.proto | 141 + .../v1/address_validation_service.proto | 279 + ...addressvalidation_grpc_service_config.json | 15 + .../v1/addressvalidation_v1.yaml | 15 + .../maps/addressvalidation/v1/geocode.proto | 84 + .../maps/addressvalidation/v1/metadata.proto | 50 + .../maps/addressvalidation/v1/usps_data.proto | 202 + .../maps/fleetengine/delivery/v1/BUILD.bazel | 35 +- .../maps/fleetengine/delivery/v1/common.proto | 178 + .../delivery/v1/delivery_api.proto | 488 +- .../delivery/v1/delivery_vehicles.proto | 208 +- .../fleetengine/delivery/v1/fleetengine.yaml | 6 +- .../maps/fleetengine/delivery/v1/header.proto | 103 + .../maps/fleetengine/delivery/v1/tasks.proto | 191 +- google/maps/fleetengine/v1/BUILD.bazel | 14 + google/maps/fleetengine/v1/fleetengine.proto | 175 +- .../v1/fleetengine_grpc_service_config.json | 1 + google/maps/fleetengine/v1/header.proto | 2 +- google/maps/fleetengine/v1/traffic.proto | 2 +- google/maps/fleetengine/v1/trip_api.proto | 47 +- google/maps/fleetengine/v1/trips.proto | 106 +- google/maps/fleetengine/v1/vehicle_api.proto | 103 +- google/maps/fleetengine/v1/vehicles.proto | 83 +- .../mapsplatformdatasets/v1alpha/BUILD.bazel | 377 + .../v1alpha/data_source.proto | 64 + .../v1alpha/dataset.proto | 110 + .../v1alpha/maps_platform_datasets.proto | 167 + ...maps_platform_datasets_alpha_service.proto | 97 + ...splatformdatasets_grpc_service_config.json | 53 + .../v1alpha/mapsplatformdatasets_v1alpha.yaml | 22 + google/maps/playablelocations/v3/BUILD.bazel | 8 +- .../maps/playablelocations/v3/resources.proto | 2 - google/maps/regionlookup/v1alpha/BUILD.bazel | 373 + .../v1alpha/region_identifier.proto | 161 + .../v1alpha/region_lookup_service.proto | 149 + .../regionlookup/v1alpha/region_match.proto | 41 + .../v1alpha/region_search_values.proto | 131 + .../regionlookup_grpc_service_config.json | 24 + .../v1alpha/regionlookup_v1alpha.yaml | 10 + google/maps/roads/v1op/BUILD.bazel | 24 +- google/maps/roads/v1op/roads.proto | 1 - google/maps/routes/v1/BUILD.bazel | 16 + .../v1/compute_custom_routes_request.proto | 27 +- .../v1/compute_custom_routes_response.proto | 2 +- .../v1/compute_route_matrix_request.proto | 2 +- .../routes/v1/compute_routes_request.proto | 12 +- .../routes/v1/compute_routes_response.proto | 2 +- google/maps/routes/v1/custom_route.proto | 2 +- google/maps/routes/v1/fallback_info.proto | 2 +- google/maps/routes/v1/polyline.proto | 2 +- google/maps/routes/v1/route.proto | 55 +- .../maps/routes/v1/route_matrix_element.proto | 6 +- google/maps/routes/v1/route_service.proto | 4 +- google/maps/routes/v1/toll_passes.proto | 235 +- .../routes/v1/vehicle_emission_type.proto | 2 +- google/maps/routes/v1/waypoint.proto | 9 +- .../maps/routes/v1alpha/route_service.proto | 4 +- google/maps/routespreferred/v1/BUILD.bazel | 4 + google/maps/routing/v2/BUILD.bazel | 408 + google/maps/routing/v2/fallback_info.proto | 72 + .../v2/library_grpc_service_config.json | 16 + google/maps/routing/v2/location.proto | 43 + google/maps/routing/v2/maneuver.proto | 88 + .../routing/v2/navigation_instruction.proto | 40 + google/maps/routing/v2/polyline.proto | 74 + google/maps/routing/v2/route.proto | 208 + google/maps/routing/v2/route_modifiers.proto | 64 + .../maps/routing/v2/route_travel_mode.proto | 46 + google/maps/routing/v2/routes_service.proto | 311 + google/maps/routing/v2/routes_v2.yaml | 10 + .../maps/routing/v2/routing_preference.proto | 55 + .../routing/v2/speed_reading_interval.proto | 57 + google/maps/routing/v2/toll_info.proto | 40 + google/maps/routing/v2/toll_passes.proto | 321 + google/maps/routing/v2/units.proto | 40 + .../routing/v2/vehicle_emission_type.proto | 43 + google/maps/routing/v2/vehicle_info.proto | 37 + google/maps/routing/v2/waypoint.proto | 71 + google/monitoring/dashboard/v1/BUILD.bazel | 26 +- .../monitoring/dashboard/v1/alertchart.proto | 2 +- .../dashboard/v1/collapsible_group.proto | 32 + google/monitoring/dashboard/v1/common.proto | 3 +- .../monitoring/dashboard/v1/dashboard.proto | 9 +- .../dashboard/v1/dashboard_filter.proto | 68 + .../dashboard/v1/dashboards_service.proto | 5 +- .../monitoring/dashboard/v1/drilldowns.proto | 4 +- google/monitoring/dashboard/v1/layouts.proto | 2 +- .../monitoring/dashboard/v1/logs_panel.proto | 38 + google/monitoring/dashboard/v1/metrics.proto | 18 +- .../monitoring/dashboard/v1/scorecard.proto | 3 +- google/monitoring/dashboard/v1/service.proto | 2 +- google/monitoring/dashboard/v1/table.proto | 59 + .../dashboard/v1/table_display_options.proto | 34 + google/monitoring/dashboard/v1/text.proto | 2 +- google/monitoring/dashboard/v1/widget.proto | 15 +- google/monitoring/dashboard/v1/xychart.proto | 20 +- google/monitoring/metricsscope/v1/BUILD.bazel | 13 + google/monitoring/v3/BUILD.bazel | 13 + google/monitoring/v3/alert.proto | 79 +- google/monitoring/v3/alert_service.proto | 10 +- google/monitoring/v3/metric.proto | 2 - google/monitoring/v3/metric_service.proto | 2 - .../monitoring/v3/notification_service.proto | 1 - google/monitoring/v3/query_service.proto | 2 - google/monitoring/v3/service.proto | 2 - google/monitoring/v3/uptime_service.proto | 36 +- google/partner/aistreams/v1alpha1/BUILD.bazel | 21 +- google/privacy/dlp/v2/BUILD.bazel | 17 + google/privacy/dlp/v2/dlp.proto | 1167 +- google/privacy/dlp/v2/dlp_v2.yaml | 5 + google/privacy/dlp/v2/storage.proto | 231 +- google/pubsub/v1/BUILD.bazel | 27 +- google/pubsub/v1/pubsub.proto | 128 +- google/rpc/BUILD.bazel | 16 +- google/rpc/context/BUILD.bazel | 7 +- google/spanner/admin/database/v1/BUILD.bazel | 43 +- google/spanner/admin/database/v1/backup.proto | 183 +- google/spanner/admin/database/v1/common.proto | 3 +- google/spanner/admin/database/v1/spanner.yaml | 68 + .../database/v1/spanner_admin_database.yaml | 41 - ...er_admin_database_grpc_service_config.json | 8 + .../database/v1/spanner_database_admin.proto | 89 +- google/spanner/admin/instance/v1/BUILD.bazel | 26 +- google/spanner/admin/instance/v1/common.proto | 42 + .../instance/v1/spanner_instance_admin.proto | 576 +- google/spanner/v1/BUILD.bazel | 23 +- google/spanner/v1/commit_response.proto | 4 +- google/spanner/v1/keys.proto | 3 +- google/spanner/v1/mutation.proto | 10 +- google/spanner/v1/query_plan.proto | 3 +- google/spanner/v1/result_set.proto | 4 +- google/spanner/v1/spanner.proto | 11 +- google/spanner/v1/spanner.yaml | 77 +- google/spanner/v1/transaction.proto | 95 +- google/spanner/v1/type.proto | 11 +- google/storage/v1/BUILD.bazel | 235 +- google/storage/v1/storage.proto | 420 +- google/storage/v1/storage_gapic.yaml | 5 - .../v1/storage_grpc_service_config.json | 15 - google/storage/v1/storage_resources.proto | 128 +- google/storage/v1/storage_v1.yaml | 32 - google/storage/v2/BUILD.bazel | 20 + google/storage/v2/storage.proto | 846 +- google/storagetransfer/logging/BUILD.bazel | 179 + .../logging/transfer_activity_log.proto | 282 + google/storagetransfer/v1/BUILD.bazel | 31 +- .../storagetransfer_grpc_service_config.json | 29 +- .../v1/storagetransfer_v1.yaml | 5 +- google/storagetransfer/v1/transfer.proto | 222 +- .../storagetransfer/v1/transfer_types.proto | 717 +- google/streetview/publish/v1/BUILD.bazel | 32 + google/streetview/publish/v1/resources.proto | 292 +- .../streetview/publish/v1/rpcmessages.proto | 130 +- .../publish/v1/streetview_publish.proto | 104 +- google/type/BUILD.bazel | 12 +- grafeas/v1/BUILD.bazel | 48 +- grafeas/v1/common.proto | 29 + grafeas/v1/compliance.proto | 3 + grafeas/v1/cvss.proto | 7 +- grafeas/v1/dsse_attestation.proto | 2 +- grafeas/v1/intoto_statement.proto | 2 + grafeas/v1/package.proto | 84 +- grafeas/v1/slsa_provenance.proto | 3 +- grafeas/v1/slsa_provenance_zero_two.proto | 82 + grafeas/v1/swagger/grafeas.swagger.json | 3199 + grafeas/v1/vulnerability.proto | 3 + repository_rules.bzl | 10 +- 4754 files changed, 382417 insertions(+), 233731 deletions(-) create mode 100644 .github/workflows/diregapic.yaml create mode 100644 .kokoro/docker_update.sh create mode 100644 google/ads/googleads/v10/BUILD.bazel create mode 100644 google/ads/googleads/v10/common/BUILD.bazel create mode 100644 google/ads/googleads/v10/common/ad_asset.proto create mode 100644 google/ads/googleads/v10/common/ad_type_infos.proto create mode 100644 google/ads/googleads/v10/common/asset_policy.proto create mode 100644 google/ads/googleads/v10/common/asset_types.proto create mode 100644 google/ads/googleads/v10/common/asset_usage.proto create mode 100644 google/ads/googleads/v10/common/audiences.proto create mode 100644 google/ads/googleads/v10/common/bidding.proto create mode 100644 google/ads/googleads/v10/common/click_location.proto create mode 100644 google/ads/googleads/v10/common/criteria.proto create mode 100644 google/ads/googleads/v10/common/criterion_category_availability.proto create mode 100644 google/ads/googleads/v10/common/custom_parameter.proto create mode 100644 google/ads/googleads/v10/common/customizer_value.proto create mode 100644 google/ads/googleads/v10/common/dates.proto create mode 100644 google/ads/googleads/v10/common/explorer_auto_optimizer_setting.proto create mode 100644 google/ads/googleads/v10/common/extensions.proto create mode 100644 google/ads/googleads/v10/common/feed_common.proto create mode 100644 google/ads/googleads/v10/common/feed_item_set_filter_type_infos.proto create mode 100644 google/ads/googleads/v10/common/final_app_url.proto create mode 100644 google/ads/googleads/v10/common/frequency_cap.proto create mode 100644 google/ads/googleads/v10/common/keyword_plan_common.proto create mode 100644 google/ads/googleads/v10/common/matching_function.proto create mode 100644 google/ads/googleads/v10/common/metric_goal.proto create mode 100644 google/ads/googleads/v10/common/metrics.proto create mode 100644 google/ads/googleads/v10/common/offline_user_data.proto create mode 100644 google/ads/googleads/v10/common/policy.proto create mode 100644 google/ads/googleads/v10/common/policy_summary.proto create mode 100644 google/ads/googleads/v10/common/real_time_bidding_setting.proto create mode 100644 google/ads/googleads/v10/common/segments.proto create mode 100644 google/ads/googleads/v10/common/simulation.proto create mode 100644 google/ads/googleads/v10/common/tag_snippet.proto create mode 100644 google/ads/googleads/v10/common/targeting_setting.proto create mode 100644 google/ads/googleads/v10/common/text_label.proto create mode 100644 google/ads/googleads/v10/common/url_collection.proto create mode 100644 google/ads/googleads/v10/common/user_lists.proto create mode 100644 google/ads/googleads/v10/common/value.proto create mode 100644 google/ads/googleads/v10/enums/BUILD.bazel create mode 100644 google/ads/googleads/v10/enums/access_invitation_status.proto create mode 100644 google/ads/googleads/v10/enums/access_reason.proto create mode 100644 google/ads/googleads/v10/enums/access_role.proto create mode 100644 google/ads/googleads/v10/enums/account_budget_proposal_status.proto create mode 100644 google/ads/googleads/v10/enums/account_budget_proposal_type.proto create mode 100644 google/ads/googleads/v10/enums/account_budget_status.proto create mode 100644 google/ads/googleads/v10/enums/account_link_status.proto create mode 100644 google/ads/googleads/v10/enums/ad_customizer_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/ad_destination_type.proto create mode 100644 google/ads/googleads/v10/enums/ad_group_ad_rotation_mode.proto create mode 100644 google/ads/googleads/v10/enums/ad_group_ad_status.proto create mode 100644 google/ads/googleads/v10/enums/ad_group_criterion_approval_status.proto create mode 100644 google/ads/googleads/v10/enums/ad_group_criterion_status.proto create mode 100644 google/ads/googleads/v10/enums/ad_group_status.proto create mode 100644 google/ads/googleads/v10/enums/ad_group_type.proto create mode 100644 google/ads/googleads/v10/enums/ad_network_type.proto create mode 100644 google/ads/googleads/v10/enums/ad_serving_optimization_status.proto create mode 100644 google/ads/googleads/v10/enums/ad_strength.proto create mode 100644 google/ads/googleads/v10/enums/ad_type.proto create mode 100644 google/ads/googleads/v10/enums/advertising_channel_sub_type.proto create mode 100644 google/ads/googleads/v10/enums/advertising_channel_type.proto create mode 100644 google/ads/googleads/v10/enums/affiliate_location_feed_relationship_type.proto create mode 100644 google/ads/googleads/v10/enums/affiliate_location_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/age_range_type.proto create mode 100644 google/ads/googleads/v10/enums/app_campaign_app_store.proto create mode 100644 google/ads/googleads/v10/enums/app_campaign_bidding_strategy_goal_type.proto create mode 100644 google/ads/googleads/v10/enums/app_payment_model_type.proto create mode 100644 google/ads/googleads/v10/enums/app_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/app_store.proto create mode 100644 google/ads/googleads/v10/enums/app_url_operating_system_type.proto create mode 100644 google/ads/googleads/v10/enums/asset_field_type.proto create mode 100644 google/ads/googleads/v10/enums/asset_group_status.proto create mode 100644 google/ads/googleads/v10/enums/asset_link_status.proto create mode 100644 google/ads/googleads/v10/enums/asset_performance_label.proto create mode 100644 google/ads/googleads/v10/enums/asset_set_asset_status.proto create mode 100644 google/ads/googleads/v10/enums/asset_set_link_status.proto create mode 100644 google/ads/googleads/v10/enums/asset_set_status.proto create mode 100644 google/ads/googleads/v10/enums/asset_set_type.proto create mode 100644 google/ads/googleads/v10/enums/asset_type.proto create mode 100644 google/ads/googleads/v10/enums/async_action_status.proto create mode 100644 google/ads/googleads/v10/enums/attribution_model.proto create mode 100644 google/ads/googleads/v10/enums/audience_status.proto create mode 100644 google/ads/googleads/v10/enums/batch_job_status.proto create mode 100644 google/ads/googleads/v10/enums/bid_modifier_source.proto create mode 100644 google/ads/googleads/v10/enums/bidding_source.proto create mode 100644 google/ads/googleads/v10/enums/bidding_strategy_status.proto create mode 100644 google/ads/googleads/v10/enums/bidding_strategy_type.proto create mode 100644 google/ads/googleads/v10/enums/billing_setup_status.proto create mode 100644 google/ads/googleads/v10/enums/brand_safety_suitability.proto create mode 100644 google/ads/googleads/v10/enums/budget_campaign_association_status.proto create mode 100644 google/ads/googleads/v10/enums/budget_delivery_method.proto create mode 100644 google/ads/googleads/v10/enums/budget_period.proto create mode 100644 google/ads/googleads/v10/enums/budget_status.proto create mode 100644 google/ads/googleads/v10/enums/budget_type.proto create mode 100644 google/ads/googleads/v10/enums/call_conversion_reporting_state.proto create mode 100644 google/ads/googleads/v10/enums/call_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/call_to_action_type.proto create mode 100644 google/ads/googleads/v10/enums/call_tracking_display_location.proto create mode 100644 google/ads/googleads/v10/enums/call_type.proto create mode 100644 google/ads/googleads/v10/enums/callout_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/campaign_criterion_status.proto create mode 100644 google/ads/googleads/v10/enums/campaign_draft_status.proto create mode 100644 google/ads/googleads/v10/enums/campaign_experiment_status.proto create mode 100644 google/ads/googleads/v10/enums/campaign_experiment_traffic_split_type.proto create mode 100644 google/ads/googleads/v10/enums/campaign_experiment_type.proto create mode 100644 google/ads/googleads/v10/enums/campaign_group_status.proto create mode 100644 google/ads/googleads/v10/enums/campaign_serving_status.proto create mode 100644 google/ads/googleads/v10/enums/campaign_shared_set_status.proto create mode 100644 google/ads/googleads/v10/enums/campaign_status.proto create mode 100644 google/ads/googleads/v10/enums/change_client_type.proto create mode 100644 google/ads/googleads/v10/enums/change_event_resource_type.proto create mode 100644 google/ads/googleads/v10/enums/change_status_operation.proto create mode 100644 google/ads/googleads/v10/enums/change_status_resource_type.proto create mode 100644 google/ads/googleads/v10/enums/click_type.proto create mode 100644 google/ads/googleads/v10/enums/combined_audience_status.proto create mode 100644 google/ads/googleads/v10/enums/content_label_type.proto create mode 100644 google/ads/googleads/v10/enums/conversion_action_category.proto create mode 100644 google/ads/googleads/v10/enums/conversion_action_counting_type.proto create mode 100644 google/ads/googleads/v10/enums/conversion_action_status.proto create mode 100644 google/ads/googleads/v10/enums/conversion_action_type.proto create mode 100644 google/ads/googleads/v10/enums/conversion_adjustment_type.proto create mode 100644 google/ads/googleads/v10/enums/conversion_attribution_event_type.proto create mode 100644 google/ads/googleads/v10/enums/conversion_custom_variable_status.proto create mode 100644 google/ads/googleads/v10/enums/conversion_environment_enum.proto create mode 100644 google/ads/googleads/v10/enums/conversion_lag_bucket.proto create mode 100644 google/ads/googleads/v10/enums/conversion_or_adjustment_lag_bucket.proto create mode 100644 google/ads/googleads/v10/enums/conversion_origin.proto create mode 100644 google/ads/googleads/v10/enums/conversion_tracking_status_enum.proto create mode 100644 google/ads/googleads/v10/enums/conversion_value_rule_primary_dimension.proto create mode 100644 google/ads/googleads/v10/enums/conversion_value_rule_set_status.proto create mode 100644 google/ads/googleads/v10/enums/conversion_value_rule_status.proto create mode 100644 google/ads/googleads/v10/enums/criterion_category_channel_availability_mode.proto create mode 100644 google/ads/googleads/v10/enums/criterion_category_locale_availability_mode.proto create mode 100644 google/ads/googleads/v10/enums/criterion_system_serving_status.proto create mode 100644 google/ads/googleads/v10/enums/criterion_type.proto create mode 100644 google/ads/googleads/v10/enums/custom_audience_member_type.proto create mode 100644 google/ads/googleads/v10/enums/custom_audience_status.proto create mode 100644 google/ads/googleads/v10/enums/custom_audience_type.proto create mode 100644 google/ads/googleads/v10/enums/custom_conversion_goal_status.proto create mode 100644 google/ads/googleads/v10/enums/custom_interest_member_type.proto create mode 100644 google/ads/googleads/v10/enums/custom_interest_status.proto create mode 100644 google/ads/googleads/v10/enums/custom_interest_type.proto create mode 100644 google/ads/googleads/v10/enums/custom_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/customer_match_upload_key_type.proto create mode 100644 google/ads/googleads/v10/enums/customer_pay_per_conversion_eligibility_failure_reason.proto create mode 100644 google/ads/googleads/v10/enums/customer_status.proto create mode 100644 google/ads/googleads/v10/enums/customizer_attribute_status.proto create mode 100644 google/ads/googleads/v10/enums/customizer_attribute_type.proto create mode 100644 google/ads/googleads/v10/enums/customizer_value_status.proto create mode 100644 google/ads/googleads/v10/enums/data_driven_model_status.proto create mode 100644 google/ads/googleads/v10/enums/day_of_week.proto create mode 100644 google/ads/googleads/v10/enums/device.proto create mode 100644 google/ads/googleads/v10/enums/display_ad_format_setting.proto create mode 100644 google/ads/googleads/v10/enums/display_upload_product_type.proto create mode 100644 google/ads/googleads/v10/enums/distance_bucket.proto create mode 100644 google/ads/googleads/v10/enums/dsa_page_feed_criterion_field.proto create mode 100644 google/ads/googleads/v10/enums/education_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/experiment_metric.proto create mode 100644 google/ads/googleads/v10/enums/experiment_metric_direction.proto create mode 100644 google/ads/googleads/v10/enums/experiment_status.proto create mode 100644 google/ads/googleads/v10/enums/experiment_type.proto create mode 100644 google/ads/googleads/v10/enums/extension_setting_device.proto create mode 100644 google/ads/googleads/v10/enums/extension_type.proto create mode 100644 google/ads/googleads/v10/enums/external_conversion_source.proto create mode 100644 google/ads/googleads/v10/enums/feed_attribute_type.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_quality_approval_status.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_quality_disapproval_reason.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_set_status.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_set_string_filter_type.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_status.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_target_device.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_target_status.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_target_type.proto create mode 100644 google/ads/googleads/v10/enums/feed_item_validation_status.proto create mode 100644 google/ads/googleads/v10/enums/feed_link_status.proto create mode 100644 google/ads/googleads/v10/enums/feed_mapping_criterion_type.proto create mode 100644 google/ads/googleads/v10/enums/feed_mapping_status.proto create mode 100644 google/ads/googleads/v10/enums/feed_origin.proto create mode 100644 google/ads/googleads/v10/enums/feed_status.proto create mode 100644 google/ads/googleads/v10/enums/flight_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/frequency_cap_event_type.proto create mode 100644 google/ads/googleads/v10/enums/frequency_cap_level.proto create mode 100644 google/ads/googleads/v10/enums/frequency_cap_time_unit.proto create mode 100644 google/ads/googleads/v10/enums/gender_type.proto create mode 100644 google/ads/googleads/v10/enums/geo_target_constant_status.proto create mode 100644 google/ads/googleads/v10/enums/geo_targeting_restriction.proto create mode 100644 google/ads/googleads/v10/enums/geo_targeting_type.proto create mode 100644 google/ads/googleads/v10/enums/goal_config_level.proto create mode 100644 google/ads/googleads/v10/enums/google_ads_field_category.proto create mode 100644 google/ads/googleads/v10/enums/google_ads_field_data_type.proto create mode 100644 google/ads/googleads/v10/enums/google_voice_call_status.proto create mode 100644 google/ads/googleads/v10/enums/hotel_date_selection_type.proto create mode 100644 google/ads/googleads/v10/enums/hotel_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/hotel_price_bucket.proto create mode 100644 google/ads/googleads/v10/enums/hotel_rate_type.proto create mode 100644 google/ads/googleads/v10/enums/hotel_reconciliation_status.proto create mode 100644 google/ads/googleads/v10/enums/image_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/income_range_type.proto create mode 100644 google/ads/googleads/v10/enums/interaction_event_type.proto create mode 100644 google/ads/googleads/v10/enums/interaction_type.proto create mode 100644 google/ads/googleads/v10/enums/invoice_type.proto create mode 100644 google/ads/googleads/v10/enums/job_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/keyword_match_type.proto create mode 100644 google/ads/googleads/v10/enums/keyword_plan_aggregate_metric_type.proto create mode 100644 google/ads/googleads/v10/enums/keyword_plan_competition_level.proto create mode 100644 google/ads/googleads/v10/enums/keyword_plan_concept_group_type.proto create mode 100644 google/ads/googleads/v10/enums/keyword_plan_forecast_interval.proto create mode 100644 google/ads/googleads/v10/enums/keyword_plan_keyword_annotation.proto create mode 100644 google/ads/googleads/v10/enums/keyword_plan_network.proto create mode 100644 google/ads/googleads/v10/enums/label_status.proto create mode 100644 google/ads/googleads/v10/enums/lead_form_call_to_action_type.proto create mode 100644 google/ads/googleads/v10/enums/lead_form_desired_intent.proto create mode 100644 google/ads/googleads/v10/enums/lead_form_field_user_input_type.proto create mode 100644 google/ads/googleads/v10/enums/lead_form_post_submit_call_to_action_type.proto create mode 100644 google/ads/googleads/v10/enums/legacy_app_install_ad_app_store.proto create mode 100644 google/ads/googleads/v10/enums/linked_account_type.proto create mode 100644 google/ads/googleads/v10/enums/listing_group_filter_bidding_category_level.proto create mode 100644 google/ads/googleads/v10/enums/listing_group_filter_custom_attribute_index.proto create mode 100644 google/ads/googleads/v10/enums/listing_group_filter_product_channel.proto create mode 100644 google/ads/googleads/v10/enums/listing_group_filter_product_condition.proto create mode 100644 google/ads/googleads/v10/enums/listing_group_filter_product_type_level.proto create mode 100644 google/ads/googleads/v10/enums/listing_group_filter_type_enum.proto create mode 100644 google/ads/googleads/v10/enums/listing_group_filter_vertical.proto create mode 100644 google/ads/googleads/v10/enums/listing_group_type.proto create mode 100644 google/ads/googleads/v10/enums/local_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/location_extension_targeting_criterion_field.proto create mode 100644 google/ads/googleads/v10/enums/location_group_radius_units.proto create mode 100644 google/ads/googleads/v10/enums/location_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/location_source_type.proto create mode 100644 google/ads/googleads/v10/enums/manager_link_status.proto create mode 100644 google/ads/googleads/v10/enums/matching_function_context_type.proto create mode 100644 google/ads/googleads/v10/enums/matching_function_operator.proto create mode 100644 google/ads/googleads/v10/enums/media_type.proto create mode 100644 google/ads/googleads/v10/enums/merchant_center_link_status.proto create mode 100644 google/ads/googleads/v10/enums/message_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/mime_type.proto create mode 100644 google/ads/googleads/v10/enums/minute_of_hour.proto create mode 100644 google/ads/googleads/v10/enums/mobile_app_vendor.proto create mode 100644 google/ads/googleads/v10/enums/mobile_device_type.proto create mode 100644 google/ads/googleads/v10/enums/month_of_year.proto create mode 100644 google/ads/googleads/v10/enums/negative_geo_target_type.proto create mode 100644 google/ads/googleads/v10/enums/offline_user_data_job_failure_reason.proto create mode 100644 google/ads/googleads/v10/enums/offline_user_data_job_match_rate_range.proto create mode 100644 google/ads/googleads/v10/enums/offline_user_data_job_status.proto create mode 100644 google/ads/googleads/v10/enums/offline_user_data_job_type.proto create mode 100644 google/ads/googleads/v10/enums/operating_system_version_operator_type.proto create mode 100644 google/ads/googleads/v10/enums/optimization_goal_type.proto create mode 100644 google/ads/googleads/v10/enums/parental_status_type.proto create mode 100644 google/ads/googleads/v10/enums/payment_mode.proto create mode 100644 google/ads/googleads/v10/enums/placeholder_type.proto create mode 100644 google/ads/googleads/v10/enums/placement_type.proto create mode 100644 google/ads/googleads/v10/enums/policy_approval_status.proto create mode 100644 google/ads/googleads/v10/enums/policy_review_status.proto create mode 100644 google/ads/googleads/v10/enums/policy_topic_entry_type.proto create mode 100644 google/ads/googleads/v10/enums/policy_topic_evidence_destination_mismatch_url_type.proto create mode 100644 google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_device.proto create mode 100644 google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto create mode 100644 google/ads/googleads/v10/enums/positive_geo_target_type.proto create mode 100644 google/ads/googleads/v10/enums/preferred_content_type.proto create mode 100644 google/ads/googleads/v10/enums/price_extension_price_qualifier.proto create mode 100644 google/ads/googleads/v10/enums/price_extension_price_unit.proto create mode 100644 google/ads/googleads/v10/enums/price_extension_type.proto create mode 100644 google/ads/googleads/v10/enums/price_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/product_bidding_category_level.proto create mode 100644 google/ads/googleads/v10/enums/product_bidding_category_status.proto create mode 100644 google/ads/googleads/v10/enums/product_channel.proto create mode 100644 google/ads/googleads/v10/enums/product_channel_exclusivity.proto create mode 100644 google/ads/googleads/v10/enums/product_condition.proto create mode 100644 google/ads/googleads/v10/enums/product_custom_attribute_index.proto create mode 100644 google/ads/googleads/v10/enums/product_type_level.proto create mode 100644 google/ads/googleads/v10/enums/promotion_extension_discount_modifier.proto create mode 100644 google/ads/googleads/v10/enums/promotion_extension_occasion.proto create mode 100644 google/ads/googleads/v10/enums/promotion_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/proximity_radius_units.proto create mode 100644 google/ads/googleads/v10/enums/quality_score_bucket.proto create mode 100644 google/ads/googleads/v10/enums/reach_plan_ad_length.proto create mode 100644 google/ads/googleads/v10/enums/reach_plan_age_range.proto create mode 100644 google/ads/googleads/v10/enums/reach_plan_network.proto create mode 100644 google/ads/googleads/v10/enums/real_estate_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/recommendation_type.proto create mode 100644 google/ads/googleads/v10/enums/resource_change_operation.proto create mode 100644 google/ads/googleads/v10/enums/resource_limit_type.proto create mode 100644 google/ads/googleads/v10/enums/response_content_type.proto create mode 100644 google/ads/googleads/v10/enums/search_engine_results_page_type.proto create mode 100644 google/ads/googleads/v10/enums/search_term_match_type.proto create mode 100644 google/ads/googleads/v10/enums/search_term_targeting_status.proto create mode 100644 google/ads/googleads/v10/enums/seasonality_event_scope.proto create mode 100644 google/ads/googleads/v10/enums/seasonality_event_status.proto create mode 100644 google/ads/googleads/v10/enums/served_asset_field_type.proto create mode 100644 google/ads/googleads/v10/enums/shared_set_status.proto create mode 100644 google/ads/googleads/v10/enums/shared_set_type.proto create mode 100644 google/ads/googleads/v10/enums/simulation_modification_method.proto create mode 100644 google/ads/googleads/v10/enums/simulation_type.proto create mode 100644 google/ads/googleads/v10/enums/sitelink_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/sk_ad_network_ad_event_type.proto create mode 100644 google/ads/googleads/v10/enums/sk_ad_network_attribution_credit.proto create mode 100644 google/ads/googleads/v10/enums/sk_ad_network_user_type.proto create mode 100644 google/ads/googleads/v10/enums/slot.proto create mode 100644 google/ads/googleads/v10/enums/spending_limit_type.proto create mode 100644 google/ads/googleads/v10/enums/structured_snippet_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/summary_row_setting.proto create mode 100644 google/ads/googleads/v10/enums/system_managed_entity_source.proto create mode 100644 google/ads/googleads/v10/enums/target_cpa_opt_in_recommendation_goal.proto create mode 100644 google/ads/googleads/v10/enums/target_impression_share_location.proto create mode 100644 google/ads/googleads/v10/enums/targeting_dimension.proto create mode 100644 google/ads/googleads/v10/enums/time_type.proto create mode 100644 google/ads/googleads/v10/enums/tracking_code_page_format.proto create mode 100644 google/ads/googleads/v10/enums/tracking_code_type.proto create mode 100644 google/ads/googleads/v10/enums/travel_placeholder_field.proto create mode 100644 google/ads/googleads/v10/enums/user_identifier_source.proto create mode 100644 google/ads/googleads/v10/enums/user_interest_taxonomy_type.proto create mode 100644 google/ads/googleads/v10/enums/user_list_access_status.proto create mode 100644 google/ads/googleads/v10/enums/user_list_closing_reason.proto create mode 100644 google/ads/googleads/v10/enums/user_list_combined_rule_operator.proto create mode 100644 google/ads/googleads/v10/enums/user_list_crm_data_source_type.proto create mode 100644 google/ads/googleads/v10/enums/user_list_date_rule_item_operator.proto create mode 100644 google/ads/googleads/v10/enums/user_list_logical_rule_operator.proto create mode 100644 google/ads/googleads/v10/enums/user_list_membership_status.proto create mode 100644 google/ads/googleads/v10/enums/user_list_number_rule_item_operator.proto create mode 100644 google/ads/googleads/v10/enums/user_list_prepopulation_status.proto create mode 100644 google/ads/googleads/v10/enums/user_list_rule_type.proto create mode 100644 google/ads/googleads/v10/enums/user_list_size_range.proto create mode 100644 google/ads/googleads/v10/enums/user_list_string_rule_item_operator.proto create mode 100644 google/ads/googleads/v10/enums/user_list_type.proto create mode 100644 google/ads/googleads/v10/enums/value_rule_device_type.proto create mode 100644 google/ads/googleads/v10/enums/value_rule_geo_location_match_type.proto create mode 100644 google/ads/googleads/v10/enums/value_rule_operation.proto create mode 100644 google/ads/googleads/v10/enums/value_rule_set_attachment_type.proto create mode 100644 google/ads/googleads/v10/enums/value_rule_set_dimension.proto create mode 100644 google/ads/googleads/v10/enums/vanity_pharma_display_url_mode.proto create mode 100644 google/ads/googleads/v10/enums/vanity_pharma_text.proto create mode 100644 google/ads/googleads/v10/enums/video_thumbnail.proto create mode 100644 google/ads/googleads/v10/enums/webpage_condition_operand.proto create mode 100644 google/ads/googleads/v10/enums/webpage_condition_operator.proto create mode 100644 google/ads/googleads/v10/errors/BUILD.bazel create mode 100644 google/ads/googleads/v10/errors/access_invitation_error.proto create mode 100644 google/ads/googleads/v10/errors/account_budget_proposal_error.proto create mode 100644 google/ads/googleads/v10/errors/account_link_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_customizer_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_group_ad_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_group_bid_modifier_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_group_criterion_customizer_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_group_criterion_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_group_customizer_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_group_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_group_feed_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_parameter_error.proto create mode 100644 google/ads/googleads/v10/errors/ad_sharing_error.proto create mode 100644 google/ads/googleads/v10/errors/adx_error.proto create mode 100644 google/ads/googleads/v10/errors/asset_error.proto create mode 100644 google/ads/googleads/v10/errors/asset_group_asset_error.proto create mode 100644 google/ads/googleads/v10/errors/asset_group_error.proto create mode 100644 google/ads/googleads/v10/errors/asset_group_listing_group_filter_error.proto create mode 100644 google/ads/googleads/v10/errors/asset_link_error.proto create mode 100644 google/ads/googleads/v10/errors/asset_set_asset_error.proto create mode 100644 google/ads/googleads/v10/errors/asset_set_error.proto create mode 100644 google/ads/googleads/v10/errors/asset_set_link_error.proto create mode 100644 google/ads/googleads/v10/errors/audience_error.proto create mode 100644 google/ads/googleads/v10/errors/authentication_error.proto create mode 100644 google/ads/googleads/v10/errors/authorization_error.proto create mode 100644 google/ads/googleads/v10/errors/batch_job_error.proto create mode 100644 google/ads/googleads/v10/errors/bidding_error.proto create mode 100644 google/ads/googleads/v10/errors/bidding_strategy_error.proto create mode 100644 google/ads/googleads/v10/errors/billing_setup_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_budget_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_conversion_goal_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_criterion_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_customizer_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_draft_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_experiment_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_feed_error.proto create mode 100644 google/ads/googleads/v10/errors/campaign_shared_set_error.proto create mode 100644 google/ads/googleads/v10/errors/change_event_error.proto create mode 100644 google/ads/googleads/v10/errors/change_status_error.proto create mode 100644 google/ads/googleads/v10/errors/collection_size_error.proto create mode 100644 google/ads/googleads/v10/errors/context_error.proto create mode 100644 google/ads/googleads/v10/errors/conversion_action_error.proto create mode 100644 google/ads/googleads/v10/errors/conversion_adjustment_upload_error.proto create mode 100644 google/ads/googleads/v10/errors/conversion_custom_variable_error.proto create mode 100644 google/ads/googleads/v10/errors/conversion_goal_campaign_config_error.proto create mode 100644 google/ads/googleads/v10/errors/conversion_upload_error.proto create mode 100644 google/ads/googleads/v10/errors/conversion_value_rule_error.proto create mode 100644 google/ads/googleads/v10/errors/conversion_value_rule_set_error.proto create mode 100644 google/ads/googleads/v10/errors/country_code_error.proto create mode 100644 google/ads/googleads/v10/errors/criterion_error.proto create mode 100644 google/ads/googleads/v10/errors/currency_code_error.proto create mode 100644 google/ads/googleads/v10/errors/custom_audience_error.proto create mode 100644 google/ads/googleads/v10/errors/custom_conversion_goal_error.proto create mode 100644 google/ads/googleads/v10/errors/custom_interest_error.proto create mode 100644 google/ads/googleads/v10/errors/customer_client_link_error.proto create mode 100644 google/ads/googleads/v10/errors/customer_customizer_error.proto create mode 100644 google/ads/googleads/v10/errors/customer_error.proto create mode 100644 google/ads/googleads/v10/errors/customer_feed_error.proto create mode 100644 google/ads/googleads/v10/errors/customer_manager_link_error.proto create mode 100644 google/ads/googleads/v10/errors/customer_user_access_error.proto create mode 100644 google/ads/googleads/v10/errors/customizer_attribute_error.proto create mode 100644 google/ads/googleads/v10/errors/database_error.proto create mode 100644 google/ads/googleads/v10/errors/date_error.proto create mode 100644 google/ads/googleads/v10/errors/date_range_error.proto create mode 100644 google/ads/googleads/v10/errors/distinct_error.proto create mode 100644 google/ads/googleads/v10/errors/enum_error.proto create mode 100644 google/ads/googleads/v10/errors/errors.proto create mode 100644 google/ads/googleads/v10/errors/experiment_arm_error.proto create mode 100644 google/ads/googleads/v10/errors/experiment_error.proto create mode 100644 google/ads/googleads/v10/errors/extension_feed_item_error.proto create mode 100644 google/ads/googleads/v10/errors/extension_setting_error.proto create mode 100644 google/ads/googleads/v10/errors/feed_attribute_reference_error.proto create mode 100644 google/ads/googleads/v10/errors/feed_error.proto create mode 100644 google/ads/googleads/v10/errors/feed_item_error.proto create mode 100644 google/ads/googleads/v10/errors/feed_item_set_error.proto create mode 100644 google/ads/googleads/v10/errors/feed_item_set_link_error.proto create mode 100644 google/ads/googleads/v10/errors/feed_item_target_error.proto create mode 100644 google/ads/googleads/v10/errors/feed_item_validation_error.proto create mode 100644 google/ads/googleads/v10/errors/feed_mapping_error.proto create mode 100644 google/ads/googleads/v10/errors/field_error.proto create mode 100644 google/ads/googleads/v10/errors/field_mask_error.proto create mode 100644 google/ads/googleads/v10/errors/function_error.proto create mode 100644 google/ads/googleads/v10/errors/function_parsing_error.proto create mode 100644 google/ads/googleads/v10/errors/geo_target_constant_suggestion_error.proto create mode 100644 google/ads/googleads/v10/errors/header_error.proto create mode 100644 google/ads/googleads/v10/errors/id_error.proto create mode 100644 google/ads/googleads/v10/errors/image_error.proto create mode 100644 google/ads/googleads/v10/errors/internal_error.proto create mode 100644 google/ads/googleads/v10/errors/invoice_error.proto create mode 100644 google/ads/googleads/v10/errors/keyword_plan_ad_group_error.proto create mode 100644 google/ads/googleads/v10/errors/keyword_plan_ad_group_keyword_error.proto create mode 100644 google/ads/googleads/v10/errors/keyword_plan_campaign_error.proto create mode 100644 google/ads/googleads/v10/errors/keyword_plan_campaign_keyword_error.proto create mode 100644 google/ads/googleads/v10/errors/keyword_plan_error.proto create mode 100644 google/ads/googleads/v10/errors/keyword_plan_idea_error.proto create mode 100644 google/ads/googleads/v10/errors/label_error.proto create mode 100644 google/ads/googleads/v10/errors/language_code_error.proto create mode 100644 google/ads/googleads/v10/errors/list_operation_error.proto create mode 100644 google/ads/googleads/v10/errors/manager_link_error.proto create mode 100644 google/ads/googleads/v10/errors/media_bundle_error.proto create mode 100644 google/ads/googleads/v10/errors/media_file_error.proto create mode 100644 google/ads/googleads/v10/errors/media_upload_error.proto create mode 100644 google/ads/googleads/v10/errors/merchant_center_error.proto create mode 100644 google/ads/googleads/v10/errors/multiplier_error.proto create mode 100644 google/ads/googleads/v10/errors/mutate_error.proto create mode 100644 google/ads/googleads/v10/errors/new_resource_creation_error.proto create mode 100644 google/ads/googleads/v10/errors/not_allowlisted_error.proto create mode 100644 google/ads/googleads/v10/errors/not_empty_error.proto create mode 100644 google/ads/googleads/v10/errors/null_error.proto create mode 100644 google/ads/googleads/v10/errors/offline_user_data_job_error.proto create mode 100644 google/ads/googleads/v10/errors/operation_access_denied_error.proto create mode 100644 google/ads/googleads/v10/errors/operator_error.proto create mode 100644 google/ads/googleads/v10/errors/partial_failure_error.proto create mode 100644 google/ads/googleads/v10/errors/payments_account_error.proto create mode 100644 google/ads/googleads/v10/errors/policy_finding_error.proto create mode 100644 google/ads/googleads/v10/errors/policy_validation_parameter_error.proto create mode 100644 google/ads/googleads/v10/errors/policy_violation_error.proto create mode 100644 google/ads/googleads/v10/errors/query_error.proto create mode 100644 google/ads/googleads/v10/errors/quota_error.proto create mode 100644 google/ads/googleads/v10/errors/range_error.proto create mode 100644 google/ads/googleads/v10/errors/reach_plan_error.proto create mode 100644 google/ads/googleads/v10/errors/recommendation_error.proto create mode 100644 google/ads/googleads/v10/errors/region_code_error.proto create mode 100644 google/ads/googleads/v10/errors/request_error.proto create mode 100644 google/ads/googleads/v10/errors/resource_access_denied_error.proto create mode 100644 google/ads/googleads/v10/errors/resource_count_limit_exceeded_error.proto create mode 100644 google/ads/googleads/v10/errors/setting_error.proto create mode 100644 google/ads/googleads/v10/errors/shared_criterion_error.proto create mode 100644 google/ads/googleads/v10/errors/shared_set_error.proto create mode 100644 google/ads/googleads/v10/errors/size_limit_error.proto create mode 100644 google/ads/googleads/v10/errors/string_format_error.proto create mode 100644 google/ads/googleads/v10/errors/string_length_error.proto create mode 100644 google/ads/googleads/v10/errors/third_party_app_analytics_link_error.proto create mode 100644 google/ads/googleads/v10/errors/time_zone_error.proto create mode 100644 google/ads/googleads/v10/errors/url_field_error.proto create mode 100644 google/ads/googleads/v10/errors/user_data_error.proto create mode 100644 google/ads/googleads/v10/errors/user_list_error.proto create mode 100644 google/ads/googleads/v10/errors/youtube_video_registration_error.proto create mode 100644 google/ads/googleads/v10/googleads_gapic.yaml create mode 100755 google/ads/googleads/v10/googleads_grpc_service_config.json create mode 100644 google/ads/googleads/v10/googleads_v10.yaml create mode 100644 google/ads/googleads/v10/resources/BUILD.bazel create mode 100644 google/ads/googleads/v10/resources/accessible_bidding_strategy.proto create mode 100644 google/ads/googleads/v10/resources/account_budget.proto create mode 100644 google/ads/googleads/v10/resources/account_budget_proposal.proto create mode 100644 google/ads/googleads/v10/resources/account_link.proto create mode 100644 google/ads/googleads/v10/resources/ad.proto create mode 100644 google/ads/googleads/v10/resources/ad_group.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_ad.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_ad_asset_combination_view.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_ad_asset_view.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_ad_label.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_asset.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_audience_view.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_bid_modifier.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_criterion.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_criterion_customizer.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_criterion_label.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_criterion_simulation.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_customizer.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_extension_setting.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_feed.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_label.proto create mode 100644 google/ads/googleads/v10/resources/ad_group_simulation.proto create mode 100644 google/ads/googleads/v10/resources/ad_parameter.proto create mode 100644 google/ads/googleads/v10/resources/ad_schedule_view.proto create mode 100644 google/ads/googleads/v10/resources/age_range_view.proto create mode 100644 google/ads/googleads/v10/resources/asset.proto create mode 100644 google/ads/googleads/v10/resources/asset_field_type_view.proto create mode 100644 google/ads/googleads/v10/resources/asset_group.proto create mode 100644 google/ads/googleads/v10/resources/asset_group_asset.proto create mode 100644 google/ads/googleads/v10/resources/asset_group_listing_group_filter.proto create mode 100644 google/ads/googleads/v10/resources/asset_group_product_group_view.proto create mode 100644 google/ads/googleads/v10/resources/asset_group_signal.proto create mode 100644 google/ads/googleads/v10/resources/asset_set.proto create mode 100644 google/ads/googleads/v10/resources/asset_set_asset.proto create mode 100644 google/ads/googleads/v10/resources/audience.proto create mode 100644 google/ads/googleads/v10/resources/batch_job.proto create mode 100644 google/ads/googleads/v10/resources/bidding_data_exclusion.proto create mode 100644 google/ads/googleads/v10/resources/bidding_seasonality_adjustment.proto create mode 100644 google/ads/googleads/v10/resources/bidding_strategy.proto create mode 100644 google/ads/googleads/v10/resources/bidding_strategy_simulation.proto create mode 100644 google/ads/googleads/v10/resources/billing_setup.proto create mode 100644 google/ads/googleads/v10/resources/call_view.proto create mode 100644 google/ads/googleads/v10/resources/campaign.proto create mode 100644 google/ads/googleads/v10/resources/campaign_asset.proto create mode 100644 google/ads/googleads/v10/resources/campaign_asset_set.proto create mode 100644 google/ads/googleads/v10/resources/campaign_audience_view.proto create mode 100644 google/ads/googleads/v10/resources/campaign_bid_modifier.proto create mode 100644 google/ads/googleads/v10/resources/campaign_budget.proto create mode 100644 google/ads/googleads/v10/resources/campaign_conversion_goal.proto create mode 100644 google/ads/googleads/v10/resources/campaign_criterion.proto create mode 100644 google/ads/googleads/v10/resources/campaign_criterion_simulation.proto create mode 100644 google/ads/googleads/v10/resources/campaign_customizer.proto create mode 100644 google/ads/googleads/v10/resources/campaign_draft.proto create mode 100644 google/ads/googleads/v10/resources/campaign_experiment.proto create mode 100644 google/ads/googleads/v10/resources/campaign_extension_setting.proto create mode 100644 google/ads/googleads/v10/resources/campaign_feed.proto create mode 100644 google/ads/googleads/v10/resources/campaign_group.proto create mode 100644 google/ads/googleads/v10/resources/campaign_label.proto create mode 100644 google/ads/googleads/v10/resources/campaign_shared_set.proto create mode 100644 google/ads/googleads/v10/resources/campaign_simulation.proto create mode 100644 google/ads/googleads/v10/resources/carrier_constant.proto create mode 100644 google/ads/googleads/v10/resources/change_event.proto create mode 100644 google/ads/googleads/v10/resources/change_status.proto create mode 100644 google/ads/googleads/v10/resources/click_view.proto create mode 100644 google/ads/googleads/v10/resources/combined_audience.proto create mode 100644 google/ads/googleads/v10/resources/conversion_action.proto create mode 100644 google/ads/googleads/v10/resources/conversion_custom_variable.proto create mode 100644 google/ads/googleads/v10/resources/conversion_goal_campaign_config.proto create mode 100644 google/ads/googleads/v10/resources/conversion_value_rule.proto create mode 100644 google/ads/googleads/v10/resources/conversion_value_rule_set.proto create mode 100644 google/ads/googleads/v10/resources/currency_constant.proto create mode 100644 google/ads/googleads/v10/resources/custom_audience.proto create mode 100644 google/ads/googleads/v10/resources/custom_conversion_goal.proto create mode 100644 google/ads/googleads/v10/resources/custom_interest.proto create mode 100644 google/ads/googleads/v10/resources/customer.proto create mode 100644 google/ads/googleads/v10/resources/customer_asset.proto create mode 100644 google/ads/googleads/v10/resources/customer_client.proto create mode 100644 google/ads/googleads/v10/resources/customer_client_link.proto create mode 100644 google/ads/googleads/v10/resources/customer_conversion_goal.proto create mode 100644 google/ads/googleads/v10/resources/customer_customizer.proto create mode 100644 google/ads/googleads/v10/resources/customer_extension_setting.proto create mode 100644 google/ads/googleads/v10/resources/customer_feed.proto create mode 100644 google/ads/googleads/v10/resources/customer_label.proto create mode 100644 google/ads/googleads/v10/resources/customer_manager_link.proto create mode 100644 google/ads/googleads/v10/resources/customer_negative_criterion.proto create mode 100644 google/ads/googleads/v10/resources/customer_user_access.proto create mode 100644 google/ads/googleads/v10/resources/customer_user_access_invitation.proto create mode 100644 google/ads/googleads/v10/resources/customizer_attribute.proto create mode 100644 google/ads/googleads/v10/resources/detail_placement_view.proto create mode 100644 google/ads/googleads/v10/resources/detailed_demographic.proto create mode 100644 google/ads/googleads/v10/resources/display_keyword_view.proto create mode 100644 google/ads/googleads/v10/resources/distance_view.proto create mode 100644 google/ads/googleads/v10/resources/domain_category.proto create mode 100644 google/ads/googleads/v10/resources/dynamic_search_ads_search_term_view.proto create mode 100644 google/ads/googleads/v10/resources/expanded_landing_page_view.proto create mode 100644 google/ads/googleads/v10/resources/experiment.proto create mode 100644 google/ads/googleads/v10/resources/experiment_arm.proto create mode 100644 google/ads/googleads/v10/resources/extension_feed_item.proto create mode 100644 google/ads/googleads/v10/resources/feed.proto create mode 100644 google/ads/googleads/v10/resources/feed_item.proto create mode 100644 google/ads/googleads/v10/resources/feed_item_set.proto create mode 100644 google/ads/googleads/v10/resources/feed_item_set_link.proto create mode 100644 google/ads/googleads/v10/resources/feed_item_target.proto create mode 100644 google/ads/googleads/v10/resources/feed_mapping.proto create mode 100644 google/ads/googleads/v10/resources/feed_placeholder_view.proto create mode 100644 google/ads/googleads/v10/resources/gender_view.proto create mode 100644 google/ads/googleads/v10/resources/geo_target_constant.proto create mode 100644 google/ads/googleads/v10/resources/geographic_view.proto create mode 100644 google/ads/googleads/v10/resources/google_ads_field.proto create mode 100644 google/ads/googleads/v10/resources/group_placement_view.proto create mode 100644 google/ads/googleads/v10/resources/hotel_group_view.proto create mode 100644 google/ads/googleads/v10/resources/hotel_performance_view.proto create mode 100644 google/ads/googleads/v10/resources/hotel_reconciliation.proto create mode 100644 google/ads/googleads/v10/resources/income_range_view.proto create mode 100644 google/ads/googleads/v10/resources/invoice.proto create mode 100644 google/ads/googleads/v10/resources/keyword_plan.proto create mode 100644 google/ads/googleads/v10/resources/keyword_plan_ad_group.proto create mode 100644 google/ads/googleads/v10/resources/keyword_plan_ad_group_keyword.proto create mode 100644 google/ads/googleads/v10/resources/keyword_plan_campaign.proto create mode 100644 google/ads/googleads/v10/resources/keyword_plan_campaign_keyword.proto create mode 100644 google/ads/googleads/v10/resources/keyword_theme_constant.proto create mode 100644 google/ads/googleads/v10/resources/keyword_view.proto create mode 100644 google/ads/googleads/v10/resources/label.proto create mode 100644 google/ads/googleads/v10/resources/landing_page_view.proto create mode 100644 google/ads/googleads/v10/resources/language_constant.proto create mode 100644 google/ads/googleads/v10/resources/lead_form_submission_data.proto create mode 100644 google/ads/googleads/v10/resources/life_event.proto create mode 100644 google/ads/googleads/v10/resources/location_view.proto create mode 100644 google/ads/googleads/v10/resources/managed_placement_view.proto create mode 100644 google/ads/googleads/v10/resources/media_file.proto create mode 100644 google/ads/googleads/v10/resources/merchant_center_link.proto create mode 100644 google/ads/googleads/v10/resources/mobile_app_category_constant.proto create mode 100644 google/ads/googleads/v10/resources/mobile_device_constant.proto create mode 100644 google/ads/googleads/v10/resources/offline_user_data_job.proto create mode 100644 google/ads/googleads/v10/resources/operating_system_version_constant.proto create mode 100644 google/ads/googleads/v10/resources/paid_organic_search_term_view.proto create mode 100644 google/ads/googleads/v10/resources/parental_status_view.proto create mode 100644 google/ads/googleads/v10/resources/payments_account.proto create mode 100644 google/ads/googleads/v10/resources/product_bidding_category_constant.proto create mode 100644 google/ads/googleads/v10/resources/product_group_view.proto create mode 100644 google/ads/googleads/v10/resources/recommendation.proto create mode 100644 google/ads/googleads/v10/resources/remarketing_action.proto create mode 100644 google/ads/googleads/v10/resources/search_term_view.proto create mode 100644 google/ads/googleads/v10/resources/shared_criterion.proto create mode 100644 google/ads/googleads/v10/resources/shared_set.proto create mode 100644 google/ads/googleads/v10/resources/shopping_performance_view.proto create mode 100644 google/ads/googleads/v10/resources/smart_campaign_search_term_view.proto create mode 100644 google/ads/googleads/v10/resources/smart_campaign_setting.proto create mode 100644 google/ads/googleads/v10/resources/third_party_app_analytics_link.proto create mode 100644 google/ads/googleads/v10/resources/topic_constant.proto create mode 100644 google/ads/googleads/v10/resources/topic_view.proto create mode 100644 google/ads/googleads/v10/resources/user_interest.proto create mode 100644 google/ads/googleads/v10/resources/user_list.proto create mode 100644 google/ads/googleads/v10/resources/user_location_view.proto create mode 100644 google/ads/googleads/v10/resources/video.proto create mode 100644 google/ads/googleads/v10/resources/webpage_view.proto create mode 100644 google/ads/googleads/v10/services/BUILD.bazel create mode 100644 google/ads/googleads/v10/services/account_budget_proposal_service.proto create mode 100644 google/ads/googleads/v10/services/account_link_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_ad_label_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_ad_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_asset_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_bid_modifier_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_criterion_customizer_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_criterion_label_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_criterion_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_customizer_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_extension_setting_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_feed_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_label_service.proto create mode 100644 google/ads/googleads/v10/services/ad_group_service.proto create mode 100644 google/ads/googleads/v10/services/ad_parameter_service.proto create mode 100644 google/ads/googleads/v10/services/ad_service.proto create mode 100644 google/ads/googleads/v10/services/asset_group_asset_service.proto create mode 100644 google/ads/googleads/v10/services/asset_group_listing_group_filter_service.proto create mode 100644 google/ads/googleads/v10/services/asset_group_service.proto create mode 100644 google/ads/googleads/v10/services/asset_group_signal_service.proto create mode 100644 google/ads/googleads/v10/services/asset_service.proto create mode 100644 google/ads/googleads/v10/services/asset_set_asset_service.proto create mode 100644 google/ads/googleads/v10/services/asset_set_service.proto create mode 100644 google/ads/googleads/v10/services/audience_service.proto create mode 100644 google/ads/googleads/v10/services/batch_job_service.proto create mode 100644 google/ads/googleads/v10/services/bidding_data_exclusion_service.proto create mode 100644 google/ads/googleads/v10/services/bidding_seasonality_adjustment_service.proto create mode 100644 google/ads/googleads/v10/services/bidding_strategy_service.proto create mode 100644 google/ads/googleads/v10/services/billing_setup_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_asset_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_asset_set_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_bid_modifier_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_budget_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_conversion_goal_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_criterion_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_customizer_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_draft_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_experiment_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_extension_setting_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_feed_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_group_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_label_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_service.proto create mode 100644 google/ads/googleads/v10/services/campaign_shared_set_service.proto create mode 100644 google/ads/googleads/v10/services/conversion_action_service.proto create mode 100644 google/ads/googleads/v10/services/conversion_adjustment_upload_service.proto create mode 100644 google/ads/googleads/v10/services/conversion_custom_variable_service.proto create mode 100644 google/ads/googleads/v10/services/conversion_goal_campaign_config_service.proto create mode 100644 google/ads/googleads/v10/services/conversion_upload_service.proto create mode 100644 google/ads/googleads/v10/services/conversion_value_rule_service.proto create mode 100644 google/ads/googleads/v10/services/conversion_value_rule_set_service.proto create mode 100644 google/ads/googleads/v10/services/custom_audience_service.proto create mode 100644 google/ads/googleads/v10/services/custom_conversion_goal_service.proto create mode 100644 google/ads/googleads/v10/services/custom_interest_service.proto create mode 100644 google/ads/googleads/v10/services/customer_asset_service.proto create mode 100644 google/ads/googleads/v10/services/customer_client_link_service.proto create mode 100644 google/ads/googleads/v10/services/customer_conversion_goal_service.proto create mode 100644 google/ads/googleads/v10/services/customer_customizer_service.proto create mode 100644 google/ads/googleads/v10/services/customer_extension_setting_service.proto create mode 100644 google/ads/googleads/v10/services/customer_feed_service.proto create mode 100644 google/ads/googleads/v10/services/customer_label_service.proto create mode 100644 google/ads/googleads/v10/services/customer_manager_link_service.proto create mode 100644 google/ads/googleads/v10/services/customer_negative_criterion_service.proto create mode 100644 google/ads/googleads/v10/services/customer_service.proto create mode 100644 google/ads/googleads/v10/services/customer_user_access_invitation_service.proto create mode 100644 google/ads/googleads/v10/services/customer_user_access_service.proto create mode 100644 google/ads/googleads/v10/services/customizer_attribute_service.proto create mode 100644 google/ads/googleads/v10/services/experiment_arm_service.proto create mode 100644 google/ads/googleads/v10/services/experiment_service.proto create mode 100644 google/ads/googleads/v10/services/extension_feed_item_service.proto create mode 100644 google/ads/googleads/v10/services/feed_item_service.proto create mode 100644 google/ads/googleads/v10/services/feed_item_set_link_service.proto create mode 100644 google/ads/googleads/v10/services/feed_item_set_service.proto create mode 100644 google/ads/googleads/v10/services/feed_item_target_service.proto create mode 100644 google/ads/googleads/v10/services/feed_mapping_service.proto create mode 100644 google/ads/googleads/v10/services/feed_service.proto create mode 100644 google/ads/googleads/v10/services/geo_target_constant_service.proto create mode 100644 google/ads/googleads/v10/services/google_ads_field_service.proto create mode 100644 google/ads/googleads/v10/services/google_ads_service.proto create mode 100644 google/ads/googleads/v10/services/invoice_service.proto create mode 100644 google/ads/googleads/v10/services/keyword_plan_ad_group_keyword_service.proto create mode 100644 google/ads/googleads/v10/services/keyword_plan_ad_group_service.proto create mode 100644 google/ads/googleads/v10/services/keyword_plan_campaign_keyword_service.proto create mode 100644 google/ads/googleads/v10/services/keyword_plan_campaign_service.proto create mode 100644 google/ads/googleads/v10/services/keyword_plan_idea_service.proto create mode 100644 google/ads/googleads/v10/services/keyword_plan_service.proto create mode 100644 google/ads/googleads/v10/services/keyword_theme_constant_service.proto create mode 100644 google/ads/googleads/v10/services/label_service.proto create mode 100644 google/ads/googleads/v10/services/media_file_service.proto create mode 100644 google/ads/googleads/v10/services/merchant_center_link_service.proto create mode 100644 google/ads/googleads/v10/services/offline_user_data_job_service.proto create mode 100644 google/ads/googleads/v10/services/payments_account_service.proto create mode 100644 google/ads/googleads/v10/services/reach_plan_service.proto create mode 100644 google/ads/googleads/v10/services/recommendation_service.proto create mode 100644 google/ads/googleads/v10/services/remarketing_action_service.proto create mode 100644 google/ads/googleads/v10/services/shared_criterion_service.proto create mode 100644 google/ads/googleads/v10/services/shared_set_service.proto create mode 100644 google/ads/googleads/v10/services/smart_campaign_setting_service.proto create mode 100644 google/ads/googleads/v10/services/smart_campaign_suggest_service.proto create mode 100644 google/ads/googleads/v10/services/third_party_app_analytics_link_service.proto create mode 100644 google/ads/googleads/v10/services/user_data_service.proto create mode 100644 google/ads/googleads/v10/services/user_list_service.proto create mode 100644 google/ads/googleads/v11/BUILD.bazel create mode 100644 google/ads/googleads/v11/common/BUILD.bazel create mode 100644 google/ads/googleads/v11/common/ad_asset.proto create mode 100644 google/ads/googleads/v11/common/ad_type_infos.proto create mode 100644 google/ads/googleads/v11/common/asset_policy.proto create mode 100644 google/ads/googleads/v11/common/asset_types.proto create mode 100644 google/ads/googleads/v11/common/asset_usage.proto create mode 100644 google/ads/googleads/v11/common/audiences.proto create mode 100644 google/ads/googleads/v11/common/bidding.proto create mode 100644 google/ads/googleads/v11/common/click_location.proto create mode 100644 google/ads/googleads/v11/common/criteria.proto create mode 100644 google/ads/googleads/v11/common/criterion_category_availability.proto create mode 100644 google/ads/googleads/v11/common/custom_parameter.proto create mode 100644 google/ads/googleads/v11/common/customizer_value.proto create mode 100644 google/ads/googleads/v11/common/dates.proto create mode 100644 google/ads/googleads/v11/common/explorer_auto_optimizer_setting.proto create mode 100644 google/ads/googleads/v11/common/extensions.proto create mode 100644 google/ads/googleads/v11/common/feed_common.proto create mode 100644 google/ads/googleads/v11/common/feed_item_set_filter_type_infos.proto create mode 100644 google/ads/googleads/v11/common/final_app_url.proto create mode 100644 google/ads/googleads/v11/common/frequency_cap.proto create mode 100644 google/ads/googleads/v11/common/keyword_plan_common.proto create mode 100644 google/ads/googleads/v11/common/matching_function.proto create mode 100644 google/ads/googleads/v11/common/metric_goal.proto create mode 100644 google/ads/googleads/v11/common/metrics.proto create mode 100644 google/ads/googleads/v11/common/offline_user_data.proto create mode 100644 google/ads/googleads/v11/common/policy.proto create mode 100644 google/ads/googleads/v11/common/policy_summary.proto create mode 100644 google/ads/googleads/v11/common/real_time_bidding_setting.proto create mode 100644 google/ads/googleads/v11/common/segments.proto create mode 100644 google/ads/googleads/v11/common/simulation.proto create mode 100644 google/ads/googleads/v11/common/tag_snippet.proto create mode 100644 google/ads/googleads/v11/common/targeting_setting.proto create mode 100644 google/ads/googleads/v11/common/text_label.proto create mode 100644 google/ads/googleads/v11/common/url_collection.proto create mode 100644 google/ads/googleads/v11/common/user_lists.proto create mode 100644 google/ads/googleads/v11/common/value.proto create mode 100644 google/ads/googleads/v11/enums/BUILD.bazel create mode 100644 google/ads/googleads/v11/enums/access_invitation_status.proto create mode 100644 google/ads/googleads/v11/enums/access_reason.proto create mode 100644 google/ads/googleads/v11/enums/access_role.proto create mode 100644 google/ads/googleads/v11/enums/account_budget_proposal_status.proto create mode 100644 google/ads/googleads/v11/enums/account_budget_proposal_type.proto create mode 100644 google/ads/googleads/v11/enums/account_budget_status.proto create mode 100644 google/ads/googleads/v11/enums/account_link_status.proto create mode 100644 google/ads/googleads/v11/enums/ad_customizer_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/ad_destination_type.proto create mode 100644 google/ads/googleads/v11/enums/ad_group_ad_rotation_mode.proto create mode 100644 google/ads/googleads/v11/enums/ad_group_ad_status.proto create mode 100644 google/ads/googleads/v11/enums/ad_group_criterion_approval_status.proto create mode 100644 google/ads/googleads/v11/enums/ad_group_criterion_status.proto create mode 100644 google/ads/googleads/v11/enums/ad_group_status.proto create mode 100644 google/ads/googleads/v11/enums/ad_group_type.proto create mode 100644 google/ads/googleads/v11/enums/ad_network_type.proto create mode 100644 google/ads/googleads/v11/enums/ad_serving_optimization_status.proto create mode 100644 google/ads/googleads/v11/enums/ad_strength.proto create mode 100644 google/ads/googleads/v11/enums/ad_type.proto create mode 100644 google/ads/googleads/v11/enums/advertising_channel_sub_type.proto create mode 100644 google/ads/googleads/v11/enums/advertising_channel_type.proto create mode 100644 google/ads/googleads/v11/enums/affiliate_location_feed_relationship_type.proto create mode 100644 google/ads/googleads/v11/enums/affiliate_location_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/age_range_type.proto create mode 100644 google/ads/googleads/v11/enums/app_campaign_app_store.proto create mode 100644 google/ads/googleads/v11/enums/app_campaign_bidding_strategy_goal_type.proto create mode 100644 google/ads/googleads/v11/enums/app_payment_model_type.proto create mode 100644 google/ads/googleads/v11/enums/app_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/app_store.proto create mode 100644 google/ads/googleads/v11/enums/app_url_operating_system_type.proto create mode 100644 google/ads/googleads/v11/enums/asset_field_type.proto create mode 100644 google/ads/googleads/v11/enums/asset_group_status.proto create mode 100644 google/ads/googleads/v11/enums/asset_link_status.proto create mode 100644 google/ads/googleads/v11/enums/asset_performance_label.proto create mode 100644 google/ads/googleads/v11/enums/asset_set_asset_status.proto create mode 100644 google/ads/googleads/v11/enums/asset_set_link_status.proto create mode 100644 google/ads/googleads/v11/enums/asset_set_status.proto create mode 100644 google/ads/googleads/v11/enums/asset_set_type.proto create mode 100644 google/ads/googleads/v11/enums/asset_source.proto create mode 100644 google/ads/googleads/v11/enums/asset_type.proto create mode 100644 google/ads/googleads/v11/enums/async_action_status.proto create mode 100644 google/ads/googleads/v11/enums/attribution_model.proto create mode 100644 google/ads/googleads/v11/enums/audience_insights_dimension.proto create mode 100644 google/ads/googleads/v11/enums/audience_status.proto create mode 100644 google/ads/googleads/v11/enums/batch_job_status.proto create mode 100644 google/ads/googleads/v11/enums/bid_modifier_source.proto create mode 100644 google/ads/googleads/v11/enums/bidding_source.proto create mode 100644 google/ads/googleads/v11/enums/bidding_strategy_status.proto create mode 100644 google/ads/googleads/v11/enums/bidding_strategy_system_status.proto create mode 100644 google/ads/googleads/v11/enums/bidding_strategy_type.proto create mode 100644 google/ads/googleads/v11/enums/billing_setup_status.proto create mode 100644 google/ads/googleads/v11/enums/brand_safety_suitability.proto create mode 100644 google/ads/googleads/v11/enums/budget_campaign_association_status.proto create mode 100644 google/ads/googleads/v11/enums/budget_delivery_method.proto create mode 100644 google/ads/googleads/v11/enums/budget_period.proto create mode 100644 google/ads/googleads/v11/enums/budget_status.proto create mode 100644 google/ads/googleads/v11/enums/budget_type.proto create mode 100644 google/ads/googleads/v11/enums/call_conversion_reporting_state.proto create mode 100644 google/ads/googleads/v11/enums/call_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/call_to_action_type.proto create mode 100644 google/ads/googleads/v11/enums/call_tracking_display_location.proto create mode 100644 google/ads/googleads/v11/enums/call_type.proto create mode 100644 google/ads/googleads/v11/enums/callout_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/campaign_criterion_status.proto create mode 100644 google/ads/googleads/v11/enums/campaign_draft_status.proto create mode 100644 google/ads/googleads/v11/enums/campaign_experiment_status.proto create mode 100644 google/ads/googleads/v11/enums/campaign_experiment_traffic_split_type.proto create mode 100644 google/ads/googleads/v11/enums/campaign_experiment_type.proto create mode 100644 google/ads/googleads/v11/enums/campaign_group_status.proto create mode 100644 google/ads/googleads/v11/enums/campaign_serving_status.proto create mode 100644 google/ads/googleads/v11/enums/campaign_shared_set_status.proto create mode 100644 google/ads/googleads/v11/enums/campaign_status.proto create mode 100644 google/ads/googleads/v11/enums/change_client_type.proto create mode 100644 google/ads/googleads/v11/enums/change_event_resource_type.proto create mode 100644 google/ads/googleads/v11/enums/change_status_operation.proto create mode 100644 google/ads/googleads/v11/enums/change_status_resource_type.proto create mode 100644 google/ads/googleads/v11/enums/click_type.proto create mode 100644 google/ads/googleads/v11/enums/combined_audience_status.proto create mode 100644 google/ads/googleads/v11/enums/content_label_type.proto create mode 100644 google/ads/googleads/v11/enums/conversion_action_category.proto create mode 100644 google/ads/googleads/v11/enums/conversion_action_counting_type.proto create mode 100644 google/ads/googleads/v11/enums/conversion_action_status.proto create mode 100644 google/ads/googleads/v11/enums/conversion_action_type.proto create mode 100644 google/ads/googleads/v11/enums/conversion_adjustment_type.proto create mode 100644 google/ads/googleads/v11/enums/conversion_attribution_event_type.proto create mode 100644 google/ads/googleads/v11/enums/conversion_custom_variable_status.proto create mode 100644 google/ads/googleads/v11/enums/conversion_environment_enum.proto create mode 100644 google/ads/googleads/v11/enums/conversion_lag_bucket.proto create mode 100644 google/ads/googleads/v11/enums/conversion_or_adjustment_lag_bucket.proto create mode 100644 google/ads/googleads/v11/enums/conversion_origin.proto create mode 100644 google/ads/googleads/v11/enums/conversion_tracking_status_enum.proto create mode 100644 google/ads/googleads/v11/enums/conversion_value_rule_primary_dimension.proto create mode 100644 google/ads/googleads/v11/enums/conversion_value_rule_set_status.proto create mode 100644 google/ads/googleads/v11/enums/conversion_value_rule_status.proto create mode 100644 google/ads/googleads/v11/enums/criterion_category_channel_availability_mode.proto create mode 100644 google/ads/googleads/v11/enums/criterion_category_locale_availability_mode.proto create mode 100644 google/ads/googleads/v11/enums/criterion_system_serving_status.proto create mode 100644 google/ads/googleads/v11/enums/criterion_type.proto create mode 100644 google/ads/googleads/v11/enums/custom_audience_member_type.proto create mode 100644 google/ads/googleads/v11/enums/custom_audience_status.proto create mode 100644 google/ads/googleads/v11/enums/custom_audience_type.proto create mode 100644 google/ads/googleads/v11/enums/custom_conversion_goal_status.proto create mode 100644 google/ads/googleads/v11/enums/custom_interest_member_type.proto create mode 100644 google/ads/googleads/v11/enums/custom_interest_status.proto create mode 100644 google/ads/googleads/v11/enums/custom_interest_type.proto create mode 100644 google/ads/googleads/v11/enums/custom_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/customer_match_upload_key_type.proto create mode 100644 google/ads/googleads/v11/enums/customer_pay_per_conversion_eligibility_failure_reason.proto create mode 100644 google/ads/googleads/v11/enums/customer_status.proto create mode 100644 google/ads/googleads/v11/enums/customizer_attribute_status.proto create mode 100644 google/ads/googleads/v11/enums/customizer_attribute_type.proto create mode 100644 google/ads/googleads/v11/enums/customizer_value_status.proto create mode 100644 google/ads/googleads/v11/enums/data_driven_model_status.proto create mode 100644 google/ads/googleads/v11/enums/day_of_week.proto create mode 100644 google/ads/googleads/v11/enums/device.proto create mode 100644 google/ads/googleads/v11/enums/display_ad_format_setting.proto create mode 100644 google/ads/googleads/v11/enums/display_upload_product_type.proto create mode 100644 google/ads/googleads/v11/enums/distance_bucket.proto create mode 100644 google/ads/googleads/v11/enums/dsa_page_feed_criterion_field.proto create mode 100644 google/ads/googleads/v11/enums/education_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/experiment_metric.proto create mode 100644 google/ads/googleads/v11/enums/experiment_metric_direction.proto create mode 100644 google/ads/googleads/v11/enums/experiment_status.proto create mode 100644 google/ads/googleads/v11/enums/experiment_type.proto create mode 100644 google/ads/googleads/v11/enums/extension_setting_device.proto create mode 100644 google/ads/googleads/v11/enums/extension_type.proto create mode 100644 google/ads/googleads/v11/enums/external_conversion_source.proto create mode 100644 google/ads/googleads/v11/enums/feed_attribute_type.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_quality_approval_status.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_quality_disapproval_reason.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_set_status.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_set_string_filter_type.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_status.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_target_device.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_target_status.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_target_type.proto create mode 100644 google/ads/googleads/v11/enums/feed_item_validation_status.proto create mode 100644 google/ads/googleads/v11/enums/feed_link_status.proto create mode 100644 google/ads/googleads/v11/enums/feed_mapping_criterion_type.proto create mode 100644 google/ads/googleads/v11/enums/feed_mapping_status.proto create mode 100644 google/ads/googleads/v11/enums/feed_origin.proto create mode 100644 google/ads/googleads/v11/enums/feed_status.proto create mode 100644 google/ads/googleads/v11/enums/flight_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/frequency_cap_event_type.proto create mode 100644 google/ads/googleads/v11/enums/frequency_cap_level.proto create mode 100644 google/ads/googleads/v11/enums/frequency_cap_time_unit.proto create mode 100644 google/ads/googleads/v11/enums/gender_type.proto create mode 100644 google/ads/googleads/v11/enums/geo_target_constant_status.proto create mode 100644 google/ads/googleads/v11/enums/geo_targeting_restriction.proto create mode 100644 google/ads/googleads/v11/enums/geo_targeting_type.proto create mode 100644 google/ads/googleads/v11/enums/goal_config_level.proto create mode 100644 google/ads/googleads/v11/enums/google_ads_field_category.proto create mode 100644 google/ads/googleads/v11/enums/google_ads_field_data_type.proto create mode 100644 google/ads/googleads/v11/enums/google_voice_call_status.proto create mode 100644 google/ads/googleads/v11/enums/hotel_date_selection_type.proto create mode 100644 google/ads/googleads/v11/enums/hotel_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/hotel_price_bucket.proto create mode 100644 google/ads/googleads/v11/enums/hotel_rate_type.proto create mode 100644 google/ads/googleads/v11/enums/hotel_reconciliation_status.proto create mode 100644 google/ads/googleads/v11/enums/image_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/income_range_type.proto create mode 100644 google/ads/googleads/v11/enums/interaction_event_type.proto create mode 100644 google/ads/googleads/v11/enums/interaction_type.proto create mode 100644 google/ads/googleads/v11/enums/invoice_type.proto create mode 100644 google/ads/googleads/v11/enums/job_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/keyword_match_type.proto create mode 100644 google/ads/googleads/v11/enums/keyword_plan_aggregate_metric_type.proto create mode 100644 google/ads/googleads/v11/enums/keyword_plan_competition_level.proto create mode 100644 google/ads/googleads/v11/enums/keyword_plan_concept_group_type.proto create mode 100644 google/ads/googleads/v11/enums/keyword_plan_forecast_interval.proto create mode 100644 google/ads/googleads/v11/enums/keyword_plan_keyword_annotation.proto create mode 100644 google/ads/googleads/v11/enums/keyword_plan_network.proto create mode 100644 google/ads/googleads/v11/enums/label_status.proto create mode 100644 google/ads/googleads/v11/enums/lead_form_call_to_action_type.proto create mode 100644 google/ads/googleads/v11/enums/lead_form_desired_intent.proto create mode 100644 google/ads/googleads/v11/enums/lead_form_field_user_input_type.proto create mode 100644 google/ads/googleads/v11/enums/lead_form_post_submit_call_to_action_type.proto create mode 100644 google/ads/googleads/v11/enums/legacy_app_install_ad_app_store.proto create mode 100644 google/ads/googleads/v11/enums/linked_account_type.proto create mode 100644 google/ads/googleads/v11/enums/listing_group_filter_bidding_category_level.proto create mode 100644 google/ads/googleads/v11/enums/listing_group_filter_custom_attribute_index.proto create mode 100644 google/ads/googleads/v11/enums/listing_group_filter_product_channel.proto create mode 100644 google/ads/googleads/v11/enums/listing_group_filter_product_condition.proto create mode 100644 google/ads/googleads/v11/enums/listing_group_filter_product_type_level.proto create mode 100644 google/ads/googleads/v11/enums/listing_group_filter_type_enum.proto create mode 100644 google/ads/googleads/v11/enums/listing_group_filter_vertical.proto create mode 100644 google/ads/googleads/v11/enums/listing_group_type.proto create mode 100644 google/ads/googleads/v11/enums/local_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/location_extension_targeting_criterion_field.proto create mode 100644 google/ads/googleads/v11/enums/location_group_radius_units.proto create mode 100644 google/ads/googleads/v11/enums/location_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/location_source_type.proto create mode 100644 google/ads/googleads/v11/enums/manager_link_status.proto create mode 100644 google/ads/googleads/v11/enums/matching_function_context_type.proto create mode 100644 google/ads/googleads/v11/enums/matching_function_operator.proto create mode 100644 google/ads/googleads/v11/enums/media_type.proto create mode 100644 google/ads/googleads/v11/enums/merchant_center_link_status.proto create mode 100644 google/ads/googleads/v11/enums/message_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/mime_type.proto create mode 100644 google/ads/googleads/v11/enums/minute_of_hour.proto create mode 100644 google/ads/googleads/v11/enums/mobile_app_vendor.proto create mode 100644 google/ads/googleads/v11/enums/mobile_device_type.proto create mode 100644 google/ads/googleads/v11/enums/month_of_year.proto create mode 100644 google/ads/googleads/v11/enums/negative_geo_target_type.proto create mode 100644 google/ads/googleads/v11/enums/offline_user_data_job_failure_reason.proto create mode 100644 google/ads/googleads/v11/enums/offline_user_data_job_match_rate_range.proto create mode 100644 google/ads/googleads/v11/enums/offline_user_data_job_status.proto create mode 100644 google/ads/googleads/v11/enums/offline_user_data_job_type.proto create mode 100644 google/ads/googleads/v11/enums/operating_system_version_operator_type.proto create mode 100644 google/ads/googleads/v11/enums/optimization_goal_type.proto create mode 100644 google/ads/googleads/v11/enums/parental_status_type.proto create mode 100644 google/ads/googleads/v11/enums/payment_mode.proto create mode 100644 google/ads/googleads/v11/enums/performance_max_upgrade_status.proto create mode 100644 google/ads/googleads/v11/enums/placeholder_type.proto create mode 100644 google/ads/googleads/v11/enums/placement_type.proto create mode 100644 google/ads/googleads/v11/enums/policy_approval_status.proto create mode 100644 google/ads/googleads/v11/enums/policy_review_status.proto create mode 100644 google/ads/googleads/v11/enums/policy_topic_entry_type.proto create mode 100644 google/ads/googleads/v11/enums/policy_topic_evidence_destination_mismatch_url_type.proto create mode 100644 google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_device.proto create mode 100644 google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto create mode 100644 google/ads/googleads/v11/enums/positive_geo_target_type.proto create mode 100644 google/ads/googleads/v11/enums/preferred_content_type.proto create mode 100644 google/ads/googleads/v11/enums/price_extension_price_qualifier.proto create mode 100644 google/ads/googleads/v11/enums/price_extension_price_unit.proto create mode 100644 google/ads/googleads/v11/enums/price_extension_type.proto create mode 100644 google/ads/googleads/v11/enums/price_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/product_bidding_category_level.proto create mode 100644 google/ads/googleads/v11/enums/product_bidding_category_status.proto create mode 100644 google/ads/googleads/v11/enums/product_channel.proto create mode 100644 google/ads/googleads/v11/enums/product_channel_exclusivity.proto create mode 100644 google/ads/googleads/v11/enums/product_condition.proto create mode 100644 google/ads/googleads/v11/enums/product_custom_attribute_index.proto create mode 100644 google/ads/googleads/v11/enums/product_type_level.proto create mode 100644 google/ads/googleads/v11/enums/promotion_extension_discount_modifier.proto create mode 100644 google/ads/googleads/v11/enums/promotion_extension_occasion.proto create mode 100644 google/ads/googleads/v11/enums/promotion_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/proximity_radius_units.proto create mode 100644 google/ads/googleads/v11/enums/quality_score_bucket.proto create mode 100644 google/ads/googleads/v11/enums/reach_plan_ad_length.proto create mode 100644 google/ads/googleads/v11/enums/reach_plan_age_range.proto create mode 100644 google/ads/googleads/v11/enums/reach_plan_network.proto create mode 100644 google/ads/googleads/v11/enums/real_estate_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/recommendation_type.proto create mode 100644 google/ads/googleads/v11/enums/resource_change_operation.proto create mode 100644 google/ads/googleads/v11/enums/resource_limit_type.proto create mode 100644 google/ads/googleads/v11/enums/response_content_type.proto create mode 100644 google/ads/googleads/v11/enums/search_engine_results_page_type.proto create mode 100644 google/ads/googleads/v11/enums/search_term_match_type.proto create mode 100644 google/ads/googleads/v11/enums/search_term_targeting_status.proto create mode 100644 google/ads/googleads/v11/enums/seasonality_event_scope.proto create mode 100644 google/ads/googleads/v11/enums/seasonality_event_status.proto create mode 100644 google/ads/googleads/v11/enums/served_asset_field_type.proto create mode 100644 google/ads/googleads/v11/enums/shared_set_status.proto create mode 100644 google/ads/googleads/v11/enums/shared_set_type.proto create mode 100644 google/ads/googleads/v11/enums/simulation_modification_method.proto create mode 100644 google/ads/googleads/v11/enums/simulation_type.proto create mode 100644 google/ads/googleads/v11/enums/sitelink_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/sk_ad_network_ad_event_type.proto create mode 100644 google/ads/googleads/v11/enums/sk_ad_network_attribution_credit.proto create mode 100644 google/ads/googleads/v11/enums/sk_ad_network_user_type.proto create mode 100644 google/ads/googleads/v11/enums/slot.proto create mode 100644 google/ads/googleads/v11/enums/spending_limit_type.proto create mode 100644 google/ads/googleads/v11/enums/structured_snippet_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/summary_row_setting.proto create mode 100644 google/ads/googleads/v11/enums/system_managed_entity_source.proto create mode 100644 google/ads/googleads/v11/enums/target_cpa_opt_in_recommendation_goal.proto create mode 100644 google/ads/googleads/v11/enums/target_impression_share_location.proto create mode 100644 google/ads/googleads/v11/enums/targeting_dimension.proto create mode 100644 google/ads/googleads/v11/enums/time_type.proto create mode 100644 google/ads/googleads/v11/enums/tracking_code_page_format.proto create mode 100644 google/ads/googleads/v11/enums/tracking_code_type.proto create mode 100644 google/ads/googleads/v11/enums/travel_placeholder_field.proto create mode 100644 google/ads/googleads/v11/enums/user_identifier_source.proto create mode 100644 google/ads/googleads/v11/enums/user_interest_taxonomy_type.proto create mode 100644 google/ads/googleads/v11/enums/user_list_access_status.proto create mode 100644 google/ads/googleads/v11/enums/user_list_closing_reason.proto create mode 100644 google/ads/googleads/v11/enums/user_list_combined_rule_operator.proto create mode 100644 google/ads/googleads/v11/enums/user_list_crm_data_source_type.proto create mode 100644 google/ads/googleads/v11/enums/user_list_date_rule_item_operator.proto create mode 100644 google/ads/googleads/v11/enums/user_list_flexible_rule_operator.proto create mode 100644 google/ads/googleads/v11/enums/user_list_logical_rule_operator.proto create mode 100644 google/ads/googleads/v11/enums/user_list_membership_status.proto create mode 100644 google/ads/googleads/v11/enums/user_list_number_rule_item_operator.proto create mode 100644 google/ads/googleads/v11/enums/user_list_prepopulation_status.proto create mode 100644 google/ads/googleads/v11/enums/user_list_rule_type.proto create mode 100644 google/ads/googleads/v11/enums/user_list_size_range.proto create mode 100644 google/ads/googleads/v11/enums/user_list_string_rule_item_operator.proto create mode 100644 google/ads/googleads/v11/enums/user_list_type.proto create mode 100644 google/ads/googleads/v11/enums/value_rule_device_type.proto create mode 100644 google/ads/googleads/v11/enums/value_rule_geo_location_match_type.proto create mode 100644 google/ads/googleads/v11/enums/value_rule_operation.proto create mode 100644 google/ads/googleads/v11/enums/value_rule_set_attachment_type.proto create mode 100644 google/ads/googleads/v11/enums/value_rule_set_dimension.proto create mode 100644 google/ads/googleads/v11/enums/vanity_pharma_display_url_mode.proto create mode 100644 google/ads/googleads/v11/enums/vanity_pharma_text.proto create mode 100644 google/ads/googleads/v11/enums/video_thumbnail.proto create mode 100644 google/ads/googleads/v11/enums/webpage_condition_operand.proto create mode 100644 google/ads/googleads/v11/enums/webpage_condition_operator.proto create mode 100644 google/ads/googleads/v11/errors/BUILD.bazel create mode 100644 google/ads/googleads/v11/errors/access_invitation_error.proto create mode 100644 google/ads/googleads/v11/errors/account_budget_proposal_error.proto create mode 100644 google/ads/googleads/v11/errors/account_link_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_customizer_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_group_ad_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_group_bid_modifier_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_group_criterion_customizer_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_group_criterion_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_group_customizer_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_group_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_group_feed_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_parameter_error.proto create mode 100644 google/ads/googleads/v11/errors/ad_sharing_error.proto create mode 100644 google/ads/googleads/v11/errors/adx_error.proto create mode 100644 google/ads/googleads/v11/errors/asset_error.proto create mode 100644 google/ads/googleads/v11/errors/asset_group_asset_error.proto create mode 100644 google/ads/googleads/v11/errors/asset_group_error.proto create mode 100644 google/ads/googleads/v11/errors/asset_group_listing_group_filter_error.proto create mode 100644 google/ads/googleads/v11/errors/asset_link_error.proto create mode 100644 google/ads/googleads/v11/errors/asset_set_asset_error.proto create mode 100644 google/ads/googleads/v11/errors/asset_set_error.proto create mode 100644 google/ads/googleads/v11/errors/asset_set_link_error.proto create mode 100644 google/ads/googleads/v11/errors/audience_error.proto create mode 100644 google/ads/googleads/v11/errors/audience_insights_error.proto create mode 100644 google/ads/googleads/v11/errors/authentication_error.proto create mode 100644 google/ads/googleads/v11/errors/authorization_error.proto create mode 100644 google/ads/googleads/v11/errors/batch_job_error.proto create mode 100644 google/ads/googleads/v11/errors/bidding_error.proto create mode 100644 google/ads/googleads/v11/errors/bidding_strategy_error.proto create mode 100644 google/ads/googleads/v11/errors/billing_setup_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_budget_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_conversion_goal_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_criterion_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_customizer_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_draft_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_experiment_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_feed_error.proto create mode 100644 google/ads/googleads/v11/errors/campaign_shared_set_error.proto create mode 100644 google/ads/googleads/v11/errors/change_event_error.proto create mode 100644 google/ads/googleads/v11/errors/change_status_error.proto create mode 100644 google/ads/googleads/v11/errors/collection_size_error.proto create mode 100644 google/ads/googleads/v11/errors/context_error.proto create mode 100644 google/ads/googleads/v11/errors/conversion_action_error.proto create mode 100644 google/ads/googleads/v11/errors/conversion_adjustment_upload_error.proto create mode 100644 google/ads/googleads/v11/errors/conversion_custom_variable_error.proto create mode 100644 google/ads/googleads/v11/errors/conversion_goal_campaign_config_error.proto create mode 100644 google/ads/googleads/v11/errors/conversion_upload_error.proto create mode 100644 google/ads/googleads/v11/errors/conversion_value_rule_error.proto create mode 100644 google/ads/googleads/v11/errors/conversion_value_rule_set_error.proto create mode 100644 google/ads/googleads/v11/errors/country_code_error.proto create mode 100644 google/ads/googleads/v11/errors/criterion_error.proto create mode 100644 google/ads/googleads/v11/errors/currency_code_error.proto create mode 100644 google/ads/googleads/v11/errors/custom_audience_error.proto create mode 100644 google/ads/googleads/v11/errors/custom_conversion_goal_error.proto create mode 100644 google/ads/googleads/v11/errors/custom_interest_error.proto create mode 100644 google/ads/googleads/v11/errors/customer_client_link_error.proto create mode 100644 google/ads/googleads/v11/errors/customer_customizer_error.proto create mode 100644 google/ads/googleads/v11/errors/customer_error.proto create mode 100644 google/ads/googleads/v11/errors/customer_feed_error.proto create mode 100644 google/ads/googleads/v11/errors/customer_manager_link_error.proto create mode 100644 google/ads/googleads/v11/errors/customer_user_access_error.proto create mode 100644 google/ads/googleads/v11/errors/customizer_attribute_error.proto create mode 100644 google/ads/googleads/v11/errors/database_error.proto create mode 100644 google/ads/googleads/v11/errors/date_error.proto create mode 100644 google/ads/googleads/v11/errors/date_range_error.proto create mode 100644 google/ads/googleads/v11/errors/distinct_error.proto create mode 100644 google/ads/googleads/v11/errors/enum_error.proto create mode 100644 google/ads/googleads/v11/errors/errors.proto create mode 100644 google/ads/googleads/v11/errors/experiment_arm_error.proto create mode 100644 google/ads/googleads/v11/errors/experiment_error.proto create mode 100644 google/ads/googleads/v11/errors/extension_feed_item_error.proto create mode 100644 google/ads/googleads/v11/errors/extension_setting_error.proto create mode 100644 google/ads/googleads/v11/errors/feed_attribute_reference_error.proto create mode 100644 google/ads/googleads/v11/errors/feed_error.proto create mode 100644 google/ads/googleads/v11/errors/feed_item_error.proto create mode 100644 google/ads/googleads/v11/errors/feed_item_set_error.proto create mode 100644 google/ads/googleads/v11/errors/feed_item_set_link_error.proto create mode 100644 google/ads/googleads/v11/errors/feed_item_target_error.proto create mode 100644 google/ads/googleads/v11/errors/feed_item_validation_error.proto create mode 100644 google/ads/googleads/v11/errors/feed_mapping_error.proto create mode 100644 google/ads/googleads/v11/errors/field_error.proto create mode 100644 google/ads/googleads/v11/errors/field_mask_error.proto create mode 100644 google/ads/googleads/v11/errors/function_error.proto create mode 100644 google/ads/googleads/v11/errors/function_parsing_error.proto create mode 100644 google/ads/googleads/v11/errors/geo_target_constant_suggestion_error.proto create mode 100644 google/ads/googleads/v11/errors/header_error.proto create mode 100644 google/ads/googleads/v11/errors/id_error.proto create mode 100644 google/ads/googleads/v11/errors/image_error.proto create mode 100644 google/ads/googleads/v11/errors/internal_error.proto create mode 100644 google/ads/googleads/v11/errors/invoice_error.proto create mode 100644 google/ads/googleads/v11/errors/keyword_plan_ad_group_error.proto create mode 100644 google/ads/googleads/v11/errors/keyword_plan_ad_group_keyword_error.proto create mode 100644 google/ads/googleads/v11/errors/keyword_plan_campaign_error.proto create mode 100644 google/ads/googleads/v11/errors/keyword_plan_campaign_keyword_error.proto create mode 100644 google/ads/googleads/v11/errors/keyword_plan_error.proto create mode 100644 google/ads/googleads/v11/errors/keyword_plan_idea_error.proto create mode 100644 google/ads/googleads/v11/errors/label_error.proto create mode 100644 google/ads/googleads/v11/errors/language_code_error.proto create mode 100644 google/ads/googleads/v11/errors/list_operation_error.proto create mode 100644 google/ads/googleads/v11/errors/manager_link_error.proto create mode 100644 google/ads/googleads/v11/errors/media_bundle_error.proto create mode 100644 google/ads/googleads/v11/errors/media_file_error.proto create mode 100644 google/ads/googleads/v11/errors/media_upload_error.proto create mode 100644 google/ads/googleads/v11/errors/merchant_center_error.proto create mode 100644 google/ads/googleads/v11/errors/multiplier_error.proto create mode 100644 google/ads/googleads/v11/errors/mutate_error.proto create mode 100644 google/ads/googleads/v11/errors/new_resource_creation_error.proto create mode 100644 google/ads/googleads/v11/errors/not_allowlisted_error.proto create mode 100644 google/ads/googleads/v11/errors/not_empty_error.proto create mode 100644 google/ads/googleads/v11/errors/null_error.proto create mode 100644 google/ads/googleads/v11/errors/offline_user_data_job_error.proto create mode 100644 google/ads/googleads/v11/errors/operation_access_denied_error.proto create mode 100644 google/ads/googleads/v11/errors/operator_error.proto create mode 100644 google/ads/googleads/v11/errors/partial_failure_error.proto create mode 100644 google/ads/googleads/v11/errors/payments_account_error.proto create mode 100644 google/ads/googleads/v11/errors/policy_finding_error.proto create mode 100644 google/ads/googleads/v11/errors/policy_validation_parameter_error.proto create mode 100644 google/ads/googleads/v11/errors/policy_violation_error.proto create mode 100644 google/ads/googleads/v11/errors/query_error.proto create mode 100644 google/ads/googleads/v11/errors/quota_error.proto create mode 100644 google/ads/googleads/v11/errors/range_error.proto create mode 100644 google/ads/googleads/v11/errors/reach_plan_error.proto create mode 100644 google/ads/googleads/v11/errors/recommendation_error.proto create mode 100644 google/ads/googleads/v11/errors/region_code_error.proto create mode 100644 google/ads/googleads/v11/errors/request_error.proto create mode 100644 google/ads/googleads/v11/errors/resource_access_denied_error.proto create mode 100644 google/ads/googleads/v11/errors/resource_count_limit_exceeded_error.proto create mode 100644 google/ads/googleads/v11/errors/setting_error.proto create mode 100644 google/ads/googleads/v11/errors/shared_criterion_error.proto create mode 100644 google/ads/googleads/v11/errors/shared_set_error.proto create mode 100644 google/ads/googleads/v11/errors/size_limit_error.proto create mode 100644 google/ads/googleads/v11/errors/string_format_error.proto create mode 100644 google/ads/googleads/v11/errors/string_length_error.proto create mode 100644 google/ads/googleads/v11/errors/third_party_app_analytics_link_error.proto create mode 100644 google/ads/googleads/v11/errors/time_zone_error.proto create mode 100644 google/ads/googleads/v11/errors/url_field_error.proto create mode 100644 google/ads/googleads/v11/errors/user_data_error.proto create mode 100644 google/ads/googleads/v11/errors/user_list_error.proto create mode 100644 google/ads/googleads/v11/errors/youtube_video_registration_error.proto create mode 100644 google/ads/googleads/v11/googleads_gapic.yaml create mode 100755 google/ads/googleads/v11/googleads_grpc_service_config.json create mode 100644 google/ads/googleads/v11/googleads_v11.yaml create mode 100644 google/ads/googleads/v11/resources/BUILD.bazel create mode 100644 google/ads/googleads/v11/resources/accessible_bidding_strategy.proto create mode 100644 google/ads/googleads/v11/resources/account_budget.proto create mode 100644 google/ads/googleads/v11/resources/account_budget_proposal.proto create mode 100644 google/ads/googleads/v11/resources/account_link.proto create mode 100644 google/ads/googleads/v11/resources/ad.proto create mode 100644 google/ads/googleads/v11/resources/ad_group.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_ad.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_ad_asset_combination_view.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_ad_asset_view.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_ad_label.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_asset.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_audience_view.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_bid_modifier.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_criterion.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_criterion_customizer.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_criterion_label.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_criterion_simulation.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_customizer.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_extension_setting.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_feed.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_label.proto create mode 100644 google/ads/googleads/v11/resources/ad_group_simulation.proto create mode 100644 google/ads/googleads/v11/resources/ad_parameter.proto create mode 100644 google/ads/googleads/v11/resources/ad_schedule_view.proto create mode 100644 google/ads/googleads/v11/resources/age_range_view.proto create mode 100644 google/ads/googleads/v11/resources/asset.proto create mode 100644 google/ads/googleads/v11/resources/asset_field_type_view.proto create mode 100644 google/ads/googleads/v11/resources/asset_group.proto create mode 100644 google/ads/googleads/v11/resources/asset_group_asset.proto create mode 100644 google/ads/googleads/v11/resources/asset_group_listing_group_filter.proto create mode 100644 google/ads/googleads/v11/resources/asset_group_product_group_view.proto create mode 100644 google/ads/googleads/v11/resources/asset_group_signal.proto create mode 100644 google/ads/googleads/v11/resources/asset_set.proto create mode 100644 google/ads/googleads/v11/resources/asset_set_asset.proto create mode 100644 google/ads/googleads/v11/resources/audience.proto create mode 100644 google/ads/googleads/v11/resources/batch_job.proto create mode 100644 google/ads/googleads/v11/resources/bidding_data_exclusion.proto create mode 100644 google/ads/googleads/v11/resources/bidding_seasonality_adjustment.proto create mode 100644 google/ads/googleads/v11/resources/bidding_strategy.proto create mode 100644 google/ads/googleads/v11/resources/bidding_strategy_simulation.proto create mode 100644 google/ads/googleads/v11/resources/billing_setup.proto create mode 100644 google/ads/googleads/v11/resources/call_view.proto create mode 100644 google/ads/googleads/v11/resources/campaign.proto create mode 100644 google/ads/googleads/v11/resources/campaign_asset.proto create mode 100644 google/ads/googleads/v11/resources/campaign_asset_set.proto create mode 100644 google/ads/googleads/v11/resources/campaign_audience_view.proto create mode 100644 google/ads/googleads/v11/resources/campaign_bid_modifier.proto create mode 100644 google/ads/googleads/v11/resources/campaign_budget.proto create mode 100644 google/ads/googleads/v11/resources/campaign_conversion_goal.proto create mode 100644 google/ads/googleads/v11/resources/campaign_criterion.proto create mode 100644 google/ads/googleads/v11/resources/campaign_criterion_simulation.proto create mode 100644 google/ads/googleads/v11/resources/campaign_customizer.proto create mode 100644 google/ads/googleads/v11/resources/campaign_draft.proto create mode 100644 google/ads/googleads/v11/resources/campaign_experiment.proto create mode 100644 google/ads/googleads/v11/resources/campaign_extension_setting.proto create mode 100644 google/ads/googleads/v11/resources/campaign_feed.proto create mode 100644 google/ads/googleads/v11/resources/campaign_group.proto create mode 100644 google/ads/googleads/v11/resources/campaign_label.proto create mode 100644 google/ads/googleads/v11/resources/campaign_shared_set.proto create mode 100644 google/ads/googleads/v11/resources/campaign_simulation.proto create mode 100644 google/ads/googleads/v11/resources/carrier_constant.proto create mode 100644 google/ads/googleads/v11/resources/change_event.proto create mode 100644 google/ads/googleads/v11/resources/change_status.proto create mode 100644 google/ads/googleads/v11/resources/click_view.proto create mode 100644 google/ads/googleads/v11/resources/combined_audience.proto create mode 100644 google/ads/googleads/v11/resources/conversion_action.proto create mode 100644 google/ads/googleads/v11/resources/conversion_custom_variable.proto create mode 100644 google/ads/googleads/v11/resources/conversion_goal_campaign_config.proto create mode 100644 google/ads/googleads/v11/resources/conversion_value_rule.proto create mode 100644 google/ads/googleads/v11/resources/conversion_value_rule_set.proto create mode 100644 google/ads/googleads/v11/resources/currency_constant.proto create mode 100644 google/ads/googleads/v11/resources/custom_audience.proto create mode 100644 google/ads/googleads/v11/resources/custom_conversion_goal.proto create mode 100644 google/ads/googleads/v11/resources/custom_interest.proto create mode 100644 google/ads/googleads/v11/resources/customer.proto create mode 100644 google/ads/googleads/v11/resources/customer_asset.proto create mode 100644 google/ads/googleads/v11/resources/customer_client.proto create mode 100644 google/ads/googleads/v11/resources/customer_client_link.proto create mode 100644 google/ads/googleads/v11/resources/customer_conversion_goal.proto create mode 100644 google/ads/googleads/v11/resources/customer_customizer.proto create mode 100644 google/ads/googleads/v11/resources/customer_extension_setting.proto create mode 100644 google/ads/googleads/v11/resources/customer_feed.proto create mode 100644 google/ads/googleads/v11/resources/customer_label.proto create mode 100644 google/ads/googleads/v11/resources/customer_manager_link.proto create mode 100644 google/ads/googleads/v11/resources/customer_negative_criterion.proto create mode 100644 google/ads/googleads/v11/resources/customer_user_access.proto create mode 100644 google/ads/googleads/v11/resources/customer_user_access_invitation.proto create mode 100644 google/ads/googleads/v11/resources/customizer_attribute.proto create mode 100644 google/ads/googleads/v11/resources/detail_placement_view.proto create mode 100644 google/ads/googleads/v11/resources/detailed_demographic.proto create mode 100644 google/ads/googleads/v11/resources/display_keyword_view.proto create mode 100644 google/ads/googleads/v11/resources/distance_view.proto create mode 100644 google/ads/googleads/v11/resources/domain_category.proto create mode 100644 google/ads/googleads/v11/resources/dynamic_search_ads_search_term_view.proto create mode 100644 google/ads/googleads/v11/resources/expanded_landing_page_view.proto create mode 100644 google/ads/googleads/v11/resources/experiment.proto create mode 100644 google/ads/googleads/v11/resources/experiment_arm.proto create mode 100644 google/ads/googleads/v11/resources/extension_feed_item.proto create mode 100644 google/ads/googleads/v11/resources/feed.proto create mode 100644 google/ads/googleads/v11/resources/feed_item.proto create mode 100644 google/ads/googleads/v11/resources/feed_item_set.proto create mode 100644 google/ads/googleads/v11/resources/feed_item_set_link.proto create mode 100644 google/ads/googleads/v11/resources/feed_item_target.proto create mode 100644 google/ads/googleads/v11/resources/feed_mapping.proto create mode 100644 google/ads/googleads/v11/resources/feed_placeholder_view.proto create mode 100644 google/ads/googleads/v11/resources/gender_view.proto create mode 100644 google/ads/googleads/v11/resources/geo_target_constant.proto create mode 100644 google/ads/googleads/v11/resources/geographic_view.proto create mode 100644 google/ads/googleads/v11/resources/google_ads_field.proto create mode 100644 google/ads/googleads/v11/resources/group_placement_view.proto create mode 100644 google/ads/googleads/v11/resources/hotel_group_view.proto create mode 100644 google/ads/googleads/v11/resources/hotel_performance_view.proto create mode 100644 google/ads/googleads/v11/resources/hotel_reconciliation.proto create mode 100644 google/ads/googleads/v11/resources/income_range_view.proto create mode 100644 google/ads/googleads/v11/resources/invoice.proto create mode 100644 google/ads/googleads/v11/resources/keyword_plan.proto create mode 100644 google/ads/googleads/v11/resources/keyword_plan_ad_group.proto create mode 100644 google/ads/googleads/v11/resources/keyword_plan_ad_group_keyword.proto create mode 100644 google/ads/googleads/v11/resources/keyword_plan_campaign.proto create mode 100644 google/ads/googleads/v11/resources/keyword_plan_campaign_keyword.proto create mode 100644 google/ads/googleads/v11/resources/keyword_theme_constant.proto create mode 100644 google/ads/googleads/v11/resources/keyword_view.proto create mode 100644 google/ads/googleads/v11/resources/label.proto create mode 100644 google/ads/googleads/v11/resources/landing_page_view.proto create mode 100644 google/ads/googleads/v11/resources/language_constant.proto create mode 100644 google/ads/googleads/v11/resources/lead_form_submission_data.proto create mode 100644 google/ads/googleads/v11/resources/life_event.proto create mode 100644 google/ads/googleads/v11/resources/location_view.proto create mode 100644 google/ads/googleads/v11/resources/managed_placement_view.proto create mode 100644 google/ads/googleads/v11/resources/media_file.proto create mode 100644 google/ads/googleads/v11/resources/merchant_center_link.proto create mode 100644 google/ads/googleads/v11/resources/mobile_app_category_constant.proto create mode 100644 google/ads/googleads/v11/resources/mobile_device_constant.proto create mode 100644 google/ads/googleads/v11/resources/offline_user_data_job.proto create mode 100644 google/ads/googleads/v11/resources/operating_system_version_constant.proto create mode 100644 google/ads/googleads/v11/resources/paid_organic_search_term_view.proto create mode 100644 google/ads/googleads/v11/resources/parental_status_view.proto create mode 100644 google/ads/googleads/v11/resources/payments_account.proto create mode 100644 google/ads/googleads/v11/resources/product_bidding_category_constant.proto create mode 100644 google/ads/googleads/v11/resources/product_group_view.proto create mode 100644 google/ads/googleads/v11/resources/recommendation.proto create mode 100644 google/ads/googleads/v11/resources/remarketing_action.proto create mode 100644 google/ads/googleads/v11/resources/search_term_view.proto create mode 100644 google/ads/googleads/v11/resources/shared_criterion.proto create mode 100644 google/ads/googleads/v11/resources/shared_set.proto create mode 100644 google/ads/googleads/v11/resources/shopping_performance_view.proto create mode 100644 google/ads/googleads/v11/resources/smart_campaign_search_term_view.proto create mode 100644 google/ads/googleads/v11/resources/smart_campaign_setting.proto create mode 100644 google/ads/googleads/v11/resources/third_party_app_analytics_link.proto create mode 100644 google/ads/googleads/v11/resources/topic_constant.proto create mode 100644 google/ads/googleads/v11/resources/topic_view.proto create mode 100644 google/ads/googleads/v11/resources/user_interest.proto create mode 100644 google/ads/googleads/v11/resources/user_list.proto create mode 100644 google/ads/googleads/v11/resources/user_location_view.proto create mode 100644 google/ads/googleads/v11/resources/video.proto create mode 100644 google/ads/googleads/v11/resources/webpage_view.proto create mode 100644 google/ads/googleads/v11/services/BUILD.bazel create mode 100644 google/ads/googleads/v11/services/account_budget_proposal_service.proto create mode 100644 google/ads/googleads/v11/services/account_link_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_ad_label_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_ad_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_asset_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_bid_modifier_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_criterion_customizer_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_criterion_label_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_criterion_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_customizer_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_extension_setting_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_feed_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_label_service.proto create mode 100644 google/ads/googleads/v11/services/ad_group_service.proto create mode 100644 google/ads/googleads/v11/services/ad_parameter_service.proto create mode 100644 google/ads/googleads/v11/services/ad_service.proto create mode 100644 google/ads/googleads/v11/services/asset_group_asset_service.proto create mode 100644 google/ads/googleads/v11/services/asset_group_listing_group_filter_service.proto create mode 100644 google/ads/googleads/v11/services/asset_group_service.proto create mode 100644 google/ads/googleads/v11/services/asset_group_signal_service.proto create mode 100644 google/ads/googleads/v11/services/asset_service.proto create mode 100644 google/ads/googleads/v11/services/asset_set_asset_service.proto create mode 100644 google/ads/googleads/v11/services/asset_set_service.proto create mode 100644 google/ads/googleads/v11/services/audience_insights_service.proto create mode 100644 google/ads/googleads/v11/services/audience_service.proto create mode 100644 google/ads/googleads/v11/services/batch_job_service.proto create mode 100644 google/ads/googleads/v11/services/bidding_data_exclusion_service.proto create mode 100644 google/ads/googleads/v11/services/bidding_seasonality_adjustment_service.proto create mode 100644 google/ads/googleads/v11/services/bidding_strategy_service.proto create mode 100644 google/ads/googleads/v11/services/billing_setup_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_asset_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_asset_set_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_bid_modifier_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_budget_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_conversion_goal_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_criterion_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_customizer_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_draft_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_experiment_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_extension_setting_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_feed_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_group_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_label_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_service.proto create mode 100644 google/ads/googleads/v11/services/campaign_shared_set_service.proto create mode 100644 google/ads/googleads/v11/services/conversion_action_service.proto create mode 100644 google/ads/googleads/v11/services/conversion_adjustment_upload_service.proto create mode 100644 google/ads/googleads/v11/services/conversion_custom_variable_service.proto create mode 100644 google/ads/googleads/v11/services/conversion_goal_campaign_config_service.proto create mode 100644 google/ads/googleads/v11/services/conversion_upload_service.proto create mode 100644 google/ads/googleads/v11/services/conversion_value_rule_service.proto create mode 100644 google/ads/googleads/v11/services/conversion_value_rule_set_service.proto create mode 100644 google/ads/googleads/v11/services/custom_audience_service.proto create mode 100644 google/ads/googleads/v11/services/custom_conversion_goal_service.proto create mode 100644 google/ads/googleads/v11/services/custom_interest_service.proto create mode 100644 google/ads/googleads/v11/services/customer_asset_service.proto create mode 100644 google/ads/googleads/v11/services/customer_client_link_service.proto create mode 100644 google/ads/googleads/v11/services/customer_conversion_goal_service.proto create mode 100644 google/ads/googleads/v11/services/customer_customizer_service.proto create mode 100644 google/ads/googleads/v11/services/customer_extension_setting_service.proto create mode 100644 google/ads/googleads/v11/services/customer_feed_service.proto create mode 100644 google/ads/googleads/v11/services/customer_label_service.proto create mode 100644 google/ads/googleads/v11/services/customer_manager_link_service.proto create mode 100644 google/ads/googleads/v11/services/customer_negative_criterion_service.proto create mode 100644 google/ads/googleads/v11/services/customer_service.proto create mode 100644 google/ads/googleads/v11/services/customer_user_access_invitation_service.proto create mode 100644 google/ads/googleads/v11/services/customer_user_access_service.proto create mode 100644 google/ads/googleads/v11/services/customizer_attribute_service.proto create mode 100644 google/ads/googleads/v11/services/experiment_arm_service.proto create mode 100644 google/ads/googleads/v11/services/experiment_service.proto create mode 100644 google/ads/googleads/v11/services/extension_feed_item_service.proto create mode 100644 google/ads/googleads/v11/services/feed_item_service.proto create mode 100644 google/ads/googleads/v11/services/feed_item_set_link_service.proto create mode 100644 google/ads/googleads/v11/services/feed_item_set_service.proto create mode 100644 google/ads/googleads/v11/services/feed_item_target_service.proto create mode 100644 google/ads/googleads/v11/services/feed_mapping_service.proto create mode 100644 google/ads/googleads/v11/services/feed_service.proto create mode 100644 google/ads/googleads/v11/services/geo_target_constant_service.proto create mode 100644 google/ads/googleads/v11/services/google_ads_field_service.proto create mode 100644 google/ads/googleads/v11/services/google_ads_service.proto create mode 100644 google/ads/googleads/v11/services/invoice_service.proto create mode 100644 google/ads/googleads/v11/services/keyword_plan_ad_group_keyword_service.proto create mode 100644 google/ads/googleads/v11/services/keyword_plan_ad_group_service.proto create mode 100644 google/ads/googleads/v11/services/keyword_plan_campaign_keyword_service.proto create mode 100644 google/ads/googleads/v11/services/keyword_plan_campaign_service.proto create mode 100644 google/ads/googleads/v11/services/keyword_plan_idea_service.proto create mode 100644 google/ads/googleads/v11/services/keyword_plan_service.proto create mode 100644 google/ads/googleads/v11/services/keyword_theme_constant_service.proto create mode 100644 google/ads/googleads/v11/services/label_service.proto create mode 100644 google/ads/googleads/v11/services/media_file_service.proto create mode 100644 google/ads/googleads/v11/services/merchant_center_link_service.proto create mode 100644 google/ads/googleads/v11/services/offline_user_data_job_service.proto create mode 100644 google/ads/googleads/v11/services/payments_account_service.proto create mode 100644 google/ads/googleads/v11/services/reach_plan_service.proto create mode 100644 google/ads/googleads/v11/services/recommendation_service.proto create mode 100644 google/ads/googleads/v11/services/remarketing_action_service.proto create mode 100644 google/ads/googleads/v11/services/shared_criterion_service.proto create mode 100644 google/ads/googleads/v11/services/shared_set_service.proto create mode 100644 google/ads/googleads/v11/services/smart_campaign_setting_service.proto create mode 100644 google/ads/googleads/v11/services/smart_campaign_suggest_service.proto create mode 100644 google/ads/googleads/v11/services/third_party_app_analytics_link_service.proto create mode 100644 google/ads/googleads/v11/services/user_data_service.proto create mode 100644 google/ads/googleads/v11/services/user_list_service.proto delete mode 100644 google/ads/googleads/v7/BUILD.bazel delete mode 100644 google/ads/googleads/v7/common/BUILD.bazel delete mode 100644 google/ads/googleads/v7/common/ad_asset.proto delete mode 100644 google/ads/googleads/v7/common/ad_type_infos.proto delete mode 100644 google/ads/googleads/v7/common/asset_policy.proto delete mode 100644 google/ads/googleads/v7/common/asset_types.proto delete mode 100644 google/ads/googleads/v7/common/bidding.proto delete mode 100644 google/ads/googleads/v7/common/click_location.proto delete mode 100644 google/ads/googleads/v7/common/criteria.proto delete mode 100644 google/ads/googleads/v7/common/criterion_category_availability.proto delete mode 100644 google/ads/googleads/v7/common/custom_parameter.proto delete mode 100644 google/ads/googleads/v7/common/dates.proto delete mode 100644 google/ads/googleads/v7/common/explorer_auto_optimizer_setting.proto delete mode 100644 google/ads/googleads/v7/common/extensions.proto delete mode 100644 google/ads/googleads/v7/common/feed_common.proto delete mode 100644 google/ads/googleads/v7/common/feed_item_set_filter_type_infos.proto delete mode 100644 google/ads/googleads/v7/common/final_app_url.proto delete mode 100644 google/ads/googleads/v7/common/frequency_cap.proto delete mode 100644 google/ads/googleads/v7/common/keyword_plan_common.proto delete mode 100644 google/ads/googleads/v7/common/matching_function.proto delete mode 100644 google/ads/googleads/v7/common/metrics.proto delete mode 100644 google/ads/googleads/v7/common/offline_user_data.proto delete mode 100644 google/ads/googleads/v7/common/policy.proto delete mode 100644 google/ads/googleads/v7/common/real_time_bidding_setting.proto delete mode 100644 google/ads/googleads/v7/common/segments.proto delete mode 100644 google/ads/googleads/v7/common/simulation.proto delete mode 100644 google/ads/googleads/v7/common/tag_snippet.proto delete mode 100644 google/ads/googleads/v7/common/targeting_setting.proto delete mode 100644 google/ads/googleads/v7/common/text_label.proto delete mode 100644 google/ads/googleads/v7/common/url_collection.proto delete mode 100644 google/ads/googleads/v7/common/user_lists.proto delete mode 100644 google/ads/googleads/v7/common/value.proto delete mode 100644 google/ads/googleads/v7/enums/BUILD.bazel delete mode 100644 google/ads/googleads/v7/enums/access_invitation_status.proto delete mode 100644 google/ads/googleads/v7/enums/access_reason.proto delete mode 100644 google/ads/googleads/v7/enums/access_role.proto delete mode 100644 google/ads/googleads/v7/enums/account_budget_proposal_status.proto delete mode 100644 google/ads/googleads/v7/enums/account_budget_proposal_type.proto delete mode 100644 google/ads/googleads/v7/enums/account_budget_status.proto delete mode 100644 google/ads/googleads/v7/enums/account_link_status.proto delete mode 100644 google/ads/googleads/v7/enums/ad_customizer_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/ad_destination_type.proto delete mode 100644 google/ads/googleads/v7/enums/ad_group_ad_rotation_mode.proto delete mode 100644 google/ads/googleads/v7/enums/ad_group_ad_status.proto delete mode 100644 google/ads/googleads/v7/enums/ad_group_criterion_approval_status.proto delete mode 100644 google/ads/googleads/v7/enums/ad_group_criterion_status.proto delete mode 100644 google/ads/googleads/v7/enums/ad_group_status.proto delete mode 100644 google/ads/googleads/v7/enums/ad_group_type.proto delete mode 100644 google/ads/googleads/v7/enums/ad_network_type.proto delete mode 100644 google/ads/googleads/v7/enums/ad_serving_optimization_status.proto delete mode 100644 google/ads/googleads/v7/enums/ad_strength.proto delete mode 100644 google/ads/googleads/v7/enums/ad_type.proto delete mode 100644 google/ads/googleads/v7/enums/advertising_channel_sub_type.proto delete mode 100644 google/ads/googleads/v7/enums/advertising_channel_type.proto delete mode 100644 google/ads/googleads/v7/enums/affiliate_location_feed_relationship_type.proto delete mode 100644 google/ads/googleads/v7/enums/affiliate_location_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/age_range_type.proto delete mode 100644 google/ads/googleads/v7/enums/app_campaign_app_store.proto delete mode 100644 google/ads/googleads/v7/enums/app_campaign_bidding_strategy_goal_type.proto delete mode 100644 google/ads/googleads/v7/enums/app_payment_model_type.proto delete mode 100644 google/ads/googleads/v7/enums/app_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/app_store.proto delete mode 100644 google/ads/googleads/v7/enums/app_url_operating_system_type.proto delete mode 100644 google/ads/googleads/v7/enums/asset_field_type.proto delete mode 100644 google/ads/googleads/v7/enums/asset_link_status.proto delete mode 100644 google/ads/googleads/v7/enums/asset_performance_label.proto delete mode 100644 google/ads/googleads/v7/enums/asset_type.proto delete mode 100644 google/ads/googleads/v7/enums/attribution_model.proto delete mode 100644 google/ads/googleads/v7/enums/batch_job_status.proto delete mode 100644 google/ads/googleads/v7/enums/bid_modifier_source.proto delete mode 100644 google/ads/googleads/v7/enums/bidding_source.proto delete mode 100644 google/ads/googleads/v7/enums/bidding_strategy_status.proto delete mode 100644 google/ads/googleads/v7/enums/bidding_strategy_type.proto delete mode 100644 google/ads/googleads/v7/enums/billing_setup_status.proto delete mode 100644 google/ads/googleads/v7/enums/brand_safety_suitability.proto delete mode 100644 google/ads/googleads/v7/enums/budget_campaign_association_status.proto delete mode 100644 google/ads/googleads/v7/enums/budget_delivery_method.proto delete mode 100644 google/ads/googleads/v7/enums/budget_period.proto delete mode 100644 google/ads/googleads/v7/enums/budget_status.proto delete mode 100644 google/ads/googleads/v7/enums/budget_type.proto delete mode 100644 google/ads/googleads/v7/enums/call_conversion_reporting_state.proto delete mode 100644 google/ads/googleads/v7/enums/call_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/call_tracking_display_location.proto delete mode 100644 google/ads/googleads/v7/enums/call_type.proto delete mode 100644 google/ads/googleads/v7/enums/callout_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/campaign_criterion_status.proto delete mode 100644 google/ads/googleads/v7/enums/campaign_draft_status.proto delete mode 100644 google/ads/googleads/v7/enums/campaign_experiment_status.proto delete mode 100644 google/ads/googleads/v7/enums/campaign_experiment_traffic_split_type.proto delete mode 100644 google/ads/googleads/v7/enums/campaign_experiment_type.proto delete mode 100644 google/ads/googleads/v7/enums/campaign_serving_status.proto delete mode 100644 google/ads/googleads/v7/enums/campaign_shared_set_status.proto delete mode 100644 google/ads/googleads/v7/enums/campaign_status.proto delete mode 100644 google/ads/googleads/v7/enums/change_client_type.proto delete mode 100644 google/ads/googleads/v7/enums/change_event_resource_type.proto delete mode 100644 google/ads/googleads/v7/enums/change_status_operation.proto delete mode 100644 google/ads/googleads/v7/enums/change_status_resource_type.proto delete mode 100644 google/ads/googleads/v7/enums/click_type.proto delete mode 100644 google/ads/googleads/v7/enums/combined_audience_status.proto delete mode 100644 google/ads/googleads/v7/enums/content_label_type.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_action_category.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_action_counting_type.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_action_status.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_action_type.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_adjustment_type.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_attribution_event_type.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_custom_variable_status.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_lag_bucket.proto delete mode 100644 google/ads/googleads/v7/enums/conversion_or_adjustment_lag_bucket.proto delete mode 100644 google/ads/googleads/v7/enums/criterion_category_channel_availability_mode.proto delete mode 100644 google/ads/googleads/v7/enums/criterion_category_locale_availability_mode.proto delete mode 100644 google/ads/googleads/v7/enums/criterion_system_serving_status.proto delete mode 100644 google/ads/googleads/v7/enums/criterion_type.proto delete mode 100644 google/ads/googleads/v7/enums/custom_audience_member_type.proto delete mode 100644 google/ads/googleads/v7/enums/custom_audience_status.proto delete mode 100644 google/ads/googleads/v7/enums/custom_audience_type.proto delete mode 100644 google/ads/googleads/v7/enums/custom_interest_member_type.proto delete mode 100644 google/ads/googleads/v7/enums/custom_interest_status.proto delete mode 100644 google/ads/googleads/v7/enums/custom_interest_type.proto delete mode 100644 google/ads/googleads/v7/enums/custom_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/customer_match_upload_key_type.proto delete mode 100644 google/ads/googleads/v7/enums/customer_pay_per_conversion_eligibility_failure_reason.proto delete mode 100644 google/ads/googleads/v7/enums/data_driven_model_status.proto delete mode 100644 google/ads/googleads/v7/enums/day_of_week.proto delete mode 100644 google/ads/googleads/v7/enums/device.proto delete mode 100644 google/ads/googleads/v7/enums/display_ad_format_setting.proto delete mode 100644 google/ads/googleads/v7/enums/display_upload_product_type.proto delete mode 100644 google/ads/googleads/v7/enums/distance_bucket.proto delete mode 100644 google/ads/googleads/v7/enums/dsa_page_feed_criterion_field.proto delete mode 100644 google/ads/googleads/v7/enums/education_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/extension_setting_device.proto delete mode 100644 google/ads/googleads/v7/enums/extension_type.proto delete mode 100644 google/ads/googleads/v7/enums/external_conversion_source.proto delete mode 100644 google/ads/googleads/v7/enums/feed_attribute_type.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_quality_approval_status.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_quality_disapproval_reason.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_set_status.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_set_string_filter_type.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_status.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_target_device.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_target_status.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_target_type.proto delete mode 100644 google/ads/googleads/v7/enums/feed_item_validation_status.proto delete mode 100644 google/ads/googleads/v7/enums/feed_link_status.proto delete mode 100644 google/ads/googleads/v7/enums/feed_mapping_criterion_type.proto delete mode 100644 google/ads/googleads/v7/enums/feed_mapping_status.proto delete mode 100644 google/ads/googleads/v7/enums/feed_origin.proto delete mode 100644 google/ads/googleads/v7/enums/feed_status.proto delete mode 100644 google/ads/googleads/v7/enums/flight_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/frequency_cap_event_type.proto delete mode 100644 google/ads/googleads/v7/enums/frequency_cap_level.proto delete mode 100644 google/ads/googleads/v7/enums/frequency_cap_time_unit.proto delete mode 100644 google/ads/googleads/v7/enums/gender_type.proto delete mode 100644 google/ads/googleads/v7/enums/geo_target_constant_status.proto delete mode 100644 google/ads/googleads/v7/enums/geo_targeting_restriction.proto delete mode 100644 google/ads/googleads/v7/enums/geo_targeting_type.proto delete mode 100644 google/ads/googleads/v7/enums/google_ads_field_category.proto delete mode 100644 google/ads/googleads/v7/enums/google_ads_field_data_type.proto delete mode 100644 google/ads/googleads/v7/enums/google_voice_call_status.proto delete mode 100644 google/ads/googleads/v7/enums/hotel_date_selection_type.proto delete mode 100644 google/ads/googleads/v7/enums/hotel_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/hotel_price_bucket.proto delete mode 100644 google/ads/googleads/v7/enums/hotel_rate_type.proto delete mode 100644 google/ads/googleads/v7/enums/image_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/income_range_type.proto delete mode 100644 google/ads/googleads/v7/enums/interaction_event_type.proto delete mode 100644 google/ads/googleads/v7/enums/interaction_type.proto delete mode 100644 google/ads/googleads/v7/enums/invoice_type.proto delete mode 100644 google/ads/googleads/v7/enums/job_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/keyword_match_type.proto delete mode 100644 google/ads/googleads/v7/enums/keyword_plan_aggregate_metric_type.proto delete mode 100644 google/ads/googleads/v7/enums/keyword_plan_competition_level.proto delete mode 100644 google/ads/googleads/v7/enums/keyword_plan_concept_group_type.proto delete mode 100644 google/ads/googleads/v7/enums/keyword_plan_forecast_interval.proto delete mode 100644 google/ads/googleads/v7/enums/keyword_plan_keyword_annotation.proto delete mode 100644 google/ads/googleads/v7/enums/keyword_plan_network.proto delete mode 100644 google/ads/googleads/v7/enums/label_status.proto delete mode 100644 google/ads/googleads/v7/enums/lead_form_call_to_action_type.proto delete mode 100644 google/ads/googleads/v7/enums/lead_form_desired_intent.proto delete mode 100644 google/ads/googleads/v7/enums/lead_form_field_user_input_type.proto delete mode 100644 google/ads/googleads/v7/enums/lead_form_post_submit_call_to_action_type.proto delete mode 100644 google/ads/googleads/v7/enums/legacy_app_install_ad_app_store.proto delete mode 100644 google/ads/googleads/v7/enums/linked_account_type.proto delete mode 100644 google/ads/googleads/v7/enums/listing_group_type.proto delete mode 100644 google/ads/googleads/v7/enums/local_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/location_extension_targeting_criterion_field.proto delete mode 100644 google/ads/googleads/v7/enums/location_group_radius_units.proto delete mode 100644 google/ads/googleads/v7/enums/location_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/location_source_type.proto delete mode 100644 google/ads/googleads/v7/enums/manager_link_status.proto delete mode 100644 google/ads/googleads/v7/enums/matching_function_context_type.proto delete mode 100644 google/ads/googleads/v7/enums/matching_function_operator.proto delete mode 100644 google/ads/googleads/v7/enums/media_type.proto delete mode 100644 google/ads/googleads/v7/enums/merchant_center_link_status.proto delete mode 100644 google/ads/googleads/v7/enums/message_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/mime_type.proto delete mode 100644 google/ads/googleads/v7/enums/minute_of_hour.proto delete mode 100644 google/ads/googleads/v7/enums/mobile_app_vendor.proto delete mode 100644 google/ads/googleads/v7/enums/mobile_device_type.proto delete mode 100644 google/ads/googleads/v7/enums/month_of_year.proto delete mode 100644 google/ads/googleads/v7/enums/negative_geo_target_type.proto delete mode 100644 google/ads/googleads/v7/enums/offline_user_data_job_failure_reason.proto delete mode 100644 google/ads/googleads/v7/enums/offline_user_data_job_status.proto delete mode 100644 google/ads/googleads/v7/enums/offline_user_data_job_type.proto delete mode 100644 google/ads/googleads/v7/enums/operating_system_version_operator_type.proto delete mode 100644 google/ads/googleads/v7/enums/optimization_goal_type.proto delete mode 100644 google/ads/googleads/v7/enums/parental_status_type.proto delete mode 100644 google/ads/googleads/v7/enums/payment_mode.proto delete mode 100644 google/ads/googleads/v7/enums/placeholder_type.proto delete mode 100644 google/ads/googleads/v7/enums/placement_type.proto delete mode 100644 google/ads/googleads/v7/enums/policy_approval_status.proto delete mode 100644 google/ads/googleads/v7/enums/policy_review_status.proto delete mode 100644 google/ads/googleads/v7/enums/policy_topic_entry_type.proto delete mode 100644 google/ads/googleads/v7/enums/policy_topic_evidence_destination_mismatch_url_type.proto delete mode 100644 google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_device.proto delete mode 100644 google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto delete mode 100644 google/ads/googleads/v7/enums/positive_geo_target_type.proto delete mode 100644 google/ads/googleads/v7/enums/preferred_content_type.proto delete mode 100644 google/ads/googleads/v7/enums/price_extension_price_qualifier.proto delete mode 100644 google/ads/googleads/v7/enums/price_extension_price_unit.proto delete mode 100644 google/ads/googleads/v7/enums/price_extension_type.proto delete mode 100644 google/ads/googleads/v7/enums/price_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/product_bidding_category_level.proto delete mode 100644 google/ads/googleads/v7/enums/product_bidding_category_status.proto delete mode 100644 google/ads/googleads/v7/enums/product_channel.proto delete mode 100644 google/ads/googleads/v7/enums/product_channel_exclusivity.proto delete mode 100644 google/ads/googleads/v7/enums/product_condition.proto delete mode 100644 google/ads/googleads/v7/enums/product_custom_attribute_index.proto delete mode 100644 google/ads/googleads/v7/enums/product_type_level.proto delete mode 100644 google/ads/googleads/v7/enums/promotion_extension_discount_modifier.proto delete mode 100644 google/ads/googleads/v7/enums/promotion_extension_occasion.proto delete mode 100644 google/ads/googleads/v7/enums/promotion_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/proximity_radius_units.proto delete mode 100644 google/ads/googleads/v7/enums/quality_score_bucket.proto delete mode 100644 google/ads/googleads/v7/enums/reach_plan_ad_length.proto delete mode 100644 google/ads/googleads/v7/enums/reach_plan_age_range.proto delete mode 100644 google/ads/googleads/v7/enums/reach_plan_network.proto delete mode 100644 google/ads/googleads/v7/enums/real_estate_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/recommendation_type.proto delete mode 100644 google/ads/googleads/v7/enums/resource_change_operation.proto delete mode 100644 google/ads/googleads/v7/enums/resource_limit_type.proto delete mode 100644 google/ads/googleads/v7/enums/response_content_type.proto delete mode 100644 google/ads/googleads/v7/enums/search_engine_results_page_type.proto delete mode 100644 google/ads/googleads/v7/enums/search_term_match_type.proto delete mode 100644 google/ads/googleads/v7/enums/search_term_targeting_status.proto delete mode 100644 google/ads/googleads/v7/enums/served_asset_field_type.proto delete mode 100644 google/ads/googleads/v7/enums/shared_set_status.proto delete mode 100644 google/ads/googleads/v7/enums/shared_set_type.proto delete mode 100644 google/ads/googleads/v7/enums/simulation_modification_method.proto delete mode 100644 google/ads/googleads/v7/enums/simulation_type.proto delete mode 100644 google/ads/googleads/v7/enums/sitelink_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/slot.proto delete mode 100644 google/ads/googleads/v7/enums/spending_limit_type.proto delete mode 100644 google/ads/googleads/v7/enums/structured_snippet_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/summary_row_setting.proto delete mode 100644 google/ads/googleads/v7/enums/system_managed_entity_source.proto delete mode 100644 google/ads/googleads/v7/enums/target_cpa_opt_in_recommendation_goal.proto delete mode 100644 google/ads/googleads/v7/enums/target_impression_share_location.proto delete mode 100644 google/ads/googleads/v7/enums/targeting_dimension.proto delete mode 100644 google/ads/googleads/v7/enums/time_type.proto delete mode 100644 google/ads/googleads/v7/enums/tracking_code_page_format.proto delete mode 100644 google/ads/googleads/v7/enums/tracking_code_type.proto delete mode 100644 google/ads/googleads/v7/enums/travel_placeholder_field.proto delete mode 100644 google/ads/googleads/v7/enums/user_identifier_source.proto delete mode 100644 google/ads/googleads/v7/enums/user_interest_taxonomy_type.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_access_status.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_closing_reason.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_combined_rule_operator.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_crm_data_source_type.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_date_rule_item_operator.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_logical_rule_operator.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_membership_status.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_number_rule_item_operator.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_prepopulation_status.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_rule_type.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_size_range.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_string_rule_item_operator.proto delete mode 100644 google/ads/googleads/v7/enums/user_list_type.proto delete mode 100644 google/ads/googleads/v7/enums/vanity_pharma_display_url_mode.proto delete mode 100644 google/ads/googleads/v7/enums/vanity_pharma_text.proto delete mode 100644 google/ads/googleads/v7/enums/webpage_condition_operand.proto delete mode 100644 google/ads/googleads/v7/enums/webpage_condition_operator.proto delete mode 100644 google/ads/googleads/v7/errors/BUILD.bazel delete mode 100644 google/ads/googleads/v7/errors/access_invitation_error.proto delete mode 100644 google/ads/googleads/v7/errors/account_budget_proposal_error.proto delete mode 100644 google/ads/googleads/v7/errors/account_link_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_customizer_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_group_ad_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_group_bid_modifier_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_group_criterion_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_group_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_group_feed_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_parameter_error.proto delete mode 100644 google/ads/googleads/v7/errors/ad_sharing_error.proto delete mode 100644 google/ads/googleads/v7/errors/adx_error.proto delete mode 100644 google/ads/googleads/v7/errors/asset_error.proto delete mode 100644 google/ads/googleads/v7/errors/asset_link_error.proto delete mode 100644 google/ads/googleads/v7/errors/authentication_error.proto delete mode 100644 google/ads/googleads/v7/errors/authorization_error.proto delete mode 100644 google/ads/googleads/v7/errors/batch_job_error.proto delete mode 100644 google/ads/googleads/v7/errors/bidding_error.proto delete mode 100644 google/ads/googleads/v7/errors/bidding_strategy_error.proto delete mode 100644 google/ads/googleads/v7/errors/billing_setup_error.proto delete mode 100644 google/ads/googleads/v7/errors/campaign_budget_error.proto delete mode 100644 google/ads/googleads/v7/errors/campaign_criterion_error.proto delete mode 100644 google/ads/googleads/v7/errors/campaign_draft_error.proto delete mode 100644 google/ads/googleads/v7/errors/campaign_error.proto delete mode 100644 google/ads/googleads/v7/errors/campaign_experiment_error.proto delete mode 100644 google/ads/googleads/v7/errors/campaign_feed_error.proto delete mode 100644 google/ads/googleads/v7/errors/campaign_shared_set_error.proto delete mode 100644 google/ads/googleads/v7/errors/change_event_error.proto delete mode 100644 google/ads/googleads/v7/errors/change_status_error.proto delete mode 100644 google/ads/googleads/v7/errors/collection_size_error.proto delete mode 100644 google/ads/googleads/v7/errors/context_error.proto delete mode 100644 google/ads/googleads/v7/errors/conversion_action_error.proto delete mode 100644 google/ads/googleads/v7/errors/conversion_adjustment_upload_error.proto delete mode 100644 google/ads/googleads/v7/errors/conversion_custom_variable_error.proto delete mode 100644 google/ads/googleads/v7/errors/conversion_upload_error.proto delete mode 100644 google/ads/googleads/v7/errors/country_code_error.proto delete mode 100644 google/ads/googleads/v7/errors/criterion_error.proto delete mode 100644 google/ads/googleads/v7/errors/currency_code_error.proto delete mode 100644 google/ads/googleads/v7/errors/custom_audience_error.proto delete mode 100644 google/ads/googleads/v7/errors/custom_interest_error.proto delete mode 100644 google/ads/googleads/v7/errors/customer_client_link_error.proto delete mode 100644 google/ads/googleads/v7/errors/customer_error.proto delete mode 100644 google/ads/googleads/v7/errors/customer_feed_error.proto delete mode 100644 google/ads/googleads/v7/errors/customer_manager_link_error.proto delete mode 100644 google/ads/googleads/v7/errors/customer_user_access_error.proto delete mode 100644 google/ads/googleads/v7/errors/database_error.proto delete mode 100644 google/ads/googleads/v7/errors/date_error.proto delete mode 100644 google/ads/googleads/v7/errors/date_range_error.proto delete mode 100644 google/ads/googleads/v7/errors/distinct_error.proto delete mode 100644 google/ads/googleads/v7/errors/enum_error.proto delete mode 100644 google/ads/googleads/v7/errors/errors.proto delete mode 100644 google/ads/googleads/v7/errors/extension_feed_item_error.proto delete mode 100644 google/ads/googleads/v7/errors/extension_setting_error.proto delete mode 100644 google/ads/googleads/v7/errors/feed_attribute_reference_error.proto delete mode 100644 google/ads/googleads/v7/errors/feed_error.proto delete mode 100644 google/ads/googleads/v7/errors/feed_item_error.proto delete mode 100644 google/ads/googleads/v7/errors/feed_item_set_error.proto delete mode 100644 google/ads/googleads/v7/errors/feed_item_set_link_error.proto delete mode 100644 google/ads/googleads/v7/errors/feed_item_target_error.proto delete mode 100644 google/ads/googleads/v7/errors/feed_item_validation_error.proto delete mode 100644 google/ads/googleads/v7/errors/feed_mapping_error.proto delete mode 100644 google/ads/googleads/v7/errors/field_error.proto delete mode 100644 google/ads/googleads/v7/errors/field_mask_error.proto delete mode 100644 google/ads/googleads/v7/errors/function_error.proto delete mode 100644 google/ads/googleads/v7/errors/function_parsing_error.proto delete mode 100644 google/ads/googleads/v7/errors/geo_target_constant_suggestion_error.proto delete mode 100644 google/ads/googleads/v7/errors/header_error.proto delete mode 100644 google/ads/googleads/v7/errors/id_error.proto delete mode 100644 google/ads/googleads/v7/errors/image_error.proto delete mode 100644 google/ads/googleads/v7/errors/internal_error.proto delete mode 100644 google/ads/googleads/v7/errors/invoice_error.proto delete mode 100644 google/ads/googleads/v7/errors/keyword_plan_ad_group_error.proto delete mode 100644 google/ads/googleads/v7/errors/keyword_plan_ad_group_keyword_error.proto delete mode 100644 google/ads/googleads/v7/errors/keyword_plan_campaign_error.proto delete mode 100644 google/ads/googleads/v7/errors/keyword_plan_campaign_keyword_error.proto delete mode 100644 google/ads/googleads/v7/errors/keyword_plan_error.proto delete mode 100644 google/ads/googleads/v7/errors/keyword_plan_idea_error.proto delete mode 100644 google/ads/googleads/v7/errors/label_error.proto delete mode 100644 google/ads/googleads/v7/errors/language_code_error.proto delete mode 100644 google/ads/googleads/v7/errors/list_operation_error.proto delete mode 100644 google/ads/googleads/v7/errors/manager_link_error.proto delete mode 100644 google/ads/googleads/v7/errors/media_bundle_error.proto delete mode 100644 google/ads/googleads/v7/errors/media_file_error.proto delete mode 100644 google/ads/googleads/v7/errors/media_upload_error.proto delete mode 100644 google/ads/googleads/v7/errors/multiplier_error.proto delete mode 100644 google/ads/googleads/v7/errors/mutate_error.proto delete mode 100644 google/ads/googleads/v7/errors/new_resource_creation_error.proto delete mode 100644 google/ads/googleads/v7/errors/not_allowlisted_error.proto delete mode 100644 google/ads/googleads/v7/errors/not_empty_error.proto delete mode 100644 google/ads/googleads/v7/errors/null_error.proto delete mode 100644 google/ads/googleads/v7/errors/offline_user_data_job_error.proto delete mode 100644 google/ads/googleads/v7/errors/operation_access_denied_error.proto delete mode 100644 google/ads/googleads/v7/errors/operator_error.proto delete mode 100644 google/ads/googleads/v7/errors/partial_failure_error.proto delete mode 100644 google/ads/googleads/v7/errors/payments_account_error.proto delete mode 100644 google/ads/googleads/v7/errors/policy_finding_error.proto delete mode 100644 google/ads/googleads/v7/errors/policy_validation_parameter_error.proto delete mode 100644 google/ads/googleads/v7/errors/policy_violation_error.proto delete mode 100644 google/ads/googleads/v7/errors/query_error.proto delete mode 100644 google/ads/googleads/v7/errors/quota_error.proto delete mode 100644 google/ads/googleads/v7/errors/range_error.proto delete mode 100644 google/ads/googleads/v7/errors/reach_plan_error.proto delete mode 100644 google/ads/googleads/v7/errors/recommendation_error.proto delete mode 100644 google/ads/googleads/v7/errors/region_code_error.proto delete mode 100644 google/ads/googleads/v7/errors/request_error.proto delete mode 100644 google/ads/googleads/v7/errors/resource_access_denied_error.proto delete mode 100644 google/ads/googleads/v7/errors/resource_count_limit_exceeded_error.proto delete mode 100644 google/ads/googleads/v7/errors/setting_error.proto delete mode 100644 google/ads/googleads/v7/errors/shared_criterion_error.proto delete mode 100644 google/ads/googleads/v7/errors/shared_set_error.proto delete mode 100644 google/ads/googleads/v7/errors/size_limit_error.proto delete mode 100644 google/ads/googleads/v7/errors/string_format_error.proto delete mode 100644 google/ads/googleads/v7/errors/string_length_error.proto delete mode 100644 google/ads/googleads/v7/errors/third_party_app_analytics_link_error.proto delete mode 100644 google/ads/googleads/v7/errors/time_zone_error.proto delete mode 100644 google/ads/googleads/v7/errors/url_field_error.proto delete mode 100644 google/ads/googleads/v7/errors/user_data_error.proto delete mode 100644 google/ads/googleads/v7/errors/user_list_error.proto delete mode 100644 google/ads/googleads/v7/errors/youtube_video_registration_error.proto delete mode 100644 google/ads/googleads/v7/googleads_gapic.yaml delete mode 100644 google/ads/googleads/v7/googleads_grpc_service_config.json delete mode 100644 google/ads/googleads/v7/googleads_v7.yaml delete mode 100644 google/ads/googleads/v7/resources/BUILD.bazel delete mode 100644 google/ads/googleads/v7/resources/account_budget.proto delete mode 100644 google/ads/googleads/v7/resources/account_budget_proposal.proto delete mode 100644 google/ads/googleads/v7/resources/account_link.proto delete mode 100644 google/ads/googleads/v7/resources/ad.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_ad.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_ad_asset_view.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_ad_label.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_asset.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_audience_view.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_bid_modifier.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_criterion.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_criterion_label.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_criterion_simulation.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_extension_setting.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_feed.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_label.proto delete mode 100644 google/ads/googleads/v7/resources/ad_group_simulation.proto delete mode 100644 google/ads/googleads/v7/resources/ad_parameter.proto delete mode 100644 google/ads/googleads/v7/resources/ad_schedule_view.proto delete mode 100644 google/ads/googleads/v7/resources/age_range_view.proto delete mode 100644 google/ads/googleads/v7/resources/asset.proto delete mode 100644 google/ads/googleads/v7/resources/batch_job.proto delete mode 100644 google/ads/googleads/v7/resources/bidding_strategy.proto delete mode 100644 google/ads/googleads/v7/resources/bidding_strategy_simulation.proto delete mode 100644 google/ads/googleads/v7/resources/billing_setup.proto delete mode 100644 google/ads/googleads/v7/resources/call_view.proto delete mode 100644 google/ads/googleads/v7/resources/campaign.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_asset.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_audience_view.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_bid_modifier.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_budget.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_criterion.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_criterion_simulation.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_draft.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_experiment.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_extension_setting.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_feed.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_label.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_shared_set.proto delete mode 100644 google/ads/googleads/v7/resources/campaign_simulation.proto delete mode 100644 google/ads/googleads/v7/resources/carrier_constant.proto delete mode 100644 google/ads/googleads/v7/resources/change_event.proto delete mode 100644 google/ads/googleads/v7/resources/change_status.proto delete mode 100644 google/ads/googleads/v7/resources/click_view.proto delete mode 100644 google/ads/googleads/v7/resources/combined_audience.proto delete mode 100644 google/ads/googleads/v7/resources/conversion_action.proto delete mode 100644 google/ads/googleads/v7/resources/conversion_custom_variable.proto delete mode 100644 google/ads/googleads/v7/resources/currency_constant.proto delete mode 100644 google/ads/googleads/v7/resources/custom_audience.proto delete mode 100644 google/ads/googleads/v7/resources/custom_interest.proto delete mode 100644 google/ads/googleads/v7/resources/customer.proto delete mode 100644 google/ads/googleads/v7/resources/customer_asset.proto delete mode 100644 google/ads/googleads/v7/resources/customer_client.proto delete mode 100644 google/ads/googleads/v7/resources/customer_client_link.proto delete mode 100644 google/ads/googleads/v7/resources/customer_extension_setting.proto delete mode 100644 google/ads/googleads/v7/resources/customer_feed.proto delete mode 100644 google/ads/googleads/v7/resources/customer_label.proto delete mode 100644 google/ads/googleads/v7/resources/customer_manager_link.proto delete mode 100644 google/ads/googleads/v7/resources/customer_negative_criterion.proto delete mode 100644 google/ads/googleads/v7/resources/customer_user_access.proto delete mode 100644 google/ads/googleads/v7/resources/customer_user_access_invitation.proto delete mode 100644 google/ads/googleads/v7/resources/detail_placement_view.proto delete mode 100644 google/ads/googleads/v7/resources/display_keyword_view.proto delete mode 100644 google/ads/googleads/v7/resources/distance_view.proto delete mode 100644 google/ads/googleads/v7/resources/domain_category.proto delete mode 100644 google/ads/googleads/v7/resources/dynamic_search_ads_search_term_view.proto delete mode 100644 google/ads/googleads/v7/resources/expanded_landing_page_view.proto delete mode 100644 google/ads/googleads/v7/resources/extension_feed_item.proto delete mode 100644 google/ads/googleads/v7/resources/feed.proto delete mode 100644 google/ads/googleads/v7/resources/feed_item.proto delete mode 100644 google/ads/googleads/v7/resources/feed_item_set.proto delete mode 100644 google/ads/googleads/v7/resources/feed_item_set_link.proto delete mode 100644 google/ads/googleads/v7/resources/feed_item_target.proto delete mode 100644 google/ads/googleads/v7/resources/feed_mapping.proto delete mode 100644 google/ads/googleads/v7/resources/feed_placeholder_view.proto delete mode 100644 google/ads/googleads/v7/resources/gender_view.proto delete mode 100644 google/ads/googleads/v7/resources/geo_target_constant.proto delete mode 100644 google/ads/googleads/v7/resources/geographic_view.proto delete mode 100644 google/ads/googleads/v7/resources/google_ads_field.proto delete mode 100644 google/ads/googleads/v7/resources/group_placement_view.proto delete mode 100644 google/ads/googleads/v7/resources/hotel_group_view.proto delete mode 100644 google/ads/googleads/v7/resources/hotel_performance_view.proto delete mode 100644 google/ads/googleads/v7/resources/income_range_view.proto delete mode 100644 google/ads/googleads/v7/resources/invoice.proto delete mode 100644 google/ads/googleads/v7/resources/keyword_plan.proto delete mode 100644 google/ads/googleads/v7/resources/keyword_plan_ad_group.proto delete mode 100644 google/ads/googleads/v7/resources/keyword_plan_ad_group_keyword.proto delete mode 100644 google/ads/googleads/v7/resources/keyword_plan_campaign.proto delete mode 100644 google/ads/googleads/v7/resources/keyword_plan_campaign_keyword.proto delete mode 100644 google/ads/googleads/v7/resources/keyword_view.proto delete mode 100644 google/ads/googleads/v7/resources/label.proto delete mode 100644 google/ads/googleads/v7/resources/landing_page_view.proto delete mode 100644 google/ads/googleads/v7/resources/language_constant.proto delete mode 100644 google/ads/googleads/v7/resources/life_event.proto delete mode 100644 google/ads/googleads/v7/resources/location_view.proto delete mode 100644 google/ads/googleads/v7/resources/managed_placement_view.proto delete mode 100644 google/ads/googleads/v7/resources/media_file.proto delete mode 100644 google/ads/googleads/v7/resources/merchant_center_link.proto delete mode 100644 google/ads/googleads/v7/resources/mobile_app_category_constant.proto delete mode 100644 google/ads/googleads/v7/resources/mobile_device_constant.proto delete mode 100644 google/ads/googleads/v7/resources/offline_user_data_job.proto delete mode 100644 google/ads/googleads/v7/resources/operating_system_version_constant.proto delete mode 100644 google/ads/googleads/v7/resources/paid_organic_search_term_view.proto delete mode 100644 google/ads/googleads/v7/resources/parental_status_view.proto delete mode 100644 google/ads/googleads/v7/resources/payments_account.proto delete mode 100644 google/ads/googleads/v7/resources/product_bidding_category_constant.proto delete mode 100644 google/ads/googleads/v7/resources/product_group_view.proto delete mode 100644 google/ads/googleads/v7/resources/recommendation.proto delete mode 100644 google/ads/googleads/v7/resources/remarketing_action.proto delete mode 100644 google/ads/googleads/v7/resources/search_term_view.proto delete mode 100644 google/ads/googleads/v7/resources/shared_criterion.proto delete mode 100644 google/ads/googleads/v7/resources/shared_set.proto delete mode 100644 google/ads/googleads/v7/resources/shopping_performance_view.proto delete mode 100644 google/ads/googleads/v7/resources/third_party_app_analytics_link.proto delete mode 100644 google/ads/googleads/v7/resources/topic_constant.proto delete mode 100644 google/ads/googleads/v7/resources/topic_view.proto delete mode 100644 google/ads/googleads/v7/resources/user_interest.proto delete mode 100644 google/ads/googleads/v7/resources/user_list.proto delete mode 100644 google/ads/googleads/v7/resources/user_location_view.proto delete mode 100644 google/ads/googleads/v7/resources/video.proto delete mode 100644 google/ads/googleads/v7/resources/webpage_view.proto delete mode 100644 google/ads/googleads/v7/services/BUILD.bazel delete mode 100644 google/ads/googleads/v7/services/account_budget_proposal_service.proto delete mode 100644 google/ads/googleads/v7/services/account_budget_service.proto delete mode 100644 google/ads/googleads/v7/services/account_link_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_ad_asset_view_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_ad_label_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_ad_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_asset_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_audience_view_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_bid_modifier_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_criterion_label_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_criterion_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_criterion_simulation_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_extension_setting_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_feed_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_label_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_group_simulation_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_parameter_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_schedule_view_service.proto delete mode 100644 google/ads/googleads/v7/services/ad_service.proto delete mode 100644 google/ads/googleads/v7/services/age_range_view_service.proto delete mode 100644 google/ads/googleads/v7/services/asset_service.proto delete mode 100644 google/ads/googleads/v7/services/batch_job_service.proto delete mode 100644 google/ads/googleads/v7/services/bidding_strategy_service.proto delete mode 100644 google/ads/googleads/v7/services/bidding_strategy_simulation_service.proto delete mode 100644 google/ads/googleads/v7/services/billing_setup_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_asset_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_audience_view_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_bid_modifier_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_budget_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_criterion_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_criterion_simulation_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_draft_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_experiment_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_extension_setting_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_feed_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_label_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_shared_set_service.proto delete mode 100644 google/ads/googleads/v7/services/campaign_simulation_service.proto delete mode 100644 google/ads/googleads/v7/services/carrier_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/change_status_service.proto delete mode 100644 google/ads/googleads/v7/services/click_view_service.proto delete mode 100644 google/ads/googleads/v7/services/combined_audience_service.proto delete mode 100644 google/ads/googleads/v7/services/conversion_action_service.proto delete mode 100644 google/ads/googleads/v7/services/conversion_adjustment_upload_service.proto delete mode 100644 google/ads/googleads/v7/services/conversion_custom_variable_service.proto delete mode 100644 google/ads/googleads/v7/services/conversion_upload_service.proto delete mode 100644 google/ads/googleads/v7/services/currency_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/custom_audience_service.proto delete mode 100644 google/ads/googleads/v7/services/custom_interest_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_asset_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_client_link_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_client_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_extension_setting_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_feed_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_label_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_manager_link_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_negative_criterion_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_user_access_invitation_service.proto delete mode 100644 google/ads/googleads/v7/services/customer_user_access_service.proto delete mode 100644 google/ads/googleads/v7/services/detail_placement_view_service.proto delete mode 100644 google/ads/googleads/v7/services/display_keyword_view_service.proto delete mode 100644 google/ads/googleads/v7/services/distance_view_service.proto delete mode 100644 google/ads/googleads/v7/services/domain_category_service.proto delete mode 100644 google/ads/googleads/v7/services/dynamic_search_ads_search_term_view_service.proto delete mode 100644 google/ads/googleads/v7/services/expanded_landing_page_view_service.proto delete mode 100644 google/ads/googleads/v7/services/extension_feed_item_service.proto delete mode 100644 google/ads/googleads/v7/services/feed_item_service.proto delete mode 100644 google/ads/googleads/v7/services/feed_item_set_link_service.proto delete mode 100644 google/ads/googleads/v7/services/feed_item_set_service.proto delete mode 100644 google/ads/googleads/v7/services/feed_item_target_service.proto delete mode 100644 google/ads/googleads/v7/services/feed_mapping_service.proto delete mode 100644 google/ads/googleads/v7/services/feed_placeholder_view_service.proto delete mode 100644 google/ads/googleads/v7/services/feed_service.proto delete mode 100644 google/ads/googleads/v7/services/gender_view_service.proto delete mode 100644 google/ads/googleads/v7/services/geo_target_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/geographic_view_service.proto delete mode 100644 google/ads/googleads/v7/services/google_ads_field_service.proto delete mode 100644 google/ads/googleads/v7/services/google_ads_service.proto delete mode 100644 google/ads/googleads/v7/services/group_placement_view_service.proto delete mode 100644 google/ads/googleads/v7/services/hotel_group_view_service.proto delete mode 100644 google/ads/googleads/v7/services/hotel_performance_view_service.proto delete mode 100644 google/ads/googleads/v7/services/income_range_view_service.proto delete mode 100644 google/ads/googleads/v7/services/invoice_service.proto delete mode 100644 google/ads/googleads/v7/services/keyword_plan_ad_group_keyword_service.proto delete mode 100644 google/ads/googleads/v7/services/keyword_plan_ad_group_service.proto delete mode 100644 google/ads/googleads/v7/services/keyword_plan_campaign_keyword_service.proto delete mode 100644 google/ads/googleads/v7/services/keyword_plan_campaign_service.proto delete mode 100644 google/ads/googleads/v7/services/keyword_plan_idea_service.proto delete mode 100644 google/ads/googleads/v7/services/keyword_plan_service.proto delete mode 100644 google/ads/googleads/v7/services/keyword_view_service.proto delete mode 100644 google/ads/googleads/v7/services/label_service.proto delete mode 100644 google/ads/googleads/v7/services/landing_page_view_service.proto delete mode 100644 google/ads/googleads/v7/services/language_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/life_event_service.proto delete mode 100644 google/ads/googleads/v7/services/location_view_service.proto delete mode 100644 google/ads/googleads/v7/services/managed_placement_view_service.proto delete mode 100644 google/ads/googleads/v7/services/media_file_service.proto delete mode 100644 google/ads/googleads/v7/services/merchant_center_link_service.proto delete mode 100644 google/ads/googleads/v7/services/mobile_app_category_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/mobile_device_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/offline_user_data_job_service.proto delete mode 100644 google/ads/googleads/v7/services/operating_system_version_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/paid_organic_search_term_view_service.proto delete mode 100644 google/ads/googleads/v7/services/parental_status_view_service.proto delete mode 100644 google/ads/googleads/v7/services/payments_account_service.proto delete mode 100644 google/ads/googleads/v7/services/product_bidding_category_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/product_group_view_service.proto delete mode 100644 google/ads/googleads/v7/services/reach_plan_service.proto delete mode 100644 google/ads/googleads/v7/services/recommendation_service.proto delete mode 100644 google/ads/googleads/v7/services/remarketing_action_service.proto delete mode 100644 google/ads/googleads/v7/services/search_term_view_service.proto delete mode 100644 google/ads/googleads/v7/services/shared_criterion_service.proto delete mode 100644 google/ads/googleads/v7/services/shared_set_service.proto delete mode 100644 google/ads/googleads/v7/services/shopping_performance_view_service.proto delete mode 100644 google/ads/googleads/v7/services/third_party_app_analytics_link_service.proto delete mode 100644 google/ads/googleads/v7/services/topic_constant_service.proto delete mode 100644 google/ads/googleads/v7/services/topic_view_service.proto delete mode 100644 google/ads/googleads/v7/services/user_data_service.proto delete mode 100644 google/ads/googleads/v7/services/user_interest_service.proto delete mode 100644 google/ads/googleads/v7/services/user_list_service.proto delete mode 100644 google/ads/googleads/v7/services/user_location_view_service.proto delete mode 100644 google/ads/googleads/v7/services/video_service.proto delete mode 100644 google/ads/googleads/v7/services/webpage_view_service.proto delete mode 100644 google/ads/googleads/v8/BUILD.bazel delete mode 100644 google/ads/googleads/v8/common/BUILD.bazel delete mode 100644 google/ads/googleads/v8/common/ad_asset.proto delete mode 100644 google/ads/googleads/v8/common/ad_type_infos.proto delete mode 100644 google/ads/googleads/v8/common/asset_policy.proto delete mode 100644 google/ads/googleads/v8/common/asset_types.proto delete mode 100644 google/ads/googleads/v8/common/bidding.proto delete mode 100644 google/ads/googleads/v8/common/click_location.proto delete mode 100644 google/ads/googleads/v8/common/criteria.proto delete mode 100644 google/ads/googleads/v8/common/criterion_category_availability.proto delete mode 100644 google/ads/googleads/v8/common/custom_parameter.proto delete mode 100644 google/ads/googleads/v8/common/dates.proto delete mode 100644 google/ads/googleads/v8/common/explorer_auto_optimizer_setting.proto delete mode 100644 google/ads/googleads/v8/common/extensions.proto delete mode 100644 google/ads/googleads/v8/common/feed_common.proto delete mode 100644 google/ads/googleads/v8/common/feed_item_set_filter_type_infos.proto delete mode 100644 google/ads/googleads/v8/common/final_app_url.proto delete mode 100644 google/ads/googleads/v8/common/frequency_cap.proto delete mode 100644 google/ads/googleads/v8/common/keyword_plan_common.proto delete mode 100644 google/ads/googleads/v8/common/matching_function.proto delete mode 100644 google/ads/googleads/v8/common/metrics.proto delete mode 100644 google/ads/googleads/v8/common/offline_user_data.proto delete mode 100644 google/ads/googleads/v8/common/policy.proto delete mode 100644 google/ads/googleads/v8/common/real_time_bidding_setting.proto delete mode 100644 google/ads/googleads/v8/common/segments.proto delete mode 100644 google/ads/googleads/v8/common/simulation.proto delete mode 100644 google/ads/googleads/v8/common/tag_snippet.proto delete mode 100644 google/ads/googleads/v8/common/targeting_setting.proto delete mode 100644 google/ads/googleads/v8/common/text_label.proto delete mode 100644 google/ads/googleads/v8/common/url_collection.proto delete mode 100644 google/ads/googleads/v8/common/user_lists.proto delete mode 100644 google/ads/googleads/v8/common/value.proto delete mode 100644 google/ads/googleads/v8/enums/BUILD.bazel delete mode 100644 google/ads/googleads/v8/enums/access_invitation_status.proto delete mode 100644 google/ads/googleads/v8/enums/access_reason.proto delete mode 100644 google/ads/googleads/v8/enums/access_role.proto delete mode 100644 google/ads/googleads/v8/enums/account_budget_proposal_status.proto delete mode 100644 google/ads/googleads/v8/enums/account_budget_proposal_type.proto delete mode 100644 google/ads/googleads/v8/enums/account_budget_status.proto delete mode 100644 google/ads/googleads/v8/enums/account_link_status.proto delete mode 100644 google/ads/googleads/v8/enums/ad_customizer_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/ad_destination_type.proto delete mode 100644 google/ads/googleads/v8/enums/ad_group_ad_rotation_mode.proto delete mode 100644 google/ads/googleads/v8/enums/ad_group_ad_status.proto delete mode 100644 google/ads/googleads/v8/enums/ad_group_criterion_approval_status.proto delete mode 100644 google/ads/googleads/v8/enums/ad_group_criterion_status.proto delete mode 100644 google/ads/googleads/v8/enums/ad_group_status.proto delete mode 100644 google/ads/googleads/v8/enums/ad_group_type.proto delete mode 100644 google/ads/googleads/v8/enums/ad_network_type.proto delete mode 100644 google/ads/googleads/v8/enums/ad_serving_optimization_status.proto delete mode 100644 google/ads/googleads/v8/enums/ad_strength.proto delete mode 100644 google/ads/googleads/v8/enums/ad_type.proto delete mode 100644 google/ads/googleads/v8/enums/advertising_channel_sub_type.proto delete mode 100644 google/ads/googleads/v8/enums/advertising_channel_type.proto delete mode 100644 google/ads/googleads/v8/enums/affiliate_location_feed_relationship_type.proto delete mode 100644 google/ads/googleads/v8/enums/affiliate_location_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/age_range_type.proto delete mode 100644 google/ads/googleads/v8/enums/app_campaign_app_store.proto delete mode 100644 google/ads/googleads/v8/enums/app_campaign_bidding_strategy_goal_type.proto delete mode 100644 google/ads/googleads/v8/enums/app_payment_model_type.proto delete mode 100644 google/ads/googleads/v8/enums/app_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/app_store.proto delete mode 100644 google/ads/googleads/v8/enums/app_url_operating_system_type.proto delete mode 100644 google/ads/googleads/v8/enums/asset_field_type.proto delete mode 100644 google/ads/googleads/v8/enums/asset_link_status.proto delete mode 100644 google/ads/googleads/v8/enums/asset_performance_label.proto delete mode 100644 google/ads/googleads/v8/enums/asset_type.proto delete mode 100644 google/ads/googleads/v8/enums/attribution_model.proto delete mode 100644 google/ads/googleads/v8/enums/batch_job_status.proto delete mode 100644 google/ads/googleads/v8/enums/bid_modifier_source.proto delete mode 100644 google/ads/googleads/v8/enums/bidding_source.proto delete mode 100644 google/ads/googleads/v8/enums/bidding_strategy_status.proto delete mode 100644 google/ads/googleads/v8/enums/bidding_strategy_type.proto delete mode 100644 google/ads/googleads/v8/enums/billing_setup_status.proto delete mode 100644 google/ads/googleads/v8/enums/brand_safety_suitability.proto delete mode 100644 google/ads/googleads/v8/enums/budget_campaign_association_status.proto delete mode 100644 google/ads/googleads/v8/enums/budget_delivery_method.proto delete mode 100644 google/ads/googleads/v8/enums/budget_period.proto delete mode 100644 google/ads/googleads/v8/enums/budget_status.proto delete mode 100644 google/ads/googleads/v8/enums/budget_type.proto delete mode 100644 google/ads/googleads/v8/enums/call_conversion_reporting_state.proto delete mode 100644 google/ads/googleads/v8/enums/call_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/call_tracking_display_location.proto delete mode 100644 google/ads/googleads/v8/enums/call_type.proto delete mode 100644 google/ads/googleads/v8/enums/callout_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/campaign_criterion_status.proto delete mode 100644 google/ads/googleads/v8/enums/campaign_draft_status.proto delete mode 100644 google/ads/googleads/v8/enums/campaign_experiment_status.proto delete mode 100644 google/ads/googleads/v8/enums/campaign_experiment_traffic_split_type.proto delete mode 100644 google/ads/googleads/v8/enums/campaign_experiment_type.proto delete mode 100644 google/ads/googleads/v8/enums/campaign_serving_status.proto delete mode 100644 google/ads/googleads/v8/enums/campaign_shared_set_status.proto delete mode 100644 google/ads/googleads/v8/enums/campaign_status.proto delete mode 100644 google/ads/googleads/v8/enums/change_client_type.proto delete mode 100644 google/ads/googleads/v8/enums/change_event_resource_type.proto delete mode 100644 google/ads/googleads/v8/enums/change_status_operation.proto delete mode 100644 google/ads/googleads/v8/enums/change_status_resource_type.proto delete mode 100644 google/ads/googleads/v8/enums/click_type.proto delete mode 100644 google/ads/googleads/v8/enums/combined_audience_status.proto delete mode 100644 google/ads/googleads/v8/enums/content_label_type.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_action_category.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_action_counting_type.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_action_status.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_action_type.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_adjustment_type.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_attribution_event_type.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_custom_variable_status.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_lag_bucket.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_or_adjustment_lag_bucket.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_value_rule_primary_dimension.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_value_rule_set_status.proto delete mode 100644 google/ads/googleads/v8/enums/conversion_value_rule_status.proto delete mode 100644 google/ads/googleads/v8/enums/criterion_category_channel_availability_mode.proto delete mode 100644 google/ads/googleads/v8/enums/criterion_category_locale_availability_mode.proto delete mode 100644 google/ads/googleads/v8/enums/criterion_system_serving_status.proto delete mode 100644 google/ads/googleads/v8/enums/criterion_type.proto delete mode 100644 google/ads/googleads/v8/enums/custom_audience_member_type.proto delete mode 100644 google/ads/googleads/v8/enums/custom_audience_status.proto delete mode 100644 google/ads/googleads/v8/enums/custom_audience_type.proto delete mode 100644 google/ads/googleads/v8/enums/custom_interest_member_type.proto delete mode 100644 google/ads/googleads/v8/enums/custom_interest_status.proto delete mode 100644 google/ads/googleads/v8/enums/custom_interest_type.proto delete mode 100644 google/ads/googleads/v8/enums/custom_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/customer_match_upload_key_type.proto delete mode 100644 google/ads/googleads/v8/enums/customer_pay_per_conversion_eligibility_failure_reason.proto delete mode 100644 google/ads/googleads/v8/enums/data_driven_model_status.proto delete mode 100644 google/ads/googleads/v8/enums/day_of_week.proto delete mode 100644 google/ads/googleads/v8/enums/device.proto delete mode 100644 google/ads/googleads/v8/enums/display_ad_format_setting.proto delete mode 100644 google/ads/googleads/v8/enums/display_upload_product_type.proto delete mode 100644 google/ads/googleads/v8/enums/distance_bucket.proto delete mode 100644 google/ads/googleads/v8/enums/dsa_page_feed_criterion_field.proto delete mode 100644 google/ads/googleads/v8/enums/education_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/extension_setting_device.proto delete mode 100644 google/ads/googleads/v8/enums/extension_type.proto delete mode 100644 google/ads/googleads/v8/enums/external_conversion_source.proto delete mode 100644 google/ads/googleads/v8/enums/feed_attribute_type.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_quality_approval_status.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_quality_disapproval_reason.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_set_status.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_set_string_filter_type.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_status.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_target_device.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_target_status.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_target_type.proto delete mode 100644 google/ads/googleads/v8/enums/feed_item_validation_status.proto delete mode 100644 google/ads/googleads/v8/enums/feed_link_status.proto delete mode 100644 google/ads/googleads/v8/enums/feed_mapping_criterion_type.proto delete mode 100644 google/ads/googleads/v8/enums/feed_mapping_status.proto delete mode 100644 google/ads/googleads/v8/enums/feed_origin.proto delete mode 100644 google/ads/googleads/v8/enums/feed_status.proto delete mode 100644 google/ads/googleads/v8/enums/flight_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/frequency_cap_event_type.proto delete mode 100644 google/ads/googleads/v8/enums/frequency_cap_level.proto delete mode 100644 google/ads/googleads/v8/enums/frequency_cap_time_unit.proto delete mode 100644 google/ads/googleads/v8/enums/gender_type.proto delete mode 100644 google/ads/googleads/v8/enums/geo_target_constant_status.proto delete mode 100644 google/ads/googleads/v8/enums/geo_targeting_restriction.proto delete mode 100644 google/ads/googleads/v8/enums/geo_targeting_type.proto delete mode 100644 google/ads/googleads/v8/enums/google_ads_field_category.proto delete mode 100644 google/ads/googleads/v8/enums/google_ads_field_data_type.proto delete mode 100644 google/ads/googleads/v8/enums/google_voice_call_status.proto delete mode 100644 google/ads/googleads/v8/enums/hotel_date_selection_type.proto delete mode 100644 google/ads/googleads/v8/enums/hotel_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/hotel_price_bucket.proto delete mode 100644 google/ads/googleads/v8/enums/hotel_rate_type.proto delete mode 100644 google/ads/googleads/v8/enums/image_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/income_range_type.proto delete mode 100644 google/ads/googleads/v8/enums/interaction_event_type.proto delete mode 100644 google/ads/googleads/v8/enums/interaction_type.proto delete mode 100644 google/ads/googleads/v8/enums/invoice_type.proto delete mode 100644 google/ads/googleads/v8/enums/job_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/keyword_match_type.proto delete mode 100644 google/ads/googleads/v8/enums/keyword_plan_aggregate_metric_type.proto delete mode 100644 google/ads/googleads/v8/enums/keyword_plan_competition_level.proto delete mode 100644 google/ads/googleads/v8/enums/keyword_plan_concept_group_type.proto delete mode 100644 google/ads/googleads/v8/enums/keyword_plan_forecast_interval.proto delete mode 100644 google/ads/googleads/v8/enums/keyword_plan_keyword_annotation.proto delete mode 100644 google/ads/googleads/v8/enums/keyword_plan_network.proto delete mode 100644 google/ads/googleads/v8/enums/label_status.proto delete mode 100644 google/ads/googleads/v8/enums/lead_form_call_to_action_type.proto delete mode 100644 google/ads/googleads/v8/enums/lead_form_desired_intent.proto delete mode 100644 google/ads/googleads/v8/enums/lead_form_field_user_input_type.proto delete mode 100644 google/ads/googleads/v8/enums/lead_form_post_submit_call_to_action_type.proto delete mode 100644 google/ads/googleads/v8/enums/legacy_app_install_ad_app_store.proto delete mode 100644 google/ads/googleads/v8/enums/linked_account_type.proto delete mode 100644 google/ads/googleads/v8/enums/listing_group_type.proto delete mode 100644 google/ads/googleads/v8/enums/local_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/location_extension_targeting_criterion_field.proto delete mode 100644 google/ads/googleads/v8/enums/location_group_radius_units.proto delete mode 100644 google/ads/googleads/v8/enums/location_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/location_source_type.proto delete mode 100644 google/ads/googleads/v8/enums/manager_link_status.proto delete mode 100644 google/ads/googleads/v8/enums/matching_function_context_type.proto delete mode 100644 google/ads/googleads/v8/enums/matching_function_operator.proto delete mode 100644 google/ads/googleads/v8/enums/media_type.proto delete mode 100644 google/ads/googleads/v8/enums/merchant_center_link_status.proto delete mode 100644 google/ads/googleads/v8/enums/message_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/mime_type.proto delete mode 100644 google/ads/googleads/v8/enums/minute_of_hour.proto delete mode 100644 google/ads/googleads/v8/enums/mobile_app_vendor.proto delete mode 100644 google/ads/googleads/v8/enums/mobile_device_type.proto delete mode 100644 google/ads/googleads/v8/enums/month_of_year.proto delete mode 100644 google/ads/googleads/v8/enums/negative_geo_target_type.proto delete mode 100644 google/ads/googleads/v8/enums/offline_user_data_job_failure_reason.proto delete mode 100644 google/ads/googleads/v8/enums/offline_user_data_job_status.proto delete mode 100644 google/ads/googleads/v8/enums/offline_user_data_job_type.proto delete mode 100644 google/ads/googleads/v8/enums/operating_system_version_operator_type.proto delete mode 100644 google/ads/googleads/v8/enums/optimization_goal_type.proto delete mode 100644 google/ads/googleads/v8/enums/parental_status_type.proto delete mode 100644 google/ads/googleads/v8/enums/payment_mode.proto delete mode 100644 google/ads/googleads/v8/enums/placeholder_type.proto delete mode 100644 google/ads/googleads/v8/enums/placement_type.proto delete mode 100644 google/ads/googleads/v8/enums/policy_approval_status.proto delete mode 100644 google/ads/googleads/v8/enums/policy_review_status.proto delete mode 100644 google/ads/googleads/v8/enums/policy_topic_entry_type.proto delete mode 100644 google/ads/googleads/v8/enums/policy_topic_evidence_destination_mismatch_url_type.proto delete mode 100644 google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_device.proto delete mode 100644 google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto delete mode 100644 google/ads/googleads/v8/enums/positive_geo_target_type.proto delete mode 100644 google/ads/googleads/v8/enums/preferred_content_type.proto delete mode 100644 google/ads/googleads/v8/enums/price_extension_price_qualifier.proto delete mode 100644 google/ads/googleads/v8/enums/price_extension_price_unit.proto delete mode 100644 google/ads/googleads/v8/enums/price_extension_type.proto delete mode 100644 google/ads/googleads/v8/enums/price_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/product_bidding_category_level.proto delete mode 100644 google/ads/googleads/v8/enums/product_bidding_category_status.proto delete mode 100644 google/ads/googleads/v8/enums/product_channel.proto delete mode 100644 google/ads/googleads/v8/enums/product_channel_exclusivity.proto delete mode 100644 google/ads/googleads/v8/enums/product_condition.proto delete mode 100644 google/ads/googleads/v8/enums/product_custom_attribute_index.proto delete mode 100644 google/ads/googleads/v8/enums/product_type_level.proto delete mode 100644 google/ads/googleads/v8/enums/promotion_extension_discount_modifier.proto delete mode 100644 google/ads/googleads/v8/enums/promotion_extension_occasion.proto delete mode 100644 google/ads/googleads/v8/enums/promotion_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/proximity_radius_units.proto delete mode 100644 google/ads/googleads/v8/enums/quality_score_bucket.proto delete mode 100644 google/ads/googleads/v8/enums/reach_plan_ad_length.proto delete mode 100644 google/ads/googleads/v8/enums/reach_plan_age_range.proto delete mode 100644 google/ads/googleads/v8/enums/reach_plan_network.proto delete mode 100644 google/ads/googleads/v8/enums/real_estate_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/recommendation_type.proto delete mode 100644 google/ads/googleads/v8/enums/resource_change_operation.proto delete mode 100644 google/ads/googleads/v8/enums/resource_limit_type.proto delete mode 100644 google/ads/googleads/v8/enums/response_content_type.proto delete mode 100644 google/ads/googleads/v8/enums/search_engine_results_page_type.proto delete mode 100644 google/ads/googleads/v8/enums/search_term_match_type.proto delete mode 100644 google/ads/googleads/v8/enums/search_term_targeting_status.proto delete mode 100644 google/ads/googleads/v8/enums/seasonality_event_scope.proto delete mode 100644 google/ads/googleads/v8/enums/seasonality_event_status.proto delete mode 100644 google/ads/googleads/v8/enums/served_asset_field_type.proto delete mode 100644 google/ads/googleads/v8/enums/shared_set_status.proto delete mode 100644 google/ads/googleads/v8/enums/shared_set_type.proto delete mode 100644 google/ads/googleads/v8/enums/simulation_modification_method.proto delete mode 100644 google/ads/googleads/v8/enums/simulation_type.proto delete mode 100644 google/ads/googleads/v8/enums/sitelink_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/slot.proto delete mode 100644 google/ads/googleads/v8/enums/spending_limit_type.proto delete mode 100644 google/ads/googleads/v8/enums/structured_snippet_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/summary_row_setting.proto delete mode 100644 google/ads/googleads/v8/enums/system_managed_entity_source.proto delete mode 100644 google/ads/googleads/v8/enums/target_cpa_opt_in_recommendation_goal.proto delete mode 100644 google/ads/googleads/v8/enums/target_impression_share_location.proto delete mode 100644 google/ads/googleads/v8/enums/targeting_dimension.proto delete mode 100644 google/ads/googleads/v8/enums/time_type.proto delete mode 100644 google/ads/googleads/v8/enums/tracking_code_page_format.proto delete mode 100644 google/ads/googleads/v8/enums/tracking_code_type.proto delete mode 100644 google/ads/googleads/v8/enums/travel_placeholder_field.proto delete mode 100644 google/ads/googleads/v8/enums/user_identifier_source.proto delete mode 100644 google/ads/googleads/v8/enums/user_interest_taxonomy_type.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_access_status.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_closing_reason.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_combined_rule_operator.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_crm_data_source_type.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_date_rule_item_operator.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_logical_rule_operator.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_membership_status.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_number_rule_item_operator.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_prepopulation_status.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_rule_type.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_size_range.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_string_rule_item_operator.proto delete mode 100644 google/ads/googleads/v8/enums/user_list_type.proto delete mode 100644 google/ads/googleads/v8/enums/value_rule_device_type.proto delete mode 100644 google/ads/googleads/v8/enums/value_rule_geo_location_match_type.proto delete mode 100644 google/ads/googleads/v8/enums/value_rule_operation.proto delete mode 100644 google/ads/googleads/v8/enums/value_rule_set_attachment_type.proto delete mode 100644 google/ads/googleads/v8/enums/value_rule_set_dimension.proto delete mode 100644 google/ads/googleads/v8/enums/vanity_pharma_display_url_mode.proto delete mode 100644 google/ads/googleads/v8/enums/vanity_pharma_text.proto delete mode 100644 google/ads/googleads/v8/enums/webpage_condition_operand.proto delete mode 100644 google/ads/googleads/v8/enums/webpage_condition_operator.proto delete mode 100644 google/ads/googleads/v8/errors/BUILD.bazel delete mode 100644 google/ads/googleads/v8/errors/access_invitation_error.proto delete mode 100644 google/ads/googleads/v8/errors/account_budget_proposal_error.proto delete mode 100644 google/ads/googleads/v8/errors/account_link_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_customizer_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_group_ad_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_group_bid_modifier_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_group_criterion_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_group_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_group_feed_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_parameter_error.proto delete mode 100644 google/ads/googleads/v8/errors/ad_sharing_error.proto delete mode 100644 google/ads/googleads/v8/errors/adx_error.proto delete mode 100644 google/ads/googleads/v8/errors/asset_error.proto delete mode 100644 google/ads/googleads/v8/errors/asset_link_error.proto delete mode 100644 google/ads/googleads/v8/errors/authentication_error.proto delete mode 100644 google/ads/googleads/v8/errors/authorization_error.proto delete mode 100644 google/ads/googleads/v8/errors/batch_job_error.proto delete mode 100644 google/ads/googleads/v8/errors/bidding_error.proto delete mode 100644 google/ads/googleads/v8/errors/bidding_strategy_error.proto delete mode 100644 google/ads/googleads/v8/errors/billing_setup_error.proto delete mode 100644 google/ads/googleads/v8/errors/campaign_budget_error.proto delete mode 100644 google/ads/googleads/v8/errors/campaign_criterion_error.proto delete mode 100644 google/ads/googleads/v8/errors/campaign_draft_error.proto delete mode 100644 google/ads/googleads/v8/errors/campaign_error.proto delete mode 100644 google/ads/googleads/v8/errors/campaign_experiment_error.proto delete mode 100644 google/ads/googleads/v8/errors/campaign_feed_error.proto delete mode 100644 google/ads/googleads/v8/errors/campaign_shared_set_error.proto delete mode 100644 google/ads/googleads/v8/errors/change_event_error.proto delete mode 100644 google/ads/googleads/v8/errors/change_status_error.proto delete mode 100644 google/ads/googleads/v8/errors/collection_size_error.proto delete mode 100644 google/ads/googleads/v8/errors/context_error.proto delete mode 100644 google/ads/googleads/v8/errors/conversion_action_error.proto delete mode 100644 google/ads/googleads/v8/errors/conversion_adjustment_upload_error.proto delete mode 100644 google/ads/googleads/v8/errors/conversion_custom_variable_error.proto delete mode 100644 google/ads/googleads/v8/errors/conversion_upload_error.proto delete mode 100644 google/ads/googleads/v8/errors/conversion_value_rule_error.proto delete mode 100644 google/ads/googleads/v8/errors/conversion_value_rule_set_error.proto delete mode 100644 google/ads/googleads/v8/errors/country_code_error.proto delete mode 100644 google/ads/googleads/v8/errors/criterion_error.proto delete mode 100644 google/ads/googleads/v8/errors/currency_code_error.proto delete mode 100644 google/ads/googleads/v8/errors/custom_audience_error.proto delete mode 100644 google/ads/googleads/v8/errors/custom_interest_error.proto delete mode 100644 google/ads/googleads/v8/errors/customer_client_link_error.proto delete mode 100644 google/ads/googleads/v8/errors/customer_error.proto delete mode 100644 google/ads/googleads/v8/errors/customer_feed_error.proto delete mode 100644 google/ads/googleads/v8/errors/customer_manager_link_error.proto delete mode 100644 google/ads/googleads/v8/errors/customer_user_access_error.proto delete mode 100644 google/ads/googleads/v8/errors/database_error.proto delete mode 100644 google/ads/googleads/v8/errors/date_error.proto delete mode 100644 google/ads/googleads/v8/errors/date_range_error.proto delete mode 100644 google/ads/googleads/v8/errors/distinct_error.proto delete mode 100644 google/ads/googleads/v8/errors/enum_error.proto delete mode 100644 google/ads/googleads/v8/errors/errors.proto delete mode 100644 google/ads/googleads/v8/errors/extension_feed_item_error.proto delete mode 100644 google/ads/googleads/v8/errors/extension_setting_error.proto delete mode 100644 google/ads/googleads/v8/errors/feed_attribute_reference_error.proto delete mode 100644 google/ads/googleads/v8/errors/feed_error.proto delete mode 100644 google/ads/googleads/v8/errors/feed_item_error.proto delete mode 100644 google/ads/googleads/v8/errors/feed_item_set_error.proto delete mode 100644 google/ads/googleads/v8/errors/feed_item_set_link_error.proto delete mode 100644 google/ads/googleads/v8/errors/feed_item_target_error.proto delete mode 100644 google/ads/googleads/v8/errors/feed_item_validation_error.proto delete mode 100644 google/ads/googleads/v8/errors/feed_mapping_error.proto delete mode 100644 google/ads/googleads/v8/errors/field_error.proto delete mode 100644 google/ads/googleads/v8/errors/field_mask_error.proto delete mode 100644 google/ads/googleads/v8/errors/function_error.proto delete mode 100644 google/ads/googleads/v8/errors/function_parsing_error.proto delete mode 100644 google/ads/googleads/v8/errors/geo_target_constant_suggestion_error.proto delete mode 100644 google/ads/googleads/v8/errors/header_error.proto delete mode 100644 google/ads/googleads/v8/errors/id_error.proto delete mode 100644 google/ads/googleads/v8/errors/image_error.proto delete mode 100644 google/ads/googleads/v8/errors/internal_error.proto delete mode 100644 google/ads/googleads/v8/errors/invoice_error.proto delete mode 100644 google/ads/googleads/v8/errors/keyword_plan_ad_group_error.proto delete mode 100644 google/ads/googleads/v8/errors/keyword_plan_ad_group_keyword_error.proto delete mode 100644 google/ads/googleads/v8/errors/keyword_plan_campaign_error.proto delete mode 100644 google/ads/googleads/v8/errors/keyword_plan_campaign_keyword_error.proto delete mode 100644 google/ads/googleads/v8/errors/keyword_plan_error.proto delete mode 100644 google/ads/googleads/v8/errors/keyword_plan_idea_error.proto delete mode 100644 google/ads/googleads/v8/errors/label_error.proto delete mode 100644 google/ads/googleads/v8/errors/language_code_error.proto delete mode 100644 google/ads/googleads/v8/errors/list_operation_error.proto delete mode 100644 google/ads/googleads/v8/errors/manager_link_error.proto delete mode 100644 google/ads/googleads/v8/errors/media_bundle_error.proto delete mode 100644 google/ads/googleads/v8/errors/media_file_error.proto delete mode 100644 google/ads/googleads/v8/errors/media_upload_error.proto delete mode 100644 google/ads/googleads/v8/errors/multiplier_error.proto delete mode 100644 google/ads/googleads/v8/errors/mutate_error.proto delete mode 100644 google/ads/googleads/v8/errors/new_resource_creation_error.proto delete mode 100644 google/ads/googleads/v8/errors/not_allowlisted_error.proto delete mode 100644 google/ads/googleads/v8/errors/not_empty_error.proto delete mode 100644 google/ads/googleads/v8/errors/null_error.proto delete mode 100644 google/ads/googleads/v8/errors/offline_user_data_job_error.proto delete mode 100644 google/ads/googleads/v8/errors/operation_access_denied_error.proto delete mode 100644 google/ads/googleads/v8/errors/operator_error.proto delete mode 100644 google/ads/googleads/v8/errors/partial_failure_error.proto delete mode 100644 google/ads/googleads/v8/errors/payments_account_error.proto delete mode 100644 google/ads/googleads/v8/errors/policy_finding_error.proto delete mode 100644 google/ads/googleads/v8/errors/policy_validation_parameter_error.proto delete mode 100644 google/ads/googleads/v8/errors/policy_violation_error.proto delete mode 100644 google/ads/googleads/v8/errors/query_error.proto delete mode 100644 google/ads/googleads/v8/errors/quota_error.proto delete mode 100644 google/ads/googleads/v8/errors/range_error.proto delete mode 100644 google/ads/googleads/v8/errors/reach_plan_error.proto delete mode 100644 google/ads/googleads/v8/errors/recommendation_error.proto delete mode 100644 google/ads/googleads/v8/errors/region_code_error.proto delete mode 100644 google/ads/googleads/v8/errors/request_error.proto delete mode 100644 google/ads/googleads/v8/errors/resource_access_denied_error.proto delete mode 100644 google/ads/googleads/v8/errors/resource_count_limit_exceeded_error.proto delete mode 100644 google/ads/googleads/v8/errors/setting_error.proto delete mode 100644 google/ads/googleads/v8/errors/shared_criterion_error.proto delete mode 100644 google/ads/googleads/v8/errors/shared_set_error.proto delete mode 100644 google/ads/googleads/v8/errors/size_limit_error.proto delete mode 100644 google/ads/googleads/v8/errors/string_format_error.proto delete mode 100644 google/ads/googleads/v8/errors/string_length_error.proto delete mode 100644 google/ads/googleads/v8/errors/third_party_app_analytics_link_error.proto delete mode 100644 google/ads/googleads/v8/errors/time_zone_error.proto delete mode 100644 google/ads/googleads/v8/errors/url_field_error.proto delete mode 100644 google/ads/googleads/v8/errors/user_data_error.proto delete mode 100644 google/ads/googleads/v8/errors/user_list_error.proto delete mode 100644 google/ads/googleads/v8/errors/youtube_video_registration_error.proto delete mode 100644 google/ads/googleads/v8/googleads_gapic.yaml delete mode 100755 google/ads/googleads/v8/googleads_grpc_service_config.json delete mode 100644 google/ads/googleads/v8/googleads_v8.yaml delete mode 100644 google/ads/googleads/v8/resources/BUILD.bazel delete mode 100644 google/ads/googleads/v8/resources/accessible_bidding_strategy.proto delete mode 100644 google/ads/googleads/v8/resources/account_budget.proto delete mode 100644 google/ads/googleads/v8/resources/account_budget_proposal.proto delete mode 100644 google/ads/googleads/v8/resources/account_link.proto delete mode 100644 google/ads/googleads/v8/resources/ad.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_ad.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_ad_asset_view.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_ad_label.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_asset.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_audience_view.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_bid_modifier.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_criterion.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_criterion_label.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_criterion_simulation.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_extension_setting.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_feed.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_label.proto delete mode 100644 google/ads/googleads/v8/resources/ad_group_simulation.proto delete mode 100644 google/ads/googleads/v8/resources/ad_parameter.proto delete mode 100644 google/ads/googleads/v8/resources/ad_schedule_view.proto delete mode 100644 google/ads/googleads/v8/resources/age_range_view.proto delete mode 100644 google/ads/googleads/v8/resources/asset.proto delete mode 100644 google/ads/googleads/v8/resources/asset_field_type_view.proto delete mode 100644 google/ads/googleads/v8/resources/batch_job.proto delete mode 100644 google/ads/googleads/v8/resources/bidding_data_exclusion.proto delete mode 100644 google/ads/googleads/v8/resources/bidding_seasonality_adjustment.proto delete mode 100644 google/ads/googleads/v8/resources/bidding_strategy.proto delete mode 100644 google/ads/googleads/v8/resources/bidding_strategy_simulation.proto delete mode 100644 google/ads/googleads/v8/resources/billing_setup.proto delete mode 100644 google/ads/googleads/v8/resources/call_view.proto delete mode 100644 google/ads/googleads/v8/resources/campaign.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_asset.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_audience_view.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_bid_modifier.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_budget.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_criterion.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_criterion_simulation.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_draft.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_experiment.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_extension_setting.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_feed.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_label.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_shared_set.proto delete mode 100644 google/ads/googleads/v8/resources/campaign_simulation.proto delete mode 100644 google/ads/googleads/v8/resources/carrier_constant.proto delete mode 100644 google/ads/googleads/v8/resources/change_event.proto delete mode 100644 google/ads/googleads/v8/resources/change_status.proto delete mode 100644 google/ads/googleads/v8/resources/click_view.proto delete mode 100644 google/ads/googleads/v8/resources/combined_audience.proto delete mode 100644 google/ads/googleads/v8/resources/conversion_action.proto delete mode 100644 google/ads/googleads/v8/resources/conversion_custom_variable.proto delete mode 100644 google/ads/googleads/v8/resources/conversion_value_rule.proto delete mode 100644 google/ads/googleads/v8/resources/conversion_value_rule_set.proto delete mode 100644 google/ads/googleads/v8/resources/currency_constant.proto delete mode 100644 google/ads/googleads/v8/resources/custom_audience.proto delete mode 100644 google/ads/googleads/v8/resources/custom_interest.proto delete mode 100644 google/ads/googleads/v8/resources/customer.proto delete mode 100644 google/ads/googleads/v8/resources/customer_asset.proto delete mode 100644 google/ads/googleads/v8/resources/customer_client.proto delete mode 100644 google/ads/googleads/v8/resources/customer_client_link.proto delete mode 100644 google/ads/googleads/v8/resources/customer_extension_setting.proto delete mode 100644 google/ads/googleads/v8/resources/customer_feed.proto delete mode 100644 google/ads/googleads/v8/resources/customer_label.proto delete mode 100644 google/ads/googleads/v8/resources/customer_manager_link.proto delete mode 100644 google/ads/googleads/v8/resources/customer_negative_criterion.proto delete mode 100644 google/ads/googleads/v8/resources/customer_user_access.proto delete mode 100644 google/ads/googleads/v8/resources/customer_user_access_invitation.proto delete mode 100644 google/ads/googleads/v8/resources/detail_placement_view.proto delete mode 100644 google/ads/googleads/v8/resources/detailed_demographic.proto delete mode 100644 google/ads/googleads/v8/resources/display_keyword_view.proto delete mode 100644 google/ads/googleads/v8/resources/distance_view.proto delete mode 100644 google/ads/googleads/v8/resources/domain_category.proto delete mode 100644 google/ads/googleads/v8/resources/dynamic_search_ads_search_term_view.proto delete mode 100644 google/ads/googleads/v8/resources/expanded_landing_page_view.proto delete mode 100644 google/ads/googleads/v8/resources/extension_feed_item.proto delete mode 100644 google/ads/googleads/v8/resources/feed.proto delete mode 100644 google/ads/googleads/v8/resources/feed_item.proto delete mode 100644 google/ads/googleads/v8/resources/feed_item_set.proto delete mode 100644 google/ads/googleads/v8/resources/feed_item_set_link.proto delete mode 100644 google/ads/googleads/v8/resources/feed_item_target.proto delete mode 100644 google/ads/googleads/v8/resources/feed_mapping.proto delete mode 100644 google/ads/googleads/v8/resources/feed_placeholder_view.proto delete mode 100644 google/ads/googleads/v8/resources/gender_view.proto delete mode 100644 google/ads/googleads/v8/resources/geo_target_constant.proto delete mode 100644 google/ads/googleads/v8/resources/geographic_view.proto delete mode 100644 google/ads/googleads/v8/resources/google_ads_field.proto delete mode 100644 google/ads/googleads/v8/resources/group_placement_view.proto delete mode 100644 google/ads/googleads/v8/resources/hotel_group_view.proto delete mode 100644 google/ads/googleads/v8/resources/hotel_performance_view.proto delete mode 100644 google/ads/googleads/v8/resources/income_range_view.proto delete mode 100644 google/ads/googleads/v8/resources/invoice.proto delete mode 100644 google/ads/googleads/v8/resources/keyword_plan.proto delete mode 100644 google/ads/googleads/v8/resources/keyword_plan_ad_group.proto delete mode 100644 google/ads/googleads/v8/resources/keyword_plan_ad_group_keyword.proto delete mode 100644 google/ads/googleads/v8/resources/keyword_plan_campaign.proto delete mode 100644 google/ads/googleads/v8/resources/keyword_plan_campaign_keyword.proto delete mode 100644 google/ads/googleads/v8/resources/keyword_theme_constant.proto delete mode 100644 google/ads/googleads/v8/resources/keyword_view.proto delete mode 100644 google/ads/googleads/v8/resources/label.proto delete mode 100644 google/ads/googleads/v8/resources/landing_page_view.proto delete mode 100644 google/ads/googleads/v8/resources/language_constant.proto delete mode 100644 google/ads/googleads/v8/resources/life_event.proto delete mode 100644 google/ads/googleads/v8/resources/location_view.proto delete mode 100644 google/ads/googleads/v8/resources/managed_placement_view.proto delete mode 100644 google/ads/googleads/v8/resources/media_file.proto delete mode 100644 google/ads/googleads/v8/resources/merchant_center_link.proto delete mode 100644 google/ads/googleads/v8/resources/mobile_app_category_constant.proto delete mode 100644 google/ads/googleads/v8/resources/mobile_device_constant.proto delete mode 100644 google/ads/googleads/v8/resources/offline_user_data_job.proto delete mode 100644 google/ads/googleads/v8/resources/operating_system_version_constant.proto delete mode 100644 google/ads/googleads/v8/resources/paid_organic_search_term_view.proto delete mode 100644 google/ads/googleads/v8/resources/parental_status_view.proto delete mode 100644 google/ads/googleads/v8/resources/payments_account.proto delete mode 100644 google/ads/googleads/v8/resources/product_bidding_category_constant.proto delete mode 100644 google/ads/googleads/v8/resources/product_group_view.proto delete mode 100644 google/ads/googleads/v8/resources/recommendation.proto delete mode 100644 google/ads/googleads/v8/resources/remarketing_action.proto delete mode 100644 google/ads/googleads/v8/resources/search_term_view.proto delete mode 100644 google/ads/googleads/v8/resources/shared_criterion.proto delete mode 100644 google/ads/googleads/v8/resources/shared_set.proto delete mode 100644 google/ads/googleads/v8/resources/shopping_performance_view.proto delete mode 100644 google/ads/googleads/v8/resources/smart_campaign_search_term_view.proto delete mode 100644 google/ads/googleads/v8/resources/smart_campaign_setting.proto delete mode 100644 google/ads/googleads/v8/resources/third_party_app_analytics_link.proto delete mode 100644 google/ads/googleads/v8/resources/topic_constant.proto delete mode 100644 google/ads/googleads/v8/resources/topic_view.proto delete mode 100644 google/ads/googleads/v8/resources/user_interest.proto delete mode 100644 google/ads/googleads/v8/resources/user_list.proto delete mode 100644 google/ads/googleads/v8/resources/user_location_view.proto delete mode 100644 google/ads/googleads/v8/resources/video.proto delete mode 100644 google/ads/googleads/v8/resources/webpage_view.proto delete mode 100644 google/ads/googleads/v8/services/BUILD.bazel delete mode 100644 google/ads/googleads/v8/services/accessible_bidding_strategy_service.proto delete mode 100644 google/ads/googleads/v8/services/account_budget_proposal_service.proto delete mode 100644 google/ads/googleads/v8/services/account_budget_service.proto delete mode 100644 google/ads/googleads/v8/services/account_link_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_ad_asset_view_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_ad_label_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_ad_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_asset_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_audience_view_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_bid_modifier_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_criterion_label_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_criterion_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_criterion_simulation_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_extension_setting_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_feed_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_label_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_group_simulation_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_parameter_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_schedule_view_service.proto delete mode 100644 google/ads/googleads/v8/services/ad_service.proto delete mode 100644 google/ads/googleads/v8/services/age_range_view_service.proto delete mode 100644 google/ads/googleads/v8/services/asset_field_type_view_service.proto delete mode 100644 google/ads/googleads/v8/services/asset_service.proto delete mode 100644 google/ads/googleads/v8/services/batch_job_service.proto delete mode 100644 google/ads/googleads/v8/services/bidding_data_exclusion_service.proto delete mode 100644 google/ads/googleads/v8/services/bidding_seasonality_adjustment_service.proto delete mode 100644 google/ads/googleads/v8/services/bidding_strategy_service.proto delete mode 100644 google/ads/googleads/v8/services/bidding_strategy_simulation_service.proto delete mode 100644 google/ads/googleads/v8/services/billing_setup_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_asset_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_audience_view_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_bid_modifier_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_budget_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_criterion_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_criterion_simulation_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_draft_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_experiment_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_extension_setting_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_feed_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_label_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_shared_set_service.proto delete mode 100644 google/ads/googleads/v8/services/campaign_simulation_service.proto delete mode 100644 google/ads/googleads/v8/services/carrier_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/change_status_service.proto delete mode 100644 google/ads/googleads/v8/services/click_view_service.proto delete mode 100644 google/ads/googleads/v8/services/combined_audience_service.proto delete mode 100644 google/ads/googleads/v8/services/conversion_action_service.proto delete mode 100644 google/ads/googleads/v8/services/conversion_adjustment_upload_service.proto delete mode 100644 google/ads/googleads/v8/services/conversion_custom_variable_service.proto delete mode 100644 google/ads/googleads/v8/services/conversion_upload_service.proto delete mode 100644 google/ads/googleads/v8/services/conversion_value_rule_service.proto delete mode 100644 google/ads/googleads/v8/services/conversion_value_rule_set_service.proto delete mode 100644 google/ads/googleads/v8/services/currency_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/custom_audience_service.proto delete mode 100644 google/ads/googleads/v8/services/custom_interest_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_asset_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_client_link_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_client_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_extension_setting_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_feed_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_label_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_manager_link_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_negative_criterion_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_user_access_invitation_service.proto delete mode 100644 google/ads/googleads/v8/services/customer_user_access_service.proto delete mode 100644 google/ads/googleads/v8/services/detail_placement_view_service.proto delete mode 100644 google/ads/googleads/v8/services/detailed_demographic_service.proto delete mode 100644 google/ads/googleads/v8/services/display_keyword_view_service.proto delete mode 100644 google/ads/googleads/v8/services/distance_view_service.proto delete mode 100644 google/ads/googleads/v8/services/domain_category_service.proto delete mode 100644 google/ads/googleads/v8/services/dynamic_search_ads_search_term_view_service.proto delete mode 100644 google/ads/googleads/v8/services/expanded_landing_page_view_service.proto delete mode 100644 google/ads/googleads/v8/services/extension_feed_item_service.proto delete mode 100644 google/ads/googleads/v8/services/feed_item_service.proto delete mode 100644 google/ads/googleads/v8/services/feed_item_set_link_service.proto delete mode 100644 google/ads/googleads/v8/services/feed_item_set_service.proto delete mode 100644 google/ads/googleads/v8/services/feed_item_target_service.proto delete mode 100644 google/ads/googleads/v8/services/feed_mapping_service.proto delete mode 100644 google/ads/googleads/v8/services/feed_placeholder_view_service.proto delete mode 100644 google/ads/googleads/v8/services/feed_service.proto delete mode 100644 google/ads/googleads/v8/services/gender_view_service.proto delete mode 100644 google/ads/googleads/v8/services/geo_target_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/geographic_view_service.proto delete mode 100644 google/ads/googleads/v8/services/google_ads_field_service.proto delete mode 100644 google/ads/googleads/v8/services/google_ads_service.proto delete mode 100644 google/ads/googleads/v8/services/group_placement_view_service.proto delete mode 100644 google/ads/googleads/v8/services/hotel_group_view_service.proto delete mode 100644 google/ads/googleads/v8/services/hotel_performance_view_service.proto delete mode 100644 google/ads/googleads/v8/services/income_range_view_service.proto delete mode 100644 google/ads/googleads/v8/services/invoice_service.proto delete mode 100644 google/ads/googleads/v8/services/keyword_plan_ad_group_keyword_service.proto delete mode 100644 google/ads/googleads/v8/services/keyword_plan_ad_group_service.proto delete mode 100644 google/ads/googleads/v8/services/keyword_plan_campaign_keyword_service.proto delete mode 100644 google/ads/googleads/v8/services/keyword_plan_campaign_service.proto delete mode 100644 google/ads/googleads/v8/services/keyword_plan_idea_service.proto delete mode 100644 google/ads/googleads/v8/services/keyword_plan_service.proto delete mode 100644 google/ads/googleads/v8/services/keyword_theme_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/keyword_view_service.proto delete mode 100644 google/ads/googleads/v8/services/label_service.proto delete mode 100644 google/ads/googleads/v8/services/landing_page_view_service.proto delete mode 100644 google/ads/googleads/v8/services/language_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/life_event_service.proto delete mode 100644 google/ads/googleads/v8/services/location_view_service.proto delete mode 100644 google/ads/googleads/v8/services/managed_placement_view_service.proto delete mode 100644 google/ads/googleads/v8/services/media_file_service.proto delete mode 100644 google/ads/googleads/v8/services/merchant_center_link_service.proto delete mode 100644 google/ads/googleads/v8/services/mobile_app_category_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/mobile_device_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/offline_user_data_job_service.proto delete mode 100644 google/ads/googleads/v8/services/operating_system_version_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/paid_organic_search_term_view_service.proto delete mode 100644 google/ads/googleads/v8/services/parental_status_view_service.proto delete mode 100644 google/ads/googleads/v8/services/payments_account_service.proto delete mode 100644 google/ads/googleads/v8/services/product_bidding_category_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/product_group_view_service.proto delete mode 100644 google/ads/googleads/v8/services/reach_plan_service.proto delete mode 100644 google/ads/googleads/v8/services/recommendation_service.proto delete mode 100644 google/ads/googleads/v8/services/remarketing_action_service.proto delete mode 100644 google/ads/googleads/v8/services/search_term_view_service.proto delete mode 100644 google/ads/googleads/v8/services/shared_criterion_service.proto delete mode 100644 google/ads/googleads/v8/services/shared_set_service.proto delete mode 100644 google/ads/googleads/v8/services/shopping_performance_view_service.proto delete mode 100644 google/ads/googleads/v8/services/smart_campaign_search_term_view_service.proto delete mode 100644 google/ads/googleads/v8/services/smart_campaign_setting_service.proto delete mode 100644 google/ads/googleads/v8/services/smart_campaign_suggest_service.proto delete mode 100644 google/ads/googleads/v8/services/third_party_app_analytics_link_service.proto delete mode 100644 google/ads/googleads/v8/services/topic_constant_service.proto delete mode 100644 google/ads/googleads/v8/services/topic_view_service.proto delete mode 100644 google/ads/googleads/v8/services/user_data_service.proto delete mode 100644 google/ads/googleads/v8/services/user_interest_service.proto delete mode 100644 google/ads/googleads/v8/services/user_list_service.proto delete mode 100644 google/ads/googleads/v8/services/user_location_view_service.proto delete mode 100644 google/ads/googleads/v8/services/video_service.proto delete mode 100644 google/ads/googleads/v8/services/webpage_view_service.proto create mode 100644 google/analytics/admin/v1alpha/access_report.proto create mode 100644 google/analytics/admin/v1alpha/analyticsadmin.yaml create mode 100644 google/analytics/admin/v1alpha/audience.proto create mode 100644 google/analytics/admin/v1beta/BUILD.bazel create mode 100644 google/analytics/admin/v1beta/admin_grpc_service_config.json create mode 100644 google/analytics/admin/v1beta/analytics_admin.proto create mode 100644 google/analytics/admin/v1beta/analyticsadmin.yaml create mode 100644 google/analytics/admin/v1beta/resources.proto create mode 100644 google/analytics/data/v1alpha/BUILD.bazel create mode 100644 google/analytics/data/v1alpha/analytics_data_api.proto create mode 100644 google/analytics/data/v1alpha/analytics_data_grpc_service_config.json create mode 100644 google/analytics/data/v1alpha/analyticsdata_v1alpha.yaml create mode 100644 google/analytics/data/v1alpha/data.proto create mode 100644 google/api/apikeys/BUILD.bazel create mode 100644 google/api/apikeys/v2/BUILD.bazel create mode 100644 google/api/apikeys/v2/apikeys.proto create mode 100644 google/api/apikeys/v2/apikeys_grpc_service_config.json create mode 100644 google/api/apikeys/v2/apikeys_v2.yaml create mode 100644 google/api/apikeys/v2/resources.proto create mode 100644 google/api/servicecontrol/v2/BUILD.bazel create mode 100644 google/api/servicecontrol/v2/service_controller.proto create mode 100644 google/api/servicecontrol/v2/servicecontrol.yaml create mode 100644 google/api/servicecontrol/v2/servicecontrol_grpc_service_config.json create mode 100644 google/bigtable/v2/request_stats.proto create mode 100644 google/bigtable/v2/response_params.proto create mode 100644 google/chat/logging/v1/BUILD.bazel create mode 100644 google/chat/logging/v1/chat_app_log_entry.proto create mode 100644 google/cloud/aiplatform/BUILD.bazel create mode 100644 google/cloud/aiplatform/v1/featurestore_monitoring.proto create mode 100644 google/cloud/aiplatform/v1/pipeline_failure_policy.proto create mode 100644 google/cloud/aiplatform/v1/saved_query.proto create mode 100644 google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto create mode 100644 google/cloud/aiplatform/v1beta1/deployment_resource_pool_service.proto create mode 100644 google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto create mode 100644 google/cloud/aiplatform/v1beta1/saved_query.proto create mode 100644 google/cloud/apigeeregistry/BUILD.bazel create mode 100644 google/cloud/apigeeregistry/v1/BUILD.bazel create mode 100644 google/cloud/apigeeregistry/v1/apigeeregistry_grpc_service_config.json create mode 100644 google/cloud/apigeeregistry/v1/apigeeregistry_v1.yaml create mode 100644 google/cloud/apigeeregistry/v1/provisioning_service.proto create mode 100644 google/cloud/apigeeregistry/v1/registry_models.proto create mode 100644 google/cloud/apigeeregistry/v1/registry_service.proto delete mode 100644 google/cloud/asset/asset_v1beta1.yaml delete mode 100644 google/cloud/asset/asset_v1p2beta1.yaml delete mode 100644 google/cloud/asset/v1p4beta1/BUILD.bazel delete mode 100644 google/cloud/asset/v1p4beta1/asset_service.proto delete mode 100644 google/cloud/asset/v1p4beta1/assets.proto delete mode 100644 google/cloud/asset/v1p4beta1/cloudasset_gapic.yaml delete mode 100644 google/cloud/asset/v1p4beta1/cloudasset_grpc_service_config.json delete mode 100644 google/cloud/asset/v1p4beta1/cloudasset_v1p4beta1.yaml create mode 100644 google/cloud/assuredworkloads/regulatoryintercept/logging/v1/BUILD.bazel create mode 100644 google/cloud/assuredworkloads/regulatoryintercept/logging/v1/regulatory_intercept_ack_log_entry.proto create mode 100644 google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto create mode 100644 google/cloud/assuredworkloads/v1beta1/assuredworkloads_service.proto delete mode 100644 google/cloud/assuredworkloads/v1beta1/assuredworkloads_v1beta1.proto delete mode 100644 google/cloud/automl/automl_v1.yaml delete mode 100644 google/cloud/automl/automl_v1beta1.yaml create mode 100644 google/cloud/baremetalsolution/BUILD.bazel create mode 100644 google/cloud/baremetalsolution/v2/instance.proto create mode 100644 google/cloud/baremetalsolution/v2/lun.proto create mode 100644 google/cloud/baremetalsolution/v2/network.proto create mode 100644 google/cloud/baremetalsolution/v2/nfs_share.proto create mode 100644 google/cloud/baremetalsolution/v2/volume.proto create mode 100644 google/cloud/batch/BUILD.bazel create mode 100644 google/cloud/batch/v1/BUILD.bazel create mode 100644 google/cloud/batch/v1/batch.proto create mode 100644 google/cloud/batch/v1/batch_v1.yaml create mode 100644 google/cloud/batch/v1/batch_v1_grpc_service_config.json create mode 100644 google/cloud/batch/v1/job.proto create mode 100644 google/cloud/batch/v1/task.proto create mode 100644 google/cloud/batch/v1/volume.proto create mode 100644 google/cloud/batch/v1alpha/BUILD.bazel create mode 100644 google/cloud/batch/v1alpha/batch.proto create mode 100644 google/cloud/batch/v1alpha/batch_v1alpha.yaml create mode 100644 google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json create mode 100644 google/cloud/batch/v1alpha/job.proto create mode 100644 google/cloud/batch/v1alpha/task.proto create mode 100644 google/cloud/batch/v1alpha/volume.proto create mode 100644 google/cloud/beyondcorp/appconnections/BUILD.bazel create mode 100644 google/cloud/beyondcorp/appconnections/v1/BUILD.bazel create mode 100644 google/cloud/beyondcorp/appconnections/v1/app_connections_service.proto create mode 100644 google/cloud/beyondcorp/appconnections/v1/beyondcorp-appconnections_grpc_service_config.json create mode 100644 google/cloud/beyondcorp/appconnections/v1/beyondcorp_v1.yaml create mode 100644 google/cloud/beyondcorp/appconnectors/BUILD.bazel create mode 100644 google/cloud/beyondcorp/appconnectors/v1/BUILD.bazel create mode 100644 google/cloud/beyondcorp/appconnectors/v1/app_connector_instance_config.proto create mode 100644 google/cloud/beyondcorp/appconnectors/v1/app_connectors_service.proto create mode 100644 google/cloud/beyondcorp/appconnectors/v1/beyondcorp-appconnectors_grpc_service_config.json create mode 100644 google/cloud/beyondcorp/appconnectors/v1/beyondcorp_v1.yaml create mode 100644 google/cloud/beyondcorp/appconnectors/v1/resource_info.proto create mode 100644 google/cloud/beyondcorp/appgateways/BUILD.bazel create mode 100644 google/cloud/beyondcorp/appgateways/v1/BUILD.bazel create mode 100644 google/cloud/beyondcorp/appgateways/v1/app_gateways_service.proto create mode 100644 google/cloud/beyondcorp/appgateways/v1/beyondcorp-appgateways_grpc_service_config.json create mode 100644 google/cloud/beyondcorp/appgateways/v1/beyondcorp_v1.yaml create mode 100644 google/cloud/beyondcorp/clientconnectorservices/BUILD.bazel create mode 100644 google/cloud/beyondcorp/clientconnectorservices/v1/BUILD.bazel create mode 100644 google/cloud/beyondcorp/clientconnectorservices/v1/beyondcorp-clientconnectorservices_grpc_service_config.json create mode 100644 google/cloud/beyondcorp/clientconnectorservices/v1/beyondcorp_v1.yaml create mode 100644 google/cloud/beyondcorp/clientconnectorservices/v1/client_connector_services_service.proto create mode 100644 google/cloud/beyondcorp/clientgateways/BUILD.bazel create mode 100644 google/cloud/beyondcorp/clientgateways/v1/BUILD.bazel create mode 100644 google/cloud/beyondcorp/clientgateways/v1/beyondcorp-clientgateways_grpc_service_config.json create mode 100644 google/cloud/beyondcorp/clientgateways/v1/beyondcorp_v1.yaml create mode 100644 google/cloud/beyondcorp/clientgateways/v1/client_gateways_service.proto create mode 100644 google/cloud/bigquery/analyticshub/v1/BUILD.bazel create mode 100644 google/cloud/bigquery/analyticshub/v1/analyticshub.proto create mode 100644 google/cloud/bigquery/analyticshub/v1/analyticshub_v1.yaml create mode 100644 google/cloud/bigquery/analyticshub/v1/analyticshub_v1_grpc_service_config.json delete mode 100644 google/cloud/bigquery/bigquery_v2.yaml create mode 100644 google/cloud/bigquery/dataexchange/BUILD.bazel create mode 100644 google/cloud/bigquery/dataexchange/v1beta1/BUILD.bazel create mode 100644 google/cloud/bigquery/dataexchange/v1beta1/analyticshub_v1beta1.yaml create mode 100644 google/cloud/bigquery/dataexchange/v1beta1/analyticshub_v1beta1_grpc_service_config.json create mode 100644 google/cloud/bigquery/dataexchange/v1beta1/dataexchange.proto create mode 100644 google/cloud/bigquery/datapolicies/BUILD.bazel create mode 100644 google/cloud/bigquery/datapolicies/v1beta1/BUILD.bazel create mode 100644 google/cloud/bigquery/datapolicies/v1beta1/bigquerydatapolicy_v1beta1.yaml create mode 100644 google/cloud/bigquery/datapolicies/v1beta1/datapolicies_v1beta1_grpc_service_config.json create mode 100644 google/cloud/bigquery/datapolicies/v1beta1/datapolicy.proto create mode 100644 google/cloud/bigquery/migration/BUILD.bazel create mode 100644 google/cloud/bigquery/migration/v2/BUILD.bazel create mode 100644 google/cloud/bigquery/migration/v2/bigquerymigration_grpc_service_config.json create mode 100644 google/cloud/bigquery/migration/v2/bigquerymigration_v2.yaml create mode 100644 google/cloud/bigquery/migration/v2/migration_entities.proto create mode 100644 google/cloud/bigquery/migration/v2/migration_error_details.proto create mode 100644 google/cloud/bigquery/migration/v2/migration_metrics.proto create mode 100644 google/cloud/bigquery/migration/v2/migration_service.proto create mode 100644 google/cloud/bigquery/migration/v2/translation_config.proto create mode 100644 google/cloud/bigquery/storage/v1/annotations.proto delete mode 100644 google/cloud/bigquerymigration/v2alpha/bigquerymigration_grpc_service_config.json create mode 100644 google/cloud/certificatemanager/BUILD.bazel create mode 100644 google/cloud/certificatemanager/logging/v1/BUILD.bazel create mode 100644 google/cloud/certificatemanager/logging/v1/logs.proto create mode 100644 google/cloud/certificatemanager/v1/BUILD.bazel create mode 100644 google/cloud/certificatemanager/v1/certificate_manager.proto create mode 100644 google/cloud/certificatemanager/v1/certificatemanager_grpc_service_config.json create mode 100644 google/cloud/certificatemanager/v1/certificatemanager_v1.yaml create mode 100644 google/cloud/channel/v1/repricing.proto create mode 100644 google/cloud/cloudsetup/logging/v1/BUILD.bazel create mode 100644 google/cloud/cloudsetup/logging/v1/complete_deployment.proto create mode 100644 google/cloud/commerce/consumer/procurement/v1alpha1/BUILD.bazel create mode 100644 google/cloud/commerce/consumer/procurement/v1alpha1/cloudcommerceconsumerprocurement_v1alpha1.yaml create mode 100644 google/cloud/commerce/consumer/procurement/v1alpha1/commerceconsumerprocurement_grpc_service_config.json create mode 100644 google/cloud/commerce/consumer/procurement/v1alpha1/order.proto create mode 100644 google/cloud/commerce/consumer/procurement/v1alpha1/procurement_service.proto create mode 100644 google/cloud/connectors/v1/BUILD.bazel create mode 100644 google/cloud/connectors/v1/authconfig.proto create mode 100644 google/cloud/connectors/v1/common.proto create mode 100644 google/cloud/connectors/v1/connection.proto create mode 100644 google/cloud/connectors/v1/connector.proto create mode 100644 google/cloud/connectors/v1/connector_version.proto create mode 100644 google/cloud/connectors/v1/connectors_grpc_service_config.json create mode 100644 google/cloud/connectors/v1/connectors_service.proto create mode 100644 google/cloud/connectors/v1/connectors_v1.yaml create mode 100644 google/cloud/connectors/v1/destination_config.proto create mode 100644 google/cloud/connectors/v1/provider.proto create mode 100644 google/cloud/connectors/v1/runtime.proto create mode 100644 google/cloud/contentwarehouse/v1/BUILD.bazel create mode 100644 google/cloud/contentwarehouse/v1/async_document_service_request.proto create mode 100644 google/cloud/contentwarehouse/v1/common.proto create mode 100644 google/cloud/contentwarehouse/v1/contentwarehouse_grpc_service_config.json create mode 100644 google/cloud/contentwarehouse/v1/contentwarehouse_v1.yaml create mode 100644 google/cloud/contentwarehouse/v1/document.proto create mode 100644 google/cloud/contentwarehouse/v1/document_link_service.proto create mode 100644 google/cloud/contentwarehouse/v1/document_schema.proto create mode 100644 google/cloud/contentwarehouse/v1/document_schema_service.proto create mode 100644 google/cloud/contentwarehouse/v1/document_service.proto create mode 100644 google/cloud/contentwarehouse/v1/document_service_request.proto create mode 100644 google/cloud/contentwarehouse/v1/filters.proto create mode 100644 google/cloud/contentwarehouse/v1/histogram.proto create mode 100644 google/cloud/contentwarehouse/v1/rule_engine.proto create mode 100644 google/cloud/contentwarehouse/v1/ruleset_service.proto create mode 100644 google/cloud/contentwarehouse/v1/ruleset_service_request.proto create mode 100644 google/cloud/contentwarehouse/v1/synonymset.proto create mode 100644 google/cloud/contentwarehouse/v1/synonymset_service.proto create mode 100644 google/cloud/contentwarehouse/v1/synonymset_service_request.proto create mode 100644 google/cloud/datacatalog/v1/dataplex_spec.proto create mode 100644 google/cloud/datacatalog/v1/physical_schema.proto create mode 100644 google/cloud/dataform/BUILD.bazel create mode 100644 google/cloud/dataform/v1alpha2/BUILD.bazel create mode 100644 google/cloud/dataform/v1alpha2/dataform.proto create mode 100644 google/cloud/dataform/v1alpha2/dataform_grpc_service_config.json create mode 100644 google/cloud/dataform/v1alpha2/dataform_v1alpha2.yaml create mode 100644 google/cloud/dataform/v1beta1/BUILD.bazel create mode 100644 google/cloud/dataform/v1beta1/dataform.proto create mode 100644 google/cloud/dataform/v1beta1/dataform_grpc_service_config.json create mode 100644 google/cloud/dataform/v1beta1/dataform_v1beta1.yaml create mode 100644 google/cloud/dataplex/BUILD.bazel create mode 100644 google/cloud/dataplex/v1/analyze.proto create mode 100644 google/cloud/dataplex/v1/content.proto delete mode 100644 google/cloud/dataproc/dataproc.yaml create mode 100644 google/cloud/datastream/v1/BUILD.bazel create mode 100644 google/cloud/datastream/v1/datastream.proto create mode 100644 google/cloud/datastream/v1/datastream_grpc_service_config.json create mode 100644 google/cloud/datastream/v1/datastream_resources.proto create mode 100644 google/cloud/datastream/v1/datastream_v1.yaml create mode 100644 google/cloud/deploy/v1/deliverypipeline_notification_payload.proto create mode 100644 google/cloud/deploy/v1/jobrun_notification_payload.proto create mode 100644 google/cloud/deploy/v1/log_enums.proto create mode 100644 google/cloud/deploy/v1/release_notification_payload.proto create mode 100644 google/cloud/deploy/v1/release_render_payload.proto create mode 100644 google/cloud/deploy/v1/rollout_notification_payload.proto create mode 100644 google/cloud/deploy/v1/target_notification_payload.proto create mode 100644 google/cloud/dialogflow/v2/conversation_dataset.proto create mode 100644 google/cloud/dialogflow/v2/conversation_model.proto create mode 100644 google/cloud/discoveryengine/v1beta/BUILD.bazel create mode 100644 google/cloud/discoveryengine/v1beta/common.proto create mode 100644 google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json create mode 100644 google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml create mode 100644 google/cloud/discoveryengine/v1beta/document.proto create mode 100644 google/cloud/discoveryengine/v1beta/document_service.proto create mode 100644 google/cloud/discoveryengine/v1beta/import_config.proto create mode 100644 google/cloud/discoveryengine/v1beta/recommendation_service.proto create mode 100644 google/cloud/discoveryengine/v1beta/user_event.proto create mode 100644 google/cloud/discoveryengine/v1beta/user_event_service.proto create mode 100644 google/cloud/documentai/v1/barcode.proto create mode 100644 google/cloud/documentai/v1/document_schema.proto create mode 100644 google/cloud/documentai/v1/processor.proto create mode 100644 google/cloud/documentai/v1/processor_type.proto create mode 100644 google/cloud/documentai/v1beta3/barcode.proto create mode 100644 google/cloud/documentai/v1beta3/document_schema.proto create mode 100644 google/cloud/edgecontainer/v1/BUILD.bazel create mode 100644 google/cloud/edgecontainer/v1/edgecontainer_grpc_service_config.json create mode 100644 google/cloud/edgecontainer/v1/edgecontainer_v1.yaml create mode 100644 google/cloud/edgecontainer/v1/resources.proto create mode 100644 google/cloud/edgecontainer/v1/service.proto create mode 100644 google/cloud/enterpriseknowledgegraph/v1/BUILD.bazel create mode 100644 google/cloud/enterpriseknowledgegraph/v1/enterpriseknowledgegraph_grpc_service_config.json create mode 100644 google/cloud/enterpriseknowledgegraph/v1/enterpriseknowledgegraph_v1.yaml create mode 100644 google/cloud/enterpriseknowledgegraph/v1/job_state.proto create mode 100644 google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto create mode 100644 google/cloud/enterpriseknowledgegraph/v1/service.proto create mode 100644 google/cloud/eventarc/v1/channel.proto create mode 100644 google/cloud/eventarc/v1/channel_connection.proto create mode 100644 google/cloud/eventarc/v1/discovery.proto create mode 100644 google/cloud/filestore/v1beta1/file_gapic.yaml create mode 100644 google/cloud/functions/v2/BUILD.bazel create mode 100644 google/cloud/functions/v2/cloudfunctions_v2.yaml create mode 100644 google/cloud/functions/v2/functions.proto create mode 100644 google/cloud/functions/v2/functions_grpc_service_config.json create mode 100644 google/cloud/functions/v2alpha/BUILD.bazel create mode 100644 google/cloud/functions/v2alpha/cloudfunctions_v2alpha.yaml create mode 100644 google/cloud/functions/v2alpha/functions.proto create mode 100644 google/cloud/functions/v2alpha/functions_grpc_service_config.json create mode 100644 google/cloud/functions/v2beta/BUILD.bazel create mode 100644 google/cloud/functions/v2beta/cloudfunctions_v2beta.yaml create mode 100644 google/cloud/functions/v2beta/functions.proto create mode 100644 google/cloud/functions/v2beta/functions_grpc_service_config.json delete mode 100644 google/cloud/gaming/allocationendpoint/v1alpha/BUILD.bazel delete mode 100644 google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint.proto delete mode 100644 google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint_grpc_service_config.json delete mode 100644 google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint_v1alpha.yaml create mode 100644 google/cloud/gkebackup/BUILD.bazel create mode 100644 google/cloud/gkebackup/v1/BUILD.bazel create mode 100644 google/cloud/gkebackup/v1/backup.proto create mode 100644 google/cloud/gkebackup/v1/backup_plan.proto create mode 100644 google/cloud/gkebackup/v1/common.proto create mode 100644 google/cloud/gkebackup/v1/gkebackup.proto create mode 100644 google/cloud/gkebackup/v1/gkebackup_grpc_service_config.json create mode 100644 google/cloud/gkebackup/v1/gkebackup_v1.yaml create mode 100644 google/cloud/gkebackup/v1/restore.proto create mode 100644 google/cloud/gkebackup/v1/restore_plan.proto create mode 100644 google/cloud/gkebackup/v1/volume.proto create mode 100644 google/cloud/gkemulticloud/BUILD.bazel create mode 100644 google/cloud/gkemulticloud/v1/BUILD.bazel create mode 100644 google/cloud/gkemulticloud/v1/aws_resources.proto create mode 100644 google/cloud/gkemulticloud/v1/aws_service.proto create mode 100644 google/cloud/gkemulticloud/v1/azure_resources.proto create mode 100644 google/cloud/gkemulticloud/v1/azure_service.proto create mode 100644 google/cloud/gkemulticloud/v1/common_resources.proto create mode 100644 google/cloud/gkemulticloud/v1/gkemulticloud_grpc_service_config.json create mode 100644 google/cloud/gkemulticloud/v1/gkemulticloud_v1.yaml create mode 100644 google/cloud/healthcare/logging/BUILD.bazel create mode 100644 google/cloud/healthcare/logging/annotation.proto create mode 100644 google/cloud/healthcare/logging/consent.proto create mode 100644 google/cloud/healthcare/logging/deid.proto create mode 100644 google/cloud/healthcare/logging/dicom.proto create mode 100644 google/cloud/healthcare/logging/fhir.proto create mode 100644 google/cloud/healthcare/logging/hl7v2.proto create mode 100644 google/cloud/identitytoolkit/logging/BUILD.bazel create mode 100644 google/cloud/identitytoolkit/logging/request_log.proto create mode 100644 google/cloud/ids/logging/v1/BUILD.bazel create mode 100644 google/cloud/ids/logging/v1/logging.proto create mode 100644 google/cloud/kms/v1/ekm_service.proto create mode 100644 google/cloud/kubernetes/security/containersecurity_logging/BUILD.bazel create mode 100644 google/cloud/kubernetes/security/containersecurity_logging/logging.proto delete mode 100644 google/cloud/language/language.yaml delete mode 100644 google/cloud/ml/v1/job_service.proto delete mode 100644 google/cloud/ml/v1/model_service.proto delete mode 100644 google/cloud/ml/v1/operation_metadata.proto delete mode 100644 google/cloud/ml/v1/prediction_service.proto delete mode 100644 google/cloud/ml/v1/project_service.proto create mode 100644 google/cloud/networkanalyzer/logging/v1/BUILD.bazel create mode 100644 google/cloud/networkanalyzer/logging/v1/analyzer_log.proto create mode 100644 google/cloud/networksecurity/v1/BUILD.bazel create mode 100644 google/cloud/networksecurity/v1/authorization_policy.proto create mode 100644 google/cloud/networksecurity/v1/client_tls_policy.proto create mode 100644 google/cloud/networksecurity/v1/common.proto create mode 100644 google/cloud/networksecurity/v1/network_security.proto create mode 100644 google/cloud/networksecurity/v1/networksecurity_v1.yaml create mode 100644 google/cloud/networksecurity/v1/networksecurity_v1_grpc_service_config.json create mode 100644 google/cloud/networksecurity/v1/server_tls_policy.proto create mode 100644 google/cloud/networksecurity/v1/tls.proto create mode 100644 google/cloud/networkservices/v1/gateway.proto create mode 100644 google/cloud/networkservices/v1/grpc_route.proto create mode 100644 google/cloud/networkservices/v1/http_route.proto create mode 100644 google/cloud/networkservices/v1/mesh.proto create mode 100644 google/cloud/networkservices/v1/service_binding.proto create mode 100644 google/cloud/networkservices/v1/tcp_route.proto create mode 100644 google/cloud/networkservices/v1/tls_route.proto create mode 100644 google/cloud/notebooks/logging/v1/BUILD.bazel create mode 100644 google/cloud/notebooks/logging/v1/runtime_log.proto create mode 100644 google/cloud/optimization/BUILD.bazel create mode 100644 google/cloud/optimization/v1/BUILD.bazel create mode 100644 google/cloud/optimization/v1/async_model.proto create mode 100644 google/cloud/optimization/v1/cloudoptimization_gapic.yaml create mode 100644 google/cloud/optimization/v1/cloudoptimization_grpc_service_config.json create mode 100644 google/cloud/optimization/v1/cloudoptimization_v1.yaml create mode 100644 google/cloud/optimization/v1/fleet_routing.proto create mode 100644 google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto create mode 100644 google/cloud/osconfig/v1beta/osconfig_common.proto delete mode 100644 google/cloud/oslogin/oslogin_v1beta.yaml create mode 100644 google/cloud/paymentgateway/issuerswitch/v1/BUILD.bazel create mode 100644 google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto create mode 100644 google/cloud/paymentgateway/issuerswitch/v1/issuerswitch_grpc_service_config.json create mode 100644 google/cloud/paymentgateway/issuerswitch/v1/issuerswitch_v1.yaml create mode 100644 google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto create mode 100644 google/cloud/paymentgateway/issuerswitch/v1/rules.proto create mode 100644 google/cloud/paymentgateway/issuerswitch/v1/transactions.proto create mode 100644 google/cloud/recommender/v1/insight_type_config.proto create mode 100644 google/cloud/recommender/v1/recommender_config.proto delete mode 100644 google/cloud/redis/redis_v1.yaml delete mode 100644 google/cloud/redis/redis_v1beta1.yaml create mode 100644 google/cloud/retail/v2/control.proto create mode 100644 google/cloud/retail/v2/control_service.proto create mode 100644 google/cloud/retail/v2/promotion.proto create mode 100644 google/cloud/retail/v2/serving_config.proto create mode 100644 google/cloud/retail/v2/serving_config_service.proto create mode 100644 google/cloud/retail/v2alpha/control.proto create mode 100644 google/cloud/retail/v2alpha/control_service.proto create mode 100644 google/cloud/retail/v2alpha/model.proto create mode 100644 google/cloud/retail/v2alpha/model_service.proto create mode 100644 google/cloud/retail/v2alpha/promotion.proto create mode 100644 google/cloud/retail/v2alpha/serving_config.proto create mode 100644 google/cloud/retail/v2alpha/serving_config_service.proto create mode 100644 google/cloud/retail/v2beta/control.proto create mode 100644 google/cloud/retail/v2beta/control_service.proto create mode 100644 google/cloud/retail/v2beta/model.proto create mode 100644 google/cloud/retail/v2beta/model_service.proto create mode 100644 google/cloud/retail/v2beta/promotion.proto create mode 100644 google/cloud/retail/v2beta/serving_config.proto create mode 100644 google/cloud/retail/v2beta/serving_config_service.proto create mode 100644 google/cloud/run/BUILD.bazel create mode 100644 google/cloud/run/v2/BUILD.bazel create mode 100644 google/cloud/run/v2/condition.proto create mode 100644 google/cloud/run/v2/k8s.min.proto create mode 100644 google/cloud/run/v2/revision.proto create mode 100644 google/cloud/run/v2/revision_template.proto create mode 100644 google/cloud/run/v2/run_grpc_service_config.json create mode 100644 google/cloud/run/v2/run_v2.yaml create mode 100644 google/cloud/run/v2/service.proto create mode 100644 google/cloud/run/v2/traffic_target.proto create mode 100644 google/cloud/run/v2/vendor_settings.proto create mode 100644 google/cloud/security/publicca/BUILD.bazel create mode 100644 google/cloud/security/publicca/v1beta1/BUILD.bazel create mode 100644 google/cloud/security/publicca/v1beta1/publicca_v1beta1.yaml create mode 100644 google/cloud/security/publicca/v1beta1/publicca_v1beta1_grpc_service_config.json create mode 100644 google/cloud/security/publicca/v1beta1/resources.proto create mode 100644 google/cloud/security/publicca/v1beta1/service.proto delete mode 100644 google/cloud/securitycenter/securitycenter_v1beta1.yaml create mode 100644 google/cloud/securitycenter/v1/access.proto create mode 100644 google/cloud/securitycenter/v1/bigquery_export.proto create mode 100644 google/cloud/securitycenter/v1/compliance.proto create mode 100644 google/cloud/securitycenter/v1/connection.proto create mode 100644 google/cloud/securitycenter/v1/contact_details.proto create mode 100644 google/cloud/securitycenter/v1/container.proto create mode 100644 google/cloud/securitycenter/v1/database.proto create mode 100644 google/cloud/securitycenter/v1/exfiltration.proto create mode 100644 google/cloud/securitycenter/v1/file.proto create mode 100644 google/cloud/securitycenter/v1/iam_binding.proto create mode 100644 google/cloud/securitycenter/v1/kubernetes.proto create mode 100644 google/cloud/securitycenter/v1/label.proto create mode 100644 google/cloud/securitycenter/v1/mitre_attack.proto create mode 100644 google/cloud/securitycenter/v1/process.proto create mode 100644 google/cloud/sensitiveaction/logging/v1/BUILD.bazel create mode 100644 google/cloud/sensitiveaction/logging/v1/sensitive_action_payload.proto create mode 100644 google/cloud/speech/v1/cloud_speech_adaptation.proto create mode 100644 google/cloud/speech/v2/BUILD.bazel create mode 100644 google/cloud/speech/v2/cloud_speech.proto create mode 100644 google/cloud/speech/v2/speech_grpc_service_config.json create mode 100644 google/cloud/speech/v2/speech_v2.yaml create mode 100644 google/cloud/stream/logging/v1/BUILD.bazel create mode 100644 google/cloud/stream/logging/v1/logging.proto delete mode 100644 google/cloud/talent/v4beta1/application.proto delete mode 100644 google/cloud/talent/v4beta1/application_service.proto delete mode 100644 google/cloud/talent/v4beta1/profile.proto delete mode 100644 google/cloud/talent/v4beta1/profile_service.proto delete mode 100644 google/cloud/texttospeech/tts.yaml delete mode 100644 google/cloud/texttospeech/tts_v1.yaml delete mode 100644 google/cloud/texttospeech/tts_v1beta1.yaml create mode 100644 google/cloud/timeseriesinsights/v1/BUILD.bazel create mode 100644 google/cloud/timeseriesinsights/v1/timeseries_insights.proto create mode 100644 google/cloud/timeseriesinsights/v1/timeseries_insights_grpc_service_config.json create mode 100644 google/cloud/timeseriesinsights/v1/timeseriesinsights_v1.yaml create mode 100644 google/cloud/video/livestream/BUILD.bazel create mode 100644 google/cloud/video/stitcher/BUILD.bazel create mode 100644 google/cloud/video/stitcher/v1/BUILD.bazel create mode 100644 google/cloud/video/stitcher/v1/ad_tag_details.proto create mode 100644 google/cloud/video/stitcher/v1/cdn_keys.proto create mode 100644 google/cloud/video/stitcher/v1/companions.proto create mode 100644 google/cloud/video/stitcher/v1/events.proto create mode 100644 google/cloud/video/stitcher/v1/sessions.proto create mode 100644 google/cloud/video/stitcher/v1/slates.proto create mode 100644 google/cloud/video/stitcher/v1/stitch_details.proto create mode 100644 google/cloud/video/stitcher/v1/video_stitcher_service.proto create mode 100644 google/cloud/video/stitcher/v1/videostitcher_grpc_service_config.json create mode 100644 google/cloud/video/stitcher/v1/videostitcher_v1.yaml delete mode 100644 google/cloud/video/transcoder/v1beta1/BUILD.bazel delete mode 100644 google/cloud/video/transcoder/v1beta1/resources.proto delete mode 100644 google/cloud/video/transcoder/v1beta1/services.proto delete mode 100644 google/cloud/video/transcoder/v1beta1/transcoder_grpc_service_config.json delete mode 100644 google/cloud/video/transcoder/v1beta1/transcoder_v1beta1.yaml delete mode 100644 google/cloud/vision/vision_v1p1beta1.yaml delete mode 100644 google/cloud/vision/vision_v1p2beta1.yaml delete mode 100644 google/cloud/vision/vision_v1p3beta1.yaml delete mode 100644 google/cloud/vision/vision_v1p4beta1.yaml create mode 100644 google/cloud/websecurityscanner/v1/scan_run_log.proto create mode 100644 google/devtools/artifactregistry/v1/apt_artifact.proto create mode 100644 google/devtools/artifactregistry/v1/file.proto create mode 100644 google/devtools/artifactregistry/v1/package.proto create mode 100644 google/devtools/artifactregistry/v1/settings.proto create mode 100644 google/devtools/artifactregistry/v1/tag.proto create mode 100644 google/devtools/artifactregistry/v1/version.proto create mode 100644 google/devtools/artifactregistry/v1/yum_artifact.proto delete mode 100644 google/devtools/build/buildeventservice.yaml delete mode 100644 google/devtools/cloudbuild/cloudbuild.yaml delete mode 100644 google/devtools/cloudprofiler/cloudprofiler.yaml delete mode 100644 google/devtools/containeranalysis/containeranalysis_v1beta1.yaml delete mode 100644 google/example/showcase/v1/compliance.proto delete mode 100644 google/example/showcase/v1/echo.proto delete mode 100644 google/example/showcase/v1/sequence.proto delete mode 100644 google/example/showcase/v1/showcase_grpc_service_config.json delete mode 100644 google/example/showcase/v1/testing.proto delete mode 100644 google/example/showcase/v1beta1/compliance.proto delete mode 100644 google/example/showcase/v1beta1/echo.proto delete mode 100644 google/example/showcase/v1beta1/sequence.proto delete mode 100644 google/example/showcase/v1beta1/showcase_grpc_service_config.json delete mode 100644 google/example/showcase/v1beta1/testing.proto delete mode 100644 google/example/showcase/v1beta2/compliance.proto delete mode 100644 google/example/showcase/v1beta2/echo.proto delete mode 100644 google/example/showcase/v1beta2/sequence.proto delete mode 100644 google/example/showcase/v1beta2/showcase_grpc_service_config.json delete mode 100644 google/example/showcase/v1beta2/testing.proto delete mode 100644 google/example/showcase/v1beta3/compliance.proto delete mode 100644 google/example/showcase/v1beta3/echo.proto delete mode 100644 google/example/showcase/v1beta3/sequence.proto delete mode 100644 google/example/showcase/v1beta3/showcase_grpc_service_config.json delete mode 100644 google/example/showcase/v1beta3/testing.proto delete mode 100644 google/firestore/admin/firestore_admin_v1.yaml delete mode 100644 google/firestore/firestore_v1.yaml delete mode 100644 google/firestore/firestore_v1beta1.yaml create mode 100644 google/firestore/v1/aggregation_result.proto delete mode 100644 google/home/graph/base.yaml delete mode 100644 google/iam/credentials/iamcredentials_v1.yaml delete mode 100644 google/iam/iam_meta_api.yaml create mode 100644 google/iam/v2/BUILD.bazel create mode 100644 google/iam/v2/deny.proto create mode 100644 google/iam/v2/iam_grpc_service_config.json create mode 100644 google/iam/v2/iam_v2.yaml create mode 100644 google/iam/v2/policy.proto create mode 100644 google/iam/v2beta/BUILD.bazel create mode 100644 google/iam/v2beta/deny.proto create mode 100644 google/iam/v2beta/iam_grpc_service_config.json create mode 100644 google/iam/v2beta/iam_v2beta.yaml create mode 100644 google/iam/v2beta/policy.proto delete mode 100644 google/logging/v2/logging.yaml create mode 100644 google/logging/v2/logging_v2.yaml create mode 100644 google/maps/addressvalidation/v1/BUILD.bazel create mode 100644 google/maps/addressvalidation/v1/address.proto create mode 100644 google/maps/addressvalidation/v1/address_validation_service.proto create mode 100644 google/maps/addressvalidation/v1/addressvalidation_grpc_service_config.json create mode 100644 google/maps/addressvalidation/v1/addressvalidation_v1.yaml create mode 100644 google/maps/addressvalidation/v1/geocode.proto create mode 100644 google/maps/addressvalidation/v1/metadata.proto create mode 100644 google/maps/addressvalidation/v1/usps_data.proto create mode 100644 google/maps/fleetengine/delivery/v1/common.proto create mode 100644 google/maps/fleetengine/delivery/v1/header.proto create mode 100644 google/maps/mapsplatformdatasets/v1alpha/BUILD.bazel create mode 100644 google/maps/mapsplatformdatasets/v1alpha/data_source.proto create mode 100644 google/maps/mapsplatformdatasets/v1alpha/dataset.proto create mode 100644 google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets.proto create mode 100644 google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets_alpha_service.proto create mode 100644 google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_grpc_service_config.json create mode 100644 google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_v1alpha.yaml create mode 100644 google/maps/regionlookup/v1alpha/BUILD.bazel create mode 100644 google/maps/regionlookup/v1alpha/region_identifier.proto create mode 100644 google/maps/regionlookup/v1alpha/region_lookup_service.proto create mode 100644 google/maps/regionlookup/v1alpha/region_match.proto create mode 100644 google/maps/regionlookup/v1alpha/region_search_values.proto create mode 100644 google/maps/regionlookup/v1alpha/regionlookup_grpc_service_config.json create mode 100644 google/maps/regionlookup/v1alpha/regionlookup_v1alpha.yaml create mode 100644 google/maps/routing/v2/BUILD.bazel create mode 100644 google/maps/routing/v2/fallback_info.proto create mode 100644 google/maps/routing/v2/library_grpc_service_config.json create mode 100644 google/maps/routing/v2/location.proto create mode 100644 google/maps/routing/v2/maneuver.proto create mode 100644 google/maps/routing/v2/navigation_instruction.proto create mode 100644 google/maps/routing/v2/polyline.proto create mode 100644 google/maps/routing/v2/route.proto create mode 100644 google/maps/routing/v2/route_modifiers.proto create mode 100644 google/maps/routing/v2/route_travel_mode.proto create mode 100644 google/maps/routing/v2/routes_service.proto create mode 100644 google/maps/routing/v2/routes_v2.yaml create mode 100644 google/maps/routing/v2/routing_preference.proto create mode 100644 google/maps/routing/v2/speed_reading_interval.proto create mode 100644 google/maps/routing/v2/toll_info.proto create mode 100644 google/maps/routing/v2/toll_passes.proto create mode 100644 google/maps/routing/v2/units.proto create mode 100644 google/maps/routing/v2/vehicle_emission_type.proto create mode 100644 google/maps/routing/v2/vehicle_info.proto create mode 100644 google/maps/routing/v2/waypoint.proto create mode 100644 google/monitoring/dashboard/v1/collapsible_group.proto create mode 100644 google/monitoring/dashboard/v1/dashboard_filter.proto create mode 100644 google/monitoring/dashboard/v1/logs_panel.proto create mode 100644 google/monitoring/dashboard/v1/table.proto create mode 100644 google/monitoring/dashboard/v1/table_display_options.proto create mode 100644 google/spanner/admin/database/v1/spanner.yaml delete mode 100644 google/spanner/admin/database/v1/spanner_admin_database.yaml create mode 100644 google/spanner/admin/instance/v1/common.proto delete mode 100644 google/storage/v1/storage_gapic.yaml delete mode 100644 google/storage/v1/storage_grpc_service_config.json delete mode 100644 google/storage/v1/storage_v1.yaml create mode 100644 google/storagetransfer/logging/BUILD.bazel create mode 100644 google/storagetransfer/logging/transfer_activity_log.proto create mode 100644 grafeas/v1/slsa_provenance_zero_two.proto create mode 100644 grafeas/v1/swagger/grafeas.swagger.json diff --git a/.bazeliskrc b/.bazeliskrc index 183a1cd6e..463b45379 100644 --- a/.bazeliskrc +++ b/.bazeliskrc @@ -1,2 +1,2 @@ # See https://github.com/bazelbuild/bazelisk -USE_BAZEL_VERSION=4.0.0 +USE_BAZEL_VERSION=4.2.2 diff --git a/.bazelrc b/.bazelrc index 5c973ac50..083958747 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,6 +1,9 @@ # To make proto_library rules to include source info in the descriptor build --protocopt=--include_source_info build --protocopt=--experimental_allow_proto3_optional +# New boringssl requires C++14 +build --repo_env=BAZEL_CXXOPTS="-std=c++14" + # This is to avoid JVM SIGBUS crashes on highly parallel builds, # see https://github.com/bazelbuild/bazel/issues/3236 for more details diff --git a/.github/mistaken-pull-closer.yml b/.github/mistaken-pull-closer.yml index 586371263..c3e7e5200 100644 --- a/.github/mistaken-pull-closer.yml +++ b/.github/mistaken-pull-closer.yml @@ -5,6 +5,7 @@ filters: # Don't close PRs in the pubsub_dev branch. - '@.pull_request.base.ref != "pubsub_dev"' + - '@.pull_request.base.ref != "diregapic"' # The message to post to the closed PR. commentBody: | diff --git a/.github/workflows/diregapic.yaml b/.github/workflows/diregapic.yaml new file mode 100644 index 000000000..7e1d3db3e --- /dev/null +++ b/.github/workflows/diregapic.yaml @@ -0,0 +1,50 @@ +--- +name: DIREGAPIC Updater +on: # yamllint disable-line rule:truthy + schedule: + - cron: '19 */8 * * *' + workflow_dispatch: + +jobs: + regenerate-compute: + runs-on: ubuntu-latest + container: gcr.io/gapic-images/googleapis:20220711 + steps: + - name: Checkout master + uses: actions/checkout@v3 + with: + ref: master + - name: Download discovery docs + run: | + curl https://www.googleapis.com/discovery/v1/apis/compute/v1/rest --output google/cloud/compute/v1/compute.v1.json + echo compute_revision=$(grep -oP '"revision":\s*"\d+"' google/cloud/compute/v1/compute.v1.json | grep -oP '\d+') >> $GITHUB_ENV + - name: Regenerate API definitions + run: | + bazel build //google/cloud/compute/v1:compute_gen + cp bazel-bin/google/cloud/compute/v1/compute_gen.proto google/cloud/compute/v1/compute.proto + bazel build //google/cloud/compute/v1:compute_grpc_service_config_gen + cp bazel-bin/google/cloud/compute/v1/compute_grpc_service_config_gen.json google/cloud/compute/v1/compute_grpc_service_config.json + bazel build //google/cloud/compute/v1:compute_gapic_gen + cp bazel-bin/google/cloud/compute/v1/compute_gapic_gen.yaml google/cloud/compute/v1/compute_gapic.yaml + echo api_changes=$(git diff-index --shortstat HEAD) >> $GITHUB_ENV + - name: Build GAPIC clients + if: contains(env.api_changes, 'file') + run: | + bazel build //google/cloud/compute/v1/... + bazel build //google/cloud/compute/v1/... + - name: Create PR + uses: googleapis/code-suggester@v2 + env: + ACCESS_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }} + with: + command: pr + upstream_owner: googleapis + upstream_repo: googleapis + title: 'feat: [DIREGAPIC] Update API definitions' + description: 'feat: Update Compute Engine API to revision ${{ env.compute_revision }}' + message: 'feat: Update Compute Engine API to revision ${{ env.compute_revision }}' + primary: 'master' + branch: diregapic + git_dir: '.' + force: true + fork: true diff --git a/.kokoro/Dockerfile b/.kokoro/Dockerfile index 93aa8fb82..baa9776a0 100644 --- a/.kokoro/Dockerfile +++ b/.kokoro/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.8 +FROM python:3.10 RUN apt-get update @@ -11,9 +11,9 @@ RUN apt-get install -y \ RUN mkdir -p /tools WORKDIR /tools -RUN curl -L https://github.com/bazelbuild/bazelisk/releases/download/v1.8.0/bazelisk-linux-amd64 -o bazelisk +RUN curl -L https://github.com/bazelbuild/bazelisk/releases/download/v1.12.0/bazelisk-linux-amd64 -o bazelisk RUN chmod +x bazelisk -RUN curl -L https://github.com/bazelbuild/bazel/releases/download/4.0.0/bazel-4.0.0-linux-x86_64 -o bazel +RUN curl -L https://github.com/bazelbuild/bazel/releases/download/5.2.0/bazel-5.2.0-linux-x86_64 -o bazel RUN chmod +x bazel WORKDIR / diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 6bf58b1a3..ad944f716 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -4,9 +4,11 @@ set -e cd ${KOKORO_ARTIFACTS_DIR}/github/googleapis cp .kokoro/.bazelrc $HOME/.bazelrc +CACHE_BUCKET=client-libraries-bazel-cache-github +CACHE_CMDLINE="--remote_cache=https://storage.googleapis.com/${CACHE_BUCKET} --google_default_credentials" # # Run build and tests # -${BAZELISK_BIN} --output_user_root=${BAZEL_ROOT} build --keep_going //... -${BAZELISK_BIN} --output_user_root=${BAZEL_ROOT} test --flaky_test_attempts=3 --keep_going //... +${BAZELISK_BIN} --output_user_root=${BAZEL_ROOT} build ${CACHE_CMDLINE} --keep_going //... +${BAZELISK_BIN} --output_user_root=${BAZEL_ROOT} test ${CACHE_CMDLINE} --flaky_test_attempts=3 --keep_going //... diff --git a/.kokoro/docker_update.sh b/.kokoro/docker_update.sh new file mode 100644 index 000000000..6279b8861 --- /dev/null +++ b/.kokoro/docker_update.sh @@ -0,0 +1,134 @@ +#!/bin/sh + +# This script will build a Docker image for googleapis and recompile +# PHP and Ruby runtimes binaries to use in GAPIC generators for these +# languages. +# +# Run from any local working directory where you have write access. +# +# Usage: +# $ mkdir workdir +# $ cd workdir +# $ sh /google/src/head/depot/google3/third_party/googleapis/stable/.kokoro/docker_update.sh +# +# After the script completes, it should print out commands to push the new +# Docker image and to create pull requests against Ruby and PHP generators. +# Whenever the image is published, tag it here: +# https://pantheon.corp.google.com/gcr/images/gapic-images/global/googleapis?project=gapic-images +# then release new versions of the generators and update the image tag in +# start.sh scripts in Kokoro folders in all googleapis workspaces. + +set -e + +PWD="`pwd`" +SHARED="$PWD/volume" +SCRIPT=$0 +DIRNAME=`dirname $SCRIPT` + +if test -d "$SHARED"; then + echo "The working directory $SHARED already exists, please delete it first." + exit 1 +fi +mkdir -p "$SHARED" + +# 1. Build the latest Docker image using the Dockerfile from google3 + +echo "Using Dockerfile from $DIRNAME" +cat "$DIRNAME/Dockerfile" > "$PWD/Dockerfile" + +echo "Building googleapis Docker image..." +docker build -t googleapis . +docker tag googleapis gcr.io/gapic-images/googleapis +echo "Done." + +# 2. Clone Ruby and PHP generators +cd "$SHARED" +echo "Cloning Ruby generator..." +git clone --depth 1 git@github.com:googleapis/gapic-generator-ruby.git +echo "Done." +echo "Cloning PHP generator..." +git clone --depth 1 git@github.com:googleapis/gapic-generator-php.git +echo "Done." + +# 3. Generate a script that would run Bazel to build both generators +cat > build.sh <' | $DOCKER_COMMAND --entrypoint "" googleapis /volume/$PHP_DIRECTORY/bin/php` + +echo "PHP version: $PHP_VERSION, packing..." +PHP_ARCHIVE_DIR="php-$PHP_VERSION" +PHP_TARBALL_FILENAME="php-${PHP_VERSION}_linux_x86_64.tar.gz" +mkdir -p "$PHP_ARCHIVE_DIR" +cp -r "$PHP_DIRECTORY"/bin "$PHP_DIRECTORY"/include "$PHP_DIRECTORY"/lib "$PHP_ARCHIVE_DIR" +tar cfz "$PHP_TARBALL_FILENAME" "$PHP_ARCHIVE_DIR" +echo "Done: $PHP_TARBALL_FILENAME" + +# 6. Commit the tarballs +BRANCH="update-binary-`date +%Y%m%dT%H%M%S`" + +RUBY_TARBALL_LOCATION=rules_ruby_gapic/prebuilt +cd "$SHARED/gapic-generator-ruby" +git checkout -b "$BRANCH" +git rm -f "$RUBY_TARBALL_LOCATION"/*.tar.gz +cp "$SHARED/$RUBY_TARBALL_FILENAME" "$RUBY_TARBALL_LOCATION/" +git add "$RUBY_TARBALL_LOCATION/$RUBY_TARBALL_FILENAME" +git commit -m "fix: update Ruby prebuilt binary, version $RUBY_VERSION" +echo "Pushing Ruby branch to GitHub..." +git push --set-upstream origin "$BRANCH" +echo "Done" + +PHP_TARBALL_LOCATION=rules_php_gapic/resources +cd "$SHARED/gapic-generator-php" +git checkout -b "$BRANCH" +git rm -f "$PHP_TARBALL_LOCATION"/*.tar.gz +cp "$SHARED/$PHP_TARBALL_FILENAME" "$PHP_TARBALL_LOCATION/" +git add "$PHP_TARBALL_LOCATION/$PHP_TARBALL_FILENAME" +git commit -m "fix: update PHP prebuilt binary, version $PHP_VERSION" +echo "Pushing PHP branch to GitHub..." +git push --set-upstream origin "$BRANCH" +echo "Done" + +echo +echo "Please create pull requests:" +echo " https://github.com/googleapis/gapic-generator-ruby/pull/new/$BRANCH" +echo " https://github.com/googleapis/gapic-generator-php/pull/new/$BRANCH" +echo "and push this Docker image to gcr.io:" +echo " docker push gcr.io/gapic-images/googleapis" diff --git a/.kokoro/start.sh b/.kokoro/start.sh index 32d3149c8..55ac24490 100755 --- a/.kokoro/start.sh +++ b/.kokoro/start.sh @@ -11,4 +11,4 @@ docker container run \ --workdir ${KOKORO_ROOT} \ --ipc=host \ --entrypoint ${KOKORO_ARTIFACTS_DIR}/github/googleapis/.kokoro/build.sh \ - gcr.io/gapic-images/googleapis:20210423 \ No newline at end of file + gcr.io/gapic-images/googleapis:20220711 diff --git a/BUILD.bazel b/BUILD.bazel index d014c3636..81764fe9c 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,6 +1,5 @@ -load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar") - alias( name = "build_gen", actual = "@rules_gapic//bazel:build_file_generator", ) + diff --git a/PACKAGES.md b/PACKAGES.md index d67cc31bd..33b47bfa6 100644 --- a/PACKAGES.md +++ b/PACKAGES.md @@ -1,6 +1,6 @@ # Auto-Generated Packages for Google Cloud Platform -This indexes the gRPC and GAPIC packages delivered to the the [Google Cloud +This indexes the gRPC and GAPIC packages delivered to the [Google Cloud Platform](https://github.com/GoogleCloudPlatform) teams and where they can be found. Currently, package delivery is only being done for Python. diff --git a/README.md b/README.md index 11209e3c5..ec7b11698 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ libraries, documentation, and other artifacts. ### Bazel The recommended way to build the API client libraries is through -[Bazel](https://bazel.build/) >= 2.0.0. +[Bazel](https://bazel.build/) >= 4.2.2. First, [install bazel](https://docs.bazel.build/versions/master/install.html). diff --git a/WORKSPACE b/WORKSPACE index 5a9478571..17e6d4f03 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -41,15 +41,28 @@ http_archive( # version of the library will be selected as a transitive dependency of gRPC. http_archive( name = "rules_python", - strip_prefix = "rules_python-0.5.0", - url = "https://github.com/bazelbuild/rules_python/archive/0.5.0.tar.gz", + strip_prefix = "rules_python-0.9.0", + url = "https://github.com/bazelbuild/rules_python/archive/0.9.0.tar.gz", ) +http_archive( + name = "rules_pkg", + sha256 = "8a298e832762eda1830597d64fe7db58178aa84cd5926d76d5b744d6558941c2", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz", + "https://github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz", + ], +) + +load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") + +rules_pkg_dependencies() + http_archive( name = "com_google_protobuf", - sha256 = "9111bf0b542b631165fadbd80aa60e7fb25b25311c532139ed2089d76ddf6dd7", - strip_prefix = "protobuf-3.18.1", - urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.18.1.tar.gz"], + sha256 = "c29d8b4b79389463c546f98b15aa4391d4ed7ec459340c47bffe15db63eb9126", + strip_prefix = "protobuf-3.21.3", + urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.3.tar.gz"], ) load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") @@ -72,57 +85,35 @@ rules_proto_dependencies() rules_proto_toolchains() -# rules_go (support Golang under bazel) -# This is not in the Go section because we override the same, older dependency brought in by gRPC. -# TODO(ndietz): move this back to the Go section if gRPC is updated per https://github.com/grpc/grpc/issues/22172 -# -# rules_go cannot be updated beyond v0.24.x because in v0.25.x the linker warnings regarding multiple copies of the same package -# became errors. Until rules_go is migrated to use the go_proto_library targets defined in here instead of in go-genproto, we cannot -# update this beyong v0.24.x. -# TODO(ndietz): https://github.com/bazelbuild/rules_go/issues/1986 -http_archive( - name = "io_bazel_rules_go", - sha256 = "dbf5a9ef855684f84cac2e7ae7886c5a001d4f66ae23f6904da0faaaef0d61fc", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.24.11/rules_go-v0.24.11.tar.gz", - "https://github.com/bazelbuild/rules_go/releases/download/v0.24.11/rules_go-v0.24.11.tar.gz", - ], -) +############################################################################## +# Go +############################################################################## + +# This must be above the download of gRPC (in C++ section) and rules_gapic because both repositories depend on rules_go +# and we would rather manage our version of rules_go explicitly rather than depend on the version those bring in transitively. +_io_bazel_rules_go_version = "0.33.0" -# bazel-gazelle (support Golang under bazel) http_archive( - name = "bazel_gazelle", - sha256 = "62ca106be173579c0a167deb23358fdfe71ffa1e4cfdddf5582af26520f1c66f", + name = "io_bazel_rules_go", + sha256 = "685052b498b6ddfe562ca7a97736741d87916fe536623afb7da2824c0211c369", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz", - "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz", + "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), ], ) load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") -load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository") - -# Override the go-genproto dependency to enable use of GapicMetadata types. -# -# TODO(noahdietz): remove with next rules_go release. -# https://github.com/googleapis/gapic-generator-go/issues/529 -go_repository( - name = "org_golang_google_genproto", - build_file_proto_mode = "disable_global", - importpath = "google.golang.org/genproto", - sum = "h1:4xoALQmXxqVdDdLimpPyPeDdsJzo+nFTJw9euAMpqgM=", - version = "v0.0.0-20210729151513-df9385d47c1b", -) go_rules_dependencies() -go_register_toolchains() +go_register_toolchains(version = "1.16") -gazelle_dependencies() - -_rules_gapic_version = "0.11.1" +# rules_gapic also depends on rules_go, so it must come after our own dependency on rules_go. +# It must also come before gapic-generator-go so as to ensure that it does not bring in an old +# version of rules_gapic. +_rules_gapic_version = "0.17.0" -_rules_gapic_sha256 = "edf4fa526cd8d9ae0d4aab3dc608a985ef75f631fe14f0c109a793eab2b5c31d" +_rules_gapic_sha256 = "3fd8b13f0b801c5efc1bb24cf08c33ddc61793ba48818154058c2c533dfc11c5" http_archive( name = "rules_gapic", @@ -135,6 +126,41 @@ load("@rules_gapic//:repositories.bzl", "rules_gapic_repositories") rules_gapic_repositories() +# 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), + ], +) + +_gapic_generator_go_version = "0.32.1" + +http_archive( + name = "com_googleapis_gapic_generator_go", + repo_mapping = { + "@go_googleapis": "@com_google_googleapis", + }, + strip_prefix = "gapic-generator-go-%s" % _gapic_generator_go_version, + urls = ["https://github.com/googleapis/gapic-generator-go/archive/v%s.tar.gz" % _gapic_generator_go_version], +) + +load("@com_googleapis_gapic_generator_go//:repositories.bzl", "com_googleapis_gapic_generator_go_repositories") + +com_googleapis_gapic_generator_go_repositories() + +# Gazelle dependencies should go after gapic-generator-go dependencies to make sure that +# gazelle does not override some of the critical dependencies of the gapic-generator-go. +# At the same time gazelle repository itself must be imported before gapic-generator-go, +# because gapic-generator-go depends on go_repository rule, which is defined in gazelle repo. +load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") + +gazelle_dependencies() + ############################################################################## # C++ ############################################################################## @@ -147,9 +173,23 @@ rules_gapic_repositories() # for most of the other languages as well, so they can be considered as the core cross-language # dependencies. -_grpc_version = "1.42.0" +# Import boringssl explicitly to override what gRPC imports as its dependency. +# Boringssl build fails on gcc12 without this fix: +# https://github.com/google/boringssl/commit/8462a367bb57e9524c3d8eca9c62733c63a63cf4, +# which is present only in the newest version of boringssl, not the one imported +# by gRPC. Remove this import once gRPC depends on a newer version. +http_archive( + name = "boringssl", + sha256 = "b460f8673f3393e58ce506e9cdde7f2c3b2575b075f214cb819fb57d809f052b", + strip_prefix = "boringssl-bb41bc007079982da419c0ec3186e510cbcf09d0", + urls = [ + "https://github.com/google/boringssl/archive/bb41bc007079982da419c0ec3186e510cbcf09d0.zip", + ], +) + +_grpc_version = "1.47.0" -_grpc_sha256 = "9f387689b7fdf6c003fd90ef55853107f89a2121792146770df5486f0199f400" +_grpc_sha256 = "edf25f4db6c841853b7a29d61b0980b516dc31a1b6cdc399bcf24c1446a4a249" http_archive( name = "com_github_grpc_grpc", @@ -162,9 +202,9 @@ load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps") grpc_deps() -load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps") - -grpc_extra_deps() +# gRPC enforces a specific version of Go toolchain which conflicts with our build. +# All the relevant parts of grpc_extra_deps() are imported in this WORKSPACE file +# explicitly, that is why we do not call grpc_extra_deps() here. load("@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies") @@ -177,7 +217,34 @@ apple_support_dependencies() ############################################################################## # Java ############################################################################## -_gax_java_version = "2.10.0" +load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS") + +# Starting in protobuf 3.19, protobuf project started to provide +# PROTOBUF_MAVEN_ARTIFACTS variable so that Bazel users can resolve their +# dependencies through maven_install. +# https://github.com/protocolbuffers/protobuf/issues/9132 +RULES_JVM_EXTERNAL_TAG = "4.2" + +RULES_JVM_EXTERNAL_SHA = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca" + +http_archive( + name = "rules_jvm_external", + sha256 = RULES_JVM_EXTERNAL_SHA, + strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG, + url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG, +) + +load("@rules_jvm_external//:defs.bzl", "maven_install") + +maven_install( + artifacts = PROTOBUF_MAVEN_ARTIFACTS, + generate_compat_repositories = True, + repositories = [ + "https://repo.maven.apache.org/maven2/", + ], +) + +_gax_java_version = "2.19.0" http_archive( name = "com_google_api_gax_java", @@ -202,7 +269,7 @@ grpc_java_repositories() # Java microgenerator. # Must go AFTER java-gax, since both java gax and gapic-generator are written in java and may conflict. -_gapic_generator_java_version = "2.5.0" +_gapic_generator_java_version = "2.10.0" http_archive( name = "gapic_generator_java", @@ -210,13 +277,6 @@ http_archive( urls = ["https://github.com/googleapis/gapic-generator-java/archive/v%s.zip" % _gapic_generator_java_version], ) -load("@gapic_generator_java//:repository_rules.bzl", "gapic_generator_java_properties") - -gapic_generator_java_properties( - name = "gapic_generator_java_properties", - file = "@gapic_generator_java//:dependencies.properties", -) - load("@gapic_generator_java//:repositories.bzl", "gapic_generator_java_repositories") gapic_generator_java_repositories() @@ -228,11 +288,11 @@ load("@rules_gapic//python:py_gapic_repositories.bzl", "py_gapic_repositories") py_gapic_repositories() -load("@rules_python//python:pip.bzl", "pip_repositories") +load("@rules_python//python:pip.bzl", "pip_install") -pip_repositories() +pip_install() -_gapic_generator_python_version = "0.60.0" +_gapic_generator_python_version = "1.4.4" http_archive( name = "gapic_generator_python", @@ -250,29 +310,13 @@ gapic_generator_python() gapic_generator_register_toolchains() -############################################################################## -# Go -############################################################################## - -_gapic_generator_go_version = "0.24.0" - -http_archive( - name = "com_googleapis_gapic_generator_go", - strip_prefix = "gapic-generator-go-%s" % _gapic_generator_go_version, - urls = ["https://github.com/googleapis/gapic-generator-go/archive/v%s.tar.gz" % _gapic_generator_go_version], -) - -load("@com_googleapis_gapic_generator_go//:repositories.bzl", "com_googleapis_gapic_generator_go_repositories") - -com_googleapis_gapic_generator_go_repositories() - ############################################################################## # TypeScript ############################################################################## -_gapic_generator_typescript_version = "2.11.0" +_gapic_generator_typescript_version = "2.18.2" -_gapic_generator_typescript_sha256 = "afb5d00a95f1fffd4c9f7fa474ff9e179b4b7a133384913a2407720537ac10a0" +_gapic_generator_typescript_sha256 = "45dfd7f059f45f83352a2d9438c1ed021817d9c894220cbd9578b1580194b937" ### TypeScript generator http_archive( @@ -303,7 +347,7 @@ yarn_install( ############################################################################## # PHP micro-generator -_gapic_generator_php_version = "1.4.0" +_gapic_generator_php_version = "1.5.0" http_archive( name = "gapic_generator_php", @@ -313,6 +357,7 @@ http_archive( load("@rules_gapic//php:php_gapic_repositories.bzl", "php", "php_gapic_repositories") +# TODO(ndietz): upgrade to PHP 8x php( name = "php", prebuilt_phps = ["@gapic_generator_php//rules_php_gapic:resources/php-7.4.15_linux_x86_64.tar.gz"], @@ -343,9 +388,9 @@ http_archive( urls = ["https://github.com/googleapis/gax-dotnet/archive/refs/tags/%s.tar.gz" % _gax_dotnet_version], ) -_gapic_generator_csharp_version = "1.3.16" +_gapic_generator_csharp_version = "1.4.8" -_gapic_generator_csharp_sha256 = "f14d706f013f253d52eddc40df549c128db7d9390980a3f422c523fd9a6c4f35" +_gapic_generator_csharp_sha256 = "1c155829aabb32a1e94fb9c4fe70054d683b1142fe7853c01f3adc3d5b184a6e" http_archive( name = "gapic_generator_csharp", @@ -358,13 +403,35 @@ load("@gapic_generator_csharp//:repositories.bzl", "gapic_generator_csharp_repos gapic_generator_csharp_repositories() +# Version of C# generator targeting GAX v3. This is present so that teams that +# do not want to move immediately to GAX v4 when it comes out (e.g. Ads) are +# able to stick with the GAX-v3-based generator. + +_gapic_generator_csharp_gax_v3_version = "1.3.20" + +_gapic_generator_csharp_gax_v3_sha256 = "20cacae7641c51eda434adb1279716030def82c2617f4d3507ba56478ff879f9" + +http_archive( + name = "gapic_generator_csharp_gax_v3", + repo_mapping = { + "@gapic_generator_restore": "@gapic_generator_restore_gax_v3", + }, + sha256 = _gapic_generator_csharp_gax_v3_sha256, + strip_prefix = "gapic-generator-csharp-%s" % _gapic_generator_csharp_gax_v3_version, + urls = ["https://github.com/googleapis/gapic-generator-csharp/archive/refs/tags/v%s.tar.gz" % _gapic_generator_csharp_gax_v3_version], +) + +load("@gapic_generator_csharp_gax_v3//:repositories.bzl", gapic_generator_csharp_repositories_gax_v3 = "gapic_generator_csharp_repositories") + +gapic_generator_csharp_repositories_gax_v3(gapic_generator_suffix = "_gax_v3") + ############################################################################## # Ruby ############################################################################## -_gapic_generator_ruby_version = "v0.10.5" +_gapic_generator_ruby_version = "v0.16.1" -_gapic_generator_ruby_sha256 = "c5f013d82d17a5094cc656004677656fa7efcafd712d6dee90819f06497b5524" +_gapic_generator_ruby_sha256 = "b99c5a7cdbbdc0c7dc4314c5327f164e3a0c7ff3eb896096a3fa86098cba8fd6" http_archive( name = "gapic_generator_ruby", @@ -381,7 +448,7 @@ gapic_generator_ruby_repositories() # Discovery ############################################################################## -_disco_to_proto3_converter_version = "ce8d8732120cdfb5bf4847c3238b5be8acde87e3" +_disco_to_proto3_converter_version = "c47a76dd3d591478dd1a902413636c06da1153b8" http_archive( name = "com_google_disco_to_proto3_converter", diff --git a/api-index-v1.json b/api-index-v1.json index db96195fa..d26ad7ec8 100644 --- a/api-index-v1.json +++ b/api-index-v1.json @@ -204,22 +204,26 @@ ] } ], - "configFile": "actions_v2.yaml" + "configFile": "actions_v2.yaml", + "serviceConfigApiNames": [ + "google.actions.sdk.v2.ActionsSdk", + "google.actions.sdk.v2.ActionsTesting" + ] }, { - "id": "google.ads.googleads.v7", - "directory": "google/ads/googleads/v7", - "version": "v7", - "majorVersion": "v7", + "id": "google.ads.googleads.v10", + "directory": "google/ads/googleads/v10", + "version": "v10", + "majorVersion": "v10", "hostName": "googleads.googleapis.com", "title": "Google Ads API", "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", "importDirectories": [ - "google/ads/googleads/v7/common", - "google/ads/googleads/v7/enums", - "google/ads/googleads/v7/errors", - "google/ads/googleads/v7/resources", - "google/ads/googleads/v7/services", + "google/ads/googleads/v10/common", + "google/ads/googleads/v10/enums", + "google/ads/googleads/v10/errors", + "google/ads/googleads/v10/resources", + "google/ads/googleads/v10/services", "google/api", "google/longrunning", "google/protobuf", @@ -228,101 +232,73 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Ads.GoogleAds.V7.Common": 30, - "Google.Ads.GoogleAds.V7.Enums": 249, - "Google.Ads.GoogleAds.V7.Errors": 120, - "Google.Ads.GoogleAds.V7.Resources": 122, - "Google.Ads.GoogleAds.V7.Services": 126 + "Google.Ads.GoogleAds.V10.Common": 35, + "Google.Ads.GoogleAds.V10.Enums": 294, + "Google.Ads.GoogleAds.V10.Errors": 140, + "Google.Ads.GoogleAds.V10.Resources": 156, + "Google.Ads.GoogleAds.V10.Services": 102 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common": 30, - "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums": 249, - "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors": 120, - "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources": 122, - "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services": 126 + "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common": 35, + "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums": 294, + "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors": 140, + "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources": 156, + "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services": 102 } }, "java_multiple_files": { "valueCounts": { - "true": 647 + "true": 727 } }, "java_package": { "valueCounts": { - "com.google.ads.googleads.v7.common": 30, - "com.google.ads.googleads.v7.enums": 249, - "com.google.ads.googleads.v7.errors": 120, - "com.google.ads.googleads.v7.resources": 122, - "com.google.ads.googleads.v7.services": 126 + "com.google.ads.googleads.v10.common": 35, + "com.google.ads.googleads.v10.enums": 294, + "com.google.ads.googleads.v10.errors": 140, + "com.google.ads.googleads.v10.resources": 156, + "com.google.ads.googleads.v10.services": 102 } }, "objc_class_prefix": { "valueCounts": { - "GAA": 647 + "GAA": 727 } }, "php_namespace": { "valueCounts": { - "Google\\Ads\\GoogleAds\\V7\\Common": 30, - "Google\\Ads\\GoogleAds\\V7\\Enums": 249, - "Google\\Ads\\GoogleAds\\V7\\Errors": 120, - "Google\\Ads\\GoogleAds\\V7\\Resources": 122, - "Google\\Ads\\GoogleAds\\V7\\Services": 126 + "Google\\Ads\\GoogleAds\\V10\\Common": 35, + "Google\\Ads\\GoogleAds\\V10\\Enums": 294, + "Google\\Ads\\GoogleAds\\V10\\Errors": 140, + "Google\\Ads\\GoogleAds\\V10\\Resources": 156, + "Google\\Ads\\GoogleAds\\V10\\Services": 102 } }, "ruby_package": { "valueCounts": { - "Google::Ads::GoogleAds::V7::Common": 30, - "Google::Ads::GoogleAds::V7::Enums": 249, - "Google::Ads::GoogleAds::V7::Errors": 120, - "Google::Ads::GoogleAds::V7::Resources": 122, - "Google::Ads::GoogleAds::V7::Services": 126 + "Google::Ads::GoogleAds::V10::Common": 35, + "Google::Ads::GoogleAds::V10::Enums": 294, + "Google::Ads::GoogleAds::V10::Errors": 140, + "Google::Ads::GoogleAds::V10::Resources": 156, + "Google::Ads::GoogleAds::V10::Services": 102 } } }, "services": [ { "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v7.services.AccountBudgetProposalService", + "fullName": "google.ads.googleads.v10.services.AccountBudgetProposalService", "methods": [ - { - "shortName": "GetAccountBudgetProposal", - "fullName": "google.ads.googleads.v7.services.AccountBudgetProposalService.GetAccountBudgetProposal", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/accountBudgetProposals/*}" - } - ] - }, { "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v7.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v10.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/accountBudgetProposals:mutate" - } - ] - } - ] - }, - { - "shortName": "AccountBudgetService", - "fullName": "google.ads.googleads.v7.services.AccountBudgetService", - "methods": [ - { - "shortName": "GetAccountBudget", - "fullName": "google.ads.googleads.v7.services.AccountBudgetService.GetAccountBudget", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/accountBudgets/*}" + "path": "/v10/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] } @@ -330,55 +306,27 @@ }, { "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v7.services.AccountLinkService", + "fullName": "google.ads.googleads.v10.services.AccountLinkService", "methods": [ { "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v7.services.AccountLinkService.CreateAccountLink", + "fullName": "google.ads.googleads.v10.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/accountLinks:create" - } - ] - }, - { - "shortName": "GetAccountLink", - "fullName": "google.ads.googleads.v7.services.AccountLinkService.GetAccountLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/accountLinks/*}" + "path": "/v10/customers/{customer_id=*}/accountLinks:create" } ] }, { "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v7.services.AccountLinkService.MutateAccountLink", + "fullName": "google.ads.googleads.v10.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/accountLinks:mutate" - } - ] - } - ] - }, - { - "shortName": "AdGroupAdAssetViewService", - "fullName": "google.ads.googleads.v7.services.AdGroupAdAssetViewService", - "methods": [ - { - "shortName": "GetAdGroupAdAssetView", - "fullName": "google.ads.googleads.v7.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupAdAssetViews/*}" + "path": "/v10/customers/{customer_id=*}/accountLinks:mutate" } ] } @@ -386,27 +334,16 @@ }, { "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v7.services.AdGroupAdLabelService", + "fullName": "google.ads.googleads.v10.services.AdGroupAdLabelService", "methods": [ - { - "shortName": "GetAdGroupAdLabel", - "fullName": "google.ads.googleads.v7.services.AdGroupAdLabelService.GetAdGroupAdLabel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupAdLabels/*}" - } - ] - }, { "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v7.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v10.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupAdLabels:mutate" + "path": "/v10/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] } @@ -414,27 +351,16 @@ }, { "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v7.services.AdGroupAdService", + "fullName": "google.ads.googleads.v10.services.AdGroupAdService", "methods": [ - { - "shortName": "GetAdGroupAd", - "fullName": "google.ads.googleads.v7.services.AdGroupAdService.GetAdGroupAd", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupAds/*}" - } - ] - }, { "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v7.services.AdGroupAdService.MutateAdGroupAds", + "fullName": "google.ads.googleads.v10.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupAds:mutate" + "path": "/v10/customers/{customer_id=*}/adGroupAds:mutate" } ] } @@ -442,72 +368,50 @@ }, { "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v7.services.AdGroupAssetService", + "fullName": "google.ads.googleads.v10.services.AdGroupAssetService", "methods": [ - { - "shortName": "GetAdGroupAsset", - "fullName": "google.ads.googleads.v7.services.AdGroupAssetService.GetAdGroupAsset", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupAssets/*}" - } - ] - }, { "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v7.services.AdGroupAssetService.MutateAdGroupAssets", + "fullName": "google.ads.googleads.v10.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupAssets:mutate" + "path": "/v10/customers/{customer_id=*}/adGroupAssets:mutate" } ] } ] }, { - "shortName": "AdGroupAudienceViewService", - "fullName": "google.ads.googleads.v7.services.AdGroupAudienceViewService", + "shortName": "AdGroupBidModifierService", + "fullName": "google.ads.googleads.v10.services.AdGroupBidModifierService", "methods": [ { - "shortName": "GetAdGroupAudienceView", - "fullName": "google.ads.googleads.v7.services.AdGroupAudienceViewService.GetAdGroupAudienceView", + "shortName": "MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v10.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupAudienceViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } ] }, { - "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v7.services.AdGroupBidModifierService", + "shortName": "AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v10.services.AdGroupCriterionCustomizerService", "methods": [ { - "shortName": "GetAdGroupBidModifier", - "fullName": "google.ads.googleads.v7.services.AdGroupBidModifierService.GetAdGroupBidModifier", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupBidModifiers/*}" - } - ] - }, - { - "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v7.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "shortName": "MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v10.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "path": "/v10/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } @@ -515,27 +419,16 @@ }, { "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v7.services.AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v10.services.AdGroupCriterionLabelService", "methods": [ - { - "shortName": "GetAdGroupCriterionLabel", - "fullName": "google.ads.googleads.v7.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupCriterionLabels/*}" - } - ] - }, { "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v7.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v10.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "path": "/v10/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } @@ -543,44 +436,33 @@ }, { "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v7.services.AdGroupCriterionService", + "fullName": "google.ads.googleads.v10.services.AdGroupCriterionService", "methods": [ - { - "shortName": "GetAdGroupCriterion", - "fullName": "google.ads.googleads.v7.services.AdGroupCriterionService.GetAdGroupCriterion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupCriteria/*}" - } - ] - }, { "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v7.services.AdGroupCriterionService.MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v10.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupCriteria:mutate" + "path": "/v10/customers/{customer_id=*}/adGroupCriteria:mutate" } ] } ] }, { - "shortName": "AdGroupCriterionSimulationService", - "fullName": "google.ads.googleads.v7.services.AdGroupCriterionSimulationService", + "shortName": "AdGroupCustomizerService", + "fullName": "google.ads.googleads.v10.services.AdGroupCustomizerService", "methods": [ { - "shortName": "GetAdGroupCriterionSimulation", - "fullName": "google.ads.googleads.v7.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation", + "shortName": "MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v10.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupCriterionSimulations/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] } @@ -588,27 +470,16 @@ }, { "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v7.services.AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v10.services.AdGroupExtensionSettingService", "methods": [ - { - "shortName": "GetAdGroupExtensionSetting", - "fullName": "google.ads.googleads.v7.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupExtensionSettings/*}" - } - ] - }, { "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v7.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v10.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "path": "/v10/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] } @@ -616,218 +487,231 @@ }, { "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v7.services.AdGroupFeedService", + "fullName": "google.ads.googleads.v10.services.AdGroupFeedService", "methods": [ { - "shortName": "GetAdGroupFeed", - "fullName": "google.ads.googleads.v7.services.AdGroupFeedService.GetAdGroupFeed", + "shortName": "MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v10.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupFeeds/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/adGroupFeeds:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdGroupLabelService", + "fullName": "google.ads.googleads.v10.services.AdGroupLabelService", + "methods": [ { - "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v7.services.AdGroupFeedService.MutateAdGroupFeeds", + "shortName": "MutateAdGroupLabels", + "fullName": "google.ads.googleads.v10.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupFeeds:mutate" + "path": "/v10/customers/{customer_id=*}/adGroupLabels:mutate" } ] } ] }, { - "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v7.services.AdGroupLabelService", + "shortName": "AdGroupService", + "fullName": "google.ads.googleads.v10.services.AdGroupService", "methods": [ { - "shortName": "GetAdGroupLabel", - "fullName": "google.ads.googleads.v7.services.AdGroupLabelService.GetAdGroupLabel", + "shortName": "MutateAdGroups", + "fullName": "google.ads.googleads.v10.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupLabels/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/adGroups:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdParameterService", + "fullName": "google.ads.googleads.v10.services.AdParameterService", + "methods": [ { - "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v7.services.AdGroupLabelService.MutateAdGroupLabels", + "shortName": "MutateAdParameters", + "fullName": "google.ads.googleads.v10.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroupLabels:mutate" + "path": "/v10/customers/{customer_id=*}/adParameters:mutate" } ] } ] }, { - "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v7.services.AdGroupService", + "shortName": "AdService", + "fullName": "google.ads.googleads.v10.services.AdService", "methods": [ { - "shortName": "GetAdGroup", - "fullName": "google.ads.googleads.v7.services.AdGroupService.GetAdGroup", + "shortName": "GetAd", + "fullName": "google.ads.googleads.v10.services.AdService.GetAd", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroups/*}" + "path": "/v10/{resource_name=customers/*/ads/*}" } ] }, { - "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v7.services.AdGroupService.MutateAdGroups", + "shortName": "MutateAds", + "fullName": "google.ads.googleads.v10.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adGroups:mutate" + "path": "/v10/customers/{customer_id=*}/ads:mutate" } ] } ] }, { - "shortName": "AdGroupSimulationService", - "fullName": "google.ads.googleads.v7.services.AdGroupSimulationService", + "shortName": "AssetGroupAssetService", + "fullName": "google.ads.googleads.v10.services.AssetGroupAssetService", "methods": [ { - "shortName": "GetAdGroupSimulation", - "fullName": "google.ads.googleads.v7.services.AdGroupSimulationService.GetAdGroupSimulation", + "shortName": "MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v10.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adGroupSimulations/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } ] }, { - "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v7.services.AdParameterService", + "shortName": "AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v10.services.AssetGroupListingGroupFilterService", "methods": [ { - "shortName": "GetAdParameter", - "fullName": "google.ads.googleads.v7.services.AdParameterService.GetAdParameter", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adParameters/*}" - } - ] - }, - { - "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v7.services.AdParameterService.MutateAdParameters", + "shortName": "MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v10.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/adParameters:mutate" + "path": "/v10/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] } ] }, { - "shortName": "AdScheduleViewService", - "fullName": "google.ads.googleads.v7.services.AdScheduleViewService", + "shortName": "AssetGroupService", + "fullName": "google.ads.googleads.v10.services.AssetGroupService", "methods": [ { - "shortName": "GetAdScheduleView", - "fullName": "google.ads.googleads.v7.services.AdScheduleViewService.GetAdScheduleView", + "shortName": "MutateAssetGroups", + "fullName": "google.ads.googleads.v10.services.AssetGroupService.MutateAssetGroups", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/adScheduleViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/assetGroups:mutate" } ] } ] }, { - "shortName": "AdService", - "fullName": "google.ads.googleads.v7.services.AdService", + "shortName": "AssetGroupSignalService", + "fullName": "google.ads.googleads.v10.services.AssetGroupSignalService", "methods": [ { - "shortName": "GetAd", - "fullName": "google.ads.googleads.v7.services.AdService.GetAd", + "shortName": "MutateAssetGroupSignals", + "fullName": "google.ads.googleads.v10.services.AssetGroupSignalService.MutateAssetGroupSignals", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/ads/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/assetGroupSignals:mutate" } ] - }, + } + ] + }, + { + "shortName": "AssetService", + "fullName": "google.ads.googleads.v10.services.AssetService", + "methods": [ { - "shortName": "MutateAds", - "fullName": "google.ads.googleads.v7.services.AdService.MutateAds", + "shortName": "MutateAssets", + "fullName": "google.ads.googleads.v10.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/ads:mutate" + "path": "/v10/customers/{customer_id=*}/assets:mutate" } ] } ] }, { - "shortName": "AgeRangeViewService", - "fullName": "google.ads.googleads.v7.services.AgeRangeViewService", + "shortName": "AssetSetAssetService", + "fullName": "google.ads.googleads.v10.services.AssetSetAssetService", "methods": [ { - "shortName": "GetAgeRangeView", - "fullName": "google.ads.googleads.v7.services.AgeRangeViewService.GetAgeRangeView", + "shortName": "MutateAssetSetAssets", + "fullName": "google.ads.googleads.v10.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/ageRangeViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/assetSetAssets:mutate" } ] } ] }, { - "shortName": "AssetService", - "fullName": "google.ads.googleads.v7.services.AssetService", + "shortName": "AssetSetService", + "fullName": "google.ads.googleads.v10.services.AssetSetService", "methods": [ { - "shortName": "GetAsset", - "fullName": "google.ads.googleads.v7.services.AssetService.GetAsset", + "shortName": "MutateAssetSets", + "fullName": "google.ads.googleads.v10.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/assets/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/assetSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "AudienceService", + "fullName": "google.ads.googleads.v10.services.AudienceService", + "methods": [ { - "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v7.services.AssetService.MutateAssets", + "shortName": "MutateAudiences", + "fullName": "google.ads.googleads.v10.services.AudienceService.MutateAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/assets:mutate" + "path": "/v10/customers/{customer_id=*}/audiences:mutate" } ] } @@ -835,105 +719,100 @@ }, { "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v7.services.BatchJobService", + "fullName": "google.ads.googleads.v10.services.BatchJobService", "methods": [ { "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v7.services.BatchJobService.AddBatchJobOperations", + "fullName": "google.ads.googleads.v10.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{resource_name=customers/*/batchJobs/*}:addOperations" - } - ] - }, - { - "shortName": "GetBatchJob", - "fullName": "google.ads.googleads.v7.services.BatchJobService.GetBatchJob", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/batchJobs/*}" + "path": "/v10/{resource_name=customers/*/batchJobs/*}:addOperations" } ] }, { "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v7.services.BatchJobService.ListBatchJobResults", + "fullName": "google.ads.googleads.v10.services.BatchJobService.ListBatchJobResults", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/batchJobs/*}:listResults" + "path": "/v10/{resource_name=customers/*/batchJobs/*}:listResults" } ] }, { "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v7.services.BatchJobService.MutateBatchJob", + "fullName": "google.ads.googleads.v10.services.BatchJobService.MutateBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v10/customers/{customer_id=*}/batchJobs:mutate" } ] }, { "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v7.services.BatchJobService.RunBatchJob", + "fullName": "google.ads.googleads.v10.services.BatchJobService.RunBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{resource_name=customers/*/batchJobs/*}:run" + "path": "/v10/{resource_name=customers/*/batchJobs/*}:run" } ] } ] }, { - "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v7.services.BiddingStrategyService", + "shortName": "BiddingDataExclusionService", + "fullName": "google.ads.googleads.v10.services.BiddingDataExclusionService", "methods": [ { - "shortName": "GetBiddingStrategy", - "fullName": "google.ads.googleads.v7.services.BiddingStrategyService.GetBiddingStrategy", + "shortName": "MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v10.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/biddingStrategies/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] - }, + } + ] + }, + { + "shortName": "BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v10.services.BiddingSeasonalityAdjustmentService", + "methods": [ { - "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v7.services.BiddingStrategyService.MutateBiddingStrategies", + "shortName": "MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v10.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v10/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } ] }, { - "shortName": "BiddingStrategySimulationService", - "fullName": "google.ads.googleads.v7.services.BiddingStrategySimulationService", + "shortName": "BiddingStrategyService", + "fullName": "google.ads.googleads.v10.services.BiddingStrategyService", "methods": [ { - "shortName": "GetBiddingStrategySimulation", - "fullName": "google.ads.googleads.v7.services.BiddingStrategySimulationService.GetBiddingStrategySimulation", + "shortName": "MutateBiddingStrategies", + "fullName": "google.ads.googleads.v10.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/biddingStrategySimulations/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/biddingStrategies:mutate" } ] } @@ -941,27 +820,16 @@ }, { "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v7.services.BillingSetupService", + "fullName": "google.ads.googleads.v10.services.BillingSetupService", "methods": [ - { - "shortName": "GetBillingSetup", - "fullName": "google.ads.googleads.v7.services.BillingSetupService.GetBillingSetup", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/billingSetups/*}" - } - ] - }, { "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v7.services.BillingSetupService.MutateBillingSetup", + "fullName": "google.ads.googleads.v10.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v10/customers/{customer_id=*}/billingSetups:mutate" } ] } @@ -969,44 +837,33 @@ }, { "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v7.services.CampaignAssetService", + "fullName": "google.ads.googleads.v10.services.CampaignAssetService", "methods": [ - { - "shortName": "GetCampaignAsset", - "fullName": "google.ads.googleads.v7.services.CampaignAssetService.GetCampaignAsset", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignAssets/*}" - } - ] - }, { "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v7.services.CampaignAssetService.MutateCampaignAssets", + "fullName": "google.ads.googleads.v10.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v10/customers/{customer_id=*}/campaignAssets:mutate" } ] } ] }, { - "shortName": "CampaignAudienceViewService", - "fullName": "google.ads.googleads.v7.services.CampaignAudienceViewService", + "shortName": "CampaignAssetSetService", + "fullName": "google.ads.googleads.v10.services.CampaignAssetSetService", "methods": [ { - "shortName": "GetCampaignAudienceView", - "fullName": "google.ads.googleads.v7.services.CampaignAudienceViewService.GetCampaignAudienceView", + "shortName": "MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v10.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignAudienceViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } @@ -1014,27 +871,16 @@ }, { "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v7.services.CampaignBidModifierService", + "fullName": "google.ads.googleads.v10.services.CampaignBidModifierService", "methods": [ - { - "shortName": "GetCampaignBidModifier", - "fullName": "google.ads.googleads.v7.services.CampaignBidModifierService.GetCampaignBidModifier", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignBidModifiers/*}" - } - ] - }, { "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v7.services.CampaignBidModifierService.MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v10.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v10/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } @@ -1042,72 +888,67 @@ }, { "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v7.services.CampaignBudgetService", + "fullName": "google.ads.googleads.v10.services.CampaignBudgetService", "methods": [ - { - "shortName": "GetCampaignBudget", - "fullName": "google.ads.googleads.v7.services.CampaignBudgetService.GetCampaignBudget", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignBudgets/*}" - } - ] - }, { "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v7.services.CampaignBudgetService.MutateCampaignBudgets", + "fullName": "google.ads.googleads.v10.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignBudgets:mutate" + "path": "/v10/customers/{customer_id=*}/campaignBudgets:mutate" } ] } ] }, { - "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v7.services.CampaignCriterionService", + "shortName": "CampaignConversionGoalService", + "fullName": "google.ads.googleads.v10.services.CampaignConversionGoalService", "methods": [ { - "shortName": "GetCampaignCriterion", - "fullName": "google.ads.googleads.v7.services.CampaignCriterionService.GetCampaignCriterion", + "shortName": "MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v10.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignCriteria/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignCriterionService", + "fullName": "google.ads.googleads.v10.services.CampaignCriterionService", + "methods": [ { "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v7.services.CampaignCriterionService.MutateCampaignCriteria", + "fullName": "google.ads.googleads.v10.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v10/customers/{customer_id=*}/campaignCriteria:mutate" } ] } ] }, { - "shortName": "CampaignCriterionSimulationService", - "fullName": "google.ads.googleads.v7.services.CampaignCriterionSimulationService", + "shortName": "CampaignCustomizerService", + "fullName": "google.ads.googleads.v10.services.CampaignCustomizerService", "methods": [ { - "shortName": "GetCampaignCriterionSimulation", - "fullName": "google.ads.googleads.v7.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation", + "shortName": "MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v10.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignCriterionSimulations/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/campaignCustomizers:mutate" } ] } @@ -1115,49 +956,38 @@ }, { "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v7.services.CampaignDraftService", + "fullName": "google.ads.googleads.v10.services.CampaignDraftService", "methods": [ - { - "shortName": "GetCampaignDraft", - "fullName": "google.ads.googleads.v7.services.CampaignDraftService.GetCampaignDraft", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignDrafts/*}" - } - ] - }, { "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v7.services.CampaignDraftService.ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v10.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + "path": "/v10/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] }, { "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v7.services.CampaignDraftService.MutateCampaignDrafts", + "fullName": "google.ads.googleads.v10.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignDrafts:mutate" + "path": "/v10/customers/{customer_id=*}/campaignDrafts:mutate" } ] }, { "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v7.services.CampaignDraftService.PromoteCampaignDraft", + "fullName": "google.ads.googleads.v10.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v10/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } @@ -1165,82 +995,71 @@ }, { "shortName": "CampaignExperimentService", - "fullName": "google.ads.googleads.v7.services.CampaignExperimentService", + "fullName": "google.ads.googleads.v10.services.CampaignExperimentService", "methods": [ { "shortName": "CreateCampaignExperiment", - "fullName": "google.ads.googleads.v7.services.CampaignExperimentService.CreateCampaignExperiment", + "fullName": "google.ads.googleads.v10.services.CampaignExperimentService.CreateCampaignExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignExperiments:create" + "path": "/v10/customers/{customer_id=*}/campaignExperiments:create" } ] }, { "shortName": "EndCampaignExperiment", - "fullName": "google.ads.googleads.v7.services.CampaignExperimentService.EndCampaignExperiment", + "fullName": "google.ads.googleads.v10.services.CampaignExperimentService.EndCampaignExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{campaign_experiment=customers/*/campaignExperiments/*}:end" - } - ] - }, - { - "shortName": "GetCampaignExperiment", - "fullName": "google.ads.googleads.v7.services.CampaignExperimentService.GetCampaignExperiment", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignExperiments/*}" + "path": "/v10/{campaign_experiment=customers/*/campaignExperiments/*}:end" } ] }, { "shortName": "GraduateCampaignExperiment", - "fullName": "google.ads.googleads.v7.services.CampaignExperimentService.GraduateCampaignExperiment", + "fullName": "google.ads.googleads.v10.services.CampaignExperimentService.GraduateCampaignExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" + "path": "/v10/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" } ] }, { "shortName": "ListCampaignExperimentAsyncErrors", - "fullName": "google.ads.googleads.v7.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors", + "fullName": "google.ads.googleads.v10.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" + "path": "/v10/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" } ] }, { "shortName": "MutateCampaignExperiments", - "fullName": "google.ads.googleads.v7.services.CampaignExperimentService.MutateCampaignExperiments", + "fullName": "google.ads.googleads.v10.services.CampaignExperimentService.MutateCampaignExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignExperiments:mutate" + "path": "/v10/customers/{customer_id=*}/campaignExperiments:mutate" } ] }, { "shortName": "PromoteCampaignExperiment", - "fullName": "google.ads.googleads.v7.services.CampaignExperimentService.PromoteCampaignExperiment", + "fullName": "google.ads.googleads.v10.services.CampaignExperimentService.PromoteCampaignExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{campaign_experiment=customers/*/campaignExperiments/*}:promote" + "path": "/v10/{campaign_experiment=customers/*/campaignExperiments/*}:promote" } ] } @@ -1248,27 +1067,16 @@ }, { "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v7.services.CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v10.services.CampaignExtensionSettingService", "methods": [ - { - "shortName": "GetCampaignExtensionSetting", - "fullName": "google.ads.googleads.v7.services.CampaignExtensionSettingService.GetCampaignExtensionSetting", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignExtensionSettings/*}" - } - ] - }, { "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v7.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v10.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignExtensionSettings:mutate" + "path": "/v10/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] } @@ -1276,17354 +1084,16850 @@ }, { "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v7.services.CampaignFeedService", + "fullName": "google.ads.googleads.v10.services.CampaignFeedService", "methods": [ - { - "shortName": "GetCampaignFeed", - "fullName": "google.ads.googleads.v7.services.CampaignFeedService.GetCampaignFeed", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignFeeds/*}" - } - ] - }, { "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v7.services.CampaignFeedService.MutateCampaignFeeds", + "fullName": "google.ads.googleads.v10.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v10/customers/{customer_id=*}/campaignFeeds:mutate" } ] } ] }, { - "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v7.services.CampaignLabelService", + "shortName": "CampaignGroupService", + "fullName": "google.ads.googleads.v10.services.CampaignGroupService", "methods": [ { - "shortName": "GetCampaignLabel", - "fullName": "google.ads.googleads.v7.services.CampaignLabelService.GetCampaignLabel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignLabels/*}" - } - ] - }, - { - "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v7.services.CampaignLabelService.MutateCampaignLabels", + "shortName": "MutateCampaignGroups", + "fullName": "google.ads.googleads.v10.services.CampaignGroupService.MutateCampaignGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v10/customers/{customer_id=*}/campaignGroups:mutate" } ] } ] }, { - "shortName": "CampaignService", - "fullName": "google.ads.googleads.v7.services.CampaignService", + "shortName": "CampaignLabelService", + "fullName": "google.ads.googleads.v10.services.CampaignLabelService", "methods": [ { - "shortName": "GetCampaign", - "fullName": "google.ads.googleads.v7.services.CampaignService.GetCampaign", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaigns/*}" - } - ] - }, - { - "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v7.services.CampaignService.MutateCampaigns", + "shortName": "MutateCampaignLabels", + "fullName": "google.ads.googleads.v10.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaigns:mutate" + "path": "/v10/customers/{customer_id=*}/campaignLabels:mutate" } ] } ] }, { - "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v7.services.CampaignSharedSetService", + "shortName": "CampaignService", + "fullName": "google.ads.googleads.v10.services.CampaignService", "methods": [ { - "shortName": "GetCampaignSharedSet", - "fullName": "google.ads.googleads.v7.services.CampaignSharedSetService.GetCampaignSharedSet", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignSharedSets/*}" - } - ] - }, - { - "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v7.services.CampaignSharedSetService.MutateCampaignSharedSets", + "shortName": "MutateCampaigns", + "fullName": "google.ads.googleads.v10.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v10/customers/{customer_id=*}/campaigns:mutate" } ] } ] }, { - "shortName": "CampaignSimulationService", - "fullName": "google.ads.googleads.v7.services.CampaignSimulationService", + "shortName": "CampaignSharedSetService", + "fullName": "google.ads.googleads.v10.services.CampaignSharedSetService", "methods": [ { - "shortName": "GetCampaignSimulation", - "fullName": "google.ads.googleads.v7.services.CampaignSimulationService.GetCampaignSimulation", + "shortName": "MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v10.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/campaignSimulations/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/campaignSharedSets:mutate" } ] } ] }, { - "shortName": "CarrierConstantService", - "fullName": "google.ads.googleads.v7.services.CarrierConstantService", + "shortName": "ConversionActionService", + "fullName": "google.ads.googleads.v10.services.ConversionActionService", "methods": [ { - "shortName": "GetCarrierConstant", - "fullName": "google.ads.googleads.v7.services.CarrierConstantService.GetCarrierConstant", + "shortName": "MutateConversionActions", + "fullName": "google.ads.googleads.v10.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=carrierConstants/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/conversionActions:mutate" } ] } ] }, { - "shortName": "ChangeStatusService", - "fullName": "google.ads.googleads.v7.services.ChangeStatusService", + "shortName": "ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v10.services.ConversionAdjustmentUploadService", "methods": [ { - "shortName": "GetChangeStatus", - "fullName": "google.ads.googleads.v7.services.ChangeStatusService.GetChangeStatus", + "shortName": "UploadConversionAdjustments", + "fullName": "google.ads.googleads.v10.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/changeStatus/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}:uploadConversionAdjustments" } ] } ] }, { - "shortName": "ClickViewService", - "fullName": "google.ads.googleads.v7.services.ClickViewService", + "shortName": "ConversionCustomVariableService", + "fullName": "google.ads.googleads.v10.services.ConversionCustomVariableService", "methods": [ { - "shortName": "GetClickView", - "fullName": "google.ads.googleads.v7.services.ClickViewService.GetClickView", + "shortName": "MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v10.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/clickViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] } ] }, { - "shortName": "CombinedAudienceService", - "fullName": "google.ads.googleads.v7.services.CombinedAudienceService", + "shortName": "ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v10.services.ConversionGoalCampaignConfigService", "methods": [ { - "shortName": "GetCombinedAudience", - "fullName": "google.ads.googleads.v7.services.CombinedAudienceService.GetCombinedAudience", + "shortName": "MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v10.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/combinedAudiences/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] } ] }, { - "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v7.services.ConversionActionService", + "shortName": "ConversionUploadService", + "fullName": "google.ads.googleads.v10.services.ConversionUploadService", "methods": [ { - "shortName": "GetConversionAction", - "fullName": "google.ads.googleads.v7.services.ConversionActionService.GetConversionAction", + "shortName": "UploadCallConversions", + "fullName": "google.ads.googleads.v10.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/conversionActions/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}:uploadCallConversions" } ] }, { - "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v7.services.ConversionActionService.MutateConversionActions", + "shortName": "UploadClickConversions", + "fullName": "google.ads.googleads.v10.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/conversionActions:mutate" + "path": "/v10/customers/{customer_id=*}:uploadClickConversions" } ] } ] }, { - "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v7.services.ConversionAdjustmentUploadService", + "shortName": "ConversionValueRuleService", + "fullName": "google.ads.googleads.v10.services.ConversionValueRuleService", "methods": [ { - "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v7.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "shortName": "MutateConversionValueRules", + "fullName": "google.ads.googleads.v10.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:uploadConversionAdjustments" + "path": "/v10/customers/{customer_id=*}/conversionValueRules:mutate" } ] } ] }, { - "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v7.services.ConversionCustomVariableService", + "shortName": "ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v10.services.ConversionValueRuleSetService", "methods": [ { - "shortName": "GetConversionCustomVariable", - "fullName": "google.ads.googleads.v7.services.ConversionCustomVariableService.GetConversionCustomVariable", + "shortName": "MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v10.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/conversionCustomVariables/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomAudienceService", + "fullName": "google.ads.googleads.v10.services.CustomAudienceService", + "methods": [ { - "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v7.services.ConversionCustomVariableService.MutateConversionCustomVariables", + "shortName": "MutateCustomAudiences", + "fullName": "google.ads.googleads.v10.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v10/customers/{customer_id=*}/customAudiences:mutate" } ] } ] }, { - "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v7.services.ConversionUploadService", + "shortName": "CustomConversionGoalService", + "fullName": "google.ads.googleads.v10.services.CustomConversionGoalService", "methods": [ { - "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v7.services.ConversionUploadService.UploadCallConversions", + "shortName": "MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v10.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:uploadCallConversions" + "path": "/v10/customers/{customer_id=*}/customConversionGoals:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomInterestService", + "fullName": "google.ads.googleads.v10.services.CustomInterestService", + "methods": [ { - "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v7.services.ConversionUploadService.UploadClickConversions", + "shortName": "MutateCustomInterests", + "fullName": "google.ads.googleads.v10.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:uploadClickConversions" + "path": "/v10/customers/{customer_id=*}/customInterests:mutate" } ] } ] }, { - "shortName": "CurrencyConstantService", - "fullName": "google.ads.googleads.v7.services.CurrencyConstantService", + "shortName": "CustomerAssetService", + "fullName": "google.ads.googleads.v10.services.CustomerAssetService", "methods": [ { - "shortName": "GetCurrencyConstant", - "fullName": "google.ads.googleads.v7.services.CurrencyConstantService.GetCurrencyConstant", + "shortName": "MutateCustomerAssets", + "fullName": "google.ads.googleads.v10.services.CustomerAssetService.MutateCustomerAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=currencyConstants/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/customerAssets:mutate" } ] } ] }, { - "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v7.services.CustomAudienceService", + "shortName": "CustomerClientLinkService", + "fullName": "google.ads.googleads.v10.services.CustomerClientLinkService", "methods": [ { - "shortName": "GetCustomAudience", - "fullName": "google.ads.googleads.v7.services.CustomAudienceService.GetCustomAudience", + "shortName": "MutateCustomerClientLink", + "fullName": "google.ads.googleads.v10.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customAudiences/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/customerClientLinks:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerConversionGoalService", + "fullName": "google.ads.googleads.v10.services.CustomerConversionGoalService", + "methods": [ { - "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v7.services.CustomAudienceService.MutateCustomAudiences", + "shortName": "MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v10.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customAudiences:mutate" + "path": "/v10/customers/{customer_id=*}/customerConversionGoals:mutate" } ] } ] }, { - "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v7.services.CustomInterestService", + "shortName": "CustomerCustomizerService", + "fullName": "google.ads.googleads.v10.services.CustomerCustomizerService", "methods": [ { - "shortName": "GetCustomInterest", - "fullName": "google.ads.googleads.v7.services.CustomInterestService.GetCustomInterest", + "shortName": "MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v10.services.CustomerCustomizerService.MutateCustomerCustomizers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customInterests/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v10.services.CustomerExtensionSettingService", + "methods": [ { - "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v7.services.CustomInterestService.MutateCustomInterests", + "shortName": "MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v10.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customInterests:mutate" + "path": "/v10/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] } ] }, { - "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v7.services.CustomerAssetService", + "shortName": "CustomerFeedService", + "fullName": "google.ads.googleads.v10.services.CustomerFeedService", "methods": [ { - "shortName": "GetCustomerAsset", - "fullName": "google.ads.googleads.v7.services.CustomerAssetService.GetCustomerAsset", + "shortName": "MutateCustomerFeeds", + "fullName": "google.ads.googleads.v10.services.CustomerFeedService.MutateCustomerFeeds", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerAssets/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/customerFeeds:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerLabelService", + "fullName": "google.ads.googleads.v10.services.CustomerLabelService", + "methods": [ { - "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v7.services.CustomerAssetService.MutateCustomerAssets", + "shortName": "MutateCustomerLabels", + "fullName": "google.ads.googleads.v10.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerAssets:mutate" + "path": "/v10/customers/{customer_id=*}/customerLabels:mutate" } ] } ] }, { - "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v7.services.CustomerClientLinkService", + "shortName": "CustomerManagerLinkService", + "fullName": "google.ads.googleads.v10.services.CustomerManagerLinkService", "methods": [ { - "shortName": "GetCustomerClientLink", - "fullName": "google.ads.googleads.v7.services.CustomerClientLinkService.GetCustomerClientLink", + "shortName": "MoveManagerLink", + "fullName": "google.ads.googleads.v10.services.CustomerManagerLinkService.MoveManagerLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerClientLinks/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" } ] }, { - "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v7.services.CustomerClientLinkService.MutateCustomerClientLink", + "shortName": "MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v10.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v10/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } ] }, { - "shortName": "CustomerClientService", - "fullName": "google.ads.googleads.v7.services.CustomerClientService", + "shortName": "CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v10.services.CustomerNegativeCriterionService", "methods": [ { - "shortName": "GetCustomerClient", - "fullName": "google.ads.googleads.v7.services.CustomerClientService.GetCustomerClient", + "shortName": "MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v10.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerClients/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } ] }, { - "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v7.services.CustomerExtensionSettingService", + "shortName": "CustomerService", + "fullName": "google.ads.googleads.v10.services.CustomerService", "methods": [ { - "shortName": "GetCustomerExtensionSetting", - "fullName": "google.ads.googleads.v7.services.CustomerExtensionSettingService.GetCustomerExtensionSetting", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerExtensionSettings/*}" - } - ] - }, - { - "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v7.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "shortName": "CreateCustomerClient", + "fullName": "google.ads.googleads.v10.services.CustomerService.CreateCustomerClient", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v10/customers/{customer_id=*}:createCustomerClient" } ] - } - ] - }, - { - "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v7.services.CustomerFeedService", - "methods": [ + }, { - "shortName": "GetCustomerFeed", - "fullName": "google.ads.googleads.v7.services.CustomerFeedService.GetCustomerFeed", + "shortName": "ListAccessibleCustomers", + "fullName": "google.ads.googleads.v10.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerFeeds/*}" + "path": "/v10/customers:listAccessibleCustomers" } ] }, { - "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v7.services.CustomerFeedService.MutateCustomerFeeds", + "shortName": "MutateCustomer", + "fullName": "google.ads.googleads.v10.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerFeeds:mutate" + "path": "/v10/customers/{customer_id=*}:mutate" } ] } ] }, { - "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v7.services.CustomerLabelService", + "shortName": "CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v10.services.CustomerUserAccessInvitationService", "methods": [ { - "shortName": "GetCustomerLabel", - "fullName": "google.ads.googleads.v7.services.CustomerLabelService.GetCustomerLabel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerLabels/*}" - } - ] - }, - { - "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v7.services.CustomerLabelService.MutateCustomerLabels", + "shortName": "MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v10.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerLabels:mutate" + "path": "/v10/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } ] }, { - "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v7.services.CustomerManagerLinkService", + "shortName": "CustomerUserAccessService", + "fullName": "google.ads.googleads.v10.services.CustomerUserAccessService", "methods": [ { - "shortName": "GetCustomerManagerLink", - "fullName": "google.ads.googleads.v7.services.CustomerManagerLinkService.GetCustomerManagerLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerManagerLinks/*}" - } - ] - }, - { - "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v7.services.CustomerManagerLinkService.MoveManagerLink", + "shortName": "MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v10.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + "path": "/v10/customers/{customer_id=*}/customerUserAccesses:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomizerAttributeService", + "fullName": "google.ads.googleads.v10.services.CustomizerAttributeService", + "methods": [ { - "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v7.services.CustomerManagerLinkService.MutateCustomerManagerLink", + "shortName": "MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v10.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerManagerLinks:mutate" + "path": "/v10/customers/{customer_id=*}/customizerAttributes:mutate" } ] } ] }, { - "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v7.services.CustomerNegativeCriterionService", + "shortName": "ExperimentArmService", + "fullName": "google.ads.googleads.v10.services.ExperimentArmService", "methods": [ { - "shortName": "GetCustomerNegativeCriterion", - "fullName": "google.ads.googleads.v7.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerNegativeCriteria/*}" - } - ] - }, - { - "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v7.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", + "shortName": "MutateExperimentArms", + "fullName": "google.ads.googleads.v10.services.ExperimentArmService.MutateExperimentArms", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v10/customers/{customer_id=*}/experimentArms:mutate" } ] } ] }, { - "shortName": "CustomerService", - "fullName": "google.ads.googleads.v7.services.CustomerService", + "shortName": "ExperimentService", + "fullName": "google.ads.googleads.v10.services.ExperimentService", "methods": [ { - "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v7.services.CustomerService.CreateCustomerClient", + "shortName": "EndExperiment", + "fullName": "google.ads.googleads.v10.services.ExperimentService.EndExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:createCustomerClient" + "path": "/v10/{experiment=customers/*/experiments/*}:endExperiment" } ] }, { - "shortName": "GetCustomer", - "fullName": "google.ads.googleads.v7.services.CustomerService.GetCustomer", + "shortName": "GraduateExperiment", + "fullName": "google.ads.googleads.v10.services.ExperimentService.GraduateExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*}" + "httpMethod": "POST", + "path": "/v10/{experiment=customers/*/experiments/*}:graduateExperiment" } ] }, { - "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v7.services.CustomerService.ListAccessibleCustomers", + "shortName": "ListExperimentAsyncErrors", + "fullName": "google.ads.googleads.v10.services.ExperimentService.ListExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/customers:listAccessibleCustomers" + "path": "/v10/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" } ] }, { - "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v7.services.CustomerService.MutateCustomer", + "shortName": "MutateExperiments", + "fullName": "google.ads.googleads.v10.services.ExperimentService.MutateExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:mutate" + "path": "/v10/customers/{customer_id=*}/experiments:mutate" } ] - } - ] - }, - { - "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v7.services.CustomerUserAccessInvitationService", - "methods": [ + }, { - "shortName": "GetCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v7.services.CustomerUserAccessInvitationService.GetCustomerUserAccessInvitation", + "shortName": "PromoteExperiment", + "fullName": "google.ads.googleads.v10.services.ExperimentService.PromoteExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerUserAccessInvitations/*}" + "httpMethod": "POST", + "path": "/v10/{resource_name=customers/*/experiments/*}:promoteExperiment" } ] }, { - "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v7.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "shortName": "ScheduleExperiment", + "fullName": "google.ads.googleads.v10.services.ExperimentService.ScheduleExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v10/{resource_name=customers/*/experiments/*}:scheduleExperiment" } ] } ] }, { - "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v7.services.CustomerUserAccessService", + "shortName": "ExtensionFeedItemService", + "fullName": "google.ads.googleads.v10.services.ExtensionFeedItemService", "methods": [ { - "shortName": "GetCustomerUserAccess", - "fullName": "google.ads.googleads.v7.services.CustomerUserAccessService.GetCustomerUserAccess", + "shortName": "MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v10.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/customerUserAccesses/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/extensionFeedItems:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedItemService", + "fullName": "google.ads.googleads.v10.services.FeedItemService", + "methods": [ { - "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v7.services.CustomerUserAccessService.MutateCustomerUserAccess", + "shortName": "MutateFeedItems", + "fullName": "google.ads.googleads.v10.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v10/customers/{customer_id=*}/feedItems:mutate" } ] } ] }, { - "shortName": "DetailPlacementViewService", - "fullName": "google.ads.googleads.v7.services.DetailPlacementViewService", + "shortName": "FeedItemSetLinkService", + "fullName": "google.ads.googleads.v10.services.FeedItemSetLinkService", "methods": [ { - "shortName": "GetDetailPlacementView", - "fullName": "google.ads.googleads.v7.services.DetailPlacementViewService.GetDetailPlacementView", + "shortName": "MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v10.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/detailPlacementViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] } ] }, { - "shortName": "DisplayKeywordViewService", - "fullName": "google.ads.googleads.v7.services.DisplayKeywordViewService", + "shortName": "FeedItemSetService", + "fullName": "google.ads.googleads.v10.services.FeedItemSetService", "methods": [ { - "shortName": "GetDisplayKeywordView", - "fullName": "google.ads.googleads.v7.services.DisplayKeywordViewService.GetDisplayKeywordView", + "shortName": "MutateFeedItemSets", + "fullName": "google.ads.googleads.v10.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/displayKeywordViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/feedItemSets:mutate" } ] } ] }, { - "shortName": "DistanceViewService", - "fullName": "google.ads.googleads.v7.services.DistanceViewService", + "shortName": "FeedItemTargetService", + "fullName": "google.ads.googleads.v10.services.FeedItemTargetService", "methods": [ { - "shortName": "GetDistanceView", - "fullName": "google.ads.googleads.v7.services.DistanceViewService.GetDistanceView", + "shortName": "MutateFeedItemTargets", + "fullName": "google.ads.googleads.v10.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/distanceViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/feedItemTargets:mutate" } ] } ] }, { - "shortName": "DomainCategoryService", - "fullName": "google.ads.googleads.v7.services.DomainCategoryService", + "shortName": "FeedMappingService", + "fullName": "google.ads.googleads.v10.services.FeedMappingService", "methods": [ { - "shortName": "GetDomainCategory", - "fullName": "google.ads.googleads.v7.services.DomainCategoryService.GetDomainCategory", + "shortName": "MutateFeedMappings", + "fullName": "google.ads.googleads.v10.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/domainCategories/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/feedMappings:mutate" } ] } ] }, { - "shortName": "DynamicSearchAdsSearchTermViewService", - "fullName": "google.ads.googleads.v7.services.DynamicSearchAdsSearchTermViewService", + "shortName": "FeedService", + "fullName": "google.ads.googleads.v10.services.FeedService", "methods": [ { - "shortName": "GetDynamicSearchAdsSearchTermView", - "fullName": "google.ads.googleads.v7.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView", + "shortName": "MutateFeeds", + "fullName": "google.ads.googleads.v10.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/feeds:mutate" } ] } ] }, { - "shortName": "ExpandedLandingPageViewService", - "fullName": "google.ads.googleads.v7.services.ExpandedLandingPageViewService", + "shortName": "GeoTargetConstantService", + "fullName": "google.ads.googleads.v10.services.GeoTargetConstantService", "methods": [ { - "shortName": "GetExpandedLandingPageView", - "fullName": "google.ads.googleads.v7.services.ExpandedLandingPageViewService.GetExpandedLandingPageView", + "shortName": "SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v10.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/expandedLandingPageViews/*}" + "httpMethod": "POST", + "path": "/v10/geoTargetConstants:suggest" } ] } ] }, { - "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v7.services.ExtensionFeedItemService", + "shortName": "GoogleAdsFieldService", + "fullName": "google.ads.googleads.v10.services.GoogleAdsFieldService", "methods": [ { - "shortName": "GetExtensionFeedItem", - "fullName": "google.ads.googleads.v7.services.ExtensionFeedItemService.GetExtensionFeedItem", + "shortName": "GetGoogleAdsField", + "fullName": "google.ads.googleads.v10.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/extensionFeedItems/*}" + "path": "/v10/{resource_name=googleAdsFields/*}" } ] }, { - "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v7.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "shortName": "SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v10.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v10/googleAdsFields:search" } ] } ] }, { - "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v7.services.FeedItemService", + "shortName": "GoogleAdsService", + "fullName": "google.ads.googleads.v10.services.GoogleAdsService", "methods": [ { - "shortName": "GetFeedItem", - "fullName": "google.ads.googleads.v7.services.FeedItemService.GetFeedItem", + "shortName": "Mutate", + "fullName": "google.ads.googleads.v10.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/feedItems/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/googleAds:mutate" } ] }, { - "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v7.services.FeedItemService.MutateFeedItems", + "shortName": "Search", + "fullName": "google.ads.googleads.v10.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/feedItems:mutate" + "path": "/v10/customers/{customer_id=*}/googleAds:search" + } + ] + }, + { + "shortName": "SearchStream", + "fullName": "google.ads.googleads.v10.services.GoogleAdsService.SearchStream", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/googleAds:searchStream" } ] } ] }, { - "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v7.services.FeedItemSetLinkService", + "shortName": "InvoiceService", + "fullName": "google.ads.googleads.v10.services.InvoiceService", "methods": [ { - "shortName": "GetFeedItemSetLink", - "fullName": "google.ads.googleads.v7.services.FeedItemSetLinkService.GetFeedItemSetLink", + "shortName": "ListInvoices", + "fullName": "google.ads.googleads.v10.services.InvoiceService.ListInvoices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/feedItemSetLinks/*}" + "path": "/v10/customers/{customer_id=*}/invoices" } ] - }, + } + ] + }, + { + "shortName": "KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v10.services.KeywordPlanAdGroupKeywordService", + "methods": [ { - "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v7.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "shortName": "MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v10.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v10/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] } ] }, { - "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v7.services.FeedItemSetService", + "shortName": "KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v10.services.KeywordPlanAdGroupService", "methods": [ { - "shortName": "GetFeedItemSet", - "fullName": "google.ads.googleads.v7.services.FeedItemSetService.GetFeedItemSet", + "shortName": "MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v10.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/feedItemSets/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] - }, + } + ] + }, + { + "shortName": "KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v10.services.KeywordPlanCampaignKeywordService", + "methods": [ { - "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v7.services.FeedItemSetService.MutateFeedItemSets", + "shortName": "MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v10.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v10/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" } ] } ] }, { - "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v7.services.FeedItemTargetService", + "shortName": "KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v10.services.KeywordPlanCampaignService", "methods": [ { - "shortName": "GetFeedItemTarget", - "fullName": "google.ads.googleads.v7.services.FeedItemTargetService.GetFeedItemTarget", + "shortName": "MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v10.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/feedItemTargets/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + } + ] + } + ] + }, + { + "shortName": "KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v10.services.KeywordPlanIdeaService", + "methods": [ + { + "shortName": "GenerateKeywordHistoricalMetrics", + "fullName": "google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}:generateKeywordHistoricalMetrics" } ] }, { - "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v7.services.FeedItemTargetService.MutateFeedItemTargets", + "shortName": "GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordIdeas", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v10/customers/{customer_id=*}:generateKeywordIdeas" } ] } ] }, { - "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v7.services.FeedMappingService", + "shortName": "KeywordPlanService", + "fullName": "google.ads.googleads.v10.services.KeywordPlanService", "methods": [ { - "shortName": "GetFeedMapping", - "fullName": "google.ads.googleads.v7.services.FeedMappingService.GetFeedMapping", + "shortName": "GenerateForecastCurve", + "fullName": "google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastCurve", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/feedMappings/*}" + "httpMethod": "POST", + "path": "/v10/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" } ] }, { - "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v7.services.FeedMappingService.MutateFeedMappings", + "shortName": "GenerateForecastMetrics", + "fullName": "google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v10/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" } ] - } - ] - }, - { - "shortName": "FeedPlaceholderViewService", - "fullName": "google.ads.googleads.v7.services.FeedPlaceholderViewService", - "methods": [ + }, { - "shortName": "GetFeedPlaceholderView", - "fullName": "google.ads.googleads.v7.services.FeedPlaceholderViewService.GetFeedPlaceholderView", + "shortName": "GenerateForecastTimeSeries", + "fullName": "google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastTimeSeries", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/feedPlaceholderViews/*}" + "httpMethod": "POST", + "path": "/v10/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" } ] - } - ] - }, - { - "shortName": "FeedService", - "fullName": "google.ads.googleads.v7.services.FeedService", - "methods": [ + }, { - "shortName": "GetFeed", - "fullName": "google.ads.googleads.v7.services.FeedService.GetFeed", + "shortName": "GenerateHistoricalMetrics", + "fullName": "google.ads.googleads.v10.services.KeywordPlanService.GenerateHistoricalMetrics", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/feeds/*}" + "httpMethod": "POST", + "path": "/v10/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" } ] }, { - "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v7.services.FeedService.MutateFeeds", + "shortName": "MutateKeywordPlans", + "fullName": "google.ads.googleads.v10.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/feeds:mutate" + "path": "/v10/customers/{customer_id=*}/keywordPlans:mutate" } ] } ] }, { - "shortName": "GenderViewService", - "fullName": "google.ads.googleads.v7.services.GenderViewService", + "shortName": "KeywordThemeConstantService", + "fullName": "google.ads.googleads.v10.services.KeywordThemeConstantService", "methods": [ { - "shortName": "GetGenderView", - "fullName": "google.ads.googleads.v7.services.GenderViewService.GetGenderView", + "shortName": "SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v10.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/genderViews/*}" + "httpMethod": "POST", + "path": "/v10/keywordThemeConstants:suggest" } ] } ] }, { - "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v7.services.GeoTargetConstantService", + "shortName": "LabelService", + "fullName": "google.ads.googleads.v10.services.LabelService", "methods": [ { - "shortName": "GetGeoTargetConstant", - "fullName": "google.ads.googleads.v7.services.GeoTargetConstantService.GetGeoTargetConstant", + "shortName": "MutateLabels", + "fullName": "google.ads.googleads.v10.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=geoTargetConstants/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/labels:mutate" } ] - }, + } + ] + }, + { + "shortName": "MediaFileService", + "fullName": "google.ads.googleads.v10.services.MediaFileService", + "methods": [ { - "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v7.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "shortName": "MutateMediaFiles", + "fullName": "google.ads.googleads.v10.services.MediaFileService.MutateMediaFiles", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/geoTargetConstants:suggest" + "path": "/v10/customers/{customer_id=*}/mediaFiles:mutate" } ] } ] }, { - "shortName": "GeographicViewService", - "fullName": "google.ads.googleads.v7.services.GeographicViewService", + "shortName": "MerchantCenterLinkService", + "fullName": "google.ads.googleads.v10.services.MerchantCenterLinkService", "methods": [ { - "shortName": "GetGeographicView", - "fullName": "google.ads.googleads.v7.services.GeographicViewService.GetGeographicView", + "shortName": "GetMerchantCenterLink", + "fullName": "google.ads.googleads.v10.services.MerchantCenterLinkService.GetMerchantCenterLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/geographicViews/*}" + "path": "/v10/{resource_name=customers/*/merchantCenterLinks/*}" } ] - } - ] - }, - { - "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v7.services.GoogleAdsFieldService", - "methods": [ + }, { - "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v7.services.GoogleAdsFieldService.GetGoogleAdsField", + "shortName": "ListMerchantCenterLinks", + "fullName": "google.ads.googleads.v10.services.MerchantCenterLinkService.ListMerchantCenterLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=googleAdsFields/*}" + "path": "/v10/customers/{customer_id=*}/merchantCenterLinks" } ] }, { - "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v7.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "shortName": "MutateMerchantCenterLink", + "fullName": "google.ads.googleads.v10.services.MerchantCenterLinkService.MutateMerchantCenterLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/googleAdsFields:search" + "path": "/v10/customers/{customer_id=*}/merchantCenterLinks:mutate" } ] } ] }, { - "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v7.services.GoogleAdsService", + "shortName": "OfflineUserDataJobService", + "fullName": "google.ads.googleads.v10.services.OfflineUserDataJobService", "methods": [ { - "shortName": "Mutate", - "fullName": "google.ads.googleads.v7.services.GoogleAdsService.Mutate", + "shortName": "AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v10.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/googleAds:mutate" + "path": "/v10/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] }, { - "shortName": "Search", - "fullName": "google.ads.googleads.v7.services.GoogleAdsService.Search", + "shortName": "CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v10.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/googleAds:search" + "path": "/v10/customers/{customer_id=*}/offlineUserDataJobs:create" } ] }, { - "shortName": "SearchStream", - "fullName": "google.ads.googleads.v7.services.GoogleAdsService.SearchStream", - "mode": "SERVER_STREAMING", + "shortName": "RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v10.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/googleAds:searchStream" + "path": "/v10/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } ] }, { - "shortName": "GroupPlacementViewService", - "fullName": "google.ads.googleads.v7.services.GroupPlacementViewService", + "shortName": "PaymentsAccountService", + "fullName": "google.ads.googleads.v10.services.PaymentsAccountService", "methods": [ { - "shortName": "GetGroupPlacementView", - "fullName": "google.ads.googleads.v7.services.GroupPlacementViewService.GetGroupPlacementView", + "shortName": "ListPaymentsAccounts", + "fullName": "google.ads.googleads.v10.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/groupPlacementViews/*}" + "path": "/v10/customers/{customer_id=*}/paymentsAccounts" } ] } ] }, { - "shortName": "HotelGroupViewService", - "fullName": "google.ads.googleads.v7.services.HotelGroupViewService", + "shortName": "ReachPlanService", + "fullName": "google.ads.googleads.v10.services.ReachPlanService", "methods": [ { - "shortName": "GetHotelGroupView", - "fullName": "google.ads.googleads.v7.services.HotelGroupViewService.GetHotelGroupView", + "shortName": "GenerateProductMixIdeas", + "fullName": "google.ads.googleads.v10.services.ReachPlanService.GenerateProductMixIdeas", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/hotelGroupViews/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}:generateProductMixIdeas" } ] - } - ] - }, - { - "shortName": "HotelPerformanceViewService", - "fullName": "google.ads.googleads.v7.services.HotelPerformanceViewService", - "methods": [ + }, { - "shortName": "GetHotelPerformanceView", - "fullName": "google.ads.googleads.v7.services.HotelPerformanceViewService.GetHotelPerformanceView", + "shortName": "GenerateReachForecast", + "fullName": "google.ads.googleads.v10.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/hotelPerformanceView}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}:generateReachForecast" } ] - } - ] - }, - { - "shortName": "IncomeRangeViewService", - "fullName": "google.ads.googleads.v7.services.IncomeRangeViewService", - "methods": [ + }, { - "shortName": "GetIncomeRangeView", - "fullName": "google.ads.googleads.v7.services.IncomeRangeViewService.GetIncomeRangeView", + "shortName": "ListPlannableLocations", + "fullName": "google.ads.googleads.v10.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/incomeRangeViews/*}" + "httpMethod": "POST", + "path": "/v10:listPlannableLocations" } ] - } - ] - }, - { - "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v7.services.InvoiceService", - "methods": [ + }, { - "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v7.services.InvoiceService.ListInvoices", + "shortName": "ListPlannableProducts", + "fullName": "google.ads.googleads.v10.services.ReachPlanService.ListPlannableProducts", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/customers/{customer_id=*}/invoices" + "httpMethod": "POST", + "path": "/v10:listPlannableProducts" } ] } ] }, { - "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService", + "shortName": "RecommendationService", + "fullName": "google.ads.googleads.v10.services.RecommendationService", "methods": [ { - "shortName": "GetKeywordPlanAdGroupKeyword", - "fullName": "google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword", + "shortName": "ApplyRecommendation", + "fullName": "google.ads.googleads.v10.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/keywordPlanAdGroupKeywords/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}/recommendations:apply" } ] }, { - "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "shortName": "DismissRecommendation", + "fullName": "google.ads.googleads.v10.services.RecommendationService.DismissRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "path": "/v10/customers/{customer_id=*}/recommendations:dismiss" } ] } ] }, { - "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v7.services.KeywordPlanAdGroupService", + "shortName": "RemarketingActionService", + "fullName": "google.ads.googleads.v10.services.RemarketingActionService", "methods": [ { - "shortName": "GetKeywordPlanAdGroup", - "fullName": "google.ads.googleads.v7.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/keywordPlanAdGroups/*}" - } - ] - }, - { - "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v7.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "shortName": "MutateRemarketingActions", + "fullName": "google.ads.googleads.v10.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "path": "/v10/customers/{customer_id=*}/remarketingActions:mutate" } ] } ] }, { - "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService", + "shortName": "SharedCriterionService", + "fullName": "google.ads.googleads.v10.services.SharedCriterionService", "methods": [ { - "shortName": "GetKeywordPlanCampaignKeyword", - "fullName": "google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/keywordPlanCampaignKeywords/*}" - } - ] - }, - { - "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "shortName": "MutateSharedCriteria", + "fullName": "google.ads.googleads.v10.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "path": "/v10/customers/{customer_id=*}/sharedCriteria:mutate" } ] } ] }, { - "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v7.services.KeywordPlanCampaignService", + "shortName": "SharedSetService", + "fullName": "google.ads.googleads.v10.services.SharedSetService", "methods": [ { - "shortName": "GetKeywordPlanCampaign", - "fullName": "google.ads.googleads.v7.services.KeywordPlanCampaignService.GetKeywordPlanCampaign", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/keywordPlanCampaigns/*}" - } - ] - }, - { - "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v7.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "shortName": "MutateSharedSets", + "fullName": "google.ads.googleads.v10.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "path": "/v10/customers/{customer_id=*}/sharedSets:mutate" } ] } ] }, { - "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v7.services.KeywordPlanIdeaService", + "shortName": "SmartCampaignSettingService", + "fullName": "google.ads.googleads.v10.services.SmartCampaignSettingService", "methods": [ { - "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v7.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "shortName": "MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v10.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:generateKeywordIdeas" + "path": "/v10/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] } ] }, { - "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v7.services.KeywordPlanService", + "shortName": "SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v10.services.SmartCampaignSuggestService", "methods": [ { - "shortName": "GenerateForecastCurve", - "fullName": "google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastCurve", + "shortName": "SuggestKeywordThemes", + "fullName": "google.ads.googleads.v10.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" + "path": "/v10/customers/{customer_id=*}:suggestKeywordThemes" } ] }, { - "shortName": "GenerateForecastMetrics", - "fullName": "google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastMetrics", + "shortName": "SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v10.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" + "path": "/v10/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { - "shortName": "GenerateForecastTimeSeries", - "fullName": "google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastTimeSeries", + "shortName": "SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v10.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" + "path": "/v10/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] - }, + } + ] + }, + { + "shortName": "ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService", + "methods": [ { - "shortName": "GenerateHistoricalMetrics", - "fullName": "google.ads.googleads.v7.services.KeywordPlanService.GenerateHistoricalMetrics", + "shortName": "RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" + "path": "/v10/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] - }, + } + ] + }, + { + "shortName": "UserDataService", + "fullName": "google.ads.googleads.v10.services.UserDataService", + "methods": [ { - "shortName": "GetKeywordPlan", - "fullName": "google.ads.googleads.v7.services.KeywordPlanService.GetKeywordPlan", + "shortName": "UploadUserData", + "fullName": "google.ads.googleads.v10.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/keywordPlans/*}" + "httpMethod": "POST", + "path": "/v10/customers/{customer_id=*}:uploadUserData" } ] - }, + } + ] + }, + { + "shortName": "UserListService", + "fullName": "google.ads.googleads.v10.services.UserListService", + "methods": [ { - "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v7.services.KeywordPlanService.MutateKeywordPlans", + "shortName": "MutateUserLists", + "fullName": "google.ads.googleads.v10.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/keywordPlans:mutate" + "path": "/v10/customers/{customer_id=*}/userLists:mutate" } ] } ] + } + ], + "configFile": "googleads_v10.yaml", + "serviceConfigApiNames": [ + "google.ads.googleads.v10.services.AccountBudgetProposalService", + "google.ads.googleads.v10.services.AccountLinkService", + "google.ads.googleads.v10.services.AdGroupAdLabelService", + "google.ads.googleads.v10.services.AdGroupAdService", + "google.ads.googleads.v10.services.AdGroupAssetService", + "google.ads.googleads.v10.services.AdGroupBidModifierService", + "google.ads.googleads.v10.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v10.services.AdGroupCriterionLabelService", + "google.ads.googleads.v10.services.AdGroupCriterionService", + "google.ads.googleads.v10.services.AdGroupCustomizerService", + "google.ads.googleads.v10.services.AdGroupExtensionSettingService", + "google.ads.googleads.v10.services.AdGroupFeedService", + "google.ads.googleads.v10.services.AdGroupLabelService", + "google.ads.googleads.v10.services.AdGroupService", + "google.ads.googleads.v10.services.AdParameterService", + "google.ads.googleads.v10.services.AdService", + "google.ads.googleads.v10.services.AssetGroupAssetService", + "google.ads.googleads.v10.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v10.services.AssetGroupService", + "google.ads.googleads.v10.services.AssetGroupSignalService", + "google.ads.googleads.v10.services.AssetService", + "google.ads.googleads.v10.services.AssetSetAssetService", + "google.ads.googleads.v10.services.AssetSetService", + "google.ads.googleads.v10.services.AudienceService", + "google.ads.googleads.v10.services.BatchJobService", + "google.ads.googleads.v10.services.BiddingDataExclusionService", + "google.ads.googleads.v10.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v10.services.BiddingStrategyService", + "google.ads.googleads.v10.services.BillingSetupService", + "google.ads.googleads.v10.services.CampaignAssetService", + "google.ads.googleads.v10.services.CampaignAssetSetService", + "google.ads.googleads.v10.services.CampaignBidModifierService", + "google.ads.googleads.v10.services.CampaignBudgetService", + "google.ads.googleads.v10.services.CampaignConversionGoalService", + "google.ads.googleads.v10.services.CampaignCriterionService", + "google.ads.googleads.v10.services.CampaignCustomizerService", + "google.ads.googleads.v10.services.CampaignDraftService", + "google.ads.googleads.v10.services.CampaignExperimentService", + "google.ads.googleads.v10.services.CampaignExtensionSettingService", + "google.ads.googleads.v10.services.CampaignFeedService", + "google.ads.googleads.v10.services.CampaignGroupService", + "google.ads.googleads.v10.services.CampaignLabelService", + "google.ads.googleads.v10.services.CampaignService", + "google.ads.googleads.v10.services.CampaignSharedSetService", + "google.ads.googleads.v10.services.ConversionActionService", + "google.ads.googleads.v10.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v10.services.ConversionCustomVariableService", + "google.ads.googleads.v10.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v10.services.ConversionUploadService", + "google.ads.googleads.v10.services.ConversionValueRuleService", + "google.ads.googleads.v10.services.ConversionValueRuleSetService", + "google.ads.googleads.v10.services.CustomAudienceService", + "google.ads.googleads.v10.services.CustomConversionGoalService", + "google.ads.googleads.v10.services.CustomInterestService", + "google.ads.googleads.v10.services.CustomerAssetService", + "google.ads.googleads.v10.services.CustomerClientLinkService", + "google.ads.googleads.v10.services.CustomerConversionGoalService", + "google.ads.googleads.v10.services.CustomerCustomizerService", + "google.ads.googleads.v10.services.CustomerExtensionSettingService", + "google.ads.googleads.v10.services.CustomerFeedService", + "google.ads.googleads.v10.services.CustomerLabelService", + "google.ads.googleads.v10.services.CustomerManagerLinkService", + "google.ads.googleads.v10.services.CustomerNegativeCriterionService", + "google.ads.googleads.v10.services.CustomerService", + "google.ads.googleads.v10.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v10.services.CustomerUserAccessService", + "google.ads.googleads.v10.services.CustomizerAttributeService", + "google.ads.googleads.v10.services.ExperimentArmService", + "google.ads.googleads.v10.services.ExperimentService", + "google.ads.googleads.v10.services.ExtensionFeedItemService", + "google.ads.googleads.v10.services.FeedItemService", + "google.ads.googleads.v10.services.FeedItemSetLinkService", + "google.ads.googleads.v10.services.FeedItemSetService", + "google.ads.googleads.v10.services.FeedItemTargetService", + "google.ads.googleads.v10.services.FeedMappingService", + "google.ads.googleads.v10.services.FeedService", + "google.ads.googleads.v10.services.GeoTargetConstantService", + "google.ads.googleads.v10.services.GoogleAdsFieldService", + "google.ads.googleads.v10.services.GoogleAdsService", + "google.ads.googleads.v10.services.InvoiceService", + "google.ads.googleads.v10.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v10.services.KeywordPlanAdGroupService", + "google.ads.googleads.v10.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v10.services.KeywordPlanCampaignService", + "google.ads.googleads.v10.services.KeywordPlanIdeaService", + "google.ads.googleads.v10.services.KeywordPlanService", + "google.ads.googleads.v10.services.KeywordThemeConstantService", + "google.ads.googleads.v10.services.LabelService", + "google.ads.googleads.v10.services.MediaFileService", + "google.ads.googleads.v10.services.MerchantCenterLinkService", + "google.ads.googleads.v10.services.OfflineUserDataJobService", + "google.ads.googleads.v10.services.PaymentsAccountService", + "google.ads.googleads.v10.services.ReachPlanService", + "google.ads.googleads.v10.services.RecommendationService", + "google.ads.googleads.v10.services.RemarketingActionService", + "google.ads.googleads.v10.services.SharedCriterionService", + "google.ads.googleads.v10.services.SharedSetService", + "google.ads.googleads.v10.services.SmartCampaignSettingService", + "google.ads.googleads.v10.services.SmartCampaignSuggestService", + "google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v10.services.UserDataService", + "google.ads.googleads.v10.services.UserListService" + ] + }, + { + "id": "google.ads.googleads.v11", + "directory": "google/ads/googleads/v11", + "version": "v11", + "majorVersion": "v11", + "hostName": "googleads.googleapis.com", + "title": "Google Ads API", + "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", + "importDirectories": [ + "google/ads/googleads/v11/common", + "google/ads/googleads/v11/enums", + "google/ads/googleads/v11/errors", + "google/ads/googleads/v11/resources", + "google/ads/googleads/v11/services", + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Ads.GoogleAds.V11.Common": 35, + "Google.Ads.GoogleAds.V11.Enums": 299, + "Google.Ads.GoogleAds.V11.Errors": 141, + "Google.Ads.GoogleAds.V11.Resources": 156, + "Google.Ads.GoogleAds.V11.Services": 103 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common": 35, + "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums": 299, + "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors": 141, + "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources": 156, + "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services": 103 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 734 + } }, + "java_package": { + "valueCounts": { + "com.google.ads.googleads.v11.common": 35, + "com.google.ads.googleads.v11.enums": 299, + "com.google.ads.googleads.v11.errors": 141, + "com.google.ads.googleads.v11.resources": 156, + "com.google.ads.googleads.v11.services": 103 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GAA": 734 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Ads\\GoogleAds\\V11\\Common": 35, + "Google\\Ads\\GoogleAds\\V11\\Enums": 299, + "Google\\Ads\\GoogleAds\\V11\\Errors": 141, + "Google\\Ads\\GoogleAds\\V11\\Resources": 156, + "Google\\Ads\\GoogleAds\\V11\\Services": 103 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Ads::GoogleAds::V11::Common": 35, + "Google::Ads::GoogleAds::V11::Enums": 299, + "Google::Ads::GoogleAds::V11::Errors": 141, + "Google::Ads::GoogleAds::V11::Resources": 156, + "Google::Ads::GoogleAds::V11::Services": 103 + } + } + }, + "services": [ { - "shortName": "KeywordViewService", - "fullName": "google.ads.googleads.v7.services.KeywordViewService", + "shortName": "AccountBudgetProposalService", + "fullName": "google.ads.googleads.v11.services.AccountBudgetProposalService", "methods": [ { - "shortName": "GetKeywordView", - "fullName": "google.ads.googleads.v7.services.KeywordViewService.GetKeywordView", + "shortName": "MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v11.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/keywordViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] } ] }, { - "shortName": "LabelService", - "fullName": "google.ads.googleads.v7.services.LabelService", + "shortName": "AccountLinkService", + "fullName": "google.ads.googleads.v11.services.AccountLinkService", "methods": [ { - "shortName": "GetLabel", - "fullName": "google.ads.googleads.v7.services.LabelService.GetLabel", + "shortName": "CreateAccountLink", + "fullName": "google.ads.googleads.v11.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/labels/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/accountLinks:create" } ] }, { - "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v7.services.LabelService.MutateLabels", + "shortName": "MutateAccountLink", + "fullName": "google.ads.googleads.v11.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/labels:mutate" + "path": "/v11/customers/{customer_id=*}/accountLinks:mutate" } ] } ] }, { - "shortName": "LandingPageViewService", - "fullName": "google.ads.googleads.v7.services.LandingPageViewService", + "shortName": "AdGroupAdLabelService", + "fullName": "google.ads.googleads.v11.services.AdGroupAdLabelService", "methods": [ { - "shortName": "GetLandingPageView", - "fullName": "google.ads.googleads.v7.services.LandingPageViewService.GetLandingPageView", + "shortName": "MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v11.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/landingPageViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] } ] }, { - "shortName": "LanguageConstantService", - "fullName": "google.ads.googleads.v7.services.LanguageConstantService", + "shortName": "AdGroupAdService", + "fullName": "google.ads.googleads.v11.services.AdGroupAdService", "methods": [ { - "shortName": "GetLanguageConstant", - "fullName": "google.ads.googleads.v7.services.LanguageConstantService.GetLanguageConstant", + "shortName": "MutateAdGroupAds", + "fullName": "google.ads.googleads.v11.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=languageConstants/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/adGroupAds:mutate" } ] } ] }, { - "shortName": "LifeEventService", - "fullName": "google.ads.googleads.v7.services.LifeEventService", + "shortName": "AdGroupAssetService", + "fullName": "google.ads.googleads.v11.services.AdGroupAssetService", "methods": [ { - "shortName": "GetLifeEvent", - "fullName": "google.ads.googleads.v7.services.LifeEventService.GetLifeEvent", + "shortName": "MutateAdGroupAssets", + "fullName": "google.ads.googleads.v11.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/lifeEvents/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/adGroupAssets:mutate" } ] } ] }, { - "shortName": "LocationViewService", - "fullName": "google.ads.googleads.v7.services.LocationViewService", + "shortName": "AdGroupBidModifierService", + "fullName": "google.ads.googleads.v11.services.AdGroupBidModifierService", "methods": [ { - "shortName": "GetLocationView", - "fullName": "google.ads.googleads.v7.services.LocationViewService.GetLocationView", + "shortName": "MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v11.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/locationViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } ] }, { - "shortName": "ManagedPlacementViewService", - "fullName": "google.ads.googleads.v7.services.ManagedPlacementViewService", + "shortName": "AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v11.services.AdGroupCriterionCustomizerService", "methods": [ { - "shortName": "GetManagedPlacementView", - "fullName": "google.ads.googleads.v7.services.ManagedPlacementViewService.GetManagedPlacementView", + "shortName": "MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v11.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/managedPlacementViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } ] }, { - "shortName": "MediaFileService", - "fullName": "google.ads.googleads.v7.services.MediaFileService", + "shortName": "AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v11.services.AdGroupCriterionLabelService", "methods": [ { - "shortName": "GetMediaFile", - "fullName": "google.ads.googleads.v7.services.MediaFileService.GetMediaFile", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/mediaFiles/*}" - } - ] - }, - { - "shortName": "MutateMediaFiles", - "fullName": "google.ads.googleads.v7.services.MediaFileService.MutateMediaFiles", + "shortName": "MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v11.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/mediaFiles:mutate" + "path": "/v11/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } ] }, { - "shortName": "MerchantCenterLinkService", - "fullName": "google.ads.googleads.v7.services.MerchantCenterLinkService", + "shortName": "AdGroupCriterionService", + "fullName": "google.ads.googleads.v11.services.AdGroupCriterionService", "methods": [ { - "shortName": "GetMerchantCenterLink", - "fullName": "google.ads.googleads.v7.services.MerchantCenterLinkService.GetMerchantCenterLink", + "shortName": "MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v11.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/merchantCenterLinks/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/adGroupCriteria:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdGroupCustomizerService", + "fullName": "google.ads.googleads.v11.services.AdGroupCustomizerService", + "methods": [ { - "shortName": "ListMerchantCenterLinks", - "fullName": "google.ads.googleads.v7.services.MerchantCenterLinkService.ListMerchantCenterLinks", + "shortName": "MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v11.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/customers/{customer_id=*}/merchantCenterLinks" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v11.services.AdGroupExtensionSettingService", + "methods": [ { - "shortName": "MutateMerchantCenterLink", - "fullName": "google.ads.googleads.v7.services.MerchantCenterLinkService.MutateMerchantCenterLink", + "shortName": "MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v11.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/merchantCenterLinks:mutate" + "path": "/v11/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] } ] }, { - "shortName": "MobileAppCategoryConstantService", - "fullName": "google.ads.googleads.v7.services.MobileAppCategoryConstantService", + "shortName": "AdGroupFeedService", + "fullName": "google.ads.googleads.v11.services.AdGroupFeedService", "methods": [ { - "shortName": "GetMobileAppCategoryConstant", - "fullName": "google.ads.googleads.v7.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant", + "shortName": "MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v11.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=mobileAppCategoryConstants/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/adGroupFeeds:mutate" } ] } ] }, { - "shortName": "MobileDeviceConstantService", - "fullName": "google.ads.googleads.v7.services.MobileDeviceConstantService", + "shortName": "AdGroupLabelService", + "fullName": "google.ads.googleads.v11.services.AdGroupLabelService", "methods": [ { - "shortName": "GetMobileDeviceConstant", - "fullName": "google.ads.googleads.v7.services.MobileDeviceConstantService.GetMobileDeviceConstant", + "shortName": "MutateAdGroupLabels", + "fullName": "google.ads.googleads.v11.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=mobileDeviceConstants/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/adGroupLabels:mutate" } ] } ] }, { - "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v7.services.OfflineUserDataJobService", + "shortName": "AdGroupService", + "fullName": "google.ads.googleads.v11.services.AdGroupService", "methods": [ { - "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v7.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "shortName": "MutateAdGroups", + "fullName": "google.ads.googleads.v11.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "path": "/v11/customers/{customer_id=*}/adGroups:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdParameterService", + "fullName": "google.ads.googleads.v11.services.AdParameterService", + "methods": [ { - "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v7.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "shortName": "MutateAdParameters", + "fullName": "google.ads.googleads.v11.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/offlineUserDataJobs:create" + "path": "/v11/customers/{customer_id=*}/adParameters:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdService", + "fullName": "google.ads.googleads.v11.services.AdService", + "methods": [ { - "shortName": "GetOfflineUserDataJob", - "fullName": "google.ads.googleads.v7.services.OfflineUserDataJobService.GetOfflineUserDataJob", + "shortName": "GetAd", + "fullName": "google.ads.googleads.v11.services.AdService.GetAd", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/offlineUserDataJobs/*}" + "path": "/v11/{resource_name=customers/*/ads/*}" } ] }, { - "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v7.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "shortName": "MutateAds", + "fullName": "google.ads.googleads.v11.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "path": "/v11/customers/{customer_id=*}/ads:mutate" } ] } ] }, { - "shortName": "OperatingSystemVersionConstantService", - "fullName": "google.ads.googleads.v7.services.OperatingSystemVersionConstantService", + "shortName": "AssetGroupAssetService", + "fullName": "google.ads.googleads.v11.services.AssetGroupAssetService", "methods": [ { - "shortName": "GetOperatingSystemVersionConstant", - "fullName": "google.ads.googleads.v7.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant", + "shortName": "MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v11.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=operatingSystemVersionConstants/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } ] }, { - "shortName": "PaidOrganicSearchTermViewService", - "fullName": "google.ads.googleads.v7.services.PaidOrganicSearchTermViewService", + "shortName": "AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v11.services.AssetGroupListingGroupFilterService", "methods": [ { - "shortName": "GetPaidOrganicSearchTermView", - "fullName": "google.ads.googleads.v7.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView", + "shortName": "MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v11.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/paidOrganicSearchTermViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] } ] }, { - "shortName": "ParentalStatusViewService", - "fullName": "google.ads.googleads.v7.services.ParentalStatusViewService", + "shortName": "AssetGroupService", + "fullName": "google.ads.googleads.v11.services.AssetGroupService", "methods": [ { - "shortName": "GetParentalStatusView", - "fullName": "google.ads.googleads.v7.services.ParentalStatusViewService.GetParentalStatusView", + "shortName": "MutateAssetGroups", + "fullName": "google.ads.googleads.v11.services.AssetGroupService.MutateAssetGroups", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/parentalStatusViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/assetGroups:mutate" } ] } ] }, { - "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v7.services.PaymentsAccountService", + "shortName": "AssetGroupSignalService", + "fullName": "google.ads.googleads.v11.services.AssetGroupSignalService", "methods": [ { - "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v7.services.PaymentsAccountService.ListPaymentsAccounts", + "shortName": "MutateAssetGroupSignals", + "fullName": "google.ads.googleads.v11.services.AssetGroupSignalService.MutateAssetGroupSignals", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/customers/{customer_id=*}/paymentsAccounts" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/assetGroupSignals:mutate" } ] } ] }, { - "shortName": "ProductBiddingCategoryConstantService", - "fullName": "google.ads.googleads.v7.services.ProductBiddingCategoryConstantService", + "shortName": "AssetService", + "fullName": "google.ads.googleads.v11.services.AssetService", "methods": [ { - "shortName": "GetProductBiddingCategoryConstant", - "fullName": "google.ads.googleads.v7.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant", + "shortName": "MutateAssets", + "fullName": "google.ads.googleads.v11.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=productBiddingCategoryConstants/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/assets:mutate" } ] } ] }, { - "shortName": "ProductGroupViewService", - "fullName": "google.ads.googleads.v7.services.ProductGroupViewService", + "shortName": "AssetSetAssetService", + "fullName": "google.ads.googleads.v11.services.AssetSetAssetService", "methods": [ { - "shortName": "GetProductGroupView", - "fullName": "google.ads.googleads.v7.services.ProductGroupViewService.GetProductGroupView", + "shortName": "MutateAssetSetAssets", + "fullName": "google.ads.googleads.v11.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/productGroupViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/assetSetAssets:mutate" } ] } ] }, { - "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v7.services.ReachPlanService", + "shortName": "AssetSetService", + "fullName": "google.ads.googleads.v11.services.AssetSetService", "methods": [ { - "shortName": "GenerateProductMixIdeas", - "fullName": "google.ads.googleads.v7.services.ReachPlanService.GenerateProductMixIdeas", + "shortName": "MutateAssetSets", + "fullName": "google.ads.googleads.v11.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:generateProductMixIdeas" + "path": "/v11/customers/{customer_id=*}/assetSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "AudienceInsightsService", + "fullName": "google.ads.googleads.v11.services.AudienceInsightsService", + "methods": [ { - "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v7.services.ReachPlanService.GenerateReachForecast", + "shortName": "GenerateAudienceCompositionInsights", + "fullName": "google.ads.googleads.v11.services.AudienceInsightsService.GenerateAudienceCompositionInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:generateReachForecast" + "path": "/v11/customers/{customer_id=*}:generateAudienceCompositionInsights" } ] }, { - "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v7.services.ReachPlanService.ListPlannableLocations", + "shortName": "GenerateInsightsFinderReport", + "fullName": "google.ads.googleads.v11.services.AudienceInsightsService.GenerateInsightsFinderReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7:listPlannableLocations" + "path": "/v11/customers/{customer_id=*}:generateInsightsFinderReport" } ] }, { - "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v7.services.ReachPlanService.ListPlannableProducts", + "shortName": "ListAudienceInsightsAttributes", + "fullName": "google.ads.googleads.v11.services.AudienceInsightsService.ListAudienceInsightsAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7:listPlannableProducts" + "path": "/v11/customers/{customer_id=*}:searchAudienceInsightsAttributes" } ] } ] }, { - "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v7.services.RecommendationService", + "shortName": "AudienceService", + "fullName": "google.ads.googleads.v11.services.AudienceService", "methods": [ { - "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v7.services.RecommendationService.ApplyRecommendation", + "shortName": "MutateAudiences", + "fullName": "google.ads.googleads.v11.services.AudienceService.MutateAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/recommendations:apply" + "path": "/v11/customers/{customer_id=*}/audiences:mutate" } ] - }, + } + ] + }, + { + "shortName": "BatchJobService", + "fullName": "google.ads.googleads.v11.services.BatchJobService", + "methods": [ { - "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v7.services.RecommendationService.DismissRecommendation", + "shortName": "AddBatchJobOperations", + "fullName": "google.ads.googleads.v11.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/recommendations:dismiss" + "path": "/v11/{resource_name=customers/*/batchJobs/*}:addOperations" } ] }, { - "shortName": "GetRecommendation", - "fullName": "google.ads.googleads.v7.services.RecommendationService.GetRecommendation", + "shortName": "ListBatchJobResults", + "fullName": "google.ads.googleads.v11.services.BatchJobService.ListBatchJobResults", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/recommendations/*}" + "path": "/v11/{resource_name=customers/*/batchJobs/*}:listResults" } ] - } - ] - }, - { - "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v7.services.RemarketingActionService", - "methods": [ + }, { - "shortName": "GetRemarketingAction", - "fullName": "google.ads.googleads.v7.services.RemarketingActionService.GetRemarketingAction", + "shortName": "MutateBatchJob", + "fullName": "google.ads.googleads.v11.services.BatchJobService.MutateBatchJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/remarketingActions/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/batchJobs:mutate" } ] }, { - "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v7.services.RemarketingActionService.MutateRemarketingActions", + "shortName": "RunBatchJob", + "fullName": "google.ads.googleads.v11.services.BatchJobService.RunBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v11/{resource_name=customers/*/batchJobs/*}:run" } ] } ] }, { - "shortName": "SearchTermViewService", - "fullName": "google.ads.googleads.v7.services.SearchTermViewService", + "shortName": "BiddingDataExclusionService", + "fullName": "google.ads.googleads.v11.services.BiddingDataExclusionService", "methods": [ { - "shortName": "GetSearchTermView", - "fullName": "google.ads.googleads.v7.services.SearchTermViewService.GetSearchTermView", + "shortName": "MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v11.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/searchTermViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] } ] }, { - "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v7.services.SharedCriterionService", + "shortName": "BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v11.services.BiddingSeasonalityAdjustmentService", "methods": [ { - "shortName": "GetSharedCriterion", - "fullName": "google.ads.googleads.v7.services.SharedCriterionService.GetSharedCriterion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/sharedCriteria/*}" - } - ] - }, - { - "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v7.services.SharedCriterionService.MutateSharedCriteria", + "shortName": "MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v11.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/sharedCriteria:mutate" + "path": "/v11/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } ] }, { - "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v7.services.SharedSetService", + "shortName": "BiddingStrategyService", + "fullName": "google.ads.googleads.v11.services.BiddingStrategyService", "methods": [ { - "shortName": "GetSharedSet", - "fullName": "google.ads.googleads.v7.services.SharedSetService.GetSharedSet", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/sharedSets/*}" - } - ] - }, - { - "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v7.services.SharedSetService.MutateSharedSets", + "shortName": "MutateBiddingStrategies", + "fullName": "google.ads.googleads.v11.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v11/customers/{customer_id=*}/biddingStrategies:mutate" } ] } ] }, { - "shortName": "ShoppingPerformanceViewService", - "fullName": "google.ads.googleads.v7.services.ShoppingPerformanceViewService", + "shortName": "BillingSetupService", + "fullName": "google.ads.googleads.v11.services.BillingSetupService", "methods": [ { - "shortName": "GetShoppingPerformanceView", - "fullName": "google.ads.googleads.v7.services.ShoppingPerformanceViewService.GetShoppingPerformanceView", + "shortName": "MutateBillingSetup", + "fullName": "google.ads.googleads.v11.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/shoppingPerformanceView}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/billingSetups:mutate" } ] } ] }, { - "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService", + "shortName": "CampaignAssetService", + "fullName": "google.ads.googleads.v11.services.CampaignAssetService", "methods": [ { - "shortName": "GetThirdPartyAppAnalyticsLink", - "fullName": "google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}" - } - ] - }, - { - "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "shortName": "MutateCampaignAssets", + "fullName": "google.ads.googleads.v11.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "path": "/v11/customers/{customer_id=*}/campaignAssets:mutate" } ] } ] }, { - "shortName": "TopicConstantService", - "fullName": "google.ads.googleads.v7.services.TopicConstantService", + "shortName": "CampaignAssetSetService", + "fullName": "google.ads.googleads.v11.services.CampaignAssetSetService", "methods": [ { - "shortName": "GetTopicConstant", - "fullName": "google.ads.googleads.v7.services.TopicConstantService.GetTopicConstant", + "shortName": "MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v11.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=topicConstants/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } ] }, { - "shortName": "TopicViewService", - "fullName": "google.ads.googleads.v7.services.TopicViewService", + "shortName": "CampaignBidModifierService", + "fullName": "google.ads.googleads.v11.services.CampaignBidModifierService", "methods": [ { - "shortName": "GetTopicView", - "fullName": "google.ads.googleads.v7.services.TopicViewService.GetTopicView", + "shortName": "MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v11.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/topicViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } ] }, { - "shortName": "UserDataService", - "fullName": "google.ads.googleads.v7.services.UserDataService", + "shortName": "CampaignBudgetService", + "fullName": "google.ads.googleads.v11.services.CampaignBudgetService", "methods": [ { - "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v7.services.UserDataService.UploadUserData", + "shortName": "MutateCampaignBudgets", + "fullName": "google.ads.googleads.v11.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}:uploadUserData" + "path": "/v11/customers/{customer_id=*}/campaignBudgets:mutate" } ] } ] }, { - "shortName": "UserInterestService", - "fullName": "google.ads.googleads.v7.services.UserInterestService", + "shortName": "CampaignConversionGoalService", + "fullName": "google.ads.googleads.v11.services.CampaignConversionGoalService", "methods": [ { - "shortName": "GetUserInterest", - "fullName": "google.ads.googleads.v7.services.UserInterestService.GetUserInterest", + "shortName": "MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v11.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/userInterests/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] } ] }, { - "shortName": "UserListService", - "fullName": "google.ads.googleads.v7.services.UserListService", + "shortName": "CampaignCriterionService", + "fullName": "google.ads.googleads.v11.services.CampaignCriterionService", "methods": [ { - "shortName": "GetUserList", - "fullName": "google.ads.googleads.v7.services.UserListService.GetUserList", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/userLists/*}" - } - ] - }, - { - "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v7.services.UserListService.MutateUserLists", + "shortName": "MutateCampaignCriteria", + "fullName": "google.ads.googleads.v11.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v7/customers/{customer_id=*}/userLists:mutate" + "path": "/v11/customers/{customer_id=*}/campaignCriteria:mutate" } ] } ] }, { - "shortName": "UserLocationViewService", - "fullName": "google.ads.googleads.v7.services.UserLocationViewService", + "shortName": "CampaignCustomizerService", + "fullName": "google.ads.googleads.v11.services.CampaignCustomizerService", "methods": [ { - "shortName": "GetUserLocationView", - "fullName": "google.ads.googleads.v7.services.UserLocationViewService.GetUserLocationView", + "shortName": "MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v11.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/userLocationViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignCustomizers:mutate" } ] } ] }, { - "shortName": "VideoService", - "fullName": "google.ads.googleads.v7.services.VideoService", + "shortName": "CampaignDraftService", + "fullName": "google.ads.googleads.v11.services.CampaignDraftService", "methods": [ { - "shortName": "GetVideo", - "fullName": "google.ads.googleads.v7.services.VideoService.GetVideo", + "shortName": "ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v11.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/videos/*}" + "path": "/v11/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] - } - ] - }, - { - "shortName": "WebpageViewService", - "fullName": "google.ads.googleads.v7.services.WebpageViewService", - "methods": [ + }, { - "shortName": "GetWebpageView", - "fullName": "google.ads.googleads.v7.services.WebpageViewService.GetWebpageView", + "shortName": "MutateCampaignDrafts", + "fullName": "google.ads.googleads.v11.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v7/{resource_name=customers/*/webpageViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignDrafts:mutate" } ] - } - ] - } - ], - "configFile": "googleads_v7.yaml" - }, - { - "id": "google.ads.googleads.v8", - "directory": "google/ads/googleads/v8", - "version": "v8", - "majorVersion": "v8", - "hostName": "googleads.googleapis.com", - "title": "Google Ads API", - "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", - "importDirectories": [ - "google/ads/googleads/v8/common", - "google/ads/googleads/v8/enums", - "google/ads/googleads/v8/errors", - "google/ads/googleads/v8/resources", - "google/ads/googleads/v8/services", - "google/api", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Ads.GoogleAds.V8.Common": 30, - "Google.Ads.GoogleAds.V8.Enums": 259, - "Google.Ads.GoogleAds.V8.Errors": 122, - "Google.Ads.GoogleAds.V8.Resources": 132, - "Google.Ads.GoogleAds.V8.Services": 137 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common": 30, - "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums": 259, - "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors": 122, - "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources": 132, - "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services": 137 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 680 - } - }, - "java_package": { - "valueCounts": { - "com.google.ads.googleads.v8.common": 30, - "com.google.ads.googleads.v8.enums": 259, - "com.google.ads.googleads.v8.errors": 122, - "com.google.ads.googleads.v8.resources": 132, - "com.google.ads.googleads.v8.services": 137 - } - }, - "objc_class_prefix": { - "valueCounts": { - "GAA": 680 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Ads\\GoogleAds\\V8\\Common": 30, - "Google\\Ads\\GoogleAds\\V8\\Enums": 259, - "Google\\Ads\\GoogleAds\\V8\\Errors": 122, - "Google\\Ads\\GoogleAds\\V8\\Resources": 132, - "Google\\Ads\\GoogleAds\\V8\\Services": 137 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Ads::GoogleAds::V8::Common": 30, - "Google::Ads::GoogleAds::V8::Enums": 259, - "Google::Ads::GoogleAds::V8::Errors": 122, - "Google::Ads::GoogleAds::V8::Resources": 132, - "Google::Ads::GoogleAds::V8::Services": 137 - } - } - }, - "services": [ - { - "shortName": "AccessibleBiddingStrategyService", - "fullName": "google.ads.googleads.v8.services.AccessibleBiddingStrategyService", - "methods": [ + }, { - "shortName": "GetAccessibleBiddingStrategy", - "fullName": "google.ads.googleads.v8.services.AccessibleBiddingStrategyService.GetAccessibleBiddingStrategy", + "shortName": "PromoteCampaignDraft", + "fullName": "google.ads.googleads.v11.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/accessibleBiddingStrategies/*}" + "httpMethod": "POST", + "path": "/v11/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } ] }, { - "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v8.services.AccountBudgetProposalService", + "shortName": "CampaignExperimentService", + "fullName": "google.ads.googleads.v11.services.CampaignExperimentService", "methods": [ { - "shortName": "GetAccountBudgetProposal", - "fullName": "google.ads.googleads.v8.services.AccountBudgetProposalService.GetAccountBudgetProposal", + "shortName": "CreateCampaignExperiment", + "fullName": "google.ads.googleads.v11.services.CampaignExperimentService.CreateCampaignExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/accountBudgetProposals/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignExperiments:create" } ] }, { - "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v8.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "shortName": "EndCampaignExperiment", + "fullName": "google.ads.googleads.v11.services.CampaignExperimentService.EndCampaignExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/accountBudgetProposals:mutate" + "path": "/v11/{campaign_experiment=customers/*/campaignExperiments/*}:end" } ] - } - ] - }, - { - "shortName": "AccountBudgetService", - "fullName": "google.ads.googleads.v8.services.AccountBudgetService", - "methods": [ + }, { - "shortName": "GetAccountBudget", - "fullName": "google.ads.googleads.v8.services.AccountBudgetService.GetAccountBudget", + "shortName": "GraduateCampaignExperiment", + "fullName": "google.ads.googleads.v11.services.CampaignExperimentService.GraduateCampaignExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/accountBudgets/*}" + "httpMethod": "POST", + "path": "/v11/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" } ] - } - ] - }, - { - "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v8.services.AccountLinkService", - "methods": [ + }, { - "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v8.services.AccountLinkService.CreateAccountLink", + "shortName": "ListCampaignExperimentAsyncErrors", + "fullName": "google.ads.googleads.v11.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/accountLinks:create" + "httpMethod": "GET", + "path": "/v11/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" } ] }, { - "shortName": "GetAccountLink", - "fullName": "google.ads.googleads.v8.services.AccountLinkService.GetAccountLink", + "shortName": "MutateCampaignExperiments", + "fullName": "google.ads.googleads.v11.services.CampaignExperimentService.MutateCampaignExperiments", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/accountLinks/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignExperiments:mutate" } ] }, { - "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v8.services.AccountLinkService.MutateAccountLink", + "shortName": "PromoteCampaignExperiment", + "fullName": "google.ads.googleads.v11.services.CampaignExperimentService.PromoteCampaignExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/accountLinks:mutate" + "path": "/v11/{campaign_experiment=customers/*/campaignExperiments/*}:promote" } ] } ] }, { - "shortName": "AdGroupAdAssetViewService", - "fullName": "google.ads.googleads.v8.services.AdGroupAdAssetViewService", + "shortName": "CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v11.services.CampaignExtensionSettingService", "methods": [ { - "shortName": "GetAdGroupAdAssetView", - "fullName": "google.ads.googleads.v8.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView", + "shortName": "MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v11.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupAdAssetViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] } ] }, { - "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v8.services.AdGroupAdLabelService", + "shortName": "CampaignFeedService", + "fullName": "google.ads.googleads.v11.services.CampaignFeedService", "methods": [ { - "shortName": "GetAdGroupAdLabel", - "fullName": "google.ads.googleads.v8.services.AdGroupAdLabelService.GetAdGroupAdLabel", + "shortName": "MutateCampaignFeeds", + "fullName": "google.ads.googleads.v11.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupAdLabels/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignFeeds:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignGroupService", + "fullName": "google.ads.googleads.v11.services.CampaignGroupService", + "methods": [ { - "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v8.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "shortName": "MutateCampaignGroups", + "fullName": "google.ads.googleads.v11.services.CampaignGroupService.MutateCampaignGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupAdLabels:mutate" + "path": "/v11/customers/{customer_id=*}/campaignGroups:mutate" } ] } ] }, { - "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v8.services.AdGroupAdService", + "shortName": "CampaignLabelService", + "fullName": "google.ads.googleads.v11.services.CampaignLabelService", "methods": [ { - "shortName": "GetAdGroupAd", - "fullName": "google.ads.googleads.v8.services.AdGroupAdService.GetAdGroupAd", + "shortName": "MutateCampaignLabels", + "fullName": "google.ads.googleads.v11.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupAds/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignLabels:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignService", + "fullName": "google.ads.googleads.v11.services.CampaignService", + "methods": [ { - "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v8.services.AdGroupAdService.MutateAdGroupAds", + "shortName": "MutateCampaigns", + "fullName": "google.ads.googleads.v11.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupAds:mutate" + "path": "/v11/customers/{customer_id=*}/campaigns:mutate" } ] } ] }, { - "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v8.services.AdGroupAssetService", + "shortName": "CampaignSharedSetService", + "fullName": "google.ads.googleads.v11.services.CampaignSharedSetService", "methods": [ { - "shortName": "GetAdGroupAsset", - "fullName": "google.ads.googleads.v8.services.AdGroupAssetService.GetAdGroupAsset", + "shortName": "MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v11.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupAssets/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/campaignSharedSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionActionService", + "fullName": "google.ads.googleads.v11.services.ConversionActionService", + "methods": [ { - "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v8.services.AdGroupAssetService.MutateAdGroupAssets", + "shortName": "MutateConversionActions", + "fullName": "google.ads.googleads.v11.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupAssets:mutate" + "path": "/v11/customers/{customer_id=*}/conversionActions:mutate" } ] } ] }, { - "shortName": "AdGroupAudienceViewService", - "fullName": "google.ads.googleads.v8.services.AdGroupAudienceViewService", + "shortName": "ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v11.services.ConversionAdjustmentUploadService", "methods": [ { - "shortName": "GetAdGroupAudienceView", - "fullName": "google.ads.googleads.v8.services.AdGroupAudienceViewService.GetAdGroupAudienceView", + "shortName": "UploadConversionAdjustments", + "fullName": "google.ads.googleads.v11.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupAudienceViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}:uploadConversionAdjustments" } ] } ] }, { - "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v8.services.AdGroupBidModifierService", + "shortName": "ConversionCustomVariableService", + "fullName": "google.ads.googleads.v11.services.ConversionCustomVariableService", "methods": [ { - "shortName": "GetAdGroupBidModifier", - "fullName": "google.ads.googleads.v8.services.AdGroupBidModifierService.GetAdGroupBidModifier", + "shortName": "MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v11.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupBidModifiers/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v11.services.ConversionGoalCampaignConfigService", + "methods": [ { - "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v8.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "shortName": "MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v11.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "path": "/v11/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] } ] }, { - "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v8.services.AdGroupCriterionLabelService", + "shortName": "ConversionUploadService", + "fullName": "google.ads.googleads.v11.services.ConversionUploadService", "methods": [ { - "shortName": "GetAdGroupCriterionLabel", - "fullName": "google.ads.googleads.v8.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel", + "shortName": "UploadCallConversions", + "fullName": "google.ads.googleads.v11.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupCriterionLabels/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}:uploadCallConversions" } ] }, { - "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v8.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "shortName": "UploadClickConversions", + "fullName": "google.ads.googleads.v11.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "path": "/v11/customers/{customer_id=*}:uploadClickConversions" } ] } ] }, { - "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v8.services.AdGroupCriterionService", + "shortName": "ConversionValueRuleService", + "fullName": "google.ads.googleads.v11.services.ConversionValueRuleService", "methods": [ { - "shortName": "GetAdGroupCriterion", - "fullName": "google.ads.googleads.v8.services.AdGroupCriterionService.GetAdGroupCriterion", + "shortName": "MutateConversionValueRules", + "fullName": "google.ads.googleads.v11.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupCriteria/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/conversionValueRules:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v11.services.ConversionValueRuleSetService", + "methods": [ { - "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v8.services.AdGroupCriterionService.MutateAdGroupCriteria", + "shortName": "MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v11.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupCriteria:mutate" + "path": "/v11/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] } ] }, { - "shortName": "AdGroupCriterionSimulationService", - "fullName": "google.ads.googleads.v8.services.AdGroupCriterionSimulationService", + "shortName": "CustomAudienceService", + "fullName": "google.ads.googleads.v11.services.CustomAudienceService", "methods": [ { - "shortName": "GetAdGroupCriterionSimulation", - "fullName": "google.ads.googleads.v8.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation", + "shortName": "MutateCustomAudiences", + "fullName": "google.ads.googleads.v11.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupCriterionSimulations/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customAudiences:mutate" } ] } ] }, { - "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v8.services.AdGroupExtensionSettingService", + "shortName": "CustomConversionGoalService", + "fullName": "google.ads.googleads.v11.services.CustomConversionGoalService", "methods": [ { - "shortName": "GetAdGroupExtensionSetting", - "fullName": "google.ads.googleads.v8.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting", + "shortName": "MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v11.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupExtensionSettings/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customConversionGoals:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomInterestService", + "fullName": "google.ads.googleads.v11.services.CustomInterestService", + "methods": [ { - "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v8.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "shortName": "MutateCustomInterests", + "fullName": "google.ads.googleads.v11.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "path": "/v11/customers/{customer_id=*}/customInterests:mutate" } ] } ] }, { - "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v8.services.AdGroupFeedService", + "shortName": "CustomerAssetService", + "fullName": "google.ads.googleads.v11.services.CustomerAssetService", "methods": [ { - "shortName": "GetAdGroupFeed", - "fullName": "google.ads.googleads.v8.services.AdGroupFeedService.GetAdGroupFeed", + "shortName": "MutateCustomerAssets", + "fullName": "google.ads.googleads.v11.services.CustomerAssetService.MutateCustomerAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupFeeds/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customerAssets:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerClientLinkService", + "fullName": "google.ads.googleads.v11.services.CustomerClientLinkService", + "methods": [ { - "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v8.services.AdGroupFeedService.MutateAdGroupFeeds", + "shortName": "MutateCustomerClientLink", + "fullName": "google.ads.googleads.v11.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupFeeds:mutate" + "path": "/v11/customers/{customer_id=*}/customerClientLinks:mutate" } ] } ] }, { - "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v8.services.AdGroupLabelService", + "shortName": "CustomerConversionGoalService", + "fullName": "google.ads.googleads.v11.services.CustomerConversionGoalService", "methods": [ { - "shortName": "GetAdGroupLabel", - "fullName": "google.ads.googleads.v8.services.AdGroupLabelService.GetAdGroupLabel", + "shortName": "MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v11.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupLabels/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customerConversionGoals:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerCustomizerService", + "fullName": "google.ads.googleads.v11.services.CustomerCustomizerService", + "methods": [ { - "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v8.services.AdGroupLabelService.MutateAdGroupLabels", + "shortName": "MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v11.services.CustomerCustomizerService.MutateCustomerCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroupLabels:mutate" + "path": "/v11/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] } ] }, { - "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v8.services.AdGroupService", + "shortName": "CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v11.services.CustomerExtensionSettingService", "methods": [ { - "shortName": "GetAdGroup", - "fullName": "google.ads.googleads.v8.services.AdGroupService.GetAdGroup", + "shortName": "MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v11.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroups/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerFeedService", + "fullName": "google.ads.googleads.v11.services.CustomerFeedService", + "methods": [ { - "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v8.services.AdGroupService.MutateAdGroups", + "shortName": "MutateCustomerFeeds", + "fullName": "google.ads.googleads.v11.services.CustomerFeedService.MutateCustomerFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adGroups:mutate" + "path": "/v11/customers/{customer_id=*}/customerFeeds:mutate" } ] } ] }, { - "shortName": "AdGroupSimulationService", - "fullName": "google.ads.googleads.v8.services.AdGroupSimulationService", + "shortName": "CustomerLabelService", + "fullName": "google.ads.googleads.v11.services.CustomerLabelService", "methods": [ { - "shortName": "GetAdGroupSimulation", - "fullName": "google.ads.googleads.v8.services.AdGroupSimulationService.GetAdGroupSimulation", + "shortName": "MutateCustomerLabels", + "fullName": "google.ads.googleads.v11.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adGroupSimulations/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customerLabels:mutate" } ] } ] }, { - "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v8.services.AdParameterService", + "shortName": "CustomerManagerLinkService", + "fullName": "google.ads.googleads.v11.services.CustomerManagerLinkService", "methods": [ { - "shortName": "GetAdParameter", - "fullName": "google.ads.googleads.v8.services.AdParameterService.GetAdParameter", + "shortName": "MoveManagerLink", + "fullName": "google.ads.googleads.v11.services.CustomerManagerLinkService.MoveManagerLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adParameters/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" } ] }, { - "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v8.services.AdParameterService.MutateAdParameters", + "shortName": "MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v11.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/adParameters:mutate" + "path": "/v11/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } ] }, { - "shortName": "AdScheduleViewService", - "fullName": "google.ads.googleads.v8.services.AdScheduleViewService", + "shortName": "CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v11.services.CustomerNegativeCriterionService", "methods": [ { - "shortName": "GetAdScheduleView", - "fullName": "google.ads.googleads.v8.services.AdScheduleViewService.GetAdScheduleView", + "shortName": "MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v11.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/adScheduleViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } ] }, { - "shortName": "AdService", - "fullName": "google.ads.googleads.v8.services.AdService", + "shortName": "CustomerService", + "fullName": "google.ads.googleads.v11.services.CustomerService", "methods": [ { - "shortName": "GetAd", - "fullName": "google.ads.googleads.v8.services.AdService.GetAd", + "shortName": "CreateCustomerClient", + "fullName": "google.ads.googleads.v11.services.CustomerService.CreateCustomerClient", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}:createCustomerClient" + } + ] + }, + { + "shortName": "ListAccessibleCustomers", + "fullName": "google.ads.googleads.v11.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/ads/*}" + "path": "/v11/customers:listAccessibleCustomers" } ] }, { - "shortName": "MutateAds", - "fullName": "google.ads.googleads.v8.services.AdService.MutateAds", + "shortName": "MutateCustomer", + "fullName": "google.ads.googleads.v11.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/ads:mutate" + "path": "/v11/customers/{customer_id=*}:mutate" } ] } ] }, { - "shortName": "AgeRangeViewService", - "fullName": "google.ads.googleads.v8.services.AgeRangeViewService", + "shortName": "CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v11.services.CustomerUserAccessInvitationService", "methods": [ { - "shortName": "GetAgeRangeView", - "fullName": "google.ads.googleads.v8.services.AgeRangeViewService.GetAgeRangeView", + "shortName": "MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v11.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/ageRangeViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } ] }, { - "shortName": "AssetFieldTypeViewService", - "fullName": "google.ads.googleads.v8.services.AssetFieldTypeViewService", + "shortName": "CustomerUserAccessService", + "fullName": "google.ads.googleads.v11.services.CustomerUserAccessService", "methods": [ { - "shortName": "GetAssetFieldTypeView", - "fullName": "google.ads.googleads.v8.services.AssetFieldTypeViewService.GetAssetFieldTypeView", + "shortName": "MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v11.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/assetFieldTypeViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customerUserAccesses:mutate" } ] } ] }, { - "shortName": "AssetService", - "fullName": "google.ads.googleads.v8.services.AssetService", + "shortName": "CustomizerAttributeService", + "fullName": "google.ads.googleads.v11.services.CustomizerAttributeService", "methods": [ { - "shortName": "GetAsset", - "fullName": "google.ads.googleads.v8.services.AssetService.GetAsset", + "shortName": "MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v11.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/assets/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/customizerAttributes:mutate" } ] - }, + } + ] + }, + { + "shortName": "ExperimentArmService", + "fullName": "google.ads.googleads.v11.services.ExperimentArmService", + "methods": [ { - "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v8.services.AssetService.MutateAssets", + "shortName": "MutateExperimentArms", + "fullName": "google.ads.googleads.v11.services.ExperimentArmService.MutateExperimentArms", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/assets:mutate" + "path": "/v11/customers/{customer_id=*}/experimentArms:mutate" } ] } ] }, { - "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v8.services.BatchJobService", + "shortName": "ExperimentService", + "fullName": "google.ads.googleads.v11.services.ExperimentService", "methods": [ { - "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v8.services.BatchJobService.AddBatchJobOperations", + "shortName": "EndExperiment", + "fullName": "google.ads.googleads.v11.services.ExperimentService.EndExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{resource_name=customers/*/batchJobs/*}:addOperations" + "path": "/v11/{experiment=customers/*/experiments/*}:endExperiment" } ] }, { - "shortName": "GetBatchJob", - "fullName": "google.ads.googleads.v8.services.BatchJobService.GetBatchJob", + "shortName": "GraduateExperiment", + "fullName": "google.ads.googleads.v11.services.ExperimentService.GraduateExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/batchJobs/*}" + "httpMethod": "POST", + "path": "/v11/{experiment=customers/*/experiments/*}:graduateExperiment" } ] }, { - "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v8.services.BatchJobService.ListBatchJobResults", + "shortName": "ListExperimentAsyncErrors", + "fullName": "google.ads.googleads.v11.services.ExperimentService.ListExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/batchJobs/*}:listResults" + "path": "/v11/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" } ] }, { - "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v8.services.BatchJobService.MutateBatchJob", + "shortName": "MutateExperiments", + "fullName": "google.ads.googleads.v11.services.ExperimentService.MutateExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v11/customers/{customer_id=*}/experiments:mutate" } ] }, { - "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v8.services.BatchJobService.RunBatchJob", + "shortName": "PromoteExperiment", + "fullName": "google.ads.googleads.v11.services.ExperimentService.PromoteExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{resource_name=customers/*/batchJobs/*}:run" - } - ] - } - ] - }, - { - "shortName": "BiddingDataExclusionService", - "fullName": "google.ads.googleads.v8.services.BiddingDataExclusionService", - "methods": [ - { - "shortName": "GetBiddingDataExclusion", - "fullName": "google.ads.googleads.v8.services.BiddingDataExclusionService.GetBiddingDataExclusion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/biddingDataExclusions/*}" + "path": "/v11/{resource_name=customers/*/experiments/*}:promoteExperiment" } ] }, { - "shortName": "MutateBiddingDataExclusions", - "fullName": "google.ads.googleads.v8.services.BiddingDataExclusionService.MutateBiddingDataExclusions", + "shortName": "ScheduleExperiment", + "fullName": "google.ads.googleads.v11.services.ExperimentService.ScheduleExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/biddingDataExclusions:mutate" + "path": "/v11/{resource_name=customers/*/experiments/*}:scheduleExperiment" } ] } ] }, { - "shortName": "BiddingSeasonalityAdjustmentService", - "fullName": "google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService", + "shortName": "ExtensionFeedItemService", + "fullName": "google.ads.googleads.v11.services.ExtensionFeedItemService", "methods": [ { - "shortName": "GetBiddingSeasonalityAdjustment", - "fullName": "google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService.GetBiddingSeasonalityAdjustment", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/biddingSeasonalityAdjustments/*}" - } - ] - }, - { - "shortName": "MutateBiddingSeasonalityAdjustments", - "fullName": "google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", + "shortName": "MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v11.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + "path": "/v11/customers/{customer_id=*}/extensionFeedItems:mutate" } ] } ] }, { - "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v8.services.BiddingStrategyService", + "shortName": "FeedItemService", + "fullName": "google.ads.googleads.v11.services.FeedItemService", "methods": [ { - "shortName": "GetBiddingStrategy", - "fullName": "google.ads.googleads.v8.services.BiddingStrategyService.GetBiddingStrategy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/biddingStrategies/*}" - } - ] - }, - { - "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v8.services.BiddingStrategyService.MutateBiddingStrategies", + "shortName": "MutateFeedItems", + "fullName": "google.ads.googleads.v11.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v11/customers/{customer_id=*}/feedItems:mutate" } ] } ] }, { - "shortName": "BiddingStrategySimulationService", - "fullName": "google.ads.googleads.v8.services.BiddingStrategySimulationService", + "shortName": "FeedItemSetLinkService", + "fullName": "google.ads.googleads.v11.services.FeedItemSetLinkService", "methods": [ { - "shortName": "GetBiddingStrategySimulation", - "fullName": "google.ads.googleads.v8.services.BiddingStrategySimulationService.GetBiddingStrategySimulation", + "shortName": "MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v11.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/biddingStrategySimulations/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] } ] }, { - "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v8.services.BillingSetupService", + "shortName": "FeedItemSetService", + "fullName": "google.ads.googleads.v11.services.FeedItemSetService", "methods": [ { - "shortName": "GetBillingSetup", - "fullName": "google.ads.googleads.v8.services.BillingSetupService.GetBillingSetup", + "shortName": "MutateFeedItemSets", + "fullName": "google.ads.googleads.v11.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/billingSetups/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/feedItemSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedItemTargetService", + "fullName": "google.ads.googleads.v11.services.FeedItemTargetService", + "methods": [ { - "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v8.services.BillingSetupService.MutateBillingSetup", + "shortName": "MutateFeedItemTargets", + "fullName": "google.ads.googleads.v11.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v11/customers/{customer_id=*}/feedItemTargets:mutate" } ] } ] }, { - "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v8.services.CampaignAssetService", + "shortName": "FeedMappingService", + "fullName": "google.ads.googleads.v11.services.FeedMappingService", "methods": [ { - "shortName": "GetCampaignAsset", - "fullName": "google.ads.googleads.v8.services.CampaignAssetService.GetCampaignAsset", + "shortName": "MutateFeedMappings", + "fullName": "google.ads.googleads.v11.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignAssets/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/feedMappings:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedService", + "fullName": "google.ads.googleads.v11.services.FeedService", + "methods": [ { - "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v8.services.CampaignAssetService.MutateCampaignAssets", + "shortName": "MutateFeeds", + "fullName": "google.ads.googleads.v11.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v11/customers/{customer_id=*}/feeds:mutate" } ] } ] }, { - "shortName": "CampaignAudienceViewService", - "fullName": "google.ads.googleads.v8.services.CampaignAudienceViewService", + "shortName": "GeoTargetConstantService", + "fullName": "google.ads.googleads.v11.services.GeoTargetConstantService", "methods": [ { - "shortName": "GetCampaignAudienceView", - "fullName": "google.ads.googleads.v8.services.CampaignAudienceViewService.GetCampaignAudienceView", + "shortName": "SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v11.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignAudienceViews/*}" + "httpMethod": "POST", + "path": "/v11/geoTargetConstants:suggest" } ] } ] }, { - "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v8.services.CampaignBidModifierService", + "shortName": "GoogleAdsFieldService", + "fullName": "google.ads.googleads.v11.services.GoogleAdsFieldService", "methods": [ { - "shortName": "GetCampaignBidModifier", - "fullName": "google.ads.googleads.v8.services.CampaignBidModifierService.GetCampaignBidModifier", + "shortName": "GetGoogleAdsField", + "fullName": "google.ads.googleads.v11.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignBidModifiers/*}" + "path": "/v11/{resource_name=googleAdsFields/*}" } ] }, { - "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v8.services.CampaignBidModifierService.MutateCampaignBidModifiers", + "shortName": "SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v11.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v11/googleAdsFields:search" } ] } ] }, { - "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v8.services.CampaignBudgetService", + "shortName": "GoogleAdsService", + "fullName": "google.ads.googleads.v11.services.GoogleAdsService", "methods": [ { - "shortName": "GetCampaignBudget", - "fullName": "google.ads.googleads.v8.services.CampaignBudgetService.GetCampaignBudget", + "shortName": "Mutate", + "fullName": "google.ads.googleads.v11.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignBudgets/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/googleAds:mutate" } ] }, { - "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v8.services.CampaignBudgetService.MutateCampaignBudgets", + "shortName": "Search", + "fullName": "google.ads.googleads.v11.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignBudgets:mutate" - } - ] - } - ] - }, - { - "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v8.services.CampaignCriterionService", - "methods": [ - { - "shortName": "GetCampaignCriterion", - "fullName": "google.ads.googleads.v8.services.CampaignCriterionService.GetCampaignCriterion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignCriteria/*}" + "path": "/v11/customers/{customer_id=*}/googleAds:search" } ] }, { - "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v8.services.CampaignCriterionService.MutateCampaignCriteria", - "mode": "UNARY", + "shortName": "SearchStream", + "fullName": "google.ads.googleads.v11.services.GoogleAdsService.SearchStream", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v11/customers/{customer_id=*}/googleAds:searchStream" } ] } ] }, { - "shortName": "CampaignCriterionSimulationService", - "fullName": "google.ads.googleads.v8.services.CampaignCriterionSimulationService", + "shortName": "InvoiceService", + "fullName": "google.ads.googleads.v11.services.InvoiceService", "methods": [ { - "shortName": "GetCampaignCriterionSimulation", - "fullName": "google.ads.googleads.v8.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation", + "shortName": "ListInvoices", + "fullName": "google.ads.googleads.v11.services.InvoiceService.ListInvoices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignCriterionSimulations/*}" + "path": "/v11/customers/{customer_id=*}/invoices" } ] } ] }, { - "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v8.services.CampaignDraftService", + "shortName": "KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v11.services.KeywordPlanAdGroupKeywordService", "methods": [ { - "shortName": "GetCampaignDraft", - "fullName": "google.ads.googleads.v8.services.CampaignDraftService.GetCampaignDraft", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignDrafts/*}" - } - ] - }, - { - "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v8.services.CampaignDraftService.ListCampaignDraftAsyncErrors", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" - } - ] - }, - { - "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v8.services.CampaignDraftService.MutateCampaignDrafts", + "shortName": "MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v11.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignDrafts:mutate" + "path": "/v11/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] - }, + } + ] + }, + { + "shortName": "KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v11.services.KeywordPlanAdGroupService", + "methods": [ { - "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v8.services.CampaignDraftService.PromoteCampaignDraft", + "shortName": "MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v11.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v11/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] } ] }, { - "shortName": "CampaignExperimentService", - "fullName": "google.ads.googleads.v8.services.CampaignExperimentService", + "shortName": "KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v11.services.KeywordPlanCampaignKeywordService", "methods": [ { - "shortName": "CreateCampaignExperiment", - "fullName": "google.ads.googleads.v8.services.CampaignExperimentService.CreateCampaignExperiment", + "shortName": "MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v11.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignExperiments:create" + "path": "/v11/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" } ] - }, + } + ] + }, + { + "shortName": "KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v11.services.KeywordPlanCampaignService", + "methods": [ { - "shortName": "EndCampaignExperiment", - "fullName": "google.ads.googleads.v8.services.CampaignExperimentService.EndCampaignExperiment", + "shortName": "MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v11.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{campaign_experiment=customers/*/campaignExperiments/*}:end" - } - ] - }, - { - "shortName": "GetCampaignExperiment", - "fullName": "google.ads.googleads.v8.services.CampaignExperimentService.GetCampaignExperiment", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignExperiments/*}" + "path": "/v11/customers/{customer_id=*}/keywordPlanCampaigns:mutate" } ] - }, + } + ] + }, + { + "shortName": "KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v11.services.KeywordPlanIdeaService", + "methods": [ { - "shortName": "GraduateCampaignExperiment", - "fullName": "google.ads.googleads.v8.services.CampaignExperimentService.GraduateCampaignExperiment", + "shortName": "GenerateAdGroupThemes", + "fullName": "google.ads.googleads.v11.services.KeywordPlanIdeaService.GenerateAdGroupThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" - } - ] - }, - { - "shortName": "ListCampaignExperimentAsyncErrors", - "fullName": "google.ads.googleads.v8.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" + "path": "/v11/customers/{customer_id=*}:generateAdGroupThemes" } ] }, { - "shortName": "MutateCampaignExperiments", - "fullName": "google.ads.googleads.v8.services.CampaignExperimentService.MutateCampaignExperiments", + "shortName": "GenerateKeywordHistoricalMetrics", + "fullName": "google.ads.googleads.v11.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignExperiments:mutate" + "path": "/v11/customers/{customer_id=*}:generateKeywordHistoricalMetrics" } ] }, { - "shortName": "PromoteCampaignExperiment", - "fullName": "google.ads.googleads.v8.services.CampaignExperimentService.PromoteCampaignExperiment", + "shortName": "GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v11.services.KeywordPlanIdeaService.GenerateKeywordIdeas", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{campaign_experiment=customers/*/campaignExperiments/*}:promote" + "path": "/v11/customers/{customer_id=*}:generateKeywordIdeas" } ] } ] }, { - "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v8.services.CampaignExtensionSettingService", + "shortName": "KeywordPlanService", + "fullName": "google.ads.googleads.v11.services.KeywordPlanService", "methods": [ { - "shortName": "GetCampaignExtensionSetting", - "fullName": "google.ads.googleads.v8.services.CampaignExtensionSettingService.GetCampaignExtensionSetting", + "shortName": "GenerateForecastCurve", + "fullName": "google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastCurve", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignExtensionSettings/*}" + "httpMethod": "POST", + "path": "/v11/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" } ] }, { - "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v8.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "shortName": "GenerateForecastMetrics", + "fullName": "google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignExtensionSettings:mutate" - } - ] - } - ] - }, - { - "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v8.services.CampaignFeedService", - "methods": [ - { - "shortName": "GetCampaignFeed", - "fullName": "google.ads.googleads.v8.services.CampaignFeedService.GetCampaignFeed", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignFeeds/*}" + "path": "/v11/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" } ] }, { - "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v8.services.CampaignFeedService.MutateCampaignFeeds", + "shortName": "GenerateForecastTimeSeries", + "fullName": "google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastTimeSeries", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v11/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" } ] - } - ] - }, - { - "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v8.services.CampaignLabelService", - "methods": [ + }, { - "shortName": "GetCampaignLabel", - "fullName": "google.ads.googleads.v8.services.CampaignLabelService.GetCampaignLabel", + "shortName": "GenerateHistoricalMetrics", + "fullName": "google.ads.googleads.v11.services.KeywordPlanService.GenerateHistoricalMetrics", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignLabels/*}" + "httpMethod": "POST", + "path": "/v11/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" } ] }, { - "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v8.services.CampaignLabelService.MutateCampaignLabels", + "shortName": "MutateKeywordPlans", + "fullName": "google.ads.googleads.v11.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v11/customers/{customer_id=*}/keywordPlans:mutate" } ] } ] }, { - "shortName": "CampaignService", - "fullName": "google.ads.googleads.v8.services.CampaignService", + "shortName": "KeywordThemeConstantService", + "fullName": "google.ads.googleads.v11.services.KeywordThemeConstantService", "methods": [ { - "shortName": "GetCampaign", - "fullName": "google.ads.googleads.v8.services.CampaignService.GetCampaign", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaigns/*}" - } - ] - }, - { - "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v8.services.CampaignService.MutateCampaigns", + "shortName": "SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v11.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaigns:mutate" + "path": "/v11/keywordThemeConstants:suggest" } ] } ] }, { - "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v8.services.CampaignSharedSetService", + "shortName": "LabelService", + "fullName": "google.ads.googleads.v11.services.LabelService", "methods": [ { - "shortName": "GetCampaignSharedSet", - "fullName": "google.ads.googleads.v8.services.CampaignSharedSetService.GetCampaignSharedSet", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignSharedSets/*}" - } - ] - }, - { - "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v8.services.CampaignSharedSetService.MutateCampaignSharedSets", + "shortName": "MutateLabels", + "fullName": "google.ads.googleads.v11.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v11/customers/{customer_id=*}/labels:mutate" } ] } ] }, { - "shortName": "CampaignSimulationService", - "fullName": "google.ads.googleads.v8.services.CampaignSimulationService", + "shortName": "MediaFileService", + "fullName": "google.ads.googleads.v11.services.MediaFileService", "methods": [ { - "shortName": "GetCampaignSimulation", - "fullName": "google.ads.googleads.v8.services.CampaignSimulationService.GetCampaignSimulation", + "shortName": "MutateMediaFiles", + "fullName": "google.ads.googleads.v11.services.MediaFileService.MutateMediaFiles", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/campaignSimulations/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/mediaFiles:mutate" } ] } ] }, { - "shortName": "CarrierConstantService", - "fullName": "google.ads.googleads.v8.services.CarrierConstantService", + "shortName": "MerchantCenterLinkService", + "fullName": "google.ads.googleads.v11.services.MerchantCenterLinkService", "methods": [ { - "shortName": "GetCarrierConstant", - "fullName": "google.ads.googleads.v8.services.CarrierConstantService.GetCarrierConstant", + "shortName": "GetMerchantCenterLink", + "fullName": "google.ads.googleads.v11.services.MerchantCenterLinkService.GetMerchantCenterLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=carrierConstants/*}" + "path": "/v11/{resource_name=customers/*/merchantCenterLinks/*}" } ] - } - ] - }, - { - "shortName": "ChangeStatusService", - "fullName": "google.ads.googleads.v8.services.ChangeStatusService", - "methods": [ + }, { - "shortName": "GetChangeStatus", - "fullName": "google.ads.googleads.v8.services.ChangeStatusService.GetChangeStatus", + "shortName": "ListMerchantCenterLinks", + "fullName": "google.ads.googleads.v11.services.MerchantCenterLinkService.ListMerchantCenterLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/changeStatus/*}" + "path": "/v11/customers/{customer_id=*}/merchantCenterLinks" } ] - } - ] - }, - { - "shortName": "ClickViewService", - "fullName": "google.ads.googleads.v8.services.ClickViewService", - "methods": [ + }, { - "shortName": "GetClickView", - "fullName": "google.ads.googleads.v8.services.ClickViewService.GetClickView", + "shortName": "MutateMerchantCenterLink", + "fullName": "google.ads.googleads.v11.services.MerchantCenterLinkService.MutateMerchantCenterLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/clickViews/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/merchantCenterLinks:mutate" } ] } ] }, { - "shortName": "CombinedAudienceService", - "fullName": "google.ads.googleads.v8.services.CombinedAudienceService", + "shortName": "OfflineUserDataJobService", + "fullName": "google.ads.googleads.v11.services.OfflineUserDataJobService", "methods": [ { - "shortName": "GetCombinedAudience", - "fullName": "google.ads.googleads.v8.services.CombinedAudienceService.GetCombinedAudience", + "shortName": "AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v11.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/combinedAudiences/*}" + "httpMethod": "POST", + "path": "/v11/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] - } - ] - }, - { - "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v8.services.ConversionActionService", - "methods": [ + }, { - "shortName": "GetConversionAction", - "fullName": "google.ads.googleads.v8.services.ConversionActionService.GetConversionAction", + "shortName": "CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v11.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/conversionActions/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/offlineUserDataJobs:create" } ] }, { - "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v8.services.ConversionActionService.MutateConversionActions", + "shortName": "RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v11.services.OfflineUserDataJobService.RunOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/conversionActions:mutate" + "path": "/v11/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } ] }, { - "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v8.services.ConversionAdjustmentUploadService", + "shortName": "PaymentsAccountService", + "fullName": "google.ads.googleads.v11.services.PaymentsAccountService", "methods": [ { - "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v8.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "shortName": "ListPaymentsAccounts", + "fullName": "google.ads.googleads.v11.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:uploadConversionAdjustments" + "httpMethod": "GET", + "path": "/v11/customers/{customer_id=*}/paymentsAccounts" } ] } ] }, { - "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v8.services.ConversionCustomVariableService", + "shortName": "ReachPlanService", + "fullName": "google.ads.googleads.v11.services.ReachPlanService", "methods": [ { - "shortName": "GetConversionCustomVariable", - "fullName": "google.ads.googleads.v8.services.ConversionCustomVariableService.GetConversionCustomVariable", + "shortName": "GenerateProductMixIdeas", + "fullName": "google.ads.googleads.v11.services.ReachPlanService.GenerateProductMixIdeas", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/conversionCustomVariables/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}:generateProductMixIdeas" } ] }, { - "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v8.services.ConversionCustomVariableService.MutateConversionCustomVariables", + "shortName": "GenerateReachForecast", + "fullName": "google.ads.googleads.v11.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v11/customers/{customer_id=*}:generateReachForecast" } ] - } - ] - }, - { - "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v8.services.ConversionUploadService", - "methods": [ + }, { - "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v8.services.ConversionUploadService.UploadCallConversions", + "shortName": "ListPlannableLocations", + "fullName": "google.ads.googleads.v11.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:uploadCallConversions" + "path": "/v11:listPlannableLocations" } ] }, { - "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v8.services.ConversionUploadService.UploadClickConversions", + "shortName": "ListPlannableProducts", + "fullName": "google.ads.googleads.v11.services.ReachPlanService.ListPlannableProducts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:uploadClickConversions" + "path": "/v11:listPlannableProducts" } ] } ] }, { - "shortName": "ConversionValueRuleService", - "fullName": "google.ads.googleads.v8.services.ConversionValueRuleService", + "shortName": "RecommendationService", + "fullName": "google.ads.googleads.v11.services.RecommendationService", "methods": [ { - "shortName": "GetConversionValueRule", - "fullName": "google.ads.googleads.v8.services.ConversionValueRuleService.GetConversionValueRule", + "shortName": "ApplyRecommendation", + "fullName": "google.ads.googleads.v11.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/conversionValueRules/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/recommendations:apply" } ] }, { - "shortName": "MutateConversionValueRules", - "fullName": "google.ads.googleads.v8.services.ConversionValueRuleService.MutateConversionValueRules", + "shortName": "DismissRecommendation", + "fullName": "google.ads.googleads.v11.services.RecommendationService.DismissRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/conversionValueRules:mutate" + "path": "/v11/customers/{customer_id=*}/recommendations:dismiss" } ] } ] }, { - "shortName": "ConversionValueRuleSetService", - "fullName": "google.ads.googleads.v8.services.ConversionValueRuleSetService", + "shortName": "RemarketingActionService", + "fullName": "google.ads.googleads.v11.services.RemarketingActionService", "methods": [ { - "shortName": "GetConversionValueRuleSet", - "fullName": "google.ads.googleads.v8.services.ConversionValueRuleSetService.GetConversionValueRuleSet", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/conversionValueRuleSets/*}" - } - ] - }, - { - "shortName": "MutateConversionValueRuleSets", - "fullName": "google.ads.googleads.v8.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", + "shortName": "MutateRemarketingActions", + "fullName": "google.ads.googleads.v11.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/conversionValueRuleSets:mutate" + "path": "/v11/customers/{customer_id=*}/remarketingActions:mutate" } ] } ] }, { - "shortName": "CurrencyConstantService", - "fullName": "google.ads.googleads.v8.services.CurrencyConstantService", + "shortName": "SharedCriterionService", + "fullName": "google.ads.googleads.v11.services.SharedCriterionService", "methods": [ { - "shortName": "GetCurrencyConstant", - "fullName": "google.ads.googleads.v8.services.CurrencyConstantService.GetCurrencyConstant", + "shortName": "MutateSharedCriteria", + "fullName": "google.ads.googleads.v11.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=currencyConstants/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}/sharedCriteria:mutate" } ] } ] }, { - "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v8.services.CustomAudienceService", + "shortName": "SharedSetService", + "fullName": "google.ads.googleads.v11.services.SharedSetService", "methods": [ { - "shortName": "GetCustomAudience", - "fullName": "google.ads.googleads.v8.services.CustomAudienceService.GetCustomAudience", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customAudiences/*}" - } - ] - }, - { - "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v8.services.CustomAudienceService.MutateCustomAudiences", + "shortName": "MutateSharedSets", + "fullName": "google.ads.googleads.v11.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customAudiences:mutate" + "path": "/v11/customers/{customer_id=*}/sharedSets:mutate" } ] } ] }, { - "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v8.services.CustomInterestService", + "shortName": "SmartCampaignSettingService", + "fullName": "google.ads.googleads.v11.services.SmartCampaignSettingService", "methods": [ { - "shortName": "GetCustomInterest", - "fullName": "google.ads.googleads.v8.services.CustomInterestService.GetCustomInterest", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customInterests/*}" - } - ] - }, - { - "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v8.services.CustomInterestService.MutateCustomInterests", + "shortName": "MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v11.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customInterests:mutate" + "path": "/v11/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] } ] }, { - "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v8.services.CustomerAssetService", + "shortName": "SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v11.services.SmartCampaignSuggestService", "methods": [ { - "shortName": "GetCustomerAsset", - "fullName": "google.ads.googleads.v8.services.CustomerAssetService.GetCustomerAsset", + "shortName": "SuggestKeywordThemes", + "fullName": "google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerAssets/*}" + "httpMethod": "POST", + "path": "/v11/customers/{customer_id=*}:suggestKeywordThemes" } ] }, { - "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v8.services.CustomerAssetService.MutateCustomerAssets", + "shortName": "SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerAssets:mutate" - } - ] - } - ] - }, - { - "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v8.services.CustomerClientLinkService", - "methods": [ - { - "shortName": "GetCustomerClientLink", - "fullName": "google.ads.googleads.v8.services.CustomerClientLinkService.GetCustomerClientLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerClientLinks/*}" + "path": "/v11/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { - "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v8.services.CustomerClientLinkService.MutateCustomerClientLink", + "shortName": "SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v11/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] } ] }, { - "shortName": "CustomerClientService", - "fullName": "google.ads.googleads.v8.services.CustomerClientService", + "shortName": "ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService", "methods": [ { - "shortName": "GetCustomerClient", - "fullName": "google.ads.googleads.v8.services.CustomerClientService.GetCustomerClient", + "shortName": "RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerClients/*}" + "httpMethod": "POST", + "path": "/v11/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] } ] }, { - "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v8.services.CustomerExtensionSettingService", + "shortName": "UserDataService", + "fullName": "google.ads.googleads.v11.services.UserDataService", "methods": [ { - "shortName": "GetCustomerExtensionSetting", - "fullName": "google.ads.googleads.v8.services.CustomerExtensionSettingService.GetCustomerExtensionSetting", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerExtensionSettings/*}" - } - ] - }, - { - "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v8.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "shortName": "UploadUserData", + "fullName": "google.ads.googleads.v11.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v11/customers/{customer_id=*}:uploadUserData" } ] } ] }, { - "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v8.services.CustomerFeedService", + "shortName": "UserListService", + "fullName": "google.ads.googleads.v11.services.UserListService", "methods": [ { - "shortName": "GetCustomerFeed", - "fullName": "google.ads.googleads.v8.services.CustomerFeedService.GetCustomerFeed", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerFeeds/*}" - } - ] - }, - { - "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v8.services.CustomerFeedService.MutateCustomerFeeds", + "shortName": "MutateUserLists", + "fullName": "google.ads.googleads.v11.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerFeeds:mutate" - } - ] - } - ] - }, - { - "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v8.services.CustomerLabelService", - "methods": [ - { - "shortName": "GetCustomerLabel", - "fullName": "google.ads.googleads.v8.services.CustomerLabelService.GetCustomerLabel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerLabels/*}" - } - ] - }, - { - "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v8.services.CustomerLabelService.MutateCustomerLabels", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerLabels:mutate" + "path": "/v11/customers/{customer_id=*}/userLists:mutate" } ] } ] + } + ], + "configFile": "googleads_v11.yaml", + "serviceConfigApiNames": [ + "google.ads.googleads.v11.services.AccountBudgetProposalService", + "google.ads.googleads.v11.services.AccountLinkService", + "google.ads.googleads.v11.services.AdGroupAdLabelService", + "google.ads.googleads.v11.services.AdGroupAdService", + "google.ads.googleads.v11.services.AdGroupAssetService", + "google.ads.googleads.v11.services.AdGroupBidModifierService", + "google.ads.googleads.v11.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v11.services.AdGroupCriterionLabelService", + "google.ads.googleads.v11.services.AdGroupCriterionService", + "google.ads.googleads.v11.services.AdGroupCustomizerService", + "google.ads.googleads.v11.services.AdGroupExtensionSettingService", + "google.ads.googleads.v11.services.AdGroupFeedService", + "google.ads.googleads.v11.services.AdGroupLabelService", + "google.ads.googleads.v11.services.AdGroupService", + "google.ads.googleads.v11.services.AdParameterService", + "google.ads.googleads.v11.services.AdService", + "google.ads.googleads.v11.services.AssetGroupAssetService", + "google.ads.googleads.v11.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v11.services.AssetGroupService", + "google.ads.googleads.v11.services.AssetGroupSignalService", + "google.ads.googleads.v11.services.AssetService", + "google.ads.googleads.v11.services.AssetSetAssetService", + "google.ads.googleads.v11.services.AssetSetService", + "google.ads.googleads.v11.services.AudienceInsightsService", + "google.ads.googleads.v11.services.AudienceService", + "google.ads.googleads.v11.services.BatchJobService", + "google.ads.googleads.v11.services.BiddingDataExclusionService", + "google.ads.googleads.v11.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v11.services.BiddingStrategyService", + "google.ads.googleads.v11.services.BillingSetupService", + "google.ads.googleads.v11.services.CampaignAssetService", + "google.ads.googleads.v11.services.CampaignAssetSetService", + "google.ads.googleads.v11.services.CampaignBidModifierService", + "google.ads.googleads.v11.services.CampaignBudgetService", + "google.ads.googleads.v11.services.CampaignConversionGoalService", + "google.ads.googleads.v11.services.CampaignCriterionService", + "google.ads.googleads.v11.services.CampaignCustomizerService", + "google.ads.googleads.v11.services.CampaignDraftService", + "google.ads.googleads.v11.services.CampaignExperimentService", + "google.ads.googleads.v11.services.CampaignExtensionSettingService", + "google.ads.googleads.v11.services.CampaignFeedService", + "google.ads.googleads.v11.services.CampaignGroupService", + "google.ads.googleads.v11.services.CampaignLabelService", + "google.ads.googleads.v11.services.CampaignService", + "google.ads.googleads.v11.services.CampaignSharedSetService", + "google.ads.googleads.v11.services.ConversionActionService", + "google.ads.googleads.v11.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v11.services.ConversionCustomVariableService", + "google.ads.googleads.v11.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v11.services.ConversionUploadService", + "google.ads.googleads.v11.services.ConversionValueRuleService", + "google.ads.googleads.v11.services.ConversionValueRuleSetService", + "google.ads.googleads.v11.services.CustomAudienceService", + "google.ads.googleads.v11.services.CustomConversionGoalService", + "google.ads.googleads.v11.services.CustomInterestService", + "google.ads.googleads.v11.services.CustomerAssetService", + "google.ads.googleads.v11.services.CustomerClientLinkService", + "google.ads.googleads.v11.services.CustomerConversionGoalService", + "google.ads.googleads.v11.services.CustomerCustomizerService", + "google.ads.googleads.v11.services.CustomerExtensionSettingService", + "google.ads.googleads.v11.services.CustomerFeedService", + "google.ads.googleads.v11.services.CustomerLabelService", + "google.ads.googleads.v11.services.CustomerManagerLinkService", + "google.ads.googleads.v11.services.CustomerNegativeCriterionService", + "google.ads.googleads.v11.services.CustomerService", + "google.ads.googleads.v11.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v11.services.CustomerUserAccessService", + "google.ads.googleads.v11.services.CustomizerAttributeService", + "google.ads.googleads.v11.services.ExperimentArmService", + "google.ads.googleads.v11.services.ExperimentService", + "google.ads.googleads.v11.services.ExtensionFeedItemService", + "google.ads.googleads.v11.services.FeedItemService", + "google.ads.googleads.v11.services.FeedItemSetLinkService", + "google.ads.googleads.v11.services.FeedItemSetService", + "google.ads.googleads.v11.services.FeedItemTargetService", + "google.ads.googleads.v11.services.FeedMappingService", + "google.ads.googleads.v11.services.FeedService", + "google.ads.googleads.v11.services.GeoTargetConstantService", + "google.ads.googleads.v11.services.GoogleAdsFieldService", + "google.ads.googleads.v11.services.GoogleAdsService", + "google.ads.googleads.v11.services.InvoiceService", + "google.ads.googleads.v11.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v11.services.KeywordPlanAdGroupService", + "google.ads.googleads.v11.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v11.services.KeywordPlanCampaignService", + "google.ads.googleads.v11.services.KeywordPlanIdeaService", + "google.ads.googleads.v11.services.KeywordPlanService", + "google.ads.googleads.v11.services.KeywordThemeConstantService", + "google.ads.googleads.v11.services.LabelService", + "google.ads.googleads.v11.services.MediaFileService", + "google.ads.googleads.v11.services.MerchantCenterLinkService", + "google.ads.googleads.v11.services.OfflineUserDataJobService", + "google.ads.googleads.v11.services.PaymentsAccountService", + "google.ads.googleads.v11.services.ReachPlanService", + "google.ads.googleads.v11.services.RecommendationService", + "google.ads.googleads.v11.services.RemarketingActionService", + "google.ads.googleads.v11.services.SharedCriterionService", + "google.ads.googleads.v11.services.SharedSetService", + "google.ads.googleads.v11.services.SmartCampaignSettingService", + "google.ads.googleads.v11.services.SmartCampaignSuggestService", + "google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v11.services.UserDataService", + "google.ads.googleads.v11.services.UserListService" + ] + }, + { + "id": "google.ads.googleads.v9", + "directory": "google/ads/googleads/v9", + "version": "v9", + "majorVersion": "v9", + "hostName": "googleads.googleapis.com", + "title": "Google Ads API", + "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", + "importDirectories": [ + "google/ads/googleads/v9/common", + "google/ads/googleads/v9/enums", + "google/ads/googleads/v9/errors", + "google/ads/googleads/v9/resources", + "google/ads/googleads/v9/services", + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Ads.GoogleAds.V9.Common": 32, + "Google.Ads.GoogleAds.V9.Enums": 281, + "Google.Ads.GoogleAds.V9.Errors": 135, + "Google.Ads.GoogleAds.V9.Resources": 149, + "Google.Ads.GoogleAds.V9.Services": 152 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/ads/googleads/v9/common;common": 32, + "google.golang.org/genproto/googleapis/ads/googleads/v9/enums;enums": 281, + "google.golang.org/genproto/googleapis/ads/googleads/v9/errors;errors": 135, + "google.golang.org/genproto/googleapis/ads/googleads/v9/resources;resources": 149, + "google.golang.org/genproto/googleapis/ads/googleads/v9/services;services": 152 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 749 + } + }, + "java_package": { + "valueCounts": { + "com.google.ads.googleads.v9.common": 32, + "com.google.ads.googleads.v9.enums": 281, + "com.google.ads.googleads.v9.errors": 135, + "com.google.ads.googleads.v9.resources": 149, + "com.google.ads.googleads.v9.services": 152 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GAA": 749 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Ads\\GoogleAds\\V9\\Common": 32, + "Google\\Ads\\GoogleAds\\V9\\Enums": 281, + "Google\\Ads\\GoogleAds\\V9\\Errors": 135, + "Google\\Ads\\GoogleAds\\V9\\Resources": 149, + "Google\\Ads\\GoogleAds\\V9\\Services": 152 + } }, + "ruby_package": { + "valueCounts": { + "Google::Ads::GoogleAds::V9::Common": 32, + "Google::Ads::GoogleAds::V9::Enums": 281, + "Google::Ads::GoogleAds::V9::Errors": 135, + "Google::Ads::GoogleAds::V9::Resources": 149, + "Google::Ads::GoogleAds::V9::Services": 152 + } + } + }, + "services": [ { - "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v8.services.CustomerManagerLinkService", + "shortName": "AccessibleBiddingStrategyService", + "fullName": "google.ads.googleads.v9.services.AccessibleBiddingStrategyService", "methods": [ { - "shortName": "GetCustomerManagerLink", - "fullName": "google.ads.googleads.v8.services.CustomerManagerLinkService.GetCustomerManagerLink", + "shortName": "GetAccessibleBiddingStrategy", + "fullName": "google.ads.googleads.v9.services.AccessibleBiddingStrategyService.GetAccessibleBiddingStrategy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerManagerLinks/*}" + "path": "/v9/{resource_name=customers/*/accessibleBiddingStrategies/*}" } ] - }, + } + ] + }, + { + "shortName": "AccountBudgetProposalService", + "fullName": "google.ads.googleads.v9.services.AccountBudgetProposalService", + "methods": [ { - "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v8.services.CustomerManagerLinkService.MoveManagerLink", + "shortName": "GetAccountBudgetProposal", + "fullName": "google.ads.googleads.v9.services.AccountBudgetProposalService.GetAccountBudgetProposal", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/accountBudgetProposals/*}" } ] }, { - "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v8.services.CustomerManagerLinkService.MutateCustomerManagerLink", + "shortName": "MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v9.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerManagerLinks:mutate" + "path": "/v9/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] } ] }, { - "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v8.services.CustomerNegativeCriterionService", + "shortName": "AccountBudgetService", + "fullName": "google.ads.googleads.v9.services.AccountBudgetService", "methods": [ { - "shortName": "GetCustomerNegativeCriterion", - "fullName": "google.ads.googleads.v8.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion", + "shortName": "GetAccountBudget", + "fullName": "google.ads.googleads.v9.services.AccountBudgetService.GetAccountBudget", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerNegativeCriteria/*}" - } - ] - }, - { - "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v8.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v9/{resource_name=customers/*/accountBudgets/*}" } ] } ] }, { - "shortName": "CustomerService", - "fullName": "google.ads.googleads.v8.services.CustomerService", + "shortName": "AccountLinkService", + "fullName": "google.ads.googleads.v9.services.AccountLinkService", "methods": [ { - "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v8.services.CustomerService.CreateCustomerClient", + "shortName": "CreateAccountLink", + "fullName": "google.ads.googleads.v9.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:createCustomerClient" + "path": "/v9/customers/{customer_id=*}/accountLinks:create" } ] }, { - "shortName": "GetCustomer", - "fullName": "google.ads.googleads.v8.services.CustomerService.GetCustomer", + "shortName": "GetAccountLink", + "fullName": "google.ads.googleads.v9.services.AccountLinkService.GetAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*}" + "path": "/v9/{resource_name=customers/*/accountLinks/*}" } ] }, { - "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v8.services.CustomerService.ListAccessibleCustomers", + "shortName": "MutateAccountLink", + "fullName": "google.ads.googleads.v9.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/customers:listAccessibleCustomers" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/accountLinks:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdGroupAdAssetViewService", + "fullName": "google.ads.googleads.v9.services.AdGroupAdAssetViewService", + "methods": [ { - "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v8.services.CustomerService.MutateCustomer", + "shortName": "GetAdGroupAdAssetView", + "fullName": "google.ads.googleads.v9.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/adGroupAdAssetViews/*}" } ] } ] }, { - "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v8.services.CustomerUserAccessInvitationService", + "shortName": "AdGroupAdLabelService", + "fullName": "google.ads.googleads.v9.services.AdGroupAdLabelService", "methods": [ { - "shortName": "GetCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v8.services.CustomerUserAccessInvitationService.GetCustomerUserAccessInvitation", + "shortName": "GetAdGroupAdLabel", + "fullName": "google.ads.googleads.v9.services.AdGroupAdLabelService.GetAdGroupAdLabel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerUserAccessInvitations/*}" + "path": "/v9/{resource_name=customers/*/adGroupAdLabels/*}" } ] }, { - "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v8.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "shortName": "MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v9.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v9/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] } ] }, { - "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v8.services.CustomerUserAccessService", + "shortName": "AdGroupAdService", + "fullName": "google.ads.googleads.v9.services.AdGroupAdService", "methods": [ { - "shortName": "GetCustomerUserAccess", - "fullName": "google.ads.googleads.v8.services.CustomerUserAccessService.GetCustomerUserAccess", + "shortName": "GetAdGroupAd", + "fullName": "google.ads.googleads.v9.services.AdGroupAdService.GetAdGroupAd", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/customerUserAccesses/*}" + "path": "/v9/{resource_name=customers/*/adGroupAds/*}" } ] }, { - "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v8.services.CustomerUserAccessService.MutateCustomerUserAccess", + "shortName": "MutateAdGroupAds", + "fullName": "google.ads.googleads.v9.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v9/customers/{customer_id=*}/adGroupAds:mutate" } ] } ] }, { - "shortName": "DetailPlacementViewService", - "fullName": "google.ads.googleads.v8.services.DetailPlacementViewService", + "shortName": "AdGroupAssetService", + "fullName": "google.ads.googleads.v9.services.AdGroupAssetService", "methods": [ { - "shortName": "GetDetailPlacementView", - "fullName": "google.ads.googleads.v8.services.DetailPlacementViewService.GetDetailPlacementView", + "shortName": "GetAdGroupAsset", + "fullName": "google.ads.googleads.v9.services.AdGroupAssetService.GetAdGroupAsset", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/detailPlacementViews/*}" + "path": "/v9/{resource_name=customers/*/adGroupAssets/*}" } ] - } - ] - }, - { - "shortName": "DetailedDemographicService", - "fullName": "google.ads.googleads.v8.services.DetailedDemographicService", - "methods": [ + }, { - "shortName": "GetDetailedDemographic", - "fullName": "google.ads.googleads.v8.services.DetailedDemographicService.GetDetailedDemographic", + "shortName": "MutateAdGroupAssets", + "fullName": "google.ads.googleads.v9.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/detailedDemographics/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/adGroupAssets:mutate" } ] } ] }, { - "shortName": "DisplayKeywordViewService", - "fullName": "google.ads.googleads.v8.services.DisplayKeywordViewService", + "shortName": "AdGroupAudienceViewService", + "fullName": "google.ads.googleads.v9.services.AdGroupAudienceViewService", "methods": [ { - "shortName": "GetDisplayKeywordView", - "fullName": "google.ads.googleads.v8.services.DisplayKeywordViewService.GetDisplayKeywordView", + "shortName": "GetAdGroupAudienceView", + "fullName": "google.ads.googleads.v9.services.AdGroupAudienceViewService.GetAdGroupAudienceView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/displayKeywordViews/*}" + "path": "/v9/{resource_name=customers/*/adGroupAudienceViews/*}" } ] } ] }, { - "shortName": "DistanceViewService", - "fullName": "google.ads.googleads.v8.services.DistanceViewService", + "shortName": "AdGroupBidModifierService", + "fullName": "google.ads.googleads.v9.services.AdGroupBidModifierService", "methods": [ { - "shortName": "GetDistanceView", - "fullName": "google.ads.googleads.v8.services.DistanceViewService.GetDistanceView", + "shortName": "GetAdGroupBidModifier", + "fullName": "google.ads.googleads.v9.services.AdGroupBidModifierService.GetAdGroupBidModifier", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/distanceViews/*}" + "path": "/v9/{resource_name=customers/*/adGroupBidModifiers/*}" } ] - } - ] - }, - { - "shortName": "DomainCategoryService", - "fullName": "google.ads.googleads.v8.services.DomainCategoryService", - "methods": [ + }, { - "shortName": "GetDomainCategory", - "fullName": "google.ads.googleads.v8.services.DomainCategoryService.GetDomainCategory", + "shortName": "MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v9.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/domainCategories/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } ] }, { - "shortName": "DynamicSearchAdsSearchTermViewService", - "fullName": "google.ads.googleads.v8.services.DynamicSearchAdsSearchTermViewService", + "shortName": "AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionCustomizerService", "methods": [ { - "shortName": "GetDynamicSearchAdsSearchTermView", - "fullName": "google.ads.googleads.v8.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView", + "shortName": "MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } ] }, { - "shortName": "ExpandedLandingPageViewService", - "fullName": "google.ads.googleads.v8.services.ExpandedLandingPageViewService", + "shortName": "AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionLabelService", "methods": [ { - "shortName": "GetExpandedLandingPageView", - "fullName": "google.ads.googleads.v8.services.ExpandedLandingPageViewService.GetExpandedLandingPageView", + "shortName": "GetAdGroupCriterionLabel", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/expandedLandingPageViews/*}" + "path": "/v9/{resource_name=customers/*/adGroupCriterionLabels/*}" + } + ] + }, + { + "shortName": "MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } ] }, { - "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v8.services.ExtensionFeedItemService", + "shortName": "AdGroupCriterionService", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionService", "methods": [ { - "shortName": "GetExtensionFeedItem", - "fullName": "google.ads.googleads.v8.services.ExtensionFeedItemService.GetExtensionFeedItem", + "shortName": "GetAdGroupCriterion", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionService.GetAdGroupCriterion", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/extensionFeedItems/*}" + "path": "/v9/{resource_name=customers/*/adGroupCriteria/*}" } ] }, { - "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v8.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "shortName": "MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v9/customers/{customer_id=*}/adGroupCriteria:mutate" } ] } ] }, { - "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v8.services.FeedItemService", + "shortName": "AdGroupCriterionSimulationService", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionSimulationService", "methods": [ { - "shortName": "GetFeedItem", - "fullName": "google.ads.googleads.v8.services.FeedItemService.GetFeedItem", + "shortName": "GetAdGroupCriterionSimulation", + "fullName": "google.ads.googleads.v9.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/feedItems/*}" + "path": "/v9/{resource_name=customers/*/adGroupCriterionSimulations/*}" } ] - }, + } + ] + }, + { + "shortName": "AdGroupCustomizerService", + "fullName": "google.ads.googleads.v9.services.AdGroupCustomizerService", + "methods": [ { - "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v8.services.FeedItemService.MutateFeedItems", + "shortName": "MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v9.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/feedItems:mutate" + "path": "/v9/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] } ] }, { - "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v8.services.FeedItemSetLinkService", + "shortName": "AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v9.services.AdGroupExtensionSettingService", "methods": [ { - "shortName": "GetFeedItemSetLink", - "fullName": "google.ads.googleads.v8.services.FeedItemSetLinkService.GetFeedItemSetLink", + "shortName": "GetAdGroupExtensionSetting", + "fullName": "google.ads.googleads.v9.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/feedItemSetLinks/*}" + "path": "/v9/{resource_name=customers/*/adGroupExtensionSettings/*}" } ] }, { - "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v8.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "shortName": "MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v9.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v9/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] } ] }, { - "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v8.services.FeedItemSetService", + "shortName": "AdGroupFeedService", + "fullName": "google.ads.googleads.v9.services.AdGroupFeedService", "methods": [ { - "shortName": "GetFeedItemSet", - "fullName": "google.ads.googleads.v8.services.FeedItemSetService.GetFeedItemSet", + "shortName": "GetAdGroupFeed", + "fullName": "google.ads.googleads.v9.services.AdGroupFeedService.GetAdGroupFeed", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/feedItemSets/*}" + "path": "/v9/{resource_name=customers/*/adGroupFeeds/*}" } ] }, { - "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v8.services.FeedItemSetService.MutateFeedItemSets", + "shortName": "MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v9.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v9/customers/{customer_id=*}/adGroupFeeds:mutate" } ] } ] }, { - "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v8.services.FeedItemTargetService", + "shortName": "AdGroupLabelService", + "fullName": "google.ads.googleads.v9.services.AdGroupLabelService", "methods": [ { - "shortName": "GetFeedItemTarget", - "fullName": "google.ads.googleads.v8.services.FeedItemTargetService.GetFeedItemTarget", + "shortName": "GetAdGroupLabel", + "fullName": "google.ads.googleads.v9.services.AdGroupLabelService.GetAdGroupLabel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/feedItemTargets/*}" + "path": "/v9/{resource_name=customers/*/adGroupLabels/*}" } ] }, { - "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v8.services.FeedItemTargetService.MutateFeedItemTargets", + "shortName": "MutateAdGroupLabels", + "fullName": "google.ads.googleads.v9.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v9/customers/{customer_id=*}/adGroupLabels:mutate" } ] } ] }, { - "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v8.services.FeedMappingService", + "shortName": "AdGroupService", + "fullName": "google.ads.googleads.v9.services.AdGroupService", "methods": [ { - "shortName": "GetFeedMapping", - "fullName": "google.ads.googleads.v8.services.FeedMappingService.GetFeedMapping", + "shortName": "GetAdGroup", + "fullName": "google.ads.googleads.v9.services.AdGroupService.GetAdGroup", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/feedMappings/*}" + "path": "/v9/{resource_name=customers/*/adGroups/*}" } ] }, { - "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v8.services.FeedMappingService.MutateFeedMappings", + "shortName": "MutateAdGroups", + "fullName": "google.ads.googleads.v9.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v9/customers/{customer_id=*}/adGroups:mutate" } ] } ] }, { - "shortName": "FeedPlaceholderViewService", - "fullName": "google.ads.googleads.v8.services.FeedPlaceholderViewService", + "shortName": "AdGroupSimulationService", + "fullName": "google.ads.googleads.v9.services.AdGroupSimulationService", "methods": [ { - "shortName": "GetFeedPlaceholderView", - "fullName": "google.ads.googleads.v8.services.FeedPlaceholderViewService.GetFeedPlaceholderView", + "shortName": "GetAdGroupSimulation", + "fullName": "google.ads.googleads.v9.services.AdGroupSimulationService.GetAdGroupSimulation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/feedPlaceholderViews/*}" + "path": "/v9/{resource_name=customers/*/adGroupSimulations/*}" } ] } ] }, { - "shortName": "FeedService", - "fullName": "google.ads.googleads.v8.services.FeedService", + "shortName": "AdParameterService", + "fullName": "google.ads.googleads.v9.services.AdParameterService", "methods": [ { - "shortName": "GetFeed", - "fullName": "google.ads.googleads.v8.services.FeedService.GetFeed", + "shortName": "GetAdParameter", + "fullName": "google.ads.googleads.v9.services.AdParameterService.GetAdParameter", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/feeds/*}" + "path": "/v9/{resource_name=customers/*/adParameters/*}" } ] }, { - "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v8.services.FeedService.MutateFeeds", + "shortName": "MutateAdParameters", + "fullName": "google.ads.googleads.v9.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/feeds:mutate" + "path": "/v9/customers/{customer_id=*}/adParameters:mutate" } ] } ] }, { - "shortName": "GenderViewService", - "fullName": "google.ads.googleads.v8.services.GenderViewService", + "shortName": "AdScheduleViewService", + "fullName": "google.ads.googleads.v9.services.AdScheduleViewService", "methods": [ { - "shortName": "GetGenderView", - "fullName": "google.ads.googleads.v8.services.GenderViewService.GetGenderView", + "shortName": "GetAdScheduleView", + "fullName": "google.ads.googleads.v9.services.AdScheduleViewService.GetAdScheduleView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/genderViews/*}" + "path": "/v9/{resource_name=customers/*/adScheduleViews/*}" } ] } ] }, { - "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v8.services.GeoTargetConstantService", + "shortName": "AdService", + "fullName": "google.ads.googleads.v9.services.AdService", "methods": [ { - "shortName": "GetGeoTargetConstant", - "fullName": "google.ads.googleads.v8.services.GeoTargetConstantService.GetGeoTargetConstant", + "shortName": "GetAd", + "fullName": "google.ads.googleads.v9.services.AdService.GetAd", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=geoTargetConstants/*}" + "path": "/v9/{resource_name=customers/*/ads/*}" } ] }, { - "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v8.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "shortName": "MutateAds", + "fullName": "google.ads.googleads.v9.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/geoTargetConstants:suggest" + "path": "/v9/customers/{customer_id=*}/ads:mutate" } ] } ] }, { - "shortName": "GeographicViewService", - "fullName": "google.ads.googleads.v8.services.GeographicViewService", + "shortName": "AgeRangeViewService", + "fullName": "google.ads.googleads.v9.services.AgeRangeViewService", "methods": [ { - "shortName": "GetGeographicView", - "fullName": "google.ads.googleads.v8.services.GeographicViewService.GetGeographicView", + "shortName": "GetAgeRangeView", + "fullName": "google.ads.googleads.v9.services.AgeRangeViewService.GetAgeRangeView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/geographicViews/*}" + "path": "/v9/{resource_name=customers/*/ageRangeViews/*}" } ] } ] }, { - "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v8.services.GoogleAdsFieldService", + "shortName": "AssetFieldTypeViewService", + "fullName": "google.ads.googleads.v9.services.AssetFieldTypeViewService", "methods": [ { - "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v8.services.GoogleAdsFieldService.GetGoogleAdsField", + "shortName": "GetAssetFieldTypeView", + "fullName": "google.ads.googleads.v9.services.AssetFieldTypeViewService.GetAssetFieldTypeView", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/assetFieldTypeViews/*}" + } + ] + } + ] + }, + { + "shortName": "AssetGroupAssetService", + "fullName": "google.ads.googleads.v9.services.AssetGroupAssetService", + "methods": [ + { + "shortName": "GetAssetGroupAsset", + "fullName": "google.ads.googleads.v9.services.AssetGroupAssetService.GetAssetGroupAsset", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=googleAdsFields/*}" + "path": "/v9/{resource_name=customers/*/assetGroupAssets/*}" } ] }, { - "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v8.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "shortName": "MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v9.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/googleAdsFields:search" + "path": "/v9/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } ] }, { - "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v8.services.GoogleAdsService", + "shortName": "AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v9.services.AssetGroupListingGroupFilterService", "methods": [ { - "shortName": "Mutate", - "fullName": "google.ads.googleads.v8.services.GoogleAdsService.Mutate", + "shortName": "MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v9.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/googleAds:mutate" + "path": "/v9/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] - }, + } + ] + }, + { + "shortName": "AssetGroupService", + "fullName": "google.ads.googleads.v9.services.AssetGroupService", + "methods": [ { - "shortName": "Search", - "fullName": "google.ads.googleads.v8.services.GoogleAdsService.Search", + "shortName": "GetAssetGroup", + "fullName": "google.ads.googleads.v9.services.AssetGroupService.GetAssetGroup", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/googleAds:search" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/assetGroups/*}" } ] }, { - "shortName": "SearchStream", - "fullName": "google.ads.googleads.v8.services.GoogleAdsService.SearchStream", - "mode": "SERVER_STREAMING", + "shortName": "MutateAssetGroups", + "fullName": "google.ads.googleads.v9.services.AssetGroupService.MutateAssetGroups", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/googleAds:searchStream" + "path": "/v9/customers/{customer_id=*}/assetGroups:mutate" } ] } ] }, { - "shortName": "GroupPlacementViewService", - "fullName": "google.ads.googleads.v8.services.GroupPlacementViewService", + "shortName": "AssetService", + "fullName": "google.ads.googleads.v9.services.AssetService", "methods": [ { - "shortName": "GetGroupPlacementView", - "fullName": "google.ads.googleads.v8.services.GroupPlacementViewService.GetGroupPlacementView", + "shortName": "GetAsset", + "fullName": "google.ads.googleads.v9.services.AssetService.GetAsset", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/groupPlacementViews/*}" + "path": "/v9/{resource_name=customers/*/assets/*}" } ] - } - ] - }, - { - "shortName": "HotelGroupViewService", - "fullName": "google.ads.googleads.v8.services.HotelGroupViewService", - "methods": [ + }, { - "shortName": "GetHotelGroupView", - "fullName": "google.ads.googleads.v8.services.HotelGroupViewService.GetHotelGroupView", + "shortName": "MutateAssets", + "fullName": "google.ads.googleads.v9.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/hotelGroupViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/assets:mutate" } ] } ] }, { - "shortName": "HotelPerformanceViewService", - "fullName": "google.ads.googleads.v8.services.HotelPerformanceViewService", + "shortName": "AssetSetAssetService", + "fullName": "google.ads.googleads.v9.services.AssetSetAssetService", "methods": [ { - "shortName": "GetHotelPerformanceView", - "fullName": "google.ads.googleads.v8.services.HotelPerformanceViewService.GetHotelPerformanceView", + "shortName": "MutateAssetSetAssets", + "fullName": "google.ads.googleads.v9.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/hotelPerformanceView}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/assetSetAssets:mutate" } ] } ] }, { - "shortName": "IncomeRangeViewService", - "fullName": "google.ads.googleads.v8.services.IncomeRangeViewService", + "shortName": "AssetSetService", + "fullName": "google.ads.googleads.v9.services.AssetSetService", "methods": [ { - "shortName": "GetIncomeRangeView", - "fullName": "google.ads.googleads.v8.services.IncomeRangeViewService.GetIncomeRangeView", + "shortName": "MutateAssetSets", + "fullName": "google.ads.googleads.v9.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/incomeRangeViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/assetSets:mutate" } ] } ] }, { - "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v8.services.InvoiceService", + "shortName": "BatchJobService", + "fullName": "google.ads.googleads.v9.services.BatchJobService", "methods": [ { - "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v8.services.InvoiceService.ListInvoices", + "shortName": "AddBatchJobOperations", + "fullName": "google.ads.googleads.v9.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/customers/{customer_id=*}/invoices" + "httpMethod": "POST", + "path": "/v9/{resource_name=customers/*/batchJobs/*}:addOperations" } ] - } - ] - }, - { - "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService", - "methods": [ + }, { - "shortName": "GetKeywordPlanAdGroupKeyword", - "fullName": "google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword", + "shortName": "GetBatchJob", + "fullName": "google.ads.googleads.v9.services.BatchJobService.GetBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/keywordPlanAdGroupKeywords/*}" + "path": "/v9/{resource_name=customers/*/batchJobs/*}" } ] }, { - "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "shortName": "ListBatchJobResults", + "fullName": "google.ads.googleads.v9.services.BatchJobService.ListBatchJobResults", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/batchJobs/*}:listResults" } ] - } - ] - }, - { - "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v8.services.KeywordPlanAdGroupService", - "methods": [ + }, { - "shortName": "GetKeywordPlanAdGroup", - "fullName": "google.ads.googleads.v8.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup", + "shortName": "MutateBatchJob", + "fullName": "google.ads.googleads.v9.services.BatchJobService.MutateBatchJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/keywordPlanAdGroups/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/batchJobs:mutate" } ] }, { - "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v8.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "shortName": "RunBatchJob", + "fullName": "google.ads.googleads.v9.services.BatchJobService.RunBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "path": "/v9/{resource_name=customers/*/batchJobs/*}:run" } ] } ] }, { - "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService", + "shortName": "BiddingDataExclusionService", + "fullName": "google.ads.googleads.v9.services.BiddingDataExclusionService", "methods": [ { - "shortName": "GetKeywordPlanCampaignKeyword", - "fullName": "google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword", - "mode": "UNARY", + "shortName": "GetBiddingDataExclusion", + "fullName": "google.ads.googleads.v9.services.BiddingDataExclusionService.GetBiddingDataExclusion", + "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/keywordPlanCampaignKeywords/*}" + "path": "/v9/{resource_name=customers/*/biddingDataExclusions/*}" } ] }, { - "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "shortName": "MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v9.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "path": "/v9/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] } ] }, { - "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v8.services.KeywordPlanCampaignService", + "shortName": "BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v9.services.BiddingSeasonalityAdjustmentService", "methods": [ { - "shortName": "GetKeywordPlanCampaign", - "fullName": "google.ads.googleads.v8.services.KeywordPlanCampaignService.GetKeywordPlanCampaign", + "shortName": "GetBiddingSeasonalityAdjustment", + "fullName": "google.ads.googleads.v9.services.BiddingSeasonalityAdjustmentService.GetBiddingSeasonalityAdjustment", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/keywordPlanCampaigns/*}" + "path": "/v9/{resource_name=customers/*/biddingSeasonalityAdjustments/*}" } ] }, { - "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v8.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "shortName": "MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v9.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "path": "/v9/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } ] }, { - "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v8.services.KeywordPlanIdeaService", + "shortName": "BiddingStrategyService", + "fullName": "google.ads.googleads.v9.services.BiddingStrategyService", "methods": [ { - "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v8.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "shortName": "GetBiddingStrategy", + "fullName": "google.ads.googleads.v9.services.BiddingStrategyService.GetBiddingStrategy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:generateKeywordIdeas" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/biddingStrategies/*}" } ] - } - ] - }, - { - "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v8.services.KeywordPlanService", - "methods": [ + }, { - "shortName": "GenerateForecastCurve", - "fullName": "google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastCurve", + "shortName": "MutateBiddingStrategies", + "fullName": "google.ads.googleads.v9.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" + "path": "/v9/customers/{customer_id=*}/biddingStrategies:mutate" } ] - }, + } + ] + }, + { + "shortName": "BiddingStrategySimulationService", + "fullName": "google.ads.googleads.v9.services.BiddingStrategySimulationService", + "methods": [ { - "shortName": "GenerateForecastMetrics", - "fullName": "google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastMetrics", + "shortName": "GetBiddingStrategySimulation", + "fullName": "google.ads.googleads.v9.services.BiddingStrategySimulationService.GetBiddingStrategySimulation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/biddingStrategySimulations/*}" } ] - }, + } + ] + }, + { + "shortName": "BillingSetupService", + "fullName": "google.ads.googleads.v9.services.BillingSetupService", + "methods": [ { - "shortName": "GenerateForecastTimeSeries", - "fullName": "google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastTimeSeries", + "shortName": "GetBillingSetup", + "fullName": "google.ads.googleads.v9.services.BillingSetupService.GetBillingSetup", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/billingSetups/*}" } ] }, { - "shortName": "GenerateHistoricalMetrics", - "fullName": "google.ads.googleads.v8.services.KeywordPlanService.GenerateHistoricalMetrics", + "shortName": "MutateBillingSetup", + "fullName": "google.ads.googleads.v9.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" + "path": "/v9/customers/{customer_id=*}/billingSetups:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignAssetService", + "fullName": "google.ads.googleads.v9.services.CampaignAssetService", + "methods": [ { - "shortName": "GetKeywordPlan", - "fullName": "google.ads.googleads.v8.services.KeywordPlanService.GetKeywordPlan", + "shortName": "GetCampaignAsset", + "fullName": "google.ads.googleads.v9.services.CampaignAssetService.GetCampaignAsset", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/keywordPlans/*}" + "path": "/v9/{resource_name=customers/*/campaignAssets/*}" } ] }, { - "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v8.services.KeywordPlanService.MutateKeywordPlans", + "shortName": "MutateCampaignAssets", + "fullName": "google.ads.googleads.v9.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/keywordPlans:mutate" + "path": "/v9/customers/{customer_id=*}/campaignAssets:mutate" } ] } ] }, { - "shortName": "KeywordThemeConstantService", - "fullName": "google.ads.googleads.v8.services.KeywordThemeConstantService", + "shortName": "CampaignAssetSetService", + "fullName": "google.ads.googleads.v9.services.CampaignAssetSetService", "methods": [ { - "shortName": "GetKeywordThemeConstant", - "fullName": "google.ads.googleads.v8.services.KeywordThemeConstantService.GetKeywordThemeConstant", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=keywordThemeConstants/*}" - } - ] - }, - { - "shortName": "SuggestKeywordThemeConstants", - "fullName": "google.ads.googleads.v8.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "shortName": "MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v9.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/keywordThemeConstants:suggest" + "path": "/v9/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } ] }, { - "shortName": "KeywordViewService", - "fullName": "google.ads.googleads.v8.services.KeywordViewService", + "shortName": "CampaignAudienceViewService", + "fullName": "google.ads.googleads.v9.services.CampaignAudienceViewService", "methods": [ { - "shortName": "GetKeywordView", - "fullName": "google.ads.googleads.v8.services.KeywordViewService.GetKeywordView", + "shortName": "GetCampaignAudienceView", + "fullName": "google.ads.googleads.v9.services.CampaignAudienceViewService.GetCampaignAudienceView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/keywordViews/*}" + "path": "/v9/{resource_name=customers/*/campaignAudienceViews/*}" } ] } ] }, { - "shortName": "LabelService", - "fullName": "google.ads.googleads.v8.services.LabelService", + "shortName": "CampaignBidModifierService", + "fullName": "google.ads.googleads.v9.services.CampaignBidModifierService", "methods": [ { - "shortName": "GetLabel", - "fullName": "google.ads.googleads.v8.services.LabelService.GetLabel", + "shortName": "GetCampaignBidModifier", + "fullName": "google.ads.googleads.v9.services.CampaignBidModifierService.GetCampaignBidModifier", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/labels/*}" + "path": "/v9/{resource_name=customers/*/campaignBidModifiers/*}" } ] }, { - "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v8.services.LabelService.MutateLabels", + "shortName": "MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v9.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/labels:mutate" + "path": "/v9/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } ] }, { - "shortName": "LandingPageViewService", - "fullName": "google.ads.googleads.v8.services.LandingPageViewService", + "shortName": "CampaignBudgetService", + "fullName": "google.ads.googleads.v9.services.CampaignBudgetService", "methods": [ { - "shortName": "GetLandingPageView", - "fullName": "google.ads.googleads.v8.services.LandingPageViewService.GetLandingPageView", + "shortName": "GetCampaignBudget", + "fullName": "google.ads.googleads.v9.services.CampaignBudgetService.GetCampaignBudget", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/landingPageViews/*}" + "path": "/v9/{resource_name=customers/*/campaignBudgets/*}" } ] - } - ] - }, - { - "shortName": "LanguageConstantService", - "fullName": "google.ads.googleads.v8.services.LanguageConstantService", - "methods": [ + }, { - "shortName": "GetLanguageConstant", - "fullName": "google.ads.googleads.v8.services.LanguageConstantService.GetLanguageConstant", + "shortName": "MutateCampaignBudgets", + "fullName": "google.ads.googleads.v9.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=languageConstants/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/campaignBudgets:mutate" } ] } ] }, { - "shortName": "LifeEventService", - "fullName": "google.ads.googleads.v8.services.LifeEventService", + "shortName": "CampaignConversionGoalService", + "fullName": "google.ads.googleads.v9.services.CampaignConversionGoalService", "methods": [ { - "shortName": "GetLifeEvent", - "fullName": "google.ads.googleads.v8.services.LifeEventService.GetLifeEvent", + "shortName": "MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v9.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/lifeEvents/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] } ] }, { - "shortName": "LocationViewService", - "fullName": "google.ads.googleads.v8.services.LocationViewService", + "shortName": "CampaignCriterionService", + "fullName": "google.ads.googleads.v9.services.CampaignCriterionService", "methods": [ { - "shortName": "GetLocationView", - "fullName": "google.ads.googleads.v8.services.LocationViewService.GetLocationView", + "shortName": "GetCampaignCriterion", + "fullName": "google.ads.googleads.v9.services.CampaignCriterionService.GetCampaignCriterion", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/locationViews/*}" + "path": "/v9/{resource_name=customers/*/campaignCriteria/*}" } ] - } - ] - }, - { - "shortName": "ManagedPlacementViewService", - "fullName": "google.ads.googleads.v8.services.ManagedPlacementViewService", - "methods": [ + }, { - "shortName": "GetManagedPlacementView", - "fullName": "google.ads.googleads.v8.services.ManagedPlacementViewService.GetManagedPlacementView", + "shortName": "MutateCampaignCriteria", + "fullName": "google.ads.googleads.v9.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/managedPlacementViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/campaignCriteria:mutate" } ] } ] }, { - "shortName": "MediaFileService", - "fullName": "google.ads.googleads.v8.services.MediaFileService", + "shortName": "CampaignCriterionSimulationService", + "fullName": "google.ads.googleads.v9.services.CampaignCriterionSimulationService", "methods": [ { - "shortName": "GetMediaFile", - "fullName": "google.ads.googleads.v8.services.MediaFileService.GetMediaFile", + "shortName": "GetCampaignCriterionSimulation", + "fullName": "google.ads.googleads.v9.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/mediaFiles/*}" + "path": "/v9/{resource_name=customers/*/campaignCriterionSimulations/*}" } ] - }, + } + ] + }, + { + "shortName": "CampaignCustomizerService", + "fullName": "google.ads.googleads.v9.services.CampaignCustomizerService", + "methods": [ { - "shortName": "MutateMediaFiles", - "fullName": "google.ads.googleads.v8.services.MediaFileService.MutateMediaFiles", + "shortName": "MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v9.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/mediaFiles:mutate" + "path": "/v9/customers/{customer_id=*}/campaignCustomizers:mutate" } ] } ] }, { - "shortName": "MerchantCenterLinkService", - "fullName": "google.ads.googleads.v8.services.MerchantCenterLinkService", + "shortName": "CampaignDraftService", + "fullName": "google.ads.googleads.v9.services.CampaignDraftService", "methods": [ { - "shortName": "GetMerchantCenterLink", - "fullName": "google.ads.googleads.v8.services.MerchantCenterLinkService.GetMerchantCenterLink", + "shortName": "GetCampaignDraft", + "fullName": "google.ads.googleads.v9.services.CampaignDraftService.GetCampaignDraft", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/merchantCenterLinks/*}" + "path": "/v9/{resource_name=customers/*/campaignDrafts/*}" } ] }, { - "shortName": "ListMerchantCenterLinks", - "fullName": "google.ads.googleads.v8.services.MerchantCenterLinkService.ListMerchantCenterLinks", + "shortName": "ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v9.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/customers/{customer_id=*}/merchantCenterLinks" + "path": "/v9/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] }, { - "shortName": "MutateMerchantCenterLink", - "fullName": "google.ads.googleads.v8.services.MerchantCenterLinkService.MutateMerchantCenterLink", + "shortName": "MutateCampaignDrafts", + "fullName": "google.ads.googleads.v9.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/merchantCenterLinks:mutate" + "path": "/v9/customers/{customer_id=*}/campaignDrafts:mutate" } ] - } - ] - }, - { - "shortName": "MobileAppCategoryConstantService", - "fullName": "google.ads.googleads.v8.services.MobileAppCategoryConstantService", - "methods": [ + }, { - "shortName": "GetMobileAppCategoryConstant", - "fullName": "google.ads.googleads.v8.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant", + "shortName": "PromoteCampaignDraft", + "fullName": "google.ads.googleads.v9.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=mobileAppCategoryConstants/*}" + "httpMethod": "POST", + "path": "/v9/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } ] }, { - "shortName": "MobileDeviceConstantService", - "fullName": "google.ads.googleads.v8.services.MobileDeviceConstantService", + "shortName": "CampaignExperimentService", + "fullName": "google.ads.googleads.v9.services.CampaignExperimentService", "methods": [ { - "shortName": "GetMobileDeviceConstant", - "fullName": "google.ads.googleads.v8.services.MobileDeviceConstantService.GetMobileDeviceConstant", + "shortName": "CreateCampaignExperiment", + "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.CreateCampaignExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=mobileDeviceConstants/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/campaignExperiments:create" } ] - } - ] - }, - { - "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v8.services.OfflineUserDataJobService", - "methods": [ + }, { - "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v8.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "shortName": "EndCampaignExperiment", + "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.EndCampaignExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "path": "/v9/{campaign_experiment=customers/*/campaignExperiments/*}:end" } ] }, { - "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v8.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "shortName": "GetCampaignExperiment", + "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.GetCampaignExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/offlineUserDataJobs:create" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/campaignExperiments/*}" } ] }, { - "shortName": "GetOfflineUserDataJob", - "fullName": "google.ads.googleads.v8.services.OfflineUserDataJobService.GetOfflineUserDataJob", + "shortName": "GraduateCampaignExperiment", + "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.GraduateCampaignExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/offlineUserDataJobs/*}" + "httpMethod": "POST", + "path": "/v9/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" } ] }, { - "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v8.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "shortName": "ListCampaignExperimentAsyncErrors", + "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" } ] - } - ] - }, - { - "shortName": "OperatingSystemVersionConstantService", - "fullName": "google.ads.googleads.v8.services.OperatingSystemVersionConstantService", - "methods": [ + }, { - "shortName": "GetOperatingSystemVersionConstant", - "fullName": "google.ads.googleads.v8.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant", + "shortName": "MutateCampaignExperiments", + "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.MutateCampaignExperiments", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=operatingSystemVersionConstants/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/campaignExperiments:mutate" } ] - } - ] - }, - { - "shortName": "PaidOrganicSearchTermViewService", - "fullName": "google.ads.googleads.v8.services.PaidOrganicSearchTermViewService", - "methods": [ + }, { - "shortName": "GetPaidOrganicSearchTermView", - "fullName": "google.ads.googleads.v8.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView", + "shortName": "PromoteCampaignExperiment", + "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.PromoteCampaignExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/paidOrganicSearchTermViews/*}" + "httpMethod": "POST", + "path": "/v9/{campaign_experiment=customers/*/campaignExperiments/*}:promote" } ] } ] }, { - "shortName": "ParentalStatusViewService", - "fullName": "google.ads.googleads.v8.services.ParentalStatusViewService", + "shortName": "CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v9.services.CampaignExtensionSettingService", "methods": [ { - "shortName": "GetParentalStatusView", - "fullName": "google.ads.googleads.v8.services.ParentalStatusViewService.GetParentalStatusView", + "shortName": "GetCampaignExtensionSetting", + "fullName": "google.ads.googleads.v9.services.CampaignExtensionSettingService.GetCampaignExtensionSetting", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/parentalStatusViews/*}" + "path": "/v9/{resource_name=customers/*/campaignExtensionSettings/*}" } ] - } - ] - }, - { - "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v8.services.PaymentsAccountService", - "methods": [ + }, { - "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v8.services.PaymentsAccountService.ListPaymentsAccounts", + "shortName": "MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v9.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/customers/{customer_id=*}/paymentsAccounts" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] } ] }, { - "shortName": "ProductBiddingCategoryConstantService", - "fullName": "google.ads.googleads.v8.services.ProductBiddingCategoryConstantService", + "shortName": "CampaignFeedService", + "fullName": "google.ads.googleads.v9.services.CampaignFeedService", "methods": [ { - "shortName": "GetProductBiddingCategoryConstant", - "fullName": "google.ads.googleads.v8.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant", + "shortName": "GetCampaignFeed", + "fullName": "google.ads.googleads.v9.services.CampaignFeedService.GetCampaignFeed", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=productBiddingCategoryConstants/*}" + "path": "/v9/{resource_name=customers/*/campaignFeeds/*}" } ] - } - ] - }, - { - "shortName": "ProductGroupViewService", - "fullName": "google.ads.googleads.v8.services.ProductGroupViewService", - "methods": [ + }, { - "shortName": "GetProductGroupView", - "fullName": "google.ads.googleads.v8.services.ProductGroupViewService.GetProductGroupView", + "shortName": "MutateCampaignFeeds", + "fullName": "google.ads.googleads.v9.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/productGroupViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/campaignFeeds:mutate" } ] } ] }, { - "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v8.services.ReachPlanService", + "shortName": "CampaignLabelService", + "fullName": "google.ads.googleads.v9.services.CampaignLabelService", "methods": [ { - "shortName": "GenerateProductMixIdeas", - "fullName": "google.ads.googleads.v8.services.ReachPlanService.GenerateProductMixIdeas", + "shortName": "GetCampaignLabel", + "fullName": "google.ads.googleads.v9.services.CampaignLabelService.GetCampaignLabel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:generateProductMixIdeas" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/campaignLabels/*}" } ] }, { - "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v8.services.ReachPlanService.GenerateReachForecast", + "shortName": "MutateCampaignLabels", + "fullName": "google.ads.googleads.v9.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:generateReachForecast" + "path": "/v9/customers/{customer_id=*}/campaignLabels:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignService", + "fullName": "google.ads.googleads.v9.services.CampaignService", + "methods": [ { - "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v8.services.ReachPlanService.ListPlannableLocations", + "shortName": "GetCampaign", + "fullName": "google.ads.googleads.v9.services.CampaignService.GetCampaign", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8:listPlannableLocations" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/campaigns/*}" } ] }, { - "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v8.services.ReachPlanService.ListPlannableProducts", + "shortName": "MutateCampaigns", + "fullName": "google.ads.googleads.v9.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8:listPlannableProducts" + "path": "/v9/customers/{customer_id=*}/campaigns:mutate" } ] } ] }, { - "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v8.services.RecommendationService", + "shortName": "CampaignSharedSetService", + "fullName": "google.ads.googleads.v9.services.CampaignSharedSetService", "methods": [ { - "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v8.services.RecommendationService.ApplyRecommendation", + "shortName": "GetCampaignSharedSet", + "fullName": "google.ads.googleads.v9.services.CampaignSharedSetService.GetCampaignSharedSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/recommendations:apply" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/campaignSharedSets/*}" } ] }, { - "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v8.services.RecommendationService.DismissRecommendation", + "shortName": "MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v9.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/recommendations:dismiss" + "path": "/v9/customers/{customer_id=*}/campaignSharedSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignSimulationService", + "fullName": "google.ads.googleads.v9.services.CampaignSimulationService", + "methods": [ { - "shortName": "GetRecommendation", - "fullName": "google.ads.googleads.v8.services.RecommendationService.GetRecommendation", + "shortName": "GetCampaignSimulation", + "fullName": "google.ads.googleads.v9.services.CampaignSimulationService.GetCampaignSimulation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/recommendations/*}" + "path": "/v9/{resource_name=customers/*/campaignSimulations/*}" } ] } ] }, { - "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v8.services.RemarketingActionService", + "shortName": "CarrierConstantService", + "fullName": "google.ads.googleads.v9.services.CarrierConstantService", "methods": [ { - "shortName": "GetRemarketingAction", - "fullName": "google.ads.googleads.v8.services.RemarketingActionService.GetRemarketingAction", + "shortName": "GetCarrierConstant", + "fullName": "google.ads.googleads.v9.services.CarrierConstantService.GetCarrierConstant", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/remarketingActions/*}" - } - ] - }, - { - "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v8.services.RemarketingActionService.MutateRemarketingActions", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v9/{resource_name=carrierConstants/*}" } ] } ] }, { - "shortName": "SearchTermViewService", - "fullName": "google.ads.googleads.v8.services.SearchTermViewService", + "shortName": "ChangeStatusService", + "fullName": "google.ads.googleads.v9.services.ChangeStatusService", "methods": [ { - "shortName": "GetSearchTermView", - "fullName": "google.ads.googleads.v8.services.SearchTermViewService.GetSearchTermView", + "shortName": "GetChangeStatus", + "fullName": "google.ads.googleads.v9.services.ChangeStatusService.GetChangeStatus", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/searchTermViews/*}" + "path": "/v9/{resource_name=customers/*/changeStatus/*}" } ] } ] }, { - "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v8.services.SharedCriterionService", + "shortName": "ClickViewService", + "fullName": "google.ads.googleads.v9.services.ClickViewService", "methods": [ { - "shortName": "GetSharedCriterion", - "fullName": "google.ads.googleads.v8.services.SharedCriterionService.GetSharedCriterion", + "shortName": "GetClickView", + "fullName": "google.ads.googleads.v9.services.ClickViewService.GetClickView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/sharedCriteria/*}" + "path": "/v9/{resource_name=customers/*/clickViews/*}" } ] - }, + } + ] + }, + { + "shortName": "CombinedAudienceService", + "fullName": "google.ads.googleads.v9.services.CombinedAudienceService", + "methods": [ { - "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v8.services.SharedCriterionService.MutateSharedCriteria", + "shortName": "GetCombinedAudience", + "fullName": "google.ads.googleads.v9.services.CombinedAudienceService.GetCombinedAudience", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/sharedCriteria:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/combinedAudiences/*}" } ] } ] }, { - "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v8.services.SharedSetService", + "shortName": "ConversionActionService", + "fullName": "google.ads.googleads.v9.services.ConversionActionService", "methods": [ { - "shortName": "GetSharedSet", - "fullName": "google.ads.googleads.v8.services.SharedSetService.GetSharedSet", + "shortName": "GetConversionAction", + "fullName": "google.ads.googleads.v9.services.ConversionActionService.GetConversionAction", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/sharedSets/*}" + "path": "/v9/{resource_name=customers/*/conversionActions/*}" } ] }, { - "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v8.services.SharedSetService.MutateSharedSets", + "shortName": "MutateConversionActions", + "fullName": "google.ads.googleads.v9.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v9/customers/{customer_id=*}/conversionActions:mutate" } ] } ] }, { - "shortName": "ShoppingPerformanceViewService", - "fullName": "google.ads.googleads.v8.services.ShoppingPerformanceViewService", + "shortName": "ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v9.services.ConversionAdjustmentUploadService", "methods": [ { - "shortName": "GetShoppingPerformanceView", - "fullName": "google.ads.googleads.v8.services.ShoppingPerformanceViewService.GetShoppingPerformanceView", + "shortName": "UploadConversionAdjustments", + "fullName": "google.ads.googleads.v9.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/shoppingPerformanceView}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}:uploadConversionAdjustments" } ] } ] }, { - "shortName": "SmartCampaignSearchTermViewService", - "fullName": "google.ads.googleads.v8.services.SmartCampaignSearchTermViewService", + "shortName": "ConversionCustomVariableService", + "fullName": "google.ads.googleads.v9.services.ConversionCustomVariableService", "methods": [ { - "shortName": "GetSmartCampaignSearchTermView", - "fullName": "google.ads.googleads.v8.services.SmartCampaignSearchTermViewService.GetSmartCampaignSearchTermView", + "shortName": "GetConversionCustomVariable", + "fullName": "google.ads.googleads.v9.services.ConversionCustomVariableService.GetConversionCustomVariable", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/smartCampaignSearchTermViews/*}" + "path": "/v9/{resource_name=customers/*/conversionCustomVariables/*}" } ] - } - ] - }, - { - "shortName": "SmartCampaignSettingService", - "fullName": "google.ads.googleads.v8.services.SmartCampaignSettingService", - "methods": [ + }, { - "shortName": "GetSmartCampaignSetting", - "fullName": "google.ads.googleads.v8.services.SmartCampaignSettingService.GetSmartCampaignSetting", + "shortName": "MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v9.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/smartCampaignSettings/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v9.services.ConversionGoalCampaignConfigService", + "methods": [ { - "shortName": "MutateSmartCampaignSettings", - "fullName": "google.ads.googleads.v8.services.SmartCampaignSettingService.MutateSmartCampaignSettings", + "shortName": "MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v9.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/smartCampaignSettings:mutate" + "path": "/v9/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] } ] }, { - "shortName": "SmartCampaignSuggestService", - "fullName": "google.ads.googleads.v8.services.SmartCampaignSuggestService", + "shortName": "ConversionUploadService", + "fullName": "google.ads.googleads.v9.services.ConversionUploadService", "methods": [ { - "shortName": "SuggestSmartCampaignAd", - "fullName": "google.ads.googleads.v8.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", + "shortName": "UploadCallConversions", + "fullName": "google.ads.googleads.v9.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:suggestSmartCampaignAd" + "path": "/v9/customers/{customer_id=*}:uploadCallConversions" } ] }, { - "shortName": "SuggestSmartCampaignBudgetOptions", - "fullName": "google.ads.googleads.v8.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", + "shortName": "UploadClickConversions", + "fullName": "google.ads.googleads.v9.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + "path": "/v9/customers/{customer_id=*}:uploadClickConversions" } ] } ] }, { - "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService", + "shortName": "ConversionValueRuleService", + "fullName": "google.ads.googleads.v9.services.ConversionValueRuleService", "methods": [ { - "shortName": "GetThirdPartyAppAnalyticsLink", - "fullName": "google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink", + "shortName": "GetConversionValueRule", + "fullName": "google.ads.googleads.v9.services.ConversionValueRuleService.GetConversionValueRule", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}" + "path": "/v9/{resource_name=customers/*/conversionValueRules/*}" } ] }, { - "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "shortName": "MutateConversionValueRules", + "fullName": "google.ads.googleads.v9.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "path": "/v9/customers/{customer_id=*}/conversionValueRules:mutate" } ] } ] }, { - "shortName": "TopicConstantService", - "fullName": "google.ads.googleads.v8.services.TopicConstantService", + "shortName": "ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v9.services.ConversionValueRuleSetService", "methods": [ { - "shortName": "GetTopicConstant", - "fullName": "google.ads.googleads.v8.services.TopicConstantService.GetTopicConstant", + "shortName": "GetConversionValueRuleSet", + "fullName": "google.ads.googleads.v9.services.ConversionValueRuleSetService.GetConversionValueRuleSet", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=topicConstants/*}" + "path": "/v9/{resource_name=customers/*/conversionValueRuleSets/*}" } ] - } - ] - }, - { - "shortName": "TopicViewService", - "fullName": "google.ads.googleads.v8.services.TopicViewService", - "methods": [ + }, { - "shortName": "GetTopicView", - "fullName": "google.ads.googleads.v8.services.TopicViewService.GetTopicView", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/topicViews/*}" - } - ] - } - ] - }, - { - "shortName": "UserDataService", - "fullName": "google.ads.googleads.v8.services.UserDataService", - "methods": [ - { - "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v8.services.UserDataService.UploadUserData", + "shortName": "MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v9.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}:uploadUserData" + "path": "/v9/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] } ] }, { - "shortName": "UserInterestService", - "fullName": "google.ads.googleads.v8.services.UserInterestService", + "shortName": "CurrencyConstantService", + "fullName": "google.ads.googleads.v9.services.CurrencyConstantService", "methods": [ { - "shortName": "GetUserInterest", - "fullName": "google.ads.googleads.v8.services.UserInterestService.GetUserInterest", + "shortName": "GetCurrencyConstant", + "fullName": "google.ads.googleads.v9.services.CurrencyConstantService.GetCurrencyConstant", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/userInterests/*}" + "path": "/v9/{resource_name=currencyConstants/*}" } ] } ] }, { - "shortName": "UserListService", - "fullName": "google.ads.googleads.v8.services.UserListService", + "shortName": "CustomAudienceService", + "fullName": "google.ads.googleads.v9.services.CustomAudienceService", "methods": [ { - "shortName": "GetUserList", - "fullName": "google.ads.googleads.v8.services.UserListService.GetUserList", + "shortName": "GetCustomAudience", + "fullName": "google.ads.googleads.v9.services.CustomAudienceService.GetCustomAudience", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/userLists/*}" + "path": "/v9/{resource_name=customers/*/customAudiences/*}" } ] }, { - "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v8.services.UserListService.MutateUserLists", + "shortName": "MutateCustomAudiences", + "fullName": "google.ads.googleads.v9.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v8/customers/{customer_id=*}/userLists:mutate" + "path": "/v9/customers/{customer_id=*}/customAudiences:mutate" } ] } ] }, { - "shortName": "UserLocationViewService", - "fullName": "google.ads.googleads.v8.services.UserLocationViewService", + "shortName": "CustomConversionGoalService", + "fullName": "google.ads.googleads.v9.services.CustomConversionGoalService", "methods": [ { - "shortName": "GetUserLocationView", - "fullName": "google.ads.googleads.v8.services.UserLocationViewService.GetUserLocationView", + "shortName": "MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v9.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/userLocationViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/customConversionGoals:mutate" } ] } ] }, { - "shortName": "VideoService", - "fullName": "google.ads.googleads.v8.services.VideoService", + "shortName": "CustomInterestService", + "fullName": "google.ads.googleads.v9.services.CustomInterestService", "methods": [ { - "shortName": "GetVideo", - "fullName": "google.ads.googleads.v8.services.VideoService.GetVideo", + "shortName": "GetCustomInterest", + "fullName": "google.ads.googleads.v9.services.CustomInterestService.GetCustomInterest", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/videos/*}" + "path": "/v9/{resource_name=customers/*/customInterests/*}" } ] - } - ] - }, - { - "shortName": "WebpageViewService", - "fullName": "google.ads.googleads.v8.services.WebpageViewService", - "methods": [ + }, { - "shortName": "GetWebpageView", - "fullName": "google.ads.googleads.v8.services.WebpageViewService.GetWebpageView", + "shortName": "MutateCustomInterests", + "fullName": "google.ads.googleads.v9.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v8/{resource_name=customers/*/webpageViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/customInterests:mutate" } ] } ] - } - ], - "configFile": "googleads_v8.yaml" - }, - { - "id": "google.ads.googleads.v9", - "directory": "google/ads/googleads/v9", - "version": "v9", - "majorVersion": "v9", - "hostName": "googleads.googleapis.com", - "title": "Google Ads API", - "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", - "importDirectories": [ - "google/ads/googleads/v9/common", - "google/ads/googleads/v9/enums", - "google/ads/googleads/v9/errors", - "google/ads/googleads/v9/resources", - "google/ads/googleads/v9/services", - "google/api", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Ads.GoogleAds.V9.Common": 32, - "Google.Ads.GoogleAds.V9.Enums": 281, - "Google.Ads.GoogleAds.V9.Errors": 135, - "Google.Ads.GoogleAds.V9.Resources": 149, - "Google.Ads.GoogleAds.V9.Services": 152 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v9/common;common": 32, - "google.golang.org/genproto/googleapis/ads/googleads/v9/enums;enums": 281, - "google.golang.org/genproto/googleapis/ads/googleads/v9/errors;errors": 135, - "google.golang.org/genproto/googleapis/ads/googleads/v9/resources;resources": 149, - "google.golang.org/genproto/googleapis/ads/googleads/v9/services;services": 152 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 749 - } - }, - "java_package": { - "valueCounts": { - "com.google.ads.googleads.v9.common": 32, - "com.google.ads.googleads.v9.enums": 281, - "com.google.ads.googleads.v9.errors": 135, - "com.google.ads.googleads.v9.resources": 149, - "com.google.ads.googleads.v9.services": 152 - } - }, - "objc_class_prefix": { - "valueCounts": { - "GAA": 749 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Ads\\GoogleAds\\V9\\Common": 32, - "Google\\Ads\\GoogleAds\\V9\\Enums": 281, - "Google\\Ads\\GoogleAds\\V9\\Errors": 135, - "Google\\Ads\\GoogleAds\\V9\\Resources": 149, - "Google\\Ads\\GoogleAds\\V9\\Services": 152 - } }, - "ruby_package": { - "valueCounts": { - "Google::Ads::GoogleAds::V9::Common": 32, - "Google::Ads::GoogleAds::V9::Enums": 281, - "Google::Ads::GoogleAds::V9::Errors": 135, - "Google::Ads::GoogleAds::V9::Resources": 149, - "Google::Ads::GoogleAds::V9::Services": 152 - } - } - }, - "services": [ { - "shortName": "AccessibleBiddingStrategyService", - "fullName": "google.ads.googleads.v9.services.AccessibleBiddingStrategyService", + "shortName": "CustomerAssetService", + "fullName": "google.ads.googleads.v9.services.CustomerAssetService", "methods": [ { - "shortName": "GetAccessibleBiddingStrategy", - "fullName": "google.ads.googleads.v9.services.AccessibleBiddingStrategyService.GetAccessibleBiddingStrategy", + "shortName": "GetCustomerAsset", + "fullName": "google.ads.googleads.v9.services.CustomerAssetService.GetCustomerAsset", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/accessibleBiddingStrategies/*}" + "path": "/v9/{resource_name=customers/*/customerAssets/*}" + } + ] + }, + { + "shortName": "MutateCustomerAssets", + "fullName": "google.ads.googleads.v9.services.CustomerAssetService.MutateCustomerAssets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/customerAssets:mutate" } ] } ] }, { - "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v9.services.AccountBudgetProposalService", + "shortName": "CustomerClientLinkService", + "fullName": "google.ads.googleads.v9.services.CustomerClientLinkService", "methods": [ { - "shortName": "GetAccountBudgetProposal", - "fullName": "google.ads.googleads.v9.services.AccountBudgetProposalService.GetAccountBudgetProposal", + "shortName": "GetCustomerClientLink", + "fullName": "google.ads.googleads.v9.services.CustomerClientLinkService.GetCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/accountBudgetProposals/*}" + "path": "/v9/{resource_name=customers/*/customerClientLinks/*}" } ] }, { - "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v9.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "shortName": "MutateCustomerClientLink", + "fullName": "google.ads.googleads.v9.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/accountBudgetProposals:mutate" + "path": "/v9/customers/{customer_id=*}/customerClientLinks:mutate" } ] } ] }, { - "shortName": "AccountBudgetService", - "fullName": "google.ads.googleads.v9.services.AccountBudgetService", + "shortName": "CustomerClientService", + "fullName": "google.ads.googleads.v9.services.CustomerClientService", "methods": [ { - "shortName": "GetAccountBudget", - "fullName": "google.ads.googleads.v9.services.AccountBudgetService.GetAccountBudget", + "shortName": "GetCustomerClient", + "fullName": "google.ads.googleads.v9.services.CustomerClientService.GetCustomerClient", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/accountBudgets/*}" + "path": "/v9/{resource_name=customers/*/customerClients/*}" } ] } ] }, { - "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v9.services.AccountLinkService", + "shortName": "CustomerConversionGoalService", + "fullName": "google.ads.googleads.v9.services.CustomerConversionGoalService", "methods": [ { - "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v9.services.AccountLinkService.CreateAccountLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/accountLinks:create" - } - ] - }, - { - "shortName": "GetAccountLink", - "fullName": "google.ads.googleads.v9.services.AccountLinkService.GetAccountLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/accountLinks/*}" - } - ] - }, - { - "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v9.services.AccountLinkService.MutateAccountLink", + "shortName": "MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v9.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/accountLinks:mutate" + "path": "/v9/customers/{customer_id=*}/customerConversionGoals:mutate" } ] } ] }, { - "shortName": "AdGroupAdAssetViewService", - "fullName": "google.ads.googleads.v9.services.AdGroupAdAssetViewService", + "shortName": "CustomerCustomizerService", + "fullName": "google.ads.googleads.v9.services.CustomerCustomizerService", "methods": [ { - "shortName": "GetAdGroupAdAssetView", - "fullName": "google.ads.googleads.v9.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView", + "shortName": "MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v9.services.CustomerCustomizerService.MutateCustomerCustomizers", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupAdAssetViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] } ] }, { - "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v9.services.AdGroupAdLabelService", + "shortName": "CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v9.services.CustomerExtensionSettingService", "methods": [ { - "shortName": "GetAdGroupAdLabel", - "fullName": "google.ads.googleads.v9.services.AdGroupAdLabelService.GetAdGroupAdLabel", + "shortName": "GetCustomerExtensionSetting", + "fullName": "google.ads.googleads.v9.services.CustomerExtensionSettingService.GetCustomerExtensionSetting", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupAdLabels/*}" + "path": "/v9/{resource_name=customers/*/customerExtensionSettings/*}" } ] }, { - "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v9.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "shortName": "MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v9.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupAdLabels:mutate" + "path": "/v9/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] } ] }, { - "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v9.services.AdGroupAdService", + "shortName": "CustomerFeedService", + "fullName": "google.ads.googleads.v9.services.CustomerFeedService", "methods": [ { - "shortName": "GetAdGroupAd", - "fullName": "google.ads.googleads.v9.services.AdGroupAdService.GetAdGroupAd", + "shortName": "GetCustomerFeed", + "fullName": "google.ads.googleads.v9.services.CustomerFeedService.GetCustomerFeed", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupAds/*}" + "path": "/v9/{resource_name=customers/*/customerFeeds/*}" } ] }, { - "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v9.services.AdGroupAdService.MutateAdGroupAds", + "shortName": "MutateCustomerFeeds", + "fullName": "google.ads.googleads.v9.services.CustomerFeedService.MutateCustomerFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupAds:mutate" + "path": "/v9/customers/{customer_id=*}/customerFeeds:mutate" } ] } ] }, { - "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v9.services.AdGroupAssetService", + "shortName": "CustomerLabelService", + "fullName": "google.ads.googleads.v9.services.CustomerLabelService", "methods": [ { - "shortName": "GetAdGroupAsset", - "fullName": "google.ads.googleads.v9.services.AdGroupAssetService.GetAdGroupAsset", + "shortName": "GetCustomerLabel", + "fullName": "google.ads.googleads.v9.services.CustomerLabelService.GetCustomerLabel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupAssets/*}" + "path": "/v9/{resource_name=customers/*/customerLabels/*}" } ] }, { - "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v9.services.AdGroupAssetService.MutateAdGroupAssets", + "shortName": "MutateCustomerLabels", + "fullName": "google.ads.googleads.v9.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupAssets:mutate" - } - ] - } - ] - }, - { - "shortName": "AdGroupAudienceViewService", - "fullName": "google.ads.googleads.v9.services.AdGroupAudienceViewService", - "methods": [ - { - "shortName": "GetAdGroupAudienceView", - "fullName": "google.ads.googleads.v9.services.AdGroupAudienceViewService.GetAdGroupAudienceView", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupAudienceViews/*}" + "path": "/v9/customers/{customer_id=*}/customerLabels:mutate" } ] } ] }, { - "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v9.services.AdGroupBidModifierService", + "shortName": "CustomerManagerLinkService", + "fullName": "google.ads.googleads.v9.services.CustomerManagerLinkService", "methods": [ { - "shortName": "GetAdGroupBidModifier", - "fullName": "google.ads.googleads.v9.services.AdGroupBidModifierService.GetAdGroupBidModifier", + "shortName": "GetCustomerManagerLink", + "fullName": "google.ads.googleads.v9.services.CustomerManagerLinkService.GetCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupBidModifiers/*}" + "path": "/v9/{resource_name=customers/*/customerManagerLinks/*}" } ] }, { - "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v9.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "shortName": "MoveManagerLink", + "fullName": "google.ads.googleads.v9.services.CustomerManagerLinkService.MoveManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "path": "/v9/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" } ] - } - ] - }, - { - "shortName": "AdGroupCriterionCustomizerService", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionCustomizerService", - "methods": [ + }, { - "shortName": "MutateAdGroupCriterionCustomizers", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", + "shortName": "MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v9.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + "path": "/v9/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } ] }, { - "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionLabelService", + "shortName": "CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v9.services.CustomerNegativeCriterionService", "methods": [ { - "shortName": "GetAdGroupCriterionLabel", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel", + "shortName": "GetCustomerNegativeCriterion", + "fullName": "google.ads.googleads.v9.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupCriterionLabels/*}" + "path": "/v9/{resource_name=customers/*/customerNegativeCriteria/*}" } ] }, { - "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "shortName": "MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v9.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "path": "/v9/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } ] }, { - "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionService", + "shortName": "CustomerService", + "fullName": "google.ads.googleads.v9.services.CustomerService", "methods": [ { - "shortName": "GetAdGroupCriterion", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionService.GetAdGroupCriterion", + "shortName": "CreateCustomerClient", + "fullName": "google.ads.googleads.v9.services.CustomerService.CreateCustomerClient", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupCriteria/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}:createCustomerClient" } ] }, { - "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionService.MutateAdGroupCriteria", + "shortName": "GetCustomer", + "fullName": "google.ads.googleads.v9.services.CustomerService.GetCustomer", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupCriteria:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*}" } ] - } - ] - }, - { - "shortName": "AdGroupCriterionSimulationService", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionSimulationService", - "methods": [ + }, { - "shortName": "GetAdGroupCriterionSimulation", - "fullName": "google.ads.googleads.v9.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation", + "shortName": "ListAccessibleCustomers", + "fullName": "google.ads.googleads.v9.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupCriterionSimulations/*}" + "path": "/v9/customers:listAccessibleCustomers" } ] - } - ] - }, - { - "shortName": "AdGroupCustomizerService", - "fullName": "google.ads.googleads.v9.services.AdGroupCustomizerService", - "methods": [ + }, { - "shortName": "MutateAdGroupCustomizers", - "fullName": "google.ads.googleads.v9.services.AdGroupCustomizerService.MutateAdGroupCustomizers", + "shortName": "MutateCustomer", + "fullName": "google.ads.googleads.v9.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupCustomizers:mutate" + "path": "/v9/customers/{customer_id=*}:mutate" } ] } ] }, { - "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v9.services.AdGroupExtensionSettingService", + "shortName": "CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v9.services.CustomerUserAccessInvitationService", "methods": [ { - "shortName": "GetAdGroupExtensionSetting", - "fullName": "google.ads.googleads.v9.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting", + "shortName": "GetCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v9.services.CustomerUserAccessInvitationService.GetCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupExtensionSettings/*}" + "path": "/v9/{resource_name=customers/*/customerUserAccessInvitations/*}" } ] }, { - "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v9.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "shortName": "MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v9.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "path": "/v9/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } ] }, { - "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v9.services.AdGroupFeedService", + "shortName": "CustomerUserAccessService", + "fullName": "google.ads.googleads.v9.services.CustomerUserAccessService", "methods": [ { - "shortName": "GetAdGroupFeed", - "fullName": "google.ads.googleads.v9.services.AdGroupFeedService.GetAdGroupFeed", + "shortName": "GetCustomerUserAccess", + "fullName": "google.ads.googleads.v9.services.CustomerUserAccessService.GetCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupFeeds/*}" + "path": "/v9/{resource_name=customers/*/customerUserAccesses/*}" } ] }, { - "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v9.services.AdGroupFeedService.MutateAdGroupFeeds", + "shortName": "MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v9.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupFeeds:mutate" + "path": "/v9/customers/{customer_id=*}/customerUserAccesses:mutate" } ] } ] }, { - "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v9.services.AdGroupLabelService", + "shortName": "CustomizerAttributeService", + "fullName": "google.ads.googleads.v9.services.CustomizerAttributeService", "methods": [ { - "shortName": "GetAdGroupLabel", - "fullName": "google.ads.googleads.v9.services.AdGroupLabelService.GetAdGroupLabel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupLabels/*}" - } - ] - }, - { - "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v9.services.AdGroupLabelService.MutateAdGroupLabels", + "shortName": "MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v9.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroupLabels:mutate" + "path": "/v9/customers/{customer_id=*}/customizerAttributes:mutate" } ] } ] }, { - "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v9.services.AdGroupService", + "shortName": "DetailPlacementViewService", + "fullName": "google.ads.googleads.v9.services.DetailPlacementViewService", "methods": [ { - "shortName": "GetAdGroup", - "fullName": "google.ads.googleads.v9.services.AdGroupService.GetAdGroup", + "shortName": "GetDetailPlacementView", + "fullName": "google.ads.googleads.v9.services.DetailPlacementViewService.GetDetailPlacementView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroups/*}" - } - ] - }, - { - "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v9.services.AdGroupService.MutateAdGroups", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adGroups:mutate" + "path": "/v9/{resource_name=customers/*/detailPlacementViews/*}" } ] } ] }, { - "shortName": "AdGroupSimulationService", - "fullName": "google.ads.googleads.v9.services.AdGroupSimulationService", + "shortName": "DetailedDemographicService", + "fullName": "google.ads.googleads.v9.services.DetailedDemographicService", "methods": [ { - "shortName": "GetAdGroupSimulation", - "fullName": "google.ads.googleads.v9.services.AdGroupSimulationService.GetAdGroupSimulation", + "shortName": "GetDetailedDemographic", + "fullName": "google.ads.googleads.v9.services.DetailedDemographicService.GetDetailedDemographic", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adGroupSimulations/*}" + "path": "/v9/{resource_name=customers/*/detailedDemographics/*}" } ] } ] }, { - "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v9.services.AdParameterService", + "shortName": "DisplayKeywordViewService", + "fullName": "google.ads.googleads.v9.services.DisplayKeywordViewService", "methods": [ { - "shortName": "GetAdParameter", - "fullName": "google.ads.googleads.v9.services.AdParameterService.GetAdParameter", + "shortName": "GetDisplayKeywordView", + "fullName": "google.ads.googleads.v9.services.DisplayKeywordViewService.GetDisplayKeywordView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adParameters/*}" + "path": "/v9/{resource_name=customers/*/displayKeywordViews/*}" } ] - }, + } + ] + }, + { + "shortName": "DistanceViewService", + "fullName": "google.ads.googleads.v9.services.DistanceViewService", + "methods": [ { - "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v9.services.AdParameterService.MutateAdParameters", + "shortName": "GetDistanceView", + "fullName": "google.ads.googleads.v9.services.DistanceViewService.GetDistanceView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/adParameters:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/distanceViews/*}" } ] } ] }, { - "shortName": "AdScheduleViewService", - "fullName": "google.ads.googleads.v9.services.AdScheduleViewService", + "shortName": "DomainCategoryService", + "fullName": "google.ads.googleads.v9.services.DomainCategoryService", "methods": [ { - "shortName": "GetAdScheduleView", - "fullName": "google.ads.googleads.v9.services.AdScheduleViewService.GetAdScheduleView", + "shortName": "GetDomainCategory", + "fullName": "google.ads.googleads.v9.services.DomainCategoryService.GetDomainCategory", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/adScheduleViews/*}" + "path": "/v9/{resource_name=customers/*/domainCategories/*}" } ] } ] }, { - "shortName": "AdService", - "fullName": "google.ads.googleads.v9.services.AdService", - "methods": [ - { - "shortName": "GetAd", - "fullName": "google.ads.googleads.v9.services.AdService.GetAd", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/ads/*}" - } - ] - }, - { - "shortName": "MutateAds", - "fullName": "google.ads.googleads.v9.services.AdService.MutateAds", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/ads:mutate" - } - ] - } - ] - }, - { - "shortName": "AgeRangeViewService", - "fullName": "google.ads.googleads.v9.services.AgeRangeViewService", + "shortName": "DynamicSearchAdsSearchTermViewService", + "fullName": "google.ads.googleads.v9.services.DynamicSearchAdsSearchTermViewService", "methods": [ { - "shortName": "GetAgeRangeView", - "fullName": "google.ads.googleads.v9.services.AgeRangeViewService.GetAgeRangeView", + "shortName": "GetDynamicSearchAdsSearchTermView", + "fullName": "google.ads.googleads.v9.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/ageRangeViews/*}" + "path": "/v9/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}" } ] } ] }, { - "shortName": "AssetFieldTypeViewService", - "fullName": "google.ads.googleads.v9.services.AssetFieldTypeViewService", + "shortName": "ExpandedLandingPageViewService", + "fullName": "google.ads.googleads.v9.services.ExpandedLandingPageViewService", "methods": [ { - "shortName": "GetAssetFieldTypeView", - "fullName": "google.ads.googleads.v9.services.AssetFieldTypeViewService.GetAssetFieldTypeView", + "shortName": "GetExpandedLandingPageView", + "fullName": "google.ads.googleads.v9.services.ExpandedLandingPageViewService.GetExpandedLandingPageView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/assetFieldTypeViews/*}" + "path": "/v9/{resource_name=customers/*/expandedLandingPageViews/*}" } ] } ] }, { - "shortName": "AssetGroupAssetService", - "fullName": "google.ads.googleads.v9.services.AssetGroupAssetService", + "shortName": "ExtensionFeedItemService", + "fullName": "google.ads.googleads.v9.services.ExtensionFeedItemService", "methods": [ { - "shortName": "GetAssetGroupAsset", - "fullName": "google.ads.googleads.v9.services.AssetGroupAssetService.GetAssetGroupAsset", + "shortName": "GetExtensionFeedItem", + "fullName": "google.ads.googleads.v9.services.ExtensionFeedItemService.GetExtensionFeedItem", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/assetGroupAssets/*}" + "path": "/v9/{resource_name=customers/*/extensionFeedItems/*}" } ] }, { - "shortName": "MutateAssetGroupAssets", - "fullName": "google.ads.googleads.v9.services.AssetGroupAssetService.MutateAssetGroupAssets", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/assetGroupAssets:mutate" - } - ] - } - ] - }, - { - "shortName": "AssetGroupListingGroupFilterService", - "fullName": "google.ads.googleads.v9.services.AssetGroupListingGroupFilterService", - "methods": [ - { - "shortName": "MutateAssetGroupListingGroupFilters", - "fullName": "google.ads.googleads.v9.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", + "shortName": "MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v9.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + "path": "/v9/customers/{customer_id=*}/extensionFeedItems:mutate" } ] } ] }, { - "shortName": "AssetGroupService", - "fullName": "google.ads.googleads.v9.services.AssetGroupService", + "shortName": "FeedItemService", + "fullName": "google.ads.googleads.v9.services.FeedItemService", "methods": [ { - "shortName": "GetAssetGroup", - "fullName": "google.ads.googleads.v9.services.AssetGroupService.GetAssetGroup", + "shortName": "GetFeedItem", + "fullName": "google.ads.googleads.v9.services.FeedItemService.GetFeedItem", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/assetGroups/*}" + "path": "/v9/{resource_name=customers/*/feedItems/*}" } ] }, { - "shortName": "MutateAssetGroups", - "fullName": "google.ads.googleads.v9.services.AssetGroupService.MutateAssetGroups", + "shortName": "MutateFeedItems", + "fullName": "google.ads.googleads.v9.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/assetGroups:mutate" + "path": "/v9/customers/{customer_id=*}/feedItems:mutate" } ] } ] }, { - "shortName": "AssetService", - "fullName": "google.ads.googleads.v9.services.AssetService", + "shortName": "FeedItemSetLinkService", + "fullName": "google.ads.googleads.v9.services.FeedItemSetLinkService", "methods": [ { - "shortName": "GetAsset", - "fullName": "google.ads.googleads.v9.services.AssetService.GetAsset", + "shortName": "GetFeedItemSetLink", + "fullName": "google.ads.googleads.v9.services.FeedItemSetLinkService.GetFeedItemSetLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/assets/*}" + "path": "/v9/{resource_name=customers/*/feedItemSetLinks/*}" } ] }, { - "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v9.services.AssetService.MutateAssets", + "shortName": "MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v9.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/assets:mutate" + "path": "/v9/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] } ] }, { - "shortName": "AssetSetAssetService", - "fullName": "google.ads.googleads.v9.services.AssetSetAssetService", + "shortName": "FeedItemSetService", + "fullName": "google.ads.googleads.v9.services.FeedItemSetService", "methods": [ { - "shortName": "MutateAssetSetAssets", - "fullName": "google.ads.googleads.v9.services.AssetSetAssetService.MutateAssetSetAssets", + "shortName": "GetFeedItemSet", + "fullName": "google.ads.googleads.v9.services.FeedItemSetService.GetFeedItemSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/assetSetAssets:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/feedItemSets/*}" } ] - } - ] - }, - { - "shortName": "AssetSetService", - "fullName": "google.ads.googleads.v9.services.AssetSetService", - "methods": [ + }, { - "shortName": "MutateAssetSets", - "fullName": "google.ads.googleads.v9.services.AssetSetService.MutateAssetSets", + "shortName": "MutateFeedItemSets", + "fullName": "google.ads.googleads.v9.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/assetSets:mutate" + "path": "/v9/customers/{customer_id=*}/feedItemSets:mutate" } ] } ] }, { - "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v9.services.BatchJobService", + "shortName": "FeedItemTargetService", + "fullName": "google.ads.googleads.v9.services.FeedItemTargetService", "methods": [ { - "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v9.services.BatchJobService.AddBatchJobOperations", + "shortName": "GetFeedItemTarget", + "fullName": "google.ads.googleads.v9.services.FeedItemTargetService.GetFeedItemTarget", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/{resource_name=customers/*/batchJobs/*}:addOperations" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/feedItemTargets/*}" } ] }, { - "shortName": "GetBatchJob", - "fullName": "google.ads.googleads.v9.services.BatchJobService.GetBatchJob", + "shortName": "MutateFeedItemTargets", + "fullName": "google.ads.googleads.v9.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/batchJobs/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/feedItemTargets:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedMappingService", + "fullName": "google.ads.googleads.v9.services.FeedMappingService", + "methods": [ { - "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v9.services.BatchJobService.ListBatchJobResults", + "shortName": "GetFeedMapping", + "fullName": "google.ads.googleads.v9.services.FeedMappingService.GetFeedMapping", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/batchJobs/*}:listResults" + "path": "/v9/{resource_name=customers/*/feedMappings/*}" } ] }, { - "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v9.services.BatchJobService.MutateBatchJob", + "shortName": "MutateFeedMappings", + "fullName": "google.ads.googleads.v9.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v9/customers/{customer_id=*}/feedMappings:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedPlaceholderViewService", + "fullName": "google.ads.googleads.v9.services.FeedPlaceholderViewService", + "methods": [ { - "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v9.services.BatchJobService.RunBatchJob", + "shortName": "GetFeedPlaceholderView", + "fullName": "google.ads.googleads.v9.services.FeedPlaceholderViewService.GetFeedPlaceholderView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/{resource_name=customers/*/batchJobs/*}:run" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/feedPlaceholderViews/*}" } ] } ] }, { - "shortName": "BiddingDataExclusionService", - "fullName": "google.ads.googleads.v9.services.BiddingDataExclusionService", + "shortName": "FeedService", + "fullName": "google.ads.googleads.v9.services.FeedService", "methods": [ { - "shortName": "GetBiddingDataExclusion", - "fullName": "google.ads.googleads.v9.services.BiddingDataExclusionService.GetBiddingDataExclusion", + "shortName": "GetFeed", + "fullName": "google.ads.googleads.v9.services.FeedService.GetFeed", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/biddingDataExclusions/*}" + "path": "/v9/{resource_name=customers/*/feeds/*}" } ] }, { - "shortName": "MutateBiddingDataExclusions", - "fullName": "google.ads.googleads.v9.services.BiddingDataExclusionService.MutateBiddingDataExclusions", + "shortName": "MutateFeeds", + "fullName": "google.ads.googleads.v9.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/biddingDataExclusions:mutate" + "path": "/v9/customers/{customer_id=*}/feeds:mutate" } ] } ] }, { - "shortName": "BiddingSeasonalityAdjustmentService", - "fullName": "google.ads.googleads.v9.services.BiddingSeasonalityAdjustmentService", + "shortName": "GenderViewService", + "fullName": "google.ads.googleads.v9.services.GenderViewService", "methods": [ { - "shortName": "GetBiddingSeasonalityAdjustment", - "fullName": "google.ads.googleads.v9.services.BiddingSeasonalityAdjustmentService.GetBiddingSeasonalityAdjustment", + "shortName": "GetGenderView", + "fullName": "google.ads.googleads.v9.services.GenderViewService.GetGenderView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/biddingSeasonalityAdjustments/*}" - } - ] - }, - { - "shortName": "MutateBiddingSeasonalityAdjustments", - "fullName": "google.ads.googleads.v9.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + "path": "/v9/{resource_name=customers/*/genderViews/*}" } ] } ] }, { - "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v9.services.BiddingStrategyService", + "shortName": "GeoTargetConstantService", + "fullName": "google.ads.googleads.v9.services.GeoTargetConstantService", "methods": [ { - "shortName": "GetBiddingStrategy", - "fullName": "google.ads.googleads.v9.services.BiddingStrategyService.GetBiddingStrategy", + "shortName": "GetGeoTargetConstant", + "fullName": "google.ads.googleads.v9.services.GeoTargetConstantService.GetGeoTargetConstant", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/biddingStrategies/*}" + "path": "/v9/{resource_name=geoTargetConstants/*}" } ] }, { - "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v9.services.BiddingStrategyService.MutateBiddingStrategies", + "shortName": "SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v9.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v9/geoTargetConstants:suggest" } ] } ] }, { - "shortName": "BiddingStrategySimulationService", - "fullName": "google.ads.googleads.v9.services.BiddingStrategySimulationService", + "shortName": "GeographicViewService", + "fullName": "google.ads.googleads.v9.services.GeographicViewService", "methods": [ { - "shortName": "GetBiddingStrategySimulation", - "fullName": "google.ads.googleads.v9.services.BiddingStrategySimulationService.GetBiddingStrategySimulation", + "shortName": "GetGeographicView", + "fullName": "google.ads.googleads.v9.services.GeographicViewService.GetGeographicView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/biddingStrategySimulations/*}" + "path": "/v9/{resource_name=customers/*/geographicViews/*}" } ] } ] }, { - "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v9.services.BillingSetupService", + "shortName": "GoogleAdsFieldService", + "fullName": "google.ads.googleads.v9.services.GoogleAdsFieldService", "methods": [ { - "shortName": "GetBillingSetup", - "fullName": "google.ads.googleads.v9.services.BillingSetupService.GetBillingSetup", + "shortName": "GetGoogleAdsField", + "fullName": "google.ads.googleads.v9.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/billingSetups/*}" + "path": "/v9/{resource_name=googleAdsFields/*}" } ] }, { - "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v9.services.BillingSetupService.MutateBillingSetup", + "shortName": "SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v9.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v9/googleAdsFields:search" } ] } ] }, { - "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v9.services.CampaignAssetService", + "shortName": "GoogleAdsService", + "fullName": "google.ads.googleads.v9.services.GoogleAdsService", "methods": [ { - "shortName": "GetCampaignAsset", - "fullName": "google.ads.googleads.v9.services.CampaignAssetService.GetCampaignAsset", + "shortName": "Mutate", + "fullName": "google.ads.googleads.v9.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignAssets/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/googleAds:mutate" } ] }, { - "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v9.services.CampaignAssetService.MutateCampaignAssets", + "shortName": "Search", + "fullName": "google.ads.googleads.v9.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v9/customers/{customer_id=*}/googleAds:search" } ] - } - ] - }, - { - "shortName": "CampaignAssetSetService", - "fullName": "google.ads.googleads.v9.services.CampaignAssetSetService", - "methods": [ + }, { - "shortName": "MutateCampaignAssetSets", - "fullName": "google.ads.googleads.v9.services.CampaignAssetSetService.MutateCampaignAssetSets", - "mode": "UNARY", + "shortName": "SearchStream", + "fullName": "google.ads.googleads.v9.services.GoogleAdsService.SearchStream", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignAssetSets:mutate" + "path": "/v9/customers/{customer_id=*}/googleAds:searchStream" } ] } ] }, { - "shortName": "CampaignAudienceViewService", - "fullName": "google.ads.googleads.v9.services.CampaignAudienceViewService", + "shortName": "GroupPlacementViewService", + "fullName": "google.ads.googleads.v9.services.GroupPlacementViewService", "methods": [ { - "shortName": "GetCampaignAudienceView", - "fullName": "google.ads.googleads.v9.services.CampaignAudienceViewService.GetCampaignAudienceView", + "shortName": "GetGroupPlacementView", + "fullName": "google.ads.googleads.v9.services.GroupPlacementViewService.GetGroupPlacementView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignAudienceViews/*}" + "path": "/v9/{resource_name=customers/*/groupPlacementViews/*}" } ] } ] }, { - "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v9.services.CampaignBidModifierService", + "shortName": "HotelGroupViewService", + "fullName": "google.ads.googleads.v9.services.HotelGroupViewService", "methods": [ { - "shortName": "GetCampaignBidModifier", - "fullName": "google.ads.googleads.v9.services.CampaignBidModifierService.GetCampaignBidModifier", + "shortName": "GetHotelGroupView", + "fullName": "google.ads.googleads.v9.services.HotelGroupViewService.GetHotelGroupView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignBidModifiers/*}" - } - ] - }, - { - "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v9.services.CampaignBidModifierService.MutateCampaignBidModifiers", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v9/{resource_name=customers/*/hotelGroupViews/*}" } ] } ] }, { - "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v9.services.CampaignBudgetService", + "shortName": "HotelPerformanceViewService", + "fullName": "google.ads.googleads.v9.services.HotelPerformanceViewService", "methods": [ { - "shortName": "GetCampaignBudget", - "fullName": "google.ads.googleads.v9.services.CampaignBudgetService.GetCampaignBudget", + "shortName": "GetHotelPerformanceView", + "fullName": "google.ads.googleads.v9.services.HotelPerformanceViewService.GetHotelPerformanceView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignBudgets/*}" + "path": "/v9/{resource_name=customers/*/hotelPerformanceView}" } ] - }, + } + ] + }, + { + "shortName": "IncomeRangeViewService", + "fullName": "google.ads.googleads.v9.services.IncomeRangeViewService", + "methods": [ { - "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v9.services.CampaignBudgetService.MutateCampaignBudgets", + "shortName": "GetIncomeRangeView", + "fullName": "google.ads.googleads.v9.services.IncomeRangeViewService.GetIncomeRangeView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignBudgets:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/incomeRangeViews/*}" } ] } ] }, { - "shortName": "CampaignConversionGoalService", - "fullName": "google.ads.googleads.v9.services.CampaignConversionGoalService", + "shortName": "InvoiceService", + "fullName": "google.ads.googleads.v9.services.InvoiceService", "methods": [ { - "shortName": "MutateCampaignConversionGoals", - "fullName": "google.ads.googleads.v9.services.CampaignConversionGoalService.MutateCampaignConversionGoals", + "shortName": "ListInvoices", + "fullName": "google.ads.googleads.v9.services.InvoiceService.ListInvoices", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignConversionGoals:mutate" + "httpMethod": "GET", + "path": "/v9/customers/{customer_id=*}/invoices" } ] } ] }, { - "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v9.services.CampaignCriterionService", + "shortName": "KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupKeywordService", "methods": [ { - "shortName": "GetCampaignCriterion", - "fullName": "google.ads.googleads.v9.services.CampaignCriterionService.GetCampaignCriterion", + "shortName": "GetKeywordPlanAdGroupKeyword", + "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignCriteria/*}" + "path": "/v9/{resource_name=customers/*/keywordPlanAdGroupKeywords/*}" } ] }, { - "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v9.services.CampaignCriterionService.MutateCampaignCriteria", + "shortName": "MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v9/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] } ] }, { - "shortName": "CampaignCriterionSimulationService", - "fullName": "google.ads.googleads.v9.services.CampaignCriterionSimulationService", + "shortName": "KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupService", "methods": [ { - "shortName": "GetCampaignCriterionSimulation", - "fullName": "google.ads.googleads.v9.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation", + "shortName": "GetKeywordPlanAdGroup", + "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignCriterionSimulations/*}" + "path": "/v9/{resource_name=customers/*/keywordPlanAdGroups/*}" } ] - } - ] - }, - { - "shortName": "CampaignCustomizerService", - "fullName": "google.ads.googleads.v9.services.CampaignCustomizerService", - "methods": [ + }, { - "shortName": "MutateCampaignCustomizers", - "fullName": "google.ads.googleads.v9.services.CampaignCustomizerService.MutateCampaignCustomizers", + "shortName": "MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignCustomizers:mutate" + "path": "/v9/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] } ] }, { - "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v9.services.CampaignDraftService", + "shortName": "KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignKeywordService", "methods": [ { - "shortName": "GetCampaignDraft", - "fullName": "google.ads.googleads.v9.services.CampaignDraftService.GetCampaignDraft", + "shortName": "GetKeywordPlanCampaignKeyword", + "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignDrafts/*}" + "path": "/v9/{resource_name=customers/*/keywordPlanCampaignKeywords/*}" } ] }, { - "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v9.services.CampaignDraftService.ListCampaignDraftAsyncErrors", + "shortName": "MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + } + ] + } + ] + }, + { + "shortName": "KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignService", + "methods": [ + { + "shortName": "GetKeywordPlanCampaign", + "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignService.GetKeywordPlanCampaign", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + "path": "/v9/{resource_name=customers/*/keywordPlanCampaigns/*}" } ] }, { - "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v9.services.CampaignDraftService.MutateCampaignDrafts", + "shortName": "MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignDrafts:mutate" + "path": "/v9/customers/{customer_id=*}/keywordPlanCampaigns:mutate" } ] - }, + } + ] + }, + { + "shortName": "KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v9.services.KeywordPlanIdeaService", + "methods": [ { - "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v9.services.CampaignDraftService.PromoteCampaignDraft", + "shortName": "GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v9.services.KeywordPlanIdeaService.GenerateKeywordIdeas", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v9/customers/{customer_id=*}:generateKeywordIdeas" } ] } ] }, { - "shortName": "CampaignExperimentService", - "fullName": "google.ads.googleads.v9.services.CampaignExperimentService", + "shortName": "KeywordPlanService", + "fullName": "google.ads.googleads.v9.services.KeywordPlanService", "methods": [ { - "shortName": "CreateCampaignExperiment", - "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.CreateCampaignExperiment", + "shortName": "GenerateForecastCurve", + "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GenerateForecastCurve", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignExperiments:create" + "path": "/v9/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" } ] }, { - "shortName": "EndCampaignExperiment", - "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.EndCampaignExperiment", + "shortName": "GenerateForecastMetrics", + "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GenerateForecastMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/{campaign_experiment=customers/*/campaignExperiments/*}:end" + "path": "/v9/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" } ] }, { - "shortName": "GetCampaignExperiment", - "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.GetCampaignExperiment", + "shortName": "GenerateForecastTimeSeries", + "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GenerateForecastTimeSeries", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignExperiments/*}" + "httpMethod": "POST", + "path": "/v9/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" } ] }, { - "shortName": "GraduateCampaignExperiment", - "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.GraduateCampaignExperiment", + "shortName": "GenerateHistoricalMetrics", + "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GenerateHistoricalMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" + "path": "/v9/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" } ] }, { - "shortName": "ListCampaignExperimentAsyncErrors", - "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors", + "shortName": "GetKeywordPlan", + "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GetKeywordPlan", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" + "path": "/v9/{resource_name=customers/*/keywordPlans/*}" } ] }, { - "shortName": "MutateCampaignExperiments", - "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.MutateCampaignExperiments", + "shortName": "MutateKeywordPlans", + "fullName": "google.ads.googleads.v9.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignExperiments:mutate" - } - ] - }, - { - "shortName": "PromoteCampaignExperiment", - "fullName": "google.ads.googleads.v9.services.CampaignExperimentService.PromoteCampaignExperiment", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/{campaign_experiment=customers/*/campaignExperiments/*}:promote" + "path": "/v9/customers/{customer_id=*}/keywordPlans:mutate" } ] } ] }, { - "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v9.services.CampaignExtensionSettingService", + "shortName": "KeywordThemeConstantService", + "fullName": "google.ads.googleads.v9.services.KeywordThemeConstantService", "methods": [ { - "shortName": "GetCampaignExtensionSetting", - "fullName": "google.ads.googleads.v9.services.CampaignExtensionSettingService.GetCampaignExtensionSetting", + "shortName": "GetKeywordThemeConstant", + "fullName": "google.ads.googleads.v9.services.KeywordThemeConstantService.GetKeywordThemeConstant", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignExtensionSettings/*}" + "path": "/v9/{resource_name=keywordThemeConstants/*}" } ] }, { - "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v9.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "shortName": "SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v9.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignExtensionSettings:mutate" + "path": "/v9/keywordThemeConstants:suggest" } ] } ] }, { - "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v9.services.CampaignFeedService", + "shortName": "KeywordViewService", + "fullName": "google.ads.googleads.v9.services.KeywordViewService", "methods": [ { - "shortName": "GetCampaignFeed", - "fullName": "google.ads.googleads.v9.services.CampaignFeedService.GetCampaignFeed", + "shortName": "GetKeywordView", + "fullName": "google.ads.googleads.v9.services.KeywordViewService.GetKeywordView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignFeeds/*}" - } - ] - }, - { - "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v9.services.CampaignFeedService.MutateCampaignFeeds", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v9/{resource_name=customers/*/keywordViews/*}" } ] } ] }, { - "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v9.services.CampaignLabelService", + "shortName": "LabelService", + "fullName": "google.ads.googleads.v9.services.LabelService", "methods": [ { - "shortName": "GetCampaignLabel", - "fullName": "google.ads.googleads.v9.services.CampaignLabelService.GetCampaignLabel", + "shortName": "GetLabel", + "fullName": "google.ads.googleads.v9.services.LabelService.GetLabel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignLabels/*}" + "path": "/v9/{resource_name=customers/*/labels/*}" } ] }, { - "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v9.services.CampaignLabelService.MutateCampaignLabels", + "shortName": "MutateLabels", + "fullName": "google.ads.googleads.v9.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v9/customers/{customer_id=*}/labels:mutate" } ] } ] }, { - "shortName": "CampaignService", - "fullName": "google.ads.googleads.v9.services.CampaignService", + "shortName": "LandingPageViewService", + "fullName": "google.ads.googleads.v9.services.LandingPageViewService", "methods": [ { - "shortName": "GetCampaign", - "fullName": "google.ads.googleads.v9.services.CampaignService.GetCampaign", + "shortName": "GetLandingPageView", + "fullName": "google.ads.googleads.v9.services.LandingPageViewService.GetLandingPageView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaigns/*}" - } - ] - }, - { - "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v9.services.CampaignService.MutateCampaigns", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaigns:mutate" + "path": "/v9/{resource_name=customers/*/landingPageViews/*}" } ] } ] }, { - "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v9.services.CampaignSharedSetService", + "shortName": "LanguageConstantService", + "fullName": "google.ads.googleads.v9.services.LanguageConstantService", "methods": [ { - "shortName": "GetCampaignSharedSet", - "fullName": "google.ads.googleads.v9.services.CampaignSharedSetService.GetCampaignSharedSet", + "shortName": "GetLanguageConstant", + "fullName": "google.ads.googleads.v9.services.LanguageConstantService.GetLanguageConstant", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignSharedSets/*}" - } - ] - }, - { - "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v9.services.CampaignSharedSetService.MutateCampaignSharedSets", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v9/{resource_name=languageConstants/*}" } ] } ] }, { - "shortName": "CampaignSimulationService", - "fullName": "google.ads.googleads.v9.services.CampaignSimulationService", + "shortName": "LifeEventService", + "fullName": "google.ads.googleads.v9.services.LifeEventService", "methods": [ { - "shortName": "GetCampaignSimulation", - "fullName": "google.ads.googleads.v9.services.CampaignSimulationService.GetCampaignSimulation", + "shortName": "GetLifeEvent", + "fullName": "google.ads.googleads.v9.services.LifeEventService.GetLifeEvent", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/campaignSimulations/*}" + "path": "/v9/{resource_name=customers/*/lifeEvents/*}" } ] } ] }, { - "shortName": "CarrierConstantService", - "fullName": "google.ads.googleads.v9.services.CarrierConstantService", + "shortName": "LocationViewService", + "fullName": "google.ads.googleads.v9.services.LocationViewService", "methods": [ { - "shortName": "GetCarrierConstant", - "fullName": "google.ads.googleads.v9.services.CarrierConstantService.GetCarrierConstant", + "shortName": "GetLocationView", + "fullName": "google.ads.googleads.v9.services.LocationViewService.GetLocationView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=carrierConstants/*}" + "path": "/v9/{resource_name=customers/*/locationViews/*}" } ] } ] }, { - "shortName": "ChangeStatusService", - "fullName": "google.ads.googleads.v9.services.ChangeStatusService", + "shortName": "ManagedPlacementViewService", + "fullName": "google.ads.googleads.v9.services.ManagedPlacementViewService", "methods": [ { - "shortName": "GetChangeStatus", - "fullName": "google.ads.googleads.v9.services.ChangeStatusService.GetChangeStatus", + "shortName": "GetManagedPlacementView", + "fullName": "google.ads.googleads.v9.services.ManagedPlacementViewService.GetManagedPlacementView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/changeStatus/*}" + "path": "/v9/{resource_name=customers/*/managedPlacementViews/*}" } ] } ] }, { - "shortName": "ClickViewService", - "fullName": "google.ads.googleads.v9.services.ClickViewService", + "shortName": "MediaFileService", + "fullName": "google.ads.googleads.v9.services.MediaFileService", "methods": [ { - "shortName": "GetClickView", - "fullName": "google.ads.googleads.v9.services.ClickViewService.GetClickView", + "shortName": "GetMediaFile", + "fullName": "google.ads.googleads.v9.services.MediaFileService.GetMediaFile", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/clickViews/*}" + "path": "/v9/{resource_name=customers/*/mediaFiles/*}" } ] - } - ] - }, - { - "shortName": "CombinedAudienceService", - "fullName": "google.ads.googleads.v9.services.CombinedAudienceService", - "methods": [ + }, { - "shortName": "GetCombinedAudience", - "fullName": "google.ads.googleads.v9.services.CombinedAudienceService.GetCombinedAudience", + "shortName": "MutateMediaFiles", + "fullName": "google.ads.googleads.v9.services.MediaFileService.MutateMediaFiles", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/combinedAudiences/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/mediaFiles:mutate" } ] } ] }, { - "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v9.services.ConversionActionService", + "shortName": "MerchantCenterLinkService", + "fullName": "google.ads.googleads.v9.services.MerchantCenterLinkService", "methods": [ { - "shortName": "GetConversionAction", - "fullName": "google.ads.googleads.v9.services.ConversionActionService.GetConversionAction", + "shortName": "GetMerchantCenterLink", + "fullName": "google.ads.googleads.v9.services.MerchantCenterLinkService.GetMerchantCenterLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/conversionActions/*}" + "path": "/v9/{resource_name=customers/*/merchantCenterLinks/*}" } ] }, { - "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v9.services.ConversionActionService.MutateConversionActions", + "shortName": "ListMerchantCenterLinks", + "fullName": "google.ads.googleads.v9.services.MerchantCenterLinkService.ListMerchantCenterLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/conversionActions:mutate" + "httpMethod": "GET", + "path": "/v9/customers/{customer_id=*}/merchantCenterLinks" } ] - } - ] - }, - { - "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v9.services.ConversionAdjustmentUploadService", - "methods": [ + }, { - "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v9.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "shortName": "MutateMerchantCenterLink", + "fullName": "google.ads.googleads.v9.services.MerchantCenterLinkService.MutateMerchantCenterLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:uploadConversionAdjustments" + "path": "/v9/customers/{customer_id=*}/merchantCenterLinks:mutate" } ] } ] }, { - "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v9.services.ConversionCustomVariableService", + "shortName": "MobileAppCategoryConstantService", + "fullName": "google.ads.googleads.v9.services.MobileAppCategoryConstantService", "methods": [ { - "shortName": "GetConversionCustomVariable", - "fullName": "google.ads.googleads.v9.services.ConversionCustomVariableService.GetConversionCustomVariable", + "shortName": "GetMobileAppCategoryConstant", + "fullName": "google.ads.googleads.v9.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/conversionCustomVariables/*}" - } - ] - }, - { - "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v9.services.ConversionCustomVariableService.MutateConversionCustomVariables", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v9/{resource_name=mobileAppCategoryConstants/*}" } ] } ] }, { - "shortName": "ConversionGoalCampaignConfigService", - "fullName": "google.ads.googleads.v9.services.ConversionGoalCampaignConfigService", + "shortName": "MobileDeviceConstantService", + "fullName": "google.ads.googleads.v9.services.MobileDeviceConstantService", "methods": [ { - "shortName": "MutateConversionGoalCampaignConfigs", - "fullName": "google.ads.googleads.v9.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", + "shortName": "GetMobileDeviceConstant", + "fullName": "google.ads.googleads.v9.services.MobileDeviceConstantService.GetMobileDeviceConstant", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=mobileDeviceConstants/*}" } ] } ] }, { - "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v9.services.ConversionUploadService", + "shortName": "OfflineUserDataJobService", + "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService", "methods": [ { - "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v9.services.ConversionUploadService.UploadCallConversions", + "shortName": "AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:uploadCallConversions" + "path": "/v9/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] }, { - "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v9.services.ConversionUploadService.UploadClickConversions", + "shortName": "CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:uploadClickConversions" + "path": "/v9/customers/{customer_id=*}/offlineUserDataJobs:create" } ] - } - ] - }, - { - "shortName": "ConversionValueRuleService", - "fullName": "google.ads.googleads.v9.services.ConversionValueRuleService", - "methods": [ + }, { - "shortName": "GetConversionValueRule", - "fullName": "google.ads.googleads.v9.services.ConversionValueRuleService.GetConversionValueRule", + "shortName": "GetOfflineUserDataJob", + "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService.GetOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/conversionValueRules/*}" + "path": "/v9/{resource_name=customers/*/offlineUserDataJobs/*}" } ] }, { - "shortName": "MutateConversionValueRules", - "fullName": "google.ads.googleads.v9.services.ConversionValueRuleService.MutateConversionValueRules", + "shortName": "RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService.RunOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/conversionValueRules:mutate" + "path": "/v9/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } ] }, { - "shortName": "ConversionValueRuleSetService", - "fullName": "google.ads.googleads.v9.services.ConversionValueRuleSetService", + "shortName": "OperatingSystemVersionConstantService", + "fullName": "google.ads.googleads.v9.services.OperatingSystemVersionConstantService", "methods": [ { - "shortName": "GetConversionValueRuleSet", - "fullName": "google.ads.googleads.v9.services.ConversionValueRuleSetService.GetConversionValueRuleSet", + "shortName": "GetOperatingSystemVersionConstant", + "fullName": "google.ads.googleads.v9.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/conversionValueRuleSets/*}" + "path": "/v9/{resource_name=operatingSystemVersionConstants/*}" } ] - }, + } + ] + }, + { + "shortName": "PaidOrganicSearchTermViewService", + "fullName": "google.ads.googleads.v9.services.PaidOrganicSearchTermViewService", + "methods": [ { - "shortName": "MutateConversionValueRuleSets", - "fullName": "google.ads.googleads.v9.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", + "shortName": "GetPaidOrganicSearchTermView", + "fullName": "google.ads.googleads.v9.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/conversionValueRuleSets:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/paidOrganicSearchTermViews/*}" } ] } ] }, { - "shortName": "CurrencyConstantService", - "fullName": "google.ads.googleads.v9.services.CurrencyConstantService", + "shortName": "ParentalStatusViewService", + "fullName": "google.ads.googleads.v9.services.ParentalStatusViewService", "methods": [ { - "shortName": "GetCurrencyConstant", - "fullName": "google.ads.googleads.v9.services.CurrencyConstantService.GetCurrencyConstant", + "shortName": "GetParentalStatusView", + "fullName": "google.ads.googleads.v9.services.ParentalStatusViewService.GetParentalStatusView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=currencyConstants/*}" + "path": "/v9/{resource_name=customers/*/parentalStatusViews/*}" } ] } ] }, { - "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v9.services.CustomAudienceService", + "shortName": "PaymentsAccountService", + "fullName": "google.ads.googleads.v9.services.PaymentsAccountService", "methods": [ { - "shortName": "GetCustomAudience", - "fullName": "google.ads.googleads.v9.services.CustomAudienceService.GetCustomAudience", + "shortName": "ListPaymentsAccounts", + "fullName": "google.ads.googleads.v9.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customAudiences/*}" + "path": "/v9/customers/{customer_id=*}/paymentsAccounts" } ] - }, + } + ] + }, + { + "shortName": "ProductBiddingCategoryConstantService", + "fullName": "google.ads.googleads.v9.services.ProductBiddingCategoryConstantService", + "methods": [ { - "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v9.services.CustomAudienceService.MutateCustomAudiences", + "shortName": "GetProductBiddingCategoryConstant", + "fullName": "google.ads.googleads.v9.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customAudiences:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=productBiddingCategoryConstants/*}" } ] } ] }, { - "shortName": "CustomConversionGoalService", - "fullName": "google.ads.googleads.v9.services.CustomConversionGoalService", + "shortName": "ProductGroupViewService", + "fullName": "google.ads.googleads.v9.services.ProductGroupViewService", "methods": [ { - "shortName": "MutateCustomConversionGoals", - "fullName": "google.ads.googleads.v9.services.CustomConversionGoalService.MutateCustomConversionGoals", + "shortName": "GetProductGroupView", + "fullName": "google.ads.googleads.v9.services.ProductGroupViewService.GetProductGroupView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customConversionGoals:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/productGroupViews/*}" } ] } ] }, { - "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v9.services.CustomInterestService", + "shortName": "ReachPlanService", + "fullName": "google.ads.googleads.v9.services.ReachPlanService", "methods": [ { - "shortName": "GetCustomInterest", - "fullName": "google.ads.googleads.v9.services.CustomInterestService.GetCustomInterest", + "shortName": "GenerateProductMixIdeas", + "fullName": "google.ads.googleads.v9.services.ReachPlanService.GenerateProductMixIdeas", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customInterests/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}:generateProductMixIdeas" } ] }, { - "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v9.services.CustomInterestService.MutateCustomInterests", + "shortName": "GenerateReachForecast", + "fullName": "google.ads.googleads.v9.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customInterests:mutate" + "path": "/v9/customers/{customer_id=*}:generateReachForecast" } ] - } - ] - }, - { - "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v9.services.CustomerAssetService", - "methods": [ + }, { - "shortName": "GetCustomerAsset", - "fullName": "google.ads.googleads.v9.services.CustomerAssetService.GetCustomerAsset", + "shortName": "ListPlannableLocations", + "fullName": "google.ads.googleads.v9.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerAssets/*}" + "httpMethod": "POST", + "path": "/v9:listPlannableLocations" } ] }, { - "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v9.services.CustomerAssetService.MutateCustomerAssets", + "shortName": "ListPlannableProducts", + "fullName": "google.ads.googleads.v9.services.ReachPlanService.ListPlannableProducts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerAssets:mutate" + "path": "/v9:listPlannableProducts" } ] } ] }, { - "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v9.services.CustomerClientLinkService", + "shortName": "RecommendationService", + "fullName": "google.ads.googleads.v9.services.RecommendationService", "methods": [ { - "shortName": "GetCustomerClientLink", - "fullName": "google.ads.googleads.v9.services.CustomerClientLinkService.GetCustomerClientLink", + "shortName": "ApplyRecommendation", + "fullName": "google.ads.googleads.v9.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerClientLinks/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/recommendations:apply" } ] }, { - "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v9.services.CustomerClientLinkService.MutateCustomerClientLink", + "shortName": "DismissRecommendation", + "fullName": "google.ads.googleads.v9.services.RecommendationService.DismissRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v9/customers/{customer_id=*}/recommendations:dismiss" } ] - } - ] - }, - { - "shortName": "CustomerClientService", - "fullName": "google.ads.googleads.v9.services.CustomerClientService", - "methods": [ + }, { - "shortName": "GetCustomerClient", - "fullName": "google.ads.googleads.v9.services.CustomerClientService.GetCustomerClient", + "shortName": "GetRecommendation", + "fullName": "google.ads.googleads.v9.services.RecommendationService.GetRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerClients/*}" + "path": "/v9/{resource_name=customers/*/recommendations/*}" } ] } ] }, { - "shortName": "CustomerConversionGoalService", - "fullName": "google.ads.googleads.v9.services.CustomerConversionGoalService", + "shortName": "RemarketingActionService", + "fullName": "google.ads.googleads.v9.services.RemarketingActionService", "methods": [ { - "shortName": "MutateCustomerConversionGoals", - "fullName": "google.ads.googleads.v9.services.CustomerConversionGoalService.MutateCustomerConversionGoals", + "shortName": "GetRemarketingAction", + "fullName": "google.ads.googleads.v9.services.RemarketingActionService.GetRemarketingAction", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/remarketingActions/*}" + } + ] + }, + { + "shortName": "MutateRemarketingActions", + "fullName": "google.ads.googleads.v9.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerConversionGoals:mutate" + "path": "/v9/customers/{customer_id=*}/remarketingActions:mutate" } ] } ] }, { - "shortName": "CustomerCustomizerService", - "fullName": "google.ads.googleads.v9.services.CustomerCustomizerService", + "shortName": "SearchTermViewService", + "fullName": "google.ads.googleads.v9.services.SearchTermViewService", "methods": [ { - "shortName": "MutateCustomerCustomizers", - "fullName": "google.ads.googleads.v9.services.CustomerCustomizerService.MutateCustomerCustomizers", + "shortName": "GetSearchTermView", + "fullName": "google.ads.googleads.v9.services.SearchTermViewService.GetSearchTermView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/CustomerCustomizers:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/searchTermViews/*}" } ] } ] }, { - "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v9.services.CustomerExtensionSettingService", + "shortName": "SharedCriterionService", + "fullName": "google.ads.googleads.v9.services.SharedCriterionService", "methods": [ { - "shortName": "GetCustomerExtensionSetting", - "fullName": "google.ads.googleads.v9.services.CustomerExtensionSettingService.GetCustomerExtensionSetting", + "shortName": "GetSharedCriterion", + "fullName": "google.ads.googleads.v9.services.SharedCriterionService.GetSharedCriterion", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerExtensionSettings/*}" + "path": "/v9/{resource_name=customers/*/sharedCriteria/*}" } ] }, { - "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v9.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "shortName": "MutateSharedCriteria", + "fullName": "google.ads.googleads.v9.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v9/customers/{customer_id=*}/sharedCriteria:mutate" } ] } ] }, { - "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v9.services.CustomerFeedService", + "shortName": "SharedSetService", + "fullName": "google.ads.googleads.v9.services.SharedSetService", "methods": [ { - "shortName": "GetCustomerFeed", - "fullName": "google.ads.googleads.v9.services.CustomerFeedService.GetCustomerFeed", + "shortName": "GetSharedSet", + "fullName": "google.ads.googleads.v9.services.SharedSetService.GetSharedSet", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerFeeds/*}" + "path": "/v9/{resource_name=customers/*/sharedSets/*}" } ] }, { - "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v9.services.CustomerFeedService.MutateCustomerFeeds", + "shortName": "MutateSharedSets", + "fullName": "google.ads.googleads.v9.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerFeeds:mutate" + "path": "/v9/customers/{customer_id=*}/sharedSets:mutate" } ] } ] }, { - "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v9.services.CustomerLabelService", + "shortName": "ShoppingPerformanceViewService", + "fullName": "google.ads.googleads.v9.services.ShoppingPerformanceViewService", "methods": [ { - "shortName": "GetCustomerLabel", - "fullName": "google.ads.googleads.v9.services.CustomerLabelService.GetCustomerLabel", + "shortName": "GetShoppingPerformanceView", + "fullName": "google.ads.googleads.v9.services.ShoppingPerformanceViewService.GetShoppingPerformanceView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerLabels/*}" + "path": "/v9/{resource_name=customers/*/shoppingPerformanceView}" } ] - }, + } + ] + }, + { + "shortName": "SmartCampaignSearchTermViewService", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSearchTermViewService", + "methods": [ { - "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v9.services.CustomerLabelService.MutateCustomerLabels", + "shortName": "GetSmartCampaignSearchTermView", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSearchTermViewService.GetSmartCampaignSearchTermView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerLabels:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/smartCampaignSearchTermViews/*}" } ] } ] }, { - "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v9.services.CustomerManagerLinkService", + "shortName": "SmartCampaignSettingService", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSettingService", "methods": [ { - "shortName": "GetCustomerManagerLink", - "fullName": "google.ads.googleads.v9.services.CustomerManagerLinkService.GetCustomerManagerLink", + "shortName": "GetSmartCampaignSetting", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSettingService.GetSmartCampaignSetting", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerManagerLinks/*}" + "path": "/v9/{resource_name=customers/*/smartCampaignSettings/*}" } ] }, { - "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v9.services.CustomerManagerLinkService.MoveManagerLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" - } - ] - }, - { - "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v9.services.CustomerManagerLinkService.MutateCustomerManagerLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerManagerLinks:mutate" - } - ] - } - ] - }, - { - "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v9.services.CustomerNegativeCriterionService", - "methods": [ - { - "shortName": "GetCustomerNegativeCriterion", - "fullName": "google.ads.googleads.v9.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerNegativeCriteria/*}" - } - ] - }, - { - "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v9.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", + "shortName": "MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v9/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] } ] }, { - "shortName": "CustomerService", - "fullName": "google.ads.googleads.v9.services.CustomerService", + "shortName": "SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSuggestService", "methods": [ { - "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v9.services.CustomerService.CreateCustomerClient", + "shortName": "SuggestKeywordThemes", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:createCustomerClient" - } - ] - }, - { - "shortName": "GetCustomer", - "fullName": "google.ads.googleads.v9.services.CustomerService.GetCustomer", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*}" + "path": "/v9/customers/{customer_id=*}:suggestKeywordThemes" } ] }, { - "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v9.services.CustomerService.ListAccessibleCustomers", + "shortName": "SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/customers:listAccessibleCustomers" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { - "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v9.services.CustomerService.MutateCustomer", + "shortName": "SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v9.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:mutate" + "path": "/v9/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] } ] }, { - "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v9.services.CustomerUserAccessInvitationService", + "shortName": "ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v9.services.ThirdPartyAppAnalyticsLinkService", "methods": [ { - "shortName": "GetCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v9.services.CustomerUserAccessInvitationService.GetCustomerUserAccessInvitation", + "shortName": "GetThirdPartyAppAnalyticsLink", + "fullName": "google.ads.googleads.v9.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerUserAccessInvitations/*}" + "path": "/v9/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}" } ] }, { - "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v9.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "shortName": "RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v9.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v9/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] } ] }, { - "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v9.services.CustomerUserAccessService", + "shortName": "TopicConstantService", + "fullName": "google.ads.googleads.v9.services.TopicConstantService", "methods": [ { - "shortName": "GetCustomerUserAccess", - "fullName": "google.ads.googleads.v9.services.CustomerUserAccessService.GetCustomerUserAccess", + "shortName": "GetTopicConstant", + "fullName": "google.ads.googleads.v9.services.TopicConstantService.GetTopicConstant", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/customerUserAccesses/*}" - } - ] - }, - { - "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v9.services.CustomerUserAccessService.MutateCustomerUserAccess", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v9/{resource_name=topicConstants/*}" } ] } ] }, { - "shortName": "CustomizerAttributeService", - "fullName": "google.ads.googleads.v9.services.CustomizerAttributeService", + "shortName": "TopicViewService", + "fullName": "google.ads.googleads.v9.services.TopicViewService", "methods": [ { - "shortName": "MutateCustomizerAttributes", - "fullName": "google.ads.googleads.v9.services.CustomizerAttributeService.MutateCustomizerAttributes", + "shortName": "GetTopicView", + "fullName": "google.ads.googleads.v9.services.TopicViewService.GetTopicView", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/customizerAttributes:mutate" + "httpMethod": "GET", + "path": "/v9/{resource_name=customers/*/topicViews/*}" } ] } ] }, { - "shortName": "DetailPlacementViewService", - "fullName": "google.ads.googleads.v9.services.DetailPlacementViewService", + "shortName": "UserDataService", + "fullName": "google.ads.googleads.v9.services.UserDataService", "methods": [ { - "shortName": "GetDetailPlacementView", - "fullName": "google.ads.googleads.v9.services.DetailPlacementViewService.GetDetailPlacementView", + "shortName": "UploadUserData", + "fullName": "google.ads.googleads.v9.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/detailPlacementViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}:uploadUserData" } ] } ] }, { - "shortName": "DetailedDemographicService", - "fullName": "google.ads.googleads.v9.services.DetailedDemographicService", + "shortName": "UserInterestService", + "fullName": "google.ads.googleads.v9.services.UserInterestService", "methods": [ { - "shortName": "GetDetailedDemographic", - "fullName": "google.ads.googleads.v9.services.DetailedDemographicService.GetDetailedDemographic", + "shortName": "GetUserInterest", + "fullName": "google.ads.googleads.v9.services.UserInterestService.GetUserInterest", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/detailedDemographics/*}" + "path": "/v9/{resource_name=customers/*/userInterests/*}" } ] } ] }, { - "shortName": "DisplayKeywordViewService", - "fullName": "google.ads.googleads.v9.services.DisplayKeywordViewService", + "shortName": "UserListService", + "fullName": "google.ads.googleads.v9.services.UserListService", "methods": [ { - "shortName": "GetDisplayKeywordView", - "fullName": "google.ads.googleads.v9.services.DisplayKeywordViewService.GetDisplayKeywordView", + "shortName": "GetUserList", + "fullName": "google.ads.googleads.v9.services.UserListService.GetUserList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/displayKeywordViews/*}" + "path": "/v9/{resource_name=customers/*/userLists/*}" } ] - } - ] - }, - { - "shortName": "DistanceViewService", - "fullName": "google.ads.googleads.v9.services.DistanceViewService", - "methods": [ + }, { - "shortName": "GetDistanceView", - "fullName": "google.ads.googleads.v9.services.DistanceViewService.GetDistanceView", + "shortName": "MutateUserLists", + "fullName": "google.ads.googleads.v9.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/distanceViews/*}" + "httpMethod": "POST", + "path": "/v9/customers/{customer_id=*}/userLists:mutate" } ] } ] }, { - "shortName": "DomainCategoryService", - "fullName": "google.ads.googleads.v9.services.DomainCategoryService", + "shortName": "UserLocationViewService", + "fullName": "google.ads.googleads.v9.services.UserLocationViewService", "methods": [ { - "shortName": "GetDomainCategory", - "fullName": "google.ads.googleads.v9.services.DomainCategoryService.GetDomainCategory", + "shortName": "GetUserLocationView", + "fullName": "google.ads.googleads.v9.services.UserLocationViewService.GetUserLocationView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/domainCategories/*}" + "path": "/v9/{resource_name=customers/*/userLocationViews/*}" } ] } ] }, { - "shortName": "DynamicSearchAdsSearchTermViewService", - "fullName": "google.ads.googleads.v9.services.DynamicSearchAdsSearchTermViewService", + "shortName": "VideoService", + "fullName": "google.ads.googleads.v9.services.VideoService", "methods": [ { - "shortName": "GetDynamicSearchAdsSearchTermView", - "fullName": "google.ads.googleads.v9.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView", + "shortName": "GetVideo", + "fullName": "google.ads.googleads.v9.services.VideoService.GetVideo", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}" + "path": "/v9/{resource_name=customers/*/videos/*}" } ] } ] }, { - "shortName": "ExpandedLandingPageViewService", - "fullName": "google.ads.googleads.v9.services.ExpandedLandingPageViewService", + "shortName": "WebpageViewService", + "fullName": "google.ads.googleads.v9.services.WebpageViewService", "methods": [ { - "shortName": "GetExpandedLandingPageView", - "fullName": "google.ads.googleads.v9.services.ExpandedLandingPageViewService.GetExpandedLandingPageView", + "shortName": "GetWebpageView", + "fullName": "google.ads.googleads.v9.services.WebpageViewService.GetWebpageView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/expandedLandingPageViews/*}" + "path": "/v9/{resource_name=customers/*/webpageViews/*}" } ] } ] + } + ], + "configFile": "googleads_v9.yaml", + "serviceConfigApiNames": [ + "google.ads.googleads.v9.services.AccessibleBiddingStrategyService", + "google.ads.googleads.v9.services.AccountBudgetProposalService", + "google.ads.googleads.v9.services.AccountBudgetService", + "google.ads.googleads.v9.services.AccountLinkService", + "google.ads.googleads.v9.services.AdGroupAdAssetViewService", + "google.ads.googleads.v9.services.AdGroupAdLabelService", + "google.ads.googleads.v9.services.AdGroupAdService", + "google.ads.googleads.v9.services.AdGroupAssetService", + "google.ads.googleads.v9.services.AdGroupAudienceViewService", + "google.ads.googleads.v9.services.AdGroupBidModifierService", + "google.ads.googleads.v9.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v9.services.AdGroupCriterionLabelService", + "google.ads.googleads.v9.services.AdGroupCriterionService", + "google.ads.googleads.v9.services.AdGroupCriterionSimulationService", + "google.ads.googleads.v9.services.AdGroupCustomizerService", + "google.ads.googleads.v9.services.AdGroupExtensionSettingService", + "google.ads.googleads.v9.services.AdGroupFeedService", + "google.ads.googleads.v9.services.AdGroupLabelService", + "google.ads.googleads.v9.services.AdGroupService", + "google.ads.googleads.v9.services.AdGroupSimulationService", + "google.ads.googleads.v9.services.AdParameterService", + "google.ads.googleads.v9.services.AdScheduleViewService", + "google.ads.googleads.v9.services.AdService", + "google.ads.googleads.v9.services.AgeRangeViewService", + "google.ads.googleads.v9.services.AssetFieldTypeViewService", + "google.ads.googleads.v9.services.AssetGroupAssetService", + "google.ads.googleads.v9.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v9.services.AssetGroupService", + "google.ads.googleads.v9.services.AssetService", + "google.ads.googleads.v9.services.AssetSetAssetService", + "google.ads.googleads.v9.services.AssetSetService", + "google.ads.googleads.v9.services.BatchJobService", + "google.ads.googleads.v9.services.BiddingDataExclusionService", + "google.ads.googleads.v9.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v9.services.BiddingStrategyService", + "google.ads.googleads.v9.services.BiddingStrategySimulationService", + "google.ads.googleads.v9.services.BillingSetupService", + "google.ads.googleads.v9.services.CampaignAssetService", + "google.ads.googleads.v9.services.CampaignAssetSetService", + "google.ads.googleads.v9.services.CampaignAudienceViewService", + "google.ads.googleads.v9.services.CampaignBidModifierService", + "google.ads.googleads.v9.services.CampaignBudgetService", + "google.ads.googleads.v9.services.CampaignConversionGoalService", + "google.ads.googleads.v9.services.CampaignCriterionService", + "google.ads.googleads.v9.services.CampaignCriterionSimulationService", + "google.ads.googleads.v9.services.CampaignCustomizerService", + "google.ads.googleads.v9.services.CampaignDraftService", + "google.ads.googleads.v9.services.CampaignExperimentService", + "google.ads.googleads.v9.services.CampaignExtensionSettingService", + "google.ads.googleads.v9.services.CampaignFeedService", + "google.ads.googleads.v9.services.CampaignLabelService", + "google.ads.googleads.v9.services.CampaignService", + "google.ads.googleads.v9.services.CampaignSharedSetService", + "google.ads.googleads.v9.services.CampaignSimulationService", + "google.ads.googleads.v9.services.CarrierConstantService", + "google.ads.googleads.v9.services.ChangeStatusService", + "google.ads.googleads.v9.services.ClickViewService", + "google.ads.googleads.v9.services.CombinedAudienceService", + "google.ads.googleads.v9.services.ConversionActionService", + "google.ads.googleads.v9.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v9.services.ConversionCustomVariableService", + "google.ads.googleads.v9.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v9.services.ConversionUploadService", + "google.ads.googleads.v9.services.ConversionValueRuleService", + "google.ads.googleads.v9.services.ConversionValueRuleSetService", + "google.ads.googleads.v9.services.CurrencyConstantService", + "google.ads.googleads.v9.services.CustomAudienceService", + "google.ads.googleads.v9.services.CustomConversionGoalService", + "google.ads.googleads.v9.services.CustomInterestService", + "google.ads.googleads.v9.services.CustomerAssetService", + "google.ads.googleads.v9.services.CustomerClientLinkService", + "google.ads.googleads.v9.services.CustomerClientService", + "google.ads.googleads.v9.services.CustomerConversionGoalService", + "google.ads.googleads.v9.services.CustomerCustomizerService", + "google.ads.googleads.v9.services.CustomerExtensionSettingService", + "google.ads.googleads.v9.services.CustomerFeedService", + "google.ads.googleads.v9.services.CustomerLabelService", + "google.ads.googleads.v9.services.CustomerManagerLinkService", + "google.ads.googleads.v9.services.CustomerNegativeCriterionService", + "google.ads.googleads.v9.services.CustomerService", + "google.ads.googleads.v9.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v9.services.CustomerUserAccessService", + "google.ads.googleads.v9.services.CustomizerAttributeService", + "google.ads.googleads.v9.services.DetailPlacementViewService", + "google.ads.googleads.v9.services.DetailedDemographicService", + "google.ads.googleads.v9.services.DisplayKeywordViewService", + "google.ads.googleads.v9.services.DistanceViewService", + "google.ads.googleads.v9.services.DomainCategoryService", + "google.ads.googleads.v9.services.DynamicSearchAdsSearchTermViewService", + "google.ads.googleads.v9.services.ExpandedLandingPageViewService", + "google.ads.googleads.v9.services.ExtensionFeedItemService", + "google.ads.googleads.v9.services.FeedItemService", + "google.ads.googleads.v9.services.FeedItemSetLinkService", + "google.ads.googleads.v9.services.FeedItemSetService", + "google.ads.googleads.v9.services.FeedItemTargetService", + "google.ads.googleads.v9.services.FeedMappingService", + "google.ads.googleads.v9.services.FeedPlaceholderViewService", + "google.ads.googleads.v9.services.FeedService", + "google.ads.googleads.v9.services.GenderViewService", + "google.ads.googleads.v9.services.GeoTargetConstantService", + "google.ads.googleads.v9.services.GeographicViewService", + "google.ads.googleads.v9.services.GoogleAdsFieldService", + "google.ads.googleads.v9.services.GoogleAdsService", + "google.ads.googleads.v9.services.GroupPlacementViewService", + "google.ads.googleads.v9.services.HotelGroupViewService", + "google.ads.googleads.v9.services.HotelPerformanceViewService", + "google.ads.googleads.v9.services.IncomeRangeViewService", + "google.ads.googleads.v9.services.InvoiceService", + "google.ads.googleads.v9.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v9.services.KeywordPlanAdGroupService", + "google.ads.googleads.v9.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v9.services.KeywordPlanCampaignService", + "google.ads.googleads.v9.services.KeywordPlanIdeaService", + "google.ads.googleads.v9.services.KeywordPlanService", + "google.ads.googleads.v9.services.KeywordThemeConstantService", + "google.ads.googleads.v9.services.KeywordViewService", + "google.ads.googleads.v9.services.LabelService", + "google.ads.googleads.v9.services.LandingPageViewService", + "google.ads.googleads.v9.services.LanguageConstantService", + "google.ads.googleads.v9.services.LifeEventService", + "google.ads.googleads.v9.services.LocationViewService", + "google.ads.googleads.v9.services.ManagedPlacementViewService", + "google.ads.googleads.v9.services.MediaFileService", + "google.ads.googleads.v9.services.MerchantCenterLinkService", + "google.ads.googleads.v9.services.MobileAppCategoryConstantService", + "google.ads.googleads.v9.services.MobileDeviceConstantService", + "google.ads.googleads.v9.services.OfflineUserDataJobService", + "google.ads.googleads.v9.services.OperatingSystemVersionConstantService", + "google.ads.googleads.v9.services.PaidOrganicSearchTermViewService", + "google.ads.googleads.v9.services.ParentalStatusViewService", + "google.ads.googleads.v9.services.PaymentsAccountService", + "google.ads.googleads.v9.services.ProductBiddingCategoryConstantService", + "google.ads.googleads.v9.services.ProductGroupViewService", + "google.ads.googleads.v9.services.ReachPlanService", + "google.ads.googleads.v9.services.RecommendationService", + "google.ads.googleads.v9.services.RemarketingActionService", + "google.ads.googleads.v9.services.SearchTermViewService", + "google.ads.googleads.v9.services.SharedCriterionService", + "google.ads.googleads.v9.services.SharedSetService", + "google.ads.googleads.v9.services.ShoppingPerformanceViewService", + "google.ads.googleads.v9.services.SmartCampaignSearchTermViewService", + "google.ads.googleads.v9.services.SmartCampaignSettingService", + "google.ads.googleads.v9.services.SmartCampaignSuggestService", + "google.ads.googleads.v9.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v9.services.TopicConstantService", + "google.ads.googleads.v9.services.TopicViewService", + "google.ads.googleads.v9.services.UserDataService", + "google.ads.googleads.v9.services.UserInterestService", + "google.ads.googleads.v9.services.UserListService", + "google.ads.googleads.v9.services.UserLocationViewService", + "google.ads.googleads.v9.services.VideoService", + "google.ads.googleads.v9.services.WebpageViewService" + ] + }, + { + "id": "google.analytics.admin.v1alpha", + "directory": "google/analytics/admin/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "analyticsadmin.googleapis.com", + "title": "Google Analytics Admin API", + "description": "", + "importDirectories": [ + "google/analytics/admin/v1alpha", + "google/api", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/analytics/admin/v1alpha;admin": 4 + } }, + "java_multiple_files": { + "valueCounts": { + "true": 4 + } + }, + "java_package": { + "valueCounts": { + "com.google.analytics.admin.v1alpha": 4 + } + } + }, + "services": [ { - "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v9.services.ExtensionFeedItemService", + "shortName": "AnalyticsAdminService", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService", "methods": [ { - "shortName": "GetExtensionFeedItem", - "fullName": "google.ads.googleads.v9.services.ExtensionFeedItemService.GetExtensionFeedItem", + "shortName": "AcknowledgeUserDataCollection", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.AcknowledgeUserDataCollection", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/extensionFeedItems/*}" + "httpMethod": "POST", + "path": "/v1alpha/{property=properties/*}:acknowledgeUserDataCollection" } ] }, { - "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v9.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "shortName": "ApproveDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ApproveDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}:approve" } ] - } - ] - }, - { - "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v9.services.FeedItemService", - "methods": [ + }, { - "shortName": "GetFeedItem", - "fullName": "google.ads.googleads.v9.services.FeedItemService.GetFeedItem", + "shortName": "ArchiveAudience", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveAudience", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/feedItems/*}" + "httpMethod": "POST", + "path": "/v1alpha/{name=properties/*/audiences/*}:archive" } ] }, { - "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v9.services.FeedItemService.MutateFeedItems", + "shortName": "ArchiveCustomDimension", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveCustomDimension", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/feedItems:mutate" + "path": "/v1alpha/{name=properties/*/customDimensions/*}:archive" } ] - } - ] - }, - { - "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v9.services.FeedItemSetLinkService", - "methods": [ + }, { - "shortName": "GetFeedItemSetLink", - "fullName": "google.ads.googleads.v9.services.FeedItemSetLinkService.GetFeedItemSetLink", + "shortName": "ArchiveCustomMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/feedItemSetLinks/*}" + "httpMethod": "POST", + "path": "/v1alpha/{name=properties/*/customMetrics/*}:archive" } ] }, { - "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v9.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "shortName": "AuditUserLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.AuditUserLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v1alpha/{parent=accounts/*}/userLinks:audit" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/userLinks:audit" } ] - } - ] - }, - { - "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v9.services.FeedItemSetService", - "methods": [ + }, { - "shortName": "GetFeedItemSet", - "fullName": "google.ads.googleads.v9.services.FeedItemSetService.GetFeedItemSet", + "shortName": "BatchCreateUserLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchCreateUserLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/feedItemSets/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=accounts/*}/userLinks:batchCreate" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/userLinks:batchCreate" } ] }, { - "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v9.services.FeedItemSetService.MutateFeedItemSets", + "shortName": "BatchDeleteUserLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchDeleteUserLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v1alpha/{parent=accounts/*}/userLinks:batchDelete" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/userLinks:batchDelete" } ] - } - ] - }, - { - "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v9.services.FeedItemTargetService", - "methods": [ + }, { - "shortName": "GetFeedItemTarget", - "fullName": "google.ads.googleads.v9.services.FeedItemTargetService.GetFeedItemTarget", + "shortName": "BatchGetUserLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchGetUserLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/feedItemTargets/*}" + "path": "/v1alpha/{parent=accounts/*}/userLinks:batchGet" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/userLinks:batchGet" } ] }, { - "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v9.services.FeedItemTargetService.MutateFeedItemTargets", + "shortName": "BatchUpdateUserLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchUpdateUserLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v1alpha/{parent=accounts/*}/userLinks:batchUpdate" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/userLinks:batchUpdate" } ] - } - ] - }, - { - "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v9.services.FeedMappingService", - "methods": [ + }, { - "shortName": "GetFeedMapping", - "fullName": "google.ads.googleads.v9.services.FeedMappingService.GetFeedMapping", + "shortName": "CancelDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CancelDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/feedMappings/*}" + "httpMethod": "POST", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}:cancel" } ] }, { - "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v9.services.FeedMappingService.MutateFeedMappings", + "shortName": "CreateAudience", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateAudience", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v1alpha/{parent=properties/*}/audiences" } ] - } - ] - }, - { - "shortName": "FeedPlaceholderViewService", - "fullName": "google.ads.googleads.v9.services.FeedPlaceholderViewService", - "methods": [ + }, { - "shortName": "GetFeedPlaceholderView", - "fullName": "google.ads.googleads.v9.services.FeedPlaceholderViewService.GetFeedPlaceholderView", + "shortName": "CreateConversionEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateConversionEvent", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/feedPlaceholderViews/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/conversionEvents" } ] - } - ] - }, - { - "shortName": "FeedService", - "fullName": "google.ads.googleads.v9.services.FeedService", - "methods": [ + }, { - "shortName": "GetFeed", - "fullName": "google.ads.googleads.v9.services.FeedService.GetFeed", + "shortName": "CreateCustomDimension", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCustomDimension", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/feeds/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/customDimensions" } ] }, { - "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v9.services.FeedService.MutateFeeds", + "shortName": "CreateCustomMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCustomMetric", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/feeds:mutate" + "path": "/v1alpha/{parent=properties/*}/customMetrics" } ] - } - ] - }, - { - "shortName": "GenderViewService", - "fullName": "google.ads.googleads.v9.services.GenderViewService", - "methods": [ + }, { - "shortName": "GetGenderView", - "fullName": "google.ads.googleads.v9.services.GenderViewService.GetGenderView", + "shortName": "CreateDataStream", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDataStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/genderViews/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/dataStreams" } ] - } - ] - }, - { - "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v9.services.GeoTargetConstantService", - "methods": [ + }, { - "shortName": "GetGeoTargetConstant", - "fullName": "google.ads.googleads.v9.services.GeoTargetConstantService.GetGeoTargetConstant", + "shortName": "CreateDisplayVideo360AdvertiserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDisplayVideo360AdvertiserLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=geoTargetConstants/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinks" } ] }, { - "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v9.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "shortName": "CreateDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/geoTargetConstants:suggest" + "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinkProposals" } ] - } - ] - }, - { - "shortName": "GeographicViewService", - "fullName": "google.ads.googleads.v9.services.GeographicViewService", - "methods": [ + }, { - "shortName": "GetGeographicView", - "fullName": "google.ads.googleads.v9.services.GeographicViewService.GetGeographicView", + "shortName": "CreateFirebaseLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateFirebaseLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/geographicViews/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/firebaseLinks" } ] - } - ] - }, - { - "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v9.services.GoogleAdsFieldService", - "methods": [ + }, { - "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v9.services.GoogleAdsFieldService.GetGoogleAdsField", + "shortName": "CreateGoogleAdsLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateGoogleAdsLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=googleAdsFields/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/googleAdsLinks" } ] }, { - "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v9.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "shortName": "CreateMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/googleAdsFields:search" + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" } ] - } - ] - }, - { - "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v9.services.GoogleAdsService", - "methods": [ + }, { - "shortName": "Mutate", - "fullName": "google.ads.googleads.v9.services.GoogleAdsService.Mutate", + "shortName": "CreateProperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateProperty", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/googleAds:mutate" + "path": "/v1alpha/properties" } ] }, { - "shortName": "Search", - "fullName": "google.ads.googleads.v9.services.GoogleAdsService.Search", + "shortName": "CreateUserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateUserLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/googleAds:search" + "path": "/v1alpha/{parent=accounts/*}/userLinks" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/userLinks" } ] }, { - "shortName": "SearchStream", - "fullName": "google.ads.googleads.v9.services.GoogleAdsService.SearchStream", - "mode": "SERVER_STREAMING", + "shortName": "DeleteAccount", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAccount", + "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/googleAds:searchStream" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=accounts/*}" } ] - } - ] - }, - { - "shortName": "GroupPlacementViewService", - "fullName": "google.ads.googleads.v9.services.GroupPlacementViewService", - "methods": [ + }, { - "shortName": "GetGroupPlacementView", - "fullName": "google.ads.googleads.v9.services.GroupPlacementViewService.GetGroupPlacementView", + "shortName": "DeleteConversionEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteConversionEvent", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/groupPlacementViews/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/conversionEvents/*}" } ] - } - ] - }, - { - "shortName": "HotelGroupViewService", - "fullName": "google.ads.googleads.v9.services.HotelGroupViewService", - "methods": [ + }, { - "shortName": "GetHotelGroupView", - "fullName": "google.ads.googleads.v9.services.HotelGroupViewService.GetHotelGroupView", + "shortName": "DeleteDataStream", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDataStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/hotelGroupViews/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/dataStreams/*}" } ] - } - ] - }, - { - "shortName": "HotelPerformanceViewService", - "fullName": "google.ads.googleads.v9.services.HotelPerformanceViewService", - "methods": [ + }, { - "shortName": "GetHotelPerformanceView", - "fullName": "google.ads.googleads.v9.services.HotelPerformanceViewService.GetHotelPerformanceView", + "shortName": "DeleteDisplayVideo360AdvertiserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDisplayVideo360AdvertiserLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/hotelPerformanceView}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinks/*}" } ] - } - ] - }, - { - "shortName": "IncomeRangeViewService", - "fullName": "google.ads.googleads.v9.services.IncomeRangeViewService", - "methods": [ + }, { - "shortName": "GetIncomeRangeView", - "fullName": "google.ads.googleads.v9.services.IncomeRangeViewService.GetIncomeRangeView", + "shortName": "DeleteDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/incomeRangeViews/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}" } ] - } - ] - }, - { - "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v9.services.InvoiceService", - "methods": [ + }, { - "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v9.services.InvoiceService.ListInvoices", + "shortName": "DeleteFirebaseLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteFirebaseLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/customers/{customer_id=*}/invoices" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/firebaseLinks/*}" } ] - } - ] - }, - { - "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupKeywordService", - "methods": [ + }, { - "shortName": "GetKeywordPlanAdGroupKeyword", - "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword", + "shortName": "DeleteGoogleAdsLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteGoogleAdsLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/keywordPlanAdGroupKeywords/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/googleAdsLinks/*}" } ] }, { - "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "shortName": "DeleteMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" } ] - } - ] - }, - { - "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupService", - "methods": [ + }, { - "shortName": "GetKeywordPlanAdGroup", - "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup", + "shortName": "DeleteProperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteProperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/keywordPlanAdGroups/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*}" } ] }, { - "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v9.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "shortName": "DeleteUserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteUserLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=accounts/*/userLinks/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/userLinks/*}" } ] - } - ] - }, - { - "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignKeywordService", - "methods": [ + }, { - "shortName": "GetKeywordPlanCampaignKeyword", - "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword", + "shortName": "GetAccount", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAccount", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/keywordPlanCampaignKeywords/*}" + "path": "/v1alpha/{name=accounts/*}" } ] }, { - "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "shortName": "GetAttributionSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAttributionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/attributionSettings}" } ] - } - ] - }, - { - "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignService", - "methods": [ + }, { - "shortName": "GetKeywordPlanCampaign", - "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignService.GetKeywordPlanCampaign", + "shortName": "GetAudience", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAudience", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/keywordPlanCampaigns/*}" + "path": "/v1alpha/{name=properties/*/audiences/*}" } ] }, { - "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v9.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "shortName": "GetConversionEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetConversionEvent", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/conversionEvents/*}" } ] - } - ] - }, - { - "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v9.services.KeywordPlanIdeaService", - "methods": [ + }, { - "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v9.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "shortName": "GetCustomDimension", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomDimension", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:generateKeywordIdeas" + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/customDimensions/*}" } ] - } - ] - }, - { - "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v9.services.KeywordPlanService", - "methods": [ + }, { - "shortName": "GenerateForecastCurve", - "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GenerateForecastCurve", + "shortName": "GetCustomMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/customMetrics/*}" } ] }, { - "shortName": "GenerateForecastMetrics", - "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GenerateForecastMetrics", + "shortName": "GetDataRetentionSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataRetentionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataRetentionSettings}" } ] }, { - "shortName": "GenerateForecastTimeSeries", - "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GenerateForecastTimeSeries", + "shortName": "GetDataSharingSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataSharingSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" + "httpMethod": "GET", + "path": "/v1alpha/{name=accounts/*/dataSharingSettings}" } ] }, { - "shortName": "GenerateHistoricalMetrics", - "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GenerateHistoricalMetrics", + "shortName": "GetDataStream", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*}" } ] }, { - "shortName": "GetKeywordPlan", - "fullName": "google.ads.googleads.v9.services.KeywordPlanService.GetKeywordPlan", + "shortName": "GetDisplayVideo360AdvertiserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/keywordPlans/*}" + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinks/*}" } ] }, { - "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v9.services.KeywordPlanService.MutateKeywordPlans", + "shortName": "GetDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/keywordPlans:mutate" + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}" } ] - } - ] - }, - { - "shortName": "KeywordThemeConstantService", - "fullName": "google.ads.googleads.v9.services.KeywordThemeConstantService", - "methods": [ + }, { - "shortName": "GetKeywordThemeConstant", - "fullName": "google.ads.googleads.v9.services.KeywordThemeConstantService.GetKeywordThemeConstant", + "shortName": "GetGlobalSiteTag", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetGlobalSiteTag", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=keywordThemeConstants/*}" + "path": "/v1alpha/{name=properties/*/dataStreams/*/globalSiteTag}" } ] }, { - "shortName": "SuggestKeywordThemeConstants", - "fullName": "google.ads.googleads.v9.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "shortName": "GetGoogleSignalsSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetGoogleSignalsSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/keywordThemeConstants:suggest" + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/googleSignalsSettings}" } ] - } - ] - }, - { - "shortName": "KeywordViewService", - "fullName": "google.ads.googleads.v9.services.KeywordViewService", - "methods": [ + }, { - "shortName": "GetKeywordView", - "fullName": "google.ads.googleads.v9.services.KeywordViewService.GetKeywordView", + "shortName": "GetMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/keywordViews/*}" + "path": "/v1alpha/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" } ] - } - ] - }, - { - "shortName": "LabelService", - "fullName": "google.ads.googleads.v9.services.LabelService", - "methods": [ + }, { - "shortName": "GetLabel", - "fullName": "google.ads.googleads.v9.services.LabelService.GetLabel", + "shortName": "GetProperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetProperty", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/labels/*}" + "path": "/v1alpha/{name=properties/*}" } ] }, { - "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v9.services.LabelService.MutateLabels", + "shortName": "GetUserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetUserLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/labels:mutate" + "httpMethod": "GET", + "path": "/v1alpha/{name=accounts/*/userLinks/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/userLinks/*}" } ] - } - ] - }, - { - "shortName": "LandingPageViewService", - "fullName": "google.ads.googleads.v9.services.LandingPageViewService", - "methods": [ + }, { - "shortName": "GetLandingPageView", - "fullName": "google.ads.googleads.v9.services.LandingPageViewService.GetLandingPageView", + "shortName": "ListAccountSummaries", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccountSummaries", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/landingPageViews/*}" + "path": "/v1alpha/accountSummaries" } ] - } - ] - }, - { - "shortName": "LanguageConstantService", - "fullName": "google.ads.googleads.v9.services.LanguageConstantService", - "methods": [ + }, { - "shortName": "GetLanguageConstant", - "fullName": "google.ads.googleads.v9.services.LanguageConstantService.GetLanguageConstant", + "shortName": "ListAccounts", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=languageConstants/*}" + "path": "/v1alpha/accounts" } ] - } - ] - }, - { - "shortName": "LifeEventService", - "fullName": "google.ads.googleads.v9.services.LifeEventService", - "methods": [ + }, { - "shortName": "GetLifeEvent", - "fullName": "google.ads.googleads.v9.services.LifeEventService.GetLifeEvent", + "shortName": "ListAudiences", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/lifeEvents/*}" + "path": "/v1alpha/{parent=properties/*}/audiences" } ] - } - ] - }, - { - "shortName": "LocationViewService", - "fullName": "google.ads.googleads.v9.services.LocationViewService", - "methods": [ + }, { - "shortName": "GetLocationView", - "fullName": "google.ads.googleads.v9.services.LocationViewService.GetLocationView", + "shortName": "ListConversionEvents", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListConversionEvents", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/locationViews/*}" + "path": "/v1alpha/{parent=properties/*}/conversionEvents" } ] - } - ] - }, - { - "shortName": "ManagedPlacementViewService", - "fullName": "google.ads.googleads.v9.services.ManagedPlacementViewService", - "methods": [ + }, { - "shortName": "GetManagedPlacementView", - "fullName": "google.ads.googleads.v9.services.ManagedPlacementViewService.GetManagedPlacementView", + "shortName": "ListCustomDimensions", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomDimensions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/managedPlacementViews/*}" + "path": "/v1alpha/{parent=properties/*}/customDimensions" } ] - } - ] - }, - { - "shortName": "MediaFileService", - "fullName": "google.ads.googleads.v9.services.MediaFileService", - "methods": [ + }, { - "shortName": "GetMediaFile", - "fullName": "google.ads.googleads.v9.services.MediaFileService.GetMediaFile", + "shortName": "ListCustomMetrics", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/mediaFiles/*}" + "path": "/v1alpha/{parent=properties/*}/customMetrics" } ] }, { - "shortName": "MutateMediaFiles", - "fullName": "google.ads.googleads.v9.services.MediaFileService.MutateMediaFiles", + "shortName": "ListDataStreams", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDataStreams", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/mediaFiles:mutate" + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/dataStreams" } ] - } - ] - }, - { - "shortName": "MerchantCenterLinkService", - "fullName": "google.ads.googleads.v9.services.MerchantCenterLinkService", - "methods": [ + }, { - "shortName": "GetMerchantCenterLink", - "fullName": "google.ads.googleads.v9.services.MerchantCenterLinkService.GetMerchantCenterLink", + "shortName": "ListDisplayVideo360AdvertiserLinkProposals", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinkProposals", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/merchantCenterLinks/*}" + "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinkProposals" } ] }, { - "shortName": "ListMerchantCenterLinks", - "fullName": "google.ads.googleads.v9.services.MerchantCenterLinkService.ListMerchantCenterLinks", + "shortName": "ListDisplayVideo360AdvertiserLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/customers/{customer_id=*}/merchantCenterLinks" + "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinks" } ] }, { - "shortName": "MutateMerchantCenterLink", - "fullName": "google.ads.googleads.v9.services.MerchantCenterLinkService.MutateMerchantCenterLink", + "shortName": "ListFirebaseLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListFirebaseLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/merchantCenterLinks:mutate" + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/firebaseLinks" } ] - } - ] - }, - { - "shortName": "MobileAppCategoryConstantService", - "fullName": "google.ads.googleads.v9.services.MobileAppCategoryConstantService", - "methods": [ + }, { - "shortName": "GetMobileAppCategoryConstant", - "fullName": "google.ads.googleads.v9.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant", + "shortName": "ListGoogleAdsLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListGoogleAdsLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=mobileAppCategoryConstants/*}" + "path": "/v1alpha/{parent=properties/*}/googleAdsLinks" } ] - } - ] - }, - { - "shortName": "MobileDeviceConstantService", - "fullName": "google.ads.googleads.v9.services.MobileDeviceConstantService", - "methods": [ + }, { - "shortName": "GetMobileDeviceConstant", - "fullName": "google.ads.googleads.v9.services.MobileDeviceConstantService.GetMobileDeviceConstant", + "shortName": "ListMeasurementProtocolSecrets", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListMeasurementProtocolSecrets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=mobileDeviceConstants/*}" + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" } ] - } - ] - }, - { - "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService", - "methods": [ + }, { - "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "shortName": "ListProperties", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListProperties", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "httpMethod": "GET", + "path": "/v1alpha/properties" } ] }, { - "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "shortName": "ListUserLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListUserLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/offlineUserDataJobs:create" + "httpMethod": "GET", + "path": "/v1alpha/{parent=accounts/*}/userLinks" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/userLinks" } ] }, { - "shortName": "GetOfflineUserDataJob", - "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService.GetOfflineUserDataJob", + "shortName": "ProvisionAccountTicket", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ProvisionAccountTicket", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/offlineUserDataJobs/*}" + "httpMethod": "POST", + "path": "/v1alpha/accounts:provisionAccountTicket" } ] }, { - "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v9.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "shortName": "RunAccessReport", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.RunAccessReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "path": "/v1alpha/{entity=properties/*}:runAccessReport" } ] - } - ] - }, - { - "shortName": "OperatingSystemVersionConstantService", - "fullName": "google.ads.googleads.v9.services.OperatingSystemVersionConstantService", - "methods": [ + }, { - "shortName": "GetOperatingSystemVersionConstant", - "fullName": "google.ads.googleads.v9.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant", + "shortName": "SearchChangeHistoryEvents", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.SearchChangeHistoryEvents", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=operatingSystemVersionConstants/*}" + "httpMethod": "POST", + "path": "/v1alpha/{account=accounts/*}:searchChangeHistoryEvents" } ] - } - ] - }, - { - "shortName": "PaidOrganicSearchTermViewService", - "fullName": "google.ads.googleads.v9.services.PaidOrganicSearchTermViewService", - "methods": [ + }, { - "shortName": "GetPaidOrganicSearchTermView", - "fullName": "google.ads.googleads.v9.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView", + "shortName": "UpdateAccount", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateAccount", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/paidOrganicSearchTermViews/*}" + "httpMethod": "PATCH", + "path": "/v1alpha/{account.name=accounts/*}" } ] - } - ] - }, - { - "shortName": "ParentalStatusViewService", - "fullName": "google.ads.googleads.v9.services.ParentalStatusViewService", - "methods": [ + }, { - "shortName": "GetParentalStatusView", - "fullName": "google.ads.googleads.v9.services.ParentalStatusViewService.GetParentalStatusView", + "shortName": "UpdateAttributionSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateAttributionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/parentalStatusViews/*}" + "httpMethod": "PATCH", + "path": "/v1alpha/{attribution_settings.name=properties/*/attributionSettings}" } ] - } - ] - }, - { - "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v9.services.PaymentsAccountService", - "methods": [ + }, { - "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v9.services.PaymentsAccountService.ListPaymentsAccounts", + "shortName": "UpdateAudience", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateAudience", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/customers/{customer_id=*}/paymentsAccounts" + "httpMethod": "PATCH", + "path": "/v1alpha/{audience.name=properties/*/audiences/*}" } ] - } - ] - }, - { - "shortName": "ProductBiddingCategoryConstantService", - "fullName": "google.ads.googleads.v9.services.ProductBiddingCategoryConstantService", - "methods": [ + }, { - "shortName": "GetProductBiddingCategoryConstant", - "fullName": "google.ads.googleads.v9.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant", + "shortName": "UpdateCustomDimension", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateCustomDimension", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=productBiddingCategoryConstants/*}" + "httpMethod": "PATCH", + "path": "/v1alpha/{custom_dimension.name=properties/*/customDimensions/*}" } ] - } - ] - }, - { - "shortName": "ProductGroupViewService", - "fullName": "google.ads.googleads.v9.services.ProductGroupViewService", - "methods": [ + }, { - "shortName": "GetProductGroupView", - "fullName": "google.ads.googleads.v9.services.ProductGroupViewService.GetProductGroupView", + "shortName": "UpdateCustomMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/productGroupViews/*}" + "httpMethod": "PATCH", + "path": "/v1alpha/{custom_metric.name=properties/*/customMetrics/*}" } ] - } - ] - }, - { - "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v9.services.ReachPlanService", - "methods": [ + }, { - "shortName": "GenerateProductMixIdeas", - "fullName": "google.ads.googleads.v9.services.ReachPlanService.GenerateProductMixIdeas", + "shortName": "UpdateDataRetentionSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateDataRetentionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:generateProductMixIdeas" + "httpMethod": "PATCH", + "path": "/v1alpha/{data_retention_settings.name=properties/*/dataRetentionSettings}" } ] }, { - "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v9.services.ReachPlanService.GenerateReachForecast", + "shortName": "UpdateDataStream", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateDataStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:generateReachForecast" + "httpMethod": "PATCH", + "path": "/v1alpha/{data_stream.name=properties/*/dataStreams/*}" } ] }, { - "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v9.services.ReachPlanService.ListPlannableLocations", + "shortName": "UpdateDisplayVideo360AdvertiserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateDisplayVideo360AdvertiserLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9:listPlannableLocations" + "httpMethod": "PATCH", + "path": "/v1alpha/{display_video_360_advertiser_link.name=properties/*/displayVideo360AdvertiserLinks/*}" } ] }, { - "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v9.services.ReachPlanService.ListPlannableProducts", + "shortName": "UpdateGoogleAdsLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateGoogleAdsLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9:listPlannableProducts" + "httpMethod": "PATCH", + "path": "/v1alpha/{google_ads_link.name=properties/*/googleAdsLinks/*}" } ] - } - ] - }, - { - "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v9.services.RecommendationService", - "methods": [ + }, { - "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v9.services.RecommendationService.ApplyRecommendation", + "shortName": "UpdateGoogleSignalsSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateGoogleSignalsSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/recommendations:apply" + "httpMethod": "PATCH", + "path": "/v1alpha/{google_signals_settings.name=properties/*/googleSignalsSettings}" } ] }, { - "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v9.services.RecommendationService.DismissRecommendation", + "shortName": "UpdateMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/recommendations:dismiss" + "httpMethod": "PATCH", + "path": "/v1alpha/{measurement_protocol_secret.name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" } ] }, { - "shortName": "GetRecommendation", - "fullName": "google.ads.googleads.v9.services.RecommendationService.GetRecommendation", + "shortName": "UpdateProperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateProperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/recommendations/*}" + "httpMethod": "PATCH", + "path": "/v1alpha/{property.name=properties/*}" + } + ] + }, + { + "shortName": "UpdateUserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateUserLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{user_link.name=accounts/*/userLinks/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1alpha/{user_link.name=properties/*/userLinks/*}" } ] } ] + } + ], + "configFile": "analyticsadmin.yaml", + "serviceConfigApiNames": [ + "google.analytics.admin.v1alpha.AnalyticsAdminService" + ] + }, + { + "id": "google.analytics.admin.v1beta", + "directory": "google/analytics/admin/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "analyticsadmin.googleapis.com", + "title": "Google Analytics Admin API", + "description": "", + "importDirectories": [ + "google/analytics/admin/v1beta", + "google/api", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/analytics/admin/v1beta;admin": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } }, + "java_package": { + "valueCounts": { + "com.google.analytics.admin.v1beta": 2 + } + } + }, + "services": [ { - "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v9.services.RemarketingActionService", + "shortName": "AnalyticsAdminService", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService", "methods": [ { - "shortName": "GetRemarketingAction", - "fullName": "google.ads.googleads.v9.services.RemarketingActionService.GetRemarketingAction", + "shortName": "AcknowledgeUserDataCollection", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.AcknowledgeUserDataCollection", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/remarketingActions/*}" + "httpMethod": "POST", + "path": "/v1beta/{property=properties/*}:acknowledgeUserDataCollection" } ] }, { - "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v9.services.RemarketingActionService.MutateRemarketingActions", + "shortName": "ArchiveCustomDimension", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ArchiveCustomDimension", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v1beta/{name=properties/*/customDimensions/*}:archive" } ] - } - ] - }, - { - "shortName": "SearchTermViewService", - "fullName": "google.ads.googleads.v9.services.SearchTermViewService", - "methods": [ + }, { - "shortName": "GetSearchTermView", - "fullName": "google.ads.googleads.v9.services.SearchTermViewService.GetSearchTermView", + "shortName": "ArchiveCustomMetric", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ArchiveCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/searchTermViews/*}" + "httpMethod": "POST", + "path": "/v1beta/{name=properties/*/customMetrics/*}:archive" } ] - } - ] - }, - { - "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v9.services.SharedCriterionService", - "methods": [ + }, { - "shortName": "GetSharedCriterion", - "fullName": "google.ads.googleads.v9.services.SharedCriterionService.GetSharedCriterion", + "shortName": "CreateConversionEvent", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateConversionEvent", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/sharedCriteria/*}" + "httpMethod": "POST", + "path": "/v1beta/{parent=properties/*}/conversionEvents" } ] }, { - "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v9.services.SharedCriterionService.MutateSharedCriteria", + "shortName": "CreateCustomDimension", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateCustomDimension", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/sharedCriteria:mutate" + "path": "/v1beta/{parent=properties/*}/customDimensions" } ] - } - ] - }, - { - "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v9.services.SharedSetService", - "methods": [ + }, { - "shortName": "GetSharedSet", - "fullName": "google.ads.googleads.v9.services.SharedSetService.GetSharedSet", + "shortName": "CreateCustomMetric", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/sharedSets/*}" + "httpMethod": "POST", + "path": "/v1beta/{parent=properties/*}/customMetrics" } ] }, { - "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v9.services.SharedSetService.MutateSharedSets", + "shortName": "CreateDataStream", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateDataStream", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v1beta/{parent=properties/*}/dataStreams" } ] - } - ] - }, - { - "shortName": "ShoppingPerformanceViewService", - "fullName": "google.ads.googleads.v9.services.ShoppingPerformanceViewService", - "methods": [ + }, { - "shortName": "GetShoppingPerformanceView", - "fullName": "google.ads.googleads.v9.services.ShoppingPerformanceViewService.GetShoppingPerformanceView", + "shortName": "CreateFirebaseLink", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateFirebaseLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/shoppingPerformanceView}" + "httpMethod": "POST", + "path": "/v1beta/{parent=properties/*}/firebaseLinks" } ] - } - ] - }, - { - "shortName": "SmartCampaignSearchTermViewService", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSearchTermViewService", - "methods": [ + }, { - "shortName": "GetSmartCampaignSearchTermView", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSearchTermViewService.GetSmartCampaignSearchTermView", + "shortName": "CreateGoogleAdsLink", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateGoogleAdsLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/smartCampaignSearchTermViews/*}" + "httpMethod": "POST", + "path": "/v1beta/{parent=properties/*}/googleAdsLinks" } ] - } - ] - }, - { - "shortName": "SmartCampaignSettingService", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSettingService", - "methods": [ + }, { - "shortName": "GetSmartCampaignSetting", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSettingService.GetSmartCampaignSetting", + "shortName": "CreateMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/smartCampaignSettings/*}" + "httpMethod": "POST", + "path": "/v1beta/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" } ] }, { - "shortName": "MutateSmartCampaignSettings", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSettingService.MutateSmartCampaignSettings", + "shortName": "CreateProperty", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateProperty", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/smartCampaignSettings:mutate" + "path": "/v1beta/properties" } ] - } - ] - }, - { - "shortName": "SmartCampaignSuggestService", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSuggestService", - "methods": [ + }, { - "shortName": "SuggestKeywordThemes", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSuggestService.SuggestKeywordThemes", + "shortName": "DeleteAccount", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteAccount", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:suggestKeywordThemes" + "httpMethod": "DELETE", + "path": "/v1beta/{name=accounts/*}" } ] }, { - "shortName": "SuggestSmartCampaignAd", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", + "shortName": "DeleteConversionEvent", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteConversionEvent", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:suggestSmartCampaignAd" + "httpMethod": "DELETE", + "path": "/v1beta/{name=properties/*/conversionEvents/*}" } ] }, { - "shortName": "SuggestSmartCampaignBudgetOptions", - "fullName": "google.ads.googleads.v9.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", + "shortName": "DeleteDataStream", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteDataStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + "httpMethod": "DELETE", + "path": "/v1beta/{name=properties/*/dataStreams/*}" } ] - } - ] - }, - { - "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v9.services.ThirdPartyAppAnalyticsLinkService", - "methods": [ + }, { - "shortName": "GetThirdPartyAppAnalyticsLink", - "fullName": "google.ads.googleads.v9.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink", + "shortName": "DeleteFirebaseLink", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteFirebaseLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}" + "httpMethod": "DELETE", + "path": "/v1beta/{name=properties/*/firebaseLinks/*}" } ] }, { - "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v9.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "shortName": "DeleteGoogleAdsLink", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteGoogleAdsLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "httpMethod": "DELETE", + "path": "/v1beta/{name=properties/*/googleAdsLinks/*}" } ] - } - ] - }, - { - "shortName": "TopicConstantService", - "fullName": "google.ads.googleads.v9.services.TopicConstantService", - "methods": [ + }, { - "shortName": "GetTopicConstant", - "fullName": "google.ads.googleads.v9.services.TopicConstantService.GetTopicConstant", + "shortName": "DeleteMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=topicConstants/*}" + "httpMethod": "DELETE", + "path": "/v1beta/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" } ] - } - ] - }, - { - "shortName": "TopicViewService", - "fullName": "google.ads.googleads.v9.services.TopicViewService", - "methods": [ + }, { - "shortName": "GetTopicView", - "fullName": "google.ads.googleads.v9.services.TopicViewService.GetTopicView", + "shortName": "DeleteProperty", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteProperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/topicViews/*}" + "httpMethod": "DELETE", + "path": "/v1beta/{name=properties/*}" } ] - } - ] - }, - { - "shortName": "UserDataService", - "fullName": "google.ads.googleads.v9.services.UserDataService", - "methods": [ + }, { - "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v9.services.UserDataService.UploadUserData", + "shortName": "GetAccount", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetAccount", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}:uploadUserData" + "httpMethod": "GET", + "path": "/v1beta/{name=accounts/*}" } ] - } - ] - }, - { - "shortName": "UserInterestService", - "fullName": "google.ads.googleads.v9.services.UserInterestService", - "methods": [ + }, { - "shortName": "GetUserInterest", - "fullName": "google.ads.googleads.v9.services.UserInterestService.GetUserInterest", + "shortName": "GetConversionEvent", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetConversionEvent", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/userInterests/*}" + "path": "/v1beta/{name=properties/*/conversionEvents/*}" } ] - } - ] - }, - { - "shortName": "UserListService", - "fullName": "google.ads.googleads.v9.services.UserListService", - "methods": [ + }, { - "shortName": "GetUserList", - "fullName": "google.ads.googleads.v9.services.UserListService.GetUserList", + "shortName": "GetCustomDimension", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetCustomDimension", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/userLists/*}" + "path": "/v1beta/{name=properties/*/customDimensions/*}" } ] }, { - "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v9.services.UserListService.MutateUserLists", + "shortName": "GetCustomMetric", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v9/customers/{customer_id=*}/userLists:mutate" + "httpMethod": "GET", + "path": "/v1beta/{name=properties/*/customMetrics/*}" } ] - } - ] - }, - { - "shortName": "UserLocationViewService", - "fullName": "google.ads.googleads.v9.services.UserLocationViewService", - "methods": [ + }, { - "shortName": "GetUserLocationView", - "fullName": "google.ads.googleads.v9.services.UserLocationViewService.GetUserLocationView", + "shortName": "GetDataRetentionSettings", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetDataRetentionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/userLocationViews/*}" + "path": "/v1beta/{name=properties/*/dataRetentionSettings}" } ] - } - ] - }, - { - "shortName": "VideoService", - "fullName": "google.ads.googleads.v9.services.VideoService", - "methods": [ + }, { - "shortName": "GetVideo", - "fullName": "google.ads.googleads.v9.services.VideoService.GetVideo", + "shortName": "GetDataSharingSettings", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetDataSharingSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/videos/*}" + "path": "/v1beta/{name=accounts/*/dataSharingSettings}" } ] - } - ] - }, - { - "shortName": "WebpageViewService", - "fullName": "google.ads.googleads.v9.services.WebpageViewService", - "methods": [ + }, { - "shortName": "GetWebpageView", - "fullName": "google.ads.googleads.v9.services.WebpageViewService.GetWebpageView", + "shortName": "GetDataStream", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetDataStream", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v9/{resource_name=customers/*/webpageViews/*}" + "path": "/v1beta/{name=properties/*/dataStreams/*}" } ] - } - ] - } - ], - "configFile": "googleads_v9.yaml" - }, - { - "id": "google.analytics.admin.v1alpha", - "directory": "google/analytics/admin/v1alpha", - "version": "v1alpha", - "majorVersion": "v1", - "hostName": "analyticsadmin.googleapis.com", - "title": "Google Analytics Admin API", - "description": "", - "importDirectories": [ - "google/analytics/admin/v1alpha", - "google/api", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/analytics/admin/v1alpha;admin": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.analytics.admin.v1alpha": 2 - } - } - }, - "services": [ - { - "shortName": "AnalyticsAdminService", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "methods": [ + }, { - "shortName": "AcknowledgeUserDataCollection", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.AcknowledgeUserDataCollection", + "shortName": "GetMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{property=properties/*}:acknowledgeUserDataCollection" + "httpMethod": "GET", + "path": "/v1beta/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" } ] }, { - "shortName": "ApproveDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ApproveDisplayVideo360AdvertiserLinkProposal", + "shortName": "GetProperty", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetProperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}:approve" + "httpMethod": "GET", + "path": "/v1beta/{name=properties/*}" } ] }, { - "shortName": "ArchiveCustomDimension", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveCustomDimension", + "shortName": "ListAccountSummaries", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListAccountSummaries", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/customDimensions/*}:archive" + "httpMethod": "GET", + "path": "/v1beta/accountSummaries" } ] }, { - "shortName": "ArchiveCustomMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveCustomMetric", + "shortName": "ListAccounts", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListAccounts", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/customMetrics/*}:archive" + "httpMethod": "GET", + "path": "/v1beta/accounts" } ] }, { - "shortName": "AuditUserLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.AuditUserLinks", + "shortName": "ListConversionEvents", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListConversionEvents", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/userLinks:audit" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/userLinks:audit" + "httpMethod": "GET", + "path": "/v1beta/{parent=properties/*}/conversionEvents" } ] }, { - "shortName": "BatchCreateUserLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchCreateUserLinks", + "shortName": "ListCustomDimensions", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListCustomDimensions", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/userLinks:batchCreate" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/userLinks:batchCreate" + "httpMethod": "GET", + "path": "/v1beta/{parent=properties/*}/customDimensions" } ] }, { - "shortName": "BatchDeleteUserLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchDeleteUserLinks", + "shortName": "ListCustomMetrics", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListCustomMetrics", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/userLinks:batchDelete" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/userLinks:batchDelete" + "httpMethod": "GET", + "path": "/v1beta/{parent=properties/*}/customMetrics" } ] }, { - "shortName": "BatchGetUserLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchGetUserLinks", + "shortName": "ListDataStreams", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListDataStreams", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=accounts/*}/userLinks:batchGet" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/userLinks:batchGet" + "path": "/v1beta/{parent=properties/*}/dataStreams" } ] }, { - "shortName": "BatchUpdateUserLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchUpdateUserLinks", + "shortName": "ListFirebaseLinks", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListFirebaseLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/userLinks:batchUpdate" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/userLinks:batchUpdate" + "httpMethod": "GET", + "path": "/v1beta/{parent=properties/*}/firebaseLinks" } ] }, { - "shortName": "CancelDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CancelDisplayVideo360AdvertiserLinkProposal", + "shortName": "ListGoogleAdsLinks", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListGoogleAdsLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}:cancel" + "httpMethod": "GET", + "path": "/v1beta/{parent=properties/*}/googleAdsLinks" } ] }, { - "shortName": "CreateConversionEvent", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateConversionEvent", + "shortName": "ListMeasurementProtocolSecrets", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListMeasurementProtocolSecrets", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/conversionEvents" + "httpMethod": "GET", + "path": "/v1beta/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" } ] }, { - "shortName": "CreateCustomDimension", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCustomDimension", + "shortName": "ListProperties", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListProperties", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/customDimensions" + "httpMethod": "GET", + "path": "/v1beta/properties" } ] }, { - "shortName": "CreateCustomMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCustomMetric", + "shortName": "ProvisionAccountTicket", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ProvisionAccountTicket", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/customMetrics" + "path": "/v1beta/accounts:provisionAccountTicket" } ] }, { - "shortName": "CreateDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDataStream", + "shortName": "SearchChangeHistoryEvents", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.SearchChangeHistoryEvents", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/dataStreams" + "path": "/v1beta/{account=accounts/*}:searchChangeHistoryEvents" } ] }, { - "shortName": "CreateDisplayVideo360AdvertiserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDisplayVideo360AdvertiserLink", + "shortName": "UpdateAccount", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateAccount", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinks" + "httpMethod": "PATCH", + "path": "/v1beta/{account.name=accounts/*}" } ] }, { - "shortName": "CreateDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDisplayVideo360AdvertiserLinkProposal", + "shortName": "UpdateCustomDimension", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateCustomDimension", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinkProposals" + "httpMethod": "PATCH", + "path": "/v1beta/{custom_dimension.name=properties/*/customDimensions/*}" } ] }, { - "shortName": "CreateFirebaseLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateFirebaseLink", + "shortName": "UpdateCustomMetric", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/firebaseLinks" + "httpMethod": "PATCH", + "path": "/v1beta/{custom_metric.name=properties/*/customMetrics/*}" } ] }, { - "shortName": "CreateGoogleAdsLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateGoogleAdsLink", + "shortName": "UpdateDataRetentionSettings", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateDataRetentionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/googleAdsLinks" + "httpMethod": "PATCH", + "path": "/v1beta/{data_retention_settings.name=properties/*/dataRetentionSettings}" } ] }, { - "shortName": "CreateMeasurementProtocolSecret", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateMeasurementProtocolSecret", + "shortName": "UpdateDataStream", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateDataStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*/webDataStreams/*}/measurementProtocolSecrets" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*/iosAppDataStreams/*}/measurementProtocolSecrets" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*/androidAppDataStreams/*}/measurementProtocolSecrets" + "httpMethod": "PATCH", + "path": "/v1beta/{data_stream.name=properties/*/dataStreams/*}" } ] }, { - "shortName": "CreateProperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateProperty", + "shortName": "UpdateGoogleAdsLink", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateGoogleAdsLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/properties" + "httpMethod": "PATCH", + "path": "/v1beta/{google_ads_link.name=properties/*/googleAdsLinks/*}" } ] }, { - "shortName": "CreateUserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateUserLink", + "shortName": "UpdateMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/userLinks" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/userLinks" + "httpMethod": "PATCH", + "path": "/v1beta/{measurement_protocol_secret.name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" } ] }, { - "shortName": "CreateWebDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateWebDataStream", + "shortName": "UpdateProperty", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateProperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/webDataStreams" + "httpMethod": "PATCH", + "path": "/v1beta/{property.name=properties/*}" } ] - }, + } + ] + } + ], + "configFile": "analyticsadmin.yaml", + "serviceConfigApiNames": [ + "google.analytics.admin.v1beta.AnalyticsAdminService" + ] + }, + { + "id": "google.analytics.data.v1alpha", + "directory": "google/analytics/data/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "analyticsdata.googleapis.com", + "title": "Google Analytics Data API", + "description": "Accesses report data in Google Analytics.", + "importDirectories": [ + "google/analytics/data/v1alpha", + "google/api", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/analytics/data/v1alpha;data": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.analytics.data.v1alpha": 2 + } + } + }, + "services": [ + { + "shortName": "AlphaAnalyticsData", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData", + "methods": [ { - "shortName": "DeleteAccount", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAccount", + "shortName": "RunFunnelReport", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReport", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=accounts/*}" + "httpMethod": "POST", + "path": "/v1alpha/{property=properties/*}:runFunnelReport" } ] - }, + } + ] + } + ], + "configFile": "analyticsdata_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.analytics.data.v1alpha.AlphaAnalyticsData" + ] + }, + { + "id": "google.analytics.data.v1beta", + "directory": "google/analytics/data/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "analyticsdata.googleapis.com", + "title": "Google Analytics Data API", + "description": "Accesses report data in Google Analytics.", + "importDirectories": [ + "google/analytics/data/v1beta", + "google/api" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/analytics/data/v1beta;data": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.analytics.data.v1beta": 2 + } + } + }, + "services": [ + { + "shortName": "BetaAnalyticsData", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", + "methods": [ { - "shortName": "DeleteAndroidAppDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAndroidAppDataStream", + "shortName": "BatchRunPivotReports", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.BatchRunPivotReports", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/androidAppDataStreams/*}" + "httpMethod": "POST", + "path": "/v1beta/{property=properties/*}:batchRunPivotReports" } ] }, { - "shortName": "DeleteConversionEvent", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteConversionEvent", + "shortName": "BatchRunReports", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReports", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/conversionEvents/*}" + "httpMethod": "POST", + "path": "/v1beta/{property=properties/*}:batchRunReports" } ] }, { - "shortName": "DeleteDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDataStream", + "shortName": "CheckCompatibility", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibility", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/dataStreams/*}" + "httpMethod": "POST", + "path": "/v1beta/{property=properties/*}:checkCompatibility" } ] }, { - "shortName": "DeleteDisplayVideo360AdvertiserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDisplayVideo360AdvertiserLink", + "shortName": "GetMetadata", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.GetMetadata", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinks/*}" + "httpMethod": "GET", + "path": "/v1beta/{name=properties/*/metadata}" } ] }, { - "shortName": "DeleteDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDisplayVideo360AdvertiserLinkProposal", + "shortName": "RunPivotReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReport", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}" + "httpMethod": "POST", + "path": "/v1beta/{property=properties/*}:runPivotReport" } ] }, { - "shortName": "DeleteFirebaseLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteFirebaseLink", + "shortName": "RunRealtimeReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReport", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/firebaseLinks/*}" + "httpMethod": "POST", + "path": "/v1beta/{property=properties/*}:runRealtimeReport" } ] }, { - "shortName": "DeleteGoogleAdsLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteGoogleAdsLink", + "shortName": "RunReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunReport", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/googleAdsLinks/*}" + "httpMethod": "POST", + "path": "/v1beta/{property=properties/*}:runReport" } ] - }, + } + ] + } + ], + "configFile": "analyticsdata_v1beta.yaml", + "serviceConfigApiNames": [ + "google.analytics.data.v1beta.BetaAnalyticsData" + ] + }, + { + "id": "google.api.apikeys.v2", + "directory": "google/api/apikeys/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "apikeys.googleapis.com", + "title": "API Keys API", + "description": "Manages the API keys associated with developer projects.", + "importDirectories": [ + "google/api", + "google/api/apikeys/v2", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ApiKeys.V2": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/api/apikeys/v2;apikeys": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.api.apikeys.v2": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ApiKeys\\V2": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ApiKeys::V2": 2 + } + } + }, + "services": [ + { + "shortName": "ApiKeys", + "fullName": "google.api.apikeys.v2.ApiKeys", + "methods": [ { - "shortName": "DeleteIosAppDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteIosAppDataStream", + "shortName": "CreateKey", + "fullName": "google.api.apikeys.v2.ApiKeys.CreateKey", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/iosAppDataStreams/*}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/keys" } ] }, { - "shortName": "DeleteMeasurementProtocolSecret", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteMeasurementProtocolSecret", + "shortName": "DeleteKey", + "fullName": "google.api.apikeys.v2.ApiKeys.DeleteKey", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/webDataStreams/*/measurementProtocolSecrets/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/iosAppDataStreams/*/measurementProtocolSecrets/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/androidAppDataStreams/*/measurementProtocolSecrets/*}" + "path": "/v2/{name=projects/*/locations/*/keys/*}" } ] }, { - "shortName": "DeleteProperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteProperty", + "shortName": "GetKey", + "fullName": "google.api.apikeys.v2.ApiKeys.GetKey", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*}" + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/keys/*}" } ] }, { - "shortName": "DeleteUserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteUserLink", + "shortName": "GetKeyString", + "fullName": "google.api.apikeys.v2.ApiKeys.GetKeyString", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=accounts/*/userLinks/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/userLinks/*}" + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/keys/*}/keyString" } ] }, { - "shortName": "DeleteWebDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteWebDataStream", + "shortName": "ListKeys", + "fullName": "google.api.apikeys.v2.ApiKeys.ListKeys", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/webDataStreams/*}" + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/keys" } ] }, { - "shortName": "GetAccount", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAccount", + "shortName": "LookupKey", + "fullName": "google.api.apikeys.v2.ApiKeys.LookupKey", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{name=accounts/*}" + "path": "/v2/keys:lookupKey" } ] }, { - "shortName": "GetAndroidAppDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAndroidAppDataStream", + "shortName": "UndeleteKey", + "fullName": "google.api.apikeys.v2.ApiKeys.UndeleteKey", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/androidAppDataStreams/*}" + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/keys/*}:undelete" } ] }, { - "shortName": "GetConversionEvent", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetConversionEvent", + "shortName": "UpdateKey", + "fullName": "google.api.apikeys.v2.ApiKeys.UpdateKey", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/conversionEvents/*}" + "httpMethod": "PATCH", + "path": "/v2/{key.name=projects/*/locations/*/keys/*}" } ] - }, + } + ] + } + ], + "configFile": "apikeys_v2.yaml", + "serviceConfigApiNames": [ + "google.api.apikeys.v2.ApiKeys", + "google.longrunning.Operations" + ] + }, + { + "id": "google.api.servicecontrol.v1", + "directory": "google/api/servicecontrol/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "servicecontrol.googleapis.com", + "title": "Service Control API", + "description": "Provides admission control and telemetry reporting for services integrated with Service Infrastructure.", + "importDirectories": [ + "google/api", + "google/api/servicecontrol/v1", + "google/logging/type", + "google/protobuf", + "google/rpc" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "": 2, + "true": 6 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ServiceControl.V1": 8 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol": 8 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 8 + } + }, + "java_package": { + "valueCounts": { + "com.google.api.servicecontrol.v1": 8 + } + }, + "objc_class_prefix": { + "valueCounts": { + "": 7, + "GASC": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ServiceControl\\V1": 8 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ServiceControl::V1": 8 + } + } + }, + "services": [ + { + "shortName": "QuotaController", + "fullName": "google.api.servicecontrol.v1.QuotaController", + "methods": [ { - "shortName": "GetCustomDimension", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomDimension", + "shortName": "AllocateQuota", + "fullName": "google.api.servicecontrol.v1.QuotaController.AllocateQuota", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/customDimensions/*}" + "httpMethod": "POST", + "path": "/v1/services/{service_name}:allocateQuota" } ] - }, + } + ] + }, + { + "shortName": "ServiceController", + "fullName": "google.api.servicecontrol.v1.ServiceController", + "methods": [ { - "shortName": "GetCustomMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomMetric", + "shortName": "Check", + "fullName": "google.api.servicecontrol.v1.ServiceController.Check", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/customMetrics/*}" + "httpMethod": "POST", + "path": "/v1/services/{service_name}:check" } ] }, { - "shortName": "GetDataRetentionSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataRetentionSettings", + "shortName": "Report", + "fullName": "google.api.servicecontrol.v1.ServiceController.Report", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataRetentionSettings}" + "httpMethod": "POST", + "path": "/v1/services/{service_name}:report" } ] - }, + } + ] + } + ], + "configFile": "servicecontrol.yaml", + "serviceConfigApiNames": [ + "google.api.servicecontrol.v1.QuotaController", + "google.api.servicecontrol.v1.ServiceController" + ] + }, + { + "id": "google.api.servicecontrol.v2", + "directory": "google/api/servicecontrol/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "servicecontrol.googleapis.com", + "title": "Service Control API", + "description": "Provides admission control and telemetry reporting for services integrated with Service Infrastructure.", + "importDirectories": [ + "google/api", + "google/rpc", + "google/rpc/context" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 1 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ServiceControl.V2": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/api/servicecontrol/v2;servicecontrol": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.api.servicecontrol.v2": 1 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GASC": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ServiceControl\\V2": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ServiceControl::V2": 1 + } + } + }, + "services": [ + { + "shortName": "ServiceController", + "fullName": "google.api.servicecontrol.v2.ServiceController", + "methods": [ { - "shortName": "GetDataSharingSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataSharingSettings", + "shortName": "Check", + "fullName": "google.api.servicecontrol.v2.ServiceController.Check", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=accounts/*/dataSharingSettings}" + "httpMethod": "POST", + "path": "/v2/services/{service_name}:check" } ] }, { - "shortName": "GetDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataStream", + "shortName": "Report", + "fullName": "google.api.servicecontrol.v2.ServiceController.Report", "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/*}" + "httpMethod": "POST", + "path": "/v2/services/{service_name}:report" } ] - }, + } + ] + } + ], + "configFile": "servicecontrol.yaml", + "serviceConfigApiNames": [ + "google.api.servicecontrol.v2.ServiceController" + ] + }, + { + "id": "google.api.servicemanagement.v1", + "directory": "google/api/servicemanagement/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "servicemanagement.googleapis.com", + "title": "Service Management API", + "description": "Google Service Management allows service producers to publish their services on Google Cloud Platform so that they can be discovered and used by service consumers.", + "importDirectories": [ + "google/api", + "google/api/servicemanagement/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ServiceManagement.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/api/servicemanagement/v1;servicemanagement": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.api.servicemanagement.v1": 2 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GASM": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ServiceManagement\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ServiceManagement::V1": 2 + } + } + }, + "services": [ + { + "shortName": "ServiceManager", + "fullName": "google.api.servicemanagement.v1.ServiceManager", + "methods": [ { - "shortName": "GetDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLinkProposal", + "shortName": "CreateService", + "fullName": "google.api.servicemanagement.v1.ServiceManager.CreateService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}" + "httpMethod": "POST", + "path": "/v1/services" } ] }, { - "shortName": "GetGlobalSiteTag", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetGlobalSiteTag", + "shortName": "CreateServiceConfig", + "fullName": "google.api.servicemanagement.v1.ServiceManager.CreateServiceConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/webDataStreams/*/globalSiteTag}" + "httpMethod": "POST", + "path": "/v1/services/{service_name}/configs" } ] }, { - "shortName": "GetGoogleSignalsSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetGoogleSignalsSettings", + "shortName": "CreateServiceRollout", + "fullName": "google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/googleSignalsSettings}" + "httpMethod": "POST", + "path": "/v1/services/{service_name}/rollouts" } ] }, { - "shortName": "GetIosAppDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetIosAppDataStream", + "shortName": "DeleteService", + "fullName": "google.api.servicemanagement.v1.ServiceManager.DeleteService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/iosAppDataStreams/*}" + "httpMethod": "DELETE", + "path": "/v1/services/{service_name}" } ] }, { - "shortName": "GetMeasurementProtocolSecret", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetMeasurementProtocolSecret", + "shortName": "GenerateConfigReport", + "fullName": "google.api.servicemanagement.v1.ServiceManager.GenerateConfigReport", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/webDataStreams/*/measurementProtocolSecrets/*}" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/iosAppDataStreams/*/measurementProtocolSecrets/*}" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/androidAppDataStreams/*/measurementProtocolSecrets/*}" + "httpMethod": "POST", + "path": "/v1/services:generateConfigReport" } ] }, { - "shortName": "GetProperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetProperty", + "shortName": "GetService", + "fullName": "google.api.servicemanagement.v1.ServiceManager.GetService", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*}" + "path": "/v1/services/{service_name}" } ] }, { - "shortName": "GetUserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetUserLink", + "shortName": "GetServiceConfig", + "fullName": "google.api.servicemanagement.v1.ServiceManager.GetServiceConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{name=accounts/*/userLinks/*}" + "path": "/v1/services/{service_name}/configs/{config_id}" }, { "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/userLinks/*}" + "path": "/v1/services/{service_name}/config" } ] }, { - "shortName": "GetWebDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetWebDataStream", + "shortName": "GetServiceRollout", + "fullName": "google.api.servicemanagement.v1.ServiceManager.GetServiceRollout", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/webDataStreams/*}" + "path": "/v1/services/{service_name}/rollouts/{rollout_id}" } ] }, { - "shortName": "ListAccountSummaries", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccountSummaries", + "shortName": "ListServiceConfigs", + "fullName": "google.api.servicemanagement.v1.ServiceManager.ListServiceConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/accountSummaries" + "path": "/v1/services/{service_name}/configs" } ] }, { - "shortName": "ListAccounts", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccounts", + "shortName": "ListServiceRollouts", + "fullName": "google.api.servicemanagement.v1.ServiceManager.ListServiceRollouts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/accounts" + "path": "/v1/services/{service_name}/rollouts" } ] }, { - "shortName": "ListAndroidAppDataStreams", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAndroidAppDataStreams", + "shortName": "ListServices", + "fullName": "google.api.servicemanagement.v1.ServiceManager.ListServices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/androidAppDataStreams" + "path": "/v1/services" } ] }, { - "shortName": "ListConversionEvents", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListConversionEvents", + "shortName": "SubmitConfigSource", + "fullName": "google.api.servicemanagement.v1.ServiceManager.SubmitConfigSource", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/conversionEvents" + "httpMethod": "POST", + "path": "/v1/services/{service_name}/configs:submit" } ] }, { - "shortName": "ListCustomDimensions", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomDimensions", + "shortName": "UndeleteService", + "fullName": "google.api.servicemanagement.v1.ServiceManager.UndeleteService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/customDimensions" + "httpMethod": "POST", + "path": "/v1/services/{service_name}:undelete" } ] - }, + } + ] + } + ], + "configFile": "servicemanagement_v1.yaml", + "serviceConfigApiNames": [ + "google.api.servicemanagement.v1.ServiceManager" + ] + }, + { + "id": "google.api.serviceusage.v1", + "directory": "google/api/serviceusage/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "serviceusage.googleapis.com", + "title": "Service Usage API", + "description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", + "importDirectories": [ + "google/api", + "google/api/serviceusage/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ServiceUsage.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/api/serviceusage/v1;serviceusage": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.api.serviceusage.v1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ServiceUsage\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ServiceUsage::V1": 2 + } + } + }, + "services": [ + { + "shortName": "ServiceUsage", + "fullName": "google.api.serviceusage.v1.ServiceUsage", + "methods": [ { - "shortName": "ListCustomMetrics", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomMetrics", + "shortName": "BatchEnableServices", + "fullName": "google.api.serviceusage.v1.ServiceUsage.BatchEnableServices", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/customMetrics" + "httpMethod": "POST", + "path": "/v1/{parent=*/*}/services:batchEnable" } ] }, { - "shortName": "ListDataStreams", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDataStreams", + "shortName": "BatchGetServices", + "fullName": "google.api.serviceusage.v1.ServiceUsage.BatchGetServices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/dataStreams" + "path": "/v1/{parent=*/*}/services:batchGet" } ] }, { - "shortName": "ListDisplayVideo360AdvertiserLinkProposals", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinkProposals", + "shortName": "DisableService", + "fullName": "google.api.serviceusage.v1.ServiceUsage.DisableService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinkProposals" + "httpMethod": "POST", + "path": "/v1/{name=*/*/services/*}:disable" } ] }, { - "shortName": "ListDisplayVideo360AdvertiserLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinks", + "shortName": "EnableService", + "fullName": "google.api.serviceusage.v1.ServiceUsage.EnableService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinks" + "httpMethod": "POST", + "path": "/v1/{name=*/*/services/*}:enable" } ] }, { - "shortName": "ListFirebaseLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListFirebaseLinks", + "shortName": "GetService", + "fullName": "google.api.serviceusage.v1.ServiceUsage.GetService", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/firebaseLinks" + "path": "/v1/{name=*/*/services/*}" } ] }, { - "shortName": "ListGoogleAdsLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListGoogleAdsLinks", + "shortName": "ListServices", + "fullName": "google.api.serviceusage.v1.ServiceUsage.ListServices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/googleAdsLinks" + "path": "/v1/{parent=*/*}/services" } ] - }, + } + ] + } + ], + "configFile": "serviceusage_v1.yaml", + "serviceConfigApiNames": [ + "google.api.serviceusage.v1.ServiceUsage" + ] + }, + { + "id": "google.api.serviceusage.v1beta1", + "directory": "google/api/serviceusage/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "serviceusage.googleapis.com", + "title": "Service Usage API", + "description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", + "importDirectories": [ + "google/api", + "google/api/serviceusage/v1beta1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Api.ServiceUsage.V1Beta1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/api/serviceusage/v1beta1;serviceusage": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.api.serviceusage.v1beta1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Api\\ServiceUsage\\V1beta1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Api::ServiceUsage::V1beta1": 2 + } + } + }, + "services": [ + { + "shortName": "ServiceUsage", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage", + "methods": [ { - "shortName": "ListIosAppDataStreams", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListIosAppDataStreams", + "shortName": "BatchEnableServices", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.BatchEnableServices", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/iosAppDataStreams" + "httpMethod": "POST", + "path": "/v1beta1/{parent=*/*}/services:batchEnable" } ] }, { - "shortName": "ListMeasurementProtocolSecrets", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListMeasurementProtocolSecrets", + "shortName": "CreateAdminOverride", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.CreateAdminOverride", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*/webDataStreams/*}/measurementProtocolSecrets" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*/iosAppDataStreams/*}/measurementProtocolSecrets" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*/androidAppDataStreams/*}/measurementProtocolSecrets" + "httpMethod": "POST", + "path": "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/adminOverrides" } ] }, { - "shortName": "ListProperties", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListProperties", + "shortName": "CreateConsumerOverride", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.CreateConsumerOverride", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/properties" + "httpMethod": "POST", + "path": "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/consumerOverrides" } ] }, { - "shortName": "ListUserLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListUserLinks", + "shortName": "DeleteAdminOverride", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.DeleteAdminOverride", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=accounts/*}/userLinks" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/userLinks" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/adminOverrides/*}" } ] }, { - "shortName": "ListWebDataStreams", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListWebDataStreams", + "shortName": "DeleteConsumerOverride", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.DeleteConsumerOverride", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/webDataStreams" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/consumerOverrides/*}" } ] }, { - "shortName": "ProvisionAccountTicket", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ProvisionAccountTicket", + "shortName": "DisableService", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.DisableService", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/accounts:provisionAccountTicket" + "path": "/v1beta1/{name=*/*/services/*}:disable" } ] }, { - "shortName": "SearchChangeHistoryEvents", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.SearchChangeHistoryEvents", + "shortName": "EnableService", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.EnableService", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{account=accounts/*}:searchChangeHistoryEvents" - } - ] - }, - { - "shortName": "UpdateAccount", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateAccount", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1alpha/{account.name=accounts/*}" - } - ] - }, - { - "shortName": "UpdateAndroidAppDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateAndroidAppDataStream", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1alpha/{android_app_data_stream.name=properties/*/androidAppDataStreams/*}" + "path": "/v1beta1/{name=*/*/services/*}:enable" } ] }, { - "shortName": "UpdateCustomDimension", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateCustomDimension", + "shortName": "GenerateServiceIdentity", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.GenerateServiceIdentity", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{custom_dimension.name=properties/*/customDimensions/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=*/*/services/*}:generateServiceIdentity" } ] }, { - "shortName": "UpdateCustomMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateCustomMetric", + "shortName": "GetConsumerQuotaLimit", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.GetConsumerQuotaLimit", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{custom_metric.name=properties/*/customMetrics/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*}" } ] }, { - "shortName": "UpdateDataRetentionSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateDataRetentionSettings", + "shortName": "GetConsumerQuotaMetric", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.GetConsumerQuotaMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{data_retention_settings.name=properties/*/dataRetentionSettings}" + "httpMethod": "GET", + "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*}" } ] }, { - "shortName": "UpdateDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateDataStream", + "shortName": "GetService", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.GetService", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{data_stream.name=properties/*/dataStreams/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=*/*/services/*}" } ] }, { - "shortName": "UpdateDisplayVideo360AdvertiserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateDisplayVideo360AdvertiserLink", + "shortName": "ImportAdminOverrides", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ImportAdminOverrides", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{display_video_360_advertiser_link.name=properties/*/displayVideo360AdvertiserLinks/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics:importAdminOverrides" } ] }, { - "shortName": "UpdateGoogleAdsLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateGoogleAdsLink", + "shortName": "ImportConsumerOverrides", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ImportConsumerOverrides", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{google_ads_link.name=properties/*/googleAdsLinks/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics:importConsumerOverrides" } ] }, { - "shortName": "UpdateGoogleSignalsSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateGoogleSignalsSettings", + "shortName": "ListAdminOverrides", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ListAdminOverrides", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{google_signals_settings.name=properties/*/googleSignalsSettings}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/adminOverrides" } ] }, { - "shortName": "UpdateIosAppDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateIosAppDataStream", + "shortName": "ListConsumerOverrides", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ListConsumerOverrides", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{ios_app_data_stream.name=properties/*/iosAppDataStreams/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/consumerOverrides" } ] }, { - "shortName": "UpdateMeasurementProtocolSecret", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateMeasurementProtocolSecret", + "shortName": "ListConsumerQuotaMetrics", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ListConsumerQuotaMetrics", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{measurement_protocol_secret.name=properties/*/webDataStreams/*/measurementProtocolSecrets/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v1alpha/{measurement_protocol_secret.name=properties/*/iosAppDataStreams/*/measurementProtocolSecrets/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v1alpha/{measurement_protocol_secret.name=properties/*/androidAppDataStreams/*/measurementProtocolSecrets/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics" } ] }, { - "shortName": "UpdateProperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateProperty", + "shortName": "ListServices", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ListServices", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{property.name=properties/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=*/*}/services" } ] }, { - "shortName": "UpdateUserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateUserLink", + "shortName": "UpdateAdminOverride", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.UpdateAdminOverride", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1alpha/{user_link.name=accounts/*/userLinks/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v1alpha/{user_link.name=properties/*/userLinks/*}" + "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/adminOverrides/*}" } ] }, { - "shortName": "UpdateWebDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateWebDataStream", + "shortName": "UpdateConsumerOverride", + "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.UpdateConsumerOverride", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1alpha/{web_data_stream.name=properties/*/webDataStreams/*}" + "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/consumerOverrides/*}" } ] } ] } ], - "configFile": "analyticsadmin_v1alpha.yaml" + "configFile": "serviceusage_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.api.serviceusage.v1beta1.ServiceUsage" + ] }, { - "id": "google.analytics.data.v1beta", - "directory": "google/analytics/data/v1beta", - "version": "v1beta", + "id": "google.appengine.v1", + "directory": "google/appengine/v1", + "version": "v1", "majorVersion": "v1", - "hostName": "analyticsdata.googleapis.com", - "title": "Google Analytics Data API", - "description": "Accesses report data in Google Analytics.", + "hostName": "appengine.googleapis.com", + "title": "App Engine Admin API", + "description": "Provisions and manages developers' App Engine applications.", "importDirectories": [ - "google/analytics/data/v1beta", - "google/api" + "google/api", + "google/appengine/v1", + "google/longrunning", + "google/protobuf" ], "options": { - "go_package": { + "csharp_namespace": { "valueCounts": { - "google.golang.org/genproto/googleapis/analytics/data/v1beta;data": 2 + "Google.Cloud.AppEngine.V1": 16 } }, - "java_multiple_files": { + "go_package": { "valueCounts": { - "true": 2 + "google.golang.org/genproto/googleapis/appengine/v1;appengine": 16 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 16 } }, "java_package": { "valueCounts": { - "com.google.analytics.data.v1beta": 2 + "com.google.appengine.v1": 15, + "com.google.appengine.v1.firewall": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\AppEngine\\V1": 16 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::AppEngine::V1": 16 } } }, "services": [ { - "shortName": "BetaAnalyticsData", - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", + "shortName": "Applications", + "fullName": "google.appengine.v1.Applications", "methods": [ { - "shortName": "BatchRunPivotReports", - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.BatchRunPivotReports", + "shortName": "CreateApplication", + "fullName": "google.appengine.v1.Applications.CreateApplication", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{property=properties/*}:batchRunPivotReports" + "path": "/v1/apps" } ] }, { - "shortName": "BatchRunReports", - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReports", + "shortName": "GetApplication", + "fullName": "google.appengine.v1.Applications.GetApplication", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=apps/*}" + } + ] + }, + { + "shortName": "RepairApplication", + "fullName": "google.appengine.v1.Applications.RepairApplication", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{property=properties/*}:batchRunReports" + "path": "/v1/{name=apps/*}:repair" } ] }, { - "shortName": "CheckCompatibility", - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibility", + "shortName": "UpdateApplication", + "fullName": "google.appengine.v1.Applications.UpdateApplication", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{name=apps/*}" + } + ] + } + ] + }, + { + "shortName": "AuthorizedCertificates", + "fullName": "google.appengine.v1.AuthorizedCertificates", + "methods": [ + { + "shortName": "CreateAuthorizedCertificate", + "fullName": "google.appengine.v1.AuthorizedCertificates.CreateAuthorizedCertificate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{property=properties/*}:checkCompatibility" + "path": "/v1/{parent=apps/*}/authorizedCertificates" } ] }, { - "shortName": "GetMetadata", - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.GetMetadata", + "shortName": "DeleteAuthorizedCertificate", + "fullName": "google.appengine.v1.AuthorizedCertificates.DeleteAuthorizedCertificate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{name=properties/*/metadata}" + "httpMethod": "DELETE", + "path": "/v1/{name=apps/*/authorizedCertificates/*}" } ] }, { - "shortName": "RunPivotReport", - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReport", + "shortName": "GetAuthorizedCertificate", + "fullName": "google.appengine.v1.AuthorizedCertificates.GetAuthorizedCertificate", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{property=properties/*}:runPivotReport" + "httpMethod": "GET", + "path": "/v1/{name=apps/*/authorizedCertificates/*}" } ] }, { - "shortName": "RunRealtimeReport", - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReport", + "shortName": "ListAuthorizedCertificates", + "fullName": "google.appengine.v1.AuthorizedCertificates.ListAuthorizedCertificates", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{property=properties/*}:runRealtimeReport" + "httpMethod": "GET", + "path": "/v1/{parent=apps/*}/authorizedCertificates" } ] }, { - "shortName": "RunReport", - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunReport", + "shortName": "UpdateAuthorizedCertificate", + "fullName": "google.appengine.v1.AuthorizedCertificates.UpdateAuthorizedCertificate", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{property=properties/*}:runReport" + "httpMethod": "PATCH", + "path": "/v1/{name=apps/*/authorizedCertificates/*}" } ] } ] - } - ], - "configFile": "analyticsdata_v1beta.yaml" - }, - { - "id": "google.api.servicecontrol.v1", - "directory": "google/api/servicecontrol/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "servicecontrol.googleapis.com", - "title": "Service Control API", - "description": "Provides admission control and telemetry reporting for services integrated with Service Infrastructure.", - "importDirectories": [ - "google/api", - "google/api/servicecontrol/v1", - "google/logging/type", - "google/protobuf", - "google/rpc" - ], - "options": { - "cc_enable_arenas": { - "valueCounts": { - "": 2, - "true": 6 - } - }, - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.ServiceControl.V1": 8 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol": 8 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 8 - } - }, - "java_package": { - "valueCounts": { - "com.google.api.servicecontrol.v1": 8 - } - }, - "objc_class_prefix": { - "valueCounts": { - "": 7, - "GASC": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\ServiceControl\\V1": 8 - } }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::ServiceControl::V1": 8 - } - } - }, - "services": [ { - "shortName": "QuotaController", - "fullName": "google.api.servicecontrol.v1.QuotaController", + "shortName": "AuthorizedDomains", + "fullName": "google.appengine.v1.AuthorizedDomains", "methods": [ { - "shortName": "AllocateQuota", - "fullName": "google.api.servicecontrol.v1.QuotaController.AllocateQuota", + "shortName": "ListAuthorizedDomains", + "fullName": "google.appengine.v1.AuthorizedDomains.ListAuthorizedDomains", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/services/{service_name}:allocateQuota" + "httpMethod": "GET", + "path": "/v1/{parent=apps/*}/authorizedDomains" } ] } ] }, { - "shortName": "ServiceController", - "fullName": "google.api.servicecontrol.v1.ServiceController", + "shortName": "DomainMappings", + "fullName": "google.appengine.v1.DomainMappings", "methods": [ { - "shortName": "Check", - "fullName": "google.api.servicecontrol.v1.ServiceController.Check", + "shortName": "CreateDomainMapping", + "fullName": "google.appengine.v1.DomainMappings.CreateDomainMapping", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/services/{service_name}:check" + "path": "/v1/{parent=apps/*}/domainMappings" } ] }, { - "shortName": "Report", - "fullName": "google.api.servicecontrol.v1.ServiceController.Report", + "shortName": "DeleteDomainMapping", + "fullName": "google.appengine.v1.DomainMappings.DeleteDomainMapping", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/services/{service_name}:report" + "httpMethod": "DELETE", + "path": "/v1/{name=apps/*/domainMappings/*}" + } + ] + }, + { + "shortName": "GetDomainMapping", + "fullName": "google.appengine.v1.DomainMappings.GetDomainMapping", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=apps/*/domainMappings/*}" + } + ] + }, + { + "shortName": "ListDomainMappings", + "fullName": "google.appengine.v1.DomainMappings.ListDomainMappings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=apps/*}/domainMappings" + } + ] + }, + { + "shortName": "UpdateDomainMapping", + "fullName": "google.appengine.v1.DomainMappings.UpdateDomainMapping", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{name=apps/*/domainMappings/*}" } ] } ] - } - ], - "configFile": "servicecontrol.yaml" - }, - { - "id": "google.api.servicemanagement.v1", - "directory": "google/api/servicemanagement/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "servicemanagement.googleapis.com", - "title": "Service Management API", - "description": "Google Service Management allows service producers to publish their services on Google Cloud Platform so that they can be discovered and used by service consumers.", - "importDirectories": [ - "google/api", - "google/api/servicemanagement/v1", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.ServiceManagement.V1": 2 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/api/servicemanagement/v1;servicemanagement": 2 - } }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.api.servicemanagement.v1": 2 - } - }, - "objc_class_prefix": { - "valueCounts": { - "GASM": 2 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\ServiceManagement\\V1": 2 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::ServiceManagement::V1": 2 - } - } - }, - "services": [ { - "shortName": "ServiceManager", - "fullName": "google.api.servicemanagement.v1.ServiceManager", + "shortName": "Firewall", + "fullName": "google.appengine.v1.Firewall", "methods": [ { - "shortName": "CreateService", - "fullName": "google.api.servicemanagement.v1.ServiceManager.CreateService", + "shortName": "BatchUpdateIngressRules", + "fullName": "google.appengine.v1.Firewall.BatchUpdateIngressRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/services" + "path": "/v1/{name=apps/*/firewall/ingressRules}:batchUpdate" } ] }, { - "shortName": "CreateServiceConfig", - "fullName": "google.api.servicemanagement.v1.ServiceManager.CreateServiceConfig", + "shortName": "CreateIngressRule", + "fullName": "google.appengine.v1.Firewall.CreateIngressRule", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/services/{service_name}/configs" + "path": "/v1/{parent=apps/*}/firewall/ingressRules" } ] }, { - "shortName": "CreateServiceRollout", - "fullName": "google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout", + "shortName": "DeleteIngressRule", + "fullName": "google.appengine.v1.Firewall.DeleteIngressRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/services/{service_name}/rollouts" + "httpMethod": "DELETE", + "path": "/v1/{name=apps/*/firewall/ingressRules/*}" } ] }, { - "shortName": "DeleteService", - "fullName": "google.api.servicemanagement.v1.ServiceManager.DeleteService", + "shortName": "GetIngressRule", + "fullName": "google.appengine.v1.Firewall.GetIngressRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/services/{service_name}" + "httpMethod": "GET", + "path": "/v1/{name=apps/*/firewall/ingressRules/*}" } ] }, { - "shortName": "DisableService", - "fullName": "google.api.servicemanagement.v1.ServiceManager.DisableService", + "shortName": "ListIngressRules", + "fullName": "google.appengine.v1.Firewall.ListIngressRules", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/services/{service_name}:disable" + "httpMethod": "GET", + "path": "/v1/{parent=apps/*}/firewall/ingressRules" } ] }, { - "shortName": "EnableService", - "fullName": "google.api.servicemanagement.v1.ServiceManager.EnableService", + "shortName": "UpdateIngressRule", + "fullName": "google.appengine.v1.Firewall.UpdateIngressRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{name=apps/*/firewall/ingressRules/*}" + } + ] + } + ] + }, + { + "shortName": "Instances", + "fullName": "google.appengine.v1.Instances", + "methods": [ + { + "shortName": "DebugInstance", + "fullName": "google.appengine.v1.Instances.DebugInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/services/{service_name}:enable" + "path": "/v1/{name=apps/*/services/*/versions/*/instances/*}:debug" } ] }, { - "shortName": "GenerateConfigReport", - "fullName": "google.api.servicemanagement.v1.ServiceManager.GenerateConfigReport", + "shortName": "DeleteInstance", + "fullName": "google.appengine.v1.Instances.DeleteInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/services:generateConfigReport" + "httpMethod": "DELETE", + "path": "/v1/{name=apps/*/services/*/versions/*/instances/*}" } ] }, { - "shortName": "GetService", - "fullName": "google.api.servicemanagement.v1.ServiceManager.GetService", + "shortName": "GetInstance", + "fullName": "google.appengine.v1.Instances.GetInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/services/{service_name}" + "path": "/v1/{name=apps/*/services/*/versions/*/instances/*}" } ] }, { - "shortName": "GetServiceConfig", - "fullName": "google.api.servicemanagement.v1.ServiceManager.GetServiceConfig", + "shortName": "ListInstances", + "fullName": "google.appengine.v1.Instances.ListInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/services/{service_name}/configs/{config_id}" - }, + "path": "/v1/{parent=apps/*/services/*/versions/*}/instances" + } + ] + } + ] + }, + { + "shortName": "Services", + "fullName": "google.appengine.v1.Services", + "methods": [ + { + "shortName": "DeleteService", + "fullName": "google.appengine.v1.Services.DeleteService", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "GET", - "path": "/v1/services/{service_name}/config" + "httpMethod": "DELETE", + "path": "/v1/{name=apps/*/services/*}" } ] }, { - "shortName": "GetServiceRollout", - "fullName": "google.api.servicemanagement.v1.ServiceManager.GetServiceRollout", + "shortName": "GetService", + "fullName": "google.appengine.v1.Services.GetService", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/services/{service_name}/rollouts/{rollout_id}" + "path": "/v1/{name=apps/*/services/*}" } ] }, { - "shortName": "ListServiceConfigs", - "fullName": "google.api.servicemanagement.v1.ServiceManager.ListServiceConfigs", + "shortName": "ListServices", + "fullName": "google.appengine.v1.Services.ListServices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/services/{service_name}/configs" + "path": "/v1/{parent=apps/*}/services" } ] }, { - "shortName": "ListServiceRollouts", - "fullName": "google.api.servicemanagement.v1.ServiceManager.ListServiceRollouts", + "shortName": "UpdateService", + "fullName": "google.appengine.v1.Services.UpdateService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/services/{service_name}/rollouts" + "httpMethod": "PATCH", + "path": "/v1/{name=apps/*/services/*}" + } + ] + } + ] + }, + { + "shortName": "Versions", + "fullName": "google.appengine.v1.Versions", + "methods": [ + { + "shortName": "CreateVersion", + "fullName": "google.appengine.v1.Versions.CreateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=apps/*/services/*}/versions" } ] }, { - "shortName": "ListServices", - "fullName": "google.api.servicemanagement.v1.ServiceManager.ListServices", + "shortName": "DeleteVersion", + "fullName": "google.appengine.v1.Versions.DeleteVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=apps/*/services/*/versions/*}" + } + ] + }, + { + "shortName": "GetVersion", + "fullName": "google.appengine.v1.Versions.GetVersion", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/services" + "path": "/v1/{name=apps/*/services/*/versions/*}" } ] }, { - "shortName": "SubmitConfigSource", - "fullName": "google.api.servicemanagement.v1.ServiceManager.SubmitConfigSource", + "shortName": "ListVersions", + "fullName": "google.appengine.v1.Versions.ListVersions", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/services/{service_name}/configs:submit" + "httpMethod": "GET", + "path": "/v1/{parent=apps/*/services/*}/versions" } ] }, { - "shortName": "UndeleteService", - "fullName": "google.api.servicemanagement.v1.ServiceManager.UndeleteService", + "shortName": "UpdateVersion", + "fullName": "google.appengine.v1.Versions.UpdateVersion", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/services/{service_name}:undelete" + "httpMethod": "PATCH", + "path": "/v1/{name=apps/*/services/*/versions/*}" } ] } ] } ], - "configFile": "servicemanagement_v1.yaml" + "configFile": "appengine_v1.yaml", + "serviceConfigApiNames": [ + "google.appengine.v1.Applications", + "google.appengine.v1.AuthorizedCertificates", + "google.appengine.v1.AuthorizedDomains", + "google.appengine.v1.DomainMappings", + "google.appengine.v1.Firewall", + "google.appengine.v1.Instances", + "google.appengine.v1.Services", + "google.appengine.v1.Versions" + ] }, { - "id": "google.api.serviceusage.v1", - "directory": "google/api/serviceusage/v1", - "version": "v1", + "id": "google.apps.alertcenter.v1beta1", + "directory": "google/apps/alertcenter/v1beta1", + "version": "v1beta1", "majorVersion": "v1", - "hostName": "serviceusage.googleapis.com", - "title": "Service Usage API", - "description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", + "hostName": "alertcenter.googleapis.com", + "title": "Google Workspace Alert Center API", + "description": "Manages alerts on issues affecting your domain.", "importDirectories": [ "google/api", - "google/api/serviceusage/v1", - "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/rpc" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.ServiceUsage.V1": 2 + "Google.Apps.AlertCenter.V1Beta1": 1 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/api/serviceusage/v1;serviceusage": 2 + "google.golang.org/genproto/googleapis/apps/alertcenter/v1beta1;alertcenter": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.api.serviceusage.v1": 2 + "com.google.apps.alertcenter.v1beta1": 1 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GAIC": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\ServiceUsage\\V1": 2 + "Google\\Apps\\AlertCenter\\V1beta1": 1 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::ServiceUsage::V1": 2 + "Google::Apps::AlertCenter::V1beta1": 1 } } }, "services": [ { - "shortName": "ServiceUsage", - "fullName": "google.api.serviceusage.v1.ServiceUsage", + "shortName": "AlertCenterService", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService", "methods": [ { - "shortName": "BatchEnableServices", - "fullName": "google.api.serviceusage.v1.ServiceUsage.BatchEnableServices", + "shortName": "BatchDeleteAlerts", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.BatchDeleteAlerts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=*/*}/services:batchEnable" + "path": "/v1beta1/alerts:batchDelete" } ] }, { - "shortName": "BatchGetServices", - "fullName": "google.api.serviceusage.v1.ServiceUsage.BatchGetServices", + "shortName": "BatchUndeleteAlerts", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.BatchUndeleteAlerts", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=*/*}/services:batchGet" + "httpMethod": "POST", + "path": "/v1beta1/alerts:batchUndelete" } ] }, { - "shortName": "DisableService", - "fullName": "google.api.serviceusage.v1.ServiceUsage.DisableService", + "shortName": "CreateAlertFeedback", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.CreateAlertFeedback", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=*/*/services/*}:disable" + "path": "/v1beta1/alerts/{alert_id}/feedback" } ] }, { - "shortName": "EnableService", - "fullName": "google.api.serviceusage.v1.ServiceUsage.EnableService", - "mode": "UNARY", + "shortName": "DeleteAlert", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.DeleteAlert", + "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=*/*/services/*}:enable" + "httpMethod": "DELETE", + "path": "/v1beta1/alerts/{alert_id}" } ] }, { - "shortName": "GetService", - "fullName": "google.api.serviceusage.v1.ServiceUsage.GetService", + "shortName": "GetAlert", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.GetAlert", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=*/*/services/*}" + "path": "/v1beta1/alerts/{alert_id}" } ] }, { - "shortName": "ListServices", - "fullName": "google.api.serviceusage.v1.ServiceUsage.ListServices", + "shortName": "GetAlertMetadata", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.GetAlertMetadata", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=*/*}/services" + "path": "/v1beta1/alerts/{alert_id}/metadata" + } + ] + }, + { + "shortName": "GetSettings", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.GetSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/settings" + } + ] + }, + { + "shortName": "ListAlertFeedback", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.ListAlertFeedback", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/alerts/{alert_id}/feedback" + } + ] + }, + { + "shortName": "ListAlerts", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.ListAlerts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/alerts" + } + ] + }, + { + "shortName": "UndeleteAlert", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.UndeleteAlert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/alerts/{alert_id}:undelete" + } + ] + }, + { + "shortName": "UpdateSettings", + "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.UpdateSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/settings" } ] } ] } ], - "configFile": "serviceusage_v1.yaml" + "configFile": "alertcenter.yaml", + "serviceConfigApiNames": [ + "google.apps.alertcenter.v1beta1.AlertCenterService" + ] }, { - "id": "google.api.serviceusage.v1beta1", - "directory": "google/api/serviceusage/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "serviceusage.googleapis.com", - "title": "Service Usage API", - "description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", + "id": "google.apps.drive.activity.v2", + "directory": "google/apps/drive/activity/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "driveactivity.googleapis.com", + "title": "Drive Activity API", + "description": "Provides a historical view of activity in Google Drive.", "importDirectories": [ "google/api", - "google/api/serviceusage/v1beta1", - "google/longrunning", + "google/apps/drive/activity/v2", "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Api.ServiceUsage.V1Beta1": 2 + "Google.Apps.Drive.Activity.V2": 7 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/api/serviceusage/v1beta1;serviceusage": 2 + "google.golang.org/genproto/googleapis/apps/drive/activity/v2;activity": 7 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 7 } }, "java_package": { "valueCounts": { - "com.google.api.serviceusage.v1beta1": 2 + "com.google.apps.drive.activity.v2": 7 } }, - "php_namespace": { + "objc_class_prefix": { "valueCounts": { - "Google\\Api\\ServiceUsage\\V1beta1": 2 + "GADA": 7 } }, - "ruby_package": { + "php_namespace": { "valueCounts": { - "Google::Api::ServiceUsage::V1beta1": 2 + "Google\\Apps\\Drive\\Activity\\V2": 7 } } }, "services": [ { - "shortName": "ServiceUsage", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage", + "shortName": "DriveActivityService", + "fullName": "google.apps.drive.activity.v2.DriveActivityService", "methods": [ { - "shortName": "BatchEnableServices", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.BatchEnableServices", + "shortName": "QueryDriveActivity", + "fullName": "google.apps.drive.activity.v2.DriveActivityService.QueryDriveActivity", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=*/*}/services:batchEnable" + "path": "/v2/activity:query" } ] - }, + } + ] + } + ], + "configFile": "driveactivity_v2.yaml", + "serviceConfigApiNames": [ + "google.apps.drive.activity.v2.DriveActivityService" + ] + }, + { + "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": "CreateAdminOverride", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.CreateAdminOverride", + "shortName": "Get", + "fullName": "ccc.hosted.marketplace.v2.CustomerLicenseService.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/adminOverrides" + "httpMethod": "GET", + "path": "/appsmarket/v2/customerLicense/{application_id}/{customer_id}" } ] - }, + } + ] + }, + { + "shortName": "LicenseNotificationService", + "fullName": "ccc.hosted.marketplace.v2.LicenseNotificationService", + "methods": [ { - "shortName": "CreateConsumerOverride", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.CreateConsumerOverride", + "shortName": "List", + "fullName": "ccc.hosted.marketplace.v2.LicenseNotificationService.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/consumerOverrides" + "httpMethod": "GET", + "path": "/appsmarket/v2/licenseNotification/{application_id}" } ] - }, + } + ] + }, + { + "shortName": "UserLicenseService", + "fullName": "ccc.hosted.marketplace.v2.UserLicenseService", + "methods": [ { - "shortName": "DeleteAdminOverride", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.DeleteAdminOverride", + "shortName": "Get", + "fullName": "ccc.hosted.marketplace.v2.UserLicenseService.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/adminOverrides/*}" + "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" + ] + }, + { + "id": "google.area120.tables.v1alpha1", + "directory": "google/area120/tables/v1alpha1", + "version": "v1alpha1", + "majorVersion": "v1", + "hostName": "area120tables.googleapis.com", + "title": "Area120 Tables API", + "description": "", + "importDirectories": [ + "google/api", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/area120/tables/v1alpha1;tables": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.area120.tables.v1alpha1": 1 + } + } + }, + "services": [ + { + "shortName": "TablesService", + "fullName": "google.area120.tables.v1alpha1.TablesService", + "methods": [ { - "shortName": "DeleteConsumerOverride", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.DeleteConsumerOverride", + "shortName": "BatchCreateRows", + "fullName": "google.area120.tables.v1alpha1.TablesService.BatchCreateRows", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/consumerOverrides/*}" + "httpMethod": "POST", + "path": "/v1alpha1/{parent=tables/*}/rows:batchCreate" } ] }, { - "shortName": "DisableService", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.DisableService", + "shortName": "BatchDeleteRows", + "fullName": "google.area120.tables.v1alpha1.TablesService.BatchDeleteRows", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=*/*/services/*}:disable" + "path": "/v1alpha1/{parent=tables/*}/rows:batchDelete" } ] }, { - "shortName": "EnableService", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.EnableService", + "shortName": "BatchUpdateRows", + "fullName": "google.area120.tables.v1alpha1.TablesService.BatchUpdateRows", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=*/*/services/*}:enable" + "path": "/v1alpha1/{parent=tables/*}/rows:batchUpdate" } ] }, { - "shortName": "GenerateServiceIdentity", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.GenerateServiceIdentity", + "shortName": "CreateRow", + "fullName": "google.area120.tables.v1alpha1.TablesService.CreateRow", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=*/*/services/*}:generateServiceIdentity" + "path": "/v1alpha1/{parent=tables/*}/rows" } ] }, { - "shortName": "GetConsumerQuotaLimit", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.GetConsumerQuotaLimit", + "shortName": "DeleteRow", + "fullName": "google.area120.tables.v1alpha1.TablesService.DeleteRow", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*}" + "httpMethod": "DELETE", + "path": "/v1alpha1/{name=tables/*/rows/*}" } ] }, { - "shortName": "GetConsumerQuotaMetric", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.GetConsumerQuotaMetric", + "shortName": "GetRow", + "fullName": "google.area120.tables.v1alpha1.TablesService.GetRow", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*}" + "path": "/v1alpha1/{name=tables/*/rows/*}" } ] }, { - "shortName": "GetService", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.GetService", + "shortName": "GetTable", + "fullName": "google.area120.tables.v1alpha1.TablesService.GetTable", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=*/*/services/*}" - } - ] - }, - { - "shortName": "ImportAdminOverrides", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ImportAdminOverrides", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics:importAdminOverrides" - } - ] - }, - { - "shortName": "ImportConsumerOverrides", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ImportConsumerOverrides", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics:importConsumerOverrides" + "path": "/v1alpha1/{name=tables/*}" } ] }, { - "shortName": "ListAdminOverrides", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ListAdminOverrides", + "shortName": "GetWorkspace", + "fullName": "google.area120.tables.v1alpha1.TablesService.GetWorkspace", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/adminOverrides" + "path": "/v1alpha1/{name=workspaces/*}" } ] }, { - "shortName": "ListConsumerOverrides", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ListConsumerOverrides", + "shortName": "ListRows", + "fullName": "google.area120.tables.v1alpha1.TablesService.ListRows", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/consumerOverrides" + "path": "/v1alpha1/{parent=tables/*}/rows" } ] }, { - "shortName": "ListConsumerQuotaMetrics", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ListConsumerQuotaMetrics", + "shortName": "ListTables", + "fullName": "google.area120.tables.v1alpha1.TablesService.ListTables", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics" + "path": "/v1alpha1/tables" } ] }, { - "shortName": "ListServices", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.ListServices", + "shortName": "ListWorkspaces", + "fullName": "google.area120.tables.v1alpha1.TablesService.ListWorkspaces", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=*/*}/services" - } - ] - }, - { - "shortName": "UpdateAdminOverride", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.UpdateAdminOverride", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/adminOverrides/*}" + "path": "/v1alpha1/workspaces" } ] }, { - "shortName": "UpdateConsumerOverride", - "fullName": "google.api.serviceusage.v1beta1.ServiceUsage.UpdateConsumerOverride", + "shortName": "UpdateRow", + "fullName": "google.area120.tables.v1alpha1.TablesService.UpdateRow", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/consumerOverrides/*}" + "path": "/v1alpha1/{row.name=tables/*/rows/*}" } ] } ] } ], - "configFile": "serviceusage_v1beta1.yaml" + "configFile": "area120tables_v1alpha1.yaml", + "serviceConfigApiNames": [ + "google.area120.tables.v1alpha1.TablesService" + ] }, { - "id": "google.appengine.v1", - "directory": "google/appengine/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "appengine.googleapis.com", - "title": "App Engine Admin API", - "description": "Provisions and manages developers' App Engine applications.", + "id": "google.bigtable.admin.v2", + "directory": "google/bigtable/admin/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "bigtableadmin.googleapis.com", + "title": "Cloud Bigtable Admin API", + "description": "Administer your Cloud Bigtable tables and instances.", "importDirectories": [ "google/api", - "google/appengine/v1", + "google/bigtable/admin/v2", + "google/iam/v1", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/rpc" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.AppEngine.V1": 16 + "Google.Cloud.Bigtable.Admin.V2": 5 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/appengine/v1;appengine": 16 + "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin": 5 } }, "java_multiple_files": { "valueCounts": { - "true": 16 + "true": 5 } }, "java_package": { "valueCounts": { - "com.google.appengine.v1": 15, - "com.google.appengine.v1.firewall": 1 + "com.google.bigtable.admin.v2": 5 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\AppEngine\\V1": 16 + "Google\\Cloud\\Bigtable\\Admin\\V2": 5 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::AppEngine::V1": 16 + "Google::Cloud::Bigtable::Admin::V2": 5 } } }, "services": [ { - "shortName": "Applications", - "fullName": "google.appengine.v1.Applications", + "shortName": "BigtableInstanceAdmin", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin", "methods": [ { - "shortName": "CreateApplication", - "fullName": "google.appengine.v1.Applications.CreateApplication", + "shortName": "CreateAppProfile", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.CreateAppProfile", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/apps" + "path": "/v2/{parent=projects/*/instances/*}/appProfiles" } ] }, { - "shortName": "GetApplication", - "fullName": "google.appengine.v1.Applications.GetApplication", + "shortName": "CreateCluster", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.CreateCluster", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=apps/*}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/instances/*}/clusters" } ] }, { - "shortName": "RepairApplication", - "fullName": "google.appengine.v1.Applications.RepairApplication", + "shortName": "CreateInstance", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.CreateInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=apps/*}:repair" + "path": "/v2/{parent=projects/*}/instances" } ] }, { - "shortName": "UpdateApplication", - "fullName": "google.appengine.v1.Applications.UpdateApplication", + "shortName": "DeleteAppProfile", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.DeleteAppProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{name=apps/*}" + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/instances/*/appProfiles/*}" } ] - } - ] - }, - { - "shortName": "AuthorizedCertificates", - "fullName": "google.appengine.v1.AuthorizedCertificates", - "methods": [ + }, { - "shortName": "CreateAuthorizedCertificate", - "fullName": "google.appengine.v1.AuthorizedCertificates.CreateAuthorizedCertificate", + "shortName": "DeleteCluster", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.DeleteCluster", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=apps/*}/authorizedCertificates" + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/instances/*/clusters/*}" } ] }, { - "shortName": "DeleteAuthorizedCertificate", - "fullName": "google.appengine.v1.AuthorizedCertificates.DeleteAuthorizedCertificate", + "shortName": "DeleteInstance", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.DeleteInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=apps/*/authorizedCertificates/*}" + "path": "/v2/{name=projects/*/instances/*}" } ] }, { - "shortName": "GetAuthorizedCertificate", - "fullName": "google.appengine.v1.AuthorizedCertificates.GetAuthorizedCertificate", + "shortName": "GetAppProfile", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.GetAppProfile", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=apps/*/authorizedCertificates/*}" + "path": "/v2/{name=projects/*/instances/*/appProfiles/*}" } ] }, { - "shortName": "ListAuthorizedCertificates", - "fullName": "google.appengine.v1.AuthorizedCertificates.ListAuthorizedCertificates", + "shortName": "GetCluster", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.GetCluster", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=apps/*}/authorizedCertificates" + "path": "/v2/{name=projects/*/instances/*/clusters/*}" } ] }, { - "shortName": "UpdateAuthorizedCertificate", - "fullName": "google.appengine.v1.AuthorizedCertificates.UpdateAuthorizedCertificate", + "shortName": "GetIamPolicy", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{name=apps/*/authorizedCertificates/*}" + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/instances/*}:getIamPolicy" } ] - } - ] - }, - { - "shortName": "AuthorizedDomains", - "fullName": "google.appengine.v1.AuthorizedDomains", - "methods": [ + }, { - "shortName": "ListAuthorizedDomains", - "fullName": "google.appengine.v1.AuthorizedDomains.ListAuthorizedDomains", + "shortName": "GetInstance", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.GetInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=apps/*}/authorizedDomains" + "path": "/v2/{name=projects/*/instances/*}" } ] - } - ] - }, - { - "shortName": "DomainMappings", - "fullName": "google.appengine.v1.DomainMappings", - "methods": [ + }, { - "shortName": "CreateDomainMapping", - "fullName": "google.appengine.v1.DomainMappings.CreateDomainMapping", + "shortName": "ListAppProfiles", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.ListAppProfiles", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=apps/*}/domainMappings" + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/instances/*}/appProfiles" } ] }, { - "shortName": "DeleteDomainMapping", - "fullName": "google.appengine.v1.DomainMappings.DeleteDomainMapping", + "shortName": "ListClusters", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.ListClusters", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=apps/*/domainMappings/*}" + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/instances/*}/clusters" } ] }, { - "shortName": "GetDomainMapping", - "fullName": "google.appengine.v1.DomainMappings.GetDomainMapping", + "shortName": "ListHotTablets", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.ListHotTablets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=apps/*/domainMappings/*}" + "path": "/v2/{parent=projects/*/instances/*/clusters/*}/hotTablets" } ] }, { - "shortName": "ListDomainMappings", - "fullName": "google.appengine.v1.DomainMappings.ListDomainMappings", + "shortName": "ListInstances", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.ListInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=apps/*}/domainMappings" + "path": "/v2/{parent=projects/*}/instances" } ] }, { - "shortName": "UpdateDomainMapping", - "fullName": "google.appengine.v1.DomainMappings.UpdateDomainMapping", + "shortName": "PartialUpdateCluster", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.PartialUpdateCluster", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{name=apps/*/domainMappings/*}" + "path": "/v2/{cluster.name=projects/*/instances/*/clusters/*}" } ] - } - ] - }, - { - "shortName": "Firewall", - "fullName": "google.appengine.v1.Firewall", - "methods": [ + }, { - "shortName": "BatchUpdateIngressRules", - "fullName": "google.appengine.v1.Firewall.BatchUpdateIngressRules", + "shortName": "PartialUpdateInstance", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.PartialUpdateInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=apps/*/firewall/ingressRules}:batchUpdate" + "httpMethod": "PATCH", + "path": "/v2/{instance.name=projects/*/instances/*}" } ] }, { - "shortName": "CreateIngressRule", - "fullName": "google.appengine.v1.Firewall.CreateIngressRule", + "shortName": "SetIamPolicy", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=apps/*}/firewall/ingressRules" + "path": "/v2/{resource=projects/*/instances/*}:setIamPolicy" } ] }, { - "shortName": "DeleteIngressRule", - "fullName": "google.appengine.v1.Firewall.DeleteIngressRule", + "shortName": "TestIamPermissions", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=apps/*/firewall/ingressRules/*}" + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/instances/*}:testIamPermissions" } ] }, { - "shortName": "GetIngressRule", - "fullName": "google.appengine.v1.Firewall.GetIngressRule", + "shortName": "UpdateAppProfile", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.UpdateAppProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=apps/*/firewall/ingressRules/*}" + "httpMethod": "PATCH", + "path": "/v2/{app_profile.name=projects/*/instances/*/appProfiles/*}" } ] }, { - "shortName": "ListIngressRules", - "fullName": "google.appengine.v1.Firewall.ListIngressRules", + "shortName": "UpdateCluster", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.UpdateCluster", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=apps/*}/firewall/ingressRules" + "httpMethod": "PUT", + "path": "/v2/{name=projects/*/instances/*/clusters/*}" } ] }, { - "shortName": "UpdateIngressRule", - "fullName": "google.appengine.v1.Firewall.UpdateIngressRule", + "shortName": "UpdateInstance", + "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.UpdateInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{name=apps/*/firewall/ingressRules/*}" + "httpMethod": "PUT", + "path": "/v2/{name=projects/*/instances/*}" } ] } ] }, { - "shortName": "Instances", - "fullName": "google.appengine.v1.Instances", + "shortName": "BigtableTableAdmin", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin", "methods": [ { - "shortName": "DebugInstance", - "fullName": "google.appengine.v1.Instances.DebugInstance", + "shortName": "CheckConsistency", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=apps/*/services/*/versions/*/instances/*}:debug" + "path": "/v2/{name=projects/*/instances/*/tables/*}:checkConsistency" } ] }, { - "shortName": "DeleteInstance", - "fullName": "google.appengine.v1.Instances.DeleteInstance", + "shortName": "CreateBackup", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CreateBackup", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=apps/*/services/*/versions/*/instances/*}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/instances/*/clusters/*}/backups" } ] }, { - "shortName": "GetInstance", - "fullName": "google.appengine.v1.Instances.GetInstance", + "shortName": "CreateTable", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CreateTable", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=apps/*/services/*/versions/*/instances/*}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/instances/*}/tables" } ] }, { - "shortName": "ListInstances", - "fullName": "google.appengine.v1.Instances.ListInstances", + "shortName": "CreateTableFromSnapshot", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CreateTableFromSnapshot", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=apps/*/services/*/versions/*}/instances" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/instances/*}/tables:createFromSnapshot" } ] - } - ] - }, - { - "shortName": "Services", - "fullName": "google.appengine.v1.Services", - "methods": [ + }, { - "shortName": "DeleteService", - "fullName": "google.appengine.v1.Services.DeleteService", + "shortName": "DeleteBackup", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DeleteBackup", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=apps/*/services/*}" + "path": "/v2/{name=projects/*/instances/*/clusters/*/backups/*}" } ] }, { - "shortName": "GetService", - "fullName": "google.appengine.v1.Services.GetService", + "shortName": "DeleteSnapshot", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DeleteSnapshot", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=apps/*/services/*}" + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/instances/*/clusters/*/snapshots/*}" } ] }, { - "shortName": "ListServices", - "fullName": "google.appengine.v1.Services.ListServices", + "shortName": "DeleteTable", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DeleteTable", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=apps/*}/services" + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/instances/*/tables/*}" } ] }, { - "shortName": "UpdateService", - "fullName": "google.appengine.v1.Services.UpdateService", + "shortName": "DropRowRange", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{name=apps/*/services/*}" + "httpMethod": "POST", + "path": "/v2/{name=projects/*/instances/*/tables/*}:dropRowRange" } ] - } - ] - }, - { - "shortName": "Versions", - "fullName": "google.appengine.v1.Versions", - "methods": [ + }, { - "shortName": "CreateVersion", - "fullName": "google.appengine.v1.Versions.CreateVersion", + "shortName": "GenerateConsistencyToken", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=apps/*/services/*}/versions" + "path": "/v2/{name=projects/*/instances/*/tables/*}:generateConsistencyToken" } ] }, { - "shortName": "DeleteVersion", - "fullName": "google.appengine.v1.Versions.DeleteVersion", + "shortName": "GetBackup", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetBackup", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=apps/*/services/*/versions/*}" + "httpMethod": "GET", + "path": "/v2/{name=projects/*/instances/*/clusters/*/backups/*}" } ] }, { - "shortName": "GetVersion", - "fullName": "google.appengine.v1.Versions.GetVersion", + "shortName": "GetIamPolicy", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=apps/*/services/*/versions/*}" + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/instances/*/tables/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:getIamPolicy" } ] }, { - "shortName": "ListVersions", - "fullName": "google.appengine.v1.Versions.ListVersions", + "shortName": "GetSnapshot", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetSnapshot", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=apps/*/services/*}/versions" + "path": "/v2/{name=projects/*/instances/*/clusters/*/snapshots/*}" } ] }, { - "shortName": "UpdateVersion", - "fullName": "google.appengine.v1.Versions.UpdateVersion", + "shortName": "GetTable", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetTable", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{name=apps/*/services/*/versions/*}" + "httpMethod": "GET", + "path": "/v2/{name=projects/*/instances/*/tables/*}" } ] - } - ] - } - ], - "configFile": "appengine_v1.yaml" - }, - { - "id": "google.apps.alertcenter.v1beta1", - "directory": "google/apps/alertcenter/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "alertcenter.googleapis.com", - "title": "Google Workspace Alert Center API", - "description": "Manages alerts on issues affecting your domain.", - "importDirectories": [ - "google/api", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Apps.AlertCenter.V1Beta1": 1 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/apps/alertcenter/v1beta1;alertcenter": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.apps.alertcenter.v1beta1": 1 - } - }, - "objc_class_prefix": { - "valueCounts": { - "GAIC": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Apps\\AlertCenter\\V1beta1": 1 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Apps::AlertCenter::V1beta1": 1 - } - } - }, - "services": [ - { - "shortName": "AlertCenterService", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService", - "methods": [ + }, { - "shortName": "BatchDeleteAlerts", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.BatchDeleteAlerts", + "shortName": "ListBackups", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ListBackups", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/alerts:batchDelete" + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/instances/*/clusters/*}/backups" } ] }, { - "shortName": "BatchUndeleteAlerts", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.BatchUndeleteAlerts", + "shortName": "ListSnapshots", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ListSnapshots", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/alerts:batchUndelete" + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/instances/*/clusters/*}/snapshots" } ] }, { - "shortName": "CreateAlertFeedback", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.CreateAlertFeedback", + "shortName": "ListTables", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ListTables", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/alerts/{alert_id}/feedback" + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/instances/*}/tables" } ] }, { - "shortName": "DeleteAlert", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.DeleteAlert", + "shortName": "ModifyColumnFamilies", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/alerts/{alert_id}" + "httpMethod": "POST", + "path": "/v2/{name=projects/*/instances/*/tables/*}:modifyColumnFamilies" } ] }, { - "shortName": "GetAlert", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.GetAlert", + "shortName": "RestoreTable", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.RestoreTable", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/alerts/{alert_id}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/instances/*}/tables:restore" } ] }, { - "shortName": "GetAlertMetadata", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.GetAlertMetadata", + "shortName": "SetIamPolicy", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/alerts/{alert_id}/metadata" + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/instances/*/tables/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:setIamPolicy" } ] }, { - "shortName": "GetSettings", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.GetSettings", + "shortName": "SnapshotTable", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.SnapshotTable", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/settings" + "httpMethod": "POST", + "path": "/v2/{name=projects/*/instances/*/tables/*}:snapshot" } ] }, { - "shortName": "ListAlertFeedback", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.ListAlertFeedback", + "shortName": "TestIamPermissions", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/alerts/{alert_id}/feedback" + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/instances/*/tables/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:testIamPermissions" } ] }, { - "shortName": "ListAlerts", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.ListAlerts", + "shortName": "UndeleteTable", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.UndeleteTable", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/alerts" + "httpMethod": "POST", + "path": "/v2/{name=projects/*/instances/*/tables/*}:undelete" } ] }, { - "shortName": "UndeleteAlert", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.UndeleteAlert", + "shortName": "UpdateBackup", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.UpdateBackup", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/alerts/{alert_id}:undelete" + "httpMethod": "PATCH", + "path": "/v2/{backup.name=projects/*/instances/*/clusters/*/backups/*}" } ] }, { - "shortName": "UpdateSettings", - "fullName": "google.apps.alertcenter.v1beta1.AlertCenterService.UpdateSettings", + "shortName": "UpdateTable", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.UpdateTable", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/settings" + "path": "/v2/{table.name=projects/*/instances/*/tables/*}" } ] } ] } ], - "configFile": "alertcenter.yaml" + "configFile": "bigtableadmin_v2.yaml", + "serviceConfigApiNames": [ + "google.bigtable.admin.v2.BigtableInstanceAdmin", + "google.bigtable.admin.v2.BigtableTableAdmin" + ] }, { - "id": "google.apps.drive.activity.v2", - "directory": "google/apps/drive/activity/v2", + "id": "google.bigtable.v2", + "directory": "google/bigtable/v2", "version": "v2", "majorVersion": "v2", - "hostName": "driveactivity.googleapis.com", - "title": "Drive Activity API", - "description": "Provides a historical view of activity in Google Drive.", + "hostName": "bigtable.googleapis.com", + "title": "Cloud Bigtable API", + "description": "API for reading and writing the contents of Bigtables associated with a cloud project.", "importDirectories": [ "google/api", - "google/apps/drive/activity/v2", - "google/protobuf" + "google/bigtable/v2", + "google/protobuf", + "google/rpc" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Apps.Drive.Activity.V2": 7 + "Google.Cloud.Bigtable.V2": 4 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/apps/drive/activity/v2;activity": 7 + "google.golang.org/genproto/googleapis/bigtable/v2;bigtable": 4 } }, "java_multiple_files": { "valueCounts": { - "true": 7 + "true": 4 } }, "java_package": { "valueCounts": { - "com.google.apps.drive.activity.v2": 7 + "com.google.bigtable.v2": 4 } }, - "objc_class_prefix": { + "php_namespace": { "valueCounts": { - "GADA": 7 + "Google\\Cloud\\Bigtable\\V2": 4 } }, - "php_namespace": { + "ruby_package": { "valueCounts": { - "Google\\Apps\\Drive\\Activity\\V2": 7 + "Google::Cloud::Bigtable::V2": 4 } } }, "services": [ { - "shortName": "DriveActivityService", - "fullName": "google.apps.drive.activity.v2.DriveActivityService", + "shortName": "Bigtable", + "fullName": "google.bigtable.v2.Bigtable", "methods": [ { - "shortName": "QueryDriveActivity", - "fullName": "google.apps.drive.activity.v2.DriveActivityService.QueryDriveActivity", + "shortName": "CheckAndMutateRow", + "fullName": "google.bigtable.v2.Bigtable.CheckAndMutateRow", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/activity:query" + "path": "/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow" } ] - } - ] - } - ], - "configFile": "driveactivity_v2.yaml" - }, - { - "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", + "shortName": "MutateRow", + "fullName": "google.bigtable.v2.Bigtable.MutateRow", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/appsmarket/v2/customerLicense/{application_id}/{customer_id}" + "httpMethod": "POST", + "path": "/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow" } ] - } - ] - }, - { - "shortName": "LicenseNotificationService", - "fullName": "ccc.hosted.marketplace.v2.LicenseNotificationService", - "methods": [ + }, { - "shortName": "List", - "fullName": "ccc.hosted.marketplace.v2.LicenseNotificationService.List", + "shortName": "MutateRows", + "fullName": "google.bigtable.v2.Bigtable.MutateRows", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows" + } + ] + }, + { + "shortName": "PingAndWarm", + "fullName": "google.bigtable.v2.Bigtable.PingAndWarm", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/appsmarket/v2/licenseNotification/{application_id}" + "httpMethod": "POST", + "path": "/v2/{name=projects/*/instances/*}:ping" } ] - } - ] - }, - { - "shortName": "UserLicenseService", - "fullName": "ccc.hosted.marketplace.v2.UserLicenseService", - "methods": [ + }, { - "shortName": "Get", - "fullName": "ccc.hosted.marketplace.v2.UserLicenseService.Get", + "shortName": "ReadModifyWriteRow", + "fullName": "google.bigtable.v2.Bigtable.ReadModifyWriteRow", "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow" + } + ] + }, + { + "shortName": "ReadRows", + "fullName": "google.bigtable.v2.Bigtable.ReadRows", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{table_name=projects/*/instances/*/tables/*}:readRows" + } + ] + }, + { + "shortName": "SampleRowKeys", + "fullName": "google.bigtable.v2.Bigtable.SampleRowKeys", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "GET", - "path": "/appsmarket/v2/userLicense/{application_id}/{user_id}" + "path": "/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys" } ] } ] } ], - "configFile": "appsmarket_v2.yaml" + "configFile": "bigtable_v2.yaml", + "serviceConfigApiNames": [ + "google.bigtable.v2.Bigtable" + ] }, { - "id": "google.area120.tables.v1alpha1", - "directory": "google/area120/tables/v1alpha1", - "version": "v1alpha1", + "id": "google.chromeos.moblab.v1beta1", + "directory": "google/chromeos/moblab/v1beta1", + "version": "v1beta1", "majorVersion": "v1", - "hostName": "area120tables.googleapis.com", - "title": "Area120 Tables API", - "description": "", + "hostName": "chromeosmoblab.googleapis.com", + "title": "Chrome OS Moblab API", + "description": "Moblab API is an external-facing API that Moblabs deployed in remote external labs of Chrome OS partners can communicate with for various testing needs.", "importDirectories": [ "google/api", + "google/chromeos/moblab/v1beta1", + "google/longrunning", "google/protobuf" ], "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/area120/tables/v1alpha1;tables": 1 + "google.golang.org/genproto/googleapis/chromeos/moblab/v1beta1;moblab": 2 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 2 } }, "java_package": { "valueCounts": { - "com.google.area120.tables.v1alpha1": 1 + "com.google.chromeos.moblab.v1beta1": 2 } } }, "services": [ { - "shortName": "TablesService", - "fullName": "google.area120.tables.v1alpha1.TablesService", + "shortName": "BuildService", + "fullName": "google.chromeos.moblab.v1beta1.BuildService", "methods": [ { - "shortName": "BatchCreateRows", - "fullName": "google.area120.tables.v1alpha1.TablesService.BatchCreateRows", + "shortName": "CheckBuildStageStatus", + "fullName": "google.chromeos.moblab.v1beta1.BuildService.CheckBuildStageStatus", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha1/{parent=tables/*}/rows:batchCreate" + "httpMethod": "GET", + "path": "/v1beta1/{name=buildTargets/*/models/*/builds/*/artifacts/*}:check" } ] }, { - "shortName": "BatchDeleteRows", - "fullName": "google.area120.tables.v1alpha1.TablesService.BatchDeleteRows", + "shortName": "FindMostStableBuild", + "fullName": "google.chromeos.moblab.v1beta1.BuildService.FindMostStableBuild", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha1/{parent=tables/*}/rows:batchDelete" + "httpMethod": "GET", + "path": "/v1beta1/{build_target=buildTargets/*}:findMostStableBuild" } ] }, { - "shortName": "BatchUpdateRows", - "fullName": "google.area120.tables.v1alpha1.TablesService.BatchUpdateRows", + "shortName": "ListBuildTargets", + "fullName": "google.chromeos.moblab.v1beta1.BuildService.ListBuildTargets", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha1/{parent=tables/*}/rows:batchUpdate" + "httpMethod": "GET", + "path": "/v1beta1/buildTargets" } ] }, { - "shortName": "CreateRow", - "fullName": "google.area120.tables.v1alpha1.TablesService.CreateRow", + "shortName": "ListBuilds", + "fullName": "google.chromeos.moblab.v1beta1.BuildService.ListBuilds", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=buildTargets/*/models/*}/builds" + } + ] + }, + { + "shortName": "ListModels", + "fullName": "google.chromeos.moblab.v1beta1.BuildService.ListModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=buildTargets/*}/models" + } + ] + }, + { + "shortName": "StageBuild", + "fullName": "google.chromeos.moblab.v1beta1.BuildService.StageBuild", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha1/{parent=tables/*}/rows" + "path": "/v1beta1/{name=buildTargets/*/models/*/builds/*/artifacts/*}:stage" + } + ] + } + ] + } + ], + "configFile": "chromeosmoblab_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.chromeos.moblab.v1beta1.BuildService" + ] + }, + { + "id": "google.chromeos.uidetection.v1", + "directory": "google/chromeos/uidetection/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "chromeosuidetection.googleapis.com", + "title": "ChromeOS UI Detection API", + "description": "ChromeOS UI Detection API allows image-based UI detection in E2E testing frameworks of ChromeOS. It will be used by ChromeOS labs and ChromeOS partners.", + "importDirectories": [ + "google/api" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/chromeos/uidetection/v1;uidetection": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.chromeos.uidetection.v1": 1 + } + } + }, + "services": [ + { + "shortName": "UiDetectionService", + "fullName": "google.chromeos.uidetection.v1.UiDetectionService", + "methods": [ + { + "shortName": "ExecuteDetection", + "fullName": "google.chromeos.uidetection.v1.UiDetectionService.ExecuteDetection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/executeDetection:execute" + } + ] + } + ] + } + ], + "configFile": "chromeosuidetection_v1.yaml", + "serviceConfigApiNames": [ + "google.chromeos.uidetection.v1.UiDetectionService" + ] + }, + { + "id": "google.cloud.accessapproval.v1", + "directory": "google/cloud/accessapproval/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "accessapproval.googleapis.com", + "title": "Access Approval API", + "description": "An API for controlling access to data by Google personnel.", + "importDirectories": [ + "google/api", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.AccessApproval.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/accessapproval/v1;accessapproval": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.accessapproval.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\AccessApproval\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::AccessApproval::V1": 1 + } + } + }, + "services": [ + { + "shortName": "AccessApproval", + "fullName": "google.cloud.accessapproval.v1.AccessApproval", + "methods": [ + { + "shortName": "ApproveApprovalRequest", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.ApproveApprovalRequest", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/approvalRequests/*}:approve" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=folders/*/approvalRequests/*}:approve" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=organizations/*/approvalRequests/*}:approve" } ] }, { - "shortName": "DeleteRow", - "fullName": "google.area120.tables.v1alpha1.TablesService.DeleteRow", + "shortName": "DeleteAccessApprovalSettings", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.DeleteAccessApprovalSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1alpha1/{name=tables/*/rows/*}" + "path": "/v1/{name=projects/*/accessApprovalSettings}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=folders/*/accessApprovalSettings}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/accessApprovalSettings}" } ] }, { - "shortName": "GetRow", - "fullName": "google.area120.tables.v1alpha1.TablesService.GetRow", + "shortName": "DismissApprovalRequest", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.DismissApprovalRequest", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha1/{name=tables/*/rows/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/approvalRequests/*}:dismiss" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=folders/*/approvalRequests/*}:dismiss" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=organizations/*/approvalRequests/*}:dismiss" } ] }, { - "shortName": "GetTable", - "fullName": "google.area120.tables.v1alpha1.TablesService.GetTable", + "shortName": "GetAccessApprovalServiceAccount", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.GetAccessApprovalServiceAccount", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{name=tables/*}" + "path": "/v1/{name=projects/*/serviceAccount}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/serviceAccount}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/serviceAccount}" } ] }, { - "shortName": "GetWorkspace", - "fullName": "google.area120.tables.v1alpha1.TablesService.GetWorkspace", + "shortName": "GetAccessApprovalSettings", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.GetAccessApprovalSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{name=workspaces/*}" + "path": "/v1/{name=projects/*/accessApprovalSettings}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/accessApprovalSettings}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/accessApprovalSettings}" } ] }, { - "shortName": "ListRows", - "fullName": "google.area120.tables.v1alpha1.TablesService.ListRows", + "shortName": "GetApprovalRequest", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.GetApprovalRequest", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{parent=tables/*}/rows" + "path": "/v1/{name=projects/*/approvalRequests/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/approvalRequests/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/approvalRequests/*}" } ] }, { - "shortName": "ListTables", - "fullName": "google.area120.tables.v1alpha1.TablesService.ListTables", + "shortName": "InvalidateApprovalRequest", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.InvalidateApprovalRequest", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha1/tables" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/approvalRequests/*}:invalidate" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=folders/*/approvalRequests/*}:invalidate" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=organizations/*/approvalRequests/*}:invalidate" } ] }, { - "shortName": "ListWorkspaces", - "fullName": "google.area120.tables.v1alpha1.TablesService.ListWorkspaces", + "shortName": "ListApprovalRequests", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.ListApprovalRequests", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/workspaces" + "path": "/v1/{parent=projects/*}/approvalRequests" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*}/approvalRequests" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*}/approvalRequests" } ] }, { - "shortName": "UpdateRow", - "fullName": "google.area120.tables.v1alpha1.TablesService.UpdateRow", + "shortName": "UpdateAccessApprovalSettings", + "fullName": "google.cloud.accessapproval.v1.AccessApproval.UpdateAccessApprovalSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1alpha1/{row.name=tables/*/rows/*}" + "path": "/v1/{settings.name=projects/*/accessApprovalSettings}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{settings.name=folders/*/accessApprovalSettings}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{settings.name=organizations/*/accessApprovalSettings}" } ] } ] } ], - "configFile": "area120tables_v1alpha1.yaml" + "configFile": "accessapproval_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.accessapproval.v1.AccessApproval" + ] }, { - "id": "google.bigtable.admin.v2", - "directory": "google/bigtable/admin/v2", - "version": "v2", - "majorVersion": "v2", - "hostName": "bigtableadmin.googleapis.com", - "title": "Cloud Bigtable Admin API", - "description": "Administer your Cloud Bigtable tables and instances.", + "id": "google.cloud.aiplatform.v1", + "directory": "google/cloud/aiplatform/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "aiplatform.googleapis.com", + "title": "Vertex AI API", + "description": "Train high-quality custom machine learning models with minimal machine learning expertise and effort.", "importDirectories": [ "google/api", - "google/bigtable/admin/v2", - "google/iam/v1", + "google/cloud/aiplatform/v1", + "google/cloud/aiplatform/v1/schema/trainingjob/definition", "google/longrunning", "google/protobuf", - "google/rpc" + "google/rpc", + "google/type" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Bigtable.Admin.V2": 5 + "Google.Cloud.AIPlatform.V1": 74, + "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance": 9, + "Google.Cloud.AIPlatform.V1.Schema.Predict.Params": 6, + "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction": 10, + "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition": 11 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin": 5 + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance": 9, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params": 6, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction": 10, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition": 11, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform": 74 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 110 } }, "java_package": { "valueCounts": { - "com.google.bigtable.admin.v2": 5 + "com.google.cloud.aiplatform.v1": 74, + "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, + "com.google.cloud.aiplatform.v1.schema.trainingjob.definition": 11 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Bigtable\\Admin\\V2": 5 + "Google\\Cloud\\AIPlatform\\V1": 74, + "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance": 9, + "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params": 6, + "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction": 10, + "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition": 11 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Bigtable::Admin::V2": 5 + "Google::Cloud::AIPlatform::V1": 74, + "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance": 9, + "Google::Cloud::AIPlatform::V1::Schema::Predict::Params": 6, + "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction": 10, + "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition": 11 } } }, "services": [ { - "shortName": "BigtableInstanceAdmin", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin", + "shortName": "DatasetService", + "fullName": "google.cloud.aiplatform.v1.DatasetService", "methods": [ { - "shortName": "CreateAppProfile", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.CreateAppProfile", + "shortName": "CreateDataset", + "fullName": "google.cloud.aiplatform.v1.DatasetService.CreateDataset", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/instances/*}/appProfiles" + "path": "/v1/{parent=projects/*/locations/*}/datasets" } ] }, { - "shortName": "CreateCluster", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.CreateCluster", + "shortName": "DeleteDataset", + "fullName": "google.cloud.aiplatform.v1.DatasetService.DeleteDataset", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/instances/*}/clusters" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/datasets/*}" } ] }, { - "shortName": "CreateInstance", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.CreateInstance", + "shortName": "ExportData", + "fullName": "google.cloud.aiplatform.v1.DatasetService.ExportData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*}/instances" + "path": "/v1/{name=projects/*/locations/*/datasets/*}:export" } ] }, { - "shortName": "DeleteAppProfile", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.DeleteAppProfile", + "shortName": "GetAnnotationSpec", + "fullName": "google.cloud.aiplatform.v1.DatasetService.GetAnnotationSpec", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/instances/*/appProfiles/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}" } ] }, { - "shortName": "DeleteCluster", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.DeleteCluster", + "shortName": "GetDataset", + "fullName": "google.cloud.aiplatform.v1.DatasetService.GetDataset", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/instances/*/clusters/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/datasets/*}" } ] }, { - "shortName": "DeleteInstance", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.DeleteInstance", + "shortName": "ImportData", + "fullName": "google.cloud.aiplatform.v1.DatasetService.ImportData", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/instances/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/datasets/*}:import" } ] }, { - "shortName": "GetAppProfile", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.GetAppProfile", + "shortName": "ListAnnotations", + "fullName": "google.cloud.aiplatform.v1.DatasetService.ListAnnotations", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/instances/*/appProfiles/*}" + "path": "/v1/{parent=projects/*/locations/*/datasets/*/dataItems/*}/annotations" } ] }, { - "shortName": "GetCluster", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.GetCluster", + "shortName": "ListDataItems", + "fullName": "google.cloud.aiplatform.v1.DatasetService.ListDataItems", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/instances/*/clusters/*}" + "path": "/v1/{parent=projects/*/locations/*/datasets/*}/dataItems" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.GetIamPolicy", + "shortName": "ListDatasets", + "fullName": "google.cloud.aiplatform.v1.DatasetService.ListDatasets", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*}:getIamPolicy" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/datasets" } ] }, { - "shortName": "GetInstance", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.GetInstance", + "shortName": "ListSavedQueries", + "fullName": "google.cloud.aiplatform.v1.DatasetService.ListSavedQueries", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/instances/*}" + "path": "/v1/{parent=projects/*/locations/*/datasets/*}/savedQueries" } ] }, { - "shortName": "ListAppProfiles", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.ListAppProfiles", + "shortName": "UpdateDataset", + "fullName": "google.cloud.aiplatform.v1.DatasetService.UpdateDataset", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/instances/*}/appProfiles" + "httpMethod": "PATCH", + "path": "/v1/{dataset.name=projects/*/locations/*/datasets/*}" } ] - }, + } + ] + }, + { + "shortName": "EndpointService", + "fullName": "google.cloud.aiplatform.v1.EndpointService", + "methods": [ { - "shortName": "ListClusters", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.ListClusters", + "shortName": "CreateEndpoint", + "fullName": "google.cloud.aiplatform.v1.EndpointService.CreateEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/instances/*}/clusters" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/endpoints" } ] }, { - "shortName": "ListInstances", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.ListInstances", + "shortName": "DeleteEndpoint", + "fullName": "google.cloud.aiplatform.v1.EndpointService.DeleteEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*}/instances" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/endpoints/*}" } ] }, { - "shortName": "PartialUpdateCluster", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.PartialUpdateCluster", + "shortName": "DeployModel", + "fullName": "google.cloud.aiplatform.v1.EndpointService.DeployModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{cluster.name=projects/*/instances/*/clusters/*}" + "httpMethod": "POST", + "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:deployModel" } ] }, { - "shortName": "PartialUpdateInstance", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.PartialUpdateInstance", + "shortName": "GetEndpoint", + "fullName": "google.cloud.aiplatform.v1.EndpointService.GetEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{instance.name=projects/*/instances/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/endpoints/*}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.SetIamPolicy", + "shortName": "ListEndpoints", + "fullName": "google.cloud.aiplatform.v1.EndpointService.ListEndpoints", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*}:setIamPolicy" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/endpoints" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.TestIamPermissions", + "shortName": "UndeployModel", + "fullName": "google.cloud.aiplatform.v1.EndpointService.UndeployModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*}:testIamPermissions" + "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:undeployModel" } ] }, { - "shortName": "UpdateAppProfile", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.UpdateAppProfile", + "shortName": "UpdateEndpoint", + "fullName": "google.cloud.aiplatform.v1.EndpointService.UpdateEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v2/{app_profile.name=projects/*/instances/*/appProfiles/*}" + "path": "/v1/{endpoint.name=projects/*/locations/*/endpoints/*}" } ] - }, + } + ] + }, + { + "shortName": "FeaturestoreOnlineServingService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService", + "methods": [ { - "shortName": "UpdateCluster", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.UpdateCluster", + "shortName": "ReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v2/{name=projects/*/instances/*/clusters/*}" + "httpMethod": "POST", + "path": "/v1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:readFeatureValues" } ] }, { - "shortName": "UpdateInstance", - "fullName": "google.bigtable.admin.v2.BigtableInstanceAdmin.UpdateInstance", - "mode": "UNARY", + "shortName": "StreamingReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.StreamingReadFeatureValues", + "mode": "SERVER_STREAMING", "bindings": [ { - "httpMethod": "PUT", - "path": "/v2/{name=projects/*/instances/*}" + "httpMethod": "POST", + "path": "/v1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:streamingReadFeatureValues" } ] } ] }, { - "shortName": "BigtableTableAdmin", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin", + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService", "methods": [ { - "shortName": "CheckConsistency", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency", + "shortName": "BatchCreateFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchCreateFeatures", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{name=projects/*/instances/*/tables/*}:checkConsistency" + "path": "/v1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features:batchCreate" } ] }, { - "shortName": "CreateBackup", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CreateBackup", + "shortName": "BatchReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchReadFeatureValues", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/instances/*/clusters/*}/backups" + "path": "/v1/{featurestore=projects/*/locations/*/featurestores/*}:batchReadFeatureValues" } ] }, { - "shortName": "CreateTable", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CreateTable", + "shortName": "CreateEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateEntityType", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/instances/*}/tables" + "path": "/v1/{parent=projects/*/locations/*/featurestores/*}/entityTypes" } ] }, { - "shortName": "CreateTableFromSnapshot", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CreateTableFromSnapshot", + "shortName": "CreateFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeature", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/instances/*}/tables:createFromSnapshot" + "path": "/v1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features" } ] }, { - "shortName": "DeleteBackup", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DeleteBackup", + "shortName": "CreateFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeaturestore", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/instances/*/clusters/*/backups/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/featurestores" } ] }, { - "shortName": "DeleteSnapshot", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DeleteSnapshot", - "mode": "UNARY", + "shortName": "DeleteEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteEntityType", + "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/instances/*/clusters/*/snapshots/*}" + "path": "/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}" } ] }, { - "shortName": "DeleteTable", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DeleteTable", + "shortName": "DeleteFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeature", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/instances/*/tables/*}" + "path": "/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" } ] }, { - "shortName": "DropRowRange", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange", + "shortName": "DeleteFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeaturestore", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{name=projects/*/instances/*/tables/*}:dropRowRange" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/featurestores/*}" } ] }, { - "shortName": "GenerateConsistencyToken", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken", + "shortName": "ExportFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ExportFeatureValues", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{name=projects/*/instances/*/tables/*}:generateConsistencyToken" + "path": "/v1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:exportFeatureValues" } ] }, { - "shortName": "GetBackup", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetBackup", + "shortName": "GetEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetEntityType", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/instances/*/clusters/*/backups/*}" + "path": "/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetIamPolicy", + "shortName": "GetFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeature", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*/tables/*}:getIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:getIamPolicy" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" } ] }, { - "shortName": "GetSnapshot", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetSnapshot", + "shortName": "GetFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeaturestore", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/instances/*/clusters/*/snapshots/*}" + "path": "/v1/{name=projects/*/locations/*/featurestores/*}" } ] }, { - "shortName": "GetTable", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetTable", + "shortName": "ImportFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ImportFeatureValues", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/instances/*/tables/*}" + "httpMethod": "POST", + "path": "/v1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:importFeatureValues" } ] }, { - "shortName": "ListBackups", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ListBackups", + "shortName": "ListEntityTypes", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListEntityTypes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/instances/*/clusters/*}/backups" + "path": "/v1/{parent=projects/*/locations/*/featurestores/*}/entityTypes" } ] }, { - "shortName": "ListSnapshots", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ListSnapshots", + "shortName": "ListFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/instances/*/clusters/*}/snapshots" + "path": "/v1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features" } ] }, { - "shortName": "ListTables", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ListTables", + "shortName": "ListFeaturestores", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeaturestores", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/instances/*}/tables" + "path": "/v1/{parent=projects/*/locations/*}/featurestores" } ] }, { - "shortName": "ModifyColumnFamilies", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies", + "shortName": "SearchFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.SearchFeatures", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{name=projects/*/instances/*/tables/*}:modifyColumnFamilies" + "httpMethod": "GET", + "path": "/v1/{location=projects/*/locations/*}/featurestores:searchFeatures" } ] }, { - "shortName": "RestoreTable", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.RestoreTable", + "shortName": "UpdateEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateEntityType", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/instances/*}/tables:restore" + "httpMethod": "PATCH", + "path": "/v1/{entity_type.name=projects/*/locations/*/featurestores/*/entityTypes/*}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.SetIamPolicy", + "shortName": "UpdateFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeature", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*/tables/*}:setIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:setIamPolicy" + "httpMethod": "PATCH", + "path": "/v1/{feature.name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" } ] }, { - "shortName": "SnapshotTable", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.SnapshotTable", + "shortName": "UpdateFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeaturestore", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{name=projects/*/instances/*/tables/*}:snapshot" + "httpMethod": "PATCH", + "path": "/v1/{featurestore.name=projects/*/locations/*/featurestores/*}" } ] - }, + } + ] + }, + { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService", + "methods": [ { - "shortName": "TestIamPermissions", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.TestIamPermissions", + "shortName": "CreateIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.CreateIndexEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*/tables/*}:testIamPermissions" - }, - { - "httpMethod": "POST", - "path": "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:testIamPermissions" + "path": "/v1/{parent=projects/*/locations/*}/indexEndpoints" } ] }, { - "shortName": "UpdateBackup", - "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.UpdateBackup", + "shortName": "DeleteIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeleteIndexEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{backup.name=projects/*/instances/*/clusters/*/backups/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/indexEndpoints/*}" } ] - } - ] - } - ], - "configFile": "bigtableadmin_v2.yaml" - }, - { - "id": "google.bigtable.v2", - "directory": "google/bigtable/v2", - "version": "v2", - "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.", - "importDirectories": [ - "google/api", - "google/bigtable/v2", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Bigtable.V2": 2 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/bigtable/v2;bigtable": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.bigtable.v2": 2 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\Bigtable\\V2": 2 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::Bigtable::V2": 2 - } - } - }, - "services": [ - { - "shortName": "Bigtable", - "fullName": "google.bigtable.v2.Bigtable", - "methods": [ + }, { - "shortName": "CheckAndMutateRow", - "fullName": "google.bigtable.v2.Bigtable.CheckAndMutateRow", + "shortName": "DeployIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeployIndex", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow" + "path": "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:deployIndex" } ] }, { - "shortName": "MutateRow", - "fullName": "google.bigtable.v2.Bigtable.MutateRow", + "shortName": "GetIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.GetIndexEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/indexEndpoints/*}" } ] }, { - "shortName": "MutateRows", - "fullName": "google.bigtable.v2.Bigtable.MutateRows", - "mode": "SERVER_STREAMING", + "shortName": "ListIndexEndpoints", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.ListIndexEndpoints", + "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/indexEndpoints" } ] }, { - "shortName": "ReadModifyWriteRow", - "fullName": "google.bigtable.v2.Bigtable.ReadModifyWriteRow", + "shortName": "MutateDeployedIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.MutateDeployedIndex", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow" + "path": "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:mutateDeployedIndex" } ] }, { - "shortName": "ReadRows", - "fullName": "google.bigtable.v2.Bigtable.ReadRows", - "mode": "SERVER_STREAMING", + "shortName": "UndeployIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UndeployIndex", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{table_name=projects/*/instances/*/tables/*}:readRows" + "path": "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:undeployIndex" } ] }, { - "shortName": "SampleRowKeys", - "fullName": "google.bigtable.v2.Bigtable.SampleRowKeys", - "mode": "SERVER_STREAMING", + "shortName": "UpdateIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UpdateIndexEndpoint", + "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys" + "httpMethod": "PATCH", + "path": "/v1/{index_endpoint.name=projects/*/locations/*/indexEndpoints/*}" } ] } ] - } - ], - "configFile": "bigtable_v2.yaml" - }, - { - "id": "google.chromeos.moblab.v1beta1", - "directory": "google/chromeos/moblab/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "chromeosmoblab.googleapis.com", - "title": "Chrome OS Moblab API", - "description": "Moblab API is an external-facing API that Moblabs deployed in remote external labs of Chrome OS partners can communicate with for various testing needs.", - "importDirectories": [ - "google/api", - "google/chromeos/moblab/v1beta1", - "google/longrunning", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/chromeos/moblab/v1beta1;moblab": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } }, - "java_package": { - "valueCounts": { - "com.google.chromeos.moblab.v1beta1": 2 - } - } - }, - "services": [ { - "shortName": "BuildService", - "fullName": "google.chromeos.moblab.v1beta1.BuildService", + "shortName": "IndexService", + "fullName": "google.cloud.aiplatform.v1.IndexService", "methods": [ { - "shortName": "CheckBuildStageStatus", - "fullName": "google.chromeos.moblab.v1beta1.BuildService.CheckBuildStageStatus", + "shortName": "CreateIndex", + "fullName": "google.cloud.aiplatform.v1.IndexService.CreateIndex", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=buildTargets/*/models/*/builds/*/artifacts/*}:check" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/indexes" } ] }, { - "shortName": "FindMostStableBuild", - "fullName": "google.chromeos.moblab.v1beta1.BuildService.FindMostStableBuild", + "shortName": "DeleteIndex", + "fullName": "google.cloud.aiplatform.v1.IndexService.DeleteIndex", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{build_target=buildTargets/*}:findMostStableBuild" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/indexes/*}" } ] }, { - "shortName": "ListBuildTargets", - "fullName": "google.chromeos.moblab.v1beta1.BuildService.ListBuildTargets", + "shortName": "GetIndex", + "fullName": "google.cloud.aiplatform.v1.IndexService.GetIndex", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/buildTargets" + "path": "/v1/{name=projects/*/locations/*/indexes/*}" } ] }, { - "shortName": "ListBuilds", - "fullName": "google.chromeos.moblab.v1beta1.BuildService.ListBuilds", + "shortName": "ListIndexes", + "fullName": "google.cloud.aiplatform.v1.IndexService.ListIndexes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=buildTargets/*/models/*}/builds" + "path": "/v1/{parent=projects/*/locations/*}/indexes" } ] }, { - "shortName": "ListModels", - "fullName": "google.chromeos.moblab.v1beta1.BuildService.ListModels", + "shortName": "RemoveDatapoints", + "fullName": "google.cloud.aiplatform.v1.IndexService.RemoveDatapoints", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=buildTargets/*}/models" + "httpMethod": "POST", + "path": "/v1/{index=projects/*/locations/*/indexes/*}:removeDatapoints" } ] }, { - "shortName": "StageBuild", - "fullName": "google.chromeos.moblab.v1beta1.BuildService.StageBuild", + "shortName": "UpdateIndex", + "fullName": "google.cloud.aiplatform.v1.IndexService.UpdateIndex", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{name=buildTargets/*/models/*/builds/*/artifacts/*}:stage" + "httpMethod": "PATCH", + "path": "/v1/{index.name=projects/*/locations/*/indexes/*}" } ] - } - ] - } - ], - "configFile": "chromeosmoblab_v1beta1.yaml" - }, - { - "id": "google.chromeos.uidetection.v1", - "directory": "google/chromeos/uidetection/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "chromeosuidetection.googleapis.com", - "title": "ChromeOS UI Detection API", - "description": "ChromeOS UI Detection API allows image-based UI detection in E2E testing frameworks of ChromeOS. It will be used by ChromeOS labs and ChromeOS partners.", - "importDirectories": [ - "google/api" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/chromeos/uidetection/v1;uidetection": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.chromeos.uidetection.v1": 1 - } - } - }, - "services": [ - { - "shortName": "UiDetectionService", - "fullName": "google.chromeos.uidetection.v1.UiDetectionService", - "methods": [ + }, { - "shortName": "ExecuteDetection", - "fullName": "google.chromeos.uidetection.v1.UiDetectionService.ExecuteDetection", + "shortName": "UpsertDatapoints", + "fullName": "google.cloud.aiplatform.v1.IndexService.UpsertDatapoints", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/executeDetection:execute" + "httpMethod": "POST", + "path": "/v1/{index=projects/*/locations/*/indexes/*}:upsertDatapoints" } ] } ] - } - ], - "configFile": "chromeosuidetection_v1.yaml" - }, - { - "id": "google.cloud.accessapproval.v1", - "directory": "google/cloud/accessapproval/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "accessapproval.googleapis.com", - "title": "Access Approval API", - "description": "An API for controlling access to data by Google personnel.", - "importDirectories": [ - "google/api", - "google/protobuf" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.AccessApproval.V1": 1 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/accessapproval/v1;accessapproval": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.accessapproval.v1": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\AccessApproval\\V1": 1 - } }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::AccessApproval::V1": 1 - } - } - }, - "services": [ { - "shortName": "AccessApproval", - "fullName": "google.cloud.accessapproval.v1.AccessApproval", + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService", "methods": [ { - "shortName": "ApproveApprovalRequest", - "fullName": "google.cloud.accessapproval.v1.AccessApproval.ApproveApprovalRequest", + "shortName": "CancelBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelBatchPredictionJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/approvalRequests/*}:approve" - }, - { - "httpMethod": "POST", - "path": "/v1/{name=folders/*/approvalRequests/*}:approve" - }, - { - "httpMethod": "POST", - "path": "/v1/{name=organizations/*/approvalRequests/*}:approve" + "path": "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}:cancel" } ] }, { - "shortName": "DeleteAccessApprovalSettings", - "fullName": "google.cloud.accessapproval.v1.AccessApproval.DeleteAccessApprovalSettings", + "shortName": "CancelCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelCustomJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/accessApprovalSettings}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=folders/*/accessApprovalSettings}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=organizations/*/accessApprovalSettings}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/customJobs/*}:cancel" } ] }, { - "shortName": "DismissApprovalRequest", - "fullName": "google.cloud.accessapproval.v1.AccessApproval.DismissApprovalRequest", + "shortName": "CancelDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelDataLabelingJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/approvalRequests/*}:dismiss" - }, - { - "httpMethod": "POST", - "path": "/v1/{name=folders/*/approvalRequests/*}:dismiss" - }, - { - "httpMethod": "POST", - "path": "/v1/{name=organizations/*/approvalRequests/*}:dismiss" + "path": "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}:cancel" } ] }, { - "shortName": "GetAccessApprovalSettings", - "fullName": "google.cloud.accessapproval.v1.AccessApproval.GetAccessApprovalSettings", + "shortName": "CancelHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelHyperparameterTuningJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/accessApprovalSettings}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=folders/*/accessApprovalSettings}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/accessApprovalSettings}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}:cancel" } ] }, { - "shortName": "GetApprovalRequest", - "fullName": "google.cloud.accessapproval.v1.AccessApproval.GetApprovalRequest", + "shortName": "CreateBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateBatchPredictionJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/approvalRequests/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=folders/*/approvalRequests/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/approvalRequests/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/batchPredictionJobs" } ] }, { - "shortName": "ListApprovalRequests", - "fullName": "google.cloud.accessapproval.v1.AccessApproval.ListApprovalRequests", + "shortName": "CreateCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateCustomJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*}/approvalRequests" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=folders/*}/approvalRequests" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=organizations/*}/approvalRequests" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/customJobs" } ] }, { - "shortName": "UpdateAccessApprovalSettings", - "fullName": "google.cloud.accessapproval.v1.AccessApproval.UpdateAccessApprovalSettings", + "shortName": "CreateDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateDataLabelingJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{settings.name=projects/*/accessApprovalSettings}" - }, - { - "httpMethod": "PATCH", - "path": "/v1/{settings.name=folders/*/accessApprovalSettings}" - }, + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/dataLabelingJobs" + } + ] + }, + { + "shortName": "CreateHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateHyperparameterTuningJob", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{settings.name=organizations/*/accessApprovalSettings}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" } ] - } - ] - } - ], - "configFile": "accessapproval_v1.yaml" - }, - { - "id": "google.cloud.aiplatform.v1", - "directory": "google/cloud/aiplatform/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "aiplatform.googleapis.com", - "title": "Vertex AI API", - "description": "Train high-quality custom machine learning models with minimal machine learning expertise and effort.", - "importDirectories": [ - "google/api", - "google/cloud/aiplatform/v1", - "google/cloud/aiplatform/v1/schema/trainingjob/definition", - "google/longrunning", - "google/protobuf", - "google/rpc", - "google/type" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.AIPlatform.V1": 71, - "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance": 9, - "Google.Cloud.AIPlatform.V1.Schema.Predict.Params": 6, - "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction": 10, - "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition": 11 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance": 9, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params": 6, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction": 10, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition": 11, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform": 71 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 107 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.aiplatform.v1": 71, - "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, - "com.google.cloud.aiplatform.v1.schema.trainingjob.definition": 11 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\AIPlatform\\V1": 71, - "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance": 9, - "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params": 6, - "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction": 10, - "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition": 11 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::AIPlatform::V1": 71, - "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance": 9, - "Google::Cloud::AIPlatform::V1::Schema::Predict::Params": 6, - "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction": 10, - "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition": 11 - } - } - }, - "services": [ - { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService", - "methods": [ + }, { - "shortName": "CreateDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.CreateDataset", + "shortName": "CreateModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/datasets" + "path": "/v1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs" } ] }, { - "shortName": "DeleteDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.DeleteDataset", + "shortName": "DeleteBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteBatchPredictionJob", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/datasets/*}" + "path": "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}" } ] }, { - "shortName": "ExportData", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ExportData", + "shortName": "DeleteCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteCustomJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/datasets/*}:export" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/customJobs/*}" } ] }, { - "shortName": "GetAnnotationSpec", - "fullName": "google.cloud.aiplatform.v1.DatasetService.GetAnnotationSpec", + "shortName": "DeleteDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteDataLabelingJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}" } ] }, { - "shortName": "GetDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.GetDataset", + "shortName": "DeleteHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteHyperparameterTuningJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/datasets/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" } ] }, { - "shortName": "ImportData", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ImportData", + "shortName": "DeleteModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/datasets/*}:import" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" } ] }, { - "shortName": "ListAnnotations", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListAnnotations", + "shortName": "GetBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/datasets/*/dataItems/*}/annotations" + "path": "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}" } ] }, { - "shortName": "ListDataItems", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListDataItems", + "shortName": "GetCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetCustomJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/datasets/*}/dataItems" + "path": "/v1/{name=projects/*/locations/*/customJobs/*}" } ] }, { - "shortName": "ListDatasets", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListDatasets", + "shortName": "GetDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetDataLabelingJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/datasets" + "path": "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}" } ] }, { - "shortName": "UpdateDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.UpdateDataset", + "shortName": "GetHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{dataset.name=projects/*/locations/*/datasets/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" } ] - } - ] - }, - { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1.EndpointService", - "methods": [ + }, { - "shortName": "CreateEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.CreateEndpoint", + "shortName": "GetModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/endpoints" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" } ] }, { - "shortName": "DeleteEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.DeleteEndpoint", + "shortName": "ListBatchPredictionJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/endpoints/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/batchPredictionJobs" } ] }, { - "shortName": "DeployModel", - "fullName": "google.cloud.aiplatform.v1.EndpointService.DeployModel", + "shortName": "ListCustomJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListCustomJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:deployModel" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/customJobs" } ] }, { - "shortName": "GetEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.GetEndpoint", + "shortName": "ListDataLabelingJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListDataLabelingJobs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/endpoints/*}" + "path": "/v1/{parent=projects/*/locations/*}/dataLabelingJobs" } ] }, { - "shortName": "ListEndpoints", - "fullName": "google.cloud.aiplatform.v1.EndpointService.ListEndpoints", + "shortName": "ListHyperparameterTuningJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/endpoints" + "path": "/v1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" } ] }, { - "shortName": "UndeployModel", - "fullName": "google.cloud.aiplatform.v1.EndpointService.UndeployModel", + "shortName": "ListModelDeploymentMonitoringJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListModelDeploymentMonitoringJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs" + } + ] + }, + { + "shortName": "PauseModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.PauseModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:undeployModel" + "path": "/v1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:pause" } ] }, { - "shortName": "UpdateEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.UpdateEndpoint", + "shortName": "ResumeModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.ResumeModelDeploymentMonitoringJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:resume" + } + ] + }, + { + "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", + "fullName": "google.cloud.aiplatform.v1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{model_deployment_monitoring_job=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:searchModelDeploymentMonitoringStatsAnomalies" + } + ] + }, + { + "shortName": "UpdateModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.UpdateModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{endpoint.name=projects/*/locations/*/endpoints/*}" + "path": "/v1/{model_deployment_monitoring_job.name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" } ] } ] }, { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService", + "shortName": "MetadataService", + "fullName": "google.cloud.aiplatform.v1.MetadataService", "methods": [ { - "shortName": "ReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues", + "shortName": "AddContextArtifactsAndExecutions", + "fullName": "google.cloud.aiplatform.v1.MetadataService.AddContextArtifactsAndExecutions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:readFeatureValues" + "path": "/v1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextArtifactsAndExecutions" } ] }, { - "shortName": "StreamingReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.StreamingReadFeatureValues", - "mode": "SERVER_STREAMING", + "shortName": "AddContextChildren", + "fullName": "google.cloud.aiplatform.v1.MetadataService.AddContextChildren", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:streamingReadFeatureValues" + "path": "/v1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextChildren" } ] - } - ] - }, - { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService", - "methods": [ + }, { - "shortName": "BatchCreateFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchCreateFeatures", + "shortName": "AddExecutionEvents", + "fullName": "google.cloud.aiplatform.v1.MetadataService.AddExecutionEvents", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features:batchCreate" + "path": "/v1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:addExecutionEvents" } ] }, { - "shortName": "BatchReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchReadFeatureValues", + "shortName": "CreateArtifact", + "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateArtifact", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{featurestore=projects/*/locations/*/featurestores/*}:batchReadFeatureValues" + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/artifacts" } ] }, { - "shortName": "CreateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateEntityType", + "shortName": "CreateContext", + "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateContext", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/featurestores/*}/entityTypes" + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/contexts" } ] }, { - "shortName": "CreateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeature", + "shortName": "CreateExecution", + "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateExecution", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features" + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/executions" } ] }, { - "shortName": "CreateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeaturestore", + "shortName": "CreateMetadataSchema", + "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateMetadataSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/featurestores" + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas" } ] }, { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteEntityType", + "shortName": "CreateMetadataStore", + "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateMetadataStore", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/metadataStores" } ] }, { - "shortName": "DeleteFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeature", + "shortName": "DeleteArtifact", + "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteArtifact", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" + "path": "/v1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}" } ] }, { - "shortName": "DeleteFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeaturestore", + "shortName": "DeleteContext", + "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteContext", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/featurestores/*}" + "path": "/v1/{name=projects/*/locations/*/metadataStores/*/contexts/*}" } ] }, { - "shortName": "ExportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ExportFeatureValues", + "shortName": "DeleteExecution", + "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteExecution", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:exportFeatureValues" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/metadataStores/*/executions/*}" } ] }, { - "shortName": "GetEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetEntityType", + "shortName": "DeleteMetadataStore", + "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteMetadataStore", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/metadataStores/*}" } ] }, { - "shortName": "GetFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeature", + "shortName": "GetArtifact", + "fullName": "google.cloud.aiplatform.v1.MetadataService.GetArtifact", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" + "path": "/v1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}" } ] }, { - "shortName": "GetFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeaturestore", + "shortName": "GetContext", + "fullName": "google.cloud.aiplatform.v1.MetadataService.GetContext", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/featurestores/*}" + "path": "/v1/{name=projects/*/locations/*/metadataStores/*/contexts/*}" } ] }, { - "shortName": "ImportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ImportFeatureValues", + "shortName": "GetExecution", + "fullName": "google.cloud.aiplatform.v1.MetadataService.GetExecution", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:importFeatureValues" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/metadataStores/*/executions/*}" } ] }, { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListEntityTypes", + "shortName": "GetMetadataSchema", + "fullName": "google.cloud.aiplatform.v1.MetadataService.GetMetadataSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/featurestores/*}/entityTypes" + "path": "/v1/{name=projects/*/locations/*/metadataStores/*/metadataSchemas/*}" } ] }, { - "shortName": "ListFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures", + "shortName": "GetMetadataStore", + "fullName": "google.cloud.aiplatform.v1.MetadataService.GetMetadataStore", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features" + "path": "/v1/{name=projects/*/locations/*/metadataStores/*}" } ] }, { - "shortName": "ListFeaturestores", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeaturestores", + "shortName": "ListArtifacts", + "fullName": "google.cloud.aiplatform.v1.MetadataService.ListArtifacts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/featurestores" + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/artifacts" } ] }, { - "shortName": "SearchFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.SearchFeatures", + "shortName": "ListContexts", + "fullName": "google.cloud.aiplatform.v1.MetadataService.ListContexts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{location=projects/*/locations/*}/featurestores:searchFeatures" + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/contexts" } ] }, { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateEntityType", + "shortName": "ListExecutions", + "fullName": "google.cloud.aiplatform.v1.MetadataService.ListExecutions", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{entity_type.name=projects/*/locations/*/featurestores/*/entityTypes/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/executions" } ] }, { - "shortName": "UpdateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeature", + "shortName": "ListMetadataSchemas", + "fullName": "google.cloud.aiplatform.v1.MetadataService.ListMetadataSchemas", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{feature.name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas" } ] }, { - "shortName": "UpdateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeaturestore", + "shortName": "ListMetadataStores", + "fullName": "google.cloud.aiplatform.v1.MetadataService.ListMetadataStores", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{featurestore.name=projects/*/locations/*/featurestores/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/metadataStores" } ] - } - ] - }, - { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService", - "methods": [ + }, { - "shortName": "CreateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.CreateIndexEndpoint", + "shortName": "PurgeArtifacts", + "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeArtifacts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/indexEndpoints" + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/artifacts:purge" } ] }, { - "shortName": "DeleteIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeleteIndexEndpoint", + "shortName": "PurgeContexts", + "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeContexts", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/indexEndpoints/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/contexts:purge" } ] }, { - "shortName": "DeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeployIndex", + "shortName": "PurgeExecutions", + "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeExecutions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:deployIndex" + "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/executions:purge" } ] }, { - "shortName": "GetIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.GetIndexEndpoint", + "shortName": "QueryArtifactLineageSubgraph", + "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryArtifactLineageSubgraph", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/indexEndpoints/*}" + "path": "/v1/{artifact=projects/*/locations/*/metadataStores/*/artifacts/*}:queryArtifactLineageSubgraph" } ] }, { - "shortName": "ListIndexEndpoints", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.ListIndexEndpoints", + "shortName": "QueryContextLineageSubgraph", + "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryContextLineageSubgraph", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/indexEndpoints" + "path": "/v1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:queryContextLineageSubgraph" } ] }, { - "shortName": "MutateDeployedIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.MutateDeployedIndex", + "shortName": "QueryExecutionInputsAndOutputs", + "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryExecutionInputsAndOutputs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:mutateDeployedIndex" + "httpMethod": "GET", + "path": "/v1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:queryExecutionInputsAndOutputs" } ] }, { - "shortName": "UndeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UndeployIndex", + "shortName": "RemoveContextChildren", + "fullName": "google.cloud.aiplatform.v1.MetadataService.RemoveContextChildren", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:undeployIndex" + "path": "/v1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:removeContextChildren" } ] }, { - "shortName": "UpdateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UpdateIndexEndpoint", + "shortName": "UpdateArtifact", + "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateArtifact", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{index_endpoint.name=projects/*/locations/*/indexEndpoints/*}" + "path": "/v1/{artifact.name=projects/*/locations/*/metadataStores/*/artifacts/*}" } ] - } - ] - }, - { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService", - "methods": [ + }, { - "shortName": "CreateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.CreateIndex", + "shortName": "UpdateContext", + "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateContext", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/indexes" + "httpMethod": "PATCH", + "path": "/v1/{context.name=projects/*/locations/*/metadataStores/*/contexts/*}" } ] }, { - "shortName": "DeleteIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.DeleteIndex", + "shortName": "UpdateExecution", + "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateExecution", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/indexes/*}" + "httpMethod": "PATCH", + "path": "/v1/{execution.name=projects/*/locations/*/metadataStores/*/executions/*}" } ] - }, + } + ] + }, + { + "shortName": "MigrationService", + "fullName": "google.cloud.aiplatform.v1.MigrationService", + "methods": [ { - "shortName": "GetIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.GetIndex", + "shortName": "BatchMigrateResources", + "fullName": "google.cloud.aiplatform.v1.MigrationService.BatchMigrateResources", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/indexes/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/migratableResources:batchMigrate" } ] }, { - "shortName": "ListIndexes", - "fullName": "google.cloud.aiplatform.v1.IndexService.ListIndexes", + "shortName": "SearchMigratableResources", + "fullName": "google.cloud.aiplatform.v1.MigrationService.SearchMigratableResources", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/indexes" - } - ] - }, - { - "shortName": "UpdateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.UpdateIndex", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1/{index.name=projects/*/locations/*/indexes/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/migratableResources:search" } ] } ] }, { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService", + "shortName": "ModelService", + "fullName": "google.cloud.aiplatform.v1.ModelService", "methods": [ { - "shortName": "CancelBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelBatchPredictionJob", + "shortName": "BatchImportModelEvaluationSlices", + "fullName": "google.cloud.aiplatform.v1.ModelService.BatchImportModelEvaluationSlices", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}:cancel" + "path": "/v1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices:batchImport" } ] }, { - "shortName": "CancelCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelCustomJob", + "shortName": "DeleteModel", + "fullName": "google.cloud.aiplatform.v1.ModelService.DeleteModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/customJobs/*}:cancel" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/models/*}" } ] }, { - "shortName": "CancelDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelDataLabelingJob", + "shortName": "DeleteModelVersion", + "fullName": "google.cloud.aiplatform.v1.ModelService.DeleteModelVersion", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}:cancel" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/models/*}:deleteVersion" } ] }, { - "shortName": "CancelHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelHyperparameterTuningJob", + "shortName": "ExportModel", + "fullName": "google.cloud.aiplatform.v1.ModelService.ExportModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}:cancel" + "path": "/v1/{name=projects/*/locations/*/models/*}:export" } ] }, { - "shortName": "CreateBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateBatchPredictionJob", + "shortName": "GetModel", + "fullName": "google.cloud.aiplatform.v1.ModelService.GetModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/batchPredictionJobs" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/models/*}" } ] }, { - "shortName": "CreateCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateCustomJob", + "shortName": "GetModelEvaluation", + "fullName": "google.cloud.aiplatform.v1.ModelService.GetModelEvaluation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/customJobs" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/models/*/evaluations/*}" } ] }, { - "shortName": "CreateDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateDataLabelingJob", + "shortName": "GetModelEvaluationSlice", + "fullName": "google.cloud.aiplatform.v1.ModelService.GetModelEvaluationSlice", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/dataLabelingJobs" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/models/*/evaluations/*/slices/*}" } ] }, { - "shortName": "CreateHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateHyperparameterTuningJob", + "shortName": "ImportModelEvaluation", + "fullName": "google.cloud.aiplatform.v1.ModelService.ImportModelEvaluation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" + "path": "/v1/{parent=projects/*/locations/*/models/*}/evaluations:import" } ] }, { - "shortName": "CreateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateModelDeploymentMonitoringJob", + "shortName": "ListModelEvaluationSlices", + "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices" } ] }, { - "shortName": "DeleteBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteBatchPredictionJob", + "shortName": "ListModelEvaluations", + "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelEvaluations", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/models/*}/evaluations" } ] }, { - "shortName": "DeleteCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteCustomJob", + "shortName": "ListModelVersions", + "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelVersions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/customJobs/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/models/*}:listVersions" } ] }, { - "shortName": "DeleteDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteDataLabelingJob", + "shortName": "ListModels", + "fullName": "google.cloud.aiplatform.v1.ModelService.ListModels", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/models" } ] }, { - "shortName": "DeleteHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteHyperparameterTuningJob", + "shortName": "MergeVersionAliases", + "fullName": "google.cloud.aiplatform.v1.ModelService.MergeVersionAliases", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/models/*}:mergeVersionAliases" } ] }, { - "shortName": "DeleteModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteModelDeploymentMonitoringJob", + "shortName": "UpdateModel", + "fullName": "google.cloud.aiplatform.v1.ModelService.UpdateModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" + "httpMethod": "PATCH", + "path": "/v1/{model.name=projects/*/locations/*/models/*}" } ] }, { - "shortName": "GetBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob", + "shortName": "UploadModel", + "fullName": "google.cloud.aiplatform.v1.ModelService.UploadModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/models:upload" } ] - }, + } + ] + }, + { + "shortName": "PipelineService", + "fullName": "google.cloud.aiplatform.v1.PipelineService", + "methods": [ { - "shortName": "GetCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetCustomJob", + "shortName": "CancelPipelineJob", + "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelPipelineJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/customJobs/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/pipelineJobs/*}:cancel" } ] }, { - "shortName": "GetDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetDataLabelingJob", + "shortName": "CancelTrainingPipeline", + "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelTrainingPipeline", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/trainingPipelines/*}:cancel" } ] }, { - "shortName": "GetHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob", + "shortName": "CreatePipelineJob", + "fullName": "google.cloud.aiplatform.v1.PipelineService.CreatePipelineJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/pipelineJobs" } ] }, { - "shortName": "GetModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetModelDeploymentMonitoringJob", + "shortName": "CreateTrainingPipeline", + "fullName": "google.cloud.aiplatform.v1.PipelineService.CreateTrainingPipeline", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/trainingPipelines" } ] }, { - "shortName": "ListBatchPredictionJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs", + "shortName": "DeletePipelineJob", + "fullName": "google.cloud.aiplatform.v1.PipelineService.DeletePipelineJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/batchPredictionJobs" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/pipelineJobs/*}" } ] }, { - "shortName": "ListCustomJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListCustomJobs", + "shortName": "DeleteTrainingPipeline", + "fullName": "google.cloud.aiplatform.v1.PipelineService.DeleteTrainingPipeline", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/customJobs" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/trainingPipelines/*}" } ] }, { - "shortName": "ListDataLabelingJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListDataLabelingJobs", + "shortName": "GetPipelineJob", + "fullName": "google.cloud.aiplatform.v1.PipelineService.GetPipelineJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/dataLabelingJobs" + "path": "/v1/{name=projects/*/locations/*/pipelineJobs/*}" } ] }, { - "shortName": "ListHyperparameterTuningJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs", + "shortName": "GetTrainingPipeline", + "fullName": "google.cloud.aiplatform.v1.PipelineService.GetTrainingPipeline", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" + "path": "/v1/{name=projects/*/locations/*/trainingPipelines/*}" } ] }, { - "shortName": "ListModelDeploymentMonitoringJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListModelDeploymentMonitoringJobs", + "shortName": "ListPipelineJobs", + "fullName": "google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs" + "path": "/v1/{parent=projects/*/locations/*}/pipelineJobs" } ] }, { - "shortName": "PauseModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.PauseModelDeploymentMonitoringJob", + "shortName": "ListTrainingPipelines", + "fullName": "google.cloud.aiplatform.v1.PipelineService.ListTrainingPipelines", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:pause" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/trainingPipelines" } ] - }, + } + ] + }, + { + "shortName": "PredictionService", + "fullName": "google.cloud.aiplatform.v1.PredictionService", + "methods": [ { - "shortName": "ResumeModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.ResumeModelDeploymentMonitoringJob", + "shortName": "Explain", + "fullName": "google.cloud.aiplatform.v1.PredictionService.Explain", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:resume" + "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:explain" } ] }, { - "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", - "fullName": "google.cloud.aiplatform.v1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", + "shortName": "Predict", + "fullName": "google.cloud.aiplatform.v1.PredictionService.Predict", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{model_deployment_monitoring_job=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:searchModelDeploymentMonitoringStatsAnomalies" + "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:predict" } ] }, { - "shortName": "UpdateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.UpdateModelDeploymentMonitoringJob", + "shortName": "RawPredict", + "fullName": "google.cloud.aiplatform.v1.PredictionService.RawPredict", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{model_deployment_monitoring_job.name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" + "httpMethod": "POST", + "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:rawPredict" } ] } ] }, { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService", + "shortName": "SpecialistPoolService", + "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService", "methods": [ { - "shortName": "AddContextArtifactsAndExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddContextArtifactsAndExecutions", + "shortName": "CreateSpecialistPool", + "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.CreateSpecialistPool", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextArtifactsAndExecutions" + "path": "/v1/{parent=projects/*/locations/*}/specialistPools" } ] }, { - "shortName": "AddContextChildren", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddContextChildren", + "shortName": "DeleteSpecialistPool", + "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.DeleteSpecialistPool", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextChildren" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/specialistPools/*}" } ] }, { - "shortName": "AddExecutionEvents", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddExecutionEvents", + "shortName": "GetSpecialistPool", + "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.GetSpecialistPool", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:addExecutionEvents" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/specialistPools/*}" } ] }, { - "shortName": "CreateArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateArtifact", + "shortName": "ListSpecialistPools", + "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/artifacts" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/specialistPools" } ] }, { - "shortName": "CreateContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateContext", + "shortName": "UpdateSpecialistPool", + "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.UpdateSpecialistPool", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/contexts" + "httpMethod": "PATCH", + "path": "/v1/{specialist_pool.name=projects/*/locations/*/specialistPools/*}" } ] - }, + } + ] + }, + { + "shortName": "TensorboardService", + "fullName": "google.cloud.aiplatform.v1.TensorboardService", + "methods": [ { - "shortName": "CreateExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateExecution", + "shortName": "BatchCreateTensorboardRuns", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchCreateTensorboardRuns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/executions" + "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs:batchCreate" } ] }, { - "shortName": "CreateMetadataSchema", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateMetadataSchema", + "shortName": "BatchCreateTensorboardTimeSeries", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchCreateTensorboardTimeSeries", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas" + "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs/*/timeSeries:batchCreate" } ] }, { - "shortName": "CreateMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateMetadataStore", + "shortName": "BatchReadTensorboardTimeSeriesData", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchReadTensorboardTimeSeriesData", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/metadataStores" + "httpMethod": "GET", + "path": "/v1/{tensorboard=projects/*/locations/*/tensorboards/*}/experiments/*/runs/*/timeSeries:batchRead" } ] }, { - "shortName": "DeleteArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteArtifact", + "shortName": "CreateTensorboard", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboard", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/tensorboards" } ] }, { - "shortName": "DeleteContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteContext", + "shortName": "CreateTensorboardExperiment", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*/contexts/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/tensorboards/*}/experiments" } ] }, { - "shortName": "DeleteExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteExecution", + "shortName": "CreateTensorboardRun", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardRun", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*/executions/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs" } ] }, { - "shortName": "DeleteMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteMetadataStore", + "shortName": "CreateTensorboardTimeSeries", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardTimeSeries", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries" } ] }, { - "shortName": "GetArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetArtifact", + "shortName": "DeleteTensorboard", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboard", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/tensorboards/*}" } ] }, { - "shortName": "GetContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetContext", + "shortName": "DeleteTensorboardExperiment", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*/contexts/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*}" } ] }, { - "shortName": "GetExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetExecution", + "shortName": "DeleteTensorboardRun", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardRun", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*/executions/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" } ] }, { - "shortName": "GetMetadataSchema", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetMetadataSchema", + "shortName": "DeleteTensorboardTimeSeries", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardTimeSeries", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*/metadataSchemas/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" } ] }, { - "shortName": "GetMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetMetadataStore", + "shortName": "ExportTensorboardTimeSeriesData", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.ExportTensorboardTimeSeriesData", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/metadataStores/*}" + "httpMethod": "POST", + "path": "/v1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:exportTensorboardTimeSeries" } ] }, { - "shortName": "ListArtifacts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListArtifacts", + "shortName": "GetTensorboard", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboard", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/artifacts" + "path": "/v1/{name=projects/*/locations/*/tensorboards/*}" } ] }, { - "shortName": "ListContexts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListContexts", + "shortName": "GetTensorboardExperiment", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/contexts" + "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*}" } ] }, { - "shortName": "ListExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListExecutions", + "shortName": "GetTensorboardRun", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardRun", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/executions" + "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" } ] }, { - "shortName": "ListMetadataSchemas", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListMetadataSchemas", + "shortName": "GetTensorboardTimeSeries", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardTimeSeries", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas" + "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" } ] }, { - "shortName": "ListMetadataStores", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListMetadataStores", + "shortName": "ListTensorboardExperiments", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/metadataStores" + "path": "/v1/{parent=projects/*/locations/*/tensorboards/*}/experiments" } ] }, { - "shortName": "PurgeArtifacts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeArtifacts", + "shortName": "ListTensorboardRuns", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardRuns", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/artifacts:purge" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs" } ] }, { - "shortName": "PurgeContexts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeContexts", + "shortName": "ListTensorboardTimeSeries", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardTimeSeries", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/contexts:purge" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries" } ] }, { - "shortName": "PurgeExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeExecutions", + "shortName": "ListTensorboards", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboards", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/metadataStores/*}/executions:purge" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/tensorboards" } ] }, { - "shortName": "QueryArtifactLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryArtifactLineageSubgraph", - "mode": "UNARY", + "shortName": "ReadTensorboardBlobData", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.ReadTensorboardBlobData", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{artifact=projects/*/locations/*/metadataStores/*/artifacts/*}:queryArtifactLineageSubgraph" + "path": "/v1/{time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:readBlobData" } ] }, { - "shortName": "QueryContextLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryContextLineageSubgraph", + "shortName": "ReadTensorboardTimeSeriesData", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.ReadTensorboardTimeSeriesData", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:queryContextLineageSubgraph" + "path": "/v1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:read" } ] }, { - "shortName": "QueryExecutionInputsAndOutputs", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryExecutionInputsAndOutputs", + "shortName": "UpdateTensorboard", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboard", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:queryExecutionInputsAndOutputs" + "httpMethod": "PATCH", + "path": "/v1/{tensorboard.name=projects/*/locations/*/tensorboards/*}" } ] }, { - "shortName": "UpdateArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateArtifact", + "shortName": "UpdateTensorboardExperiment", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{artifact.name=projects/*/locations/*/metadataStores/*/artifacts/*}" + "path": "/v1/{tensorboard_experiment.name=projects/*/locations/*/tensorboards/*/experiments/*}" } ] }, { - "shortName": "UpdateContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateContext", + "shortName": "UpdateTensorboardRun", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardRun", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{context.name=projects/*/locations/*/metadataStores/*/contexts/*}" + "path": "/v1/{tensorboard_run.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" } ] }, { - "shortName": "UpdateExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateExecution", + "shortName": "UpdateTensorboardTimeSeries", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardTimeSeries", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{execution.name=projects/*/locations/*/metadataStores/*/executions/*}" + "path": "/v1/{tensorboard_time_series.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" } ] - } - ] - }, - { - "shortName": "MigrationService", - "fullName": "google.cloud.aiplatform.v1.MigrationService", - "methods": [ + }, { - "shortName": "BatchMigrateResources", - "fullName": "google.cloud.aiplatform.v1.MigrationService.BatchMigrateResources", + "shortName": "WriteTensorboardExperimentData", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.WriteTensorboardExperimentData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/migratableResources:batchMigrate" + "path": "/v1/{tensorboard_experiment=projects/*/locations/*/tensorboards/*/experiments/*}:write" } ] }, { - "shortName": "SearchMigratableResources", - "fullName": "google.cloud.aiplatform.v1.MigrationService.SearchMigratableResources", + "shortName": "WriteTensorboardRunData", + "fullName": "google.cloud.aiplatform.v1.TensorboardService.WriteTensorboardRunData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/migratableResources:search" + "path": "/v1/{tensorboard_run=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}:write" } ] } ] }, { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService", + "shortName": "VizierService", + "fullName": "google.cloud.aiplatform.v1.VizierService", "methods": [ { - "shortName": "DeleteModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.DeleteModel", + "shortName": "AddTrialMeasurement", + "fullName": "google.cloud.aiplatform.v1.VizierService.AddTrialMeasurement", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/models/*}" + "httpMethod": "POST", + "path": "/v1/{trial_name=projects/*/locations/*/studies/*/trials/*}:addTrialMeasurement" } ] }, { - "shortName": "ExportModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.ExportModel", + "shortName": "CheckTrialEarlyStoppingState", + "fullName": "google.cloud.aiplatform.v1.VizierService.CheckTrialEarlyStoppingState", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/models/*}:export" + "path": "/v1/{trial_name=projects/*/locations/*/studies/*/trials/*}:checkTrialEarlyStoppingState" } ] }, { - "shortName": "GetModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModel", + "shortName": "CompleteTrial", + "fullName": "google.cloud.aiplatform.v1.VizierService.CompleteTrial", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/models/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/studies/*/trials/*}:complete" } ] }, { - "shortName": "GetModelEvaluation", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModelEvaluation", + "shortName": "CreateStudy", + "fullName": "google.cloud.aiplatform.v1.VizierService.CreateStudy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/models/*/evaluations/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/studies" } ] }, { - "shortName": "GetModelEvaluationSlice", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModelEvaluationSlice", + "shortName": "CreateTrial", + "fullName": "google.cloud.aiplatform.v1.VizierService.CreateTrial", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/models/*/evaluations/*/slices/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/studies/*}/trials" } ] }, { - "shortName": "ListModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices", + "shortName": "DeleteStudy", + "fullName": "google.cloud.aiplatform.v1.VizierService.DeleteStudy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/studies/*}" } ] }, { - "shortName": "ListModelEvaluations", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelEvaluations", + "shortName": "DeleteTrial", + "fullName": "google.cloud.aiplatform.v1.VizierService.DeleteTrial", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/models/*}/evaluations" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/studies/*/trials/*}" } ] }, { - "shortName": "ListModels", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModels", + "shortName": "GetStudy", + "fullName": "google.cloud.aiplatform.v1.VizierService.GetStudy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/models" + "path": "/v1/{name=projects/*/locations/*/studies/*}" } ] }, { - "shortName": "UpdateModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.UpdateModel", + "shortName": "GetTrial", + "fullName": "google.cloud.aiplatform.v1.VizierService.GetTrial", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{model.name=projects/*/locations/*/models/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/studies/*/trials/*}" } ] }, { - "shortName": "UploadModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.UploadModel", + "shortName": "ListOptimalTrials", + "fullName": "google.cloud.aiplatform.v1.VizierService.ListOptimalTrials", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/models:upload" + "path": "/v1/{parent=projects/*/locations/*/studies/*}/trials:listOptimalTrials" } ] - } - ] - }, - { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService", - "methods": [ + }, { - "shortName": "CancelPipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelPipelineJob", + "shortName": "ListStudies", + "fullName": "google.cloud.aiplatform.v1.VizierService.ListStudies", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/pipelineJobs/*}:cancel" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/studies" } ] }, { - "shortName": "CancelTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelTrainingPipeline", + "shortName": "ListTrials", + "fullName": "google.cloud.aiplatform.v1.VizierService.ListTrials", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/studies/*}/trials" + } + ] + }, + { + "shortName": "LookupStudy", + "fullName": "google.cloud.aiplatform.v1.VizierService.LookupStudy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/trainingPipelines/*}:cancel" + "path": "/v1/{parent=projects/*/locations/*}/studies:lookup" } ] }, { - "shortName": "CreatePipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CreatePipelineJob", + "shortName": "StopTrial", + "fullName": "google.cloud.aiplatform.v1.VizierService.StopTrial", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/pipelineJobs" + "path": "/v1/{name=projects/*/locations/*/studies/*/trials/*}:stop" } ] }, { - "shortName": "CreateTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CreateTrainingPipeline", + "shortName": "SuggestTrials", + "fullName": "google.cloud.aiplatform.v1.VizierService.SuggestTrials", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/trainingPipelines" + "path": "/v1/{parent=projects/*/locations/*/studies/*}/trials:suggest" + } + ] + } + ] + } + ], + "configFile": "aiplatform_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.aiplatform.v1.DatasetService", + "google.cloud.aiplatform.v1.EndpointService", + "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService", + "google.cloud.aiplatform.v1.FeaturestoreService", + "google.cloud.aiplatform.v1.IndexEndpointService", + "google.cloud.aiplatform.v1.IndexService", + "google.cloud.aiplatform.v1.JobService", + "google.cloud.aiplatform.v1.MetadataService", + "google.cloud.aiplatform.v1.MigrationService", + "google.cloud.aiplatform.v1.ModelService", + "google.cloud.aiplatform.v1.PipelineService", + "google.cloud.aiplatform.v1.PredictionService", + "google.cloud.aiplatform.v1.SpecialistPoolService", + "google.cloud.aiplatform.v1.TensorboardService", + "google.cloud.aiplatform.v1.VizierService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.aiplatform.v1beta1", + "directory": "google/cloud/aiplatform/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "aiplatform.googleapis.com", + "title": "Vertex AI API", + "description": "Train high-quality custom machine learning models with minimal machine learning expertise and effort.", + "importDirectories": [ + "google/api", + "google/cloud/aiplatform/v1beta1", + "google/cloud/aiplatform/v1beta1/schema", + "google/cloud/aiplatform/v1beta1/schema/predict/instance", + "google/cloud/aiplatform/v1beta1/schema/trainingjob/definition", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.AIPlatform.V1Beta1": 76, + "Google.Cloud.AIPlatform.V1Beta1.Schema": 6, + "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance": 9, + "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params": 6, + "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction": 11, + "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition": 12 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance": 9, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/params;params": 6, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction": 11, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition": 12, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema;schema": 6, + "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform": 76 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 120 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.aiplatform.v1beta1": 76, + "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, + "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction": 11, + "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition": 12 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\AIPlatform\\V1beta1": 76, + "Google\\Cloud\\AIPlatform\\V1beta1\\Schema": 6, + "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance": 9, + "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params": 6, + "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction": 11, + "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition": 12 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::AIPlatform::V1beta1": 76, + "Google::Cloud::AIPlatform::V1beta1::Schema": 6, + "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance": 9, + "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params": 6, + "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction": 11, + "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition": 12 + } + } + }, + "services": [ + { + "shortName": "DatasetService", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService", + "methods": [ + { + "shortName": "CreateDataset", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.CreateDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/datasets" } ] }, { - "shortName": "DeletePipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.DeletePipelineJob", + "shortName": "DeleteDataset", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.DeleteDataset", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/pipelineJobs/*}" + "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}" } ] }, { - "shortName": "DeleteTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.DeleteTrainingPipeline", + "shortName": "ExportData", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ExportData", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/trainingPipelines/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}:export" } ] }, { - "shortName": "GetPipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.GetPipelineJob", + "shortName": "GetAnnotationSpec", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.GetAnnotationSpec", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/pipelineJobs/*}" + "path": "/v1beta1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}" } ] }, { - "shortName": "GetTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.GetTrainingPipeline", + "shortName": "GetDataset", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.GetDataset", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/trainingPipelines/*}" + "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}" } ] }, { - "shortName": "ListPipelineJobs", - "fullName": "google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs", + "shortName": "ImportData", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ImportData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}:import" + } + ] + }, + { + "shortName": "ListAnnotations", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListAnnotations", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/pipelineJobs" + "path": "/v1beta1/{parent=projects/*/locations/*/datasets/*/dataItems/*}/annotations" } ] }, { - "shortName": "ListTrainingPipelines", - "fullName": "google.cloud.aiplatform.v1.PipelineService.ListTrainingPipelines", + "shortName": "ListDataItems", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/trainingPipelines" + "path": "/v1beta1/{parent=projects/*/locations/*/datasets/*}/dataItems" } ] - } - ] - }, - { - "shortName": "PredictionService", - "fullName": "google.cloud.aiplatform.v1.PredictionService", - "methods": [ + }, { - "shortName": "Explain", - "fullName": "google.cloud.aiplatform.v1.PredictionService.Explain", + "shortName": "ListDatasets", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListDatasets", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:explain" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/datasets" } ] }, { - "shortName": "Predict", - "fullName": "google.cloud.aiplatform.v1.PredictionService.Predict", + "shortName": "ListSavedQueries", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListSavedQueries", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:predict" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/datasets/*}/savedQueries" } ] }, { - "shortName": "RawPredict", - "fullName": "google.cloud.aiplatform.v1.PredictionService.RawPredict", + "shortName": "UpdateDataset", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.UpdateDataset", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{endpoint=projects/*/locations/*/endpoints/*}:rawPredict" + "httpMethod": "PATCH", + "path": "/v1beta1/{dataset.name=projects/*/locations/*/datasets/*}" } ] } ] }, { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService", + "shortName": "DeploymentResourcePoolService", + "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService", "methods": [ { - "shortName": "CreateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.CreateSpecialistPool", + "shortName": "CreateDeploymentResourcePool", + "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.CreateDeploymentResourcePool", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/specialistPools" + "path": "/v1beta1/{parent=projects/*/locations/*}/deploymentResourcePools" } ] }, { - "shortName": "DeleteSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.DeleteSpecialistPool", + "shortName": "DeleteDeploymentResourcePool", + "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.DeleteDeploymentResourcePool", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/specialistPools/*}" + "path": "/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*}" } ] }, { - "shortName": "GetSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.GetSpecialistPool", + "shortName": "GetDeploymentResourcePool", + "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.GetDeploymentResourcePool", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/specialistPools/*}" + "path": "/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*}" } ] }, { - "shortName": "ListSpecialistPools", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools", + "shortName": "ListDeploymentResourcePools", + "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.ListDeploymentResourcePools", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/specialistPools" + "path": "/v1beta1/{parent=projects/*/locations/*}/deploymentResourcePools" } ] }, { - "shortName": "UpdateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.UpdateSpecialistPool", + "shortName": "QueryDeployedModels", + "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.QueryDeployedModels", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{specialist_pool.name=projects/*/locations/*/specialistPools/*}" + "httpMethod": "GET", + "path": "/v1beta1/{deployment_resource_pool=projects/*/locations/*/deploymentResourcePools/*}:queryDeployedModels" } ] } ] }, { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService", + "shortName": "EndpointService", + "fullName": "google.cloud.aiplatform.v1beta1.EndpointService", "methods": [ { - "shortName": "BatchCreateTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchCreateTensorboardRuns", + "shortName": "CreateEndpoint", + "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.CreateEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs:batchCreate" + "path": "/v1beta1/{parent=projects/*/locations/*}/endpoints" } ] }, { - "shortName": "BatchCreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchCreateTensorboardTimeSeries", + "shortName": "DeleteEndpoint", + "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.DeleteEndpoint", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/endpoints/*}" + } + ] + }, + { + "shortName": "DeployModel", + "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.DeployModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs/*/timeSeries:batchCreate" + "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:deployModel" } ] }, { - "shortName": "BatchReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchReadTensorboardTimeSeriesData", + "shortName": "GetEndpoint", + "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.GetEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{tensorboard=projects/*/locations/*/tensorboards/*}/experiments/*/runs/*/timeSeries:batchRead" + "path": "/v1beta1/{name=projects/*/locations/*/endpoints/*}" } ] }, { - "shortName": "CreateTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboard", + "shortName": "ListEndpoints", + "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.ListEndpoints", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/tensorboards" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/endpoints" } ] }, { - "shortName": "CreateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardExperiment", + "shortName": "UndeployModel", + "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.UndeployModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/tensorboards/*}/experiments" + "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:undeployModel" } ] }, { - "shortName": "CreateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardRun", + "shortName": "UpdateEndpoint", + "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.UpdateEndpoint", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{endpoint.name=projects/*/locations/*/endpoints/*}" + } + ] + } + ] + }, + { + "shortName": "FeaturestoreOnlineServingService", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService", + "methods": [ + { + "shortName": "ReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs" + "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:readFeatureValues" } ] }, { - "shortName": "CreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardTimeSeries", - "mode": "UNARY", + "shortName": "StreamingReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries" + "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:streamingReadFeatureValues" } ] }, { - "shortName": "DeleteTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboard", + "shortName": "WriteFeatureValues", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.WriteFeatureValues", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/tensorboards/*}" + "httpMethod": "POST", + "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:writeFeatureValues" + } + ] + } + ] + }, + { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService", + "methods": [ + { + "shortName": "BatchCreateFeatures", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features:batchCreate" } ] }, { - "shortName": "DeleteTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardExperiment", + "shortName": "BatchReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*}" + "httpMethod": "POST", + "path": "/v1beta1/{featurestore=projects/*/locations/*/featurestores/*}:batchReadFeatureValues" } ] }, { - "shortName": "DeleteTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardRun", + "shortName": "CreateEntityType", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*}/entityTypes" } ] }, { - "shortName": "DeleteTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardTimeSeries", + "shortName": "CreateFeature", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features" } ] }, { - "shortName": "ExportTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ExportTensorboardTimeSeriesData", + "shortName": "CreateFeaturestore", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:exportTensorboardTimeSeries" + "path": "/v1beta1/{parent=projects/*/locations/*}/featurestores" } ] }, { - "shortName": "GetTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboard", + "shortName": "DeleteEntityType", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteEntityType", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/tensorboards/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}" } ] }, { - "shortName": "GetTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardExperiment", + "shortName": "DeleteFeature", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" } ] }, { - "shortName": "GetTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardRun", + "shortName": "DeleteFeatureValues", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" + "httpMethod": "POST", + "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:deleteFeatureValues" } ] }, { - "shortName": "GetTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardTimeSeries", + "shortName": "DeleteFeaturestore", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*}" } ] }, { - "shortName": "ListTensorboardExperiments", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardExperiments", + "shortName": "ExportFeatureValues", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/tensorboards/*}/experiments" + "httpMethod": "POST", + "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:exportFeatureValues" } ] }, { - "shortName": "ListTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardRuns", + "shortName": "GetEntityType", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs" + "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}" } ] }, { - "shortName": "ListTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardTimeSeries", + "shortName": "GetFeature", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries" + "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" } ] }, { - "shortName": "ListTensorboards", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboards", + "shortName": "GetFeaturestore", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/tensorboards" + "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*}" } ] }, { - "shortName": "ReadTensorboardBlobData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ReadTensorboardBlobData", - "mode": "SERVER_STREAMING", + "shortName": "ImportFeatureValues", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues", + "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:readBlobData" + "httpMethod": "POST", + "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:importFeatureValues" } ] }, { - "shortName": "ReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ReadTensorboardTimeSeriesData", + "shortName": "ListEntityTypes", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:read" + "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*}/entityTypes" } ] }, { - "shortName": "UpdateTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboard", + "shortName": "ListFeatures", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{tensorboard.name=projects/*/locations/*/tensorboards/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features" } ] }, { - "shortName": "UpdateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardExperiment", + "shortName": "ListFeaturestores", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{tensorboard_experiment.name=projects/*/locations/*/tensorboards/*/experiments/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/featurestores" } ] }, { - "shortName": "UpdateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardRun", + "shortName": "SearchFeatures", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{tensorboard_run.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" + "httpMethod": "GET", + "path": "/v1beta1/{location=projects/*/locations/*}/featurestores:searchFeatures" } ] }, { - "shortName": "UpdateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardTimeSeries", + "shortName": "UpdateEntityType", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{tensorboard_time_series.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" + "path": "/v1beta1/{entity_type.name=projects/*/locations/*/featurestores/*/entityTypes/*}" } ] }, { - "shortName": "WriteTensorboardExperimentData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.WriteTensorboardExperimentData", + "shortName": "UpdateFeature", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{tensorboard_experiment=projects/*/locations/*/tensorboards/*/experiments/*}:write" + "httpMethod": "PATCH", + "path": "/v1beta1/{feature.name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" } ] }, { - "shortName": "WriteTensorboardRunData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.WriteTensorboardRunData", + "shortName": "UpdateFeaturestore", + "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{tensorboard_run=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}:write" + "httpMethod": "PATCH", + "path": "/v1beta1/{featurestore.name=projects/*/locations/*/featurestores/*}" } ] } ] }, { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService", + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService", "methods": [ { - "shortName": "AddTrialMeasurement", - "fullName": "google.cloud.aiplatform.v1.VizierService.AddTrialMeasurement", + "shortName": "CreateIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.CreateIndexEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{trial_name=projects/*/locations/*/studies/*/trials/*}:addTrialMeasurement" + "path": "/v1beta1/{parent=projects/*/locations/*}/indexEndpoints" } ] }, { - "shortName": "CheckTrialEarlyStoppingState", - "fullName": "google.cloud.aiplatform.v1.VizierService.CheckTrialEarlyStoppingState", + "shortName": "DeleteIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.DeleteIndexEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{trial_name=projects/*/locations/*/studies/*/trials/*}:checkTrialEarlyStoppingState" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/indexEndpoints/*}" } ] }, { - "shortName": "CompleteTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.CompleteTrial", + "shortName": "DeployIndex", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.DeployIndex", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/studies/*/trials/*}:complete" + "path": "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:deployIndex" } ] }, { - "shortName": "CreateStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.CreateStudy", + "shortName": "GetIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.GetIndexEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/studies" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/indexEndpoints/*}" } ] }, { - "shortName": "CreateTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.CreateTrial", + "shortName": "ListIndexEndpoints", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.ListIndexEndpoints", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/studies/*}/trials" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/indexEndpoints" } ] }, { - "shortName": "DeleteStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.DeleteStudy", + "shortName": "MutateDeployedIndex", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.MutateDeployedIndex", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/studies/*}" + "httpMethod": "POST", + "path": "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:mutateDeployedIndex" } ] }, { - "shortName": "DeleteTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.DeleteTrial", + "shortName": "UndeployIndex", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.UndeployIndex", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/studies/*/trials/*}" + "httpMethod": "POST", + "path": "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:undeployIndex" } ] }, { - "shortName": "GetStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.GetStudy", + "shortName": "UpdateIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.UpdateIndexEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/studies/*}" + "httpMethod": "PATCH", + "path": "/v1beta1/{index_endpoint.name=projects/*/locations/*/indexEndpoints/*}" } ] - }, + } + ] + }, + { + "shortName": "IndexService", + "fullName": "google.cloud.aiplatform.v1beta1.IndexService", + "methods": [ { - "shortName": "GetTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.GetTrial", + "shortName": "CreateIndex", + "fullName": "google.cloud.aiplatform.v1beta1.IndexService.CreateIndex", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/studies/*/trials/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/indexes" } ] }, { - "shortName": "ListOptimalTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListOptimalTrials", + "shortName": "DeleteIndex", + "fullName": "google.cloud.aiplatform.v1beta1.IndexService.DeleteIndex", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/studies/*}/trials:listOptimalTrials" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/indexes/*}" } ] }, { - "shortName": "ListStudies", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListStudies", + "shortName": "GetIndex", + "fullName": "google.cloud.aiplatform.v1beta1.IndexService.GetIndex", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/studies" + "path": "/v1beta1/{name=projects/*/locations/*/indexes/*}" } ] }, { - "shortName": "ListTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListTrials", + "shortName": "ListIndexes", + "fullName": "google.cloud.aiplatform.v1beta1.IndexService.ListIndexes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/studies/*}/trials" + "path": "/v1beta1/{parent=projects/*/locations/*}/indexes" } ] }, { - "shortName": "LookupStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.LookupStudy", + "shortName": "RemoveDatapoints", + "fullName": "google.cloud.aiplatform.v1beta1.IndexService.RemoveDatapoints", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/studies:lookup" + "path": "/v1beta1/{index=projects/*/locations/*/indexes/*}:removeDatapoints" } ] }, { - "shortName": "StopTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.StopTrial", + "shortName": "UpdateIndex", + "fullName": "google.cloud.aiplatform.v1beta1.IndexService.UpdateIndex", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/studies/*/trials/*}:stop" + "httpMethod": "PATCH", + "path": "/v1beta1/{index.name=projects/*/locations/*/indexes/*}" } ] }, { - "shortName": "SuggestTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.SuggestTrials", + "shortName": "UpsertDatapoints", + "fullName": "google.cloud.aiplatform.v1beta1.IndexService.UpsertDatapoints", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/studies/*}/trials:suggest" + "path": "/v1beta1/{index=projects/*/locations/*/indexes/*}:upsertDatapoints" } ] } ] - } - ], - "configFile": "aiplatform_v1.yaml" - }, - { - "id": "google.cloud.aiplatform.v1beta1", - "directory": "google/cloud/aiplatform/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "aiplatform.googleapis.com", - "title": "Vertex AI API", - "description": "Train high-quality custom machine learning models with minimal machine learning expertise and effort.", - "importDirectories": [ - "google/api", - "google/cloud/aiplatform/v1beta1", - "google/cloud/aiplatform/v1beta1/schema", - "google/cloud/aiplatform/v1beta1/schema/predict/instance", - "google/cloud/aiplatform/v1beta1/schema/trainingjob/definition", - "google/longrunning", - "google/protobuf", - "google/rpc", - "google/type" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "": 44, - "Google.Cloud.AIPlatform.V1Beta1": 72 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance": 9, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/params;params": 6, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction": 11, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition": 12, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema;schema": 6, - "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform": 72 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 116 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.aiplatform.v1beta1": 72, - "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, - "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction": 11, - "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition": 12 - } - }, - "php_namespace": { - "valueCounts": { - "": 44, - "Google\\Cloud\\AIPlatform\\V1beta1": 72 - } }, - "ruby_package": { - "valueCounts": { - "": 44, - "Google::Cloud::AIPlatform::V1beta1": 72 - } - } - }, - "services": [ { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService", + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1beta1.JobService", "methods": [ { - "shortName": "CreateDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.CreateDataset", + "shortName": "CancelBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelBatchPredictionJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/datasets" + "path": "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}:cancel" } ] }, { - "shortName": "DeleteDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.DeleteDataset", + "shortName": "CancelCustomJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelCustomJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/customJobs/*}:cancel" } ] }, { - "shortName": "ExportData", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ExportData", + "shortName": "CancelDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelDataLabelingJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}:export" + "path": "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}:cancel" } ] }, { - "shortName": "GetAnnotationSpec", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.GetAnnotationSpec", + "shortName": "CancelHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelHyperparameterTuningJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}:cancel" } ] }, { - "shortName": "GetDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.GetDataset", + "shortName": "CreateBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateBatchPredictionJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/batchPredictionJobs" } ] }, { - "shortName": "ImportData", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ImportData", + "shortName": "CreateCustomJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateCustomJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}:import" + "path": "/v1beta1/{parent=projects/*/locations/*}/customJobs" } ] }, { - "shortName": "ListAnnotations", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListAnnotations", + "shortName": "CreateDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateDataLabelingJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/datasets/*/dataItems/*}/annotations" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/dataLabelingJobs" } ] }, { - "shortName": "ListDataItems", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems", + "shortName": "CreateHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateHyperparameterTuningJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/datasets/*}/dataItems" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" } ] }, { - "shortName": "ListDatasets", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListDatasets", + "shortName": "CreateModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/datasets" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs" } ] }, { - "shortName": "UpdateDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.UpdateDataset", + "shortName": "DeleteBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteBatchPredictionJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{dataset.name=projects/*/locations/*/datasets/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}" } ] - } - ] - }, - { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService", - "methods": [ + }, { - "shortName": "CreateEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.CreateEndpoint", + "shortName": "DeleteCustomJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteCustomJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/endpoints" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/customJobs/*}" } ] }, { - "shortName": "DeleteEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.DeleteEndpoint", + "shortName": "DeleteDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteDataLabelingJob", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/endpoints/*}" + "path": "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}" } ] }, { - "shortName": "DeployModel", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.DeployModel", + "shortName": "DeleteHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteHyperparameterTuningJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:deployModel" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" } ] }, { - "shortName": "GetEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.GetEndpoint", + "shortName": "DeleteModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteModelDeploymentMonitoringJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" + } + ] + }, + { + "shortName": "GetBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetBatchPredictionJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/endpoints/*}" + "path": "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}" } ] }, { - "shortName": "ListEndpoints", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.ListEndpoints", + "shortName": "GetCustomJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetCustomJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/endpoints" + "path": "/v1beta1/{name=projects/*/locations/*/customJobs/*}" } ] }, { - "shortName": "UndeployModel", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.UndeployModel", + "shortName": "GetDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetDataLabelingJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:undeployModel" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}" } ] }, { - "shortName": "UpdateEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.UpdateEndpoint", + "shortName": "GetHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetHyperparameterTuningJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{endpoint.name=projects/*/locations/*/endpoints/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" } ] - } - ] - }, - { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService", - "methods": [ + }, { - "shortName": "ReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues", + "shortName": "GetModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:readFeatureValues" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" } ] }, { - "shortName": "StreamingReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues", - "mode": "SERVER_STREAMING", + "shortName": "ListBatchPredictionJobs", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListBatchPredictionJobs", + "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:streamingReadFeatureValues" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/batchPredictionJobs" } ] - } - ] - }, - { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService", - "methods": [ + }, { - "shortName": "BatchCreateFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures", + "shortName": "ListCustomJobs", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListCustomJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features:batchCreate" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/customJobs" } ] }, { - "shortName": "BatchReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues", + "shortName": "ListDataLabelingJobs", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListDataLabelingJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{featurestore=projects/*/locations/*/featurestores/*}:batchReadFeatureValues" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/dataLabelingJobs" } ] }, { - "shortName": "CreateEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType", + "shortName": "ListHyperparameterTuningJobs", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListHyperparameterTuningJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*}/entityTypes" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" } ] }, { - "shortName": "CreateFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature", + "shortName": "ListModelDeploymentMonitoringJobs", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListModelDeploymentMonitoringJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs" } ] }, { - "shortName": "CreateFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore", + "shortName": "PauseModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.PauseModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/featurestores" + "path": "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:pause" } ] }, { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteEntityType", + "shortName": "ResumeModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.ResumeModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:resume" } ] }, { - "shortName": "DeleteFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature", + "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" + "httpMethod": "POST", + "path": "/v1beta1/{model_deployment_monitoring_job=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:searchModelDeploymentMonitoringStatsAnomalies" } ] }, { - "shortName": "DeleteFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore", + "shortName": "UpdateModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.JobService.UpdateModelDeploymentMonitoringJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*}" + "httpMethod": "PATCH", + "path": "/v1beta1/{model_deployment_monitoring_job.name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" } ] - }, + } + ] + }, + { + "shortName": "MetadataService", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService", + "methods": [ { - "shortName": "ExportFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues", + "shortName": "AddContextArtifactsAndExecutions", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddContextArtifactsAndExecutions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:exportFeatureValues" + "path": "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextArtifactsAndExecutions" } ] }, { - "shortName": "GetEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType", + "shortName": "AddContextChildren", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddContextChildren", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextChildren" } ] }, { - "shortName": "GetFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature", + "shortName": "AddExecutionEvents", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddExecutionEvents", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" + "httpMethod": "POST", + "path": "/v1beta1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:addExecutionEvents" } ] }, { - "shortName": "GetFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore", + "shortName": "CreateArtifact", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateArtifact", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/featurestores/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/artifacts" } ] }, { - "shortName": "ImportFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues", + "shortName": "CreateContext", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateContext", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:importFeatureValues" + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/contexts" } ] }, { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes", + "shortName": "CreateExecution", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateExecution", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*}/entityTypes" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/executions" } ] }, { - "shortName": "ListFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures", + "shortName": "CreateMetadataSchema", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataSchema", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas" } ] }, { - "shortName": "ListFeaturestores", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores", + "shortName": "CreateMetadataStore", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataStore", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/featurestores" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/metadataStores" } ] }, { - "shortName": "SearchFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures", + "shortName": "DeleteArtifact", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteArtifact", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{location=projects/*/locations/*}/featurestores:searchFeatures" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}" } ] }, { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType", + "shortName": "DeleteContext", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteContext", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{entity_type.name=projects/*/locations/*/featurestores/*/entityTypes/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/contexts/*}" } ] }, { - "shortName": "UpdateFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature", + "shortName": "DeleteExecution", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteExecution", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{feature.name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/executions/*}" } ] }, { - "shortName": "UpdateFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{featurestore.name=projects/*/locations/*/featurestores/*}" - } - ] - } - ] - }, - { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService", - "methods": [ - { - "shortName": "CreateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.CreateIndexEndpoint", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/indexEndpoints" - } - ] - }, - { - "shortName": "DeleteIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.DeleteIndexEndpoint", + "shortName": "DeleteMetadataStore", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteMetadataStore", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/indexEndpoints/*}" + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*}" } ] }, { - "shortName": "DeployIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.DeployIndex", + "shortName": "GetArtifact", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetArtifact", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:deployIndex" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}" } ] }, { - "shortName": "GetIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.GetIndexEndpoint", + "shortName": "GetContext", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetContext", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/indexEndpoints/*}" + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/contexts/*}" } ] }, { - "shortName": "ListIndexEndpoints", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.ListIndexEndpoints", + "shortName": "GetExecution", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetExecution", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/indexEndpoints" + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/executions/*}" } ] }, { - "shortName": "MutateDeployedIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.MutateDeployedIndex", + "shortName": "GetMetadataSchema", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataSchema", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:mutateDeployedIndex" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/metadataSchemas/*}" } ] }, { - "shortName": "UndeployIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.UndeployIndex", + "shortName": "GetMetadataStore", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataStore", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:undeployIndex" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*}" } ] }, { - "shortName": "UpdateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.UpdateIndexEndpoint", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{index_endpoint.name=projects/*/locations/*/indexEndpoints/*}" - } - ] - } - ] - }, - { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService", - "methods": [ - { - "shortName": "CreateIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.CreateIndex", + "shortName": "ListArtifacts", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/indexes" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/artifacts" } ] }, { - "shortName": "DeleteIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.DeleteIndex", + "shortName": "ListContexts", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListContexts", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/indexes/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/contexts" } ] }, { - "shortName": "GetIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.GetIndex", + "shortName": "ListExecutions", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/indexes/*}" + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/executions" } ] }, { - "shortName": "ListIndexes", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.ListIndexes", + "shortName": "ListMetadataSchemas", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataSchemas", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/indexes" + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas" } ] }, { - "shortName": "UpdateIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.UpdateIndex", + "shortName": "ListMetadataStores", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataStores", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{index.name=projects/*/locations/*/indexes/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/metadataStores" } ] - } - ] - }, - { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService", - "methods": [ + }, { - "shortName": "CancelBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelBatchPredictionJob", + "shortName": "PurgeArtifacts", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeArtifacts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}:cancel" + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/artifacts:purge" } ] }, { - "shortName": "CancelCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelCustomJob", + "shortName": "PurgeContexts", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeContexts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/customJobs/*}:cancel" + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/contexts:purge" } ] }, { - "shortName": "CancelDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelDataLabelingJob", + "shortName": "PurgeExecutions", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeExecutions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}:cancel" + "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/executions:purge" } ] }, { - "shortName": "CancelHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelHyperparameterTuningJob", + "shortName": "QueryArtifactLineageSubgraph", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryArtifactLineageSubgraph", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}:cancel" + "httpMethod": "GET", + "path": "/v1beta1/{artifact=projects/*/locations/*/metadataStores/*/artifacts/*}:queryArtifactLineageSubgraph" } ] }, { - "shortName": "CreateBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateBatchPredictionJob", + "shortName": "QueryContextLineageSubgraph", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryContextLineageSubgraph", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/batchPredictionJobs" + "httpMethod": "GET", + "path": "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:queryContextLineageSubgraph" } ] }, { - "shortName": "CreateCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateCustomJob", + "shortName": "QueryExecutionInputsAndOutputs", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryExecutionInputsAndOutputs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/customJobs" + "httpMethod": "GET", + "path": "/v1beta1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:queryExecutionInputsAndOutputs" } ] }, { - "shortName": "CreateDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateDataLabelingJob", + "shortName": "RemoveContextChildren", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.RemoveContextChildren", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/dataLabelingJobs" + "path": "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:removeContextChildren" } ] }, { - "shortName": "CreateHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateHyperparameterTuningJob", + "shortName": "UpdateArtifact", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateArtifact", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" + "httpMethod": "PATCH", + "path": "/v1beta1/{artifact.name=projects/*/locations/*/metadataStores/*/artifacts/*}" } ] }, { - "shortName": "CreateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob", + "shortName": "UpdateContext", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateContext", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs" + "httpMethod": "PATCH", + "path": "/v1beta1/{context.name=projects/*/locations/*/metadataStores/*/contexts/*}" } ] }, { - "shortName": "DeleteBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteBatchPredictionJob", + "shortName": "UpdateExecution", + "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateExecution", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}" + "httpMethod": "PATCH", + "path": "/v1beta1/{execution.name=projects/*/locations/*/metadataStores/*/executions/*}" } ] - }, + } + ] + }, + { + "shortName": "MigrationService", + "fullName": "google.cloud.aiplatform.v1beta1.MigrationService", + "methods": [ { - "shortName": "DeleteCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteCustomJob", + "shortName": "BatchMigrateResources", + "fullName": "google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/customJobs/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/migratableResources:batchMigrate" } ] }, { - "shortName": "DeleteDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteDataLabelingJob", + "shortName": "SearchMigratableResources", + "fullName": "google.cloud.aiplatform.v1beta1.MigrationService.SearchMigratableResources", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/migratableResources:search" } ] - }, + } + ] + }, + { + "shortName": "ModelService", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService", + "methods": [ { - "shortName": "DeleteHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteHyperparameterTuningJob", + "shortName": "BatchImportModelEvaluationSlices", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.BatchImportModelEvaluationSlices", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices:batchImport" } ] }, { - "shortName": "DeleteModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteModelDeploymentMonitoringJob", + "shortName": "DeleteModel", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.DeleteModel", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" + "path": "/v1beta1/{name=projects/*/locations/*/models/*}" } ] }, { - "shortName": "GetBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetBatchPredictionJob", + "shortName": "DeleteModelVersion", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.DeleteModelVersion", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/models/*}:deleteVersion" } ] }, { - "shortName": "GetCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetCustomJob", + "shortName": "ExportModel", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ExportModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/customJobs/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/models/*}:export" } ] }, { - "shortName": "GetDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetDataLabelingJob", + "shortName": "GetModel", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}" + "path": "/v1beta1/{name=projects/*/locations/*/models/*}" } ] }, { - "shortName": "GetHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetHyperparameterTuningJob", + "shortName": "GetModelEvaluation", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" + "path": "/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*}" } ] }, { - "shortName": "GetModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetModelDeploymentMonitoringJob", + "shortName": "GetModelEvaluationSlice", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluationSlice", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" + "path": "/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/slices/*}" } ] }, { - "shortName": "ListBatchPredictionJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListBatchPredictionJobs", + "shortName": "ImportModelEvaluation", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ImportModelEvaluation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/batchPredictionJobs" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/models/*}/evaluations:import" } ] }, { - "shortName": "ListCustomJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListCustomJobs", + "shortName": "ListModelEvaluationSlices", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluationSlices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/customJobs" + "path": "/v1beta1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices" } ] }, { - "shortName": "ListDataLabelingJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListDataLabelingJobs", + "shortName": "ListModelEvaluations", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluations", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/dataLabelingJobs" + "path": "/v1beta1/{parent=projects/*/locations/*/models/*}/evaluations" } ] }, { - "shortName": "ListHyperparameterTuningJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListHyperparameterTuningJobs", + "shortName": "ListModelVersions", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelVersions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" + "path": "/v1beta1/{name=projects/*/locations/*/models/*}:listVersions" } ] }, { - "shortName": "ListModelDeploymentMonitoringJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListModelDeploymentMonitoringJobs", + "shortName": "ListModels", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModels", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs" + "path": "/v1beta1/{parent=projects/*/locations/*}/models" } ] }, { - "shortName": "PauseModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.PauseModelDeploymentMonitoringJob", + "shortName": "MergeVersionAliases", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.MergeVersionAliases", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:pause" + "path": "/v1beta1/{name=projects/*/locations/*/models/*}:mergeVersionAliases" } ] }, { - "shortName": "ResumeModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ResumeModelDeploymentMonitoringJob", + "shortName": "UpdateExplanationDataset", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UpdateExplanationDataset", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:resume" + "path": "/v1beta1/{model=projects/*/locations/*/models/*}:updateExplanationDataset" } ] }, { - "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", + "shortName": "UpdateModel", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UpdateModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{model_deployment_monitoring_job=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:searchModelDeploymentMonitoringStatsAnomalies" + "httpMethod": "PATCH", + "path": "/v1beta1/{model.name=projects/*/locations/*/models/*}" } ] }, { - "shortName": "UpdateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.UpdateModelDeploymentMonitoringJob", + "shortName": "UploadModel", + "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UploadModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{model_deployment_monitoring_job.name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/models:upload" } ] } ] }, { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService", + "shortName": "PipelineService", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService", "methods": [ { - "shortName": "AddContextArtifactsAndExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddContextArtifactsAndExecutions", + "shortName": "CancelPipelineJob", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextArtifactsAndExecutions" + "path": "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}:cancel" } ] }, { - "shortName": "AddContextChildren", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddContextChildren", + "shortName": "CancelTrainingPipeline", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CancelTrainingPipeline", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextChildren" + "path": "/v1beta1/{name=projects/*/locations/*/trainingPipelines/*}:cancel" } ] }, { - "shortName": "AddExecutionEvents", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddExecutionEvents", + "shortName": "CreatePipelineJob", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:addExecutionEvents" + "path": "/v1beta1/{parent=projects/*/locations/*}/pipelineJobs" } ] }, { - "shortName": "CreateArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateArtifact", + "shortName": "CreateTrainingPipeline", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/artifacts" + "path": "/v1beta1/{parent=projects/*/locations/*}/trainingPipelines" } ] }, { - "shortName": "CreateContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateContext", + "shortName": "DeletePipelineJob", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/contexts" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}" } ] }, { - "shortName": "CreateExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateExecution", + "shortName": "DeleteTrainingPipeline", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.DeleteTrainingPipeline", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/executions" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/trainingPipelines/*}" } ] }, { - "shortName": "CreateMetadataSchema", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataSchema", + "shortName": "GetPipelineJob", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}" } ] }, { - "shortName": "CreateMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataStore", + "shortName": "GetTrainingPipeline", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/metadataStores" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/trainingPipelines/*}" } ] }, { - "shortName": "DeleteArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteArtifact", + "shortName": "ListPipelineJobs", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/pipelineJobs" } ] }, { - "shortName": "DeleteContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteContext", + "shortName": "ListTrainingPipelines", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/contexts/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/trainingPipelines" } ] - }, + } + ] + }, + { + "shortName": "PredictionService", + "fullName": "google.cloud.aiplatform.v1beta1.PredictionService", + "methods": [ { - "shortName": "DeleteExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteExecution", + "shortName": "Explain", + "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.Explain", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/executions/*}" + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:explain" } ] }, { - "shortName": "DeleteMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteMetadataStore", + "shortName": "Predict", + "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.Predict", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*}" + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:predict" } ] }, { - "shortName": "GetArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetArtifact", + "shortName": "RawPredict", + "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.RawPredict", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}" + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:rawPredict" } ] - }, + } + ] + }, + { + "shortName": "SpecialistPoolService", + "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService", + "methods": [ { - "shortName": "GetContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetContext", + "shortName": "CreateSpecialistPool", + "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.CreateSpecialistPool", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/contexts/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/specialistPools" } ] }, { - "shortName": "GetExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetExecution", + "shortName": "DeleteSpecialistPool", + "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.DeleteSpecialistPool", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/executions/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/specialistPools/*}" } ] }, { - "shortName": "GetMetadataSchema", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataSchema", + "shortName": "GetSpecialistPool", + "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.GetSpecialistPool", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*/metadataSchemas/*}" + "path": "/v1beta1/{name=projects/*/locations/*/specialistPools/*}" } ] }, { - "shortName": "GetMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataStore", + "shortName": "ListSpecialistPools", + "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/metadataStores/*}" + "path": "/v1beta1/{parent=projects/*/locations/*}/specialistPools" } ] }, { - "shortName": "ListArtifacts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts", + "shortName": "UpdateSpecialistPool", + "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.UpdateSpecialistPool", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/artifacts" + "httpMethod": "PATCH", + "path": "/v1beta1/{specialist_pool.name=projects/*/locations/*/specialistPools/*}" } ] - }, + } + ] + }, + { + "shortName": "TensorboardService", + "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService", + "methods": [ { - "shortName": "ListContexts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListContexts", + "shortName": "BatchCreateTensorboardRuns", + "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchCreateTensorboardRuns", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/contexts" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs:batchCreate" } ] }, { - "shortName": "ListExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions", + "shortName": "BatchCreateTensorboardTimeSeries", + "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchCreateTensorboardTimeSeries", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/executions" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs/*/timeSeries:batchCreate" } ] }, { - "shortName": "ListMetadataSchemas", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataSchemas", + "shortName": "BatchReadTensorboardTimeSeriesData", + "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchReadTensorboardTimeSeriesData", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas" + "path": "/v1beta1/{tensorboard=projects/*/locations/*/tensorboards/*}/experiments/*/runs/*/timeSeries:batchRead" } ] }, { - "shortName": "ListMetadataStores", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataStores", + "shortName": "CreateTensorboard", + "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboard", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/metadataStores" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/tensorboards" } ] }, { - "shortName": "PurgeArtifacts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeArtifacts", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/artifacts:purge" - } - ] - }, - { - "shortName": "PurgeContexts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeContexts", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/contexts:purge" - } - ] - }, - { - "shortName": "PurgeExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeExecutions", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/executions:purge" - } - ] - }, - { - "shortName": "QueryArtifactLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryArtifactLineageSubgraph", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{artifact=projects/*/locations/*/metadataStores/*/artifacts/*}:queryArtifactLineageSubgraph" - } - ] - }, - { - "shortName": "QueryContextLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryContextLineageSubgraph", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:queryContextLineageSubgraph" - } - ] - }, - { - "shortName": "QueryExecutionInputsAndOutputs", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryExecutionInputsAndOutputs", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:queryExecutionInputsAndOutputs" - } - ] - }, - { - "shortName": "UpdateArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateArtifact", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{artifact.name=projects/*/locations/*/metadataStores/*/artifacts/*}" - } - ] - }, - { - "shortName": "UpdateContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateContext", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{context.name=projects/*/locations/*/metadataStores/*/contexts/*}" - } - ] - }, - { - "shortName": "UpdateExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateExecution", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{execution.name=projects/*/locations/*/metadataStores/*/executions/*}" - } - ] - } - ] - }, - { - "shortName": "MigrationService", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService", - "methods": [ - { - "shortName": "BatchMigrateResources", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/migratableResources:batchMigrate" - } - ] - }, - { - "shortName": "SearchMigratableResources", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService.SearchMigratableResources", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/migratableResources:search" - } - ] - } - ] - }, - { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService", - "methods": [ - { - "shortName": "DeleteModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.DeleteModel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/models/*}" - } - ] - }, - { - "shortName": "ExportModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ExportModel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/models/*}:export" - } - ] - }, - { - "shortName": "GetModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/models/*}" - } - ] - }, - { - "shortName": "GetModelEvaluation", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluation", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*}" - } - ] - }, - { - "shortName": "GetModelEvaluationSlice", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluationSlice", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/slices/*}" - } - ] - }, - { - "shortName": "ListModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluationSlices", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices" - } - ] - }, - { - "shortName": "ListModelEvaluations", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluations", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/models/*}/evaluations" - } - ] - }, - { - "shortName": "ListModels", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModels", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/models" - } - ] - }, - { - "shortName": "UpdateModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UpdateModel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{model.name=projects/*/locations/*/models/*}" - } - ] - }, - { - "shortName": "UploadModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UploadModel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/models:upload" - } - ] - } - ] - }, - { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService", - "methods": [ - { - "shortName": "CancelPipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}:cancel" - } - ] - }, - { - "shortName": "CancelTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CancelTrainingPipeline", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/trainingPipelines/*}:cancel" - } - ] - }, - { - "shortName": "CreatePipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/pipelineJobs" - } - ] - }, - { - "shortName": "CreateTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/trainingPipelines" - } - ] - }, - { - "shortName": "DeletePipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}" - } - ] - }, - { - "shortName": "DeleteTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.DeleteTrainingPipeline", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/trainingPipelines/*}" - } - ] - }, - { - "shortName": "GetPipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}" - } - ] - }, - { - "shortName": "GetTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/trainingPipelines/*}" - } - ] - }, - { - "shortName": "ListPipelineJobs", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/pipelineJobs" - } - ] - }, - { - "shortName": "ListTrainingPipelines", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/trainingPipelines" - } - ] - } - ] - }, - { - "shortName": "PredictionService", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService", - "methods": [ - { - "shortName": "Explain", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.Explain", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:explain" - } - ] - }, - { - "shortName": "Predict", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.Predict", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:predict" - } - ] - }, - { - "shortName": "RawPredict", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.RawPredict", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:rawPredict" - } - ] - } - ] - }, - { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService", - "methods": [ - { - "shortName": "CreateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.CreateSpecialistPool", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/specialistPools" - } - ] - }, - { - "shortName": "DeleteSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.DeleteSpecialistPool", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/specialistPools/*}" - } - ] - }, - { - "shortName": "GetSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.GetSpecialistPool", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/specialistPools/*}" - } - ] - }, - { - "shortName": "ListSpecialistPools", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/specialistPools" - } - ] - }, - { - "shortName": "UpdateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.UpdateSpecialistPool", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{specialist_pool.name=projects/*/locations/*/specialistPools/*}" - } - ] - } - ] - }, - { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService", - "methods": [ - { - "shortName": "BatchCreateTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchCreateTensorboardRuns", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs:batchCreate" - } - ] - }, - { - "shortName": "BatchCreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchCreateTensorboardTimeSeries", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs/*/timeSeries:batchCreate" - } - ] - }, - { - "shortName": "BatchReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchReadTensorboardTimeSeriesData", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{tensorboard=projects/*/locations/*/tensorboards/*}/experiments/*/runs/*/timeSeries:batchRead" - } - ] - }, - { - "shortName": "CreateTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboard", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/tensorboards" - } - ] - }, - { - "shortName": "CreateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardExperiment", + "shortName": "CreateTensorboardExperiment", + "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardExperiment", "mode": "UNARY", "bindings": [ { @@ -19059,7 +18363,28 @@ ] } ], - "configFile": "aiplatform_v1beta1.yaml" + "configFile": "aiplatform_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.aiplatform.v1beta1.DatasetService", + "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService", + "google.cloud.aiplatform.v1beta1.EndpointService", + "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService", + "google.cloud.aiplatform.v1beta1.FeaturestoreService", + "google.cloud.aiplatform.v1beta1.IndexEndpointService", + "google.cloud.aiplatform.v1beta1.IndexService", + "google.cloud.aiplatform.v1beta1.JobService", + "google.cloud.aiplatform.v1beta1.MetadataService", + "google.cloud.aiplatform.v1beta1.MigrationService", + "google.cloud.aiplatform.v1beta1.ModelService", + "google.cloud.aiplatform.v1beta1.PipelineService", + "google.cloud.aiplatform.v1beta1.PredictionService", + "google.cloud.aiplatform.v1beta1.SpecialistPoolService", + "google.cloud.aiplatform.v1beta1.TensorboardService", + "google.cloud.aiplatform.v1beta1.VizierService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.apigateway.v1", @@ -19280,7 +18605,10 @@ ] } ], - "configFile": "apigateway_v1.yaml" + "configFile": "apigateway_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.apigateway.v1.ApiGatewayService" + ] }, { "id": "google.cloud.apigeeconnect.v1", @@ -19357,15 +18685,602 @@ ] } ], - "configFile": "apigeeconnect_v1.yaml" + "configFile": "apigeeconnect_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.apigeeconnect.v1.ConnectionService", + "google.cloud.apigeeconnect.v1.Tether" + ] }, { - "id": "google.cloud.asset.v1", - "directory": "google/cloud/asset/v1", + "id": "google.cloud.apigeeregistry.v1", + "directory": "google/cloud/apigeeregistry/v1", "version": "v1", "majorVersion": "v1", - "hostName": "cloudasset.googleapis.com", - "title": "Cloud Asset API", + "hostName": "apigeeregistry.googleapis.com", + "title": "Apigee Registry API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/apigeeregistry/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ApigeeRegistry.V1": 3 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/apigeeregistry/v1;apigeeregistry": 3 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 3 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.apigeeregistry.v1": 3 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ApigeeRegistry\\V1": 3 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ApigeeRegistry::V1": 3 + } + } + }, + "services": [ + { + "shortName": "Provisioning", + "fullName": "google.cloud.apigeeregistry.v1.Provisioning", + "methods": [ + { + "shortName": "CreateInstance", + "fullName": "google.cloud.apigeeregistry.v1.Provisioning.CreateInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/instances" + } + ] + }, + { + "shortName": "DeleteInstance", + "fullName": "google.cloud.apigeeregistry.v1.Provisioning.DeleteInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/instances/*}" + } + ] + }, + { + "shortName": "GetInstance", + "fullName": "google.cloud.apigeeregistry.v1.Provisioning.GetInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/instances/*}" + } + ] + } + ] + }, + { + "shortName": "Registry", + "fullName": "google.cloud.apigeeregistry.v1.Registry", + "methods": [ + { + "shortName": "CreateApi", + "fullName": "google.cloud.apigeeregistry.v1.Registry.CreateApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/apis" + } + ] + }, + { + "shortName": "CreateApiDeployment", + "fullName": "google.cloud.apigeeregistry.v1.Registry.CreateApiDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*}/deployments" + } + ] + }, + { + "shortName": "CreateApiSpec", + "fullName": "google.cloud.apigeeregistry.v1.Registry.CreateApiSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs" + } + ] + }, + { + "shortName": "CreateApiVersion", + "fullName": "google.cloud.apigeeregistry.v1.Registry.CreateApiVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*}/versions" + } + ] + }, + { + "shortName": "CreateArtifact", + "fullName": "google.cloud.apigeeregistry.v1.Registry.CreateArtifact", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/artifacts" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*}/artifacts" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/artifacts" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*/specs/*}/artifacts" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*/deployments/*}/artifacts" + } + ] + }, + { + "shortName": "DeleteApi", + "fullName": "google.cloud.apigeeregistry.v1.Registry.DeleteApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*}" + } + ] + }, + { + "shortName": "DeleteApiDeployment", + "fullName": "google.cloud.apigeeregistry.v1.Registry.DeleteApiDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*}" + } + ] + }, + { + "shortName": "DeleteApiDeploymentRevision", + "fullName": "google.cloud.apigeeregistry.v1.Registry.DeleteApiDeploymentRevision", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*}:deleteRevision" + } + ] + }, + { + "shortName": "DeleteApiSpec", + "fullName": "google.cloud.apigeeregistry.v1.Registry.DeleteApiSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}" + } + ] + }, + { + "shortName": "DeleteApiSpecRevision", + "fullName": "google.cloud.apigeeregistry.v1.Registry.DeleteApiSpecRevision", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:deleteRevision" + } + ] + }, + { + "shortName": "DeleteApiVersion", + "fullName": "google.cloud.apigeeregistry.v1.Registry.DeleteApiVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*}" + } + ] + }, + { + "shortName": "DeleteArtifact", + "fullName": "google.cloud.apigeeregistry.v1.Registry.DeleteArtifact", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/artifacts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/artifacts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/artifacts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*/artifacts/*}" + } + ] + }, + { + "shortName": "GetApi", + "fullName": "google.cloud.apigeeregistry.v1.Registry.GetApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*}" + } + ] + }, + { + "shortName": "GetApiDeployment", + "fullName": "google.cloud.apigeeregistry.v1.Registry.GetApiDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*}" + } + ] + }, + { + "shortName": "GetApiSpec", + "fullName": "google.cloud.apigeeregistry.v1.Registry.GetApiSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}" + } + ] + }, + { + "shortName": "GetApiSpecContents", + "fullName": "google.cloud.apigeeregistry.v1.Registry.GetApiSpecContents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:getContents" + } + ] + }, + { + "shortName": "GetApiVersion", + "fullName": "google.cloud.apigeeregistry.v1.Registry.GetApiVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*}" + } + ] + }, + { + "shortName": "GetArtifact", + "fullName": "google.cloud.apigeeregistry.v1.Registry.GetArtifact", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/artifacts/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/artifacts/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/artifacts/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*/artifacts/*}" + } + ] + }, + { + "shortName": "GetArtifactContents", + "fullName": "google.cloud.apigeeregistry.v1.Registry.GetArtifactContents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/artifacts/*}:getContents" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/artifacts/*}:getContents" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/artifacts/*}:getContents" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}:getContents" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*/artifacts/*}:getContents" + } + ] + }, + { + "shortName": "ListApiDeploymentRevisions", + "fullName": "google.cloud.apigeeregistry.v1.Registry.ListApiDeploymentRevisions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*}:listRevisions" + } + ] + }, + { + "shortName": "ListApiDeployments", + "fullName": "google.cloud.apigeeregistry.v1.Registry.ListApiDeployments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*}/deployments" + } + ] + }, + { + "shortName": "ListApiSpecRevisions", + "fullName": "google.cloud.apigeeregistry.v1.Registry.ListApiSpecRevisions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:listRevisions" + } + ] + }, + { + "shortName": "ListApiSpecs", + "fullName": "google.cloud.apigeeregistry.v1.Registry.ListApiSpecs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs" + } + ] + }, + { + "shortName": "ListApiVersions", + "fullName": "google.cloud.apigeeregistry.v1.Registry.ListApiVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*}/versions" + } + ] + }, + { + "shortName": "ListApis", + "fullName": "google.cloud.apigeeregistry.v1.Registry.ListApis", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/apis" + } + ] + }, + { + "shortName": "ListArtifacts", + "fullName": "google.cloud.apigeeregistry.v1.Registry.ListArtifacts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/artifacts" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*}/artifacts" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/artifacts" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*/specs/*}/artifacts" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*/deployments/*}/artifacts" + } + ] + }, + { + "shortName": "ReplaceArtifact", + "fullName": "google.cloud.apigeeregistry.v1.Registry.ReplaceArtifact", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/v1/{artifact.name=projects/*/locations/*/artifacts/*}" + }, + { + "httpMethod": "PUT", + "path": "/v1/{artifact.name=projects/*/locations/*/apis/*/artifacts/*}" + }, + { + "httpMethod": "PUT", + "path": "/v1/{artifact.name=projects/*/locations/*/apis/*/versions/*/artifacts/*}" + }, + { + "httpMethod": "PUT", + "path": "/v1/{artifact.name=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}" + }, + { + "httpMethod": "PUT", + "path": "/v1/{artifact.name=projects/*/locations/*/apis/*/deployments/*/artifacts/*}" + } + ] + }, + { + "shortName": "RollbackApiDeployment", + "fullName": "google.cloud.apigeeregistry.v1.Registry.RollbackApiDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*}:rollback" + } + ] + }, + { + "shortName": "RollbackApiSpec", + "fullName": "google.cloud.apigeeregistry.v1.Registry.RollbackApiSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:rollback" + } + ] + }, + { + "shortName": "TagApiDeploymentRevision", + "fullName": "google.cloud.apigeeregistry.v1.Registry.TagApiDeploymentRevision", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/apis/*/deployments/*}:tagRevision" + } + ] + }, + { + "shortName": "TagApiSpecRevision", + "fullName": "google.cloud.apigeeregistry.v1.Registry.TagApiSpecRevision", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:tagRevision" + } + ] + }, + { + "shortName": "UpdateApi", + "fullName": "google.cloud.apigeeregistry.v1.Registry.UpdateApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{api.name=projects/*/locations/*/apis/*}" + } + ] + }, + { + "shortName": "UpdateApiDeployment", + "fullName": "google.cloud.apigeeregistry.v1.Registry.UpdateApiDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{api_deployment.name=projects/*/locations/*/apis/*/deployments/*}" + } + ] + }, + { + "shortName": "UpdateApiSpec", + "fullName": "google.cloud.apigeeregistry.v1.Registry.UpdateApiSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{api_spec.name=projects/*/locations/*/apis/*/versions/*/specs/*}" + } + ] + }, + { + "shortName": "UpdateApiVersion", + "fullName": "google.cloud.apigeeregistry.v1.Registry.UpdateApiVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{api_version.name=projects/*/locations/*/apis/*/versions/*}" + } + ] + } + ] + } + ], + "configFile": "apigeeregistry_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.apigeeregistry.v1.Provisioning", + "google.cloud.apigeeregistry.v1.Registry", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.asset.v1", + "directory": "google/cloud/asset/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "cloudasset.googleapis.com", + "title": "Cloud Asset API", "description": "The cloud asset API manages the history and inventory of cloud resources.", "importDirectories": [ "google/api", @@ -19461,6 +19376,17 @@ } ] }, + { + "shortName": "BatchGetEffectiveIamPolicies", + "fullName": "google.cloud.asset.v1.AssetService.BatchGetEffectiveIamPolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{scope=*/*}/effectiveIamPolicies:batchGet" + } + ] + }, { "shortName": "CreateFeed", "fullName": "google.cloud.asset.v1.AssetService.CreateFeed", @@ -19472,6 +19398,17 @@ } ] }, + { + "shortName": "CreateSavedQuery", + "fullName": "google.cloud.asset.v1.AssetService.CreateSavedQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=*/*}/savedQueries" + } + ] + }, { "shortName": "DeleteFeed", "fullName": "google.cloud.asset.v1.AssetService.DeleteFeed", @@ -19483,6 +19420,17 @@ } ] }, + { + "shortName": "DeleteSavedQuery", + "fullName": "google.cloud.asset.v1.AssetService.DeleteSavedQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=*/*/savedQueries/*}" + } + ] + }, { "shortName": "ExportAssets", "fullName": "google.cloud.asset.v1.AssetService.ExportAssets", @@ -19505,6 +19453,17 @@ } ] }, + { + "shortName": "GetSavedQuery", + "fullName": "google.cloud.asset.v1.AssetService.GetSavedQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=*/*/savedQueries/*}" + } + ] + }, { "shortName": "ListAssets", "fullName": "google.cloud.asset.v1.AssetService.ListAssets", @@ -19527,6 +19486,28 @@ } ] }, + { + "shortName": "ListSavedQueries", + "fullName": "google.cloud.asset.v1.AssetService.ListSavedQueries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=*/*}/savedQueries" + } + ] + }, + { + "shortName": "QueryAssets", + "fullName": "google.cloud.asset.v1.AssetService.QueryAssets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=*/*}:queryAssets" + } + ] + }, { "shortName": "SearchAllIamPolicies", "fullName": "google.cloud.asset.v1.AssetService.SearchAllIamPolicies", @@ -19559,11 +19540,26 @@ "path": "/v1/{feed.name=*/*/feeds/*}" } ] + }, + { + "shortName": "UpdateSavedQuery", + "fullName": "google.cloud.asset.v1.AssetService.UpdateSavedQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{saved_query.name=*/*/savedQueries/*}" + } + ] } ] } ], - "configFile": "cloudasset_v1.yaml" + "configFile": "cloudasset_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.asset.v1.AssetService", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.asset.v1p1beta1", @@ -19641,7 +19637,10 @@ ] } ], - "configFile": "cloudasset_v1p1beta1.yaml" + "configFile": "cloudasset_v1p1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.asset.v1p1beta1.AssetService" + ] }, { "id": "google.cloud.asset.v1p2beta1", @@ -19655,7 +19654,6 @@ "google/api", "google/cloud/asset/v1p2beta1", "google/iam/v1", - "google/longrunning", "google/protobuf" ], "options": { @@ -19755,101 +19753,23 @@ ] } ], - "configFile": "cloudasset_v1p2beta1.yaml" + "configFile": "cloudasset_v1p2beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.asset.v1p2beta1.AssetService" + ] }, { - "id": "google.cloud.asset.v1p4beta1", - "directory": "google/cloud/asset/v1p4beta1", - "version": "v1p4beta1", + "id": "google.cloud.asset.v1p5beta1", + "directory": "google/cloud/asset/v1p5beta1", + "version": "v1p5beta1", "majorVersion": "v1", "hostName": "cloudasset.googleapis.com", "title": "Cloud Asset API", "description": "The cloud asset API manages the history and inventory of cloud resources.", "importDirectories": [ "google/api", - "google/cloud/asset/v1p4beta1", - "google/iam/v1", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "cc_enable_arenas": { - "valueCounts": { - "": 1, - "true": 1 - } - }, - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Asset.V1P4Beta1": 2 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/asset/v1p4beta1;asset": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.asset.v1p4beta1": 2 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\Asset\\V1p4beta1": 2 - } - } - }, - "services": [ - { - "shortName": "AssetService", - "fullName": "google.cloud.asset.v1p4beta1.AssetService", - "methods": [ - { - "shortName": "AnalyzeIamPolicy", - "fullName": "google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1p4beta1/{analysis_query.parent=*/*}:analyzeIamPolicy" - } - ] - }, - { - "shortName": "ExportIamPolicyAnalysis", - "fullName": "google.cloud.asset.v1p4beta1.AssetService.ExportIamPolicyAnalysis", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1p4beta1/{analysis_query.parent=*/*}:exportIamPolicyAnalysis" - } - ] - } - ] - } - ], - "configFile": "cloudasset_v1p4beta1.yaml" - }, - { - "id": "google.cloud.asset.v1p5beta1", - "directory": "google/cloud/asset/v1p5beta1", - "version": "v1p5beta1", - "majorVersion": "v1", - "hostName": "cloudasset.googleapis.com", - "title": "Cloud Asset API", - "description": "The cloud asset API manages the history and inventory of cloud resources.", - "importDirectories": [ - "google/api", - "google/cloud/asset/v1p5beta1", - "google/cloud/orgpolicy/v1", + "google/cloud/asset/v1p5beta1", + "google/cloud/orgpolicy/v1", "google/iam/v1", "google/identity/accesscontextmanager/v1", "google/protobuf" @@ -19907,7 +19827,10 @@ ] } ], - "configFile": "cloudasset_v1p5beta1.yaml" + "configFile": "cloudasset_v1p5beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.asset.v1p5beta1.AssetService" + ] }, { "id": "google.cloud.asset.v1p7beta1", @@ -19979,7 +19902,10 @@ ] } ], - "configFile": "cloudasset_v1p7beta1.yaml" + "configFile": "cloudasset_v1p7beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.asset.v1p7beta1.AssetService" + ] }, { "id": "google.cloud.assuredworkloads.v1", @@ -20089,7 +20015,10 @@ ] } ], - "configFile": "assuredworkloads_v1.yaml" + "configFile": "assuredworkloads_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.assuredworkloads.v1.AssuredWorkloadsService" + ] }, { "id": "google.cloud.assuredworkloads.v1beta1", @@ -20101,38 +20030,39 @@ "description": "", "importDirectories": [ "google/api", + "google/cloud/assuredworkloads/v1beta1", "google/longrunning", "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.AssuredWorkloads.V1Beta1": 1 + "Google.Cloud.AssuredWorkloads.V1Beta1": 2 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/assuredworkloads/v1beta1;assuredworkloads": 1 + "google.golang.org/genproto/googleapis/cloud/assuredworkloads/v1beta1;assuredworkloads": 2 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 2 } }, "java_package": { "valueCounts": { - "com.google.cloud.assuredworkloads.v1beta1": 1 + "com.google.cloud.assuredworkloads.v1beta1": 2 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\AssuredWorkloads\\V1beta1": 1 + "Google\\Cloud\\AssuredWorkloads\\V1beta1": 2 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::AssuredWorkloads::V1beta1": 1 + "Google::Cloud::AssuredWorkloads::V1beta1": 2 } } }, @@ -20141,6 +20071,11 @@ "shortName": "AssuredWorkloadsService", "fullName": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService", "methods": [ + { + "shortName": "AnalyzeWorkloadMove", + "fullName": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService.AnalyzeWorkloadMove", + "mode": "UNARY" + }, { "shortName": "CreateWorkload", "fullName": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService.CreateWorkload", @@ -20166,40 +20101,37 @@ { "shortName": "GetWorkload", "fullName": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService.GetWorkload", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=organizations/*/locations/*/workloads/*}" - } - ] + "mode": "UNARY" }, { "shortName": "ListWorkloads", "fullName": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService.ListWorkloads", + "mode": "UNARY" + }, + { + "shortName": "RestrictAllowedResources", + "fullName": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService.RestrictAllowedResources", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=organizations/*/locations/*}/workloads" + "httpMethod": "POST", + "path": "/v1beta1/{name=organizations/*/locations/*/workloads/*}:restrictAllowedResources" } ] }, { "shortName": "UpdateWorkload", "fullName": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService.UpdateWorkload", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{workload.name=organizations/*/locations/*/workloads/*}" - } - ] + "mode": "UNARY" } ] } ], - "configFile": "assuredworkloads_v1beta1.yaml" + "configFile": "assuredworkloads_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.automl.v1", @@ -20482,7 +20414,11 @@ ] } ], - "configFile": "automl_v1.yaml" + "configFile": "automl_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.automl.v1.AutoMl", + "google.cloud.automl.v1.PredictionService" + ] }, { "id": "google.cloud.automl.v1beta1", @@ -20827,7 +20763,11 @@ ] } ], - "configFile": "automl_v1beta1.yaml" + "configFile": "automl_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.automl.v1beta1.AutoMl", + "google.cloud.automl.v1beta1.PredictionService" + ] }, { "id": "google.cloud.baremetalsolution.v2", @@ -20839,38 +20779,39 @@ "description": "Provides ways to manage Bare Metal Solution hardware installed in a regional extension located near a Google Cloud data center.", "importDirectories": [ "google/api", + "google/cloud/baremetalsolution/v2", "google/longrunning", "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BaremetalSolution.V2": 1 + "Google.Cloud.BareMetalSolution.V2": 6 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution": 1 + "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution": 6 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 6 } }, "java_package": { "valueCounts": { - "com.google.cloud.baremetalsolution.v2": 1 + "com.google.cloud.baremetalsolution.v2": 6 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BaremetalSolution\\V2": 1 + "Google\\Cloud\\BareMetalSolution\\V2": 6 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::BaremetalSolution::V2": 1 + "Google::Cloud::BareMetalSolution::V2": 6 } } }, @@ -20880,46 +20821,13 @@ "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution", "methods": [ { - "shortName": "CreateSnapshotSchedulePolicy", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.CreateSnapshotSchedulePolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/snapshotSchedulePolicies" - } - ] - }, - { - "shortName": "CreateVolumeSnapshot", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.CreateVolumeSnapshot", + "shortName": "DetachLun", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.DetachLun", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/volumes/*}/snapshots" - } - ] - }, - { - "shortName": "DeleteSnapshotSchedulePolicy", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.DeleteSnapshotSchedulePolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/snapshotSchedulePolicies/*}" - } - ] - }, - { - "shortName": "DeleteVolumeSnapshot", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.DeleteVolumeSnapshot", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/volumes/*/snapshots/*}" + "path": "/v2/{instance=projects/*/locations/*/instances/*}:detachLun" } ] }, @@ -20957,13 +20865,13 @@ ] }, { - "shortName": "GetSnapshotSchedulePolicy", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.GetSnapshotSchedulePolicy", + "shortName": "GetNfsShare", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.GetNfsShare", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/snapshotSchedulePolicies/*}" + "path": "/v2/{name=projects/*/locations/*/nfsShares/*}" } ] }, @@ -20978,17 +20886,6 @@ } ] }, - { - "shortName": "GetVolumeSnapshot", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.GetVolumeSnapshot", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/volumes/*/snapshots/*}" - } - ] - }, { "shortName": "ListInstances", "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.ListInstances", @@ -21012,35 +20909,35 @@ ] }, { - "shortName": "ListNetworks", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.ListNetworks", + "shortName": "ListNetworkUsage", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.ListNetworkUsage", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/networks" + "path": "/v2/{location=projects/*/locations/*}/networks:listNetworkUsage" } ] }, { - "shortName": "ListSnapshotSchedulePolicies", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.ListSnapshotSchedulePolicies", + "shortName": "ListNetworks", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.ListNetworks", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/snapshotSchedulePolicies" + "path": "/v2/{parent=projects/*/locations/*}/networks" } ] }, { - "shortName": "ListVolumeSnapshots", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.ListVolumeSnapshots", + "shortName": "ListNfsShares", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.ListNfsShares", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/volumes/*}/snapshots" + "path": "/v2/{parent=projects/*/locations/*}/nfsShares" } ] }, @@ -21067,24 +20964,68 @@ ] }, { - "shortName": "RestoreVolumeSnapshot", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.RestoreVolumeSnapshot", + "shortName": "ResizeVolume", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.ResizeVolume", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{volume=projects/*/locations/*/volumes/*}:resize" + } + ] + }, + { + "shortName": "StartInstance", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.StartInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/instances/*}:start" + } + ] + }, + { + "shortName": "StopInstance", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.StopInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{volume_snapshot=projects/*/locations/*/volumes/*/snapshots/*}:restoreVolumeSnapshot" + "path": "/v2/{name=projects/*/locations/*/instances/*}:stop" + } + ] + }, + { + "shortName": "UpdateInstance", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.UpdateInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{instance.name=projects/*/locations/*/instances/*}" + } + ] + }, + { + "shortName": "UpdateNetwork", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.UpdateNetwork", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{network.name=projects/*/locations/*/networks/*}" } ] }, { - "shortName": "UpdateSnapshotSchedulePolicy", - "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.UpdateSnapshotSchedulePolicy", + "shortName": "UpdateNfsShare", + "fullName": "google.cloud.baremetalsolution.v2.BareMetalSolution.UpdateNfsShare", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v2/{snapshot_schedule_policy.name=projects/*/locations/*/snapshotSchedulePolicies/*}" + "path": "/v2/{nfs_share.name=projects/*/locations/*/nfsShares/*}" } ] }, @@ -21102,744 +21043,778 @@ ] } ], - "configFile": "baremetalsolution_v2.yaml" + "configFile": "baremetalsolution_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.baremetalsolution.v2.BareMetalSolution", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.bigquery.connection.v1", - "directory": "google/cloud/bigquery/connection/v1", + "id": "google.cloud.batch.v1", + "directory": "google/cloud/batch/v1", "version": "v1", "majorVersion": "v1", - "hostName": "bigqueryconnection.googleapis.com", - "title": "BigQuery Connection API", - "description": "Allows users to manage BigQuery connections to external data sources.", + "hostName": "batch.googleapis.com", + "title": "Batch API", + "description": "An API to manage the running of batch jobs on Google Cloud Platform.", "importDirectories": [ "google/api", - "google/iam/v1", + "google/cloud/batch/v1", + "google/longrunning", "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BigQuery.Connection.V1": 1 + "Google.Cloud.Batch.V1": 4 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/connection/v1;connection": 1 + "google.golang.org/genproto/googleapis/cloud/batch/v1;batch": 4 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 4 } }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.connection.v1": 1 + "com.google.cloud.batch.v1": 4 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GCB": 4 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BigQuery\\Connection\\V1": 1 + "Google\\Cloud\\Batch\\V1": 4 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Batch::V1": 4 } } }, "services": [ { - "shortName": "ConnectionService", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService", + "shortName": "BatchService", + "fullName": "google.cloud.batch.v1.BatchService", "methods": [ { - "shortName": "CreateConnection", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.CreateConnection", + "shortName": "CreateJob", + "fullName": "google.cloud.batch.v1.BatchService.CreateJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/connections" + "path": "/v1/{parent=projects/*/locations/*}/jobs" } ] }, { - "shortName": "DeleteConnection", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.DeleteConnection", + "shortName": "DeleteJob", + "fullName": "google.cloud.batch.v1.BatchService.DeleteJob", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/connections/*}" + "path": "/v1/{name=projects/*/locations/*/jobs/*}" } ] }, { - "shortName": "GetConnection", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.GetConnection", + "shortName": "GetJob", + "fullName": "google.cloud.batch.v1.BatchService.GetJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/connections/*}" - } - ] - }, - { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.GetIamPolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/connections/*}:getIamPolicy" + "path": "/v1/{name=projects/*/locations/*/jobs/*}" } ] }, { - "shortName": "ListConnections", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.ListConnections", + "shortName": "GetTask", + "fullName": "google.cloud.batch.v1.BatchService.GetTask", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/connections" - } - ] - }, - { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.SetIamPolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/connections/*}:setIamPolicy" + "path": "/v1/{name=projects/*/locations/*/jobs/*/taskGroups/*/tasks/*}" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.TestIamPermissions", + "shortName": "ListJobs", + "fullName": "google.cloud.batch.v1.BatchService.ListJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/connections/*}:testIamPermissions" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/jobs" } ] }, { - "shortName": "UpdateConnection", - "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.UpdateConnection", + "shortName": "ListTasks", + "fullName": "google.cloud.batch.v1.BatchService.ListTasks", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{name=projects/*/locations/*/connections/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/jobs/*/taskGroups/*}/tasks" } ] } ] } ], - "configFile": "bigqueryconnection_v1.yaml" + "configFile": "batch_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.batch.v1.BatchService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.bigquery.connection.v1beta1", - "directory": "google/cloud/bigquery/connection/v1beta1", - "version": "v1beta1", + "id": "google.cloud.batch.v1alpha", + "directory": "google/cloud/batch/v1alpha", + "version": "v1alpha", "majorVersion": "v1", - "hostName": "bigqueryconnection.googleapis.com", - "title": "BigQuery Connection API", - "description": "Allows users to manage BigQuery connections to external data sources.", + "hostName": "batch.googleapis.com", + "title": "Batch API", + "description": "An API to manage the running of batch jobs on Google Cloud Platform.", "importDirectories": [ "google/api", - "google/iam/v1", + "google/cloud/batch/v1alpha", + "google/longrunning", "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BigQuery.Connection.V1Beta1": 1 + "Google.Cloud.Batch.V1Alpha": 4 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/connection/v1beta1;connection": 1 + "google.golang.org/genproto/googleapis/cloud/batch/v1alpha;batch": 4 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 4 } }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.connection.v1beta1": 1 + "com.google.cloud.batch.v1alpha": 4 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GCB": 4 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BigQuery\\Connection\\V1beta1": 1 + "Google\\Cloud\\Batch\\V1alpha": 4 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Batch::V1alpha": 4 } } }, "services": [ { - "shortName": "ConnectionService", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService", + "shortName": "BatchService", + "fullName": "google.cloud.batch.v1alpha.BatchService", "methods": [ { - "shortName": "CreateConnection", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.CreateConnection", + "shortName": "CreateJob", + "fullName": "google.cloud.batch.v1alpha.BatchService.CreateJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/connections" + "path": "/v1alpha/{parent=projects/*/locations/*}/jobs" } ] }, { - "shortName": "DeleteConnection", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.DeleteConnection", + "shortName": "DeleteJob", + "fullName": "google.cloud.batch.v1alpha.BatchService.DeleteJob", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/connections/*}" + "path": "/v1alpha/{name=projects/*/locations/*/jobs/*}" } ] }, { - "shortName": "GetConnection", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.GetConnection", + "shortName": "GetJob", + "fullName": "google.cloud.batch.v1alpha.BatchService.GetJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/connections/*}" - } - ] - }, - { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.GetIamPolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/connections/*}:getIamPolicy" + "path": "/v1alpha/{name=projects/*/locations/*/jobs/*}" } ] }, { - "shortName": "ListConnections", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.ListConnections", + "shortName": "GetTask", + "fullName": "google.cloud.batch.v1alpha.BatchService.GetTask", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/connections" - } - ] - }, - { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.SetIamPolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/connections/*}:setIamPolicy" - } - ] - }, - { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.TestIamPermissions", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/connections/*}:testIamPermissions" + "path": "/v1alpha/{name=projects/*/locations/*/jobs/*/taskGroups/*/tasks/*}" } ] }, { - "shortName": "UpdateConnection", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.UpdateConnection", + "shortName": "ListJobs", + "fullName": "google.cloud.batch.v1alpha.BatchService.ListJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{name=projects/*/locations/*/connections/*}" + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/jobs" } ] }, { - "shortName": "UpdateConnectionCredential", - "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.UpdateConnectionCredential", + "shortName": "ListTasks", + "fullName": "google.cloud.batch.v1alpha.BatchService.ListTasks", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{name=projects/*/locations/*/connections/*/credential}" + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/jobs/*/taskGroups/*}/tasks" } ] } ] } ], - "configFile": "bigqueryconnection_v1beta1.yaml" + "configFile": "batch_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.batch.v1alpha.BatchService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.bigquery.datatransfer.v1", - "directory": "google/cloud/bigquery/datatransfer/v1", + "id": "google.cloud.beyondcorp.appconnections.v1", + "directory": "google/cloud/beyondcorp/appconnections/v1", "version": "v1", "majorVersion": "v1", - "hostName": "bigquerydatatransfer.googleapis.com", - "title": "BigQuery Data Transfer API", - "description": "Schedule queries or transfer external data from SaaS applications to Google BigQuery on a regular basis.", + "hostName": "beyondcorp.googleapis.com", + "title": "BeyondCorp API", + "description": "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", "importDirectories": [ "google/api", - "google/cloud/bigquery/datatransfer/v1", - "google/protobuf", - "google/rpc" + "google/longrunning", + "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BigQuery.DataTransfer.V1": 2 + "Google.Cloud.BeyondCorp.AppConnections.V1": 1 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1;datatransfer": 2 + "google.golang.org/genproto/googleapis/cloud/beyondcorp/appconnections/v1;appconnections": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.datatransfer.v1": 2 - } - }, - "objc_class_prefix": { - "valueCounts": { - "": 1, - "GCBDT": 1 + "com.google.cloud.beyondcorp.appconnections.v1": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BigQuery\\DataTransfer\\V1": 2 + "Google\\Cloud\\BeyondCorp\\AppConnections\\V1": 1 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Bigquery::DataTransfer::V1": 2 + "Google::Cloud::BeyondCorp::AppConnections::V1": 1 } } }, "services": [ { - "shortName": "DataTransferService", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService", + "shortName": "AppConnectionsService", + "fullName": "google.cloud.beyondcorp.appconnections.v1.AppConnectionsService", "methods": [ { - "shortName": "CheckValidCreds", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.CheckValidCreds", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/dataSources/*}:checkValidCreds" - }, - { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/dataSources/*}:checkValidCreds" - } - ] - }, - { - "shortName": "CreateTransferConfig", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.CreateTransferConfig", + "shortName": "CreateAppConnection", + "fullName": "google.cloud.beyondcorp.appconnections.v1.AppConnectionsService.CreateAppConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/transferConfigs" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*}/transferConfigs" + "path": "/v1/{parent=projects/*/locations/*}/appConnections" } ] }, { - "shortName": "DeleteTransferConfig", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.DeleteTransferConfig", + "shortName": "DeleteAppConnection", + "fullName": "google.cloud.beyondcorp.appconnections.v1.AppConnectionsService.DeleteAppConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/transferConfigs/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/transferConfigs/*}" + "path": "/v1/{name=projects/*/locations/*/appConnections/*}" } ] }, { - "shortName": "DeleteTransferRun", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.DeleteTransferRun", + "shortName": "GetAppConnection", + "fullName": "google.cloud.beyondcorp.appconnections.v1.AppConnectionsService.GetAppConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/transferConfigs/*/runs/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/transferConfigs/*/runs/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/appConnections/*}" } ] }, { - "shortName": "EnrollDataSources", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.EnrollDataSources", + "shortName": "ListAppConnections", + "fullName": "google.cloud.beyondcorp.appconnections.v1.AppConnectionsService.ListAppConnections", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*}:enrollDataSources" - }, - { - "httpMethod": "POST", - "path": "/v1/{name=projects/*}:enrollDataSources" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/appConnections" } ] }, { - "shortName": "GetDataSource", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.GetDataSource", + "shortName": "ResolveAppConnections", + "fullName": "google.cloud.beyondcorp.appconnections.v1.AppConnectionsService.ResolveAppConnections", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/dataSources/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/dataSources/*}" + "path": "/v1/{parent=projects/*/locations/*}/appConnections:resolve" } ] }, { - "shortName": "GetTransferConfig", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.GetTransferConfig", + "shortName": "UpdateAppConnection", + "fullName": "google.cloud.beyondcorp.appconnections.v1.AppConnectionsService.UpdateAppConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/transferConfigs/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/transferConfigs/*}" + "httpMethod": "PATCH", + "path": "/v1/{app_connection.name=projects/*/locations/*/appConnections/*}" } ] - }, + } + ] + } + ], + "configFile": "beyondcorp_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.beyondcorp.appconnections.v1.AppConnectionsService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.beyondcorp.appconnectors.v1", + "directory": "google/cloud/beyondcorp/appconnectors/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "beyondcorp.googleapis.com", + "title": "BeyondCorp API", + "description": "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + "importDirectories": [ + "google/api", + "google/cloud/beyondcorp/appconnectors/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BeyondCorp.AppConnectors.V1": 3 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/beyondcorp/appconnectors/v1;appconnectors": 3 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 3 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.beyondcorp.appconnectors.v1": 3 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BeyondCorp\\AppConnectors\\V1": 3 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::BeyondCorp::AppConnectors::V1": 3 + } + } + }, + "services": [ + { + "shortName": "AppConnectorsService", + "fullName": "google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService", + "methods": [ { - "shortName": "GetTransferRun", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.GetTransferRun", + "shortName": "CreateAppConnector", + "fullName": "google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService.CreateAppConnector", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/transferConfigs/*/runs/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/transferConfigs/*/runs/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/appConnectors" } ] }, { - "shortName": "ListDataSources", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListDataSources", + "shortName": "DeleteAppConnector", + "fullName": "google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService.DeleteAppConnector", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/dataSources" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*}/dataSources" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/appConnectors/*}" } ] }, { - "shortName": "ListTransferConfigs", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferConfigs", + "shortName": "GetAppConnector", + "fullName": "google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService.GetAppConnector", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/transferConfigs" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*}/transferConfigs" + "path": "/v1/{name=projects/*/locations/*/appConnectors/*}" } ] }, { - "shortName": "ListTransferLogs", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferLogs", + "shortName": "ListAppConnectors", + "fullName": "google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService.ListAppConnectors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/transferConfigs/*/runs/*}/transferLogs" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/transferConfigs/*/runs/*}/transferLogs" + "path": "/v1/{parent=projects/*/locations/*}/appConnectors" } ] }, { - "shortName": "ListTransferRuns", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferRuns", + "shortName": "ReportStatus", + "fullName": "google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService.ReportStatus", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/transferConfigs/*}/runs" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/transferConfigs/*}/runs" + "httpMethod": "POST", + "path": "/v1/{app_connector=projects/*/locations/*/appConnectors/*}:reportStatus" } ] }, { - "shortName": "ScheduleTransferRuns", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ScheduleTransferRuns", + "shortName": "UpdateAppConnector", + "fullName": "google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService.UpdateAppConnector", "mode": "UNARY", "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/transferConfigs/*}:scheduleRuns" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/transferConfigs/*}:scheduleRuns" - } - ] - }, - { - "shortName": "StartManualTransferRuns", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.StartManualTransferRuns", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/transferConfigs/*}:startManualRuns" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/transferConfigs/*}:startManualRuns" - } - ] - }, - { - "shortName": "UpdateTransferConfig", - "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.UpdateTransferConfig", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1/{transfer_config.name=projects/*/locations/*/transferConfigs/*}" - }, { "httpMethod": "PATCH", - "path": "/v1/{transfer_config.name=projects/*/transferConfigs/*}" + "path": "/v1/{app_connector.name=projects/*/locations/*/appConnectors/*}" } ] } ] } ], - "configFile": "bigquerydatatransfer_v1.yaml" + "configFile": "beyondcorp_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.bigquery.migration.v2alpha", - "directory": "google/cloud/bigquery/migration/v2alpha", - "version": "v2alpha", - "majorVersion": "v2", - "hostName": "bigquerymigration.googleapis.com", - "title": "BigQuery Migration API", - "description": "The migration service, exposing apis for migration jobs operations, and agent management.", + "id": "google.cloud.beyondcorp.appgateways.v1", + "directory": "google/cloud/beyondcorp/appgateways/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "beyondcorp.googleapis.com", + "title": "BeyondCorp API", + "description": "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", "importDirectories": [ "google/api", - "google/cloud/bigquery/migration/v2alpha", - "google/protobuf", - "google/rpc" + "google/longrunning", + "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BigQuery.Migration.V2Alpha": 7 + "Google.Cloud.BeyondCorp.AppGateways.V1": 1 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2alpha;migration": 7 + "google.golang.org/genproto/googleapis/cloud/beyondcorp/appgateways/v1;appgateways": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 7 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.migration.v2alpha": 7 + "com.google.cloud.beyondcorp.appgateways.v1": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BigQuery\\Migration\\V2alpha": 7 + "Google\\Cloud\\BeyondCorp\\AppGateways\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::BeyondCorp::AppGateways::V1": 1 } } }, "services": [ { - "shortName": "MigrationService", - "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService", + "shortName": "AppGatewaysService", + "fullName": "google.cloud.beyondcorp.appgateways.v1.AppGatewaysService", "methods": [ { - "shortName": "CreateMigrationWorkflow", - "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.CreateMigrationWorkflow", + "shortName": "CreateAppGateway", + "fullName": "google.cloud.beyondcorp.appgateways.v1.AppGatewaysService.CreateAppGateway", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2alpha/{parent=projects/*/locations/*}/workflows" + "path": "/v1/{parent=projects/*/locations/*}/appGateways" } ] }, { - "shortName": "DeleteMigrationWorkflow", - "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.DeleteMigrationWorkflow", + "shortName": "DeleteAppGateway", + "fullName": "google.cloud.beyondcorp.appgateways.v1.AppGatewaysService.DeleteAppGateway", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2alpha/{name=projects/*/locations/*/workflows/*}" + "path": "/v1/{name=projects/*/locations/*/appGateways/*}" } ] }, { - "shortName": "GetMigrationSubtask", - "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.GetMigrationSubtask", + "shortName": "GetAppGateway", + "fullName": "google.cloud.beyondcorp.appgateways.v1.AppGatewaysService.GetAppGateway", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2alpha/{name=projects/*/locations/*/workflows/*/subtasks/*}" + "path": "/v1/{name=projects/*/locations/*/appGateways/*}" } ] }, { - "shortName": "GetMigrationWorkflow", - "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.GetMigrationWorkflow", + "shortName": "ListAppGateways", + "fullName": "google.cloud.beyondcorp.appgateways.v1.AppGatewaysService.ListAppGateways", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2alpha/{name=projects/*/locations/*/workflows/*}" + "path": "/v1/{parent=projects/*/locations/*}/appGateways" + } + ] + } + ] + } + ], + "configFile": "beyondcorp_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.beyondcorp.appgateways.v1.AppGatewaysService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.beyondcorp.clientconnectorservices.v1", + "directory": "google/cloud/beyondcorp/clientconnectorservices/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "beyondcorp.googleapis.com", + "title": "BeyondCorp API", + "description": "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BeyondCorp.ClientConnectorServices.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/beyondcorp/clientconnectorservices/v1;clientconnectorservices": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.beyondcorp.clientconnectorservices.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BeyondCorp\\ClientConnectorServices\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::BeyondCorp::ClientConnectorServices::V1": 1 + } + } + }, + "services": [ + { + "shortName": "ClientConnectorServicesService", + "fullName": "google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService", + "methods": [ + { + "shortName": "CreateClientConnectorService", + "fullName": "google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService.CreateClientConnectorService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/clientConnectorServices" } ] }, { - "shortName": "ListMigrationSubtasks", - "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.ListMigrationSubtasks", + "shortName": "DeleteClientConnectorService", + "fullName": "google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService.DeleteClientConnectorService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2alpha/{parent=projects/*/locations/*/workflows/*}/subtasks" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/clientConnectorServices/*}" } ] }, { - "shortName": "ListMigrationWorkflows", - "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.ListMigrationWorkflows", + "shortName": "GetClientConnectorService", + "fullName": "google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService.GetClientConnectorService", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2alpha/{parent=projects/*/locations/*}/workflows" + "path": "/v1/{name=projects/*/locations/*/clientConnectorServices/*}" } ] }, { - "shortName": "StartMigrationWorkflow", - "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.StartMigrationWorkflow", + "shortName": "ListClientConnectorServices", + "fullName": "google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService.ListClientConnectorServices", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2alpha/{name=projects/*/locations/*/workflows/*}:start" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/clientConnectorServices" } ] - } - ] - }, - { - "shortName": "SqlTranslationService", - "fullName": "google.cloud.bigquery.migration.v2alpha.SqlTranslationService", - "methods": [ + }, { - "shortName": "TranslateQuery", - "fullName": "google.cloud.bigquery.migration.v2alpha.SqlTranslationService.TranslateQuery", + "shortName": "UpdateClientConnectorService", + "fullName": "google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService.UpdateClientConnectorService", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2alpha/{parent=projects/*/locations/*}:translateQuery" + "httpMethod": "PATCH", + "path": "/v1/{client_connector_service.name=projects/*/locations/*/clientConnectorServices/*}" } ] } ] } ], - "configFile": "bigquerymigration_v2alpha.yaml" + "configFile": "beyondcorp_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.bigquery.reservation.v1", - "directory": "google/cloud/bigquery/reservation/v1", + "id": "google.cloud.beyondcorp.clientgateways.v1", + "directory": "google/cloud/beyondcorp/clientgateways/v1", "version": "v1", "majorVersion": "v1", - "hostName": "bigqueryreservation.googleapis.com", - "title": "BigQuery Reservation API", - "description": "A service to modify your BigQuery flat-rate reservations.", + "hostName": "beyondcorp.googleapis.com", + "title": "BeyondCorp API", + "description": "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", "importDirectories": [ "google/api", - "google/protobuf", - "google/rpc" + "google/longrunning", + "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BigQuery.Reservation.V1": 1 + "Google.Cloud.BeyondCorp.ClientGateways.V1": 1 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/reservation/v1;reservation": 1 + "google.golang.org/genproto/googleapis/cloud/beyondcorp/clientgateways/v1;clientgateways": 1 } }, "java_multiple_files": { @@ -21849,262 +21824,337 @@ }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.reservation.v1": 1 + "com.google.cloud.beyondcorp.clientgateways.v1": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BigQuery\\Reservation\\V1": 1 + "Google\\Cloud\\BeyondCorp\\ClientGateways\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::BeyondCorp::ClientGateways::V1": 1 } } }, "services": [ { - "shortName": "ReservationService", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService", + "shortName": "ClientGatewaysService", + "fullName": "google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysService", "methods": [ { - "shortName": "CreateAssignment", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.CreateAssignment", + "shortName": "CreateClientGateway", + "fullName": "google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysService.CreateClientGateway", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/reservations/*}/assignments" + "path": "/v1/{parent=projects/*/locations/*}/clientGateways" } ] }, { - "shortName": "CreateCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.CreateCapacityCommitment", + "shortName": "DeleteClientGateway", + "fullName": "google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysService.DeleteClientGateway", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/capacityCommitments" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/clientGateways/*}" } ] }, { - "shortName": "CreateReservation", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.CreateReservation", + "shortName": "GetClientGateway", + "fullName": "google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysService.GetClientGateway", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/reservations" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/clientGateways/*}" } ] }, { - "shortName": "DeleteAssignment", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.DeleteAssignment", + "shortName": "ListClientGateways", + "fullName": "google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysService.ListClientGateways", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/reservations/*/assignments/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/clientGateways" } ] - }, + } + ] + } + ], + "configFile": "beyondcorp_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.bigquery.analyticshub.v1", + "directory": "google/cloud/bigquery/analyticshub/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "analyticshub.googleapis.com", + "title": "Analytics Hub API", + "description": "Exchange data and analytics assets securely and efficiently.", + "importDirectories": [ + "google/api", + "google/iam/v1", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BigQuery.AnalyticsHub.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/bigquery/analyticshub/v1;analyticshub": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.bigquery.analyticshub.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BigQuery\\AnalyticsHub\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Bigquery::AnalyticsHub::V1": 1 + } + } + }, + "services": [ + { + "shortName": "AnalyticsHubService", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService", + "methods": [ { - "shortName": "DeleteCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.DeleteCapacityCommitment", + "shortName": "CreateDataExchange", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateDataExchange", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/capacityCommitments/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/dataExchanges" } ] }, { - "shortName": "DeleteReservation", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.DeleteReservation", + "shortName": "CreateListing", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateListing", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/reservations/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/dataExchanges/*}/listings" } ] }, { - "shortName": "GetBiReservation", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.GetBiReservation", + "shortName": "DeleteDataExchange", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteDataExchange", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/biReservation}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/dataExchanges/*}" } ] }, { - "shortName": "GetCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.GetCapacityCommitment", + "shortName": "DeleteListing", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteListing", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/capacityCommitments/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/dataExchanges/*/listings/*}" } ] }, { - "shortName": "GetReservation", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.GetReservation", + "shortName": "GetDataExchange", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetDataExchange", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/reservations/*}" + "path": "/v1/{name=projects/*/locations/*/dataExchanges/*}" } ] }, { - "shortName": "ListAssignments", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.ListAssignments", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/reservations/*}/assignments" - } - ] - }, - { - "shortName": "ListCapacityCommitments", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.ListCapacityCommitments", - "mode": "UNARY", - "bindings": [ + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/dataExchanges/*}:getIamPolicy" + }, { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/capacityCommitments" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:getIamPolicy" } ] }, { - "shortName": "ListReservations", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.ListReservations", + "shortName": "GetListing", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetListing", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/reservations" + "path": "/v1/{name=projects/*/locations/*/dataExchanges/*/listings/*}" } ] }, { - "shortName": "MergeCapacityCommitments", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.MergeCapacityCommitments", + "shortName": "ListDataExchanges", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListDataExchanges", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/capacityCommitments:merge" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/dataExchanges" } ] }, { - "shortName": "MoveAssignment", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.MoveAssignment", + "shortName": "ListListings", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListListings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/reservations/*/assignments/*}:move" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/dataExchanges/*}/listings" } ] }, { - "shortName": "SearchAllAssignments", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.SearchAllAssignments", + "shortName": "ListOrgDataExchanges", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListOrgDataExchanges", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}:searchAllAssignments" + "path": "/v1/{organization=organizations/*/locations/*}/dataExchanges" } ] }, { - "shortName": "SearchAssignments", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.SearchAssignments", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}:searchAssignments" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/dataExchanges/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:setIamPolicy" } ] }, { - "shortName": "SplitCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.SplitCapacityCommitment", + "shortName": "SubscribeListing", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SubscribeListing", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/capacityCommitments/*}:split" + "path": "/v1/{name=projects/*/locations/*/dataExchanges/*/listings/*}:subscribe" } ] }, { - "shortName": "UpdateBiReservation", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.UpdateBiReservation", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{bi_reservation.name=projects/*/locations/*/biReservation}" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/dataExchanges/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:testIamPermissions" } ] }, { - "shortName": "UpdateCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.UpdateCapacityCommitment", + "shortName": "UpdateDataExchange", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateDataExchange", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{capacity_commitment.name=projects/*/locations/*/capacityCommitments/*}" + "path": "/v1/{data_exchange.name=projects/*/locations/*/dataExchanges/*}" } ] }, { - "shortName": "UpdateReservation", - "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.UpdateReservation", + "shortName": "UpdateListing", + "fullName": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateListing", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{reservation.name=projects/*/locations/*/reservations/*}" + "path": "/v1/{listing.name=projects/*/locations/*/dataExchanges/*/listings/*}" } ] } ] } ], - "configFile": "bigqueryreservation_v1.yaml" + "configFile": "analyticshub_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + ] }, { - "id": "google.cloud.bigquery.reservation.v1beta1", - "directory": "google/cloud/bigquery/reservation/v1beta1", - "version": "v1beta1", + "id": "google.cloud.bigquery.connection.v1", + "directory": "google/cloud/bigquery/connection/v1", + "version": "v1", "majorVersion": "v1", - "hostName": "bigqueryreservation.googleapis.com", - "title": "BigQuery Reservation API", - "description": "A service to modify your BigQuery flat-rate reservations.", + "hostName": "bigqueryconnection.googleapis.com", + "title": "BigQuery Connection API", + "description": "Allows users to manage BigQuery connections to external data sources.", "importDirectories": [ "google/api", - "google/protobuf", - "google/rpc" + "google/iam/v1", + "google/protobuf" ], "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BigQuery.Connection.V1": 1 + } + }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/reservation/v1beta1;reservation": 1 + "google.golang.org/genproto/googleapis/cloud/bigquery/connection/v1;connection": 1 } }, "java_multiple_files": { @@ -22114,727 +22164,668 @@ }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.reservation.v1beta1": 1 + "com.google.cloud.bigquery.connection.v1": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BigQuery\\Reservation\\V1beta1": 1 + "Google\\Cloud\\BigQuery\\Connection\\V1": 1 } } }, "services": [ { - "shortName": "ReservationService", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService", + "shortName": "ConnectionService", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService", "methods": [ { - "shortName": "CreateAssignment", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.CreateAssignment", + "shortName": "CreateConnection", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.CreateConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/reservations/*}/assignments" + "path": "/v1/{parent=projects/*/locations/*}/connections" } ] }, { - "shortName": "CreateCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.CreateCapacityCommitment", + "shortName": "DeleteConnection", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.DeleteConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/capacityCommitments" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/connections/*}" } ] }, { - "shortName": "CreateReservation", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.CreateReservation", + "shortName": "GetConnection", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.GetConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/reservations" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/connections/*}" } ] }, { - "shortName": "DeleteAssignment", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.DeleteAssignment", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/reservations/*/assignments/*}" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/connections/*}:getIamPolicy" } ] }, { - "shortName": "DeleteCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.DeleteCapacityCommitment", + "shortName": "ListConnections", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.ListConnections", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/capacityCommitments/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/connections" } ] }, { - "shortName": "DeleteReservation", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.DeleteReservation", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/reservations/*}" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/connections/*}:setIamPolicy" } ] }, { - "shortName": "GetBiReservation", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.GetBiReservation", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/biReservation}" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/connections/*}:testIamPermissions" } ] }, { - "shortName": "GetCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.GetCapacityCommitment", + "shortName": "UpdateConnection", + "fullName": "google.cloud.bigquery.connection.v1.ConnectionService.UpdateConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/capacityCommitments/*}" + "httpMethod": "PATCH", + "path": "/v1/{name=projects/*/locations/*/connections/*}" } ] - }, + } + ] + } + ], + "configFile": "bigqueryconnection_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.connection.v1.ConnectionService" + ] + }, + { + "id": "google.cloud.bigquery.connection.v1beta1", + "directory": "google/cloud/bigquery/connection/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "bigqueryconnection.googleapis.com", + "title": "BigQuery Connection API", + "description": "Allows users to manage BigQuery connections to external data sources.", + "importDirectories": [ + "google/api", + "google/iam/v1", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BigQuery.Connection.V1Beta1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/bigquery/connection/v1beta1;connection": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.bigquery.connection.v1beta1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BigQuery\\Connection\\V1beta1": 1 + } + } + }, + "services": [ + { + "shortName": "ConnectionService", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService", + "methods": [ { - "shortName": "GetReservation", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.GetReservation", + "shortName": "CreateConnection", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.CreateConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/reservations/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/connections" } ] }, { - "shortName": "ListAssignments", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.ListAssignments", + "shortName": "DeleteConnection", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.DeleteConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/reservations/*}/assignments" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/connections/*}" } ] }, { - "shortName": "ListCapacityCommitments", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.ListCapacityCommitments", + "shortName": "GetConnection", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.GetConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/capacityCommitments" + "path": "/v1beta1/{name=projects/*/locations/*/connections/*}" } ] }, { - "shortName": "ListReservations", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.ListReservations", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/reservations" + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/connections/*}:getIamPolicy" } ] }, { - "shortName": "MergeCapacityCommitments", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.MergeCapacityCommitments", + "shortName": "ListConnections", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.ListConnections", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/capacityCommitments:merge" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/connections" } ] }, { - "shortName": "MoveAssignment", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.MoveAssignment", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/reservations/*/assignments/*}:move" + "path": "/v1beta1/{resource=projects/*/locations/*/connections/*}:setIamPolicy" } ] }, { - "shortName": "SearchAssignments", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.SearchAssignments", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}:searchAssignments" + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/connections/*}:testIamPermissions" } ] }, { - "shortName": "SplitCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.SplitCapacityCommitment", + "shortName": "UpdateConnection", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.UpdateConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/capacityCommitments/*}:split" + "httpMethod": "PATCH", + "path": "/v1beta1/{name=projects/*/locations/*/connections/*}" } ] }, { - "shortName": "UpdateBiReservation", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.UpdateBiReservation", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{reservation.name=projects/*/locations/*/biReservation}" - } - ] - }, - { - "shortName": "UpdateCapacityCommitment", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.UpdateCapacityCommitment", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{capacity_commitment.name=projects/*/locations/*/capacityCommitments/*}" - } - ] - }, - { - "shortName": "UpdateReservation", - "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.UpdateReservation", + "shortName": "UpdateConnectionCredential", + "fullName": "google.cloud.bigquery.connection.v1beta1.ConnectionService.UpdateConnectionCredential", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{reservation.name=projects/*/locations/*/reservations/*}" + "path": "/v1beta1/{name=projects/*/locations/*/connections/*/credential}" } ] } ] } ], - "configFile": "bigqueryreservation_v1beta1.yaml" + "configFile": "bigqueryconnection_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.connection.v1beta1.ConnectionService" + ] }, { - "id": "google.cloud.bigquery.storage.v1", - "directory": "google/cloud/bigquery/storage/v1", - "version": "v1", + "id": "google.cloud.bigquery.dataexchange.v1beta1", + "directory": "google/cloud/bigquery/dataexchange/v1beta1", + "version": "v1beta1", "majorVersion": "v1", - "hostName": "bigquerystorage.googleapis.com", - "title": "BigQuery Storage API", - "description": "", + "hostName": "analyticshub.googleapis.com", + "title": "Analytics Hub API", + "description": "Exchange data and analytics assets securely and efficiently.", "importDirectories": [ "google/api", - "google/cloud/bigquery/storage/v1", - "google/protobuf", - "google/rpc" + "google/iam/v1", + "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BigQuery.Storage.V1": 6 + "Google.Cloud.BigQuery.DataExchange.V1Beta1": 1 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1;storage": 6 + "google.golang.org/genproto/googleapis/cloud/bigquery/dataexchange/v1beta1;dataexchange": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 6 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.storage.v1": 6 + "com.google.cloud.bigquery.dataexchange.v1beta1": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BigQuery\\Storage\\V1": 6 + "Google\\Cloud\\BigQuery\\DataExchange\\V1beta1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Bigquery::DataExchange::V1beta1": 1 } } }, "services": [ { - "shortName": "BigQueryRead", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryRead", + "shortName": "AnalyticsHubService", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService", "methods": [ { - "shortName": "CreateReadSession", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryRead.CreateReadSession", + "shortName": "CreateDataExchange", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.CreateDataExchange", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{read_session.table=projects/*/datasets/*/tables/*}" + "path": "/v1beta1/{parent=projects/*/locations/*}/dataExchanges" } ] }, { - "shortName": "ReadRows", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryRead.ReadRows", - "mode": "SERVER_STREAMING", + "shortName": "CreateListing", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.CreateListing", + "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{read_stream=projects/*/locations/*/sessions/*/streams/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/dataExchanges/*}/listings" } ] }, { - "shortName": "SplitReadStream", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryRead.SplitReadStream", + "shortName": "DeleteDataExchange", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.DeleteDataExchange", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/sessions/*/streams/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/dataExchanges/*}" } ] - } - ] - }, - { - "shortName": "BigQueryWrite", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite", - "methods": [ + }, { - "shortName": "AppendRows", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.AppendRows", - "mode": "BIDIRECTIONAL_STREAMING", + "shortName": "DeleteListing", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.DeleteListing", + "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/dataExchanges/*/listings/*}" } ] }, { - "shortName": "BatchCommitWriteStreams", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.BatchCommitWriteStreams", + "shortName": "GetDataExchange", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.GetDataExchange", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/datasets/*/tables/*}" + "path": "/v1beta1/{name=projects/*/locations/*/dataExchanges/*}" } ] }, { - "shortName": "CreateWriteStream", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.CreateWriteStream", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/datasets/*/tables/*}" + "path": "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:getIamPolicy" } ] }, { - "shortName": "FinalizeWriteStream", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.FinalizeWriteStream", + "shortName": "GetListing", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.GetListing", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/datasets/*/tables/*/streams/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/dataExchanges/*/listings/*}" } ] }, { - "shortName": "FlushRows", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.FlushRows", + "shortName": "ListDataExchanges", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.ListDataExchanges", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/dataExchanges" } ] }, { - "shortName": "GetWriteStream", - "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.GetWriteStream", + "shortName": "ListListings", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.ListListings", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/datasets/*/tables/*/streams/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/dataExchanges/*}/listings" } ] - } - ] - } - ], - "configFile": "bigquerystorage_v1.yaml" - }, - { - "id": "google.cloud.bigquery.storage.v1beta1", - "directory": "google/cloud/bigquery/storage/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "bigquerystorage.googleapis.com", - "title": "BigQuery Storage API", - "description": "", - "importDirectories": [ - "google/api", - "google/cloud/bigquery/storage/v1beta1", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1;storage": 5 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.bigquery.storage.v1beta1": 5 - } - } - }, - "services": [ - { - "shortName": "BigQueryStorage", - "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage", - "methods": [ + }, { - "shortName": "BatchCreateReadSessionStreams", - "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.BatchCreateReadSessionStreams", + "shortName": "ListOrgDataExchanges", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.ListOrgDataExchanges", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{session.name=projects/*/sessions/*}" + "httpMethod": "GET", + "path": "/v1beta1/{organization=organizations/*/locations/*}/dataExchanges" } ] }, { - "shortName": "CreateReadSession", - "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.CreateReadSession", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{table_reference.project_id=projects/*}" + "path": "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*}:setIamPolicy" }, { "httpMethod": "POST", - "path": "/v1beta1/{table_reference.dataset_id=projects/*/datasets/*}" + "path": "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:setIamPolicy" } ] }, { - "shortName": "FinalizeStream", - "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.FinalizeStream", + "shortName": "SubscribeListing", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.SubscribeListing", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{stream.name=projects/*/streams/*}" + "path": "/v1beta1/{name=projects/*/locations/*/dataExchanges/*/listings/*}:subscribe" } ] }, { - "shortName": "ReadRows", - "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.ReadRows", - "mode": "SERVER_STREAMING", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.TestIamPermissions", + "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{read_position.stream.name=projects/*/streams/*}" + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:testIamPermissions" } ] }, { - "shortName": "SplitReadStream", - "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.SplitReadStream", + "shortName": "UpdateDataExchange", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.UpdateDataExchange", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{original_stream.name=projects/*/streams/*}" + "httpMethod": "PATCH", + "path": "/v1beta1/{data_exchange.name=projects/*/locations/*/dataExchanges/*}" + } + ] + }, + { + "shortName": "UpdateListing", + "fullName": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.UpdateListing", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{listing.name=projects/*/locations/*/dataExchanges/*/listings/*}" } ] } ] } ], - "configFile": "bigquerystorage_v1beta1.yaml" + "configFile": "analyticshub_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService", + "google.cloud.location.Locations" + ] }, { - "id": "google.cloud.bigquery.storage.v1beta2", - "directory": "google/cloud/bigquery/storage/v1beta2", - "version": "v1beta2", + "id": "google.cloud.bigquery.datapolicies.v1beta1", + "directory": "google/cloud/bigquery/datapolicies/v1beta1", + "version": "v1beta1", "majorVersion": "v1", - "hostName": "bigquerystorage.googleapis.com", - "title": "BigQuery Storage API", - "description": "", + "hostName": "bigquerydatapolicy.googleapis.com", + "title": "BigQuery Data Policy API", + "description": "Allows users to manage BigQuery data policies.", "importDirectories": [ "google/api", - "google/cloud/bigquery/storage/v1beta2", - "google/protobuf", - "google/rpc" + "google/iam/v1", + "google/protobuf" ], "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BigQuery.DataPolicies.V1Beta1": 1 + } + }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta2;storage": 6 + "google.golang.org/genproto/googleapis/cloud/bigquery/datapolicies/v1beta1;datapolicies": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 6 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.storage.v1beta2": 6 + "com.google.cloud.bigquery.datapolicies.v1beta1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BigQuery\\DataPolicies\\V1beta1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Bigquery::DataPolicies::V1beta1": 1 } } }, "services": [ { - "shortName": "BigQueryRead", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryRead", + "shortName": "DataPolicyService", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", "methods": [ { - "shortName": "CreateReadSession", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryRead.CreateReadSession", + "shortName": "CreateDataPolicy", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.CreateDataPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{read_session.table=projects/*/datasets/*/tables/*}" - } - ] - }, - { - "shortName": "ReadRows", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryRead.ReadRows", - "mode": "SERVER_STREAMING", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta2/{read_stream=projects/*/locations/*/sessions/*/streams/*}" + "path": "/v1beta1/{parent=projects/*/locations/*}/dataPolicies" } ] }, { - "shortName": "SplitReadStream", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryRead.SplitReadStream", + "shortName": "DeleteDataPolicy", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.DeleteDataPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta2/{name=projects/*/locations/*/sessions/*/streams/*}" - } - ] - } - ] - }, - { - "shortName": "BigQueryWrite", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite", - "methods": [ - { - "shortName": "AppendRows", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.AppendRows", - "mode": "BIDIRECTIONAL_STREAMING", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta2/{write_stream=projects/*/datasets/*/tables/*/streams/*}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/dataPolicies/*}" } ] }, { - "shortName": "BatchCommitWriteStreams", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.BatchCommitWriteStreams", + "shortName": "GetDataPolicy", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.GetDataPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta2/{parent=projects/*/datasets/*/tables/*}" + "path": "/v1beta1/{name=projects/*/locations/*/dataPolicies/*}" } ] }, { - "shortName": "CreateWriteStream", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.CreateWriteStream", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{parent=projects/*/datasets/*/tables/*}" + "path": "/v1beta1/{resource=projects/*/locations/*/dataPolicies/*}:getIamPolicy" } ] }, { - "shortName": "FinalizeWriteStream", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.FinalizeWriteStream", + "shortName": "ListDataPolicies", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.ListDataPolicies", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta2/{name=projects/*/datasets/*/tables/*/streams/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/dataPolicies" } ] }, { - "shortName": "FlushRows", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.FlushRows", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{write_stream=projects/*/datasets/*/tables/*/streams/*}" + "path": "/v1beta1/{resource=projects/*/locations/*/dataPolicies/*}:setIamPolicy" } ] }, { - "shortName": "GetWriteStream", - "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.GetWriteStream", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{name=projects/*/datasets/*/tables/*/streams/*}" - } - ] - } - ] - } - ], - "configFile": "bigquerystorage_v1beta2.yaml" - }, - { - "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": { - "google.golang.org/genproto/googleapis/cloud/bigquery/v2;bigquery": 5 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.bigquery.v2": 5 - } - } - }, - "services": [ - { - "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" + "path": "/v1beta1/{resource=projects/*/locations/*/dataPolicies/*}:testIamPermissions" } ] }, { - "shortName": "PatchModel", - "fullName": "google.cloud.bigquery.v2.ModelService.PatchModel", + "shortName": "UpdateDataPolicy", + "fullName": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.UpdateDataPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" + "path": "/v1beta1/{data_policy.name=projects/*/locations/*/dataPolicies/*}" } ] } ] } ], - "configFile": "bigquery_v2.yaml" + "configFile": "bigquerydatapolicy_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService" + ] }, { - "id": "google.cloud.billing.budgets.v1", - "directory": "google/cloud/billing/budgets/v1", + "id": "google.cloud.bigquery.datatransfer.v1", + "directory": "google/cloud/bigquery/datatransfer/v1", "version": "v1", "majorVersion": "v1", - "hostName": "billingbudgets.googleapis.com", - "title": "Cloud Billing Budget API", - "description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.", + "hostName": "bigquerydatatransfer.googleapis.com", + "title": "BigQuery Data Transfer API", + "description": "Schedule queries or transfer external data from SaaS applications to Google BigQuery on a regular basis.", "importDirectories": [ "google/api", - "google/cloud/billing/budgets/v1", + "google/cloud/bigquery/datatransfer/v1", "google/protobuf", - "google/type" + "google/rpc" ], "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BigQuery.DataTransfer.V1": 2 + } + }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/billing/budgets/v1;budgets": 2 + "google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1;datatransfer": 2 } }, "java_multiple_files": { @@ -22844,19141 +22835,26169 @@ }, "java_package": { "valueCounts": { - "com.google.cloud.billing.budgets.v1": 2 + "com.google.cloud.bigquery.datatransfer.v1": 2 + } + }, + "objc_class_prefix": { + "valueCounts": { + "": 1, + "GCBDT": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BigQuery\\DataTransfer\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Bigquery::DataTransfer::V1": 2 } } }, "services": [ { - "shortName": "BudgetService", - "fullName": "google.cloud.billing.budgets.v1.BudgetService", + "shortName": "DataTransferService", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService", "methods": [ { - "shortName": "CreateBudget", - "fullName": "google.cloud.billing.budgets.v1.BudgetService.CreateBudget", + "shortName": "CheckValidCreds", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.CheckValidCreds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=billingAccounts/*}/budgets" + "path": "/v1/{name=projects/*/locations/*/dataSources/*}:checkValidCreds" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/dataSources/*}:checkValidCreds" } ] }, { - "shortName": "DeleteBudget", - "fullName": "google.cloud.billing.budgets.v1.BudgetService.DeleteBudget", + "shortName": "CreateTransferConfig", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.CreateTransferConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=billingAccounts/*/budgets/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/transferConfigs" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/transferConfigs" } ] }, { - "shortName": "GetBudget", - "fullName": "google.cloud.billing.budgets.v1.BudgetService.GetBudget", + "shortName": "DeleteTransferConfig", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.DeleteTransferConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=billingAccounts/*/budgets/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/transferConfigs/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/transferConfigs/*}" } ] }, { - "shortName": "ListBudgets", - "fullName": "google.cloud.billing.budgets.v1.BudgetService.ListBudgets", + "shortName": "DeleteTransferRun", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.DeleteTransferRun", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=billingAccounts/*}/budgets" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/transferConfigs/*/runs/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/transferConfigs/*/runs/*}" } ] }, { - "shortName": "UpdateBudget", - "fullName": "google.cloud.billing.budgets.v1.BudgetService.UpdateBudget", + "shortName": "EnrollDataSources", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.EnrollDataSources", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{budget.name=billingAccounts/*/budgets/*}" - } - ] - } - ] - } - ], - "configFile": "billingbudgets.yaml" - }, - { - "id": "google.cloud.billing.budgets.v1beta1", - "directory": "google/cloud/billing/budgets/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "billingbudgets.googleapis.com", - "title": "Cloud Billing Budget API", - "description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.", - "importDirectories": [ - "google/api", - "google/cloud/billing/budgets/v1beta1", - "google/protobuf", - "google/type" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/billing/budgets/v1beta1;budgets": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.billing.budgets.v1beta1": 2 - } - } - }, - "services": [ - { - "shortName": "BudgetService", - "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService", - "methods": [ - { - "shortName": "CreateBudget", - "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.CreateBudget", - "mode": "UNARY", - "bindings": [ + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*}:enrollDataSources" + }, { "httpMethod": "POST", - "path": "/v1beta1/{parent=billingAccounts/*}/budgets" + "path": "/v1/{name=projects/*}:enrollDataSources" } ] }, { - "shortName": "DeleteBudget", - "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.DeleteBudget", + "shortName": "GetDataSource", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.GetDataSource", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=billingAccounts/*/budgets/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/dataSources/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/dataSources/*}" } ] }, { - "shortName": "GetBudget", - "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.GetBudget", + "shortName": "GetTransferConfig", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.GetTransferConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=billingAccounts/*/budgets/*}" + "path": "/v1/{name=projects/*/locations/*/transferConfigs/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/transferConfigs/*}" } ] }, { - "shortName": "ListBudgets", - "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.ListBudgets", + "shortName": "GetTransferRun", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.GetTransferRun", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=billingAccounts/*}/budgets" + "path": "/v1/{name=projects/*/locations/*/transferConfigs/*/runs/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/transferConfigs/*/runs/*}" } ] }, { - "shortName": "UpdateBudget", - "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.UpdateBudget", + "shortName": "ListDataSources", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListDataSources", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{budget.name=billingAccounts/*/budgets/*}" - } - ] - } - ] - } - ], - "configFile": "billingbudgets.yaml" - }, - { - "id": "google.cloud.billing.v1", - "directory": "google/cloud/billing/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "cloudbilling.googleapis.com", - "title": "Cloud Billing API", - "description": "Allows developers to manage billing for their Google Cloud Platform projects programmatically.", - "importDirectories": [ - "google/api", - "google/iam/v1", - "google/protobuf", - "google/type" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "": 1, - "Google.Cloud.Billing.V1": 1 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/billing/v1;billing": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.billing.v1": 2 - } - }, - "objc_class_prefix": { - "valueCounts": { - "": 1, - "CLDCTLG": 1 - } - } - }, - "services": [ - { - "shortName": "CloudBilling", - "fullName": "google.cloud.billing.v1.CloudBilling", - "methods": [ - { - "shortName": "CreateBillingAccount", - "fullName": "google.cloud.billing.v1.CloudBilling.CreateBillingAccount", - "mode": "UNARY", - "bindings": [ + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/dataSources" + }, { - "httpMethod": "POST", - "path": "/v1/billingAccounts" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/dataSources" } ] }, { - "shortName": "GetBillingAccount", - "fullName": "google.cloud.billing.v1.CloudBilling.GetBillingAccount", + "shortName": "ListTransferConfigs", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=billingAccounts/*}" - } - ] - }, - { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.billing.v1.CloudBilling.GetIamPolicy", - "mode": "UNARY", - "bindings": [ + "path": "/v1/{parent=projects/*/locations/*}/transferConfigs" + }, { "httpMethod": "GET", - "path": "/v1/{resource=billingAccounts/*}:getIamPolicy" + "path": "/v1/{parent=projects/*}/transferConfigs" } ] }, { - "shortName": "GetProjectBillingInfo", - "fullName": "google.cloud.billing.v1.CloudBilling.GetProjectBillingInfo", + "shortName": "ListTransferLogs", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferLogs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*}/billingInfo" - } - ] - }, - { - "shortName": "ListBillingAccounts", - "fullName": "google.cloud.billing.v1.CloudBilling.ListBillingAccounts", - "mode": "UNARY", - "bindings": [ + "path": "/v1/{parent=projects/*/locations/*/transferConfigs/*/runs/*}/transferLogs" + }, { "httpMethod": "GET", - "path": "/v1/billingAccounts" + "path": "/v1/{parent=projects/*/transferConfigs/*/runs/*}/transferLogs" } ] }, { - "shortName": "ListProjectBillingInfo", - "fullName": "google.cloud.billing.v1.CloudBilling.ListProjectBillingInfo", + "shortName": "ListTransferRuns", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferRuns", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=billingAccounts/*}/projects" - } - ] - }, - { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.billing.v1.CloudBilling.SetIamPolicy", - "mode": "UNARY", - "bindings": [ + "path": "/v1/{parent=projects/*/locations/*/transferConfigs/*}/runs" + }, { - "httpMethod": "POST", - "path": "/v1/{resource=billingAccounts/*}:setIamPolicy" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/transferConfigs/*}/runs" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.billing.v1.CloudBilling.TestIamPermissions", + "shortName": "ScheduleTransferRuns", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.ScheduleTransferRuns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{resource=billingAccounts/*}:testIamPermissions" - } - ] - }, - { - "shortName": "UpdateBillingAccount", - "fullName": "google.cloud.billing.v1.CloudBilling.UpdateBillingAccount", - "mode": "UNARY", - "bindings": [ + "path": "/v1/{parent=projects/*/locations/*/transferConfigs/*}:scheduleRuns" + }, { - "httpMethod": "PATCH", - "path": "/v1/{name=billingAccounts/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/transferConfigs/*}:scheduleRuns" } ] }, { - "shortName": "UpdateProjectBillingInfo", - "fullName": "google.cloud.billing.v1.CloudBilling.UpdateProjectBillingInfo", + "shortName": "StartManualTransferRuns", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.StartManualTransferRuns", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v1/{name=projects/*}/billingInfo" - } - ] - } - ] - }, - { - "shortName": "CloudCatalog", - "fullName": "google.cloud.billing.v1.CloudCatalog", - "methods": [ - { - "shortName": "ListServices", - "fullName": "google.cloud.billing.v1.CloudCatalog.ListServices", - "mode": "UNARY", - "bindings": [ + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/transferConfigs/*}:startManualRuns" + }, { - "httpMethod": "GET", - "path": "/v1/services" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/transferConfigs/*}:startManualRuns" } ] }, { - "shortName": "ListSkus", - "fullName": "google.cloud.billing.v1.CloudCatalog.ListSkus", + "shortName": "UpdateTransferConfig", + "fullName": "google.cloud.bigquery.datatransfer.v1.DataTransferService.UpdateTransferConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=services/*}/skus" + "httpMethod": "PATCH", + "path": "/v1/{transfer_config.name=projects/*/locations/*/transferConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{transfer_config.name=projects/*/transferConfigs/*}" } ] } ] } ], - "configFile": "cloudbilling.yaml" + "configFile": "bigquerydatatransfer_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.datatransfer.v1.DataTransferService" + ] }, { - "id": "google.cloud.binaryauthorization.v1", - "directory": "google/cloud/binaryauthorization/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "binaryauthorization.googleapis.com", - "title": "Binary Authorization API", - "description": "The management interface for Binary Authorization, a system providing policy control for images deployed to Kubernetes Engine clusters.", + "id": "google.cloud.bigquery.migration.v2", + "directory": "google/cloud/bigquery/migration/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "bigquerymigration.googleapis.com", + "title": "BigQuery Migration API", + "description": "The migration service, exposing apis for migration jobs operations, and agent management.", "importDirectories": [ "google/api", - "google/cloud/binaryauthorization/v1", + "google/cloud/bigquery/migration/v2", "google/protobuf", - "grafeas/v1" + "google/rpc" ], "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 2 - } - }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.BinaryAuthorization.V1": 2 + "Google.Cloud.BigQuery.Migration.V2": 5 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/binaryauthorization/v1;binaryauthorization": 2 + "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2;migration": 5 } }, "java_multiple_files": { "valueCounts": { - "false": 2 + "true": 5 } }, "java_package": { "valueCounts": { - "com.google.protos.google.cloud.binaryauthorization.v1": 2 + "com.google.cloud.bigquery.migration.v2": 5 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BinaryAuthorization\\V1": 2 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::BinaryAuthorization::V1": 2 + "Google\\Cloud\\BigQuery\\Migration\\V2": 5 } } }, "services": [ { - "shortName": "BinauthzManagementServiceV1", - "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1", + "shortName": "MigrationService", + "fullName": "google.cloud.bigquery.migration.v2.MigrationService", "methods": [ { - "shortName": "CreateAttestor", - "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.CreateAttestor", + "shortName": "CreateMigrationWorkflow", + "fullName": "google.cloud.bigquery.migration.v2.MigrationService.CreateMigrationWorkflow", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*}/attestors" + "path": "/v2/{parent=projects/*/locations/*}/workflows" } ] }, { - "shortName": "DeleteAttestor", - "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.DeleteAttestor", + "shortName": "DeleteMigrationWorkflow", + "fullName": "google.cloud.bigquery.migration.v2.MigrationService.DeleteMigrationWorkflow", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/attestors/*}" + "path": "/v2/{name=projects/*/locations/*/workflows/*}" } ] }, { - "shortName": "GetAttestor", - "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.GetAttestor", + "shortName": "GetMigrationSubtask", + "fullName": "google.cloud.bigquery.migration.v2.MigrationService.GetMigrationSubtask", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/attestors/*}" + "path": "/v2/{name=projects/*/locations/*/workflows/*/subtasks/*}" } ] }, { - "shortName": "GetPolicy", - "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.GetPolicy", + "shortName": "GetMigrationWorkflow", + "fullName": "google.cloud.bigquery.migration.v2.MigrationService.GetMigrationWorkflow", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/policy}" + "path": "/v2/{name=projects/*/locations/*/workflows/*}" } ] }, { - "shortName": "ListAttestors", - "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.ListAttestors", + "shortName": "ListMigrationSubtasks", + "fullName": "google.cloud.bigquery.migration.v2.MigrationService.ListMigrationSubtasks", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*}/attestors" - } - ] - }, - { - "shortName": "UpdateAttestor", - "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.UpdateAttestor", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PUT", - "path": "/v1/{attestor.name=projects/*/attestors/*}" + "path": "/v2/{parent=projects/*/locations/*/workflows/*}/subtasks" } ] }, { - "shortName": "UpdatePolicy", - "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.UpdatePolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PUT", - "path": "/v1/{policy.name=projects/*/policy}" - } - ] - } - ] - }, - { - "shortName": "SystemPolicyV1", - "fullName": "google.cloud.binaryauthorization.v1.SystemPolicyV1", - "methods": [ - { - "shortName": "GetSystemPolicy", - "fullName": "google.cloud.binaryauthorization.v1.SystemPolicyV1.GetSystemPolicy", + "shortName": "ListMigrationWorkflows", + "fullName": "google.cloud.bigquery.migration.v2.MigrationService.ListMigrationWorkflows", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=locations/*/policy}" + "path": "/v2/{parent=projects/*/locations/*}/workflows" } ] - } - ] - }, - { - "shortName": "ValidationHelperV1", - "fullName": "google.cloud.binaryauthorization.v1.ValidationHelperV1", - "methods": [ + }, { - "shortName": "ValidateAttestationOccurrence", - "fullName": "google.cloud.binaryauthorization.v1.ValidationHelperV1.ValidateAttestationOccurrence", + "shortName": "StartMigrationWorkflow", + "fullName": "google.cloud.bigquery.migration.v2.MigrationService.StartMigrationWorkflow", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{attestor=projects/*/attestors/*}:validateAttestationOccurrence" + "path": "/v2/{name=projects/*/locations/*/workflows/*}:start" } ] } ] } ], - "configFile": "binaryauthorization_v1.yaml" + "configFile": "bigquerymigration_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.migration.v2.MigrationService" + ] }, { - "id": "google.cloud.binaryauthorization.v1beta1", - "directory": "google/cloud/binaryauthorization/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "binaryauthorization.googleapis.com", - "title": "Binary Authorization API", - "description": "The management interface for Binary Authorization, a system providing policy control for images deployed to Kubernetes Engine clusters.", + "id": "google.cloud.bigquery.migration.v2alpha", + "directory": "google/cloud/bigquery/migration/v2alpha", + "version": "v2alpha", + "majorVersion": "v2", + "hostName": "bigquerymigration.googleapis.com", + "title": "BigQuery Migration API", + "description": "The migration service, exposing apis for migration jobs operations, and agent management.", "importDirectories": [ "google/api", - "google/cloud/binaryauthorization/v1beta1", - "google/protobuf" + "google/cloud/bigquery/migration/v2alpha", + "google/protobuf", + "google/rpc" ], "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 3 - } - }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.BinaryAuthorization.V1Beta1": 3 + "Google.Cloud.BigQuery.Migration.V2Alpha": 7 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/binaryauthorization/v1beta1;binaryauthorization": 3 + "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2alpha;migration": 7 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 7 } }, "java_package": { "valueCounts": { - "com.google.cloud.binaryauthorization.v1beta1": 3 + "com.google.cloud.bigquery.migration.v2alpha": 7 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BinaryAuthorization\\V1beta1": 3 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::BinaryAuthorization::V1beta1": 3 + "Google\\Cloud\\BigQuery\\Migration\\V2alpha": 7 } } }, "services": [ { - "shortName": "BinauthzManagementServiceV1Beta1", - "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1", + "shortName": "MigrationService", + "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService", "methods": [ { - "shortName": "CreateAttestor", - "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.CreateAttestor", + "shortName": "CreateMigrationWorkflow", + "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.CreateMigrationWorkflow", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*}/attestors" + "path": "/v2alpha/{parent=projects/*/locations/*}/workflows" } ] }, { - "shortName": "DeleteAttestor", - "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.DeleteAttestor", + "shortName": "DeleteMigrationWorkflow", + "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.DeleteMigrationWorkflow", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/attestors/*}" + "path": "/v2alpha/{name=projects/*/locations/*/workflows/*}" } ] }, { - "shortName": "GetAttestor", - "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.GetAttestor", + "shortName": "GetMigrationSubtask", + "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.GetMigrationSubtask", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/attestors/*}" + "path": "/v2alpha/{name=projects/*/locations/*/workflows/*/subtasks/*}" } ] }, { - "shortName": "GetPolicy", - "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.GetPolicy", + "shortName": "GetMigrationWorkflow", + "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.GetMigrationWorkflow", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/policy}" + "path": "/v2alpha/{name=projects/*/locations/*/workflows/*}" } ] }, { - "shortName": "ListAttestors", - "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.ListAttestors", + "shortName": "ListMigrationSubtasks", + "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.ListMigrationSubtasks", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*}/attestors" + "path": "/v2alpha/{parent=projects/*/locations/*/workflows/*}/subtasks" } ] }, { - "shortName": "UpdateAttestor", - "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.UpdateAttestor", + "shortName": "ListMigrationWorkflows", + "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.ListMigrationWorkflows", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v1beta1/{attestor.name=projects/*/attestors/*}" + "httpMethod": "GET", + "path": "/v2alpha/{parent=projects/*/locations/*}/workflows" } ] }, { - "shortName": "UpdatePolicy", - "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.UpdatePolicy", + "shortName": "StartMigrationWorkflow", + "fullName": "google.cloud.bigquery.migration.v2alpha.MigrationService.StartMigrationWorkflow", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v1beta1/{policy.name=projects/*/policy}" + "httpMethod": "POST", + "path": "/v2alpha/{name=projects/*/locations/*/workflows/*}:start" } ] } ] }, { - "shortName": "SystemPolicyV1Beta1", - "fullName": "google.cloud.binaryauthorization.v1beta1.SystemPolicyV1Beta1", + "shortName": "SqlTranslationService", + "fullName": "google.cloud.bigquery.migration.v2alpha.SqlTranslationService", "methods": [ { - "shortName": "GetSystemPolicy", - "fullName": "google.cloud.binaryauthorization.v1beta1.SystemPolicyV1Beta1.GetSystemPolicy", + "shortName": "TranslateQuery", + "fullName": "google.cloud.bigquery.migration.v2alpha.SqlTranslationService.TranslateQuery", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=locations/*/policy}" + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*}:translateQuery" } ] } ] } ], - "configFile": "binaryauthorization_v1beta1.yaml" + "configFile": "bigquerymigration_v2alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.migration.v2alpha.MigrationService", + "google.cloud.bigquery.migration.v2alpha.SqlTranslationService" + ] }, { - "id": "google.cloud.channel.v1", - "directory": "google/cloud/channel/v1", + "id": "google.cloud.bigquery.reservation.v1", + "directory": "google/cloud/bigquery/reservation/v1", "version": "v1", "majorVersion": "v1", - "hostName": "cloudchannel.googleapis.com", - "title": "Cloud Channel API", - "description": "The Cloud Channel API enables Google Cloud partners to have a single unified resale platform and APIs across all of Google Cloud including GCP, Workspace, Maps and Chrome.", + "hostName": "bigqueryreservation.googleapis.com", + "title": "BigQuery Reservation API", + "description": "A service to modify your BigQuery flat-rate reservations.", "importDirectories": [ "google/api", - "google/cloud/channel/v1", - "google/longrunning", "google/protobuf", - "google/type" + "google/rpc" ], "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BigQuery.Reservation.V1": 1 + } + }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/channel/v1;channel": 9 + "google.golang.org/genproto/googleapis/cloud/bigquery/reservation/v1;reservation": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 9 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.channel.v1": 9 + "com.google.cloud.bigquery.reservation.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BigQuery\\Reservation\\V1": 1 } } }, "services": [ { - "shortName": "CloudChannelService", - "fullName": "google.cloud.channel.v1.CloudChannelService", + "shortName": "ReservationService", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService", "methods": [ { - "shortName": "ActivateEntitlement", - "fullName": "google.cloud.channel.v1.CloudChannelService.ActivateEntitlement", + "shortName": "CreateAssignment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.CreateAssignment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:activate" + "path": "/v1/{parent=projects/*/locations/*/reservations/*}/assignments" } ] }, { - "shortName": "CancelEntitlement", - "fullName": "google.cloud.channel.v1.CloudChannelService.CancelEntitlement", + "shortName": "CreateCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.CreateCapacityCommitment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:cancel" + "path": "/v1/{parent=projects/*/locations/*}/capacityCommitments" } ] }, { - "shortName": "ChangeOffer", - "fullName": "google.cloud.channel.v1.CloudChannelService.ChangeOffer", + "shortName": "CreateReservation", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.CreateReservation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:changeOffer" + "path": "/v1/{parent=projects/*/locations/*}/reservations" } ] }, { - "shortName": "ChangeParameters", - "fullName": "google.cloud.channel.v1.CloudChannelService.ChangeParameters", + "shortName": "DeleteAssignment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.DeleteAssignment", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:changeParameters" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/reservations/*/assignments/*}" } ] }, { - "shortName": "ChangeRenewalSettings", - "fullName": "google.cloud.channel.v1.CloudChannelService.ChangeRenewalSettings", + "shortName": "DeleteCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.DeleteCapacityCommitment", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:changeRenewalSettings" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/capacityCommitments/*}" } ] }, { - "shortName": "CheckCloudIdentityAccountsExist", - "fullName": "google.cloud.channel.v1.CloudChannelService.CheckCloudIdentityAccountsExist", + "shortName": "DeleteReservation", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.DeleteReservation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=accounts/*}:checkCloudIdentityAccountsExist" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/reservations/*}" } ] }, { - "shortName": "CreateChannelPartnerLink", - "fullName": "google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerLink", + "shortName": "GetBiReservation", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.GetBiReservation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=accounts/*}/channelPartnerLinks" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/biReservation}" } ] }, { - "shortName": "CreateCustomer", - "fullName": "google.cloud.channel.v1.CloudChannelService.CreateCustomer", + "shortName": "GetCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.GetCapacityCommitment", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=accounts/*}/customers" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/capacityCommitments/*}" } ] }, { - "shortName": "CreateEntitlement", - "fullName": "google.cloud.channel.v1.CloudChannelService.CreateEntitlement", + "shortName": "GetReservation", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.GetReservation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=accounts/*/customers/*}/entitlements" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/reservations/*}" } ] }, { - "shortName": "DeleteCustomer", - "fullName": "google.cloud.channel.v1.CloudChannelService.DeleteCustomer", + "shortName": "ListAssignments", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.ListAssignments", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=accounts/*/customers/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=accounts/*/channelPartnerLinks/*/customers/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/reservations/*}/assignments" } ] }, { - "shortName": "GetChannelPartnerLink", - "fullName": "google.cloud.channel.v1.CloudChannelService.GetChannelPartnerLink", + "shortName": "ListCapacityCommitments", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.ListCapacityCommitments", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=accounts/*/channelPartnerLinks/*}" + "path": "/v1/{parent=projects/*/locations/*}/capacityCommitments" } ] }, { - "shortName": "GetCustomer", - "fullName": "google.cloud.channel.v1.CloudChannelService.GetCustomer", + "shortName": "ListReservations", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.ListReservations", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=accounts/*/customers/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=accounts/*/channelPartnerLinks/*/customers/*}" + "path": "/v1/{parent=projects/*/locations/*}/reservations" } ] }, { - "shortName": "GetEntitlement", - "fullName": "google.cloud.channel.v1.CloudChannelService.GetEntitlement", + "shortName": "MergeCapacityCommitments", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.MergeCapacityCommitments", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=accounts/*/customers/*/entitlements/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/capacityCommitments:merge" } ] }, { - "shortName": "ImportCustomer", - "fullName": "google.cloud.channel.v1.CloudChannelService.ImportCustomer", + "shortName": "MoveAssignment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.MoveAssignment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=accounts/*}/customers:import" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers:import" + "path": "/v1/{name=projects/*/locations/*/reservations/*/assignments/*}:move" } ] }, { - "shortName": "ListChannelPartnerLinks", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListChannelPartnerLinks", + "shortName": "SearchAllAssignments", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.SearchAllAssignments", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=accounts/*}/channelPartnerLinks" + "path": "/v1/{parent=projects/*/locations/*}:searchAllAssignments" } ] }, { - "shortName": "ListCustomers", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListCustomers", + "shortName": "SearchAssignments", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.SearchAssignments", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=accounts/*}/customers" - }, + "path": "/v1/{parent=projects/*/locations/*}:searchAssignments" + } + ] + }, + { + "shortName": "SplitCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.SplitCapacityCommitment", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/capacityCommitments/*}:split" } ] }, { - "shortName": "ListEntitlements", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListEntitlements", + "shortName": "UpdateAssignment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.UpdateAssignment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=accounts/*/customers/*}/entitlements" + "httpMethod": "PATCH", + "path": "/v1/{assignment.name=projects/*/locations/*/reservations/*/assignments/*}" } ] }, { - "shortName": "ListOffers", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListOffers", + "shortName": "UpdateBiReservation", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.UpdateBiReservation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=accounts/*}/offers" + "httpMethod": "PATCH", + "path": "/v1/{bi_reservation.name=projects/*/locations/*/biReservation}" } ] }, { - "shortName": "ListProducts", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListProducts", + "shortName": "UpdateCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.UpdateCapacityCommitment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/products" + "httpMethod": "PATCH", + "path": "/v1/{capacity_commitment.name=projects/*/locations/*/capacityCommitments/*}" } ] }, { - "shortName": "ListPurchasableOffers", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListPurchasableOffers", + "shortName": "UpdateReservation", + "fullName": "google.cloud.bigquery.reservation.v1.ReservationService.UpdateReservation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{customer=accounts/*/customers/*}:listPurchasableOffers" + "httpMethod": "PATCH", + "path": "/v1/{reservation.name=projects/*/locations/*/reservations/*}" + } + ] + } + ] + } + ], + "configFile": "bigqueryreservation_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.reservation.v1.ReservationService" + ] + }, + { + "id": "google.cloud.bigquery.reservation.v1beta1", + "directory": "google/cloud/bigquery/reservation/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "bigqueryreservation.googleapis.com", + "title": "BigQuery Reservation API", + "description": "A service to modify your BigQuery flat-rate reservations.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/rpc" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/bigquery/reservation/v1beta1;reservation": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.bigquery.reservation.v1beta1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BigQuery\\Reservation\\V1beta1": 1 + } + } + }, + "services": [ + { + "shortName": "ReservationService", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService", + "methods": [ + { + "shortName": "CreateAssignment", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.CreateAssignment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/reservations/*}/assignments" } ] }, { - "shortName": "ListPurchasableSkus", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListPurchasableSkus", + "shortName": "CreateCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.CreateCapacityCommitment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{customer=accounts/*/customers/*}:listPurchasableSkus" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/capacityCommitments" } ] }, { - "shortName": "ListSkus", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListSkus", + "shortName": "CreateReservation", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.CreateReservation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=products/*}/skus" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/reservations" } ] }, { - "shortName": "ListSubscribers", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListSubscribers", + "shortName": "DeleteAssignment", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.DeleteAssignment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{account=accounts/*}:listSubscribers" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/reservations/*/assignments/*}" } ] }, { - "shortName": "ListTransferableOffers", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListTransferableOffers", + "shortName": "DeleteCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.DeleteCapacityCommitment", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=accounts/*}:listTransferableOffers" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/capacityCommitments/*}" } ] }, { - "shortName": "ListTransferableSkus", - "fullName": "google.cloud.channel.v1.CloudChannelService.ListTransferableSkus", + "shortName": "DeleteReservation", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.DeleteReservation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=accounts/*}:listTransferableSkus" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/reservations/*}" } ] }, { - "shortName": "LookupOffer", - "fullName": "google.cloud.channel.v1.CloudChannelService.LookupOffer", + "shortName": "GetBiReservation", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.GetBiReservation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{entitlement=accounts/*/customers/*/entitlements/*}:lookupOffer" + "path": "/v1beta1/{name=projects/*/locations/*/biReservation}" } ] }, { - "shortName": "ProvisionCloudIdentity", - "fullName": "google.cloud.channel.v1.CloudChannelService.ProvisionCloudIdentity", + "shortName": "GetCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.GetCapacityCommitment", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{customer=accounts/*/customers/*}:provisionCloudIdentity" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/capacityCommitments/*}" } ] }, { - "shortName": "RegisterSubscriber", - "fullName": "google.cloud.channel.v1.CloudChannelService.RegisterSubscriber", + "shortName": "GetReservation", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.GetReservation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{account=accounts/*}:register" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/reservations/*}" } ] }, { - "shortName": "StartPaidService", - "fullName": "google.cloud.channel.v1.CloudChannelService.StartPaidService", + "shortName": "ListAssignments", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.ListAssignments", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:startPaidService" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/reservations/*}/assignments" } ] }, { - "shortName": "SuspendEntitlement", - "fullName": "google.cloud.channel.v1.CloudChannelService.SuspendEntitlement", + "shortName": "ListCapacityCommitments", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.ListCapacityCommitments", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:suspend" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/capacityCommitments" } ] }, { - "shortName": "TransferEntitlements", - "fullName": "google.cloud.channel.v1.CloudChannelService.TransferEntitlements", + "shortName": "ListReservations", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.ListReservations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/reservations" + } + ] + }, + { + "shortName": "MergeCapacityCommitments", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.MergeCapacityCommitments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=accounts/*/customers/*}:transferEntitlements" + "path": "/v1beta1/{parent=projects/*/locations/*}/capacityCommitments:merge" } ] }, { - "shortName": "TransferEntitlementsToGoogle", - "fullName": "google.cloud.channel.v1.CloudChannelService.TransferEntitlementsToGoogle", + "shortName": "MoveAssignment", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.MoveAssignment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=accounts/*/customers/*}:transferEntitlementsToGoogle" + "path": "/v1beta1/{name=projects/*/locations/*/reservations/*/assignments/*}:move" } ] }, { - "shortName": "UnregisterSubscriber", - "fullName": "google.cloud.channel.v1.CloudChannelService.UnregisterSubscriber", + "shortName": "SearchAssignments", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.SearchAssignments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}:searchAssignments" + } + ] + }, + { + "shortName": "SplitCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.SplitCapacityCommitment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{account=accounts/*}:unregister" + "path": "/v1beta1/{name=projects/*/locations/*/capacityCommitments/*}:split" } ] }, { - "shortName": "UpdateChannelPartnerLink", - "fullName": "google.cloud.channel.v1.CloudChannelService.UpdateChannelPartnerLink", + "shortName": "UpdateBiReservation", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.UpdateBiReservation", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{name=accounts/*/channelPartnerLinks/*}" + "path": "/v1beta1/{reservation.name=projects/*/locations/*/biReservation}" } ] }, { - "shortName": "UpdateCustomer", - "fullName": "google.cloud.channel.v1.CloudChannelService.UpdateCustomer", + "shortName": "UpdateCapacityCommitment", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.UpdateCapacityCommitment", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{customer.name=accounts/*/customers/*}" - }, + "path": "/v1beta1/{capacity_commitment.name=projects/*/locations/*/capacityCommitments/*}" + } + ] + }, + { + "shortName": "UpdateReservation", + "fullName": "google.cloud.bigquery.reservation.v1beta1.ReservationService.UpdateReservation", + "mode": "UNARY", + "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{customer.name=accounts/*/channelPartnerLinks/*/customers/*}" + "path": "/v1beta1/{reservation.name=projects/*/locations/*/reservations/*}" } ] } ] } ], - "configFile": "cloudchannel_v1.yaml" + "configFile": "bigqueryreservation_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.reservation.v1beta1.ReservationService" + ] }, { - "id": "google.cloud.clouddms.v1", - "directory": "google/cloud/clouddms/v1", + "id": "google.cloud.bigquery.storage.v1", + "directory": "google/cloud/bigquery/storage/v1", "version": "v1", "majorVersion": "v1", - "hostName": "datamigration.googleapis.com", - "title": "Database Migration API", - "description": "Manage Cloud Database Migration Service resources on Google Cloud Platform.", + "hostName": "bigquerystorage.googleapis.com", + "title": "BigQuery Storage API", + "description": "", "importDirectories": [ "google/api", - "google/cloud/clouddms/v1", - "google/longrunning", + "google/cloud/bigquery/storage/v1", "google/protobuf", "google/rpc" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.CloudDms.V1": 2 + "Google.Cloud.BigQuery.Storage.V1": 7 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/clouddms/v1;clouddms": 2 + "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1;storage": 7 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 7 } }, "java_package": { "valueCounts": { - "com.google.cloud.clouddms.v1": 2 + "com.google.cloud.bigquery.storage.v1": 7 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\CloudDms\\V1": 2 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::CloudDMS::V1": 2 + "Google\\Cloud\\BigQuery\\Storage\\V1": 7 } } }, "services": [ { - "shortName": "DataMigrationService", - "fullName": "google.cloud.clouddms.v1.DataMigrationService", + "shortName": "BigQueryRead", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryRead", "methods": [ { - "shortName": "CreateConnectionProfile", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.CreateConnectionProfile", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/connectionProfiles" - } - ] - }, - { - "shortName": "CreateMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.CreateMigrationJob", + "shortName": "CreateReadSession", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryRead.CreateReadSession", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/migrationJobs" + "path": "/v1/{read_session.table=projects/*/datasets/*/tables/*}" } ] }, { - "shortName": "DeleteConnectionProfile", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.DeleteConnectionProfile", - "mode": "UNARY", + "shortName": "ReadRows", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryRead.ReadRows", + "mode": "SERVER_STREAMING", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/connectionProfiles/*}" + "httpMethod": "GET", + "path": "/v1/{read_stream=projects/*/locations/*/sessions/*/streams/*}" } ] }, { - "shortName": "DeleteMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.DeleteMigrationJob", + "shortName": "SplitReadStream", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryRead.SplitReadStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/sessions/*/streams/*}" } ] - }, + } + ] + }, + { + "shortName": "BigQueryWrite", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite", + "methods": [ { - "shortName": "GenerateSshScript", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.GenerateSshScript", - "mode": "UNARY", + "shortName": "AppendRows", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.AppendRows", + "mode": "BIDIRECTIONAL_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{migration_job=projects/*/locations/*/migrationJobs/*}:generateSshScript" - } - ] - }, - { - "shortName": "GetConnectionProfile", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.GetConnectionProfile", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/connectionProfiles/*}" + "path": "/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}" } ] }, { - "shortName": "GetMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.GetMigrationJob", + "shortName": "BatchCommitWriteStreams", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.BatchCommitWriteStreams", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}" + "path": "/v1/{parent=projects/*/datasets/*/tables/*}" } ] }, { - "shortName": "ListConnectionProfiles", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.ListConnectionProfiles", + "shortName": "CreateWriteStream", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.CreateWriteStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/connectionProfiles" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/datasets/*/tables/*}" } ] }, { - "shortName": "ListMigrationJobs", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.ListMigrationJobs", + "shortName": "FinalizeWriteStream", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.FinalizeWriteStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/migrationJobs" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/datasets/*/tables/*/streams/*}" } ] }, { - "shortName": "PromoteMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.PromoteMigrationJob", + "shortName": "FlushRows", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.FlushRows", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:promote" + "path": "/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}" } ] }, { - "shortName": "RestartMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.RestartMigrationJob", + "shortName": "GetWriteStream", + "fullName": "google.cloud.bigquery.storage.v1.BigQueryWrite.GetWriteStream", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:restart" + "path": "/v1/{name=projects/*/datasets/*/tables/*/streams/*}" } ] - }, + } + ] + } + ], + "configFile": "bigquerystorage_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.storage.v1.BigQueryRead", + "google.cloud.bigquery.storage.v1.BigQueryWrite" + ] + }, + { + "id": "google.cloud.bigquery.storage.v1beta1", + "directory": "google/cloud/bigquery/storage/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "bigquerystorage.googleapis.com", + "title": "BigQuery Storage API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/bigquery/storage/v1beta1", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1;storage": 5 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.bigquery.storage.v1beta1": 5 + } + } + }, + "services": [ + { + "shortName": "BigQueryStorage", + "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage", + "methods": [ { - "shortName": "ResumeMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.ResumeMigrationJob", + "shortName": "BatchCreateReadSessionStreams", + "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.BatchCreateReadSessionStreams", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:resume" + "path": "/v1beta1/{session.name=projects/*/sessions/*}" } ] }, { - "shortName": "StartMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.StartMigrationJob", + "shortName": "CreateReadSession", + "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.CreateReadSession", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:start" - } - ] - }, - { - "shortName": "StopMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.StopMigrationJob", - "mode": "UNARY", - "bindings": [ + "path": "/v1beta1/{table_reference.project_id=projects/*}" + }, { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:stop" + "path": "/v1beta1/{table_reference.dataset_id=projects/*/datasets/*}" } ] }, { - "shortName": "UpdateConnectionProfile", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.UpdateConnectionProfile", + "shortName": "FinalizeStream", + "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.FinalizeStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{connection_profile.name=projects/*/locations/*/connectionProfiles/*}" + "httpMethod": "POST", + "path": "/v1beta1/{stream.name=projects/*/streams/*}" } ] }, { - "shortName": "UpdateMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.UpdateMigrationJob", - "mode": "UNARY", + "shortName": "ReadRows", + "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.ReadRows", + "mode": "SERVER_STREAMING", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{migration_job.name=projects/*/locations/*/migrationJobs/*}" + "httpMethod": "GET", + "path": "/v1beta1/{read_position.stream.name=projects/*/streams/*}" } ] }, { - "shortName": "VerifyMigrationJob", - "fullName": "google.cloud.clouddms.v1.DataMigrationService.VerifyMigrationJob", + "shortName": "SplitReadStream", + "fullName": "google.cloud.bigquery.storage.v1beta1.BigQueryStorage.SplitReadStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:verify" + "httpMethod": "GET", + "path": "/v1beta1/{original_stream.name=projects/*/streams/*}" } ] } ] } ], - "configFile": "datamigration_v1.yaml" + "configFile": "bigquerystorage_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.storage.v1beta1.BigQueryStorage" + ] }, { - "id": "google.cloud.compute.v1", - "directory": "google/cloud/compute/v1", - "version": "v1", + "id": "google.cloud.bigquery.storage.v1beta2", + "directory": "google/cloud/bigquery/storage/v1beta2", + "version": "v1beta2", "majorVersion": "v1", - "hostName": "compute.googleapis.com", - "title": "Google Compute Engine API", + "hostName": "bigquerystorage.googleapis.com", + "title": "BigQuery Storage API", "description": "", "importDirectories": [ "google/api", - "google/cloud" + "google/cloud/bigquery/storage/v1beta2", + "google/protobuf", + "google/rpc" ], "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Compute.V1": 1 - } - }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/compute/v1;compute": 1 + "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta2;storage": 6 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 6 } }, "java_package": { "valueCounts": { - "com.google.cloud.compute.v1": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\Compute\\V1": 1 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::Compute::V1": 1 + "com.google.cloud.bigquery.storage.v1beta2": 6 } } }, "services": [ { - "shortName": "AcceleratorTypes", - "fullName": "google.cloud.compute.v1.AcceleratorTypes", + "shortName": "BigQueryRead", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryRead", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.AcceleratorTypes.AggregatedList", + "shortName": "CreateReadSession", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryRead.CreateReadSession", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/acceleratorTypes" + "httpMethod": "POST", + "path": "/v1beta2/{read_session.table=projects/*/datasets/*/tables/*}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.AcceleratorTypes.Get", - "mode": "UNARY", + "shortName": "ReadRows", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryRead.ReadRows", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/acceleratorTypes/{accelerator_type}" + "path": "/v1beta2/{read_stream=projects/*/locations/*/sessions/*/streams/*}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.AcceleratorTypes.List", + "shortName": "SplitReadStream", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryRead.SplitReadStream", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/acceleratorTypes" + "path": "/v1beta2/{name=projects/*/locations/*/sessions/*/streams/*}" } ] } ] }, { - "shortName": "Addresses", - "fullName": "google.cloud.compute.v1.Addresses", + "shortName": "BigQueryWrite", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.Addresses.AggregatedList", + "shortName": "AppendRows", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.AppendRows", + "mode": "BIDIRECTIONAL_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{write_stream=projects/*/datasets/*/tables/*/streams/*}" + } + ] + }, + { + "shortName": "BatchCommitWriteStreams", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.BatchCommitWriteStreams", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/addresses" + "path": "/v1beta2/{parent=projects/*/datasets/*/tables/*}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Addresses.Delete", + "shortName": "CreateWriteStream", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.CreateWriteStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/addresses/{address}" + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*/datasets/*/tables/*}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Addresses.Get", + "shortName": "FinalizeWriteStream", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.FinalizeWriteStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/addresses/{address}" + "httpMethod": "POST", + "path": "/v1beta2/{name=projects/*/datasets/*/tables/*/streams/*}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Addresses.Insert", + "shortName": "FlushRows", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.FlushRows", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/addresses" + "path": "/v1beta2/{write_stream=projects/*/datasets/*/tables/*/streams/*}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Addresses.List", + "shortName": "GetWriteStream", + "fullName": "google.cloud.bigquery.storage.v1beta2.BigQueryWrite.GetWriteStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/addresses" + "httpMethod": "POST", + "path": "/v1beta2/{name=projects/*/datasets/*/tables/*/streams/*}" } ] } ] + } + ], + "configFile": "bigquerystorage_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.storage.v1beta2.BigQueryRead", + "google.cloud.bigquery.storage.v1beta2.BigQueryWrite" + ] + }, + { + "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": { + "google.golang.org/genproto/googleapis/cloud/bigquery/v2;bigquery": 5 + } }, + "java_package": { + "valueCounts": { + "com.google.cloud.bigquery.v2": 5 + } + } + }, + "services": [ { - "shortName": "Autoscalers", - "fullName": "google.cloud.compute.v1.Autoscalers", + "shortName": "ModelService", + "fullName": "google.cloud.bigquery.v2.ModelService", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.Autoscalers.AggregatedList", + "shortName": "DeleteModel", + "fullName": "google.cloud.bigquery.v2.ModelService.DeleteModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/autoscalers" + "httpMethod": "DELETE", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Autoscalers.Delete", + "shortName": "GetModel", + "fullName": "google.cloud.bigquery.v2.ModelService.GetModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers/{autoscaler}" + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Autoscalers.Get", + "shortName": "ListModels", + "fullName": "google.cloud.bigquery.v2.ModelService.ListModels", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers/{autoscaler}" + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Autoscalers.Insert", + "shortName": "PatchModel", + "fullName": "google.cloud.bigquery.v2.ModelService.PatchModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers" + "httpMethod": "PATCH", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" } ] - }, + } + ] + } + ], + "configFile": "bigquery_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.v2.ModelService" + ] + }, + { + "id": "google.cloud.billing.budgets.v1", + "directory": "google/cloud/billing/budgets/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "billingbudgets.googleapis.com", + "title": "Cloud Billing Budget API", + "description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.", + "importDirectories": [ + "google/api", + "google/cloud/billing/budgets/v1", + "google/protobuf", + "google/type" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/billing/budgets/v1;budgets": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.billing.budgets.v1": 2 + } + } + }, + "services": [ + { + "shortName": "BudgetService", + "fullName": "google.cloud.billing.budgets.v1.BudgetService", + "methods": [ { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Autoscalers.List", + "shortName": "CreateBudget", + "fullName": "google.cloud.billing.budgets.v1.BudgetService.CreateBudget", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers" + "httpMethod": "POST", + "path": "/v1/{parent=billingAccounts/*}/budgets" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.Autoscalers.Patch", + "shortName": "DeleteBudget", + "fullName": "google.cloud.billing.budgets.v1.BudgetService.DeleteBudget", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers" + "httpMethod": "DELETE", + "path": "/v1/{name=billingAccounts/*/budgets/*}" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.Autoscalers.Update", + "shortName": "GetBudget", + "fullName": "google.cloud.billing.budgets.v1.BudgetService.GetBudget", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers" + "httpMethod": "GET", + "path": "/v1/{name=billingAccounts/*/budgets/*}" } ] - } - ] - }, - { - "shortName": "BackendBuckets", - "fullName": "google.cloud.compute.v1.BackendBuckets", - "methods": [ + }, { - "shortName": "AddSignedUrlKey", - "fullName": "google.cloud.compute.v1.BackendBuckets.AddSignedUrlKey", + "shortName": "ListBudgets", + "fullName": "google.cloud.billing.budgets.v1.BudgetService.ListBudgets", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}/addSignedUrlKey" + "httpMethod": "GET", + "path": "/v1/{parent=billingAccounts/*}/budgets" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.BackendBuckets.Delete", + "shortName": "UpdateBudget", + "fullName": "google.cloud.billing.budgets.v1.BudgetService.UpdateBudget", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}" + "httpMethod": "PATCH", + "path": "/v1/{budget.name=billingAccounts/*/budgets/*}" } ] - }, + } + ] + } + ], + "configFile": "billingbudgets.yaml", + "serviceConfigApiNames": [ + "google.cloud.billing.budgets.v1.BudgetService" + ] + }, + { + "id": "google.cloud.billing.budgets.v1beta1", + "directory": "google/cloud/billing/budgets/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "billingbudgets.googleapis.com", + "title": "Cloud Billing Budget API", + "description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.", + "importDirectories": [ + "google/api", + "google/cloud/billing/budgets/v1beta1", + "google/protobuf", + "google/type" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/billing/budgets/v1beta1;budgets": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.billing.budgets.v1beta1": 2 + } + } + }, + "services": [ + { + "shortName": "BudgetService", + "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService", + "methods": [ { - "shortName": "DeleteSignedUrlKey", - "fullName": "google.cloud.compute.v1.BackendBuckets.DeleteSignedUrlKey", + "shortName": "CreateBudget", + "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.CreateBudget", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}/deleteSignedUrlKey" + "path": "/v1beta1/{parent=billingAccounts/*}/budgets" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.BackendBuckets.Get", + "shortName": "DeleteBudget", + "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.DeleteBudget", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=billingAccounts/*/budgets/*}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.BackendBuckets.Insert", + "shortName": "GetBudget", + "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.GetBudget", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/backendBuckets" + "httpMethod": "GET", + "path": "/v1beta1/{name=billingAccounts/*/budgets/*}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.BackendBuckets.List", + "shortName": "ListBudgets", + "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.ListBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/backendBuckets" + "path": "/v1beta1/{parent=billingAccounts/*}/budgets" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.BackendBuckets.Patch", + "shortName": "UpdateBudget", + "fullName": "google.cloud.billing.budgets.v1beta1.BudgetService.UpdateBudget", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}" - } - ] - }, - { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.BackendBuckets.Update", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}" + "path": "/v1beta1/{budget.name=billingAccounts/*/budgets/*}" } ] } ] + } + ], + "configFile": "billingbudgets.yaml", + "serviceConfigApiNames": [ + "google.cloud.billing.budgets.v1beta1.BudgetService" + ] + }, + { + "id": "google.cloud.billing.v1", + "directory": "google/cloud/billing/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "cloudbilling.googleapis.com", + "title": "Cloud Billing API", + "description": "Allows developers to manage billing for their Google Cloud Platform projects programmatically.", + "importDirectories": [ + "google/api", + "google/iam/v1", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "": 1, + "Google.Cloud.Billing.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/billing/v1;billing": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.billing.v1": 2 + } }, + "objc_class_prefix": { + "valueCounts": { + "": 1, + "CLDCTLG": 1 + } + } + }, + "services": [ { - "shortName": "BackendServices", - "fullName": "google.cloud.compute.v1.BackendServices", + "shortName": "CloudBilling", + "fullName": "google.cloud.billing.v1.CloudBilling", "methods": [ { - "shortName": "AddSignedUrlKey", - "fullName": "google.cloud.compute.v1.BackendServices.AddSignedUrlKey", + "shortName": "CreateBillingAccount", + "fullName": "google.cloud.billing.v1.CloudBilling.CreateBillingAccount", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/addSignedUrlKey" + "path": "/v1/billingAccounts" } ] }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.BackendServices.AggregatedList", + "shortName": "GetBillingAccount", + "fullName": "google.cloud.billing.v1.CloudBilling.GetBillingAccount", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/backendServices" + "path": "/v1/{name=billingAccounts/*}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.BackendServices.Delete", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.billing.v1.CloudBilling.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}" + "httpMethod": "GET", + "path": "/v1/{resource=billingAccounts/*}:getIamPolicy" } ] }, { - "shortName": "DeleteSignedUrlKey", - "fullName": "google.cloud.compute.v1.BackendServices.DeleteSignedUrlKey", + "shortName": "GetProjectBillingInfo", + "fullName": "google.cloud.billing.v1.CloudBilling.GetProjectBillingInfo", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/deleteSignedUrlKey" + "httpMethod": "GET", + "path": "/v1/{name=projects/*}/billingInfo" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.BackendServices.Get", + "shortName": "ListBillingAccounts", + "fullName": "google.cloud.billing.v1.CloudBilling.ListBillingAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}" + "path": "/v1/billingAccounts" } ] }, { - "shortName": "GetHealth", - "fullName": "google.cloud.compute.v1.BackendServices.GetHealth", + "shortName": "ListProjectBillingInfo", + "fullName": "google.cloud.billing.v1.CloudBilling.ListProjectBillingInfo", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/getHealth" + "httpMethod": "GET", + "path": "/v1/{name=billingAccounts/*}/projects" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.BackendServices.Insert", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.billing.v1.CloudBilling.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/backendServices" + "path": "/v1/{resource=billingAccounts/*}:setIamPolicy" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.BackendServices.List", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.billing.v1.CloudBilling.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/backendServices" + "httpMethod": "POST", + "path": "/v1/{resource=billingAccounts/*}:testIamPermissions" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.BackendServices.Patch", + "shortName": "UpdateBillingAccount", + "fullName": "google.cloud.billing.v1.CloudBilling.UpdateBillingAccount", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}" - } - ] - }, - { - "shortName": "SetSecurityPolicy", - "fullName": "google.cloud.compute.v1.BackendServices.SetSecurityPolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/setSecurityPolicy" + "path": "/v1/{name=billingAccounts/*}" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.BackendServices.Update", + "shortName": "UpdateProjectBillingInfo", + "fullName": "google.cloud.billing.v1.CloudBilling.UpdateProjectBillingInfo", "mode": "UNARY", "bindings": [ { "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}" + "path": "/v1/{name=projects/*}/billingInfo" } ] } ] }, { - "shortName": "DiskTypes", - "fullName": "google.cloud.compute.v1.DiskTypes", + "shortName": "CloudCatalog", + "fullName": "google.cloud.billing.v1.CloudCatalog", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.DiskTypes.AggregatedList", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/diskTypes" - } - ] - }, - { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.DiskTypes.Get", + "shortName": "ListServices", + "fullName": "google.cloud.billing.v1.CloudCatalog.ListServices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/diskTypes/{disk_type}" + "path": "/v1/services" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.DiskTypes.List", + "shortName": "ListSkus", + "fullName": "google.cloud.billing.v1.CloudCatalog.ListSkus", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/diskTypes" + "path": "/v1/{parent=services/*}/skus" } ] } ] + } + ], + "configFile": "cloudbilling.yaml", + "serviceConfigApiNames": [ + "google.cloud.billing.v1.CloudBilling", + "google.cloud.billing.v1.CloudCatalog" + ] + }, + { + "id": "google.cloud.binaryauthorization.v1", + "directory": "google/cloud/binaryauthorization/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "binaryauthorization.googleapis.com", + "title": "Binary Authorization API", + "description": "The management interface for Binary Authorization, a system providing policy control for images deployed to Kubernetes Engine clusters, Anthos clusters on VMware, and Cloud Run.", + "importDirectories": [ + "google/api", + "google/cloud/binaryauthorization/v1", + "google/protobuf", + "grafeas/v1" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 2 + } }, - { - "shortName": "Disks", - "fullName": "google.cloud.compute.v1.Disks", - "methods": [ - { - "shortName": "AddResourcePolicies", - "fullName": "google.cloud.compute.v1.Disks.AddResourcePolicies", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies" - } - ] - }, - { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.Disks.AggregatedList", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/disks" - } - ] - }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BinaryAuthorization.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/binaryauthorization/v1;binaryauthorization": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "false": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.protos.google.cloud.binaryauthorization.v1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BinaryAuthorization\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::BinaryAuthorization::V1": 2 + } + } + }, + "services": [ + { + "shortName": "BinauthzManagementServiceV1", + "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1", + "methods": [ { - "shortName": "CreateSnapshot", - "fullName": "google.cloud.compute.v1.Disks.CreateSnapshot", + "shortName": "CreateAttestor", + "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.CreateAttestor", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/createSnapshot" + "path": "/v1/{parent=projects/*}/attestors" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Disks.Delete", + "shortName": "DeleteAttestor", + "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.DeleteAttestor", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}" + "path": "/v1/{name=projects/*/attestors/*}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Disks.Get", + "shortName": "GetAttestor", + "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.GetAttestor", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}" + "path": "/v1/{name=projects/*/attestors/*}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.Disks.GetIamPolicy", + "shortName": "GetPolicy", + "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.GetPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy" + "path": "/v1/{name=projects/*/policy}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Disks.Insert", + "shortName": "ListAttestors", + "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.ListAttestors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/attestors" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Disks.List", + "shortName": "UpdateAttestor", + "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.UpdateAttestor", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks" + "httpMethod": "PUT", + "path": "/v1/{attestor.name=projects/*/attestors/*}" } ] }, { - "shortName": "RemoveResourcePolicies", - "fullName": "google.cloud.compute.v1.Disks.RemoveResourcePolicies", + "shortName": "UpdatePolicy", + "fullName": "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1.UpdatePolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies" + "httpMethod": "PUT", + "path": "/v1/{policy.name=projects/*/policy}" } ] - }, + } + ] + }, + { + "shortName": "SystemPolicyV1", + "fullName": "google.cloud.binaryauthorization.v1.SystemPolicyV1", + "methods": [ { - "shortName": "Resize", - "fullName": "google.cloud.compute.v1.Disks.Resize", + "shortName": "GetSystemPolicy", + "fullName": "google.cloud.binaryauthorization.v1.SystemPolicyV1.GetSystemPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/resize" + "httpMethod": "GET", + "path": "/v1/{name=locations/*/policy}" } ] - }, + } + ] + }, + { + "shortName": "ValidationHelperV1", + "fullName": "google.cloud.binaryauthorization.v1.ValidationHelperV1", + "methods": [ { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.Disks.SetIamPolicy", + "shortName": "ValidateAttestationOccurrence", + "fullName": "google.cloud.binaryauthorization.v1.ValidationHelperV1.ValidateAttestationOccurrence", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy" + "path": "/v1/{attestor=projects/*/attestors/*}:validateAttestationOccurrence" } ] - }, + } + ] + } + ], + "configFile": "binaryauthorization_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1", + "google.cloud.binaryauthorization.v1.SystemPolicyV1", + "google.cloud.binaryauthorization.v1.ValidationHelperV1" + ] + }, + { + "id": "google.cloud.binaryauthorization.v1beta1", + "directory": "google/cloud/binaryauthorization/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "binaryauthorization.googleapis.com", + "title": "Binary Authorization API", + "description": "The management interface for Binary Authorization, a system providing policy control for images deployed to Kubernetes Engine clusters, Anthos clusters on VMware, and Cloud Run.", + "importDirectories": [ + "google/api", + "google/cloud/binaryauthorization/v1beta1", + "google/protobuf" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 3 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BinaryAuthorization.V1Beta1": 3 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/binaryauthorization/v1beta1;binaryauthorization": 3 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 3 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.binaryauthorization.v1beta1": 3 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BinaryAuthorization\\V1beta1": 3 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::BinaryAuthorization::V1beta1": 3 + } + } + }, + "services": [ + { + "shortName": "BinauthzManagementServiceV1Beta1", + "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1", + "methods": [ { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.Disks.SetLabels", + "shortName": "CreateAttestor", + "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.CreateAttestor", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{resource}/setLabels" + "path": "/v1beta1/{parent=projects/*}/attestors" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.Disks.TestIamPermissions", + "shortName": "DeleteAttestor", + "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.DeleteAttestor", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/attestors/*}" } ] - } - ] - }, - { - "shortName": "ExternalVpnGateways", - "fullName": "google.cloud.compute.v1.ExternalVpnGateways", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.ExternalVpnGateways.Delete", + "shortName": "GetAttestor", + "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.GetAttestor", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/externalVpnGateways/{external_vpn_gateway}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/attestors/*}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.ExternalVpnGateways.Get", + "shortName": "GetPolicy", + "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.GetPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/externalVpnGateways/{external_vpn_gateway}" + "path": "/v1beta1/{name=projects/*/policy}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.ExternalVpnGateways.Insert", + "shortName": "ListAttestors", + "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.ListAttestors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/externalVpnGateways" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*}/attestors" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.ExternalVpnGateways.List", + "shortName": "UpdateAttestor", + "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.UpdateAttestor", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/externalVpnGateways" + "httpMethod": "PUT", + "path": "/v1beta1/{attestor.name=projects/*/attestors/*}" } ] }, { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.ExternalVpnGateways.SetLabels", + "shortName": "UpdatePolicy", + "fullName": "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1.UpdatePolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/externalVpnGateways/{resource}/setLabels" + "httpMethod": "PUT", + "path": "/v1beta1/{policy.name=projects/*/policy}" } ] - }, + } + ] + }, + { + "shortName": "SystemPolicyV1Beta1", + "fullName": "google.cloud.binaryauthorization.v1beta1.SystemPolicyV1Beta1", + "methods": [ { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.ExternalVpnGateways.TestIamPermissions", + "shortName": "GetSystemPolicy", + "fullName": "google.cloud.binaryauthorization.v1beta1.SystemPolicyV1Beta1.GetSystemPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions" + "httpMethod": "GET", + "path": "/v1beta1/{name=locations/*/policy}" } ] } ] + } + ], + "configFile": "binaryauthorization_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1", + "google.cloud.binaryauthorization.v1beta1.SystemPolicyV1Beta1" + ] + }, + { + "id": "google.cloud.certificatemanager.v1", + "directory": "google/cloud/certificatemanager/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "certificatemanager.googleapis.com", + "title": "Certificate Manager API", + "description": "", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.CertificateManager.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/certificatemanager/v1;certificatemanager": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.certificatemanager.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\CertificateManager\\V1": 1 + } }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::CertificateManager::V1": 1 + } + } + }, + "services": [ { - "shortName": "FirewallPolicies", - "fullName": "google.cloud.compute.v1.FirewallPolicies", + "shortName": "CertificateManager", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager", "methods": [ { - "shortName": "AddAssociation", - "fullName": "google.cloud.compute.v1.FirewallPolicies.AddAssociation", + "shortName": "CreateCertificate", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.CreateCertificate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/addAssociation" + "path": "/v1/{parent=projects/*/locations/*}/certificates" } ] }, { - "shortName": "AddRule", - "fullName": "google.cloud.compute.v1.FirewallPolicies.AddRule", + "shortName": "CreateCertificateMap", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.CreateCertificateMap", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/addRule" + "path": "/v1/{parent=projects/*/locations/*}/certificateMaps" } ] }, { - "shortName": "CloneRules", - "fullName": "google.cloud.compute.v1.FirewallPolicies.CloneRules", + "shortName": "CreateCertificateMapEntry", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.CreateCertificateMapEntry", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/cloneRules" + "path": "/v1/{parent=projects/*/locations/*/certificateMaps/*}/certificateMapEntries" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.FirewallPolicies.Delete", + "shortName": "CreateDnsAuthorization", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.CreateDnsAuthorization", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/dnsAuthorizations" + } + ] + }, + { + "shortName": "DeleteCertificate", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.DeleteCertificate", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}" + "path": "/v1/{name=projects/*/locations/*/certificates/*}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.FirewallPolicies.Get", + "shortName": "DeleteCertificateMap", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.DeleteCertificateMap", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/certificateMaps/*}" } ] }, { - "shortName": "GetAssociation", - "fullName": "google.cloud.compute.v1.FirewallPolicies.GetAssociation", + "shortName": "DeleteCertificateMapEntry", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.DeleteCertificateMapEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/getAssociation" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.FirewallPolicies.GetIamPolicy", + "shortName": "DeleteDnsAuthorization", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.DeleteDnsAuthorization", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/dnsAuthorizations/*}" + } + ] + }, + { + "shortName": "GetCertificate", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.GetCertificate", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/locations/global/firewallPolicies/{resource}/getIamPolicy" + "path": "/v1/{name=projects/*/locations/*/certificates/*}" } ] }, { - "shortName": "GetRule", - "fullName": "google.cloud.compute.v1.FirewallPolicies.GetRule", + "shortName": "GetCertificateMap", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.GetCertificateMap", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/getRule" + "path": "/v1/{name=projects/*/locations/*/certificateMaps/*}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.FirewallPolicies.Insert", + "shortName": "GetCertificateMapEntry", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.GetCertificateMapEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.FirewallPolicies.List", + "shortName": "GetDnsAuthorization", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.GetDnsAuthorization", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/locations/global/firewallPolicies" + "path": "/v1/{name=projects/*/locations/*/dnsAuthorizations/*}" } ] }, { - "shortName": "ListAssociations", - "fullName": "google.cloud.compute.v1.FirewallPolicies.ListAssociations", + "shortName": "ListCertificateMapEntries", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.ListCertificateMapEntries", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/locations/global/firewallPolicies/listAssociations" + "path": "/v1/{parent=projects/*/locations/*/certificateMaps/*}/certificateMapEntries" } ] }, { - "shortName": "Move", - "fullName": "google.cloud.compute.v1.FirewallPolicies.Move", + "shortName": "ListCertificateMaps", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.ListCertificateMaps", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/move" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/certificateMaps" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.FirewallPolicies.Patch", + "shortName": "ListCertificates", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.ListCertificates", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/certificates" } ] }, { - "shortName": "PatchRule", - "fullName": "google.cloud.compute.v1.FirewallPolicies.PatchRule", + "shortName": "ListDnsAuthorizations", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.ListDnsAuthorizations", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/patchRule" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/dnsAuthorizations" } ] }, { - "shortName": "RemoveAssociation", - "fullName": "google.cloud.compute.v1.FirewallPolicies.RemoveAssociation", + "shortName": "UpdateCertificate", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.UpdateCertificate", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/removeAssociation" + "httpMethod": "PATCH", + "path": "/v1/{certificate.name=projects/*/locations/*/certificates/*}" } ] }, { - "shortName": "RemoveRule", - "fullName": "google.cloud.compute.v1.FirewallPolicies.RemoveRule", + "shortName": "UpdateCertificateMap", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.UpdateCertificateMap", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/removeRule" + "httpMethod": "PATCH", + "path": "/v1/{certificate_map.name=projects/*/locations/*/certificateMaps/*}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.FirewallPolicies.SetIamPolicy", + "shortName": "UpdateCertificateMapEntry", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.UpdateCertificateMapEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{resource}/setIamPolicy" + "httpMethod": "PATCH", + "path": "/v1/{certificate_map_entry.name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.FirewallPolicies.TestIamPermissions", + "shortName": "UpdateDnsAuthorization", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.UpdateDnsAuthorization", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/locations/global/firewallPolicies/{resource}/testIamPermissions" + "httpMethod": "PATCH", + "path": "/v1/{dns_authorization.name=projects/*/locations/*/dnsAuthorizations/*}" } ] } ] + } + ], + "configFile": "certificatemanager_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.certificatemanager.v1.CertificateManager", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.channel.v1", + "directory": "google/cloud/channel/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "cloudchannel.googleapis.com", + "title": "Cloud Channel API", + "description": "The Cloud Channel API enables Google Cloud partners to have a single unified resale platform and APIs across all of Google Cloud including GCP, Workspace, Maps and Chrome.", + "importDirectories": [ + "google/api", + "google/cloud/channel/v1", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/channel/v1;channel": 10 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 10 + } }, + "java_package": { + "valueCounts": { + "com.google.cloud.channel.v1": 10 + } + } + }, + "services": [ { - "shortName": "Firewalls", - "fullName": "google.cloud.compute.v1.Firewalls", + "shortName": "CloudChannelService", + "fullName": "google.cloud.channel.v1.CloudChannelService", "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Firewalls.Delete", + "shortName": "ActivateEntitlement", + "fullName": "google.cloud.channel.v1.CloudChannelService.ActivateEntitlement", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/firewalls/{firewall}" + "httpMethod": "POST", + "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:activate" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Firewalls.Get", + "shortName": "CancelEntitlement", + "fullName": "google.cloud.channel.v1.CloudChannelService.CancelEntitlement", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/firewalls/{firewall}" + "httpMethod": "POST", + "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:cancel" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Firewalls.Insert", + "shortName": "ChangeOffer", + "fullName": "google.cloud.channel.v1.CloudChannelService.ChangeOffer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/firewalls" + "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:changeOffer" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Firewalls.List", + "shortName": "ChangeParameters", + "fullName": "google.cloud.channel.v1.CloudChannelService.ChangeParameters", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/firewalls" + "httpMethod": "POST", + "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:changeParameters" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.Firewalls.Patch", + "shortName": "ChangeRenewalSettings", + "fullName": "google.cloud.channel.v1.CloudChannelService.ChangeRenewalSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/firewalls/{firewall}" + "httpMethod": "POST", + "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:changeRenewalSettings" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.Firewalls.Update", + "shortName": "CheckCloudIdentityAccountsExist", + "fullName": "google.cloud.channel.v1.CloudChannelService.CheckCloudIdentityAccountsExist", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/global/firewalls/{firewall}" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*}:checkCloudIdentityAccountsExist" } ] - } - ] - }, - { - "shortName": "ForwardingRules", - "fullName": "google.cloud.compute.v1.ForwardingRules", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.ForwardingRules.AggregatedList", + "shortName": "CreateChannelPartnerLink", + "fullName": "google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/forwardingRules" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*}/channelPartnerLinks" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.ForwardingRules.Delete", + "shortName": "CreateChannelPartnerRepricingConfig", + "fullName": "google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerRepricingConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*/channelPartnerLinks/*}/channelPartnerRepricingConfigs" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.ForwardingRules.Get", + "shortName": "CreateCustomer", + "fullName": "google.cloud.channel.v1.CloudChannelService.CreateCustomer", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*}/customers" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.ForwardingRules.Insert", + "shortName": "CreateCustomerRepricingConfig", + "fullName": "google.cloud.channel.v1.CloudChannelService.CreateCustomerRepricingConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules" + "path": "/v1/{parent=accounts/*/customers/*}/customerRepricingConfigs" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.ForwardingRules.List", + "shortName": "CreateEntitlement", + "fullName": "google.cloud.channel.v1.CloudChannelService.CreateEntitlement", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*/customers/*}/entitlements" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.ForwardingRules.Patch", + "shortName": "DeleteChannelPartnerRepricingConfig", + "fullName": "google.cloud.channel.v1.CloudChannelService.DeleteChannelPartnerRepricingConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}" + "httpMethod": "DELETE", + "path": "/v1/{name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}" } ] }, { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.ForwardingRules.SetLabels", + "shortName": "DeleteCustomer", + "fullName": "google.cloud.channel.v1.CloudChannelService.DeleteCustomer", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels" + "httpMethod": "DELETE", + "path": "/v1/{name=accounts/*/customers/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=accounts/*/channelPartnerLinks/*/customers/*}" } ] }, { - "shortName": "SetTarget", - "fullName": "google.cloud.compute.v1.ForwardingRules.SetTarget", + "shortName": "DeleteCustomerRepricingConfig", + "fullName": "google.cloud.channel.v1.CloudChannelService.DeleteCustomerRepricingConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}/setTarget" + "httpMethod": "DELETE", + "path": "/v1/{name=accounts/*/customers/*/customerRepricingConfigs/*}" } ] - } - ] - }, - { - "shortName": "GlobalAddresses", - "fullName": "google.cloud.compute.v1.GlobalAddresses", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.GlobalAddresses.Delete", + "shortName": "GetChannelPartnerLink", + "fullName": "google.cloud.channel.v1.CloudChannelService.GetChannelPartnerLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/addresses/{address}" + "httpMethod": "GET", + "path": "/v1/{name=accounts/*/channelPartnerLinks/*}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.GlobalAddresses.Get", + "shortName": "GetChannelPartnerRepricingConfig", + "fullName": "google.cloud.channel.v1.CloudChannelService.GetChannelPartnerRepricingConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/addresses/{address}" + "path": "/v1/{name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.GlobalAddresses.Insert", + "shortName": "GetCustomer", + "fullName": "google.cloud.channel.v1.CloudChannelService.GetCustomer", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/addresses" + "httpMethod": "GET", + "path": "/v1/{name=accounts/*/customers/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=accounts/*/channelPartnerLinks/*/customers/*}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.GlobalAddresses.List", + "shortName": "GetCustomerRepricingConfig", + "fullName": "google.cloud.channel.v1.CloudChannelService.GetCustomerRepricingConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/addresses" + "path": "/v1/{name=accounts/*/customers/*/customerRepricingConfigs/*}" } ] - } - ] - }, - { - "shortName": "GlobalForwardingRules", - "fullName": "google.cloud.compute.v1.GlobalForwardingRules", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.GlobalForwardingRules.Delete", + "shortName": "GetEntitlement", + "fullName": "google.cloud.channel.v1.CloudChannelService.GetEntitlement", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}" + "httpMethod": "GET", + "path": "/v1/{name=accounts/*/customers/*/entitlements/*}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.GlobalForwardingRules.Get", + "shortName": "ImportCustomer", + "fullName": "google.cloud.channel.v1.CloudChannelService.ImportCustomer", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*}/customers:import" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers:import" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.GlobalForwardingRules.Insert", + "shortName": "ListChannelPartnerLinks", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListChannelPartnerLinks", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/forwardingRules" + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*}/channelPartnerLinks" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.GlobalForwardingRules.List", + "shortName": "ListChannelPartnerRepricingConfigs", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/forwardingRules" + "path": "/v1/{parent=accounts/*/channelPartnerLinks/*}/channelPartnerRepricingConfigs" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.GlobalForwardingRules.Patch", + "shortName": "ListCustomerRepricingConfigs", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}" + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*/customers/*}/customerRepricingConfigs" } ] }, { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.GlobalForwardingRules.SetLabels", + "shortName": "ListCustomers", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListCustomers", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/forwardingRules/{resource}/setLabels" + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*}/customers" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers" } ] }, { - "shortName": "SetTarget", - "fullName": "google.cloud.compute.v1.GlobalForwardingRules.SetTarget", + "shortName": "ListEntitlements", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListEntitlements", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}/setTarget" + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*/customers/*}/entitlements" } ] - } - ] - }, - { - "shortName": "GlobalNetworkEndpointGroups", - "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups", - "methods": [ + }, { - "shortName": "AttachNetworkEndpoints", - "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.AttachNetworkEndpoints", + "shortName": "ListOffers", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListOffers", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/attachNetworkEndpoints" + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*}/offers" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.Delete", + "shortName": "ListProducts", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListProducts", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}" + "httpMethod": "GET", + "path": "/v1/products" } ] }, { - "shortName": "DetachNetworkEndpoints", - "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.DetachNetworkEndpoints", + "shortName": "ListPurchasableOffers", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListPurchasableOffers", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/detachNetworkEndpoints" + "httpMethod": "GET", + "path": "/v1/{customer=accounts/*/customers/*}:listPurchasableOffers" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.Get", + "shortName": "ListPurchasableSkus", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListPurchasableSkus", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}" + "path": "/v1/{customer=accounts/*/customers/*}:listPurchasableSkus" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.Insert", + "shortName": "ListSkus", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListSkus", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/networkEndpointGroups" + "httpMethod": "GET", + "path": "/v1/{parent=products/*}/skus" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.List", + "shortName": "ListSubscribers", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListSubscribers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/networkEndpointGroups" + "path": "/v1/{account=accounts/*}:listSubscribers" } ] }, { - "shortName": "ListNetworkEndpoints", - "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.ListNetworkEndpoints", + "shortName": "ListTransferableOffers", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListTransferableOffers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/listNetworkEndpoints" + "path": "/v1/{parent=accounts/*}:listTransferableOffers" } ] - } - ] - }, - { - "shortName": "GlobalOperations", - "fullName": "google.cloud.compute.v1.GlobalOperations", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.GlobalOperations.AggregatedList", + "shortName": "ListTransferableSkus", + "fullName": "google.cloud.channel.v1.CloudChannelService.ListTransferableSkus", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/operations" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*}:listTransferableSkus" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.GlobalOperations.Delete", + "shortName": "LookupOffer", + "fullName": "google.cloud.channel.v1.CloudChannelService.LookupOffer", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/operations/{operation}" + "httpMethod": "GET", + "path": "/v1/{entitlement=accounts/*/customers/*/entitlements/*}:lookupOffer" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.GlobalOperations.Get", + "shortName": "ProvisionCloudIdentity", + "fullName": "google.cloud.channel.v1.CloudChannelService.ProvisionCloudIdentity", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/operations/{operation}" + "httpMethod": "POST", + "path": "/v1/{customer=accounts/*/customers/*}:provisionCloudIdentity" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.GlobalOperations.List", + "shortName": "RegisterSubscriber", + "fullName": "google.cloud.channel.v1.CloudChannelService.RegisterSubscriber", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/operations" + "httpMethod": "POST", + "path": "/v1/{account=accounts/*}:register" } ] }, { - "shortName": "Wait", - "fullName": "google.cloud.compute.v1.GlobalOperations.Wait", + "shortName": "StartPaidService", + "fullName": "google.cloud.channel.v1.CloudChannelService.StartPaidService", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/operations/{operation}/wait" + "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:startPaidService" } ] - } - ] - }, - { - "shortName": "GlobalOrganizationOperations", - "fullName": "google.cloud.compute.v1.GlobalOrganizationOperations", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.GlobalOrganizationOperations.Delete", + "shortName": "SuspendEntitlement", + "fullName": "google.cloud.channel.v1.CloudChannelService.SuspendEntitlement", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/locations/global/operations/{operation}" + "httpMethod": "POST", + "path": "/v1/{name=accounts/*/customers/*/entitlements/*}:suspend" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.GlobalOrganizationOperations.Get", + "shortName": "TransferEntitlements", + "fullName": "google.cloud.channel.v1.CloudChannelService.TransferEntitlements", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/locations/global/operations/{operation}" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*/customers/*}:transferEntitlements" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.GlobalOrganizationOperations.List", + "shortName": "TransferEntitlementsToGoogle", + "fullName": "google.cloud.channel.v1.CloudChannelService.TransferEntitlementsToGoogle", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/locations/global/operations" + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*/customers/*}:transferEntitlementsToGoogle" } ] - } - ] - }, - { - "shortName": "GlobalPublicDelegatedPrefixes", - "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.Delete", + "shortName": "UnregisterSubscriber", + "fullName": "google.cloud.channel.v1.CloudChannelService.UnregisterSubscriber", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}" + "httpMethod": "POST", + "path": "/v1/{account=accounts/*}:unregister" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.Get", + "shortName": "UpdateChannelPartnerLink", + "fullName": "google.cloud.channel.v1.CloudChannelService.UpdateChannelPartnerLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}" + "httpMethod": "PATCH", + "path": "/v1/{name=accounts/*/channelPartnerLinks/*}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.Insert", + "shortName": "UpdateChannelPartnerRepricingConfig", + "fullName": "google.cloud.channel.v1.CloudChannelService.UpdateChannelPartnerRepricingConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes" + "httpMethod": "PATCH", + "path": "/v1/{channel_partner_repricing_config.name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.List", + "shortName": "UpdateCustomer", + "fullName": "google.cloud.channel.v1.CloudChannelService.UpdateCustomer", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes" + "httpMethod": "PATCH", + "path": "/v1/{customer.name=accounts/*/customers/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{customer.name=accounts/*/channelPartnerLinks/*/customers/*}" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.Patch", + "shortName": "UpdateCustomerRepricingConfig", + "fullName": "google.cloud.channel.v1.CloudChannelService.UpdateCustomerRepricingConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}" + "path": "/v1/{customer_repricing_config.name=accounts/*/customers/*/customerRepricingConfigs/*}" } ] } ] + } + ], + "configFile": "cloudchannel_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.channel.v1.CloudChannelService", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.clouddms.v1", + "directory": "google/cloud/clouddms/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "datamigration.googleapis.com", + "title": "Database Migration API", + "description": "Manage Cloud Database Migration Service resources on Google Cloud Platform.", + "importDirectories": [ + "google/api", + "google/cloud/clouddms/v1", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.CloudDms.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/clouddms/v1;clouddms": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.clouddms.v1": 2 + } }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\CloudDms\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::CloudDMS::V1": 2 + } + } + }, + "services": [ { - "shortName": "HealthChecks", - "fullName": "google.cloud.compute.v1.HealthChecks", + "shortName": "DataMigrationService", + "fullName": "google.cloud.clouddms.v1.DataMigrationService", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.HealthChecks.AggregatedList", + "shortName": "CreateConnectionProfile", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.CreateConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/healthChecks" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/connectionProfiles" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.HealthChecks.Delete", + "shortName": "CreateMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.CreateMigrationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/healthChecks/{health_check}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/migrationJobs" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.HealthChecks.Get", + "shortName": "DeleteConnectionProfile", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.DeleteConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/healthChecks/{health_check}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/connectionProfiles/*}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.HealthChecks.Insert", + "shortName": "DeleteMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.DeleteMigrationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/healthChecks" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.HealthChecks.List", + "shortName": "GenerateSshScript", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.GenerateSshScript", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/healthChecks" + "httpMethod": "POST", + "path": "/v1/{migration_job=projects/*/locations/*/migrationJobs/*}:generateSshScript" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.HealthChecks.Patch", + "shortName": "GetConnectionProfile", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.GetConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/healthChecks/{health_check}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/connectionProfiles/*}" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.HealthChecks.Update", + "shortName": "GetMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.GetMigrationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/global/healthChecks/{health_check}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}" } ] - } - ] - }, - { - "shortName": "ImageFamilyViews", - "fullName": "google.cloud.compute.v1.ImageFamilyViews", - "methods": [ + }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.ImageFamilyViews.Get", + "shortName": "ListConnectionProfiles", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.ListConnectionProfiles", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/imageFamilyViews/{family}" + "path": "/v1/{parent=projects/*/locations/*}/connectionProfiles" } ] - } - ] - }, - { - "shortName": "Images", - "fullName": "google.cloud.compute.v1.Images", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Images.Delete", + "shortName": "ListMigrationJobs", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.ListMigrationJobs", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/images/{image}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/migrationJobs" } ] }, { - "shortName": "Deprecate", - "fullName": "google.cloud.compute.v1.Images.Deprecate", + "shortName": "PromoteMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.PromoteMigrationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/images/{image}/deprecate" + "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:promote" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Images.Get", + "shortName": "RestartMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.RestartMigrationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/images/{image}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:restart" } ] }, { - "shortName": "GetFromFamily", - "fullName": "google.cloud.compute.v1.Images.GetFromFamily", + "shortName": "ResumeMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.ResumeMigrationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/images/family/{family}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:resume" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.Images.GetIamPolicy", + "shortName": "StartMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.StartMigrationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/images/{resource}/getIamPolicy" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:start" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Images.Insert", + "shortName": "StopMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.StopMigrationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/images" + "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:stop" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Images.List", + "shortName": "UpdateConnectionProfile", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.UpdateConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/images" + "httpMethod": "PATCH", + "path": "/v1/{connection_profile.name=projects/*/locations/*/connectionProfiles/*}" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.Images.Patch", + "shortName": "UpdateMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.UpdateMigrationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/images/{image}" + "path": "/v1/{migration_job.name=projects/*/locations/*/migrationJobs/*}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.Images.SetIamPolicy", + "shortName": "VerifyMigrationJob", + "fullName": "google.cloud.clouddms.v1.DataMigrationService.VerifyMigrationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/images/{resource}/setIamPolicy" - } - ] - }, - { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.Images.SetLabels", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/images/{resource}/setLabels" - } - ] - }, - { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.Images.TestIamPermissions", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/images/{resource}/testIamPermissions" + "path": "/v1/{name=projects/*/locations/*/migrationJobs/*}:verify" } ] } ] + } + ], + "configFile": "datamigration_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.clouddms.v1.DataMigrationService" + ] + }, + { + "id": "google.cloud.commerce.consumer.procurement.v1alpha1", + "directory": "google/cloud/commerce/consumer/procurement/v1alpha1", + "version": "v1alpha1", + "majorVersion": "v1", + "hostName": "cloudcommerceconsumerprocurement.googleapis.com", + "title": "Cloud Commerce Consumer Procurement API", + "description": "Enables consumers to procure products served by Cloud Marketplace platform", + "importDirectories": [ + "google/api", + "google/cloud/commerce/consumer/procurement/v1alpha1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/commerce/consumer/procurement/v1alpha1;procurement": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } }, + "java_package": { + "valueCounts": { + "com.google.cloud.commerce.consumer.procurement.v1alpha1": 2 + } + } + }, + "services": [ { - "shortName": "InstanceGroupManagers", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers", + "shortName": "ConsumerProcurementService", + "fullName": "google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService", "methods": [ { - "shortName": "AbandonInstances", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.AbandonInstances", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/abandonInstances" - } - ] - }, - { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.AggregatedList", + "shortName": "GetOrder", + "fullName": "google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.GetOrder", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/instanceGroupManagers" + "path": "/v1alpha1/{name=billingAccounts/*/orders/*}" } ] }, { - "shortName": "ApplyUpdatesToInstances", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.ApplyUpdatesToInstances", + "shortName": "ListOrders", + "fullName": "google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.ListOrders", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/applyUpdatesToInstances" + "httpMethod": "GET", + "path": "/v1alpha1/{parent=billingAccounts/*}/orders" } ] }, { - "shortName": "CreateInstances", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.CreateInstances", + "shortName": "PlaceOrder", + "fullName": "google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.PlaceOrder", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/createInstances" + "path": "/v1alpha1/{parent=billingAccounts/*}/orders:place" } ] - }, + } + ] + } + ], + "configFile": "cloudcommerceconsumerprocurement_v1alpha1.yaml", + "serviceConfigApiNames": [ + "google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.compute.v1", + "directory": "google/cloud/compute/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "compute.googleapis.com", + "title": "Google Compute Engine API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Compute.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/compute/v1;compute": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.compute.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Compute\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Compute::V1": 1 + } + } + }, + "services": [ + { + "shortName": "AcceleratorTypes", + "fullName": "google.cloud.compute.v1.AcceleratorTypes", + "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Delete", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.AcceleratorTypes.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/acceleratorTypes" } ] }, { - "shortName": "DeleteInstances", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.DeleteInstances", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.AcceleratorTypes.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/deleteInstances" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/acceleratorTypes/{accelerator_type}" } ] }, { - "shortName": "DeletePerInstanceConfigs", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.DeletePerInstanceConfigs", + "shortName": "List", + "fullName": "google.cloud.compute.v1.AcceleratorTypes.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/deletePerInstanceConfigs" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/acceleratorTypes" } ] - }, + } + ] + }, + { + "shortName": "Addresses", + "fullName": "google.cloud.compute.v1.Addresses", + "methods": [ { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Get", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.Addresses.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}" + "path": "/compute/v1/projects/{project}/aggregated/addresses" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Insert", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Addresses.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/addresses/{address}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.List", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Addresses.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers" + "path": "/compute/v1/projects/{project}/regions/{region}/addresses/{address}" } ] }, { - "shortName": "ListErrors", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.ListErrors", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Addresses.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listErrors" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/addresses" } ] }, { - "shortName": "ListManagedInstances", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.ListManagedInstances", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Addresses.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listManagedInstances" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/addresses" } ] }, { - "shortName": "ListPerInstanceConfigs", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.ListPerInstanceConfigs", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.Addresses.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listPerInstanceConfigs" + "path": "/compute/v1/projects/{project}/regions/{region}/addresses/{resource}/setLabels" } ] - }, + } + ] + }, + { + "shortName": "Autoscalers", + "fullName": "google.cloud.compute.v1.Autoscalers", + "methods": [ { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Patch", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.Autoscalers.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/autoscalers" } ] }, { - "shortName": "PatchPerInstanceConfigs", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.PatchPerInstanceConfigs", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Autoscalers.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/patchPerInstanceConfigs" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers/{autoscaler}" } ] }, { - "shortName": "RecreateInstances", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.RecreateInstances", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Autoscalers.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/recreateInstances" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers/{autoscaler}" } ] }, { - "shortName": "Resize", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Resize", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Autoscalers.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resize" + "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers" } ] }, { - "shortName": "SetInstanceTemplate", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.SetInstanceTemplate", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Autoscalers.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/setInstanceTemplate" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers" } ] }, { - "shortName": "SetTargetPools", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.SetTargetPools", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.Autoscalers.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/setTargetPools" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers" } ] }, { - "shortName": "UpdatePerInstanceConfigs", - "fullName": "google.cloud.compute.v1.InstanceGroupManagers.UpdatePerInstanceConfigs", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.Autoscalers.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/updatePerInstanceConfigs" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/zones/{zone}/autoscalers" } ] } ] }, { - "shortName": "InstanceGroups", - "fullName": "google.cloud.compute.v1.InstanceGroups", + "shortName": "BackendBuckets", + "fullName": "google.cloud.compute.v1.BackendBuckets", "methods": [ { - "shortName": "AddInstances", - "fullName": "google.cloud.compute.v1.InstanceGroups.AddInstances", + "shortName": "AddSignedUrlKey", + "fullName": "google.cloud.compute.v1.BackendBuckets.AddSignedUrlKey", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/addInstances" + "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}/addSignedUrlKey" } ] }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.InstanceGroups.AggregatedList", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.BackendBuckets.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/instanceGroups" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.InstanceGroups.Delete", + "shortName": "DeleteSignedUrlKey", + "fullName": "google.cloud.compute.v1.BackendBuckets.DeleteSignedUrlKey", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}/deleteSignedUrlKey" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.InstanceGroups.Get", + "fullName": "google.cloud.compute.v1.BackendBuckets.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}" + "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.InstanceGroups.Insert", + "fullName": "google.cloud.compute.v1.BackendBuckets.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups" + "path": "/compute/v1/projects/{project}/global/backendBuckets" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.InstanceGroups.List", + "fullName": "google.cloud.compute.v1.BackendBuckets.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups" + "path": "/compute/v1/projects/{project}/global/backendBuckets" } ] }, { - "shortName": "ListInstances", - "fullName": "google.cloud.compute.v1.InstanceGroups.ListInstances", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.BackendBuckets.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/listInstances" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}" } ] }, { - "shortName": "RemoveInstances", - "fullName": "google.cloud.compute.v1.InstanceGroups.RemoveInstances", + "shortName": "SetEdgeSecurityPolicy", + "fullName": "google.cloud.compute.v1.BackendBuckets.SetEdgeSecurityPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/removeInstances" + "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}/setEdgeSecurityPolicy" } ] }, { - "shortName": "SetNamedPorts", - "fullName": "google.cloud.compute.v1.InstanceGroups.SetNamedPorts", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.BackendBuckets.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/setNamedPorts" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}" } ] } ] }, { - "shortName": "InstanceTemplates", - "fullName": "google.cloud.compute.v1.InstanceTemplates", + "shortName": "BackendServices", + "fullName": "google.cloud.compute.v1.BackendServices", "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.InstanceTemplates.Delete", + "shortName": "AddSignedUrlKey", + "fullName": "google.cloud.compute.v1.BackendServices.AddSignedUrlKey", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/instanceTemplates/{instance_template}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/addSignedUrlKey" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.InstanceTemplates.Get", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.BackendServices.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/instanceTemplates/{instance_template}" + "path": "/compute/v1/projects/{project}/aggregated/backendServices" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.InstanceTemplates.GetIamPolicy", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.BackendServices.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/instanceTemplates/{resource}/getIamPolicy" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.InstanceTemplates.Insert", + "shortName": "DeleteSignedUrlKey", + "fullName": "google.cloud.compute.v1.BackendServices.DeleteSignedUrlKey", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/instanceTemplates" + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/deleteSignedUrlKey" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.InstanceTemplates.List", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.BackendServices.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/instanceTemplates" + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.InstanceTemplates.SetIamPolicy", + "shortName": "GetHealth", + "fullName": "google.cloud.compute.v1.BackendServices.GetHealth", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/instanceTemplates/{resource}/setIamPolicy" + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/getHealth" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.InstanceTemplates.TestIamPermissions", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.BackendServices.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/instanceTemplates/{resource}/testIamPermissions" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/backendServices/{resource}/getIamPolicy" } ] - } - ] - }, - { - "shortName": "Instances", - "fullName": "google.cloud.compute.v1.Instances", - "methods": [ + }, { - "shortName": "AddAccessConfig", - "fullName": "google.cloud.compute.v1.Instances.AddAccessConfig", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.BackendServices.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig" + "path": "/compute/v1/projects/{project}/global/backendServices" } ] }, { - "shortName": "AddResourcePolicies", - "fullName": "google.cloud.compute.v1.Instances.AddResourcePolicies", + "shortName": "List", + "fullName": "google.cloud.compute.v1.BackendServices.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/backendServices" } ] }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.Instances.AggregatedList", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.BackendServices.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/instances" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}" } ] }, { - "shortName": "AttachDisk", - "fullName": "google.cloud.compute.v1.Instances.AttachDisk", + "shortName": "SetEdgeSecurityPolicy", + "fullName": "google.cloud.compute.v1.BackendServices.SetEdgeSecurityPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/attachDisk" + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/setEdgeSecurityPolicy" } ] }, { - "shortName": "BulkInsert", - "fullName": "google.cloud.compute.v1.Instances.BulkInsert", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.BackendServices.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/bulkInsert" + "path": "/compute/v1/projects/{project}/global/backendServices/{resource}/setIamPolicy" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Instances.Delete", + "shortName": "SetSecurityPolicy", + "fullName": "google.cloud.compute.v1.BackendServices.SetSecurityPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}/setSecurityPolicy" } ] }, { - "shortName": "DeleteAccessConfig", - "fullName": "google.cloud.compute.v1.Instances.DeleteAccessConfig", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.BackendServices.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/global/backendServices/{backend_service}" } ] - }, + } + ] + }, + { + "shortName": "DiskTypes", + "fullName": "google.cloud.compute.v1.DiskTypes", + "methods": [ { - "shortName": "DetachDisk", - "fullName": "google.cloud.compute.v1.Instances.DetachDisk", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.DiskTypes.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/detachDisk" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/diskTypes" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.Instances.Get", + "fullName": "google.cloud.compute.v1.DiskTypes.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}" + "path": "/compute/v1/projects/{project}/zones/{zone}/diskTypes/{disk_type}" } ] }, { - "shortName": "GetEffectiveFirewalls", - "fullName": "google.cloud.compute.v1.Instances.GetEffectiveFirewalls", + "shortName": "List", + "fullName": "google.cloud.compute.v1.DiskTypes.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls" + "path": "/compute/v1/projects/{project}/zones/{zone}/diskTypes" } ] - }, + } + ] + }, + { + "shortName": "Disks", + "fullName": "google.cloud.compute.v1.Disks", + "methods": [ { - "shortName": "GetGuestAttributes", - "fullName": "google.cloud.compute.v1.Instances.GetGuestAttributes", + "shortName": "AddResourcePolicies", + "fullName": "google.cloud.compute.v1.Disks.AddResourcePolicies", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.Instances.GetIamPolicy", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.Disks.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy" + "path": "/compute/v1/projects/{project}/aggregated/disks" } ] }, { - "shortName": "GetScreenshot", - "fullName": "google.cloud.compute.v1.Instances.GetScreenshot", + "shortName": "CreateSnapshot", + "fullName": "google.cloud.compute.v1.Disks.CreateSnapshot", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/screenshot" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/createSnapshot" } ] }, { - "shortName": "GetSerialPortOutput", - "fullName": "google.cloud.compute.v1.Instances.GetSerialPortOutput", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Disks.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/serialPort" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}" } ] }, { - "shortName": "GetShieldedInstanceIdentity", - "fullName": "google.cloud.compute.v1.Instances.GetShieldedInstanceIdentity", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Disks.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity" + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Instances.Insert", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.Disks.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Instances.List", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Disks.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/disks" } ] }, { - "shortName": "ListReferrers", - "fullName": "google.cloud.compute.v1.Instances.ListReferrers", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Disks.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/referrers" + "path": "/compute/v1/projects/{project}/zones/{zone}/disks" } ] }, { "shortName": "RemoveResourcePolicies", - "fullName": "google.cloud.compute.v1.Instances.RemoveResourcePolicies", + "fullName": "google.cloud.compute.v1.Disks.RemoveResourcePolicies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies" + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies" } ] }, { - "shortName": "Reset", - "fullName": "google.cloud.compute.v1.Instances.Reset", + "shortName": "Resize", + "fullName": "google.cloud.compute.v1.Disks.Resize", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/reset" + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/resize" } ] }, { - "shortName": "SendDiagnosticInterrupt", - "fullName": "google.cloud.compute.v1.Instances.SendDiagnosticInterrupt", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.Disks.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt" + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy" } ] }, { - "shortName": "SetDeletionProtection", - "fullName": "google.cloud.compute.v1.Instances.SetDeletionProtection", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.Disks.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection" + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{resource}/setLabels" } ] }, { - "shortName": "SetDiskAutoDelete", - "fullName": "google.cloud.compute.v1.Instances.SetDiskAutoDelete", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.Disks.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete" + "path": "/compute/v1/projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions" + } + ] + } + ] + }, + { + "shortName": "ExternalVpnGateways", + "fullName": "google.cloud.compute.v1.ExternalVpnGateways", + "methods": [ + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.ExternalVpnGateways.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/externalVpnGateways/{external_vpn_gateway}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.Instances.SetIamPolicy", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.ExternalVpnGateways.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/externalVpnGateways/{external_vpn_gateway}" } ] }, { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.Instances.SetLabels", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.ExternalVpnGateways.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setLabels" + "path": "/compute/v1/projects/{project}/global/externalVpnGateways" } ] }, { - "shortName": "SetMachineResources", - "fullName": "google.cloud.compute.v1.Instances.SetMachineResources", + "shortName": "List", + "fullName": "google.cloud.compute.v1.ExternalVpnGateways.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMachineResources" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/externalVpnGateways" } ] }, { - "shortName": "SetMachineType", - "fullName": "google.cloud.compute.v1.Instances.SetMachineType", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.ExternalVpnGateways.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMachineType" + "path": "/compute/v1/projects/{project}/global/externalVpnGateways/{resource}/setLabels" } ] }, { - "shortName": "SetMetadata", - "fullName": "google.cloud.compute.v1.Instances.SetMetadata", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.ExternalVpnGateways.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMetadata" + "path": "/compute/v1/projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions" } ] - }, + } + ] + }, + { + "shortName": "FirewallPolicies", + "fullName": "google.cloud.compute.v1.FirewallPolicies", + "methods": [ { - "shortName": "SetMinCpuPlatform", - "fullName": "google.cloud.compute.v1.Instances.SetMinCpuPlatform", + "shortName": "AddAssociation", + "fullName": "google.cloud.compute.v1.FirewallPolicies.AddAssociation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform" + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/addAssociation" } ] }, { - "shortName": "SetScheduling", - "fullName": "google.cloud.compute.v1.Instances.SetScheduling", + "shortName": "AddRule", + "fullName": "google.cloud.compute.v1.FirewallPolicies.AddRule", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setScheduling" + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/addRule" } ] }, { - "shortName": "SetServiceAccount", - "fullName": "google.cloud.compute.v1.Instances.SetServiceAccount", + "shortName": "CloneRules", + "fullName": "google.cloud.compute.v1.FirewallPolicies.CloneRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount" + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/cloneRules" } ] }, { - "shortName": "SetShieldedInstanceIntegrityPolicy", - "fullName": "google.cloud.compute.v1.Instances.SetShieldedInstanceIntegrityPolicy", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.FirewallPolicies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy" + "httpMethod": "DELETE", + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}" } ] }, { - "shortName": "SetTags", - "fullName": "google.cloud.compute.v1.Instances.SetTags", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.FirewallPolicies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setTags" + "httpMethod": "GET", + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}" } ] }, { - "shortName": "SimulateMaintenanceEvent", - "fullName": "google.cloud.compute.v1.Instances.SimulateMaintenanceEvent", + "shortName": "GetAssociation", + "fullName": "google.cloud.compute.v1.FirewallPolicies.GetAssociation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent" + "httpMethod": "GET", + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/getAssociation" } ] }, { - "shortName": "Start", - "fullName": "google.cloud.compute.v1.Instances.Start", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.FirewallPolicies.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/start" + "httpMethod": "GET", + "path": "/compute/v1/locations/global/firewallPolicies/{resource}/getIamPolicy" } ] }, { - "shortName": "StartWithEncryptionKey", - "fullName": "google.cloud.compute.v1.Instances.StartWithEncryptionKey", + "shortName": "GetRule", + "fullName": "google.cloud.compute.v1.FirewallPolicies.GetRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey" + "httpMethod": "GET", + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/getRule" } ] }, { - "shortName": "Stop", - "fullName": "google.cloud.compute.v1.Instances.Stop", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.FirewallPolicies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/stop" + "path": "/compute/v1/locations/global/firewallPolicies" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.Instances.TestIamPermissions", + "shortName": "List", + "fullName": "google.cloud.compute.v1.FirewallPolicies.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions" + "httpMethod": "GET", + "path": "/compute/v1/locations/global/firewallPolicies" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.Instances.Update", + "shortName": "ListAssociations", + "fullName": "google.cloud.compute.v1.FirewallPolicies.ListAssociations", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}" + "httpMethod": "GET", + "path": "/compute/v1/locations/global/firewallPolicies/listAssociations" } ] }, { - "shortName": "UpdateAccessConfig", - "fullName": "google.cloud.compute.v1.Instances.UpdateAccessConfig", + "shortName": "Move", + "fullName": "google.cloud.compute.v1.FirewallPolicies.Move", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig" + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/move" } ] }, { - "shortName": "UpdateDisplayDevice", - "fullName": "google.cloud.compute.v1.Instances.UpdateDisplayDevice", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.FirewallPolicies.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice" + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}" } ] }, { - "shortName": "UpdateNetworkInterface", - "fullName": "google.cloud.compute.v1.Instances.UpdateNetworkInterface", + "shortName": "PatchRule", + "fullName": "google.cloud.compute.v1.FirewallPolicies.PatchRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface" + "httpMethod": "POST", + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/patchRule" } ] }, { - "shortName": "UpdateShieldedInstanceConfig", - "fullName": "google.cloud.compute.v1.Instances.UpdateShieldedInstanceConfig", + "shortName": "RemoveAssociation", + "fullName": "google.cloud.compute.v1.FirewallPolicies.RemoveAssociation", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig" + "httpMethod": "POST", + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/removeAssociation" } ] - } - ] - }, - { - "shortName": "InterconnectAttachments", - "fullName": "google.cloud.compute.v1.InterconnectAttachments", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.InterconnectAttachments.AggregatedList", + "shortName": "RemoveRule", + "fullName": "google.cloud.compute.v1.FirewallPolicies.RemoveRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/interconnectAttachments" + "httpMethod": "POST", + "path": "/compute/v1/locations/global/firewallPolicies/{firewall_policy}/removeRule" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.FirewallPolicies.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/locations/global/firewallPolicies/{resource}/setIamPolicy" } ] }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.FirewallPolicies.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/locations/global/firewallPolicies/{resource}/testIamPermissions" + } + ] + } + ] + }, + { + "shortName": "Firewalls", + "fullName": "google.cloud.compute.v1.Firewalls", + "methods": [ { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.InterconnectAttachments.Delete", + "fullName": "google.cloud.compute.v1.Firewalls.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}" + "path": "/compute/v1/projects/{project}/global/firewalls/{firewall}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.InterconnectAttachments.Get", + "fullName": "google.cloud.compute.v1.Firewalls.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}" + "path": "/compute/v1/projects/{project}/global/firewalls/{firewall}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.InterconnectAttachments.Insert", + "fullName": "google.cloud.compute.v1.Firewalls.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments" + "path": "/compute/v1/projects/{project}/global/firewalls" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.InterconnectAttachments.List", + "fullName": "google.cloud.compute.v1.Firewalls.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments" + "path": "/compute/v1/projects/{project}/global/firewalls" } ] }, { "shortName": "Patch", - "fullName": "google.cloud.compute.v1.InterconnectAttachments.Patch", + "fullName": "google.cloud.compute.v1.Firewalls.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}" - } - ] - } - ] - }, - { - "shortName": "InterconnectLocations", - "fullName": "google.cloud.compute.v1.InterconnectLocations", - "methods": [ - { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.InterconnectLocations.Get", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/interconnectLocations/{interconnect_location}" + "path": "/compute/v1/projects/{project}/global/firewalls/{firewall}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.InterconnectLocations.List", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.Firewalls.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/interconnectLocations" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/global/firewalls/{firewall}" } ] } ] }, { - "shortName": "Interconnects", - "fullName": "google.cloud.compute.v1.Interconnects", + "shortName": "ForwardingRules", + "fullName": "google.cloud.compute.v1.ForwardingRules", "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Interconnects.Delete", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.ForwardingRules.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/interconnects/{interconnect}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/forwardingRules" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Interconnects.Get", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.ForwardingRules.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/interconnects/{interconnect}" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}" } ] }, { - "shortName": "GetDiagnostics", - "fullName": "google.cloud.compute.v1.Interconnects.GetDiagnostics", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.ForwardingRules.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/interconnects/{interconnect}/getDiagnostics" + "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Interconnects.Insert", + "fullName": "google.cloud.compute.v1.ForwardingRules.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/interconnects" + "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.Interconnects.List", + "fullName": "google.cloud.compute.v1.ForwardingRules.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/interconnects" + "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules" } ] }, { "shortName": "Patch", - "fullName": "google.cloud.compute.v1.Interconnects.Patch", + "fullName": "google.cloud.compute.v1.ForwardingRules.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/interconnects/{interconnect}" + "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}" } ] - } - ] - }, - { - "shortName": "LicenseCodes", - "fullName": "google.cloud.compute.v1.LicenseCodes", - "methods": [ + }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.LicenseCodes.Get", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.ForwardingRules.SetLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/licenseCodes/{license_code}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.LicenseCodes.TestIamPermissions", + "shortName": "SetTarget", + "fullName": "google.cloud.compute.v1.ForwardingRules.SetTarget", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/licenseCodes/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}/setTarget" } ] } ] }, { - "shortName": "Licenses", - "fullName": "google.cloud.compute.v1.Licenses", + "shortName": "GlobalAddresses", + "fullName": "google.cloud.compute.v1.GlobalAddresses", "methods": [ { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Licenses.Delete", + "fullName": "google.cloud.compute.v1.GlobalAddresses.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/licenses/{license}" + "path": "/compute/v1/projects/{project}/global/addresses/{address}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.Licenses.Get", + "fullName": "google.cloud.compute.v1.GlobalAddresses.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/licenses/{license}" + "path": "/compute/v1/projects/{project}/global/addresses/{address}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.Licenses.GetIamPolicy", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.GlobalAddresses.Insert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/addresses" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.GlobalAddresses.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/licenses/{resource}/getIamPolicy" + "path": "/compute/v1/projects/{project}/global/addresses" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Licenses.Insert", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.GlobalAddresses.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/licenses" + "path": "/compute/v1/projects/{project}/global/addresses/{resource}/setLabels" } ] - }, + } + ] + }, + { + "shortName": "GlobalForwardingRules", + "fullName": "google.cloud.compute.v1.GlobalForwardingRules", + "methods": [ { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Licenses.List", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.GlobalForwardingRules.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/licenses" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.Licenses.SetIamPolicy", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.GlobalForwardingRules.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/licenses/{resource}/setIamPolicy" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.Licenses.TestIamPermissions", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.GlobalForwardingRules.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/licenses/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/global/forwardingRules" } ] - } - ] - }, - { - "shortName": "MachineTypes", - "fullName": "google.cloud.compute.v1.MachineTypes", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.MachineTypes.AggregatedList", + "shortName": "List", + "fullName": "google.cloud.compute.v1.GlobalForwardingRules.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/machineTypes" + "path": "/compute/v1/projects/{project}/global/forwardingRules" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.MachineTypes.Get", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.GlobalForwardingRules.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/machineTypes/{machine_type}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.MachineTypes.List", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.GlobalForwardingRules.SetLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/machineTypes" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/forwardingRules/{resource}/setLabels" } ] - } - ] - }, - { - "shortName": "NetworkEndpointGroups", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.AggregatedList", + "shortName": "SetTarget", + "fullName": "google.cloud.compute.v1.GlobalForwardingRules.SetTarget", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/networkEndpointGroups" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}/setTarget" } ] - }, + } + ] + }, + { + "shortName": "GlobalNetworkEndpointGroups", + "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups", + "methods": [ { "shortName": "AttachNetworkEndpoints", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.AttachNetworkEndpoints", + "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.AttachNetworkEndpoints", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}/attachNetworkEndpoints" + "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/attachNetworkEndpoints" } ] }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.Delete", + "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}" + "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}" } ] }, { "shortName": "DetachNetworkEndpoints", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.DetachNetworkEndpoints", + "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.DetachNetworkEndpoints", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}/detachNetworkEndpoints" + "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/detachNetworkEndpoints" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.Get", + "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}" + "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.Insert", + "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups" + "path": "/compute/v1/projects/{project}/global/networkEndpointGroups" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.List", + "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups" + "path": "/compute/v1/projects/{project}/global/networkEndpointGroups" } ] }, { "shortName": "ListNetworkEndpoints", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.ListNetworkEndpoints", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}/listNetworkEndpoints" - } - ] - }, - { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.TestIamPermissions", + "fullName": "google.cloud.compute.v1.GlobalNetworkEndpointGroups.ListNetworkEndpoints", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/listNetworkEndpoints" } ] } ] }, { - "shortName": "Networks", - "fullName": "google.cloud.compute.v1.Networks", + "shortName": "GlobalOperations", + "fullName": "google.cloud.compute.v1.GlobalOperations", "methods": [ { - "shortName": "AddPeering", - "fullName": "google.cloud.compute.v1.Networks.AddPeering", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.GlobalOperations.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/networks/{network}/addPeering" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/operations" } ] }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Networks.Delete", + "fullName": "google.cloud.compute.v1.GlobalOperations.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/networks/{network}" + "path": "/compute/v1/projects/{project}/global/operations/{operation}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.Networks.Get", + "fullName": "google.cloud.compute.v1.GlobalOperations.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/networks/{network}" + "path": "/compute/v1/projects/{project}/global/operations/{operation}" } ] }, { - "shortName": "GetEffectiveFirewalls", - "fullName": "google.cloud.compute.v1.Networks.GetEffectiveFirewalls", + "shortName": "List", + "fullName": "google.cloud.compute.v1.GlobalOperations.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/networks/{network}/getEffectiveFirewalls" + "path": "/compute/v1/projects/{project}/global/operations" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Networks.Insert", + "shortName": "Wait", + "fullName": "google.cloud.compute.v1.GlobalOperations.Wait", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/networks" + "path": "/compute/v1/projects/{project}/global/operations/{operation}/wait" } ] - }, + } + ] + }, + { + "shortName": "GlobalOrganizationOperations", + "fullName": "google.cloud.compute.v1.GlobalOrganizationOperations", + "methods": [ { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Networks.List", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.GlobalOrganizationOperations.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/networks" + "httpMethod": "DELETE", + "path": "/compute/v1/locations/global/operations/{operation}" } ] }, { - "shortName": "ListPeeringRoutes", - "fullName": "google.cloud.compute.v1.Networks.ListPeeringRoutes", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.GlobalOrganizationOperations.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/networks/{network}/listPeeringRoutes" - } - ] - }, - { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.Networks.Patch", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/networks/{network}" - } - ] - }, - { - "shortName": "RemovePeering", - "fullName": "google.cloud.compute.v1.Networks.RemovePeering", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/networks/{network}/removePeering" - } - ] - }, - { - "shortName": "SwitchToCustomMode", - "fullName": "google.cloud.compute.v1.Networks.SwitchToCustomMode", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/networks/{network}/switchToCustomMode" + "path": "/compute/v1/locations/global/operations/{operation}" } ] }, { - "shortName": "UpdatePeering", - "fullName": "google.cloud.compute.v1.Networks.UpdatePeering", + "shortName": "List", + "fullName": "google.cloud.compute.v1.GlobalOrganizationOperations.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/networks/{network}/updatePeering" + "httpMethod": "GET", + "path": "/compute/v1/locations/global/operations" } ] } ] }, { - "shortName": "NodeGroups", - "fullName": "google.cloud.compute.v1.NodeGroups", + "shortName": "GlobalPublicDelegatedPrefixes", + "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes", "methods": [ { - "shortName": "AddNodes", - "fullName": "google.cloud.compute.v1.NodeGroups.AddNodes", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/addNodes" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}" } ] }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.NodeGroups.AggregatedList", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/nodeGroups" + "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.NodeGroups.Delete", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes" } ] }, { - "shortName": "DeleteNodes", - "fullName": "google.cloud.compute.v1.NodeGroups.DeleteNodes", + "shortName": "List", + "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/deleteNodes" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.NodeGroups.Get", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}" } ] - }, + } + ] + }, + { + "shortName": "HealthChecks", + "fullName": "google.cloud.compute.v1.HealthChecks", + "methods": [ { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.NodeGroups.GetIamPolicy", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.HealthChecks.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy" + "path": "/compute/v1/projects/{project}/aggregated/healthChecks" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.NodeGroups.Insert", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.HealthChecks.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/healthChecks/{health_check}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.NodeGroups.List", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.HealthChecks.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups" + "path": "/compute/v1/projects/{project}/global/healthChecks/{health_check}" } ] }, { - "shortName": "ListNodes", - "fullName": "google.cloud.compute.v1.NodeGroups.ListNodes", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.HealthChecks.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/listNodes" + "path": "/compute/v1/projects/{project}/global/healthChecks" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.NodeGroups.Patch", + "shortName": "List", + "fullName": "google.cloud.compute.v1.HealthChecks.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/healthChecks" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.NodeGroups.SetIamPolicy", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.HealthChecks.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/healthChecks/{health_check}" } ] }, { - "shortName": "SetNodeTemplate", - "fullName": "google.cloud.compute.v1.NodeGroups.SetNodeTemplate", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.HealthChecks.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/setNodeTemplate" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/global/healthChecks/{health_check}" } ] - }, + } + ] + }, + { + "shortName": "ImageFamilyViews", + "fullName": "google.cloud.compute.v1.ImageFamilyViews", + "methods": [ { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.NodeGroups.TestIamPermissions", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.ImageFamilyViews.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/imageFamilyViews/{family}" } ] } ] }, { - "shortName": "NodeTemplates", - "fullName": "google.cloud.compute.v1.NodeTemplates", + "shortName": "Images", + "fullName": "google.cloud.compute.v1.Images", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.NodeTemplates.AggregatedList", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Images.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/nodeTemplates" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/images/{image}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.NodeTemplates.Delete", + "shortName": "Deprecate", + "fullName": "google.cloud.compute.v1.Images.Deprecate", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{node_template}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/images/{image}/deprecate" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.NodeTemplates.Get", + "fullName": "google.cloud.compute.v1.Images.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{node_template}" + "path": "/compute/v1/projects/{project}/global/images/{image}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.NodeTemplates.GetIamPolicy", + "shortName": "GetFromFamily", + "fullName": "google.cloud.compute.v1.Images.GetFromFamily", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy" + "path": "/compute/v1/projects/{project}/global/images/family/{family}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.NodeTemplates.Insert", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.Images.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/images/{resource}/getIamPolicy" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.NodeTemplates.List", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Images.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/images" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.NodeTemplates.SetIamPolicy", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Images.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/images" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.NodeTemplates.TestIamPermissions", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.Images.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/images/{image}" } ] - } - ] - }, - { - "shortName": "NodeTypes", - "fullName": "google.cloud.compute.v1.NodeTypes", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.NodeTypes.AggregatedList", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.Images.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/nodeTypes" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/images/{resource}/setIamPolicy" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.NodeTypes.Get", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.Images.SetLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeTypes/{node_type}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/images/{resource}/setLabels" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.NodeTypes.List", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.Images.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/nodeTypes" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/images/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "PacketMirrorings", - "fullName": "google.cloud.compute.v1.PacketMirrorings", + "shortName": "InstanceGroupManagers", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.PacketMirrorings.AggregatedList", + "shortName": "AbandonInstances", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.AbandonInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/packetMirrorings" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/abandonInstances" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.PacketMirrorings.Delete", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/instanceGroupManagers" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.PacketMirrorings.Get", + "shortName": "ApplyUpdatesToInstances", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.ApplyUpdatesToInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/applyUpdatesToInstances" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.PacketMirrorings.Insert", + "shortName": "CreateInstances", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.CreateInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/createInstances" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.PacketMirrorings.List", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.PacketMirrorings.Patch", + "shortName": "DeleteInstances", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.DeleteInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/deleteInstances" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.PacketMirrorings.TestIamPermissions", + "shortName": "DeletePerInstanceConfigs", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.DeletePerInstanceConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/deletePerInstanceConfigs" } ] - } - ] - }, - { - "shortName": "Projects", - "fullName": "google.cloud.compute.v1.Projects", - "methods": [ + }, { - "shortName": "DisableXpnHost", - "fullName": "google.cloud.compute.v1.Projects.DisableXpnHost", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/disableXpnHost" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}" } ] }, { - "shortName": "DisableXpnResource", - "fullName": "google.cloud.compute.v1.Projects.DisableXpnResource", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/disableXpnResource" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers" } ] }, { - "shortName": "EnableXpnHost", - "fullName": "google.cloud.compute.v1.Projects.EnableXpnHost", + "shortName": "List", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/enableXpnHost" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers" } ] }, { - "shortName": "EnableXpnResource", - "fullName": "google.cloud.compute.v1.Projects.EnableXpnResource", + "shortName": "ListErrors", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.ListErrors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/enableXpnResource" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listErrors" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Projects.Get", + "shortName": "ListManagedInstances", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.ListManagedInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listManagedInstances" } ] }, { - "shortName": "GetXpnHost", - "fullName": "google.cloud.compute.v1.Projects.GetXpnHost", + "shortName": "ListPerInstanceConfigs", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.ListPerInstanceConfigs", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/getXpnHost" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listPerInstanceConfigs" } ] }, { - "shortName": "GetXpnResources", - "fullName": "google.cloud.compute.v1.Projects.GetXpnResources", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/getXpnResources" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}" } ] }, { - "shortName": "ListXpnHosts", - "fullName": "google.cloud.compute.v1.Projects.ListXpnHosts", + "shortName": "PatchPerInstanceConfigs", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.PatchPerInstanceConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/listXpnHosts" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/patchPerInstanceConfigs" } ] }, { - "shortName": "MoveDisk", - "fullName": "google.cloud.compute.v1.Projects.MoveDisk", + "shortName": "RecreateInstances", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.RecreateInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/moveDisk" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/recreateInstances" } ] }, { - "shortName": "MoveInstance", - "fullName": "google.cloud.compute.v1.Projects.MoveInstance", + "shortName": "Resize", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.Resize", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/moveInstance" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resize" } ] }, { - "shortName": "SetCommonInstanceMetadata", - "fullName": "google.cloud.compute.v1.Projects.SetCommonInstanceMetadata", + "shortName": "SetInstanceTemplate", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.SetInstanceTemplate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/setCommonInstanceMetadata" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/setInstanceTemplate" } ] }, { - "shortName": "SetDefaultNetworkTier", - "fullName": "google.cloud.compute.v1.Projects.SetDefaultNetworkTier", + "shortName": "SetTargetPools", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.SetTargetPools", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/setDefaultNetworkTier" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/setTargetPools" } ] }, { - "shortName": "SetUsageExportBucket", - "fullName": "google.cloud.compute.v1.Projects.SetUsageExportBucket", + "shortName": "UpdatePerInstanceConfigs", + "fullName": "google.cloud.compute.v1.InstanceGroupManagers.UpdatePerInstanceConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/setUsageExportBucket" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/updatePerInstanceConfigs" } ] } ] }, { - "shortName": "PublicAdvertisedPrefixes", - "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes", + "shortName": "InstanceGroups", + "fullName": "google.cloud.compute.v1.InstanceGroups", "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.Delete", + "shortName": "AddInstances", + "fullName": "google.cloud.compute.v1.InstanceGroups.AddInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/addInstances" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.Get", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.InstanceGroups.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}" + "path": "/compute/v1/projects/{project}/aggregated/instanceGroups" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.Insert", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.InstanceGroups.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.List", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.InstanceGroups.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.Patch", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.InstanceGroups.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups" } ] - } - ] - }, - { - "shortName": "PublicDelegatedPrefixes", - "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.AggregatedList", + "shortName": "List", + "fullName": "google.cloud.compute.v1.InstanceGroups.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/publicDelegatedPrefixes" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.Delete", + "shortName": "ListInstances", + "fullName": "google.cloud.compute.v1.InstanceGroups.ListInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/listInstances" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.Get", + "shortName": "RemoveInstances", + "fullName": "google.cloud.compute.v1.InstanceGroups.RemoveInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/removeInstances" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.Insert", + "shortName": "SetNamedPorts", + "fullName": "google.cloud.compute.v1.InstanceGroups.SetNamedPorts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes" - } - ] - }, - { - "shortName": "List", - "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.List", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes" - } - ] - }, - { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.Patch", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}" + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/setNamedPorts" } ] } ] }, { - "shortName": "RegionAutoscalers", - "fullName": "google.cloud.compute.v1.RegionAutoscalers", + "shortName": "InstanceTemplates", + "fullName": "google.cloud.compute.v1.InstanceTemplates", "methods": [ { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionAutoscalers.Delete", + "fullName": "google.cloud.compute.v1.InstanceTemplates.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers/{autoscaler}" + "path": "/compute/v1/projects/{project}/global/instanceTemplates/{instance_template}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionAutoscalers.Get", + "fullName": "google.cloud.compute.v1.InstanceTemplates.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers/{autoscaler}" + "path": "/compute/v1/projects/{project}/global/instanceTemplates/{instance_template}" + } + ] + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.InstanceTemplates.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/instanceTemplates/{resource}/getIamPolicy" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionAutoscalers.Insert", + "fullName": "google.cloud.compute.v1.InstanceTemplates.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers" + "path": "/compute/v1/projects/{project}/global/instanceTemplates" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionAutoscalers.List", + "fullName": "google.cloud.compute.v1.InstanceTemplates.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers" + "path": "/compute/v1/projects/{project}/global/instanceTemplates" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.RegionAutoscalers.Patch", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.InstanceTemplates.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/instanceTemplates/{resource}/setIamPolicy" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.RegionAutoscalers.Update", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.InstanceTemplates.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/instanceTemplates/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "RegionBackendServices", - "fullName": "google.cloud.compute.v1.RegionBackendServices", + "shortName": "Instances", + "fullName": "google.cloud.compute.v1.Instances", "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionBackendServices.Delete", + "shortName": "AddAccessConfig", + "fullName": "google.cloud.compute.v1.Instances.AddAccessConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionBackendServices.Get", + "shortName": "AddResourcePolicies", + "fullName": "google.cloud.compute.v1.Instances.AddResourcePolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies" + } + ] + }, + { + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.Instances.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}" + "path": "/compute/v1/projects/{project}/aggregated/instances" } ] }, { - "shortName": "GetHealth", - "fullName": "google.cloud.compute.v1.RegionBackendServices.GetHealth", + "shortName": "AttachDisk", + "fullName": "google.cloud.compute.v1.Instances.AttachDisk", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}/getHealth" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/attachDisk" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionBackendServices.Insert", + "shortName": "BulkInsert", + "fullName": "google.cloud.compute.v1.Instances.BulkInsert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/backendServices" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/bulkInsert" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionBackendServices.List", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Instances.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/backendServices" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.RegionBackendServices.Patch", + "shortName": "DeleteAccessConfig", + "fullName": "google.cloud.compute.v1.Instances.DeleteAccessConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.RegionBackendServices.Update", + "shortName": "DetachDisk", + "fullName": "google.cloud.compute.v1.Instances.DetachDisk", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/detachDisk" } ] - } - ] - }, - { - "shortName": "RegionCommitments", - "fullName": "google.cloud.compute.v1.RegionCommitments", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.RegionCommitments.AggregatedList", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Instances.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/commitments" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionCommitments.Get", + "shortName": "GetEffectiveFirewalls", + "fullName": "google.cloud.compute.v1.Instances.GetEffectiveFirewalls", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/commitments/{commitment}" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionCommitments.Insert", + "shortName": "GetGuestAttributes", + "fullName": "google.cloud.compute.v1.Instances.GetGuestAttributes", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/commitments" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionCommitments.List", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.Instances.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/commitments" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy" } ] - } - ] - }, - { - "shortName": "RegionDiskTypes", - "fullName": "google.cloud.compute.v1.RegionDiskTypes", - "methods": [ + }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionDiskTypes.Get", + "shortName": "GetScreenshot", + "fullName": "google.cloud.compute.v1.Instances.GetScreenshot", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/diskTypes/{disk_type}" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/screenshot" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionDiskTypes.List", + "shortName": "GetSerialPortOutput", + "fullName": "google.cloud.compute.v1.Instances.GetSerialPortOutput", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/diskTypes" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/serialPort" } ] - } - ] - }, - { - "shortName": "RegionDisks", - "fullName": "google.cloud.compute.v1.RegionDisks", - "methods": [ + }, { - "shortName": "AddResourcePolicies", - "fullName": "google.cloud.compute.v1.RegionDisks.AddResourcePolicies", + "shortName": "GetShieldedInstanceIdentity", + "fullName": "google.cloud.compute.v1.Instances.GetShieldedInstanceIdentity", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity" } ] }, { - "shortName": "CreateSnapshot", - "fullName": "google.cloud.compute.v1.RegionDisks.CreateSnapshot", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Instances.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}/createSnapshot" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionDisks.Delete", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Instances.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionDisks.Get", + "shortName": "ListReferrers", + "fullName": "google.cloud.compute.v1.Instances.ListReferrers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/referrers" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.RegionDisks.GetIamPolicy", + "shortName": "RemoveResourcePolicies", + "fullName": "google.cloud.compute.v1.Instances.RemoveResourcePolicies", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{resource}/getIamPolicy" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionDisks.Insert", + "shortName": "Reset", + "fullName": "google.cloud.compute.v1.Instances.Reset", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/disks" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/reset" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionDisks.List", + "shortName": "Resume", + "fullName": "google.cloud.compute.v1.Instances.Resume", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/disks" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/resume" } ] }, { - "shortName": "RemoveResourcePolicies", - "fullName": "google.cloud.compute.v1.RegionDisks.RemoveResourcePolicies", + "shortName": "SendDiagnosticInterrupt", + "fullName": "google.cloud.compute.v1.Instances.SendDiagnosticInterrupt", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt" } ] }, { - "shortName": "Resize", - "fullName": "google.cloud.compute.v1.RegionDisks.Resize", + "shortName": "SetDeletionProtection", + "fullName": "google.cloud.compute.v1.Instances.SetDeletionProtection", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}/resize" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.RegionDisks.SetIamPolicy", + "shortName": "SetDiskAutoDelete", + "fullName": "google.cloud.compute.v1.Instances.SetDiskAutoDelete", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{resource}/setIamPolicy" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete" } ] }, { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.RegionDisks.SetLabels", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.Instances.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{resource}/setLabels" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.RegionDisks.TestIamPermissions", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.Instances.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/disks/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setLabels" } ] - } - ] - }, - { - "shortName": "RegionHealthCheckServices", - "fullName": "google.cloud.compute.v1.RegionHealthCheckServices", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.Delete", + "shortName": "SetMachineResources", + "fullName": "google.cloud.compute.v1.Instances.SetMachineResources", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMachineResources" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.Get", + "shortName": "SetMachineType", + "fullName": "google.cloud.compute.v1.Instances.SetMachineType", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMachineType" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.Insert", + "shortName": "SetMetadata", + "fullName": "google.cloud.compute.v1.Instances.SetMetadata", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMetadata" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.List", + "shortName": "SetMinCpuPlatform", + "fullName": "google.cloud.compute.v1.Instances.SetMinCpuPlatform", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.Patch", + "shortName": "SetScheduling", + "fullName": "google.cloud.compute.v1.Instances.SetScheduling", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setScheduling" } ] - } - ] - }, - { - "shortName": "RegionHealthChecks", - "fullName": "google.cloud.compute.v1.RegionHealthChecks", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionHealthChecks.Delete", + "shortName": "SetServiceAccount", + "fullName": "google.cloud.compute.v1.Instances.SetServiceAccount", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionHealthChecks.Get", + "shortName": "SetShieldedInstanceIntegrityPolicy", + "fullName": "google.cloud.compute.v1.Instances.SetShieldedInstanceIntegrityPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionHealthChecks.Insert", + "shortName": "SetTags", + "fullName": "google.cloud.compute.v1.Instances.SetTags", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setTags" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionHealthChecks.List", + "shortName": "SimulateMaintenanceEvent", + "fullName": "google.cloud.compute.v1.Instances.SimulateMaintenanceEvent", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.RegionHealthChecks.Patch", + "shortName": "Start", + "fullName": "google.cloud.compute.v1.Instances.Start", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/start" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.RegionHealthChecks.Update", + "shortName": "StartWithEncryptionKey", + "fullName": "google.cloud.compute.v1.Instances.StartWithEncryptionKey", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey" } ] - } - ] - }, - { - "shortName": "RegionInstanceGroupManagers", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers", - "methods": [ + }, { - "shortName": "AbandonInstances", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.AbandonInstances", + "shortName": "Stop", + "fullName": "google.cloud.compute.v1.Instances.Stop", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/abandonInstances" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/stop" } ] }, { - "shortName": "ApplyUpdatesToInstances", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.ApplyUpdatesToInstances", + "shortName": "Suspend", + "fullName": "google.cloud.compute.v1.Instances.Suspend", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/applyUpdatesToInstances" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/suspend" } ] }, { - "shortName": "CreateInstances", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.CreateInstances", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.Instances.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/createInstances" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Delete", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.Instances.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}" } ] }, { - "shortName": "DeleteInstances", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.DeleteInstances", + "shortName": "UpdateAccessConfig", + "fullName": "google.cloud.compute.v1.Instances.UpdateAccessConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/deleteInstances" + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig" } ] }, { - "shortName": "DeletePerInstanceConfigs", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.DeletePerInstanceConfigs", + "shortName": "UpdateDisplayDevice", + "fullName": "google.cloud.compute.v1.Instances.UpdateDisplayDevice", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/deletePerInstanceConfigs" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Get", + "shortName": "UpdateNetworkInterface", + "fullName": "google.cloud.compute.v1.Instances.UpdateNetworkInterface", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Insert", + "shortName": "UpdateShieldedInstanceConfig", + "fullName": "google.cloud.compute.v1.Instances.UpdateShieldedInstanceConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig" } ] - }, + } + ] + }, + { + "shortName": "InterconnectAttachments", + "fullName": "google.cloud.compute.v1.InterconnectAttachments", + "methods": [ { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.List", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.InterconnectAttachments.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers" + "path": "/compute/v1/projects/{project}/aggregated/interconnectAttachments" } ] }, { - "shortName": "ListErrors", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.ListErrors", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.InterconnectAttachments.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/listErrors" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}" } ] }, { - "shortName": "ListManagedInstances", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.ListManagedInstances", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.InterconnectAttachments.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/listManagedInstances" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}" } ] }, { - "shortName": "ListPerInstanceConfigs", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.ListPerInstanceConfigs", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.InterconnectAttachments.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/listPerInstanceConfigs" + "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Patch", + "shortName": "List", + "fullName": "google.cloud.compute.v1.InterconnectAttachments.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments" } ] }, { - "shortName": "PatchPerInstanceConfigs", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.PatchPerInstanceConfigs", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.InterconnectAttachments.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/patchPerInstanceConfigs" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}" } ] }, { - "shortName": "RecreateInstances", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.RecreateInstances", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.InterconnectAttachments.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/recreateInstances" + "path": "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels" } ] - }, + } + ] + }, + { + "shortName": "InterconnectLocations", + "fullName": "google.cloud.compute.v1.InterconnectLocations", + "methods": [ { - "shortName": "Resize", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Resize", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.InterconnectLocations.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/resize" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/interconnectLocations/{interconnect_location}" } ] }, { - "shortName": "SetInstanceTemplate", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.SetInstanceTemplate", + "shortName": "List", + "fullName": "google.cloud.compute.v1.InterconnectLocations.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/setInstanceTemplate" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/interconnectLocations" } ] - }, + } + ] + }, + { + "shortName": "Interconnects", + "fullName": "google.cloud.compute.v1.Interconnects", + "methods": [ { - "shortName": "SetTargetPools", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.SetTargetPools", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Interconnects.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/setTargetPools" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/interconnects/{interconnect}" } ] }, { - "shortName": "UpdatePerInstanceConfigs", - "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.UpdatePerInstanceConfigs", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Interconnects.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/updatePerInstanceConfigs" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/interconnects/{interconnect}" } ] - } - ] - }, - { - "shortName": "RegionInstanceGroups", - "fullName": "google.cloud.compute.v1.RegionInstanceGroups", - "methods": [ + }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionInstanceGroups.Get", + "shortName": "GetDiagnostics", + "fullName": "google.cloud.compute.v1.Interconnects.GetDiagnostics", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}" + "path": "/compute/v1/projects/{project}/global/interconnects/{interconnect}/getDiagnostics" + } + ] + }, + { + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Interconnects.Insert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/interconnects" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionInstanceGroups.List", + "fullName": "google.cloud.compute.v1.Interconnects.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroups" + "path": "/compute/v1/projects/{project}/global/interconnects" } ] }, { - "shortName": "ListInstances", - "fullName": "google.cloud.compute.v1.RegionInstanceGroups.ListInstances", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.Interconnects.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}/listInstances" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/interconnects/{interconnect}" } ] }, { - "shortName": "SetNamedPorts", - "fullName": "google.cloud.compute.v1.RegionInstanceGroups.SetNamedPorts", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.Interconnects.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}/setNamedPorts" + "path": "/compute/v1/projects/{project}/global/interconnects/{resource}/setLabels" } ] } ] }, { - "shortName": "RegionInstances", - "fullName": "google.cloud.compute.v1.RegionInstances", + "shortName": "LicenseCodes", + "fullName": "google.cloud.compute.v1.LicenseCodes", "methods": [ { - "shortName": "BulkInsert", - "fullName": "google.cloud.compute.v1.RegionInstances.BulkInsert", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.LicenseCodes.Get", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/licenseCodes/{license_code}" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.LicenseCodes.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/instances/bulkInsert" + "path": "/compute/v1/projects/{project}/global/licenseCodes/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "RegionNetworkEndpointGroups", - "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups", + "shortName": "Licenses", + "fullName": "google.cloud.compute.v1.Licenses", "methods": [ { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups.Delete", + "fullName": "google.cloud.compute.v1.Licenses.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}" + "path": "/compute/v1/projects/{project}/global/licenses/{license}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups.Get", + "fullName": "google.cloud.compute.v1.Licenses.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}" - } - ] - }, - { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups.Insert", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups" + "path": "/compute/v1/projects/{project}/global/licenses/{license}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups.List", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.Licenses.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups" + "path": "/compute/v1/projects/{project}/global/licenses/{resource}/getIamPolicy" } ] - } - ] - }, - { - "shortName": "RegionNotificationEndpoints", - "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints.Delete", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Licenses.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/notificationEndpoints/{notification_endpoint}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/licenses" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints.Get", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Licenses.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/notificationEndpoints/{notification_endpoint}" + "path": "/compute/v1/projects/{project}/global/licenses" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints.Insert", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.Licenses.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/notificationEndpoints" + "path": "/compute/v1/projects/{project}/global/licenses/{resource}/setIamPolicy" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints.List", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.Licenses.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/notificationEndpoints" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/licenses/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "RegionOperations", - "fullName": "google.cloud.compute.v1.RegionOperations", + "shortName": "MachineImages", + "fullName": "google.cloud.compute.v1.MachineImages", "methods": [ { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionOperations.Delete", + "fullName": "google.cloud.compute.v1.MachineImages.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/operations/{operation}" + "path": "/compute/v1/projects/{project}/global/machineImages/{machine_image}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionOperations.Get", + "fullName": "google.cloud.compute.v1.MachineImages.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/operations/{operation}" + "path": "/compute/v1/projects/{project}/global/machineImages/{machine_image}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionOperations.List", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.MachineImages.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/operations" + "path": "/compute/v1/projects/{project}/global/machineImages/{resource}/getIamPolicy" } ] }, { - "shortName": "Wait", - "fullName": "google.cloud.compute.v1.RegionOperations.Wait", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.MachineImages.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/operations/{operation}/wait" - } - ] - } - ] - }, - { - "shortName": "RegionSslCertificates", - "fullName": "google.cloud.compute.v1.RegionSslCertificates", - "methods": [ - { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionSslCertificates.Delete", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/sslCertificates/{ssl_certificate}" + "path": "/compute/v1/projects/{project}/global/machineImages" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionSslCertificates.Get", + "shortName": "List", + "fullName": "google.cloud.compute.v1.MachineImages.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/sslCertificates/{ssl_certificate}" + "path": "/compute/v1/projects/{project}/global/machineImages" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionSslCertificates.Insert", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.MachineImages.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/sslCertificates" + "path": "/compute/v1/projects/{project}/global/machineImages/{resource}/setIamPolicy" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionSslCertificates.List", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.MachineImages.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/sslCertificates" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/machineImages/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "RegionTargetHttpProxies", - "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies", + "shortName": "MachineTypes", + "fullName": "google.cloud.compute.v1.MachineTypes", "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.Delete", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.MachineTypes.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/machineTypes" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.Get", + "fullName": "google.cloud.compute.v1.MachineTypes.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}" - } - ] - }, - { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.Insert", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies" + "path": "/compute/v1/projects/{project}/zones/{zone}/machineTypes/{machine_type}" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.List", + "fullName": "google.cloud.compute.v1.MachineTypes.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies" + "path": "/compute/v1/projects/{project}/zones/{zone}/machineTypes" } ] - }, + } + ] + }, + { + "shortName": "NetworkEdgeSecurityServices", + "fullName": "google.cloud.compute.v1.NetworkEdgeSecurityServices", + "methods": [ { - "shortName": "SetUrlMap", - "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.SetUrlMap", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.NetworkEdgeSecurityServices.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}/setUrlMap" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/networkEdgeSecurityServices" } ] - } - ] - }, - { - "shortName": "RegionTargetHttpsProxies", - "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies", - "methods": [ + }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.Delete", + "fullName": "google.cloud.compute.v1.NetworkEdgeSecurityServices.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/networkEdgeSecurityServices/{network_edge_security_service}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.Get", + "fullName": "google.cloud.compute.v1.NetworkEdgeSecurityServices.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/networkEdgeSecurityServices/{network_edge_security_service}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.Insert", + "fullName": "google.cloud.compute.v1.NetworkEdgeSecurityServices.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies" + "path": "/compute/v1/projects/{project}/regions/{region}/networkEdgeSecurityServices" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.List", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.NetworkEdgeSecurityServices.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/networkEdgeSecurityServices/{network_edge_security_service}" } ] - }, + } + ] + }, + { + "shortName": "NetworkEndpointGroups", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups", + "methods": [ { - "shortName": "SetSslCertificates", - "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.SetSslCertificates", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}/setSslCertificates" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/networkEndpointGroups" } ] }, { - "shortName": "SetUrlMap", - "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.SetUrlMap", + "shortName": "AttachNetworkEndpoints", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.AttachNetworkEndpoints", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}/setUrlMap" + "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}/attachNetworkEndpoints" } ] - } - ] - }, - { - "shortName": "RegionUrlMaps", - "fullName": "google.cloud.compute.v1.RegionUrlMaps", - "methods": [ + }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.RegionUrlMaps.Delete", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}" + "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.RegionUrlMaps.Get", + "shortName": "DetachNetworkEndpoints", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.DetachNetworkEndpoints", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}/detachNetworkEndpoints" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.RegionUrlMaps.Insert", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.RegionUrlMaps.List", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.RegionUrlMaps.Patch", + "shortName": "List", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.RegionUrlMaps.Update", + "shortName": "ListNetworkEndpoints", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.ListNetworkEndpoints", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{network_endpoint_group}/listNetworkEndpoints" } ] }, { - "shortName": "Validate", - "fullName": "google.cloud.compute.v1.RegionUrlMaps.Validate", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.NetworkEndpointGroups.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}/validate" + "path": "/compute/v1/projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "Regions", - "fullName": "google.cloud.compute.v1.Regions", + "shortName": "NetworkFirewallPolicies", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", "methods": [ { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Regions.Get", + "shortName": "AddAssociation", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.AddAssociation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addAssociation" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Regions.List", + "shortName": "AddRule", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.AddRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addRule" } ] - } - ] - }, - { - "shortName": "Reservations", - "fullName": "google.cloud.compute.v1.Reservations", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.Reservations.AggregatedList", + "shortName": "CloneRules", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.CloneRules", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/reservations" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/cloneRules" } ] }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Reservations.Delete", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{reservation}" + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.Reservations.Get", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{reservation}" + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.Reservations.GetIamPolicy", + "shortName": "GetAssociation", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.GetAssociation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy" - } - ] - }, - { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Reservations.Insert", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/reservations" + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getAssociation" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Reservations.List", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/reservations" + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{resource}/getIamPolicy" } ] }, { - "shortName": "Resize", - "fullName": "google.cloud.compute.v1.Reservations.Resize", + "shortName": "GetRule", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.GetRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{reservation}/resize" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getRule" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.Reservations.SetIamPolicy", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy" + "path": "/compute/v1/projects/{project}/global/firewallPolicies" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.Reservations.TestIamPermissions", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions" - } - ] - } - ] - }, - { - "shortName": "ResourcePolicies", - "fullName": "google.cloud.compute.v1.ResourcePolicies", - "methods": [ - { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.ResourcePolicies.AggregatedList", + "shortName": "List", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/resourcePolicies" - } - ] - }, - { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.ResourcePolicies.Delete", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}" + "path": "/compute/v1/projects/{project}/global/firewallPolicies" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.ResourcePolicies.Get", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.ResourcePolicies.GetIamPolicy", + "shortName": "PatchRule", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.PatchRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchRule" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.ResourcePolicies.Insert", + "shortName": "RemoveAssociation", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.RemoveAssociation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies" + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeAssociation" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.ResourcePolicies.List", + "shortName": "RemoveRule", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.RemoveRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeRule" } ] }, { "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.ResourcePolicies.SetIamPolicy", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy" + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{resource}/setIamPolicy" } ] }, { "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.ResourcePolicies.TestIamPermissions", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/global/firewallPolicies/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "Routers", - "fullName": "google.cloud.compute.v1.Routers", + "shortName": "Networks", + "fullName": "google.cloud.compute.v1.Networks", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.Routers.AggregatedList", + "shortName": "AddPeering", + "fullName": "google.cloud.compute.v1.Networks.AddPeering", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/routers" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/networks/{network}/addPeering" } ] }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Routers.Delete", + "fullName": "google.cloud.compute.v1.Networks.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}" + "path": "/compute/v1/projects/{project}/global/networks/{network}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.Routers.Get", + "fullName": "google.cloud.compute.v1.Networks.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}" + "path": "/compute/v1/projects/{project}/global/networks/{network}" } ] }, { - "shortName": "GetNatMappingInfo", - "fullName": "google.cloud.compute.v1.Routers.GetNatMappingInfo", + "shortName": "GetEffectiveFirewalls", + "fullName": "google.cloud.compute.v1.Networks.GetEffectiveFirewalls", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo" + "path": "/compute/v1/projects/{project}/global/networks/{network}/getEffectiveFirewalls" } ] }, { - "shortName": "GetRouterStatus", - "fullName": "google.cloud.compute.v1.Routers.GetRouterStatus", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Networks.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRouterStatus" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/networks" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Routers.Insert", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Networks.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/routers" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/networks" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Routers.List", + "shortName": "ListPeeringRoutes", + "fullName": "google.cloud.compute.v1.Networks.ListPeeringRoutes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/routers" + "path": "/compute/v1/projects/{project}/global/networks/{network}/listPeeringRoutes" } ] }, { "shortName": "Patch", - "fullName": "google.cloud.compute.v1.Routers.Patch", + "fullName": "google.cloud.compute.v1.Networks.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}" + "path": "/compute/v1/projects/{project}/global/networks/{network}" } ] }, { - "shortName": "Preview", - "fullName": "google.cloud.compute.v1.Routers.Preview", + "shortName": "RemovePeering", + "fullName": "google.cloud.compute.v1.Networks.RemovePeering", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/preview" + "path": "/compute/v1/projects/{project}/global/networks/{network}/removePeering" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.Routers.Update", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}" - } - ] - } - ] - }, - { - "shortName": "Routes", - "fullName": "google.cloud.compute.v1.Routes", - "methods": [ - { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Routes.Delete", + "shortName": "SwitchToCustomMode", + "fullName": "google.cloud.compute.v1.Networks.SwitchToCustomMode", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/routes/{route}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/networks/{network}/switchToCustomMode" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Routes.Get", + "shortName": "UpdatePeering", + "fullName": "google.cloud.compute.v1.Networks.UpdatePeering", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/routes/{route}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/networks/{network}/updatePeering" } ] - }, + } + ] + }, + { + "shortName": "NodeGroups", + "fullName": "google.cloud.compute.v1.NodeGroups", + "methods": [ { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Routes.Insert", + "shortName": "AddNodes", + "fullName": "google.cloud.compute.v1.NodeGroups.AddNodes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/routes" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/addNodes" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Routes.List", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.NodeGroups.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/routes" + "path": "/compute/v1/projects/{project}/aggregated/nodeGroups" } ] - } - ] - }, - { - "shortName": "SecurityPolicies", - "fullName": "google.cloud.compute.v1.SecurityPolicies", - "methods": [ + }, { - "shortName": "AddRule", - "fullName": "google.cloud.compute.v1.SecurityPolicies.AddRule", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.NodeGroups.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/addRule" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.SecurityPolicies.Delete", + "shortName": "DeleteNodes", + "fullName": "google.cloud.compute.v1.NodeGroups.DeleteNodes", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/deleteNodes" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.SecurityPolicies.Get", + "fullName": "google.cloud.compute.v1.NodeGroups.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}" } ] }, { - "shortName": "GetRule", - "fullName": "google.cloud.compute.v1.SecurityPolicies.GetRule", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.NodeGroups.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/getRule" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.SecurityPolicies.Insert", + "fullName": "google.cloud.compute.v1.NodeGroups.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/securityPolicies" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.SecurityPolicies.List", + "fullName": "google.cloud.compute.v1.NodeGroups.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/securityPolicies" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups" } ] }, { - "shortName": "ListPreconfiguredExpressionSets", - "fullName": "google.cloud.compute.v1.SecurityPolicies.ListPreconfiguredExpressionSets", + "shortName": "ListNodes", + "fullName": "google.cloud.compute.v1.NodeGroups.ListNodes", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/listNodes" } ] }, { "shortName": "Patch", - "fullName": "google.cloud.compute.v1.SecurityPolicies.Patch", + "fullName": "google.cloud.compute.v1.NodeGroups.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}" } ] }, { - "shortName": "PatchRule", - "fullName": "google.cloud.compute.v1.SecurityPolicies.PatchRule", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.NodeGroups.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/patchRule" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy" } ] }, { - "shortName": "RemoveRule", - "fullName": "google.cloud.compute.v1.SecurityPolicies.RemoveRule", + "shortName": "SetNodeTemplate", + "fullName": "google.cloud.compute.v1.NodeGroups.SetNodeTemplate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/removeRule" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/setNodeTemplate" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.NodeGroups.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "ServiceAttachments", - "fullName": "google.cloud.compute.v1.ServiceAttachments", + "shortName": "NodeTemplates", + "fullName": "google.cloud.compute.v1.NodeTemplates", "methods": [ { "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.ServiceAttachments.AggregatedList", + "fullName": "google.cloud.compute.v1.NodeTemplates.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/serviceAttachments" + "path": "/compute/v1/projects/{project}/aggregated/nodeTemplates" } ] }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.ServiceAttachments.Delete", + "fullName": "google.cloud.compute.v1.NodeTemplates.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" + "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{node_template}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.ServiceAttachments.Get", + "fullName": "google.cloud.compute.v1.NodeTemplates.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" + "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{node_template}" } ] }, { "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.ServiceAttachments.GetIamPolicy", + "fullName": "google.cloud.compute.v1.NodeTemplates.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy" + "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.ServiceAttachments.Insert", + "fullName": "google.cloud.compute.v1.NodeTemplates.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments" + "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.ServiceAttachments.List", + "fullName": "google.cloud.compute.v1.NodeTemplates.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments" - } - ] - }, - { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.ServiceAttachments.Patch", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" + "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates" } ] }, { "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.ServiceAttachments.SetIamPolicy", + "fullName": "google.cloud.compute.v1.NodeTemplates.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy" + "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy" } ] }, { "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.ServiceAttachments.TestIamPermissions", + "fullName": "google.cloud.compute.v1.NodeTemplates.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "Snapshots", - "fullName": "google.cloud.compute.v1.Snapshots", + "shortName": "NodeTypes", + "fullName": "google.cloud.compute.v1.NodeTypes", "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Snapshots.Delete", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/snapshots/{snapshot}" - } - ] - }, - { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.Snapshots.Get", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.NodeTypes.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/snapshots/{snapshot}" + "path": "/compute/v1/projects/{project}/aggregated/nodeTypes" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.Snapshots.GetIamPolicy", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.NodeTypes.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/snapshots/{resource}/getIamPolicy" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeTypes/{node_type}" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.Snapshots.List", + "fullName": "google.cloud.compute.v1.NodeTypes.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/snapshots" - } - ] - }, - { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.Snapshots.SetIamPolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/snapshots/{resource}/setIamPolicy" - } - ] - }, - { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.Snapshots.SetLabels", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/snapshots/{resource}/setLabels" - } - ] - }, - { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.Snapshots.TestIamPermissions", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/snapshots/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeTypes" } ] } ] }, { - "shortName": "SslCertificates", - "fullName": "google.cloud.compute.v1.SslCertificates", + "shortName": "PacketMirrorings", + "fullName": "google.cloud.compute.v1.PacketMirrorings", "methods": [ { "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.SslCertificates.AggregatedList", + "fullName": "google.cloud.compute.v1.PacketMirrorings.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/sslCertificates" + "path": "/compute/v1/projects/{project}/aggregated/packetMirrorings" } ] }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.SslCertificates.Delete", + "fullName": "google.cloud.compute.v1.PacketMirrorings.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/sslCertificates/{ssl_certificate}" + "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.SslCertificates.Get", + "fullName": "google.cloud.compute.v1.PacketMirrorings.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/sslCertificates/{ssl_certificate}" + "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.SslCertificates.Insert", + "fullName": "google.cloud.compute.v1.PacketMirrorings.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/sslCertificates" + "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.SslCertificates.List", + "fullName": "google.cloud.compute.v1.PacketMirrorings.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/sslCertificates" - } - ] - } - ] - }, - { - "shortName": "SslPolicies", - "fullName": "google.cloud.compute.v1.SslPolicies", - "methods": [ - { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.SslPolicies.Delete", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}" + "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.SslPolicies.Get", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.PacketMirrorings.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.SslPolicies.Insert", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.PacketMirrorings.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/sslPolicies" - } - ] - }, - { - "shortName": "List", - "fullName": "google.cloud.compute.v1.SslPolicies.List", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/sslPolicies" + "path": "/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions" } ] - }, + } + ] + }, + { + "shortName": "Projects", + "fullName": "google.cloud.compute.v1.Projects", + "methods": [ { - "shortName": "ListAvailableFeatures", - "fullName": "google.cloud.compute.v1.SslPolicies.ListAvailableFeatures", + "shortName": "DisableXpnHost", + "fullName": "google.cloud.compute.v1.Projects.DisableXpnHost", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/sslPolicies/listAvailableFeatures" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/disableXpnHost" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.SslPolicies.Patch", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}" - } - ] - } - ] - }, - { - "shortName": "Subnetworks", - "fullName": "google.cloud.compute.v1.Subnetworks", - "methods": [ - { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.Subnetworks.AggregatedList", + "shortName": "DisableXpnResource", + "fullName": "google.cloud.compute.v1.Projects.DisableXpnResource", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/subnetworks" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/disableXpnResource" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.Subnetworks.Delete", + "shortName": "EnableXpnHost", + "fullName": "google.cloud.compute.v1.Projects.EnableXpnHost", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/enableXpnHost" } ] }, { - "shortName": "ExpandIpCidrRange", - "fullName": "google.cloud.compute.v1.Subnetworks.ExpandIpCidrRange", + "shortName": "EnableXpnResource", + "fullName": "google.cloud.compute.v1.Projects.EnableXpnResource", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange" + "path": "/compute/v1/projects/{project}/enableXpnResource" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.Subnetworks.Get", + "fullName": "google.cloud.compute.v1.Projects.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}" + "path": "/compute/v1/projects/{project}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.compute.v1.Subnetworks.GetIamPolicy", + "shortName": "GetXpnHost", + "fullName": "google.cloud.compute.v1.Projects.GetXpnHost", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy" + "path": "/compute/v1/projects/{project}/getXpnHost" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.Subnetworks.Insert", + "shortName": "GetXpnResources", + "fullName": "google.cloud.compute.v1.Projects.GetXpnResources", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/getXpnResources" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.Subnetworks.List", + "shortName": "ListXpnHosts", + "fullName": "google.cloud.compute.v1.Projects.ListXpnHosts", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/listXpnHosts" } ] }, { - "shortName": "ListUsable", - "fullName": "google.cloud.compute.v1.Subnetworks.ListUsable", + "shortName": "MoveDisk", + "fullName": "google.cloud.compute.v1.Projects.MoveDisk", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/subnetworks/listUsable" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/moveDisk" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.Subnetworks.Patch", + "shortName": "MoveInstance", + "fullName": "google.cloud.compute.v1.Projects.MoveInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/moveInstance" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.compute.v1.Subnetworks.SetIamPolicy", + "shortName": "SetCommonInstanceMetadata", + "fullName": "google.cloud.compute.v1.Projects.SetCommonInstanceMetadata", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy" + "path": "/compute/v1/projects/{project}/setCommonInstanceMetadata" } ] }, { - "shortName": "SetPrivateIpGoogleAccess", - "fullName": "google.cloud.compute.v1.Subnetworks.SetPrivateIpGoogleAccess", + "shortName": "SetDefaultNetworkTier", + "fullName": "google.cloud.compute.v1.Projects.SetDefaultNetworkTier", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess" + "path": "/compute/v1/projects/{project}/setDefaultNetworkTier" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.Subnetworks.TestIamPermissions", + "shortName": "SetUsageExportBucket", + "fullName": "google.cloud.compute.v1.Projects.SetUsageExportBucket", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/setUsageExportBucket" } ] } ] }, { - "shortName": "TargetGrpcProxies", - "fullName": "google.cloud.compute.v1.TargetGrpcProxies", + "shortName": "PublicAdvertisedPrefixes", + "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes", "methods": [ { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.TargetGrpcProxies.Delete", + "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/targetGrpcProxies/{target_grpc_proxy}" + "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.TargetGrpcProxies.Get", + "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetGrpcProxies/{target_grpc_proxy}" + "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.TargetGrpcProxies.Insert", + "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetGrpcProxies" + "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.TargetGrpcProxies.List", + "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetGrpcProxies" + "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes" } ] }, { "shortName": "Patch", - "fullName": "google.cloud.compute.v1.TargetGrpcProxies.Patch", + "fullName": "google.cloud.compute.v1.PublicAdvertisedPrefixes.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/targetGrpcProxies/{target_grpc_proxy}" + "path": "/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}" } ] } ] }, { - "shortName": "TargetHttpProxies", - "fullName": "google.cloud.compute.v1.TargetHttpProxies", + "shortName": "PublicDelegatedPrefixes", + "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes", "methods": [ { "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.TargetHttpProxies.AggregatedList", + "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/targetHttpProxies" + "path": "/compute/v1/projects/{project}/aggregated/publicDelegatedPrefixes" } ] }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.TargetHttpProxies.Delete", + "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/targetHttpProxies/{target_http_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.TargetHttpProxies.Get", + "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetHttpProxies/{target_http_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.TargetHttpProxies.Insert", + "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetHttpProxies" + "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.TargetHttpProxies.List", + "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetHttpProxies" + "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes" } ] }, { "shortName": "Patch", - "fullName": "google.cloud.compute.v1.TargetHttpProxies.Patch", + "fullName": "google.cloud.compute.v1.PublicDelegatedPrefixes.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/targetHttpProxies/{target_http_proxy}" - } - ] - }, - { - "shortName": "SetUrlMap", - "fullName": "google.cloud.compute.v1.TargetHttpProxies.SetUrlMap", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/targetHttpProxies/{target_http_proxy}/setUrlMap" + "path": "/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}" } ] } ] }, { - "shortName": "TargetHttpsProxies", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies", + "shortName": "RegionAutoscalers", + "fullName": "google.cloud.compute.v1.RegionAutoscalers", "methods": [ - { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.AggregatedList", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/targetHttpsProxies" - } - ] - }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.Delete", + "fullName": "google.cloud.compute.v1.RegionAutoscalers.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers/{autoscaler}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.Get", + "fullName": "google.cloud.compute.v1.RegionAutoscalers.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers/{autoscaler}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.Insert", + "fullName": "google.cloud.compute.v1.RegionAutoscalers.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetHttpsProxies" + "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.List", + "fullName": "google.cloud.compute.v1.RegionAutoscalers.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetHttpsProxies" + "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers" } ] }, { "shortName": "Patch", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.Patch", + "fullName": "google.cloud.compute.v1.RegionAutoscalers.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers" } ] }, { - "shortName": "SetQuicOverride", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetQuicOverride", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.RegionAutoscalers.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}/setQuicOverride" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/regions/{region}/autoscalers" } ] - }, + } + ] + }, + { + "shortName": "RegionBackendServices", + "fullName": "google.cloud.compute.v1.RegionBackendServices", + "methods": [ { - "shortName": "SetSslCertificates", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetSslCertificates", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionBackendServices.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/targetHttpsProxies/{target_https_proxy}/setSslCertificates" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}" } ] }, { - "shortName": "SetSslPolicy", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetSslPolicy", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionBackendServices.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}/setSslPolicy" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}" } ] }, { - "shortName": "SetUrlMap", - "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetUrlMap", + "shortName": "GetHealth", + "fullName": "google.cloud.compute.v1.RegionBackendServices.GetHealth", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/targetHttpsProxies/{target_https_proxy}/setUrlMap" + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}/getHealth" } ] - } - ] - }, - { - "shortName": "TargetInstances", - "fullName": "google.cloud.compute.v1.TargetInstances", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.TargetInstances.AggregatedList", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.RegionBackendServices.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/targetInstances" + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.TargetInstances.Delete", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionBackendServices.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/targetInstances/{target_instance}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.TargetInstances.Get", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionBackendServices.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/targetInstances/{target_instance}" + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.TargetInstances.Insert", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionBackendServices.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/targetInstances" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.TargetInstances.List", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.RegionBackendServices.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/targetInstances" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy" } ] - } - ] - }, - { - "shortName": "TargetPools", - "fullName": "google.cloud.compute.v1.TargetPools", - "methods": [ + }, { - "shortName": "AddHealthCheck", - "fullName": "google.cloud.compute.v1.TargetPools.AddHealthCheck", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.RegionBackendServices.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/addHealthCheck" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}" } ] - }, + } + ] + }, + { + "shortName": "RegionCommitments", + "fullName": "google.cloud.compute.v1.RegionCommitments", + "methods": [ { - "shortName": "AddInstance", - "fullName": "google.cloud.compute.v1.TargetPools.AddInstance", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.RegionCommitments.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/addInstance" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/commitments" } ] }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.TargetPools.AggregatedList", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionCommitments.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/targetPools" + "path": "/compute/v1/projects/{project}/regions/{region}/commitments/{commitment}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.TargetPools.Delete", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionCommitments.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/commitments" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.TargetPools.Get", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionCommitments.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}" + "path": "/compute/v1/projects/{project}/regions/{region}/commitments" } ] }, { - "shortName": "GetHealth", - "fullName": "google.cloud.compute.v1.TargetPools.GetHealth", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.RegionCommitments.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/getHealth" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/commitments/{commitment}" } ] - }, + } + ] + }, + { + "shortName": "RegionDiskTypes", + "fullName": "google.cloud.compute.v1.RegionDiskTypes", + "methods": [ { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.TargetPools.Insert", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionDiskTypes.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/diskTypes/{disk_type}" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.TargetPools.List", + "fullName": "google.cloud.compute.v1.RegionDiskTypes.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools" + "path": "/compute/v1/projects/{project}/regions/{region}/diskTypes" } ] - }, + } + ] + }, + { + "shortName": "RegionDisks", + "fullName": "google.cloud.compute.v1.RegionDisks", + "methods": [ { - "shortName": "RemoveHealthCheck", - "fullName": "google.cloud.compute.v1.TargetPools.RemoveHealthCheck", + "shortName": "AddResourcePolicies", + "fullName": "google.cloud.compute.v1.RegionDisks.AddResourcePolicies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/removeHealthCheck" + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies" } ] }, { - "shortName": "RemoveInstance", - "fullName": "google.cloud.compute.v1.TargetPools.RemoveInstance", + "shortName": "CreateSnapshot", + "fullName": "google.cloud.compute.v1.RegionDisks.CreateSnapshot", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/removeInstance" + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}/createSnapshot" } ] }, { - "shortName": "SetBackup", - "fullName": "google.cloud.compute.v1.TargetPools.SetBackup", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionDisks.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/setBackup" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}" } ] - } - ] - }, - { - "shortName": "TargetSslProxies", - "fullName": "google.cloud.compute.v1.TargetSslProxies", - "methods": [ + }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.TargetSslProxies.Delete", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionDisks.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.TargetSslProxies.Get", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.RegionDisks.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{resource}/getIamPolicy" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.TargetSslProxies.Insert", + "fullName": "google.cloud.compute.v1.RegionDisks.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetSslProxies" + "path": "/compute/v1/projects/{project}/regions/{region}/disks" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.TargetSslProxies.List", + "fullName": "google.cloud.compute.v1.RegionDisks.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetSslProxies" + "path": "/compute/v1/projects/{project}/regions/{region}/disks" } ] }, { - "shortName": "SetBackendService", - "fullName": "google.cloud.compute.v1.TargetSslProxies.SetBackendService", + "shortName": "RemoveResourcePolicies", + "fullName": "google.cloud.compute.v1.RegionDisks.RemoveResourcePolicies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setBackendService" + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies" } ] }, { - "shortName": "SetProxyHeader", - "fullName": "google.cloud.compute.v1.TargetSslProxies.SetProxyHeader", + "shortName": "Resize", + "fullName": "google.cloud.compute.v1.RegionDisks.Resize", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setProxyHeader" + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{disk}/resize" } ] }, { - "shortName": "SetSslCertificates", - "fullName": "google.cloud.compute.v1.TargetSslProxies.SetSslCertificates", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.RegionDisks.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setSslCertificates" + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{resource}/setIamPolicy" } ] }, { - "shortName": "SetSslPolicy", - "fullName": "google.cloud.compute.v1.TargetSslProxies.SetSslPolicy", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.RegionDisks.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setSslPolicy" + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{resource}/setLabels" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.RegionDisks.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/disks/{resource}/testIamPermissions" } ] } ] }, { - "shortName": "TargetTcpProxies", - "fullName": "google.cloud.compute.v1.TargetTcpProxies", + "shortName": "RegionHealthCheckServices", + "fullName": "google.cloud.compute.v1.RegionHealthCheckServices", "methods": [ { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.TargetTcpProxies.Delete", + "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.TargetTcpProxies.Get", + "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}" + "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.TargetTcpProxies.Insert", + "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetTcpProxies" + "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.TargetTcpProxies.List", + "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/targetTcpProxies" - } - ] - }, - { - "shortName": "SetBackendService", - "fullName": "google.cloud.compute.v1.TargetTcpProxies.SetBackendService", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}/setBackendService" + "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices" } ] }, { - "shortName": "SetProxyHeader", - "fullName": "google.cloud.compute.v1.TargetTcpProxies.SetProxyHeader", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionHealthCheckServices.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}/setProxyHeader" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}" } ] } ] }, { - "shortName": "TargetVpnGateways", - "fullName": "google.cloud.compute.v1.TargetVpnGateways", + "shortName": "RegionHealthChecks", + "fullName": "google.cloud.compute.v1.RegionHealthChecks", "methods": [ - { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.TargetVpnGateways.AggregatedList", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/targetVpnGateways" - } - ] - }, { "shortName": "Delete", - "fullName": "google.cloud.compute.v1.TargetVpnGateways.Delete", + "fullName": "google.cloud.compute.v1.RegionHealthChecks.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{target_vpn_gateway}" + "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}" } ] }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.TargetVpnGateways.Get", + "fullName": "google.cloud.compute.v1.RegionHealthChecks.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{target_vpn_gateway}" + "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}" } ] }, { "shortName": "Insert", - "fullName": "google.cloud.compute.v1.TargetVpnGateways.Insert", + "fullName": "google.cloud.compute.v1.RegionHealthChecks.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways" + "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.TargetVpnGateways.List", + "fullName": "google.cloud.compute.v1.RegionHealthChecks.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways" + "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks" } ] - } - ] - }, - { - "shortName": "UrlMaps", - "fullName": "google.cloud.compute.v1.UrlMaps", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.UrlMaps.AggregatedList", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionHealthChecks.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/urlMaps" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.UrlMaps.Delete", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.RegionHealthChecks.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}" } ] - }, + } + ] + }, + { + "shortName": "RegionInstanceGroupManagers", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers", + "methods": [ { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.UrlMaps.Get", + "shortName": "AbandonInstances", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.AbandonInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/abandonInstances" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.UrlMaps.Insert", + "shortName": "ApplyUpdatesToInstances", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.ApplyUpdatesToInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/urlMaps" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/applyUpdatesToInstances" } ] }, { - "shortName": "InvalidateCache", - "fullName": "google.cloud.compute.v1.UrlMaps.InvalidateCache", + "shortName": "CreateInstances", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.CreateInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}/invalidateCache" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/createInstances" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.UrlMaps.List", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/global/urlMaps" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}" } ] }, { - "shortName": "Patch", - "fullName": "google.cloud.compute.v1.UrlMaps.Patch", + "shortName": "DeleteInstances", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.DeleteInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/deleteInstances" } ] }, { - "shortName": "Update", - "fullName": "google.cloud.compute.v1.UrlMaps.Update", + "shortName": "DeletePerInstanceConfigs", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.DeletePerInstanceConfigs", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/deletePerInstanceConfigs" } ] }, { - "shortName": "Validate", - "fullName": "google.cloud.compute.v1.UrlMaps.Validate", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}/validate" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}" } ] - } - ] - }, - { - "shortName": "VpnGateways", - "fullName": "google.cloud.compute.v1.VpnGateways", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.VpnGateways.AggregatedList", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/vpnGateways" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.VpnGateways.Delete", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.VpnGateways.Get", + "shortName": "ListErrors", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.ListErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/listErrors" } ] }, { - "shortName": "GetStatus", - "fullName": "google.cloud.compute.v1.VpnGateways.GetStatus", + "shortName": "ListManagedInstances", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.ListManagedInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}/getStatus" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/listManagedInstances" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.VpnGateways.Insert", + "shortName": "ListPerInstanceConfigs", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.ListPerInstanceConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/listPerInstanceConfigs" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.VpnGateways.List", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}" } ] }, { - "shortName": "SetLabels", - "fullName": "google.cloud.compute.v1.VpnGateways.SetLabels", + "shortName": "PatchPerInstanceConfigs", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.PatchPerInstanceConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/patchPerInstanceConfigs" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.compute.v1.VpnGateways.TestIamPermissions", + "shortName": "RecreateInstances", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.RecreateInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/recreateInstances" } ] - } - ] - }, - { - "shortName": "VpnTunnels", - "fullName": "google.cloud.compute.v1.VpnTunnels", - "methods": [ + }, { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1.VpnTunnels.AggregatedList", + "shortName": "Resize", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.Resize", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/vpnTunnels" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/resize" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.VpnTunnels.Delete", + "shortName": "SetInstanceTemplate", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.SetInstanceTemplate", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{vpn_tunnel}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/setInstanceTemplate" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.VpnTunnels.Get", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{vpn_tunnel}" - } - ] - }, - { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1.VpnTunnels.Insert", + "shortName": "SetTargetPools", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.SetTargetPools", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/setTargetPools" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.VpnTunnels.List", + "shortName": "UpdatePerInstanceConfigs", + "fullName": "google.cloud.compute.v1.RegionInstanceGroupManagers.UpdatePerInstanceConfigs", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/updatePerInstanceConfigs" } ] } ] }, { - "shortName": "ZoneOperations", - "fullName": "google.cloud.compute.v1.ZoneOperations", + "shortName": "RegionInstanceGroups", + "fullName": "google.cloud.compute.v1.RegionInstanceGroups", "methods": [ { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1.ZoneOperations.Delete", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionInstanceGroups.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/zones/{zone}/operations/{operation}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}" } ] }, { - "shortName": "Get", - "fullName": "google.cloud.compute.v1.ZoneOperations.Get", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionInstanceGroups.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/operations/{operation}" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroups" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1.ZoneOperations.List", + "shortName": "ListInstances", + "fullName": "google.cloud.compute.v1.RegionInstanceGroups.ListInstances", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}/operations" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}/listInstances" } ] }, { - "shortName": "Wait", - "fullName": "google.cloud.compute.v1.ZoneOperations.Wait", + "shortName": "SetNamedPorts", + "fullName": "google.cloud.compute.v1.RegionInstanceGroups.SetNamedPorts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/zones/{zone}/operations/{operation}/wait" + "path": "/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}/setNamedPorts" } ] } ] }, { - "shortName": "Zones", - "fullName": "google.cloud.compute.v1.Zones", + "shortName": "RegionInstances", + "fullName": "google.cloud.compute.v1.RegionInstances", + "methods": [ + { + "shortName": "BulkInsert", + "fullName": "google.cloud.compute.v1.RegionInstances.BulkInsert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instances/bulkInsert" + } + ] + } + ] + }, + { + "shortName": "RegionNetworkEndpointGroups", + "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups", "methods": [ + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}" + } + ] + }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1.Zones.Get", + "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones/{zone}" + "path": "/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}" + } + ] + }, + { + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups.Insert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups" } ] }, { "shortName": "List", - "fullName": "google.cloud.compute.v1.Zones.List", + "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/zones" + "path": "/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups" } ] } ] - } - ], - "configFile": "compute_v1.yaml" - }, - { - "id": "google.cloud.compute.v1small", - "directory": "google/cloud/compute/v1small", - "version": "v1small", - "majorVersion": "v1", - "hostName": "compute.googleapis.com", - "title": "Google Compute Engine API", - "description": "", - "importDirectories": [ - "google/api", - "google/cloud" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Compute.V1Small": 1 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/compute/v1small;compute": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.compute.v1small": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\Compute\\V1small": 1 - } }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::Compute::V1small": 1 - } - } - }, - "services": [ { - "shortName": "Addresses", - "fullName": "google.cloud.compute.v1small.Addresses", + "shortName": "RegionNetworkFirewallPolicies", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies", "methods": [ { - "shortName": "AggregatedList", - "fullName": "google.cloud.compute.v1small.Addresses.AggregatedList", + "shortName": "AddAssociation", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.AddAssociation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/aggregated/addresses" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/addAssociation" } ] }, { - "shortName": "Delete", - "fullName": "google.cloud.compute.v1small.Addresses.Delete", + "shortName": "AddRule", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.AddRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/compute/v1/projects/{project}/regions/{region}/addresses/{address}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/addRule" } ] }, { - "shortName": "Insert", - "fullName": "google.cloud.compute.v1small.Addresses.Insert", + "shortName": "CloneRules", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.CloneRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/compute/v1/projects/{project}/regions/{region}/addresses" + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/cloneRules" } ] }, { - "shortName": "List", - "fullName": "google.cloud.compute.v1small.Addresses.List", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/addresses" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}" } ] - } - ] - }, - { - "shortName": "RegionOperations", - "fullName": "google.cloud.compute.v1small.RegionOperations", - "methods": [ + }, { "shortName": "Get", - "fullName": "google.cloud.compute.v1small.RegionOperations.Get", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/compute/v1/projects/{project}/regions/{region}/operations/{operation}" + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}" } ] }, { - "shortName": "Wait", - "fullName": "google.cloud.compute.v1small.RegionOperations.Wait", + "shortName": "GetAssociation", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetAssociation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/compute/v1/projects/projects/{project}/regions/{region}/operations/{operation}/wait" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/getAssociation" } ] - } - ] - } - ], - "configFile": "compute_small_v1.yaml" - }, - { - "id": "google.cloud.contactcenterinsights.v1", - "directory": "google/cloud/contactcenterinsights/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "contactcenterinsights.googleapis.com", - "title": "Contact Center AI Insights API", - "description": "", - "importDirectories": [ - "google/api", - "google/cloud/contactcenterinsights/v1", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.ContactCenterInsights.V1": 2 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/contactcenterinsights/v1;contactcenterinsights": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.contactcenterinsights.v1": 2 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\ContactCenterInsights\\V1": 2 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::ContactCenterInsights::V1": 2 - } - } - }, - "services": [ - { - "shortName": "ContactCenterInsights", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights", - "methods": [ + }, { - "shortName": "CalculateIssueModelStats", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CalculateIssueModelStats", + "shortName": "GetEffectiveFirewalls", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetEffectiveFirewalls", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{issue_model=projects/*/locations/*/issueModels/*}:calculateIssueModelStats" + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls" } ] }, { - "shortName": "CalculateStats", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CalculateStats", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{location=projects/*/locations/*}/conversations:calculateStats" + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy" } ] }, { - "shortName": "CreateAnalysis", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreateAnalysis", + "shortName": "GetRule", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/conversations/*}/analyses" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/getRule" } ] }, { - "shortName": "CreateConversation", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreateConversation", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/conversations" + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies" } ] }, { - "shortName": "CreateIssueModel", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreateIssueModel", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/issueModels" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies" } ] }, { - "shortName": "CreatePhraseMatcher", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreatePhraseMatcher", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/phraseMatchers" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}" } ] }, { - "shortName": "CreateView", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreateView", + "shortName": "PatchRule", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.PatchRule", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/views" + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/patchRule" } ] }, { - "shortName": "DeleteAnalysis", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeleteAnalysis", + "shortName": "RemoveAssociation", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.RemoveAssociation", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/conversations/*/analyses/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/removeAssociation" } ] }, { - "shortName": "DeleteConversation", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeleteConversation", + "shortName": "RemoveRule", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.RemoveRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/conversations/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/removeRule" } ] }, { - "shortName": "DeleteIssueModel", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeleteIssueModel", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/issueModels/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy" } ] }, { - "shortName": "DeletePhraseMatcher", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeletePhraseMatcher", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.RegionNetworkFirewallPolicies.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/phraseMatchers/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions" } ] - }, + } + ] + }, + { + "shortName": "RegionNotificationEndpoints", + "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints", + "methods": [ { - "shortName": "DeleteView", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeleteView", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/views/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/notificationEndpoints/{notification_endpoint}" } ] }, { - "shortName": "DeployIssueModel", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeployIssueModel", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/issueModels/*}:deploy" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/notificationEndpoints/{notification_endpoint}" } ] }, { - "shortName": "ExportInsightsData", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ExportInsightsData", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/insightsdata:export" + "path": "/compute/v1/projects/{project}/regions/{region}/notificationEndpoints" } ] }, { - "shortName": "GetAnalysis", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetAnalysis", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionNotificationEndpoints.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/conversations/*/analyses/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/notificationEndpoints" } ] - }, + } + ] + }, + { + "shortName": "RegionOperations", + "fullName": "google.cloud.compute.v1.RegionOperations", + "methods": [ { - "shortName": "GetConversation", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetConversation", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionOperations.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/conversations/*}" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/operations/{operation}" } ] }, { - "shortName": "GetIssue", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetIssue", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionOperations.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/issueModels/*/issues/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/operations/{operation}" } ] }, { - "shortName": "GetIssueModel", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetIssueModel", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionOperations.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/issueModels/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/operations" } ] }, { - "shortName": "GetPhraseMatcher", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetPhraseMatcher", + "shortName": "Wait", + "fullName": "google.cloud.compute.v1.RegionOperations.Wait", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/phraseMatchers/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/operations/{operation}/wait" } ] - }, + } + ] + }, + { + "shortName": "RegionSecurityPolicies", + "fullName": "google.cloud.compute.v1.RegionSecurityPolicies", + "methods": [ { - "shortName": "GetSettings", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetSettings", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionSecurityPolicies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/settings}" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/securityPolicies/{security_policy}" } ] }, { - "shortName": "GetView", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetView", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionSecurityPolicies.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/views/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/securityPolicies/{security_policy}" } ] }, { - "shortName": "ListAnalyses", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListAnalyses", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionSecurityPolicies.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/conversations/*}/analyses" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/securityPolicies" } ] }, { - "shortName": "ListConversations", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListConversations", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionSecurityPolicies.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/conversations" + "path": "/compute/v1/projects/{project}/regions/{region}/securityPolicies" } ] }, { - "shortName": "ListIssueModels", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListIssueModels", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionSecurityPolicies.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/issueModels" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/securityPolicies/{security_policy}" } ] - }, + } + ] + }, + { + "shortName": "RegionSslCertificates", + "fullName": "google.cloud.compute.v1.RegionSslCertificates", + "methods": [ { - "shortName": "ListIssues", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListIssues", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionSslCertificates.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/issueModels/*}/issues" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/sslCertificates/{ssl_certificate}" } ] }, { - "shortName": "ListPhraseMatchers", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListPhraseMatchers", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionSslCertificates.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/phraseMatchers" + "path": "/compute/v1/projects/{project}/regions/{region}/sslCertificates/{ssl_certificate}" } ] }, { - "shortName": "ListViews", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListViews", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionSslCertificates.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/views" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/sslCertificates" } ] }, { - "shortName": "UndeployIssueModel", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UndeployIssueModel", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionSslCertificates.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/issueModels/*}:undeploy" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/sslCertificates" } ] - }, + } + ] + }, + { + "shortName": "RegionSslPolicies", + "fullName": "google.cloud.compute.v1.RegionSslPolicies", + "methods": [ { - "shortName": "UpdateConversation", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateConversation", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionSslPolicies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{conversation.name=projects/*/locations/*/conversations/*}" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}" } ] }, { - "shortName": "UpdateIssue", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateIssue", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionSslPolicies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{issue.name=projects/*/locations/*/issueModels/*/issues/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}" } ] }, { - "shortName": "UpdateIssueModel", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateIssueModel", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionSslPolicies.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{issue_model.name=projects/*/locations/*/issueModels/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/sslPolicies" } ] }, { - "shortName": "UpdatePhraseMatcher", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdatePhraseMatcher", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionSslPolicies.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{phrase_matcher.name=projects/*/locations/*/phraseMatchers/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/sslPolicies" } ] }, { - "shortName": "UpdateSettings", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateSettings", + "shortName": "ListAvailableFeatures", + "fullName": "google.cloud.compute.v1.RegionSslPolicies.ListAvailableFeatures", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{settings.name=projects/*/locations/*/settings}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures" } ] }, { - "shortName": "UpdateView", - "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateView", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionSslPolicies.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{view.name=projects/*/locations/*/views/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}" } ] } ] - } - ], - "configFile": "contactcenterinsights_v1.yaml" - }, - { - "id": "google.cloud.datacatalog.v1", - "directory": "google/cloud/datacatalog/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "datacatalog.googleapis.com", - "title": "Google Cloud Data Catalog API", - "description": "A fully managed and highly scalable data discovery and metadata management service.", - "importDirectories": [ - "google/api", - "google/cloud/datacatalog/v1", - "google/iam/v1", - "google/protobuf" - ], - "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 13 - } }, - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.DataCatalog.V1": 13 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/datacatalog/v1;datacatalog": 13 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 13 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.datacatalog.v1": 13 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DataCatalog\\V1": 13 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DataCatalog::V1": 13 - } - } - }, - "services": [ { - "shortName": "DataCatalog", - "fullName": "google.cloud.datacatalog.v1.DataCatalog", + "shortName": "RegionTargetHttpProxies", + "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies", "methods": [ { - "shortName": "CreateEntry", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateEntry", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}" } ] }, { - "shortName": "CreateEntryGroup", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateEntryGroup", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/entryGroups" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}" } ] }, { - "shortName": "CreateTag", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateTag", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" - }, + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.List", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/tags" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies" } ] }, { - "shortName": "CreateTagTemplate", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateTagTemplate", + "shortName": "SetUrlMap", + "fullName": "google.cloud.compute.v1.RegionTargetHttpProxies.SetUrlMap", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/tagTemplates" + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}/setUrlMap" + } + ] + } + ] + }, + { + "shortName": "RegionTargetHttpsProxies", + "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies", + "methods": [ + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}" } ] }, { - "shortName": "CreateTagTemplateField", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateTagTemplateField", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.Get", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}" + } + ] + }, + { + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/tagTemplates/*}/fields" + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies" } ] }, { - "shortName": "DeleteEntry", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteEntry", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies" } ] }, { - "shortName": "DeleteEntryGroup", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteEntryGroup", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/entryGroups/*}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}" } ] }, { - "shortName": "DeleteTag", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteTag", + "shortName": "SetSslCertificates", + "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.SetSslCertificates", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" - }, + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}/setSslCertificates" + } + ] + }, + { + "shortName": "SetUrlMap", + "fullName": "google.cloud.compute.v1.RegionTargetHttpsProxies.SetUrlMap", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}/setUrlMap" + } + ] + } + ] + }, + { + "shortName": "RegionTargetTcpProxies", + "fullName": "google.cloud.compute.v1.RegionTargetTcpProxies", + "methods": [ + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionTargetTcpProxies.Delete", + "mode": "UNARY", + "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/entryGroups/*/tags/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/targetTcpProxies/{target_tcp_proxy}" } ] }, { - "shortName": "DeleteTagTemplate", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteTagTemplate", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionTargetTcpProxies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/tagTemplates/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/targetTcpProxies/{target_tcp_proxy}" } ] }, { - "shortName": "DeleteTagTemplateField", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteTagTemplateField", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionTargetTcpProxies.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetTcpProxies" } ] }, { - "shortName": "GetEntry", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.GetEntry", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionTargetTcpProxies.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/targetTcpProxies" + } + ] + } + ] + }, + { + "shortName": "RegionUrlMaps", + "fullName": "google.cloud.compute.v1.RegionUrlMaps", + "methods": [ + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionUrlMaps.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}" } ] }, { - "shortName": "GetEntryGroup", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.GetEntryGroup", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionUrlMaps.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/entryGroups/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.GetIamPolicy", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionUrlMaps.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy" + "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps" } ] }, { - "shortName": "GetTagTemplate", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.GetTagTemplate", + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionUrlMaps.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/tagTemplates/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps" } ] }, { - "shortName": "ListEntries", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.ListEntries", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.RegionUrlMaps.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}" } ] }, { - "shortName": "ListEntryGroups", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.ListEntryGroups", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.RegionUrlMaps.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/entryGroups" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}" } ] }, { - "shortName": "ListTags", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.ListTags", + "shortName": "Validate", + "fullName": "google.cloud.compute.v1.RegionUrlMaps.Validate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" - }, + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/urlMaps/{url_map}/validate" + } + ] + } + ] + }, + { + "shortName": "Regions", + "fullName": "google.cloud.compute.v1.Regions", + "methods": [ + { + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Regions.Get", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/tags" + "path": "/compute/v1/projects/{project}/regions/{region}" } ] }, { - "shortName": "LookupEntry", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.LookupEntry", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Regions.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/entries:lookup" + "path": "/compute/v1/projects/{project}/regions" } ] - }, + } + ] + }, + { + "shortName": "Reservations", + "fullName": "google.cloud.compute.v1.Reservations", + "methods": [ { - "shortName": "RenameTagTemplateField", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateField", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.Reservations.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/reservations" } ] }, { - "shortName": "RenameTagTemplateFieldEnumValue", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateFieldEnumValue", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Reservations.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*/enumValues/*}:rename" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{reservation}" } ] }, { - "shortName": "SearchCatalog", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.SearchCatalog", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Reservations.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/catalog:search" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{reservation}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.SetIamPolicy", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.Reservations.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.TestIamPermissions", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Reservations.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions" + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations" } ] }, { - "shortName": "UpdateEntry", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateEntry", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Reservations.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations" } ] }, { - "shortName": "UpdateEntryGroup", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateEntryGroup", + "shortName": "Resize", + "fullName": "google.cloud.compute.v1.Reservations.Resize", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{reservation}/resize" } ] }, { - "shortName": "UpdateTag", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateTag", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.Reservations.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy" } ] }, { - "shortName": "UpdateTagTemplate", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateTagTemplate", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.Reservations.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{tag_template.name=projects/*/locations/*/tagTemplates/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions" } ] }, { - "shortName": "UpdateTagTemplateField", - "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateTagTemplateField", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.Reservations.Update", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" + "path": "/compute/v1/projects/{project}/zones/{zone}/reservations/{reservation}" } ] } ] }, { - "shortName": "PolicyTagManager", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager", + "shortName": "ResourcePolicies", + "fullName": "google.cloud.compute.v1.ResourcePolicies", "methods": [ { - "shortName": "CreatePolicyTag", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.CreatePolicyTag", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.ResourcePolicies.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/taxonomies/*}/policyTags" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/resourcePolicies" } ] }, { - "shortName": "CreateTaxonomy", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.CreateTaxonomy", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.ResourcePolicies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/taxonomies" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}" } ] }, { - "shortName": "DeletePolicyTag", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.DeletePolicyTag", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.ResourcePolicies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}" } ] }, { - "shortName": "DeleteTaxonomy", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.DeleteTaxonomy", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.ResourcePolicies.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/taxonomies/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.GetIamPolicy", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.ResourcePolicies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/taxonomies/*}:getIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:getIamPolicy" + "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies" } ] }, { - "shortName": "GetPolicyTag", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.GetPolicyTag", + "shortName": "List", + "fullName": "google.cloud.compute.v1.ResourcePolicies.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies" } ] }, { - "shortName": "GetTaxonomy", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.GetTaxonomy", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.ResourcePolicies.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/taxonomies/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy" } ] }, { - "shortName": "ListPolicyTags", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.ListPolicyTags", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.ResourcePolicies.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/taxonomies/*}/policyTags" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions" } ] - }, + } + ] + }, + { + "shortName": "Routers", + "fullName": "google.cloud.compute.v1.Routers", + "methods": [ { - "shortName": "ListTaxonomies", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.ListTaxonomies", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.Routers.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/taxonomies" + "path": "/compute/v1/projects/{project}/aggregated/routers" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.SetIamPolicy", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Routers.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/taxonomies/*}:setIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:setIamPolicy" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.TestIamPermissions", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Routers.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/taxonomies/*}:testIamPermissions" - }, + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}" + } + ] + }, + { + "shortName": "GetNatMappingInfo", + "fullName": "google.cloud.compute.v1.Routers.GetNatMappingInfo", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:testIamPermissions" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo" } ] }, { - "shortName": "UpdatePolicyTag", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.UpdatePolicyTag", + "shortName": "GetRouterStatus", + "fullName": "google.cloud.compute.v1.Routers.GetRouterStatus", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{policy_tag.name=projects/*/locations/*/taxonomies/*/policyTags/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRouterStatus" } ] }, { - "shortName": "UpdateTaxonomy", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.UpdateTaxonomy", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Routers.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{taxonomy.name=projects/*/locations/*/taxonomies/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/routers" } ] - } - ] - }, - { - "shortName": "PolicyTagManagerSerialization", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManagerSerialization", - "methods": [ + }, { - "shortName": "ExportTaxonomies", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManagerSerialization.ExportTaxonomies", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Routers.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/taxonomies:export" + "path": "/compute/v1/projects/{project}/regions/{region}/routers" } ] }, { - "shortName": "ImportTaxonomies", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManagerSerialization.ImportTaxonomies", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.Routers.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/taxonomies:import" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}" } ] }, { - "shortName": "ReplaceTaxonomy", - "fullName": "google.cloud.datacatalog.v1.PolicyTagManagerSerialization.ReplaceTaxonomy", + "shortName": "Preview", + "fullName": "google.cloud.compute.v1.Routers.Preview", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/taxonomies/*}:replace" + "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/preview" + } + ] + }, + { + "shortName": "Update", + "fullName": "google.cloud.compute.v1.Routers.Update", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/regions/{region}/routers/{router}" } ] } ] - } - ], - "configFile": "datacatalog_v1.yaml" - }, - { - "id": "google.cloud.datacatalog.v1beta1", - "directory": "google/cloud/datacatalog/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "datacatalog.googleapis.com", - "title": "Google Cloud Data Catalog API", - "description": "A fully managed and highly scalable data discovery and metadata management service.", - "importDirectories": [ - "google/api", - "google/cloud/datacatalog/v1beta1", - "google/iam/v1", - "google/protobuf" - ], - "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 10 - } - }, - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.DataCatalog.V1Beta1": 10 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog": 10 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 10 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.datacatalog.v1beta1": 10 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DataCatalog\\V1beta1": 10 - } }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DataCatalog::V1beta1": 10 - } - } - }, - "services": [ { - "shortName": "DataCatalog", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog", + "shortName": "Routes", + "fullName": "google.cloud.compute.v1.Routes", "methods": [ { - "shortName": "CreateEntry", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Routes.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/routes/{route}" } ] }, { - "shortName": "CreateEntryGroup", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntryGroup", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Routes.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/entryGroups" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/routes/{route}" } ] }, { - "shortName": "CreateTag", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateTag", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Routes.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" - }, - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags" + "path": "/compute/v1/projects/{project}/global/routes" } ] }, { - "shortName": "CreateTagTemplate", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplate", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Routes.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/tagTemplates" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/routes" } ] - }, + } + ] + }, + { + "shortName": "SecurityPolicies", + "fullName": "google.cloud.compute.v1.SecurityPolicies", + "methods": [ { - "shortName": "CreateTagTemplateField", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplateField", + "shortName": "AddRule", + "fullName": "google.cloud.compute.v1.SecurityPolicies.AddRule", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/tagTemplates/*}/fields" + "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/addRule" } ] }, { - "shortName": "DeleteEntry", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntry", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.SecurityPolicies.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/securityPolicies" } ] }, { - "shortName": "DeleteEntryGroup", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntryGroup", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.SecurityPolicies.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*}" + "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}" } ] }, { - "shortName": "DeleteTag", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTag", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.SecurityPolicies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*/tags/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}" } ] }, { - "shortName": "DeleteTagTemplate", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplate", + "shortName": "GetRule", + "fullName": "google.cloud.compute.v1.SecurityPolicies.GetRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/getRule" } ] }, { - "shortName": "DeleteTagTemplateField", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplateField", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.SecurityPolicies.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/securityPolicies" } ] }, { - "shortName": "GetEntry", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.GetEntry", + "shortName": "List", + "fullName": "google.cloud.compute.v1.SecurityPolicies.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}" + "path": "/compute/v1/projects/{project}/global/securityPolicies" } ] }, { - "shortName": "GetEntryGroup", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.GetEntryGroup", + "shortName": "ListPreconfiguredExpressionSets", + "fullName": "google.cloud.compute.v1.SecurityPolicies.ListPreconfiguredExpressionSets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*}" + "path": "/compute/v1/projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.GetIamPolicy", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.SecurityPolicies.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy" - }, + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}" + } + ] + }, + { + "shortName": "PatchRule", + "fullName": "google.cloud.compute.v1.SecurityPolicies.PatchRule", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy" - }, + "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/patchRule" + } + ] + }, + { + "shortName": "RemoveRule", + "fullName": "google.cloud.compute.v1.SecurityPolicies.RemoveRule", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy" + "path": "/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/removeRule" } ] }, { - "shortName": "GetTagTemplate", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.GetTagTemplate", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.SecurityPolicies.SetLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/securityPolicies/{resource}/setLabels" } ] - }, + } + ] + }, + { + "shortName": "ServiceAttachments", + "fullName": "google.cloud.compute.v1.ServiceAttachments", + "methods": [ { - "shortName": "ListEntries", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.ListEntries", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.ServiceAttachments.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries" + "path": "/compute/v1/projects/{project}/aggregated/serviceAttachments" } ] }, { - "shortName": "ListEntryGroups", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.ListEntryGroups", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.ServiceAttachments.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/entryGroups" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" } ] }, { - "shortName": "ListTags", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.ListTags", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.ServiceAttachments.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" - }, - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags" + "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" } ] }, { - "shortName": "LookupEntry", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.LookupEntry", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.ServiceAttachments.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/entries:lookup" + "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy" } ] }, { - "shortName": "RenameTagTemplateField", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.RenameTagTemplateField", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.ServiceAttachments.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename" + "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments" } ] }, { - "shortName": "SearchCatalog", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog", + "shortName": "List", + "fullName": "google.cloud.compute.v1.ServiceAttachments.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/catalog:search" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.SetIamPolicy", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.ServiceAttachments.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy" - }, + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.ServiceAttachments.SetIamPolicy", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy" + "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy" } ] }, { "shortName": "TestIamPermissions", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.TestIamPermissions", + "fullName": "google.cloud.compute.v1.ServiceAttachments.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions" - }, - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions" - }, + "path": "/compute/v1/projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions" + } + ] + } + ] + }, + { + "shortName": "Snapshots", + "fullName": "google.cloud.compute.v1.Snapshots", + "methods": [ + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Snapshots.Delete", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/snapshots/{snapshot}" } ] }, { - "shortName": "UpdateEntry", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntry", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Snapshots.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/snapshots/{snapshot}" } ] }, { - "shortName": "UpdateEntryGroup", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntryGroup", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.Snapshots.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{entry_group.name=projects/*/locations/*/entryGroups/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/snapshots/{resource}/getIamPolicy" } ] }, { - "shortName": "UpdateTag", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTag", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Snapshots.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/snapshots" } ] }, { - "shortName": "UpdateTagTemplate", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplate", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Snapshots.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{tag_template.name=projects/*/locations/*/tagTemplates/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/snapshots" } ] }, { - "shortName": "UpdateTagTemplateField", - "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplateField", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.Snapshots.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/snapshots/{resource}/setIamPolicy" } ] - } - ] - }, - { - "shortName": "PolicyTagManager", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager", - "methods": [ + }, { - "shortName": "CreatePolicyTag", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.CreatePolicyTag", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.Snapshots.SetLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/taxonomies/*}/policyTags" + "path": "/compute/v1/projects/{project}/global/snapshots/{resource}/setLabels" } ] }, { - "shortName": "CreateTaxonomy", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.CreateTaxonomy", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.Snapshots.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/taxonomies" + "path": "/compute/v1/projects/{project}/global/snapshots/{resource}/testIamPermissions" } ] - }, + } + ] + }, + { + "shortName": "SslCertificates", + "fullName": "google.cloud.compute.v1.SslCertificates", + "methods": [ { - "shortName": "DeletePolicyTag", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.DeletePolicyTag", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.SslCertificates.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/sslCertificates" } ] }, { - "shortName": "DeleteTaxonomy", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.DeleteTaxonomy", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.SslCertificates.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/taxonomies/*}" + "path": "/compute/v1/projects/{project}/global/sslCertificates/{ssl_certificate}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.GetIamPolicy", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.SslCertificates.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*}:getIamPolicy" - }, + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/sslCertificates/{ssl_certificate}" + } + ] + }, + { + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.SslCertificates.Insert", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:getIamPolicy" + "path": "/compute/v1/projects/{project}/global/sslCertificates" } ] }, { - "shortName": "GetPolicyTag", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.GetPolicyTag", + "shortName": "List", + "fullName": "google.cloud.compute.v1.SslCertificates.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}" + "path": "/compute/v1/projects/{project}/global/sslCertificates" } ] - }, + } + ] + }, + { + "shortName": "SslPolicies", + "fullName": "google.cloud.compute.v1.SslPolicies", + "methods": [ { - "shortName": "GetTaxonomy", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.GetTaxonomy", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.SslPolicies.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/taxonomies/*}" + "path": "/compute/v1/projects/{project}/aggregated/sslPolicies" } ] }, { - "shortName": "ListPolicyTags", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.ListPolicyTags", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.SslPolicies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/taxonomies/*}/policyTags" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}" } ] }, { - "shortName": "ListTaxonomies", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.ListTaxonomies", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.SslPolicies.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/taxonomies" + "path": "/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.SetIamPolicy", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.SslPolicies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*}:setIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:setIamPolicy" + "path": "/compute/v1/projects/{project}/global/sslPolicies" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.TestIamPermissions", + "shortName": "List", + "fullName": "google.cloud.compute.v1.SslPolicies.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*}:testIamPermissions" - }, - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:testIamPermissions" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/sslPolicies" } ] }, { - "shortName": "UpdatePolicyTag", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.UpdatePolicyTag", + "shortName": "ListAvailableFeatures", + "fullName": "google.cloud.compute.v1.SslPolicies.ListAvailableFeatures", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{policy_tag.name=projects/*/locations/*/taxonomies/*/policyTags/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/sslPolicies/listAvailableFeatures" } ] }, { - "shortName": "UpdateTaxonomy", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.UpdateTaxonomy", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.SslPolicies.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{taxonomy.name=projects/*/locations/*/taxonomies/*}" + "path": "/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}" } ] } ] }, { - "shortName": "PolicyTagManagerSerialization", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization", + "shortName": "Subnetworks", + "fullName": "google.cloud.compute.v1.Subnetworks", "methods": [ { - "shortName": "ExportTaxonomies", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization.ExportTaxonomies", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.Subnetworks.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/taxonomies:export" + "path": "/compute/v1/projects/{project}/aggregated/subnetworks" } ] }, { - "shortName": "ImportTaxonomies", - "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization.ImportTaxonomies", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.Subnetworks.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}" + } + ] + }, + { + "shortName": "ExpandIpCidrRange", + "fullName": "google.cloud.compute.v1.Subnetworks.ExpandIpCidrRange", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/taxonomies:import" + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange" } ] - } - ] - } - ], - "configFile": "datacatalog_v1beta1.yaml" - }, - { - "id": "google.cloud.datafusion.v1", - "directory": "google/cloud/datafusion/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "datafusion.googleapis.com", - "title": "Cloud Data Fusion API", - "description": "Cloud Data Fusion is a fully-managed, cloud native, enterprise data integration service for quickly building and managing data pipelines. It provides a graphical interface to increase time efficiency and reduce complexity, and allows business users, developers, and data scientists to easily and reliably build scalable data integration solutions to cleanse, prepare, blend, transfer and transform data without having to wrestle with infrastructure.", - "importDirectories": [ - "google/api", - "google/longrunning", - "google/protobuf" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.DataFusion.V1": 1 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/datafusion/v1;datafusion": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.datafusion.v1": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DataFusion\\V1": 1 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DataFusion::V1": 1 - } - } - }, - "services": [ - { - "shortName": "DataFusion", - "fullName": "google.cloud.datafusion.v1.DataFusion", - "methods": [ + }, { - "shortName": "CreateInstance", - "fullName": "google.cloud.datafusion.v1.DataFusion.CreateInstance", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Subnetworks.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/instances" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}" } ] }, { - "shortName": "DeleteInstance", - "fullName": "google.cloud.datafusion.v1.DataFusion.DeleteInstance", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.Subnetworks.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/instances/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy" } ] }, { - "shortName": "GetInstance", - "fullName": "google.cloud.datafusion.v1.DataFusion.GetInstance", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.Subnetworks.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/instances/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks" } ] }, { - "shortName": "ListAvailableVersions", - "fullName": "google.cloud.datafusion.v1.DataFusion.ListAvailableVersions", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Subnetworks.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/versions" + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks" } ] }, { - "shortName": "ListInstances", - "fullName": "google.cloud.datafusion.v1.DataFusion.ListInstances", + "shortName": "ListUsable", + "fullName": "google.cloud.compute.v1.Subnetworks.ListUsable", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/instances" + "path": "/compute/v1/projects/{project}/aggregated/subnetworks/listUsable" } ] }, { - "shortName": "RestartInstance", - "fullName": "google.cloud.datafusion.v1.DataFusion.RestartInstance", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.Subnetworks.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/instances/*}:restart" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}" } ] }, { - "shortName": "UpdateInstance", - "fullName": "google.cloud.datafusion.v1.DataFusion.UpdateInstance", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.Subnetworks.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{instance.name=projects/*/locations/*/instances/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy" } ] - } - ] - } - ], - "configFile": "datafusion_v1.yaml" - }, - { - "id": "google.cloud.datafusion.v1beta1", - "directory": "google/cloud/datafusion/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "datafusion.googleapis.com", - "title": "Cloud Data Fusion API", - "description": "Cloud Data Fusion is a fully-managed, cloud native, enterprise data integration service for quickly building and managing data pipelines. It provides a graphical interface to increase time efficiency and reduce complexity, and allows business users, developers, and data scientists to easily and reliably build scalable data integration solutions to cleanse, prepare, blend, transfer and transform data without having to wrestle with infrastructure.", - "importDirectories": [ - "google/api", - "google/iam/v1", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.DataFusion.V1Beta1": 1 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/datafusion/v1beta1;datafusion": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.datafusion.v1beta1": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DataFusion\\V1beta1": 1 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DataFusion::V1beta1": 1 - } - } - }, - "services": [ - { - "shortName": "DataFusion", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion", - "methods": [ + }, { - "shortName": "AddDnsPeering", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.AddDnsPeering", + "shortName": "SetPrivateIpGoogleAccess", + "fullName": "google.cloud.compute.v1.Subnetworks.SetPrivateIpGoogleAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:add" + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess" } ] }, { - "shortName": "CreateInstance", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.CreateInstance", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.Subnetworks.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/instances" + "path": "/compute/v1/projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions" } ] - }, + } + ] + }, + { + "shortName": "TargetGrpcProxies", + "fullName": "google.cloud.compute.v1.TargetGrpcProxies", + "methods": [ { - "shortName": "DeleteInstance", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.DeleteInstance", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.TargetGrpcProxies.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/instances/*}" + "path": "/compute/v1/projects/{project}/global/targetGrpcProxies/{target_grpc_proxy}" } ] }, { - "shortName": "GetInstance", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.GetInstance", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.TargetGrpcProxies.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/instances/*}" + "path": "/compute/v1/projects/{project}/global/targetGrpcProxies/{target_grpc_proxy}" } ] }, { - "shortName": "ListAvailableVersions", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.ListAvailableVersions", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.TargetGrpcProxies.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/versions" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/targetGrpcProxies" } ] }, { - "shortName": "ListDnsPeerings", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.ListDnsPeerings", + "shortName": "List", + "fullName": "google.cloud.compute.v1.TargetGrpcProxies.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:list" + "path": "/compute/v1/projects/{project}/global/targetGrpcProxies" } ] }, { - "shortName": "ListInstances", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.ListInstances", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.TargetGrpcProxies.Patch", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/targetGrpcProxies/{target_grpc_proxy}" + } + ] + } + ] + }, + { + "shortName": "TargetHttpProxies", + "fullName": "google.cloud.compute.v1.TargetHttpProxies", + "methods": [ + { + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.TargetHttpProxies.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/instances" + "path": "/compute/v1/projects/{project}/aggregated/targetHttpProxies" } ] }, { - "shortName": "ListNamespaces", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.ListNamespaces", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.TargetHttpProxies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/instances/*}/namespaces" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/targetHttpProxies/{target_http_proxy}" } ] }, { - "shortName": "RemoveDnsPeering", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.RemoveDnsPeering", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.TargetHttpProxies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:remove" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/targetHttpProxies/{target_http_proxy}" } ] }, { - "shortName": "RemoveIamPolicy", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.RemoveIamPolicy", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.TargetHttpProxies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/**}:removeIamPolicy" + "path": "/compute/v1/projects/{project}/global/targetHttpProxies" } ] }, { - "shortName": "RestartInstance", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.RestartInstance", + "shortName": "List", + "fullName": "google.cloud.compute.v1.TargetHttpProxies.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/instances/*}:restart" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/targetHttpProxies" } ] }, { - "shortName": "UpdateInstance", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.UpdateInstance", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.TargetHttpProxies.Patch", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{instance.name=projects/*/locations/*/instances/*}" + "path": "/compute/v1/projects/{project}/global/targetHttpProxies/{target_http_proxy}" } ] }, { - "shortName": "UpgradeInstance", - "fullName": "google.cloud.datafusion.v1beta1.DataFusion.UpgradeInstance", + "shortName": "SetUrlMap", + "fullName": "google.cloud.compute.v1.TargetHttpProxies.SetUrlMap", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/instances/*}:upgrade" + "path": "/compute/v1/projects/{project}/targetHttpProxies/{target_http_proxy}/setUrlMap" } ] } ] - } - ], - "configFile": "datafusion_v1beta1.yaml" - }, - { - "id": "google.cloud.datalabeling.v1beta1", - "directory": "google/cloud/datalabeling/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "datalabeling.googleapis.com", - "title": "Data Labeling API", - "description": "Public API for Google Cloud AI Data Labeling Service.", - "importDirectories": [ - "google/api", - "google/cloud/datalabeling/v1beta1", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.DataLabeling.V1Beta1": 10 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling": 10 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 10 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.datalabeling.v1beta1": 10 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DataLabeling\\V1beta1": 10 - } }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DataLabeling::V1beta1": 10 - } - } - }, - "services": [ { - "shortName": "DataLabelingService", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService", + "shortName": "TargetHttpsProxies", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies", "methods": [ { - "shortName": "CreateAnnotationSpecSet", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.CreateAnnotationSpecSet", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*}/annotationSpecSets" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/targetHttpsProxies" } ] }, { - "shortName": "CreateDataset", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.CreateDataset", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*}/datasets" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}" } ] }, { - "shortName": "CreateEvaluationJob", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.CreateEvaluationJob", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*}/evaluationJobs" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}" } ] }, { - "shortName": "CreateInstruction", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.CreateInstruction", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*}/instructions" + "path": "/compute/v1/projects/{project}/global/targetHttpsProxies" } ] }, { - "shortName": "DeleteAnnotatedDataset", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteAnnotatedDataset", + "shortName": "List", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/targetHttpsProxies" } ] }, { - "shortName": "DeleteAnnotationSpecSet", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteAnnotationSpecSet", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/annotationSpecSets/*}" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}" } ] }, { - "shortName": "DeleteDataset", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteDataset", + "shortName": "SetCertificateMap", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetCertificateMap", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/datasets/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}/setCertificateMap" } ] }, { - "shortName": "DeleteEvaluationJob", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteEvaluationJob", + "shortName": "SetQuicOverride", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetQuicOverride", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/evaluationJobs/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}/setQuicOverride" } ] }, { - "shortName": "DeleteInstruction", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteInstruction", + "shortName": "SetSslCertificates", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetSslCertificates", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/instructions/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/targetHttpsProxies/{target_https_proxy}/setSslCertificates" } ] }, { - "shortName": "ExportData", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ExportData", + "shortName": "SetSslPolicy", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetSslPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/datasets/*}:exportData" + "path": "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}/setSslPolicy" } ] }, { - "shortName": "GetAnnotatedDataset", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetAnnotatedDataset", + "shortName": "SetUrlMap", + "fullName": "google.cloud.compute.v1.TargetHttpsProxies.SetUrlMap", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/targetHttpsProxies/{target_https_proxy}/setUrlMap" } ] - }, + } + ] + }, + { + "shortName": "TargetInstances", + "fullName": "google.cloud.compute.v1.TargetInstances", + "methods": [ { - "shortName": "GetAnnotationSpecSet", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetAnnotationSpecSet", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.TargetInstances.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/annotationSpecSets/*}" + "path": "/compute/v1/projects/{project}/aggregated/targetInstances" } ] }, { - "shortName": "GetDataItem", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetDataItem", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.TargetInstances.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/datasets/*/dataItems/*}" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/targetInstances/{target_instance}" } ] }, { - "shortName": "GetDataset", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetDataset", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.TargetInstances.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/datasets/*}" + "path": "/compute/v1/projects/{project}/zones/{zone}/targetInstances/{target_instance}" } ] }, { - "shortName": "GetEvaluation", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetEvaluation", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.TargetInstances.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/datasets/*/evaluations/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/targetInstances" } ] }, { - "shortName": "GetEvaluationJob", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetEvaluationJob", + "shortName": "List", + "fullName": "google.cloud.compute.v1.TargetInstances.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/evaluationJobs/*}" + "path": "/compute/v1/projects/{project}/zones/{zone}/targetInstances" } ] - }, + } + ] + }, + { + "shortName": "TargetPools", + "fullName": "google.cloud.compute.v1.TargetPools", + "methods": [ { - "shortName": "GetExample", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetExample", + "shortName": "AddHealthCheck", + "fullName": "google.cloud.compute.v1.TargetPools.AddHealthCheck", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*/examples/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/addHealthCheck" } ] }, { - "shortName": "GetInstruction", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetInstruction", + "shortName": "AddInstance", + "fullName": "google.cloud.compute.v1.TargetPools.AddInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/instructions/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/addInstance" } ] }, { - "shortName": "ImportData", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ImportData", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.TargetPools.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/datasets/*}:importData" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/targetPools" } ] }, { - "shortName": "LabelImage", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.LabelImage", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.TargetPools.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/datasets/*}/image:label" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}" } ] }, { - "shortName": "LabelText", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.LabelText", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.TargetPools.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/datasets/*}/text:label" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}" } ] }, { - "shortName": "LabelVideo", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.LabelVideo", + "shortName": "GetHealth", + "fullName": "google.cloud.compute.v1.TargetPools.GetHealth", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/datasets/*}/video:label" + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/getHealth" } ] }, { - "shortName": "ListAnnotatedDatasets", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListAnnotatedDatasets", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.TargetPools.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/datasets/*}/annotatedDatasets" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools" } ] }, { - "shortName": "ListAnnotationSpecSets", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListAnnotationSpecSets", + "shortName": "List", + "fullName": "google.cloud.compute.v1.TargetPools.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*}/annotationSpecSets" + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools" } ] }, { - "shortName": "ListDataItems", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListDataItems", + "shortName": "RemoveHealthCheck", + "fullName": "google.cloud.compute.v1.TargetPools.RemoveHealthCheck", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/datasets/*}/dataItems" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/removeHealthCheck" } ] }, { - "shortName": "ListDatasets", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListDatasets", + "shortName": "RemoveInstance", + "fullName": "google.cloud.compute.v1.TargetPools.RemoveInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*}/datasets" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/removeInstance" } ] }, { - "shortName": "ListEvaluationJobs", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListEvaluationJobs", + "shortName": "SetBackup", + "fullName": "google.cloud.compute.v1.TargetPools.SetBackup", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*}/evaluationJobs" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetPools/{target_pool}/setBackup" + } + ] + } + ] + }, + { + "shortName": "TargetSslProxies", + "fullName": "google.cloud.compute.v1.TargetSslProxies", + "methods": [ + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.TargetSslProxies.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}" } ] }, { - "shortName": "ListExamples", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListExamples", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.TargetSslProxies.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/datasets/*/annotatedDatasets/*}/examples" + "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}" } ] }, { - "shortName": "ListInstructions", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListInstructions", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.TargetSslProxies.Insert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/targetSslProxies" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.TargetSslProxies.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*}/instructions" + "path": "/compute/v1/projects/{project}/global/targetSslProxies" } ] }, { - "shortName": "PauseEvaluationJob", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.PauseEvaluationJob", + "shortName": "SetBackendService", + "fullName": "google.cloud.compute.v1.TargetSslProxies.SetBackendService", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/evaluationJobs/*}:pause" + "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setBackendService" } ] }, { - "shortName": "ResumeEvaluationJob", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ResumeEvaluationJob", + "shortName": "SetCertificateMap", + "fullName": "google.cloud.compute.v1.TargetSslProxies.SetCertificateMap", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/evaluationJobs/*}:resume" + "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setCertificateMap" } ] }, { - "shortName": "SearchEvaluations", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.SearchEvaluations", + "shortName": "SetProxyHeader", + "fullName": "google.cloud.compute.v1.TargetSslProxies.SetProxyHeader", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*}/evaluations:search" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setProxyHeader" } ] }, { - "shortName": "SearchExampleComparisons", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.SearchExampleComparisons", + "shortName": "SetSslCertificates", + "fullName": "google.cloud.compute.v1.TargetSslProxies.SetSslCertificates", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search" + "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setSslCertificates" } ] }, { - "shortName": "UpdateEvaluationJob", - "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.UpdateEvaluationJob", + "shortName": "SetSslPolicy", + "fullName": "google.cloud.compute.v1.TargetSslProxies.SetSslPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setSslPolicy" } ] } ] - } - ], - "configFile": "datalabeling_v1beta1.yaml" - }, - { - "id": "google.cloud.dataplex.v1", - "directory": "google/cloud/dataplex/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "dataplex.googleapis.com", - "title": "Cloud Dataplex API", - "description": "Dataplex API is used to manage the lifecycle of data lakes.", - "importDirectories": [ - "google/api", - "google/cloud/dataplex/v1", - "google/longrunning", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/dataplex/v1;dataplex": 5 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 5 - } }, - "java_package": { - "valueCounts": { - "com.google.cloud.dataplex.v1": 5 - } - } - }, - "services": [ { - "shortName": "DataplexService", - "fullName": "google.cloud.dataplex.v1.DataplexService", + "shortName": "TargetTcpProxies", + "fullName": "google.cloud.compute.v1.TargetTcpProxies", "methods": [ { - "shortName": "CancelJob", - "fullName": "google.cloud.dataplex.v1.DataplexService.CancelJob", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.TargetTcpProxies.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}:cancel" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}" } ] }, { - "shortName": "CreateAsset", - "fullName": "google.cloud.dataplex.v1.DataplexService.CreateAsset", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.TargetTcpProxies.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}" } ] }, { - "shortName": "CreateLake", - "fullName": "google.cloud.dataplex.v1.DataplexService.CreateLake", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.TargetTcpProxies.Insert", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/lakes" + "path": "/compute/v1/projects/{project}/global/targetTcpProxies" } ] }, { - "shortName": "CreateTask", - "fullName": "google.cloud.dataplex.v1.DataplexService.CreateTask", + "shortName": "List", + "fullName": "google.cloud.compute.v1.TargetTcpProxies.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/lakes/*}/tasks" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/global/targetTcpProxies" } ] }, { - "shortName": "CreateZone", - "fullName": "google.cloud.dataplex.v1.DataplexService.CreateZone", + "shortName": "SetBackendService", + "fullName": "google.cloud.compute.v1.TargetTcpProxies.SetBackendService", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/lakes/*}/zones" + "path": "/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}/setBackendService" } ] }, { - "shortName": "DeleteAsset", - "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteAsset", + "shortName": "SetProxyHeader", + "fullName": "google.cloud.compute.v1.TargetTcpProxies.SetProxyHeader", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}/setProxyHeader" } ] - }, + } + ] + }, + { + "shortName": "TargetVpnGateways", + "fullName": "google.cloud.compute.v1.TargetVpnGateways", + "methods": [ { - "shortName": "DeleteLake", - "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteLake", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.TargetVpnGateways.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/lakes/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/targetVpnGateways" } ] }, { - "shortName": "DeleteTask", - "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteTask", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.TargetVpnGateways.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/lakes/*/tasks/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{target_vpn_gateway}" } ] }, { - "shortName": "DeleteZone", - "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteZone", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.TargetVpnGateways.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{target_vpn_gateway}" } ] }, { - "shortName": "GetAsset", - "fullName": "google.cloud.dataplex.v1.DataplexService.GetAsset", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.TargetVpnGateways.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways" } ] }, { - "shortName": "GetJob", - "fullName": "google.cloud.dataplex.v1.DataplexService.GetJob", + "shortName": "List", + "fullName": "google.cloud.compute.v1.TargetVpnGateways.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways" } ] }, { - "shortName": "GetLake", - "fullName": "google.cloud.dataplex.v1.DataplexService.GetLake", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.TargetVpnGateways.SetLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/lakes/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels" } ] - }, + } + ] + }, + { + "shortName": "UrlMaps", + "fullName": "google.cloud.compute.v1.UrlMaps", + "methods": [ { - "shortName": "GetTask", - "fullName": "google.cloud.dataplex.v1.DataplexService.GetTask", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.UrlMaps.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/lakes/*/tasks/*}" + "path": "/compute/v1/projects/{project}/aggregated/urlMaps" } ] }, { - "shortName": "GetZone", - "fullName": "google.cloud.dataplex.v1.DataplexService.GetZone", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.UrlMaps.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*}" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}" } ] }, { - "shortName": "ListAssetActions", - "fullName": "google.cloud.dataplex.v1.DataplexService.ListAssetActions", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.UrlMaps.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/assets/*}/actions" + "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}" } ] }, { - "shortName": "ListAssets", - "fullName": "google.cloud.dataplex.v1.DataplexService.ListAssets", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.UrlMaps.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/urlMaps" } ] }, { - "shortName": "ListJobs", - "fullName": "google.cloud.dataplex.v1.DataplexService.ListJobs", + "shortName": "InvalidateCache", + "fullName": "google.cloud.compute.v1.UrlMaps.InvalidateCache", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*/tasks/*}/jobs" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}/invalidateCache" } ] }, { - "shortName": "ListLakeActions", - "fullName": "google.cloud.dataplex.v1.DataplexService.ListLakeActions", + "shortName": "List", + "fullName": "google.cloud.compute.v1.UrlMaps.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*}/actions" + "path": "/compute/v1/projects/{project}/global/urlMaps" } ] }, { - "shortName": "ListLakes", - "fullName": "google.cloud.dataplex.v1.DataplexService.ListLakes", + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.UrlMaps.Patch", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/lakes" + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}" } ] }, { - "shortName": "ListTasks", - "fullName": "google.cloud.dataplex.v1.DataplexService.ListTasks", + "shortName": "Update", + "fullName": "google.cloud.compute.v1.UrlMaps.Update", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*}/tasks" + "httpMethod": "PUT", + "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}" } ] }, { - "shortName": "ListZoneActions", - "fullName": "google.cloud.dataplex.v1.DataplexService.ListZoneActions", + "shortName": "Validate", + "fullName": "google.cloud.compute.v1.UrlMaps.Validate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/actions" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/global/urlMaps/{url_map}/validate" } ] - }, + } + ] + }, + { + "shortName": "VpnGateways", + "fullName": "google.cloud.compute.v1.VpnGateways", + "methods": [ { - "shortName": "ListZones", - "fullName": "google.cloud.dataplex.v1.DataplexService.ListZones", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.VpnGateways.AggregatedList", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*}/zones" + "path": "/compute/v1/projects/{project}/aggregated/vpnGateways" } ] }, { - "shortName": "UpdateAsset", - "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateAsset", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.VpnGateways.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{asset.name=projects/*/locations/*/lakes/*/zones/*/assets/*}" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}" } ] }, { - "shortName": "UpdateLake", - "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateLake", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.VpnGateways.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{lake.name=projects/*/locations/*/lakes/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}" } ] }, { - "shortName": "UpdateTask", - "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateTask", + "shortName": "GetStatus", + "fullName": "google.cloud.compute.v1.VpnGateways.GetStatus", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{task.name=projects/*/locations/*/lakes/*/tasks/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}/getStatus" } ] }, { - "shortName": "UpdateZone", - "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateZone", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1/{zone.name=projects/*/locations/*/lakes/*/zones/*}" - } - ] - } - ] - }, - { - "shortName": "MetadataService", - "fullName": "google.cloud.dataplex.v1.MetadataService", - "methods": [ - { - "shortName": "GetEntity", - "fullName": "google.cloud.dataplex.v1.MetadataService.GetEntity", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.VpnGateways.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways" } ] }, { - "shortName": "GetPartition", - "fullName": "google.cloud.dataplex.v1.MetadataService.GetPartition", + "shortName": "List", + "fullName": "google.cloud.compute.v1.VpnGateways.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*/partitions/**}" + "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways" } ] }, { - "shortName": "ListEntities", - "fullName": "google.cloud.dataplex.v1.MetadataService.ListEntities", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.VpnGateways.SetLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/entities" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels" } ] }, { - "shortName": "ListPartitions", - "fullName": "google.cloud.dataplex.v1.MetadataService.ListPartitions", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.VpnGateways.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/entities/*}/partitions" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions" } ] } ] - } - ], - "configFile": "dataplex_v1.yaml" - }, - { - "id": "google.cloud.dataproc.v1", - "directory": "google/cloud/dataproc/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "dataproc.googleapis.com", - "title": "Cloud Dataproc API", - "description": "Manages Hadoop-based clusters and jobs on Google Cloud Platform.", - "importDirectories": [ - "google/api", - "google/cloud/dataproc/v1", - "google/longrunning", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/dataproc/v1;dataproc": 7 - } }, - "java_multiple_files": { - "valueCounts": { - "true": 7 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.dataproc.v1": 7 - } - } - }, - "services": [ { - "shortName": "AutoscalingPolicyService", - "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService", + "shortName": "VpnTunnels", + "fullName": "google.cloud.compute.v1.VpnTunnels", "methods": [ { - "shortName": "CreateAutoscalingPolicy", - "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.CreateAutoscalingPolicy", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.VpnTunnels.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/autoscalingPolicies" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/regions/*}/autoscalingPolicies" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/vpnTunnels" } ] }, { - "shortName": "DeleteAutoscalingPolicy", - "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.DeleteAutoscalingPolicy", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.VpnTunnels.Delete", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/autoscalingPolicies/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/regions/*/autoscalingPolicies/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{vpn_tunnel}" } ] }, { - "shortName": "GetAutoscalingPolicy", - "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.GetAutoscalingPolicy", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.VpnTunnels.Get", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/autoscalingPolicies/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/regions/*/autoscalingPolicies/*}" + "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{vpn_tunnel}" } ] }, { - "shortName": "ListAutoscalingPolicies", - "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.ListAutoscalingPolicies", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.VpnTunnels.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/autoscalingPolicies" - }, + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.VpnTunnels.List", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/regions/*}/autoscalingPolicies" + "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels" } ] }, { - "shortName": "UpdateAutoscalingPolicy", - "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.UpdateAutoscalingPolicy", + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.VpnTunnels.SetLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v1/{policy.name=projects/*/locations/*/autoscalingPolicies/*}" - }, - { - "httpMethod": "PUT", - "path": "/v1/{policy.name=projects/*/regions/*/autoscalingPolicies/*}" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels" } ] } ] }, { - "shortName": "BatchController", - "fullName": "google.cloud.dataproc.v1.BatchController", + "shortName": "ZoneOperations", + "fullName": "google.cloud.compute.v1.ZoneOperations", "methods": [ { - "shortName": "CreateBatch", - "fullName": "google.cloud.dataproc.v1.BatchController.CreateBatch", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.ZoneOperations.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/batches" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/operations/{operation}" } ] }, { - "shortName": "DeleteBatch", - "fullName": "google.cloud.dataproc.v1.BatchController.DeleteBatch", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.ZoneOperations.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/batches/*}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/operations/{operation}" } ] }, { - "shortName": "GetBatch", - "fullName": "google.cloud.dataproc.v1.BatchController.GetBatch", + "shortName": "List", + "fullName": "google.cloud.compute.v1.ZoneOperations.List", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/batches/*}" + "path": "/compute/v1/projects/{project}/zones/{zone}/operations" } ] }, { - "shortName": "ListBatches", - "fullName": "google.cloud.dataproc.v1.BatchController.ListBatches", + "shortName": "Wait", + "fullName": "google.cloud.compute.v1.ZoneOperations.Wait", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/batches" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/operations/{operation}/wait" } ] } ] }, { - "shortName": "ClusterController", - "fullName": "google.cloud.dataproc.v1.ClusterController", + "shortName": "Zones", + "fullName": "google.cloud.compute.v1.Zones", "methods": [ { - "shortName": "CreateCluster", - "fullName": "google.cloud.dataproc.v1.ClusterController.CreateCluster", + "shortName": "Get", + "fullName": "google.cloud.compute.v1.Zones.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/projects/{project_id}/regions/{region}/clusters" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}" } ] }, { - "shortName": "DeleteCluster", - "fullName": "google.cloud.dataproc.v1.ClusterController.DeleteCluster", + "shortName": "List", + "fullName": "google.cloud.compute.v1.Zones.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones" } ] - }, + } + ] + } + ], + "configFile": "compute_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.compute.v1.AcceleratorTypes", + "google.cloud.compute.v1.Addresses", + "google.cloud.compute.v1.Autoscalers", + "google.cloud.compute.v1.BackendBuckets", + "google.cloud.compute.v1.BackendServices", + "google.cloud.compute.v1.DiskTypes", + "google.cloud.compute.v1.Disks", + "google.cloud.compute.v1.ExternalVpnGateways", + "google.cloud.compute.v1.FirewallPolicies", + "google.cloud.compute.v1.Firewalls", + "google.cloud.compute.v1.ForwardingRules", + "google.cloud.compute.v1.GlobalAddresses", + "google.cloud.compute.v1.GlobalForwardingRules", + "google.cloud.compute.v1.GlobalNetworkEndpointGroups", + "google.cloud.compute.v1.GlobalOperations", + "google.cloud.compute.v1.GlobalOrganizationOperations", + "google.cloud.compute.v1.GlobalPublicDelegatedPrefixes", + "google.cloud.compute.v1.HealthChecks", + "google.cloud.compute.v1.ImageFamilyViews", + "google.cloud.compute.v1.Images", + "google.cloud.compute.v1.InstanceGroupManagers", + "google.cloud.compute.v1.InstanceGroups", + "google.cloud.compute.v1.InstanceTemplates", + "google.cloud.compute.v1.Instances", + "google.cloud.compute.v1.InterconnectAttachments", + "google.cloud.compute.v1.InterconnectLocations", + "google.cloud.compute.v1.Interconnects", + "google.cloud.compute.v1.LicenseCodes", + "google.cloud.compute.v1.Licenses", + "google.cloud.compute.v1.MachineTypes", + "google.cloud.compute.v1.NetworkEndpointGroups", + "google.cloud.compute.v1.Networks", + "google.cloud.compute.v1.NodeGroups", + "google.cloud.compute.v1.NodeTemplates", + "google.cloud.compute.v1.NodeTypes", + "google.cloud.compute.v1.PacketMirrorings", + "google.cloud.compute.v1.Projects", + "google.cloud.compute.v1.PublicAdvertisedPrefixes", + "google.cloud.compute.v1.PublicDelegatedPrefixes", + "google.cloud.compute.v1.RegionAutoscalers", + "google.cloud.compute.v1.RegionBackendServices", + "google.cloud.compute.v1.RegionCommitments", + "google.cloud.compute.v1.RegionDiskTypes", + "google.cloud.compute.v1.RegionDisks", + "google.cloud.compute.v1.RegionHealthCheckServices", + "google.cloud.compute.v1.RegionHealthChecks", + "google.cloud.compute.v1.RegionInstanceGroupManagers", + "google.cloud.compute.v1.RegionInstanceGroups", + "google.cloud.compute.v1.RegionInstances", + "google.cloud.compute.v1.RegionNetworkEndpointGroups", + "google.cloud.compute.v1.RegionNotificationEndpoints", + "google.cloud.compute.v1.RegionOperations", + "google.cloud.compute.v1.RegionSslCertificates", + "google.cloud.compute.v1.RegionTargetHttpProxies", + "google.cloud.compute.v1.RegionTargetHttpsProxies", + "google.cloud.compute.v1.RegionUrlMaps", + "google.cloud.compute.v1.Regions", + "google.cloud.compute.v1.Reservations", + "google.cloud.compute.v1.ResourcePolicies", + "google.cloud.compute.v1.Routers", + "google.cloud.compute.v1.Routes", + "google.cloud.compute.v1.SecurityPolicies", + "google.cloud.compute.v1.ServiceAttachments", + "google.cloud.compute.v1.Snapshots", + "google.cloud.compute.v1.SslCertificates", + "google.cloud.compute.v1.SslPolicies", + "google.cloud.compute.v1.Subnetworks", + "google.cloud.compute.v1.TargetGrpcProxies", + "google.cloud.compute.v1.TargetHttpProxies", + "google.cloud.compute.v1.TargetHttpsProxies", + "google.cloud.compute.v1.TargetInstances", + "google.cloud.compute.v1.TargetPools", + "google.cloud.compute.v1.TargetSslProxies", + "google.cloud.compute.v1.TargetTcpProxies", + "google.cloud.compute.v1.TargetVpnGateways", + "google.cloud.compute.v1.UrlMaps", + "google.cloud.compute.v1.VpnGateways", + "google.cloud.compute.v1.VpnTunnels", + "google.cloud.compute.v1.ZoneOperations", + "google.cloud.compute.v1.Zones" + ] + }, + { + "id": "google.cloud.compute.v1small", + "directory": "google/cloud/compute/v1small", + "version": "v1small", + "majorVersion": "v1", + "hostName": "compute.googleapis.com", + "title": "Google Compute Engine API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Compute.V1Small": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/compute/v1small;compute": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.compute.v1small": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Compute\\V1small": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Compute::V1small": 1 + } + } + }, + "services": [ + { + "shortName": "Addresses", + "fullName": "google.cloud.compute.v1small.Addresses", + "methods": [ { - "shortName": "DiagnoseCluster", - "fullName": "google.cloud.dataproc.v1.ClusterController.DiagnoseCluster", + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1small.Addresses.AggregatedList", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}:diagnose" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/addresses" } ] }, { - "shortName": "GetCluster", - "fullName": "google.cloud.dataproc.v1.ClusterController.GetCluster", + "shortName": "Delete", + "fullName": "google.cloud.compute.v1small.Addresses.Delete", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}" + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/addresses/{address}" } ] }, { - "shortName": "ListClusters", - "fullName": "google.cloud.dataproc.v1.ClusterController.ListClusters", + "shortName": "Insert", + "fullName": "google.cloud.compute.v1small.Addresses.Insert", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/projects/{project_id}/regions/{region}/clusters" + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/addresses" } ] }, { - "shortName": "StartCluster", - "fullName": "google.cloud.dataproc.v1.ClusterController.StartCluster", + "shortName": "List", + "fullName": "google.cloud.compute.v1small.Addresses.List", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}:start" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/addresses" } ] - }, + } + ] + }, + { + "shortName": "RegionOperations", + "fullName": "google.cloud.compute.v1small.RegionOperations", + "methods": [ { - "shortName": "StopCluster", - "fullName": "google.cloud.dataproc.v1.ClusterController.StopCluster", + "shortName": "Get", + "fullName": "google.cloud.compute.v1small.RegionOperations.Get", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}:stop" + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/operations/{operation}" } ] }, { - "shortName": "UpdateCluster", - "fullName": "google.cloud.dataproc.v1.ClusterController.UpdateCluster", + "shortName": "Wait", + "fullName": "google.cloud.compute.v1small.RegionOperations.Wait", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}" + "httpMethod": "POST", + "path": "/compute/v1/projects/projects/{project}/regions/{region}/operations/{operation}/wait" } ] } ] + } + ], + "configFile": "compute_small_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.compute.v1small.Addresses", + "google.cloud.compute.v1small.RegionOperations" + ] + }, + { + "id": "google.cloud.connectors.v1", + "directory": "google/cloud/connectors/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "connectors.googleapis.com", + "title": "Connectors API", + "description": "Enables users to create and manage connections to Google Cloud services and third-party business applications using the Connectors interface.", + "importDirectories": [ + "google/api", + "google/cloud/connectors/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors": 9 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 9 + } }, + "java_package": { + "valueCounts": { + "": 1, + "com.google.cloud.connectors.v1": 8 + } + } + }, + "services": [ { - "shortName": "JobController", - "fullName": "google.cloud.dataproc.v1.JobController", + "shortName": "Connectors", + "fullName": "google.cloud.connectors.v1.Connectors", "methods": [ { - "shortName": "CancelJob", - "fullName": "google.cloud.dataproc.v1.JobController.CancelJob", + "shortName": "CreateConnection", + "fullName": "google.cloud.connectors.v1.Connectors.CreateConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/projects/{project_id}/regions/{region}/jobs/{job_id}:cancel" + "path": "/v1/{parent=projects/*/locations/*}/connections" } ] }, { - "shortName": "DeleteJob", - "fullName": "google.cloud.dataproc.v1.JobController.DeleteJob", + "shortName": "DeleteConnection", + "fullName": "google.cloud.connectors.v1.Connectors.DeleteConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/projects/{project_id}/regions/{region}/jobs/{job_id}" + "path": "/v1/{name=projects/*/locations/*/connections/*}" } ] }, { - "shortName": "GetJob", - "fullName": "google.cloud.dataproc.v1.JobController.GetJob", + "shortName": "GetConnection", + "fullName": "google.cloud.connectors.v1.Connectors.GetConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/projects/{project_id}/regions/{region}/jobs/{job_id}" + "path": "/v1/{name=projects/*/locations/*/connections/*}" } ] }, { - "shortName": "ListJobs", - "fullName": "google.cloud.dataproc.v1.JobController.ListJobs", + "shortName": "GetConnectionSchemaMetadata", + "fullName": "google.cloud.connectors.v1.Connectors.GetConnectionSchemaMetadata", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/projects/{project_id}/regions/{region}/jobs" + "path": "/v1/{name=projects/*/locations/*/connections/*/connectionSchemaMetadata}" } ] }, { - "shortName": "SubmitJob", - "fullName": "google.cloud.dataproc.v1.JobController.SubmitJob", + "shortName": "GetConnector", + "fullName": "google.cloud.connectors.v1.Connectors.GetConnector", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/projects/{project_id}/regions/{region}/jobs:submit" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/providers/*/connectors/*}" } ] }, { - "shortName": "SubmitJobAsOperation", - "fullName": "google.cloud.dataproc.v1.JobController.SubmitJobAsOperation", + "shortName": "GetConnectorVersion", + "fullName": "google.cloud.connectors.v1.Connectors.GetConnectorVersion", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/projects/{project_id}/regions/{region}/jobs:submitAsOperation" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/providers/*/connectors/*/versions/*}" } ] }, { - "shortName": "UpdateJob", - "fullName": "google.cloud.dataproc.v1.JobController.UpdateJob", + "shortName": "GetProvider", + "fullName": "google.cloud.connectors.v1.Connectors.GetProvider", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/projects/{project_id}/regions/{region}/jobs/{job_id}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/providers/*}" } ] - } - ] - }, - { - "shortName": "WorkflowTemplateService", - "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService", - "methods": [ + }, { - "shortName": "CreateWorkflowTemplate", - "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.CreateWorkflowTemplate", + "shortName": "GetRuntimeConfig", + "fullName": "google.cloud.connectors.v1.Connectors.GetRuntimeConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/workflowTemplates" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/regions/*}/workflowTemplates" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/runtimeConfig}" } ] }, { - "shortName": "DeleteWorkflowTemplate", - "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.DeleteWorkflowTemplate", + "shortName": "ListConnections", + "fullName": "google.cloud.connectors.v1.Connectors.ListConnections", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/workflowTemplates/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/regions/*/workflowTemplates/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/connections" } ] }, { - "shortName": "GetWorkflowTemplate", - "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.GetWorkflowTemplate", + "shortName": "ListConnectorVersions", + "fullName": "google.cloud.connectors.v1.Connectors.ListConnectorVersions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/workflowTemplates/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/regions/*/workflowTemplates/*}" + "path": "/v1/{parent=projects/*/locations/*/providers/*/connectors/*}/versions" } ] }, { - "shortName": "InstantiateInlineWorkflowTemplate", - "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.InstantiateInlineWorkflowTemplate", + "shortName": "ListConnectors", + "fullName": "google.cloud.connectors.v1.Connectors.ListConnectors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/workflowTemplates:instantiateInline" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/regions/*}/workflowTemplates:instantiateInline" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/providers/*}/connectors" } ] }, { - "shortName": "InstantiateWorkflowTemplate", - "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.InstantiateWorkflowTemplate", + "shortName": "ListProviders", + "fullName": "google.cloud.connectors.v1.Connectors.ListProviders", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/workflowTemplates/*}:instantiate" - }, - { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/regions/*/workflowTemplates/*}:instantiate" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/providers" } ] }, { - "shortName": "ListWorkflowTemplates", - "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.ListWorkflowTemplates", + "shortName": "ListRuntimeActionSchemas", + "fullName": "google.cloud.connectors.v1.Connectors.ListRuntimeActionSchemas", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/workflowTemplates" - }, + "path": "/v1/{parent=projects/*/locations/*/connections/*}/runtimeActionSchemas" + } + ] + }, + { + "shortName": "ListRuntimeEntitySchemas", + "fullName": "google.cloud.connectors.v1.Connectors.ListRuntimeEntitySchemas", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/regions/*}/workflowTemplates" + "path": "/v1/{parent=projects/*/locations/*/connections/*}/runtimeEntitySchemas" } ] }, { - "shortName": "UpdateWorkflowTemplate", - "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.UpdateWorkflowTemplate", + "shortName": "UpdateConnection", + "fullName": "google.cloud.connectors.v1.Connectors.UpdateConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v1/{template.name=projects/*/locations/*/workflowTemplates/*}" - }, - { - "httpMethod": "PUT", - "path": "/v1/{template.name=projects/*/regions/*/workflowTemplates/*}" + "httpMethod": "PATCH", + "path": "/v1/{connection.name=projects/*/locations/*/connections/*}" } ] } ] } ], - "configFile": "dataproc_v1.yaml" + "configFile": "connectors_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.connectors.v1.Connectors", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.dataqna.v1alpha", - "directory": "google/cloud/dataqna/v1alpha", - "version": "v1alpha", + "id": "google.cloud.contactcenterinsights.v1", + "directory": "google/cloud/contactcenterinsights/v1", + "version": "v1", "majorVersion": "v1", - "hostName": "dataqna.googleapis.com", - "title": "Data QnA API", - "description": "Data QnA is a natural language question and answer service for BigQuery data.", + "hostName": "contactcenterinsights.googleapis.com", + "title": "Contact Center AI Insights API", + "description": "", "importDirectories": [ "google/api", - "google/cloud/dataqna/v1alpha", + "google/cloud/contactcenterinsights/v1", + "google/longrunning", "google/protobuf", "google/rpc" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.DataQnA.V1Alpha": 5 + "Google.Cloud.ContactCenterInsights.V1": 2 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/dataqna/v1alpha;dataqna": 5 + "google.golang.org/genproto/googleapis/cloud/contactcenterinsights/v1;contactcenterinsights": 2 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 2 } }, "java_package": { "valueCounts": { - "com.google.cloud.dataqna.v1alpha": 5 + "com.google.cloud.contactcenterinsights.v1": 2 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\DataQnA\\V1alpha": 5 + "Google\\Cloud\\ContactCenterInsights\\V1": 2 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::DataQnA::V1alpha": 5 + "Google::Cloud::ContactCenterInsights::V1": 2 } } }, "services": [ { - "shortName": "AutoSuggestionService", - "fullName": "google.cloud.dataqna.v1alpha.AutoSuggestionService", - "methods": [ - { - "shortName": "SuggestQueries", - "fullName": "google.cloud.dataqna.v1alpha.AutoSuggestionService.SuggestQueries", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=projects/*/locations/*}:suggestQueries" - } - ] - } - ] - }, - { - "shortName": "QuestionService", - "fullName": "google.cloud.dataqna.v1alpha.QuestionService", + "shortName": "ContactCenterInsights", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights", "methods": [ { - "shortName": "CreateQuestion", - "fullName": "google.cloud.dataqna.v1alpha.QuestionService.CreateQuestion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=projects/*/locations/*}/questions" - } - ] - }, - { - "shortName": "ExecuteQuestion", - "fullName": "google.cloud.dataqna.v1alpha.QuestionService.ExecuteQuestion", + "shortName": "CalculateIssueModelStats", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CalculateIssueModelStats", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=projects/*/locations/*/questions/*}:execute" + "httpMethod": "GET", + "path": "/v1/{issue_model=projects/*/locations/*/issueModels/*}:calculateIssueModelStats" } ] }, { - "shortName": "GetQuestion", - "fullName": "google.cloud.dataqna.v1alpha.QuestionService.GetQuestion", + "shortName": "CalculateStats", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CalculateStats", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{name=projects/*/locations/*/questions/*}" + "path": "/v1/{location=projects/*/locations/*}/conversations:calculateStats" } ] }, { - "shortName": "GetUserFeedback", - "fullName": "google.cloud.dataqna.v1alpha.QuestionService.GetUserFeedback", + "shortName": "CreateAnalysis", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreateAnalysis", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=projects/*/locations/*/questions/*/userFeedback}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/conversations/*}/analyses" } ] }, { - "shortName": "UpdateUserFeedback", - "fullName": "google.cloud.dataqna.v1alpha.QuestionService.UpdateUserFeedback", + "shortName": "CreateConversation", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreateConversation", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha/{user_feedback.name=projects/*/locations/*/questions/*/userFeedback}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/conversations" } ] - } - ] - } - ], - "configFile": "dataqna_v1alpha.yaml" - }, - { - "id": "google.cloud.datastream.v1alpha1", - "directory": "google/cloud/datastream/v1alpha1", - "version": "v1alpha1", - "majorVersion": "v1", - "hostName": "datastream.googleapis.com", - "title": "Datastream API", - "description": "", - "importDirectories": [ - "google/api", - "google/cloud/datastream/v1alpha1", - "google/longrunning", - "google/protobuf" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Datastream.V1Alpha1": 2 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/datastream/v1alpha1;datastream": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.datastream.v1alpha1": 2 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\Datastream\\V1alpha1": 2 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::Datastream::V1alpha1": 2 - } - } - }, - "services": [ - { - "shortName": "Datastream", - "fullName": "google.cloud.datastream.v1alpha1.Datastream", - "methods": [ + }, { - "shortName": "CreateConnectionProfile", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.CreateConnectionProfile", + "shortName": "CreateIssueModel", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreateIssueModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha1/{parent=projects/*/locations/*}/connectionProfiles" + "path": "/v1/{parent=projects/*/locations/*}/issueModels" } ] }, { - "shortName": "CreatePrivateConnection", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.CreatePrivateConnection", + "shortName": "CreatePhraseMatcher", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreatePhraseMatcher", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha1/{parent=projects/*/locations/*}/privateConnections" + "path": "/v1/{parent=projects/*/locations/*}/phraseMatchers" } ] }, { - "shortName": "CreateRoute", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.CreateRoute", + "shortName": "CreateView", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.CreateView", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha1/{parent=projects/*/locations/*/privateConnections/*}/routes" + "path": "/v1/{parent=projects/*/locations/*}/views" } ] }, { - "shortName": "CreateStream", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.CreateStream", + "shortName": "DeleteAnalysis", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeleteAnalysis", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha1/{parent=projects/*/locations/*}/streams" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/conversations/*/analyses/*}" } ] }, { - "shortName": "DeleteConnectionProfile", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.DeleteConnectionProfile", + "shortName": "DeleteConversation", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeleteConversation", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1alpha1/{name=projects/*/locations/*/connectionProfiles/*}" + "path": "/v1/{name=projects/*/locations/*/conversations/*}" } ] }, { - "shortName": "DeletePrivateConnection", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.DeletePrivateConnection", + "shortName": "DeleteIssueModel", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeleteIssueModel", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1alpha1/{name=projects/*/locations/*/privateConnections/*}" + "path": "/v1/{name=projects/*/locations/*/issueModels/*}" } ] }, { - "shortName": "DeleteRoute", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.DeleteRoute", + "shortName": "DeletePhraseMatcher", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeletePhraseMatcher", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1alpha1/{name=projects/*/locations/*/privateConnections/*/routes/*}" + "path": "/v1/{name=projects/*/locations/*/phraseMatchers/*}" } ] }, { - "shortName": "DeleteStream", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.DeleteStream", + "shortName": "DeleteView", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeleteView", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1alpha1/{name=projects/*/locations/*/streams/*}" + "path": "/v1/{name=projects/*/locations/*/views/*}" } ] }, { - "shortName": "DiscoverConnectionProfile", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.DiscoverConnectionProfile", + "shortName": "DeployIssueModel", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.DeployIssueModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha1/{parent=projects/*/locations/*}/connectionProfiles:discover" + "path": "/v1/{name=projects/*/locations/*/issueModels/*}:deploy" } ] }, { - "shortName": "FetchErrors", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.FetchErrors", + "shortName": "ExportInsightsData", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ExportInsightsData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha1/{stream=projects/*/locations/*/streams/*}:fetchErrors" + "path": "/v1/{parent=projects/*/locations/*}/insightsdata:export" } ] }, { - "shortName": "FetchStaticIps", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.FetchStaticIps", + "shortName": "GetAnalysis", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetAnalysis", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{name=projects/*/locations/*}:fetchStaticIps" + "path": "/v1/{name=projects/*/locations/*/conversations/*/analyses/*}" } ] }, { - "shortName": "GetConnectionProfile", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.GetConnectionProfile", + "shortName": "GetConversation", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetConversation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{name=projects/*/locations/*/connectionProfiles/*}" + "path": "/v1/{name=projects/*/locations/*/conversations/*}" } ] }, { - "shortName": "GetPrivateConnection", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.GetPrivateConnection", + "shortName": "GetIssue", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetIssue", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{name=projects/*/locations/*/privateConnections/*}" + "path": "/v1/{name=projects/*/locations/*/issueModels/*/issues/*}" } ] }, { - "shortName": "GetRoute", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.GetRoute", + "shortName": "GetIssueModel", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetIssueModel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{name=projects/*/locations/*/privateConnections/*/routes/*}" + "path": "/v1/{name=projects/*/locations/*/issueModels/*}" } ] }, { - "shortName": "GetStream", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.GetStream", + "shortName": "GetPhraseMatcher", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetPhraseMatcher", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{name=projects/*/locations/*/streams/*}" + "path": "/v1/{name=projects/*/locations/*/phraseMatchers/*}" } ] }, { - "shortName": "ListConnectionProfiles", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.ListConnectionProfiles", + "shortName": "GetSettings", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{parent=projects/*/locations/*}/connectionProfiles" + "path": "/v1/{name=projects/*/locations/*/settings}" } ] }, { - "shortName": "ListPrivateConnections", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.ListPrivateConnections", + "shortName": "GetView", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetView", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{parent=projects/*/locations/*}/privateConnections" + "path": "/v1/{name=projects/*/locations/*/views/*}" } ] }, { - "shortName": "ListRoutes", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.ListRoutes", + "shortName": "ListAnalyses", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListAnalyses", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{parent=projects/*/locations/*/privateConnections/*}/routes" + "path": "/v1/{parent=projects/*/locations/*/conversations/*}/analyses" } ] }, { - "shortName": "ListStreams", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.ListStreams", + "shortName": "ListConversations", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListConversations", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha1/{parent=projects/*/locations/*}/streams" + "path": "/v1/{parent=projects/*/locations/*}/conversations" } ] }, { - "shortName": "UpdateConnectionProfile", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.UpdateConnectionProfile", + "shortName": "ListIssueModels", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListIssueModels", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha1/{connection_profile.name=projects/*/locations/*/connectionProfiles/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/issueModels" } ] }, { - "shortName": "UpdateStream", - "fullName": "google.cloud.datastream.v1alpha1.Datastream.UpdateStream", + "shortName": "ListIssues", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListIssues", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha1/{stream.name=projects/*/locations/*/streams/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/issueModels/*}/issues" } ] - } - ] - } - ], - "configFile": "datastream_v1alpha1.yaml" - }, - { - "id": "google.cloud.deploy.v1", - "directory": "google/cloud/deploy/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "clouddeploy.googleapis.com", - "title": "Google Cloud Deploy API", - "description": "", - "importDirectories": [ - "google/api", - "google/longrunning", - "google/protobuf", - "google/type" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.deploy.v1": 1 - } - } - }, - "services": [ - { - "shortName": "CloudDeploy", - "fullName": "google.cloud.deploy.v1.CloudDeploy", - "methods": [ + }, { - "shortName": "ApproveRollout", - "fullName": "google.cloud.deploy.v1.CloudDeploy.ApproveRollout", + "shortName": "ListPhraseMatchers", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListPhraseMatchers", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:approve" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/phraseMatchers" } ] }, { - "shortName": "CreateDeliveryPipeline", - "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateDeliveryPipeline", + "shortName": "ListViews", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListViews", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/deliveryPipelines" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/views" } ] }, { - "shortName": "CreateRelease", - "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateRelease", + "shortName": "UndeployIssueModel", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UndeployIssueModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*}/releases" + "path": "/v1/{name=projects/*/locations/*/issueModels/*}:undeploy" } ] }, { - "shortName": "CreateRollout", - "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateRollout", + "shortName": "UpdateConversation", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateConversation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*}/rollouts" + "httpMethod": "PATCH", + "path": "/v1/{conversation.name=projects/*/locations/*/conversations/*}" } ] }, { - "shortName": "CreateTarget", - "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateTarget", + "shortName": "UpdateIssue", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateIssue", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/targets" + "httpMethod": "PATCH", + "path": "/v1/{issue.name=projects/*/locations/*/issueModels/*/issues/*}" } ] }, { - "shortName": "DeleteDeliveryPipeline", - "fullName": "google.cloud.deploy.v1.CloudDeploy.DeleteDeliveryPipeline", + "shortName": "UpdateIssueModel", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateIssueModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*}" + "httpMethod": "PATCH", + "path": "/v1/{issue_model.name=projects/*/locations/*/issueModels/*}" } ] }, { - "shortName": "DeleteTarget", - "fullName": "google.cloud.deploy.v1.CloudDeploy.DeleteTarget", + "shortName": "UpdatePhraseMatcher", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdatePhraseMatcher", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/targets/*}" + "httpMethod": "PATCH", + "path": "/v1/{phrase_matcher.name=projects/*/locations/*/phraseMatchers/*}" } ] }, { - "shortName": "GetConfig", - "fullName": "google.cloud.deploy.v1.CloudDeploy.GetConfig", + "shortName": "UpdateSettings", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/config}" + "httpMethod": "PATCH", + "path": "/v1/{settings.name=projects/*/locations/*/settings}" } ] }, { - "shortName": "GetDeliveryPipeline", - "fullName": "google.cloud.deploy.v1.CloudDeploy.GetDeliveryPipeline", + "shortName": "UpdateView", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.UpdateView", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*}" + "httpMethod": "PATCH", + "path": "/v1/{view.name=projects/*/locations/*/views/*}" } ] - }, + } + ] + } + ], + "configFile": "contactcenterinsights_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.contactcenterinsights.v1.ContactCenterInsights", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.contentwarehouse.v1", + "directory": "google/cloud/contentwarehouse/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "contentwarehouse.googleapis.com", + "title": "contentwarehouse API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/contentwarehouse/v1", + "google/cloud/documentai/v1", + "google/iam/v1", + "google/protobuf", + "google/type" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse": 16 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 16 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.contentwarehouse.v1": 16 + } + } + }, + "services": [ + { + "shortName": "DocumentLinkService", + "fullName": "google.cloud.contentwarehouse.v1.DocumentLinkService", + "methods": [ { - "shortName": "GetRelease", - "fullName": "google.cloud.deploy.v1.CloudDeploy.GetRelease", + "shortName": "CreateDocumentLink", + "fullName": "google.cloud.contentwarehouse.v1.DocumentLinkService.CreateDocumentLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/documents/*}/documentLinks" } ] }, { - "shortName": "GetRollout", - "fullName": "google.cloud.deploy.v1.CloudDeploy.GetRollout", + "shortName": "DeleteDocumentLink", + "fullName": "google.cloud.contentwarehouse.v1.DocumentLinkService.DeleteDocumentLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/documents/*/documentLinks/*}:delete" } ] }, { - "shortName": "GetTarget", - "fullName": "google.cloud.deploy.v1.CloudDeploy.GetTarget", + "shortName": "ListLinkedSources", + "fullName": "google.cloud.contentwarehouse.v1.DocumentLinkService.ListLinkedSources", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/targets/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/documents/*}/linkedSources" } ] }, { - "shortName": "ListDeliveryPipelines", - "fullName": "google.cloud.deploy.v1.CloudDeploy.ListDeliveryPipelines", + "shortName": "ListLinkedTargets", + "fullName": "google.cloud.contentwarehouse.v1.DocumentLinkService.ListLinkedTargets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/deliveryPipelines" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/documents/*}/linkedTargets" } ] - }, + } + ] + }, + { + "shortName": "DocumentSchemaService", + "fullName": "google.cloud.contentwarehouse.v1.DocumentSchemaService", + "methods": [ { - "shortName": "ListReleases", - "fullName": "google.cloud.deploy.v1.CloudDeploy.ListReleases", + "shortName": "CreateDocumentSchema", + "fullName": "google.cloud.contentwarehouse.v1.DocumentSchemaService.CreateDocumentSchema", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*}/releases" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/documentSchemas" } ] }, { - "shortName": "ListRollouts", - "fullName": "google.cloud.deploy.v1.CloudDeploy.ListRollouts", + "shortName": "DeleteDocumentSchema", + "fullName": "google.cloud.contentwarehouse.v1.DocumentSchemaService.DeleteDocumentSchema", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*}/rollouts" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/documentSchemas/*}" } ] }, { - "shortName": "ListTargets", - "fullName": "google.cloud.deploy.v1.CloudDeploy.ListTargets", + "shortName": "GetDocumentSchema", + "fullName": "google.cloud.contentwarehouse.v1.DocumentSchemaService.GetDocumentSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/targets" + "path": "/v1/{name=projects/*/locations/*/documentSchemas/*}" } ] }, { - "shortName": "UpdateDeliveryPipeline", - "fullName": "google.cloud.deploy.v1.CloudDeploy.UpdateDeliveryPipeline", + "shortName": "ListDocumentSchemas", + "fullName": "google.cloud.contentwarehouse.v1.DocumentSchemaService.ListDocumentSchemas", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{delivery_pipeline.name=projects/*/locations/*/deliveryPipelines/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/documentSchemas" } ] }, { - "shortName": "UpdateTarget", - "fullName": "google.cloud.deploy.v1.CloudDeploy.UpdateTarget", + "shortName": "UpdateDocumentSchema", + "fullName": "google.cloud.contentwarehouse.v1.DocumentSchemaService.UpdateDocumentSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{target.name=projects/*/locations/*/targets/*}" + "path": "/v1/{name=projects/*/locations/*/documentSchemas/*}" } ] } ] - } - ], - "configFile": "clouddeploy_v1.yaml" - }, - { - "id": "google.cloud.dialogflow.cx.v3", - "directory": "google/cloud/dialogflow/cx/v3", - "version": "v3", - "majorVersion": "v3", - "hostName": "dialogflow.googleapis.com", - "title": "Dialogflow API", - "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", - "importDirectories": [ - "google/api", - "google/cloud/dialogflow/cx/v3", - "google/longrunning", - "google/protobuf", - "google/rpc", - "google/type" - ], - "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 21 - } - }, - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Dialogflow.Cx.V3": 21 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3;cx": 21 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 21 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.dialogflow.cx.v3": 21 - } - }, - "objc_class_prefix": { - "valueCounts": { - "DF": 21 - } }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::Dialogflow::CX::V3": 21 - } - } - }, - "services": [ { - "shortName": "Agents", - "fullName": "google.cloud.dialogflow.cx.v3.Agents", + "shortName": "DocumentService", + "fullName": "google.cloud.contentwarehouse.v1.DocumentService", "methods": [ { - "shortName": "CreateAgent", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.CreateAgent", + "shortName": "CreateDocument", + "fullName": "google.cloud.contentwarehouse.v1.DocumentService.CreateDocument", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*}/agents" + "path": "/v1/{parent=projects/*/locations/*}/documents" } ] }, { - "shortName": "DeleteAgent", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.DeleteAgent", + "shortName": "DeleteDocument", + "fullName": "google.cloud.contentwarehouse.v1.DocumentService.DeleteDocument", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/documents/*}:delete" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/documents/referenceId/*}:delete" } ] }, { - "shortName": "ExportAgent", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.ExportAgent", + "shortName": "FetchAcl", + "fullName": "google.cloud.contentwarehouse.v1.DocumentService.FetchAcl", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*}:export" + "path": "/v1/{resource=projects/*/locations/*/documents/*}:fetchAcl" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*}:fetchAcl" } ] }, { - "shortName": "GetAgent", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.GetAgent", + "shortName": "GetDocument", + "fullName": "google.cloud.contentwarehouse.v1.DocumentService.GetDocument", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/documents/*}:get" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/documents/referenceId/*}:get" } ] }, { - "shortName": "GetAgentValidationResult", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.GetAgentValidationResult", + "shortName": "SearchDocuments", + "fullName": "google.cloud.contentwarehouse.v1.DocumentService.SearchDocuments", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/validationResult}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/documents:search" } ] }, { - "shortName": "ListAgents", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.ListAgents", + "shortName": "SetAcl", + "fullName": "google.cloud.contentwarehouse.v1.DocumentService.SetAcl", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*}/agents" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/documents/*}:setAcl" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*}:setAcl" } ] }, { - "shortName": "RestoreAgent", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.RestoreAgent", + "shortName": "UpdateDocument", + "fullName": "google.cloud.contentwarehouse.v1.DocumentService.UpdateDocument", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*}:restore" + "httpMethod": "PATCH", + "path": "/v1/{name=projects/*/locations/*/documents/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{name=projects/*/locations/*/documents/referenceId/*}" } ] - }, + } + ] + }, + { + "shortName": "RuleSetService", + "fullName": "google.cloud.contentwarehouse.v1.RuleSetService", + "methods": [ { - "shortName": "UpdateAgent", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.UpdateAgent", + "shortName": "CreateRuleSet", + "fullName": "google.cloud.contentwarehouse.v1.RuleSetService.CreateRuleSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{agent.name=projects/*/locations/*/agents/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/ruleSets" } ] }, { - "shortName": "ValidateAgent", - "fullName": "google.cloud.dialogflow.cx.v3.Agents.ValidateAgent", + "shortName": "DeleteRuleSet", + "fullName": "google.cloud.contentwarehouse.v1.RuleSetService.DeleteRuleSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*}:validate" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/ruleSets/*}" } ] - } - ] - }, - { - "shortName": "Changelogs", - "fullName": "google.cloud.dialogflow.cx.v3.Changelogs", - "methods": [ + }, { - "shortName": "GetChangelog", - "fullName": "google.cloud.dialogflow.cx.v3.Changelogs.GetChangelog", + "shortName": "GetRuleSet", + "fullName": "google.cloud.contentwarehouse.v1.RuleSetService.GetRuleSet", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/changelogs/*}" + "path": "/v1/{name=projects/*/locations/*/ruleSets/*}" } ] }, { - "shortName": "ListChangelogs", - "fullName": "google.cloud.dialogflow.cx.v3.Changelogs.ListChangelogs", + "shortName": "ListRuleSets", + "fullName": "google.cloud.contentwarehouse.v1.RuleSetService.ListRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/changelogs" + "path": "/v1/{parent=projects/*/locations/*}/ruleSets" } ] - } - ] - }, - { - "shortName": "Deployments", - "fullName": "google.cloud.dialogflow.cx.v3.Deployments", - "methods": [ + }, { - "shortName": "GetDeployment", - "fullName": "google.cloud.dialogflow.cx.v3.Deployments.GetDeployment", + "shortName": "ProcessAsyncRuleSets", + "fullName": "google.cloud.contentwarehouse.v1.RuleSetService.ProcessAsyncRuleSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/deployments/*}" + "httpMethod": "POST", + "path": "/v1/{location=projects/*/locations/*}:processAsyncRuleSets" } ] }, { - "shortName": "ListDeployments", - "fullName": "google.cloud.dialogflow.cx.v3.Deployments.ListDeployments", + "shortName": "UpdateRuleSet", + "fullName": "google.cloud.contentwarehouse.v1.RuleSetService.UpdateRuleSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/deployments" + "httpMethod": "PATCH", + "path": "/v1/{name=projects/*/locations/*/ruleSets/*}" } ] } ] }, { - "shortName": "EntityTypes", - "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes", + "shortName": "SynonymSetService", + "fullName": "google.cloud.contentwarehouse.v1.SynonymSetService", "methods": [ { - "shortName": "CreateEntityType", - "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.CreateEntityType", + "shortName": "CreateSynonymSet", + "fullName": "google.cloud.contentwarehouse.v1.SynonymSetService.CreateSynonymSet", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/entityTypes" + "path": "/v1/{parent=projects/*/locations/*}/synonymSets" } ] }, { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.DeleteEntityType", + "shortName": "DeleteSynonymSet", + "fullName": "google.cloud.contentwarehouse.v1.SynonymSetService.DeleteSynonymSet", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/entityTypes/*}" + "path": "/v1/{name=projects/*/locations/*/synonymSets/*}" } ] }, { - "shortName": "GetEntityType", - "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.GetEntityType", + "shortName": "GetSynonymSet", + "fullName": "google.cloud.contentwarehouse.v1.SynonymSetService.GetSynonymSet", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/entityTypes/*}" + "path": "/v1/{name=projects/*/locations/*/synonymSets/*}" } ] }, { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.ListEntityTypes", + "shortName": "ListSynonymSets", + "fullName": "google.cloud.contentwarehouse.v1.SynonymSetService.ListSynonymSets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/entityTypes" + "path": "/v1/{parent=projects/*/locations/*}/synonymSets" } ] }, { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.UpdateEntityType", + "shortName": "UpdateSynonymSet", + "fullName": "google.cloud.contentwarehouse.v1.SynonymSetService.UpdateSynonymSet", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v3/{entity_type.name=projects/*/locations/*/agents/*/entityTypes/*}" + "path": "/v1/{name=projects/*/locations/*/synonymSets/*}" } ] } ] + } + ], + "configFile": "contentwarehouse_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.contentwarehouse.v1.DocumentLinkService", + "google.cloud.contentwarehouse.v1.DocumentSchemaService", + "google.cloud.contentwarehouse.v1.DocumentService", + "google.cloud.contentwarehouse.v1.RuleSetService", + "google.cloud.contentwarehouse.v1.SynonymSetService", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.datacatalog.v1", + "directory": "google/cloud/datacatalog/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "datacatalog.googleapis.com", + "title": "Google Cloud Data Catalog API", + "description": "A fully managed and highly scalable data discovery and metadata management service.", + "importDirectories": [ + "google/api", + "google/cloud/datacatalog/v1", + "google/iam/v1", + "google/protobuf" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 15 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DataCatalog.V1": 15 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/datacatalog/v1;datacatalog": 15 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 15 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.datacatalog.v1": 15 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DataCatalog\\V1": 15 + } }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DataCatalog::V1": 15 + } + } + }, + "services": [ { - "shortName": "Environments", - "fullName": "google.cloud.dialogflow.cx.v3.Environments", + "shortName": "DataCatalog", + "fullName": "google.cloud.datacatalog.v1.DataCatalog", "methods": [ { - "shortName": "CreateEnvironment", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.CreateEnvironment", + "shortName": "CreateEntry", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateEntry", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/environments" + "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" } ] }, { - "shortName": "DeleteEnvironment", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.DeleteEnvironment", + "shortName": "CreateEntryGroup", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateEntryGroup", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/entryGroups" } ] }, { - "shortName": "DeployFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.DeployFlow", + "shortName": "CreateTag", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateTag", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{environment=projects/*/locations/*/agents/*/environments/*}:deployFlow" + "path": "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/tags" } ] }, { - "shortName": "GetEnvironment", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.GetEnvironment", + "shortName": "CreateTagTemplate", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateTagTemplate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/tagTemplates" } ] }, { - "shortName": "ListContinuousTestResults", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.ListContinuousTestResults", + "shortName": "CreateTagTemplateField", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.CreateTagTemplateField", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/continuousTestResults" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/tagTemplates/*}/fields" } ] }, { - "shortName": "ListEnvironments", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.ListEnvironments", + "shortName": "DeleteEntry", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/environments" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}" } ] }, { - "shortName": "LookupEnvironmentHistory", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.LookupEnvironmentHistory", + "shortName": "DeleteEntryGroup", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteEntryGroup", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*}:lookupEnvironmentHistory" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*}" } ] }, { - "shortName": "RunContinuousTest", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.RunContinuousTest", + "shortName": "DeleteTag", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{environment=projects/*/locations/*/agents/*/environments/*}:runContinuousTest" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/tags/*}" } ] }, { - "shortName": "UpdateEnvironment", - "fullName": "google.cloud.dialogflow.cx.v3.Environments.UpdateEnvironment", + "shortName": "DeleteTagTemplate", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteTagTemplate", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{environment.name=projects/*/locations/*/agents/*/environments/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/tagTemplates/*}" } ] - } - ] - }, - { - "shortName": "Experiments", - "fullName": "google.cloud.dialogflow.cx.v3.Experiments", - "methods": [ + }, { - "shortName": "CreateExperiment", - "fullName": "google.cloud.dialogflow.cx.v3.Experiments.CreateExperiment", + "shortName": "DeleteTagTemplateField", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.DeleteTagTemplateField", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/experiments" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" } ] }, { - "shortName": "DeleteExperiment", - "fullName": "google.cloud.dialogflow.cx.v3.Experiments.DeleteExperiment", + "shortName": "GetEntry", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.GetEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}" } ] }, { - "shortName": "GetExperiment", - "fullName": "google.cloud.dialogflow.cx.v3.Experiments.GetExperiment", + "shortName": "GetEntryGroup", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.GetEntryGroup", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + "path": "/v1/{name=projects/*/locations/*/entryGroups/*}" } ] }, { - "shortName": "ListExperiments", - "fullName": "google.cloud.dialogflow.cx.v3.Experiments.ListExperiments", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/experiments" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy" } ] }, { - "shortName": "StartExperiment", - "fullName": "google.cloud.dialogflow.cx.v3.Experiments.StartExperiment", + "shortName": "GetTagTemplate", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.GetTagTemplate", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:start" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/tagTemplates/*}" } ] }, { - "shortName": "StopExperiment", - "fullName": "google.cloud.dialogflow.cx.v3.Experiments.StopExperiment", + "shortName": "ListEntries", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.ListEntries", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:stop" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" } ] }, { - "shortName": "UpdateExperiment", - "fullName": "google.cloud.dialogflow.cx.v3.Experiments.UpdateExperiment", + "shortName": "ListEntryGroups", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.ListEntryGroups", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{experiment.name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/entryGroups" } ] - } - ] - }, - { - "shortName": "Flows", - "fullName": "google.cloud.dialogflow.cx.v3.Flows", - "methods": [ + }, { - "shortName": "CreateFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.CreateFlow", + "shortName": "ListTags", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.ListTags", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/flows" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/tags" } ] }, { - "shortName": "DeleteFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.DeleteFlow", + "shortName": "LookupEntry", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.LookupEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}" + "httpMethod": "GET", + "path": "/v1/entries:lookup" } ] }, { - "shortName": "ExportFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.ExportFlow", + "shortName": "ModifyEntryContacts", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.ModifyEntryContacts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}:export" + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryContacts" } ] }, { - "shortName": "GetFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.GetFlow", + "shortName": "ModifyEntryOverview", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.ModifyEntryOverview", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryOverview" } ] }, { - "shortName": "GetFlowValidationResult", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.GetFlowValidationResult", + "shortName": "RenameTagTemplateField", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateField", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/validationResult}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename" } ] }, { - "shortName": "ImportFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.ImportFlow", + "shortName": "RenameTagTemplateFieldEnumValue", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateFieldEnumValue", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/flows:import" + "path": "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*/enumValues/*}:rename" } ] }, { - "shortName": "ListFlows", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.ListFlows", + "shortName": "SearchCatalog", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.SearchCatalog", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/flows" + "httpMethod": "POST", + "path": "/v1/catalog:search" } ] }, { - "shortName": "TrainFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.TrainFlow", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}:train" + "path": "/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy" } ] }, { - "shortName": "UpdateFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.UpdateFlow", + "shortName": "StarEntry", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.StarEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{flow.name=projects/*/locations/*/agents/*/flows/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:star" } ] }, { - "shortName": "ValidateFlow", - "fullName": "google.cloud.dialogflow.cx.v3.Flows.ValidateFlow", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}:validate" + "path": "/v1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions" } ] - } - ] - }, - { - "shortName": "Intents", - "fullName": "google.cloud.dialogflow.cx.v3.Intents", - "methods": [ + }, { - "shortName": "CreateIntent", - "fullName": "google.cloud.dialogflow.cx.v3.Intents.CreateIntent", + "shortName": "UnstarEntry", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.UnstarEntry", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/intents" + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:unstar" } ] }, { - "shortName": "DeleteIntent", - "fullName": "google.cloud.dialogflow.cx.v3.Intents.DeleteIntent", + "shortName": "UpdateEntry", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/intents/*}" + "httpMethod": "PATCH", + "path": "/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}" } ] }, { - "shortName": "GetIntent", - "fullName": "google.cloud.dialogflow.cx.v3.Intents.GetIntent", + "shortName": "UpdateEntryGroup", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateEntryGroup", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/intents/*}" + "httpMethod": "PATCH", + "path": "/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}" } ] }, { - "shortName": "ListIntents", - "fullName": "google.cloud.dialogflow.cx.v3.Intents.ListIntents", + "shortName": "UpdateTag", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/intents" + "httpMethod": "PATCH", + "path": "/v1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}" } ] }, { - "shortName": "UpdateIntent", - "fullName": "google.cloud.dialogflow.cx.v3.Intents.UpdateIntent", + "shortName": "UpdateTagTemplate", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateTagTemplate", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" + "path": "/v1/{tag_template.name=projects/*/locations/*/tagTemplates/*}" + } + ] + }, + { + "shortName": "UpdateTagTemplateField", + "fullName": "google.cloud.datacatalog.v1.DataCatalog.UpdateTagTemplateField", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" } ] } ] }, { - "shortName": "Pages", - "fullName": "google.cloud.dialogflow.cx.v3.Pages", + "shortName": "PolicyTagManager", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager", "methods": [ { - "shortName": "CreatePage", - "fullName": "google.cloud.dialogflow.cx.v3.Pages.CreatePage", + "shortName": "CreatePolicyTag", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.CreatePolicyTag", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/pages" + "path": "/v1/{parent=projects/*/locations/*/taxonomies/*}/policyTags" } ] }, { - "shortName": "DeletePage", - "fullName": "google.cloud.dialogflow.cx.v3.Pages.DeletePage", + "shortName": "CreateTaxonomy", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.CreateTaxonomy", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/taxonomies" } ] }, { - "shortName": "GetPage", - "fullName": "google.cloud.dialogflow.cx.v3.Pages.GetPage", + "shortName": "DeletePolicyTag", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.DeletePolicyTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}" } ] }, { - "shortName": "ListPages", - "fullName": "google.cloud.dialogflow.cx.v3.Pages.ListPages", + "shortName": "DeleteTaxonomy", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.DeleteTaxonomy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/pages" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/taxonomies/*}" } ] }, { - "shortName": "UpdatePage", - "fullName": "google.cloud.dialogflow.cx.v3.Pages.UpdatePage", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.GetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{page.name=projects/*/locations/*/agents/*/flows/*/pages/*}" - } - ] - } - ] - }, - { - "shortName": "SecuritySettingsService", - "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService", - "methods": [ - { - "shortName": "CreateSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.CreateSecuritySettings", - "mode": "UNARY", - "bindings": [ + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/taxonomies/*}:getIamPolicy" + }, { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*}/securitySettings" + "path": "/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:getIamPolicy" } ] }, { - "shortName": "DeleteSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.DeleteSecuritySettings", + "shortName": "GetPolicyTag", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.GetPolicyTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/securitySettings/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}" } ] }, { - "shortName": "GetSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.GetSecuritySettings", + "shortName": "GetTaxonomy", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.GetTaxonomy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/securitySettings/*}" + "path": "/v1/{name=projects/*/locations/*/taxonomies/*}" } ] }, { - "shortName": "ListSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.ListSecuritySettings", + "shortName": "ListPolicyTags", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.ListPolicyTags", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*}/securitySettings" + "path": "/v1/{parent=projects/*/locations/*/taxonomies/*}/policyTags" } ] }, { - "shortName": "UpdateSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.UpdateSecuritySettings", + "shortName": "ListTaxonomies", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.ListTaxonomies", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{security_settings.name=projects/*/locations/*/securitySettings/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/taxonomies" } ] - } - ] - }, - { - "shortName": "SessionEntityTypes", - "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes", - "methods": [ + }, { - "shortName": "CreateSessionEntityType", - "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.CreateSessionEntityType", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes" + "path": "/v1/{resource=projects/*/locations/*/taxonomies/*}:setIamPolicy" }, { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes" - } - ] - }, - { - "shortName": "DeleteSessionEntityType", - "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.DeleteSessionEntityType", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + "path": "/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:setIamPolicy" } ] }, { - "shortName": "GetSessionEntityType", - "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.GetSessionEntityType", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/taxonomies/*}:testIamPermissions" }, { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:testIamPermissions" } ] }, { - "shortName": "ListSessionEntityTypes", - "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.ListSessionEntityTypes", + "shortName": "UpdatePolicyTag", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.UpdatePolicyTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes" - }, - { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes" + "httpMethod": "PATCH", + "path": "/v1/{policy_tag.name=projects/*/locations/*/taxonomies/*/policyTags/*}" } ] }, { - "shortName": "UpdateSessionEntityType", - "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.UpdateSessionEntityType", + "shortName": "UpdateTaxonomy", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManager.UpdateTaxonomy", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v3/{session_entity_type.name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v3/{session_entity_type.name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + "path": "/v1/{taxonomy.name=projects/*/locations/*/taxonomies/*}" } ] } ] }, { - "shortName": "Sessions", - "fullName": "google.cloud.dialogflow.cx.v3.Sessions", + "shortName": "PolicyTagManagerSerialization", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManagerSerialization", "methods": [ { - "shortName": "DetectIntent", - "fullName": "google.cloud.dialogflow.cx.v3.Sessions.DetectIntent", + "shortName": "ExportTaxonomies", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManagerSerialization.ExportTaxonomies", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{session=projects/*/locations/*/agents/*/sessions/*}:detectIntent" - }, - { - "httpMethod": "POST", - "path": "/v3/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:detectIntent" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/taxonomies:export" } ] }, { - "shortName": "FulfillIntent", - "fullName": "google.cloud.dialogflow.cx.v3.Sessions.FulfillIntent", + "shortName": "ImportTaxonomies", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManagerSerialization.ImportTaxonomies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{match_intent_request.session=projects/*/locations/*/agents/*/sessions/*}:fulfillIntent" - }, - { - "httpMethod": "POST", - "path": "/v3/{match_intent_request.session=projects/*/locations/*/agents/*/environments/*/sessions/*}:fulfillIntent" + "path": "/v1/{parent=projects/*/locations/*}/taxonomies:import" } ] }, { - "shortName": "MatchIntent", - "fullName": "google.cloud.dialogflow.cx.v3.Sessions.MatchIntent", + "shortName": "ReplaceTaxonomy", + "fullName": "google.cloud.datacatalog.v1.PolicyTagManagerSerialization.ReplaceTaxonomy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{session=projects/*/locations/*/agents/*/sessions/*}:matchIntent" - }, - { - "httpMethod": "POST", - "path": "/v3/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:matchIntent" + "path": "/v1/{name=projects/*/locations/*/taxonomies/*}:replace" } ] - }, - { - "shortName": "StreamingDetectIntent", - "fullName": "google.cloud.dialogflow.cx.v3.Sessions.StreamingDetectIntent", - "mode": "BIDIRECTIONAL_STREAMING" } ] + } + ], + "configFile": "datacatalog_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.datacatalog.v1.DataCatalog", + "google.cloud.datacatalog.v1.PolicyTagManager", + "google.cloud.datacatalog.v1.PolicyTagManagerSerialization" + ] + }, + { + "id": "google.cloud.datacatalog.v1beta1", + "directory": "google/cloud/datacatalog/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "datacatalog.googleapis.com", + "title": "Google Cloud Data Catalog API", + "description": "A fully managed and highly scalable data discovery and metadata management service.", + "importDirectories": [ + "google/api", + "google/cloud/datacatalog/v1beta1", + "google/iam/v1", + "google/protobuf" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 10 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DataCatalog.V1Beta1": 10 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog": 10 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 10 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.datacatalog.v1beta1": 10 + } }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DataCatalog\\V1beta1": 10 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DataCatalog::V1beta1": 10 + } + } + }, + "services": [ { - "shortName": "TestCases", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases", + "shortName": "DataCatalog", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog", "methods": [ { - "shortName": "BatchDeleteTestCases", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.BatchDeleteTestCases", + "shortName": "CreateEntry", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases:batchDelete" + "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries" } ] }, { - "shortName": "BatchRunTestCases", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.BatchRunTestCases", + "shortName": "CreateEntryGroup", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntryGroup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases:batchRun" + "path": "/v1beta1/{parent=projects/*/locations/*}/entryGroups" } ] }, { - "shortName": "CalculateCoverage", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.CalculateCoverage", + "shortName": "CreateTag", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{agent=projects/*/locations/*/agents/*}/testCases:calculateCoverage" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags" } ] }, { - "shortName": "CreateTestCase", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.CreateTestCase", + "shortName": "CreateTagTemplate", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases" + "path": "/v1beta1/{parent=projects/*/locations/*}/tagTemplates" } ] }, { - "shortName": "ExportTestCases", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.ExportTestCases", + "shortName": "CreateTagTemplateField", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplateField", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases:export" + "path": "/v1beta1/{parent=projects/*/locations/*/tagTemplates/*}/fields" } ] }, { - "shortName": "GetTestCase", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.GetTestCase", + "shortName": "DeleteEntry", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}" + } + ] + }, + { + "shortName": "DeleteEntryGroup", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntryGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*}" + } + ] + }, + { + "shortName": "DeleteTag", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTag", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*/tags/*}" + } + ] + }, + { + "shortName": "DeleteTagTemplate", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}" + } + ] + }, + { + "shortName": "DeleteTagTemplateField", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplateField", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" + } + ] + }, + { + "shortName": "GetEntry", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.GetEntry", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/testCases/*}" + "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}" } ] }, { - "shortName": "GetTestCaseResult", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.GetTestCaseResult", + "shortName": "GetEntryGroup", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.GetEntryGroup", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/testCases/*/results/*}" + "path": "/v1beta1/{name=projects/*/locations/*/entryGroups/*}" } ] }, { - "shortName": "ImportTestCases", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.ImportTestCases", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases:import" + "path": "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy" } ] }, { - "shortName": "ListTestCaseResults", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.ListTestCaseResults", + "shortName": "GetTagTemplate", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.GetTagTemplate", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/testCases/*}/results" + "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}" } ] }, { - "shortName": "ListTestCases", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.ListTestCases", + "shortName": "ListEntries", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.ListEntries", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases" + "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries" } ] }, { - "shortName": "RunTestCase", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.RunTestCase", + "shortName": "ListEntryGroups", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.ListEntryGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/entryGroups" + } + ] + }, + { + "shortName": "ListTags", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.ListTags", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags" + } + ] + }, + { + "shortName": "LookupEntry", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.LookupEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/entries:lookup" + } + ] + }, + { + "shortName": "RenameTagTemplateField", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.RenameTagTemplateField", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*/testCases/*}:run" + "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename" } ] }, { - "shortName": "UpdateTestCase", - "fullName": "google.cloud.dialogflow.cx.v3.TestCases.UpdateTestCase", + "shortName": "SearchCatalog", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{test_case.name=projects/*/locations/*/agents/*/testCases/*}" + "httpMethod": "POST", + "path": "/v1beta1/catalog:search" } ] - } - ] - }, - { - "shortName": "TransitionRouteGroups", - "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups", - "methods": [ + }, { - "shortName": "CreateTransitionRouteGroup", - "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.CreateTransitionRouteGroup", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/transitionRouteGroups" + "path": "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy" } ] }, { - "shortName": "DeleteTransitionRouteGroup", - "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.DeleteTransitionRouteGroup", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions" } ] }, { - "shortName": "GetTransitionRouteGroup", - "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.GetTransitionRouteGroup", + "shortName": "UpdateEntry", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntry", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + "httpMethod": "PATCH", + "path": "/v1beta1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}" } ] }, { - "shortName": "ListTransitionRouteGroups", - "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.ListTransitionRouteGroups", + "shortName": "UpdateEntryGroup", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntryGroup", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/transitionRouteGroups" + "httpMethod": "PATCH", + "path": "/v1beta1/{entry_group.name=projects/*/locations/*/entryGroups/*}" } ] }, { - "shortName": "UpdateTransitionRouteGroup", - "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.UpdateTransitionRouteGroup", + "shortName": "UpdateTag", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTag", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v3/{transition_route_group.name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + "path": "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}" + } + ] + }, + { + "shortName": "UpdateTagTemplate", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{tag_template.name=projects/*/locations/*/tagTemplates/*}" + } + ] + }, + { + "shortName": "UpdateTagTemplateField", + "fullName": "google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplateField", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}" } ] } ] }, { - "shortName": "Versions", - "fullName": "google.cloud.dialogflow.cx.v3.Versions", + "shortName": "PolicyTagManager", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager", "methods": [ { - "shortName": "CompareVersions", - "fullName": "google.cloud.dialogflow.cx.v3.Versions.CompareVersions", + "shortName": "CreatePolicyTag", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.CreatePolicyTag", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{base_version=projects/*/locations/*/agents/*/flows/*/versions/*}:compareVersions" + "path": "/v1beta1/{parent=projects/*/locations/*/taxonomies/*}/policyTags" } ] }, { - "shortName": "CreateVersion", - "fullName": "google.cloud.dialogflow.cx.v3.Versions.CreateVersion", + "shortName": "CreateTaxonomy", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.CreateTaxonomy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/versions" + "path": "/v1beta1/{parent=projects/*/locations/*}/taxonomies" } ] }, { - "shortName": "DeleteVersion", - "fullName": "google.cloud.dialogflow.cx.v3.Versions.DeleteVersion", + "shortName": "DeletePolicyTag", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.DeletePolicyTag", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/versions/*}" + "path": "/v1beta1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}" } ] }, { - "shortName": "GetVersion", - "fullName": "google.cloud.dialogflow.cx.v3.Versions.GetVersion", + "shortName": "DeleteTaxonomy", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.DeleteTaxonomy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/taxonomies/*}" + } + ] + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:getIamPolicy" + } + ] + }, + { + "shortName": "GetPolicyTag", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.GetPolicyTag", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/versions/*}" + "path": "/v1beta1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}" } ] }, { - "shortName": "ListVersions", - "fullName": "google.cloud.dialogflow.cx.v3.Versions.ListVersions", + "shortName": "GetTaxonomy", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.GetTaxonomy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/versions" + "path": "/v1beta1/{name=projects/*/locations/*/taxonomies/*}" } ] }, { - "shortName": "LoadVersion", - "fullName": "google.cloud.dialogflow.cx.v3.Versions.LoadVersion", + "shortName": "ListPolicyTags", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.ListPolicyTags", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/versions/*}:load" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/taxonomies/*}/policyTags" } ] }, { - "shortName": "UpdateVersion", - "fullName": "google.cloud.dialogflow.cx.v3.Versions.UpdateVersion", + "shortName": "ListTaxonomies", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.ListTaxonomies", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{version.name=projects/*/locations/*/agents/*/flows/*/versions/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/taxonomies" } ] - } - ] - }, - { - "shortName": "Webhooks", - "fullName": "google.cloud.dialogflow.cx.v3.Webhooks", - "methods": [ + }, { - "shortName": "CreateWebhook", - "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.CreateWebhook", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/webhooks" + "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:setIamPolicy" } ] }, { - "shortName": "DeleteWebhook", - "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.DeleteWebhook", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.TestIamPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3/{name=projects/*/locations/*/agents/*/webhooks/*}" + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:testIamPermissions" } ] }, { - "shortName": "GetWebhook", - "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.GetWebhook", + "shortName": "UpdatePolicyTag", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.UpdatePolicyTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3/{name=projects/*/locations/*/agents/*/webhooks/*}" + "httpMethod": "PATCH", + "path": "/v1beta1/{policy_tag.name=projects/*/locations/*/taxonomies/*/policyTags/*}" } ] }, { - "shortName": "ListWebhooks", - "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks", + "shortName": "UpdateTaxonomy", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManager.UpdateTaxonomy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{taxonomy.name=projects/*/locations/*/taxonomies/*}" + } + ] + } + ] + }, + { + "shortName": "PolicyTagManagerSerialization", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization", + "methods": [ + { + "shortName": "ExportTaxonomies", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization.ExportTaxonomies", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3/{parent=projects/*/locations/*/agents/*}/webhooks" + "path": "/v1beta1/{parent=projects/*/locations/*}/taxonomies:export" } ] }, { - "shortName": "UpdateWebhook", - "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook", + "shortName": "ImportTaxonomies", + "fullName": "google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization.ImportTaxonomies", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3/{webhook.name=projects/*/locations/*/agents/*/webhooks/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/taxonomies:import" } ] } ] } ], - "configFile": "dialogflow_v3.yaml" + "configFile": "datacatalog_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.datacatalog.v1beta1.DataCatalog", + "google.cloud.datacatalog.v1beta1.PolicyTagManager", + "google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization" + ] }, { - "id": "google.cloud.dialogflow.cx.v3beta1", - "directory": "google/cloud/dialogflow/cx/v3beta1", - "version": "v3beta1", - "majorVersion": "v3", - "hostName": "dialogflow.googleapis.com", - "title": "Dialogflow API", - "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "id": "google.cloud.dataform.v1alpha2", + "directory": "google/cloud/dataform/v1alpha2", + "version": "v1alpha2", + "majorVersion": "v1", + "hostName": "dataform.googleapis.com", + "title": "Dataform API", + "description": "", "importDirectories": [ "google/api", - "google/cloud/dialogflow/cx/v3beta1", - "google/longrunning", "google/protobuf", - "google/rpc", "google/type" ], "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 21 - } - }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.Dialogflow.Cx.V3Beta1": 21 + "Google.Cloud.Dataform.V1Alpha2": 1 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3beta1;cx": 21 + "google.golang.org/genproto/googleapis/cloud/dataform/v1alpha2;dataform": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 21 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.dialogflow.cx.v3beta1": 21 + "com.google.cloud.dataform.v1alpha2": 1 } }, - "objc_class_prefix": { + "php_namespace": { "valueCounts": { - "DF": 21 + "Google\\Cloud\\Dataform\\V1alpha2": 1 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Dialogflow::CX::V3beta1": 21 + "Google::Cloud::Dataform::V1alpha2": 1 } } }, "services": [ { - "shortName": "Agents", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents", + "shortName": "Dataform", + "fullName": "google.cloud.dataform.v1alpha2.Dataform", "methods": [ { - "shortName": "CreateAgent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent", + "shortName": "CancelWorkflowInvocation", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.CancelWorkflowInvocation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*}/agents" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:cancel" } ] }, { - "shortName": "DeleteAgent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.DeleteAgent", + "shortName": "CommitWorkspaceChanges", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.CommitWorkspaceChanges", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*}" + "httpMethod": "POST", + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:commit" } ] }, { - "shortName": "ExportAgent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent", + "shortName": "CreateCompilationResult", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.CreateCompilationResult", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*}:export" + "path": "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/compilationResults" } ] }, { - "shortName": "GetAgent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.GetAgent", + "shortName": "CreateRepository", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.CreateRepository", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*}" + "httpMethod": "POST", + "path": "/v1alpha2/{parent=projects/*/locations/*}/repositories" } ] }, { - "shortName": "GetAgentValidationResult", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.GetAgentValidationResult", + "shortName": "CreateWorkflowInvocation", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.CreateWorkflowInvocation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/validationResult}" + "httpMethod": "POST", + "path": "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/workflowInvocations" } ] }, { - "shortName": "ListAgents", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents", + "shortName": "CreateWorkspace", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.CreateWorkspace", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*}/agents" + "httpMethod": "POST", + "path": "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/workspaces" } ] }, { - "shortName": "RestoreAgent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.RestoreAgent", + "shortName": "DeleteRepository", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.DeleteRepository", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*}:restore" + "httpMethod": "DELETE", + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*}" } ] }, { - "shortName": "UpdateAgent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent", + "shortName": "DeleteWorkflowInvocation", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.DeleteWorkflowInvocation", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{agent.name=projects/*/locations/*/agents/*}" + "httpMethod": "DELETE", + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}" } ] }, { - "shortName": "ValidateAgent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.ValidateAgent", + "shortName": "DeleteWorkspace", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.DeleteWorkspace", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*}:validate" + "httpMethod": "DELETE", + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}" } ] - } - ] - }, - { - "shortName": "Changelogs", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Changelogs", - "methods": [ + }, { - "shortName": "GetChangelog", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Changelogs.GetChangelog", + "shortName": "FetchFileDiff", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.FetchFileDiff", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/changelogs/*}" + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileDiff" } ] }, { - "shortName": "ListChangelogs", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Changelogs.ListChangelogs", + "shortName": "FetchFileGitStatuses", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.FetchFileGitStatuses", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/changelogs" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileGitStatuses" } ] - } - ] - }, - { - "shortName": "Deployments", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Deployments", - "methods": [ + }, { - "shortName": "GetDeployment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Deployments.GetDeployment", + "shortName": "FetchGitAheadBehind", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.FetchGitAheadBehind", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/deployments/*}" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchGitAheadBehind" } ] }, { - "shortName": "ListDeployments", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Deployments.ListDeployments", + "shortName": "FetchRemoteBranches", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.FetchRemoteBranches", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*}/deployments" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*}:fetchRemoteBranches" } ] - } - ] - }, - { - "shortName": "EntityTypes", - "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes", - "methods": [ + }, { - "shortName": "CreateEntityType", - "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.CreateEntityType", + "shortName": "GetCompilationResult", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.GetCompilationResult", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/entityTypes" + "httpMethod": "GET", + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/compilationResults/*}" } ] }, { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.DeleteEntityType", + "shortName": "GetRepository", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.GetRepository", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/entityTypes/*}" + "httpMethod": "GET", + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*}" } ] }, { - "shortName": "GetEntityType", - "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType", + "shortName": "GetWorkflowInvocation", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.GetWorkflowInvocation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/entityTypes/*}" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}" } ] }, { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes", + "shortName": "GetWorkspace", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.GetWorkspace", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/entityTypes" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}" } ] }, { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v3beta1/{entity_type.name=projects/*/locations/*/agents/*/entityTypes/*}" - } - ] - } - ] - }, - { - "shortName": "Environments", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments", - "methods": [ - { - "shortName": "CreateEnvironment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.CreateEnvironment", + "shortName": "InstallNpmPackages", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.InstallNpmPackages", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/environments" + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:installNpmPackages" } ] }, { - "shortName": "DeleteEnvironment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.DeleteEnvironment", + "shortName": "ListCompilationResults", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.ListCompilationResults", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*}" + "httpMethod": "GET", + "path": "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/compilationResults" } ] }, { - "shortName": "DeployFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.DeployFlow", + "shortName": "ListRepositories", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.ListRepositories", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{environment=projects/*/locations/*/agents/*/environments/*}:deployFlow" + "httpMethod": "GET", + "path": "/v1alpha2/{parent=projects/*/locations/*}/repositories" } ] }, { - "shortName": "GetEnvironment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.GetEnvironment", + "shortName": "ListWorkflowInvocations", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.ListWorkflowInvocations", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*}" + "path": "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/workflowInvocations" } ] }, { - "shortName": "ListContinuousTestResults", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.ListContinuousTestResults", + "shortName": "ListWorkspaces", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.ListWorkspaces", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*}/continuousTestResults" + "path": "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/workspaces" } ] }, { - "shortName": "ListEnvironments", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.ListEnvironments", + "shortName": "MakeDirectory", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.MakeDirectory", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/environments" + "httpMethod": "POST", + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:makeDirectory" } ] }, { - "shortName": "LookupEnvironmentHistory", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.LookupEnvironmentHistory", + "shortName": "MoveDirectory", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.MoveDirectory", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*}:lookupEnvironmentHistory" + "httpMethod": "POST", + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveDirectory" } ] }, { - "shortName": "RunContinuousTest", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.RunContinuousTest", + "shortName": "MoveFile", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.MoveFile", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{environment=projects/*/locations/*/agents/*/environments/*}:runContinuousTest" + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveFile" } ] }, { - "shortName": "UpdateEnvironment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.UpdateEnvironment", + "shortName": "PullGitCommits", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.PullGitCommits", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{environment.name=projects/*/locations/*/agents/*/environments/*}" + "httpMethod": "POST", + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:pull" } ] - } - ] - }, - { - "shortName": "Experiments", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments", - "methods": [ + }, { - "shortName": "CreateExperiment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.CreateExperiment", + "shortName": "PushGitCommits", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.PushGitCommits", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*}/experiments" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:push" } ] }, { - "shortName": "DeleteExperiment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.DeleteExperiment", + "shortName": "QueryCompilationResultActions", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.QueryCompilationResultActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + "httpMethod": "GET", + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/compilationResults/*}:query" } ] }, { - "shortName": "GetExperiment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.GetExperiment", + "shortName": "QueryDirectoryContents", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.QueryDirectoryContents", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:queryDirectoryContents" } ] }, { - "shortName": "ListExperiments", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.ListExperiments", + "shortName": "QueryWorkflowInvocationActions", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.QueryWorkflowInvocationActions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*}/experiments" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:query" } ] }, { - "shortName": "StartExperiment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.StartExperiment", + "shortName": "ReadFile", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.ReadFile", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:start" + "httpMethod": "GET", + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:readFile" } ] }, { - "shortName": "StopExperiment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.StopExperiment", + "shortName": "RemoveDirectory", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.RemoveDirectory", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:stop" + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeDirectory" } ] }, { - "shortName": "UpdateExperiment", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.UpdateExperiment", + "shortName": "RemoveFile", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.RemoveFile", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{experiment.name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + "httpMethod": "POST", + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeFile" } ] - } - ] - }, - { - "shortName": "Flows", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows", - "methods": [ + }, { - "shortName": "CreateFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow", + "shortName": "ResetWorkspaceChanges", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.ResetWorkspaceChanges", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/flows" + "path": "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:reset" } ] }, { - "shortName": "DeleteFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow", + "shortName": "UpdateRepository", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.UpdateRepository", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}" + "httpMethod": "PATCH", + "path": "/v1alpha2/{repository.name=projects/*/locations/*/repositories/*}" } ] }, { - "shortName": "ExportFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.ExportFlow", + "shortName": "WriteFile", + "fullName": "google.cloud.dataform.v1alpha2.Dataform.WriteFile", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}:export" + "path": "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:writeFile" } ] - }, + } + ] + } + ], + "configFile": "dataform_v1alpha2.yaml", + "serviceConfigApiNames": [ + "google.cloud.dataform.v1alpha2.Dataform", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy" + ] + }, + { + "id": "google.cloud.dataform.v1beta1", + "directory": "google/cloud/dataform/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "dataform.googleapis.com", + "title": "Dataform API", + "description": "", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Dataform.V1Beta1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/dataform/v1beta1;dataform": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.dataform.v1beta1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Dataform\\V1beta1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Dataform::V1beta1": 1 + } + } + }, + "services": [ + { + "shortName": "Dataform", + "fullName": "google.cloud.dataform.v1beta1.Dataform", + "methods": [ { - "shortName": "GetFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow", + "shortName": "CancelWorkflowInvocation", + "fullName": "google.cloud.dataform.v1beta1.Dataform.CancelWorkflowInvocation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:cancel" } ] }, { - "shortName": "GetFlowValidationResult", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.GetFlowValidationResult", + "shortName": "CommitWorkspaceChanges", + "fullName": "google.cloud.dataform.v1beta1.Dataform.CommitWorkspaceChanges", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/validationResult}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:commit" } ] }, { - "shortName": "ImportFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.ImportFlow", + "shortName": "CreateCompilationResult", + "fullName": "google.cloud.dataform.v1beta1.Dataform.CreateCompilationResult", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/flows:import" + "path": "/v1beta1/{parent=projects/*/locations/*/repositories/*}/compilationResults" } ] }, { - "shortName": "ListFlows", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows", + "shortName": "CreateRepository", + "fullName": "google.cloud.dataform.v1beta1.Dataform.CreateRepository", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/flows" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/repositories" } ] }, { - "shortName": "TrainFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow", + "shortName": "CreateWorkflowInvocation", + "fullName": "google.cloud.dataform.v1beta1.Dataform.CreateWorkflowInvocation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}:train" + "path": "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowInvocations" } ] }, { - "shortName": "UpdateFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow", + "shortName": "CreateWorkspace", + "fullName": "google.cloud.dataform.v1beta1.Dataform.CreateWorkspace", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{flow.name=projects/*/locations/*/agents/*/flows/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workspaces" } ] }, { - "shortName": "ValidateFlow", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.ValidateFlow", + "shortName": "DeleteRepository", + "fullName": "google.cloud.dataform.v1beta1.Dataform.DeleteRepository", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}:validate" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*}" } ] - } - ] - }, - { - "shortName": "Intents", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents", - "methods": [ + }, { - "shortName": "CreateIntent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.CreateIntent", + "shortName": "DeleteWorkflowInvocation", + "fullName": "google.cloud.dataform.v1beta1.Dataform.DeleteWorkflowInvocation", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/intents" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}" } ] }, { - "shortName": "DeleteIntent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.DeleteIntent", + "shortName": "DeleteWorkspace", + "fullName": "google.cloud.dataform.v1beta1.Dataform.DeleteWorkspace", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/intents/*}" + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}" } ] }, { - "shortName": "GetIntent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.GetIntent", + "shortName": "FetchFileDiff", + "fullName": "google.cloud.dataform.v1beta1.Dataform.FetchFileDiff", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/intents/*}" + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileDiff" } ] }, { - "shortName": "ListIntents", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.ListIntents", + "shortName": "FetchFileGitStatuses", + "fullName": "google.cloud.dataform.v1beta1.Dataform.FetchFileGitStatuses", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/intents" + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileGitStatuses" } ] }, { - "shortName": "UpdateIntent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.UpdateIntent", + "shortName": "FetchGitAheadBehind", + "fullName": "google.cloud.dataform.v1beta1.Dataform.FetchGitAheadBehind", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{intent.name=projects/*/locations/*/agents/*/intents/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchGitAheadBehind" } ] - } - ] - }, - { - "shortName": "Pages", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages", - "methods": [ + }, { - "shortName": "CreatePage", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage", + "shortName": "FetchRemoteBranches", + "fullName": "google.cloud.dataform.v1beta1.Dataform.FetchRemoteBranches", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/pages" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*}:fetchRemoteBranches" } ] }, { - "shortName": "DeletePage", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.DeletePage", + "shortName": "GetCompilationResult", + "fullName": "google.cloud.dataform.v1beta1.Dataform.GetCompilationResult", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/compilationResults/*}" } ] }, { - "shortName": "GetPage", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.GetPage", + "shortName": "GetRepository", + "fullName": "google.cloud.dataform.v1beta1.Dataform.GetRepository", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*}" } ] }, { - "shortName": "ListPages", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.ListPages", + "shortName": "GetWorkflowInvocation", + "fullName": "google.cloud.dataform.v1beta1.Dataform.GetWorkflowInvocation", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/pages" + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}" } ] }, { - "shortName": "UpdatePage", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage", + "shortName": "GetWorkspace", + "fullName": "google.cloud.dataform.v1beta1.Dataform.GetWorkspace", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{page.name=projects/*/locations/*/agents/*/flows/*/pages/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}" } ] - } - ] - }, - { - "shortName": "SecuritySettingsService", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService", - "methods": [ + }, { - "shortName": "CreateSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.CreateSecuritySettings", + "shortName": "InstallNpmPackages", + "fullName": "google.cloud.dataform.v1beta1.Dataform.InstallNpmPackages", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*}/securitySettings" + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:installNpmPackages" } ] }, { - "shortName": "DeleteSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.DeleteSecuritySettings", + "shortName": "ListCompilationResults", + "fullName": "google.cloud.dataform.v1beta1.Dataform.ListCompilationResults", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/securitySettings/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/repositories/*}/compilationResults" } ] }, { - "shortName": "GetSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.GetSecuritySettings", + "shortName": "ListRepositories", + "fullName": "google.cloud.dataform.v1beta1.Dataform.ListRepositories", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/securitySettings/*}" + "path": "/v1beta1/{parent=projects/*/locations/*}/repositories" } ] }, { - "shortName": "ListSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.ListSecuritySettings", + "shortName": "ListWorkflowInvocations", + "fullName": "google.cloud.dataform.v1beta1.Dataform.ListWorkflowInvocations", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*}/securitySettings" + "path": "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowInvocations" } ] }, { - "shortName": "UpdateSecuritySettings", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.UpdateSecuritySettings", + "shortName": "ListWorkspaces", + "fullName": "google.cloud.dataform.v1beta1.Dataform.ListWorkspaces", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{security_settings.name=projects/*/locations/*/securitySettings/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workspaces" } ] - } - ] - }, - { - "shortName": "SessionEntityTypes", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes", - "methods": [ + }, { - "shortName": "CreateSessionEntityType", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.CreateSessionEntityType", + "shortName": "MakeDirectory", + "fullName": "google.cloud.dataform.v1beta1.Dataform.MakeDirectory", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes" - }, + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:makeDirectory" + } + ] + }, + { + "shortName": "MoveDirectory", + "fullName": "google.cloud.dataform.v1beta1.Dataform.MoveDirectory", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes" + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveDirectory" } ] }, { - "shortName": "DeleteSessionEntityType", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.DeleteSessionEntityType", + "shortName": "MoveFile", + "fullName": "google.cloud.dataform.v1beta1.Dataform.MoveFile", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveFile" } ] }, { - "shortName": "GetSessionEntityType", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.GetSessionEntityType", + "shortName": "PullGitCommits", + "fullName": "google.cloud.dataform.v1beta1.Dataform.PullGitCommits", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:pull" } ] }, { - "shortName": "ListSessionEntityTypes", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes", + "shortName": "PushGitCommits", + "fullName": "google.cloud.dataform.v1beta1.Dataform.PushGitCommits", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes" - }, - { - "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:push" } ] }, { - "shortName": "UpdateSessionEntityType", - "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.UpdateSessionEntityType", + "shortName": "QueryCompilationResultActions", + "fullName": "google.cloud.dataform.v1beta1.Dataform.QueryCompilationResultActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{session_entity_type.name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v3beta1/{session_entity_type.name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/compilationResults/*}:query" } ] - } - ] - }, - { - "shortName": "Sessions", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions", - "methods": [ + }, { - "shortName": "DetectIntent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent", + "shortName": "QueryDirectoryContents", + "fullName": "google.cloud.dataform.v1beta1.Dataform.QueryDirectoryContents", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{session=projects/*/locations/*/agents/*/sessions/*}:detectIntent" - }, - { - "httpMethod": "POST", - "path": "/v3beta1/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:detectIntent" + "httpMethod": "GET", + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:queryDirectoryContents" } ] }, { - "shortName": "FulfillIntent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions.FulfillIntent", + "shortName": "QueryWorkflowInvocationActions", + "fullName": "google.cloud.dataform.v1beta1.Dataform.QueryWorkflowInvocationActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{match_intent_request.session=projects/*/locations/*/agents/*/sessions/*}:fulfillIntent" - }, - { - "httpMethod": "POST", - "path": "/v3beta1/{match_intent_request.session=projects/*/locations/*/agents/*/environments/*/sessions/*}:fulfillIntent" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:query" } ] }, { - "shortName": "MatchIntent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent", + "shortName": "ReadFile", + "fullName": "google.cloud.dataform.v1beta1.Dataform.ReadFile", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{session=projects/*/locations/*/agents/*/sessions/*}:matchIntent" - }, - { - "httpMethod": "POST", - "path": "/v3beta1/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:matchIntent" + "httpMethod": "GET", + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:readFile" } ] }, { - "shortName": "StreamingDetectIntent", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent", - "mode": "BIDIRECTIONAL_STREAMING" - } - ] - }, - { - "shortName": "TestCases", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases", - "methods": [ - { - "shortName": "BatchDeleteTestCases", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.BatchDeleteTestCases", + "shortName": "RemoveDirectory", + "fullName": "google.cloud.dataform.v1beta1.Dataform.RemoveDirectory", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases:batchDelete" + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeDirectory" } ] }, { - "shortName": "BatchRunTestCases", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases", + "shortName": "RemoveFile", + "fullName": "google.cloud.dataform.v1beta1.Dataform.RemoveFile", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases:batchRun" + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeFile" } ] }, { - "shortName": "CalculateCoverage", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.CalculateCoverage", + "shortName": "ResetWorkspaceChanges", + "fullName": "google.cloud.dataform.v1beta1.Dataform.ResetWorkspaceChanges", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{agent=projects/*/locations/*/agents/*}/testCases:calculateCoverage" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:reset" } ] }, { - "shortName": "CreateTestCase", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.CreateTestCase", + "shortName": "UpdateRepository", + "fullName": "google.cloud.dataform.v1beta1.Dataform.UpdateRepository", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases" + "httpMethod": "PATCH", + "path": "/v1beta1/{repository.name=projects/*/locations/*/repositories/*}" } ] }, { - "shortName": "ExportTestCases", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases", + "shortName": "WriteFile", + "fullName": "google.cloud.dataform.v1beta1.Dataform.WriteFile", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases:export" + "path": "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:writeFile" } ] - }, + } + ] + } + ], + "configFile": "dataform_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.dataform.v1beta1.Dataform", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy" + ] + }, + { + "id": "google.cloud.datafusion.v1", + "directory": "google/cloud/datafusion/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "datafusion.googleapis.com", + "title": "Cloud Data Fusion API", + "description": "Cloud Data Fusion is a fully-managed, cloud native, enterprise data integration service for quickly building and managing data pipelines. It provides a graphical interface to increase time efficiency and reduce complexity, and allows business users, developers, and data scientists to easily and reliably build scalable data integration solutions to cleanse, prepare, blend, transfer and transform data without having to wrestle with infrastructure.", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DataFusion.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/datafusion/v1;datafusion": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.datafusion.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DataFusion\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DataFusion::V1": 1 + } + } + }, + "services": [ + { + "shortName": "DataFusion", + "fullName": "google.cloud.datafusion.v1.DataFusion", + "methods": [ { - "shortName": "GetTestCase", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCase", + "shortName": "CreateInstance", + "fullName": "google.cloud.datafusion.v1.DataFusion.CreateInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/testCases/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/instances" } ] }, { - "shortName": "GetTestCaseResult", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCaseResult", + "shortName": "DeleteInstance", + "fullName": "google.cloud.datafusion.v1.DataFusion.DeleteInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/testCases/*/results/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/instances/*}" } ] }, { - "shortName": "ImportTestCases", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases", + "shortName": "GetInstance", + "fullName": "google.cloud.datafusion.v1.DataFusion.GetInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases:import" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/instances/*}" } ] }, { - "shortName": "ListTestCaseResults", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults", + "shortName": "ListAvailableVersions", + "fullName": "google.cloud.datafusion.v1.DataFusion.ListAvailableVersions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/testCases/*}/results" + "path": "/v1/{parent=projects/*/locations/*}/versions" } ] }, { - "shortName": "ListTestCases", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCases", + "shortName": "ListInstances", + "fullName": "google.cloud.datafusion.v1.DataFusion.ListInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases" + "path": "/v1/{parent=projects/*/locations/*}/instances" } ] }, { - "shortName": "RunTestCase", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase", + "shortName": "RestartInstance", + "fullName": "google.cloud.datafusion.v1.DataFusion.RestartInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/testCases/*}:run" + "path": "/v1/{name=projects/*/locations/*/instances/*}:restart" } ] }, { - "shortName": "UpdateTestCase", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.UpdateTestCase", + "shortName": "UpdateInstance", + "fullName": "google.cloud.datafusion.v1.DataFusion.UpdateInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v3beta1/{test_case.name=projects/*/locations/*/agents/*/testCases/*}" + "path": "/v1/{instance.name=projects/*/locations/*/instances/*}" } ] } ] - }, - { - "shortName": "TransitionRouteGroups", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups", - "methods": [ - { - "shortName": "CreateTransitionRouteGroup", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.CreateTransitionRouteGroup", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/transitionRouteGroups" - } - ] - }, + } + ], + "configFile": "datafusion_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.datafusion.v1.DataFusion" + ] + }, + { + "id": "google.cloud.datafusion.v1beta1", + "directory": "google/cloud/datafusion/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "datafusion.googleapis.com", + "title": "Cloud Data Fusion API", + "description": "Cloud Data Fusion is a fully-managed, cloud native, enterprise data integration service for quickly building and managing data pipelines. It provides a graphical interface to increase time efficiency and reduce complexity, and allows business users, developers, and data scientists to easily and reliably build scalable data integration solutions to cleanse, prepare, blend, transfer and transform data without having to wrestle with infrastructure.", + "importDirectories": [ + "google/api", + "google/iam/v1", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DataFusion.V1Beta1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/datafusion/v1beta1;datafusion": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.datafusion.v1beta1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DataFusion\\V1beta1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DataFusion::V1beta1": 1 + } + } + }, + "services": [ + { + "shortName": "DataFusion", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion", + "methods": [ { - "shortName": "DeleteTransitionRouteGroup", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.DeleteTransitionRouteGroup", + "shortName": "AddDnsPeering", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.AddDnsPeering", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:add" } ] }, { - "shortName": "GetTransitionRouteGroup", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.GetTransitionRouteGroup", + "shortName": "CreateInstance", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.CreateInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/instances" } ] }, { - "shortName": "ListTransitionRouteGroups", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.ListTransitionRouteGroups", + "shortName": "DeleteInstance", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.DeleteInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/transitionRouteGroups" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/instances/*}" } ] }, { - "shortName": "UpdateTransitionRouteGroup", - "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.UpdateTransitionRouteGroup", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v3beta1/{transition_route_group.name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" - } - ] - } - ] - }, - { - "shortName": "Versions", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions", - "methods": [ - { - "shortName": "CompareVersions", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.CompareVersions", + "shortName": "GetInstance", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.GetInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{base_version=projects/*/locations/*/agents/*/flows/*/versions/*}:compareVersions" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/instances/*}" } ] }, { - "shortName": "CreateVersion", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.CreateVersion", + "shortName": "ListAvailableVersions", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.ListAvailableVersions", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/versions" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/versions" } ] }, { - "shortName": "DeleteVersion", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.DeleteVersion", + "shortName": "ListDnsPeerings", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.ListDnsPeerings", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/versions/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:list" } ] }, { - "shortName": "GetVersion", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.GetVersion", + "shortName": "ListInstances", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.ListInstances", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/versions/*}" + "path": "/v1beta1/{parent=projects/*/locations/*}/instances" } ] }, { - "shortName": "ListVersions", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.ListVersions", + "shortName": "ListNamespaces", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.ListNamespaces", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/versions" + "path": "/v1beta1/{parent=projects/*/locations/*/instances/*}/namespaces" } ] }, { - "shortName": "LoadVersion", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.LoadVersion", + "shortName": "RemoveDnsPeering", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.RemoveDnsPeering", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/versions/*}:load" + "path": "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:remove" } ] }, { - "shortName": "UpdateVersion", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.UpdateVersion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v3beta1/{version.name=projects/*/locations/*/agents/*/flows/*/versions/*}" - } - ] - } - ] - }, - { - "shortName": "Webhooks", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks", - "methods": [ - { - "shortName": "CreateWebhook", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook", + "shortName": "RemoveIamPolicy", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.RemoveIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/webhooks" - } - ] - }, - { - "shortName": "DeleteWebhook", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.DeleteWebhook", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/webhooks/*}" + "path": "/v1beta1/{resource=projects/*/locations/*/**}:removeIamPolicy" } ] }, { - "shortName": "GetWebhook", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.GetWebhook", + "shortName": "RestartInstance", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.RestartInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{name=projects/*/locations/*/agents/*/webhooks/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/instances/*}:restart" } ] }, { - "shortName": "ListWebhooks", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks", + "shortName": "UpdateInstance", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.UpdateInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/webhooks" + "httpMethod": "PATCH", + "path": "/v1beta1/{instance.name=projects/*/locations/*/instances/*}" } ] }, { - "shortName": "UpdateWebhook", - "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook", + "shortName": "UpgradeInstance", + "fullName": "google.cloud.datafusion.v1beta1.DataFusion.UpgradeInstance", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v3beta1/{webhook.name=projects/*/locations/*/agents/*/webhooks/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/instances/*}:upgrade" } ] } ] } ], - "configFile": "dialogflow_v3beta1.yaml" + "configFile": "datafusion_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.datafusion.v1beta1.DataFusion" + ] }, { - "id": "google.cloud.dialogflow.v2", - "directory": "google/cloud/dialogflow/v2", - "version": "v2", - "majorVersion": "v2", - "hostName": "dialogflow.googleapis.com", - "title": "Dialogflow API", - "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "id": "google.cloud.datalabeling.v1beta1", + "directory": "google/cloud/datalabeling/v1beta1", + "version": "v1beta1", + "majorVersion": "v1", + "hostName": "datalabeling.googleapis.com", + "title": "Data Labeling API", + "description": "Public API for Google Cloud AI Data Labeling Service.", "importDirectories": [ "google/api", - "google/cloud/dialogflow/v2", + "google/cloud/datalabeling/v1beta1", "google/longrunning", "google/protobuf", - "google/rpc", - "google/type" + "google/rpc" ], "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 21 - } - }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.Dialogflow.V2": 21 + "Google.Cloud.DataLabeling.V1Beta1": 10 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow": 21 + "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling": 10 } }, "java_multiple_files": { "valueCounts": { - "true": 21 + "true": 10 } }, "java_package": { "valueCounts": { - "com.google.cloud.dialogflow.v2": 21 + "com.google.cloud.datalabeling.v1beta1": 10 } }, - "objc_class_prefix": { + "php_namespace": { "valueCounts": { - "DF": 21 + "Google\\Cloud\\DataLabeling\\V1beta1": 10 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DataLabeling::V1beta1": 10 } } }, "services": [ { - "shortName": "Agents", - "fullName": "google.cloud.dialogflow.v2.Agents", + "shortName": "DataLabelingService", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService", "methods": [ { - "shortName": "DeleteAgent", - "fullName": "google.cloud.dialogflow.v2.Agents.DeleteAgent", + "shortName": "CreateAnnotationSpecSet", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.CreateAnnotationSpecSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{parent=projects/*}/agent" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{parent=projects/*/locations/*}/agent" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*}/annotationSpecSets" } ] }, { - "shortName": "ExportAgent", - "fullName": "google.cloud.dialogflow.v2.Agents.ExportAgent", + "shortName": "CreateDataset", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.CreateDataset", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*}/agent:export" - }, + "path": "/v1beta1/{parent=projects/*}/datasets" + } + ] + }, + { + "shortName": "CreateEvaluationJob", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.CreateEvaluationJob", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/agent:export" + "path": "/v1beta1/{parent=projects/*}/evaluationJobs" } ] }, { - "shortName": "GetAgent", - "fullName": "google.cloud.dialogflow.v2.Agents.GetAgent", + "shortName": "CreateInstruction", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.CreateInstruction", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*}/agent" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/agent" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*}/instructions" } ] }, { - "shortName": "GetValidationResult", - "fullName": "google.cloud.dialogflow.v2.Agents.GetValidationResult", + "shortName": "DeleteAnnotatedDataset", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteAnnotatedDataset", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*}/agent/validationResult" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/agent/validationResult" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}" } ] }, { - "shortName": "ImportAgent", - "fullName": "google.cloud.dialogflow.v2.Agents.ImportAgent", + "shortName": "DeleteAnnotationSpecSet", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteAnnotationSpecSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*}/agent:import" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/agent:import" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/annotationSpecSets/*}" } ] }, { - "shortName": "RestoreAgent", - "fullName": "google.cloud.dialogflow.v2.Agents.RestoreAgent", + "shortName": "DeleteDataset", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteDataset", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*}/agent:restore" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/agent:restore" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/datasets/*}" } ] }, { - "shortName": "SearchAgents", - "fullName": "google.cloud.dialogflow.v2.Agents.SearchAgents", + "shortName": "DeleteEvaluationJob", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteEvaluationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*}/agent:search" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/agent:search" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/evaluationJobs/*}" } ] }, { - "shortName": "SetAgent", - "fullName": "google.cloud.dialogflow.v2.Agents.SetAgent", + "shortName": "DeleteInstruction", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteInstruction", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{agent.parent=projects/*}/agent" - }, - { - "httpMethod": "POST", - "path": "/v2/{agent.parent=projects/*/locations/*}/agent" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/instructions/*}" } ] }, { - "shortName": "TrainAgent", - "fullName": "google.cloud.dialogflow.v2.Agents.TrainAgent", + "shortName": "ExportData", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ExportData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*}/agent:train" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/agent:train" + "path": "/v1beta1/{name=projects/*/datasets/*}:exportData" } ] - } - ] - }, - { - "shortName": "AnswerRecords", - "fullName": "google.cloud.dialogflow.v2.AnswerRecords", - "methods": [ + }, { - "shortName": "ListAnswerRecords", - "fullName": "google.cloud.dialogflow.v2.AnswerRecords.ListAnswerRecords", + "shortName": "GetAnnotatedDataset", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetAnnotatedDataset", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*}/answerRecords" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/answerRecords" + "path": "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}" } ] }, { - "shortName": "UpdateAnswerRecord", - "fullName": "google.cloud.dialogflow.v2.AnswerRecords.UpdateAnswerRecord", + "shortName": "GetAnnotationSpecSet", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetAnnotationSpecSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{answer_record.name=projects/*/answerRecords/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{answer_record.name=projects/*/locations/*/answerRecords/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/annotationSpecSets/*}" } ] - } - ] - }, - { - "shortName": "Contexts", - "fullName": "google.cloud.dialogflow.v2.Contexts", - "methods": [ + }, { - "shortName": "CreateContext", - "fullName": "google.cloud.dialogflow.v2.Contexts.CreateContext", + "shortName": "GetDataItem", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetDataItem", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/datasets/*/dataItems/*}" } ] }, { - "shortName": "DeleteAllContexts", - "fullName": "google.cloud.dialogflow.v2.Contexts.DeleteAllContexts", + "shortName": "GetDataset", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetDataset", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{parent=projects/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/datasets/*}" } ] }, { - "shortName": "DeleteContext", - "fullName": "google.cloud.dialogflow.v2.Contexts.DeleteContext", + "shortName": "GetEvaluation", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetEvaluation", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/datasets/*/evaluations/*}" } ] }, { - "shortName": "GetContext", - "fullName": "google.cloud.dialogflow.v2.Contexts.GetContext", + "shortName": "GetEvaluationJob", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetEvaluationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + "path": "/v1beta1/{name=projects/*/evaluationJobs/*}" } ] }, { - "shortName": "ListContexts", - "fullName": "google.cloud.dialogflow.v2.Contexts.ListContexts", + "shortName": "GetExample", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetExample", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" - }, + "path": "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*/examples/*}" + } + ] + }, + { + "shortName": "GetInstruction", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.GetInstruction", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts" - }, + "path": "/v1beta1/{name=projects/*/instructions/*}" + } + ] + }, + { + "shortName": "ImportData", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ImportData", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/datasets/*}:importData" } ] }, { - "shortName": "UpdateContext", - "fullName": "google.cloud.dialogflow.v2.Contexts.UpdateContext", + "shortName": "LabelImage", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.LabelImage", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{context.name=projects/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{context.name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{context.name=projects/*/locations/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{context.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/datasets/*}/image:label" } ] - } - ] - }, - { - "shortName": "ConversationProfiles", - "fullName": "google.cloud.dialogflow.v2.ConversationProfiles", - "methods": [ + }, { - "shortName": "CreateConversationProfile", - "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.CreateConversationProfile", + "shortName": "LabelText", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.LabelText", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*}/conversationProfiles" - }, + "path": "/v1beta1/{parent=projects/*/datasets/*}/text:label" + } + ] + }, + { + "shortName": "LabelVideo", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.LabelVideo", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/conversationProfiles" + "path": "/v1beta1/{parent=projects/*/datasets/*}/video:label" } ] }, { - "shortName": "DeleteConversationProfile", - "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.DeleteConversationProfile", + "shortName": "ListAnnotatedDatasets", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListAnnotatedDatasets", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/conversationProfiles/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/conversationProfiles/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/datasets/*}/annotatedDatasets" } ] }, { - "shortName": "GetConversationProfile", - "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.GetConversationProfile", + "shortName": "ListAnnotationSpecSets", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListAnnotationSpecSets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/conversationProfiles/*}" - }, + "path": "/v1beta1/{parent=projects/*}/annotationSpecSets" + } + ] + }, + { + "shortName": "ListDataItems", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListDataItems", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/conversationProfiles/*}" + "path": "/v1beta1/{parent=projects/*/datasets/*}/dataItems" } ] }, { - "shortName": "ListConversationProfiles", - "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.ListConversationProfiles", + "shortName": "ListDatasets", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListDatasets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*}/conversationProfiles" - }, + "path": "/v1beta1/{parent=projects/*}/datasets" + } + ] + }, + { + "shortName": "ListEvaluationJobs", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListEvaluationJobs", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/conversationProfiles" + "path": "/v1beta1/{parent=projects/*}/evaluationJobs" } ] }, { - "shortName": "UpdateConversationProfile", - "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.UpdateConversationProfile", + "shortName": "ListExamples", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListExamples", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{conversation_profile.name=projects/*/conversationProfiles/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{conversation_profile.name=projects/*/locations/*/conversationProfiles/*}" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/datasets/*/annotatedDatasets/*}/examples" } ] - } - ] - }, - { - "shortName": "Conversations", - "fullName": "google.cloud.dialogflow.v2.Conversations", - "methods": [ + }, { - "shortName": "CompleteConversation", - "fullName": "google.cloud.dialogflow.v2.Conversations.CompleteConversation", + "shortName": "ListInstructions", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ListInstructions", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{name=projects/*/conversations/*}:complete" - }, - { - "httpMethod": "POST", - "path": "/v2/{name=projects/*/locations/*/conversations/*}:complete" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*}/instructions" } ] }, { - "shortName": "CreateConversation", - "fullName": "google.cloud.dialogflow.v2.Conversations.CreateConversation", + "shortName": "PauseEvaluationJob", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.PauseEvaluationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*}/conversations" - }, + "path": "/v1beta1/{name=projects/*/evaluationJobs/*}:pause" + } + ] + }, + { + "shortName": "ResumeEvaluationJob", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.ResumeEvaluationJob", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/conversations" + "path": "/v1beta1/{name=projects/*/evaluationJobs/*}:resume" } ] }, { - "shortName": "GetConversation", - "fullName": "google.cloud.dialogflow.v2.Conversations.GetConversation", + "shortName": "SearchEvaluations", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.SearchEvaluations", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/conversations/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/conversations/*}" + "path": "/v1beta1/{parent=projects/*}/evaluations:search" } ] }, { - "shortName": "ListConversations", - "fullName": "google.cloud.dialogflow.v2.Conversations.ListConversations", + "shortName": "SearchExampleComparisons", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.SearchExampleComparisons", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*}/conversations" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/conversations" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search" } ] }, { - "shortName": "ListMessages", - "fullName": "google.cloud.dialogflow.v2.Conversations.ListMessages", + "shortName": "UpdateEvaluationJob", + "fullName": "google.cloud.datalabeling.v1beta1.DataLabelingService.UpdateEvaluationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/conversations/*}/messages" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/conversations/*}/messages" + "httpMethod": "PATCH", + "path": "/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}" } ] } ] + } + ], + "configFile": "datalabeling_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.datalabeling.v1beta1.DataLabelingService" + ] + }, + { + "id": "google.cloud.dataplex.v1", + "directory": "google/cloud/dataplex/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "dataplex.googleapis.com", + "title": "Cloud Dataplex API", + "description": "Dataplex API is used to manage the lifecycle of data lakes.", + "importDirectories": [ + "google/api", + "google/cloud/dataplex/v1", + "google/iam/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/dataplex/v1;dataplex": 7 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 7 + } }, + "java_package": { + "valueCounts": { + "com.google.cloud.dataplex.v1": 7 + } + } + }, + "services": [ { - "shortName": "Documents", - "fullName": "google.cloud.dialogflow.v2.Documents", + "shortName": "ContentService", + "fullName": "google.cloud.dataplex.v1.ContentService", "methods": [ { - "shortName": "CreateDocument", - "fullName": "google.cloud.dialogflow.v2.Documents.CreateDocument", + "shortName": "CreateContent", + "fullName": "google.cloud.dataplex.v1.ContentService.CreateContent", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/knowledgeBases/*}/documents" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents" + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/contentitems" }, { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent/knowledgeBases/*}/documents" + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/content" } ] }, { - "shortName": "DeleteDocument", - "fullName": "google.cloud.dialogflow.v2.Documents.DeleteDocument", + "shortName": "DeleteContent", + "fullName": "google.cloud.dataplex.v1.ContentService.DeleteContent", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/knowledgeBases/*/documents/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}" + "path": "/v1/{name=projects/*/locations/*/lakes/*/contentitems/**}" }, { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}" + "path": "/v1/{name=projects/*/locations/*/lakes/*/content/**}" } ] }, { - "shortName": "ExportDocument", - "fullName": "google.cloud.dialogflow.v2.Documents.ExportDocument", + "shortName": "GetContent", + "fullName": "google.cloud.dataplex.v1.ContentService.GetContent", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{name=projects/*/knowledgeBases/*/documents/*}:export" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/lakes/*/contentitems/**}" }, { - "httpMethod": "POST", - "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}:export" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/lakes/*/content/**}" } ] }, { - "shortName": "GetDocument", - "fullName": "google.cloud.dialogflow.v2.Documents.GetDocument", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.dataplex.v1.ContentService.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/knowledgeBases/*/documents/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}" + "path": "/v1/{resource=projects/*/locations/*/lakes/*/contentitems/**}:getIamPolicy" }, { "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}" + "path": "/v1/{resource=projects/*/locations/*/lakes/*/content/**}:getIamPolicy" } ] }, { - "shortName": "ImportDocuments", - "fullName": "google.cloud.dialogflow.v2.Documents.ImportDocuments", + "shortName": "ListContent", + "fullName": "google.cloud.dataplex.v1.ContentService.ListContent", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/knowledgeBases/*}/documents:import" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/contentitems" }, { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents:import" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/content" } ] }, { - "shortName": "ListDocuments", - "fullName": "google.cloud.dialogflow.v2.Documents.ListDocuments", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.dataplex.v1.ContentService.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/knowledgeBases/*}/documents" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/lakes/*/contentitems/**}:setIamPolicy" }, { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent/knowledgeBases/*}/documents" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/lakes/*/content/**}:setIamPolicy" } ] }, { - "shortName": "ReloadDocument", - "fullName": "google.cloud.dialogflow.v2.Documents.ReloadDocument", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.dataplex.v1.ContentService.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{name=projects/*/knowledgeBases/*/documents/*}:reload" - }, - { - "httpMethod": "POST", - "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}:reload" + "path": "/v1/{resource=projects/*/locations/*/lakes/*/contentitems/**}:testIamPermissions" }, { "httpMethod": "POST", - "path": "/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}:reload" + "path": "/v1/{resource=projects/*/locations/*/lakes/*/content/**}:testIamPermissions" } ] }, { - "shortName": "UpdateDocument", - "fullName": "google.cloud.dialogflow.v2.Documents.UpdateDocument", + "shortName": "UpdateContent", + "fullName": "google.cloud.dataplex.v1.ContentService.UpdateContent", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v2/{document.name=projects/*/knowledgeBases/*/documents/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{document.name=projects/*/locations/*/knowledgeBases/*/documents/*}" + "path": "/v1/{content.name=projects/*/locations/*/lakes/*/contentitems/**}" }, { "httpMethod": "PATCH", - "path": "/v2/{document.name=projects/*/agent/knowledgeBases/*/documents/*}" + "path": "/v1/{content.name=projects/*/locations/*/lakes/*/content/**}" } ] } ] }, { - "shortName": "EntityTypes", - "fullName": "google.cloud.dialogflow.v2.EntityTypes", + "shortName": "DataplexService", + "fullName": "google.cloud.dataplex.v1.DataplexService", "methods": [ { - "shortName": "BatchCreateEntities", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchCreateEntities", + "shortName": "CancelJob", + "fullName": "google.cloud.dataplex.v1.DataplexService.CancelJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchCreate" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchCreate" + "path": "/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}:cancel" } ] }, { - "shortName": "BatchDeleteEntities", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchDeleteEntities", + "shortName": "CreateAsset", + "fullName": "google.cloud.dataplex.v1.DataplexService.CreateAsset", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchDelete" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchDelete" + "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets" } ] }, { - "shortName": "BatchDeleteEntityTypes", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchDeleteEntityTypes", + "shortName": "CreateEnvironment", + "fullName": "google.cloud.dataplex.v1.DataplexService.CreateEnvironment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/entityTypes:batchDelete" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent}/entityTypes:batchDelete" + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/environments" } ] }, { - "shortName": "BatchUpdateEntities", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntities", + "shortName": "CreateLake", + "fullName": "google.cloud.dataplex.v1.DataplexService.CreateLake", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchUpdate" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchUpdate" + "path": "/v1/{parent=projects/*/locations/*}/lakes" } ] }, { - "shortName": "BatchUpdateEntityTypes", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes", + "shortName": "CreateTask", + "fullName": "google.cloud.dataplex.v1.DataplexService.CreateTask", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/entityTypes:batchUpdate" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent}/entityTypes:batchUpdate" + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/tasks" } ] }, { - "shortName": "CreateEntityType", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.CreateEntityType", + "shortName": "CreateZone", + "fullName": "google.cloud.dataplex.v1.DataplexService.CreateZone", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/entityTypes" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent}/entityTypes" + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/zones" } ] }, { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.DeleteEntityType", + "shortName": "DeleteAsset", + "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteAsset", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/agent/entityTypes/*}" + "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}" } ] }, { - "shortName": "GetEntityType", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.GetEntityType", + "shortName": "DeleteEnvironment", + "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteEnvironment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/entityTypes/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/entityTypes/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/lakes/*/environments/*}" } ] }, { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.ListEntityTypes", + "shortName": "DeleteLake", + "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteLake", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent}/entityTypes" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent}/entityTypes" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/lakes/*}" } ] }, { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.dialogflow.v2.EntityTypes.UpdateEntityType", + "shortName": "DeleteTask", + "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteTask", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{entity_type.name=projects/*/agent/entityTypes/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{entity_type.name=projects/*/locations/*/agent/entityTypes/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/lakes/*/tasks/*}" } ] - } - ] - }, - { - "shortName": "Environments", - "fullName": "google.cloud.dialogflow.v2.Environments", - "methods": [ + }, { - "shortName": "CreateEnvironment", - "fullName": "google.cloud.dialogflow.v2.Environments.CreateEnvironment", + "shortName": "DeleteZone", + "fullName": "google.cloud.dataplex.v1.DataplexService.DeleteZone", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/environments" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent}/environments" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*}" } ] }, { - "shortName": "DeleteEnvironment", - "fullName": "google.cloud.dialogflow.v2.Environments.DeleteEnvironment", + "shortName": "GetAsset", + "fullName": "google.cloud.dataplex.v1.DataplexService.GetAsset", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/environments/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/agent/environments/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}" } ] }, { "shortName": "GetEnvironment", - "fullName": "google.cloud.dialogflow.v2.Environments.GetEnvironment", + "fullName": "google.cloud.dataplex.v1.DataplexService.GetEnvironment", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/environments/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/environments/*}" + "path": "/v1/{name=projects/*/locations/*/lakes/*/environments/*}" } ] }, { - "shortName": "GetEnvironmentHistory", - "fullName": "google.cloud.dialogflow.v2.Environments.GetEnvironmentHistory", + "shortName": "GetJob", + "fullName": "google.cloud.dataplex.v1.DataplexService.GetJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent/environments/*}/history" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent/environments/*}/history" + "path": "/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}" } ] }, { - "shortName": "ListEnvironments", - "fullName": "google.cloud.dialogflow.v2.Environments.ListEnvironments", + "shortName": "GetLake", + "fullName": "google.cloud.dataplex.v1.DataplexService.GetLake", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent}/environments" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent}/environments" + "path": "/v1/{name=projects/*/locations/*/lakes/*}" } ] }, { - "shortName": "UpdateEnvironment", - "fullName": "google.cloud.dialogflow.v2.Environments.UpdateEnvironment", + "shortName": "GetTask", + "fullName": "google.cloud.dataplex.v1.DataplexService.GetTask", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{environment.name=projects/*/agent/environments/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{environment.name=projects/*/locations/*/agent/environments/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/lakes/*/tasks/*}" } ] - } - ] - }, - { - "shortName": "Fulfillments", - "fullName": "google.cloud.dialogflow.v2.Fulfillments", - "methods": [ + }, { - "shortName": "GetFulfillment", - "fullName": "google.cloud.dialogflow.v2.Fulfillments.GetFulfillment", + "shortName": "GetZone", + "fullName": "google.cloud.dataplex.v1.DataplexService.GetZone", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/fulfillment}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/fulfillment}" + "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*}" } ] }, { - "shortName": "UpdateFulfillment", - "fullName": "google.cloud.dialogflow.v2.Fulfillments.UpdateFulfillment", + "shortName": "ListAssetActions", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListAssetActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{fulfillment.name=projects/*/agent/fulfillment}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{fulfillment.name=projects/*/locations/*/agent/fulfillment}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/assets/*}/actions" } ] - } - ] - }, - { - "shortName": "Intents", - "fullName": "google.cloud.dialogflow.v2.Intents", - "methods": [ + }, { - "shortName": "BatchDeleteIntents", - "fullName": "google.cloud.dialogflow.v2.Intents.BatchDeleteIntents", + "shortName": "ListAssets", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/intents:batchDelete" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent}/intents:batchDelete" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets" } ] }, { - "shortName": "BatchUpdateIntents", - "fullName": "google.cloud.dialogflow.v2.Intents.BatchUpdateIntents", + "shortName": "ListEnvironments", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListEnvironments", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/intents:batchUpdate" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent}/intents:batchUpdate" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/environments" } ] }, { - "shortName": "CreateIntent", - "fullName": "google.cloud.dialogflow.v2.Intents.CreateIntent", - "mode": "UNARY", + "shortName": "ListJobs", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListJobs", + "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/intents" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent}/intents" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*/tasks/*}/jobs" } ] }, { - "shortName": "DeleteIntent", - "fullName": "google.cloud.dialogflow.v2.Intents.DeleteIntent", + "shortName": "ListLakeActions", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListLakeActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/intents/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/agent/intents/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/actions" } ] }, { - "shortName": "GetIntent", - "fullName": "google.cloud.dialogflow.v2.Intents.GetIntent", + "shortName": "ListLakes", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListLakes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/intents/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/intents/*}" + "path": "/v1/{parent=projects/*/locations/*}/lakes" } ] }, { - "shortName": "ListIntents", - "fullName": "google.cloud.dialogflow.v2.Intents.ListIntents", + "shortName": "ListSessions", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListSessions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent}/intents" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent}/intents" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent/environments/*}/intents" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent/environments/*}/intents" + "path": "/v1/{parent=projects/*/locations/*/lakes/*/environments/*}/sessions" } ] }, { - "shortName": "UpdateIntent", - "fullName": "google.cloud.dialogflow.v2.Intents.UpdateIntent", + "shortName": "ListTasks", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListTasks", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{intent.name=projects/*/agent/intents/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{intent.name=projects/*/locations/*/agent/intents/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/tasks" } ] - } - ] - }, - { - "shortName": "KnowledgeBases", - "fullName": "google.cloud.dialogflow.v2.KnowledgeBases", - "methods": [ + }, { - "shortName": "CreateKnowledgeBase", - "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.CreateKnowledgeBase", + "shortName": "ListZoneActions", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListZoneActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*}/knowledgeBases" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/knowledgeBases" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/knowledgeBases" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/actions" } ] }, { - "shortName": "DeleteKnowledgeBase", - "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.DeleteKnowledgeBase", + "shortName": "ListZones", + "fullName": "google.cloud.dataplex.v1.DataplexService.ListZones", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/knowledgeBases/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/knowledgeBases/*}" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*}/zones" } ] }, { - "shortName": "GetKnowledgeBase", - "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.GetKnowledgeBase", + "shortName": "UpdateAsset", + "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateAsset", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/knowledgeBases/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/knowledgeBases/*}" + "httpMethod": "PATCH", + "path": "/v1/{asset.name=projects/*/locations/*/lakes/*/zones/*/assets/*}" } ] }, { - "shortName": "ListKnowledgeBases", - "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.ListKnowledgeBases", + "shortName": "UpdateEnvironment", + "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateEnvironment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*}/knowledgeBases" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/knowledgeBases" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent}/knowledgeBases" + "httpMethod": "PATCH", + "path": "/v1/{environment.name=projects/*/locations/*/lakes/*/environments/*}" } ] }, { - "shortName": "UpdateKnowledgeBase", - "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.UpdateKnowledgeBase", + "shortName": "UpdateLake", + "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateLake", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v2/{knowledge_base.name=projects/*/knowledgeBases/*}" - }, + "path": "/v1/{lake.name=projects/*/locations/*/lakes/*}" + } + ] + }, + { + "shortName": "UpdateTask", + "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateTask", + "mode": "UNARY", + "bindings": [ { "httpMethod": "PATCH", - "path": "/v2/{knowledge_base.name=projects/*/locations/*/knowledgeBases/*}" - }, + "path": "/v1/{task.name=projects/*/locations/*/lakes/*/tasks/*}" + } + ] + }, + { + "shortName": "UpdateZone", + "fullName": "google.cloud.dataplex.v1.DataplexService.UpdateZone", + "mode": "UNARY", + "bindings": [ { "httpMethod": "PATCH", - "path": "/v2/{knowledge_base.name=projects/*/agent/knowledgeBases/*}" + "path": "/v1/{zone.name=projects/*/locations/*/lakes/*/zones/*}" } ] } ] }, { - "shortName": "Participants", - "fullName": "google.cloud.dialogflow.v2.Participants", + "shortName": "MetadataService", + "fullName": "google.cloud.dataplex.v1.MetadataService", "methods": [ { - "shortName": "AnalyzeContent", - "fullName": "google.cloud.dialogflow.v2.Participants.AnalyzeContent", + "shortName": "CreateEntity", + "fullName": "google.cloud.dataplex.v1.MetadataService.CreateEntity", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{participant=projects/*/conversations/*/participants/*}:analyzeContent" - }, - { - "httpMethod": "POST", - "path": "/v2/{participant=projects/*/locations/*/conversations/*/participants/*}:analyzeContent" + "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/entities" } ] }, { - "shortName": "CreateParticipant", - "fullName": "google.cloud.dialogflow.v2.Participants.CreateParticipant", + "shortName": "CreatePartition", + "fullName": "google.cloud.dataplex.v1.MetadataService.CreatePartition", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/conversations/*}/participants" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/conversations/*}/participants" + "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/entities/*}/partitions" } ] }, { - "shortName": "GetParticipant", - "fullName": "google.cloud.dialogflow.v2.Participants.GetParticipant", + "shortName": "DeleteEntity", + "fullName": "google.cloud.dataplex.v1.MetadataService.DeleteEntity", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/conversations/*/participants/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/conversations/*/participants/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*}" } ] }, { - "shortName": "ListParticipants", - "fullName": "google.cloud.dialogflow.v2.Participants.ListParticipants", + "shortName": "DeletePartition", + "fullName": "google.cloud.dataplex.v1.MetadataService.DeletePartition", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/conversations/*}/participants" - }, + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*/partitions/**}" + } + ] + }, + { + "shortName": "GetEntity", + "fullName": "google.cloud.dataplex.v1.MetadataService.GetEntity", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/conversations/*}/participants" + "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*}" } ] }, { - "shortName": "SuggestArticles", - "fullName": "google.cloud.dialogflow.v2.Participants.SuggestArticles", + "shortName": "GetPartition", + "fullName": "google.cloud.dataplex.v1.MetadataService.GetPartition", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestArticles" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestArticles" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*/partitions/**}" } ] }, { - "shortName": "SuggestFaqAnswers", - "fullName": "google.cloud.dialogflow.v2.Participants.SuggestFaqAnswers", + "shortName": "ListEntities", + "fullName": "google.cloud.dataplex.v1.MetadataService.ListEntities", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/entities" } ] }, { - "shortName": "SuggestSmartReplies", - "fullName": "google.cloud.dialogflow.v2.Participants.SuggestSmartReplies", + "shortName": "ListPartitions", + "fullName": "google.cloud.dataplex.v1.MetadataService.ListPartitions", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestSmartReplies" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestSmartReplies" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/entities/*}/partitions" } ] }, { - "shortName": "UpdateParticipant", - "fullName": "google.cloud.dialogflow.v2.Participants.UpdateParticipant", + "shortName": "UpdateEntity", + "fullName": "google.cloud.dataplex.v1.MetadataService.UpdateEntity", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{participant.name=projects/*/conversations/*/participants/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{participant.name=projects/*/locations/*/conversations/*/participants/*}" + "httpMethod": "PUT", + "path": "/v1/{entity.name=projects/*/locations/*/lakes/*/zones/*/entities/*}" } ] } ] + } + ], + "configFile": "dataplex_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.dataplex.v1.ContentService", + "google.cloud.dataplex.v1.DataplexService", + "google.cloud.dataplex.v1.MetadataService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.dataproc.v1", + "directory": "google/cloud/dataproc/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "dataproc.googleapis.com", + "title": "Cloud Dataproc API", + "description": "Manages Hadoop-based clusters and jobs on Google Cloud Platform.", + "importDirectories": [ + "google/api", + "google/cloud/dataproc/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/dataproc/v1;dataproc": 7 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 7 + } }, + "java_package": { + "valueCounts": { + "com.google.cloud.dataproc.v1": 7 + } + } + }, + "services": [ { - "shortName": "SessionEntityTypes", - "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes", + "shortName": "AutoscalingPolicyService", + "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService", "methods": [ { - "shortName": "CreateSessionEntityType", - "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.CreateSessionEntityType", + "shortName": "CreateAutoscalingPolicy", + "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.CreateAutoscalingPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent/sessions/*}/entityTypes" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes" + "path": "/v1/{parent=projects/*/locations/*}/autoscalingPolicies" }, { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes" + "path": "/v1/{parent=projects/*/regions/*}/autoscalingPolicies" } ] }, { - "shortName": "DeleteSessionEntityType", - "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.DeleteSessionEntityType", + "shortName": "DeleteAutoscalingPolicy", + "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.DeleteAutoscalingPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + "path": "/v1/{name=projects/*/locations/*/autoscalingPolicies/*}" }, { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + "path": "/v1/{name=projects/*/regions/*/autoscalingPolicies/*}" } ] }, { - "shortName": "GetSessionEntityType", - "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.GetSessionEntityType", + "shortName": "GetAutoscalingPolicy", + "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.GetAutoscalingPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + "path": "/v1/{name=projects/*/locations/*/autoscalingPolicies/*}" }, { "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + "path": "/v1/{name=projects/*/regions/*/autoscalingPolicies/*}" } ] }, { - "shortName": "ListSessionEntityTypes", - "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.ListSessionEntityTypes", + "shortName": "ListAutoscalingPolicies", + "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.ListAutoscalingPolicies", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent/sessions/*}/entityTypes" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes" - }, - { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes" + "path": "/v1/{parent=projects/*/locations/*}/autoscalingPolicies" }, { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes" + "path": "/v1/{parent=projects/*/regions/*}/autoscalingPolicies" } ] }, { - "shortName": "UpdateSessionEntityType", - "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.UpdateSessionEntityType", + "shortName": "UpdateAutoscalingPolicy", + "fullName": "google.cloud.dataproc.v1.AutoscalingPolicyService.UpdateAutoscalingPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{session_entity_type.name=projects/*/agent/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{session_entity_type.name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2/{session_entity_type.name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + "httpMethod": "PUT", + "path": "/v1/{policy.name=projects/*/locations/*/autoscalingPolicies/*}" }, { - "httpMethod": "PATCH", - "path": "/v2/{session_entity_type.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + "httpMethod": "PUT", + "path": "/v1/{policy.name=projects/*/regions/*/autoscalingPolicies/*}" } ] } ] }, { - "shortName": "Sessions", - "fullName": "google.cloud.dialogflow.v2.Sessions", + "shortName": "BatchController", + "fullName": "google.cloud.dataproc.v1.BatchController", "methods": [ { - "shortName": "DetectIntent", - "fullName": "google.cloud.dialogflow.v2.Sessions.DetectIntent", + "shortName": "CreateBatch", + "fullName": "google.cloud.dataproc.v1.BatchController.CreateBatch", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{session=projects/*/agent/sessions/*}:detectIntent" - }, - { - "httpMethod": "POST", - "path": "/v2/{session=projects/*/agent/environments/*/users/*/sessions/*}:detectIntent" - }, + "path": "/v1/{parent=projects/*/locations/*}/batches" + } + ] + }, + { + "shortName": "DeleteBatch", + "fullName": "google.cloud.dataproc.v1.BatchController.DeleteBatch", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{session=projects/*/locations/*/agent/sessions/*}:detectIntent" - }, + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/batches/*}" + } + ] + }, + { + "shortName": "GetBatch", + "fullName": "google.cloud.dataproc.v1.BatchController.GetBatch", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{session=projects/*/locations/*/agent/environments/*/users/*/sessions/*}:detectIntent" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/batches/*}" } ] }, { - "shortName": "StreamingDetectIntent", - "fullName": "google.cloud.dialogflow.v2.Sessions.StreamingDetectIntent", - "mode": "BIDIRECTIONAL_STREAMING" + "shortName": "ListBatches", + "fullName": "google.cloud.dataproc.v1.BatchController.ListBatches", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/batches" + } + ] } ] }, { - "shortName": "Versions", - "fullName": "google.cloud.dialogflow.v2.Versions", + "shortName": "ClusterController", + "fullName": "google.cloud.dataproc.v1.ClusterController", "methods": [ { - "shortName": "CreateVersion", - "fullName": "google.cloud.dialogflow.v2.Versions.CreateVersion", + "shortName": "CreateCluster", + "fullName": "google.cloud.dataproc.v1.ClusterController.CreateCluster", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/agent}/versions" - }, - { - "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*/agent}/versions" + "path": "/v1/projects/{project_id}/regions/{region}/clusters" } ] }, { - "shortName": "DeleteVersion", - "fullName": "google.cloud.dialogflow.v2.Versions.DeleteVersion", + "shortName": "DeleteCluster", + "fullName": "google.cloud.dataproc.v1.ClusterController.DeleteCluster", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/agent/versions/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/agent/versions/*}" + "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}" } ] }, { - "shortName": "GetVersion", - "fullName": "google.cloud.dialogflow.v2.Versions.GetVersion", + "shortName": "DiagnoseCluster", + "fullName": "google.cloud.dataproc.v1.ClusterController.DiagnoseCluster", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{name=projects/*/agent/versions/*}" - }, + "httpMethod": "POST", + "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}:diagnose" + } + ] + }, + { + "shortName": "GetCluster", + "fullName": "google.cloud.dataproc.v1.ClusterController.GetCluster", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/agent/versions/*}" + "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}" } ] }, { - "shortName": "ListVersions", - "fullName": "google.cloud.dialogflow.v2.Versions.ListVersions", + "shortName": "ListClusters", + "fullName": "google.cloud.dataproc.v1.ClusterController.ListClusters", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/agent}/versions" - }, + "path": "/v1/projects/{project_id}/regions/{region}/clusters" + } + ] + }, + { + "shortName": "StartCluster", + "fullName": "google.cloud.dataproc.v1.ClusterController.StartCluster", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*/agent}/versions" + "httpMethod": "POST", + "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}:start" } ] }, { - "shortName": "UpdateVersion", - "fullName": "google.cloud.dialogflow.v2.Versions.UpdateVersion", + "shortName": "StopCluster", + "fullName": "google.cloud.dataproc.v1.ClusterController.StopCluster", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2/{version.name=projects/*/agent/versions/*}" - }, + "httpMethod": "POST", + "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}:stop" + } + ] + }, + { + "shortName": "UpdateCluster", + "fullName": "google.cloud.dataproc.v1.ClusterController.UpdateCluster", + "mode": "UNARY", + "bindings": [ { "httpMethod": "PATCH", - "path": "/v2/{version.name=projects/*/locations/*/agent/versions/*}" + "path": "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}" } ] } ] - } - ], - "configFile": "dialogflow_v2.yaml" - }, - { - "id": "google.cloud.dialogflow.v2beta1", - "directory": "google/cloud/dialogflow/v2beta1", - "version": "v2beta1", - "majorVersion": "v2", - "hostName": "dialogflow.googleapis.com", - "title": "Dialogflow API", - "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", - "importDirectories": [ - "google/api", - "google/cloud/dialogflow/v2beta1", - "google/longrunning", - "google/protobuf", - "google/rpc", - "google/type" - ], - "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 21 - } - }, - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Dialogflow.V2beta1": 21 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1;dialogflow": 21 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 21 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.dialogflow.v2beta1": 21 - } }, - "objc_class_prefix": { - "valueCounts": { - "DF": 21 - } - } - }, - "services": [ { - "shortName": "Agents", - "fullName": "google.cloud.dialogflow.v2beta1.Agents", + "shortName": "JobController", + "fullName": "google.cloud.dataproc.v1.JobController", "methods": [ { - "shortName": "DeleteAgent", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.DeleteAgent", + "shortName": "CancelJob", + "fullName": "google.cloud.dataproc.v1.JobController.CancelJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{parent=projects/*}/agent" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{parent=projects/*/locations/*}/agent" + "httpMethod": "POST", + "path": "/v1/projects/{project_id}/regions/{region}/jobs/{job_id}:cancel" } ] }, { - "shortName": "ExportAgent", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.ExportAgent", + "shortName": "DeleteJob", + "fullName": "google.cloud.dataproc.v1.JobController.DeleteJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*}/agent:export" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*}/agent:export" + "httpMethod": "DELETE", + "path": "/v1/projects/{project_id}/regions/{region}/jobs/{job_id}" } ] }, { - "shortName": "GetAgent", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.GetAgent", + "shortName": "GetJob", + "fullName": "google.cloud.dataproc.v1.JobController.GetJob", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*}/agent" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*}/agent" + "path": "/v1/projects/{project_id}/regions/{region}/jobs/{job_id}" } ] }, { - "shortName": "GetValidationResult", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.GetValidationResult", + "shortName": "ListJobs", + "fullName": "google.cloud.dataproc.v1.JobController.ListJobs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*}/agent/validationResult" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*}/agent/validationResult" + "path": "/v1/projects/{project_id}/regions/{region}/jobs" } ] }, { - "shortName": "ImportAgent", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.ImportAgent", + "shortName": "SubmitJob", + "fullName": "google.cloud.dataproc.v1.JobController.SubmitJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*}/agent:import" - }, + "path": "/v1/projects/{project_id}/regions/{region}/jobs:submit" + } + ] + }, + { + "shortName": "SubmitJobAsOperation", + "fullName": "google.cloud.dataproc.v1.JobController.SubmitJobAsOperation", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*}/agent:import" + "path": "/v1/projects/{project_id}/regions/{region}/jobs:submitAsOperation" } ] }, { - "shortName": "RestoreAgent", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.RestoreAgent", + "shortName": "UpdateJob", + "fullName": "google.cloud.dataproc.v1.JobController.UpdateJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/projects/{project_id}/regions/{region}/jobs/{job_id}" + } + ] + } + ] + }, + { + "shortName": "WorkflowTemplateService", + "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService", + "methods": [ + { + "shortName": "CreateWorkflowTemplate", + "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.CreateWorkflowTemplate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*}/agent:restore" + "path": "/v1/{parent=projects/*/locations/*}/workflowTemplates" }, { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*}/agent:restore" + "path": "/v1/{parent=projects/*/regions/*}/workflowTemplates" } ] }, { - "shortName": "SearchAgents", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.SearchAgents", + "shortName": "DeleteWorkflowTemplate", + "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.DeleteWorkflowTemplate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*}/agent:search" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/workflowTemplates/*}" }, { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*}/agent:search" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/regions/*/workflowTemplates/*}" } ] }, { - "shortName": "SetAgent", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.SetAgent", + "shortName": "GetWorkflowTemplate", + "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.GetWorkflowTemplate", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{agent.parent=projects/*}/agent" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/workflowTemplates/*}" }, { - "httpMethod": "POST", - "path": "/v2beta1/{agent.parent=projects/*/locations/*}/agent" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/regions/*/workflowTemplates/*}" } ] }, { - "shortName": "TrainAgent", - "fullName": "google.cloud.dialogflow.v2beta1.Agents.TrainAgent", + "shortName": "InstantiateInlineWorkflowTemplate", + "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.InstantiateInlineWorkflowTemplate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*}/agent:train" + "path": "/v1/{parent=projects/*/locations/*}/workflowTemplates:instantiateInline" }, { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*}/agent:train" + "path": "/v1/{parent=projects/*/regions/*}/workflowTemplates:instantiateInline" } ] - } - ] - }, - { - "shortName": "AnswerRecords", - "fullName": "google.cloud.dialogflow.v2beta1.AnswerRecords", - "methods": [ + }, { - "shortName": "GetAnswerRecord", - "fullName": "google.cloud.dialogflow.v2beta1.AnswerRecords.GetAnswerRecord", + "shortName": "InstantiateWorkflowTemplate", + "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.InstantiateWorkflowTemplate", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/answerRecords/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/workflowTemplates/*}:instantiate" }, { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/answerRecords/*}" + "httpMethod": "POST", + "path": "/v1/{name=projects/*/regions/*/workflowTemplates/*}:instantiate" } ] }, { - "shortName": "ListAnswerRecords", - "fullName": "google.cloud.dialogflow.v2beta1.AnswerRecords.ListAnswerRecords", + "shortName": "ListWorkflowTemplates", + "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.ListWorkflowTemplates", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*}/answerRecords" + "path": "/v1/{parent=projects/*/locations/*}/workflowTemplates" }, { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*}/answerRecords" + "path": "/v1/{parent=projects/*/regions/*}/workflowTemplates" } ] }, { - "shortName": "UpdateAnswerRecord", - "fullName": "google.cloud.dialogflow.v2beta1.AnswerRecords.UpdateAnswerRecord", + "shortName": "UpdateWorkflowTemplate", + "fullName": "google.cloud.dataproc.v1.WorkflowTemplateService.UpdateWorkflowTemplate", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{answer_record.name=projects/*/answerRecords/*}" + "httpMethod": "PUT", + "path": "/v1/{template.name=projects/*/locations/*/workflowTemplates/*}" }, { - "httpMethod": "PATCH", - "path": "/v2beta1/{answer_record.name=projects/*/locations/*/answerRecords/*}" + "httpMethod": "PUT", + "path": "/v1/{template.name=projects/*/regions/*/workflowTemplates/*}" } ] } ] + } + ], + "configFile": "dataproc_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.dataproc.v1.AutoscalingPolicyService", + "google.cloud.dataproc.v1.BatchController", + "google.cloud.dataproc.v1.ClusterController", + "google.cloud.dataproc.v1.JobController", + "google.cloud.dataproc.v1.WorkflowTemplateService" + ] + }, + { + "id": "google.cloud.dataqna.v1alpha", + "directory": "google/cloud/dataqna/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "dataqna.googleapis.com", + "title": "Data QnA API", + "description": "Data QnA is a natural language question and answer service for BigQuery data.", + "importDirectories": [ + "google/api", + "google/cloud/dataqna/v1alpha", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DataQnA.V1Alpha": 5 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/dataqna/v1alpha;dataqna": 5 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 5 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.dataqna.v1alpha": 5 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DataQnA\\V1alpha": 5 + } }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DataQnA::V1alpha": 5 + } + } + }, + "services": [ { - "shortName": "Contexts", - "fullName": "google.cloud.dialogflow.v2beta1.Contexts", + "shortName": "AutoSuggestionService", + "fullName": "google.cloud.dataqna.v1alpha.AutoSuggestionService", "methods": [ { - "shortName": "CreateContext", - "fullName": "google.cloud.dialogflow.v2beta1.Contexts.CreateContext", + "shortName": "SuggestQueries", + "fullName": "google.cloud.dataqna.v1alpha.AutoSuggestionService.SuggestQueries", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + "path": "/v1alpha/{parent=projects/*/locations/*}:suggestQueries" } ] - }, + } + ] + }, + { + "shortName": "QuestionService", + "fullName": "google.cloud.dataqna.v1alpha.QuestionService", + "methods": [ { - "shortName": "DeleteAllContexts", - "fullName": "google.cloud.dialogflow.v2beta1.Contexts.DeleteAllContexts", + "shortName": "CreateQuestion", + "fullName": "google.cloud.dataqna.v1alpha.QuestionService.CreateQuestion", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/questions" } ] }, { - "shortName": "DeleteContext", - "fullName": "google.cloud.dialogflow.v2beta1.Contexts.DeleteContext", + "shortName": "ExecuteQuestion", + "fullName": "google.cloud.dataqna.v1alpha.QuestionService.ExecuteQuestion", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + "httpMethod": "POST", + "path": "/v1alpha/{name=projects/*/locations/*/questions/*}:execute" } ] }, { - "shortName": "GetContext", - "fullName": "google.cloud.dialogflow.v2beta1.Contexts.GetContext", + "shortName": "GetQuestion", + "fullName": "google.cloud.dataqna.v1alpha.QuestionService.GetQuestion", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + "path": "/v1alpha/{name=projects/*/locations/*/questions/*}" } ] }, { - "shortName": "ListContexts", - "fullName": "google.cloud.dialogflow.v2beta1.Contexts.ListContexts", + "shortName": "GetUserFeedback", + "fullName": "google.cloud.dataqna.v1alpha.QuestionService.GetUserFeedback", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/contexts" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + "path": "/v1alpha/{name=projects/*/locations/*/questions/*/userFeedback}" } ] }, { - "shortName": "UpdateContext", - "fullName": "google.cloud.dialogflow.v2beta1.Contexts.UpdateContext", + "shortName": "UpdateUserFeedback", + "fullName": "google.cloud.dataqna.v1alpha.QuestionService.UpdateUserFeedback", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v2beta1/{context.name=projects/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{context.name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{context.name=projects/*/locations/*/agent/sessions/*/contexts/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{context.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + "path": "/v1alpha/{user_feedback.name=projects/*/locations/*/questions/*/userFeedback}" } ] } ] + } + ], + "configFile": "dataqna_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.dataqna.v1alpha.AutoSuggestionService", + "google.cloud.dataqna.v1alpha.QuestionService" + ] + }, + { + "id": "google.cloud.datastream.v1", + "directory": "google/cloud/datastream/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "datastream.googleapis.com", + "title": "Datastream API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/datastream/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Datastream.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/datastream/v1;datastream": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.datastream.v1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Datastream\\V1": 2 + } }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Datastream::V1": 2 + } + } + }, + "services": [ { - "shortName": "ConversationProfiles", - "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles", + "shortName": "Datastream", + "fullName": "google.cloud.datastream.v1.Datastream", "methods": [ { - "shortName": "CreateConversationProfile", - "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.CreateConversationProfile", + "shortName": "CreateConnectionProfile", + "fullName": "google.cloud.datastream.v1.Datastream.CreateConnectionProfile", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*}/conversationProfiles" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*}/conversationProfiles" + "path": "/v1/{parent=projects/*/locations/*}/connectionProfiles" } ] }, { - "shortName": "DeleteConversationProfile", - "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.DeleteConversationProfile", + "shortName": "CreatePrivateConnection", + "fullName": "google.cloud.datastream.v1.Datastream.CreatePrivateConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/conversationProfiles/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/conversationProfiles/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/privateConnections" } ] }, { - "shortName": "GetConversationProfile", - "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfile", + "shortName": "CreateRoute", + "fullName": "google.cloud.datastream.v1.Datastream.CreateRoute", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/conversationProfiles/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/conversationProfiles/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/privateConnections/*}/routes" } ] }, { - "shortName": "ListConversationProfiles", - "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.ListConversationProfiles", + "shortName": "CreateStream", + "fullName": "google.cloud.datastream.v1.Datastream.CreateStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*}/conversationProfiles" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*}/conversationProfiles" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/streams" } ] }, { - "shortName": "UpdateConversationProfile", - "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.UpdateConversationProfile", + "shortName": "DeleteConnectionProfile", + "fullName": "google.cloud.datastream.v1.Datastream.DeleteConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{conversation_profile.name=projects/*/conversationProfiles/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{conversation_profile.name=projects/*/locations/*/conversationProfiles/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/connectionProfiles/*}" } ] - } - ] - }, - { - "shortName": "Conversations", - "fullName": "google.cloud.dialogflow.v2beta1.Conversations", - "methods": [ + }, { - "shortName": "BatchCreateMessages", - "fullName": "google.cloud.dialogflow.v2beta1.Conversations.BatchCreateMessages", + "shortName": "DeletePrivateConnection", + "fullName": "google.cloud.datastream.v1.Datastream.DeletePrivateConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/conversations/*}/messages:batchCreate" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*}/messages:batchCreate" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/privateConnections/*}" } ] }, { - "shortName": "CompleteConversation", - "fullName": "google.cloud.dialogflow.v2beta1.Conversations.CompleteConversation", + "shortName": "DeleteRoute", + "fullName": "google.cloud.datastream.v1.Datastream.DeleteRoute", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{name=projects/*/conversations/*}:complete" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{name=projects/*/locations/*/conversations/*}:complete" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/privateConnections/*/routes/*}" } ] }, { - "shortName": "CreateConversation", - "fullName": "google.cloud.dialogflow.v2beta1.Conversations.CreateConversation", + "shortName": "DeleteStream", + "fullName": "google.cloud.datastream.v1.Datastream.DeleteStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*}/conversations" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*}/conversations" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/streams/*}" } ] }, { - "shortName": "GetConversation", - "fullName": "google.cloud.dialogflow.v2beta1.Conversations.GetConversation", + "shortName": "DiscoverConnectionProfile", + "fullName": "google.cloud.datastream.v1.Datastream.DiscoverConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/conversations/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/conversations/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/connectionProfiles:discover" } ] }, { - "shortName": "ListConversations", - "fullName": "google.cloud.dialogflow.v2beta1.Conversations.ListConversations", + "shortName": "FetchStaticIps", + "fullName": "google.cloud.datastream.v1.Datastream.FetchStaticIps", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*}/conversations" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*}/conversations" + "path": "/v1/{name=projects/*/locations/*}:fetchStaticIps" } ] }, { - "shortName": "ListMessages", - "fullName": "google.cloud.dialogflow.v2beta1.Conversations.ListMessages", + "shortName": "GetConnectionProfile", + "fullName": "google.cloud.datastream.v1.Datastream.GetConnectionProfile", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/conversations/*}/messages" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*}/messages" + "path": "/v1/{name=projects/*/locations/*/connectionProfiles/*}" } ] - } - ] - }, - { - "shortName": "Documents", - "fullName": "google.cloud.dialogflow.v2beta1.Documents", - "methods": [ + }, { - "shortName": "CreateDocument", - "fullName": "google.cloud.dialogflow.v2beta1.Documents.CreateDocument", + "shortName": "GetPrivateConnection", + "fullName": "google.cloud.datastream.v1.Datastream.GetPrivateConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/knowledgeBases/*}/documents" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/knowledgeBases/*}/documents" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent/knowledgeBases/*}/documents" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/privateConnections/*}" } ] }, { - "shortName": "DeleteDocument", - "fullName": "google.cloud.dialogflow.v2beta1.Documents.DeleteDocument", + "shortName": "GetRoute", + "fullName": "google.cloud.datastream.v1.Datastream.GetRoute", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/knowledgeBases/*/documents/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*/documents/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*/documents/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/privateConnections/*/routes/*}" } ] }, { - "shortName": "GetDocument", - "fullName": "google.cloud.dialogflow.v2beta1.Documents.GetDocument", + "shortName": "GetStream", + "fullName": "google.cloud.datastream.v1.Datastream.GetStream", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/knowledgeBases/*/documents/*}" - }, + "path": "/v1/{name=projects/*/locations/*/streams/*}" + } + ] + }, + { + "shortName": "GetStreamObject", + "fullName": "google.cloud.datastream.v1.Datastream.GetStreamObject", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*/documents/*}" - }, + "path": "/v1/{name=projects/*/locations/*/streams/*/objects/*}" + } + ] + }, + { + "shortName": "ListConnectionProfiles", + "fullName": "google.cloud.datastream.v1.Datastream.ListConnectionProfiles", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*/documents/*}" + "path": "/v1/{parent=projects/*/locations/*}/connectionProfiles" } ] }, { - "shortName": "ImportDocuments", - "fullName": "google.cloud.dialogflow.v2beta1.Documents.ImportDocuments", + "shortName": "ListPrivateConnections", + "fullName": "google.cloud.datastream.v1.Datastream.ListPrivateConnections", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/knowledgeBases/*}/documents:import" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/knowledgeBases/*}/documents:import" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/privateConnections" } ] }, { - "shortName": "ListDocuments", - "fullName": "google.cloud.dialogflow.v2beta1.Documents.ListDocuments", + "shortName": "ListRoutes", + "fullName": "google.cloud.datastream.v1.Datastream.ListRoutes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/knowledgeBases/*}/documents" - }, + "path": "/v1/{parent=projects/*/locations/*/privateConnections/*}/routes" + } + ] + }, + { + "shortName": "ListStreamObjects", + "fullName": "google.cloud.datastream.v1.Datastream.ListStreamObjects", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/knowledgeBases/*}/documents" - }, + "path": "/v1/{parent=projects/*/locations/*/streams/*}/objects" + } + ] + }, + { + "shortName": "ListStreams", + "fullName": "google.cloud.datastream.v1.Datastream.ListStreams", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent/knowledgeBases/*}/documents" + "path": "/v1/{parent=projects/*/locations/*}/streams" } ] }, { - "shortName": "ReloadDocument", - "fullName": "google.cloud.dialogflow.v2beta1.Documents.ReloadDocument", + "shortName": "LookupStreamObject", + "fullName": "google.cloud.datastream.v1.Datastream.LookupStreamObject", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{name=projects/*/knowledgeBases/*/documents/*}:reload" - }, + "path": "/v1/{parent=projects/*/locations/*/streams/*}/objects:lookup" + } + ] + }, + { + "shortName": "StartBackfillJob", + "fullName": "google.cloud.datastream.v1.Datastream.StartBackfillJob", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*/documents/*}:reload" - }, + "path": "/v1/{object=projects/*/locations/*/streams/*/objects/*}:startBackfillJob" + } + ] + }, + { + "shortName": "StopBackfillJob", + "fullName": "google.cloud.datastream.v1.Datastream.StopBackfillJob", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*/documents/*}:reload" + "path": "/v1/{object=projects/*/locations/*/streams/*/objects/*}:stopBackfillJob" } ] }, { - "shortName": "UpdateDocument", - "fullName": "google.cloud.dialogflow.v2beta1.Documents.UpdateDocument", + "shortName": "UpdateConnectionProfile", + "fullName": "google.cloud.datastream.v1.Datastream.UpdateConnectionProfile", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v2beta1/{document.name=projects/*/knowledgeBases/*/documents/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{document.name=projects/*/locations/*/knowledgeBases/*/documents/*}" - }, + "path": "/v1/{connection_profile.name=projects/*/locations/*/connectionProfiles/*}" + } + ] + }, + { + "shortName": "UpdateStream", + "fullName": "google.cloud.datastream.v1.Datastream.UpdateStream", + "mode": "UNARY", + "bindings": [ { "httpMethod": "PATCH", - "path": "/v2beta1/{document.name=projects/*/agent/knowledgeBases/*/documents/*}" + "path": "/v1/{stream.name=projects/*/locations/*/streams/*}" } ] } ] + } + ], + "configFile": "datastream_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.datastream.v1.Datastream", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.datastream.v1alpha1", + "directory": "google/cloud/datastream/v1alpha1", + "version": "v1alpha1", + "majorVersion": "v1", + "hostName": "datastream.googleapis.com", + "title": "Datastream API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/datastream/v1alpha1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Datastream.V1Alpha1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/datastream/v1alpha1;datastream": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.datastream.v1alpha1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Datastream\\V1alpha1": 2 + } }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Datastream::V1alpha1": 2 + } + } + }, + "services": [ { - "shortName": "EntityTypes", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes", + "shortName": "Datastream", + "fullName": "google.cloud.datastream.v1alpha1.Datastream", "methods": [ { - "shortName": "BatchCreateEntities", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchCreateEntities", + "shortName": "CreateConnectionProfile", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.CreateConnectionProfile", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent/entityTypes/*}/entities:batchCreate" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchCreate" + "path": "/v1alpha1/{parent=projects/*/locations/*}/connectionProfiles" } ] }, { - "shortName": "BatchDeleteEntities", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchDeleteEntities", + "shortName": "CreatePrivateConnection", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.CreatePrivateConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent/entityTypes/*}/entities:batchDelete" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchDelete" + "path": "/v1alpha1/{parent=projects/*/locations/*}/privateConnections" } ] }, { - "shortName": "BatchDeleteEntityTypes", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchDeleteEntityTypes", + "shortName": "CreateRoute", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.CreateRoute", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/entityTypes:batchDelete" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/entityTypes:batchDelete" + "path": "/v1alpha1/{parent=projects/*/locations/*/privateConnections/*}/routes" } ] }, { - "shortName": "BatchUpdateEntities", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchUpdateEntities", + "shortName": "CreateStream", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.CreateStream", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent/entityTypes/*}/entities:batchUpdate" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchUpdate" + "path": "/v1alpha1/{parent=projects/*/locations/*}/streams" } ] }, { - "shortName": "BatchUpdateEntityTypes", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchUpdateEntityTypes", + "shortName": "DeleteConnectionProfile", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.DeleteConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/entityTypes:batchUpdate" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/entityTypes:batchUpdate" + "httpMethod": "DELETE", + "path": "/v1alpha1/{name=projects/*/locations/*/connectionProfiles/*}" } ] }, { - "shortName": "CreateEntityType", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.CreateEntityType", + "shortName": "DeletePrivateConnection", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.DeletePrivateConnection", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/entityTypes" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/entityTypes" + "httpMethod": "DELETE", + "path": "/v1alpha1/{name=projects/*/locations/*/privateConnections/*}" } ] }, { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.DeleteEntityType", + "shortName": "DeleteRoute", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.DeleteRoute", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/agent/entityTypes/*}" + "path": "/v1alpha1/{name=projects/*/locations/*/privateConnections/*/routes/*}" } ] }, { - "shortName": "GetEntityType", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.GetEntityType", + "shortName": "DeleteStream", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.DeleteStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/entityTypes/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/entityTypes/*}" + "httpMethod": "DELETE", + "path": "/v1alpha1/{name=projects/*/locations/*/streams/*}" } ] }, { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.ListEntityTypes", + "shortName": "DiscoverConnectionProfile", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.DiscoverConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent}/entityTypes" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/entityTypes" + "httpMethod": "POST", + "path": "/v1alpha1/{parent=projects/*/locations/*}/connectionProfiles:discover" } ] }, { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.UpdateEntityType", + "shortName": "FetchErrors", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.FetchErrors", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{entity_type.name=projects/*/agent/entityTypes/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{entity_type.name=projects/*/locations/*/agent/entityTypes/*}" + "httpMethod": "POST", + "path": "/v1alpha1/{stream=projects/*/locations/*/streams/*}:fetchErrors" } ] - } - ] - }, - { - "shortName": "Environments", - "fullName": "google.cloud.dialogflow.v2beta1.Environments", - "methods": [ + }, { - "shortName": "CreateEnvironment", - "fullName": "google.cloud.dialogflow.v2beta1.Environments.CreateEnvironment", + "shortName": "FetchStaticIps", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.FetchStaticIps", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/environments" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/environments" + "httpMethod": "GET", + "path": "/v1alpha1/{name=projects/*/locations/*}:fetchStaticIps" } ] }, { - "shortName": "DeleteEnvironment", - "fullName": "google.cloud.dialogflow.v2beta1.Environments.DeleteEnvironment", + "shortName": "GetConnectionProfile", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.GetConnectionProfile", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/environments/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*}" + "httpMethod": "GET", + "path": "/v1alpha1/{name=projects/*/locations/*/connectionProfiles/*}" } ] }, { - "shortName": "GetEnvironment", - "fullName": "google.cloud.dialogflow.v2beta1.Environments.GetEnvironment", + "shortName": "GetPrivateConnection", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.GetPrivateConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/environments/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*}" + "path": "/v1alpha1/{name=projects/*/locations/*/privateConnections/*}" } ] }, { - "shortName": "GetEnvironmentHistory", - "fullName": "google.cloud.dialogflow.v2beta1.Environments.GetEnvironmentHistory", + "shortName": "GetRoute", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.GetRoute", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent/environments/*}/history" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*}/history" + "path": "/v1alpha1/{name=projects/*/locations/*/privateConnections/*/routes/*}" } ] }, { - "shortName": "ListEnvironments", - "fullName": "google.cloud.dialogflow.v2beta1.Environments.ListEnvironments", + "shortName": "GetStream", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.GetStream", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent}/environments" - }, + "path": "/v1alpha1/{name=projects/*/locations/*/streams/*}" + } + ] + }, + { + "shortName": "ListConnectionProfiles", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.ListConnectionProfiles", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/environments" + "path": "/v1alpha1/{parent=projects/*/locations/*}/connectionProfiles" } ] }, { - "shortName": "UpdateEnvironment", - "fullName": "google.cloud.dialogflow.v2beta1.Environments.UpdateEnvironment", + "shortName": "ListPrivateConnections", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.ListPrivateConnections", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{environment.name=projects/*/agent/environments/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{environment.name=projects/*/locations/*/agent/environments/*}" + "httpMethod": "GET", + "path": "/v1alpha1/{parent=projects/*/locations/*}/privateConnections" } ] - } - ] - }, - { - "shortName": "Fulfillments", - "fullName": "google.cloud.dialogflow.v2beta1.Fulfillments", - "methods": [ + }, { - "shortName": "GetFulfillment", - "fullName": "google.cloud.dialogflow.v2beta1.Fulfillments.GetFulfillment", + "shortName": "ListRoutes", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.ListRoutes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/fulfillment}" - }, + "path": "/v1alpha1/{parent=projects/*/locations/*/privateConnections/*}/routes" + } + ] + }, + { + "shortName": "ListStreams", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.ListStreams", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/fulfillment}" + "path": "/v1alpha1/{parent=projects/*/locations/*}/streams" } ] }, { - "shortName": "UpdateFulfillment", - "fullName": "google.cloud.dialogflow.v2beta1.Fulfillments.UpdateFulfillment", + "shortName": "UpdateConnectionProfile", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.UpdateConnectionProfile", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v2beta1/{fulfillment.name=projects/*/agent/fulfillment}" - }, + "path": "/v1alpha1/{connection_profile.name=projects/*/locations/*/connectionProfiles/*}" + } + ] + }, + { + "shortName": "UpdateStream", + "fullName": "google.cloud.datastream.v1alpha1.Datastream.UpdateStream", + "mode": "UNARY", + "bindings": [ { "httpMethod": "PATCH", - "path": "/v2beta1/{fulfillment.name=projects/*/locations/*/agent/fulfillment}" + "path": "/v1alpha1/{stream.name=projects/*/locations/*/streams/*}" } ] } ] + } + ], + "configFile": "datastream_v1alpha1.yaml", + "serviceConfigApiNames": [ + "google.cloud.datastream.v1alpha1.Datastream" + ] + }, + { + "id": "google.cloud.deploy.v1", + "directory": "google/cloud/deploy/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "clouddeploy.googleapis.com", + "title": "Google Cloud Deploy API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/deploy/v1", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy": 8 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 8 + } }, + "java_package": { + "valueCounts": { + "com.google.cloud.deploy.v1": 8 + } + } + }, + "services": [ { - "shortName": "Intents", - "fullName": "google.cloud.dialogflow.v2beta1.Intents", + "shortName": "CloudDeploy", + "fullName": "google.cloud.deploy.v1.CloudDeploy", "methods": [ { - "shortName": "BatchDeleteIntents", - "fullName": "google.cloud.dialogflow.v2beta1.Intents.BatchDeleteIntents", + "shortName": "AbandonRelease", + "fullName": "google.cloud.deploy.v1.CloudDeploy.AbandonRelease", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/intents:batchDelete" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/intents:batchDelete" + "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*}:abandon" } ] }, { - "shortName": "BatchUpdateIntents", - "fullName": "google.cloud.dialogflow.v2beta1.Intents.BatchUpdateIntents", + "shortName": "ApproveRollout", + "fullName": "google.cloud.deploy.v1.CloudDeploy.ApproveRollout", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/intents:batchUpdate" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/intents:batchUpdate" + "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:approve" } ] }, { - "shortName": "CreateIntent", - "fullName": "google.cloud.dialogflow.v2beta1.Intents.CreateIntent", + "shortName": "CreateDeliveryPipeline", + "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateDeliveryPipeline", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/intents" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/intents" + "path": "/v1/{parent=projects/*/locations/*}/deliveryPipelines" } ] }, { - "shortName": "DeleteIntent", - "fullName": "google.cloud.dialogflow.v2beta1.Intents.DeleteIntent", + "shortName": "CreateRelease", + "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateRelease", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/intents/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/agent/intents/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*}/releases" } ] }, { - "shortName": "GetIntent", - "fullName": "google.cloud.dialogflow.v2beta1.Intents.GetIntent", + "shortName": "CreateRollout", + "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateRollout", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/intents/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/intents/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*}/rollouts" } ] }, { - "shortName": "ListIntents", - "fullName": "google.cloud.dialogflow.v2beta1.Intents.ListIntents", + "shortName": "CreateTarget", + "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateTarget", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent}/intents" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/intents" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent/environments/*}/intents" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*}/intents" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/targets" } ] }, { - "shortName": "UpdateIntent", - "fullName": "google.cloud.dialogflow.v2beta1.Intents.UpdateIntent", + "shortName": "DeleteDeliveryPipeline", + "fullName": "google.cloud.deploy.v1.CloudDeploy.DeleteDeliveryPipeline", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{intent.name=projects/*/agent/intents/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{intent.name=projects/*/locations/*/agent/intents/*}" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*}" } ] - } - ] - }, - { - "shortName": "KnowledgeBases", - "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases", - "methods": [ + }, { - "shortName": "CreateKnowledgeBase", - "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.CreateKnowledgeBase", + "shortName": "DeleteTarget", + "fullName": "google.cloud.deploy.v1.CloudDeploy.DeleteTarget", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*}/knowledgeBases" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*}/knowledgeBases" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/knowledgeBases" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/targets/*}" } ] }, { - "shortName": "DeleteKnowledgeBase", - "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.DeleteKnowledgeBase", + "shortName": "GetConfig", + "fullName": "google.cloud.deploy.v1.CloudDeploy.GetConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/knowledgeBases/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/config}" } ] }, { - "shortName": "GetKnowledgeBase", - "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.GetKnowledgeBase", + "shortName": "GetDeliveryPipeline", + "fullName": "google.cloud.deploy.v1.CloudDeploy.GetDeliveryPipeline", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/knowledgeBases/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*}" + "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*}" } ] }, { - "shortName": "ListKnowledgeBases", - "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.ListKnowledgeBases", + "shortName": "GetJobRun", + "fullName": "google.cloud.deploy.v1.CloudDeploy.GetJobRun", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*}/knowledgeBases" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*}/knowledgeBases" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent}/knowledgeBases" + "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*/jobRuns/*}" } ] }, { - "shortName": "UpdateKnowledgeBase", - "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.UpdateKnowledgeBase", + "shortName": "GetRelease", + "fullName": "google.cloud.deploy.v1.CloudDeploy.GetRelease", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{knowledge_base.name=projects/*/knowledgeBases/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{knowledge_base.name=projects/*/locations/*/knowledgeBases/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{knowledge_base.name=projects/*/agent/knowledgeBases/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*}" } ] - } - ] - }, - { - "shortName": "Participants", - "fullName": "google.cloud.dialogflow.v2beta1.Participants", - "methods": [ + }, { - "shortName": "AnalyzeContent", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.AnalyzeContent", + "shortName": "GetRollout", + "fullName": "google.cloud.deploy.v1.CloudDeploy.GetRollout", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{participant=projects/*/conversations/*/participants/*}:analyzeContent" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{participant=projects/*/locations/*/conversations/*/participants/*}:analyzeContent" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}" } ] }, { - "shortName": "CompileSuggestion", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.CompileSuggestion", + "shortName": "GetTarget", + "fullName": "google.cloud.deploy.v1.CloudDeploy.GetTarget", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:compile" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/targets/*}" } ] }, { - "shortName": "CreateParticipant", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.CreateParticipant", + "shortName": "ListDeliveryPipelines", + "fullName": "google.cloud.deploy.v1.CloudDeploy.ListDeliveryPipelines", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/conversations/*}/participants" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*}/participants" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/deliveryPipelines" } ] }, { - "shortName": "GetParticipant", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.GetParticipant", + "shortName": "ListJobRuns", + "fullName": "google.cloud.deploy.v1.CloudDeploy.ListJobRuns", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/conversations/*/participants/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/conversations/*/participants/*}" + "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}/jobRuns" } ] }, { - "shortName": "ListParticipants", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.ListParticipants", + "shortName": "ListReleases", + "fullName": "google.cloud.deploy.v1.CloudDeploy.ListReleases", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/conversations/*}/participants" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*}/participants" + "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*}/releases" } ] }, { - "shortName": "ListSuggestions", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.ListSuggestions", + "shortName": "ListRollouts", + "fullName": "google.cloud.deploy.v1.CloudDeploy.ListRollouts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions" + "path": "/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*}/rollouts" } ] }, { - "shortName": "SuggestArticles", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.SuggestArticles", + "shortName": "ListTargets", + "fullName": "google.cloud.deploy.v1.CloudDeploy.ListTargets", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestArticles" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestArticles" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/targets" } ] }, { - "shortName": "SuggestFaqAnswers", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.SuggestFaqAnswers", + "shortName": "RetryJob", + "fullName": "google.cloud.deploy.v1.CloudDeploy.RetryJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers" + "path": "/v1/{rollout=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:retryJob" } ] }, { - "shortName": "SuggestSmartReplies", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.SuggestSmartReplies", + "shortName": "UpdateDeliveryPipeline", + "fullName": "google.cloud.deploy.v1.CloudDeploy.UpdateDeliveryPipeline", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestSmartReplies" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestSmartReplies" + "httpMethod": "PATCH", + "path": "/v1/{delivery_pipeline.name=projects/*/locations/*/deliveryPipelines/*}" } ] }, { - "shortName": "UpdateParticipant", - "fullName": "google.cloud.dialogflow.v2beta1.Participants.UpdateParticipant", + "shortName": "UpdateTarget", + "fullName": "google.cloud.deploy.v1.CloudDeploy.UpdateTarget", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v2beta1/{participant.name=projects/*/conversations/*/participants/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{participant.name=projects/*/locations/*/conversations/*/participants/*}" + "path": "/v1/{target.name=projects/*/locations/*/targets/*}" } ] } ] + } + ], + "configFile": "clouddeploy_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.deploy.v1.CloudDeploy", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.dialogflow.cx.v3", + "directory": "google/cloud/dialogflow/cx/v3", + "version": "v3", + "majorVersion": "v3", + "hostName": "dialogflow.googleapis.com", + "title": "Dialogflow API", + "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "importDirectories": [ + "google/api", + "google/cloud/dialogflow/cx/v3", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 21 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Dialogflow.Cx.V3": 21 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3;cx": 21 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 21 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.dialogflow.cx.v3": 21 + } + }, + "objc_class_prefix": { + "valueCounts": { + "DF": 21 + } }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Dialogflow::CX::V3": 21 + } + } + }, + "services": [ { - "shortName": "SessionEntityTypes", - "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes", + "shortName": "Agents", + "fullName": "google.cloud.dialogflow.cx.v3.Agents", "methods": [ { - "shortName": "CreateSessionEntityType", - "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.CreateSessionEntityType", + "shortName": "CreateAgent", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.CreateAgent", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/entityTypes" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes" + "path": "/v3/{parent=projects/*/locations/*}/agents" } ] }, { - "shortName": "DeleteSessionEntityType", - "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.DeleteSessionEntityType", + "shortName": "DeleteAgent", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.DeleteAgent", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + "path": "/v3/{name=projects/*/locations/*/agents/*}" } ] }, { - "shortName": "GetSessionEntityType", - "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.GetSessionEntityType", + "shortName": "ExportAgent", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.ExportAgent", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*}:export" } ] }, { - "shortName": "ListSessionEntityTypes", - "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.ListSessionEntityTypes", + "shortName": "GetAgent", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.GetAgent", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/entityTypes" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes" - }, + "path": "/v3/{name=projects/*/locations/*/agents/*}" + } + ] + }, + { + "shortName": "GetAgentValidationResult", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.GetAgentValidationResult", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes" - }, + "path": "/v3/{name=projects/*/locations/*/agents/*/validationResult}" + } + ] + }, + { + "shortName": "ListAgents", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.ListAgents", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes" + "path": "/v3/{parent=projects/*/locations/*}/agents" } ] }, { - "shortName": "UpdateSessionEntityType", - "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.UpdateSessionEntityType", + "shortName": "RestoreAgent", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.RestoreAgent", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{session_entity_type.name=projects/*/agent/sessions/*/entityTypes/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v2beta1/{session_entity_type.name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" - }, + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*}:restore" + } + ] + }, + { + "shortName": "UpdateAgent", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.UpdateAgent", + "mode": "UNARY", + "bindings": [ { "httpMethod": "PATCH", - "path": "/v2beta1/{session_entity_type.name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" - }, + "path": "/v3/{agent.name=projects/*/locations/*/agents/*}" + } + ] + }, + { + "shortName": "ValidateAgent", + "fullName": "google.cloud.dialogflow.cx.v3.Agents.ValidateAgent", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{session_entity_type.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*}:validate" } ] } ] }, { - "shortName": "Sessions", - "fullName": "google.cloud.dialogflow.v2beta1.Sessions", + "shortName": "Changelogs", + "fullName": "google.cloud.dialogflow.cx.v3.Changelogs", "methods": [ { - "shortName": "DetectIntent", - "fullName": "google.cloud.dialogflow.v2beta1.Sessions.DetectIntent", + "shortName": "GetChangelog", + "fullName": "google.cloud.dialogflow.cx.v3.Changelogs.GetChangelog", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{session=projects/*/agent/sessions/*}:detectIntent" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{session=projects/*/agent/environments/*/users/*/sessions/*}:detectIntent" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{session=projects/*/locations/*/agent/sessions/*}:detectIntent" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{session=projects/*/locations/*/agent/environments/*/users/*/sessions/*}:detectIntent" + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/changelogs/*}" } ] }, { - "shortName": "StreamingDetectIntent", - "fullName": "google.cloud.dialogflow.v2beta1.Sessions.StreamingDetectIntent", - "mode": "BIDIRECTIONAL_STREAMING" + "shortName": "ListChangelogs", + "fullName": "google.cloud.dialogflow.cx.v3.Changelogs.ListChangelogs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/changelogs" + } + ] } ] }, { - "shortName": "Versions", - "fullName": "google.cloud.dialogflow.v2beta1.Versions", + "shortName": "Deployments", + "fullName": "google.cloud.dialogflow.cx.v3.Deployments", "methods": [ { - "shortName": "CreateVersion", - "fullName": "google.cloud.dialogflow.v2beta1.Versions.CreateVersion", + "shortName": "GetDeployment", + "fullName": "google.cloud.dialogflow.cx.v3.Deployments.GetDeployment", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/agent}/versions" - }, - { - "httpMethod": "POST", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/versions" + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/deployments/*}" } ] }, { - "shortName": "DeleteVersion", - "fullName": "google.cloud.dialogflow.v2beta1.Versions.DeleteVersion", + "shortName": "ListDeployments", + "fullName": "google.cloud.dialogflow.cx.v3.Deployments.ListDeployments", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/agent/versions/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v2beta1/{name=projects/*/locations/*/agent/versions/*}" + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/deployments" } ] - }, + } + ] + }, + { + "shortName": "EntityTypes", + "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes", + "methods": [ { - "shortName": "GetVersion", - "fullName": "google.cloud.dialogflow.v2beta1.Versions.GetVersion", + "shortName": "CreateEntityType", + "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.CreateEntityType", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/agent/versions/*}" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{name=projects/*/locations/*/agent/versions/*}" + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/entityTypes" } ] }, { - "shortName": "ListVersions", - "fullName": "google.cloud.dialogflow.v2beta1.Versions.ListVersions", + "shortName": "DeleteEntityType", + "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.DeleteEntityType", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/agent}/versions" - }, - { - "httpMethod": "GET", - "path": "/v2beta1/{parent=projects/*/locations/*/agent}/versions" + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/entityTypes/*}" } ] }, { - "shortName": "UpdateVersion", + "shortName": "GetEntityType", + "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.GetEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/entityTypes/*}" + } + ] + }, + { + "shortName": "ListEntityTypes", + "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.ListEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/entityTypes" + } + ] + }, + { + "shortName": "UpdateEntityType", + "fullName": "google.cloud.dialogflow.cx.v3.EntityTypes.UpdateEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{entity_type.name=projects/*/locations/*/agents/*/entityTypes/*}" + } + ] + } + ] + }, + { + "shortName": "Environments", + "fullName": "google.cloud.dialogflow.cx.v3.Environments", + "methods": [ + { + "shortName": "CreateEnvironment", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.CreateEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/environments" + } + ] + }, + { + "shortName": "DeleteEnvironment", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.DeleteEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*}" + } + ] + }, + { + "shortName": "DeployFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.DeployFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{environment=projects/*/locations/*/agents/*/environments/*}:deployFlow" + } + ] + }, + { + "shortName": "GetEnvironment", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.GetEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*}" + } + ] + }, + { + "shortName": "ListContinuousTestResults", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.ListContinuousTestResults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/continuousTestResults" + } + ] + }, + { + "shortName": "ListEnvironments", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.ListEnvironments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/environments" + } + ] + }, + { + "shortName": "LookupEnvironmentHistory", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.LookupEnvironmentHistory", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*}:lookupEnvironmentHistory" + } + ] + }, + { + "shortName": "RunContinuousTest", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.RunContinuousTest", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{environment=projects/*/locations/*/agents/*/environments/*}:runContinuousTest" + } + ] + }, + { + "shortName": "UpdateEnvironment", + "fullName": "google.cloud.dialogflow.cx.v3.Environments.UpdateEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{environment.name=projects/*/locations/*/agents/*/environments/*}" + } + ] + } + ] + }, + { + "shortName": "Experiments", + "fullName": "google.cloud.dialogflow.cx.v3.Experiments", + "methods": [ + { + "shortName": "CreateExperiment", + "fullName": "google.cloud.dialogflow.cx.v3.Experiments.CreateExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/experiments" + } + ] + }, + { + "shortName": "DeleteExperiment", + "fullName": "google.cloud.dialogflow.cx.v3.Experiments.DeleteExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + } + ] + }, + { + "shortName": "GetExperiment", + "fullName": "google.cloud.dialogflow.cx.v3.Experiments.GetExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + } + ] + }, + { + "shortName": "ListExperiments", + "fullName": "google.cloud.dialogflow.cx.v3.Experiments.ListExperiments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/experiments" + } + ] + }, + { + "shortName": "StartExperiment", + "fullName": "google.cloud.dialogflow.cx.v3.Experiments.StartExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:start" + } + ] + }, + { + "shortName": "StopExperiment", + "fullName": "google.cloud.dialogflow.cx.v3.Experiments.StopExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:stop" + } + ] + }, + { + "shortName": "UpdateExperiment", + "fullName": "google.cloud.dialogflow.cx.v3.Experiments.UpdateExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{experiment.name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + } + ] + } + ] + }, + { + "shortName": "Flows", + "fullName": "google.cloud.dialogflow.cx.v3.Flows", + "methods": [ + { + "shortName": "CreateFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.CreateFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/flows" + } + ] + }, + { + "shortName": "DeleteFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.DeleteFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}" + } + ] + }, + { + "shortName": "ExportFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.ExportFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}:export" + } + ] + }, + { + "shortName": "GetFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.GetFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}" + } + ] + }, + { + "shortName": "GetFlowValidationResult", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.GetFlowValidationResult", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/validationResult}" + } + ] + }, + { + "shortName": "ImportFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.ImportFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/flows:import" + } + ] + }, + { + "shortName": "ListFlows", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.ListFlows", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/flows" + } + ] + }, + { + "shortName": "TrainFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.TrainFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}:train" + } + ] + }, + { + "shortName": "UpdateFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.UpdateFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{flow.name=projects/*/locations/*/agents/*/flows/*}" + } + ] + }, + { + "shortName": "ValidateFlow", + "fullName": "google.cloud.dialogflow.cx.v3.Flows.ValidateFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*}:validate" + } + ] + } + ] + }, + { + "shortName": "Intents", + "fullName": "google.cloud.dialogflow.cx.v3.Intents", + "methods": [ + { + "shortName": "CreateIntent", + "fullName": "google.cloud.dialogflow.cx.v3.Intents.CreateIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/intents" + } + ] + }, + { + "shortName": "DeleteIntent", + "fullName": "google.cloud.dialogflow.cx.v3.Intents.DeleteIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/intents/*}" + } + ] + }, + { + "shortName": "GetIntent", + "fullName": "google.cloud.dialogflow.cx.v3.Intents.GetIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/intents/*}" + } + ] + }, + { + "shortName": "ListIntents", + "fullName": "google.cloud.dialogflow.cx.v3.Intents.ListIntents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/intents" + } + ] + }, + { + "shortName": "UpdateIntent", + "fullName": "google.cloud.dialogflow.cx.v3.Intents.UpdateIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" + } + ] + } + ] + }, + { + "shortName": "Pages", + "fullName": "google.cloud.dialogflow.cx.v3.Pages", + "methods": [ + { + "shortName": "CreatePage", + "fullName": "google.cloud.dialogflow.cx.v3.Pages.CreatePage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/pages" + } + ] + }, + { + "shortName": "DeletePage", + "fullName": "google.cloud.dialogflow.cx.v3.Pages.DeletePage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" + } + ] + }, + { + "shortName": "GetPage", + "fullName": "google.cloud.dialogflow.cx.v3.Pages.GetPage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" + } + ] + }, + { + "shortName": "ListPages", + "fullName": "google.cloud.dialogflow.cx.v3.Pages.ListPages", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/pages" + } + ] + }, + { + "shortName": "UpdatePage", + "fullName": "google.cloud.dialogflow.cx.v3.Pages.UpdatePage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{page.name=projects/*/locations/*/agents/*/flows/*/pages/*}" + } + ] + } + ] + }, + { + "shortName": "SecuritySettingsService", + "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService", + "methods": [ + { + "shortName": "CreateSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.CreateSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*}/securitySettings" + } + ] + }, + { + "shortName": "DeleteSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.DeleteSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/securitySettings/*}" + } + ] + }, + { + "shortName": "GetSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.GetSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/securitySettings/*}" + } + ] + }, + { + "shortName": "ListSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.ListSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*}/securitySettings" + } + ] + }, + { + "shortName": "UpdateSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3.SecuritySettingsService.UpdateSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{security_settings.name=projects/*/locations/*/securitySettings/*}" + } + ] + } + ] + }, + { + "shortName": "SessionEntityTypes", + "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes", + "methods": [ + { + "shortName": "CreateSessionEntityType", + "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.CreateSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes" + } + ] + }, + { + "shortName": "DeleteSessionEntityType", + "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.DeleteSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + } + ] + }, + { + "shortName": "GetSessionEntityType", + "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.GetSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + } + ] + }, + { + "shortName": "ListSessionEntityTypes", + "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.ListSessionEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes" + } + ] + }, + { + "shortName": "UpdateSessionEntityType", + "fullName": "google.cloud.dialogflow.cx.v3.SessionEntityTypes.UpdateSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{session_entity_type.name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v3/{session_entity_type.name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + } + ] + } + ] + }, + { + "shortName": "Sessions", + "fullName": "google.cloud.dialogflow.cx.v3.Sessions", + "methods": [ + { + "shortName": "DetectIntent", + "fullName": "google.cloud.dialogflow.cx.v3.Sessions.DetectIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{session=projects/*/locations/*/agents/*/sessions/*}:detectIntent" + }, + { + "httpMethod": "POST", + "path": "/v3/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:detectIntent" + } + ] + }, + { + "shortName": "FulfillIntent", + "fullName": "google.cloud.dialogflow.cx.v3.Sessions.FulfillIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{match_intent_request.session=projects/*/locations/*/agents/*/sessions/*}:fulfillIntent" + }, + { + "httpMethod": "POST", + "path": "/v3/{match_intent_request.session=projects/*/locations/*/agents/*/environments/*/sessions/*}:fulfillIntent" + } + ] + }, + { + "shortName": "MatchIntent", + "fullName": "google.cloud.dialogflow.cx.v3.Sessions.MatchIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{session=projects/*/locations/*/agents/*/sessions/*}:matchIntent" + }, + { + "httpMethod": "POST", + "path": "/v3/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:matchIntent" + } + ] + }, + { + "shortName": "StreamingDetectIntent", + "fullName": "google.cloud.dialogflow.cx.v3.Sessions.StreamingDetectIntent", + "mode": "BIDIRECTIONAL_STREAMING" + } + ] + }, + { + "shortName": "TestCases", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases", + "methods": [ + { + "shortName": "BatchDeleteTestCases", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.BatchDeleteTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases:batchDelete" + } + ] + }, + { + "shortName": "BatchRunTestCases", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.BatchRunTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases:batchRun" + } + ] + }, + { + "shortName": "CalculateCoverage", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.CalculateCoverage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{agent=projects/*/locations/*/agents/*}/testCases:calculateCoverage" + } + ] + }, + { + "shortName": "CreateTestCase", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.CreateTestCase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases" + } + ] + }, + { + "shortName": "ExportTestCases", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.ExportTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases:export" + } + ] + }, + { + "shortName": "GetTestCase", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.GetTestCase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/testCases/*}" + } + ] + }, + { + "shortName": "GetTestCaseResult", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.GetTestCaseResult", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/testCases/*/results/*}" + } + ] + }, + { + "shortName": "ImportTestCases", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.ImportTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases:import" + } + ] + }, + { + "shortName": "ListTestCaseResults", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.ListTestCaseResults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/testCases/*}/results" + } + ] + }, + { + "shortName": "ListTestCases", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.ListTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/testCases" + } + ] + }, + { + "shortName": "RunTestCase", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.RunTestCase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*/testCases/*}:run" + } + ] + }, + { + "shortName": "UpdateTestCase", + "fullName": "google.cloud.dialogflow.cx.v3.TestCases.UpdateTestCase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{test_case.name=projects/*/locations/*/agents/*/testCases/*}" + } + ] + } + ] + }, + { + "shortName": "TransitionRouteGroups", + "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups", + "methods": [ + { + "shortName": "CreateTransitionRouteGroup", + "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.CreateTransitionRouteGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/transitionRouteGroups" + } + ] + }, + { + "shortName": "DeleteTransitionRouteGroup", + "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.DeleteTransitionRouteGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + } + ] + }, + { + "shortName": "GetTransitionRouteGroup", + "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.GetTransitionRouteGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + } + ] + }, + { + "shortName": "ListTransitionRouteGroups", + "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.ListTransitionRouteGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/transitionRouteGroups" + } + ] + }, + { + "shortName": "UpdateTransitionRouteGroup", + "fullName": "google.cloud.dialogflow.cx.v3.TransitionRouteGroups.UpdateTransitionRouteGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{transition_route_group.name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + } + ] + } + ] + }, + { + "shortName": "Versions", + "fullName": "google.cloud.dialogflow.cx.v3.Versions", + "methods": [ + { + "shortName": "CompareVersions", + "fullName": "google.cloud.dialogflow.cx.v3.Versions.CompareVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{base_version=projects/*/locations/*/agents/*/flows/*/versions/*}:compareVersions" + } + ] + }, + { + "shortName": "CreateVersion", + "fullName": "google.cloud.dialogflow.cx.v3.Versions.CreateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/versions" + } + ] + }, + { + "shortName": "DeleteVersion", + "fullName": "google.cloud.dialogflow.cx.v3.Versions.DeleteVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/versions/*}" + } + ] + }, + { + "shortName": "GetVersion", + "fullName": "google.cloud.dialogflow.cx.v3.Versions.GetVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/versions/*}" + } + ] + }, + { + "shortName": "ListVersions", + "fullName": "google.cloud.dialogflow.cx.v3.Versions.ListVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/versions" + } + ] + }, + { + "shortName": "LoadVersion", + "fullName": "google.cloud.dialogflow.cx.v3.Versions.LoadVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{name=projects/*/locations/*/agents/*/flows/*/versions/*}:load" + } + ] + }, + { + "shortName": "UpdateVersion", + "fullName": "google.cloud.dialogflow.cx.v3.Versions.UpdateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{version.name=projects/*/locations/*/agents/*/flows/*/versions/*}" + } + ] + } + ] + }, + { + "shortName": "Webhooks", + "fullName": "google.cloud.dialogflow.cx.v3.Webhooks", + "methods": [ + { + "shortName": "CreateWebhook", + "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.CreateWebhook", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/webhooks" + } + ] + }, + { + "shortName": "DeleteWebhook", + "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.DeleteWebhook", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/agents/*/webhooks/*}" + } + ] + }, + { + "shortName": "GetWebhook", + "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.GetWebhook", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/agents/*/webhooks/*}" + } + ] + }, + { + "shortName": "ListWebhooks", + "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/agents/*}/webhooks" + } + ] + }, + { + "shortName": "UpdateWebhook", + "fullName": "google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{webhook.name=projects/*/locations/*/agents/*/webhooks/*}" + } + ] + } + ] + } + ], + "configFile": "dialogflow_v3.yaml", + "serviceConfigApiNames": [ + "google.cloud.dialogflow.cx.v3.Agents", + "google.cloud.dialogflow.cx.v3.Changelogs", + "google.cloud.dialogflow.cx.v3.Deployments", + "google.cloud.dialogflow.cx.v3.EntityTypes", + "google.cloud.dialogflow.cx.v3.Environments", + "google.cloud.dialogflow.cx.v3.Experiments", + "google.cloud.dialogflow.cx.v3.Flows", + "google.cloud.dialogflow.cx.v3.Intents", + "google.cloud.dialogflow.cx.v3.Pages", + "google.cloud.dialogflow.cx.v3.SecuritySettingsService", + "google.cloud.dialogflow.cx.v3.SessionEntityTypes", + "google.cloud.dialogflow.cx.v3.Sessions", + "google.cloud.dialogflow.cx.v3.TestCases", + "google.cloud.dialogflow.cx.v3.TransitionRouteGroups", + "google.cloud.dialogflow.cx.v3.Versions", + "google.cloud.dialogflow.cx.v3.Webhooks", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.dialogflow.cx.v3beta1", + "directory": "google/cloud/dialogflow/cx/v3beta1", + "version": "v3beta1", + "majorVersion": "v3", + "hostName": "dialogflow.googleapis.com", + "title": "Dialogflow API", + "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "importDirectories": [ + "google/api", + "google/cloud/dialogflow/cx/v3beta1", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 21 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Dialogflow.Cx.V3Beta1": 21 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3beta1;cx": 21 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 21 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.dialogflow.cx.v3beta1": 21 + } + }, + "objc_class_prefix": { + "valueCounts": { + "DF": 21 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Dialogflow::CX::V3beta1": 21 + } + } + }, + "services": [ + { + "shortName": "Agents", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents", + "methods": [ + { + "shortName": "CreateAgent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*}/agents" + } + ] + }, + { + "shortName": "DeleteAgent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.DeleteAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*}" + } + ] + }, + { + "shortName": "ExportAgent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*}:export" + } + ] + }, + { + "shortName": "GetAgent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.GetAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*}" + } + ] + }, + { + "shortName": "GetAgentValidationResult", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.GetAgentValidationResult", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/validationResult}" + } + ] + }, + { + "shortName": "ListAgents", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*}/agents" + } + ] + }, + { + "shortName": "RestoreAgent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.RestoreAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*}:restore" + } + ] + }, + { + "shortName": "UpdateAgent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{agent.name=projects/*/locations/*/agents/*}" + } + ] + }, + { + "shortName": "ValidateAgent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Agents.ValidateAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*}:validate" + } + ] + } + ] + }, + { + "shortName": "Changelogs", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Changelogs", + "methods": [ + { + "shortName": "GetChangelog", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Changelogs.GetChangelog", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/changelogs/*}" + } + ] + }, + { + "shortName": "ListChangelogs", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Changelogs.ListChangelogs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/changelogs" + } + ] + } + ] + }, + { + "shortName": "Deployments", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Deployments", + "methods": [ + { + "shortName": "GetDeployment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Deployments.GetDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/deployments/*}" + } + ] + }, + { + "shortName": "ListDeployments", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Deployments.ListDeployments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*}/deployments" + } + ] + } + ] + }, + { + "shortName": "EntityTypes", + "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes", + "methods": [ + { + "shortName": "CreateEntityType", + "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.CreateEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/entityTypes" + } + ] + }, + { + "shortName": "DeleteEntityType", + "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.DeleteEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/entityTypes/*}" + } + ] + }, + { + "shortName": "GetEntityType", + "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/entityTypes/*}" + } + ] + }, + { + "shortName": "ListEntityTypes", + "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/entityTypes" + } + ] + }, + { + "shortName": "UpdateEntityType", + "fullName": "google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{entity_type.name=projects/*/locations/*/agents/*/entityTypes/*}" + } + ] + } + ] + }, + { + "shortName": "Environments", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments", + "methods": [ + { + "shortName": "CreateEnvironment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.CreateEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/environments" + } + ] + }, + { + "shortName": "DeleteEnvironment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.DeleteEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*}" + } + ] + }, + { + "shortName": "DeployFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.DeployFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{environment=projects/*/locations/*/agents/*/environments/*}:deployFlow" + } + ] + }, + { + "shortName": "GetEnvironment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.GetEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*}" + } + ] + }, + { + "shortName": "ListContinuousTestResults", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.ListContinuousTestResults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*}/continuousTestResults" + } + ] + }, + { + "shortName": "ListEnvironments", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.ListEnvironments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/environments" + } + ] + }, + { + "shortName": "LookupEnvironmentHistory", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.LookupEnvironmentHistory", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*}:lookupEnvironmentHistory" + } + ] + }, + { + "shortName": "RunContinuousTest", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.RunContinuousTest", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{environment=projects/*/locations/*/agents/*/environments/*}:runContinuousTest" + } + ] + }, + { + "shortName": "UpdateEnvironment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Environments.UpdateEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{environment.name=projects/*/locations/*/agents/*/environments/*}" + } + ] + } + ] + }, + { + "shortName": "Experiments", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments", + "methods": [ + { + "shortName": "CreateExperiment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.CreateExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*}/experiments" + } + ] + }, + { + "shortName": "DeleteExperiment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.DeleteExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + } + ] + }, + { + "shortName": "GetExperiment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.GetExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + } + ] + }, + { + "shortName": "ListExperiments", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.ListExperiments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*}/experiments" + } + ] + }, + { + "shortName": "StartExperiment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.StartExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:start" + } + ] + }, + { + "shortName": "StopExperiment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.StopExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:stop" + } + ] + }, + { + "shortName": "UpdateExperiment", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Experiments.UpdateExperiment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{experiment.name=projects/*/locations/*/agents/*/environments/*/experiments/*}" + } + ] + } + ] + }, + { + "shortName": "Flows", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows", + "methods": [ + { + "shortName": "CreateFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/flows" + } + ] + }, + { + "shortName": "DeleteFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}" + } + ] + }, + { + "shortName": "ExportFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.ExportFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}:export" + } + ] + }, + { + "shortName": "GetFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}" + } + ] + }, + { + "shortName": "GetFlowValidationResult", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.GetFlowValidationResult", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/validationResult}" + } + ] + }, + { + "shortName": "ImportFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.ImportFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/flows:import" + } + ] + }, + { + "shortName": "ListFlows", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/flows" + } + ] + }, + { + "shortName": "TrainFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}:train" + } + ] + }, + { + "shortName": "UpdateFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{flow.name=projects/*/locations/*/agents/*/flows/*}" + } + ] + }, + { + "shortName": "ValidateFlow", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Flows.ValidateFlow", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*}:validate" + } + ] + } + ] + }, + { + "shortName": "Intents", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents", + "methods": [ + { + "shortName": "CreateIntent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.CreateIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/intents" + } + ] + }, + { + "shortName": "DeleteIntent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.DeleteIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/intents/*}" + } + ] + }, + { + "shortName": "GetIntent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.GetIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/intents/*}" + } + ] + }, + { + "shortName": "ListIntents", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.ListIntents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/intents" + } + ] + }, + { + "shortName": "UpdateIntent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Intents.UpdateIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{intent.name=projects/*/locations/*/agents/*/intents/*}" + } + ] + } + ] + }, + { + "shortName": "Pages", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages", + "methods": [ + { + "shortName": "CreatePage", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/pages" + } + ] + }, + { + "shortName": "DeletePage", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.DeletePage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" + } + ] + }, + { + "shortName": "GetPage", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.GetPage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/pages/*}" + } + ] + }, + { + "shortName": "ListPages", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.ListPages", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/pages" + } + ] + }, + { + "shortName": "UpdatePage", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{page.name=projects/*/locations/*/agents/*/flows/*/pages/*}" + } + ] + } + ] + }, + { + "shortName": "SecuritySettingsService", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService", + "methods": [ + { + "shortName": "CreateSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.CreateSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*}/securitySettings" + } + ] + }, + { + "shortName": "DeleteSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.DeleteSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/securitySettings/*}" + } + ] + }, + { + "shortName": "GetSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.GetSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/securitySettings/*}" + } + ] + }, + { + "shortName": "ListSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.ListSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*}/securitySettings" + } + ] + }, + { + "shortName": "UpdateSecuritySettings", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService.UpdateSecuritySettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{security_settings.name=projects/*/locations/*/securitySettings/*}" + } + ] + } + ] + }, + { + "shortName": "SessionEntityTypes", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes", + "methods": [ + { + "shortName": "CreateSessionEntityType", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.CreateSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes" + } + ] + }, + { + "shortName": "DeleteSessionEntityType", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.DeleteSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + } + ] + }, + { + "shortName": "GetSessionEntityType", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.GetSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + } + ] + }, + { + "shortName": "ListSessionEntityTypes", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes" + } + ] + }, + { + "shortName": "UpdateSessionEntityType", + "fullName": "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.UpdateSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{session_entity_type.name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v3beta1/{session_entity_type.name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}" + } + ] + } + ] + }, + { + "shortName": "Sessions", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions", + "methods": [ + { + "shortName": "DetectIntent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{session=projects/*/locations/*/agents/*/sessions/*}:detectIntent" + }, + { + "httpMethod": "POST", + "path": "/v3beta1/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:detectIntent" + } + ] + }, + { + "shortName": "FulfillIntent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions.FulfillIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{match_intent_request.session=projects/*/locations/*/agents/*/sessions/*}:fulfillIntent" + }, + { + "httpMethod": "POST", + "path": "/v3beta1/{match_intent_request.session=projects/*/locations/*/agents/*/environments/*/sessions/*}:fulfillIntent" + } + ] + }, + { + "shortName": "MatchIntent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{session=projects/*/locations/*/agents/*/sessions/*}:matchIntent" + }, + { + "httpMethod": "POST", + "path": "/v3beta1/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:matchIntent" + } + ] + }, + { + "shortName": "StreamingDetectIntent", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent", + "mode": "BIDIRECTIONAL_STREAMING" + } + ] + }, + { + "shortName": "TestCases", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases", + "methods": [ + { + "shortName": "BatchDeleteTestCases", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.BatchDeleteTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases:batchDelete" + } + ] + }, + { + "shortName": "BatchRunTestCases", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases:batchRun" + } + ] + }, + { + "shortName": "CalculateCoverage", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.CalculateCoverage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{agent=projects/*/locations/*/agents/*}/testCases:calculateCoverage" + } + ] + }, + { + "shortName": "CreateTestCase", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.CreateTestCase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases" + } + ] + }, + { + "shortName": "ExportTestCases", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases:export" + } + ] + }, + { + "shortName": "GetTestCase", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/testCases/*}" + } + ] + }, + { + "shortName": "GetTestCaseResult", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCaseResult", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/testCases/*/results/*}" + } + ] + }, + { + "shortName": "ImportTestCases", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases:import" + } + ] + }, + { + "shortName": "ListTestCaseResults", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/testCases/*}/results" + } + ] + }, + { + "shortName": "ListTestCases", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/testCases" + } + ] + }, + { + "shortName": "RunTestCase", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/testCases/*}:run" + } + ] + }, + { + "shortName": "UpdateTestCase", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TestCases.UpdateTestCase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{test_case.name=projects/*/locations/*/agents/*/testCases/*}" + } + ] + } + ] + }, + { + "shortName": "TransitionRouteGroups", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups", + "methods": [ + { + "shortName": "CreateTransitionRouteGroup", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.CreateTransitionRouteGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/transitionRouteGroups" + } + ] + }, + { + "shortName": "DeleteTransitionRouteGroup", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.DeleteTransitionRouteGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + } + ] + }, + { + "shortName": "GetTransitionRouteGroup", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.GetTransitionRouteGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + } + ] + }, + { + "shortName": "ListTransitionRouteGroups", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.ListTransitionRouteGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/transitionRouteGroups" + } + ] + }, + { + "shortName": "UpdateTransitionRouteGroup", + "fullName": "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups.UpdateTransitionRouteGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{transition_route_group.name=projects/*/locations/*/agents/*/flows/*/transitionRouteGroups/*}" + } + ] + } + ] + }, + { + "shortName": "Versions", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions", + "methods": [ + { + "shortName": "CompareVersions", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.CompareVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{base_version=projects/*/locations/*/agents/*/flows/*/versions/*}:compareVersions" + } + ] + }, + { + "shortName": "CreateVersion", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.CreateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/versions" + } + ] + }, + { + "shortName": "DeleteVersion", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.DeleteVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/versions/*}" + } + ] + }, + { + "shortName": "GetVersion", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.GetVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/versions/*}" + } + ] + }, + { + "shortName": "ListVersions", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.ListVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*/flows/*}/versions" + } + ] + }, + { + "shortName": "LoadVersion", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.LoadVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/flows/*/versions/*}:load" + } + ] + }, + { + "shortName": "UpdateVersion", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Versions.UpdateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{version.name=projects/*/locations/*/agents/*/flows/*/versions/*}" + } + ] + } + ] + }, + { + "shortName": "Webhooks", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks", + "methods": [ + { + "shortName": "CreateWebhook", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/webhooks" + } + ] + }, + { + "shortName": "DeleteWebhook", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.DeleteWebhook", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/webhooks/*}" + } + ] + }, + { + "shortName": "GetWebhook", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.GetWebhook", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/webhooks/*}" + } + ] + }, + { + "shortName": "ListWebhooks", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/webhooks" + } + ] + }, + { + "shortName": "UpdateWebhook", + "fullName": "google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3beta1/{webhook.name=projects/*/locations/*/agents/*/webhooks/*}" + } + ] + } + ] + } + ], + "configFile": "dialogflow_v3beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.dialogflow.cx.v3beta1.Agents", + "google.cloud.dialogflow.cx.v3beta1.Changelogs", + "google.cloud.dialogflow.cx.v3beta1.Deployments", + "google.cloud.dialogflow.cx.v3beta1.EntityTypes", + "google.cloud.dialogflow.cx.v3beta1.Environments", + "google.cloud.dialogflow.cx.v3beta1.Experiments", + "google.cloud.dialogflow.cx.v3beta1.Flows", + "google.cloud.dialogflow.cx.v3beta1.Intents", + "google.cloud.dialogflow.cx.v3beta1.Pages", + "google.cloud.dialogflow.cx.v3beta1.SecuritySettingsService", + "google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes", + "google.cloud.dialogflow.cx.v3beta1.Sessions", + "google.cloud.dialogflow.cx.v3beta1.TestCases", + "google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups", + "google.cloud.dialogflow.cx.v3beta1.Versions", + "google.cloud.dialogflow.cx.v3beta1.Webhooks", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.dialogflow.v2", + "directory": "google/cloud/dialogflow/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "dialogflow.googleapis.com", + "title": "Dialogflow API", + "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "importDirectories": [ + "google/api", + "google/cloud/dialogflow/v2", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 23 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Dialogflow.V2": 23 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow": 23 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 23 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.dialogflow.v2": 23 + } + }, + "objc_class_prefix": { + "valueCounts": { + "DF": 23 + } + } + }, + "services": [ + { + "shortName": "Agents", + "fullName": "google.cloud.dialogflow.v2.Agents", + "methods": [ + { + "shortName": "DeleteAgent", + "fullName": "google.cloud.dialogflow.v2.Agents.DeleteAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{parent=projects/*}/agent" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{parent=projects/*/locations/*}/agent" + } + ] + }, + { + "shortName": "ExportAgent", + "fullName": "google.cloud.dialogflow.v2.Agents.ExportAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/agent:export" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/agent:export" + } + ] + }, + { + "shortName": "GetAgent", + "fullName": "google.cloud.dialogflow.v2.Agents.GetAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/agent" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/agent" + } + ] + }, + { + "shortName": "GetValidationResult", + "fullName": "google.cloud.dialogflow.v2.Agents.GetValidationResult", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/agent/validationResult" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/agent/validationResult" + } + ] + }, + { + "shortName": "ImportAgent", + "fullName": "google.cloud.dialogflow.v2.Agents.ImportAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/agent:import" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/agent:import" + } + ] + }, + { + "shortName": "RestoreAgent", + "fullName": "google.cloud.dialogflow.v2.Agents.RestoreAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/agent:restore" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/agent:restore" + } + ] + }, + { + "shortName": "SearchAgents", + "fullName": "google.cloud.dialogflow.v2.Agents.SearchAgents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/agent:search" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/agent:search" + } + ] + }, + { + "shortName": "SetAgent", + "fullName": "google.cloud.dialogflow.v2.Agents.SetAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{agent.parent=projects/*}/agent" + }, + { + "httpMethod": "POST", + "path": "/v2/{agent.parent=projects/*/locations/*}/agent" + } + ] + }, + { + "shortName": "TrainAgent", + "fullName": "google.cloud.dialogflow.v2.Agents.TrainAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/agent:train" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/agent:train" + } + ] + } + ] + }, + { + "shortName": "AnswerRecords", + "fullName": "google.cloud.dialogflow.v2.AnswerRecords", + "methods": [ + { + "shortName": "ListAnswerRecords", + "fullName": "google.cloud.dialogflow.v2.AnswerRecords.ListAnswerRecords", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/answerRecords" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/answerRecords" + } + ] + }, + { + "shortName": "UpdateAnswerRecord", + "fullName": "google.cloud.dialogflow.v2.AnswerRecords.UpdateAnswerRecord", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{answer_record.name=projects/*/answerRecords/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{answer_record.name=projects/*/locations/*/answerRecords/*}" + } + ] + } + ] + }, + { + "shortName": "Contexts", + "fullName": "google.cloud.dialogflow.v2.Contexts", + "methods": [ + { + "shortName": "CreateContext", + "fullName": "google.cloud.dialogflow.v2.Contexts.CreateContext", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + } + ] + }, + { + "shortName": "DeleteAllContexts", + "fullName": "google.cloud.dialogflow.v2.Contexts.DeleteAllContexts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{parent=projects/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + } + ] + }, + { + "shortName": "DeleteContext", + "fullName": "google.cloud.dialogflow.v2.Contexts.DeleteContext", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + } + ] + }, + { + "shortName": "GetContext", + "fullName": "google.cloud.dialogflow.v2.Contexts.GetContext", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + } + ] + }, + { + "shortName": "ListContexts", + "fullName": "google.cloud.dialogflow.v2.Contexts.ListContexts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + } + ] + }, + { + "shortName": "UpdateContext", + "fullName": "google.cloud.dialogflow.v2.Contexts.UpdateContext", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{context.name=projects/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{context.name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{context.name=projects/*/locations/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{context.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + } + ] + } + ] + }, + { + "shortName": "ConversationDatasets", + "fullName": "google.cloud.dialogflow.v2.ConversationDatasets", + "methods": [ + { + "shortName": "CreateConversationDataset", + "fullName": "google.cloud.dialogflow.v2.ConversationDatasets.CreateConversationDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/conversationDatasets" + } + ] + }, + { + "shortName": "DeleteConversationDataset", + "fullName": "google.cloud.dialogflow.v2.ConversationDatasets.DeleteConversationDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/conversationDatasets/*}" + } + ] + }, + { + "shortName": "GetConversationDataset", + "fullName": "google.cloud.dialogflow.v2.ConversationDatasets.GetConversationDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/conversationDatasets/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/conversationDatasets/*}" + } + ] + }, + { + "shortName": "ImportConversationData", + "fullName": "google.cloud.dialogflow.v2.ConversationDatasets.ImportConversationData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/conversationDatasets/*}:importConversationData" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/conversationDatasets/*}:importConversationData" + } + ] + }, + { + "shortName": "ListConversationDatasets", + "fullName": "google.cloud.dialogflow.v2.ConversationDatasets.ListConversationDatasets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/conversationDatasets" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/conversationDatasets" + } + ] + } + ] + }, + { + "shortName": "ConversationModels", + "fullName": "google.cloud.dialogflow.v2.ConversationModels", + "methods": [ + { + "shortName": "CreateConversationModel", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.CreateConversationModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/conversationModels" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/conversationModels" + } + ] + }, + { + "shortName": "CreateConversationModelEvaluation", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.CreateConversationModelEvaluation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/conversationModels/*}/evaluations" + } + ] + }, + { + "shortName": "DeleteConversationModel", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.DeleteConversationModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/conversationModels/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/conversationModels/*}" + } + ] + }, + { + "shortName": "DeployConversationModel", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.DeployConversationModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/conversationModels/*}:deploy" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/conversationModels/*}:deploy" + } + ] + }, + { + "shortName": "GetConversationModel", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.GetConversationModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/conversationModels/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/conversationModels/*}" + } + ] + }, + { + "shortName": "GetConversationModelEvaluation", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.GetConversationModelEvaluation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/conversationModels/*/evaluations/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/conversationModels/*/evaluations/*}" + } + ] + }, + { + "shortName": "ListConversationModelEvaluations", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.ListConversationModelEvaluations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/conversationModels/*}/evaluations" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/conversationModels/*}/evaluations" + } + ] + }, + { + "shortName": "ListConversationModels", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.ListConversationModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/conversationModels" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/conversationModels" + } + ] + }, + { + "shortName": "UndeployConversationModel", + "fullName": "google.cloud.dialogflow.v2.ConversationModels.UndeployConversationModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/conversationModels/*}:undeploy" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/conversationModels/*}:undeploy" + } + ] + } + ] + }, + { + "shortName": "ConversationProfiles", + "fullName": "google.cloud.dialogflow.v2.ConversationProfiles", + "methods": [ + { + "shortName": "ClearSuggestionFeatureConfig", + "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.ClearSuggestionFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{conversation_profile=projects/*/conversationProfiles/*}:clearSuggestionFeatureConfig" + }, + { + "httpMethod": "POST", + "path": "/v2/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:clearSuggestionFeatureConfig" + } + ] + }, + { + "shortName": "CreateConversationProfile", + "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.CreateConversationProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/conversationProfiles" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/conversationProfiles" + } + ] + }, + { + "shortName": "DeleteConversationProfile", + "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.DeleteConversationProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/conversationProfiles/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/conversationProfiles/*}" + } + ] + }, + { + "shortName": "GetConversationProfile", + "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.GetConversationProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/conversationProfiles/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/conversationProfiles/*}" + } + ] + }, + { + "shortName": "ListConversationProfiles", + "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.ListConversationProfiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/conversationProfiles" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/conversationProfiles" + } + ] + }, + { + "shortName": "SetSuggestionFeatureConfig", + "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.SetSuggestionFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{conversation_profile=projects/*/conversationProfiles/*}:setSuggestionFeatureConfig" + }, + { + "httpMethod": "POST", + "path": "/v2/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:setSuggestionFeatureConfig" + } + ] + }, + { + "shortName": "UpdateConversationProfile", + "fullName": "google.cloud.dialogflow.v2.ConversationProfiles.UpdateConversationProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{conversation_profile.name=projects/*/conversationProfiles/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{conversation_profile.name=projects/*/locations/*/conversationProfiles/*}" + } + ] + } + ] + }, + { + "shortName": "Conversations", + "fullName": "google.cloud.dialogflow.v2.Conversations", + "methods": [ + { + "shortName": "CompleteConversation", + "fullName": "google.cloud.dialogflow.v2.Conversations.CompleteConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/conversations/*}:complete" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/conversations/*}:complete" + } + ] + }, + { + "shortName": "CreateConversation", + "fullName": "google.cloud.dialogflow.v2.Conversations.CreateConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/conversations" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/conversations" + } + ] + }, + { + "shortName": "GetConversation", + "fullName": "google.cloud.dialogflow.v2.Conversations.GetConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/conversations/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/conversations/*}" + } + ] + }, + { + "shortName": "ListConversations", + "fullName": "google.cloud.dialogflow.v2.Conversations.ListConversations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/conversations" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/conversations" + } + ] + }, + { + "shortName": "ListMessages", + "fullName": "google.cloud.dialogflow.v2.Conversations.ListMessages", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/conversations/*}/messages" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/conversations/*}/messages" + } + ] + } + ] + }, + { + "shortName": "Documents", + "fullName": "google.cloud.dialogflow.v2.Documents", + "methods": [ + { + "shortName": "CreateDocument", + "fullName": "google.cloud.dialogflow.v2.Documents.CreateDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/knowledgeBases/*}/documents" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent/knowledgeBases/*}/documents" + } + ] + }, + { + "shortName": "DeleteDocument", + "fullName": "google.cloud.dialogflow.v2.Documents.DeleteDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}" + } + ] + }, + { + "shortName": "ExportDocument", + "fullName": "google.cloud.dialogflow.v2.Documents.ExportDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/knowledgeBases/*/documents/*}:export" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}:export" + } + ] + }, + { + "shortName": "GetDocument", + "fullName": "google.cloud.dialogflow.v2.Documents.GetDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}" + } + ] + }, + { + "shortName": "ImportDocuments", + "fullName": "google.cloud.dialogflow.v2.Documents.ImportDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/knowledgeBases/*}/documents:import" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents:import" + } + ] + }, + { + "shortName": "ListDocuments", + "fullName": "google.cloud.dialogflow.v2.Documents.ListDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/knowledgeBases/*}/documents" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent/knowledgeBases/*}/documents" + } + ] + }, + { + "shortName": "ReloadDocument", + "fullName": "google.cloud.dialogflow.v2.Documents.ReloadDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/knowledgeBases/*/documents/*}:reload" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}:reload" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}:reload" + } + ] + }, + { + "shortName": "UpdateDocument", + "fullName": "google.cloud.dialogflow.v2.Documents.UpdateDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{document.name=projects/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{document.name=projects/*/locations/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{document.name=projects/*/agent/knowledgeBases/*/documents/*}" + } + ] + } + ] + }, + { + "shortName": "EntityTypes", + "fullName": "google.cloud.dialogflow.v2.EntityTypes", + "methods": [ + { + "shortName": "BatchCreateEntities", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchCreateEntities", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchCreate" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchCreate" + } + ] + }, + { + "shortName": "BatchDeleteEntities", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchDeleteEntities", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchDelete" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchDelete" + } + ] + }, + { + "shortName": "BatchDeleteEntityTypes", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchDeleteEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/entityTypes:batchDelete" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent}/entityTypes:batchDelete" + } + ] + }, + { + "shortName": "BatchUpdateEntities", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntities", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchUpdate" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchUpdate" + } + ] + }, + { + "shortName": "BatchUpdateEntityTypes", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/entityTypes:batchUpdate" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent}/entityTypes:batchUpdate" + } + ] + }, + { + "shortName": "CreateEntityType", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.CreateEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent}/entityTypes" + } + ] + }, + { + "shortName": "DeleteEntityType", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.DeleteEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/agent/entityTypes/*}" + } + ] + }, + { + "shortName": "GetEntityType", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.GetEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/entityTypes/*}" + } + ] + }, + { + "shortName": "ListEntityTypes", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.ListEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent}/entityTypes" + } + ] + }, + { + "shortName": "UpdateEntityType", + "fullName": "google.cloud.dialogflow.v2.EntityTypes.UpdateEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{entity_type.name=projects/*/agent/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{entity_type.name=projects/*/locations/*/agent/entityTypes/*}" + } + ] + } + ] + }, + { + "shortName": "Environments", + "fullName": "google.cloud.dialogflow.v2.Environments", + "methods": [ + { + "shortName": "CreateEnvironment", + "fullName": "google.cloud.dialogflow.v2.Environments.CreateEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/environments" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent}/environments" + } + ] + }, + { + "shortName": "DeleteEnvironment", + "fullName": "google.cloud.dialogflow.v2.Environments.DeleteEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/environments/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/agent/environments/*}" + } + ] + }, + { + "shortName": "GetEnvironment", + "fullName": "google.cloud.dialogflow.v2.Environments.GetEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/environments/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/environments/*}" + } + ] + }, + { + "shortName": "GetEnvironmentHistory", + "fullName": "google.cloud.dialogflow.v2.Environments.GetEnvironmentHistory", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent/environments/*}/history" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent/environments/*}/history" + } + ] + }, + { + "shortName": "ListEnvironments", + "fullName": "google.cloud.dialogflow.v2.Environments.ListEnvironments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent}/environments" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent}/environments" + } + ] + }, + { + "shortName": "UpdateEnvironment", + "fullName": "google.cloud.dialogflow.v2.Environments.UpdateEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{environment.name=projects/*/agent/environments/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{environment.name=projects/*/locations/*/agent/environments/*}" + } + ] + } + ] + }, + { + "shortName": "Fulfillments", + "fullName": "google.cloud.dialogflow.v2.Fulfillments", + "methods": [ + { + "shortName": "GetFulfillment", + "fullName": "google.cloud.dialogflow.v2.Fulfillments.GetFulfillment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/fulfillment}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/fulfillment}" + } + ] + }, + { + "shortName": "UpdateFulfillment", + "fullName": "google.cloud.dialogflow.v2.Fulfillments.UpdateFulfillment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{fulfillment.name=projects/*/agent/fulfillment}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{fulfillment.name=projects/*/locations/*/agent/fulfillment}" + } + ] + } + ] + }, + { + "shortName": "Intents", + "fullName": "google.cloud.dialogflow.v2.Intents", + "methods": [ + { + "shortName": "BatchDeleteIntents", + "fullName": "google.cloud.dialogflow.v2.Intents.BatchDeleteIntents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/intents:batchDelete" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent}/intents:batchDelete" + } + ] + }, + { + "shortName": "BatchUpdateIntents", + "fullName": "google.cloud.dialogflow.v2.Intents.BatchUpdateIntents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/intents:batchUpdate" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent}/intents:batchUpdate" + } + ] + }, + { + "shortName": "CreateIntent", + "fullName": "google.cloud.dialogflow.v2.Intents.CreateIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/intents" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent}/intents" + } + ] + }, + { + "shortName": "DeleteIntent", + "fullName": "google.cloud.dialogflow.v2.Intents.DeleteIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/intents/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/agent/intents/*}" + } + ] + }, + { + "shortName": "GetIntent", + "fullName": "google.cloud.dialogflow.v2.Intents.GetIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/intents/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/intents/*}" + } + ] + }, + { + "shortName": "ListIntents", + "fullName": "google.cloud.dialogflow.v2.Intents.ListIntents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent}/intents" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent}/intents" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent/environments/*}/intents" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent/environments/*}/intents" + } + ] + }, + { + "shortName": "UpdateIntent", + "fullName": "google.cloud.dialogflow.v2.Intents.UpdateIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{intent.name=projects/*/agent/intents/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{intent.name=projects/*/locations/*/agent/intents/*}" + } + ] + } + ] + }, + { + "shortName": "KnowledgeBases", + "fullName": "google.cloud.dialogflow.v2.KnowledgeBases", + "methods": [ + { + "shortName": "CreateKnowledgeBase", + "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.CreateKnowledgeBase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/knowledgeBases" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/knowledgeBases" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/knowledgeBases" + } + ] + }, + { + "shortName": "DeleteKnowledgeBase", + "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.DeleteKnowledgeBase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/knowledgeBases/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/knowledgeBases/*}" + } + ] + }, + { + "shortName": "GetKnowledgeBase", + "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.GetKnowledgeBase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/knowledgeBases/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/knowledgeBases/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/knowledgeBases/*}" + } + ] + }, + { + "shortName": "ListKnowledgeBases", + "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.ListKnowledgeBases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/knowledgeBases" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/knowledgeBases" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent}/knowledgeBases" + } + ] + }, + { + "shortName": "UpdateKnowledgeBase", + "fullName": "google.cloud.dialogflow.v2.KnowledgeBases.UpdateKnowledgeBase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{knowledge_base.name=projects/*/knowledgeBases/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{knowledge_base.name=projects/*/locations/*/knowledgeBases/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{knowledge_base.name=projects/*/agent/knowledgeBases/*}" + } + ] + } + ] + }, + { + "shortName": "Participants", + "fullName": "google.cloud.dialogflow.v2.Participants", + "methods": [ + { + "shortName": "AnalyzeContent", + "fullName": "google.cloud.dialogflow.v2.Participants.AnalyzeContent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{participant=projects/*/conversations/*/participants/*}:analyzeContent" + }, + { + "httpMethod": "POST", + "path": "/v2/{participant=projects/*/locations/*/conversations/*/participants/*}:analyzeContent" + } + ] + }, + { + "shortName": "CreateParticipant", + "fullName": "google.cloud.dialogflow.v2.Participants.CreateParticipant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/conversations/*}/participants" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/conversations/*}/participants" + } + ] + }, + { + "shortName": "GetParticipant", + "fullName": "google.cloud.dialogflow.v2.Participants.GetParticipant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/conversations/*/participants/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/conversations/*/participants/*}" + } + ] + }, + { + "shortName": "ListParticipants", + "fullName": "google.cloud.dialogflow.v2.Participants.ListParticipants", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/conversations/*}/participants" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/conversations/*}/participants" + } + ] + }, + { + "shortName": "SuggestArticles", + "fullName": "google.cloud.dialogflow.v2.Participants.SuggestArticles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestArticles" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestArticles" + } + ] + }, + { + "shortName": "SuggestFaqAnswers", + "fullName": "google.cloud.dialogflow.v2.Participants.SuggestFaqAnswers", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers" + } + ] + }, + { + "shortName": "SuggestSmartReplies", + "fullName": "google.cloud.dialogflow.v2.Participants.SuggestSmartReplies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestSmartReplies" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestSmartReplies" + } + ] + }, + { + "shortName": "UpdateParticipant", + "fullName": "google.cloud.dialogflow.v2.Participants.UpdateParticipant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{participant.name=projects/*/conversations/*/participants/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{participant.name=projects/*/locations/*/conversations/*/participants/*}" + } + ] + } + ] + }, + { + "shortName": "SessionEntityTypes", + "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes", + "methods": [ + { + "shortName": "CreateSessionEntityType", + "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.CreateSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent/sessions/*}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes" + } + ] + }, + { + "shortName": "DeleteSessionEntityType", + "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.DeleteSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + } + ] + }, + { + "shortName": "GetSessionEntityType", + "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.GetSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + } + ] + }, + { + "shortName": "ListSessionEntityTypes", + "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.ListSessionEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent/sessions/*}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes" + } + ] + }, + { + "shortName": "UpdateSessionEntityType", + "fullName": "google.cloud.dialogflow.v2.SessionEntityTypes.UpdateSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{session_entity_type.name=projects/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{session_entity_type.name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{session_entity_type.name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{session_entity_type.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + } + ] + } + ] + }, + { + "shortName": "Sessions", + "fullName": "google.cloud.dialogflow.v2.Sessions", + "methods": [ + { + "shortName": "DetectIntent", + "fullName": "google.cloud.dialogflow.v2.Sessions.DetectIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{session=projects/*/agent/sessions/*}:detectIntent" + }, + { + "httpMethod": "POST", + "path": "/v2/{session=projects/*/agent/environments/*/users/*/sessions/*}:detectIntent" + }, + { + "httpMethod": "POST", + "path": "/v2/{session=projects/*/locations/*/agent/sessions/*}:detectIntent" + }, + { + "httpMethod": "POST", + "path": "/v2/{session=projects/*/locations/*/agent/environments/*/users/*/sessions/*}:detectIntent" + } + ] + }, + { + "shortName": "StreamingDetectIntent", + "fullName": "google.cloud.dialogflow.v2.Sessions.StreamingDetectIntent", + "mode": "BIDIRECTIONAL_STREAMING" + } + ] + }, + { + "shortName": "Versions", + "fullName": "google.cloud.dialogflow.v2.Versions", + "methods": [ + { + "shortName": "CreateVersion", + "fullName": "google.cloud.dialogflow.v2.Versions.CreateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/agent}/versions" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/agent}/versions" + } + ] + }, + { + "shortName": "DeleteVersion", + "fullName": "google.cloud.dialogflow.v2.Versions.DeleteVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/agent/versions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/agent/versions/*}" + } + ] + }, + { + "shortName": "GetVersion", + "fullName": "google.cloud.dialogflow.v2.Versions.GetVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/agent/versions/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/agent/versions/*}" + } + ] + }, + { + "shortName": "ListVersions", + "fullName": "google.cloud.dialogflow.v2.Versions.ListVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/agent}/versions" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/agent}/versions" + } + ] + }, + { + "shortName": "UpdateVersion", + "fullName": "google.cloud.dialogflow.v2.Versions.UpdateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{version.name=projects/*/agent/versions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{version.name=projects/*/locations/*/agent/versions/*}" + } + ] + } + ] + } + ], + "configFile": "dialogflow_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.dialogflow.v2.Agents", + "google.cloud.dialogflow.v2.AnswerRecords", + "google.cloud.dialogflow.v2.Contexts", + "google.cloud.dialogflow.v2.ConversationDatasets", + "google.cloud.dialogflow.v2.ConversationModels", + "google.cloud.dialogflow.v2.ConversationProfiles", + "google.cloud.dialogflow.v2.Conversations", + "google.cloud.dialogflow.v2.Documents", + "google.cloud.dialogflow.v2.EntityTypes", + "google.cloud.dialogflow.v2.Environments", + "google.cloud.dialogflow.v2.Fulfillments", + "google.cloud.dialogflow.v2.Intents", + "google.cloud.dialogflow.v2.KnowledgeBases", + "google.cloud.dialogflow.v2.Participants", + "google.cloud.dialogflow.v2.SessionEntityTypes", + "google.cloud.dialogflow.v2.Sessions", + "google.cloud.dialogflow.v2.Versions", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.dialogflow.v2beta1", + "directory": "google/cloud/dialogflow/v2beta1", + "version": "v2beta1", + "majorVersion": "v2", + "hostName": "dialogflow.googleapis.com", + "title": "Dialogflow API", + "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "importDirectories": [ + "google/api", + "google/cloud/dialogflow/v2beta1", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 21 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Dialogflow.V2beta1": 21 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1;dialogflow": 21 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 21 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.dialogflow.v2beta1": 21 + } + }, + "objc_class_prefix": { + "valueCounts": { + "DF": 21 + } + } + }, + "services": [ + { + "shortName": "Agents", + "fullName": "google.cloud.dialogflow.v2beta1.Agents", + "methods": [ + { + "shortName": "DeleteAgent", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.DeleteAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{parent=projects/*}/agent" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{parent=projects/*/locations/*}/agent" + } + ] + }, + { + "shortName": "ExportAgent", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.ExportAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*}/agent:export" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/agent:export" + } + ] + }, + { + "shortName": "GetAgent", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.GetAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*}/agent" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*}/agent" + } + ] + }, + { + "shortName": "GetValidationResult", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.GetValidationResult", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*}/agent/validationResult" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*}/agent/validationResult" + } + ] + }, + { + "shortName": "ImportAgent", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.ImportAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*}/agent:import" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/agent:import" + } + ] + }, + { + "shortName": "RestoreAgent", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.RestoreAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*}/agent:restore" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/agent:restore" + } + ] + }, + { + "shortName": "SearchAgents", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.SearchAgents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*}/agent:search" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*}/agent:search" + } + ] + }, + { + "shortName": "SetAgent", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.SetAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{agent.parent=projects/*}/agent" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{agent.parent=projects/*/locations/*}/agent" + } + ] + }, + { + "shortName": "TrainAgent", + "fullName": "google.cloud.dialogflow.v2beta1.Agents.TrainAgent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*}/agent:train" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/agent:train" + } + ] + } + ] + }, + { + "shortName": "AnswerRecords", + "fullName": "google.cloud.dialogflow.v2beta1.AnswerRecords", + "methods": [ + { + "shortName": "GetAnswerRecord", + "fullName": "google.cloud.dialogflow.v2beta1.AnswerRecords.GetAnswerRecord", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/answerRecords/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/answerRecords/*}" + } + ] + }, + { + "shortName": "ListAnswerRecords", + "fullName": "google.cloud.dialogflow.v2beta1.AnswerRecords.ListAnswerRecords", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*}/answerRecords" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*}/answerRecords" + } + ] + }, + { + "shortName": "UpdateAnswerRecord", + "fullName": "google.cloud.dialogflow.v2beta1.AnswerRecords.UpdateAnswerRecord", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{answer_record.name=projects/*/answerRecords/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{answer_record.name=projects/*/locations/*/answerRecords/*}" + } + ] + } + ] + }, + { + "shortName": "Contexts", + "fullName": "google.cloud.dialogflow.v2beta1.Contexts", + "methods": [ + { + "shortName": "CreateContext", + "fullName": "google.cloud.dialogflow.v2beta1.Contexts.CreateContext", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + } + ] + }, + { + "shortName": "DeleteAllContexts", + "fullName": "google.cloud.dialogflow.v2beta1.Contexts.DeleteAllContexts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + } + ] + }, + { + "shortName": "DeleteContext", + "fullName": "google.cloud.dialogflow.v2beta1.Contexts.DeleteContext", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + } + ] + }, + { + "shortName": "GetContext", + "fullName": "google.cloud.dialogflow.v2beta1.Contexts.GetContext", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + } + ] + }, + { + "shortName": "ListContexts", + "fullName": "google.cloud.dialogflow.v2beta1.Contexts.ListContexts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/contexts" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts" + } + ] + }, + { + "shortName": "UpdateContext", + "fullName": "google.cloud.dialogflow.v2beta1.Contexts.UpdateContext", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{context.name=projects/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{context.name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{context.name=projects/*/locations/*/agent/sessions/*/contexts/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{context.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}" + } + ] + } + ] + }, + { + "shortName": "ConversationProfiles", + "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles", + "methods": [ + { + "shortName": "ClearSuggestionFeatureConfig", + "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.ClearSuggestionFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{conversation_profile=projects/*/conversationProfiles/*}:clearSuggestionFeatureConfig" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:clearSuggestionFeatureConfig" + } + ] + }, + { + "shortName": "CreateConversationProfile", + "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.CreateConversationProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*}/conversationProfiles" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/conversationProfiles" + } + ] + }, + { + "shortName": "DeleteConversationProfile", + "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.DeleteConversationProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/conversationProfiles/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/conversationProfiles/*}" + } + ] + }, + { + "shortName": "GetConversationProfile", + "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/conversationProfiles/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/conversationProfiles/*}" + } + ] + }, + { + "shortName": "ListConversationProfiles", + "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.ListConversationProfiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*}/conversationProfiles" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*}/conversationProfiles" + } + ] + }, + { + "shortName": "SetSuggestionFeatureConfig", + "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.SetSuggestionFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{conversation_profile=projects/*/conversationProfiles/*}:setSuggestionFeatureConfig" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:setSuggestionFeatureConfig" + } + ] + }, + { + "shortName": "UpdateConversationProfile", + "fullName": "google.cloud.dialogflow.v2beta1.ConversationProfiles.UpdateConversationProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{conversation_profile.name=projects/*/conversationProfiles/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{conversation_profile.name=projects/*/locations/*/conversationProfiles/*}" + } + ] + } + ] + }, + { + "shortName": "Conversations", + "fullName": "google.cloud.dialogflow.v2beta1.Conversations", + "methods": [ + { + "shortName": "BatchCreateMessages", + "fullName": "google.cloud.dialogflow.v2beta1.Conversations.BatchCreateMessages", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/conversations/*}/messages:batchCreate" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*}/messages:batchCreate" + } + ] + }, + { + "shortName": "CompleteConversation", + "fullName": "google.cloud.dialogflow.v2beta1.Conversations.CompleteConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{name=projects/*/conversations/*}:complete" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{name=projects/*/locations/*/conversations/*}:complete" + } + ] + }, + { + "shortName": "CreateConversation", + "fullName": "google.cloud.dialogflow.v2beta1.Conversations.CreateConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*}/conversations" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/conversations" + } + ] + }, + { + "shortName": "GetConversation", + "fullName": "google.cloud.dialogflow.v2beta1.Conversations.GetConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/conversations/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/conversations/*}" + } + ] + }, + { + "shortName": "ListConversations", + "fullName": "google.cloud.dialogflow.v2beta1.Conversations.ListConversations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*}/conversations" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*}/conversations" + } + ] + }, + { + "shortName": "ListMessages", + "fullName": "google.cloud.dialogflow.v2beta1.Conversations.ListMessages", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/conversations/*}/messages" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*}/messages" + } + ] + } + ] + }, + { + "shortName": "Documents", + "fullName": "google.cloud.dialogflow.v2beta1.Documents", + "methods": [ + { + "shortName": "CreateDocument", + "fullName": "google.cloud.dialogflow.v2beta1.Documents.CreateDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/knowledgeBases/*}/documents" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/knowledgeBases/*}/documents" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent/knowledgeBases/*}/documents" + } + ] + }, + { + "shortName": "DeleteDocument", + "fullName": "google.cloud.dialogflow.v2beta1.Documents.DeleteDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*/documents/*}" + } + ] + }, + { + "shortName": "GetDocument", + "fullName": "google.cloud.dialogflow.v2beta1.Documents.GetDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*/documents/*}" + } + ] + }, + { + "shortName": "ImportDocuments", + "fullName": "google.cloud.dialogflow.v2beta1.Documents.ImportDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/knowledgeBases/*}/documents:import" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/knowledgeBases/*}/documents:import" + } + ] + }, + { + "shortName": "ListDocuments", + "fullName": "google.cloud.dialogflow.v2beta1.Documents.ListDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/knowledgeBases/*}/documents" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/knowledgeBases/*}/documents" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent/knowledgeBases/*}/documents" + } + ] + }, + { + "shortName": "ReloadDocument", + "fullName": "google.cloud.dialogflow.v2beta1.Documents.ReloadDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{name=projects/*/knowledgeBases/*/documents/*}:reload" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*/documents/*}:reload" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*/documents/*}:reload" + } + ] + }, + { + "shortName": "UpdateDocument", + "fullName": "google.cloud.dialogflow.v2beta1.Documents.UpdateDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{document.name=projects/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{document.name=projects/*/locations/*/knowledgeBases/*/documents/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{document.name=projects/*/agent/knowledgeBases/*/documents/*}" + } + ] + } + ] + }, + { + "shortName": "EntityTypes", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes", + "methods": [ + { + "shortName": "BatchCreateEntities", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchCreateEntities", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent/entityTypes/*}/entities:batchCreate" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchCreate" + } + ] + }, + { + "shortName": "BatchDeleteEntities", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchDeleteEntities", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent/entityTypes/*}/entities:batchDelete" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchDelete" + } + ] + }, + { + "shortName": "BatchDeleteEntityTypes", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchDeleteEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/entityTypes:batchDelete" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/entityTypes:batchDelete" + } + ] + }, + { + "shortName": "BatchUpdateEntities", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchUpdateEntities", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent/entityTypes/*}/entities:batchUpdate" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchUpdate" + } + ] + }, + { + "shortName": "BatchUpdateEntityTypes", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.BatchUpdateEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/entityTypes:batchUpdate" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/entityTypes:batchUpdate" + } + ] + }, + { + "shortName": "CreateEntityType", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.CreateEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/entityTypes" + } + ] + }, + { + "shortName": "DeleteEntityType", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.DeleteEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/agent/entityTypes/*}" + } + ] + }, + { + "shortName": "GetEntityType", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.GetEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/entityTypes/*}" + } + ] + }, + { + "shortName": "ListEntityTypes", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.ListEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/entityTypes" + } + ] + }, + { + "shortName": "UpdateEntityType", + "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes.UpdateEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{entity_type.name=projects/*/agent/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{entity_type.name=projects/*/locations/*/agent/entityTypes/*}" + } + ] + } + ] + }, + { + "shortName": "Environments", + "fullName": "google.cloud.dialogflow.v2beta1.Environments", + "methods": [ + { + "shortName": "CreateEnvironment", + "fullName": "google.cloud.dialogflow.v2beta1.Environments.CreateEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/environments" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/environments" + } + ] + }, + { + "shortName": "DeleteEnvironment", + "fullName": "google.cloud.dialogflow.v2beta1.Environments.DeleteEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/environments/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*}" + } + ] + }, + { + "shortName": "GetEnvironment", + "fullName": "google.cloud.dialogflow.v2beta1.Environments.GetEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/environments/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*}" + } + ] + }, + { + "shortName": "GetEnvironmentHistory", + "fullName": "google.cloud.dialogflow.v2beta1.Environments.GetEnvironmentHistory", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent/environments/*}/history" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*}/history" + } + ] + }, + { + "shortName": "ListEnvironments", + "fullName": "google.cloud.dialogflow.v2beta1.Environments.ListEnvironments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent}/environments" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/environments" + } + ] + }, + { + "shortName": "UpdateEnvironment", + "fullName": "google.cloud.dialogflow.v2beta1.Environments.UpdateEnvironment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{environment.name=projects/*/agent/environments/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{environment.name=projects/*/locations/*/agent/environments/*}" + } + ] + } + ] + }, + { + "shortName": "Fulfillments", + "fullName": "google.cloud.dialogflow.v2beta1.Fulfillments", + "methods": [ + { + "shortName": "GetFulfillment", + "fullName": "google.cloud.dialogflow.v2beta1.Fulfillments.GetFulfillment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/fulfillment}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/fulfillment}" + } + ] + }, + { + "shortName": "UpdateFulfillment", + "fullName": "google.cloud.dialogflow.v2beta1.Fulfillments.UpdateFulfillment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{fulfillment.name=projects/*/agent/fulfillment}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{fulfillment.name=projects/*/locations/*/agent/fulfillment}" + } + ] + } + ] + }, + { + "shortName": "Intents", + "fullName": "google.cloud.dialogflow.v2beta1.Intents", + "methods": [ + { + "shortName": "BatchDeleteIntents", + "fullName": "google.cloud.dialogflow.v2beta1.Intents.BatchDeleteIntents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/intents:batchDelete" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/intents:batchDelete" + } + ] + }, + { + "shortName": "BatchUpdateIntents", + "fullName": "google.cloud.dialogflow.v2beta1.Intents.BatchUpdateIntents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/intents:batchUpdate" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/intents:batchUpdate" + } + ] + }, + { + "shortName": "CreateIntent", + "fullName": "google.cloud.dialogflow.v2beta1.Intents.CreateIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/intents" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/intents" + } + ] + }, + { + "shortName": "DeleteIntent", + "fullName": "google.cloud.dialogflow.v2beta1.Intents.DeleteIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/intents/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/agent/intents/*}" + } + ] + }, + { + "shortName": "GetIntent", + "fullName": "google.cloud.dialogflow.v2beta1.Intents.GetIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/intents/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/intents/*}" + } + ] + }, + { + "shortName": "ListIntents", + "fullName": "google.cloud.dialogflow.v2beta1.Intents.ListIntents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent}/intents" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/intents" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent/environments/*}/intents" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*}/intents" + } + ] + }, + { + "shortName": "UpdateIntent", + "fullName": "google.cloud.dialogflow.v2beta1.Intents.UpdateIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{intent.name=projects/*/agent/intents/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{intent.name=projects/*/locations/*/agent/intents/*}" + } + ] + } + ] + }, + { + "shortName": "KnowledgeBases", + "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases", + "methods": [ + { + "shortName": "CreateKnowledgeBase", + "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.CreateKnowledgeBase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*}/knowledgeBases" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/knowledgeBases" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/knowledgeBases" + } + ] + }, + { + "shortName": "DeleteKnowledgeBase", + "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.DeleteKnowledgeBase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/knowledgeBases/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*}" + } + ] + }, + { + "shortName": "GetKnowledgeBase", + "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.GetKnowledgeBase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/knowledgeBases/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/knowledgeBases/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/knowledgeBases/*}" + } + ] + }, + { + "shortName": "ListKnowledgeBases", + "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.ListKnowledgeBases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*}/knowledgeBases" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*}/knowledgeBases" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent}/knowledgeBases" + } + ] + }, + { + "shortName": "UpdateKnowledgeBase", + "fullName": "google.cloud.dialogflow.v2beta1.KnowledgeBases.UpdateKnowledgeBase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{knowledge_base.name=projects/*/knowledgeBases/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{knowledge_base.name=projects/*/locations/*/knowledgeBases/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{knowledge_base.name=projects/*/agent/knowledgeBases/*}" + } + ] + } + ] + }, + { + "shortName": "Participants", + "fullName": "google.cloud.dialogflow.v2beta1.Participants", + "methods": [ + { + "shortName": "AnalyzeContent", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.AnalyzeContent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{participant=projects/*/conversations/*/participants/*}:analyzeContent" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{participant=projects/*/locations/*/conversations/*/participants/*}:analyzeContent" + } + ] + }, + { + "shortName": "CompileSuggestion", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.CompileSuggestion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:compile" + } + ] + }, + { + "shortName": "CreateParticipant", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.CreateParticipant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/conversations/*}/participants" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*}/participants" + } + ] + }, + { + "shortName": "GetParticipant", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.GetParticipant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/conversations/*/participants/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/conversations/*/participants/*}" + } + ] + }, + { + "shortName": "ListParticipants", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.ListParticipants", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/conversations/*}/participants" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*}/participants" + } + ] + }, + { + "shortName": "ListSuggestions", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.ListSuggestions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions" + } + ] + }, + { + "shortName": "StreamingAnalyzeContent", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.StreamingAnalyzeContent", + "mode": "BIDIRECTIONAL_STREAMING" + }, + { + "shortName": "SuggestArticles", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.SuggestArticles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestArticles" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestArticles" + } + ] + }, + { + "shortName": "SuggestFaqAnswers", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.SuggestFaqAnswers", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers" + } + ] + }, + { + "shortName": "SuggestSmartReplies", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.SuggestSmartReplies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestSmartReplies" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestSmartReplies" + } + ] + }, + { + "shortName": "UpdateParticipant", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.UpdateParticipant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{participant.name=projects/*/conversations/*/participants/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{participant.name=projects/*/locations/*/conversations/*/participants/*}" + } + ] + } + ] + }, + { + "shortName": "SessionEntityTypes", + "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes", + "methods": [ + { + "shortName": "CreateSessionEntityType", + "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.CreateSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes" + } + ] + }, + { + "shortName": "DeleteSessionEntityType", + "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.DeleteSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + } + ] + }, + { + "shortName": "GetSessionEntityType", + "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.GetSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + } + ] + }, + { + "shortName": "ListSessionEntityTypes", + "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.ListSessionEntityTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent/sessions/*}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes" + } + ] + }, + { + "shortName": "UpdateSessionEntityType", + "fullName": "google.cloud.dialogflow.v2beta1.SessionEntityTypes.UpdateSessionEntityType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{session_entity_type.name=projects/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{session_entity_type.name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{session_entity_type.name=projects/*/locations/*/agent/sessions/*/entityTypes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{session_entity_type.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}" + } + ] + } + ] + }, + { + "shortName": "Sessions", + "fullName": "google.cloud.dialogflow.v2beta1.Sessions", + "methods": [ + { + "shortName": "DetectIntent", + "fullName": "google.cloud.dialogflow.v2beta1.Sessions.DetectIntent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{session=projects/*/agent/sessions/*}:detectIntent" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{session=projects/*/agent/environments/*/users/*/sessions/*}:detectIntent" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{session=projects/*/locations/*/agent/sessions/*}:detectIntent" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{session=projects/*/locations/*/agent/environments/*/users/*/sessions/*}:detectIntent" + } + ] + }, + { + "shortName": "StreamingDetectIntent", + "fullName": "google.cloud.dialogflow.v2beta1.Sessions.StreamingDetectIntent", + "mode": "BIDIRECTIONAL_STREAMING" + } + ] + }, + { + "shortName": "Versions", + "fullName": "google.cloud.dialogflow.v2beta1.Versions", + "methods": [ + { + "shortName": "CreateVersion", + "fullName": "google.cloud.dialogflow.v2beta1.Versions.CreateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/agent}/versions" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/versions" + } + ] + }, + { + "shortName": "DeleteVersion", + "fullName": "google.cloud.dialogflow.v2beta1.Versions.DeleteVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/agent/versions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/agent/versions/*}" + } + ] + }, + { + "shortName": "GetVersion", + "fullName": "google.cloud.dialogflow.v2beta1.Versions.GetVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/agent/versions/*}" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/agent/versions/*}" + } + ] + }, + { + "shortName": "ListVersions", + "fullName": "google.cloud.dialogflow.v2beta1.Versions.ListVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/agent}/versions" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*/agent}/versions" + } + ] + }, + { + "shortName": "UpdateVersion", "fullName": "google.cloud.dialogflow.v2beta1.Versions.UpdateVersion", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v2beta1/{version.name=projects/*/agent/versions/*}" + "httpMethod": "PATCH", + "path": "/v2beta1/{version.name=projects/*/agent/versions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2beta1/{version.name=projects/*/locations/*/agent/versions/*}" + } + ] + } + ] + } + ], + "configFile": "dialogflow_v2beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.dialogflow.v2beta1.Agents", + "google.cloud.dialogflow.v2beta1.AnswerRecords", + "google.cloud.dialogflow.v2beta1.Contexts", + "google.cloud.dialogflow.v2beta1.ConversationProfiles", + "google.cloud.dialogflow.v2beta1.Conversations", + "google.cloud.dialogflow.v2beta1.Documents", + "google.cloud.dialogflow.v2beta1.EntityTypes", + "google.cloud.dialogflow.v2beta1.Environments", + "google.cloud.dialogflow.v2beta1.Fulfillments", + "google.cloud.dialogflow.v2beta1.Intents", + "google.cloud.dialogflow.v2beta1.KnowledgeBases", + "google.cloud.dialogflow.v2beta1.Participants", + "google.cloud.dialogflow.v2beta1.SessionEntityTypes", + "google.cloud.dialogflow.v2beta1.Sessions", + "google.cloud.dialogflow.v2beta1.Versions", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.discoveryengine.v1beta", + "directory": "google/cloud/discoveryengine/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "discoveryengine.googleapis.com", + "title": "Discovery Engine API", + "description": "Discovery Engine API.", + "importDirectories": [ + "google/api", + "google/cloud/discoveryengine/v1beta", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DiscoveryEngine.V1Beta": 7 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta;discoveryengine": 7 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 7 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.discoveryengine.v1beta": 7 + } + }, + "objc_class_prefix": { + "valueCounts": { + "DISCOVERYENGINE": 7 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DiscoveryEngine\\V1beta": 7 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DiscoveryEngine::V1beta": 7 + } + } + }, + "services": [ + { + "shortName": "DocumentService", + "fullName": "google.cloud.discoveryengine.v1beta.DocumentService", + "methods": [ + { + "shortName": "CreateDocument", + "fullName": "google.cloud.discoveryengine.v1beta.DocumentService.CreateDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents" + } + ] + }, + { + "shortName": "DeleteDocument", + "fullName": "google.cloud.discoveryengine.v1beta.DocumentService.DeleteDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" + } + ] + }, + { + "shortName": "GetDocument", + "fullName": "google.cloud.discoveryengine.v1beta.DocumentService.GetDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" + } + ] + }, + { + "shortName": "ImportDocuments", + "fullName": "google.cloud.discoveryengine.v1beta.DocumentService.ImportDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents:import" + } + ] + }, + { + "shortName": "ListDocuments", + "fullName": "google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents" + } + ] + }, + { + "shortName": "UpdateDocument", + "fullName": "google.cloud.discoveryengine.v1beta.DocumentService.UpdateDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta/{document.name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" + } + ] + } + ] + }, + { + "shortName": "RecommendationService", + "fullName": "google.cloud.discoveryengine.v1beta.RecommendationService", + "methods": [ + { + "shortName": "Recommend", + "fullName": "google.cloud.discoveryengine.v1beta.RecommendationService.Recommend", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:recommend" + } + ] + } + ] + }, + { + "shortName": "UserEventService", + "fullName": "google.cloud.discoveryengine.v1beta.UserEventService", + "methods": [ + { + "shortName": "CollectUserEvent", + "fullName": "google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/userEvents:collect" + } + ] + }, + { + "shortName": "ImportUserEvents", + "fullName": "google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/userEvents:import" + } + ] + }, + { + "shortName": "WriteUserEvent", + "fullName": "google.cloud.discoveryengine.v1beta.UserEventService.WriteUserEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/userEvents:write" + } + ] + } + ] + } + ], + "configFile": "discoveryengine_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.discoveryengine.v1beta.DocumentService", + "google.cloud.discoveryengine.v1beta.RecommendationService", + "google.cloud.discoveryengine.v1beta.UserEventService", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.documentai.v1", + "directory": "google/cloud/documentai/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "documentai.googleapis.com", + "title": "Cloud Document AI API", + "description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", + "importDirectories": [ + "google/api", + "google/cloud/documentai/v1", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DocumentAI.V1": 9 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai": 9 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 9 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.documentai.v1": 9 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DocumentAI\\V1": 9 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DocumentAI::V1": 9 + } + } + }, + "services": [ + { + "shortName": "DocumentProcessorService", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService", + "methods": [ + { + "shortName": "BatchProcessDocuments", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.BatchProcessDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/processors/*}:batchProcess" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}:batchProcess" + } + ] + }, + { + "shortName": "CreateProcessor", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.CreateProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/processors" + } + ] + }, + { + "shortName": "DeleteProcessor", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.DeleteProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/processors/*}" + } + ] + }, + { + "shortName": "DeleteProcessorVersion", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.DeleteProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}" + } + ] + }, + { + "shortName": "DeployProcessorVersion", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.DeployProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}:deploy" + } + ] + }, + { + "shortName": "DisableProcessor", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.DisableProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/processors/*}:disable" + } + ] + }, + { + "shortName": "EnableProcessor", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.EnableProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/processors/*}:enable" + } + ] + }, + { + "shortName": "FetchProcessorTypes", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.FetchProcessorTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}:fetchProcessorTypes" + } + ] + }, + { + "shortName": "GetProcessor", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.GetProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/processors/*}" + } + ] + }, + { + "shortName": "GetProcessorVersion", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.GetProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}" + } + ] + }, + { + "shortName": "ListProcessorTypes", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.ListProcessorTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/processorTypes" + } + ] + }, + { + "shortName": "ListProcessorVersions", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.ListProcessorVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/processors/*}/processorVersions" + } + ] + }, + { + "shortName": "ListProcessors", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.ListProcessors", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/processors" + } + ] + }, + { + "shortName": "ProcessDocument", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.ProcessDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/processors/*}:process" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}:process" + } + ] + }, + { + "shortName": "ReviewDocument", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.ReviewDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{human_review_config=projects/*/locations/*/processors/*/humanReviewConfig}:reviewDocument" + } + ] + }, + { + "shortName": "SetDefaultProcessorVersion", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.SetDefaultProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{processor=projects/*/locations/*/processors/*}:setDefaultProcessorVersion" + } + ] + }, + { + "shortName": "UndeployProcessorVersion", + "fullName": "google.cloud.documentai.v1.DocumentProcessorService.UndeployProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}:undeploy" + } + ] + } + ] + } + ], + "configFile": "documentai_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.documentai.v1.DocumentProcessorService", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.documentai.v1beta2", + "directory": "google/cloud/documentai/v1beta2", + "version": "v1beta2", + "majorVersion": "v1", + "hostName": "documentai.googleapis.com", + "title": "Cloud Document AI API", + "description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", + "importDirectories": [ + "google/api", + "google/cloud/documentai/v1beta2", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DocumentAI.V1Beta2": 3 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/documentai/v1beta2;documentai": 3 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 3 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.documentai.v1beta2": 3 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DocumentAI\\V1beta2": 3 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DocumentAI::V1beta2": 3 + } + } + }, + "services": [ + { + "shortName": "DocumentUnderstandingService", + "fullName": "google.cloud.documentai.v1beta2.DocumentUnderstandingService", + "methods": [ + { + "shortName": "BatchProcessDocuments", + "fullName": "google.cloud.documentai.v1beta2.DocumentUnderstandingService.BatchProcessDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*/locations/*}/documents:batchProcess" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*}/documents:batchProcess" + } + ] + }, + { + "shortName": "ProcessDocument", + "fullName": "google.cloud.documentai.v1beta2.DocumentUnderstandingService.ProcessDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*/locations/*}/documents:process" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*}/documents:process" + } + ] + } + ] + } + ], + "configFile": "documentai_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.cloud.documentai.v1beta2.DocumentUnderstandingService" + ] + }, + { + "id": "google.cloud.documentai.v1beta3", + "directory": "google/cloud/documentai/v1beta3", + "version": "v1beta3", + "majorVersion": "v1", + "hostName": "documentai.googleapis.com", + "title": "Cloud Document AI API", + "description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", + "importDirectories": [ + "google/api", + "google/cloud/documentai/v1beta3", + "google/longrunning", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DocumentAI.V1Beta3": 9 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai": 9 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 9 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.documentai.v1beta3": 9 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DocumentAI\\V1beta3": 9 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DocumentAI::V1beta3": 9 + } + } + }, + "services": [ + { + "shortName": "DocumentProcessorService", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService", + "methods": [ + { + "shortName": "BatchProcessDocuments", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.BatchProcessDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*}:batchProcess" + }, + { + "httpMethod": "POST", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}:batchProcess" + } + ] + }, + { + "shortName": "CreateProcessor", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.CreateProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{parent=projects/*/locations/*}/processors" + } + ] + }, + { + "shortName": "DeleteProcessor", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.DeleteProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*}" + } + ] + }, + { + "shortName": "DeleteProcessorVersion", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.DeleteProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}" + } + ] + }, + { + "shortName": "DeployProcessorVersion", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.DeployProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}:deploy" + } + ] + }, + { + "shortName": "DisableProcessor", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.DisableProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*}:disable" + } + ] + }, + { + "shortName": "EnableProcessor", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.EnableProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*}:enable" + } + ] + }, + { + "shortName": "FetchProcessorTypes", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.FetchProcessorTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta3/{parent=projects/*/locations/*}:fetchProcessorTypes" + } + ] + }, + { + "shortName": "GetProcessor", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.GetProcessor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*}" + } + ] + }, + { + "shortName": "GetProcessorVersion", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.GetProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}" + } + ] + }, + { + "shortName": "ListProcessorTypes", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.ListProcessorTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta3/{parent=projects/*/locations/*}/processorTypes" + } + ] + }, + { + "shortName": "ListProcessorVersions", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.ListProcessorVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta3/{parent=projects/*/locations/*/processors/*}/processorVersions" + } + ] + }, + { + "shortName": "ListProcessors", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.ListProcessors", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta3/{parent=projects/*/locations/*}/processors" + } + ] + }, + { + "shortName": "ProcessDocument", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.ProcessDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*}:process" }, { - "httpMethod": "PATCH", - "path": "/v2beta1/{version.name=projects/*/locations/*/agent/versions/*}" + "httpMethod": "POST", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}:process" + } + ] + }, + { + "shortName": "ReviewDocument", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.ReviewDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{human_review_config=projects/*/locations/*/processors/*/humanReviewConfig}:reviewDocument" + } + ] + }, + { + "shortName": "SetDefaultProcessorVersion", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.SetDefaultProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{processor=projects/*/locations/*/processors/*}:setDefaultProcessorVersion" + } + ] + }, + { + "shortName": "UndeployProcessorVersion", + "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.UndeployProcessorVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}:undeploy" } ] } ] } ], - "configFile": "dialogflow_v2beta1.yaml" + "configFile": "documentai_v1beta3.yaml", + "serviceConfigApiNames": [ + "google.cloud.documentai.v1beta3.DocumentProcessorService", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.documentai.v1", - "directory": "google/cloud/documentai/v1", + "id": "google.cloud.domains.v1", + "directory": "google/cloud/domains/v1", "version": "v1", "majorVersion": "v1", - "hostName": "documentai.googleapis.com", - "title": "Cloud Document AI API", - "description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", + "hostName": "domains.googleapis.com", + "title": "Cloud Domains API", + "description": "Enables management and configuration of domain names.", "importDirectories": [ "google/api", - "google/cloud/documentai/v1", "google/longrunning", "google/protobuf", - "google/rpc", "google/type" ], "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.DocumentAI.V1": 5 - } - }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai": 5 + "google.golang.org/genproto/googleapis/cloud/domains/v1;domains": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.documentai.v1": 5 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DocumentAI\\V1": 5 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DocumentAI::V1": 5 + "com.google.cloud.domains.v1": 1 } } }, "services": [ { - "shortName": "DocumentProcessorService", - "fullName": "google.cloud.documentai.v1.DocumentProcessorService", + "shortName": "Domains", + "fullName": "google.cloud.domains.v1.Domains", "methods": [ { - "shortName": "BatchProcessDocuments", - "fullName": "google.cloud.documentai.v1.DocumentProcessorService.BatchProcessDocuments", + "shortName": "ConfigureContactSettings", + "fullName": "google.cloud.domains.v1.Domains.ConfigureContactSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/processors/*}:batchProcess" + "path": "/v1/{registration=projects/*/locations/*/registrations/*}:configureContactSettings" } ] }, { - "shortName": "ProcessDocument", - "fullName": "google.cloud.documentai.v1.DocumentProcessorService.ProcessDocument", + "shortName": "ConfigureDnsSettings", + "fullName": "google.cloud.domains.v1.Domains.ConfigureDnsSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/processors/*}:process" + "path": "/v1/{registration=projects/*/locations/*/registrations/*}:configureDnsSettings" } ] }, { - "shortName": "ReviewDocument", - "fullName": "google.cloud.documentai.v1.DocumentProcessorService.ReviewDocument", + "shortName": "ConfigureManagementSettings", + "fullName": "google.cloud.domains.v1.Domains.ConfigureManagementSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{human_review_config=projects/*/locations/*/processors/*/humanReviewConfig}:reviewDocument" + "path": "/v1/{registration=projects/*/locations/*/registrations/*}:configureManagementSettings" + } + ] + }, + { + "shortName": "DeleteRegistration", + "fullName": "google.cloud.domains.v1.Domains.DeleteRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/registrations/*}" + } + ] + }, + { + "shortName": "ExportRegistration", + "fullName": "google.cloud.domains.v1.Domains.ExportRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/registrations/*}:export" + } + ] + }, + { + "shortName": "GetRegistration", + "fullName": "google.cloud.domains.v1.Domains.GetRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/registrations/*}" + } + ] + }, + { + "shortName": "ListRegistrations", + "fullName": "google.cloud.domains.v1.Domains.ListRegistrations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/registrations" + } + ] + }, + { + "shortName": "RegisterDomain", + "fullName": "google.cloud.domains.v1.Domains.RegisterDomain", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/registrations:register" + } + ] + }, + { + "shortName": "ResetAuthorizationCode", + "fullName": "google.cloud.domains.v1.Domains.ResetAuthorizationCode", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{registration=projects/*/locations/*/registrations/*}:resetAuthorizationCode" + } + ] + }, + { + "shortName": "RetrieveAuthorizationCode", + "fullName": "google.cloud.domains.v1.Domains.RetrieveAuthorizationCode", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{registration=projects/*/locations/*/registrations/*}:retrieveAuthorizationCode" + } + ] + }, + { + "shortName": "RetrieveRegisterParameters", + "fullName": "google.cloud.domains.v1.Domains.RetrieveRegisterParameters", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{location=projects/*/locations/*}/registrations:retrieveRegisterParameters" + } + ] + }, + { + "shortName": "RetrieveTransferParameters", + "fullName": "google.cloud.domains.v1.Domains.RetrieveTransferParameters", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{location=projects/*/locations/*}/registrations:retrieveTransferParameters" + } + ] + }, + { + "shortName": "SearchDomains", + "fullName": "google.cloud.domains.v1.Domains.SearchDomains", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{location=projects/*/locations/*}/registrations:searchDomains" + } + ] + }, + { + "shortName": "TransferDomain", + "fullName": "google.cloud.domains.v1.Domains.TransferDomain", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/registrations:transfer" + } + ] + }, + { + "shortName": "UpdateRegistration", + "fullName": "google.cloud.domains.v1.Domains.UpdateRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{registration.name=projects/*/locations/*/registrations/*}" } ] } ] } ], - "configFile": "documentai_v1.yaml" + "configFile": "domains_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.domains.v1.Domains" + ] }, { - "id": "google.cloud.documentai.v1beta2", - "directory": "google/cloud/documentai/v1beta2", - "version": "v1beta2", + "id": "google.cloud.domains.v1alpha2", + "directory": "google/cloud/domains/v1alpha2", + "version": "v1alpha2", "majorVersion": "v1", - "hostName": "documentai.googleapis.com", - "title": "Cloud Document AI API", - "description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", + "hostName": "domains.googleapis.com", + "title": "Cloud Domains API", + "description": "Enables management and configuration of domain names.", "importDirectories": [ "google/api", - "google/cloud/documentai/v1beta2", "google/longrunning", "google/protobuf", - "google/rpc", "google/type" ], "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.DocumentAI.V1Beta2": 3 - } - }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/documentai/v1beta2;documentai": 3 + "google.golang.org/genproto/googleapis/cloud/domains/v1alpha2;domains": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.documentai.v1beta2": 3 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DocumentAI\\V1beta2": 3 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DocumentAI::V1beta2": 3 + "com.google.cloud.domains.v1alpha2": 1 } } }, "services": [ { - "shortName": "DocumentUnderstandingService", - "fullName": "google.cloud.documentai.v1beta2.DocumentUnderstandingService", + "shortName": "Domains", + "fullName": "google.cloud.domains.v1alpha2.Domains", "methods": [ { - "shortName": "BatchProcessDocuments", - "fullName": "google.cloud.documentai.v1beta2.DocumentUnderstandingService.BatchProcessDocuments", + "shortName": "ConfigureContactSettings", + "fullName": "google.cloud.domains.v1alpha2.Domains.ConfigureContactSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{parent=projects/*/locations/*}/documents:batchProcess" - }, + "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureContactSettings" + } + ] + }, + { + "shortName": "ConfigureDnsSettings", + "fullName": "google.cloud.domains.v1alpha2.Domains.ConfigureDnsSettings", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{parent=projects/*}/documents:batchProcess" + "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureDnsSettings" } ] }, { - "shortName": "ProcessDocument", - "fullName": "google.cloud.documentai.v1beta2.DocumentUnderstandingService.ProcessDocument", + "shortName": "ConfigureManagementSettings", + "fullName": "google.cloud.domains.v1alpha2.Domains.ConfigureManagementSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{parent=projects/*/locations/*}/documents:process" - }, + "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureManagementSettings" + } + ] + }, + { + "shortName": "DeleteRegistration", + "fullName": "google.cloud.domains.v1alpha2.Domains.DeleteRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha2/{name=projects/*/locations/*/registrations/*}" + } + ] + }, + { + "shortName": "ExportRegistration", + "fullName": "google.cloud.domains.v1alpha2.Domains.ExportRegistration", + "mode": "UNARY", + "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{parent=projects/*}/documents:process" + "path": "/v1alpha2/{name=projects/*/locations/*/registrations/*}:export" + } + ] + }, + { + "shortName": "GetRegistration", + "fullName": "google.cloud.domains.v1alpha2.Domains.GetRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha2/{name=projects/*/locations/*/registrations/*}" + } + ] + }, + { + "shortName": "ListRegistrations", + "fullName": "google.cloud.domains.v1alpha2.Domains.ListRegistrations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha2/{parent=projects/*/locations/*}/registrations" + } + ] + }, + { + "shortName": "RegisterDomain", + "fullName": "google.cloud.domains.v1alpha2.Domains.RegisterDomain", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha2/{parent=projects/*/locations/*}/registrations:register" + } + ] + }, + { + "shortName": "ResetAuthorizationCode", + "fullName": "google.cloud.domains.v1alpha2.Domains.ResetAuthorizationCode", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:resetAuthorizationCode" + } + ] + }, + { + "shortName": "RetrieveAuthorizationCode", + "fullName": "google.cloud.domains.v1alpha2.Domains.RetrieveAuthorizationCode", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:retrieveAuthorizationCode" + } + ] + }, + { + "shortName": "RetrieveRegisterParameters", + "fullName": "google.cloud.domains.v1alpha2.Domains.RetrieveRegisterParameters", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha2/{location=projects/*/locations/*}/registrations:retrieveRegisterParameters" + } + ] + }, + { + "shortName": "RetrieveTransferParameters", + "fullName": "google.cloud.domains.v1alpha2.Domains.RetrieveTransferParameters", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha2/{location=projects/*/locations/*}/registrations:retrieveTransferParameters" + } + ] + }, + { + "shortName": "SearchDomains", + "fullName": "google.cloud.domains.v1alpha2.Domains.SearchDomains", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha2/{location=projects/*/locations/*}/registrations:searchDomains" + } + ] + }, + { + "shortName": "TransferDomain", + "fullName": "google.cloud.domains.v1alpha2.Domains.TransferDomain", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha2/{parent=projects/*/locations/*}/registrations:transfer" + } + ] + }, + { + "shortName": "UpdateRegistration", + "fullName": "google.cloud.domains.v1alpha2.Domains.UpdateRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha2/{registration.name=projects/*/locations/*/registrations/*}" } ] } ] } ], - "configFile": "documentai_v1beta2.yaml" + "configFile": "domains_v1alpha2.yaml", + "serviceConfigApiNames": [ + "google.cloud.domains.v1alpha2.Domains" + ] }, { - "id": "google.cloud.documentai.v1beta3", - "directory": "google/cloud/documentai/v1beta3", - "version": "v1beta3", + "id": "google.cloud.domains.v1beta1", + "directory": "google/cloud/domains/v1beta1", + "version": "v1beta1", "majorVersion": "v1", - "hostName": "documentai.googleapis.com", - "title": "Cloud Document AI API", - "description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", + "hostName": "domains.googleapis.com", + "title": "Cloud Domains API", + "description": "Enables management and configuration of domain names.", "importDirectories": [ "google/api", - "google/cloud/documentai/v1beta3", "google/longrunning", "google/protobuf", - "google/rpc", "google/type" ], "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.DocumentAI.V1Beta3": 7 - } - }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai": 7 + "google.golang.org/genproto/googleapis/cloud/domains/v1beta1;domains": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 7 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.documentai.v1beta3": 7 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DocumentAI\\V1beta3": 7 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DocumentAI::V1beta3": 7 + "com.google.cloud.domains.v1beta1": 1 } } }, "services": [ { - "shortName": "DocumentProcessorService", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService", + "shortName": "Domains", + "fullName": "google.cloud.domains.v1beta1.Domains", "methods": [ { - "shortName": "BatchProcessDocuments", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.BatchProcessDocuments", + "shortName": "ConfigureContactSettings", + "fullName": "google.cloud.domains.v1beta1.Domains.ConfigureContactSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:configureContactSettings" + } + ] + }, + { + "shortName": "ConfigureDnsSettings", + "fullName": "google.cloud.domains.v1beta1.Domains.ConfigureDnsSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:configureDnsSettings" + } + ] + }, + { + "shortName": "ConfigureManagementSettings", + "fullName": "google.cloud.domains.v1beta1.Domains.ConfigureManagementSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:configureManagementSettings" + } + ] + }, + { + "shortName": "DeleteRegistration", + "fullName": "google.cloud.domains.v1beta1.Domains.DeleteRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/registrations/*}" + } + ] + }, + { + "shortName": "ExportRegistration", + "fullName": "google.cloud.domains.v1beta1.Domains.ExportRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/registrations/*}:export" + } + ] + }, + { + "shortName": "GetRegistration", + "fullName": "google.cloud.domains.v1beta1.Domains.GetRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/registrations/*}" + } + ] + }, + { + "shortName": "ListRegistrations", + "fullName": "google.cloud.domains.v1beta1.Domains.ListRegistrations", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta3/{name=projects/*/locations/*/processors/*}:batchProcess" + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/registrations" } ] }, { - "shortName": "CreateProcessor", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.CreateProcessor", + "shortName": "RegisterDomain", + "fullName": "google.cloud.domains.v1beta1.Domains.RegisterDomain", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{parent=projects/*/locations/*}/processors" + "path": "/v1beta1/{parent=projects/*/locations/*}/registrations:register" } ] }, { - "shortName": "DeleteProcessor", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.DeleteProcessor", + "shortName": "ResetAuthorizationCode", + "fullName": "google.cloud.domains.v1beta1.Domains.ResetAuthorizationCode", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta3/{name=projects/*/locations/*/processors/*}" + "httpMethod": "POST", + "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:resetAuthorizationCode" } ] }, { - "shortName": "DisableProcessor", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.DisableProcessor", + "shortName": "RetrieveAuthorizationCode", + "fullName": "google.cloud.domains.v1beta1.Domains.RetrieveAuthorizationCode", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta3/{name=projects/*/locations/*/processors/*}:disable" + "httpMethod": "GET", + "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:retrieveAuthorizationCode" } ] }, { - "shortName": "EnableProcessor", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.EnableProcessor", + "shortName": "RetrieveRegisterParameters", + "fullName": "google.cloud.domains.v1beta1.Domains.RetrieveRegisterParameters", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta3/{name=projects/*/locations/*/processors/*}:enable" + "httpMethod": "GET", + "path": "/v1beta1/{location=projects/*/locations/*}/registrations:retrieveRegisterParameters" } ] }, { - "shortName": "FetchProcessorTypes", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.FetchProcessorTypes", + "shortName": "RetrieveTransferParameters", + "fullName": "google.cloud.domains.v1beta1.Domains.RetrieveTransferParameters", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta3/{parent=projects/*/locations/*}:fetchProcessorTypes" + "path": "/v1beta1/{location=projects/*/locations/*}/registrations:retrieveTransferParameters" } ] }, { - "shortName": "ListProcessors", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.ListProcessors", + "shortName": "SearchDomains", + "fullName": "google.cloud.domains.v1beta1.Domains.SearchDomains", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta3/{parent=projects/*/locations/*}/processors" + "path": "/v1beta1/{location=projects/*/locations/*}/registrations:searchDomains" } ] }, { - "shortName": "ProcessDocument", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.ProcessDocument", + "shortName": "TransferDomain", + "fullName": "google.cloud.domains.v1beta1.Domains.TransferDomain", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{name=projects/*/locations/*/processors/*}:process" + "path": "/v1beta1/{parent=projects/*/locations/*}/registrations:transfer" } ] }, { - "shortName": "ReviewDocument", - "fullName": "google.cloud.documentai.v1beta3.DocumentProcessorService.ReviewDocument", + "shortName": "UpdateRegistration", + "fullName": "google.cloud.domains.v1beta1.Domains.UpdateRegistration", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta3/{human_review_config=projects/*/locations/*/processors/*/humanReviewConfig}:reviewDocument" + "httpMethod": "PATCH", + "path": "/v1beta1/{registration.name=projects/*/locations/*/registrations/*}" } ] } ] } ], - "configFile": "documentai_v1beta3.yaml" + "configFile": "domains_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.domains.v1beta1.Domains" + ] }, { - "id": "google.cloud.domains.v1", - "directory": "google/cloud/domains/v1", + "id": "google.cloud.edgecontainer.v1", + "directory": "google/cloud/edgecontainer/v1", "version": "v1", "majorVersion": "v1", - "hostName": "domains.googleapis.com", - "title": "Cloud Domains API", - "description": "Enables management and configuration of domain names.", + "hostName": "edgecontainer.googleapis.com", + "title": "Distributed Cloud Edge Container API", + "description": "", "importDirectories": [ "google/api", + "google/cloud/edgecontainer/v1", "google/longrunning", "google/protobuf", - "google/type" + "google/rpc" ], "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/domains/v1;domains": 1 + "google.golang.org/genproto/googleapis/cloud/edgecontainer/v1;edgecontainer": 2 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 2 } }, "java_package": { "valueCounts": { - "com.google.cloud.domains.v1": 1 + "com.google.cloud.edgecontainer.v1": 2 } } }, "services": [ { - "shortName": "Domains", - "fullName": "google.cloud.domains.v1.Domains", + "shortName": "EdgeContainer", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer", "methods": [ { - "shortName": "ConfigureContactSettings", - "fullName": "google.cloud.domains.v1.Domains.ConfigureContactSettings", + "shortName": "CreateCluster", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.CreateCluster", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{registration=projects/*/locations/*/registrations/*}:configureContactSettings" + "path": "/v1/{parent=projects/*/locations/*}/clusters" } ] }, { - "shortName": "ConfigureDnsSettings", - "fullName": "google.cloud.domains.v1.Domains.ConfigureDnsSettings", + "shortName": "CreateNodePool", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.CreateNodePool", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{registration=projects/*/locations/*/registrations/*}:configureDnsSettings" + "path": "/v1/{parent=projects/*/locations/*/clusters/*}/nodePools" } ] }, { - "shortName": "ConfigureManagementSettings", - "fullName": "google.cloud.domains.v1.Domains.ConfigureManagementSettings", + "shortName": "CreateVpnConnection", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.CreateVpnConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{registration=projects/*/locations/*/registrations/*}:configureManagementSettings" + "path": "/v1/{parent=projects/*/locations/*}/vpnConnections" } ] }, { - "shortName": "DeleteRegistration", - "fullName": "google.cloud.domains.v1.Domains.DeleteRegistration", + "shortName": "DeleteCluster", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.DeleteCluster", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/registrations/*}" + "path": "/v1/{name=projects/*/locations/*/clusters/*}" } ] }, { - "shortName": "ExportRegistration", - "fullName": "google.cloud.domains.v1.Domains.ExportRegistration", + "shortName": "DeleteNodePool", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.DeleteNodePool", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/registrations/*}:export" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}" } ] }, { - "shortName": "GetRegistration", - "fullName": "google.cloud.domains.v1.Domains.GetRegistration", + "shortName": "DeleteVpnConnection", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.DeleteVpnConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/vpnConnections/*}" + } + ] + }, + { + "shortName": "GenerateAccessToken", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GenerateAccessToken", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/registrations/*}" + "path": "/v1/{cluster=projects/*/locations/*/clusters/*}:generateAccessToken" } ] }, { - "shortName": "ListRegistrations", - "fullName": "google.cloud.domains.v1.Domains.ListRegistrations", + "shortName": "GetCluster", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GetCluster", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/registrations" + "path": "/v1/{name=projects/*/locations/*/clusters/*}" } ] }, { - "shortName": "RegisterDomain", - "fullName": "google.cloud.domains.v1.Domains.RegisterDomain", + "shortName": "GetMachine", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GetMachine", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/registrations:register" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/machines/*}" } ] }, { - "shortName": "ResetAuthorizationCode", - "fullName": "google.cloud.domains.v1.Domains.ResetAuthorizationCode", + "shortName": "GetNodePool", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GetNodePool", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{registration=projects/*/locations/*/registrations/*}:resetAuthorizationCode" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}" } ] }, { - "shortName": "RetrieveAuthorizationCode", - "fullName": "google.cloud.domains.v1.Domains.RetrieveAuthorizationCode", + "shortName": "GetVpnConnection", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GetVpnConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{registration=projects/*/locations/*/registrations/*}:retrieveAuthorizationCode" + "path": "/v1/{name=projects/*/locations/*/vpnConnections/*}" } ] }, { - "shortName": "RetrieveRegisterParameters", - "fullName": "google.cloud.domains.v1.Domains.RetrieveRegisterParameters", + "shortName": "ListClusters", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.ListClusters", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{location=projects/*/locations/*}/registrations:retrieveRegisterParameters" + "path": "/v1/{parent=projects/*/locations/*}/clusters" } ] }, { - "shortName": "RetrieveTransferParameters", - "fullName": "google.cloud.domains.v1.Domains.RetrieveTransferParameters", + "shortName": "ListMachines", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.ListMachines", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{location=projects/*/locations/*}/registrations:retrieveTransferParameters" + "path": "/v1/{parent=projects/*/locations/*}/machines" } ] }, { - "shortName": "SearchDomains", - "fullName": "google.cloud.domains.v1.Domains.SearchDomains", + "shortName": "ListNodePools", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.ListNodePools", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{location=projects/*/locations/*}/registrations:searchDomains" + "path": "/v1/{parent=projects/*/locations/*/clusters/*}/nodePools" } ] }, { - "shortName": "TransferDomain", - "fullName": "google.cloud.domains.v1.Domains.TransferDomain", + "shortName": "ListVpnConnections", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.ListVpnConnections", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/registrations:transfer" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/vpnConnections" } ] }, { - "shortName": "UpdateRegistration", - "fullName": "google.cloud.domains.v1.Domains.UpdateRegistration", + "shortName": "UpdateCluster", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.UpdateCluster", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{registration.name=projects/*/locations/*/registrations/*}" + "path": "/v1/{cluster.name=projects/*/locations/*/clusters/*}" + } + ] + }, + { + "shortName": "UpdateNodePool", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.UpdateNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{node_pool.name=projects/*/locations/*/clusters/*/nodePools/*}" } ] } ] } ], - "configFile": "domains_v1.yaml" + "configFile": "edgecontainer_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.edgecontainer.v1.EdgeContainer", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.domains.v1alpha2", - "directory": "google/cloud/domains/v1alpha2", - "version": "v1alpha2", + "id": "google.cloud.enterpriseknowledgegraph.v1", + "directory": "google/cloud/enterpriseknowledgegraph/v1", + "version": "v1", "majorVersion": "v1", - "hostName": "domains.googleapis.com", - "title": "Cloud Domains API", - "description": "Enables management and configuration of domain names.", + "hostName": "enterpriseknowledgegraph.googleapis.com", + "title": "Enterprise Knowledge Graph API", + "description": "", "importDirectories": [ "google/api", - "google/longrunning", + "google/cloud/enterpriseknowledgegraph/v1", "google/protobuf", - "google/type" + "google/rpc" ], "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/domains/v1alpha2;domains": 1 + "google.golang.org/genproto/googleapis/cloud/enterpriseknowledgegraph/v1;enterpriseknowledgegraph": 3 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 3 } }, "java_package": { "valueCounts": { - "com.google.cloud.domains.v1alpha2": 1 + "com.google.cloud.enterpriseknowledgegraph.v1": 3 } } }, "services": [ { - "shortName": "Domains", - "fullName": "google.cloud.domains.v1alpha2.Domains", + "shortName": "EnterpriseKnowledgeGraphService", + "fullName": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService", "methods": [ { - "shortName": "ConfigureContactSettings", - "fullName": "google.cloud.domains.v1alpha2.Domains.ConfigureContactSettings", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureContactSettings" - } - ] - }, - { - "shortName": "ConfigureDnsSettings", - "fullName": "google.cloud.domains.v1alpha2.Domains.ConfigureDnsSettings", + "shortName": "CancelEntityReconciliationJob", + "fullName": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.CancelEntityReconciliationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureDnsSettings" + "path": "/v1/{name=projects/*/locations/*/entityReconciliationJobs/*}:cancel" } ] }, { - "shortName": "ConfigureManagementSettings", - "fullName": "google.cloud.domains.v1alpha2.Domains.ConfigureManagementSettings", + "shortName": "CreateEntityReconciliationJob", + "fullName": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.CreateEntityReconciliationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureManagementSettings" + "path": "/v1/{parent=projects/*/locations/*}/entityReconciliationJobs" } ] }, { - "shortName": "DeleteRegistration", - "fullName": "google.cloud.domains.v1alpha2.Domains.DeleteRegistration", + "shortName": "DeleteEntityReconciliationJob", + "fullName": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.DeleteEntityReconciliationJob", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1alpha2/{name=projects/*/locations/*/registrations/*}" + "path": "/v1/{name=projects/*/locations/*/entityReconciliationJobs/*}" } ] }, { - "shortName": "ExportRegistration", - "fullName": "google.cloud.domains.v1alpha2.Domains.ExportRegistration", + "shortName": "GetEntityReconciliationJob", + "fullName": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.GetEntityReconciliationJob", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha2/{name=projects/*/locations/*/registrations/*}:export" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/entityReconciliationJobs/*}" } ] }, { - "shortName": "GetRegistration", - "fullName": "google.cloud.domains.v1alpha2.Domains.GetRegistration", + "shortName": "ListEntityReconciliationJobs", + "fullName": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha2/{name=projects/*/locations/*/registrations/*}" + "path": "/v1/{parent=projects/*/locations/*}/entityReconciliationJobs" } ] - }, + } + ] + } + ], + "configFile": "enterpriseknowledgegraph_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.essentialcontacts.v1", + "directory": "google/cloud/essentialcontacts/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "essentialcontacts.googleapis.com", + "title": "Essential Contacts API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/essentialcontacts/v1", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.EssentialContacts.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/essentialcontacts/v1;essentialcontacts": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.essentialcontacts.v1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\EssentialContacts\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::EssentialContacts::V1": 2 + } + } + }, + "services": [ + { + "shortName": "EssentialContactsService", + "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService", + "methods": [ { - "shortName": "ListRegistrations", - "fullName": "google.cloud.domains.v1alpha2.Domains.ListRegistrations", + "shortName": "ComputeContacts", + "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.ComputeContacts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha2/{parent=projects/*/locations/*}/registrations" + "path": "/v1/{parent=projects/*}/contacts:compute" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*}/contacts:compute" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*}/contacts:compute" } ] }, { - "shortName": "RegisterDomain", - "fullName": "google.cloud.domains.v1alpha2.Domains.RegisterDomain", + "shortName": "CreateContact", + "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.CreateContact", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha2/{parent=projects/*/locations/*}/registrations:register" + "path": "/v1/{parent=projects/*}/contacts" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*}/contacts" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*}/contacts" } ] }, { - "shortName": "ResetAuthorizationCode", - "fullName": "google.cloud.domains.v1alpha2.Domains.ResetAuthorizationCode", + "shortName": "DeleteContact", + "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.DeleteContact", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:resetAuthorizationCode" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/contacts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=folders/*/contacts/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/contacts/*}" } ] }, { - "shortName": "RetrieveAuthorizationCode", - "fullName": "google.cloud.domains.v1alpha2.Domains.RetrieveAuthorizationCode", + "shortName": "GetContact", + "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.GetContact", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:retrieveAuthorizationCode" + "path": "/v1/{name=projects/*/contacts/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/contacts/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/contacts/*}" } ] }, { - "shortName": "RetrieveRegisterParameters", - "fullName": "google.cloud.domains.v1alpha2.Domains.RetrieveRegisterParameters", + "shortName": "ListContacts", + "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.ListContacts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha2/{location=projects/*/locations/*}/registrations:retrieveRegisterParameters" + "path": "/v1/{parent=projects/*}/contacts" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*}/contacts" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*}/contacts" } ] }, { - "shortName": "RetrieveTransferParameters", - "fullName": "google.cloud.domains.v1alpha2.Domains.RetrieveTransferParameters", + "shortName": "SendTestMessage", + "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.SendTestMessage", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha2/{location=projects/*/locations/*}/registrations:retrieveTransferParameters" + "httpMethod": "POST", + "path": "/v1/{resource=projects/*}/contacts:sendTestMessage" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=folders/*}/contacts:sendTestMessage" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=organizations/*}/contacts:sendTestMessage" } ] }, { - "shortName": "SearchDomains", - "fullName": "google.cloud.domains.v1alpha2.Domains.SearchDomains", + "shortName": "UpdateContact", + "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.UpdateContact", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha2/{location=projects/*/locations/*}/registrations:searchDomains" + "httpMethod": "PATCH", + "path": "/v1/{contact.name=projects/*/contacts/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{contact.name=folders/*/contacts/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{contact.name=organizations/*/contacts/*}" } ] - }, + } + ] + } + ], + "configFile": "essentialcontacts_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.essentialcontacts.v1.EssentialContactsService" + ] + }, + { + "id": "google.cloud.eventarc.publishing.v1", + "directory": "google/cloud/eventarc/publishing/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "eventarcpublishing.googleapis.com", + "title": "Eventarc Publishing API", + "description": "", + "importDirectories": [ + "google/api", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Eventarc.Publishing.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/eventarc/publishing/v1;publisher": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.eventarc.publishing.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Eventarc\\Publishing\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Eventarc::Publishing::V1": 1 + } + } + }, + "services": [ + { + "shortName": "Publisher", + "fullName": "google.cloud.eventarc.publishing.v1.Publisher", + "methods": [ { - "shortName": "TransferDomain", - "fullName": "google.cloud.domains.v1alpha2.Domains.TransferDomain", + "shortName": "PublishChannelConnectionEvents", + "fullName": "google.cloud.eventarc.publishing.v1.Publisher.PublishChannelConnectionEvents", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha2/{parent=projects/*/locations/*}/registrations:transfer" + "path": "/v1/{channel_connection=projects/*/locations/*/channelConnections/*}:publishEvents" } ] }, { - "shortName": "UpdateRegistration", - "fullName": "google.cloud.domains.v1alpha2.Domains.UpdateRegistration", + "shortName": "PublishEvents", + "fullName": "google.cloud.eventarc.publishing.v1.Publisher.PublishEvents", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1alpha2/{registration.name=projects/*/locations/*/registrations/*}" + "httpMethod": "POST", + "path": "/v1/{channel=projects/*/locations/*/channels/*}:publishEvents" } ] } ] } ], - "configFile": "domains_v1alpha2.yaml" + "configFile": "eventarcpublishing_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.eventarc.publishing.v1.Publisher" + ] }, { - "id": "google.cloud.domains.v1beta1", - "directory": "google/cloud/domains/v1beta1", - "version": "v1beta1", + "id": "google.cloud.eventarc.v1", + "directory": "google/cloud/eventarc/v1", + "version": "v1", "majorVersion": "v1", - "hostName": "domains.googleapis.com", - "title": "Cloud Domains API", - "description": "Enables management and configuration of domain names.", + "hostName": "eventarc.googleapis.com", + "title": "Eventarc API", + "description": "", "importDirectories": [ "google/api", + "google/cloud/eventarc/v1", "google/longrunning", - "google/protobuf", - "google/type" + "google/protobuf" ], "options": { + "csharp_namespace": { + "valueCounts": { + "": 2, + "Google.Cloud.Eventarc.V1": 3 + } + }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/domains/v1beta1;domains": 1 + "google.golang.org/genproto/googleapis/cloud/eventarc/v1;eventarc": 5 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 5 } }, "java_package": { "valueCounts": { - "com.google.cloud.domains.v1beta1": 1 + "com.google.cloud.eventarc.v1": 5 + } + }, + "php_namespace": { + "valueCounts": { + "": 2, + "Google\\Cloud\\Eventarc\\V1": 3 + } + }, + "ruby_package": { + "valueCounts": { + "": 2, + "Google::Cloud::Eventarc::V1": 3 } } }, "services": [ { - "shortName": "Domains", - "fullName": "google.cloud.domains.v1beta1.Domains", + "shortName": "Eventarc", + "fullName": "google.cloud.eventarc.v1.Eventarc", "methods": [ { - "shortName": "ConfigureContactSettings", - "fullName": "google.cloud.domains.v1beta1.Domains.ConfigureContactSettings", + "shortName": "CreateChannel", + "fullName": "google.cloud.eventarc.v1.Eventarc.CreateChannel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:configureContactSettings" + "path": "/v1/{parent=projects/*/locations/*}/channels" } ] }, { - "shortName": "ConfigureDnsSettings", - "fullName": "google.cloud.domains.v1beta1.Domains.ConfigureDnsSettings", + "shortName": "CreateChannelConnection", + "fullName": "google.cloud.eventarc.v1.Eventarc.CreateChannelConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:configureDnsSettings" + "path": "/v1/{parent=projects/*/locations/*}/channelConnections" } ] }, { - "shortName": "ConfigureManagementSettings", - "fullName": "google.cloud.domains.v1beta1.Domains.ConfigureManagementSettings", + "shortName": "CreateTrigger", + "fullName": "google.cloud.eventarc.v1.Eventarc.CreateTrigger", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:configureManagementSettings" + "path": "/v1/{parent=projects/*/locations/*}/triggers" } ] }, { - "shortName": "DeleteRegistration", - "fullName": "google.cloud.domains.v1beta1.Domains.DeleteRegistration", + "shortName": "DeleteChannel", + "fullName": "google.cloud.eventarc.v1.Eventarc.DeleteChannel", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/registrations/*}" + "path": "/v1/{name=projects/*/locations/*/channels/*}" } ] }, { - "shortName": "ExportRegistration", - "fullName": "google.cloud.domains.v1beta1.Domains.ExportRegistration", + "shortName": "DeleteChannelConnection", + "fullName": "google.cloud.eventarc.v1.Eventarc.DeleteChannelConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/channelConnections/*}" + } + ] + }, + { + "shortName": "DeleteTrigger", + "fullName": "google.cloud.eventarc.v1.Eventarc.DeleteTrigger", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/registrations/*}:export" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/triggers/*}" } ] }, { - "shortName": "GetRegistration", - "fullName": "google.cloud.domains.v1beta1.Domains.GetRegistration", + "shortName": "GetChannel", + "fullName": "google.cloud.eventarc.v1.Eventarc.GetChannel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/registrations/*}" + "path": "/v1/{name=projects/*/locations/*/channels/*}" } ] }, { - "shortName": "ListRegistrations", - "fullName": "google.cloud.domains.v1beta1.Domains.ListRegistrations", + "shortName": "GetChannelConnection", + "fullName": "google.cloud.eventarc.v1.Eventarc.GetChannelConnection", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/registrations" + "path": "/v1/{name=projects/*/locations/*/channelConnections/*}" } ] }, { - "shortName": "RegisterDomain", - "fullName": "google.cloud.domains.v1beta1.Domains.RegisterDomain", + "shortName": "GetProvider", + "fullName": "google.cloud.eventarc.v1.Eventarc.GetProvider", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/registrations:register" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/providers/*}" } ] }, { - "shortName": "ResetAuthorizationCode", - "fullName": "google.cloud.domains.v1beta1.Domains.ResetAuthorizationCode", + "shortName": "GetTrigger", + "fullName": "google.cloud.eventarc.v1.Eventarc.GetTrigger", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:resetAuthorizationCode" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/triggers/*}" } ] }, { - "shortName": "RetrieveAuthorizationCode", - "fullName": "google.cloud.domains.v1beta1.Domains.RetrieveAuthorizationCode", + "shortName": "ListChannelConnections", + "fullName": "google.cloud.eventarc.v1.Eventarc.ListChannelConnections", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{registration=projects/*/locations/*/registrations/*}:retrieveAuthorizationCode" + "path": "/v1/{parent=projects/*/locations/*}/channelConnections" } ] }, { - "shortName": "RetrieveRegisterParameters", - "fullName": "google.cloud.domains.v1beta1.Domains.RetrieveRegisterParameters", + "shortName": "ListChannels", + "fullName": "google.cloud.eventarc.v1.Eventarc.ListChannels", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{location=projects/*/locations/*}/registrations:retrieveRegisterParameters" + "path": "/v1/{parent=projects/*/locations/*}/channels" } ] }, { - "shortName": "RetrieveTransferParameters", - "fullName": "google.cloud.domains.v1beta1.Domains.RetrieveTransferParameters", + "shortName": "ListProviders", + "fullName": "google.cloud.eventarc.v1.Eventarc.ListProviders", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{location=projects/*/locations/*}/registrations:retrieveTransferParameters" + "path": "/v1/{parent=projects/*/locations/*}/providers" } ] }, { - "shortName": "SearchDomains", - "fullName": "google.cloud.domains.v1beta1.Domains.SearchDomains", + "shortName": "ListTriggers", + "fullName": "google.cloud.eventarc.v1.Eventarc.ListTriggers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{location=projects/*/locations/*}/registrations:searchDomains" + "path": "/v1/{parent=projects/*/locations/*}/triggers" } ] }, { - "shortName": "TransferDomain", - "fullName": "google.cloud.domains.v1beta1.Domains.TransferDomain", + "shortName": "UpdateChannel", + "fullName": "google.cloud.eventarc.v1.Eventarc.UpdateChannel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/registrations:transfer" + "httpMethod": "PATCH", + "path": "/v1/{channel.name=projects/*/locations/*/channels/*}" } ] }, { - "shortName": "UpdateRegistration", - "fullName": "google.cloud.domains.v1beta1.Domains.UpdateRegistration", + "shortName": "UpdateTrigger", + "fullName": "google.cloud.eventarc.v1.Eventarc.UpdateTrigger", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{registration.name=projects/*/locations/*/registrations/*}" + "path": "/v1/{trigger.name=projects/*/locations/*/triggers/*}" } ] } ] } ], - "configFile": "domains_v1beta1.yaml" + "configFile": "eventarc_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.eventarc.v1.Eventarc" + ] }, { - "id": "google.cloud.essentialcontacts.v1", - "directory": "google/cloud/essentialcontacts/v1", + "id": "google.cloud.filestore.v1", + "directory": "google/cloud/filestore/v1", "version": "v1", "majorVersion": "v1", - "hostName": "essentialcontacts.googleapis.com", - "title": "Essential Contacts API", - "description": "", + "hostName": "file.googleapis.com", + "title": "Cloud Filestore API", + "description": "The Cloud Filestore API is used for creating and managing cloud file servers.", "importDirectories": [ "google/api", - "google/cloud/essentialcontacts/v1", + "google/cloud/common", + "google/longrunning", "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.EssentialContacts.V1": 2 + "Google.Cloud.Filestore.V1": 1 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/essentialcontacts/v1;essentialcontacts": 2 + "google.golang.org/genproto/googleapis/cloud/filestore/v1;filestore": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.essentialcontacts.v1": 2 + "com.google.cloud.filestore.v1": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\EssentialContacts\\V1": 2 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::EssentialContacts::V1": 2 + "Google\\Cloud\\Filestore\\V1": 1 } } }, "services": [ { - "shortName": "EssentialContactsService", - "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService", + "shortName": "CloudFilestoreManager", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager", "methods": [ { - "shortName": "ComputeContacts", - "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.ComputeContacts", + "shortName": "CreateBackup", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.CreateBackup", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*}/contacts:compute" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=folders/*}/contacts:compute" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=organizations/*}/contacts:compute" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/backups" } ] }, { - "shortName": "CreateContact", - "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.CreateContact", + "shortName": "CreateInstance", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.CreateInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*}/contacts" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=folders/*}/contacts" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=organizations/*}/contacts" + "path": "/v1/{parent=projects/*/locations/*}/instances" } ] }, { - "shortName": "DeleteContact", - "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.DeleteContact", + "shortName": "DeleteBackup", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.DeleteBackup", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/contacts/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=folders/*/contacts/*}" - }, + "path": "/v1/{name=projects/*/locations/*/backups/*}" + } + ] + }, + { + "shortName": "DeleteInstance", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.DeleteInstance", + "mode": "UNARY", + "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=organizations/*/contacts/*}" + "path": "/v1/{name=projects/*/locations/*/instances/*}" } ] }, { - "shortName": "GetContact", - "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.GetContact", + "shortName": "GetBackup", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.GetBackup", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/contacts/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=folders/*/contacts/*}" - }, - { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/contacts/*}" + "path": "/v1/{name=projects/*/locations/*/backups/*}" } ] }, { - "shortName": "ListContacts", - "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.ListContacts", + "shortName": "GetInstance", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.GetInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*}/contacts" - }, + "path": "/v1/{name=projects/*/locations/*/instances/*}" + } + ] + }, + { + "shortName": "ListBackups", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.ListBackups", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=folders/*}/contacts" - }, + "path": "/v1/{parent=projects/*/locations/*}/backups" + } + ] + }, + { + "shortName": "ListInstances", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.ListInstances", + "mode": "UNARY", + "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=organizations/*}/contacts" + "path": "/v1/{parent=projects/*/locations/*}/instances" } ] }, { - "shortName": "SendTestMessage", - "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.SendTestMessage", + "shortName": "RestoreInstance", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.RestoreInstance", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{resource=projects/*}/contacts:sendTestMessage" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=folders/*}/contacts:sendTestMessage" - }, - { - "httpMethod": "POST", - "path": "/v1/{resource=organizations/*}/contacts:sendTestMessage" + "path": "/v1/{name=projects/*/locations/*/instances/*}:restore" } ] }, { - "shortName": "UpdateContact", - "fullName": "google.cloud.essentialcontacts.v1.EssentialContactsService.UpdateContact", + "shortName": "UpdateBackup", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.UpdateBackup", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{contact.name=projects/*/contacts/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v1/{contact.name=folders/*/contacts/*}" - }, + "path": "/v1/{backup.name=projects/*/locations/*/backups/*}" + } + ] + }, + { + "shortName": "UpdateInstance", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.UpdateInstance", + "mode": "UNARY", + "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{contact.name=organizations/*/contacts/*}" + "path": "/v1/{instance.name=projects/*/locations/*/instances/*}" } ] } ] } ], - "configFile": "essentialcontacts_v1.yaml" + "configFile": "file_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.filestore.v1.CloudFilestoreManager" + ] }, { - "id": "google.cloud.eventarc.publishing.v1", - "directory": "google/cloud/eventarc/publishing/v1", - "version": "v1", + "id": "google.cloud.filestore.v1beta1", + "directory": "google/cloud/filestore/v1beta1", + "version": "v1beta1", "majorVersion": "v1", - "hostName": "eventarcpublishing.googleapis.com", - "title": "Eventarc Publishing API", - "description": "", + "hostName": "file.googleapis.com", + "title": "Cloud Filestore API", + "description": "The Cloud Filestore API is used for creating and managing cloud file servers.", "importDirectories": [ "google/api", + "google/longrunning", "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Eventarc.Publishing.V1": 1 + "Google.Cloud.Filestore.V1Beta1": 1 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/eventarc/publishing/v1;publisher": 1 + "google.golang.org/genproto/googleapis/cloud/filestore/v1beta1;filestore": 1 } }, "java_multiple_files": { @@ -41988,65 +49007,167 @@ }, "java_package": { "valueCounts": { - "com.google.cloud.eventarc.publishing.v1": 1 + "com.google.cloud.filestore.v1beta1": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Eventarc\\Publishing\\V1": 1 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::Eventarc::Publishing::V1": 1 + "Google\\Cloud\\Filestore\\V1beta1": 1 } } }, "services": [ { - "shortName": "Publisher", - "fullName": "google.cloud.eventarc.publishing.v1.Publisher", + "shortName": "CloudFilestoreManager", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager", "methods": [ { - "shortName": "PublishChannelConnectionEvents", - "fullName": "google.cloud.eventarc.publishing.v1.Publisher.PublishChannelConnectionEvents", + "shortName": "CreateBackup", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.CreateBackup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{channel_connection=projects/*/locations/*/channelConnections/*}:publishEvents" + "path": "/v1beta1/{parent=projects/*/locations/*}/backups" + } + ] + }, + { + "shortName": "CreateInstance", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.CreateInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/instances" + } + ] + }, + { + "shortName": "DeleteBackup", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.DeleteBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/backups/*}" + } + ] + }, + { + "shortName": "DeleteInstance", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.DeleteInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/instances/*}" + } + ] + }, + { + "shortName": "GetBackup", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.GetBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/backups/*}" + } + ] + }, + { + "shortName": "GetInstance", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.GetInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/instances/*}" + } + ] + }, + { + "shortName": "ListBackups", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.ListBackups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/backups" + } + ] + }, + { + "shortName": "ListInstances", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.ListInstances", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/instances" + } + ] + }, + { + "shortName": "RestoreInstance", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.RestoreInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/instances/*}:restore" + } + ] + }, + { + "shortName": "UpdateBackup", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.UpdateBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{backup.name=projects/*/locations/*/backups/*}" + } + ] + }, + { + "shortName": "UpdateInstance", + "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.UpdateInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{instance.name=projects/*/locations/*/instances/*}" } ] } ] } ], - "configFile": "eventarcpublishing_v1.yaml" + "configFile": "file_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.filestore.v1beta1.CloudFilestoreManager" + ] }, { - "id": "google.cloud.eventarc.v1", - "directory": "google/cloud/eventarc/v1", + "id": "google.cloud.functions.v1", + "directory": "google/cloud/functions/v1", "version": "v1", "majorVersion": "v1", - "hostName": "eventarc.googleapis.com", - "title": "Eventarc API", - "description": "", + "hostName": "cloudfunctions.googleapis.com", + "title": "Cloud Functions API", + "description": "Manages lightweight user-provided functions executed in response to events.", "importDirectories": [ "google/api", - "google/cloud/eventarc/v1", + "google/iam/v1", "google/longrunning", "google/protobuf" ], "options": { - "csharp_namespace": { - "valueCounts": { - "": 1, - "Google.Cloud.Eventarc.V1": 1 - } - }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/eventarc/v1;eventarc": 2 + "google.golang.org/genproto/googleapis/cloud/functions/v1;functions": 2 } }, "java_multiple_files": { @@ -42056,110 +49177,167 @@ }, "java_package": { "valueCounts": { - "com.google.cloud.eventarc.v1": 2 - } - }, - "php_namespace": { - "valueCounts": { - "": 1, - "Google\\Cloud\\Eventarc\\V1": 1 + "com.google.cloud.functions.v1": 2 } }, - "ruby_package": { + "objc_class_prefix": { "valueCounts": { "": 1, - "Google::Cloud::Eventarc::V1": 1 + "GCF": 1 } } }, "services": [ { - "shortName": "Eventarc", - "fullName": "google.cloud.eventarc.v1.Eventarc", + "shortName": "CloudFunctionsService", + "fullName": "google.cloud.functions.v1.CloudFunctionsService", "methods": [ { - "shortName": "CreateTrigger", - "fullName": "google.cloud.eventarc.v1.Eventarc.CreateTrigger", + "shortName": "CallFunction", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.CallFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/triggers" + "path": "/v1/{name=projects/*/locations/*/functions/*}:call" } ] }, { - "shortName": "DeleteTrigger", - "fullName": "google.cloud.eventarc.v1.Eventarc.DeleteTrigger", + "shortName": "CreateFunction", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.CreateFunction", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{location=projects/*/locations/*}/functions" + } + ] + }, + { + "shortName": "DeleteFunction", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.DeleteFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/triggers/*}" + "path": "/v1/{name=projects/*/locations/*/functions/*}" } ] }, { - "shortName": "GetTrigger", - "fullName": "google.cloud.eventarc.v1.Eventarc.GetTrigger", + "shortName": "GenerateDownloadUrl", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.GenerateDownloadUrl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" + } + ] + }, + { + "shortName": "GenerateUploadUrl", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.GenerateUploadUrl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/functions:generateUploadUrl" + } + ] + }, + { + "shortName": "GetFunction", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.GetFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/triggers/*}" + "path": "/v1/{name=projects/*/locations/*/functions/*}" } ] }, { - "shortName": "ListTriggers", - "fullName": "google.cloud.eventarc.v1.Eventarc.ListTriggers", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/triggers" + "path": "/v1/{resource=projects/*/locations/*/functions/*}:getIamPolicy" } ] }, { - "shortName": "UpdateTrigger", - "fullName": "google.cloud.eventarc.v1.Eventarc.UpdateTrigger", + "shortName": "ListFunctions", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.ListFunctions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/functions" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/functions/*}:setIamPolicy" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/functions/*}:testIamPermissions" + } + ] + }, + { + "shortName": "UpdateFunction", + "fullName": "google.cloud.functions.v1.CloudFunctionsService.UpdateFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{trigger.name=projects/*/locations/*/triggers/*}" + "path": "/v1/{function.name=projects/*/locations/*/functions/*}" } ] } ] } ], - "configFile": "eventarc_v1.yaml" + "configFile": "cloudfunctions_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.functions.v1.CloudFunctionsService" + ] }, { - "id": "google.cloud.filestore.v1", - "directory": "google/cloud/filestore/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "file.googleapis.com", - "title": "Cloud Filestore API", - "description": "The Cloud Filestore API is used for creating and managing cloud file servers.", + "id": "google.cloud.functions.v2", + "directory": "google/cloud/functions/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "cloudfunctions.googleapis.com", + "title": "Cloud Functions API", + "description": "Manages lightweight user-provided functions executed in response to events.", "importDirectories": [ "google/api", - "google/cloud/common", - "google/longrunning", - "google/protobuf" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Filestore.V1": 1 - } - }, + "google/longrunning", + "google/protobuf" + ], + "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/filestore/v1;filestore": 1 + "google.golang.org/genproto/googleapis/cloud/functions/v2;functions": 1 } }, "java_multiple_files": { @@ -42169,168 +49347,136 @@ }, "java_package": { "valueCounts": { - "com.google.cloud.filestore.v1": 1 + "com.google.cloud.functions.v2": 1 } }, - "php_namespace": { + "objc_class_prefix": { "valueCounts": { - "Google\\Cloud\\Filestore\\V1": 1 + "GCF": 1 } } }, "services": [ { - "shortName": "CloudFilestoreManager", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager", + "shortName": "FunctionService", + "fullName": "google.cloud.functions.v2.FunctionService", "methods": [ { - "shortName": "CreateBackup", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.CreateBackup", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/backups" - } - ] - }, - { - "shortName": "CreateInstance", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.CreateInstance", + "shortName": "CreateFunction", + "fullName": "google.cloud.functions.v2.FunctionService.CreateFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/instances" + "path": "/v2/{parent=projects/*/locations/*}/functions" } ] }, { - "shortName": "DeleteBackup", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.DeleteBackup", + "shortName": "DeleteFunction", + "fullName": "google.cloud.functions.v2.FunctionService.DeleteFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/backups/*}" + "path": "/v2/{name=projects/*/locations/*/functions/*}" } ] }, { - "shortName": "DeleteInstance", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.DeleteInstance", + "shortName": "GenerateDownloadUrl", + "fullName": "google.cloud.functions.v2.FunctionService.GenerateDownloadUrl", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/instances/*}" + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" } ] }, { - "shortName": "GetBackup", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.GetBackup", + "shortName": "GenerateUploadUrl", + "fullName": "google.cloud.functions.v2.FunctionService.GenerateUploadUrl", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/backups/*}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/functions:generateUploadUrl" } ] }, { - "shortName": "GetInstance", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.GetInstance", + "shortName": "GetFunction", + "fullName": "google.cloud.functions.v2.FunctionService.GetFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/instances/*}" + "path": "/v2/{name=projects/*/locations/*/functions/*}" } ] }, { - "shortName": "ListBackups", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.ListBackups", + "shortName": "ListFunctions", + "fullName": "google.cloud.functions.v2.FunctionService.ListFunctions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/backups" + "path": "/v2/{parent=projects/*/locations/*}/functions" } ] }, { - "shortName": "ListInstances", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.ListInstances", + "shortName": "ListRuntimes", + "fullName": "google.cloud.functions.v2.FunctionService.ListRuntimes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/instances" - } - ] - }, - { - "shortName": "RestoreInstance", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.RestoreInstance", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/instances/*}:restore" - } - ] - }, - { - "shortName": "UpdateBackup", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.UpdateBackup", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1/{backup.name=projects/*/locations/*/backups/*}" + "path": "/v2/{parent=projects/*/locations/*}/runtimes" } ] }, { - "shortName": "UpdateInstance", - "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.UpdateInstance", + "shortName": "UpdateFunction", + "fullName": "google.cloud.functions.v2.FunctionService.UpdateFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{instance.name=projects/*/locations/*/instances/*}" + "path": "/v2/{function.name=projects/*/locations/*/functions/*}" } ] } ] } ], - "configFile": "file_v1.yaml" + "configFile": "cloudfunctions_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.functions.v2.FunctionService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.filestore.v1beta1", - "directory": "google/cloud/filestore/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "file.googleapis.com", - "title": "Cloud Filestore API", - "description": "The Cloud Filestore API is used for creating and managing cloud file servers.", + "id": "google.cloud.functions.v2alpha", + "directory": "google/cloud/functions/v2alpha", + "version": "v2alpha", + "majorVersion": "v2", + "hostName": "cloudfunctions.googleapis.com", + "title": "Cloud Functions API", + "description": "Manages lightweight user-provided functions executed in response to events.", "importDirectories": [ "google/api", "google/longrunning", "google/protobuf" ], "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.Filestore.V1Beta1": 1 - } - }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/filestore/v1beta1;filestore": 1 + "google.golang.org/genproto/googleapis/cloud/functions/v2alpha;functions": 1 } }, "java_multiple_files": { @@ -42340,356 +49486,257 @@ }, "java_package": { "valueCounts": { - "com.google.cloud.filestore.v1beta1": 1 + "com.google.cloud.functions.v2alpha": 1 } }, - "php_namespace": { + "objc_class_prefix": { "valueCounts": { - "Google\\Cloud\\Filestore\\V1beta1": 1 + "GCF": 1 } } }, "services": [ { - "shortName": "CloudFilestoreManager", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager", + "shortName": "FunctionService", + "fullName": "google.cloud.functions.v2alpha.FunctionService", "methods": [ { - "shortName": "CreateBackup", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.CreateBackup", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/backups" - } - ] - }, - { - "shortName": "CreateInstance", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.CreateInstance", + "shortName": "CreateFunction", + "fullName": "google.cloud.functions.v2alpha.FunctionService.CreateFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/instances" + "path": "/v2alpha/{parent=projects/*/locations/*}/functions" } ] }, { - "shortName": "DeleteBackup", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.DeleteBackup", + "shortName": "DeleteFunction", + "fullName": "google.cloud.functions.v2alpha.FunctionService.DeleteFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/backups/*}" + "path": "/v2alpha/{name=projects/*/locations/*/functions/*}" } ] }, { - "shortName": "DeleteInstance", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.DeleteInstance", + "shortName": "GenerateDownloadUrl", + "fullName": "google.cloud.functions.v2alpha.FunctionService.GenerateDownloadUrl", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/instances/*}" + "httpMethod": "POST", + "path": "/v2alpha/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" } ] }, { - "shortName": "GetBackup", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.GetBackup", + "shortName": "GenerateUploadUrl", + "fullName": "google.cloud.functions.v2alpha.FunctionService.GenerateUploadUrl", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/backups/*}" + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*}/functions:generateUploadUrl" } ] }, { - "shortName": "GetInstance", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.GetInstance", + "shortName": "GetFunction", + "fullName": "google.cloud.functions.v2alpha.FunctionService.GetFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/instances/*}" + "path": "/v2alpha/{name=projects/*/locations/*/functions/*}" } ] }, { - "shortName": "ListBackups", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.ListBackups", + "shortName": "ListFunctions", + "fullName": "google.cloud.functions.v2alpha.FunctionService.ListFunctions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/backups" + "path": "/v2alpha/{parent=projects/*/locations/*}/functions" } ] }, { - "shortName": "ListInstances", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.ListInstances", + "shortName": "ListRuntimes", + "fullName": "google.cloud.functions.v2alpha.FunctionService.ListRuntimes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/instances" - } - ] - }, - { - "shortName": "RestoreInstance", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.RestoreInstance", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/instances/*}:restore" + "path": "/v2alpha/{parent=projects/*/locations/*}/runtimes" } ] }, { - "shortName": "UpdateBackup", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.UpdateBackup", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{backup.name=projects/*/locations/*/backups/*}" - } - ] - }, - { - "shortName": "UpdateInstance", - "fullName": "google.cloud.filestore.v1beta1.CloudFilestoreManager.UpdateInstance", + "shortName": "UpdateFunction", + "fullName": "google.cloud.functions.v2alpha.FunctionService.UpdateFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{instance.name=projects/*/locations/*/instances/*}" + "path": "/v2alpha/{function.name=projects/*/locations/*/functions/*}" } ] } ] } ], - "configFile": "file_v1beta1.yaml" + "configFile": "cloudfunctions_v2alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.functions.v2alpha.FunctionService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { - "id": "google.cloud.functions.v1", - "directory": "google/cloud/functions/v1", - "version": "v1", - "majorVersion": "v1", + "id": "google.cloud.functions.v2beta", + "directory": "google/cloud/functions/v2beta", + "version": "v2beta", + "majorVersion": "v2", "hostName": "cloudfunctions.googleapis.com", "title": "Cloud Functions API", "description": "Manages lightweight user-provided functions executed in response to events.", "importDirectories": [ "google/api", - "google/iam/v1", "google/longrunning", "google/protobuf" ], "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/functions/v1;functions": 2 + "google.golang.org/genproto/googleapis/cloud/functions/v2beta;functions": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.functions.v1": 2 + "com.google.cloud.functions.v2beta": 1 } }, "objc_class_prefix": { "valueCounts": { - "": 1, "GCF": 1 } } }, "services": [ { - "shortName": "CloudFunctionsService", - "fullName": "google.cloud.functions.v1.CloudFunctionsService", + "shortName": "FunctionService", + "fullName": "google.cloud.functions.v2beta.FunctionService", "methods": [ - { - "shortName": "CallFunction", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.CallFunction", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/functions/*}:call" - } - ] - }, { "shortName": "CreateFunction", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.CreateFunction", + "fullName": "google.cloud.functions.v2beta.FunctionService.CreateFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{location=projects/*/locations/*}/functions" + "path": "/v2beta/{parent=projects/*/locations/*}/functions" } ] }, { "shortName": "DeleteFunction", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.DeleteFunction", + "fullName": "google.cloud.functions.v2beta.FunctionService.DeleteFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/functions/*}" + "path": "/v2beta/{name=projects/*/locations/*/functions/*}" } ] }, { "shortName": "GenerateDownloadUrl", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.GenerateDownloadUrl", + "fullName": "google.cloud.functions.v2beta.FunctionService.GenerateDownloadUrl", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" + "path": "/v2beta/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" } ] }, { "shortName": "GenerateUploadUrl", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.GenerateUploadUrl", + "fullName": "google.cloud.functions.v2beta.FunctionService.GenerateUploadUrl", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/functions:generateUploadUrl" + "path": "/v2beta/{parent=projects/*/locations/*}/functions:generateUploadUrl" } ] }, { "shortName": "GetFunction", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.GetFunction", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/functions/*}" - } - ] - }, - { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.GetIamPolicy", + "fullName": "google.cloud.functions.v2beta.FunctionService.GetFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{resource=projects/*/locations/*/functions/*}:getIamPolicy" + "path": "/v2beta/{name=projects/*/locations/*/functions/*}" } ] }, { "shortName": "ListFunctions", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.ListFunctions", + "fullName": "google.cloud.functions.v2beta.FunctionService.ListFunctions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/functions" - } - ] - }, - { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.SetIamPolicy", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/functions/*}:setIamPolicy" + "path": "/v2beta/{parent=projects/*/locations/*}/functions" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.TestIamPermissions", + "shortName": "ListRuntimes", + "fullName": "google.cloud.functions.v2beta.FunctionService.ListRuntimes", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/functions/*}:testIamPermissions" + "httpMethod": "GET", + "path": "/v2beta/{parent=projects/*/locations/*}/runtimes" } ] }, { "shortName": "UpdateFunction", - "fullName": "google.cloud.functions.v1.CloudFunctionsService.UpdateFunction", + "fullName": "google.cloud.functions.v2beta.FunctionService.UpdateFunction", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{function.name=projects/*/locations/*/functions/*}" + "path": "/v2beta/{function.name=projects/*/locations/*/functions/*}" } ] } ] } ], - "configFile": "cloudfunctions_v1.yaml" - }, - { - "id": "google.cloud.gaming.allocationendpoint.v1alpha", - "directory": "google/cloud/gaming/allocationendpoint/v1alpha", - "version": "v1alpha", - "majorVersion": "v1", - "hostName": "example.com", - "title": "Allocation Endpoint API", - "description": "Allocation Endpoint API for Google cloud game server allocations.", - "importDirectories": [ - "google/api" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/gaming/allocationendpoint/v1alpha;allocationendpoint": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.gaming.allocationendpoint.v1alpha": 1 - } - } - }, - "services": [ - { - "shortName": "AllocationEndpointService", - "fullName": "google.cloud.gaming.allocationendpoint.v1alpha.AllocationEndpointService", - "methods": [ - { - "shortName": "Allocate", - "fullName": "google.cloud.gaming.allocationendpoint.v1alpha.AllocationEndpointService.Allocate", - "mode": "UNARY" - } - ] - } - ], - "configFile": "allocation_endpoint_v1alpha.yaml" + "configFile": "cloudfunctions_v2beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.functions.v2beta.FunctionService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.gaming.v1", @@ -43045,7 +50092,13 @@ ] } ], - "configFile": "gameservices_v1.yaml" + "configFile": "gameservices_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gaming.v1.GameServerClustersService", + "google.cloud.gaming.v1.GameServerConfigsService", + "google.cloud.gaming.v1.GameServerDeploymentsService", + "google.cloud.gaming.v1.RealmsService" + ] }, { "id": "google.cloud.gaming.v1beta", @@ -43407,7 +50460,336 @@ ] } ], - "configFile": "gameservices_v1beta.yaml" + "configFile": "gameservices_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.gaming.v1beta.GameServerClustersService", + "google.cloud.gaming.v1beta.GameServerConfigsService", + "google.cloud.gaming.v1beta.GameServerDeploymentsService", + "google.cloud.gaming.v1beta.RealmsService" + ] + }, + { + "id": "google.cloud.gkebackup.v1", + "directory": "google/cloud/gkebackup/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "gkebackup.googleapis.com", + "title": "Backup for GKE API", + "description": "Backup for GKE is a managed Kubernetes workload backup and restore service for GKE clusters.", + "importDirectories": [ + "google/api", + "google/cloud/gkebackup/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.GkeBackup.V1": 7 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/gkebackup/v1;gkebackup": 7 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 7 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.gkebackup.v1": 7 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\GkeBackup\\V1": 7 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::GkeBackup::V1": 7 + } + } + }, + "services": [ + { + "shortName": "BackupForGKE", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE", + "methods": [ + { + "shortName": "CreateBackup", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.CreateBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/backupPlans/*}/backups" + } + ] + }, + { + "shortName": "CreateBackupPlan", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.CreateBackupPlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/backupPlans" + } + ] + }, + { + "shortName": "CreateRestore", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.CreateRestore", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/restorePlans/*}/restores" + } + ] + }, + { + "shortName": "CreateRestorePlan", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.CreateRestorePlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/restorePlans" + } + ] + }, + { + "shortName": "DeleteBackup", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.DeleteBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/backupPlans/*/backups/*}" + } + ] + }, + { + "shortName": "DeleteBackupPlan", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.DeleteBackupPlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/backupPlans/*}" + } + ] + }, + { + "shortName": "DeleteRestore", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.DeleteRestore", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/restorePlans/*/restores/*}" + } + ] + }, + { + "shortName": "DeleteRestorePlan", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.DeleteRestorePlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/restorePlans/*}" + } + ] + }, + { + "shortName": "GetBackup", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.GetBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backupPlans/*/backups/*}" + } + ] + }, + { + "shortName": "GetBackupPlan", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.GetBackupPlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backupPlans/*}" + } + ] + }, + { + "shortName": "GetRestore", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.GetRestore", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/restorePlans/*/restores/*}" + } + ] + }, + { + "shortName": "GetRestorePlan", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.GetRestorePlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/restorePlans/*}" + } + ] + }, + { + "shortName": "GetVolumeBackup", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.GetVolumeBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*}" + } + ] + }, + { + "shortName": "GetVolumeRestore", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.GetVolumeRestore", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*}" + } + ] + }, + { + "shortName": "ListBackupPlans", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.ListBackupPlans", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/backupPlans" + } + ] + }, + { + "shortName": "ListBackups", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.ListBackups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/backupPlans/*}/backups" + } + ] + }, + { + "shortName": "ListRestorePlans", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.ListRestorePlans", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/restorePlans" + } + ] + }, + { + "shortName": "ListRestores", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.ListRestores", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/restorePlans/*}/restores" + } + ] + }, + { + "shortName": "ListVolumeBackups", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.ListVolumeBackups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/backupPlans/*/backups/*}/volumeBackups" + } + ] + }, + { + "shortName": "ListVolumeRestores", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.ListVolumeRestores", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/restorePlans/*/restores/*}/volumeRestores" + } + ] + }, + { + "shortName": "UpdateBackup", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.UpdateBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{backup.name=projects/*/locations/*/backupPlans/*/backups/*}" + } + ] + }, + { + "shortName": "UpdateBackupPlan", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.UpdateBackupPlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{backup_plan.name=projects/*/locations/*/backupPlans/*}" + } + ] + }, + { + "shortName": "UpdateRestore", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.UpdateRestore", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{restore.name=projects/*/locations/*/restorePlans/*/restores/*}" + } + ] + }, + { + "shortName": "UpdateRestorePlan", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.UpdateRestorePlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{restore_plan.name=projects/*/locations/*/restorePlans/*}" + } + ] + } + ] + } + ], + "configFile": "gkebackup_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkebackup.v1.BackupForGKE" + ] }, { "id": "google.cloud.gkeconnect.gateway.v1", @@ -43458,7 +50840,10 @@ "fullName": "google.cloud.gkeconnect.gateway.v1.GatewayService" } ], - "configFile": "connectgateway_v1.yaml" + "configFile": "connectgateway_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkeconnect.gateway.v1.GatewayService" + ] }, { "id": "google.cloud.gkeconnect.gateway.v1alpha1", @@ -43509,7 +50894,10 @@ "fullName": "google.cloud.gkeconnect.gateway.v1alpha1.GatewayService" } ], - "configFile": "connectgateway_v1alpha1.yaml" + "configFile": "connectgateway_v1alpha1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkeconnect.gateway.v1alpha1.GatewayService" + ] }, { "id": "google.cloud.gkeconnect.gateway.v1beta1", @@ -43617,7 +51005,10 @@ ] } ], - "configFile": "connectgateway_v1beta1.yaml" + "configFile": "connectgateway_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkeconnect.gateway.v1beta1.GatewayService" + ] }, { "id": "google.cloud.gkehub.v1", @@ -43806,7 +51197,10 @@ ] } ], - "configFile": "gkehub_v1.yaml" + "configFile": "gkehub_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkehub.v1.GkeHub" + ] }, { "id": "google.cloud.gkehub.v1alpha", @@ -43947,7 +51341,10 @@ ] } ], - "configFile": "gkehub_v1alpha.yaml" + "configFile": "gkehub_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkehub.v1alpha.GkeHub" + ] }, { "id": "google.cloud.gkehub.v1alpha2", @@ -44079,7 +51476,10 @@ ] } ], - "configFile": "gkehub_v1alpha2.yaml" + "configFile": "gkehub_v1alpha2.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkehub.v1alpha2.GkeHub" + ] }, { "id": "google.cloud.gkehub.v1beta", @@ -44208,7 +51608,10 @@ ] } ], - "configFile": "gkehub_v1beta.yaml" + "configFile": "gkehub_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkehub.v1beta.GkeHub" + ] }, { "id": "google.cloud.gkehub.v1beta1", @@ -44352,7 +51755,387 @@ ] } ], - "configFile": "gkehub_v1beta1.yaml" + "configFile": "gkehub_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkehub.v1beta1.GkeHubMembershipService", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.gkemulticloud.v1", + "directory": "google/cloud/gkemulticloud/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "gkemulticloud.googleapis.com", + "title": "Anthos Multi-Cloud API", + "description": "Anthos Multi-Cloud provides a way to manage Kubernetes clusters that run on AWS and Azure infrastructure using the Anthos Multi-Cloud API. Combined with Connect, you can manage Kubernetes clusters on Google Cloud, AWS, and Azure from the Google Cloud Console. When you create a cluster with Anthos Multi-Cloud, Google creates the resources needed and brings up a cluster on your behalf. You can deploy workloads with the Anthos Multi-Cloud API or the gcloud and kubectl command-line tools.", + "importDirectories": [ + "google/api", + "google/cloud/gkemulticloud/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.GkeMultiCloud.V1": 5 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud": 5 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 5 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.gkemulticloud.v1": 5 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\GkeMultiCloud\\V1": 5 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::GkeMultiCloud::V1": 5 + } + } + }, + "services": [ + { + "shortName": "AwsClusters", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters", + "methods": [ + { + "shortName": "CreateAwsCluster", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.CreateAwsCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/awsClusters" + } + ] + }, + { + "shortName": "CreateAwsNodePool", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.CreateAwsNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/awsClusters/*}/awsNodePools" + } + ] + }, + { + "shortName": "DeleteAwsCluster", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.DeleteAwsCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/awsClusters/*}" + } + ] + }, + { + "shortName": "DeleteAwsNodePool", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.DeleteAwsNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/awsClusters/*/awsNodePools/*}" + } + ] + }, + { + "shortName": "GenerateAwsAccessToken", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.GenerateAwsAccessToken", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{aws_cluster=projects/*/locations/*/awsClusters/*}:generateAwsAccessToken" + } + ] + }, + { + "shortName": "GetAwsCluster", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.GetAwsCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/awsClusters/*}" + } + ] + }, + { + "shortName": "GetAwsNodePool", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.GetAwsNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/awsClusters/*/awsNodePools/*}" + } + ] + }, + { + "shortName": "GetAwsServerConfig", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/awsServerConfig}" + } + ] + }, + { + "shortName": "ListAwsClusters", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.ListAwsClusters", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/awsClusters" + } + ] + }, + { + "shortName": "ListAwsNodePools", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.ListAwsNodePools", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/awsClusters/*}/awsNodePools" + } + ] + }, + { + "shortName": "UpdateAwsCluster", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.UpdateAwsCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{aws_cluster.name=projects/*/locations/*/awsClusters/*}" + } + ] + }, + { + "shortName": "UpdateAwsNodePool", + "fullName": "google.cloud.gkemulticloud.v1.AwsClusters.UpdateAwsNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{aws_node_pool.name=projects/*/locations/*/awsClusters/*/awsNodePools/*}" + } + ] + } + ] + }, + { + "shortName": "AzureClusters", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters", + "methods": [ + { + "shortName": "CreateAzureClient", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.CreateAzureClient", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/azureClients" + } + ] + }, + { + "shortName": "CreateAzureCluster", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.CreateAzureCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/azureClusters" + } + ] + }, + { + "shortName": "CreateAzureNodePool", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.CreateAzureNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/azureClusters/*}/azureNodePools" + } + ] + }, + { + "shortName": "DeleteAzureClient", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.DeleteAzureClient", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/azureClients/*}" + } + ] + }, + { + "shortName": "DeleteAzureCluster", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.DeleteAzureCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/azureClusters/*}" + } + ] + }, + { + "shortName": "DeleteAzureNodePool", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.DeleteAzureNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/azureClusters/*/azureNodePools/*}" + } + ] + }, + { + "shortName": "GenerateAzureAccessToken", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.GenerateAzureAccessToken", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{azure_cluster=projects/*/locations/*/azureClusters/*}:generateAzureAccessToken" + } + ] + }, + { + "shortName": "GetAzureClient", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.GetAzureClient", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/azureClients/*}" + } + ] + }, + { + "shortName": "GetAzureCluster", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.GetAzureCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/azureClusters/*}" + } + ] + }, + { + "shortName": "GetAzureNodePool", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.GetAzureNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/azureClusters/*/azureNodePools/*}" + } + ] + }, + { + "shortName": "GetAzureServerConfig", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.GetAzureServerConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/azureServerConfig}" + } + ] + }, + { + "shortName": "ListAzureClients", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.ListAzureClients", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/azureClients" + } + ] + }, + { + "shortName": "ListAzureClusters", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.ListAzureClusters", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/azureClusters" + } + ] + }, + { + "shortName": "ListAzureNodePools", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.ListAzureNodePools", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/azureClusters/*}/azureNodePools" + } + ] + }, + { + "shortName": "UpdateAzureCluster", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.UpdateAzureCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{azure_cluster.name=projects/*/locations/*/azureClusters/*}" + } + ] + }, + { + "shortName": "UpdateAzureNodePool", + "fullName": "google.cloud.gkemulticloud.v1.AzureClusters.UpdateAzureNodePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{azure_node_pool.name=projects/*/locations/*/azureClusters/*/azureNodePools/*}" + } + ] + } + ] + } + ], + "configFile": "gkemulticloud_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gkemulticloud.v1.AwsClusters", + "google.cloud.gkemulticloud.v1.AzureClusters" + ] }, { "id": "google.cloud.gsuiteaddons.v1", @@ -44512,7 +52295,10 @@ ] } ], - "configFile": "gsuiteaddons_v1.yaml" + "configFile": "gsuiteaddons_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.gsuiteaddons.v1.GSuiteAddOns" + ] }, { "id": "google.cloud.iap.v1", @@ -44564,6 +52350,28 @@ "shortName": "IdentityAwareProxyAdminService", "fullName": "google.cloud.iap.v1.IdentityAwareProxyAdminService", "methods": [ + { + "shortName": "CreateTunnelDestGroup", + "fullName": "google.cloud.iap.v1.IdentityAwareProxyAdminService.CreateTunnelDestGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/iap_tunnel/locations/*}/destGroups" + } + ] + }, + { + "shortName": "DeleteTunnelDestGroup", + "fullName": "google.cloud.iap.v1.IdentityAwareProxyAdminService.DeleteTunnelDestGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/iap_tunnel/locations/*/destGroups/*}" + } + ] + }, { "shortName": "GetIamPolicy", "fullName": "google.cloud.iap.v1.IdentityAwareProxyAdminService.GetIamPolicy", @@ -44586,6 +52394,28 @@ } ] }, + { + "shortName": "GetTunnelDestGroup", + "fullName": "google.cloud.iap.v1.IdentityAwareProxyAdminService.GetTunnelDestGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/iap_tunnel/locations/*/destGroups/*}" + } + ] + }, + { + "shortName": "ListTunnelDestGroups", + "fullName": "google.cloud.iap.v1.IdentityAwareProxyAdminService.ListTunnelDestGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/iap_tunnel/locations/*}/destGroups" + } + ] + }, { "shortName": "SetIamPolicy", "fullName": "google.cloud.iap.v1.IdentityAwareProxyAdminService.SetIamPolicy", @@ -44618,6 +52448,17 @@ "path": "/v1/{iap_settings.name=**}:iapSettings" } ] + }, + { + "shortName": "UpdateTunnelDestGroup", + "fullName": "google.cloud.iap.v1.IdentityAwareProxyAdminService.UpdateTunnelDestGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{tunnel_dest_group.name=projects/*/iap_tunnel/locations/*/destGroups/*}" + } + ] } ] }, @@ -44716,7 +52557,11 @@ ] } ], - "configFile": "iap_v1.yaml" + "configFile": "iap_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.iap.v1.IdentityAwareProxyAdminService", + "google.cloud.iap.v1.IdentityAwareProxyOAuthService" + ] }, { "id": "google.cloud.iap.v1beta1", @@ -44788,7 +52633,10 @@ ] } ], - "configFile": "iap_v1beta1.yaml" + "configFile": "iap_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.iap.v1beta1.IdentityAwareProxyAdminV1Beta1" + ] }, { "id": "google.cloud.identitytoolkit.v2", @@ -44904,7 +52752,11 @@ ] } ], - "configFile": "identitytoolkit_v2.yaml" + "configFile": "identitytoolkit_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.identitytoolkit.v2.AccountManagementService", + "google.cloud.identitytoolkit.v2.AuthenticationService" + ] }, { "id": "google.cloud.ids.v1", @@ -44993,7 +52845,10 @@ ] } ], - "configFile": "ids_v1.yaml" + "configFile": "ids_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.ids.v1.IDS" + ] }, { "id": "google.cloud.iot.v1", @@ -45297,7 +53152,10 @@ ] } ], - "configFile": "cloudiot_v1.yaml" + "configFile": "cloudiot_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.iot.v1.DeviceManager" + ] }, { "id": "google.cloud.kms.v1", @@ -45315,36 +53173,86 @@ "options": { "cc_enable_arenas": { "valueCounts": { - "true": 2 + "true": 3 } }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.Kms.V1": 2 + "Google.Cloud.Kms.V1": 3 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/kms/v1;kms": 2 + "google.golang.org/genproto/googleapis/cloud/kms/v1;kms": 3 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 3 } }, "java_package": { "valueCounts": { - "com.google.cloud.kms.v1": 2 + "com.google.cloud.kms.v1": 3 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Kms\\V1": 2 + "Google\\Cloud\\Kms\\V1": 3 } } }, "services": [ + { + "shortName": "EkmService", + "fullName": "google.cloud.kms.v1.EkmService", + "methods": [ + { + "shortName": "CreateEkmConnection", + "fullName": "google.cloud.kms.v1.EkmService.CreateEkmConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/ekmConnections" + } + ] + }, + { + "shortName": "GetEkmConnection", + "fullName": "google.cloud.kms.v1.EkmService.GetEkmConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/ekmConnections/*}" + } + ] + }, + { + "shortName": "ListEkmConnections", + "fullName": "google.cloud.kms.v1.EkmService.ListEkmConnections", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/ekmConnections" + } + ] + }, + { + "shortName": "UpdateEkmConnection", + "fullName": "google.cloud.kms.v1.EkmService.UpdateEkmConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{ekm_connection.name=projects/*/locations/*/ekmConnections/*}" + } + ] + } + ] + }, { "shortName": "KeyManagementService", "fullName": "google.cloud.kms.v1.KeyManagementService", @@ -45638,7 +53546,12 @@ ] } ], - "configFile": "cloudkms_v1.yaml" + "configFile": "cloudkms_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.kms.v1.EkmService", + "google.cloud.kms.v1.KeyManagementService", + "google.iam.v1.IAMPolicy" + ] }, { "id": "google.cloud.language.v1", @@ -45742,7 +53655,10 @@ ] } ], - "configFile": "language_v1.yaml" + "configFile": "language_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.language.v1.LanguageService" + ] }, { "id": "google.cloud.language.v1beta2", @@ -45750,11 +53666,10 @@ "version": "v1beta2", "majorVersion": "v1", "hostName": "language.googleapis.com", - "title": "Google Cloud Natural Language API", - "description": "Google Cloud Natural Language API provides natural language understanding technologies to developers. Examples include sentiment analysis, entity recognition, and text annotations.", + "title": "Cloud Natural Language API", + "description": "Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations, to developers.", "importDirectories": [ - "google/api", - "google/protobuf" + "google/api" ], "options": { "go_package": { @@ -45847,7 +53762,10 @@ ] } ], - "configFile": "language_v1beta2.yaml" + "configFile": "language_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.cloud.language.v1beta2.LanguageService" + ] }, { "id": "google.cloud.lifesciences.v2beta", @@ -45919,7 +53837,10 @@ ] } ], - "configFile": "lifesciences_v2beta.yaml" + "configFile": "lifesciences_v2beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.lifesciences.v2beta.WorkflowsServiceV2Beta" + ] }, { "id": "google.cloud.managedidentities.v1", @@ -46091,7 +54012,10 @@ ] } ], - "configFile": "managedidentities_v1.yaml" + "configFile": "managedidentities_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.managedidentities.v1.ManagedIdentitiesService" + ] }, { "id": "google.cloud.managedidentities.v1beta1", @@ -46263,7 +54187,10 @@ ] } ], - "configFile": "managedidentities_v1beta1.yaml" + "configFile": "managedidentities_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.managedidentities.v1beta1.ManagedIdentitiesService" + ] }, { "id": "google.cloud.mediatranslation.v1alpha1", @@ -46307,7 +54234,10 @@ ] } ], - "configFile": "mediatranslation_v1alpha1.yaml" + "configFile": "mediatranslation_v1alpha1.yaml", + "serviceConfigApiNames": [ + "google.cloud.mediatranslation.v1alpha1.SpeechTranslationService" + ] }, { "id": "google.cloud.mediatranslation.v1beta1", @@ -46371,7 +54301,10 @@ ] } ], - "configFile": "mediatranslation_v1beta1.yaml" + "configFile": "mediatranslation_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.mediatranslation.v1beta1.SpeechTranslationService" + ] }, { "id": "google.cloud.memcache.v1", @@ -46488,7 +54421,10 @@ ] } ], - "configFile": "memcache_v1.yaml" + "configFile": "memcache_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.memcache.v1.CloudMemcache" + ] }, { "id": "google.cloud.memcache.v1beta2", @@ -46616,7 +54552,10 @@ ] } ], - "configFile": "memcache_v1beta2.yaml" + "configFile": "memcache_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.cloud.memcache.v1beta2.CloudMemcache" + ] }, { "id": "google.cloud.metastore.v1", @@ -46822,7 +54761,10 @@ ] } ], - "configFile": "metastore_v1.yaml" + "configFile": "metastore_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.metastore.v1.DataprocMetastore" + ] }, { "id": "google.cloud.metastore.v1alpha", @@ -46853,6 +54795,11 @@ "valueCounts": { "com.google.cloud.metastore.v1alpha": 1 } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Metastore\\V1alpha": 1 + } } }, "services": [ @@ -47028,7 +54975,10 @@ ] } ], - "configFile": "metastore_v1alpha.yaml" + "configFile": "metastore_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.metastore.v1alpha.DataprocMetastore" + ] }, { "id": "google.cloud.metastore.v1beta", @@ -47239,7 +55189,10 @@ ] } ], - "configFile": "metastore_v1beta.yaml" + "configFile": "metastore_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.metastore.v1beta.DataprocMetastore" + ] }, { "id": "google.cloud.networkconnectivity.v1", @@ -47404,7 +55357,10 @@ ] } ], - "configFile": "networkconnectivity_v1.yaml" + "configFile": "networkconnectivity_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.networkconnectivity.v1.HubService" + ] }, { "id": "google.cloud.networkconnectivity.v1alpha1", @@ -47569,7 +55525,10 @@ ] } ], - "configFile": "networkconnectivity_v1alpha1.yaml" + "configFile": "networkconnectivity_v1alpha1.yaml", + "serviceConfigApiNames": [ + "google.cloud.networkconnectivity.v1alpha1.HubService" + ] }, { "id": "google.cloud.networkmanagement.v1", @@ -47692,7 +55651,10 @@ ] } ], - "configFile": "networkmanagement_v1.yaml" + "configFile": "networkmanagement_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.networkmanagement.v1.ReachabilityService" + ] }, { "id": "google.cloud.networkmanagement.v1beta1", @@ -47815,7 +55777,237 @@ ] } ], - "configFile": "networkmanagement_v1beta1.yaml" + "configFile": "networkmanagement_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.networkmanagement.v1beta1.ReachabilityService" + ] + }, + { + "id": "google.cloud.networksecurity.v1", + "directory": "google/cloud/networksecurity/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "networksecurity.googleapis.com", + "title": "Network Security API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/networksecurity/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.NetworkSecurity.V1": 6 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/networksecurity/v1;networksecurity": 6 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 6 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.networksecurity.v1": 6 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\NetworkSecurity\\V1": 6 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::NetworkSecurity::V1": 6 + } + } + }, + "services": [ + { + "shortName": "NetworkSecurity", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity", + "methods": [ + { + "shortName": "CreateAuthorizationPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.CreateAuthorizationPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/authorizationPolicies" + } + ] + }, + { + "shortName": "CreateClientTlsPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.CreateClientTlsPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/clientTlsPolicies" + } + ] + }, + { + "shortName": "CreateServerTlsPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.CreateServerTlsPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/serverTlsPolicies" + } + ] + }, + { + "shortName": "DeleteAuthorizationPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.DeleteAuthorizationPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/authorizationPolicies/*}" + } + ] + }, + { + "shortName": "DeleteClientTlsPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.DeleteClientTlsPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/clientTlsPolicies/*}" + } + ] + }, + { + "shortName": "DeleteServerTlsPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.DeleteServerTlsPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/serverTlsPolicies/*}" + } + ] + }, + { + "shortName": "GetAuthorizationPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.GetAuthorizationPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/authorizationPolicies/*}" + } + ] + }, + { + "shortName": "GetClientTlsPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.GetClientTlsPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/clientTlsPolicies/*}" + } + ] + }, + { + "shortName": "GetServerTlsPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.GetServerTlsPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/serverTlsPolicies/*}" + } + ] + }, + { + "shortName": "ListAuthorizationPolicies", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.ListAuthorizationPolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/authorizationPolicies" + } + ] + }, + { + "shortName": "ListClientTlsPolicies", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.ListClientTlsPolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/clientTlsPolicies" + } + ] + }, + { + "shortName": "ListServerTlsPolicies", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.ListServerTlsPolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/serverTlsPolicies" + } + ] + }, + { + "shortName": "UpdateAuthorizationPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.UpdateAuthorizationPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{authorization_policy.name=projects/*/locations/*/authorizationPolicies/*}" + } + ] + }, + { + "shortName": "UpdateClientTlsPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.UpdateClientTlsPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{client_tls_policy.name=projects/*/locations/*/clientTlsPolicies/*}" + } + ] + }, + { + "shortName": "UpdateServerTlsPolicy", + "fullName": "google.cloud.networksecurity.v1.NetworkSecurity.UpdateServerTlsPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{server_tls_policy.name=projects/*/locations/*/serverTlsPolicies/*}" + } + ] + } + ] + } + ], + "configFile": "networksecurity_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.networksecurity.v1.NetworkSecurity", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.networksecurity.v1beta1", @@ -48036,7 +56228,13 @@ ] } ], - "configFile": "networksecurity_v1beta1.yaml" + "configFile": "networksecurity_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.networksecurity.v1beta1.NetworkSecurity", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.networkservices.v1", @@ -48055,32 +56253,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.NetworkServices.V1": 3 + "Google.Cloud.NetworkServices.V1": 10 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices": 3 + "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices": 10 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 10 } }, "java_package": { "valueCounts": { - "com.google.cloud.networkservices.v1": 3 + "com.google.cloud.networkservices.v1": 10 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\NetworkServices\\V1": 3 + "Google\\Cloud\\NetworkServices\\V1": 10 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::NetworkServices::V1": 3 + "Google::Cloud::NetworkServices::V1": 10 } } }, @@ -48100,6 +56298,83 @@ } ] }, + { + "shortName": "CreateGateway", + "fullName": "google.cloud.networkservices.v1.NetworkServices.CreateGateway", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/gateways" + } + ] + }, + { + "shortName": "CreateGrpcRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.CreateGrpcRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/grpcRoutes" + } + ] + }, + { + "shortName": "CreateHttpRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.CreateHttpRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/httpRoutes" + } + ] + }, + { + "shortName": "CreateMesh", + "fullName": "google.cloud.networkservices.v1.NetworkServices.CreateMesh", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/meshes" + } + ] + }, + { + "shortName": "CreateServiceBinding", + "fullName": "google.cloud.networkservices.v1.NetworkServices.CreateServiceBinding", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/serviceBindings" + } + ] + }, + { + "shortName": "CreateTcpRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.CreateTcpRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/tcpRoutes" + } + ] + }, + { + "shortName": "CreateTlsRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.CreateTlsRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/tlsRoutes" + } + ] + }, { "shortName": "DeleteEndpointPolicy", "fullName": "google.cloud.networkservices.v1.NetworkServices.DeleteEndpointPolicy", @@ -48111,6 +56386,83 @@ } ] }, + { + "shortName": "DeleteGateway", + "fullName": "google.cloud.networkservices.v1.NetworkServices.DeleteGateway", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/gateways/*}" + } + ] + }, + { + "shortName": "DeleteGrpcRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.DeleteGrpcRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/grpcRoutes/*}" + } + ] + }, + { + "shortName": "DeleteHttpRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.DeleteHttpRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/httpRoutes/*}" + } + ] + }, + { + "shortName": "DeleteMesh", + "fullName": "google.cloud.networkservices.v1.NetworkServices.DeleteMesh", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/meshes/*}" + } + ] + }, + { + "shortName": "DeleteServiceBinding", + "fullName": "google.cloud.networkservices.v1.NetworkServices.DeleteServiceBinding", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/serviceBindings/*}" + } + ] + }, + { + "shortName": "DeleteTcpRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.DeleteTcpRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/tcpRoutes/*}" + } + ] + }, + { + "shortName": "DeleteTlsRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.DeleteTlsRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/tlsRoutes/*}" + } + ] + }, { "shortName": "GetEndpointPolicy", "fullName": "google.cloud.networkservices.v1.NetworkServices.GetEndpointPolicy", @@ -48122,6 +56474,83 @@ } ] }, + { + "shortName": "GetGateway", + "fullName": "google.cloud.networkservices.v1.NetworkServices.GetGateway", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/gateways/*}" + } + ] + }, + { + "shortName": "GetGrpcRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.GetGrpcRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/grpcRoutes/*}" + } + ] + }, + { + "shortName": "GetHttpRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.GetHttpRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/httpRoutes/*}" + } + ] + }, + { + "shortName": "GetMesh", + "fullName": "google.cloud.networkservices.v1.NetworkServices.GetMesh", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/meshes/*}" + } + ] + }, + { + "shortName": "GetServiceBinding", + "fullName": "google.cloud.networkservices.v1.NetworkServices.GetServiceBinding", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/serviceBindings/*}" + } + ] + }, + { + "shortName": "GetTcpRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.GetTcpRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/tcpRoutes/*}" + } + ] + }, + { + "shortName": "GetTlsRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.GetTlsRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/tlsRoutes/*}" + } + ] + }, { "shortName": "ListEndpointPolicies", "fullName": "google.cloud.networkservices.v1.NetworkServices.ListEndpointPolicies", @@ -48133,6 +56562,83 @@ } ] }, + { + "shortName": "ListGateways", + "fullName": "google.cloud.networkservices.v1.NetworkServices.ListGateways", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/gateways" + } + ] + }, + { + "shortName": "ListGrpcRoutes", + "fullName": "google.cloud.networkservices.v1.NetworkServices.ListGrpcRoutes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/grpcRoutes" + } + ] + }, + { + "shortName": "ListHttpRoutes", + "fullName": "google.cloud.networkservices.v1.NetworkServices.ListHttpRoutes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/httpRoutes" + } + ] + }, + { + "shortName": "ListMeshes", + "fullName": "google.cloud.networkservices.v1.NetworkServices.ListMeshes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/meshes" + } + ] + }, + { + "shortName": "ListServiceBindings", + "fullName": "google.cloud.networkservices.v1.NetworkServices.ListServiceBindings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/serviceBindings" + } + ] + }, + { + "shortName": "ListTcpRoutes", + "fullName": "google.cloud.networkservices.v1.NetworkServices.ListTcpRoutes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/tcpRoutes" + } + ] + }, + { + "shortName": "ListTlsRoutes", + "fullName": "google.cloud.networkservices.v1.NetworkServices.ListTlsRoutes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/tlsRoutes" + } + ] + }, { "shortName": "UpdateEndpointPolicy", "fullName": "google.cloud.networkservices.v1.NetworkServices.UpdateEndpointPolicy", @@ -48143,11 +56649,83 @@ "path": "/v1/{endpoint_policy.name=projects/*/locations/*/endpointPolicies/*}" } ] + }, + { + "shortName": "UpdateGateway", + "fullName": "google.cloud.networkservices.v1.NetworkServices.UpdateGateway", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{gateway.name=projects/*/locations/*/gateways/*}" + } + ] + }, + { + "shortName": "UpdateGrpcRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.UpdateGrpcRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{grpc_route.name=projects/*/locations/*/grpcRoutes/*}" + } + ] + }, + { + "shortName": "UpdateHttpRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.UpdateHttpRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{http_route.name=projects/*/locations/*/httpRoutes/*}" + } + ] + }, + { + "shortName": "UpdateMesh", + "fullName": "google.cloud.networkservices.v1.NetworkServices.UpdateMesh", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{mesh.name=projects/*/locations/*/meshes/*}" + } + ] + }, + { + "shortName": "UpdateTcpRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.UpdateTcpRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{tcp_route.name=projects/*/locations/*/tcpRoutes/*}" + } + ] + }, + { + "shortName": "UpdateTlsRoute", + "fullName": "google.cloud.networkservices.v1.NetworkServices.UpdateTlsRoute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{tls_route.name=projects/*/locations/*/tlsRoutes/*}" + } + ] } ] } ], - "configFile": "networkservices_v1.yaml" + "configFile": "networkservices_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.networkservices.v1.NetworkServices", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.networkservices.v1beta1", @@ -48258,7 +56836,10 @@ ] } ], - "configFile": "networkservices_v1beta1.yaml" + "configFile": "networkservices_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.networkservices.v1beta1.NetworkServices" + ] }, { "id": "google.cloud.notebooks.v1", @@ -48358,6 +56939,17 @@ } ] }, + { + "shortName": "RefreshRuntimeTokenInternal", + "fullName": "google.cloud.notebooks.v1.ManagedNotebookService.RefreshRuntimeTokenInternal", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/runtimes/*}:refreshRuntimeTokenInternal" + } + ] + }, { "shortName": "ReportRuntimeEvent", "fullName": "google.cloud.notebooks.v1.ManagedNotebookService.ReportRuntimeEvent", @@ -48738,6 +57330,17 @@ } ] }, + { + "shortName": "UpdateInstanceMetadataItems", + "fullName": "google.cloud.notebooks.v1.NotebookService.UpdateInstanceMetadataItems", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{name=projects/*/locations/*/instances/*}:updateMetadataItems" + } + ] + }, { "shortName": "UpdateShieldedInstanceConfig", "fullName": "google.cloud.notebooks.v1.NotebookService.UpdateShieldedInstanceConfig", @@ -48774,7 +57377,11 @@ ] } ], - "configFile": "notebooks_v1.yaml" + "configFile": "notebooks_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.notebooks.v1.ManagedNotebookService", + "google.cloud.notebooks.v1.NotebookService" + ] }, { "id": "google.cloud.notebooks.v1beta1", @@ -49039,7 +57646,85 @@ ] } ], - "configFile": "notebooks_v1beta1.yaml" + "configFile": "notebooks_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.notebooks.v1beta1.NotebookService" + ] + }, + { + "id": "google.cloud.optimization.v1", + "directory": "google/cloud/optimization/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "cloudoptimization.googleapis.com", + "title": "Cloud Optimization API", + "description": "Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets.", + "importDirectories": [ + "google/api", + "google/cloud/optimization/v1", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/optimization/v1;optimization": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.optimization.v1": 2 + } + } + }, + "services": [ + { + "shortName": "FleetRouting", + "fullName": "google.cloud.optimization.v1.FleetRouting", + "methods": [ + { + "shortName": "BatchOptimizeTours", + "fullName": "google.cloud.optimization.v1.FleetRouting.BatchOptimizeTours", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}:batchOptimizeTours" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}:batchOptimizeTours" + } + ] + }, + { + "shortName": "OptimizeTours", + "fullName": "google.cloud.optimization.v1.FleetRouting.OptimizeTours", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}:optimizeTours" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}:optimizeTours" + } + ] + } + ] + } + ], + "configFile": "cloudoptimization_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.optimization.v1.FleetRouting" + ] }, { "id": "google.cloud.orchestration.airflow.service.v1", @@ -49152,7 +57837,11 @@ ] } ], - "configFile": "composer_v1.yaml" + "configFile": "composer_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.orchestration.airflow.service.v1.Environments", + "google.cloud.orchestration.airflow.service.v1.ImageVersions" + ] }, { "id": "google.cloud.orchestration.airflow.service.v1beta1", @@ -49287,7 +57976,11 @@ ] } ], - "configFile": "composer_v1beta1.yaml" + "configFile": "composer_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.orchestration.airflow.service.v1beta1.Environments", + "google.cloud.orchestration.airflow.service.v1beta1.ImageVersions" + ] }, { "id": "google.cloud.orgpolicy.v2", @@ -49476,7 +58169,10 @@ ] } ], - "configFile": "orgpolicy_v2.yaml" + "configFile": "orgpolicy_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.orgpolicy.v2.OrgPolicy" + ] }, { "id": "google.cloud.osconfig.agentendpoint.v1", @@ -49548,7 +58244,10 @@ ] } ], - "configFile": "osconfig_v1.yaml" + "configFile": "osconfig_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.osconfig.agentendpoint.v1.AgentEndpointService" + ] }, { "id": "google.cloud.osconfig.agentendpoint.v1beta", @@ -49556,7 +58255,7 @@ "version": "v1beta", "majorVersion": "v1", "hostName": "osconfig.googleapis.com", - "title": "Cloud OS Config API", + "title": "OS Config API", "description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", "importDirectories": [ "google/api", @@ -49570,8 +58269,8 @@ }, "java_multiple_files": { "valueCounts": { - "": 2, - "true": 2 + "": 3, + "true": 1 } }, "java_package": { @@ -49623,7 +58322,10 @@ ] } ], - "configFile": "osconfig_v1beta.yaml" + "configFile": "osconfig_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.osconfig.agentendpoint.v1beta.AgentEndpointService" + ] }, { "id": "google.cloud.osconfig.v1", @@ -49776,6 +58478,39 @@ "path": "/v1/{parent=projects/*}/patchJobs" } ] + }, + { + "shortName": "PausePatchDeployment", + "fullName": "google.cloud.osconfig.v1.OsConfigService.PausePatchDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/patchDeployments/*}:pause" + } + ] + }, + { + "shortName": "ResumePatchDeployment", + "fullName": "google.cloud.osconfig.v1.OsConfigService.ResumePatchDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/patchDeployments/*}:resume" + } + ] + }, + { + "shortName": "UpdatePatchDeployment", + "fullName": "google.cloud.osconfig.v1.OsConfigService.UpdatePatchDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{patch_deployment.name=projects/*/patchDeployments/*}" + } + ] } ] }, @@ -49918,7 +58653,11 @@ ] } ], - "configFile": "osconfig_v1.yaml" + "configFile": "osconfig_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.osconfig.v1.OsConfigService", + "google.cloud.osconfig.v1.OsConfigZonalService" + ] }, { "id": "google.cloud.osconfig.v1alpha", @@ -49938,32 +58677,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.OsConfig.V1Alpha": 8 + "Google.Cloud.OsConfig.V1Alpha": 9 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/osconfig/v1alpha;osconfig": 8 + "google.golang.org/genproto/googleapis/cloud/osconfig/v1alpha;osconfig": 9 } }, "java_multiple_files": { "valueCounts": { - "true": 8 + "true": 9 } }, "java_package": { "valueCounts": { - "com.google.cloud.osconfig.v1alpha": 8 + "com.google.cloud.osconfig.v1alpha": 9 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\OsConfig\\V1alpha": 8 + "Google\\Cloud\\OsConfig\\V1alpha": 9 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::OsConfig::V1alpha": 8 + "Google::Cloud::OsConfig::V1alpha": 9 } } }, @@ -50027,6 +58766,17 @@ } ] }, + { + "shortName": "GetOSPolicyAssignmentReport", + "fullName": "google.cloud.osconfig.v1alpha.OsConfigZonalService.GetOSPolicyAssignmentReport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/instances/*/osPolicyAssignments/*/report}" + } + ] + }, { "shortName": "GetVulnerabilityReport", "fullName": "google.cloud.osconfig.v1alpha.OsConfigZonalService.GetVulnerabilityReport", @@ -50060,6 +58810,17 @@ } ] }, + { + "shortName": "ListOSPolicyAssignmentReports", + "fullName": "google.cloud.osconfig.v1alpha.OsConfigZonalService.ListOSPolicyAssignmentReports", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/instances/*/osPolicyAssignments/*}/reports" + } + ] + }, { "shortName": "ListOSPolicyAssignmentRevisions", "fullName": "google.cloud.osconfig.v1alpha.OsConfigZonalService.ListOSPolicyAssignmentRevisions", @@ -50107,7 +58868,10 @@ ] } ], - "configFile": "osconfig_v1alpha.yaml" + "configFile": "osconfig_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.osconfig.v1alpha.OsConfigZonalService" + ] }, { "id": "google.cloud.osconfig.v1beta", @@ -50115,7 +58879,7 @@ "version": "v1beta", "majorVersion": "v1", "hostName": "osconfig.googleapis.com", - "title": "Cloud OS Config API", + "title": "OS Config API", "description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", "importDirectories": [ "google/api", @@ -50126,12 +58890,12 @@ "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/osconfig/v1beta;osconfig": 4 + "google.golang.org/genproto/googleapis/cloud/osconfig/v1beta;osconfig": 5 } }, "java_package": { "valueCounts": { - "com.google.cloud.osconfig.v1beta": 4 + "com.google.cloud.osconfig.v1beta": 5 } } }, @@ -50294,6 +59058,28 @@ } ] }, + { + "shortName": "PausePatchDeployment", + "fullName": "google.cloud.osconfig.v1beta.OsConfigService.PausePatchDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{name=projects/*/patchDeployments/*}:pause" + } + ] + }, + { + "shortName": "ResumePatchDeployment", + "fullName": "google.cloud.osconfig.v1beta.OsConfigService.ResumePatchDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{name=projects/*/patchDeployments/*}:resume" + } + ] + }, { "shortName": "UpdateGuestPolicy", "fullName": "google.cloud.osconfig.v1beta.OsConfigService.UpdateGuestPolicy", @@ -50304,11 +59090,25 @@ "path": "/v1beta/{guest_policy.name=projects/*/guestPolicies/*}" } ] + }, + { + "shortName": "UpdatePatchDeployment", + "fullName": "google.cloud.osconfig.v1beta.OsConfigService.UpdatePatchDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta/{patch_deployment.name=projects/*/patchDeployments/*}" + } + ] } ] } ], - "configFile": "osconfig_v1beta.yaml" + "configFile": "osconfig_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.osconfig.v1beta.OsConfigService" + ] }, { "id": "google.cloud.oslogin.v1", @@ -50429,7 +59229,10 @@ ] } ], - "configFile": "oslogin_v1.yaml" + "configFile": "oslogin_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.oslogin.v1.OsLoginService" + ] }, { "id": "google.cloud.oslogin.v1beta", @@ -50550,7 +59353,272 @@ ] } ], - "configFile": "oslogin_v1beta.yaml" + "configFile": "oslogin_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.oslogin.v1beta.OsLoginService" + ] + }, + { + "id": "google.cloud.paymentgateway.issuerswitch.v1", + "directory": "google/cloud/paymentgateway/issuerswitch/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "issuerswitch.googleapis.com", + "title": "Cloud Issuer Switch Service API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/paymentgateway/issuerswitch/v1", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.PaymentGateway.IssuerSwitch.V1": 4 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/paymentgateway/issuerswitch/v1;issuerswitch": 4 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 4 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.paymentgateway.issuerswitch.v1": 4 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\PaymentGateway\\IssuerSwitch\\V1": 4 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::PaymentGateway::IssuerSwitch::V1": 4 + } + } + }, + "services": [ + { + "shortName": "IssuerSwitchResolutions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions", + "methods": [ + { + "shortName": "CreateComplaint", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions.CreateComplaint", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/complaints" + } + ] + }, + { + "shortName": "CreateDispute", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions.CreateDispute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/disputes" + } + ] + }, + { + "shortName": "ResolveComplaint", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions.ResolveComplaint", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{complaint.name=projects/*/complaints/*}:resolve" + } + ] + }, + { + "shortName": "ResolveDispute", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions.ResolveDispute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{dispute.name=projects/*/disputes/*}:resolve" + } + ] + } + ] + }, + { + "shortName": "IssuerSwitchRules", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules", + "methods": [ + { + "shortName": "BatchCreateRuleMetadataValues", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules.BatchCreateRuleMetadataValues", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/rules/*/metadata/*}/values:batchCreate" + } + ] + }, + { + "shortName": "BatchDeleteRuleMetadataValues", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules.BatchDeleteRuleMetadataValues", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/rules/*/metadata/*}/values:batchDelete" + } + ] + }, + { + "shortName": "ListRuleMetadata", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules.ListRuleMetadata", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/rules/*}/metadata" + } + ] + }, + { + "shortName": "ListRuleMetadataValues", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules.ListRuleMetadataValues", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/rules/*/metadata/*}/values" + } + ] + }, + { + "shortName": "ListRules", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules.ListRules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/rules" + } + ] + } + ] + }, + { + "shortName": "IssuerSwitchTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions", + "methods": [ + { + "shortName": "ExportComplaintTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.ExportComplaintTransactions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/complaintTransactions:export" + } + ] + }, + { + "shortName": "ExportFinancialTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.ExportFinancialTransactions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/financialTransactions:export" + } + ] + }, + { + "shortName": "ExportMandateTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.ExportMandateTransactions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/mandateTransactions:export" + } + ] + }, + { + "shortName": "ExportMetadataTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.ExportMetadataTransactions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/metadataTransactions:export" + } + ] + }, + { + "shortName": "ListComplaintTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.ListComplaintTransactions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/complaintTransactions" + } + ] + }, + { + "shortName": "ListFinancialTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.ListFinancialTransactions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/financialTransactions" + } + ] + }, + { + "shortName": "ListMandateTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.ListMandateTransactions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/mandateTransactions" + } + ] + }, + { + "shortName": "ListMetadataTransactions", + "fullName": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.ListMetadataTransactions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/metadataTransactions" + } + ] + } + ] + } + ], + "configFile": "issuerswitch_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions", + "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules", + "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.phishingprotection.v1beta1", @@ -50619,7 +59687,10 @@ ] } ], - "configFile": "phishingprotection_v1beta1.yaml" + "configFile": "phishingprotection_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.phishingprotection.v1beta1.PhishingProtectionServiceV1Beta1" + ] }, { "id": "google.cloud.policytroubleshooter.v1", @@ -50694,7 +59765,10 @@ ] } ], - "configFile": "policytroubleshooter_v1.yaml" + "configFile": "policytroubleshooter_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.policytroubleshooter.v1.IamChecker" + ] }, { "id": "google.cloud.privatecatalog.v1beta1", @@ -50806,7 +59880,10 @@ ] } ], - "configFile": "cloudprivatecatalog_v1beta1.yaml" + "configFile": "cloudprivatecatalog_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.privatecatalog.v1beta1.PrivateCatalog" + ] }, { "id": "google.cloud.pubsublite.v1", @@ -50820,7 +59897,8 @@ "google/api", "google/cloud/pubsublite/v1", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/rpc" ], "options": { "cc_enable_arenas": { @@ -51182,7 +60260,16 @@ ] } ], - "configFile": "pubsublite_v1.yaml" + "configFile": "pubsublite_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.pubsublite.v1.AdminService", + "google.cloud.pubsublite.v1.CursorService", + "google.cloud.pubsublite.v1.PartitionAssignmentService", + "google.cloud.pubsublite.v1.PublisherService", + "google.cloud.pubsublite.v1.SubscriberService", + "google.cloud.pubsublite.v1.TopicStatsService", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.recaptchaenterprise.v1", @@ -51355,7 +60442,7 @@ "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*}/relatedaccountgroupmemberships:search" + "path": "/v1/{project=projects/*}/relatedaccountgroupmemberships:search" } ] }, @@ -51373,7 +60460,10 @@ ] } ], - "configFile": "recaptchaenterprise_v1.yaml" + "configFile": "recaptchaenterprise_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService" + ] }, { "id": "google.cloud.recaptchaenterprise.v1beta1", @@ -51450,66 +60540,14 @@ "path": "/v1beta1/{parent=projects/*}/assessments" } ] - }, - { - "shortName": "CreateKey", - "fullName": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1.CreateKey", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*}/keys" - } - ] - }, - { - "shortName": "DeleteKey", - "fullName": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1.DeleteKey", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/keys/*}" - } - ] - }, - { - "shortName": "GetKey", - "fullName": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1.GetKey", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/keys/*}" - } - ] - }, - { - "shortName": "ListKeys", - "fullName": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1.ListKeys", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*}/keys" - } - ] - }, - { - "shortName": "UpdateKey", - "fullName": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1.UpdateKey", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/{key.name=projects/*/keys/*}" - } - ] } ] } ], - "configFile": "recaptchaenterprise_v1beta1.yaml" + "configFile": "recaptchaenterprise_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1" + ] }, { "id": "google.cloud.recommendationengine.v1beta1", @@ -51524,8 +60562,7 @@ "google/cloud/recommendationengine/v1beta1", "google/longrunning", "google/protobuf", - "google/rpc", - "google/type" + "google/rpc" ], "options": { "csharp_namespace": { @@ -51755,7 +60792,13 @@ ] } ], - "configFile": "recommendationengine_v1beta1.yaml" + "configFile": "recommendationengine_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.recommendationengine.v1beta1.CatalogService", + "google.cloud.recommendationengine.v1beta1.PredictionApiKeyRegistry", + "google.cloud.recommendationengine.v1beta1.PredictionService", + "google.cloud.recommendationengine.v1beta1.UserEventService" + ] }, { "id": "google.cloud.recommender.logging.v1", @@ -51836,27 +60879,27 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Recommender.V1": 3 + "Google.Cloud.Recommender.V1": 5 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender": 3 + "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender": 5 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 5 } }, "java_package": { "valueCounts": { - "com.google.cloud.recommender.v1": 3 + "com.google.cloud.recommender.v1": 5 } }, "objc_class_prefix": { "valueCounts": { - "CREC": 3 + "CREC": 5 } } }, @@ -51888,6 +60931,21 @@ } ] }, + { + "shortName": "GetInsightTypeConfig", + "fullName": "google.cloud.recommender.v1.Recommender.GetInsightTypeConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/insightTypes/*/config}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/insightTypes/*/config}" + } + ] + }, { "shortName": "GetRecommendation", "fullName": "google.cloud.recommender.v1.Recommender.GetRecommendation", @@ -51911,6 +60969,21 @@ } ] }, + { + "shortName": "GetRecommenderConfig", + "fullName": "google.cloud.recommender.v1.Recommender.GetRecommenderConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/recommenders/*/config}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/recommenders/*/config}" + } + ] + }, { "shortName": "ListInsights", "fullName": "google.cloud.recommender.v1.Recommender.ListInsights", @@ -52048,11 +61121,44 @@ "path": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" } ] + }, + { + "shortName": "UpdateInsightTypeConfig", + "fullName": "google.cloud.recommender.v1.Recommender.UpdateInsightTypeConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{insight_type_config.name=projects/*/locations/*/insightTypes/*/config}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{insight_type_config.name=organizations/*/locations/*/insightTypes/*/config}" + } + ] + }, + { + "shortName": "UpdateRecommenderConfig", + "fullName": "google.cloud.recommender.v1.Recommender.UpdateRecommenderConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{recommender_config.name=projects/*/locations/*/recommenders/*/config}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{recommender_config.name=organizations/*/locations/*/recommenders/*/config}" + } + ] } ] } ], - "configFile": "recommender_v1.yaml" + "configFile": "recommender_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.recommender.v1.Recommender" + ] }, { "id": "google.cloud.recommender.v1beta1", @@ -52347,7 +61453,10 @@ ] } ], - "configFile": "recommender_v1beta1.yaml" + "configFile": "recommender_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.recommender.v1beta1.Recommender" + ] }, { "id": "google.cloud.redis.v1", @@ -52360,7 +61469,8 @@ "importDirectories": [ "google/api", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/type" ], "options": { "go_package": { @@ -52439,6 +61549,17 @@ } ] }, + { + "shortName": "GetInstanceAuthString", + "fullName": "google.cloud.redis.v1.CloudRedis.GetInstanceAuthString", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/instances/*}/authString" + } + ] + }, { "shortName": "ImportInstance", "fullName": "google.cloud.redis.v1.CloudRedis.ImportInstance", @@ -52461,6 +61582,17 @@ } ] }, + { + "shortName": "RescheduleMaintenance", + "fullName": "google.cloud.redis.v1.CloudRedis.RescheduleMaintenance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/instances/*}:rescheduleMaintenance" + } + ] + }, { "shortName": "UpdateInstance", "fullName": "google.cloud.redis.v1.CloudRedis.UpdateInstance", @@ -52486,7 +61618,10 @@ ] } ], - "configFile": "redis_v1.yaml" + "configFile": "redis_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.redis.v1.CloudRedis" + ] }, { "id": "google.cloud.redis.v1beta1", @@ -52648,7 +61783,10 @@ ] } ], - "configFile": "redis_v1beta1.yaml" + "configFile": "redis_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.redis.v1beta1.CloudRedis" + ] }, { "id": "google.cloud.resourcemanager.v2", @@ -52820,7 +61958,10 @@ ] } ], - "configFile": "cloudresourcemanager_v2.yaml" + "configFile": "cloudresourcemanager_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.resourcemanager.v2.Folders" + ] }, { "id": "google.cloud.resourcemanager.v3", @@ -53412,7 +62553,15 @@ ] } ], - "configFile": "cloudresourcemanager_v3.yaml" + "configFile": "cloudresourcemanager_v3.yaml", + "serviceConfigApiNames": [ + "google.cloud.resourcemanager.v3.Folders", + "google.cloud.resourcemanager.v3.Organizations", + "google.cloud.resourcemanager.v3.Projects", + "google.cloud.resourcemanager.v3.TagBindings", + "google.cloud.resourcemanager.v3.TagKeys", + "google.cloud.resourcemanager.v3.TagValues" + ] }, { "id": "google.cloud.resourcesettings.v1", @@ -53527,7 +62676,10 @@ ] } ], - "configFile": "resourcesettings_v1.yaml" + "configFile": "resourcesettings_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.resourcesettings.v1.ResourceSettingsService" + ] }, { "id": "google.cloud.retail.v2", @@ -53548,37 +62700,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Retail.V2": 12 + "Google.Cloud.Retail.V2": 17 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/retail/v2;retail": 12 + "google.golang.org/genproto/googleapis/cloud/retail/v2;retail": 17 } }, "java_multiple_files": { "valueCounts": { - "true": 12 + "true": 17 } }, "java_package": { "valueCounts": { - "com.google.cloud.retail.v2": 12 + "com.google.cloud.retail.v2": 17 } }, "objc_class_prefix": { "valueCounts": { - "RETAIL": 12 + "RETAIL": 17 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Retail\\V2": 12 + "Google\\Cloud\\Retail\\V2": 17 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Retail::V2": 12 + "Google::Cloud::Retail::V2": 17 } } }, @@ -53587,6 +62739,39 @@ "shortName": "CatalogService", "fullName": "google.cloud.retail.v2.CatalogService", "methods": [ + { + "shortName": "AddCatalogAttribute", + "fullName": "google.cloud.retail.v2.CatalogService.AddCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:addCatalogAttribute" + } + ] + }, + { + "shortName": "GetAttributesConfig", + "fullName": "google.cloud.retail.v2.CatalogService.GetAttributesConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/catalogs/*/attributesConfig}" + } + ] + }, + { + "shortName": "GetCompletionConfig", + "fullName": "google.cloud.retail.v2.CatalogService.GetCompletionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/catalogs/*/completionConfig}" + } + ] + }, { "shortName": "GetDefaultBranch", "fullName": "google.cloud.retail.v2.CatalogService.GetDefaultBranch", @@ -53609,6 +62794,28 @@ } ] }, + { + "shortName": "RemoveCatalogAttribute", + "fullName": "google.cloud.retail.v2.CatalogService.RemoveCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:removeCatalogAttribute" + } + ] + }, + { + "shortName": "ReplaceCatalogAttribute", + "fullName": "google.cloud.retail.v2.CatalogService.ReplaceCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:replaceCatalogAttribute" + } + ] + }, { "shortName": "SetDefaultBranch", "fullName": "google.cloud.retail.v2.CatalogService.SetDefaultBranch", @@ -53620,6 +62827,17 @@ } ] }, + { + "shortName": "UpdateAttributesConfig", + "fullName": "google.cloud.retail.v2.CatalogService.UpdateAttributesConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{attributes_config.name=projects/*/locations/*/catalogs/*/attributesConfig}" + } + ] + }, { "shortName": "UpdateCatalog", "fullName": "google.cloud.retail.v2.CatalogService.UpdateCatalog", @@ -53630,6 +62848,17 @@ "path": "/v2/{catalog.name=projects/*/locations/*/catalogs/*}" } ] + }, + { + "shortName": "UpdateCompletionConfig", + "fullName": "google.cloud.retail.v2.CatalogService.UpdateCompletionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{completion_config.name=projects/*/locations/*/catalogs/*/completionConfig}" + } + ] } ] }, @@ -53661,6 +62890,67 @@ } ] }, + { + "shortName": "ControlService", + "fullName": "google.cloud.retail.v2.ControlService", + "methods": [ + { + "shortName": "CreateControl", + "fullName": "google.cloud.retail.v2.ControlService.CreateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/catalogs/*}/controls" + } + ] + }, + { + "shortName": "DeleteControl", + "fullName": "google.cloud.retail.v2.ControlService.DeleteControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + }, + { + "shortName": "GetControl", + "fullName": "google.cloud.retail.v2.ControlService.GetControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + }, + { + "shortName": "ListControls", + "fullName": "google.cloud.retail.v2.ControlService.ListControls", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/catalogs/*}/controls" + } + ] + }, + { + "shortName": "UpdateControl", + "fullName": "google.cloud.retail.v2.ControlService.UpdateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{control.name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + } + ] + }, { "shortName": "PredictionService", "fullName": "google.cloud.retail.v2.PredictionService", @@ -53673,6 +62963,10 @@ { "httpMethod": "POST", "path": "/v2/{placement=projects/*/locations/*/catalogs/*/placements/*}:predict" + }, + { + "httpMethod": "POST", + "path": "/v2/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:predict" } ] } @@ -53693,6 +62987,17 @@ } ] }, + { + "shortName": "AddLocalInventories", + "fullName": "google.cloud.retail.v2.ProductService.AddLocalInventories", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:addLocalInventories" + } + ] + }, { "shortName": "CreateProduct", "fullName": "google.cloud.retail.v2.ProductService.CreateProduct", @@ -53759,6 +63064,17 @@ } ] }, + { + "shortName": "RemoveLocalInventories", + "fullName": "google.cloud.retail.v2.ProductService.RemoveLocalInventories", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:removeLocalInventories" + } + ] + }, { "shortName": "SetInventory", "fullName": "google.cloud.retail.v2.ProductService.SetInventory", @@ -53780,21 +63096,108 @@ "path": "/v2/{product.name=projects/*/locations/*/catalogs/*/branches/*/products/**}" } ] - } - ] - }, - { - "shortName": "SearchService", - "fullName": "google.cloud.retail.v2.SearchService", - "methods": [ + } + ] + }, + { + "shortName": "SearchService", + "fullName": "google.cloud.retail.v2.SearchService", + "methods": [ + { + "shortName": "Search", + "fullName": "google.cloud.retail.v2.SearchService.Search", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{placement=projects/*/locations/*/catalogs/*/placements/*}:search" + }, + { + "httpMethod": "POST", + "path": "/v2/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:search" + } + ] + } + ] + }, + { + "shortName": "ServingConfigService", + "fullName": "google.cloud.retail.v2.ServingConfigService", + "methods": [ + { + "shortName": "AddControl", + "fullName": "google.cloud.retail.v2.ServingConfigService.AddControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:addControl" + } + ] + }, + { + "shortName": "CreateServingConfig", + "fullName": "google.cloud.retail.v2.ServingConfigService.CreateServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + } + ] + }, + { + "shortName": "DeleteServingConfig", + "fullName": "google.cloud.retail.v2.ServingConfigService.DeleteServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + } + ] + }, + { + "shortName": "GetServingConfig", + "fullName": "google.cloud.retail.v2.ServingConfigService.GetServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + } + ] + }, + { + "shortName": "ListServingConfigs", + "fullName": "google.cloud.retail.v2.ServingConfigService.ListServingConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + } + ] + }, + { + "shortName": "RemoveControl", + "fullName": "google.cloud.retail.v2.ServingConfigService.RemoveControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:removeControl" + } + ] + }, { - "shortName": "Search", - "fullName": "google.cloud.retail.v2.SearchService.Search", + "shortName": "UpdateServingConfig", + "fullName": "google.cloud.retail.v2.ServingConfigService.UpdateServingConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v2/{placement=projects/*/locations/*/catalogs/*/placements/*}:search" + "httpMethod": "PATCH", + "path": "/v2/{serving_config.name=projects/*/locations/*/catalogs/*/servingConfigs/*}" } ] } @@ -53862,7 +63265,19 @@ ] } ], - "configFile": "retail_v2.yaml" + "configFile": "retail_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.retail.v2.CatalogService", + "google.cloud.retail.v2.CompletionService", + "google.cloud.retail.v2.ControlService", + "google.cloud.retail.v2.PredictionService", + "google.cloud.retail.v2.ProductService", + "google.cloud.retail.v2.SearchService", + "google.cloud.retail.v2.ServingConfigService", + "google.cloud.retail.v2.UserEventService", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.retail.v2alpha", @@ -53883,37 +63298,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Retail.V2Alpha": 13 + "Google.Cloud.Retail.V2Alpha": 20 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail": 13 + "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail": 20 } }, "java_multiple_files": { "valueCounts": { - "true": 13 + "true": 20 } }, "java_package": { "valueCounts": { - "com.google.cloud.retail.v2alpha": 13 + "com.google.cloud.retail.v2alpha": 20 } }, "objc_class_prefix": { "valueCounts": { - "RETAIL": 13 + "RETAIL": 20 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Retail\\V2alpha": 13 + "Google\\Cloud\\Retail\\V2alpha": 20 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Retail::V2alpha": 13 + "Google::Cloud::Retail::V2alpha": 20 } } }, @@ -53922,6 +63337,39 @@ "shortName": "CatalogService", "fullName": "google.cloud.retail.v2alpha.CatalogService", "methods": [ + { + "shortName": "AddCatalogAttribute", + "fullName": "google.cloud.retail.v2alpha.CatalogService.AddCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:addCatalogAttribute" + } + ] + }, + { + "shortName": "GetAttributesConfig", + "fullName": "google.cloud.retail.v2alpha.CatalogService.GetAttributesConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/attributesConfig}" + } + ] + }, + { + "shortName": "GetCompletionConfig", + "fullName": "google.cloud.retail.v2alpha.CatalogService.GetCompletionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/completionConfig}" + } + ] + }, { "shortName": "GetDefaultBranch", "fullName": "google.cloud.retail.v2alpha.CatalogService.GetDefaultBranch", @@ -53944,6 +63392,28 @@ } ] }, + { + "shortName": "RemoveCatalogAttribute", + "fullName": "google.cloud.retail.v2alpha.CatalogService.RemoveCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:removeCatalogAttribute" + } + ] + }, + { + "shortName": "ReplaceCatalogAttribute", + "fullName": "google.cloud.retail.v2alpha.CatalogService.ReplaceCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:replaceCatalogAttribute" + } + ] + }, { "shortName": "SetDefaultBranch", "fullName": "google.cloud.retail.v2alpha.CatalogService.SetDefaultBranch", @@ -53955,6 +63425,17 @@ } ] }, + { + "shortName": "UpdateAttributesConfig", + "fullName": "google.cloud.retail.v2alpha.CatalogService.UpdateAttributesConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{attributes_config.name=projects/*/locations/*/catalogs/*/attributesConfig}" + } + ] + }, { "shortName": "UpdateCatalog", "fullName": "google.cloud.retail.v2alpha.CatalogService.UpdateCatalog", @@ -53965,6 +63446,17 @@ "path": "/v2alpha/{catalog.name=projects/*/locations/*/catalogs/*}" } ] + }, + { + "shortName": "UpdateCompletionConfig", + "fullName": "google.cloud.retail.v2alpha.CatalogService.UpdateCompletionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{completion_config.name=projects/*/locations/*/catalogs/*/completionConfig}" + } + ] } ] }, @@ -53996,6 +63488,150 @@ } ] }, + { + "shortName": "ControlService", + "fullName": "google.cloud.retail.v2alpha.ControlService", + "methods": [ + { + "shortName": "CreateControl", + "fullName": "google.cloud.retail.v2alpha.ControlService.CreateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/controls" + } + ] + }, + { + "shortName": "DeleteControl", + "fullName": "google.cloud.retail.v2alpha.ControlService.DeleteControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + }, + { + "shortName": "GetControl", + "fullName": "google.cloud.retail.v2alpha.ControlService.GetControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + }, + { + "shortName": "ListControls", + "fullName": "google.cloud.retail.v2alpha.ControlService.ListControls", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/controls" + } + ] + }, + { + "shortName": "UpdateControl", + "fullName": "google.cloud.retail.v2alpha.ControlService.UpdateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{control.name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + } + ] + }, + { + "shortName": "ModelService", + "fullName": "google.cloud.retail.v2alpha.ModelService", + "methods": [ + { + "shortName": "CreateModel", + "fullName": "google.cloud.retail.v2alpha.ModelService.CreateModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/models" + } + ] + }, + { + "shortName": "DeleteModel", + "fullName": "google.cloud.retail.v2alpha.ModelService.DeleteModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/models/*}" + } + ] + }, + { + "shortName": "ListModels", + "fullName": "google.cloud.retail.v2alpha.ModelService.ListModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/models" + } + ] + }, + { + "shortName": "PauseModel", + "fullName": "google.cloud.retail.v2alpha.ModelService.PauseModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/models/*}:pause" + } + ] + }, + { + "shortName": "ResumeModel", + "fullName": "google.cloud.retail.v2alpha.ModelService.ResumeModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/models/*}:resume" + } + ] + }, + { + "shortName": "TuneModel", + "fullName": "google.cloud.retail.v2alpha.ModelService.TuneModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/models/*}:tune" + } + ] + }, + { + "shortName": "UpdateModel", + "fullName": "google.cloud.retail.v2alpha.ModelService.UpdateModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{model.name=projects/*/locations/*/catalogs/*/models/*}" + } + ] + } + ] + }, { "shortName": "PredictionService", "fullName": "google.cloud.retail.v2alpha.PredictionService", @@ -54008,6 +63644,10 @@ { "httpMethod": "POST", "path": "/v2alpha/{placement=projects/*/locations/*/catalogs/*/placements/*}:predict" + }, + { + "httpMethod": "POST", + "path": "/v2alpha/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:predict" } ] } @@ -54094,6 +63734,17 @@ } ] }, + { + "shortName": "PurgeProducts", + "fullName": "google.cloud.retail.v2alpha.ProductService.PurgeProducts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:purge" + } + ] + }, { "shortName": "RemoveFulfillmentPlaces", "fullName": "google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces", @@ -54152,6 +63803,93 @@ { "httpMethod": "POST", "path": "/v2alpha/{placement=projects/*/locations/*/catalogs/*/placements/*}:search" + }, + { + "httpMethod": "POST", + "path": "/v2alpha/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:search" + } + ] + } + ] + }, + { + "shortName": "ServingConfigService", + "fullName": "google.cloud.retail.v2alpha.ServingConfigService", + "methods": [ + { + "shortName": "AddControl", + "fullName": "google.cloud.retail.v2alpha.ServingConfigService.AddControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:addControl" + } + ] + }, + { + "shortName": "CreateServingConfig", + "fullName": "google.cloud.retail.v2alpha.ServingConfigService.CreateServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + } + ] + }, + { + "shortName": "DeleteServingConfig", + "fullName": "google.cloud.retail.v2alpha.ServingConfigService.DeleteServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + } + ] + }, + { + "shortName": "GetServingConfig", + "fullName": "google.cloud.retail.v2alpha.ServingConfigService.GetServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + } + ] + }, + { + "shortName": "ListServingConfigs", + "fullName": "google.cloud.retail.v2alpha.ServingConfigService.ListServingConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + } + ] + }, + { + "shortName": "RemoveControl", + "fullName": "google.cloud.retail.v2alpha.ServingConfigService.RemoveControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:removeControl" + } + ] + }, + { + "shortName": "UpdateServingConfig", + "fullName": "google.cloud.retail.v2alpha.ServingConfigService.UpdateServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{serving_config.name=projects/*/locations/*/catalogs/*/servingConfigs/*}" } ] } @@ -54219,7 +63957,20 @@ ] } ], - "configFile": "retail_v2alpha.yaml" + "configFile": "retail_v2alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.retail.v2alpha.CatalogService", + "google.cloud.retail.v2alpha.CompletionService", + "google.cloud.retail.v2alpha.ControlService", + "google.cloud.retail.v2alpha.ModelService", + "google.cloud.retail.v2alpha.PredictionService", + "google.cloud.retail.v2alpha.ProductService", + "google.cloud.retail.v2alpha.SearchService", + "google.cloud.retail.v2alpha.ServingConfigService", + "google.cloud.retail.v2alpha.UserEventService", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.retail.v2beta", @@ -54240,37 +63991,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Retail.V2Beta": 13 + "Google.Cloud.Retail.V2Beta": 20 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail": 13 + "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail": 20 } }, "java_multiple_files": { "valueCounts": { - "true": 13 + "true": 20 } }, "java_package": { "valueCounts": { - "com.google.cloud.retail.v2beta": 13 + "com.google.cloud.retail.v2beta": 20 } }, "objc_class_prefix": { "valueCounts": { - "RETAIL": 13 + "RETAIL": 20 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Retail\\V2beta": 13 + "Google\\Cloud\\Retail\\V2beta": 20 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Retail::V2beta": 13 + "Google::Cloud::Retail::V2beta": 20 } } }, @@ -54279,6 +64030,50 @@ "shortName": "CatalogService", "fullName": "google.cloud.retail.v2beta.CatalogService", "methods": [ + { + "shortName": "AddCatalogAttribute", + "fullName": "google.cloud.retail.v2beta.CatalogService.AddCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:addCatalogAttribute" + } + ] + }, + { + "shortName": "BatchRemoveCatalogAttributes", + "fullName": "google.cloud.retail.v2beta.CatalogService.BatchRemoveCatalogAttributes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:batchRemoveCatalogAttributes" + } + ] + }, + { + "shortName": "GetAttributesConfig", + "fullName": "google.cloud.retail.v2beta.CatalogService.GetAttributesConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/attributesConfig}" + } + ] + }, + { + "shortName": "GetCompletionConfig", + "fullName": "google.cloud.retail.v2beta.CatalogService.GetCompletionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/completionConfig}" + } + ] + }, { "shortName": "GetDefaultBranch", "fullName": "google.cloud.retail.v2beta.CatalogService.GetDefaultBranch", @@ -54301,6 +64096,28 @@ } ] }, + { + "shortName": "RemoveCatalogAttribute", + "fullName": "google.cloud.retail.v2beta.CatalogService.RemoveCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:removeCatalogAttribute" + } + ] + }, + { + "shortName": "ReplaceCatalogAttribute", + "fullName": "google.cloud.retail.v2beta.CatalogService.ReplaceCatalogAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:replaceCatalogAttribute" + } + ] + }, { "shortName": "SetDefaultBranch", "fullName": "google.cloud.retail.v2beta.CatalogService.SetDefaultBranch", @@ -54312,6 +64129,17 @@ } ] }, + { + "shortName": "UpdateAttributesConfig", + "fullName": "google.cloud.retail.v2beta.CatalogService.UpdateAttributesConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta/{attributes_config.name=projects/*/locations/*/catalogs/*/attributesConfig}" + } + ] + }, { "shortName": "UpdateCatalog", "fullName": "google.cloud.retail.v2beta.CatalogService.UpdateCatalog", @@ -54322,6 +64150,17 @@ "path": "/v2beta/{catalog.name=projects/*/locations/*/catalogs/*}" } ] + }, + { + "shortName": "UpdateCompletionConfig", + "fullName": "google.cloud.retail.v2beta.CatalogService.UpdateCompletionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta/{completion_config.name=projects/*/locations/*/catalogs/*/completionConfig}" + } + ] } ] }, @@ -54353,6 +64192,150 @@ } ] }, + { + "shortName": "ControlService", + "fullName": "google.cloud.retail.v2beta.ControlService", + "methods": [ + { + "shortName": "CreateControl", + "fullName": "google.cloud.retail.v2beta.ControlService.CreateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/controls" + } + ] + }, + { + "shortName": "DeleteControl", + "fullName": "google.cloud.retail.v2beta.ControlService.DeleteControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + }, + { + "shortName": "GetControl", + "fullName": "google.cloud.retail.v2beta.ControlService.GetControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + }, + { + "shortName": "ListControls", + "fullName": "google.cloud.retail.v2beta.ControlService.ListControls", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/controls" + } + ] + }, + { + "shortName": "UpdateControl", + "fullName": "google.cloud.retail.v2beta.ControlService.UpdateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta/{control.name=projects/*/locations/*/catalogs/*/controls/*}" + } + ] + } + ] + }, + { + "shortName": "ModelService", + "fullName": "google.cloud.retail.v2beta.ModelService", + "methods": [ + { + "shortName": "CreateModel", + "fullName": "google.cloud.retail.v2beta.ModelService.CreateModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/models" + } + ] + }, + { + "shortName": "DeleteModel", + "fullName": "google.cloud.retail.v2beta.ModelService.DeleteModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/models/*}" + } + ] + }, + { + "shortName": "ListModels", + "fullName": "google.cloud.retail.v2beta.ModelService.ListModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/models" + } + ] + }, + { + "shortName": "PauseModel", + "fullName": "google.cloud.retail.v2beta.ModelService.PauseModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/models/*}:pause" + } + ] + }, + { + "shortName": "ResumeModel", + "fullName": "google.cloud.retail.v2beta.ModelService.ResumeModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/models/*}:resume" + } + ] + }, + { + "shortName": "TuneModel", + "fullName": "google.cloud.retail.v2beta.ModelService.TuneModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/models/*}:tune" + } + ] + }, + { + "shortName": "UpdateModel", + "fullName": "google.cloud.retail.v2beta.ModelService.UpdateModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta/{model.name=projects/*/locations/*/catalogs/*/models/*}" + } + ] + } + ] + }, { "shortName": "PredictionService", "fullName": "google.cloud.retail.v2beta.PredictionService", @@ -54365,6 +64348,10 @@ { "httpMethod": "POST", "path": "/v2beta/{placement=projects/*/locations/*/catalogs/*/placements/*}:predict" + }, + { + "httpMethod": "POST", + "path": "/v2beta/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:predict" } ] } @@ -54385,6 +64372,17 @@ } ] }, + { + "shortName": "AddLocalInventories", + "fullName": "google.cloud.retail.v2beta.ProductService.AddLocalInventories", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:addLocalInventories" + } + ] + }, { "shortName": "CreateProduct", "fullName": "google.cloud.retail.v2beta.ProductService.CreateProduct", @@ -54451,6 +64449,17 @@ } ] }, + { + "shortName": "RemoveLocalInventories", + "fullName": "google.cloud.retail.v2beta.ProductService.RemoveLocalInventories", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:removeLocalInventories" + } + ] + }, { "shortName": "SetInventory", "fullName": "google.cloud.retail.v2beta.ProductService.SetInventory", @@ -54487,6 +64496,93 @@ { "httpMethod": "POST", "path": "/v2beta/{placement=projects/*/locations/*/catalogs/*/placements/*}:search" + }, + { + "httpMethod": "POST", + "path": "/v2beta/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:search" + } + ] + } + ] + }, + { + "shortName": "ServingConfigService", + "fullName": "google.cloud.retail.v2beta.ServingConfigService", + "methods": [ + { + "shortName": "AddControl", + "fullName": "google.cloud.retail.v2beta.ServingConfigService.AddControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:addControl" + } + ] + }, + { + "shortName": "CreateServingConfig", + "fullName": "google.cloud.retail.v2beta.ServingConfigService.CreateServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + } + ] + }, + { + "shortName": "DeleteServingConfig", + "fullName": "google.cloud.retail.v2beta.ServingConfigService.DeleteServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + } + ] + }, + { + "shortName": "GetServingConfig", + "fullName": "google.cloud.retail.v2beta.ServingConfigService.GetServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + } + ] + }, + { + "shortName": "ListServingConfigs", + "fullName": "google.cloud.retail.v2beta.ServingConfigService.ListServingConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + } + ] + }, + { + "shortName": "RemoveControl", + "fullName": "google.cloud.retail.v2beta.ServingConfigService.RemoveControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:removeControl" + } + ] + }, + { + "shortName": "UpdateServingConfig", + "fullName": "google.cloud.retail.v2beta.ServingConfigService.UpdateServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta/{serving_config.name=projects/*/locations/*/catalogs/*/servingConfigs/*}" } ] } @@ -54554,7 +64650,193 @@ ] } ], - "configFile": "retail_v2beta.yaml" + "configFile": "retail_v2beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.retail.v2beta.CatalogService", + "google.cloud.retail.v2beta.CompletionService", + "google.cloud.retail.v2beta.ControlService", + "google.cloud.retail.v2beta.ModelService", + "google.cloud.retail.v2beta.PredictionService", + "google.cloud.retail.v2beta.ProductService", + "google.cloud.retail.v2beta.SearchService", + "google.cloud.retail.v2beta.ServingConfigService", + "google.cloud.retail.v2beta.UserEventService", + "google.longrunning.Operations" + ] + }, + { + "id": "google.cloud.run.v2", + "directory": "google/cloud/run/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "run.googleapis.com", + "title": "Cloud Run Admin API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/run/v2", + "google/iam/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/run/v2;run": 7 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 7 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.run.v2": 7 + } + } + }, + "services": [ + { + "shortName": "Revisions", + "fullName": "google.cloud.run.v2.Revisions", + "methods": [ + { + "shortName": "DeleteRevision", + "fullName": "google.cloud.run.v2.Revisions.DeleteRevision", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/services/*/revisions/*}" + } + ] + }, + { + "shortName": "GetRevision", + "fullName": "google.cloud.run.v2.Revisions.GetRevision", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/services/*/revisions/*}" + } + ] + }, + { + "shortName": "ListRevisions", + "fullName": "google.cloud.run.v2.Revisions.ListRevisions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/services/*}/revisions" + } + ] + } + ] + }, + { + "shortName": "Services", + "fullName": "google.cloud.run.v2.Services", + "methods": [ + { + "shortName": "CreateService", + "fullName": "google.cloud.run.v2.Services.CreateService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/services" + } + ] + }, + { + "shortName": "DeleteService", + "fullName": "google.cloud.run.v2.Services.DeleteService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/services/*}" + } + ] + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.run.v2.Services.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{resource=projects/*/locations/*/services/*}:getIamPolicy" + } + ] + }, + { + "shortName": "GetService", + "fullName": "google.cloud.run.v2.Services.GetService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/services/*}" + } + ] + }, + { + "shortName": "ListServices", + "fullName": "google.cloud.run.v2.Services.ListServices", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/services" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.run.v2.Services.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/locations/*/services/*}:setIamPolicy" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.run.v2.Services.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{resource=projects/*/locations/*/services/*}:testIamPermissions" + } + ] + }, + { + "shortName": "UpdateService", + "fullName": "google.cloud.run.v2.Services.UpdateService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{service.name=projects/*/locations/*/services/*}" + } + ] + } + ] + } + ], + "configFile": "run_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.run.v2.Revisions", + "google.cloud.run.v2.Services" + ] }, { "id": "google.cloud.scheduler.v1", @@ -54689,7 +64971,10 @@ ] } ], - "configFile": "cloudscheduler_v1.yaml" + "configFile": "cloudscheduler_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.scheduler.v1.CloudScheduler" + ] }, { "id": "google.cloud.scheduler.v1beta1", @@ -54824,7 +65109,10 @@ ] } ], - "configFile": "cloudscheduler_v1beta1.yaml" + "configFile": "cloudscheduler_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.scheduler.v1beta1.CloudScheduler" + ] }, { "id": "google.cloud.secretmanager.v1", @@ -55055,7 +65343,10 @@ ] } ], - "configFile": "secretmanager_v1.yaml" + "configFile": "secretmanager_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.secretmanager.v1.SecretManagerService" + ] }, { "id": "google.cloud.secrets.v1beta1", @@ -55286,7 +65577,10 @@ ] } ], - "configFile": "secretmanager_v1beta1.yaml" + "configFile": "secretmanager_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.secrets.v1beta1.SecretManagerService" + ] }, { "id": "google.cloud.security.privateca.v1", @@ -55667,7 +65961,12 @@ ] } ], - "configFile": "privateca_v1.yaml" + "configFile": "privateca_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.security.privateca.v1.CertificateAuthorityService", + "google.iam.v1.IAMPolicy" + ] }, { "id": "google.cloud.security.privateca.v1beta1", @@ -55948,7 +66247,83 @@ ] } ], - "configFile": "privateca_v1beta1.yaml" + "configFile": "privateca_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.security.privateca.v1beta1.CertificateAuthorityService" + ] + }, + { + "id": "google.cloud.security.publicca.v1beta1", + "directory": "google/cloud/security/publicca/v1beta1", + "version": "v1beta1", + "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/v1beta1" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 2 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Security.PublicCA.V1Beta1": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/security/publicca/v1beta1;publicca": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.security.publicca.v1beta1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Security\\PublicCA\\V1beta1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Security::PublicCA::V1beta1": 2 + } + } + }, + "services": [ + { + "shortName": "PublicCertificateAuthorityService", + "fullName": "google.cloud.security.publicca.v1beta1.PublicCertificateAuthorityService", + "methods": [ + { + "shortName": "CreateExternalAccountKey", + "fullName": "google.cloud.security.publicca.v1beta1.PublicCertificateAuthorityService.CreateExternalAccountKey", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/externalAccountKeys" + } + ] + } + ] + } + ], + "configFile": "publicca_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.security.publicca.v1beta1.PublicCertificateAuthorityService" + ] }, { "id": "google.cloud.securitycenter.settings.v1beta1", @@ -56311,7 +66686,10 @@ ] } ], - "configFile": "securitycenter_settings.yaml" + "configFile": "securitycenter_settings.yaml", + "serviceConfigApiNames": [ + "google.cloud.securitycenter.settings.v1beta1.SecurityCenterSettingsService" + ] }, { "id": "google.cloud.securitycenter.v1", @@ -56331,32 +66709,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.SecurityCenter.V1": 15 + "Google.Cloud.SecurityCenter.V1": 29 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter": 15 + "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter": 29 } }, "java_multiple_files": { "valueCounts": { - "true": 15 + "true": 29 } }, "java_package": { "valueCounts": { - "com.google.cloud.securitycenter.v1": 15 + "com.google.cloud.securitycenter.v1": 29 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\SecurityCenter\\V1": 15 + "Google\\Cloud\\SecurityCenter\\V1": 29 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::SecurityCenter::V1": 15 + "Google::Cloud::SecurityCenter::V1": 29 } } }, @@ -56384,6 +66762,25 @@ } ] }, + { + "shortName": "CreateBigQueryExport", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.CreateBigQueryExport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*}/bigQueryExports" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*}/bigQueryExports" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/bigQueryExports" + } + ] + }, { "shortName": "CreateFinding", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.CreateFinding", @@ -56436,6 +66833,25 @@ } ] }, + { + "shortName": "DeleteBigQueryExport", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.DeleteBigQueryExport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/bigQueryExports/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=folders/*/bigQueryExports/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/bigQueryExports/*}" + } + ] + }, { "shortName": "DeleteMuteConfig", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.DeleteMuteConfig", @@ -56466,6 +66882,25 @@ } ] }, + { + "shortName": "GetBigQueryExport", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetBigQueryExport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/bigQueryExports/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/bigQueryExports/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/bigQueryExports/*}" + } + ] + }, { "shortName": "GetIamPolicy", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetIamPolicy", @@ -56586,6 +67021,25 @@ } ] }, + { + "shortName": "ListBigQueryExports", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListBigQueryExports", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*}/bigQueryExports" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*}/bigQueryExports" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/bigQueryExports" + } + ] + }, { "shortName": "ListFindings", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListFindings", @@ -56725,6 +67179,25 @@ } ] }, + { + "shortName": "UpdateBigQueryExport", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.UpdateBigQueryExport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{big_query_export.name=organizations/*/bigQueryExports/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{big_query_export.name=folders/*/bigQueryExports/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{big_query_export.name=projects/*/bigQueryExports/*}" + } + ] + }, { "shortName": "UpdateExternalSystem", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.UpdateExternalSystem", @@ -56849,7 +67322,11 @@ ] } ], - "configFile": "securitycenter_v1.yaml" + "configFile": "securitycenter_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.securitycenter.v1.SecurityCenter", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.securitycenter.v1beta1", @@ -57093,7 +67570,10 @@ ] } ], - "configFile": "securitycenter_v1beta1.yaml" + "configFile": "securitycenter_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.securitycenter.v1beta1.SecurityCenter" + ] }, { "id": "google.cloud.securitycenter.v1p1beta1", @@ -57480,7 +67960,10 @@ ] } ], - "configFile": "securitycenter_v1p1beta1.yaml" + "configFile": "securitycenter_v1p1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.securitycenter.v1p1beta1.SecurityCenter" + ] }, { "id": "google.cloud.servicedirectory.v1", @@ -57768,7 +68251,11 @@ ] } ], - "configFile": "servicedirectory_v1.yaml" + "configFile": "servicedirectory_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.servicedirectory.v1.LookupService", + "google.cloud.servicedirectory.v1.RegistrationService" + ] }, { "id": "google.cloud.servicedirectory.v1beta1", @@ -58056,7 +68543,11 @@ ] } ], - "configFile": "servicedirectory_v1beta1.yaml" + "configFile": "servicedirectory_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.servicedirectory.v1beta1.LookupService", + "google.cloud.servicedirectory.v1beta1.RegistrationService" + ] }, { "id": "google.cloud.shell.v1", @@ -58151,7 +68642,10 @@ ] } ], - "configFile": "cloudshell_v1.yaml" + "configFile": "cloudshell_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.shell.v1.CloudShellService" + ] }, { "id": "google.cloud.speech.v1", @@ -58171,31 +68665,147 @@ "options": { "cc_enable_arenas": { "valueCounts": { - "true": 2 + "true": 3 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/speech/v1;speech": 2 + "google.golang.org/genproto/googleapis/cloud/speech/v1;speech": 3 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 3 } }, "java_package": { "valueCounts": { - "com.google.cloud.speech.v1": 2 + "com.google.cloud.speech.v1": 3 } }, "objc_class_prefix": { "valueCounts": { - "GCS": 2 + "GCS": 3 } } }, "services": [ + { + "shortName": "Adaptation", + "fullName": "google.cloud.speech.v1.Adaptation", + "methods": [ + { + "shortName": "CreateCustomClass", + "fullName": "google.cloud.speech.v1.Adaptation.CreateCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/customClasses" + } + ] + }, + { + "shortName": "CreatePhraseSet", + "fullName": "google.cloud.speech.v1.Adaptation.CreatePhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/phraseSets" + } + ] + }, + { + "shortName": "DeleteCustomClass", + "fullName": "google.cloud.speech.v1.Adaptation.DeleteCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/customClasses/*}" + } + ] + }, + { + "shortName": "DeletePhraseSet", + "fullName": "google.cloud.speech.v1.Adaptation.DeletePhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/phraseSets/*}" + } + ] + }, + { + "shortName": "GetCustomClass", + "fullName": "google.cloud.speech.v1.Adaptation.GetCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/customClasses/*}" + } + ] + }, + { + "shortName": "GetPhraseSet", + "fullName": "google.cloud.speech.v1.Adaptation.GetPhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/phraseSets/*}" + } + ] + }, + { + "shortName": "ListCustomClasses", + "fullName": "google.cloud.speech.v1.Adaptation.ListCustomClasses", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/customClasses" + } + ] + }, + { + "shortName": "ListPhraseSet", + "fullName": "google.cloud.speech.v1.Adaptation.ListPhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/phraseSets" + } + ] + }, + { + "shortName": "UpdateCustomClass", + "fullName": "google.cloud.speech.v1.Adaptation.UpdateCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{custom_class.name=projects/*/locations/*/customClasses/*}" + } + ] + }, + { + "shortName": "UpdatePhraseSet", + "fullName": "google.cloud.speech.v1.Adaptation.UpdatePhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{phrase_set.name=projects/*/locations/*/phraseSets/*}" + } + ] + } + ] + }, { "shortName": "Speech", "fullName": "google.cloud.speech.v1.Speech", @@ -58230,7 +68840,11 @@ ] } ], - "configFile": "speech_v1.yaml" + "configFile": "speech_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.speech.v1.Adaptation", + "google.cloud.speech.v1.Speech" + ] }, { "id": "google.cloud.speech.v1p1beta1", @@ -58425,7 +69039,303 @@ ] } ], - "configFile": "speech_v1p1beta1.yaml" + "configFile": "speech_v1p1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.speech.v1p1beta1.Adaptation", + "google.cloud.speech.v1p1beta1.Speech" + ] + }, + { + "id": "google.cloud.speech.v2", + "directory": "google/cloud/speech/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "speech.googleapis.com", + "title": "Cloud Speech-to-Text API", + "description": "Converts audio to text by applying powerful neural network models.", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/speech/v2;speech": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.speech.v2": 1 + } + } + }, + "services": [ + { + "shortName": "Speech", + "fullName": "google.cloud.speech.v2.Speech", + "methods": [ + { + "shortName": "BatchRecognize", + "fullName": "google.cloud.speech.v2.Speech.BatchRecognize", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{recognizer=projects/*/locations/*/recognizers/*}:batchRecognize" + } + ] + }, + { + "shortName": "CreateCustomClass", + "fullName": "google.cloud.speech.v2.Speech.CreateCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/customClasses" + } + ] + }, + { + "shortName": "CreatePhraseSet", + "fullName": "google.cloud.speech.v2.Speech.CreatePhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/phraseSets" + } + ] + }, + { + "shortName": "CreateRecognizer", + "fullName": "google.cloud.speech.v2.Speech.CreateRecognizer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/recognizers" + } + ] + }, + { + "shortName": "DeleteCustomClass", + "fullName": "google.cloud.speech.v2.Speech.DeleteCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/customClasses/*}" + } + ] + }, + { + "shortName": "DeletePhraseSet", + "fullName": "google.cloud.speech.v2.Speech.DeletePhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/phraseSets/*}" + } + ] + }, + { + "shortName": "DeleteRecognizer", + "fullName": "google.cloud.speech.v2.Speech.DeleteRecognizer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/recognizers/*}" + } + ] + }, + { + "shortName": "GetConfig", + "fullName": "google.cloud.speech.v2.Speech.GetConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/config}" + } + ] + }, + { + "shortName": "GetCustomClass", + "fullName": "google.cloud.speech.v2.Speech.GetCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/customClasses/*}" + } + ] + }, + { + "shortName": "GetPhraseSet", + "fullName": "google.cloud.speech.v2.Speech.GetPhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/phraseSets/*}" + } + ] + }, + { + "shortName": "GetRecognizer", + "fullName": "google.cloud.speech.v2.Speech.GetRecognizer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/recognizers/*}" + } + ] + }, + { + "shortName": "ListCustomClasses", + "fullName": "google.cloud.speech.v2.Speech.ListCustomClasses", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/customClasses" + } + ] + }, + { + "shortName": "ListPhraseSets", + "fullName": "google.cloud.speech.v2.Speech.ListPhraseSets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/phraseSets" + } + ] + }, + { + "shortName": "ListRecognizers", + "fullName": "google.cloud.speech.v2.Speech.ListRecognizers", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/recognizers" + } + ] + }, + { + "shortName": "Recognize", + "fullName": "google.cloud.speech.v2.Speech.Recognize", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{recognizer=projects/*/locations/*/recognizers/*}:recognize" + } + ] + }, + { + "shortName": "StreamingRecognize", + "fullName": "google.cloud.speech.v2.Speech.StreamingRecognize", + "mode": "BIDIRECTIONAL_STREAMING" + }, + { + "shortName": "UndeleteCustomClass", + "fullName": "google.cloud.speech.v2.Speech.UndeleteCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/customClasses/*}:undelete" + } + ] + }, + { + "shortName": "UndeletePhraseSet", + "fullName": "google.cloud.speech.v2.Speech.UndeletePhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/phraseSets/*}:undelete" + } + ] + }, + { + "shortName": "UndeleteRecognizer", + "fullName": "google.cloud.speech.v2.Speech.UndeleteRecognizer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/locations/*/recognizers/*}:undelete" + } + ] + }, + { + "shortName": "UpdateConfig", + "fullName": "google.cloud.speech.v2.Speech.UpdateConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{config.name=projects/*/locations/*/config}" + } + ] + }, + { + "shortName": "UpdateCustomClass", + "fullName": "google.cloud.speech.v2.Speech.UpdateCustomClass", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{custom_class.name=projects/*/locations/*/customClasses/*}" + } + ] + }, + { + "shortName": "UpdatePhraseSet", + "fullName": "google.cloud.speech.v2.Speech.UpdatePhraseSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{phrase_set.name=projects/*/locations/*/phraseSets/*}" + } + ] + }, + { + "shortName": "UpdateRecognizer", + "fullName": "google.cloud.speech.v2.Speech.UpdateRecognizer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{recognizer.name=projects/*/locations/*/recognizers/*}" + } + ] + } + ] + } + ], + "configFile": "speech_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.speech.v2.Speech", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.sql.v1", @@ -59056,7 +69966,19 @@ ] } ], - "configFile": "sqladmin_v1.yaml" + "configFile": "sqladmin_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.sql.v1.SqlBackupRunsService", + "google.cloud.sql.v1.SqlConnectService", + "google.cloud.sql.v1.SqlDatabasesService", + "google.cloud.sql.v1.SqlFlagsService", + "google.cloud.sql.v1.SqlInstanceNamesService", + "google.cloud.sql.v1.SqlInstancesService", + "google.cloud.sql.v1.SqlOperationsService", + "google.cloud.sql.v1.SqlSslCertsService", + "google.cloud.sql.v1.SqlTiersService", + "google.cloud.sql.v1.SqlUsersService" + ] }, { "id": "google.cloud.sql.v1beta4", @@ -59683,7 +70605,18 @@ ] } ], - "configFile": "sqladmin_v1beta4.yaml" + "configFile": "sqladmin_v1beta4.yaml", + "serviceConfigApiNames": [ + "google.cloud.sql.v1beta4.SqlBackupRunsService", + "google.cloud.sql.v1beta4.SqlConnectService", + "google.cloud.sql.v1beta4.SqlDatabasesService", + "google.cloud.sql.v1beta4.SqlFlagsService", + "google.cloud.sql.v1beta4.SqlInstancesService", + "google.cloud.sql.v1beta4.SqlOperationsService", + "google.cloud.sql.v1beta4.SqlSslCertsService", + "google.cloud.sql.v1beta4.SqlTiersService", + "google.cloud.sql.v1beta4.SqlUsersService" + ] }, { "id": "google.cloud.talent.v4", @@ -59997,7 +70930,15 @@ ] } ], - "configFile": "jobs_v4.yaml" + "configFile": "jobs_v4.yaml", + "serviceConfigApiNames": [ + "google.cloud.talent.v4.CompanyService", + "google.cloud.talent.v4.Completion", + "google.cloud.talent.v4.EventService", + "google.cloud.talent.v4.JobService", + "google.cloud.talent.v4.TenantService", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.talent.v4beta1", @@ -60018,87 +70959,26 @@ "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent": 17 + "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent": 13 } }, "java_multiple_files": { "valueCounts": { - "true": 17 + "true": 13 } }, "java_package": { "valueCounts": { - "com.google.cloud.talent.v4beta1": 17 + "com.google.cloud.talent.v4beta1": 13 } }, "objc_class_prefix": { "valueCounts": { - "CTS": 17 + "CTS": 13 } } }, "services": [ - { - "shortName": "ApplicationService", - "fullName": "google.cloud.talent.v4beta1.ApplicationService", - "methods": [ - { - "shortName": "CreateApplication", - "fullName": "google.cloud.talent.v4beta1.ApplicationService.CreateApplication", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v4beta1/{parent=projects/*/tenants/*/profiles/*}/applications" - } - ] - }, - { - "shortName": "DeleteApplication", - "fullName": "google.cloud.talent.v4beta1.ApplicationService.DeleteApplication", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v4beta1/{name=projects/*/tenants/*/profiles/*/applications/*}" - } - ] - }, - { - "shortName": "GetApplication", - "fullName": "google.cloud.talent.v4beta1.ApplicationService.GetApplication", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v4beta1/{name=projects/*/tenants/*/profiles/*/applications/*}" - } - ] - }, - { - "shortName": "ListApplications", - "fullName": "google.cloud.talent.v4beta1.ApplicationService.ListApplications", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v4beta1/{parent=projects/*/tenants/*/profiles/*}/applications" - } - ] - }, - { - "shortName": "UpdateApplication", - "fullName": "google.cloud.talent.v4beta1.ApplicationService.UpdateApplication", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v4beta1/{application.name=projects/*/tenants/*/profiles/*/applications/*}" - } - ] - } - ] - }, { "shortName": "CompanyService", "fullName": "google.cloud.talent.v4beta1.CompanyService", @@ -60378,78 +71258,6 @@ } ] }, - { - "shortName": "ProfileService", - "fullName": "google.cloud.talent.v4beta1.ProfileService", - "methods": [ - { - "shortName": "CreateProfile", - "fullName": "google.cloud.talent.v4beta1.ProfileService.CreateProfile", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v4beta1/{parent=projects/*/tenants/*}/profiles" - } - ] - }, - { - "shortName": "DeleteProfile", - "fullName": "google.cloud.talent.v4beta1.ProfileService.DeleteProfile", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v4beta1/{name=projects/*/tenants/*/profiles/*}" - } - ] - }, - { - "shortName": "GetProfile", - "fullName": "google.cloud.talent.v4beta1.ProfileService.GetProfile", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v4beta1/{name=projects/*/tenants/*/profiles/*}" - } - ] - }, - { - "shortName": "ListProfiles", - "fullName": "google.cloud.talent.v4beta1.ProfileService.ListProfiles", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v4beta1/{parent=projects/*/tenants/*}/profiles" - } - ] - }, - { - "shortName": "SearchProfiles", - "fullName": "google.cloud.talent.v4beta1.ProfileService.SearchProfiles", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v4beta1/{parent=projects/*/tenants/*}:search" - } - ] - }, - { - "shortName": "UpdateProfile", - "fullName": "google.cloud.talent.v4beta1.ProfileService.UpdateProfile", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v4beta1/{profile.name=projects/*/tenants/*/profiles/*}" - } - ] - } - ] - }, { "shortName": "TenantService", "fullName": "google.cloud.talent.v4beta1.TenantService", @@ -60512,7 +71320,15 @@ ] } ], - "configFile": "jobs_v4beta1.yaml" + "configFile": "jobs_v4beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.talent.v4beta1.CompanyService", + "google.cloud.talent.v4beta1.Completion", + "google.cloud.talent.v4beta1.EventService", + "google.cloud.talent.v4beta1.JobService", + "google.cloud.talent.v4beta1.TenantService", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.tasks.v2", @@ -60736,7 +71552,10 @@ ] } ], - "configFile": "cloudtasks_v2.yaml" + "configFile": "cloudtasks_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.tasks.v2.CloudTasks" + ] }, { "id": "google.cloud.tasks.v2beta2", @@ -61004,7 +71823,10 @@ ] } ], - "configFile": "cloudtasks_v2beta2.yaml" + "configFile": "cloudtasks_v2beta2.yaml", + "serviceConfigApiNames": [ + "google.cloud.tasks.v2beta2.CloudTasks" + ] }, { "id": "google.cloud.tasks.v2beta3", @@ -61228,7 +72050,10 @@ ] } ], - "configFile": "cloudtasks_v2beta3.yaml" + "configFile": "cloudtasks_v2beta3.yaml", + "serviceConfigApiNames": [ + "google.cloud.tasks.v2beta3.CloudTasks" + ] }, { "id": "google.cloud.texttospeech.v1", @@ -61308,7 +72133,10 @@ ] } ], - "configFile": "texttospeech_v1.yaml" + "configFile": "texttospeech_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.texttospeech.v1.TextToSpeech" + ] }, { "id": "google.cloud.texttospeech.v1beta1", @@ -61388,7 +72216,149 @@ ] } ], - "configFile": "texttospeech_v1beta1.yaml" + "configFile": "texttospeech_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.texttospeech.v1beta1.TextToSpeech" + ] + }, + { + "id": "google.cloud.timeseriesinsights.v1", + "directory": "google/cloud/timeseriesinsights/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "timeseriesinsights.googleapis.com", + "title": "Timeseries Insights API", + "description": "Provides a Timeseries Insights service which operates over time series data. Users can perform time series spike, trend, and anomaly detection. With a straightforward API and easy to understand results, the service makes it simple to gather insights from large amounts of time series data (e.g. monitoring datasets) and integrate these insights in their applications.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/rpc" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 1 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/timeseriesinsights/v1;timeseriesinsights": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.timeseriesinsights.v1": 1 + } + } + }, + "services": [ + { + "shortName": "TimeseriesInsightsController", + "fullName": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController", + "methods": [ + { + "shortName": "AppendEvents", + "fullName": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.AppendEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{dataset=projects/*/locations/*/datasets/*}:appendEvents" + }, + { + "httpMethod": "POST", + "path": "/v1/{dataset=projects/*/datasets/*}:appendEvents" + } + ] + }, + { + "shortName": "CreateDataSet", + "fullName": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.CreateDataSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/datasets" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/datasets" + } + ] + }, + { + "shortName": "DeleteDataSet", + "fullName": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.DeleteDataSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/datasets/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/datasets/*}" + } + ] + }, + { + "shortName": "EvaluateSlice", + "fullName": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.EvaluateSlice", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{dataset=projects/*/locations/*/datasets/*}:evaluateSlice" + }, + { + "httpMethod": "POST", + "path": "/v1/{dataset=projects/*/datasets/*}:evaluateSlice" + } + ] + }, + { + "shortName": "ListDataSets", + "fullName": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.ListDataSets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/datasets" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/datasets" + } + ] + }, + { + "shortName": "QueryDataSet", + "fullName": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.QueryDataSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/datasets/*}:query" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/datasets/*}:query" + } + ] + } + ] + } + ], + "configFile": "timeseriesinsights_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController" + ] }, { "id": "google.cloud.tpu.v1", @@ -61549,7 +72519,10 @@ ] } ], - "configFile": "tpu_v1.yaml" + "configFile": "tpu_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.tpu.v1.Tpu" + ] }, { "id": "google.cloud.tpu.v2alpha1", @@ -61732,7 +72705,10 @@ ] } ], - "configFile": "tpu.yaml" + "configFile": "tpu.yaml", + "serviceConfigApiNames": [ + "google.cloud.tpu.v2alpha1.Tpu" + ] }, { "id": "google.cloud.translate.v3", @@ -61745,8 +72721,7 @@ "importDirectories": [ "google/api", "google/longrunning", - "google/protobuf", - "google/rpc" + "google/protobuf" ], "options": { "cc_enable_arenas": { @@ -61915,7 +72890,10 @@ ] } ], - "configFile": "translate_v3.yaml" + "configFile": "translate_v3.yaml", + "serviceConfigApiNames": [ + "google.cloud.translation.v3.TranslationService" + ] }, { "id": "google.cloud.translate.v3beta1", @@ -61928,8 +72906,7 @@ "importDirectories": [ "google/api", "google/longrunning", - "google/protobuf", - "google/rpc" + "google/protobuf" ], "options": { "cc_enable_arenas": { @@ -62098,7 +73075,10 @@ ] } ], - "configFile": "translate_v3beta1.yaml" + "configFile": "translate_v3beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.translation.v3beta1.TranslationService" + ] }, { "id": "google.cloud.video.livestream.v1", @@ -62331,7 +73311,273 @@ ] } ], - "configFile": "livestream_v1.yaml" + "configFile": "livestream_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.video.livestream.v1.LivestreamService" + ] + }, + { + "id": "google.cloud.video.stitcher.v1", + "directory": "google/cloud/video/stitcher/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "videostitcher.googleapis.com", + "title": "Video Stitcher API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/video/stitcher/v1", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher": 8 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 8 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.video.stitcher.v1": 8 + } + } + }, + "services": [ + { + "shortName": "VideoStitcherService", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService", + "methods": [ + { + "shortName": "CreateCdnKey", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.CreateCdnKey", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/cdnKeys" + } + ] + }, + { + "shortName": "CreateLiveSession", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.CreateLiveSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/liveSessions" + } + ] + }, + { + "shortName": "CreateSlate", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.CreateSlate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/slates" + } + ] + }, + { + "shortName": "CreateVodSession", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.CreateVodSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/vodSessions" + } + ] + }, + { + "shortName": "DeleteCdnKey", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.DeleteCdnKey", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/cdnKeys/*}" + } + ] + }, + { + "shortName": "DeleteSlate", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.DeleteSlate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/slates/*}" + } + ] + }, + { + "shortName": "GetCdnKey", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetCdnKey", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/cdnKeys/*}" + } + ] + }, + { + "shortName": "GetLiveAdTagDetail", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetLiveAdTagDetail", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/liveSessions/*/liveAdTagDetails/*}" + } + ] + }, + { + "shortName": "GetLiveSession", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetLiveSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/liveSessions/*}" + } + ] + }, + { + "shortName": "GetSlate", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetSlate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/slates/*}" + } + ] + }, + { + "shortName": "GetVodAdTagDetail", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetVodAdTagDetail", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/vodSessions/*/vodAdTagDetails/*}" + } + ] + }, + { + "shortName": "GetVodSession", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetVodSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/vodSessions/*}" + } + ] + }, + { + "shortName": "GetVodStitchDetail", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetVodStitchDetail", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/vodSessions/*/vodStitchDetails/*}" + } + ] + }, + { + "shortName": "ListCdnKeys", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.ListCdnKeys", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/cdnKeys" + } + ] + }, + { + "shortName": "ListLiveAdTagDetails", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.ListLiveAdTagDetails", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/liveSessions/*}/liveAdTagDetails" + } + ] + }, + { + "shortName": "ListSlates", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.ListSlates", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/slates" + } + ] + }, + { + "shortName": "ListVodAdTagDetails", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.ListVodAdTagDetails", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/vodSessions/*}/vodAdTagDetails" + } + ] + }, + { + "shortName": "ListVodStitchDetails", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.ListVodStitchDetails", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/vodSessions/*}/vodStitchDetails" + } + ] + }, + { + "shortName": "UpdateCdnKey", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.UpdateCdnKey", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{cdn_key.name=projects/*/locations/*/cdnKeys/*}" + } + ] + }, + { + "shortName": "UpdateSlate", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.UpdateSlate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{slate.name=projects/*/locations/*/slates/*}" + } + ] + } + ] + } + ], + "configFile": "videostitcher_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.video.stitcher.v1.VideoStitcherService" + ] }, { "id": "google.cloud.video.transcoder.v1", @@ -62478,135 +73724,10 @@ ] } ], - "configFile": "transcoder_v1.yaml" - }, - { - "id": "google.cloud.video.transcoder.v1beta1", - "directory": "google/cloud/video/transcoder/v1beta1", - "version": "v1beta1", - "majorVersion": "v1", - "hostName": "transcoder.googleapis.com", - "title": "Transcoder API", - "description": "This API converts video files into formats suitable for consumer distribution.", - "importDirectories": [ - "google/api", - "google/cloud/video/transcoder/v1beta1", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/video/transcoder/v1beta1;transcoder": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.video.transcoder.v1beta1": 2 - } - } - }, - "services": [ - { - "shortName": "TranscoderService", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService", - "methods": [ - { - "shortName": "CreateJob", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService.CreateJob", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/jobs" - } - ] - }, - { - "shortName": "CreateJobTemplate", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService.CreateJobTemplate", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/jobTemplates" - } - ] - }, - { - "shortName": "DeleteJob", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService.DeleteJob", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/jobs/*}" - } - ] - }, - { - "shortName": "DeleteJobTemplate", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService.DeleteJobTemplate", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/jobTemplates/*}" - } - ] - }, - { - "shortName": "GetJob", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService.GetJob", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/jobs/*}" - } - ] - }, - { - "shortName": "GetJobTemplate", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService.GetJobTemplate", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/jobTemplates/*}" - } - ] - }, - { - "shortName": "ListJobTemplates", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService.ListJobTemplates", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/jobTemplates" - } - ] - }, - { - "shortName": "ListJobs", - "fullName": "google.cloud.video.transcoder.v1beta1.TranscoderService.ListJobs", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/jobs" - } - ] - } - ] - } - ], - "configFile": "transcoder_v1beta1.yaml" + "configFile": "transcoder_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.video.transcoder.v1.TranscoderService" + ] }, { "id": "google.cloud.videointelligence.v1", @@ -62673,7 +73794,10 @@ ] } ], - "configFile": "videointelligence_v1.yaml" + "configFile": "videointelligence_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.videointelligence.v1.VideoIntelligenceService" + ] }, { "id": "google.cloud.videointelligence.v1p3beta1", @@ -62751,7 +73875,11 @@ ] } ], - "configFile": "videointelligence_v1p3beta1.yaml" + "configFile": "videointelligence_v1p3beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.videointelligence.v1p3beta1.StreamingVideoIntelligenceService", + "google.cloud.videointelligence.v1p3beta1.VideoIntelligenceService" + ] }, { "id": "google.cloud.vision.v1", @@ -63095,7 +74223,11 @@ ] } ], - "configFile": "vision_v1.yaml" + "configFile": "vision_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.vision.v1.ImageAnnotator", + "google.cloud.vision.v1.ProductSearch" + ] }, { "id": "google.cloud.vision.v1p1beta1", @@ -63152,7 +74284,10 @@ ] } ], - "configFile": "vision_v1p1beta1.yaml" + "configFile": "vision_v1p1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.vision.v1p1beta1.ImageAnnotator" + ] }, { "id": "google.cloud.vision.v1p2beta1", @@ -63222,7 +74357,10 @@ ] } ], - "configFile": "vision_v1p2beta1.yaml" + "configFile": "vision_v1p2beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.vision.v1p2beta1.ImageAnnotator" + ] }, { "id": "google.cloud.vision.v1p3beta1", @@ -63260,6 +74398,12 @@ "valueCounts": { "com.google.cloud.vision.v1p3beta1": 6 } + }, + "objc_class_prefix": { + "valueCounts": { + "": 4, + "GCVN": 2 + } } }, "services": [ @@ -63496,7 +74640,11 @@ ] } ], - "configFile": "vision_v1p3beta1.yaml" + "configFile": "vision_v1p3beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.vision.v1p3beta1.ImageAnnotator", + "google.cloud.vision.v1p3beta1.ProductSearch" + ] }, { "id": "google.cloud.vision.v1p4beta1", @@ -63808,7 +74956,11 @@ ] } ], - "configFile": "vision_v1p4beta1.yaml" + "configFile": "vision_v1p4beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.vision.v1p4beta1.ImageAnnotator", + "google.cloud.vision.v1p4beta1.ProductSearch" + ] }, { "id": "google.cloud.vmmigration.v1", @@ -63817,7 +74969,7 @@ "majorVersion": "v1", "hostName": "vmmigration.googleapis.com", "title": "VM Migration API", - "description": "Use the Migrate for Compute Engine API to programmatically migrate workloads.", + "description": "Use the Migrate to Virtual Machines API to programmatically migrate workloads.", "importDirectories": [ "google/api", "google/longrunning", @@ -64333,11 +75485,25 @@ "path": "/v1/{target_project.name=projects/*/locations/*/targetProjects/*}" } ] + }, + { + "shortName": "UpgradeAppliance", + "fullName": "google.cloud.vmmigration.v1.VmMigration.UpgradeAppliance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{datacenter_connector=projects/*/locations/*/sources/*/datacenterConnectors/*}:upgradeAppliance" + } + ] } ] } ], - "configFile": "vmmigration_v1.yaml" + "configFile": "vmmigration_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.vmmigration.v1.VmMigration" + ] }, { "id": "google.cloud.vpcaccess.v1", @@ -64436,7 +75602,12 @@ ] } ], - "configFile": "vpcaccess_v1.yaml" + "configFile": "vpcaccess_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.vpcaccess.v1.VpcAccessService", + "google.longrunning.Operations" + ] }, { "id": "google.cloud.webrisk.v1", @@ -64539,7 +75710,10 @@ ] } ], - "configFile": "webrisk_v1.yaml" + "configFile": "webrisk_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.webrisk.v1.WebRiskService" + ] }, { "id": "google.cloud.webrisk.v1beta1", @@ -64631,7 +75805,10 @@ ] } ], - "configFile": "webrisk_v1beta1.yaml" + "configFile": "webrisk_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1" + ] }, { "id": "google.cloud.websecurityscanner.v1", @@ -64649,32 +75826,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.WebSecurityScanner.V1": 10 + "Google.Cloud.WebSecurityScanner.V1": 11 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1;websecurityscanner": 10 + "google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1;websecurityscanner": 11 } }, "java_multiple_files": { "valueCounts": { - "true": 10 + "true": 11 } }, "java_package": { "valueCounts": { - "com.google.cloud.websecurityscanner.v1": 10 + "com.google.cloud.websecurityscanner.v1": 11 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\WebSecurityScanner\\V1": 10 + "Google\\Cloud\\WebSecurityScanner\\V1": 11 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::WebSecurityScanner::V1": 10 + "Google::Cloud::WebSecurityScanner::V1": 11 } } }, @@ -64829,7 +76006,10 @@ ] } ], - "configFile": "websecurityscanner_v1.yaml" + "configFile": "websecurityscanner_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.websecurityscanner.v1.WebSecurityScanner" + ] }, { "id": "google.cloud.websecurityscanner.v1alpha", @@ -65012,7 +76192,10 @@ ] } ], - "configFile": "websecurityscanner_v1alpha.yaml" + "configFile": "websecurityscanner_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.websecurityscanner.v1alpha.WebSecurityScanner" + ] }, { "id": "google.cloud.websecurityscanner.v1beta", @@ -65210,7 +76393,10 @@ ] } ], - "configFile": "websecurityscanner_v1beta.yaml" + "configFile": "websecurityscanner_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.websecurityscanner.v1beta.WebSecurityScanner" + ] }, { "id": "google.cloud.workflows.executions.v1", @@ -65293,7 +76479,10 @@ ] } ], - "configFile": "workflowexecutions_v1.yaml" + "configFile": "workflowexecutions_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.workflows.executions.v1.Executions" + ] }, { "id": "google.cloud.workflows.executions.v1beta", @@ -65376,7 +76565,10 @@ ] } ], - "configFile": "workflowexecutions_v1beta.yaml" + "configFile": "workflowexecutions_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.workflows.executions.v1beta.Executions" + ] }, { "id": "google.cloud.workflows.v1", @@ -65471,7 +76663,10 @@ ] } ], - "configFile": "workflows_v1.yaml" + "configFile": "workflows_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.workflows.v1.Workflows" + ] }, { "id": "google.cloud.workflows.v1beta", @@ -65566,7 +76761,10 @@ ] } ], - "configFile": "workflows_v1beta.yaml" + "configFile": "workflows_v1beta.yaml", + "serviceConfigApiNames": [ + "google.cloud.workflows.v1beta.Workflows" + ] }, { "id": "google.container.v1", @@ -65648,6 +76846,17 @@ } ] }, + { + "shortName": "CompleteNodePoolUpgrade", + "fullName": "google.container.v1.ClusterManager.CompleteNodePoolUpgrade", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}:completeUpgrade" + } + ] + }, { "shortName": "CreateCluster", "fullName": "google.container.v1.ClusterManager.CreateCluster", @@ -66093,7 +77302,10 @@ ] } ], - "configFile": "container_v1.yaml" + "configFile": "container_v1.yaml", + "serviceConfigApiNames": [ + "google.container.v1.ClusterManager" + ] }, { "id": "google.container.v1beta1", @@ -66176,6 +77388,17 @@ } ] }, + { + "shortName": "CompleteNodePoolUpgrade", + "fullName": "google.container.v1beta1.ClusterManager.CompleteNodePoolUpgrade", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}:completeUpgrade" + } + ] + }, { "shortName": "CreateCluster", "fullName": "google.container.v1beta1.ClusterManager.CreateCluster", @@ -66632,7 +77855,10 @@ ] } ], - "configFile": "container_v1beta1.yaml" + "configFile": "container_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.container.v1beta1.ClusterManager" + ] }, { "id": "google.dataflow.v1beta3", @@ -66688,7 +77914,13 @@ { "shortName": "LaunchFlexTemplate", "fullName": "google.dataflow.v1beta3.FlexTemplatesService.LaunchFlexTemplate", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/locations/{location}/flexTemplates:launch" + } + ] } ] }, @@ -66699,7 +77931,13 @@ { "shortName": "AggregatedListJobs", "fullName": "google.dataflow.v1beta3.JobsV1Beta3.AggregatedListJobs", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/jobs:aggregated" + } + ] }, { "shortName": "CheckActiveJobs", @@ -66709,27 +77947,77 @@ { "shortName": "CreateJob", "fullName": "google.dataflow.v1beta3.JobsV1Beta3.CreateJob", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs" + }, + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/jobs" + } + ] }, { "shortName": "GetJob", "fullName": "google.dataflow.v1beta3.JobsV1Beta3.GetJob", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}" + }, + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/jobs/{job_id}" + } + ] }, { "shortName": "ListJobs", "fullName": "google.dataflow.v1beta3.JobsV1Beta3.ListJobs", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs" + }, + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/jobs" + } + ] }, { "shortName": "SnapshotJob", "fullName": "google.dataflow.v1beta3.JobsV1Beta3.SnapshotJob", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}:snapshot" + }, + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/jobs/{job_id}:snapshot" + } + ] }, { "shortName": "UpdateJob", "fullName": "google.dataflow.v1beta3.JobsV1Beta3.UpdateJob", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}" + }, + { + "httpMethod": "PUT", + "path": "/v1b3/projects/{project_id}/jobs/{job_id}" + } + ] } ] }, @@ -66740,7 +78028,17 @@ { "shortName": "ListJobMessages", "fullName": "google.dataflow.v1beta3.MessagesV1Beta3.ListJobMessages", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/messages" + }, + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/jobs/{job_id}/messages" + } + ] } ] }, @@ -66751,17 +78049,39 @@ { "shortName": "GetJobExecutionDetails", "fullName": "google.dataflow.v1beta3.MetricsV1Beta3.GetJobExecutionDetails", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/executionDetails" + } + ] }, { "shortName": "GetJobMetrics", "fullName": "google.dataflow.v1beta3.MetricsV1Beta3.GetJobMetrics", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/metrics" + }, + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/jobs/{job_id}/metrics" + } + ] }, { "shortName": "GetStageExecutionDetails", "fullName": "google.dataflow.v1beta3.MetricsV1Beta3.GetStageExecutionDetails", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/stages/{stage_id}/executionDetails" + } + ] } ] }, @@ -66772,17 +78092,51 @@ { "shortName": "DeleteSnapshot", "fullName": "google.dataflow.v1beta3.SnapshotsV1Beta3.DeleteSnapshot", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1b3/projects/{project_id}/locations/{location}/snapshots/{snapshot_id}" + }, + { + "httpMethod": "DELETE", + "path": "/v1b3/projects/{project_id}/snapshots" + } + ] }, { "shortName": "GetSnapshot", "fullName": "google.dataflow.v1beta3.SnapshotsV1Beta3.GetSnapshot", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/snapshots/{snapshot_id}" + }, + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/snapshots/{snapshot_id}" + } + ] }, { "shortName": "ListSnapshots", "fullName": "google.dataflow.v1beta3.SnapshotsV1Beta3.ListSnapshots", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/snapshots" + }, + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/snapshots" + }, + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/snapshots" + } + ] } ] }, @@ -66793,22 +78147,60 @@ { "shortName": "CreateJobFromTemplate", "fullName": "google.dataflow.v1beta3.TemplatesService.CreateJobFromTemplate", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/locations/{location}/templates" + }, + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/templates" + } + ] }, { "shortName": "GetTemplate", "fullName": "google.dataflow.v1beta3.TemplatesService.GetTemplate", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/locations/{location}/templates:get" + }, + { + "httpMethod": "GET", + "path": "/v1b3/projects/{project_id}/templates:get" + } + ] }, { "shortName": "LaunchTemplate", "fullName": "google.dataflow.v1beta3.TemplatesService.LaunchTemplate", - "mode": "UNARY" + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/locations/{location}/templates:launch" + }, + { + "httpMethod": "POST", + "path": "/v1b3/projects/{project_id}/templates:launch" + } + ] } ] } ], - "configFile": "dataflow_v1beta3.yaml" + "configFile": "dataflow_v1beta3.yaml", + "serviceConfigApiNames": [ + "google.dataflow.v1beta3.FlexTemplatesService", + "google.dataflow.v1beta3.JobsV1Beta3", + "google.dataflow.v1beta3.MessagesV1Beta3", + "google.dataflow.v1beta3.MetricsV1Beta3", + "google.dataflow.v1beta3.SnapshotsV1Beta3", + "google.dataflow.v1beta3.TemplatesService" + ] }, { "id": "google.datastore.admin.v1", @@ -66930,7 +78322,11 @@ ] } ], - "configFile": "datastore_v1.yaml" + "configFile": "datastore_v1.yaml", + "serviceConfigApiNames": [ + "google.datastore.admin.v1.DatastoreAdmin", + "google.longrunning.Operations" + ] }, { "id": "google.datastore.v1", @@ -67063,7 +78459,11 @@ ] } ], - "configFile": "datastore_v1.yaml" + "configFile": "datastore_v1.yaml", + "serviceConfigApiNames": [ + "google.datastore.v1.Datastore", + "google.longrunning.Operations" + ] }, { "id": "google.devtools.artifactregistry.v1", @@ -67077,37 +78477,39 @@ "google/api", "google/devtools/artifactregistry/v1", "google/iam/v1", - "google/protobuf" + "google/longrunning", + "google/protobuf", + "google/rpc" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.ArtifactRegistry.V1": 3 + "Google.Cloud.ArtifactRegistry.V1": 10 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry": 3 + "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry": 10 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 10 } }, "java_package": { "valueCounts": { - "com.google.devtools.artifactregistry.v1": 3 + "com.google.devtools.artifactregistry.v1": 10 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\ArtifactRegistry\\V1": 3 + "Google\\Cloud\\ArtifactRegistry\\V1": 10 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::ArtifactRegistry::V1": 3 + "Google::Cloud::ArtifactRegistry::V1": 10 } } }, @@ -67116,6 +78518,127 @@ "shortName": "ArtifactRegistry", "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry", "methods": [ + { + "shortName": "CreateRepository", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.CreateRepository", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/repositories" + } + ] + }, + { + "shortName": "CreateTag", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.CreateTag", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/tags" + } + ] + }, + { + "shortName": "DeletePackage", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.DeletePackage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/repositories/*/packages/*}" + } + ] + }, + { + "shortName": "DeleteRepository", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteRepository", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/repositories/*}" + } + ] + }, + { + "shortName": "DeleteTag", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteTag", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/repositories/*/packages/*/tags/*}" + } + ] + }, + { + "shortName": "DeleteVersion", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/repositories/*/packages/*/versions/*}" + } + ] + }, + { + "shortName": "GetDockerImage", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.GetDockerImage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/repositories/*/dockerImages/*}" + } + ] + }, + { + "shortName": "GetFile", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.GetFile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/repositories/*/files/**}" + } + ] + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{resource=projects/*/locations/*/repositories/*}:getIamPolicy" + } + ] + }, + { + "shortName": "GetPackage", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.GetPackage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/repositories/*/packages/*}" + } + ] + }, + { + "shortName": "GetProjectSettings", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.GetProjectSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/projectSettings}" + } + ] + }, { "shortName": "GetRepository", "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.GetRepository", @@ -67127,6 +78650,50 @@ } ] }, + { + "shortName": "GetTag", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.GetTag", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/repositories/*/packages/*/tags/*}" + } + ] + }, + { + "shortName": "GetVersion", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.GetVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/repositories/*/packages/*/versions/*}" + } + ] + }, + { + "shortName": "ImportAptArtifacts", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.ImportAptArtifacts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/repositories/*}/aptArtifacts:import" + } + ] + }, + { + "shortName": "ImportYumArtifacts", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.ImportYumArtifacts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/repositories/*}/yumArtifacts:import" + } + ] + }, { "shortName": "ListDockerImages", "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.ListDockerImages", @@ -67138,6 +78705,28 @@ } ] }, + { + "shortName": "ListFiles", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.ListFiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/repositories/*}/files" + } + ] + }, + { + "shortName": "ListPackages", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.ListPackages", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/repositories/*}/packages" + } + ] + }, { "shortName": "ListRepositories", "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.ListRepositories", @@ -67148,11 +78737,91 @@ "path": "/v1/{parent=projects/*/locations/*}/repositories" } ] + }, + { + "shortName": "ListTags", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.ListTags", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/tags" + } + ] + }, + { + "shortName": "ListVersions", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.ListVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/versions" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/repositories/*}:setIamPolicy" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/repositories/*}:testIamPermissions" + } + ] + }, + { + "shortName": "UpdateProjectSettings", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateProjectSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{project_settings.name=projects/*/projectSettings}" + } + ] + }, + { + "shortName": "UpdateRepository", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateRepository", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{repository.name=projects/*/locations/*/repositories/*}" + } + ] + }, + { + "shortName": "UpdateTag", + "fullName": "google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateTag", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{tag.name=projects/*/locations/*/repositories/*/packages/*/tags/*}" + } + ] } ] } ], - "configFile": "artifactregistry_v1.yaml" + "configFile": "artifactregistry_v1.yaml", + "serviceConfigApiNames": [ + "google.devtools.artifactregistry.v1.ArtifactRegistry" + ] }, { "id": "google.devtools.artifactregistry.v1beta2", @@ -67485,7 +79154,10 @@ ] } ], - "configFile": "artifactregistry_v1beta2.yaml" + "configFile": "artifactregistry_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.devtools.artifactregistry.v1beta2.ArtifactRegistry" + ] }, { "id": "google.devtools.build.v1", @@ -67565,7 +79237,10 @@ ] } ], - "configFile": "buildeventservice_v1.yaml" + "configFile": "buildeventservice_v1.yaml", + "serviceConfigApiNames": [ + "google.devtools.build.v1.PublishBuildEvent" + ] }, { "id": "google.devtools.cloudbuild.v1", @@ -67870,7 +79545,10 @@ ] } ], - "configFile": "cloudbuild_v1.yaml" + "configFile": "cloudbuild_v1.yaml", + "serviceConfigApiNames": [ + "google.devtools.cloudbuild.v1.CloudBuild" + ] }, { "id": "google.devtools.clouddebugger.v2", @@ -68026,7 +79704,11 @@ ] } ], - "configFile": "clouddebugger_v2.yaml" + "configFile": "clouddebugger_v2.yaml", + "serviceConfigApiNames": [ + "google.devtools.clouddebugger.v2.Controller2", + "google.devtools.clouddebugger.v2.Debugger2" + ] }, { "id": "google.devtools.clouderrorreporting.v1beta1", @@ -68164,7 +79846,12 @@ ] } ], - "configFile": "clouderrorreporting_v1beta1.yaml" + "configFile": "clouderrorreporting_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService", + "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService", + "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService" + ] }, { "id": "google.devtools.cloudprofiler.v2", @@ -68251,7 +79938,10 @@ ] } ], - "configFile": "cloudprofiler_v2.yaml" + "configFile": "cloudprofiler_v2.yaml", + "serviceConfigApiNames": [ + "google.devtools.cloudprofiler.v2.ProfilerService" + ] }, { "id": "google.devtools.cloudtrace.v1", @@ -68338,7 +80028,10 @@ ] } ], - "configFile": "cloudtrace_v1.yaml" + "configFile": "cloudtrace_v1.yaml", + "serviceConfigApiNames": [ + "google.devtools.cloudtrace.v1.TraceService" + ] }, { "id": "google.devtools.cloudtrace.v2", @@ -68416,7 +80109,10 @@ ] } ], - "configFile": "cloudtrace_v2.yaml" + "configFile": "cloudtrace_v2.yaml", + "serviceConfigApiNames": [ + "google.devtools.cloudtrace.v2.TraceService" + ] }, { "id": "google.devtools.containeranalysis.v1", @@ -68429,7 +80125,6 @@ "importDirectories": [ "google/api", "google/iam/v1", - "google/protobuf", "grafeas/v1" ], "options": { @@ -68533,7 +80228,10 @@ ] } ], - "configFile": "containeranalysis_v1.yaml" + "configFile": "containeranalysis_v1.yaml", + "serviceConfigApiNames": [ + "google.devtools.containeranalysis.v1.ContainerAnalysis" + ] }, { "id": "google.devtools.containeranalysis.v1beta1", @@ -68863,7 +80561,10 @@ ] } ], - "configFile": "containeranalysis_v1beta1.yaml" + "configFile": "containeranalysis_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1" + ] }, { "id": "google.devtools.remoteworkers.v1test2", @@ -68941,7 +80642,10 @@ ] } ], - "configFile": "remoteworkers_v1beta2.yaml" + "configFile": "remoteworkers_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.devtools.remoteworkers.v1test2.Bots" + ] }, { "id": "google.devtools.resultstore.v2", @@ -69470,7 +81174,12 @@ ] } ], - "configFile": "resultstore_v2.yaml" + "configFile": "resultstore_v2.yaml", + "serviceConfigApiNames": [ + "google.devtools.resultstore.v2.ResultStoreDownload", + "google.devtools.resultstore.v2.ResultStoreFileDownload", + "google.devtools.resultstore.v2.ResultStoreUpload" + ] }, { "id": "google.devtools.testing.v1", @@ -69578,7 +81287,12 @@ ] } ], - "configFile": "testing_v1.yaml" + "configFile": "testing_v1.yaml", + "serviceConfigApiNames": [ + "google.devtools.testing.v1.ApplicationDetailService", + "google.devtools.testing.v1.TestEnvironmentDiscoveryService", + "google.devtools.testing.v1.TestExecutionService" + ] }, { "id": "google.firestore.admin.v1", @@ -69592,8 +81306,7 @@ "google/api", "google/firestore/admin/v1", "google/longrunning", - "google/protobuf", - "google/type" + "google/protobuf" ], "options": { "csharp_namespace": { @@ -69772,7 +81485,12 @@ ] } ], - "configFile": "firestore_v1.yaml" + "configFile": "firestore_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.firestore.admin.v1.FirestoreAdmin", + "google.longrunning.Operations" + ] }, { "id": "google.firestore.v1", @@ -69792,37 +81510,38 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Firestore.V1": 5 + "Google.Cloud.Firestore.V1": 6 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/firestore/v1;firestore": 5 + "google.golang.org/genproto/googleapis/firestore/v1;firestore": 6 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 6 } }, "java_package": { "valueCounts": { - "com.google.firestore.v1": 5 + "com.google.firestore.v1": 6 } }, "objc_class_prefix": { "valueCounts": { + "": 1, "GCFS": 5 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Firestore\\V1": 5 + "Google\\Cloud\\Firestore\\V1": 6 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Firestore::V1": 5 + "Google::Cloud::Firestore::V1": 6 } } }, @@ -69931,6 +81650,10 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/databases/*/documents}/{collection_id}" } ] }, @@ -69971,6 +81694,21 @@ } ] }, + { + "shortName": "RunAggregationQuery", + "fullName": "google.firestore.v1.Firestore.RunAggregationQuery", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/databases/*/documents}:runAggregationQuery" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/databases/*/documents/*/**}:runAggregationQuery" + } + ] + }, { "shortName": "RunQuery", "fullName": "google.firestore.v1.Firestore.RunQuery", @@ -70011,7 +81749,12 @@ ] } ], - "configFile": "firestore_v1.yaml" + "configFile": "firestore_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.firestore.v1.Firestore", + "google.longrunning.Operations" + ] }, { "id": "google.firestore.v1beta1", @@ -70250,7 +81993,10 @@ ] } ], - "configFile": "firestore_v1beta1.yaml" + "configFile": "firestore_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.firestore.v1beta1.Firestore" + ] }, { "id": "google.home.enterprise.sdm.v1", @@ -70382,7 +82128,10 @@ ] } ], - "configFile": "smartdevicemanagement_v1.yaml" + "configFile": "smartdevicemanagement_v1.yaml", + "serviceConfigApiNames": [ + "google.home.enterprise.sdm.v1.SmartDeviceManagementService" + ] }, { "id": "google.home.graph.v1", @@ -70477,7 +82226,10 @@ ] } ], - "configFile": "homegraph_v1.yaml" + "configFile": "homegraph_v1.yaml", + "serviceConfigApiNames": [ + "google.home.graph.v1.HomeGraphApiService" + ] }, { "id": "google.iam.admin.v1", @@ -70616,6 +82368,17 @@ } ] }, + { + "shortName": "DisableServiceAccountKey", + "fullName": "google.iam.admin.v1.IAM.DisableServiceAccountKey", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/serviceAccounts/*/keys/*}:disable" + } + ] + }, { "shortName": "EnableServiceAccount", "fullName": "google.iam.admin.v1.IAM.EnableServiceAccount", @@ -70627,6 +82390,17 @@ } ] }, + { + "shortName": "EnableServiceAccountKey", + "fullName": "google.iam.admin.v1.IAM.EnableServiceAccountKey", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/serviceAccounts/*/keys/*}:enable" + } + ] + }, { "shortName": "GetIamPolicy", "fullName": "google.iam.admin.v1.IAM.GetIamPolicy", @@ -70885,7 +82659,10 @@ ] } ], - "configFile": "iam.yaml" + "configFile": "iam.yaml", + "serviceConfigApiNames": [ + "google.iam.admin.v1.IAM" + ] }, { "id": "google.iam.credentials.v1", @@ -70925,6 +82702,11 @@ "valueCounts": { "com.google.cloud.iam.credentials.v1": 2 } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Iam\\Credentials\\V1": 2 + } } }, "services": [ @@ -70979,7 +82761,10 @@ ] } ], - "configFile": "iamcredentials_v1.yaml" + "configFile": "iamcredentials_v1.yaml", + "serviceConfigApiNames": [ + "google.iam.credentials.v1.IAMCredentials" + ] }, { "id": "google.iam.v1", @@ -70992,6 +82777,7 @@ "importDirectories": [ "google/api", "google/iam/v1", + "google/protobuf", "google/type" ], "options": { @@ -71072,7 +82858,10 @@ ] } ], - "configFile": "iam_meta_api.yaml" + "configFile": "iam_meta_api.yaml", + "serviceConfigApiNames": [ + "google.iam.v1.IAMPolicy" + ] }, { "id": "google.iam.v1beta", @@ -71244,7 +83033,232 @@ ] } ], - "configFile": "iam_v1beta.yaml" + "configFile": "iam_v1beta.yaml", + "serviceConfigApiNames": [ + "google.iam.v1beta.WorkloadIdentityPools" + ] + }, + { + "id": "google.iam.v2", + "directory": "google/iam/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "iam.googleapis.com", + "title": "Identity and Access Management (IAM) API", + "description": "Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls.", + "importDirectories": [ + "google/api", + "google/iam/v2", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Iam.V2": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/iam/v2;iam": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.iam.v2": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Iam\\V2": 2 + } + } + }, + "services": [ + { + "shortName": "Policies", + "fullName": "google.iam.v2.Policies", + "methods": [ + { + "shortName": "CreatePolicy", + "fullName": "google.iam.v2.Policies.CreatePolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=policies/*/*}" + } + ] + }, + { + "shortName": "DeletePolicy", + "fullName": "google.iam.v2.Policies.DeletePolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=policies/*/*/*}" + } + ] + }, + { + "shortName": "GetPolicy", + "fullName": "google.iam.v2.Policies.GetPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=policies/*/*/*}" + } + ] + }, + { + "shortName": "ListPolicies", + "fullName": "google.iam.v2.Policies.ListPolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=policies/*/*}" + } + ] + }, + { + "shortName": "UpdatePolicy", + "fullName": "google.iam.v2.Policies.UpdatePolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/v2/{policy.name=policies/*/*/*}" + } + ] + } + ] + } + ], + "configFile": "iam_v2.yaml", + "serviceConfigApiNames": [ + "google.iam.v2.Policies", + "google.longrunning.Operations" + ] + }, + { + "id": "google.iam.v2beta", + "directory": "google/iam/v2beta", + "version": "v2beta", + "majorVersion": "v2", + "hostName": "iam.googleapis.com", + "title": "Identity and Access Management (IAM) API", + "description": "Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls.", + "importDirectories": [ + "google/api", + "google/iam/v2beta", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Iam.V2Beta": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/iam/v2beta;iam": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.iam.v2beta": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Iam\\V2beta": 2 + } + } + }, + "services": [ + { + "shortName": "Policies", + "fullName": "google.iam.v2beta.Policies", + "methods": [ + { + "shortName": "CreatePolicy", + "fullName": "google.iam.v2beta.Policies.CreatePolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{parent=policies/*/*}" + } + ] + }, + { + "shortName": "DeletePolicy", + "fullName": "google.iam.v2beta.Policies.DeletePolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta/{name=policies/*/*/*}" + } + ] + }, + { + "shortName": "GetPolicy", + "fullName": "google.iam.v2beta.Policies.GetPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{name=policies/*/*/*}" + } + ] + }, + { + "shortName": "ListPolicies", + "fullName": "google.iam.v2beta.Policies.ListPolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{parent=policies/*/*}" + } + ] + }, + { + "shortName": "UpdatePolicy", + "fullName": "google.iam.v2beta.Policies.UpdatePolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/v2beta/{policy.name=policies/*/*/*}" + } + ] + } + ] + } + ], + "configFile": "iam_v2beta.yaml", + "serviceConfigApiNames": [ + "google.iam.v2beta.Policies", + "google.longrunning.Operations" + ] }, { "id": "google.identity.accesscontextmanager.v1", @@ -71560,7 +83574,10 @@ ] } ], - "configFile": "accesscontextmanager_v1.yaml" + "configFile": "accesscontextmanager_v1.yaml", + "serviceConfigApiNames": [ + "google.identity.accesscontextmanager.v1.AccessContextManager" + ] }, { "id": "google.logging.v2", @@ -71569,11 +83586,12 @@ "majorVersion": "v2", "hostName": "logging.googleapis.com", "title": "Cloud Logging API", - "description": "Writes log entries and manages your Cloud Logging configuration. The table entries below are presented in alphabetical order, not in order of common use. For explanations of the concepts found in the table entries, read the documentation at https://cloud.google.com/logging/docs.", + "description": "Writes log entries and manages your Cloud Logging configuration.", "importDirectories": [ "google/api", "google/logging/type", "google/logging/v2", + "google/longrunning", "google/protobuf", "google/rpc" ], @@ -71619,6 +83637,17 @@ "shortName": "ConfigServiceV2", "fullName": "google.logging.v2.ConfigServiceV2", "methods": [ + { + "shortName": "CopyLogEntries", + "fullName": "google.logging.v2.ConfigServiceV2.CopyLogEntries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/entries:copy" + } + ] + }, { "shortName": "CreateBucket", "fullName": "google.logging.v2.ConfigServiceV2.CreateBucket", @@ -71871,9 +83900,21 @@ "httpMethod": "GET", "path": "/v2/{name=*/*}/cmekSettings" }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*}/cmekSettings" + }, { "httpMethod": "GET", "path": "/v2/{name=organizations/*}/cmekSettings" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=folders/*}/cmekSettings" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=billingAccounts/*}/cmekSettings" } ] }, @@ -71904,6 +83945,33 @@ } ] }, + { + "shortName": "GetSettings", + "fullName": "google.logging.v2.ConfigServiceV2.GetSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=*/*}/settings" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*}/settings" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=organizations/*}/settings" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=folders/*}/settings" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=billingAccounts/*}/settings" + } + ] + }, { "shortName": "GetSink", "fullName": "google.logging.v2.ConfigServiceV2.GetSink", @@ -72162,6 +84230,25 @@ } ] }, + { + "shortName": "UpdateSettings", + "fullName": "google.logging.v2.ConfigServiceV2.UpdateSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{name=*/*}/settings" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{name=organizations/*}/settings" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{name=folders/*}/settings" + } + ] + }, { "shortName": "UpdateSink", "fullName": "google.logging.v2.ConfigServiceV2.UpdateSink", @@ -72400,7 +84487,103 @@ ] } ], - "configFile": "logging.yaml" + "configFile": "logging_v2.yaml", + "serviceConfigApiNames": [ + "google.logging.v2.ConfigServiceV2", + "google.logging.v2.LoggingServiceV2", + "google.logging.v2.MetricsServiceV2" + ] + }, + { + "id": "google.maps.addressvalidation.v1", + "directory": "google/maps/addressvalidation/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "addressvalidation.googleapis.com", + "title": "Address Validation API", + "description": "The Address Validation API allows developers to verify the accuracy of addresses. Given an address, it returns information about the correctness of the components of the parsed address, a geocode, and a verdict on the deliverability of the parsed address.", + "importDirectories": [ + "google/api", + "google/geo/type", + "google/maps/addressvalidation/v1", + "google/type" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 5 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Maps.AddressValidation.V1": 5 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/maps/addressvalidation/v1;addressvalidation": 5 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 5 + } + }, + "java_package": { + "valueCounts": { + "com.google.maps.addressvalidation.v1": 5 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GMPAVV1": 5 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Maps\\AddressValidation\\V1": 5 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Maps::AddressValidation::V1": 5 + } + } + }, + "services": [ + { + "shortName": "AddressValidation", + "fullName": "google.maps.addressvalidation.v1.AddressValidation", + "methods": [ + { + "shortName": "ProvideValidationFeedback", + "fullName": "google.maps.addressvalidation.v1.AddressValidation.ProvideValidationFeedback", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1:provideValidationFeedback" + } + ] + }, + { + "shortName": "ValidateAddress", + "fullName": "google.maps.addressvalidation.v1.AddressValidation.ValidateAddress", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1:validateAddress" + } + ] + } + ] + } + ], + "configFile": "addressvalidation_v1.yaml", + "serviceConfigApiNames": [ + "google.maps.addressvalidation.v1.AddressValidation" + ] }, { "id": "google.maps.fleetengine.delivery.v1", @@ -72409,34 +84592,33 @@ "majorVersion": "v1", "hostName": "fleetengine.googleapis.com", "title": "Local Rides and Deliveries API", - "description": "Enables Fleet Engine for access to the On Demand Rides and Deliveries and Last Mile Fleet Solution APIs.", + "description": "Enables Fleet Engine for access to the On Demand Rides and Deliveries and Last Mile Fleet Solution APIs. Customer's use of Google Maps Content in the Cloud Logging Services is subject to the Google Maps Platform Terms of Service located at https://cloud.google.com/maps-platform/terms.", "importDirectories": [ "google/api", "google/geo/type", "google/maps/fleetengine/delivery/v1", - "google/maps/fleetengine/v1", "google/protobuf", "google/type" ], "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/maps/fleetengine/delivery/v1;delivery": 3 + "google.golang.org/genproto/googleapis/maps/fleetengine/delivery/v1;delivery": 5 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 5 } }, "java_package": { "valueCounts": { - "google.maps.fleetengine.delivery.v1": 3 + "google.maps.fleetengine.delivery.v1": 5 } }, "objc_class_prefix": { "valueCounts": { - "CFE": 3 + "CFED": 5 } } }, @@ -72445,6 +84627,17 @@ "shortName": "DeliveryService", "fullName": "maps.fleetengine.delivery.v1.DeliveryService", "methods": [ + { + "shortName": "BatchCreateTasks", + "fullName": "maps.fleetengine.delivery.v1.DeliveryService.BatchCreateTasks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=providers/*}/tasks:batchCreate" + } + ] + }, { "shortName": "CreateDeliveryVehicle", "fullName": "maps.fleetengine.delivery.v1.DeliveryService.CreateDeliveryVehicle", @@ -72547,7 +84740,12 @@ ] } ], - "configFile": "fleetengine.yaml" + "configFile": "fleetengine.yaml", + "serviceConfigApiNames": [ + "maps.fleetengine.delivery.v1.DeliveryService", + "maps.fleetengine.v1.TripService", + "maps.fleetengine.v1.VehicleService" + ] }, { "id": "google.maps.fleetengine.v1", @@ -72742,7 +84940,153 @@ ] } ], - "configFile": "fleetengine.yaml" + "configFile": "fleetengine.yaml", + "serviceConfigApiNames": [ + "maps.fleetengine.v1.TripService", + "maps.fleetengine.v1.VehicleService" + ] + }, + { + "id": "google.maps.mapsplatformdatasets.v1alpha", + "directory": "google/maps/mapsplatformdatasets/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "mapsplatformdatasets.googleapis.com", + "title": "Maps Platform Datasets API", + "description": "mapsplatformdatasets.googleapis.com API.", + "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": { + "google.golang.org/genproto/googleapis/maps/mapsplatformdatasets/v1alpha;mapsplatformdatasets": 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" + } + ] + }, + { + "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", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/datasets/*}:listVersions" + } + ] + }, + { + "shortName": "ListDatasets", + "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.ListDatasets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*}/datasets" + } + ] + }, + { + "shortName": "UpdateDatasetMetadata", + "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.UpdateDatasetMetadata", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{dataset.name=projects/*/datasets/*}" + } + ] + } + ] + } + ], + "configFile": "mapsplatformdatasets_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha" + ] }, { "id": "google.maps.playablelocations.v3", @@ -72837,7 +85181,95 @@ ] } ], - "configFile": "playablelocations_v3.yaml" + "configFile": "playablelocations_v3.yaml", + "serviceConfigApiNames": [ + "google.maps.playablelocations.v3.PlayableLocations" + ] + }, + { + "id": "google.maps.regionlookup.v1alpha", + "directory": "google/maps/regionlookup/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "regionlookup.googleapis.com", + "title": "Region Lookup API", + "description": "regionlookup.googleapis.com API.", + "importDirectories": [ + "google/api", + "google/maps/regionlookup/v1alpha", + "google/type" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 4 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Maps.RegionLookup.V1Alpha": 4 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/maps/regionlookup/v1alpha;regionlookup": 4 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 4 + } + }, + "java_package": { + "valueCounts": { + "com.google.maps.regionlookup.v1alpha": 4 + } + }, + "objc_class_prefix": { + "valueCounts": { + "MRLV1A": 4 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Maps\\RegionLookup\\V1alpha": 4 + } + } + }, + "services": [ + { + "shortName": "RegionLookup", + "fullName": "google.maps.regionlookup.v1alpha.RegionLookup", + "methods": [ + { + "shortName": "LookupRegion", + "fullName": "google.maps.regionlookup.v1alpha.RegionLookup.LookupRegion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha:lookupRegion" + } + ] + }, + { + "shortName": "SearchRegion", + "fullName": "google.maps.regionlookup.v1alpha.RegionLookup.SearchRegion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha:searchRegion" + } + ] + } + ] + } + ], + "configFile": "regionlookup_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.maps.regionlookup.v1alpha.RegionLookup" + ] }, { "id": "google.maps.roads.v1op", @@ -72887,7 +85319,10 @@ ] } ], - "configFile": "roads_v1op.yaml" + "configFile": "roads_v1op.yaml", + "serviceConfigApiNames": [ + "google.maps.roads.v1op.RoadsService" + ] }, { "id": "google.maps.routes.v1", @@ -72983,7 +85418,11 @@ ] } ], - "configFile": "routespreferred.yaml" + "configFile": "routespreferred.yaml", + "serviceConfigApiNames": [ + "google.maps.routes.v1.RoutesPreferred", + "google.maps.routes.v1alpha.RoutesAlpha" + ] }, { "id": "google.maps.routes.v1alpha", @@ -73075,7 +85514,10 @@ ] } ], - "configFile": "routespreferred_v1alpha.yaml" + "configFile": "routespreferred_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.maps.routes.v1alpha.RoutesAlpha" + ] }, { "id": "google.maps.routespreferred.v1", @@ -73085,7 +85527,103 @@ "hostName": "routespreferred.googleapis.com", "title": "Routes Preferred API", "description": "", - "configFile": "routespreferred_v1.yaml" + "configFile": "routespreferred_v1.yaml", + "serviceConfigApiNames": [ + "google.maps.routes.v1.RoutesPreferred" + ] + }, + { + "id": "google.maps.routing.v2", + "directory": "google/maps/routing/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "routes.googleapis.com", + "title": "Routes API", + "description": "routes.googleapis.com API.", + "importDirectories": [ + "google/api", + "google/geo/type", + "google/maps/routing/v2", + "google/protobuf", + "google/rpc", + "google/type" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 17 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Maps.Routing.V2": 17 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/maps/routing/v2;routing": 17 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 17 + } + }, + "java_package": { + "valueCounts": { + "com.google.maps.routing.v2": 17 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GMRV2": 17 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Maps\\Routing\\V2": 17 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Maps::Routing::V2": 17 + } + } + }, + "services": [ + { + "shortName": "Routes", + "fullName": "google.maps.routing.v2.Routes", + "methods": [ + { + "shortName": "ComputeRouteMatrix", + "fullName": "google.maps.routing.v2.Routes.ComputeRouteMatrix", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/distanceMatrix/v2:computeRouteMatrix" + } + ] + }, + { + "shortName": "ComputeRoutes", + "fullName": "google.maps.routing.v2.Routes.ComputeRoutes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/directions/v2:computeRoutes" + } + ] + } + ] + } + ], + "configFile": "routes_v2.yaml", + "serviceConfigApiNames": [ + "google.maps.routing.v2.Routes" + ] }, { "id": "google.monitoring.dashboard.v1", @@ -73103,32 +85641,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Monitoring.Dashboard.V1": 12 + "Google.Cloud.Monitoring.Dashboard.V1": 17 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard": 12 + "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard": 17 } }, "java_multiple_files": { "valueCounts": { - "true": 12 + "true": 17 } }, "java_package": { "valueCounts": { - "com.google.monitoring.dashboard.v1": 12 + "com.google.monitoring.dashboard.v1": 17 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Monitoring\\Dashboard\\V1": 12 + "Google\\Cloud\\Monitoring\\Dashboard\\V1": 17 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Monitoring::Dashboard::V1": 12 + "Google::Cloud::Monitoring::Dashboard::V1": 17 } } }, @@ -73195,7 +85733,10 @@ ] } ], - "configFile": "monitoring.yaml" + "configFile": "monitoring.yaml", + "serviceConfigApiNames": [ + "google.monitoring.dashboard.v1.DashboardsService" + ] }, { "id": "google.monitoring.metricsscope.v1", @@ -73295,7 +85836,10 @@ ] } ], - "configFile": "monitoring.yaml" + "configFile": "monitoring.yaml", + "serviceConfigApiNames": [ + "google.monitoring.metricsscope.v1.MetricsScopes" + ] }, { "id": "google.monitoring.v3", @@ -73307,7 +85851,6 @@ "description": "Manages your Cloud Monitoring data and configurations.", "importDirectories": [ "google/api", - "google/longrunning", "google/monitoring/v3", "google/protobuf", "google/rpc", @@ -73914,7 +86457,16 @@ ] } ], - "configFile": "monitoring.yaml" + "configFile": "monitoring.yaml", + "serviceConfigApiNames": [ + "google.monitoring.v3.AlertPolicyService", + "google.monitoring.v3.GroupService", + "google.monitoring.v3.MetricService", + "google.monitoring.v3.NotificationChannelService", + "google.monitoring.v3.QueryService", + "google.monitoring.v3.ServiceMonitoringService", + "google.monitoring.v3.UptimeCheckService" + ] }, { "id": "google.partner.aistreams.v1alpha1", @@ -74074,7 +86626,10 @@ ] } ], - "configFile": "aistreams_v1alpha1.yaml" + "configFile": "aistreams_v1alpha1.yaml", + "serviceConfigApiNames": [ + "google.partner.aistreams.v1alpha1.AIStreams" + ] }, { "id": "google.privacy.dlp.v2", @@ -74773,7 +87328,11 @@ ] } ], - "configFile": "dlp_v2.yaml" + "configFile": "dlp_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.privacy.dlp.v2.DlpService" + ] }, { "id": "google.pubsub.v1", @@ -75180,7 +87739,13 @@ ] } ], - "configFile": "pubsub_v1.yaml" + "configFile": "pubsub_v1.yaml", + "serviceConfigApiNames": [ + "google.iam.v1.IAMPolicy", + "google.pubsub.v1.Publisher", + "google.pubsub.v1.SchemaService", + "google.pubsub.v1.Subscriber" + ] }, { "id": "google.spanner.admin.database.v1", @@ -75188,8 +87753,8 @@ "version": "v1", "majorVersion": "v1", "hostName": "spanner.googleapis.com", - "title": "Cloud Spanner Database Admin API", - "description": "", + "title": "Cloud Spanner API", + "description": "Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.", "importDirectories": [ "google/api", "google/iam/v1", @@ -75235,6 +87800,17 @@ "shortName": "DatabaseAdmin", "fullName": "google.spanner.admin.database.v1.DatabaseAdmin", "methods": [ + { + "shortName": "CopyBackup", + "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/instances/*}/backups:copy" + } + ] + }, { "shortName": "CreateBackup", "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup", @@ -75360,6 +87936,17 @@ } ] }, + { + "shortName": "ListDatabaseRoles", + "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/instances/*/databases/*}/databaseRoles" + } + ] + }, { "shortName": "ListDatabases", "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases", @@ -75409,6 +87996,10 @@ { "httpMethod": "POST", "path": "/v1/{resource=projects/*/instances/*/backups/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/instances/*/databases/*/databaseRoles/*}:testIamPermissions" } ] }, @@ -75437,7 +88028,11 @@ ] } ], - "configFile": "spanner_admin_database.yaml" + "configFile": "spanner.yaml", + "serviceConfigApiNames": [ + "google.longrunning.Operations", + "google.spanner.admin.database.v1.DatabaseAdmin" + ] }, { "id": "google.spanner.admin.instance.v1", @@ -75451,37 +88046,38 @@ "google/api", "google/iam/v1", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/spanner/admin/instance/v1" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Spanner.Admin.Instance.V1": 1 + "Google.Cloud.Spanner.Admin.Instance.V1": 2 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/spanner/admin/instance/v1;instance": 1 + "google.golang.org/genproto/googleapis/spanner/admin/instance/v1;instance": 2 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 2 } }, "java_package": { "valueCounts": { - "com.google.spanner.admin.instance.v1": 1 + "com.google.spanner.admin.instance.v1": 2 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Spanner\\Admin\\Instance\\V1": 1 + "Google\\Cloud\\Spanner\\Admin\\Instance\\V1": 2 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Spanner::Admin::Instance::V1": 1 + "Google::Cloud::Spanner::Admin::Instance::V1": 2 } } }, @@ -75501,6 +88097,17 @@ } ] }, + { + "shortName": "CreateInstanceConfig", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/instanceConfigs" + } + ] + }, { "shortName": "DeleteInstance", "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstance", @@ -75512,6 +88119,17 @@ } ] }, + { + "shortName": "DeleteInstanceConfig", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstanceConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/instanceConfigs/*}" + } + ] + }, { "shortName": "GetIamPolicy", "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.GetIamPolicy", @@ -75545,6 +88163,17 @@ } ] }, + { + "shortName": "ListInstanceConfigOperations", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigOperations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/instanceConfigOperations" + } + ] + }, { "shortName": "ListInstanceConfigs", "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs", @@ -75599,11 +88228,25 @@ "path": "/v1/{instance.name=projects/*/instances/*}" } ] + }, + { + "shortName": "UpdateInstanceConfig", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstanceConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{instance_config.name=projects/*/instanceConfigs/*}" + } + ] } ] } ], - "configFile": "spanner_admin_instance.yaml" + "configFile": "spanner_admin_instance.yaml", + "serviceConfigApiNames": [ + "google.spanner.admin.instance.v1.InstanceAdmin" + ] }, { "id": "google.spanner.v1", @@ -75830,328 +88473,10 @@ ] } ], - "configFile": "spanner.yaml" - }, - { - "id": "google.storage.v1", - "directory": "google/storage/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "storage.googleapis.com", - "title": "Cloud Storage API", - "description": "Lets you store and retrieve potentially-large, immutable data objects.", - "importDirectories": [ - "google/api", - "google/iam/v1", - "google/protobuf", - "google/storage/v1" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/storage/v1;storage": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.storage.v1": 2 - } - } - }, - "services": [ - { - "shortName": "Storage", - "fullName": "google.storage.v1.Storage", - "methods": [ - { - "shortName": "ComposeObject", - "fullName": "google.storage.v1.Storage.ComposeObject", - "mode": "UNARY" - }, - { - "shortName": "CopyObject", - "fullName": "google.storage.v1.Storage.CopyObject", - "mode": "UNARY" - }, - { - "shortName": "CreateHmacKey", - "fullName": "google.storage.v1.Storage.CreateHmacKey", - "mode": "UNARY" - }, - { - "shortName": "DeleteBucket", - "fullName": "google.storage.v1.Storage.DeleteBucket", - "mode": "UNARY" - }, - { - "shortName": "DeleteBucketAccessControl", - "fullName": "google.storage.v1.Storage.DeleteBucketAccessControl", - "mode": "UNARY" - }, - { - "shortName": "DeleteDefaultObjectAccessControl", - "fullName": "google.storage.v1.Storage.DeleteDefaultObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "DeleteHmacKey", - "fullName": "google.storage.v1.Storage.DeleteHmacKey", - "mode": "UNARY" - }, - { - "shortName": "DeleteNotification", - "fullName": "google.storage.v1.Storage.DeleteNotification", - "mode": "UNARY" - }, - { - "shortName": "DeleteObject", - "fullName": "google.storage.v1.Storage.DeleteObject", - "mode": "UNARY" - }, - { - "shortName": "DeleteObjectAccessControl", - "fullName": "google.storage.v1.Storage.DeleteObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "GetBucket", - "fullName": "google.storage.v1.Storage.GetBucket", - "mode": "UNARY" - }, - { - "shortName": "GetBucketAccessControl", - "fullName": "google.storage.v1.Storage.GetBucketAccessControl", - "mode": "UNARY" - }, - { - "shortName": "GetBucketIamPolicy", - "fullName": "google.storage.v1.Storage.GetBucketIamPolicy", - "mode": "UNARY" - }, - { - "shortName": "GetDefaultObjectAccessControl", - "fullName": "google.storage.v1.Storage.GetDefaultObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "GetHmacKey", - "fullName": "google.storage.v1.Storage.GetHmacKey", - "mode": "UNARY" - }, - { - "shortName": "GetNotification", - "fullName": "google.storage.v1.Storage.GetNotification", - "mode": "UNARY" - }, - { - "shortName": "GetObject", - "fullName": "google.storage.v1.Storage.GetObject", - "mode": "UNARY" - }, - { - "shortName": "GetObjectAccessControl", - "fullName": "google.storage.v1.Storage.GetObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "GetObjectIamPolicy", - "fullName": "google.storage.v1.Storage.GetObjectIamPolicy", - "mode": "UNARY" - }, - { - "shortName": "GetObjectMedia", - "fullName": "google.storage.v1.Storage.GetObjectMedia", - "mode": "SERVER_STREAMING" - }, - { - "shortName": "GetServiceAccount", - "fullName": "google.storage.v1.Storage.GetServiceAccount", - "mode": "UNARY" - }, - { - "shortName": "InsertBucket", - "fullName": "google.storage.v1.Storage.InsertBucket", - "mode": "UNARY" - }, - { - "shortName": "InsertBucketAccessControl", - "fullName": "google.storage.v1.Storage.InsertBucketAccessControl", - "mode": "UNARY" - }, - { - "shortName": "InsertDefaultObjectAccessControl", - "fullName": "google.storage.v1.Storage.InsertDefaultObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "InsertNotification", - "fullName": "google.storage.v1.Storage.InsertNotification", - "mode": "UNARY" - }, - { - "shortName": "InsertObject", - "fullName": "google.storage.v1.Storage.InsertObject", - "mode": "CLIENT_STREAMING" - }, - { - "shortName": "InsertObjectAccessControl", - "fullName": "google.storage.v1.Storage.InsertObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "ListBucketAccessControls", - "fullName": "google.storage.v1.Storage.ListBucketAccessControls", - "mode": "UNARY" - }, - { - "shortName": "ListBuckets", - "fullName": "google.storage.v1.Storage.ListBuckets", - "mode": "UNARY" - }, - { - "shortName": "ListChannels", - "fullName": "google.storage.v1.Storage.ListChannels", - "mode": "UNARY" - }, - { - "shortName": "ListDefaultObjectAccessControls", - "fullName": "google.storage.v1.Storage.ListDefaultObjectAccessControls", - "mode": "UNARY" - }, - { - "shortName": "ListHmacKeys", - "fullName": "google.storage.v1.Storage.ListHmacKeys", - "mode": "UNARY" - }, - { - "shortName": "ListNotifications", - "fullName": "google.storage.v1.Storage.ListNotifications", - "mode": "UNARY" - }, - { - "shortName": "ListObjectAccessControls", - "fullName": "google.storage.v1.Storage.ListObjectAccessControls", - "mode": "UNARY" - }, - { - "shortName": "ListObjects", - "fullName": "google.storage.v1.Storage.ListObjects", - "mode": "UNARY" - }, - { - "shortName": "LockBucketRetentionPolicy", - "fullName": "google.storage.v1.Storage.LockBucketRetentionPolicy", - "mode": "UNARY" - }, - { - "shortName": "PatchBucket", - "fullName": "google.storage.v1.Storage.PatchBucket", - "mode": "UNARY" - }, - { - "shortName": "PatchBucketAccessControl", - "fullName": "google.storage.v1.Storage.PatchBucketAccessControl", - "mode": "UNARY" - }, - { - "shortName": "PatchDefaultObjectAccessControl", - "fullName": "google.storage.v1.Storage.PatchDefaultObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "PatchObject", - "fullName": "google.storage.v1.Storage.PatchObject", - "mode": "UNARY" - }, - { - "shortName": "PatchObjectAccessControl", - "fullName": "google.storage.v1.Storage.PatchObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "QueryWriteStatus", - "fullName": "google.storage.v1.Storage.QueryWriteStatus", - "mode": "UNARY" - }, - { - "shortName": "RewriteObject", - "fullName": "google.storage.v1.Storage.RewriteObject", - "mode": "UNARY" - }, - { - "shortName": "SetBucketIamPolicy", - "fullName": "google.storage.v1.Storage.SetBucketIamPolicy", - "mode": "UNARY" - }, - { - "shortName": "SetObjectIamPolicy", - "fullName": "google.storage.v1.Storage.SetObjectIamPolicy", - "mode": "UNARY" - }, - { - "shortName": "StartResumableWrite", - "fullName": "google.storage.v1.Storage.StartResumableWrite", - "mode": "UNARY" - }, - { - "shortName": "StopChannel", - "fullName": "google.storage.v1.Storage.StopChannel", - "mode": "UNARY" - }, - { - "shortName": "TestBucketIamPermissions", - "fullName": "google.storage.v1.Storage.TestBucketIamPermissions", - "mode": "UNARY" - }, - { - "shortName": "TestObjectIamPermissions", - "fullName": "google.storage.v1.Storage.TestObjectIamPermissions", - "mode": "UNARY" - }, - { - "shortName": "UpdateBucket", - "fullName": "google.storage.v1.Storage.UpdateBucket", - "mode": "UNARY" - }, - { - "shortName": "UpdateBucketAccessControl", - "fullName": "google.storage.v1.Storage.UpdateBucketAccessControl", - "mode": "UNARY" - }, - { - "shortName": "UpdateDefaultObjectAccessControl", - "fullName": "google.storage.v1.Storage.UpdateDefaultObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "UpdateHmacKey", - "fullName": "google.storage.v1.Storage.UpdateHmacKey", - "mode": "UNARY" - }, - { - "shortName": "UpdateObject", - "fullName": "google.storage.v1.Storage.UpdateObject", - "mode": "UNARY" - }, - { - "shortName": "UpdateObjectAccessControl", - "fullName": "google.storage.v1.Storage.UpdateObjectAccessControl", - "mode": "UNARY" - }, - { - "shortName": "WatchAllObjects", - "fullName": "google.storage.v1.Storage.WatchAllObjects", - "mode": "UNARY" - } - ] - } - ], - "configFile": "storage_v1.yaml" + "configFile": "spanner.yaml", + "serviceConfigApiNames": [ + "google.spanner.v1.Spanner" + ] }, { "id": "google.storage.v2", @@ -76189,6 +88514,11 @@ "shortName": "Storage", "fullName": "google.storage.v2.Storage", "methods": [ + { + "shortName": "CancelResumableWrite", + "fullName": "google.storage.v2.Storage.CancelResumableWrite", + "mode": "UNARY" + }, { "shortName": "ComposeObject", "fullName": "google.storage.v2.Storage.ComposeObject", @@ -76337,7 +88667,10 @@ ] } ], - "configFile": "storage_v2.yaml" + "configFile": "storage_v2.yaml", + "serviceConfigApiNames": [ + "google.storage.v2.Storage" + ] }, { "id": "google.storagetransfer.v1", @@ -76392,6 +88725,17 @@ "shortName": "StorageTransferService", "fullName": "google.storagetransfer.v1.StorageTransferService", "methods": [ + { + "shortName": "CreateAgentPool", + "fullName": "google.storagetransfer.v1.StorageTransferService.CreateAgentPool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/projects/{project_id=*}/agentPools" + } + ] + }, { "shortName": "CreateTransferJob", "fullName": "google.storagetransfer.v1.StorageTransferService.CreateTransferJob", @@ -76403,6 +88747,39 @@ } ] }, + { + "shortName": "DeleteAgentPool", + "fullName": "google.storagetransfer.v1.StorageTransferService.DeleteAgentPool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/agentPools/*}" + } + ] + }, + { + "shortName": "DeleteTransferJob", + "fullName": "google.storagetransfer.v1.StorageTransferService.DeleteTransferJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{job_name=transferJobs/**}" + } + ] + }, + { + "shortName": "GetAgentPool", + "fullName": "google.storagetransfer.v1.StorageTransferService.GetAgentPool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/agentPools/*}" + } + ] + }, { "shortName": "GetGoogleServiceAccount", "fullName": "google.storagetransfer.v1.StorageTransferService.GetGoogleServiceAccount", @@ -76425,6 +88802,17 @@ } ] }, + { + "shortName": "ListAgentPools", + "fullName": "google.storagetransfer.v1.StorageTransferService.ListAgentPools", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/projects/{project_id=*}/agentPools" + } + ] + }, { "shortName": "ListTransferJobs", "fullName": "google.storagetransfer.v1.StorageTransferService.ListTransferJobs", @@ -76469,6 +88857,17 @@ } ] }, + { + "shortName": "UpdateAgentPool", + "fullName": "google.storagetransfer.v1.StorageTransferService.UpdateAgentPool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{agent_pool.name=projects/*/agentPools/*}" + } + ] + }, { "shortName": "UpdateTransferJob", "fullName": "google.storagetransfer.v1.StorageTransferService.UpdateTransferJob", @@ -76483,7 +88882,11 @@ ] } ], - "configFile": "storagetransfer_v1.yaml" + "configFile": "storagetransfer_v1.yaml", + "serviceConfigApiNames": [ + "google.longrunning.Operations", + "google.storagetransfer.v1.StorageTransferService" + ] }, { "id": "google.streetview.publish.v1", @@ -76492,7 +88895,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", @@ -76562,6 +88965,17 @@ } ] }, + { + "shortName": "CreatePhotoSequence", + "fullName": "google.streetview.publish.v1.StreetViewPublishService.CreatePhotoSequence", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/photoSequence" + } + ] + }, { "shortName": "DeletePhoto", "fullName": "google.streetview.publish.v1.StreetViewPublishService.DeletePhoto", @@ -76573,6 +88987,17 @@ } ] }, + { + "shortName": "DeletePhotoSequence", + "fullName": "google.streetview.publish.v1.StreetViewPublishService.DeletePhotoSequence", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/photoSequence/{sequence_id}" + } + ] + }, { "shortName": "GetPhoto", "fullName": "google.streetview.publish.v1.StreetViewPublishService.GetPhoto", @@ -76584,6 +89009,28 @@ } ] }, + { + "shortName": "GetPhotoSequence", + "fullName": "google.streetview.publish.v1.StreetViewPublishService.GetPhotoSequence", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/photoSequence/{sequence_id}" + } + ] + }, + { + "shortName": "ListPhotoSequences", + "fullName": "google.streetview.publish.v1.StreetViewPublishService.ListPhotoSequences", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/photoSequences" + } + ] + }, { "shortName": "ListPhotos", "fullName": "google.streetview.publish.v1.StreetViewPublishService.ListPhotos", @@ -76595,6 +89042,17 @@ } ] }, + { + "shortName": "StartPhotoSequenceUpload", + "fullName": "google.streetview.publish.v1.StreetViewPublishService.StartPhotoSequenceUpload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/photoSequence:startUpload" + } + ] + }, { "shortName": "StartUpload", "fullName": "google.streetview.publish.v1.StreetViewPublishService.StartUpload", @@ -76620,7 +89078,10 @@ ] } ], - "configFile": "streetview_publish.yaml" + "configFile": "streetviewpublish.yaml", + "serviceConfigApiNames": [ + "google.streetview.publish.v1.StreetViewPublishService" + ] }, { "id": "google.watcher.v1", @@ -76670,7 +89131,10 @@ ] } ], - "configFile": "watcher.yaml" + "configFile": "watcher.yaml", + "serviceConfigApiNames": [ + "google.watcher.v1.Watcher" + ] } ], "metadata": { diff --git a/google/actions/sdk/v2/interactionmodel/prompt/content/static_canvas_prompt.proto b/google/actions/sdk/v2/interactionmodel/prompt/content/static_canvas_prompt.proto index 6c0e53015..ca6e5645d 100644 --- a/google/actions/sdk/v2/interactionmodel/prompt/content/static_canvas_prompt.proto +++ b/google/actions/sdk/v2/interactionmodel/prompt/content/static_canvas_prompt.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.actions.sdk.v2.interactionmodel.prompt; import "google/api/field_behavior.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; option go_package = "google.golang.org/genproto/googleapis/actions/sdk/v2/interactionmodel/prompt;prompt"; diff --git a/google/ads/admob/v1/BUILD.bazel b/google/ads/admob/v1/BUILD.bazel index 4182e33ad..b3adf281a 100644 --- a/google/ads/admob/v1/BUILD.bazel +++ b/google/ads/admob/v1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":admob_java_grpc", ], + transport = "rest", deps = [ ":admob_java_proto", ], @@ -90,6 +91,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-ads-admob-v1-java", + transport = "grpc+rest", deps = [ ":admob_java_gapic", ":admob_java_grpc", @@ -126,6 +128,7 @@ go_gapic_library( grpc_service_config = None, importpath = "google.golang.org/google/ads/admob/v1;admob", service_yaml = "//google/ads/admob:admob_v1.yaml", + transport = "grpc+rest", deps = [ ":admob_go_proto", ], @@ -155,6 +158,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", "py_grpc_library", "py_proto_library", ) @@ -177,6 +181,16 @@ py_gapic_library( ], ) +py_test( + name = "admob_py_gapic_test", + srcs = [ + "admob_py_gapic_pytest.py", + "admob_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":admob_py_gapic"], +) + # Open Source Packages py_gapic_assembly_pkg( name = "ads-admob-v1-py", diff --git a/google/ads/googleads/v10/BUILD.bazel b/google/ads/googleads/v10/BUILD.bazel new file mode 100644 index 000000000..df7dd527b --- /dev/null +++ b/google/ads/googleads/v10/BUILD.bazel @@ -0,0 +1,266 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +exports_files(["googleads_grpc_service_config.json"] + ["*.yaml"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( + name = "googleads_proto", + srcs = [], + deps = [ + "//google/ads/googleads/v10/common:common_proto", + "//google/ads/googleads/v10/enums:enums_proto", + "//google/ads/googleads/v10/errors:errors_proto", + "//google/ads/googleads/v10/resources:resources_proto", + "//google/ads/googleads/v10/services:services_proto", + ], +) + +proto_library_with_info( + name = "googleads_proto_with_info", + deps = [ + ":googleads_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", +) + +java_gapic_library( + name = "googleads_java_gapic", + srcs = [ + ":googleads_proto_with_info", + ], + gapic_yaml = "googleads_gapic.yaml", + grpc_service_config = ":googleads_grpc_service_config.json", + deps = [ + "//google/ads/googleads/v10/common:common_java_proto", + "//google/ads/googleads/v10/enums:enums_java_proto", + "//google/ads/googleads/v10/resources:resources_java_proto", + "//google/ads/googleads/v10/services:services_java_grpc", + "//google/ads/googleads/v10/services:services_java_proto", + ], +) + +# TODO(ohren): Add more test classes when java_gapic_test is able to run more +# than a single test. Having at least one verifies proper compilation at least. +java_gapic_test( + name = "googleads_java_gapic_suite", + test_classes = [ + "com.google.ads.googleads.v10.services.CampaignServiceClientTest", + ], + runtime_deps = [":googleads_java_gapic_test"], +) + +java_gapic_assembly_gradle_pkg( + name = "googleads-java", + deps = [ + ":googleads_java_gapic", + "//google/ads/googleads/v10:googleads_proto", + "//google/ads/googleads/v10/common:common_java_proto", + "//google/ads/googleads/v10/enums:enums_java_proto", + "//google/ads/googleads/v10/errors:errors_java_proto", + "//google/ads/googleads/v10/resources:resources_java_proto", + "//google/ads/googleads/v10/services:services_java_grpc", + "//google/ads/googleads/v10/services:services_java_proto", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "googleads_php_proto", + plugin_args = ["aggregate_metadata=google.ads.googleads"], + deps = [":googleads_proto"], +) + +php_grpc_library( + name = "googleads_php_grpc", + srcs = [":googleads_proto"], + deps = [":googleads_php_proto"], +) + +php_gapic_library( + name = "googleads_php_gapic", + srcs = [":googleads_proto"], + gapic_yaml = "googleads_gapic.yaml", + grpc_service_config = "googleads_grpc_service_config.json", + service_yaml = "googleads_v10.yaml", + deps = [ + ":googleads_php_grpc", + ":googleads_php_proto", + ], +) + +php_gapic_assembly_pkg( + name = "googleads-php", + deps = [ + ":googleads_php_gapic", + ":googleads_php_grpc", + ":googleads_php_proto", + ], +) + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", +) + +csharp_gapic_library( + name = "googleads_csharp_gapic", + srcs = [ + ":googleads_proto_with_info", + ], + grpc_service_config = "googleads_grpc_service_config.json", + deps = [ + "//google/ads/googleads/v10/services:services_csharp_grpc", + ], +) + +csharp_gapic_assembly_pkg( + name = "googleads-csharp", + deps = [ + ":googleads_csharp_gapic", + "//google/ads/googleads/v10/common:common_csharp_proto", + "//google/ads/googleads/v10/enums:enums_csharp_proto", + "//google/ads/googleads/v10/errors:errors_csharp_proto", + "//google/ads/googleads/v10/resources:resources_csharp_proto", + "//google/ads/googleads/v10/services:services_csharp_grpc", + "//google/ads/googleads/v10/services:services_csharp_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_ads_gapic_library", + "ruby_gapic_assembly_pkg", +) + +ruby_ads_gapic_library( + name = "googleads_ruby_gapic", + srcs = ["googleads_proto_with_info"], + extra_protoc_parameters = [ + ":gem.:name=google-ads-googleads", + ":defaults.:service.:default_host=googleads.googleapis.com", + ":overrides.:namespace.Googleads=GoogleAds", + ], + grpc_service_config = "googleads_grpc_service_config.json", +) + +ruby_gapic_assembly_pkg( + name = "googleads-ruby", + deps = [ + ":googleads_ruby_gapic", + "//google/ads/googleads/v10/common:common_ruby_proto", + "//google/ads/googleads/v10/enums:enums_ruby_proto", + "//google/ads/googleads/v10/errors:errors_ruby_proto", + "//google/ads/googleads/v10/resources:resources_ruby_proto", + "//google/ads/googleads/v10/services:services_ruby_grpc", + "//google/ads/googleads/v10/services:services_ruby_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", +) + +py_gapic_library( + name = "googleads_py_gapic", + srcs = [":googleads_proto_with_info"], + grpc_service_config = "googleads_grpc_service_config.json", + opt_args = [ + "old-naming", + "lazy-import", + "python-gapic-name=googleads", + "python-gapic-templates=ads-templates", + "warehouse-package-name=google-ads", + ], +) + +py_gapic_assembly_pkg( + name = "googleads-py", + deps = [ + ":googleads_py_gapic", + "//google/ads/googleads/v10/common:common_py_proto", + "//google/ads/googleads/v10/enums:enums_py_proto", + "//google/ads/googleads/v10/errors:errors_py_proto", + "//google/ads/googleads/v10/resources:resources_py_proto", + "//google/ads/googleads/v10/services:services_py_grpc", + "//google/ads/googleads/v10/services:services_py_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "googleads_nodejs_gapic", + package_name = "google-ads", + src = ":googleads_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "googleads_grpc_service_config.json", + main_service = "GoogleAdsService", + package = "google.ads.googleads.v10", + service_yaml = "googleads_v10.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "googleads-nodejs", + deps = [ + ":googleads_nodejs_gapic", + ":googleads_proto", + ], +) diff --git a/google/ads/googleads/v10/common/BUILD.bazel b/google/ads/googleads/v10/common/BUILD.bazel new file mode 100644 index 000000000..226401bf6 --- /dev/null +++ b/google/ads/googleads/v10/common/BUILD.bazel @@ -0,0 +1,94 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports +# subpackages. +proto_library( + name = "common_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/ads/googleads/v10/enums:enums_proto", + "//google/api:annotations_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", +) + +java_proto_library( + name = "common_java_proto", + deps = [":common_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", +) + +csharp_proto_library( + name = "common_csharp_proto", + deps = [":common_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_proto_library", +) + +ruby_proto_library( + name = "common_ruby_proto", + deps = [":common_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_proto_library", +) + +py_proto_library( + name = "common_py_proto", + deps = [":common_proto"], +) diff --git a/google/ads/googleads/v10/common/ad_asset.proto b/google/ads/googleads/v10/common/ad_asset.proto new file mode 100644 index 000000000..5324d7862 --- /dev/null +++ b/google/ads/googleads/v10/common/ad_asset.proto @@ -0,0 +1,74 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/common/asset_policy.proto"; +import "google/ads/googleads/v10/enums/asset_performance_label.proto"; +import "google/ads/googleads/v10/enums/served_asset_field_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AdAssetProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::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.v10.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType pinned_field = 2; + + // The performance label of this text asset. + google.ads.googleads.v10.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; +} diff --git a/google/ads/googleads/v10/common/ad_type_infos.proto b/google/ads/googleads/v10/common/ad_type_infos.proto new file mode 100644 index 000000000..160c43c17 --- /dev/null +++ b/google/ads/googleads/v10/common/ad_type_infos.proto @@ -0,0 +1,796 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/common/ad_asset.proto"; +import "google/ads/googleads/v10/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v10/enums/display_ad_format_setting.proto"; +import "google/ads/googleads/v10/enums/display_upload_product_type.proto"; +import "google/ads/googleads/v10/enums/legacy_app_install_ad_app_store.proto"; +import "google/ads/googleads/v10/enums/mime_type.proto"; +import "google/ads/googleads/v10/enums/video_thumbnail.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AdTypeInfosProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file containing info messages for specific ad types. + +// A text ad. +message TextAdInfo { + // The headline of the ad. + optional string headline = 4; + + // The first line of the ad's description. + optional string description1 = 5; + + // The second line of the ad's description. + optional string description2 = 6; +} + +// An expanded text ad. +message ExpandedTextAdInfo { + // The first part of the ad's headline. + optional string headline_part1 = 8; + + // The second part of the ad's headline. + optional string headline_part2 = 9; + + // The third part of the ad's headline. + optional string headline_part3 = 10; + + // The description of the ad. + optional string description = 11; + + // The second description of the ad. + optional string description2 = 12; + + // The text that can appear alongside the ad's displayed URL. + optional string path1 = 13; + + // Additional text that can appear alongside the ad's displayed URL. + optional string path2 = 14; +} + +// An expanded dynamic search ad. +message ExpandedDynamicSearchAdInfo { + // The description of the ad. + optional string description = 3; + + // The second description of the ad. + optional string description2 = 4; +} + +// A hotel ad. +message HotelAdInfo { + +} + +// A Smart Shopping ad. +message ShoppingSmartAdInfo { + +} + +// A standard Shopping ad. +message ShoppingProductAdInfo { + +} + +// A Shopping Comparison Listing ad. +message ShoppingComparisonListingAdInfo { + // Headline of the ad. This field is required. Allowed length is between 25 + // and 45 characters. + optional string headline = 2; +} + +// A Gmail ad. +message GmailAdInfo { + // The Gmail teaser. + GmailTeaser teaser = 1; + + // The MediaFile resource name of the header image. Valid image types are GIF, + // JPEG and PNG. The minimum size is 300x100 pixels and the aspect ratio must + // be between 3:1 and 5:1 (+-1%). + optional string header_image = 10; + + // The MediaFile resource name of the marketing image. Valid image types are + // GIF, JPEG and PNG. The image must either be landscape with a minimum size + // of 600x314 pixels and aspect ratio of 600:314 (+-1%) or square with a + // minimum size of 300x300 pixels and aspect ratio of 1:1 (+-1%) + optional string marketing_image = 11; + + // Headline of the marketing image. + optional string marketing_image_headline = 12; + + // Description of the marketing image. + optional string marketing_image_description = 13; + + // Display-call-to-action of the marketing image. + DisplayCallToAction marketing_image_display_call_to_action = 6; + + // Product images. Up to 15 images are supported. + repeated ProductImage product_images = 7; + + // Product videos. Up to 7 videos are supported. At least one product video + // or a marketing image must be specified. + repeated ProductVideo product_videos = 8; +} + +// Gmail teaser data. The teaser is a small header that acts as an invitation +// to view the rest of the ad (the body). +message GmailTeaser { + // Headline of the teaser. + optional string headline = 5; + + // Description of the teaser. + optional string description = 6; + + // Business name of the advertiser. + optional string business_name = 7; + + // The MediaFile resource name of the logo image. Valid image types are GIF, + // JPEG and PNG. The minimum size is 144x144 pixels and the aspect ratio must + // be 1:1 (+-1%). + optional string logo_image = 8; +} + +// Data for display call to action. The call to action is a piece of the ad +// that prompts the user to do something. Like clicking a link or making a phone +// call. +message DisplayCallToAction { + // Text for the display-call-to-action. + optional string text = 5; + + // Text color for the display-call-to-action in hexadecimal, e.g. #ffffff for + // white. + optional string text_color = 6; + + // Identifies the URL collection in the `ad.url_collections` field. If not + // set, the URL defaults to `final_url`. + optional string url_collection_id = 7; +} + +// Product image specific data. +message ProductImage { + // The MediaFile resource name of the product image. Valid image types are + // GIF, JPEG and PNG. The minimum size is 300x300 pixels and the aspect ratio + // must be 1:1 (+-1%). + optional string product_image = 4; + + // Description of the product. + optional string description = 5; + + // Display-call-to-action of the product image. + DisplayCallToAction display_call_to_action = 3; +} + +// Product video specific data. +message ProductVideo { + // The MediaFile resource name of a video which must be hosted on YouTube. + optional string product_video = 2; +} + +// An image ad. +message ImageAdInfo { + // Width in pixels of the full size image. + optional int64 pixel_width = 15; + + // Height in pixels of the full size image. + optional int64 pixel_height = 16; + + // URL of the full size image. + optional string image_url = 17; + + // Width in pixels of the preview size image. + optional int64 preview_pixel_width = 18; + + // Height in pixels of the preview size image. + optional int64 preview_pixel_height = 19; + + // URL of the preview size image. + optional string preview_image_url = 20; + + // The mime type of the image. + google.ads.googleads.v10.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. + optional string name = 21; + + // The image to create the ImageAd from. This can be specified in one of + // two ways. + // 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; + + // Raw image data as bytes. + bytes data = 13; + + // An ad ID to copy the image from. + int64 ad_id_to_copy_image_from = 14; + } +} + +// Representation of video bumper in-stream ad format (very short in-stream +// non-skippable video ad). +message VideoBumperInStreamAdInfo { + // The image assets of the companion banner used with the ad. + AdImageAsset companion_banner = 3; +} + +// Representation of video non-skippable in-stream ad format (15 second +// in-stream non-skippable video ad). +message VideoNonSkippableInStreamAdInfo { + // The image assets of the companion banner used with the ad. + AdImageAsset companion_banner = 5; + + // Label on the "Call To Action" button taking the user to the video ad's + // final URL. + string action_button_label = 3; + + // Additional text displayed with the "Call To Action" button to give + // context and encourage clicking on the button. + string action_headline = 4; +} + +// Representation of video TrueView in-stream ad format (ad shown during video +// playback, often at beginning, which displays a skip button a few seconds into +// the video). +message VideoTrueViewInStreamAdInfo { + // Label on the CTA (call-to-action) button taking the user to the video ad's + // final URL. + // Required for TrueView for action campaigns, optional otherwise. + string action_button_label = 4; + + // Additional text displayed with the CTA (call-to-action) button to give + // context and encourage clicking on the button. + string action_headline = 5; + + // The image assets of the companion banner used with the ad. + AdImageAsset companion_banner = 7; +} + +// Representation of video out-stream ad format (ad shown alongside a feed +// with automatic playback, without sound). +message VideoOutstreamAdInfo { + // The headline of the ad. + string headline = 3; + + // The description line. + string description = 4; +} + +// Representation of In-feed video ad format. +message InFeedVideoAdInfo { + // The headline of the ad. + string headline = 1; + + // First text line for the ad. + string description1 = 2; + + // Second text line for the ad. + string description2 = 3; + + // Video thumbnail image to use. + google.ads.googleads.v10.enums.VideoThumbnailEnum.VideoThumbnail thumbnail = 4; +} + +// A video ad. +message VideoAdInfo { + // The YouTube video assets used for the ad. + AdVideoAsset video = 8; + + // Format-specific schema for the different video formats. + oneof format { + // Video TrueView in-stream ad format. + VideoTrueViewInStreamAdInfo in_stream = 2; + + // Video bumper in-stream ad format. + VideoBumperInStreamAdInfo bumper = 3; + + // Video out-stream ad format. + VideoOutstreamAdInfo out_stream = 4; + + // Video non-skippable in-stream ad format. + VideoNonSkippableInStreamAdInfo non_skippable = 5; + + // In-feed video ad format. + InFeedVideoAdInfo in_feed = 9; + } +} + +// A video responsive ad. +message VideoResponsiveAdInfo { + // List of text assets used for the short headline, e.g. the "Call To Action" + // banner. Currently, only a single value for the short headline is supported. + repeated AdTextAsset headlines = 1; + + // List of text assets used for the long headline. + // Currently, only a single value for the long headline is supported. + repeated AdTextAsset long_headlines = 2; + + // List of text assets used for the description. + // Currently, only a single value for the description is supported. + repeated AdTextAsset descriptions = 3; + + // List of text assets used for the button, e.g. the "Call To Action" button. + // Currently, only a single value for the button is supported. + repeated AdTextAsset call_to_actions = 4; + + // List of YouTube video assets used for the ad. + // Currently, only a single value for the YouTube video asset is supported. + repeated AdVideoAsset videos = 5; + + // List of image assets used for the companion banner. + // Currently, only a single value for the companion banner asset is supported. + repeated AdImageAsset companion_banners = 6; + + // First part of text that appears in the ad with the displayed URL. + string breadcrumb1 = 7; + + // Second part of text that appears in the ad with the displayed URL. + string breadcrumb2 = 8; +} + +// A responsive search ad. +// +// Responsive search ads let you create an ad that adapts to show more text, and +// more relevant messages, to your customers. Enter multiple headlines and +// descriptions when creating a responsive search ad, and over time, Google Ads +// will automatically test different combinations and learn which combinations +// perform best. By adapting your ad's content to more closely match potential +// customers' search terms, responsive search ads may improve your campaign's +// performance. +// +// More information at https://support.google.com/google-ads/answer/7684791 +message ResponsiveSearchAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 2; + + // First part of text that can be appended to the URL in the ad. + optional string path1 = 5; + + // Second part of text that can be appended to the URL in the ad. This field + // can only be set when `path1` is also set. + optional string path2 = 6; +} + +// A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' +// in the Google Ads UI. +message LegacyResponsiveDisplayAdInfo { + // The short version of the ad's headline. + optional string short_headline = 16; + + // The long version of the ad's headline. + optional string long_headline = 17; + + // The description of the ad. + optional string description = 18; + + // The business name in the ad. + optional string business_name = 19; + + // Advertiser's consent to allow flexible color. When true, the ad may be + // served with different color if necessary. When false, the ad will be served + // with the specified colors or a neutral color. + // The default value is `true`. + // Must be true if `main_color` and `accent_color` are not set. + optional bool allow_flexible_color = 20; + + // The accent color of the ad in hexadecimal, e.g. #ffffff for white. + // If one of `main_color` and `accent_color` is set, the other is required as + // well. + optional string accent_color = 21; + + // The main color of the ad in hexadecimal, e.g. #ffffff for white. + // If one of `main_color` and `accent_color` is set, the other is required as + // well. + optional string main_color = 22; + + // The call-to-action text for the ad. + optional string call_to_action_text = 23; + + // The MediaFile resource name of the logo image used in the ad. + optional string logo_image = 24; + + // The MediaFile resource name of the square logo image used in the ad. + optional string square_logo_image = 25; + + // The MediaFile resource name of the marketing image used in the ad. + optional string marketing_image = 26; + + // The MediaFile resource name of the square marketing image used in the ad. + optional string square_marketing_image = 27; + + // Specifies which format the ad will be served in. Default is ALL_FORMATS. + google.ads.googleads.v10.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 13; + + // Prefix before price. E.g. 'as low as'. + optional string price_prefix = 28; + + // Promotion text used for dynamic formats of responsive ads. For example + // 'Free two-day shipping'. + optional string promo_text = 29; +} + +// An app ad. +message AppAdInfo { + // Mandatory ad text. + AdTextAsset mandatory_ad_text = 1; + + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 2; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 3; + + // List of image assets that may be displayed with the ad. + repeated AdImageAsset images = 4; + + // List of YouTube video assets that may be displayed with the ad. + repeated AdVideoAsset youtube_videos = 5; + + // List of media bundle assets that may be used with the ad. + repeated AdMediaBundleAsset html5_media_bundles = 6; +} + +// App engagement ads allow you to write text encouraging a specific action in +// the app, like checking in, making a purchase, or booking a flight. +// They allow you to send users to a specific part of your app where they can +// find what they're looking for easier and faster. +message AppEngagementAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 2; + + // List of image assets that may be displayed with the ad. + repeated AdImageAsset images = 3; + + // List of video assets that may be displayed with the ad. + repeated AdVideoAsset videos = 4; +} + +// App pre-registration ads link to your app or game listing on Google Play, and +// can run on Google Play, on YouTube (in-stream only), and within other apps +// and mobile websites on the Display Network. It will help capture people's +// interest in your app or game and generate an early install base for your app +// or game before a launch. +message AppPreRegistrationAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 2; + + // List of image asset IDs whose images may be displayed with the ad. + repeated AdImageAsset images = 3; + + // List of YouTube video asset IDs whose videos may be displayed with the ad. + repeated AdVideoAsset youtube_videos = 4; +} + +// A legacy app install ad that only can be used by a few select customers. +message LegacyAppInstallAdInfo { + // The ID of the mobile app. + optional string app_id = 6; + + // The app store the mobile app is available in. + google.ads.googleads.v10.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore app_store = 2; + + // The headline of the ad. + optional string headline = 7; + + // The first description line of the ad. + optional string description1 = 8; + + // The second description line of the ad. + optional string description2 = 9; +} + +// A responsive display ad. +message ResponsiveDisplayAdInfo { + // Marketing images 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%). At least one `marketing_image` is required. Combined + // with `square_marketing_images`, the maximum is 15. + repeated AdImageAsset marketing_images = 1; + + // Square marketing images to be used in the ad. Valid image types are GIF, + // JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must + // be 1:1 (+-1%). At least one square `marketing_image` is required. Combined + // with `marketing_images`, the maximum is 15. + repeated AdImageAsset square_marketing_images = 2; + + // Logo images to be used in the ad. Valid image types are GIF, + // JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must + // be 4:1 (+-1%). Combined with `square_logo_images`, the maximum is 5. + repeated AdImageAsset logo_images = 3; + + // Square logo images 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%). Combined with `square_logo_images`, the maximum is 5. + repeated AdImageAsset square_logo_images = 4; + + // Short format headlines for the ad. The maximum length is 30 characters. + // At least 1 and max 5 headlines can be specified. + repeated AdTextAsset headlines = 5; + + // A required long format headline. The maximum length is 90 characters. + AdTextAsset long_headline = 6; + + // Descriptive texts for the ad. The maximum length is 90 characters. At + // least 1 and max 5 headlines can be specified. + repeated AdTextAsset descriptions = 7; + + // Optional YouTube videos for the ad. A maximum of 5 videos can be specified. + repeated AdVideoAsset youtube_videos = 8; + + // The advertiser/brand name. Maximum display width is 25. + optional string business_name = 17; + + // The main color of the ad in hexadecimal, e.g. #ffffff for white. + // If one of `main_color` and `accent_color` is set, the other is required as + // well. + optional string main_color = 18; + + // The accent color of the ad in hexadecimal, e.g. #ffffff for white. + // If one of `main_color` and `accent_color` is set, the other is required as + // well. + optional string accent_color = 19; + + // Advertiser's consent to allow flexible color. When true, the ad may be + // served with different color if necessary. When false, the ad will be served + // with the specified colors or a neutral color. + // The default value is `true`. + // Must be true if `main_color` and `accent_color` are not set. + optional bool allow_flexible_color = 20; + + // The call-to-action text for the ad. Maximum display width is 30. + optional string call_to_action_text = 21; + + // Prefix before price. E.g. 'as low as'. + optional string price_prefix = 22; + + // Promotion text used for dynamic formats of responsive ads. For example + // 'Free two-day shipping'. + optional string promo_text = 23; + + // Specifies which format the ad will be served in. Default is ALL_FORMATS. + google.ads.googleads.v10.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 16; + + // Specification for various creative controls. + ResponsiveDisplayAdControlSpec control_spec = 24; +} + +// A local ad. +message LocalAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. At least 1 and at most 5 headlines must be + // specified. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. At least 1 and at most 5 descriptions must + // be specified. + repeated AdTextAsset descriptions = 2; + + // List of text assets for call-to-actions. When the ad serves the + // call-to-actions will be selected from this list. Call-to-actions are + // optional and at most 5 can be specified. + repeated AdTextAsset call_to_actions = 3; + + // List of marketing image assets that may be displayed with the ad. The + // images must be 314x600 pixels or 320x320 pixels. At least 1 and at most + // 20 image assets must be specified. + repeated AdImageAsset marketing_images = 4; + + // List of logo image assets that may be displayed with the ad. The images + // must be 128x128 pixels and not larger than 120KB. At least 1 and at most 5 + // image assets must be specified. + repeated AdImageAsset logo_images = 5; + + // List of YouTube video assets that may be displayed with the ad. Videos + // are optional and at most 20 can be specified. + repeated AdVideoAsset videos = 6; + + // First part of optional text that can be appended to the URL in the ad. + optional string path1 = 9; + + // Second part of optional text that can be appended to the URL in the ad. + // This field can only be set when `path1` is also set. + optional string path2 = 10; +} + +// A generic type of display ad. The exact ad format is controlled by the +// `display_upload_product_type` field, which determines what kinds of data +// 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.v10.enums.DisplayUploadProductTypeEnum.DisplayUploadProductType display_upload_product_type = 1; + + // The asset data that makes up the ad. + oneof media_asset { + // A media bundle asset to be used in the ad. For information about the + // media bundle for HTML5_UPLOAD_AD, see + // https://support.google.com/google-ads/answer/1722096 + // Media bundles that are part of dynamic product types use a special format + // that needs to be created through the Google Web Designer. See + // https://support.google.com/webdesigner/answer/7543898 for more + // information. + AdMediaBundleAsset media_bundle = 2; + } +} + +// Specification for various creative controls for a responsive display ad. +message ResponsiveDisplayAdControlSpec { + // Whether the advertiser has opted into the asset enhancements feature. + bool enable_asset_enhancements = 1; + + // Whether the advertiser has opted into auto-gen video feature. + bool enable_autogen_video = 2; +} + +// A Smart campaign ad. +message SmartCampaignAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. 3 headlines must be specified. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. 2 descriptions must be specified. + repeated AdTextAsset descriptions = 2; +} + +// A call ad. +message CallAdInfo { + // The country code in the ad. + string country_code = 1; + + // The phone number in the ad. + string phone_number = 2; + + // The business name in the ad. + string business_name = 3; + + // First headline in the ad. + string headline1 = 11; + + // Second headline in the ad. + string headline2 = 12; + + // The first line of the ad's description. + string description1 = 4; + + // The second line of the ad's description. + string description2 = 5; + + // Whether to enable call tracking for the creative. Enabling call + // tracking also enables call conversions. + bool call_tracked = 6; + + // Whether to disable call conversion for the creative. + // If set to `true`, disables call conversions even when `call_tracked` is + // `true`. + // If `call_tracked` is `false`, this field is ignored. + bool disable_call_conversion = 7; + + // The URL to be used for phone number verification. + string phone_number_verification_url = 8; + + // The conversion action to attribute a call conversion to. If not set a + // default conversion action is used. This field only has effect if + // `call_tracked` is set to `true`. Otherwise this field is ignored. + string conversion_action = 9; + + // 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.v10.enums.CallConversionReportingStateEnum.CallConversionReportingState conversion_reporting_state = 10; + + // First part of text that can be appended to the URL in the ad. Optional. + string path1 = 13; + + // Second part of text that can be appended to the URL in the ad. This field + // can only be set when `path1` is also set. Optional. + string path2 = 14; +} + +// A discovery multi asset ad. +message DiscoveryMultiAssetAdInfo { + // 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 + // not present. Combined with `square_marketing_images` and + // `portrait_marketing_images` the maximum is 20. + repeated AdImageAsset marketing_images = 1; + + // Square marketing image assets to be used in the ad. Valid image types are + // GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must + // be 1:1 (+-1%). Required if marketing_images is not present. Combined with + // `marketing_images` and `portrait_marketing_images` the maximum is 20. + repeated AdImageAsset square_marketing_images = 2; + + // Portrait marketing image assets to be used in the ad. Valid image types are + // GIF, JPEG, and PNG. The minimum size is 480x600 and the aspect ratio must + // be 4:5 (+-1%). Combined with `marketing_images` and + // `square_marketing_images` the maximum is 20. + repeated AdImageAsset portrait_marketing_images = 3; + + // 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. + repeated AdImageAsset logo_images = 4; + + // Headline text asset of the ad. Maximum display width is 30. At least 1 and + // max 5 headlines can be specified. + repeated AdTextAsset headlines = 5; + + // The descriptive text of the ad. Maximum display width is 90. At least 1 and + // max 5 descriptions can be specified. + repeated AdTextAsset descriptions = 6; + + // The Advertiser/brand name. Maximum display width is 25. Required. + optional string business_name = 7; + + // Call to action text. + optional string call_to_action_text = 8; + + // Boolean flag that indicates if this ad must be served with lead form. + optional bool lead_form_only = 9; +} + +// A discovery carousel ad. +message DiscoveryCarouselAdInfo { + // 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%). + AdImageAsset logo_image = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Headline of the ad. + AdTextAsset headline = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The descriptive text of the ad. + AdTextAsset description = 4 [(google.api.field_behavior) = REQUIRED]; + + // Call to action text. + string call_to_action_text = 5; + + // Required. Carousel cards that will display with the ad. Min 2 max 10. + repeated AdDiscoveryCarouselCardAsset carousel_cards = 6 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v10/common/asset_policy.proto b/google/ads/googleads/v10/common/asset_policy.proto new file mode 100644 index 000000000..554f6029b --- /dev/null +++ b/google/ads/googleads/v10/common/asset_policy.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/policy_approval_status.proto"; +import "google/ads/googleads/v10/enums/policy_review_status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AssetPolicyProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing asset policies. + +// Contains policy information for an asset inside an ad. +message AdAssetPolicySummary { + // The list of policy findings for this asset. + repeated PolicyTopicEntry policy_topic_entries = 1; + + // Where in the review process this asset. + google.ads.googleads.v10.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.v10.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; +} diff --git a/google/ads/googleads/v10/common/asset_types.proto b/google/ads/googleads/v10/common/asset_types.proto new file mode 100644 index 000000000..4c29c35e1 --- /dev/null +++ b/google/ads/googleads/v10/common/asset_types.proto @@ -0,0 +1,979 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/common/feed_common.proto"; +import "google/ads/googleads/v10/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v10/enums/call_to_action_type.proto"; +import "google/ads/googleads/v10/enums/lead_form_call_to_action_type.proto"; +import "google/ads/googleads/v10/enums/lead_form_desired_intent.proto"; +import "google/ads/googleads/v10/enums/lead_form_field_user_input_type.proto"; +import "google/ads/googleads/v10/enums/lead_form_post_submit_call_to_action_type.proto"; +import "google/ads/googleads/v10/enums/mime_type.proto"; +import "google/ads/googleads/v10/enums/mobile_app_vendor.proto"; +import "google/ads/googleads/v10/enums/price_extension_price_qualifier.proto"; +import "google/ads/googleads/v10/enums/price_extension_price_unit.proto"; +import "google/ads/googleads/v10/enums/price_extension_type.proto"; +import "google/ads/googleads/v10/enums/promotion_extension_discount_modifier.proto"; +import "google/ads/googleads/v10/enums/promotion_extension_occasion.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AssetTypesProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file containing info messages for specific asset types. + +// A YouTube asset. +message YoutubeVideoAsset { + // YouTube video id. This is the 11 character string value used in the + // YouTube video URL. + optional string youtube_video_id = 2; + + // YouTube video title. + string youtube_video_title = 3; +} + +// A MediaBundle asset. +message MediaBundleAsset { + // Media bundle (ZIP file) asset data. The format of the uploaded ZIP file + // depends on the ad field where it will be used. For more information on the + // format, see the documentation of the ad field where you plan on using the + // MediaBundleAsset. This field is mutate only. + optional bytes data = 2; +} + +// An Image asset. +message ImageAsset { + // The raw bytes data of an image. This field is mutate only. + optional bytes data = 5; + + // File size of the image asset in bytes. + optional int64 file_size = 6; + + // MIME type of the image asset. + google.ads.googleads.v10.enums.MimeTypeEnum.MimeType mime_type = 3; + + // Metadata for this image at its original size. + ImageDimension full_size = 4; +} + +// Metadata for an image at a certain size, either original or resized. +message ImageDimension { + // Height of the image. + optional int64 height_pixels = 4; + + // Width of the image. + optional int64 width_pixels = 5; + + // A URL that returns the image with this height and width. + optional string url = 6; +} + +// A Text asset. +message TextAsset { + // Text content of the text asset. + optional string text = 2; +} + +// A Lead Form asset. +message LeadFormAsset { + // Required. The name of the business being advertised. + string business_name = 10 [(google.api.field_behavior) = REQUIRED]; + + // Required. Pre-defined display text that encourages user to expand the form. + google.ads.googleads.v10.enums.LeadFormCallToActionTypeEnum.LeadFormCallToActionType call_to_action_type = 17 [(google.api.field_behavior) = REQUIRED]; + + // Required. Text giving a clear value proposition of what users expect once they expand + // the form. + string call_to_action_description = 18 [(google.api.field_behavior) = REQUIRED]; + + // Required. Headline of the expanded form to describe what the form is asking for or + // facilitating. + string headline = 12 [(google.api.field_behavior) = REQUIRED]; + + // Required. Detailed description of the expanded form to describe what the form is + // asking for or facilitating. + string description = 13 [(google.api.field_behavior) = REQUIRED]; + + // Required. Link to a page describing the policy on how the collected data is handled + // by the advertiser/business. + string privacy_policy_url = 14 [(google.api.field_behavior) = REQUIRED]; + + // Headline of text shown after form submission that describes how the + // advertiser will follow up with the user. + optional string post_submit_headline = 15; + + // Detailed description shown after form submission that describes how the + // advertiser will follow up with the user. + optional string post_submit_description = 16; + + // Ordered list of input fields. + repeated LeadFormField fields = 8; + + // Ordered list of custom question fields. + repeated LeadFormCustomQuestionField custom_question_fields = 23; + + // Configured methods for collected lead data to be delivered to advertiser. + // Only one method typed as WebhookDelivery can be configured. + repeated LeadFormDeliveryMethod delivery_methods = 9; + + // Pre-defined display text that encourages user action after the form is + // submitted. + google.ads.googleads.v10.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%). + optional string background_image_asset = 20; + + // Desired intent for the lead form, e.g. more volume or more qualified. + google.ads.googleads.v10.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent desired_intent = 21; + + // Custom disclosure shown along with Google disclaimer on the lead form. + // Accessible to allowed customers only. + optional string custom_disclosure = 22; +} + +// One input field instance within a form. +message LeadFormField { + // Describes the input type, which may be a predefined type such as + // "full name" or a pre-vetted question like "Do you own a car?". + google.ads.googleads.v10.enums.LeadFormFieldUserInputTypeEnum.LeadFormFieldUserInputType input_type = 1; + + // Defines answer configuration that this form field accepts. If oneof is not + // set, this is a free-text answer. + oneof answers { + // Answer configuration for a single choice question. Can be set only for + // pre-vetted question fields. Minimum of 2 answers required and maximum of + // 12 allowed. + LeadFormSingleChoiceAnswers single_choice_answers = 2; + } +} + +// One custom question input field instance within a form. +message LeadFormCustomQuestionField { + // The exact custom question field text (e.g. "Do you own a car?"). + string custom_question_text = 1; + + // Defines answer configuration that this form field accepts. If + // oneof is not set, this is a free-text answer. + oneof answers { + // Answer configuration for a single choice question. + // Minimum of 2 answers and maximum of 12 allowed. + LeadFormSingleChoiceAnswers single_choice_answers = 2; + } +} + +// Defines possible answers for a single choice question, usually presented as +// a single-choice drop-down list. +message LeadFormSingleChoiceAnswers { + // List of choices for a single question field. The order of entries defines + // UI order. Minimum of 2 answers required and maximum of 12 allowed. + repeated string answers = 1; +} + +// A configuration of how leads are delivered to the advertiser. +message LeadFormDeliveryMethod { + // Various subtypes of delivery. + oneof delivery_details { + // Webhook method of delivery. + WebhookDelivery webhook = 1; + } +} + +// Google notifies the advertiser of leads by making HTTP calls to an +// endpoint they specify. The requests contain JSON matching a schema that +// Google publishes as part of form ads documentation. +message WebhookDelivery { + // Webhook url specified by advertiser to send the lead. + optional string advertiser_webhook_url = 4; + + // Anti-spoofing secret set by the advertiser as part of the webhook payload. + optional string google_secret = 5; + + // The schema version that this delivery instance will use. + optional int64 payload_schema_version = 6; +} + +// A Book on Google asset. Used to redirect user to book through Google. +// Book on Google will change the redirect url to book directly through +// Google. +message BookOnGoogleAsset { + +} + +// A Promotion asset. +message PromotionAsset { + // Required. A freeform description of what the promotion is targeting. + string promotion_target = 1 [(google.api.field_behavior) = REQUIRED]; + + // A modifier for qualification of the discount. + google.ads.googleads.v10.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2; + + // Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd + // format. + string redemption_start_date = 7; + + // Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd + // format. + string redemption_end_date = 8; + + // 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.v10.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9; + + // The language of the promotion. + // Represented as BCP 47 language tag. + string language_code = 10; + + // Start date of when this asset is effective and can begin serving, in + // yyyy-MM-dd format. + string start_date = 11; + + // Last date of when this asset is effective and still serving, in yyyy-MM-dd + // format. + string end_date = 12; + + // List of non-overlapping schedules specifying all time intervals for which + // the asset may serve. There can be a maximum of 6 schedules per day, 42 in + // total. + repeated AdScheduleInfo ad_schedule_targets = 13; + + // Discount type, can be percentage off or amount off. + oneof discount_type { + // Percentage off discount in the promotion. 1,000,000 = 100%. + // Either this or money_amount_off is required. + int64 percent_off = 3; + + // Money amount off for discount in the promotion. + // Either this or percent_off is required. + Money money_amount_off = 4; + } + + // Promotion trigger. Can be by promotion code or promo by eligible order + // amount. + oneof promotion_trigger { + // A code the user should use in order to be eligible for the promotion. + string promotion_code = 5; + + // The amount the total order needs to be for the user to be eligible for + // the promotion. + Money orders_over_amount = 6; + } +} + +// A Callout asset. +message CalloutAsset { + // Required. The callout text. + // The length of this string should be between 1 and 25, inclusive. + string callout_text = 1 [(google.api.field_behavior) = REQUIRED]; + + // Start date of when this asset is effective and can begin serving, in + // yyyy-MM-dd format. + string start_date = 2; + + // Last date of when this asset is effective and still serving, in yyyy-MM-dd + // format. + string end_date = 3; + + // List of non-overlapping schedules specifying all time intervals for which + // the asset may serve. There can be a maximum of 6 schedules per day, 42 in + // total. + repeated AdScheduleInfo ad_schedule_targets = 4; +} + +// A Structured Snippet asset. +message StructuredSnippetAsset { + // Required. The header of the snippet. + // This string should be one of the predefined values at + // https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers + string header = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The values in the snippet. + // The size of this collection should be between 3 and 10, inclusive. + // The length of each value should be between 1 and 25 characters, inclusive. + repeated string values = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A Sitelink asset. +message SitelinkAsset { + // Required. URL display text for the sitelink. + // The length of this string should be between 1 and 25, inclusive. + string link_text = 1 [(google.api.field_behavior) = REQUIRED]; + + // First line of the description for the sitelink. + // If set, the length should be between 1 and 35, inclusive, and description2 + // must also be set. + string description1 = 2; + + // Second line of the description for the sitelink. + // If set, the length should be between 1 and 35, inclusive, and description1 + // must also be set. + string description2 = 3; + + // Start date of when this asset is effective and can begin serving, in + // yyyy-MM-dd format. + string start_date = 4; + + // Last date of when this asset is effective and still serving, in yyyy-MM-dd + // format. + string end_date = 5; + + // List of non-overlapping schedules specifying all time intervals for which + // the asset may serve. There can be a maximum of 6 schedules per day, 42 in + // total. + repeated AdScheduleInfo ad_schedule_targets = 6; +} + +// A Page Feed asset. +message PageFeedAsset { + // Required. The webpage that advertisers want to target. + string page_url = 1 [(google.api.field_behavior) = REQUIRED]; + + // Labels used to group the page urls. + repeated string labels = 2; +} + +// A Dynamic Education asset. +message DynamicEducationAsset { + // Required. Program ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string program_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Location ID which can be any sequence of letters and digits and must be + // unique. + string location_id = 2; + + // Required. Program name, e.g. Nursing. Required. + string program_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Subject of study, e.g. Health. + string subject = 4; + + // Program description, e.g. Nursing Certification. + string program_description = 5; + + // School name, e.g. Mountain View School of Nursing. + string school_name = 6; + + // School address which can be specified in one of the following formats. + // (1) City, state, code, country, e.g. Mountain View, CA, USA. + // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403 + string address = 7; + + // Contextual keywords, e.g. Nursing certification, Health, Mountain View. + repeated string contextual_keywords = 8; + + // Android deep link, e.g. + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 9; + + // Similar program IDs. + repeated string similar_program_ids = 10; + + // iOS deep link, e.g. exampleApp://content/page. + string ios_app_link = 11; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 12; + + // Thumbnail image url, e.g. http://www.example.com/thumbnail.png. The + // thumbnail image will not be uploaded as image asset. + string thumbnail_image_url = 13; + + // Image url, e.g. http://www.example.com/image.png. The image will not be + // uploaded as image asset. + string image_url = 14; +} + +// An asset representing a mobile app. +message MobileAppAsset { + // Required. A string that uniquely identifies a mobile application. It should just + // contain the platform native id, like "com.android.ebay" for Android or + // "12345689" for iOS. + string app_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The application store that distributes this specific app. + google.ads.googleads.v10.enums.MobileAppVendorEnum.MobileAppVendor app_store = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The visible text displayed when the link is rendered in an ad. + // The length of this string should be between 1 and 25, inclusive. + string link_text = 3 [(google.api.field_behavior) = REQUIRED]; + + // Start date of when this asset is effective and can begin serving, in + // yyyy-MM-dd format. + string start_date = 4; + + // Last date of when this asset is effective and still serving, in yyyy-MM-dd + // format. + string end_date = 5; +} + +// An asset representing a hotel callout. +message HotelCalloutAsset { + // Required. The text of the hotel callout asset. + // The length of this string should be between 1 and 25, inclusive. + string text = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The language of the hotel callout. + // Represented as BCP 47 language tag. + string language_code = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A Call asset. +message CallAsset { + // Required. Two-letter country code of the phone number. Examples: 'US', 'us'. + string country_code = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890' + string phone_number = 2 [(google.api.field_behavior) = REQUIRED]; + + // Indicates whether this CallAsset should use its own call conversion + // setting, follow the account level setting, or disable call conversion. + google.ads.googleads.v10.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 3; + + // The conversion action to attribute a call conversion to. If not set, the + // default conversion action is used. This field only has effect if + // call_conversion_reporting_state is set to + // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION. + string call_conversion_action = 4 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + + // List of non-overlapping schedules specifying all time intervals for which + // the asset may serve. There can be a maximum of 6 schedules per day, 42 in + // total. + repeated AdScheduleInfo ad_schedule_targets = 5; +} + +// An asset representing a list of price offers. +message PriceAsset { + // Required. The type of the price asset. + google.ads.googleads.v10.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1 [(google.api.field_behavior) = REQUIRED]; + + // The price qualifier of the price asset. + google.ads.googleads.v10.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2; + + // Required. The language of the price asset. + // Represented as BCP 47 language tag. + string language_code = 3 [(google.api.field_behavior) = REQUIRED]; + + // The price offerings of the price asset. + // The size of this collection should be between 3 and 8, inclusive. + repeated PriceOffering price_offerings = 4; +} + +// A single price offering within a PriceAsset. +message PriceOffering { + // Required. The header of the price offering. + // The length of this string should be between 1 and 25, inclusive. + string header = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The description of the price offering. + // The length of this string should be between 1 and 25, inclusive. + string description = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The price value of the price offering. + Money price = 3 [(google.api.field_behavior) = REQUIRED]; + + // The price unit of the price offering. + google.ads.googleads.v10.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4; + + // Required. The final URL after all cross domain redirects. + string final_url = 5 [(google.api.field_behavior) = REQUIRED]; + + // The final mobile URL after all cross domain redirects. + string final_mobile_url = 6; +} + +// A call to action asset. +message CallToActionAsset { + // Call to action. + google.ads.googleads.v10.enums.CallToActionTypeEnum.CallToActionType call_to_action = 1; +} + +// A dynamic real estate asset. +message DynamicRealEstateAsset { + // Required. Listing ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string listing_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Listing name, e.g. Boulevard Bungalow. Required. + string listing_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // City name, e.g. Mountain View, California. + string city_name = 3; + + // Description, e.g. 3 beds, 2 baths, 1568 sq. ft. + string description = 4; + + // Address which can be specified in one of the following formats. + // (1) City, state, code, country, e.g. Mountain View, CA, USA. + // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403 + string address = 5; + + // Price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark. e.g. 200,000.00 USD. + string price = 6; + + // Image URL, e.g. http://www.example.com/image.png. The image will not be + // uploaded as image asset. + string image_url = 7; + + // Property type, e.g. House. + string property_type = 8; + + // Listing type, e.g. For sale. + string listing_type = 9; + + // Contextual keywords, e.g. For sale; Houses for sale. + repeated string contextual_keywords = 10; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', e.g. Starting at $200,000.00. + string formatted_price = 11; + + // Android deep link, e.g. + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 12; + + // iOS deep link, e.g. exampleApp://content/page. + string ios_app_link = 13; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 14; + + // Similar listing IDs. + repeated string similar_listing_ids = 15; +} + +// A dynamic custom asset. +message DynamicCustomAsset { + // Required. ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag, e.g. sedan. Required. + string id = 1 [(google.api.field_behavior) = REQUIRED]; + + // ID2 which can be any sequence of letters and digits, e.g. red. ID sequence + // (ID + ID2) must be unique. + string id2 = 2; + + // Required. Item title, e.g. Mid-size sedan. Required. + string item_title = 3 [(google.api.field_behavior) = REQUIRED]; + + // Item subtitle, e.g. At your Mountain View dealership. + string item_subtitle = 4; + + // Item description, e.g. Best selling mid-size car. + string item_description = 5; + + // Item address which can be specified in one of the following formats. + // (1) City, state, code, country, e.g. Mountain View, CA, USA. + // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403 + string item_address = 6; + + // Item category, e.g. Sedans. + string item_category = 7; + + // Price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, e.g. 20,000.00 USD. + string price = 8; + + // Sale price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, e.g. 15,000.00 USD. + // Must be less than the 'price' field. + string sale_price = 9; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', e.g. Starting at $20,000.00. + string formatted_price = 10; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', e.g. On sale for $15,000.00. + string formatted_sale_price = 11; + + // Image URL, e.g. http://www.example.com/image.png. The image will not be + // uploaded as image asset. + string image_url = 12; + + // Contextual keywords, e.g. Sedans, 4 door sedans. + repeated string contextual_keywords = 13; + + // Android deep link, e.g. + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 14; + + // iOS deep link, e.g. exampleApp://content/page. + string ios_app_link = 16; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 17; + + // Similar IDs. + repeated string similar_ids = 15; +} + +// A dynamic hotels and rentals asset. +message DynamicHotelsAndRentalsAsset { + // Required. Property ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string property_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Property name, e.g. Mountain View Hotel. Required. + string property_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Image URL, e.g. http://www.example.com/image.png. The image will not be + // uploaded as image asset. + string image_url = 3; + + // Destination name, e.g. Downtown Mountain View. + string destination_name = 4; + + // Description, e.g. Close to SJC Airport. + string description = 5; + + // Price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, e.g. 100.00 USD. + string price = 6; + + // ISO 4217 standard. Use '.' as the decimal mark, e.g. 80.00 USD. + // Must be less than the 'price' field. + string sale_price = 7; + + // Star rating. Must be a number between 1–5, inclusive. + int64 star_rating = 8; + + // Category, e.g. Hotel suite. + string category = 9; + + // Contextual keywords, e.g. Mountain View "Hotels", South Bay hotels. + repeated string contextual_keywords = 10; + + // Address which can be specified in one of the following formats. + // (1) City, state, code, country, e.g. Mountain View, CA, USA. + // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403 + string address = 11; + + // Android deep link, e.g. + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 12; + + // iOS deep link, e.g. exampleApp://content/page. + string ios_app_link = 13; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 14; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', e.g. Starting at $100.00. + string formatted_price = 15; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', e.g. On sale for $80.00. + string formatted_sale_price = 16; + + // Similar property IDs. + repeated string similar_property_ids = 17; +} + +// A dynamic flights asset. +message DynamicFlightsAsset { + // Required. Destination ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string destination_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Origin ID which can be any sequence of letters and digits. The ID sequence + // (destination ID + origin ID) must be unique. + string origin_id = 2; + + // Required. Flight description, e.g. Book your ticket. Required. + string flight_description = 3 [(google.api.field_behavior) = REQUIRED]; + + // Image URL, e.g. http://www.example.com/image.png. The image will not be + // uploaded as image asset. + string image_url = 4; + + // Destination name, e.g. Paris. + string destination_name = 5; + + // Origin name, e.g. London. + string origin_name = 6; + + // Flight price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark. e.g. 100.00 USD. + string flight_price = 7; + + // Flight sale price which can be number followed by the alphabetic currency + // code, ISO 4217 standard. Use '.' as the decimal mark, e.g. 80.00 USD. + // Must be less than the 'flight_price' field. + string flight_sale_price = 8; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', e.g. Starting at $100.00. + string formatted_price = 9; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', e.g. On sale for $80.00. + string formatted_sale_price = 10; + + // Android deep link, e.g. + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 11; + + // iOS deep link, e.g. exampleApp://content/page. + string ios_app_link = 12; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 13; + + // Similar destination IDs, e.g. PAR,LON. + repeated string similar_destination_ids = 14; + + // A custom field which can be multiple key to values mapping separated by + // delimiters (",", "|" and ":"), in the forms of + // ": , , ... , | : , ... + // , | ... | : , ... ," e.g. wifi: most | + // aircraft: 320, 77W | flights: 42 | legroom: 32". + string custom_mapping = 15; +} + +// A Discovery Carousel Card asset. +message DiscoveryCarouselCardAsset { + // 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; + + // Asset resource name of the associated square marketing image. This + // and/or a marketing image asset is required. + string square_marketing_image_asset = 2; + + // Asset resource name of the associated 4:5 portrait marketing image. + string portrait_marketing_image_asset = 3; + + // Required. Headline of the carousel card. + string headline = 4 [(google.api.field_behavior) = REQUIRED]; + + // Call to action text. + string call_to_action_text = 5; +} + +// A dynamic travel asset. +message DynamicTravelAsset { + // Required. Destination ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string destination_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Origin ID which can be any sequence of letters and digits. The ID sequence + // (destination ID + origin ID) must be unique. + string origin_id = 2; + + // Required. Title, e.g. Book your train ticket. Required. + string title = 3 [(google.api.field_behavior) = REQUIRED]; + + // Destination name, e.g. Paris. + string destination_name = 4; + + // Destination address which can be specified in one of the following formats. + // (1) City, state, code, country, e.g. Mountain View, CA, USA. + // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403. + string destination_address = 5; + + // Origin name, e.g. London. + string origin_name = 6; + + // Price which can be a number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark. e.g. 100.00 USD. + string price = 7; + + // Sale price which can be a number followed by the alphabetic currency + // code, ISO 4217 standard. Use '.' as the decimal mark, e.g. 80.00 USD. + // Must be less than the 'price' field. + string sale_price = 8; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', e.g. Starting at $100.00. + string formatted_price = 9; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', e.g. On sale for $80.00. + string formatted_sale_price = 10; + + // Category, e.g. Express. + string category = 11; + + // Contextual keywords, e.g. Paris trains. + repeated string contextual_keywords = 12; + + // Similar destination IDs, e.g. NYC. + repeated string similar_destination_ids = 13; + + // Image URL, e.g. http://www.example.com/image.png. The image will not be + // uploaded as image asset. + string image_url = 14; + + // Android deep link, e.g. + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 15; + + // iOS deep link, e.g. exampleApp://content/page. + string ios_app_link = 16; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 17; +} + +// A dynamic local asset. +message DynamicLocalAsset { + // Required. Deal ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string deal_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Deal name, e.g. 50% off at Mountain View Grocers. Required. + string deal_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Subtitle, e.g. Groceries. + string subtitle = 3; + + // Description, e.g. Save on your weekly bill. + string description = 4; + + // Price which can be a number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, e.g. 100.00 USD. + string price = 5; + + // Sale price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, e.g. 80.00 USD. + // Must be less than the 'price' field. + string sale_price = 6; + + // Image URL, e.g. http://www.example.com/image.png. The image will not be + // uploaded as image asset. + string image_url = 7; + + // Address which can be specified in one of the following formats. + // (1) City, state, code, country, e.g. Mountain View, CA, USA. + // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403. + string address = 8; + + // Category, e.g. Food. + string category = 9; + + // Contextual keywords, e.g. Save groceries coupons. + repeated string contextual_keywords = 10; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', e.g. Starting at $100.00. + string formatted_price = 11; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', e.g. On sale for $80.00. + string formatted_sale_price = 12; + + // Android deep link, e.g. + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 13; + + // Similar deal IDs, e.g. 1275. + repeated string similar_deal_ids = 14; + + // iOS deep link, e.g. exampleApp://content/page. + string ios_app_link = 15; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 16; +} + +// A dynamic jobs asset. +message DynamicJobsAsset { + // Required. Job ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string job_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Location ID which can be any sequence of letters and digits. The ID + // sequence (job ID + location ID) must be unique. + string location_id = 2; + + // Required. Job title, e.g. Software engineer. Required. + string job_title = 3 [(google.api.field_behavior) = REQUIRED]; + + // Job subtitle, e.g. Level II. + string job_subtitle = 4; + + // Description, e.g. Apply your technical skills. + string description = 5; + + // Image URL, e.g. http://www.example.com/image.png. The image will not be + // uploaded as image asset. + string image_url = 6; + + // Job category, e.g. Technical. + string job_category = 7; + + // Contextual keywords, e.g. Software engineering job. + repeated string contextual_keywords = 8; + + // Address which can be specified in one of the following formats. + // (1) City, state, code, country, e.g. Mountain View, CA, USA. + // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403. + string address = 9; + + // Salary, e.g. $100,000. + string salary = 10; + + // Android deep link, e.g. + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 11; + + // Similar job IDs, e.g. 1275. + repeated string similar_job_ids = 12; + + // iOS deep link, e.g. exampleApp://content/page. + string ios_app_link = 13; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 14; +} diff --git a/google/ads/googleads/v10/common/asset_usage.proto b/google/ads/googleads/v10/common/asset_usage.proto new file mode 100644 index 000000000..fed3ed5f0 --- /dev/null +++ b/google/ads/googleads/v10/common/asset_usage.proto @@ -0,0 +1,39 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/served_asset_field_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AssetUsageProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing asset usage. + +// Contains the usage information of the asset. +message AssetUsage { + // Resource name of the asset. + string asset = 1; + + // The served field type of the asset. + google.ads.googleads.v10.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType served_asset_field_type = 2; +} diff --git a/google/ads/googleads/v10/common/audiences.proto b/google/ads/googleads/v10/common/audiences.proto new file mode 100644 index 000000000..126955c00 --- /dev/null +++ b/google/ads/googleads/v10/common/audiences.proto @@ -0,0 +1,173 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/gender_type.proto"; +import "google/ads/googleads/v10/enums/income_range_type.proto"; +import "google/ads/googleads/v10/enums/parental_status_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AudiencesProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Positive dimension specifying user's audience. +message AudienceDimension { + // Dimension specifying users who belong to the audience. + oneof dimension { + // Dimension specifying users by their age. + AgeDimension age = 1; + + // Dimension specifying users by their gender. + GenderDimension gender = 2; + + // Dimension specifying users by their household income. + HouseholdIncomeDimension household_income = 3; + + // Dimension specifying users by their parental status. + ParentalStatusDimension parental_status = 4; + + // Dimension specifying users by their membership in other audience + // segments. + AudienceSegmentDimension audience_segments = 5; + } +} + +// Negative dimension specifying users to exclude from the audience. +message AudienceExclusionDimension { + // Audience segment to be excluded. + repeated ExclusionSegment exclusions = 1; +} + +// An audience segment to be excluded from an audience. +message ExclusionSegment { + // Segment to be excluded. + oneof segment { + // User list segment to be excluded. + UserListSegment user_list = 1; + } +} + +// Dimension specifying users by their age. +message AgeDimension { + // Contiguous age range to be included in the dimension. + repeated AgeSegment age_ranges = 1; + + // Include users whose age is not determined. + optional bool include_undetermined = 2; +} + +// Contiguous age range. +message AgeSegment { + // Minimum age to include. A minimum age must be specified and must be at + // least 18. Allowed values are 18, 25, 35, 45, 55, and 65. + optional int32 min_age = 1; + + // Maximum age to include. A maximum age need not be specified. If specified, + // max_age must be greater than min_age, and allowed values are 24, 34, 44, + // 54, and 64. + optional int32 max_age = 2; +} + +// Dimension specifying users by their gender. +message GenderDimension { + // Included gender demographic segments. + repeated google.ads.googleads.v10.enums.GenderTypeEnum.GenderType genders = 1; + + // Include users whose gender is not determined. + optional bool include_undetermined = 2; +} + +// Dimension specifying users by their household income. +message HouseholdIncomeDimension { + // Included household income demographic segments. + repeated google.ads.googleads.v10.enums.IncomeRangeTypeEnum.IncomeRangeType income_ranges = 1; + + // Include users whose household income is not determined. + optional bool include_undetermined = 2; +} + +// Dimension specifying users by their parental status. +message ParentalStatusDimension { + // Included parental status demographic segments. + repeated google.ads.googleads.v10.enums.ParentalStatusTypeEnum.ParentalStatusType parental_statuses = 1; + + // Include users whose parental status is undetermined. + optional bool include_undetermined = 2; +} + +// Dimension specifying users by their membership in other audience segments. +message AudienceSegmentDimension { + // Included audience segments. Users are included if they belong to at least + // one segment. + repeated AudienceSegment segments = 1; +} + +// Positive audience segment. +message AudienceSegment { + // Positive segment. + oneof segment { + // User list segment. + UserListSegment user_list = 1; + + // Affinity or In-market segment. + UserInterestSegment user_interest = 2; + + // Live-event audience segment. + LifeEventSegment life_event = 3; + + // Detailed demographic segment. + DetailedDemographicSegment detailed_demographic = 4; + + // Custom audience segment. + CustomAudienceSegment custom_audience = 5; + } +} + +// User list segment. +message UserListSegment { + // The user list resource. + optional string user_list = 1; +} + +// User interest segment. +message UserInterestSegment { + // The user interest resource. + optional string user_interest_category = 1; +} + +// Live event segment. +message LifeEventSegment { + // The life event resource. + optional string life_event = 1; +} + +// Detailed demographic segment. +message DetailedDemographicSegment { + // The detailed demographic resource. + optional string detailed_demographic = 1; +} + +// Custom audience segment. +message CustomAudienceSegment { + // The custom audience resource. + optional string custom_audience = 1; +} diff --git a/google/ads/googleads/v10/common/bidding.proto b/google/ads/googleads/v10/common/bidding.proto new file mode 100644 index 000000000..66c84ea04 --- /dev/null +++ b/google/ads/googleads/v10/common/bidding.proto @@ -0,0 +1,199 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/target_impression_share_location.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "BiddingProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing bidding schemes. + +// Commission is an automatic bidding strategy in which the advertiser pays a +// certain portion of the conversion value. +message Commission { + // Commission rate defines the portion of the conversion value that the + // advertiser will be billed. A commission rate of x should be passed into + // this field as (x * 1,000,000). For example, 106,000 represents a commission + // rate of 0.106 (10.6%). + optional int64 commission_rate_micros = 2; +} + +// An automated 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. +message EnhancedCpc { + +} + +// Manual click-based bidding where user pays per click. +message ManualCpc { + // Whether bids are to be enhanced based on conversion optimizer data. + optional bool enhanced_cpc_enabled = 2; +} + +// Manual impression-based bidding where user pays per thousand impressions. +message ManualCpm { + +} + +// View based bidding where user pays per video view. +message ManualCpv { + +} + +// An automated bidding strategy to help get the most conversions for your +// campaigns while spending your budget. +message MaximizeConversions { + // The target cost-per-action (CPA) option. This is the average amount that + // you would like to spend per conversion action specified in micro units of + // the bidding strategy's currency. If set, the bid strategy will get as many + // conversions as possible at or below the target cost-per-action. If the + // target CPA is not set, the bid strategy will aim to achieve the lowest + // possible CPA given the budget. + int64 target_cpa = 1; + + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + int64 cpc_bid_ceiling_micros = 2; + + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + int64 cpc_bid_floor_micros = 3; +} + +// An automated bidding strategy to help get the most conversion value for your +// campaigns while spending your budget. +message MaximizeConversionValue { + // 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 = 2; + + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + int64 cpc_bid_ceiling_micros = 3; + + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + int64 cpc_bid_floor_micros = 4; +} + +// 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 { + // 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 = 4; + + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + optional int64 cpc_bid_ceiling_micros = 5; + + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + optional int64 cpc_bid_floor_micros = 6; +} + +// Target CPM (cost per thousand impressions) is an automated bidding strategy +// that sets bids to optimize performance given the target CPM you set. +message TargetCpm { + +} + +// 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 { + // The targeted location on the search results page. + google.ads.googleads.v10.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1; + + // The desired fraction of ads to be shown in the targeted location in micros. + // E.g. 1% equals 10,000. + optional int64 location_fraction_micros = 4; + + // 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 = 5; +} + +// An automated bidding strategy that helps you maximize revenue while +// averaging a specific target return on ad spend (ROAS). +message TargetRoas { + // Required. The desired revenue (based on conversion data) per unit of spend. + // Value must be between 0.01 and 1000.0, inclusive. + optional double target_roas = 4; + + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + optional int64 cpc_bid_ceiling_micros = 5; + + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + optional int64 cpc_bid_floor_micros = 6; +} + +// 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. + // 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 = 3 [deprecated = true]; + + // 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 = 4; +} + +// A bidding strategy where bids are a fraction of the advertised price for +// some good or service. +message PercentCpc { + // Maximum bid limit that can be set by the bid strategy. This is + // an optional field entered by the advertiser and specified in local micros. + // Note: A zero value is interpreted in the same way as having bid_ceiling + // undefined. + optional int64 cpc_bid_ceiling_micros = 3; + + // Adjusts the bid for each auction upward or downward, depending on the + // likelihood of a conversion. Individual bids may exceed + // cpc_bid_ceiling_micros, but the average bid amount for a campaign should + // not. + optional bool enhanced_cpc_enabled = 4; +} diff --git a/google/ads/googleads/v10/common/click_location.proto b/google/ads/googleads/v10/common/click_location.proto new file mode 100644 index 000000000..8fe94caf2 --- /dev/null +++ b/google/ads/googleads/v10/common/click_location.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ClickLocationProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing a ClickLocation. + +// Location criteria associated with a click. +message ClickLocation { + // The city location criterion associated with the impression. + optional string city = 6; + + // The country location criterion associated with the impression. + optional string country = 7; + + // The metro location criterion associated with the impression. + optional string metro = 8; + + // The most specific location criterion associated with the impression. + optional string most_specific = 9; + + // The region location criterion associated with the impression. + optional string region = 10; +} diff --git a/google/ads/googleads/v10/common/criteria.proto b/google/ads/googleads/v10/common/criteria.proto new file mode 100644 index 000000000..abdfa9310 --- /dev/null +++ b/google/ads/googleads/v10/common/criteria.proto @@ -0,0 +1,696 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/age_range_type.proto"; +import "google/ads/googleads/v10/enums/app_payment_model_type.proto"; +import "google/ads/googleads/v10/enums/content_label_type.proto"; +import "google/ads/googleads/v10/enums/day_of_week.proto"; +import "google/ads/googleads/v10/enums/device.proto"; +import "google/ads/googleads/v10/enums/gender_type.proto"; +import "google/ads/googleads/v10/enums/hotel_date_selection_type.proto"; +import "google/ads/googleads/v10/enums/income_range_type.proto"; +import "google/ads/googleads/v10/enums/interaction_type.proto"; +import "google/ads/googleads/v10/enums/keyword_match_type.proto"; +import "google/ads/googleads/v10/enums/listing_group_type.proto"; +import "google/ads/googleads/v10/enums/location_group_radius_units.proto"; +import "google/ads/googleads/v10/enums/minute_of_hour.proto"; +import "google/ads/googleads/v10/enums/parental_status_type.proto"; +import "google/ads/googleads/v10/enums/preferred_content_type.proto"; +import "google/ads/googleads/v10/enums/product_bidding_category_level.proto"; +import "google/ads/googleads/v10/enums/product_channel.proto"; +import "google/ads/googleads/v10/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v10/enums/product_condition.proto"; +import "google/ads/googleads/v10/enums/product_custom_attribute_index.proto"; +import "google/ads/googleads/v10/enums/product_type_level.proto"; +import "google/ads/googleads/v10/enums/proximity_radius_units.proto"; +import "google/ads/googleads/v10/enums/webpage_condition_operand.proto"; +import "google/ads/googleads/v10/enums/webpage_condition_operator.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "CriteriaProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing criteria types. + +// A keyword criterion. +message KeywordInfo { + // The text of the keyword (at most 80 characters and 10 words). + optional string text = 3; + + // The match type of the keyword. + google.ads.googleads.v10.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; +} + +// A placement criterion. This can be used to modify bids for sites when +// targeting the content network. +message PlacementInfo { + // URL of the placement. + // + // For example, "http://www.domain.com". + optional string url = 2; +} + +// A mobile app category criterion. +message MobileAppCategoryInfo { + // The mobile app category constant resource name. + optional string mobile_app_category_constant = 2; +} + +// A mobile application criterion. +message MobileApplicationInfo { + // A string that uniquely identifies a mobile application to Google Ads API. + // The format of this string is "{platform}-{platform_native_id}", where + // platform is "1" for iOS apps and "2" for Android apps, and where + // platform_native_id is the mobile application identifier native to the + // corresponding platform. + // For iOS, this native identifier is the 9 digit string that appears at the + // end of an App Store URL (e.g., "476943146" for "Flood-It! 2" whose App + // Store link is "http://itunes.apple.com/us/app/flood-it!-2/id476943146"). + // For Android, this native identifier is the application's package name + // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link + // "https://play.google.com/store/apps/details?id=com.labpixies.colordrips"). + // A well formed app id for Google Ads API would thus be "1-476943146" for iOS + // and "2-com.labpixies.colordrips" for Android. + // This field is required and must be set in CREATE operations. + optional string app_id = 4; + + // Name of this mobile application. + optional string name = 5; +} + +// A location criterion. +message LocationInfo { + // The geo target constant resource name. + optional string geo_target_constant = 2; +} + +// A device criterion. +message DeviceInfo { + // Type of the device. + google.ads.googleads.v10.enums.DeviceEnum.Device type = 1; +} + +// A preferred content criterion. +message PreferredContentInfo { + // Type of the preferred content. + google.ads.googleads.v10.enums.PreferredContentTypeEnum.PreferredContentType type = 2; +} + +// A listing group criterion. +message ListingGroupInfo { + // Type of the listing group. + google.ads.googleads.v10.enums.ListingGroupTypeEnum.ListingGroupType type = 1; + + // Dimension value with which this listing group is refining its parent. + // Undefined for the root group. + ListingDimensionInfo case_value = 2; + + // Resource name of ad group criterion which is the parent listing group + // subdivision. Null for the root group. + optional string parent_ad_group_criterion = 4; +} + +// A listing scope criterion. +message ListingScopeInfo { + // Scope of the campaign criterion. + repeated ListingDimensionInfo dimensions = 2; +} + +// Listing dimensions for listing group criterion. +message ListingDimensionInfo { + // Dimension of one of the types below is always present. + oneof dimension { + // Advertiser-specific hotel ID. + HotelIdInfo hotel_id = 2; + + // Class of the hotel as a number of stars 1 to 5. + HotelClassInfo hotel_class = 3; + + // Country or Region the hotel is located in. + HotelCountryRegionInfo hotel_country_region = 4; + + // State the hotel is located in. + HotelStateInfo hotel_state = 5; + + // City the hotel is located in. + HotelCityInfo hotel_city = 6; + + // Bidding category of a product offer. + ProductBiddingCategoryInfo product_bidding_category = 13; + + // Brand of a product offer. + ProductBrandInfo product_brand = 15; + + // Locality of a product offer. + ProductChannelInfo product_channel = 8; + + // Availability of a product offer. + ProductChannelExclusivityInfo product_channel_exclusivity = 9; + + // Condition of a product offer. + ProductConditionInfo product_condition = 10; + + // Custom attribute of a product offer. + ProductCustomAttributeInfo product_custom_attribute = 16; + + // Item id of a product offer. + ProductItemIdInfo product_item_id = 11; + + // Type of a product offer. + ProductTypeInfo product_type = 12; + + // Grouping of a product offer. + ProductGroupingInfo product_grouping = 17; + + // Labels of a product offer. + ProductLabelsInfo product_labels = 18; + + // Legacy condition of a product offer. + ProductLegacyConditionInfo product_legacy_condition = 19; + + // Full type of a product offer. + ProductTypeFullInfo product_type_full = 20; + + // Unknown dimension. Set when no other listing dimension is set. + UnknownListingDimensionInfo unknown_listing_dimension = 14; + } +} + +// Advertiser-specific hotel ID. +message HotelIdInfo { + // String value of the hotel ID. + optional string value = 2; +} + +// Class of the hotel as a number of stars 1 to 5. +message HotelClassInfo { + // Long value of the hotel class. + optional int64 value = 2; +} + +// Country or Region the hotel is located in. +message HotelCountryRegionInfo { + // The Geo Target Constant resource name. + optional string country_region_criterion = 2; +} + +// State the hotel is located in. +message HotelStateInfo { + // The Geo Target Constant resource name. + optional string state_criterion = 2; +} + +// City the hotel is located in. +message HotelCityInfo { + // The Geo Target Constant resource name. + optional string city_criterion = 2; +} + +// Bidding category of a product offer. +message ProductBiddingCategoryInfo { + // 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 = 4; + + // Two-letter upper-case country code of the product bidding category. It must + // match the campaign.shopping_setting.sales_country field. + optional string country_code = 5; + + // Level of the product bidding category. + google.ads.googleads.v10.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 3; +} + +// Brand of the product. +message ProductBrandInfo { + // String value of the product brand. + optional string value = 2; +} + +// Locality of a product offer. +message ProductChannelInfo { + // Value of the locality. + google.ads.googleads.v10.enums.ProductChannelEnum.ProductChannel channel = 1; +} + +// Availability of a product offer. +message ProductChannelExclusivityInfo { + // Value of the availability. + google.ads.googleads.v10.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity channel_exclusivity = 1; +} + +// Condition of a product offer. +message ProductConditionInfo { + // Value of the condition. + google.ads.googleads.v10.enums.ProductConditionEnum.ProductCondition condition = 1; +} + +// Custom attribute of a product offer. +message ProductCustomAttributeInfo { + // String value of the product custom attribute. + optional string value = 3; + + // Indicates the index of the custom attribute. + google.ads.googleads.v10.enums.ProductCustomAttributeIndexEnum.ProductCustomAttributeIndex index = 2; +} + +// Item id of a product offer. +message ProductItemIdInfo { + // Value of the id. + optional string value = 2; +} + +// Type of a product offer. +message ProductTypeInfo { + // Value of the type. + optional string value = 3; + + // Level of the type. + google.ads.googleads.v10.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2; +} + +// Grouping of a product offer. This listing dimension is deprecated and it is +// supported only in Display campaigns. +message ProductGroupingInfo { + // String value of the product grouping. + optional string value = 1; +} + +// Labels of a product offer. This listing dimension is deprecated and it is +// supported only in Display campaigns. +message ProductLabelsInfo { + // String value of the product labels. + optional string value = 1; +} + +// Legacy condition of a product offer. This listing dimension is deprecated and +// it is supported only in Display campaigns. +message ProductLegacyConditionInfo { + // String value of the product legacy condition. + optional string value = 1; +} + +// Full type of a product offer. This listing dimension is deprecated and it is +// supported only in Display campaigns. +message ProductTypeFullInfo { + // String value of the product full type. + optional string value = 1; +} + +// Unknown listing dimension. +message UnknownListingDimensionInfo { + +} + +// Criterion for hotel date selection (default dates vs. user selected). +message HotelDateSelectionTypeInfo { + // Type of the hotel date selection + google.ads.googleads.v10.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType type = 1; +} + +// Criterion for number of days prior to the stay the booking is being made. +message HotelAdvanceBookingWindowInfo { + // Low end of the number of days prior to the stay. + optional int64 min_days = 3; + + // High end of the number of days prior to the stay. + optional int64 max_days = 4; +} + +// Criterion for length of hotel stay in nights. +message HotelLengthOfStayInfo { + // Low end of the number of nights in the stay. + optional int64 min_nights = 3; + + // High end of the number of nights in the stay. + optional int64 max_nights = 4; +} + +// Criterion for a check-in date range. +message HotelCheckInDateRangeInfo { + // Start date in the YYYY-MM-DD format. + string start_date = 1; + + // End date in the YYYY-MM-DD format. + string end_date = 2; +} + +// Criterion for day of the week the booking is for. +message HotelCheckInDayInfo { + // The day of the week. + google.ads.googleads.v10.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1; +} + +// Criterion for Interaction Type. +message InteractionTypeInfo { + // The interaction type. + google.ads.googleads.v10.enums.InteractionTypeEnum.InteractionType type = 1; +} + +// Represents an AdSchedule criterion. +// +// AdSchedule is specified as the day of the week and a time interval +// within which ads will be shown. +// +// No more than six AdSchedules can be added for the same day. +message AdScheduleInfo { + // Minutes after the start hour at which this schedule starts. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + google.ads.googleads.v10.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.v10.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; + + // Starting hour in 24 hour time. + // This field must be between 0 and 23, inclusive. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + optional int32 start_hour = 6; + + // Ending hour in 24 hour time; 24 signifies end of the day. + // This field must be between 0 and 24, inclusive. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + optional int32 end_hour = 7; + + // Day of the week the schedule applies to. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + google.ads.googleads.v10.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; +} + +// An age range criterion. +message AgeRangeInfo { + // Type of the age range. + google.ads.googleads.v10.enums.AgeRangeTypeEnum.AgeRangeType type = 1; +} + +// A gender criterion. +message GenderInfo { + // Type of the gender. + google.ads.googleads.v10.enums.GenderTypeEnum.GenderType type = 1; +} + +// An income range criterion. +message IncomeRangeInfo { + // Type of the income range. + google.ads.googleads.v10.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1; +} + +// A parental status criterion. +message ParentalStatusInfo { + // Type of the parental status. + google.ads.googleads.v10.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1; +} + +// A YouTube Video criterion. +message YouTubeVideoInfo { + // YouTube video id as it appears on the YouTube watch page. + optional string video_id = 2; +} + +// A YouTube Channel criterion. +message YouTubeChannelInfo { + // The YouTube uploader channel id or the channel code of a YouTube channel. + optional string channel_id = 2; +} + +// A User List criterion. Represents a user list that is defined by the +// advertiser to be targeted. +message UserListInfo { + // The User List resource name. + optional string user_list = 2; +} + +// A Proximity criterion. The geo point and radius determine what geographical +// area is included. The address is a description of the geo point that does +// not affect ad serving. +// +// There are two ways to create a proximity. First, by setting an address +// and radius. The geo point will be automatically computed. Second, by +// setting a geo point and radius. The address is an optional label that won't +// be validated. +message ProximityInfo { + // Latitude and longitude. + GeoPointInfo geo_point = 1; + + // The radius of the proximity. + optional double radius = 5; + + // The unit of measurement of the radius. Default is KILOMETERS. + google.ads.googleads.v10.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3; + + // Full address. + AddressInfo address = 4; +} + +// Geo point for proximity criterion. +message GeoPointInfo { + // Micro degrees for the longitude. + optional int32 longitude_in_micro_degrees = 3; + + // Micro degrees for the latitude. + optional int32 latitude_in_micro_degrees = 4; +} + +// Address for proximity criterion. +message AddressInfo { + // Postal code. + optional string postal_code = 8; + + // Province or state code. + optional string province_code = 9; + + // Country code. + optional string country_code = 10; + + // Province or state name. + optional string province_name = 11; + + // Street address line 1. + optional string street_address = 12; + + // Street address line 2. This field is write-only. It is only used for + // calculating the longitude and latitude of an address when geo_point is + // empty. + optional string street_address2 = 13; + + // Name of the city. + optional string city_name = 14; +} + +// A topic criterion. Use topics to target or exclude placements in the +// Google Display Network based on the category into which the placement falls +// (for example, "Pets & Animals/Pets/Dogs"). +message TopicInfo { + // The Topic Constant resource name. + optional string topic_constant = 3; + + // The category to target or exclude. Each subsequent element in the array + // describes a more specific sub-category. For example, + // "Pets & Animals", "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs" + // category. + repeated string path = 4; +} + +// A language criterion. +message LanguageInfo { + // The language constant resource name. + optional string language_constant = 2; +} + +// An IpBlock criterion used for IP exclusions. We allow: +// - IPv4 and IPv6 addresses +// - individual addresses (192.168.0.1) +// - masks for individual addresses (192.168.0.1/32) +// - masks for Class C networks (192.168.0.1/24) +message IpBlockInfo { + // The IP address of this IP block. + optional string ip_address = 2; +} + +// Content Label for category exclusion. +message ContentLabelInfo { + // Content label type, required for CREATE operations. + google.ads.googleads.v10.enums.ContentLabelTypeEnum.ContentLabelType type = 1; +} + +// Represents a Carrier Criterion. +message CarrierInfo { + // The Carrier constant resource name. + optional string carrier_constant = 2; +} + +// Represents a particular interest-based topic to be targeted. +message UserInterestInfo { + // The UserInterest resource name. + optional string user_interest_category = 2; +} + +// Represents a criterion for targeting webpages of an advertiser's website. +message WebpageInfo { + // The name of the criterion that is defined by this parameter. The name value + // will be used for identifying, sorting and filtering criteria with this type + // of parameters. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + optional string criterion_name = 3; + + // Conditions, or logical expressions, for webpage targeting. The list of + // webpage targeting conditions are and-ed together when evaluated + // for targeting. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + repeated WebpageConditionInfo conditions = 2; + + // Website criteria coverage percentage. This is the computed percentage + // of website coverage based on the website target, negative website target + // and negative keywords in the ad group and campaign. For instance, when + // coverage returns as 1, it indicates it has 100% coverage. This field is + // read-only. + double coverage_percentage = 4; + + // List of sample urls that match the website target. This field is read-only. + WebpageSampleInfo sample = 5; +} + +// Logical expression for targeting webpages of an advertiser's website. +message WebpageConditionInfo { + // Operand of webpage targeting condition. + google.ads.googleads.v10.enums.WebpageConditionOperandEnum.WebpageConditionOperand operand = 1; + + // Operator of webpage targeting condition. + google.ads.googleads.v10.enums.WebpageConditionOperatorEnum.WebpageConditionOperator operator = 2; + + // Argument of webpage targeting condition. + optional string argument = 4; +} + +// List of sample urls that match the website target +message WebpageSampleInfo { + // Webpage sample urls + repeated string sample_urls = 1; +} + +// Represents an operating system version to be targeted. +message OperatingSystemVersionInfo { + // The operating system version constant resource name. + optional string operating_system_version_constant = 2; +} + +// An app payment model criterion. +message AppPaymentModelInfo { + // Type of the app payment model. + google.ads.googleads.v10.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1; +} + +// A mobile device criterion. +message MobileDeviceInfo { + // The mobile device constant resource name. + optional string mobile_device_constant = 2; +} + +// A custom affinity criterion. +// A criterion of this type is only targetable. +message CustomAffinityInfo { + // The CustomInterest resource name. + optional string custom_affinity = 2; +} + +// A custom intent criterion. +// A criterion of this type is only targetable. +message CustomIntentInfo { + // The CustomInterest resource name. + optional string custom_intent = 2; +} + +// A radius around a list of locations specified via a feed. +message LocationGroupInfo { + // Feed specifying locations for targeting. + // This is required and must be set in CREATE operations. + optional string feed = 5; + + // Geo target constant(s) restricting the scope of the geographic area within + // the feed. Currently only one geo target constant is allowed. + repeated string geo_target_constants = 6; + + // Distance in units specifying the radius around targeted locations. + // This is required and must be set in CREATE operations. + optional int64 radius = 7; + + // Unit of the radius. Miles and meters are supported for geo target + // constants. Milli miles and meters are supported for feed item sets. + // This is required and must be set in CREATE operations. + google.ads.googleads.v10.enums.LocationGroupRadiusUnitsEnum.LocationGroupRadiusUnits radius_units = 4; + + // FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, + // then all items that appear in at least one set are targeted. This field + // cannot be used with geo_target_constants. This is optional and can only be + // set in CREATE operations. + repeated string feed_item_sets = 8; +} + +// A custom audience criterion. +message CustomAudienceInfo { + // The CustomAudience resource name. + string custom_audience = 1; +} + +// A combined audience criterion. +message CombinedAudienceInfo { + // The CombinedAudience resource name. + string combined_audience = 1; +} + +// An audience criterion. +message AudienceInfo { + // The Audience resource name. + string audience = 1; +} + +// A Smart Campaign keyword theme. +message KeywordThemeInfo { + // Either a predefined keyword theme constant or free-form text may be + // specified. + 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; + + // Free-form text to be matched to a Smart Campaign keyword theme constant + // on a best-effort basis. + string free_form_keyword_theme = 2; + } +} diff --git a/google/ads/googleads/v10/common/criterion_category_availability.proto b/google/ads/googleads/v10/common/criterion_category_availability.proto new file mode 100644 index 000000000..dd6f5165f --- /dev/null +++ b/google/ads/googleads/v10/common/criterion_category_availability.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/advertising_channel_sub_type.proto"; +import "google/ads/googleads/v10/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v10/enums/criterion_category_channel_availability_mode.proto"; +import "google/ads/googleads/v10/enums/criterion_category_locale_availability_mode.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "CriterionCategoryAvailabilityProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing criterion category availability information. + +// Information of category availability, per advertising channel. +message CriterionCategoryAvailability { + // Channel types and subtypes that are available to the category. + CriterionCategoryChannelAvailability channel = 1; + + // Locales that are available to the category for the channel. + repeated CriterionCategoryLocaleAvailability locale = 2; +} + +// Information of advertising channel type and subtypes a category is available +// in. +message CriterionCategoryChannelAvailability { + // Format of the channel availability. Can be ALL_CHANNELS (the rest of the + // fields will not be set), CHANNEL_TYPE (only advertising_channel_type type + // will be set, the category is available to all sub types under it) or + // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, + // advertising_channel_sub_type, and include_default_channel_sub_type will all + // be set). + google.ads.googleads.v10.enums.CriterionCategoryChannelAvailabilityModeEnum.CriterionCategoryChannelAvailabilityMode availability_mode = 1; + + // Channel type the category is available to. + google.ads.googleads.v10.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 2; + + // Channel subtypes under the channel type the category is available to. + repeated google.ads.googleads.v10.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 3; + + // Whether default channel sub type is included. For example, + // advertising_channel_type being DISPLAY and include_default_channel_sub_type + // being false means that the default display campaign where channel sub type + // is not set is not included in this availability configuration. + optional bool include_default_channel_sub_type = 5; +} + +// Information about which locales a category is available in. +message CriterionCategoryLocaleAvailability { + // Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and + // 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.v10.enums.CriterionCategoryLocaleAvailabilityModeEnum.CriterionCategoryLocaleAvailabilityMode availability_mode = 1; + + // Code of the country. + optional string country_code = 4; + + // Code of the language. + optional string language_code = 5; +} diff --git a/google/ads/googleads/v10/common/custom_parameter.proto b/google/ads/googleads/v10/common/custom_parameter.proto new file mode 100644 index 000000000..b7ee8e673 --- /dev/null +++ b/google/ads/googleads/v10/common/custom_parameter.proto @@ -0,0 +1,38 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "CustomParameterProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing CustomParameter and operation + +// A mapping that can be used by custom parameter tags in a +// `tracking_url_template`, `final_urls`, or `mobile_final_urls`. +message CustomParameter { + // The key matching the parameter tag name. + optional string key = 3; + + // The value to be substituted. + optional string value = 4; +} diff --git a/google/ads/googleads/v10/common/customizer_value.proto b/google/ads/googleads/v10/common/customizer_value.proto new file mode 100644 index 000000000..cce674262 --- /dev/null +++ b/google/ads/googleads/v10/common/customizer_value.proto @@ -0,0 +1,44 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/customizer_attribute_type.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerValueProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing common customizer value proto messages. + +// A customizer value that is referenced in customizer linkage entities +// like CustomerCustomizer, CampaignCustomizer, etc. +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.v10.enums.CustomizerAttributeTypeEnum.CustomizerAttributeType type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Value to insert in creative text. Customizer values of all types are stored + // as string to make formatting unambiguous. + string string_value = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v10/common/dates.proto b/google/ads/googleads/v10/common/dates.proto new file mode 100644 index 000000000..2796d68c0 --- /dev/null +++ b/google/ads/googleads/v10/common/dates.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/month_of_year.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "DatesProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing date range message. + +// A date range. +message DateRange { + // The start date, in yyyy-mm-dd format. This date is inclusive. + optional string start_date = 3; + + // The end date, in yyyy-mm-dd format. This date is inclusive. + optional string end_date = 4; +} + +// The year month range inclusive of the start and end months. +// Eg: A year month range to represent Jan 2020 would be: (Jan 2020, Jan 2020). +message YearMonthRange { + // The inclusive start year month. + YearMonth start = 1; + + // The inclusive end year month. + YearMonth end = 2; +} + +// Year month. +message YearMonth { + // The year (e.g. 2020). + int64 year = 1; + + // The month of the year. (e.g. FEBRUARY). + google.ads.googleads.v10.enums.MonthOfYearEnum.MonthOfYear month = 2; +} diff --git a/google/ads/googleads/v10/common/explorer_auto_optimizer_setting.proto b/google/ads/googleads/v10/common/explorer_auto_optimizer_setting.proto new file mode 100644 index 000000000..670ca966d --- /dev/null +++ b/google/ads/googleads/v10/common/explorer_auto_optimizer_setting.proto @@ -0,0 +1,36 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ExplorerAutoOptimizerSettingProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing ExplorerAutoOptimizerSetting + +// Settings for the Display Campaign Optimizer, initially named "Explorer". +// Learn more about +// [automatic targeting](https://support.google.com/google-ads/answer/190596). +message ExplorerAutoOptimizerSetting { + // Indicates whether the optimizer is turned on. + optional bool opt_in = 2; +} diff --git a/google/ads/googleads/v10/common/extensions.proto b/google/ads/googleads/v10/common/extensions.proto new file mode 100644 index 000000000..ea8563206 --- /dev/null +++ b/google/ads/googleads/v10/common/extensions.proto @@ -0,0 +1,367 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/common/custom_parameter.proto"; +import "google/ads/googleads/v10/common/feed_common.proto"; +import "google/ads/googleads/v10/enums/app_store.proto"; +import "google/ads/googleads/v10/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v10/enums/price_extension_price_qualifier.proto"; +import "google/ads/googleads/v10/enums/price_extension_price_unit.proto"; +import "google/ads/googleads/v10/enums/price_extension_type.proto"; +import "google/ads/googleads/v10/enums/promotion_extension_discount_modifier.proto"; +import "google/ads/googleads/v10/enums/promotion_extension_occasion.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionsProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing extension types. + +// Represents an App extension. +message AppFeedItem { + // The visible text displayed when the link is rendered in an ad. + // This string must not be empty, and the length of this string should + // be between 1 and 25, inclusive. + optional string link_text = 9; + + // The store-specific ID for the target application. + // This string must not be empty. + optional string app_id = 10; + + // The application store that the target application belongs to. + // This field is required. + google.ads.googleads.v10.enums.AppStoreEnum.AppStore app_store = 3; + + // A list of possible final URLs after all cross domain redirects. + // This list must not be empty. + repeated string final_urls = 11; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 12; + + // URL template for constructing a tracking URL. Default value is "{lpurl}". + optional string tracking_url_template = 13; + + // 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 CustomParameter url_custom_parameters = 7; + + // URL template for appending params to landing page URLs served with parallel + // tracking. + optional string final_url_suffix = 14; +} + +// Represents a Call extension. +message CallFeedItem { + // The advertiser's phone number to append to the ad. + // This string must not be empty. + optional string phone_number = 7; + + // Uppercase two-letter country code of the advertiser's phone number. + // This string must not be empty. + optional string country_code = 8; + + // Indicates whether call tracking is enabled. By default, call tracking is + // not enabled. + optional bool call_tracking_enabled = 9; + + // The conversion action to attribute a call conversion to. If not set a + // default conversion action is used. This field only has effect if + // call_tracking_enabled is set to true. Otherwise this field is ignored. + optional string call_conversion_action = 10; + + // If true, disable call conversion tracking. call_conversion_action should + // not be set if this is true. Optional. + optional bool call_conversion_tracking_disabled = 11; + + // 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.v10.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 6; +} + +// Represents a callout extension. +message CalloutFeedItem { + // The callout text. + // The length of this string should be between 1 and 25, inclusive. + optional string callout_text = 2; +} + +// Represents a location extension. +message LocationFeedItem { + // The name of the business. + optional string business_name = 9; + + // Line 1 of the business address. + optional string address_line_1 = 10; + + // Line 2 of the business address. + optional string address_line_2 = 11; + + // City of the business address. + optional string city = 12; + + // Province of the business address. + optional string province = 13; + + // Postal code of the business address. + optional string postal_code = 14; + + // Country code of the business address. + optional string country_code = 15; + + // Phone number of the business. + optional string phone_number = 16; +} + +// Represents an affiliate location extension. +message AffiliateLocationFeedItem { + // The name of the business. + optional string business_name = 11; + + // Line 1 of the business address. + optional string address_line_1 = 12; + + // Line 2 of the business address. + optional string address_line_2 = 13; + + // City of the business address. + optional string city = 14; + + // Province of the business address. + optional string province = 15; + + // Postal code of the business address. + optional string postal_code = 16; + + // Country code of the business address. + optional string country_code = 17; + + // Phone number of the business. + optional string phone_number = 18; + + // Id of the retail chain that is advertised as a seller of your product. + optional int64 chain_id = 19; + + // Name of chain. + optional string chain_name = 20; +} + +// An extension that users can click on to send a text message to the +// advertiser. +message TextMessageFeedItem { + // The business name to prepend to the message text. + // This field is required. + optional string business_name = 6; + + // Uppercase two-letter country code of the advertiser's phone number. + // This field is required. + optional string country_code = 7; + + // The advertiser's phone number the message will be sent to. Required. + optional string phone_number = 8; + + // The text to show in the ad. + // This field is required. + optional string text = 9; + + // The message extension_text populated in the messaging app. + optional string extension_text = 10; +} + +// Represents a Price extension. +message PriceFeedItem { + // Price extension type of this extension. + google.ads.googleads.v10.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1; + + // Price qualifier for all offers of this price extension. + google.ads.googleads.v10.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2; + + // Tracking URL template for all offers of this price extension. + optional string tracking_url_template = 7; + + // The code of the language used for this price extension. + optional string language_code = 8; + + // The price offerings in this price extension. + repeated PriceOffer price_offerings = 5; + + // Tracking URL template for all offers of this price extension. + optional string final_url_suffix = 9; +} + +// Represents one price offer in a price extension. +message PriceOffer { + // Header text of this offer. + optional string header = 7; + + // Description text of this offer. + optional string description = 8; + + // Price value of this offer. + Money price = 3; + + // Price unit for this offer. + google.ads.googleads.v10.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4; + + // A list of possible final URLs after all cross domain redirects. + repeated string final_urls = 9; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 10; +} + +// Represents a Promotion extension. +message PromotionFeedItem { + // A freeform description of what the promotion is targeting. + // This field is required. + optional string promotion_target = 16; + + // Enum that modifies the qualification of the discount. + google.ads.googleads.v10.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2; + + // Start date of when the promotion is eligible to be redeemed. + optional string promotion_start_date = 19; + + // Last date when the promotion is eligible to be redeemed. + optional string promotion_end_date = 20; + + // 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.v10.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9; + + // A list of possible final URLs after all cross domain redirects. + // This field is required. + repeated string final_urls = 21; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 22; + + // URL template for constructing a tracking URL. + optional string tracking_url_template = 23; + + // 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 CustomParameter url_custom_parameters = 13; + + // URL template for appending params to landing page URLs served with parallel + // tracking. + optional string final_url_suffix = 24; + + // The language of the promotion. + // Represented as BCP 47 language tag. + optional string language_code = 25; + + // Discount type, can be percentage off or amount off. + oneof discount_type { + // Percentage off discount in the promotion in micros. + // One million is equivalent to one percent. + // Either this or money_off_amount is required. + int64 percent_off = 17; + + // Money amount off for discount in the promotion. + // Either this or percent_off is required. + Money money_amount_off = 4; + } + + // Promotion trigger. Can be by promotion code or promo by eligible order + // amount. + oneof promotion_trigger { + // A code the user should use in order to be eligible for the promotion. + string promotion_code = 18; + + // The amount the total order needs to be for the user to be eligible for + // the promotion. + Money orders_over_amount = 6; + } +} + +// Represents a structured snippet extension. +message StructuredSnippetFeedItem { + // The header of the snippet. + // This string must not be empty. + optional string header = 3; + + // The values in the snippet. + // The maximum size of this collection is 10. + repeated string values = 4; +} + +// Represents a sitelink extension. +message SitelinkFeedItem { + // URL display text for the sitelink. + // The length of this string should be between 1 and 25, inclusive. + optional string link_text = 9; + + // First line of the description for the sitelink. + // If this value is set, line2 must also be set. + // The length of this string should be between 0 and 35, inclusive. + optional string line1 = 10; + + // Second line of the description for the sitelink. + // If this value is set, line1 must also be set. + // The length of this string should be between 0 and 35, inclusive. + optional string line2 = 11; + + // A list of possible final URLs after all cross domain redirects. + repeated string final_urls = 12; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 13; + + // URL template for constructing a tracking URL. + optional string tracking_url_template = 14; + + // 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 CustomParameter url_custom_parameters = 7; + + // Final URL suffix to be appended to landing page URLs served with + // parallel tracking. + optional string final_url_suffix = 15; +} + +// Represents a hotel callout extension. +message HotelCalloutFeedItem { + // The callout text. + // The length of this string should be between 1 and 25, inclusive. + optional string text = 3; + + // The language of the hotel callout text. + // IETF BCP 47 compliant language code. + optional string language_code = 4; +} + +// Represents an advertiser provided image extension. +message ImageFeedItem { + // Required. Resource name of the image asset. + string image_asset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; +} diff --git a/google/ads/googleads/v10/common/feed_common.proto b/google/ads/googleads/v10/common/feed_common.proto new file mode 100644 index 000000000..207364ded --- /dev/null +++ b/google/ads/googleads/v10/common/feed_common.proto @@ -0,0 +1,37 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "FeedCommonProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing common feed proto messages. + +// Represents a price in a particular currency. +message Money { + // Three-character ISO 4217 currency code. + optional string currency_code = 3; + + // Amount in micros. One million is equivalent to one unit. + optional int64 amount_micros = 4; +} diff --git a/google/ads/googleads/v10/common/feed_item_set_filter_type_infos.proto b/google/ads/googleads/v10/common/feed_item_set_filter_type_infos.proto new file mode 100644 index 000000000..920694555 --- /dev/null +++ b/google/ads/googleads/v10/common/feed_item_set_filter_type_infos.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/feed_item_set_string_filter_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetFilterTypeInfosProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Represents a filter on locations in a feed item set. +// Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. +message DynamicLocationSetFilter { + // If multiple labels are set, then only feeditems marked with all the labels + // will be added to the FeedItemSet. + repeated string labels = 1; + + // Business name filter. + BusinessNameFilter business_name_filter = 2; +} + +// Represents a business name filter on locations in a FeedItemSet. +message BusinessNameFilter { + // Business name string to use for filtering. + string business_name = 1; + + // The type of string matching to use when filtering with business_name. + google.ads.googleads.v10.enums.FeedItemSetStringFilterTypeEnum.FeedItemSetStringFilterType filter_type = 2; +} + +// Represents a filter on affiliate locations in a FeedItemSet. +// Only applicable if the parent Feed of the FeedItemSet is an +// AFFILIATE_LOCATION feed. +message DynamicAffiliateLocationSetFilter { + // Used to filter affiliate locations by chain ids. Only affiliate locations + // that belong to the specified chain(s) will be added to the FeedItemSet. + repeated int64 chain_ids = 1; +} diff --git a/google/ads/googleads/v10/common/final_app_url.proto b/google/ads/googleads/v10/common/final_app_url.proto new file mode 100644 index 000000000..e72d47684 --- /dev/null +++ b/google/ads/googleads/v10/common/final_app_url.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/app_url_operating_system_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "FinalAppUrlProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::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.v10.enums.AppUrlOperatingSystemTypeEnum.AppUrlOperatingSystemType os_type = 1; + + // The app deep link URL. Deep links specify a location in an app that + // corresponds to the content you'd like to show, and should be of the form + // {scheme}://{host_path} + // The scheme identifies which app to open. For your app, you can use a custom + // scheme that starts with the app's name. The host and path specify the + // unique location in the app where your content exists. + // Example: "exampleapp://productid_1234". Required. + optional string url = 3; +} diff --git a/google/ads/googleads/v10/common/frequency_cap.proto b/google/ads/googleads/v10/common/frequency_cap.proto new file mode 100644 index 000000000..7f75aadb5 --- /dev/null +++ b/google/ads/googleads/v10/common/frequency_cap.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/frequency_cap_event_type.proto"; +import "google/ads/googleads/v10/enums/frequency_cap_level.proto"; +import "google/ads/googleads/v10/enums/frequency_cap_time_unit.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing frequency caps. + +// A rule specifying the maximum number of times an ad (or some set of ads) can +// be shown to a user over a particular time period. +message FrequencyCapEntry { + // The key of a particular frequency cap. There can be no more + // than one frequency cap with the same key. + FrequencyCapKey key = 1; + + // Maximum number of events allowed during the time range by this cap. + optional int32 cap = 3; +} + +// A group of fields used as keys for a frequency cap. +// There can be no more than one frequency cap with the same key. +message FrequencyCapKey { + // The level on which the cap is to be applied (e.g. ad group ad, ad group). + // The cap is applied to all the entities of this level. + google.ads.googleads.v10.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = 1; + + // The type of event that the cap applies to (e.g. impression). + google.ads.googleads.v10.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType event_type = 3; + + // Unit of time the cap is defined at (e.g. day, week). + google.ads.googleads.v10.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2; + + // Number of time units the cap lasts. + optional int32 time_length = 5; +} diff --git a/google/ads/googleads/v10/common/keyword_plan_common.proto b/google/ads/googleads/v10/common/keyword_plan_common.proto new file mode 100644 index 000000000..0f4fd175e --- /dev/null +++ b/google/ads/googleads/v10/common/keyword_plan_common.proto @@ -0,0 +1,148 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/common/dates.proto"; +import "google/ads/googleads/v10/enums/device.proto"; +import "google/ads/googleads/v10/enums/keyword_plan_aggregate_metric_type.proto"; +import "google/ads/googleads/v10/enums/keyword_plan_competition_level.proto"; +import "google/ads/googleads/v10/enums/keyword_plan_concept_group_type.proto"; +import "google/ads/googleads/v10/enums/month_of_year.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCommonProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing Keyword Planner messages. + +// Historical metrics specific to the targeting options selected. +// Targeting options include geographies, network, etc. +// Refer to https://support.google.com/google-ads/answer/3022575 for more +// details. +message KeywordPlanHistoricalMetrics { + // Approximate number of monthly searches on this query averaged + // for the past 12 months. + optional int64 avg_monthly_searches = 7; + + // Approximate number of searches on this query for the past twelve months. + repeated MonthlySearchVolume monthly_search_volumes = 6; + + // The competition level for the query. + google.ads.googleads.v10.enums.KeywordPlanCompetitionLevelEnum.KeywordPlanCompetitionLevel competition = 2; + + // The competition index for the query in the range [0, 100]. + // Shows how competitive ad placement is for a keyword. + // The level of competition from 0-100 is determined by the number of ad slots + // filled divided by the total number of ad slots available. If not enough + // data is available, null is returned. + optional int64 competition_index = 8; + + // Top of page bid low range (20th percentile) in micros for the keyword. + optional int64 low_top_of_page_bid_micros = 9; + + // Top of page bid high range (80th percentile) in micros for the keyword. + optional int64 high_top_of_page_bid_micros = 10; + + // Average Cost Per Click in micros for the keyword. + optional int64 average_cpc_micros = 11; +} + +// Historical metrics options. +message HistoricalMetricsOptions { + // The year month range for historical metrics. If not specified the searches + // will be returned for past 12 months. + // Searches data is available for the past 4 years. If the search volume is + // not available for the entire year_month_range provided, the subset of the + // year month range for which search volume is available will be returned. + optional YearMonthRange year_month_range = 1; + + // Indicates whether to include average cost per click value. + // Average CPC is a legacy value that will be removed and replaced in the + // future, and as such we are including it as an optioanl value so clients + // only use it when strictly necessary and to better track clients that use + // this value. + bool include_average_cpc = 2; +} + +// Monthly search volume. +message MonthlySearchVolume { + // The year of the search volume (e.g. 2020). + optional int64 year = 4; + + // The month of the search volume. + google.ads.googleads.v10.enums.MonthOfYearEnum.MonthOfYear month = 2; + + // Approximate number of searches for the month. + // A null value indicates the search volume is unavailable for + // that month. + optional int64 monthly_searches = 5; +} + +// The aggregate metrics specification of the request. +message KeywordPlanAggregateMetrics { + // The list of aggregate metrics to fetch data. + repeated google.ads.googleads.v10.enums.KeywordPlanAggregateMetricTypeEnum.KeywordPlanAggregateMetricType aggregate_metric_types = 1; +} + +// The aggregated historical metrics for keyword plan keywords. +message KeywordPlanAggregateMetricResults { + // The aggregate searches for all the keywords segmented by device + // for the specified time. + // Supports the following device types: MOBILE, TABLET, DESKTOP. + // + // This is only set when KeywordPlanAggregateMetricTypeEnum.DEVICE is set + // in the KeywordPlanAggregateMetrics field in the request. + repeated KeywordPlanDeviceSearches device_searches = 1; +} + +// The total searches for the device type during the specified time period. +message KeywordPlanDeviceSearches { + // The device type. + google.ads.googleads.v10.enums.DeviceEnum.Device device = 1; + + // The total searches for the device. + optional int64 search_count = 2; +} + +// The Annotations for the Keyword plan keywords. +message KeywordAnnotations { + // The list of concepts for the keyword. + repeated KeywordConcept concepts = 1; +} + +// The concept for the keyword. +message KeywordConcept { + // The concept name for the keyword in the concept_group. + string name = 1; + + // The concept group of the concept details. + ConceptGroup concept_group = 2; +} + +// The concept group for the keyword concept. +message ConceptGroup { + // The concept group name. + string name = 1; + + // The concept group type. + google.ads.googleads.v10.enums.KeywordPlanConceptGroupTypeEnum.KeywordPlanConceptGroupType type = 2; +} diff --git a/google/ads/googleads/v10/common/matching_function.proto b/google/ads/googleads/v10/common/matching_function.proto new file mode 100644 index 000000000..92c296e54 --- /dev/null +++ b/google/ads/googleads/v10/common/matching_function.proto @@ -0,0 +1,125 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/matching_function_context_type.proto"; +import "google/ads/googleads/v10/enums/matching_function_operator.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "MatchingFunctionProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing a matching function. + +// Matching function associated with a +// CustomerFeed, CampaignFeed, or AdGroupFeed. The matching function is used +// to filter the set of feed items selected. +message MatchingFunction { + // String representation of the Function. + // + // Examples: + // + // 1. IDENTITY(true) or IDENTITY(false). All or no feed items served. + // 2. EQUALS(CONTEXT.DEVICE,"Mobile") + // 3. IN(FEED_ITEM_ID,{1000001,1000002,1000003}) + // 4. CONTAINS_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus cruise"}) + // 5. AND(IN(FEED_ITEM_ID,{10001,10002}),EQUALS(CONTEXT.DEVICE,"Mobile")) + // + // For more details, visit + // https://developers.google.com/adwords/api/docs/guides/feed-matching-functions + // + // Note that because multiple strings may represent the same underlying + // function (whitespace and single versus double quotation marks, for + // example), the value returned may not be identical to the string sent in a + // mutate request. + optional string function_string = 5; + + // Operator for a function. + google.ads.googleads.v10.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator operator = 4; + + // The operands on the left hand side of the equation. This is also the + // operand to be used for single operand expressions such as NOT. + repeated Operand left_operands = 2; + + // The operands on the right hand side of the equation. + repeated Operand right_operands = 3; +} + +// An operand in a matching function. +message Operand { + // A constant operand in a matching function. + message ConstantOperand { + // Constant operand values. Required. + oneof constant_operand_value { + // String value of the operand if it is a string type. + string string_value = 5; + + // Int64 value of the operand if it is a int64 type. + int64 long_value = 6; + + // Boolean value of the operand if it is a boolean type. + bool boolean_value = 7; + + // Double value of the operand if it is a double type. + double double_value = 8; + } + } + + // A feed attribute operand in a matching function. + // Used to represent a feed attribute in feed. + message FeedAttributeOperand { + // The associated feed. Required. + optional int64 feed_id = 3; + + // Id of the referenced feed attribute. Required. + optional int64 feed_attribute_id = 4; + } + + // A function operand in a matching function. + // Used to represent nested functions. + message FunctionOperand { + // The matching function held in this operand. + MatchingFunction matching_function = 1; + } + + // 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.v10.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType context_type = 1; + } + + // Different operands that can be used in a matching function. Required. + oneof function_argument_operand { + // A constant operand in a matching function. + ConstantOperand constant_operand = 1; + + // This operand specifies a feed attribute in feed. + FeedAttributeOperand feed_attribute_operand = 2; + + // A function operand in a matching function. + // Used to represent nested functions. + FunctionOperand function_operand = 3; + + // An operand in a function referring to a value in the request context. + RequestContextOperand request_context_operand = 4; + } +} diff --git a/google/ads/googleads/v10/common/metric_goal.proto b/google/ads/googleads/v10/common/metric_goal.proto new file mode 100644 index 000000000..cb63aa634 --- /dev/null +++ b/google/ads/googleads/v10/common/metric_goal.proto @@ -0,0 +1,42 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/experiment_metric.proto"; +import "google/ads/googleads/v10/enums/experiment_metric_direction.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "MetricGoalProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing experiment metric goal. + +// A metric goal for an experiment. +message MetricGoal { + // The metric of the goal. For example, clicks, impressions, cost, + // conversions, etc. + google.ads.googleads.v10.enums.ExperimentMetricEnum.ExperimentMetric metric = 1; + + // The metric direction of the goal. For example, increase, decrease, no + // change. + google.ads.googleads.v10.enums.ExperimentMetricDirectionEnum.ExperimentMetricDirection direction = 2; +} diff --git a/google/ads/googleads/v10/common/metrics.proto b/google/ads/googleads/v10/common/metrics.proto new file mode 100644 index 000000000..2a4f6b08f --- /dev/null +++ b/google/ads/googleads/v10/common/metrics.proto @@ -0,0 +1,632 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/interaction_event_type.proto"; +import "google/ads/googleads/v10/enums/quality_score_bucket.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "MetricsProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::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. + optional double absolute_top_impression_percentage = 183; + + // Average cost of viewable impressions (`active_view_impressions`). + optional double active_view_cpm = 184; + + // Active view measurable clicks divided by active view viewable impressions. + // This metric is reported only for display network. + optional double active_view_ctr = 185; + + // A measurement of how often your ad has become viewable on a Display + // Network site. + optional int64 active_view_impressions = 186; + + // The ratio of impressions that could be measured by Active View over the + // number of served impressions. + optional double active_view_measurability = 187; + + // The cost of the impressions you received that were measurable by Active + // View. + optional int64 active_view_measurable_cost_micros = 188; + + // The number of times your ads are appearing on placements in positions + // where they can be seen. + optional int64 active_view_measurable_impressions = 189; + + // The percentage of time when your ad appeared on an Active View enabled site + // (measurable impressions) and was viewable (viewable impressions). + optional double active_view_viewability = 190; + + // All conversions from interactions (as oppose to view through conversions) + // divided by the number of ad interactions. + optional double all_conversions_from_interactions_rate = 191; + + // The value of all conversions. + optional double all_conversions_value = 192; + + // The value of all conversions. When this column is selected 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_value_by_conversion_date = 240; + + // The total number of conversions. This includes all conversions regardless + // of the value of include_in_conversions_metric. + optional double all_conversions = 193; + + // The total number of conversions. This includes all conversions regardless + // of the value of include_in_conversions_metric. When this column is selected + // 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; + + // The value of all conversions divided by the total cost of ad interactions + // (such as clicks for text ads or views for video ads). + optional double all_conversions_value_per_cost = 194; + + // The number of times people clicked the "Call" button to call a store during + // or after clicking an ad. This number doesn't include whether or not calls + // were connected, or the duration of any calls. + // This metric applies to feed items only. + optional double all_conversions_from_click_to_call = 195; + + // The number of times people clicked a "Get directions" button to navigate to + // a store after clicking an ad. + // This metric applies to feed items only. + optional double all_conversions_from_directions = 196; + + // The value of all conversions from interactions divided by the total number + // of interactions. + optional double all_conversions_from_interactions_value_per_interaction = 197; + + // The number of times people clicked a link to view a store's menu after + // clicking an ad. + // This metric applies to feed items only. + optional double all_conversions_from_menu = 198; + + // The number of times people placed an order at a store after clicking an ad. + // This metric applies to feed items only. + optional double all_conversions_from_order = 199; + + // The number of other conversions (for example, posting a review or saving a + // location for a store) that occurred after people clicked an ad. + // This metric applies to feed items only. + optional double all_conversions_from_other_engagement = 200; + + // Estimated number of times people visited a store after clicking an ad. + // This metric applies to feed items only. + optional double all_conversions_from_store_visit = 201; + + // The number of times that people were taken to a store's URL after clicking + // an ad. + // This metric applies to feed items only. + optional double all_conversions_from_store_website = 202; + + // The average amount you pay per interaction. This amount is the total cost + // of your ads divided by the total number of interactions. + optional double average_cost = 203; + + // The total cost of all clicks divided by the total number of clicks + // received. + optional double average_cpc = 204; + + // The average amount that you've been charged for an ad engagement. This + // amount is the total cost of all ad engagements divided by the total number + // of ad engagements. + optional double average_cpe = 205; + + // Average cost-per-thousand impressions (CPM). + optional double average_cpm = 206; + + // The average amount you pay each time someone views your ad. + // The average CPV is defined by the total cost of all ad views divided by + // the number of views. + optional double average_cpv = 207; + + // Average number of pages viewed per session. + optional double average_page_views = 208; + + // Total duration of all sessions (in seconds) / number of sessions. Imported + // from Google Analytics. + optional double average_time_on_site = 209; + + // An indication of how other advertisers are bidding on similar products. + optional double benchmark_average_max_cpc = 210; + + // Number of app installs. + optional double biddable_app_install_conversions = 254; + + // Number of in-app actions. + optional double biddable_app_post_install_conversions = 255; + + // An indication on how other advertisers' Shopping ads for similar products + // are performing based on how often people who see their ad click on it. + optional double benchmark_ctr = 211; + + // Percentage of clicks where the user only visited a single page on your + // site. Imported from Google Analytics. + optional double bounce_rate = 212; + + // The number of clicks. + optional int64 clicks = 131; + + // The number of times your ad or your site's listing in the unpaid + // results was clicked. See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional int64 combined_clicks = 156; + + // The number of times your ad or your site's listing in the unpaid + // results was clicked (combined_clicks) divided by combined_queries. See the + // help page at https://support.google.com/google-ads/answer/3097241 for + // details. + optional double combined_clicks_per_query = 157; + + // The number of searches that returned pages from your site in the unpaid + // results or showed one of your text ads. See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional int64 combined_queries = 158; + + // The estimated percent of times that your ad was eligible to show + // on the Display Network but didn't because your budget was too low. + // Note: Content budget lost impression share is reported in the range of 0 + // to 0.9. Any value above 0.9 is reported as 0.9001. + optional double content_budget_lost_impression_share = 159; + + // The impressions you've received on the Display Network divided + // by the estimated number of impressions you were eligible to receive. + // Note: Content impression share is reported in the range of 0.1 to 1. Any + // value below 0.1 is reported as 0.0999. + optional double content_impression_share = 160; + + // The last date/time a conversion tag for this conversion action successfully + // fired and was seen by Google Ads. This firing event may not have been the + // result of an attributable conversion (e.g. because the tag was fired from a + // browser that did not previously click an ad from an appropriate + // advertiser). The date/time is in the customer's time zone. + optional string conversion_last_received_request_date_time = 161; + + // The date of the most recent conversion for this conversion action. The date + // is in the customer's time zone. + optional string conversion_last_conversion_date = 162; + + // The estimated percentage of impressions on the Display Network + // that your ads didn't receive due to poor Ad Rank. + // Note: Content rank lost impression share is reported in the range of 0 + // to 0.9. Any value above 0.9 is reported as 0.9001. + optional double content_rank_lost_impression_share = 163; + + // Conversions from interactions divided by the number of ad interactions + // (such as clicks for text ads or views for video ads). This only includes + // conversion actions which include_in_conversions_metric attribute is set to + // true. If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + optional double conversions_from_interactions_rate = 164; + + // The value of conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double conversions_value = 165; + + // The value of conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. When this column is selected 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 conversions_value_by_conversion_date = 242; + + // The value of conversions divided by the cost of ad interactions. This only + // includes conversion actions which include_in_conversions_metric attribute + // is set to true. If you use conversion-based bidding, your bid strategies + // will optimize for these conversions. + optional double conversions_value_per_cost = 166; + + // The value of conversions from interactions divided by the number of ad + // interactions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double conversions_from_interactions_value_per_interaction = 167; + + // The number of conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double conversions = 168; + + // The number of conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. When this column is selected 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 conversions_by_conversion_date = 243; + + // The sum of your cost-per-click (CPC) and cost-per-thousand impressions + // (CPM) costs during this period. + optional int64 cost_micros = 169; + + // The cost of ad interactions divided by all conversions. + optional double cost_per_all_conversions = 170; + + // The cost of ad interactions divided by conversions. This only includes + // conversion actions which include_in_conversions_metric attribute is set to + // true. If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + optional double cost_per_conversion = 171; + + // The cost of ad interactions divided by current model attributed + // conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double cost_per_current_model_attributed_conversion = 172; + + // Conversions from when a customer clicks on a Google Ads ad on one device, + // then converts on a different device or browser. + // Cross-device conversions are already included in all_conversions. + optional double cross_device_conversions = 173; + + // The number of clicks your ad receives (Clicks) divided by the number + // of times your ad is shown (Impressions). + optional double ctr = 174; + + // Shows how your historic conversions data would look under the attribution + // model you've currently selected. This only includes conversion actions + // which include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double current_model_attributed_conversions = 175; + + // Current model attributed conversions from interactions divided by the + // number of ad interactions (such as clicks for text ads or views for video + // ads). This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double current_model_attributed_conversions_from_interactions_rate = 176; + + // The value of current model attributed conversions from interactions divided + // by the number of ad interactions. This only includes conversion actions + // which include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; + + // The value of current model attributed conversions. This only includes + // conversion actions which include_in_conversions_metric attribute is set to + // true. If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + optional double current_model_attributed_conversions_value = 178; + + // The value of current model attributed conversions divided by the cost of ad + // interactions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double current_model_attributed_conversions_value_per_cost = 179; + + // How often people engage with your ad after it's shown to them. This is the + // number of ad expansions divided by the number of times your ad is shown. + optional double engagement_rate = 180; + + // The number of engagements. + // An engagement occurs when a viewer expands your Lightbox ad. Also, in the + // future, other ad types may support engagement metrics. + optional int64 engagements = 181; + + // Average lead value based on clicks. + optional double hotel_average_lead_value_micros = 213; + + // Commission bid rate in micros. A 20% commission is represented as + // 200,000. + optional int64 hotel_commission_rate_micros = 256; + + // Expected commission cost. The result of multiplying the commission value + // times the hotel_commission_rate in advertiser currency. + optional double hotel_expected_commission_cost = 257; + + // The average price difference between the price offered by reporting hotel + // advertiser and the cheapest price offered by the competing advertiser. + optional double hotel_price_difference_percentage = 214; + + // The number of impressions that hotel partners could have had given their + // feed performance. + optional int64 hotel_eligible_impressions = 215; + + // The creative historical quality score. + google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; + + // The quality of historical landing page experience. + google.ads.googleads.v10.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.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; + + // The number of times the ad was forwarded to someone else as a message. + optional int64 gmail_forwards = 217; + + // The number of times someone has saved your Gmail ad to their inbox as a + // message. + optional int64 gmail_saves = 218; + + // The number of clicks to the landing page on the expanded state of Gmail + // ads. + optional int64 gmail_secondary_clicks = 219; + + // The number of times a store's location-based ad was shown. + // This metric applies to feed items only. + optional int64 impressions_from_store_reach = 220; + + // Count of how often your ad has appeared on a search results page or + // website on the Google Network. + optional int64 impressions = 221; + + // How often people interact with your ad after it is shown to them. + // This is the number of interactions divided by the number of times your ad + // is shown. + optional double interaction_rate = 222; + + // The number of interactions. + // An interaction is the main user action associated with an ad format-clicks + // for text and shopping ads, views for video ads, and so on. + optional int64 interactions = 223; + + // The types of payable and free interactions. + repeated google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + + // The percentage of clicks filtered out of your total number of clicks + // (filtered + non-filtered clicks) during the reporting period. + optional double invalid_click_rate = 224; + + // Number of clicks Google considers illegitimate and doesn't charge you for. + optional int64 invalid_clicks = 225; + + // Number of message chats initiated for Click To Message impressions that + // were message tracking eligible. + optional int64 message_chats = 226; + + // Number of Click To Message impressions that were message tracking eligible. + optional int64 message_impressions = 227; + + // Number of message chats initiated (message_chats) divided by the number + // of message impressions (message_impressions). + // Rate at which a user initiates a message chat from an ad impression with + // a messaging option and message tracking enabled. + // Note that this rate can be more than 1.0 for a given message impression. + optional double message_chat_rate = 228; + + // The percentage of mobile clicks that go to a mobile-friendly page. + optional double mobile_friendly_clicks_percentage = 229; + + // Total optimization score uplift of all recommendations. + optional double optimization_score_uplift = 247; + + // URL for the optimization score page in the Google Ads web interface. + // This metric can be selected from `customer` or `campaign`, and can be + // segmented by `segments.recommendation_type`. For example, `SELECT + // metrics.optimization_score_url, segments.recommendation_type FROM + // customer` will return a URL for each unique (customer, recommendation_type) + // combination. + optional string optimization_score_url = 248; + + // The number of times someone clicked your site's listing in the unpaid + // results for a particular query. See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional int64 organic_clicks = 230; + + // The number of times someone clicked your site's listing in the unpaid + // results (organic_clicks) divided by the total number of searches that + // returned pages from your site (organic_queries). See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional double organic_clicks_per_query = 231; + + // The number of listings for your site in the unpaid search results. See the + // help page at https://support.google.com/google-ads/answer/3097241 for + // details. + optional int64 organic_impressions = 232; + + // The number of times a page from your site was listed in the unpaid search + // results (organic_impressions) divided by the number of searches returning + // your site's listing in the unpaid results (organic_queries). See the help + // page at https://support.google.com/google-ads/answer/3097241 for details. + optional double organic_impressions_per_query = 233; + + // The total number of searches that returned your site's listing in the + // unpaid results. See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional int64 organic_queries = 234; + + // Percentage of first-time sessions (from people who had never visited your + // site before). Imported from Google Analytics. + optional double percent_new_visitors = 235; + + // Number of offline phone calls. + optional int64 phone_calls = 236; + + // Number of offline phone impressions. + optional int64 phone_impressions = 237; + + // Number of phone calls received (phone_calls) divided by the number of + // times your phone number is shown (phone_impressions). + optional double phone_through_rate = 238; + + // Your clickthrough rate (Ctr) divided by the average clickthrough rate of + // all advertisers on the websites that show your ads. Measures how your ads + // perform on Display Network sites compared to other ads on the same sites. + optional double relative_ctr = 239; + + // The percentage of the customer's Shopping or Search ad impressions that are + // shown in the most prominent Shopping position. See + // https://support.google.com/google-ads/answer/7501826 + // 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 + // 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; + + // The estimated percent of times that your ad was eligible to show on the + // Search Network but didn't because your budget was too low. Note: Search + // budget lost 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_impression_share = 138; + + // The number estimating how often your ad didn't show anywhere above the + // 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. + optional double search_budget_lost_top_impression_share = 139; + + // The number of clicks you've received on the Search Network + // divided by the estimated number of clicks you were eligible to receive. + // Note: Search click share is reported in the range of 0.1 to 1. Any value + // below 0.1 is reported as 0.0999. + optional double search_click_share = 140; + + // The impressions you've received divided by the estimated number of + // impressions you were eligible to receive on the Search Network for search + // terms that matched your keywords exactly (or were close variants of your + // keyword), regardless of your keyword match types. Note: Search exact match + // impression share is reported in the range of 0.1 to 1. Any value below 0.1 + // is reported as 0.0999. + optional double search_exact_match_impression_share = 141; + + // The impressions you've received on the Search Network divided + // by the estimated number of impressions you were eligible to receive. + // Note: Search impression share is reported in the range of 0.1 to 1. Any + // 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. + // 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; + + // The estimated percentage of impressions on the Search Network + // that your ads didn't receive due to poor Ad Rank. + // Note: Search rank lost 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_impression_share = 144; + + // The number estimating how often your ad didn't show anywhere above the + // 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. + // 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. + optional double search_top_impression_share = 146; + + // A measure of how quickly your page loads after clicks on your mobile ads. + // The score is a range from 1 to 10, 10 being the fastest. + optional int64 speed_score = 147; + + // The percent of your ad impressions that are shown anywhere above the + // organic search results. + optional double top_impression_percentage = 148; + + // The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages + // that reach a valid AMP page. + optional double valid_accelerated_mobile_pages_clicks_percentage = 149; + + // The value of all conversions divided by the number of all conversions. + optional double value_per_all_conversions = 150; + + // The value of all conversions divided by the number of all conversions. When + // this column is selected 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. + optional double value_per_all_conversions_by_conversion_date = 244; + + // The value of conversions divided by the number of conversions. This only + // includes conversion actions which include_in_conversions_metric attribute + // is set to true. If you use conversion-based bidding, your bid strategies + // will optimize for these conversions. + optional double value_per_conversion = 151; + + // The value of conversions divided by the number of conversions. This only + // includes conversion actions which include_in_conversions_metric attribute + // is set to true. If you use conversion-based bidding, your bid strategies + // will optimize for these conversions. When this column is selected 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. + optional double value_per_conversions_by_conversion_date = 245; + + // The value of current model attributed conversions divided by the number of + // the conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double value_per_current_model_attributed_conversion = 152; + + // Percentage of impressions where the viewer watched all of your video. + optional double video_quartile_p100_rate = 132; + + // Percentage of impressions where the viewer watched 25% of your video. + optional double video_quartile_p25_rate = 133; + + // Percentage of impressions where the viewer watched 50% of your video. + optional double video_quartile_p50_rate = 134; + + // Percentage of impressions where the viewer watched 75% of your video. + optional double video_quartile_p75_rate = 135; + + // The number of views your TrueView video ad receives divided by its number + // of impressions, including thumbnail impressions for TrueView in-display + // ads. + optional double video_view_rate = 153; + + // The number of times your video ads were viewed. + optional int64 video_views = 154; + + // The total number of view-through conversions. + // These happen when a customer sees an image or rich media ad, then later + // completes a conversion on your site without interacting with (e.g., + // clicking on) another ad. + optional int64 view_through_conversions = 155; + + // The number of iOS Store Kit Ad Network conversions. + int64 sk_ad_network_conversions = 246; +} diff --git a/google/ads/googleads/v10/common/offline_user_data.proto b/google/ads/googleads/v10/common/offline_user_data.proto new file mode 100644 index 000000000..6d5fe9c4b --- /dev/null +++ b/google/ads/googleads/v10/common/offline_user_data.proto @@ -0,0 +1,295 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/user_identifier_source.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing offline user data. + +// Address identifier of offline data. +message OfflineUserAddressInfo { + // First name of the user, which is hashed as SHA-256 after normalized + // (Lowercase all characters; Remove any extra spaces before, after, and in + // between). + optional string hashed_first_name = 7; + + // Last name of the user, which is hashed as SHA-256 after normalized (lower + // case only and no punctuation). + optional string hashed_last_name = 8; + + // City of the address. Only accepted for Store Sales and + // ConversionAdjustmentUploadService. + optional string city = 9; + + // State code of the address. Only accepted for Store Sales and + // ConversionAdjustmentUploadService. + optional string state = 10; + + // 2-letter country code in ISO-3166-1 alpha-2 of the user's address. + optional string country_code = 11; + + // Postal code of the user's address. + optional string postal_code = 12; + + // The street address of the user hashed using SHA-256 hash function after + // normalization (lower case only). Only accepted for + // ConversionAdjustmentUploadService. + optional string hashed_street_address = 13; +} + +// User identifying information. +message UserIdentifier { + // Source of the user identifier when the upload is from Store Sales, + // ConversionUploadService, or ConversionAdjustmentUploadService. + google.ads.googleads.v10.enums.UserIdentifierSourceEnum.UserIdentifierSource user_identifier_source = 6; + + // Exactly one must be specified. For OfflineUserDataJobService, Customer + // Match accepts hashed_email, hashed_phone_number, mobile_id, + // third_party_user_id, and address_info; Store Sales accepts hashed_email, + // hashed_phone_number, third_party_user_id, and address_info. + // ConversionUploadService accepts hashed_email and hashed_phone_number. + // ConversionAdjustmentUploadService accepts hashed_email, + // hashed_phone_number, and address_info. + oneof identifier { + // Hashed email address using SHA-256 hash function after normalization. + // Accepted for Customer Match, Store Sales, ConversionUploadService, and + // ConversionAdjustmentUploadService. + string hashed_email = 7; + + // Hashed phone number using SHA-256 hash function after normalization + // (E164 standard). Accepted for Customer Match, Store Sales, + // ConversionUploadService, and ConversionAdjustmentUploadService. + string hashed_phone_number = 8; + + // Mobile device ID (advertising ID/IDFA). Accepted only for Customer Match. + string mobile_id = 9; + + // Advertiser-assigned user ID for Customer Match upload, or + // third-party-assigned user ID for Store Sales. Accepted only for Customer + // Match and Store Sales. + string third_party_user_id = 10; + + // Address information. Accepted only for Customer Match, Store Sales, and + // ConversionAdjustmentUploadService. + OfflineUserAddressInfo address_info = 5; + } +} + +// Attribute of the store sales transaction. +message TransactionAttribute { + // Timestamp when transaction occurred. Required. + // The format is "YYYY-MM-DD HH:MM:SS[+/-HH:MM]", where [+/-HH:MM] is an + // optional timezone offset from UTC. If the offset is absent, the API will + // use the account's timezone as default. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30+03:00" + optional string transaction_date_time = 8; + + // Transaction amount in micros. Required. + // Transaction amount in micros needs to be greater than 1000. + // If item Attributes are provided, it represents the total value of the + // items, after multiplying the unit price per item by the quantity provided + // in the ItemAttributes. + optional double transaction_amount_micros = 9; + + // Transaction currency code. ISO 4217 three-letter code is used. Required. + optional string currency_code = 10; + + // The resource name of conversion action to report conversions to. + // Required. + optional string conversion_action = 11; + + // Transaction order id. + // Accessible only to customers on the allow-list. + optional string order_id = 12; + + // Store attributes of the transaction. + // Accessible only to customers on the allow-list. + StoreAttribute store_attribute = 6; + + // Value of the custom variable for each transaction. + // Accessible only to customers on the allow-list. + optional string custom_value = 13; + + // Item attributes of the transaction. + ItemAttribute item_attribute = 14; +} + +// Store attributes of the transaction. +message StoreAttribute { + // Store code from + // https://support.google.com/business/answer/3370250#storecode + optional string store_code = 2; +} + +// Item attributes of the transaction. +message ItemAttribute { + // A unique identifier of a product. It can be either the Merchant Center Item + // ID or GTIN (Global Trade Item Number). + string item_id = 1; + + // ID of the Merchant Center Account. + optional int64 merchant_id = 2; + + // Common Locale Data Repository (CLDR) territory code of the country + // associated with the feed where your items are uploaded. See + // https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes + // for more information. + string country_code = 3; + + // ISO 639-1 code of the language associated with the feed where your items + // are uploaded + string language_code = 4; + + // The number of items sold. Defaults to 1 if not set. + int64 quantity = 5; +} + +// User data holding user identifiers and attributes. +message UserData { + // User identification info. Required. + repeated UserIdentifier user_identifiers = 1; + + // Additional transactions/attributes associated with the user. + // Required when updating store sales data. + TransactionAttribute transaction_attribute = 2; + + // Additional attributes associated with the user. Required when updating + // customer match attributes. These have an expiration of 540 days. + UserAttribute user_attribute = 3; +} + +// User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job +// type. +message UserAttribute { + // Advertiser defined lifetime value for the user. + optional int64 lifetime_value_micros = 1; + + // Advertiser defined lifetime value bucket for the user. The valid range for + // a lifetime value bucket is from 1 (low) to 10 (high), except for remove + // operation where 0 will also be accepted. + optional int32 lifetime_value_bucket = 2; + + // Timestamp of the last purchase made by the user. + // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an + // optional timezone offset from UTC. If the offset is absent, the API will + // use the account's timezone as default. + string last_purchase_date_time = 3; + + // Advertiser defined average number of purchases that are made by the user in + // a 30 day period. + int32 average_purchase_count = 4; + + // Advertiser defined average purchase value in micros for the user. + int64 average_purchase_value_micros = 5; + + // Timestamp when the user was acquired. + // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an + // optional timezone offset from UTC. If the offset is absent, the API will + // use the account's timezone as default. + string acquisition_date_time = 6; + + // The shopping loyalty related data. Shopping utilizes this data to provide + // users with a better experience. Accessible only to merchants on the + // allow-list with the user's consent. + optional ShoppingLoyalty shopping_loyalty = 7; +} + +// The shopping loyalty related data. Shopping utilizes this data to provide +// users with a better experience. +// Accessible only to merchants on the allow-list. +message ShoppingLoyalty { + // The membership tier. It is a free-form string as each merchant may have + // their own loyalty system. For example, it could be a number from 1 to 10, + // or a string such as "Golden" or "Silver", or even empty string "". + optional string loyalty_tier = 1; +} + +// Metadata for customer match user list. +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; +} + +// Metadata for Store Sales Direct. +message StoreSalesMetadata { + // This is the fraction of all transactions that are identifiable (i.e., + // associated with any form of customer information). + // Required. + // The fraction needs to be between 0 and 1 (excluding 0). + optional double loyalty_fraction = 5; + + // This is the ratio of sales being uploaded compared to the overall sales + // that can be associated with a customer. Required. + // The fraction needs to be between 0 and 1 (excluding 0). For example, if you + // upload half the sales that you are able to associate with a customer, this + // would be 0.5. + optional double transaction_upload_fraction = 6; + + // Name of the store sales custom variable key. A predefined key that + // can be applied to the transaction and then later used for custom + // segmentation in reporting. + // Accessible only to customers on the allow-list. + optional string custom_key = 7; + + // Metadata for a third party Store Sales upload. + StoreSalesThirdPartyMetadata third_party_metadata = 3; +} + +// Metadata for a third party Store Sales. +// This product is only for customers on the allow-list. Please contact your +// Google business development representative for details on the upload +// configuration. +message StoreSalesThirdPartyMetadata { + // Time the advertiser uploaded the data to the partner. Required. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string advertiser_upload_date_time = 7; + + // The fraction of transactions that are valid. Invalid transactions may + // include invalid formats or values. + // Required. + // The fraction needs to be between 0 and 1 (excluding 0). + optional double valid_transaction_fraction = 8; + + // The fraction of valid transactions that are matched to a third party + // assigned user ID on the partner side. + // Required. + // The fraction needs to be between 0 and 1 (excluding 0). + optional double partner_match_fraction = 9; + + // The fraction of valid transactions that are uploaded by the partner to + // Google. + // Required. + // The fraction needs to be between 0 and 1 (excluding 0). + optional double partner_upload_fraction = 10; + + // Version of partner IDs to be used for uploads. Required. + optional string bridge_map_version_id = 11; + + // ID of the third party partner updating the transaction feed. + optional int64 partner_id = 12; +} diff --git a/google/ads/googleads/v10/common/policy.proto b/google/ads/googleads/v10/common/policy.proto new file mode 100644 index 000000000..193a25152 --- /dev/null +++ b/google/ads/googleads/v10/common/policy.proto @@ -0,0 +1,219 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/policy_topic_entry_type.proto"; +import "google/ads/googleads/v10/enums/policy_topic_evidence_destination_mismatch_url_type.proto"; +import "google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_device.proto"; +import "google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "PolicyProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing policy information. + +// Key of the violation. The key is used for referring to a violation +// when filing an exemption request. +message PolicyViolationKey { + // Unique ID of the violated policy. + optional string policy_name = 3; + + // The text that violates the policy if specified. + // Otherwise, refers to the policy in general + // (e.g., when requesting to be exempt from the whole policy). + // If not specified for criterion exemptions, the whole policy is implied. + // Must be specified for ad exemptions. + optional string violating_text = 4; +} + +// Parameter for controlling how policy exemption is done. +message PolicyValidationParameter { + // The list of policy topics that should not cause a PolicyFindingError to + // be reported. This field is currently only compatible with Enhanced Text Ad. + // It corresponds to the PolicyTopicEntry.topic field. + // + // Resources violating these policies 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 string ignorable_policy_topics = 3; + + // The list of policy violation keys that should not cause a + // PolicyViolationError to be reported. Not all policy violations are + // exemptable, please 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 PolicyViolationKey exempt_policy_violation_keys = 2; +} + +// Policy finding attached to a resource (e.g. alcohol policy associated with +// a site that sells alcohol). +// +// Each PolicyTopicEntry has a topic that indicates the specific ads policy +// the entry is about and a type to indicate the effect that the entry will have +// on serving. It may optionally have one or more evidences that indicate the +// reason for the finding. It may also optionally have one or more constraints +// that provide details about how serving may be restricted. +message PolicyTopicEntry { + // Policy topic this finding refers to. For example, "ALCOHOL", + // "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible + // policy topics is not fixed for a particular API version and may change + // at any time. + optional string topic = 5; + + // Describes the negative or positive effect this policy will have on serving. + google.ads.googleads.v10.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType type = 2; + + // Additional information that explains policy finding + // (e.g. the brand name for a trademark finding). + repeated PolicyTopicEvidence evidences = 3; + + // Indicates how serving of this resource may be affected (e.g. not serving + // in a country). + repeated PolicyTopicConstraint constraints = 4; +} + +// Additional information that explains a policy finding. +message PolicyTopicEvidence { + // A list of fragments of text that violated a policy. + message TextList { + // The fragments of text from the resource that caused the policy finding. + repeated string texts = 2; + } + + // A list of websites that caused a policy finding. Used for + // ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more + // than five websites, only the top five (those that appear in resources the + // most) will be listed here. + message WebsiteList { + // Websites that caused the policy finding. + repeated string websites = 2; + } + + // A list of strings found in a destination page that caused a policy + // finding. + message DestinationTextList { + // List of text found in the resource's destination page. + repeated string destination_texts = 2; + } + + // 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.v10.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.PolicyTopicEvidenceDestinationMismatchUrlType url_types = 1; + } + + // Evidence details when the destination is returning an HTTP error + // code or isn't functional in all locations for commonly used devices. + message DestinationNotWorking { + // The full URL that didn't work. + optional string expanded_url = 7; + + // The type of device that failed to load the URL. + google.ads.googleads.v10.enums.PolicyTopicEvidenceDestinationNotWorkingDeviceEnum.PolicyTopicEvidenceDestinationNotWorkingDevice device = 4; + + // The time the URL was last checked. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string last_checked_date_time = 8; + + // Indicates the reason of the DESTINATION_NOT_WORKING policy finding. + oneof reason { + // The type of DNS error. + google.ads.googleads.v10.enums.PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum.PolicyTopicEvidenceDestinationNotWorkingDnsErrorType dns_error_type = 1; + + // The HTTP error code. + int64 http_error_code = 6; + } + } + + // Specific evidence information depending on the evidence type. + oneof value { + // List of websites linked with this resource. + WebsiteList website_list = 3; + + // List of evidence found in the text of a resource. + TextList text_list = 4; + + // The language the resource was detected to be written in. + // This is an IETF language tag such as "en-US". + string language_code = 9; + + // The text in the destination of the resource that is causing a policy + // finding. + DestinationTextList destination_text_list = 6; + + // Mismatch between the destinations of a resource's URLs. + DestinationMismatch destination_mismatch = 7; + + // Details when the destination is returning an HTTP error code or isn't + // functional in all locations for commonly used devices. + DestinationNotWorking destination_not_working = 8; + } +} + +// Describes the effect on serving that a policy topic entry will have. +message PolicyTopicConstraint { + // A list of countries where a resource's serving is constrained. + message CountryConstraintList { + // Total number of countries targeted by the resource. + optional int32 total_targeted_countries = 3; + + // Countries in which serving is restricted. + repeated CountryConstraint countries = 2; + } + + // Indicates that a policy topic was constrained due to disapproval of the + // website for reseller purposes. + message ResellerConstraint { + + } + + // Indicates that a resource's ability to serve in a particular country is + // constrained. + message CountryConstraint { + // Geo target constant resource name of the country in which serving is + // constrained. + optional string country_criterion = 2; + } + + // Specific information about the constraint. + oneof value { + // Countries where the resource cannot serve. + CountryConstraintList country_constraint_list = 1; + + // Reseller constraint. + ResellerConstraint reseller_constraint = 2; + + // Countries where a certificate is required for serving. + CountryConstraintList certificate_missing_in_country_list = 3; + + // Countries where the resource's domain is not covered by the + // certificates associated with it. + CountryConstraintList certificate_domain_mismatch_in_country_list = 4; + } +} diff --git a/google/ads/googleads/v10/common/policy_summary.proto b/google/ads/googleads/v10/common/policy_summary.proto new file mode 100644 index 000000000..a496cac3c --- /dev/null +++ b/google/ads/googleads/v10/common/policy_summary.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/policy_approval_status.proto"; +import "google/ads/googleads/v10/enums/policy_review_status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "PolicySummaryProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing policy summary. + +// Contains policy summary information. +message PolicySummary { + // The list of policy findings. + repeated PolicyTopicEntry policy_topic_entries = 1; + + // Where in the review process the resource is. + google.ads.googleads.v10.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.v10.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; +} diff --git a/google/ads/googleads/v10/common/real_time_bidding_setting.proto b/google/ads/googleads/v10/common/real_time_bidding_setting.proto new file mode 100644 index 000000000..7d4ce91a5 --- /dev/null +++ b/google/ads/googleads/v10/common/real_time_bidding_setting.proto @@ -0,0 +1,35 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "RealTimeBiddingSettingProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing RealTimeBiddingSetting + +// Settings for Real-Time Bidding, a feature only available for campaigns +// targeting the Ad Exchange network. +message RealTimeBiddingSetting { + // Whether the campaign is opted in to real-time bidding. + optional bool opt_in = 2; +} diff --git a/google/ads/googleads/v10/common/segments.proto b/google/ads/googleads/v10/common/segments.proto new file mode 100644 index 000000000..fc30c4eff --- /dev/null +++ b/google/ads/googleads/v10/common/segments.proto @@ -0,0 +1,392 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/enums/ad_destination_type.proto"; +import "google/ads/googleads/v10/enums/ad_network_type.proto"; +import "google/ads/googleads/v10/enums/budget_campaign_association_status.proto"; +import "google/ads/googleads/v10/enums/click_type.proto"; +import "google/ads/googleads/v10/enums/conversion_action_category.proto"; +import "google/ads/googleads/v10/enums/conversion_attribution_event_type.proto"; +import "google/ads/googleads/v10/enums/conversion_lag_bucket.proto"; +import "google/ads/googleads/v10/enums/conversion_or_adjustment_lag_bucket.proto"; +import "google/ads/googleads/v10/enums/conversion_value_rule_primary_dimension.proto"; +import "google/ads/googleads/v10/enums/day_of_week.proto"; +import "google/ads/googleads/v10/enums/device.proto"; +import "google/ads/googleads/v10/enums/external_conversion_source.proto"; +import "google/ads/googleads/v10/enums/hotel_date_selection_type.proto"; +import "google/ads/googleads/v10/enums/hotel_price_bucket.proto"; +import "google/ads/googleads/v10/enums/hotel_rate_type.proto"; +import "google/ads/googleads/v10/enums/month_of_year.proto"; +import "google/ads/googleads/v10/enums/placeholder_type.proto"; +import "google/ads/googleads/v10/enums/product_channel.proto"; +import "google/ads/googleads/v10/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v10/enums/product_condition.proto"; +import "google/ads/googleads/v10/enums/recommendation_type.proto"; +import "google/ads/googleads/v10/enums/search_engine_results_page_type.proto"; +import "google/ads/googleads/v10/enums/search_term_match_type.proto"; +import "google/ads/googleads/v10/enums/sk_ad_network_ad_event_type.proto"; +import "google/ads/googleads/v10/enums/sk_ad_network_attribution_credit.proto"; +import "google/ads/googleads/v10/enums/sk_ad_network_user_type.proto"; +import "google/ads/googleads/v10/enums/slot.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "SegmentsProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing segment only fields. + +// Segment only fields. +message Segments { + // Ad Destination type. + google.ads.googleads.v10.enums.AdDestinationTypeEnum.AdDestinationType ad_destination_type = 136; + + // Ad network type. + google.ads.googleads.v10.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3; + + // Budget campaign association status. + BudgetCampaignAssociationStatus budget_campaign_association_status = 134; + + // Click type. + google.ads.googleads.v10.enums.ClickTypeEnum.ClickType click_type = 26; + + // Resource name of the conversion action. + optional string conversion_action = 113; + + // Conversion action category. + google.ads.googleads.v10.enums.ConversionActionCategoryEnum.ConversionActionCategory conversion_action_category = 53; + + // Conversion action name. + optional string conversion_action_name = 114; + + // This segments your conversion columns by the original conversion and + // conversion value vs. the delta if conversions were adjusted. False row has + // the data as originally stated; While true row has the delta between data + // now and the data as originally stated. Summing the two together results + // post-adjustment data. + optional bool conversion_adjustment = 115; + + // Conversion attribution event type. + google.ads.googleads.v10.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.v10.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.v10.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket conversion_or_adjustment_lag_bucket = 51; + + // Date to which metrics apply. + // yyyy-MM-dd format, e.g., 2018-04-17. + optional string date = 79; + + // Day of the week, e.g., MONDAY. + google.ads.googleads.v10.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; + + // Device to which metrics apply. + google.ads.googleads.v10.enums.DeviceEnum.Device device = 1; + + // External conversion source. + google.ads.googleads.v10.enums.ExternalConversionSourceEnum.ExternalConversionSource external_conversion_source = 55; + + // Resource name of the geo target constant that represents an airport. + optional string geo_target_airport = 116; + + // Resource name of the geo target constant that represents a canton. + optional string geo_target_canton = 117; + + // Resource name of the geo target constant that represents a city. + optional string geo_target_city = 118; + + // Resource name of the geo target constant that represents a country. + optional string geo_target_country = 119; + + // Resource name of the geo target constant that represents a county. + optional string geo_target_county = 120; + + // Resource name of the geo target constant that represents a district. + optional string geo_target_district = 121; + + // Resource name of the geo target constant that represents a metro. + optional string geo_target_metro = 122; + + // Resource name of the geo target constant that represents the most + // specific location. + optional string geo_target_most_specific_location = 123; + + // Resource name of the geo target constant that represents a postal code. + optional string geo_target_postal_code = 124; + + // Resource name of the geo target constant that represents a province. + optional string geo_target_province = 125; + + // Resource name of the geo target constant that represents a region. + optional string geo_target_region = 126; + + // Resource name of the geo target constant that represents a state. + optional string geo_target_state = 127; + + // Hotel booking window in days. + optional int64 hotel_booking_window_days = 135; + + // Hotel center ID. + optional int64 hotel_center_id = 80; + + // Hotel check-in date. Formatted as yyyy-MM-dd. + optional string hotel_check_in_date = 81; + + // Hotel check-in day of week. + google.ads.googleads.v10.enums.DayOfWeekEnum.DayOfWeek hotel_check_in_day_of_week = 9; + + // Hotel city. + optional string hotel_city = 82; + + // Hotel class. + optional int32 hotel_class = 83; + + // Hotel country. + optional string hotel_country = 84; + + // Hotel date selection type. + google.ads.googleads.v10.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType hotel_date_selection_type = 13; + + // Hotel length of stay. + optional int32 hotel_length_of_stay = 85; + + // Hotel rate rule ID. + optional string hotel_rate_rule_id = 86; + + // Hotel rate type. + google.ads.googleads.v10.enums.HotelRateTypeEnum.HotelRateType hotel_rate_type = 74; + + // Hotel price bucket. + google.ads.googleads.v10.enums.HotelPriceBucketEnum.HotelPriceBucket hotel_price_bucket = 78; + + // Hotel state. + optional string hotel_state = 87; + + // Hour of day as a number between 0 and 23, inclusive. + optional int32 hour = 88; + + // Only used with feed item metrics. + // Indicates whether the interaction metrics occurred on the feed item itself + // or a different extension or ad unit. + optional bool interaction_on_this_extension = 89; + + // Keyword criterion. + Keyword keyword = 61; + + // Month as represented by the date of the first day of a month. Formatted as + // yyyy-MM-dd. + optional string month = 90; + + // Month of the year, e.g., January. + google.ads.googleads.v10.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.v10.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; + + // Bidding category (level 2) of the product. + optional string product_bidding_category_level2 = 93; + + // Bidding category (level 3) of the product. + optional string product_bidding_category_level3 = 94; + + // Bidding category (level 4) of the product. + optional string product_bidding_category_level4 = 95; + + // Bidding category (level 5) of the product. + optional string product_bidding_category_level5 = 96; + + // Brand of the product. + optional string product_brand = 97; + + // Channel of the product. + google.ads.googleads.v10.enums.ProductChannelEnum.ProductChannel product_channel = 30; + + // Channel exclusivity of the product. + google.ads.googleads.v10.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity product_channel_exclusivity = 31; + + // Condition of the product. + google.ads.googleads.v10.enums.ProductConditionEnum.ProductCondition product_condition = 32; + + // Resource name of the geo target constant for the country of sale of the + // product. + optional string product_country = 98; + + // Custom attribute 0 of the product. + optional string product_custom_attribute0 = 99; + + // Custom attribute 1 of the product. + optional string product_custom_attribute1 = 100; + + // Custom attribute 2 of the product. + optional string product_custom_attribute2 = 101; + + // Custom attribute 3 of the product. + optional string product_custom_attribute3 = 102; + + // Custom attribute 4 of the product. + optional string product_custom_attribute4 = 103; + + // Item ID of the product. + optional string product_item_id = 104; + + // Resource name of the language constant for the language of the product. + optional string product_language = 105; + + // Merchant ID of the product. + optional int64 product_merchant_id = 133; + + // Store ID of the product. + optional string product_store_id = 106; + + // Title of the product. + optional string product_title = 107; + + // Type (level 1) of the product. + optional string product_type_l1 = 108; + + // Type (level 2) of the product. + optional string product_type_l2 = 109; + + // Type (level 3) of the product. + optional string product_type_l3 = 110; + + // Type (level 4) of the product. + optional string product_type_l4 = 111; + + // Type (level 5) of the product. + optional string product_type_l5 = 112; + + // Quarter as represented by the date of the first day of a quarter. + // Uses the calendar year for quarters, e.g., the second quarter of 2018 + // starts on 2018-04-01. Formatted as yyyy-MM-dd. + optional string quarter = 128; + + // Recommendation type. + google.ads.googleads.v10.enums.RecommendationTypeEnum.RecommendationType recommendation_type = 140; + + // Type of the search engine results page. + google.ads.googleads.v10.enums.SearchEngineResultsPageTypeEnum.SearchEngineResultsPageType search_engine_results_page_type = 70; + + // Match type of the keyword that triggered the ad, including variants. + google.ads.googleads.v10.enums.SearchTermMatchTypeEnum.SearchTermMatchType search_term_match_type = 22; + + // Position of the ad. + google.ads.googleads.v10.enums.SlotEnum.Slot slot = 23; + + // Primary dimension of applied conversion value rules. + // NO_RULE_APPLIED shows the total recorded value of conversions that + // do not have a value rule applied. + // ORIGINAL shows the original value of conversions to which a value rule + // has been applied. + // GEO_LOCATION, DEVICE, AUDIENCE show the net adjustment after value + // rules were applied. + google.ads.googleads.v10.enums.ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension conversion_value_rule_primary_dimension = 138; + + // Resource name of the ad group criterion that represents webpage criterion. + optional string webpage = 129; + + // Week as defined as Monday through Sunday, and represented by the date of + // Monday. Formatted as yyyy-MM-dd. + optional string week = 130; + + // Year, formatted as yyyy. + optional int32 year = 131; + + // iOS Store Kit Ad Network conversion value. + // Null value means this segment is not applicable, e.g. non-iOS campaign. + optional int64 sk_ad_network_conversion_value = 137; + + // iOS Store Kit Ad Network user type. + google.ads.googleads.v10.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType sk_ad_network_user_type = 141; + + // iOS Store Kit Ad Network ad event type. + google.ads.googleads.v10.enums.SkAdNetworkAdEventTypeEnum.SkAdNetworkAdEventType sk_ad_network_ad_event_type = 142; + + // App where the ad that drove the iOS Store Kit Ad Network install was + // shown. Null value means this segment is not applicable, e.g. non-iOS + // campaign, or was not present in any postbacks sent by Apple. + optional SkAdNetworkSourceApp sk_ad_network_source_app = 143; + + // iOS Store Kit Ad Network attribution credit + google.ads.googleads.v10.enums.SkAdNetworkAttributionCreditEnum.SkAdNetworkAttributionCredit sk_ad_network_attribution_credit = 144; + + // 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. + // Interactions (e.g. clicks) are counted across all the parts of the served + // ad (e.g. Ad itself and other components like Sitelinks) when they are + // served together. When interaction_on_this_asset is true, it means the + // interactions are on this specific asset and when interaction_on_this_asset + // is false, it means the interactions is not on this specific asset but on + // other parts of the served ad this asset is served with. + optional AssetInteractionTarget asset_interaction_target = 139; +} + +// A Keyword criterion segment. +message Keyword { + // The AdGroupCriterion resource name. + optional string ad_group_criterion = 3; + + // Keyword info. + KeywordInfo info = 2; +} + +// A BudgetCampaignAssociationStatus segment. +message BudgetCampaignAssociationStatus { + // The campaign resource name. + optional string campaign = 1; + + // Budget campaign association status. + google.ads.googleads.v10.enums.BudgetCampaignAssociationStatusEnum.BudgetCampaignAssociationStatus status = 2; +} + +// An AssetInteractionTarget segment. +message AssetInteractionTarget { + // The asset resource name. + string asset = 1; + + // 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. + bool interaction_on_this_asset = 2; +} + +// A SkAdNetworkSourceApp segment. +message SkAdNetworkSourceApp { + // App id where the ad that drove the iOS Store Kit Ad Network install was + // shown. + optional string sk_ad_network_source_app_id = 1; +} diff --git a/google/ads/googleads/v10/common/simulation.proto b/google/ads/googleads/v10/common/simulation.proto new file mode 100644 index 000000000..fbb3f2590 --- /dev/null +++ b/google/ads/googleads/v10/common/simulation.proto @@ -0,0 +1,356 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "SimulationProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing simulation points. + +// A container for simulation points for simulations of type BID_MODIFIER. +message BidModifierSimulationPointList { + // Projected metrics for a series of bid modifier amounts. + repeated BidModifierSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type CPC_BID. +message CpcBidSimulationPointList { + // Projected metrics for a series of CPC bid amounts. + repeated CpcBidSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type CPV_BID. +message CpvBidSimulationPointList { + // Projected metrics for a series of CPV bid amounts. + repeated CpvBidSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type TARGET_CPA. +message TargetCpaSimulationPointList { + // Projected metrics for a series of target CPA amounts. + repeated TargetCpaSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type TARGET_ROAS. +message TargetRoasSimulationPointList { + // Projected metrics for a series of target ROAS amounts. + repeated TargetRoasSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type PERCENT_CPC_BID. +message PercentCpcBidSimulationPointList { + // Projected metrics for a series of percent CPC bid amounts. + repeated PercentCpcBidSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type BUDGET. +message BudgetSimulationPointList { + // Projected metrics for a series of budget amounts. + repeated BudgetSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type +// TARGET_IMPRESSION_SHARE. +message TargetImpressionShareSimulationPointList { + // Projected metrics for a specific target impression share value. + repeated TargetImpressionShareSimulationPoint points = 1; +} + +// Projected metrics for a specific bid modifier amount. +message BidModifierSimulationPoint { + // The simulated bid modifier upon which projected metrics are based. + optional double bid_modifier = 15; + + // Projected number of biddable conversions. + // Only search advertising channel type supports this field. + optional double biddable_conversions = 16; + + // Projected total value of biddable conversions. + // Only search advertising channel type supports this field. + optional double biddable_conversions_value = 17; + + // Projected number of clicks. + optional int64 clicks = 18; + + // Projected cost in micros. + optional int64 cost_micros = 19; + + // Projected number of impressions. + optional int64 impressions = 20; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + optional int64 top_slot_impressions = 21; + + // Projected number of biddable conversions for the parent resource. + // Only search advertising channel type supports this field. + optional double parent_biddable_conversions = 22; + + // Projected total value of biddable conversions for the parent resource. + // Only search advertising channel type supports this field. + optional double parent_biddable_conversions_value = 23; + + // Projected number of clicks for the parent resource. + optional int64 parent_clicks = 24; + + // Projected cost in micros for the parent resource. + optional int64 parent_cost_micros = 25; + + // Projected number of impressions for the parent resource. + optional int64 parent_impressions = 26; + + // Projected number of top slot impressions for the parent resource. + // Only search advertising channel type supports this field. + optional int64 parent_top_slot_impressions = 27; + + // Projected minimum daily budget that must be available to the parent + // resource to realize this simulation. + optional int64 parent_required_budget_micros = 28; +} + +// Projected metrics for a specific CPC bid amount. +message CpcBidSimulationPoint { + // Projected required daily budget that the advertiser must set in order to + // receive the estimated traffic, in micros of advertiser currency. + int64 required_budget_amount_micros = 17; + + // Projected number of biddable conversions. + optional double biddable_conversions = 9; + + // Projected total value of biddable conversions. + optional double biddable_conversions_value = 10; + + // Projected number of clicks. + optional int64 clicks = 11; + + // Projected cost in micros. + optional int64 cost_micros = 12; + + // Projected number of impressions. + optional int64 impressions = 13; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + optional int64 top_slot_impressions = 14; + + // When SimulationModificationMethod = UNIFORM or DEFAULT, + // cpc_bid_micros is set. + // When SimulationModificationMethod = SCALING, + // cpc_bid_scaling_modifier is set. + oneof cpc_simulation_key_value { + // The simulated CPC bid upon which projected metrics are based. + int64 cpc_bid_micros = 15; + + // The simulated scaling modifier upon which projected metrics are based. + // All CPC bids relevant to the simulated entity are scaled by this + // modifier. + double cpc_bid_scaling_modifier = 16; + } +} + +// Projected metrics for a specific CPV bid amount. +message CpvBidSimulationPoint { + // The simulated CPV bid upon which projected metrics are based. + optional int64 cpv_bid_micros = 5; + + // Projected cost in micros. + optional int64 cost_micros = 6; + + // Projected number of impressions. + optional int64 impressions = 7; + + // Projected number of views. + optional int64 views = 8; +} + +// Projected metrics for a specific target CPA amount. +message TargetCpaSimulationPoint { + // Projected required daily budget that the advertiser must set in order to + // receive the estimated traffic, in micros of advertiser currency. + int64 required_budget_amount_micros = 19; + + // Projected number of biddable conversions. + optional double biddable_conversions = 9; + + // Projected total value of biddable conversions. + optional double biddable_conversions_value = 10; + + // Projected number of app installs. + double app_installs = 15; + + // Projected number of in-app actions. + double in_app_actions = 16; + + // Projected number of clicks. + optional int64 clicks = 11; + + // Projected cost in micros. + optional int64 cost_micros = 12; + + // Projected number of impressions. + optional int64 impressions = 13; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + optional int64 top_slot_impressions = 14; + + // When SimulationModificationMethod = UNIFORM or DEFAULT, + // target_cpa_micros is set. + // When SimulationModificationMethod = SCALING, + // target_cpa_scaling_modifier is set. + oneof target_cpa_simulation_key_value { + // The simulated target CPA upon which projected metrics are based. + int64 target_cpa_micros = 17; + + // The simulated scaling modifier upon which projected metrics are based. + // All CPA targets relevant to the simulated entity are scaled by this + // modifier. + double target_cpa_scaling_modifier = 18; + } +} + +// Projected metrics for a specific target ROAS amount. +message TargetRoasSimulationPoint { + // The simulated target ROAS upon which projected metrics are based. + optional double target_roas = 8; + + // Projected required daily budget that the advertiser must set in order to + // receive the estimated traffic, in micros of advertiser currency. + int64 required_budget_amount_micros = 15; + + // Projected number of biddable conversions. + optional double biddable_conversions = 9; + + // Projected total value of biddable conversions. + optional double biddable_conversions_value = 10; + + // Projected number of clicks. + optional int64 clicks = 11; + + // Projected cost in micros. + optional int64 cost_micros = 12; + + // Projected number of impressions. + optional int64 impressions = 13; + + // Projected number of top slot impressions. + // Only Search advertising channel type supports this field. + optional int64 top_slot_impressions = 14; +} + +// Projected metrics for a specific percent CPC amount. Only Hotel advertising +// channel type supports this field. +message PercentCpcBidSimulationPoint { + // The simulated percent CPC upon which projected metrics are based. Percent + // CPC expressed as fraction of the advertised price for some good or service. + // The value stored here is 1,000,000 * [fraction]. + optional int64 percent_cpc_bid_micros = 1; + + // Projected number of biddable conversions. + optional double biddable_conversions = 2; + + // Projected total value of biddable conversions in local currency. + optional double biddable_conversions_value = 3; + + // Projected number of clicks. + optional int64 clicks = 4; + + // Projected cost in micros. + optional int64 cost_micros = 5; + + // Projected number of impressions. + optional int64 impressions = 6; + + // Projected number of top slot impressions. + optional int64 top_slot_impressions = 7; +} + +// Projected metrics for a specific budget amount. +message BudgetSimulationPoint { + // The simulated budget upon which projected metrics are based. + int64 budget_amount_micros = 1; + + // Projected required daily cpc bid ceiling that the advertiser must set to + // realize this simulation, in micros of the advertiser currency. + // Only campaigns with the Target Spend bidding strategy support this field. + int64 required_cpc_bid_ceiling_micros = 2; + + // Projected number of biddable conversions. + double biddable_conversions = 3; + + // Projected total value of biddable conversions. + double biddable_conversions_value = 4; + + // Projected number of clicks. + int64 clicks = 5; + + // Projected cost in micros. + int64 cost_micros = 6; + + // Projected number of impressions. + int64 impressions = 7; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + int64 top_slot_impressions = 8; +} + +// Projected metrics for a specific target impression share value. +message TargetImpressionShareSimulationPoint { + // The simulated target impression share value (in micros) upon which + // projected metrics are based. + // E.g. 10% impression share, which is equal to 0.1, is stored as 100_000. + // This value is validated and will not exceed 1M (100%). + int64 target_impression_share_micros = 1; + + // Projected required daily cpc bid ceiling that the advertiser must set to + // realize this simulation, in micros of the advertiser currency. + int64 required_cpc_bid_ceiling_micros = 2; + + // Projected required daily budget that the advertiser must set in order to + // receive the estimated traffic, in micros of advertiser currency. + int64 required_budget_amount_micros = 3; + + // Projected number of biddable conversions. + double biddable_conversions = 4; + + // Projected total value of biddable conversions. + double biddable_conversions_value = 5; + + // Projected number of clicks. + int64 clicks = 6; + + // Projected cost in micros. + int64 cost_micros = 7; + + // Projected number of impressions. + int64 impressions = 8; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + int64 top_slot_impressions = 9; + + // Projected number of absolute top impressions. + // Only search advertising channel type supports this field. + int64 absolute_top_impressions = 10; +} diff --git a/google/ads/googleads/v10/common/tag_snippet.proto b/google/ads/googleads/v10/common/tag_snippet.proto new file mode 100644 index 000000000..b8063f751 --- /dev/null +++ b/google/ads/googleads/v10/common/tag_snippet.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/tracking_code_page_format.proto"; +import "google/ads/googleads/v10/enums/tracking_code_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "TagSnippetProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::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.v10.enums.TrackingCodeTypeEnum.TrackingCodeType type = 1; + + // The format of the web page where the tracking tag and snippet will be + // installed, e.g. HTML. + google.ads.googleads.v10.enums.TrackingCodePageFormatEnum.TrackingCodePageFormat page_format = 2; + + // The site tag that adds visitors to your basic remarketing lists and sets + // new cookies on your domain. + optional string global_site_tag = 5; + + // The event snippet that works with the site tag to track actions that + // should be counted as conversions. + optional string event_snippet = 6; +} diff --git a/google/ads/googleads/v10/common/targeting_setting.proto b/google/ads/googleads/v10/common/targeting_setting.proto new file mode 100644 index 000000000..bd7dc471a --- /dev/null +++ b/google/ads/googleads/v10/common/targeting_setting.proto @@ -0,0 +1,84 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/targeting_dimension.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "TargetingSettingProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing TargetingSetting + +// Settings for the targeting-related features, at the campaign and ad group +// levels. For more details about the targeting setting, visit +// https://support.google.com/google-ads/answer/7365594 +message TargetingSetting { + // The per-targeting-dimension setting to restrict the reach of your campaign + // or ad group. + repeated TargetRestriction target_restrictions = 1; + + // The list of operations changing the target restrictions. + // + // Adding a target restriction with a targeting dimension that already exists + // causes the existing target restriction to be replaced with the new value. + repeated TargetRestrictionOperation target_restriction_operations = 2; +} + +// The list of per-targeting-dimension targeting settings. +message TargetRestriction { + // The targeting dimension that these settings apply to. + google.ads.googleads.v10.enums.TargetingDimensionEnum.TargetingDimension targeting_dimension = 1; + + // Indicates whether to restrict your ads to show only for the criteria you + // have selected for this targeting_dimension, or to target all values for + // this targeting_dimension and show ads based on your targeting in other + // TargetingDimensions. A value of `true` means that these criteria will only + // apply bid modifiers, and not affect targeting. A value of `false` means + // that these criteria will restrict targeting as well as applying bid + // modifiers. + optional bool bid_only = 3; +} + +// Operation to be performed on a target restriction list in a mutate. +message TargetRestrictionOperation { + // The operator. + enum Operator { + // Unspecified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Add the restriction to the existing restrictions. + ADD = 2; + + // Remove the restriction from the existing restrictions. + REMOVE = 3; + } + + // Type of list operation to perform. + Operator operator = 1; + + // The target restriction being added to or removed from the list. + TargetRestriction value = 2; +} diff --git a/google/ads/googleads/v10/common/text_label.proto b/google/ads/googleads/v10/common/text_label.proto new file mode 100644 index 000000000..bea75462c --- /dev/null +++ b/google/ads/googleads/v10/common/text_label.proto @@ -0,0 +1,38 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "TextLabelProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// A type of label displaying text on a colored background. +message TextLabel { + // Background color of the label in RGB format. This string must match the + // regular expression '^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'. + // Note: The background color may not be visible for manager accounts. + optional string background_color = 3; + + // A short description of the label. The length must be no more than 200 + // characters. + optional string description = 4; +} diff --git a/google/ads/googleads/v10/common/url_collection.proto b/google/ads/googleads/v10/common/url_collection.proto new file mode 100644 index 000000000..37c8feeea --- /dev/null +++ b/google/ads/googleads/v10/common/url_collection.proto @@ -0,0 +1,43 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "UrlCollectionProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file UrlCollection type. + +// Collection of urls that is tagged with a unique identifier. +message UrlCollection { + // Unique identifier for this UrlCollection instance. + optional string url_collection_id = 5; + + // A list of possible final URLs. + repeated string final_urls = 6; + + // A list of possible final mobile URLs. + repeated string final_mobile_urls = 7; + + // URL template for constructing a tracking URL. + optional string tracking_url_template = 8; +} diff --git a/google/ads/googleads/v10/common/user_lists.proto b/google/ads/googleads/v10/common/user_lists.proto new file mode 100644 index 000000000..56db4cf3b --- /dev/null +++ b/google/ads/googleads/v10/common/user_lists.proto @@ -0,0 +1,290 @@ +// 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.ads.googleads.v10.common; + +import "google/ads/googleads/v10/enums/customer_match_upload_key_type.proto"; +import "google/ads/googleads/v10/enums/user_list_combined_rule_operator.proto"; +import "google/ads/googleads/v10/enums/user_list_crm_data_source_type.proto"; +import "google/ads/googleads/v10/enums/user_list_date_rule_item_operator.proto"; +import "google/ads/googleads/v10/enums/user_list_logical_rule_operator.proto"; +import "google/ads/googleads/v10/enums/user_list_number_rule_item_operator.proto"; +import "google/ads/googleads/v10/enums/user_list_prepopulation_status.proto"; +import "google/ads/googleads/v10/enums/user_list_rule_type.proto"; +import "google/ads/googleads/v10/enums/user_list_string_rule_item_operator.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "UserListsProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing user list types. + +// 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 { + // Seed UserList from which this list is derived. + optional string seed_user_list = 2; +} + +// UserList of CRM users provided by the advertiser. +message CrmBasedUserListInfo { + // A string that uniquely identifies a mobile application from which the data + // was collected. + // For iOS, the ID string is the 9 digit string that appears at the end of an + // App Store URL (e.g., "476943146" for "Flood-It! 2" whose App Store link is + // http://itunes.apple.com/us/app/flood-it!-2/id476943146). + // For Android, the ID string is the application's package name + // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link + // https://play.google.com/store/apps/details?id=com.labpixies.colordrips). + // Required when creating CrmBasedUserList for uploading mobile advertising + // IDs. + optional string app_id = 4; + + // 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.v10.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.v10.enums.UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType data_source_type = 3; +} + +// A client defined rule based on custom parameters sent by web sites or +// uploaded by the advertiser. +message UserListRuleInfo { + // Rule type is used to determine how to group rule items. + // + // The default is OR of ANDs (disjunctive normal form). + // That is, rule items will be ANDed together within rule item groups and the + // groups themselves will be ORed together. + // + // Currently AND of ORs (conjunctive normal form) is only supported for + // ExpressionRuleUserList. + google.ads.googleads.v10.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1; + + // List of rule item groups that defines this rule. + // Rule item groups are grouped together based on rule_type. + repeated UserListRuleItemGroupInfo rule_item_groups = 2; +} + +// A group of rule items. +message UserListRuleItemGroupInfo { + // Rule items that will be grouped together based on rule_type. + repeated UserListRuleItemInfo rule_items = 1; +} + +// An atomic rule item. +message UserListRuleItemInfo { + // Rule variable name. It should match the corresponding key name fired + // by the pixel. + // A name must begin with US-ascii letters or underscore or UTF8 code that is + // greater than 127 and consist of US-ascii letters or digits or underscore or + // UTF8 code that is greater than 127. + // For websites, there are two built-in variable URL (name = 'url__') and + // referrer URL (name = 'ref_url__'). + // This field must be populated when creating a new rule item. + optional string name = 5; + + // An atomic rule item. + oneof rule_item { + // An atomic rule item composed of a number operation. + UserListNumberRuleItemInfo number_rule_item = 2; + + // An atomic rule item composed of a string operation. + UserListStringRuleItemInfo string_rule_item = 3; + + // An atomic rule item composed of a date operation. + UserListDateRuleItemInfo date_rule_item = 4; + } +} + +// A rule item composed of a date operation. +message UserListDateRuleItemInfo { + // Date comparison operator. + // This field is required and must be populated when creating new date + // rule item. + google.ads.googleads.v10.enums.UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator = 1; + + // String representing date value to be compared with the rule variable. + // Supported date format is YYYY-MM-DD. + // Times are reported in the customer's time zone. + optional string value = 4; + + // The relative date value of the right hand side denoted by number of days + // offset from now. The value field will override this field when both are + // present. + optional int64 offset_in_days = 5; +} + +// A rule item composed of a number operation. +message UserListNumberRuleItemInfo { + // Number comparison operator. + // This field is required and must be populated when creating a new number + // rule item. + google.ads.googleads.v10.enums.UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator = 1; + + // Number value to be compared with the variable. + // This field is required and must be populated when creating a new number + // rule item. + optional double value = 3; +} + +// A rule item composed of a string operation. +message UserListStringRuleItemInfo { + // String comparison operator. + // This field is required and must be populated when creating a new string + // rule item. + google.ads.googleads.v10.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator operator = 1; + + // The right hand side of the string rule item. For URLs or referrer URLs, + // the value can not contain illegal URL chars such as newlines, quotes, + // tabs, or parentheses. This field is required and must be populated when + // creating a new string rule item. + optional string value = 3; +} + +// User lists defined by combining two rules, left operand and right operand. +// There are two operators: AND where left operand and right operand have to be +// true; AND_NOT where left operand is true but right operand is false. +message CombinedRuleUserListInfo { + // Left operand of the combined rule. + // This field is required and must be populated when creating new combined + // rule based user list. + UserListRuleInfo left_operand = 1; + + // Right operand of the combined rule. + // This field is required and must be populated when creating new combined + // rule based user list. + UserListRuleInfo right_operand = 2; + + // Operator to connect the two operands. + // + // Required for creating a combined rule user list. + google.ads.googleads.v10.enums.UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator rule_operator = 3; +} + +// Visitors of a page during specific dates. +message DateSpecificRuleUserListInfo { + // Boolean rule that defines visitor of a page. + // + // Required for creating a date specific rule user list. + UserListRuleInfo rule = 1; + + // Start date of users visit. If set to 2000-01-01, then the list includes all + // users before end_date. The date's format should be YYYY-MM-DD. + // + // Required for creating a data specific rule user list. + optional string start_date = 4; + + // Last date of users visit. If set to 2037-12-30, then the list includes all + // users after start_date. The date's format should be YYYY-MM-DD. + // + // Required for creating a data specific rule user list. + optional string end_date = 5; +} + +// Visitors of a page. The page visit is defined by one boolean rule expression. +message ExpressionRuleUserListInfo { + // Boolean rule that defines this user list. The rule consists of a list of + // rule item groups and each rule item group consists of a list of rule items. + // All the rule item groups are ORed or ANDed together for evaluation based on + // rule.rule_type. + // + // Required for creating an expression rule user list. + UserListRuleInfo rule = 1; +} + +// Representation of a userlist that is generated by a rule. +message RuleBasedUserListInfo { + // The status of pre-population. The field is default to NONE if not set which + // means the previous users will not be considered. If set to REQUESTED, past + // site visitors or app users who match the list definition will be included + // in the list (works on the Display Network only). This will only + // add past users from within the last 30 days, depending on the + // 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.v10.enums.UserListPrepopulationStatusEnum.UserListPrepopulationStatus prepopulation_status = 1; + + // Subtypes of rule based user lists. + oneof rule_based_user_list { + // User lists defined by combining two rules. + // There are two operators: AND, where the left and right operands have to + // be true; AND_NOT where left operand is true but right operand is false. + CombinedRuleUserListInfo combined_rule_user_list = 2; + + // Visitors of a page during specific dates. The visiting periods are + // defined as follows: + // Between start_date (inclusive) and end_date (inclusive); + // Before end_date (exclusive) with start_date = 2000-01-01; + // After start_date (exclusive) with end_date = 2037-12-30. + DateSpecificRuleUserListInfo date_specific_rule_user_list = 3; + + // Visitors of a page. The page visit is defined by one boolean rule + // expression. + ExpressionRuleUserListInfo expression_rule_user_list = 4; + } +} + +// Represents a user list that is a custom combination of user lists. +message LogicalUserListInfo { + // Logical list rules that define this user list. The rules are defined as a + // logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are + // ANDed when they are evaluated. + // + // Required for creating a logical user list. + repeated UserListLogicalRuleInfo rules = 1; +} + +// A user list logical rule. A rule has a logical operator (and/or/not) and a +// list of user lists as operands. +message UserListLogicalRuleInfo { + // The logical operator of the rule. + google.ads.googleads.v10.enums.UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator operator = 1; + + // The list of operands of the rule. + repeated LogicalUserListOperandInfo rule_operands = 2; +} + +// Operand of logical user list that consists of a user list. +message LogicalUserListOperandInfo { + // Resource name of a user list as an operand. + optional string user_list = 2; +} + +// User list targeting as a collection of conversions or remarketing actions. +message BasicUserListInfo { + // Actions associated with this user list. + repeated UserListActionInfo actions = 1; +} + +// Represents an action type used for building remarketing user lists. +message UserListActionInfo { + // Subtypes of user list action. + oneof user_list_action { + // A conversion action that's not generated from remarketing. + string conversion_action = 3; + + // A remarketing action. + string remarketing_action = 4; + } +} diff --git a/google/ads/googleads/v10/common/value.proto b/google/ads/googleads/v10/common/value.proto new file mode 100644 index 000000000..a141fc278 --- /dev/null +++ b/google/ads/googleads/v10/common/value.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ValueProto"; +option java_package = "com.google.ads.googleads.v10.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V10::Common"; + +// Proto file describing value types. + +// A generic data container. +message Value { + // A value. + oneof value { + // A boolean. + bool boolean_value = 1; + + // An int64. + int64 int64_value = 2; + + // A float. + float float_value = 3; + + // A double. + double double_value = 4; + + // A string. + string string_value = 5; + } +} diff --git a/google/ads/googleads/v10/enums/BUILD.bazel b/google/ads/googleads/v10/enums/BUILD.bazel new file mode 100644 index 000000000..01a51ee0b --- /dev/null +++ b/google/ads/googleads/v10/enums/BUILD.bazel @@ -0,0 +1,89 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports subpackages. +proto_library( + name = "enums_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/api:annotations_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", +) + +java_proto_library( + name = "enums_java_proto", + deps = [":enums_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", +) + +csharp_proto_library( + name = "enums_csharp_proto", + deps = [":enums_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_proto_library", +) + +ruby_proto_library( + name = "enums_ruby_proto", + deps = [":enums_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_proto_library", +) + +py_proto_library( + name = "enums_py_proto", + deps = [":enums_proto"], +) diff --git a/google/ads/googleads/v10/enums/access_invitation_status.proto b/google/ads/googleads/v10/enums/access_invitation_status.proto new file mode 100644 index 000000000..65533f172 --- /dev/null +++ b/google/ads/googleads/v10/enums/access_invitation_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccessInvitationStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing AccessInvitationStatus enum. + +// Container for enum for identifying the status of access invitation +message AccessInvitationStatusEnum { + // Possible access invitation status of a user + enum AccessInvitationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The initial state of an invitation, before being acted upon by anyone. + PENDING = 2; + + // Invitation process was terminated by the email recipient. No new user was + // created. + DECLINED = 3; + + // Invitation URLs expired without being acted upon. No new user can be + // created. Invitations expire 20 days after creation. + EXPIRED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/access_reason.proto b/google/ads/googleads/v10/enums/access_reason.proto new file mode 100644 index 000000000..6c1420d4f --- /dev/null +++ b/google/ads/googleads/v10/enums/access_reason.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccessReasonProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Indicates the way the resource such as user list is related to a user. +message AccessReasonEnum { + // Enum describing possible access reasons. + enum AccessReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The resource is owned by the user. + OWNED = 2; + + // The resource is shared to the user. + SHARED = 3; + + // The resource is licensed to the user. + LICENSED = 4; + + // The user subscribed to the resource. + SUBSCRIBED = 5; + + // The resource is accessible to the user. + AFFILIATED = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/access_role.proto b/google/ads/googleads/v10/enums/access_role.proto new file mode 100644 index 000000000..9eefaa976 --- /dev/null +++ b/google/ads/googleads/v10/enums/access_role.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccessRoleProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing possible access role for user. +message AccessRoleEnum { + // Possible access role of a user. + enum AccessRole { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Owns its account and can control the addition of other users. + ADMIN = 2; + + // Can modify campaigns, but can't affect other users. + STANDARD = 3; + + // Can view campaigns and account changes, but cannot make edits. + READ_ONLY = 4; + + // Role for \"email only\" access. Represents an email recipient rather than + // a true User entity. + EMAIL_ONLY = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/account_budget_proposal_status.proto b/google/ads/googleads/v10/enums/account_budget_proposal_status.proto new file mode 100644 index 000000000..e548db4b3 --- /dev/null +++ b/google/ads/googleads/v10/enums/account_budget_proposal_status.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing AccountBudgetProposal statuses. + +// Message describing AccountBudgetProposal statuses. +message AccountBudgetProposalStatusEnum { + // The possible statuses of an AccountBudgetProposal. + enum AccountBudgetProposalStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The proposal is pending approval. + PENDING = 2; + + // The proposal has been approved but the corresponding billing setup + // has not. This can occur for proposals that set up the first budget + // when signing up for billing or when performing a change of bill-to + // operation. + APPROVED_HELD = 3; + + // The proposal has been approved. + APPROVED = 4; + + // The proposal has been cancelled by the user. + CANCELLED = 5; + + // The proposal has been rejected by the user, e.g. by rejecting an + // acceptance email. + REJECTED = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/account_budget_proposal_type.proto b/google/ads/googleads/v10/enums/account_budget_proposal_type.proto new file mode 100644 index 000000000..acce98059 --- /dev/null +++ b/google/ads/googleads/v10/enums/account_budget_proposal_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing AccountBudgetProposal types. + +// Message describing AccountBudgetProposal types. +message AccountBudgetProposalTypeEnum { + // The possible types of an AccountBudgetProposal. + enum AccountBudgetProposalType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Identifies a request to create a new budget. + CREATE = 2; + + // Identifies a request to edit an existing budget. + UPDATE = 3; + + // Identifies a request to end a budget that has already started. + END = 4; + + // Identifies a request to remove a budget that hasn't started yet. + REMOVE = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/account_budget_status.proto b/google/ads/googleads/v10/enums/account_budget_status.proto new file mode 100644 index 000000000..81cc346bb --- /dev/null +++ b/google/ads/googleads/v10/enums/account_budget_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing AccountBudget statuses. + +// Message describing AccountBudget statuses. +message AccountBudgetStatusEnum { + // The possible statuses of an AccountBudget. + enum AccountBudgetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The account budget is pending approval. + PENDING = 2; + + // The account budget has been approved. + APPROVED = 3; + + // The account budget has been cancelled by the user. + CANCELLED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/account_link_status.proto b/google/ads/googleads/v10/enums/account_link_status.proto new file mode 100644 index 000000000..78b8dc17b --- /dev/null +++ b/google/ads/googleads/v10/enums/account_link_status.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccountLinkStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing possible statuses of an account link. +message AccountLinkStatusEnum { + // Describes the possible statuses for a link between a Google Ads customer + // and another account. + enum AccountLinkStatus { + // 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 is removed/disabled. + REMOVED = 3; + + // The link to the other account has been requested. A user on the other + // account may now approve the link by setting the status to ENABLED. + REQUESTED = 4; + + // This link has been requested by a user on the other account. It may be + // approved by a user on this account by setting the status to ENABLED. + PENDING_APPROVAL = 5; + + // The link is rejected by the approver. + REJECTED = 6; + + // The link is revoked by the user who requested the link. + REVOKED = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_customizer_placeholder_field.proto b/google/ads/googleads/v10/enums/ad_customizer_placeholder_field.proto new file mode 100644 index 000000000..991565fe8 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_customizer_placeholder_field.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdCustomizerPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Ad Customizer placeholder fields. + +// Values for Ad Customizer placeholder fields. +message AdCustomizerPlaceholderFieldEnum { + // Possible values for Ad Customizers placeholder fields. + enum AdCustomizerPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: INT64. Integer value to be inserted. + INTEGER = 2; + + // Data Type: STRING. Price value to be inserted. + PRICE = 3; + + // Data Type: DATE_TIME. Date value to be inserted. + DATE = 4; + + // Data Type: STRING. String value to be inserted. + STRING = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_destination_type.proto b/google/ads/googleads/v10/enums/ad_destination_type.proto new file mode 100644 index 000000000..3d30e9ecb --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_destination_type.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdDestinationTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad destination types. + +// Container for enumeration of Google Ads destination types. +message AdDestinationTypeEnum { + // Enumerates Google Ads destination types + enum AdDestinationType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Ads that don't intend to drive users off from ads to other destinations + NOT_APPLICABLE = 2; + + // Website + WEBSITE = 3; + + // App Deep Link + APP_DEEP_LINK = 4; + + // iOS App Store or Play Store + APP_STORE = 5; + + // Call Dialer + PHONE_CALL = 6; + + // Map App + MAP_DIRECTIONS = 7; + + // Location Dedicated Page + LOCATION_LISTING = 8; + + // Text Message + MESSAGE = 9; + + // Lead Generation Form + LEAD_FORM = 10; + + // YouTube + YOUTUBE = 11; + + // Ad Destination for Conversions with keys unknown + UNMODELED_FOR_CONVERSIONS = 12; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_group_ad_rotation_mode.proto b/google/ads/googleads/v10/enums/ad_group_ad_rotation_mode.proto new file mode 100644 index 000000000..ed10c892f --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_group_ad_rotation_mode.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdRotationModeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad group ad rotation mode. + +// Container for enum describing possible ad rotation modes of ads within an +// ad group. +message AdGroupAdRotationModeEnum { + // The possible ad rotation modes of an ad group. + enum AdGroupAdRotationMode { + // The ad rotation mode has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Optimize ad group ads based on clicks or conversions. + OPTIMIZE = 2; + + // Rotate evenly forever. + ROTATE_FOREVER = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_group_ad_status.proto b/google/ads/googleads/v10/enums/ad_group_ad_status.proto new file mode 100644 index 000000000..32e496283 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_group_ad_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad group status. + +// Container for enum describing possible statuses of an AdGroupAd. +message AdGroupAdStatusEnum { + // The possible statuses of an AdGroupAd. + enum AdGroupAdStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The ad group ad is enabled. + ENABLED = 2; + + // The ad group ad is paused. + PAUSED = 3; + + // The ad group ad is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_group_criterion_approval_status.proto b/google/ads/googleads/v10/enums/ad_group_criterion_approval_status.proto new file mode 100644 index 000000000..a93ce1f40 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_group_criterion_approval_status.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionApprovalStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing approval status for the criterion. + +// Container for enum describing possible AdGroupCriterion approval statuses. +message AdGroupCriterionApprovalStatusEnum { + // Enumerates AdGroupCriterion approval statuses. + enum AdGroupCriterionApprovalStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Approved. + APPROVED = 2; + + // Disapproved. + DISAPPROVED = 3; + + // Pending Review. + PENDING_REVIEW = 4; + + // Under review. + UNDER_REVIEW = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_group_criterion_status.proto b/google/ads/googleads/v10/enums/ad_group_criterion_status.proto new file mode 100644 index 000000000..fff8f0048 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_group_criterion_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing AdGroupCriterion statuses. + +// Message describing AdGroupCriterion statuses. +message AdGroupCriterionStatusEnum { + // The possible statuses of an AdGroupCriterion. + enum AdGroupCriterionStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The ad group criterion is enabled. + ENABLED = 2; + + // The ad group criterion is paused. + PAUSED = 3; + + // The ad group criterion is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_group_status.proto b/google/ads/googleads/v10/enums/ad_group_status.proto new file mode 100644 index 000000000..159a27f40 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_group_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad group status. + +// Container for enum describing possible statuses of an ad group. +message AdGroupStatusEnum { + // The possible statuses of an ad group. + enum AdGroupStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The ad group is enabled. + ENABLED = 2; + + // The ad group is paused. + PAUSED = 3; + + // The ad group is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_group_type.proto b/google/ads/googleads/v10/enums/ad_group_type.proto new file mode 100644 index 000000000..1105e54b1 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_group_type.proto @@ -0,0 +1,94 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad group types. + +// Defines types of an ad group, specific to a particular campaign channel +// type. This type drives validations that restrict which entities can be +// added to the ad group. +message AdGroupTypeEnum { + // Enum listing the possible types of an ad group. + enum AdGroupType { + // The type has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The default ad group type for Search campaigns. + SEARCH_STANDARD = 2; + + // The default ad group type for Display campaigns. + DISPLAY_STANDARD = 3; + + // The ad group type for Shopping campaigns serving standard product ads. + SHOPPING_PRODUCT_ADS = 4; + + // The default ad group type for Hotel campaigns. + HOTEL_ADS = 6; + + // The type for ad groups in Smart Shopping campaigns. + SHOPPING_SMART_ADS = 7; + + // Short unskippable in-stream video ads. + VIDEO_BUMPER = 8; + + // TrueView (skippable) in-stream video ads. + VIDEO_TRUE_VIEW_IN_STREAM = 9; + + // TrueView in-display video ads. + VIDEO_TRUE_VIEW_IN_DISPLAY = 10; + + // Unskippable in-stream video ads. + VIDEO_NON_SKIPPABLE_IN_STREAM = 11; + + // Outstream video ads. + VIDEO_OUTSTREAM = 12; + + // Ad group type for Dynamic Search Ads ad groups. + SEARCH_DYNAMIC_ADS = 13; + + // The type for ad groups in Shopping Comparison Listing campaigns. + SHOPPING_COMPARISON_LISTING_ADS = 14; + + // The ad group type for Promoted Hotel ad groups. + PROMOTED_HOTEL_ADS = 15; + + // Video responsive ad groups. + VIDEO_RESPONSIVE = 16; + + // Video efficient reach ad groups. + VIDEO_EFFICIENT_REACH = 17; + + // Ad group type for Smart campaigns. + SMART_CAMPAIGN_ADS = 18; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_network_type.proto b/google/ads/googleads/v10/enums/ad_network_type.proto new file mode 100644 index 000000000..69d811916 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_network_type.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdNetworkTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad network types. + +// Container for enumeration of Google Ads network types. +message AdNetworkTypeEnum { + // Enumerates Google Ads network types. + enum AdNetworkType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Google search. + SEARCH = 2; + + // Search partners. + SEARCH_PARTNERS = 3; + + // Display Network. + CONTENT = 4; + + // YouTube Search. + YOUTUBE_SEARCH = 5; + + // YouTube Videos + YOUTUBE_WATCH = 6; + + // Cross-network. + MIXED = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_serving_optimization_status.proto b/google/ads/googleads/v10/enums/ad_serving_optimization_status.proto new file mode 100644 index 000000000..b00eb9427 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_serving_optimization_status.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdServingOptimizationStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad serving statuses. + +// Possible ad serving statuses of a campaign. +message AdServingOptimizationStatusEnum { + // Enum describing possible serving statuses. + enum AdServingOptimizationStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Ad serving is optimized based on CTR for the campaign. + OPTIMIZE = 2; + + // Ad serving is optimized based on CTR * Conversion for the campaign. If + // the campaign is not in the conversion optimizer bidding strategy, it will + // default to OPTIMIZED. + CONVERSION_OPTIMIZE = 3; + + // Ads are rotated evenly for 90 days, then optimized for clicks. + ROTATE = 4; + + // Show lower performing ads more evenly with higher performing ads, and do + // not optimize. + ROTATE_INDEFINITELY = 5; + + // Ad serving optimization status is not available. + UNAVAILABLE = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_strength.proto b/google/ads/googleads/v10/enums/ad_strength.proto new file mode 100644 index 000000000..ca879ebe0 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_strength.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdStrengthProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad strengths. + +// Container for enum describing possible ad strengths. +message AdStrengthEnum { + // Enum listing the possible ad strengths. + enum AdStrength { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The ad strength is currently pending. + PENDING = 2; + + // No ads could be generated. + NO_ADS = 3; + + // Poor strength. + POOR = 4; + + // Average strength. + AVERAGE = 5; + + // Good strength. + GOOD = 6; + + // Excellent strength. + EXCELLENT = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/ad_type.proto b/google/ads/googleads/v10/enums/ad_type.proto new file mode 100644 index 000000000..02c7b4296 --- /dev/null +++ b/google/ads/googleads/v10/enums/ad_type.proto @@ -0,0 +1,135 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the ad type. + +// Container for enum describing possible types of an ad. +message AdTypeEnum { + // The possible types of an ad. + enum AdType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The ad is a text ad. + TEXT_AD = 2; + + // The ad is an expanded text ad. + EXPANDED_TEXT_AD = 3; + + // The ad is an expanded dynamic search ad. + EXPANDED_DYNAMIC_SEARCH_AD = 7; + + // The ad is a hotel ad. + HOTEL_AD = 8; + + // The ad is a Smart Shopping ad. + SHOPPING_SMART_AD = 9; + + // The ad is a standard Shopping ad. + SHOPPING_PRODUCT_AD = 10; + + // The ad is a video ad. + VIDEO_AD = 12; + + // This ad is a Gmail ad. + GMAIL_AD = 13; + + // This ad is an Image ad. + IMAGE_AD = 14; + + // The ad is a responsive search ad. + RESPONSIVE_SEARCH_AD = 15; + + // The ad is a legacy responsive display ad. + LEGACY_RESPONSIVE_DISPLAY_AD = 16; + + // The ad is an app ad. + APP_AD = 17; + + // The ad is a legacy app install ad. + LEGACY_APP_INSTALL_AD = 18; + + // The ad is a responsive display ad. + RESPONSIVE_DISPLAY_AD = 19; + + // The ad is a local ad. + LOCAL_AD = 20; + + // The ad is a display upload ad with the HTML5_UPLOAD_AD product type. + HTML5_UPLOAD_AD = 21; + + // The ad is a display upload ad with one of the DYNAMIC_HTML5_* product + // types. + DYNAMIC_HTML5_AD = 22; + + // The ad is an app engagement ad. + APP_ENGAGEMENT_AD = 23; + + // The ad is a Shopping Comparison Listing ad. + SHOPPING_COMPARISON_LISTING_AD = 24; + + // Video bumper ad. + VIDEO_BUMPER_AD = 25; + + // Video non-skippable in-stream ad. + VIDEO_NON_SKIPPABLE_IN_STREAM_AD = 26; + + // Video outstream ad. + VIDEO_OUTSTREAM_AD = 27; + + // Video TrueView in-stream ad. + VIDEO_TRUEVIEW_IN_STREAM_AD = 29; + + // Video responsive ad. + VIDEO_RESPONSIVE_AD = 30; + + // Smart campaign ad. + SMART_CAMPAIGN_AD = 31; + + // Call ad. + CALL_AD = 32; + + // Universal app pre-registration ad. + APP_PRE_REGISTRATION_AD = 33; + + // In-feed video ad. + IN_FEED_VIDEO_AD = 34; + + // Discovery multi asset ad. + DISCOVERY_MULTI_ASSET_AD = 35; + + // Discovery carousel ad. + DISCOVERY_CAROUSEL_AD = 36; + } + + +} diff --git a/google/ads/googleads/v10/enums/advertising_channel_sub_type.proto b/google/ads/googleads/v10/enums/advertising_channel_sub_type.proto new file mode 100644 index 000000000..5b4bac1a1 --- /dev/null +++ b/google/ads/googleads/v10/enums/advertising_channel_sub_type.proto @@ -0,0 +1,100 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdvertisingChannelSubTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing advertising channel subtypes. + +// An immutable specialization of an Advertising Channel. +message AdvertisingChannelSubTypeEnum { + // Enum describing the different channel subtypes. + enum AdvertisingChannelSubType { + // Not specified. + UNSPECIFIED = 0; + + // Used as a return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile app campaigns for Search. + SEARCH_MOBILE_APP = 2; + + // Mobile app campaigns for Display. + DISPLAY_MOBILE_APP = 3; + + // AdWords express campaigns for search. + SEARCH_EXPRESS = 4; + + // AdWords Express campaigns for display. + DISPLAY_EXPRESS = 5; + + // Smart Shopping campaigns. + SHOPPING_SMART_ADS = 6; + + // Gmail Ad campaigns. + DISPLAY_GMAIL_AD = 7; + + // Smart display campaigns. + DISPLAY_SMART_CAMPAIGN = 8; + + // Video Outstream campaigns. + VIDEO_OUTSTREAM = 9; + + // Video TrueView for Action campaigns. + VIDEO_ACTION = 10; + + // Video campaigns with non-skippable video ads. + VIDEO_NON_SKIPPABLE = 11; + + // App Campaign that allows you to easily promote your Android or iOS app + // across Google's top properties including Search, Play, YouTube, and the + // Google Display Network. + APP_CAMPAIGN = 12; + + // App Campaign for engagement, focused on driving re-engagement with the + // app across several of Google's top properties including Search, YouTube, + // and the Google Display Network. + APP_CAMPAIGN_FOR_ENGAGEMENT = 13; + + // Campaigns specialized for local advertising. + LOCAL_CAMPAIGN = 14; + + // Shopping Comparison Listing campaigns. + SHOPPING_COMPARISON_LISTING_ADS = 15; + + // Standard Smart campaigns. + SMART_CAMPAIGN = 16; + + // Video campaigns with sequence video ads. + VIDEO_SEQUENCE = 17; + + // App Campaign for pre registration, specialized for advertising mobile + // app pre-registration, that targets multiple advertising channels across + // Google Play, YouTube and Display Network. See + // https://support.google.com/google-ads/answer/9441344 to learn more. + APP_CAMPAIGN_FOR_PRE_REGISTRATION = 18; + } + + +} diff --git a/google/ads/googleads/v10/enums/advertising_channel_type.proto b/google/ads/googleads/v10/enums/advertising_channel_type.proto new file mode 100644 index 000000000..b3ca13ba3 --- /dev/null +++ b/google/ads/googleads/v10/enums/advertising_channel_type.proto @@ -0,0 +1,77 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdvertisingChannelTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing advertising channel types + +// The channel type a campaign may target to serve on. +message AdvertisingChannelTypeEnum { + // Enum describing the various advertising channel types. + enum AdvertisingChannelType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Search Network. Includes display bundled, and Search+ campaigns. + SEARCH = 2; + + // Google Display Network only. + DISPLAY = 3; + + // Shopping campaigns serve on the shopping property + // and on google.com search results. + SHOPPING = 4; + + // Hotel Ads campaigns. + HOTEL = 5; + + // Video campaigns. + VIDEO = 6; + + // App Campaigns, and App Campaigns for Engagement, that run + // across multiple channels. + MULTI_CHANNEL = 7; + + // Local ads campaigns. + LOCAL = 8; + + // Smart campaigns. + SMART = 9; + + // Performance Max campaigns. + PERFORMANCE_MAX = 10; + + // Local services campaigns. + LOCAL_SERVICES = 11; + + // Discovery campaigns. + DISCOVERY = 12; + } + + +} diff --git a/google/ads/googleads/v10/enums/affiliate_location_feed_relationship_type.proto b/google/ads/googleads/v10/enums/affiliate_location_feed_relationship_type.proto new file mode 100644 index 000000000..770becea8 --- /dev/null +++ b/google/ads/googleads/v10/enums/affiliate_location_feed_relationship_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AffiliateLocationFeedRelationshipTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing relation type for affiliate location feeds. + +// Container for enum describing possible values for a relationship type for +// an affiliate location feed. +message AffiliateLocationFeedRelationshipTypeEnum { + // Possible values for a relationship type for an affiliate location feed. + enum AffiliateLocationFeedRelationshipType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // General retailer relationship. + GENERAL_RETAILER = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/affiliate_location_placeholder_field.proto b/google/ads/googleads/v10/enums/affiliate_location_placeholder_field.proto new file mode 100644 index 000000000..03219d507 --- /dev/null +++ b/google/ads/googleads/v10/enums/affiliate_location_placeholder_field.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AffiliateLocationPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Affiliate Location placeholder fields. + +// Values for Affiliate Location placeholder fields. +message AffiliateLocationPlaceholderFieldEnum { + // Possible values for Affiliate Location placeholder fields. + enum AffiliateLocationPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The name of the business. + BUSINESS_NAME = 2; + + // Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_1 = 3; + + // Data Type: STRING. Line 2 of the business address. + ADDRESS_LINE_2 = 4; + + // Data Type: STRING. City of the business address. + CITY = 5; + + // Data Type: STRING. Province of the business address. + PROVINCE = 6; + + // Data Type: STRING. Postal code of the business address. + POSTAL_CODE = 7; + + // Data Type: STRING. Country code of the business address. + COUNTRY_CODE = 8; + + // Data Type: STRING. Phone number of the business. + PHONE_NUMBER = 9; + + // Data Type: STRING. Language code of the business. + LANGUAGE_CODE = 10; + + // Data Type: INT64. ID of the chain. + CHAIN_ID = 11; + + // Data Type: STRING. Name of the chain. + CHAIN_NAME = 12; + } + + +} diff --git a/google/ads/googleads/v10/enums/age_range_type.proto b/google/ads/googleads/v10/enums/age_range_type.proto new file mode 100644 index 000000000..5d1444b8d --- /dev/null +++ b/google/ads/googleads/v10/enums/age_range_type.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AgeRangeTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing age range types. + +// Container for enum describing the type of demographic age ranges. +message AgeRangeTypeEnum { + // The type of demographic age ranges (e.g. between 18 and 24 years old). + enum AgeRangeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Between 18 and 24 years old. + AGE_RANGE_18_24 = 503001; + + // Between 25 and 34 years old. + AGE_RANGE_25_34 = 503002; + + // Between 35 and 44 years old. + AGE_RANGE_35_44 = 503003; + + // Between 45 and 54 years old. + AGE_RANGE_45_54 = 503004; + + // Between 55 and 64 years old. + AGE_RANGE_55_64 = 503005; + + // 65 years old and beyond. + AGE_RANGE_65_UP = 503006; + + // Undetermined age range. + AGE_RANGE_UNDETERMINED = 503999; + } + + +} diff --git a/google/ads/googleads/v10/enums/app_campaign_app_store.proto b/google/ads/googleads/v10/enums/app_campaign_app_store.proto new file mode 100644 index 000000000..595ede591 --- /dev/null +++ b/google/ads/googleads/v10/enums/app_campaign_app_store.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppCampaignAppStoreProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing App Campaign app store. + +// The application store that distributes mobile applications. +message AppCampaignAppStoreEnum { + // Enum describing app campaign app store. + enum AppCampaignAppStore { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Apple app store. + APPLE_APP_STORE = 2; + + // Google play. + GOOGLE_APP_STORE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/app_campaign_bidding_strategy_goal_type.proto b/google/ads/googleads/v10/enums/app_campaign_bidding_strategy_goal_type.proto new file mode 100644 index 000000000..b33287e8d --- /dev/null +++ b/google/ads/googleads/v10/enums/app_campaign_bidding_strategy_goal_type.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppCampaignBiddingStrategyGoalTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing App Campaign bidding strategy goal types. + +// Container for enum describing goal towards which the bidding strategy of an +// app campaign should optimize for. +message AppCampaignBiddingStrategyGoalTypeEnum { + // Goal type of App campaign BiddingStrategy. + enum AppCampaignBiddingStrategyGoalType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Aim to maximize the number of app installs. The cpa bid is the + // target cost per install. + OPTIMIZE_INSTALLS_TARGET_INSTALL_COST = 2; + + // Aim to maximize the long term number of selected in-app conversions from + // app installs. The cpa bid is the target cost per install. + OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST = 3; + + // Aim to maximize the long term number of selected in-app conversions from + // app installs. The cpa bid is the target cost per in-app conversion. Note + // that the actual cpa may seem higher than the target cpa at first, since + // the long term conversions haven't happened yet. + OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST = 4; + + // Aim to maximize all conversions' value, i.e. install + selected in-app + // conversions while achieving or exceeding target return on advertising + // spend. + OPTIMIZE_RETURN_ON_ADVERTISING_SPEND = 5; + + // Aim to maximize the pre-registration of the app. + OPTIMIZE_PRE_REGISTRATION_CONVERSION_VOLUME = 6; + + // Aim to maximize installation of the app without target cost-per-install. + OPTIMIZE_INSTALLS_WITHOUT_TARGET_INSTALL_COST = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/app_payment_model_type.proto b/google/ads/googleads/v10/enums/app_payment_model_type.proto new file mode 100644 index 000000000..4e54fb83c --- /dev/null +++ b/google/ads/googleads/v10/enums/app_payment_model_type.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppPaymentModelTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing criteria types. + +// Represents a criterion for targeting paid apps. +message AppPaymentModelTypeEnum { + // Enum describing possible app payment models. + enum AppPaymentModelType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Represents paid-for apps. + PAID = 30; + } + + +} diff --git a/google/ads/googleads/v10/enums/app_placeholder_field.proto b/google/ads/googleads/v10/enums/app_placeholder_field.proto new file mode 100644 index 000000000..e8dcd3d0d --- /dev/null +++ b/google/ads/googleads/v10/enums/app_placeholder_field.proto @@ -0,0 +1,73 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing App placeholder fields. + +// Values for App placeholder fields. +message AppPlaceholderFieldEnum { + // Possible values for App placeholder fields. + enum AppPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: INT64. The application store that the target application + // belongs to. Valid values are: 1 = Apple iTunes Store; 2 = Google Play + // Store. + STORE = 2; + + // Data Type: STRING. The store-specific ID for the target application. + ID = 3; + + // Data Type: STRING. The visible text displayed when the link is rendered + // in an ad. + LINK_TEXT = 4; + + // Data Type: STRING. The destination URL of the in-app link. + URL = 5; + + // Data Type: URL_LIST. Final URLs for the in-app link when using Upgraded + // URLs. + FINAL_URLS = 6; + + // Data Type: URL_LIST. Final Mobile URLs for the in-app link when using + // Upgraded URLs. + FINAL_MOBILE_URLS = 7; + + // Data Type: URL. Tracking template for the in-app link when using Upgraded + // URLs. + TRACKING_URL = 8; + + // Data Type: STRING. Final URL suffix for the in-app link when using + // parallel tracking. + FINAL_URL_SUFFIX = 9; + } + + +} diff --git a/google/ads/googleads/v10/enums/app_store.proto b/google/ads/googleads/v10/enums/app_store.proto new file mode 100644 index 000000000..86fc35559 --- /dev/null +++ b/google/ads/googleads/v10/enums/app_store.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppStoreProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing app store types for an app extension. + +// Container for enum describing app store type in an app extension. +message AppStoreEnum { + // App store type in an app extension. + enum AppStore { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Apple iTunes. + APPLE_ITUNES = 2; + + // Google Play. + GOOGLE_PLAY = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/app_url_operating_system_type.proto b/google/ads/googleads/v10/enums/app_url_operating_system_type.proto new file mode 100644 index 000000000..cce44ae35 --- /dev/null +++ b/google/ads/googleads/v10/enums/app_url_operating_system_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppUrlOperatingSystemTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing operating system for a deeplink app URL. + +// The possible OS types for a deeplink AppUrl. +message AppUrlOperatingSystemTypeEnum { + // Operating System + enum AppUrlOperatingSystemType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The Apple IOS operating system. + IOS = 2; + + // The Android operating system. + ANDROID = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_field_type.proto b/google/ads/googleads/v10/enums/asset_field_type.proto new file mode 100644 index 000000000..602781401 --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_field_type.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetFieldTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing asset type. + +// Container for enum describing the possible placements of an asset. +message AssetFieldTypeEnum { + // Enum describing the possible placements of an asset. + enum AssetFieldType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The asset is linked for use as a headline. + HEADLINE = 2; + + // The asset is linked for use as a description. + DESCRIPTION = 3; + + // The asset is linked for use as mandatory ad text. + MANDATORY_AD_TEXT = 4; + + // The asset is linked for use as a marketing image. + MARKETING_IMAGE = 5; + + // The asset is linked for use as a media bundle. + MEDIA_BUNDLE = 6; + + // The asset is linked for use as a YouTube video. + YOUTUBE_VIDEO = 7; + + // The asset is linked to indicate that a hotels campaign is "Book on + // Google" enabled. + BOOK_ON_GOOGLE = 8; + + // The asset is linked for use as a Lead Form extension. + LEAD_FORM = 9; + + // The asset is linked for use as a Promotion extension. + PROMOTION = 10; + + // The asset is linked for use as a Callout extension. + CALLOUT = 11; + + // The asset is linked for use as a Structured Snippet extension. + STRUCTURED_SNIPPET = 12; + + // The asset is linked for use as a Sitelink extension. + SITELINK = 13; + + // The asset is linked for use as a Mobile App extension. + MOBILE_APP = 14; + + // The asset is linked for use as a Hotel Callout extension. + HOTEL_CALLOUT = 15; + + // The asset is linked for use as a Call extension. + CALL = 16; + + // The asset is linked for use as a Price extension. + PRICE = 24; + + // The asset is linked for use as a long headline. + LONG_HEADLINE = 17; + + // The asset is linked for use as a business name. + BUSINESS_NAME = 18; + + // The asset is linked for use as a square marketing image. + SQUARE_MARKETING_IMAGE = 19; + + // The asset is linked for use as a portrait marketing image. + PORTRAIT_MARKETING_IMAGE = 20; + + // The asset is linked for use as a logo. + LOGO = 21; + + // The asset is linked for use as a landscape logo. + LANDSCAPE_LOGO = 22; + + // The asset is linked for use as a non YouTube logo. + VIDEO = 23; + + // The asset is linked for use to select a call-to-action. + CALL_TO_ACTION_SELECTION = 25; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_group_status.proto b/google/ads/googleads/v10/enums/asset_group_status.proto new file mode 100644 index 000000000..f973d6cdd --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_group_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing asset group status. + +// Container for enum describing possible statuses of an asset group. +message AssetGroupStatusEnum { + // The possible statuses of an asset group. + enum AssetGroupStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The asset group is enabled. + ENABLED = 2; + + // The asset group is paused. + PAUSED = 3; + + // The asset group is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_link_status.proto b/google/ads/googleads/v10/enums/asset_link_status.proto new file mode 100644 index 000000000..214590037 --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_link_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetLinkStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing status of an asset link. + +// Container for enum describing possible statuses of an asset link. +message AssetLinkStatusEnum { + // Enum describing statuses of an asset link. + enum AssetLinkStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Asset link is enabled. + ENABLED = 2; + + // Asset link has been removed. + REMOVED = 3; + + // Asset link is paused. + PAUSED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_performance_label.proto b/google/ads/googleads/v10/enums/asset_performance_label.proto new file mode 100644 index 000000000..0518a051b --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_performance_label.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetPerformanceLabelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the performance label of an asset. + +// Container for enum describing the performance label of an asset. +message AssetPerformanceLabelEnum { + // Enum describing the possible performance labels of an asset, usually + // computed in the context of a linkage. + enum AssetPerformanceLabel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // This asset does not yet have any performance informantion. This may be + // because it is still under review. + PENDING = 2; + + // The asset has started getting impressions but the stats are not + // statistically significant enough to get an asset performance label. + LEARNING = 3; + + // Worst performing assets. + LOW = 4; + + // Good performing assets. + GOOD = 5; + + // Best performing assets. + BEST = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_set_asset_status.proto b/google/ads/googleads/v10/enums/asset_set_asset_status.proto new file mode 100644 index 000000000..314d8232a --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_set_asset_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetAssetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing asset set status. + +// Container for enum describing possible statuses of an asset set asset. +message AssetSetAssetStatusEnum { + // The possible statuses of an asset set asset. + enum AssetSetAssetStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // This is a response-only value. + UNKNOWN = 1; + + // The asset set asset is enabled. + ENABLED = 2; + + // The asset set asset is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_set_link_status.proto b/google/ads/googleads/v10/enums/asset_set_link_status.proto new file mode 100644 index 000000000..e1ad1f3b2 --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_set_link_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetLinkStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing asset set status. + +// Container for enum describing possible statuses of the linkage between asset +// set and its container. +message AssetSetLinkStatusEnum { + // The possible statuses of he linkage between asset set and its container. + enum AssetSetLinkStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // This is a response-only value. + UNKNOWN = 1; + + // The linkage between asset set and its container is enabled. + ENABLED = 2; + + // The linkage between asset set and its container is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_set_status.proto b/google/ads/googleads/v10/enums/asset_set_status.proto new file mode 100644 index 000000000..fb367168d --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_set_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing asset set status. + +// Container for enum describing possible statuses of an asset set. +message AssetSetStatusEnum { + // The possible statuses of an asset set. + enum AssetSetStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // This is a response-only value. + UNKNOWN = 1; + + // The asset set is enabled. + ENABLED = 2; + + // The asset set is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_set_type.proto b/google/ads/googleads/v10/enums/asset_set_type.proto new file mode 100644 index 000000000..9528e760c --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_set_type.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing asset set type. + +// Container for enum describing possible types of an asset set. +message AssetSetTypeEnum { + // Possible types of an asset set. + enum AssetSetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Page asset set. + PAGE_FEED = 2; + + // Dynamic education asset set. + DYNAMIC_EDUCATION = 3; + + // Google Merchant Center asset set. + MERCHANT_CENTER_FEED = 4; + + // Dynamic real estate asset set. + DYNAMIC_REAL_ESTATE = 5; + + // Dynamic custom asset set. + DYNAMIC_CUSTOM = 6; + + // Dynamic hotels and rentals asset set. + DYNAMIC_HOTELS_AND_RENTALS = 7; + + // Dynamic flights asset set. + DYNAMIC_FLIGHTS = 8; + + // Dynamic travel asset set. + DYNAMIC_TRAVEL = 9; + + // Dynamic local asset set. + DYNAMIC_LOCAL = 10; + + // Dynamic jobs asset set. + DYNAMIC_JOBS = 11; + } + + +} diff --git a/google/ads/googleads/v10/enums/asset_type.proto b/google/ads/googleads/v10/enums/asset_type.proto new file mode 100644 index 000000000..980454414 --- /dev/null +++ b/google/ads/googleads/v10/enums/asset_type.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing asset type. + +// Container for enum describing the types of asset. +message AssetTypeEnum { + // Enum describing possible types of asset. + enum AssetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // YouTube video asset. + YOUTUBE_VIDEO = 2; + + // Media bundle asset. + MEDIA_BUNDLE = 3; + + // Image asset. + IMAGE = 4; + + // Text asset. + TEXT = 5; + + // Lead form asset. + LEAD_FORM = 6; + + // Book on Google asset. + BOOK_ON_GOOGLE = 7; + + // Promotion asset. + PROMOTION = 8; + + // Callout asset. + CALLOUT = 9; + + // Structured Snippet asset. + STRUCTURED_SNIPPET = 10; + + // Sitelink asset. + SITELINK = 11; + + // Page Feed asset. + PAGE_FEED = 12; + + // Dynamic Education asset. + DYNAMIC_EDUCATION = 13; + + // Mobile app asset. + MOBILE_APP = 14; + + // Hotel callout asset. + HOTEL_CALLOUT = 15; + + // Call asset. + CALL = 16; + + // Price asset. + PRICE = 17; + + // Call to action asset. + CALL_TO_ACTION = 18; + + // Dynamic real estate asset. + DYNAMIC_REAL_ESTATE = 19; + + // Dynamic custom asset. + DYNAMIC_CUSTOM = 20; + + // Dynamic hotels and rentals asset. + DYNAMIC_HOTELS_AND_RENTALS = 21; + + // Dynamic flights asset. + DYNAMIC_FLIGHTS = 22; + + // Discovery Carousel Card asset. + DISCOVERY_CAROUSEL_CARD = 23; + + // Dynamic travel asset. + DYNAMIC_TRAVEL = 24; + + // Dynamic local asset. + DYNAMIC_LOCAL = 25; + + // Dynamic jobs asset. + DYNAMIC_JOBS = 26; + } + + +} diff --git a/google/ads/googleads/v10/enums/async_action_status.proto b/google/ads/googleads/v10/enums/async_action_status.proto new file mode 100644 index 000000000..6c3c3ee7d --- /dev/null +++ b/google/ads/googleads/v10/enums/async_action_status.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AsyncActionStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing experiment async action status. + +// Container for enum describing the experiment async action status. +message AsyncActionStatusEnum { + // The async action status of the experiment. + enum AsyncActionStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Action has not started. + NOT_STARTED = 2; + + // Action is in progress. + IN_PROGRESS = 3; + + // Action has completed successfully. + COMPLETED = 4; + + // Action has failed. + FAILED = 5; + + // Action has completed successfully with warnings. + COMPLETED_WITH_WARNING = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/attribution_model.proto b/google/ads/googleads/v10/enums/attribution_model.proto new file mode 100644 index 000000000..54f1aa78c --- /dev/null +++ b/google/ads/googleads/v10/enums/attribution_model.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AttributionModelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum representing the attribution model that describes how to +// distribute credit for a particular conversion across potentially many prior +// interactions. +message AttributionModelEnum { + // The attribution model that describes how to distribute credit for a + // particular conversion across potentially many prior interactions. + enum AttributionModel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Uses external attribution. + EXTERNAL = 100; + + // Attributes all credit for a conversion to its last click. + GOOGLE_ADS_LAST_CLICK = 101; + + // Attributes all credit for a conversion to its first click using Google + // Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK = 102; + + // Attributes credit for a conversion equally across all of its clicks using + // Google Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_LINEAR = 103; + + // Attributes exponentially more credit for a conversion to its more recent + // clicks using Google Search attribution (half-life is 1 week). + GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY = 104; + + // Attributes 40% of the credit for a conversion to its first and last + // clicks. Remaining 20% is evenly distributed across all other clicks. This + // uses Google Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED = 105; + + // Flexible model that uses machine learning to determine the appropriate + // distribution of credit among clicks using Google Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN = 106; + } + + +} diff --git a/google/ads/googleads/v10/enums/audience_status.proto b/google/ads/googleads/v10/enums/audience_status.proto new file mode 100644 index 000000000..3e7be28c2 --- /dev/null +++ b/google/ads/googleads/v10/enums/audience_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AudienceStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing audience status. + +// The status of audience. +message AudienceStatusEnum { + // Enum containing possible audience status types. + enum AudienceStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Enabled status - audience is enabled and can be targeted. + ENABLED = 2; + + // Removed status - audience is removed and cannot be used for + // targeting. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/batch_job_status.proto b/google/ads/googleads/v10/enums/batch_job_status.proto new file mode 100644 index 000000000..706e6b79f --- /dev/null +++ b/google/ads/googleads/v10/enums/batch_job_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BatchJobStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing batch job statuses. + +// Container for enum describing possible batch job statuses. +message BatchJobStatusEnum { + // The batch job statuses. + enum BatchJobStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The job is not currently running. + PENDING = 2; + + // The job is running. + RUNNING = 3; + + // The job is done. + DONE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/bid_modifier_source.proto b/google/ads/googleads/v10/enums/bid_modifier_source.proto new file mode 100644 index 000000000..1ace5726c --- /dev/null +++ b/google/ads/googleads/v10/enums/bid_modifier_source.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BidModifierSourceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing bid modifier source. + +// Container for enum describing possible bid modifier sources. +message BidModifierSourceEnum { + // Enum describing possible bid modifier sources. + enum BidModifierSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The bid modifier is specified at the campaign level, on the campaign + // level criterion. + CAMPAIGN = 2; + + // The bid modifier is specified (overridden) at the ad group level. + AD_GROUP = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/bidding_source.proto b/google/ads/googleads/v10/enums/bidding_source.proto new file mode 100644 index 000000000..45b1b17db --- /dev/null +++ b/google/ads/googleads/v10/enums/bidding_source.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BiddingSourceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing bidding sources. + +// Container for enum describing possible bidding sources. +message BiddingSourceEnum { + // Indicates where a bid or target is defined. For example, an ad group + // criterion may define a cpc bid directly, or it can inherit its cpc bid from + // the ad group. + enum BiddingSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Effective bid or target is inherited from campaign bidding strategy. + CAMPAIGN_BIDDING_STRATEGY = 5; + + // The bid or target is defined on the ad group. + AD_GROUP = 6; + + // The bid or target is defined on the ad group criterion. + AD_GROUP_CRITERION = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/bidding_strategy_status.proto b/google/ads/googleads/v10/enums/bidding_strategy_status.proto new file mode 100644 index 000000000..ec7b6ddcd --- /dev/null +++ b/google/ads/googleads/v10/enums/bidding_strategy_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing BiddingStrategy statuses. + +// Message describing BiddingStrategy statuses. +message BiddingStrategyStatusEnum { + // The possible statuses of a BiddingStrategy. + enum BiddingStrategyStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The bidding strategy is enabled. + ENABLED = 2; + + // The bidding strategy is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/bidding_strategy_type.proto b/google/ads/googleads/v10/enums/bidding_strategy_type.proto new file mode 100644 index 000000000..ba9aed1df --- /dev/null +++ b/google/ads/googleads/v10/enums/bidding_strategy_type.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing bidding schemes. + +// Container for enum describing possible bidding strategy types. +message BiddingStrategyTypeEnum { + // Enum describing possible bidding strategy types. + enum BiddingStrategyType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Commission is an automatic bidding strategy in which the advertiser pays + // a certain portion of the conversion value. + COMMISSION = 16; + + // Enhanced CPC is 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. + ENHANCED_CPC = 2; + + // Used for return value only. Indicates that a campaign does not have a + // bidding strategy. This prevents the campaign from serving. For example, + // a campaign may be attached to a manager bidding strategy and the serving + // account is subsequently unlinked from the manager account. In this case + // the campaign will automatically be detached from the now inaccessible + // manager bidding strategy and transition to the INVALID bidding strategy + // type. + INVALID = 17; + + // Manual click based bidding where user pays per click. + MANUAL_CPC = 3; + + // Manual impression based bidding + // where user pays per thousand impressions. + MANUAL_CPM = 4; + + // A bidding strategy that pays a configurable amount per video view. + MANUAL_CPV = 13; + + // A bidding strategy that automatically maximizes number of conversions + // given a daily budget. + MAXIMIZE_CONVERSIONS = 10; + + // An automated bidding strategy that automatically sets bids to maximize + // revenue while spending your budget. + MAXIMIZE_CONVERSION_VALUE = 11; + + // Page-One Promoted bidding scheme, which sets max cpc bids to + // target impressions on page one or page one promoted slots on google.com. + // This enum value is deprecated. + PAGE_ONE_PROMOTED = 5; + + // Percent Cpc is bidding strategy where bids are a fraction of the + // advertised price for some good or service. + PERCENT_CPC = 12; + + // Target CPA is an automated bid strategy that sets bids + // to help get as many conversions as possible + // at the target cost-per-acquisition (CPA) you set. + TARGET_CPA = 6; + + // Target CPM is an automated bid strategy that sets bids to help get + // as many impressions as possible at the target cost per one thousand + // impressions (CPM) you set. + TARGET_CPM = 14; + + // 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). + TARGET_IMPRESSION_SHARE = 15; + + // Target Outrank Share is an automated bidding strategy that sets bids + // based on the target fraction of auctions where the advertiser + // should outrank a specific competitor. + // This enum value is deprecated. + TARGET_OUTRANK_SHARE = 7; + + // Target ROAS is an automated bidding strategy + // that helps you maximize revenue while averaging + // a specific target Return On Average Spend (ROAS). + TARGET_ROAS = 8; + + // Target Spend is an automated bid strategy that sets your bids + // to help get as many clicks as possible within your budget. + TARGET_SPEND = 9; + } + + +} diff --git a/google/ads/googleads/v10/enums/billing_setup_status.proto b/google/ads/googleads/v10/enums/billing_setup_status.proto new file mode 100644 index 000000000..de3711cb1 --- /dev/null +++ b/google/ads/googleads/v10/enums/billing_setup_status.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BillingSetupStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing BillingSetup statuses. + +// Message describing BillingSetup statuses. +message BillingSetupStatusEnum { + // The possible statuses of a BillingSetup. + enum BillingSetupStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The billing setup is pending approval. + PENDING = 2; + + // The billing setup has been approved but the corresponding first budget + // has not. This can only occur for billing setups configured for monthly + // invoicing. + APPROVED_HELD = 3; + + // The billing setup has been approved. + APPROVED = 4; + + // The billing setup was cancelled by the user prior to approval. + CANCELLED = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/brand_safety_suitability.proto b/google/ads/googleads/v10/enums/brand_safety_suitability.proto new file mode 100644 index 000000000..bede19c1f --- /dev/null +++ b/google/ads/googleads/v10/enums/brand_safety_suitability.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BrandSafetySuitabilityProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing brand safety suitability settings. + +// Container for enum with 3-Tier brand safety suitability control. +message BrandSafetySuitabilityEnum { + // 3-Tier brand safety suitability control. + enum BrandSafetySuitability { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // This option lets you show ads across all inventory on YouTube and video + // partners that meet our standards for monetization. This option may be an + // appropriate choice for brands that want maximum access to the full + // breadth of videos eligible for ads, including, for example, videos that + // have strong profanity in the context of comedy or a documentary, or + // excessive violence as featured in video games. + EXPANDED_INVENTORY = 2; + + // This option lets you show ads across a wide range of content that's + // appropriate for most brands, such as popular music videos, documentaries, + // and movie trailers. The content you can show ads on is based on YouTube's + // advertiser-friendly content guidelines that take into account, for + // example, the strength or frequency of profanity, or the appropriateness + // of subject matter like sensitive events. Ads won't show, for example, on + // content with repeated strong profanity, strong sexual content, or graphic + // violence. + STANDARD_INVENTORY = 3; + + // This option lets you show ads on a reduced range of content that's + // appropriate for brands with particularly strict guidelines around + // inappropriate language and sexual suggestiveness; above and beyond what + // YouTube's advertiser-friendly content guidelines address. The videos + // accessible in this sensitive category meet heightened requirements, + // especially for inappropriate language and sexual suggestiveness. For + // example, your ads will be excluded from showing on some of YouTube's most + // popular music videos and other pop culture content across YouTube and + // Google video partners. + LIMITED_INVENTORY = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/budget_campaign_association_status.proto b/google/ads/googleads/v10/enums/budget_campaign_association_status.proto new file mode 100644 index 000000000..231dc97bb --- /dev/null +++ b/google/ads/googleads/v10/enums/budget_campaign_association_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetCampaignAssociationStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Budget and Campaign association status. + +// Message describing the status of the association between the Budget and the +// Campaign. +message BudgetCampaignAssociationStatusEnum { + // Possible statuses of the association between the Budget and the Campaign. + enum BudgetCampaignAssociationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The campaign is currently using the budget. + ENABLED = 2; + + // The campaign is no longer using the budget. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/budget_delivery_method.proto b/google/ads/googleads/v10/enums/budget_delivery_method.proto new file mode 100644 index 000000000..0f8b1fa58 --- /dev/null +++ b/google/ads/googleads/v10/enums/budget_delivery_method.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetDeliveryMethodProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Budget delivery methods. + +// Message describing Budget delivery methods. A delivery method determines the +// rate at which the Budget is spent. +message BudgetDeliveryMethodEnum { + // Possible delivery methods of a Budget. + enum BudgetDeliveryMethod { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The budget server will throttle serving evenly across + // the entire time period. + STANDARD = 2; + + // The budget server will not throttle serving, + // and ads will serve as fast as possible. + ACCELERATED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/budget_period.proto b/google/ads/googleads/v10/enums/budget_period.proto new file mode 100644 index 000000000..90d33ccfb --- /dev/null +++ b/google/ads/googleads/v10/enums/budget_period.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetPeriodProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Budget delivery methods. + +// Message describing Budget period. +message BudgetPeriodEnum { + // Possible period of a Budget. + enum BudgetPeriod { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Daily budget. + DAILY = 2; + + // Custom budget, added back in V5. + // Custom bugdet 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/google/ads/googleads/v10/enums/budget_status.proto b/google/ads/googleads/v10/enums/budget_status.proto new file mode 100644 index 000000000..c886abf1f --- /dev/null +++ b/google/ads/googleads/v10/enums/budget_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Budget statuses + +// Message describing a Budget status +message BudgetStatusEnum { + // Possible statuses of a Budget. + enum BudgetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Budget is enabled. + ENABLED = 2; + + // Budget is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/budget_type.proto b/google/ads/googleads/v10/enums/budget_type.proto new file mode 100644 index 000000000..887f9c4a3 --- /dev/null +++ b/google/ads/googleads/v10/enums/budget_type.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Budget types. + +// Describes Budget types. +message BudgetTypeEnum { + // Possible Budget types. + enum BudgetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Budget type for standard Google Ads usage. + // Caps daily spend at two times the specified budget amount. + // Full details: https://support.google.com/google-ads/answer/6385083 + STANDARD = 2; + + // Budget type with a fixed cost-per-acquisition (conversion). + // Full details: https://support.google.com/google-ads/answer/7528254 + // + // This type is only supported by campaigns with + // AdvertisingChannelType.DISPLAY (excluding + // AdvertisingChannelSubType.DISPLAY_GMAIL), + // BiddingStrategyType.TARGET_CPA and PaymentMode.CONVERSIONS. + FIXED_CPA = 4; + + // Budget type for Smart Campaign. + // Full details: https://support.google.com/google-ads/answer/7653509 + // + // This type is only supported by campaigns with + // AdvertisingChannelType.SMART and + // AdvertisingChannelSubType.SMART_CAMPAIGN. + SMART_CAMPAIGN = 5; + + // Budget type for Local Services Campaign. + // Full details: https://support.google.com/localservices/answer/7434558 + // + // This type is only supported by campaigns with + // AdvertisingChannelType.LOCAL_SERVICES. + LOCAL_SERVICES = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/call_conversion_reporting_state.proto b/google/ads/googleads/v10/enums/call_conversion_reporting_state.proto new file mode 100644 index 000000000..e8ed00ad6 --- /dev/null +++ b/google/ads/googleads/v10/enums/call_conversion_reporting_state.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallConversionReportingStateProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing call conversion reporting state. + +// Container for enum describing possible data types for call conversion +// reporting state. +message CallConversionReportingStateEnum { + // Possible data types for a call conversion action state. + enum CallConversionReportingState { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Call conversion action is disabled. + DISABLED = 2; + + // Call conversion action will use call conversion type set at the + // account level. + USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION = 3; + + // Call conversion action will use call conversion type set at the resource + // (call only ads/call extensions) level. + USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/call_placeholder_field.proto b/google/ads/googleads/v10/enums/call_placeholder_field.proto new file mode 100644 index 000000000..0596fbb6a --- /dev/null +++ b/google/ads/googleads/v10/enums/call_placeholder_field.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Call placeholder fields. + +// Values for Call placeholder fields. +message CallPlaceholderFieldEnum { + // Possible values for Call placeholder fields. + enum CallPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The advertiser's phone number to append to the ad. + PHONE_NUMBER = 2; + + // Data Type: STRING. Uppercase two-letter country code of the advertiser's + // phone number. + COUNTRY_CODE = 3; + + // Data Type: BOOLEAN. Indicates whether call tracking is enabled. Default: + // true. + TRACKED = 4; + + // Data Type: INT64. The ID of an AdCallMetricsConversion object. This + // object contains the phoneCallDurationfield which is the minimum duration + // (in seconds) of a call to be considered a conversion. + CONVERSION_TYPE_ID = 5; + + // Data Type: STRING. Indicates whether this call extension uses its own + // call conversion setting or follows the account level setting. + // Valid values are: USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION and + // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION. + CONVERSION_REPORTING_STATE = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/call_to_action_type.proto b/google/ads/googleads/v10/enums/call_to_action_type.proto new file mode 100644 index 000000000..866538828 --- /dev/null +++ b/google/ads/googleads/v10/enums/call_to_action_type.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallToActionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing call to action type. + +// Container for enum describing the call to action types. +message CallToActionTypeEnum { + // Enum describing possible types of call to action. + enum CallToActionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The call to action type is learn more. + LEARN_MORE = 2; + + // The call to action type is get quote. + GET_QUOTE = 3; + + // The call to action type is apply now. + APPLY_NOW = 4; + + // The call to action type is sign up. + SIGN_UP = 5; + + // The call to action type is contact us. + CONTACT_US = 6; + + // The call to action type is subscribe. + SUBSCRIBE = 7; + + // The call to action type is download. + DOWNLOAD = 8; + + // The call to action type is book now. + BOOK_NOW = 9; + + // The call to action type is shop now. + SHOP_NOW = 10; + } + + +} diff --git a/google/ads/googleads/v10/enums/call_tracking_display_location.proto b/google/ads/googleads/v10/enums/call_tracking_display_location.proto new file mode 100644 index 000000000..a2c7eaef1 --- /dev/null +++ b/google/ads/googleads/v10/enums/call_tracking_display_location.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallTrackingDisplayLocationProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing call tracking display location. + +// Container for enum describing possible call tracking display locations. +message CallTrackingDisplayLocationEnum { + // Possible call tracking display locations. + enum CallTrackingDisplayLocation { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The phone call placed from the ad. + AD = 2; + + // The phone call placed from the landing page ad points to. + LANDING_PAGE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/call_type.proto b/google/ads/googleads/v10/enums/call_type.proto new file mode 100644 index 000000000..1ab32373c --- /dev/null +++ b/google/ads/googleads/v10/enums/call_type.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing call types. + +// Container for enum describing possible types of property from where the call +// was made. +message CallTypeEnum { + // Possible types of property from where the call was made. + enum CallType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The phone call was manually dialed. + MANUALLY_DIALED = 2; + + // The phone call was a mobile click-to-call. + HIGH_END_MOBILE_SEARCH = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/callout_placeholder_field.proto b/google/ads/googleads/v10/enums/callout_placeholder_field.proto new file mode 100644 index 000000000..1df40061e --- /dev/null +++ b/google/ads/googleads/v10/enums/callout_placeholder_field.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CalloutPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Callout placeholder fields. + +// Values for Callout placeholder fields. +message CalloutPlaceholderFieldEnum { + // Possible values for Callout placeholder fields. + enum CalloutPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Callout text. + CALLOUT_TEXT = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_criterion_status.proto b/google/ads/googleads/v10/enums/campaign_criterion_status.proto new file mode 100644 index 000000000..03b96d1e3 --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_criterion_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing CampaignCriterion statuses. + +// Message describing CampaignCriterion statuses. +message CampaignCriterionStatusEnum { + // The possible statuses of a CampaignCriterion. + enum CampaignCriterionStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The campaign criterion is enabled. + ENABLED = 2; + + // The campaign criterion is paused. + PAUSED = 3; + + // The campaign criterion is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_draft_status.proto b/google/ads/googleads/v10/enums/campaign_draft_status.proto new file mode 100644 index 000000000..abf6c336d --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_draft_status.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignDraftStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing campaign draft status. + +// Container for enum describing possible statuses of a campaign draft. +message CampaignDraftStatusEnum { + // Possible statuses of a campaign draft. + enum CampaignDraftStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Initial state of the draft, the advertiser can start adding changes with + // no effect on serving. + PROPOSED = 2; + + // The campaign draft is removed. + REMOVED = 3; + + // Advertiser requested to promote draft's changes back into the original + // campaign. Advertiser can poll the long running operation returned by + // the promote action to see the status of the promotion. + PROMOTING = 5; + + // The process to merge changes in the draft back to the original campaign + // has completed successfully. + PROMOTED = 4; + + // The promotion failed after it was partially applied. Promote cannot be + // attempted again safely, so the issue must be corrected in the original + // campaign. + PROMOTE_FAILED = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_experiment_status.proto b/google/ads/googleads/v10/enums/campaign_experiment_status.proto new file mode 100644 index 000000000..ea8d0843f --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_experiment_status.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing campaign experiment status. + +// Container for enum describing possible statuses of a campaign experiment. +message CampaignExperimentStatusEnum { + // Possible statuses of a campaign experiment. + enum CampaignExperimentStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The experiment campaign is being initialized. + INITIALIZING = 2; + + // Initialization of the experiment campaign failed. + INITIALIZATION_FAILED = 8; + + // The experiment campaign is fully initialized. The experiment is currently + // running, scheduled to run in the future or has ended based on its + // end date. An experiment with the status INITIALIZING will be updated to + // ENABLED when it is fully created. + ENABLED = 3; + + // The experiment campaign was graduated to a stand-alone + // campaign, existing independently of the experiment. + GRADUATED = 4; + + // The experiment is removed. + REMOVED = 5; + + // The experiment's changes are being applied to the original campaign. + // The long running operation returned by the promote method can be polled + // to see the status of the promotion. + PROMOTING = 6; + + // Promote of the experiment campaign failed. + PROMOTION_FAILED = 9; + + // The changes of the experiment are promoted to their original campaign. + PROMOTED = 7; + + // The experiment was ended manually. It did not end based on its end date. + ENDED_MANUALLY = 10; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_experiment_traffic_split_type.proto b/google/ads/googleads/v10/enums/campaign_experiment_traffic_split_type.proto new file mode 100644 index 000000000..8533057f5 --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_experiment_traffic_split_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentTrafficSplitTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing campaign experiment traffic split type. + +// Container for enum describing campaign experiment traffic split type. +message CampaignExperimentTrafficSplitTypeEnum { + // Enum of strategies for splitting traffic between base and experiment + // campaigns in campaign experiment. + enum CampaignExperimentTrafficSplitType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Traffic is randomly assigned to the base or experiment arm for each + // query, independent of previous assignments for the same user. + RANDOM_QUERY = 2; + + // Traffic is split using cookies to keep users in the same arm (base or + // experiment) of the experiment. + COOKIE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_experiment_type.proto b/google/ads/googleads/v10/enums/campaign_experiment_type.proto new file mode 100644 index 000000000..c3ea8b1d5 --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_experiment_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing campaign experiment type. + +// Container for enum describing campaign experiment type. +message CampaignExperimentTypeEnum { + // Indicates if this campaign is a normal campaign, + // a draft campaign, or an experiment campaign. + enum CampaignExperimentType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // This is a regular campaign. + BASE = 2; + + // This is a draft version of a campaign. + // It has some modifications from a base campaign, + // but it does not serve or accrue metrics. + DRAFT = 3; + + // This is an experiment version of a campaign. + // It has some modifications from a base campaign, + // and a percentage of traffic is being diverted + // from the BASE campaign to this experiment campaign. + EXPERIMENT = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_group_status.proto b/google/ads/googleads/v10/enums/campaign_group_status.proto new file mode 100644 index 000000000..79bc5265e --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_group_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignGroupStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing CampaignGroup statuses. + +// Message describing CampaignGroup statuses. +message CampaignGroupStatusEnum { + // Possible statuses of a CampaignGroup. + enum CampaignGroupStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The campaign group is active. + ENABLED = 2; + + // The campaign group has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_serving_status.proto b/google/ads/googleads/v10/enums/campaign_serving_status.proto new file mode 100644 index 000000000..a1b83b79f --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_serving_status.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignServingStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Campaign serving statuses. + +// Message describing Campaign serving statuses. +message CampaignServingStatusEnum { + // Possible serving statuses of a campaign. + enum CampaignServingStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Serving. + SERVING = 2; + + // None. + NONE = 3; + + // Ended. + ENDED = 4; + + // Pending. + PENDING = 5; + + // Suspended. + SUSPENDED = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_shared_set_status.proto b/google/ads/googleads/v10/enums/campaign_shared_set_status.proto new file mode 100644 index 000000000..3fef19142 --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_shared_set_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSharedSetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing campaign shared set statuses. + +// Container for enum describing types of campaign shared set statuses. +message CampaignSharedSetStatusEnum { + // Enum listing the possible campaign shared set statuses. + enum CampaignSharedSetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The campaign shared set is enabled. + ENABLED = 2; + + // The campaign shared set is removed and can no longer be used. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/campaign_status.proto b/google/ads/googleads/v10/enums/campaign_status.proto new file mode 100644 index 000000000..ab4285d1c --- /dev/null +++ b/google/ads/googleads/v10/enums/campaign_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing campaign status. + +// Container for enum describing possible statuses of a campaign. +message CampaignStatusEnum { + // Possible statuses of a campaign. + enum CampaignStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Campaign is currently serving ads depending on budget information. + ENABLED = 2; + + // Campaign has been paused by the user. + PAUSED = 3; + + // Campaign has been removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/change_client_type.proto b/google/ads/googleads/v10/enums/change_client_type.proto new file mode 100644 index 000000000..62dba5013 --- /dev/null +++ b/google/ads/googleads/v10/enums/change_client_type.proto @@ -0,0 +1,85 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ChangeClientTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the sources that the change event resource was +// made through. + +// Container for enum describing the sources that the change event resource +// was made through. +message ChangeClientTypeEnum { + // The source that the change_event resource was made through. + enum ChangeClientType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified client type + // unknown in this version. + UNKNOWN = 1; + + // Changes made through the "ads.google.com". + // For example, changes made through campaign management. + GOOGLE_ADS_WEB_CLIENT = 2; + + // Changes made through Google Ads automated rules. + GOOGLE_ADS_AUTOMATED_RULE = 3; + + // Changes made through Google Ads scripts. + GOOGLE_ADS_SCRIPTS = 4; + + // Changes made by Google Ads bulk upload. + GOOGLE_ADS_BULK_UPLOAD = 5; + + // Changes made by Google Ads API. + GOOGLE_ADS_API = 6; + + // Changes made by Google Ads Editor. + GOOGLE_ADS_EDITOR = 7; + + // Changes made by Google Ads mobile app. + GOOGLE_ADS_MOBILE_APP = 8; + + // Changes made through Google Ads recommendations. + GOOGLE_ADS_RECOMMENDATIONS = 9; + + // Changes made through Search Ads 360 Sync. + SEARCH_ADS_360_SYNC = 10; + + // Changes made through Search Ads 360 Post. + SEARCH_ADS_360_POST = 11; + + // Changes made through internal tools. + // For example, when a user sets a URL template on an entity like a + // Campaign, it's automatically wrapped with the SA360 Clickserver URL. + INTERNAL_TOOL = 12; + + // Types of changes that are not categorized, for example, + // changes made by coupon redemption through Google Ads. + OTHER = 13; + } + + +} diff --git a/google/ads/googleads/v10/enums/change_event_resource_type.proto b/google/ads/googleads/v10/enums/change_event_resource_type.proto new file mode 100644 index 000000000..edd6e0cd9 --- /dev/null +++ b/google/ads/googleads/v10/enums/change_event_resource_type.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ChangeEventResourceTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the resource types the ChangeEvent resource supports. + +// Container for enum describing supported resource types for the ChangeEvent +// resource. +message ChangeEventResourceTypeEnum { + // Enum listing the resource types support by the ChangeEvent resource. + enum ChangeEventResourceType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified resource unknown + // in this version. + UNKNOWN = 1; + + // An Ad resource change. + AD = 2; + + // An AdGroup resource change. + AD_GROUP = 3; + + // An AdGroupCriterion resource change. + AD_GROUP_CRITERION = 4; + + // A Campaign resource change. + CAMPAIGN = 5; + + // A CampaignBudget resource change. + CAMPAIGN_BUDGET = 6; + + // An AdGroupBidModifier resource change. + AD_GROUP_BID_MODIFIER = 7; + + // A CampaignCriterion resource change. + CAMPAIGN_CRITERION = 8; + + // A Feed resource change. + FEED = 9; + + // A FeedItem resource change. + FEED_ITEM = 10; + + // A CampaignFeed resource change. + CAMPAIGN_FEED = 11; + + // An AdGroupFeed resource change. + AD_GROUP_FEED = 12; + + // An AdGroupAd resource change. + AD_GROUP_AD = 13; + + // An Asset resource change. + ASSET = 14; + + // A CustomerAsset resource change. + CUSTOMER_ASSET = 15; + + // A CampaignAsset resource change. + CAMPAIGN_ASSET = 16; + + // An AdGroupAsset resource change. + AD_GROUP_ASSET = 17; + + // An AssetSet resource change. + ASSET_SET = 18; + + // An AssetSetAsset resource change. + ASSET_SET_ASSET = 19; + + // A CampaignAssetSet resource change. + CAMPAIGN_ASSET_SET = 20; + } + + +} diff --git a/google/ads/googleads/v10/enums/change_status_operation.proto b/google/ads/googleads/v10/enums/change_status_operation.proto new file mode 100644 index 000000000..18d3ba878 --- /dev/null +++ b/google/ads/googleads/v10/enums/change_status_operation.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ChangeStatusOperationProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the change status operations. + +// Container for enum describing operations for the ChangeStatus resource. +message ChangeStatusOperationEnum { + // Status of the changed resource + enum ChangeStatusOperation { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified resource unknown + // in this version. + UNKNOWN = 1; + + // The resource was created. + ADDED = 2; + + // The resource was modified. + CHANGED = 3; + + // The resource was removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/change_status_resource_type.proto b/google/ads/googleads/v10/enums/change_status_resource_type.proto new file mode 100644 index 000000000..863b5bff7 --- /dev/null +++ b/google/ads/googleads/v10/enums/change_status_resource_type.proto @@ -0,0 +1,92 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ChangeStatusResourceTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the resource types the ChangeStatus resource supports. + +// Container for enum describing supported resource types for the ChangeStatus +// resource. +message ChangeStatusResourceTypeEnum { + // Enum listing the resource types support by the ChangeStatus resource. + enum ChangeStatusResourceType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified resource unknown + // in this version. + UNKNOWN = 1; + + // An AdGroup resource change. + AD_GROUP = 3; + + // An AdGroupAd resource change. + AD_GROUP_AD = 4; + + // An AdGroupCriterion resource change. + AD_GROUP_CRITERION = 5; + + // A Campaign resource change. + CAMPAIGN = 6; + + // A CampaignCriterion resource change. + CAMPAIGN_CRITERION = 7; + + // A Feed resource change. + FEED = 9; + + // A FeedItem resource change. + FEED_ITEM = 10; + + // An AdGroupFeed resource change. + AD_GROUP_FEED = 11; + + // A CampaignFeed resource change. + CAMPAIGN_FEED = 12; + + // An AdGroupBidModifier resource change. + AD_GROUP_BID_MODIFIER = 13; + + // A SharedSet resource change. + SHARED_SET = 14; + + // A CampaignSharedSet resource change. + CAMPAIGN_SHARED_SET = 15; + + // An Asset resource change. + ASSET = 16; + + // A CustomerAsset resource change. + CUSTOMER_ASSET = 17; + + // A CampaignAsset resource change. + CAMPAIGN_ASSET = 18; + + // An AdGroupAsset resource change. + AD_GROUP_ASSET = 19; + } + + +} diff --git a/google/ads/googleads/v10/enums/click_type.proto b/google/ads/googleads/v10/enums/click_type.proto new file mode 100644 index 000000000..049574a31 --- /dev/null +++ b/google/ads/googleads/v10/enums/click_type.proto @@ -0,0 +1,204 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ClickTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing click types. + +// Container for enumeration of Google Ads click types. +message ClickTypeEnum { + // Enumerates Google Ads click types. + enum ClickType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // App engagement ad deep link. + APP_DEEPLINK = 2; + + // Breadcrumbs. + BREADCRUMBS = 3; + + // Broadband Plan. + BROADBAND_PLAN = 4; + + // Manually dialed phone calls. + CALL_TRACKING = 5; + + // Phone calls. + CALLS = 6; + + // Click on engagement ad. + CLICK_ON_ENGAGEMENT_AD = 7; + + // Driving direction. + GET_DIRECTIONS = 8; + + // Get location details. + LOCATION_EXPANSION = 9; + + // Call. + LOCATION_FORMAT_CALL = 10; + + // Directions. + LOCATION_FORMAT_DIRECTIONS = 11; + + // Image(s). + LOCATION_FORMAT_IMAGE = 12; + + // Go to landing page. + LOCATION_FORMAT_LANDING_PAGE = 13; + + // Map. + LOCATION_FORMAT_MAP = 14; + + // Go to store info. + LOCATION_FORMAT_STORE_INFO = 15; + + // Text. + LOCATION_FORMAT_TEXT = 16; + + // Mobile phone calls. + MOBILE_CALL_TRACKING = 17; + + // Print offer. + OFFER_PRINTS = 18; + + // Other. + OTHER = 19; + + // Product plusbox offer. + PRODUCT_EXTENSION_CLICKS = 20; + + // Shopping - Product - Online. + PRODUCT_LISTING_AD_CLICKS = 21; + + // Sitelink. + SITELINKS = 22; + + // Show nearby locations. + STORE_LOCATOR = 23; + + // Headline. + URL_CLICKS = 25; + + // App store. + VIDEO_APP_STORE_CLICKS = 26; + + // Call-to-Action overlay. + VIDEO_CALL_TO_ACTION_CLICKS = 27; + + // Cards. + VIDEO_CARD_ACTION_HEADLINE_CLICKS = 28; + + // End cap. + VIDEO_END_CAP_CLICKS = 29; + + // Website. + VIDEO_WEBSITE_CLICKS = 30; + + // Visual Sitelinks. + VISUAL_SITELINKS = 31; + + // Wireless Plan. + WIRELESS_PLAN = 32; + + // Shopping - Product - Local. + PRODUCT_LISTING_AD_LOCAL = 33; + + // Shopping - Product - MultiChannel Local. + PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL = 34; + + // Shopping - Product - MultiChannel Online. + PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE = 35; + + // Shopping - Product - Coupon. + PRODUCT_LISTING_ADS_COUPON = 36; + + // Shopping - Product - Sell on Google. + PRODUCT_LISTING_AD_TRANSACTABLE = 37; + + // Shopping - Product - App engagement ad deep link. + PRODUCT_AD_APP_DEEPLINK = 38; + + // Shopping - Showcase - Category. + SHOWCASE_AD_CATEGORY_LINK = 39; + + // Shopping - Showcase - Local storefront. + SHOWCASE_AD_LOCAL_STOREFRONT_LINK = 40; + + // Shopping - Showcase - Online product. + SHOWCASE_AD_ONLINE_PRODUCT_LINK = 42; + + // Shopping - Showcase - Local product. + SHOWCASE_AD_LOCAL_PRODUCT_LINK = 43; + + // Promotion Extension. + PROMOTION_EXTENSION = 44; + + // Ad Headline. + SWIPEABLE_GALLERY_AD_HEADLINE = 45; + + // Swipes. + SWIPEABLE_GALLERY_AD_SWIPES = 46; + + // See More. + SWIPEABLE_GALLERY_AD_SEE_MORE = 47; + + // Sitelink 1. + SWIPEABLE_GALLERY_AD_SITELINK_ONE = 48; + + // Sitelink 2. + SWIPEABLE_GALLERY_AD_SITELINK_TWO = 49; + + // Sitelink 3. + SWIPEABLE_GALLERY_AD_SITELINK_THREE = 50; + + // Sitelink 4. + SWIPEABLE_GALLERY_AD_SITELINK_FOUR = 51; + + // Sitelink 5. + SWIPEABLE_GALLERY_AD_SITELINK_FIVE = 52; + + // Hotel price. + HOTEL_PRICE = 53; + + // Price Extension. + PRICE_EXTENSION = 54; + + // Book on Google hotel room selection. + HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION = 55; + + // Shopping - Comparison Listing. + SHOPPING_COMPARISON_LISTING = 56; + + // Cross-network. From Performance Max and Discovery Campaigns. + CROSS_NETWORK = 57; + } + + +} diff --git a/google/ads/googleads/v10/enums/combined_audience_status.proto b/google/ads/googleads/v10/enums/combined_audience_status.proto new file mode 100644 index 000000000..3a4abf8c3 --- /dev/null +++ b/google/ads/googleads/v10/enums/combined_audience_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CombinedAudienceStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing combined audience status. + +// The status of combined audience. +message CombinedAudienceStatusEnum { + // Enum containing possible combined audience status types. + enum CombinedAudienceStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Enabled status - combined audience is enabled and can be targeted. + ENABLED = 2; + + // Removed status - combined audience is removed and cannot be used for + // targeting. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/content_label_type.proto b/google/ads/googleads/v10/enums/content_label_type.proto new file mode 100644 index 000000000..1e211e6f7 --- /dev/null +++ b/google/ads/googleads/v10/enums/content_label_type.proto @@ -0,0 +1,87 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ContentLabelTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::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/google/ads/googleads/v10/enums/conversion_action_category.proto b/google/ads/googleads/v10/enums/conversion_action_category.proto new file mode 100644 index 000000000..5c7b39788 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_action_category.proto @@ -0,0 +1,114 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionCategoryProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing the category of conversions that are associated +// with a ConversionAction. +message ConversionActionCategoryEnum { + // The category of conversions that are associated with a ConversionAction. + enum ConversionActionCategory { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Default category. + DEFAULT = 2; + + // User visiting a page. + PAGE_VIEW = 3; + + // Purchase, sales, or "order placed" event. + PURCHASE = 4; + + // Signup user action. + SIGNUP = 5; + + // Software download action (as for an app). + DOWNLOAD = 7; + + // The addition of items to a shopping cart or bag on an advertiser site. + ADD_TO_CART = 8; + + // When someone enters the checkout flow on an advertiser site. + BEGIN_CHECKOUT = 9; + + // The start of a paid subscription for a product or service. + SUBSCRIBE_PAID = 10; + + // A call to indicate interest in an advertiser's offering. + PHONE_CALL_LEAD = 11; + + // A lead conversion imported from an external source into Google Ads. + IMPORTED_LEAD = 12; + + // A submission of a form on an advertiser site indicating business + // interest. + SUBMIT_LEAD_FORM = 13; + + // A booking of an appointment with an advertiser's business. + BOOK_APPOINTMENT = 14; + + // A quote or price estimate request. + REQUEST_QUOTE = 15; + + // A search for an advertiser's business location with intention to visit. + GET_DIRECTIONS = 16; + + // A click to an advertiser's partner's site. + OUTBOUND_CLICK = 17; + + // A call, SMS, email, chat or other type of contact to an advertiser. + CONTACT = 18; + + // A website engagement event such as long site time or a Google Analytics + // (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal + // imports. + ENGAGEMENT = 19; + + // A visit to a physical store location. + STORE_VISIT = 20; + + // A sale occurring in a physical store. + STORE_SALE = 21; + + // A lead conversion imported from an external source into Google Ads, + // that has been further qualified by the advertiser (marketing/sales team). + // In the lead-to-sale journey, advertisers get leads, then act on them + // by reaching out to the consumer. If the consumer is interested and + // may end up buying their product, the advertiser marks such leads as + // "qualified leads". + QUALIFIED_LEAD = 22; + + // A lead conversion imported from an external source into Google Ads, that + // has further completed a desired stage as defined by the lead gen + // advertiser. + CONVERTED_LEAD = 23; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_action_counting_type.proto b/google/ads/googleads/v10/enums/conversion_action_counting_type.proto new file mode 100644 index 000000000..7d658e1d1 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_action_counting_type.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionCountingTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion action counting type. + +// Container for enum describing the conversion deduplication mode for +// conversion optimizer. +message ConversionActionCountingTypeEnum { + // Indicates how conversions for this action will be counted. For more + // information, see https://support.google.com/google-ads/answer/3438531. + enum ConversionActionCountingType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Count only one conversion per click. + ONE_PER_CLICK = 2; + + // Count all conversions per click. + MANY_PER_CLICK = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_action_status.proto b/google/ads/googleads/v10/enums/conversion_action_status.proto new file mode 100644 index 000000000..9ee458b3e --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_action_status.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion action status. + +// Container for enum describing possible statuses of a conversion action. +message ConversionActionStatusEnum { + // Possible statuses of a conversion action. + enum ConversionActionStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversions will be recorded. + ENABLED = 2; + + // Conversions will not be recorded. + REMOVED = 3; + + // Conversions will not be recorded and the conversion action will not + // appear in the UI. + HIDDEN = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_action_type.proto b/google/ads/googleads/v10/enums/conversion_action_type.proto new file mode 100644 index 000000000..3a98401a5 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_action_type.proto @@ -0,0 +1,172 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion action type. + +// Container for enum describing possible types of a conversion action. +message ConversionActionTypeEnum { + // Possible types of a conversion action. + enum ConversionActionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversions that occur when a user clicks on an ad's call extension. + AD_CALL = 2; + + // Conversions that occur when a user on a mobile device clicks a phone + // number. + CLICK_TO_CALL = 3; + + // Conversions that occur when a user downloads a mobile app from the Google + // Play Store. + GOOGLE_PLAY_DOWNLOAD = 4; + + // Conversions that occur when a user makes a purchase in an app through + // Android billing. + GOOGLE_PLAY_IN_APP_PURCHASE = 5; + + // Call conversions that are tracked by the advertiser and uploaded. + UPLOAD_CALLS = 6; + + // Conversions that are tracked by the advertiser and uploaded with + // attributed clicks. + UPLOAD_CLICKS = 7; + + // Conversions that occur on a webpage. + WEBPAGE = 8; + + // Conversions that occur when a user calls a dynamically-generated phone + // number from an advertiser's website. + WEBSITE_CALL = 9; + + // Store Sales conversion based on first-party or third-party merchant + // data uploads. + // Only customers on the allowlist can use store sales direct upload types. + STORE_SALES_DIRECT_UPLOAD = 10; + + // Store Sales conversion based on first-party or third-party merchant + // data uploads and/or from in-store purchases using cards from payment + // networks. + // Only customers on the allowlist can use store sales types. + // Read only. + STORE_SALES = 11; + + // Android app first open conversions tracked via Firebase. + FIREBASE_ANDROID_FIRST_OPEN = 12; + + // Android app in app purchase conversions tracked via Firebase. + FIREBASE_ANDROID_IN_APP_PURCHASE = 13; + + // Android app custom conversions tracked via Firebase. + FIREBASE_ANDROID_CUSTOM = 14; + + // iOS app first open conversions tracked via Firebase. + FIREBASE_IOS_FIRST_OPEN = 15; + + // iOS app in app purchase conversions tracked via Firebase. + FIREBASE_IOS_IN_APP_PURCHASE = 16; + + // iOS app custom conversions tracked via Firebase. + FIREBASE_IOS_CUSTOM = 17; + + // Android app first open conversions tracked via Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN = 18; + + // Android app in app purchase conversions tracked via Third Party App + // Analytics. + THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE = 19; + + // Android app custom conversions tracked via Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM = 20; + + // iOS app first open conversions tracked via Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN = 21; + + // iOS app in app purchase conversions tracked via Third Party App + // Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE = 22; + + // iOS app custom conversions tracked via Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM = 23; + + // Conversions that occur when a user pre-registers a mobile app from the + // Google Play Store. Read only. + ANDROID_APP_PRE_REGISTRATION = 24; + + // Conversions that track all Google Play downloads which aren't tracked + // by an app-specific type. Read only. + ANDROID_INSTALLS_ALL_OTHER_APPS = 25; + + // Floodlight activity that counts the number of times that users have + // visited a particular webpage after seeing or clicking on one of + // an advertiser's ads. Read only. + FLOODLIGHT_ACTION = 26; + + // Floodlight activity that tracks the number of sales made or the number + // of items purchased. Can also capture the total value of each sale. + // Read only. + FLOODLIGHT_TRANSACTION = 27; + + // Conversions that track local actions from Google's products and + // services after interacting with an ad. Read only. + GOOGLE_HOSTED = 28; + + // Conversions reported when a user submits a lead form. Read only. + LEAD_FORM_SUBMIT = 29; + + // Conversions that come from Salesforce. Read only. + SALESFORCE = 30; + + // Conversions imported from Search Ads 360 Floodlight data. Read only. + SEARCH_ADS_360 = 31; + + // Call conversions that occur on Smart campaign Ads without call tracking + // setup, using Smart campaign custom criteria. Read only. + SMART_CAMPAIGN_AD_CLICKS_TO_CALL = 32; + + // The user clicks on a call element within Google Maps. Smart campaign + // only. Read only. + SMART_CAMPAIGN_MAP_CLICKS_TO_CALL = 33; + + // The user requests directions to a business location within Google Maps. + // Smart campaign only. Read only. + SMART_CAMPAIGN_MAP_DIRECTIONS = 34; + + // Call conversions that occur on Smart campaign Ads with call tracking + // setup, using Smart campaign custom criteria. Read only. + SMART_CAMPAIGN_TRACKED_CALLS = 35; + + // Conversions that occur when a user visits an advertiser's retail store. + // Read only. + STORE_VISITS = 36; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_adjustment_type.proto b/google/ads/googleads/v10/enums/conversion_adjustment_type.proto new file mode 100644 index 000000000..7b4f4d270 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_adjustment_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionAdjustmentTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion adjustment type. + +// Container for enum describing conversion adjustment types. +message ConversionAdjustmentTypeEnum { + // The different actions advertisers can take to adjust the conversions that + // they already reported. Retractions negate a conversion. Restatements change + // the value of a conversion. + enum ConversionAdjustmentType { + // Not specified. + UNSPECIFIED = 0; + + // Represents value unknown in this version. + UNKNOWN = 1; + + // Negates a conversion so that its total value and count are both zero. + RETRACTION = 2; + + // Changes the value of a conversion. + RESTATEMENT = 3; + + // Supplements an existing conversion with provided user identifiers and + // user agent, which can be used by Google to enhance the conversion count. + ENHANCEMENT = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_attribution_event_type.proto b/google/ads/googleads/v10/enums/conversion_attribution_event_type.proto new file mode 100644 index 000000000..f55c01e33 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_attribution_event_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionAttributionEventTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum indicating the event type the conversion is attributed to. +message ConversionAttributionEventTypeEnum { + // The event type of conversions that are attributed to. + enum ConversionAttributionEventType { + // Not specified. + UNSPECIFIED = 0; + + // Represents value unknown in this version. + UNKNOWN = 1; + + // The conversion is attributed to an impression. + IMPRESSION = 2; + + // The conversion is attributed to an interaction. + INTERACTION = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_custom_variable_status.proto b/google/ads/googleads/v10/enums/conversion_custom_variable_status.proto new file mode 100644 index 000000000..dd7be184c --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_custom_variable_status.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionCustomVariableStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion custom variable status. + +// Container for enum describing possible statuses of a conversion custom +// variable. +message ConversionCustomVariableStatusEnum { + // Possible statuses of a conversion custom variable. + enum ConversionCustomVariableStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The conversion custom variable is pending activation and will not + // accrue stats until set to ENABLED. + // + // This status can't be used in CREATE and UPDATE requests. + ACTIVATION_NEEDED = 2; + + // The conversion custom variable is enabled and will accrue stats. + ENABLED = 3; + + // The conversion custom variable is paused and will not accrue stats + // until set to ENABLED again. + PAUSED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_environment_enum.proto b/google/ads/googleads/v10/enums/conversion_environment_enum.proto new file mode 100644 index 000000000..44a3c141f --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_environment_enum.proto @@ -0,0 +1,47 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionEnvironmentEnumProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum representing the conversion environment an uploaded +// conversion was recorded on. e.g. App or Web. +message ConversionEnvironmentEnum { + // Conversion environment of the uploaded conversion. + enum ConversionEnvironment { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The conversion was recorded on an app. + APP = 2; + + // The conversion was recorded on a website. + WEB = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_lag_bucket.proto b/google/ads/googleads/v10/enums/conversion_lag_bucket.proto new file mode 100644 index 000000000..b858514fb --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_lag_bucket.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionLagBucketProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum representing the number of days between impression and +// conversion. +message ConversionLagBucketEnum { + // Enum representing the number of days between impression and conversion. + enum ConversionLagBucket { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. + LESS_THAN_ONE_DAY = 2; + + // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. + ONE_TO_TWO_DAYS = 3; + + // Conversion lag bucket from 2 to 3 days. 2 days is included, + // 3 days is not. + TWO_TO_THREE_DAYS = 4; + + // Conversion lag bucket from 3 to 4 days. 3 days is included, + // 4 days is not. + THREE_TO_FOUR_DAYS = 5; + + // Conversion lag bucket from 4 to 5 days. 4 days is included, + // 5 days is not. + FOUR_TO_FIVE_DAYS = 6; + + // Conversion lag bucket from 5 to 6 days. 5 days is included, + // 6 days is not. + FIVE_TO_SIX_DAYS = 7; + + // Conversion lag bucket from 6 to 7 days. 6 days is included, + // 7 days is not. + SIX_TO_SEVEN_DAYS = 8; + + // Conversion lag bucket from 7 to 8 days. 7 days is included, + // 8 days is not. + SEVEN_TO_EIGHT_DAYS = 9; + + // Conversion lag bucket from 8 to 9 days. 8 days is included, + // 9 days is not. + EIGHT_TO_NINE_DAYS = 10; + + // Conversion lag bucket from 9 to 10 days. 9 days is included, + // 10 days is not. + NINE_TO_TEN_DAYS = 11; + + // Conversion lag bucket from 10 to 11 days. 10 days is included, + // 11 days is not. + TEN_TO_ELEVEN_DAYS = 12; + + // Conversion lag bucket from 11 to 12 days. 11 days is included, + // 12 days is not. + ELEVEN_TO_TWELVE_DAYS = 13; + + // Conversion lag bucket from 12 to 13 days. 12 days is included, + // 13 days is not. + TWELVE_TO_THIRTEEN_DAYS = 14; + + // Conversion lag bucket from 13 to 14 days. 13 days is included, + // 14 days is not. + THIRTEEN_TO_FOURTEEN_DAYS = 15; + + // Conversion lag bucket from 14 to 21 days. 14 days is included, + // 21 days is not. + FOURTEEN_TO_TWENTY_ONE_DAYS = 16; + + // Conversion lag bucket from 21 to 30 days. 21 days is included, + // 30 days is not. + TWENTY_ONE_TO_THIRTY_DAYS = 17; + + // Conversion lag bucket from 30 to 45 days. 30 days is included, + // 45 days is not. + THIRTY_TO_FORTY_FIVE_DAYS = 18; + + // Conversion lag bucket from 45 to 60 days. 45 days is included, + // 60 days is not. + FORTY_FIVE_TO_SIXTY_DAYS = 19; + + // Conversion lag bucket from 60 to 90 days. 60 days is included, + // 90 days is not. + SIXTY_TO_NINETY_DAYS = 20; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_or_adjustment_lag_bucket.proto b/google/ads/googleads/v10/enums/conversion_or_adjustment_lag_bucket.proto new file mode 100644 index 000000000..b2f5c412a --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_or_adjustment_lag_bucket.proto @@ -0,0 +1,204 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionOrAdjustmentLagBucketProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum representing the number of days between the impression and +// the conversion or between the impression and adjustments to the conversion. +message ConversionOrAdjustmentLagBucketEnum { + // Enum representing the number of days between the impression and the + // conversion or between the impression and adjustments to the conversion. + enum ConversionOrAdjustmentLagBucket { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. + CONVERSION_LESS_THAN_ONE_DAY = 2; + + // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. + CONVERSION_ONE_TO_TWO_DAYS = 3; + + // Conversion lag bucket from 2 to 3 days. 2 days is included, + // 3 days is not. + CONVERSION_TWO_TO_THREE_DAYS = 4; + + // Conversion lag bucket from 3 to 4 days. 3 days is included, + // 4 days is not. + CONVERSION_THREE_TO_FOUR_DAYS = 5; + + // Conversion lag bucket from 4 to 5 days. 4 days is included, + // 5 days is not. + CONVERSION_FOUR_TO_FIVE_DAYS = 6; + + // Conversion lag bucket from 5 to 6 days. 5 days is included, + // 6 days is not. + CONVERSION_FIVE_TO_SIX_DAYS = 7; + + // Conversion lag bucket from 6 to 7 days. 6 days is included, + // 7 days is not. + CONVERSION_SIX_TO_SEVEN_DAYS = 8; + + // Conversion lag bucket from 7 to 8 days. 7 days is included, + // 8 days is not. + CONVERSION_SEVEN_TO_EIGHT_DAYS = 9; + + // Conversion lag bucket from 8 to 9 days. 8 days is included, + // 9 days is not. + CONVERSION_EIGHT_TO_NINE_DAYS = 10; + + // Conversion lag bucket from 9 to 10 days. 9 days is included, + // 10 days is not. + CONVERSION_NINE_TO_TEN_DAYS = 11; + + // Conversion lag bucket from 10 to 11 days. 10 days is included, + // 11 days is not. + CONVERSION_TEN_TO_ELEVEN_DAYS = 12; + + // Conversion lag bucket from 11 to 12 days. 11 days is included, + // 12 days is not. + CONVERSION_ELEVEN_TO_TWELVE_DAYS = 13; + + // Conversion lag bucket from 12 to 13 days. 12 days is included, + // 13 days is not. + CONVERSION_TWELVE_TO_THIRTEEN_DAYS = 14; + + // Conversion lag bucket from 13 to 14 days. 13 days is included, + // 14 days is not. + CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS = 15; + + // Conversion lag bucket from 14 to 21 days. 14 days is included, + // 21 days is not. + CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS = 16; + + // Conversion lag bucket from 21 to 30 days. 21 days is included, + // 30 days is not. + CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS = 17; + + // Conversion lag bucket from 30 to 45 days. 30 days is included, + // 45 days is not. + CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS = 18; + + // Conversion lag bucket from 45 to 60 days. 45 days is included, + // 60 days is not. + CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS = 19; + + // Conversion lag bucket from 60 to 90 days. 60 days is included, + // 90 days is not. + CONVERSION_SIXTY_TO_NINETY_DAYS = 20; + + // Conversion adjustment lag bucket from 0 to 1 day. 0 day is included, + // 1 day is not. + ADJUSTMENT_LESS_THAN_ONE_DAY = 21; + + // Conversion adjustment lag bucket from 1 to 2 days. 1 day is included, + // 2 days is not. + ADJUSTMENT_ONE_TO_TWO_DAYS = 22; + + // Conversion adjustment lag bucket from 2 to 3 days. 2 days is included, + // 3 days is not. + ADJUSTMENT_TWO_TO_THREE_DAYS = 23; + + // Conversion adjustment lag bucket from 3 to 4 days. 3 days is included, + // 4 days is not. + ADJUSTMENT_THREE_TO_FOUR_DAYS = 24; + + // Conversion adjustment lag bucket from 4 to 5 days. 4 days is included, + // 5 days is not. + ADJUSTMENT_FOUR_TO_FIVE_DAYS = 25; + + // Conversion adjustment lag bucket from 5 to 6 days. 5 days is included, + // 6 days is not. + ADJUSTMENT_FIVE_TO_SIX_DAYS = 26; + + // Conversion adjustment lag bucket from 6 to 7 days. 6 days is included, + // 7 days is not. + ADJUSTMENT_SIX_TO_SEVEN_DAYS = 27; + + // Conversion adjustment lag bucket from 7 to 8 days. 7 days is included, + // 8 days is not. + ADJUSTMENT_SEVEN_TO_EIGHT_DAYS = 28; + + // Conversion adjustment lag bucket from 8 to 9 days. 8 days is included, + // 9 days is not. + ADJUSTMENT_EIGHT_TO_NINE_DAYS = 29; + + // Conversion adjustment lag bucket from 9 to 10 days. 9 days is included, + // 10 days is not. + ADJUSTMENT_NINE_TO_TEN_DAYS = 30; + + // Conversion adjustment lag bucket from 10 to 11 days. 10 days is included, + // 11 days is not. + ADJUSTMENT_TEN_TO_ELEVEN_DAYS = 31; + + // Conversion adjustment lag bucket from 11 to 12 days. 11 days is included, + // 12 days is not. + ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS = 32; + + // Conversion adjustment lag bucket from 12 to 13 days. 12 days is included, + // 13 days is not. + ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS = 33; + + // Conversion adjustment lag bucket from 13 to 14 days. 13 days is included, + // 14 days is not. + ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS = 34; + + // Conversion adjustment lag bucket from 14 to 21 days. 14 days is included, + // 21 days is not. + ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS = 35; + + // Conversion adjustment lag bucket from 21 to 30 days. 21 days is included, + // 30 days is not. + ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS = 36; + + // Conversion adjustment lag bucket from 30 to 45 days. 30 days is included, + // 45 days is not. + ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS = 37; + + // Conversion adjustment lag bucket from 45 to 60 days. 45 days is included, + // 60 days is not. + ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS = 38; + + // Conversion adjustment lag bucket from 60 to 90 days. 60 days is included, + // 90 days is not. + ADJUSTMENT_SIXTY_TO_NINETY_DAYS = 39; + + // Conversion adjustment lag bucket from 90 to 145 days. 90 days is + // included, 145 days is not. + ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS = 40; + + // Conversion lag bucket UNKNOWN. This is for dates before conversion lag + // bucket was available in Google Ads. + CONVERSION_UNKNOWN = 41; + + // Conversion adjustment lag bucket UNKNOWN. This is for dates before + // conversion adjustment lag bucket was available in Google Ads. + ADJUSTMENT_UNKNOWN = 42; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_origin.proto b/google/ads/googleads/v10/enums/conversion_origin.proto new file mode 100644 index 000000000..5b1cdf202 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_origin.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionOriginProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion origin. + +// Container for enum describing possible conversion origins. +message ConversionOriginEnum { + // The possible places where a conversion can occur. + enum ConversionOrigin { + // The conversion origin has not been specified. + UNSPECIFIED = 0; + + // The conversion origin is not known in this version. + UNKNOWN = 1; + + // Conversion that occurs when a user visits a website or takes an action + // there after viewing an ad. + WEBSITE = 2; + + // Conversions reported by an offline pipeline which collects local actions + // from Google-hosted pages (e.g. Google Maps, Google Place Page, etc) and + // attributes them to relevant ad events. + GOOGLE_HOSTED = 3; + + // Conversion that occurs when a user performs an action via any app + // platforms. + APP = 4; + + // Conversion that occurs when a user makes a call from ads. + CALL_FROM_ADS = 5; + + // Conversion that occurs when a user visits or makes a purchase at a + // physical store. + STORE = 6; + + // Conversion that occurs on YouTube. + YOUTUBE_HOSTED = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_tracking_status_enum.proto b/google/ads/googleads/v10/enums/conversion_tracking_status_enum.proto new file mode 100644 index 000000000..fe69f3df2 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_tracking_status_enum.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionTrackingStatusEnumProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum representing the conversion tracking status of the +// customer. +message ConversionTrackingStatusEnum { + // Conversion Tracking status of the customer. + enum ConversionTrackingStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Customer does not use any conversion tracking. + NOT_CONVERSION_TRACKED = 2; + + // The conversion actions are created and managed by this customer. + CONVERSION_TRACKING_MANAGED_BY_SELF = 3; + + // The conversion actions are created and managed by the manager specified + // in the request's `login-customer-id`. + CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER = 4; + + // The conversion actions are created and managed by a manager different + // from the customer or manager specified in the request's + // `login-customer-id`. + CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_value_rule_primary_dimension.proto b/google/ads/googleads/v10/enums/conversion_value_rule_primary_dimension.proto new file mode 100644 index 000000000..3e2b69d16 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_value_rule_primary_dimension.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRulePrimaryDimensionProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion value rule primary dimension. + +// Container for enum describing value rule primary dimension for stats. +message ConversionValueRulePrimaryDimensionEnum { + // Identifies the primary dimension for conversion value rule stats. + enum ConversionValueRulePrimaryDimension { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // For no-value-rule-applied conversions after value rule is enabled. + NO_RULE_APPLIED = 2; + + // Below are for value-rule-applied conversions: + // The original stats. + ORIGINAL = 3; + + // When a new or returning customer condition is satisfied. + NEW_VS_RETURNING_USER = 4; + + // When a query-time Geo location condition is satisfied. + GEO_LOCATION = 5; + + // When a query-time browsing device condition is satisfied. + DEVICE = 6; + + // When a query-time audience condition is satisfied. + AUDIENCE = 7; + + // When multiple rules are applied. + MULTIPLE = 8; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_value_rule_set_status.proto b/google/ads/googleads/v10/enums/conversion_value_rule_set_status.proto new file mode 100644 index 000000000..721d2164b --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_value_rule_set_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleSetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion value rule set status. + +// Container for enum describing possible statuses of a conversion value rule +// set. +message ConversionValueRuleSetStatusEnum { + // Possible statuses of a conversion value rule set. + enum ConversionValueRuleSetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion Value Rule Set is enabled and can be applied. + ENABLED = 2; + + // Conversion Value Rule Set is permanently deleted and can't be applied. + REMOVED = 3; + + // Conversion Value Rule Set is paused and won't be applied. It can be + // enabled again. + PAUSED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/conversion_value_rule_status.proto b/google/ads/googleads/v10/enums/conversion_value_rule_status.proto new file mode 100644 index 000000000..8244fb148 --- /dev/null +++ b/google/ads/googleads/v10/enums/conversion_value_rule_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion value rule status. + +// Container for enum describing possible statuses of a conversion value rule. +message ConversionValueRuleStatusEnum { + // Possible statuses of a conversion value rule. + enum ConversionValueRuleStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion Value Rule is enabled and can be applied. + ENABLED = 2; + + // Conversion Value Rule is permanently deleted and can't be applied. + REMOVED = 3; + + // Conversion Value Rule is paused, but can be re-enabled. + PAUSED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/criterion_category_channel_availability_mode.proto b/google/ads/googleads/v10/enums/criterion_category_channel_availability_mode.proto new file mode 100644 index 000000000..9d24212c4 --- /dev/null +++ b/google/ads/googleads/v10/enums/criterion_category_channel_availability_mode.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CriterionCategoryChannelAvailabilityModeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the criterion category channel availability mode. + +// Describes channel availability mode for a criterion availability - whether +// the availability is meant to include all advertising channels, or a +// particular channel with all its channel subtypes, or a channel with a certain +// subset of channel subtypes. +message CriterionCategoryChannelAvailabilityModeEnum { + // Enum containing the possible CriterionCategoryChannelAvailabilityMode. + enum CriterionCategoryChannelAvailabilityMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The category is available to campaigns of all channel types and subtypes. + ALL_CHANNELS = 2; + + // The category is available to campaigns of a specific channel type, + // including all subtypes under it. + CHANNEL_TYPE_AND_ALL_SUBTYPES = 3; + + // The category is available to campaigns of a specific channel type and + // subtype(s). + CHANNEL_TYPE_AND_SUBSET_SUBTYPES = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/criterion_category_locale_availability_mode.proto b/google/ads/googleads/v10/enums/criterion_category_locale_availability_mode.proto new file mode 100644 index 000000000..ad985417d --- /dev/null +++ b/google/ads/googleads/v10/enums/criterion_category_locale_availability_mode.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CriterionCategoryLocaleAvailabilityModeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the criterion category locale availability mode. + +// Describes locale availability mode for a criterion availability - whether +// it's available globally, or a particular country with all languages, or a +// particular language with all countries, or a country-language pair. +message CriterionCategoryLocaleAvailabilityModeEnum { + // Enum containing the possible CriterionCategoryLocaleAvailabilityMode. + enum CriterionCategoryLocaleAvailabilityMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The category is available to campaigns of all locales. + ALL_LOCALES = 2; + + // The category is available to campaigns within a list of countries, + // regardless of language. + COUNTRY_AND_ALL_LANGUAGES = 3; + + // The category is available to campaigns within a list of languages, + // regardless of country. + LANGUAGE_AND_ALL_COUNTRIES = 4; + + // The category is available to campaigns within a list of country, language + // pairs. + COUNTRY_AND_LANGUAGE = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/criterion_system_serving_status.proto b/google/ads/googleads/v10/enums/criterion_system_serving_status.proto new file mode 100644 index 000000000..f3942bb8b --- /dev/null +++ b/google/ads/googleads/v10/enums/criterion_system_serving_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CriterionSystemServingStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing approval status for the criterion. + +// Container for enum describing possible criterion system serving statuses. +message CriterionSystemServingStatusEnum { + // Enumerates criterion system serving statuses. + enum CriterionSystemServingStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Eligible. + ELIGIBLE = 2; + + // Low search volume. + RARELY_SERVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/criterion_type.proto b/google/ads/googleads/v10/enums/criterion_type.proto new file mode 100644 index 000000000..a7bf3c6d6 --- /dev/null +++ b/google/ads/googleads/v10/enums/criterion_type.proto @@ -0,0 +1,144 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CriterionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing criteria types. + +// The possible types of a criterion. +message CriterionTypeEnum { + // Enum describing possible criterion types. + enum CriterionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Keyword. e.g. 'mars cruise'. + KEYWORD = 2; + + // Placement, aka Website. e.g. 'www.flowers4sale.com' + PLACEMENT = 3; + + // Mobile application categories to target. + MOBILE_APP_CATEGORY = 4; + + // Mobile applications to target. + MOBILE_APPLICATION = 5; + + // Devices to target. + DEVICE = 6; + + // Locations to target. + LOCATION = 7; + + // Listing groups to target. + LISTING_GROUP = 8; + + // Ad Schedule. + AD_SCHEDULE = 9; + + // Age range. + AGE_RANGE = 10; + + // Gender. + GENDER = 11; + + // Income Range. + INCOME_RANGE = 12; + + // Parental status. + PARENTAL_STATUS = 13; + + // YouTube Video. + YOUTUBE_VIDEO = 14; + + // YouTube Channel. + YOUTUBE_CHANNEL = 15; + + // User list. + USER_LIST = 16; + + // Proximity. + PROXIMITY = 17; + + // A topic target on the display network (e.g. "Pets & Animals"). + TOPIC = 18; + + // Listing scope to target. + LISTING_SCOPE = 19; + + // Language. + LANGUAGE = 20; + + // IpBlock. + IP_BLOCK = 21; + + // Content Label for category exclusion. + CONTENT_LABEL = 22; + + // Carrier. + CARRIER = 23; + + // A category the user is interested in. + USER_INTEREST = 24; + + // Webpage criterion for dynamic search ads. + WEBPAGE = 25; + + // Operating system version. + OPERATING_SYSTEM_VERSION = 26; + + // App payment model. + APP_PAYMENT_MODEL = 27; + + // Mobile device. + MOBILE_DEVICE = 28; + + // Custom affinity. + CUSTOM_AFFINITY = 29; + + // Custom intent. + CUSTOM_INTENT = 30; + + // Location group. + LOCATION_GROUP = 31; + + // Custom audience + CUSTOM_AUDIENCE = 32; + + // Combined audience + COMBINED_AUDIENCE = 33; + + // Smart Campaign keyword theme + KEYWORD_THEME = 34; + + // Audience + AUDIENCE = 35; + } + + +} diff --git a/google/ads/googleads/v10/enums/custom_audience_member_type.proto b/google/ads/googleads/v10/enums/custom_audience_member_type.proto new file mode 100644 index 000000000..6a5e33062 --- /dev/null +++ b/google/ads/googleads/v10/enums/custom_audience_member_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceMemberTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing custom audience member type. + +// The type of custom audience member. +message CustomAudienceMemberTypeEnum { + // Enum containing possible custom audience member types. + enum CustomAudienceMemberType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Users whose interests or actions are described by a keyword. + KEYWORD = 2; + + // Users who have interests related to the website's content. + URL = 3; + + // Users who visit place types described by a place category. + PLACE_CATEGORY = 4; + + // Users who have installed a mobile app. + APP = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/custom_audience_status.proto b/google/ads/googleads/v10/enums/custom_audience_status.proto new file mode 100644 index 000000000..c1c0819b7 --- /dev/null +++ b/google/ads/googleads/v10/enums/custom_audience_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing custom audience status. + +// The status of custom audience. +message CustomAudienceStatusEnum { + // Enum containing possible custom audience statuses. + enum CustomAudienceStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Enabled status - custom audience is enabled and can be targeted. + ENABLED = 2; + + // Removed status - custom audience is removed and cannot be used for + // targeting. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/custom_audience_type.proto b/google/ads/googleads/v10/enums/custom_audience_type.proto new file mode 100644 index 000000000..e63dea7e5 --- /dev/null +++ b/google/ads/googleads/v10/enums/custom_audience_type.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing custom audience type. + +// The types of custom audience. +message CustomAudienceTypeEnum { + // Enum containing possible custom audience types. + enum CustomAudienceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Google Ads will auto-select the best interpretation at serving + // time. + AUTO = 2; + + // Matches users by their interests. + INTEREST = 3; + + // Matches users by topics they are researching or products they are + // considering for purchase. + PURCHASE_INTENT = 4; + + // Matches users by what they searched on Google Search. + SEARCH = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/custom_conversion_goal_status.proto b/google/ads/googleads/v10/enums/custom_conversion_goal_status.proto new file mode 100644 index 000000000..b4e78a8b9 --- /dev/null +++ b/google/ads/googleads/v10/enums/custom_conversion_goal_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomConversionGoalStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing custom conversion goal status. + +// Container for enum describing possible statuses of a custom conversion goal. +message CustomConversionGoalStatusEnum { + // The possible statuses of a custom conversion goal. + enum CustomConversionGoalStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The custom conversion goal is enabled. + ENABLED = 2; + + // The custom conversion goal is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/custom_interest_member_type.proto b/google/ads/googleads/v10/enums/custom_interest_member_type.proto new file mode 100644 index 000000000..b03297241 --- /dev/null +++ b/google/ads/googleads/v10/enums/custom_interest_member_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestMemberTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing custom interest member type. + +// The types of custom interest member, either KEYWORD or URL. +message CustomInterestMemberTypeEnum { + // Enum containing possible custom interest member types. + enum CustomInterestMemberType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Custom interest member type KEYWORD. + KEYWORD = 2; + + // Custom interest member type URL. + URL = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/custom_interest_status.proto b/google/ads/googleads/v10/enums/custom_interest_status.proto new file mode 100644 index 000000000..2d3a373ce --- /dev/null +++ b/google/ads/googleads/v10/enums/custom_interest_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing custom interest status. + +// The status of custom interest. +message CustomInterestStatusEnum { + // Enum containing possible custom interest types. + enum CustomInterestStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Enabled status - custom interest is enabled and can be targeted to. + ENABLED = 2; + + // Removed status - custom interest is removed and cannot be used for + // targeting. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/custom_interest_type.proto b/google/ads/googleads/v10/enums/custom_interest_type.proto new file mode 100644 index 000000000..26d39eaee --- /dev/null +++ b/google/ads/googleads/v10/enums/custom_interest_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing custom interest type. + +// The types of custom interest. +message CustomInterestTypeEnum { + // Enum containing possible custom interest types. + enum CustomInterestType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Allows brand advertisers to define custom affinity audience lists. + CUSTOM_AFFINITY = 2; + + // Allows advertisers to define custom intent audience lists. + CUSTOM_INTENT = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/custom_placeholder_field.proto b/google/ads/googleads/v10/enums/custom_placeholder_field.proto new file mode 100644 index 000000000..5173b79f7 --- /dev/null +++ b/google/ads/googleads/v10/enums/custom_placeholder_field.proto @@ -0,0 +1,127 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Custom placeholder fields. + +// Values for Custom placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message CustomPlaceholderFieldEnum { + // Possible values for Custom placeholder fields. + enum CustomPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Combination ID and ID2 must be unique per + // offer. + ID = 2; + + // Data Type: STRING. Combination ID and ID2 must be unique per offer. + ID2 = 3; + + // Data Type: STRING. Required. Main headline with product name to be shown + // in dynamic ad. + ITEM_TITLE = 4; + + // Data Type: STRING. Optional text to be shown in the image ad. + ITEM_SUBTITLE = 5; + + // Data Type: STRING. Optional description of the product to be shown in the + // ad. + ITEM_DESCRIPTION = 6; + + // Data Type: STRING. Full address of your offer or service, including + // postal code. This will be used to identify the closest product to the + // user when there are multiple offers in the feed that are relevant to the + // user. + ITEM_ADDRESS = 7; + + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + PRICE = 8; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 9; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + SALE_PRICE = 10; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 11; + + // Data Type: URL. Image to be displayed in the ad. Highly recommended for + // image ads. + IMAGE_URL = 12; + + // Data Type: STRING. Used as a recommendation engine signal to serve items + // in the same category. + ITEM_CATEGORY = 13; + + // Data Type: URL_LIST. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific product for ads that have multiple + // products. + FINAL_URLS = 14; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 15; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 16; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 17; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 18; + + // Data Type: STRING_LIST. List of recommended IDs to show together with + // this item. + SIMILAR_IDS = 19; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 20; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 21; + } + + +} diff --git a/google/ads/googleads/v10/enums/customer_match_upload_key_type.proto b/google/ads/googleads/v10/enums/customer_match_upload_key_type.proto new file mode 100644 index 000000000..05bb51430 --- /dev/null +++ b/google/ads/googleads/v10/enums/customer_match_upload_key_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomerMatchUploadKeyTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Indicates what type of data are the user list's members matched from. +message CustomerMatchUploadKeyTypeEnum { + // Enum describing possible customer match upload key types. + enum CustomerMatchUploadKeyType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Members are matched from customer info such as email address, phone + // number or physical address. + CONTACT_INFO = 2; + + // Members are matched from a user id generated and assigned by the + // advertiser. + CRM_ID = 3; + + // Members are matched from mobile advertising ids. + MOBILE_ADVERTISING_ID = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/customer_pay_per_conversion_eligibility_failure_reason.proto b/google/ads/googleads/v10/enums/customer_pay_per_conversion_eligibility_failure_reason.proto new file mode 100644 index 000000000..88d01c55d --- /dev/null +++ b/google/ads/googleads/v10/enums/customer_pay_per_conversion_eligibility_failure_reason.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomerPayPerConversionEligibilityFailureReasonProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing pay per conversion eligibility failure reasons. + +// Container for enum describing reasons why a customer is not eligible to use +// PaymentMode.CONVERSIONS. +message CustomerPayPerConversionEligibilityFailureReasonEnum { + // Enum describing possible reasons a customer is not eligible to use + // PaymentMode.CONVERSIONS. + enum CustomerPayPerConversionEligibilityFailureReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Customer does not have enough conversions. + NOT_ENOUGH_CONVERSIONS = 2; + + // Customer's conversion lag is too high. + CONVERSION_LAG_TOO_HIGH = 3; + + // Customer uses shared budgets. + HAS_CAMPAIGN_WITH_SHARED_BUDGET = 4; + + // Customer has conversions with ConversionActionType.UPLOAD_CLICKS. + HAS_UPLOAD_CLICKS_CONVERSION = 5; + + // Customer's average daily spend is too high. + AVERAGE_DAILY_SPEND_TOO_HIGH = 6; + + // Customer's eligibility has not yet been calculated by the Google Ads + // backend. Check back soon. + ANALYSIS_NOT_COMPLETE = 7; + + // Customer is not eligible due to other reasons. + OTHER = 8; + } + + +} diff --git a/google/ads/googleads/v10/enums/customer_status.proto b/google/ads/googleads/v10/enums/customer_status.proto new file mode 100644 index 000000000..3712c8af4 --- /dev/null +++ b/google/ads/googleads/v10/enums/customer_status.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomerStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing possible statuses of a customer. +message CustomerStatusEnum { + // Possible statuses of a customer. + enum CustomerStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Indicates an active account able to serve ads. + ENABLED = 2; + + // Indicates a canceled account unable to serve ads. + // Can be reactivated by an admin user. + CANCELED = 3; + + // Indicates a suspended account unable to serve ads. + // May only be activated by Google support. + SUSPENDED = 4; + + // Indicates a closed account unable to serve ads. + // Test account will also have CLOSED status. + // Status is permanent and may not be reopened. + CLOSED = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/customizer_attribute_status.proto b/google/ads/googleads/v10/enums/customizer_attribute_status.proto new file mode 100644 index 000000000..ac79b1abe --- /dev/null +++ b/google/ads/googleads/v10/enums/customizer_attribute_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing customizer attribute status. + +// Container for enum describing possible statuses of a customizer attribute. +message CustomizerAttributeStatusEnum { + // The possible statuses of a customizer attribute. + enum CustomizerAttributeStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The customizer attribute is enabled. + ENABLED = 2; + + // The customizer attribute is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/customizer_attribute_type.proto b/google/ads/googleads/v10/enums/customizer_attribute_type.proto new file mode 100644 index 000000000..8b315afef --- /dev/null +++ b/google/ads/googleads/v10/enums/customizer_attribute_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing customizer attribute type. + +// Container for enum describing possible types of a customizer attribute. +message CustomizerAttributeTypeEnum { + // The possible types of a customizer attribute. + enum CustomizerAttributeType { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // Text customizer. + TEXT = 2; + + // Number customizer. + NUMBER = 3; + + // Price customizer consisting of a number and a currency. + PRICE = 4; + + // Percentage customizer consisting of a number and a '%'. + PERCENT = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/customizer_value_status.proto b/google/ads/googleads/v10/enums/customizer_value_status.proto new file mode 100644 index 000000000..6a09e5beb --- /dev/null +++ b/google/ads/googleads/v10/enums/customizer_value_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerValueStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing customizer value status. + +// Container for enum describing possible statuses of a customizer value. +message CustomizerValueStatusEnum { + // The possible statuses of a customizer value. + enum CustomizerValueStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The customizer value is enabled. + ENABLED = 2; + + // The customizer value is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/data_driven_model_status.proto b/google/ads/googleads/v10/enums/data_driven_model_status.proto new file mode 100644 index 000000000..15aa7be16 --- /dev/null +++ b/google/ads/googleads/v10/enums/data_driven_model_status.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DataDrivenModelStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing data-driven model status. + +// Container for enum indicating data driven model status. +message DataDrivenModelStatusEnum { + // Enumerates data driven model statuses. + enum DataDrivenModelStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The data driven model is available. + AVAILABLE = 2; + + // The data driven model is stale. It hasn't been updated for at least 7 + // days. It is still being used, but will become expired if it does not get + // updated for 30 days. + STALE = 3; + + // The data driven model expired. It hasn't been updated for at least 30 + // days and cannot be used. Most commonly this is because there hasn't been + // the required number of events in a recent 30-day period. + EXPIRED = 4; + + // The data driven model has never been generated. Most commonly this is + // because there has never been the required number of events in any 30-day + // period. + NEVER_GENERATED = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/day_of_week.proto b/google/ads/googleads/v10/enums/day_of_week.proto new file mode 100644 index 000000000..fa489e2f5 --- /dev/null +++ b/google/ads/googleads/v10/enums/day_of_week.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DayOfWeekProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing days of week. + +// Container for enumeration of days of the week, e.g., "Monday". +message DayOfWeekEnum { + // Enumerates days of the week, e.g., "Monday". + enum DayOfWeek { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Monday. + MONDAY = 2; + + // Tuesday. + TUESDAY = 3; + + // Wednesday. + WEDNESDAY = 4; + + // Thursday. + THURSDAY = 5; + + // Friday. + FRIDAY = 6; + + // Saturday. + SATURDAY = 7; + + // Sunday. + SUNDAY = 8; + } + + +} diff --git a/google/ads/googleads/v10/enums/device.proto b/google/ads/googleads/v10/enums/device.proto new file mode 100644 index 000000000..18a6220d9 --- /dev/null +++ b/google/ads/googleads/v10/enums/device.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DeviceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing devices. + +// Container for enumeration of Google Ads devices available for targeting. +message DeviceEnum { + // Enumerates Google Ads devices available for targeting. + enum Device { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Mobile devices with full browsers. + MOBILE = 2; + + // Tablets with full browsers. + TABLET = 3; + + // Computers. + DESKTOP = 4; + + // Smart TVs and game consoles. + CONNECTED_TV = 6; + + // Other device types. + OTHER = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/display_ad_format_setting.proto b/google/ads/googleads/v10/enums/display_ad_format_setting.proto new file mode 100644 index 000000000..dfa1fd59c --- /dev/null +++ b/google/ads/googleads/v10/enums/display_ad_format_setting.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DisplayAdFormatSettingProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing display ad format settings. + +// Container for display ad format settings. +message DisplayAdFormatSettingEnum { + // Enumerates display ad format settings. + enum DisplayAdFormatSetting { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Text, image and native formats. + ALL_FORMATS = 2; + + // Text and image formats. + NON_NATIVE = 3; + + // Native format, i.e. the format rendering is controlled by the publisher + // and not by Google. + NATIVE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/display_upload_product_type.proto b/google/ads/googleads/v10/enums/display_upload_product_type.proto new file mode 100644 index 000000000..197acf82f --- /dev/null +++ b/google/ads/googleads/v10/enums/display_upload_product_type.proto @@ -0,0 +1,95 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DisplayUploadProductTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing display upload product types. + +// Container for display upload product types. Product types that have the word +// "DYNAMIC" in them must be associated with a campaign that has a dynamic +// remarketing feed. See https://support.google.com/google-ads/answer/6053288 +// for more info about dynamic remarketing. Other product types are regarded +// as "static" and do not have this requirement. +message DisplayUploadProductTypeEnum { + // Enumerates display upload product types. + enum DisplayUploadProductType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // HTML5 upload ad. This product type requires the upload_media_bundle + // field in DisplayUploadAdInfo to be set. + HTML5_UPLOAD_AD = 2; + + // Dynamic HTML5 education ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in an education campaign. + DYNAMIC_HTML5_EDUCATION_AD = 3; + + // Dynamic HTML5 flight ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a flight campaign. + DYNAMIC_HTML5_FLIGHT_AD = 4; + + // Dynamic HTML5 hotel and rental ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a hotel campaign. + DYNAMIC_HTML5_HOTEL_RENTAL_AD = 5; + + // Dynamic HTML5 job ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a job campaign. + DYNAMIC_HTML5_JOB_AD = 6; + + // Dynamic HTML5 local ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a local campaign. + DYNAMIC_HTML5_LOCAL_AD = 7; + + // Dynamic HTML5 real estate ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a real estate campaign. + DYNAMIC_HTML5_REAL_ESTATE_AD = 8; + + // Dynamic HTML5 custom ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a custom campaign. + DYNAMIC_HTML5_CUSTOM_AD = 9; + + // Dynamic HTML5 travel ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a travel campaign. + DYNAMIC_HTML5_TRAVEL_AD = 10; + + // Dynamic HTML5 hotel ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a hotel campaign. + DYNAMIC_HTML5_HOTEL_AD = 11; + } + + +} diff --git a/google/ads/googleads/v10/enums/distance_bucket.proto b/google/ads/googleads/v10/enums/distance_bucket.proto new file mode 100644 index 000000000..3ad59c380 --- /dev/null +++ b/google/ads/googleads/v10/enums/distance_bucket.proto @@ -0,0 +1,125 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DistanceBucketProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing distance buckets. + +// Container for distance buckets of a user's distance from an advertiser's +// location extension. +message DistanceBucketEnum { + // The distance bucket for a user's distance from an advertiser's location + // extension. + enum DistanceBucket { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // User was within 700m of the location. + WITHIN_700M = 2; + + // User was within 1KM of the location. + WITHIN_1KM = 3; + + // User was within 5KM of the location. + WITHIN_5KM = 4; + + // User was within 10KM of the location. + WITHIN_10KM = 5; + + // User was within 15KM of the location. + WITHIN_15KM = 6; + + // User was within 20KM of the location. + WITHIN_20KM = 7; + + // User was within 25KM of the location. + WITHIN_25KM = 8; + + // User was within 30KM of the location. + WITHIN_30KM = 9; + + // User was within 35KM of the location. + WITHIN_35KM = 10; + + // User was within 40KM of the location. + WITHIN_40KM = 11; + + // User was within 45KM of the location. + WITHIN_45KM = 12; + + // User was within 50KM of the location. + WITHIN_50KM = 13; + + // User was within 55KM of the location. + WITHIN_55KM = 14; + + // User was within 60KM of the location. + WITHIN_60KM = 15; + + // User was within 65KM of the location. + WITHIN_65KM = 16; + + // User was beyond 65KM of the location. + BEYOND_65KM = 17; + + // User was within 0.7 miles of the location. + WITHIN_0_7MILES = 18; + + // User was within 1 mile of the location. + WITHIN_1MILE = 19; + + // User was within 5 miles of the location. + WITHIN_5MILES = 20; + + // User was within 10 miles of the location. + WITHIN_10MILES = 21; + + // User was within 15 miles of the location. + WITHIN_15MILES = 22; + + // User was within 20 miles of the location. + WITHIN_20MILES = 23; + + // User was within 25 miles of the location. + WITHIN_25MILES = 24; + + // User was within 30 miles of the location. + WITHIN_30MILES = 25; + + // User was within 35 miles of the location. + WITHIN_35MILES = 26; + + // User was within 40 miles of the location. + WITHIN_40MILES = 27; + + // User was beyond 40 miles of the location. + BEYOND_40MILES = 28; + } + + +} diff --git a/google/ads/googleads/v10/enums/dsa_page_feed_criterion_field.proto b/google/ads/googleads/v10/enums/dsa_page_feed_criterion_field.proto new file mode 100644 index 000000000..0530bba0e --- /dev/null +++ b/google/ads/googleads/v10/enums/dsa_page_feed_criterion_field.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DsaPageFeedCriterionFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Dynamic Search Ad Page Feed criterion fields. + +// Values for Dynamic Search Ad Page Feed criterion fields. +message DsaPageFeedCriterionFieldEnum { + // Possible values for Dynamic Search Ad Page Feed criterion fields. + enum DsaPageFeedCriterionField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: URL or URL_LIST. URL of the web page you want to target. + PAGE_URL = 2; + + // Data Type: STRING_LIST. The labels that will help you target ads within + // your page feed. + LABEL = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/education_placeholder_field.proto b/google/ads/googleads/v10/enums/education_placeholder_field.proto new file mode 100644 index 000000000..4e9672aaf --- /dev/null +++ b/google/ads/googleads/v10/enums/education_placeholder_field.proto @@ -0,0 +1,109 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "EducationPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Education placeholder fields. + +// Values for Education placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message EducationPlaceholderFieldEnum { + // Possible values for Education placeholder fields. + enum EducationPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Combination of PROGRAM ID and LOCATION ID + // must be unique per offer. + PROGRAM_ID = 2; + + // Data Type: STRING. Combination of PROGRAM ID and LOCATION ID must be + // unique per offer. + LOCATION_ID = 3; + + // Data Type: STRING. Required. Main headline with program name to be shown + // in dynamic ad. + PROGRAM_NAME = 4; + + // Data Type: STRING. Area of study that can be shown in dynamic ad. + AREA_OF_STUDY = 5; + + // Data Type: STRING. Description of program that can be shown in dynamic + // ad. + PROGRAM_DESCRIPTION = 6; + + // Data Type: STRING. Name of school that can be shown in dynamic ad. + SCHOOL_NAME = 7; + + // Data Type: STRING. Complete school address, including postal code. + ADDRESS = 8; + + // Data Type: URL. Image to be displayed in ads. + THUMBNAIL_IMAGE_URL = 9; + + // Data Type: URL. Alternative hosted file of image to be used in the ad. + ALTERNATIVE_THUMBNAIL_IMAGE_URL = 10; + + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (e.g. the individual URL of a + // specific program and its location). + FINAL_URLS = 11; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 12; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 13; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 14; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 15; + + // Data Type: STRING_LIST. List of recommended program IDs to show together + // with this item. + SIMILAR_PROGRAM_IDS = 16; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 17; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 18; + } + + +} diff --git a/google/ads/googleads/v10/enums/experiment_metric.proto b/google/ads/googleads/v10/enums/experiment_metric.proto new file mode 100644 index 000000000..0df2664b6 --- /dev/null +++ b/google/ads/googleads/v10/enums/experiment_metric.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentMetricProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing experiment metric. + +// Container for enum describing the type of experiment metric. +message ExperimentMetricEnum { + // The type of experiment metric. + enum ExperimentMetric { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The goal of the experiment is clicks. + CLICKS = 2; + + // The goal of the experiment is impressions. + IMPRESSIONS = 3; + + // The goal of the experiment is cost. + COST = 4; + + // The goal of the experiment is conversion rate. + CONVERSIONS_PER_INTERACTION_RATE = 5; + + // The goal of the experiment is cost per conversion. + COST_PER_CONVERSION = 6; + + // The goal of the experiment is conversion value per cost. + CONVERSIONS_VALUE_PER_COST = 7; + + // The goal of the experiment is avg cpc. + AVERAGE_CPC = 8; + + // The goal of the experiment is ctr. + CTR = 9; + + // The goal of the experiment is incremental conversions. + INCREMENTAL_CONVERSIONS = 10; + + // The goal of the experiment is completed video views. + COMPLETED_VIDEO_VIEWS = 11; + + // The goal of the experiment is custom algorithms. + CUSTOM_ALGORITHMS = 12; + + // The goal of the experiment is conversions. + CONVERSIONS = 13; + + // The goal of the experiment is conversion value. + CONVERSION_VALUE = 14; + } + + +} diff --git a/google/ads/googleads/v10/enums/experiment_metric_direction.proto b/google/ads/googleads/v10/enums/experiment_metric_direction.proto new file mode 100644 index 000000000..64f966f86 --- /dev/null +++ b/google/ads/googleads/v10/enums/experiment_metric_direction.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentMetricDirectionProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing experiment metric direction. + +// Container for enum describing the type of experiment metric direction. +message ExperimentMetricDirectionEnum { + // The type of experiment metric direction. + enum ExperimentMetricDirection { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The goal of the experiment is to not change the metric. + NO_CHANGE = 2; + + // The goal of the experiment is to increate the metric. + INCREASE = 3; + + // The goal of the experiment is to decrease the metric. + DECREASE = 4; + + // The goal of the experiment is to either not change or increase the + // metric. + NO_CHANGE_OR_INCREASE = 5; + + // The goal of the experiment is to either not change or decrease the + // metric. + NO_CHANGE_OR_DECREASE = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/experiment_status.proto b/google/ads/googleads/v10/enums/experiment_status.proto new file mode 100644 index 000000000..cee57c22a --- /dev/null +++ b/google/ads/googleads/v10/enums/experiment_status.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing experiment status. + +// Container for enum describing the experiment status. +message ExperimentStatusEnum { + // The status of the experiment. + enum ExperimentStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The experiment is enabled. + ENABLED = 2; + + // The experiment has been removed. + REMOVED = 3; + + // The experiment has been halted. + // This status can be set from ENABLED status through API. + HALTED = 4; + + // The experiment will be promoted out of experimental status. + PROMOTED = 5; + + // Initial status of the experiment. + SETUP = 6; + + // The experiment's campaigns are pending materialization. + // This status can be set from SETUP status through API. + INITIATED = 7; + + // The experiment has been graduated. + GRADUATED = 8; + } + + +} diff --git a/google/ads/googleads/v10/enums/experiment_type.proto b/google/ads/googleads/v10/enums/experiment_type.proto new file mode 100644 index 000000000..e938ccb02 --- /dev/null +++ b/google/ads/googleads/v10/enums/experiment_type.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing experiment type. + +// Container for enum describing the type of experiment. +message ExperimentTypeEnum { + // The type of the experiment. + enum ExperimentType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // This is a DISPLAY_AND_VIDEO_360 experiment. + DISPLAY_AND_VIDEO_360 = 2; + + // This is an ad variation experiment. + AD_VARIATION = 3; + + // This is a smart display experiment. + SMART_DISPLAY = 4; + + // A custom experiment consisting of Video campaigns. + YOUTUBE_CUSTOM = 5; + + // A custom experiment consisting of display campaigns. + DISPLAY_CUSTOM = 6; + + // A custom experiment consisting of search campaigns. + SEARCH_CUSTOM = 7; + + // An experiment that compares bidding strategies for display campaigns. + DISPLAY_AUTOMATED_BIDDING_STRATEGY = 8; + + // An experiment that compares bidding strategies for search campaigns." + SEARCH_AUTOMATED_BIDDING_STRATEGY = 9; + + // An experiment that compares bidding strategies for shopping campaigns. + SHOPPING_AUTOMATED_BIDDING_STRATEGY = 10; + + // DEPRECATED. A smart matching experiment with search campaigns. + SMART_MATCHING = 11; + + // A custom experiment consisting of hotel campaigns. + HOTEL_CUSTOM = 12; + } + + +} diff --git a/google/ads/googleads/v10/enums/extension_setting_device.proto b/google/ads/googleads/v10/enums/extension_setting_device.proto new file mode 100644 index 000000000..df81d6b06 --- /dev/null +++ b/google/ads/googleads/v10/enums/extension_setting_device.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionSettingDeviceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing extension setting device type. + +// Container for enum describing extension setting device types. +message ExtensionSettingDeviceEnum { + // Possible device types for an extension setting. + enum ExtensionSettingDevice { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Mobile. The extensions in the extension setting will only serve on + // mobile devices. + MOBILE = 2; + + // Desktop. The extensions in the extension setting will only serve on + // desktop devices. + DESKTOP = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/extension_type.proto b/google/ads/googleads/v10/enums/extension_type.proto new file mode 100644 index 000000000..ce98bdcdd --- /dev/null +++ b/google/ads/googleads/v10/enums/extension_type.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing extension type. + +// Container for enum describing possible data types for an extension in an +// extension setting. +message ExtensionTypeEnum { + // Possible data types for an extension in an extension setting. + enum ExtensionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // None. + NONE = 2; + + // App. + APP = 3; + + // Call. + CALL = 4; + + // Callout. + CALLOUT = 5; + + // Message. + MESSAGE = 6; + + // Price. + PRICE = 7; + + // Promotion. + PROMOTION = 8; + + // Sitelink. + SITELINK = 10; + + // Structured snippet. + STRUCTURED_SNIPPET = 11; + + // Location. + LOCATION = 12; + + // Affiliate location. + AFFILIATE_LOCATION = 13; + + // Hotel callout + HOTEL_CALLOUT = 15; + + // Image. + IMAGE = 16; + } + + +} diff --git a/google/ads/googleads/v10/enums/external_conversion_source.proto b/google/ads/googleads/v10/enums/external_conversion_source.proto new file mode 100644 index 000000000..e67dab06d --- /dev/null +++ b/google/ads/googleads/v10/enums/external_conversion_source.proto @@ -0,0 +1,153 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExternalConversionSourceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing the external conversion source that is +// associated with a ConversionAction. +message ExternalConversionSourceEnum { + // The external conversion source that is associated with a ConversionAction. + enum ExternalConversionSource { + // Not specified. + UNSPECIFIED = 0; + + // Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion that occurs when a user navigates to a particular webpage + // after viewing an ad; Displayed in Google Ads UI as 'Website'. + WEBPAGE = 2; + + // Conversion that comes from linked Google Analytics goal or transaction; + // Displayed in Google Ads UI as 'Analytics'. + ANALYTICS = 3; + + // Website conversion that is uploaded through ConversionUploadService; + // Displayed in Google Ads UI as 'Import from clicks'. + UPLOAD = 4; + + // Conversion that occurs when a user clicks on a call extension directly on + // an ad; Displayed in Google Ads UI as 'Calls from ads'. + AD_CALL_METRICS = 5; + + // Conversion that occurs when a user calls a dynamically-generated phone + // number (by installed javascript) from an advertiser's website after + // clicking on an ad; Displayed in Google Ads UI as 'Calls from website'. + WEBSITE_CALL_METRICS = 6; + + // Conversion that occurs when a user visits an advertiser's retail store + // after clicking on a Google ad; + // Displayed in Google Ads UI as 'Store visits'. + STORE_VISITS = 7; + + // Conversion that occurs when a user takes an in-app action such as a + // purchase in an Android app; + // Displayed in Google Ads UI as 'Android in-app action'. + ANDROID_IN_APP = 8; + + // Conversion that occurs when a user takes an in-app action such as a + // purchase in an iOS app; + // Displayed in Google Ads UI as 'iOS in-app action'. + IOS_IN_APP = 9; + + // Conversion that occurs when a user opens an iOS app for the first time; + // Displayed in Google Ads UI as 'iOS app install (first open)'. + IOS_FIRST_OPEN = 10; + + // Legacy app conversions that do not have an AppPlatform provided; + // Displayed in Google Ads UI as 'Mobile app'. + APP_UNSPECIFIED = 11; + + // Conversion that occurs when a user opens an Android app for the first + // time; Displayed in Google Ads UI as 'Android app install (first open)'. + ANDROID_FIRST_OPEN = 12; + + // Call conversion that is uploaded through ConversionUploadService; + // Displayed in Google Ads UI as 'Import from calls'. + UPLOAD_CALLS = 13; + + // Conversion that comes from a linked Firebase event; + // Displayed in Google Ads UI as 'Firebase'. + FIREBASE = 14; + + // Conversion that occurs when a user clicks on a mobile phone number; + // Displayed in Google Ads UI as 'Phone number clicks'. + CLICK_TO_CALL = 15; + + // Conversion that comes from Salesforce; + // Displayed in Google Ads UI as 'Salesforce.com'. + SALESFORCE = 16; + + // Conversion that comes from in-store purchases recorded by CRM; + // Displayed in Google Ads UI as 'Store sales (data partner)'. + STORE_SALES_CRM = 17; + + // Conversion that comes from in-store purchases from payment network; + // Displayed in Google Ads UI as 'Store sales (payment network)'. + STORE_SALES_PAYMENT_NETWORK = 18; + + // Codeless Google Play conversion; + // Displayed in Google Ads UI as 'Google Play'. + GOOGLE_PLAY = 19; + + // Conversion that comes from a linked third-party app analytics event; + // Displayed in Google Ads UI as 'Third-party app analytics'. + THIRD_PARTY_APP_ANALYTICS = 20; + + // Conversion that is controlled by Google Attribution. + GOOGLE_ATTRIBUTION = 21; + + // Store Sales conversion based on first-party or third-party merchant data + // uploads. Displayed in Google Ads UI as 'Store sales (direct upload)'. + STORE_SALES_DIRECT_UPLOAD = 23; + + // Store Sales conversion based on first-party or third-party merchant + // data uploads and/or from in-store purchases using cards from payment + // networks. Displayed in Google Ads UI as 'Store sales'. + STORE_SALES = 24; + + // Conversions imported from Search Ads 360 Floodlight data. + SEARCH_ADS_360 = 25; + + // Conversions that track local actions from Google's products and services + // after interacting with an ad. + GOOGLE_HOSTED = 27; + + // Conversions reported by Floodlight tags. + FLOODLIGHT = 29; + + // Conversions that come from Google Analytics specifically for Search Ads + // 360. Displayed in Google Ads UI as Analytics (SA360). + ANALYTICS_SEARCH_ADS_360 = 31; + + // Conversion that comes from a linked Firebase event for Search Ads 360. + FIREBASE_SEARCH_ADS_360 = 33; + + // Conversion that is reported by Floodlight for DV360. + DISPLAY_AND_VIDEO_360_FLOODLIGHT = 34; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_attribute_type.proto b/google/ads/googleads/v10/enums/feed_attribute_type.proto new file mode 100644 index 000000000..4b3b31bfb --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_attribute_type.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedAttributeTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed attribute type. + +// Container for enum describing possible data types for a feed attribute. +message FeedAttributeTypeEnum { + // Possible data types for a feed attribute. + enum FeedAttributeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Int64. + INT64 = 2; + + // Double. + DOUBLE = 3; + + // String. + STRING = 4; + + // Boolean. + BOOLEAN = 5; + + // Url. + URL = 6; + + // Datetime. + DATE_TIME = 7; + + // Int64 list. + INT64_LIST = 8; + + // Double (8 bytes) list. + DOUBLE_LIST = 9; + + // String list. + STRING_LIST = 10; + + // Boolean list. + BOOLEAN_LIST = 11; + + // Url list. + URL_LIST = 12; + + // Datetime list. + DATE_TIME_LIST = 13; + + // Price. + PRICE = 14; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_quality_approval_status.proto b/google/ads/googleads/v10/enums/feed_item_quality_approval_status.proto new file mode 100644 index 000000000..37549122a --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_quality_approval_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemQualityApprovalStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed item quality evaluation approval statuses. + +// Container for enum describing possible quality evaluation approval statuses +// of a feed item. +message FeedItemQualityApprovalStatusEnum { + // The possible quality evaluation approval statuses of a feed item. + enum FeedItemQualityApprovalStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Meets all quality expectations. + APPROVED = 2; + + // Does not meet some quality expectations. The specific reason is found in + // the quality_disapproval_reasons field. + DISAPPROVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_quality_disapproval_reason.proto b/google/ads/googleads/v10/enums/feed_item_quality_disapproval_reason.proto new file mode 100644 index 000000000..c7a859b3a --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_quality_disapproval_reason.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemQualityDisapprovalReasonProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed item quality disapproval reasons. + +// Container for enum describing possible quality evaluation disapproval reasons +// of a feed item. +message FeedItemQualityDisapprovalReasonEnum { + // The possible quality evaluation disapproval reasons of a feed item. + enum FeedItemQualityDisapprovalReason { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Price contains repetitive headers. + PRICE_TABLE_REPETITIVE_HEADERS = 2; + + // Price contains repetitive description. + PRICE_TABLE_REPETITIVE_DESCRIPTION = 3; + + // Price contains inconsistent items. + PRICE_TABLE_INCONSISTENT_ROWS = 4; + + // Price contains qualifiers in description. + PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS = 5; + + // Price contains an unsupported language. + PRICE_UNSUPPORTED_LANGUAGE = 6; + + // Price item header is not relevant to the price type. + PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH = 7; + + // Price item header has promotional text. + PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT = 8; + + // Price item description is not relevant to the item header. + PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT = 9; + + // Price item description contains promotional text. + PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT = 10; + + // Price item header and description are repetitive. + PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE = 11; + + // Price item is in a foreign language, nonsense, or can't be rated. + PRICE_TABLE_ROW_UNRATEABLE = 12; + + // Price item price is invalid or inaccurate. + PRICE_TABLE_ROW_PRICE_INVALID = 13; + + // Price item URL is invalid or irrelevant. + PRICE_TABLE_ROW_URL_INVALID = 14; + + // Price item header or description has price. + PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE = 15; + + // Structured snippet values do not match the header. + STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED = 16; + + // Structured snippet values are repeated. + STRUCTURED_SNIPPETS_REPEATED_VALUES = 17; + + // Structured snippet values violate editorial guidelines like punctuation. + STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES = 18; + + // Structured snippet contain promotional text. + STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT = 19; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_set_status.proto b/google/ads/googleads/v10/enums/feed_item_set_status.proto new file mode 100644 index 000000000..069785c77 --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_set_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed item set status. + +// Container for enum describing possible statuses of a feed item set. +message FeedItemSetStatusEnum { + // Possible statuses of a feed item set. + enum FeedItemSetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item set is enabled. + ENABLED = 2; + + // Feed item set has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_set_string_filter_type.proto b/google/ads/googleads/v10/enums/feed_item_set_string_filter_type.proto new file mode 100644 index 000000000..b98df0b1c --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_set_string_filter_type.proto @@ -0,0 +1,43 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetStringFilterTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// The type of string matching to be used for a dynamic FeedItemSet filter. +message FeedItemSetStringFilterTypeEnum { + // describe the possible types for a FeedItemSetStringFilter. + enum FeedItemSetStringFilterType { + // Not specified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The dynamic set filter will use exact string matching. + EXACT = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_status.proto b/google/ads/googleads/v10/enums/feed_item_status.proto new file mode 100644 index 000000000..b265dc925 --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed item status. + +// Container for enum describing possible statuses of a feed item. +message FeedItemStatusEnum { + // Possible statuses of a feed item. + enum FeedItemStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item is enabled. + ENABLED = 2; + + // Feed item has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_target_device.proto b/google/ads/googleads/v10/enums/feed_item_target_device.proto new file mode 100644 index 000000000..99ddc819c --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_target_device.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetDeviceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed item target device type. + +// Container for enum describing possible data types for a feed item target +// device. +message FeedItemTargetDeviceEnum { + // Possible data types for a feed item target device. + enum FeedItemTargetDevice { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile. + MOBILE = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_target_status.proto b/google/ads/googleads/v10/enums/feed_item_target_status.proto new file mode 100644 index 000000000..1bda4ab1f --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_target_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed item target status. + +// Container for enum describing possible statuses of a feed item target. +message FeedItemTargetStatusEnum { + // Possible statuses of a feed item target. + enum FeedItemTargetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item target is enabled. + ENABLED = 2; + + // Feed item target has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_target_type.proto b/google/ads/googleads/v10/enums/feed_item_target_type.proto new file mode 100644 index 000000000..609f84fc5 --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_target_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed item target type status. + +// Container for enum describing possible types of a feed item target. +message FeedItemTargetTypeEnum { + // Possible type of a feed item target. + enum FeedItemTargetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item targets a campaign. + CAMPAIGN = 2; + + // Feed item targets an ad group. + AD_GROUP = 3; + + // Feed item targets a criterion. + CRITERION = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_item_validation_status.proto b/google/ads/googleads/v10/enums/feed_item_validation_status.proto new file mode 100644 index 000000000..739b996ab --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_item_validation_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemValidationStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed item validation statuses. + +// Container for enum describing possible validation statuses of a feed item. +message FeedItemValidationStatusEnum { + // The possible validation statuses of a feed item. + enum FeedItemValidationStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Validation pending. + PENDING = 2; + + // An error was found. + INVALID = 3; + + // Feed item is semantically well-formed. + VALID = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_link_status.proto b/google/ads/googleads/v10/enums/feed_link_status.proto new file mode 100644 index 000000000..23817d90d --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_link_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedLinkStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing status of a feed link. + +// Container for an enum describing possible statuses of a feed link. +message FeedLinkStatusEnum { + // Possible statuses of a feed link. + enum FeedLinkStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed link is enabled. + ENABLED = 2; + + // Feed link has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_mapping_criterion_type.proto b/google/ads/googleads/v10/enums/feed_mapping_criterion_type.proto new file mode 100644 index 000000000..b5c54f79d --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_mapping_criterion_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingCriterionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing criterion types for feed mappings. + +// Container for enum describing possible criterion types for a feed mapping. +message FeedMappingCriterionTypeEnum { + // Possible placeholder types for a feed mapping. + enum FeedMappingCriterionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Allows campaign targeting at locations within a location feed. + LOCATION_EXTENSION_TARGETING = 4; + + // Allows url targeting for your dynamic search ads within a page feed. + DSA_PAGE_FEED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_mapping_status.proto b/google/ads/googleads/v10/enums/feed_mapping_status.proto new file mode 100644 index 000000000..6d9d66044 --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_mapping_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed mapping status. + +// Container for enum describing possible statuses of a feed mapping. +message FeedMappingStatusEnum { + // Possible statuses of a feed mapping. + enum FeedMappingStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed mapping is enabled. + ENABLED = 2; + + // Feed mapping has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/feed_origin.proto b/google/ads/googleads/v10/enums/feed_origin.proto new file mode 100644 index 000000000..31536d414 --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_origin.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedOriginProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed origin. + +// Container for enum describing possible values for a feed origin. +message FeedOriginEnum { + // Possible values for a feed origin. + enum FeedOrigin { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The FeedAttributes for this Feed are managed by the + // user. Users can add FeedAttributes to this Feed. + USER = 2; + + // The FeedAttributes for an 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/google/ads/googleads/v10/enums/feed_status.proto b/google/ads/googleads/v10/enums/feed_status.proto new file mode 100644 index 000000000..865e9c04a --- /dev/null +++ b/google/ads/googleads/v10/enums/feed_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed status. + +// Container for enum describing possible statuses of a feed. +message FeedStatusEnum { + // Possible statuses of a feed. + enum FeedStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed is enabled. + ENABLED = 2; + + // Feed has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/flight_placeholder_field.proto b/google/ads/googleads/v10/enums/flight_placeholder_field.proto new file mode 100644 index 000000000..e3b37b483 --- /dev/null +++ b/google/ads/googleads/v10/enums/flight_placeholder_field.proto @@ -0,0 +1,116 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FlightsPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Flight placeholder fields. + +// Values for Flight placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message FlightPlaceholderFieldEnum { + // Possible values for Flight placeholder fields. + enum FlightPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Destination id. Example: PAR, LON. + // For feed items that only have destination id, destination id must be a + // unique key. For feed items that have both destination id and origin id, + // then the combination must be a unique key. + DESTINATION_ID = 2; + + // Data Type: STRING. Origin id. Example: PAR, LON. + // Optional. Combination of destination id and origin id must be unique per + // offer. + ORIGIN_ID = 3; + + // Data Type: STRING. Required. Main headline with product name to be shown + // in dynamic ad. + FLIGHT_DESCRIPTION = 4; + + // Data Type: STRING. Shorter names are recommended. + ORIGIN_NAME = 5; + + // Data Type: STRING. Shorter names are recommended. + DESTINATION_NAME = 6; + + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + FLIGHT_PRICE = 7; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 8; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + FLIGHT_SALE_PRICE = 9; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 10; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 11; + + // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific flight for ads that show multiple + // flights. + FINAL_URLS = 12; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 13; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 14; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 15; + + // Data Type: STRING_LIST. List of recommended destination IDs to show + // together with this item. + SIMILAR_DESTINATION_IDS = 16; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 17; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 18; + } + + +} diff --git a/google/ads/googleads/v10/enums/frequency_cap_event_type.proto b/google/ads/googleads/v10/enums/frequency_cap_event_type.proto new file mode 100644 index 000000000..ca9d9966c --- /dev/null +++ b/google/ads/googleads/v10/enums/frequency_cap_event_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapEventTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing frequency caps. + +// Container for enum describing the type of event that the cap applies to. +message FrequencyCapEventTypeEnum { + // The type of event that the cap applies to (e.g. impression). + enum FrequencyCapEventType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The cap applies on ad impressions. + IMPRESSION = 2; + + // The cap applies on video ad views. + VIDEO_VIEW = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/frequency_cap_level.proto b/google/ads/googleads/v10/enums/frequency_cap_level.proto new file mode 100644 index 000000000..98335ee25 --- /dev/null +++ b/google/ads/googleads/v10/enums/frequency_cap_level.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapLevelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing frequency caps. + +// Container for enum describing the level on which the cap is to be applied. +message FrequencyCapLevelEnum { + // The level on which the cap is to be applied (e.g ad group ad, ad group). + // Cap is applied to all the resources of this level. + enum FrequencyCapLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The cap is applied at the ad group ad level. + AD_GROUP_AD = 2; + + // The cap is applied at the ad group level. + AD_GROUP = 3; + + // The cap is applied at the campaign level. + CAMPAIGN = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/frequency_cap_time_unit.proto b/google/ads/googleads/v10/enums/frequency_cap_time_unit.proto new file mode 100644 index 000000000..0be209f9f --- /dev/null +++ b/google/ads/googleads/v10/enums/frequency_cap_time_unit.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapTimeUnitProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing frequency caps. + +// Container for enum describing the unit of time the cap is defined at. +message FrequencyCapTimeUnitEnum { + // Unit of time the cap is defined at (e.g. day, week). + enum FrequencyCapTimeUnit { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The cap would define limit per one day. + DAY = 2; + + // The cap would define limit per one week. + WEEK = 3; + + // The cap would define limit per one month. + MONTH = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/gender_type.proto b/google/ads/googleads/v10/enums/gender_type.proto new file mode 100644 index 000000000..d33c7485b --- /dev/null +++ b/google/ads/googleads/v10/enums/gender_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GenderTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing gender types. + +// Container for enum describing the type of demographic genders. +message GenderTypeEnum { + // The type of demographic genders (e.g. female). + enum GenderType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Male. + MALE = 10; + + // Female. + FEMALE = 11; + + // Undetermined gender. + UNDETERMINED = 20; + } + + +} diff --git a/google/ads/googleads/v10/enums/geo_target_constant_status.proto b/google/ads/googleads/v10/enums/geo_target_constant_status.proto new file mode 100644 index 000000000..3d72398b1 --- /dev/null +++ b/google/ads/googleads/v10/enums/geo_target_constant_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetConstantStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing geo target constant statuses. + +// Container for describing the status of a geo target constant. +message GeoTargetConstantStatusEnum { + // The possible statuses of a geo target constant. + enum GeoTargetConstantStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The geo target constant is valid. + ENABLED = 2; + + // The geo target constant is obsolete and will be removed. + REMOVAL_PLANNED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/geo_targeting_restriction.proto b/google/ads/googleads/v10/enums/geo_targeting_restriction.proto new file mode 100644 index 000000000..4fb38cfea --- /dev/null +++ b/google/ads/googleads/v10/enums/geo_targeting_restriction.proto @@ -0,0 +1,47 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetingRestrictionProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing GeoTargetingRestriction. + +// Message describing feed item geo targeting restriction. +message GeoTargetingRestrictionEnum { + // A restriction used to determine if the request context's + // geo should be matched. + enum GeoTargetingRestriction { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Indicates that request context should match the physical location of + // the user. + LOCATION_OF_PRESENCE = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/geo_targeting_type.proto b/google/ads/googleads/v10/enums/geo_targeting_type.proto new file mode 100644 index 000000000..2f9a7fef6 --- /dev/null +++ b/google/ads/googleads/v10/enums/geo_targeting_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetingTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing geo targeting types. + +// Container for enum describing possible geo targeting types. +message GeoTargetingTypeEnum { + // The possible geo targeting types. + enum GeoTargetingType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Location the user is interested in while making the query. + AREA_OF_INTEREST = 2; + + // Location of the user issuing the query. + LOCATION_OF_PRESENCE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/goal_config_level.proto b/google/ads/googleads/v10/enums/goal_config_level.proto new file mode 100644 index 000000000..4fff18586 --- /dev/null +++ b/google/ads/googleads/v10/enums/goal_config_level.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GoalConfigLevelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing goal config level. + +// Container for enum describing possible goal config levels. +message GoalConfigLevelEnum { + // The possible goal config levels. Campaigns automatically inherit the + // effective conversion account's customer goals unless they have been + // configured with their own set of campaign goals. + enum GoalConfigLevel { + // The goal config level has not been specified. + UNSPECIFIED = 0; + + // The goal config level is not known in this version. + UNKNOWN = 1; + + // The goal config is defined at the customer level. + CUSTOMER = 2; + + // The goal config is defined at the campaign level. + CAMPAIGN = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/google_ads_field_category.proto b/google/ads/googleads/v10/enums/google_ads_field_category.proto new file mode 100644 index 000000000..a3b90ce93 --- /dev/null +++ b/google/ads/googleads/v10/enums/google_ads_field_category.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsFieldCategoryProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing GoogleAdsField categories. + +// Container for enum that determines if the described artifact is a resource +// or a field, and if it is a field, when it segments search queries. +message GoogleAdsFieldCategoryEnum { + // The category of the artifact. + enum GoogleAdsFieldCategory { + // Unspecified + UNSPECIFIED = 0; + + // Unknown + UNKNOWN = 1; + + // The described artifact is a resource. + RESOURCE = 2; + + // The described artifact is a field and is an attribute of a resource. + // Including a resource attribute field in a query may segment the query if + // the resource to which it is attributed segments the resource found in + // the FROM clause. + ATTRIBUTE = 3; + + // The described artifact is a field and always segments search queries. + SEGMENT = 5; + + // The described artifact is a field and is a metric. It never segments + // search queries. + METRIC = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/google_ads_field_data_type.proto b/google/ads/googleads/v10/enums/google_ads_field_data_type.proto new file mode 100644 index 000000000..7da3fac83 --- /dev/null +++ b/google/ads/googleads/v10/enums/google_ads_field_data_type.proto @@ -0,0 +1,100 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsFieldDataTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing GoogleAdsField data types. + +// Container holding the various data types. +message GoogleAdsFieldDataTypeEnum { + // These are the various types a GoogleAdsService artifact may take on. + enum GoogleAdsFieldDataType { + // Unspecified + UNSPECIFIED = 0; + + // Unknown + UNKNOWN = 1; + + // Maps to google.protobuf.BoolValue + // + // Applicable operators: =, != + BOOLEAN = 2; + + // Maps to google.protobuf.StringValue. It can be compared using the set of + // operators specific to dates however. + // + // Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN + DATE = 3; + + // Maps to google.protobuf.DoubleValue + // + // Applicable operators: =, !=, <, >, IN, NOT IN + DOUBLE = 4; + + // Maps to an enum. It's specific definition can be found at type_url. + // + // Applicable operators: =, !=, IN, NOT IN + ENUM = 5; + + // Maps to google.protobuf.FloatValue + // + // Applicable operators: =, !=, <, >, IN, NOT IN + FLOAT = 6; + + // Maps to google.protobuf.Int32Value + // + // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + INT32 = 7; + + // Maps to google.protobuf.Int64Value + // + // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + INT64 = 8; + + // Maps to a protocol buffer message type. The data type's details can be + // found in type_url. + // + // No operators work with MESSAGE fields. + MESSAGE = 9; + + // Maps to google.protobuf.StringValue. Represents the resource name + // (unique id) of a resource or one of its foreign keys. + // + // No operators work with RESOURCE_NAME fields. + RESOURCE_NAME = 10; + + // Maps to google.protobuf.StringValue. + // + // Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN + STRING = 11; + + // Maps to google.protobuf.UInt64Value + // + // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + UINT64 = 12; + } + + +} diff --git a/google/ads/googleads/v10/enums/google_voice_call_status.proto b/google/ads/googleads/v10/enums/google_voice_call_status.proto new file mode 100644 index 000000000..22c2550c6 --- /dev/null +++ b/google/ads/googleads/v10/enums/google_voice_call_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GoogleVoiceCallStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing google voice call status. + +// Container for enum describing possible statuses of a google voice call. +message GoogleVoiceCallStatusEnum { + // Possible statuses of a google voice call. + enum GoogleVoiceCallStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The call was missed. + MISSED = 2; + + // The call was received. + RECEIVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/hotel_date_selection_type.proto b/google/ads/googleads/v10/enums/hotel_date_selection_type.proto new file mode 100644 index 000000000..32b6de008 --- /dev/null +++ b/google/ads/googleads/v10/enums/hotel_date_selection_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelDateSelectionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing hotel date selection types. + +// Container for enum describing possible hotel date selection types +message HotelDateSelectionTypeEnum { + // Enum describing possible hotel date selection types. + enum HotelDateSelectionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Dates selected by default. + DEFAULT_SELECTION = 50; + + // Dates selected by the user. + USER_SELECTED = 51; + } + + +} diff --git a/google/ads/googleads/v10/enums/hotel_placeholder_field.proto b/google/ads/googleads/v10/enums/hotel_placeholder_field.proto new file mode 100644 index 000000000..b3ce33317 --- /dev/null +++ b/google/ads/googleads/v10/enums/hotel_placeholder_field.proto @@ -0,0 +1,122 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelsPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Hotel placeholder fields. + +// Values for Hotel placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message HotelPlaceholderFieldEnum { + // Possible values for Hotel placeholder fields. + enum HotelPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Unique ID. + PROPERTY_ID = 2; + + // Data Type: STRING. Required. Main headline with property name to be shown + // in dynamic ad. + PROPERTY_NAME = 3; + + // Data Type: STRING. Name of destination to be shown in dynamic ad. + DESTINATION_NAME = 4; + + // Data Type: STRING. Description of destination to be shown in dynamic ad. + DESCRIPTION = 5; + + // Data Type: STRING. Complete property address, including postal code. + ADDRESS = 6; + + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + PRICE = 7; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 8; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + SALE_PRICE = 9; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 10; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 11; + + // Data Type: STRING. Category of property used to group like items together + // for recommendation engine. + CATEGORY = 12; + + // Data Type: INT64. Star rating (1 to 5) used to group like items + // together for recommendation engine. + STAR_RATING = 13; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 14; + + // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific flight for ads that show multiple + // flights. + FINAL_URLS = 15; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 16; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 17; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 18; + + // Data Type: STRING_LIST. List of recommended property IDs to show together + // with this item. + SIMILAR_PROPERTY_IDS = 19; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 20; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 21; + } + + +} diff --git a/google/ads/googleads/v10/enums/hotel_price_bucket.proto b/google/ads/googleads/v10/enums/hotel_price_bucket.proto new file mode 100644 index 000000000..25b90373b --- /dev/null +++ b/google/ads/googleads/v10/enums/hotel_price_bucket.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelPriceBucketProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing hotel price buckets. + +// Container for enum describing hotel price bucket for a hotel itinerary. +message HotelPriceBucketEnum { + // Enum describing possible hotel price buckets. + enum HotelPriceBucket { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Uniquely lowest price. Partner has the lowest price, and no other + // partners are within a small variance of that price. + LOWEST_UNIQUE = 2; + + // Tied for lowest price. Partner is within a small variance of the lowest + // price. + LOWEST_TIED = 3; + + // Not lowest price. Partner is not within a small variance of the lowest + // price. + NOT_LOWEST = 4; + + // Partner was the only one shown. + ONLY_PARTNER_SHOWN = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/hotel_rate_type.proto b/google/ads/googleads/v10/enums/hotel_rate_type.proto new file mode 100644 index 000000000..e12bea3b4 --- /dev/null +++ b/google/ads/googleads/v10/enums/hotel_rate_type.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelRateTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing hotel rate types. + +// Container for enum describing possible hotel rate types. +message HotelRateTypeEnum { + // Enum describing possible hotel rate types. + enum HotelRateType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Rate type information is unavailable. + UNAVAILABLE = 2; + + // Rates available to everyone. + PUBLIC_RATE = 3; + + // A membership program rate is available and satisfies basic requirements + // like having a public rate available. UI treatment will strikethrough the + // public rate and indicate that a discount is available to the user. For + // more on Qualified Rates, visit + // https://developers.google.com/hotels/hotel-ads/dev-guide/qualified-rates + QUALIFIED_RATE = 4; + + // Rates available to users that satisfy some eligibility criteria. e.g. + // all signed-in users, 20% of mobile users, all mobile users in Canada, + // etc. + PRIVATE_RATE = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/hotel_reconciliation_status.proto b/google/ads/googleads/v10/enums/hotel_reconciliation_status.proto new file mode 100644 index 000000000..84d802b37 --- /dev/null +++ b/google/ads/googleads/v10/enums/hotel_reconciliation_status.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelReconciliationStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing hotel reconciliation row status. + +// Container for HotelReconciliationStatus. +message HotelReconciliationStatusEnum { + // Status of the hotel booking reconciliation. + enum HotelReconciliationStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Bookings are for a future date, or a stay is underway but the check-out + // date hasn't passed. An active reservation can't be reconciled. + RESERVATION_ENABLED = 2; + + // Check-out has already taken place, or the booked dates have passed + // without cancellation. Bookings that are not reconciled within 45 days of + // the check-out date are billed based on the original booking price. + RECONCILIATION_NEEDED = 3; + + // These bookings have been reconciled. Reconciled bookings are billed 45 + // days after the check-out date. + RECONCILED = 4; + + // This booking was marked as canceled. Canceled stays with a value greater + // than zero (due to minimum stay rules or cancellation fees) are billed 45 + // days after the check-out date. + CANCELED = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/image_placeholder_field.proto b/google/ads/googleads/v10/enums/image_placeholder_field.proto new file mode 100644 index 000000000..0290e8e05 --- /dev/null +++ b/google/ads/googleads/v10/enums/image_placeholder_field.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ImagePlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Advertiser Provided Image placeholder fields. + +// Values for Advertiser Provided Image placeholder fields. +message ImagePlaceholderFieldEnum { + // Possible values for Advertiser Provided Image placeholder fields. + enum ImagePlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: INT64. The asset ID of the image. + ASSET_ID = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/income_range_type.proto b/google/ads/googleads/v10/enums/income_range_type.proto new file mode 100644 index 000000000..2ebabb3a2 --- /dev/null +++ b/google/ads/googleads/v10/enums/income_range_type.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "IncomeRangeTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing income range types. + +// Container for enum describing the type of demographic income ranges. +message IncomeRangeTypeEnum { + // The type of demographic income ranges (e.g. between 0% to 50%). + enum IncomeRangeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // 0%-50%. + INCOME_RANGE_0_50 = 510001; + + // 50% to 60%. + INCOME_RANGE_50_60 = 510002; + + // 60% to 70%. + INCOME_RANGE_60_70 = 510003; + + // 70% to 80%. + INCOME_RANGE_70_80 = 510004; + + // 80% to 90%. + INCOME_RANGE_80_90 = 510005; + + // Greater than 90%. + INCOME_RANGE_90_UP = 510006; + + // Undetermined income range. + INCOME_RANGE_UNDETERMINED = 510000; + } + + +} diff --git a/google/ads/googleads/v10/enums/interaction_event_type.proto b/google/ads/googleads/v10/enums/interaction_event_type.proto new file mode 100644 index 000000000..1168243c0 --- /dev/null +++ b/google/ads/googleads/v10/enums/interaction_event_type.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "InteractionEventTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing types of payable and free interactions. + +// Container for enum describing types of payable and free interactions. +message InteractionEventTypeEnum { + // Enum describing possible types of payable and free interactions. + enum InteractionEventType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Click to site. In most cases, this interaction navigates to an external + // location, usually the advertiser's landing page. This is also the default + // InteractionEventType for click events. + CLICK = 2; + + // The user's expressed intent to engage with the ad in-place. + ENGAGEMENT = 3; + + // User viewed a video ad. + VIDEO_VIEW = 4; + + // The default InteractionEventType for ad conversion events. + // This is used when an ad conversion row does NOT indicate + // that the free interactions (i.e., the ad conversions) + // should be 'promoted' and reported as part of the core metrics. + // These are simply other (ad) conversions. + NONE = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/interaction_type.proto b/google/ads/googleads/v10/enums/interaction_type.proto new file mode 100644 index 000000000..d3cb3164e --- /dev/null +++ b/google/ads/googleads/v10/enums/interaction_type.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "InteractionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing interaction types. + +// Container for enum describing possible interaction types. +message InteractionTypeEnum { + // Enum describing possible interaction types. + enum InteractionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Calls. + CALLS = 8000; + } + + +} diff --git a/google/ads/googleads/v10/enums/invoice_type.proto b/google/ads/googleads/v10/enums/invoice_type.proto new file mode 100644 index 000000000..d4f923915 --- /dev/null +++ b/google/ads/googleads/v10/enums/invoice_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "InvoiceTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing invoice types. + +// Container for enum describing the type of invoices. +message InvoiceTypeEnum { + // The possible type of invoices. + enum InvoiceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // An invoice with a negative amount. The account receives a credit. + CREDIT_MEMO = 2; + + // An invoice with a positive amount. The account owes a balance. + INVOICE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/job_placeholder_field.proto b/google/ads/googleads/v10/enums/job_placeholder_field.proto new file mode 100644 index 000000000..f1c5d9943 --- /dev/null +++ b/google/ads/googleads/v10/enums/job_placeholder_field.proto @@ -0,0 +1,113 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "JobsPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Job placeholder fields. + +// Values for Job placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message JobPlaceholderFieldEnum { + // Possible values for Job placeholder fields. + enum JobPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. If only JOB_ID is specified, then it must be + // unique. If both JOB_ID and LOCATION_ID are specified, then the + // pair must be unique. + // ID) pair must be unique. + JOB_ID = 2; + + // Data Type: STRING. Combination of JOB_ID and LOCATION_ID must be unique + // per offer. + LOCATION_ID = 3; + + // Data Type: STRING. Required. Main headline with job title to be shown in + // dynamic ad. + TITLE = 4; + + // Data Type: STRING. Job subtitle to be shown in dynamic ad. + SUBTITLE = 5; + + // Data Type: STRING. Description of job to be shown in dynamic ad. + DESCRIPTION = 6; + + // Data Type: URL. Image to be displayed in the ad. Highly recommended for + // image ads. + IMAGE_URL = 7; + + // Data Type: STRING. Category of property used to group like items together + // for recommendation engine. + CATEGORY = 8; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 9; + + // Data Type: STRING. Complete property address, including postal code. + ADDRESS = 10; + + // Data Type: STRING. Salary or salary range of job to be shown in dynamic + // ad. + SALARY = 11; + + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (e.g. the individual URL of a + // specific job and its location). + FINAL_URLS = 12; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 14; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 15; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 16; + + // Data Type: STRING_LIST. List of recommended job IDs to show together with + // this item. + SIMILAR_JOB_IDS = 17; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 18; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 19; + } + + +} diff --git a/google/ads/googleads/v10/enums/keyword_match_type.proto b/google/ads/googleads/v10/enums/keyword_match_type.proto new file mode 100644 index 000000000..3d90fa492 --- /dev/null +++ b/google/ads/googleads/v10/enums/keyword_match_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordMatchTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Keyword match types. + +// Message describing Keyword match types. +message KeywordMatchTypeEnum { + // Possible Keyword match types. + enum KeywordMatchType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Exact match. + EXACT = 2; + + // Phrase match. + PHRASE = 3; + + // Broad match. + BROAD = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/keyword_plan_aggregate_metric_type.proto b/google/ads/googleads/v10/enums/keyword_plan_aggregate_metric_type.proto new file mode 100644 index 000000000..36c712439 --- /dev/null +++ b/google/ads/googleads/v10/enums/keyword_plan_aggregate_metric_type.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAggregateMetricTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing keyword plan aggregate metric types. + +// The enumeration of keyword plan aggregate metric types. +message KeywordPlanAggregateMetricTypeEnum { + // Aggregate fields. + enum KeywordPlanAggregateMetricType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The device breakdown of aggregate search volume. + DEVICE = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/keyword_plan_competition_level.proto b/google/ads/googleads/v10/enums/keyword_plan_competition_level.proto new file mode 100644 index 000000000..765ab35a8 --- /dev/null +++ b/google/ads/googleads/v10/enums/keyword_plan_competition_level.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCompetitionLevelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Keyword Planner competition levels. + +// Container for enumeration of keyword competition levels. The competition +// level indicates how competitive ad placement is for a keyword and +// is determined by the number of advertisers bidding on that keyword relative +// to all keywords across Google. The competition level can depend on the +// location and Search Network targeting options you've selected. +message KeywordPlanCompetitionLevelEnum { + // Competition level of a keyword. + enum KeywordPlanCompetitionLevel { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Low competition. The Competition Index range for this is [0, 33]. + LOW = 2; + + // Medium competition. The Competition Index range for this is [34, 66]. + MEDIUM = 3; + + // High competition. The Competition Index range for this is [67, 100]. + HIGH = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/keyword_plan_concept_group_type.proto b/google/ads/googleads/v10/enums/keyword_plan_concept_group_type.proto new file mode 100644 index 000000000..df2b4db35 --- /dev/null +++ b/google/ads/googleads/v10/enums/keyword_plan_concept_group_type.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanConceptGroupTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Keyword Planner Concept Group types. + +// Container for enumeration of keyword plan concept group types. +message KeywordPlanConceptGroupTypeEnum { + // Enumerates keyword plan concept group types. + enum KeywordPlanConceptGroupType { + // The concept group classification different from brand/non-brand. + // This is a catch all bucket for all classifications that are none of the + // below. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The concept group classification is based on BRAND. + BRAND = 2; + + // The concept group classification based on BRAND, that didn't fit well + // with the BRAND classifications. These are generally outliers and can have + // very few keywords in this type of classification. + OTHER_BRANDS = 3; + + // These concept group classification is not based on BRAND. This is + // returned for generic keywords that don't have a brand association. + NON_BRAND = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/keyword_plan_forecast_interval.proto b/google/ads/googleads/v10/enums/keyword_plan_forecast_interval.proto new file mode 100644 index 000000000..1d793b1e9 --- /dev/null +++ b/google/ads/googleads/v10/enums/keyword_plan_forecast_interval.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanForecastIntervalProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing keyword plan forecast intervals. + +// Container for enumeration of forecast intervals. +message KeywordPlanForecastIntervalEnum { + // Forecast intervals. + enum KeywordPlanForecastInterval { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The next week date range for keyword plan. The next week is based + // on the default locale of the user's account and is mostly SUN-SAT or + // MON-SUN. + // This can be different from next-7 days. + NEXT_WEEK = 3; + + // The next month date range for keyword plan. + NEXT_MONTH = 4; + + // The next quarter date range for keyword plan. + NEXT_QUARTER = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/keyword_plan_keyword_annotation.proto b/google/ads/googleads/v10/enums/keyword_plan_keyword_annotation.proto new file mode 100644 index 000000000..1c7457817 --- /dev/null +++ b/google/ads/googleads/v10/enums/keyword_plan_keyword_annotation.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanKeywordAnnotationProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Keyword Planner Keyword annotation types. + +// Container for enumeration of keyword plan keyword annotations. +message KeywordPlanKeywordAnnotationEnum { + // Enumerates keyword plan annotations that can be requested. + enum KeywordPlanKeywordAnnotation { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Return the keyword concept and concept group data. + KEYWORD_CONCEPT = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/keyword_plan_network.proto b/google/ads/googleads/v10/enums/keyword_plan_network.proto new file mode 100644 index 000000000..92f78c581 --- /dev/null +++ b/google/ads/googleads/v10/enums/keyword_plan_network.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanNetworkProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Keyword Planner forecastable network types. + +// Container for enumeration of keyword plan forecastable network types. +message KeywordPlanNetworkEnum { + // Enumerates keyword plan forecastable network types. + enum KeywordPlanNetwork { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Google Search. + GOOGLE_SEARCH = 2; + + // Google Search + Search partners. + GOOGLE_SEARCH_AND_PARTNERS = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/label_status.proto b/google/ads/googleads/v10/enums/label_status.proto new file mode 100644 index 000000000..1ae1162eb --- /dev/null +++ b/google/ads/googleads/v10/enums/label_status.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LabelStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing possible status of a label. +message LabelStatusEnum { + // Possible statuses of a label. + enum LabelStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Label is enabled. + ENABLED = 2; + + // Label is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/lead_form_call_to_action_type.proto b/google/ads/googleads/v10/enums/lead_form_call_to_action_type.proto new file mode 100644 index 000000000..5446efd31 --- /dev/null +++ b/google/ads/googleads/v10/enums/lead_form_call_to_action_type.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormCallToActionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Describes the type of call-to-action phrases in a lead form. +message LeadFormCallToActionTypeEnum { + // Enum describing the type of call-to-action phrases in a lead form. + enum LeadFormCallToActionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Learn more. + LEARN_MORE = 2; + + // Get quote. + GET_QUOTE = 3; + + // Apply now. + APPLY_NOW = 4; + + // Sign Up. + SIGN_UP = 5; + + // Contact us. + CONTACT_US = 6; + + // Subscribe. + SUBSCRIBE = 7; + + // Download. + DOWNLOAD = 8; + + // Book now. + BOOK_NOW = 9; + + // Get offer. + GET_OFFER = 10; + + // Register. + REGISTER = 11; + + // Get info. + GET_INFO = 12; + + // Request a demo. + REQUEST_DEMO = 13; + + // Join now. + JOIN_NOW = 14; + + // Get started. + GET_STARTED = 15; + } + + +} diff --git a/google/ads/googleads/v10/enums/lead_form_desired_intent.proto b/google/ads/googleads/v10/enums/lead_form_desired_intent.proto new file mode 100644 index 000000000..5a5c81b3c --- /dev/null +++ b/google/ads/googleads/v10/enums/lead_form_desired_intent.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormDesiredIntentProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Describes the desired level of intent of generated leads. +message LeadFormDesiredIntentEnum { + // Enum describing the desired level of intent of generated leads. + enum LeadFormDesiredIntent { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Deliver more leads at a potentially lower quality. + LOW_INTENT = 2; + + // Deliver leads that are more qualified. + HIGH_INTENT = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/lead_form_field_user_input_type.proto b/google/ads/googleads/v10/enums/lead_form_field_user_input_type.proto new file mode 100644 index 000000000..42e7d2f20 --- /dev/null +++ b/google/ads/googleads/v10/enums/lead_form_field_user_input_type.proto @@ -0,0 +1,292 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormFieldUserInputTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Describes the input type of a lead form field. +message LeadFormFieldUserInputTypeEnum { + // Enum describing the input type of a lead form field. + enum LeadFormFieldUserInputType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The user will be asked to fill in their given and family name. This field + // cannot be set at the same time as GIVEN_NAME or FAMILY_NAME. + FULL_NAME = 2; + + // The user will be asked to fill in their email address. + EMAIL = 3; + + // The user will be asked to fill in their phone number. + PHONE_NUMBER = 4; + + // The user will be asked to fill in their zip code. + POSTAL_CODE = 5; + + // The user will be asked to fill in their city. + CITY = 9; + + // The user will be asked to fill in their region part of the address (e.g. + // state for US, province for Canada). + REGION = 10; + + // The user will be asked to fill in their country. + COUNTRY = 11; + + // The user will be asked to fill in their work email address. + WORK_EMAIL = 12; + + // The user will be asked to fill in their company name. + COMPANY_NAME = 13; + + // The user will be asked to fill in their work phone. + WORK_PHONE = 14; + + // The user will be asked to fill in their job title. + JOB_TITLE = 15; + + // The user will be asked to fill in their CPF for Brazil users. + GOVERNMENT_ISSUED_ID_CPF_BR = 16; + + // The user will be asked to fill in their DNI for Argentina users. + GOVERNMENT_ISSUED_ID_DNI_AR = 17; + + // The user will be asked to fill in their DNI for Peru users. + GOVERNMENT_ISSUED_ID_DNI_PE = 18; + + // The user will be asked to fill in their RUT for Chile users. + GOVERNMENT_ISSUED_ID_RUT_CL = 19; + + // The user will be asked to fill in their CC for Colombia users. + GOVERNMENT_ISSUED_ID_CC_CO = 20; + + // The user will be asked to fill in their CI for Ecuador users. + GOVERNMENT_ISSUED_ID_CI_EC = 21; + + // The user will be asked to fill in their RFC for Mexico users. + GOVERNMENT_ISSUED_ID_RFC_MX = 22; + + // The user will be asked to fill in their first name. This + // field can not be set at the same time as FULL_NAME. + FIRST_NAME = 23; + + // The user will be asked to fill in their last name. This + // field can not be set at the same time as FULL_NAME. + LAST_NAME = 24; + + // Question: "Which model are you interested in?" + // Category: "Auto" + VEHICLE_MODEL = 1001; + + // Question: "Which type of vehicle are you interested in?" + // Category: "Auto" + VEHICLE_TYPE = 1002; + + // Question: "What is your preferred dealership?" + // Category: "Auto" + PREFERRED_DEALERSHIP = 1003; + + // Question: "When do you plan on purchasing a vehicle?" + // Category: "Auto" + VEHICLE_PURCHASE_TIMELINE = 1004; + + // Question: "Do you own a vehicle?" + // Category: "Auto" + VEHICLE_OWNERSHIP = 1005; + + // Question: "What vehicle ownership option are you interested in?" + // Category: "Auto" + VEHICLE_PAYMENT_TYPE = 1009; + + // Question: "What type of vehicle condition are you interested in?" + // Category: "Auto" + VEHICLE_CONDITION = 1010; + + // Question: "What size is your company?" + // Category: "Business" + COMPANY_SIZE = 1006; + + // Question: "What is your annual sales volume?" + // Category: "Business" + ANNUAL_SALES = 1007; + + // Question: "How many years have you been in business?" + // Category: "Business" + YEARS_IN_BUSINESS = 1008; + + // Question: "What is your job department?" + // Category: "Business" + JOB_DEPARTMENT = 1011; + + // Question: "What is your job role?" + // Category: "Business" + JOB_ROLE = 1012; + + // Question: "Which program are you interested in?" + // Category: "Education" + EDUCATION_PROGRAM = 1013; + + // Question: "Which course are you interested in?" + // Category: "Education" + EDUCATION_COURSE = 1014; + + // Question: "Which product are you interested in?" + // Category: "General" + PRODUCT = 1016; + + // Question: "Which service are you interested in?" + // Category: "General" + SERVICE = 1017; + + // Question: "Which offer are you interested in?" + // Category: "General" + OFFER = 1018; + + // Question: "Which category are you interested in?" + // Category: "General" + CATEGORY = 1019; + + // Question: "What is your preferred method of contact?" + // Category: "General" + PREFERRED_CONTACT_METHOD = 1020; + + // Question: "What is your preferred location?" + // Category: "General" + PREFERRED_LOCATION = 1021; + + // Question: "What is the best time to contact you?" + // Category: "General" + PREFERRED_CONTACT_TIME = 1022; + + // Question: "When are you looking to make a purchase?" + // Category: "General" + PURCHASE_TIMELINE = 1023; + + // Question: "How many years of work experience do you have?" + // Category: "Jobs" + YEARS_OF_EXPERIENCE = 1048; + + // Question: "What industry do you work in?" + // Category: "Jobs" + JOB_INDUSTRY = 1049; + + // Question: "What is your highest level of education?" + // Category: "Jobs" + LEVEL_OF_EDUCATION = 1050; + + // Question: "What type of property are you looking for?" + // Category: "Real Estate" + PROPERTY_TYPE = 1024; + + // Question: "What do you need a realtor's help with?" + // Category: "Real Estate" + REALTOR_HELP_GOAL = 1025; + + // Question: "What neighborhood are you interested in?" + // Category: "Real Estate" + PROPERTY_COMMUNITY = 1026; + + // Question: "What price range are you looking for?" + // Category: "Real Estate" + PRICE_RANGE = 1027; + + // Question: "How many bedrooms are you looking for?" + // Category: "Real Estate" + NUMBER_OF_BEDROOMS = 1028; + + // Question: "Are you looking for a fully furnished property?" + // Category: "Real Estate" + FURNISHED_PROPERTY = 1029; + + // Question: "Are you looking for properties that allow pets?" + // Category: "Real Estate" + PETS_ALLOWED_PROPERTY = 1030; + + // Question: "What is the next product you plan to purchase?" + // Category: "Retail" + NEXT_PLANNED_PURCHASE = 1031; + + // Question: "Would you like to sign up for an event?" + // Category: "Retail" + EVENT_SIGNUP_INTEREST = 1033; + + // Question: "Where are you interested in shopping?" + // Category: "Retail" + PREFERRED_SHOPPING_PLACES = 1034; + + // Question: "What is your favorite brand?" + // Category: "Retail" + FAVORITE_BRAND = 1035; + + // Question: "Which type of valid commercial license do you have?" + // Category: "Transportation" + TRANSPORTATION_COMMERCIAL_LICENSE_TYPE = 1036; + + // Question: "Interested in booking an event?" + // Category: "Travel" + EVENT_BOOKING_INTEREST = 1038; + + // Question: "What is your destination country?" + // Category: "Travel" + DESTINATION_COUNTRY = 1039; + + // Question: "What is your destination city?" + // Category: "Travel" + DESTINATION_CITY = 1040; + + // Question: "What is your departure country?" + // Category: "Travel" + DEPARTURE_COUNTRY = 1041; + + // Question: "What is your departure city?" + // Category: "Travel" + DEPARTURE_CITY = 1042; + + // Question: "What is your departure date?" + // Category: "Travel" + DEPARTURE_DATE = 1043; + + // Question: "What is your return date?" + // Category: "Travel" + RETURN_DATE = 1044; + + // Question: "How many people are you traveling with?" + // Category: "Travel" + NUMBER_OF_TRAVELERS = 1045; + + // Question: "What is your travel budget?" + // Category: "Travel" + TRAVEL_BUDGET = 1046; + + // Question: "Where do you want to stay during your travel?" + // Category: "Travel" + TRAVEL_ACCOMMODATION = 1047; + } + + +} diff --git a/google/ads/googleads/v10/enums/lead_form_post_submit_call_to_action_type.proto b/google/ads/googleads/v10/enums/lead_form_post_submit_call_to_action_type.proto new file mode 100644 index 000000000..7dcf79e99 --- /dev/null +++ b/google/ads/googleads/v10/enums/lead_form_post_submit_call_to_action_type.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormPostSubmitCallToActionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Describes the type of post-submit call-to-action phrases for a lead form. +message LeadFormPostSubmitCallToActionTypeEnum { + // Enum describing the type of post-submit call-to-action phrases for a lead + // form. + enum LeadFormPostSubmitCallToActionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Visit site. + VISIT_SITE = 2; + + // Download. + DOWNLOAD = 3; + + // Learn more. + LEARN_MORE = 4; + + // Shop now. + SHOP_NOW = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/legacy_app_install_ad_app_store.proto b/google/ads/googleads/v10/enums/legacy_app_install_ad_app_store.proto new file mode 100644 index 000000000..d25299ef4 --- /dev/null +++ b/google/ads/googleads/v10/enums/legacy_app_install_ad_app_store.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LegacyAppInstallAdAppStoreProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing app store types for a legacy app install ad. + +// Container for enum describing app store type in a legacy app install ad. +message LegacyAppInstallAdAppStoreEnum { + // App store type in a legacy app install ad. + enum LegacyAppInstallAdAppStore { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Apple iTunes. + APPLE_APP_STORE = 2; + + // Google Play. + GOOGLE_PLAY = 3; + + // Windows Store. + WINDOWS_STORE = 4; + + // Windows Phone Store. + WINDOWS_PHONE_STORE = 5; + + // The app is hosted in a Chinese app store. + CN_APP_STORE = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/linked_account_type.proto b/google/ads/googleads/v10/enums/linked_account_type.proto new file mode 100644 index 000000000..44c016dec --- /dev/null +++ b/google/ads/googleads/v10/enums/linked_account_type.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LinkedAccountTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing different types of Linked accounts. +message LinkedAccountTypeEnum { + // Describes the possible link types between a Google Ads customer + // and another account. + enum LinkedAccountType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // 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; + } + + +} diff --git a/google/ads/googleads/v10/enums/listing_group_filter_bidding_category_level.proto b/google/ads/googleads/v10/enums/listing_group_filter_bidding_category_level.proto new file mode 100644 index 000000000..e88df09e7 --- /dev/null +++ b/google/ads/googleads/v10/enums/listing_group_filter_bidding_category_level.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterBiddingCategoryLevelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing listing groups. + +// Container for enum describing the levels of bidding category used in +// ListingGroupFilterDimension. +message ListingGroupFilterBiddingCategoryLevelEnum { + // The level of the listing group filter bidding category. + enum ListingGroupFilterBiddingCategoryLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Level 1. + LEVEL1 = 2; + + // Level 2. + LEVEL2 = 3; + + // Level 3. + LEVEL3 = 4; + + // Level 4. + LEVEL4 = 5; + + // Level 5. + LEVEL5 = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/listing_group_filter_custom_attribute_index.proto b/google/ads/googleads/v10/enums/listing_group_filter_custom_attribute_index.proto new file mode 100644 index 000000000..f81d1a401 --- /dev/null +++ b/google/ads/googleads/v10/enums/listing_group_filter_custom_attribute_index.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterCustomAttributeIndexProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing listing groups. + +// Container for enum describing the indexes of custom attribute used in +// ListingGroupFilterDimension. +message ListingGroupFilterCustomAttributeIndexEnum { + // The index of customer attributes. + enum ListingGroupFilterCustomAttributeIndex { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // First listing group filter custom attribute. + INDEX0 = 2; + + // Second listing group filter custom attribute. + INDEX1 = 3; + + // Third listing group filter custom attribute. + INDEX2 = 4; + + // Fourth listing group filter custom attribute. + INDEX3 = 5; + + // Fifth listing group filter custom attribute. + INDEX4 = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/listing_group_filter_product_channel.proto b/google/ads/googleads/v10/enums/listing_group_filter_product_channel.proto new file mode 100644 index 000000000..26419f231 --- /dev/null +++ b/google/ads/googleads/v10/enums/listing_group_filter_product_channel.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterProductChannelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing listing groups. + +// Locality of a product offer. +message ListingGroupFilterProductChannelEnum { + // Enum describing the locality of a product offer. + enum ListingGroupFilterProductChannel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The item is sold online. + ONLINE = 2; + + // The item is sold in local stores. + LOCAL = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/listing_group_filter_product_condition.proto b/google/ads/googleads/v10/enums/listing_group_filter_product_condition.proto new file mode 100644 index 000000000..cd114cbd0 --- /dev/null +++ b/google/ads/googleads/v10/enums/listing_group_filter_product_condition.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterProductConditionProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing listing groups. + +// Condition of a product offer. +message ListingGroupFilterProductConditionEnum { + // Enum describing the condition of a product offer. + enum ListingGroupFilterProductCondition { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The product condition is new. + NEW = 2; + + // The product condition is refurbished. + REFURBISHED = 3; + + // The product condition is used. + USED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/listing_group_filter_product_type_level.proto b/google/ads/googleads/v10/enums/listing_group_filter_product_type_level.proto new file mode 100644 index 000000000..8c7ecb2a7 --- /dev/null +++ b/google/ads/googleads/v10/enums/listing_group_filter_product_type_level.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterProductTypeLevelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing listing groups. + +// Level of the type of a product offer. +message ListingGroupFilterProductTypeLevelEnum { + // Enum describing the level of the type of a product offer. + enum ListingGroupFilterProductTypeLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Level 1. + LEVEL1 = 2; + + // Level 2. + LEVEL2 = 3; + + // Level 3. + LEVEL3 = 4; + + // Level 4. + LEVEL4 = 5; + + // Level 5. + LEVEL5 = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/listing_group_filter_type_enum.proto b/google/ads/googleads/v10/enums/listing_group_filter_type_enum.proto new file mode 100644 index 000000000..bcb8a5e16 --- /dev/null +++ b/google/ads/googleads/v10/enums/listing_group_filter_type_enum.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterTypeEnumProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing listing groups. + +// Container for enum describing the type of the listing group filter node. +message ListingGroupFilterTypeEnum { + // The type of the listing group filter. + enum ListingGroupFilterType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Subdivision of products along some listing dimensions. + SUBDIVISION = 2; + + // An included listing group filter leaf node. + UNIT_INCLUDED = 3; + + // An excluded listing group filter leaf node. + UNIT_EXCLUDED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/listing_group_filter_vertical.proto b/google/ads/googleads/v10/enums/listing_group_filter_vertical.proto new file mode 100644 index 000000000..efcd165bd --- /dev/null +++ b/google/ads/googleads/v10/enums/listing_group_filter_vertical.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterVerticalProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::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 { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Represents the shopping vertical. + SHOPPING = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/listing_group_type.proto b/google/ads/googleads/v10/enums/listing_group_type.proto new file mode 100644 index 000000000..06ff0368c --- /dev/null +++ b/google/ads/googleads/v10/enums/listing_group_type.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing listing groups. + +// Container for enum describing the type of the listing group. +message ListingGroupTypeEnum { + // The type of the listing group. + enum ListingGroupType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Subdivision of products along some listing dimension. These nodes + // are not used by serving to target listing entries, but is purely + // to define the structure of the tree. + SUBDIVISION = 2; + + // Listing group unit that defines a bid. + UNIT = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/local_placeholder_field.proto b/google/ads/googleads/v10/enums/local_placeholder_field.proto new file mode 100644 index 000000000..b3b44493a --- /dev/null +++ b/google/ads/googleads/v10/enums/local_placeholder_field.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Local placeholder fields. + +// Values for Local placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message LocalPlaceholderFieldEnum { + // Possible values for Local placeholder fields. + enum LocalPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Unique ID. + DEAL_ID = 2; + + // Data Type: STRING. Required. Main headline with local deal title to be + // shown in dynamic ad. + DEAL_NAME = 3; + + // Data Type: STRING. Local deal subtitle to be shown in dynamic ad. + SUBTITLE = 4; + + // Data Type: STRING. Description of local deal to be shown in dynamic ad. + DESCRIPTION = 5; + + // Data Type: STRING. Price to be shown in the ad. Highly recommended for + // dynamic ads. Example: "100.00 USD" + PRICE = 6; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 7; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + SALE_PRICE = 8; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 9; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 10; + + // Data Type: STRING. Complete property address, including postal code. + ADDRESS = 11; + + // Data Type: STRING. Category of local deal used to group like items + // together for recommendation engine. + CATEGORY = 12; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 13; + + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (e.g. the individual URL of a + // specific local deal and its location). + FINAL_URLS = 14; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 15; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 16; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 17; + + // Data Type: STRING_LIST. List of recommended local deal IDs to show + // together with this item. + SIMILAR_DEAL_IDS = 18; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 19; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 20; + } + + +} diff --git a/google/ads/googleads/v10/enums/location_extension_targeting_criterion_field.proto b/google/ads/googleads/v10/enums/location_extension_targeting_criterion_field.proto new file mode 100644 index 000000000..12163ae42 --- /dev/null +++ b/google/ads/googleads/v10/enums/location_extension_targeting_criterion_field.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocationExtensionTargetingCriterionFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Location Extension Targeting criterion fields. + +// Values for Location Extension Targeting criterion fields. +message LocationExtensionTargetingCriterionFieldEnum { + // Possible values for Location Extension Targeting criterion fields. + enum LocationExtensionTargetingCriterionField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_1 = 2; + + // Data Type: STRING. Line 2 of the business address. + ADDRESS_LINE_2 = 3; + + // Data Type: STRING. City of the business address. + CITY = 4; + + // Data Type: STRING. Province of the business address. + PROVINCE = 5; + + // Data Type: STRING. Postal code of the business address. + POSTAL_CODE = 6; + + // Data Type: STRING. Country code of the business address. + COUNTRY_CODE = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/location_group_radius_units.proto b/google/ads/googleads/v10/enums/location_group_radius_units.proto new file mode 100644 index 000000000..c8c35b586 --- /dev/null +++ b/google/ads/googleads/v10/enums/location_group_radius_units.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocationGroupRadiusUnitsProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing location group radius units. + +// Container for enum describing unit of radius in location group. +message LocationGroupRadiusUnitsEnum { + // The unit of radius distance in location group (e.g. MILES) + enum LocationGroupRadiusUnits { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Meters + METERS = 2; + + // Miles + MILES = 3; + + // Milli Miles + MILLI_MILES = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/location_placeholder_field.proto b/google/ads/googleads/v10/enums/location_placeholder_field.proto new file mode 100644 index 000000000..bfc974653 --- /dev/null +++ b/google/ads/googleads/v10/enums/location_placeholder_field.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocationPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Location placeholder fields. + +// Values for Location placeholder fields. +message LocationPlaceholderFieldEnum { + // Possible values for Location placeholder fields. + enum LocationPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The name of the business. + BUSINESS_NAME = 2; + + // Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_1 = 3; + + // Data Type: STRING. Line 2 of the business address. + ADDRESS_LINE_2 = 4; + + // Data Type: STRING. City of the business address. + CITY = 5; + + // Data Type: STRING. Province of the business address. + PROVINCE = 6; + + // Data Type: STRING. Postal code of the business address. + POSTAL_CODE = 7; + + // Data Type: STRING. Country code of the business address. + COUNTRY_CODE = 8; + + // Data Type: STRING. Phone number of the business. + PHONE_NUMBER = 9; + } + + +} diff --git a/google/ads/googleads/v10/enums/location_source_type.proto b/google/ads/googleads/v10/enums/location_source_type.proto new file mode 100644 index 000000000..e46671e80 --- /dev/null +++ b/google/ads/googleads/v10/enums/location_source_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocationSourceTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing location source types. + +// Used to distinguish the location source type. +message LocationSourceTypeEnum { + // The possible types of a location source. + enum LocationSourceType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Locations associated with the customer's linked Business Profile. + GOOGLE_MY_BUSINESS = 2; + + // Affiliate (chain) store locations. For example, Best Buy store locations. + AFFILIATE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/manager_link_status.proto b/google/ads/googleads/v10/enums/manager_link_status.proto new file mode 100644 index 000000000..cd6ceb07e --- /dev/null +++ b/google/ads/googleads/v10/enums/manager_link_status.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ManagerLinkStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing possible status of a manager and client link. +message ManagerLinkStatusEnum { + // Possible statuses of a link. + enum ManagerLinkStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Indicates current in-effect relationship + ACTIVE = 2; + + // Indicates terminated relationship + INACTIVE = 3; + + // Indicates relationship has been requested by manager, but the client + // hasn't accepted yet. + PENDING = 4; + + // Relationship was requested by the manager, but the client has refused. + REFUSED = 5; + + // Indicates relationship has been requested by manager, but manager + // canceled it. + CANCELED = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/matching_function_context_type.proto b/google/ads/googleads/v10/enums/matching_function_context_type.proto new file mode 100644 index 000000000..31c0a2441 --- /dev/null +++ b/google/ads/googleads/v10/enums/matching_function_context_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MatchingFunctionContextTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing matching function context types. + +// Container for context types for an operand in a matching function. +message MatchingFunctionContextTypeEnum { + // Possible context types for an operand in a matching function. + enum MatchingFunctionContextType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item id in the request context. + FEED_ITEM_ID = 2; + + // The device being used (possible values are 'Desktop' or 'Mobile'). + DEVICE_NAME = 3; + + // Feed item set id in the request context. + FEED_ITEM_SET_ID = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/matching_function_operator.proto b/google/ads/googleads/v10/enums/matching_function_operator.proto new file mode 100644 index 000000000..cebe3e656 --- /dev/null +++ b/google/ads/googleads/v10/enums/matching_function_operator.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MatchingFunctionOperatorProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing matching function operators. + +// Container for enum describing matching function operator. +message MatchingFunctionOperatorEnum { + // Possible operators in a matching function. + enum MatchingFunctionOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The IN operator. + IN = 2; + + // The IDENTITY operator. + IDENTITY = 3; + + // The EQUALS operator + EQUALS = 4; + + // Operator that takes two or more operands that are of type + // FunctionOperand and checks that all the operands evaluate to true. + // For functions related to ad formats, all the operands must be in + // left_operands. + AND = 5; + + // Operator that returns true if the elements in left_operands contain any + // of the elements in right_operands. Otherwise, return false. The + // right_operands must contain at least 1 and no more than 3 + // ConstantOperands. + CONTAINS_ANY = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/media_type.proto b/google/ads/googleads/v10/enums/media_type.proto new file mode 100644 index 000000000..fa724f3e6 --- /dev/null +++ b/google/ads/googleads/v10/enums/media_type.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MediaTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing media types. + +// Container for enum describing the types of media. +message MediaTypeEnum { + // The type of media. + enum MediaType { + // The media type has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Static image, used for image ad. + IMAGE = 2; + + // Small image, used for map ad. + ICON = 3; + + // ZIP file, used in fields of template ads. + MEDIA_BUNDLE = 4; + + // Audio file. + AUDIO = 5; + + // Video file. + VIDEO = 6; + + // Animated image, such as animated GIF. + DYNAMIC_IMAGE = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/merchant_center_link_status.proto b/google/ads/googleads/v10/enums/merchant_center_link_status.proto new file mode 100644 index 000000000..01056e08d --- /dev/null +++ b/google/ads/googleads/v10/enums/merchant_center_link_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MerchantCenterLinkStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::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/google/ads/googleads/v10/enums/message_placeholder_field.proto b/google/ads/googleads/v10/enums/message_placeholder_field.proto new file mode 100644 index 000000000..e5cabec81 --- /dev/null +++ b/google/ads/googleads/v10/enums/message_placeholder_field.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MessagePlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Message placeholder fields. + +// Values for Message placeholder fields. +message MessagePlaceholderFieldEnum { + // Possible values for Message placeholder fields. + enum MessagePlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The name of your business. + BUSINESS_NAME = 2; + + // Data Type: STRING. Country code of phone number. + COUNTRY_CODE = 3; + + // Data Type: STRING. A phone number that's capable of sending and receiving + // text messages. + PHONE_NUMBER = 4; + + // Data Type: STRING. The text that will go in your click-to-message ad. + MESSAGE_EXTENSION_TEXT = 5; + + // Data Type: STRING. The message text automatically shows in people's + // messaging apps when they tap to send you a message. + MESSAGE_TEXT = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/mime_type.proto b/google/ads/googleads/v10/enums/mime_type.proto new file mode 100644 index 000000000..641dc3b8b --- /dev/null +++ b/google/ads/googleads/v10/enums/mime_type.proto @@ -0,0 +1,80 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MimeTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing mime types. + +// Container for enum describing the mime types. +message MimeTypeEnum { + // The mime type + enum MimeType { + // The mime type has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // MIME type of image/jpeg. + IMAGE_JPEG = 2; + + // MIME type of image/gif. + IMAGE_GIF = 3; + + // MIME type of image/png. + IMAGE_PNG = 4; + + // MIME type of application/x-shockwave-flash. + FLASH = 5; + + // MIME type of text/html. + TEXT_HTML = 6; + + // MIME type of application/pdf. + PDF = 7; + + // MIME type of application/msword. + MSWORD = 8; + + // MIME type of application/vnd.ms-excel. + MSEXCEL = 9; + + // MIME type of application/rtf. + RTF = 10; + + // MIME type of audio/wav. + AUDIO_WAV = 11; + + // MIME type of audio/mp3. + AUDIO_MP3 = 12; + + // MIME type of application/x-html5-ad-zip. + HTML5_AD_ZIP = 13; + } + + +} diff --git a/google/ads/googleads/v10/enums/minute_of_hour.proto b/google/ads/googleads/v10/enums/minute_of_hour.proto new file mode 100644 index 000000000..51ae76b99 --- /dev/null +++ b/google/ads/googleads/v10/enums/minute_of_hour.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MinuteOfHourProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing days of week. + +// Container for enumeration of quarter-hours. +message MinuteOfHourEnum { + // Enumerates of quarter-hours. E.g. "FIFTEEN" + enum MinuteOfHour { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Zero minutes past the hour. + ZERO = 2; + + // Fifteen minutes past the hour. + FIFTEEN = 3; + + // Thirty minutes past the hour. + THIRTY = 4; + + // Forty-five minutes past the hour. + FORTY_FIVE = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/mobile_app_vendor.proto b/google/ads/googleads/v10/enums/mobile_app_vendor.proto new file mode 100644 index 000000000..33f1a9e44 --- /dev/null +++ b/google/ads/googleads/v10/enums/mobile_app_vendor.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MobileAppVendorProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing different types of mobile app vendors. +message MobileAppVendorEnum { + // The type of mobile app vendor + enum MobileAppVendor { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile app vendor for Apple app store. + APPLE_APP_STORE = 2; + + // Mobile app vendor for Google app store. + GOOGLE_APP_STORE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/mobile_device_type.proto b/google/ads/googleads/v10/enums/mobile_device_type.proto new file mode 100644 index 000000000..402b434af --- /dev/null +++ b/google/ads/googleads/v10/enums/mobile_device_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MobileDeviceTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing mobile device types. + +// Container for enum describing the types of mobile device. +message MobileDeviceTypeEnum { + // The type of mobile device. + enum MobileDeviceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile phones. + MOBILE = 2; + + // Tablets. + TABLET = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/month_of_year.proto b/google/ads/googleads/v10/enums/month_of_year.proto new file mode 100644 index 000000000..bd6bbaed2 --- /dev/null +++ b/google/ads/googleads/v10/enums/month_of_year.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MonthOfYearProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing days of week. + +// Container for enumeration of months of the year, e.g., "January". +message MonthOfYearEnum { + // Enumerates months of the year, e.g., "January". + enum MonthOfYear { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // January. + JANUARY = 2; + + // February. + FEBRUARY = 3; + + // March. + MARCH = 4; + + // April. + APRIL = 5; + + // May. + MAY = 6; + + // June. + JUNE = 7; + + // July. + JULY = 8; + + // August. + AUGUST = 9; + + // September. + SEPTEMBER = 10; + + // October. + OCTOBER = 11; + + // November. + NOVEMBER = 12; + + // December. + DECEMBER = 13; + } + + +} diff --git a/google/ads/googleads/v10/enums/negative_geo_target_type.proto b/google/ads/googleads/v10/enums/negative_geo_target_type.proto new file mode 100644 index 000000000..434e76d79 --- /dev/null +++ b/google/ads/googleads/v10/enums/negative_geo_target_type.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "NegativeGeoTargetTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing negative geo target types. + +// Container for enum describing possible negative geo target types. +message NegativeGeoTargetTypeEnum { + // The possible negative geo target types. + enum NegativeGeoTargetType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Specifies that a user is excluded from seeing the ad if they + // are in, or show interest in, advertiser's excluded locations. + PRESENCE_OR_INTEREST = 4; + + // Specifies that a user is excluded from seeing the ad if they + // are in advertiser's excluded locations. + PRESENCE = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/offline_user_data_job_failure_reason.proto b/google/ads/googleads/v10/enums/offline_user_data_job_failure_reason.proto new file mode 100644 index 000000000..1607d4b30 --- /dev/null +++ b/google/ads/googleads/v10/enums/offline_user_data_job_failure_reason.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobFailureReasonProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing offline user data job failure reasons. + +// Container for enum describing reasons why an offline user data job +// failed to be processed. +message OfflineUserDataJobFailureReasonEnum { + // The failure reason of an offline user data job. + enum OfflineUserDataJobFailureReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The matched transactions are insufficient. + INSUFFICIENT_MATCHED_TRANSACTIONS = 2; + + // The uploaded transactions are insufficient. + INSUFFICIENT_TRANSACTIONS = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/offline_user_data_job_match_rate_range.proto b/google/ads/googleads/v10/enums/offline_user_data_job_match_rate_range.proto new file mode 100644 index 000000000..98cc0a882 --- /dev/null +++ b/google/ads/googleads/v10/enums/offline_user_data_job_match_rate_range.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobMatchRateRangeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing reasons match rate ranges for a customer match +// list upload. +message OfflineUserDataJobMatchRateRangeEnum { + // The match rate range of an offline user data job. + enum OfflineUserDataJobMatchRateRange { + // Not specified. + UNSPECIFIED = 0; + + // Default value for match rate range. + UNKNOWN = 1; + + // Match rate range for offline data upload entity is between 0% and 19%. + MATCH_RANGE_LESS_THAN_20 = 2; + + // Match rate range for offline data upload entity is between 20% and 30%. + MATCH_RANGE_20_TO_30 = 3; + + // Match rate range for offline data upload entity is between 31% and 40%. + MATCH_RANGE_31_TO_40 = 4; + + // Match rate range for offline data upload entity is between 41% and 50%. + MATCH_RANGE_41_TO_50 = 5; + + // Match rate range for offline data upload entity is between 51% and 60%. + MATCH_RANGE_51_TO_60 = 6; + + // Match rate range for offline data upload entity is between 61% and 70%. + MATCH_RANGE_61_TO_70 = 7; + + // Match rate range for offline data upload entity is between 71% and 80%. + MATCH_RANGE_71_TO_80 = 8; + + // Match rate range for offline data upload entity is between 81% and 90%. + MATCH_RANGE_81_TO_90 = 9; + + // Match rate range for offline data upload entity more than or equal to + // 91%. + MATCH_RANGE_91_TO_100 = 10; + } + + +} diff --git a/google/ads/googleads/v10/enums/offline_user_data_job_status.proto b/google/ads/googleads/v10/enums/offline_user_data_job_status.proto new file mode 100644 index 000000000..1df6dfa6d --- /dev/null +++ b/google/ads/googleads/v10/enums/offline_user_data_job_status.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing offline user data job status. + +// Container for enum describing status of an offline user data job. +message OfflineUserDataJobStatusEnum { + // The status of an offline user data job. + enum OfflineUserDataJobStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The job has been successfully created and pending for uploading. + PENDING = 2; + + // Upload(s) have been accepted and data is being processed. + RUNNING = 3; + + // Uploaded data has been successfully processed. + SUCCESS = 4; + + // Uploaded data has failed to be processed. + FAILED = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/offline_user_data_job_type.proto b/google/ads/googleads/v10/enums/offline_user_data_job_type.proto new file mode 100644 index 000000000..d6893c3f8 --- /dev/null +++ b/google/ads/googleads/v10/enums/offline_user_data_job_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing offline user data job types. + +// Container for enum describing types of an offline user data job. +message OfflineUserDataJobTypeEnum { + // The type of an offline user data job. + enum OfflineUserDataJobType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Store Sales Direct data for self service. + STORE_SALES_UPLOAD_FIRST_PARTY = 2; + + // Store Sales Direct data for third party. + STORE_SALES_UPLOAD_THIRD_PARTY = 3; + + // Customer Match user list data. + CUSTOMER_MATCH_USER_LIST = 4; + + // Customer Match with attribute data. + CUSTOMER_MATCH_WITH_ATTRIBUTES = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/operating_system_version_operator_type.proto b/google/ads/googleads/v10/enums/operating_system_version_operator_type.proto new file mode 100644 index 000000000..d9435aa90 --- /dev/null +++ b/google/ads/googleads/v10/enums/operating_system_version_operator_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OperatingSystemVersionOperatorTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing operating system version operator types. + +// Container for enum describing the type of OS operators. +message OperatingSystemVersionOperatorTypeEnum { + // The type of operating system version. + enum OperatingSystemVersionOperatorType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Equals to the specified version. + EQUALS_TO = 2; + + // Greater than or equals to the specified version. + GREATER_THAN_EQUALS_TO = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/optimization_goal_type.proto b/google/ads/googleads/v10/enums/optimization_goal_type.proto new file mode 100644 index 000000000..85388c944 --- /dev/null +++ b/google/ads/googleads/v10/enums/optimization_goal_type.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OptimizationGoalTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing optimization goal type. + +// Container for enum describing the type of optimization goal. +message OptimizationGoalTypeEnum { + // The type of optimization goal + enum OptimizationGoalType { + // Not specified. + UNSPECIFIED = 0; + + // Used as a return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Optimize for call clicks. Call click conversions are times people + // selected 'Call' to contact a store after viewing an ad. + CALL_CLICKS = 2; + + // Optimize for driving directions. Driving directions conversions are + // times people selected 'Get directions' to navigate to a store after + // viewing an ad. + DRIVING_DIRECTIONS = 3; + + // Optimize for pre-registration. Pre-registration conversions are the + // number of pre-registration signups to receive a notification when the app + // is released. + APP_PRE_REGISTRATION = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/parental_status_type.proto b/google/ads/googleads/v10/enums/parental_status_type.proto new file mode 100644 index 000000000..ef499d217 --- /dev/null +++ b/google/ads/googleads/v10/enums/parental_status_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ParentalStatusTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing parenal status types. + +// Container for enum describing the type of demographic parental statuses. +message ParentalStatusTypeEnum { + // The type of parental statuses (e.g. not a parent). + enum ParentalStatusType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Parent. + PARENT = 300; + + // Not a parent. + NOT_A_PARENT = 301; + + // Undetermined parental status. + UNDETERMINED = 302; + } + + +} diff --git a/google/ads/googleads/v10/enums/payment_mode.proto b/google/ads/googleads/v10/enums/payment_mode.proto new file mode 100644 index 000000000..9e162d79a --- /dev/null +++ b/google/ads/googleads/v10/enums/payment_mode.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PaymentModeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing payment modes. + +// Container for enum describing possible payment modes. +message PaymentModeEnum { + // Enum describing possible payment modes. + enum PaymentMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Pay per click. + CLICKS = 4; + + // Pay per conversion value. This mode is only supported by campaigns with + // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and + // BudgetType.HOTEL_ADS_COMMISSION. + CONVERSION_VALUE = 5; + + // Pay per conversion. This mode is only supported by campaigns with + // AdvertisingChannelType.DISPLAY (excluding + // AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA, + // and BudgetType.FIXED_CPA. The customer must also be eligible for this + // mode. See Customer.eligibility_failure_reasons for details. + CONVERSIONS = 6; + + // Pay per guest stay value. This mode is only supported by campaigns with + // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and + // BudgetType.STANDARD. + GUEST_STAY = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/placeholder_type.proto b/google/ads/googleads/v10/enums/placeholder_type.proto new file mode 100644 index 000000000..c3759fa67 --- /dev/null +++ b/google/ads/googleads/v10/enums/placeholder_type.proto @@ -0,0 +1,122 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PlaceholderTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing feed placeholder types. + +// Container for enum describing possible placeholder types for a feed mapping. +message PlaceholderTypeEnum { + // Possible placeholder types for a feed mapping. + enum PlaceholderType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Lets you show links in your ad to pages from your website, including the + // main landing page. + SITELINK = 2; + + // Lets you attach a phone number to an ad, allowing customers to call + // directly from the ad. + CALL = 3; + + // Lets you provide users with a link that points to a mobile app in + // addition to a website. + APP = 4; + + // Lets you show locations of businesses from your Business Profile + // in your ad. This helps people find your locations by showing your + // ads with your address, a map to your location, or the distance to your + // business. This extension type is useful to draw customers to your + // brick-and-mortar location. + LOCATION = 5; + + // If you sell your product through retail chains, affiliate location + // extensions let you show nearby stores that carry your products. + AFFILIATE_LOCATION = 6; + + // Lets you include additional text with your search ads that provide + // detailed information about your business, including products and services + // you offer. Callouts appear in ads at the top and bottom of Google search + // results. + CALLOUT = 7; + + // Lets you add more info to your ad, specific to some predefined categories + // such as types, brands, styles, etc. A minimum of 3 text (SNIPPETS) values + // are required. + STRUCTURED_SNIPPET = 8; + + // Allows users to see your ad, click an icon, and contact you directly by + // text message. With one tap on your ad, people can contact you to book an + // appointment, get a quote, ask for information, or request a service. + MESSAGE = 9; + + // Lets you display prices for a list of items along with your ads. A price + // feed is composed of three to eight price table rows. + PRICE = 10; + + // Allows you to highlight sales and other promotions that let users see how + // they can save by buying now. + PROMOTION = 11; + + // Lets you dynamically inject custom data into the title and description + // of your ads. + AD_CUSTOMIZER = 12; + + // Indicates that this feed is for education dynamic remarketing. + DYNAMIC_EDUCATION = 13; + + // Indicates that this feed is for flight dynamic remarketing. + DYNAMIC_FLIGHT = 14; + + // Indicates that this feed is for a custom dynamic remarketing type. Use + // this only if the other business types don't apply to your products or + // services. + DYNAMIC_CUSTOM = 15; + + // Indicates that this feed is for hotels and rentals dynamic remarketing. + DYNAMIC_HOTEL = 16; + + // Indicates that this feed is for real estate dynamic remarketing. + DYNAMIC_REAL_ESTATE = 17; + + // Indicates that this feed is for travel dynamic remarketing. + DYNAMIC_TRAVEL = 18; + + // Indicates that this feed is for local deals dynamic remarketing. + DYNAMIC_LOCAL = 19; + + // Indicates that this feed is for job dynamic remarketing. + DYNAMIC_JOB = 20; + + // Lets you attach an image to an ad. + IMAGE = 21; + } + + +} diff --git a/google/ads/googleads/v10/enums/placement_type.proto b/google/ads/googleads/v10/enums/placement_type.proto new file mode 100644 index 000000000..e89e45cd7 --- /dev/null +++ b/google/ads/googleads/v10/enums/placement_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PlacementTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing placement types. + +// Container for enum describing possible placement types. +message PlacementTypeEnum { + // Possible placement types for a feed mapping. + enum PlacementType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Websites(e.g. 'www.flowers4sale.com'). + WEBSITE = 2; + + // Mobile application categories(e.g. 'Games'). + MOBILE_APP_CATEGORY = 3; + + // mobile applications(e.g. 'mobileapp::2-com.whatsthewordanswers'). + MOBILE_APPLICATION = 4; + + // YouTube videos(e.g. 'youtube.com/video/wtLJPvx7-ys'). + YOUTUBE_VIDEO = 5; + + // YouTube channels(e.g. 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ'). + YOUTUBE_CHANNEL = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/policy_approval_status.proto b/google/ads/googleads/v10/enums/policy_approval_status.proto new file mode 100644 index 000000000..1bf5723d3 --- /dev/null +++ b/google/ads/googleads/v10/enums/policy_approval_status.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyApprovalStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing policy approval statuses. + +// Container for enum describing possible policy approval statuses. +message PolicyApprovalStatusEnum { + // The possible policy approval statuses. When there are several approval + // statuses available the most severe one will be used. The order of severity + // is DISAPPROVED, AREA_OF_INTEREST_ONLY, APPROVED_LIMITED and APPROVED. + enum PolicyApprovalStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Will not serve. + DISAPPROVED = 2; + + // Serves with restrictions. + APPROVED_LIMITED = 3; + + // Serves without restrictions. + APPROVED = 4; + + // Will not serve in targeted countries, but may serve for users who are + // searching for information about the targeted countries. + AREA_OF_INTEREST_ONLY = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/policy_review_status.proto b/google/ads/googleads/v10/enums/policy_review_status.proto new file mode 100644 index 000000000..3475e4fa5 --- /dev/null +++ b/google/ads/googleads/v10/enums/policy_review_status.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyReviewStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing policy review statuses. + +// Container for enum describing possible policy review statuses. +message PolicyReviewStatusEnum { + // The possible policy review statuses. + enum PolicyReviewStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Currently under review. + REVIEW_IN_PROGRESS = 2; + + // Primary review complete. Other reviews may be continuing. + REVIEWED = 3; + + // The resource has been resubmitted for approval or its policy decision has + // been appealed. + UNDER_APPEAL = 4; + + // The resource is eligible and may be serving but could still undergo + // further review. + ELIGIBLE_MAY_SERVE = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/policy_topic_entry_type.proto b/google/ads/googleads/v10/enums/policy_topic_entry_type.proto new file mode 100644 index 000000000..1a8a0a21c --- /dev/null +++ b/google/ads/googleads/v10/enums/policy_topic_entry_type.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyTopicEntryTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing policy topic entry types. + +// Container for enum describing possible policy topic entry types. +message PolicyTopicEntryTypeEnum { + // The possible policy topic entry types. + enum PolicyTopicEntryType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The resource will not be served. + PROHIBITED = 2; + + // The resource will not be served under some circumstances. + LIMITED = 4; + + // The resource cannot serve at all because of the current targeting + // criteria. + FULLY_LIMITED = 8; + + // May be of interest, but does not limit how the resource is served. + DESCRIPTIVE = 5; + + // Could increase coverage beyond normal. + BROADENING = 6; + + // Constrained for all targeted countries, but may serve in other countries + // through area of interest. + AREA_OF_INTEREST_ONLY = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/policy_topic_evidence_destination_mismatch_url_type.proto b/google/ads/googleads/v10/enums/policy_topic_evidence_destination_mismatch_url_type.proto new file mode 100644 index 000000000..221d7b25b --- /dev/null +++ b/google/ads/googleads/v10/enums/policy_topic_evidence_destination_mismatch_url_type.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyTopicEvidenceDestinationMismatchUrlTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing policy topic evidence destination mismatch url types. + +// Container for enum describing possible policy topic evidence destination +// mismatch url types. +message PolicyTopicEvidenceDestinationMismatchUrlTypeEnum { + // The possible policy topic evidence destination mismatch url types. + enum PolicyTopicEvidenceDestinationMismatchUrlType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The display url. + DISPLAY_URL = 2; + + // The final url. + FINAL_URL = 3; + + // The final mobile url. + FINAL_MOBILE_URL = 4; + + // The tracking url template, with substituted desktop url. + TRACKING_URL = 5; + + // The tracking url template, with substituted mobile url. + MOBILE_TRACKING_URL = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_device.proto b/google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_device.proto new file mode 100644 index 000000000..65eee4b5e --- /dev/null +++ b/google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_device.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDeviceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing device of destination not working policy topic +// evidence. + +// Container for enum describing possible policy topic evidence destination not +// working devices. +message PolicyTopicEvidenceDestinationNotWorkingDeviceEnum { + // The possible policy topic evidence destination not working devices. + enum PolicyTopicEvidenceDestinationNotWorkingDevice { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Landing page doesn't work on desktop device. + DESKTOP = 2; + + // Landing page doesn't work on Android device. + ANDROID = 3; + + // Landing page doesn't work on iOS device. + IOS = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto b/google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto new file mode 100644 index 000000000..89ca8e40e --- /dev/null +++ b/google/ads/googleads/v10/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing DNS error types of destination not working policy topic +// evidence. + +// Container for enum describing possible policy topic evidence destination not +// working DNS error types. +message PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum { + // The possible policy topic evidence destination not working DNS error types. + enum PolicyTopicEvidenceDestinationNotWorkingDnsErrorType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Host name not found in DNS when fetching landing page. + HOSTNAME_NOT_FOUND = 2; + + // Google internal crawler issue when communicating with DNS. This error + // doesn't mean the landing page doesn't work. Google will recrawl the + // landing page. + GOOGLE_CRAWLER_DNS_ISSUE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/positive_geo_target_type.proto b/google/ads/googleads/v10/enums/positive_geo_target_type.proto new file mode 100644 index 000000000..b687a7dc8 --- /dev/null +++ b/google/ads/googleads/v10/enums/positive_geo_target_type.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PositiveGeoTargetTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing positive geo target types. + +// Container for enum describing possible positive geo target types. +message PositiveGeoTargetTypeEnum { + // The possible positive geo target types. + enum PositiveGeoTargetType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Specifies that an ad is triggered if the user is in, + // or shows interest in, advertiser's targeted locations. + PRESENCE_OR_INTEREST = 5; + + // Specifies that an ad is triggered if the user + // searches for advertiser's targeted locations. + // This can only be used with Search and standard + // Shopping campaigns. + SEARCH_INTEREST = 6; + + // Specifies that an ad is triggered if the user is in + // or regularly in advertiser's targeted locations. + PRESENCE = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/preferred_content_type.proto b/google/ads/googleads/v10/enums/preferred_content_type.proto new file mode 100644 index 000000000..fb7650370 --- /dev/null +++ b/google/ads/googleads/v10/enums/preferred_content_type.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PreferredContentTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing preferred content criterion type. + +// Container for enumeration of preferred content criterion type. +message PreferredContentTypeEnum { + // Enumerates preferred content criterion type. + enum PreferredContentType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Represents top content on YouTube. + YOUTUBE_TOP_CONTENT = 400; + } + + +} diff --git a/google/ads/googleads/v10/enums/price_extension_price_qualifier.proto b/google/ads/googleads/v10/enums/price_extension_price_qualifier.proto new file mode 100644 index 000000000..a041d4692 --- /dev/null +++ b/google/ads/googleads/v10/enums/price_extension_price_qualifier.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PriceExtensionPriceQualifierProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing price extension price qualifier type. + +// Container for enum describing a price extension price qualifier. +message PriceExtensionPriceQualifierEnum { + // Enums of price extension price qualifier. + enum PriceExtensionPriceQualifier { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // 'From' qualifier for the price. + FROM = 2; + + // 'Up to' qualifier for the price. + UP_TO = 3; + + // 'Average' qualifier for the price. + AVERAGE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/price_extension_price_unit.proto b/google/ads/googleads/v10/enums/price_extension_price_unit.proto new file mode 100644 index 000000000..1ae283ded --- /dev/null +++ b/google/ads/googleads/v10/enums/price_extension_price_unit.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PriceExtensionPriceUnitProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing price extension price unit. + +// Container for enum describing price extension price unit. +message PriceExtensionPriceUnitEnum { + // Price extension price unit. + enum PriceExtensionPriceUnit { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Per hour. + PER_HOUR = 2; + + // Per day. + PER_DAY = 3; + + // Per week. + PER_WEEK = 4; + + // Per month. + PER_MONTH = 5; + + // Per year. + PER_YEAR = 6; + + // Per night. + PER_NIGHT = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/price_extension_type.proto b/google/ads/googleads/v10/enums/price_extension_type.proto new file mode 100644 index 000000000..938ad7aa4 --- /dev/null +++ b/google/ads/googleads/v10/enums/price_extension_type.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PriceExtensionTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing price extension type. + +// Container for enum describing types for a price extension. +message PriceExtensionTypeEnum { + // Price extension type. + enum PriceExtensionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The type for showing a list of brands. + BRANDS = 2; + + // The type for showing a list of events. + EVENTS = 3; + + // The type for showing locations relevant to your business. + LOCATIONS = 4; + + // The type for showing sub-regions or districts within a city or region. + NEIGHBORHOODS = 5; + + // The type for showing a collection of product categories. + PRODUCT_CATEGORIES = 6; + + // The type for showing a collection of related product tiers. + PRODUCT_TIERS = 7; + + // The type for showing a collection of services offered by your business. + SERVICES = 8; + + // The type for showing a collection of service categories. + SERVICE_CATEGORIES = 9; + + // The type for showing a collection of related service tiers. + SERVICE_TIERS = 10; + } + + +} diff --git a/google/ads/googleads/v10/enums/price_placeholder_field.proto b/google/ads/googleads/v10/enums/price_placeholder_field.proto new file mode 100644 index 000000000..86b891ea7 --- /dev/null +++ b/google/ads/googleads/v10/enums/price_placeholder_field.proto @@ -0,0 +1,238 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PricePlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Price placeholder fields. + +// Values for Price placeholder fields. +message PricePlaceholderFieldEnum { + // Possible values for Price placeholder fields. + enum PricePlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The type of your price feed. Must match one of the + // predefined price feed type exactly. + TYPE = 2; + + // Data Type: STRING. The qualifier of each price. Must match one of the + // predefined price qualifiers exactly. + PRICE_QUALIFIER = 3; + + // Data Type: URL. Tracking template for the price feed when using Upgraded + // URLs. + TRACKING_TEMPLATE = 4; + + // Data Type: STRING. Language of the price feed. Must match one of the + // available available locale codes exactly. + LANGUAGE = 5; + + // Data Type: STRING. Final URL suffix for the price feed when using + // parallel tracking. + FINAL_URL_SUFFIX = 6; + + // Data Type: STRING. The header of item 1 of the table. + ITEM_1_HEADER = 100; + + // Data Type: STRING. The description of item 1 of the table. + ITEM_1_DESCRIPTION = 101; + + // Data Type: MONEY. The price (money with currency) of item 1 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + ITEM_1_PRICE = 102; + + // Data Type: STRING. The price unit of item 1 of the table. Must match one + // of the predefined price units. + ITEM_1_UNIT = 103; + + // Data Type: URL_LIST. The final URLs of item 1 of the table when using + // Upgraded URLs. + ITEM_1_FINAL_URLS = 104; + + // Data Type: URL_LIST. The final mobile URLs of item 1 of the table when + // using Upgraded URLs. + ITEM_1_FINAL_MOBILE_URLS = 105; + + // Data Type: STRING. The header of item 2 of the table. + ITEM_2_HEADER = 200; + + // Data Type: STRING. The description of item 2 of the table. + ITEM_2_DESCRIPTION = 201; + + // Data Type: MONEY. The price (money with currency) of item 2 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + ITEM_2_PRICE = 202; + + // Data Type: STRING. The price unit of item 2 of the table. Must match one + // of the predefined price units. + ITEM_2_UNIT = 203; + + // Data Type: URL_LIST. The final URLs of item 2 of the table when using + // Upgraded URLs. + ITEM_2_FINAL_URLS = 204; + + // Data Type: URL_LIST. The final mobile URLs of item 2 of the table when + // using Upgraded URLs. + ITEM_2_FINAL_MOBILE_URLS = 205; + + // Data Type: STRING. The header of item 3 of the table. + ITEM_3_HEADER = 300; + + // Data Type: STRING. The description of item 3 of the table. + ITEM_3_DESCRIPTION = 301; + + // Data Type: MONEY. The price (money with currency) of item 3 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + ITEM_3_PRICE = 302; + + // Data Type: STRING. The price unit of item 3 of the table. Must match one + // of the predefined price units. + ITEM_3_UNIT = 303; + + // Data Type: URL_LIST. The final URLs of item 3 of the table when using + // Upgraded URLs. + ITEM_3_FINAL_URLS = 304; + + // Data Type: URL_LIST. The final mobile URLs of item 3 of the table when + // using Upgraded URLs. + ITEM_3_FINAL_MOBILE_URLS = 305; + + // Data Type: STRING. The header of item 4 of the table. + ITEM_4_HEADER = 400; + + // Data Type: STRING. The description of item 4 of the table. + ITEM_4_DESCRIPTION = 401; + + // Data Type: MONEY. The price (money with currency) of item 4 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + ITEM_4_PRICE = 402; + + // Data Type: STRING. The price unit of item 4 of the table. Must match one + // of the predefined price units. + ITEM_4_UNIT = 403; + + // Data Type: URL_LIST. The final URLs of item 4 of the table when using + // Upgraded URLs. + ITEM_4_FINAL_URLS = 404; + + // Data Type: URL_LIST. The final mobile URLs of item 4 of the table when + // using Upgraded URLs. + ITEM_4_FINAL_MOBILE_URLS = 405; + + // Data Type: STRING. The header of item 5 of the table. + ITEM_5_HEADER = 500; + + // Data Type: STRING. The description of item 5 of the table. + ITEM_5_DESCRIPTION = 501; + + // Data Type: MONEY. The price (money with currency) of item 5 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + ITEM_5_PRICE = 502; + + // Data Type: STRING. The price unit of item 5 of the table. Must match one + // of the predefined price units. + ITEM_5_UNIT = 503; + + // Data Type: URL_LIST. The final URLs of item 5 of the table when using + // Upgraded URLs. + ITEM_5_FINAL_URLS = 504; + + // Data Type: URL_LIST. The final mobile URLs of item 5 of the table when + // using Upgraded URLs. + ITEM_5_FINAL_MOBILE_URLS = 505; + + // Data Type: STRING. The header of item 6 of the table. + ITEM_6_HEADER = 600; + + // Data Type: STRING. The description of item 6 of the table. + ITEM_6_DESCRIPTION = 601; + + // Data Type: MONEY. The price (money with currency) of item 6 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + ITEM_6_PRICE = 602; + + // Data Type: STRING. The price unit of item 6 of the table. Must match one + // of the predefined price units. + ITEM_6_UNIT = 603; + + // Data Type: URL_LIST. The final URLs of item 6 of the table when using + // Upgraded URLs. + ITEM_6_FINAL_URLS = 604; + + // Data Type: URL_LIST. The final mobile URLs of item 6 of the table when + // using Upgraded URLs. + ITEM_6_FINAL_MOBILE_URLS = 605; + + // Data Type: STRING. The header of item 7 of the table. + ITEM_7_HEADER = 700; + + // Data Type: STRING. The description of item 7 of the table. + ITEM_7_DESCRIPTION = 701; + + // Data Type: MONEY. The price (money with currency) of item 7 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + ITEM_7_PRICE = 702; + + // Data Type: STRING. The price unit of item 7 of the table. Must match one + // of the predefined price units. + ITEM_7_UNIT = 703; + + // Data Type: URL_LIST. The final URLs of item 7 of the table when using + // Upgraded URLs. + ITEM_7_FINAL_URLS = 704; + + // Data Type: URL_LIST. The final mobile URLs of item 7 of the table when + // using Upgraded URLs. + ITEM_7_FINAL_MOBILE_URLS = 705; + + // Data Type: STRING. The header of item 8 of the table. + ITEM_8_HEADER = 800; + + // Data Type: STRING. The description of item 8 of the table. + ITEM_8_DESCRIPTION = 801; + + // Data Type: MONEY. The price (money with currency) of item 8 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + ITEM_8_PRICE = 802; + + // Data Type: STRING. The price unit of item 8 of the table. Must match one + // of the predefined price units. + ITEM_8_UNIT = 803; + + // Data Type: URL_LIST. The final URLs of item 8 of the table when using + // Upgraded URLs. + ITEM_8_FINAL_URLS = 804; + + // Data Type: URL_LIST. The final mobile URLs of item 8 of the table when + // using Upgraded URLs. + ITEM_8_FINAL_MOBILE_URLS = 805; + } + + +} diff --git a/google/ads/googleads/v10/enums/product_bidding_category_level.proto b/google/ads/googleads/v10/enums/product_bidding_category_level.proto new file mode 100644 index 000000000..cddc8334b --- /dev/null +++ b/google/ads/googleads/v10/enums/product_bidding_category_level.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductBiddingCategoryLevelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Level of a product bidding category. +message ProductBiddingCategoryLevelEnum { + // Enum describing the level of the product bidding category. + enum ProductBiddingCategoryLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Level 1. + LEVEL1 = 2; + + // Level 2. + LEVEL2 = 3; + + // Level 3. + LEVEL3 = 4; + + // Level 4. + LEVEL4 = 5; + + // Level 5. + LEVEL5 = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/product_bidding_category_status.proto b/google/ads/googleads/v10/enums/product_bidding_category_status.proto new file mode 100644 index 000000000..66122b75c --- /dev/null +++ b/google/ads/googleads/v10/enums/product_bidding_category_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductBiddingCategoryStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::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 { + // 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 obsolete. Used only for reporting purposes. + OBSOLETE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/product_channel.proto b/google/ads/googleads/v10/enums/product_channel.proto new file mode 100644 index 000000000..0e5273c3a --- /dev/null +++ b/google/ads/googleads/v10/enums/product_channel.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductChannelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing bidding schemes. + +// Locality of a product offer. +message ProductChannelEnum { + // Enum describing the locality of a product offer. + enum ProductChannel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The item is sold online. + ONLINE = 2; + + // The item is sold in local stores. + LOCAL = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/product_channel_exclusivity.proto b/google/ads/googleads/v10/enums/product_channel_exclusivity.proto new file mode 100644 index 000000000..1538a9b6d --- /dev/null +++ b/google/ads/googleads/v10/enums/product_channel_exclusivity.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductChannelExclusivityProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing bidding schemes. + +// Availability of a product offer. +message ProductChannelExclusivityEnum { + // Enum describing the availability of a product offer. + enum ProductChannelExclusivity { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The item is sold through one channel only, either local stores or online + // as indicated by its ProductChannel. + SINGLE_CHANNEL = 2; + + // The item is matched to its online or local stores counterpart, indicating + // it is available for purchase in both ShoppingProductChannels. + MULTI_CHANNEL = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/product_condition.proto b/google/ads/googleads/v10/enums/product_condition.proto new file mode 100644 index 000000000..6ea2532f7 --- /dev/null +++ b/google/ads/googleads/v10/enums/product_condition.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductConditionProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing bidding schemes. + +// Condition of a product offer. +message ProductConditionEnum { + // Enum describing the condition of a product offer. + enum ProductCondition { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The product condition is new. + NEW = 3; + + // The product condition is refurbished. + REFURBISHED = 4; + + // The product condition is used. + USED = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/product_custom_attribute_index.proto b/google/ads/googleads/v10/enums/product_custom_attribute_index.proto new file mode 100644 index 000000000..f267dfa20 --- /dev/null +++ b/google/ads/googleads/v10/enums/product_custom_attribute_index.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductCustomAttributeIndexProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing product custom attributes. + +// Container for enum describing the index of the product custom attribute. +message ProductCustomAttributeIndexEnum { + // The index of the product custom attribute. + enum ProductCustomAttributeIndex { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // First product custom attribute. + INDEX0 = 7; + + // Second product custom attribute. + INDEX1 = 8; + + // Third product custom attribute. + INDEX2 = 9; + + // Fourth product custom attribute. + INDEX3 = 10; + + // Fifth product custom attribute. + INDEX4 = 11; + } + + +} diff --git a/google/ads/googleads/v10/enums/product_type_level.proto b/google/ads/googleads/v10/enums/product_type_level.proto new file mode 100644 index 000000000..98d427675 --- /dev/null +++ b/google/ads/googleads/v10/enums/product_type_level.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductTypeLevelProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing bidding schemes. + +// Level of the type of a product offer. +message ProductTypeLevelEnum { + // Enum describing the level of the type of a product offer. + enum ProductTypeLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Level 1. + LEVEL1 = 7; + + // Level 2. + LEVEL2 = 8; + + // Level 3. + LEVEL3 = 9; + + // Level 4. + LEVEL4 = 10; + + // Level 5. + LEVEL5 = 11; + } + + +} diff --git a/google/ads/googleads/v10/enums/promotion_extension_discount_modifier.proto b/google/ads/googleads/v10/enums/promotion_extension_discount_modifier.proto new file mode 100644 index 000000000..159c592c0 --- /dev/null +++ b/google/ads/googleads/v10/enums/promotion_extension_discount_modifier.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PromotionExtensionDiscountModifierProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing promotion extension discount modifier. + +// Container for enum describing possible a promotion extension +// discount modifier. +message PromotionExtensionDiscountModifierEnum { + // A promotion extension discount modifier. + enum PromotionExtensionDiscountModifier { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // 'Up to'. + UP_TO = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/promotion_extension_occasion.proto b/google/ads/googleads/v10/enums/promotion_extension_occasion.proto new file mode 100644 index 000000000..9be881dab --- /dev/null +++ b/google/ads/googleads/v10/enums/promotion_extension_occasion.proto @@ -0,0 +1,155 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PromotionExtensionOccasionProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing promotion extension occasion. + +// Container for enum describing a promotion extension occasion. +// For more information about the occasions please check: +// https://support.google.com/google-ads/answer/7367521 +message PromotionExtensionOccasionEnum { + // A promotion extension occasion. + enum PromotionExtensionOccasion { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // New Year's. + NEW_YEARS = 2; + + // Chinese New Year. + CHINESE_NEW_YEAR = 3; + + // Valentine's Day. + VALENTINES_DAY = 4; + + // Easter. + EASTER = 5; + + // Mother's Day. + MOTHERS_DAY = 6; + + // Father's Day. + FATHERS_DAY = 7; + + // Labor Day. + LABOR_DAY = 8; + + // Back To School. + BACK_TO_SCHOOL = 9; + + // Halloween. + HALLOWEEN = 10; + + // Black Friday. + BLACK_FRIDAY = 11; + + // Cyber Monday. + CYBER_MONDAY = 12; + + // Christmas. + CHRISTMAS = 13; + + // Boxing Day. + BOXING_DAY = 14; + + // Independence Day in any country. + INDEPENDENCE_DAY = 15; + + // National Day in any country. + NATIONAL_DAY = 16; + + // End of any season. + END_OF_SEASON = 17; + + // Winter Sale. + WINTER_SALE = 18; + + // Summer sale. + SUMMER_SALE = 19; + + // Fall Sale. + FALL_SALE = 20; + + // Spring Sale. + SPRING_SALE = 21; + + // Ramadan. + RAMADAN = 22; + + // Eid al-Fitr. + EID_AL_FITR = 23; + + // Eid al-Adha. + EID_AL_ADHA = 24; + + // Singles Day. + SINGLES_DAY = 25; + + // Women's Day. + WOMENS_DAY = 26; + + // Holi. + HOLI = 27; + + // Parent's Day. + PARENTS_DAY = 28; + + // St. Nicholas Day. + ST_NICHOLAS_DAY = 29; + + // Carnival. + CARNIVAL = 30; + + // Epiphany, also known as Three Kings' Day. + EPIPHANY = 31; + + // Rosh Hashanah. + ROSH_HASHANAH = 32; + + // Passover. + PASSOVER = 33; + + // Hanukkah. + HANUKKAH = 34; + + // Diwali. + DIWALI = 35; + + // Navratri. + NAVRATRI = 36; + + // Available in Thai: Songkran. + SONGKRAN = 37; + + // Available in Japanese: Year-end Gift. + YEAR_END_GIFT = 38; + } + + +} diff --git a/google/ads/googleads/v10/enums/promotion_placeholder_field.proto b/google/ads/googleads/v10/enums/promotion_placeholder_field.proto new file mode 100644 index 000000000..b3c6354d2 --- /dev/null +++ b/google/ads/googleads/v10/enums/promotion_placeholder_field.proto @@ -0,0 +1,93 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PromotionPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Promotion placeholder fields. + +// Values for Promotion placeholder fields. +message PromotionPlaceholderFieldEnum { + // Possible values for Promotion placeholder fields. + enum PromotionPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The text that appears on the ad when the extension is + // shown. + PROMOTION_TARGET = 2; + + // Data Type: STRING. Allows you to add "up to" phrase to the promotion, + // in case you have variable promotion rates. + DISCOUNT_MODIFIER = 3; + + // Data Type: INT64. Takes a value in micros, where 1 million micros + // represents 1%, and is shown as a percentage when rendered. + PERCENT_OFF = 4; + + // Data Type: MONEY. Requires a currency and an amount of money. + MONEY_AMOUNT_OFF = 5; + + // Data Type: STRING. A string that the user enters to get the discount. + PROMOTION_CODE = 6; + + // Data Type: MONEY. A minimum spend before the user qualifies for the + // promotion. + ORDERS_OVER_AMOUNT = 7; + + // Data Type: DATE. The start date of the promotion. + PROMOTION_START = 8; + + // Data Type: DATE. The end date of the promotion. + PROMOTION_END = 9; + + // Data Type: STRING. Describes the associated event for the promotion using + // one of the PromotionExtensionOccasion enum values, for example NEW_YEARS. + OCCASION = 10; + + // Data Type: URL_LIST. Final URLs to be used in the ad when using Upgraded + // URLs. + FINAL_URLS = 11; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 12; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 13; + + // Data Type: STRING. A string represented by a language code for the + // promotion. + LANGUAGE = 14; + + // Data Type: STRING. Final URL suffix for the ad when using parallel + // tracking. + FINAL_URL_SUFFIX = 15; + } + + +} diff --git a/google/ads/googleads/v10/enums/proximity_radius_units.proto b/google/ads/googleads/v10/enums/proximity_radius_units.proto new file mode 100644 index 000000000..97c32f849 --- /dev/null +++ b/google/ads/googleads/v10/enums/proximity_radius_units.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProximityRadiusUnitsProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing proximity radius units. + +// Container for enum describing unit of radius in proximity. +message ProximityRadiusUnitsEnum { + // The unit of radius distance in proximity (e.g. MILES) + enum ProximityRadiusUnits { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Miles + MILES = 2; + + // Kilometers + KILOMETERS = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/quality_score_bucket.proto b/google/ads/googleads/v10/enums/quality_score_bucket.proto new file mode 100644 index 000000000..be3abbf22 --- /dev/null +++ b/google/ads/googleads/v10/enums/quality_score_bucket.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "QualityScoreBucketProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing quality score buckets. + +// The relative performance compared to other advertisers. +message QualityScoreBucketEnum { + // Enum listing the possible quality score buckets. + enum QualityScoreBucket { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Quality of the creative is below average. + BELOW_AVERAGE = 2; + + // Quality of the creative is average. + AVERAGE = 3; + + // Quality of the creative is above average. + ABOVE_AVERAGE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/reach_plan_ad_length.proto b/google/ads/googleads/v10/enums/reach_plan_ad_length.proto new file mode 100644 index 000000000..56c5da45c --- /dev/null +++ b/google/ads/googleads/v10/enums/reach_plan_ad_length.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanAdLengthProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing ad lengths of a plannable video ad. + +// Message describing length of a plannable video ad. +message ReachPlanAdLengthEnum { + // Possible ad length values. + enum ReachPlanAdLength { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // 6 seconds long ad. + SIX_SECONDS = 2; + + // 15 or 20 seconds long ad. + FIFTEEN_OR_TWENTY_SECONDS = 3; + + // More than 20 seconds long ad. + TWENTY_SECONDS_OR_MORE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/reach_plan_age_range.proto b/google/ads/googleads/v10/enums/reach_plan_age_range.proto new file mode 100644 index 000000000..57f02b90a --- /dev/null +++ b/google/ads/googleads/v10/enums/reach_plan_age_range.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanAgeRangeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing a plannable age range. + +// Message describing plannable age ranges. +message ReachPlanAgeRangeEnum { + // Possible plannable age range values. + enum ReachPlanAgeRange { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Between 18 and 24 years old. + AGE_RANGE_18_24 = 503001; + + // Between 18 and 34 years old. + AGE_RANGE_18_34 = 2; + + // Between 18 and 44 years old. + AGE_RANGE_18_44 = 3; + + // Between 18 and 49 years old. + AGE_RANGE_18_49 = 4; + + // Between 18 and 54 years old. + AGE_RANGE_18_54 = 5; + + // Between 18 and 64 years old. + AGE_RANGE_18_64 = 6; + + // Between 18 and 65+ years old. + AGE_RANGE_18_65_UP = 7; + + // Between 21 and 34 years old. + AGE_RANGE_21_34 = 8; + + // Between 25 and 34 years old. + AGE_RANGE_25_34 = 503002; + + // Between 25 and 44 years old. + AGE_RANGE_25_44 = 9; + + // Between 25 and 49 years old. + AGE_RANGE_25_49 = 10; + + // Between 25 and 54 years old. + AGE_RANGE_25_54 = 11; + + // Between 25 and 64 years old. + AGE_RANGE_25_64 = 12; + + // Between 25 and 65+ years old. + AGE_RANGE_25_65_UP = 13; + + // Between 35 and 44 years old. + AGE_RANGE_35_44 = 503003; + + // Between 35 and 49 years old. + AGE_RANGE_35_49 = 14; + + // Between 35 and 54 years old. + AGE_RANGE_35_54 = 15; + + // Between 35 and 64 years old. + AGE_RANGE_35_64 = 16; + + // Between 35 and 65+ years old. + AGE_RANGE_35_65_UP = 17; + + // Between 45 and 54 years old. + AGE_RANGE_45_54 = 503004; + + // Between 45 and 64 years old. + AGE_RANGE_45_64 = 18; + + // Between 45 and 65+ years old. + AGE_RANGE_45_65_UP = 19; + + // Between 50 and 65+ years old. + AGE_RANGE_50_65_UP = 20; + + // Between 55 and 64 years old. + AGE_RANGE_55_64 = 503005; + + // Between 55 and 65+ years old. + AGE_RANGE_55_65_UP = 21; + + // 65 years old and beyond. + AGE_RANGE_65_UP = 503006; + } + + +} diff --git a/google/ads/googleads/v10/enums/reach_plan_network.proto b/google/ads/googleads/v10/enums/reach_plan_network.proto new file mode 100644 index 000000000..c8965f70b --- /dev/null +++ b/google/ads/googleads/v10/enums/reach_plan_network.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanNetworkProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing a plannable network. + +// Container for enum describing plannable networks. +message ReachPlanNetworkEnum { + // Possible plannable network values. + enum ReachPlanNetwork { + // Not specified. + UNSPECIFIED = 0; + + // Used as a return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // YouTube network. + YOUTUBE = 2; + + // Google Video Partners (GVP) network. + GOOGLE_VIDEO_PARTNERS = 3; + + // A combination of the YouTube network and the Google Video Partners + // network. + YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/real_estate_placeholder_field.proto b/google/ads/googleads/v10/enums/real_estate_placeholder_field.proto new file mode 100644 index 000000000..5a9ec63ed --- /dev/null +++ b/google/ads/googleads/v10/enums/real_estate_placeholder_field.proto @@ -0,0 +1,113 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "RealEstatePlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Real Estate placeholder fields. + +// Values for Real Estate placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message RealEstatePlaceholderFieldEnum { + // Possible values for Real Estate placeholder fields. + enum RealEstatePlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Unique ID. + LISTING_ID = 2; + + // Data Type: STRING. Main headline with listing name to be shown in dynamic + // ad. + LISTING_NAME = 3; + + // Data Type: STRING. City name to be shown in dynamic ad. + CITY_NAME = 4; + + // Data Type: STRING. Description of listing to be shown in dynamic ad. + DESCRIPTION = 5; + + // Data Type: STRING. Complete listing address, including postal code. + ADDRESS = 6; + + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + PRICE = 7; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 8; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 9; + + // Data Type: STRING. Type of property (house, condo, apartment, etc.) used + // to group like items together for recommendation engine. + PROPERTY_TYPE = 10; + + // Data Type: STRING. Type of listing (resale, rental, foreclosure, etc.) + // used to group like items together for recommendation engine. + LISTING_TYPE = 11; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 12; + + // Data Type: URL_LIST. Final URLs to be used in ad when using Upgraded + // URLs; the more specific the better (e.g. the individual URL of a specific + // listing and its location). + FINAL_URLS = 13; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 14; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 15; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 16; + + // Data Type: STRING_LIST. List of recommended listing IDs to show together + // with this item. + SIMILAR_LISTING_IDS = 17; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 18; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 19; + } + + +} diff --git a/google/ads/googleads/v10/enums/recommendation_type.proto b/google/ads/googleads/v10/enums/recommendation_type.proto new file mode 100644 index 000000000..9d42fe07c --- /dev/null +++ b/google/ads/googleads/v10/enums/recommendation_type.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Recommendation types. + +// Container for enum describing types of recommendations. +message RecommendationTypeEnum { + // Types of recommendations. + enum RecommendationType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Budget recommendation for campaigns that are currently budget-constrained + // (as opposed to the FORECASTING_CAMPAIGN_BUDGET recommendation, which + // applies to campaigns that are expected to become budget-constrained in + // the future). + CAMPAIGN_BUDGET = 2; + + // Keyword recommendation. + KEYWORD = 3; + + // Recommendation to add a new text ad. + TEXT_AD = 4; + + // Recommendation to update a campaign to use a Target CPA bidding strategy. + TARGET_CPA_OPT_IN = 5; + + // Recommendation to update a campaign to use the Maximize Conversions + // bidding strategy. + MAXIMIZE_CONVERSIONS_OPT_IN = 6; + + // Recommendation to enable Enhanced Cost Per Click for a campaign. + ENHANCED_CPC_OPT_IN = 7; + + // Recommendation to start showing your campaign's ads on Google Search + // Partners Websites. + SEARCH_PARTNERS_OPT_IN = 8; + + // Recommendation to update a campaign to use a Maximize Clicks bidding + // strategy. + MAXIMIZE_CLICKS_OPT_IN = 9; + + // Recommendation to start using the "Optimize" ad rotation setting for the + // given ad group. + OPTIMIZE_AD_ROTATION = 10; + + // Recommendation to add callout extensions to a campaign. + CALLOUT_EXTENSION = 11; + + // Recommendation to add sitelink extensions to a campaign. + SITELINK_EXTENSION = 12; + + // Recommendation to add call extensions to a campaign. + CALL_EXTENSION = 13; + + // Recommendation to change an existing keyword from one match type to a + // broader match type. + KEYWORD_MATCH_TYPE = 14; + + // Recommendation to move unused budget from one budget to a constrained + // budget. + MOVE_UNUSED_BUDGET = 15; + + // Budget recommendation for campaigns that are expected to become + // budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET + // recommendation, which applies to campaigns that are currently + // budget-constrained). + FORECASTING_CAMPAIGN_BUDGET = 16; + + // Recommendation to update a campaign to use a Target ROAS bidding + // strategy. + TARGET_ROAS_OPT_IN = 17; + + // Recommendation to add a new responsive search ad. + RESPONSIVE_SEARCH_AD = 18; + + // Budget recommendation for campaigns whose ROI is predicted to increase + // with a budget adjustment. + MARGINAL_ROI_CAMPAIGN_BUDGET = 19; + + // Recommendation to expand keywords to broad match for fully automated + // conversion-based bidding campaigns. + USE_BROAD_MATCH_KEYWORD = 20; + + // Recommendation to add new responsive search ad assets. + RESPONSIVE_SEARCH_AD_ASSET = 21; + } + + +} diff --git a/google/ads/googleads/v10/enums/resource_change_operation.proto b/google/ads/googleads/v10/enums/resource_change_operation.proto new file mode 100644 index 000000000..483bcc75c --- /dev/null +++ b/google/ads/googleads/v10/enums/resource_change_operation.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ResourceChangeOperationProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the resource change operations in change event. + +// Container for enum describing resource change operations +// in the ChangeEvent resource. +message ResourceChangeOperationEnum { + // The operation on the changed resource in change_event resource. + enum ResourceChangeOperation { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified operation unknown + // in this version. + UNKNOWN = 1; + + // The resource was created. + CREATE = 2; + + // The resource was modified. + UPDATE = 3; + + // The resource was removed. + REMOVE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/resource_limit_type.proto b/google/ads/googleads/v10/enums/resource_limit_type.proto new file mode 100644 index 000000000..59b01cff4 --- /dev/null +++ b/google/ads/googleads/v10/enums/resource_limit_type.proto @@ -0,0 +1,461 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ResourceLimitTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing possible resource limit types. +message ResourceLimitTypeEnum { + // Resource limit type. + enum ResourceLimitType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified operation unknown + // in this version. + UNKNOWN = 1; + + // Number of ENABLED and PAUSED campaigns per customer. + CAMPAIGNS_PER_CUSTOMER = 2; + + // Number of ENABLED and PAUSED base campaigns per customer. + BASE_CAMPAIGNS_PER_CUSTOMER = 3; + + // Number of ENABLED and PAUSED experiment campaigns per customer. + EXPERIMENT_CAMPAIGNS_PER_CUSTOMER = 105; + + // Number of ENABLED and PAUSED Hotel campaigns per customer. + HOTEL_CAMPAIGNS_PER_CUSTOMER = 4; + + // Number of ENABLED and PAUSED Smart Shopping campaigns per customer. + SMART_SHOPPING_CAMPAIGNS_PER_CUSTOMER = 5; + + // Number of ENABLED ad groups per campaign. + AD_GROUPS_PER_CAMPAIGN = 6; + + // Number of ENABLED ad groups per Shopping campaign. + AD_GROUPS_PER_SHOPPING_CAMPAIGN = 8; + + // Number of ENABLED ad groups per Hotel campaign. + AD_GROUPS_PER_HOTEL_CAMPAIGN = 9; + + // Number of ENABLED reporting ad groups per local campaign. + REPORTING_AD_GROUPS_PER_LOCAL_CAMPAIGN = 10; + + // Number of ENABLED reporting ad groups per App campaign. It includes app + // campaign and app campaign for engagement. + REPORTING_AD_GROUPS_PER_APP_CAMPAIGN = 11; + + // Number of ENABLED managed ad groups per smart campaign. + MANAGED_AD_GROUPS_PER_SMART_CAMPAIGN = 52; + + // Number of ENABLED ad group criteria per customer. + // An ad group criterion is considered as ENABLED if: + // 1. it's not REMOVED + // 2. its ad group is not REMOVED + // 3. its campaign is not REMOVED. + AD_GROUP_CRITERIA_PER_CUSTOMER = 12; + + // Number of ad group criteria across all base campaigns for a customer. + BASE_AD_GROUP_CRITERIA_PER_CUSTOMER = 13; + + // Number of ad group criteria across all experiment campaigns for a + // customer. + EXPERIMENT_AD_GROUP_CRITERIA_PER_CUSTOMER = 107; + + // Number of ENABLED ad group criteria per campaign. + // An ad group criterion is considered as ENABLED if: + // 1. it's not REMOVED + // 2. its ad group is not REMOVED. + AD_GROUP_CRITERIA_PER_CAMPAIGN = 14; + + // Number of ENABLED campaign criteria per customer. + CAMPAIGN_CRITERIA_PER_CUSTOMER = 15; + + // Number of ENABLED campaign criteria across all base campaigns for a + // customer. + BASE_CAMPAIGN_CRITERIA_PER_CUSTOMER = 16; + + // Number of ENABLED campaign criteria across all experiment campaigns for a + // customer. + EXPERIMENT_CAMPAIGN_CRITERIA_PER_CUSTOMER = 108; + + // Number of ENABLED webpage criteria per customer, including + // campaign level and ad group level. + WEBPAGE_CRITERIA_PER_CUSTOMER = 17; + + // Number of ENABLED webpage criteria across all base campaigns for + // a customer. + BASE_WEBPAGE_CRITERIA_PER_CUSTOMER = 18; + + // Meximum number of ENABLED webpage criteria across all experiment + // campaigns for a customer. + EXPERIMENT_WEBPAGE_CRITERIA_PER_CUSTOMER = 19; + + // Number of combined audience criteria per ad group. + COMBINED_AUDIENCE_CRITERIA_PER_AD_GROUP = 20; + + // Limit for placement criterion type group in customer negative criterion. + CUSTOMER_NEGATIVE_PLACEMENT_CRITERIA_PER_CUSTOMER = 21; + + // Limit for YouTube TV channels in customer negative criterion. + CUSTOMER_NEGATIVE_YOUTUBE_CHANNEL_CRITERIA_PER_CUSTOMER = 22; + + // Number of ENABLED criteria per ad group. + CRITERIA_PER_AD_GROUP = 23; + + // Number of listing group criteria per ad group. + LISTING_GROUPS_PER_AD_GROUP = 24; + + // Number of ENABLED explicitly shared budgets per customer. + EXPLICITLY_SHARED_BUDGETS_PER_CUSTOMER = 25; + + // Number of ENABLED implicitly shared budgets per customer. + IMPLICITLY_SHARED_BUDGETS_PER_CUSTOMER = 26; + + // Number of combined audience criteria per campaign. + COMBINED_AUDIENCE_CRITERIA_PER_CAMPAIGN = 27; + + // Number of negative keywords per campaign. + NEGATIVE_KEYWORDS_PER_CAMPAIGN = 28; + + // Number of excluded campaign criteria in placement dimension, e.g. + // placement, mobile application, YouTube channel, etc. The API criterion + // type is NOT limited to placement only, and this does not include + // exclusions at the ad group or other levels. + NEGATIVE_PLACEMENTS_PER_CAMPAIGN = 29; + + // Number of geo targets per campaign. + GEO_TARGETS_PER_CAMPAIGN = 30; + + // Number of negative IP blocks per campaign. + NEGATIVE_IP_BLOCKS_PER_CAMPAIGN = 32; + + // Number of proximity targets per campaign. + PROXIMITIES_PER_CAMPAIGN = 33; + + // Number of listing scopes per Shopping campaign. + LISTING_SCOPES_PER_SHOPPING_CAMPAIGN = 34; + + // Number of listing scopes per non-Shopping campaign. + LISTING_SCOPES_PER_NON_SHOPPING_CAMPAIGN = 35; + + // Number of criteria per negative keyword shared set. + NEGATIVE_KEYWORDS_PER_SHARED_SET = 36; + + // Number of criteria per negative placement shared set. + NEGATIVE_PLACEMENTS_PER_SHARED_SET = 37; + + // Default number of shared sets allowed per type per customer. + SHARED_SETS_PER_CUSTOMER_FOR_TYPE_DEFAULT = 40; + + // Number of shared sets of negative placement list type for a + // manager customer. + SHARED_SETS_PER_CUSTOMER_FOR_NEGATIVE_PLACEMENT_LIST_LOWER = 41; + + // Number of hotel_advance_booking_window bid modifiers per ad group. + HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP = 44; + + // Number of ENABLED shared bidding strategies per customer. + BIDDING_STRATEGIES_PER_CUSTOMER = 45; + + // Number of open basic user lists per customer. + BASIC_USER_LISTS_PER_CUSTOMER = 47; + + // Number of open logical user lists per customer. + LOGICAL_USER_LISTS_PER_CUSTOMER = 48; + + // Number of open rule based user lists per customer. + RULE_BASED_USER_LISTS_PER_CUSTOMER = 153; + + // Number of ENABLED and PAUSED ad group ads across all base campaigns for a + // customer. + BASE_AD_GROUP_ADS_PER_CUSTOMER = 53; + + // Number of ENABLED and PAUSED ad group ads across all experiment campaigns + // for a customer. + EXPERIMENT_AD_GROUP_ADS_PER_CUSTOMER = 54; + + // Number of ENABLED and PAUSED ad group ads per campaign. + AD_GROUP_ADS_PER_CAMPAIGN = 55; + + // Number of ENABLED ads per ad group that do not fall in to other buckets. + // Includes text and many other types. + TEXT_AND_OTHER_ADS_PER_AD_GROUP = 56; + + // Number of ENABLED image ads per ad group. + IMAGE_ADS_PER_AD_GROUP = 57; + + // Number of ENABLED shopping smart ads per ad group. + SHOPPING_SMART_ADS_PER_AD_GROUP = 58; + + // Number of ENABLED responsive search ads per ad group. + RESPONSIVE_SEARCH_ADS_PER_AD_GROUP = 59; + + // Number of ENABLED app ads per ad group. + APP_ADS_PER_AD_GROUP = 60; + + // Number of ENABLED app engagement ads per ad group. + APP_ENGAGEMENT_ADS_PER_AD_GROUP = 61; + + // Number of ENABLED local ads per ad group. + LOCAL_ADS_PER_AD_GROUP = 62; + + // Number of ENABLED video ads per ad group. + VIDEO_ADS_PER_AD_GROUP = 63; + + // Number of ENABLED lead form CampaignAssets per campaign. + LEAD_FORM_CAMPAIGN_ASSETS_PER_CAMPAIGN = 143; + + // Number of ENABLED promotion CustomerAssets per customer. + PROMOTION_CUSTOMER_ASSETS_PER_CUSTOMER = 79; + + // Number of ENABLED promotion CampaignAssets per campaign. + PROMOTION_CAMPAIGN_ASSETS_PER_CAMPAIGN = 80; + + // Number of ENABLED promotion AdGroupAssets per ad group. + PROMOTION_AD_GROUP_ASSETS_PER_AD_GROUP = 81; + + // Number of ENABLED callout CustomerAssets per customer. + CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER = 134; + + // Number of ENABLED callout CampaignAssets per campaign. + CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN = 135; + + // Number of ENABLED callout AdGroupAssets per ad group. + CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP = 136; + + // Number of ENABLED sitelink CustomerAssets per customer. + SITELINK_CUSTOMER_ASSETS_PER_CUSTOMER = 137; + + // Number of ENABLED sitelink CampaignAssets per campaign. + SITELINK_CAMPAIGN_ASSETS_PER_CAMPAIGN = 138; + + // Number of ENABLED sitelink AdGroupAssets per ad group. + SITELINK_AD_GROUP_ASSETS_PER_AD_GROUP = 139; + + // Number of ENABLED structured snippet CustomerAssets per customer. + STRUCTURED_SNIPPET_CUSTOMER_ASSETS_PER_CUSTOMER = 140; + + // Number of ENABLED structured snippet CampaignAssets per campaign. + STRUCTURED_SNIPPET_CAMPAIGN_ASSETS_PER_CAMPAIGN = 141; + + // Number of ENABLED structured snippet AdGroupAssets per ad group. + STRUCTURED_SNIPPET_AD_GROUP_ASSETS_PER_AD_GROUP = 142; + + // Number of ENABLED mobile app CustomerAssets per customer. + MOBILE_APP_CUSTOMER_ASSETS_PER_CUSTOMER = 144; + + // Number of ENABLED mobile app CampaignAssets per campaign. + MOBILE_APP_CAMPAIGN_ASSETS_PER_CAMPAIGN = 145; + + // Number of ENABLED mobile app AdGroupAssets per ad group. + MOBILE_APP_AD_GROUP_ASSETS_PER_AD_GROUP = 146; + + // Number of ENABLED hotel callout CustomerAssets per customer. + HOTEL_CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER = 147; + + // Number of ENABLED hotel callout CampaignAssets per campaign. + HOTEL_CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN = 148; + + // Number of ENABLED hotel callout AdGroupAssets per ad group. + HOTEL_CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP = 149; + + // Number of ENABLED call CustomerAssets per customer. + CALL_CUSTOMER_ASSETS_PER_CUSTOMER = 150; + + // Number of ENABLED call CampaignAssets per campaign. + CALL_CAMPAIGN_ASSETS_PER_CAMPAIGN = 151; + + // Number of ENABLED call AdGroupAssets per ad group. + CALL_AD_GROUP_ASSETS_PER_AD_GROUP = 152; + + // Number of ENABLED price CustomerAssets per customer. + PRICE_CUSTOMER_ASSETS_PER_CUSTOMER = 154; + + // Number of ENABLED price CampaignAssets per campaign. + PRICE_CAMPAIGN_ASSETS_PER_CAMPAIGN = 155; + + // Number of ENABLED price AdGroupAssets per ad group. + PRICE_AD_GROUP_ASSETS_PER_AD_GROUP = 156; + + // Number of ENABLED page feed asset sets per customer. + PAGE_FEED_ASSET_SETS_PER_CUSTOMER = 157; + + // Number of ENABLED dynamic education feed asset sets per customer. + DYNAMIC_EDUCATION_FEED_ASSET_SETS_PER_CUSTOMER = 158; + + // Number of ENABLED assets per page feed asset set. + ASSETS_PER_PAGE_FEED_ASSET_SET = 159; + + // Number of ENABLED assets per dynamic education asset set. + ASSETS_PER_DYNAMIC_EDUCATION_FEED_ASSET_SET = 160; + + // Number of ENABLED dynamic real estate asset sets per customer. + DYNAMIC_REAL_ESTATE_ASSET_SETS_PER_CUSTOMER = 161; + + // Number of ENABLED assets per dynamic real estate asset set. + ASSETS_PER_DYNAMIC_REAL_ESTATE_ASSET_SET = 162; + + // Number of ENABLED dynamic custom asset sets per customer. + DYNAMIC_CUSTOM_ASSET_SETS_PER_CUSTOMER = 163; + + // Number of ENABLED assets per dynamic custom asset set. + ASSETS_PER_DYNAMIC_CUSTOM_ASSET_SET = 164; + + // Number of ENABLED dynamic hotels and rentals asset sets per + // customer. + DYNAMIC_HOTELS_AND_RENTALS_ASSET_SETS_PER_CUSTOMER = 165; + + // Number of ENABLED assets per dynamic hotels and rentals asset set. + ASSETS_PER_DYNAMIC_HOTELS_AND_RENTALS_ASSET_SET = 166; + + // Number of ENABLED dynamic local asset sets per customer. + DYNAMIC_LOCAL_ASSET_SETS_PER_CUSTOMER = 167; + + // Number of ENABLED assets per dynamic local asset set. + ASSETS_PER_DYNAMIC_LOCAL_ASSET_SET = 168; + + // Number of ENABLED dynamic flights asset sets per customer. + DYNAMIC_FLIGHTS_ASSET_SETS_PER_CUSTOMER = 169; + + // Number of ENABLED assets per dynamic flights asset set. + ASSETS_PER_DYNAMIC_FLIGHTS_ASSET_SET = 170; + + // Number of ENABLED dynamic travel asset sets per customer. + DYNAMIC_TRAVEL_ASSET_SETS_PER_CUSTOMER = 171; + + // Number of ENABLED assets per dynamic travel asset set. + ASSETS_PER_DYNAMIC_TRAVEL_ASSET_SET = 172; + + // Number of ENABLED dynamic jobs asset sets per customer. + DYNAMIC_JOBS_ASSET_SETS_PER_CUSTOMER = 173; + + // Number of ENABLED assets per dynamic jobs asset set. + ASSETS_PER_DYNAMIC_JOBS_ASSET_SET = 174; + + // Number of versions per ad. + VERSIONS_PER_AD = 82; + + // Number of ENABLED user feeds per customer. + USER_FEEDS_PER_CUSTOMER = 90; + + // Number of ENABLED system feeds per customer. + SYSTEM_FEEDS_PER_CUSTOMER = 91; + + // Number of feed attributes per feed. + FEED_ATTRIBUTES_PER_FEED = 92; + + // Number of ENABLED feed items per customer. + FEED_ITEMS_PER_CUSTOMER = 94; + + // Number of ENABLED campaign feeds per customer. + CAMPAIGN_FEEDS_PER_CUSTOMER = 95; + + // Number of ENABLED campaign feeds across all base campaigns for a + // customer. + BASE_CAMPAIGN_FEEDS_PER_CUSTOMER = 96; + + // Number of ENABLED campaign feeds across all experiment campaigns for a + // customer. + EXPERIMENT_CAMPAIGN_FEEDS_PER_CUSTOMER = 109; + + // Number of ENABLED ad group feeds per customer. + AD_GROUP_FEEDS_PER_CUSTOMER = 97; + + // Number of ENABLED ad group feeds across all base campaigns for a + // customer. + BASE_AD_GROUP_FEEDS_PER_CUSTOMER = 98; + + // Number of ENABLED ad group feeds across all experiment campaigns for a + // customer. + EXPERIMENT_AD_GROUP_FEEDS_PER_CUSTOMER = 110; + + // Number of ENABLED ad group feeds per campaign. + AD_GROUP_FEEDS_PER_CAMPAIGN = 99; + + // Number of ENABLED feed items per customer. + FEED_ITEM_SETS_PER_CUSTOMER = 100; + + // Number of feed items per feed item set. + FEED_ITEMS_PER_FEED_ITEM_SET = 101; + + // Number of ENABLED campaign experiments per customer. + CAMPAIGN_EXPERIMENTS_PER_CUSTOMER = 112; + + // Number of video experiment arms per experiment. + EXPERIMENT_ARMS_PER_VIDEO_EXPERIMENT = 113; + + // Number of owned labels per customer. + OWNED_LABELS_PER_CUSTOMER = 115; + + // Number of applied labels per campaign. + LABELS_PER_CAMPAIGN = 117; + + // Number of applied labels per ad group. + LABELS_PER_AD_GROUP = 118; + + // Number of applied labels per ad group ad. + LABELS_PER_AD_GROUP_AD = 119; + + // Number of applied labels per ad group criterion. + LABELS_PER_AD_GROUP_CRITERION = 120; + + // Number of customers with a single label applied. + TARGET_CUSTOMERS_PER_LABEL = 121; + + // Number of ENABLED keyword plans per user per customer. + // The limit is applied per pair because by default a plan + // is private to a user of a customer. Each user of a customer has his or + // her own independent limit. + KEYWORD_PLANS_PER_USER_PER_CUSTOMER = 122; + + // Number of keyword plan ad group keywords per keyword plan. + KEYWORD_PLAN_AD_GROUP_KEYWORDS_PER_KEYWORD_PLAN = 123; + + // Number of keyword plan ad groups per keyword plan. + KEYWORD_PLAN_AD_GROUPS_PER_KEYWORD_PLAN = 124; + + // Number of keyword plan negative keywords (both campaign and ad group) per + // keyword plan. + KEYWORD_PLAN_NEGATIVE_KEYWORDS_PER_KEYWORD_PLAN = 125; + + // Number of keyword plan campaigns per keyword plan. + KEYWORD_PLAN_CAMPAIGNS_PER_KEYWORD_PLAN = 126; + + // Number of ENABLED conversion actions per customer. + CONVERSION_ACTIONS_PER_CUSTOMER = 128; + + // Number of operations in a single batch job. + BATCH_JOB_OPERATIONS_PER_JOB = 130; + + // Number of PENDING or ENABLED batch jobs per customer. + BATCH_JOBS_PER_CUSTOMER = 131; + + // Number of hotel check-in date range bid modifiers per ad agroup. + HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP = 132; + } + + +} diff --git a/google/ads/googleads/v10/enums/response_content_type.proto b/google/ads/googleads/v10/enums/response_content_type.proto new file mode 100644 index 000000000..7188282d4 --- /dev/null +++ b/google/ads/googleads/v10/enums/response_content_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ResponseContentTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the response content types used in mutate operations. + +// Container for possible response content types. +message ResponseContentTypeEnum { + // Possible response content types. + enum ResponseContentType { + // Not specified. Will return the resource name only in the response. + UNSPECIFIED = 0; + + // 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. + MUTABLE_RESOURCE = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/search_engine_results_page_type.proto b/google/ads/googleads/v10/enums/search_engine_results_page_type.proto new file mode 100644 index 000000000..ea2c4e04d --- /dev/null +++ b/google/ads/googleads/v10/enums/search_engine_results_page_type.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SearchEngineResultsPageTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing search engine results page types. + +// The type of the search engine results page. +message SearchEngineResultsPageTypeEnum { + // The type of the search engine results page. + enum SearchEngineResultsPageType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Only ads were contained in the search engine results page. + ADS_ONLY = 2; + + // Only organic results were contained in the search engine results page. + ORGANIC_ONLY = 3; + + // Both ads and organic results were contained in the search engine results + // page. + ADS_AND_ORGANIC = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/search_term_match_type.proto b/google/ads/googleads/v10/enums/search_term_match_type.proto new file mode 100644 index 000000000..7d990e3f1 --- /dev/null +++ b/google/ads/googleads/v10/enums/search_term_match_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SearchTermMatchTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing search term match types. + +// Container for enum describing match types for a keyword triggering an ad. +message SearchTermMatchTypeEnum { + // Possible match types for a keyword triggering an ad, including variants. + enum SearchTermMatchType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Broad match. + BROAD = 2; + + // Exact match. + EXACT = 3; + + // Phrase match. + PHRASE = 4; + + // Exact match (close variant). + NEAR_EXACT = 5; + + // Phrase match (close variant). + NEAR_PHRASE = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/search_term_targeting_status.proto b/google/ads/googleads/v10/enums/search_term_targeting_status.proto new file mode 100644 index 000000000..19ac90538 --- /dev/null +++ b/google/ads/googleads/v10/enums/search_term_targeting_status.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SearchTermTargetingStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing search term targeting statuses. + +// Container for enum indicating whether a search term is one of your targeted +// or excluded keywords. +message SearchTermTargetingStatusEnum { + // Indicates whether the search term is one of your targeted or excluded + // keywords. + enum SearchTermTargetingStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Search term is added to targeted keywords. + ADDED = 2; + + // Search term matches a negative keyword. + EXCLUDED = 3; + + // Search term has been both added and excluded. + ADDED_EXCLUDED = 4; + + // Search term is neither targeted nor excluded. + NONE = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/seasonality_event_scope.proto b/google/ads/googleads/v10/enums/seasonality_event_scope.proto new file mode 100644 index 000000000..312b155b2 --- /dev/null +++ b/google/ads/googleads/v10/enums/seasonality_event_scope.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SeasonalityEventScopeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing seasonality event status. + +// Message describing seasonality event scopes. The two types of seasonality +// events are BiddingSeasonalityAdjustments and BiddingDataExclusions. +message SeasonalityEventScopeEnum { + // The possible scopes of a Seasonality Event. + enum SeasonalityEventScope { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The seasonality event is applied to all the customer's traffic for + // supported advertising channel types and device types. The CUSTOMER scope + // cannot be used in mutates. + CUSTOMER = 2; + + // The seasonality event is applied to all specified campaigns. + CAMPAIGN = 4; + + // The seasonality event is applied to all campaigns that belong to + // specified channel types. + CHANNEL = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/seasonality_event_status.proto b/google/ads/googleads/v10/enums/seasonality_event_status.proto new file mode 100644 index 000000000..73ab078ef --- /dev/null +++ b/google/ads/googleads/v10/enums/seasonality_event_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SeasonalityEventStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing seasonality event status. + +// Message describing seasonality event statuses. The two types of seasonality +// events are BiddingSeasonalityAdjustments and BiddingDataExclusions. +message SeasonalityEventStatusEnum { + // The possible statuses of a Seasonality Event. + enum SeasonalityEventStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The seasonality event is enabled. + ENABLED = 2; + + // The seasonality event is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/served_asset_field_type.proto b/google/ads/googleads/v10/enums/served_asset_field_type.proto new file mode 100644 index 000000000..f8879b0fc --- /dev/null +++ b/google/ads/googleads/v10/enums/served_asset_field_type.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ServedAssetFieldTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing policy review statuses. + +// Container for enum describing possible asset field types. +message ServedAssetFieldTypeEnum { + // The possible asset field types. + enum ServedAssetFieldType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The asset is used in headline 1. + HEADLINE_1 = 2; + + // The asset is used in headline 2. + HEADLINE_2 = 3; + + // The asset is used in headline 3. + HEADLINE_3 = 4; + + // The asset is used in description 1. + DESCRIPTION_1 = 5; + + // The asset is used in description 2. + DESCRIPTION_2 = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/shared_set_status.proto b/google/ads/googleads/v10/enums/shared_set_status.proto new file mode 100644 index 000000000..f770ddfc6 --- /dev/null +++ b/google/ads/googleads/v10/enums/shared_set_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing shared set statuses. + +// Container for enum describing types of shared set statuses. +message SharedSetStatusEnum { + // Enum listing the possible shared set statuses. + enum SharedSetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The shared set is enabled. + ENABLED = 2; + + // The shared set is removed and can no longer be used. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/shared_set_type.proto b/google/ads/googleads/v10/enums/shared_set_type.proto new file mode 100644 index 000000000..50d8e4531 --- /dev/null +++ b/google/ads/googleads/v10/enums/shared_set_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing shared set types. + +// Container for enum describing types of shared sets. +message SharedSetTypeEnum { + // Enum listing the possible shared set types. + enum SharedSetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // A set of keywords that can be excluded from targeting. + NEGATIVE_KEYWORDS = 2; + + // A set of placements that can be excluded from targeting. + NEGATIVE_PLACEMENTS = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/simulation_modification_method.proto b/google/ads/googleads/v10/enums/simulation_modification_method.proto new file mode 100644 index 000000000..4ec3dd080 --- /dev/null +++ b/google/ads/googleads/v10/enums/simulation_modification_method.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SimulationModificationMethodProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing simulation modification methods. + +// Container for enum describing the method by which a simulation modifies +// a field. +message SimulationModificationMethodEnum { + // Enum describing the method by which a simulation modifies a field. + enum SimulationModificationMethod { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The values in a simulation were applied to all children of a given + // resource uniformly. Overrides on child resources were not respected. + UNIFORM = 2; + + // The values in a simulation were applied to the given resource. + // Overrides on child resources were respected, and traffic estimates + // do not include these resources. + DEFAULT = 3; + + // The values in a simulation were all scaled by the same factor. + // For example, in a simulated TargetCpa campaign, the campaign target and + // all ad group targets were scaled by a factor of X. + SCALING = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/simulation_type.proto b/google/ads/googleads/v10/enums/simulation_type.proto new file mode 100644 index 000000000..dd907a360 --- /dev/null +++ b/google/ads/googleads/v10/enums/simulation_type.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SimulationTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing simulation types. + +// Container for enum describing the field a simulation modifies. +message SimulationTypeEnum { + // Enum describing the field a simulation modifies. + enum SimulationType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The simulation is for a CPC bid. + CPC_BID = 2; + + // The simulation is for a CPV bid. + CPV_BID = 3; + + // The simulation is for a CPA target. + TARGET_CPA = 4; + + // The simulation is for a bid modifier. + BID_MODIFIER = 5; + + // The simulation is for a ROAS target. + TARGET_ROAS = 6; + + // The simulation is for a percent CPC bid. + PERCENT_CPC_BID = 7; + + // The simulation is for an impression share target. + TARGET_IMPRESSION_SHARE = 8; + + // The simulation is for a budget. + BUDGET = 9; + } + + +} diff --git a/google/ads/googleads/v10/enums/sitelink_placeholder_field.proto b/google/ads/googleads/v10/enums/sitelink_placeholder_field.proto new file mode 100644 index 000000000..9cec7749b --- /dev/null +++ b/google/ads/googleads/v10/enums/sitelink_placeholder_field.proto @@ -0,0 +1,67 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SitelinkPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Sitelink placeholder fields. + +// Values for Sitelink placeholder fields. +message SitelinkPlaceholderFieldEnum { + // Possible values for Sitelink placeholder fields. + enum SitelinkPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The link text for your sitelink. + TEXT = 2; + + // Data Type: STRING. First line of the sitelink description. + LINE_1 = 3; + + // Data Type: STRING. Second line of the sitelink description. + LINE_2 = 4; + + // Data Type: URL_LIST. Final URLs for the sitelink when using Upgraded + // URLs. + FINAL_URLS = 5; + + // Data Type: URL_LIST. Final Mobile URLs for the sitelink when using + // Upgraded URLs. + FINAL_MOBILE_URLS = 6; + + // Data Type: URL. Tracking template for the sitelink when using Upgraded + // URLs. + TRACKING_URL = 7; + + // Data Type: STRING. Final URL suffix for sitelink when using parallel + // tracking. + FINAL_URL_SUFFIX = 8; + } + + +} diff --git a/google/ads/googleads/v10/enums/sk_ad_network_ad_event_type.proto b/google/ads/googleads/v10/enums/sk_ad_network_ad_event_type.proto new file mode 100644 index 000000000..ea31f4f76 --- /dev/null +++ b/google/ads/googleads/v10/enums/sk_ad_network_ad_event_type.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SkAdNetworkAdEventTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing SkAdNetwork Ad Event Types. + +// Container for enumeration of SkAdNetwork ad event types. +message SkAdNetworkAdEventTypeEnum { + // Enumerates SkAdNetwork ad event types + enum SkAdNetworkAdEventType { + // 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; + + // The user interacted with the ad. + INTERACTION = 3; + + // The user viewed the ad. + VIEW = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/sk_ad_network_attribution_credit.proto b/google/ads/googleads/v10/enums/sk_ad_network_attribution_credit.proto new file mode 100644 index 000000000..e265242dc --- /dev/null +++ b/google/ads/googleads/v10/enums/sk_ad_network_attribution_credit.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SkAdNetworkAttributionCreditProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing SkAdNetwork attribution credits. + +// Container for enumeration of SkAdNetwork attribution credits. +message SkAdNetworkAttributionCreditEnum { + // Enumerates SkAdNetwork attribution credits. + enum SkAdNetworkAttributionCredit { + // Default value. This value is equivalent to null. + UNSPECIFIED = 0; + + // The value is unknown in this API version. The true enum value cannot be + // returned in this API version or is not supported yet. + UNKNOWN = 1; + + // The value was not present in the postback or we do not have this data for + // other reasons. + UNAVAILABLE = 2; + + // Google was the ad network that won ad attribution. + WON = 3; + + // Google qualified for attribution, but didn't win. + CONTRIBUTED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/sk_ad_network_user_type.proto b/google/ads/googleads/v10/enums/sk_ad_network_user_type.proto new file mode 100644 index 000000000..ad2b6c2d9 --- /dev/null +++ b/google/ads/googleads/v10/enums/sk_ad_network_user_type.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SkAdNetworkUserTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing SkAdNetwork user types. + +// Container for enumeration of SkAdNetwork user types. +message SkAdNetworkUserTypeEnum { + // Enumerates SkAdNetwork user types + enum SkAdNetworkUserType { + // 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; + + // The user installed the app for the first time. + NEW_INSTALLER = 3; + + // The user has previously installed the app. + REINSTALLER = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/slot.proto b/google/ads/googleads/v10/enums/slot.proto new file mode 100644 index 000000000..dbdf79ad9 --- /dev/null +++ b/google/ads/googleads/v10/enums/slot.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SlotProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing slots. + +// Container for enumeration of possible positions of the Ad. +message SlotEnum { + // Enumerates possible positions of the Ad. + enum Slot { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Google search: Side. + SEARCH_SIDE = 2; + + // Google search: Top. + SEARCH_TOP = 3; + + // Google search: Other. + SEARCH_OTHER = 4; + + // Google Display Network. + CONTENT = 5; + + // Search partners: Top. + SEARCH_PARTNER_TOP = 6; + + // Search partners: Other. + SEARCH_PARTNER_OTHER = 7; + + // Cross-network. + MIXED = 8; + } + + +} diff --git a/google/ads/googleads/v10/enums/spending_limit_type.proto b/google/ads/googleads/v10/enums/spending_limit_type.proto new file mode 100644 index 000000000..ae83b6c77 --- /dev/null +++ b/google/ads/googleads/v10/enums/spending_limit_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SpendingLimitTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing SpendingLimit types. + +// Message describing spending limit types. +message SpendingLimitTypeEnum { + // The possible spending limit types used by certain resources as an + // alternative to absolute money values in micros. + enum SpendingLimitType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Infinite, indicates unlimited spending power. + INFINITE = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/structured_snippet_placeholder_field.proto b/google/ads/googleads/v10/enums/structured_snippet_placeholder_field.proto new file mode 100644 index 000000000..01b7ae847 --- /dev/null +++ b/google/ads/googleads/v10/enums/structured_snippet_placeholder_field.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "StructuredSnippetPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Structured Snippet placeholder fields. + +// Values for Structured Snippet placeholder fields. +message StructuredSnippetPlaceholderFieldEnum { + // Possible values for Structured Snippet placeholder fields. + enum StructuredSnippetPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The category of snippet of your products/services. + // Must match exactly one of the predefined structured snippets headers. + // For a list, visit + // https://developers.google.com/adwords/api/docs/appendix/structured-snippet-headers + HEADER = 2; + + // Data Type: STRING_LIST. Text values that describe your products/services. + // All text must be family safe. Special or non-ASCII characters are not + // permitted. A snippet can be at most 25 characters. + SNIPPETS = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/summary_row_setting.proto b/google/ads/googleads/v10/enums/summary_row_setting.proto new file mode 100644 index 000000000..b7c3907b8 --- /dev/null +++ b/google/ads/googleads/v10/enums/summary_row_setting.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SummaryRowSettingProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing summary row setting. + +// Indicates summary row setting in request parameter. +message SummaryRowSettingEnum { + // Enum describing return summary row settings. + enum SummaryRowSetting { + // Not specified. + UNSPECIFIED = 0; + + // Represent unknown values of return summary row. + UNKNOWN = 1; + + // Do not return summary row. + NO_SUMMARY_ROW = 2; + + // Return summary row along with results. The summary row will be returned + // in the last batch alone (last batch will contain no results). + SUMMARY_ROW_WITH_RESULTS = 3; + + // Return summary row only and return no results. + SUMMARY_ROW_ONLY = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/system_managed_entity_source.proto b/google/ads/googleads/v10/enums/system_managed_entity_source.proto new file mode 100644 index 000000000..aa96fff71 --- /dev/null +++ b/google/ads/googleads/v10/enums/system_managed_entity_source.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SystemManagedEntitySourceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing system managed entity sources. + +// Container for enum describing possible system managed entity sources. +message SystemManagedResourceSourceEnum { + // Enum listing the possible system managed entity sources. + enum SystemManagedResourceSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Generated ad variations experiment ad. + AD_VARIATIONS = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/target_cpa_opt_in_recommendation_goal.proto b/google/ads/googleads/v10/enums/target_cpa_opt_in_recommendation_goal.proto new file mode 100644 index 000000000..c4480bf3e --- /dev/null +++ b/google/ads/googleads/v10/enums/target_cpa_opt_in_recommendation_goal.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TargetCpaOptInRecommendationGoalProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing TargetCpaOptIn recommendation goals. + +// Container for enum describing goals for TargetCpaOptIn recommendation. +message TargetCpaOptInRecommendationGoalEnum { + // Goal of TargetCpaOptIn recommendation. + enum TargetCpaOptInRecommendationGoal { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Recommendation to set Target CPA to maintain the same cost. + SAME_COST = 2; + + // Recommendation to set Target CPA to maintain the same conversions. + SAME_CONVERSIONS = 3; + + // Recommendation to set Target CPA to maintain the same CPA. + SAME_CPA = 4; + + // Recommendation to set Target CPA to a value that is as close as possible + // to, yet lower than, the actual CPA (computed for past 28 days). + CLOSEST_CPA = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/target_impression_share_location.proto b/google/ads/googleads/v10/enums/target_impression_share_location.proto new file mode 100644 index 000000000..c1c723a71 --- /dev/null +++ b/google/ads/googleads/v10/enums/target_impression_share_location.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TargetImpressionShareLocationProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing target impression share goal. + +// Container for enum describing where on the first search results page the +// automated bidding system should target impressions for the +// TargetImpressionShare bidding strategy. +message TargetImpressionShareLocationEnum { + // Enum describing possible goals. + enum TargetImpressionShareLocation { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Any location on the web page. + ANYWHERE_ON_PAGE = 2; + + // Top box of ads. + TOP_OF_PAGE = 3; + + // Top slot in the top box of ads. + ABSOLUTE_TOP_OF_PAGE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/targeting_dimension.proto b/google/ads/googleads/v10/enums/targeting_dimension.proto new file mode 100644 index 000000000..eb6554e0e --- /dev/null +++ b/google/ads/googleads/v10/enums/targeting_dimension.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TargetingDimensionProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing criteria types. + +// The dimensions that can be targeted. +message TargetingDimensionEnum { + // Enum describing possible targeting dimensions. + enum TargetingDimension { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Keyword criteria, e.g. 'mars cruise'. KEYWORD may be used as a custom bid + // dimension. Keywords are always a targeting dimension, so may not be set + // as a target "ALL" dimension with TargetRestriction. + KEYWORD = 2; + + // Audience criteria, which include user list, user interest, custom + // affinity, and custom in market. + AUDIENCE = 3; + + // Topic criteria for targeting categories of content, e.g. + // 'category::Animals>Pets' Used for Display and Video targeting. + TOPIC = 4; + + // Criteria for targeting gender. + GENDER = 5; + + // Criteria for targeting age ranges. + AGE_RANGE = 6; + + // Placement criteria, which include websites like 'www.flowers4sale.com', + // as well as mobile applications, mobile app categories, YouTube videos, + // and YouTube channels. + PLACEMENT = 7; + + // Criteria for parental status targeting. + PARENTAL_STATUS = 8; + + // Criteria for income range targeting. + INCOME_RANGE = 9; + } + + +} diff --git a/google/ads/googleads/v10/enums/time_type.proto b/google/ads/googleads/v10/enums/time_type.proto new file mode 100644 index 000000000..64b46c62a --- /dev/null +++ b/google/ads/googleads/v10/enums/time_type.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TimeTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing TimeType types. + +// Message describing time types. +message TimeTypeEnum { + // The possible time types used by certain resources as an alternative to + // absolute timestamps. + enum TimeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // As soon as possible. + NOW = 2; + + // An infinite point in the future. + FOREVER = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/tracking_code_page_format.proto b/google/ads/googleads/v10/enums/tracking_code_page_format.proto new file mode 100644 index 000000000..8cde85951 --- /dev/null +++ b/google/ads/googleads/v10/enums/tracking_code_page_format.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TrackingCodePageFormatProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing the format of the web page where the tracking +// tag and snippet will be installed. +message TrackingCodePageFormatEnum { + // The format of the web page where the tracking tag and snippet will be + // installed. + enum TrackingCodePageFormat { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Standard HTML page format. + HTML = 2; + + // Google AMP page format. + AMP = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/tracking_code_type.proto b/google/ads/googleads/v10/enums/tracking_code_type.proto new file mode 100644 index 000000000..2a31d00f6 --- /dev/null +++ b/google/ads/googleads/v10/enums/tracking_code_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TrackingCodeTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Container for enum describing the type of the generated tag snippets for +// tracking conversions. +message TrackingCodeTypeEnum { + // The type of the generated tag snippets for tracking conversions. + enum TrackingCodeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The snippet that is fired as a result of a website page loading. + WEBPAGE = 2; + + // The snippet contains a JavaScript function which fires the tag. This + // function is typically called from an onClick handler added to a link or + // button element on the page. + WEBPAGE_ONCLICK = 3; + + // For embedding on a mobile webpage. The snippet contains a JavaScript + // function which fires the tag. + CLICK_TO_CALL = 4; + + // The snippet that is used to replace the phone number on your website with + // a Google forwarding number for call tracking purposes. + WEBSITE_CALL = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/travel_placeholder_field.proto b/google/ads/googleads/v10/enums/travel_placeholder_field.proto new file mode 100644 index 000000000..1f7c55da2 --- /dev/null +++ b/google/ads/googleads/v10/enums/travel_placeholder_field.proto @@ -0,0 +1,126 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TravelPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing Travel placeholder fields. + +// Values for Travel placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message TravelPlaceholderFieldEnum { + // Possible values for Travel placeholder fields. + enum TravelPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Destination id. Example: PAR, LON. + // For feed items that only have destination id, destination id must be a + // unique key. For feed items that have both destination id and origin id, + // then the combination must be a unique key. + DESTINATION_ID = 2; + + // Data Type: STRING. Origin id. Example: PAR, LON. + // Combination of DESTINATION_ID and ORIGIN_ID must be + // unique per offer. + ORIGIN_ID = 3; + + // Data Type: STRING. Required. Main headline with name to be shown in + // dynamic ad. + TITLE = 4; + + // Data Type: STRING. The destination name. Shorter names are recommended. + DESTINATION_NAME = 5; + + // Data Type: STRING. Origin name. Shorter names are recommended. + ORIGIN_NAME = 6; + + // Data Type: STRING. Price to be shown in the ad. Highly recommended for + // dynamic ads. + // Example: "100.00 USD" + PRICE = 7; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 8; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + SALE_PRICE = 9; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 10; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 11; + + // Data Type: STRING. Category of travel offer used to group like items + // together for recommendation engine. + CATEGORY = 12; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 13; + + // Data Type: STRING. Address of travel offer, including postal code. + DESTINATION_ADDRESS = 14; + + // Data Type: URL_LIST. Required. Final URLs to be used in ad, when using + // Upgraded URLs; the more specific the better (e.g. the individual URL of a + // specific travel offer and its location). + FINAL_URL = 15; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 16; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 17; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 18; + + // Data Type: STRING_LIST. List of recommended destination IDs to show + // together with this item. + SIMILAR_DESTINATION_IDS = 19; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 20; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 21; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_identifier_source.proto b/google/ads/googleads/v10/enums/user_identifier_source.proto new file mode 100644 index 000000000..9f31232c7 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_identifier_source.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserIdentifierSourceProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing user identifier source + +// Container for enum describing the source of the user identifier for offline +// Store Sales, click conversion, and conversion adjustment uploads. +message UserIdentifierSourceEnum { + // The type of user identifier source for offline Store Sales, click + // conversion, and conversion adjustment uploads. + enum UserIdentifierSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version + UNKNOWN = 1; + + // Indicates that the user identifier was provided by the first party + // (advertiser). + FIRST_PARTY = 2; + + // Indicates that the user identifier was provided by the third party + // (partner). + THIRD_PARTY = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_interest_taxonomy_type.proto b/google/ads/googleads/v10/enums/user_interest_taxonomy_type.proto new file mode 100644 index 000000000..2362d084b --- /dev/null +++ b/google/ads/googleads/v10/enums/user_interest_taxonomy_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserInterestTaxonomyTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing the UserInterest taxonomy type + +// Message describing a UserInterestTaxonomyType. +message UserInterestTaxonomyTypeEnum { + // Enum containing the possible UserInterestTaxonomyTypes. + enum UserInterestTaxonomyType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The affinity for this user interest. + AFFINITY = 2; + + // The market for this user interest. + IN_MARKET = 3; + + // Users known to have installed applications in the specified categories. + MOBILE_APP_INSTALL_USER = 4; + + // The geographical location of the interest-based vertical. + VERTICAL_GEO = 5; + + // User interest criteria for new smart phone users. + NEW_SMART_PHONE_USER = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_access_status.proto b/google/ads/googleads/v10/enums/user_list_access_status.proto new file mode 100644 index 000000000..ae062455f --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_access_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListAccessStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing user list access status. + +// Indicates if this client still has access to the list. +message UserListAccessStatusEnum { + // Enum containing possible user list access statuses. + enum UserListAccessStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The access is enabled. + ENABLED = 2; + + // The access is disabled. + DISABLED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_closing_reason.proto b/google/ads/googleads/v10/enums/user_list_closing_reason.proto new file mode 100644 index 000000000..35bf665c4 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_closing_reason.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListClosingReasonProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing user list closing reason. + +// Indicates the reason why the userlist was closed. +// This enum is only used when a list is auto-closed by the system. +message UserListClosingReasonEnum { + // Enum describing possible user list closing reasons. + enum UserListClosingReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The userlist was closed because of not being used for over one year. + UNUSED = 2; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_combined_rule_operator.proto b/google/ads/googleads/v10/enums/user_list_combined_rule_operator.proto new file mode 100644 index 000000000..a148b48df --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_combined_rule_operator.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListCombinedRuleOperatorProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Logical operator connecting two rules. +message UserListCombinedRuleOperatorEnum { + // Enum describing possible user list combined rule operators. + enum UserListCombinedRuleOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // A AND B. + AND = 2; + + // A AND NOT B. + AND_NOT = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_crm_data_source_type.proto b/google/ads/googleads/v10/enums/user_list_crm_data_source_type.proto new file mode 100644 index 000000000..6e6001818 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_crm_data_source_type.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListCrmDataSourceTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Indicates source of Crm upload data. +message UserListCrmDataSourceTypeEnum { + // Enum describing possible user list crm data source type. + enum UserListCrmDataSourceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The uploaded data is first-party data. + FIRST_PARTY = 2; + + // The uploaded data is from a third-party credit bureau. + THIRD_PARTY_CREDIT_BUREAU = 3; + + // The uploaded data is from a third-party voter file. + THIRD_PARTY_VOTER_FILE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_date_rule_item_operator.proto b/google/ads/googleads/v10/enums/user_list_date_rule_item_operator.proto new file mode 100644 index 000000000..8be9f633f --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_date_rule_item_operator.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListDateRuleItemOperatorProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Supported rule operator for date type. +message UserListDateRuleItemOperatorEnum { + // Enum describing possible user list date rule item operators. + enum UserListDateRuleItemOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Equals. + EQUALS = 2; + + // Not Equals. + NOT_EQUALS = 3; + + // Before. + BEFORE = 4; + + // After. + AFTER = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_logical_rule_operator.proto b/google/ads/googleads/v10/enums/user_list_logical_rule_operator.proto new file mode 100644 index 000000000..73ce9fd0a --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_logical_rule_operator.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListLogicalRuleOperatorProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// The logical operator of the rule. +message UserListLogicalRuleOperatorEnum { + // Enum describing possible user list logical rule operators. + enum UserListLogicalRuleOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // And - all of the operands. + ALL = 2; + + // Or - at least one of the operands. + ANY = 3; + + // Not - none of the operands. + NONE = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_membership_status.proto b/google/ads/googleads/v10/enums/user_list_membership_status.proto new file mode 100644 index 000000000..02850ed50 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_membership_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListMembershipStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing user list membership status. + +// 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 used for +// targeting. +message UserListMembershipStatusEnum { + // Enum containing possible user list membership statuses. + enum UserListMembershipStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Open status - List is accruing members and can be targeted to. + OPEN = 2; + + // Closed status - No new members being added. Cannot be used for targeting. + CLOSED = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_number_rule_item_operator.proto b/google/ads/googleads/v10/enums/user_list_number_rule_item_operator.proto new file mode 100644 index 000000000..f0e2c0ac2 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_number_rule_item_operator.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListNumberRuleItemOperatorProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Supported rule operator for number type. +message UserListNumberRuleItemOperatorEnum { + // Enum describing possible user list number rule item operators. + enum UserListNumberRuleItemOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Greater than. + GREATER_THAN = 2; + + // Greater than or equal. + GREATER_THAN_OR_EQUAL = 3; + + // Equals. + EQUALS = 4; + + // Not equals. + NOT_EQUALS = 5; + + // Less than. + LESS_THAN = 6; + + // Less than or equal. + LESS_THAN_OR_EQUAL = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_prepopulation_status.proto b/google/ads/googleads/v10/enums/user_list_prepopulation_status.proto new file mode 100644 index 000000000..3df0f1096 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_prepopulation_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListPrepopulationStatusProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Indicates status of prepopulation based on the rule. +message UserListPrepopulationStatusEnum { + // Enum describing possible user list prepopulation status. + enum UserListPrepopulationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Prepopoulation is being requested. + REQUESTED = 2; + + // Prepopulation is finished. + FINISHED = 3; + + // Prepopulation failed. + FAILED = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_rule_type.proto b/google/ads/googleads/v10/enums/user_list_rule_type.proto new file mode 100644 index 000000000..35b65a981 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_rule_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListRuleTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Rule based user list rule type. +message UserListRuleTypeEnum { + // Enum describing possible user list rule types. + enum UserListRuleType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conjunctive normal form. + AND_OF_ORS = 2; + + // Disjunctive normal form. + OR_OF_ANDS = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_size_range.proto b/google/ads/googleads/v10/enums/user_list_size_range.proto new file mode 100644 index 000000000..b1399dcb8 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_size_range.proto @@ -0,0 +1,90 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListSizeRangeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing user list size range. + +// Size range in terms of number of users of a UserList. +message UserListSizeRangeEnum { + // Enum containing possible user list size ranges. + enum UserListSizeRange { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // User list has less than 500 users. + LESS_THAN_FIVE_HUNDRED = 2; + + // User list has number of users in range of 500 to 1000. + LESS_THAN_ONE_THOUSAND = 3; + + // User list has number of users in range of 1000 to 10000. + ONE_THOUSAND_TO_TEN_THOUSAND = 4; + + // User list has number of users in range of 10000 to 50000. + TEN_THOUSAND_TO_FIFTY_THOUSAND = 5; + + // User list has number of users in range of 50000 to 100000. + FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND = 6; + + // User list has number of users in range of 100000 to 300000. + ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND = 7; + + // User list has number of users in range of 300000 to 500000. + THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND = 8; + + // User list has number of users in range of 500000 to 1 million. + FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION = 9; + + // User list has number of users in range of 1 to 2 millions. + ONE_MILLION_TO_TWO_MILLION = 10; + + // User list has number of users in range of 2 to 3 millions. + TWO_MILLION_TO_THREE_MILLION = 11; + + // User list has number of users in range of 3 to 5 millions. + THREE_MILLION_TO_FIVE_MILLION = 12; + + // User list has number of users in range of 5 to 10 millions. + FIVE_MILLION_TO_TEN_MILLION = 13; + + // User list has number of users in range of 10 to 20 millions. + TEN_MILLION_TO_TWENTY_MILLION = 14; + + // User list has number of users in range of 20 to 30 millions. + TWENTY_MILLION_TO_THIRTY_MILLION = 15; + + // User list has number of users in range of 30 to 50 millions. + THIRTY_MILLION_TO_FIFTY_MILLION = 16; + + // User list has over 50 million users. + OVER_FIFTY_MILLION = 17; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_string_rule_item_operator.proto b/google/ads/googleads/v10/enums/user_list_string_rule_item_operator.proto new file mode 100644 index 000000000..efc3ca054 --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_string_rule_item_operator.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListStringRuleItemOperatorProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Supported rule operator for string type. +message UserListStringRuleItemOperatorEnum { + // Enum describing possible user list string rule item operators. + enum UserListStringRuleItemOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Contains. + CONTAINS = 2; + + // Equals. + EQUALS = 3; + + // Starts with. + STARTS_WITH = 4; + + // Ends with. + ENDS_WITH = 5; + + // Not equals. + NOT_EQUALS = 6; + + // Not contains. + NOT_CONTAINS = 7; + + // Not starts with. + NOT_STARTS_WITH = 8; + + // Not ends with. + NOT_ENDS_WITH = 9; + } + + +} diff --git a/google/ads/googleads/v10/enums/user_list_type.proto b/google/ads/googleads/v10/enums/user_list_type.proto new file mode 100644 index 000000000..905cababe --- /dev/null +++ b/google/ads/googleads/v10/enums/user_list_type.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing user list type. + +// The user list types. +message UserListTypeEnum { + // Enum containing possible user list types. + enum UserListType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // UserList represented as a collection of conversion types. + REMARKETING = 2; + + // UserList represented as a combination of other user lists/interests. + LOGICAL = 3; + + // UserList created in the Google Ad Manager platform. + EXTERNAL_REMARKETING = 4; + + // UserList associated with a rule. + RULE_BASED = 5; + + // UserList with users similar to users of another UserList. + SIMILAR = 6; + + // UserList of first-party CRM data provided by advertiser in the form of + // emails or other formats. + CRM_BASED = 7; + } + + +} diff --git a/google/ads/googleads/v10/enums/value_rule_device_type.proto b/google/ads/googleads/v10/enums/value_rule_device_type.proto new file mode 100644 index 000000000..74511fa7b --- /dev/null +++ b/google/ads/googleads/v10/enums/value_rule_device_type.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleDeviceTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion value rule device type. + +// Container for enum describing possible device types used in a conversion +// value rule. +message ValueRuleDeviceTypeEnum { + // Possible device types used in conversion value rule. + enum ValueRuleDeviceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile device. + MOBILE = 2; + + // Desktop device. + DESKTOP = 3; + + // Tablet device. + TABLET = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/value_rule_geo_location_match_type.proto b/google/ads/googleads/v10/enums/value_rule_geo_location_match_type.proto new file mode 100644 index 000000000..3cbae36b7 --- /dev/null +++ b/google/ads/googleads/v10/enums/value_rule_geo_location_match_type.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleGeoLocationMatchTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion value rule geo location match type. + +// Container for enum describing possible geographic location matching types +// used in a conversion value rule. +message ValueRuleGeoLocationMatchTypeEnum { + // Possible geographic location matching types. + enum ValueRuleGeoLocationMatchType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Either Area of Interest or Location of Presence can be used to match. + ANY = 2; + + // Only Location of Presence can be used to match. + LOCATION_OF_PRESENCE = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/value_rule_operation.proto b/google/ads/googleads/v10/enums/value_rule_operation.proto new file mode 100644 index 000000000..98d0ebd0e --- /dev/null +++ b/google/ads/googleads/v10/enums/value_rule_operation.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleOperationProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion value rule operation. + +// Container for enum describing possible operations for value rules which are +// executed when rules are triggered. +message ValueRuleOperationEnum { + // Possible operations of the action of a conversion value rule. + enum ValueRuleOperation { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Add provided value to conversion value. + ADD = 2; + + // Multiply conversion value by provided value. + MULTIPLY = 3; + + // Set conversion value to provided value. + SET = 4; + } + + +} diff --git a/google/ads/googleads/v10/enums/value_rule_set_attachment_type.proto b/google/ads/googleads/v10/enums/value_rule_set_attachment_type.proto new file mode 100644 index 000000000..75977509d --- /dev/null +++ b/google/ads/googleads/v10/enums/value_rule_set_attachment_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleSetAttachmentTypeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing where the conversion value rule is attached. + +// Container for enum describing where a value rule set is attached. +message ValueRuleSetAttachmentTypeEnum { + // Possible level where a value rule set is attached. + enum ValueRuleSetAttachmentType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Attached to the customer. + CUSTOMER = 2; + + // Attached to a campaign. + CAMPAIGN = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/value_rule_set_dimension.proto b/google/ads/googleads/v10/enums/value_rule_set_dimension.proto new file mode 100644 index 000000000..8697b19ee --- /dev/null +++ b/google/ads/googleads/v10/enums/value_rule_set_dimension.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleSetDimensionProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing conversion value rule set dimension. + +// Container for enum describing possible dimensions of a conversion value rule +// set. +message ValueRuleSetDimensionEnum { + // Possible dimensions of a conversion value rule set. + enum ValueRuleSetDimension { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Dimension for geo location. + GEO_LOCATION = 2; + + // Dimension for device type. + DEVICE = 3; + + // Dimension for audience. + AUDIENCE = 4; + + // This dimension implies the rule will always apply. + NO_CONDITION = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/vanity_pharma_display_url_mode.proto b/google/ads/googleads/v10/enums/vanity_pharma_display_url_mode.proto new file mode 100644 index 000000000..c19a7ed03 --- /dev/null +++ b/google/ads/googleads/v10/enums/vanity_pharma_display_url_mode.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "VanityPharmaDisplayUrlModeProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing vanity pharma display url modes. + +// The display mode for vanity pharma URLs. +message VanityPharmaDisplayUrlModeEnum { + // Enum describing possible display modes for vanity pharma URLs. + enum VanityPharmaDisplayUrlMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Replace vanity pharma URL with manufacturer website url. + MANUFACTURER_WEBSITE_URL = 2; + + // Replace vanity pharma URL with description of the website. + WEBSITE_DESCRIPTION = 3; + } + + +} diff --git a/google/ads/googleads/v10/enums/vanity_pharma_text.proto b/google/ads/googleads/v10/enums/vanity_pharma_text.proto new file mode 100644 index 000000000..7c6e8a943 --- /dev/null +++ b/google/ads/googleads/v10/enums/vanity_pharma_text.proto @@ -0,0 +1,85 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "VanityPharmaTextProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing vanity pharma texts. + +// 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. +message VanityPharmaTextEnum { + // Enum describing possible text. + enum VanityPharmaText { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Prescription treatment website with website content in English. + PRESCRIPTION_TREATMENT_WEBSITE_EN = 2; + + // Prescription treatment website with website content in Spanish + // (Sitio de tratamientos con receta). + PRESCRIPTION_TREATMENT_WEBSITE_ES = 3; + + // Prescription device website with website content in English. + PRESCRIPTION_DEVICE_WEBSITE_EN = 4; + + // Prescription device website with website content in Spanish (Sitio de + // dispositivos con receta). + PRESCRIPTION_DEVICE_WEBSITE_ES = 5; + + // Medical device website with website content in English. + MEDICAL_DEVICE_WEBSITE_EN = 6; + + // Medical device website with website content in Spanish (Sitio de + // dispositivos médicos). + MEDICAL_DEVICE_WEBSITE_ES = 7; + + // Preventative treatment website with website content in English. + PREVENTATIVE_TREATMENT_WEBSITE_EN = 8; + + // Preventative treatment website with website content in Spanish (Sitio de + // tratamientos preventivos). + PREVENTATIVE_TREATMENT_WEBSITE_ES = 9; + + // Prescription contraception website with website content in English. + PRESCRIPTION_CONTRACEPTION_WEBSITE_EN = 10; + + // Prescription contraception website with website content in Spanish (Sitio + // de anticonceptivos con receta). + PRESCRIPTION_CONTRACEPTION_WEBSITE_ES = 11; + + // Prescription vaccine website with website content in English. + PRESCRIPTION_VACCINE_WEBSITE_EN = 12; + + // Prescription vaccine website with website content in Spanish (Sitio de + // vacunas con receta). + PRESCRIPTION_VACCINE_WEBSITE_ES = 13; + } + + +} diff --git a/google/ads/googleads/v10/enums/video_thumbnail.proto b/google/ads/googleads/v10/enums/video_thumbnail.proto new file mode 100644 index 000000000..601bff72d --- /dev/null +++ b/google/ads/googleads/v10/enums/video_thumbnail.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "VideoThumbnailProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing video thumbnails. + +// Defines the thumbnail to use for In-Display video ads. Note that +// DEFAULT_THUMBNAIL may have been uploaded by the user while thumbnails 1-3 are +// auto-generated from the video. +message VideoThumbnailEnum { + // Enum listing the possible types of a video thumbnail. + enum VideoThumbnail { + // The type has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // This is a response-only value. + UNKNOWN = 1; + + // The default thumbnail. Can be auto-generated or user-uploaded. + DEFAULT_THUMBNAIL = 2; + + // Thumbnail 1, generated from the video. + THUMBNAIL_1 = 3; + + // Thumbnail 2, generated from the video. + THUMBNAIL_2 = 4; + + // Thumbnail 3, generated from the video. + THUMBNAIL_3 = 5; + } + + +} diff --git a/google/ads/googleads/v10/enums/webpage_condition_operand.proto b/google/ads/googleads/v10/enums/webpage_condition_operand.proto new file mode 100644 index 000000000..fcf11e115 --- /dev/null +++ b/google/ads/googleads/v10/enums/webpage_condition_operand.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "WebpageConditionOperandProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing webpage condition operand. + +// Container for enum describing webpage condition operand in webpage criterion. +message WebpageConditionOperandEnum { + // The webpage condition operand in webpage criterion. + enum WebpageConditionOperand { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Operand denoting a webpage URL targeting condition. + URL = 2; + + // Operand denoting a webpage category targeting condition. + CATEGORY = 3; + + // Operand denoting a webpage title targeting condition. + PAGE_TITLE = 4; + + // Operand denoting a webpage content targeting condition. + PAGE_CONTENT = 5; + + // Operand denoting a webpage custom label targeting condition. + CUSTOM_LABEL = 6; + } + + +} diff --git a/google/ads/googleads/v10/enums/webpage_condition_operator.proto b/google/ads/googleads/v10/enums/webpage_condition_operator.proto new file mode 100644 index 000000000..376e46555 --- /dev/null +++ b/google/ads/googleads/v10/enums/webpage_condition_operator.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "WebpageConditionOperatorProto"; +option java_package = "com.google.ads.googleads.v10.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V10::Enums"; + +// Proto file describing webpage condition operator. + +// Container for enum describing webpage condition operator in webpage +// criterion. +message WebpageConditionOperatorEnum { + // The webpage condition operator in webpage criterion. + enum WebpageConditionOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The argument web condition is equal to the compared web condition. + EQUALS = 2; + + // The argument web condition is part of the compared web condition. + CONTAINS = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/BUILD.bazel b/google/ads/googleads/v10/errors/BUILD.bazel new file mode 100644 index 000000000..a74532175 --- /dev/null +++ b/google/ads/googleads/v10/errors/BUILD.bazel @@ -0,0 +1,94 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports +# subpackages. +proto_library( + name = "errors_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/ads/googleads/v10/common:common_proto", + "//google/ads/googleads/v10/enums:enums_proto", + "//google/api:annotations_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", +) + +java_proto_library( + name = "errors_java_proto", + deps = [":errors_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", +) + +csharp_proto_library( + name = "errors_csharp_proto", + deps = [":errors_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_proto_library", +) + +ruby_proto_library( + name = "errors_ruby_proto", + deps = [":errors_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_proto_library", +) + +py_proto_library( + name = "errors_py_proto", + deps = [":errors_proto"], +) diff --git a/google/ads/googleads/v10/errors/access_invitation_error.proto b/google/ads/googleads/v10/errors/access_invitation_error.proto new file mode 100644 index 000000000..5abb15e83 --- /dev/null +++ b/google/ads/googleads/v10/errors/access_invitation_error.proto @@ -0,0 +1,67 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AccessInvitationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing AccessInvitation errors. + +// Container for enum describing possible AccessInvitation errors. +message AccessInvitationErrorEnum { + // Enum describing possible AccessInvitation errors. + enum AccessInvitationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The email address is invalid for sending an invitation. + INVALID_EMAIL_ADDRESS = 2; + + // Email address already has access to this customer. + EMAIL_ADDRESS_ALREADY_HAS_ACCESS = 3; + + // Invalid invitation status for the operation. + INVALID_INVITATION_STATUS = 4; + + // Email address cannot be like abc+foo@google.com. + GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED = 5; + + // Invalid invitation id. + INVALID_INVITATION_ID = 6; + + // Email address already has a pending invitation. + EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION = 7; + + // Pending invitation limit exceeded for the customer. + PENDING_INVITATIONS_LIMIT_EXCEEDED = 8; + + // Email address doesn't conform to the email domain policy. Please see + // https://support.google.com/google-ads/answer/2375456 + EMAIL_DOMAIN_POLICY_VIOLATED = 9; + } + + +} diff --git a/google/ads/googleads/v10/errors/account_budget_proposal_error.proto b/google/ads/googleads/v10/errors/account_budget_proposal_error.proto new file mode 100644 index 000000000..02c743d01 --- /dev/null +++ b/google/ads/googleads/v10/errors/account_budget_proposal_error.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing account budget proposal errors. + +// Container for enum describing possible account budget proposal errors. +message AccountBudgetProposalErrorEnum { + // Enum describing possible account budget proposal errors. + enum AccountBudgetProposalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The field mask must be empty for create/end/remove proposals. + FIELD_MASK_NOT_ALLOWED = 2; + + // The field cannot be set because of the proposal type. + IMMUTABLE_FIELD = 3; + + // The field is required because of the proposal type. + REQUIRED_FIELD_MISSING = 4; + + // Proposals that have been approved cannot be cancelled. + CANNOT_CANCEL_APPROVED_PROPOSAL = 5; + + // Budgets that haven't been approved cannot be removed. + CANNOT_REMOVE_UNAPPROVED_BUDGET = 6; + + // Budgets that are currently running cannot be removed. + CANNOT_REMOVE_RUNNING_BUDGET = 7; + + // Budgets that haven't been approved cannot be truncated. + CANNOT_END_UNAPPROVED_BUDGET = 8; + + // Only budgets that are currently running can be truncated. + CANNOT_END_INACTIVE_BUDGET = 9; + + // All budgets must have names. + BUDGET_NAME_REQUIRED = 10; + + // Expired budgets cannot be edited after a sufficient amount of time has + // passed. + CANNOT_UPDATE_OLD_BUDGET = 11; + + // It is not permissible a propose a new budget that ends in the past. + CANNOT_END_IN_PAST = 12; + + // An expired budget cannot be extended to overlap with the running budget. + CANNOT_EXTEND_END_TIME = 13; + + // A purchase order number is required. + PURCHASE_ORDER_NUMBER_REQUIRED = 14; + + // Budgets that have a pending update cannot be updated. + PENDING_UPDATE_PROPOSAL_EXISTS = 15; + + // Cannot propose more than one budget when the corresponding billing setup + // hasn't been approved. + MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP = 16; + + // Cannot update the start time of a budget that has already started. + CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET = 17; + + // Cannot update the spending limit of a budget with an amount lower than + // what has already been spent. + SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED = 18; + + // Cannot propose a budget update without actually changing any fields. + UPDATE_IS_NO_OP = 19; + + // The end time must come after the start time. + END_TIME_MUST_FOLLOW_START_TIME = 20; + + // The budget's date range must fall within the date range of its billing + // setup. + BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP = 21; + + // The user is not authorized to mutate budgets for the given billing setup. + NOT_AUTHORIZED = 22; + + // Mutates are not allowed for the given billing setup. + INVALID_BILLING_SETUP = 23; + + // Budget creation failed as it overlaps with an pending budget proposal + // or an approved budget. + OVERLAPS_EXISTING_BUDGET = 24; + + // The control setting in user's payments profile doesn't allow budget + // creation through API. Log in to Google Ads to create budget. + CANNOT_CREATE_BUDGET_THROUGH_API = 25; + } + + +} diff --git a/google/ads/googleads/v10/errors/account_link_error.proto b/google/ads/googleads/v10/errors/account_link_error.proto new file mode 100644 index 000000000..b465b1717 --- /dev/null +++ b/google/ads/googleads/v10/errors/account_link_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AccountLinkErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing AccountLink errors. + +// Container for enum describing possible account link errors. +message AccountLinkErrorEnum { + // Enum describing possible account link errors. + enum AccountLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The new link status is invalid. + INVALID_STATUS = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_customizer_error.proto b/google/ads/googleads/v10/errors/ad_customizer_error.proto new file mode 100644 index 000000000..5d0bb95ed --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_customizer_error.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad customizer errors. + +// Container for enum describing possible ad customizer errors. +message AdCustomizerErrorEnum { + // Enum describing possible ad customizer errors. + enum AdCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Invalid date argument in countdown function. + COUNTDOWN_INVALID_DATE_FORMAT = 2; + + // Countdown end date is in the past. + COUNTDOWN_DATE_IN_PAST = 3; + + // Invalid locale string in countdown function. + COUNTDOWN_INVALID_LOCALE = 4; + + // Days-before argument to countdown function is not positive. + COUNTDOWN_INVALID_START_DAYS_BEFORE = 5; + + // A user list referenced in an IF function does not exist. + UNKNOWN_USER_LIST = 6; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_error.proto b/google/ads/googleads/v10/errors/ad_error.proto new file mode 100644 index 000000000..bd52a7c5b --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_error.proto @@ -0,0 +1,528 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad errors. + +// Container for enum describing possible ad errors. +message AdErrorEnum { + // Enum describing possible ad errors. + enum AdError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Ad customizers are not supported for ad type. + AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE = 2; + + // Estimating character sizes the string is too long. + APPROXIMATELY_TOO_LONG = 3; + + // Estimating character sizes the string is too short. + APPROXIMATELY_TOO_SHORT = 4; + + // There is a problem with the snippet. + BAD_SNIPPET = 5; + + // Cannot modify an ad. + CANNOT_MODIFY_AD = 6; + + // business name and url cannot be set at the same time + CANNOT_SET_BUSINESS_NAME_IF_URL_SET = 7; + + // The specified field is incompatible with this ad's type or settings. + CANNOT_SET_FIELD = 8; + + // Cannot set field when originAdId is set. + CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET = 9; + + // Cannot set field when an existing ad id is set for sharing. + CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING = 10; + + // Cannot set allowFlexibleColor false if no color is provided by user. + CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE = 11; + + // When user select native, no color control is allowed because we will + // always respect publisher color for native format serving. + CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING = 12; + + // Cannot specify a url for the ad type + CANNOT_SET_URL = 13; + + // Cannot specify a tracking or mobile url without also setting final urls + CANNOT_SET_WITHOUT_FINAL_URLS = 14; + + // Cannot specify a legacy url and a final url simultaneously + CANNOT_SET_WITH_FINAL_URLS = 15; + + // Cannot specify a urls in UrlData and in template fields simultaneously. + CANNOT_SET_WITH_URL_DATA = 17; + + // This operator cannot be used with a subclass of Ad. + CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR = 18; + + // Customer is not approved for mobile ads. + CUSTOMER_NOT_APPROVED_MOBILEADS = 19; + + // Customer is not approved for 3PAS richmedia ads. + CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS = 20; + + // Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads. + CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS = 21; + + // Not an eligible customer + CUSTOMER_NOT_ELIGIBLE = 22; + + // Customer is not eligible for updating beacon url + CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL = 23; + + // There already exists an ad with the same dimensions in the union. + DIMENSION_ALREADY_IN_UNION = 24; + + // Ad's dimension must be set before setting union dimension. + DIMENSION_MUST_BE_SET = 25; + + // Ad's dimension must be included in the union dimensions. + DIMENSION_NOT_IN_UNION = 26; + + // Display Url cannot be specified (applies to Ad Exchange Ads) + DISPLAY_URL_CANNOT_BE_SPECIFIED = 27; + + // Telephone number contains invalid characters or invalid format. Please + // re-enter your number using digits (0-9), dashes (-), and parentheses + // only. + DOMESTIC_PHONE_NUMBER_FORMAT = 28; + + // Emergency telephone numbers are not allowed. Please enter a valid + // domestic phone number to connect customers to your business. + EMERGENCY_PHONE_NUMBER = 29; + + // A required field was not specified or is an empty string. + EMPTY_FIELD = 30; + + // A feed attribute referenced in an ad customizer tag is not in the ad + // customizer mapping for the feed. + FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID = 31; + + // The ad customizer field mapping for the feed attribute does not match the + // expected field type. + FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH = 32; + + // The use of ad customizer tags in the ad text is disallowed. Details in + // trigger. + ILLEGAL_AD_CUSTOMIZER_TAG_USE = 33; + + // Tags of the form {PH_x}, where x is a number, are disallowed in ad text. + ILLEGAL_TAG_USE = 34; + + // The dimensions of the ad are specified or derived in multiple ways and + // are not consistent. + INCONSISTENT_DIMENSIONS = 35; + + // The status cannot differ among template ads of the same union. + INCONSISTENT_STATUS_IN_TEMPLATE_UNION = 36; + + // The length of the string is not valid. + INCORRECT_LENGTH = 37; + + // The ad is ineligible for upgrade. + INELIGIBLE_FOR_UPGRADE = 38; + + // User cannot create mobile ad for countries targeted in specified + // campaign. + INVALID_AD_ADDRESS_CAMPAIGN_TARGET = 39; + + // Invalid Ad type. A specific type of Ad is required. + INVALID_AD_TYPE = 40; + + // Headline, description or phone cannot be present when creating mobile + // image ad. + INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE = 41; + + // Image cannot be present when creating mobile text ad. + INVALID_ATTRIBUTES_FOR_MOBILE_TEXT = 42; + + // Invalid call to action text. + INVALID_CALL_TO_ACTION_TEXT = 43; + + // Invalid character in URL. + INVALID_CHARACTER_FOR_URL = 44; + + // Creative's country code is not valid. + INVALID_COUNTRY_CODE = 45; + + // Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.) + INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 47; + + // An input error whose real reason was not properly mapped (should not + // happen). + INVALID_INPUT = 48; + + // An invalid markup language was entered. + INVALID_MARKUP_LANGUAGE = 49; + + // An invalid mobile carrier was entered. + INVALID_MOBILE_CARRIER = 50; + + // Specified mobile carriers target a country not targeted by the campaign. + INVALID_MOBILE_CARRIER_TARGET = 51; + + // Wrong number of elements for given element type + INVALID_NUMBER_OF_ELEMENTS = 52; + + // The format of the telephone number is incorrect. Please re-enter the + // number using the correct format. + INVALID_PHONE_NUMBER_FORMAT = 53; + + // The certified vendor format id is incorrect. + INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID = 54; + + // The template ad data contains validation errors. + INVALID_TEMPLATE_DATA = 55; + + // The template field doesn't have have the correct type. + INVALID_TEMPLATE_ELEMENT_FIELD_TYPE = 56; + + // Invalid template id. + INVALID_TEMPLATE_ID = 57; + + // After substituting replacement strings, the line is too wide. + LINE_TOO_WIDE = 58; + + // The feed referenced must have ad customizer mapping to be used in a + // customizer tag. + MISSING_AD_CUSTOMIZER_MAPPING = 59; + + // Missing address component in template element address field. + MISSING_ADDRESS_COMPONENT = 60; + + // An ad name must be entered. + MISSING_ADVERTISEMENT_NAME = 61; + + // Business name must be entered. + MISSING_BUSINESS_NAME = 62; + + // Description (line 2) must be entered. + MISSING_DESCRIPTION1 = 63; + + // Description (line 3) must be entered. + MISSING_DESCRIPTION2 = 64; + + // The destination url must contain at least one tag (e.g. {lpurl}) + MISSING_DESTINATION_URL_TAG = 65; + + // The tracking url template of ExpandedDynamicSearchAd must contain at + // least one tag. (e.g. {lpurl}) + MISSING_LANDING_PAGE_URL_TAG = 66; + + // A valid dimension must be specified for this ad. + MISSING_DIMENSION = 67; + + // A display URL must be entered. + MISSING_DISPLAY_URL = 68; + + // Headline must be entered. + MISSING_HEADLINE = 69; + + // A height must be entered. + MISSING_HEIGHT = 70; + + // An image must be entered. + MISSING_IMAGE = 71; + + // Marketing image or product videos are required. + MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS = 72; + + // The markup language in which your site is written must be entered. + MISSING_MARKUP_LANGUAGES = 73; + + // A mobile carrier must be entered. + MISSING_MOBILE_CARRIER = 74; + + // Phone number must be entered. + MISSING_PHONE = 75; + + // Missing required template fields + MISSING_REQUIRED_TEMPLATE_FIELDS = 76; + + // Missing a required field value + MISSING_TEMPLATE_FIELD_VALUE = 77; + + // The ad must have text. + MISSING_TEXT = 78; + + // A visible URL must be entered. + MISSING_VISIBLE_URL = 79; + + // A width must be entered. + MISSING_WIDTH = 80; + + // Only 1 feed can be used as the source of ad customizer substitutions in a + // single ad. + MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED = 81; + + // TempAdUnionId must be use when adding template ads. + MUST_USE_TEMP_AD_UNION_ID_ON_ADD = 82; + + // The string has too many characters. + TOO_LONG = 83; + + // The string has too few characters. + TOO_SHORT = 84; + + // Ad union dimensions cannot change for saved ads. + UNION_DIMENSIONS_CANNOT_CHANGE = 85; + + // Address component is not {country, lat, lng}. + UNKNOWN_ADDRESS_COMPONENT = 86; + + // Unknown unique field name + UNKNOWN_FIELD_NAME = 87; + + // Unknown unique name (template element type specifier) + UNKNOWN_UNIQUE_NAME = 88; + + // Unsupported ad dimension + UNSUPPORTED_DIMENSIONS = 89; + + // URL starts with an invalid scheme. + URL_INVALID_SCHEME = 90; + + // URL ends with an invalid top-level domain name. + URL_INVALID_TOP_LEVEL_DOMAIN = 91; + + // URL contains illegal characters. + URL_MALFORMED = 92; + + // URL must contain a host name. + URL_NO_HOST = 93; + + // URL not equivalent during upgrade. + URL_NOT_EQUIVALENT = 94; + + // URL host name too long to be stored as visible URL (applies to Ad + // Exchange ads) + URL_HOST_NAME_TOO_LONG = 95; + + // URL must start with a scheme. + URL_NO_SCHEME = 96; + + // URL should end in a valid domain extension, such as .com or .net. + URL_NO_TOP_LEVEL_DOMAIN = 97; + + // URL must not end with a path. + URL_PATH_NOT_ALLOWED = 98; + + // URL must not specify a port. + URL_PORT_NOT_ALLOWED = 99; + + // URL must not contain a query. + URL_QUERY_NOT_ALLOWED = 100; + + // A url scheme is not allowed in front of tag in tracking url template + // (e.g. http://{lpurl}) + URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 102; + + // The user does not have permissions to create a template ad for the given + // template. + USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE = 103; + + // Expandable setting is inconsistent/wrong. For example, an AdX ad is + // invalid if it has a expandable vendor format but no expanding directions + // specified, or expanding directions is specified, but the vendor format is + // not expandable. + INCONSISTENT_EXPANDABLE_SETTINGS = 104; + + // Format is invalid + INVALID_FORMAT = 105; + + // The text of this field did not match a pattern of allowed values. + INVALID_FIELD_TEXT = 106; + + // Template element is mising + ELEMENT_NOT_PRESENT = 107; + + // Error occurred during image processing + IMAGE_ERROR = 108; + + // The value is not within the valid range + VALUE_NOT_IN_RANGE = 109; + + // Template element field is not present + FIELD_NOT_PRESENT = 110; + + // Address is incomplete + ADDRESS_NOT_COMPLETE = 111; + + // Invalid address + ADDRESS_INVALID = 112; + + // Error retrieving specified video + VIDEO_RETRIEVAL_ERROR = 113; + + // Error processing audio + AUDIO_ERROR = 114; + + // Display URL is incorrect for YouTube PYV ads + INVALID_YOUTUBE_DISPLAY_URL = 115; + + // Too many product Images in GmailAd + TOO_MANY_PRODUCT_IMAGES = 116; + + // Too many product Videos in GmailAd + TOO_MANY_PRODUCT_VIDEOS = 117; + + // The device preference is not compatible with the ad type + INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE = 118; + + // Call tracking is not supported for specified country. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 119; + + // Carrier specific short number is not allowed. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 120; + + // Specified phone number type is disallowed. + DISALLOWED_NUMBER_TYPE = 121; + + // Phone number not supported for country. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 122; + + // Phone number not supported with call tracking enabled for country. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 123; + + // Premium rate phone number is not allowed. + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 124; + + // Vanity phone number is not allowed. + VANITY_PHONE_NUMBER_NOT_ALLOWED = 125; + + // Invalid call conversion type id. + INVALID_CALL_CONVERSION_TYPE_ID = 126; + + // Cannot disable call conversion and set conversion type id. + CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID = 127; + + // Cannot set path2 without path1. + CANNOT_SET_PATH2_WITHOUT_PATH1 = 128; + + // Missing domain name in campaign setting when adding expanded dynamic + // search ad. + MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME = 129; + + // The associated ad is not compatible with restriction type. + INCOMPATIBLE_WITH_RESTRICTION_TYPE = 130; + + // Consent for call recording is required for creating/updating call only + // ads. Please see https://support.google.com/google-ads/answer/7412639. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 131; + + // Either an image or a media bundle is required in a display upload ad. + MISSING_IMAGE_OR_MEDIA_BUNDLE = 132; + + // The display upload product type is not supported in this campaign. + PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN = 133; + + // The default value of an ad placeholder can not be the empty string. + PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE = 134; + + // Ad placeholders with countdown functions must not have a default value. + PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE = 135; + + // A previous ad placeholder that had a default value was found which means + // that all (non-countdown) placeholders must have a default value. This + // ad placeholder does not have a default value. + PLACEHOLDER_DEFAULT_VALUE_MISSING = 136; + + // A previous ad placeholder that did not have a default value was found + // which means that no placeholders may have a default value. This + // ad placeholder does have a default value. + UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE = 137; + + // Two ad customizers may not be directly adjacent in an ad text. They must + // be separated by at least one character. + AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT = 138; + + // The ad is not associated with any enabled AdGroupAd, and cannot be + // updated. + UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION = 139; + + // Call Ad verification url and final url don't have same domain. + CALL_AD_VERIFICATION_URL_FINAL_URL_DOES_NOT_HAVE_SAME_DOMAIN = 140; + + // Final url and verification url cannot both be empty for call ads. + CALL_AD_FINAL_URL_AND_VERIFICATION_URL_CANNOT_BOTH_BE_EMPTY = 154; + + // Too many ad customizers in one asset. + TOO_MANY_AD_CUSTOMIZERS = 141; + + // The ad customizer tag is recognized, but the format is invalid. + INVALID_AD_CUSTOMIZER_FORMAT = 142; + + // Customizer tags cannot be nested. + NESTED_AD_CUSTOMIZER_SYNTAX = 143; + + // The ad customizer syntax used in the ad is not supported. + UNSUPPORTED_AD_CUSTOMIZER_SYNTAX = 144; + + // There exists unpaired brace in the ad customizer tag. + UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG = 145; + + // More than one type of countdown tag exists among all text lines. + MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS = 146; + + // Date time in the countdown tag is invalid. + DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID = 147; + + // Date time in the countdown tag is in the past. + DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST = 148; + + // Cannot recognize the ad customizer tag. + UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND = 149; + + // Customizer type forbidden for this field. + CUSTOMIZER_TYPE_FORBIDDEN_FOR_FIELD = 150; + + // Customizer attribute name is invalid. + INVALID_CUSTOMIZER_ATTRIBUTE_NAME = 151; + + // App store value does not match the value of the app store in the app + // specified in the campaign. + STORE_MISMATCH = 152; + + // Missing required image aspect ratio. + MISSING_REQUIRED_IMAGE_ASPECT_RATIO = 153; + + // Aspect ratios mismatch between different assets. + MISMATCHED_ASPECT_RATIOS = 155; + + // Images must be unique between different carousel card assets. + DUPLICATE_IMAGE_ACROSS_CAROUSEL_CARDS = 156; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_group_ad_error.proto b/google/ads/googleads/v10/errors/ad_group_ad_error.proto new file mode 100644 index 000000000..1243c1476 --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_group_ad_error.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad group ad errors. + +// Container for enum describing possible ad group ad errors. +message AdGroupAdErrorEnum { + // Enum describing possible ad group ad errors. + enum AdGroupAdError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // No link found between the adgroup ad and the label. + AD_GROUP_AD_LABEL_DOES_NOT_EXIST = 2; + + // The label has already been attached to the adgroup ad. + AD_GROUP_AD_LABEL_ALREADY_EXISTS = 3; + + // The specified ad was not found in the adgroup + AD_NOT_UNDER_ADGROUP = 4; + + // Removed ads may not be modified + CANNOT_OPERATE_ON_REMOVED_ADGROUPAD = 5; + + // An ad of this type is deprecated and cannot be created. Only deletions + // are permitted. + CANNOT_CREATE_DEPRECATED_ADS = 6; + + // Text ads are deprecated and cannot be created. Use expanded text ads + // instead. + CANNOT_CREATE_TEXT_ADS = 7; + + // A required field was not specified or is an empty string. + EMPTY_FIELD = 8; + + // An ad may only be modified once per call + RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 9; + + // AdGroupAds with the given ad type cannot be paused. + AD_TYPE_CANNOT_BE_PAUSED = 10; + + // AdGroupAds with the given ad type cannot be removed. + AD_TYPE_CANNOT_BE_REMOVED = 11; + + // An ad of this type is deprecated and cannot be updated. Only removals + // are permitted. + CANNOT_UPDATE_DEPRECATED_ADS = 12; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_group_bid_modifier_error.proto b/google/ads/googleads/v10/errors/ad_group_bid_modifier_error.proto new file mode 100644 index 000000000..fbdc4480f --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_group_bid_modifier_error.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupBidModifierErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad group bid modifier errors. + +// Container for enum describing possible ad group bid modifier errors. +message AdGroupBidModifierErrorEnum { + // Enum describing possible ad group bid modifier errors. + enum AdGroupBidModifierError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The criterion ID does not support bid modification. + CRITERION_ID_NOT_SUPPORTED = 2; + + // Cannot override the bid modifier for the given criterion ID if the parent + // campaign is opted out of the same criterion. + CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_group_criterion_customizer_error.proto b/google/ads/googleads/v10/errors/ad_group_criterion_customizer_error.proto new file mode 100644 index 000000000..76005555e --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_group_criterion_customizer_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad group criterion customizer errors. + +// Container for enum describing possible ad group criterion customizer errors. +message AdGroupCriterionCustomizerErrorEnum { + // Enum describing possible ad group criterion customizer errors. + enum AdGroupCriterionCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Only keyword type criterion is allowed to link customizer attribute. + CRITERION_IS_NOT_KEYWORD = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_group_criterion_error.proto b/google/ads/googleads/v10/errors/ad_group_criterion_error.proto new file mode 100644 index 000000000..9a8787217 --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_group_criterion_error.proto @@ -0,0 +1,135 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad group criterion errors. + +// Container for enum describing possible ad group criterion errors. +message AdGroupCriterionErrorEnum { + // Enum describing possible ad group criterion errors. + enum AdGroupCriterionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // No link found between the AdGroupCriterion and the label. + AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST = 2; + + // The label has already been attached to the AdGroupCriterion. + AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS = 3; + + // Negative AdGroupCriterion cannot have labels. + CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION = 4; + + // Too many operations for a single call. + TOO_MANY_OPERATIONS = 5; + + // Negative ad group criteria are not updateable. + CANT_UPDATE_NEGATIVE = 6; + + // Concrete type of criterion (keyword v.s. placement) is required for ADD + // and SET operations. + CONCRETE_TYPE_REQUIRED = 7; + + // Bid is incompatible with ad group's bidding settings. + BID_INCOMPATIBLE_WITH_ADGROUP = 8; + + // Cannot target and exclude the same criterion at once. + CANNOT_TARGET_AND_EXCLUDE = 9; + + // The URL of a placement is invalid. + ILLEGAL_URL = 10; + + // Keyword text was invalid. + INVALID_KEYWORD_TEXT = 11; + + // Destination URL was invalid. + INVALID_DESTINATION_URL = 12; + + // The destination url must contain at least one tag (e.g. {lpurl}) + MISSING_DESTINATION_URL_TAG = 13; + + // Keyword-level cpm bid is not supported + KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM = 14; + + // For example, cannot add a biddable ad group criterion that had been + // removed. + INVALID_USER_STATUS = 15; + + // Criteria type cannot be targeted for the ad group. Either the account is + // restricted to keywords only, the criteria type is incompatible with the + // campaign's bidding strategy, or the criteria type can only be applied to + // campaigns. + CANNOT_ADD_CRITERIA_TYPE = 16; + + // Criteria type cannot be excluded for the ad group. Refer to the + // documentation for a specific criterion to check if it is excludable. + CANNOT_EXCLUDE_CRITERIA_TYPE = 17; + + // Partial failure is not supported for shopping campaign mutate operations. + CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE = 27; + + // Operations in the mutate request changes too many shopping ad groups. + // Please split requests for multiple shopping ad groups across multiple + // requests. + OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS = 28; + + // Not allowed to modify url fields of an ad group criterion if there are + // duplicate elements for that ad group criterion in the request. + CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS = 29; + + // Cannot set url fields without also setting final urls. + CANNOT_SET_WITHOUT_FINAL_URLS = 30; + + // Cannot clear final urls if final mobile urls exist. + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST = 31; + + // Cannot clear final urls if final app urls exist. + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST = 32; + + // Cannot clear final urls if tracking url template exists. + CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS = 33; + + // Cannot clear final urls if url custom parameters exist. + CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST = 34; + + // Cannot set both destination url and final urls. + CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS = 35; + + // Cannot set both destination url and tracking url template. + CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE = 36; + + // Final urls are not supported for this criterion type. + FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 37; + + // Final mobile urls are not supported for this criterion type. + FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 38; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_group_customizer_error.proto b/google/ads/googleads/v10/errors/ad_group_customizer_error.proto new file mode 100644 index 000000000..83ac4b2d9 --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_group_customizer_error.proto @@ -0,0 +1,42 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad group customizer errors. + +// Container for enum describing possible ad group customizer errors. +message AdGroupCustomizerErrorEnum { + // Enum describing possible ad group customizer errors. + enum AdGroupCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_group_error.proto b/google/ads/googleads/v10/errors/ad_group_error.proto new file mode 100644 index 000000000..adf02bca4 --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_group_error.proto @@ -0,0 +1,89 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad group errors. + +// Container for enum describing possible ad group errors. +message AdGroupErrorEnum { + // Enum describing possible ad group errors. + enum AdGroupError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // AdGroup with the same name already exists for the campaign. + DUPLICATE_ADGROUP_NAME = 2; + + // AdGroup name is not valid. + INVALID_ADGROUP_NAME = 3; + + // Advertiser is not allowed to target sites or set site bids that are not + // on the Google Search Network. + ADVERTISER_NOT_ON_CONTENT_NETWORK = 5; + + // Bid amount is too big. + BID_TOO_BIG = 6; + + // AdGroup bid does not match the campaign's bidding strategy. + BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH = 7; + + // AdGroup name is required for Add. + MISSING_ADGROUP_NAME = 8; + + // No link found between the ad group and the label. + ADGROUP_LABEL_DOES_NOT_EXIST = 9; + + // The label has already been attached to the ad group. + ADGROUP_LABEL_ALREADY_EXISTS = 10; + + // The CriterionTypeGroup is not supported for the content bid dimension. + INVALID_CONTENT_BID_CRITERION_TYPE_GROUP = 11; + + // The ad group type is not compatible with the campaign channel type. + AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE = 12; + + // The ad group type is not supported in the country of sale of the + // campaign. + ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY = 13; + + // Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to + // campaigns that have DynamicSearchAdsSetting attached. + CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING = 14; + + // Promoted hotels ad groups are only available to customers on the + // allow-list. + PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER = 15; + + // The field type cannot be excluded because an active ad group-asset link + // of this type exists. + INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 16; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_group_feed_error.proto b/google/ads/googleads/v10/errors/ad_group_feed_error.proto new file mode 100644 index 000000000..bc36bb22f --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_group_feed_error.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupFeedErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad group feed errors. + +// Container for enum describing possible ad group feed errors. +message AdGroupFeedErrorEnum { + // Enum describing possible ad group feed errors. + enum AdGroupFeedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An active feed already exists for this ad group and place holder type. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; + + // The specified feed is removed. + CANNOT_CREATE_FOR_REMOVED_FEED = 3; + + // The AdGroupFeed already exists. UPDATE operation should be used to modify + // the existing AdGroupFeed. + ADGROUP_FEED_ALREADY_EXISTS = 4; + + // Cannot operate on removed AdGroupFeed. + CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED = 5; + + // Invalid placeholder type. + INVALID_PLACEHOLDER_TYPE = 6; + + // Feed mapping for this placeholder type does not exist. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7; + + // Location AdGroupFeeds cannot be created unless there is a location + // CustomerFeed for the specified feed. + NO_EXISTING_LOCATION_CUSTOMER_FEED = 8; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_parameter_error.proto b/google/ads/googleads/v10/errors/ad_parameter_error.proto new file mode 100644 index 000000000..ffe5089bb --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_parameter_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdParameterErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad parameter errors. + +// Container for enum describing possible ad parameter errors. +message AdParameterErrorEnum { + // Enum describing possible ad parameter errors. + enum AdParameterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The ad group criterion must be a keyword criterion. + AD_GROUP_CRITERION_MUST_BE_KEYWORD = 2; + + // The insertion text is invalid. + INVALID_INSERTION_TEXT_FORMAT = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/ad_sharing_error.proto b/google/ads/googleads/v10/errors/ad_sharing_error.proto new file mode 100644 index 000000000..781018c72 --- /dev/null +++ b/google/ads/googleads/v10/errors/ad_sharing_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdSharingErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ad sharing errors. + +// Container for enum describing possible ad sharing errors. +message AdSharingErrorEnum { + // Enum describing possible ad sharing errors. + enum AdSharingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Error resulting in attempting to add an Ad to an AdGroup that already + // contains the Ad. + AD_GROUP_ALREADY_CONTAINS_AD = 2; + + // Ad is not compatible with the AdGroup it is being shared with. + INCOMPATIBLE_AD_UNDER_AD_GROUP = 3; + + // Cannot add AdGroupAd on inactive Ad. + CANNOT_SHARE_INACTIVE_AD = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/adx_error.proto b/google/ads/googleads/v10/errors/adx_error.proto new file mode 100644 index 000000000..1170ec66e --- /dev/null +++ b/google/ads/googleads/v10/errors/adx_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdxErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing adx errors. + +// Container for enum describing possible adx errors. +message AdxErrorEnum { + // Enum describing possible adx errors. + enum AdxError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Attempt to use non-AdX feature by AdX customer. + UNSUPPORTED_FEATURE = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/asset_error.proto b/google/ads/googleads/v10/errors/asset_error.proto new file mode 100644 index 000000000..872c9c363 --- /dev/null +++ b/google/ads/googleads/v10/errors/asset_error.proto @@ -0,0 +1,148 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing asset errors. + +// Container for enum describing possible asset errors. +message AssetErrorEnum { + // Enum describing possible asset errors. + enum AssetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The customer is not is not on the allow-list for this asset type. + CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE = 13; + + // Assets are duplicated across operations. + DUPLICATE_ASSET = 3; + + // The asset name is duplicated, either across operations or with an + // existing asset. + DUPLICATE_ASSET_NAME = 4; + + // The Asset.asset_data oneof is empty. + ASSET_DATA_IS_MISSING = 5; + + // The asset has a name which is different from an existing duplicate that + // represents the same content. + CANNOT_MODIFY_ASSET_NAME = 6; + + // The field cannot be set for this asset type. + FIELD_INCOMPATIBLE_WITH_ASSET_TYPE = 7; + + // Call to action must come from the list of supported values. + INVALID_CALL_TO_ACTION_TEXT = 8; + + // A lead form asset is created with an invalid combination of input fields. + LEAD_FORM_INVALID_FIELDS_COMBINATION = 9; + + // Lead forms require that the Terms of Service have been agreed to before + // mutates can be executed. + LEAD_FORM_MISSING_AGREEMENT = 10; + + // Asset status is invalid in this operation. + INVALID_ASSET_STATUS = 11; + + // The field cannot be modified by this asset type. + FIELD_CANNOT_BE_MODIFIED_FOR_ASSET_TYPE = 12; + + // Ad schedules for the same asset cannot overlap. + SCHEDULES_CANNOT_OVERLAP = 14; + + // Cannot set both percent off and money amount off fields of promotion + // asset. + PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 15; + + // Cannot set both promotion code and orders over amount fields of promotion + // asset. + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 16; + + // The field has too many decimal places specified. + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 17; + + // Duplicate assets across operations, which have identical Asset.asset_data + // oneof, cannot have different asset level fields for asset types which are + // deduped. + DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE = 18; + + // Carrier specific short number is not allowed. + CALL_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 19; + + // Customer consent required for call recording Terms of Service. + CALL_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 20; + + // The type of the specified phone number is not allowed. + CALL_DISALLOWED_NUMBER_TYPE = 21; + + // If the default call_conversion_action is not used, the customer must have + // a ConversionAction with the same id and the ConversionAction must be call + // conversion type. + CALL_INVALID_CONVERSION_ACTION = 22; + + // The country code of the phone number is invalid. + CALL_INVALID_COUNTRY_CODE = 23; + + // The format of the phone number is incorrect. + CALL_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 24; + + // The input phone number is not a valid phone number. + CALL_INVALID_PHONE_NUMBER = 25; + + // The phone number is not supported for country. + CALL_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 26; + + // Premium rate phone number is not allowed. + CALL_PREMIUM_RATE_NUMBER_NOT_ALLOWED = 27; + + // Vanity phone number is not allowed. + CALL_VANITY_PHONE_NUMBER_NOT_ALLOWED = 28; + + // PriceOffering cannot have the same value for header and description. + PRICE_HEADER_SAME_AS_DESCRIPTION = 29; + + // AppId is invalid. + MOBILE_APP_INVALID_APP_ID = 30; + + // Invalid App download URL in final URLs. + MOBILE_APP_INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL = 31; + + // Asset name is required for the asset type. + NAME_REQUIRED_FOR_ASSET_TYPE = 32; + + // Legacy qualifying questions cannot be in the same Lead Form as + // custom questions. + LEAD_FORM_LEGACY_QUALIFYING_QUESTIONS_DISALLOWED = 33; + + // Unique name is required for this asset type. + NAME_CONFLICT_FOR_ASSET_TYPE = 34; + } + + +} diff --git a/google/ads/googleads/v10/errors/asset_group_asset_error.proto b/google/ads/googleads/v10/errors/asset_group_asset_error.proto new file mode 100644 index 000000000..a5908c2cf --- /dev/null +++ b/google/ads/googleads/v10/errors/asset_group_asset_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupAssetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing asset group asset errors. + +// Container for enum describing possible asset group asset errors. +message AssetGroupAssetErrorEnum { + // Enum describing possible asset group asset errors. + enum AssetGroupAssetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot add duplicated asset group asset. + DUPLICATE_RESOURCE = 2; + + // Expandable tags are not allowed in description assets. + EXPANDABLE_TAGS_NOT_ALLOWED_IN_DESCRIPTION = 3; + + // Ad customizers are not supported in assetgroup's text assets. + AD_CUSTOMIZER_NOT_SUPPORTED = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/asset_group_error.proto b/google/ads/googleads/v10/errors/asset_group_error.proto new file mode 100644 index 000000000..108c35943 --- /dev/null +++ b/google/ads/googleads/v10/errors/asset_group_error.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing asset group errors. + +// Container for enum describing possible asset group errors. +message AssetGroupErrorEnum { + // Enum describing possible asset group errors. + enum AssetGroupError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Each asset group in a single campaign must have a unique name. + DUPLICATE_NAME = 2; + + // Cannot add asset group for the campaign type. + CANNOT_ADD_ASSET_GROUP_FOR_CAMPAIGN_TYPE = 3; + + // Not enough headline asset for a valid asset group. + NOT_ENOUGH_HEADLINE_ASSET = 4; + + // Not enough long headline asset for a valid asset group. + NOT_ENOUGH_LONG_HEADLINE_ASSET = 5; + + // Not enough description headline asset for a valid asset group. + NOT_ENOUGH_DESCRIPTION_ASSET = 6; + + // Not enough business name asset for a valid asset group. + NOT_ENOUGH_BUSINESS_NAME_ASSET = 7; + + // Not enough marketing image asset for a valid asset group. + NOT_ENOUGH_MARKETING_IMAGE_ASSET = 8; + + // Not enough square marketing image asset for a valid asset group. + NOT_ENOUGH_SQUARE_MARKETING_IMAGE_ASSET = 9; + + // Not enough logo asset for a valid asset group. + NOT_ENOUGH_LOGO_ASSET = 10; + + // Final url and shopping merchant url does not have the same domain. + FINAL_URL_SHOPPING_MERCHANT_HOME_PAGE_URL_DOMAINS_DIFFER = 11; + } + + +} diff --git a/google/ads/googleads/v10/errors/asset_group_listing_group_filter_error.proto b/google/ads/googleads/v10/errors/asset_group_listing_group_filter_error.proto new file mode 100644 index 000000000..d4adb9286 --- /dev/null +++ b/google/ads/googleads/v10/errors/asset_group_listing_group_filter_error.proto @@ -0,0 +1,83 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupListingGroupFilterErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing asset group asset errors. + +// Container for enum describing possible asset group listing group filter +// errors. +message AssetGroupListingGroupFilterErrorEnum { + // Enum describing possible asset group listing group filter errors. + enum AssetGroupListingGroupFilterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Listing group tree is too deep. + TREE_TOO_DEEP = 2; + + // Listing Group UNIT node cannot have children. + UNIT_CANNOT_HAVE_CHILDREN = 3; + + // Listing Group SUBDIVISION node must have everything else child. + SUBDIVISION_MUST_HAVE_EVERYTHING_ELSE_CHILD = 4; + + // Dimension type of Listing Group must be the same as that of its siblings. + DIFFERENT_DIMENSION_TYPE_BETWEEN_SIBLINGS = 5; + + // The sibling Listing Groups target exactly the same dimension value. + SAME_DIMENSION_VALUE_BETWEEN_SIBLINGS = 6; + + // The dimension type is the same as one of the ancestor Listing Groups. + SAME_DIMENSION_TYPE_BETWEEN_ANCESTORS = 7; + + // Each Listing Group tree must have a single root. + MULTIPLE_ROOTS = 8; + + // Invalid Listing Group dimension value. + INVALID_DIMENSION_VALUE = 9; + + // Hierarchical dimension must refine a dimension of the same type. + MUST_REFINE_HIERARCHICAL_PARENT_TYPE = 10; + + // Invalid Product Bidding Category. + INVALID_PRODUCT_BIDDING_CATEGORY = 11; + + // Modifying case value is allowed only while updating the entire subtree at + // the same time. + CHANGING_CASE_VALUE_WITH_CHILDREN = 12; + + // Subdivision node has children which must be removed first. + SUBDIVISION_HAS_CHILDREN = 13; + + // Dimension can't subdivide everything-else node in its own hierarchy. + CANNOT_REFINE_HIERARCHICAL_EVERYTHING_ELSE = 14; + } + + +} diff --git a/google/ads/googleads/v10/errors/asset_link_error.proto b/google/ads/googleads/v10/errors/asset_link_error.proto new file mode 100644 index 000000000..1f6ace507 --- /dev/null +++ b/google/ads/googleads/v10/errors/asset_link_error.proto @@ -0,0 +1,106 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetLinkErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing asset link errors. + +// Container for enum describing possible asset link errors. +message AssetLinkErrorEnum { + // Enum describing possible asset link errors. + enum AssetLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Pinning is not supported for the given asset link field. + PINNING_UNSUPPORTED = 2; + + // The given field type is not supported to be added directly via asset + // links. + UNSUPPORTED_FIELD_TYPE = 3; + + // The given asset's type and the specified field type are incompatible. + FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE = 4; + + // The specified field type is incompatible with the given campaign type. + FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE = 5; + + // The campaign advertising channel type cannot be associated with the given + // asset due to channel-based restrictions on the asset's fields. + INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE = 6; + + // The image asset provided is not within the dimension constraints + // specified for the submitted asset field. + IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE = 7; + + // The pinned field is not valid for the submitted asset field. + INVALID_PINNED_FIELD = 8; + + // The media bundle asset provided is too large for the submitted asset + // field. + MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE = 9; + + // Not enough assets are available for use with other fields since other + // assets are pinned to specific fields. + NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION = 10; + + // Not enough assets with fallback are available. When validating the + // minimum number of assets, assets without fallback (e.g. assets that + // contain location tag without default value "{LOCATION(City)}") will not + // be counted. + NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK = 11; + + // This is a combination of the + // NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION and + // NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK errors. Not enough assets + // with fallback are available since some assets are pinned. + NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION = 12; + + // The YouTube video referenced in the provided asset has been removed. + YOUTUBE_VIDEO_REMOVED = 13; + + // The YouTube video referenced in the provided asset is too long for the + // field submitted. + YOUTUBE_VIDEO_TOO_LONG = 14; + + // The YouTube video referenced in the provided asset is too short for the + // field submitted. + YOUTUBE_VIDEO_TOO_SHORT = 15; + + // The status is invalid for the operation specified. + INVALID_STATUS = 17; + + // The YouTube video referenced in the provided asset has unknown duration. + // This might be the case for a livestream video or a video being currently + // uploaded to YouTube. In both cases, the video duration should eventually + // get resolved. + YOUTUBE_VIDEO_DURATION_NOT_DEFINED = 18; + } + + +} diff --git a/google/ads/googleads/v10/errors/asset_set_asset_error.proto b/google/ads/googleads/v10/errors/asset_set_asset_error.proto new file mode 100644 index 000000000..9f0d6f6d3 --- /dev/null +++ b/google/ads/googleads/v10/errors/asset_set_asset_error.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetAssetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing asset set asset errors. + +// Container for enum describing possible asset set asset errors. +message AssetSetAssetErrorEnum { + // Enum describing possible asset set asset errors. + enum AssetSetAssetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The asset type is not eligible to be linked to the specific type of asset + // set. + INVALID_ASSET_TYPE = 2; + + // The asset set type is not eligible to contain the specified type of + // assets. + INVALID_ASSET_SET_TYPE = 3; + + // The asset contains duplicate external key with another asset in the asset + // set. + DUPLICATE_EXTERNAL_KEY = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/asset_set_error.proto b/google/ads/googleads/v10/errors/asset_set_error.proto new file mode 100644 index 000000000..9ff363a91 --- /dev/null +++ b/google/ads/googleads/v10/errors/asset_set_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing asset set errors. + +// Container for enum describing possible asset set errors. +message AssetSetErrorEnum { + // Enum describing possible asset set errors. + enum AssetSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The asset set name matches that of another enabled asset set. + DUPLICATE_ASSET_SET_NAME = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/asset_set_link_error.proto b/google/ads/googleads/v10/errors/asset_set_link_error.proto new file mode 100644 index 000000000..a486ffe1b --- /dev/null +++ b/google/ads/googleads/v10/errors/asset_set_link_error.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetLinkErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing asset set link errors. + +// Container for enum describing possible asset set link errors. +message AssetSetLinkErrorEnum { + // Enum describing possible asset set link errors. + enum AssetSetLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Advertising channel type cannot be attached to the asset set due to + // channel-based restrictions. + INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE = 2; + + // For this asset set type, only one campaign to feed linkage is allowed. + DUPLICATE_FEED_LINK = 3; + + // The asset set type and campaign type are incompatible. + INCOMPATIBLE_ASSET_SET_TYPE_WITH_CAMPAIGN_TYPE = 4; + + // Cannot link duplicate asset sets to the same campaign. + DUPLICATE_ASSET_SET_LINK = 5; + + // Cannot remove the asset set link. If a campaign is linked with only one + // asset set and you attempt to unlink them, this error will be triggered. + ASSET_SET_LINK_CANNOT_BE_REMOVED = 6; + } + + +} diff --git a/google/ads/googleads/v10/errors/audience_error.proto b/google/ads/googleads/v10/errors/audience_error.proto new file mode 100644 index 000000000..1317485f5 --- /dev/null +++ b/google/ads/googleads/v10/errors/audience_error.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AudienceErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing audience errors. + +// Container for enum describing possible audience errors. +message AudienceErrorEnum { + // Enum describing possible audience errors. + enum AudienceError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An audience with this name already exists. + NAME_ALREADY_IN_USE = 2; + + // A dimension within the audience definition is not valid. + DIMENSION_INVALID = 3; + + // One of the audience segment added is not found. + AUDIENCE_SEGMENT_NOT_FOUND = 4; + + // One of the audience segment type is not supported. + AUDIENCE_SEGMENT_TYPE_NOT_SUPPORTED = 5; + + // The same segment already exists in this audience. + DUPLICATE_AUDIENCE_SEGMENT = 6; + + // Audience can't have more than allowed number segments. + TOO_MANY_SEGMENTS = 7; + + // Audience can't have multiple dimensions of same type. + TOO_MANY_DIMENSIONS_OF_SAME_TYPE = 8; + + // The audience cannot be removed, because it is currently used in an + // ad group criterion or asset group signal in an (enabled or paused) + // ad group or campaign. + IN_USE = 9; + } + + +} diff --git a/google/ads/googleads/v10/errors/authentication_error.proto b/google/ads/googleads/v10/errors/authentication_error.proto new file mode 100644 index 000000000..8de6db5c8 --- /dev/null +++ b/google/ads/googleads/v10/errors/authentication_error.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AuthenticationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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; + + // Google 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; + + // User in the cookie is not a valid Ads user. + 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 Google Ads 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 Google Ads account, enable Advanced Protection in your + // Google account at https://landing.google.com/advancedprotection. + ADVANCED_PROTECTION_NOT_ENROLLED = 24; + } + + +} diff --git a/google/ads/googleads/v10/errors/authorization_error.proto b/google/ads/googleads/v10/errors/authorization_error.proto new file mode 100644 index 000000000..aca006d5e --- /dev/null +++ b/google/ads/googleads/v10/errors/authorization_error.proto @@ -0,0 +1,93 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AuthorizationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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/google-ads/api/docs/concepts/call-structure#cid + USER_PERMISSION_DENIED = 2; + + // The developer token is not on the allow-list. + DEVELOPER_TOKEN_NOT_ON_ALLOWLIST = 13; + + // The developer token is not allowed with the project sent in the request. + DEVELOPER_TOKEN_PROHIBITED = 4; + + // 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 + // (e.g., ADD, UPDATE, REMOVE) on the resource or call a method. + ACTION_NOT_PERMITTED = 7; + + // Signup not complete. + INCOMPLETE_SIGNUP = 8; + + // The customer can't be used because it isn't enabled. + CUSTOMER_NOT_ENABLED = 24; + + // The developer must sign the terms of service. They can be found here: + // ads.google.com/aw/apicenter + MISSING_TOS = 9; + + // The developer token is not approved. Non-approved developer tokens can + // only be used with test accounts. + DEVELOPER_TOKEN_NOT_APPROVED = 10; + + // 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 in Google Ads. 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/google/ads/googleads/v10/errors/batch_job_error.proto b/google/ads/googleads/v10/errors/batch_job_error.proto new file mode 100644 index 000000000..7aa9b5159 --- /dev/null +++ b/google/ads/googleads/v10/errors/batch_job_error.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "BatchJobErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing batch job errors. + +// Container for enum describing possible batch job errors. +message BatchJobErrorEnum { + // Enum describing possible request errors. + enum BatchJobError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The batch job cannot add more operations or run after it has started + // running. + CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING = 2; + + // The operations for an AddBatchJobOperations request were empty. + EMPTY_OPERATIONS = 3; + + // The sequence token for an AddBatchJobOperations request was invalid. + INVALID_SEQUENCE_TOKEN = 4; + + // Batch job results can only be retrieved once the job is finished. + RESULTS_NOT_READY = 5; + + // The page size for ListBatchJobResults was invalid. + INVALID_PAGE_SIZE = 6; + + // The batch job cannot be removed because it has started running. + CAN_ONLY_REMOVE_PENDING_JOB = 7; + } + + +} diff --git a/google/ads/googleads/v10/errors/bidding_error.proto b/google/ads/googleads/v10/errors/bidding_error.proto new file mode 100644 index 000000000..7fa0ad9b1 --- /dev/null +++ b/google/ads/googleads/v10/errors/bidding_error.proto @@ -0,0 +1,131 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "BiddingErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing bidding errors. + +// Container for enum describing possible bidding errors. +message BiddingErrorEnum { + // Enum describing possible bidding errors. + enum BiddingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot transition to new bidding strategy. + BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED = 2; + + // Cannot attach bidding strategy to campaign. + CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN = 7; + + // Bidding strategy is not supported or cannot be used as anonymous. + INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE = 10; + + // The type does not match the named strategy's type. + INVALID_BIDDING_STRATEGY_TYPE = 14; + + // The bid is invalid. + INVALID_BID = 17; + + // Bidding strategy is not available for the account type. + BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 18; + + // Conversion tracking is not enabled in the campaign that has value-based + // bidding transitions. + CONVERSION_TRACKING_NOT_ENABLED = 19; + + // Not enough conversions tracked for value-based bidding transitions. + NOT_ENOUGH_CONVERSIONS = 20; + + // Campaign can not be created with given bidding strategy. It can be + // transitioned to the strategy, once eligible. + CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY = 21; + + // Cannot target content network only as campaign uses Page One Promoted + // bidding strategy. + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY = 23; + + // Budget Optimizer and Target Spend bidding strategies are not supported + // for campaigns with AdSchedule targeting. + BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE = 24; + + // Pay per conversion is not available to all the customer, only few + // customers on the allow-list can use this. + PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER = 25; + + // Pay per conversion is not allowed with Target CPA. + PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA = 26; + + // Cannot set bidding strategy to Manual CPM for search network only + // campaigns. + BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS = 27; + + // The bidding strategy is not supported for use in drafts or experiments. + BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS = 28; + + // Bidding strategy type does not support product type ad group criterion. + BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION = 29; + + // Bid amount is too small. + BID_TOO_SMALL = 30; + + // Bid amount is too big. + BID_TOO_BIG = 31; + + // Bid has too many fractional digit precision. + BID_TOO_MANY_FRACTIONAL_DIGITS = 32; + + // Invalid domain name specified. + INVALID_DOMAIN_NAME = 33; + + // The field is not compatible with the payment mode. + NOT_COMPATIBLE_WITH_PAYMENT_MODE = 34; + + // The field is not compatible with the budget type. + NOT_COMPATIBLE_WITH_BUDGET_TYPE = 35; + + // The field is not compatible with the bidding strategy type. + NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE = 36; + + // Bidding strategy type is incompatible with shared budget. + BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET = 37; + + // The attached bidding strategy and budget must be aligned with each other + // if alignment is specified on either entity. + BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED = 38; + + // The attached bidding strategy and budget must be attached to the same + // campaigns to become aligned. + BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ATTACHED_TO_THE_SAME_CAMPAIGNS_TO_ALIGN = 39; + + // The aligned bidding strategy and budget must be removed at the same time. + BIDDING_STRATEGY_AND_BUDGET_MUST_BE_REMOVED_TOGETHER = 40; + } + + +} diff --git a/google/ads/googleads/v10/errors/bidding_strategy_error.proto b/google/ads/googleads/v10/errors/bidding_strategy_error.proto new file mode 100644 index 000000000..8d5a682f6 --- /dev/null +++ b/google/ads/googleads/v10/errors/bidding_strategy_error.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing bidding strategy errors. + +// Container for enum describing possible bidding strategy errors. +message BiddingStrategyErrorEnum { + // Enum describing possible bidding strategy errors. + enum BiddingStrategyError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Each bidding strategy must have a unique name. + DUPLICATE_NAME = 2; + + // Bidding strategy type is immutable. + CANNOT_CHANGE_BIDDING_STRATEGY_TYPE = 3; + + // Only bidding strategies not linked to campaigns, adgroups or adgroup + // criteria can be removed. + CANNOT_REMOVE_ASSOCIATED_STRATEGY = 4; + + // The specified bidding strategy is not supported. + BIDDING_STRATEGY_NOT_SUPPORTED = 5; + + // The bidding strategy is incompatible with the campaign's bidding + // strategy goal type. + INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE = 6; + } + + +} diff --git a/google/ads/googleads/v10/errors/billing_setup_error.proto b/google/ads/googleads/v10/errors/billing_setup_error.proto new file mode 100644 index 000000000..6d2778780 --- /dev/null +++ b/google/ads/googleads/v10/errors/billing_setup_error.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "BillingSetupErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing billing setup errors. + +// Container for enum describing possible billing setup errors. +message BillingSetupErrorEnum { + // Enum describing possible billing setup errors. + enum BillingSetupError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot specify both an existing payments account and a new payments + // account when setting up billing. + CANNOT_USE_EXISTING_AND_NEW_ACCOUNT = 2; + + // Cannot cancel an approved billing setup whose start time has passed. + CANNOT_REMOVE_STARTED_BILLING_SETUP = 3; + + // Cannot perform a Change of Bill-To (CBT) to the same payments account. + CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT = 4; + + // Billing setups can only be used by customers with ENABLED or DRAFT + // status. + BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS = 5; + + // Billing setups must either include a correctly formatted existing + // payments account id, or a non-empty new payments account name. + INVALID_PAYMENTS_ACCOUNT = 6; + + // Only billable and third-party customers can create billing setups. + BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY = 7; + + // Billing setup creations can only use NOW for start time type. + INVALID_START_TIME_TYPE = 8; + + // Billing setups can only be created for a third-party customer if they do + // not already have a setup. + THIRD_PARTY_ALREADY_HAS_BILLING = 9; + + // Billing setups cannot be created if there is already a pending billing in + // progress. + BILLING_SETUP_IN_PROGRESS = 10; + + // Billing setups can only be created by customers who have permission to + // setup billings. Users can contact a representative for help setting up + // permissions. + NO_SIGNUP_PERMISSION = 11; + + // Billing setups cannot be created if there is already a future-approved + // billing. + CHANGE_OF_BILL_TO_IN_PROGRESS = 12; + + // Requested payments profile not found. + PAYMENTS_PROFILE_NOT_FOUND = 13; + + // Requested payments account not found. + PAYMENTS_ACCOUNT_NOT_FOUND = 14; + + // Billing setup creation failed because the payments profile is ineligible. + PAYMENTS_PROFILE_INELIGIBLE = 15; + + // Billing setup creation failed because the payments account is ineligible. + PAYMENTS_ACCOUNT_INELIGIBLE = 16; + + // Billing setup creation failed because the payments profile needs internal + // approval. + CUSTOMER_NEEDS_INTERNAL_APPROVAL = 17; + + // Payments account has different currency code than the current customer + // and hence cannot be used to setup billing. + PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH = 19; + + // A start time in the future cannot be used because there is currently no + // active billing setup for this customer. + FUTURE_START_TIME_PROHIBITED = 20; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_budget_error.proto b/google/ads/googleads/v10/errors/campaign_budget_error.proto new file mode 100644 index 000000000..52e6e5fe3 --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_budget_error.proto @@ -0,0 +1,98 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBudgetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign budget errors. + +// Container for enum describing possible campaign budget errors. +message CampaignBudgetErrorEnum { + // Enum describing possible campaign budget errors. + enum CampaignBudgetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The campaign budget cannot be shared. + CAMPAIGN_BUDGET_CANNOT_BE_SHARED = 17; + + // The requested campaign budget no longer exists. + CAMPAIGN_BUDGET_REMOVED = 2; + + // The campaign budget is associated with at least one campaign, and so the + // campaign budget cannot be removed. + CAMPAIGN_BUDGET_IN_USE = 3; + + // Customer is not on the allow-list for this campaign budget period. + CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE = 4; + + // This field is not mutable on implicitly shared campaign budgets + CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET = 6; + + // Cannot change explicitly shared campaign budgets back to implicitly + // shared ones. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED = 7; + + // An implicit campaign budget without a name cannot be changed to + // explicitly shared campaign budget. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME = 8; + + // Cannot change an implicitly shared campaign budget to an explicitly + // shared one. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED = 9; + + // Only explicitly shared campaign budgets can be used with multiple + // campaigns. + CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS = 10; + + // A campaign budget with this name already exists. + DUPLICATE_NAME = 11; + + // A money amount was not in the expected currency. + MONEY_AMOUNT_IN_WRONG_CURRENCY = 12; + + // A money amount was less than the minimum CPC for currency. + MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC = 13; + + // A money amount was greater than the maximum allowed. + MONEY_AMOUNT_TOO_LARGE = 14; + + // A money amount was negative. + NEGATIVE_MONEY_AMOUNT = 15; + + // A money amount was not a multiple of a minimum unit. + NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT = 16; + + // Total budget amount must be unset when BudgetPeriod is DAILY. + TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY = 18; + + // The period of the budget is not allowed. + INVALID_PERIOD = 19; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_conversion_goal_error.proto b/google/ads/googleads/v10/errors/campaign_conversion_goal_error.proto new file mode 100644 index 000000000..37198d630 --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_conversion_goal_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignConversionGoalErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign conversion goal errors. + +// Container for enum describing possible campaign conversion goal errors. +message CampaignConversionGoalErrorEnum { + // Enum describing possible campaign conversion goal errors. + enum CampaignConversionGoalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Campaign is managed by Search Ads 360 but uses Unified Goal. + CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_criterion_error.proto b/google/ads/googleads/v10/errors/campaign_criterion_error.proto new file mode 100644 index 000000000..706a55d0b --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_criterion_error.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign criterion errors. + +// Container for enum describing possible campaign criterion errors. +message CampaignCriterionErrorEnum { + // Enum describing possible campaign criterion errors. + enum CampaignCriterionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Concrete type of criterion (keyword v.s. placement) is required for + // CREATE and UPDATE operations. + CONCRETE_TYPE_REQUIRED = 2; + + // Invalid placement URL. + INVALID_PLACEMENT_URL = 3; + + // Criteria type can not be excluded for the campaign by the customer. like + // AOL account type cannot target site type criteria + CANNOT_EXCLUDE_CRITERIA_TYPE = 4; + + // Cannot set the campaign criterion status for this criteria type. + CANNOT_SET_STATUS_FOR_CRITERIA_TYPE = 5; + + // Cannot set the campaign criterion status for an excluded criteria. + CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA = 6; + + // Cannot target and exclude the same criterion. + CANNOT_TARGET_AND_EXCLUDE = 7; + + // The mutate contained too many operations. + TOO_MANY_OPERATIONS = 8; + + // This operator cannot be applied to a criterion of this type. + OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE = 9; + + // The Shopping campaign sales country is not supported for + // ProductSalesChannel targeting. + SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL = 10; + + // The existing field can't be updated with CREATE operation. It can be + // updated with UPDATE operation only. + CANNOT_ADD_EXISTING_FIELD = 11; + + // Negative criteria are immutable, so updates are not allowed. + CANNOT_UPDATE_NEGATIVE_CRITERION = 12; + + // Only free form names are allowed for negative Smart campaign keyword + // theme. + CANNOT_SET_NEGATIVE_KEYWORD_THEME_CONSTANT_CRITERION = 13; + + // Invalid Smart campaign keyword theme constant criterion. + INVALID_KEYWORD_THEME_CONSTANT = 14; + + // A Smart campaign keyword theme constant or free-form Smart campaign + // keyword theme is required. + MISSING_KEYWORD_THEME_CONSTANT_OR_FREE_FORM_KEYWORD_THEME = 15; + + // A Smart campaign may not target proximity and location criteria + // simultaneously. + CANNOT_TARGET_BOTH_PROXIMITY_AND_LOCATION_CRITERIA_FOR_SMART_CAMPAIGN = 16; + + // A Smart campaign may not target multiple proximity criteria. + CANNOT_TARGET_MULTIPLE_PROXIMITY_CRITERIA_FOR_SMART_CAMPAIGN = 17; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_customizer_error.proto b/google/ads/googleads/v10/errors/campaign_customizer_error.proto new file mode 100644 index 000000000..3b24303ea --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_customizer_error.proto @@ -0,0 +1,42 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign customizer errors. + +// Container for enum describing possible campaign customizer errors. +message CampaignCustomizerErrorEnum { + // Enum describing possible campaign customizer errors. + enum CampaignCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_draft_error.proto b/google/ads/googleads/v10/errors/campaign_draft_error.proto new file mode 100644 index 000000000..1138aab02 --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_draft_error.proto @@ -0,0 +1,77 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignDraftErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign draft errors. + +// Container for enum describing possible campaign draft errors. +message CampaignDraftErrorEnum { + // Enum describing possible campaign draft errors. + enum CampaignDraftError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A draft with this name already exists for this campaign. + DUPLICATE_DRAFT_NAME = 2; + + // The draft is removed and cannot be transitioned to another status. + INVALID_STATUS_TRANSITION_FROM_REMOVED = 3; + + // The draft has been promoted and cannot be transitioned to the specified + // status. + INVALID_STATUS_TRANSITION_FROM_PROMOTED = 4; + + // The draft has failed to be promoted and cannot be transitioned to the + // specified status. + INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED = 5; + + // This customer is not allowed to create drafts. + CUSTOMER_CANNOT_CREATE_DRAFT = 6; + + // This campaign is not allowed to create drafts. + CAMPAIGN_CANNOT_CREATE_DRAFT = 7; + + // This modification cannot be made on a draft. + INVALID_DRAFT_CHANGE = 8; + + // The draft cannot be transitioned to the specified status from its + // current status. + INVALID_STATUS_TRANSITION = 9; + + // The campaign has reached the maximum number of drafts that can be created + // for a campaign throughout its lifetime. No additional drafts can be + // created for this campaign. Removed drafts also count towards this limit. + MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED = 10; + + // ListAsyncErrors was called without first promoting the draft. + LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY = 11; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_error.proto b/google/ads/googleads/v10/errors/campaign_error.proto new file mode 100644 index 000000000..12da45cfa --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_error.proto @@ -0,0 +1,199 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign errors. + +// Container for enum describing possible campaign errors. +message CampaignErrorEnum { + // Enum describing possible campaign errors. + enum CampaignError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot target content network. + CANNOT_TARGET_CONTENT_NETWORK = 3; + + // Cannot target search network. + CANNOT_TARGET_SEARCH_NETWORK = 4; + + // Cannot cover search network without google search network. + CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH = 5; + + // Cannot target Google Search network for a CPM campaign. + CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN = 6; + + // Must target at least one network. + CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK = 7; + + // Only some Google partners are allowed to target partner search network. + CANNOT_TARGET_PARTNER_SEARCH_NETWORK = 8; + + // Cannot target content network only as campaign has criteria-level bidding + // strategy. + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY = 9; + + // Cannot modify the start or end date such that the campaign duration would + // not contain the durations of all runnable trials. + CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS = 10; + + // Cannot modify dates, budget or status of a trial campaign. + CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN = 11; + + // Trying to modify the name of an active or paused campaign, where the name + // is already assigned to another active or paused campaign. + DUPLICATE_CAMPAIGN_NAME = 12; + + // Two fields are in conflicting modes. + INCOMPATIBLE_CAMPAIGN_FIELD = 13; + + // Campaign name cannot be used. + INVALID_CAMPAIGN_NAME = 14; + + // Given status is invalid. + INVALID_AD_SERVING_OPTIMIZATION_STATUS = 15; + + // Error in the campaign level tracking URL. + INVALID_TRACKING_URL = 16; + + // Cannot set both tracking URL template and tracking setting. A user has + // to clear legacy tracking setting in order to add tracking URL template. + CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING = 17; + + // The maximum number of impressions for Frequency Cap should be an integer + // greater than 0. + MAX_IMPRESSIONS_NOT_IN_RANGE = 18; + + // Only the Day, Week and Month time units are supported. + TIME_UNIT_NOT_SUPPORTED = 19; + + // Operation not allowed on a campaign whose serving status has ended + INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED = 20; + + // This budget is exclusively linked to a Campaign that is using experiments + // so it cannot be shared. + BUDGET_CANNOT_BE_SHARED = 21; + + // Campaigns using experiments cannot use a shared budget. + CAMPAIGN_CANNOT_USE_SHARED_BUDGET = 22; + + // A different budget cannot be assigned to a campaign when there are + // running or scheduled trials. + CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS = 23; + + // No link found between the campaign and the label. + CAMPAIGN_LABEL_DOES_NOT_EXIST = 24; + + // The label has already been attached to the campaign. + CAMPAIGN_LABEL_ALREADY_EXISTS = 25; + + // A ShoppingSetting was not found when creating a shopping campaign. + MISSING_SHOPPING_SETTING = 26; + + // The country in shopping setting is not an allowed country. + INVALID_SHOPPING_SALES_COUNTRY = 27; + + // The requested channel type is not available according to the customer's + // account setting. + ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 31; + + // The AdvertisingChannelSubType is not a valid subtype of the primary + // channel type. + INVALID_ADVERTISING_CHANNEL_SUB_TYPE = 32; + + // At least one conversion must be selected. + AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED = 33; + + // Setting ad rotation mode for a campaign is not allowed. Ad rotation mode + // at campaign is deprecated. + CANNOT_SET_AD_ROTATION_MODE = 34; + + // Trying to change start date on a campaign that has started. + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 35; + + // Trying to modify a date into the past. + CANNOT_SET_DATE_TO_PAST = 36; + + // Hotel center id in the hotel setting does not match any customer links. + MISSING_HOTEL_CUSTOMER_LINK = 37; + + // Hotel center id in the hotel setting must match an active customer link. + INVALID_HOTEL_CUSTOMER_LINK = 38; + + // Hotel setting was not found when creating a hotel ads campaign. + MISSING_HOTEL_SETTING = 39; + + // A Campaign cannot use shared campaign budgets and be part of a campaign + // group. + CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP = 40; + + // The app ID was not found. + APP_NOT_FOUND = 41; + + // Campaign.shopping_setting.enable_local is not supported for the specified + // campaign type. + SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 42; + + // The merchant does not support the creation of campaigns for Shopping + // Comparison Listing Ads. + MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS = 43; + + // The App campaign for engagement cannot be created because there aren't + // enough installs. + INSUFFICIENT_APP_INSTALLS_COUNT = 44; + + // The App campaign for engagement cannot be created because the app is + // sensitive. + SENSITIVE_CATEGORY_APP = 45; + + // Customers with Housing, Employment, or Credit ads must accept updated + // personalized ads policy to continue creating campaigns. + HEC_AGREEMENT_REQUIRED = 46; + + // The field is not compatible with view through conversion optimization. + NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION = 49; + + // The field type cannot be excluded because an active campaign-asset link + // of this type exists. + INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 48; + + // The app pre-registration campaign cannot be created for non-Android + // applications. + CANNOT_CREATE_APP_PRE_REGISTRATION_FOR_NON_ANDROID_APP = 50; + + // The campaign cannot be created since the app is not available for + // pre-registration in any country. + APP_NOT_AVAILABLE_TO_CREATE_APP_PRE_REGISTRATION_CAMPAIGN = 51; + + // The type of the Budget is not compatible with this Campaign. + INCOMPATIBLE_BUDGET_TYPE = 52; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_experiment_error.proto b/google/ads/googleads/v10/errors/campaign_experiment_error.proto new file mode 100644 index 000000000..ec2610dc2 --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_experiment_error.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign experiment errors. + +// Container for enum describing possible campaign experiment errors. +message CampaignExperimentErrorEnum { + // Enum describing possible campaign experiment errors. + enum CampaignExperimentError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An active campaign or experiment with this name already exists. + DUPLICATE_NAME = 2; + + // Experiment cannot be updated from the current state to the + // requested target state. For example, an experiment can only graduate + // if its status is ENABLED. + INVALID_TRANSITION = 3; + + // Cannot create an experiment from a campaign using an explicitly shared + // budget. + CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET = 4; + + // Cannot create an experiment for a removed base campaign. + CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN = 5; + + // Cannot create an experiment from a draft, which has a status other than + // proposed. + CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT = 6; + + // This customer is not allowed to create an experiment. + CUSTOMER_CANNOT_CREATE_EXPERIMENT = 7; + + // This campaign is not allowed to create an experiment. + CAMPAIGN_CANNOT_CREATE_EXPERIMENT = 8; + + // Trying to set an experiment duration which overlaps with another + // experiment. + EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP = 9; + + // All non-removed experiments must start and end within their campaign's + // duration. + EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION = 10; + + // The experiment cannot be modified because its status is in a terminal + // state, such as REMOVED. + CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS = 11; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_feed_error.proto b/google/ads/googleads/v10/errors/campaign_feed_error.proto new file mode 100644 index 000000000..1dc949cfb --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_feed_error.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignFeedErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign feed errors. + +// Container for enum describing possible campaign feed errors. +message CampaignFeedErrorEnum { + // Enum describing possible campaign feed errors. + enum CampaignFeedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An active feed already exists for this campaign and placeholder type. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; + + // The specified feed is removed. + CANNOT_CREATE_FOR_REMOVED_FEED = 4; + + // The CampaignFeed already exists. UPDATE should be used to modify the + // existing CampaignFeed. + CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED = 5; + + // Cannot update removed campaign feed. + CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED = 6; + + // Invalid placeholder type. + INVALID_PLACEHOLDER_TYPE = 7; + + // Feed mapping for this placeholder type does not exist. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 8; + + // Location CampaignFeeds cannot be created unless there is a location + // CustomerFeed for the specified feed. + NO_EXISTING_LOCATION_CUSTOMER_FEED = 9; + } + + +} diff --git a/google/ads/googleads/v10/errors/campaign_shared_set_error.proto b/google/ads/googleads/v10/errors/campaign_shared_set_error.proto new file mode 100644 index 000000000..ce056087d --- /dev/null +++ b/google/ads/googleads/v10/errors/campaign_shared_set_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSharedSetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing campaign shared set errors. + +// Container for enum describing possible campaign shared set errors. +message CampaignSharedSetErrorEnum { + // Enum describing possible campaign shared set errors. + enum CampaignSharedSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The shared set belongs to another customer and permission isn't granted. + SHARED_SET_ACCESS_DENIED = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/change_event_error.proto b/google/ads/googleads/v10/errors/change_event_error.proto new file mode 100644 index 000000000..e1353c0be --- /dev/null +++ b/google/ads/googleads/v10/errors/change_event_error.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ChangeEventErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing change event errors. + +// Container for enum describing possible change event errors. +message ChangeEventErrorEnum { + // Enum describing possible change event errors. + enum ChangeEventError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The requested start date is too old. It cannot be older than 30 days. + START_DATE_TOO_OLD = 2; + + // The change_event search request must specify a finite range filter + // on change_date_time. + CHANGE_DATE_RANGE_INFINITE = 3; + + // The change event search request has specified invalid date time filters + // that can never logically produce any valid results (for example, start + // time after end time). + CHANGE_DATE_RANGE_NEGATIVE = 4; + + // The change_event search request must specify a LIMIT. + LIMIT_NOT_SPECIFIED = 5; + + // The LIMIT specified by change_event request should be less than or equal + // to 10K. + INVALID_LIMIT_CLAUSE = 6; + } + + +} diff --git a/google/ads/googleads/v10/errors/change_status_error.proto b/google/ads/googleads/v10/errors/change_status_error.proto new file mode 100644 index 000000000..9c733abf4 --- /dev/null +++ b/google/ads/googleads/v10/errors/change_status_error.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ChangeStatusErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing change status errors. + +// Container for enum describing possible change status errors. +message ChangeStatusErrorEnum { + // Enum describing possible change status errors. + enum ChangeStatusError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The requested start date is too old. + START_DATE_TOO_OLD = 3; + + // The change_status search request must specify a finite range filter + // on last_change_date_time. + CHANGE_DATE_RANGE_INFINITE = 4; + + // The change status search request has specified invalid date time filters + // that can never logically produce any valid results (for example, start + // time after end time). + CHANGE_DATE_RANGE_NEGATIVE = 5; + + // The change_status search request must specify a LIMIT. + LIMIT_NOT_SPECIFIED = 6; + + // The LIMIT specified by change_status request should be less than or equal + // to 10K. + INVALID_LIMIT_CLAUSE = 7; + } + + +} diff --git a/google/ads/googleads/v10/errors/collection_size_error.proto b/google/ads/googleads/v10/errors/collection_size_error.proto new file mode 100644 index 000000000..e079d17a7 --- /dev/null +++ b/google/ads/googleads/v10/errors/collection_size_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CollectionSizeErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing collection size errors. + +// Container for enum describing possible collection size errors. +message CollectionSizeErrorEnum { + // Enum describing possible collection size errors. + enum CollectionSizeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Too few. + TOO_FEW = 2; + + // Too many. + TOO_MANY = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/context_error.proto b/google/ads/googleads/v10/errors/context_error.proto new file mode 100644 index 000000000..fa78b40b6 --- /dev/null +++ b/google/ads/googleads/v10/errors/context_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ContextErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing context errors. + +// Container for enum describing possible context errors. +message ContextErrorEnum { + // Enum describing possible context errors. + enum ContextError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The operation is not allowed for the given context. + OPERATION_NOT_PERMITTED_FOR_CONTEXT = 2; + + // The operation is not allowed for removed resources. + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/conversion_action_error.proto b/google/ads/googleads/v10/errors/conversion_action_error.proto new file mode 100644 index 000000000..fa0e3bcdc --- /dev/null +++ b/google/ads/googleads/v10/errors/conversion_action_error.proto @@ -0,0 +1,80 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing conversion action errors. + +// Container for enum describing possible conversion action errors. +message ConversionActionErrorEnum { + // Enum describing possible conversion action errors. + enum ConversionActionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified conversion action name already exists. + DUPLICATE_NAME = 2; + + // Another conversion action with the specified app id already exists. + DUPLICATE_APP_ID = 3; + + // Android first open action conflicts with Google play codeless download + // action tracking the same app. + TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD = 4; + + // Android first open action conflicts with Google play codeless download + // action tracking the same app. + BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION = 5; + + // The attribution model cannot be set to DATA_DRIVEN because a data-driven + // model has never been generated. + DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED = 6; + + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is expired. + DATA_DRIVEN_MODEL_EXPIRED = 7; + + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is stale. + DATA_DRIVEN_MODEL_STALE = 8; + + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is unavailable or the conversion action was newly + // added. + DATA_DRIVEN_MODEL_UNKNOWN = 9; + + // Creation of this conversion action type isn't supported by Google + // Ads API. + CREATION_NOT_SUPPORTED = 10; + + // Update of this conversion action isn't supported by Google Ads API. + UPDATE_NOT_SUPPORTED = 11; + } + + +} diff --git a/google/ads/googleads/v10/errors/conversion_adjustment_upload_error.proto b/google/ads/googleads/v10/errors/conversion_adjustment_upload_error.proto new file mode 100644 index 000000000..2f28b7477 --- /dev/null +++ b/google/ads/googleads/v10/errors/conversion_adjustment_upload_error.proto @@ -0,0 +1,130 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionAdjustmentUploadErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing conversion adjustment upload errors. + +// Container for enum describing possible conversion adjustment upload errors. +message ConversionAdjustmentUploadErrorEnum { + // Enum describing possible conversion adjustment upload errors. + enum ConversionAdjustmentUploadError { + // Not specified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified conversion action was created too recently. + // Please try the upload again after 4-6 hours have passed since the + // conversion action was created. + TOO_RECENT_CONVERSION_ACTION = 2; + + // No conversion action of a supported ConversionActionType that matches the + // provided information can be found for the customer. + INVALID_CONVERSION_ACTION = 3; + + // A retraction was already reported for this conversion. + CONVERSION_ALREADY_RETRACTED = 4; + + // A conversion for the supplied combination of conversion + // action and conversion identifier could not be found. + CONVERSION_NOT_FOUND = 5; + + // The specified conversion has already expired. Conversions expire after 55 + // days, after which adjustments cannot be reported against them. + CONVERSION_EXPIRED = 6; + + // The supplied adjustment date time precedes that of the original + // conversion. + ADJUSTMENT_PRECEDES_CONVERSION = 7; + + // A restatement with a more recent adjustment date time was already + // reported for this conversion. + MORE_RECENT_RESTATEMENT_FOUND = 8; + + // The conversion was created too recently. + TOO_RECENT_CONVERSION = 9; + + // Restatements cannot be reported for a conversion action that always uses + // the default value. + CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE = 10; + + // The request contained more than 2000 adjustments. + TOO_MANY_ADJUSTMENTS_IN_REQUEST = 11; + + // The conversion has been adjusted too many times. + TOO_MANY_ADJUSTMENTS = 12; + + // A restatement with this timestamp already exists for this conversion. To + // upload another adjustment, please use a different timestamp. + RESTATEMENT_ALREADY_EXISTS = 13; + + // This adjustment has the same timestamp as another adjustment in the + // request for this conversion. To upload another adjustment, please use a + // different timestamp. + DUPLICATE_ADJUSTMENT_IN_REQUEST = 14; + + // The customer has not accepted the customer data terms in the conversion + // settings page. + CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 15; + + // The enhanced conversion settings of the conversion action supplied is + // not eligible for enhancements. + CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT = 16; + + // The provided user identifier is not a SHA-256 hash. It is either unhashed + // or hashed using a different hash function. + INVALID_USER_IDENTIFIER = 17; + + // The provided user identifier is not supported. + // ConversionAdjustmentUploadService only supports hashed_email, + // hashed_phone_number, and address_info. + UNSUPPORTED_USER_IDENTIFIER = 18; + + // Cannot set both gclid_date_time_pair and order_id. + GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET = 20; + + // An enhancement with this conversion action and order_id already exists + // for this conversion. + CONVERSION_ALREADY_ENHANCED = 21; + + // This enhancement has the same conversion action and order_id as + // another enhancement in the request. + DUPLICATE_ENHANCEMENT_IN_REQUEST = 22; + + // Per our customer data policies, enhancement has been prohibited in your + // account. If you have any questions, please contact your Google + // representative. + CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT = 23; + + // The conversion adjustment is for a conversion action of type WEBPAGE, but + // does not have an order_id. The order_id is required for an adjustment for + // a WEBPAGE conversion action. + MISSING_ORDER_ID_FOR_WEBPAGE = 24; + } + + +} diff --git a/google/ads/googleads/v10/errors/conversion_custom_variable_error.proto b/google/ads/googleads/v10/errors/conversion_custom_variable_error.proto new file mode 100644 index 000000000..bd5edc52a --- /dev/null +++ b/google/ads/googleads/v10/errors/conversion_custom_variable_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionCustomVariableErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing conversion custom variable errors. + +// Container for enum describing possible conversion custom variable errors. +message ConversionCustomVariableErrorEnum { + // Enum describing possible conversion custom variable errors. + enum ConversionCustomVariableError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A conversion custom variable with the specified name already exists. + DUPLICATE_NAME = 2; + + // A conversion custom variable with the specified tag already exists. + DUPLICATE_TAG = 3; + + // A conversion custom variable with the specified tag is reserved for other + // uses. + RESERVED_TAG = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/conversion_goal_campaign_config_error.proto b/google/ads/googleads/v10/errors/conversion_goal_campaign_config_error.proto new file mode 100644 index 000000000..abed434e5 --- /dev/null +++ b/google/ads/googleads/v10/errors/conversion_goal_campaign_config_error.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionGoalCampaignConfigErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing conversion goal campaign config errors. + +// Container for enum describing possible conversion goal campaign config +// errors. +message ConversionGoalCampaignConfigErrorEnum { + // Enum describing possible conversion goal campaign config errors. + enum ConversionGoalCampaignConfigError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Campaign is managed by Search Ads 360 but uses Unified Goal. + CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN = 2; + + // The campaign is using a custom goal that does not belong to its Google + // Ads conversion customer (conversion tracking customer). + CUSTOM_GOAL_DOES_NOT_BELONG_TO_GOOGLE_ADS_CONVERSION_CUSTOMER = 3; + + // The campaign is not allowed to use unified goals. + CAMPAIGN_CANNOT_USE_UNIFIED_GOALS = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/conversion_upload_error.proto b/google/ads/googleads/v10/errors/conversion_upload_error.proto new file mode 100644 index 000000000..3d50f3ac7 --- /dev/null +++ b/google/ads/googleads/v10/errors/conversion_upload_error.proto @@ -0,0 +1,209 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionUploadErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing conversion upload errors. + +// Container for enum describing possible conversion upload errors. +message ConversionUploadErrorEnum { + // Enum describing possible conversion upload errors. + enum ConversionUploadError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The request contained more than 2000 conversions. + TOO_MANY_CONVERSIONS_IN_REQUEST = 2; + + // The specified gclid could not be decoded. + UNPARSEABLE_GCLID = 3; + + // The specified conversion_date_time is before the event time + // associated with the given identifier or iOS URL parameter. + CONVERSION_PRECEDES_EVENT = 42; + + // The click associated with the given identifier or iOS URL parameter is + // either too old to be imported or occurred outside of the click through + // lookback window for the specified conversion action. + EXPIRED_EVENT = 43; + + // The click associated with the given identifier or iOS URL parameter + // occurred too recently. Please try uploading again after 6 hours have + // passed since the click occurred. + TOO_RECENT_EVENT = 44; + + // The click associated with the given identifier or iOS URL parameter could + // not be found in the system. This can happen if the identifier or iOS URL + // parameter are collected for non Google Ads clicks. + EVENT_NOT_FOUND = 45; + + // The click associated with the given identifier or iOS URL parameter is + // owned by a customer account that the uploading customer does not manage. + UNAUTHORIZED_CUSTOMER = 8; + + // No upload eligible conversion action that matches the provided + // information can be found for the customer. + INVALID_CONVERSION_ACTION = 9; + + // The specified conversion action was created too recently. + // Please try the upload again after 4-6 hours have passed since the + // conversion action was created. + TOO_RECENT_CONVERSION_ACTION = 10; + + // The click associated with the given identifier does not contain + // conversion tracking information. + CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME = 11; + + // The specified conversion action does not use an external attribution + // model, but external_attribution_data was set. + EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 12; + + // The specified conversion action uses an external attribution model, but + // external_attribution_data or one of its contained fields was not set. + // Both external_attribution_credit and external_attribution_model must be + // set for externally attributed conversion actions. + EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 13; + + // Order IDs are not supported for conversion actions which use an external + // attribution model. + ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 14; + + // A conversion with the same order id and conversion action combination + // already exists in our system. + ORDER_ID_ALREADY_IN_USE = 15; + + // The request contained two or more conversions with the same order id and + // conversion action combination. + DUPLICATE_ORDER_ID = 16; + + // The call occurred too recently. Please try uploading again after 12 hours + // have passed since the call occurred. + TOO_RECENT_CALL = 17; + + // The click that initiated the call is too old for this conversion to be + // imported. + EXPIRED_CALL = 18; + + // The call or the click leading to the call was not found. + CALL_NOT_FOUND = 19; + + // The specified conversion_date_time is before the call_start_date_time. + CONVERSION_PRECEDES_CALL = 20; + + // The click associated with the call does not contain conversion tracking + // information. + CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME = 21; + + // The caller's phone number cannot be parsed. It should be formatted either + // as E.164 "+16502531234", International "+64 3-331 6005" or US national + // number "6502531234". + UNPARSEABLE_CALLERS_PHONE_NUMBER = 22; + + // A conversion with this timestamp already exists for this click. To upload + // another conversion, please use a different timestamp. + CLICK_CONVERSION_ALREADY_EXISTS = 23; + + // A conversion with this timestamp already exists for this call. To upload + // another conversion, please use a different timestamp. + CALL_CONVERSION_ALREADY_EXISTS = 24; + + // This conversion has the same click and timestamp as another conversion in + // the request. To upload another conversion for this click, please use a + // different timestamp. + DUPLICATE_CLICK_CONVERSION_IN_REQUEST = 25; + + // This conversion has the same call and timestamp as another conversion in + // the request. To upload another conversion for this call, please use a + // different timestamp. + DUPLICATE_CALL_CONVERSION_IN_REQUEST = 26; + + // The custom variable is not enabled. + CUSTOM_VARIABLE_NOT_ENABLED = 28; + + // The value of the custom variable contains personally identifiable + // information (PII), such as an email address or phone number. + CUSTOM_VARIABLE_VALUE_CONTAINS_PII = 29; + + // The click associated with the given identifier or iOS URL parameter isn't + // from the account where conversion tracking is set up. + INVALID_CUSTOMER_FOR_CLICK = 30; + + // The click associated with the given call isn't from the account where + // conversion tracking is set up. + INVALID_CUSTOMER_FOR_CALL = 31; + + // The conversion can't be uploaded because the conversion source didn't + // comply with the App Tracking Transparency (ATT) policy or the person who + // converted didn't consent to tracking. + CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY = 32; + + // No click was found for the provided user identifiers that could be + // applied to the specified conversion action. + CLICK_NOT_FOUND = 33; + + // The provided user identifier is not a SHA-256 hash. It is either unhashed + // or hashed using a different hash function. + INVALID_USER_IDENTIFIER = 34; + + // Conversion actions which use an external attribution model cannot be used + // with UserIdentifier. + EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER = 35; + + // The provided user identifier is not supported. ConversionUploadService + // only supports hashed_email and hashed_phone_number. + UNSUPPORTED_USER_IDENTIFIER = 36; + + // gbraid and wbraid are both set in the request. Only one is allowed. + GBRAID_WBRAID_BOTH_SET = 38; + + // The specified wbraid could not be decoded. + UNPARSEABLE_WBRAID = 39; + + // The specified gbraid could not be decoded. + UNPARSEABLE_GBRAID = 40; + + // Conversion types which use an external attribution model cannot be used + // with gbraid or wbraid. + EXTERNALLY_ATTRIBUTED_CONVERSION_TYPE_NOT_PERMITTED_WITH_BRAID = 41; + + // Conversion actions which use the one-per-click counting type cannot be + // used with gbraid or wbraid. + ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID = 46; + + // Per our customer data policies, enhanced conversions have been prohibited + // in your account. If you have any questions, please contact your Google + // representative. + CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS = 47; + + // The customer has not accepted the customer data terms in the conversion + // settings page. + CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 48; + } + + +} diff --git a/google/ads/googleads/v10/errors/conversion_value_rule_error.proto b/google/ads/googleads/v10/errors/conversion_value_rule_error.proto new file mode 100644 index 000000000..2d5754053 --- /dev/null +++ b/google/ads/googleads/v10/errors/conversion_value_rule_error.proto @@ -0,0 +1,90 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing conversion value rule errors. + +// Container for enum describing possible conversion value rule errors. +message ConversionValueRuleErrorEnum { + // Enum describing possible conversion value rule errors. + enum ConversionValueRuleError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The value rule's geo location condition contains invalid geo target + // constant(s), i.e. there's no matching geo target. + INVALID_GEO_TARGET_CONSTANT = 2; + + // The value rule's geo location condition contains conflicting included and + // excluded geo targets. Specifically, some of the excluded geo target(s) + // are the same as or contain some of the included geo target(s). For + // example, the geo location condition includes California but excludes U.S. + CONFLICTING_INCLUDED_AND_EXCLUDED_GEO_TARGET = 3; + + // User specified conflicting conditions for two value rules in the same + // value rule set. + CONFLICTING_CONDITIONS = 4; + + // The value rule cannot be removed because it's still included in some + // value rule set. + CANNOT_REMOVE_IF_INCLUDED_IN_VALUE_RULE_SET = 5; + + // The value rule contains a condition that's not allowed by the value rule + // set including this value rule. + CONDITION_NOT_ALLOWED = 6; + + // The value rule contains a field that should be unset. + FIELD_MUST_BE_UNSET = 7; + + // Pausing the value rule requires pausing the value rule set because the + // value rule is (one of) the last enabled in the value rule set. + CANNOT_PAUSE_UNLESS_VALUE_RULE_SET_IS_PAUSED = 8; + + // The value rule's geo location condition contains untargetable geo target + // constant(s). + UNTARGETABLE_GEO_TARGET = 9; + + // The value rule's audience condition contains invalid user list(s). In + // another word, there's no matching user list. + INVALID_AUDIENCE_USER_LIST = 10; + + // The value rule's audience condition contains inaccessible user list(s). + INACCESSIBLE_USER_LIST = 11; + + // The value rule's audience condition contains invalid user_interest(s). + // This might be because there is no matching user interest, or the user + // interest is not visible. + INVALID_AUDIENCE_USER_INTEREST = 12; + + // When a value rule is created, it shouldn't have REMOVED status. + CANNOT_ADD_RULE_WITH_STATUS_REMOVED = 13; + } + + +} diff --git a/google/ads/googleads/v10/errors/conversion_value_rule_set_error.proto b/google/ads/googleads/v10/errors/conversion_value_rule_set_error.proto new file mode 100644 index 000000000..d4f708737 --- /dev/null +++ b/google/ads/googleads/v10/errors/conversion_value_rule_set_error.proto @@ -0,0 +1,100 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleSetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing conversion value rule set errors. + +// Container for enum describing possible conversion value rule set errors. +message ConversionValueRuleSetErrorEnum { + // Enum describing possible conversion value rule set errors. + enum ConversionValueRuleSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Two value rules in this value rule set contain conflicting conditions. + CONFLICTING_VALUE_RULE_CONDITIONS = 2; + + // This value rule set includes a value rule that cannot be found, has been + // permanently removed or belongs to a different customer. + INVALID_VALUE_RULE = 3; + + // An error that's thrown when a mutate operation is trying to + // replace/remove some existing elements in the dimensions field. In other + // words, ADD op is always fine and UPDATE op is fine if it's only appending + // new elements into dimensions list. + DIMENSIONS_UPDATE_ONLY_ALLOW_APPEND = 4; + + // An error that's thrown when a mutate is adding new value rule(s) into a + // value rule set and the added value rule(s) include conditions that are + // not specified in the dimensions of the value rule set. + CONDITION_TYPE_NOT_ALLOWED = 5; + + // The dimensions field contains duplicate elements. + DUPLICATE_DIMENSIONS = 6; + + // This value rule set is attached to an invalid campaign id. Either a + // campaign with this campaign id doesn't exist or it belongs to a different + // customer. + INVALID_CAMPAIGN_ID = 7; + + // When a mutate request tries to pause a value rule set, the enabled + // value rules in this set must be paused in the same command, or this error + // will be thrown. + CANNOT_PAUSE_UNLESS_ALL_VALUE_RULES_ARE_PAUSED = 8; + + // When a mutate request tries to pause all the value rules in a value rule + // set, the value rule set must be paused, or this error will be thrown. + SHOULD_PAUSE_WHEN_ALL_VALUE_RULES_ARE_PAUSED = 9; + + // This value rule set is attached to a campaign that does not support value + // rules. Currently, campaign level value rule sets can only be created on + // Search, or Display campaigns. + VALUE_RULES_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 10; + + // To add a value rule set that applies on Store Visits/Store Sales + // conversion action categories, the customer must have valid Store Visits/ + // Store Sales conversion actions. + INELIGIBLE_CONVERSION_ACTION_CATEGORIES = 11; + + // If NO_CONDITION is used as a dimension of a value rule set, it must be + // the only dimension. + DIMENSION_NO_CONDITION_USED_WITH_OTHER_DIMENSIONS = 12; + + // Dimension NO_CONDITION can only be used by Store Visits/Store Sales value + // rule set. + DIMENSION_NO_CONDITION_NOT_ALLOWED = 13; + + // Value rule sets defined on the specified conversion action categories are + // not supported. The list of conversion action categories must be an empty + // list, only STORE_VISIT, or only STORE_SALE. + UNSUPPORTED_CONVERSION_ACTION_CATEGORIES = 14; + } + + +} diff --git a/google/ads/googleads/v10/errors/country_code_error.proto b/google/ads/googleads/v10/errors/country_code_error.proto new file mode 100644 index 000000000..99c888d8f --- /dev/null +++ b/google/ads/googleads/v10/errors/country_code_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CountryCodeErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing country code errors. + +// Container for enum describing country code errors. +message CountryCodeErrorEnum { + // Enum describing country code errors. + enum CountryCodeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The country code is invalid. + INVALID_COUNTRY_CODE = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/criterion_error.proto b/google/ads/googleads/v10/errors/criterion_error.proto new file mode 100644 index 000000000..86fe6d668 --- /dev/null +++ b/google/ads/googleads/v10/errors/criterion_error.proto @@ -0,0 +1,469 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CriterionErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing criterion errors. + +// Container for enum describing possible criterion errors. +message CriterionErrorEnum { + // Enum describing possible criterion errors. + enum CriterionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Concrete type of criterion is required for CREATE and UPDATE operations. + CONCRETE_TYPE_REQUIRED = 2; + + // The category requested for exclusion is invalid. + INVALID_EXCLUDED_CATEGORY = 3; + + // Invalid keyword criteria text. + INVALID_KEYWORD_TEXT = 4; + + // Keyword text should be less than 80 chars. + KEYWORD_TEXT_TOO_LONG = 5; + + // Keyword text has too many words. + KEYWORD_HAS_TOO_MANY_WORDS = 6; + + // Keyword text has invalid characters or symbols. + KEYWORD_HAS_INVALID_CHARS = 7; + + // Invalid placement URL. + INVALID_PLACEMENT_URL = 8; + + // Invalid user list criterion. + INVALID_USER_LIST = 9; + + // Invalid user interest criterion. + INVALID_USER_INTEREST = 10; + + // Placement URL has wrong format. + INVALID_FORMAT_FOR_PLACEMENT_URL = 11; + + // Placement URL is too long. + PLACEMENT_URL_IS_TOO_LONG = 12; + + // Indicates the URL contains an illegal character. + PLACEMENT_URL_HAS_ILLEGAL_CHAR = 13; + + // Indicates the URL contains multiple comma separated URLs. + PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE = 14; + + // Indicates the domain is blocked. + PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION = 15; + + // Invalid topic path. + INVALID_TOPIC_PATH = 16; + + // The YouTube Channel Id is invalid. + INVALID_YOUTUBE_CHANNEL_ID = 17; + + // The YouTube Video Id is invalid. + INVALID_YOUTUBE_VIDEO_ID = 18; + + // Indicates the placement is a YouTube vertical channel, which is no longer + // supported. + YOUTUBE_VERTICAL_CHANNEL_DEPRECATED = 19; + + // Indicates the placement is a YouTube demographic channel, which is no + // longer supported. + YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED = 20; + + // YouTube urls are not supported in Placement criterion. Use YouTubeChannel + // and YouTubeVideo criterion instead. + YOUTUBE_URL_UNSUPPORTED = 21; + + // Criteria type can not be excluded by the customer, like AOL account type + // cannot target site type criteria. + CANNOT_EXCLUDE_CRITERIA_TYPE = 22; + + // Criteria type can not be targeted. + CANNOT_ADD_CRITERIA_TYPE = 23; + + // Not allowed to exclude similar user list. + CANNOT_EXCLUDE_SIMILAR_USER_LIST = 26; + + // Not allowed to target a closed user list. + CANNOT_ADD_CLOSED_USER_LIST = 27; + + // Not allowed to add display only UserLists to search only campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS = 28; + + // Not allowed to add display only UserLists to search plus campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS = 29; + + // Not allowed to add display only UserLists to shopping campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS = 30; + + // Not allowed to add User interests to search only campaigns. + CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS = 31; + + // Not allowed to set bids for this criterion type in search campaigns + CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS = 32; + + // Final URLs, URL Templates and CustomParameters cannot be set for the + // criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and + // MobileAppCategory in search campaigns and shopping campaigns. + CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE = 33; + + // Invalid combined audience criterion. + INVALID_COMBINED_AUDIENCE = 122; + + // Invalid custom affinity criterion. + INVALID_CUSTOM_AFFINITY = 96; + + // Invalid custom intent criterion. + INVALID_CUSTOM_INTENT = 97; + + // Invalid custom audience criterion. + INVALID_CUSTOM_AUDIENCE = 121; + + // IP address is not valid. + INVALID_IP_ADDRESS = 34; + + // IP format is not valid. + INVALID_IP_FORMAT = 35; + + // Mobile application is not valid. + INVALID_MOBILE_APP = 36; + + // Mobile application category is not valid. + INVALID_MOBILE_APP_CATEGORY = 37; + + // The CriterionId does not exist or is of the incorrect type. + INVALID_CRITERION_ID = 38; + + // The Criterion is not allowed to be targeted. + CANNOT_TARGET_CRITERION = 39; + + // The criterion is not allowed to be targeted as it is deprecated. + CANNOT_TARGET_OBSOLETE_CRITERION = 40; + + // The CriterionId is not valid for the type. + CRITERION_ID_AND_TYPE_MISMATCH = 41; + + // Distance for the radius for the proximity criterion is invalid. + INVALID_PROXIMITY_RADIUS = 42; + + // Units for the distance for the radius for the proximity criterion is + // invalid. + INVALID_PROXIMITY_RADIUS_UNITS = 43; + + // Street address in the address is not valid. + INVALID_STREETADDRESS_LENGTH = 44; + + // City name in the address is not valid. + INVALID_CITYNAME_LENGTH = 45; + + // Region code in the address is not valid. + INVALID_REGIONCODE_LENGTH = 46; + + // Region name in the address is not valid. + INVALID_REGIONNAME_LENGTH = 47; + + // Postal code in the address is not valid. + INVALID_POSTALCODE_LENGTH = 48; + + // Country code in the address is not valid. + INVALID_COUNTRY_CODE = 49; + + // Latitude for the GeoPoint is not valid. + INVALID_LATITUDE = 50; + + // Longitude for the GeoPoint is not valid. + INVALID_LONGITUDE = 51; + + // The Proximity input is not valid. Both address and geoPoint cannot be + // null. + PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL = 52; + + // The Proximity address cannot be geocoded to a valid lat/long. + INVALID_PROXIMITY_ADDRESS = 53; + + // User domain name is not valid. + INVALID_USER_DOMAIN_NAME = 54; + + // Length of serialized criterion parameter exceeded size limit. + CRITERION_PARAMETER_TOO_LONG = 55; + + // Time interval in the AdSchedule overlaps with another AdSchedule. + AD_SCHEDULE_TIME_INTERVALS_OVERLAP = 56; + + // AdSchedule time interval cannot span multiple days. + AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS = 57; + + // AdSchedule time interval specified is invalid, endTime cannot be earlier + // than startTime. + AD_SCHEDULE_INVALID_TIME_INTERVAL = 58; + + // The number of AdSchedule entries in a day exceeds the limit. + AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT = 59; + + // CriteriaId does not match the interval of the AdSchedule specified. + AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS = 60; + + // Cannot set bid modifier for this criterion type. + CANNOT_BID_MODIFY_CRITERION_TYPE = 61; + + // Cannot bid modify criterion, since it is opted out of the campaign. + CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT = 62; + + // Cannot set bid modifier for a negative criterion. + CANNOT_BID_MODIFY_NEGATIVE_CRITERION = 63; + + // Bid Modifier already exists. Use SET operation to update. + BID_MODIFIER_ALREADY_EXISTS = 64; + + // Feed Id is not allowed in these Location Groups. + FEED_ID_NOT_ALLOWED = 65; + + // The account may not use the requested criteria type. For example, some + // accounts are restricted to keywords only. + ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE = 66; + + // The requested criteria type cannot be used with campaign or ad group + // bidding strategy. + CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY = 67; + + // The Criterion is not allowed to be excluded. + CANNOT_EXCLUDE_CRITERION = 68; + + // The criterion is not allowed to be removed. For example, we cannot remove + // any of the device criterion. + CANNOT_REMOVE_CRITERION = 69; + + // Bidding categories do not form a valid path in the Shopping bidding + // category taxonomy. + INVALID_PRODUCT_BIDDING_CATEGORY = 76; + + // ShoppingSetting must be added to the campaign before ProductScope + // criteria can be added. + MISSING_SHOPPING_SETTING = 77; + + // Matching function is invalid. + INVALID_MATCHING_FUNCTION = 78; + + // Filter parameters not allowed for location groups targeting. + LOCATION_FILTER_NOT_ALLOWED = 79; + + // Feed not found, or the feed is not an enabled location feed. + INVALID_FEED_FOR_LOCATION_FILTER = 98; + + // Given location filter parameter is invalid for location groups targeting. + LOCATION_FILTER_INVALID = 80; + + // Cannot set geo target constants and feed item sets at the same time. + CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS = 123; + + // The location group radius is in the range but not at the valid increment. + INVALID_LOCATION_GROUP_RADIUS = 124; + + // The location group radius unit is invalid. + INVALID_LOCATION_GROUP_RADIUS_UNIT = 125; + + // Criteria type cannot be associated with a campaign and its ad group(s) + // simultaneously. + CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP = 81; + + // Range represented by hotel length of stay's min nights and max nights + // overlaps with an existing criterion. + HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION = 82; + + // Range represented by hotel advance booking window's min days and max days + // overlaps with an existing criterion. + HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION = 83; + + // The field is not allowed to be set when the negative field is set to + // true, e.g. we don't allow bids in negative ad group or campaign criteria. + FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING = 84; + + // The combination of operand and operator in webpage condition is invalid. + INVALID_WEBPAGE_CONDITION = 85; + + // The URL of webpage condition is invalid. + INVALID_WEBPAGE_CONDITION_URL = 86; + + // The URL of webpage condition cannot be empty or contain white space. + WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY = 87; + + // The URL of webpage condition contains an unsupported protocol. + WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL = 88; + + // The URL of webpage condition cannot be an IP address. + WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS = 89; + + // The domain of the URL is not consistent with the domain in campaign + // setting. + WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING = 90; + + // The URL of webpage condition cannot be a public suffix itself. + WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX = 91; + + // The URL of webpage condition has an invalid public suffix. + WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX = 92; + + // Value track parameter is not supported in webpage condition URL. + WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED = 93; + + // Only one URL-EQUALS webpage condition is allowed in a webpage + // criterion and it cannot be combined with other conditions. + WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION = 94; + + // A webpage criterion cannot be added to a non-DSA ad group. + WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP = 95; + + // Cannot add positive user list criteria in Smart Display campaigns. + CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS = 99; + + // Cannot add positive placement criterion types in search campaigns. + CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS = 126; + + // Listing scope contains too many dimension types. + LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES = 100; + + // Listing scope has too many IN operators. + LISTING_SCOPE_TOO_MANY_IN_OPERATORS = 101; + + // Listing scope contains IN operator on an unsupported dimension type. + LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED = 102; + + // There are dimensions with duplicate dimension type. + DUPLICATE_LISTING_DIMENSION_TYPE = 103; + + // There are dimensions with duplicate dimension value. + DUPLICATE_LISTING_DIMENSION_VALUE = 104; + + // Listing group SUBDIVISION nodes cannot have bids. + CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION = 105; + + // Ad group is invalid due to the listing groups it contains. + INVALID_LISTING_GROUP_HIERARCHY = 106; + + // Listing group unit cannot have children. + LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN = 107; + + // Subdivided listing groups must have an "others" case. + LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE = 108; + + // Dimension type of listing group must be the same as that of its siblings. + LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS = 109; + + // Listing group cannot be added to the ad group because it already exists. + LISTING_GROUP_ALREADY_EXISTS = 110; + + // Listing group referenced in the operation was not found in the ad group. + LISTING_GROUP_DOES_NOT_EXIST = 111; + + // Recursive removal failed because listing group subdivision is being + // created or modified in this request. + LISTING_GROUP_CANNOT_BE_REMOVED = 112; + + // Listing group type is not allowed for specified ad group criterion type. + INVALID_LISTING_GROUP_TYPE = 113; + + // Listing group in an ADD operation specifies a non temporary criterion id. + LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID = 114; + + // The combined length of dimension values of the Listing scope criterion + // is too long. + LISTING_SCOPE_TOO_LONG = 115; + + // Listing scope contains too many dimensions. + LISTING_SCOPE_TOO_MANY_DIMENSIONS = 116; + + // The combined length of dimension values of the Listing group criterion is + // too long. + LISTING_GROUP_TOO_LONG = 117; + + // Listing group tree is too deep. + LISTING_GROUP_TREE_TOO_DEEP = 118; + + // Listing dimension is invalid (e.g. dimension contains illegal value, + // dimension type is represented with wrong class, etc). Listing dimension + // value can not contain "==" or "&+". + INVALID_LISTING_DIMENSION = 119; + + // Listing dimension type is either invalid for campaigns of this type or + // cannot be used in the current context. BIDDING_CATEGORY_Lx and + // PRODUCT_TYPE_Lx dimensions must be used in ascending order of their + // levels: L1, L2, L3, L4, L5... The levels must be specified sequentially + // and start from L1. Furthermore, an "others" Listing group cannot be + // subdivided with a dimension of the same type but of a higher level + // ("others" BIDDING_CATEGORY_L3 can be subdivided with BRAND but not with + // BIDDING_CATEGORY_L4). + INVALID_LISTING_DIMENSION_TYPE = 120; + + // Customer is not on allowlist for composite audience in display campaigns. + ADVERTISER_NOT_ON_ALLOWLIST_FOR_COMBINED_AUDIENCE_ON_DISPLAY = 127; + + // Cannot target on a removed combined audience. + CANNOT_TARGET_REMOVED_COMBINED_AUDIENCE = 128; + + // Combined audience ID is invalid. + INVALID_COMBINED_AUDIENCE_ID = 129; + + // Can not target removed combined audience. + CANNOT_TARGET_REMOVED_CUSTOM_AUDIENCE = 130; + + // Range represented by hotel check-in date's start date and end date + // overlaps with an existing criterion. + HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION = 131; + + // Start date is earlier than earliest allowed value of yesterday UTC. + HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY = 132; + + // End date later is than latest allowed day of 330 days in the future UTC. + HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE = 133; + + // Start date is after end date. + HOTEL_CHECK_IN_DATE_RANGE_REVERSED = 134; + + // Broad match modifier (BMM) keywords can no longer be created. Please see + // https://ads-developers.googleblog.com/2021/06/broad-match-modifier-upcoming-changes.html. + BROAD_MATCH_MODIFIER_KEYWORD_NOT_ALLOWED = 135; + + // Only one audience is allowed in an asset group. + ONE_AUDIENCE_ALLOWED_PER_ASSET_GROUP = 136; + + // Audience is not supported for the specified campaign type. + AUDIENCE_NOT_ELIGIBLE_FOR_CAMPAIGN_TYPE = 137; + + // Audience is not allowed to attach when use_audience_grouped bit is set to + // false. + AUDIENCE_NOT_ALLOWED_TO_ATTACH_WHEN_AUDIENCE_GROUPED_SET_TO_FALSE = 138; + + // Targeting is not allowed for Customer Match lists as per Customer Match + // policy. Please see + // https://support.google.com/google-ads/answer/6299717. + CANNOT_TARGET_CUSTOMER_MATCH_USER_LIST = 139; + } + + +} diff --git a/google/ads/googleads/v10/errors/currency_code_error.proto b/google/ads/googleads/v10/errors/currency_code_error.proto new file mode 100644 index 000000000..bc1331e41 --- /dev/null +++ b/google/ads/googleads/v10/errors/currency_code_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CurrencyCodeErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing currency code errors. + +// Container for enum describing possible currency code errors. +message CurrencyCodeErrorEnum { + // Enum describing possible currency code errors. + enum CurrencyCodeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The currency code is not supported. + UNSUPPORTED = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/custom_audience_error.proto b/google/ads/googleads/v10/errors/custom_audience_error.proto new file mode 100644 index 000000000..3f57f6c6d --- /dev/null +++ b/google/ads/googleads/v10/errors/custom_audience_error.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing custom audience errors. + +// Container for enum describing possible custom audience errors. +message CustomAudienceErrorEnum { + // Enum describing possible custom audience errors. + enum CustomAudienceError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // New name in the custom audience is duplicated ignoring cases. + NAME_ALREADY_USED = 2; + + // Cannot remove a custom audience while it's still being used as targeting. + CANNOT_REMOVE_WHILE_IN_USE = 3; + + // Cannot update or remove a custom audience that is already removed. + RESOURCE_ALREADY_REMOVED = 4; + + // The pair of [type, value] already exists in members. + MEMBER_TYPE_AND_PARAMETER_ALREADY_EXISTED = 5; + + // Member type is invalid. + INVALID_MEMBER_TYPE = 6; + + // Member type does not have associated value. + MEMBER_TYPE_AND_VALUE_DOES_NOT_MATCH = 7; + + // Custom audience contains a member that violates policy. + POLICY_VIOLATION = 8; + + // Change in custom audience type is not allowed. + INVALID_TYPE_CHANGE = 9; + } + + +} diff --git a/google/ads/googleads/v10/errors/custom_conversion_goal_error.proto b/google/ads/googleads/v10/errors/custom_conversion_goal_error.proto new file mode 100644 index 000000000..f323b5772 --- /dev/null +++ b/google/ads/googleads/v10/errors/custom_conversion_goal_error.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomConversionGoalErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing CustomConversionGoal errors. + +// Container for enum describing possible custom conversion goal errors. +message CustomConversionGoalErrorEnum { + // Enum describing possible custom conversion goal errors. + enum CustomConversionGoalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot find a conversion action with the specified id. + INVALID_CONVERSION_ACTION = 2; + + // The conversion action is not enabled so it cannot be included in a custom + // conversion goal. + CONVERSION_ACTION_NOT_ENABLED = 3; + + // The custom conversion goal cannot be removed because it's linked to a + // campaign. + CANNOT_REMOVE_LINKED_CUSTOM_CONVERSION_GOAL = 4; + + // Custom goal with the same name already exists. + CUSTOM_GOAL_DUPLICATE_NAME = 5; + + // Custom goal with the same conversion action list already exists. + DUPLICATE_CONVERSION_ACTION_LIST = 6; + } + + +} diff --git a/google/ads/googleads/v10/errors/custom_interest_error.proto b/google/ads/googleads/v10/errors/custom_interest_error.proto new file mode 100644 index 000000000..eb40427d6 --- /dev/null +++ b/google/ads/googleads/v10/errors/custom_interest_error.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing custom interest errors. + +// Container for enum describing possible custom interest errors. +message CustomInterestErrorEnum { + // Enum describing possible custom interest errors. + enum CustomInterestError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Duplicate custom interest name ignoring case. + NAME_ALREADY_USED = 2; + + // In the remove custom interest member operation, both member ID and + // pair [type, parameter] are not present. + CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE = 3; + + // The pair of [type, parameter] does not exist. + TYPE_AND_PARAMETER_NOT_FOUND = 4; + + // The pair of [type, parameter] already exists. + TYPE_AND_PARAMETER_ALREADY_EXISTED = 5; + + // Unsupported custom interest member type. + INVALID_CUSTOM_INTEREST_MEMBER_TYPE = 6; + + // Cannot remove a custom interest while it's still being targeted. + CANNOT_REMOVE_WHILE_IN_USE = 7; + + // Cannot mutate custom interest type. + CANNOT_CHANGE_TYPE = 8; + } + + +} diff --git a/google/ads/googleads/v10/errors/customer_client_link_error.proto b/google/ads/googleads/v10/errors/customer_client_link_error.proto new file mode 100644 index 000000000..a0538233f --- /dev/null +++ b/google/ads/googleads/v10/errors/customer_client_link_error.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerClientLinkErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing CustomerClientLink errors. + +// Container for enum describing possible CustomeClientLink errors. +message CustomerClientLinkErrorEnum { + // Enum describing possible CustomerClientLink errors. + enum CustomerClientLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Trying to manage a client that already in being managed by customer. + CLIENT_ALREADY_INVITED_BY_THIS_MANAGER = 2; + + // Already managed by some other manager in the hierarchy. + CLIENT_ALREADY_MANAGED_IN_HIERARCHY = 3; + + // Attempt to create a cycle in the hierarchy. + CYCLIC_LINK_NOT_ALLOWED = 4; + + // Managed accounts has the maximum number of linked accounts. + CUSTOMER_HAS_TOO_MANY_ACCOUNTS = 5; + + // Invitor has the maximum pending invitations. + CLIENT_HAS_TOO_MANY_INVITATIONS = 6; + + // Attempt to change hidden status of a link that is not active. + CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS = 7; + + // Parent manager account has the maximum number of linked accounts. + CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER = 8; + + // Client has too many managers. + CLIENT_HAS_TOO_MANY_MANAGERS = 9; + } + + +} diff --git a/google/ads/googleads/v10/errors/customer_customizer_error.proto b/google/ads/googleads/v10/errors/customer_customizer_error.proto new file mode 100644 index 000000000..a59548e36 --- /dev/null +++ b/google/ads/googleads/v10/errors/customer_customizer_error.proto @@ -0,0 +1,42 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing customer customizer errors. + +// Container for enum describing possible customer customizer errors. +message CustomerCustomizerErrorEnum { + // Enum describing possible customer customizer errors. + enum CustomerCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + } + + +} diff --git a/google/ads/googleads/v10/errors/customer_error.proto b/google/ads/googleads/v10/errors/customer_error.proto new file mode 100644 index 000000000..c578078f0 --- /dev/null +++ b/google/ads/googleads/v10/errors/customer_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Container for enum describing possible customer errors. +message CustomerErrorEnum { + // Set of errors that are related to requests dealing with Customer. + enum CustomerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Customer status is not allowed to be changed from DRAFT and CLOSED. + // Currency code and at least one of country code and time zone needs to be + // set when status is changed to ENABLED. + STATUS_CHANGE_DISALLOWED = 2; + + // CustomerService cannot get a customer that has not been fully set up. + ACCOUNT_NOT_SET_UP = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/customer_feed_error.proto b/google/ads/googleads/v10/errors/customer_feed_error.proto new file mode 100644 index 000000000..9e55ff18f --- /dev/null +++ b/google/ads/googleads/v10/errors/customer_feed_error.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerFeedErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing customer feed errors. + +// Container for enum describing possible customer feed errors. +message CustomerFeedErrorEnum { + // Enum describing possible customer feed errors. + enum CustomerFeedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An active feed already exists for this customer and place holder type. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; + + // The specified feed is removed. + CANNOT_CREATE_FOR_REMOVED_FEED = 3; + + // The CustomerFeed already exists. Update should be used to modify the + // existing CustomerFeed. + CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED = 4; + + // Cannot update removed customer feed. + CANNOT_MODIFY_REMOVED_CUSTOMER_FEED = 5; + + // Invalid placeholder type. + INVALID_PLACEHOLDER_TYPE = 6; + + // Feed mapping for this placeholder type does not exist. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7; + + // Placeholder not allowed at the account level. + PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED = 8; + } + + +} diff --git a/google/ads/googleads/v10/errors/customer_manager_link_error.proto b/google/ads/googleads/v10/errors/customer_manager_link_error.proto new file mode 100644 index 000000000..baf640a76 --- /dev/null +++ b/google/ads/googleads/v10/errors/customer_manager_link_error.proto @@ -0,0 +1,73 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerManagerLinkErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing CustomerManagerLink errors. + +// Container for enum describing possible CustomerManagerLink errors. +message CustomerManagerLinkErrorEnum { + // Enum describing possible CustomerManagerLink errors. + enum CustomerManagerLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // No pending invitation. + NO_PENDING_INVITE = 2; + + // Attempt to operate on the same client more than once in the same call. + SAME_CLIENT_MORE_THAN_ONCE_PER_CALL = 3; + + // Manager account has the maximum number of linked accounts. + MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS = 4; + + // If no active user on account it cannot be unlinked from its manager. + CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER = 5; + + // Account should have at least one active owner on it before being + // unlinked. + CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER = 6; + + // Only account owners may change their permission role. + CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER = 7; + + // When a client's link to its manager is not active, the link role cannot + // be changed. + CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT = 8; + + // Attempt to link a child to a parent that contains or will contain + // duplicate children. + DUPLICATE_CHILD_FOUND = 9; + + // The authorized customer is a test account. It can add no more than the + // allowed number of accounts + TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS = 10; + } + + +} diff --git a/google/ads/googleads/v10/errors/customer_user_access_error.proto b/google/ads/googleads/v10/errors/customer_user_access_error.proto new file mode 100644 index 000000000..2cf62ec1c --- /dev/null +++ b/google/ads/googleads/v10/errors/customer_user_access_error.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing CustomerUserAccess errors. + +// Container for enum describing possible CustomerUserAccess errors. +message CustomerUserAccessErrorEnum { + // Enum describing possible customer user access errors. + enum CustomerUserAccessError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // There is no user associated with the user id specified. + INVALID_USER_ID = 2; + + // Unable to remove the access between the user and customer. + REMOVAL_DISALLOWED = 3; + + // Unable to add or update the access role as specified. + DISALLOWED_ACCESS_ROLE = 4; + + // The user can't remove itself from an active serving customer if it's the + // last admin user and the customer doesn't have any owner manager + LAST_ADMIN_USER_OF_SERVING_CUSTOMER = 5; + + // Last admin user cannot be removed from a manager. + LAST_ADMIN_USER_OF_MANAGER = 6; + } + + +} diff --git a/google/ads/googleads/v10/errors/customizer_attribute_error.proto b/google/ads/googleads/v10/errors/customizer_attribute_error.proto new file mode 100644 index 000000000..5c2bcafa2 --- /dev/null +++ b/google/ads/googleads/v10/errors/customizer_attribute_error.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing customizer attribute errors. + +// Container for enum describing possible customizer attribute errors. +message CustomizerAttributeErrorEnum { + // Enum describing possible customizer attribute errors. + enum CustomizerAttributeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // CustomizerAttribute name matches that of another active + // CustomizerAttribute. + DUPLICATE_CUSTOMIZER_ATTRIBUTE_NAME = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/database_error.proto b/google/ads/googleads/v10/errors/database_error.proto new file mode 100644 index 000000000..be948f4f1 --- /dev/null +++ b/google/ads/googleads/v10/errors/database_error.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DatabaseErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing database errors. + +// Container for enum describing possible database errors. +message DatabaseErrorEnum { + // Enum describing possible database errors. + enum DatabaseError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Multiple requests were attempting to modify the same resource at once. + // Please retry the request. + CONCURRENT_MODIFICATION = 2; + + // The request conflicted with existing data. This error will usually be + // replaced with a more specific error if the request is retried. + DATA_CONSTRAINT_VIOLATION = 3; + + // The data written is too large. Please split the request into smaller + // requests. + REQUEST_TOO_LARGE = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/date_error.proto b/google/ads/googleads/v10/errors/date_error.proto new file mode 100644 index 000000000..ce62f1785 --- /dev/null +++ b/google/ads/googleads/v10/errors/date_error.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DateErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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/google/ads/googleads/v10/errors/date_range_error.proto b/google/ads/googleads/v10/errors/date_range_error.proto new file mode 100644 index 000000000..d14e4152d --- /dev/null +++ b/google/ads/googleads/v10/errors/date_range_error.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DateRangeErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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/google/ads/googleads/v10/errors/distinct_error.proto b/google/ads/googleads/v10/errors/distinct_error.proto new file mode 100644 index 000000000..3058b38e0 --- /dev/null +++ b/google/ads/googleads/v10/errors/distinct_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DistinctErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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/google/ads/googleads/v10/errors/enum_error.proto b/google/ads/googleads/v10/errors/enum_error.proto new file mode 100644 index 000000000..3ae108f62 --- /dev/null +++ b/google/ads/googleads/v10/errors/enum_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "EnumErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing enum errors. + +// Container for enum describing possible enum errors. +message EnumErrorEnum { + // Enum describing possible enum errors. + enum EnumError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The enum value is not permitted. + ENUM_VALUE_NOT_PERMITTED = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/errors.proto b/google/ads/googleads/v10/errors/errors.proto new file mode 100644 index 000000000..9480008aa --- /dev/null +++ b/google/ads/googleads/v10/errors/errors.proto @@ -0,0 +1,735 @@ +// 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.ads.googleads.v10.errors; + +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/common/value.proto"; +import "google/ads/googleads/v10/enums/resource_limit_type.proto"; +import "google/ads/googleads/v10/errors/access_invitation_error.proto"; +import "google/ads/googleads/v10/errors/account_budget_proposal_error.proto"; +import "google/ads/googleads/v10/errors/account_link_error.proto"; +import "google/ads/googleads/v10/errors/ad_customizer_error.proto"; +import "google/ads/googleads/v10/errors/ad_error.proto"; +import "google/ads/googleads/v10/errors/ad_group_ad_error.proto"; +import "google/ads/googleads/v10/errors/ad_group_bid_modifier_error.proto"; +import "google/ads/googleads/v10/errors/ad_group_criterion_customizer_error.proto"; +import "google/ads/googleads/v10/errors/ad_group_criterion_error.proto"; +import "google/ads/googleads/v10/errors/ad_group_customizer_error.proto"; +import "google/ads/googleads/v10/errors/ad_group_error.proto"; +import "google/ads/googleads/v10/errors/ad_group_feed_error.proto"; +import "google/ads/googleads/v10/errors/ad_parameter_error.proto"; +import "google/ads/googleads/v10/errors/ad_sharing_error.proto"; +import "google/ads/googleads/v10/errors/adx_error.proto"; +import "google/ads/googleads/v10/errors/asset_error.proto"; +import "google/ads/googleads/v10/errors/asset_group_asset_error.proto"; +import "google/ads/googleads/v10/errors/asset_group_error.proto"; +import "google/ads/googleads/v10/errors/asset_group_listing_group_filter_error.proto"; +import "google/ads/googleads/v10/errors/asset_link_error.proto"; +import "google/ads/googleads/v10/errors/asset_set_asset_error.proto"; +import "google/ads/googleads/v10/errors/asset_set_error.proto"; +import "google/ads/googleads/v10/errors/asset_set_link_error.proto"; +import "google/ads/googleads/v10/errors/audience_error.proto"; +import "google/ads/googleads/v10/errors/authentication_error.proto"; +import "google/ads/googleads/v10/errors/authorization_error.proto"; +import "google/ads/googleads/v10/errors/batch_job_error.proto"; +import "google/ads/googleads/v10/errors/bidding_error.proto"; +import "google/ads/googleads/v10/errors/bidding_strategy_error.proto"; +import "google/ads/googleads/v10/errors/billing_setup_error.proto"; +import "google/ads/googleads/v10/errors/campaign_budget_error.proto"; +import "google/ads/googleads/v10/errors/campaign_conversion_goal_error.proto"; +import "google/ads/googleads/v10/errors/campaign_criterion_error.proto"; +import "google/ads/googleads/v10/errors/campaign_customizer_error.proto"; +import "google/ads/googleads/v10/errors/campaign_draft_error.proto"; +import "google/ads/googleads/v10/errors/campaign_error.proto"; +import "google/ads/googleads/v10/errors/campaign_experiment_error.proto"; +import "google/ads/googleads/v10/errors/campaign_feed_error.proto"; +import "google/ads/googleads/v10/errors/campaign_shared_set_error.proto"; +import "google/ads/googleads/v10/errors/change_event_error.proto"; +import "google/ads/googleads/v10/errors/change_status_error.proto"; +import "google/ads/googleads/v10/errors/collection_size_error.proto"; +import "google/ads/googleads/v10/errors/context_error.proto"; +import "google/ads/googleads/v10/errors/conversion_action_error.proto"; +import "google/ads/googleads/v10/errors/conversion_adjustment_upload_error.proto"; +import "google/ads/googleads/v10/errors/conversion_custom_variable_error.proto"; +import "google/ads/googleads/v10/errors/conversion_goal_campaign_config_error.proto"; +import "google/ads/googleads/v10/errors/conversion_upload_error.proto"; +import "google/ads/googleads/v10/errors/conversion_value_rule_error.proto"; +import "google/ads/googleads/v10/errors/conversion_value_rule_set_error.proto"; +import "google/ads/googleads/v10/errors/country_code_error.proto"; +import "google/ads/googleads/v10/errors/criterion_error.proto"; +import "google/ads/googleads/v10/errors/currency_code_error.proto"; +import "google/ads/googleads/v10/errors/custom_audience_error.proto"; +import "google/ads/googleads/v10/errors/custom_conversion_goal_error.proto"; +import "google/ads/googleads/v10/errors/custom_interest_error.proto"; +import "google/ads/googleads/v10/errors/customer_client_link_error.proto"; +import "google/ads/googleads/v10/errors/customer_customizer_error.proto"; +import "google/ads/googleads/v10/errors/customer_error.proto"; +import "google/ads/googleads/v10/errors/customer_feed_error.proto"; +import "google/ads/googleads/v10/errors/customer_manager_link_error.proto"; +import "google/ads/googleads/v10/errors/customer_user_access_error.proto"; +import "google/ads/googleads/v10/errors/customizer_attribute_error.proto"; +import "google/ads/googleads/v10/errors/database_error.proto"; +import "google/ads/googleads/v10/errors/date_error.proto"; +import "google/ads/googleads/v10/errors/date_range_error.proto"; +import "google/ads/googleads/v10/errors/distinct_error.proto"; +import "google/ads/googleads/v10/errors/enum_error.proto"; +import "google/ads/googleads/v10/errors/experiment_arm_error.proto"; +import "google/ads/googleads/v10/errors/experiment_error.proto"; +import "google/ads/googleads/v10/errors/extension_feed_item_error.proto"; +import "google/ads/googleads/v10/errors/extension_setting_error.proto"; +import "google/ads/googleads/v10/errors/feed_attribute_reference_error.proto"; +import "google/ads/googleads/v10/errors/feed_error.proto"; +import "google/ads/googleads/v10/errors/feed_item_error.proto"; +import "google/ads/googleads/v10/errors/feed_item_set_error.proto"; +import "google/ads/googleads/v10/errors/feed_item_set_link_error.proto"; +import "google/ads/googleads/v10/errors/feed_item_target_error.proto"; +import "google/ads/googleads/v10/errors/feed_item_validation_error.proto"; +import "google/ads/googleads/v10/errors/feed_mapping_error.proto"; +import "google/ads/googleads/v10/errors/field_error.proto"; +import "google/ads/googleads/v10/errors/field_mask_error.proto"; +import "google/ads/googleads/v10/errors/function_error.proto"; +import "google/ads/googleads/v10/errors/function_parsing_error.proto"; +import "google/ads/googleads/v10/errors/geo_target_constant_suggestion_error.proto"; +import "google/ads/googleads/v10/errors/header_error.proto"; +import "google/ads/googleads/v10/errors/id_error.proto"; +import "google/ads/googleads/v10/errors/image_error.proto"; +import "google/ads/googleads/v10/errors/internal_error.proto"; +import "google/ads/googleads/v10/errors/invoice_error.proto"; +import "google/ads/googleads/v10/errors/keyword_plan_ad_group_error.proto"; +import "google/ads/googleads/v10/errors/keyword_plan_ad_group_keyword_error.proto"; +import "google/ads/googleads/v10/errors/keyword_plan_campaign_error.proto"; +import "google/ads/googleads/v10/errors/keyword_plan_campaign_keyword_error.proto"; +import "google/ads/googleads/v10/errors/keyword_plan_error.proto"; +import "google/ads/googleads/v10/errors/keyword_plan_idea_error.proto"; +import "google/ads/googleads/v10/errors/label_error.proto"; +import "google/ads/googleads/v10/errors/language_code_error.proto"; +import "google/ads/googleads/v10/errors/list_operation_error.proto"; +import "google/ads/googleads/v10/errors/manager_link_error.proto"; +import "google/ads/googleads/v10/errors/media_bundle_error.proto"; +import "google/ads/googleads/v10/errors/media_file_error.proto"; +import "google/ads/googleads/v10/errors/media_upload_error.proto"; +import "google/ads/googleads/v10/errors/merchant_center_error.proto"; +import "google/ads/googleads/v10/errors/multiplier_error.proto"; +import "google/ads/googleads/v10/errors/mutate_error.proto"; +import "google/ads/googleads/v10/errors/new_resource_creation_error.proto"; +import "google/ads/googleads/v10/errors/not_allowlisted_error.proto"; +import "google/ads/googleads/v10/errors/not_empty_error.proto"; +import "google/ads/googleads/v10/errors/null_error.proto"; +import "google/ads/googleads/v10/errors/offline_user_data_job_error.proto"; +import "google/ads/googleads/v10/errors/operation_access_denied_error.proto"; +import "google/ads/googleads/v10/errors/operator_error.proto"; +import "google/ads/googleads/v10/errors/partial_failure_error.proto"; +import "google/ads/googleads/v10/errors/payments_account_error.proto"; +import "google/ads/googleads/v10/errors/policy_finding_error.proto"; +import "google/ads/googleads/v10/errors/policy_validation_parameter_error.proto"; +import "google/ads/googleads/v10/errors/policy_violation_error.proto"; +import "google/ads/googleads/v10/errors/query_error.proto"; +import "google/ads/googleads/v10/errors/quota_error.proto"; +import "google/ads/googleads/v10/errors/range_error.proto"; +import "google/ads/googleads/v10/errors/reach_plan_error.proto"; +import "google/ads/googleads/v10/errors/recommendation_error.proto"; +import "google/ads/googleads/v10/errors/region_code_error.proto"; +import "google/ads/googleads/v10/errors/request_error.proto"; +import "google/ads/googleads/v10/errors/resource_access_denied_error.proto"; +import "google/ads/googleads/v10/errors/resource_count_limit_exceeded_error.proto"; +import "google/ads/googleads/v10/errors/setting_error.proto"; +import "google/ads/googleads/v10/errors/shared_criterion_error.proto"; +import "google/ads/googleads/v10/errors/shared_set_error.proto"; +import "google/ads/googleads/v10/errors/size_limit_error.proto"; +import "google/ads/googleads/v10/errors/string_format_error.proto"; +import "google/ads/googleads/v10/errors/string_length_error.proto"; +import "google/ads/googleads/v10/errors/third_party_app_analytics_link_error.proto"; +import "google/ads/googleads/v10/errors/time_zone_error.proto"; +import "google/ads/googleads/v10/errors/url_field_error.proto"; +import "google/ads/googleads/v10/errors/user_data_error.proto"; +import "google/ads/googleads/v10/errors/user_list_error.proto"; +import "google/ads/googleads/v10/errors/youtube_video_registration_error.proto"; +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ErrorsProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing the common error protos + +// Describes how a GoogleAds API call failed. It's returned inside +// google.rpc.Status.details when a call fails. +message GoogleAdsFailure { + // The list of errors that occurred. + repeated GoogleAdsError errors = 1; + + // The unique ID of the request that is used for debugging purposes. + string request_id = 2; +} + +// GoogleAds-specific error. +message GoogleAdsError { + // 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.googleads.v10.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 a Bidding Strategy mutate. + BiddingStrategyErrorEnum.BiddingStrategyError bidding_strategy_error = 2; + + // An error with a URL field mutate. + UrlFieldErrorEnum.UrlFieldError url_field_error = 3; + + // An error with a list operation. + ListOperationErrorEnum.ListOperationError list_operation_error = 4; + + // An error with an AWQL query + QueryErrorEnum.QueryError query_error = 5; + + // An error with a mutate + MutateErrorEnum.MutateError mutate_error = 7; + + // An error with a field mask + FieldMaskErrorEnum.FieldMaskError field_mask_error = 8; + + // 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 amonut of quota remaining. + QuotaErrorEnum.QuotaError quota_error = 11; + + // An error with an Ad Group Ad mutate. + AdErrorEnum.AdError ad_error = 12; + + // An error with an Ad Group mutate. + AdGroupErrorEnum.AdGroupError ad_group_error = 13; + + // An error with a Campaign Budget mutate. + CampaignBudgetErrorEnum.CampaignBudgetError campaign_budget_error = 14; + + // An error with a Campaign mutate. + CampaignErrorEnum.CampaignError campaign_error = 15; + + // Indicates failure to properly authenticate user. + AuthenticationErrorEnum.AuthenticationError authentication_error = 17; + + // The reasons for the ad group criterion customizer error. + AdGroupCriterionCustomizerErrorEnum.AdGroupCriterionCustomizerError ad_group_criterion_customizer_error = 161; + + // Indicates failure to properly authenticate user. + AdGroupCriterionErrorEnum.AdGroupCriterionError ad_group_criterion_error = 18; + + // The reasons for the ad group customizer error. + AdGroupCustomizerErrorEnum.AdGroupCustomizerError ad_group_customizer_error = 159; + + // The reasons for the ad customizer error + AdCustomizerErrorEnum.AdCustomizerError ad_customizer_error = 19; + + // The reasons for the ad group ad error + AdGroupAdErrorEnum.AdGroupAdError ad_group_ad_error = 21; + + // The reasons for the ad sharing error + AdSharingErrorEnum.AdSharingError ad_sharing_error = 24; + + // The reasons for the adx error + AdxErrorEnum.AdxError adx_error = 25; + + // The reasons for the asset error + AssetErrorEnum.AssetError asset_error = 107; + + // The reasons for the asset group asset error + AssetGroupAssetErrorEnum.AssetGroupAssetError asset_group_asset_error = 149; + + // The reasons for the asset group listing group filter error + AssetGroupListingGroupFilterErrorEnum.AssetGroupListingGroupFilterError asset_group_listing_group_filter_error = 155; + + // The reasons for the asset group error + AssetGroupErrorEnum.AssetGroupError asset_group_error = 148; + + // The reasons for the asset set asset error + AssetSetAssetErrorEnum.AssetSetAssetError asset_set_asset_error = 153; + + // The reasons for the asset set link error + AssetSetLinkErrorEnum.AssetSetLinkError asset_set_link_error = 154; + + // The reasons for the asset set error + AssetSetErrorEnum.AssetSetError asset_set_error = 152; + + // The reasons for the bidding errors + BiddingErrorEnum.BiddingError bidding_error = 26; + + // The reasons for the campaign criterion error + CampaignCriterionErrorEnum.CampaignCriterionError campaign_criterion_error = 29; + + // The reasons for the campaign conversion goal error + CampaignConversionGoalErrorEnum.CampaignConversionGoalError campaign_conversion_goal_error = 166; + + // The reasons for the campaign customizer error. + CampaignCustomizerErrorEnum.CampaignCustomizerError campaign_customizer_error = 160; + + // The reasons for the collection size error + CollectionSizeErrorEnum.CollectionSizeError collection_size_error = 31; + + // The reasons for the conversion goal campaign config error + ConversionGoalCampaignConfigErrorEnum.ConversionGoalCampaignConfigError conversion_goal_campaign_config_error = 165; + + // The reasons for the country code error + CountryCodeErrorEnum.CountryCodeError country_code_error = 109; + + // The reasons for the criterion error + CriterionErrorEnum.CriterionError criterion_error = 32; + + // The reasons for the custom conversion goal error + CustomConversionGoalErrorEnum.CustomConversionGoalError custom_conversion_goal_error = 150; + + // The reasons for the customer customizer error. + CustomerCustomizerErrorEnum.CustomerCustomizerError customer_customizer_error = 158; + + // The reasons for the customer error + CustomerErrorEnum.CustomerError customer_error = 90; + + // The reasons for the customizer attribute error. + CustomizerAttributeErrorEnum.CustomizerAttributeError customizer_attribute_error = 151; + + // 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 feed attribute reference error + FeedAttributeReferenceErrorEnum.FeedAttributeReferenceError feed_attribute_reference_error = 36; + + // The reasons for the function error + FunctionErrorEnum.FunctionError function_error = 37; + + // The reasons for the function parsing error + FunctionParsingErrorEnum.FunctionParsingError function_parsing_error = 38; + + // The reasons for the id error + IdErrorEnum.IdError id_error = 39; + + // The reasons for the image error + ImageErrorEnum.ImageError image_error = 40; + + // The reasons for the language code error + LanguageCodeErrorEnum.LanguageCodeError language_code_error = 110; + + // The reasons for the media bundle error + MediaBundleErrorEnum.MediaBundleError media_bundle_error = 42; + + // The reasons for media uploading errors. + MediaUploadErrorEnum.MediaUploadError media_upload_error = 116; + + // The reasons for the media file error + MediaFileErrorEnum.MediaFileError media_file_error = 86; + + // Container for enum describing possible merchant center errors. + MerchantCenterErrorEnum.MerchantCenterError merchant_center_error = 162; + + // The reasons for the multiplier error + MultiplierErrorEnum.MultiplierError multiplier_error = 44; + + // The reasons for the new resource creation error + NewResourceCreationErrorEnum.NewResourceCreationError new_resource_creation_error = 45; + + // The reasons for the not empty error + NotEmptyErrorEnum.NotEmptyError not_empty_error = 46; + + // The reasons for the null error + NullErrorEnum.NullError null_error = 47; + + // The reasons for the operator error + OperatorErrorEnum.OperatorError operator_error = 48; + + // The reasons for the range error + RangeErrorEnum.RangeError range_error = 49; + + // The reasons for error in applying a recommendation + RecommendationErrorEnum.RecommendationError recommendation_error = 58; + + // The reasons for the region code error + RegionCodeErrorEnum.RegionCodeError region_code_error = 51; + + // The reasons for the setting error + SettingErrorEnum.SettingError setting_error = 52; + + // The reasons for the string format error + StringFormatErrorEnum.StringFormatError string_format_error = 53; + + // The reasons for the string length error + StringLengthErrorEnum.StringLengthError string_length_error = 54; + + // The reasons for the operation access denied error + OperationAccessDeniedErrorEnum.OperationAccessDeniedError operation_access_denied_error = 55; + + // The reasons for the resource access denied error + ResourceAccessDeniedErrorEnum.ResourceAccessDeniedError resource_access_denied_error = 56; + + // The reasons for the resource count limit exceeded error + ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededError resource_count_limit_exceeded_error = 57; + + // The reasons for YouTube video registration errors. + YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationError youtube_video_registration_error = 117; + + // The reasons for the ad group bid modifier error + AdGroupBidModifierErrorEnum.AdGroupBidModifierError ad_group_bid_modifier_error = 59; + + // The reasons for the context error + ContextErrorEnum.ContextError context_error = 60; + + // The reasons for the field error + FieldErrorEnum.FieldError field_error = 61; + + // The reasons for the shared set error + SharedSetErrorEnum.SharedSetError shared_set_error = 62; + + // The reasons for the shared criterion error + SharedCriterionErrorEnum.SharedCriterionError shared_criterion_error = 63; + + // The reasons for the campaign shared set error + CampaignSharedSetErrorEnum.CampaignSharedSetError campaign_shared_set_error = 64; + + // The reasons for the conversion action error + ConversionActionErrorEnum.ConversionActionError conversion_action_error = 65; + + // The reasons for the conversion adjustment upload error + ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError conversion_adjustment_upload_error = 115; + + // The reasons for the conversion custom variable error + ConversionCustomVariableErrorEnum.ConversionCustomVariableError conversion_custom_variable_error = 143; + + // The reasons for the conversion upload error + ConversionUploadErrorEnum.ConversionUploadError conversion_upload_error = 111; + + // The reasons for the conversion value rule error + ConversionValueRuleErrorEnum.ConversionValueRuleError conversion_value_rule_error = 145; + + // The reasons for the conversion value rule set error + ConversionValueRuleSetErrorEnum.ConversionValueRuleSetError conversion_value_rule_set_error = 146; + + // The reasons for the header error. + HeaderErrorEnum.HeaderError header_error = 66; + + // The reasons for the database error. + DatabaseErrorEnum.DatabaseError database_error = 67; + + // The reasons for the policy finding error. + PolicyFindingErrorEnum.PolicyFindingError policy_finding_error = 68; + + // The reason for enum error. + EnumErrorEnum.EnumError enum_error = 70; + + // The reason for keyword plan error. + KeywordPlanErrorEnum.KeywordPlanError keyword_plan_error = 71; + + // The reason for keyword plan campaign error. + KeywordPlanCampaignErrorEnum.KeywordPlanCampaignError keyword_plan_campaign_error = 72; + + // The reason for keyword plan campaign keyword error. + KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordError keyword_plan_campaign_keyword_error = 132; + + // The reason for keyword plan ad group error. + KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupError keyword_plan_ad_group_error = 74; + + // The reason for keyword plan ad group keyword error. + KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordError keyword_plan_ad_group_keyword_error = 133; + + // The reason for keyword idea error. + KeywordPlanIdeaErrorEnum.KeywordPlanIdeaError keyword_plan_idea_error = 76; + + // The reasons for account budget proposal errors. + AccountBudgetProposalErrorEnum.AccountBudgetProposalError account_budget_proposal_error = 77; + + // The reasons for the user list error + UserListErrorEnum.UserListError user_list_error = 78; + + // The reasons for the change event error + ChangeEventErrorEnum.ChangeEventError change_event_error = 136; + + // The reasons for the change status error + ChangeStatusErrorEnum.ChangeStatusError change_status_error = 79; + + // The reasons for the feed error + FeedErrorEnum.FeedError feed_error = 80; + + // The reasons for the geo target constant suggestion error. + GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionError geo_target_constant_suggestion_error = 81; + + // The reasons for the campaign draft error + CampaignDraftErrorEnum.CampaignDraftError campaign_draft_error = 82; + + // The reasons for the feed item error + FeedItemErrorEnum.FeedItemError feed_item_error = 83; + + // The reason for the label error. + LabelErrorEnum.LabelError label_error = 84; + + // The reasons for the billing setup error + BillingSetupErrorEnum.BillingSetupError billing_setup_error = 87; + + // The reasons for the customer client link error + CustomerClientLinkErrorEnum.CustomerClientLinkError customer_client_link_error = 88; + + // The reasons for the customer manager link error + CustomerManagerLinkErrorEnum.CustomerManagerLinkError customer_manager_link_error = 91; + + // The reasons for the feed mapping error + FeedMappingErrorEnum.FeedMappingError feed_mapping_error = 92; + + // The reasons for the customer feed error + CustomerFeedErrorEnum.CustomerFeedError customer_feed_error = 93; + + // The reasons for the ad group feed error + AdGroupFeedErrorEnum.AdGroupFeedError ad_group_feed_error = 94; + + // The reasons for the campaign feed error + CampaignFeedErrorEnum.CampaignFeedError campaign_feed_error = 96; + + // The reasons for the custom interest error + CustomInterestErrorEnum.CustomInterestError custom_interest_error = 97; + + // The reasons for the campaign experiment error + CampaignExperimentErrorEnum.CampaignExperimentError campaign_experiment_error = 98; + + // The reasons for the extension feed item error + ExtensionFeedItemErrorEnum.ExtensionFeedItemError extension_feed_item_error = 100; + + // The reasons for the ad parameter error + AdParameterErrorEnum.AdParameterError ad_parameter_error = 101; + + // The reasons for the feed item validation error + FeedItemValidationErrorEnum.FeedItemValidationError feed_item_validation_error = 102; + + // The reasons for the extension setting error + ExtensionSettingErrorEnum.ExtensionSettingError extension_setting_error = 103; + + // The reasons for the feed item set error + FeedItemSetErrorEnum.FeedItemSetError feed_item_set_error = 140; + + // The reasons for the feed item set link error + FeedItemSetLinkErrorEnum.FeedItemSetLinkError feed_item_set_link_error = 141; + + // The reasons for the feed item target error + FeedItemTargetErrorEnum.FeedItemTargetError feed_item_target_error = 104; + + // The reasons for the policy violation error + PolicyViolationErrorEnum.PolicyViolationError policy_violation_error = 105; + + // The reasons for the mutate job error + PartialFailureErrorEnum.PartialFailureError partial_failure_error = 112; + + // The reasons for the policy validation parameter error + PolicyValidationParameterErrorEnum.PolicyValidationParameterError policy_validation_parameter_error = 114; + + // The reasons for the size limit error + SizeLimitErrorEnum.SizeLimitError size_limit_error = 118; + + // The reasons for the offline user data job error. + OfflineUserDataJobErrorEnum.OfflineUserDataJobError offline_user_data_job_error = 119; + + // The reasons for the not allowlisted error + NotAllowlistedErrorEnum.NotAllowlistedError not_allowlisted_error = 137; + + // The reasons for the manager link error + ManagerLinkErrorEnum.ManagerLinkError manager_link_error = 121; + + // The reasons for the currency code error + CurrencyCodeErrorEnum.CurrencyCodeError currency_code_error = 122; + + // The reasons for the experiment error + ExperimentErrorEnum.ExperimentError experiment_error = 123; + + // The reasons for the access invitation error + AccessInvitationErrorEnum.AccessInvitationError access_invitation_error = 124; + + // The reasons for the reach plan error + ReachPlanErrorEnum.ReachPlanError reach_plan_error = 125; + + // The reasons for the invoice error + InvoiceErrorEnum.InvoiceError invoice_error = 126; + + // The reasons for errors in payments accounts service + PaymentsAccountErrorEnum.PaymentsAccountError payments_account_error = 127; + + // The reasons for the time zone error + TimeZoneErrorEnum.TimeZoneError time_zone_error = 128; + + // The reasons for the asset link error + AssetLinkErrorEnum.AssetLinkError asset_link_error = 129; + + // The reasons for the user data error. + UserDataErrorEnum.UserDataError user_data_error = 130; + + // The reasons for the batch job error + BatchJobErrorEnum.BatchJobError batch_job_error = 131; + + // The reasons for the account link status change error + AccountLinkErrorEnum.AccountLinkError account_link_error = 134; + + // The reasons for the third party app analytics link mutate error + ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkError third_party_app_analytics_link_error = 135; + + // The reasons for the customer user access mutate error + CustomerUserAccessErrorEnum.CustomerUserAccessError customer_user_access_error = 138; + + // The reasons for the custom audience error + CustomAudienceErrorEnum.CustomAudienceError custom_audience_error = 139; + + // The reasons for the audience error + AudienceErrorEnum.AudienceError audience_error = 164; + + // The reasons for the experiment arm error + ExperimentArmErrorEnum.ExperimentArmError experiment_arm_error = 156; + } +} + +// 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; + + // Describes an ad policy violation. + PolicyViolationDetails policy_violation_details = 2; + + // Describes policy violation findings. + PolicyFindingDetails policy_finding_details = 3; + + // Details on the quota error, including the scope (account or developer), the + // rate bucket name and the retry delay. + QuotaErrorDetails quota_error_details = 4; + + // Details for a resource count limit exceeded error. + ResourceCountDetails resource_count_details = 5; +} + +// Error returned as part of a mutate response. +// This error indicates single policy violation by some text +// in one of the fields. +message PolicyViolationDetails { + // Human readable description of policy violation. + string external_policy_description = 2; + + // Unique identifier for this violation. + // If policy is exemptible, this key may be used to request exemption. + google.ads.googleads.v10.common.PolicyViolationKey key = 4; + + // Human readable name of the policy. + string external_policy_name = 5; + + // Whether user can file an exemption request for this violation. + bool is_exemptible = 6; +} + +// Error returned as part of a mutate response. +// This error indicates one or more policy findings in the fields of a +// resource. +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.v10.common.PolicyTopicEntry policy_topic_entries = 1; +} + +// 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 or DevToken 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; +} + +// Error details returned when an resource count limit was exceeded. +message ResourceCountDetails { + // The ID of the resource whose limit was exceeded. + // External customer ID if the limit is for a customer. + string enclosing_id = 1; + + // The name of the resource (Customer, Campaign etc.) whose limit was + // exceeded. + string enclosing_resource = 5; + + // The limit which was exceeded. + int32 limit = 2; + + // The resource limit type which was exceeded. + google.ads.googleads.v10.enums.ResourceLimitTypeEnum.ResourceLimitType limit_type = 3; + + // The count of existing entities. + int32 existing_count = 4; +} diff --git a/google/ads/googleads/v10/errors/experiment_arm_error.proto b/google/ads/googleads/v10/errors/experiment_arm_error.proto new file mode 100644 index 000000000..e58ca5a93 --- /dev/null +++ b/google/ads/googleads/v10/errors/experiment_arm_error.proto @@ -0,0 +1,86 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentArmErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing experiment arm errors. + +// Container for enum describing possible experiment arm error. +message ExperimentArmErrorEnum { + // Enum describing possible experiment arm errors. + enum ExperimentArmError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Number of experiment arms is above limit. + EXPERIMENT_ARM_COUNT_LIMIT_EXCEEDED = 2; + + // Cannot add campaign with invalid status to the experiment arm. + INVALID_CAMPAIGN_STATUS = 3; + + // Cannot add duplicate experiment arm name in one experiment. + DUPLICATE_EXPERIMENT_ARM_NAME = 4; + + // Cannot set campaigns of treatment experiment arm. + CANNOT_SET_TREATMENT_ARM_CAMPAIGN = 5; + + // Cannot edit campaign ids in trial arms in non SETUP experiment. + CANNOT_MODIFY_CAMPAIGN_IDS = 6; + + // Cannot modify the campaigns in the control arm + // if there is not a suffix set in the trial. + CANNOT_MODIFY_CAMPAIGN_WITHOUT_SUFFIX_SET = 7; + + // Traffic split related settings (like traffic share bounds) can't be + // modified after the trial has started. + CANNOT_MUTATE_TRAFFIC_SPLIT_AFTER_START = 8; + + // Cannot use shared budget on experiment's control campaign. + CANNOT_ADD_CAMPAIGN_WITH_SHARED_BUDGET = 9; + + // Cannot use custom budget on experiment's control campaigns. + CANNOT_ADD_CAMPAIGN_WITH_CUSTOM_BUDGET = 10; + + // Cannot have enable_dynamic_assets turned on in experiment's campaigns. + CANNOT_ADD_CAMPAIGNS_WITH_DYNAMIC_ASSETS_ENABLED = 11; + + // Cannot use campaign's advertising channel sub type in experiment. + UNSUPPORTED_CAMPAIGN_ADVERTISING_CHANNEL_SUB_TYPE = 12; + + // Experiment date range must be within base campaign's date range. + CANNOT_ADD_BASE_CAMPAIGN_WITH_DATE_RANGE = 13; + + // Bidding strategy is not supported in experiments. + BIDDING_STRATEGY_NOT_SUPPORTED_IN_EXPERIMENTS = 14; + + // Traffic split is not supported for some channel types. + TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE = 15; + } + + +} diff --git a/google/ads/googleads/v10/errors/experiment_error.proto b/google/ads/googleads/v10/errors/experiment_error.proto new file mode 100644 index 000000000..18444c5c3 --- /dev/null +++ b/google/ads/googleads/v10/errors/experiment_error.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing experiment errors. + +// Container for enum describing possible experiment error. +message ExperimentErrorEnum { + // Enum describing possible experiment errors. + enum ExperimentError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The start date of an experiment cannot be set in the past. + // Please use a start date in the future. + CANNOT_SET_START_DATE_IN_PAST = 2; + + // The end date of an experiment is before its start date. + // Please use an end date after the start date. + END_DATE_BEFORE_START_DATE = 3; + + // The start date of an experiment is too far in the future. + // Please use a start date no more than 1 year in the future. + START_DATE_TOO_FAR_IN_FUTURE = 4; + + // The experiment has the same name as an existing active experiment. + DUPLICATE_EXPERIMENT_NAME = 5; + + // Experiments can only be modified when they are ENABLED. + CANNOT_MODIFY_REMOVED_EXPERIMENT = 6; + + // The start date of an experiment cannot be modified if the existing start + // date has already passed. + START_DATE_ALREADY_PASSED = 7; + + // The end date of an experiment cannot be set in the past. + CANNOT_SET_END_DATE_IN_PAST = 8; + + // The status of an experiment cannot be set to REMOVED. + CANNOT_SET_STATUS_TO_REMOVED = 9; + + // The end date of an expired experiment cannot be modified. + CANNOT_MODIFY_PAST_END_DATE = 10; + + // The status is invalid. + INVALID_STATUS = 11; + + // Experiment arm contains campaigns with invalid advertising channel type. + INVALID_CAMPAIGN_CHANNEL_TYPE = 12; + + // A pair of trials share members and have overlapping date ranges. + OVERLAPPING_MEMBERS_AND_DATE_RANGE = 13; + + // Experiment arm contains invalid traffic split. + INVALID_TRIAL_ARM_TRAFFIC_SPLIT = 14; + + // Experiment contains trial arms with overlapping traffic split. + TRAFFIC_SPLIT_OVERLAPPING = 15; + + // The total traffic split of trial arms is not equal to 100. + SUM_TRIAL_ARM_TRAFFIC_UNEQUALS_TO_TRIAL_TRAFFIC_SPLIT_DENOMINATOR = 16; + + // Traffic split related settings (like traffic share bounds) can't be + // modified after the experiment has started. + CANNOT_MODIFY_TRAFFIC_SPLIT_AFTER_START = 17; + + // The experiment could not be found. + EXPERIMENT_NOT_FOUND = 18; + + // Experiment has not begun. + EXPERIMENT_NOT_YET_STARTED = 19; + + // The experiment cannot have more than one control arm. + CANNOT_HAVE_MULTIPLE_CONTROL_ARMS = 20; + + // The experiment doesn't set in-design campaigns. + IN_DESIGN_CAMPAIGNS_NOT_SET = 21; + + // Clients must use the graduate action to graduate experiments and cannot + // set the status to GRADUATED directly. + CANNOT_SET_STATUS_TO_GRADUATED = 22; + + // Cannot use shared budget on base campaign when scheduling an experiment. + CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_SHARED_BUDGET = 23; + + // Cannot use custom budget on base campaign when scheduling an experiment. + CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_CUSTOM_BUDGET = 24; + + // Invalid status transition. + STATUS_TRANSITION_INVALID = 25; + } + + +} diff --git a/google/ads/googleads/v10/errors/extension_feed_item_error.proto b/google/ads/googleads/v10/errors/extension_feed_item_error.proto new file mode 100644 index 000000000..69031805f --- /dev/null +++ b/google/ads/googleads/v10/errors/extension_feed_item_error.proto @@ -0,0 +1,193 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionFeedItemErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing extension feed item errors. + +// Container for enum describing possible extension feed item error. +message ExtensionFeedItemErrorEnum { + // Enum describing possible extension feed item errors. + enum ExtensionFeedItemError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Value is not within the accepted range. + VALUE_OUT_OF_RANGE = 2; + + // Url list is too long. + URL_LIST_TOO_LONG = 3; + + // Cannot have a geo targeting restriction without having geo targeting. + CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING = 4; + + // Cannot simultaneously set sitelink field with final urls. + CANNOT_SET_WITH_FINAL_URLS = 5; + + // Must set field with final urls. + CANNOT_SET_WITHOUT_FINAL_URLS = 6; + + // Phone number for a call extension is invalid. + INVALID_PHONE_NUMBER = 7; + + // Phone number for a call extension is not supported for the given country + // code. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 8; + + // A carrier specific number in short format is not allowed for call + // extensions. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 9; + + // Premium rate numbers are not allowed for call extensions. + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 10; + + // Phone number type for a call extension is not allowed. + // For example, personal number is not allowed for a call extension in + // most regions. + DISALLOWED_NUMBER_TYPE = 11; + + // Phone number for a call extension does not meet domestic format + // requirements. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 12; + + // Vanity phone numbers (i.e. those including letters) are not allowed for + // call extensions. + VANITY_PHONE_NUMBER_NOT_ALLOWED = 13; + + // Call conversion action provided for a call extension is invalid. + INVALID_CALL_CONVERSION_ACTION = 14; + + // For a call extension, the customer is not on the allow-list for call + // tracking. + CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING = 47; + + // Call tracking is not supported for the given country for a call + // extension. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 16; + + // Customer hasn't consented for call recording, which is required for + // creating/updating call feed items. Please see + // https://support.google.com/google-ads/answer/7412639. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 17; + + // App id provided for an app extension is invalid. + INVALID_APP_ID = 18; + + // Quotation marks present in the review text for a review extension. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 19; + + // Hyphen character present in the review text for a review extension. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 20; + + // A denylisted review source name or url was provided for a review + // extension. + REVIEW_EXTENSION_SOURCE_INELIGIBLE = 21; + + // Review source name should not be found in the review text. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 22; + + // Inconsistent currency codes. + INCONSISTENT_CURRENCY_CODES = 23; + + // Price extension cannot have duplicated headers. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 24; + + // Price item cannot have duplicated header and description. + PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 25; + + // Price extension has too few items. + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 26; + + // Price extension has too many items. + PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 27; + + // The input value is not currently supported. + UNSUPPORTED_VALUE = 28; + + // The input value is not currently supported in the selected language of an + // extension. + UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 29; + + // Unknown or unsupported device preference. + INVALID_DEVICE_PREFERENCE = 30; + + // Invalid feed item schedule end time (i.e., endHour = 24 and endMinute != + // 0). + INVALID_SCHEDULE_END = 31; + + // Date time zone does not match the account's time zone. + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 32; + + // Invalid structured snippet header. + INVALID_SNIPPETS_HEADER = 33; + + // Cannot operate on removed feed item. + CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 34; + + // Phone number not supported when call tracking enabled for country. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 35; + + // Cannot set call_conversion_action while call_conversion_tracking_enabled + // is set to true. + CONFLICTING_CALL_CONVERSION_SETTINGS = 36; + + // The type of the input extension feed item doesn't match the existing + // extension feed item. + EXTENSION_TYPE_MISMATCH = 37; + + // The oneof field extension i.e. subtype of extension feed item is + // required. + EXTENSION_SUBTYPE_REQUIRED = 38; + + // The referenced feed item is not mapped to a supported extension type. + EXTENSION_TYPE_UNSUPPORTED = 39; + + // Cannot operate on a Feed with more than one active FeedMapping. + CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS = 40; + + // Cannot operate on a Feed that has key attributes. + CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES = 41; + + // Input price is not in a valid format. + INVALID_PRICE_FORMAT = 42; + + // The promotion time is invalid. + PROMOTION_INVALID_TIME = 43; + + // This field has too many decimal places specified. + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 44; + + // Concrete sub type of ExtensionFeedItem is required for this operation. + CONCRETE_EXTENSION_TYPE_REQUIRED = 45; + + // Feed item schedule end time must be after start time. + SCHEDULE_END_NOT_AFTER_START = 46; + } + + +} diff --git a/google/ads/googleads/v10/errors/extension_setting_error.proto b/google/ads/googleads/v10/errors/extension_setting_error.proto new file mode 100644 index 000000000..4e76d482f --- /dev/null +++ b/google/ads/googleads/v10/errors/extension_setting_error.proto @@ -0,0 +1,259 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionSettingErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing extension setting validation errors. + +// Container for enum describing validation errors of extension settings. +message ExtensionSettingErrorEnum { + // Enum describing possible extension setting errors. + enum ExtensionSettingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A platform restriction was provided without input extensions or existing + // extensions. + EXTENSIONS_REQUIRED = 2; + + // The provided feed type does not correspond to the provided extensions. + FEED_TYPE_EXTENSION_TYPE_MISMATCH = 3; + + // The provided feed type cannot be used. + INVALID_FEED_TYPE = 4; + + // The provided feed type cannot be used at the customer level. + INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING = 5; + + // Cannot change a feed item field on a CREATE operation. + CANNOT_CHANGE_FEED_ITEM_ON_CREATE = 6; + + // Cannot update an extension that is not already in this setting. + CANNOT_UPDATE_NEWLY_CREATED_EXTENSION = 7; + + // There is no existing AdGroupExtensionSetting for this type. + NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE = 8; + + // There is no existing CampaignExtensionSetting for this type. + NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE = 9; + + // There is no existing CustomerExtensionSetting for this type. + NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE = 10; + + // The AdGroupExtensionSetting already exists. UPDATE should be used to + // modify the existing AdGroupExtensionSetting. + AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS = 11; + + // The CampaignExtensionSetting already exists. UPDATE should be used to + // modify the existing CampaignExtensionSetting. + CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS = 12; + + // The CustomerExtensionSetting already exists. UPDATE should be used to + // modify the existing CustomerExtensionSetting. + CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS = 13; + + // An active ad group feed already exists for this place holder type. + AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 14; + + // An active campaign feed already exists for this place holder type. + CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 15; + + // An active customer feed already exists for this place holder type. + CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 16; + + // Value is not within the accepted range. + VALUE_OUT_OF_RANGE = 17; + + // Cannot simultaneously set specified field with final urls. + CANNOT_SET_FIELD_WITH_FINAL_URLS = 18; + + // Must set field with final urls. + FINAL_URLS_NOT_SET = 19; + + // Phone number for a call extension is invalid. + INVALID_PHONE_NUMBER = 20; + + // Phone number for a call extension is not supported for the given country + // code. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 21; + + // A carrier specific number in short format is not allowed for call + // extensions. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 22; + + // Premium rate numbers are not allowed for call extensions. + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 23; + + // Phone number type for a call extension is not allowed. + DISALLOWED_NUMBER_TYPE = 24; + + // Phone number for a call extension does not meet domestic format + // requirements. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 25; + + // Vanity phone numbers (i.e. those including letters) are not allowed for + // call extensions. + VANITY_PHONE_NUMBER_NOT_ALLOWED = 26; + + // Country code provided for a call extension is invalid. + INVALID_COUNTRY_CODE = 27; + + // Call conversion type id provided for a call extension is invalid. + INVALID_CALL_CONVERSION_TYPE_ID = 28; + + // For a call extension, the customer is not on the allow-list for call + // tracking. + CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 69; + + // Call tracking is not supported for the given country for a call + // extension. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 30; + + // App id provided for an app extension is invalid. + INVALID_APP_ID = 31; + + // Quotation marks present in the review text for a review extension. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 32; + + // Hyphen character present in the review text for a review extension. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 33; + + // A blocked review source name or url was provided for a review + // extension. + REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE = 34; + + // Review source name should not be found in the review text. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 35; + + // Field must be set. + MISSING_FIELD = 36; + + // Inconsistent currency codes. + INCONSISTENT_CURRENCY_CODES = 37; + + // Price extension cannot have duplicated headers. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 38; + + // Price item cannot have duplicated header and description. + PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 39; + + // Price extension has too few items + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 40; + + // Price extension has too many items + PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 41; + + // The input value is not currently supported. + UNSUPPORTED_VALUE = 42; + + // Unknown or unsupported device preference. + INVALID_DEVICE_PREFERENCE = 43; + + // Invalid feed item schedule end time (i.e., endHour = 24 and + // endMinute != 0). + INVALID_SCHEDULE_END = 45; + + // Date time zone does not match the account's time zone. + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 47; + + // Overlapping feed item schedule times (e.g., 7-10AM and 8-11AM) are not + // allowed. + OVERLAPPING_SCHEDULES_NOT_ALLOWED = 48; + + // Feed item schedule end time must be after start time. + SCHEDULE_END_NOT_AFTER_START = 49; + + // There are too many feed item schedules per day. + TOO_MANY_SCHEDULES_PER_DAY = 50; + + // Cannot edit the same extension feed item more than once in the same + // request. + DUPLICATE_EXTENSION_FEED_ITEM_EDIT = 51; + + // Invalid structured snippet header. + INVALID_SNIPPETS_HEADER = 52; + + // Phone number with call tracking enabled is not supported for the + // specified country. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 53; + + // The targeted adgroup must belong to the targeted campaign. + CAMPAIGN_TARGETING_MISMATCH = 54; + + // The feed used by the ExtensionSetting is removed and cannot be operated + // on. Remove the ExtensionSetting to allow a new one to be created using + // an active feed. + CANNOT_OPERATE_ON_REMOVED_FEED = 55; + + // The ExtensionFeedItem type is required for this operation. + EXTENSION_TYPE_REQUIRED = 56; + + // The matching function that links the extension feed to the customer, + // campaign, or ad group is not compatible with the ExtensionSetting + // services. + INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION = 57; + + // Start date must be before end date. + START_DATE_AFTER_END_DATE = 58; + + // Input price is not in a valid format. + INVALID_PRICE_FORMAT = 59; + + // The promotion time is invalid. + PROMOTION_INVALID_TIME = 60; + + // Cannot set both percent discount and money discount fields. + PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT = 61; + + // Cannot set both promotion code and orders over amount fields. + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 62; + + // This field has too many decimal places specified. + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 63; + + // The language code is not valid. + INVALID_LANGUAGE_CODE = 64; + + // The language is not supported. + UNSUPPORTED_LANGUAGE = 65; + + // Customer hasn't consented for call recording, which is required for + // adding/updating call extensions. Please see + // https://support.google.com/google-ads/answer/7412639. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 66; + + // The UPDATE operation does not specify any fields other than the resource + // name in the update mask. + EXTENSION_SETTING_UPDATE_IS_A_NOOP = 67; + + // The extension contains text which has been prohibited on policy grounds. + DISALLOWED_TEXT = 68; + } + + +} diff --git a/google/ads/googleads/v10/errors/feed_attribute_reference_error.proto b/google/ads/googleads/v10/errors/feed_attribute_reference_error.proto new file mode 100644 index 000000000..7af8d9dd1 --- /dev/null +++ b/google/ads/googleads/v10/errors/feed_attribute_reference_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedAttributeReferenceErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing feed attribute reference errors. + +// Container for enum describing possible feed attribute reference errors. +message FeedAttributeReferenceErrorEnum { + // Enum describing possible feed attribute reference errors. + enum FeedAttributeReferenceError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A feed referenced by ID has been removed. + CANNOT_REFERENCE_REMOVED_FEED = 2; + + // There is no enabled feed with the given name. + INVALID_FEED_NAME = 3; + + // There is no feed attribute in an enabled feed with the given name. + INVALID_FEED_ATTRIBUTE_NAME = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/feed_error.proto b/google/ads/googleads/v10/errors/feed_error.proto new file mode 100644 index 000000000..bd9148546 --- /dev/null +++ b/google/ads/googleads/v10/errors/feed_error.proto @@ -0,0 +1,112 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing feed errors. + +// Container for enum describing possible feed errors. +message FeedErrorEnum { + // Enum describing possible feed errors. + enum FeedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The names of the FeedAttributes must be unique. + ATTRIBUTE_NAMES_NOT_UNIQUE = 2; + + // The attribute list must be an exact copy of the existing list if the + // attribute ID's are present. + ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES = 3; + + // Cannot specify USER origin for a system generated feed. + CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED = 4; + + // Cannot specify GOOGLE origin for a non-system generated feed. + CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED = 5; + + // Cannot specify feed attributes for system feed. + CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED = 6; + + // Cannot update FeedAttributes on feed with origin GOOGLE. + CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE = 7; + + // The given ID refers to a removed Feed. Removed Feeds are immutable. + FEED_REMOVED = 8; + + // The origin of the feed is not valid for the client. + INVALID_ORIGIN_VALUE = 9; + + // A user can only create and modify feeds with USER origin. + FEED_ORIGIN_IS_NOT_USER = 10; + + // Invalid auth token for the given email. + INVALID_AUTH_TOKEN_FOR_EMAIL = 11; + + // Invalid email specified. + INVALID_EMAIL = 12; + + // Feed name matches that of another active Feed. + DUPLICATE_FEED_NAME = 13; + + // Name of feed is not allowed. + INVALID_FEED_NAME = 14; + + // Missing OAuthInfo. + MISSING_OAUTH_INFO = 15; + + // New FeedAttributes must not affect the unique key. + NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY = 16; + + // Too many FeedAttributes for a Feed. + TOO_MANY_ATTRIBUTES = 17; + + // The business account is not valid. + INVALID_BUSINESS_ACCOUNT = 18; + + // Business account cannot access Business Profile. + BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT = 19; + + // Invalid chain ID provided for affiliate location feed. + INVALID_AFFILIATE_CHAIN_ID = 20; + + // There is already a feed with the given system feed generation data. + DUPLICATE_SYSTEM_FEED = 21; + + // An error occurred accessing Business Profile. + GMB_ACCESS_ERROR = 22; + + // A customer cannot have both LOCATION and AFFILIATE_LOCATION feeds. + CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS = 23; + + // Feed-based extension is read-only for this extension type. + LEGACY_EXTENSION_TYPE_READ_ONLY = 24; + } + + +} diff --git a/google/ads/googleads/v10/errors/feed_item_error.proto b/google/ads/googleads/v10/errors/feed_item_error.proto new file mode 100644 index 000000000..066abbb8d --- /dev/null +++ b/google/ads/googleads/v10/errors/feed_item_error.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing feed item errors. + +// Container for enum describing possible feed item errors. +message FeedItemErrorEnum { + // Enum describing possible feed item errors. + enum FeedItemError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot convert the feed attribute value from string to its real type. + CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING = 2; + + // Cannot operate on removed feed item. + CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 3; + + // Date time zone does not match the account's time zone. + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 4; + + // Feed item with the key attributes could not be found. + KEY_ATTRIBUTES_NOT_FOUND = 5; + + // Url feed attribute value is not valid. + INVALID_URL = 6; + + // Some key attributes are missing. + MISSING_KEY_ATTRIBUTES = 7; + + // Feed item has same key attributes as another feed item. + KEY_ATTRIBUTES_NOT_UNIQUE = 8; + + // Cannot modify key attributes on an existing feed item. + CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE = 9; + + // The feed attribute value is too large. + SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE = 10; + } + + +} diff --git a/google/ads/googleads/v10/errors/feed_item_set_error.proto b/google/ads/googleads/v10/errors/feed_item_set_error.proto new file mode 100644 index 000000000..be2dabff9 --- /dev/null +++ b/google/ads/googleads/v10/errors/feed_item_set_error.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing feed item set errors. + +// Container for enum describing possible feed item set errors. +message FeedItemSetErrorEnum { + // Enum describing possible feed item set errors. + enum FeedItemSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The given ID refers to a removed FeedItemSet. + FEED_ITEM_SET_REMOVED = 2; + + // The dynamic filter of a feed item set cannot be cleared on UPDATE if it + // exists. A set is either static or dynamic once added, and that cannot + // change. + CANNOT_CLEAR_DYNAMIC_FILTER = 3; + + // The dynamic filter of a feed item set cannot be created on UPDATE if it + // does not exist. A set is either static or dynamic once added, and that + // cannot change. + CANNOT_CREATE_DYNAMIC_FILTER = 4; + + // FeedItemSets can only be made for location or affiliate location feeds. + INVALID_FEED_TYPE = 5; + + // FeedItemSets duplicate name. Name should be unique within an account. + DUPLICATE_NAME = 6; + + // The feed type of the parent Feed is not compatible with the type of + // dynamic filter being set. For example, you can only set + // dynamic_location_set_filter for LOCATION feed item sets. + WRONG_DYNAMIC_FILTER_FOR_FEED_TYPE = 7; + + // Chain ID specified for AffiliateLocationFeedData is invalid. + DYNAMIC_FILTER_INVALID_CHAIN_IDS = 8; + } + + +} diff --git a/google/ads/googleads/v10/errors/feed_item_set_link_error.proto b/google/ads/googleads/v10/errors/feed_item_set_link_error.proto new file mode 100644 index 000000000..29bd732b0 --- /dev/null +++ b/google/ads/googleads/v10/errors/feed_item_set_link_error.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetLinkErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing feed item set link errors. + +// Container for enum describing possible feed item set link errors. +message FeedItemSetLinkErrorEnum { + // Enum describing possible feed item set link errors. + enum FeedItemSetLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The feed IDs of the FeedItemSet and FeedItem do not match. Only FeedItems + // in a given Feed can be linked to a FeedItemSet in that Feed. + FEED_ID_MISMATCH = 2; + + // Cannot add or remove links to a dynamic set. + NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/feed_item_target_error.proto b/google/ads/googleads/v10/errors/feed_item_target_error.proto new file mode 100644 index 000000000..79dd48262 --- /dev/null +++ b/google/ads/googleads/v10/errors/feed_item_target_error.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing feed item target errors. + +// Container for enum describing possible feed item target errors. +message FeedItemTargetErrorEnum { + // Enum describing possible feed item target errors. + enum FeedItemTargetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // On CREATE, the FeedItemTarget must have a populated field in the oneof + // target. + MUST_SET_TARGET_ONEOF_ON_CREATE = 2; + + // The specified feed item target already exists, so it cannot be added. + FEED_ITEM_TARGET_ALREADY_EXISTS = 3; + + // The schedules for a given feed item cannot overlap. + FEED_ITEM_SCHEDULES_CANNOT_OVERLAP = 4; + + // Too many targets of a given type were added for a single feed item. + TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE = 5; + + // Too many AdSchedules are enabled for the feed item for the given day. + TOO_MANY_SCHEDULES_PER_DAY = 6; + + // A feed item may either have an enabled campaign target or an enabled ad + // group target. + CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS = 7; + + // Duplicate ad schedules aren't allowed. + DUPLICATE_AD_SCHEDULE = 8; + + // Duplicate keywords aren't allowed. + DUPLICATE_KEYWORD = 9; + } + + +} diff --git a/google/ads/googleads/v10/errors/feed_item_validation_error.proto b/google/ads/googleads/v10/errors/feed_item_validation_error.proto new file mode 100644 index 000000000..43fc24300 --- /dev/null +++ b/google/ads/googleads/v10/errors/feed_item_validation_error.proto @@ -0,0 +1,375 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemValidationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing feed item validation errors. + +// Container for enum describing possible validation errors of a feed item. +message FeedItemValidationErrorEnum { + // The possible validation errors of a feed item. + enum FeedItemValidationError { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // String is too short. + STRING_TOO_SHORT = 2; + + // String is too long. + STRING_TOO_LONG = 3; + + // Value is not provided. + VALUE_NOT_SPECIFIED = 4; + + // Phone number format is invalid for region. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 5; + + // String does not represent a phone number. + INVALID_PHONE_NUMBER = 6; + + // Phone number format is not compatible with country code. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 7; + + // Premium rate number is not allowed. + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 8; + + // Phone number type is not allowed. + DISALLOWED_NUMBER_TYPE = 9; + + // Specified value is outside of the valid range. + VALUE_OUT_OF_RANGE = 10; + + // Call tracking is not supported in the selected country. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 11; + + // Customer is not on the allow-list for call tracking. + CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 99; + + // Country code is invalid. + INVALID_COUNTRY_CODE = 13; + + // The specified mobile app id is invalid. + INVALID_APP_ID = 14; + + // Some required field attributes are missing. + MISSING_ATTRIBUTES_FOR_FIELDS = 15; + + // Invalid email button type for email extension. + INVALID_TYPE_ID = 16; + + // Email address is invalid. + INVALID_EMAIL_ADDRESS = 17; + + // The HTTPS URL in email extension is invalid. + INVALID_HTTPS_URL = 18; + + // Delivery address is missing from email extension. + MISSING_DELIVERY_ADDRESS = 19; + + // FeedItem scheduling start date comes after end date. + START_DATE_AFTER_END_DATE = 20; + + // FeedItem scheduling start time is missing. + MISSING_FEED_ITEM_START_TIME = 21; + + // FeedItem scheduling end time is missing. + MISSING_FEED_ITEM_END_TIME = 22; + + // Cannot compute system attributes on a FeedItem that has no FeedItemId. + MISSING_FEED_ITEM_ID = 23; + + // Call extension vanity phone numbers are not supported. + VANITY_PHONE_NUMBER_NOT_ALLOWED = 24; + + // Invalid review text. + INVALID_REVIEW_EXTENSION_SNIPPET = 25; + + // Invalid format for numeric value in ad parameter. + INVALID_NUMBER_FORMAT = 26; + + // Invalid format for date value in ad parameter. + INVALID_DATE_FORMAT = 27; + + // Invalid format for price value in ad parameter. + INVALID_PRICE_FORMAT = 28; + + // Unrecognized type given for value in ad parameter. + UNKNOWN_PLACEHOLDER_FIELD = 29; + + // Enhanced sitelinks must have both description lines specified. + MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE = 30; + + // Review source is ineligible. + REVIEW_EXTENSION_SOURCE_INELIGIBLE = 31; + + // Review text cannot contain hyphens or dashes. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 32; + + // Review text cannot contain double quote characters. + DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 33; + + // Review text cannot contain quote characters. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 34; + + // Parameters are encoded in the wrong format. + INVALID_FORM_ENCODED_PARAMS = 35; + + // URL parameter name must contain only letters, numbers, underscores, and + // dashes. + INVALID_URL_PARAMETER_NAME = 36; + + // Cannot find address location. + NO_GEOCODING_RESULT = 37; + + // Review extension text has source name. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 38; + + // Some phone numbers can be shorter than usual. Some of these short numbers + // are carrier-specific, and we disallow those in ad extensions because they + // will not be available to all users. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 39; + + // Triggered when a request references a placeholder field id that does not + // exist. + INVALID_PLACEHOLDER_FIELD_ID = 40; + + // URL contains invalid ValueTrack tags or format. + INVALID_URL_TAG = 41; + + // Provided list exceeds acceptable size. + LIST_TOO_LONG = 42; + + // Certain combinations of attributes aren't allowed to be specified in the + // same feed item. + INVALID_ATTRIBUTES_COMBINATION = 43; + + // An attribute has the same value repeatedly. + DUPLICATE_VALUES = 44; + + // Advertisers can link a conversion action with a phone number to indicate + // that sufficiently long calls forwarded to that phone number should be + // counted as conversions of the specified type. This is an error message + // indicating that the conversion action specified is invalid (e.g., the + // conversion action does not exist within the appropriate Google Ads + // account, or it is a type of conversion not appropriate to phone call + // conversions). + INVALID_CALL_CONVERSION_ACTION_ID = 45; + + // Tracking template requires final url to be set. + CANNOT_SET_WITHOUT_FINAL_URLS = 46; + + // An app id was provided that doesn't exist in the given app store. + APP_ID_DOESNT_EXIST_IN_APP_STORE = 47; + + // Invalid U2 final url. + INVALID_FINAL_URL = 48; + + // Invalid U2 tracking url. + INVALID_TRACKING_URL = 49; + + // Final URL should start from App download URL. + INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL = 50; + + // List provided is too short. + LIST_TOO_SHORT = 51; + + // User Action field has invalid value. + INVALID_USER_ACTION = 52; + + // Type field has invalid value. + INVALID_TYPE_NAME = 53; + + // Change status for event is invalid. + INVALID_EVENT_CHANGE_STATUS = 54; + + // The header of a structured snippets extension is not one of the valid + // headers. + INVALID_SNIPPETS_HEADER = 55; + + // Android app link is not formatted correctly + INVALID_ANDROID_APP_LINK = 56; + + // Phone number incompatible with call tracking for country. + NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 57; + + // The input is identical to a reserved keyword + RESERVED_KEYWORD_OTHER = 58; + + // Each option label in the message extension must be unique. + DUPLICATE_OPTION_LABELS = 59; + + // Each option prefill in the message extension must be unique. + DUPLICATE_OPTION_PREFILLS = 60; + + // In message extensions, the number of optional labels and optional + // prefills must be the same. + UNEQUAL_LIST_LENGTHS = 61; + + // All currency codes in an ad extension must be the same. + INCONSISTENT_CURRENCY_CODES = 62; + + // Headers in price extension are not unique. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 63; + + // Header and description in an item are the same. + ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 64; + + // Price extension has too few items. + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 65; + + // The given value is not supported. + UNSUPPORTED_VALUE = 66; + + // Invalid final mobile url. + INVALID_FINAL_MOBILE_URL = 67; + + // The given string value of Label contains invalid characters + INVALID_KEYWORDLESS_AD_RULE_LABEL = 68; + + // The given URL contains value track parameters. + VALUE_TRACK_PARAMETER_NOT_SUPPORTED = 69; + + // The given value is not supported in the selected language of an + // extension. + UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 70; + + // The iOS app link is not formatted correctly. + INVALID_IOS_APP_LINK = 71; + + // iOS app link or iOS app store id is missing. + MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID = 72; + + // Promotion time is invalid. + PROMOTION_INVALID_TIME = 73; + + // Both the percent off and money amount off fields are set. + PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 74; + + // Both the promotion code and orders over amount fields are set. + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 75; + + // Too many decimal places are specified. + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 76; + + // Ad Customizers are present and not allowed. + AD_CUSTOMIZERS_NOT_ALLOWED = 77; + + // Language code is not valid. + INVALID_LANGUAGE_CODE = 78; + + // Language is not supported. + UNSUPPORTED_LANGUAGE = 79; + + // IF Function is present and not allowed. + IF_FUNCTION_NOT_ALLOWED = 80; + + // Final url suffix is not valid. + INVALID_FINAL_URL_SUFFIX = 81; + + // Final url suffix contains an invalid tag. + INVALID_TAG_IN_FINAL_URL_SUFFIX = 82; + + // Final url suffix is formatted incorrectly. + INVALID_FINAL_URL_SUFFIX_FORMAT = 83; + + // Consent for call recording, which is required for the use of call + // extensions, was not provided by the advertiser. Please see + // https://support.google.com/google-ads/answer/7412639. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 84; + + // Multiple message delivery options are set. + ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED = 85; + + // No message delivery option is set. + NO_DELIVERY_OPTION_IS_SET = 86; + + // String value of conversion reporting state field is not valid. + INVALID_CONVERSION_REPORTING_STATE = 87; + + // Image size is not right. + IMAGE_SIZE_WRONG = 88; + + // Email delivery is not supported in the country specified in the country + // code field. + EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY = 89; + + // Auto reply is not supported in the country specified in the country code + // field. + AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY = 90; + + // Invalid value specified for latitude. + INVALID_LATITUDE_VALUE = 91; + + // Invalid value specified for longitude. + INVALID_LONGITUDE_VALUE = 92; + + // Too many label fields provided. + TOO_MANY_LABELS = 93; + + // Invalid image url. + INVALID_IMAGE_URL = 94; + + // Latitude value is missing. + MISSING_LATITUDE_VALUE = 95; + + // Longitude value is missing. + MISSING_LONGITUDE_VALUE = 96; + + // Unable to find address. + ADDRESS_NOT_FOUND = 97; + + // Cannot target provided address. + ADDRESS_NOT_TARGETABLE = 98; + + // The specified asset ID does not exist. + INVALID_ASSET_ID = 100; + + // The asset type cannot be set for the field. + INCOMPATIBLE_ASSET_TYPE = 101; + + // The image has unexpected size. + IMAGE_ERROR_UNEXPECTED_SIZE = 102; + + // The image aspect ratio is not allowed. + IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED = 103; + + // The image file is too large. + IMAGE_ERROR_FILE_TOO_LARGE = 104; + + // The image format is unsupported. + IMAGE_ERROR_FORMAT_NOT_ALLOWED = 105; + + // Image violates constraints without more details. + IMAGE_ERROR_CONSTRAINTS_VIOLATED = 106; + + // An error occurred when validating image. + IMAGE_ERROR_SERVER_ERROR = 107; + } + + +} diff --git a/google/ads/googleads/v10/errors/feed_mapping_error.proto b/google/ads/googleads/v10/errors/feed_mapping_error.proto new file mode 100644 index 000000000..f3e8d38f6 --- /dev/null +++ b/google/ads/googleads/v10/errors/feed_mapping_error.proto @@ -0,0 +1,98 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing feed item errors. + +// Container for enum describing possible feed item errors. +message FeedMappingErrorEnum { + // Enum describing possible feed item errors. + enum FeedMappingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The given placeholder field does not exist. + INVALID_PLACEHOLDER_FIELD = 2; + + // The given criterion field does not exist. + INVALID_CRITERION_FIELD = 3; + + // The given placeholder type does not exist. + INVALID_PLACEHOLDER_TYPE = 4; + + // The given criterion type does not exist. + INVALID_CRITERION_TYPE = 5; + + // A feed mapping must contain at least one attribute field mapping. + NO_ATTRIBUTE_FIELD_MAPPINGS = 7; + + // The type of the feed attribute referenced in the attribute field mapping + // must match the type of the placeholder field. + FEED_ATTRIBUTE_TYPE_MISMATCH = 8; + + // A feed mapping for a system generated feed cannot be operated on. + CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED = 9; + + // Only one feed mapping for a placeholder type is allowed per feed or + // customer (depending on the placeholder type). + MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE = 10; + + // Only one feed mapping for a criterion type is allowed per customer. + MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE = 11; + + // Only one feed attribute mapping for a placeholder field is allowed + // (depending on the placeholder type). + MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD = 12; + + // Only one feed attribute mapping for a criterion field is allowed + // (depending on the criterion type). + MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD = 13; + + // This feed mapping may not contain any explicit attribute field mappings. + UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS = 14; + + // Location placeholder feed mappings can only be created for Places feeds. + LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS = 15; + + // Mappings for typed feeds cannot be modified. + CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED = 16; + + // The given placeholder type can only be mapped to system generated feeds. + INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED = 17; + + // The given placeholder type cannot be mapped to a system generated feed + // with the given type. + INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE = 18; + + // The "field" oneof was not set in an AttributeFieldMapping. + ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD = 19; + } + + +} diff --git a/google/ads/googleads/v10/errors/field_error.proto b/google/ads/googleads/v10/errors/field_error.proto new file mode 100644 index 000000000..93a9d8532 --- /dev/null +++ b/google/ads/googleads/v10/errors/field_error.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FieldErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing field errors. + +// Container for enum describing possible field errors. +message FieldErrorEnum { + // Enum describing possible field errors. + enum FieldError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The required field was not present. + REQUIRED = 2; + + // The field attempted to be mutated is immutable. + IMMUTABLE_FIELD = 3; + + // The field's value is invalid. + INVALID_VALUE = 4; + + // The field cannot be set. + VALUE_MUST_BE_UNSET = 5; + + // The required repeated field was empty. + REQUIRED_NONEMPTY_LIST = 6; + + // The field cannot be cleared. + FIELD_CANNOT_BE_CLEARED = 7; + + // The field's value is on a deny-list for this field. + BLOCKED_VALUE = 9; + } + + +} diff --git a/google/ads/googleads/v10/errors/field_mask_error.proto b/google/ads/googleads/v10/errors/field_mask_error.proto new file mode 100644 index 000000000..616468e85 --- /dev/null +++ b/google/ads/googleads/v10/errors/field_mask_error.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FieldMaskErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing field mask errors. + +// Container for enum describing possible field mask errors. +message FieldMaskErrorEnum { + // Enum describing possible field mask errors. + enum FieldMaskError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The field mask must be provided for update operations. + FIELD_MASK_MISSING = 5; + + // The field mask must be empty for create and remove operations. + FIELD_MASK_NOT_ALLOWED = 4; + + // The field mask contained an invalid field. + FIELD_NOT_FOUND = 2; + + // The field mask updated a field with subfields. Fields with subfields may + // be cleared, but not updated. To fix this, the field mask should select + // all the subfields of the invalid field. + FIELD_HAS_SUBFIELDS = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/function_error.proto b/google/ads/googleads/v10/errors/function_error.proto new file mode 100644 index 000000000..f0b9ab882 --- /dev/null +++ b/google/ads/googleads/v10/errors/function_error.proto @@ -0,0 +1,91 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FunctionErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing function errors. + +// Container for enum describing possible function errors. +message FunctionErrorEnum { + // Enum describing possible function errors. + enum FunctionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The format of the function is not recognized as a supported function + // format. + INVALID_FUNCTION_FORMAT = 2; + + // Operand data types do not match. + DATA_TYPE_MISMATCH = 3; + + // The operands cannot be used together in a conjunction. + INVALID_CONJUNCTION_OPERANDS = 4; + + // Invalid numer of Operands. + INVALID_NUMBER_OF_OPERANDS = 5; + + // Operand Type not supported. + INVALID_OPERAND_TYPE = 6; + + // Operator not supported. + INVALID_OPERATOR = 7; + + // Request context type not supported. + INVALID_REQUEST_CONTEXT_TYPE = 8; + + // The matching function is not allowed for call placeholders + INVALID_FUNCTION_FOR_CALL_PLACEHOLDER = 9; + + // The matching function is not allowed for the specified placeholder + INVALID_FUNCTION_FOR_PLACEHOLDER = 10; + + // Invalid operand. + INVALID_OPERAND = 11; + + // Missing value for the constant operand. + MISSING_CONSTANT_OPERAND_VALUE = 12; + + // The value of the constant operand is invalid. + INVALID_CONSTANT_OPERAND_VALUE = 13; + + // Invalid function nesting. + INVALID_NESTING = 14; + + // The Feed ID was different from another Feed ID in the same function. + MULTIPLE_FEED_IDS_NOT_SUPPORTED = 15; + + // The matching function is invalid for use with a feed with a fixed schema. + INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA = 16; + + // Invalid attribute name. + INVALID_ATTRIBUTE_NAME = 17; + } + + +} diff --git a/google/ads/googleads/v10/errors/function_parsing_error.proto b/google/ads/googleads/v10/errors/function_parsing_error.proto new file mode 100644 index 000000000..905b4566c --- /dev/null +++ b/google/ads/googleads/v10/errors/function_parsing_error.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FunctionParsingErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing function parsing errors. + +// Container for enum describing possible function parsing errors. +message FunctionParsingErrorEnum { + // Enum describing possible function parsing errors. + enum FunctionParsingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Unexpected end of function string. + NO_MORE_INPUT = 2; + + // Could not find an expected character. + EXPECTED_CHARACTER = 3; + + // Unexpected separator character. + UNEXPECTED_SEPARATOR = 4; + + // Unmatched left bracket or parenthesis. + UNMATCHED_LEFT_BRACKET = 5; + + // Unmatched right bracket or parenthesis. + UNMATCHED_RIGHT_BRACKET = 6; + + // Functions are nested too deeply. + TOO_MANY_NESTED_FUNCTIONS = 7; + + // Missing right-hand-side operand. + MISSING_RIGHT_HAND_OPERAND = 8; + + // Invalid operator/function name. + INVALID_OPERATOR_NAME = 9; + + // Feed attribute operand's argument is not an integer. + FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER = 10; + + // Missing function operands. + NO_OPERANDS = 11; + + // Function had too many operands. + TOO_MANY_OPERANDS = 12; + } + + +} diff --git a/google/ads/googleads/v10/errors/geo_target_constant_suggestion_error.proto b/google/ads/googleads/v10/errors/geo_target_constant_suggestion_error.proto new file mode 100644 index 000000000..034b2f8fb --- /dev/null +++ b/google/ads/googleads/v10/errors/geo_target_constant_suggestion_error.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetConstantSuggestionErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Container for enum describing possible geo target constant suggestion errors. +message GeoTargetConstantSuggestionErrorEnum { + // Enum describing possible geo target constant suggestion errors. + enum GeoTargetConstantSuggestionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A location name cannot be greater than 300 characters. + LOCATION_NAME_SIZE_LIMIT = 2; + + // At most 25 location names can be specified in a SuggestGeoTargetConstants + // method. + LOCATION_NAME_LIMIT = 3; + + // The country code is invalid. + INVALID_COUNTRY_CODE = 4; + + // Geo target constant resource names or location names must be provided in + // the request. + REQUEST_PARAMETERS_UNSET = 5; + } + + +} diff --git a/google/ads/googleads/v10/errors/header_error.proto b/google/ads/googleads/v10/errors/header_error.proto new file mode 100644 index 000000000..0e8d09af2 --- /dev/null +++ b/google/ads/googleads/v10/errors/header_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "HeaderErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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 login customer ID could not be validated. + INVALID_LOGIN_CUSTOMER_ID = 3; + + // The linked customer ID could not be validated. + INVALID_LINKED_CUSTOMER_ID = 7; + } + + +} diff --git a/google/ads/googleads/v10/errors/id_error.proto b/google/ads/googleads/v10/errors/id_error.proto new file mode 100644 index 000000000..ebffe2680 --- /dev/null +++ b/google/ads/googleads/v10/errors/id_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "IdErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing id errors. + +// Container for enum describing possible id errors. +message IdErrorEnum { + // Enum describing possible id errors. + enum IdError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Id not found + NOT_FOUND = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/image_error.proto b/google/ads/googleads/v10/errors/image_error.proto new file mode 100644 index 000000000..298d37332 --- /dev/null +++ b/google/ads/googleads/v10/errors/image_error.proto @@ -0,0 +1,162 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ImageErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing image errors. + +// Container for enum describing possible image errors. +message ImageErrorEnum { + // Enum describing possible image errors. + enum ImageError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The image is not valid. + INVALID_IMAGE = 2; + + // The image could not be stored. + STORAGE_ERROR = 3; + + // There was a problem with the request. + BAD_REQUEST = 4; + + // The image is not of legal dimensions. + UNEXPECTED_SIZE = 5; + + // Animated image are not permitted. + ANIMATED_NOT_ALLOWED = 6; + + // Animation is too long. + ANIMATION_TOO_LONG = 7; + + // There was an error on the server. + SERVER_ERROR = 8; + + // Image cannot be in CMYK color format. + CMYK_JPEG_NOT_ALLOWED = 9; + + // Flash images are not permitted. + FLASH_NOT_ALLOWED = 10; + + // Flash images must support clickTag. + FLASH_WITHOUT_CLICKTAG = 11; + + // A flash error has occurred after fixing the click tag. + FLASH_ERROR_AFTER_FIXING_CLICK_TAG = 12; + + // Unacceptable visual effects. + ANIMATED_VISUAL_EFFECT = 13; + + // There was a problem with the flash image. + FLASH_ERROR = 14; + + // Incorrect image layout. + LAYOUT_PROBLEM = 15; + + // There was a problem reading the image file. + PROBLEM_READING_IMAGE_FILE = 16; + + // There was an error storing the image. + ERROR_STORING_IMAGE = 17; + + // The aspect ratio of the image is not allowed. + ASPECT_RATIO_NOT_ALLOWED = 18; + + // Flash cannot have network objects. + FLASH_HAS_NETWORK_OBJECTS = 19; + + // Flash cannot have network methods. + FLASH_HAS_NETWORK_METHODS = 20; + + // Flash cannot have a Url. + FLASH_HAS_URL = 21; + + // Flash cannot use mouse tracking. + FLASH_HAS_MOUSE_TRACKING = 22; + + // Flash cannot have a random number. + FLASH_HAS_RANDOM_NUM = 23; + + // Ad click target cannot be '_self'. + FLASH_SELF_TARGETS = 24; + + // GetUrl method should only use '_blank'. + FLASH_BAD_GETURL_TARGET = 25; + + // Flash version is not supported. + FLASH_VERSION_NOT_SUPPORTED = 26; + + // Flash movies need to have hard coded click URL or clickTAG + FLASH_WITHOUT_HARD_CODED_CLICK_URL = 27; + + // Uploaded flash file is corrupted. + INVALID_FLASH_FILE = 28; + + // Uploaded flash file can be parsed, but the click tag can not be fixed + // properly. + FAILED_TO_FIX_CLICK_TAG_IN_FLASH = 29; + + // Flash movie accesses network resources + FLASH_ACCESSES_NETWORK_RESOURCES = 30; + + // Flash movie attempts to call external javascript code + FLASH_EXTERNAL_JS_CALL = 31; + + // Flash movie attempts to call flash system commands + FLASH_EXTERNAL_FS_CALL = 32; + + // Image file is too large. + FILE_TOO_LARGE = 33; + + // Image data is too large. + IMAGE_DATA_TOO_LARGE = 34; + + // Error while processing the image. + IMAGE_PROCESSING_ERROR = 35; + + // Image is too small. + IMAGE_TOO_SMALL = 36; + + // Input was invalid. + INVALID_INPUT = 37; + + // There was a problem reading the image file. + PROBLEM_READING_FILE = 38; + + // Image constraints are violated, but details like ASPECT_RATIO_NOT_ALLOWED + // can't be provided. This happens when asset spec contains more than one + // constraint and different criteria of different constraints are violated. + IMAGE_CONSTRAINTS_VIOLATED = 39; + + // Image format is not allowed. + FORMAT_NOT_ALLOWED = 40; + } + + +} diff --git a/google/ads/googleads/v10/errors/internal_error.proto b/google/ads/googleads/v10/errors/internal_error.proto new file mode 100644 index 000000000..c44c1f941 --- /dev/null +++ b/google/ads/googleads/v10/errors/internal_error.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "InternalErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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; + + // Google Ads 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; + + // Google Ads 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/google/ads/googleads/v10/errors/invoice_error.proto b/google/ads/googleads/v10/errors/invoice_error.proto new file mode 100644 index 000000000..cf52d7b63 --- /dev/null +++ b/google/ads/googleads/v10/errors/invoice_error.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "InvoiceErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing invoice errors. + +// Container for enum describing possible invoice errors. +message InvoiceErrorEnum { + // Enum describing possible invoice errors. + enum InvoiceError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot request invoices issued before 2019-01-01. + YEAR_MONTH_TOO_OLD = 2; + + // Cannot request invoices for customer who doesn't receive invoices. + NOT_INVOICED_CUSTOMER = 3; + + // Cannot request invoices for a non approved billing setup. + BILLING_SETUP_NOT_APPROVED = 4; + + // Cannot request invoices for a billing setup that is not on monthly + // invoicing. + BILLING_SETUP_NOT_ON_MONTHLY_INVOICING = 5; + + // Cannot request invoices for a non serving customer. + NON_SERVING_CUSTOMER = 6; + } + + +} diff --git a/google/ads/googleads/v10/errors/keyword_plan_ad_group_error.proto b/google/ads/googleads/v10/errors/keyword_plan_ad_group_error.proto new file mode 100644 index 000000000..770f544db --- /dev/null +++ b/google/ads/googleads/v10/errors/keyword_plan_ad_group_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing errors from applying a keyword plan ad group. + +// Container for enum describing possible errors from applying a keyword plan +// ad group. +message KeywordPlanAdGroupErrorEnum { + // Enum describing possible errors from applying a keyword plan ad group. + enum KeywordPlanAdGroupError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The keyword plan ad group name is missing, empty, longer than allowed + // limit or contains invalid chars. + INVALID_NAME = 2; + + // The keyword plan ad group name is duplicate to an existing keyword plan + // AdGroup name or other keyword plan AdGroup name in the request. + DUPLICATE_NAME = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/keyword_plan_ad_group_keyword_error.proto b/google/ads/googleads/v10/errors/keyword_plan_ad_group_keyword_error.proto new file mode 100644 index 000000000..ed8bfabc0 --- /dev/null +++ b/google/ads/googleads/v10/errors/keyword_plan_ad_group_keyword_error.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupKeywordErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing errors from applying a keyword plan ad group keyword or +// keyword plan campaign keyword. + +// Container for enum describing possible errors from applying an ad group +// keyword or a campaign keyword from a keyword plan. +message KeywordPlanAdGroupKeywordErrorEnum { + // Enum describing possible errors from applying a keyword plan ad group + // keyword or keyword plan campaign keyword. + enum KeywordPlanAdGroupKeywordError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A keyword or negative keyword has invalid match type. + INVALID_KEYWORD_MATCH_TYPE = 2; + + // A keyword or negative keyword with same text and match type already + // exists. + DUPLICATE_KEYWORD = 3; + + // Keyword or negative keyword text exceeds the allowed limit. + KEYWORD_TEXT_TOO_LONG = 4; + + // Keyword or negative keyword text has invalid characters or symbols. + KEYWORD_HAS_INVALID_CHARS = 5; + + // Keyword or negative keyword text has too many words. + KEYWORD_HAS_TOO_MANY_WORDS = 6; + + // Keyword or negative keyword has invalid text. + INVALID_KEYWORD_TEXT = 7; + + // Cpc Bid set for negative keyword. + NEGATIVE_KEYWORD_HAS_CPC_BID = 8; + + // New broad match modifier (BMM) KpAdGroupKeywords are not allowed. + NEW_BMM_KEYWORDS_NOT_ALLOWED = 9; + } + + +} diff --git a/google/ads/googleads/v10/errors/keyword_plan_campaign_error.proto b/google/ads/googleads/v10/errors/keyword_plan_campaign_error.proto new file mode 100644 index 000000000..cce2f80d1 --- /dev/null +++ b/google/ads/googleads/v10/errors/keyword_plan_campaign_error.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing errors from applying a keyword plan campaign. + +// Container for enum describing possible errors from applying a keyword plan +// campaign. +message KeywordPlanCampaignErrorEnum { + // Enum describing possible errors from applying a keyword plan campaign. + enum KeywordPlanCampaignError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A keyword plan campaign name is missing, empty, longer than allowed limit + // or contains invalid chars. + INVALID_NAME = 2; + + // A keyword plan campaign contains one or more untargetable languages. + INVALID_LANGUAGES = 3; + + // A keyword plan campaign contains one or more invalid geo targets. + INVALID_GEOS = 4; + + // The keyword plan campaign name is duplicate to an existing keyword plan + // campaign name or other keyword plan campaign name in the request. + DUPLICATE_NAME = 5; + + // The number of geo targets in the keyword plan campaign exceeds limits. + MAX_GEOS_EXCEEDED = 6; + + // The number of languages in the keyword plan campaign exceeds limits. + MAX_LANGUAGES_EXCEEDED = 7; + } + + +} diff --git a/google/ads/googleads/v10/errors/keyword_plan_campaign_keyword_error.proto b/google/ads/googleads/v10/errors/keyword_plan_campaign_keyword_error.proto new file mode 100644 index 000000000..7ad85de1e --- /dev/null +++ b/google/ads/googleads/v10/errors/keyword_plan_campaign_keyword_error.proto @@ -0,0 +1,47 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignKeywordErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing errors from applying a keyword plan campaign keyword. + +// Container for enum describing possible errors from applying a keyword plan +// campaign keyword. +message KeywordPlanCampaignKeywordErrorEnum { + // Enum describing possible errors from applying a keyword plan campaign + // keyword. + enum KeywordPlanCampaignKeywordError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Keyword plan campaign keyword is positive. + CAMPAIGN_KEYWORD_IS_POSITIVE = 8; + } + + +} diff --git a/google/ads/googleads/v10/errors/keyword_plan_error.proto b/google/ads/googleads/v10/errors/keyword_plan_error.proto new file mode 100644 index 000000000..27675088c --- /dev/null +++ b/google/ads/googleads/v10/errors/keyword_plan_error.proto @@ -0,0 +1,89 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing errors from applying keyword plan resources (keyword +// plan, keyword plan campaign, keyword plan ad group or keyword plan keyword) +// or KeywordPlanService RPC. + +// Container for enum describing possible errors from applying a keyword plan +// resource (keyword plan, keyword plan campaign, keyword plan ad group or +// keyword plan keyword) or KeywordPlanService RPC. +message KeywordPlanErrorEnum { + // Enum describing possible errors from applying a keyword plan. + enum KeywordPlanError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The plan's bid multiplier value is outside the valid range. + BID_MULTIPLIER_OUT_OF_RANGE = 2; + + // The plan's bid value is too high. + BID_TOO_HIGH = 3; + + // The plan's bid value is too low. + BID_TOO_LOW = 4; + + // The plan's cpc bid is not a multiple of the minimum billable unit. + BID_TOO_MANY_FRACTIONAL_DIGITS = 5; + + // The plan's daily budget value is too low. + DAILY_BUDGET_TOO_LOW = 6; + + // The plan's daily budget is not a multiple of the minimum billable unit. + DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS = 7; + + // The input has an invalid value. + INVALID_VALUE = 8; + + // The plan has no keyword. + KEYWORD_PLAN_HAS_NO_KEYWORDS = 9; + + // The plan is not enabled and API cannot provide mutation, forecast or + // stats. + KEYWORD_PLAN_NOT_ENABLED = 10; + + // The requested plan cannot be found for providing forecast or stats. + KEYWORD_PLAN_NOT_FOUND = 11; + + // The plan is missing a cpc bid. + MISSING_BID = 13; + + // The plan is missing required forecast_period field. + MISSING_FORECAST_PERIOD = 14; + + // The plan's forecast_period has invalid forecast date range. + INVALID_FORECAST_DATE_RANGE = 15; + + // The plan's name is invalid. + INVALID_NAME = 16; + } + + +} diff --git a/google/ads/googleads/v10/errors/keyword_plan_idea_error.proto b/google/ads/googleads/v10/errors/keyword_plan_idea_error.proto new file mode 100644 index 000000000..8e2c8ebd2 --- /dev/null +++ b/google/ads/googleads/v10/errors/keyword_plan_idea_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanIdeaErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing errors from KeywordPlanIdeaService. + +// Container for enum describing possible errors from KeywordPlanIdeaService. +message KeywordPlanIdeaErrorEnum { + // Enum describing possible errors from KeywordPlanIdeaService. + enum KeywordPlanIdeaError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Error when crawling the input URL. + URL_CRAWL_ERROR = 2; + + // The input has an invalid value. + INVALID_VALUE = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/label_error.proto b/google/ads/googleads/v10/errors/label_error.proto new file mode 100644 index 000000000..dfeefa178 --- /dev/null +++ b/google/ads/googleads/v10/errors/label_error.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "LabelErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing label errors. + +// Container for enum describing possible label errors. +message LabelErrorEnum { + // Enum describing possible label errors. + enum LabelError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An inactive label cannot be applied. + CANNOT_APPLY_INACTIVE_LABEL = 2; + + // A label cannot be applied to a disabled ad group criterion. + CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION = 3; + + // A label cannot be applied to a negative ad group criterion. + CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION = 4; + + // Cannot apply more than 50 labels per resource. + EXCEEDED_LABEL_LIMIT_PER_TYPE = 5; + + // Labels from a manager account cannot be applied to campaign, ad group, + // ad group ad, or ad group criterion resources. + INVALID_RESOURCE_FOR_MANAGER_LABEL = 6; + + // Label names must be unique. + DUPLICATE_NAME = 7; + + // Label names cannot be empty. + INVALID_LABEL_NAME = 8; + + // Labels cannot be applied to a draft. + CANNOT_ATTACH_LABEL_TO_DRAFT = 9; + + // Labels not from a manager account cannot be applied to the customer + // resource. + CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER = 10; + } + + +} diff --git a/google/ads/googleads/v10/errors/language_code_error.proto b/google/ads/googleads/v10/errors/language_code_error.proto new file mode 100644 index 000000000..d8754bc08 --- /dev/null +++ b/google/ads/googleads/v10/errors/language_code_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "LanguageCodeErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing language code errors. + +// Container for enum describing language code errors. +message LanguageCodeErrorEnum { + // Enum describing language code errors. + enum LanguageCodeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The input language code is not recognized. + LANGUAGE_CODE_NOT_FOUND = 2; + + // The language code is not supported. + INVALID_LANGUAGE_CODE = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/list_operation_error.proto b/google/ads/googleads/v10/errors/list_operation_error.proto new file mode 100644 index 000000000..c51524ef6 --- /dev/null +++ b/google/ads/googleads/v10/errors/list_operation_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ListOperationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing list operation errors. + +// Container for enum describing possible list operation errors. +message ListOperationErrorEnum { + // Enum describing possible list operation errors. + enum ListOperationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Field required in value is missing. + REQUIRED_FIELD_MISSING = 7; + + // Duplicate or identical value is sent in multiple list operations. + DUPLICATE_VALUES = 8; + } + + +} diff --git a/google/ads/googleads/v10/errors/manager_link_error.proto b/google/ads/googleads/v10/errors/manager_link_error.proto new file mode 100644 index 000000000..ccdf831c5 --- /dev/null +++ b/google/ads/googleads/v10/errors/manager_link_error.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ManagerLinkErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ManagerLink errors. + +// Container for enum describing possible ManagerLink errors. +message ManagerLinkErrorEnum { + // Enum describing possible ManagerLink errors. + enum ManagerLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The manager and client have incompatible account types. + ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING = 2; + + // Client is already linked to too many managers. + TOO_MANY_MANAGERS = 3; + + // Manager has too many pending invitations. + TOO_MANY_INVITES = 4; + + // Client is already invited by this manager. + ALREADY_INVITED_BY_THIS_MANAGER = 5; + + // The client is already managed by this manager. + ALREADY_MANAGED_BY_THIS_MANAGER = 6; + + // Client is already managed in hierarchy. + ALREADY_MANAGED_IN_HIERARCHY = 7; + + // Manager and sub-manager to be linked have duplicate client. + DUPLICATE_CHILD_FOUND = 8; + + // Client has no active user that can access the client account. + CLIENT_HAS_NO_ADMIN_USER = 9; + + // Adding this link would exceed the maximum hierarchy depth. + MAX_DEPTH_EXCEEDED = 10; + + // Adding this link will create a cycle. + CYCLE_NOT_ALLOWED = 11; + + // Manager account has the maximum number of linked clients. + TOO_MANY_ACCOUNTS = 12; + + // Parent manager account has the maximum number of linked clients. + TOO_MANY_ACCOUNTS_AT_MANAGER = 13; + + // The account is not authorized owner. + NON_OWNER_USER_CANNOT_MODIFY_LINK = 14; + + // Your manager account is suspended, and you are no longer allowed to link + // to clients. + SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS = 15; + + // You are not allowed to move a client to a manager that is not under your + // current hierarchy. + CLIENT_OUTSIDE_TREE = 16; + + // The changed status for mutate link is invalid. + INVALID_STATUS_CHANGE = 17; + + // The change for mutate link is invalid. + INVALID_CHANGE = 18; + + // You are not allowed to link a manager account to itself. + CUSTOMER_CANNOT_MANAGE_SELF = 19; + + // The link was created with status ACTIVE and not PENDING. + CREATING_ENABLED_LINK_NOT_ALLOWED = 20; + } + + +} diff --git a/google/ads/googleads/v10/errors/media_bundle_error.proto b/google/ads/googleads/v10/errors/media_bundle_error.proto new file mode 100644 index 000000000..e8ce7f3c3 --- /dev/null +++ b/google/ads/googleads/v10/errors/media_bundle_error.proto @@ -0,0 +1,108 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MediaBundleErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing media bundle errors. + +// Container for enum describing possible media bundle errors. +message MediaBundleErrorEnum { + // Enum describing possible media bundle errors. + enum MediaBundleError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // There was a problem with the request. + BAD_REQUEST = 3; + + // HTML5 ads using DoubleClick Studio created ZIP files are not supported. + DOUBLECLICK_BUNDLE_NOT_ALLOWED = 4; + + // Cannot reference URL external to the media bundle. + EXTERNAL_URL_NOT_ALLOWED = 5; + + // Media bundle file is too large. + FILE_TOO_LARGE = 6; + + // ZIP file from Google Web Designer is not published. + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 7; + + // Input was invalid. + INVALID_INPUT = 8; + + // There was a problem with the media bundle. + INVALID_MEDIA_BUNDLE = 9; + + // There was a problem with one or more of the media bundle entries. + INVALID_MEDIA_BUNDLE_ENTRY = 10; + + // The media bundle contains a file with an unknown mime type + INVALID_MIME_TYPE = 11; + + // The media bundle contain an invalid asset path. + INVALID_PATH = 12; + + // HTML5 ad is trying to reference an asset not in .ZIP file + INVALID_URL_REFERENCE = 13; + + // Media data is too large. + MEDIA_DATA_TOO_LARGE = 14; + + // The media bundle contains no primary entry. + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 15; + + // There was an error on the server. + SERVER_ERROR = 16; + + // The image could not be stored. + STORAGE_ERROR = 17; + + // Media bundle created with the Swiffy tool is not allowed. + SWIFFY_BUNDLE_NOT_ALLOWED = 18; + + // The media bundle contains too many files. + TOO_MANY_FILES = 19; + + // The media bundle is not of legal dimensions. + UNEXPECTED_SIZE = 20; + + // Google Web Designer not created for "Google Ads" environment. + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 21; + + // Unsupported HTML5 feature in HTML5 asset. + UNSUPPORTED_HTML5_FEATURE = 22; + + // URL in HTML5 entry is not ssl compliant. + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 23; + + // Custom exits not allowed in HTML5 entry. + CUSTOM_EXIT_NOT_ALLOWED = 24; + } + + +} diff --git a/google/ads/googleads/v10/errors/media_file_error.proto b/google/ads/googleads/v10/errors/media_file_error.proto new file mode 100644 index 000000000..32b85d589 --- /dev/null +++ b/google/ads/googleads/v10/errors/media_file_error.proto @@ -0,0 +1,111 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MediaFileErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing media file errors. + +// Container for enum describing possible media file errors. +message MediaFileErrorEnum { + // Enum describing possible media file errors. + enum MediaFileError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot create a standard icon type. + CANNOT_CREATE_STANDARD_ICON = 2; + + // May only select Standard Icons alone. + CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES = 3; + + // Image contains both a media file ID and data. + CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA = 4; + + // A media file with given type and reference ID already exists. + DUPLICATE_MEDIA = 5; + + // A required field was not specified or is an empty string. + EMPTY_FIELD = 6; + + // A media file may only be modified once per call. + RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 7; + + // Field is not supported for the media sub type. + FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE = 8; + + // The media file ID is invalid. + INVALID_MEDIA_FILE_ID = 9; + + // The media subtype is invalid. + INVALID_MEDIA_SUB_TYPE = 10; + + // The media file type is invalid. + INVALID_MEDIA_FILE_TYPE = 11; + + // The mimetype is invalid. + INVALID_MIME_TYPE = 12; + + // The media reference ID is invalid. + INVALID_REFERENCE_ID = 13; + + // The YouTube video ID is invalid. + INVALID_YOU_TUBE_ID = 14; + + // Media file has failed transcoding + MEDIA_FILE_FAILED_TRANSCODING = 15; + + // Media file has not been transcoded. + MEDIA_NOT_TRANSCODED = 16; + + // The media type does not match the actual media file's type. + MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE = 17; + + // None of the fields have been specified. + NO_FIELDS_SPECIFIED = 18; + + // One of reference ID or media file ID must be specified. + NULL_REFERENCE_ID_AND_MEDIA_ID = 19; + + // The string has too many characters. + TOO_LONG = 20; + + // The specified type is not supported. + UNSUPPORTED_TYPE = 21; + + // YouTube is unavailable for requesting video data. + YOU_TUBE_SERVICE_UNAVAILABLE = 22; + + // The YouTube video has a non positive duration. + YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION = 23; + + // The YouTube video ID is syntactically valid but the video was not found. + YOU_TUBE_VIDEO_NOT_FOUND = 24; + } + + +} diff --git a/google/ads/googleads/v10/errors/media_upload_error.proto b/google/ads/googleads/v10/errors/media_upload_error.proto new file mode 100644 index 000000000..75ddf57f4 --- /dev/null +++ b/google/ads/googleads/v10/errors/media_upload_error.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MediaUploadErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing media uploading errors. + +// Container for enum describing possible media uploading errors. +message MediaUploadErrorEnum { + // Enum describing possible media uploading errors. + enum MediaUploadError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The uploaded file is too big. + FILE_TOO_BIG = 2; + + // Image data is unparseable. + UNPARSEABLE_IMAGE = 3; + + // Animated images are not allowed. + ANIMATED_IMAGE_NOT_ALLOWED = 4; + + // The image or media bundle format is not allowed. + FORMAT_NOT_ALLOWED = 5; + + // Cannot reference URL external to the media bundle. + EXTERNAL_URL_NOT_ALLOWED = 6; + + // HTML5 ad is trying to reference an asset not in .ZIP file. + INVALID_URL_REFERENCE = 7; + + // The media bundle contains no primary entry. + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 8; + + // Animation has disallowed visual effects. + ANIMATED_VISUAL_EFFECT = 9; + + // Animation longer than the allowed 30 second limit. + ANIMATION_TOO_LONG = 10; + + // The aspect ratio of the image does not match the expected aspect ratios + // provided in the asset spec. + ASPECT_RATIO_NOT_ALLOWED = 11; + + // Audio files are not allowed in bundle. + AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 12; + + // CMYK jpegs are not supported. + CMYK_JPEG_NOT_ALLOWED = 13; + + // Flash movies are not allowed. + FLASH_NOT_ALLOWED = 14; + + // The frame rate of the video is higher than the allowed 5fps. + FRAME_RATE_TOO_HIGH = 15; + + // ZIP file from Google Web Designer is not published. + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 16; + + // Image constraints are violated, but more details (like + // DIMENSIONS_NOT_ALLOWED or ASPECT_RATIO_NOT_ALLOWED) can not be provided. + // This happens when asset spec contains more than one constraint and + // criteria of different constraints are violated. + IMAGE_CONSTRAINTS_VIOLATED = 17; + + // Media bundle data is unrecognizable. + INVALID_MEDIA_BUNDLE = 18; + + // There was a problem with one or more of the media bundle entries. + INVALID_MEDIA_BUNDLE_ENTRY = 19; + + // The asset has an invalid mime type. + INVALID_MIME_TYPE = 20; + + // The media bundle contains an invalid asset path. + INVALID_PATH = 21; + + // Image has layout problem. + LAYOUT_PROBLEM = 22; + + // An asset had a URL reference that is malformed per RFC 1738 convention. + MALFORMED_URL = 23; + + // The uploaded media bundle format is not allowed. + MEDIA_BUNDLE_NOT_ALLOWED = 24; + + // The media bundle is not compatible with the asset spec product type. + // (E.g. Gmail, dynamic remarketing, etc.) + MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE = 25; + + // A bundle being uploaded that is incompatible with multiple assets for + // different reasons. + MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS = 26; + + // The media bundle contains too many files. + TOO_MANY_FILES_IN_MEDIA_BUNDLE = 27; + + // Google Web Designer not created for "Google Ads" environment. + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 28; + + // Unsupported HTML5 feature in HTML5 asset. + UNSUPPORTED_HTML5_FEATURE = 29; + + // URL in HTML5 entry is not SSL compliant. + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 30; + + // Video file name is longer than the 50 allowed characters. + VIDEO_FILE_NAME_TOO_LONG = 31; + + // Multiple videos with same name in a bundle. + VIDEO_MULTIPLE_FILES_WITH_SAME_NAME = 32; + + // Videos are not allowed in media bundle. + VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 33; + + // This type of media cannot be uploaded through the Google Ads API. + CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API = 34; + + // The dimensions of the image are not allowed. + DIMENSIONS_NOT_ALLOWED = 35; + } + + +} diff --git a/google/ads/googleads/v10/errors/merchant_center_error.proto b/google/ads/googleads/v10/errors/merchant_center_error.proto new file mode 100644 index 000000000..62cf00bec --- /dev/null +++ b/google/ads/googleads/v10/errors/merchant_center_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MerchantCenterErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing merchant center errors. + +// Container for enum describing possible merchant center errors. +message MerchantCenterErrorEnum { + // Enum describing Merchant Center errors. + enum MerchantCenterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Merchant ID is either not found or not linked to the Google Ads customer. + MERCHANT_ID_CANNOT_BE_ACCESSED = 2; + + // Customer not allowlisted for Shopping in Performance Max Campaign. + CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/multiplier_error.proto b/google/ads/googleads/v10/errors/multiplier_error.proto new file mode 100644 index 000000000..6bd8589eb --- /dev/null +++ b/google/ads/googleads/v10/errors/multiplier_error.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MultiplierErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing multiplier errors. + +// Container for enum describing possible multiplier errors. +message MultiplierErrorEnum { + // Enum describing possible multiplier errors. + enum MultiplierError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Multiplier value is too high + MULTIPLIER_TOO_HIGH = 2; + + // Multiplier value is too low + MULTIPLIER_TOO_LOW = 3; + + // Too many fractional digits + TOO_MANY_FRACTIONAL_DIGITS = 4; + + // A multiplier cannot be set for this bidding strategy + MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY = 5; + + // A multiplier cannot be set when there is no base bid (e.g., content max + // cpc) + MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING = 6; + + // A bid multiplier must be specified + NO_MULTIPLIER_SPECIFIED = 7; + + // Multiplier causes bid to exceed daily budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET = 8; + + // Multiplier causes bid to exceed monthly budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET = 9; + + // Multiplier causes bid to exceed custom budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET = 10; + + // Multiplier causes bid to exceed maximum allowed bid + MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID = 11; + + // Multiplier causes bid to become less than the minimum bid allowed + BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER = 12; + + // Multiplier type (cpc vs. cpm) needs to match campaign's bidding strategy + MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH = 13; + } + + +} diff --git a/google/ads/googleads/v10/errors/mutate_error.proto b/google/ads/googleads/v10/errors/mutate_error.proto new file mode 100644 index 000000000..69d2e65fd --- /dev/null +++ b/google/ads/googleads/v10/errors/mutate_error.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MutateErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing mutate errors. + +// Container for enum describing possible mutate errors. +message MutateErrorEnum { + // Enum describing possible mutate errors. + enum MutateError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Requested resource was not found. + RESOURCE_NOT_FOUND = 3; + + // Cannot mutate the same resource twice in one request. + ID_EXISTS_IN_MULTIPLE_MUTATES = 7; + + // The field's contents don't match another field that represents the same + // data. + INCONSISTENT_FIELD_VALUES = 8; + + // Mutates are not allowed for the requested resource. + MUTATE_NOT_ALLOWED = 9; + + // The resource isn't in Google Ads. It belongs to another ads system. + RESOURCE_NOT_IN_GOOGLE_ADS = 10; + + // The resource being created already exists. + RESOURCE_ALREADY_EXISTS = 11; + + // This resource cannot be used with "validate_only". + RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY = 12; + + // This operation cannot be used with "partial_failure". + OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE = 16; + + // Attempt to write to read-only fields. + RESOURCE_READ_ONLY = 13; + } + + +} diff --git a/google/ads/googleads/v10/errors/new_resource_creation_error.proto b/google/ads/googleads/v10/errors/new_resource_creation_error.proto new file mode 100644 index 000000000..86194df3b --- /dev/null +++ b/google/ads/googleads/v10/errors/new_resource_creation_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "NewResourceCreationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing new resource creation errors. + +// Container for enum describing possible new resource creation errors. +message NewResourceCreationErrorEnum { + // Enum describing possible new resource creation errors. + enum NewResourceCreationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Do not set the id field while creating new resources. + CANNOT_SET_ID_FOR_CREATE = 2; + + // Creating more than one resource with the same temp ID is not allowed. + DUPLICATE_TEMP_IDS = 3; + + // Parent resource with specified temp ID failed validation, so no + // validation will be done for this child resource. + TEMP_ID_RESOURCE_HAD_ERRORS = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/not_allowlisted_error.proto b/google/ads/googleads/v10/errors/not_allowlisted_error.proto new file mode 100644 index 000000000..a36e972ea --- /dev/null +++ b/google/ads/googleads/v10/errors/not_allowlisted_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "NotAllowlistedErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing not allowlisted errors. + +// Container for enum describing possible not allowlisted errors. +message NotAllowlistedErrorEnum { + // Enum describing possible not allowlisted errors. + enum NotAllowlistedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Customer is not allowlisted for accessing this feature. + CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/not_empty_error.proto b/google/ads/googleads/v10/errors/not_empty_error.proto new file mode 100644 index 000000000..3a73e0e9c --- /dev/null +++ b/google/ads/googleads/v10/errors/not_empty_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "NotEmptyErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing not empty errors. + +// Container for enum describing possible not empty errors. +message NotEmptyErrorEnum { + // Enum describing possible not empty errors. + enum NotEmptyError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Empty list. + EMPTY_LIST = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/null_error.proto b/google/ads/googleads/v10/errors/null_error.proto new file mode 100644 index 000000000..15e3b810d --- /dev/null +++ b/google/ads/googleads/v10/errors/null_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "NullErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing null errors. + +// Container for enum describing possible null errors. +message NullErrorEnum { + // Enum describing possible null errors. + enum NullError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Specified list/container must not contain any null elements + NULL_CONTENT = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/offline_user_data_job_error.proto b/google/ads/googleads/v10/errors/offline_user_data_job_error.proto new file mode 100644 index 000000000..3a5fa5c9b --- /dev/null +++ b/google/ads/googleads/v10/errors/offline_user_data_job_error.proto @@ -0,0 +1,159 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing offline user data job errors. + +// Container for enum describing possible offline user data job errors. +message OfflineUserDataJobErrorEnum { + // Enum describing possible request errors. + enum OfflineUserDataJobError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The user list ID provided for the job is invalid. + INVALID_USER_LIST_ID = 3; + + // Type of the user list is not applicable for the job. + INVALID_USER_LIST_TYPE = 4; + + // Customer is not allowisted for using user ID in upload data. + NOT_ON_ALLOWLIST_FOR_USER_ID = 33; + + // Upload data is not compatible with the upload key type of the associated + // user list. + INCOMPATIBLE_UPLOAD_KEY_TYPE = 6; + + // The user identifier is missing valid data. + MISSING_USER_IDENTIFIER = 7; + + // The mobile ID is malformed. + INVALID_MOBILE_ID_FORMAT = 8; + + // Maximum number of user identifiers allowed per request is 100,000 and per + // operation is 20. + TOO_MANY_USER_IDENTIFIERS = 9; + + // Customer is not on the allow-list for store sales direct data. + NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT = 31; + + // Customer is not on the allow-list for unified store sales data. + NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES = 32; + + // The partner ID in store sales direct metadata is invalid. + INVALID_PARTNER_ID = 11; + + // The data in user identifier should not be encoded. + INVALID_ENCODING = 12; + + // The country code is invalid. + INVALID_COUNTRY_CODE = 13; + + // Incompatible user identifier when using third_party_user_id for store + // sales direct first party data or not using third_party_user_id for store + // sales third party data. + INCOMPATIBLE_USER_IDENTIFIER = 14; + + // A transaction time in the future is not allowed. + FUTURE_TRANSACTION_TIME = 15; + + // The conversion_action specified in transaction_attributes is used to + // report conversions to a conversion action configured in Google Ads. This + // error indicates there is no such conversion action in the account. + INVALID_CONVERSION_ACTION = 16; + + // Mobile ID is not supported for store sales direct data. + MOBILE_ID_NOT_SUPPORTED = 17; + + // When a remove-all operation is provided, it has to be the first operation + // of the operation list. + INVALID_OPERATION_ORDER = 18; + + // Mixing creation and removal of offline data in the same job is not + // allowed. + CONFLICTING_OPERATION = 19; + + // The external update ID already exists. + EXTERNAL_UPDATE_ID_ALREADY_EXISTS = 21; + + // Once the upload job is started, new operations cannot be added. + JOB_ALREADY_STARTED = 22; + + // Remove operation is not allowed for store sales direct updates. + REMOVE_NOT_SUPPORTED = 23; + + // Remove-all is not supported for certain offline user data job types. + REMOVE_ALL_NOT_SUPPORTED = 24; + + // The SHA256 encoded value is malformed. + INVALID_SHA256_FORMAT = 25; + + // The custom key specified is not enabled for the unified store sales + // upload. + CUSTOM_KEY_DISABLED = 26; + + // The custom key specified is not predefined through the Google Ads UI. + CUSTOM_KEY_NOT_PREDEFINED = 27; + + // The custom key specified is not set in the upload. + CUSTOM_KEY_NOT_SET = 29; + + // The customer has not accepted the customer data terms in the conversion + // settings page. + CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 30; + + // User attributes cannot be uploaded into a user list. + ATTRIBUTES_NOT_APPLICABLE_FOR_CUSTOMER_MATCH_USER_LIST = 34; + + // Lifetime value bucket must be a number from 1-10, except for remove + // operation where 0 will be accepted. + LIFETIME_VALUE_BUCKET_NOT_IN_RANGE = 35; + + // Identifiers not supported for Customer Match attributes. User attributes + // can only be provided with contact info (email, phone, address) user + // identifiers. + INCOMPATIBLE_USER_IDENTIFIER_FOR_ATTRIBUTES = 36; + + // A time in the future is not allowed. + FUTURE_TIME_NOT_ALLOWED = 37; + + // Last purchase date time cannot be less than acquisition date time. + LAST_PURCHASE_TIME_LESS_THAN_ACQUISITION_TIME = 38; + + // Only emails are accepted as user identifiers for shopping loyalty match. + // {-- api.dev/not-precedent: The identifier is not limited to ids, but + // also include other user info eg. phone numbers.} + CUSTOMER_IDENTIFIER_NOT_ALLOWED = 39; + + // Provided item ID is invalid. + INVALID_ITEM_ID = 40; + } + + +} diff --git a/google/ads/googleads/v10/errors/operation_access_denied_error.proto b/google/ads/googleads/v10/errors/operation_access_denied_error.proto new file mode 100644 index 000000000..9623857ad --- /dev/null +++ b/google/ads/googleads/v10/errors/operation_access_denied_error.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "OperationAccessDeniedErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing operation access denied errors. + +// Container for enum describing possible operation access denied errors. +message OperationAccessDeniedErrorEnum { + // Enum describing possible operation access denied errors. + enum OperationAccessDeniedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Unauthorized invocation of a service's method (get, mutate, etc.) + ACTION_NOT_PERMITTED = 2; + + // Unauthorized CREATE operation in invoking a service's mutate method. + CREATE_OPERATION_NOT_PERMITTED = 3; + + // Unauthorized REMOVE operation in invoking a service's mutate method. + REMOVE_OPERATION_NOT_PERMITTED = 4; + + // Unauthorized UPDATE operation in invoking a service's mutate method. + UPDATE_OPERATION_NOT_PERMITTED = 5; + + // A mutate action is not allowed on this resource, from this client. + MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT = 6; + + // This operation is not permitted on this campaign type + OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE = 7; + + // A CREATE operation may not set status to REMOVED. + CREATE_AS_REMOVED_NOT_PERMITTED = 8; + + // This operation is not allowed because the resource is removed. + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 9; + + // This operation is not permitted on this ad group type. + OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE = 10; + + // The mutate is not allowed for this customer. + MUTATE_NOT_PERMITTED_FOR_CUSTOMER = 11; + } + + +} diff --git a/google/ads/googleads/v10/errors/operator_error.proto b/google/ads/googleads/v10/errors/operator_error.proto new file mode 100644 index 000000000..bd3cefe63 --- /dev/null +++ b/google/ads/googleads/v10/errors/operator_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "OperatorErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing operator errors. + +// Container for enum describing possible operator errors. +message OperatorErrorEnum { + // Enum describing possible operator errors. + enum OperatorError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Operator not supported. + OPERATOR_NOT_SUPPORTED = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/partial_failure_error.proto b/google/ads/googleads/v10/errors/partial_failure_error.proto new file mode 100644 index 000000000..75286f738 --- /dev/null +++ b/google/ads/googleads/v10/errors/partial_failure_error.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PartialFailureErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing partial failure errors. + +// Container for enum describing possible partial failure errors. +message PartialFailureErrorEnum { + // Enum describing possible partial failure errors. + enum PartialFailureError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The partial failure field was false in the request. + // This method requires this field be set to true. + PARTIAL_FAILURE_MODE_REQUIRED = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/payments_account_error.proto b/google/ads/googleads/v10/errors/payments_account_error.proto new file mode 100644 index 000000000..c4317bdfa --- /dev/null +++ b/google/ads/googleads/v10/errors/payments_account_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PaymentsAccountErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing payments account service errors. + +// Container for enum describing possible errors in payments account service. +message PaymentsAccountErrorEnum { + // Enum describing possible errors in payments account service. + enum PaymentsAccountError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Manager customers are not supported for payments account service. + NOT_SUPPORTED_FOR_MANAGER_CUSTOMER = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/policy_finding_error.proto b/google/ads/googleads/v10/errors/policy_finding_error.proto new file mode 100644 index 000000000..983927d21 --- /dev/null +++ b/google/ads/googleads/v10/errors/policy_finding_error.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PolicyFindingErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing policy finding errors. + +// Container for enum describing possible policy finding errors. +message PolicyFindingErrorEnum { + // Enum describing possible policy finding errors. + enum PolicyFindingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The resource has been disapproved since the policy summary includes + // policy topics of type PROHIBITED. + POLICY_FINDING = 2; + + // The given policy topic does not exist. + POLICY_TOPIC_NOT_FOUND = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/policy_validation_parameter_error.proto b/google/ads/googleads/v10/errors/policy_validation_parameter_error.proto new file mode 100644 index 000000000..8e99615a6 --- /dev/null +++ b/google/ads/googleads/v10/errors/policy_validation_parameter_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PolicyValidationParameterErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing policy validation parameter errors. + +// Container for enum describing possible policy validation parameter errors. +message PolicyValidationParameterErrorEnum { + // Enum describing possible policy validation parameter errors. + enum PolicyValidationParameterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Ignorable policy topics are not supported for the ad type. + UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS = 2; + + // Exempt policy violation keys are not supported for the ad type. + UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS = 3; + + // Cannot set ignorable policy topics and exempt policy violation keys in + // the same policy violation parameter. + CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/policy_violation_error.proto b/google/ads/googleads/v10/errors/policy_violation_error.proto new file mode 100644 index 000000000..12db62c2c --- /dev/null +++ b/google/ads/googleads/v10/errors/policy_violation_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PolicyViolationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing policy violation errors. + +// Container for enum describing possible policy violation errors. +message PolicyViolationErrorEnum { + // Enum describing possible policy violation errors. + enum PolicyViolationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A policy was violated. See PolicyViolationDetails for more detail. + POLICY_ERROR = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/query_error.proto b/google/ads/googleads/v10/errors/query_error.proto new file mode 100644 index 000000000..3515b72a5 --- /dev/null +++ b/google/ads/googleads/v10/errors/query_error.proto @@ -0,0 +1,225 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "QueryErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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 (i.e. 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. I.e., 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; + + // An invalid 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/google/ads/googleads/v10/errors/quota_error.proto b/google/ads/googleads/v10/errors/quota_error.proto new file mode 100644 index 000000000..af29dc470 --- /dev/null +++ b/google/ads/googleads/v10/errors/quota_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "QuotaErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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; + + // Access is prohibited. + ACCESS_PROHIBITED = 3; + + // Too many requests in a short amount of time. + RESOURCE_TEMPORARILY_EXHAUSTED = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/range_error.proto b/google/ads/googleads/v10/errors/range_error.proto new file mode 100644 index 000000000..f27edd674 --- /dev/null +++ b/google/ads/googleads/v10/errors/range_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RangeErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing range errors. + +// Container for enum describing possible range errors. +message RangeErrorEnum { + // Enum describing possible range errors. + enum RangeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Too low. + TOO_LOW = 2; + + // Too high. + TOO_HIGH = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/reach_plan_error.proto b/google/ads/googleads/v10/errors/reach_plan_error.proto new file mode 100644 index 000000000..1febb521f --- /dev/null +++ b/google/ads/googleads/v10/errors/reach_plan_error.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing errors generated from ReachPlanService. + +// Container for enum describing possible errors returned from +// the ReachPlanService. +message ReachPlanErrorEnum { + // Enum describing possible errors from ReachPlanService. + enum ReachPlanError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Not forecastable due to missing rate card data. + NOT_FORECASTABLE_MISSING_RATE = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/recommendation_error.proto b/google/ads/googleads/v10/errors/recommendation_error.proto new file mode 100644 index 000000000..f3476a6f0 --- /dev/null +++ b/google/ads/googleads/v10/errors/recommendation_error.proto @@ -0,0 +1,88 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing errors from applying a recommendation. + +// Container for enum describing possible errors from applying a recommendation. +message RecommendationErrorEnum { + // Enum describing possible errors from applying a recommendation. + enum RecommendationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified budget amount is too low e.g. lower than minimum currency + // unit or lower than ad group minimum cost-per-click. + BUDGET_AMOUNT_TOO_SMALL = 2; + + // The specified budget amount is too large. + BUDGET_AMOUNT_TOO_LARGE = 3; + + // The specified budget amount is not a valid amount. e.g. not a multiple + // of minimum currency unit. + INVALID_BUDGET_AMOUNT = 4; + + // The specified keyword or ad violates ad policy. + POLICY_ERROR = 5; + + // The specified bid amount is not valid. e.g. too many fractional digits, + // or negative amount. + INVALID_BID_AMOUNT = 6; + + // The number of keywords in ad group have reached the maximum allowed. + ADGROUP_KEYWORD_LIMIT = 7; + + // The recommendation requested to apply has already been applied. + RECOMMENDATION_ALREADY_APPLIED = 8; + + // The recommendation requested to apply has been invalidated. + RECOMMENDATION_INVALIDATED = 9; + + // The number of operations in a single request exceeds the maximum allowed. + TOO_MANY_OPERATIONS = 10; + + // There are no operations in the request. + NO_OPERATIONS = 11; + + // Operations with multiple recommendation types are not supported when + // partial failure mode is not enabled. + DIFFERENT_TYPES_NOT_SUPPORTED = 12; + + // Request contains multiple operations with the same resource_name. + DUPLICATE_RESOURCE_NAME = 13; + + // The recommendation requested to dismiss has already been dismissed. + RECOMMENDATION_ALREADY_DISMISSED = 14; + + // The recommendation apply request was malformed and invalid. + INVALID_APPLY_REQUEST = 15; + } + + +} diff --git a/google/ads/googleads/v10/errors/region_code_error.proto b/google/ads/googleads/v10/errors/region_code_error.proto new file mode 100644 index 000000000..e3d998b0e --- /dev/null +++ b/google/ads/googleads/v10/errors/region_code_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RegionCodeErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing region code errors. + +// Container for enum describing possible region code errors. +message RegionCodeErrorEnum { + // Enum describing possible region code errors. + enum RegionCodeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Invalid region code. + INVALID_REGION_CODE = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/request_error.proto b/google/ads/googleads/v10/errors/request_error.proto new file mode 100644 index 000000000..7d15f8a46 --- /dev/null +++ b/google/ads/googleads/v10/errors/request_error.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RequestErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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; + + // 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 developer-token parameter is required for all requests. + DEVELOPER_TOKEN_PARAMETER_MISSING = 19; + + // The login-customer-id parameter is required for this request. + LOGIN_CUSTOMER_ID_PARAMETER_MISSING = 20; + + // 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; + } + + +} diff --git a/google/ads/googleads/v10/errors/resource_access_denied_error.proto b/google/ads/googleads/v10/errors/resource_access_denied_error.proto new file mode 100644 index 000000000..26f4042c2 --- /dev/null +++ b/google/ads/googleads/v10/errors/resource_access_denied_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ResourceAccessDeniedErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing resource access denied errors. + +// Container for enum describing possible resource access denied errors. +message ResourceAccessDeniedErrorEnum { + // Enum describing possible resource access denied errors. + enum ResourceAccessDeniedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // User did not have write access. + WRITE_ACCESS_DENIED = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/resource_count_limit_exceeded_error.proto b/google/ads/googleads/v10/errors/resource_count_limit_exceeded_error.proto new file mode 100644 index 000000000..31f8c3823 --- /dev/null +++ b/google/ads/googleads/v10/errors/resource_count_limit_exceeded_error.proto @@ -0,0 +1,91 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ResourceCountLimitExceededErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing resource count limit exceeded errors. + +// Container for enum describing possible resource count limit exceeded errors. +message ResourceCountLimitExceededErrorEnum { + // Enum describing possible resource count limit exceeded errors. + enum ResourceCountLimitExceededError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Indicates that this request would exceed the number of allowed resources + // for the Google Ads account. The exact resource type and limit being + // checked can be inferred from accountLimitType. + ACCOUNT_LIMIT = 2; + + // Indicates that this request would exceed the number of allowed resources + // in a Campaign. The exact resource type and limit being checked can be + // inferred from accountLimitType, and the numeric id of the + // Campaign involved is given by enclosingId. + CAMPAIGN_LIMIT = 3; + + // Indicates that this request would exceed the number of allowed resources + // in an ad group. The exact resource type and limit being checked can be + // inferred from accountLimitType, and the numeric id of the + // ad group involved is given by enclosingId. + ADGROUP_LIMIT = 4; + + // Indicates that this request would exceed the number of allowed resources + // in an ad group ad. The exact resource type and limit being checked can + // be inferred from accountLimitType, and the enclosingId + // contains the ad group id followed by the ad id, separated by a single + // comma (,). + AD_GROUP_AD_LIMIT = 5; + + // Indicates that this request would exceed the number of allowed resources + // in an ad group criterion. The exact resource type and limit being checked + // can be inferred from accountLimitType, and the + // enclosingId contains the ad group id followed by the + // criterion id, separated by a single comma (,). + AD_GROUP_CRITERION_LIMIT = 6; + + // Indicates that this request would exceed the number of allowed resources + // in this shared set. The exact resource type and limit being checked can + // be inferred from accountLimitType, and the numeric id of the + // shared set involved is given by enclosingId. + SHARED_SET_LIMIT = 7; + + // Exceeds a limit related to a matching function. + MATCHING_FUNCTION_LIMIT = 8; + + // The response for this request would exceed the maximum number of rows + // that can be returned. + RESPONSE_ROW_LIMIT_EXCEEDED = 9; + + // This request would exceed a limit on the number of allowed resources. + // The details of which type of limit was exceeded will eventually be + // returned in ErrorDetails. + RESOURCE_LIMIT = 10; + } + + +} diff --git a/google/ads/googleads/v10/errors/setting_error.proto b/google/ads/googleads/v10/errors/setting_error.proto new file mode 100644 index 000000000..f5dc32a2a --- /dev/null +++ b/google/ads/googleads/v10/errors/setting_error.proto @@ -0,0 +1,83 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SettingErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing setting errors. + +// Container for enum describing possible setting errors. +message SettingErrorEnum { + // Enum describing possible setting errors. + enum SettingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The campaign setting is not available for this Google Ads account. + SETTING_TYPE_IS_NOT_AVAILABLE = 3; + + // The setting is not compatible with the campaign. + SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN = 4; + + // The supplied TargetingSetting contains an invalid CriterionTypeGroup. See + // CriterionTypeGroup documentation for CriterionTypeGroups allowed + // in Campaign or AdGroup TargetingSettings. + TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP = 5; + + // TargetingSetting must not explicitly + // set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, + // PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in + // which case the system will set them to true automatically). + TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL = 6; + + // TargetingSetting cannot change any of + // the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, + // INCOME_RANGE) from true to false. + TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP = 7; + + // At least one feed id should be present. + DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT = 8; + + // The supplied DynamicSearchAdsSetting contains an invalid domain name. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME = 9; + + // The supplied DynamicSearchAdsSetting contains a subdomain name. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME = 10; + + // The supplied DynamicSearchAdsSetting contains an invalid language code. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE = 11; + + // TargetingSettings in search campaigns should not have + // CriterionTypeGroup.PLACEMENT set to targetAll. + TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN = 12; + + // The setting value is not compatible with the campaign type. + SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN = 20; + } + + +} diff --git a/google/ads/googleads/v10/errors/shared_criterion_error.proto b/google/ads/googleads/v10/errors/shared_criterion_error.proto new file mode 100644 index 000000000..30c5dc942 --- /dev/null +++ b/google/ads/googleads/v10/errors/shared_criterion_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SharedCriterionErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing shared criterion errors. + +// Container for enum describing possible shared criterion errors. +message SharedCriterionErrorEnum { + // Enum describing possible shared criterion errors. + enum SharedCriterionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The criterion is not appropriate for the shared set type. + CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE = 2; + } + + +} diff --git a/google/ads/googleads/v10/errors/shared_set_error.proto b/google/ads/googleads/v10/errors/shared_set_error.proto new file mode 100644 index 000000000..b181eb217 --- /dev/null +++ b/google/ads/googleads/v10/errors/shared_set_error.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing shared set errors. + +// Container for enum describing possible shared set errors. +message SharedSetErrorEnum { + // Enum describing possible shared set errors. + enum SharedSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The customer cannot create this type of shared set. + CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE = 2; + + // A shared set with this name already exists. + DUPLICATE_NAME = 3; + + // Removed shared sets cannot be mutated. + SHARED_SET_REMOVED = 4; + + // The shared set cannot be removed because it is in use. + SHARED_SET_IN_USE = 5; + } + + +} diff --git a/google/ads/googleads/v10/errors/size_limit_error.proto b/google/ads/googleads/v10/errors/size_limit_error.proto new file mode 100644 index 000000000..de13f4552 --- /dev/null +++ b/google/ads/googleads/v10/errors/size_limit_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SizeLimitErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::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. + REQUEST_SIZE_LIMIT_EXCEEDED = 2; + + // The number of entries in the response exceeds the system limit. + RESPONSE_SIZE_LIMIT_EXCEEDED = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/string_format_error.proto b/google/ads/googleads/v10/errors/string_format_error.proto new file mode 100644 index 000000000..cdeb8def5 --- /dev/null +++ b/google/ads/googleads/v10/errors/string_format_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "StringFormatErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing string format errors. + +// Container for enum describing possible string format errors. +message StringFormatErrorEnum { + // Enum describing possible string format errors. + enum StringFormatError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The input string value contains disallowed characters. + ILLEGAL_CHARS = 2; + + // The input string value is invalid for the associated field. + INVALID_FORMAT = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/string_length_error.proto b/google/ads/googleads/v10/errors/string_length_error.proto new file mode 100644 index 000000000..57f115e4e --- /dev/null +++ b/google/ads/googleads/v10/errors/string_length_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "StringLengthErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing string length errors. + +// Container for enum describing possible string length errors. +message StringLengthErrorEnum { + // Enum describing possible string length errors. + enum StringLengthError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified field should have a least one non-whitespace character in + // it. + EMPTY = 4; + + // Too short. + TOO_SHORT = 2; + + // Too long. + TOO_LONG = 3; + } + + +} diff --git a/google/ads/googleads/v10/errors/third_party_app_analytics_link_error.proto b/google/ads/googleads/v10/errors/third_party_app_analytics_link_error.proto new file mode 100644 index 000000000..4abc72af9 --- /dev/null +++ b/google/ads/googleads/v10/errors/third_party_app_analytics_link_error.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ThirdPartyAppAnalyticsLinkErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing ThirdPartyAppAnalyticsLink errors. + +// Container for enum describing possible third party app analytics link errors. +message ThirdPartyAppAnalyticsLinkErrorEnum { + // Enum describing possible third party app analytics link errors. + enum ThirdPartyAppAnalyticsLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The provided analytics provider ID is invalid. + INVALID_ANALYTICS_PROVIDER_ID = 2; + + // The provided mobile app ID is invalid. + INVALID_MOBILE_APP_ID = 3; + + // The mobile app corresponding to the provided app ID is not + // active/enabled. + MOBILE_APP_IS_NOT_ENABLED = 4; + + // Regenerating shareable link ID is only allowed on active links + CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK = 5; + } + + +} diff --git a/google/ads/googleads/v10/errors/time_zone_error.proto b/google/ads/googleads/v10/errors/time_zone_error.proto new file mode 100644 index 000000000..152ee780a --- /dev/null +++ b/google/ads/googleads/v10/errors/time_zone_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "TimeZoneErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing time zone errors. + +// Container for enum describing possible time zone errors. +message TimeZoneErrorEnum { + // Enum describing possible currency code errors. + enum TimeZoneError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Time zone is not valid. + INVALID_TIME_ZONE = 5; + } + + +} diff --git a/google/ads/googleads/v10/errors/url_field_error.proto b/google/ads/googleads/v10/errors/url_field_error.proto new file mode 100644 index 000000000..48f60f357 --- /dev/null +++ b/google/ads/googleads/v10/errors/url_field_error.proto @@ -0,0 +1,215 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "UrlFieldErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing url field errors. + +// Container for enum describing possible url field errors. +message UrlFieldErrorEnum { + // Enum describing possible url field errors. + enum UrlFieldError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The tracking url template is invalid. + INVALID_TRACKING_URL_TEMPLATE = 2; + + // The tracking url template contains invalid tag. + INVALID_TAG_IN_TRACKING_URL_TEMPLATE = 3; + + // The tracking url template must contain at least one tag (e.g. {lpurl}), + // This applies only to tracking url template associated with website ads or + // product ads. + MISSING_TRACKING_URL_TEMPLATE_TAG = 4; + + // The tracking url template must start with a valid protocol (or lpurl + // tag). + MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 5; + + // The tracking url template starts with an invalid protocol. + INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 6; + + // The tracking url template contains illegal characters. + MALFORMED_TRACKING_URL_TEMPLATE = 7; + + // The tracking url template must contain a host name (or lpurl tag). + MISSING_HOST_IN_TRACKING_URL_TEMPLATE = 8; + + // The tracking url template has an invalid or missing top level domain + // extension. + INVALID_TLD_IN_TRACKING_URL_TEMPLATE = 9; + + // The tracking url template contains nested occurrences of the same + // conditional tag (i.e. {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG = 10; + + // The final url is invalid. + INVALID_FINAL_URL = 11; + + // The final url contains invalid tag. + INVALID_TAG_IN_FINAL_URL = 12; + + // The final url contains nested occurrences of the same conditional tag + // (i.e. {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_FINAL_URL_TAG = 13; + + // The final url must start with a valid protocol. + MISSING_PROTOCOL_IN_FINAL_URL = 14; + + // The final url starts with an invalid protocol. + INVALID_PROTOCOL_IN_FINAL_URL = 15; + + // The final url contains illegal characters. + MALFORMED_FINAL_URL = 16; + + // The final url must contain a host name. + MISSING_HOST_IN_FINAL_URL = 17; + + // The tracking url template has an invalid or missing top level domain + // extension. + INVALID_TLD_IN_FINAL_URL = 18; + + // The final mobile url is invalid. + INVALID_FINAL_MOBILE_URL = 19; + + // The final mobile url contains invalid tag. + INVALID_TAG_IN_FINAL_MOBILE_URL = 20; + + // The final mobile url contains nested occurrences of the same conditional + // tag (i.e. {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG = 21; + + // The final mobile url must start with a valid protocol. + MISSING_PROTOCOL_IN_FINAL_MOBILE_URL = 22; + + // The final mobile url starts with an invalid protocol. + INVALID_PROTOCOL_IN_FINAL_MOBILE_URL = 23; + + // The final mobile url contains illegal characters. + MALFORMED_FINAL_MOBILE_URL = 24; + + // The final mobile url must contain a host name. + MISSING_HOST_IN_FINAL_MOBILE_URL = 25; + + // The tracking url template has an invalid or missing top level domain + // extension. + INVALID_TLD_IN_FINAL_MOBILE_URL = 26; + + // The final app url is invalid. + INVALID_FINAL_APP_URL = 27; + + // The final app url contains invalid tag. + INVALID_TAG_IN_FINAL_APP_URL = 28; + + // The final app url contains nested occurrences of the same conditional tag + // (i.e. {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_FINAL_APP_URL_TAG = 29; + + // More than one app url found for the same OS type. + MULTIPLE_APP_URLS_FOR_OSTYPE = 30; + + // The OS type given for an app url is not valid. + INVALID_OSTYPE = 31; + + // The protocol given for an app url is not valid. (E.g. "android-app://") + INVALID_PROTOCOL_FOR_APP_URL = 32; + + // The package id (app id) given for an app url is not valid. + INVALID_PACKAGE_ID_FOR_APP_URL = 33; + + // The number of url custom parameters for an resource exceeds the maximum + // limit allowed. + URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT = 34; + + // An invalid character appears in the parameter key. + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY = 39; + + // An invalid character appears in the parameter value. + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE = 40; + + // The url custom parameter value fails url tag validation. + INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE = 41; + + // The custom parameter contains nested occurrences of the same conditional + // tag (i.e. {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG = 42; + + // The protocol (http:// or https://) is missing. + MISSING_PROTOCOL = 43; + + // Unsupported protocol in URL. Only http and https are supported. + INVALID_PROTOCOL = 52; + + // The url is invalid. + INVALID_URL = 44; + + // Destination Url is deprecated. + DESTINATION_URL_DEPRECATED = 45; + + // The url contains invalid tag. + INVALID_TAG_IN_URL = 46; + + // The url must contain at least one tag (e.g. {lpurl}). + MISSING_URL_TAG = 47; + + // Duplicate url id. + DUPLICATE_URL_ID = 48; + + // Invalid url id. + INVALID_URL_ID = 49; + + // The final url suffix cannot begin with '?' or '&' characters and must be + // a valid query string. + FINAL_URL_SUFFIX_MALFORMED = 50; + + // The final url suffix cannot contain {lpurl} related or {ignore} tags. + INVALID_TAG_IN_FINAL_URL_SUFFIX = 51; + + // The top level domain is invalid, e.g. not a public top level domain + // listed in publicsuffix.org. + INVALID_TOP_LEVEL_DOMAIN = 53; + + // Malformed top level domain in URL. + MALFORMED_TOP_LEVEL_DOMAIN = 54; + + // Malformed URL. + MALFORMED_URL = 55; + + // No host found in URL. + MISSING_HOST = 56; + + // Custom parameter value cannot be null. + NULL_CUSTOM_PARAMETER_VALUE = 57; + + // Track parameter is not supported. + VALUE_TRACK_PARAMETER_NOT_SUPPORTED = 58; + } + + +} diff --git a/google/ads/googleads/v10/errors/user_data_error.proto b/google/ads/googleads/v10/errors/user_data_error.proto new file mode 100644 index 000000000..05a3cd1ef --- /dev/null +++ b/google/ads/googleads/v10/errors/user_data_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "UserDataErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing user data errors. + +// Container for enum describing possible user data errors. +message UserDataErrorEnum { + // Enum describing possible request errors. + enum UserDataError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Customer is not allowed to perform operations related to Customer Match. + OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED = 2; + + // Maximum number of user identifiers allowed for each request is 100 and + // for each operation is 20. + TOO_MANY_USER_IDENTIFIERS = 3; + + // Current user list is not applicable for the given customer. + USER_LIST_NOT_APPLICABLE = 4; + } + + +} diff --git a/google/ads/googleads/v10/errors/user_list_error.proto b/google/ads/googleads/v10/errors/user_list_error.proto new file mode 100644 index 000000000..e6356202a --- /dev/null +++ b/google/ads/googleads/v10/errors/user_list_error.proto @@ -0,0 +1,127 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "UserListErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing user list errors. + +// Container for enum describing possible user list errors. +message UserListErrorEnum { + // Enum describing possible user list errors. + enum UserListError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Creating and updating external remarketing user lists is not supported. + EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED = 2; + + // Concrete type of user list is required. + CONCRETE_TYPE_REQUIRED = 3; + + // Creating/updating user list conversion types requires specifying the + // conversion type Id. + CONVERSION_TYPE_ID_REQUIRED = 4; + + // Remarketing user list cannot have duplicate conversion types. + DUPLICATE_CONVERSION_TYPES = 5; + + // Conversion type is invalid/unknown. + INVALID_CONVERSION_TYPE = 6; + + // User list description is empty or invalid. + INVALID_DESCRIPTION = 7; + + // User list name is empty or invalid. + INVALID_NAME = 8; + + // Type of the UserList does not match. + INVALID_TYPE = 9; + + // Embedded logical user lists are not allowed. + CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND = 10; + + // User list rule operand is invalid. + INVALID_USER_LIST_LOGICAL_RULE_OPERAND = 11; + + // Name is already being used for another user list for the account. + NAME_ALREADY_USED = 12; + + // Name is required when creating a new conversion type. + NEW_CONVERSION_TYPE_NAME_REQUIRED = 13; + + // The given conversion type name has been used. + CONVERSION_TYPE_NAME_ALREADY_USED = 14; + + // Only an owner account may edit a user list. + OWNERSHIP_REQUIRED_FOR_SET = 15; + + // Creating user list without setting type in oneof user_list field, or + // creating/updating read-only user list types is not allowed. + USER_LIST_MUTATE_NOT_SUPPORTED = 16; + + // Rule is invalid. + INVALID_RULE = 17; + + // The specified date range is empty. + INVALID_DATE_RANGE = 27; + + // A UserList which is privacy sensitive or legal rejected cannot be mutated + // by external users. + CAN_NOT_MUTATE_SENSITIVE_USERLIST = 28; + + // Maximum number of rulebased user lists a customer can have. + MAX_NUM_RULEBASED_USERLISTS = 29; + + // BasicUserList's billable record field cannot be modified once it is set. + CANNOT_MODIFY_BILLABLE_RECORD_COUNT = 30; + + // crm_based_user_list.app_id field must be set when upload_key_type is + // MOBILE_ADVERTISING_ID. + APP_ID_NOT_SET = 31; + + // Name of the user list is reserved for system generated lists and cannot + // be used. + USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST = 32; + + // Advertiser needs to be on the allow-list to use remarketing lists created + // from advertiser uploaded data (e.g., Customer Match lists). + ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA = 37; + + // The provided rule_type is not supported for the user list. + RULE_TYPE_IS_NOT_SUPPORTED = 34; + + // Similar user list cannot be used as a logical user list operand. + CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND = 35; + + // Logical user list should not have a mix of CRM based user list and other + // types of lists in its rules. + CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS = 36; + } + + +} diff --git a/google/ads/googleads/v10/errors/youtube_video_registration_error.proto b/google/ads/googleads/v10/errors/youtube_video_registration_error.proto new file mode 100644 index 000000000..2e75a3b0f --- /dev/null +++ b/google/ads/googleads/v10/errors/youtube_video_registration_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "YoutubeVideoRegistrationErrorProto"; +option java_package = "com.google.ads.googleads.v10.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V10::Errors"; + +// Proto file describing YouTube video registration errors. + +// Container for enum describing YouTube video registration errors. +message YoutubeVideoRegistrationErrorEnum { + // Enum describing YouTube video registration errors. + enum YoutubeVideoRegistrationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Video to be registered wasn't found. + VIDEO_NOT_FOUND = 2; + + // Video to be registered is not accessible (e.g. private). + VIDEO_NOT_ACCESSIBLE = 3; + + // Video to be registered is not eligible (e.g. mature content). + VIDEO_NOT_ELIGIBLE = 4; + } + + +} diff --git a/google/ads/googleads/v10/googleads_gapic.yaml b/google/ads/googleads/v10/googleads_gapic.yaml new file mode 100644 index 000000000..743a20731 --- /dev/null +++ b/google/ads/googleads/v10/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.V10.Services + go: + package_name: google.golang.org/google/ads/googleads/v10/services + java: + package_name: com.google.ads.googleads.v10.services + nodejs: + package_name: v10.services + php: + package_name: Google\Ads\GoogleAds\V10\Services + python: + package_name: google.ads.googleads_v10.gapic.services + ruby: + package_name: Google::Ads::Googleads::V10::Services +interfaces: +- name: google.ads.googleads.v10.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/google/ads/googleads/v10/googleads_grpc_service_config.json b/google/ads/googleads/v10/googleads_grpc_service_config.json new file mode 100755 index 000000000..499de42f2 --- /dev/null +++ b/google/ads/googleads/v10/googleads_grpc_service_config.json @@ -0,0 +1,324 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.ads.googleads.v10.services.AccountBudgetProposalService" + }, + { + "service": "google.ads.googleads.v10.services.AccountLinkService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupAdLabelService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupAdService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupAssetService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupBidModifierService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupCriterionCustomizerService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupCriterionLabelService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupCriterionService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupCustomizerService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupExtensionSettingService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupFeedService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupLabelService" + }, + { + "service": "google.ads.googleads.v10.services.AdGroupService" + }, + { + "service": "google.ads.googleads.v10.services.AdParameterService" + }, + { + "service": "google.ads.googleads.v10.services.AdService" + }, + { + "service": "google.ads.googleads.v10.services.AssetGroupAssetService" + }, + { + "service": "google.ads.googleads.v10.services.AssetGroupListingGroupFilterService" + }, + { + "service": "google.ads.googleads.v10.services.AssetGroupService" + }, + { + "service": "google.ads.googleads.v10.services.AssetGroupSignalService" + }, + { + "service": "google.ads.googleads.v10.services.AssetService" + }, + { + "service": "google.ads.googleads.v10.services.AssetSetAssetService" + }, + { + "service": "google.ads.googleads.v10.services.AssetSetService" + }, + { + "service": "google.ads.googleads.v10.services.AudienceService" + }, + { + "service": "google.ads.googleads.v10.services.BatchJobService" + }, + { + "service": "google.ads.googleads.v10.services.BiddingDataExclusionService" + }, + { + "service": "google.ads.googleads.v10.services.BiddingSeasonalityAdjustmentService" + }, + { + "service": "google.ads.googleads.v10.services.BiddingStrategyService" + }, + { + "service": "google.ads.googleads.v10.services.BillingSetupService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignAssetService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignAssetSetService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignBidModifierService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignBudgetService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignConversionGoalService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignCriterionService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignCustomizerService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignDraftService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignExperimentService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignExtensionSettingService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignFeedService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignGroupService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignLabelService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignService" + }, + { + "service": "google.ads.googleads.v10.services.CampaignSharedSetService" + }, + { + "service": "google.ads.googleads.v10.services.ConversionActionService" + }, + { + "service": "google.ads.googleads.v10.services.ConversionAdjustmentUploadService" + }, + { + "service": "google.ads.googleads.v10.services.ConversionCustomVariableService" + }, + { + "service": "google.ads.googleads.v10.services.ConversionGoalCampaignConfigService" + }, + { + "service": "google.ads.googleads.v10.services.ConversionUploadService" + }, + { + "service": "google.ads.googleads.v10.services.ConversionValueRuleService" + }, + { + "service": "google.ads.googleads.v10.services.ConversionValueRuleSetService" + }, + { + "service": "google.ads.googleads.v10.services.CustomAudienceService" + }, + { + "service": "google.ads.googleads.v10.services.CustomConversionGoalService" + }, + { + "service": "google.ads.googleads.v10.services.CustomInterestService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerAssetService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerClientLinkService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerConversionGoalService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerCustomizerService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerExtensionSettingService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerFeedService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerLabelService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerManagerLinkService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerNegativeCriterionService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerUserAccessInvitationService" + }, + { + "service": "google.ads.googleads.v10.services.CustomerUserAccessService" + }, + { + "service": "google.ads.googleads.v10.services.CustomizerAttributeService" + }, + { + "service": "google.ads.googleads.v10.services.ExperimentArmService" + }, + { + "service": "google.ads.googleads.v10.services.ExperimentService" + }, + { + "service": "google.ads.googleads.v10.services.ExtensionFeedItemService" + }, + { + "service": "google.ads.googleads.v10.services.FeedItemService" + }, + { + "service": "google.ads.googleads.v10.services.FeedItemSetLinkService" + }, + { + "service": "google.ads.googleads.v10.services.FeedItemSetService" + }, + { + "service": "google.ads.googleads.v10.services.FeedItemTargetService" + }, + { + "service": "google.ads.googleads.v10.services.FeedMappingService" + }, + { + "service": "google.ads.googleads.v10.services.FeedService" + }, + { + "service": "google.ads.googleads.v10.services.GeoTargetConstantService" + }, + { + "service": "google.ads.googleads.v10.services.GoogleAdsFieldService" + }, + { + "service": "google.ads.googleads.v10.services.GoogleAdsService" + }, + { + "service": "google.ads.googleads.v10.services.InvoiceService" + }, + { + "service": "google.ads.googleads.v10.services.KeywordPlanAdGroupKeywordService" + }, + { + "service": "google.ads.googleads.v10.services.KeywordPlanAdGroupService" + }, + { + "service": "google.ads.googleads.v10.services.KeywordPlanCampaignKeywordService" + }, + { + "service": "google.ads.googleads.v10.services.KeywordPlanCampaignService" + }, + { + "service": "google.ads.googleads.v10.services.KeywordPlanIdeaService" + }, + { + "service": "google.ads.googleads.v10.services.KeywordPlanService" + }, + { + "service": "google.ads.googleads.v10.services.KeywordThemeConstantService" + }, + { + "service": "google.ads.googleads.v10.services.LabelService" + }, + { + "service": "google.ads.googleads.v10.services.MediaFileService" + }, + { + "service": "google.ads.googleads.v10.services.MerchantCenterLinkService" + }, + { + "service": "google.ads.googleads.v10.services.OfflineUserDataJobService" + }, + { + "service": "google.ads.googleads.v10.services.PaymentsAccountService" + }, + { + "service": "google.ads.googleads.v10.services.ReachPlanService" + }, + { + "service": "google.ads.googleads.v10.services.RecommendationService" + }, + { + "service": "google.ads.googleads.v10.services.RemarketingActionService" + }, + { + "service": "google.ads.googleads.v10.services.SharedCriterionService" + }, + { + "service": "google.ads.googleads.v10.services.SharedSetService" + }, + { + "service": "google.ads.googleads.v10.services.SmartCampaignSettingService" + }, + { + "service": "google.ads.googleads.v10.services.SmartCampaignSuggestService" + }, + { + "service": "google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService" + }, + { + "service": "google.ads.googleads.v10.services.UserDataService" + }, + { + "service": "google.ads.googleads.v10.services.UserListService" + } + ], + "timeout": "14400s", + "retryPolicy": { + "initialBackoff": "5s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE", + "DEADLINE_EXCEEDED" + ] + } + } + ] +} diff --git a/google/ads/googleads/v10/googleads_v10.yaml b/google/ads/googleads/v10/googleads_v10.yaml new file mode 100644 index 000000000..40a6933df --- /dev/null +++ b/google/ads/googleads/v10/googleads_v10.yaml @@ -0,0 +1,810 @@ +type: google.api.Service +config_version: 3 +name: googleads.googleapis.com +title: Google Ads API + +apis: +- name: google.ads.googleads.v10.services.AccountBudgetProposalService +- name: google.ads.googleads.v10.services.AccountLinkService +- name: google.ads.googleads.v10.services.AdGroupAdLabelService +- name: google.ads.googleads.v10.services.AdGroupAdService +- name: google.ads.googleads.v10.services.AdGroupAssetService +- name: google.ads.googleads.v10.services.AdGroupBidModifierService +- name: google.ads.googleads.v10.services.AdGroupCriterionCustomizerService +- name: google.ads.googleads.v10.services.AdGroupCriterionLabelService +- name: google.ads.googleads.v10.services.AdGroupCriterionService +- name: google.ads.googleads.v10.services.AdGroupCustomizerService +- name: google.ads.googleads.v10.services.AdGroupExtensionSettingService +- name: google.ads.googleads.v10.services.AdGroupFeedService +- name: google.ads.googleads.v10.services.AdGroupLabelService +- name: google.ads.googleads.v10.services.AdGroupService +- name: google.ads.googleads.v10.services.AdParameterService +- name: google.ads.googleads.v10.services.AdService +- name: google.ads.googleads.v10.services.AssetGroupAssetService +- name: google.ads.googleads.v10.services.AssetGroupListingGroupFilterService +- name: google.ads.googleads.v10.services.AssetGroupService +- name: google.ads.googleads.v10.services.AssetGroupSignalService +- name: google.ads.googleads.v10.services.AssetService +- name: google.ads.googleads.v10.services.AssetSetAssetService +- name: google.ads.googleads.v10.services.AssetSetService +- name: google.ads.googleads.v10.services.AudienceService +- name: google.ads.googleads.v10.services.BatchJobService +- name: google.ads.googleads.v10.services.BiddingDataExclusionService +- name: google.ads.googleads.v10.services.BiddingSeasonalityAdjustmentService +- name: google.ads.googleads.v10.services.BiddingStrategyService +- name: google.ads.googleads.v10.services.BillingSetupService +- name: google.ads.googleads.v10.services.CampaignAssetService +- name: google.ads.googleads.v10.services.CampaignAssetSetService +- name: google.ads.googleads.v10.services.CampaignBidModifierService +- name: google.ads.googleads.v10.services.CampaignBudgetService +- name: google.ads.googleads.v10.services.CampaignConversionGoalService +- name: google.ads.googleads.v10.services.CampaignCriterionService +- name: google.ads.googleads.v10.services.CampaignCustomizerService +- name: google.ads.googleads.v10.services.CampaignDraftService +- name: google.ads.googleads.v10.services.CampaignExperimentService +- name: google.ads.googleads.v10.services.CampaignExtensionSettingService +- name: google.ads.googleads.v10.services.CampaignFeedService +- name: google.ads.googleads.v10.services.CampaignGroupService +- name: google.ads.googleads.v10.services.CampaignLabelService +- name: google.ads.googleads.v10.services.CampaignService +- name: google.ads.googleads.v10.services.CampaignSharedSetService +- name: google.ads.googleads.v10.services.ConversionActionService +- name: google.ads.googleads.v10.services.ConversionAdjustmentUploadService +- name: google.ads.googleads.v10.services.ConversionCustomVariableService +- name: google.ads.googleads.v10.services.ConversionGoalCampaignConfigService +- name: google.ads.googleads.v10.services.ConversionUploadService +- name: google.ads.googleads.v10.services.ConversionValueRuleService +- name: google.ads.googleads.v10.services.ConversionValueRuleSetService +- name: google.ads.googleads.v10.services.CustomAudienceService +- name: google.ads.googleads.v10.services.CustomConversionGoalService +- name: google.ads.googleads.v10.services.CustomInterestService +- name: google.ads.googleads.v10.services.CustomerAssetService +- name: google.ads.googleads.v10.services.CustomerClientLinkService +- name: google.ads.googleads.v10.services.CustomerConversionGoalService +- name: google.ads.googleads.v10.services.CustomerCustomizerService +- name: google.ads.googleads.v10.services.CustomerExtensionSettingService +- name: google.ads.googleads.v10.services.CustomerFeedService +- name: google.ads.googleads.v10.services.CustomerLabelService +- name: google.ads.googleads.v10.services.CustomerManagerLinkService +- name: google.ads.googleads.v10.services.CustomerNegativeCriterionService +- name: google.ads.googleads.v10.services.CustomerService +- name: google.ads.googleads.v10.services.CustomerUserAccessInvitationService +- name: google.ads.googleads.v10.services.CustomerUserAccessService +- name: google.ads.googleads.v10.services.CustomizerAttributeService +- name: google.ads.googleads.v10.services.ExperimentArmService +- name: google.ads.googleads.v10.services.ExperimentService +- name: google.ads.googleads.v10.services.ExtensionFeedItemService +- name: google.ads.googleads.v10.services.FeedItemService +- name: google.ads.googleads.v10.services.FeedItemSetLinkService +- name: google.ads.googleads.v10.services.FeedItemSetService +- name: google.ads.googleads.v10.services.FeedItemTargetService +- name: google.ads.googleads.v10.services.FeedMappingService +- name: google.ads.googleads.v10.services.FeedService +- name: google.ads.googleads.v10.services.GeoTargetConstantService +- name: google.ads.googleads.v10.services.GoogleAdsFieldService +- name: google.ads.googleads.v10.services.GoogleAdsService +- name: google.ads.googleads.v10.services.InvoiceService +- name: google.ads.googleads.v10.services.KeywordPlanAdGroupKeywordService +- name: google.ads.googleads.v10.services.KeywordPlanAdGroupService +- name: google.ads.googleads.v10.services.KeywordPlanCampaignKeywordService +- name: google.ads.googleads.v10.services.KeywordPlanCampaignService +- name: google.ads.googleads.v10.services.KeywordPlanIdeaService +- name: google.ads.googleads.v10.services.KeywordPlanService +- name: google.ads.googleads.v10.services.KeywordThemeConstantService +- name: google.ads.googleads.v10.services.LabelService +- name: google.ads.googleads.v10.services.MediaFileService +- name: google.ads.googleads.v10.services.MerchantCenterLinkService +- name: google.ads.googleads.v10.services.OfflineUserDataJobService +- name: google.ads.googleads.v10.services.PaymentsAccountService +- name: google.ads.googleads.v10.services.ReachPlanService +- name: google.ads.googleads.v10.services.RecommendationService +- name: google.ads.googleads.v10.services.RemarketingActionService +- name: google.ads.googleads.v10.services.SharedCriterionService +- name: google.ads.googleads.v10.services.SharedSetService +- name: google.ads.googleads.v10.services.SmartCampaignSettingService +- name: google.ads.googleads.v10.services.SmartCampaignSuggestService +- name: google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService +- name: google.ads.googleads.v10.services.UserDataService +- name: google.ads.googleads.v10.services.UserListService + +types: +- name: google.ads.googleads.v10.errors.GoogleAdsFailure +- name: google.ads.googleads.v10.resources.BatchJob.BatchJobMetadata +- name: google.ads.googleads.v10.services.CreateCampaignExperimentMetadata +- name: google.ads.googleads.v10.services.PromoteExperimentMetadata +- name: google.ads.googleads.v10.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.v10.services.AccountBudgetProposalService.MutateAccountBudgetProposal + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AccountLinkService.CreateAccountLink + deadline: 600.0 + - selector: google.ads.googleads.v10.services.AccountLinkService.MutateAccountLink + deadline: 600.0 + - selector: google.ads.googleads.v10.services.AdGroupAdLabelService.MutateAdGroupAdLabels + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupAdService.MutateAdGroupAds + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupAssetService.MutateAdGroupAssets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupBidModifierService.MutateAdGroupBidModifiers + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupCriterionService.MutateAdGroupCriteria + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupCustomizerService.MutateAdGroupCustomizers + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupFeedService.MutateAdGroupFeeds + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupLabelService.MutateAdGroupLabels + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdGroupService.MutateAdGroups + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdParameterService.MutateAdParameters + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdService.GetAd + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AdService.MutateAds + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AssetGroupAssetService.MutateAssetGroupAssets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AssetGroupService.MutateAssetGroups + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AssetGroupSignalService.MutateAssetGroupSignals + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AssetService.MutateAssets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AssetSetAssetService.MutateAssetSetAssets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AssetSetService.MutateAssetSets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.AudienceService.MutateAudiences + deadline: 600.0 + - selector: 'google.ads.googleads.v10.services.BatchJobService.*' + deadline: 60.0 + - selector: google.ads.googleads.v10.services.BiddingDataExclusionService.MutateBiddingDataExclusions + deadline: 60.0 + - selector: google.ads.googleads.v10.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments + deadline: 60.0 + - selector: google.ads.googleads.v10.services.BiddingStrategyService.MutateBiddingStrategies + deadline: 60.0 + - selector: google.ads.googleads.v10.services.BillingSetupService.MutateBillingSetup + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignAssetService.MutateCampaignAssets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignAssetSetService.MutateCampaignAssetSets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignBidModifierService.MutateCampaignBidModifiers + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignBudgetService.MutateCampaignBudgets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignConversionGoalService.MutateCampaignConversionGoals + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignCriterionService.MutateCampaignCriteria + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignCustomizerService.MutateCampaignCustomizers + deadline: 60.0 + - selector: 'google.ads.googleads.v10.services.CampaignDraftService.*' + deadline: 60.0 + - selector: 'google.ads.googleads.v10.services.CampaignExperimentService.*' + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignFeedService.MutateCampaignFeeds + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignGroupService.MutateCampaignGroups + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignLabelService.MutateCampaignLabels + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignService.MutateCampaigns + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CampaignSharedSetService.MutateCampaignSharedSets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.ConversionActionService.MutateConversionActions + deadline: 60.0 + - selector: google.ads.googleads.v10.services.ConversionAdjustmentUploadService.UploadConversionAdjustments + deadline: 600.0 + - selector: google.ads.googleads.v10.services.ConversionCustomVariableService.MutateConversionCustomVariables + deadline: 60.0 + - selector: google.ads.googleads.v10.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs + deadline: 60.0 + - selector: google.ads.googleads.v10.services.ConversionUploadService.UploadCallConversions + deadline: 600.0 + - selector: google.ads.googleads.v10.services.ConversionUploadService.UploadClickConversions + deadline: 600.0 + - selector: google.ads.googleads.v10.services.ConversionValueRuleService.MutateConversionValueRules + deadline: 60.0 + - selector: google.ads.googleads.v10.services.ConversionValueRuleSetService.MutateConversionValueRuleSets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomAudienceService.MutateCustomAudiences + deadline: 600.0 + - selector: google.ads.googleads.v10.services.CustomConversionGoalService.MutateCustomConversionGoals + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomInterestService.MutateCustomInterests + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerAssetService.MutateCustomerAssets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerClientLinkService.MutateCustomerClientLink + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerConversionGoalService.MutateCustomerConversionGoals + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerCustomizerService.MutateCustomerCustomizers + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerFeedService.MutateCustomerFeeds + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerLabelService.MutateCustomerLabels + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerManagerLinkService.MoveManagerLink + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerManagerLinkService.MutateCustomerManagerLink + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria + deadline: 60.0 + - selector: 'google.ads.googleads.v10.services.CustomerService.*' + deadline: 60.0 + - selector: google.ads.googleads.v10.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation + deadline: 600.0 + - selector: google.ads.googleads.v10.services.CustomerUserAccessService.MutateCustomerUserAccess + deadline: 600.0 + - selector: google.ads.googleads.v10.services.CustomizerAttributeService.MutateCustomizerAttributes + deadline: 60.0 + - selector: google.ads.googleads.v10.services.ExperimentArmService.MutateExperimentArms + deadline: 60.0 + - selector: 'google.ads.googleads.v10.services.ExperimentService.*' + deadline: 60.0 + - selector: google.ads.googleads.v10.services.ExtensionFeedItemService.MutateExtensionFeedItems + deadline: 60.0 + - selector: google.ads.googleads.v10.services.FeedItemService.MutateFeedItems + deadline: 60.0 + - selector: google.ads.googleads.v10.services.FeedItemSetLinkService.MutateFeedItemSetLinks + deadline: 60.0 + - selector: google.ads.googleads.v10.services.FeedItemSetService.MutateFeedItemSets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.FeedItemTargetService.MutateFeedItemTargets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.FeedMappingService.MutateFeedMappings + deadline: 60.0 + - selector: google.ads.googleads.v10.services.FeedService.MutateFeeds + deadline: 60.0 + - selector: google.ads.googleads.v10.services.GeoTargetConstantService.SuggestGeoTargetConstants + deadline: 60.0 + - selector: google.ads.googleads.v10.services.GoogleAdsFieldService.GetGoogleAdsField + deadline: 600.0 + - selector: google.ads.googleads.v10.services.GoogleAdsFieldService.SearchGoogleAdsFields + deadline: 600.0 + - selector: google.ads.googleads.v10.services.GoogleAdsService.Mutate + deadline: 600.0 + - selector: google.ads.googleads.v10.services.GoogleAdsService.Search + deadline: 7200.0 + - selector: google.ads.googleads.v10.services.GoogleAdsService.SearchStream + deadline: 7200.0 + - selector: google.ads.googleads.v10.services.InvoiceService.ListInvoices + deadline: 60.0 + - selector: google.ads.googleads.v10.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords + deadline: 60.0 + - selector: google.ads.googleads.v10.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups + deadline: 60.0 + - selector: google.ads.googleads.v10.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords + deadline: 60.0 + - selector: google.ads.googleads.v10.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns + deadline: 60.0 + - selector: google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics + deadline: 600.0 + - selector: google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordIdeas + deadline: 600.0 + - selector: 'google.ads.googleads.v10.services.KeywordPlanService.*' + deadline: 600.0 + - selector: google.ads.googleads.v10.services.KeywordPlanService.MutateKeywordPlans + deadline: 60.0 + - selector: google.ads.googleads.v10.services.KeywordThemeConstantService.SuggestKeywordThemeConstants + deadline: 60.0 + - selector: google.ads.googleads.v10.services.LabelService.MutateLabels + deadline: 60.0 + - selector: google.ads.googleads.v10.services.MediaFileService.MutateMediaFiles + deadline: 60.0 + - selector: 'google.ads.googleads.v10.services.MerchantCenterLinkService.*' + deadline: 60.0 + - selector: 'google.ads.googleads.v10.services.OfflineUserDataJobService.*' + deadline: 600.0 + - selector: google.ads.googleads.v10.services.PaymentsAccountService.ListPaymentsAccounts + deadline: 60.0 + - selector: 'google.ads.googleads.v10.services.ReachPlanService.*' + deadline: 600.0 + - selector: google.ads.googleads.v10.services.RecommendationService.ApplyRecommendation + deadline: 600.0 + - selector: google.ads.googleads.v10.services.RecommendationService.DismissRecommendation + deadline: 600.0 + - selector: google.ads.googleads.v10.services.RemarketingActionService.MutateRemarketingActions + deadline: 60.0 + - selector: google.ads.googleads.v10.services.SharedCriterionService.MutateSharedCriteria + deadline: 60.0 + - selector: google.ads.googleads.v10.services.SharedSetService.MutateSharedSets + deadline: 60.0 + - selector: google.ads.googleads.v10.services.SmartCampaignSettingService.MutateSmartCampaignSettings + deadline: 60.0 + - selector: 'google.ads.googleads.v10.services.SmartCampaignSuggestService.*' + deadline: 60.0 + - selector: google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId + deadline: 600.0 + - selector: google.ads.googleads.v10.services.UserDataService.UploadUserData + deadline: 600.0 + - selector: google.ads.googleads.v10.services.UserListService.MutateUserLists + deadline: 60.0 + - selector: 'google.longrunning.Operations.*' + deadline: 60.0 + +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v10/{name=customers/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v10/{name=customers/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v10/{name=customers/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v10/{name=customers/*/operations}' + - selector: google.longrunning.Operations.WaitOperation + post: '/v10/{name=customers/*/operations/*}:wait' + body: '*' + +authentication: + rules: + - selector: google.ads.googleads.v10.services.AccountBudgetProposalService.MutateAccountBudgetProposal + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AccountLinkService.CreateAccountLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AccountLinkService.MutateAccountLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupAdLabelService.MutateAdGroupAdLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupAdService.MutateAdGroupAds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupAssetService.MutateAdGroupAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupBidModifierService.MutateAdGroupBidModifiers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupCriterionService.MutateAdGroupCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupCustomizerService.MutateAdGroupCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupFeedService.MutateAdGroupFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupLabelService.MutateAdGroupLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdGroupService.MutateAdGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdParameterService.MutateAdParameters + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdService.GetAd + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AdService.MutateAds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AssetGroupAssetService.MutateAssetGroupAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AssetGroupService.MutateAssetGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AssetGroupSignalService.MutateAssetGroupSignals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AssetService.MutateAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AssetSetAssetService.MutateAssetSetAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AssetSetService.MutateAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.AudienceService.MutateAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.BatchJobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.BiddingDataExclusionService.MutateBiddingDataExclusions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.BiddingStrategyService.MutateBiddingStrategies + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.BillingSetupService.MutateBillingSetup + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignAssetService.MutateCampaignAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignAssetSetService.MutateCampaignAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignBidModifierService.MutateCampaignBidModifiers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignBudgetService.MutateCampaignBudgets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignConversionGoalService.MutateCampaignConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignCriterionService.MutateCampaignCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignCustomizerService.MutateCampaignCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.CampaignDraftService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.CampaignExperimentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignFeedService.MutateCampaignFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignGroupService.MutateCampaignGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignLabelService.MutateCampaignLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignService.MutateCampaigns + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CampaignSharedSetService.MutateCampaignSharedSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ConversionActionService.MutateConversionActions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ConversionAdjustmentUploadService.UploadConversionAdjustments + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ConversionCustomVariableService.MutateConversionCustomVariables + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ConversionUploadService.UploadCallConversions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ConversionUploadService.UploadClickConversions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ConversionValueRuleService.MutateConversionValueRules + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ConversionValueRuleSetService.MutateConversionValueRuleSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomAudienceService.MutateCustomAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomConversionGoalService.MutateCustomConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomInterestService.MutateCustomInterests + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerAssetService.MutateCustomerAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerClientLinkService.MutateCustomerClientLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerConversionGoalService.MutateCustomerConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerCustomizerService.MutateCustomerCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerFeedService.MutateCustomerFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerLabelService.MutateCustomerLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerManagerLinkService.MoveManagerLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerManagerLinkService.MutateCustomerManagerLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.CustomerService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomerUserAccessService.MutateCustomerUserAccess + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.CustomizerAttributeService.MutateCustomizerAttributes + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ExperimentArmService.MutateExperimentArms + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.ExperimentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ExtensionFeedItemService.MutateExtensionFeedItems + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.FeedItemService.MutateFeedItems + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.FeedItemSetLinkService.MutateFeedItemSetLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.FeedItemSetService.MutateFeedItemSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.FeedItemTargetService.MutateFeedItemTargets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.FeedMappingService.MutateFeedMappings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.FeedService.MutateFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.GeoTargetConstantService.SuggestGeoTargetConstants + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.GoogleAdsFieldService.GetGoogleAdsField + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.GoogleAdsFieldService.SearchGoogleAdsFields + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.GoogleAdsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.InvoiceService.ListInvoices + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordIdeas + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.KeywordPlanService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.KeywordThemeConstantService.SuggestKeywordThemeConstants + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.LabelService.MutateLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.MediaFileService.MutateMediaFiles + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.MerchantCenterLinkService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.OfflineUserDataJobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.PaymentsAccountService.ListPaymentsAccounts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.ReachPlanService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.RecommendationService.ApplyRecommendation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.RecommendationService.DismissRecommendation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.RemarketingActionService.MutateRemarketingActions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.SharedCriterionService.MutateSharedCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.SharedSetService.MutateSharedSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.SmartCampaignSettingService.MutateSmartCampaignSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v10.services.SmartCampaignSuggestService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.services.UserDataService.UploadUserData + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v10.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/google/ads/googleads/v10/resources/BUILD.bazel b/google/ads/googleads/v10/resources/BUILD.bazel new file mode 100644 index 000000000..26ca619d3 --- /dev/null +++ b/google/ads/googleads/v10/resources/BUILD.bazel @@ -0,0 +1,97 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports +# subpackages. +proto_library( + name = "resources_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/ads/googleads/v10/common:common_proto", + "//google/ads/googleads/v10/enums:enums_proto", + "//google/ads/googleads/v10/errors:errors_proto", + "//google/api:annotations_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", +) + +java_proto_library( + name = "resources_java_proto", + deps = [":resources_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", +) + +csharp_proto_library( + name = "resources_csharp_proto", + deps = [":resources_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_proto_library", +) + +ruby_proto_library( + name = "resources_ruby_proto", + deps = [":resources_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_proto_library", +) + +py_proto_library( + name = "resources_py_proto", + deps = [":resources_proto"], +) diff --git a/google/ads/googleads/v10/resources/accessible_bidding_strategy.proto b/google/ads/googleads/v10/resources/accessible_bidding_strategy.proto new file mode 100644 index 000000000..1f53b84a5 --- /dev/null +++ b/google/ads/googleads/v10/resources/accessible_bidding_strategy.proto @@ -0,0 +1,171 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v10/enums/target_impression_share_location.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccessibleBiddingStrategyProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::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: "googleads.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]; + } + + // 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.googleads.v10.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The desired fraction of ads to be shown in the targeted location in + // micros. E.g. 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 desired 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: "googleads.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.googleads.v10.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 desired + // 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/google/ads/googleads/v10/resources/account_budget.proto b/google/ads/googleads/v10/resources/account_budget.proto new file mode 100644 index 000000000..458df6d6f --- /dev/null +++ b/google/ads/googleads/v10/resources/account_budget.proto @@ -0,0 +1,251 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/account_budget_proposal_type.proto"; +import "google/ads/googleads/v10/enums/account_budget_status.proto"; +import "google/ads/googleads/v10/enums/spending_limit_type.proto"; +import "google/ads/googleads/v10/enums/time_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the AccountBudget resource. + +// An account-level budget. It contains information about the budget itself, +// as well as the most recently approved changes to the budget and proposed +// changes that are pending approval. The proposed changes that are pending +// approval, if any, are found in 'pending_proposal'. Effective details about +// the budget are found in fields prefixed 'approved_', 'adjusted_' and those +// without a prefix. Since some effective details may differ from what the user +// had originally requested (e.g. spending limit), these differences are +// juxtaposed via 'proposed_', 'approved_', and possibly 'adjusted_' fields. +// +// This resource is mutated using AccountBudgetProposal and cannot be mutated +// directly. A budget may have at most one pending proposal at any given time. +// It is read through pending_proposal. +// +// Once approved, a budget may be subject to adjustments, such as credit +// adjustments. Adjustments create differences between the 'approved' and +// 'adjusted' fields, which would otherwise be identical. +message AccountBudget { + option (google.api.resource) = { + type: "googleads.googleapis.com/AccountBudget" + pattern: "customers/{customer_id}/accountBudgets/{account_budget_id}" + }; + + // A pending proposal associated with the enclosing account-level budget, + // if applicable. + message PendingAccountBudgetProposal { + // Output only. The resource name of the proposal. + // AccountBudgetProposal resource names have the form: + // + // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` + optional string account_budget_proposal = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + } + ]; + + // Output only. The type of this proposal, e.g. END to end the budget associated + // with this proposal. + google.ads.googleads.v10.enums.AccountBudgetProposalTypeEnum.AccountBudgetProposalType proposal_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name to assign to the account-level budget. + optional string name = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The start time in yyyy-MM-dd HH:mm:ss format. + optional string start_date_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A purchase order number is a value that helps users reference this budget + // in their monthly invoices. + optional string purchase_order_number = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Notes associated with this budget. + optional string notes = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this account-level budget proposal was created. + // Formatted as yyyy-MM-dd HH:mm:ss. + optional string creation_date_time = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The end time of the account-level budget. + oneof end_time { + // Output only. The end time in yyyy-MM-dd HH:mm:ss format. + string end_date_time = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The end time as a well-defined type, e.g. FOREVER. + google.ads.googleads.v10.enums.TimeTypeEnum.TimeType end_time_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The spending limit. + oneof spending_limit { + // Output only. The spending limit in micros. One million is equivalent to + // one unit. + int64 spending_limit_micros = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The spending limit as a well-defined type, e.g. INFINITE. + google.ads.googleads.v10.enums.SpendingLimitTypeEnum.SpendingLimitType spending_limit_type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + } + + // Output only. The resource name of the account-level budget. + // AccountBudget resource names have the form: + // + // `customers/{customer_id}/accountBudgets/{account_budget_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudget" + } + ]; + + // Output only. The ID of the account-level budget. + optional int64 id = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the billing setup associated with this account-level + // budget. BillingSetup resource names have the form: + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + optional string billing_setup = 24 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + } + ]; + + // Output only. The status of this account-level budget. + google.ads.googleads.v10.enums.AccountBudgetStatusEnum.AccountBudgetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the account-level budget. + optional string name = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The proposed start time of the account-level budget in + // yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed, + // this is the time of request. + optional string proposed_start_date_time = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss + // format. + // + // For example, if a new budget is approved after the proposed start time, + // the approved start time is the time of approval. + optional string approved_start_date_time = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total adjustments amount. + // + // An example of an adjustment is courtesy credits. + int64 total_adjustments_micros = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The value of Ads that have been served, in micros. + // + // This includes overdelivery costs, in which case a credit might be + // automatically applied to the budget (see total_adjustments_micros). + int64 amount_served_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A purchase order number is a value that helps users reference this budget + // in their monthly invoices. + optional string purchase_order_number = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Notes associated with the budget. + optional string notes = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pending proposal to modify this budget, if applicable. + PendingAccountBudgetProposal pending_proposal = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The proposed end time of the account-level budget. + oneof proposed_end_time { + // Output only. The proposed end time in yyyy-MM-dd HH:mm:ss format. + string proposed_end_date_time = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The proposed end time as a well-defined type, e.g. FOREVER. + google.ads.googleads.v10.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The approved end time of the account-level budget. + // + // For example, if a budget's end time is updated and the proposal is approved + // after the proposed end time, the approved end time is the time of approval. + oneof approved_end_time { + // Output only. The approved end time in yyyy-MM-dd HH:mm:ss format. + string approved_end_date_time = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved end time as a well-defined type, e.g. FOREVER. + google.ads.googleads.v10.enums.TimeTypeEnum.TimeType approved_end_time_type = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The proposed spending limit. + oneof proposed_spending_limit { + // Output only. The proposed spending limit in micros. One million is equivalent to + // one unit. + int64 proposed_spending_limit_micros = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The proposed spending limit as a well-defined type, e.g. INFINITE. + google.ads.googleads.v10.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The approved spending limit. + // + // For example, if the amount already spent by the account exceeds the + // proposed spending limit at the time the proposal is approved, the approved + // spending limit is set to the amount already spent. + oneof approved_spending_limit { + // Output only. The approved spending limit in micros. One million is equivalent to + // one unit. This will only be populated if the proposed spending limit + // is finite, and will always be greater than or equal to the + // proposed spending limit. + int64 approved_spending_limit_micros = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved spending limit as a well-defined type, e.g. INFINITE. This + // will only be populated if the approved spending limit is INFINITE. + google.ads.googleads.v10.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The spending limit after adjustments have been applied. Adjustments are + // stored in total_adjustments_micros. + // + // This value has the final say on how much the account is allowed to spend. + oneof adjusted_spending_limit { + // Output only. The adjusted spending limit in micros. One million is equivalent to + // one unit. + // + // If the approved spending limit is finite, the adjusted + // spending limit may vary depending on the types of adjustments applied + // to this budget, if applicable. + // + // The different kinds of adjustments are described here: + // https://support.google.com/google-ads/answer/1704323 + // + // For example, a debit adjustment reduces how much the account is + // allowed to spend. + int64 adjusted_spending_limit_micros = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The adjusted spending limit as a well-defined type, e.g. 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.v10.enums.SpendingLimitTypeEnum.SpendingLimitType adjusted_spending_limit_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/account_budget_proposal.proto b/google/ads/googleads/v10/resources/account_budget_proposal.proto new file mode 100644 index 000000000..ff6ad62ee --- /dev/null +++ b/google/ads/googleads/v10/resources/account_budget_proposal.proto @@ -0,0 +1,159 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/account_budget_proposal_status.proto"; +import "google/ads/googleads/v10/enums/account_budget_proposal_type.proto"; +import "google/ads/googleads/v10/enums/spending_limit_type.proto"; +import "google/ads/googleads/v10/enums/time_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the AccountBudgetProposal resource. + +// An account-level budget proposal. +// +// All fields prefixed with 'proposed' may not necessarily be applied directly. +// For example, proposed spending limits may be adjusted before their +// application. This is true if the 'proposed' field has an 'approved' +// counterpart, e.g. spending limits. +// +// Please note that the proposal type (proposal_type) changes which fields are +// required and which must remain empty. +message AccountBudgetProposal { + option (google.api.resource) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + pattern: "customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}" + }; + + // Immutable. The resource name of the proposal. + // AccountBudgetProposal resource names have the form: + // + // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + } + ]; + + // Output only. The ID of the proposal. + optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The resource name of the billing setup associated with this proposal. + optional string billing_setup = 26 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + } + ]; + + // Immutable. The resource name of the account-level budget associated with this + // proposal. + optional string account_budget = 27 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudget" + } + ]; + + // Immutable. The type of this proposal, e.g. END to end the budget associated with this + // proposal. + google.ads.googleads.v10.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.v10.enums.AccountBudgetProposalStatusEnum.AccountBudgetProposalStatus status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The name to assign to the account-level budget. + optional string proposed_name = 28 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format. + optional string approved_start_date_time = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. A purchase order number is a value that enables the user to help them + // reference this budget in their monthly invoices. + optional string proposed_purchase_order_number = 35 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Notes associated with this budget. + optional string proposed_notes = 36 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The date time when this account-level budget proposal was created, which is + // not the same as its approval date time, if applicable. + optional string creation_date_time = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date time when this account-level budget was approved, if applicable. + optional string approval_date_time = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The proposed start date time of the account-level budget, which cannot be + // in the past. + oneof proposed_start_time { + // Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format. + string proposed_start_date_time = 29 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The proposed start date time as a well-defined type, e.g. NOW. + google.ads.googleads.v10.enums.TimeTypeEnum.TimeType proposed_start_time_type = 7 [(google.api.field_behavior) = IMMUTABLE]; + } + + // The proposed end date time of the account-level budget, which cannot be in + // the past. + oneof proposed_end_time { + // Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format. + string proposed_end_date_time = 31 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The proposed end date time as a well-defined type, e.g. FOREVER. + google.ads.googleads.v10.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = IMMUTABLE]; + } + + // The approved end date time of the account-level budget. + oneof approved_end_time { + // Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format. + string approved_end_date_time = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved end date time as a well-defined type, e.g. FOREVER. + google.ads.googleads.v10.enums.TimeTypeEnum.TimeType approved_end_time_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The proposed spending limit. + oneof proposed_spending_limit { + // Immutable. The proposed spending limit in micros. One million is equivalent to + // one unit. + int64 proposed_spending_limit_micros = 33 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The proposed spending limit as a well-defined type, e.g. INFINITE. + google.ads.googleads.v10.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 11 [(google.api.field_behavior) = IMMUTABLE]; + } + + // The approved spending limit. + oneof approved_spending_limit { + // Output only. The approved spending limit in micros. One million is equivalent to + // one unit. + int64 approved_spending_limit_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved spending limit as a well-defined type, e.g. INFINITE. + google.ads.googleads.v10.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/account_link.proto b/google/ads/googleads/v10/resources/account_link.proto new file mode 100644 index 000000000..0d1370954 --- /dev/null +++ b/google/ads/googleads/v10/resources/account_link.proto @@ -0,0 +1,133 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/account_link_status.proto"; +import "google/ads/googleads/v10/enums/linked_account_type.proto"; +import "google/ads/googleads/v10/enums/mobile_app_vendor.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccountLinkProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Represents the data sharing connection between a Google Ads account and +// another account +message AccountLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/AccountLink" + pattern: "customers/{customer_id}/accountLinks/{account_link_id}" + }; + + // Immutable. Resource name of the account link. + // AccountLink resource names have the form: + // `customers/{customer_id}/accountLinks/{account_link_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountLink" + } + ]; + + // Output only. The ID of the link. + // This field is read only. + optional int64 account_link_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The status of the link. + google.ads.googleads.v10.enums.AccountLinkStatusEnum.AccountLinkStatus status = 3; + + // Output only. The type of the linked account. + google.ads.googleads.v10.enums.LinkedAccountTypeEnum.LinkedAccountType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // An account linked to this Google Ads account. + oneof linked_account { + // 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]; + } +} + +// The identifiers of a Third Party App Analytics Link. +message ThirdPartyAppAnalyticsLinkIdentifier { + // Immutable. The ID of the app analytics provider. + // 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. + optional int64 app_analytics_provider_id = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A string that uniquely identifies a mobile application from which the data + // was collected to the Google Ads API. For iOS, the ID string is the 9 digit + // string that appears at the end of an App Store URL (e.g., "422689480" for + // "Gmail" whose App Store link is + // https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For + // Android, the ID string is the application's package name (e.g., + // "com.google.android.gm" for "Gmail" given Google Play link + // https://play.google.com/store/apps/details?id=com.google.android.gm) + // 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. + optional string app_id = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The vendor of the app. + // 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.v10.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" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/ad.proto b/google/ads/googleads/v10/resources/ad.proto new file mode 100644 index 000000000..7f2a6e610 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad.proto @@ -0,0 +1,196 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/ad_type_infos.proto"; +import "google/ads/googleads/v10/common/custom_parameter.proto"; +import "google/ads/googleads/v10/common/final_app_url.proto"; +import "google/ads/googleads/v10/common/url_collection.proto"; +import "google/ads/googleads/v10/enums/ad_type.proto"; +import "google/ads/googleads/v10/enums/device.proto"; +import "google/ads/googleads/v10/enums/system_managed_entity_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad type. + +// An ad. +message Ad { + option (google.api.resource) = { + type: "googleads.googleapis.com/Ad" + pattern: "customers/{customer_id}/ads/{ad_id}" + }; + + // Immutable. The resource name of the ad. + // Ad resource names have the form: + // + // `customers/{customer_id}/ads/{ad_id}` + string resource_name = 37 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Ad" + } + ]; + + // Output only. The ID of the ad. + optional int64 id = 40 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The list of possible final URLs after all cross-domain redirects for the + // ad. + repeated string final_urls = 41; + + // A list of final app URLs that will be used on mobile if the user has the + // specific app installed. + repeated google.ads.googleads.v10.common.FinalAppUrl final_app_urls = 35; + + // The list of possible final mobile URLs after all cross-domain redirects + // for the ad. + repeated string final_mobile_urls = 42; + + // The URL template for constructing a tracking URL. + optional string tracking_url_template = 43; + + // The suffix to use when constructing a final URL. + optional string final_url_suffix = 44; + + // 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, please use url custom parameter operations. + repeated google.ads.googleads.v10.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.v10.enums.AdTypeEnum.AdType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates if this ad was automatically added by Google Ads and not by a + // user. For example, this could happen when ads are automatically created as + // suggestions for new ads based on knowledge of how existing ads are + // performing. + optional bool added_by_google_ads = 46 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The device preference for the ad. You can only specify a preference for + // mobile devices. When this preference is set the ad will be preferred over + // other ads when being displayed on a mobile device. The ad can still be + // displayed on other device types, e.g. 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.v10.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.v10.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 name + // field is currently only supported for DisplayUploadAd, ImageAd, + // ShoppingComparisonListingAd and VideoAd. + optional string name = 47 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. If this ad is system managed, then this field will indicate the source. + // This field is read-only. + google.ads.googleads.v10.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.v10.common.TextAdInfo text_ad = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Details pertaining to an expanded text ad. + google.ads.googleads.v10.common.ExpandedTextAdInfo expanded_text_ad = 7; + + // Details pertaining to a call ad. + google.ads.googleads.v10.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.v10.common.ExpandedDynamicSearchAdInfo expanded_dynamic_search_ad = 14 [(google.api.field_behavior) = IMMUTABLE]; + + // Details pertaining to a hotel ad. + google.ads.googleads.v10.common.HotelAdInfo hotel_ad = 15; + + // Details pertaining to a Smart Shopping ad. + google.ads.googleads.v10.common.ShoppingSmartAdInfo shopping_smart_ad = 17; + + // Details pertaining to a Shopping product ad. + google.ads.googleads.v10.common.ShoppingProductAdInfo shopping_product_ad = 18; + + // Immutable. Details pertaining to a Gmail ad. + google.ads.googleads.v10.common.GmailAdInfo gmail_ad = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Details pertaining to an Image ad. + google.ads.googleads.v10.common.ImageAdInfo image_ad = 22 [(google.api.field_behavior) = IMMUTABLE]; + + // Details pertaining to a Video ad. + google.ads.googleads.v10.common.VideoAdInfo video_ad = 24; + + // Details pertaining to a Video responsive ad. + google.ads.googleads.v10.common.VideoResponsiveAdInfo video_responsive_ad = 39; + + // Details pertaining to a responsive search ad. + google.ads.googleads.v10.common.ResponsiveSearchAdInfo responsive_search_ad = 25; + + // Details pertaining to a legacy responsive display ad. + google.ads.googleads.v10.common.LegacyResponsiveDisplayAdInfo legacy_responsive_display_ad = 28; + + // Details pertaining to an app ad. + google.ads.googleads.v10.common.AppAdInfo app_ad = 29; + + // Immutable. Details pertaining to a legacy app install ad. + google.ads.googleads.v10.common.LegacyAppInstallAdInfo legacy_app_install_ad = 30 [(google.api.field_behavior) = IMMUTABLE]; + + // Details pertaining to a responsive display ad. + google.ads.googleads.v10.common.ResponsiveDisplayAdInfo responsive_display_ad = 31; + + // Details pertaining to a local ad. + google.ads.googleads.v10.common.LocalAdInfo local_ad = 32; + + // Details pertaining to a display upload ad. + google.ads.googleads.v10.common.DisplayUploadAdInfo display_upload_ad = 33; + + // Details pertaining to an app engagement ad. + google.ads.googleads.v10.common.AppEngagementAdInfo app_engagement_ad = 34; + + // Details pertaining to a Shopping Comparison Listing ad. + google.ads.googleads.v10.common.ShoppingComparisonListingAdInfo shopping_comparison_listing_ad = 36; + + // Details pertaining to a Smart campaign ad. + google.ads.googleads.v10.common.SmartCampaignAdInfo smart_campaign_ad = 48; + + // Details pertaining to an app pre-registration ad. + google.ads.googleads.v10.common.AppPreRegistrationAdInfo app_pre_registration_ad = 50; + + // Details pertaining to a discovery multi asset ad. + google.ads.googleads.v10.common.DiscoveryMultiAssetAdInfo discovery_multi_asset_ad = 51; + + // Details pertaining to a discovery carousel ad. + google.ads.googleads.v10.common.DiscoveryCarouselAdInfo discovery_carousel_ad = 52; + } +} diff --git a/google/ads/googleads/v10/resources/ad_group.proto b/google/ads/googleads/v10/resources/ad_group.proto new file mode 100644 index 000000000..19f483735 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group.proto @@ -0,0 +1,201 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/custom_parameter.proto"; +import "google/ads/googleads/v10/common/explorer_auto_optimizer_setting.proto"; +import "google/ads/googleads/v10/common/targeting_setting.proto"; +import "google/ads/googleads/v10/enums/ad_group_ad_rotation_mode.proto"; +import "google/ads/googleads/v10/enums/ad_group_status.proto"; +import "google/ads/googleads/v10/enums/ad_group_type.proto"; +import "google/ads/googleads/v10/enums/asset_field_type.proto"; +import "google/ads/googleads/v10/enums/bidding_source.proto"; +import "google/ads/googleads/v10/enums/targeting_dimension.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group resource. + +// An ad group. +message AdGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroup" + pattern: "customers/{customer_id}/adGroups/{ad_group_id}" + }; + + // Settings for the audience targeting. + message AudienceSetting { + // Immutable. If true, this ad group uses an Audience resource for audience targeting. + // If false, this ad group may use audience segment criteria instead. + bool use_audience_grouped = 1 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Immutable. The resource name of the ad group. + // Ad group resource names have the form: + // + // `customers/{customer_id}/adGroups/{ad_group_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. The ID of the ad group. + optional int64 id = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the ad group. + // + // This field is required and should not be empty when creating new ad + // groups. + // + // It must contain fewer than 255 UTF-8 full-width characters. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + optional string name = 35; + + // The status of the ad group. + google.ads.googleads.v10.enums.AdGroupStatusEnum.AdGroupStatus status = 5; + + // Immutable. The type of the ad group. + google.ads.googleads.v10.enums.AdGroupTypeEnum.AdGroupType type = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // The ad rotation mode of the ad group. + google.ads.googleads.v10.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode ad_rotation_mode = 22; + + // Output only. For draft or experiment ad groups, this field is the resource name of the + // base ad group from which this ad group was created. If a draft or + // experiment ad group does not have a base ad group, then this field is null. + // + // For base ad groups, this field equals the ad group resource name. + // + // This field is read-only. + optional string base_ad_group = 36 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // The URL template for constructing a tracking URL. + optional string tracking_url_template = 37; + + // 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.v10.common.CustomParameter url_custom_parameters = 6; + + // Immutable. The campaign to which the ad group belongs. + optional string campaign = 38 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The maximum CPC (cost-per-click) bid. + optional int64 cpc_bid_micros = 39; + + // Output only. Value will be same as that of the CPC (cost-per-click) bid value when the + // bidding strategy is one of manual cpc, enhanced cpc, page one promoted or + // target outrank share, otherwise the value will be null. + optional int64 effective_cpc_bid_micros = 57 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The maximum CPM (cost-per-thousand viewable impressions) bid. + optional int64 cpm_bid_micros = 40; + + // The target CPA (cost-per-acquisition). If the ad group's campaign + // bidding strategy is TargetCpa or MaximizeConversions (with its target_cpa + // field set), then this field overrides the target CPA specified in the + // campaign's bidding strategy. + // Otherwise, this value is ignored. + optional int64 target_cpa_micros = 41; + + // Output only. The CPV (cost-per-view) bid. + optional int64 cpv_bid_micros = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Average amount in micros that the advertiser is willing to pay for every + // thousand times the ad is shown. + optional int64 target_cpm_micros = 43; + + // The target ROAS (return-on-ad-spend) override. If the ad group's campaign + // bidding strategy is TargetRoas or MaximizeConversionValue (with its + // target_roas field set), then this field overrides the target ROAS specified + // in the campaign's bidding strategy. + // Otherwise, this value is ignored. + optional double target_roas = 44; + + // The percent cpc bid amount, expressed as a fraction of the advertised price + // for some good or service. The valid range for the fraction is [0,1) and the + // value stored here is 1,000,000 * [fraction]. + optional int64 percent_cpc_bid_micros = 45; + + // Settings for the Display Campaign Optimizer, initially termed "Explorer". + google.ads.googleads.v10.common.ExplorerAutoOptimizerSetting explorer_auto_optimizer_setting = 21; + + // 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.v10.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.v10.common.TargetingSetting targeting_setting = 25; + + // Immutable. Setting for audience related features. + AudienceSetting audience_setting = 56 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The effective target CPA (cost-per-acquisition). + // This field is read-only. + optional int64 effective_target_cpa_micros = 47 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source of the effective target CPA. + // This field is read-only. + google.ads.googleads.v10.enums.BiddingSourceEnum.BiddingSource effective_target_cpa_source = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective target ROAS (return-on-ad-spend). + // This field is read-only. + optional double effective_target_roas = 48 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source of the effective target ROAS. + // This field is read-only. + google.ads.googleads.v10.enums.BiddingSourceEnum.BiddingSource effective_target_roas_source = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource names of labels attached to this ad group. + repeated string labels = 49 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupLabel" + } + ]; + + // 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.v10.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 54; +} diff --git a/google/ads/googleads/v10/resources/ad_group_ad.proto b/google/ads/googleads/v10/resources/ad_group_ad.proto new file mode 100644 index 000000000..35b197d9f --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_ad.proto @@ -0,0 +1,102 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/ad_group_ad_status.proto"; +import "google/ads/googleads/v10/enums/ad_strength.proto"; +import "google/ads/googleads/v10/enums/policy_approval_status.proto"; +import "google/ads/googleads/v10/enums/policy_review_status.proto"; +import "google/ads/googleads/v10/resources/ad.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group ad resource. + +// An ad group ad. +message AdGroupAd { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAd" + pattern: "customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}" + }; + + // Immutable. The resource name of the ad. + // Ad group ad resource names have the form: + // + // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // The status of the ad. + google.ads.googleads.v10.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3; + + // Immutable. The ad group to which the ad belongs. + optional string ad_group = 9 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Immutable. The ad. + Ad ad = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Policy information for the ad. + AdGroupAdPolicySummary policy_summary = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Overall ad strength for this ad group ad. + google.ads.googleads.v10.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.". + repeated string action_items = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource names of labels attached to this ad group ad. + repeated string labels = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + } + ]; +} + +// Contains policy information for an ad. +message AdGroupAdPolicySummary { + // Output only. The list of policy findings for this ad. + repeated google.ads.googleads.v10.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.v10.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.v10.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_ad_asset_combination_view.proto b/google/ads/googleads/v10/resources/ad_group_ad_asset_combination_view.proto new file mode 100644 index 000000000..9edd42561 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_ad_asset_combination_view.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/asset_usage.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdAssetCombinationViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the asset combination view resource. + +// A view on the usage of ad group ad asset combination. +// Now we only support AdGroupAdAssetCombinationView for Responsive Search Ads, +// with more ad types planned for the future. +message AdGroupAdAssetCombinationView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAdAssetCombinationView" + pattern: "customers/{customer_id}/adGroupAdAssetCombinationViews/{ad_group_id}~{ad_id}~{asset_combination_id_low}~{asset_combination_id_high}" + }; + + // Output only. The resource name of the ad group ad asset combination view. The + // combination ID is 128 bits long, where the upper 64 bits are stored in + // asset_combination_id_high, and the lower 64 bits are stored in + // asset_combination_id_low. + // AdGroupAd Asset Combination view resource names have the form: + // `customers/{customer_id}/adGroupAdAssetCombinationViews/{AdGroupAd.ad_group_id}~{AdGroupAd.ad.ad_id}~{AssetCombination.asset_combination_id_low}~{AssetCombination.asset_combination_id_high}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdAssetCombinationView" + } + ]; + + // Output only. Served assets. + repeated google.ads.googleads.v10.common.AssetUsage served_assets = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status between the asset combination and the latest version of the ad. + // If true, the asset combination is linked to the latest version of the ad. + // If false, it means the link once existed but has been removed and is no + // longer present in the latest version of the ad. + optional bool enabled = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_ad_asset_view.proto b/google/ads/googleads/v10/resources/ad_group_ad_asset_view.proto new file mode 100644 index 000000000..d2b753ff4 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_ad_asset_view.proto @@ -0,0 +1,104 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/asset_field_type.proto"; +import "google/ads/googleads/v10/enums/asset_performance_label.proto"; +import "google/ads/googleads/v10/enums/policy_approval_status.proto"; +import "google/ads/googleads/v10/enums/policy_review_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdAssetViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group ad asset view resource. + +// A link between an AdGroupAd and an Asset. +// Currently we only support AdGroupAdAssetView for AppAds. +message AdGroupAdAssetView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAdAssetView" + pattern: "customers/{customer_id}/adGroupAdAssetViews/{ad_group_id}~{ad_id}~{asset_id}~{field_type}" + }; + + // Output only. The resource name of the ad group ad asset view. + // Ad group ad asset view resource names have the form (Before V4): + // + // `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` + // + // Ad group ad asset view resource names have the form (Beginning from V4): + // + // `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdAssetView" + } + ]; + + // Output only. The ad group ad to which the asset is linked. + optional string ad_group_ad = 9 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Output only. The asset which is linked to the ad group ad. + optional string asset = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. Role that the asset takes in the ad. + google.ads.googleads.v10.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. If true, the + // asset is linked to the latest version of the ad. If false, it means the + // link once existed but has been removed and is no longer present in the + // latest version of the ad. + optional bool enabled = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Policy information for the ad group ad asset. + AdGroupAdAssetPolicySummary policy_summary = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Performance of an asset linkage. + google.ads.googleads.v10.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel performance_label = 4 [(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.v10.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.v10.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.v10.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_ad_label.proto b/google/ads/googleads/v10/resources/ad_group_ad_label.proto new file mode 100644 index 000000000..fafffaf2a --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_ad_label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdLabelProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group ad label resource. + +// A relationship between an ad group ad and a label. +message AdGroupAdLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + pattern: "customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}" + }; + + // Immutable. The resource name of the ad group ad label. + // Ad group ad label resource names have the form: + // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + } + ]; + + // Immutable. The ad group ad to which the label is attached. + optional string ad_group_ad = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Immutable. The label assigned to the ad group ad. + optional string label = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_asset.proto b/google/ads/googleads/v10/resources/ad_group_asset.proto new file mode 100644 index 000000000..a345353a9 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_asset.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/asset_field_type.proto"; +import "google/ads/googleads/v10/enums/asset_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAssetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the AdGroupAsset resource. + +// A link between an ad group and an asset. +message AdGroupAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAsset" + pattern: "customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}" + }; + + // Immutable. The resource name of the ad group asset. + // AdGroupAsset resource names have the form: + // + // `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAsset" + } + ]; + + // Required. Immutable. The ad group to which the asset is linked. + string ad_group = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Required. Immutable. The asset which is linked to the ad group. + string asset = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Required. Immutable. Role that the asset takes under the linked ad group. + google.ads.googleads.v10.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Status of the ad group asset. + google.ads.googleads.v10.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; +} diff --git a/google/ads/googleads/v10/resources/ad_group_audience_view.proto b/google/ads/googleads/v10/resources/ad_group_audience_view.proto new file mode 100644 index 000000000..ae78ff2e5 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_audience_view.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAudienceViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group audience view resource. + +// An ad group audience view. +// Includes performance data from interests and remarketing lists for Display +// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), +// aggregated at the audience level. +message AdGroupAudienceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAudienceView" + pattern: "customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the ad group audience view. + // Ad group audience view resource names have the form: + // + // `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAudienceView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_bid_modifier.proto b/google/ads/googleads/v10/resources/ad_group_bid_modifier.proto new file mode 100644 index 000000000..504cc2851 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_bid_modifier.proto @@ -0,0 +1,111 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/enums/bid_modifier_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupBidModifierProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group bid modifier resource. + +// Represents an ad group bid modifier. +message AdGroupBidModifier { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + pattern: "customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}" + }; + + // Immutable. The resource name of the ad group bid modifier. + // Ad group bid modifier resource names have the form: + // + // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + } + ]; + + // Immutable. The ad group to which this criterion belongs. + optional string ad_group = 13 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. The ID of the criterion to bid modify. + // + // This field is ignored for mutates. + optional int64 criterion_id = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The modifier for the bid when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent. + // Use 0 to opt out of a Device type. + optional double bid_modifier = 15; + + // Output only. The base ad group from which this draft/trial adgroup bid modifier was + // created. If ad_group is a base ad group then this field will be equal to + // ad_group. If the ad group was created in the draft or trial and has no + // corresponding base ad group, then this field will be null. + // This field is readonly. + optional string base_ad_group = 16 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. Bid modifier source. + google.ads.googleads.v10.enums.BidModifierSourceEnum.BidModifierSource bid_modifier_source = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The criterion of this ad group bid modifier. + // + // Required in create operations starting in V5. + oneof criterion { + // Immutable. Criterion for hotel date selection (default dates vs. user selected). + google.ads.googleads.v10.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.v10.common.HotelAdvanceBookingWindowInfo hotel_advance_booking_window = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Criterion for length of hotel stay in nights. + google.ads.googleads.v10.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.v10.common.HotelCheckInDayInfo hotel_check_in_day = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A device criterion. + google.ads.googleads.v10.common.DeviceInfo device = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A preferred content criterion. + google.ads.googleads.v10.common.PreferredContentInfo preferred_content = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Criterion for a hotel check-in date range. + google.ads.googleads.v10.common.HotelCheckInDateRangeInfo hotel_check_in_date_range = 17 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v10/resources/ad_group_criterion.proto b/google/ads/googleads/v10/resources/ad_group_criterion.proto new file mode 100644 index 000000000..f77c97af7 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_criterion.proto @@ -0,0 +1,293 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/common/custom_parameter.proto"; +import "google/ads/googleads/v10/enums/ad_group_criterion_approval_status.proto"; +import "google/ads/googleads/v10/enums/ad_group_criterion_status.proto"; +import "google/ads/googleads/v10/enums/bidding_source.proto"; +import "google/ads/googleads/v10/enums/criterion_system_serving_status.proto"; +import "google/ads/googleads/v10/enums/criterion_type.proto"; +import "google/ads/googleads/v10/enums/quality_score_bucket.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group criterion resource. + +// An ad group criterion. +message AdGroupCriterion { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCriterion" + pattern: "customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}" + }; + + // A container for ad group criterion quality information. + message QualityInfo { + // Output only. The quality score. + // + // This field may not be populated if Google does not have enough + // information to determine a value. + optional int32 quality_score = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The performance of the ad compared to other advertisers. + google.ads.googleads.v10.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.v10.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.v10.enums.QualityScoreBucketEnum.QualityScoreBucket search_predicted_ctr = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Estimates for criterion bids at various positions. + message PositionEstimates { + // Output only. The estimate of the CPC bid required for ad to be shown on first + // page of search results. + optional int64 first_page_cpc_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimate of the CPC bid required for ad to be displayed in first + // position, at the top of the first page of search results. + optional int64 first_position_cpc_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimate of the CPC bid required for ad to be displayed at the top + // of the first page of search results. + optional int64 top_of_page_cpc_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimate of how many clicks per week you might get by changing your + // keyword bid to the value in first_position_cpc_micros. + optional int64 estimated_add_clicks_at_first_position_cpc = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimate of how your cost per week might change when changing your + // keyword bid to the value in first_position_cpc_micros. + optional int64 estimated_add_cost_at_first_position_cpc = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the ad group criterion. + // Ad group criterion resource names have the form: + // + // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Output only. The ID of the criterion. + // + // This field is ignored for mutates. + optional int64 criterion_id = 56 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name of the criterion. + // + // This field is ignored for mutates. + string display_name = 77 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The status of the criterion. + // + // This is the status of the ad group criterion entity, set by the client. + // Note: UI reports may incorporate additional information that affects + // whether a criterion is eligible to run. In some cases a criterion that's + // REMOVED in the API can still show as enabled in the UI. + // For example, campaigns by default show to users of all age ranges unless + // 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.v10.enums.AdGroupCriterionStatusEnum.AdGroupCriterionStatus status = 3; + + // Output only. Information regarding the quality of the criterion. + QualityInfo quality_info = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The ad group to which the criterion belongs. + optional string ad_group = 57 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. The type of the criterion. + google.ads.googleads.v10.enums.CriterionTypeEnum.CriterionType type = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. + // + // This field is immutable. To switch a criterion from positive to negative, + // remove then re-add it. + optional bool negative = 58 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Serving status of the criterion. + google.ads.googleads.v10.enums.CriterionSystemServingStatusEnum.CriterionSystemServingStatus system_serving_status = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Approval status of the criterion. + google.ads.googleads.v10.enums.AdGroupCriterionApprovalStatusEnum.AdGroupCriterionApprovalStatus approval_status = 53 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of disapproval reasons of the criterion. + // + // The different reasons for disapproving a criterion can be found here: + // https://support.google.com/adspolicy/answer/6008942 + // + // This field is read-only. + repeated string disapproval_reasons = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource names of labels attached to this ad group criterion. + repeated string labels = 60 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + } + ]; + + // The modifier for the bid when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. + optional double bid_modifier = 61; + + // The CPC (cost-per-click) bid. + optional int64 cpc_bid_micros = 62; + + // The CPM (cost-per-thousand viewable impressions) bid. + optional int64 cpm_bid_micros = 63; + + // The CPV (cost-per-view) bid. + optional int64 cpv_bid_micros = 64; + + // The CPC bid amount, expressed as a fraction of the advertised price + // for some good or service. The valid range for the fraction is [0,1) and the + // value stored here is 1,000,000 * [fraction]. + optional int64 percent_cpc_bid_micros = 65; + + // Output only. The effective CPC (cost-per-click) bid. + optional int64 effective_cpc_bid_micros = 66 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective CPM (cost-per-thousand viewable impressions) bid. + optional int64 effective_cpm_bid_micros = 67 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective CPV (cost-per-view) bid. + optional int64 effective_cpv_bid_micros = 68 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective Percent CPC bid amount. + optional int64 effective_percent_cpc_bid_micros = 69 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source of the effective CPC bid. + google.ads.googleads.v10.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.v10.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.v10.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.v10.enums.BiddingSourceEnum.BiddingSource effective_percent_cpc_bid_source = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimates for criterion bids at various positions. + PositionEstimates position_estimates = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The list of possible final URLs after all cross-domain redirects for the + // ad. + repeated string final_urls = 70; + + // The list of possible final mobile URLs after all cross-domain redirects. + repeated string final_mobile_urls = 71; + + // URL template for appending params to final URL. + optional string final_url_suffix = 72; + + // The URL template for constructing a tracking URL. + optional string tracking_url_template = 73; + + // 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.v10.common.CustomParameter url_custom_parameters = 14; + + // The ad group criterion. + // + // Exactly one must be set. + oneof criterion { + // Immutable. Keyword. + google.ads.googleads.v10.common.KeywordInfo keyword = 27 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Placement. + google.ads.googleads.v10.common.PlacementInfo placement = 28 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile app category. + google.ads.googleads.v10.common.MobileAppCategoryInfo mobile_app_category = 29 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile application. + google.ads.googleads.v10.common.MobileApplicationInfo mobile_application = 30 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Listing group. + google.ads.googleads.v10.common.ListingGroupInfo listing_group = 32 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Age range. + google.ads.googleads.v10.common.AgeRangeInfo age_range = 36 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Gender. + google.ads.googleads.v10.common.GenderInfo gender = 37 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Income range. + google.ads.googleads.v10.common.IncomeRangeInfo income_range = 38 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Parental status. + google.ads.googleads.v10.common.ParentalStatusInfo parental_status = 39 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. User List. + google.ads.googleads.v10.common.UserListInfo user_list = 42 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Video. + google.ads.googleads.v10.common.YouTubeVideoInfo youtube_video = 40 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Channel. + google.ads.googleads.v10.common.YouTubeChannelInfo youtube_channel = 41 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Topic. + google.ads.googleads.v10.common.TopicInfo topic = 43 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. User Interest. + google.ads.googleads.v10.common.UserInterestInfo user_interest = 45 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Webpage + google.ads.googleads.v10.common.WebpageInfo webpage = 46 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. App Payment Model. + google.ads.googleads.v10.common.AppPaymentModelInfo app_payment_model = 47 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Affinity. + google.ads.googleads.v10.common.CustomAffinityInfo custom_affinity = 48 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Intent. + google.ads.googleads.v10.common.CustomIntentInfo custom_intent = 49 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Audience. + google.ads.googleads.v10.common.CustomAudienceInfo custom_audience = 74 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Combined Audience. + google.ads.googleads.v10.common.CombinedAudienceInfo combined_audience = 75 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Audience. + google.ads.googleads.v10.common.AudienceInfo audience = 79 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v10/resources/ad_group_criterion_customizer.proto b/google/ads/googleads/v10/resources/ad_group_criterion_customizer.proto new file mode 100644 index 000000000..119f1edc9 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_criterion_customizer.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/customizer_value.proto"; +import "google/ads/googleads/v10/enums/customizer_value_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionCustomizerProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// A customizer value for the associated CustomizerAttribute at the +// AdGroupCriterion level. +message AdGroupCriterionCustomizer { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCriterionCustomizer" + pattern: "customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}" + }; + + // Immutable. The resource name of the ad group criterion customizer. + // Ad group criterion customizer resource names have the form: + // + // `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionCustomizer" + } + ]; + + // Immutable. The ad group criterion to which the customizer attribute is linked. + // It must be a keyword criterion. + optional string ad_group_criterion = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Required. Immutable. The customizer attribute which is linked to the ad group criterion. + string customizer_attribute = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The status of the ad group criterion customizer. + google.ads.googleads.v10.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.v10.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_criterion_label.proto b/google/ads/googleads/v10/resources/ad_group_criterion_label.proto new file mode 100644 index 000000000..d946d51ab --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_criterion_label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionLabelProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group criterion label resource. + +// A relationship between an ad group criterion and a label. +message AdGroupCriterionLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + pattern: "customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}" + }; + + // Immutable. The resource name of the ad group criterion label. + // Ad group criterion label resource names have the form: + // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + } + ]; + + // Immutable. The ad group criterion to which the label is attached. + optional string ad_group_criterion = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Immutable. The label assigned to the ad group criterion. + optional string label = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_criterion_simulation.proto b/google/ads/googleads/v10/resources/ad_group_criterion_simulation.proto new file mode 100644 index 000000000..0bdbd71f1 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_criterion_simulation.proto @@ -0,0 +1,89 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/simulation.proto"; +import "google/ads/googleads/v10/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v10/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionSimulationProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group criterion simulation resource. + +// An ad group criterion simulation. Supported combinations of advertising +// channel type, criterion type, simulation type, and simulation modification +// method are detailed below respectively. Hotel AdGroupCriterion simulation +// operations starting in V5. +// +// 1. DISPLAY - KEYWORD - CPC_BID - UNIFORM +// 2. SEARCH - KEYWORD - CPC_BID - UNIFORM +// 3. SHOPPING - LISTING_GROUP - CPC_BID - UNIFORM +// 4. HOTEL - LISTING_GROUP - CPC_BID - UNIFORM +// 5. HOTEL - LISTING_GROUP - PERCENT_CPC_BID - UNIFORM +message AdGroupCriterionSimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCriterionSimulation" + pattern: "customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the ad group criterion simulation. + // Ad group criterion simulation resource names have the form: + // + // `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionSimulation" + } + ]; + + // Output only. AdGroup ID of the simulation. + optional int64 ad_group_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Criterion ID of the simulation. + optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v10.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v10.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + optional string start_date = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format. + optional string end_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is CPC_BID. + google.ads.googleads.v10.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.v10.common.PercentCpcBidSimulationPointList percent_cpc_bid_point_list = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/ad_group_customizer.proto b/google/ads/googleads/v10/resources/ad_group_customizer.proto new file mode 100644 index 000000000..bd969d590 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_customizer.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/customizer_value.proto"; +import "google/ads/googleads/v10/enums/customizer_value_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCustomizerProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// A customizer value for the associated CustomizerAttribute at the AdGroup +// level. +message AdGroupCustomizer { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCustomizer" + pattern: "customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}" + }; + + // Immutable. The resource name of the ad group customizer. + // Ad group customizer resource names have the form: + // + // `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCustomizer" + } + ]; + + // Immutable. The ad group to which the customizer attribute is linked. + string ad_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Required. Immutable. The customizer attribute which is linked to the ad group. + string customizer_attribute = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The status of the ad group customizer. + google.ads.googleads.v10.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.v10.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_extension_setting.proto b/google/ads/googleads/v10/resources/ad_group_extension_setting.proto new file mode 100644 index 000000000..cace6d641 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_extension_setting.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/extension_setting_device.proto"; +import "google/ads/googleads/v10/enums/extension_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupExtensionSettingProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the AdGroupExtensionSetting resource. + +// An ad group extension setting. +message AdGroupExtensionSetting { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupExtensionSetting" + pattern: "customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}" + }; + + // Immutable. The resource name of the ad group extension setting. + // AdGroupExtensionSetting resource names have the form: + // + // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupExtensionSetting" + } + ]; + + // Immutable. The extension type of the ad group extension setting. + google.ads.googleads.v10.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The resource name of the ad group. The linked extension feed items will + // serve under this ad group. + // AdGroup resource names have the form: + // + // `customers/{customer_id}/adGroups/{ad_group_id}` + optional string ad_group = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // The resource names of the extension feed items to serve under the ad group. + // ExtensionFeedItem resource names have the form: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + repeated string extension_feed_items = 7 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + + // The device for which the extensions will serve. Optional. + google.ads.googleads.v10.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5; +} diff --git a/google/ads/googleads/v10/resources/ad_group_feed.proto b/google/ads/googleads/v10/resources/ad_group_feed.proto new file mode 100644 index 000000000..1e9f864ed --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_feed.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/matching_function.proto"; +import "google/ads/googleads/v10/enums/feed_link_status.proto"; +import "google/ads/googleads/v10/enums/placeholder_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupFeedProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the AdGroupFeed resource. + +// An ad group feed. +message AdGroupFeed { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupFeed" + pattern: "customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}" + }; + + // Immutable. The resource name of the ad group feed. + // Ad group feed resource names have the form: + // + // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id} + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupFeed" + } + ]; + + // Immutable. The feed being linked to the ad group. + optional string feed = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Immutable. The ad group being linked to the feed. + optional string ad_group = 8 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Indicates which placeholder types the feed may populate under the connected + // ad group. Required. + repeated google.ads.googleads.v10.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.v10.common.MatchingFunction matching_function = 5; + + // Output only. Status of the ad group feed. + // This field is read-only. + google.ads.googleads.v10.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_label.proto b/google/ads/googleads/v10/resources/ad_group_label.proto new file mode 100644 index 000000000..4f72eb241 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupLabelProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group label resource. + +// A relationship between an ad group and a label. +message AdGroupLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupLabel" + pattern: "customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}" + }; + + // Immutable. The resource name of the ad group label. + // Ad group label resource names have the form: + // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupLabel" + } + ]; + + // Immutable. The ad group to which the label is attached. + optional string ad_group = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Immutable. The label assigned to the ad group. + optional string label = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/ad_group_simulation.proto b/google/ads/googleads/v10/resources/ad_group_simulation.proto new file mode 100644 index 000000000..82da61c93 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_group_simulation.proto @@ -0,0 +1,93 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/simulation.proto"; +import "google/ads/googleads/v10/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v10/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupSimulationProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad group simulation resource. + +// An ad group simulation. Supported combinations of advertising +// channel type, simulation type and simulation modification method is +// detailed below respectively. +// +// 1. SEARCH - CPC_BID - DEFAULT +// 2. SEARCH - CPC_BID - UNIFORM +// 3. SEARCH - TARGET_CPA - UNIFORM +// 4. SEARCH - TARGET_ROAS - UNIFORM +// 5. DISPLAY - CPC_BID - DEFAULT +// 6. DISPLAY - CPC_BID - UNIFORM +// 7. DISPLAY - TARGET_CPA - UNIFORM +message AdGroupSimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupSimulation" + pattern: "customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the ad group simulation. + // Ad group simulation resource names have the form: + // + // `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupSimulation" + } + ]; + + // Output only. Ad group id of the simulation. + optional int64 ad_group_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v10.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v10.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + optional string start_date = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format + optional string end_date = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is CPC_BID. + google.ads.googleads.v10.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.v10.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.v10.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.v10.common.TargetRoasSimulationPointList target_roas_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/ad_parameter.proto b/google/ads/googleads/v10/resources/ad_parameter.proto new file mode 100644 index 000000000..1219a5d86 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_parameter.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdParameterProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad parameter resource. + +// An ad parameter that is used to update numeric values (such as prices or +// inventory levels) in any text line of an ad (including URLs). There can +// be a maximum of two AdParameters per ad group criterion. (One with +// parameter_index = 1 and one with parameter_index = 2.) +// In the ad the parameters are referenced by a placeholder of the form +// "{param#:value}". E.g. "{param1:$17}" +message AdParameter { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdParameter" + pattern: "customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}" + }; + + // Immutable. The resource name of the ad parameter. + // Ad parameter resource names have the form: + // + // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdParameter" + } + ]; + + // Immutable. The ad group criterion that this ad parameter belongs to. + optional string ad_group_criterion = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Immutable. The unique index of this ad parameter. Must be either 1 or 2. + optional int64 parameter_index = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Numeric value to insert into the ad text. The following restrictions + // apply: + // - Can use comma or period as a separator, with an optional period or + // comma (respectively) for fractional values. For example, 1,000,000.00 + // and 2.000.000,10 are valid. + // - Can be prepended or appended with a currency symbol. For example, + // $99.99 is valid. + // - Can be prepended or appended with a currency code. For example, 99.99USD + // and EUR200 are valid. + // - Can use '%'. For example, 1.0% and 1,0% are valid. + // - Can use plus or minus. For example, -10.99 and 25+ are valid. + // - Can use '/' between two numbers. For example 4/1 and 0.95/0.45 are + // valid. + optional string insertion_text = 7; +} diff --git a/google/ads/googleads/v10/resources/ad_schedule_view.proto b/google/ads/googleads/v10/resources/ad_schedule_view.proto new file mode 100644 index 000000000..dc08ad4d5 --- /dev/null +++ b/google/ads/googleads/v10/resources/ad_schedule_view.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdScheduleViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ad schedule view resource. + +// An ad schedule view summarizes the performance of campaigns by +// AdSchedule criteria. +message AdScheduleView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdScheduleView" + pattern: "customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}" + }; + + // Output only. The resource name of the ad schedule view. + // AdSchedule view resource names have the form: + // + // `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdScheduleView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/age_range_view.proto b/google/ads/googleads/v10/resources/age_range_view.proto new file mode 100644 index 000000000..d3f3445b6 --- /dev/null +++ b/google/ads/googleads/v10/resources/age_range_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AgeRangeViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the age range view resource. + +// An age range view. +message AgeRangeView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AgeRangeView" + pattern: "customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the age range view. + // Age range view resource names have the form: + // + // `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AgeRangeView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/asset.proto b/google/ads/googleads/v10/resources/asset.proto new file mode 100644 index 000000000..3b6e5457b --- /dev/null +++ b/google/ads/googleads/v10/resources/asset.proto @@ -0,0 +1,179 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/asset_types.proto"; +import "google/ads/googleads/v10/common/custom_parameter.proto"; +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/asset_type.proto"; +import "google/ads/googleads/v10/enums/policy_approval_status.proto"; +import "google/ads/googleads/v10/enums/policy_review_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the asset resource. + +// Asset is a part of an ad which can be shared across multiple ads. +// It can be an image (ImageAsset), a video (YoutubeVideoAsset), etc. +// Assets are immutable and cannot be removed. To stop an asset from serving, +// remove the asset from the entity that is using it. +message Asset { + option (google.api.resource) = { + type: "googleads.googleapis.com/Asset" + pattern: "customers/{customer_id}/assets/{asset_id}" + }; + + // Immutable. The resource name of the asset. + // Asset resource names have the form: + // + // `customers/{customer_id}/assets/{asset_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. The ID of the asset. + optional int64 id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional name of the asset. + optional string name = 12; + + // Output only. Type of the asset. + google.ads.googleads.v10.enums.AssetTypeEnum.AssetType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A list of possible final URLs after all cross domain redirects. + repeated string final_urls = 14; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 16; + + // URL template for constructing a tracking URL. + optional string tracking_url_template = 17; + + // 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.v10.common.CustomParameter url_custom_parameters = 18; + + // URL template for appending params to landing page URLs served with parallel + // tracking. + optional string final_url_suffix = 19; + + // Output only. Policy information for the asset. + AssetPolicySummary policy_summary = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The specific type of the asset. + oneof asset_data { + // Immutable. A YouTube video asset. + google.ads.googleads.v10.common.YoutubeVideoAsset youtube_video_asset = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A media bundle asset. + google.ads.googleads.v10.common.MediaBundleAsset media_bundle_asset = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. An image asset. + google.ads.googleads.v10.common.ImageAsset image_asset = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. A text asset. + google.ads.googleads.v10.common.TextAsset text_asset = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // A lead form asset. + google.ads.googleads.v10.common.LeadFormAsset lead_form_asset = 9; + + // A book on google asset. + google.ads.googleads.v10.common.BookOnGoogleAsset book_on_google_asset = 10; + + // A promotion asset. + google.ads.googleads.v10.common.PromotionAsset promotion_asset = 15; + + // A callout asset. + google.ads.googleads.v10.common.CalloutAsset callout_asset = 20; + + // A structured snippet asset. + google.ads.googleads.v10.common.StructuredSnippetAsset structured_snippet_asset = 21; + + // A sitelink asset. + google.ads.googleads.v10.common.SitelinkAsset sitelink_asset = 22; + + // A page feed asset. + google.ads.googleads.v10.common.PageFeedAsset page_feed_asset = 23; + + // A dynamic education asset. + google.ads.googleads.v10.common.DynamicEducationAsset dynamic_education_asset = 24; + + // A mobile app asset. + google.ads.googleads.v10.common.MobileAppAsset mobile_app_asset = 25; + + // A hotel callout asset. + google.ads.googleads.v10.common.HotelCalloutAsset hotel_callout_asset = 26; + + // A call asset. + google.ads.googleads.v10.common.CallAsset call_asset = 27; + + // A price asset. + google.ads.googleads.v10.common.PriceAsset price_asset = 28; + + // Immutable. A call to action asset. + google.ads.googleads.v10.common.CallToActionAsset call_to_action_asset = 29 [(google.api.field_behavior) = IMMUTABLE]; + + // A dynamic real estate asset. + google.ads.googleads.v10.common.DynamicRealEstateAsset dynamic_real_estate_asset = 30; + + // A dynamic custom asset. + google.ads.googleads.v10.common.DynamicCustomAsset dynamic_custom_asset = 31; + + // A dynamic hotels and rentals asset. + google.ads.googleads.v10.common.DynamicHotelsAndRentalsAsset dynamic_hotels_and_rentals_asset = 32; + + // A dynamic flights asset. + google.ads.googleads.v10.common.DynamicFlightsAsset dynamic_flights_asset = 33; + + // Immutable. A discovery carousel card asset. + google.ads.googleads.v10.common.DiscoveryCarouselCardAsset discovery_carousel_card_asset = 34 [(google.api.field_behavior) = IMMUTABLE]; + + // A dynamic travel asset. + google.ads.googleads.v10.common.DynamicTravelAsset dynamic_travel_asset = 35; + + // A dynamic local asset. + google.ads.googleads.v10.common.DynamicLocalAsset dynamic_local_asset = 36; + + // A dynamic jobs asset. + google.ads.googleads.v10.common.DynamicJobsAsset dynamic_jobs_asset = 37; + } +} + +// Contains policy information for an asset. +message AssetPolicySummary { + // Output only. The list of policy findings for this asset. + repeated google.ads.googleads.v10.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.v10.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.v10.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/asset_field_type_view.proto b/google/ads/googleads/v10/resources/asset_field_type_view.proto new file mode 100644 index 000000000..b9432b68e --- /dev/null +++ b/google/ads/googleads/v10/resources/asset_field_type_view.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/asset_field_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetFieldTypeViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the AssetFieldTypeView resource. + +// An asset field type view. +// This view reports non-overcounted metrics for each asset field type when the +// asset is used as extension. +message AssetFieldTypeView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetFieldTypeView" + pattern: "customers/{customer_id}/assetFieldTypeViews/{field_type}" + }; + + // Output only. The resource name of the asset field type view. + // Asset field type view resource names have the form: + // + // `customers/{customer_id}/assetFieldTypeViews/{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetFieldTypeView" + } + ]; + + // Output only. The asset field type of the asset field type view. + google.ads.googleads.v10.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/asset_group.proto b/google/ads/googleads/v10/resources/asset_group.proto new file mode 100644 index 000000000..8677cde98 --- /dev/null +++ b/google/ads/googleads/v10/resources/asset_group.proto @@ -0,0 +1,87 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/asset_group_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// An asset group. +// AssetGroupAsset is used to link an asset to the asset group. +// AssetGroupSignal is used to associate a signal to an asset group. +message AssetGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroup" + pattern: "customers/{customer_id}/assetGroups/{asset_group_id}" + }; + + // Immutable. The resource name of the asset group. + // Asset group resource names have the form: + // + // `customers/{customer_id}/assetGroups/{asset_group_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Output only. The ID of the asset group. + int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The campaign with which this asset group is associated. + // The asset which is linked to the asset group. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Required. Name of the asset group. Required. It must have a minimum length of 1 and + // maximum length of 128. It must be unique under a campaign. + string name = 3 [(google.api.field_behavior) = REQUIRED]; + + // A list of final URLs after all cross domain redirects. In performance max, + // by default, the urls are eligible for expansion unless opted out. + repeated string final_urls = 4; + + // A list of final mobile URLs after all cross domain redirects. In + // performance max, by default, the urls are eligible for expansion + // unless opted out. + repeated string final_mobile_urls = 5; + + // The status of the asset group. + google.ads.googleads.v10.enums.AssetGroupStatusEnum.AssetGroupStatus status = 6; + + // First part of text that may appear appended to the url displayed in + // the ad. + string path1 = 7; + + // Second part of text that may appear appended to the url displayed in + // the ad. This field can only be set when path1 is set. + string path2 = 8; +} diff --git a/google/ads/googleads/v10/resources/asset_group_asset.proto b/google/ads/googleads/v10/resources/asset_group_asset.proto new file mode 100644 index 000000000..6b47c38e0 --- /dev/null +++ b/google/ads/googleads/v10/resources/asset_group_asset.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/policy_summary.proto"; +import "google/ads/googleads/v10/enums/asset_field_type.proto"; +import "google/ads/googleads/v10/enums/asset_link_status.proto"; +import "google/ads/googleads/v10/enums/asset_performance_label.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupAssetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// AssetGroupAsset is the link between an asset and an asset group. +// Adding an AssetGroupAsset links an asset with an asset group. +message AssetGroupAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupAsset" + pattern: "customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}" + }; + + // Immutable. The resource name of the asset group asset. + // Asset group asset resource name have the form: + // + // `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupAsset" + } + ]; + + // Immutable. The asset group which this asset group asset is linking. + string asset_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Immutable. The asset which this asset group asset is linking. + string asset = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // The description of the placement of the asset within the asset group. E.g.: + // HEADLINE, YOUTUBE_VIDEO etc + google.ads.googleads.v10.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4; + + // The status of the link between an asset and asset group. + google.ads.googleads.v10.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; + + // Output only. The performance of this asset group asset. + google.ads.googleads.v10.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.v10.common.PolicySummary policy_summary = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/asset_group_listing_group_filter.proto b/google/ads/googleads/v10/resources/asset_group_listing_group_filter.proto new file mode 100644 index 000000000..27ede6262 --- /dev/null +++ b/google/ads/googleads/v10/resources/asset_group_listing_group_filter.proto @@ -0,0 +1,172 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/listing_group_filter_bidding_category_level.proto"; +import "google/ads/googleads/v10/enums/listing_group_filter_custom_attribute_index.proto"; +import "google/ads/googleads/v10/enums/listing_group_filter_product_channel.proto"; +import "google/ads/googleads/v10/enums/listing_group_filter_product_condition.proto"; +import "google/ads/googleads/v10/enums/listing_group_filter_product_type_level.proto"; +import "google/ads/googleads/v10/enums/listing_group_filter_type_enum.proto"; +import "google/ads/googleads/v10/enums/listing_group_filter_vertical.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupListingGroupFilterProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// AssetGroupListingGroupFilter represents a listing group filter tree node in +// an asset group. +message AssetGroupListingGroupFilter { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + pattern: "customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}" + }; + + // Immutable. The resource name of the asset group listing group filter. + // Asset group listing group filter resource name have the form: + // + // `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + } + ]; + + // Immutable. The asset group which this asset group listing group filter is part of. + string asset_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Output only. The ID of the ListingGroupFilter. + int64 id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Type of a listing group filter node. + google.ads.googleads.v10.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.v10.enums.ListingGroupFilterVerticalEnum.ListingGroupFilterVertical vertical = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Dimension value with which this listing group is refining its parent. + // Undefined for the root group. + ListingGroupFilterDimension case_value = 6; + + // Immutable. Resource name of the parent listing group subdivision. Null for the root + // listing group filter node. + string parent_listing_group_filter = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + } + ]; +} + +// Listing dimensions for the asset group listing group filter. +message ListingGroupFilterDimension { + // One element of a bidding 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. + // + // 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; + + // Indicates the level of the category in the taxonomy. + google.ads.googleads.v10.enums.ListingGroupFilterBiddingCategoryLevelEnum.ListingGroupFilterBiddingCategoryLevel level = 2; + } + + // Brand of the product. + message ProductBrand { + // String value of the product brand. + optional string value = 1; + } + + // Locality of a product offer. + message ProductChannel { + // Value of the locality. + google.ads.googleads.v10.enums.ListingGroupFilterProductChannelEnum.ListingGroupFilterProductChannel channel = 1; + } + + // Condition of a product offer. + message ProductCondition { + // Value of the condition. + google.ads.googleads.v10.enums.ListingGroupFilterProductConditionEnum.ListingGroupFilterProductCondition condition = 1; + } + + // Custom attribute of a product offer. + message ProductCustomAttribute { + // String value of the product custom attribute. + optional string value = 1; + + // Indicates the index of the custom attribute. + google.ads.googleads.v10.enums.ListingGroupFilterCustomAttributeIndexEnum.ListingGroupFilterCustomAttributeIndex index = 2; + } + + // Item id of a product offer. + message ProductItemId { + // Value of the id. + optional string value = 1; + } + + // Type of a product offer. + message ProductType { + // Value of the type. + optional string value = 1; + + // Level of the type. + google.ads.googleads.v10.enums.ListingGroupFilterProductTypeLevelEnum.ListingGroupFilterProductTypeLevel level = 2; + } + + // Dimension of one of the types below is always present. + oneof dimension { + // Bidding category of a product offer. + ProductBiddingCategory product_bidding_category = 1; + + // Brand of a product offer. + ProductBrand product_brand = 2; + + // Locality of a product offer. + ProductChannel product_channel = 3; + + // Condition of a product offer. + ProductCondition product_condition = 4; + + // Custom attribute of a product offer. + ProductCustomAttribute product_custom_attribute = 5; + + // Item id of a product offer. + ProductItemId product_item_id = 6; + + // Type of a product offer. + ProductType product_type = 7; + } +} diff --git a/google/ads/googleads/v10/resources/asset_group_product_group_view.proto b/google/ads/googleads/v10/resources/asset_group_product_group_view.proto new file mode 100644 index 000000000..9687deb0e --- /dev/null +++ b/google/ads/googleads/v10/resources/asset_group_product_group_view.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupProductGroupViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the AssetGroupProductGroupView resource. + +// An asset group product group view. +message AssetGroupProductGroupView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupProductGroupView" + pattern: "customers/{customer_id}/assetGroupProductGroupViews/{asset_group_id}~{listing_group_filter_id}" + }; + + // Output only. The resource name of the asset group product group view. + // Asset group product group view resource names have the form: + // + // `customers/{customer_id}/assetGroupProductGroupViews/{asset_group_id}~{listing_group_filter_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupProductGroupView" + } + ]; + + // Output only. The asset group associated with the listing group filter. + string asset_group = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Output only. The resource name of the asset group listing group filter. + string asset_group_listing_group_filter = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/asset_group_signal.proto b/google/ads/googleads/v10/resources/asset_group_signal.proto new file mode 100644 index 000000000..693d74c41 --- /dev/null +++ b/google/ads/googleads/v10/resources/asset_group_signal.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupSignalProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::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. +// Performance Max uses the signal to look for new people with similar or +// stronger intent to find conversions across Search, Display, Video, and more. +message AssetGroupSignal { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupSignal" + pattern: "customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}" + }; + + // Immutable. The resource name of the asset group signal. + // Asset group signal resource name have the form: + // + // `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{signal_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupSignal" + } + ]; + + // Immutable. The asset group which this asset group signal belongs to. + string asset_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Immutable. The signal(audience criterion) to be used by the performance max campaign. + google.ads.googleads.v10.common.AudienceInfo audience = 3 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v10/resources/asset_set.proto b/google/ads/googleads/v10/resources/asset_set.proto new file mode 100644 index 000000000..3dde31ad4 --- /dev/null +++ b/google/ads/googleads/v10/resources/asset_set.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/asset_set_status.proto"; +import "google/ads/googleads/v10/enums/asset_set_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// An asset set representing a collection of assets. +// Use AssetSetAsset to link an asset to the asset set. +message AssetSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetSet" + pattern: "customers/{customer_id}/assetSets/{asset_set_id}" + }; + + // Merchant ID and Feed Label from Google Merchant Center. + message MerchantCenterFeed { + // Required. Merchant ID from Google Merchant Center + int64 merchant_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Feed Label from Google Merchant Center. + optional string feed_label = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Output only. The ID of the asset set. + int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The resource name of the asset set. + // Asset set resource names have the form: + // + // `customers/{customer_id}/assetSets/{asset_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + } + ]; + + // Required. Name of the asset set. Required. It must have a minimum length of 1 and + // maximum length of 128. + string name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The type of the asset set. Required. + google.ads.googleads.v10.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.v10.enums.AssetSetStatusEnum.AssetSetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Merchant ID and Feed Label from Google Merchant Center. + MerchantCenterFeed merchant_center_feed = 5; +} diff --git a/google/ads/googleads/v10/resources/asset_set_asset.proto b/google/ads/googleads/v10/resources/asset_set_asset.proto new file mode 100644 index 000000000..1a09c8333 --- /dev/null +++ b/google/ads/googleads/v10/resources/asset_set_asset.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/asset_set_asset_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetAssetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// AssetSetAsset is the link between an asset and an asset set. +// Adding an AssetSetAsset links an asset with an asset set. +message AssetSetAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetSetAsset" + pattern: "customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}" + }; + + // Immutable. The resource name of the asset set asset. + // Asset set asset resource names have the form: + // + // `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSetAsset" + } + ]; + + // Immutable. The asset set which this asset set asset is linking to. + string asset_set = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + } + ]; + + // Immutable. The asset which this asset set asset is linking to. + string asset = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. The status of the asset set asset. Read-only. + google.ads.googleads.v10.enums.AssetSetAssetStatusEnum.AssetSetAssetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/audience.proto b/google/ads/googleads/v10/resources/audience.proto new file mode 100644 index 000000000..08065edca --- /dev/null +++ b/google/ads/googleads/v10/resources/audience.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/audiences.proto"; +import "google/ads/googleads/v10/enums/audience_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AudienceProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Audience resource. + +// Audience is an effective targeting option that allows you to +// intersect different segment attributes, such as detailed demographics and +// affinities, to create audiences that represent sections of your target +// segments. +message Audience { + option (google.api.resource) = { + type: "googleads.googleapis.com/Audience" + pattern: "customers/{customer_id}/audiences/{audience_id}" + }; + + // Immutable. The resource name of the audience. + // Audience names have the form: + // + // `customers/{customer_id}/audiences/{audience_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Audience" + } + ]; + + // Output only. ID of the audience. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of this audience. Indicates whether the audience + // is enabled or removed. + google.ads.googleads.v10.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]; + + // Description of this audience. + string description = 5; + + // Positive dimensions specifying the audience composition. + repeated google.ads.googleads.v10.common.AudienceDimension dimensions = 6; + + // Negative dimension specifying the audience composition. + google.ads.googleads.v10.common.AudienceExclusionDimension exclusion_dimension = 7; +} diff --git a/google/ads/googleads/v10/resources/batch_job.proto b/google/ads/googleads/v10/resources/batch_job.proto new file mode 100644 index 000000000..4540b7276 --- /dev/null +++ b/google/ads/googleads/v10/resources/batch_job.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/batch_job_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BatchJobProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the batch job resource. + +// A list of mutates being processed asynchronously. The mutates are uploaded +// by the user. The mutates themselves aren't readable and the results of the +// job can only be read using BatchJobService.ListBatchJobResults. +message BatchJob { + option (google.api.resource) = { + type: "googleads.googleapis.com/BatchJob" + pattern: "customers/{customer_id}/batchJobs/{batch_job_id}" + }; + + // Additional information about the batch job. This message is also used as + // metadata returned in batch job Long Running Operations. + message BatchJobMetadata { + // Output only. The time when this batch job was created. + // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:00" + optional string creation_date_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this batch job started running. + // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:30" + optional string start_date_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this batch job was completed. + // Formatted as yyyy-MM-dd HH:mm:ss. Example: "2018-03-05 09:16:00" + optional string completion_date_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The fraction (between 0.0 and 1.0) of mutates that have been processed. + // This is empty if the job hasn't started running yet. + optional double estimated_completion_ratio = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of mutate operations in the batch job. + optional int64 operation_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of mutate operations executed by the batch job. + // Present only if the job has started running. + optional int64 executed_operation_count = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the batch job. + // Batch job resource names have the form: + // + // `customers/{customer_id}/batchJobs/{batch_job_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + } + ]; + + // Output only. ID of this batch job. + optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The next sequence token to use when adding operations. Only set when the + // batch job status is PENDING. + optional string next_add_sequence_token = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Contains additional information about this batch job. + BatchJobMetadata metadata = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of this batch job. + google.ads.googleads.v10.enums.BatchJobStatusEnum.BatchJobStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the long-running operation that can be used to poll + // for completion. Only set when the batch job status is RUNNING or DONE. + optional string long_running_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/bidding_data_exclusion.proto b/google/ads/googleads/v10/resources/bidding_data_exclusion.proto new file mode 100644 index 000000000..2d8903dd7 --- /dev/null +++ b/google/ads/googleads/v10/resources/bidding_data_exclusion.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v10/enums/device.proto"; +import "google/ads/googleads/v10/enums/seasonality_event_scope.proto"; +import "google/ads/googleads/v10/enums/seasonality_event_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BiddingDataExclusionProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Represents a bidding data exclusion. +// +// See "About data exclusions" at +// https://support.google.com/google-ads/answer/10370710. +message BiddingDataExclusion { + option (google.api.resource) = { + type: "googleads.googleapis.com/BiddingDataExclusion" + pattern: "customers/{customer_id}/biddingDataExclusions/{seasonality_event_id}" + }; + + // Immutable. The resource name of the data exclusion. + // Data exclusion resource names have the form: + // + // `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingDataExclusion" + } + ]; + + // Output only. The ID of the data exclusion. + int64 data_exclusion_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The scope of the data exclusion. + google.ads.googleads.v10.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; + + // Output only. The status of the data exclusion. + google.ads.googleads.v10.enums.SeasonalityEventStatusEnum.SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The inclusive start time of the data exclusion in yyyy-MM-dd HH:mm:ss + // format. + // + // A data exclusion is backward looking and should be used for events that + // start in the past and end either in the past or future. + string start_date_time = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The exclusive end time of the data exclusion in yyyy-MM-dd HH:mm:ss format. + // + // The length of [start_date_time, end_date_time) interval must be + // within (0, 14 days]. + string end_date_time = 6 [(google.api.field_behavior) = REQUIRED]; + + // The name of the data exclusion. The name can be at most 255 + // characters. + string name = 7; + + // The description of the data exclusion. The description can be at + // most 2048 characters. + string description = 8; + + // 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.v10.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 + // 2000. + // Note: a data exclusion with both advertising_channel_types and + // campaign_ids is not supported. + repeated string campaigns = 10 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // The data_exclusion will apply to all the campaigns under the listed + // channels retroactively as well as going forward when the scope of this + // exclusion is CHANNEL. + // 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.v10.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_types = 11; +} diff --git a/google/ads/googleads/v10/resources/bidding_seasonality_adjustment.proto b/google/ads/googleads/v10/resources/bidding_seasonality_adjustment.proto new file mode 100644 index 000000000..ecc9b6dc3 --- /dev/null +++ b/google/ads/googleads/v10/resources/bidding_seasonality_adjustment.proto @@ -0,0 +1,113 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v10/enums/device.proto"; +import "google/ads/googleads/v10/enums/seasonality_event_scope.proto"; +import "google/ads/googleads/v10/enums/seasonality_event_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BiddingSeasonalityAdjustmentProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Represents a bidding seasonality adjustment. +// +// See "About seasonality adjustments" at +// https://support.google.com/google-ads/answer/10369906. +message BiddingSeasonalityAdjustment { + option (google.api.resource) = { + type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" + pattern: "customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_event_id}" + }; + + // Immutable. The resource name of the seasonality adjustment. + // Seasonality adjustment resource names have the form: + // + // `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" + } + ]; + + // Output only. The ID of the seasonality adjustment. + int64 seasonality_adjustment_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The scope of the seasonality adjustment. + google.ads.googleads.v10.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; + + // Output only. The status of the seasonality adjustment. + google.ads.googleads.v10.enums.SeasonalityEventStatusEnum.SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The inclusive start time of the seasonality adjustment in yyyy-MM-dd + // HH:mm:ss format. + // + // A seasonality adjustment is forward looking and should be used for events + // that start and end in the future. + string start_date_time = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The exclusive end time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss + // format. + // + // The length of [start_date_time, end_date_time) interval must be + // within (0, 14 days]. + string end_date_time = 6 [(google.api.field_behavior) = REQUIRED]; + + // The name of the seasonality adjustment. The name can be at most 255 + // characters. + string name = 7; + + // The description of the seasonality adjustment. The description can be at + // most 2048 characters. + string description = 8; + + // 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.v10.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 + // applied to traffic. The allowed range is 0.1 to 10.0. + double conversion_rate_modifier = 10; + + // The seasonality adjustment will apply to the campaigns listed when the + // scope of this adjustment is CAMPAIGN. The maximum number of campaigns per + // event is 2000. + // Note: a seasonality adjustment with both advertising_channel_types and + // campaign_ids is not supported. + repeated string campaigns = 11 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // The seasonality adjustment will apply to all the campaigns under the listed + // channels retroactively as well as going forward when the scope of this + // adjustment is CHANNEL. + // 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.v10.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_types = 12; +} diff --git a/google/ads/googleads/v10/resources/bidding_strategy.proto b/google/ads/googleads/v10/resources/bidding_strategy.proto new file mode 100644 index 000000000..9fa73b315 --- /dev/null +++ b/google/ads/googleads/v10/resources/bidding_strategy.proto @@ -0,0 +1,138 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/bidding.proto"; +import "google/ads/googleads/v10/enums/bidding_strategy_status.proto"; +import "google/ads/googleads/v10/enums/bidding_strategy_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the BiddingStrategy resource + +// A bidding strategy. +message BiddingStrategy { + option (google.api.resource) = { + type: "googleads.googleapis.com/BiddingStrategy" + pattern: "customers/{customer_id}/biddingStrategies/{bidding_strategy_id}" + }; + + // Immutable. The resource name of the bidding strategy. + // Bidding strategy resource names have the form: + // + // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategy" + } + ]; + + // Output only. The ID of the bidding strategy. + optional int64 id = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the bidding strategy. + // All bidding strategies within an account must be named distinctly. + // + // The length of this string should be between 1 and 255, inclusive, + // in UTF-8 bytes, (trimmed). + optional string name = 17; + + // Output only. The status of the bidding strategy. + // + // This field is read-only. + google.ads.googleads.v10.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.v10.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The currency used by the bidding strategy (ISO 4217 three-letter code). + // + // For bidding strategies in manager customers, this currency can be set on + // creation and defaults to the manager customer's currency. For serving + // customers, this field cannot be set; all strategies in a serving customer + // implicitly use the serving customer's currency. In all cases the + // effective_currency_code field returns the currency used by the strategy. + string currency_code = 23 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The currency used by the bidding strategy (ISO 4217 three-letter code). + // + // For bidding strategies in manager customers, this is the currency set by + // the advertiser when creating the strategy. For serving customers, this is + // the customer's currency_code. + // + // Bidding strategy metrics are reported in this currency. + // + // This field is read-only. + optional string effective_currency_code = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of campaigns attached to this bidding strategy. + // + // This field is read-only. + optional int64 campaign_count = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of non-removed campaigns attached to this bidding strategy. + // + // This field is read-only. + optional int64 non_removed_campaign_count = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The bidding scheme. + // + // Only one can be set. + oneof scheme { + // 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.v10.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.v10.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.v10.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.v10.common.TargetCpa target_cpa = 9; + + // A bidding strategy that automatically optimizes towards a desired + // percentage of impressions. + google.ads.googleads.v10.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.v10.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.v10.common.TargetSpend target_spend = 12; + } +} diff --git a/google/ads/googleads/v10/resources/bidding_strategy_simulation.proto b/google/ads/googleads/v10/resources/bidding_strategy_simulation.proto new file mode 100644 index 000000000..3726d607d --- /dev/null +++ b/google/ads/googleads/v10/resources/bidding_strategy_simulation.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/simulation.proto"; +import "google/ads/googleads/v10/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v10/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategySimulationProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the bidding strategy simulation resource. + +// A bidding strategy simulation. Supported combinations of simulation type +// and simulation modification method are detailed below respectively. +// +// 1. TARGET_CPA - UNIFORM +// 2. TARGET_ROAS - UNIFORM +message BiddingStrategySimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/BiddingStrategySimulation" + pattern: "customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the bidding strategy simulation. + // Bidding strategy simulation resource names have the form: + // + // `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategySimulation" + } + ]; + + // Output only. Bidding strategy shared set id of the simulation. + int64 bidding_strategy_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v10.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v10.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + string start_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format + string end_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is TARGET_CPA. + google.ads.googleads.v10.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.v10.common.TargetRoasSimulationPointList target_roas_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/billing_setup.proto b/google/ads/googleads/v10/resources/billing_setup.proto new file mode 100644 index 000000000..e664760b8 --- /dev/null +++ b/google/ads/googleads/v10/resources/billing_setup.proto @@ -0,0 +1,137 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/billing_setup_status.proto"; +import "google/ads/googleads/v10/enums/time_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BillingSetupProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the BillingSetup resource. + +// A billing setup, which associates a payments account and an advertiser. A +// billing setup is specific to one advertiser. +message BillingSetup { + option (google.api.resource) = { + type: "googleads.googleapis.com/BillingSetup" + pattern: "customers/{customer_id}/billingSetups/{billing_setup_id}" + }; + + // Container of payments account information for this billing. + message PaymentsAccountInfo { + // Output only. A 16 digit id used to identify the payments account associated with the + // billing setup. + // + // This must be passed as a string with dashes, e.g. "1234-5678-9012-3456". + optional string payments_account_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The name of the payments account associated with the billing setup. + // + // This enables the user to specify a meaningful name for a payments account + // to aid in reconciling monthly invoices. + // + // This name will be printed in the monthly invoices. + optional string payments_account_name = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A 12 digit id used to identify the payments profile associated with the + // billing setup. + // + // This must be passed in as a string with dashes, e.g. "1234-5678-9012". + optional string payments_profile_id = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The name of the payments profile associated with the billing setup. + optional string payments_profile_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A secondary payments profile id present in uncommon situations, e.g. + // when a sequential liability agreement has been arranged. + optional string secondary_payments_profile_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the billing setup. + // BillingSetup resource names have the form: + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + } + ]; + + // Output only. The ID of the billing setup. + optional int64 id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the billing setup. + google.ads.googleads.v10.enums.BillingSetupStatusEnum.BillingSetupStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The resource name of the payments account associated with this billing + // setup. Payments resource names have the form: + // + // `customers/{customer_id}/paymentsAccounts/{payments_account_id}` + // When setting up billing, this is used to signup with an existing payments + // account (and then payments_account_info should not be set). + // When getting a billing setup, this and payments_account_info will be + // populated. + optional string payments_account = 18 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/PaymentsAccount" + } + ]; + + // Immutable. The payments account information associated with this billing setup. + // When setting up billing, this is used to signup with a new payments account + // (and then payments_account should not be set). + // When getting a billing setup, this and payments_account will be + // populated. + PaymentsAccountInfo payments_account_info = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // When creating a new billing setup, this is when the setup should take + // effect. NOW is the only acceptable start time if the customer doesn't have + // any approved setups. + // + // When fetching an existing billing setup, this is the requested start time. + // However, if the setup was approved (see status) after the requested start + // time, then this is the approval time. + oneof start_time { + // Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. Only a + // future time is allowed. + string start_date_time = 16 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The start time as a type. Only NOW is allowed. + google.ads.googleads.v10.enums.TimeTypeEnum.TimeType start_time_type = 10 [(google.api.field_behavior) = IMMUTABLE]; + } + + // When the billing setup ends / ended. This is either FOREVER or the start + // time of the next scheduled billing setup. + oneof end_time { + // Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. + 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.v10.enums.TimeTypeEnum.TimeType end_time_type = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/call_view.proto b/google/ads/googleads/v10/resources/call_view.proto new file mode 100644 index 000000000..b64371d25 --- /dev/null +++ b/google/ads/googleads/v10/resources/call_view.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/call_tracking_display_location.proto"; +import "google/ads/googleads/v10/enums/call_type.proto"; +import "google/ads/googleads/v10/enums/google_voice_call_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CallViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the call view resource. + +// A call view that includes data for call tracking of call-only ads or call +// extensions. +message CallView { + option (google.api.resource) = { + type: "googleads.googleapis.com/CallView" + pattern: "customers/{customer_id}/callViews/{call_detail_id}" + }; + + // Output only. The resource name of the call view. + // Call view resource names have the form: + // + // `customers/{customer_id}/callViews/{call_detail_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CallView" + } + ]; + + // Output only. Country code of the caller. + string caller_country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Area code of the caller. Null if the call duration is shorter than 15 + // seconds. + string caller_area_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The advertiser-provided call duration in seconds. + int64 call_duration_seconds = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The advertiser-provided call start date time. + string start_call_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The advertiser-provided call end date time. + string end_call_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The call tracking display location. + google.ads.googleads.v10.enums.CallTrackingDisplayLocationEnum.CallTrackingDisplayLocation call_tracking_display_location = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the call. + google.ads.googleads.v10.enums.CallTypeEnum.CallType type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the call. + google.ads.googleads.v10.enums.GoogleVoiceCallStatusEnum.GoogleVoiceCallStatus call_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/campaign.proto b/google/ads/googleads/v10/resources/campaign.proto new file mode 100644 index 000000000..a0970bca9 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign.proto @@ -0,0 +1,468 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/bidding.proto"; +import "google/ads/googleads/v10/common/custom_parameter.proto"; +import "google/ads/googleads/v10/common/frequency_cap.proto"; +import "google/ads/googleads/v10/common/real_time_bidding_setting.proto"; +import "google/ads/googleads/v10/common/targeting_setting.proto"; +import "google/ads/googleads/v10/enums/ad_serving_optimization_status.proto"; +import "google/ads/googleads/v10/enums/advertising_channel_sub_type.proto"; +import "google/ads/googleads/v10/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v10/enums/app_campaign_app_store.proto"; +import "google/ads/googleads/v10/enums/app_campaign_bidding_strategy_goal_type.proto"; +import "google/ads/googleads/v10/enums/asset_field_type.proto"; +import "google/ads/googleads/v10/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v10/enums/brand_safety_suitability.proto"; +import "google/ads/googleads/v10/enums/campaign_experiment_type.proto"; +import "google/ads/googleads/v10/enums/campaign_serving_status.proto"; +import "google/ads/googleads/v10/enums/campaign_status.proto"; +import "google/ads/googleads/v10/enums/location_source_type.proto"; +import "google/ads/googleads/v10/enums/negative_geo_target_type.proto"; +import "google/ads/googleads/v10/enums/optimization_goal_type.proto"; +import "google/ads/googleads/v10/enums/payment_mode.proto"; +import "google/ads/googleads/v10/enums/positive_geo_target_type.proto"; +import "google/ads/googleads/v10/enums/vanity_pharma_display_url_mode.proto"; +import "google/ads/googleads/v10/enums/vanity_pharma_text.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Campaign resource. + +// A campaign. +message Campaign { + option (google.api.resource) = { + type: "googleads.googleapis.com/Campaign" + pattern: "customers/{customer_id}/campaigns/{campaign_id}" + }; + + // The network settings for the campaign. + message NetworkSettings { + // Whether ads will be served with google.com search results. + optional bool target_google_search = 5; + + // Whether ads will be served on partner sites in the Google Search Network + // (requires `target_google_search` to also be `true`). + optional bool target_search_network = 6; + + // Whether ads will be served on specified placements in the Google Display + // Network. Placements are specified using the Placement criterion. + optional bool target_content_network = 7; + + // 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; + } + + // Campaign-level settings for hotel ads. + message HotelSettingInfo { + // Immutable. The linked Hotel Center account. + optional int64 hotel_center_id = 2 [(google.api.field_behavior) = IMMUTABLE]; + } + + // The setting for controlling Dynamic Search Ads (DSA). + message DynamicSearchAdsSetting { + // Required. The Internet domain name that this setting represents, e.g., "google.com" + // or "www.google.com". + string domain_name = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. The language code specifying the language of the domain, e.g., "en". + string language_code = 7 [(google.api.field_behavior) = REQUIRED]; + + // Whether the campaign uses advertiser supplied URLs exclusively. + optional bool use_supplied_urls_only = 8; + + // The list of page feeds associated with the campaign. + repeated string feeds = 9 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + }]; + } + + // The setting for Shopping campaigns. Defines the universe of products that + // can be advertised by the campaign, and how this campaign interacts with + // other Shopping campaigns. + message ShoppingSetting { + // Immutable. 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. + // This field is required for Shopping campaigns. + // This field is optional for non-Shopping campaigns, but it must be equal + // to 'ZZ' if set. + optional string sales_country = 6; + + // Priority of the campaign. Campaigns with numerically higher priorities + // take precedence over those with lower priorities. + // This field is required for Shopping campaigns, with values between 0 and + // 2, inclusive. + // This field is optional for Smart Shopping campaigns, but must be equal to + // 3 if set. + optional int32 campaign_priority = 7; + + // Whether to include local products. + optional bool enable_local = 8; + + // Immutable. Whether to target Vehicle Listing inventory. + bool use_vehicle_inventory = 9 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Campaign-level settings for tracking information. + message TrackingSetting { + // Output only. The url used for dynamic tracking. + optional string tracking_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Represents a collection of settings related to ads geotargeting. + message GeoTargetTypeSetting { + // The setting used for positive geotargeting in this particular campaign. + google.ads.googleads.v10.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType positive_geo_target_type = 1; + + // The setting used for negative geotargeting in this particular campaign. + google.ads.googleads.v10.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.v10.enums.LocationSourceTypeEnum.LocationSourceType location_source_type = 1; + } + + // Campaign-level settings for App Campaigns. + message AppCampaignSetting { + // Represents the goal which the bidding strategy of this app campaign + // should optimize towards. + google.ads.googleads.v10.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.v10.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.v10.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.v10.enums.VanityPharmaTextEnum.VanityPharmaText vanity_pharma_text = 2; + } + + // Selective optimization setting for this campaign, which includes a set of + // conversion actions to optimize this campaign towards. + message SelectiveOptimization { + // The selected set of conversion actions for optimizing this campaign. + repeated string conversion_actions = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + } + + // Optimization goal setting for this campaign, which includes a set of + // optimization goal types. + message OptimizationGoalSetting { + // The list of optimization goal types. + repeated google.ads.googleads.v10.enums.OptimizationGoalTypeEnum.OptimizationGoalType optimization_goal_types = 1; + } + + // Settings for the audience targeting. + message AudienceSetting { + // Immutable. If true, this campaign uses an Audience resource for audience targeting. + // If false, this campaign may use audience segment criteria instead. + optional bool use_audience_grouped = 1 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Immutable. The resource name of the campaign. + // Campaign resource names have the form: + // + // `customers/{customer_id}/campaigns/{campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ID of the campaign. + optional int64 id = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the campaign. + // + // This field is required and should not be empty when creating new + // campaigns. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + optional string name = 58; + + // The status of the campaign. + // + // When a new campaign is added, the status defaults to ENABLED. + google.ads.googleads.v10.enums.CampaignStatusEnum.CampaignStatus status = 5; + + // Output only. The ad serving status of the campaign. + google.ads.googleads.v10.enums.CampaignServingStatusEnum.CampaignServingStatus serving_status = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The ad serving optimization status of the campaign. + google.ads.googleads.v10.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus ad_serving_optimization_status = 8; + + // Immutable. The primary serving target for ads within the campaign. + // The targeting options can be refined in `network_settings`. + // + // This field is required and should not be empty when creating new + // campaigns. + // + // Can be set only when creating campaigns. + // After the campaign is created, the field can not be changed. + google.ads.googleads.v10.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Optional refinement to `advertising_channel_type`. + // Must be a valid sub-type of the parent channel type. + // + // Can be set only when creating campaigns. + // After campaign is created, the field can not be changed. + google.ads.googleads.v10.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 10 [(google.api.field_behavior) = IMMUTABLE]; + + // The URL template for constructing a tracking URL. + optional string tracking_url_template = 60; + + // 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.v10.common.CustomParameter url_custom_parameters = 12; + + // Settings for Real-Time Bidding, a feature only available for campaigns + // targeting the Ad Exchange network. + google.ads.googleads.v10.common.RealTimeBiddingSetting real_time_bidding_setting = 39; + + // The network settings for the campaign. + NetworkSettings network_settings = 14; + + // Immutable. The hotel setting for the campaign. + HotelSettingInfo hotel_setting = 32 [(google.api.field_behavior) = IMMUTABLE]; + + // The setting for controlling Dynamic Search Ads (DSA). + DynamicSearchAdsSetting dynamic_search_ads_setting = 33; + + // The setting for controlling Shopping campaigns. + ShoppingSetting shopping_setting = 36; + + // Setting for targeting related features. + google.ads.googleads.v10.common.TargetingSetting targeting_setting = 43; + + // Immutable. Setting for audience related features. + optional AudienceSetting audience_setting = 73 [(google.api.field_behavior) = IMMUTABLE]; + + // The setting for ads geotargeting. + GeoTargetTypeSetting geo_target_type_setting = 47; + + // The setting for local campaign. + LocalCampaignSetting local_campaign_setting = 50; + + // The setting related to App Campaign. + AppCampaignSetting app_campaign_setting = 51; + + // Output only. The resource names of labels attached to this campaign. + repeated string labels = 61 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLabel" + } + ]; + + // Output only. The type of campaign: normal, draft, or experiment. + google.ads.googleads.v10.enums.CampaignExperimentTypeEnum.CampaignExperimentType experiment_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the base campaign of a draft or experiment campaign. + // For base campaigns, this is equal to `resource_name`. + // + // This field is read-only. + optional string base_campaign = 56 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The budget of the campaign. + optional string campaign_budget = 62 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + }]; + + // Output only. The type of bidding strategy. + // + // A bidding strategy can be created by setting either the bidding scheme to + // create a standard bidding strategy or the `bidding_strategy` field to + // create a portfolio bidding strategy. + // + // This field is read-only. + google.ads.googleads.v10.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: "googleads.googleapis.com/AccessibleBiddingStrategy" + } + ]; + + // The date when campaign started in serving customer's timezone in YYYY-MM-DD + // format. + optional string start_date = 63; + + // The campaign group this campaign belongs to. + optional string campaign_group = 76 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignGroup" + }]; + + // The last day of the campaign in serving customer's timezone in YYYY-MM-DD + // format. + optional string end_date = 64; + + // Suffix used to append query parameters to landing pages that are served + // with parallel tracking. + optional string final_url_suffix = 65; + + // A list that limits how often each user will see this campaign's ads. + repeated google.ads.googleads.v10.common.FrequencyCapEntry frequency_caps = 40; + + // Output only. 3-Tier Brand Safety setting for the campaign. + google.ads.googleads.v10.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability video_brand_safety_suitability = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Describes how unbranded pharma ads will be displayed. + VanityPharma vanity_pharma = 44; + + // Selective optimization setting for this campaign, which includes a set of + // conversion actions to optimize this campaign towards. + SelectiveOptimization selective_optimization = 45; + + // Optimization goal setting for this campaign, which includes a set of + // optimization goal types. + OptimizationGoalSetting optimization_goal_setting = 54; + + // Output only. Campaign-level settings for tracking information. + TrackingSetting tracking_setting = 46 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Payment mode for the campaign. + google.ads.googleads.v10.enums.PaymentModeEnum.PaymentMode payment_mode = 52; + + // Output only. Optimization score of the campaign. + // + // Optimization score is an estimate of how well a campaign is set to perform. + // It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the + // campaign is performing at full potential. This field is null for unscored + // campaigns. + // + // See "About optimization score" at + // https://support.google.com/google-ads/answer/9061546. + // + // This field is read-only. + optional double optimization_score = 66 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v10.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 69; + + // Represents opting out of URL expansion to more targeted URLs. If opted out + // (true), only the final URLs in the asset group or URLs specified in the + // advertiser's Google Merchant Center or business data feeds are targeted. + // If opted in (false), the entire domain will be targeted. This field can + // only be set for Performance Max campaigns, where the default value is + // false. + optional bool url_expansion_opt_out = 72; + + // The bidding strategy for the campaign. + // + // Must be either portfolio (created via BiddingStrategy service) or + // standard, that is embedded into the campaign. + oneof campaign_bidding_strategy { + // Portfolio bidding strategy used by campaign. + string bidding_strategy = 67 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategy" + }]; + + // Commission is an automatic bidding strategy in which the advertiser pays + // a certain portion of the conversion value. + google.ads.googleads.v10.common.Commission commission = 49; + + // Standard Manual CPC bidding strategy. + // Manual click-based bidding where user pays per click. + google.ads.googleads.v10.common.ManualCpc manual_cpc = 24; + + // Standard Manual CPM bidding strategy. + // Manual impression-based bidding where user pays per thousand + // impressions. + google.ads.googleads.v10.common.ManualCpm manual_cpm = 25; + + // Output only. A bidding strategy that pays a configurable amount per video view. + google.ads.googleads.v10.common.ManualCpv manual_cpv = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Standard Maximize Conversions bidding strategy that automatically + // maximizes number of conversions while spending your budget. + google.ads.googleads.v10.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.v10.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.v10.common.TargetCpa target_cpa = 26; + + // Target Impression Share bidding strategy. An automated bidding strategy + // that sets bids to achieve a desired percentage of impressions. + google.ads.googleads.v10.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.v10.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.v10.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.v10.common.PercentCpc percent_cpc = 34; + + // A bidding strategy that automatically optimizes cost per thousand + // impressions. + google.ads.googleads.v10.common.TargetCpm target_cpm = 41; + } +} diff --git a/google/ads/googleads/v10/resources/campaign_asset.proto b/google/ads/googleads/v10/resources/campaign_asset.proto new file mode 100644 index 000000000..f68891d65 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_asset.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/asset_field_type.proto"; +import "google/ads/googleads/v10/enums/asset_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAssetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CampaignAsset resource. + +// A link between a Campaign and an Asset. +message CampaignAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignAsset" + pattern: "customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}" + }; + + // Immutable. The resource name of the campaign asset. + // CampaignAsset resource names have the form: + // + // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAsset" + } + ]; + + // Immutable. The campaign to which the asset is linked. + optional string campaign = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The asset which is linked to the campaign. + optional string asset = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Immutable. Role that the asset takes under the linked campaign. + // Required. + google.ads.googleads.v10.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Status of the campaign asset. + google.ads.googleads.v10.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; +} diff --git a/google/ads/googleads/v10/resources/campaign_asset_set.proto b/google/ads/googleads/v10/resources/campaign_asset_set.proto new file mode 100644 index 000000000..e2e3761dc --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_asset_set.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/asset_set_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAssetSetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CampaignAsset resource. + +// CampaignAssetSet is the linkage between a campaign and an asset set. +// Adding a CampaignAssetSet links an asset set with a campaign. +message CampaignAssetSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignAssetSet" + pattern: "customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}" + }; + + // Immutable. The resource name of the campaign asset set. + // Asset set asset resource names have the form: + // + // `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAssetSet" + } + ]; + + // Immutable. The campaign to which this asset set is linked. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The asset set which is linked to the campaign. + string asset_set = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + } + ]; + + // Output only. The status of the campaign asset set asset. Read-only. + google.ads.googleads.v10.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/campaign_audience_view.proto b/google/ads/googleads/v10/resources/campaign_audience_view.proto new file mode 100644 index 000000000..dd406a6d5 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_audience_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAudienceViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the campaign audience view resource. + +// A campaign audience view. +// Includes performance data from interests and remarketing lists for Display +// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), +// aggregated by campaign and audience criterion. This view only includes +// audiences attached at the campaign level. +message CampaignAudienceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignAudienceView" + pattern: "customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}" + }; + + // Output only. The resource name of the campaign audience view. + // Campaign audience view resource names have the form: + // + // `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAudienceView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/campaign_bid_modifier.proto b/google/ads/googleads/v10/resources/campaign_bid_modifier.proto new file mode 100644 index 000000000..2e711c9a4 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_bid_modifier.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBidModifierProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Campaign Bid Modifier resource. + +// Represents a bid-modifiable only criterion at the campaign level. +message CampaignBidModifier { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignBidModifier" + pattern: "customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}" + }; + + // Immutable. The resource name of the campaign bid modifier. + // Campaign bid modifier resource names have the form: + // + // `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBidModifier" + } + ]; + + // Output only. The campaign to which this criterion belongs. + optional string campaign = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ID of the criterion to bid modify. + // + // This field is ignored for mutates. + optional int64 criterion_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The modifier for the bid when the criterion matches. + optional double bid_modifier = 8; + + // The criterion of this campaign bid modifier. + // + // Required in create operations starting in V5. + oneof criterion { + // Immutable. Criterion for interaction type. Only supported for search campaigns. + google.ads.googleads.v10.common.InteractionTypeInfo interaction_type = 5 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v10/resources/campaign_budget.proto b/google/ads/googleads/v10/resources/campaign_budget.proto new file mode 100644 index 000000000..8febd40e7 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_budget.proto @@ -0,0 +1,155 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/budget_delivery_method.proto"; +import "google/ads/googleads/v10/enums/budget_period.proto"; +import "google/ads/googleads/v10/enums/budget_status.proto"; +import "google/ads/googleads/v10/enums/budget_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBudgetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Budget resource. + +// A campaign budget. +message CampaignBudget { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignBudget" + pattern: "customers/{customer_id}/campaignBudgets/{campaign_budget_id}" + }; + + // Immutable. The resource name of the campaign budget. + // Campaign budget resource names have the form: + // + // `customers/{customer_id}/campaignBudgets/{campaign_budget_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + } + ]; + + // Output only. The ID of the campaign budget. + // + // A campaign budget is created using the CampaignBudgetService create + // operation and is assigned a budget ID. A budget ID can be shared across + // different campaigns; the system will then allocate the campaign budget + // among different campaigns to get optimum results. + optional int64 id = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the campaign budget. + // + // When creating a campaign budget through CampaignBudgetService, every + // explicitly shared campaign budget must have a non-null, non-empty name. + // Campaign budgets that are not explicitly shared derive their name from the + // attached campaign's name. + // + // The length of this string must be between 1 and 255, inclusive, + // in UTF-8 bytes, (trimmed). + optional string name = 20; + + // The amount of the budget, in the local currency for the account. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. Monthly spend is capped at 30.4 times this amount. + optional int64 amount_micros = 21; + + // The lifetime amount of the budget, in the local currency for the account. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + optional int64 total_amount_micros = 22; + + // Output only. The status of this campaign budget. This field is read-only. + google.ads.googleads.v10.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.v10.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod delivery_method = 7; + + // Specifies whether the budget is explicitly shared. Defaults to true if + // unspecified in a create operation. + // + // If true, the budget was created with the purpose of sharing + // across one or more campaigns. + // + // If false, the budget was created with the intention of only being used + // with a single campaign. The budget's name and status will stay in sync + // with the campaign's name and status. Attempting to share the budget with a + // second campaign will result in an error. + // + // A non-shared budget can become an explicitly shared. The same operation + // must also assign the budget a name. + // + // A shared campaign budget can never become non-shared. + optional bool explicitly_shared = 23; + + // Output only. The number of campaigns actively using the budget. + // + // This field is read-only. + optional int64 reference_count = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether there is a recommended budget for this campaign budget. + // + // This field is read-only. + optional bool has_recommended_budget = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended budget amount. If no recommendation is available, this will + // be set to the budget amount. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + // + // This field is read-only. + optional int64 recommended_budget_amount_micros = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Period over which to spend the budget. Defaults to DAILY if not specified. + google.ads.googleads.v10.enums.BudgetPeriodEnum.BudgetPeriod period = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The estimated change in weekly clicks if the recommended budget is applied. + // + // This field is read-only. + optional int64 recommended_budget_estimated_change_weekly_clicks = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimated change in weekly cost in micros if the recommended budget is + // applied. One million is equivalent to one currency unit. + // + // This field is read-only. + optional int64 recommended_budget_estimated_change_weekly_cost_micros = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimated change in weekly interactions if the recommended budget is + // applied. + // + // This field is read-only. + optional int64 recommended_budget_estimated_change_weekly_interactions = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimated change in weekly views if the recommended budget is applied. + // + // This field is read-only. + optional int64 recommended_budget_estimated_change_weekly_views = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The type of the campaign budget. + google.ads.googleads.v10.enums.BudgetTypeEnum.BudgetType type = 18 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v10/resources/campaign_conversion_goal.proto b/google/ads/googleads/v10/resources/campaign_conversion_goal.proto new file mode 100644 index 000000000..2b6a85cc3 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_conversion_goal.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/conversion_action_category.proto"; +import "google/ads/googleads/v10/enums/conversion_origin.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignConversionGoalProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// The biddability setting for the specified campaign only for all +// conversion actions with a matching category and origin. +message CampaignConversionGoal { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignConversionGoal" + pattern: "customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{source}" + }; + + // Immutable. The resource name of the campaign conversion goal. + // Campaign conversion goal resource names have the form: + // + // `customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{origin}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignConversionGoal" + } + ]; + + // Immutable. The campaign with which this campaign conversion goal is associated. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The conversion category of this campaign conversion goal. + google.ads.googleads.v10.enums.ConversionActionCategoryEnum.ConversionActionCategory category = 3; + + // The conversion origin of this campaign conversion goal. + google.ads.googleads.v10.enums.ConversionOriginEnum.ConversionOrigin origin = 4; + + // The biddability of the campaign conversion goal. + bool biddable = 5; +} diff --git a/google/ads/googleads/v10/resources/campaign_criterion.proto b/google/ads/googleads/v10/resources/campaign_criterion.proto new file mode 100644 index 000000000..595e8643b --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_criterion.proto @@ -0,0 +1,180 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/enums/campaign_criterion_status.proto"; +import "google/ads/googleads/v10/enums/criterion_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Campaign Criterion resource. + +// A campaign criterion. +message CampaignCriterion { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignCriterion" + pattern: "customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}" + }; + + // Immutable. The resource name of the campaign criterion. + // Campaign criterion resource names have the form: + // + // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterion" + } + ]; + + // Immutable. The campaign to which the criterion belongs. + optional string campaign = 37 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ID of the criterion. + // + // This field is ignored during mutate. + optional int64 criterion_id = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name of the criterion. + // + // This field is ignored for mutates. + string display_name = 43 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The modifier for the bids when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. + // Use 0 to opt out of a Device type. + optional float bid_modifier = 39; + + // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. + optional bool negative = 40 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The type of the criterion. + google.ads.googleads.v10.enums.CriterionTypeEnum.CriterionType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The status of the criterion. + google.ads.googleads.v10.enums.CampaignCriterionStatusEnum.CampaignCriterionStatus status = 35; + + // The campaign criterion. + // + // Exactly one must be set. + oneof criterion { + // Immutable. Keyword. + google.ads.googleads.v10.common.KeywordInfo keyword = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Placement. + google.ads.googleads.v10.common.PlacementInfo placement = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile app category. + google.ads.googleads.v10.common.MobileAppCategoryInfo mobile_app_category = 10 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile application. + google.ads.googleads.v10.common.MobileApplicationInfo mobile_application = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Location. + google.ads.googleads.v10.common.LocationInfo location = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Device. + google.ads.googleads.v10.common.DeviceInfo device = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Ad Schedule. + google.ads.googleads.v10.common.AdScheduleInfo ad_schedule = 15 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Age range. + google.ads.googleads.v10.common.AgeRangeInfo age_range = 16 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Gender. + google.ads.googleads.v10.common.GenderInfo gender = 17 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Income range. + google.ads.googleads.v10.common.IncomeRangeInfo income_range = 18 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Parental status. + google.ads.googleads.v10.common.ParentalStatusInfo parental_status = 19 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. User List. + google.ads.googleads.v10.common.UserListInfo user_list = 22 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Video. + google.ads.googleads.v10.common.YouTubeVideoInfo youtube_video = 20 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Channel. + google.ads.googleads.v10.common.YouTubeChannelInfo youtube_channel = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Proximity. + google.ads.googleads.v10.common.ProximityInfo proximity = 23 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Topic. + google.ads.googleads.v10.common.TopicInfo topic = 24 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Listing scope. + google.ads.googleads.v10.common.ListingScopeInfo listing_scope = 25 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Language. + google.ads.googleads.v10.common.LanguageInfo language = 26 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. IpBlock. + google.ads.googleads.v10.common.IpBlockInfo ip_block = 27 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. ContentLabel. + google.ads.googleads.v10.common.ContentLabelInfo content_label = 28 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Carrier. + google.ads.googleads.v10.common.CarrierInfo carrier = 29 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. User Interest. + google.ads.googleads.v10.common.UserInterestInfo user_interest = 30 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Webpage. + google.ads.googleads.v10.common.WebpageInfo webpage = 31 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Operating system version. + google.ads.googleads.v10.common.OperatingSystemVersionInfo operating_system_version = 32 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile Device. + google.ads.googleads.v10.common.MobileDeviceInfo mobile_device = 33 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Location Group + google.ads.googleads.v10.common.LocationGroupInfo location_group = 34 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Affinity. + google.ads.googleads.v10.common.CustomAffinityInfo custom_affinity = 36 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Audience + google.ads.googleads.v10.common.CustomAudienceInfo custom_audience = 41 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Combined Audience. + google.ads.googleads.v10.common.CombinedAudienceInfo combined_audience = 42 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Smart Campaign Keyword Theme. + google.ads.googleads.v10.common.KeywordThemeInfo keyword_theme = 45 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v10/resources/campaign_criterion_simulation.proto b/google/ads/googleads/v10/resources/campaign_criterion_simulation.proto new file mode 100644 index 000000000..81f5f4faf --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_criterion_simulation.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/simulation.proto"; +import "google/ads/googleads/v10/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v10/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionSimulationProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the campaign criterion simulation resource. + +// A campaign criterion simulation. Supported combinations of advertising +// channel type, criterion ids, simulation type and simulation modification +// method is detailed below respectively. +// +// 1. SEARCH - 30000,30001,30002 - BID_MODIFIER - UNIFORM +// 2. DISPLAY - 30001 - BID_MODIFIER - UNIFORM +message CampaignCriterionSimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignCriterionSimulation" + pattern: "customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the campaign criterion simulation. + // Campaign criterion simulation resource names have the form: + // + // `customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterionSimulation" + } + ]; + + // Output only. Campaign ID of the simulation. + optional int64 campaign_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Criterion ID of the simulation. + optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v10.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v10.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + optional string start_date = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format. + optional string end_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is BID_MODIFIER. + google.ads.googleads.v10.common.BidModifierSimulationPointList bid_modifier_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/campaign_customizer.proto b/google/ads/googleads/v10/resources/campaign_customizer.proto new file mode 100644 index 000000000..6a3002ac7 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_customizer.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/customizer_value.proto"; +import "google/ads/googleads/v10/enums/customizer_value_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCustomizerProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// A customizer value for the associated CustomizerAttribute at the Campaign +// level. +message CampaignCustomizer { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignCustomizer" + pattern: "customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}" + }; + + // Immutable. The resource name of the campaign customizer. + // Campaign customizer resource names have the form: + // + // `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCustomizer" + } + ]; + + // Immutable. The campaign to which the customizer attribute is linked. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Required. Immutable. The customizer attribute which is linked to the campaign. + string customizer_attribute = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The status of the campaign customizer. + google.ads.googleads.v10.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.v10.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v10/resources/campaign_draft.proto b/google/ads/googleads/v10/resources/campaign_draft.proto new file mode 100644 index 000000000..0ec53921d --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_draft.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/campaign_draft_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignDraftProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Campaign Draft resource. + +// A campaign draft. +message CampaignDraft { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignDraft" + pattern: "customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}" + }; + + // Immutable. The resource name of the campaign draft. + // Campaign draft resource names have the form: + // + // `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + } + ]; + + // Output only. The ID of the draft. + // + // This field is read-only. + optional int64 draft_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The base campaign to which the draft belongs. + optional string base_campaign = 10 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The name of the campaign draft. + // + // This field is required and should not be empty when creating new + // campaign drafts. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + optional string name = 11; + + // Output only. Resource name of the Campaign that results from overlaying the draft + // changes onto the base campaign. + // + // This field is read-only. + optional string draft_campaign = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // 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.v10.enums.CampaignDraftStatusEnum.CampaignDraftStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether there is an experiment based on this draft currently serving. + optional bool has_experiment_running = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the long-running operation that can be used to poll + // for completion of draft promotion. This is only set if the draft promotion + // is in progress or finished. + optional string long_running_operation = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/campaign_experiment.proto b/google/ads/googleads/v10/resources/campaign_experiment.proto new file mode 100644 index 000000000..f2ca0b65c --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_experiment.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/campaign_experiment_status.proto"; +import "google/ads/googleads/v10/enums/campaign_experiment_traffic_split_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Campaign Experiment resource. + +// An A/B experiment that compares the performance of the base campaign +// (the control) and a variation of that campaign (the experiment). +message CampaignExperiment { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignExperiment" + pattern: "customers/{customer_id}/campaignExperiments/{campaign_experiment_id}" + }; + + // Immutable. The resource name of the campaign experiment. + // Campaign experiment resource names have the form: + // + // `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // Output only. The ID of the campaign experiment. + // + // This field is read-only. + optional int64 id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The campaign draft with staged changes to the base campaign. + optional string campaign_draft = 14 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + } + ]; + + // The name of the campaign experiment. + // + // This field is required when creating new campaign experiments + // and must not conflict with the name of another non-removed + // campaign experiment or campaign. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + optional string name = 15; + + // The description of the experiment. + optional string description = 16; + + // Immutable. Share of traffic directed to experiment as a percent (must be between 1 and + // 99 inclusive. Base campaign receives the remainder of the traffic + // (100 - traffic_split_percent). Required for create. + optional int64 traffic_split_percent = 17 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Determines the behavior of the traffic split. + google.ads.googleads.v10.enums.CampaignExperimentTrafficSplitTypeEnum.CampaignExperimentTrafficSplitType traffic_split_type = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The experiment campaign, as opposed to the base campaign. + optional string experiment_campaign = 18 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The status of the campaign experiment. This field is read-only. + google.ads.googleads.v10.enums.CampaignExperimentStatusEnum.CampaignExperimentStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the long-running operation that can be used to poll + // for completion of experiment create or promote. The most recent long + // running operation is returned. + optional string long_running_operation = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Date when the campaign experiment starts. By default, the experiment starts + // now or on the campaign's start date, whichever is later. If this field is + // set, then the experiment starts at the beginning of the specified date in + // the customer's time zone. Cannot be changed once the experiment starts. + // + // Format: YYYY-MM-DD + // Example: 2019-03-14 + optional string start_date = 20; + + // The last day of the campaign experiment. By default, the experiment ends on + // the campaign's end date. If this field is set, then the experiment ends at + // the end of the specified date in the customer's time zone. + // + // Format: YYYY-MM-DD + // Example: 2019-04-18 + optional string end_date = 21; +} diff --git a/google/ads/googleads/v10/resources/campaign_extension_setting.proto b/google/ads/googleads/v10/resources/campaign_extension_setting.proto new file mode 100644 index 000000000..613a8a280 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_extension_setting.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/extension_setting_device.proto"; +import "google/ads/googleads/v10/enums/extension_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExtensionSettingProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CampaignExtensionSetting resource. + +// A campaign extension setting. +message CampaignExtensionSetting { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignExtensionSetting" + pattern: "customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}" + }; + + // Immutable. The resource name of the campaign extension setting. + // CampaignExtensionSetting resource names have the form: + // + // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExtensionSetting" + } + ]; + + // Immutable. The extension type of the customer extension setting. + google.ads.googleads.v10.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The resource name of the campaign. The linked extension feed items will + // serve under this campaign. + // Campaign resource names have the form: + // + // `customers/{customer_id}/campaigns/{campaign_id}` + optional string campaign = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The resource names of the extension feed items to serve under the campaign. + // ExtensionFeedItem resource names have the form: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + repeated string extension_feed_items = 7 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + + // The device for which the extensions will serve. Optional. + google.ads.googleads.v10.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5; +} diff --git a/google/ads/googleads/v10/resources/campaign_feed.proto b/google/ads/googleads/v10/resources/campaign_feed.proto new file mode 100644 index 000000000..2dd70118f --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_feed.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/matching_function.proto"; +import "google/ads/googleads/v10/enums/feed_link_status.proto"; +import "google/ads/googleads/v10/enums/placeholder_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignFeedProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CampaignFeed resource. + +// A campaign feed. +message CampaignFeed { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignFeed" + pattern: "customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}" + }; + + // Immutable. The resource name of the campaign feed. + // Campaign feed resource names have the form: + // + // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id} + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignFeed" + } + ]; + + // Immutable. The feed to which the CampaignFeed belongs. + optional string feed = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Immutable. The campaign to which the CampaignFeed belongs. + optional string campaign = 8 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Indicates which placeholder types the feed may populate under the connected + // campaign. Required. + repeated google.ads.googleads.v10.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.v10.common.MatchingFunction matching_function = 5; + + // Output only. Status of the campaign feed. + // This field is read-only. + google.ads.googleads.v10.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/campaign_group.proto b/google/ads/googleads/v10/resources/campaign_group.proto new file mode 100644 index 000000000..6f4a9d7bb --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_group.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/campaign_group_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignGroupProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Campaign group resource. + +// A campaign group. +message CampaignGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignGroup" + pattern: "customers/{customer_id}/campaignGroups/{campaign_group_id}" + }; + + // Immutable. The resource name of the campaign group. + // Campaign group resource names have the form: + // + // `customers/{customer_id}/campaignGroups/{campaign_group_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignGroup" + } + ]; + + // Output only. The ID of the campaign group. + int64 id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the campaign group. + // + // This field is required and should not be empty when creating new campaign + // groups. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + string name = 4; + + // The status of the campaign group. + // + // When a new campaign group is added, the status defaults to ENABLED. + google.ads.googleads.v10.enums.CampaignGroupStatusEnum.CampaignGroupStatus status = 5; +} diff --git a/google/ads/googleads/v10/resources/campaign_label.proto b/google/ads/googleads/v10/resources/campaign_label.proto new file mode 100644 index 000000000..c5abc4b46 --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignLabelProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the campaign label resource. + +// Represents a relationship between a campaign and a label. +message CampaignLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignLabel" + pattern: "customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}" + }; + + // Immutable. Name of the resource. + // Campaign label resource names have the form: + // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLabel" + } + ]; + + // Immutable. The campaign to which the label is attached. + optional string campaign = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The label assigned to the campaign. + optional string label = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/campaign_shared_set.proto b/google/ads/googleads/v10/resources/campaign_shared_set.proto new file mode 100644 index 000000000..1cf5034ea --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_shared_set.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/campaign_shared_set_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSharedSetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CampaignSharedSet resource. + +// CampaignSharedSets are used for managing the shared sets associated with a +// campaign. +message CampaignSharedSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignSharedSet" + pattern: "customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}" + }; + + // Immutable. The resource name of the campaign shared set. + // Campaign shared set resource names have the form: + // + // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSharedSet" + } + ]; + + // Immutable. The campaign to which the campaign shared set belongs. + optional string campaign = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The shared set associated with the campaign. This may be a negative keyword + // shared set of another customer. This customer should be a manager of the + // other customer, otherwise the campaign shared set will exist but have no + // serving effect. Only negative keyword shared sets can be associated with + // Shopping campaigns. Only negative placement shared sets can be associated + // with Display mobile app campaigns. + optional string shared_set = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + } + ]; + + // Output only. The status of this campaign shared set. Read only. + google.ads.googleads.v10.enums.CampaignSharedSetStatusEnum.CampaignSharedSetStatus status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/campaign_simulation.proto b/google/ads/googleads/v10/resources/campaign_simulation.proto new file mode 100644 index 000000000..27145cd8d --- /dev/null +++ b/google/ads/googleads/v10/resources/campaign_simulation.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/simulation.proto"; +import "google/ads/googleads/v10/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v10/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSimulationProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the campaign simulation resource. + +// A campaign simulation. Supported combinations of advertising +// channel type, simulation type and simulation modification +// method is detailed below respectively. +// +// SEARCH - CPC_BID - UNIFORM +// SEARCH - CPC_BID - SCALING +// SEARCH - TARGET_CPA - UNIFORM +// SEARCH - TARGET_CPA - SCALING +// SEARCH - TARGET_ROAS - UNIFORM +// SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM +// SEARCH - BUDGET - UNIFORM +// SHOPPING - BUDGET - UNIFORM +// SHOPPING - TARGET_ROAS - UNIFORM +// MULTIPLE - TARGET_CPA - UNIFORM +// OWNED_AND_OPERATED - TARGET_CPA - DEFAULT +// DISPLAY - TARGET_CPA - UNIFORM +message CampaignSimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignSimulation" + pattern: "customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the campaign simulation. + // Campaign simulation resource names have the form: + // + // `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSimulation" + } + ]; + + // Output only. Campaign id of the simulation. + int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v10.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v10.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + string start_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format + string end_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is CPC_BID. + google.ads.googleads.v10.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.v10.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.v10.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.v10.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.v10.common.BudgetSimulationPointList budget_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/carrier_constant.proto b/google/ads/googleads/v10/resources/carrier_constant.proto new file mode 100644 index 000000000..a9b73cf4f --- /dev/null +++ b/google/ads/googleads/v10/resources/carrier_constant.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CarrierConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Carrier constant resource. + +// A carrier criterion that can be used in campaign targeting. +message CarrierConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/CarrierConstant" + pattern: "carrierConstants/{criterion_id}" + }; + + // Output only. The resource name of the carrier criterion. + // Carrier criterion resource names have the form: + // + // `carrierConstants/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CarrierConstant" + } + ]; + + // Output only. The ID of the carrier criterion. + optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The full name of the carrier in English. + optional string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The country code of the country where the carrier is located, e.g., "AR", + // "FR", etc. + optional string country_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/change_event.proto b/google/ads/googleads/v10/resources/change_event.proto new file mode 100644 index 000000000..4fecc9381 --- /dev/null +++ b/google/ads/googleads/v10/resources/change_event.proto @@ -0,0 +1,208 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/change_client_type.proto"; +import "google/ads/googleads/v10/enums/change_event_resource_type.proto"; +import "google/ads/googleads/v10/enums/resource_change_operation.proto"; +import "google/ads/googleads/v10/resources/ad.proto"; +import "google/ads/googleads/v10/resources/ad_group.proto"; +import "google/ads/googleads/v10/resources/ad_group_ad.proto"; +import "google/ads/googleads/v10/resources/ad_group_asset.proto"; +import "google/ads/googleads/v10/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v10/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v10/resources/ad_group_feed.proto"; +import "google/ads/googleads/v10/resources/asset.proto"; +import "google/ads/googleads/v10/resources/asset_set.proto"; +import "google/ads/googleads/v10/resources/asset_set_asset.proto"; +import "google/ads/googleads/v10/resources/campaign.proto"; +import "google/ads/googleads/v10/resources/campaign_asset.proto"; +import "google/ads/googleads/v10/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v10/resources/campaign_budget.proto"; +import "google/ads/googleads/v10/resources/campaign_criterion.proto"; +import "google/ads/googleads/v10/resources/campaign_feed.proto"; +import "google/ads/googleads/v10/resources/customer_asset.proto"; +import "google/ads/googleads/v10/resources/feed.proto"; +import "google/ads/googleads/v10/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.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ChangeEventProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Change Event resource. + +// Describes the granular change of returned resource of certain resource types. +// Changes made through UI, API and new versions of Editor +// by external users (including external users, and internal users that can be +// shown externally) in the past 30 days will be shown. The change shows the old +// values of the changed fields before the change and the new values right after +// the change. ChangeEvent could have up to 3 minutes delay to reflect a new +// change. +message ChangeEvent { + option (google.api.resource) = { + type: "googleads.googleapis.com/ChangeEvent" + pattern: "customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}" + }; + + // A wrapper proto presenting all supported resources. + // Only the resource of the change_resource_type will be set. + message ChangedResource { + // Output only. Set if change_resource_type == AD. + Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP. + AdGroup ad_group = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_CRITERION. + AdGroupCriterion ad_group_criterion = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN. + Campaign campaign = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_BUDGET. + CampaignBudget campaign_budget = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_BID_MODIFIER. + AdGroupBidModifier ad_group_bid_modifier = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_CRITERION. + CampaignCriterion campaign_criterion = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == FEED. + Feed feed = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == FEED_ITEM. + FeedItem feed_item = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_FEED. + CampaignFeed campaign_feed = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_FEED. + AdGroupFeed ad_group_feed = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_AD. + AdGroupAd ad_group_ad = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == ASSET. + Asset asset = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CUSTOMER_ASSET. + CustomerAsset customer_asset = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_ASSET. + CampaignAsset campaign_asset = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_ASSET. + AdGroupAsset ad_group_asset = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == ASSET_SET. + AssetSet asset_set = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == ASSET_SET_ASSET. + AssetSetAsset asset_set_asset = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_ASSET_SET. + CampaignAssetSet campaign_asset_set = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the change event. + // Change event resource names have the form: + // + // `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ChangeEvent" + } + ]; + + // Output only. Time at which the change was committed on this resource. + string change_date_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the changed resource. This dictates what resource + // will be set in old_resource and new_resource. + google.ads.googleads.v10.enums.ChangeEventResourceTypeEnum.ChangeEventResourceType change_resource_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Simply resource this change occurred on. + string change_resource_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Where the change was made through. + google.ads.googleads.v10.enums.ChangeClientTypeEnum.ChangeClientType client_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The email of the user who made this change. + string user_email = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The old resource before the change. Only changed fields will be populated. + ChangedResource old_resource = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The new resource after the change. Only changed fields will be populated. + ChangedResource new_resource = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The operation on the changed resource. + google.ads.googleads.v10.enums.ResourceChangeOperationEnum.ResourceChangeOperation resource_change_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of fields that are changed in the returned resource. + google.protobuf.FieldMask changed_fields = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Campaign affected by this change. + string campaign = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The AdGroup affected by this change. + string ad_group = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. The Feed affected by this change. + string feed = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. The FeedItem affected by this change. + string feed_item = 14 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Output only. The Asset affected by this change. + string asset = 20 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/change_status.proto b/google/ads/googleads/v10/resources/change_status.proto new file mode 100644 index 000000000..6a675afb3 --- /dev/null +++ b/google/ads/googleads/v10/resources/change_status.proto @@ -0,0 +1,192 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/change_status_operation.proto"; +import "google/ads/googleads/v10/enums/change_status_resource_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ChangeStatusProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Change Status resource. + +// Describes the status of returned resource. ChangeStatus could have up to 3 +// minutes delay to reflect a new change. +message ChangeStatus { + option (google.api.resource) = { + type: "googleads.googleapis.com/ChangeStatus" + pattern: "customers/{customer_id}/changeStatus/{change_status_id}" + }; + + // Output only. The resource name of the change status. + // Change status resource names have the form: + // + // `customers/{customer_id}/changeStatus/{change_status_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ChangeStatus" + } + ]; + + // Output only. Time at which the most recent change has occurred on this resource. + optional string last_change_date_time = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v10.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceType resource_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Campaign affected by this change. + optional string campaign = 17 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The AdGroup affected by this change. + optional string ad_group = 18 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. Represents the status of the changed resource. + google.ads.googleads.v10.enums.ChangeStatusOperationEnum.ChangeStatusOperation resource_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The AdGroupAd affected by this change. + optional string ad_group_ad = 25 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Output only. The AdGroupCriterion affected by this change. + optional string ad_group_criterion = 26 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Output only. The CampaignCriterion affected by this change. + optional string campaign_criterion = 27 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterion" + } + ]; + + // Output only. The Feed affected by this change. + optional string feed = 28 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. The FeedItem affected by this change. + optional string feed_item = 29 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Output only. The AdGroupFeed affected by this change. + optional string ad_group_feed = 30 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupFeed" + } + ]; + + // Output only. The CampaignFeed affected by this change. + optional string campaign_feed = 31 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignFeed" + } + ]; + + // Output only. The AdGroupBidModifier affected by this change. + optional string ad_group_bid_modifier = 32 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + } + ]; + + // Output only. The SharedSet affected by this change. + string shared_set = 33 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + } + ]; + + // Output only. The CampaignSharedSet affected by this change. + string campaign_shared_set = 34 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSharedSet" + } + ]; + + // Output only. The Asset affected by this change. + string asset = 35 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. The CustomerAsset affected by this change. + string customer_asset = 36 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerAsset" + } + ]; + + // Output only. The CampaignAsset affected by this change. + string campaign_asset = 37 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAsset" + } + ]; + + // Output only. The AdGroupAsset affected by this change. + string ad_group_asset = 38 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAsset" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/click_view.proto b/google/ads/googleads/v10/resources/click_view.proto new file mode 100644 index 000000000..dd4f9b096 --- /dev/null +++ b/google/ads/googleads/v10/resources/click_view.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/click_location.proto"; +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ClickViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ClickView resource. + +// A click view with metrics aggregated at each click level, including both +// valid and invalid clicks. For non-Search campaigns, metrics.clicks +// represents the number of valid and invalid interactions. +// Queries including ClickView must have a filter limiting the results to one +// day and can be requested for dates back to 90 days before the time of the +// request. +message ClickView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ClickView" + pattern: "customers/{customer_id}/clickViews/{date}~{gclid}" + }; + + // Output only. The resource name of the click view. + // Click view resource names have the form: + // + // `customers/{customer_id}/clickViews/{date (yyyy-MM-dd)}~{gclid}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ClickView" + } + ]; + + // Output only. The Google Click ID. + optional string gclid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The location criteria matching the area of interest associated with the + // impression. + google.ads.googleads.v10.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.v10.common.ClickLocation location_of_presence = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Page number in search results where the ad was shown. + optional int64 page_number = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The associated ad. + optional string ad_group_ad = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Output only. The associated campaign location target, if one exists. + optional string campaign_location_target = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + } + ]; + + // Output only. The associated user list, if one exists. + optional string user_list = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + } + ]; + + // Output only. The associated keyword, if one exists and the click corresponds to the + // SEARCH channel. + string keyword = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Output only. Basic information about the associated keyword, if it exists. + google.ads.googleads.v10.common.KeywordInfo keyword_info = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/combined_audience.proto b/google/ads/googleads/v10/resources/combined_audience.proto new file mode 100644 index 000000000..2bf695e6e --- /dev/null +++ b/google/ads/googleads/v10/resources/combined_audience.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/combined_audience_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CombinedAudienceProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Combined Audience resource. + +// Describe a resource for combined audiences which includes different +// audiences. +message CombinedAudience { + option (google.api.resource) = { + type: "googleads.googleapis.com/CombinedAudience" + pattern: "customers/{customer_id}/combinedAudiences/{combined_audience_id}" + }; + + // Immutable. The resource name of the combined audience. + // Combined audience names have the form: + // + // `customers/{customer_id}/combinedAudience/{combined_audience_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CombinedAudience" + } + ]; + + // Output only. ID of the combined audience. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of this combined audience. Indicates whether the combined audience + // is enabled or removed. + google.ads.googleads.v10.enums.CombinedAudienceStatusEnum.CombinedAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the combined audience. It should be unique across all combined + // audiences. + string name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Description of this combined audience. + string description = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/conversion_action.proto b/google/ads/googleads/v10/resources/conversion_action.proto new file mode 100644 index 000000000..7296f3542 --- /dev/null +++ b/google/ads/googleads/v10/resources/conversion_action.proto @@ -0,0 +1,191 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/tag_snippet.proto"; +import "google/ads/googleads/v10/enums/attribution_model.proto"; +import "google/ads/googleads/v10/enums/conversion_action_category.proto"; +import "google/ads/googleads/v10/enums/conversion_action_counting_type.proto"; +import "google/ads/googleads/v10/enums/conversion_action_status.proto"; +import "google/ads/googleads/v10/enums/conversion_action_type.proto"; +import "google/ads/googleads/v10/enums/conversion_origin.proto"; +import "google/ads/googleads/v10/enums/data_driven_model_status.proto"; +import "google/ads/googleads/v10/enums/mobile_app_vendor.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Conversion Action resource. + +// A conversion action. +message ConversionAction { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionAction" + pattern: "customers/{customer_id}/conversionActions/{conversion_action_id}" + }; + + // Settings related to this conversion action's attribution model. + message AttributionModelSettings { + // The attribution model type of this conversion action. + google.ads.googleads.v10.enums.AttributionModelEnum.AttributionModel attribution_model = 1; + + // Output only. The status of the data-driven attribution model for the conversion + // action. + google.ads.googleads.v10.enums.DataDrivenModelStatusEnum.DataDrivenModelStatus data_driven_model_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Settings related to the value for conversion events associated with this + // conversion action. + message ValueSettings { + // The value to use when conversion events for this conversion action are + // sent with an invalid, disallowed or missing value, or when + // this conversion action is configured to always use the default value. + optional double default_value = 4; + + // The currency code to use when conversion events for this conversion + // action are sent with an invalid or missing currency code, or when this + // conversion action is configured to always use the default value. + optional string default_currency_code = 5; + + // Controls whether the default value and default currency code are used in + // place of the value and currency code specified in conversion events for + // this conversion action. + optional bool always_use_default_value = 6; + } + + // Settings related to a third party app analytics conversion action. + message ThirdPartyAppAnalyticsSettings { + // Output only. The event name of a third-party app analytics conversion. + optional string event_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the third-party app analytics provider. + string provider_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Settings related to a Firebase conversion action. + message FirebaseSettings { + // Output only. The event name of a Firebase conversion. + optional string event_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Firebase project ID of the conversion. + optional string project_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the conversion action. + // Conversion action resource names have the form: + // + // `customers/{customer_id}/conversionActions/{conversion_action_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + } + ]; + + // Output only. The ID of the conversion action. + optional int64 id = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the conversion action. + // + // This field is required and should not be empty when creating new + // conversion actions. + optional string name = 22; + + // The status of this conversion action for conversion event accrual. + google.ads.googleads.v10.enums.ConversionActionStatusEnum.ConversionActionStatus status = 4; + + // Immutable. The type of this conversion action. + google.ads.googleads.v10.enums.ConversionActionTypeEnum.ConversionActionType type = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The conversion origin of this conversion action. + google.ads.googleads.v10.enums.ConversionOriginEnum.ConversionOrigin origin = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // If a conversion action's primary_for_goal bit is false, the conversion + // action is non-biddable for all campaigns regardless of their customer + // conversion goal or campaign conversion goal. + // However, custom conversion goals do not respect primary_for_goal, so if + // a campaign has a custom conversion goal configured with a + // primary_for_goal = false conversion action, that conversion action is + // still biddable. + // By default, primary_for_goal will be true if not set. In V9, + // primary_for_goal can only be set to false after creation via an 'update' + // operation because it's not declared as optional. + optional bool primary_for_goal = 31; + + // The category of conversions reported for this conversion action. + google.ads.googleads.v10.enums.ConversionActionCategoryEnum.ConversionActionCategory category = 6; + + // Output only. The resource name of the conversion action owner customer, or null if this + // is a system-defined conversion action. + optional string owner_customer = 23 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Whether this conversion action should be included in the "conversions" + // metric. + optional bool include_in_conversions_metric = 24; + + // The maximum number of days that may elapse between an interaction + // (e.g., a click) and a conversion event. + optional int64 click_through_lookback_window_days = 25; + + // The maximum number of days which may elapse between an impression and a + // conversion without an interaction. + optional int64 view_through_lookback_window_days = 26; + + // Settings related to the value for conversion events associated with this + // conversion action. + ValueSettings value_settings = 11; + + // How to count conversion events for the conversion action. + google.ads.googleads.v10.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.v10.common.TagSnippet tag_snippets = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The phone call duration in seconds after which a conversion should be + // reported for this conversion action. + // + // The value must be between 0 and 10000, inclusive. + optional int64 phone_call_duration_seconds = 27; + + // App ID for an app conversion action. + optional string app_id = 28; + + // Output only. Mobile app vendor for an app conversion action. + google.ads.googleads.v10.enums.MobileAppVendorEnum.MobileAppVendor mobile_app_vendor = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Firebase settings for Firebase conversion types. + FirebaseSettings firebase_settings = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Third Party App Analytics settings for third party conversion types. + ThirdPartyAppAnalyticsSettings third_party_app_analytics_settings = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/conversion_custom_variable.proto b/google/ads/googleads/v10/resources/conversion_custom_variable.proto new file mode 100644 index 000000000..f42cc2e2b --- /dev/null +++ b/google/ads/googleads/v10/resources/conversion_custom_variable.proto @@ -0,0 +1,85 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/conversion_custom_variable_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionCustomVariableProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Conversion Custom Variable resource. + +// A conversion custom variable +// See "About custom variables for conversions" at +// https://support.google.com/google-ads/answer/9964350 +message ConversionCustomVariable { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionCustomVariable" + pattern: "customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}" + }; + + // Immutable. The resource name of the conversion custom variable. + // Conversion custom variable resource names have the form: + // + // `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionCustomVariable" + } + ]; + + // Output only. The ID of the conversion custom variable. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the conversion custom variable. + // Name should be unique. The maximum length of name is 100 characters. + // There should not be any extra spaces before and after. + string name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The tag of the conversion custom variable. It is used in the event snippet + // and sent to Google Ads along with conversion pings. For conversion uploads + // in Google Ads API, the resource name of the conversion custom variable is + // used. + // Tag should be unique. The maximum size of tag is 100 bytes. + // There should not be any extra spaces before and after. + // Currently only lowercase letters, numbers and underscores are allowed in + // the tag. + string tag = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // The status of the conversion custom variable for conversion event accrual. + google.ads.googleads.v10.enums.ConversionCustomVariableStatusEnum.ConversionCustomVariableStatus status = 5; + + // Output only. The resource name of the customer that owns the conversion custom variable. + string owner_customer = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/conversion_goal_campaign_config.proto b/google/ads/googleads/v10/resources/conversion_goal_campaign_config.proto new file mode 100644 index 000000000..d7118d64b --- /dev/null +++ b/google/ads/googleads/v10/resources/conversion_goal_campaign_config.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/goal_config_level.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionGoalCampaignConfigProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Conversion goal settings for a Campaign. +message ConversionGoalCampaignConfig { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionGoalCampaignConfig" + pattern: "customers/{customer_id}/conversionGoalCampaignConfigs/{campaign_id}" + }; + + // Immutable. The resource name of the conversion goal campaign config. + // Conversion goal campaign config resource names have the form: + // + // `customers/{customer_id}/conversionGoalCampaignConfigs/{campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionGoalCampaignConfig" + } + ]; + + // Immutable. The campaign with which this conversion goal campaign config is associated. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The level of goal config the campaign is using. + google.ads.googleads.v10.enums.GoalConfigLevelEnum.GoalConfigLevel goal_config_level = 3; + + // The custom conversion goal the campaign is using for optimization. + string custom_conversion_goal = 4 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomConversionGoal" + }]; +} diff --git a/google/ads/googleads/v10/resources/conversion_value_rule.proto b/google/ads/googleads/v10/resources/conversion_value_rule.proto new file mode 100644 index 000000000..87d85f1a0 --- /dev/null +++ b/google/ads/googleads/v10/resources/conversion_value_rule.proto @@ -0,0 +1,134 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/conversion_value_rule_status.proto"; +import "google/ads/googleads/v10/enums/value_rule_device_type.proto"; +import "google/ads/googleads/v10/enums/value_rule_geo_location_match_type.proto"; +import "google/ads/googleads/v10/enums/value_rule_operation.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Conversion Value Rule resource. + +// A conversion value rule +message ConversionValueRule { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionValueRule" + pattern: "customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}" + }; + + // Action applied when rule is applied. + message ValueRuleAction { + // Specifies applied operation. + google.ads.googleads.v10.enums.ValueRuleOperationEnum.ValueRuleOperation operation = 1; + + // Specifies applied value. + double value = 2; + } + + // Condition on Geo dimension. + message ValueRuleGeoLocationCondition { + // Geo locations that advertisers want to exclude. + repeated string excluded_geo_target_constants = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + }]; + + // Excluded Geo location match type. + google.ads.googleads.v10.enums.ValueRuleGeoLocationMatchTypeEnum.ValueRuleGeoLocationMatchType excluded_geo_match_type = 2; + + // Geo locations that advertisers want to include. + repeated string geo_target_constants = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + }]; + + // Included Geo location match type. + google.ads.googleads.v10.enums.ValueRuleGeoLocationMatchTypeEnum.ValueRuleGeoLocationMatchType geo_match_type = 4; + } + + // Condition on Device dimension. + message ValueRuleDeviceCondition { + // Value for device type condition. + repeated google.ads.googleads.v10.enums.ValueRuleDeviceTypeEnum.ValueRuleDeviceType device_types = 1; + } + + // Condition on Audience dimension. + message ValueRuleAudienceCondition { + // User Lists. + repeated string user_lists = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + }]; + + // User Interests. + repeated string user_interests = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserInterest" + }]; + } + + // Immutable. The resource name of the conversion value rule. + // Conversion value rule resource names have the form: + // + // `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRule" + } + ]; + + // Output only. The ID of the conversion value rule. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Action applied when the rule is triggered. + ValueRuleAction action = 3; + + // Condition for Geo location that must be satisfied for the value rule to + // apply. + ValueRuleGeoLocationCondition geo_location_condition = 4; + + // Condition for device type that must be satisfied for the value rule to + // apply. + ValueRuleDeviceCondition device_condition = 5; + + // Condition for audience that must be satisfied for the value rule to apply. + ValueRuleAudienceCondition audience_condition = 6; + + // Output only. The resource name of the conversion value rule's owner customer. + // When the value rule is inherited from a manager + // customer, owner_customer will be the resource name of the manager whereas + // the customer in the resource_name will be of the requesting serving + // customer. + // ** Read-only ** + string owner_customer = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // The status of the conversion value rule. + google.ads.googleads.v10.enums.ConversionValueRuleStatusEnum.ConversionValueRuleStatus status = 8; +} diff --git a/google/ads/googleads/v10/resources/conversion_value_rule_set.proto b/google/ads/googleads/v10/resources/conversion_value_rule_set.proto new file mode 100644 index 000000000..c8d9da75a --- /dev/null +++ b/google/ads/googleads/v10/resources/conversion_value_rule_set.proto @@ -0,0 +1,99 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/conversion_action_category.proto"; +import "google/ads/googleads/v10/enums/conversion_value_rule_set_status.proto"; +import "google/ads/googleads/v10/enums/value_rule_set_attachment_type.proto"; +import "google/ads/googleads/v10/enums/value_rule_set_dimension.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleSetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Conversion Value Rule Set resource. + +// A conversion value rule set +message ConversionValueRuleSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionValueRuleSet" + pattern: "customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}" + }; + + // Immutable. The resource name of the conversion value rule set. + // Conversion value rule set resource names have the form: + // + // `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRuleSet" + } + ]; + + // Output only. The ID of the conversion value rule set. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Resource names of rules within the rule set. + repeated string conversion_value_rules = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRule" + }]; + + // Defines dimensions for Value Rule conditions. The condition types of value + // rules within this value rule set must be of these dimensions. The first + // entry in this list is the primary dimension of the included value rules. + // 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.v10.enums.ValueRuleSetDimensionEnum.ValueRuleSetDimension dimensions = 4; + + // Output only. The resource name of the conversion value rule set's owner customer. + // When the value rule set is inherited from a manager + // customer, owner_customer will be the resource name of the manager whereas + // the customer in the resource_name will be of the requesting serving + // customer. + // ** Read-only ** + string owner_customer = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Immutable. Defines the scope where the conversion value rule set is attached. + google.ads.googleads.v10.enums.ValueRuleSetAttachmentTypeEnum.ValueRuleSetAttachmentType attachment_type = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // The resource name of the campaign when the conversion value rule + // set is attached to a campaign. + string campaign = 7 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // Output only. The status of the conversion value rule set. + // ** Read-only ** + google.ads.googleads.v10.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.v10.enums.ConversionActionCategoryEnum.ConversionActionCategory conversion_action_categories = 9 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v10/resources/currency_constant.proto b/google/ads/googleads/v10/resources/currency_constant.proto new file mode 100644 index 000000000..1c3b001ed --- /dev/null +++ b/google/ads/googleads/v10/resources/currency_constant.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CurrencyConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Currency Constant resource. + +// A currency constant. +message CurrencyConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/CurrencyConstant" + pattern: "currencyConstants/{code}" + }; + + // Output only. The resource name of the currency constant. + // Currency constant resource names have the form: + // + // `currencyConstants/{code}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CurrencyConstant" + } + ]; + + // Output only. ISO 4217 three-letter currency code, e.g. "USD" + optional string code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Full English name of the currency. + optional string name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Standard symbol for describing this currency, e.g. '$' for US Dollars. + optional string symbol = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The billable unit for this currency. Billed amounts should be multiples of + // this value. + optional int64 billable_unit_micros = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/custom_audience.proto b/google/ads/googleads/v10/resources/custom_audience.proto new file mode 100644 index 000000000..71cef4f17 --- /dev/null +++ b/google/ads/googleads/v10/resources/custom_audience.proto @@ -0,0 +1,106 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/custom_audience_member_type.proto"; +import "google/ads/googleads/v10/enums/custom_audience_status.proto"; +import "google/ads/googleads/v10/enums/custom_audience_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Custom Audience resource. + +// A custom audience. This is a list of users by interest. +message CustomAudience { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomAudience" + pattern: "customers/{customer_id}/customAudiences/{custom_audience_id}" + }; + + // Immutable. The resource name of the custom audience. + // Custom audience resource names have the form: + // + // `customers/{customer_id}/customAudiences/{custom_audience_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomAudience" + } + ]; + + // Output only. ID of the custom audience. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of this custom audience. Indicates whether the custom audience is + // enabled or removed. + google.ads.googleads.v10.enums.CustomAudienceStatusEnum.CustomAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of the custom audience. It should be unique for all custom audiences + // created by a customer. + // This field is required for creating operations. + string name = 4; + + // 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.v10.enums.CustomAudienceTypeEnum.CustomAudienceType type = 5; + + // Description of this custom audience. + string description = 6; + + // List of custom audience members that this custom audience is composed of. + // Members can be added during CustomAudience creation. If members are + // presented in UPDATE operation, existing members will be overridden. + repeated CustomAudienceMember members = 7; +} + +// A member of custom audience. A member can be a KEYWORD, URL, +// 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.v10.enums.CustomAudienceMemberTypeEnum.CustomAudienceMemberType member_type = 1; + + // The CustomAudienceMember value. One field is populated depending on the + // member type. + oneof value { + // A keyword or keyword phrase — at most 10 words and 80 characters. + // Languages with double-width characters such as Chinese, Japanese, + // or Korean, are allowed 40 characters, which describes the user's + // interests or actions. + string keyword = 2; + + // An HTTP URL, protocol-included — at most 2048 characters, which includes + // contents users have interests in. + string url = 3; + + // A place type described by a place category users visit. + int64 place_category = 4; + + // A package name of Android apps which users installed such as + // com.google.example. + string app = 5; + } +} diff --git a/google/ads/googleads/v10/resources/custom_conversion_goal.proto b/google/ads/googleads/v10/resources/custom_conversion_goal.proto new file mode 100644 index 000000000..b2347c5e4 --- /dev/null +++ b/google/ads/googleads/v10/resources/custom_conversion_goal.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/custom_conversion_goal_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomConversionGoalProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Custom conversion goal that can make arbitrary conversion actions biddable. +message CustomConversionGoal { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomConversionGoal" + pattern: "customers/{customer_id}/customConversionGoals/{goal_id}" + }; + + // Immutable. The resource name of the custom conversion goal. + // Custom conversion goal resource names have the form: + // + // `customers/{customer_id}/customConversionGoals/{goal_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomConversionGoal" + } + ]; + + // Immutable. The ID for this custom conversion goal. + int64 id = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // The name for this custom conversion goal. + string name = 3; + + // Conversion actions that the custom conversion goal makes biddable. + repeated string conversion_actions = 4 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + + // The status of the custom conversion goal. + google.ads.googleads.v10.enums.CustomConversionGoalStatusEnum.CustomConversionGoalStatus status = 5; +} diff --git a/google/ads/googleads/v10/resources/custom_interest.proto b/google/ads/googleads/v10/resources/custom_interest.proto new file mode 100644 index 000000000..2fe77eb59 --- /dev/null +++ b/google/ads/googleads/v10/resources/custom_interest.proto @@ -0,0 +1,88 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/custom_interest_member_type.proto"; +import "google/ads/googleads/v10/enums/custom_interest_status.proto"; +import "google/ads/googleads/v10/enums/custom_interest_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Custom Interest resource. + +// A custom interest. This is a list of users by interest. +message CustomInterest { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomInterest" + pattern: "customers/{customer_id}/customInterests/{custom_interest_id}" + }; + + // Immutable. The resource name of the custom interest. + // Custom interest resource names have the form: + // + // `customers/{customer_id}/customInterests/{custom_interest_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomInterest" + } + ]; + + // Output only. Id of the custom interest. + optional int64 id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Status of this custom interest. Indicates whether the custom interest is + // enabled or removed. + google.ads.googleads.v10.enums.CustomInterestStatusEnum.CustomInterestStatus status = 3; + + // Name of the custom interest. It should be unique across the same custom + // affinity audience. + // This field is required for create operations. + optional string name = 9; + + // Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. + // By default the type is set to CUSTOM_AFFINITY. + google.ads.googleads.v10.enums.CustomInterestTypeEnum.CustomInterestType type = 5; + + // Description of this custom interest audience. + optional string description = 10; + + // List of custom interest members that this custom interest is composed of. + // Members can be added during CustomInterest creation. If members are + // presented in UPDATE operation, existing members will be overridden. + repeated CustomInterestMember members = 7; +} + +// A member of custom interest audience. A member can be a keyword or url. +// 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.v10.enums.CustomInterestMemberTypeEnum.CustomInterestMemberType member_type = 1; + + // Keyword text when member_type is KEYWORD or URL string when + // member_type is URL. + optional string parameter = 3; +} diff --git a/google/ads/googleads/v10/resources/customer.proto b/google/ads/googleads/v10/resources/customer.proto new file mode 100644 index 000000000..9d582115a --- /dev/null +++ b/google/ads/googleads/v10/resources/customer.proto @@ -0,0 +1,187 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/conversion_tracking_status_enum.proto"; +import "google/ads/googleads/v10/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; +import "google/ads/googleads/v10/enums/customer_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Customer resource. + +// A customer. +message Customer { + option (google.api.resource) = { + type: "googleads.googleapis.com/Customer" + pattern: "customers/{customer_id}" + }; + + // Immutable. The resource name of the customer. + // Customer resource names have the form: + // + // `customers/{customer_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. The ID of the customer. + optional int64 id = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional, non-unique descriptive name of the customer. + optional string descriptive_name = 20; + + // Immutable. The currency in which the account operates. + // A subset of the currency codes from the ISO 4217 standard is + // supported. + optional string currency_code = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The local timezone ID of the customer. + optional string time_zone = 22 [(google.api.field_behavior) = IMMUTABLE]; + + // The URL template for constructing a tracking URL out of parameters. + optional string tracking_url_template = 23; + + // The URL template for appending params to the final URL + optional string final_url_suffix = 24; + + // Whether auto-tagging is enabled for the customer. + optional bool auto_tagging_enabled = 25; + + // Output only. Whether the Customer has a Partners program badge. If the Customer is not + // associated with the Partners program, this will be false. For more + // information, see https://support.google.com/partners/answer/3125774. + optional bool has_partners_badge = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the customer is a manager. + optional bool manager = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the customer is a test account. + optional bool test_account = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Call reporting setting for a customer. + CallReportingSetting call_reporting_setting = 10; + + // Output only. Conversion tracking setting for a customer. + ConversionTrackingSetting conversion_tracking_setting = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Remarketing setting for a customer. + RemarketingSetting remarketing_setting = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v10.enums.CustomerPayPerConversionEligibilityFailureReasonEnum.CustomerPayPerConversionEligibilityFailureReason pay_per_conversion_eligibility_failure_reasons = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Optimization score of the customer. + // + // Optimization score is an estimate of how well a customer's campaigns are + // set to perform. It ranges from 0% (0.0) to 100% (1.0). This field is null + // for all manager customers, and for unscored non-manager customers. + // + // See "About optimization score" at + // https://support.google.com/google-ads/answer/9061546. + // + // This field is read-only. + optional double optimization_score = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Optimization score weight of the customer. + // + // Optimization score weight can be used to compare/aggregate optimization + // scores across multiple non-manager customers. The aggregate optimization + // score of a manager is computed as the sum over all of their customers of + // `Customer.optimization_score * Customer.optimization_score_weight`. This + // field is 0 for all manager customers, and for unscored non-manager + // customers. + // + // This field is read-only. + double optimization_score_weight = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the customer. + google.ads.googleads.v10.enums.CustomerStatusEnum.CustomerStatus status = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Call reporting setting for a customer. +message CallReportingSetting { + // Enable reporting of phone call events by redirecting them via Google + // System. + optional bool call_reporting_enabled = 10; + + // Whether to enable call conversion reporting. + optional bool call_conversion_reporting_enabled = 11; + + // Customer-level call conversion action to attribute a call conversion to. + // If not set a default conversion action is used. Only in effect when + // call_conversion_reporting_enabled is set to true. + optional string call_conversion_action = 12 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; +} + +// A collection of customer-wide settings related to Google Ads Conversion +// Tracking. +message ConversionTrackingSetting { + // Output only. The conversion tracking id used for this account. This id is automatically + // assigned after any conversion tracking feature is used. If the customer + // doesn't use conversion tracking, this is 0. This field is read-only. + optional int64 conversion_tracking_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The conversion tracking id of the customer's manager. This is set when the + // customer is opted into cross account conversion tracking, and it overrides + // conversion_tracking_id. This field can only be managed through the Google + // Ads UI. This field is read-only. + optional int64 cross_account_conversion_tracking_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the customer has accepted customer data terms. If using + // cross-account conversion tracking, this value is inherited from the + // manager. This field is read-only. For more + // information, see https://support.google.com/adspolicy/answer/7475709. + bool accepted_customer_data_terms = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion tracking status. It indicates whether the customer is using + // conversion tracking, and who is the conversion tracking owner of 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.v10.enums.ConversionTrackingStatusEnum.ConversionTrackingStatus conversion_tracking_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the customer is opted-in for enhanced conversions + // for leads. If using cross-account conversion tracking, this value is + // inherited from the manager. This field is read-only. + bool enhanced_conversions_for_leads_enabled = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the customer where conversions are created and + // managed. This field is read-only. + string google_ads_conversion_customer = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Remarketing setting for a customer. +message RemarketingSetting { + // Output only. The Google tag. + optional string google_global_site_tag = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/customer_asset.proto b/google/ads/googleads/v10/resources/customer_asset.proto new file mode 100644 index 000000000..118b7cbdc --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_asset.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/asset_field_type.proto"; +import "google/ads/googleads/v10/enums/asset_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerAssetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CustomerAsset resource. + +// A link between a customer and an asset. +message CustomerAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerAsset" + pattern: "customers/{customer_id}/customerAssets/{asset_id}~{field_type}" + }; + + // Immutable. The resource name of the customer asset. + // CustomerAsset resource names have the form: + // + // `customers/{customer_id}/customerAssets/{asset_id}~{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerAsset" + } + ]; + + // Required. Immutable. The asset which is linked to the customer. + string asset = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Required. Immutable. Role that the asset takes for the customer link. + google.ads.googleads.v10.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Status of the customer asset. + google.ads.googleads.v10.enums.AssetLinkStatusEnum.AssetLinkStatus status = 4; +} diff --git a/google/ads/googleads/v10/resources/customer_client.proto b/google/ads/googleads/v10/resources/customer_client.proto new file mode 100644 index 000000000..5e142edb0 --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_client.proto @@ -0,0 +1,104 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/customer_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerClientProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CustomerClient resource. + +// A link between the given customer and a client customer. CustomerClients only +// exist for manager customers. All direct and indirect client customers are +// included, as well as the manager itself. +message CustomerClient { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerClient" + pattern: "customers/{customer_id}/customerClients/{client_customer_id}" + }; + + // Output only. The resource name of the customer client. + // CustomerClient resource names have the form: + // `customers/{customer_id}/customerClients/{client_customer_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerClient" + } + ]; + + // Output only. The resource name of the client-customer which is linked to + // the given customer. Read only. + optional string client_customer = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. Specifies whether this is a + // [hidden account](https://support.google.com/google-ads/answer/7519830). + // Read only. + optional bool hidden = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Distance between given customer and client. For self link, the level value + // will be 0. Read only. + optional int64 level = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Common Locale Data Repository (CLDR) string representation of the + // time zone of the client, e.g. America/Los_Angeles. Read only. + optional string time_zone = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies if the client is a test account. Read only. + optional bool test_account = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies if the client is a manager. Read only. + optional bool manager = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Descriptive name for the client. Read only. + optional string descriptive_name = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Currency code (e.g. 'USD', 'EUR') for the client. Read only. + optional string currency_code = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the client customer. Read only. + optional int64 id = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource names of the labels owned by the requesting customer that are + // applied to the client customer. + // Label resource names have the form: + // + // `customers/{customer_id}/labels/{label_id}` + repeated string applied_labels = 21 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; + + // Output only. The status of the client customer. Read only. + google.ads.googleads.v10.enums.CustomerStatusEnum.CustomerStatus status = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/customer_client_link.proto b/google/ads/googleads/v10/resources/customer_client_link.proto new file mode 100644 index 000000000..7f769aafe --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_client_link.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/manager_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerClientLinkProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CustomerClientLink resource. + +// Represents customer client link relationship. +message CustomerClientLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerClientLink" + pattern: "customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}" + }; + + // Immutable. Name of the resource. + // CustomerClientLink resource names have the form: + // `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerClientLink" + } + ]; + + // Immutable. The client customer linked to this customer. + optional string client_customer = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. This is uniquely identifies a customer client link. Read only. + optional int64 manager_link_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // This is the status of the link between client and manager. + google.ads.googleads.v10.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; + + // The visibility of the link. Users can choose whether or not to see hidden + // links in the Google Ads UI. + // Default value is false + optional bool hidden = 9; +} diff --git a/google/ads/googleads/v10/resources/customer_conversion_goal.proto b/google/ads/googleads/v10/resources/customer_conversion_goal.proto new file mode 100644 index 000000000..3e9b20748 --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_conversion_goal.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/conversion_action_category.proto"; +import "google/ads/googleads/v10/enums/conversion_origin.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerConversionGoalProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Biddability control for conversion actions with a matching category and +// origin. +message CustomerConversionGoal { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerConversionGoal" + pattern: "customers/{customer_id}/customerConversionGoals/{category}~{source}" + }; + + // Immutable. The resource name of the customer conversion goal. + // Customer conversion goal resource names have the form: + // + // `customers/{customer_id}/customerConversionGoals/{category}~{origin}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/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.v10.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.v10.enums.ConversionOriginEnum.ConversionOrigin origin = 3; + + // The biddability of the customer conversion goal. + bool biddable = 4; +} diff --git a/google/ads/googleads/v10/resources/customer_customizer.proto b/google/ads/googleads/v10/resources/customer_customizer.proto new file mode 100644 index 000000000..7b5d8d7c0 --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_customizer.proto @@ -0,0 +1,67 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/customizer_value.proto"; +import "google/ads/googleads/v10/enums/customizer_value_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerCustomizerProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// A customizer value for the associated CustomizerAttribute at the Customer +// level. +message CustomerCustomizer { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerCustomizer" + pattern: "customers/{customer_id}/customerCustomizers/{customizer_attribute_id}" + }; + + // Immutable. The resource name of the customer customizer. + // Customer customizer resource names have the form: + // + // `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerCustomizer" + } + ]; + + // Required. Immutable. The customizer attribute which is linked to the customer. + string customizer_attribute = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The status of the customer customizer attribute. + google.ads.googleads.v10.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.v10.common.CustomizerValue value = 4 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v10/resources/customer_extension_setting.proto b/google/ads/googleads/v10/resources/customer_extension_setting.proto new file mode 100644 index 000000000..b17980bc2 --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_extension_setting.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/extension_setting_device.proto"; +import "google/ads/googleads/v10/enums/extension_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerExtensionSettingProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CustomerExtensionSetting resource. + +// A customer extension setting. +message CustomerExtensionSetting { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerExtensionSetting" + pattern: "customers/{customer_id}/customerExtensionSettings/{extension_type}" + }; + + // Immutable. The resource name of the customer extension setting. + // CustomerExtensionSetting resource names have the form: + // + // `customers/{customer_id}/customerExtensionSettings/{extension_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerExtensionSetting" + } + ]; + + // Immutable. The extension type of the customer extension setting. + google.ads.googleads.v10.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // The resource names of the extension feed items to serve under the customer. + // ExtensionFeedItem resource names have the form: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + repeated string extension_feed_items = 5 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + + // The device for which the extensions will serve. Optional. + google.ads.googleads.v10.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 4; +} diff --git a/google/ads/googleads/v10/resources/customer_feed.proto b/google/ads/googleads/v10/resources/customer_feed.proto new file mode 100644 index 000000000..746c335df --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_feed.proto @@ -0,0 +1,74 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/matching_function.proto"; +import "google/ads/googleads/v10/enums/feed_link_status.proto"; +import "google/ads/googleads/v10/enums/placeholder_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerFeedProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CustomerFeed resource. + +// A customer feed. +message CustomerFeed { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerFeed" + pattern: "customers/{customer_id}/customerFeeds/{feed_id}" + }; + + // Immutable. The resource name of the customer feed. + // Customer feed resource names have the form: + // + // `customers/{customer_id}/customerFeeds/{feed_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerFeed" + } + ]; + + // Immutable. The feed being linked to the customer. + optional string feed = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Indicates which placeholder types the feed may populate under the connected + // customer. Required. + repeated google.ads.googleads.v10.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.v10.common.MatchingFunction matching_function = 4; + + // Output only. Status of the customer feed. + // This field is read-only. + google.ads.googleads.v10.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/customer_label.proto b/google/ads/googleads/v10/resources/customer_label.proto new file mode 100644 index 000000000..7ae9ab54b --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_label.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerLabelProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the customer label resource. + +// Represents a relationship between a customer and a label. This customer may +// not have access to all the labels attached to it. Additional CustomerLabels +// may be returned by increasing permissions with login-customer-id. +message CustomerLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerLabel" + pattern: "customers/{customer_id}/customerLabels/{label_id}" + }; + + // Immutable. Name of the resource. + // Customer label resource names have the form: + // `customers/{customer_id}/customerLabels/{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerLabel" + } + ]; + + // Output only. The resource name of the customer to which the label is attached. + // Read only. + optional string customer = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. The resource name of the label assigned to the customer. + // + // Note: the Customer ID portion of the label resource name is not + // validated when creating a new CustomerLabel. + optional string label = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/customer_manager_link.proto b/google/ads/googleads/v10/resources/customer_manager_link.proto new file mode 100644 index 000000000..e4aebf838 --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_manager_link.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/manager_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerManagerLinkProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CustomerManagerLink resource. + +// Represents customer-manager link relationship. +message CustomerManagerLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerManagerLink" + pattern: "customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}" + }; + + // Immutable. Name of the resource. + // CustomerManagerLink resource names have the form: + // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerManagerLink" + } + ]; + + // Output only. The manager customer linked to the customer. + optional string manager_customer = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. ID of the customer-manager link. This field is read only. + optional int64 manager_link_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Status of the link between the customer and the manager. + google.ads.googleads.v10.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; +} diff --git a/google/ads/googleads/v10/resources/customer_negative_criterion.proto b/google/ads/googleads/v10/resources/customer_negative_criterion.proto new file mode 100644 index 000000000..b17b4d49d --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_negative_criterion.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/enums/criterion_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerNegativeCriterionProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Customer Negative Criterion resource. + +// A negative criterion for exclusions at the customer level. +message CustomerNegativeCriterion { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerNegativeCriterion" + pattern: "customers/{customer_id}/customerNegativeCriteria/{criterion_id}" + }; + + // Immutable. The resource name of the customer negative criterion. + // Customer negative criterion resource names have the form: + // + // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerNegativeCriterion" + } + ]; + + // Output only. The ID of the criterion. + optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the criterion. + google.ads.googleads.v10.enums.CriterionTypeEnum.CriterionType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The customer negative criterion. + // + // Exactly one must be set. + oneof criterion { + // Immutable. ContentLabel. + google.ads.googleads.v10.common.ContentLabelInfo content_label = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. MobileApplication. + google.ads.googleads.v10.common.MobileApplicationInfo mobile_application = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. MobileAppCategory. + google.ads.googleads.v10.common.MobileAppCategoryInfo mobile_app_category = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Placement. + google.ads.googleads.v10.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Video. + google.ads.googleads.v10.common.YouTubeVideoInfo youtube_video = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Channel. + google.ads.googleads.v10.common.YouTubeChannelInfo youtube_channel = 9 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v10/resources/customer_user_access.proto b/google/ads/googleads/v10/resources/customer_user_access.proto new file mode 100644 index 000000000..4a950bb2c --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_user_access.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/access_role.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CustomerUserAccess resource. + +// Represents the permission of a single user onto a single customer. +message CustomerUserAccess { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerUserAccess" + pattern: "customers/{customer_id}/customerUserAccesses/{user_id}" + }; + + // Immutable. Name of the resource. + // Resource names have the form: + // `customers/{customer_id}/customerUserAccesses/{user_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccess" + } + ]; + + // Output only. User id of the user with the customer access. + // Read only field + int64 user_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the user. + // Read only field + optional string email_address = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Access role of the user. + google.ads.googleads.v10.enums.AccessRoleEnum.AccessRole access_role = 4; + + // Output only. The customer user access creation time. + // Read only field + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string access_creation_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The email address of the inviter user. + // Read only field + optional string inviter_user_email_address = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/customer_user_access_invitation.proto b/google/ads/googleads/v10/resources/customer_user_access_invitation.proto new file mode 100644 index 000000000..eb074bc79 --- /dev/null +++ b/google/ads/googleads/v10/resources/customer_user_access_invitation.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/access_invitation_status.proto"; +import "google/ads/googleads/v10/enums/access_role.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessInvitationProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the CustomerUserAccessInvitation resource. + +// Represent an invitation to a new user on this customer account. +message CustomerUserAccessInvitation { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerUserAccessInvitation" + pattern: "customers/{customer_id}/customerUserAccessInvitations/{invitation_id}" + }; + + // Immutable. Name of the resource. + // Resource names have the form: + // `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccessInvitation" + } + ]; + + // Output only. The ID of the invitation. + // This field is read-only. + int64 invitation_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Access role of the user. + google.ads.googleads.v10.enums.AccessRoleEnum.AccessRole access_role = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Email address the invitation was sent to. + // This can differ from the email address of the account + // that accepts the invite. + string email_address = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Time invitation was created. + // This field is read-only. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string creation_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Invitation status of the user. + google.ads.googleads.v10.enums.AccessInvitationStatusEnum.AccessInvitationStatus invitation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/customizer_attribute.proto b/google/ads/googleads/v10/resources/customizer_attribute.proto new file mode 100644 index 000000000..fdfd8150f --- /dev/null +++ b/google/ads/googleads/v10/resources/customizer_attribute.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/customizer_attribute_status.proto"; +import "google/ads/googleads/v10/enums/customizer_attribute_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// A customizer attribute. +// Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or +// AdGroupCriterionCustomizer to associate a customizer attribute and +// set its value at the customer, campaign, ad group, or ad group criterion +// level, respectively. +message CustomizerAttribute { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomizerAttribute" + pattern: "customers/{customer_id}/customizerAttributes/{customizer_attribute_id}" + }; + + // Immutable. The resource name of the customizer attribute. + // Customizer Attribute resource names have the form: + // + // `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The ID of the customizer attribute. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. Name of the customizer attribute. Required. It must have a minimum length + // of 1 and maximum length of 40. Name of an enabled customizer attribute must + // be unique (case insensitive). + string name = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Immutable. The type of the customizer attribute. + google.ads.googleads.v10.enums.CustomizerAttributeTypeEnum.CustomizerAttributeType type = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The status of the customizer attribute. + google.ads.googleads.v10.enums.CustomizerAttributeStatusEnum.CustomizerAttributeStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/detail_placement_view.proto b/google/ads/googleads/v10/resources/detail_placement_view.proto new file mode 100644 index 000000000..bdd4a47da --- /dev/null +++ b/google/ads/googleads/v10/resources/detail_placement_view.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/placement_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DetailPlacementViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the detail placement view resource. + +// A view with metrics aggregated by ad group and URL or YouTube video. +message DetailPlacementView { + option (google.api.resource) = { + type: "googleads.googleapis.com/DetailPlacementView" + pattern: "customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}" + }; + + // Output only. The resource name of the detail placement view. + // Detail placement view resource names have the form: + // + // `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DetailPlacementView" + } + ]; + + // Output only. The automatic placement string at detail level, e. g. website URL, mobile + // application ID, or a YouTube video ID. + optional string placement = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name is URL name for websites, YouTube video name for YouTube + // videos, and translated mobile app name for mobile apps. + optional string display_name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL of the group placement, e.g. domain, link to the mobile application in + // app store, or a YouTube channel URL. + optional string group_placement_target_url = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL of the placement, e.g. website, link to the mobile application in app + // store, or a YouTube video URL. + optional string target_url = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the placement, e.g. Website, YouTube Video, and Mobile Application. + google.ads.googleads.v10.enums.PlacementTypeEnum.PlacementType placement_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/detailed_demographic.proto b/google/ads/googleads/v10/resources/detailed_demographic.proto new file mode 100644 index 000000000..29bcf6365 --- /dev/null +++ b/google/ads/googleads/v10/resources/detailed_demographic.proto @@ -0,0 +1,73 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criterion_category_availability.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DetailedDemographicProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Detailed Demographic resource. + +// A detailed demographic: a particular interest-based vertical to be targeted +// to reach users based on long-term life facts. +message DetailedDemographic { + option (google.api.resource) = { + type: "googleads.googleapis.com/DetailedDemographic" + pattern: "customers/{customer_id}/detailedDemographics/{detailed_demographic_id}" + }; + + // Output only. The resource name of the detailed demographic. + // Detailed demographic resource names have the form: + // + // `customers/{customer_id}/detailedDemographics/{detailed_demographic_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DetailedDemographic" + } + ]; + + // Output only. The ID of the detailed demographic. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the detailed demographic. E.g."Highest Level of Educational + // Attainment" + string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The parent of the detailed_demographic. + string parent = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DetailedDemographic" + } + ]; + + // Output only. True if the detailed demographic is launched to all channels and locales. + bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Availability information of the detailed demographic. + repeated google.ads.googleads.v10.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/display_keyword_view.proto b/google/ads/googleads/v10/resources/display_keyword_view.proto new file mode 100644 index 000000000..46dd72bd0 --- /dev/null +++ b/google/ads/googleads/v10/resources/display_keyword_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DisplayKeywordViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the display keyword view resource. + +// A display keyword view. +message DisplayKeywordView { + option (google.api.resource) = { + type: "googleads.googleapis.com/DisplayKeywordView" + pattern: "customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the display keyword view. + // Display Keyword view resource names have the form: + // + // `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DisplayKeywordView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/distance_view.proto b/google/ads/googleads/v10/resources/distance_view.proto new file mode 100644 index 000000000..61a94d2e1 --- /dev/null +++ b/google/ads/googleads/v10/resources/distance_view.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/distance_bucket.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DistanceViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the DistanceView resource. + +// A distance view with metrics aggregated by the user's distance from an +// advertiser's location extensions. Each DistanceBucket includes all +// impressions that fall within its distance and a single impression will +// contribute to the metrics for all DistanceBuckets that include the user's +// distance. +message DistanceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/DistanceView" + pattern: "customers/{customer_id}/distanceViews/{placeholder_chain_id}~{distance_bucket}" + }; + + // Output only. The resource name of the distance view. + // Distance view resource names have the form: + // + // `customers/{customer_id}/distanceViews/1~{distance_bucket}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DistanceView" + } + ]; + + // Output only. Grouping of user distance from location extensions. + google.ads.googleads.v10.enums.DistanceBucketEnum.DistanceBucket distance_bucket = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if the DistanceBucket is using the metric system, false otherwise. + optional bool metric_system = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/domain_category.proto b/google/ads/googleads/v10/resources/domain_category.proto new file mode 100644 index 000000000..2cf74eedf --- /dev/null +++ b/google/ads/googleads/v10/resources/domain_category.proto @@ -0,0 +1,89 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DomainCategoryProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Domain Category resource. + +// A category generated automatically by crawling a domain. If a campaign uses +// the DynamicSearchAdsSetting, then domain categories will be generated for +// the domain. The categories can be targeted using WebpageConditionInfo. +// See: https://support.google.com/google-ads/answer/2471185 +message DomainCategory { + option (google.api.resource) = { + type: "googleads.googleapis.com/DomainCategory" + pattern: "customers/{customer_id}/domainCategories/{campaign_id}~{base64_category}~{language_code}" + }; + + // Output only. The resource name of the domain category. + // Domain category resource names have the form: + // + // `customers/{customer_id}/domainCategories/{campaign_id}~{category_base64}~{language_code}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DomainCategory" + } + ]; + + // Output only. The campaign this category is recommended for. + optional string campaign = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. Recommended category for the website domain. e.g. if you have a website + // about electronics, the categories could be "cameras", "televisions", etc. + optional string category = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The language code specifying the language of the website. e.g. "en" for + // English. The language can be specified in the DynamicSearchAdsSetting + // required for dynamic search ads. This is the language of the pages from + // your website that you want Google Ads to find, create ads for, + // and match searches with. + optional string language_code = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The domain for the website. The domain can be specified in the + // DynamicSearchAdsSetting required for dynamic search ads. + optional string domain = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Fraction of pages on your site that this category matches. + optional double coverage_fraction = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The position of this category in the set of categories. Lower numbers + // indicate a better match for the domain. null indicates not recommended. + optional int64 category_rank = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether this category has sub-categories. + optional bool has_children = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended cost per click for the category. + optional int64 recommended_cpc_bid_micros = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/dynamic_search_ads_search_term_view.proto b/google/ads/googleads/v10/resources/dynamic_search_ads_search_term_view.proto new file mode 100644 index 000000000..b7f6fef70 --- /dev/null +++ b/google/ads/googleads/v10/resources/dynamic_search_ads_search_term_view.proto @@ -0,0 +1,85 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DynamicSearchAdsSearchTermViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Dynamic Search Ads Search Term View resource. + +// A dynamic search ads search term view. +message DynamicSearchAdsSearchTermView { + option (google.api.resource) = { + type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" + pattern: "customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}" + }; + + // Output only. The resource name of the dynamic search ads search term view. + // Dynamic search ads search term view resource names have the form: + // + // `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" + } + ]; + + // Output only. Search term + // + // This field is read-only. + optional string search_term = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The dynamically generated headline of the Dynamic Search Ad. + // + // This field is read-only. + optional string headline = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The dynamically selected landing page URL of the impression. + // + // This field is read-only. + optional string landing_page = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of page feed item served for the impression. + // + // This field is read-only. + optional string page_url = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if query matches a negative keyword. + // + // This field is read-only. + optional bool has_negative_keyword = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if query is added to targeted keywords. + // + // This field is read-only. + optional bool has_matching_keyword = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if query matches a negative url. + // + // This field is read-only. + optional bool has_negative_url = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/expanded_landing_page_view.proto b/google/ads/googleads/v10/resources/expanded_landing_page_view.proto new file mode 100644 index 000000000..4db8994e4 --- /dev/null +++ b/google/ads/googleads/v10/resources/expanded_landing_page_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ExpandedLandingPageViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the expanded landing page view resource. + +// A landing page view with metrics aggregated at the expanded final URL +// level. +message ExpandedLandingPageView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ExpandedLandingPageView" + pattern: "customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}" + }; + + // Output only. The resource name of the expanded landing page view. + // Expanded landing page view resource names have the form: + // + // `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ExpandedLandingPageView" + } + ]; + + // Output only. The final URL that clicks are directed to. + optional string expanded_final_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/experiment.proto b/google/ads/googleads/v10/resources/experiment.proto new file mode 100644 index 000000000..421484f86 --- /dev/null +++ b/google/ads/googleads/v10/resources/experiment.proto @@ -0,0 +1,106 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/metric_goal.proto"; +import "google/ads/googleads/v10/enums/async_action_status.proto"; +import "google/ads/googleads/v10/enums/experiment_status.proto"; +import "google/ads/googleads/v10/enums/experiment_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Experiment resource. + +// A Google ads experiment for users to experiment changes on multiple +// campaigns, compare the performance, and apply the effective changes. +message Experiment { + option (google.api.resource) = { + type: "googleads.googleapis.com/Experiment" + pattern: "customers/{customer_id}/experiments/{trial_id}" + }; + + // Immutable. The resource name of the experiment. + // Experiment resource names have the form: + // + // `customers/{customer_id}/experiments/{experiment_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // Output only. The ID of the experiment. Read only. + optional int64 experiment_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the experiment. It must have a minimum length of 1 and + // maximum length of 1024. It must be unique under a customer. + string name = 10 [(google.api.field_behavior) = REQUIRED]; + + // The description of the experiment. It must have a minimum length of 1 and + // maximum length of 2048. + string description = 11; + + // For system managed experiments, the advertiser must provide a suffix during + // construction, in the setup stage before moving to initiated. The suffix + // will be appended to the in-design and experiment campaign names so that the + // name is base campaign name + suffix. + string suffix = 12; + + // The product/feature that uses this experiment. + google.ads.googleads.v10.enums.ExperimentTypeEnum.ExperimentType type = 13; + + // The Advertiser-desired status of this experiment. + google.ads.googleads.v10.enums.ExperimentStatusEnum.ExperimentStatus status = 14; + + // Date when the experiment starts. By default, the experiment starts + // now or on the campaign's start date, whichever is later. If this field is + // set, then the experiment starts at the beginning of the specified date in + // the customer's time zone. + // + // Format: YYYY-MM-DD + // Example: 2019-03-14 + optional string start_date = 15; + + // Date when the experiment ends. By default, the experiment ends on + // the campaign's end date. If this field is set, then the experiment ends at + // the end of the specified date in the customer's time zone. + // + // Format: YYYY-MM-DD + // Example: 2019-04-18 + optional string end_date = 16; + + // The goals of this experiment. + repeated google.ads.googleads.v10.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 recent long + // running operation is returned. + optional string long_running_operation = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the experiment promotion process. + google.ads.googleads.v10.enums.AsyncActionStatusEnum.AsyncActionStatus promote_status = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/experiment_arm.proto b/google/ads/googleads/v10/resources/experiment_arm.proto new file mode 100644 index 000000000..f47afcf63 --- /dev/null +++ b/google/ads/googleads/v10/resources/experiment_arm.proto @@ -0,0 +1,84 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentArmProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Experiment arm resource. + +// A Google ads experiment for users to experiment changes on multiple +// campaigns, compare the performance, and apply the effective changes. +message ExperimentArm { + option (google.api.resource) = { + type: "googleads.googleapis.com/ExperimentArm" + pattern: "customers/{customer_id}/experimentArms/{trial_id}~{trial_arm_id}" + }; + + // Immutable. The resource name of the experiment arm. + // Experiment arm resource names have the form: + // + // `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ExperimentArm" + } + ]; + + // Immutable. The experiment to which the ExperimentArm belongs. + string trial = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // Required. The name of the experiment arm. It must have a minimum length of 1 and + // maximum length of 1024. It must be unique under an experiment. + string name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Whether this arm is a control arm. A control arm is the arm against + // which the other arms are compared. + bool control = 4; + + // Traffic split of the trial arm. The value should be between 1 and 100 + // and must total 100 between the two trial arms. + int64 traffic_split = 5; + + // List of campaigns in the trial arm. The max length is one. + repeated string campaigns = 6 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // Output only. The in design campaigns in the treatment experiment arm. + repeated string in_design_campaigns = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/extension_feed_item.proto b/google/ads/googleads/v10/resources/extension_feed_item.proto new file mode 100644 index 000000000..1ea8e35c3 --- /dev/null +++ b/google/ads/googleads/v10/resources/extension_feed_item.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/common/extensions.proto"; +import "google/ads/googleads/v10/enums/extension_type.proto"; +import "google/ads/googleads/v10/enums/feed_item_status.proto"; +import "google/ads/googleads/v10/enums/feed_item_target_device.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionFeedItemProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ExtensionFeedItem resource. + +// An extension feed item. +message ExtensionFeedItem { + option (google.api.resource) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + pattern: "customers/{customer_id}/extensionFeedItems/{feed_item_id}" + }; + + // Immutable. The resource name of the extension feed item. + // Extension feed item resource names have the form: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + } + ]; + + // Output only. The ID of this feed item. Read-only. + optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The extension type of the extension feed item. + // This field is read-only. + google.ads.googleads.v10.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 + // time is in the customer's time zone. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string start_date_time = 26; + + // End time in which this feed item is no longer effective and will stop + // serving. The time is in the customer's time zone. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string end_date_time = 27; + + // 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.v10.common.AdScheduleInfo ad_schedules = 16; + + // The targeted device. + google.ads.googleads.v10.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 17; + + // The targeted geo target constant. + optional string targeted_geo_target_constant = 30 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + }]; + + // The targeted keyword. + google.ads.googleads.v10.common.KeywordInfo targeted_keyword = 22; + + // Output only. Status of the feed item. + // This field is read-only. + google.ads.googleads.v10.enums.FeedItemStatusEnum.FeedItemStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Extension type. + oneof extension { + // Sitelink extension. + google.ads.googleads.v10.common.SitelinkFeedItem sitelink_feed_item = 2; + + // Structured snippet extension. + google.ads.googleads.v10.common.StructuredSnippetFeedItem structured_snippet_feed_item = 3; + + // App extension. + google.ads.googleads.v10.common.AppFeedItem app_feed_item = 7; + + // Call extension. + google.ads.googleads.v10.common.CallFeedItem call_feed_item = 8; + + // Callout extension. + google.ads.googleads.v10.common.CalloutFeedItem callout_feed_item = 9; + + // Text message extension. + google.ads.googleads.v10.common.TextMessageFeedItem text_message_feed_item = 10; + + // Price extension. + google.ads.googleads.v10.common.PriceFeedItem price_feed_item = 11; + + // Promotion extension. + google.ads.googleads.v10.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.v10.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.v10.common.AffiliateLocationFeedItem affiliate_location_feed_item = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Hotel Callout extension. + google.ads.googleads.v10.common.HotelCalloutFeedItem hotel_callout_feed_item = 23; + + // Immutable. Advertiser provided image extension. + google.ads.googleads.v10.common.ImageFeedItem image_feed_item = 31 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Targeting at either the campaign or ad group level. Feed items that target + // a campaign or ad group will only serve with that resource. + oneof serving_resource_targeting { + // The targeted campaign. + string targeted_campaign = 28 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // The targeted ad group. + string targeted_ad_group = 29 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + }]; + } +} diff --git a/google/ads/googleads/v10/resources/feed.proto b/google/ads/googleads/v10/resources/feed.proto new file mode 100644 index 000000000..2aea8efcb --- /dev/null +++ b/google/ads/googleads/v10/resources/feed.proto @@ -0,0 +1,189 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/affiliate_location_feed_relationship_type.proto"; +import "google/ads/googleads/v10/enums/feed_attribute_type.proto"; +import "google/ads/googleads/v10/enums/feed_origin.proto"; +import "google/ads/googleads/v10/enums/feed_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Feed resource. + +// A feed. +message Feed { + option (google.api.resource) = { + type: "googleads.googleapis.com/Feed" + pattern: "customers/{customer_id}/feeds/{feed_id}" + }; + + // Data used to configure a location feed populated from Business Profile. + message PlacesLocationFeedData { + // Data used for authorization using OAuth. + message OAuthInfo { + // The HTTP method used to obtain authorization. + optional string http_method = 4; + + // The HTTP request URL used to obtain authorization. + optional string http_request_url = 5; + + // The HTTP authorization header used to obtain authorization. + optional string http_authorization_header = 6; + } + + // Immutable. Required authentication token (from OAuth API) for the email. + // This field can only be specified in a create request. All its subfields + // are not selectable. + OAuthInfo oauth_info = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Email address of a Business Profile or email address of a + // manager of the Business Profile. Required. + optional string email_address = 7; + + // Plus page ID of the managed business whose locations should be used. If + // this field is not set, then all businesses accessible by the user + // (specified by email_address) are used. + // This field is mutate-only and is not selectable. + string business_account_id = 8; + + // Used to filter Business Profile listings by business name. If + // business_name_filter is set, only listings with a matching business name + // are candidates to be sync'd into FeedItems. + optional string business_name_filter = 9; + + // Used to filter Business Profile listings by categories. If entries + // exist in category_filters, only listings that belong to any of the + // categories are candidates to be sync'd into FeedItems. If no entries + // exist in category_filters, then all listings are candidates for syncing. + repeated string category_filters = 11; + + // Used to filter Business Profile listings by labels. If entries exist in + // label_filters, only listings that has any of the labels set are + // candidates to be synchronized into FeedItems. If no entries exist in + // label_filters, then all listings are candidates for syncing. + repeated string label_filters = 12; + } + + // Data used to configure an affiliate location feed populated with the + // specified chains. + message AffiliateLocationFeedData { + // The list of chains that the affiliate location feed will sync the + // locations from. + repeated int64 chain_ids = 3; + + // The relationship the chains have with the advertiser. + google.ads.googleads.v10.enums.AffiliateLocationFeedRelationshipTypeEnum.AffiliateLocationFeedRelationshipType relationship_type = 2; + } + + // Immutable. The resource name of the feed. + // Feed resource names have the form: + // + // `customers/{customer_id}/feeds/{feed_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. The ID of the feed. + // This field is read-only. + optional int64 id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Name of the feed. Required. + optional string name = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // The Feed's attributes. Required on CREATE, unless + // system_feed_generation_data is provided, in which case Google Ads will + // update the feed with the correct attributes. + // Disallowed on UPDATE. Use attribute_operations to add new attributes. + repeated FeedAttribute attributes = 4; + + // The list of operations changing the feed attributes. Attributes can only + // be added, not removed. + repeated FeedAttributeOperation attribute_operations = 9; + + // Immutable. Specifies who manages the FeedAttributes for the Feed. + google.ads.googleads.v10.enums.FeedOriginEnum.FeedOrigin origin = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Status of the feed. + // This field is read-only. + google.ads.googleads.v10.enums.FeedStatusEnum.FeedStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The system data for the Feed. This data specifies information for + // generating the feed items of the system generated feed. + oneof system_feed_generation_data { + // Data used to configure a location feed populated from Business Profile. + PlacesLocationFeedData places_location_feed_data = 6; + + // Data used to configure an affiliate location feed populated with + // the specified chains. + AffiliateLocationFeedData affiliate_location_feed_data = 7; + } +} + +// FeedAttributes define the types of data expected to be present in a Feed. A +// single FeedAttribute specifies the expected type of the FeedItemAttributes +// with the same FeedAttributeId. Optionally, a FeedAttribute can be marked as +// being part of a FeedItem's unique key. +message FeedAttribute { + // ID of the attribute. + optional int64 id = 5; + + // The name of the attribute. Required. + optional string name = 6; + + // Data type for feed attribute. Required. + google.ads.googleads.v10.enums.FeedAttributeTypeEnum.FeedAttributeType type = 3; + + // Indicates that data corresponding to this attribute is part of a + // FeedItem's unique key. It defaults to false if it is unspecified. Note + // that a unique key is not required in a Feed's schema, in which case the + // FeedItems must be referenced by their feed_item_id. + optional bool is_part_of_key = 7; +} + +// Operation to be performed on a feed attribute list in a mutate. +message FeedAttributeOperation { + // The operator. + enum Operator { + // Unspecified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Add the attribute to the existing attributes. + ADD = 2; + } + + // Output only. Type of list operation to perform. + Operator operator = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The feed attribute being added to the list. + FeedAttribute value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/feed_item.proto b/google/ads/googleads/v10/resources/feed_item.proto new file mode 100644 index 000000000..28bcc96da --- /dev/null +++ b/google/ads/googleads/v10/resources/feed_item.proto @@ -0,0 +1,213 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/custom_parameter.proto"; +import "google/ads/googleads/v10/common/feed_common.proto"; +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/feed_item_quality_approval_status.proto"; +import "google/ads/googleads/v10/enums/feed_item_quality_disapproval_reason.proto"; +import "google/ads/googleads/v10/enums/feed_item_status.proto"; +import "google/ads/googleads/v10/enums/feed_item_validation_status.proto"; +import "google/ads/googleads/v10/enums/geo_targeting_restriction.proto"; +import "google/ads/googleads/v10/enums/placeholder_type.proto"; +import "google/ads/googleads/v10/enums/policy_approval_status.proto"; +import "google/ads/googleads/v10/enums/policy_review_status.proto"; +import "google/ads/googleads/v10/errors/feed_item_validation_error.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the FeedItem resource. + +// A feed item. +message FeedItem { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedItem" + pattern: "customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}" + }; + + // Immutable. The resource name of the feed item. + // Feed item resource names have the form: + // + // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Immutable. The feed to which this feed item belongs. + optional string feed = 11 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. The ID of this feed item. + optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Start time in which this feed item is effective and can begin serving. The + // time is in the customer's time zone. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string start_date_time = 13; + + // End time in which this feed item is no longer effective and will stop + // serving. The time is in the customer's time zone. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string end_date_time = 14; + + // The feed item's attribute values. + repeated FeedItemAttributeValue attribute_values = 6; + + // Geo targeting restriction specifies the type of location that can be used + // for targeting. + google.ads.googleads.v10.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.v10.common.CustomParameter url_custom_parameters = 8; + + // Output only. Status of the feed item. + // This field is read-only. + google.ads.googleads.v10.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 for active + // feed mappings. There will be an entry in the list for each type of feed + // mapping associated with the feed, e.g. a feed with a sitelink and a call + // feed mapping would cause every feed item associated with that feed to have + // an entry in this list for both sitelink and call. + // This field is read-only. + repeated FeedItemPlaceholderPolicyInfo policy_infos = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A feed item attribute value. +message FeedItemAttributeValue { + // Id of the feed attribute for which the value is associated with. + optional int64 feed_attribute_id = 11; + + // Int64 value. Should be set if feed_attribute_id refers to a feed attribute + // of type INT64. + optional int64 integer_value = 12; + + // Bool value. Should be set if feed_attribute_id refers to a feed attribute + // of type BOOLEAN. + optional bool boolean_value = 13; + + // String value. Should be set if feed_attribute_id refers to a feed attribute + // of type STRING, URL or DATE_TIME. + // For STRING the maximum length is 1500 characters. For URL the maximum + // length is 2076 characters. For DATE_TIME the string must be in the format + // "YYYYMMDD HHMMSS". + optional string string_value = 14; + + // Double value. Should be set if feed_attribute_id refers to a feed attribute + // of type DOUBLE. + optional double double_value = 15; + + // Price value. Should be set if feed_attribute_id refers to a feed attribute + // of type PRICE. + google.ads.googleads.v10.common.Money price_value = 6; + + // Repeated int64 value. Should be set if feed_attribute_id refers to a feed + // attribute of type INT64_LIST. + repeated int64 integer_values = 16; + + // Repeated bool value. Should be set if feed_attribute_id refers to a feed + // attribute of type BOOLEAN_LIST. + repeated bool boolean_values = 17; + + // Repeated string value. Should be set if feed_attribute_id refers to a feed + // attribute of type STRING_LIST, URL_LIST or DATE_TIME_LIST. + // For STRING_LIST and URL_LIST the total size of the list in bytes may not + // exceed 3000. For DATE_TIME_LIST the number of elements may not exceed 200. + // + // For STRING_LIST the maximum length of each string element is 1500 + // characters. For URL_LIST the maximum length is 2076 characters. For + // DATE_TIME the format of the string must be the same as start and end time + // for the feed item. + repeated string string_values = 18; + + // Repeated double value. Should be set if feed_attribute_id refers to a feed + // attribute of type DOUBLE_LIST. + repeated double double_values = 19; +} + +// Policy, validation, and quality approval info for a feed item for the +// specified placeholder type. +message FeedItemPlaceholderPolicyInfo { + // Output only. The placeholder type. + google.ads.googleads.v10.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type_enum = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The FeedMapping that contains the placeholder type. + optional string feed_mapping_resource_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Where the placeholder type is in the review process. + google.ads.googleads.v10.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.v10.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.v10.common.PolicyTopicEntry policy_topic_entries = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The validation status of the palceholder type. + google.ads.googleads.v10.enums.FeedItemValidationStatusEnum.FeedItemValidationStatus validation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of placeholder type validation errors. + repeated FeedItemValidationError validation_errors = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Placeholder type quality evaluation approval status. + google.ads.googleads.v10.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.v10.enums.FeedItemQualityDisapprovalReasonEnum.FeedItemQualityDisapprovalReason quality_disapproval_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Stores a validation error and the set of offending feed attributes which +// together are responsible for causing a feed item validation error. +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.v10.errors.FeedItemValidationErrorEnum.FeedItemValidationError validation_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The description of the validation error. + optional string description = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set of feed attributes in the feed item flagged during validation. If + // empty, no specific feed attributes can be associated with the error + // (e.g. error across the entire feed item). + repeated int64 feed_attribute_ids = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Any extra information related to this error which is not captured by + // validation_error and feed_attribute_id (e.g. placeholder field IDs when + // feed_attribute_id is not mapped). Note that extra_info is not localized. + optional string extra_info = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/feed_item_set.proto b/google/ads/googleads/v10/resources/feed_item_set.proto new file mode 100644 index 000000000..be177c815 --- /dev/null +++ b/google/ads/googleads/v10/resources/feed_item_set.proto @@ -0,0 +1,83 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/feed_item_set_filter_type_infos.proto"; +import "google/ads/googleads/v10/enums/feed_item_set_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::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 +// matching functions of CustomerFeed, CampaignFeed, and AdGroupFeed. +message FeedItemSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedItemSet" + pattern: "customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}" + }; + + // Immutable. The resource name of the feed item set. + // Feed item set resource names have the form: + // `customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSet" + } + ]; + + // Immutable. The resource name of the feed containing the feed items in the set. + // Immutable. Required. + string feed = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. ID of the set. + int64 feed_item_set_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of the set. Must be unique within the account. + string display_name = 4; + + // Output only. Status of the feed item set. + // This field is read-only. + google.ads.googleads.v10.enums.FeedItemSetStatusEnum.FeedItemSetStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Represents a filter on locations in a feed item set. + // Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. + oneof dynamic_set_filter { + // Filter for dynamic location set. + // It is only used for sets of locations. + google.ads.googleads.v10.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.v10.common.DynamicAffiliateLocationSetFilter dynamic_affiliate_location_set_filter = 6; + } +} diff --git a/google/ads/googleads/v10/resources/feed_item_set_link.proto b/google/ads/googleads/v10/resources/feed_item_set_link.proto new file mode 100644 index 000000000..086475f6e --- /dev/null +++ b/google/ads/googleads/v10/resources/feed_item_set_link.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetLinkProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the FeedItemSetLink resource. + +// Represents a link between a FeedItem and a FeedItemSet. +message FeedItemSetLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedItemSetLink" + pattern: "customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}" + }; + + // Immutable. The resource name of the feed item set link. + // Feed item set link resource names have the form: + // `customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSetLink" + } + ]; + + // Immutable. The linked FeedItem. + string feed_item = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Immutable. The linked FeedItemSet. + string feed_item_set = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSet" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/feed_item_target.proto b/google/ads/googleads/v10/resources/feed_item_target.proto new file mode 100644 index 000000000..9bfacf164 --- /dev/null +++ b/google/ads/googleads/v10/resources/feed_item_target.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/enums/feed_item_target_device.proto"; +import "google/ads/googleads/v10/enums/feed_item_target_status.proto"; +import "google/ads/googleads/v10/enums/feed_item_target_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the FeedItemTarget resource. + +// A feed item target. +message FeedItemTarget { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedItemTarget" + pattern: "customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}" + }; + + // Immutable. The resource name of the feed item target. + // Feed item target resource names have the form: + // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemTarget" + } + ]; + + // Immutable. The feed item to which this feed item target belongs. + optional string feed_item = 12 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Output only. The target type of this feed item target. This field is read-only. + google.ads.googleads.v10.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. + optional int64 feed_item_target_id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of the feed item target. + // This field is read-only. + google.ads.googleads.v10.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The targeted resource. + oneof target { + // Immutable. The targeted campaign. + string campaign = 14 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The targeted ad group. + string ad_group = 15 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Immutable. The targeted keyword. + google.ads.googleads.v10.common.KeywordInfo keyword = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The targeted geo target constant resource name. + string geo_target_constant = 16 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + } + ]; + + // Immutable. The targeted device. + google.ads.googleads.v10.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The targeted schedule. + google.ads.googleads.v10.common.AdScheduleInfo ad_schedule = 10 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v10/resources/feed_mapping.proto b/google/ads/googleads/v10/resources/feed_mapping.proto new file mode 100644 index 000000000..37ee7cee4 --- /dev/null +++ b/google/ads/googleads/v10/resources/feed_mapping.proto @@ -0,0 +1,188 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/ad_customizer_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/affiliate_location_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/app_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/call_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/callout_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/custom_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/dsa_page_feed_criterion_field.proto"; +import "google/ads/googleads/v10/enums/education_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/feed_mapping_criterion_type.proto"; +import "google/ads/googleads/v10/enums/feed_mapping_status.proto"; +import "google/ads/googleads/v10/enums/flight_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/hotel_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/image_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/job_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/local_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/location_extension_targeting_criterion_field.proto"; +import "google/ads/googleads/v10/enums/location_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/message_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/placeholder_type.proto"; +import "google/ads/googleads/v10/enums/price_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/promotion_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/real_estate_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/sitelink_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/structured_snippet_placeholder_field.proto"; +import "google/ads/googleads/v10/enums/travel_placeholder_field.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the FeedMapping resource. + +// A feed mapping. +message FeedMapping { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedMapping" + pattern: "customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}" + }; + + // Immutable. The resource name of the feed mapping. + // Feed mapping resource names have the form: + // + // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedMapping" + } + ]; + + // Immutable. The feed of this feed mapping. + optional string feed = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Immutable. Feed attributes to field mappings. These mappings are a one-to-many + // relationship meaning that 1 feed attribute can be used to populate + // multiple placeholder fields, but 1 placeholder field can only draw + // data from 1 feed attribute. Ad Customizer is an exception, 1 placeholder + // field can be mapped to multiple feed attributes. Required. + repeated AttributeFieldMapping attribute_field_mappings = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Status of the feed mapping. + // This field is read-only. + google.ads.googleads.v10.enums.FeedMappingStatusEnum.FeedMappingStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Feed mapping target. Can be either a placeholder or a criterion. For a + // given feed, the active FeedMappings must have unique targets. Required. + oneof target { + // Immutable. The placeholder type of this mapping (i.e., if the mapping maps feed + // attributes to placeholder fields). + google.ads.googleads.v10.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The criterion type of this mapping (i.e., if the mapping maps feed + // attributes to criterion fields). + google.ads.googleads.v10.enums.FeedMappingCriterionTypeEnum.FeedMappingCriterionType criterion_type = 4 [(google.api.field_behavior) = IMMUTABLE]; + } +} + +// Maps from feed attribute id to a placeholder or criterion field id. +message AttributeFieldMapping { + // Immutable. Feed attribute from which to map. + optional int64 feed_attribute_id = 24 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The placeholder field ID. If a placeholder field enum is not published in + // the current API version, then this field will be populated and the field + // oneof will be empty. + // This field is read-only. + optional int64 field_id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Placeholder or criterion field to be populated using data from + // the above feed attribute. Required. + oneof field { + // Immutable. Sitelink Placeholder Fields. + google.ads.googleads.v10.enums.SitelinkPlaceholderFieldEnum.SitelinkPlaceholderField sitelink_field = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Call Placeholder Fields. + google.ads.googleads.v10.enums.CallPlaceholderFieldEnum.CallPlaceholderField call_field = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. App Placeholder Fields. + google.ads.googleads.v10.enums.AppPlaceholderFieldEnum.AppPlaceholderField app_field = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Location Placeholder Fields. This field is read-only. + google.ads.googleads.v10.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.v10.enums.AffiliateLocationPlaceholderFieldEnum.AffiliateLocationPlaceholderField affiliate_location_field = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Callout Placeholder Fields. + google.ads.googleads.v10.enums.CalloutPlaceholderFieldEnum.CalloutPlaceholderField callout_field = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Structured Snippet Placeholder Fields. + google.ads.googleads.v10.enums.StructuredSnippetPlaceholderFieldEnum.StructuredSnippetPlaceholderField structured_snippet_field = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Message Placeholder Fields. + google.ads.googleads.v10.enums.MessagePlaceholderFieldEnum.MessagePlaceholderField message_field = 10 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Price Placeholder Fields. + google.ads.googleads.v10.enums.PricePlaceholderFieldEnum.PricePlaceholderField price_field = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Promotion Placeholder Fields. + google.ads.googleads.v10.enums.PromotionPlaceholderFieldEnum.PromotionPlaceholderField promotion_field = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Ad Customizer Placeholder Fields + google.ads.googleads.v10.enums.AdCustomizerPlaceholderFieldEnum.AdCustomizerPlaceholderField ad_customizer_field = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Dynamic Search Ad Page Feed Fields. + google.ads.googleads.v10.enums.DsaPageFeedCriterionFieldEnum.DsaPageFeedCriterionField dsa_page_feed_field = 14 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Location Target Fields. + google.ads.googleads.v10.enums.LocationExtensionTargetingCriterionFieldEnum.LocationExtensionTargetingCriterionField location_extension_targeting_field = 15 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Education Placeholder Fields + google.ads.googleads.v10.enums.EducationPlaceholderFieldEnum.EducationPlaceholderField education_field = 16 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Flight Placeholder Fields + google.ads.googleads.v10.enums.FlightPlaceholderFieldEnum.FlightPlaceholderField flight_field = 17 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Placeholder Fields + google.ads.googleads.v10.enums.CustomPlaceholderFieldEnum.CustomPlaceholderField custom_field = 18 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Hotel Placeholder Fields + google.ads.googleads.v10.enums.HotelPlaceholderFieldEnum.HotelPlaceholderField hotel_field = 19 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Real Estate Placeholder Fields + google.ads.googleads.v10.enums.RealEstatePlaceholderFieldEnum.RealEstatePlaceholderField real_estate_field = 20 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Travel Placeholder Fields + google.ads.googleads.v10.enums.TravelPlaceholderFieldEnum.TravelPlaceholderField travel_field = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Local Placeholder Fields + google.ads.googleads.v10.enums.LocalPlaceholderFieldEnum.LocalPlaceholderField local_field = 22 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Job Placeholder Fields + google.ads.googleads.v10.enums.JobPlaceholderFieldEnum.JobPlaceholderField job_field = 23 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Image Placeholder Fields + google.ads.googleads.v10.enums.ImagePlaceholderFieldEnum.ImagePlaceholderField image_field = 26 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v10/resources/feed_placeholder_view.proto b/google/ads/googleads/v10/resources/feed_placeholder_view.proto new file mode 100644 index 000000000..302261391 --- /dev/null +++ b/google/ads/googleads/v10/resources/feed_placeholder_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/placeholder_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedPlaceholderViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the FeedPlaceholderView resource. + +// A feed placeholder view. +message FeedPlaceholderView { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedPlaceholderView" + pattern: "customers/{customer_id}/feedPlaceholderViews/{placeholder_type}" + }; + + // Output only. The resource name of the feed placeholder view. + // Feed placeholder view resource names have the form: + // + // `customers/{customer_id}/feedPlaceholderViews/{placeholder_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedPlaceholderView" + } + ]; + + // Output only. The placeholder type of the feed placeholder view. + google.ads.googleads.v10.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/gender_view.proto b/google/ads/googleads/v10/resources/gender_view.proto new file mode 100644 index 000000000..519f169d9 --- /dev/null +++ b/google/ads/googleads/v10/resources/gender_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GenderViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the gender view resource. + +// A gender view. +message GenderView { + option (google.api.resource) = { + type: "googleads.googleapis.com/GenderView" + pattern: "customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the gender view. + // Gender view resource names have the form: + // + // `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GenderView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/geo_target_constant.proto b/google/ads/googleads/v10/resources/geo_target_constant.proto new file mode 100644 index 000000000..02f4b76fa --- /dev/null +++ b/google/ads/googleads/v10/resources/geo_target_constant.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/geo_target_constant_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the geo target constant resource. + +// A geo target constant. +message GeoTargetConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/GeoTargetConstant" + pattern: "geoTargetConstants/{criterion_id}" + }; + + // Output only. The resource name of the geo target constant. + // Geo target constant resource names have the form: + // + // `geoTargetConstants/{geo_target_constant_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + } + ]; + + // Output only. The ID of the geo target constant. + optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Geo target constant English name. + optional string name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ISO-3166-1 alpha-2 country code that is associated with the target. + optional string country_code = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Geo target constant target type. + optional string target_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Geo target constant status. + google.ads.googleads.v10.enums.GeoTargetConstantStatusEnum.GeoTargetConstantStatus status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The fully qualified English name, consisting of the target's name and that + // of its parent and country. + optional string canonical_name = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the parent geo target constant. + // Geo target constant resource names have the form: + // + // `geoTargetConstants/{parent_geo_target_constant_id}` + optional string parent_geo_target = 9 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/geographic_view.proto b/google/ads/googleads/v10/resources/geographic_view.proto new file mode 100644 index 000000000..10366267d --- /dev/null +++ b/google/ads/googleads/v10/resources/geographic_view.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/geo_targeting_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GeographicViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the geographic view resource. + +// A geographic view. +// +// Geographic View includes all metrics aggregated at the country level, +// one row per country. It reports metrics at either actual physical location of +// the user or an area of interest. If other segment fields are used, you may +// get more than one row per country. +message GeographicView { + option (google.api.resource) = { + type: "googleads.googleapis.com/GeographicView" + pattern: "customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}" + }; + + // Output only. The resource name of the geographic view. + // Geographic view resource names have the form: + // + // `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeographicView" + } + ]; + + // Output only. Type of the geo targeting of the campaign. + google.ads.googleads.v10.enums.GeoTargetingTypeEnum.GeoTargetingType location_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Criterion Id for the country. + optional int64 country_criterion_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/google_ads_field.proto b/google/ads/googleads/v10/resources/google_ads_field.proto new file mode 100644 index 000000000..84956dc37 --- /dev/null +++ b/google/ads/googleads/v10/resources/google_ads_field.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/google_ads_field_category.proto"; +import "google/ads/googleads/v10/enums/google_ads_field_data_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsFieldProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Google Ads Field resource. + +// A field or resource (artifact) used by GoogleAdsService. +message GoogleAdsField { + option (google.api.resource) = { + type: "googleads.googleapis.com/GoogleAdsField" + pattern: "googleAdsFields/{google_ads_field}" + }; + + // Output only. The resource name of the artifact. + // Artifact resource names have the form: + // + // `googleAdsFields/{name}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GoogleAdsField" + } + ]; + + // Output only. The name of the artifact. + optional string name = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The category of the artifact. + google.ads.googleads.v10.enums.GoogleAdsFieldCategoryEnum.GoogleAdsFieldCategory category = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the artifact can be used in a SELECT clause in search + // queries. + optional bool selectable = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the artifact can be used in a WHERE clause in search + // queries. + optional bool filterable = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the artifact can be used in a ORDER BY clause in search + // queries. + optional bool sortable = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The names of all resources, segments, and metrics that are selectable with + // the described artifact. + repeated string selectable_with = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The names of all resources that are selectable with the described + // artifact. Fields from these resources do not segment metrics when included + // in search queries. + // + // This field is only set for artifacts whose category is RESOURCE. + repeated string attribute_resources = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field lists the names of all metrics that are selectable with the + // described artifact when it is used in the FROM clause. + // It is only set for artifacts whose category is RESOURCE. + repeated string metrics = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field lists the names of all artifacts, whether a segment or another + // resource, that segment metrics when included in search queries and when the + // described artifact is used in the FROM clause. It is only set for artifacts + // whose category is RESOURCE. + repeated string segments = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Values the artifact can assume if it is a field of type ENUM. + // + // This field is only set for artifacts of category SEGMENT or ATTRIBUTE. + repeated string enum_values = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field determines the operators that can be used with the artifact + // in WHERE clauses. + google.ads.googleads.v10.enums.GoogleAdsFieldDataTypeEnum.GoogleAdsFieldDataType data_type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of proto describing the artifact's data type. + optional string type_url = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the field artifact is repeated. + optional bool is_repeated = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/group_placement_view.proto b/google/ads/googleads/v10/resources/group_placement_view.proto new file mode 100644 index 000000000..830681df0 --- /dev/null +++ b/google/ads/googleads/v10/resources/group_placement_view.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/placement_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GroupPlacementViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the group placement view resource. + +// A group placement view. +message GroupPlacementView { + option (google.api.resource) = { + type: "googleads.googleapis.com/GroupPlacementView" + pattern: "customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}" + }; + + // Output only. The resource name of the group placement view. + // Group placement view resource names have the form: + // + // `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GroupPlacementView" + } + ]; + + // Output only. The automatic placement string at group level, e. g. web domain, mobile + // app ID, or a YouTube channel ID. + optional string placement = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Domain name for websites and YouTube channel name for YouTube channels. + optional string display_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL of the group placement, e.g. domain, link to the mobile application in + // app store, or a YouTube channel URL. + optional string target_url = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the placement, e.g. Website, YouTube Channel, Mobile Application. + google.ads.googleads.v10.enums.PlacementTypeEnum.PlacementType placement_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/hotel_group_view.proto b/google/ads/googleads/v10/resources/hotel_group_view.proto new file mode 100644 index 000000000..0c6c57786 --- /dev/null +++ b/google/ads/googleads/v10/resources/hotel_group_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "HotelGroupViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the hotel group view resource. + +// A hotel group view. +message HotelGroupView { + option (google.api.resource) = { + type: "googleads.googleapis.com/HotelGroupView" + pattern: "customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the hotel group view. + // Hotel Group view resource names have the form: + // + // `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/HotelGroupView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/hotel_performance_view.proto b/google/ads/googleads/v10/resources/hotel_performance_view.proto new file mode 100644 index 000000000..c4a812934 --- /dev/null +++ b/google/ads/googleads/v10/resources/hotel_performance_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "HotelPerformanceViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the hotel performance view resource. + +// A hotel performance view. +message HotelPerformanceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/HotelPerformanceView" + pattern: "customers/{customer_id}/hotelPerformanceView" + }; + + // Output only. The resource name of the hotel performance view. + // Hotel performance view resource names have the form: + // + // `customers/{customer_id}/hotelPerformanceView` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/HotelPerformanceView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/hotel_reconciliation.proto b/google/ads/googleads/v10/resources/hotel_reconciliation.proto new file mode 100644 index 000000000..1d9e7d962 --- /dev/null +++ b/google/ads/googleads/v10/resources/hotel_reconciliation.proto @@ -0,0 +1,116 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/hotel_reconciliation_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "HotelReconciliationProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the hotel reconciliation resource. + +// A hotel reconciliation. It contains conversion information from Hotel +// bookings to reconcile with advertiser records. These rows may be updated +// or canceled before billing via Bulk Uploads. +message HotelReconciliation { + option (google.api.resource) = { + type: "googleads.googleapis.com/HotelReconciliation" + pattern: "customers/{customer_id}/hotelReconciliations/{commission_id}" + }; + + // Immutable. The resource name of the hotel reconciliation. + // Hotel reconciliation resource names have the form: + // + // `customers/{customer_id}/hotelReconciliations/{commission_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/HotelReconciliation" + } + ]; + + // Required. Output only. The commission ID is Google's ID for this booking. Every booking event is + // assigned a Commission ID to help you match it to a guest stay. + string commission_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. The order ID is the identifier for this booking as provided in the + // 'transaction_id' parameter of the conversion tracking tag. + string order_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name for the Campaign associated with the conversion. + string campaign = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. Identifier for the Hotel Center account which provides the rates for the + // Hotel campaign. + int64 hotel_center_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unique identifier for the booked property, as provided in the Hotel Center + // feed. The hotel ID comes from the 'ID' parameter of the conversion tracking + // tag. + string hotel_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Check-in date recorded when the booking is made. If the check-in date is + // modified at reconciliation, the revised date will then take the place of + // the original date in this column. Format is YYYY-MM-DD. + string check_in_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Check-out date recorded when the booking is made. If the check-in date is + // modified at reconciliation, the revised date will then take the place of + // the original date in this column. Format is YYYY-MM-DD. + string check_out_date = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Output only. Reconciled value is the final value of a booking as paid by the guest. If + // original booking value changes for any reason, such as itinerary changes or + // room upsells, the reconciled value should be the full final amount + // collected. If a booking is canceled, the reconciled value should include + // the value of any cancellation fees or non-refundable nights charged. Value + // is in millionths of the base unit currency. For example, $12.35 would be + // represented as 12350000. Currency unit is in the default customer currency. + int64 reconciled_value_micros = 8 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Whether a given booking has been billed. Once billed, a booking can't be + // modified. + bool billed = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Output only. Current status of a booking with regards to 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.v10.enums.HotelReconciliationStatusEnum.HotelReconciliationStatus status = 10 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} diff --git a/google/ads/googleads/v10/resources/income_range_view.proto b/google/ads/googleads/v10/resources/income_range_view.proto new file mode 100644 index 000000000..211cf3f82 --- /dev/null +++ b/google/ads/googleads/v10/resources/income_range_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "IncomeRangeViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the income range view resource. + +// An income range view. +message IncomeRangeView { + option (google.api.resource) = { + type: "googleads.googleapis.com/IncomeRangeView" + pattern: "customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the income range view. + // Income range view resource names have the form: + // + // `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/IncomeRangeView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/invoice.proto b/google/ads/googleads/v10/resources/invoice.proto new file mode 100644 index 000000000..c914f1c73 --- /dev/null +++ b/google/ads/googleads/v10/resources/invoice.proto @@ -0,0 +1,202 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/dates.proto"; +import "google/ads/googleads/v10/enums/invoice_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "InvoiceProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Invoice resource. + +// An invoice. All invoice information is snapshotted to match the PDF invoice. +// For invoices older than the launch of InvoiceService, the snapshotted +// information may not match the PDF invoice. +message Invoice { + option (google.api.resource) = { + type: "googleads.googleapis.com/Invoice" + pattern: "customers/{customer_id}/invoices/{invoice_id}" + }; + + // Represents a summarized account budget billable cost. + message AccountBudgetSummary { + // Output only. The resource name of the customer associated with this account budget. + // This contains the customer ID, which appears on the invoice PDF as + // "Account ID". + // Customer resource names have the form: + // + // `customers/{customer_id}` + optional string customer = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The descriptive name of the account budget's customer. It appears on the + // invoice PDF as "Account". + optional string customer_descriptive_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the account budget associated with this summarized + // billable cost. + // AccountBudget resource names have the form: + // + // `customers/{customer_id}/accountBudgets/{account_budget_id}` + optional string account_budget = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the account budget. It appears on the invoice PDF as "Account + // budget". + optional string account_budget_name = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The purchase order number of the account budget. It appears on the + // invoice PDF as "Purchase order". + optional string purchase_order_number = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pretax subtotal amount attributable to this budget during the service + // period, in micros. + optional int64 subtotal_amount_micros = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The tax amount attributable to this budget during the service period, in + // micros. + optional int64 tax_amount_micros = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total amount attributable to this budget during the service period, + // in micros. This equals the sum of the account budget subtotal amount and + // the account budget tax amount. + optional int64 total_amount_micros = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v10.common.DateRange billable_activity_date_range = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the invoice. Multiple customers can share a given + // invoice, so multiple resource names may point to the same invoice. + // Invoice resource names have the form: + // + // `customers/{customer_id}/invoices/{invoice_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Invoice" + } + ]; + + // Output only. The ID of the invoice. It appears on the invoice PDF as "Invoice number". + optional string id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of invoice. + google.ads.googleads.v10.enums.InvoiceTypeEnum.InvoiceType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of this invoice's billing setup. + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + optional string billing_setup = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A 16 digit ID used to identify the payments account associated with the + // billing setup, e.g. "1234-5678-9012-3456". It appears on the invoice PDF as + // "Billing Account Number". + optional string payments_account_id = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A 12 digit ID used to identify the payments profile associated with the + // billing setup, e.g. "1234-5678-9012". It appears on the invoice PDF as + // "Billing ID". + optional string payments_profile_id = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The issue date in yyyy-mm-dd format. It appears on the invoice PDF as + // either "Issue date" or "Invoice date". + optional string issue_date = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The due date in yyyy-mm-dd format. + optional string due_date = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The service period date range of this invoice. The end date is inclusive. + google.ads.googleads.v10.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 subset of the + // currency codes derived from the ISO 4217 standard is supported. + optional string currency_code = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pretax subtotal amount of invoice level adjustments, in micros. + int64 adjustments_subtotal_amount_micros = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The sum of taxes on the invoice level adjustments, in micros. + int64 adjustments_tax_amount_micros = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total amount of invoice level adjustments, in micros. + int64 adjustments_total_amount_micros = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pretax subtotal amount of invoice level regulatory costs, in micros. + int64 regulatory_costs_subtotal_amount_micros = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The sum of taxes on the invoice level regulatory costs, in micros. + int64 regulatory_costs_tax_amount_micros = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total amount of invoice level regulatory costs, in micros. + int64 regulatory_costs_total_amount_micros = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pretax subtotal amount, in micros. This equals the + // sum of the AccountBudgetSummary subtotal amounts, + // Invoice.adjustments_subtotal_amount_micros, and + // Invoice.regulatory_costs_subtotal_amount_micros. + // Starting with v6, the Invoice.regulatory_costs_subtotal_amount_micros is no + // longer included. + optional int64 subtotal_amount_micros = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The sum of all taxes on the invoice, in micros. This equals the sum of the + // AccountBudgetSummary tax amounts, plus taxes not associated with a specific + // account budget. + optional int64 tax_amount_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total amount, in micros. This equals the sum of + // Invoice.subtotal_amount_micros and Invoice.tax_amount_micros. + // Starting with v6, Invoice.regulatory_costs_subtotal_amount_micros is + // also added as it is no longer already included in + // Invoice.tax_amount_micros. + optional int64 total_amount_micros = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the original invoice corrected, wrote off, or canceled + // by this invoice, if applicable. If `corrected_invoice` is set, + // `replaced_invoices` will not be set. + // Invoice resource names have the form: + // + // `customers/{customer_id}/invoices/{invoice_id}` + optional string corrected_invoice = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the original invoice(s) being rebilled or replaced by + // this invoice, if applicable. There might be multiple replaced invoices due + // to invoice consolidation. The replaced invoices may not belong to the same + // payments account. If `replaced_invoices` is set, `corrected_invoice` will + // not be set. + // Invoice resource names have the form: + // + // `customers/{customer_id}/invoices/{invoice_id}` + repeated string replaced_invoices = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL to a PDF copy of the invoice. Users need to pass in their OAuth + // token to request the PDF with this URL. + optional string pdf_url = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of summarized account budget information associated with this + // invoice. + repeated AccountBudgetSummary account_budget_summaries = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/keyword_plan.proto b/google/ads/googleads/v10/resources/keyword_plan.proto new file mode 100644 index 000000000..6e381b314 --- /dev/null +++ b/google/ads/googleads/v10/resources/keyword_plan.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/dates.proto"; +import "google/ads/googleads/v10/enums/keyword_plan_forecast_interval.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the keyword plan resource. + +// A Keyword Planner plan. +// Max number of saved keyword plans: 10000. +// It's possible to remove plans if limit is reached. +message KeywordPlan { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlan" + pattern: "customers/{customer_id}/keywordPlans/{keyword_plan_id}" + }; + + // Immutable. The resource name of the Keyword Planner plan. + // KeywordPlan resource names have the form: + // + // `customers/{customer_id}/keywordPlans/{kp_plan_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; + + // Output only. The ID of the keyword plan. + optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the keyword plan. + // + // This field is required and should not be empty when creating new keyword + // plans. + optional string name = 6; + + // The date period used for forecasting the plan. + KeywordPlanForecastPeriod forecast_period = 4; +} + +// The forecasting period associated with the keyword plan. +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.v10.enums.KeywordPlanForecastIntervalEnum.KeywordPlanForecastInterval date_interval = 1; + + // The custom date range used for forecasting. + // 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.v10.common.DateRange date_range = 2; + } +} diff --git a/google/ads/googleads/v10/resources/keyword_plan_ad_group.proto b/google/ads/googleads/v10/resources/keyword_plan_ad_group.proto new file mode 100644 index 000000000..f0e36f5f5 --- /dev/null +++ b/google/ads/googleads/v10/resources/keyword_plan_ad_group.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the keyword plan ad group resource. + +// A Keyword Planner ad group. +// Max number of keyword plan ad groups per plan: 200. +message KeywordPlanAdGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + pattern: "customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}" + }; + + // Immutable. The resource name of the Keyword Planner ad group. + // KeywordPlanAdGroup resource names have the form: + // + // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + } + ]; + + // The keyword plan campaign to which this ad group belongs. + optional string keyword_plan_campaign = 6 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + }]; + + // Output only. The ID of the keyword plan ad group. + optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the keyword plan ad group. + // + // This field is required and should not be empty when creating keyword plan + // ad group. + optional string name = 8; + + // A default ad group max cpc bid in micros in account currency for all + // biddable keywords under the keyword plan ad group. + // If not set, will inherit from parent campaign. + optional int64 cpc_bid_micros = 9; +} diff --git a/google/ads/googleads/v10/resources/keyword_plan_ad_group_keyword.proto b/google/ads/googleads/v10/resources/keyword_plan_ad_group_keyword.proto new file mode 100644 index 000000000..578337f52 --- /dev/null +++ b/google/ads/googleads/v10/resources/keyword_plan_ad_group_keyword.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/keyword_match_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupKeywordProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the keyword plan ad group keyword resource. + +// A Keyword Plan ad group keyword. +// Max number of keyword plan keywords per plan: 10000. +message KeywordPlanAdGroupKeyword { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" + pattern: "customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}" + }; + + // Immutable. The resource name of the Keyword Plan ad group keyword. + // KeywordPlanAdGroupKeyword resource names have the form: + // + // `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" + } + ]; + + // The Keyword Plan ad group to which this keyword belongs. + optional string keyword_plan_ad_group = 8 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + }]; + + // Output only. The ID of the Keyword Plan keyword. + optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The keyword text. + optional string text = 10; + + // The keyword match type. + google.ads.googleads.v10.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; + + // A keyword level max cpc bid in micros (e.g. $1 = 1mm). The currency is the + // same as the account currency code. This will override any CPC bid set at + // the keyword plan ad group level. + // Not applicable for negative keywords. (negative = true) + // This field is Optional. + optional int64 cpc_bid_micros = 11; + + // Immutable. If true, the keyword is negative. + optional bool negative = 12 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v10/resources/keyword_plan_campaign.proto b/google/ads/googleads/v10/resources/keyword_plan_campaign.proto new file mode 100644 index 000000000..e53e2dfd4 --- /dev/null +++ b/google/ads/googleads/v10/resources/keyword_plan_campaign.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/keyword_plan_network.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the keyword plan campaign resource. + +// A Keyword Plan campaign. +// Max number of keyword plan campaigns per plan allowed: 1. +message KeywordPlanCampaign { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + pattern: "customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}" + }; + + // Immutable. The resource name of the Keyword Plan campaign. + // KeywordPlanCampaign resource names have the form: + // + // `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + } + ]; + + // The keyword plan this campaign belongs to. + optional string keyword_plan = 9 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + }]; + + // Output only. The ID of the Keyword Plan campaign. + optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the Keyword Plan campaign. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + optional string name = 11; + + // The languages targeted for the Keyword Plan campaign. + // Max allowed: 1. + repeated string language_constants = 12 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/LanguageConstant" + }]; + + // Targeting network. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + google.ads.googleads.v10.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 6; + + // A default max cpc bid in micros, and in the account currency, for all ad + // groups under the campaign. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + optional int64 cpc_bid_micros = 13; + + // The geo targets. + // Max number allowed: 20. + repeated KeywordPlanGeoTarget geo_targets = 8; +} + +// A geo target. +message KeywordPlanGeoTarget { + // Required. The resource name of the geo target. + optional string geo_target_constant = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + }]; +} diff --git a/google/ads/googleads/v10/resources/keyword_plan_campaign_keyword.proto b/google/ads/googleads/v10/resources/keyword_plan_campaign_keyword.proto new file mode 100644 index 000000000..33a539a42 --- /dev/null +++ b/google/ads/googleads/v10/resources/keyword_plan_campaign_keyword.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/keyword_match_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignKeywordProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the keyword plan negative keyword resource. + +// A Keyword Plan Campaign keyword. +// Only negative keywords are supported for Campaign Keyword. +message KeywordPlanCampaignKeyword { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" + pattern: "customers/{customer_id}/keywordPlanCampaignKeywords/{keyword_plan_campaign_keyword_id}" + }; + + // Immutable. The resource name of the Keyword Plan Campaign keyword. + // KeywordPlanCampaignKeyword resource names have the form: + // + // `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" + } + ]; + + // The Keyword Plan campaign to which this negative keyword belongs. + optional string keyword_plan_campaign = 8 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + }]; + + // Output only. The ID of the Keyword Plan negative keyword. + optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The keyword text. + optional string text = 10; + + // The keyword match type. + google.ads.googleads.v10.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; + + // Immutable. If true, the keyword is negative. + // Must be set to true. Only negative campaign keywords are supported. + optional bool negative = 11 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v10/resources/keyword_theme_constant.proto b/google/ads/googleads/v10/resources/keyword_theme_constant.proto new file mode 100644 index 000000000..ab85f7bbe --- /dev/null +++ b/google/ads/googleads/v10/resources/keyword_theme_constant.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordThemeConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Smart Campaign keyword theme constant resource. + +// A Smart Campaign keyword theme constant. +message KeywordThemeConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordThemeConstant" + pattern: "keywordThemeConstants/{express_category_id}~{express_sub_category_id}" + }; + + // Output only. The resource name of the keyword theme constant. + // Keyword theme constant resource names have the form: + // + // `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordThemeConstant" + } + ]; + + // Output only. The ISO-3166 Alpha-2 country code of the constant, eg. "US". + // To display and query matching purpose, the keyword theme needs to be + // localized. + optional string country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ISO-639-1 language code with 2 letters of the constant, eg. "en". + // To display and query matching purpose, the keyword theme needs to be + // localized. + optional string language_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name of the keyword theme or sub keyword theme. + optional string display_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/keyword_view.proto b/google/ads/googleads/v10/resources/keyword_view.proto new file mode 100644 index 000000000..b4fa7de55 --- /dev/null +++ b/google/ads/googleads/v10/resources/keyword_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the keyword view resource. + +// A keyword view. +message KeywordView { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordView" + pattern: "customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the keyword view. + // Keyword view resource names have the form: + // + // `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/label.proto b/google/ads/googleads/v10/resources/label.proto new file mode 100644 index 000000000..dcc68f77c --- /dev/null +++ b/google/ads/googleads/v10/resources/label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/text_label.proto"; +import "google/ads/googleads/v10/enums/label_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LabelProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// A label. +message Label { + option (google.api.resource) = { + type: "googleads.googleapis.com/Label" + pattern: "customers/{customer_id}/labels/{label_id}" + }; + + // Immutable. Name of the resource. + // Label resource names have the form: + // `customers/{customer_id}/labels/{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; + + // Output only. Id of the label. Read only. + optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the label. + // + // This field is required and should not be empty when creating a new label. + // + // The length of this string should be between 1 and 80, inclusive. + optional string name = 7; + + // Output only. Status of the label. Read only. + google.ads.googleads.v10.enums.LabelStatusEnum.LabelStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A type of label displaying text on a colored background. + google.ads.googleads.v10.common.TextLabel text_label = 5; +} diff --git a/google/ads/googleads/v10/resources/landing_page_view.proto b/google/ads/googleads/v10/resources/landing_page_view.proto new file mode 100644 index 000000000..ae0365f96 --- /dev/null +++ b/google/ads/googleads/v10/resources/landing_page_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LandingPageViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the landing page view resource. + +// A landing page view with metrics aggregated at the unexpanded final URL +// level. +message LandingPageView { + option (google.api.resource) = { + type: "googleads.googleapis.com/LandingPageView" + pattern: "customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}" + }; + + // Output only. The resource name of the landing page view. + // Landing page view resource names have the form: + // + // `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LandingPageView" + } + ]; + + // Output only. The advertiser-specified final URL. + optional string unexpanded_final_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/language_constant.proto b/google/ads/googleads/v10/resources/language_constant.proto new file mode 100644 index 000000000..c0ba053a3 --- /dev/null +++ b/google/ads/googleads/v10/resources/language_constant.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LanguageConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the language constant resource. + +// A language. +message LanguageConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/LanguageConstant" + pattern: "languageConstants/{criterion_id}" + }; + + // Output only. The resource name of the language constant. + // Language constant resource names have the form: + // + // `languageConstants/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LanguageConstant" + } + ]; + + // Output only. The ID of the language constant. + optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The language code, e.g. "en_US", "en_AU", "es", "fr", etc. + optional string code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The full name of the language in English, e.g., "English (US)", "Spanish", + // etc. + optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the language is targetable. + optional bool targetable = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/lead_form_submission_data.proto b/google/ads/googleads/v10/resources/lead_form_submission_data.proto new file mode 100644 index 000000000..2249ceb48 --- /dev/null +++ b/google/ads/googleads/v10/resources/lead_form_submission_data.proto @@ -0,0 +1,105 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/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.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormSubmissionDataProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the lead form submission data resource. + +// Data from lead form submissions. +message LeadFormSubmissionData { + option (google.api.resource) = { + type: "googleads.googleapis.com/LeadFormSubmissionData" + pattern: "customers/{customer_id}/leadFormSubmissionData/{lead_form_user_submission_id}" + }; + + // Output only. The resource name of the lead form submission data. + // Lead form submission data resource names have the form: + // + // `customers/{customer_id}/leadFormSubmissionData/{lead_form_submission_data_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LeadFormSubmissionData" + } + ]; + + // Output only. ID of this lead form submission. + string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Asset associated with the submitted lead form. + string asset = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. Campaign associated with the submitted lead form. + string campaign = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. Submission data associated with a lead form. + repeated LeadFormSubmissionField lead_form_submission_fields = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. AdGroup associated with the submitted lead form. + string ad_group = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. AdGroupAd associated with the submitted lead form. + string ad_group_ad = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Output only. Google Click Id associated with the submissed lead form. + string gclid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date and time at which the lead form was submitted. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + string submission_date_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Fields in the submitted lead form. +message LeadFormSubmissionField { + // Output only. Field type for lead form fields. + google.ads.googleads.v10.enums.LeadFormFieldUserInputTypeEnum.LeadFormFieldUserInputType field_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Field value for lead form fields. + string field_value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/life_event.proto b/google/ads/googleads/v10/resources/life_event.proto new file mode 100644 index 000000000..efe8bc015 --- /dev/null +++ b/google/ads/googleads/v10/resources/life_event.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criterion_category_availability.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LifeEventProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Life Event resource. + +// A life event: a particular interest-based vertical to be targeted to reach +// users when they are in the midst of important life milestones. +message LifeEvent { + option (google.api.resource) = { + type: "googleads.googleapis.com/LifeEvent" + pattern: "customers/{customer_id}/lifeEvents/{life_event_id}" + }; + + // Output only. The resource name of the life event. + // Life event resource names have the form: + // + // `customers/{customer_id}/lifeEvents/{life_event_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LifeEvent" + } + ]; + + // Output only. The ID of the life event. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the life event. E.g.,"Recently Moved" + string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The parent of the life_event. + string parent = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LifeEvent" + } + ]; + + // Output only. True if the life event is launched to all channels and locales. + bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Availability information of the life event. + repeated google.ads.googleads.v10.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/location_view.proto b/google/ads/googleads/v10/resources/location_view.proto new file mode 100644 index 000000000..7da30fac1 --- /dev/null +++ b/google/ads/googleads/v10/resources/location_view.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LocationViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the location view resource. + +// A location view summarizes the performance of campaigns by +// Location criteria. +message LocationView { + option (google.api.resource) = { + type: "googleads.googleapis.com/LocationView" + pattern: "customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}" + }; + + // Output only. The resource name of the location view. + // Location view resource names have the form: + // + // `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocationView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/managed_placement_view.proto b/google/ads/googleads/v10/resources/managed_placement_view.proto new file mode 100644 index 000000000..18afabba2 --- /dev/null +++ b/google/ads/googleads/v10/resources/managed_placement_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ManagedPlacementViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Managed Placement view resource. + +// A managed placement view. +message ManagedPlacementView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ManagedPlacementView" + pattern: "customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the Managed Placement view. + // Managed placement view resource names have the form: + // + // `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ManagedPlacementView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/media_file.proto b/google/ads/googleads/v10/resources/media_file.proto new file mode 100644 index 000000000..e7f6d5dd8 --- /dev/null +++ b/google/ads/googleads/v10/resources/media_file.proto @@ -0,0 +1,136 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/media_type.proto"; +import "google/ads/googleads/v10/enums/mime_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "MediaFileProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the media file resource. + +// A media file. +message MediaFile { + option (google.api.resource) = { + type: "googleads.googleapis.com/MediaFile" + pattern: "customers/{customer_id}/mediaFiles/{media_file_id}" + }; + + // Immutable. The resource name of the media file. + // Media file resource names have the form: + // + // `customers/{customer_id}/mediaFiles/{media_file_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/MediaFile" + } + ]; + + // Output only. The ID of the media file. + optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Type of the media file. + google.ads.googleads.v10.enums.MediaTypeEnum.MediaType type = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The mime type of the media file. + google.ads.googleads.v10.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 a file + // name). Only used for media of type AUDIO and IMAGE. + optional string source_url = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The name of the media file. The name can be used by clients to help + // identify previously uploaded media. + optional string name = 14 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The size of the media file in bytes. + optional int64 file_size = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The specific type of the media file. + oneof mediatype { + // Immutable. Encapsulates an Image. + MediaImage image = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A ZIP archive media the content of which contains HTML5 assets. + MediaBundle media_bundle = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Encapsulates an Audio. + MediaAudio audio = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Encapsulates a Video. + MediaVideo video = 11 [(google.api.field_behavior) = IMMUTABLE]; + } +} + +// Encapsulates an Image. +message MediaImage { + // Immutable. Raw image data. + optional bytes data = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The url to the full size version of the image. + optional string full_size_image_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The url to the preview size version of the image. + optional string preview_size_image_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents a ZIP archive media the content of which contains HTML5 assets. +message MediaBundle { + // Immutable. Raw zipped data. + optional bytes data = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The url to access the uploaded zipped data. + // E.g. https://tpc.googlesyndication.com/simgad/123 + // This field is read-only. + optional string url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Encapsulates an Audio. +message MediaAudio { + // Output only. The duration of the Audio in milliseconds. + optional int64 ad_duration_millis = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Encapsulates a Video. +message MediaVideo { + // Output only. The duration of the Video in milliseconds. + optional int64 ad_duration_millis = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The YouTube video ID (as seen in YouTube URLs). Adding prefix + // "https://www.youtube.com/watch?v=" to this ID will get the YouTube + // streaming URL for this video. + optional string youtube_video_id = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The Advertising Digital Identification code for this video, as defined by + // the American Association of Advertising Agencies, used mainly for + // television commercials. + optional string advertising_id_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Industry Standard Commercial Identifier code for this video, used + // mainly for television commercials. + optional string isci_code = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/merchant_center_link.proto b/google/ads/googleads/v10/resources/merchant_center_link.proto new file mode 100644 index 000000000..f23a16f91 --- /dev/null +++ b/google/ads/googleads/v10/resources/merchant_center_link.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/merchant_center_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "MerchantCenterLinkProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::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.v10.enums.MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus status = 5; +} diff --git a/google/ads/googleads/v10/resources/mobile_app_category_constant.proto b/google/ads/googleads/v10/resources/mobile_app_category_constant.proto new file mode 100644 index 000000000..5a20d3d66 --- /dev/null +++ b/google/ads/googleads/v10/resources/mobile_app_category_constant.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "MobileAppCategoryConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Mobile App Category Constant resource. + +// A mobile application category constant. +message MobileAppCategoryConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/MobileAppCategoryConstant" + pattern: "mobileAppCategoryConstants/{mobile_app_category_id}" + }; + + // Output only. The resource name of the mobile app category constant. + // Mobile app category constant resource names have the form: + // + // `mobileAppCategoryConstants/{mobile_app_category_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/MobileAppCategoryConstant" + } + ]; + + // Output only. The ID of the mobile app category constant. + optional int32 id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mobile app category name. + optional string name = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/mobile_device_constant.proto b/google/ads/googleads/v10/resources/mobile_device_constant.proto new file mode 100644 index 000000000..fe2dcee95 --- /dev/null +++ b/google/ads/googleads/v10/resources/mobile_device_constant.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/mobile_device_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "MobileDeviceConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the mobile device constant resource. + +// A mobile device constant. +message MobileDeviceConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/MobileDeviceConstant" + pattern: "mobileDeviceConstants/{criterion_id}" + }; + + // Output only. The resource name of the mobile device constant. + // Mobile device constant resource names have the form: + // + // `mobileDeviceConstants/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/MobileDeviceConstant" + } + ]; + + // Output only. The ID of the mobile device constant. + optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the mobile device. + optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The manufacturer of the mobile device. + optional string manufacturer_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The operating system of the mobile device. + optional string operating_system_name = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of mobile device. + google.ads.googleads.v10.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/offline_user_data_job.proto b/google/ads/googleads/v10/resources/offline_user_data_job.proto new file mode 100644 index 000000000..d00f61fb9 --- /dev/null +++ b/google/ads/googleads/v10/resources/offline_user_data_job.proto @@ -0,0 +1,94 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/offline_user_data.proto"; +import "google/ads/googleads/v10/enums/offline_user_data_job_failure_reason.proto"; +import "google/ads/googleads/v10/enums/offline_user_data_job_match_rate_range.proto"; +import "google/ads/googleads/v10/enums/offline_user_data_job_status.proto"; +import "google/ads/googleads/v10/enums/offline_user_data_job_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the offline user data job resource. + +// A job containing offline user data of store visitors, or user list members +// that will be processed asynchronously. The uploaded data isn't readable and +// the processing results of the job can only be read using +// GoogleAdsService.Search/SearchStream. +message OfflineUserDataJob { + option (google.api.resource) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + pattern: "customers/{customer_id}/offlineUserDataJobs/{offline_user_data_update_id}" + }; + + // Immutable. The resource name of the offline user data job. + // Offline user data job resource names have the form: + // + // `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + } + ]; + + // Output only. ID of this offline user data job. + optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. User specified job ID. + optional int64 external_id = 10 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Type of the job. + google.ads.googleads.v10.enums.OfflineUserDataJobTypeEnum.OfflineUserDataJobType type = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Status of the job. + google.ads.googleads.v10.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.v10.enums.OfflineUserDataJobFailureReasonEnum.OfflineUserDataJobFailureReason failure_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata of offline user data job depicting match rate range. + OfflineUserDataJobMetadata operation_metadata = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Metadata of the job. + oneof metadata { + // Immutable. Metadata for data updates to a CRM-based user list. + google.ads.googleads.v10.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Metadata for store sales data update. + google.ads.googleads.v10.common.StoreSalesMetadata store_sales_metadata = 8 [(google.api.field_behavior) = IMMUTABLE]; + } +} + +// Metadata of offline user data job. +message OfflineUserDataJobMetadata { + // Output only. Match rate of the Customer Match user list upload. Describes 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.v10.enums.OfflineUserDataJobMatchRateRangeEnum.OfflineUserDataJobMatchRateRange match_rate_range = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/operating_system_version_constant.proto b/google/ads/googleads/v10/resources/operating_system_version_constant.proto new file mode 100644 index 000000000..98165ec95 --- /dev/null +++ b/google/ads/googleads/v10/resources/operating_system_version_constant.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/operating_system_version_operator_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "OperatingSystemVersionConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the operating system version constant resource. + +// A mobile operating system version or a range of versions, depending on +// `operator_type`. List of available mobile platforms at +// https://developers.google.com/google-ads/api/reference/data/codes-formats#mobile-platforms +message OperatingSystemVersionConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/OperatingSystemVersionConstant" + pattern: "operatingSystemVersionConstants/{criterion_id}" + }; + + // Output only. The resource name of the operating system version constant. + // Operating system version constant resource names have the form: + // + // `operatingSystemVersionConstants/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OperatingSystemVersionConstant" + } + ]; + + // Output only. The ID of the operating system version. + optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the operating system. + optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The OS Major Version number. + optional int32 os_major_version = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The OS Minor Version number. + optional int32 os_minor_version = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Determines whether this constant represents a single version or a range of + // versions. + google.ads.googleads.v10.enums.OperatingSystemVersionOperatorTypeEnum.OperatingSystemVersionOperatorType operator_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/paid_organic_search_term_view.proto b/google/ads/googleads/v10/resources/paid_organic_search_term_view.proto new file mode 100644 index 000000000..2dd6d606c --- /dev/null +++ b/google/ads/googleads/v10/resources/paid_organic_search_term_view.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "PaidOrganicSearchTermViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the PaidOrganicSearchTermView resource. + +// A paid organic search term view providing a view of search stats across +// ads and organic listings aggregated by search term at the ad group level. +message PaidOrganicSearchTermView { + option (google.api.resource) = { + type: "googleads.googleapis.com/PaidOrganicSearchTermView" + pattern: "customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~{ad_group_id}~{base64_search_term}" + }; + + // Output only. The resource name of the search term view. + // Search term view resource names have the form: + // + // `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~ + // {ad_group_id}~{URL-base64 search term}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/PaidOrganicSearchTermView" + } + ]; + + // Output only. The search term. + optional string search_term = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/parental_status_view.proto b/google/ads/googleads/v10/resources/parental_status_view.proto new file mode 100644 index 000000000..e06c57328 --- /dev/null +++ b/google/ads/googleads/v10/resources/parental_status_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ParentalStatusViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the parental status view resource. + +// A parental status view. +message ParentalStatusView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ParentalStatusView" + pattern: "customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the parental status view. + // Parental Status view resource names have the form: + // + // `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ParentalStatusView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/payments_account.proto b/google/ads/googleads/v10/resources/payments_account.proto new file mode 100644 index 000000000..c4da0d416 --- /dev/null +++ b/google/ads/googleads/v10/resources/payments_account.proto @@ -0,0 +1,77 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "PaymentsAccountProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the PaymentsAccount resource. + +// A payments account, which can be used to set up billing for an Ads customer. +message PaymentsAccount { + option (google.api.resource) = { + type: "googleads.googleapis.com/PaymentsAccount" + pattern: "customers/{customer_id}/paymentsAccounts/{payments_account_id}" + }; + + // Output only. The resource name of the payments account. + // PaymentsAccount resource names have the form: + // + // `customers/{customer_id}/paymentsAccounts/{payments_account_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/PaymentsAccount" + } + ]; + + // Output only. A 16 digit ID used to identify a payments account. + optional string payments_account_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the payments account. + optional string name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The currency code of the payments account. + // A subset of the currency codes derived from the ISO 4217 standard is + // supported. + optional string currency_code = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A 12 digit ID used to identify the payments profile associated with the + // payments account. + optional string payments_profile_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A secondary payments profile ID present in uncommon situations, e.g. + // when a sequential liability agreement has been arranged. + optional string secondary_payments_profile_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Paying manager of this payment account. + optional string paying_manager_customer = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/product_bidding_category_constant.proto b/google/ads/googleads/v10/resources/product_bidding_category_constant.proto new file mode 100644 index 000000000..3785cdf0b --- /dev/null +++ b/google/ads/googleads/v10/resources/product_bidding_category_constant.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/product_bidding_category_level.proto"; +import "google/ads/googleads/v10/enums/product_bidding_category_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ProductBiddingCategoryConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::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.v10.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of the product bidding category. + google.ads.googleads.v10.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/google/ads/googleads/v10/resources/product_group_view.proto b/google/ads/googleads/v10/resources/product_group_view.proto new file mode 100644 index 000000000..f7e266fd6 --- /dev/null +++ b/google/ads/googleads/v10/resources/product_group_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ProductGroupViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ProductGroup View resource. + +// A product group view. +message ProductGroupView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ProductGroupView" + pattern: "customers/{customer_id}/productGroupViews/{adgroup_id}~{criterion_id}" + }; + + // Output only. The resource name of the product group view. + // Product group view resource names have the form: + // + // `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductGroupView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/recommendation.proto b/google/ads/googleads/v10/resources/recommendation.proto new file mode 100644 index 000000000..076ce11b9 --- /dev/null +++ b/google/ads/googleads/v10/resources/recommendation.proto @@ -0,0 +1,386 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/common/extensions.proto"; +import "google/ads/googleads/v10/enums/keyword_match_type.proto"; +import "google/ads/googleads/v10/enums/recommendation_type.proto"; +import "google/ads/googleads/v10/enums/target_cpa_opt_in_recommendation_goal.proto"; +import "google/ads/googleads/v10/resources/ad.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Recommendation resource. + +// A recommendation. +message Recommendation { + option (google.api.resource) = { + type: "googleads.googleapis.com/Recommendation" + pattern: "customers/{customer_id}/recommendations/{recommendation_id}" + }; + + // The impact of making the change as described in the recommendation. + // Some types of recommendations may not have impact information. + message RecommendationImpact { + // Output only. Base metrics at the time the recommendation was generated. + RecommendationMetrics base_metrics = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimated metrics if the recommendation is applied. + RecommendationMetrics potential_metrics = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Weekly account performance metrics. For some recommendation types, these + // are averaged over the past 90-day period and hence can be fractional. + message RecommendationMetrics { + // Output only. Number of ad impressions. + optional double impressions = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of ad clicks. + optional double clicks = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cost (in micros) for advertising, in the local currency for the account. + optional int64 cost_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of conversions. + optional double conversions = 9 [(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]; + } + + // The budget recommendation for budget constrained campaigns. + message CampaignBudgetRecommendation { + // The impact estimates for a given budget amount. + message CampaignBudgetRecommendationOption { + // Output only. The budget amount for this option. + optional int64 budget_amount_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The impact estimate if budget is changed to amount specified in this + // option. + RecommendationImpact impact = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The current budget amount in micros. + optional int64 current_budget_amount_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended budget amount in micros. + optional int64 recommended_budget_amount_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The budget amounts and associated impact estimates for some values of + // possible budget amounts. + repeated CampaignBudgetRecommendationOption budget_options = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The keyword recommendation. + message KeywordRecommendation { + // Output only. The recommended keyword. + google.ads.googleads.v10.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended CPC (cost-per-click) bid. + optional int64 recommended_cpc_bid_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The text ad recommendation. + message TextAdRecommendation { + // Output only. Recommended ad. + Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Creation date of the recommended ad. + // YYYY-MM-DD format, e.g., 2018-04-17. + optional string creation_date = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Date, if present, is the earliest when the recommendation will be auto + // applied. + // YYYY-MM-DD format, e.g., 2018-04-17. + optional string auto_apply_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Target CPA opt-in recommendation. + message TargetCpaOptInRecommendation { + // The Target CPA opt-in option with impact estimate. + message TargetCpaOptInRecommendationOption { + // Output only. The goal achieved by this option. + google.ads.googleads.v10.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal goal = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Average CPA target. + optional int64 target_cpa_micros = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The minimum campaign budget, in local currency for the account, + // required to achieve the target CPA. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + optional int64 required_campaign_budget_amount_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The impact estimate if this option is selected. + RecommendationImpact impact = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The available goals and corresponding options for Target CPA strategy. + repeated TargetCpaOptInRecommendationOption options = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended average CPA target. See required budget amount and impact + // of using this recommendation in options list. + optional int64 recommended_target_cpa_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Maximize Conversions Opt-In recommendation. + message MaximizeConversionsOptInRecommendation { + // Output only. The recommended new budget amount. + optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Enhanced Cost-Per-Click Opt-In recommendation. + message EnhancedCpcOptInRecommendation { + + } + + // The Search Partners Opt-In recommendation. + message SearchPartnersOptInRecommendation { + + } + + // The Maximize Clicks opt-in recommendation. + message MaximizeClicksOptInRecommendation { + // Output only. The recommended new budget amount. + // Only set if the current budget is too high. + optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Optimize Ad Rotation recommendation. + message OptimizeAdRotationRecommendation { + + } + + // The Callout extension recommendation. + message CalloutExtensionRecommendation { + // Output only. Callout extensions recommended to be added. + repeated google.ads.googleads.v10.common.CalloutFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Sitelink extension recommendation. + message SitelinkExtensionRecommendation { + // Output only. Sitelink extensions recommended to be added. + repeated google.ads.googleads.v10.common.SitelinkFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Call extension recommendation. + message CallExtensionRecommendation { + // Output only. Call extensions recommended to be added. + repeated google.ads.googleads.v10.common.CallFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The keyword match type recommendation. + message KeywordMatchTypeRecommendation { + // Output only. The existing keyword where the match type should be more broad. + google.ads.googleads.v10.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended new match type. + google.ads.googleads.v10.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The move unused budget recommendation. + message MoveUnusedBudgetRecommendation { + // Output only. The excess budget's resource_name. + optional string excess_campaign_budget = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommendation for the constrained budget to increase. + CampaignBudgetRecommendation budget_recommendation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Target ROAS opt-in recommendation. + message TargetRoasOptInRecommendation { + // Output only. The recommended target ROAS (revenue per unit of spend). + // The value is between 0.01 and 1000.0, inclusive. + optional double recommended_target_roas = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The minimum campaign budget, in local currency for the account, + // required to achieve the target ROAS. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + optional int64 required_campaign_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The add responsive search ad asset recommendation. + message ResponsiveSearchAdAssetRecommendation { + // Output only. The current ad to be updated. + Ad current_ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended assets. This is populated only with the new headlines + // and/or descriptions, and is otherwise empty. + Ad recommended_assets = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The add responsive search ad recommendation. + message ResponsiveSearchAdRecommendation { + // Output only. Recommended ad. + Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The use broad match keyword recommendation. + message UseBroadMatchKeywordRecommendation { + // Output only. Sample of keywords to be expanded to Broad Match. + repeated google.ads.googleads.v10.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total number of keywords to be expanded to Broad Match in the campaign. + int64 suggested_keywords_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total number of keywords in the campaign. + int64 campaign_keywords_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the associated campaign uses a shared budget. + bool campaign_uses_shared_budget = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The budget recommended to avoid becoming budget constrained after + // applying the recommendation. + int64 required_campaign_budget_amount_micros = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the recommendation. + // + // `customers/{customer_id}/recommendations/{recommendation_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Recommendation" + } + ]; + + // Output only. The type of recommendation. + google.ads.googleads.v10.enums.RecommendationTypeEnum.RecommendationType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The impact on account performance as a result of applying the + // recommendation. + RecommendationImpact impact = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The budget targeted by this recommendation. This will be set only when + // the recommendation affects a single campaign budget. + // + // This field will be set for the following recommendation types: + // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET, + // MOVE_UNUSED_BUDGET + optional string campaign_budget = 24 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + } + ]; + + // Output only. The campaign targeted by this recommendation. This will be set only when + // the recommendation affects a single campaign. + // + // This field will be set for the following recommendation types: + // CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN, + // USE_BROAD_MATCH_KEYWORD, KEYWORD, KEYWORD_MATCH_TYPE, + // MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION, + // RESPONSIVE_SEARCH_AD, RESPONSIVE_SEARCH_AD_ASSET, SEARCH_PARTNERS_OPT_IN, + // SITELINK_EXTENSION, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN, TEXT_AD + optional string campaign = 25 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ad group targeted by this recommendation. This will be set only when + // the recommendation affects a single ad group. + // + // This field will be set for the following recommendation types: + // KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, + // RESPONSIVE_SEARCH_AD_ASSET, TEXT_AD + optional string ad_group = 26 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. Whether the recommendation is dismissed or not. + optional bool dismissed = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The details of recommendation. + oneof recommendation { + // Output only. The campaign budget recommendation. + CampaignBudgetRecommendation campaign_budget_recommendation = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The forecasting campaign budget recommendation. + CampaignBudgetRecommendation forecasting_campaign_budget_recommendation = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The keyword recommendation. + KeywordRecommendation keyword_recommendation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Add expanded text ad recommendation. + TextAdRecommendation text_ad_recommendation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The TargetCPA opt-in recommendation. + TargetCpaOptInRecommendation target_cpa_opt_in_recommendation = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The MaximizeConversions Opt-In recommendation. + MaximizeConversionsOptInRecommendation maximize_conversions_opt_in_recommendation = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Enhanced Cost-Per-Click Opt-In recommendation. + EnhancedCpcOptInRecommendation enhanced_cpc_opt_in_recommendation = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Search Partners Opt-In recommendation. + SearchPartnersOptInRecommendation search_partners_opt_in_recommendation = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The MaximizeClicks Opt-In recommendation. + MaximizeClicksOptInRecommendation maximize_clicks_opt_in_recommendation = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Optimize Ad Rotation recommendation. + OptimizeAdRotationRecommendation optimize_ad_rotation_recommendation = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Callout extension recommendation. + CalloutExtensionRecommendation callout_extension_recommendation = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Sitelink extension recommendation. + SitelinkExtensionRecommendation sitelink_extension_recommendation = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Call extension recommendation. + CallExtensionRecommendation call_extension_recommendation = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The keyword match type recommendation. + KeywordMatchTypeRecommendation keyword_match_type_recommendation = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The move unused budget recommendation. + MoveUnusedBudgetRecommendation move_unused_budget_recommendation = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Target ROAS opt-in recommendation. + TargetRoasOptInRecommendation target_roas_opt_in_recommendation = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The add responsive search ad recommendation. + ResponsiveSearchAdRecommendation responsive_search_ad_recommendation = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The marginal ROI campaign budget recommendation. + CampaignBudgetRecommendation marginal_roi_campaign_budget_recommendation = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The use broad match keyword recommendation. + UseBroadMatchKeywordRecommendation use_broad_match_keyword_recommendation = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The add responsive search ad asset recommendation. + ResponsiveSearchAdAssetRecommendation responsive_search_ad_asset_recommendation = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v10/resources/remarketing_action.proto b/google/ads/googleads/v10/resources/remarketing_action.proto new file mode 100644 index 000000000..231e6bf48 --- /dev/null +++ b/google/ads/googleads/v10/resources/remarketing_action.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/tag_snippet.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "RemarketingActionProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Remarketing Action resource. + +// A remarketing action. A snippet of JavaScript code that will collect the +// product id and the type of page people visited (product page, shopping cart +// page, purchase page, general site visit) on an advertiser's website. +message RemarketingAction { + option (google.api.resource) = { + type: "googleads.googleapis.com/RemarketingAction" + pattern: "customers/{customer_id}/remarketingActions/{remarketing_action_id}" + }; + + // Immutable. The resource name of the remarketing action. + // Remarketing action resource names have the form: + // + // `customers/{customer_id}/remarketingActions/{remarketing_action_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/RemarketingAction" + } + ]; + + // Output only. Id of the remarketing action. + optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the remarketing action. + // + // This field is required and should not be empty when creating new + // remarketing actions. + optional string name = 6; + + // Output only. The snippets used for tracking remarketing actions. + repeated google.ads.googleads.v10.common.TagSnippet tag_snippets = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/search_term_view.proto b/google/ads/googleads/v10/resources/search_term_view.proto new file mode 100644 index 000000000..ffc46cd91 --- /dev/null +++ b/google/ads/googleads/v10/resources/search_term_view.proto @@ -0,0 +1,67 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/search_term_targeting_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SearchTermViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the SearchTermView resource. + +// A search term view with metrics aggregated by search term at the ad group +// level. +message SearchTermView { + option (google.api.resource) = { + type: "googleads.googleapis.com/SearchTermView" + pattern: "customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{query}" + }; + + // Output only. The resource name of the search term view. + // Search term view resource names have the form: + // + // `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL-base64_search_term}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SearchTermView" + } + ]; + + // Output only. The search term. + optional string search_term = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ad group the search term served in. + optional string ad_group = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. Indicates whether the search term is currently one of your + // targeted or excluded keywords. + google.ads.googleads.v10.enums.SearchTermTargetingStatusEnum.SearchTermTargetingStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/shared_criterion.proto b/google/ads/googleads/v10/resources/shared_criterion.proto new file mode 100644 index 000000000..4d70c8e91 --- /dev/null +++ b/google/ads/googleads/v10/resources/shared_criterion.proto @@ -0,0 +1,91 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/enums/criterion_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SharedCriterionProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the SharedCriterion resource. + +// A criterion belonging to a shared set. +message SharedCriterion { + option (google.api.resource) = { + type: "googleads.googleapis.com/SharedCriterion" + pattern: "customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}" + }; + + // Immutable. The resource name of the shared criterion. + // Shared set resource names have the form: + // + // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedCriterion" + } + ]; + + // Immutable. The shared set to which the shared criterion belongs. + optional string shared_set = 10 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + } + ]; + + // Output only. The ID of the criterion. + // + // This field is ignored for mutates. + optional int64 criterion_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the criterion. + google.ads.googleads.v10.enums.CriterionTypeEnum.CriterionType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The criterion. + // + // Exactly one must be set. + oneof criterion { + // Immutable. Keyword. + google.ads.googleads.v10.common.KeywordInfo keyword = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Video. + google.ads.googleads.v10.common.YouTubeVideoInfo youtube_video = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Channel. + google.ads.googleads.v10.common.YouTubeChannelInfo youtube_channel = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Placement. + google.ads.googleads.v10.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile App Category. + google.ads.googleads.v10.common.MobileAppCategoryInfo mobile_app_category = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile application. + google.ads.googleads.v10.common.MobileApplicationInfo mobile_application = 9 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v10/resources/shared_set.proto b/google/ads/googleads/v10/resources/shared_set.proto new file mode 100644 index 000000000..70c75ec8c --- /dev/null +++ b/google/ads/googleads/v10/resources/shared_set.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/enums/shared_set_status.proto"; +import "google/ads/googleads/v10/enums/shared_set_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the SharedSet resource. + +// SharedSets are used for sharing criterion exclusions across multiple +// campaigns. +message SharedSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/SharedSet" + pattern: "customers/{customer_id}/sharedSets/{shared_set_id}" + }; + + // Immutable. The resource name of the shared set. + // Shared set resource names have the form: + // + // `customers/{customer_id}/sharedSets/{shared_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + } + ]; + + // Output only. The ID of this shared set. Read only. + optional int64 id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The type of this shared set: each shared set holds only a single kind + // of resource. Required. Immutable. + google.ads.googleads.v10.enums.SharedSetTypeEnum.SharedSetType type = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // The name of this shared set. Required. + // Shared Sets must have names that are unique among active shared sets of + // the same type. + // The length of this string should be between 1 and 255 UTF-8 bytes, + // inclusive. + optional string name = 9; + + // Output only. The status of this shared set. Read only. + google.ads.googleads.v10.enums.SharedSetStatusEnum.SharedSetStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of shared criteria within this shared set. Read only. + optional int64 member_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of campaigns associated with this shared set. Read only. + optional int64 reference_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/shopping_performance_view.proto b/google/ads/googleads/v10/resources/shopping_performance_view.proto new file mode 100644 index 000000000..e9a740524 --- /dev/null +++ b/google/ads/googleads/v10/resources/shopping_performance_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ShoppingPerformanceViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the ShoppingPerformanceView resource. + +// Shopping performance view. +// Provides Shopping campaign statistics aggregated at several product dimension +// levels. Product dimension values from Merchant Center such as brand, +// category, custom attributes, product condition and product type will reflect +// the state of each dimension as of the date and time when the corresponding +// event was recorded. +message ShoppingPerformanceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ShoppingPerformanceView" + pattern: "customers/{customer_id}/shoppingPerformanceView" + }; + + // Output only. The resource name of the Shopping performance view. + // Shopping performance view resource names have the form: + // `customers/{customer_id}/shoppingPerformanceView` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ShoppingPerformanceView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/smart_campaign_search_term_view.proto b/google/ads/googleads/v10/resources/smart_campaign_search_term_view.proto new file mode 100644 index 000000000..84b67a3b5 --- /dev/null +++ b/google/ads/googleads/v10/resources/smart_campaign_search_term_view.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SmartCampaignSearchTermViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the SmartCampaignSearchTermView resource. + +// A Smart campaign search term view. +message SmartCampaignSearchTermView { + option (google.api.resource) = { + type: "googleads.googleapis.com/SmartCampaignSearchTermView" + pattern: "customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{query}" + }; + + // Output only. The resource name of the Smart campaign search term view. + // Smart campaign search term view resource names have the form: + // + // `customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{URL-base64_search_term}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SmartCampaignSearchTermView" + } + ]; + + // Output only. The search term. + string search_term = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Smart campaign the search term served in. + string campaign = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/smart_campaign_setting.proto b/google/ads/googleads/v10/resources/smart_campaign_setting.proto new file mode 100644 index 000000000..677b83295 --- /dev/null +++ b/google/ads/googleads/v10/resources/smart_campaign_setting.proto @@ -0,0 +1,90 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SmartCampaignSettingProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Smart campaign setting resource. + +// Settings for configuring Smart campaigns. +message SmartCampaignSetting { + option (google.api.resource) = { + type: "googleads.googleapis.com/SmartCampaignSetting" + pattern: "customers/{customer_id}/smartCampaignSettings/{campaign_id}" + }; + + // Phone number and country code in smart campaign settings. + message PhoneNumber { + // Phone number of the smart campaign. + optional string phone_number = 1; + + // Upper-case, two-letter country code as defined by ISO-3166. + optional string country_code = 2; + } + + // Immutable. The resource name of the Smart campaign setting. + // Smart campaign setting resource names have the form: + // + // `customers/{customer_id}/smartCampaignSettings/{campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SmartCampaignSetting" + } + ]; + + // Output only. The campaign to which these settings apply. + string campaign = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Phone number and country code. + PhoneNumber phone_number = 3; + + // Landing page url given by user for this Campaign. + string final_url = 4; + + // The ISO-639-1 language code to advertise in. + string advertising_language_code = 7; + + // The business setting of this campaign. + oneof business_setting { + // The name of the business. + string business_name = 5; + + // The ID of the Business Profile location. + // The location ID can be fetched by Business Profile API with its form: + // accounts/{accountId}/locations/{locationId}. The last {locationId} + // component from the Business Profile API represents the + // business_location_id. See the [Business Profile API] + // (https://developers.google.com/my-business/reference/rest/v4/accounts.locations) + int64 business_location_id = 6; + } +} diff --git a/google/ads/googleads/v10/resources/third_party_app_analytics_link.proto b/google/ads/googleads/v10/resources/third_party_app_analytics_link.proto new file mode 100644 index 000000000..fd92680a8 --- /dev/null +++ b/google/ads/googleads/v10/resources/third_party_app_analytics_link.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ThirdPartyAppAnalyticsLinkProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// A data sharing connection, allowing the import of third party app analytics +// into a Google Ads Customer. +message ThirdPartyAppAnalyticsLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" + pattern: "customers/{customer_id}/thirdPartyAppAnalyticsLinks/{customer_link_id}" + }; + + // Immutable. The resource name of the third party app analytics link. + // Third party app analytics link resource names have the form: + // + // `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{account_link_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" + } + ]; + + // Output only. The shareable link ID that should be provided to the third party when + // setting up app analytics. This is able to be regenerated using regenerate + // method in the ThirdPartyAppAnalyticsLinkService. + optional string shareable_link_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/topic_constant.proto b/google/ads/googleads/v10/resources/topic_constant.proto new file mode 100644 index 000000000..052e097ce --- /dev/null +++ b/google/ads/googleads/v10/resources/topic_constant.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "TopicConstantProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the Topic Constant resource. + +// Use topics to target or exclude placements in the Google Display Network +// based on the category into which the placement falls (for example, +// "Pets & Animals/Pets/Dogs"). +message TopicConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/TopicConstant" + pattern: "topicConstants/{topic_id}" + }; + + // Output only. The resource name of the topic constant. + // topic constant resource names have the form: + // + // `topicConstants/{topic_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/TopicConstant" + } + ]; + + // Output only. The ID of the topic. + optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Resource name of parent of the topic constant. + optional string topic_constant_parent = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/TopicConstant" + } + ]; + + // Output only. The category to target or exclude. Each subsequent element in the array + // describes a more specific sub-category. For example, + // {"Pets & Animals", "Pets", "Dogs"} represents the + // "Pets & Animals/Pets/Dogs" category. List of available topic categories at + // https://developers.google.com/adwords/api/docs/appendix/verticals + repeated string path = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/topic_view.proto b/google/ads/googleads/v10/resources/topic_view.proto new file mode 100644 index 000000000..aead6be62 --- /dev/null +++ b/google/ads/googleads/v10/resources/topic_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "TopicViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the topic view resource. + +// A topic view. +message TopicView { + option (google.api.resource) = { + type: "googleads.googleapis.com/TopicView" + pattern: "customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the topic view. + // Topic view resource names have the form: + // + // `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/TopicView" + } + ]; +} diff --git a/google/ads/googleads/v10/resources/user_interest.proto b/google/ads/googleads/v10/resources/user_interest.proto new file mode 100644 index 000000000..af352355c --- /dev/null +++ b/google/ads/googleads/v10/resources/user_interest.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/criterion_category_availability.proto"; +import "google/ads/googleads/v10/enums/user_interest_taxonomy_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "UserInterestProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the User Interest resource. + +// A user interest: a particular interest-based vertical to be targeted. +message UserInterest { + option (google.api.resource) = { + type: "googleads.googleapis.com/UserInterest" + pattern: "customers/{customer_id}/userInterests/{user_interest_id}" + }; + + // Output only. The resource name of the user interest. + // User interest resource names have the form: + // + // `customers/{customer_id}/userInterests/{user_interest_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserInterest" + } + ]; + + // Output only. Taxonomy type of the user interest. + google.ads.googleads.v10.enums.UserInterestTaxonomyTypeEnum.UserInterestTaxonomyType taxonomy_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the user interest. + optional int64 user_interest_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the user interest. + optional string name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The parent of the user interest. + optional string user_interest_parent = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserInterest" + } + ]; + + // Output only. True if the user interest is launched to all channels and locales. + optional bool launched_to_all = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Availability information of the user interest. + repeated google.ads.googleads.v10.common.CriterionCategoryAvailability availabilities = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/user_list.proto b/google/ads/googleads/v10/resources/user_list.proto new file mode 100644 index 000000000..4fb4ea0b9 --- /dev/null +++ b/google/ads/googleads/v10/resources/user_list.proto @@ -0,0 +1,173 @@ +// 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.ads.googleads.v10.resources; + +import "google/ads/googleads/v10/common/user_lists.proto"; +import "google/ads/googleads/v10/enums/access_reason.proto"; +import "google/ads/googleads/v10/enums/user_list_access_status.proto"; +import "google/ads/googleads/v10/enums/user_list_closing_reason.proto"; +import "google/ads/googleads/v10/enums/user_list_membership_status.proto"; +import "google/ads/googleads/v10/enums/user_list_size_range.proto"; +import "google/ads/googleads/v10/enums/user_list_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "UserListProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the User List resource. + +// A user list. This is a list of users a customer may target. +message UserList { + option (google.api.resource) = { + type: "googleads.googleapis.com/UserList" + pattern: "customers/{customer_id}/userLists/{user_list_id}" + }; + + // Immutable. The resource name of the user list. + // User list resource names have the form: + // + // `customers/{customer_id}/userLists/{user_list_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + } + ]; + + // Output only. Id of the user list. + optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A flag that indicates if a user may edit a list. Depends on the list + // ownership and list type. For example, external remarketing user lists are + // not editable. + // + // This field is read-only. + optional bool read_only = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of this user list. Depending on its access_reason, the user list name + // may not be unique (e.g. if access_reason=SHARED) + optional string name = 27; + + // Description of this user list. + optional string description = 28; + + // 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.v10.enums.UserListMembershipStatusEnum.UserListMembershipStatus membership_status = 6; + + // An ID from external system. It is used by user list sellers to correlate + // IDs on their systems. + optional string integration_code = 29; + + // Number of days a user's cookie stays on your list since its most recent + // addition to the list. This field must be between 0 and 540 inclusive. + // However, for CRM based userlists, this field can be set to 10000 which + // means no expiration. + // + // It'll be ignored for logical_user_list. + optional int64 membership_life_span = 30; + + // Output only. Estimated number of users in this user list, on the Google Display Network. + // This value is null if the number of users has not yet been determined. + // + // This field is read-only. + optional int64 size_for_display = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size range in terms of number of users of the UserList, on the Google + // Display Network. + // + // This field is read-only. + google.ads.googleads.v10.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 domain. + // These are the users available for targeting in Search campaigns. + // This value is null if the number of users has not yet been determined. + // + // This field is read-only. + optional int64 size_for_search = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size range in terms of number of users of the UserList, for Search ads. + // + // This field is read-only. + google.ads.googleads.v10.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.v10.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.v10.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.v10.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.v10.enums.UserListAccessStatusEnum.UserListAccessStatus account_user_list_status = 16; + + // Indicates if this user list is eligible for Google Search Network. + optional bool eligible_for_search = 33; + + // Output only. Indicates this user list is eligible for Google Display Network. + // + // This field is read-only. + optional bool eligible_for_display = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates match rate for Customer Match lists. The range of this field is + // [0-100]. This will be null for other list types or when it's not possible + // to calculate the match rate. + // + // This field is read-only. + optional int32 match_rate_percentage = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The user list. + // + // Exactly one must be set. + oneof user_list { + // User list of CRM users provided by the advertiser. + google.ads.googleads.v10.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.v10.common.SimilarUserListInfo similar_user_list = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User list generated by a rule. + google.ads.googleads.v10.common.RuleBasedUserListInfo rule_based_user_list = 21; + + // User list that is a custom combination of user lists and user interests. + google.ads.googleads.v10.common.LogicalUserListInfo logical_user_list = 22; + + // User list targeting as a collection of conversion or remarketing actions. + google.ads.googleads.v10.common.BasicUserListInfo basic_user_list = 23; + } +} diff --git a/google/ads/googleads/v10/resources/user_location_view.proto b/google/ads/googleads/v10/resources/user_location_view.proto new file mode 100644 index 000000000..9ca210fb9 --- /dev/null +++ b/google/ads/googleads/v10/resources/user_location_view.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "UserLocationViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the user location view resource. + +// A user location view. +// +// User Location View includes all metrics aggregated at the country level, +// one row per country. It reports metrics at the actual physical location of +// the user by targeted or not targeted location. If other segment fields are +// used, you may get more than one row per country. +message UserLocationView { + option (google.api.resource) = { + type: "googleads.googleapis.com/UserLocationView" + pattern: "customers/{customer_id}/userLocationViews/{country_criterion_id}~{is_targeting_location}" + }; + + // Output only. The resource name of the user location view. + // UserLocation view resource names have the form: + // + // `customers/{customer_id}/userLocationViews/{country_criterion_id}~{targeting_location}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserLocationView" + } + ]; + + // Output only. Criterion Id for the country. + optional int64 country_criterion_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether location was targeted or not. + optional bool targeting_location = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/video.proto b/google/ads/googleads/v10/resources/video.proto new file mode 100644 index 000000000..64a7d0bb8 --- /dev/null +++ b/google/ads/googleads/v10/resources/video.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "VideoProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the video resource. + +// A video. +message Video { + option (google.api.resource) = { + type: "googleads.googleapis.com/Video" + pattern: "customers/{customer_id}/videos/{video_id}" + }; + + // Output only. The resource name of the video. + // Video resource names have the form: + // + // `customers/{customer_id}/videos/{video_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Video" + } + ]; + + // Output only. The ID of the video. + optional string id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The owner channel id of the video. + optional string channel_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The duration of the video in milliseconds. + optional int64 duration_millis = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The title of the video. + optional string title = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v10/resources/webpage_view.proto b/google/ads/googleads/v10/resources/webpage_view.proto new file mode 100644 index 000000000..9c7b73664 --- /dev/null +++ b/google/ads/googleads/v10/resources/webpage_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v10.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "WebpageViewProto"; +option java_package = "com.google.ads.googleads.v10.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V10::Resources"; + +// Proto file describing the webpage view resource. + +// A webpage view. +message WebpageView { + option (google.api.resource) = { + type: "googleads.googleapis.com/WebpageView" + pattern: "customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the webpage view. + // Webpage view resource names have the form: + // + // `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/WebpageView" + } + ]; +} diff --git a/google/ads/googleads/v10/services/BUILD.bazel b/google/ads/googleads/v10/services/BUILD.bazel new file mode 100644 index 000000000..e66fe59ab --- /dev/null +++ b/google/ads/googleads/v10/services/BUILD.bazel @@ -0,0 +1,138 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +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") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports +# subpackages. +proto_library( + name = "services_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/ads/googleads/v10/common:common_proto", + "//google/ads/googleads/v10/enums:enums_proto", + "//google/ads/googleads/v10/errors:errors_proto", + "//google/ads/googleads/v10/resources:resources_proto", + "//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//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "services_proto_with_info", + deps = [ + ":services_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "services_java_proto", + deps = [":services_proto"], +) + +java_grpc_library( + name = "services_java_grpc", + srcs = [":services_proto"], + deps = [":services_java_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "services_csharp_proto", + deps = [":services_proto"], +) + +csharp_grpc_library( + name = "services_csharp_grpc", + srcs = [":services_proto"], + deps = [":services_csharp_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "services_ruby_proto", + deps = [":services_proto"], +) + +ruby_grpc_library( + name = "services_ruby_grpc", + srcs = [":services_proto"], + deps = [":services_ruby_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_grpc_library", + "py_proto_library", +) + +py_proto_library( + name = "services_py_proto", + deps = [":services_proto"], +) + +py_grpc_library( + name = "services_py_grpc", + srcs = [":services_proto"], + deps = [":services_py_proto"], +) diff --git a/google/ads/googleads/v10/services/account_budget_proposal_service.proto b/google/ads/googleads/v10/services/account_budget_proposal_service.proto new file mode 100644 index 000000000..fd47d7676 --- /dev/null +++ b/google/ads/googleads/v10/services/account_budget_proposal_service.proto @@ -0,0 +1,132 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AccountBudgetProposal service. + +// A service for managing account-level budgets via proposals. +// +// A proposal is a request to create a new budget or make changes to an +// existing one. +// +// Mutates: +// The CREATE operation creates a new proposal. +// UPDATE operations aren't supported. +// The REMOVE operation cancels a pending proposal. +service AccountBudgetProposalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes account budget proposals. Operation statuses + // are returned. + // + // List of thrown errors: + // [AccountBudgetProposalError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DateError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + // [StringLengthError]() + rpc MutateAccountBudgetProposal(MutateAccountBudgetProposalRequest) returns (MutateAccountBudgetProposalResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/accountBudgetProposals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for +// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v10.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. +message MutateAccountBudgetProposalRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform on an individual account-level budget proposal. + AccountBudgetProposalOperation 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 operation to propose the creation of a new account-level budget or +// edit/end/remove an existing one. +message AccountBudgetProposalOperation { + // FieldMask that determines which budget fields are modified. While budgets + // may be modified, proposals that propose such modifications are final. + // Therefore, update operations are not supported for proposals. + // + // Proposals that modify budgets have the 'update' proposal type. Specifying + // a mask for any other proposal type is considered an error. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Create operation: A new proposal to create a new budget, edit an + // 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.v10.resources.AccountBudgetProposal create = 2; + + // Remove operation: A resource name for the removed proposal is expected, + // in this format: + // + // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` + // A request may be cancelled iff it is pending. + string remove = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + }]; + } +} + +// Response message for account-level budget mutate operations. +message MutateAccountBudgetProposalResponse { + // The result of the mutate. + MutateAccountBudgetProposalResult result = 2; +} + +// The result for the account budget proposal mutate. +message MutateAccountBudgetProposalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + }]; +} diff --git a/google/ads/googleads/v10/services/account_link_service.proto b/google/ads/googleads/v10/services/account_link_service.proto new file mode 100644 index 000000000..4ec6c56db --- /dev/null +++ b/google/ads/googleads/v10/services/account_link_service.proto @@ -0,0 +1,164 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/account_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"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AccountLinkServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// This service allows management of links between Google Ads accounts and other +// accounts. +service AccountLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates an account link. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + // [ThirdPartyAppAnalyticsLinkError]() + rpc CreateAccountLink(CreateAccountLinkRequest) returns (CreateAccountLinkResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/accountLinks:create" + body: "*" + }; + option (google.api.method_signature) = "customer_id,account_link"; + } + + // Creates or removes an account link. + // From V5, create is not supported through + // AccountLinkService.MutateAccountLink. Please use + // AccountLinkService.CreateAccountLink instead. + // + // List of thrown errors: + // [AccountLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAccountLink(MutateAccountLinkRequest) returns (MutateAccountLinkResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/accountLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for +// [AccountLinkService.CreateAccountLink][google.ads.googleads.v10.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.v10.resources.AccountLink account_link = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [AccountLinkService.CreateAccountLink][google.ads.googleads.v10.services.AccountLinkService.CreateAccountLink]. +message CreateAccountLinkResponse { + // Returned for successful operations. Resource name of the account link. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountLink" + }]; +} + +// Request message for [AccountLinkService.MutateAccountLink][google.ads.googleads.v10.services.AccountLinkService.MutateAccountLink]. +message MutateAccountLinkRequest { + // 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. + AccountLinkOperation operation = 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; +} + +// A single update on an account link. +message AccountLinkOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The operation to perform. + oneof operation { + // Update operation: The account link is expected to have + // a valid resource name. + google.ads.googleads.v10.resources.AccountLink update = 2; + + // Remove operation: A resource name for the account link to remove is + // expected, in this format: + // + // `customers/{customer_id}/accountLinks/{account_link_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountLink" + }]; + } +} + +// Response message for account link mutate. +message MutateAccountLinkResponse { + // Result for the mutate. + MutateAccountLinkResult result = 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the account link mutate. +message MutateAccountLinkResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountLink" + }]; +} diff --git a/google/ads/googleads/v10/services/ad_group_ad_label_service.proto b/google/ads/googleads/v10/services/ad_group_ad_label_service.proto new file mode 100644 index 000000000..a2f62385e --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_ad_label_service.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdLabelServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad Group Ad Label service. + +// Service to manage labels on ad group ads. +service AdGroupAdLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes ad group ad labels. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [HeaderError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdGroupAdLabels(MutateAdGroupAdLabelsRequest) returns (MutateAdGroupAdLabelsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupAdLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on ad group ad labels. + repeated AdGroupAdLabelOperation 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; +} + +// A single operation (create, remove) on an ad group ad label. +message AdGroupAdLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group ad + // label. + google.ads.googleads.v10.resources.AdGroupAdLabel create = 1; + + // Remove operation: A resource name for the ad group ad label + // being removed, in this format: + // + // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}_{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + }]; + } +} + +// Response message for an ad group ad labels mutate. +message MutateAdGroupAdLabelsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupAdLabelResult results = 2; +} + +// The result for an ad group ad label mutate. +message MutateAdGroupAdLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + }]; +} diff --git a/google/ads/googleads/v10/services/ad_group_ad_service.proto b/google/ads/googleads/v10/services/ad_group_ad_service.proto new file mode 100644 index 000000000..4d0cb7b99 --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_ad_service.proto @@ -0,0 +1,172 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad_group_ad.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad Group Ad service. + +// Service to manage ads in an ad group. +service AdGroupAdService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ads. Operation statuses are returned. + // + // List of thrown errors: + // [AdCustomizerError]() + // [AdError]() + // [AdGroupAdError]() + // [AdSharingError]() + // [AdxError]() + // [AssetError]() + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [ContextError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FeedAttributeReferenceError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [ImageError]() + // [InternalError]() + // [ListOperationError]() + // [MediaBundleError]() + // [MediaFileError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [PolicyFindingError]() + // [PolicyValidationParameterError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAdGroupAds(MutateAdGroupAdsRequest) returns (MutateAdGroupAdsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupAds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual ads. + repeated AdGroupAdOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an ad group ad. +message AdGroupAdOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // Configuration for how policies are validated. + google.ads.googleads.v10.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.v10.resources.AdGroupAd create = 1; + + // Update operation: The ad is expected to have a valid resource name. + google.ads.googleads.v10.resources.AdGroupAd update = 2; + + // Remove operation: A resource name for the removed ad is expected, + // in this format: + // + // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + }]; + } +} + +// Response message for an ad group ad mutate. +message MutateAdGroupAdsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupAdResult results = 2; +} + +// The result for the ad mutate. +message MutateAdGroupAdResult { + // The resource name returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + }]; + + // 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.v10.resources.AdGroupAd ad_group_ad = 2; +} diff --git a/google/ads/googleads/v10/services/ad_group_asset_service.proto b/google/ads/googleads/v10/services/ad_group_asset_service.proto new file mode 100644 index 000000000..eb484ab1d --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_asset_service.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad_group_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAssetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AdGroupAsset service. + +// Service to manage ad group assets. +service AdGroupAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad group assets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NotAllowlistedError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdGroupAssets(MutateAdGroupAssetsRequest) returns (MutateAdGroupAssetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupAssetService.MutateAdGroupAssets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual ad group assets. + repeated AdGroupAssetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an ad group asset. +message AdGroupAssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // asset. + google.ads.googleads.v10.resources.AdGroupAsset create = 1; + + // Update operation: The ad group asset is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.AdGroupAsset update = 3; + + // Remove operation: A resource name for the removed ad group asset is + // expected, in this format: + // + // `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAsset" + }]; + } +} + +// Response message for an ad group asset mutate. +message MutateAdGroupAssetsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateAdGroupAssetResult results = 2; +} + +// The result for the ad group asset mutate. +message MutateAdGroupAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAsset" + }]; + + // 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.v10.resources.AdGroupAsset ad_group_asset = 2; +} diff --git a/google/ads/googleads/v10/services/ad_group_bid_modifier_service.proto b/google/ads/googleads/v10/services/ad_group_bid_modifier_service.proto new file mode 100644 index 000000000..0df5cea6c --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_bid_modifier_service.proto @@ -0,0 +1,151 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad_group_bid_modifier.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupBidModifierServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad Group Bid Modifier service. + +// Service to manage ad group bid modifiers. +service AdGroupBidModifierService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad group bid modifiers. + // Operation statuses are returned. + // + // List of thrown errors: + // [AdGroupBidModifierError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [CriterionError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateAdGroupBidModifiers(MutateAdGroupBidModifiersRequest) returns (MutateAdGroupBidModifiersResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupBidModifiers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v10.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. +message MutateAdGroupBidModifiersRequest { + // Required. ID of the customer whose ad group bid modifiers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual ad group bid modifiers. + repeated AdGroupBidModifierOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on an ad group bid modifier. +message AdGroupBidModifierOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group bid + // modifier. + google.ads.googleads.v10.resources.AdGroupBidModifier create = 1; + + // Update operation: The ad group bid modifier is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.AdGroupBidModifier update = 2; + + // Remove operation: A resource name for the removed ad group bid modifier + // is expected, in this format: + // + // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + }]; + } +} + +// Response message for ad group bid modifiers mutate. +message MutateAdGroupBidModifiersResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupBidModifierResult results = 2; +} + +// The result for the criterion mutate. +message MutateAdGroupBidModifierResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + }]; + + // 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.v10.resources.AdGroupBidModifier ad_group_bid_modifier = 2; +} diff --git a/google/ads/googleads/v10/services/ad_group_criterion_customizer_service.proto b/google/ads/googleads/v10/services/ad_group_criterion_customizer_service.proto new file mode 100644 index 000000000..c0d5f62ee --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_criterion_customizer_service.proto @@ -0,0 +1,121 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionCustomizerServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AdGroupCriterionCustomizer service. + +// Service to manage ad group criterion customizer +service AdGroupCriterionCustomizerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes ad group criterion customizers. Operation + // statuses are returned. + rpc MutateAdGroupCriterionCustomizers(MutateAdGroupCriterionCustomizersRequest) returns (MutateAdGroupCriterionCustomizersResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers][google.ads.googleads.v10.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers]. +message MutateAdGroupCriterionCustomizersRequest { + // Required. The ID of the customer whose ad group criterion customizers are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual ad group criterion + // customizers. + repeated AdGroupCriterionCustomizerOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message AdGroupCriterionCustomizerOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // criterion customizer. + google.ads.googleads.v10.resources.AdGroupCriterionCustomizer create = 1; + + // Remove operation: A resource name for the removed ad group criterion + // customizer is expected, in this format: + // + // `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionCustomizer" + }]; + } +} + +// Response message for an ad group criterion customizer mutate. +message MutateAdGroupCriterionCustomizersResponse { + // All results for the mutate. + repeated MutateAdGroupCriterionCustomizerResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the ad group criterion customizer mutate. +message MutateAdGroupCriterionCustomizerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionCustomizer" + }]; + + // 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.v10.resources.AdGroupCriterionCustomizer ad_group_criterion_customizer = 2; +} diff --git a/google/ads/googleads/v10/services/ad_group_criterion_label_service.proto b/google/ads/googleads/v10/services/ad_group_criterion_label_service.proto new file mode 100644 index 000000000..92096d618 --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_criterion_label_service.proto @@ -0,0 +1,119 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionLabelServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad Group Criterion Label service. + +// Service to manage labels on ad group criteria. +service AdGroupCriterionLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes ad group criterion labels. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdGroupCriterionLabels(MutateAdGroupCriterionLabelsRequest) returns (MutateAdGroupCriterionLabelsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v10.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels]. +message MutateAdGroupCriterionLabelsRequest { + // Required. ID of the customer whose ad group criterion labels are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on ad group criterion labels. + repeated AdGroupCriterionLabelOperation 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; +} + +// A single operation (create, remove) on an ad group criterion label. +message AdGroupCriterionLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // label. + google.ads.googleads.v10.resources.AdGroupCriterionLabel create = 1; + + // Remove operation: A resource name for the ad group criterion label + // being removed, in this format: + // + // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + }]; + } +} + +// Response message for an ad group criterion labels mutate. +message MutateAdGroupCriterionLabelsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupCriterionLabelResult results = 2; +} + +// The result for an ad group criterion label mutate. +message MutateAdGroupCriterionLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + }]; +} diff --git a/google/ads/googleads/v10/services/ad_group_criterion_service.proto b/google/ads/googleads/v10/services/ad_group_criterion_service.proto new file mode 100644 index 000000000..1666fe0cb --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_criterion_service.proto @@ -0,0 +1,171 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad_group_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad Group Criterion service. + +// Service to manage ad group criteria. +service AdGroupCriterionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes criteria. Operation statuses are returned. + // + // List of thrown errors: + // [AdGroupCriterionError]() + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [BiddingStrategyError]() + // [CollectionSizeError]() + // [ContextError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MultiplierError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAdGroupCriteria(MutateAdGroupCriteriaRequest) returns (MutateAdGroupCriteriaResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupCriteria:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v10.services.AdGroupCriterionService.MutateAdGroupCriteria]. +message MutateAdGroupCriteriaRequest { + // Required. ID of the customer whose criteria are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual criteria. + repeated AdGroupCriterionOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on an ad group criterion. +message AdGroupCriterionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The list of policy violation keys that should not cause a + // PolicyViolationError to be reported. Not all policy violations are + // exemptable, please 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.v10.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.v10.resources.AdGroupCriterion create = 1; + + // Update operation: The criterion is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.AdGroupCriterion update = 2; + + // Remove operation: A resource name for the removed criterion is expected, + // in this format: + // + // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + }]; + } +} + +// Response message for an ad group criterion mutate. +message MutateAdGroupCriteriaResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupCriterionResult results = 2; +} + +// The result for the criterion mutate. +message MutateAdGroupCriterionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + }]; + + // 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.v10.resources.AdGroupCriterion ad_group_criterion = 2; +} diff --git a/google/ads/googleads/v10/services/ad_group_customizer_service.proto b/google/ads/googleads/v10/services/ad_group_customizer_service.proto new file mode 100644 index 000000000..dd9740e42 --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_customizer_service.proto @@ -0,0 +1,118 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCustomizerServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AdGroupCustomizer service. + +// Service to manage ad group customizer +service AdGroupCustomizerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes ad group customizers. Operation statuses are + // returned. + rpc MutateAdGroupCustomizers(MutateAdGroupCustomizersRequest) returns (MutateAdGroupCustomizersResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupCustomizers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AdGroupCustomizerService.MutateAdGroupCustomizers][google.ads.googleads.v10.services.AdGroupCustomizerService.MutateAdGroupCustomizers]. +message MutateAdGroupCustomizersRequest { + // Required. The ID of the customer whose ad group customizers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual ad group customizers. + repeated AdGroupCustomizerOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message AdGroupCustomizerOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // customizer + google.ads.googleads.v10.resources.AdGroupCustomizer create = 1; + + // Remove operation: A resource name for the removed ad group customizer is + // expected, in this format: + // `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCustomizer" + }]; + } +} + +// Response message for an ad group customizer mutate. +message MutateAdGroupCustomizersResponse { + // All results for the mutate. + repeated MutateAdGroupCustomizerResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the ad group customizer mutate. +message MutateAdGroupCustomizerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCustomizer" + }]; + + // 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.v10.resources.AdGroupCustomizer ad_group_customizer = 2; +} diff --git a/google/ads/googleads/v10/services/ad_group_extension_setting_service.proto b/google/ads/googleads/v10/services/ad_group_extension_setting_service.proto new file mode 100644 index 000000000..81d0dbc54 --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_extension_setting_service.proto @@ -0,0 +1,159 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad_group_extension_setting.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupExtensionSettingServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AdGroupExtensionSetting service. + +// Service to manage ad group extension settings. +service AdGroupExtensionSettingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad group extension settings. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [ExtensionSettingError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAdGroupExtensionSettings(MutateAdGroupExtensionSettingsRequest) returns (MutateAdGroupExtensionSettingsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v10.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings]. +message MutateAdGroupExtensionSettingsRequest { + // Required. The ID of the customer whose ad group extension settings are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual ad group extension + // settings. + repeated AdGroupExtensionSettingOperation 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; +} + +// A single operation (create, update, remove) on an ad group extension setting. +message AdGroupExtensionSettingOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.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.v10.resources.AdGroupExtensionSetting create = 1; + + // Update operation: The ad group extension setting is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.AdGroupExtensionSetting update = 2; + + // Remove operation: A resource name for the removed ad group extension + // setting is expected, in this format: + // + // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupExtensionSetting" + }]; + } +} + +// Response message for an ad group extension setting mutate. +message MutateAdGroupExtensionSettingsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupExtensionSettingResult results = 2; +} + +// The result for the ad group extension setting mutate. +message MutateAdGroupExtensionSettingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupExtensionSetting" + }]; + + // 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.v10.resources.AdGroupExtensionSetting ad_group_extension_setting = 2; +} diff --git a/google/ads/googleads/v10/services/ad_group_feed_service.proto b/google/ads/googleads/v10/services/ad_group_feed_service.proto new file mode 100644 index 000000000..ede0b347b --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_feed_service.proto @@ -0,0 +1,149 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad_group_feed.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupFeedServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AdGroupFeed service. + +// Service to manage ad group feeds. +service AdGroupFeedService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad group feeds. Operation statuses are + // returned. + // + // List of thrown errors: + // [AdGroupFeedError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateAdGroupFeeds(MutateAdGroupFeedsRequest) returns (MutateAdGroupFeedsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupFeeds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual ad group feeds. + repeated AdGroupFeedOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an ad group feed. +message AdGroupFeedOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group feed. + google.ads.googleads.v10.resources.AdGroupFeed create = 1; + + // Update operation: The ad group feed is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.AdGroupFeed update = 2; + + // Remove operation: A resource name for the removed ad group feed is + // expected, in this format: + // + // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupFeed" + }]; + } +} + +// Response message for an ad group feed mutate. +message MutateAdGroupFeedsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupFeedResult results = 2; +} + +// The result for the ad group feed mutate. +message MutateAdGroupFeedResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupFeed" + }]; + + // 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.v10.resources.AdGroupFeed ad_group_feed = 2; +} diff --git a/google/ads/googleads/v10/services/ad_group_label_service.proto b/google/ads/googleads/v10/services/ad_group_label_service.proto new file mode 100644 index 000000000..6e334fc22 --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_label_service.proto @@ -0,0 +1,121 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupLabelServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad Group Label service. + +// Service to manage labels on ad groups. +service AdGroupLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes ad group labels. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdGroupLabels(MutateAdGroupLabelsRequest) returns (MutateAdGroupLabelsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroupLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on ad group labels. + repeated AdGroupLabelOperation 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; +} + +// A single operation (create, remove) on an ad group label. +message AdGroupLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // label. + google.ads.googleads.v10.resources.AdGroupLabel create = 1; + + // Remove operation: A resource name for the ad group label + // being removed, in this format: + // + // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupLabel" + }]; + } +} + +// Response message for an ad group labels mutate. +message MutateAdGroupLabelsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupLabelResult results = 2; +} + +// The result for an ad group label mutate. +message MutateAdGroupLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupLabel" + }]; +} diff --git a/google/ads/googleads/v10/services/ad_group_service.proto b/google/ads/googleads/v10/services/ad_group_service.proto new file mode 100644 index 000000000..732efd25d --- /dev/null +++ b/google/ads/googleads/v10/services/ad_group_service.proto @@ -0,0 +1,155 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad_group.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad Group service. + +// Service to manage ad groups. +service AdGroupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad groups. Operation statuses are returned. + // + // List of thrown errors: + // [AdGroupError]() + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [BiddingStrategyError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MultiplierError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SettingError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAdGroups(MutateAdGroupsRequest) returns (MutateAdGroupsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adGroups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupService.MutateAdGroups][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual ad groups. + repeated AdGroupOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an ad group. +message AdGroupOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group. + google.ads.googleads.v10.resources.AdGroup create = 1; + + // Update operation: The ad group is expected to have a valid resource name. + google.ads.googleads.v10.resources.AdGroup update = 2; + + // Remove operation: A resource name for the removed ad group is expected, + // in this format: + // + // `customers/{customer_id}/adGroups/{ad_group_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + }]; + } +} + +// Response message for an ad group mutate. +message MutateAdGroupsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdGroupResult results = 2; +} + +// The result for the ad group mutate. +message MutateAdGroupResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + }]; + + // 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.v10.resources.AdGroup ad_group = 2; +} diff --git a/google/ads/googleads/v10/services/ad_parameter_service.proto b/google/ads/googleads/v10/services/ad_parameter_service.proto new file mode 100644 index 000000000..d6e0a7352 --- /dev/null +++ b/google/ads/googleads/v10/services/ad_parameter_service.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad_parameter.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdParameterServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad Parameter service. + +// Service to manage ad parameters. +service AdParameterService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad parameters. Operation statuses are + // returned. + // + // List of thrown errors: + // [AdParameterError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdParameters(MutateAdParametersRequest) returns (MutateAdParametersResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/adParameters:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdParameterService.MutateAdParameters][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual ad parameters. + repeated AdParameterOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on ad parameter. +message AdParameterOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad parameter. + google.ads.googleads.v10.resources.AdParameter create = 1; + + // Update operation: The ad parameter is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.AdParameter update = 2; + + // Remove operation: A resource name for the ad parameter to remove is + // expected in this format: + // + // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdParameter" + }]; + } +} + +// Response message for an ad parameter mutate. +message MutateAdParametersResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdParameterResult results = 2; +} + +// The result for the ad parameter mutate. +message MutateAdParameterResult { + // The resource name returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdParameter" + }]; + + // 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.v10.resources.AdParameter ad_parameter = 2; +} diff --git a/google/ads/googleads/v10/services/ad_service.proto b/google/ads/googleads/v10/services/ad_service.proto new file mode 100644 index 000000000..495ec97f4 --- /dev/null +++ b/google/ads/googleads/v10/services/ad_service.proto @@ -0,0 +1,186 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/policy.proto"; +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/ad.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Ad service. + +// Service to manage ads. +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.v10.resources.Ad) { + option (google.api.http) = { + get: "/v10/{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. + // + // List of thrown errors: + // [AdCustomizerError]() + // [AdError]() + // [AdSharingError]() + // [AdxError]() + // [AssetError]() + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FeedAttributeReferenceError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [ImageError]() + // [InternalError]() + // [ListOperationError]() + // [MediaBundleError]() + // [MediaFileError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [PolicyFindingError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAds(MutateAdsRequest) returns (MutateAdsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/ads:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdService.GetAd][google.ads.googleads.v10.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.v10.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]; + + // Required. The list of operations to perform on individual ads. + repeated AdOperation 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 = 4; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 3; +} + +// A single update operation on an ad. +message AdOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; + + // Configuration for how policies are validated. + google.ads.googleads.v10.common.PolicyValidationParameter policy_validation_parameter = 3; + + // The mutate operation. + oneof operation { + // Update operation: The ad is expected to have a valid resource name + // in this format: + // + // `customers/{customer_id}/ads/{ad_id}` + google.ads.googleads.v10.resources.Ad update = 1; + } +} + +// Response message for an ad mutate. +message MutateAdsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAdResult results = 2; +} + +// The result for the ad mutate. +message MutateAdResult { + // The resource name returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Ad" + }]; + + // 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.v10.resources.Ad ad = 2; +} diff --git a/google/ads/googleads/v10/services/asset_group_asset_service.proto b/google/ads/googleads/v10/services/asset_group_asset_service.proto new file mode 100644 index 000000000..2b2ff2616 --- /dev/null +++ b/google/ads/googleads/v10/services/asset_group_asset_service.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/asset_group_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupAssetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AssetGroupAsset service. + +// Service to manage asset group asset. +service AssetGroupAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset group assets. Operation statuses are + // returned. + rpc MutateAssetGroupAssets(MutateAssetGroupAssetsRequest) returns (MutateAssetGroupAssetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/assetGroupAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetGroupAssetService.MutateAssetGroupAssets][google.ads.googleads.v10.services.AssetGroupAssetService.MutateAssetGroupAssets]. +message MutateAssetGroupAssetsRequest { + // Required. The ID of the customer whose asset group assets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual asset group assets. + repeated AssetGroupAssetOperation 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; +} + +// A single operation (create, remove) on an asset group asset. +message AssetGroupAssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset group + // asset + google.ads.googleads.v10.resources.AssetGroupAsset create = 1; + + // Update operation: The asset group asset sis expected to have a valid + // resource name. + google.ads.googleads.v10.resources.AssetGroupAsset update = 2; + + // Remove operation: A resource name for the removed asset group asset is + // expected, in this format: + // `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupAsset" + }]; + } +} + +// Response message for an asset group asset mutate. +message MutateAssetGroupAssetsResponse { + // All results for the mutate. + repeated MutateAssetGroupAssetResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset group asset mutate. +message MutateAssetGroupAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupAsset" + }]; +} diff --git a/google/ads/googleads/v10/services/asset_group_listing_group_filter_service.proto b/google/ads/googleads/v10/services/asset_group_listing_group_filter_service.proto new file mode 100644 index 000000000..1e4e577bf --- /dev/null +++ b/google/ads/googleads/v10/services/asset_group_listing_group_filter_service.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupListingGroupFilterServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AssetGroupListingGroupFilter service. + +// Service to manage asset group listing group filter. +service AssetGroupListingGroupFilterService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset group listing group filters. Operation + // statuses are returned. + rpc MutateAssetGroupListingGroupFilters(MutateAssetGroupListingGroupFiltersRequest) returns (MutateAssetGroupListingGroupFiltersResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters][google.ads.googleads.v10.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters]. +// partial_failure is not supported because the tree needs to be validated +// together. +message MutateAssetGroupListingGroupFiltersRequest { + // Required. The ID of the customer whose asset group listing group filters are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual asset group listing group + // filters. + repeated AssetGroupListingGroupFilterOperation operations = 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; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (create, remove) on an asset group listing group filter. +message AssetGroupListingGroupFilterOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset group + // listing group filter. + google.ads.googleads.v10.resources.AssetGroupListingGroupFilter create = 1; + + // Update operation: The asset group listing group filter is expected to + // have a valid resource name. + google.ads.googleads.v10.resources.AssetGroupListingGroupFilter update = 2; + + // Remove operation: A resource name for the removed asset group listing + // group filter is expected, in this format: + // `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}` + // An entity can be removed only if it's not referenced by other + // parent_listing_group_id. If multiple entities are being deleted, the + // mutates must be in the correct order. + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + }]; + } +} + +// Response message for an asset group listing group filter mutate. +message MutateAssetGroupListingGroupFiltersResponse { + // All results for the mutate. + repeated MutateAssetGroupListingGroupFilterResult results = 1; +} + +// The result for the asset group listing group filter mutate. +message MutateAssetGroupListingGroupFilterResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + }]; + + // 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.v10.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 2; +} diff --git a/google/ads/googleads/v10/services/asset_group_service.proto b/google/ads/googleads/v10/services/asset_group_service.proto new file mode 100644 index 000000000..fcbd54260 --- /dev/null +++ b/google/ads/googleads/v10/services/asset_group_service.proto @@ -0,0 +1,108 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/asset_group.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AssetGroup service. + +// Service to manage asset group +service AssetGroupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset groups. Operation statuses are + // returned. + rpc MutateAssetGroups(MutateAssetGroupsRequest) returns (MutateAssetGroupsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/assetGroups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetGroupService.MutateAssetGroups][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual asset groups. + repeated AssetGroupOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// A single operation (create, remove) on an asset group. +message AssetGroupOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset group + google.ads.googleads.v10.resources.AssetGroup create = 1; + + // Update operation: The asset group is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.AssetGroup update = 2; + + // Remove operation: A resource name for the removed asset group is + // expected, in this format: + // `customers/{customer_id}/assetGroups/{asset_group_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + }]; + } +} + +// Response message for an asset group mutate. +message MutateAssetGroupsResponse { + // All results for the mutate. + repeated MutateAssetGroupResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset group mutate. +message MutateAssetGroupResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + }]; +} diff --git a/google/ads/googleads/v10/services/asset_group_signal_service.proto b/google/ads/googleads/v10/services/asset_group_signal_service.proto new file mode 100644 index 000000000..801324136 --- /dev/null +++ b/google/ads/googleads/v10/services/asset_group_signal_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupSignalServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AssetGroupSignal service. + +// Service to manage asset group signal. +service AssetGroupSignalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes asset group signals. Operation statuses are + // returned. + rpc MutateAssetGroupSignals(MutateAssetGroupSignalsRequest) returns (MutateAssetGroupSignalsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/assetGroupSignals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AssetGroupSignalService.MutateAssetGroupSignals][google.ads.googleads.v10.services.AssetGroupSignalService.MutateAssetGroupSignals]. +message MutateAssetGroupSignalsRequest { + // Required. The ID of the customer whose asset group signals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual asset group signals. + repeated AssetGroupSignalOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an asset group signal. +message AssetGroupSignalOperation { + // 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.v10.resources.AssetGroupSignal create = 1; + + // Remove operation: A resource name for the removed asset group signal is + // expected, in this format: + // `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupSignal" + }]; + } +} + +// Response message for an asset group signal mutate. +message MutateAssetGroupSignalsResponse { + // All results for the mutate. + repeated MutateAssetGroupSignalResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset group signal mutate. +message MutateAssetGroupSignalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupSignal" + }]; + + // 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.v10.resources.AssetGroupSignal asset_group_signal = 2; +} diff --git a/google/ads/googleads/v10/services/asset_service.proto b/google/ads/googleads/v10/services/asset_service.proto new file mode 100644 index 000000000..f64fae9b5 --- /dev/null +++ b/google/ads/googleads/v10/services/asset_service.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Asset service. + +// Service to manage assets. Asset types can be created with AssetService are +// YoutubeVideoAsset, MediaBundleAsset and ImageAsset. TextAsset should be +// created with Ad inline. +service AssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates assets. Operation statuses are returned. + // + // List of thrown errors: + // [AssetError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CurrencyCodeError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MediaUploadError]() + // [MutateError]() + // [NotAllowlistedError]() + // [NotEmptyError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + // [YoutubeVideoRegistrationError]() + rpc MutateAssets(MutateAssetsRequest) returns (MutateAssetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/assets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetService.MutateAssets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual assets. + repeated AssetOperation 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 = 5; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 3; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// A single operation to create an asset. Supported asset types are +// YoutubeVideoAsset, MediaBundleAsset, ImageAsset, and LeadFormAsset. TextAsset +// should be created with Ad inline. +message AssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset. + google.ads.googleads.v10.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.v10.resources.Asset update = 2; + } +} + +// Response message for an asset mutate. +message MutateAssetsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateAssetResult results = 2; +} + +// The result for the asset mutate. +message MutateAssetResult { + // The resource name returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + }]; + + // 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.v10.resources.Asset asset = 2; +} diff --git a/google/ads/googleads/v10/services/asset_set_asset_service.proto b/google/ads/googleads/v10/services/asset_set_asset_service.proto new file mode 100644 index 000000000..35f1b88a7 --- /dev/null +++ b/google/ads/googleads/v10/services/asset_set_asset_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetAssetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AssetSetAsset service. + +// Service to manage asset set asset. +service AssetSetAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset set assets. Operation statuses are + // returned. + rpc MutateAssetSetAssets(MutateAssetSetAssetsRequest) returns (MutateAssetSetAssetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/assetSetAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetSetAssetService.MutateAssetSetAssets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual asset set assets. + repeated AssetSetAssetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an asset set asset. +message AssetSetAssetOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset set + // asset + google.ads.googleads.v10.resources.AssetSetAsset create = 1; + + // Remove operation: A resource name for the removed asset set asset is + // expected, in this format: + // `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSetAsset" + }]; + } +} + +// Response message for an asset set asset mutate. +message MutateAssetSetAssetsResponse { + // All results for the mutate. + repeated MutateAssetSetAssetResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset set asset mutate. +message MutateAssetSetAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSetAsset" + }]; + + // 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.v10.resources.AssetSetAsset asset_set_asset = 2; +} diff --git a/google/ads/googleads/v10/services/asset_set_service.proto b/google/ads/googleads/v10/services/asset_set_service.proto new file mode 100644 index 000000000..a795ed576 --- /dev/null +++ b/google/ads/googleads/v10/services/asset_set_service.proto @@ -0,0 +1,123 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the AssetSet service. + +// Service to manage asset set +service AssetSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset sets. Operation statuses are + // returned. + rpc MutateAssetSets(MutateAssetSetsRequest) returns (MutateAssetSetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/assetSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetSetService.MutateAssetSets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual asset sets. + repeated AssetSetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an asset set. +message AssetSetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset set + google.ads.googleads.v10.resources.AssetSet create = 1; + + // Update operation: The asset set is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.AssetSet update = 2; + + // Remove operation: A resource name for the removed asset set is + // expected, in this format: + // `customers/{customer_id}/assetSets/{asset_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + }]; + } +} + +// Response message for an asset set mutate. +message MutateAssetSetsResponse { + // All results for the mutate. + repeated MutateAssetSetResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset set mutate. +message MutateAssetSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + }]; + + // 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.v10.resources.AssetSet asset_set = 2; +} diff --git a/google/ads/googleads/v10/services/audience_service.proto b/google/ads/googleads/v10/services/audience_service.proto new file mode 100644 index 000000000..c2da858ae --- /dev/null +++ b/google/ads/googleads/v10/services/audience_service.proto @@ -0,0 +1,118 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/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"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AudienceServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Audience service. + +// Service to manage audiences. +service AudienceService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates audiences. Operation statuses are returned. + // + // List of thrown errors: + // [AudienceError]() + rpc MutateAudiences(MutateAudiencesRequest) returns (MutateAudiencesResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/audiences:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AudienceService.MutateAudiences][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual audiences. + repeated AudienceOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// Response message for an audience mutate. +message MutateAudiencesResponse { + // All results for the mutate. + repeated MutateAudienceResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// A single operation (create, update) on an audience. +message AudienceOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new audience + google.ads.googleads.v10.resources.Audience create = 1; + + // Update operation: The audience is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.Audience update = 2; + } +} + +// The result for the audience mutate. +message MutateAudienceResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Audience" + }]; + + // 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.v10.resources.Audience audience = 2; +} diff --git a/google/ads/googleads/v10/services/batch_job_service.proto b/google/ads/googleads/v10/services/batch_job_service.proto new file mode 100644 index 000000000..42d9c6734 --- /dev/null +++ b/google/ads/googleads/v10/services/batch_job_service.proto @@ -0,0 +1,269 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/batch_job.proto"; +import "google/ads/googleads/v10/services/google_ads_service.proto"; +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/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BatchJobServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the BatchJobService. + +// Service to manage batch jobs. +service BatchJobService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Mutates a batch job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateBatchJob(MutateBatchJobRequest) returns (MutateBatchJobResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/batchJobs:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } + + // Returns the results of the batch job. The job must be done. + // Supports standard list paging. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [BatchJobError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListBatchJobResults(ListBatchJobResultsRequest) returns (ListBatchJobResultsResponse) { + option (google.api.http) = { + get: "/v10/{resource_name=customers/*/batchJobs/*}:listResults" + }; + option (google.api.method_signature) = "resource_name"; + } + + // Runs the batch job. + // + // The Operation.metadata field type is BatchJobMetadata. When finished, the + // long running operation will not contain errors or a response. Instead, use + // ListBatchJobResults to get the results of the job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [BatchJobError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc RunBatchJob(RunBatchJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v10/{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.v10.resources.BatchJob.BatchJobMetadata" + }; + } + + // Add operations to the batch job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [BatchJobError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc AddBatchJobOperations(AddBatchJobOperationsRequest) returns (AddBatchJobOperationsResponse) { + option (google.api.http) = { + post: "/v10/{resource_name=customers/*/batchJobs/*}:addOperations" + body: "*" + }; + option (google.api.method_signature) = "resource_name,sequence_token,mutate_operations"; + option (google.api.method_signature) = "resource_name,mutate_operations"; + } +} + +// Request message for [BatchJobService.MutateBatchJob][google.ads.googleads.v10.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]; + + // Required. The operation to perform on an individual batch job. + BatchJobOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single operation on a batch job. +message BatchJobOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new batch job. + google.ads.googleads.v10.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: + // + // `customers/{customer_id}/batchJobs/{batch_job_id}` + string remove = 4 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + }]; + } +} + +// Response message for [BatchJobService.MutateBatchJob][google.ads.googleads.v10.services.BatchJobService.MutateBatchJob]. +message MutateBatchJobResponse { + // The result for the mutate. + MutateBatchJobResult result = 1; +} + +// The result for the batch job mutate. +message MutateBatchJobResult { + // The resource name of the batch job. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + }]; +} + +// Request message for [BatchJobService.RunBatchJob][google.ads.googleads.v10.services.BatchJobService.RunBatchJob]. +message RunBatchJobRequest { + // Required. The resource name of the BatchJob to run. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + } + ]; +} + +// Request message for [BatchJobService.AddBatchJobOperations][google.ads.googleads.v10.services.BatchJobService.AddBatchJobOperations]. +message AddBatchJobOperationsRequest { + // Required. The resource name of the batch job. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + } + ]; + + // A token used to enforce sequencing. + // + // The first AddBatchJobOperations request for a batch job should not set + // sequence_token. Subsequent requests must set sequence_token to the value of + // next_sequence_token received in the previous AddBatchJobOperations + // response. + string sequence_token = 2; + + // Required. The list of mutates being added. + // + // Operations can use negative integers as temp ids to signify dependencies + // between entities created in this batch job. For example, a customer with + // id = 1234 can create a campaign and an ad group in that same campaign by + // creating a campaign in the first operation with the resource name + // explicitly set to "customers/1234/campaigns/-1", and creating an ad group + // in the second operation with the campaign field also set to + // "customers/1234/campaigns/-1". + repeated MutateOperation mutate_operations = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [BatchJobService.AddBatchJobOperations][google.ads.googleads.v10.services.BatchJobService.AddBatchJobOperations]. +message AddBatchJobOperationsResponse { + // The total number of operations added so far for this batch job. + int64 total_operations = 1; + + // The sequence token to be used when calling AddBatchJobOperations again if + // more operations need to be added. The next AddBatchJobOperations request + // must set the sequence_token field to the value of this field. + string next_sequence_token = 2; +} + +// Request message for [BatchJobService.ListBatchJobResults][google.ads.googleads.v10.services.BatchJobService.ListBatchJobResults]. +message ListBatchJobResultsRequest { + // Required. The resource name of the batch job whose results are being listed. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + } + ]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When a page request is too large, the server may decide to + // further limit the number of returned resources. + int32 page_size = 3; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// Response message for [BatchJobService.ListBatchJobResults][google.ads.googleads.v10.services.BatchJobService.ListBatchJobResults]. +message ListBatchJobResultsResponse { + // The list of rows that matched the query. + repeated BatchJobResult 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; +} + +// An individual batch job result. +message BatchJobResult { + // Index of the mutate operation. + int64 operation_index = 1; + + // Response for the mutate. + // May be empty if errors occurred. + MutateOperationResponse mutate_operation_response = 2; + + // Details of the errors when processing the operation. + google.rpc.Status status = 3; +} diff --git a/google/ads/googleads/v10/services/bidding_data_exclusion_service.proto b/google/ads/googleads/v10/services/bidding_data_exclusion_service.proto new file mode 100644 index 000000000..6c24a2e32 --- /dev/null +++ b/google/ads/googleads/v10/services/bidding_data_exclusion_service.proto @@ -0,0 +1,125 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/bidding_data_exclusion.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BiddingDataExclusionServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Service to manage bidding data exclusions. +service BiddingDataExclusionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes data exclusions. + // Operation statuses are returned. + rpc MutateBiddingDataExclusions(MutateBiddingDataExclusionsRequest) returns (MutateBiddingDataExclusionsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/biddingDataExclusions:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [BiddingDataExclusionService.MutateBiddingDataExclusions][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual data exclusions. + repeated BiddingDataExclusionOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on a data exclusion. +message BiddingDataExclusionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new data + // exclusion. + google.ads.googleads.v10.resources.BiddingDataExclusion create = 1; + + // Update operation: The data exclusion is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.BiddingDataExclusion update = 2; + + // Remove operation: A resource name for the removed data exclusion + // is expected, in this format: + // + // `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingDataExclusion" + }]; + } +} + +// Response message for data exlusions mutate. +message MutateBiddingDataExclusionsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateBiddingDataExclusionsResult results = 2; +} + +// The result for the data exclusion mutate. +message MutateBiddingDataExclusionsResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingDataExclusion" + }]; + + // 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.v10.resources.BiddingDataExclusion bidding_data_exclusion = 2; +} diff --git a/google/ads/googleads/v10/services/bidding_seasonality_adjustment_service.proto b/google/ads/googleads/v10/services/bidding_seasonality_adjustment_service.proto new file mode 100644 index 000000000..1baecdb7c --- /dev/null +++ b/google/ads/googleads/v10/services/bidding_seasonality_adjustment_service.proto @@ -0,0 +1,125 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/bidding_seasonality_adjustment.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BiddingSeasonalityAdjustmentServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Service to manage bidding seasonality adjustments. +service BiddingSeasonalityAdjustmentService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes seasonality adjustments. + // Operation statuses are returned. + rpc MutateBiddingSeasonalityAdjustments(MutateBiddingSeasonalityAdjustmentsRequest) returns (MutateBiddingSeasonalityAdjustmentsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments][google.ads.googleads.v10.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments]. +message MutateBiddingSeasonalityAdjustmentsRequest { + // Required. ID of the customer whose seasonality adjustments are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual seasonality adjustments. + repeated BiddingSeasonalityAdjustmentOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on a seasonality adjustment. +message BiddingSeasonalityAdjustmentOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new seasonality + // adjustment. + google.ads.googleads.v10.resources.BiddingSeasonalityAdjustment create = 1; + + // Update operation: The seasonality adjustment is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.BiddingSeasonalityAdjustment update = 2; + + // Remove operation: A resource name for the removed seasonality adjustment + // is expected, in this format: + // + // `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" + }]; + } +} + +// Response message for seasonality adjustments mutate. +message MutateBiddingSeasonalityAdjustmentsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateBiddingSeasonalityAdjustmentsResult results = 2; +} + +// The result for the seasonality adjustment mutate. +message MutateBiddingSeasonalityAdjustmentsResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" + }]; + + // 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.v10.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 2; +} diff --git a/google/ads/googleads/v10/services/bidding_strategy_service.proto b/google/ads/googleads/v10/services/bidding_strategy_service.proto new file mode 100644 index 000000000..3306a9d29 --- /dev/null +++ b/google/ads/googleads/v10/services/bidding_strategy_service.proto @@ -0,0 +1,154 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/bidding_strategy.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Bidding Strategy service. + +// Service to manage bidding strategies. +service BiddingStrategyService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes bidding strategies. Operation statuses are + // returned. + // + // List of thrown errors: + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [BiddingStrategyError]() + // [ContextError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateBiddingStrategies(MutateBiddingStrategiesRequest) returns (MutateBiddingStrategiesResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/biddingStrategies:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v10.services.BiddingStrategyService.MutateBiddingStrategies]. +message MutateBiddingStrategiesRequest { + // Required. The ID of the customer whose bidding strategies are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual bidding strategies. + repeated BiddingStrategyOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a bidding strategy. +message BiddingStrategyOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new bidding + // strategy. + google.ads.googleads.v10.resources.BiddingStrategy create = 1; + + // Update operation: The bidding strategy is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.BiddingStrategy update = 2; + + // Remove operation: A resource name for the removed bidding strategy is + // expected, in this format: + // + // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategy" + }]; + } +} + +// Response message for bidding strategy mutate. +message MutateBiddingStrategiesResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateBiddingStrategyResult results = 2; +} + +// The result for the bidding strategy mutate. +message MutateBiddingStrategyResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategy" + }]; + + // 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.v10.resources.BiddingStrategy bidding_strategy = 2; +} diff --git a/google/ads/googleads/v10/services/billing_setup_service.proto b/google/ads/googleads/v10/services/billing_setup_service.proto new file mode 100644 index 000000000..1c07a9829 --- /dev/null +++ b/google/ads/googleads/v10/services/billing_setup_service.proto @@ -0,0 +1,112 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BillingSetupServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the BillingSetup service. + +// A service for designating the business entity responsible for accrued costs. +// +// A billing setup is associated with a payments account. Billing-related +// activity for all billing setups associated with a particular payments account +// will appear on a single invoice generated monthly. +// +// Mutates: +// The REMOVE operation cancels a pending billing setup. +// The CREATE operation creates a new billing setup. +service BillingSetupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates a billing setup, or cancels an existing billing setup. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [BillingSetupError]() + // [DateError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateBillingSetup(MutateBillingSetupRequest) returns (MutateBillingSetupResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/billingSetups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for billing setup mutate operations. +message MutateBillingSetupRequest { + // Required. Id of the customer to apply the billing setup mutate operation to. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform. + BillingSetupOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single operation on a billing setup, which describes the cancellation of an +// existing billing setup. +message BillingSetupOperation { + // Only one of these operations can be set. "Update" operations are not + // supported. + oneof operation { + // Creates a billing setup. No resource name is expected for the new billing + // setup. + google.ads.googleads.v10.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 + // the future. The resource name looks like + // `customers/{customer_id}/billingSetups/{billing_id}`. + string remove = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + }]; + } +} + +// Response message for a billing setup operation. +message MutateBillingSetupResponse { + // A result that identifies the resource affected by the mutate request. + MutateBillingSetupResult result = 1; +} + +// Result for a single billing setup mutate. +message MutateBillingSetupResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + }]; +} diff --git a/google/ads/googleads/v10/services/campaign_asset_service.proto b/google/ads/googleads/v10/services/campaign_asset_service.proto new file mode 100644 index 000000000..a0a84cbd5 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_asset_service.proto @@ -0,0 +1,140 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAssetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CampaignAsset service. + +// Service to manage campaign assets. +service CampaignAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign assets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NotAllowlistedError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCampaignAssets(MutateCampaignAssetsRequest) returns (MutateCampaignAssetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignAssetService.MutateCampaignAssets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual campaign assets. + repeated CampaignAssetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign asset. +message CampaignAssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // asset. + google.ads.googleads.v10.resources.CampaignAsset create = 1; + + // Update operation: The campaign asset is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.CampaignAsset update = 3; + + // Remove operation: A resource name for the removed campaign asset is + // expected, in this format: + // + // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAsset" + }]; + } +} + +// Response message for a campaign asset mutate. +message MutateCampaignAssetsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateCampaignAssetResult results = 2; +} + +// The result for the campaign asset mutate. +message MutateCampaignAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAsset" + }]; + + // 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.v10.resources.CampaignAsset campaign_asset = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_asset_set_service.proto b/google/ads/googleads/v10/services/campaign_asset_set_service.proto new file mode 100644 index 000000000..dfca68307 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_asset_set_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAssetSetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CampaignAssetSet service. + +// Service to manage campaign asset set +service CampaignAssetSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes campaign asset sets. Operation statuses are + // returned. + rpc MutateCampaignAssetSets(MutateCampaignAssetSetsRequest) returns (MutateCampaignAssetSetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignAssetSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignAssetSetService.MutateCampaignAssetSets][google.ads.googleads.v10.services.CampaignAssetSetService.MutateCampaignAssetSets]. +message MutateCampaignAssetSetsRequest { + // Required. The ID of the customer whose campaign asset sets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign asset sets. + repeated CampaignAssetSetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on a campaign asset set. +message CampaignAssetSetOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign asset + // set. + google.ads.googleads.v10.resources.CampaignAssetSet create = 1; + + // Remove operation: A resource name for the removed campaign asset set is + // expected, in this format: + // `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAssetSet" + }]; + } +} + +// Response message for a campaign asset set mutate. +message MutateCampaignAssetSetsResponse { + // All results for the mutate. + repeated MutateCampaignAssetSetResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the campaign asset set mutate. +message MutateCampaignAssetSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAssetSet" + }]; + + // 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.v10.resources.CampaignAssetSet campaign_asset_set = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_bid_modifier_service.proto b/google/ads/googleads/v10/services/campaign_bid_modifier_service.proto new file mode 100644 index 000000000..d14485894 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_bid_modifier_service.proto @@ -0,0 +1,151 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_bid_modifier.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBidModifierServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign Bid Modifier service. + +// Service to manage campaign bid modifiers. +service CampaignBidModifierService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign bid modifiers. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCampaignBidModifiers(MutateCampaignBidModifiersRequest) returns (MutateCampaignBidModifiersResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignBidModifiers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CampaignBidModifierService.MutateCampaignBidModifiers][google.ads.googleads.v10.services.CampaignBidModifierService.MutateCampaignBidModifiers]. +message MutateCampaignBidModifiersRequest { + // Required. ID of the customer whose campaign bid modifiers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign bid modifiers. + repeated CampaignBidModifierOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on a campaign bid modifier. +message CampaignBidModifierOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign bid + // modifier. + google.ads.googleads.v10.resources.CampaignBidModifier create = 1; + + // Update operation: The campaign bid modifier is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.CampaignBidModifier update = 2; + + // Remove operation: A resource name for the removed campaign bid modifier + // is expected, in this format: + // + // `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBidModifier" + }]; + } +} + +// Response message for campaign bid modifiers mutate. +message MutateCampaignBidModifiersResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignBidModifierResult results = 2; +} + +// The result for the criterion mutate. +message MutateCampaignBidModifierResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBidModifier" + }]; + + // 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.v10.resources.CampaignBidModifier campaign_bid_modifier = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_budget_service.proto b/google/ads/googleads/v10/services/campaign_budget_service.proto new file mode 100644 index 000000000..0f37eb1af --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_budget_service.proto @@ -0,0 +1,144 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_budget.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBudgetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign Budget service. + +// Service to manage campaign budgets. +service CampaignBudgetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign budgets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignBudgetError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [OperationAccessDeniedError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [StringLengthError]() + rpc MutateCampaignBudgets(MutateCampaignBudgetsRequest) returns (MutateCampaignBudgetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignBudgets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual campaign budgets. + repeated CampaignBudgetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign budget. +message CampaignBudgetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new budget. + google.ads.googleads.v10.resources.CampaignBudget create = 1; + + // Update operation: The campaign budget is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.CampaignBudget update = 2; + + // Remove operation: A resource name for the removed budget is expected, in + // this format: + // + // `customers/{customer_id}/campaignBudgets/{budget_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + }]; + } +} + +// Response message for campaign budget mutate. +message MutateCampaignBudgetsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignBudgetResult results = 2; +} + +// The result for the campaign budget mutate. +message MutateCampaignBudgetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + }]; + + // 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.v10.resources.CampaignBudget campaign_budget = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_conversion_goal_service.proto b/google/ads/googleads/v10/services/campaign_conversion_goal_service.proto new file mode 100644 index 000000000..1c827c9ac --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_conversion_goal_service.proto @@ -0,0 +1,92 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignConversionGoalServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CampaignConversionGoal service. + +// Service to manage campaign conversion goal. +service CampaignConversionGoalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes campaign conversion goals. Operation statuses + // are returned. + rpc MutateCampaignConversionGoals(MutateCampaignConversionGoalsRequest) returns (MutateCampaignConversionGoalsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignConversionGoals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CampaignConversionGoalService.MutateCampaignConversionGoals][google.ads.googleads.v10.services.CampaignConversionGoalService.MutateCampaignConversionGoals]. +message MutateCampaignConversionGoalsRequest { + // Required. The ID of the customer whose campaign conversion goals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign conversion goal. + repeated CampaignConversionGoalOperation operations = 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 operation (update) on a campaign conversion goal. +message CampaignConversionGoalOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; + + // The mutate operation. + oneof operation { + // Update operation: The customer conversion goal is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.CampaignConversionGoal update = 1; + } +} + +// Response message for a campaign conversion goal mutate. +message MutateCampaignConversionGoalsResponse { + // All results for the mutate. + repeated MutateCampaignConversionGoalResult results = 1; +} + +// The result for the campaign conversion goal mutate. +message MutateCampaignConversionGoalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignConversionGoal" + }]; +} diff --git a/google/ads/googleads/v10/services/campaign_criterion_service.proto b/google/ads/googleads/v10/services/campaign_criterion_service.proto new file mode 100644 index 000000000..1fc7a6ca5 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_criterion_service.proto @@ -0,0 +1,155 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign Criterion service. + +// Service to manage campaign criteria. +service CampaignCriterionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes criteria. Operation statuses are returned. + // + // List of thrown errors: + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignCriterionError]() + // [CollectionSizeError]() + // [ContextError]() + // [CriterionError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RegionCodeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCampaignCriteria(MutateCampaignCriteriaRequest) returns (MutateCampaignCriteriaResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignCriteria:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual criteria. + repeated CampaignCriterionOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign criterion. +message CampaignCriterionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new criterion. + google.ads.googleads.v10.resources.CampaignCriterion create = 1; + + // Update operation: The criterion is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.CampaignCriterion update = 2; + + // Remove operation: A resource name for the removed criterion is expected, + // in this format: + // + // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterion" + }]; + } +} + +// Response message for campaign criterion mutate. +message MutateCampaignCriteriaResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignCriterionResult results = 2; +} + +// The result for the criterion mutate. +message MutateCampaignCriterionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterion" + }]; + + // 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.v10.resources.CampaignCriterion campaign_criterion = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_customizer_service.proto b/google/ads/googleads/v10/services/campaign_customizer_service.proto new file mode 100644 index 000000000..91bfc664e --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_customizer_service.proto @@ -0,0 +1,118 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCustomizerServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CampaignCustomizer service. + +// Service to manage campaign customizer +service CampaignCustomizerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes campaign customizers. Operation statuses are + // returned. + rpc MutateCampaignCustomizers(MutateCampaignCustomizersRequest) returns (MutateCampaignCustomizersResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignCustomizers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CampaignCustomizerService.MutateCampaignCustomizers][google.ads.googleads.v10.services.CampaignCustomizerService.MutateCampaignCustomizers]. +message MutateCampaignCustomizersRequest { + // Required. The ID of the customer whose campaign customizers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign customizers. + repeated CampaignCustomizerOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message CampaignCustomizerOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // customizer + google.ads.googleads.v10.resources.CampaignCustomizer create = 1; + + // Remove operation: A resource name for the removed campaign customizer is + // expected, in this format: + // `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCustomizer" + }]; + } +} + +// Response message for an campaign customizer mutate. +message MutateCampaignCustomizersResponse { + // All results for the mutate. + repeated MutateCampaignCustomizerResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the campaign customizer mutate. +message MutateCampaignCustomizerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCustomizer" + }]; + + // 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.v10.resources.CampaignCustomizer campaign_customizer = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_draft_service.proto b/google/ads/googleads/v10/services/campaign_draft_service.proto new file mode 100644 index 000000000..4eb2e0455 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_draft_service.proto @@ -0,0 +1,236 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_draft.proto"; +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/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignDraftServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign Draft service. + +// Service to manage campaign drafts. +service CampaignDraftService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign drafts. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignDraftError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCampaignDrafts(MutateCampaignDraftsRequest) returns (MutateCampaignDraftsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignDrafts:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Promotes the changes in a draft back to the base campaign. + // + // This method returns a Long Running Operation (LRO) indicating if the + // Promote is done. Use [Operations.GetOperation] to poll the LRO until it + // 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.v10.services.CampaignDraftService.ListCampaignDraftAsyncErrors] to view the list of + // error reasons. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignDraftError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc PromoteCampaignDraft(PromoteCampaignDraftRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v10/{campaign_draft=customers/*/campaignDrafts/*}:promote" + body: "*" + }; + option (google.api.method_signature) = "campaign_draft"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.protobuf.Empty" + }; + } + + // Returns all errors that occurred during CampaignDraft promote. Throws an + // error if called before campaign draft is promoted. + // Supports standard list paging. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListCampaignDraftAsyncErrors(ListCampaignDraftAsyncErrorsRequest) returns (ListCampaignDraftAsyncErrorsResponse) { + option (google.api.http) = { + get: "/v10/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + }; + option (google.api.method_signature) = "resource_name"; + } +} + +// Request message for [CampaignDraftService.MutateCampaignDrafts][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual campaign drafts. + repeated CampaignDraftOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// Request message for [CampaignDraftService.PromoteCampaignDraft][google.ads.googleads.v10.services.CampaignDraftService.PromoteCampaignDraft]. +message PromoteCampaignDraftRequest { + // Required. The resource name of the campaign draft to promote. + string campaign_draft = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + } + ]; + + // If true, the request is validated but no Long Running Operation is created. + // Only errors are returned. + bool validate_only = 2; +} + +// A single operation (create, update, remove) on a campaign draft. +message CampaignDraftOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // draft. + google.ads.googleads.v10.resources.CampaignDraft create = 1; + + // Update operation: The campaign draft is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.CampaignDraft update = 2; + + // Remove operation: The campaign draft is expected to have a valid + // resource name, in this format: + // + // `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + }]; + } +} + +// Response message for campaign draft mutate. +message MutateCampaignDraftsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignDraftResult results = 2; +} + +// The result for the campaign draft mutate. +message MutateCampaignDraftResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + }]; + + // 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.v10.resources.CampaignDraft campaign_draft = 2; +} + +// Request message for [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v10.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. +message ListCampaignDraftAsyncErrorsRequest { + // Required. The name of the campaign draft from which to retrieve the async errors. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + } + ]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When a page request is too large, the server may decide to + // further limit the number of returned resources. + int32 page_size = 3; +} + +// Response message for [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v10.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. +message ListCampaignDraftAsyncErrorsResponse { + // Details of the errors when performing the asynchronous operation. + repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_experiment_service.proto b/google/ads/googleads/v10/services/campaign_experiment_service.proto new file mode 100644 index 000000000..b3908bddd --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_experiment_service.proto @@ -0,0 +1,374 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_experiment.proto"; +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/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign Experiment service. + +// CampaignExperimentService manages the life cycle of campaign experiments. +// It is used to create new experiments from drafts, modify experiment +// properties, promote changes in an experiment back to its base campaign, +// graduate experiments into new stand-alone campaigns, and to remove an +// experiment. +// +// An experiment consists of two variants or arms - the base campaign and the +// experiment campaign, directing a fixed share of traffic to each arm. +// A campaign experiment is created from a draft of changes to the base campaign +// and will be a snapshot of changes in the draft at the time of creation. +service CampaignExperimentService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates a campaign experiment based on a campaign draft. The draft campaign + // will be forked into a real campaign (called the experiment campaign) that + // will begin serving ads if successfully created. + // + // The campaign experiment is created immediately with status INITIALIZING. + // This method return a long running operation that tracks the forking of the + // draft campaign. If the forking fails, a list of errors can be retrieved + // using the ListCampaignExperimentAsyncErrors method. The operation's + // metadata will be a StringValue containing the resource name of the created + // campaign experiment. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignExperimentError]() + // [DatabaseError]() + // [DateError]() + // [DateRangeError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc CreateCampaignExperiment(CreateCampaignExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignExperiments:create" + body: "*" + }; + option (google.api.method_signature) = "customer_id,campaign_experiment"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.ads.googleads.v10.services.CreateCampaignExperimentMetadata" + }; + } + + // Updates campaign experiments. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCampaignExperiments(MutateCampaignExperimentsRequest) returns (MutateCampaignExperimentsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignExperiments:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Graduates a campaign experiment to a full campaign. The base and experiment + // campaigns will start running independently with their own budgets. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignExperimentError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc GraduateCampaignExperiment(GraduateCampaignExperimentRequest) returns (GraduateCampaignExperimentResponse) { + option (google.api.http) = { + post: "/v10/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" + body: "*" + }; + option (google.api.method_signature) = "campaign_experiment,campaign_budget"; + } + + // Promotes the changes in a experiment campaign back to the base campaign. + // + // The campaign experiment is updated immediately with status PROMOTING. + // This method return a long running operation that tracks the promoting of + // the experiment campaign. If the promoting fails, a list of errors can be + // retrieved using the ListCampaignExperimentAsyncErrors method. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc PromoteCampaignExperiment(PromoteCampaignExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v10/{campaign_experiment=customers/*/campaignExperiments/*}:promote" + body: "*" + }; + option (google.api.method_signature) = "campaign_experiment"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.protobuf.Empty" + }; + } + + // Immediately ends a campaign experiment, changing the experiment's scheduled + // end date and without waiting for end of day. End date is updated to be the + // time of the request. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc EndCampaignExperiment(EndCampaignExperimentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v10/{campaign_experiment=customers/*/campaignExperiments/*}:end" + body: "*" + }; + option (google.api.method_signature) = "campaign_experiment"; + } + + // Returns all errors that occurred during CampaignExperiment create or + // promote (whichever occurred last). + // Supports standard list paging. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListCampaignExperimentAsyncErrors(ListCampaignExperimentAsyncErrorsRequest) returns (ListCampaignExperimentAsyncErrorsResponse) { + option (google.api.http) = { + get: "/v10/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" + }; + option (google.api.method_signature) = "resource_name"; + } +} + +// Request message for [CampaignExperimentService.MutateCampaignExperiments][google.ads.googleads.v10.services.CampaignExperimentService.MutateCampaignExperiments]. +message MutateCampaignExperimentsRequest { + // Required. The ID of the customer whose campaign experiments are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign experiments. + repeated CampaignExperimentOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single update operation on a campaign experiment. +message CampaignExperimentOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Update operation: The campaign experiment is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.CampaignExperiment update = 1; + + // Remove operation: The campaign experiment is expected to have a valid + // resource name, in this format: + // + // `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + }]; + } +} + +// Response message for campaign experiment mutate. +message MutateCampaignExperimentsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignExperimentResult results = 2; +} + +// The result for the campaign experiment mutate. +message MutateCampaignExperimentResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + }]; + + // The mutated campaign experiment with only mutable fields after mutate. The + // field will only be returned when response_content_type is set to + // "MUTABLE_RESOURCE". + google.ads.googleads.v10.resources.CampaignExperiment campaign_experiment = 2; +} + +// Request message for [CampaignExperimentService.CreateCampaignExperiment][google.ads.googleads.v10.services.CampaignExperimentService.CreateCampaignExperiment]. +message CreateCampaignExperimentRequest { + // Required. The ID of the customer whose campaign experiment is being created. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The campaign experiment to be created. + google.ads.googleads.v10.resources.CampaignExperiment campaign_experiment = 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; +} + +// Message used as metadata returned in Long Running Operations for +// CreateCampaignExperimentRequest +message CreateCampaignExperimentMetadata { + // Resource name of campaign experiment created. + string campaign_experiment = 1; +} + +// Request message for [CampaignExperimentService.GraduateCampaignExperiment][google.ads.googleads.v10.services.CampaignExperimentService.GraduateCampaignExperiment]. +message GraduateCampaignExperimentRequest { + // Required. The resource name of the campaign experiment to graduate. + string campaign_experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // Required. Resource name of the budget to attach to the campaign graduated from the + // experiment. + string campaign_budget = 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; +} + +// Response message for campaign experiment graduate. +message GraduateCampaignExperimentResponse { + // The resource name of the campaign from the graduated experiment. + // This campaign is the same one as CampaignExperiment.experiment_campaign. + string graduated_campaign = 1; +} + +// Request message for [CampaignExperimentService.PromoteCampaignExperiment][google.ads.googleads.v10.services.CampaignExperimentService.PromoteCampaignExperiment]. +message PromoteCampaignExperimentRequest { + // Required. The resource name of the campaign experiment to promote. + string campaign_experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // If true, the request is validated but no Long Running Operation is created. + // Only errors are returned. + bool validate_only = 2; +} + +// Request message for [CampaignExperimentService.EndCampaignExperiment][google.ads.googleads.v10.services.CampaignExperimentService.EndCampaignExperiment]. +message EndCampaignExperimentRequest { + // Required. The resource name of the campaign experiment to end. + string campaign_experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// Request message for +// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v10.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors]. +message ListCampaignExperimentAsyncErrorsRequest { + // Required. The name of the campaign experiment from which to retrieve the async + // errors. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When a page request is too large, the server may decide to + // further limit the number of returned resources. + int32 page_size = 3; +} + +// Response message for +// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v10.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors]. +message ListCampaignExperimentAsyncErrorsResponse { + // Details of the errors when performing the asynchronous operation. + repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_extension_setting_service.proto b/google/ads/googleads/v10/services/campaign_extension_setting_service.proto new file mode 100644 index 000000000..dbac6ea33 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_extension_setting_service.proto @@ -0,0 +1,158 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_extension_setting.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExtensionSettingServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CampaignExtensionSetting service. + +// Service to manage campaign extension settings. +service CampaignExtensionSettingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign extension settings. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [ExtensionSettingError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateCampaignExtensionSettings(MutateCampaignExtensionSettingsRequest) returns (MutateCampaignExtensionSettingsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignExtensionSettings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v10.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings]. +message MutateCampaignExtensionSettingsRequest { + // Required. The ID of the customer whose campaign extension settings are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign extension + // settings. + repeated CampaignExtensionSettingOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign extension setting. +message CampaignExtensionSettingOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // extension setting. + google.ads.googleads.v10.resources.CampaignExtensionSetting create = 1; + + // Update operation: The campaign extension setting is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.CampaignExtensionSetting update = 2; + + // Remove operation: A resource name for the removed campaign extension + // setting is expected, in this format: + // + // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExtensionSetting" + }]; + } +} + +// Response message for a campaign extension setting mutate. +message MutateCampaignExtensionSettingsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignExtensionSettingResult results = 2; +} + +// The result for the campaign extension setting mutate. +message MutateCampaignExtensionSettingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExtensionSetting" + }]; + + // 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.v10.resources.CampaignExtensionSetting campaign_extension_setting = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_feed_service.proto b/google/ads/googleads/v10/services/campaign_feed_service.proto new file mode 100644 index 000000000..6a0c1bdc1 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_feed_service.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_feed.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignFeedServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CampaignFeed service. + +// Service to manage campaign feeds. +service CampaignFeedService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign feeds. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignFeedError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCampaignFeeds(MutateCampaignFeedsRequest) returns (MutateCampaignFeedsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignFeeds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual campaign feeds. + repeated CampaignFeedOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign feed. +message CampaignFeedOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign feed. + google.ads.googleads.v10.resources.CampaignFeed create = 1; + + // Update operation: The campaign feed is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.CampaignFeed update = 2; + + // Remove operation: A resource name for the removed campaign feed is + // expected, in this format: + // + // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignFeed" + }]; + } +} + +// Response message for a campaign feed mutate. +message MutateCampaignFeedsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignFeedResult results = 2; +} + +// The result for the campaign feed mutate. +message MutateCampaignFeedResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignFeed" + }]; + + // 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.v10.resources.CampaignFeed campaign_feed = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_group_service.proto b/google/ads/googleads/v10/services/campaign_group_service.proto new file mode 100644 index 000000000..e6c6825c3 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_group_service.proto @@ -0,0 +1,129 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign_group.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignGroupServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign group service. + +// Service to manage campaign groups. +service CampaignGroupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign groups. Operation statuses are + // returned. + rpc MutateCampaignGroups(MutateCampaignGroupsRequest) returns (MutateCampaignGroupsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignGroups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignGroupService.MutateCampaignGroups][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual campaign groups. + repeated CampaignGroupOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign group. +message CampaignGroupOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // group. + google.ads.googleads.v10.resources.CampaignGroup create = 1; + + // Update operation: The campaign group is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.CampaignGroup update = 2; + + // Remove operation: A resource name for the removed campaign group is + // expected, in this format: + // + // `customers/{customer_id}/campaignGroups/{campaign_group_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignGroup" + }]; + } +} + +// Response message for campaign group mutate. +message MutateCampaignGroupsResponse { + // All results for the mutate. + repeated MutateCampaignGroupResult results = 2; + + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; +} + +// The result for the campaign group mutate. +message MutateCampaignGroupResult { + // Required. Returned for successful operations. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignGroup" + } + ]; + + // 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.v10.resources.CampaignGroup campaign_group = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_label_service.proto b/google/ads/googleads/v10/services/campaign_label_service.proto new file mode 100644 index 000000000..7833c8969 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_label_service.proto @@ -0,0 +1,121 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignLabelServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign Label service. + +// Service to manage labels on campaigns. +service CampaignLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes campaign-label relationships. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCampaignLabels(MutateCampaignLabelsRequest) returns (MutateCampaignLabelsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v10.services.CampaignLabelService.MutateCampaignLabels]. +message MutateCampaignLabelsRequest { + // Required. ID of the customer whose campaign-label relationships are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on campaign-label relationships. + repeated CampaignLabelOperation 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; +} + +// A single operation (create, remove) on a campaign-label relationship. +message CampaignLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign-label + // relationship. + google.ads.googleads.v10.resources.CampaignLabel create = 1; + + // Remove operation: A resource name for the campaign-label relationship + // being removed, in this format: + // + // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLabel" + }]; + } +} + +// Response message for a campaign labels mutate. +message MutateCampaignLabelsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignLabelResult results = 2; +} + +// The result for a campaign label mutate. +message MutateCampaignLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLabel" + }]; +} diff --git a/google/ads/googleads/v10/services/campaign_service.proto b/google/ads/googleads/v10/services/campaign_service.proto new file mode 100644 index 000000000..4c32ea8ba --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_service.proto @@ -0,0 +1,160 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/campaign.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign service. + +// Service to manage campaigns. +service CampaignService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaigns. Operation statuses are returned. + // + // List of thrown errors: + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [BiddingStrategyError]() + // [CampaignBudgetError]() + // [CampaignError]() + // [ContextError]() + // [DatabaseError]() + // [DateError]() + // [DateRangeError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotAllowlistedError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RegionCodeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SettingError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateCampaigns(MutateCampaignsRequest) returns (MutateCampaignsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaigns:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignService.MutateCampaigns][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual campaigns. + repeated CampaignOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign. +message CampaignOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign. + google.ads.googleads.v10.resources.Campaign create = 1; + + // Update operation: The campaign is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.Campaign update = 2; + + // Remove operation: A resource name for the removed campaign is + // expected, in this format: + // + // `customers/{customer_id}/campaigns/{campaign_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + } +} + +// Response message for campaign mutate. +message MutateCampaignsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignResult results = 2; +} + +// The result for the campaign mutate. +message MutateCampaignResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // 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.v10.resources.Campaign campaign = 2; +} diff --git a/google/ads/googleads/v10/services/campaign_shared_set_service.proto b/google/ads/googleads/v10/services/campaign_shared_set_service.proto new file mode 100644 index 000000000..7ce8b9774 --- /dev/null +++ b/google/ads/googleads/v10/services/campaign_shared_set_service.proto @@ -0,0 +1,141 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSharedSetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Campaign Shared Set service. + +// Service to manage campaign shared sets. +service CampaignSharedSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes campaign shared sets. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignSharedSetError]() + // [ContextError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCampaignSharedSets(MutateCampaignSharedSetsRequest) returns (MutateCampaignSharedSetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/campaignSharedSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v10.services.CampaignSharedSetService.MutateCampaignSharedSets]. +message MutateCampaignSharedSetsRequest { + // Required. The ID of the customer whose campaign shared sets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign shared sets. + repeated CampaignSharedSetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an campaign shared set. +message CampaignSharedSetOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // shared set. + google.ads.googleads.v10.resources.CampaignSharedSet create = 1; + + // Remove operation: A resource name for the removed campaign shared set is + // expected, in this format: + // + // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSharedSet" + }]; + } +} + +// Response message for a campaign shared set mutate. +message MutateCampaignSharedSetsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCampaignSharedSetResult results = 2; +} + +// The result for the campaign shared set mutate. +message MutateCampaignSharedSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSharedSet" + }]; + + // 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.v10.resources.CampaignSharedSet campaign_shared_set = 2; +} diff --git a/google/ads/googleads/v10/services/conversion_action_service.proto b/google/ads/googleads/v10/services/conversion_action_service.proto new file mode 100644 index 000000000..2c19affa7 --- /dev/null +++ b/google/ads/googleads/v10/services/conversion_action_service.proto @@ -0,0 +1,144 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/conversion_action.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Conversion Action service. + +// Service to manage conversion actions. +service ConversionActionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes conversion actions. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ConversionActionError]() + // [CurrencyCodeError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [StringLengthError]() + rpc MutateConversionActions(MutateConversionActionsRequest) returns (MutateConversionActionsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/conversionActions:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v10.services.ConversionActionService.MutateConversionActions]. +message MutateConversionActionsRequest { + // Required. The ID of the customer whose conversion actions are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion actions. + repeated ConversionActionOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a conversion action. +message ConversionActionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new conversion + // action. + google.ads.googleads.v10.resources.ConversionAction create = 1; + + // Update operation: The conversion action is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.ConversionAction update = 2; + + // Remove operation: A resource name for the removed conversion action is + // expected, in this format: + // + // `customers/{customer_id}/conversionActions/{conversion_action_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + } +} + +// Response message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v10.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 + // operations. If any errors occur outside the operations (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateConversionActionResult results = 2; +} + +// The result for the conversion action mutate. +message MutateConversionActionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + + // 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.v10.resources.ConversionAction conversion_action = 2; +} diff --git a/google/ads/googleads/v10/services/conversion_adjustment_upload_service.proto b/google/ads/googleads/v10/services/conversion_adjustment_upload_service.proto new file mode 100644 index 000000000..3aa68eec7 --- /dev/null +++ b/google/ads/googleads/v10/services/conversion_adjustment_upload_service.proto @@ -0,0 +1,200 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/offline_user_data.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionAdjustmentUploadServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Service to upload conversion adjustments. +service ConversionAdjustmentUploadService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Processes the given conversion adjustments. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [PartialFailureError]() + // [QuotaError]() + // [RequestError]() + rpc UploadConversionAdjustments(UploadConversionAdjustmentsRequest) returns (UploadConversionAdjustmentsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:uploadConversionAdjustments" + body: "*" + }; + option (google.api.method_signature) = "customer_id,conversion_adjustments,partial_failure"; + } +} + +// Request message for +// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v10.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. +message UploadConversionAdjustmentsRequest { + // Required. The ID of the customer performing the upload. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The conversion adjustments that are being uploaded. + repeated ConversionAdjustment conversion_adjustments = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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. This should always be + // set to true. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// Response message for +// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v10.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 + // errors occur outside the adjustments (e.g. auth errors), we return an RPC + // level error. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + google.rpc.Status partial_failure_error = 1; + + // Returned for successfully processed conversion adjustments. Proto will be + // empty for rows that received an error. Results are not returned when + // validate_only is true. + repeated ConversionAdjustmentResult results = 2; +} + +// A conversion adjustment. +message ConversionAdjustment { + // For adjustments, uniquely identifies a conversion that was reported + // without an order ID specified. If the adjustment_type is ENHANCEMENT, this + // value is optional but may be set in addition to the order_id. + GclidDateTimePair gclid_date_time_pair = 12; + + // The order ID of the conversion to be adjusted. If the conversion was + // reported with an order ID specified, that order ID must be used as the + // identifier here. The order ID is required for enhancements. + optional string order_id = 13; + + // Resource name of the conversion action associated with this conversion + // adjustment. Note: Although this resource name consists of a customer id and + // a conversion action id, validation will ignore the customer id and use the + // conversion action id as the sole identifier of the conversion action. + optional string conversion_action = 8; + + // The date time at which the adjustment occurred. Must be after the + // conversion_date_time. The timezone must be specified. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string adjustment_date_time = 9; + + // The adjustment type. + google.ads.googleads.v10.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5; + + // Information needed to restate the conversion's value. + // Required for restatements. Should not be supplied for retractions. An error + // will be returned if provided for a retraction. + // NOTE: If you want to upload a second restatement with a different adjusted + // value, it must have a new, more recent, adjustment occurrence time. + // Otherwise, it will be treated as a duplicate of the previous restatement + // and ignored. + RestatementValue restatement_value = 6; + + // The user identifiers to enhance the original conversion. + // ConversionAdjustmentUploadService only accepts user identifiers in + // enhancements. The maximum number of user identifiers for each + // enhancement is 5. + repeated google.ads.googleads.v10.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. + // Example, "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X)". User + // agent can only be specified in enhancements with user identifiers. This + // should match the user agent of the request that sent the original + // conversion so the conversion and its enhancement are either both attributed + // as same-device or both attributed as cross-device. + optional string user_agent = 11; +} + +// Contains information needed to restate a conversion's value. +message RestatementValue { + // The restated conversion value. This is the value of the conversion after + // restatement. For example, to change the value of a conversion from 100 to + // 70, an adjusted value of 70 should be reported. + // NOTE: If you want to upload a second restatement with a different adjusted + // value, it must have a new, more recent, adjustment occurrence time. + // Otherwise, it will be treated as a duplicate of the previous restatement + // and ignored. + optional double adjusted_value = 3; + + // The currency of the restated value. If not provided, then the default + // currency from the conversion action is used, and if that is not set then + // the account currency is used. This is the ISO 4217 3-character currency + // code e.g. USD or EUR. + optional string currency_code = 4; +} + +// Uniquely identifies a conversion that was reported without an order ID +// specified. +message GclidDateTimePair { + // Google click ID (gclid) associated with the original conversion for this + // adjustment. + optional string gclid = 3; + + // The date time at which the original conversion for this adjustment + // occurred. The timezone must be specified. The format is "yyyy-mm-dd + // hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 4; +} + +// Information identifying a successfully processed ConversionAdjustment. +message ConversionAdjustmentResult { + // The gclid and conversion date time of the conversion. + GclidDateTimePair gclid_date_time_pair = 9; + + // The order ID of the conversion to be adjusted. + string order_id = 10; + + // Resource name of the conversion action associated with this conversion + // adjustment. + optional string conversion_action = 7; + + // The date time at which the adjustment occurred. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string adjustment_date_time = 8; + + // The adjustment type. + google.ads.googleads.v10.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5; +} diff --git a/google/ads/googleads/v10/services/conversion_custom_variable_service.proto b/google/ads/googleads/v10/services/conversion_custom_variable_service.proto new file mode 100644 index 000000000..22f28417e --- /dev/null +++ b/google/ads/googleads/v10/services/conversion_custom_variable_service.proto @@ -0,0 +1,132 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/conversion_custom_variable.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionCustomVariableServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Conversion Custom Variable service. + +// Service to manage conversion custom variables. +service ConversionCustomVariableService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates conversion custom variables. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ConversionCustomVariableError]() + // [DatabaseError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateConversionCustomVariables(MutateConversionCustomVariablesRequest) returns (MutateConversionCustomVariablesResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/conversionCustomVariables:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v10.services.ConversionCustomVariableService.MutateConversionCustomVariables]. +message MutateConversionCustomVariablesRequest { + // Required. The ID of the customer whose conversion custom variables are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion custom + // variables. + repeated ConversionCustomVariableOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update) on a conversion custom variable. +message ConversionCustomVariableOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new conversion + // custom variable. + google.ads.googleads.v10.resources.ConversionCustomVariable create = 1; + + // Update operation: The conversion custom variable is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.ConversionCustomVariable update = 2; + } +} + +// Response message for +// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v10.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 + // operations. If any errors occur outside the operations (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateConversionCustomVariableResult results = 2; +} + +// The result for the conversion custom variable mutate. +message MutateConversionCustomVariableResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionCustomVariable" + }]; + + // 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.v10.resources.ConversionCustomVariable conversion_custom_variable = 2; +} diff --git a/google/ads/googleads/v10/services/conversion_goal_campaign_config_service.proto b/google/ads/googleads/v10/services/conversion_goal_campaign_config_service.proto new file mode 100644 index 000000000..d582a0af4 --- /dev/null +++ b/google/ads/googleads/v10/services/conversion_goal_campaign_config_service.proto @@ -0,0 +1,103 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionGoalCampaignConfigServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the ConversionGoalCampaignConfig service. + +// Service to manage conversion goal campaign config. +service ConversionGoalCampaignConfigService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes conversion goal campaign config. Operation + // statuses are returned. + rpc MutateConversionGoalCampaignConfigs(MutateConversionGoalCampaignConfigsRequest) returns (MutateConversionGoalCampaignConfigsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfig][]. +message MutateConversionGoalCampaignConfigsRequest { + // Required. The ID of the customer whose custom conversion goals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion goal campaign + // config. + repeated ConversionGoalCampaignConfigOperation operations = 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; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (update) on a conversion goal campaign config. +message ConversionGoalCampaignConfigOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; + + // The mutate operation. + oneof operation { + // Update operation: The conversion goal campaign config is expected to have + // a valid resource name. + google.ads.googleads.v10.resources.ConversionGoalCampaignConfig update = 1; + } +} + +// Response message for a conversion goal campaign config mutate. +message MutateConversionGoalCampaignConfigsResponse { + // All results for the mutate. + repeated MutateConversionGoalCampaignConfigResult results = 1; +} + +// The result for the conversion goal campaign config mutate. +message MutateConversionGoalCampaignConfigResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionGoalCampaignConfig" + }]; + + // 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.v10.resources.ConversionGoalCampaignConfig conversion_goal_campaign_config = 2; +} diff --git a/google/ads/googleads/v10/services/conversion_upload_service.proto b/google/ads/googleads/v10/services/conversion_upload_service.proto new file mode 100644 index 000000000..707407144 --- /dev/null +++ b/google/ads/googleads/v10/services/conversion_upload_service.proto @@ -0,0 +1,347 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/offline_user_data.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionUploadServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Service to upload conversions. +service ConversionUploadService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Processes the given click conversions. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ConversionUploadError]() + // [HeaderError]() + // [InternalError]() + // [PartialFailureError]() + // [QuotaError]() + // [RequestError]() + rpc UploadClickConversions(UploadClickConversionsRequest) returns (UploadClickConversionsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:uploadClickConversions" + body: "*" + }; + option (google.api.method_signature) = "customer_id,conversions,partial_failure"; + } + + // Processes the given call conversions. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [PartialFailureError]() + // [QuotaError]() + // [RequestError]() + rpc UploadCallConversions(UploadCallConversionsRequest) returns (UploadCallConversionsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:uploadCallConversions" + body: "*" + }; + option (google.api.method_signature) = "customer_id,conversions,partial_failure"; + } +} + +// Request message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v10.services.ConversionUploadService.UploadClickConversions]. +message UploadClickConversionsRequest { + // Required. The ID of the customer performing the upload. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The conversions that are being uploaded. + repeated ClickConversion conversions = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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. + // This should always be set to true. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// Response message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v10.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 + // outside the conversions (e.g. auth errors), we return an RPC level error. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + google.rpc.Status partial_failure_error = 1; + + // Returned for successfully processed conversions. Proto will be empty for + // rows that received an error. Results are not returned when validate_only is + // true. + repeated ClickConversionResult results = 2; +} + +// Request message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v10.services.ConversionUploadService.UploadCallConversions]. +message UploadCallConversionsRequest { + // Required. The ID of the customer performing the upload. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The conversions that are being uploaded. + repeated CallConversion conversions = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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. + // This should always be set to true. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// Response message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v10.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 + // outside the conversions (e.g. auth errors), we return an RPC level error. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + google.rpc.Status partial_failure_error = 1; + + // Returned for successfully processed conversions. Proto will be empty for + // rows that received an error. Results are not returned when validate_only is + // true. + repeated CallConversionResult results = 2; +} + +// A click conversion. +message ClickConversion { + // The Google click ID (gclid) associated with this conversion. + optional string gclid = 9; + + // The click identifier for clicks associated with app conversions and + // originating from iOS devices starting with iOS14. + string gbraid = 18; + + // The click identifier for clicks associated with web conversions and + // originating from iOS devices starting with iOS14. + string wbraid = 19; + + // Resource name of the conversion action associated with this conversion. + // Note: Although this resource name consists of a customer id and a + // conversion action id, validation will ignore the customer id and use the + // conversion action id as the sole identifier of the conversion action. + optional string conversion_action = 10; + + // The date time at which the conversion occurred. Must be after + // the click time. The timezone must be specified. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 11; + + // The value of the conversion for the advertiser. + optional double conversion_value = 12; + + // Currency associated with the conversion value. This is the ISO 4217 + // 3-character currency code. For example: USD, EUR. + optional string currency_code = 13; + + // The order ID associated with the conversion. An order id can only be used + // for one conversion per conversion action. + optional string order_id = 14; + + // Additional data about externally attributed conversions. This field + // is required for conversions with an externally attributed conversion + // action, but should not be set otherwise. + ExternalAttributionData external_attribution_data = 7; + + // The custom variables associated with this conversion. + repeated CustomVariable custom_variables = 15; + + // The cart data associated with this conversion. + CartData cart_data = 16; + + // 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.v10.common.UserIdentifier user_identifiers = 17; + + // The environment this conversion was recorded on. e.g. App or Web. + google.ads.googleads.v10.enums.ConversionEnvironmentEnum.ConversionEnvironment conversion_environment = 20; +} + +// A call conversion. +message CallConversion { + // The caller id from which this call was placed. Caller id is expected to be + // in E.164 format with preceding '+' sign. e.g. "+16502531234". + optional string caller_id = 7; + + // The date time at which the call occurred. The timezone must be specified. + // The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", + // e.g. "2019-01-01 12:32:45-08:00". + optional string call_start_date_time = 8; + + // Resource name of the conversion action associated with this conversion. + // Note: Although this resource name consists of a customer id and a + // conversion action id, validation will ignore the customer id and use the + // conversion action id as the sole identifier of the conversion action. + optional string conversion_action = 9; + + // The date time at which the conversion occurred. Must be after the call + // time. The timezone must be specified. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 10; + + // The value of the conversion for the advertiser. + optional double conversion_value = 11; + + // Currency associated with the conversion value. This is the ISO 4217 + // 3-character currency code. For example: USD, EUR. + optional string currency_code = 12; + + // The custom variables associated with this conversion. + repeated CustomVariable custom_variables = 13; +} + +// Contains additional information about externally attributed conversions. +message ExternalAttributionData { + // Represents the fraction of the conversion that is attributed to the + // Google Ads click. + optional double external_attribution_credit = 3; + + // Specifies the attribution model name. + optional string external_attribution_model = 4; +} + +// Identifying information for a successfully processed ClickConversion. +message ClickConversionResult { + // The Google Click ID (gclid) associated with this conversion. + optional string gclid = 4; + + // The click identifier for clicks associated with app conversions and + // originating from iOS devices starting with iOS14. + string gbraid = 8; + + // The click identifier for clicks associated with web conversions and + // originating from iOS devices starting with iOS14. + string wbraid = 9; + + // Resource name of the conversion action associated with this conversion. + optional string conversion_action = 5; + + // The date time at which the conversion occurred. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 6; + + // 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.v10.common.UserIdentifier user_identifiers = 7; +} + +// Identifying information for a successfully processed CallConversionUpload. +message CallConversionResult { + // The caller id from which this call was placed. Caller id is expected to be + // in E.164 format with preceding '+' sign. + optional string caller_id = 5; + + // The date time at which the call occurred. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string call_start_date_time = 6; + + // Resource name of the conversion action associated with this conversion. + optional string conversion_action = 7; + + // The date time at which the conversion occurred. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 8; +} + +// A custom variable. +message CustomVariable { + // Resource name of the custom variable associated with this conversion. + // Note: Although this resource name consists of a customer id and a + // conversion custom variable id, validation will ignore the customer id and + // use the conversion custom variable id as the sole identifier of the + // conversion custom variable. + string conversion_custom_variable = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionCustomVariable" + }]; + + // The value string of this custom variable. + // The value of the custom variable should not contain private customer data, + // such as email addresses or phone numbers. + string value = 2; +} + +// Contains additional information about cart data. +message CartData { + // Contains data of the items purchased. + message Item { + // The shopping id of the item. Must be equal to the Merchant Center product + // identifier. + string product_id = 1; + + // Number of items sold. + int32 quantity = 2; + + // Unit price excluding tax, shipping, and any transaction + // level discounts. The currency code is the same as that in the + // ClickConversion message. + double unit_price = 3; + } + + // The Merchant Center ID where the items are uploaded. + int64 merchant_id = 6; + + // The country code associated with the feed where the items are uploaded. + string feed_country_code = 2; + + // The language code associated with the feed where the items are uploaded. + string feed_language_code = 3; + + // Sum of all transaction level discounts, such as free shipping and + // coupon discounts for the whole cart. The currency code is the same + // as that in the ClickConversion message. + double local_transaction_cost = 4; + + // Data of the items purchased. + repeated Item items = 5; +} diff --git a/google/ads/googleads/v10/services/conversion_value_rule_service.proto b/google/ads/googleads/v10/services/conversion_value_rule_service.proto new file mode 100644 index 000000000..8ebe316aa --- /dev/null +++ b/google/ads/googleads/v10/services/conversion_value_rule_service.proto @@ -0,0 +1,128 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/conversion_value_rule.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Conversion Value Rule service. + +// Service to manage conversion value rules. +service ConversionValueRuleService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes conversion value rules. Operation statuses are + // returned. + rpc MutateConversionValueRules(MutateConversionValueRulesRequest) returns (MutateConversionValueRulesResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/conversionValueRules:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v10.services.ConversionValueRuleService.MutateConversionValueRules]. +message MutateConversionValueRulesRequest { + // Required. The ID of the customer whose conversion value rules are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion value rules. + repeated ConversionValueRuleOperation 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 = 5; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 3; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (create, update, remove) on a conversion value rule. +message ConversionValueRuleOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new conversion + // value rule. + google.ads.googleads.v10.resources.ConversionValueRule create = 1; + + // Update operation: The conversion value rule is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.ConversionValueRule update = 2; + + // Remove operation: A resource name for the removed conversion value rule + // is expected, in this format: + // + // `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRule" + }]; + } +} + +// Response message for +// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v10.services.ConversionValueRuleService.MutateConversionValueRules]. +message MutateConversionValueRulesResponse { + // All results for the mutate. + repeated MutateConversionValueRuleResult results = 2; + + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; +} + +// The result for the conversion value rule mutate. +message MutateConversionValueRuleResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRule" + }]; + + // 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.v10.resources.ConversionValueRule conversion_value_rule = 2; +} diff --git a/google/ads/googleads/v10/services/conversion_value_rule_set_service.proto b/google/ads/googleads/v10/services/conversion_value_rule_set_service.proto new file mode 100644 index 000000000..11cc208f0 --- /dev/null +++ b/google/ads/googleads/v10/services/conversion_value_rule_set_service.proto @@ -0,0 +1,128 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/conversion_value_rule_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleSetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Conversion Value Rule Set service. + +// Service to manage conversion value rule sets. +service ConversionValueRuleSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes conversion value rule sets. Operation statuses + // are returned. + rpc MutateConversionValueRuleSets(MutateConversionValueRuleSetsRequest) returns (MutateConversionValueRuleSetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/conversionValueRuleSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v10.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. +message MutateConversionValueRuleSetsRequest { + // Required. The ID of the customer whose conversion value rule sets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion value rule sets. + repeated ConversionValueRuleSetOperation 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 = 5; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 3; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (create, update, remove) on a conversion value rule set. +message ConversionValueRuleSetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new conversion + // value rule set. + google.ads.googleads.v10.resources.ConversionValueRuleSet create = 1; + + // Update operation: The conversion value rule set is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.ConversionValueRuleSet update = 2; + + // Remove operation: A resource name for the removed conversion value rule + // set is expected, in this format: + // + // `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRuleSet" + }]; + } +} + +// Response message for +// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v10.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. +message MutateConversionValueRuleSetsResponse { + // All results for the mutate. + repeated MutateConversionValueRuleSetResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the conversion value rule set mutate. +message MutateConversionValueRuleSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRuleSet" + }]; + + // 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.v10.resources.ConversionValueRuleSet conversion_value_rule_set = 2; +} diff --git a/google/ads/googleads/v10/services/custom_audience_service.proto b/google/ads/googleads/v10/services/custom_audience_service.proto new file mode 100644 index 000000000..ca4ee6be5 --- /dev/null +++ b/google/ads/googleads/v10/services/custom_audience_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Custom Audience service. + +// Service to manage custom audiences. +service CustomAudienceService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates custom audiences. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CustomAudienceError]() + // [CustomInterestError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [OperationAccessDeniedError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomAudiences(MutateCustomAudiencesRequest) returns (MutateCustomAudiencesResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customAudiences:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomAudienceService.MutateCustomAudiences][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual custom audiences. + repeated CustomAudienceOperation operations = 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 operation (create, update) on a custom audience. +message CustomAudienceOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new custom + // audience. + google.ads.googleads.v10.resources.CustomAudience create = 1; + + // Update operation: The custom audience is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.CustomAudience update = 2; + + // Remove operation: A resource name for the removed custom audience is + // expected, in this format: + // + // `customers/{customer_id}/customAudiences/{custom_audience_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomAudience" + }]; + } +} + +// Response message for custom audience mutate. +message MutateCustomAudiencesResponse { + // All results for the mutate. + repeated MutateCustomAudienceResult results = 1; +} + +// The result for the custom audience mutate. +message MutateCustomAudienceResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomAudience" + }]; +} diff --git a/google/ads/googleads/v10/services/custom_conversion_goal_service.proto b/google/ads/googleads/v10/services/custom_conversion_goal_service.proto new file mode 100644 index 000000000..121632fa1 --- /dev/null +++ b/google/ads/googleads/v10/services/custom_conversion_goal_service.proto @@ -0,0 +1,114 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomConversionGoalServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CustomConversionGoal service. + +// Service to manage custom conversion goal. +service CustomConversionGoalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes custom conversion goals. Operation statuses + // are returned. + rpc MutateCustomConversionGoals(MutateCustomConversionGoalsRequest) returns (MutateCustomConversionGoalsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customConversionGoals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomConversionGoalService.MutateCustomConversionGoals][google.ads.googleads.v10.services.CustomConversionGoalService.MutateCustomConversionGoals]. +message MutateCustomConversionGoalsRequest { + // Required. The ID of the customer whose custom conversion goals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual custom conversion goal. + repeated CustomConversionGoalOperation operations = 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; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (create, remove) on a custom conversion goal. +message CustomConversionGoalOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new custom + // conversion goal + google.ads.googleads.v10.resources.CustomConversionGoal create = 1; + + // Update operation: The custom conversion goal is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.CustomConversionGoal update = 2; + + // Remove operation: A resource name for the removed custom conversion goal + // is expected, in this format: + // + // 'customers/{customer_id}/conversionActions/{ConversionGoal.custom_goal_config.conversion_type_ids}' + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomConversionGoal" + }]; + } +} + +// Response message for a custom conversion goal mutate. +message MutateCustomConversionGoalsResponse { + // All results for the mutate. + repeated MutateCustomConversionGoalResult results = 1; +} + +// The result for the custom conversion goal mutate. +message MutateCustomConversionGoalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomConversionGoal" + }]; + + // 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.v10.resources.CustomConversionGoal custom_conversion_goal = 2; +} diff --git a/google/ads/googleads/v10/services/custom_interest_service.proto b/google/ads/googleads/v10/services/custom_interest_service.proto new file mode 100644 index 000000000..5c451a5df --- /dev/null +++ b/google/ads/googleads/v10/services/custom_interest_service.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Custom Interest service. + +// Service to manage custom interests. +service CustomInterestService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates custom interests. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CriterionError]() + // [CustomInterestError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RequestError]() + // [StringLengthError]() + rpc MutateCustomInterests(MutateCustomInterestsRequest) returns (MutateCustomInterestsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customInterests:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomInterestService.MutateCustomInterests][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual custom interests. + repeated CustomInterestOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// A single operation (create, update) on a custom interest. +message CustomInterestOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new custom + // interest. + google.ads.googleads.v10.resources.CustomInterest create = 1; + + // Update operation: The custom interest is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.CustomInterest update = 2; + } +} + +// Response message for custom interest mutate. +message MutateCustomInterestsResponse { + // All results for the mutate. + repeated MutateCustomInterestResult results = 2; +} + +// The result for the custom interest mutate. +message MutateCustomInterestResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomInterest" + }]; +} diff --git a/google/ads/googleads/v10/services/customer_asset_service.proto b/google/ads/googleads/v10/services/customer_asset_service.proto new file mode 100644 index 000000000..9c5ea6a4a --- /dev/null +++ b/google/ads/googleads/v10/services/customer_asset_service.proto @@ -0,0 +1,137 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/customer_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerAssetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CustomerAsset service. + +// Service to manage customer assets. +service CustomerAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes customer assets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerAssets(MutateCustomerAssetsRequest) returns (MutateCustomerAssetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomerAssetService.MutateCustomerAssets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual customer assets. + repeated CustomerAssetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a customer asset. +message CustomerAssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer + // asset. + google.ads.googleads.v10.resources.CustomerAsset create = 1; + + // Update operation: The customer asset is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.CustomerAsset update = 3; + + // Remove operation: A resource name for the removed customer asset is + // expected, in this format: + // + // `customers/{customer_id}/customerAssets/{asset_id}~{field_type}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerAsset" + }]; + } +} + +// Response message for a customer asset mutate. +message MutateCustomerAssetsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateCustomerAssetResult results = 2; +} + +// The result for the customer asset mutate. +message MutateCustomerAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerAsset" + }]; + + // 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.v10.resources.CustomerAsset customer_asset = 2; +} diff --git a/google/ads/googleads/v10/services/customer_client_link_service.proto b/google/ads/googleads/v10/services/customer_client_link_service.proto new file mode 100644 index 000000000..592be55d7 --- /dev/null +++ b/google/ads/googleads/v10/services/customer_client_link_service.proto @@ -0,0 +1,104 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerClientLinkServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Service to manage customer client links. +service CustomerClientLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates a customer client link. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [ManagerLinkError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerClientLink(MutateCustomerClientLinkRequest) returns (MutateCustomerClientLinkResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerClientLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v10.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]; + + // Required. The operation to perform on the individual CustomerClientLink. + CustomerClientLinkOperation 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 operation (create, update) on a CustomerClientLink. +message CustomerClientLinkOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new link. + google.ads.googleads.v10.resources.CustomerClientLink create = 1; + + // Update operation: The link is expected to have a valid resource name. + google.ads.googleads.v10.resources.CustomerClientLink update = 2; + } +} + +// Response message for a CustomerClientLink mutate. +message MutateCustomerClientLinkResponse { + // A result that identifies the resource affected by the mutate request. + MutateCustomerClientLinkResult result = 1; +} + +// The result for a single customer client link mutate. +message MutateCustomerClientLinkResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerClientLink" + }]; +} diff --git a/google/ads/googleads/v10/services/customer_conversion_goal_service.proto b/google/ads/googleads/v10/services/customer_conversion_goal_service.proto new file mode 100644 index 000000000..35bcf7b1c --- /dev/null +++ b/google/ads/googleads/v10/services/customer_conversion_goal_service.proto @@ -0,0 +1,92 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerConversionGoalServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CustomerConversionGoal service. + +// Service to manage customer conversion goal. +service CustomerConversionGoalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes customer conversion goals. Operation statuses + // are returned. + rpc MutateCustomerConversionGoals(MutateCustomerConversionGoalsRequest) returns (MutateCustomerConversionGoalsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerConversionGoals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomerConversionGoalService.MutateCustomerConversionGoals][google.ads.googleads.v10.services.CustomerConversionGoalService.MutateCustomerConversionGoals]. +message MutateCustomerConversionGoalsRequest { + // Required. The ID of the customer whose customer conversion goals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customer conversion goal. + repeated CustomerConversionGoalOperation operations = 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 operation (update) on a customer conversion goal. +message CustomerConversionGoalOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; + + // The mutate operation. + oneof operation { + // Update operation: The customer conversion goal is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.CustomerConversionGoal update = 1; + } +} + +// Response message for a customer conversion goal mutate. +message MutateCustomerConversionGoalsResponse { + // All results for the mutate. + repeated MutateCustomerConversionGoalResult results = 1; +} + +// The result for the customer conversion goal mutate. +message MutateCustomerConversionGoalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerConversionGoal" + }]; +} diff --git a/google/ads/googleads/v10/services/customer_customizer_service.proto b/google/ads/googleads/v10/services/customer_customizer_service.proto new file mode 100644 index 000000000..c8cce1917 --- /dev/null +++ b/google/ads/googleads/v10/services/customer_customizer_service.proto @@ -0,0 +1,118 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerCustomizerServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CustomerCustomizer service. + +// Service to manage customer customizer +service CustomerCustomizerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes customer customizers. Operation statuses are + // returned. + rpc MutateCustomerCustomizers(MutateCustomerCustomizersRequest) returns (MutateCustomerCustomizersResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/CustomerCustomizers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomerCustomizerService.MutateCustomerCustomizers][google.ads.googleads.v10.services.CustomerCustomizerService.MutateCustomerCustomizers]. +message MutateCustomerCustomizersRequest { + // Required. The ID of the customer whose customer customizers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customer customizers. + repeated CustomerCustomizerOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message CustomerCustomizerOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer + // customizer + google.ads.googleads.v10.resources.CustomerCustomizer create = 1; + + // Remove operation: A resource name for the removed customer customizer is + // expected, in this format: + // `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerCustomizer" + }]; + } +} + +// Response message for an customizer attribute mutate. +message MutateCustomerCustomizersResponse { + // All results for the mutate. + repeated MutateCustomerCustomizerResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the customizer attribute mutate. +message MutateCustomerCustomizerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerCustomizer" + }]; + + // 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.v10.resources.CustomerCustomizer customer_customizer = 2; +} diff --git a/google/ads/googleads/v10/services/customer_extension_setting_service.proto b/google/ads/googleads/v10/services/customer_extension_setting_service.proto new file mode 100644 index 000000000..a217afe3b --- /dev/null +++ b/google/ads/googleads/v10/services/customer_extension_setting_service.proto @@ -0,0 +1,156 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/customer_extension_setting.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerExtensionSettingServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CustomerExtensionSetting service. + +// Service to manage customer extension settings. +service CustomerExtensionSettingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes customer extension settings. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [ExtensionSettingError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateCustomerExtensionSettings(MutateCustomerExtensionSettingsRequest) returns (MutateCustomerExtensionSettingsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerExtensionSettings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v10.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings]. +message MutateCustomerExtensionSettingsRequest { + // Required. The ID of the customer whose customer extension settings are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customer extension + // settings. + repeated CustomerExtensionSettingOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a customer extension setting. +message CustomerExtensionSettingOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer + // extension setting. + google.ads.googleads.v10.resources.CustomerExtensionSetting create = 1; + + // Update operation: The customer extension setting is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.CustomerExtensionSetting update = 2; + + // Remove operation: A resource name for the removed customer extension + // setting is expected, in this format: + // + // `customers/{customer_id}/customerExtensionSettings/{extension_type}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerExtensionSetting" + }]; + } +} + +// Response message for a customer extension setting mutate. +message MutateCustomerExtensionSettingsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCustomerExtensionSettingResult results = 2; +} + +// The result for the customer extension setting mutate. +message MutateCustomerExtensionSettingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerExtensionSetting" + }]; + + // 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.v10.resources.CustomerExtensionSetting customer_extension_setting = 2; +} diff --git a/google/ads/googleads/v10/services/customer_feed_service.proto b/google/ads/googleads/v10/services/customer_feed_service.proto new file mode 100644 index 000000000..4a48a10f2 --- /dev/null +++ b/google/ads/googleads/v10/services/customer_feed_service.proto @@ -0,0 +1,149 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/customer_feed.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerFeedServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CustomerFeed service. + +// Service to manage customer feeds. +service CustomerFeedService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes customer feeds. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CustomerFeedError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCustomerFeeds(MutateCustomerFeedsRequest) returns (MutateCustomerFeedsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerFeeds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual customer feeds. + repeated CustomerFeedOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a customer feed. +message CustomerFeedOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer feed. + google.ads.googleads.v10.resources.CustomerFeed create = 1; + + // Update operation: The customer feed is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.CustomerFeed update = 2; + + // Remove operation: A resource name for the removed customer feed is + // expected, in this format: + // + // `customers/{customer_id}/customerFeeds/{feed_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerFeed" + }]; + } +} + +// Response message for a customer feed mutate. +message MutateCustomerFeedsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCustomerFeedResult results = 2; +} + +// The result for the customer feed mutate. +message MutateCustomerFeedResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerFeed" + }]; + + // 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.v10.resources.CustomerFeed customer_feed = 2; +} diff --git a/google/ads/googleads/v10/services/customer_label_service.proto b/google/ads/googleads/v10/services/customer_label_service.proto new file mode 100644 index 000000000..07bedd9ce --- /dev/null +++ b/google/ads/googleads/v10/services/customer_label_service.proto @@ -0,0 +1,119 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerLabelServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Customer Label service. + +// Service to manage labels on customers. +service CustomerLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes customer-label relationships. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [HeaderError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerLabels(MutateCustomerLabelsRequest) returns (MutateCustomerLabelsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v10.services.CustomerLabelService.MutateCustomerLabels]. +message MutateCustomerLabelsRequest { + // Required. ID of the customer whose customer-label relationships are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on customer-label relationships. + repeated CustomerLabelOperation 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; +} + +// A single operation (create, remove) on a customer-label relationship. +message CustomerLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer-label + // relationship. + google.ads.googleads.v10.resources.CustomerLabel create = 1; + + // Remove operation: A resource name for the customer-label relationship + // being removed, in this format: + // + // `customers/{customer_id}/customerLabels/{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerLabel" + }]; + } +} + +// Response message for a customer labels mutate. +message MutateCustomerLabelsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCustomerLabelResult results = 2; +} + +// The result for a customer label mutate. +message MutateCustomerLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerLabel" + }]; +} diff --git a/google/ads/googleads/v10/services/customer_manager_link_service.proto b/google/ads/googleads/v10/services/customer_manager_link_service.proto new file mode 100644 index 000000000..88346e6b1 --- /dev/null +++ b/google/ads/googleads/v10/services/customer_manager_link_service.proto @@ -0,0 +1,157 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerManagerLinkServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Service to manage customer-manager links. +service CustomerManagerLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Updates customer manager links. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [ManagerLinkError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerManagerLink(MutateCustomerManagerLinkRequest) returns (MutateCustomerManagerLinkResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerManagerLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Moves a client customer to a new manager customer. + // This simplifies the complex request that requires two operations to move + // a client customer to a new manager. i.e: + // 1. Update operation with Status INACTIVE (previous manager) and, + // 2. Update operation with Status ACTIVE (new manager). + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MoveManagerLink(MoveManagerLinkRequest) returns (MoveManagerLinkResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + body: "*" + }; + option (google.api.method_signature) = "customer_id,previous_customer_manager_link,new_manager"; + } +} + +// Request message for [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v10.services.CustomerManagerLinkService.MutateCustomerManagerLink]. +message MutateCustomerManagerLinkRequest { + // Required. The ID of the customer whose customer manager links are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customer manager links. + repeated CustomerManagerLinkOperation operations = 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; +} + +// Request message for [CustomerManagerLinkService.MoveManagerLink][google.ads.googleads.v10.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]; + + // Required. The resource name of the previous CustomerManagerLink. + // The resource name has the form: + // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}` + string previous_customer_manager_link = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource name of the new manager customer that the client wants to move + // to. Customer resource names have the format: "customers/{customer_id}" + string new_manager = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// Updates the status of a CustomerManagerLink. +// The following actions are possible: +// 1. Update operation with status ACTIVE accepts a pending invitation. +// 2. Update operation with status REFUSED declines a pending invitation. +// 3. Update operation with status INACTIVE terminates link to manager. +message CustomerManagerLinkOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Update operation: The link is expected to have a valid resource name. + google.ads.googleads.v10.resources.CustomerManagerLink update = 2; + } +} + +// Response message for a CustomerManagerLink mutate. +message MutateCustomerManagerLinkResponse { + // A result that identifies the resource affected by the mutate request. + repeated MutateCustomerManagerLinkResult results = 1; +} + +// Response message for a CustomerManagerLink moveManagerLink. +message MoveManagerLinkResponse { + // Returned for successful operations. Represents a CustomerManagerLink + // resource of the newly created link between client customer and new manager + // customer. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerManagerLink" + }]; +} + +// The result for the customer manager link mutate. +message MutateCustomerManagerLinkResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerManagerLink" + }]; +} diff --git a/google/ads/googleads/v10/services/customer_negative_criterion_service.proto b/google/ads/googleads/v10/services/customer_negative_criterion_service.proto new file mode 100644 index 000000000..03480990a --- /dev/null +++ b/google/ads/googleads/v10/services/customer_negative_criterion_service.proto @@ -0,0 +1,128 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerNegativeCriterionServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Customer Negative Criterion service. + +// Service to manage customer negative criteria. +service CustomerNegativeCriterionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes criteria. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CriterionError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerNegativeCriteria(MutateCustomerNegativeCriteriaRequest) returns (MutateCustomerNegativeCriteriaResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerNegativeCriteria:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual criteria. + repeated CustomerNegativeCriterionOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create or remove) on a customer level negative criterion. +message CustomerNegativeCriterionOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new criterion. + google.ads.googleads.v10.resources.CustomerNegativeCriterion create = 1; + + // Remove operation: A resource name for the removed criterion is expected, + // in this format: + // + // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerNegativeCriterion" + }]; + } +} + +// Response message for customer negative criterion mutate. +message MutateCustomerNegativeCriteriaResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateCustomerNegativeCriteriaResult results = 2; +} + +// The result for the criterion mutate. +message MutateCustomerNegativeCriteriaResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerNegativeCriterion" + }]; + + // 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.v10.resources.CustomerNegativeCriterion customer_negative_criterion = 2; +} diff --git a/google/ads/googleads/v10/services/customer_service.proto b/google/ads/googleads/v10/services/customer_service.proto new file mode 100644 index 000000000..c356d1c38 --- /dev/null +++ b/google/ads/googleads/v10/services/customer_service.proto @@ -0,0 +1,191 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/access_role.proto"; +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Customer service. + +// Service to manage customers. +service CustomerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Updates a customer. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + // [UrlFieldError]() + rpc MutateCustomer(MutateCustomerRequest) returns (MutateCustomerResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } + + // Returns resource names of customers directly accessible by the + // user authenticating the call. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListAccessibleCustomers(ListAccessibleCustomersRequest) returns (ListAccessibleCustomersResponse) { + option (google.api.http) = { + get: "/v10/customers:listAccessibleCustomers" + }; + } + + // Creates a new client under manager. The new client customer is returned. + // + // List of thrown errors: + // [AccessInvitationError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CurrencyCodeError]() + // [HeaderError]() + // [InternalError]() + // [ManagerLinkError]() + // [QuotaError]() + // [RequestError]() + // [StringLengthError]() + // [TimeZoneError]() + rpc CreateCustomerClient(CreateCustomerClientRequest) returns (CreateCustomerClientResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:createCustomerClient" + body: "*" + }; + option (google.api.method_signature) = "customer_id,customer_client"; + } +} + +// Request message for [CustomerService.MutateCustomer][google.ads.googleads.v10.services.CustomerService.MutateCustomer]. +message MutateCustomerRequest { + // Required. The ID of the customer being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform on the customer + CustomerOperation operation = 4 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 5; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 6; +} + +// Request message for [CustomerService.CreateCustomerClient][google.ads.googleads.v10.services.CustomerService.CreateCustomerClient]. +message CreateCustomerClientRequest { + // Required. The ID of the Manager under whom client customer is being created. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The new client customer to create. The resource name on this customer + // will be ignored. + google.ads.googleads.v10.resources.Customer customer_client = 2 [(google.api.field_behavior) = REQUIRED]; + + // Email address of the user who should be invited on the created client + // customer. Accessible only to customers on the allow-list. + optional string email_address = 5; + + // The proposed role of user on the created client customer. + // Accessible only to customers on the allow-list. + google.ads.googleads.v10.enums.AccessRoleEnum.AccessRole access_role = 4; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 6; +} + +// A single update on a customer. +message CustomerOperation { + // Mutate operation. Only updates are supported for customer. + google.ads.googleads.v10.resources.Customer update = 1; + + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; +} + +// Response message for CreateCustomerClient mutate. +message CreateCustomerClientResponse { + // The resource name of the newly created customer client. + string resource_name = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + }]; + + // Link for inviting user to access the created customer. Accessible to + // allowlisted customers only. + string invitation_link = 3; +} + +// Response message for customer mutate. +message MutateCustomerResponse { + // Result for the mutate. + MutateCustomerResult result = 2; +} + +// The result for the customer mutate. +message MutateCustomerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + }]; + + // 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.v10.resources.Customer customer = 2; +} + +// Request message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v10.services.CustomerService.ListAccessibleCustomers]. +message ListAccessibleCustomersRequest { + +} + +// Response message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v10.services.CustomerService.ListAccessibleCustomers]. +message ListAccessibleCustomersResponse { + // Resource name of customers directly accessible by the + // user authenticating the call. + repeated string resource_names = 1; +} diff --git a/google/ads/googleads/v10/services/customer_user_access_invitation_service.proto b/google/ads/googleads/v10/services/customer_user_access_invitation_service.proto new file mode 100644 index 000000000..4e056b625 --- /dev/null +++ b/google/ads/googleads/v10/services/customer_user_access_invitation_service.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessInvitationServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CustomerUserAccessInvitation service. + +// This service manages the access invitation extended to users for a given +// customer. +service CustomerUserAccessInvitationService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes an access invitation. + // + // List of thrown errors: + // [AccessInvitationError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerUserAccessInvitation(MutateCustomerUserAccessInvitationRequest) returns (MutateCustomerUserAccessInvitationResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for +// [CustomerUserAccessInvitation.MutateCustomerUserAccessInvitation][] +message MutateCustomerUserAccessInvitationRequest { + // Required. The ID of the customer whose access invitation is being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform on the access invitation + CustomerUserAccessInvitationOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single operation (create or remove) on customer user access invitation. +message CustomerUserAccessInvitationOperation { + // The mutate operation + oneof operation { + // Create operation: No resource name is expected for the new access + // invitation. + google.ads.googleads.v10.resources.CustomerUserAccessInvitation create = 1; + + // Remove operation: A resource name for the revoke invitation is + // expected, in this format: + // + // `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccessInvitation" + }]; + } +} + +// Response message for access invitation mutate. +message MutateCustomerUserAccessInvitationResponse { + // Result for the mutate. + MutateCustomerUserAccessInvitationResult result = 1; +} + +// The result for the access invitation mutate. +message MutateCustomerUserAccessInvitationResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccessInvitation" + }]; +} diff --git a/google/ads/googleads/v10/services/customer_user_access_service.proto b/google/ads/googleads/v10/services/customer_user_access_service.proto new file mode 100644 index 000000000..9364a9d18 --- /dev/null +++ b/google/ads/googleads/v10/services/customer_user_access_service.proto @@ -0,0 +1,105 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// This service manages the permissions of a user on a given customer. +service CustomerUserAccessService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Updates, removes permission of a user on a given customer. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CustomerUserAccessError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerUserAccess(MutateCustomerUserAccessRequest) returns (MutateCustomerUserAccessResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customerUserAccesses:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Mutate Request for +// [CustomerUserAccessService.MutateCustomerUserAccess][google.ads.googleads.v10.services.CustomerUserAccessService.MutateCustomerUserAccess]. +message MutateCustomerUserAccessRequest { + // Required. The ID of the customer being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform on the customer + CustomerUserAccessOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single operation (update, remove) on customer user access. +message CustomerUserAccessOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Update operation: The customer user access is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.CustomerUserAccess update = 1; + + // Remove operation: A resource name for the removed access is + // expected, in this format: + // + // `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccess" + }]; + } +} + +// Response message for customer user access mutate. +message MutateCustomerUserAccessResponse { + // Result for the mutate. + MutateCustomerUserAccessResult result = 1; +} + +// The result for the customer user access mutate. +message MutateCustomerUserAccessResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccess" + }]; +} diff --git a/google/ads/googleads/v10/services/customizer_attribute_service.proto b/google/ads/googleads/v10/services/customizer_attribute_service.proto new file mode 100644 index 000000000..64754cfa2 --- /dev/null +++ b/google/ads/googleads/v10/services/customizer_attribute_service.proto @@ -0,0 +1,122 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/customizer_attribute.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the CustomizerAttribute service. + +// Service to manage customizer attribute +service CustomizerAttributeService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes customizer attributes. Operation statuses are + // returned. + rpc MutateCustomizerAttributes(MutateCustomizerAttributesRequest) returns (MutateCustomizerAttributesResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/customizerAttributes:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomizerAttributeService.MutateCustomizerAttributes][google.ads.googleads.v10.services.CustomizerAttributeService.MutateCustomizerAttributes]. +message MutateCustomizerAttributesRequest { + // Required. The ID of the customer whose customizer attributes are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customizer attributes. + repeated CustomizerAttributeOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message CustomizerAttributeOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customizer + // attribute + google.ads.googleads.v10.resources.CustomizerAttribute create = 1; + + // Remove operation: A resource name for the removed customizer attribute is + // expected, in this format: + // `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + }]; + } +} + +// Response message for an customizer attribute mutate. +message MutateCustomizerAttributesResponse { + // All results for the mutate. + repeated MutateCustomizerAttributeResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the customizer attribute mutate. +message MutateCustomizerAttributeResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + }]; + + // 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.v10.resources.CustomizerAttribute customizer_attribute = 2; +} diff --git a/google/ads/googleads/v10/services/experiment_arm_service.proto b/google/ads/googleads/v10/services/experiment_arm_service.proto new file mode 100644 index 000000000..d17a65198 --- /dev/null +++ b/google/ads/googleads/v10/services/experiment_arm_service.proto @@ -0,0 +1,134 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/experiment_arm.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentArmServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Experiment Arm service. + +// Service to manage experiment arms. +service ExperimentArmService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes experiment arms. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentArmError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateExperimentArms(MutateExperimentArmsRequest) returns (MutateExperimentArmsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/experimentArms:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [ExperimentArmService.MutateExperimentArms][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual experiment arm. + repeated ExperimentArmOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation on an experiment arm. +message ExperimentArmOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation + google.ads.googleads.v10.resources.ExperimentArm create = 1; + + // Update operation: The experiment arm is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.ExperimentArm update = 2; + + // Remove operation: The experiment arm is expected to have a valid + // resource name, in this format: + // + // `customers/{customer_id}/experiments/{campaign_experiment_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExperimentArm" + }]; + } +} + +// Response message for experiment arm mutate. +message MutateExperimentArmsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateExperimentArmResult results = 2; +} + +// The result for the experiment arm mutate. +message MutateExperimentArmResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExperimentArm" + }]; + + // 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.v10.resources.ExperimentArm experiment_arm = 2; +} diff --git a/google/ads/googleads/v10/services/experiment_service.proto b/google/ads/googleads/v10/services/experiment_service.proto new file mode 100644 index 000000000..13ea236c3 --- /dev/null +++ b/google/ads/googleads/v10/services/experiment_service.proto @@ -0,0 +1,390 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/experiment.proto"; +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/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Experiment service. + +// Service to manage experiments. +service ExperimentService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes experiments. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateExperiments(MutateExperimentsRequest) returns (MutateExperimentsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/experiments:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Immediately ends an experiment, changing the experiment's scheduled + // end date and without waiting for end of day. End date is updated to be the + // time of the request. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc EndExperiment(EndExperimentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v10/{experiment=customers/*/experiments/*}:endExperiment" + body: "*" + }; + option (google.api.method_signature) = "experiment"; + } + + // Returns all errors that occurred during the last Experiment update (either + // scheduling or promotion). + // Supports standard list paging. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListExperimentAsyncErrors(ListExperimentAsyncErrorsRequest) returns (ListExperimentAsyncErrorsResponse) { + option (google.api.http) = { + get: "/v10/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + }; + option (google.api.method_signature) = "resource_name"; + } + + // Graduates an experiment to a full campaign. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc GraduateExperiment(GraduateExperimentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v10/{experiment=customers/*/experiments/*}:graduateExperiment" + body: "*" + }; + option (google.api.method_signature) = "experiment,campaign_budget_mappings"; + } + + // Schedule an experiment. The in design campaign + // will be converted into a real campaign (called the experiment campaign) + // that will begin serving ads if successfully created. + // + // The experiment is scheduled immediately with status INITIALIZING. + // This method returns a long running operation that tracks the forking of the + // in design campaign. If the forking fails, a list of errors can be retrieved + // using the ListExperimentAsyncErrors method. The operation's + // metadata will be a string containing the resource name of the created + // experiment. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [DatabaseError]() + // [DateError]() + // [DateRangeError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc ScheduleExperiment(ScheduleExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v10/{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.v10.services.ScheduleExperimentMetadata" + }; + } + + // Promotes the trial campaign thus applying changes in the trial campaign + // to the base campaign. + // This method returns a long running operation that tracks the promotion of + // the experiment campaign. If it fails, a list of errors can be retrieved + // using the ListExperimentAsyncErrors method. The operation's + // metadata will be a string containing the resource name of the created + // experiment. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc PromoteExperiment(PromoteExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v10/{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.v10.services.PromoteExperimentMetadata" + }; + } +} + +// Request message for [ExperimentService.MutateExperiments][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual experiments. + repeated ExperimentOperation 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; +} + +// A single operation on an experiment. +message ExperimentOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation + google.ads.googleads.v10.resources.Experiment create = 1; + + // Update operation: The experiment is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.Experiment update = 2; + + // Remove operation: The experiment is expected to have a valid + // resource name, in this format: + // + // `customers/{customer_id}/experiments/{campaign_experiment_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + }]; + } +} + +// Response message for experiment mutate. +message MutateExperimentsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateExperimentResult results = 2; +} + +// The result for the campaign experiment mutate. +message MutateExperimentResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + }]; +} + +// Request message for [ExperimentService.EndExperiment][google.ads.googleads.v10.services.ExperimentService.EndExperiment]. +message EndExperimentRequest { + // Required. The resource name of the campaign experiment to end. + string experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// Request message for +// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v10.services.ExperimentService.ListExperimentAsyncErrors]. +message ListExperimentAsyncErrorsRequest { + // Required. The name of the experiment from which to retrieve the async + // errors. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When a page request is too large, the server may decide to + // further limit the number of returned resources. + // The maximum page size is 1000. + int32 page_size = 3; +} + +// Response message for +// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v10.services.ExperimentService.ListExperimentAsyncErrors]. +message ListExperimentAsyncErrorsResponse { + // details of the errors when performing the asynchronous operation. + repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; +} + +// Request message for [ExperimentService.GraduateExperiment][google.ads.googleads.v10.services.ExperimentService.GraduateExperiment]. +message GraduateExperimentRequest { + // Required. The experiment to be graduated. + string experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // Required. List of campaign budget mappings for graduation. Each campaign that + // appears here will graduate, and will be assigned a new budget that is + // paired with it in the mapping. The maximum size is one. + repeated CampaignBudgetMapping campaign_budget_mappings = 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; +} + +// The mapping of experiment campaign and budget to be graduated. +message CampaignBudgetMapping { + // Required. The experiment campaign to graduate. + string experiment_campaign = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Required. The budget that should be attached to the graduating experiment campaign. + string campaign_budget = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + } + ]; +} + +// Request message for [ExperimentService.ScheduleExperiment][google.ads.googleads.v10.services.ExperimentService.ScheduleExperiment]. +message ScheduleExperimentRequest { + // Required. The scheduled experiment. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// The metadata of the scheduled experiment. +message ScheduleExperimentMetadata { + // Required. The scheduled experiment. + string experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; +} + +// Request message for [ExperimentService.PromoteExperiment][google.ads.googleads.v10.services.ExperimentService.PromoteExperiment]. +message PromoteExperimentRequest { + // Required. The resource name of the experiment to promote. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// The metadata of the promoted experiment. +message PromoteExperimentMetadata { + // Required. The promoted experiment. + string experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; +} diff --git a/google/ads/googleads/v10/services/extension_feed_item_service.proto b/google/ads/googleads/v10/services/extension_feed_item_service.proto new file mode 100644 index 000000000..ee9bc3344 --- /dev/null +++ b/google/ads/googleads/v10/services/extension_feed_item_service.proto @@ -0,0 +1,152 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/extension_feed_item.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionFeedItemServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the ExtensionFeedItem service. + +// Service to manage extension feed items. +service ExtensionFeedItemService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes extension feed items. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CountryCodeError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [ExtensionFeedItemError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [ImageError]() + // [InternalError]() + // [LanguageCodeError]() + // [MutateError]() + // [NewResourceCreationError]() + // [OperationAccessDeniedError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateExtensionFeedItems(MutateExtensionFeedItemsRequest) returns (MutateExtensionFeedItemsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/extensionFeedItems:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v10.services.ExtensionFeedItemService.MutateExtensionFeedItems]. +message MutateExtensionFeedItemsRequest { + // Required. The ID of the customer whose extension feed items are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual extension feed items. + repeated ExtensionFeedItemOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an extension feed item. +message ExtensionFeedItemOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new extension + // feed item. + google.ads.googleads.v10.resources.ExtensionFeedItem create = 1; + + // Update operation: The extension feed item is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.ExtensionFeedItem update = 2; + + // Remove operation: A resource name for the removed extension feed item + // is expected, in this format: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + } +} + +// Response message for an extension feed item mutate. +message MutateExtensionFeedItemsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateExtensionFeedItemResult results = 2; +} + +// The result for the extension feed item mutate. +message MutateExtensionFeedItemResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + + // 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.v10.resources.ExtensionFeedItem extension_feed_item = 2; +} diff --git a/google/ads/googleads/v10/services/feed_item_service.proto b/google/ads/googleads/v10/services/feed_item_service.proto new file mode 100644 index 000000000..22495819a --- /dev/null +++ b/google/ads/googleads/v10/services/feed_item_service.proto @@ -0,0 +1,151 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/feed_item.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the FeedItem service. + +// Service to manage feed items. +service FeedItemService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes feed items. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FeedItemError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateFeedItems(MutateFeedItemsRequest) returns (MutateFeedItemsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/feedItems:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedItemService.MutateFeedItems][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual feed items. + repeated FeedItemOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an feed item. +message FeedItemOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed item. + google.ads.googleads.v10.resources.FeedItem create = 1; + + // Update operation: The feed item is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.FeedItem update = 2; + + // Remove operation: A resource name for the removed feed item is + // expected, in this format: + // + // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + }]; + } +} + +// Response message for an feed item mutate. +message MutateFeedItemsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateFeedItemResult results = 2; +} + +// The result for the feed item mutate. +message MutateFeedItemResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + }]; + + // 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.v10.resources.FeedItem feed_item = 2; +} diff --git a/google/ads/googleads/v10/services/feed_item_set_link_service.proto b/google/ads/googleads/v10/services/feed_item_set_link_service.proto new file mode 100644 index 000000000..ad212e5ce --- /dev/null +++ b/google/ads/googleads/v10/services/feed_item_set_link_service.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetLinkServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the FeedItemSetLink service. + +// Service to manage feed item set links. +service FeedItemSetLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes feed item set links. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateFeedItemSetLinks(MutateFeedItemSetLinksRequest) returns (MutateFeedItemSetLinksResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/feedItemSetLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedItemSetLinkService.MutateFeedItemSetLinks][google.ads.googleads.v10.services.FeedItemSetLinkService.MutateFeedItemSetLinks]. +message MutateFeedItemSetLinksRequest { + // Required. The ID of the customer whose feed item set links are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual feed item set links. + repeated FeedItemSetLinkOperation 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; +} + +// A single operation (create, update, remove) on a feed item set link. +message FeedItemSetLinkOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the + // new feed item set link. + google.ads.googleads.v10.resources.FeedItemSetLink create = 1; + + // Remove operation: A resource name for the removed feed item set link is + // expected, in this format: + // + // `customers/{customer_id}/feedItemSetLinks/{feed_id}_{feed_item_set_id}_{feed_item_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSetLink" + }]; + } +} + +// Response message for a feed item set link mutate. +message MutateFeedItemSetLinksResponse { + // All results for the mutate. + repeated MutateFeedItemSetLinkResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the feed item set link mutate. +message MutateFeedItemSetLinkResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSetLink" + }]; +} diff --git a/google/ads/googleads/v10/services/feed_item_set_service.proto b/google/ads/googleads/v10/services/feed_item_set_service.proto new file mode 100644 index 000000000..d32a3ee36 --- /dev/null +++ b/google/ads/googleads/v10/services/feed_item_set_service.proto @@ -0,0 +1,123 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/feed_item_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the FeedItemSet service. + +// Service to manage feed Item Set +service FeedItemSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes feed item sets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateFeedItemSets(MutateFeedItemSetsRequest) returns (MutateFeedItemSetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/feedItemSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedItemSetService.MutateFeedItemSets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual feed item sets. + repeated FeedItemSetOperation 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; +} + +// A single operation (create, remove) on an feed item set. +message FeedItemSetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed item set + google.ads.googleads.v10.resources.FeedItemSet create = 1; + + // Update operation: The feed item set is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.FeedItemSet update = 2; + + // Remove operation: A resource name for the removed feed item is + // expected, in this format: + // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSet" + }]; + } +} + +// Response message for an feed item set mutate. +message MutateFeedItemSetsResponse { + // All results for the mutate. + repeated MutateFeedItemSetResult 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the feed item set mutate. +message MutateFeedItemSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSet" + }]; +} diff --git a/google/ads/googleads/v10/services/feed_item_target_service.proto b/google/ads/googleads/v10/services/feed_item_target_service.proto new file mode 100644 index 000000000..3d8b3eb9e --- /dev/null +++ b/google/ads/googleads/v10/services/feed_item_target_service.proto @@ -0,0 +1,138 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the FeedItemTarget service. + +// Service to manage feed item targets. +service FeedItemTargetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes feed item targets. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CriterionError]() + // [DatabaseError]() + // [DistinctError]() + // [FeedItemTargetError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateFeedItemTargets(MutateFeedItemTargetsRequest) returns (MutateFeedItemTargetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/feedItemTargets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v10.services.FeedItemTargetService.MutateFeedItemTargets]. +message MutateFeedItemTargetsRequest { + // Required. The ID of the customer whose feed item targets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual feed item targets. + repeated FeedItemTargetOperation 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 = 4; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 3; +} + +// A single operation (create, remove) on an feed item target. +message FeedItemTargetOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed item + // target. + google.ads.googleads.v10.resources.FeedItemTarget create = 1; + + // Remove operation: A resource name for the removed feed item target is + // expected, in this format: + // + // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemTarget" + }]; + } +} + +// Response message for an feed item target mutate. +message MutateFeedItemTargetsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateFeedItemTargetResult results = 2; +} + +// The result for the feed item target mutate. +message MutateFeedItemTargetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemTarget" + }]; + + // 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.v10.resources.FeedItemTarget feed_item_target = 2; +} diff --git a/google/ads/googleads/v10/services/feed_mapping_service.proto b/google/ads/googleads/v10/services/feed_mapping_service.proto new file mode 100644 index 000000000..2cb96a630 --- /dev/null +++ b/google/ads/googleads/v10/services/feed_mapping_service.proto @@ -0,0 +1,138 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the FeedMapping service. + +// Service to manage feed mappings. +service FeedMappingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes feed mappings. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DistinctError]() + // [FeedMappingError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateFeedMappings(MutateFeedMappingsRequest) returns (MutateFeedMappingsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/feedMappings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedMappingService.MutateFeedMappings][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual feed mappings. + repeated FeedMappingOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on a feed mapping. +message FeedMappingOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed mapping. + google.ads.googleads.v10.resources.FeedMapping create = 1; + + // Remove operation: A resource name for the removed feed mapping is + // expected, in this format: + // + // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedMapping" + }]; + } +} + +// Response message for a feed mapping mutate. +message MutateFeedMappingsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateFeedMappingResult results = 2; +} + +// The result for the feed mapping mutate. +message MutateFeedMappingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedMapping" + }]; + + // 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.v10.resources.FeedMapping feed_mapping = 2; +} diff --git a/google/ads/googleads/v10/services/feed_service.proto b/google/ads/googleads/v10/services/feed_service.proto new file mode 100644 index 000000000..b9401d3e7 --- /dev/null +++ b/google/ads/googleads/v10/services/feed_service.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/feed.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Feed service. + +// Service to manage feeds. +service FeedService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes feeds. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DistinctError]() + // [FeedError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateFeeds(MutateFeedsRequest) returns (MutateFeedsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/feeds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedService.MutateFeeds][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual feeds. + repeated FeedOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an feed. +message FeedOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed. + google.ads.googleads.v10.resources.Feed create = 1; + + // Update operation: The feed is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.Feed update = 2; + + // Remove operation: A resource name for the removed feed is + // expected, in this format: + // + // `customers/{customer_id}/feeds/{feed_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + }]; + } +} + +// Response message for an feed mutate. +message MutateFeedsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateFeedResult results = 2; +} + +// The result for the feed mutate. +message MutateFeedResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + }]; + + // 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.v10.resources.Feed feed = 2; +} diff --git a/google/ads/googleads/v10/services/geo_target_constant_service.proto b/google/ads/googleads/v10/services/geo_target_constant_service.proto new file mode 100644 index 000000000..1c522e777 --- /dev/null +++ b/google/ads/googleads/v10/services/geo_target_constant_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/geo_target_constant.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetConstantServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Geo target constant service. + +// Service to fetch geo target constants. +service GeoTargetConstantService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns GeoTargetConstant suggestions by location name or by resource name. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [GeoTargetConstantSuggestionError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc SuggestGeoTargetConstants(SuggestGeoTargetConstantsRequest) returns (SuggestGeoTargetConstantsResponse) { + option (google.api.http) = { + post: "/v10/geoTargetConstants:suggest" + body: "*" + }; + } +} + +// Request message for +// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v10.services.GeoTargetConstantService.SuggestGeoTargetConstants]. +message SuggestGeoTargetConstantsRequest { + // A list of location names. + message LocationNames { + // A list of location names. + repeated string names = 2; + } + + // A list of geo target constant resource names. + message GeoTargets { + // A list of geo target constant resource names. + repeated string geo_target_constants = 2; + } + + // If possible, returned geo targets are translated using this locale. If not, + // en is used by default. This is also used as a hint for returned geo + // targets. + optional string locale = 6; + + // Returned geo targets are restricted to this country code. + optional string country_code = 7; + + // Required. A selector of geo target constants. + oneof query { + // The location names to search by. At most 25 names can be set. + LocationNames location_names = 1; + + // The geo target constant resource names to filter by. + GeoTargets geo_targets = 2; + } +} + +// Response message for [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v10.services.GeoTargetConstantService.SuggestGeoTargetConstants]. +message SuggestGeoTargetConstantsResponse { + // Geo target constant suggestions. + repeated GeoTargetConstantSuggestion geo_target_constant_suggestions = 1; +} + +// A geo target constant suggestion. +message GeoTargetConstantSuggestion { + // The language this GeoTargetConstantSuggestion is currently translated to. + // It affects the name of geo target fields. For example, if locale=en, then + // name=Spain. If locale=es, then name=España. The default locale will be + // returned if no translation exists for the locale in the request. + optional string locale = 6; + + // Approximate user population that will be targeted, rounded to the + // nearest 100. + optional int64 reach = 7; + + // If the request searched by location name, this is the location name that + // matched the geo target. + optional string search_term = 8; + + // The GeoTargetConstant result. + google.ads.googleads.v10.resources.GeoTargetConstant geo_target_constant = 4; + + // The list of parents of the geo target constant. + repeated google.ads.googleads.v10.resources.GeoTargetConstant geo_target_constant_parents = 5; +} diff --git a/google/ads/googleads/v10/services/google_ads_field_service.proto b/google/ads/googleads/v10/services/google_ads_field_service.proto new file mode 100644 index 000000000..e168eb376 --- /dev/null +++ b/google/ads/googleads/v10/services/google_ads_field_service.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsFieldServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the GoogleAdsFieldService. + +// Service to fetch Google Ads API fields. +service GoogleAdsFieldService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns just the requested field. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc GetGoogleAdsField(GetGoogleAdsFieldRequest) returns (google.ads.googleads.v10.resources.GoogleAdsField) { + option (google.api.http) = { + get: "/v10/{resource_name=googleAdsFields/*}" + }; + option (google.api.method_signature) = "resource_name"; + } + + // Returns all fields that match the search query. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QueryError]() + // [QuotaError]() + // [RequestError]() + rpc SearchGoogleAdsFields(SearchGoogleAdsFieldsRequest) returns (SearchGoogleAdsFieldsResponse) { + option (google.api.http) = { + post: "/v10/googleAdsFields:search" + body: "*" + }; + option (google.api.method_signature) = "query"; + } +} + +// Request message for [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v10.services.GoogleAdsFieldService.GetGoogleAdsField]. +message GetGoogleAdsFieldRequest { + // Required. The resource name of the field to get. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GoogleAdsField" + } + ]; +} + +// Request message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v10.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +message SearchGoogleAdsFieldsRequest { + // Required. The query string. + string query = 1 [(google.api.field_behavior) = REQUIRED]; + + // Token of the page to retrieve. If not specified, the first page of + // results will be returned. Use the value obtained from `next_page_token` + // in the previous response in order to request the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When too large a page is requested, the server may decide to further + // limit the number of returned resources. + int32 page_size = 3; +} + +// Response message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v10.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +message SearchGoogleAdsFieldsResponse { + // The list of fields that matched the query. + repeated google.ads.googleads.v10.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. + // `next_page_token` is not returned for the last page. + string next_page_token = 2; + + // Total number of results that match the query ignoring the LIMIT clause. + int64 total_results_count = 3; +} diff --git a/google/ads/googleads/v10/services/google_ads_service.proto b/google/ads/googleads/v10/services/google_ads_service.proto new file mode 100644 index 000000000..533260622 --- /dev/null +++ b/google/ads/googleads/v10/services/google_ads_service.proto @@ -0,0 +1,1482 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/metrics.proto"; +import "google/ads/googleads/v10/common/segments.proto"; +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/enums/summary_row_setting.proto"; +import "google/ads/googleads/v10/resources/accessible_bidding_strategy.proto"; +import "google/ads/googleads/v10/resources/account_budget.proto"; +import "google/ads/googleads/v10/resources/account_budget_proposal.proto"; +import "google/ads/googleads/v10/resources/account_link.proto"; +import "google/ads/googleads/v10/resources/ad_group.proto"; +import "google/ads/googleads/v10/resources/ad_group_ad.proto"; +import "google/ads/googleads/v10/resources/ad_group_ad_asset_combination_view.proto"; +import "google/ads/googleads/v10/resources/ad_group_ad_asset_view.proto"; +import "google/ads/googleads/v10/resources/ad_group_ad_label.proto"; +import "google/ads/googleads/v10/resources/ad_group_asset.proto"; +import "google/ads/googleads/v10/resources/ad_group_audience_view.proto"; +import "google/ads/googleads/v10/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v10/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v10/resources/ad_group_criterion_customizer.proto"; +import "google/ads/googleads/v10/resources/ad_group_criterion_label.proto"; +import "google/ads/googleads/v10/resources/ad_group_criterion_simulation.proto"; +import "google/ads/googleads/v10/resources/ad_group_customizer.proto"; +import "google/ads/googleads/v10/resources/ad_group_extension_setting.proto"; +import "google/ads/googleads/v10/resources/ad_group_feed.proto"; +import "google/ads/googleads/v10/resources/ad_group_label.proto"; +import "google/ads/googleads/v10/resources/ad_group_simulation.proto"; +import "google/ads/googleads/v10/resources/ad_parameter.proto"; +import "google/ads/googleads/v10/resources/ad_schedule_view.proto"; +import "google/ads/googleads/v10/resources/age_range_view.proto"; +import "google/ads/googleads/v10/resources/asset.proto"; +import "google/ads/googleads/v10/resources/asset_field_type_view.proto"; +import "google/ads/googleads/v10/resources/asset_group.proto"; +import "google/ads/googleads/v10/resources/asset_group_asset.proto"; +import "google/ads/googleads/v10/resources/asset_group_listing_group_filter.proto"; +import "google/ads/googleads/v10/resources/asset_group_product_group_view.proto"; +import "google/ads/googleads/v10/resources/asset_group_signal.proto"; +import "google/ads/googleads/v10/resources/asset_set.proto"; +import "google/ads/googleads/v10/resources/asset_set_asset.proto"; +import "google/ads/googleads/v10/resources/audience.proto"; +import "google/ads/googleads/v10/resources/batch_job.proto"; +import "google/ads/googleads/v10/resources/bidding_data_exclusion.proto"; +import "google/ads/googleads/v10/resources/bidding_seasonality_adjustment.proto"; +import "google/ads/googleads/v10/resources/bidding_strategy.proto"; +import "google/ads/googleads/v10/resources/bidding_strategy_simulation.proto"; +import "google/ads/googleads/v10/resources/billing_setup.proto"; +import "google/ads/googleads/v10/resources/call_view.proto"; +import "google/ads/googleads/v10/resources/campaign.proto"; +import "google/ads/googleads/v10/resources/campaign_asset.proto"; +import "google/ads/googleads/v10/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v10/resources/campaign_audience_view.proto"; +import "google/ads/googleads/v10/resources/campaign_bid_modifier.proto"; +import "google/ads/googleads/v10/resources/campaign_budget.proto"; +import "google/ads/googleads/v10/resources/campaign_conversion_goal.proto"; +import "google/ads/googleads/v10/resources/campaign_criterion.proto"; +import "google/ads/googleads/v10/resources/campaign_criterion_simulation.proto"; +import "google/ads/googleads/v10/resources/campaign_customizer.proto"; +import "google/ads/googleads/v10/resources/campaign_draft.proto"; +import "google/ads/googleads/v10/resources/campaign_experiment.proto"; +import "google/ads/googleads/v10/resources/campaign_extension_setting.proto"; +import "google/ads/googleads/v10/resources/campaign_feed.proto"; +import "google/ads/googleads/v10/resources/campaign_group.proto"; +import "google/ads/googleads/v10/resources/campaign_label.proto"; +import "google/ads/googleads/v10/resources/campaign_shared_set.proto"; +import "google/ads/googleads/v10/resources/campaign_simulation.proto"; +import "google/ads/googleads/v10/resources/carrier_constant.proto"; +import "google/ads/googleads/v10/resources/change_event.proto"; +import "google/ads/googleads/v10/resources/change_status.proto"; +import "google/ads/googleads/v10/resources/click_view.proto"; +import "google/ads/googleads/v10/resources/combined_audience.proto"; +import "google/ads/googleads/v10/resources/conversion_action.proto"; +import "google/ads/googleads/v10/resources/conversion_custom_variable.proto"; +import "google/ads/googleads/v10/resources/conversion_goal_campaign_config.proto"; +import "google/ads/googleads/v10/resources/conversion_value_rule.proto"; +import "google/ads/googleads/v10/resources/conversion_value_rule_set.proto"; +import "google/ads/googleads/v10/resources/currency_constant.proto"; +import "google/ads/googleads/v10/resources/custom_audience.proto"; +import "google/ads/googleads/v10/resources/custom_conversion_goal.proto"; +import "google/ads/googleads/v10/resources/custom_interest.proto"; +import "google/ads/googleads/v10/resources/customer.proto"; +import "google/ads/googleads/v10/resources/customer_asset.proto"; +import "google/ads/googleads/v10/resources/customer_client.proto"; +import "google/ads/googleads/v10/resources/customer_client_link.proto"; +import "google/ads/googleads/v10/resources/customer_conversion_goal.proto"; +import "google/ads/googleads/v10/resources/customer_customizer.proto"; +import "google/ads/googleads/v10/resources/customer_extension_setting.proto"; +import "google/ads/googleads/v10/resources/customer_feed.proto"; +import "google/ads/googleads/v10/resources/customer_label.proto"; +import "google/ads/googleads/v10/resources/customer_manager_link.proto"; +import "google/ads/googleads/v10/resources/customer_negative_criterion.proto"; +import "google/ads/googleads/v10/resources/customer_user_access.proto"; +import "google/ads/googleads/v10/resources/customer_user_access_invitation.proto"; +import "google/ads/googleads/v10/resources/customizer_attribute.proto"; +import "google/ads/googleads/v10/resources/detail_placement_view.proto"; +import "google/ads/googleads/v10/resources/detailed_demographic.proto"; +import "google/ads/googleads/v10/resources/display_keyword_view.proto"; +import "google/ads/googleads/v10/resources/distance_view.proto"; +import "google/ads/googleads/v10/resources/domain_category.proto"; +import "google/ads/googleads/v10/resources/dynamic_search_ads_search_term_view.proto"; +import "google/ads/googleads/v10/resources/expanded_landing_page_view.proto"; +import "google/ads/googleads/v10/resources/experiment.proto"; +import "google/ads/googleads/v10/resources/experiment_arm.proto"; +import "google/ads/googleads/v10/resources/extension_feed_item.proto"; +import "google/ads/googleads/v10/resources/feed.proto"; +import "google/ads/googleads/v10/resources/feed_item.proto"; +import "google/ads/googleads/v10/resources/feed_item_set.proto"; +import "google/ads/googleads/v10/resources/feed_item_set_link.proto"; +import "google/ads/googleads/v10/resources/feed_item_target.proto"; +import "google/ads/googleads/v10/resources/feed_mapping.proto"; +import "google/ads/googleads/v10/resources/feed_placeholder_view.proto"; +import "google/ads/googleads/v10/resources/gender_view.proto"; +import "google/ads/googleads/v10/resources/geo_target_constant.proto"; +import "google/ads/googleads/v10/resources/geographic_view.proto"; +import "google/ads/googleads/v10/resources/group_placement_view.proto"; +import "google/ads/googleads/v10/resources/hotel_group_view.proto"; +import "google/ads/googleads/v10/resources/hotel_performance_view.proto"; +import "google/ads/googleads/v10/resources/hotel_reconciliation.proto"; +import "google/ads/googleads/v10/resources/income_range_view.proto"; +import "google/ads/googleads/v10/resources/keyword_plan.proto"; +import "google/ads/googleads/v10/resources/keyword_plan_ad_group.proto"; +import "google/ads/googleads/v10/resources/keyword_plan_ad_group_keyword.proto"; +import "google/ads/googleads/v10/resources/keyword_plan_campaign.proto"; +import "google/ads/googleads/v10/resources/keyword_plan_campaign_keyword.proto"; +import "google/ads/googleads/v10/resources/keyword_theme_constant.proto"; +import "google/ads/googleads/v10/resources/keyword_view.proto"; +import "google/ads/googleads/v10/resources/label.proto"; +import "google/ads/googleads/v10/resources/landing_page_view.proto"; +import "google/ads/googleads/v10/resources/language_constant.proto"; +import "google/ads/googleads/v10/resources/lead_form_submission_data.proto"; +import "google/ads/googleads/v10/resources/life_event.proto"; +import "google/ads/googleads/v10/resources/location_view.proto"; +import "google/ads/googleads/v10/resources/managed_placement_view.proto"; +import "google/ads/googleads/v10/resources/media_file.proto"; +import "google/ads/googleads/v10/resources/mobile_app_category_constant.proto"; +import "google/ads/googleads/v10/resources/mobile_device_constant.proto"; +import "google/ads/googleads/v10/resources/offline_user_data_job.proto"; +import "google/ads/googleads/v10/resources/operating_system_version_constant.proto"; +import "google/ads/googleads/v10/resources/paid_organic_search_term_view.proto"; +import "google/ads/googleads/v10/resources/parental_status_view.proto"; +import "google/ads/googleads/v10/resources/product_bidding_category_constant.proto"; +import "google/ads/googleads/v10/resources/product_group_view.proto"; +import "google/ads/googleads/v10/resources/recommendation.proto"; +import "google/ads/googleads/v10/resources/remarketing_action.proto"; +import "google/ads/googleads/v10/resources/search_term_view.proto"; +import "google/ads/googleads/v10/resources/shared_criterion.proto"; +import "google/ads/googleads/v10/resources/shared_set.proto"; +import "google/ads/googleads/v10/resources/shopping_performance_view.proto"; +import "google/ads/googleads/v10/resources/smart_campaign_search_term_view.proto"; +import "google/ads/googleads/v10/resources/smart_campaign_setting.proto"; +import "google/ads/googleads/v10/resources/third_party_app_analytics_link.proto"; +import "google/ads/googleads/v10/resources/topic_constant.proto"; +import "google/ads/googleads/v10/resources/topic_view.proto"; +import "google/ads/googleads/v10/resources/user_interest.proto"; +import "google/ads/googleads/v10/resources/user_list.proto"; +import "google/ads/googleads/v10/resources/user_location_view.proto"; +import "google/ads/googleads/v10/resources/video.proto"; +import "google/ads/googleads/v10/resources/webpage_view.proto"; +import "google/ads/googleads/v10/services/ad_group_ad_label_service.proto"; +import "google/ads/googleads/v10/services/ad_group_ad_service.proto"; +import "google/ads/googleads/v10/services/ad_group_asset_service.proto"; +import "google/ads/googleads/v10/services/ad_group_bid_modifier_service.proto"; +import "google/ads/googleads/v10/services/ad_group_criterion_customizer_service.proto"; +import "google/ads/googleads/v10/services/ad_group_criterion_label_service.proto"; +import "google/ads/googleads/v10/services/ad_group_criterion_service.proto"; +import "google/ads/googleads/v10/services/ad_group_customizer_service.proto"; +import "google/ads/googleads/v10/services/ad_group_extension_setting_service.proto"; +import "google/ads/googleads/v10/services/ad_group_feed_service.proto"; +import "google/ads/googleads/v10/services/ad_group_label_service.proto"; +import "google/ads/googleads/v10/services/ad_group_service.proto"; +import "google/ads/googleads/v10/services/ad_parameter_service.proto"; +import "google/ads/googleads/v10/services/ad_service.proto"; +import "google/ads/googleads/v10/services/asset_group_asset_service.proto"; +import "google/ads/googleads/v10/services/asset_group_listing_group_filter_service.proto"; +import "google/ads/googleads/v10/services/asset_group_service.proto"; +import "google/ads/googleads/v10/services/asset_group_signal_service.proto"; +import "google/ads/googleads/v10/services/asset_service.proto"; +import "google/ads/googleads/v10/services/asset_set_asset_service.proto"; +import "google/ads/googleads/v10/services/asset_set_service.proto"; +import "google/ads/googleads/v10/services/audience_service.proto"; +import "google/ads/googleads/v10/services/bidding_data_exclusion_service.proto"; +import "google/ads/googleads/v10/services/bidding_seasonality_adjustment_service.proto"; +import "google/ads/googleads/v10/services/bidding_strategy_service.proto"; +import "google/ads/googleads/v10/services/campaign_asset_service.proto"; +import "google/ads/googleads/v10/services/campaign_asset_set_service.proto"; +import "google/ads/googleads/v10/services/campaign_bid_modifier_service.proto"; +import "google/ads/googleads/v10/services/campaign_budget_service.proto"; +import "google/ads/googleads/v10/services/campaign_conversion_goal_service.proto"; +import "google/ads/googleads/v10/services/campaign_criterion_service.proto"; +import "google/ads/googleads/v10/services/campaign_customizer_service.proto"; +import "google/ads/googleads/v10/services/campaign_draft_service.proto"; +import "google/ads/googleads/v10/services/campaign_experiment_service.proto"; +import "google/ads/googleads/v10/services/campaign_extension_setting_service.proto"; +import "google/ads/googleads/v10/services/campaign_feed_service.proto"; +import "google/ads/googleads/v10/services/campaign_group_service.proto"; +import "google/ads/googleads/v10/services/campaign_label_service.proto"; +import "google/ads/googleads/v10/services/campaign_service.proto"; +import "google/ads/googleads/v10/services/campaign_shared_set_service.proto"; +import "google/ads/googleads/v10/services/conversion_action_service.proto"; +import "google/ads/googleads/v10/services/conversion_custom_variable_service.proto"; +import "google/ads/googleads/v10/services/conversion_goal_campaign_config_service.proto"; +import "google/ads/googleads/v10/services/conversion_value_rule_service.proto"; +import "google/ads/googleads/v10/services/conversion_value_rule_set_service.proto"; +import "google/ads/googleads/v10/services/custom_conversion_goal_service.proto"; +import "google/ads/googleads/v10/services/customer_asset_service.proto"; +import "google/ads/googleads/v10/services/customer_conversion_goal_service.proto"; +import "google/ads/googleads/v10/services/customer_customizer_service.proto"; +import "google/ads/googleads/v10/services/customer_extension_setting_service.proto"; +import "google/ads/googleads/v10/services/customer_feed_service.proto"; +import "google/ads/googleads/v10/services/customer_label_service.proto"; +import "google/ads/googleads/v10/services/customer_negative_criterion_service.proto"; +import "google/ads/googleads/v10/services/customer_service.proto"; +import "google/ads/googleads/v10/services/customizer_attribute_service.proto"; +import "google/ads/googleads/v10/services/experiment_arm_service.proto"; +import "google/ads/googleads/v10/services/experiment_service.proto"; +import "google/ads/googleads/v10/services/extension_feed_item_service.proto"; +import "google/ads/googleads/v10/services/feed_item_service.proto"; +import "google/ads/googleads/v10/services/feed_item_set_link_service.proto"; +import "google/ads/googleads/v10/services/feed_item_set_service.proto"; +import "google/ads/googleads/v10/services/feed_item_target_service.proto"; +import "google/ads/googleads/v10/services/feed_mapping_service.proto"; +import "google/ads/googleads/v10/services/feed_service.proto"; +import "google/ads/googleads/v10/services/keyword_plan_ad_group_keyword_service.proto"; +import "google/ads/googleads/v10/services/keyword_plan_ad_group_service.proto"; +import "google/ads/googleads/v10/services/keyword_plan_campaign_keyword_service.proto"; +import "google/ads/googleads/v10/services/keyword_plan_campaign_service.proto"; +import "google/ads/googleads/v10/services/keyword_plan_service.proto"; +import "google/ads/googleads/v10/services/label_service.proto"; +import "google/ads/googleads/v10/services/media_file_service.proto"; +import "google/ads/googleads/v10/services/remarketing_action_service.proto"; +import "google/ads/googleads/v10/services/shared_criterion_service.proto"; +import "google/ads/googleads/v10/services/shared_set_service.proto"; +import "google/ads/googleads/v10/services/smart_campaign_setting_service.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the GoogleAdsService. + +// Service to fetch data and metrics across resources. +service GoogleAdsService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns all rows that match the search query. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ChangeEventError]() + // [ChangeStatusError]() + // [ClickViewError]() + // [HeaderError]() + // [InternalError]() + // [QueryError]() + // [QuotaError]() + // [RequestError]() + rpc Search(SearchGoogleAdsRequest) returns (SearchGoogleAdsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/googleAds:search" + body: "*" + }; + option (google.api.method_signature) = "customer_id,query"; + } + + // Returns all rows that match the search stream query. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ChangeEventError]() + // [ChangeStatusError]() + // [ClickViewError]() + // [HeaderError]() + // [InternalError]() + // [QueryError]() + // [QuotaError]() + // [RequestError]() + rpc SearchStream(SearchGoogleAdsStreamRequest) returns (stream SearchGoogleAdsStreamResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/googleAds:searchStream" + body: "*" + }; + option (google.api.method_signature) = "customer_id,query"; + } + + // Creates, updates, or removes resources. This method supports atomic + // transactions with multiple types of resources. For example, you can + // atomically create a campaign and a campaign budget, or perform up to + // thousands of mutates atomically. + // + // This method is essentially a wrapper around a series of mutate methods. The + // only features it offers over calling those methods directly are: + // + // - Atomic transactions + // - Temp resource names (described below) + // - Somewhat reduced latency over making a series of mutate calls + // + // Note: Only resources that support atomic transactions are included, so this + // method can't replace all calls to individual services. + // + // ## Atomic Transaction Benefits + // + // Atomicity makes error handling much easier. If you're making a series of + // changes and one fails, it can leave your account in an inconsistent state. + // With atomicity, you either reach the desired state directly, or the request + // fails and you can retry. + // + // ## Temp Resource Names + // + // Temp resource names are a special type of resource name used to create a + // resource and reference that resource in the same request. For example, if a + // campaign budget is created with `resource_name` equal to + // `customers/123/campaignBudgets/-1`, that resource name can be reused in + // the `Campaign.budget` field in the same request. That way, the two + // resources are created and linked atomically. + // + // To create a temp resource name, put a negative number in the part of the + // name that the server would normally allocate. + // + // Note: + // + // - Resources must be created with a temp name before the name can be reused. + // For example, the previous CampaignBudget+Campaign example would fail if + // the mutate order was reversed. + // - Temp names are not remembered across requests. + // - There's no limit to the number of temp names in a request. + // - Each temp name must use a unique negative number, even if the resource + // types differ. + // + // ## Latency + // + // It's important to group mutates by resource type or the request may time + // out and fail. Latency is roughly equal to a series of calls to individual + // mutate methods, where each change in resource type is a new call. For + // example, mutating 10 campaigns then 10 ad groups is like 2 calls, while + // mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is like 4 calls. + // + // List of thrown errors: + // [AdCustomizerError]() + // [AdError]() + // [AdGroupAdError]() + // [AdGroupCriterionError]() + // [AdGroupError]() + // [AssetError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [CampaignBudgetError]() + // [CampaignCriterionError]() + // [CampaignError]() + // [CampaignExperimentError]() + // [CampaignSharedSetError]() + // [CollectionSizeError]() + // [ContextError]() + // [ConversionActionError]() + // [CriterionError]() + // [CustomerFeedError]() + // [DatabaseError]() + // [DateError]() + // [DateRangeError]() + // [DistinctError]() + // [ExtensionFeedItemError]() + // [ExtensionSettingError]() + // [FeedAttributeReferenceError]() + // [FeedError]() + // [FeedItemError]() + // [FeedItemSetError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionParsingError]() + // [HeaderError]() + // [ImageError]() + // [InternalError]() + // [KeywordPlanAdGroupKeywordError]() + // [KeywordPlanCampaignError]() + // [KeywordPlanError]() + // [LabelError]() + // [ListOperationError]() + // [MediaUploadError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [PolicyFindingError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SettingError]() + // [SharedSetError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + // [UserListError]() + // [YoutubeVideoRegistrationError]() + rpc Mutate(MutateGoogleAdsRequest) returns (MutateGoogleAdsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/googleAds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,mutate_operations"; + } +} + +// Request message for [GoogleAdsService.Search][google.ads.googleads.v10.services.GoogleAdsService.Search]. +message SearchGoogleAdsRequest { + // Required. The ID of the customer being queried. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The query string. + string query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 3; + + // Number of elements to retrieve in a single page. + // When too large a page is requested, the server may decide to + // further limit the number of returned resources. + int32 page_size = 4; + + // If true, the request is validated but not executed. + bool validate_only = 5; + + // If true, the total number of results that match the query ignoring the + // LIMIT clause will be included in the response. + // Default is false. + bool return_total_results_count = 7; + + // 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.v10.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 8; +} + +// Response message for [GoogleAdsService.Search][google.ads.googleads.v10.services.GoogleAdsService.Search]. +message SearchGoogleAdsResponse { + // The list of rows that matched the query. + repeated GoogleAdsRow 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; + + // Total number of results that match the query ignoring the LIMIT + // clause. + int64 total_results_count = 3; + + // FieldMask that represents what fields were requested by the user. + google.protobuf.FieldMask field_mask = 5; + + // Summary row that contains summary of metrics in results. + // Summary of metrics means aggregation of metrics across all results, + // here aggregation could be sum, average, rate, etc. + GoogleAdsRow summary_row = 6; +} + +// Request message for [GoogleAdsService.SearchStream][google.ads.googleads.v10.services.GoogleAdsService.SearchStream]. +message SearchGoogleAdsStreamRequest { + // Required. The ID of the customer being queried. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The query string. + string query = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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.v10.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 3; +} + +// Response message for [GoogleAdsService.SearchStream][google.ads.googleads.v10.services.GoogleAdsService.SearchStream]. +message SearchGoogleAdsStreamResponse { + // The list of rows that matched the query. + repeated GoogleAdsRow results = 1; + + // FieldMask that represents what fields were requested by the user. + google.protobuf.FieldMask field_mask = 2; + + // Summary row that contains summary of metrics in results. + // Summary of metrics means aggregation of metrics across all results, + // here aggregation could be sum, average, rate, etc. + GoogleAdsRow summary_row = 3; + + // The unique id of the request that is used for debugging purposes. + string request_id = 4; +} + +// A returned row from the query. +message GoogleAdsRow { + // The account budget in the query. + google.ads.googleads.v10.resources.AccountBudget account_budget = 42; + + // The account budget proposal referenced in the query. + google.ads.googleads.v10.resources.AccountBudgetProposal account_budget_proposal = 43; + + // The AccountLink referenced in the query. + google.ads.googleads.v10.resources.AccountLink account_link = 143; + + // The ad group referenced in the query. + google.ads.googleads.v10.resources.AdGroup ad_group = 3; + + // The ad referenced in the query. + google.ads.googleads.v10.resources.AdGroupAd ad_group_ad = 16; + + // The ad group ad asset combination view in the query. + google.ads.googleads.v10.resources.AdGroupAdAssetCombinationView ad_group_ad_asset_combination_view = 193; + + // The ad group ad asset view in the query. + google.ads.googleads.v10.resources.AdGroupAdAssetView ad_group_ad_asset_view = 131; + + // The ad group ad label referenced in the query. + google.ads.googleads.v10.resources.AdGroupAdLabel ad_group_ad_label = 120; + + // The ad group asset referenced in the query. + google.ads.googleads.v10.resources.AdGroupAsset ad_group_asset = 154; + + // The ad group audience view referenced in the query. + google.ads.googleads.v10.resources.AdGroupAudienceView ad_group_audience_view = 57; + + // The bid modifier referenced in the query. + google.ads.googleads.v10.resources.AdGroupBidModifier ad_group_bid_modifier = 24; + + // The criterion referenced in the query. + google.ads.googleads.v10.resources.AdGroupCriterion ad_group_criterion = 17; + + // The ad group criterion customizer referenced in the query. + google.ads.googleads.v10.resources.AdGroupCriterionCustomizer ad_group_criterion_customizer = 187; + + // The ad group criterion label referenced in the query. + google.ads.googleads.v10.resources.AdGroupCriterionLabel ad_group_criterion_label = 121; + + // The ad group criterion simulation referenced in the query. + google.ads.googleads.v10.resources.AdGroupCriterionSimulation ad_group_criterion_simulation = 110; + + // The ad group customizer referenced in the query. + google.ads.googleads.v10.resources.AdGroupCustomizer ad_group_customizer = 185; + + // The ad group extension setting referenced in the query. + google.ads.googleads.v10.resources.AdGroupExtensionSetting ad_group_extension_setting = 112; + + // The ad group feed referenced in the query. + google.ads.googleads.v10.resources.AdGroupFeed ad_group_feed = 67; + + // The ad group label referenced in the query. + google.ads.googleads.v10.resources.AdGroupLabel ad_group_label = 115; + + // The ad group simulation referenced in the query. + google.ads.googleads.v10.resources.AdGroupSimulation ad_group_simulation = 107; + + // The ad parameter referenced in the query. + google.ads.googleads.v10.resources.AdParameter ad_parameter = 130; + + // The age range view referenced in the query. + google.ads.googleads.v10.resources.AgeRangeView age_range_view = 48; + + // The ad schedule view referenced in the query. + google.ads.googleads.v10.resources.AdScheduleView ad_schedule_view = 89; + + // The domain category referenced in the query. + google.ads.googleads.v10.resources.DomainCategory domain_category = 91; + + // The asset referenced in the query. + google.ads.googleads.v10.resources.Asset asset = 105; + + // The asset field type view referenced in the query. + google.ads.googleads.v10.resources.AssetFieldTypeView asset_field_type_view = 168; + + // The asset group asset referenced in the query. + google.ads.googleads.v10.resources.AssetGroupAsset asset_group_asset = 173; + + // The asset group signal referenced in the query. + google.ads.googleads.v10.resources.AssetGroupSignal asset_group_signal = 191; + + // The asset group listing group filter referenced in the query. + google.ads.googleads.v10.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 182; + + // The asset group product group view referenced in the query. + google.ads.googleads.v10.resources.AssetGroupProductGroupView asset_group_product_group_view = 189; + + // The asset group referenced in the query. + google.ads.googleads.v10.resources.AssetGroup asset_group = 172; + + // The asset set asset referenced in the query. + google.ads.googleads.v10.resources.AssetSetAsset asset_set_asset = 180; + + // The asset set referenced in the query. + google.ads.googleads.v10.resources.AssetSet asset_set = 179; + + // The batch job referenced in the query. + google.ads.googleads.v10.resources.BatchJob batch_job = 139; + + // The bidding data exclusion referenced in the query. + google.ads.googleads.v10.resources.BiddingDataExclusion bidding_data_exclusion = 159; + + // The bidding seasonality adjustment referenced in the query. + google.ads.googleads.v10.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 160; + + // The bidding strategy referenced in the query. + google.ads.googleads.v10.resources.BiddingStrategy bidding_strategy = 18; + + // The bidding strategy simulation referenced in the query. + google.ads.googleads.v10.resources.BiddingStrategySimulation bidding_strategy_simulation = 158; + + // The billing setup referenced in the query. + google.ads.googleads.v10.resources.BillingSetup billing_setup = 41; + + // The call view referenced in the query. + google.ads.googleads.v10.resources.CallView call_view = 152; + + // The campaign budget referenced in the query. + google.ads.googleads.v10.resources.CampaignBudget campaign_budget = 19; + + // The campaign referenced in the query. + google.ads.googleads.v10.resources.Campaign campaign = 2; + + // The campaign asset referenced in the query. + google.ads.googleads.v10.resources.CampaignAsset campaign_asset = 142; + + // The campaign asset set referenced in the query. + google.ads.googleads.v10.resources.CampaignAssetSet campaign_asset_set = 181; + + // The campaign audience view referenced in the query. + google.ads.googleads.v10.resources.CampaignAudienceView campaign_audience_view = 69; + + // The campaign bid modifier referenced in the query. + google.ads.googleads.v10.resources.CampaignBidModifier campaign_bid_modifier = 26; + + // The CampaignConversionGoal referenced in the query. + google.ads.googleads.v10.resources.CampaignConversionGoal campaign_conversion_goal = 175; + + // The campaign criterion referenced in the query. + google.ads.googleads.v10.resources.CampaignCriterion campaign_criterion = 20; + + // The campaign criterion simulation referenced in the query. + google.ads.googleads.v10.resources.CampaignCriterionSimulation campaign_criterion_simulation = 111; + + // The campaign customizer referenced in the query. + google.ads.googleads.v10.resources.CampaignCustomizer campaign_customizer = 186; + + // The campaign draft referenced in the query. + google.ads.googleads.v10.resources.CampaignDraft campaign_draft = 49; + + // The campaign experiment referenced in the query. + google.ads.googleads.v10.resources.CampaignExperiment campaign_experiment = 84; + + // The campaign extension setting referenced in the query. + google.ads.googleads.v10.resources.CampaignExtensionSetting campaign_extension_setting = 113; + + // The campaign feed referenced in the query. + google.ads.googleads.v10.resources.CampaignFeed campaign_feed = 63; + + // Campaign Group referenced in AWQL query. + google.ads.googleads.v10.resources.CampaignGroup campaign_group = 25; + + // The campaign label referenced in the query. + google.ads.googleads.v10.resources.CampaignLabel campaign_label = 108; + + // Campaign Shared Set referenced in AWQL query. + google.ads.googleads.v10.resources.CampaignSharedSet campaign_shared_set = 30; + + // The campaign simulation referenced in the query. + google.ads.googleads.v10.resources.CampaignSimulation campaign_simulation = 157; + + // The carrier constant referenced in the query. + google.ads.googleads.v10.resources.CarrierConstant carrier_constant = 66; + + // The ChangeEvent referenced in the query. + google.ads.googleads.v10.resources.ChangeEvent change_event = 145; + + // The ChangeStatus referenced in the query. + google.ads.googleads.v10.resources.ChangeStatus change_status = 37; + + // The CombinedAudience referenced in the query. + google.ads.googleads.v10.resources.CombinedAudience combined_audience = 148; + + // The Audience referenced in the query. + google.ads.googleads.v10.resources.Audience audience = 190; + + // The conversion action referenced in the query. + google.ads.googleads.v10.resources.ConversionAction conversion_action = 103; + + // The conversion custom variable referenced in the query. + google.ads.googleads.v10.resources.ConversionCustomVariable conversion_custom_variable = 153; + + // The ConversionGoalCampaignConfig referenced in the query. + google.ads.googleads.v10.resources.ConversionGoalCampaignConfig conversion_goal_campaign_config = 177; + + // The conversion value rule referenced in the query. + google.ads.googleads.v10.resources.ConversionValueRule conversion_value_rule = 164; + + // The conversion value rule set referenced in the query. + google.ads.googleads.v10.resources.ConversionValueRuleSet conversion_value_rule_set = 165; + + // The ClickView referenced in the query. + google.ads.googleads.v10.resources.ClickView click_view = 122; + + // The currency constant referenced in the query. + google.ads.googleads.v10.resources.CurrencyConstant currency_constant = 134; + + // The CustomAudience referenced in the query. + google.ads.googleads.v10.resources.CustomAudience custom_audience = 147; + + // The CustomConversionGoal referenced in the query. + google.ads.googleads.v10.resources.CustomConversionGoal custom_conversion_goal = 176; + + // The CustomInterest referenced in the query. + google.ads.googleads.v10.resources.CustomInterest custom_interest = 104; + + // The customer referenced in the query. + google.ads.googleads.v10.resources.Customer customer = 1; + + // The customer asset referenced in the query. + google.ads.googleads.v10.resources.CustomerAsset customer_asset = 155; + + // The accessible bidding strategy referenced in the query. + google.ads.googleads.v10.resources.AccessibleBiddingStrategy accessible_bidding_strategy = 169; + + // The customer customizer referenced in the query. + google.ads.googleads.v10.resources.CustomerCustomizer customer_customizer = 184; + + // The CustomerManagerLink referenced in the query. + google.ads.googleads.v10.resources.CustomerManagerLink customer_manager_link = 61; + + // The CustomerClientLink referenced in the query. + google.ads.googleads.v10.resources.CustomerClientLink customer_client_link = 62; + + // The CustomerClient referenced in the query. + google.ads.googleads.v10.resources.CustomerClient customer_client = 70; + + // The CustomerConversionGoal referenced in the query. + google.ads.googleads.v10.resources.CustomerConversionGoal customer_conversion_goal = 174; + + // The customer extension setting referenced in the query. + google.ads.googleads.v10.resources.CustomerExtensionSetting customer_extension_setting = 114; + + // The customer feed referenced in the query. + google.ads.googleads.v10.resources.CustomerFeed customer_feed = 64; + + // The customer label referenced in the query. + google.ads.googleads.v10.resources.CustomerLabel customer_label = 124; + + // The customer negative criterion referenced in the query. + google.ads.googleads.v10.resources.CustomerNegativeCriterion customer_negative_criterion = 88; + + // The CustomerUserAccess referenced in the query. + google.ads.googleads.v10.resources.CustomerUserAccess customer_user_access = 146; + + // The CustomerUserAccessInvitation referenced in the query. + google.ads.googleads.v10.resources.CustomerUserAccessInvitation customer_user_access_invitation = 150; + + // The customizer attribute referenced in the query. + google.ads.googleads.v10.resources.CustomizerAttribute customizer_attribute = 178; + + // The detail placement view referenced in the query. + google.ads.googleads.v10.resources.DetailPlacementView detail_placement_view = 118; + + // The detailed demographic referenced in the query. + google.ads.googleads.v10.resources.DetailedDemographic detailed_demographic = 166; + + // The display keyword view referenced in the query. + google.ads.googleads.v10.resources.DisplayKeywordView display_keyword_view = 47; + + // The distance view referenced in the query. + google.ads.googleads.v10.resources.DistanceView distance_view = 132; + + // The dynamic search ads search term view referenced in the query. + google.ads.googleads.v10.resources.DynamicSearchAdsSearchTermView dynamic_search_ads_search_term_view = 106; + + // The expanded landing page view referenced in the query. + google.ads.googleads.v10.resources.ExpandedLandingPageView expanded_landing_page_view = 128; + + // The extension feed item referenced in the query. + google.ads.googleads.v10.resources.ExtensionFeedItem extension_feed_item = 85; + + // The feed referenced in the query. + google.ads.googleads.v10.resources.Feed feed = 46; + + // The feed item referenced in the query. + google.ads.googleads.v10.resources.FeedItem feed_item = 50; + + // The feed item set referenced in the query. + google.ads.googleads.v10.resources.FeedItemSet feed_item_set = 149; + + // The feed item set link referenced in the query. + google.ads.googleads.v10.resources.FeedItemSetLink feed_item_set_link = 151; + + // The feed item target referenced in the query. + google.ads.googleads.v10.resources.FeedItemTarget feed_item_target = 116; + + // The feed mapping referenced in the query. + google.ads.googleads.v10.resources.FeedMapping feed_mapping = 58; + + // The feed placeholder view referenced in the query. + google.ads.googleads.v10.resources.FeedPlaceholderView feed_placeholder_view = 97; + + // The gender view referenced in the query. + google.ads.googleads.v10.resources.GenderView gender_view = 40; + + // The geo target constant referenced in the query. + google.ads.googleads.v10.resources.GeoTargetConstant geo_target_constant = 23; + + // The geographic view referenced in the query. + google.ads.googleads.v10.resources.GeographicView geographic_view = 125; + + // The group placement view referenced in the query. + google.ads.googleads.v10.resources.GroupPlacementView group_placement_view = 119; + + // The hotel group view referenced in the query. + google.ads.googleads.v10.resources.HotelGroupView hotel_group_view = 51; + + // The hotel performance view referenced in the query. + google.ads.googleads.v10.resources.HotelPerformanceView hotel_performance_view = 71; + + // The hotel reconciliation referenced in the query. + google.ads.googleads.v10.resources.HotelReconciliation hotel_reconciliation = 188; + + // The income range view referenced in the query. + google.ads.googleads.v10.resources.IncomeRangeView income_range_view = 138; + + // The keyword view referenced in the query. + google.ads.googleads.v10.resources.KeywordView keyword_view = 21; + + // The keyword plan referenced in the query. + google.ads.googleads.v10.resources.KeywordPlan keyword_plan = 32; + + // The keyword plan campaign referenced in the query. + google.ads.googleads.v10.resources.KeywordPlanCampaign keyword_plan_campaign = 33; + + // The keyword plan campaign keyword referenced in the query. + google.ads.googleads.v10.resources.KeywordPlanCampaignKeyword keyword_plan_campaign_keyword = 140; + + // The keyword plan ad group referenced in the query. + google.ads.googleads.v10.resources.KeywordPlanAdGroup keyword_plan_ad_group = 35; + + // The keyword plan ad group referenced in the query. + google.ads.googleads.v10.resources.KeywordPlanAdGroupKeyword keyword_plan_ad_group_keyword = 141; + + // The keyword theme constant referenced in the query. + google.ads.googleads.v10.resources.KeywordThemeConstant keyword_theme_constant = 163; + + // The label referenced in the query. + google.ads.googleads.v10.resources.Label label = 52; + + // The landing page view referenced in the query. + google.ads.googleads.v10.resources.LandingPageView landing_page_view = 126; + + // The language constant referenced in the query. + google.ads.googleads.v10.resources.LanguageConstant language_constant = 55; + + // The location view referenced in the query. + google.ads.googleads.v10.resources.LocationView location_view = 123; + + // The managed placement view referenced in the query. + google.ads.googleads.v10.resources.ManagedPlacementView managed_placement_view = 53; + + // The media file referenced in the query. + google.ads.googleads.v10.resources.MediaFile media_file = 90; + + // The mobile app category constant referenced in the query. + google.ads.googleads.v10.resources.MobileAppCategoryConstant mobile_app_category_constant = 87; + + // The mobile device constant referenced in the query. + google.ads.googleads.v10.resources.MobileDeviceConstant mobile_device_constant = 98; + + // The offline user data job referenced in the query. + google.ads.googleads.v10.resources.OfflineUserDataJob offline_user_data_job = 137; + + // The operating system version constant referenced in the query. + google.ads.googleads.v10.resources.OperatingSystemVersionConstant operating_system_version_constant = 86; + + // The paid organic search term view referenced in the query. + google.ads.googleads.v10.resources.PaidOrganicSearchTermView paid_organic_search_term_view = 129; + + // The parental status view referenced in the query. + google.ads.googleads.v10.resources.ParentalStatusView parental_status_view = 45; + + // The Product Bidding Category referenced in the query. + google.ads.googleads.v10.resources.ProductBiddingCategoryConstant product_bidding_category_constant = 109; + + // The product group view referenced in the query. + google.ads.googleads.v10.resources.ProductGroupView product_group_view = 54; + + // The recommendation referenced in the query. + google.ads.googleads.v10.resources.Recommendation recommendation = 22; + + // The search term view referenced in the query. + google.ads.googleads.v10.resources.SearchTermView search_term_view = 68; + + // The shared set referenced in the query. + google.ads.googleads.v10.resources.SharedCriterion shared_criterion = 29; + + // The shared set referenced in the query. + google.ads.googleads.v10.resources.SharedSet shared_set = 27; + + // The Smart campaign setting referenced in the query. + google.ads.googleads.v10.resources.SmartCampaignSetting smart_campaign_setting = 167; + + // The shopping performance view referenced in the query. + google.ads.googleads.v10.resources.ShoppingPerformanceView shopping_performance_view = 117; + + // The Smart campaign search term view referenced in the query. + google.ads.googleads.v10.resources.SmartCampaignSearchTermView smart_campaign_search_term_view = 170; + + // The AccountLink referenced in the query. + google.ads.googleads.v10.resources.ThirdPartyAppAnalyticsLink third_party_app_analytics_link = 144; + + // The topic view referenced in the query. + google.ads.googleads.v10.resources.TopicView topic_view = 44; + + // The experiment referenced in the query. + google.ads.googleads.v10.resources.Experiment experiment = 133; + + // The experiment arm referenced in the query. + google.ads.googleads.v10.resources.ExperimentArm experiment_arm = 183; + + // The user interest referenced in the query. + google.ads.googleads.v10.resources.UserInterest user_interest = 59; + + // The life event referenced in the query. + google.ads.googleads.v10.resources.LifeEvent life_event = 161; + + // The user list referenced in the query. + google.ads.googleads.v10.resources.UserList user_list = 38; + + // The user location view referenced in the query. + google.ads.googleads.v10.resources.UserLocationView user_location_view = 135; + + // The remarketing action referenced in the query. + google.ads.googleads.v10.resources.RemarketingAction remarketing_action = 60; + + // The topic constant referenced in the query. + google.ads.googleads.v10.resources.TopicConstant topic_constant = 31; + + // The video referenced in the query. + google.ads.googleads.v10.resources.Video video = 39; + + // The webpage view referenced in the query. + google.ads.googleads.v10.resources.WebpageView webpage_view = 162; + + // The lead form user submission referenced in the query. + google.ads.googleads.v10.resources.LeadFormSubmissionData lead_form_submission_data = 192; + + // The metrics. + google.ads.googleads.v10.common.Metrics metrics = 4; + + // The segments. + google.ads.googleads.v10.common.Segments segments = 102; +} + +// Request message for [GoogleAdsService.Mutate][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual resources. + repeated MutateOperation mutate_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. E.g. MutateCampaignResult.campaign. + google.ads.googleads.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// Response message for [GoogleAdsService.Mutate][google.ads.googleads.v10.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 + // operations. If any errors occur outside the operations (e.g., auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All responses for the mutate. + repeated MutateOperationResponse mutate_operation_responses = 1; +} + +// A single operation (create, update, remove) on a resource. +message MutateOperation { + // The mutate operation. + oneof operation { + // An ad group ad label mutate operation. + AdGroupAdLabelOperation ad_group_ad_label_operation = 17; + + // An ad group ad mutate operation. + AdGroupAdOperation ad_group_ad_operation = 1; + + // An ad group asset mutate operation. + AdGroupAssetOperation ad_group_asset_operation = 56; + + // An ad group bid modifier mutate operation. + AdGroupBidModifierOperation ad_group_bid_modifier_operation = 2; + + // An ad group criterion customizer mutate operation. + AdGroupCriterionCustomizerOperation ad_group_criterion_customizer_operation = 77; + + // An ad group criterion label mutate operation. + AdGroupCriterionLabelOperation ad_group_criterion_label_operation = 18; + + // An ad group criterion mutate operation. + AdGroupCriterionOperation ad_group_criterion_operation = 3; + + // An ad group customizer mutate operation. + AdGroupCustomizerOperation ad_group_customizer_operation = 75; + + // An ad group extension setting mutate operation. + AdGroupExtensionSettingOperation ad_group_extension_setting_operation = 19; + + // An ad group feed mutate operation. + AdGroupFeedOperation ad_group_feed_operation = 20; + + // An ad group label mutate operation. + AdGroupLabelOperation ad_group_label_operation = 21; + + // An ad group mutate operation. + AdGroupOperation ad_group_operation = 5; + + // An ad mutate operation. + AdOperation ad_operation = 49; + + // An ad parameter mutate operation. + AdParameterOperation ad_parameter_operation = 22; + + // An asset mutate operation. + AssetOperation asset_operation = 23; + + // An asset group asset mutate operation. + AssetGroupAssetOperation asset_group_asset_operation = 65; + + // An asset group listing group filter mutate operation. + AssetGroupListingGroupFilterOperation asset_group_listing_group_filter_operation = 78; + + // An asset group signal mutate operation. + AssetGroupSignalOperation asset_group_signal_operation = 80; + + // An asset group mutate operation. + AssetGroupOperation asset_group_operation = 62; + + // An asset set asset mutate operation. + AssetSetAssetOperation asset_set_asset_operation = 71; + + // An asset set mutate operation. + AssetSetOperation asset_set_operation = 72; + + // An audience mutate operation. + AudienceOperation audience_operation = 81; + + // A bidding data exclusion mutate operation. + BiddingDataExclusionOperation bidding_data_exclusion_operation = 58; + + // A bidding seasonality adjustment mutate operation. + BiddingSeasonalityAdjustmentOperation bidding_seasonality_adjustment_operation = 59; + + // A bidding strategy mutate operation. + BiddingStrategyOperation bidding_strategy_operation = 6; + + // A campaign asset mutate operation. + CampaignAssetOperation campaign_asset_operation = 52; + + // A campaign asset mutate operation. + CampaignAssetSetOperation campaign_asset_set_operation = 73; + + // A campaign bid modifier mutate operation. + CampaignBidModifierOperation campaign_bid_modifier_operation = 7; + + // A campaign budget mutate operation. + CampaignBudgetOperation campaign_budget_operation = 8; + + // A campaign conversion goal mutate operation. + CampaignConversionGoalOperation campaign_conversion_goal_operation = 67; + + // A campaign criterion mutate operation. + CampaignCriterionOperation campaign_criterion_operation = 13; + + // An campaign customizer mutate operation. + CampaignCustomizerOperation campaign_customizer_operation = 76; + + // A campaign draft mutate operation. + CampaignDraftOperation campaign_draft_operation = 24; + + // A campaign experiment mutate operation. + CampaignExperimentOperation campaign_experiment_operation = 25; + + // A campaign extension setting mutate operation. + CampaignExtensionSettingOperation campaign_extension_setting_operation = 26; + + // A campaign feed mutate operation. + CampaignFeedOperation campaign_feed_operation = 27; + + // A campaign group mutate operation. + CampaignGroupOperation campaign_group_operation = 9; + + // A campaign label mutate operation. + CampaignLabelOperation campaign_label_operation = 28; + + // A campaign mutate operation. + CampaignOperation campaign_operation = 10; + + // A campaign shared set mutate operation. + CampaignSharedSetOperation campaign_shared_set_operation = 11; + + // A conversion action mutate operation. + ConversionActionOperation conversion_action_operation = 12; + + // A conversion custom variable mutate operation. + ConversionCustomVariableOperation conversion_custom_variable_operation = 55; + + // A conversion goal campaign config mutate operation. + ConversionGoalCampaignConfigOperation conversion_goal_campaign_config_operation = 69; + + // A conversion value rule mutate operation. + ConversionValueRuleOperation conversion_value_rule_operation = 63; + + // A conversion value rule set mutate operation. + ConversionValueRuleSetOperation conversion_value_rule_set_operation = 64; + + // A custom conversion goal mutate operation. + CustomConversionGoalOperation custom_conversion_goal_operation = 68; + + // A customer asset mutate operation. + CustomerAssetOperation customer_asset_operation = 57; + + // A customer conversion goal mutate operation. + CustomerConversionGoalOperation customer_conversion_goal_operation = 66; + + // An customer customizer mutate operation. + CustomerCustomizerOperation customer_customizer_operation = 79; + + // A customer extension setting mutate operation. + CustomerExtensionSettingOperation customer_extension_setting_operation = 30; + + // A customer feed mutate operation. + CustomerFeedOperation customer_feed_operation = 31; + + // A customer label mutate operation. + CustomerLabelOperation customer_label_operation = 32; + + // A customer negative criterion mutate operation. + CustomerNegativeCriterionOperation customer_negative_criterion_operation = 34; + + // A customer mutate operation. + CustomerOperation customer_operation = 35; + + // An customizer attribute mutate operation. + CustomizerAttributeOperation customizer_attribute_operation = 70; + + // An experiment mutate operation. + ExperimentOperation experiment_operation = 82; + + // An experiment arm mutate operation. + ExperimentArmOperation experiment_arm_operation = 83; + + // An extension feed item mutate operation. + ExtensionFeedItemOperation extension_feed_item_operation = 36; + + // A feed item mutate operation. + FeedItemOperation feed_item_operation = 37; + + // A feed item set mutate operation. + FeedItemSetOperation feed_item_set_operation = 53; + + // A feed item set link mutate operation. + FeedItemSetLinkOperation feed_item_set_link_operation = 54; + + // A feed item target mutate operation. + FeedItemTargetOperation feed_item_target_operation = 38; + + // A feed mapping mutate operation. + FeedMappingOperation feed_mapping_operation = 39; + + // A feed mutate operation. + FeedOperation feed_operation = 40; + + // A keyword plan ad group operation. + KeywordPlanAdGroupOperation keyword_plan_ad_group_operation = 44; + + // A keyword plan ad group keyword operation. + KeywordPlanAdGroupKeywordOperation keyword_plan_ad_group_keyword_operation = 50; + + // A keyword plan campaign keyword operation. + KeywordPlanCampaignKeywordOperation keyword_plan_campaign_keyword_operation = 51; + + // A keyword plan campaign operation. + KeywordPlanCampaignOperation keyword_plan_campaign_operation = 45; + + // A keyword plan operation. + KeywordPlanOperation keyword_plan_operation = 48; + + // A label mutate operation. + LabelOperation label_operation = 41; + + // A media file mutate operation. + MediaFileOperation media_file_operation = 42; + + // A remarketing action mutate operation. + RemarketingActionOperation remarketing_action_operation = 43; + + // A shared criterion mutate operation. + SharedCriterionOperation shared_criterion_operation = 14; + + // A shared set mutate operation. + SharedSetOperation shared_set_operation = 15; + + // A Smart campaign setting mutate operation. + SmartCampaignSettingOperation smart_campaign_setting_operation = 61; + + // A user list mutate operation. + UserListOperation user_list_operation = 16; + } +} + +// Response message for the resource mutate. +message MutateOperationResponse { + // The mutate response. + oneof response { + // The result for the ad group ad label mutate. + MutateAdGroupAdLabelResult ad_group_ad_label_result = 17; + + // The result for the ad group ad mutate. + MutateAdGroupAdResult ad_group_ad_result = 1; + + // The result for the ad group asset mutate. + MutateAdGroupAssetResult ad_group_asset_result = 56; + + // The result for the ad group bid modifier mutate. + MutateAdGroupBidModifierResult ad_group_bid_modifier_result = 2; + + // The result for the ad group criterion customizer mutate. + MutateAdGroupCriterionCustomizerResult ad_group_criterion_customizer_result = 77; + + // The result for the ad group criterion label mutate. + MutateAdGroupCriterionLabelResult ad_group_criterion_label_result = 18; + + // The result for the ad group criterion mutate. + MutateAdGroupCriterionResult ad_group_criterion_result = 3; + + // The result for the ad group customizer mutate. + MutateAdGroupCustomizerResult ad_group_customizer_result = 75; + + // The result for the ad group extension setting mutate. + MutateAdGroupExtensionSettingResult ad_group_extension_setting_result = 19; + + // The result for the ad group feed mutate. + MutateAdGroupFeedResult ad_group_feed_result = 20; + + // The result for the ad group label mutate. + MutateAdGroupLabelResult ad_group_label_result = 21; + + // The result for the ad group mutate. + MutateAdGroupResult ad_group_result = 5; + + // The result for the ad parameter mutate. + MutateAdParameterResult ad_parameter_result = 22; + + // The result for the ad mutate. + MutateAdResult ad_result = 49; + + // The result for the asset mutate. + MutateAssetResult asset_result = 23; + + // The result for the asset group asset mutate. + MutateAssetGroupAssetResult asset_group_asset_result = 65; + + // The result for the asset group listing group filter mutate. + MutateAssetGroupListingGroupFilterResult asset_group_listing_group_filter_result = 78; + + // The result for the asset group signal mutate. + MutateAssetGroupSignalResult asset_group_signal_result = 79; + + // The result for the asset group mutate. + MutateAssetGroupResult asset_group_result = 62; + + // The result for the asset set asset mutate. + MutateAssetSetAssetResult asset_set_asset_result = 71; + + // The result for the asset set mutate. + MutateAssetSetResult asset_set_result = 72; + + // The result for the audience mutate. + MutateAudienceResult audience_result = 80; + + // The result for the bidding data exclusion mutate. + MutateBiddingDataExclusionsResult bidding_data_exclusion_result = 58; + + // The result for the bidding seasonality adjustment mutate. + MutateBiddingSeasonalityAdjustmentsResult bidding_seasonality_adjustment_result = 59; + + // The result for the bidding strategy mutate. + MutateBiddingStrategyResult bidding_strategy_result = 6; + + // The result for the campaign asset mutate. + MutateCampaignAssetResult campaign_asset_result = 52; + + // The result for the campaign asset set mutate. + MutateCampaignAssetSetResult campaign_asset_set_result = 73; + + // The result for the campaign bid modifier mutate. + MutateCampaignBidModifierResult campaign_bid_modifier_result = 7; + + // The result for the campaign budget mutate. + MutateCampaignBudgetResult campaign_budget_result = 8; + + // The result for the campaign conversion goal mutate. + MutateCampaignConversionGoalResult campaign_conversion_goal_result = 67; + + // The result for the campaign criterion mutate. + MutateCampaignCriterionResult campaign_criterion_result = 13; + + // The result for the campaign customizer mutate. + MutateCampaignCustomizerResult campaign_customizer_result = 76; + + // The result for the campaign draft mutate. + MutateCampaignDraftResult campaign_draft_result = 24; + + // The result for the campaign experiment mutate. + MutateCampaignExperimentResult campaign_experiment_result = 25; + + // The result for the campaign extension setting mutate. + MutateCampaignExtensionSettingResult campaign_extension_setting_result = 26; + + // The result for the campaign feed mutate. + MutateCampaignFeedResult campaign_feed_result = 27; + + // The result for the campaign group mutate. + MutateCampaignGroupResult campaign_group_result = 9; + + // The result for the campaign label mutate. + MutateCampaignLabelResult campaign_label_result = 28; + + // The result for the campaign mutate. + MutateCampaignResult campaign_result = 10; + + // The result for the campaign shared set mutate. + MutateCampaignSharedSetResult campaign_shared_set_result = 11; + + // The result for the conversion action mutate. + MutateConversionActionResult conversion_action_result = 12; + + // The result for the conversion custom variable mutate. + MutateConversionCustomVariableResult conversion_custom_variable_result = 55; + + // The result for the conversion goal campaign config mutate. + MutateConversionGoalCampaignConfigResult conversion_goal_campaign_config_result = 69; + + // The result for the conversion value rule mutate. + MutateConversionValueRuleResult conversion_value_rule_result = 63; + + // The result for the conversion value rule set mutate. + MutateConversionValueRuleSetResult conversion_value_rule_set_result = 64; + + // The result for the custom conversion goal mutate. + MutateCustomConversionGoalResult custom_conversion_goal_result = 68; + + // The result for the customer asset mutate. + MutateCustomerAssetResult customer_asset_result = 57; + + // The result for the customer conversion goal mutate. + MutateCustomerConversionGoalResult customer_conversion_goal_result = 66; + + // The result for the customer customizer mutate. + MutateCustomerCustomizerResult customer_customizer_result = 74; + + // The result for the customer extension setting mutate. + MutateCustomerExtensionSettingResult customer_extension_setting_result = 30; + + // The result for the customer feed mutate. + MutateCustomerFeedResult customer_feed_result = 31; + + // The result for the customer label mutate. + MutateCustomerLabelResult customer_label_result = 32; + + // The result for the customer negative criterion mutate. + MutateCustomerNegativeCriteriaResult customer_negative_criterion_result = 34; + + // The result for the customer mutate. + MutateCustomerResult customer_result = 35; + + // The result for the customizer attribute mutate. + MutateCustomizerAttributeResult customizer_attribute_result = 70; + + // The result for the extension feed item mutate. + MutateExtensionFeedItemResult extension_feed_item_result = 36; + + // The result for the feed item mutate. + MutateFeedItemResult feed_item_result = 37; + + // The result for the feed item set mutate. + MutateFeedItemSetResult feed_item_set_result = 53; + + // The result for the feed item set link mutate. + MutateFeedItemSetLinkResult feed_item_set_link_result = 54; + + // The result for the feed item target mutate. + MutateFeedItemTargetResult feed_item_target_result = 38; + + // The result for the feed mapping mutate. + MutateFeedMappingResult feed_mapping_result = 39; + + // The result for the feed mutate. + MutateFeedResult feed_result = 40; + + // The result for the keyword plan ad group mutate. + MutateKeywordPlanAdGroupResult keyword_plan_ad_group_result = 44; + + // The result for the keyword plan campaign mutate. + MutateKeywordPlanCampaignResult keyword_plan_campaign_result = 45; + + // The result for the keyword plan ad group keyword mutate. + MutateKeywordPlanAdGroupKeywordResult keyword_plan_ad_group_keyword_result = 50; + + // The result for the keyword plan campaign keyword mutate. + MutateKeywordPlanCampaignKeywordResult keyword_plan_campaign_keyword_result = 51; + + // The result for the keyword plan mutate. + MutateKeywordPlansResult keyword_plan_result = 48; + + // 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 remarketing action mutate. + MutateRemarketingActionResult remarketing_action_result = 43; + + // The result for the shared criterion mutate. + MutateSharedCriterionResult shared_criterion_result = 14; + + // The result for the shared set mutate. + MutateSharedSetResult shared_set_result = 15; + + // The result for the Smart campaign setting mutate. + MutateSmartCampaignSettingResult smart_campaign_setting_result = 61; + + // The result for the user list mutate. + MutateUserListResult user_list_result = 16; + } +} diff --git a/google/ads/googleads/v10/services/invoice_service.proto b/google/ads/googleads/v10/services/invoice_service.proto new file mode 100644 index 000000000..d1ad6dc8a --- /dev/null +++ b/google/ads/googleads/v10/services/invoice_service.proto @@ -0,0 +1,83 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/month_of_year.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "InvoiceServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Invoice service. + +// A service to fetch invoices issued for a billing setup during a given month. +service InvoiceService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns all invoices associated with a billing setup, for a given month. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [InvoiceError]() + // [QuotaError]() + // [RequestError]() + rpc ListInvoices(ListInvoicesRequest) returns (ListInvoicesResponse) { + option (google.api.http) = { + get: "/v10/customers/{customer_id=*}/invoices" + }; + option (google.api.method_signature) = "customer_id,billing_setup,issue_year,issue_month"; + } +} + +// Request message for fetching the invoices of a given billing setup that were +// issued during a given month. +message ListInvoicesRequest { + // Required. The ID of the customer to fetch invoices for. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The billing setup resource name of the requested invoices. + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + string billing_setup = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The issue year to retrieve invoices, in yyyy format. Only + // invoices issued in 2019 or later can be retrieved. + string issue_year = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The issue month to retrieve invoices. + google.ads.googleads.v10.enums.MonthOfYearEnum.MonthOfYear issue_month = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [InvoiceService.ListInvoices][google.ads.googleads.v10.services.InvoiceService.ListInvoices]. +message ListInvoicesResponse { + // The list of invoices that match the billing setup and time period. + repeated google.ads.googleads.v10.resources.Invoice invoices = 1; +} diff --git a/google/ads/googleads/v10/services/keyword_plan_ad_group_keyword_service.proto b/google/ads/googleads/v10/services/keyword_plan_ad_group_keyword_service.proto new file mode 100644 index 000000000..149441c2f --- /dev/null +++ b/google/ads/googleads/v10/services/keyword_plan_ad_group_keyword_service.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/keyword_plan_ad_group_keyword.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupKeywordServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the keyword plan ad group keyword service. + +// Service to manage Keyword Plan ad group keywords. KeywordPlanAdGroup is +// required to add ad group keywords. Positive and negative keywords are +// supported. A maximum of 10,000 positive keywords are allowed per keyword +// plan. A maximum of 1,000 negative keywords are allower per keyword plan. This +// includes campaign negative keywords and ad group negative keywords. +service KeywordPlanAdGroupKeywordService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes Keyword Plan ad group keywords. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanAdGroupKeywordError]() + // [KeywordPlanError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateKeywordPlanAdGroupKeywords(MutateKeywordPlanAdGroupKeywordsRequest) returns (MutateKeywordPlanAdGroupKeywordsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords][google.ads.googleads.v10.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords]. +message MutateKeywordPlanAdGroupKeywordsRequest { + // Required. The ID of the customer whose Keyword Plan ad group keywords are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Keyword Plan ad group + // keywords. + repeated KeywordPlanAdGroupKeywordOperation 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; +} + +// A single operation (create, update, remove) on a Keyword Plan ad group +// keyword. +message KeywordPlanAdGroupKeywordOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new Keyword Plan + // ad group keyword. + google.ads.googleads.v10.resources.KeywordPlanAdGroupKeyword create = 1; + + // Update operation: The Keyword Plan ad group keyword is expected to have a + // valid resource name. + google.ads.googleads.v10.resources.KeywordPlanAdGroupKeyword update = 2; + + // Remove operation: A resource name for the removed Keyword Plan ad group + // keyword is expected, in this format: + // + // `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" + }]; + } +} + +// Response message for a Keyword Plan ad group keyword mutate. +message MutateKeywordPlanAdGroupKeywordsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateKeywordPlanAdGroupKeywordResult results = 2; +} + +// The result for the Keyword Plan ad group keyword mutate. +message MutateKeywordPlanAdGroupKeywordResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" + }]; +} diff --git a/google/ads/googleads/v10/services/keyword_plan_ad_group_service.proto b/google/ads/googleads/v10/services/keyword_plan_ad_group_service.proto new file mode 100644 index 000000000..50169b29f --- /dev/null +++ b/google/ads/googleads/v10/services/keyword_plan_ad_group_service.proto @@ -0,0 +1,134 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/keyword_plan_ad_group.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the keyword plan ad group service. + +// Service to manage Keyword Plan ad groups. +service KeywordPlanAdGroupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes Keyword Plan ad groups. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanAdGroupError]() + // [KeywordPlanError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateKeywordPlanAdGroups(MutateKeywordPlanAdGroupsRequest) returns (MutateKeywordPlanAdGroupsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v10.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. +message MutateKeywordPlanAdGroupsRequest { + // Required. The ID of the customer whose Keyword Plan ad groups are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Keyword Plan ad groups. + repeated KeywordPlanAdGroupOperation 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; +} + +// A single operation (create, update, remove) on a Keyword Plan ad group. +message KeywordPlanAdGroupOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new Keyword Plan + // ad group. + google.ads.googleads.v10.resources.KeywordPlanAdGroup create = 1; + + // Update operation: The Keyword Plan ad group is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.KeywordPlanAdGroup update = 2; + + // Remove operation: A resource name for the removed Keyword Plan ad group + // is expected, in this format: + // + // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + }]; + } +} + +// Response message for a Keyword Plan ad group mutate. +message MutateKeywordPlanAdGroupsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. The order of the results is determined by the + // order of the keywords in the original request. + repeated MutateKeywordPlanAdGroupResult results = 2; +} + +// The result for the Keyword Plan ad group mutate. +message MutateKeywordPlanAdGroupResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + }]; +} diff --git a/google/ads/googleads/v10/services/keyword_plan_campaign_keyword_service.proto b/google/ads/googleads/v10/services/keyword_plan_campaign_keyword_service.proto new file mode 100644 index 000000000..704d6d512 --- /dev/null +++ b/google/ads/googleads/v10/services/keyword_plan_campaign_keyword_service.proto @@ -0,0 +1,136 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/keyword_plan_campaign_keyword.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignKeywordServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the keyword plan campaign keyword service. + +// Service to manage Keyword Plan campaign keywords. KeywordPlanCampaign is +// required to add the campaign keywords. Only negative keywords are supported. +// A maximum of 1000 negative keywords are allowed per plan. This includes both +// campaign negative keywords and ad group negative keywords. +service KeywordPlanCampaignKeywordService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes Keyword Plan campaign keywords. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanAdGroupKeywordError]() + // [KeywordPlanCampaignKeywordError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateKeywordPlanCampaignKeywords(MutateKeywordPlanCampaignKeywordsRequest) returns (MutateKeywordPlanCampaignKeywordsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords][google.ads.googleads.v10.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords]. +message MutateKeywordPlanCampaignKeywordsRequest { + // Required. The ID of the customer whose campaign keywords are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Keyword Plan campaign + // keywords. + repeated KeywordPlanCampaignKeywordOperation 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; +} + +// A single operation (create, update, remove) on a Keyword Plan campaign +// keyword. +message KeywordPlanCampaignKeywordOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new Keyword Plan + // campaign keyword. + google.ads.googleads.v10.resources.KeywordPlanCampaignKeyword create = 1; + + // Update operation: The Keyword Plan campaign keyword expected to have a + // valid resource name. + google.ads.googleads.v10.resources.KeywordPlanCampaignKeyword update = 2; + + // Remove operation: A resource name for the removed Keyword Plan campaign + // keywords expected in this format: + // + // `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" + }]; + } +} + +// Response message for a Keyword Plan campaign keyword mutate. +message MutateKeywordPlanCampaignKeywordsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateKeywordPlanCampaignKeywordResult results = 2; +} + +// The result for the Keyword Plan campaign keyword mutate. +message MutateKeywordPlanCampaignKeywordResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" + }]; +} diff --git a/google/ads/googleads/v10/services/keyword_plan_campaign_service.proto b/google/ads/googleads/v10/services/keyword_plan_campaign_service.proto new file mode 100644 index 000000000..1f9ac483f --- /dev/null +++ b/google/ads/googleads/v10/services/keyword_plan_campaign_service.proto @@ -0,0 +1,135 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/keyword_plan_campaign.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the keyword plan campaign service. + +// Service to manage Keyword Plan campaigns. +service KeywordPlanCampaignService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes Keyword Plan campaigns. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanCampaignError]() + // [KeywordPlanError]() + // [ListOperationError]() + // [MutateError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateKeywordPlanCampaigns(MutateKeywordPlanCampaignsRequest) returns (MutateKeywordPlanCampaignsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v10.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. +message MutateKeywordPlanCampaignsRequest { + // Required. The ID of the customer whose Keyword Plan campaigns are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Keyword Plan campaigns. + repeated KeywordPlanCampaignOperation 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; +} + +// A single operation (create, update, remove) on a Keyword Plan campaign. +message KeywordPlanCampaignOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new Keyword Plan + // campaign. + google.ads.googleads.v10.resources.KeywordPlanCampaign create = 1; + + // Update operation: The Keyword Plan campaign is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.KeywordPlanCampaign update = 2; + + // Remove operation: A resource name for the removed Keyword Plan campaign + // is expected, in this format: + // + // `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + }]; + } +} + +// Response message for a Keyword Plan campaign mutate. +message MutateKeywordPlanCampaignsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateKeywordPlanCampaignResult results = 2; +} + +// The result for the Keyword Plan campaign mutate. +message MutateKeywordPlanCampaignResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + }]; +} diff --git a/google/ads/googleads/v10/services/keyword_plan_idea_service.proto b/google/ads/googleads/v10/services/keyword_plan_idea_service.proto new file mode 100644 index 000000000..2f4fd4cbb --- /dev/null +++ b/google/ads/googleads/v10/services/keyword_plan_idea_service.proto @@ -0,0 +1,246 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/keyword_plan_common.proto"; +import "google/ads/googleads/v10/enums/keyword_plan_keyword_annotation.proto"; +import "google/ads/googleads/v10/enums/keyword_plan_network.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanIdeaServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the keyword plan idea service. + +// Service to generate keyword ideas. +service KeywordPlanIdeaService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns a list of keyword ideas. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanIdeaError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateKeywordIdeas(GenerateKeywordIdeasRequest) returns (GenerateKeywordIdeaResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:generateKeywordIdeas" + body: "*" + }; + } + + // Returns a list of keyword historical metrics. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateKeywordHistoricalMetrics(GenerateKeywordHistoricalMetricsRequest) returns (GenerateKeywordHistoricalMetricsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + body: "*" + }; + } +} + +// Request message for [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. +message GenerateKeywordIdeasRequest { + // The ID of the customer with the recommendation. + string customer_id = 1; + + // The resource name of the language to target. + // Required + optional string language = 14; + + // The resource names of the location to target. + // Max 10 + repeated string geo_target_constants = 15; + + // If true, adult keywords will be included in response. + // The default value is false. + bool include_adult_keywords = 10; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. To request next page of results use the + // value obtained from `next_page_token` in the previous response. + // The request fields must match across pages. + string page_token = 12; + + // Number of results to retrieve in a single page. + // A maximum of 10,000 results may be returned, if the page_size + // exceeds this, it is ignored. + // If unspecified, at most 10,000 results will be returned. + // The server may decide to further limit the number of returned resources. + // If the response contains fewer than 10,000 results it may not be assumed + // as last page of results. + int32 page_size = 13; + + // Targeting network. + google.ads.googleads.v10.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 9; + + // The keyword annotations to include in response. + repeated google.ads.googleads.v10.enums.KeywordPlanKeywordAnnotationEnum.KeywordPlanKeywordAnnotation keyword_annotation = 17; + + // The aggregate fields to include in response. + google.ads.googleads.v10.common.KeywordPlanAggregateMetrics aggregate_metrics = 16; + + // The options for historical metrics data. + google.ads.googleads.v10.common.HistoricalMetricsOptions historical_metrics_options = 18; + + // The type of seed to generate keyword ideas. + oneof seed { + // A Keyword and a specific Url to generate ideas from + // e.g. cars, www.example.com/cars. + KeywordAndUrlSeed keyword_and_url_seed = 2; + + // A Keyword or phrase to generate ideas from, e.g. cars. + KeywordSeed keyword_seed = 3; + + // A specific url to generate ideas from, e.g. www.example.com/cars. + UrlSeed url_seed = 5; + + // The site to generate ideas from, e.g. www.example.com. + SiteSeed site_seed = 11; + } +} + +// Keyword And Url Seed +message KeywordAndUrlSeed { + // The URL to crawl in order to generate keyword ideas. + optional string url = 3; + + // Requires at least one keyword. + repeated string keywords = 4; +} + +// Keyword Seed +message KeywordSeed { + // Requires at least one keyword. + repeated string keywords = 2; +} + +// Site Seed +message SiteSeed { + // The domain name of the site. If the customer requesting the ideas doesn't + // own the site provided only public information is returned. + optional string site = 2; +} + +// Url Seed +message UrlSeed { + // The URL to crawl in order to generate keyword ideas. + optional string url = 2; +} + +// Response message for [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. +message GenerateKeywordIdeaResponse { + // Results of generating keyword ideas. + repeated GenerateKeywordIdeaResult results = 1; + + // The aggregate metrics for all keyword ideas. + google.ads.googleads.v10.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 4; + + // 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. + // `next_page_token` is not returned for the last page. + string next_page_token = 2; + + // Total number of results available. + int64 total_size = 3; +} + +// The result of generating keyword ideas. +message GenerateKeywordIdeaResult { + // Text of the keyword idea. + // As in Keyword Plan historical metrics, this text may not be an actual + // keyword, but the canonical form of multiple keywords. + // See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService. + optional string text = 5; + + // The historical metrics for the keyword. + google.ads.googleads.v10.common.KeywordPlanHistoricalMetrics keyword_idea_metrics = 3; + + // The annotations for the keyword. + // The annotation data is only provided if requested. + google.ads.googleads.v10.common.KeywordAnnotations keyword_annotations = 6; + + // The list of close variants from the requested keywords that + // are combined into this GenerateKeywordIdeaResult. See + // https://support.google.com/google-ads/answer/9342105 for the + // definition of "close variants". + repeated string close_variants = 7; +} + +// Request message for +// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. +message GenerateKeywordHistoricalMetricsRequest { + // The ID of the customer with the recommendation. + string customer_id = 1; + + // A list of keywords to get historical metrics. + // Not all inputs will be returned as a result of near-exact deduplication. + // For example, if stats for "car" and "cars" are requested, only "car" will + // be returned. + // A maximum of 10,000 keywords can be used. + repeated string keywords = 2; + + // The options for historical metrics data. + google.ads.googleads.v10.common.HistoricalMetricsOptions historical_metrics_options = 3; +} + +// Response message for +// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v10.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. +message GenerateKeywordHistoricalMetricsResponse { + // List of keywords and their historical metrics. + repeated GenerateKeywordHistoricalMetricsResult results = 1; +} + +// The result of generating keyword historical metrics. +message GenerateKeywordHistoricalMetricsResult { + // The text of the query associated with one or more keywords. + // Note that we de-dupe your keywords list, eliminating close variants + // before returning the keywords as text. For example, if your request + // originally contained the keywords "car" and "cars", the returned search + // query will only contain "cars". The list of de-duped queries will be + // included in close_variants field. + optional string text = 1; + + // The list of close variants from the requested keywords whose stats + // are combined into this GenerateKeywordHistoricalMetricsResult. + repeated string close_variants = 3; + + // The historical metrics for text and its close variants + google.ads.googleads.v10.common.KeywordPlanHistoricalMetrics keyword_metrics = 2; +} diff --git a/google/ads/googleads/v10/services/keyword_plan_service.proto b/google/ads/googleads/v10/services/keyword_plan_service.proto new file mode 100644 index 000000000..b6d646672 --- /dev/null +++ b/google/ads/googleads/v10/services/keyword_plan_service.proto @@ -0,0 +1,421 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/keyword_plan_common.proto"; +import "google/ads/googleads/v10/resources/keyword_plan.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the keyword plan service. + +// Service to manage keyword plans. +service KeywordPlanService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes keyword plans. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [StringLengthError]() + rpc MutateKeywordPlans(MutateKeywordPlansRequest) returns (MutateKeywordPlansResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/keywordPlans:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Returns the requested Keyword Plan forecast curve. + // Only the bidding strategy is considered for generating forecast curve. + // The bidding strategy value specified in the plan is ignored. + // + // To generate a forecast at a value specified in the plan, use + // KeywordPlanService.GenerateForecastMetrics. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateForecastCurve(GenerateForecastCurveRequest) returns (GenerateForecastCurveResponse) { + option (google.api.http) = { + post: "/v10/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" + body: "*" + }; + option (google.api.method_signature) = "keyword_plan"; + } + + // Returns a forecast in the form of a time series for the Keyword Plan over + // the next 52 weeks. + // (1) Forecasts closer to the current date are generally more accurate than + // further out. + // + // (2) The forecast reflects seasonal trends using current and + // prior traffic patterns. The forecast period of the plan is ignored. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateForecastTimeSeries(GenerateForecastTimeSeriesRequest) returns (GenerateForecastTimeSeriesResponse) { + option (google.api.http) = { + post: "/v10/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" + body: "*" + }; + option (google.api.method_signature) = "keyword_plan"; + } + + // Returns the requested Keyword Plan forecasts. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateForecastMetrics(GenerateForecastMetricsRequest) returns (GenerateForecastMetricsResponse) { + option (google.api.http) = { + post: "/v10/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" + body: "*" + }; + option (google.api.method_signature) = "keyword_plan"; + } + + // Returns the requested Keyword Plan historical metrics. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateHistoricalMetrics(GenerateHistoricalMetricsRequest) returns (GenerateHistoricalMetricsResponse) { + option (google.api.http) = { + post: "/v10/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" + body: "*" + }; + option (google.api.method_signature) = "keyword_plan"; + } +} + +// Request message for [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual keyword plans. + repeated KeywordPlanOperation 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; +} + +// A single operation (create, update, remove) on a keyword plan. +message KeywordPlanOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new keyword plan. + google.ads.googleads.v10.resources.KeywordPlan create = 1; + + // Update operation: The keyword plan is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.KeywordPlan update = 2; + + // Remove operation: A resource name for the removed keyword plan is + // expected in this format: + // + // `customers/{customer_id}/keywordPlans/{keyword_plan_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + }]; + } +} + +// Response message for a keyword plan mutate. +message MutateKeywordPlansResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateKeywordPlansResult results = 2; +} + +// The result for the keyword plan mutate. +message MutateKeywordPlansResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + }]; +} + +// Request message for [KeywordPlanService.GenerateForecastCurve][google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastCurve]. +message GenerateForecastCurveRequest { + // Required. The resource name of the keyword plan to be forecasted. + string keyword_plan = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; +} + +// Response message for [KeywordPlanService.GenerateForecastCurve][google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastCurve]. +message GenerateForecastCurveResponse { + // List of forecast curves for the keyword plan campaign. + // One maximum. + repeated KeywordPlanCampaignForecastCurve campaign_forecast_curves = 1; +} + +// Request message for [KeywordPlanService.GenerateForecastTimeSeries][google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastTimeSeries]. +message GenerateForecastTimeSeriesRequest { + // Required. The resource name of the keyword plan to be forecasted. + string keyword_plan = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; +} + +// Response message for [KeywordPlanService.GenerateForecastTimeSeries][google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastTimeSeries]. +message GenerateForecastTimeSeriesResponse { + // List of weekly time series forecasts for the keyword plan campaign. + // One maximum. + repeated KeywordPlanWeeklyTimeSeriesForecast weekly_time_series_forecasts = 1; +} + +// Request message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastMetrics]. +message GenerateForecastMetricsRequest { + // Required. The resource name of the keyword plan to be forecasted. + string keyword_plan = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; +} + +// Response message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v10.services.KeywordPlanService.GenerateForecastMetrics]. +message GenerateForecastMetricsResponse { + // List of campaign forecasts. + // One maximum. + repeated KeywordPlanCampaignForecast campaign_forecasts = 1; + + // List of ad group forecasts. + repeated KeywordPlanAdGroupForecast ad_group_forecasts = 2; + + // List of keyword forecasts. + repeated KeywordPlanKeywordForecast keyword_forecasts = 3; +} + +// A campaign forecast. +message KeywordPlanCampaignForecast { + // The resource name of the Keyword Plan campaign related to the forecast. + // + // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` + optional string keyword_plan_campaign = 3; + + // The forecast for the Keyword Plan campaign. + ForecastMetrics campaign_forecast = 2; +} + +// An ad group forecast. +message KeywordPlanAdGroupForecast { + // The resource name of the Keyword Plan ad group related to the forecast. + // + // `customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}` + optional string keyword_plan_ad_group = 3; + + // The forecast for the Keyword Plan ad group. + ForecastMetrics ad_group_forecast = 2; +} + +// A keyword forecast. +message KeywordPlanKeywordForecast { + // The resource name of the Keyword Plan keyword related to the forecast. + // + // `customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}` + optional string keyword_plan_ad_group_keyword = 3; + + // The forecast for the Keyword Plan keyword. + ForecastMetrics keyword_forecast = 2; +} + +// The forecast curve for the campaign. +message KeywordPlanCampaignForecastCurve { + // The resource name of the Keyword Plan campaign related to the forecast. + // + // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` + optional string keyword_plan_campaign = 3; + + // The max cpc bid forecast curve for the campaign. + KeywordPlanMaxCpcBidForecastCurve max_cpc_bid_forecast_curve = 2; +} + +// The max cpc bid forecast curve. +message KeywordPlanMaxCpcBidForecastCurve { + // The forecasts for the Keyword Plan campaign at different max CPC bids. + repeated KeywordPlanMaxCpcBidForecast max_cpc_bid_forecasts = 1; +} + +// The forecast of the campaign at a specific bid. +message KeywordPlanMaxCpcBidForecast { + // The max cpc bid in micros. + optional int64 max_cpc_bid_micros = 3; + + // The forecast for the Keyword Plan campaign at the specific bid. + ForecastMetrics max_cpc_bid_forecast = 2; +} + +// The weekly time series forecast for the keyword plan campaign. +message KeywordPlanWeeklyTimeSeriesForecast { + // The resource name of the Keyword Plan campaign related to the forecast. + // + // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` + optional string keyword_plan_campaign = 1; + + // The forecasts for the Keyword Plan campaign at different max CPC bids. + repeated KeywordPlanWeeklyForecast weekly_forecasts = 2; +} + +// The forecast of the campaign for the week starting start_date. +message KeywordPlanWeeklyForecast { + // The start date, in yyyy-mm-dd format. This date is inclusive. + optional string start_date = 1; + + // The forecast for the Keyword Plan campaign for the week. + ForecastMetrics forecast = 2; +} + +// Forecast metrics. +message ForecastMetrics { + // Impressions + optional double impressions = 7; + + // Ctr + optional double ctr = 8; + + // AVG cpc + optional int64 average_cpc = 9; + + // Clicks + optional double clicks = 10; + + // Cost + optional int64 cost_micros = 11; +} + +// Request message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v10.services.KeywordPlanService.GenerateHistoricalMetrics]. +message GenerateHistoricalMetricsRequest { + // Required. The resource name of the keyword plan of which historical metrics are + // requested. + string keyword_plan = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; + + // The aggregate fields to include in response. + google.ads.googleads.v10.common.KeywordPlanAggregateMetrics aggregate_metrics = 2; + + // The options for historical metrics data. + google.ads.googleads.v10.common.HistoricalMetricsOptions historical_metrics_options = 3; +} + +// Response message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v10.services.KeywordPlanService.GenerateHistoricalMetrics]. +message GenerateHistoricalMetricsResponse { + // List of keyword historical metrics. + repeated KeywordPlanKeywordHistoricalMetrics metrics = 1; + + // The aggregate metrics for all the keywords in the keyword planner plan. + google.ads.googleads.v10.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 2; +} + +// A keyword historical metrics. +message KeywordPlanKeywordHistoricalMetrics { + // The text of the query associated with one or more ad_group_keywords in the + // plan. + // + // Note that we de-dupe your keywords list, eliminating close variants before + // returning the plan's keywords as text. For example, if your plan originally + // contained the keywords 'car' and 'cars', the returned search query will + // only contain 'cars'. + // Starting V5, the list of de-duped queries will be included in + // close_variants field. + optional string search_query = 4; + + // The list of close variant queries for search_query whose search results + // are combined into the search_query. + repeated string close_variants = 3; + + // The historical metrics for the query associated with one or more + // ad_group_keywords in the plan. + google.ads.googleads.v10.common.KeywordPlanHistoricalMetrics keyword_metrics = 2; +} diff --git a/google/ads/googleads/v10/services/keyword_theme_constant_service.proto b/google/ads/googleads/v10/services/keyword_theme_constant_service.proto new file mode 100644 index 000000000..ca22a3169 --- /dev/null +++ b/google/ads/googleads/v10/services/keyword_theme_constant_service.proto @@ -0,0 +1,77 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/keyword_theme_constant.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordThemeConstantServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Smart Campaign keyword theme constant service. + +// Service to fetch Smart Campaign keyword themes. +service KeywordThemeConstantService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns KeywordThemeConstant suggestions by keyword themes. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc SuggestKeywordThemeConstants(SuggestKeywordThemeConstantsRequest) returns (SuggestKeywordThemeConstantsResponse) { + option (google.api.http) = { + post: "/v10/keywordThemeConstants:suggest" + body: "*" + }; + } +} + +// Request message for +// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v10.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. +message SuggestKeywordThemeConstantsRequest { + // The query text of a keyword theme that will be used to map to similar + // keyword themes. E.g. "plumber" or "roofer". + string query_text = 1; + + // Upper-case, two-letter country code as defined by ISO-3166. This for + // refining the scope of the query, default to 'US' if not set. + string country_code = 2; + + // The two letter language code for get corresponding keyword theme for + // refining the scope of the query, default to 'en' if not set. + string language_code = 3; +} + +// Response message for +// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v10.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. +message SuggestKeywordThemeConstantsResponse { + // Smart Campaign keyword theme suggestions. + repeated google.ads.googleads.v10.resources.KeywordThemeConstant keyword_theme_constants = 1; +} diff --git a/google/ads/googleads/v10/services/label_service.proto b/google/ads/googleads/v10/services/label_service.proto new file mode 100644 index 000000000..c786fd817 --- /dev/null +++ b/google/ads/googleads/v10/services/label_service.proto @@ -0,0 +1,145 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/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/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "LabelServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Service to manage labels. +service LabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes labels. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateLabels(MutateLabelsRequest) returns (MutateLabelsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/labels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [LabelService.MutateLabels][google.ads.googleads.v10.services.LabelService.MutateLabels]. +message MutateLabelsRequest { + // Required. ID of the customer whose labels are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on labels. + repeated LabelOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on a label. +message LabelOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new label. + google.ads.googleads.v10.resources.Label create = 1; + + // Update operation: The label is expected to have a valid resource name. + google.ads.googleads.v10.resources.Label update = 2; + + // Remove operation: A resource name for the label being removed, in + // this format: + // + // `customers/{customer_id}/labels/{label_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + }]; + } +} + +// Response message for a labels mutate. +message MutateLabelsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateLabelResult results = 2; +} + +// The result for a label mutate. +message MutateLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + }]; + + // 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.v10.resources.Label label = 2; +} diff --git a/google/ads/googleads/v10/services/media_file_service.proto b/google/ads/googleads/v10/services/media_file_service.proto new file mode 100644 index 000000000..6f697a09f --- /dev/null +++ b/google/ads/googleads/v10/services/media_file_service.proto @@ -0,0 +1,131 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "MediaFileServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::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: "/v10/customers/{customer_id=*}/mediaFiles:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [MediaFileService.MutateMediaFiles][google.ads.googleads.v10.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.v10.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.v10.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 (e.g. 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.v10.resources.MediaFile media_file = 2; +} diff --git a/google/ads/googleads/v10/services/merchant_center_link_service.proto b/google/ads/googleads/v10/services/merchant_center_link_service.proto new file mode 100644 index 000000000..76d59dfb7 --- /dev/null +++ b/google/ads/googleads/v10/services/merchant_center_link_service.proto @@ -0,0 +1,164 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "MerchantCenterLinkServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::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: "/v10/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.v10.resources.MerchantCenterLink) { + option (google.api.http) = { + get: "/v10/{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: "/v10/customers/{customer_id=*}/merchantCenterLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for [MerchantCenterLinkService.ListMerchantCenterLinks][google.ads.googleads.v10.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.v10.services.MerchantCenterLinkService.ListMerchantCenterLinks]. +message ListMerchantCenterLinksResponse { + // Merchant Center links available for the requested customer + repeated google.ads.googleads.v10.resources.MerchantCenterLink merchant_center_links = 1; +} + +// Request message for [MerchantCenterLinkService.GetMerchantCenterLink][google.ads.googleads.v10.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.v10.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.v10.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/google/ads/googleads/v10/services/offline_user_data_job_service.proto b/google/ads/googleads/v10/services/offline_user_data_job_service.proto new file mode 100644 index 000000000..703285740 --- /dev/null +++ b/google/ads/googleads/v10/services/offline_user_data_job_service.proto @@ -0,0 +1,212 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/offline_user_data.proto"; +import "google/ads/googleads/v10/resources/offline_user_data_job.proto"; +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/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the OfflineUserDataJobService. + +// Service to manage offline user data jobs. +service OfflineUserDataJobService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates an offline user data job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [NotAllowlistedError]() + // [OfflineUserDataJobError]() + // [QuotaError]() + // [RequestError]() + rpc CreateOfflineUserDataJob(CreateOfflineUserDataJobRequest) returns (CreateOfflineUserDataJobResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/offlineUserDataJobs:create" + body: "*" + }; + option (google.api.method_signature) = "customer_id,job"; + } + + // Adds operations to the offline user data job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [OfflineUserDataJobError]() + // [QuotaError]() + // [RequestError]() + rpc AddOfflineUserDataJobOperations(AddOfflineUserDataJobOperationsRequest) returns (AddOfflineUserDataJobOperationsResponse) { + option (google.api.http) = { + post: "/v10/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + body: "*" + }; + option (google.api.method_signature) = "resource_name,operations"; + } + + // Runs the offline user data job. + // + // When finished, the long running operation will contain the processing + // result or failure information, if any. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [HeaderError]() + // [InternalError]() + // [OfflineUserDataJobError]() + // [QuotaError]() + // [RequestError]() + rpc RunOfflineUserDataJob(RunOfflineUserDataJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v10/{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.v10.resources.OfflineUserDataJobMetadata" + }; + } +} + +// Request message for +// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v10.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.v10.resources.OfflineUserDataJob job = 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; + + // If true, match rate range for the offline user data job is calculated and + // made available in the resource. + bool enable_match_rate_range_preview = 5; +} + +// Response message for +// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v10.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. +message CreateOfflineUserDataJobResponse { + // The resource name of the OfflineUserDataJob. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + }]; +} + +// Request message for [OfflineUserDataJobService.RunOfflineUserDataJob][google.ads.googleads.v10.services.OfflineUserDataJobService.RunOfflineUserDataJob]. +message RunOfflineUserDataJobRequest { + // Required. The resource name of the OfflineUserDataJob to run. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// Request message for +// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v10.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. +message AddOfflineUserDataJobOperationsRequest { + // Required. The resource name of the OfflineUserDataJob. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + } + ]; + + // True to enable partial failure for the offline user data job. + optional bool enable_partial_failure = 4; + + // True to enable warnings for the offline user data job. When enabled, a + // warning will not block the OfflineUserDataJobOperation, and will also + // return warning messages about malformed field values. + optional bool enable_warnings = 6; + + // Required. The list of operations to be done. + repeated OfflineUserDataJobOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 5; +} + +// Operation to be made for the AddOfflineUserDataJobOperationsRequest. +message OfflineUserDataJobOperation { + // Operation to be made for the AddOfflineUserDataJobOperationsRequest. + oneof operation { + // Add the provided data to the transaction. Data cannot be retrieved after + // being uploaded. + google.ads.googleads.v10.common.UserData create = 1; + + // Remove the provided data from the transaction. Data cannot be retrieved + // after being uploaded. + google.ads.googleads.v10.common.UserData remove = 2; + + // Remove all previously provided data. This is only supported for Customer + // Match. + bool remove_all = 3; + } +} + +// Response message for +// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v10.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 + // operations. If any errors occur outside the operations (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // Non blocking errors that pertain to operation failures in the warnings + // mode. Returned only when enable_warnings = true. + google.rpc.Status warning = 2; +} diff --git a/google/ads/googleads/v10/services/payments_account_service.proto b/google/ads/googleads/v10/services/payments_account_service.proto new file mode 100644 index 000000000..a7f13749b --- /dev/null +++ b/google/ads/googleads/v10/services/payments_account_service.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "PaymentsAccountServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the payments account service. + +// Service to provide payments accounts that can be used to set up consolidated +// billing. +service PaymentsAccountService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns all payments accounts associated with all managers + // between the login customer ID and specified serving customer in the + // hierarchy, inclusive. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [PaymentsAccountError]() + // [QuotaError]() + // [RequestError]() + rpc ListPaymentsAccounts(ListPaymentsAccountsRequest) returns (ListPaymentsAccountsResponse) { + option (google.api.http) = { + get: "/v10/customers/{customer_id=*}/paymentsAccounts" + }; + option (google.api.method_signature) = "customer_id"; + } +} + +// Request message for fetching all accessible payments accounts. +message ListPaymentsAccountsRequest { + // Required. The ID of the customer to apply the PaymentsAccount list operation to. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v10.services.PaymentsAccountService.ListPaymentsAccounts]. +message ListPaymentsAccountsResponse { + // The list of accessible payments accounts. + repeated google.ads.googleads.v10.resources.PaymentsAccount payments_accounts = 1; +} diff --git a/google/ads/googleads/v10/services/reach_plan_service.proto b/google/ads/googleads/v10/services/reach_plan_service.proto new file mode 100644 index 000000000..da1ec03bf --- /dev/null +++ b/google/ads/googleads/v10/services/reach_plan_service.proto @@ -0,0 +1,568 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/common/dates.proto"; +import "google/ads/googleads/v10/enums/frequency_cap_time_unit.proto"; +import "google/ads/googleads/v10/enums/reach_plan_ad_length.proto"; +import "google/ads/googleads/v10/enums/reach_plan_age_range.proto"; +import "google/ads/googleads/v10/enums/reach_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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the reach plan service. + +// Reach Plan Service gives users information about audience size that can +// be reached through advertisement on YouTube. In particular, +// GenerateReachForecast provides estimated number of people of specified +// demographics that can be reached by an ad in a given market by a campaign of +// certain duration with a defined budget. +service ReachPlanService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns the list of plannable locations (for example, countries). + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListPlannableLocations(ListPlannableLocationsRequest) returns (ListPlannableLocationsResponse) { + option (google.api.http) = { + post: "/v10:listPlannableLocations" + body: "*" + }; + } + + // Returns the list of per-location plannable YouTube ad formats with allowed + // targeting. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) { + option (google.api.http) = { + post: "/v10:listPlannableProducts" + body: "*" + }; + option (google.api.method_signature) = "plannable_location_id"; + } + + // Generates a product mix ideas given a set of preferences. This method + // helps the advertiser to obtain a good mix of ad formats and budget + // allocations based on its preferences. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [ReachPlanError]() + // [RequestError]() + rpc GenerateProductMixIdeas(GenerateProductMixIdeasRequest) returns (GenerateProductMixIdeasResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:generateProductMixIdeas" + body: "*" + }; + option (google.api.method_signature) = "customer_id,plannable_location_id,currency_code,budget_micros"; + } + + // Generates a reach forecast for a given targeting / product mix. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [ReachPlanError]() + // [RequestError]() + rpc GenerateReachForecast(GenerateReachForecastRequest) returns (GenerateReachForecastResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:generateReachForecast" + body: "*" + }; + option (google.api.method_signature) = "customer_id,campaign_duration,planned_products"; + } +} + +// Request message for [ReachPlanService.ListPlannableLocations][google.ads.googleads.v10.services.ReachPlanService.ListPlannableLocations]. +message ListPlannableLocationsRequest { + +} + +// The list of plannable locations. +message ListPlannableLocationsResponse { + // The list of locations available for planning. + // See + // https://developers.google.com/google-ads/api/reference/data/geotargets + // for sample locations. + repeated PlannableLocation plannable_locations = 1; +} + +// A plannable location: country, metro region, province, etc. +message PlannableLocation { + // The location identifier. + optional string id = 4; + + // The unique location name in English. + optional string name = 5; + + // 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.v10.services.ReachPlanService.ListPlannableLocations] or + // [GoogleAdsService.Search/SearchStream][]. + optional int64 parent_country_id = 6; + + // The ISO-3166-1 alpha-2 country code that is associated with the location. + optional string country_code = 7; + + // The location's type. Location types correspond to target_type returned by + // searching location type in [GoogleAdsService.Search/SearchStream][]. + optional string location_type = 8; +} + +// Request to list available products in a given location. +message ListPlannableProductsRequest { + // Required. The ID of the selected location for planning. To list the available + // plannable location IDs use [ReachPlanService.ListPlannableLocations][google.ads.googleads.v10.services.ReachPlanService.ListPlannableLocations]. + string plannable_location_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A response with all available products. +message ListPlannableProductsResponse { + // The list of products available for planning and related targeting metadata. + repeated ProductMetadata product_metadata = 1; +} + +// The metadata associated with an available plannable product. +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.v10.services.ReachPlanService.ListPlannableProducts]. + optional string plannable_product_code = 4; + + // The name associated with the ad product. + string plannable_product_name = 3; + + // The allowed plannable targeting for this product. + PlannableTargeting plannable_targeting = 2; +} + +// The targeting for which traffic metrics will be reported. +message PlannableTargeting { + // Allowed plannable age ranges for the product for which metrics will be + // reported. Actual targeting is computed by mapping this age range onto + // standard Google common.AgeRangeInfo values. + repeated google.ads.googleads.v10.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_ranges = 1; + + // Targetable genders for the ad product. + repeated google.ads.googleads.v10.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.v10.common.DeviceInfo devices = 3; + + // Targetable networks for the ad product. + repeated google.ads.googleads.v10.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4; +} + +// Request message for [ReachPlanService.GenerateProductMixIdeas][google.ads.googleads.v10.services.ReachPlanService.GenerateProductMixIdeas]. +message GenerateProductMixIdeasRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the location, this is one of the IDs returned by + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v10.services.ReachPlanService.ListPlannableLocations]. + string plannable_location_id = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. Currency code. + // Three-character ISO 4217 currency code. + string currency_code = 7 [(google.api.field_behavior) = REQUIRED]; + + // Required. Total budget. + // Amount in micros. One million is equivalent to one unit. + int64 budget_micros = 8 [(google.api.field_behavior) = REQUIRED]; + + // The preferences of the suggested product mix. + // An unset preference is interpreted as all possible values are allowed, + // unless explicitly specified. + Preferences preferences = 5; +} + +// Set of preferences about the planned mix. +message Preferences { + // True if ad skippable. + // If not set, default is any value. + optional bool is_skippable = 6; + + // True if ad start with sound. + // If not set, default is any value. + optional bool starts_with_sound = 7; + + // The length of the ad. + // If not set, default is any value. + google.ads.googleads.v10.enums.ReachPlanAdLengthEnum.ReachPlanAdLength ad_length = 3; + + // True if ad will only show on the top content. + // If not set, default is false. + optional bool top_content_only = 8; + + // True if the price is guaranteed. The cost of serving the ad is agreed + // upfront and not subject to an auction. + // If not set, default is any value. + optional bool has_guaranteed_price = 9; +} + +// The suggested product mix. +message GenerateProductMixIdeasResponse { + // A list of products (ad formats) and the associated budget allocation idea. + repeated ProductAllocation product_allocation = 1; +} + +// An allocation of a part of the budget on a given product. +message ProductAllocation { + // Selected product for planning. The product codes returned are within the + // set of the ones returned by ListPlannableProducts when using the same + // location ID. + optional string plannable_product_code = 3; + + // The value to be allocated for the suggested product in requested currency. + // Amount in micros. One million is equivalent to one unit. + optional int64 budget_micros = 4; +} + +// Request message for [ReachPlanService.GenerateReachForecast][google.ads.googleads.v10.services.ReachPlanService.GenerateReachForecast]. +message GenerateReachForecastRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // The currency code. + // Three-character ISO 4217 currency code. + optional string currency_code = 9; + + // Required. Campaign duration. + CampaignDuration campaign_duration = 3 [(google.api.field_behavior) = REQUIRED]; + + // Desired cookie frequency cap to be applied to each planned product. + // This is equivalent to the frequency cap exposed in Google Ads when creating + // a campaign, it represents the maximum number of times an ad can be shown to + // the same user. + // If not specified, no cap is applied. + // + // This field is deprecated in v4 and will eventually be removed. + // Please use cookie_frequency_cap_setting instead. + optional int32 cookie_frequency_cap = 10; + + // Desired cookie frequency cap to be applied to each planned product. + // This is equivalent to the frequency cap exposed in Google Ads when creating + // a campaign, it represents the maximum number of times an ad can be shown to + // the same user during a specified time interval. + // If not specified, a default of 0 (no cap) is applied. + // + // This field replaces the deprecated cookie_frequency_cap field. + FrequencyCap cookie_frequency_cap_setting = 8; + + // Desired minimum effective frequency (the number of times a person was + // exposed to the ad) for the reported reach metrics [1-10]. + // This won't affect the targeting, but just the reporting. + // If not specified, a default of 1 is applied. + // + // This field cannot be combined with the effective_frequency_limit field. + optional int32 min_effective_frequency = 11; + + // The highest minimum effective frequency (the number of times a person was + // exposed to the ad) value [1-10] to include in + // Forecast.effective_frequency_breakdowns. + // If not specified, Forecast.effective_frequency_breakdowns will not be + // provided. + // + // The effective frequency value provided here will also be used as the + // minimum effective frequency for the reported reach metrics. + // + // This field cannot be combined with the min_effective_frequency field. + optional EffectiveFrequencyLimit effective_frequency_limit = 12; + + // The targeting to be applied to all products selected in the product mix. + // + // This is planned targeting: execution details might vary based on the + // advertising product, please consult an implementation specialist. + // + // See specific metrics for details on how targeting affects them. + Targeting targeting = 6; + + // Required. The products to be forecast. + // The max number of allowed planned products is 15. + repeated PlannedProduct planned_products = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// Effective frequency limit. +message EffectiveFrequencyLimit { + // The highest effective frequency value to include in + // Forecast.effective_frequency_breakdowns. + // This field supports frequencies 1-10, inclusive. + int32 effective_frequency_breakdown_limit = 1; +} + +// A rule specifying the maximum number of times an ad can be shown to a user +// over a particular time period. +message FrequencyCap { + // Required. The number of impressions, inclusive. + int32 impressions = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of time unit. + google.ads.googleads.v10.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The targeting for which traffic metrics will be reported. +message Targeting { + // Required. The ID of the selected location. Plannable location IDs can be + // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v10.services.ReachPlanService.ListPlannableLocations]. + optional string plannable_location_id = 6; + + // Targeted age range. + // An unset value is equivalent to targeting all ages. + google.ads.googleads.v10.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2; + + // Targeted genders. + // An unset value is equivalent to targeting MALE and FEMALE. + repeated google.ads.googleads.v10.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.v10.services.ReachPlanService.ListPlannableProducts]. + repeated google.ads.googleads.v10.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.v10.services.ReachPlanService.ListPlannableProducts]. + google.ads.googleads.v10.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = 5; +} + +// The duration of a planned campaign. +message CampaignDuration { + // The duration value in days. + // + // This field cannot be combined with the date_range field. + optional int32 duration_in_days = 2; + + // Date range of the campaign. + // Dates are in the yyyy-mm-dd format and inclusive. + // The end date must be < 1 year in the future and the + // date range must be <= 92 days long. + // + // This field cannot be combined with the duration_in_days field. + google.ads.googleads.v10.common.DateRange date_range = 3; +} + +// A product being planned for reach. +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.v10.services.ReachPlanService.ListPlannableProducts]. + optional string plannable_product_code = 3; + + // Required. Maximum budget allocation in micros for the selected product. + // The value is specified in the selected planning currency_code. + // For example: 1 000 000$ = 1 000 000 000 000 micros. + optional int64 budget_micros = 4; +} + +// Response message containing the generated reach curve. +message GenerateReachForecastResponse { + // Reference on target audiences for this curve. + OnTargetAudienceMetrics on_target_audience_metrics = 1; + + // The generated reach curve for the planned product mix. + ReachCurve reach_curve = 2; +} + +// The reach curve for the planned products. +message ReachCurve { + // All points on the reach curve. + repeated ReachForecast reach_forecasts = 1; +} + +// A point on reach curve. +message ReachForecast { + // The cost in micros. + int64 cost_micros = 5; + + // Forecasted traffic metrics for this point. + Forecast forecast = 2; + + // The forecasted allocation and traffic metrics for each planned product + // at this point on the reach curve. + repeated PlannedProductReachForecast planned_product_reach_forecasts = 4; +} + +// Forecasted traffic metrics for the planned products and targeting. +message Forecast { + // Number of unique people reached at least + // GenerateReachForecastRequest.min_effective_frequency or + // GenerateReachForecastRequest.effective_frequency_limit times that exactly + // matches the Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the on_target_reach + // value will be rounded to 0. + optional int64 on_target_reach = 5; + + // Total number of unique people reached at least + // GenerateReachForecastRequest.min_effective_frequency or + // GenerateReachForecastRequest.effective_frequency_limit times. This includes + // people that may fall outside the specified Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the total_reach + // value will be rounded to 0. + optional int64 total_reach = 6; + + // Number of ad impressions that exactly matches the Targeting. + optional int64 on_target_impressions = 7; + + // Total number of ad impressions. This includes impressions that may fall + // outside the specified Targeting, due to insufficient information on + // signed-in users. + optional int64 total_impressions = 8; + + // Number of times the ad's impressions were considered viewable. + // See https://support.google.com/google-ads/answer/7029393 for + // more information about what makes an ad viewable and how + // viewability is measured. + optional int64 viewable_impressions = 9; + + // A list of effective frequency forecasts. The list is ordered starting with + // 1+ and ending with the value set in + // GenerateReachForecastRequest.effective_frequency_limit. If no + // effective_frequency_limit was set, this list will be empty. + repeated EffectiveFrequencyBreakdown effective_frequency_breakdowns = 10; +} + +// The forecasted allocation and traffic metrics for a specific product +// at a point on the reach curve. +message PlannedProductReachForecast { + // Selected product for planning. The product codes returned are within the + // set of the ones returned by ListPlannableProducts when using the same + // location ID. + string plannable_product_code = 1; + + // The cost in micros. This may differ from the product's input allocation + // if one or more planned products cannot fulfill the budget because of + // limited inventory. + int64 cost_micros = 2; + + // Forecasted traffic metrics for this product. + PlannedProductForecast planned_product_forecast = 3; +} + +// Forecasted traffic metrics for a planned product. +message PlannedProductForecast { + // Number of unique people reached that exactly matches the Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the on_target_reach + // value will be rounded to 0. + int64 on_target_reach = 1; + + // Number of unique people reached. This includes people that may fall + // outside the specified Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the total_reach + // value will be rounded to 0. + int64 total_reach = 2; + + // Number of ad impressions that exactly matches the Targeting. + int64 on_target_impressions = 3; + + // Total number of ad impressions. This includes impressions that may fall + // outside the specified Targeting, due to insufficient information on + // signed-in users. + int64 total_impressions = 4; + + // Number of times the ad's impressions were considered viewable. + // See https://support.google.com/google-ads/answer/7029393 for + // more information about what makes an ad viewable and how + // viewability is measured. + optional int64 viewable_impressions = 5; +} + +// Audience metrics for the planned products. +// These metrics consider the following targeting dimensions: +// +// - Location +// - PlannableAgeRange +// - Gender +message OnTargetAudienceMetrics { + // Reference audience size matching the considered targeting for YouTube. + optional int64 youtube_audience_size = 3; + + // Reference audience size matching the considered targeting for Census. + optional int64 census_audience_size = 4; +} + +// A breakdown of the number of unique people reached at a given effective +// frequency. +message EffectiveFrequencyBreakdown { + // The effective frequency [1-10]. + int32 effective_frequency = 1; + + // The number of unique people reached at least effective_frequency times that + // exactly matches the Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the on_target_reach + // value will be rounded to 0. + int64 on_target_reach = 2; + + // Total number of unique people reached at least effective_frequency times. + // This includes people that may fall outside the specified Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the total_reach + // value will be rounded to 0. + int64 total_reach = 3; +} diff --git a/google/ads/googleads/v10/services/recommendation_service.proto b/google/ads/googleads/v10/services/recommendation_service.proto new file mode 100644 index 000000000..f332a2239 --- /dev/null +++ b/google/ads/googleads/v10/services/recommendation_service.proto @@ -0,0 +1,304 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/extensions.proto"; +import "google/ads/googleads/v10/enums/keyword_match_type.proto"; +import "google/ads/googleads/v10/resources/ad.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Recommendation service. + +// Service to manage recommendations. +service RecommendationService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Applies given recommendations with corresponding apply parameters. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RecommendationError]() + // [RequestError]() + // [UrlFieldError]() + rpc ApplyRecommendation(ApplyRecommendationRequest) returns (ApplyRecommendationResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/recommendations:apply" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Dismisses given recommendations. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RecommendationError]() + // [RequestError]() + rpc DismissRecommendation(DismissRecommendationRequest) returns (DismissRecommendationResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/recommendations:dismiss" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v10.services.RecommendationService.ApplyRecommendation]. +message ApplyRecommendationRequest { + // Required. The ID of the customer with the recommendation. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to apply recommendations. + // If partial_failure=false all recommendations should be of the same type + // There is a limit of 100 operations per request. + repeated ApplyRecommendationOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; + + // If true, successful operations will be carried out and invalid + // operations will return errors. If false, operations will be carried + // out as a transaction if and only if they are all valid. + // Default is false. + bool partial_failure = 3; +} + +// Information about the operation to apply a recommendation and any parameters +// to customize it. +message ApplyRecommendationOperation { + // Parameters to use when applying a campaign budget recommendation. + message CampaignBudgetParameters { + // New budget amount to set for target budget resource. This is a required + // field. + optional int64 new_budget_amount_micros = 2; + } + + // Parameters to use when applying a text ad recommendation. + 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.v10.resources.Ad ad = 1; + } + + // Parameters to use when applying keyword recommendation. + message KeywordParameters { + // The ad group resource to add keyword to. This is a required field. + optional string ad_group = 4; + + // The match type of the keyword. This is a required field. + google.ads.googleads.v10.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; + + // Optional, CPC bid to set for the keyword. If not set, keyword will use + // bid based on bidding strategy used by target ad group. + optional int64 cpc_bid_micros = 5; + } + + // Parameters to use when applying Target CPA recommendation. + message TargetCpaOptInParameters { + // Average CPA to use for Target CPA bidding strategy. This is a required + // field. + optional int64 target_cpa_micros = 3; + + // Optional, budget amount to set for the campaign. + optional int64 new_campaign_budget_amount_micros = 4; + } + + // Parameters to use when applying a Target ROAS opt-in recommendation. + message TargetRoasOptInParameters { + // Average ROAS (revenue per unit of spend) to use for Target ROAS bidding + // strategy. The value is between 0.01 and 1000.0, inclusive. This is a + // required field, unless new_campaign_budget_amount_micros is set. + optional double target_roas = 1; + + // Optional, budget amount to set for the campaign. + optional int64 new_campaign_budget_amount_micros = 2; + } + + // Parameters to use when applying callout extension recommendation. + message CalloutExtensionParameters { + // Callout extensions to be added. This is a required field. + repeated google.ads.googleads.v10.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.v10.common.CallFeedItem call_extensions = 1; + } + + // Parameters to use when applying sitelink extension recommendation. + message SitelinkExtensionParameters { + // Sitelink extensions to be added. This is a required field. + repeated google.ads.googleads.v10.common.SitelinkFeedItem sitelink_extensions = 1; + } + + // Parameters to use when applying move unused budget recommendation. + message MoveUnusedBudgetParameters { + // Budget amount to move from excess budget to constrained budget. This is + // a required field. + optional int64 budget_micros_to_move = 2; + } + + // Parameters to use when applying a responsive search ad asset + // recommendation. + message ResponsiveSearchAdAssetParameters { + // Updated ad. The current ad's content will be replaced. + google.ads.googleads.v10.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.v10.resources.Ad ad = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Parameters to use when applying a use broad match keyword recommendation. + message UseBroadMatchKeywordParameters { + // New budget amount to set for target budget resource. + optional int64 new_budget_amount_micros = 1; + } + + // The resource name of the recommendation to apply. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Recommendation" + }]; + + // Parameters to use when applying the recommendation. + oneof apply_parameters { + // Optional parameters to use when applying a campaign budget + // recommendation. + CampaignBudgetParameters campaign_budget = 2; + + // Optional parameters to use when applying a text ad recommendation. + TextAdParameters text_ad = 3; + + // Optional parameters to use when applying keyword recommendation. + KeywordParameters keyword = 4; + + // Optional parameters to use when applying target CPA opt-in + // recommendation. + TargetCpaOptInParameters target_cpa_opt_in = 5; + + // Optional parameters to use when applying target ROAS opt-in + // recommendation. + TargetRoasOptInParameters target_roas_opt_in = 10; + + // Parameters to use when applying callout extension recommendation. + CalloutExtensionParameters callout_extension = 6; + + // Parameters to use when applying call extension recommendation. + CallExtensionParameters call_extension = 7; + + // Parameters to use when applying sitelink extension recommendation. + SitelinkExtensionParameters sitelink_extension = 8; + + // Parameters to use when applying move unused budget recommendation. + MoveUnusedBudgetParameters move_unused_budget = 9; + + // Parameters to use when applying a responsive search ad recommendation. + ResponsiveSearchAdParameters responsive_search_ad = 11; + + // Parameters to use when applying a use broad match keyword recommendation. + UseBroadMatchKeywordParameters use_broad_match_keyword = 12; + + // Parameters to use when applying a responsive search ad recommendation. + ResponsiveSearchAdAssetParameters responsive_search_ad_asset = 13; + } +} + +// Response message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v10.services.RecommendationService.ApplyRecommendation]. +message ApplyRecommendationResponse { + // Results of operations to apply recommendations. + repeated ApplyRecommendationResult 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 (e.g. auth errors) + // we return the RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result of applying a recommendation. +message ApplyRecommendationResult { + // Returned for successful applies. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Recommendation" + }]; +} + +// Request message for [RecommendationService.DismissRecommendation][google.ads.googleads.v10.services.RecommendationService.DismissRecommendation]. +message DismissRecommendationRequest { + // Operation to dismiss a single recommendation identified by resource_name. + message DismissRecommendationOperation { + // The resource name of the recommendation to dismiss. + string resource_name = 1; + } + + // Required. The ID of the customer with the recommendation. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to dismiss recommendations. + // If partial_failure=false all recommendations should be of the same type + // There is a limit of 100 operations per request. + repeated DismissRecommendationOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, successful operations will be carried out and invalid + // operations will return errors. If false, operations will be carried in a + // single transaction if and only if they are all valid. + // Default is false. + bool partial_failure = 2; +} + +// Response message for [RecommendationService.DismissRecommendation][google.ads.googleads.v10.services.RecommendationService.DismissRecommendation]. +message DismissRecommendationResponse { + // The result of dismissing a recommendation. + message DismissRecommendationResult { + // Returned for successful dismissals. + string resource_name = 1; + } + + // Results of operations to dismiss recommendations. + repeated DismissRecommendationResult 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 (e.g. auth errors) + // we return the RPC level error. + google.rpc.Status partial_failure_error = 2; +} diff --git a/google/ads/googleads/v10/services/remarketing_action_service.proto b/google/ads/googleads/v10/services/remarketing_action_service.proto new file mode 100644 index 000000000..a59548a34 --- /dev/null +++ b/google/ads/googleads/v10/services/remarketing_action_service.proto @@ -0,0 +1,116 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/remarketing_action.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "RemarketingActionServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Remarketing Action service. + +// Service to manage remarketing actions. +service RemarketingActionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates remarketing actions. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ConversionActionError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateRemarketingActions(MutateRemarketingActionsRequest) returns (MutateRemarketingActionsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/remarketingActions:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v10.services.RemarketingActionService.MutateRemarketingActions]. +message MutateRemarketingActionsRequest { + // Required. The ID of the customer whose remarketing actions are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual remarketing actions. + repeated RemarketingActionOperation 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; +} + +// A single operation (create, update) on a remarketing action. +message RemarketingActionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new remarketing + // action. + google.ads.googleads.v10.resources.RemarketingAction create = 1; + + // Update operation: The remarketing action is expected to have a valid + // resource name. + google.ads.googleads.v10.resources.RemarketingAction update = 2; + } +} + +// Response message for remarketing action mutate. +message MutateRemarketingActionsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateRemarketingActionResult results = 2; +} + +// The result for the remarketing action mutate. +message MutateRemarketingActionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/RemarketingAction" + }]; +} diff --git a/google/ads/googleads/v10/services/shared_criterion_service.proto b/google/ads/googleads/v10/services/shared_criterion_service.proto new file mode 100644 index 000000000..475c73d50 --- /dev/null +++ b/google/ads/googleads/v10/services/shared_criterion_service.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "SharedCriterionServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Shared Criterion service. + +// Service to manage shared criteria. +service SharedCriterionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes shared criteria. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CriterionError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateSharedCriteria(MutateSharedCriteriaRequest) returns (MutateSharedCriteriaResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/sharedCriteria:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual shared criteria. + repeated SharedCriterionOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an shared criterion. +message SharedCriterionOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new shared + // criterion. + google.ads.googleads.v10.resources.SharedCriterion create = 1; + + // Remove operation: A resource name for the removed shared criterion is + // expected, in this format: + // + // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedCriterion" + }]; + } +} + +// Response message for a shared criterion mutate. +message MutateSharedCriteriaResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateSharedCriterionResult results = 2; +} + +// The result for the shared criterion mutate. +message MutateSharedCriterionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedCriterion" + }]; + + // 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.v10.resources.SharedCriterion shared_criterion = 2; +} diff --git a/google/ads/googleads/v10/services/shared_set_service.proto b/google/ads/googleads/v10/services/shared_set_service.proto new file mode 100644 index 000000000..f6f866887 --- /dev/null +++ b/google/ads/googleads/v10/services/shared_set_service.proto @@ -0,0 +1,149 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Shared Set service. + +// Service to manage shared sets. +service SharedSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes shared sets. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SharedSetError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateSharedSets(MutateSharedSetsRequest) returns (MutateSharedSetsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/sharedSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [SharedSetService.MutateSharedSets][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual shared sets. + repeated SharedSetOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an shared set. +message SharedSetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new shared set. + google.ads.googleads.v10.resources.SharedSet create = 1; + + // Update operation: The shared set is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.SharedSet update = 2; + + // Remove operation: A resource name for the removed shared set is expected, + // in this format: + // + // `customers/{customer_id}/sharedSets/{shared_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + }]; + } +} + +// Response message for a shared set mutate. +message MutateSharedSetsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateSharedSetResult results = 2; +} + +// The result for the shared set mutate. +message MutateSharedSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + }]; + + // 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.v10.resources.SharedSet shared_set = 2; +} diff --git a/google/ads/googleads/v10/services/smart_campaign_setting_service.proto b/google/ads/googleads/v10/services/smart_campaign_setting_service.proto new file mode 100644 index 000000000..4d0a95195 --- /dev/null +++ b/google/ads/googleads/v10/services/smart_campaign_setting_service.proto @@ -0,0 +1,111 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/enums/response_content_type.proto"; +import "google/ads/googleads/v10/resources/smart_campaign_setting.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "SmartCampaignSettingServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the Smart campaign setting service. + +// Service to manage Smart campaign settings. +service SmartCampaignSettingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Updates Smart campaign settings for campaigns. + rpc MutateSmartCampaignSettings(MutateSmartCampaignSettingsRequest) returns (MutateSmartCampaignSettingsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/smartCampaignSettings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [SmartCampaignSettingService.MutateSmartCampaignSetting][]. +message MutateSmartCampaignSettingsRequest { + // Required. The ID of the customer whose Smart campaign settings are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Smart campaign settings. + repeated SmartCampaignSettingOperation 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.v10.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation to update Smart campaign settings for a campaign. +message SmartCampaignSettingOperation { + // Update operation: The Smart campaign setting must specify a valid + // resource name. + google.ads.googleads.v10.resources.SmartCampaignSetting update = 1; + + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; +} + +// Response message for campaign mutate. +message MutateSmartCampaignSettingsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateSmartCampaignSettingResult results = 2; +} + +// The result for the Smart campaign setting mutate. +message MutateSmartCampaignSettingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SmartCampaignSetting" + }]; + + // 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.v10.resources.SmartCampaignSetting smart_campaign_setting = 2; +} diff --git a/google/ads/googleads/v10/services/smart_campaign_suggest_service.proto b/google/ads/googleads/v10/services/smart_campaign_suggest_service.proto new file mode 100644 index 000000000..8e1af77e0 --- /dev/null +++ b/google/ads/googleads/v10/services/smart_campaign_suggest_service.proto @@ -0,0 +1,224 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/common/ad_type_infos.proto"; +import "google/ads/googleads/v10/common/criteria.proto"; +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "SmartCampaignSuggestServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Service to get suggestions for Smart Campaigns. +service SmartCampaignSuggestService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns BudgetOption suggestions. + rpc SuggestSmartCampaignBudgetOptions(SuggestSmartCampaignBudgetOptionsRequest) returns (SuggestSmartCampaignBudgetOptionsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + body: "*" + }; + } + + // Suggests a Smart campaign ad compatible with the Ad family of resources, + // based on data points such as targeting and the business to advertise. + rpc SuggestSmartCampaignAd(SuggestSmartCampaignAdRequest) returns (SuggestSmartCampaignAdResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:suggestSmartCampaignAd" + body: "*" + }; + } + + // Suggests keyword themes to advertise on. + rpc SuggestKeywordThemes(SuggestKeywordThemesRequest) returns (SuggestKeywordThemesResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:suggestKeywordThemes" + body: "*" + }; + } +} + +// Request message for +// [SmartCampaignSuggestService.SuggestSmartCampaignBudgets][]. +message SuggestSmartCampaignBudgetOptionsRequest { + // Required. The ID of the customer whose budget options are to be suggested. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. For first time campaign creation use SuggestionInfo, for + // subsequent updates on BudgetOptions based on an already created campaign + // use that campaign. + oneof suggestion_data { + // Required. The resource name of the campaign to get suggestion for. + string campaign = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Required. Information needed to get budget options + SmartCampaignSuggestionInfo suggestion_info = 3 [(google.api.field_behavior) = REQUIRED]; + } +} + +// Information needed to get suggestion for Smart Campaign. More information +// provided will help the system to derive better suggestions. +message SmartCampaignSuggestionInfo { + // A list of locations. + message LocationList { + // Required. Locations. + repeated google.ads.googleads.v10.common.LocationInfo locations = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // A context that describes a business. + message BusinessContext { + // Optional. The name of the business. + string business_name = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Landing page URL of the campaign. + string final_url = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The two letter advertising language for the Smart campaign to be + // constructed, default to 'en' if not set. + string language_code = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The business ad schedule. + repeated google.ads.googleads.v10.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.v10.common.KeywordThemeInfo keyword_themes = 7 [(google.api.field_behavior) = OPTIONAL]; + + // The business settings to consider when generating suggestions. + // Settings are automatically extracted from the business when provided. + // Otherwise, these settings must be specified explicitly. + oneof business_setting { + // Optional. Context describing the business to advertise. + BusinessContext business_context = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ID of the Business Profile location. + // The location ID can be fetched by Business Profile API with its form: + // accounts/{accountId}/locations/{locationId}. The last {locationId} + // component from the Business Profile API represents the + // business_location_id. See the [Business Profile API] + // (https://developers.google.com/my-business/reference/rest/v4/accounts.locations) + int64 business_location_id = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // The geo target of the campaign, either a list of locations or + // a single proximity shall be specified. + oneof geo_target { + // Optional. The targeting geo location by locations. + LocationList location_list = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The targeting geo location by proximity. + google.ads.googleads.v10.common.ProximityInfo proximity = 5 [(google.api.field_behavior) = OPTIONAL]; + } +} + +// Response message for +// [SmartCampaignSuggestService.SuggestSmartCampaignBudgets][]. Depending on +// whether the system could suggest the options, either all of the options or +// none of them might be returned. +message SuggestSmartCampaignBudgetOptionsResponse { + // Performance metrics for a given budget option. + message Metrics { + // The estimated min daily clicks. + int64 min_daily_clicks = 1; + + // The estimated max daily clicks. + int64 max_daily_clicks = 2; + } + + // Smart Campaign budget option. + message BudgetOption { + // The amount of the budget, in the local currency for the account. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + int64 daily_amount_micros = 1; + + // Metrics pertaining to the suggested budget, could be empty if there is + // not enough information to derive the estimates. + Metrics metrics = 2; + } + + // Optional. The lowest budget option. + optional BudgetOption low = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The recommended budget option. + optional BudgetOption recommended = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The highest budget option. + optional BudgetOption high = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v10.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. +message SuggestSmartCampaignAdRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Inputs used to suggest a Smart campaign ad. + // Required fields: final_url, language_code, keyword_themes. + // Optional but recommended fields to improve the quality of the suggestion: + // business_setting and geo_target. + SmartCampaignSuggestionInfo suggestion_info = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v10.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. +message SuggestSmartCampaignAdResponse { + // Optional. Ad info includes 3 creative headlines and 2 creative descriptions. + google.ads.googleads.v10.common.SmartCampaignAdInfo ad_info = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v10.services.SmartCampaignSuggestService.SuggestKeywordThemes]. +message SuggestKeywordThemesRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Information to get keyword theme suggestions. + // Required fields: + // * suggestion_info.final_url + // * suggestion_info.language_code + // * suggestion_info.geo_target + // + // Recommended fields: + // * suggestion_info.business_setting + SmartCampaignSuggestionInfo suggestion_info = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v10.services.SmartCampaignSuggestService.SuggestKeywordThemes]. +message SuggestKeywordThemesResponse { + // Smart campaign keyword theme suggestions. + repeated google.ads.googleads.v10.resources.KeywordThemeConstant keyword_themes = 1; +} diff --git a/google/ads/googleads/v10/services/third_party_app_analytics_link_service.proto b/google/ads/googleads/v10/services/third_party_app_analytics_link_service.proto new file mode 100644 index 000000000..ad8ab030f --- /dev/null +++ b/google/ads/googleads/v10/services/third_party_app_analytics_link_service.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v10.services; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ThirdPartyAppAnalyticsLinkServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// This service allows management of links between Google Ads and third party +// app analytics. +service ThirdPartyAppAnalyticsLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be + // provided to the third party when setting up app analytics. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc RegenerateShareableLinkId(RegenerateShareableLinkIdRequest) returns (RegenerateShareableLinkIdResponse) { + option (google.api.http) = { + post: "/v10/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + body: "*" + }; + } +} + +// Request message for +// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. +message RegenerateShareableLinkIdRequest { + // Resource name of the third party app analytics link. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" + }]; +} + +// Response message for +// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v10.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. +message RegenerateShareableLinkIdResponse { + +} diff --git a/google/ads/googleads/v10/services/user_data_service.proto b/google/ads/googleads/v10/services/user_data_service.proto new file mode 100644 index 000000000..77116d763 --- /dev/null +++ b/google/ads/googleads/v10/services/user_data_service.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "UserDataServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the UserDataService. + +// Service to manage user data uploads. +service UserDataService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Uploads the given user data. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [OfflineUserDataJobError]() + // [QuotaError]() + // [RequestError]() + // [UserDataError]() + rpc UploadUserData(UploadUserDataRequest) returns (UploadUserDataResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}:uploadUserData" + body: "*" + }; + } +} + +// Request message for [UserDataService.UploadUserData][google.ads.googleads.v10.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]; + + // Required. The list of operations to be done. + repeated UserDataOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; + + // Metadata of the request. + oneof metadata { + // Metadata for data updates to a Customer Match user list. + google.ads.googleads.v10.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 2; + } +} + +// Operation to be made for the UploadUserDataRequest. +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.v10.common.UserData create = 1; + + // The list of user data to be removed from the user list. + google.ads.googleads.v10.common.UserData remove = 2; + } +} + +// Response message for [UserDataService.UploadUserData][google.ads.googleads.v10.services.UserDataService.UploadUserData] +message UploadUserDataResponse { + // The date time at which the request was received by API, formatted as + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + optional string upload_date_time = 3; + + // Number of upload data operations received by API. + optional int32 received_operations_count = 4; +} diff --git a/google/ads/googleads/v10/services/user_list_service.proto b/google/ads/googleads/v10/services/user_list_service.proto new file mode 100644 index 000000000..765b40ff6 --- /dev/null +++ b/google/ads/googleads/v10/services/user_list_service.proto @@ -0,0 +1,136 @@ +// 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.ads.googleads.v10.services; + +import "google/ads/googleads/v10/resources/user_list.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.V10.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/services;services"; +option java_multiple_files = true; +option java_outer_classname = "UserListServiceProto"; +option java_package = "com.google.ads.googleads.v10.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V10::Services"; + +// Proto file describing the User List service. + +// Service to manage user lists. +service UserListService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates user lists. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotAllowlistedError]() + // [NotEmptyError]() + // [OperationAccessDeniedError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [StringFormatError]() + // [StringLengthError]() + // [UserListError]() + rpc MutateUserLists(MutateUserListsRequest) returns (MutateUserListsResponse) { + option (google.api.http) = { + post: "/v10/customers/{customer_id=*}/userLists:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [UserListService.MutateUserLists][google.ads.googleads.v10.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]; + + // Required. The list of operations to perform on individual user lists. + repeated UserListOperation 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; +} + +// A single operation (create, update) on a user list. +message UserListOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new user list. + google.ads.googleads.v10.resources.UserList create = 1; + + // Update operation: The user list is expected to have a valid resource + // name. + google.ads.googleads.v10.resources.UserList update = 2; + + // Remove operation: A resource name for the removed user list is expected, + // in this format: + // + // `customers/{customer_id}/userLists/{user_list_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + }]; + } +} + +// Response message for user list mutate. +message MutateUserListsResponse { + // 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 (e.g. auth errors), + // we return an RPC level error. + google.rpc.Status partial_failure_error = 3; + + // All results for the mutate. + repeated MutateUserListResult results = 2; +} + +// The result for the user list mutate. +message MutateUserListResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + }]; +} diff --git a/google/ads/googleads/v11/BUILD.bazel b/google/ads/googleads/v11/BUILD.bazel new file mode 100644 index 000000000..15de6b62f --- /dev/null +++ b/google/ads/googleads/v11/BUILD.bazel @@ -0,0 +1,266 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +exports_files(["googleads_grpc_service_config.json"] + ["*.yaml"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( + name = "googleads_proto", + srcs = [], + deps = [ + "//google/ads/googleads/v11/common:common_proto", + "//google/ads/googleads/v11/enums:enums_proto", + "//google/ads/googleads/v11/errors:errors_proto", + "//google/ads/googleads/v11/resources:resources_proto", + "//google/ads/googleads/v11/services:services_proto", + ], +) + +proto_library_with_info( + name = "googleads_proto_with_info", + deps = [ + ":googleads_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", +) + +java_gapic_library( + name = "googleads_java_gapic", + srcs = [ + ":googleads_proto_with_info", + ], + gapic_yaml = "googleads_gapic.yaml", + grpc_service_config = ":googleads_grpc_service_config.json", + deps = [ + "//google/ads/googleads/v11/common:common_java_proto", + "//google/ads/googleads/v11/enums:enums_java_proto", + "//google/ads/googleads/v11/resources:resources_java_proto", + "//google/ads/googleads/v11/services:services_java_grpc", + "//google/ads/googleads/v11/services:services_java_proto", + ], +) + +# TODO(ohren): Add more test classes when java_gapic_test is able to run more +# than a single test. Having at least one verifies proper compilation at least. +java_gapic_test( + name = "googleads_java_gapic_suite", + test_classes = [ + "com.google.ads.googleads.v11.services.CampaignServiceClientTest", + ], + runtime_deps = [":googleads_java_gapic_test"], +) + +java_gapic_assembly_gradle_pkg( + name = "googleads-java", + deps = [ + ":googleads_java_gapic", + "//google/ads/googleads/v11:googleads_proto", + "//google/ads/googleads/v11/common:common_java_proto", + "//google/ads/googleads/v11/enums:enums_java_proto", + "//google/ads/googleads/v11/errors:errors_java_proto", + "//google/ads/googleads/v11/resources:resources_java_proto", + "//google/ads/googleads/v11/services:services_java_grpc", + "//google/ads/googleads/v11/services:services_java_proto", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "googleads_php_proto", + plugin_args = ["aggregate_metadata=google.ads.googleads"], + deps = [":googleads_proto"], +) + +php_grpc_library( + name = "googleads_php_grpc", + srcs = [":googleads_proto"], + deps = [":googleads_php_proto"], +) + +php_gapic_library( + name = "googleads_php_gapic", + srcs = [":googleads_proto"], + gapic_yaml = "googleads_gapic.yaml", + grpc_service_config = "googleads_grpc_service_config.json", + service_yaml = "googleads_v11.yaml", + deps = [ + ":googleads_php_grpc", + ":googleads_php_proto", + ], +) + +php_gapic_assembly_pkg( + name = "googleads-php", + deps = [ + ":googleads_php_gapic", + ":googleads_php_grpc", + ":googleads_php_proto", + ], +) + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", +) + +csharp_gapic_library( + name = "googleads_csharp_gapic", + srcs = [ + ":googleads_proto_with_info", + ], + grpc_service_config = "googleads_grpc_service_config.json", + deps = [ + "//google/ads/googleads/v11/services:services_csharp_grpc", + ], +) + +csharp_gapic_assembly_pkg( + name = "googleads-csharp", + deps = [ + ":googleads_csharp_gapic", + "//google/ads/googleads/v11/common:common_csharp_proto", + "//google/ads/googleads/v11/enums:enums_csharp_proto", + "//google/ads/googleads/v11/errors:errors_csharp_proto", + "//google/ads/googleads/v11/resources:resources_csharp_proto", + "//google/ads/googleads/v11/services:services_csharp_grpc", + "//google/ads/googleads/v11/services:services_csharp_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_ads_gapic_library", + "ruby_gapic_assembly_pkg", +) + +ruby_ads_gapic_library( + name = "googleads_ruby_gapic", + srcs = ["googleads_proto_with_info"], + extra_protoc_parameters = [ + ":gem.:name=google-ads-googleads", + ":defaults.:service.:default_host=googleads.googleapis.com", + ":overrides.:namespace.Googleads=GoogleAds", + ], + grpc_service_config = "googleads_grpc_service_config.json", +) + +ruby_gapic_assembly_pkg( + name = "googleads-ruby", + deps = [ + ":googleads_ruby_gapic", + "//google/ads/googleads/v11/common:common_ruby_proto", + "//google/ads/googleads/v11/enums:enums_ruby_proto", + "//google/ads/googleads/v11/errors:errors_ruby_proto", + "//google/ads/googleads/v11/resources:resources_ruby_proto", + "//google/ads/googleads/v11/services:services_ruby_grpc", + "//google/ads/googleads/v11/services:services_ruby_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", +) + +py_gapic_library( + name = "googleads_py_gapic", + srcs = [":googleads_proto_with_info"], + grpc_service_config = "googleads_grpc_service_config.json", + opt_args = [ + "old-naming", + "lazy-import", + "python-gapic-name=googleads", + "python-gapic-templates=ads-templates", + "warehouse-package-name=google-ads", + ], +) + +py_gapic_assembly_pkg( + name = "googleads-py", + deps = [ + ":googleads_py_gapic", + "//google/ads/googleads/v11/common:common_py_proto", + "//google/ads/googleads/v11/enums:enums_py_proto", + "//google/ads/googleads/v11/errors:errors_py_proto", + "//google/ads/googleads/v11/resources:resources_py_proto", + "//google/ads/googleads/v11/services:services_py_grpc", + "//google/ads/googleads/v11/services:services_py_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "googleads_nodejs_gapic", + package_name = "google-ads", + src = ":googleads_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "googleads_grpc_service_config.json", + main_service = "GoogleAdsService", + package = "google.ads.googleads.v11", + service_yaml = "googleads_v11.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "googleads-nodejs", + deps = [ + ":googleads_nodejs_gapic", + ":googleads_proto", + ], +) diff --git a/google/ads/googleads/v11/common/BUILD.bazel b/google/ads/googleads/v11/common/BUILD.bazel new file mode 100644 index 000000000..b6efb8634 --- /dev/null +++ b/google/ads/googleads/v11/common/BUILD.bazel @@ -0,0 +1,94 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports +# subpackages. +proto_library( + name = "common_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/ads/googleads/v11/enums:enums_proto", + "//google/api:annotations_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", +) + +java_proto_library( + name = "common_java_proto", + deps = [":common_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", +) + +csharp_proto_library( + name = "common_csharp_proto", + deps = [":common_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_proto_library", +) + +ruby_proto_library( + name = "common_ruby_proto", + deps = [":common_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_proto_library", +) + +py_proto_library( + name = "common_py_proto", + deps = [":common_proto"], +) diff --git a/google/ads/googleads/v11/common/ad_asset.proto b/google/ads/googleads/v11/common/ad_asset.proto new file mode 100644 index 000000000..8adb3b13a --- /dev/null +++ b/google/ads/googleads/v11/common/ad_asset.proto @@ -0,0 +1,74 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/common/asset_policy.proto"; +import "google/ads/googleads/v11/enums/asset_performance_label.proto"; +import "google/ads/googleads/v11/enums/served_asset_field_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AdAssetProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::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.v11.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType pinned_field = 2; + + // The performance label of this text asset. + google.ads.googleads.v11.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; +} diff --git a/google/ads/googleads/v11/common/ad_type_infos.proto b/google/ads/googleads/v11/common/ad_type_infos.proto new file mode 100644 index 000000000..c4999d87b --- /dev/null +++ b/google/ads/googleads/v11/common/ad_type_infos.proto @@ -0,0 +1,797 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/common/ad_asset.proto"; +import "google/ads/googleads/v11/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v11/enums/display_ad_format_setting.proto"; +import "google/ads/googleads/v11/enums/display_upload_product_type.proto"; +import "google/ads/googleads/v11/enums/legacy_app_install_ad_app_store.proto"; +import "google/ads/googleads/v11/enums/mime_type.proto"; +import "google/ads/googleads/v11/enums/video_thumbnail.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AdTypeInfosProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file containing info messages for specific ad types. + +// A text ad. +message TextAdInfo { + // The headline of the ad. + optional string headline = 4; + + // The first line of the ad's description. + optional string description1 = 5; + + // The second line of the ad's description. + optional string description2 = 6; +} + +// An expanded text ad. +message ExpandedTextAdInfo { + // The first part of the ad's headline. + optional string headline_part1 = 8; + + // The second part of the ad's headline. + optional string headline_part2 = 9; + + // The third part of the ad's headline. + optional string headline_part3 = 10; + + // The description of the ad. + optional string description = 11; + + // The second description of the ad. + optional string description2 = 12; + + // The text that can appear alongside the ad's displayed URL. + optional string path1 = 13; + + // Additional text that can appear alongside the ad's displayed URL. + optional string path2 = 14; +} + +// An expanded dynamic search ad. +message ExpandedDynamicSearchAdInfo { + // The description of the ad. + optional string description = 3; + + // The second description of the ad. + optional string description2 = 4; +} + +// A hotel ad. +message HotelAdInfo { + +} + +// A Smart Shopping ad. +message ShoppingSmartAdInfo { + +} + +// A standard Shopping ad. +message ShoppingProductAdInfo { + +} + +// A Shopping Comparison Listing ad. +message ShoppingComparisonListingAdInfo { + // Headline of the ad. This field is required. Allowed length is between 25 + // and 45 characters. + optional string headline = 2; +} + +// A Gmail ad. +message GmailAdInfo { + // The Gmail teaser. + GmailTeaser teaser = 1; + + // The MediaFile resource name of the header image. Valid image types are GIF, + // JPEG and PNG. The minimum size is 300x100 pixels and the aspect ratio must + // be between 3:1 and 5:1 (+-1%). + optional string header_image = 10; + + // The MediaFile resource name of the marketing image. Valid image types are + // GIF, JPEG and PNG. The image must either be landscape with a minimum size + // of 600x314 pixels and aspect ratio of 600:314 (+-1%) or square with a + // minimum size of 300x300 pixels and aspect ratio of 1:1 (+-1%) + optional string marketing_image = 11; + + // Headline of the marketing image. + optional string marketing_image_headline = 12; + + // Description of the marketing image. + optional string marketing_image_description = 13; + + // Display-call-to-action of the marketing image. + DisplayCallToAction marketing_image_display_call_to_action = 6; + + // Product images. Up to 15 images are supported. + repeated ProductImage product_images = 7; + + // Product videos. Up to 7 videos are supported. At least one product video + // or a marketing image must be specified. + repeated ProductVideo product_videos = 8; +} + +// Gmail teaser data. The teaser is a small header that acts as an invitation +// to view the rest of the ad (the body). +message GmailTeaser { + // Headline of the teaser. + optional string headline = 5; + + // Description of the teaser. + optional string description = 6; + + // Business name of the advertiser. + optional string business_name = 7; + + // The MediaFile resource name of the logo image. Valid image types are GIF, + // JPEG and PNG. The minimum size is 144x144 pixels and the aspect ratio must + // be 1:1 (+-1%). + optional string logo_image = 8; +} + +// Data for display call to action. The call to action is a piece of the ad +// that prompts the user to do something. Like clicking a link or making a phone +// call. +message DisplayCallToAction { + // Text for the display-call-to-action. + optional string text = 5; + + // Text color for the display-call-to-action in hexadecimal, for example, + // # ffffff for white. + optional string text_color = 6; + + // Identifies the URL collection in the `ad.url_collections` field. If not + // set, the URL defaults to `final_url`. + optional string url_collection_id = 7; +} + +// Product image specific data. +message ProductImage { + // The MediaFile resource name of the product image. Valid image types are + // GIF, JPEG and PNG. The minimum size is 300x300 pixels and the aspect ratio + // must be 1:1 (+-1%). + optional string product_image = 4; + + // Description of the product. + optional string description = 5; + + // Display-call-to-action of the product image. + DisplayCallToAction display_call_to_action = 3; +} + +// Product video specific data. +message ProductVideo { + // The MediaFile resource name of a video which must be hosted on YouTube. + optional string product_video = 2; +} + +// An image ad. +message ImageAdInfo { + // Width in pixels of the full size image. + optional int64 pixel_width = 15; + + // Height in pixels of the full size image. + optional int64 pixel_height = 16; + + // URL of the full size image. + optional string image_url = 17; + + // Width in pixels of the preview size image. + optional int64 preview_pixel_width = 18; + + // Height in pixels of the preview size image. + optional int64 preview_pixel_height = 19; + + // URL of the preview size image. + optional string preview_image_url = 20; + + // The mime type of the image. + google.ads.googleads.v11.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. + optional string name = 21; + + // The image to create the ImageAd from. This can be specified in one of + // two ways. + // 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; + + // Raw image data as bytes. + bytes data = 13; + + // An ad ID to copy the image from. + int64 ad_id_to_copy_image_from = 14; + } +} + +// Representation of video bumper in-stream ad format (very short in-stream +// non-skippable video ad). +message VideoBumperInStreamAdInfo { + // The image assets of the companion banner used with the ad. + AdImageAsset companion_banner = 3; +} + +// Representation of video non-skippable in-stream ad format (15 second +// in-stream non-skippable video ad). +message VideoNonSkippableInStreamAdInfo { + // The image assets of the companion banner used with the ad. + AdImageAsset companion_banner = 5; + + // Label on the "Call To Action" button taking the user to the video ad's + // final URL. + string action_button_label = 3; + + // Additional text displayed with the "Call To Action" button to give + // context and encourage clicking on the button. + string action_headline = 4; +} + +// Representation of video TrueView in-stream ad format (ad shown during video +// playback, often at beginning, which displays a skip button a few seconds into +// the video). +message VideoTrueViewInStreamAdInfo { + // Label on the CTA (call-to-action) button taking the user to the video ad's + // final URL. + // Required for TrueView for action campaigns, optional otherwise. + string action_button_label = 4; + + // Additional text displayed with the CTA (call-to-action) button to give + // context and encourage clicking on the button. + string action_headline = 5; + + // The image assets of the companion banner used with the ad. + AdImageAsset companion_banner = 7; +} + +// Representation of video out-stream ad format (ad shown alongside a feed +// with automatic playback, without sound). +message VideoOutstreamAdInfo { + // The headline of the ad. + string headline = 3; + + // The description line. + string description = 4; +} + +// Representation of In-feed video ad format. +message InFeedVideoAdInfo { + // The headline of the ad. + string headline = 1; + + // First text line for the ad. + string description1 = 2; + + // Second text line for the ad. + string description2 = 3; + + // Video thumbnail image to use. + google.ads.googleads.v11.enums.VideoThumbnailEnum.VideoThumbnail thumbnail = 4; +} + +// A video ad. +message VideoAdInfo { + // The YouTube video assets used for the ad. + AdVideoAsset video = 8; + + // Format-specific schema for the different video formats. + oneof format { + // Video TrueView in-stream ad format. + VideoTrueViewInStreamAdInfo in_stream = 2; + + // Video bumper in-stream ad format. + VideoBumperInStreamAdInfo bumper = 3; + + // Video out-stream ad format. + VideoOutstreamAdInfo out_stream = 4; + + // Video non-skippable in-stream ad format. + VideoNonSkippableInStreamAdInfo non_skippable = 5; + + // In-feed video ad format. + InFeedVideoAdInfo in_feed = 9; + } +} + +// 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. + repeated AdTextAsset headlines = 1; + + // List of text assets used for the long headline. + // Currently, only a single value for the long headline is supported. + repeated AdTextAsset long_headlines = 2; + + // List of text assets used for the description. + // Currently, only a single value for the description is supported. + repeated AdTextAsset descriptions = 3; + + // List of text assets used for the button, for example, the "Call To Action" + // button. Currently, only a single value for the button is supported. + repeated AdTextAsset call_to_actions = 4; + + // List of YouTube video assets used for the ad. + // Currently, only a single value for the YouTube video asset is supported. + repeated AdVideoAsset videos = 5; + + // List of image assets used for the companion banner. + // Currently, only a single value for the companion banner asset is supported. + repeated AdImageAsset companion_banners = 6; + + // First part of text that appears in the ad with the displayed URL. + string breadcrumb1 = 7; + + // Second part of text that appears in the ad with the displayed URL. + string breadcrumb2 = 8; +} + +// A responsive search ad. +// +// Responsive search ads let you create an ad that adapts to show more text, and +// more relevant messages, to your customers. Enter multiple headlines and +// descriptions when creating a responsive search ad, and over time, Google Ads +// will automatically test different combinations and learn which combinations +// perform best. By adapting your ad's content to more closely match potential +// customers' search terms, responsive search ads may improve your campaign's +// performance. +// +// More information at https://support.google.com/google-ads/answer/7684791 +message ResponsiveSearchAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 2; + + // First part of text that can be appended to the URL in the ad. + optional string path1 = 5; + + // Second part of text that can be appended to the URL in the ad. This field + // can only be set when `path1` is also set. + optional string path2 = 6; +} + +// A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' +// in the Google Ads UI. +message LegacyResponsiveDisplayAdInfo { + // The short version of the ad's headline. + optional string short_headline = 16; + + // The long version of the ad's headline. + optional string long_headline = 17; + + // The description of the ad. + optional string description = 18; + + // The business name in the ad. + optional string business_name = 19; + + // Advertiser's consent to allow flexible color. When true, the ad may be + // served with different color if necessary. When false, the ad will be served + // with the specified colors or a neutral color. + // The default value is `true`. + // Must be true if `main_color` and `accent_color` are not set. + optional bool allow_flexible_color = 20; + + // The accent color of the ad in hexadecimal, for example, #ffffff for white. + // If one of `main_color` and `accent_color` is set, the other is required as + // well. + optional string accent_color = 21; + + // The main color of the ad in hexadecimal, for example, #ffffff for white. + // If one of `main_color` and `accent_color` is set, the other is required as + // well. + optional string main_color = 22; + + // The call-to-action text for the ad. + optional string call_to_action_text = 23; + + // The MediaFile resource name of the logo image used in the ad. + optional string logo_image = 24; + + // The MediaFile resource name of the square logo image used in the ad. + optional string square_logo_image = 25; + + // The MediaFile resource name of the marketing image used in the ad. + optional string marketing_image = 26; + + // The MediaFile resource name of the square marketing image used in the ad. + optional string square_marketing_image = 27; + + // Specifies which format the ad will be served in. Default is ALL_FORMATS. + google.ads.googleads.v11.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 13; + + // Prefix before price. For example, 'as low as'. + optional string price_prefix = 28; + + // Promotion text used for dynamic formats of responsive ads. For example + // 'Free two-day shipping'. + optional string promo_text = 29; +} + +// An app ad. +message AppAdInfo { + // Mandatory ad text. + AdTextAsset mandatory_ad_text = 1; + + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 2; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 3; + + // List of image assets that may be displayed with the ad. + repeated AdImageAsset images = 4; + + // List of YouTube video assets that may be displayed with the ad. + repeated AdVideoAsset youtube_videos = 5; + + // List of media bundle assets that may be used with the ad. + repeated AdMediaBundleAsset html5_media_bundles = 6; +} + +// App engagement ads allow you to write text encouraging a specific action in +// the app, like checking in, making a purchase, or booking a flight. +// They allow you to send users to a specific part of your app where they can +// find what they're looking for easier and faster. +message AppEngagementAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 2; + + // List of image assets that may be displayed with the ad. + repeated AdImageAsset images = 3; + + // List of video assets that may be displayed with the ad. + repeated AdVideoAsset videos = 4; +} + +// App pre-registration ads link to your app or game listing on Google Play, and +// can run on Google Play, on YouTube (in-stream only), and within other apps +// and mobile websites on the Display Network. It will help capture people's +// interest in your app or game and generate an early install base for your app +// or game before a launch. +message AppPreRegistrationAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 2; + + // List of image asset IDs whose images may be displayed with the ad. + repeated AdImageAsset images = 3; + + // List of YouTube video asset IDs whose videos may be displayed with the ad. + repeated AdVideoAsset youtube_videos = 4; +} + +// A legacy app install ad that only can be used by a few select customers. +message LegacyAppInstallAdInfo { + // The ID of the mobile app. + optional string app_id = 6; + + // The app store the mobile app is available in. + google.ads.googleads.v11.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore app_store = 2; + + // The headline of the ad. + optional string headline = 7; + + // The first description line of the ad. + optional string description1 = 8; + + // The second description line of the ad. + optional string description2 = 9; +} + +// A responsive display ad. +message ResponsiveDisplayAdInfo { + // Marketing images 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%). At least one `marketing_image` is required. Combined + // with `square_marketing_images`, the maximum is 15. + repeated AdImageAsset marketing_images = 1; + + // Square marketing images to be used in the ad. Valid image types are GIF, + // JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must + // be 1:1 (+-1%). At least one square `marketing_image` is required. Combined + // with `marketing_images`, the maximum is 15. + repeated AdImageAsset square_marketing_images = 2; + + // Logo images to be used in the ad. Valid image types are GIF, + // JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must + // be 4:1 (+-1%). Combined with `square_logo_images`, the maximum is 5. + repeated AdImageAsset logo_images = 3; + + // Square logo images 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%). Combined with `square_logo_images`, the maximum is 5. + repeated AdImageAsset square_logo_images = 4; + + // Short format headlines for the ad. The maximum length is 30 characters. + // At least 1 and max 5 headlines can be specified. + repeated AdTextAsset headlines = 5; + + // A required long format headline. The maximum length is 90 characters. + AdTextAsset long_headline = 6; + + // Descriptive texts for the ad. The maximum length is 90 characters. At + // least 1 and max 5 headlines can be specified. + repeated AdTextAsset descriptions = 7; + + // Optional YouTube videos for the ad. A maximum of 5 videos can be specified. + repeated AdVideoAsset youtube_videos = 8; + + // The advertiser/brand name. Maximum display width is 25. + optional string business_name = 17; + + // The main color of the ad in hexadecimal, for example, #ffffff for white. + // If one of `main_color` and `accent_color` is set, the other is required as + // well. + optional string main_color = 18; + + // The accent color of the ad in hexadecimal, for example, #ffffff for white. + // If one of `main_color` and `accent_color` is set, the other is required as + // well. + optional string accent_color = 19; + + // Advertiser's consent to allow flexible color. When true, the ad may be + // served with different color if necessary. When false, the ad will be served + // with the specified colors or a neutral color. + // The default value is `true`. + // Must be true if `main_color` and `accent_color` are not set. + optional bool allow_flexible_color = 20; + + // The call-to-action text for the ad. Maximum display width is 30. + optional string call_to_action_text = 21; + + // Prefix before price. For example, 'as low as'. + optional string price_prefix = 22; + + // Promotion text used for dynamic formats of responsive ads. For example + // 'Free two-day shipping'. + optional string promo_text = 23; + + // Specifies which format the ad will be served in. Default is ALL_FORMATS. + google.ads.googleads.v11.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 16; + + // Specification for various creative controls. + ResponsiveDisplayAdControlSpec control_spec = 24; +} + +// A local ad. +message LocalAdInfo { + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. At least 1 and at most 5 headlines must be + // specified. + repeated AdTextAsset headlines = 1; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. At least 1 and at most 5 descriptions must + // be specified. + repeated AdTextAsset descriptions = 2; + + // List of text assets for call-to-actions. When the ad serves the + // call-to-actions will be selected from this list. Call-to-actions are + // optional and at most 5 can be specified. + repeated AdTextAsset call_to_actions = 3; + + // List of marketing image assets that may be displayed with the ad. The + // images must be 314x600 pixels or 320x320 pixels. At least 1 and at most + // 20 image assets must be specified. + repeated AdImageAsset marketing_images = 4; + + // List of logo image assets that may be displayed with the ad. The images + // must be 128x128 pixels and not larger than 120KB. At least 1 and at most 5 + // image assets must be specified. + repeated AdImageAsset logo_images = 5; + + // List of YouTube video assets that may be displayed with the ad. Videos + // are optional and at most 20 can be specified. + repeated AdVideoAsset videos = 6; + + // First part of optional text that can be appended to the URL in the ad. + optional string path1 = 9; + + // Second part of optional text that can be appended to the URL in the ad. + // This field can only be set when `path1` is also set. + optional string path2 = 10; +} + +// A generic type of display ad. The exact ad format is controlled by the +// `display_upload_product_type` field, which determines what kinds of data +// 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.v11.enums.DisplayUploadProductTypeEnum.DisplayUploadProductType display_upload_product_type = 1; + + // The asset data that makes up the ad. + oneof media_asset { + // A media bundle asset to be used in the ad. For information about the + // media bundle for HTML5_UPLOAD_AD, see + // https://support.google.com/google-ads/answer/1722096 + // Media bundles that are part of dynamic product types use a special format + // that needs to be created through the Google Web Designer. See + // https://support.google.com/webdesigner/answer/7543898 for more + // information. + AdMediaBundleAsset media_bundle = 2; + } +} + +// Specification for various creative controls for a responsive display ad. +message ResponsiveDisplayAdControlSpec { + // Whether the advertiser has opted into the asset enhancements feature. + bool enable_asset_enhancements = 1; + + // Whether the advertiser has opted into auto-gen video feature. + bool enable_autogen_video = 2; +} + +// A Smart campaign ad. +message SmartCampaignAdInfo { + // List of text assets, each of which corresponds to a headline when the ad + // serves. This list consists of a minimum of 3 and up to 15 text assets. + repeated AdTextAsset headlines = 1; + + // List of text assets, each of which corresponds to a description when the ad + // serves. This list consists of a minimum of 2 and up to 4 text assets. + repeated AdTextAsset descriptions = 2; +} + +// A call ad. +message CallAdInfo { + // The country code in the ad. + string country_code = 1; + + // The phone number in the ad. + string phone_number = 2; + + // The business name in the ad. + string business_name = 3; + + // First headline in the ad. + string headline1 = 11; + + // Second headline in the ad. + string headline2 = 12; + + // The first line of the ad's description. + string description1 = 4; + + // The second line of the ad's description. + string description2 = 5; + + // Whether to enable call tracking for the creative. Enabling call + // tracking also enables call conversions. + bool call_tracked = 6; + + // Whether to disable call conversion for the creative. + // If set to `true`, disables call conversions even when `call_tracked` is + // `true`. + // If `call_tracked` is `false`, this field is ignored. + bool disable_call_conversion = 7; + + // The URL to be used for phone number verification. + string phone_number_verification_url = 8; + + // The conversion action to attribute a call conversion to. If not set a + // default conversion action is used. This field only has effect if + // `call_tracked` is set to `true`. Otherwise this field is ignored. + string conversion_action = 9; + + // 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.v11.enums.CallConversionReportingStateEnum.CallConversionReportingState conversion_reporting_state = 10; + + // First part of text that can be appended to the URL in the ad. Optional. + string path1 = 13; + + // Second part of text that can be appended to the URL in the ad. This field + // can only be set when `path1` is also set. Optional. + string path2 = 14; +} + +// A discovery multi asset ad. +message DiscoveryMultiAssetAdInfo { + // 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 + // not present. Combined with `square_marketing_images` and + // `portrait_marketing_images` the maximum is 20. + repeated AdImageAsset marketing_images = 1; + + // Square marketing image assets to be used in the ad. Valid image types are + // GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must + // be 1:1 (+-1%). Required if marketing_images is not present. Combined with + // `marketing_images` and `portrait_marketing_images` the maximum is 20. + repeated AdImageAsset square_marketing_images = 2; + + // Portrait marketing image assets to be used in the ad. Valid image types are + // GIF, JPEG, and PNG. The minimum size is 480x600 and the aspect ratio must + // be 4:5 (+-1%). Combined with `marketing_images` and + // `square_marketing_images` the maximum is 20. + repeated AdImageAsset portrait_marketing_images = 3; + + // 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. + repeated AdImageAsset logo_images = 4; + + // Headline text asset of the ad. Maximum display width is 30. At least 1 and + // max 5 headlines can be specified. + repeated AdTextAsset headlines = 5; + + // The descriptive text of the ad. Maximum display width is 90. At least 1 and + // max 5 descriptions can be specified. + repeated AdTextAsset descriptions = 6; + + // The Advertiser/brand name. Maximum display width is 25. Required. + optional string business_name = 7; + + // Call to action text. + optional string call_to_action_text = 8; + + // Boolean option that indicates if this ad must be served with lead form. + optional bool lead_form_only = 9; +} + +// A discovery carousel ad. +message DiscoveryCarouselAdInfo { + // 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%). + AdImageAsset logo_image = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Headline of the ad. + AdTextAsset headline = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The descriptive text of the ad. + AdTextAsset description = 4 [(google.api.field_behavior) = REQUIRED]; + + // Call to action text. + string call_to_action_text = 5; + + // Required. Carousel cards that will display with the ad. Min 2 max 10. + repeated AdDiscoveryCarouselCardAsset carousel_cards = 6 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v11/common/asset_policy.proto b/google/ads/googleads/v11/common/asset_policy.proto new file mode 100644 index 000000000..116706312 --- /dev/null +++ b/google/ads/googleads/v11/common/asset_policy.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/policy_approval_status.proto"; +import "google/ads/googleads/v11/enums/policy_review_status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AssetPolicyProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing asset policies. + +// Contains policy information for an asset inside an ad. +message AdAssetPolicySummary { + // The list of policy findings for this asset. + repeated PolicyTopicEntry policy_topic_entries = 1; + + // Where in the review process this asset. + google.ads.googleads.v11.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.v11.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; +} diff --git a/google/ads/googleads/v11/common/asset_types.proto b/google/ads/googleads/v11/common/asset_types.proto new file mode 100644 index 000000000..bc9e3ccdb --- /dev/null +++ b/google/ads/googleads/v11/common/asset_types.proto @@ -0,0 +1,983 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/common/feed_common.proto"; +import "google/ads/googleads/v11/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v11/enums/call_to_action_type.proto"; +import "google/ads/googleads/v11/enums/lead_form_call_to_action_type.proto"; +import "google/ads/googleads/v11/enums/lead_form_desired_intent.proto"; +import "google/ads/googleads/v11/enums/lead_form_field_user_input_type.proto"; +import "google/ads/googleads/v11/enums/lead_form_post_submit_call_to_action_type.proto"; +import "google/ads/googleads/v11/enums/mime_type.proto"; +import "google/ads/googleads/v11/enums/mobile_app_vendor.proto"; +import "google/ads/googleads/v11/enums/price_extension_price_qualifier.proto"; +import "google/ads/googleads/v11/enums/price_extension_price_unit.proto"; +import "google/ads/googleads/v11/enums/price_extension_type.proto"; +import "google/ads/googleads/v11/enums/promotion_extension_discount_modifier.proto"; +import "google/ads/googleads/v11/enums/promotion_extension_occasion.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AssetTypesProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file containing info messages for specific asset types. + +// A YouTube asset. +message YoutubeVideoAsset { + // YouTube video id. This is the 11 character string value used in the + // YouTube video URL. + optional string youtube_video_id = 2; + + // YouTube video title. + string youtube_video_title = 3; +} + +// A MediaBundle asset. +message MediaBundleAsset { + // Media bundle (ZIP file) asset data. The format of the uploaded ZIP file + // depends on the ad field where it will be used. For more information on the + // format, see the documentation of the ad field where you plan on using the + // MediaBundleAsset. This field is mutate only. + optional bytes data = 2; +} + +// An Image asset. +message ImageAsset { + // The raw bytes data of an image. This field is mutate only. + optional bytes data = 5; + + // File size of the image asset in bytes. + optional int64 file_size = 6; + + // MIME type of the image asset. + google.ads.googleads.v11.enums.MimeTypeEnum.MimeType mime_type = 3; + + // Metadata for this image at its original size. + ImageDimension full_size = 4; +} + +// Metadata for an image at a certain size, either original or resized. +message ImageDimension { + // Height of the image. + optional int64 height_pixels = 4; + + // Width of the image. + optional int64 width_pixels = 5; + + // A URL that returns the image with this height and width. + optional string url = 6; +} + +// A Text asset. +message TextAsset { + // Text content of the text asset. + optional string text = 2; +} + +// A Lead Form asset. +message LeadFormAsset { + // Required. The name of the business being advertised. + string business_name = 10 [(google.api.field_behavior) = REQUIRED]; + + // Required. Pre-defined display text that encourages user to expand the form. + google.ads.googleads.v11.enums.LeadFormCallToActionTypeEnum.LeadFormCallToActionType call_to_action_type = 17 [(google.api.field_behavior) = REQUIRED]; + + // Required. Text giving a clear value proposition of what users expect once they expand + // the form. + string call_to_action_description = 18 [(google.api.field_behavior) = REQUIRED]; + + // Required. Headline of the expanded form to describe what the form is asking for or + // facilitating. + string headline = 12 [(google.api.field_behavior) = REQUIRED]; + + // Required. Detailed description of the expanded form to describe what the form is + // asking for or facilitating. + string description = 13 [(google.api.field_behavior) = REQUIRED]; + + // Required. Link to a page describing the policy on how the collected data is handled + // by the advertiser/business. + string privacy_policy_url = 14 [(google.api.field_behavior) = REQUIRED]; + + // Headline of text shown after form submission that describes how the + // advertiser will follow up with the user. + optional string post_submit_headline = 15; + + // Detailed description shown after form submission that describes how the + // advertiser will follow up with the user. + optional string post_submit_description = 16; + + // Ordered list of input fields. + repeated LeadFormField fields = 8; + + // Ordered list of custom question fields. + repeated LeadFormCustomQuestionField custom_question_fields = 23; + + // Configured methods for collected lead data to be delivered to advertiser. + // Only one method typed as WebhookDelivery can be configured. + repeated LeadFormDeliveryMethod delivery_methods = 9; + + // Pre-defined display text that encourages user action after the form is + // submitted. + google.ads.googleads.v11.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%). + optional string background_image_asset = 20; + + // Chosen intent for the lead form, for example, more volume or more + // qualified. + google.ads.googleads.v11.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent desired_intent = 21; + + // Custom disclosure shown along with Google disclaimer on the lead form. + // Accessible to allowed customers only. + optional string custom_disclosure = 22; +} + +// One input field instance within a form. +message LeadFormField { + // Describes the input type, which may be a predefined type such as + // "full name" or a pre-vetted question like "Do you own a car?". + google.ads.googleads.v11.enums.LeadFormFieldUserInputTypeEnum.LeadFormFieldUserInputType input_type = 1; + + // Defines answer configuration that this form field accepts. If oneof is not + // set, this is a free-text answer. + oneof answers { + // Answer configuration for a single choice question. Can be set only for + // pre-vetted question fields. Minimum of 2 answers required and maximum of + // 12 allowed. + LeadFormSingleChoiceAnswers single_choice_answers = 2; + } +} + +// One custom question input field instance within a form. +message LeadFormCustomQuestionField { + // The exact custom question field text (for example, "Do you own a car?"). + string custom_question_text = 1; + + // Defines answer configuration that this form field accepts. If + // oneof is not set, this is a free-text answer. + oneof answers { + // Answer configuration for a single choice question. + // Minimum of 2 answers and maximum of 12 allowed. + LeadFormSingleChoiceAnswers single_choice_answers = 2; + } +} + +// Defines possible answers for a single choice question, usually presented as +// a single-choice drop-down list. +message LeadFormSingleChoiceAnswers { + // List of choices for a single question field. The order of entries defines + // UI order. Minimum of 2 answers required and maximum of 12 allowed. + repeated string answers = 1; +} + +// A configuration of how leads are delivered to the advertiser. +message LeadFormDeliveryMethod { + // Various subtypes of delivery. + oneof delivery_details { + // Webhook method of delivery. + WebhookDelivery webhook = 1; + } +} + +// Google notifies the advertiser of leads by making HTTP calls to an +// endpoint they specify. The requests contain JSON matching a schema that +// Google publishes as part of form ads documentation. +message WebhookDelivery { + // Webhook url specified by advertiser to send the lead. + optional string advertiser_webhook_url = 4; + + // Anti-spoofing secret set by the advertiser as part of the webhook payload. + optional string google_secret = 5; + + // The schema version that this delivery instance will use. + optional int64 payload_schema_version = 6; +} + +// A Book on Google asset. Used to redirect user to book through Google. +// Book on Google will change the redirect url to book directly through +// Google. +message BookOnGoogleAsset { + +} + +// A Promotion asset. +message PromotionAsset { + // Required. A freeform description of what the promotion is targeting. + string promotion_target = 1 [(google.api.field_behavior) = REQUIRED]; + + // A modifier for qualification of the discount. + google.ads.googleads.v11.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2; + + // Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd + // format. + string redemption_start_date = 7; + + // Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd + // format. + string redemption_end_date = 8; + + // 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.v11.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9; + + // The language of the promotion. + // Represented as BCP 47 language tag. + string language_code = 10; + + // Start date of when this asset is effective and can begin serving, in + // yyyy-MM-dd format. + string start_date = 11; + + // Last date of when this asset is effective and still serving, in yyyy-MM-dd + // format. + string end_date = 12; + + // List of non-overlapping schedules specifying all time intervals for which + // the asset may serve. There can be a maximum of 6 schedules per day, 42 in + // total. + repeated AdScheduleInfo ad_schedule_targets = 13; + + // Discount type, can be percentage off or amount off. + oneof discount_type { + // Percentage off discount in the promotion. 1,000,000 = 100%. + // Either this or money_amount_off is required. + int64 percent_off = 3; + + // Money amount off for discount in the promotion. + // Either this or percent_off is required. + Money money_amount_off = 4; + } + + // Promotion trigger. Can be by promotion code or promo by eligible order + // amount. + oneof promotion_trigger { + // A code the user should use in order to be eligible for the promotion. + string promotion_code = 5; + + // The amount the total order needs to be for the user to be eligible for + // the promotion. + Money orders_over_amount = 6; + } +} + +// A Callout asset. +message CalloutAsset { + // Required. The callout text. + // The length of this string should be between 1 and 25, inclusive. + string callout_text = 1 [(google.api.field_behavior) = REQUIRED]; + + // Start date of when this asset is effective and can begin serving, in + // yyyy-MM-dd format. + string start_date = 2; + + // Last date of when this asset is effective and still serving, in yyyy-MM-dd + // format. + string end_date = 3; + + // List of non-overlapping schedules specifying all time intervals for which + // the asset may serve. There can be a maximum of 6 schedules per day, 42 in + // total. + repeated AdScheduleInfo ad_schedule_targets = 4; +} + +// A Structured Snippet asset. +message StructuredSnippetAsset { + // Required. The header of the snippet. + // This string should be one of the predefined values at + // https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers + string header = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The values in the snippet. + // The size of this collection should be between 3 and 10, inclusive. + // The length of each value should be between 1 and 25 characters, inclusive. + repeated string values = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A Sitelink asset. +message SitelinkAsset { + // Required. URL display text for the sitelink. + // The length of this string should be between 1 and 25, inclusive. + string link_text = 1 [(google.api.field_behavior) = REQUIRED]; + + // First line of the description for the sitelink. + // If set, the length should be between 1 and 35, inclusive, and description2 + // must also be set. + string description1 = 2; + + // Second line of the description for the sitelink. + // If set, the length should be between 1 and 35, inclusive, and description1 + // must also be set. + string description2 = 3; + + // Start date of when this asset is effective and can begin serving, in + // yyyy-MM-dd format. + string start_date = 4; + + // Last date of when this asset is effective and still serving, in yyyy-MM-dd + // format. + string end_date = 5; + + // List of non-overlapping schedules specifying all time intervals for which + // the asset may serve. There can be a maximum of 6 schedules per day, 42 in + // total. + repeated AdScheduleInfo ad_schedule_targets = 6; +} + +// A Page Feed asset. +message PageFeedAsset { + // Required. The webpage that advertisers want to target. + string page_url = 1 [(google.api.field_behavior) = REQUIRED]; + + // Labels used to group the page urls. + repeated string labels = 2; +} + +// A Dynamic Education asset. +message DynamicEducationAsset { + // Required. Program ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string program_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Location ID which can be any sequence of letters and digits and must be + // unique. + string location_id = 2; + + // Required. Program name, for example, Nursing. Required. + string program_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Subject of study, for example, Health. + string subject = 4; + + // Program description, for example, Nursing Certification. + string program_description = 5; + + // School name, for example, Mountain View School of Nursing. + string school_name = 6; + + // School address which can be specified in one of the following formats. + // (1) City, state, code, country, for example, Mountain View, CA, USA. + // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403 + string address = 7; + + // Contextual keywords, for example, Nursing certification, Health, Mountain + // View. + repeated string contextual_keywords = 8; + + // Android deep link, for example, + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 9; + + // Similar program IDs. + repeated string similar_program_ids = 10; + + // iOS deep link, for example, exampleApp://content/page. + string ios_app_link = 11; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 12; + + // Thumbnail image url, for example, http://www.example.com/thumbnail.png. The + // thumbnail image will not be uploaded as image asset. + string thumbnail_image_url = 13; + + // Image url, for example, http://www.example.com/image.png. The image will + // not be uploaded as image asset. + string image_url = 14; +} + +// An asset representing a mobile app. +message MobileAppAsset { + // Required. A string that uniquely identifies a mobile application. It should just + // contain the platform native id, like "com.android.ebay" for Android or + // "12345689" for iOS. + string app_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The application store that distributes this specific app. + google.ads.googleads.v11.enums.MobileAppVendorEnum.MobileAppVendor app_store = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The visible text displayed when the link is rendered in an ad. + // The length of this string should be between 1 and 25, inclusive. + string link_text = 3 [(google.api.field_behavior) = REQUIRED]; + + // Start date of when this asset is effective and can begin serving, in + // yyyy-MM-dd format. + string start_date = 4; + + // Last date of when this asset is effective and still serving, in yyyy-MM-dd + // format. + string end_date = 5; +} + +// An asset representing a hotel callout. +message HotelCalloutAsset { + // Required. The text of the hotel callout asset. + // The length of this string should be between 1 and 25, inclusive. + string text = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The language of the hotel callout. + // Represented as BCP 47 language tag. + string language_code = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A Call asset. +message CallAsset { + // Required. Two-letter country code of the phone number. Examples: 'US', 'us'. + string country_code = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890' + string phone_number = 2 [(google.api.field_behavior) = REQUIRED]; + + // Indicates whether this CallAsset should use its own call conversion + // setting, follow the account level setting, or disable call conversion. + google.ads.googleads.v11.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 3; + + // The conversion action to attribute a call conversion to. If not set, the + // default conversion action is used. This field only has effect if + // call_conversion_reporting_state is set to + // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION. + string call_conversion_action = 4 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + + // List of non-overlapping schedules specifying all time intervals for which + // the asset may serve. There can be a maximum of 6 schedules per day, 42 in + // total. + repeated AdScheduleInfo ad_schedule_targets = 5; +} + +// An asset representing a list of price offers. +message PriceAsset { + // Required. The type of the price asset. + google.ads.googleads.v11.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1 [(google.api.field_behavior) = REQUIRED]; + + // The price qualifier of the price asset. + google.ads.googleads.v11.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2; + + // Required. The language of the price asset. + // Represented as BCP 47 language tag. + string language_code = 3 [(google.api.field_behavior) = REQUIRED]; + + // The price offerings of the price asset. + // The size of this collection should be between 3 and 8, inclusive. + repeated PriceOffering price_offerings = 4; +} + +// A single price offering within a PriceAsset. +message PriceOffering { + // Required. The header of the price offering. + // The length of this string should be between 1 and 25, inclusive. + string header = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The description of the price offering. + // The length of this string should be between 1 and 25, inclusive. + string description = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The price value of the price offering. + Money price = 3 [(google.api.field_behavior) = REQUIRED]; + + // The price unit of the price offering. + google.ads.googleads.v11.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4; + + // Required. The final URL after all cross domain redirects. + string final_url = 5 [(google.api.field_behavior) = REQUIRED]; + + // The final mobile URL after all cross domain redirects. + string final_mobile_url = 6; +} + +// A call to action asset. +message CallToActionAsset { + // Call to action. + google.ads.googleads.v11.enums.CallToActionTypeEnum.CallToActionType call_to_action = 1; +} + +// A dynamic real estate asset. +message DynamicRealEstateAsset { + // Required. Listing ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string listing_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Listing name, for example, Boulevard Bungalow. Required. + string listing_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // City name, for example, Mountain View, California. + string city_name = 3; + + // Description, for example, 3 beds, 2 baths, 1568 sq. ft. + string description = 4; + + // Address which can be specified in one of the following formats. + // (1) City, state, code, country, for example, Mountain View, CA, USA. + // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403 + string address = 5; + + // Price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, for example, 200,000.00 + // USD. + string price = 6; + + // Image URL, for example, http://www.example.com/image.png. The image will + // not be uploaded as image asset. + string image_url = 7; + + // Property type, for example, House. + string property_type = 8; + + // Listing type, for example, For sale. + string listing_type = 9; + + // Contextual keywords, for example, For sale; Houses for sale. + repeated string contextual_keywords = 10; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', for example, Starting at $200,000.00. + string formatted_price = 11; + + // Android deep link, for example, + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 12; + + // iOS deep link, for example, exampleApp://content/page. + string ios_app_link = 13; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 14; + + // Similar listing IDs. + repeated string similar_listing_ids = 15; +} + +// A dynamic custom asset. +message DynamicCustomAsset { + // Required. ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag, for example, sedan. + // Required. + string id = 1 [(google.api.field_behavior) = REQUIRED]; + + // ID2 which can be any sequence of letters and digits, for example, red. ID + // sequence (ID + ID2) must be unique. + string id2 = 2; + + // Required. Item title, for example, Mid-size sedan. Required. + string item_title = 3 [(google.api.field_behavior) = REQUIRED]; + + // Item subtitle, for example, At your Mountain View dealership. + string item_subtitle = 4; + + // Item description, for example, Best selling mid-size car. + string item_description = 5; + + // Item address which can be specified in one of the following formats. + // (1) City, state, code, country, for example, Mountain View, CA, USA. + // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403 + string item_address = 6; + + // Item category, for example, Sedans. + string item_category = 7; + + // Price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, for example, 20,000.00 USD. + string price = 8; + + // Sale price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, for example, 15,000.00 USD. + // Must be less than the 'price' field. + string sale_price = 9; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', for example, Starting at $20,000.00. + string formatted_price = 10; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', for example, On sale for $15,000.00. + string formatted_sale_price = 11; + + // Image URL, for example, http://www.example.com/image.png. The image will + // not be uploaded as image asset. + string image_url = 12; + + // Contextual keywords, for example, Sedans, 4 door sedans. + repeated string contextual_keywords = 13; + + // Android deep link, for example, + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 14; + + // iOS deep link, for example, exampleApp://content/page. + string ios_app_link = 16; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 17; + + // Similar IDs. + repeated string similar_ids = 15; +} + +// A dynamic hotels and rentals asset. +message DynamicHotelsAndRentalsAsset { + // Required. Property ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string property_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Property name, for example, Mountain View Hotel. Required. + string property_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Image URL, for example, http://www.example.com/image.png. The image will + // not be uploaded as image asset. + string image_url = 3; + + // Destination name, for example, Downtown Mountain View. + string destination_name = 4; + + // Description, for example, Close to SJC Airport. + string description = 5; + + // Price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD. + string price = 6; + + // ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. + // Must be less than the 'price' field. + string sale_price = 7; + + // Star rating. Must be a number between 1 to 5, inclusive. + int64 star_rating = 8; + + // Category, for example, Hotel suite. + string category = 9; + + // Contextual keywords, for example, Mountain View "Hotels", South Bay hotels. + repeated string contextual_keywords = 10; + + // Address which can be specified in one of the following formats. + // (1) City, state, code, country, for example, Mountain View, CA, USA. + // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403 + string address = 11; + + // Android deep link, for example, + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 12; + + // iOS deep link, for example, exampleApp://content/page. + string ios_app_link = 13; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 14; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', for example, Starting at $100.00. + string formatted_price = 15; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', for example, On sale for $80.00. + string formatted_sale_price = 16; + + // Similar property IDs. + repeated string similar_property_ids = 17; +} + +// A dynamic flights asset. +message DynamicFlightsAsset { + // Required. Destination ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string destination_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Origin ID which can be any sequence of letters and digits. The ID sequence + // (destination ID + origin ID) must be unique. + string origin_id = 2; + + // Required. Flight description, for example, Book your ticket. Required. + string flight_description = 3 [(google.api.field_behavior) = REQUIRED]; + + // Image URL, for example, http://www.example.com/image.png. The image will + // not be uploaded as image asset. + string image_url = 4; + + // Destination name, for example, Paris. + string destination_name = 5; + + // Origin name, for example, London. + string origin_name = 6; + + // Flight price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD. + string flight_price = 7; + + // Flight sale price which can be number followed by the alphabetic currency + // code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 + // USD. Must be less than the 'flight_price' field. + string flight_sale_price = 8; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', for example, Starting at $100.00. + string formatted_price = 9; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', for example, On sale for $80.00. + string formatted_sale_price = 10; + + // Android deep link, for example, + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 11; + + // iOS deep link, for example, exampleApp://content/page. + string ios_app_link = 12; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 13; + + // Similar destination IDs, for example, PAR,LON. + repeated string similar_destination_ids = 14; + + // A custom field which can be multiple key to values mapping separated by + // delimiters (",", "|" and ":"), in the forms of + // ": , , ... , | : , ... + // , | ... | : , ... ," for example, wifi: + // most | aircraft: 320, 77W | flights: 42 | legroom: 32". + string custom_mapping = 15; +} + +// A Discovery Carousel Card asset. +message DiscoveryCarouselCardAsset { + // 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; + + // Asset resource name of the associated square marketing image. This + // and/or a marketing image asset is required. + string square_marketing_image_asset = 2; + + // Asset resource name of the associated 4:5 portrait marketing image. + string portrait_marketing_image_asset = 3; + + // Required. Headline of the carousel card. + string headline = 4 [(google.api.field_behavior) = REQUIRED]; + + // Call to action text. + string call_to_action_text = 5; +} + +// A dynamic travel asset. +message DynamicTravelAsset { + // Required. Destination ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string destination_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Origin ID which can be any sequence of letters and digits. The ID sequence + // (destination ID + origin ID) must be unique. + string origin_id = 2; + + // Required. Title, for example, Book your train ticket. Required. + string title = 3 [(google.api.field_behavior) = REQUIRED]; + + // Destination name, for example, Paris. + string destination_name = 4; + + // Destination address which can be specified in one of the following formats. + // (1) City, state, code, country, for example, Mountain View, CA, USA. + // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403. + string destination_address = 5; + + // Origin name, for example, London. + string origin_name = 6; + + // Price which can be a number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD. + string price = 7; + + // Sale price which can be a number followed by the alphabetic currency + // code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 + // USD. Must be less than the 'price' field. + string sale_price = 8; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', for example, Starting at $100.00. + string formatted_price = 9; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', for example, On sale for $80.00. + string formatted_sale_price = 10; + + // Category, for example, Express. + string category = 11; + + // Contextual keywords, for example, Paris trains. + repeated string contextual_keywords = 12; + + // Similar destination IDs, for example, NYC. + repeated string similar_destination_ids = 13; + + // Image URL, for example, http://www.example.com/image.png. The image will + // not be uploaded as image asset. + string image_url = 14; + + // Android deep link, for example, + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 15; + + // iOS deep link, for example, exampleApp://content/page. + string ios_app_link = 16; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 17; +} + +// A dynamic local asset. +message DynamicLocalAsset { + // Required. Deal ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string deal_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Deal name, for example, 50% off at Mountain View Grocers. Required. + string deal_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Subtitle, for example, Groceries. + string subtitle = 3; + + // Description, for example, Save on your weekly bill. + string description = 4; + + // Price which can be a number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD. + string price = 5; + + // Sale price which can be number followed by the alphabetic currency code, + // ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. + // Must be less than the 'price' field. + string sale_price = 6; + + // Image URL, for example, http://www.example.com/image.png. The image will + // not be uploaded as image asset. + string image_url = 7; + + // Address which can be specified in one of the following formats. + // (1) City, state, code, country, for example, Mountain View, CA, USA. + // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403. + string address = 8; + + // Category, for example, Food. + string category = 9; + + // Contextual keywords, for example, Save groceries coupons. + repeated string contextual_keywords = 10; + + // Formatted price which can be any characters. If set, this attribute will be + // used instead of 'price', for example, Starting at $100.00. + string formatted_price = 11; + + // Formatted sale price which can be any characters. If set, this attribute + // will be used instead of 'sale price', for example, On sale for $80.00. + string formatted_sale_price = 12; + + // Android deep link, for example, + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 13; + + // Similar deal IDs, for example, 1275. + repeated string similar_deal_ids = 14; + + // iOS deep link, for example, exampleApp://content/page. + string ios_app_link = 15; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 16; +} + +// A dynamic jobs asset. +message DynamicJobsAsset { + // Required. Job ID which can be any sequence of letters and digits, and must be + // unique and match the values of remarketing tag. Required. + string job_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Location ID which can be any sequence of letters and digits. The ID + // sequence (job ID + location ID) must be unique. + string location_id = 2; + + // Required. Job title, for example, Software engineer. Required. + string job_title = 3 [(google.api.field_behavior) = REQUIRED]; + + // Job subtitle, for example, Level II. + string job_subtitle = 4; + + // Description, for example, Apply your technical skills. + string description = 5; + + // Image URL, for example, http://www.example.com/image.png. The image will + // not be uploaded as image asset. + string image_url = 6; + + // Job category, for example, Technical. + string job_category = 7; + + // Contextual keywords, for example, Software engineering job. + repeated string contextual_keywords = 8; + + // Address which can be specified in one of the following formats. + // (1) City, state, code, country, for example, Mountain View, CA, USA. + // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. + // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403. + string address = 9; + + // Salary, for example, $100,000. + string salary = 10; + + // Android deep link, for example, + // android-app://com.example.android/http/example.com/gizmos?1234. + string android_app_link = 11; + + // Similar job IDs, for example, 1275. + repeated string similar_job_ids = 12; + + // iOS deep link, for example, exampleApp://content/page. + string ios_app_link = 13; + + // iOS app store ID. This is used to check if the user has the app installed + // on their device before deep linking. If this field is set, then the + // ios_app_link field must also be present. + int64 ios_app_store_id = 14; +} diff --git a/google/ads/googleads/v11/common/asset_usage.proto b/google/ads/googleads/v11/common/asset_usage.proto new file mode 100644 index 000000000..abd1a335c --- /dev/null +++ b/google/ads/googleads/v11/common/asset_usage.proto @@ -0,0 +1,39 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/served_asset_field_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AssetUsageProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing asset usage. + +// Contains the usage information of the asset. +message AssetUsage { + // Resource name of the asset. + string asset = 1; + + // The served field type of the asset. + google.ads.googleads.v11.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType served_asset_field_type = 2; +} diff --git a/google/ads/googleads/v11/common/audiences.proto b/google/ads/googleads/v11/common/audiences.proto new file mode 100644 index 000000000..709f0d001 --- /dev/null +++ b/google/ads/googleads/v11/common/audiences.proto @@ -0,0 +1,173 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/gender_type.proto"; +import "google/ads/googleads/v11/enums/income_range_type.proto"; +import "google/ads/googleads/v11/enums/parental_status_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AudiencesProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Positive dimension specifying user's audience. +message AudienceDimension { + // Dimension specifying users who belong to the audience. + oneof dimension { + // Dimension specifying users by their age. + AgeDimension age = 1; + + // Dimension specifying users by their gender. + GenderDimension gender = 2; + + // Dimension specifying users by their household income. + HouseholdIncomeDimension household_income = 3; + + // Dimension specifying users by their parental status. + ParentalStatusDimension parental_status = 4; + + // Dimension specifying users by their membership in other audience + // segments. + AudienceSegmentDimension audience_segments = 5; + } +} + +// Negative dimension specifying users to exclude from the audience. +message AudienceExclusionDimension { + // Audience segment to be excluded. + repeated ExclusionSegment exclusions = 1; +} + +// An audience segment to be excluded from an audience. +message ExclusionSegment { + // Segment to be excluded. + oneof segment { + // User list segment to be excluded. + UserListSegment user_list = 1; + } +} + +// Dimension specifying users by their age. +message AgeDimension { + // Contiguous age range to be included in the dimension. + repeated AgeSegment age_ranges = 1; + + // Include users whose age is not determined. + optional bool include_undetermined = 2; +} + +// Contiguous age range. +message AgeSegment { + // Minimum age to include. A minimum age must be specified and must be at + // least 18. Allowed values are 18, 25, 35, 45, 55, and 65. + optional int32 min_age = 1; + + // Maximum age to include. A maximum age need not be specified. If specified, + // max_age must be greater than min_age, and allowed values are 24, 34, 44, + // 54, and 64. + optional int32 max_age = 2; +} + +// Dimension specifying users by their gender. +message GenderDimension { + // Included gender demographic segments. + repeated google.ads.googleads.v11.enums.GenderTypeEnum.GenderType genders = 1; + + // Include users whose gender is not determined. + optional bool include_undetermined = 2; +} + +// Dimension specifying users by their household income. +message HouseholdIncomeDimension { + // Included household income demographic segments. + repeated google.ads.googleads.v11.enums.IncomeRangeTypeEnum.IncomeRangeType income_ranges = 1; + + // Include users whose household income is not determined. + optional bool include_undetermined = 2; +} + +// Dimension specifying users by their parental status. +message ParentalStatusDimension { + // Included parental status demographic segments. + repeated google.ads.googleads.v11.enums.ParentalStatusTypeEnum.ParentalStatusType parental_statuses = 1; + + // Include users whose parental status is undetermined. + optional bool include_undetermined = 2; +} + +// Dimension specifying users by their membership in other audience segments. +message AudienceSegmentDimension { + // Included audience segments. Users are included if they belong to at least + // one segment. + repeated AudienceSegment segments = 1; +} + +// Positive audience segment. +message AudienceSegment { + // Positive segment. + oneof segment { + // User list segment. + UserListSegment user_list = 1; + + // Affinity or In-market segment. + UserInterestSegment user_interest = 2; + + // Live-event audience segment. + LifeEventSegment life_event = 3; + + // Detailed demographic segment. + DetailedDemographicSegment detailed_demographic = 4; + + // Custom audience segment. + CustomAudienceSegment custom_audience = 5; + } +} + +// User list segment. +message UserListSegment { + // The user list resource. + optional string user_list = 1; +} + +// User interest segment. +message UserInterestSegment { + // The user interest resource. + optional string user_interest_category = 1; +} + +// Live event segment. +message LifeEventSegment { + // The life event resource. + optional string life_event = 1; +} + +// Detailed demographic segment. +message DetailedDemographicSegment { + // The detailed demographic resource. + optional string detailed_demographic = 1; +} + +// Custom audience segment. +message CustomAudienceSegment { + // The custom audience resource. + optional string custom_audience = 1; +} diff --git a/google/ads/googleads/v11/common/bidding.proto b/google/ads/googleads/v11/common/bidding.proto new file mode 100644 index 000000000..3658241fc --- /dev/null +++ b/google/ads/googleads/v11/common/bidding.proto @@ -0,0 +1,208 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/target_impression_share_location.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "BiddingProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing bidding schemes. + +// Commission is an automatic bidding strategy in which the advertiser pays a +// certain portion of the conversion value. +message Commission { + // Commission rate defines the portion of the conversion value that the + // advertiser will be billed. A commission rate of x should be passed into + // this field as (x * 1,000,000). For example, 106,000 represents a commission + // rate of 0.106 (10.6%). + optional int64 commission_rate_micros = 2; +} + +// An automated 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. +// +// This bidding strategy is deprecated and cannot be created anymore. Use +// ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality. +message EnhancedCpc { + +} + +// Manual bidding strategy that allows advertiser to set the bid per +// advertiser-specified action. +message ManualCpa { + +} + +// Manual click-based bidding where user pays per click. +message ManualCpc { + // Whether bids are to be enhanced based on conversion optimizer data. + optional bool enhanced_cpc_enabled = 2; +} + +// Manual impression-based bidding where user pays per thousand impressions. +message ManualCpm { + +} + +// View based bidding where user pays per video view. +message ManualCpv { + +} + +// An automated bidding strategy to help get the most conversions for your +// campaigns while spending your budget. +message MaximizeConversions { + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + int64 cpc_bid_ceiling_micros = 2; + + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + int64 cpc_bid_floor_micros = 3; + + // The target cost-per-action (CPA) option. This is the average amount that + // you would like to spend per conversion action specified in micro units of + // the bidding strategy's currency. If set, the bid strategy will get as many + // conversions as possible at or below the target cost-per-action. If the + // target CPA is not set, the bid strategy will aim to achieve the lowest + // possible CPA given the budget. + int64 target_cpa_micros = 4; +} + +// An automated bidding strategy to help get the most conversion value for your +// campaigns while spending your budget. +message MaximizeConversionValue { + // 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 = 2; + + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + int64 cpc_bid_ceiling_micros = 3; + + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + int64 cpc_bid_floor_micros = 4; +} + +// 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 { + // 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 = 4; + + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + optional int64 cpc_bid_ceiling_micros = 5; + + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + optional int64 cpc_bid_floor_micros = 6; +} + +// Target CPM (cost per thousand impressions) is an automated bidding strategy +// that sets bids to optimize performance given the target CPM you set. +message TargetCpm { + +} + +// 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 { + // The targeted location on the search results page. + google.ads.googleads.v11.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1; + + // 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 = 4; + + // 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 = 5; +} + +// An automated bidding strategy that helps you maximize revenue while +// averaging a specific target return on ad spend (ROAS). +message TargetRoas { + // Required. The chosen revenue (based on conversion data) per unit of spend. + // Value must be between 0.01 and 1000.0, inclusive. + optional double target_roas = 4; + + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + optional int64 cpc_bid_ceiling_micros = 5; + + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + optional int64 cpc_bid_floor_micros = 6; +} + +// 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. + // 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 = 3 [deprecated = true]; + + // 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 = 4; +} + +// A bidding strategy where bids are a fraction of the advertised price for +// some good or service. +message PercentCpc { + // Maximum bid limit that can be set by the bid strategy. This is + // an optional field entered by the advertiser and specified in local micros. + // Note: A zero value is interpreted in the same way as having bid_ceiling + // undefined. + optional int64 cpc_bid_ceiling_micros = 3; + + // Adjusts the bid for each auction upward or downward, depending on the + // likelihood of a conversion. Individual bids may exceed + // cpc_bid_ceiling_micros, but the average bid amount for a campaign should + // not. + optional bool enhanced_cpc_enabled = 4; +} diff --git a/google/ads/googleads/v11/common/click_location.proto b/google/ads/googleads/v11/common/click_location.proto new file mode 100644 index 000000000..11147bdcf --- /dev/null +++ b/google/ads/googleads/v11/common/click_location.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ClickLocationProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing a ClickLocation. + +// Location criteria associated with a click. +message ClickLocation { + // The city location criterion associated with the impression. + optional string city = 6; + + // The country location criterion associated with the impression. + optional string country = 7; + + // The metro location criterion associated with the impression. + optional string metro = 8; + + // The most specific location criterion associated with the impression. + optional string most_specific = 9; + + // The region location criterion associated with the impression. + optional string region = 10; +} diff --git a/google/ads/googleads/v11/common/criteria.proto b/google/ads/googleads/v11/common/criteria.proto new file mode 100644 index 000000000..f2b30fbeb --- /dev/null +++ b/google/ads/googleads/v11/common/criteria.proto @@ -0,0 +1,698 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/age_range_type.proto"; +import "google/ads/googleads/v11/enums/app_payment_model_type.proto"; +import "google/ads/googleads/v11/enums/content_label_type.proto"; +import "google/ads/googleads/v11/enums/day_of_week.proto"; +import "google/ads/googleads/v11/enums/device.proto"; +import "google/ads/googleads/v11/enums/gender_type.proto"; +import "google/ads/googleads/v11/enums/hotel_date_selection_type.proto"; +import "google/ads/googleads/v11/enums/income_range_type.proto"; +import "google/ads/googleads/v11/enums/interaction_type.proto"; +import "google/ads/googleads/v11/enums/keyword_match_type.proto"; +import "google/ads/googleads/v11/enums/listing_group_type.proto"; +import "google/ads/googleads/v11/enums/location_group_radius_units.proto"; +import "google/ads/googleads/v11/enums/minute_of_hour.proto"; +import "google/ads/googleads/v11/enums/parental_status_type.proto"; +import "google/ads/googleads/v11/enums/preferred_content_type.proto"; +import "google/ads/googleads/v11/enums/product_bidding_category_level.proto"; +import "google/ads/googleads/v11/enums/product_channel.proto"; +import "google/ads/googleads/v11/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v11/enums/product_condition.proto"; +import "google/ads/googleads/v11/enums/product_custom_attribute_index.proto"; +import "google/ads/googleads/v11/enums/product_type_level.proto"; +import "google/ads/googleads/v11/enums/proximity_radius_units.proto"; +import "google/ads/googleads/v11/enums/webpage_condition_operand.proto"; +import "google/ads/googleads/v11/enums/webpage_condition_operator.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "CriteriaProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing criteria types. + +// A keyword criterion. +message KeywordInfo { + // The text of the keyword (at most 80 characters and 10 words). + optional string text = 3; + + // The match type of the keyword. + google.ads.googleads.v11.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; +} + +// A placement criterion. This can be used to modify bids for sites when +// targeting the content network. +message PlacementInfo { + // URL of the placement. + // + // For example, "http://www.domain.com". + optional string url = 2; +} + +// A mobile app category criterion. +message MobileAppCategoryInfo { + // The mobile app category constant resource name. + optional string mobile_app_category_constant = 2; +} + +// A mobile application criterion. +message MobileApplicationInfo { + // A string that uniquely identifies a mobile application to Google Ads API. + // The format of this string is "{platform}-{platform_native_id}", where + // platform is "1" for iOS apps and "2" for Android apps, and where + // platform_native_id is the mobile application identifier native to the + // corresponding platform. + // For iOS, this native identifier is the 9 digit string that appears at the + // end of an App Store URL (for example, "476943146" for "Flood-It! 2" whose + // App Store link is + // "http://itunes.apple.com/us/app/flood-it!-2/id476943146"). For Android, + // this native identifier is the application's package name (for example, + // "com.labpixies.colordrips" for "Color Drips" given Google Play link + // "https://play.google.com/store/apps/details?id=com.labpixies.colordrips"). + // A well formed app id for Google Ads API would thus be "1-476943146" for iOS + // and "2-com.labpixies.colordrips" for Android. + // This field is required and must be set in CREATE operations. + optional string app_id = 4; + + // Name of this mobile application. + optional string name = 5; +} + +// A location criterion. +message LocationInfo { + // The geo target constant resource name. + optional string geo_target_constant = 2; +} + +// A device criterion. +message DeviceInfo { + // Type of the device. + google.ads.googleads.v11.enums.DeviceEnum.Device type = 1; +} + +// A preferred content criterion. +message PreferredContentInfo { + // Type of the preferred content. + google.ads.googleads.v11.enums.PreferredContentTypeEnum.PreferredContentType type = 2; +} + +// A listing group criterion. +message ListingGroupInfo { + // Type of the listing group. + google.ads.googleads.v11.enums.ListingGroupTypeEnum.ListingGroupType type = 1; + + // Dimension value with which this listing group is refining its parent. + // Undefined for the root group. + ListingDimensionInfo case_value = 2; + + // Resource name of ad group criterion which is the parent listing group + // subdivision. Null for the root group. + optional string parent_ad_group_criterion = 4; +} + +// A listing scope criterion. +message ListingScopeInfo { + // Scope of the campaign criterion. + repeated ListingDimensionInfo dimensions = 2; +} + +// Listing dimensions for listing group criterion. +message ListingDimensionInfo { + // Dimension of one of the types below is always present. + oneof dimension { + // Advertiser-specific hotel ID. + HotelIdInfo hotel_id = 2; + + // Class of the hotel as a number of stars 1 to 5. + HotelClassInfo hotel_class = 3; + + // Country or Region the hotel is located in. + HotelCountryRegionInfo hotel_country_region = 4; + + // State the hotel is located in. + HotelStateInfo hotel_state = 5; + + // City the hotel is located in. + HotelCityInfo hotel_city = 6; + + // Bidding category of a product offer. + ProductBiddingCategoryInfo product_bidding_category = 13; + + // Brand of a product offer. + ProductBrandInfo product_brand = 15; + + // Locality of a product offer. + ProductChannelInfo product_channel = 8; + + // Availability of a product offer. + ProductChannelExclusivityInfo product_channel_exclusivity = 9; + + // Condition of a product offer. + ProductConditionInfo product_condition = 10; + + // Custom attribute of a product offer. + ProductCustomAttributeInfo product_custom_attribute = 16; + + // Item id of a product offer. + ProductItemIdInfo product_item_id = 11; + + // Type of a product offer. + ProductTypeInfo product_type = 12; + + // Grouping of a product offer. + ProductGroupingInfo product_grouping = 17; + + // Labels of a product offer. + ProductLabelsInfo product_labels = 18; + + // Legacy condition of a product offer. + ProductLegacyConditionInfo product_legacy_condition = 19; + + // Full type of a product offer. + ProductTypeFullInfo product_type_full = 20; + + // Unknown dimension. Set when no other listing dimension is set. + UnknownListingDimensionInfo unknown_listing_dimension = 14; + } +} + +// Advertiser-specific hotel ID. +message HotelIdInfo { + // String value of the hotel ID. + optional string value = 2; +} + +// Class of the hotel as a number of stars 1 to 5. +message HotelClassInfo { + // Long value of the hotel class. + optional int64 value = 2; +} + +// Country or Region the hotel is located in. +message HotelCountryRegionInfo { + // The Geo Target Constant resource name. + optional string country_region_criterion = 2; +} + +// State the hotel is located in. +message HotelStateInfo { + // The Geo Target Constant resource name. + optional string state_criterion = 2; +} + +// City the hotel is located in. +message HotelCityInfo { + // The Geo Target Constant resource name. + optional string city_criterion = 2; +} + +// Bidding category of a product offer. +message ProductBiddingCategoryInfo { + // 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 = 4; + + // Two-letter upper-case country code of the product bidding category. It must + // match the campaign.shopping_setting.sales_country field. + optional string country_code = 5; + + // Level of the product bidding category. + google.ads.googleads.v11.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 3; +} + +// Brand of the product. +message ProductBrandInfo { + // String value of the product brand. + optional string value = 2; +} + +// Locality of a product offer. +message ProductChannelInfo { + // Value of the locality. + google.ads.googleads.v11.enums.ProductChannelEnum.ProductChannel channel = 1; +} + +// Availability of a product offer. +message ProductChannelExclusivityInfo { + // Value of the availability. + google.ads.googleads.v11.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity channel_exclusivity = 1; +} + +// Condition of a product offer. +message ProductConditionInfo { + // Value of the condition. + google.ads.googleads.v11.enums.ProductConditionEnum.ProductCondition condition = 1; +} + +// Custom attribute of a product offer. +message ProductCustomAttributeInfo { + // String value of the product custom attribute. + optional string value = 3; + + // Indicates the index of the custom attribute. + google.ads.googleads.v11.enums.ProductCustomAttributeIndexEnum.ProductCustomAttributeIndex index = 2; +} + +// Item id of a product offer. +message ProductItemIdInfo { + // Value of the id. + optional string value = 2; +} + +// Type of a product offer. +message ProductTypeInfo { + // Value of the type. + optional string value = 3; + + // Level of the type. + google.ads.googleads.v11.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2; +} + +// Grouping of a product offer. This listing dimension is deprecated and it is +// supported only in Display campaigns. +message ProductGroupingInfo { + // String value of the product grouping. + optional string value = 1; +} + +// Labels of a product offer. This listing dimension is deprecated and it is +// supported only in Display campaigns. +message ProductLabelsInfo { + // String value of the product labels. + optional string value = 1; +} + +// Legacy condition of a product offer. This listing dimension is deprecated and +// it is supported only in Display campaigns. +message ProductLegacyConditionInfo { + // String value of the product legacy condition. + optional string value = 1; +} + +// Full type of a product offer. This listing dimension is deprecated and it is +// supported only in Display campaigns. +message ProductTypeFullInfo { + // String value of the product full type. + optional string value = 1; +} + +// Unknown listing dimension. +message UnknownListingDimensionInfo { + +} + +// Criterion for hotel date selection (default dates versus user selected). +message HotelDateSelectionTypeInfo { + // Type of the hotel date selection + google.ads.googleads.v11.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType type = 1; +} + +// Criterion for number of days prior to the stay the booking is being made. +message HotelAdvanceBookingWindowInfo { + // Low end of the number of days prior to the stay. + optional int64 min_days = 3; + + // High end of the number of days prior to the stay. + optional int64 max_days = 4; +} + +// Criterion for length of hotel stay in nights. +message HotelLengthOfStayInfo { + // Low end of the number of nights in the stay. + optional int64 min_nights = 3; + + // High end of the number of nights in the stay. + optional int64 max_nights = 4; +} + +// Criterion for a check-in date range. +message HotelCheckInDateRangeInfo { + // Start date in the YYYY-MM-DD format. + string start_date = 1; + + // End date in the YYYY-MM-DD format. + string end_date = 2; +} + +// Criterion for day of the week the booking is for. +message HotelCheckInDayInfo { + // The day of the week. + google.ads.googleads.v11.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1; +} + +// Criterion for Interaction Type. +message InteractionTypeInfo { + // The interaction type. + google.ads.googleads.v11.enums.InteractionTypeEnum.InteractionType type = 1; +} + +// Represents an AdSchedule criterion. +// +// AdSchedule is specified as the day of the week and a time interval +// within which ads will be shown. +// +// No more than six AdSchedules can be added for the same day. +message AdScheduleInfo { + // Minutes after the start hour at which this schedule starts. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + google.ads.googleads.v11.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.v11.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; + + // Starting hour in 24 hour time. + // This field must be between 0 and 23, inclusive. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + optional int32 start_hour = 6; + + // Ending hour in 24 hour time; 24 signifies end of the day. + // This field must be between 0 and 24, inclusive. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + optional int32 end_hour = 7; + + // Day of the week the schedule applies to. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + google.ads.googleads.v11.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; +} + +// An age range criterion. +message AgeRangeInfo { + // Type of the age range. + google.ads.googleads.v11.enums.AgeRangeTypeEnum.AgeRangeType type = 1; +} + +// A gender criterion. +message GenderInfo { + // Type of the gender. + google.ads.googleads.v11.enums.GenderTypeEnum.GenderType type = 1; +} + +// An income range criterion. +message IncomeRangeInfo { + // Type of the income range. + google.ads.googleads.v11.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1; +} + +// A parental status criterion. +message ParentalStatusInfo { + // Type of the parental status. + google.ads.googleads.v11.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1; +} + +// A YouTube Video criterion. +message YouTubeVideoInfo { + // YouTube video id as it appears on the YouTube watch page. + optional string video_id = 2; +} + +// A YouTube Channel criterion. +message YouTubeChannelInfo { + // The YouTube uploader channel id or the channel code of a YouTube channel. + optional string channel_id = 2; +} + +// A User List criterion. Represents a user list that is defined by the +// advertiser to be targeted. +message UserListInfo { + // The User List resource name. + optional string user_list = 2; +} + +// A Proximity criterion. The geo point and radius determine what geographical +// area is included. The address is a description of the geo point that does +// not affect ad serving. +// +// There are two ways to create a proximity. First, by setting an address +// and radius. The geo point will be automatically computed. Second, by +// setting a geo point and radius. The address is an optional label that won't +// be validated. +message ProximityInfo { + // Latitude and longitude. + GeoPointInfo geo_point = 1; + + // The radius of the proximity. + optional double radius = 5; + + // The unit of measurement of the radius. Default is KILOMETERS. + google.ads.googleads.v11.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3; + + // Full address. + AddressInfo address = 4; +} + +// Geo point for proximity criterion. +message GeoPointInfo { + // Micro degrees for the longitude. + optional int32 longitude_in_micro_degrees = 3; + + // Micro degrees for the latitude. + optional int32 latitude_in_micro_degrees = 4; +} + +// Address for proximity criterion. +message AddressInfo { + // Postal code. + optional string postal_code = 8; + + // Province or state code. + optional string province_code = 9; + + // Country code. + optional string country_code = 10; + + // Province or state name. + optional string province_name = 11; + + // Street address line 1. + optional string street_address = 12; + + // Street address line 2. This field is write-only. It is only used for + // calculating the longitude and latitude of an address when geo_point is + // empty. + optional string street_address2 = 13; + + // Name of the city. + optional string city_name = 14; +} + +// A topic criterion. Use topics to target or exclude placements in the +// Google Display Network based on the category into which the placement falls +// (for example, "Pets & Animals/Pets/Dogs"). +message TopicInfo { + // The Topic Constant resource name. + optional string topic_constant = 3; + + // The category to target or exclude. Each subsequent element in the array + // describes a more specific sub-category. For example, + // "Pets & Animals", "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs" + // category. + repeated string path = 4; +} + +// A language criterion. +message LanguageInfo { + // The language constant resource name. + optional string language_constant = 2; +} + +// An IpBlock criterion used for IP exclusions. We allow: +// - IPv4 and IPv6 addresses +// - individual addresses (192.168.0.1) +// - masks for individual addresses (192.168.0.1/32) +// - masks for Class C networks (192.168.0.1/24) +message IpBlockInfo { + // The IP address of this IP block. + optional string ip_address = 2; +} + +// Content Label for category exclusion. +message ContentLabelInfo { + // Content label type, required for CREATE operations. + google.ads.googleads.v11.enums.ContentLabelTypeEnum.ContentLabelType type = 1; +} + +// Represents a Carrier Criterion. +message CarrierInfo { + // The Carrier constant resource name. + optional string carrier_constant = 2; +} + +// Represents a particular interest-based topic to be targeted. +message UserInterestInfo { + // The UserInterest resource name. + optional string user_interest_category = 2; +} + +// Represents a criterion for targeting webpages of an advertiser's website. +message WebpageInfo { + // The name of the criterion that is defined by this parameter. The name value + // will be used for identifying, sorting and filtering criteria with this type + // of parameters. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + optional string criterion_name = 3; + + // Conditions, or logical expressions, for webpage targeting. The list of + // webpage targeting conditions are and-ed together when evaluated + // for targeting. An empty list of conditions indicates all pages of the + // campaign's website are targeted. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + repeated WebpageConditionInfo conditions = 2; + + // Website criteria coverage percentage. This is the computed percentage + // of website coverage based on the website target, negative website target + // and negative keywords in the ad group and campaign. For instance, when + // coverage returns as 1, it indicates it has 100% coverage. This field is + // read-only. + double coverage_percentage = 4; + + // List of sample urls that match the website target. This field is read-only. + WebpageSampleInfo sample = 5; +} + +// Logical expression for targeting webpages of an advertiser's website. +message WebpageConditionInfo { + // Operand of webpage targeting condition. + google.ads.googleads.v11.enums.WebpageConditionOperandEnum.WebpageConditionOperand operand = 1; + + // Operator of webpage targeting condition. + google.ads.googleads.v11.enums.WebpageConditionOperatorEnum.WebpageConditionOperator operator = 2; + + // Argument of webpage targeting condition. + optional string argument = 4; +} + +// List of sample urls that match the website target +message WebpageSampleInfo { + // Webpage sample urls + repeated string sample_urls = 1; +} + +// Represents an operating system version to be targeted. +message OperatingSystemVersionInfo { + // The operating system version constant resource name. + optional string operating_system_version_constant = 2; +} + +// An app payment model criterion. +message AppPaymentModelInfo { + // Type of the app payment model. + google.ads.googleads.v11.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1; +} + +// A mobile device criterion. +message MobileDeviceInfo { + // The mobile device constant resource name. + optional string mobile_device_constant = 2; +} + +// A custom affinity criterion. +// A criterion of this type is only targetable. +message CustomAffinityInfo { + // The CustomInterest resource name. + optional string custom_affinity = 2; +} + +// A custom intent criterion. +// A criterion of this type is only targetable. +message CustomIntentInfo { + // The CustomInterest resource name. + optional string custom_intent = 2; +} + +// A radius around a list of locations specified through a feed. +message LocationGroupInfo { + // Feed specifying locations for targeting. + // This is required and must be set in CREATE operations. + optional string feed = 5; + + // Geo target constant(s) restricting the scope of the geographic area within + // the feed. Currently only one geo target constant is allowed. + repeated string geo_target_constants = 6; + + // Distance in units specifying the radius around targeted locations. + // This is required and must be set in CREATE operations. + optional int64 radius = 7; + + // Unit of the radius. Miles and meters are supported for geo target + // constants. Milli miles and meters are supported for feed item sets. + // This is required and must be set in CREATE operations. + google.ads.googleads.v11.enums.LocationGroupRadiusUnitsEnum.LocationGroupRadiusUnits radius_units = 4; + + // FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, + // then all items that appear in at least one set are targeted. This field + // cannot be used with geo_target_constants. This is optional and can only be + // set in CREATE operations. + repeated string feed_item_sets = 8; +} + +// A custom audience criterion. +message CustomAudienceInfo { + // The CustomAudience resource name. + string custom_audience = 1; +} + +// A combined audience criterion. +message CombinedAudienceInfo { + // The CombinedAudience resource name. + string combined_audience = 1; +} + +// An audience criterion. +message AudienceInfo { + // The Audience resource name. + string audience = 1; +} + +// A Smart Campaign keyword theme. +message KeywordThemeInfo { + // Either a predefined keyword theme constant or free-form text may be + // specified. + 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; + + // Free-form text to be matched to a Smart Campaign keyword theme constant + // on a best-effort basis. + string free_form_keyword_theme = 2; + } +} diff --git a/google/ads/googleads/v11/common/criterion_category_availability.proto b/google/ads/googleads/v11/common/criterion_category_availability.proto new file mode 100644 index 000000000..6b0dcff53 --- /dev/null +++ b/google/ads/googleads/v11/common/criterion_category_availability.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/advertising_channel_sub_type.proto"; +import "google/ads/googleads/v11/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v11/enums/criterion_category_channel_availability_mode.proto"; +import "google/ads/googleads/v11/enums/criterion_category_locale_availability_mode.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "CriterionCategoryAvailabilityProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing criterion category availability information. + +// Information of category availability, per advertising channel. +message CriterionCategoryAvailability { + // Channel types and subtypes that are available to the category. + CriterionCategoryChannelAvailability channel = 1; + + // Locales that are available to the category for the channel. + repeated CriterionCategoryLocaleAvailability locale = 2; +} + +// Information of advertising channel type and subtypes a category is available +// in. +message CriterionCategoryChannelAvailability { + // Format of the channel availability. Can be ALL_CHANNELS (the rest of the + // fields will not be set), CHANNEL_TYPE (only advertising_channel_type type + // will be set, the category is available to all sub types under it) or + // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, + // advertising_channel_sub_type, and include_default_channel_sub_type will all + // be set). + google.ads.googleads.v11.enums.CriterionCategoryChannelAvailabilityModeEnum.CriterionCategoryChannelAvailabilityMode availability_mode = 1; + + // Channel type the category is available to. + google.ads.googleads.v11.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 2; + + // Channel subtypes under the channel type the category is available to. + repeated google.ads.googleads.v11.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 3; + + // Whether default channel sub type is included. For example, + // advertising_channel_type being DISPLAY and include_default_channel_sub_type + // being false means that the default display campaign where channel sub type + // is not set is not included in this availability configuration. + optional bool include_default_channel_sub_type = 5; +} + +// Information about which locales a category is available in. +message CriterionCategoryLocaleAvailability { + // Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and + // 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.v11.enums.CriterionCategoryLocaleAvailabilityModeEnum.CriterionCategoryLocaleAvailabilityMode availability_mode = 1; + + // Code of the country. + optional string country_code = 4; + + // Code of the language. + optional string language_code = 5; +} diff --git a/google/ads/googleads/v11/common/custom_parameter.proto b/google/ads/googleads/v11/common/custom_parameter.proto new file mode 100644 index 000000000..7a2075927 --- /dev/null +++ b/google/ads/googleads/v11/common/custom_parameter.proto @@ -0,0 +1,38 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "CustomParameterProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing CustomParameter and operation + +// A mapping that can be used by custom parameter tags in a +// `tracking_url_template`, `final_urls`, or `mobile_final_urls`. +message CustomParameter { + // The key matching the parameter tag name. + optional string key = 3; + + // The value to be substituted. + optional string value = 4; +} diff --git a/google/ads/googleads/v11/common/customizer_value.proto b/google/ads/googleads/v11/common/customizer_value.proto new file mode 100644 index 000000000..b8ed88a98 --- /dev/null +++ b/google/ads/googleads/v11/common/customizer_value.proto @@ -0,0 +1,44 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/customizer_attribute_type.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerValueProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing common customizer value proto messages. + +// A customizer value that is referenced in customizer linkage entities +// like CustomerCustomizer, CampaignCustomizer, etc. +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.v11.enums.CustomizerAttributeTypeEnum.CustomizerAttributeType type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Value to insert in creative text. Customizer values of all types are stored + // as string to make formatting unambiguous. + string string_value = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v11/common/dates.proto b/google/ads/googleads/v11/common/dates.proto new file mode 100644 index 000000000..33e2484ab --- /dev/null +++ b/google/ads/googleads/v11/common/dates.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/month_of_year.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "DatesProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing date range message. + +// A date range. +message DateRange { + // The start date, in yyyy-mm-dd format. This date is inclusive. + optional string start_date = 3; + + // The end date, in yyyy-mm-dd format. This date is inclusive. + optional string end_date = 4; +} + +// The year month range inclusive of the start and end months. +// Eg: A year month range to represent Jan 2020 would be: (Jan 2020, Jan 2020). +message YearMonthRange { + // The inclusive start year month. + YearMonth start = 1; + + // The inclusive end year month. + YearMonth end = 2; +} + +// Year month. +message YearMonth { + // The year (for example, 2020). + int64 year = 1; + + // The month of the year. (for example, FEBRUARY). + google.ads.googleads.v11.enums.MonthOfYearEnum.MonthOfYear month = 2; +} diff --git a/google/ads/googleads/v11/common/explorer_auto_optimizer_setting.proto b/google/ads/googleads/v11/common/explorer_auto_optimizer_setting.proto new file mode 100644 index 000000000..c2c020ce5 --- /dev/null +++ b/google/ads/googleads/v11/common/explorer_auto_optimizer_setting.proto @@ -0,0 +1,36 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ExplorerAutoOptimizerSettingProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing ExplorerAutoOptimizerSetting + +// Settings for the Display Campaign Optimizer, initially named "Explorer". +// Learn more about +// [automatic targeting](https://support.google.com/google-ads/answer/190596). +message ExplorerAutoOptimizerSetting { + // Indicates whether the optimizer is turned on. + optional bool opt_in = 2; +} diff --git a/google/ads/googleads/v11/common/extensions.proto b/google/ads/googleads/v11/common/extensions.proto new file mode 100644 index 000000000..46a6d9ea3 --- /dev/null +++ b/google/ads/googleads/v11/common/extensions.proto @@ -0,0 +1,367 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/common/custom_parameter.proto"; +import "google/ads/googleads/v11/common/feed_common.proto"; +import "google/ads/googleads/v11/enums/app_store.proto"; +import "google/ads/googleads/v11/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v11/enums/price_extension_price_qualifier.proto"; +import "google/ads/googleads/v11/enums/price_extension_price_unit.proto"; +import "google/ads/googleads/v11/enums/price_extension_type.proto"; +import "google/ads/googleads/v11/enums/promotion_extension_discount_modifier.proto"; +import "google/ads/googleads/v11/enums/promotion_extension_occasion.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionsProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing extension types. + +// Represents an App extension. +message AppFeedItem { + // The visible text displayed when the link is rendered in an ad. + // This string must not be empty, and the length of this string should + // be between 1 and 25, inclusive. + optional string link_text = 9; + + // The store-specific ID for the target application. + // This string must not be empty. + optional string app_id = 10; + + // The application store that the target application belongs to. + // This field is required. + google.ads.googleads.v11.enums.AppStoreEnum.AppStore app_store = 3; + + // A list of possible final URLs after all cross domain redirects. + // This list must not be empty. + repeated string final_urls = 11; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 12; + + // URL template for constructing a tracking URL. Default value is "{lpurl}". + optional string tracking_url_template = 13; + + // 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 CustomParameter url_custom_parameters = 7; + + // URL template for appending params to landing page URLs served with parallel + // tracking. + optional string final_url_suffix = 14; +} + +// Represents a Call extension. +message CallFeedItem { + // The advertiser's phone number to append to the ad. + // This string must not be empty. + optional string phone_number = 7; + + // Uppercase two-letter country code of the advertiser's phone number. + // This string must not be empty. + optional string country_code = 8; + + // Indicates whether call tracking is enabled. By default, call tracking is + // not enabled. + optional bool call_tracking_enabled = 9; + + // The conversion action to attribute a call conversion to. If not set a + // default conversion action is used. This field only has effect if + // call_tracking_enabled is set to true. Otherwise this field is ignored. + optional string call_conversion_action = 10; + + // If true, disable call conversion tracking. call_conversion_action should + // not be set if this is true. Optional. + optional bool call_conversion_tracking_disabled = 11; + + // 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.v11.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 6; +} + +// Represents a callout extension. +message CalloutFeedItem { + // The callout text. + // The length of this string should be between 1 and 25, inclusive. + optional string callout_text = 2; +} + +// Represents a location extension. +message LocationFeedItem { + // The name of the business. + optional string business_name = 9; + + // Line 1 of the business address. + optional string address_line_1 = 10; + + // Line 2 of the business address. + optional string address_line_2 = 11; + + // City of the business address. + optional string city = 12; + + // Province of the business address. + optional string province = 13; + + // Postal code of the business address. + optional string postal_code = 14; + + // Country code of the business address. + optional string country_code = 15; + + // Phone number of the business. + optional string phone_number = 16; +} + +// Represents an affiliate location extension. +message AffiliateLocationFeedItem { + // The name of the business. + optional string business_name = 11; + + // Line 1 of the business address. + optional string address_line_1 = 12; + + // Line 2 of the business address. + optional string address_line_2 = 13; + + // City of the business address. + optional string city = 14; + + // Province of the business address. + optional string province = 15; + + // Postal code of the business address. + optional string postal_code = 16; + + // Country code of the business address. + optional string country_code = 17; + + // Phone number of the business. + optional string phone_number = 18; + + // Id of the retail chain that is advertised as a seller of your product. + optional int64 chain_id = 19; + + // Name of chain. + optional string chain_name = 20; +} + +// An extension that users can click on to send a text message to the +// advertiser. +message TextMessageFeedItem { + // The business name to prepend to the message text. + // This field is required. + optional string business_name = 6; + + // Uppercase two-letter country code of the advertiser's phone number. + // This field is required. + optional string country_code = 7; + + // The advertiser's phone number the message will be sent to. Required. + optional string phone_number = 8; + + // The text to show in the ad. + // This field is required. + optional string text = 9; + + // The message extension_text populated in the messaging app. + optional string extension_text = 10; +} + +// Represents a Price extension. +message PriceFeedItem { + // Price extension type of this extension. + google.ads.googleads.v11.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1; + + // Price qualifier for all offers of this price extension. + google.ads.googleads.v11.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2; + + // Tracking URL template for all offers of this price extension. + optional string tracking_url_template = 7; + + // The code of the language used for this price extension. + optional string language_code = 8; + + // The price offerings in this price extension. + repeated PriceOffer price_offerings = 5; + + // Tracking URL template for all offers of this price extension. + optional string final_url_suffix = 9; +} + +// Represents one price offer in a price extension. +message PriceOffer { + // Header text of this offer. + optional string header = 7; + + // Description text of this offer. + optional string description = 8; + + // Price value of this offer. + Money price = 3; + + // Price unit for this offer. + google.ads.googleads.v11.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4; + + // A list of possible final URLs after all cross domain redirects. + repeated string final_urls = 9; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 10; +} + +// Represents a Promotion extension. +message PromotionFeedItem { + // A freeform description of what the promotion is targeting. + // This field is required. + optional string promotion_target = 16; + + // Enum that modifies the qualification of the discount. + google.ads.googleads.v11.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2; + + // Start date of when the promotion is eligible to be redeemed. + optional string promotion_start_date = 19; + + // Last date when the promotion is eligible to be redeemed. + optional string promotion_end_date = 20; + + // 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.v11.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9; + + // A list of possible final URLs after all cross domain redirects. + // This field is required. + repeated string final_urls = 21; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 22; + + // URL template for constructing a tracking URL. + optional string tracking_url_template = 23; + + // 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 CustomParameter url_custom_parameters = 13; + + // URL template for appending params to landing page URLs served with parallel + // tracking. + optional string final_url_suffix = 24; + + // The language of the promotion. + // Represented as BCP 47 language tag. + optional string language_code = 25; + + // Discount type, can be percentage off or amount off. + oneof discount_type { + // Percentage off discount in the promotion in micros. + // One million is equivalent to one percent. + // Either this or money_off_amount is required. + int64 percent_off = 17; + + // Money amount off for discount in the promotion. + // Either this or percent_off is required. + Money money_amount_off = 4; + } + + // Promotion trigger. Can be by promotion code or promo by eligible order + // amount. + oneof promotion_trigger { + // A code the user should use in order to be eligible for the promotion. + string promotion_code = 18; + + // The amount the total order needs to be for the user to be eligible for + // the promotion. + Money orders_over_amount = 6; + } +} + +// Represents a structured snippet extension. +message StructuredSnippetFeedItem { + // The header of the snippet. + // This string must not be empty. + optional string header = 3; + + // The values in the snippet. + // The maximum size of this collection is 10. + repeated string values = 4; +} + +// Represents a sitelink extension. +message SitelinkFeedItem { + // URL display text for the sitelink. + // The length of this string should be between 1 and 25, inclusive. + optional string link_text = 9; + + // First line of the description for the sitelink. + // If this value is set, line2 must also be set. + // The length of this string should be between 0 and 35, inclusive. + optional string line1 = 10; + + // Second line of the description for the sitelink. + // If this value is set, line1 must also be set. + // The length of this string should be between 0 and 35, inclusive. + optional string line2 = 11; + + // A list of possible final URLs after all cross domain redirects. + repeated string final_urls = 12; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 13; + + // URL template for constructing a tracking URL. + optional string tracking_url_template = 14; + + // 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 CustomParameter url_custom_parameters = 7; + + // Final URL suffix to be appended to landing page URLs served with + // parallel tracking. + optional string final_url_suffix = 15; +} + +// Represents a hotel callout extension. +message HotelCalloutFeedItem { + // The callout text. + // The length of this string should be between 1 and 25, inclusive. + optional string text = 3; + + // The language of the hotel callout text. + // IETF BCP 47 compliant language code. + optional string language_code = 4; +} + +// Represents an advertiser provided image extension. +message ImageFeedItem { + // Required. Resource name of the image asset. + string image_asset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; +} diff --git a/google/ads/googleads/v11/common/feed_common.proto b/google/ads/googleads/v11/common/feed_common.proto new file mode 100644 index 000000000..baf39ae6a --- /dev/null +++ b/google/ads/googleads/v11/common/feed_common.proto @@ -0,0 +1,37 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "FeedCommonProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing common feed proto messages. + +// Represents a price in a particular currency. +message Money { + // Three-character ISO 4217 currency code. + optional string currency_code = 3; + + // Amount in micros. One million is equivalent to one unit. + optional int64 amount_micros = 4; +} diff --git a/google/ads/googleads/v11/common/feed_item_set_filter_type_infos.proto b/google/ads/googleads/v11/common/feed_item_set_filter_type_infos.proto new file mode 100644 index 000000000..84698b589 --- /dev/null +++ b/google/ads/googleads/v11/common/feed_item_set_filter_type_infos.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/feed_item_set_string_filter_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetFilterTypeInfosProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Represents a filter on locations in a feed item set. +// Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. +message DynamicLocationSetFilter { + // If multiple labels are set, then only feeditems marked with all the labels + // will be added to the FeedItemSet. + repeated string labels = 1; + + // Business name filter. + BusinessNameFilter business_name_filter = 2; +} + +// Represents a business name filter on locations in a FeedItemSet. +message BusinessNameFilter { + // Business name string to use for filtering. + string business_name = 1; + + // The type of string matching to use when filtering with business_name. + google.ads.googleads.v11.enums.FeedItemSetStringFilterTypeEnum.FeedItemSetStringFilterType filter_type = 2; +} + +// Represents a filter on affiliate locations in a FeedItemSet. +// Only applicable if the parent Feed of the FeedItemSet is an +// AFFILIATE_LOCATION feed. +message DynamicAffiliateLocationSetFilter { + // Used to filter affiliate locations by chain ids. Only affiliate locations + // that belong to the specified chain(s) will be added to the FeedItemSet. + repeated int64 chain_ids = 1; +} diff --git a/google/ads/googleads/v11/common/final_app_url.proto b/google/ads/googleads/v11/common/final_app_url.proto new file mode 100644 index 000000000..2276867dc --- /dev/null +++ b/google/ads/googleads/v11/common/final_app_url.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/app_url_operating_system_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "FinalAppUrlProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::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.v11.enums.AppUrlOperatingSystemTypeEnum.AppUrlOperatingSystemType os_type = 1; + + // The app deep link URL. Deep links specify a location in an app that + // corresponds to the content you'd like to show, and should be of the form + // {scheme}://{host_path} + // The scheme identifies which app to open. For your app, you can use a custom + // scheme that starts with the app's name. The host and path specify the + // unique location in the app where your content exists. + // Example: "exampleapp://productid_1234". Required. + optional string url = 3; +} diff --git a/google/ads/googleads/v11/common/frequency_cap.proto b/google/ads/googleads/v11/common/frequency_cap.proto new file mode 100644 index 000000000..2aa24c96e --- /dev/null +++ b/google/ads/googleads/v11/common/frequency_cap.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/frequency_cap_event_type.proto"; +import "google/ads/googleads/v11/enums/frequency_cap_level.proto"; +import "google/ads/googleads/v11/enums/frequency_cap_time_unit.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing frequency caps. + +// A rule specifying the maximum number of times an ad (or some set of ads) can +// be shown to a user over a particular time period. +message FrequencyCapEntry { + // The key of a particular frequency cap. There can be no more + // than one frequency cap with the same key. + FrequencyCapKey key = 1; + + // Maximum number of events allowed during the time range by this cap. + optional int32 cap = 3; +} + +// A group of fields used as keys for a frequency cap. +// There can be no more than one frequency cap with the same key. +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.v11.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = 1; + + // The type of event that the cap applies to (for example, impression). + google.ads.googleads.v11.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType event_type = 3; + + // Unit of time the cap is defined at (for example, day, week). + google.ads.googleads.v11.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2; + + // Number of time units the cap lasts. + optional int32 time_length = 5; +} diff --git a/google/ads/googleads/v11/common/keyword_plan_common.proto b/google/ads/googleads/v11/common/keyword_plan_common.proto new file mode 100644 index 000000000..650932b18 --- /dev/null +++ b/google/ads/googleads/v11/common/keyword_plan_common.proto @@ -0,0 +1,148 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/common/dates.proto"; +import "google/ads/googleads/v11/enums/device.proto"; +import "google/ads/googleads/v11/enums/keyword_plan_aggregate_metric_type.proto"; +import "google/ads/googleads/v11/enums/keyword_plan_competition_level.proto"; +import "google/ads/googleads/v11/enums/keyword_plan_concept_group_type.proto"; +import "google/ads/googleads/v11/enums/month_of_year.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCommonProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing Keyword Planner messages. + +// Historical metrics specific to the targeting options selected. +// Targeting options include geographies, network, etc. +// Refer to https://support.google.com/google-ads/answer/3022575 for more +// details. +message KeywordPlanHistoricalMetrics { + // Approximate number of monthly searches on this query averaged + // for the past 12 months. + optional int64 avg_monthly_searches = 7; + + // Approximate number of searches on this query for the past twelve months. + repeated MonthlySearchVolume monthly_search_volumes = 6; + + // The competition level for the query. + google.ads.googleads.v11.enums.KeywordPlanCompetitionLevelEnum.KeywordPlanCompetitionLevel competition = 2; + + // The competition index for the query in the range [0, 100]. + // Shows how competitive ad placement is for a keyword. + // The level of competition from 0-100 is determined by the number of ad slots + // filled divided by the total number of ad slots available. If not enough + // data is available, null is returned. + optional int64 competition_index = 8; + + // Top of page bid low range (20th percentile) in micros for the keyword. + optional int64 low_top_of_page_bid_micros = 9; + + // Top of page bid high range (80th percentile) in micros for the keyword. + optional int64 high_top_of_page_bid_micros = 10; + + // Average Cost Per Click in micros for the keyword. + optional int64 average_cpc_micros = 11; +} + +// Historical metrics options. +message HistoricalMetricsOptions { + // The year month range for historical metrics. If not specified the searches + // will be returned for past 12 months. + // Searches data is available for the past 4 years. If the search volume is + // not available for the entire year_month_range provided, the subset of the + // year month range for which search volume is available will be returned. + optional YearMonthRange year_month_range = 1; + + // Indicates whether to include average cost per click value. + // Average CPC is a legacy value that will be removed and replaced in the + // future, and as such we are including it as an optioanl value so clients + // only use it when strictly necessary and to better track clients that use + // this value. + bool include_average_cpc = 2; +} + +// Monthly search volume. +message MonthlySearchVolume { + // The year of the search volume (for example, 2020). + optional int64 year = 4; + + // The month of the search volume. + google.ads.googleads.v11.enums.MonthOfYearEnum.MonthOfYear month = 2; + + // Approximate number of searches for the month. + // A null value indicates the search volume is unavailable for + // that month. + optional int64 monthly_searches = 5; +} + +// The aggregate metrics specification of the request. +message KeywordPlanAggregateMetrics { + // The list of aggregate metrics to fetch data. + repeated google.ads.googleads.v11.enums.KeywordPlanAggregateMetricTypeEnum.KeywordPlanAggregateMetricType aggregate_metric_types = 1; +} + +// The aggregated historical metrics for keyword plan keywords. +message KeywordPlanAggregateMetricResults { + // The aggregate searches for all the keywords segmented by device + // for the specified time. + // Supports the following device types: MOBILE, TABLET, DESKTOP. + // + // This is only set when KeywordPlanAggregateMetricTypeEnum.DEVICE is set + // in the KeywordPlanAggregateMetrics field in the request. + repeated KeywordPlanDeviceSearches device_searches = 1; +} + +// The total searches for the device type during the specified time period. +message KeywordPlanDeviceSearches { + // The device type. + google.ads.googleads.v11.enums.DeviceEnum.Device device = 1; + + // The total searches for the device. + optional int64 search_count = 2; +} + +// The Annotations for the Keyword plan keywords. +message KeywordAnnotations { + // The list of concepts for the keyword. + repeated KeywordConcept concepts = 1; +} + +// The concept for the keyword. +message KeywordConcept { + // The concept name for the keyword in the concept_group. + string name = 1; + + // The concept group of the concept details. + ConceptGroup concept_group = 2; +} + +// The concept group for the keyword concept. +message ConceptGroup { + // The concept group name. + string name = 1; + + // The concept group type. + google.ads.googleads.v11.enums.KeywordPlanConceptGroupTypeEnum.KeywordPlanConceptGroupType type = 2; +} diff --git a/google/ads/googleads/v11/common/matching_function.proto b/google/ads/googleads/v11/common/matching_function.proto new file mode 100644 index 000000000..a679cf034 --- /dev/null +++ b/google/ads/googleads/v11/common/matching_function.proto @@ -0,0 +1,125 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/matching_function_context_type.proto"; +import "google/ads/googleads/v11/enums/matching_function_operator.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "MatchingFunctionProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing a matching function. + +// Matching function associated with a +// CustomerFeed, CampaignFeed, or AdGroupFeed. The matching function is used +// to filter the set of feed items selected. +message MatchingFunction { + // String representation of the Function. + // + // Examples: + // + // 1. IDENTITY(true) or IDENTITY(false). All or no feed items served. + // 2. EQUALS(CONTEXT.DEVICE,"Mobile") + // 3. IN(FEED_ITEM_ID,{1000001,1000002,1000003}) + // 4. CONTAINS_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus cruise"}) + // 5. AND(IN(FEED_ITEM_ID,{10001,10002}),EQUALS(CONTEXT.DEVICE,"Mobile")) + // + // For more details, visit + // https://developers.google.com/adwords/api/docs/guides/feed-matching-functions + // + // Note that because multiple strings may represent the same underlying + // function (whitespace and single versus double quotation marks, for + // example), the value returned may not be identical to the string sent in a + // mutate request. + optional string function_string = 5; + + // Operator for a function. + google.ads.googleads.v11.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator operator = 4; + + // The operands on the left hand side of the equation. This is also the + // operand to be used for single operand expressions such as NOT. + repeated Operand left_operands = 2; + + // The operands on the right hand side of the equation. + repeated Operand right_operands = 3; +} + +// An operand in a matching function. +message Operand { + // A constant operand in a matching function. + message ConstantOperand { + // Constant operand values. Required. + oneof constant_operand_value { + // String value of the operand if it is a string type. + string string_value = 5; + + // Int64 value of the operand if it is a int64 type. + int64 long_value = 6; + + // Boolean value of the operand if it is a boolean type. + bool boolean_value = 7; + + // Double value of the operand if it is a double type. + double double_value = 8; + } + } + + // A feed attribute operand in a matching function. + // Used to represent a feed attribute in feed. + message FeedAttributeOperand { + // The associated feed. Required. + optional int64 feed_id = 3; + + // Id of the referenced feed attribute. Required. + optional int64 feed_attribute_id = 4; + } + + // A function operand in a matching function. + // Used to represent nested functions. + message FunctionOperand { + // The matching function held in this operand. + MatchingFunction matching_function = 1; + } + + // 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.v11.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType context_type = 1; + } + + // Different operands that can be used in a matching function. Required. + oneof function_argument_operand { + // A constant operand in a matching function. + ConstantOperand constant_operand = 1; + + // This operand specifies a feed attribute in feed. + FeedAttributeOperand feed_attribute_operand = 2; + + // A function operand in a matching function. + // Used to represent nested functions. + FunctionOperand function_operand = 3; + + // An operand in a function referring to a value in the request context. + RequestContextOperand request_context_operand = 4; + } +} diff --git a/google/ads/googleads/v11/common/metric_goal.proto b/google/ads/googleads/v11/common/metric_goal.proto new file mode 100644 index 000000000..51dbf45a3 --- /dev/null +++ b/google/ads/googleads/v11/common/metric_goal.proto @@ -0,0 +1,42 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/experiment_metric.proto"; +import "google/ads/googleads/v11/enums/experiment_metric_direction.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "MetricGoalProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing experiment metric goal. + +// A metric goal for an experiment. +message MetricGoal { + // The metric of the goal. For example, clicks, impressions, cost, + // conversions, etc. + google.ads.googleads.v11.enums.ExperimentMetricEnum.ExperimentMetric metric = 1; + + // The metric direction of the goal. For example, increase, decrease, no + // change. + google.ads.googleads.v11.enums.ExperimentMetricDirectionEnum.ExperimentMetricDirection direction = 2; +} diff --git a/google/ads/googleads/v11/common/metrics.proto b/google/ads/googleads/v11/common/metrics.proto new file mode 100644 index 000000000..fd1e0426f --- /dev/null +++ b/google/ads/googleads/v11/common/metrics.proto @@ -0,0 +1,674 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/interaction_event_type.proto"; +import "google/ads/googleads/v11/enums/quality_score_bucket.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "MetricsProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::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. + optional double absolute_top_impression_percentage = 183; + + // Average cost of viewable impressions (`active_view_impressions`). + optional double active_view_cpm = 184; + + // Active view measurable clicks divided by active view viewable impressions. + // This metric is reported only for display network. + optional double active_view_ctr = 185; + + // A measurement of how often your ad has become viewable on a Display + // Network site. + optional int64 active_view_impressions = 186; + + // The ratio of impressions that could be measured by Active View over the + // number of served impressions. + optional double active_view_measurability = 187; + + // The cost of the impressions you received that were measurable by Active + // View. + optional int64 active_view_measurable_cost_micros = 188; + + // The number of times your ads are appearing on placements in positions + // where they can be seen. + optional int64 active_view_measurable_impressions = 189; + + // The percentage of time when your ad appeared on an Active View enabled site + // (measurable impressions) and was viewable (viewable impressions). + optional double active_view_viewability = 190; + + // All conversions from interactions (as oppose to view through conversions) + // divided by the number of ad interactions. + optional double all_conversions_from_interactions_rate = 191; + + // The value of all conversions. + optional double all_conversions_value = 192; + + // The value of all conversions. When this column is selected 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_value_by_conversion_date = 240; + + // The total number of conversions. This includes all conversions regardless + // of the value of include_in_conversions_metric. + optional double all_conversions = 193; + + // The total number of conversions. This includes all conversions regardless + // of the value of include_in_conversions_metric. When this column is selected + // 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; + + // The value of all conversions divided by the total cost of ad interactions + // (such as clicks for text ads or views for video ads). + optional double all_conversions_value_per_cost = 194; + + // The number of times people clicked the "Call" button to call a store during + // or after clicking an ad. This number doesn't include whether or not calls + // were connected, or the duration of any calls. + // This metric applies to feed items only. + optional double all_conversions_from_click_to_call = 195; + + // The number of times people clicked a "Get directions" button to navigate to + // a store after clicking an ad. + // This metric applies to feed items only. + optional double all_conversions_from_directions = 196; + + // The value of all conversions from interactions divided by the total number + // of interactions. + optional double all_conversions_from_interactions_value_per_interaction = 197; + + // The number of times people clicked a link to view a store's menu after + // clicking an ad. + // This metric applies to feed items only. + optional double all_conversions_from_menu = 198; + + // The number of times people placed an order at a store after clicking an ad. + // This metric applies to feed items only. + optional double all_conversions_from_order = 199; + + // The number of other conversions (for example, posting a review or saving a + // location for a store) that occurred after people clicked an ad. + // This metric applies to feed items only. + optional double all_conversions_from_other_engagement = 200; + + // Estimated number of times people visited a store after clicking an ad. + // This metric applies to feed items only. + optional double all_conversions_from_store_visit = 201; + + // The number of times that people were taken to a store's URL after clicking + // an ad. + // This metric applies to feed items only. + 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. + // 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_absolute_top_impression_percentage = 258; + + // This metric is part of the Auction Insights report, and tells the + // percentage of impressions that another participant obtained, over the total + // number of impressions that your ads were eligible for. + // Any value below 0.1 is reported as 0.0999. + // This metric is not publicly available. + optional double auction_insight_search_impression_share = 259; + + // This metric is part of the Auction Insights report, and tells the + // percentage of impressions that your ads outranked (showed above) + // another participant in the auction, compared to the total number of + // impressions that your ads were eligible for. + // Any value below 0.1 is reported as 0.0999. + // This metric is not publicly available. + optional double auction_insight_search_outranking_share = 260; + + // This metric is part of the Auction Insights report, and tells how often + // another participant's ad received an impression when your ad also received + // an impression. + // This metric is not publicly available. + optional double auction_insight_search_overlap_rate = 261; + + // This metric is part of the Auction Insights report, and tells how often + // another participant's ad was shown in a higher position than yours, when + // both of your ads were shown at the same page. + // This metric is not publicly available. + 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. + // This metric is not publicly available. + optional double auction_insight_search_top_impression_percentage = 263; + + // The average amount you pay per interaction. This amount is the total cost + // of your ads divided by the total number of interactions. + optional double average_cost = 203; + + // The total cost of all clicks divided by the total number of clicks + // received. + optional double average_cpc = 204; + + // The average amount that you've been charged for an ad engagement. This + // amount is the total cost of all ad engagements divided by the total number + // of ad engagements. + optional double average_cpe = 205; + + // Average cost-per-thousand impressions (CPM). + optional double average_cpm = 206; + + // The average amount you pay each time someone views your ad. + // The average CPV is defined by the total cost of all ad views divided by + // the number of views. + optional double average_cpv = 207; + + // Average number of pages viewed per session. + optional double average_page_views = 208; + + // Total duration of all sessions (in seconds) / number of sessions. Imported + // from Google Analytics. + optional double average_time_on_site = 209; + + // An indication of how other advertisers are bidding on similar products. + optional double benchmark_average_max_cpc = 210; + + // Number of app installs. + optional double biddable_app_install_conversions = 254; + + // Number of in-app actions. + optional double biddable_app_post_install_conversions = 255; + + // An indication on how other advertisers' Shopping ads for similar products + // are performing based on how often people who see their ad click on it. + optional double benchmark_ctr = 211; + + // Percentage of clicks where the user only visited a single page on your + // site. Imported from Google Analytics. + optional double bounce_rate = 212; + + // The number of clicks. + optional int64 clicks = 131; + + // The number of times your ad or your site's listing in the unpaid + // results was clicked. See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional int64 combined_clicks = 156; + + // The number of times your ad or your site's listing in the unpaid + // results was clicked (combined_clicks) divided by combined_queries. See the + // help page at https://support.google.com/google-ads/answer/3097241 for + // details. + optional double combined_clicks_per_query = 157; + + // The number of searches that returned pages from your site in the unpaid + // results or showed one of your text ads. See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional int64 combined_queries = 158; + + // The estimated percent of times that your ad was eligible to show + // on the Display Network but didn't because your budget was too low. + // Note: Content budget lost impression share is reported in the range of 0 + // to 0.9. Any value above 0.9 is reported as 0.9001. + optional double content_budget_lost_impression_share = 159; + + // The impressions you've received on the Display Network divided + // by the estimated number of impressions you were eligible to receive. + // Note: Content impression share is reported in the range of 0.1 to 1. Any + // value below 0.1 is reported as 0.0999. + optional double content_impression_share = 160; + + // The last date/time a conversion tag for this conversion action successfully + // fired and was seen by Google Ads. This firing event may not have been the + // result of an attributable conversion (for example, because the tag was + // fired from a browser that did not previously click an ad from an + // appropriate advertiser). The date/time is in the customer's time zone. + optional string conversion_last_received_request_date_time = 161; + + // The date of the most recent conversion for this conversion action. The date + // is in the customer's time zone. + optional string conversion_last_conversion_date = 162; + + // The estimated percentage of impressions on the Display Network + // that your ads didn't receive due to poor Ad Rank. + // Note: Content rank lost impression share is reported in the range of 0 + // to 0.9. Any value above 0.9 is reported as 0.9001. + optional double content_rank_lost_impression_share = 163; + + // Conversions from interactions divided by the number of ad interactions + // (such as clicks for text ads or views for video ads). This only includes + // conversion actions which include_in_conversions_metric attribute is set to + // true. If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + optional double conversions_from_interactions_rate = 164; + + // The value of conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double conversions_value = 165; + + // The value of conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. When this column is selected 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 conversions_value_by_conversion_date = 242; + + // The value of conversions divided by the cost of ad interactions. This only + // includes conversion actions which include_in_conversions_metric attribute + // is set to true. If you use conversion-based bidding, your bid strategies + // will optimize for these conversions. + optional double conversions_value_per_cost = 166; + + // The value of conversions from interactions divided by the number of ad + // interactions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double conversions_from_interactions_value_per_interaction = 167; + + // The number of conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double conversions = 168; + + // The number of conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. When this column is selected 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 conversions_by_conversion_date = 243; + + // The sum of your cost-per-click (CPC) and cost-per-thousand impressions + // (CPM) costs during this period. + optional int64 cost_micros = 169; + + // The cost of ad interactions divided by all conversions. + optional double cost_per_all_conversions = 170; + + // The cost of ad interactions divided by conversions. This only includes + // conversion actions which include_in_conversions_metric attribute is set to + // true. If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + optional double cost_per_conversion = 171; + + // The cost of ad interactions divided by current model attributed + // conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double cost_per_current_model_attributed_conversion = 172; + + // Conversions from when a customer clicks on a Google Ads ad on one device, + // then converts on a different device or browser. + // Cross-device conversions are already included in all_conversions. + optional double cross_device_conversions = 173; + + // The number of clicks your ad receives (Clicks) divided by the number + // of times your ad is shown (Impressions). + optional double ctr = 174; + + // Shows how your historic conversions data would look under the attribution + // model you've currently selected. This only includes conversion actions + // which include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double current_model_attributed_conversions = 175; + + // Current model attributed conversions from interactions divided by the + // number of ad interactions (such as clicks for text ads or views for video + // ads). This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double current_model_attributed_conversions_from_interactions_rate = 176; + + // The value of current model attributed conversions from interactions divided + // by the number of ad interactions. This only includes conversion actions + // which include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; + + // The value of current model attributed conversions. This only includes + // conversion actions which include_in_conversions_metric attribute is set to + // true. If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + optional double current_model_attributed_conversions_value = 178; + + // The value of current model attributed conversions divided by the cost of ad + // interactions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double current_model_attributed_conversions_value_per_cost = 179; + + // How often people engage with your ad after it's shown to them. This is the + // number of ad expansions divided by the number of times your ad is shown. + optional double engagement_rate = 180; + + // The number of engagements. + // An engagement occurs when a viewer expands your Lightbox ad. Also, in the + // future, other ad types may support engagement metrics. + optional int64 engagements = 181; + + // Average lead value based on clicks. + optional double hotel_average_lead_value_micros = 213; + + // Commission bid rate in micros. A 20% commission is represented as + // 200,000. + optional int64 hotel_commission_rate_micros = 256; + + // Expected commission cost. The result of multiplying the commission value + // times the hotel_commission_rate in advertiser currency. + optional double hotel_expected_commission_cost = 257; + + // The average price difference between the price offered by reporting hotel + // advertiser and the cheapest price offered by the competing advertiser. + optional double hotel_price_difference_percentage = 214; + + // The number of impressions that hotel partners could have had given their + // feed performance. + optional int64 hotel_eligible_impressions = 215; + + // The creative historical quality score. + google.ads.googleads.v11.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; + + // The quality of historical landing page experience. + google.ads.googleads.v11.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.v11.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; + + // The number of times the ad was forwarded to someone else as a message. + optional int64 gmail_forwards = 217; + + // The number of times someone has saved your Gmail ad to their inbox as a + // message. + optional int64 gmail_saves = 218; + + // The number of clicks to the landing page on the expanded state of Gmail + // ads. + optional int64 gmail_secondary_clicks = 219; + + // The number of times a store's location-based ad was shown. + // This metric applies to feed items only. + optional int64 impressions_from_store_reach = 220; + + // Count of how often your ad has appeared on a search results page or + // website on the Google Network. + optional int64 impressions = 221; + + // How often people interact with your ad after it is shown to them. + // This is the number of interactions divided by the number of times your ad + // is shown. + optional double interaction_rate = 222; + + // The number of interactions. + // An interaction is the main user action associated with an ad format-clicks + // for text and shopping ads, views for video ads, and so on. + optional int64 interactions = 223; + + // The types of payable and free interactions. + repeated google.ads.googleads.v11.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + + // The percentage of clicks filtered out of your total number of clicks + // (filtered + non-filtered clicks) during the reporting period. + optional double invalid_click_rate = 224; + + // Number of clicks Google considers illegitimate and doesn't charge you for. + optional int64 invalid_clicks = 225; + + // Number of message chats initiated for Click To Message impressions that + // were message tracking eligible. + optional int64 message_chats = 226; + + // Number of Click To Message impressions that were message tracking eligible. + optional int64 message_impressions = 227; + + // Number of message chats initiated (message_chats) divided by the number + // of message impressions (message_impressions). + // Rate at which a user initiates a message chat from an ad impression with + // a messaging option and message tracking enabled. + // Note that this rate can be more than 1.0 for a given message impression. + optional double message_chat_rate = 228; + + // The percentage of mobile clicks that go to a mobile-friendly page. + optional double mobile_friendly_clicks_percentage = 229; + + // Total optimization score uplift of all recommendations. + optional double optimization_score_uplift = 247; + + // URL for the optimization score page in the Google Ads web interface. + // This metric can be selected from `customer` or `campaign`, and can be + // segmented by `segments.recommendation_type`. For example, `SELECT + // metrics.optimization_score_url, segments.recommendation_type FROM + // customer` will return a URL for each unique (customer, recommendation_type) + // combination. + optional string optimization_score_url = 248; + + // The number of times someone clicked your site's listing in the unpaid + // results for a particular query. See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional int64 organic_clicks = 230; + + // The number of times someone clicked your site's listing in the unpaid + // results (organic_clicks) divided by the total number of searches that + // returned pages from your site (organic_queries). See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional double organic_clicks_per_query = 231; + + // The number of listings for your site in the unpaid search results. See the + // help page at https://support.google.com/google-ads/answer/3097241 for + // details. + optional int64 organic_impressions = 232; + + // The number of times a page from your site was listed in the unpaid search + // results (organic_impressions) divided by the number of searches returning + // your site's listing in the unpaid results (organic_queries). See the help + // page at https://support.google.com/google-ads/answer/3097241 for details. + optional double organic_impressions_per_query = 233; + + // The total number of searches that returned your site's listing in the + // unpaid results. See the help page at + // https://support.google.com/google-ads/answer/3097241 for details. + optional int64 organic_queries = 234; + + // Percentage of first-time sessions (from people who had never visited your + // site before). Imported from Google Analytics. + optional double percent_new_visitors = 235; + + // Number of offline phone calls. + optional int64 phone_calls = 236; + + // Number of offline phone impressions. + optional int64 phone_impressions = 237; + + // Number of phone calls received (phone_calls) divided by the number of + // times your phone number is shown (phone_impressions). + optional double phone_through_rate = 238; + + // Your clickthrough rate (Ctr) divided by the average clickthrough rate of + // all advertisers on the websites that show your ads. Measures how your ads + // perform on Display Network sites compared to other ads on the same sites. + optional double relative_ctr = 239; + + // The percentage of the customer's Shopping or Search ad impressions that are + // shown in the most prominent Shopping position. See + // https://support.google.com/google-ads/answer/7501826 + // 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 + // 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; + + // The estimated percent of times that your ad was eligible to show on the + // Search Network but didn't because your budget was too low. Note: Search + // budget lost 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_impression_share = 138; + + // The number estimating how often your ad didn't show anywhere above the + // 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. + optional double search_budget_lost_top_impression_share = 139; + + // The number of clicks you've received on the Search Network + // divided by the estimated number of clicks you were eligible to receive. + // Note: Search click share is reported in the range of 0.1 to 1. Any value + // below 0.1 is reported as 0.0999. + optional double search_click_share = 140; + + // The impressions you've received divided by the estimated number of + // impressions you were eligible to receive on the Search Network for search + // terms that matched your keywords exactly (or were close variants of your + // keyword), regardless of your keyword match types. Note: Search exact match + // impression share is reported in the range of 0.1 to 1. Any value below 0.1 + // is reported as 0.0999. + optional double search_exact_match_impression_share = 141; + + // The impressions you've received on the Search Network divided + // by the estimated number of impressions you were eligible to receive. + // Note: Search impression share is reported in the range of 0.1 to 1. Any + // 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. + // 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; + + // The estimated percentage of impressions on the Search Network + // that your ads didn't receive due to poor Ad Rank. + // Note: Search rank lost 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_impression_share = 144; + + // The number estimating how often your ad didn't show anywhere above the + // 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. + // 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. + optional double search_top_impression_share = 146; + + // A measure of how quickly your page loads after clicks on your mobile ads. + // The score is a range from 1 to 10, 10 being the fastest. + optional int64 speed_score = 147; + + // The percent of your ad impressions that are shown anywhere above the + // organic search results. + optional double top_impression_percentage = 148; + + // The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages + // that reach a valid AMP page. + optional double valid_accelerated_mobile_pages_clicks_percentage = 149; + + // The value of all conversions divided by the number of all conversions. + optional double value_per_all_conversions = 150; + + // The value of all conversions divided by the number of all conversions. When + // this column is selected 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. + optional double value_per_all_conversions_by_conversion_date = 244; + + // The value of conversions divided by the number of conversions. This only + // includes conversion actions which include_in_conversions_metric attribute + // is set to true. If you use conversion-based bidding, your bid strategies + // will optimize for these conversions. + optional double value_per_conversion = 151; + + // The value of conversions divided by the number of conversions. This only + // includes conversion actions which include_in_conversions_metric attribute + // is set to true. If you use conversion-based bidding, your bid strategies + // will optimize for these conversions. When this column is selected 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. + optional double value_per_conversions_by_conversion_date = 245; + + // The value of current model attributed conversions divided by the number of + // the conversions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + optional double value_per_current_model_attributed_conversion = 152; + + // Percentage of impressions where the viewer watched all of your video. + optional double video_quartile_p100_rate = 132; + + // Percentage of impressions where the viewer watched 25% of your video. + optional double video_quartile_p25_rate = 133; + + // Percentage of impressions where the viewer watched 50% of your video. + optional double video_quartile_p50_rate = 134; + + // Percentage of impressions where the viewer watched 75% of your video. + optional double video_quartile_p75_rate = 135; + + // The number of views your TrueView video ad receives divided by its number + // of impressions, including thumbnail impressions for TrueView in-display + // ads. + optional double video_view_rate = 153; + + // The number of times your video ads were viewed. + optional int64 video_views = 154; + + // The total number of view-through conversions. + // These happen when a customer sees an image or rich media ad, then later + // completes a conversion on your site without interacting with (for example, + // clicking on) another ad. + optional int64 view_through_conversions = 155; + + // The number of iOS Store Kit Ad Network conversions. + int64 sk_ad_network_conversions = 246; +} diff --git a/google/ads/googleads/v11/common/offline_user_data.proto b/google/ads/googleads/v11/common/offline_user_data.proto new file mode 100644 index 000000000..c31b61129 --- /dev/null +++ b/google/ads/googleads/v11/common/offline_user_data.proto @@ -0,0 +1,333 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/user_identifier_source.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing offline user data. + +// Address identifier of offline data. +message OfflineUserAddressInfo { + // First name of the user, which is hashed as SHA-256 after normalized + // (Lowercase all characters; Remove any extra spaces before, after, and in + // between). + optional string hashed_first_name = 7; + + // Last name of the user, which is hashed as SHA-256 after normalized (lower + // case only and no punctuation). + optional string hashed_last_name = 8; + + // City of the address. Only accepted for Store Sales and + // ConversionAdjustmentUploadService. + optional string city = 9; + + // State code of the address. Only accepted for Store Sales and + // ConversionAdjustmentUploadService. + optional string state = 10; + + // 2-letter country code in ISO-3166-1 alpha-2 of the user's address. + optional string country_code = 11; + + // Postal code of the user's address. + optional string postal_code = 12; + + // The street address of the user hashed using SHA-256 hash function after + // normalization (lower case only). Only accepted for + // ConversionAdjustmentUploadService. + optional string hashed_street_address = 13; +} + +// User identifying information. +message UserIdentifier { + // Source of the user identifier when the upload is from Store Sales, + // ConversionUploadService, or ConversionAdjustmentUploadService. + google.ads.googleads.v11.enums.UserIdentifierSourceEnum.UserIdentifierSource user_identifier_source = 6; + + // Exactly one must be specified. For OfflineUserDataJobService, Customer + // Match accepts hashed_email, hashed_phone_number, mobile_id, + // third_party_user_id, and address_info; Store Sales accepts hashed_email, + // hashed_phone_number, third_party_user_id, and address_info. + // ConversionUploadService accepts hashed_email and hashed_phone_number. + // ConversionAdjustmentUploadService accepts hashed_email, + // hashed_phone_number, and address_info. + oneof identifier { + // Hashed email address using SHA-256 hash function after normalization. + // Accepted for Customer Match, Store Sales, ConversionUploadService, and + // ConversionAdjustmentUploadService. + string hashed_email = 7; + + // Hashed phone number using SHA-256 hash function after normalization + // (E164 standard). Accepted for Customer Match, Store Sales, + // ConversionUploadService, and ConversionAdjustmentUploadService. + string hashed_phone_number = 8; + + // Mobile device ID (advertising ID/IDFA). Accepted only for Customer Match. + string mobile_id = 9; + + // Advertiser-assigned user ID for Customer Match upload, or + // third-party-assigned user ID for Store Sales. Accepted only for Customer + // Match and Store Sales. + string third_party_user_id = 10; + + // Address information. Accepted only for Customer Match, Store Sales, and + // ConversionAdjustmentUploadService. + OfflineUserAddressInfo address_info = 5; + } +} + +// Attribute of the store sales transaction. +message TransactionAttribute { + // Timestamp when transaction occurred. Required. + // The format is "YYYY-MM-DD HH:MM:SS[+/-HH:MM]", where [+/-HH:MM] is an + // optional timezone offset from UTC. If the offset is absent, the API will + // use the account's timezone as default. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30+03:00" + optional string transaction_date_time = 8; + + // Transaction amount in micros. Required. + // Transaction amount in micros needs to be greater than 1000. + // If item Attributes are provided, it represents the total value of the + // items, after multiplying the unit price per item by the quantity provided + // in the ItemAttributes. + optional double transaction_amount_micros = 9; + + // Transaction currency code. ISO 4217 three-letter code is used. Required. + optional string currency_code = 10; + + // The resource name of conversion action to report conversions to. + // Required. + optional string conversion_action = 11; + + // Transaction order id. + // Accessible only to customers on the allow-list. + optional string order_id = 12; + + // Store attributes of the transaction. + // Accessible only to customers on the allow-list. + StoreAttribute store_attribute = 6; + + // Value of the custom variable for each transaction. + // Accessible only to customers on the allow-list. + optional string custom_value = 13; + + // Item attributes of the transaction. + ItemAttribute item_attribute = 14; +} + +// Store attributes of the transaction. +message StoreAttribute { + // Store code from + // https://support.google.com/business/answer/3370250#storecode + optional string store_code = 2; +} + +// Item attributes of the transaction. +message ItemAttribute { + // A unique identifier of a product. It can be either the Merchant Center Item + // ID or GTIN (Global Trade Item Number). + string item_id = 1; + + // ID of the Merchant Center Account. + optional int64 merchant_id = 2; + + // Common Locale Data Repository (CLDR) territory code of the country + // associated with the feed where your items are uploaded. See + // https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes + // for more information. + string country_code = 3; + + // ISO 639-1 code of the language associated with the feed where your items + // are uploaded + string language_code = 4; + + // The number of items sold. Defaults to 1 if not set. + int64 quantity = 5; +} + +// User data holding user identifiers and attributes. +message UserData { + // User identification info. Required. + repeated UserIdentifier user_identifiers = 1; + + // Additional transactions/attributes associated with the user. + // Required when updating store sales data. + TransactionAttribute transaction_attribute = 2; + + // Additional attributes associated with the user. Required when updating + // customer match attributes. These have an expiration of 540 days. + UserAttribute user_attribute = 3; +} + +// User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job +// type. +message UserAttribute { + // Advertiser defined lifetime value for the user. + optional int64 lifetime_value_micros = 1; + + // Advertiser defined lifetime value bucket for the user. The valid range for + // a lifetime value bucket is from 1 (low) to 10 (high), except for remove + // operation where 0 will also be accepted. + optional int32 lifetime_value_bucket = 2; + + // Timestamp of the last purchase made by the user. + // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an + // optional timezone offset from UTC. If the offset is absent, the API will + // use the account's timezone as default. + string last_purchase_date_time = 3; + + // Advertiser defined average number of purchases that are made by the user in + // a 30 day period. + int32 average_purchase_count = 4; + + // Advertiser defined average purchase value in micros for the user. + int64 average_purchase_value_micros = 5; + + // Timestamp when the user was acquired. + // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an + // optional timezone offset from UTC. If the offset is absent, the API will + // use the account's timezone as default. + string acquisition_date_time = 6; + + // The shopping loyalty related data. Shopping utilizes this data to provide + // users with a better experience. Accessible only to merchants on the + // allow-list with the user's consent. + optional ShoppingLoyalty shopping_loyalty = 7; + + // Optional. Advertiser defined lifecycle stage for the user. The accepted values are + // “Lead”, “Active” and “Churned”. + string lifecycle_stage = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Timestamp of the first purchase made by the user. + // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an + // optional timezone offset from UTC. If the offset is absent, the API will + // use the account's timezone as default. + string first_purchase_date_time = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Advertiser defined events and their attributes. All the values in the + // nested fields are required. Currently this field is in beta. + repeated EventAttribute event_attribute = 10 [(google.api.field_behavior) = OPTIONAL]; +} + +// Advertiser defined events and their attributes. All the values in the +// nested fields are required. +message EventAttribute { + // Required. Advertiser defined event to be used for remarketing. The accepted values + // are “Viewed”, “Cart”, “Purchased” and “Recommended”. + string event = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Timestamp at which the event happened. + // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an + // optional timezone offset from UTC. If the offset is absent, the API will + // use the account's timezone as default. + string event_date_time = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Item attributes of the event. + repeated EventItemAttribute item_attribute = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Event Item attributes of the Customer Match. +message EventItemAttribute { + // Optional. A unique identifier of a product. It can be either the Merchant Center Item + // ID or GTIN (Global Trade Item Number). + string item_id = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// The shopping loyalty related data. Shopping utilizes this data to provide +// users with a better experience. +// Accessible only to merchants on the allow-list. +message ShoppingLoyalty { + // The membership tier. It is a free-form string as each merchant may have + // their own loyalty system. For example, it could be a number from 1 to 10, + // or a string such as "Golden" or "Silver", or even empty string "". + optional string loyalty_tier = 1; +} + +// Metadata for customer match user list. +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; +} + +// Metadata for Store Sales Direct. +message StoreSalesMetadata { + // This is the fraction of all transactions that are identifiable (for + // example, associated with any form of customer information). Required. The + // fraction needs to be between 0 and 1 (excluding 0). + optional double loyalty_fraction = 5; + + // This is the ratio of sales being uploaded compared to the overall sales + // that can be associated with a customer. Required. + // The fraction needs to be between 0 and 1 (excluding 0). For example, if you + // upload half the sales that you are able to associate with a customer, this + // would be 0.5. + optional double transaction_upload_fraction = 6; + + // Name of the store sales custom variable key. A predefined key that + // can be applied to the transaction and then later used for custom + // segmentation in reporting. + // Accessible only to customers on the allow-list. + optional string custom_key = 7; + + // Metadata for a third party Store Sales upload. + StoreSalesThirdPartyMetadata third_party_metadata = 3; +} + +// Metadata for a third party Store Sales. +// This product is only for customers on the allow-list. Contact your +// Google business development representative for details on the upload +// configuration. +message StoreSalesThirdPartyMetadata { + // Time the advertiser uploaded the data to the partner. Required. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string advertiser_upload_date_time = 7; + + // The fraction of transactions that are valid. Invalid transactions may + // include invalid formats or values. + // Required. + // The fraction needs to be between 0 and 1 (excluding 0). + optional double valid_transaction_fraction = 8; + + // The fraction of valid transactions that are matched to a third party + // assigned user ID on the partner side. + // Required. + // The fraction needs to be between 0 and 1 (excluding 0). + optional double partner_match_fraction = 9; + + // The fraction of valid transactions that are uploaded by the partner to + // Google. + // Required. + // The fraction needs to be between 0 and 1 (excluding 0). + optional double partner_upload_fraction = 10; + + // Version of partner IDs to be used for uploads. Required. + optional string bridge_map_version_id = 11; + + // ID of the third party partner updating the transaction feed. + optional int64 partner_id = 12; +} diff --git a/google/ads/googleads/v11/common/policy.proto b/google/ads/googleads/v11/common/policy.proto new file mode 100644 index 000000000..e6f0635ea --- /dev/null +++ b/google/ads/googleads/v11/common/policy.proto @@ -0,0 +1,219 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/policy_topic_entry_type.proto"; +import "google/ads/googleads/v11/enums/policy_topic_evidence_destination_mismatch_url_type.proto"; +import "google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_device.proto"; +import "google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "PolicyProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing policy information. + +// Key of the violation. The key is used for referring to a violation +// when filing an exemption request. +message PolicyViolationKey { + // Unique ID of the violated policy. + optional string policy_name = 3; + + // The text that violates the policy if specified. + // Otherwise, refers to the policy in general + // (for example, when requesting to be exempt from the whole policy). + // If not specified for criterion exemptions, the whole policy is implied. + // Must be specified for ad exemptions. + optional string violating_text = 4; +} + +// Parameter for controlling how policy exemption is done. +message PolicyValidationParameter { + // The list of policy topics that should not cause a PolicyFindingError to + // be reported. This field is currently only compatible with Enhanced Text Ad. + // It corresponds to the PolicyTopicEntry.topic field. + // + // Resources violating these policies 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 string ignorable_policy_topics = 3; + + // 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 PolicyViolationKey exempt_policy_violation_keys = 2; +} + +// Policy finding attached to a resource (for example, alcohol policy associated +// with a site that sells alcohol). +// +// Each PolicyTopicEntry has a topic that indicates the specific ads policy +// the entry is about and a type to indicate the effect that the entry will have +// on serving. It may optionally have one or more evidences that indicate the +// reason for the finding. It may also optionally have one or more constraints +// that provide details about how serving may be restricted. +message PolicyTopicEntry { + // Policy topic this finding refers to. For example, "ALCOHOL", + // "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible + // policy topics is not fixed for a particular API version and may change + // at any time. + optional string topic = 5; + + // Describes the negative or positive effect this policy will have on serving. + google.ads.googleads.v11.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType type = 2; + + // Additional information that explains policy finding + // (for example, the brand name for a trademark finding). + repeated PolicyTopicEvidence evidences = 3; + + // Indicates how serving of this resource may be affected (for example, not + // serving in a country). + repeated PolicyTopicConstraint constraints = 4; +} + +// Additional information that explains a policy finding. +message PolicyTopicEvidence { + // A list of fragments of text that violated a policy. + message TextList { + // The fragments of text from the resource that caused the policy finding. + repeated string texts = 2; + } + + // A list of websites that caused a policy finding. Used for + // ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more + // than five websites, only the top five (those that appear in resources the + // most) will be listed here. + message WebsiteList { + // Websites that caused the policy finding. + repeated string websites = 2; + } + + // A list of strings found in a destination page that caused a policy + // finding. + message DestinationTextList { + // List of text found in the resource's destination page. + repeated string destination_texts = 2; + } + + // 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.v11.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.PolicyTopicEvidenceDestinationMismatchUrlType url_types = 1; + } + + // Evidence details when the destination is returning an HTTP error + // code or isn't functional in all locations for commonly used devices. + message DestinationNotWorking { + // The full URL that didn't work. + optional string expanded_url = 7; + + // The type of device that failed to load the URL. + google.ads.googleads.v11.enums.PolicyTopicEvidenceDestinationNotWorkingDeviceEnum.PolicyTopicEvidenceDestinationNotWorkingDevice device = 4; + + // The time the URL was last checked. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string last_checked_date_time = 8; + + // Indicates the reason of the DESTINATION_NOT_WORKING policy finding. + oneof reason { + // The type of DNS error. + google.ads.googleads.v11.enums.PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum.PolicyTopicEvidenceDestinationNotWorkingDnsErrorType dns_error_type = 1; + + // The HTTP error code. + int64 http_error_code = 6; + } + } + + // Specific evidence information depending on the evidence type. + oneof value { + // List of websites linked with this resource. + WebsiteList website_list = 3; + + // List of evidence found in the text of a resource. + TextList text_list = 4; + + // The language the resource was detected to be written in. + // This is an IETF language tag such as "en-US". + string language_code = 9; + + // The text in the destination of the resource that is causing a policy + // finding. + DestinationTextList destination_text_list = 6; + + // Mismatch between the destinations of a resource's URLs. + DestinationMismatch destination_mismatch = 7; + + // Details when the destination is returning an HTTP error code or isn't + // functional in all locations for commonly used devices. + DestinationNotWorking destination_not_working = 8; + } +} + +// Describes the effect on serving that a policy topic entry will have. +message PolicyTopicConstraint { + // A list of countries where a resource's serving is constrained. + message CountryConstraintList { + // Total number of countries targeted by the resource. + optional int32 total_targeted_countries = 3; + + // Countries in which serving is restricted. + repeated CountryConstraint countries = 2; + } + + // Indicates that a policy topic was constrained due to disapproval of the + // website for reseller purposes. + message ResellerConstraint { + + } + + // Indicates that a resource's ability to serve in a particular country is + // constrained. + message CountryConstraint { + // Geo target constant resource name of the country in which serving is + // constrained. + optional string country_criterion = 2; + } + + // Specific information about the constraint. + oneof value { + // Countries where the resource cannot serve. + CountryConstraintList country_constraint_list = 1; + + // Reseller constraint. + ResellerConstraint reseller_constraint = 2; + + // Countries where a certificate is required for serving. + CountryConstraintList certificate_missing_in_country_list = 3; + + // Countries where the resource's domain is not covered by the + // certificates associated with it. + CountryConstraintList certificate_domain_mismatch_in_country_list = 4; + } +} diff --git a/google/ads/googleads/v11/common/policy_summary.proto b/google/ads/googleads/v11/common/policy_summary.proto new file mode 100644 index 000000000..26ebbd3a6 --- /dev/null +++ b/google/ads/googleads/v11/common/policy_summary.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/policy_approval_status.proto"; +import "google/ads/googleads/v11/enums/policy_review_status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "PolicySummaryProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing policy summary. + +// Contains policy summary information. +message PolicySummary { + // The list of policy findings. + repeated PolicyTopicEntry policy_topic_entries = 1; + + // Where in the review process the resource is. + google.ads.googleads.v11.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.v11.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; +} diff --git a/google/ads/googleads/v11/common/real_time_bidding_setting.proto b/google/ads/googleads/v11/common/real_time_bidding_setting.proto new file mode 100644 index 000000000..2920721eb --- /dev/null +++ b/google/ads/googleads/v11/common/real_time_bidding_setting.proto @@ -0,0 +1,35 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "RealTimeBiddingSettingProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing RealTimeBiddingSetting + +// Settings for Real-Time Bidding, a feature only available for campaigns +// targeting the Ad Exchange network. +message RealTimeBiddingSetting { + // Whether the campaign is opted in to real-time bidding. + optional bool opt_in = 2; +} diff --git a/google/ads/googleads/v11/common/segments.proto b/google/ads/googleads/v11/common/segments.proto new file mode 100644 index 000000000..96ebede4a --- /dev/null +++ b/google/ads/googleads/v11/common/segments.proto @@ -0,0 +1,400 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/enums/ad_destination_type.proto"; +import "google/ads/googleads/v11/enums/ad_network_type.proto"; +import "google/ads/googleads/v11/enums/budget_campaign_association_status.proto"; +import "google/ads/googleads/v11/enums/click_type.proto"; +import "google/ads/googleads/v11/enums/conversion_action_category.proto"; +import "google/ads/googleads/v11/enums/conversion_attribution_event_type.proto"; +import "google/ads/googleads/v11/enums/conversion_lag_bucket.proto"; +import "google/ads/googleads/v11/enums/conversion_or_adjustment_lag_bucket.proto"; +import "google/ads/googleads/v11/enums/conversion_value_rule_primary_dimension.proto"; +import "google/ads/googleads/v11/enums/day_of_week.proto"; +import "google/ads/googleads/v11/enums/device.proto"; +import "google/ads/googleads/v11/enums/external_conversion_source.proto"; +import "google/ads/googleads/v11/enums/hotel_date_selection_type.proto"; +import "google/ads/googleads/v11/enums/hotel_price_bucket.proto"; +import "google/ads/googleads/v11/enums/hotel_rate_type.proto"; +import "google/ads/googleads/v11/enums/month_of_year.proto"; +import "google/ads/googleads/v11/enums/placeholder_type.proto"; +import "google/ads/googleads/v11/enums/product_channel.proto"; +import "google/ads/googleads/v11/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v11/enums/product_condition.proto"; +import "google/ads/googleads/v11/enums/recommendation_type.proto"; +import "google/ads/googleads/v11/enums/search_engine_results_page_type.proto"; +import "google/ads/googleads/v11/enums/search_term_match_type.proto"; +import "google/ads/googleads/v11/enums/sk_ad_network_ad_event_type.proto"; +import "google/ads/googleads/v11/enums/sk_ad_network_attribution_credit.proto"; +import "google/ads/googleads/v11/enums/sk_ad_network_user_type.proto"; +import "google/ads/googleads/v11/enums/slot.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "SegmentsProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing segment only fields. + +// Segment only fields. +message Segments { + // Ad Destination type. + google.ads.googleads.v11.enums.AdDestinationTypeEnum.AdDestinationType ad_destination_type = 136; + + // Ad network type. + google.ads.googleads.v11.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3; + + // Domain (visible URL) of a participant in the Auction Insights report. + optional string auction_insight_domain = 145; + + // Budget campaign association status. + BudgetCampaignAssociationStatus budget_campaign_association_status = 134; + + // Click type. + google.ads.googleads.v11.enums.ClickTypeEnum.ClickType click_type = 26; + + // Resource name of the conversion action. + optional string conversion_action = 113 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + + // Conversion action category. + google.ads.googleads.v11.enums.ConversionActionCategoryEnum.ConversionActionCategory conversion_action_category = 53; + + // Conversion action name. + optional string conversion_action_name = 114; + + // This segments your conversion columns by the original conversion and + // conversion value versus the delta if conversions were adjusted. False row + // has the data as originally stated; While true row has the delta between + // data now and the data as originally stated. Summing the two together + // results post-adjustment data. + optional bool conversion_adjustment = 115; + + // Conversion attribution event type. + google.ads.googleads.v11.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.v11.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.v11.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket conversion_or_adjustment_lag_bucket = 51; + + // Date to which metrics apply. + // yyyy-MM-dd format, for example, 2018-04-17. + optional string date = 79; + + // Day of the week, for example, MONDAY. + google.ads.googleads.v11.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; + + // Device to which metrics apply. + google.ads.googleads.v11.enums.DeviceEnum.Device device = 1; + + // External conversion source. + google.ads.googleads.v11.enums.ExternalConversionSourceEnum.ExternalConversionSource external_conversion_source = 55; + + // Resource name of the geo target constant that represents an airport. + optional string geo_target_airport = 116; + + // Resource name of the geo target constant that represents a canton. + optional string geo_target_canton = 117; + + // Resource name of the geo target constant that represents a city. + optional string geo_target_city = 118; + + // Resource name of the geo target constant that represents a country. + optional string geo_target_country = 119; + + // Resource name of the geo target constant that represents a county. + optional string geo_target_county = 120; + + // Resource name of the geo target constant that represents a district. + optional string geo_target_district = 121; + + // Resource name of the geo target constant that represents a metro. + optional string geo_target_metro = 122; + + // Resource name of the geo target constant that represents the most + // specific location. + optional string geo_target_most_specific_location = 123; + + // Resource name of the geo target constant that represents a postal code. + optional string geo_target_postal_code = 124; + + // Resource name of the geo target constant that represents a province. + optional string geo_target_province = 125; + + // Resource name of the geo target constant that represents a region. + optional string geo_target_region = 126; + + // Resource name of the geo target constant that represents a state. + optional string geo_target_state = 127; + + // Hotel booking window in days. + optional int64 hotel_booking_window_days = 135; + + // Hotel center ID. + optional int64 hotel_center_id = 80; + + // Hotel check-in date. Formatted as yyyy-MM-dd. + optional string hotel_check_in_date = 81; + + // Hotel check-in day of week. + google.ads.googleads.v11.enums.DayOfWeekEnum.DayOfWeek hotel_check_in_day_of_week = 9; + + // Hotel city. + optional string hotel_city = 82; + + // Hotel class. + optional int32 hotel_class = 83; + + // Hotel country. + optional string hotel_country = 84; + + // Hotel date selection type. + google.ads.googleads.v11.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType hotel_date_selection_type = 13; + + // Hotel length of stay. + optional int32 hotel_length_of_stay = 85; + + // Hotel rate rule ID. + optional string hotel_rate_rule_id = 86; + + // Hotel rate type. + google.ads.googleads.v11.enums.HotelRateTypeEnum.HotelRateType hotel_rate_type = 74; + + // Hotel price bucket. + google.ads.googleads.v11.enums.HotelPriceBucketEnum.HotelPriceBucket hotel_price_bucket = 78; + + // Hotel state. + optional string hotel_state = 87; + + // Hour of day as a number between 0 and 23, inclusive. + optional int32 hour = 88; + + // Only used with feed item metrics. + // Indicates whether the interaction metrics occurred on the feed item itself + // or a different extension or ad unit. + optional bool interaction_on_this_extension = 89; + + // Keyword criterion. + Keyword keyword = 61; + + // Month as represented by the date of the first day of a month. Formatted as + // yyyy-MM-dd. + optional string month = 90; + + // Month of the year, for example, January. + google.ads.googleads.v11.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.v11.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; + + // Bidding category (level 2) of the product. + optional string product_bidding_category_level2 = 93; + + // Bidding category (level 3) of the product. + optional string product_bidding_category_level3 = 94; + + // Bidding category (level 4) of the product. + optional string product_bidding_category_level4 = 95; + + // Bidding category (level 5) of the product. + optional string product_bidding_category_level5 = 96; + + // Brand of the product. + optional string product_brand = 97; + + // Channel of the product. + google.ads.googleads.v11.enums.ProductChannelEnum.ProductChannel product_channel = 30; + + // Channel exclusivity of the product. + google.ads.googleads.v11.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity product_channel_exclusivity = 31; + + // Condition of the product. + google.ads.googleads.v11.enums.ProductConditionEnum.ProductCondition product_condition = 32; + + // Resource name of the geo target constant for the country of sale of the + // product. + optional string product_country = 98; + + // Custom attribute 0 of the product. + optional string product_custom_attribute0 = 99; + + // Custom attribute 1 of the product. + optional string product_custom_attribute1 = 100; + + // Custom attribute 2 of the product. + optional string product_custom_attribute2 = 101; + + // Custom attribute 3 of the product. + optional string product_custom_attribute3 = 102; + + // Custom attribute 4 of the product. + optional string product_custom_attribute4 = 103; + + // Item ID of the product. + optional string product_item_id = 104; + + // Resource name of the language constant for the language of the product. + optional string product_language = 105; + + // Merchant ID of the product. + optional int64 product_merchant_id = 133; + + // Store ID of the product. + optional string product_store_id = 106; + + // Title of the product. + optional string product_title = 107; + + // Type (level 1) of the product. + optional string product_type_l1 = 108; + + // Type (level 2) of the product. + optional string product_type_l2 = 109; + + // Type (level 3) of the product. + optional string product_type_l3 = 110; + + // Type (level 4) of the product. + optional string product_type_l4 = 111; + + // Type (level 5) of the product. + optional string product_type_l5 = 112; + + // Quarter as represented by the date of the first day of a quarter. + // Uses the calendar year for quarters, for example, the second quarter of + // 2018 starts on 2018-04-01. Formatted as yyyy-MM-dd. + optional string quarter = 128; + + // Recommendation type. + google.ads.googleads.v11.enums.RecommendationTypeEnum.RecommendationType recommendation_type = 140; + + // Type of the search engine results page. + google.ads.googleads.v11.enums.SearchEngineResultsPageTypeEnum.SearchEngineResultsPageType search_engine_results_page_type = 70; + + // Match type of the keyword that triggered the ad, including variants. + google.ads.googleads.v11.enums.SearchTermMatchTypeEnum.SearchTermMatchType search_term_match_type = 22; + + // Position of the ad. + google.ads.googleads.v11.enums.SlotEnum.Slot slot = 23; + + // Primary dimension of applied conversion value rules. + // NO_RULE_APPLIED shows the total recorded value of conversions that + // do not have a value rule applied. + // ORIGINAL shows the original value of conversions to which a value rule + // has been applied. + // GEO_LOCATION, DEVICE, AUDIENCE show the net adjustment after value + // rules were applied. + google.ads.googleads.v11.enums.ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension conversion_value_rule_primary_dimension = 138; + + // Resource name of the ad group criterion that represents webpage criterion. + optional string webpage = 129; + + // Week as defined as Monday through Sunday, and represented by the date of + // Monday. Formatted as yyyy-MM-dd. + optional string week = 130; + + // Year, formatted as yyyy. + optional int32 year = 131; + + // 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; + + // iOS Store Kit Ad Network user type. + google.ads.googleads.v11.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType sk_ad_network_user_type = 141; + + // iOS Store Kit Ad Network ad event type. + google.ads.googleads.v11.enums.SkAdNetworkAdEventTypeEnum.SkAdNetworkAdEventType sk_ad_network_ad_event_type = 142; + + // App 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 SkAdNetworkSourceApp sk_ad_network_source_app = 143; + + // iOS Store Kit Ad Network attribution credit + google.ads.googleads.v11.enums.SkAdNetworkAttributionCreditEnum.SkAdNetworkAttributionCredit sk_ad_network_attribution_credit = 144; + + // 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. + // Interactions (for example, clicks) are counted across all the parts of the + // served ad (for example, Ad itself and other components like Sitelinks) when + // they are served together. When interaction_on_this_asset is true, it means + // the interactions are on this specific asset and when + // interaction_on_this_asset is false, it means the interactions is not on + // this specific asset but on other parts of the served ad this asset is + // served with. + optional AssetInteractionTarget asset_interaction_target = 139; +} + +// A Keyword criterion segment. +message Keyword { + // The AdGroupCriterion resource name. + optional string ad_group_criterion = 3; + + // Keyword info. + KeywordInfo info = 2; +} + +// A BudgetCampaignAssociationStatus segment. +message BudgetCampaignAssociationStatus { + // The campaign resource name. + optional string campaign = 1; + + // Budget campaign association status. + google.ads.googleads.v11.enums.BudgetCampaignAssociationStatusEnum.BudgetCampaignAssociationStatus status = 2; +} + +// An AssetInteractionTarget segment. +message AssetInteractionTarget { + // The asset resource name. + string asset = 1; + + // 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. + bool interaction_on_this_asset = 2; +} + +// A SkAdNetworkSourceApp segment. +message SkAdNetworkSourceApp { + // App id where the ad that drove the iOS Store Kit Ad Network install was + // shown. + optional string sk_ad_network_source_app_id = 1; +} diff --git a/google/ads/googleads/v11/common/simulation.proto b/google/ads/googleads/v11/common/simulation.proto new file mode 100644 index 000000000..af2270053 --- /dev/null +++ b/google/ads/googleads/v11/common/simulation.proto @@ -0,0 +1,356 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "SimulationProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing simulation points. + +// A container for simulation points for simulations of type BID_MODIFIER. +message BidModifierSimulationPointList { + // Projected metrics for a series of bid modifier amounts. + repeated BidModifierSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type CPC_BID. +message CpcBidSimulationPointList { + // Projected metrics for a series of CPC bid amounts. + repeated CpcBidSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type CPV_BID. +message CpvBidSimulationPointList { + // Projected metrics for a series of CPV bid amounts. + repeated CpvBidSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type TARGET_CPA. +message TargetCpaSimulationPointList { + // Projected metrics for a series of target CPA amounts. + repeated TargetCpaSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type TARGET_ROAS. +message TargetRoasSimulationPointList { + // Projected metrics for a series of target ROAS amounts. + repeated TargetRoasSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type PERCENT_CPC_BID. +message PercentCpcBidSimulationPointList { + // Projected metrics for a series of percent CPC bid amounts. + repeated PercentCpcBidSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type BUDGET. +message BudgetSimulationPointList { + // Projected metrics for a series of budget amounts. + repeated BudgetSimulationPoint points = 1; +} + +// A container for simulation points for simulations of type +// TARGET_IMPRESSION_SHARE. +message TargetImpressionShareSimulationPointList { + // Projected metrics for a specific target impression share value. + repeated TargetImpressionShareSimulationPoint points = 1; +} + +// Projected metrics for a specific bid modifier amount. +message BidModifierSimulationPoint { + // The simulated bid modifier upon which projected metrics are based. + optional double bid_modifier = 15; + + // Projected number of biddable conversions. + // Only search advertising channel type supports this field. + optional double biddable_conversions = 16; + + // Projected total value of biddable conversions. + // Only search advertising channel type supports this field. + optional double biddable_conversions_value = 17; + + // Projected number of clicks. + optional int64 clicks = 18; + + // Projected cost in micros. + optional int64 cost_micros = 19; + + // Projected number of impressions. + optional int64 impressions = 20; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + optional int64 top_slot_impressions = 21; + + // Projected number of biddable conversions for the parent resource. + // Only search advertising channel type supports this field. + optional double parent_biddable_conversions = 22; + + // Projected total value of biddable conversions for the parent resource. + // Only search advertising channel type supports this field. + optional double parent_biddable_conversions_value = 23; + + // Projected number of clicks for the parent resource. + optional int64 parent_clicks = 24; + + // Projected cost in micros for the parent resource. + optional int64 parent_cost_micros = 25; + + // Projected number of impressions for the parent resource. + optional int64 parent_impressions = 26; + + // Projected number of top slot impressions for the parent resource. + // Only search advertising channel type supports this field. + optional int64 parent_top_slot_impressions = 27; + + // Projected minimum daily budget that must be available to the parent + // resource to realize this simulation. + optional int64 parent_required_budget_micros = 28; +} + +// Projected metrics for a specific CPC bid amount. +message CpcBidSimulationPoint { + // Projected required daily budget that the advertiser must set in order to + // receive the estimated traffic, in micros of advertiser currency. + int64 required_budget_amount_micros = 17; + + // Projected number of biddable conversions. + optional double biddable_conversions = 9; + + // Projected total value of biddable conversions. + optional double biddable_conversions_value = 10; + + // Projected number of clicks. + optional int64 clicks = 11; + + // Projected cost in micros. + optional int64 cost_micros = 12; + + // Projected number of impressions. + optional int64 impressions = 13; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + optional int64 top_slot_impressions = 14; + + // When SimulationModificationMethod = UNIFORM or DEFAULT, + // cpc_bid_micros is set. + // When SimulationModificationMethod = SCALING, + // cpc_bid_scaling_modifier is set. + oneof cpc_simulation_key_value { + // The simulated CPC bid upon which projected metrics are based. + int64 cpc_bid_micros = 15; + + // The simulated scaling modifier upon which projected metrics are based. + // All CPC bids relevant to the simulated entity are scaled by this + // modifier. + double cpc_bid_scaling_modifier = 16; + } +} + +// Projected metrics for a specific CPV bid amount. +message CpvBidSimulationPoint { + // The simulated CPV bid upon which projected metrics are based. + optional int64 cpv_bid_micros = 5; + + // Projected cost in micros. + optional int64 cost_micros = 6; + + // Projected number of impressions. + optional int64 impressions = 7; + + // Projected number of views. + optional int64 views = 8; +} + +// Projected metrics for a specific target CPA amount. +message TargetCpaSimulationPoint { + // Projected required daily budget that the advertiser must set in order to + // receive the estimated traffic, in micros of advertiser currency. + int64 required_budget_amount_micros = 19; + + // Projected number of biddable conversions. + optional double biddable_conversions = 9; + + // Projected total value of biddable conversions. + optional double biddable_conversions_value = 10; + + // Projected number of app installs. + double app_installs = 15; + + // Projected number of in-app actions. + double in_app_actions = 16; + + // Projected number of clicks. + optional int64 clicks = 11; + + // Projected cost in micros. + optional int64 cost_micros = 12; + + // Projected number of impressions. + optional int64 impressions = 13; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + optional int64 top_slot_impressions = 14; + + // When SimulationModificationMethod = UNIFORM or DEFAULT, + // target_cpa_micros is set. + // When SimulationModificationMethod = SCALING, + // target_cpa_scaling_modifier is set. + oneof target_cpa_simulation_key_value { + // The simulated target CPA upon which projected metrics are based. + int64 target_cpa_micros = 17; + + // The simulated scaling modifier upon which projected metrics are based. + // All CPA targets relevant to the simulated entity are scaled by this + // modifier. + double target_cpa_scaling_modifier = 18; + } +} + +// Projected metrics for a specific target ROAS amount. +message TargetRoasSimulationPoint { + // The simulated target ROAS upon which projected metrics are based. + optional double target_roas = 8; + + // Projected required daily budget that the advertiser must set in order to + // receive the estimated traffic, in micros of advertiser currency. + int64 required_budget_amount_micros = 15; + + // Projected number of biddable conversions. + optional double biddable_conversions = 9; + + // Projected total value of biddable conversions. + optional double biddable_conversions_value = 10; + + // Projected number of clicks. + optional int64 clicks = 11; + + // Projected cost in micros. + optional int64 cost_micros = 12; + + // Projected number of impressions. + optional int64 impressions = 13; + + // Projected number of top slot impressions. + // Only Search advertising channel type supports this field. + optional int64 top_slot_impressions = 14; +} + +// Projected metrics for a specific percent CPC amount. Only Hotel advertising +// channel type supports this field. +message PercentCpcBidSimulationPoint { + // The simulated percent CPC upon which projected metrics are based. Percent + // CPC expressed as fraction of the advertised price for some good or service. + // The value stored here is 1,000,000 * [fraction]. + optional int64 percent_cpc_bid_micros = 1; + + // Projected number of biddable conversions. + optional double biddable_conversions = 2; + + // Projected total value of biddable conversions in local currency. + optional double biddable_conversions_value = 3; + + // Projected number of clicks. + optional int64 clicks = 4; + + // Projected cost in micros. + optional int64 cost_micros = 5; + + // Projected number of impressions. + optional int64 impressions = 6; + + // Projected number of top slot impressions. + optional int64 top_slot_impressions = 7; +} + +// Projected metrics for a specific budget amount. +message BudgetSimulationPoint { + // The simulated budget upon which projected metrics are based. + int64 budget_amount_micros = 1; + + // Projected required daily cpc bid ceiling that the advertiser must set to + // realize this simulation, in micros of the advertiser currency. + // Only campaigns with the Target Spend bidding strategy support this field. + int64 required_cpc_bid_ceiling_micros = 2; + + // Projected number of biddable conversions. + double biddable_conversions = 3; + + // Projected total value of biddable conversions. + double biddable_conversions_value = 4; + + // Projected number of clicks. + int64 clicks = 5; + + // Projected cost in micros. + int64 cost_micros = 6; + + // Projected number of impressions. + int64 impressions = 7; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + int64 top_slot_impressions = 8; +} + +// Projected metrics for a specific target impression share value. +message TargetImpressionShareSimulationPoint { + // The simulated target impression share value (in micros) upon which + // projected metrics are based. + // For example, 10% impression share, which is equal to 0.1, is stored as + // 100_000. This value is validated and will not exceed 1M (100%). + int64 target_impression_share_micros = 1; + + // Projected required daily cpc bid ceiling that the advertiser must set to + // realize this simulation, in micros of the advertiser currency. + int64 required_cpc_bid_ceiling_micros = 2; + + // Projected required daily budget that the advertiser must set in order to + // receive the estimated traffic, in micros of advertiser currency. + int64 required_budget_amount_micros = 3; + + // Projected number of biddable conversions. + double biddable_conversions = 4; + + // Projected total value of biddable conversions. + double biddable_conversions_value = 5; + + // Projected number of clicks. + int64 clicks = 6; + + // Projected cost in micros. + int64 cost_micros = 7; + + // Projected number of impressions. + int64 impressions = 8; + + // Projected number of top slot impressions. + // Only search advertising channel type supports this field. + int64 top_slot_impressions = 9; + + // Projected number of absolute top impressions. + // Only search advertising channel type supports this field. + int64 absolute_top_impressions = 10; +} diff --git a/google/ads/googleads/v11/common/tag_snippet.proto b/google/ads/googleads/v11/common/tag_snippet.proto new file mode 100644 index 000000000..74d4363fe --- /dev/null +++ b/google/ads/googleads/v11/common/tag_snippet.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/tracking_code_page_format.proto"; +import "google/ads/googleads/v11/enums/tracking_code_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "TagSnippetProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::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.v11.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.v11.enums.TrackingCodePageFormatEnum.TrackingCodePageFormat page_format = 2; + + // The site tag that adds visitors to your basic remarketing lists and sets + // new cookies on your domain. + optional string global_site_tag = 5; + + // The event snippet that works with the site tag to track actions that + // should be counted as conversions. + optional string event_snippet = 6; +} diff --git a/google/ads/googleads/v11/common/targeting_setting.proto b/google/ads/googleads/v11/common/targeting_setting.proto new file mode 100644 index 000000000..b3468d2f4 --- /dev/null +++ b/google/ads/googleads/v11/common/targeting_setting.proto @@ -0,0 +1,84 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/targeting_dimension.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "TargetingSettingProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing TargetingSetting + +// Settings for the targeting-related features, at the campaign and ad group +// levels. For more details about the targeting setting, visit +// https://support.google.com/google-ads/answer/7365594 +message TargetingSetting { + // The per-targeting-dimension setting to restrict the reach of your campaign + // or ad group. + repeated TargetRestriction target_restrictions = 1; + + // The list of operations changing the target restrictions. + // + // Adding a target restriction with a targeting dimension that already exists + // causes the existing target restriction to be replaced with the new value. + repeated TargetRestrictionOperation target_restriction_operations = 2; +} + +// The list of per-targeting-dimension targeting settings. +message TargetRestriction { + // The targeting dimension that these settings apply to. + google.ads.googleads.v11.enums.TargetingDimensionEnum.TargetingDimension targeting_dimension = 1; + + // Indicates whether to restrict your ads to show only for the criteria you + // have selected for this targeting_dimension, or to target all values for + // this targeting_dimension and show ads based on your targeting in other + // TargetingDimensions. A value of `true` means that these criteria will only + // apply bid modifiers, and not affect targeting. A value of `false` means + // that these criteria will restrict targeting as well as applying bid + // modifiers. + optional bool bid_only = 3; +} + +// Operation to be performed on a target restriction list in a mutate. +message TargetRestrictionOperation { + // The operator. + enum Operator { + // Unspecified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Add the restriction to the existing restrictions. + ADD = 2; + + // Remove the restriction from the existing restrictions. + REMOVE = 3; + } + + // Type of list operation to perform. + Operator operator = 1; + + // The target restriction being added to or removed from the list. + TargetRestriction value = 2; +} diff --git a/google/ads/googleads/v11/common/text_label.proto b/google/ads/googleads/v11/common/text_label.proto new file mode 100644 index 000000000..0ce104509 --- /dev/null +++ b/google/ads/googleads/v11/common/text_label.proto @@ -0,0 +1,38 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "TextLabelProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// A type of label displaying text on a colored background. +message TextLabel { + // Background color of the label in RGB format. This string must match the + // regular expression '^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'. + // Note: The background color may not be visible for manager accounts. + optional string background_color = 3; + + // A short description of the label. The length must be no more than 200 + // characters. + optional string description = 4; +} diff --git a/google/ads/googleads/v11/common/url_collection.proto b/google/ads/googleads/v11/common/url_collection.proto new file mode 100644 index 000000000..f1918b80f --- /dev/null +++ b/google/ads/googleads/v11/common/url_collection.proto @@ -0,0 +1,43 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "UrlCollectionProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file UrlCollection type. + +// Collection of urls that is tagged with a unique identifier. +message UrlCollection { + // Unique identifier for this UrlCollection instance. + optional string url_collection_id = 5; + + // A list of possible final URLs. + repeated string final_urls = 6; + + // A list of possible final mobile URLs. + repeated string final_mobile_urls = 7; + + // URL template for constructing a tracking URL. + optional string tracking_url_template = 8; +} diff --git a/google/ads/googleads/v11/common/user_lists.proto b/google/ads/googleads/v11/common/user_lists.proto new file mode 100644 index 000000000..4c5ba7134 --- /dev/null +++ b/google/ads/googleads/v11/common/user_lists.proto @@ -0,0 +1,292 @@ +// 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.ads.googleads.v11.common; + +import "google/ads/googleads/v11/enums/customer_match_upload_key_type.proto"; +import "google/ads/googleads/v11/enums/user_list_combined_rule_operator.proto"; +import "google/ads/googleads/v11/enums/user_list_crm_data_source_type.proto"; +import "google/ads/googleads/v11/enums/user_list_date_rule_item_operator.proto"; +import "google/ads/googleads/v11/enums/user_list_flexible_rule_operator.proto"; +import "google/ads/googleads/v11/enums/user_list_logical_rule_operator.proto"; +import "google/ads/googleads/v11/enums/user_list_number_rule_item_operator.proto"; +import "google/ads/googleads/v11/enums/user_list_prepopulation_status.proto"; +import "google/ads/googleads/v11/enums/user_list_rule_type.proto"; +import "google/ads/googleads/v11/enums/user_list_string_rule_item_operator.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "UserListsProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing user list types. + +// 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 { + // Seed UserList from which this list is derived. + optional string seed_user_list = 2; +} + +// UserList of CRM users provided by the advertiser. +message CrmBasedUserListInfo { + // A string that uniquely identifies a mobile application from which the data + // was collected. + // For iOS, the ID string is the 9 digit string that appears at the end of an + // App Store URL (for example, "476943146" for "Flood-It! 2" whose App Store + // link is http://itunes.apple.com/us/app/flood-it!-2/id476943146). For + // Android, the ID string is the application's package name (for example, + // "com.labpixies.colordrips" for "Color Drips" given Google Play link + // https://play.google.com/store/apps/details?id=com.labpixies.colordrips). + // Required when creating CrmBasedUserList for uploading mobile advertising + // IDs. + optional string app_id = 4; + + // 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.v11.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.v11.enums.UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType data_source_type = 3; +} + +// A client defined rule based on custom parameters sent by web sites or +// uploaded by the advertiser. +message UserListRuleInfo { + // Rule type is used to determine how to group rule items. + // + // The default is OR of ANDs (disjunctive normal form). + // That is, rule items will be ANDed together within rule item groups and the + // groups themselves will be ORed together. + // + // Currently AND of ORs (conjunctive normal form) is only supported for + // ExpressionRuleUserList. + google.ads.googleads.v11.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1; + + // List of rule item groups that defines this rule. + // Rule item groups are grouped together based on rule_type. + repeated UserListRuleItemGroupInfo rule_item_groups = 2; +} + +// A group of rule items. +message UserListRuleItemGroupInfo { + // Rule items that will be grouped together based on rule_type. + repeated UserListRuleItemInfo rule_items = 1; +} + +// An atomic rule item. +message UserListRuleItemInfo { + // Rule variable name. It should match the corresponding key name fired + // by the pixel. + // A name must begin with US-ascii letters or underscore or UTF8 code that is + // greater than 127 and consist of US-ascii letters or digits or underscore or + // UTF8 code that is greater than 127. + // For websites, there are two built-in variable URL (name = 'url__') and + // referrer URL (name = 'ref_url__'). + // This field must be populated when creating a new rule item. + optional string name = 5; + + // An atomic rule item. + oneof rule_item { + // An atomic rule item composed of a number operation. + UserListNumberRuleItemInfo number_rule_item = 2; + + // An atomic rule item composed of a string operation. + UserListStringRuleItemInfo string_rule_item = 3; + + // An atomic rule item composed of a date operation. + UserListDateRuleItemInfo date_rule_item = 4; + } +} + +// A rule item composed of a date operation. +message UserListDateRuleItemInfo { + // Date comparison operator. + // This field is required and must be populated when creating new date + // rule item. + google.ads.googleads.v11.enums.UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator = 1; + + // String representing date value to be compared with the rule variable. + // Supported date format is YYYY-MM-DD. + // Times are reported in the customer's time zone. + optional string value = 4; + + // The relative date value of the right hand side denoted by number of days + // offset from now. The value field will override this field when both are + // present. + optional int64 offset_in_days = 5; +} + +// A rule item composed of a number operation. +message UserListNumberRuleItemInfo { + // Number comparison operator. + // This field is required and must be populated when creating a new number + // rule item. + google.ads.googleads.v11.enums.UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator = 1; + + // Number value to be compared with the variable. + // This field is required and must be populated when creating a new number + // rule item. + optional double value = 3; +} + +// A rule item composed of a string operation. +message UserListStringRuleItemInfo { + // String comparison operator. + // This field is required and must be populated when creating a new string + // rule item. + google.ads.googleads.v11.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator operator = 1; + + // The right hand side of the string rule item. For URLs or referrer URLs, + // the value can not contain illegal URL chars such as newlines, quotes, + // tabs, or parentheses. This field is required and must be populated when + // creating a new string rule item. + optional string value = 3; +} + +// User lists defined by combining two rules, left operand and right operand. +// There are two operators: AND where left operand and right operand have to be +// true; AND_NOT where left operand is true but right operand is false. +message CombinedRuleUserListInfo { + // Left operand of the combined rule. + // This field is required and must be populated when creating new combined + // rule based user list. + UserListRuleInfo left_operand = 1; + + // Right operand of the combined rule. + // This field is required and must be populated when creating new combined + // rule based user list. + UserListRuleInfo right_operand = 2; + + // Operator to connect the two operands. + // + // Required for creating a combined rule user list. + google.ads.googleads.v11.enums.UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator rule_operator = 3; +} + +// Visitors of a page. The page visit is defined by one boolean rule expression. +message ExpressionRuleUserListInfo { + // Boolean rule that defines this user list. The rule consists of a list of + // rule item groups and each rule item group consists of a list of rule items. + // All the rule item groups are ORed or ANDed together for evaluation based on + // rule.rule_type. + // + // Required for creating an expression rule user list. + UserListRuleInfo rule = 1; +} + +// Flexible rule that wraps the common rule and a lookback window. +message FlexibleRuleOperandInfo { + // List of rule item groups that defines this rule. + // Rule item groups are grouped together. + UserListRuleInfo rule = 1; + + // Lookback window for this rule in days. From now until X days ago. + optional int64 lookback_window_days = 2; +} + +// Flexible rule representation of visitors with one or multiple actions. +message FlexibleRuleUserListInfo { + // Operator that defines how the inclusive operands are combined. + google.ads.googleads.v11.enums.UserListFlexibleRuleOperatorEnum.UserListFlexibleRuleOperator inclusive_rule_operator = 1; + + // Actions that are located on the inclusive side. + // These are joined together by either AND/OR as specified by the + // inclusive_rule_operator. + repeated FlexibleRuleOperandInfo inclusive_operands = 2; + + // Actions that are located on the exclusive side. + // These are joined together with OR. + repeated FlexibleRuleOperandInfo exclusive_operands = 3; +} + +// Representation of a userlist that is generated by a rule. +message RuleBasedUserListInfo { + // The status of pre-population. The field is default to NONE if not set which + // means the previous users will not be considered. If set to REQUESTED, past + // site visitors or app users who match the list definition will be included + // in the list (works on the Display Network only). This will only + // add past users from within the last 30 days, depending on the + // 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.v11.enums.UserListPrepopulationStatusEnum.UserListPrepopulationStatus prepopulation_status = 1; + + // Flexible rule representation of visitors with one or multiple actions. + FlexibleRuleUserListInfo flexible_rule_user_list = 5; + + // Subtypes of rule based user lists. + oneof rule_based_user_list { + // User lists defined by combining two rules. + // There are two operators: AND, where the left and right operands have to + // be true; AND_NOT where left operand is true but right operand is false. + CombinedRuleUserListInfo combined_rule_user_list = 2; + + // Visitors of a page. The page visit is defined by one boolean rule + // expression. + ExpressionRuleUserListInfo expression_rule_user_list = 4; + } +} + +// Represents a user list that is a custom combination of user lists. +message LogicalUserListInfo { + // Logical list rules that define this user list. The rules are defined as a + // logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are + // ANDed when they are evaluated. + // + // Required for creating a logical user list. + repeated UserListLogicalRuleInfo rules = 1; +} + +// A user list logical rule. A rule has a logical operator (and/or/not) and a +// list of user lists as operands. +message UserListLogicalRuleInfo { + // The logical operator of the rule. + google.ads.googleads.v11.enums.UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator operator = 1; + + // The list of operands of the rule. + repeated LogicalUserListOperandInfo rule_operands = 2; +} + +// Operand of logical user list that consists of a user list. +message LogicalUserListOperandInfo { + // Resource name of a user list as an operand. + optional string user_list = 2; +} + +// User list targeting as a collection of conversions or remarketing actions. +message BasicUserListInfo { + // Actions associated with this user list. + repeated UserListActionInfo actions = 1; +} + +// Represents an action type used for building remarketing user lists. +message UserListActionInfo { + // Subtypes of user list action. + oneof user_list_action { + // A conversion action that's not generated from remarketing. + string conversion_action = 3; + + // A remarketing action. + string remarketing_action = 4; + } +} diff --git a/google/ads/googleads/v11/common/value.proto b/google/ads/googleads/v11/common/value.proto new file mode 100644 index 000000000..982957a2f --- /dev/null +++ b/google/ads/googleads/v11/common/value.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ValueProto"; +option java_package = "com.google.ads.googleads.v11.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V11::Common"; + +// Proto file describing value types. + +// A generic data container. +message Value { + // A value. + oneof value { + // A boolean. + bool boolean_value = 1; + + // An int64. + int64 int64_value = 2; + + // A float. + float float_value = 3; + + // A double. + double double_value = 4; + + // A string. + string string_value = 5; + } +} diff --git a/google/ads/googleads/v11/enums/BUILD.bazel b/google/ads/googleads/v11/enums/BUILD.bazel new file mode 100644 index 000000000..01a51ee0b --- /dev/null +++ b/google/ads/googleads/v11/enums/BUILD.bazel @@ -0,0 +1,89 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports subpackages. +proto_library( + name = "enums_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/api:annotations_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", +) + +java_proto_library( + name = "enums_java_proto", + deps = [":enums_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", +) + +csharp_proto_library( + name = "enums_csharp_proto", + deps = [":enums_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_proto_library", +) + +ruby_proto_library( + name = "enums_ruby_proto", + deps = [":enums_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_proto_library", +) + +py_proto_library( + name = "enums_py_proto", + deps = [":enums_proto"], +) diff --git a/google/ads/googleads/v11/enums/access_invitation_status.proto b/google/ads/googleads/v11/enums/access_invitation_status.proto new file mode 100644 index 000000000..26654b662 --- /dev/null +++ b/google/ads/googleads/v11/enums/access_invitation_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccessInvitationStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing AccessInvitationStatus enum. + +// Container for enum for identifying the status of access invitation +message AccessInvitationStatusEnum { + // Possible access invitation status of a user + enum AccessInvitationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The initial state of an invitation, before being acted upon by anyone. + PENDING = 2; + + // Invitation process was terminated by the email recipient. No new user was + // created. + DECLINED = 3; + + // Invitation URLs expired without being acted upon. No new user can be + // created. Invitations expire 20 days after creation. + EXPIRED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/access_reason.proto b/google/ads/googleads/v11/enums/access_reason.proto new file mode 100644 index 000000000..54f1804ac --- /dev/null +++ b/google/ads/googleads/v11/enums/access_reason.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccessReasonProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Indicates the way the resource such as user list is related to a user. +message AccessReasonEnum { + // Enum describing possible access reasons. + enum AccessReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The resource is owned by the user. + OWNED = 2; + + // The resource is shared to the user. + SHARED = 3; + + // The resource is licensed to the user. + LICENSED = 4; + + // The user subscribed to the resource. + SUBSCRIBED = 5; + + // The resource is accessible to the user. + AFFILIATED = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/access_role.proto b/google/ads/googleads/v11/enums/access_role.proto new file mode 100644 index 000000000..46bafbb11 --- /dev/null +++ b/google/ads/googleads/v11/enums/access_role.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccessRoleProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing possible access role for user. +message AccessRoleEnum { + // Possible access role of a user. + enum AccessRole { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Owns its account and can control the addition of other users. + ADMIN = 2; + + // Can modify campaigns, but can't affect other users. + STANDARD = 3; + + // Can view campaigns and account changes, but cannot make edits. + READ_ONLY = 4; + + // Role for \"email only\" access. Represents an email recipient rather than + // a true User entity. + EMAIL_ONLY = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/account_budget_proposal_status.proto b/google/ads/googleads/v11/enums/account_budget_proposal_status.proto new file mode 100644 index 000000000..678b157ec --- /dev/null +++ b/google/ads/googleads/v11/enums/account_budget_proposal_status.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing AccountBudgetProposal statuses. + +// Message describing AccountBudgetProposal statuses. +message AccountBudgetProposalStatusEnum { + // The possible statuses of an AccountBudgetProposal. + enum AccountBudgetProposalStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The proposal is pending approval. + PENDING = 2; + + // The proposal has been approved but the corresponding billing setup + // has not. This can occur for proposals that set up the first budget + // when signing up for billing or when performing a change of bill-to + // operation. + APPROVED_HELD = 3; + + // The proposal has been approved. + APPROVED = 4; + + // The proposal has been cancelled by the user. + CANCELLED = 5; + + // The proposal has been rejected by the user, for example, by rejecting an + // acceptance email. + REJECTED = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/account_budget_proposal_type.proto b/google/ads/googleads/v11/enums/account_budget_proposal_type.proto new file mode 100644 index 000000000..965532dea --- /dev/null +++ b/google/ads/googleads/v11/enums/account_budget_proposal_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing AccountBudgetProposal types. + +// Message describing AccountBudgetProposal types. +message AccountBudgetProposalTypeEnum { + // The possible types of an AccountBudgetProposal. + enum AccountBudgetProposalType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Identifies a request to create a new budget. + CREATE = 2; + + // Identifies a request to edit an existing budget. + UPDATE = 3; + + // Identifies a request to end a budget that has already started. + END = 4; + + // Identifies a request to remove a budget that hasn't started yet. + REMOVE = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/account_budget_status.proto b/google/ads/googleads/v11/enums/account_budget_status.proto new file mode 100644 index 000000000..e1c330733 --- /dev/null +++ b/google/ads/googleads/v11/enums/account_budget_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing AccountBudget statuses. + +// Message describing AccountBudget statuses. +message AccountBudgetStatusEnum { + // The possible statuses of an AccountBudget. + enum AccountBudgetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The account budget is pending approval. + PENDING = 2; + + // The account budget has been approved. + APPROVED = 3; + + // The account budget has been cancelled by the user. + CANCELLED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/account_link_status.proto b/google/ads/googleads/v11/enums/account_link_status.proto new file mode 100644 index 000000000..b1f1f7a43 --- /dev/null +++ b/google/ads/googleads/v11/enums/account_link_status.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AccountLinkStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing possible statuses of an account link. +message AccountLinkStatusEnum { + // Describes the possible statuses for a link between a Google Ads customer + // and another account. + enum AccountLinkStatus { + // 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 is removed/disabled. + REMOVED = 3; + + // The link to the other account has been requested. A user on the other + // account may now approve the link by setting the status to ENABLED. + REQUESTED = 4; + + // This link has been requested by a user on the other account. It may be + // approved by a user on this account by setting the status to ENABLED. + PENDING_APPROVAL = 5; + + // The link is rejected by the approver. + REJECTED = 6; + + // The link is revoked by the user who requested the link. + REVOKED = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_customizer_placeholder_field.proto b/google/ads/googleads/v11/enums/ad_customizer_placeholder_field.proto new file mode 100644 index 000000000..41695576f --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_customizer_placeholder_field.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdCustomizerPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Ad Customizer placeholder fields. + +// Values for Ad Customizer placeholder fields. +message AdCustomizerPlaceholderFieldEnum { + // Possible values for Ad Customizers placeholder fields. + enum AdCustomizerPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: INT64. Integer value to be inserted. + INTEGER = 2; + + // Data Type: STRING. Price value to be inserted. + PRICE = 3; + + // Data Type: DATE_TIME. Date value to be inserted. + DATE = 4; + + // Data Type: STRING. String value to be inserted. + STRING = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_destination_type.proto b/google/ads/googleads/v11/enums/ad_destination_type.proto new file mode 100644 index 000000000..0bb0be363 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_destination_type.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdDestinationTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad destination types. + +// Container for enumeration of Google Ads destination types. +message AdDestinationTypeEnum { + // Enumerates Google Ads destination types + enum AdDestinationType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Ads that don't intend to drive users off from ads to other destinations + NOT_APPLICABLE = 2; + + // Website + WEBSITE = 3; + + // App Deep Link + APP_DEEP_LINK = 4; + + // iOS App Store or Play Store + APP_STORE = 5; + + // Call Dialer + PHONE_CALL = 6; + + // Map App + MAP_DIRECTIONS = 7; + + // Location Dedicated Page + LOCATION_LISTING = 8; + + // Text Message + MESSAGE = 9; + + // Lead Generation Form + LEAD_FORM = 10; + + // YouTube + YOUTUBE = 11; + + // Ad Destination for Conversions with keys unknown + UNMODELED_FOR_CONVERSIONS = 12; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_group_ad_rotation_mode.proto b/google/ads/googleads/v11/enums/ad_group_ad_rotation_mode.proto new file mode 100644 index 000000000..7bde29d36 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_group_ad_rotation_mode.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdRotationModeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad group ad rotation mode. + +// Container for enum describing possible ad rotation modes of ads within an +// ad group. +message AdGroupAdRotationModeEnum { + // The possible ad rotation modes of an ad group. + enum AdGroupAdRotationMode { + // The ad rotation mode has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Optimize ad group ads based on clicks or conversions. + OPTIMIZE = 2; + + // Rotate evenly forever. + ROTATE_FOREVER = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_group_ad_status.proto b/google/ads/googleads/v11/enums/ad_group_ad_status.proto new file mode 100644 index 000000000..b3b748f63 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_group_ad_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad group status. + +// Container for enum describing possible statuses of an AdGroupAd. +message AdGroupAdStatusEnum { + // The possible statuses of an AdGroupAd. + enum AdGroupAdStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The ad group ad is enabled. + ENABLED = 2; + + // The ad group ad is paused. + PAUSED = 3; + + // The ad group ad is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_group_criterion_approval_status.proto b/google/ads/googleads/v11/enums/ad_group_criterion_approval_status.proto new file mode 100644 index 000000000..952718387 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_group_criterion_approval_status.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionApprovalStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing approval status for the criterion. + +// Container for enum describing possible AdGroupCriterion approval statuses. +message AdGroupCriterionApprovalStatusEnum { + // Enumerates AdGroupCriterion approval statuses. + enum AdGroupCriterionApprovalStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Approved. + APPROVED = 2; + + // Disapproved. + DISAPPROVED = 3; + + // Pending Review. + PENDING_REVIEW = 4; + + // Under review. + UNDER_REVIEW = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_group_criterion_status.proto b/google/ads/googleads/v11/enums/ad_group_criterion_status.proto new file mode 100644 index 000000000..7bb9ba50f --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_group_criterion_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing AdGroupCriterion statuses. + +// Message describing AdGroupCriterion statuses. +message AdGroupCriterionStatusEnum { + // The possible statuses of an AdGroupCriterion. + enum AdGroupCriterionStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The ad group criterion is enabled. + ENABLED = 2; + + // The ad group criterion is paused. + PAUSED = 3; + + // The ad group criterion is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_group_status.proto b/google/ads/googleads/v11/enums/ad_group_status.proto new file mode 100644 index 000000000..7fdc79997 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_group_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad group status. + +// Container for enum describing possible statuses of an ad group. +message AdGroupStatusEnum { + // The possible statuses of an ad group. + enum AdGroupStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The ad group is enabled. + ENABLED = 2; + + // The ad group is paused. + PAUSED = 3; + + // The ad group is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_group_type.proto b/google/ads/googleads/v11/enums/ad_group_type.proto new file mode 100644 index 000000000..661bf1711 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_group_type.proto @@ -0,0 +1,94 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad group types. + +// Defines types of an ad group, specific to a particular campaign channel +// type. This type drives validations that restrict which entities can be +// added to the ad group. +message AdGroupTypeEnum { + // Enum listing the possible types of an ad group. + enum AdGroupType { + // The type has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The default ad group type for Search campaigns. + SEARCH_STANDARD = 2; + + // The default ad group type for Display campaigns. + DISPLAY_STANDARD = 3; + + // The ad group type for Shopping campaigns serving standard product ads. + SHOPPING_PRODUCT_ADS = 4; + + // The default ad group type for Hotel campaigns. + HOTEL_ADS = 6; + + // The type for ad groups in Smart Shopping campaigns. + SHOPPING_SMART_ADS = 7; + + // Short unskippable in-stream video ads. + VIDEO_BUMPER = 8; + + // TrueView (skippable) in-stream video ads. + VIDEO_TRUE_VIEW_IN_STREAM = 9; + + // TrueView in-display video ads. + VIDEO_TRUE_VIEW_IN_DISPLAY = 10; + + // Unskippable in-stream video ads. + VIDEO_NON_SKIPPABLE_IN_STREAM = 11; + + // Outstream video ads. + VIDEO_OUTSTREAM = 12; + + // Ad group type for Dynamic Search Ads ad groups. + SEARCH_DYNAMIC_ADS = 13; + + // The type for ad groups in Shopping Comparison Listing campaigns. + SHOPPING_COMPARISON_LISTING_ADS = 14; + + // The ad group type for Promoted Hotel ad groups. + PROMOTED_HOTEL_ADS = 15; + + // Video responsive ad groups. + VIDEO_RESPONSIVE = 16; + + // Video efficient reach ad groups. + VIDEO_EFFICIENT_REACH = 17; + + // Ad group type for Smart campaigns. + SMART_CAMPAIGN_ADS = 18; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_network_type.proto b/google/ads/googleads/v11/enums/ad_network_type.proto new file mode 100644 index 000000000..432e51ece --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_network_type.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdNetworkTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad network types. + +// Container for enumeration of Google Ads network types. +message AdNetworkTypeEnum { + // Enumerates Google Ads network types. + enum AdNetworkType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Google search. + SEARCH = 2; + + // Search partners. + SEARCH_PARTNERS = 3; + + // Display Network. + CONTENT = 4; + + // YouTube Search. + YOUTUBE_SEARCH = 5; + + // YouTube Videos + YOUTUBE_WATCH = 6; + + // Cross-network. + MIXED = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_serving_optimization_status.proto b/google/ads/googleads/v11/enums/ad_serving_optimization_status.proto new file mode 100644 index 000000000..982257ea0 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_serving_optimization_status.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdServingOptimizationStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad serving statuses. + +// Possible ad serving statuses of a campaign. +message AdServingOptimizationStatusEnum { + // Enum describing possible serving statuses. + enum AdServingOptimizationStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Ad serving is optimized based on CTR for the campaign. + OPTIMIZE = 2; + + // Ad serving is optimized based on CTR * Conversion for the campaign. If + // the campaign is not in the conversion optimizer bidding strategy, it will + // default to OPTIMIZED. + CONVERSION_OPTIMIZE = 3; + + // Ads are rotated evenly for 90 days, then optimized for clicks. + ROTATE = 4; + + // Show lower performing ads more evenly with higher performing ads, and do + // not optimize. + ROTATE_INDEFINITELY = 5; + + // Ad serving optimization status is not available. + UNAVAILABLE = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_strength.proto b/google/ads/googleads/v11/enums/ad_strength.proto new file mode 100644 index 000000000..3d11630d8 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_strength.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdStrengthProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad strengths. + +// Container for enum describing possible ad strengths. +message AdStrengthEnum { + // Enum listing the possible ad strengths. + enum AdStrength { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The ad strength is currently pending. + PENDING = 2; + + // No ads could be generated. + NO_ADS = 3; + + // Poor strength. + POOR = 4; + + // Average strength. + AVERAGE = 5; + + // Good strength. + GOOD = 6; + + // Excellent strength. + EXCELLENT = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/ad_type.proto b/google/ads/googleads/v11/enums/ad_type.proto new file mode 100644 index 000000000..f6680d177 --- /dev/null +++ b/google/ads/googleads/v11/enums/ad_type.proto @@ -0,0 +1,135 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the ad type. + +// Container for enum describing possible types of an ad. +message AdTypeEnum { + // The possible types of an ad. + enum AdType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The ad is a text ad. + TEXT_AD = 2; + + // The ad is an expanded text ad. + EXPANDED_TEXT_AD = 3; + + // The ad is an expanded dynamic search ad. + EXPANDED_DYNAMIC_SEARCH_AD = 7; + + // The ad is a hotel ad. + HOTEL_AD = 8; + + // The ad is a Smart Shopping ad. + SHOPPING_SMART_AD = 9; + + // The ad is a standard Shopping ad. + SHOPPING_PRODUCT_AD = 10; + + // The ad is a video ad. + VIDEO_AD = 12; + + // This ad is a Gmail ad. + GMAIL_AD = 13; + + // This ad is an Image ad. + IMAGE_AD = 14; + + // The ad is a responsive search ad. + RESPONSIVE_SEARCH_AD = 15; + + // The ad is a legacy responsive display ad. + LEGACY_RESPONSIVE_DISPLAY_AD = 16; + + // The ad is an app ad. + APP_AD = 17; + + // The ad is a legacy app install ad. + LEGACY_APP_INSTALL_AD = 18; + + // The ad is a responsive display ad. + RESPONSIVE_DISPLAY_AD = 19; + + // The ad is a local ad. + LOCAL_AD = 20; + + // The ad is a display upload ad with the HTML5_UPLOAD_AD product type. + HTML5_UPLOAD_AD = 21; + + // The ad is a display upload ad with one of the DYNAMIC_HTML5_* product + // types. + DYNAMIC_HTML5_AD = 22; + + // The ad is an app engagement ad. + APP_ENGAGEMENT_AD = 23; + + // The ad is a Shopping Comparison Listing ad. + SHOPPING_COMPARISON_LISTING_AD = 24; + + // Video bumper ad. + VIDEO_BUMPER_AD = 25; + + // Video non-skippable in-stream ad. + VIDEO_NON_SKIPPABLE_IN_STREAM_AD = 26; + + // Video outstream ad. + VIDEO_OUTSTREAM_AD = 27; + + // Video TrueView in-stream ad. + VIDEO_TRUEVIEW_IN_STREAM_AD = 29; + + // Video responsive ad. + VIDEO_RESPONSIVE_AD = 30; + + // Smart campaign ad. + SMART_CAMPAIGN_AD = 31; + + // Call ad. + CALL_AD = 32; + + // Universal app pre-registration ad. + APP_PRE_REGISTRATION_AD = 33; + + // In-feed video ad. + IN_FEED_VIDEO_AD = 34; + + // Discovery multi asset ad. + DISCOVERY_MULTI_ASSET_AD = 35; + + // Discovery carousel ad. + DISCOVERY_CAROUSEL_AD = 36; + } + + +} diff --git a/google/ads/googleads/v11/enums/advertising_channel_sub_type.proto b/google/ads/googleads/v11/enums/advertising_channel_sub_type.proto new file mode 100644 index 000000000..7c0e53ff1 --- /dev/null +++ b/google/ads/googleads/v11/enums/advertising_channel_sub_type.proto @@ -0,0 +1,100 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdvertisingChannelSubTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing advertising channel subtypes. + +// An immutable specialization of an Advertising Channel. +message AdvertisingChannelSubTypeEnum { + // Enum describing the different channel subtypes. + enum AdvertisingChannelSubType { + // Not specified. + UNSPECIFIED = 0; + + // Used as a return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile app campaigns for Search. + SEARCH_MOBILE_APP = 2; + + // Mobile app campaigns for Display. + DISPLAY_MOBILE_APP = 3; + + // AdWords express campaigns for search. + SEARCH_EXPRESS = 4; + + // AdWords Express campaigns for display. + DISPLAY_EXPRESS = 5; + + // Smart Shopping campaigns. + SHOPPING_SMART_ADS = 6; + + // Gmail Ad campaigns. + DISPLAY_GMAIL_AD = 7; + + // Smart display campaigns. + DISPLAY_SMART_CAMPAIGN = 8; + + // Video Outstream campaigns. + VIDEO_OUTSTREAM = 9; + + // Video TrueView for Action campaigns. + VIDEO_ACTION = 10; + + // Video campaigns with non-skippable video ads. + VIDEO_NON_SKIPPABLE = 11; + + // App Campaign that lets you easily promote your Android or iOS app + // across Google's top properties including Search, Play, YouTube, and the + // Google Display Network. + APP_CAMPAIGN = 12; + + // App Campaign for engagement, focused on driving re-engagement with the + // app across several of Google's top properties including Search, YouTube, + // and the Google Display Network. + APP_CAMPAIGN_FOR_ENGAGEMENT = 13; + + // Campaigns specialized for local advertising. + LOCAL_CAMPAIGN = 14; + + // Shopping Comparison Listing campaigns. + SHOPPING_COMPARISON_LISTING_ADS = 15; + + // Standard Smart campaigns. + SMART_CAMPAIGN = 16; + + // Video campaigns with sequence video ads. + VIDEO_SEQUENCE = 17; + + // App Campaign for pre registration, specialized for advertising mobile + // app pre-registration, that targets multiple advertising channels across + // Google Play, YouTube and Display Network. See + // https://support.google.com/google-ads/answer/9441344 to learn more. + APP_CAMPAIGN_FOR_PRE_REGISTRATION = 18; + } + + +} diff --git a/google/ads/googleads/v11/enums/advertising_channel_type.proto b/google/ads/googleads/v11/enums/advertising_channel_type.proto new file mode 100644 index 000000000..f9cc6e2f4 --- /dev/null +++ b/google/ads/googleads/v11/enums/advertising_channel_type.proto @@ -0,0 +1,77 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdvertisingChannelTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing advertising channel types + +// The channel type a campaign may target to serve on. +message AdvertisingChannelTypeEnum { + // Enum describing the various advertising channel types. + enum AdvertisingChannelType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Search Network. Includes display bundled, and Search+ campaigns. + SEARCH = 2; + + // Google Display Network only. + DISPLAY = 3; + + // Shopping campaigns serve on the shopping property + // and on google.com search results. + SHOPPING = 4; + + // Hotel Ads campaigns. + HOTEL = 5; + + // Video campaigns. + VIDEO = 6; + + // App Campaigns, and App Campaigns for Engagement, that run + // across multiple channels. + MULTI_CHANNEL = 7; + + // Local ads campaigns. + LOCAL = 8; + + // Smart campaigns. + SMART = 9; + + // Performance Max campaigns. + PERFORMANCE_MAX = 10; + + // Local services campaigns. + LOCAL_SERVICES = 11; + + // Discovery campaigns. + DISCOVERY = 12; + } + + +} diff --git a/google/ads/googleads/v11/enums/affiliate_location_feed_relationship_type.proto b/google/ads/googleads/v11/enums/affiliate_location_feed_relationship_type.proto new file mode 100644 index 000000000..80e327e8c --- /dev/null +++ b/google/ads/googleads/v11/enums/affiliate_location_feed_relationship_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AffiliateLocationFeedRelationshipTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing relation type for affiliate location feeds. + +// Container for enum describing possible values for a relationship type for +// an affiliate location feed. +message AffiliateLocationFeedRelationshipTypeEnum { + // Possible values for a relationship type for an affiliate location feed. + enum AffiliateLocationFeedRelationshipType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // General retailer relationship. + GENERAL_RETAILER = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/affiliate_location_placeholder_field.proto b/google/ads/googleads/v11/enums/affiliate_location_placeholder_field.proto new file mode 100644 index 000000000..acef6c23d --- /dev/null +++ b/google/ads/googleads/v11/enums/affiliate_location_placeholder_field.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AffiliateLocationPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Affiliate Location placeholder fields. + +// Values for Affiliate Location placeholder fields. +message AffiliateLocationPlaceholderFieldEnum { + // Possible values for Affiliate Location placeholder fields. + enum AffiliateLocationPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The name of the business. + BUSINESS_NAME = 2; + + // Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_1 = 3; + + // Data Type: STRING. Line 2 of the business address. + ADDRESS_LINE_2 = 4; + + // Data Type: STRING. City of the business address. + CITY = 5; + + // Data Type: STRING. Province of the business address. + PROVINCE = 6; + + // Data Type: STRING. Postal code of the business address. + POSTAL_CODE = 7; + + // Data Type: STRING. Country code of the business address. + COUNTRY_CODE = 8; + + // Data Type: STRING. Phone number of the business. + PHONE_NUMBER = 9; + + // Data Type: STRING. Language code of the business. + LANGUAGE_CODE = 10; + + // Data Type: INT64. ID of the chain. + CHAIN_ID = 11; + + // Data Type: STRING. Name of the chain. + CHAIN_NAME = 12; + } + + +} diff --git a/google/ads/googleads/v11/enums/age_range_type.proto b/google/ads/googleads/v11/enums/age_range_type.proto new file mode 100644 index 000000000..84e7bdb7e --- /dev/null +++ b/google/ads/googleads/v11/enums/age_range_type.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AgeRangeTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing age range types. + +// Container for enum describing the type of demographic age ranges. +message AgeRangeTypeEnum { + // The type of demographic age ranges (for example, between 18 and 24 years + // old). + enum AgeRangeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Between 18 and 24 years old. + AGE_RANGE_18_24 = 503001; + + // Between 25 and 34 years old. + AGE_RANGE_25_34 = 503002; + + // Between 35 and 44 years old. + AGE_RANGE_35_44 = 503003; + + // Between 45 and 54 years old. + AGE_RANGE_45_54 = 503004; + + // Between 55 and 64 years old. + AGE_RANGE_55_64 = 503005; + + // 65 years old and beyond. + AGE_RANGE_65_UP = 503006; + + // Undetermined age range. + AGE_RANGE_UNDETERMINED = 503999; + } + + +} diff --git a/google/ads/googleads/v11/enums/app_campaign_app_store.proto b/google/ads/googleads/v11/enums/app_campaign_app_store.proto new file mode 100644 index 000000000..4862341d0 --- /dev/null +++ b/google/ads/googleads/v11/enums/app_campaign_app_store.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppCampaignAppStoreProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing App Campaign app store. + +// The application store that distributes mobile applications. +message AppCampaignAppStoreEnum { + // Enum describing app campaign app store. + enum AppCampaignAppStore { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Apple app store. + APPLE_APP_STORE = 2; + + // Google play. + GOOGLE_APP_STORE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/app_campaign_bidding_strategy_goal_type.proto b/google/ads/googleads/v11/enums/app_campaign_bidding_strategy_goal_type.proto new file mode 100644 index 000000000..0cf344f01 --- /dev/null +++ b/google/ads/googleads/v11/enums/app_campaign_bidding_strategy_goal_type.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppCampaignBiddingStrategyGoalTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing App Campaign bidding strategy goal types. + +// Container for enum describing goal towards which the bidding strategy of an +// app campaign should optimize for. +message AppCampaignBiddingStrategyGoalTypeEnum { + // Goal type of App campaign BiddingStrategy. + enum AppCampaignBiddingStrategyGoalType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Aim to maximize the number of app installs. The cpa bid is the + // target cost per install. + OPTIMIZE_INSTALLS_TARGET_INSTALL_COST = 2; + + // Aim to maximize the long term number of selected in-app conversions from + // app installs. The cpa bid is the target cost per install. + OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST = 3; + + // Aim to maximize the long term number of selected in-app conversions from + // app installs. The cpa bid is the target cost per in-app conversion. Note + // that the actual cpa may seem higher than the target cpa at first, since + // the long term conversions haven't happened yet. + OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST = 4; + + // Aim to maximize all conversions' value, for example, install + selected + // in-app conversions while achieving or exceeding target return on + // advertising spend. + OPTIMIZE_RETURN_ON_ADVERTISING_SPEND = 5; + + // Aim to maximize the pre-registration of the app. + OPTIMIZE_PRE_REGISTRATION_CONVERSION_VOLUME = 6; + + // Aim to maximize installation of the app without target cost-per-install. + OPTIMIZE_INSTALLS_WITHOUT_TARGET_INSTALL_COST = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/app_payment_model_type.proto b/google/ads/googleads/v11/enums/app_payment_model_type.proto new file mode 100644 index 000000000..4dfa7e463 --- /dev/null +++ b/google/ads/googleads/v11/enums/app_payment_model_type.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppPaymentModelTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing criteria types. + +// Represents a criterion for targeting paid apps. +message AppPaymentModelTypeEnum { + // Enum describing possible app payment models. + enum AppPaymentModelType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Represents paid-for apps. + PAID = 30; + } + + +} diff --git a/google/ads/googleads/v11/enums/app_placeholder_field.proto b/google/ads/googleads/v11/enums/app_placeholder_field.proto new file mode 100644 index 000000000..bc1bfe85b --- /dev/null +++ b/google/ads/googleads/v11/enums/app_placeholder_field.proto @@ -0,0 +1,73 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing App placeholder fields. + +// Values for App placeholder fields. +message AppPlaceholderFieldEnum { + // Possible values for App placeholder fields. + enum AppPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: INT64. The application store that the target application + // belongs to. Valid values are: 1 = Apple iTunes Store; 2 = Google Play + // Store. + STORE = 2; + + // Data Type: STRING. The store-specific ID for the target application. + ID = 3; + + // Data Type: STRING. The visible text displayed when the link is rendered + // in an ad. + LINK_TEXT = 4; + + // Data Type: STRING. The destination URL of the in-app link. + URL = 5; + + // Data Type: URL_LIST. Final URLs for the in-app link when using Upgraded + // URLs. + FINAL_URLS = 6; + + // Data Type: URL_LIST. Final Mobile URLs for the in-app link when using + // Upgraded URLs. + FINAL_MOBILE_URLS = 7; + + // Data Type: URL. Tracking template for the in-app link when using Upgraded + // URLs. + TRACKING_URL = 8; + + // Data Type: STRING. Final URL suffix for the in-app link when using + // parallel tracking. + FINAL_URL_SUFFIX = 9; + } + + +} diff --git a/google/ads/googleads/v11/enums/app_store.proto b/google/ads/googleads/v11/enums/app_store.proto new file mode 100644 index 000000000..564dd1f0a --- /dev/null +++ b/google/ads/googleads/v11/enums/app_store.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppStoreProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing app store types for an app extension. + +// Container for enum describing app store type in an app extension. +message AppStoreEnum { + // App store type in an app extension. + enum AppStore { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Apple iTunes. + APPLE_ITUNES = 2; + + // Google Play. + GOOGLE_PLAY = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/app_url_operating_system_type.proto b/google/ads/googleads/v11/enums/app_url_operating_system_type.proto new file mode 100644 index 000000000..f9a7b1331 --- /dev/null +++ b/google/ads/googleads/v11/enums/app_url_operating_system_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AppUrlOperatingSystemTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing operating system for a deeplink app URL. + +// The possible OS types for a deeplink AppUrl. +message AppUrlOperatingSystemTypeEnum { + // Operating System + enum AppUrlOperatingSystemType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The Apple IOS operating system. + IOS = 2; + + // The Android operating system. + ANDROID = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_field_type.proto b/google/ads/googleads/v11/enums/asset_field_type.proto new file mode 100644 index 000000000..2976e4dea --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_field_type.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetFieldTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing asset type. + +// Container for enum describing the possible placements of an asset. +message AssetFieldTypeEnum { + // Enum describing the possible placements of an asset. + enum AssetFieldType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The asset is linked for use as a headline. + HEADLINE = 2; + + // The asset is linked for use as a description. + DESCRIPTION = 3; + + // The asset is linked for use as mandatory ad text. + MANDATORY_AD_TEXT = 4; + + // The asset is linked for use as a marketing image. + MARKETING_IMAGE = 5; + + // The asset is linked for use as a media bundle. + MEDIA_BUNDLE = 6; + + // The asset is linked for use as a YouTube video. + YOUTUBE_VIDEO = 7; + + // The asset is linked to indicate that a hotels campaign is "Book on + // Google" enabled. + BOOK_ON_GOOGLE = 8; + + // The asset is linked for use as a Lead Form extension. + LEAD_FORM = 9; + + // The asset is linked for use as a Promotion extension. + PROMOTION = 10; + + // The asset is linked for use as a Callout extension. + CALLOUT = 11; + + // The asset is linked for use as a Structured Snippet extension. + STRUCTURED_SNIPPET = 12; + + // The asset is linked for use as a Sitelink extension. + SITELINK = 13; + + // The asset is linked for use as a Mobile App extension. + MOBILE_APP = 14; + + // The asset is linked for use as a Hotel Callout extension. + HOTEL_CALLOUT = 15; + + // The asset is linked for use as a Call extension. + CALL = 16; + + // The asset is linked for use as a Price extension. + PRICE = 24; + + // The asset is linked for use as a long headline. + LONG_HEADLINE = 17; + + // The asset is linked for use as a business name. + BUSINESS_NAME = 18; + + // The asset is linked for use as a square marketing image. + SQUARE_MARKETING_IMAGE = 19; + + // The asset is linked for use as a portrait marketing image. + PORTRAIT_MARKETING_IMAGE = 20; + + // The asset is linked for use as a logo. + LOGO = 21; + + // The asset is linked for use as a landscape logo. + LANDSCAPE_LOGO = 22; + + // The asset is linked for use as a non YouTube logo. + VIDEO = 23; + + // The asset is linked for use to select a call-to-action. + CALL_TO_ACTION_SELECTION = 25; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_group_status.proto b/google/ads/googleads/v11/enums/asset_group_status.proto new file mode 100644 index 000000000..03d2a5e0b --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_group_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing asset group status. + +// Container for enum describing possible statuses of an asset group. +message AssetGroupStatusEnum { + // The possible statuses of an asset group. + enum AssetGroupStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The asset group is enabled. + ENABLED = 2; + + // The asset group is paused. + PAUSED = 3; + + // The asset group is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_link_status.proto b/google/ads/googleads/v11/enums/asset_link_status.proto new file mode 100644 index 000000000..51ad0461e --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_link_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetLinkStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing status of an asset link. + +// Container for enum describing possible statuses of an asset link. +message AssetLinkStatusEnum { + // Enum describing statuses of an asset link. + enum AssetLinkStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Asset link is enabled. + ENABLED = 2; + + // Asset link has been removed. + REMOVED = 3; + + // Asset link is paused. + PAUSED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_performance_label.proto b/google/ads/googleads/v11/enums/asset_performance_label.proto new file mode 100644 index 000000000..90acd8457 --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_performance_label.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetPerformanceLabelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the performance label of an asset. + +// Container for enum describing the performance label of an asset. +message AssetPerformanceLabelEnum { + // Enum describing the possible performance labels of an asset, usually + // computed in the context of a linkage. + enum AssetPerformanceLabel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // This asset does not yet have any performance informantion. This may be + // because it is still under review. + PENDING = 2; + + // The asset has started getting impressions but the stats are not + // statistically significant enough to get an asset performance label. + LEARNING = 3; + + // Worst performing assets. + LOW = 4; + + // Good performing assets. + GOOD = 5; + + // Best performing assets. + BEST = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_set_asset_status.proto b/google/ads/googleads/v11/enums/asset_set_asset_status.proto new file mode 100644 index 000000000..8ec3785fc --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_set_asset_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetAssetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing asset set status. + +// Container for enum describing possible statuses of an asset set asset. +message AssetSetAssetStatusEnum { + // The possible statuses of an asset set asset. + enum AssetSetAssetStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // This is a response-only value. + UNKNOWN = 1; + + // The asset set asset is enabled. + ENABLED = 2; + + // The asset set asset is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_set_link_status.proto b/google/ads/googleads/v11/enums/asset_set_link_status.proto new file mode 100644 index 000000000..b3d4c0acd --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_set_link_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetLinkStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing asset set status. + +// Container for enum describing possible statuses of the linkage between asset +// set and its container. +message AssetSetLinkStatusEnum { + // The possible statuses of the linkage between asset set and its container. + enum AssetSetLinkStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // This is a response-only value. + UNKNOWN = 1; + + // The linkage between asset set and its container is enabled. + ENABLED = 2; + + // The linkage between asset set and its container is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_set_status.proto b/google/ads/googleads/v11/enums/asset_set_status.proto new file mode 100644 index 000000000..4adc61c0a --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_set_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing asset set status. + +// Container for enum describing possible statuses of an asset set. +message AssetSetStatusEnum { + // The possible statuses of an asset set. + enum AssetSetStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // This is a response-only value. + UNKNOWN = 1; + + // The asset set is enabled. + ENABLED = 2; + + // The asset set is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_set_type.proto b/google/ads/googleads/v11/enums/asset_set_type.proto new file mode 100644 index 000000000..e0686615c --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_set_type.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing asset set type. + +// Container for enum describing possible types of an asset set. +message AssetSetTypeEnum { + // Possible types of an asset set. + enum AssetSetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Page asset set. + PAGE_FEED = 2; + + // Dynamic education asset set. + DYNAMIC_EDUCATION = 3; + + // Google Merchant Center asset set. + MERCHANT_CENTER_FEED = 4; + + // Dynamic real estate asset set. + DYNAMIC_REAL_ESTATE = 5; + + // Dynamic custom asset set. + DYNAMIC_CUSTOM = 6; + + // Dynamic hotels and rentals asset set. + DYNAMIC_HOTELS_AND_RENTALS = 7; + + // Dynamic flights asset set. + DYNAMIC_FLIGHTS = 8; + + // Dynamic travel asset set. + DYNAMIC_TRAVEL = 9; + + // Dynamic local asset set. + DYNAMIC_LOCAL = 10; + + // Dynamic jobs asset set. + DYNAMIC_JOBS = 11; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_source.proto b/google/ads/googleads/v11/enums/asset_source.proto new file mode 100644 index 000000000..d601702ec --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_source.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetSourceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing asset source. + +// Source of the asset or asset link for who generated the entity. +// For example, advertiser or automatically created. +message AssetSourceEnum { + // Enum describing possible source of asset. + enum AssetSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The asset or asset link is provided by advertiser. + ADVERTISER = 2; + + // The asset or asset link is generated by Google. + AUTOMATICALLY_CREATED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/asset_type.proto b/google/ads/googleads/v11/enums/asset_type.proto new file mode 100644 index 000000000..314708a8f --- /dev/null +++ b/google/ads/googleads/v11/enums/asset_type.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing asset type. + +// Container for enum describing the types of asset. +message AssetTypeEnum { + // Enum describing possible types of asset. + enum AssetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // YouTube video asset. + YOUTUBE_VIDEO = 2; + + // Media bundle asset. + MEDIA_BUNDLE = 3; + + // Image asset. + IMAGE = 4; + + // Text asset. + TEXT = 5; + + // Lead form asset. + LEAD_FORM = 6; + + // Book on Google asset. + BOOK_ON_GOOGLE = 7; + + // Promotion asset. + PROMOTION = 8; + + // Callout asset. + CALLOUT = 9; + + // Structured Snippet asset. + STRUCTURED_SNIPPET = 10; + + // Sitelink asset. + SITELINK = 11; + + // Page Feed asset. + PAGE_FEED = 12; + + // Dynamic Education asset. + DYNAMIC_EDUCATION = 13; + + // Mobile app asset. + MOBILE_APP = 14; + + // Hotel callout asset. + HOTEL_CALLOUT = 15; + + // Call asset. + CALL = 16; + + // Price asset. + PRICE = 17; + + // Call to action asset. + CALL_TO_ACTION = 18; + + // Dynamic real estate asset. + DYNAMIC_REAL_ESTATE = 19; + + // Dynamic custom asset. + DYNAMIC_CUSTOM = 20; + + // Dynamic hotels and rentals asset. + DYNAMIC_HOTELS_AND_RENTALS = 21; + + // Dynamic flights asset. + DYNAMIC_FLIGHTS = 22; + + // Discovery Carousel Card asset. + DISCOVERY_CAROUSEL_CARD = 23; + + // Dynamic travel asset. + DYNAMIC_TRAVEL = 24; + + // Dynamic local asset. + DYNAMIC_LOCAL = 25; + + // Dynamic jobs asset. + DYNAMIC_JOBS = 26; + } + + +} diff --git a/google/ads/googleads/v11/enums/async_action_status.proto b/google/ads/googleads/v11/enums/async_action_status.proto new file mode 100644 index 000000000..7eee80e55 --- /dev/null +++ b/google/ads/googleads/v11/enums/async_action_status.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AsyncActionStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing experiment async action status. + +// Container for enum describing the experiment async action status. +message AsyncActionStatusEnum { + // The async action status of the experiment. + enum AsyncActionStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Action has not started. + NOT_STARTED = 2; + + // Action is in progress. + IN_PROGRESS = 3; + + // Action has completed successfully. + COMPLETED = 4; + + // Action has failed. + FAILED = 5; + + // Action has completed successfully with warnings. + COMPLETED_WITH_WARNING = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/attribution_model.proto b/google/ads/googleads/v11/enums/attribution_model.proto new file mode 100644 index 000000000..7b16ed571 --- /dev/null +++ b/google/ads/googleads/v11/enums/attribution_model.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AttributionModelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum representing the attribution model that describes how to +// distribute credit for a particular conversion across potentially many prior +// interactions. +message AttributionModelEnum { + // The attribution model that describes how to distribute credit for a + // particular conversion across potentially many prior interactions. + enum AttributionModel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Uses external attribution. + EXTERNAL = 100; + + // Attributes all credit for a conversion to its last click. + GOOGLE_ADS_LAST_CLICK = 101; + + // Attributes all credit for a conversion to its first click using Google + // Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK = 102; + + // Attributes credit for a conversion equally across all of its clicks using + // Google Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_LINEAR = 103; + + // Attributes exponentially more credit for a conversion to its more recent + // clicks using Google Search attribution (half-life is 1 week). + GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY = 104; + + // Attributes 40% of the credit for a conversion to its first and last + // clicks. Remaining 20% is evenly distributed across all other clicks. This + // uses Google Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED = 105; + + // Flexible model that uses machine learning to determine the appropriate + // distribution of credit among clicks using Google Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN = 106; + } + + +} diff --git a/google/ads/googleads/v11/enums/audience_insights_dimension.proto b/google/ads/googleads/v11/enums/audience_insights_dimension.proto new file mode 100644 index 000000000..83e27d17a --- /dev/null +++ b/google/ads/googleads/v11/enums/audience_insights_dimension.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AudienceInsightsDimensionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing a plannable network. + +// Container for enum describing audience insights dimensions. +message AudienceInsightsDimensionEnum { + // Possible audience dimensions for use in generating insights. + enum AudienceInsightsDimension { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // A Product & Service category. + CATEGORY = 2; + + // A Knowledge Graph entity. + KNOWLEDGE_GRAPH = 3; + + // A country, represented by a geo target. + GEO_TARGET_COUNTRY = 4; + + // A geographic location within a country. + SUB_COUNTRY_LOCATION = 5; + + // A YouTube channel. + YOUTUBE_CHANNEL = 6; + + // A YouTube Dynamic Lineup. + YOUTUBE_DYNAMIC_LINEUP = 7; + + // An Affinity UserInterest. + AFFINITY_USER_INTEREST = 8; + + // An In-Market UserInterest. + IN_MARKET_USER_INTEREST = 9; + + // A Parental Status value (parent, or not a parent). + PARENTAL_STATUS = 10; + + // A household income percentile range. + INCOME_RANGE = 11; + + // An age range. + AGE_RANGE = 12; + + // A gender. + GENDER = 13; + } + + +} diff --git a/google/ads/googleads/v11/enums/audience_status.proto b/google/ads/googleads/v11/enums/audience_status.proto new file mode 100644 index 000000000..bd1810a0f --- /dev/null +++ b/google/ads/googleads/v11/enums/audience_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AudienceStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing audience status. + +// The status of audience. +message AudienceStatusEnum { + // Enum containing possible audience status types. + enum AudienceStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Enabled status - audience is enabled and can be targeted. + ENABLED = 2; + + // Removed status - audience is removed and cannot be used for + // targeting. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/batch_job_status.proto b/google/ads/googleads/v11/enums/batch_job_status.proto new file mode 100644 index 000000000..aaceec394 --- /dev/null +++ b/google/ads/googleads/v11/enums/batch_job_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BatchJobStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing batch job statuses. + +// Container for enum describing possible batch job statuses. +message BatchJobStatusEnum { + // The batch job statuses. + enum BatchJobStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The job is not currently running. + PENDING = 2; + + // The job is running. + RUNNING = 3; + + // The job is done. + DONE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/bid_modifier_source.proto b/google/ads/googleads/v11/enums/bid_modifier_source.proto new file mode 100644 index 000000000..216237af6 --- /dev/null +++ b/google/ads/googleads/v11/enums/bid_modifier_source.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BidModifierSourceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing bid modifier source. + +// Container for enum describing possible bid modifier sources. +message BidModifierSourceEnum { + // Enum describing possible bid modifier sources. + enum BidModifierSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The bid modifier is specified at the campaign level, on the campaign + // level criterion. + CAMPAIGN = 2; + + // The bid modifier is specified (overridden) at the ad group level. + AD_GROUP = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/bidding_source.proto b/google/ads/googleads/v11/enums/bidding_source.proto new file mode 100644 index 000000000..ad9f9ed3a --- /dev/null +++ b/google/ads/googleads/v11/enums/bidding_source.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BiddingSourceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing bidding sources. + +// Container for enum describing possible bidding sources. +message BiddingSourceEnum { + // Indicates where a bid or target is defined. For example, an ad group + // criterion may define a cpc bid directly, or it can inherit its cpc bid from + // the ad group. + enum BiddingSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Effective bid or target is inherited from campaign bidding strategy. + CAMPAIGN_BIDDING_STRATEGY = 5; + + // The bid or target is defined on the ad group. + AD_GROUP = 6; + + // The bid or target is defined on the ad group criterion. + AD_GROUP_CRITERION = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/bidding_strategy_status.proto b/google/ads/googleads/v11/enums/bidding_strategy_status.proto new file mode 100644 index 000000000..7f05ea14d --- /dev/null +++ b/google/ads/googleads/v11/enums/bidding_strategy_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing BiddingStrategy statuses. + +// Message describing BiddingStrategy statuses. +message BiddingStrategyStatusEnum { + // The possible statuses of a BiddingStrategy. + enum BiddingStrategyStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The bidding strategy is enabled. + ENABLED = 2; + + // The bidding strategy is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/bidding_strategy_system_status.proto b/google/ads/googleads/v11/enums/bidding_strategy_system_status.proto new file mode 100644 index 000000000..0627921d4 --- /dev/null +++ b/google/ads/googleads/v11/enums/bidding_strategy_system_status.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategySystemStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing BiddingStrategy statuses. + +// Message describing BiddingStrategy system statuses. +message BiddingStrategySystemStatusEnum { + // The possible system statuses of a BiddingStrategy. + enum BiddingStrategySystemStatus { + // Signals that an unexpected error occurred, for example, no bidding + // strategy type was found, or no status information was found. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The bid strategy is active, and AdWords cannot find any specific issues + // with the strategy. + ENABLED = 2; + + // The bid strategy is learning because it has been recently created or + // recently reactivated. + LEARNING_NEW = 3; + + // The bid strategy is learning because of a recent setting change. + LEARNING_SETTING_CHANGE = 4; + + // The bid strategy is learning because of a recent budget change. + LEARNING_BUDGET_CHANGE = 5; + + // The bid strategy is learning because of recent change in number of + // campaigns, ad groups or keywords attached to it. + LEARNING_COMPOSITION_CHANGE = 6; + + // The bid strategy depends on conversion reporting and the customer + // recently modified conversion types that were relevant to the + // bid strategy. + LEARNING_CONVERSION_TYPE_CHANGE = 7; + + // The bid strategy depends on conversion reporting and the customer + // recently changed their conversion settings. + LEARNING_CONVERSION_SETTING_CHANGE = 8; + + // The bid strategy is limited by its bid ceiling. + LIMITED_BY_CPC_BID_CEILING = 9; + + // The bid strategy is limited by its bid floor. + LIMITED_BY_CPC_BID_FLOOR = 10; + + // The bid strategy is limited because there was not enough conversion + // traffic over the past weeks. + LIMITED_BY_DATA = 11; + + // A significant fraction of keywords in this bid strategy are limited by + // budget. + LIMITED_BY_BUDGET = 12; + + // The bid strategy cannot reach its target spend because its spend has + // been de-prioritized. + LIMITED_BY_LOW_PRIORITY_SPEND = 13; + + // A significant fraction of keywords in this bid strategy have a low + // Quality Score. + LIMITED_BY_LOW_QUALITY = 14; + + // The bid strategy cannot fully spend its budget because of narrow + // targeting. + LIMITED_BY_INVENTORY = 15; + + // Missing conversion tracking (no pings present) and/or remarketing lists + // for SSC. + MISCONFIGURED_ZERO_ELIGIBILITY = 16; + + // The bid strategy depends on conversion reporting and the customer is + // lacking conversion types that might be reported against this strategy. + MISCONFIGURED_CONVERSION_TYPES = 17; + + // The bid strategy depends on conversion reporting and the customer's + // conversion settings are misconfigured. + MISCONFIGURED_CONVERSION_SETTINGS = 18; + + // There are campaigns outside the bid strategy that share budgets with + // campaigns included in the strategy. + MISCONFIGURED_SHARED_BUDGET = 19; + + // The campaign has an invalid strategy type and is not serving. + MISCONFIGURED_STRATEGY_TYPE = 20; + + // The bid strategy is not active. Either there are no active campaigns, + // ad groups or keywords attached to the bid strategy. Or there are no + // active budgets connected to the bid strategy. + PAUSED = 21; + + // This bid strategy currently does not support status reporting. + UNAVAILABLE = 22; + + // There were multiple LEARNING_* system statuses for this bid strategy + // during the time in question. + MULTIPLE_LEARNING = 23; + + // There were multiple LIMITED_* system statuses for this bid strategy + // during the time in question. + MULTIPLE_LIMITED = 24; + + // There were multiple MISCONFIGURED_* system statuses for this bid strategy + // during the time in question. + MULTIPLE_MISCONFIGURED = 25; + + // There were multiple system statuses for this bid strategy during the + // time in question. + MULTIPLE = 26; + } + + +} diff --git a/google/ads/googleads/v11/enums/bidding_strategy_type.proto b/google/ads/googleads/v11/enums/bidding_strategy_type.proto new file mode 100644 index 000000000..b9dcb4641 --- /dev/null +++ b/google/ads/googleads/v11/enums/bidding_strategy_type.proto @@ -0,0 +1,121 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing bidding schemes. + +// Container for enum describing possible bidding strategy types. +message BiddingStrategyTypeEnum { + // Enum describing possible bidding strategy types. + enum BiddingStrategyType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Commission is an automatic bidding strategy in which the advertiser pays + // a certain portion of the conversion value. + COMMISSION = 16; + + // Enhanced CPC is 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. + ENHANCED_CPC = 2; + + // Used for return value only. Indicates that a campaign does not have a + // bidding strategy. This prevents the campaign from serving. For example, + // a campaign may be attached to a manager bidding strategy and the serving + // account is subsequently unlinked from the manager account. In this case + // the campaign will automatically be detached from the now inaccessible + // manager bidding strategy and transition to the INVALID bidding strategy + // type. + INVALID = 17; + + // Manual bidding strategy that allows advertiser to set the bid per + // advertiser-specified action. + MANUAL_CPA = 18; + + // Manual click based bidding where user pays per click. + MANUAL_CPC = 3; + + // Manual impression based bidding + // where user pays per thousand impressions. + MANUAL_CPM = 4; + + // A bidding strategy that pays a configurable amount per video view. + MANUAL_CPV = 13; + + // A bidding strategy that automatically maximizes number of conversions + // given a daily budget. + MAXIMIZE_CONVERSIONS = 10; + + // An automated bidding strategy that automatically sets bids to maximize + // revenue while spending your budget. + MAXIMIZE_CONVERSION_VALUE = 11; + + // Page-One Promoted bidding scheme, which sets max cpc bids to + // target impressions on page one or page one promoted slots on google.com. + // This enum value is deprecated. + PAGE_ONE_PROMOTED = 5; + + // Percent Cpc is bidding strategy where bids are a fraction of the + // advertised price for some good or service. + PERCENT_CPC = 12; + + // Target CPA is an automated bid strategy that sets bids + // to help get as many conversions as possible + // at the target cost-per-acquisition (CPA) you set. + TARGET_CPA = 6; + + // Target CPM is an automated bid strategy that sets bids to help get + // as many impressions as possible at the target cost per one thousand + // impressions (CPM) you set. + TARGET_CPM = 14; + + // 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). + TARGET_IMPRESSION_SHARE = 15; + + // Target Outrank Share is an automated bidding strategy that sets bids + // based on the target fraction of auctions where the advertiser + // should outrank a specific competitor. + // This enum value is deprecated. + TARGET_OUTRANK_SHARE = 7; + + // Target ROAS is an automated bidding strategy + // that helps you maximize revenue while averaging + // a specific target Return On Average Spend (ROAS). + TARGET_ROAS = 8; + + // Target Spend is an automated bid strategy that sets your bids + // to help get as many clicks as possible within your budget. + TARGET_SPEND = 9; + } + + +} diff --git a/google/ads/googleads/v11/enums/billing_setup_status.proto b/google/ads/googleads/v11/enums/billing_setup_status.proto new file mode 100644 index 000000000..35804d98c --- /dev/null +++ b/google/ads/googleads/v11/enums/billing_setup_status.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BillingSetupStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing BillingSetup statuses. + +// Message describing BillingSetup statuses. +message BillingSetupStatusEnum { + // The possible statuses of a BillingSetup. + enum BillingSetupStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The billing setup is pending approval. + PENDING = 2; + + // The billing setup has been approved but the corresponding first budget + // has not. This can only occur for billing setups configured for monthly + // invoicing. + APPROVED_HELD = 3; + + // The billing setup has been approved. + APPROVED = 4; + + // The billing setup was cancelled by the user prior to approval. + CANCELLED = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/brand_safety_suitability.proto b/google/ads/googleads/v11/enums/brand_safety_suitability.proto new file mode 100644 index 000000000..2da79d61d --- /dev/null +++ b/google/ads/googleads/v11/enums/brand_safety_suitability.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BrandSafetySuitabilityProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing brand safety suitability settings. + +// Container for enum with 3-Tier brand safety suitability control. +message BrandSafetySuitabilityEnum { + // 3-Tier brand safety suitability control. + enum BrandSafetySuitability { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // This option lets you show ads across all inventory on YouTube and video + // partners that meet our standards for monetization. This option may be an + // appropriate choice for brands that want maximum access to the full + // breadth of videos eligible for ads, including, for example, videos that + // have strong profanity in the context of comedy or a documentary, or + // excessive violence as featured in video games. + EXPANDED_INVENTORY = 2; + + // This option lets you show ads across a wide range of content that's + // appropriate for most brands, such as popular music videos, documentaries, + // and movie trailers. The content you can show ads on is based on YouTube's + // advertiser-friendly content guidelines that take into account, for + // example, the strength or frequency of profanity, or the appropriateness + // of subject matter like sensitive events. Ads won't show, for example, on + // content with repeated strong profanity, strong sexual content, or graphic + // violence. + STANDARD_INVENTORY = 3; + + // This option lets you show ads on a reduced range of content that's + // appropriate for brands with particularly strict guidelines around + // inappropriate language and sexual suggestiveness; above and beyond what + // YouTube's advertiser-friendly content guidelines address. The videos + // accessible in this sensitive category meet heightened requirements, + // especially for inappropriate language and sexual suggestiveness. For + // example, your ads will be excluded from showing on some of YouTube's most + // popular music videos and other pop culture content across YouTube and + // Google video partners. + LIMITED_INVENTORY = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/budget_campaign_association_status.proto b/google/ads/googleads/v11/enums/budget_campaign_association_status.proto new file mode 100644 index 000000000..13a9204d4 --- /dev/null +++ b/google/ads/googleads/v11/enums/budget_campaign_association_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetCampaignAssociationStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Budget and Campaign association status. + +// Message describing the status of the association between the Budget and the +// Campaign. +message BudgetCampaignAssociationStatusEnum { + // Possible statuses of the association between the Budget and the Campaign. + enum BudgetCampaignAssociationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The campaign is currently using the budget. + ENABLED = 2; + + // The campaign is no longer using the budget. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/budget_delivery_method.proto b/google/ads/googleads/v11/enums/budget_delivery_method.proto new file mode 100644 index 000000000..6ca5b7a47 --- /dev/null +++ b/google/ads/googleads/v11/enums/budget_delivery_method.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetDeliveryMethodProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Budget delivery methods. + +// Message describing Budget delivery methods. A delivery method determines the +// rate at which the Budget is spent. +message BudgetDeliveryMethodEnum { + // Possible delivery methods of a Budget. + enum BudgetDeliveryMethod { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The budget server will throttle serving evenly across + // the entire time period. + STANDARD = 2; + + // The budget server will not throttle serving, + // and ads will serve as fast as possible. + ACCELERATED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/budget_period.proto b/google/ads/googleads/v11/enums/budget_period.proto new file mode 100644 index 000000000..fcada15fb --- /dev/null +++ b/google/ads/googleads/v11/enums/budget_period.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetPeriodProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Budget delivery methods. + +// Message describing Budget period. +message BudgetPeriodEnum { + // Possible period of a Budget. + enum BudgetPeriod { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Daily budget. + DAILY = 2; + + // Custom budget, added back in V5. + // Custom bugdet 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/google/ads/googleads/v11/enums/budget_status.proto b/google/ads/googleads/v11/enums/budget_status.proto new file mode 100644 index 000000000..8195faf80 --- /dev/null +++ b/google/ads/googleads/v11/enums/budget_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Budget statuses + +// Message describing a Budget status +message BudgetStatusEnum { + // Possible statuses of a Budget. + enum BudgetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Budget is enabled. + ENABLED = 2; + + // Budget is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/budget_type.proto b/google/ads/googleads/v11/enums/budget_type.proto new file mode 100644 index 000000000..08f25c0f8 --- /dev/null +++ b/google/ads/googleads/v11/enums/budget_type.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BudgetTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Budget types. + +// Describes Budget types. +message BudgetTypeEnum { + // Possible Budget types. + enum BudgetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Budget type for standard Google Ads usage. + // Caps daily spend at two times the specified budget amount. + // Full details: https://support.google.com/google-ads/answer/6385083 + STANDARD = 2; + + // Budget type with a fixed cost-per-acquisition (conversion). + // Full details: https://support.google.com/google-ads/answer/7528254 + // + // This type is only supported by campaigns with + // AdvertisingChannelType.DISPLAY (excluding + // AdvertisingChannelSubType.DISPLAY_GMAIL), + // BiddingStrategyType.TARGET_CPA and PaymentMode.CONVERSIONS. + FIXED_CPA = 4; + + // Budget type for Smart Campaign. + // Full details: https://support.google.com/google-ads/answer/7653509 + // + // This type is only supported by campaigns with + // AdvertisingChannelType.SMART and + // AdvertisingChannelSubType.SMART_CAMPAIGN. + SMART_CAMPAIGN = 5; + + // Budget type for Local Services Campaign. + // Full details: https://support.google.com/localservices/answer/7434558 + // + // This type is only supported by campaigns with + // AdvertisingChannelType.LOCAL_SERVICES. + LOCAL_SERVICES = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/call_conversion_reporting_state.proto b/google/ads/googleads/v11/enums/call_conversion_reporting_state.proto new file mode 100644 index 000000000..c6819dd9c --- /dev/null +++ b/google/ads/googleads/v11/enums/call_conversion_reporting_state.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallConversionReportingStateProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing call conversion reporting state. + +// Container for enum describing possible data types for call conversion +// reporting state. +message CallConversionReportingStateEnum { + // Possible data types for a call conversion action state. + enum CallConversionReportingState { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Call conversion action is disabled. + DISABLED = 2; + + // Call conversion action will use call conversion type set at the + // account level. + USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION = 3; + + // Call conversion action will use call conversion type set at the resource + // (call only ads/call extensions) level. + USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/call_placeholder_field.proto b/google/ads/googleads/v11/enums/call_placeholder_field.proto new file mode 100644 index 000000000..b0b0b047d --- /dev/null +++ b/google/ads/googleads/v11/enums/call_placeholder_field.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Call placeholder fields. + +// Values for Call placeholder fields. +message CallPlaceholderFieldEnum { + // Possible values for Call placeholder fields. + enum CallPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The advertiser's phone number to append to the ad. + PHONE_NUMBER = 2; + + // Data Type: STRING. Uppercase two-letter country code of the advertiser's + // phone number. + COUNTRY_CODE = 3; + + // Data Type: BOOLEAN. Indicates whether call tracking is enabled. Default: + // true. + TRACKED = 4; + + // Data Type: INT64. The ID of an AdCallMetricsConversion object. This + // object contains the phoneCallDurationfield which is the minimum duration + // (in seconds) of a call to be considered a conversion. + CONVERSION_TYPE_ID = 5; + + // Data Type: STRING. Indicates whether this call extension uses its own + // call conversion setting or follows the account level setting. + // Valid values are: USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION and + // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION. + CONVERSION_REPORTING_STATE = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/call_to_action_type.proto b/google/ads/googleads/v11/enums/call_to_action_type.proto new file mode 100644 index 000000000..bd86c2de3 --- /dev/null +++ b/google/ads/googleads/v11/enums/call_to_action_type.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallToActionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing call to action type. + +// Container for enum describing the call to action types. +message CallToActionTypeEnum { + // Enum describing possible types of call to action. + enum CallToActionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The call to action type is learn more. + LEARN_MORE = 2; + + // The call to action type is get quote. + GET_QUOTE = 3; + + // The call to action type is apply now. + APPLY_NOW = 4; + + // The call to action type is sign up. + SIGN_UP = 5; + + // The call to action type is contact us. + CONTACT_US = 6; + + // The call to action type is subscribe. + SUBSCRIBE = 7; + + // The call to action type is download. + DOWNLOAD = 8; + + // The call to action type is book now. + BOOK_NOW = 9; + + // The call to action type is shop now. + SHOP_NOW = 10; + } + + +} diff --git a/google/ads/googleads/v11/enums/call_tracking_display_location.proto b/google/ads/googleads/v11/enums/call_tracking_display_location.proto new file mode 100644 index 000000000..beb6a59c5 --- /dev/null +++ b/google/ads/googleads/v11/enums/call_tracking_display_location.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallTrackingDisplayLocationProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing call tracking display location. + +// Container for enum describing possible call tracking display locations. +message CallTrackingDisplayLocationEnum { + // Possible call tracking display locations. + enum CallTrackingDisplayLocation { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The phone call placed from the ad. + AD = 2; + + // The phone call placed from the landing page ad points to. + LANDING_PAGE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/call_type.proto b/google/ads/googleads/v11/enums/call_type.proto new file mode 100644 index 000000000..81f7f971d --- /dev/null +++ b/google/ads/googleads/v11/enums/call_type.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CallTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing call types. + +// Container for enum describing possible types of property from where the call +// was made. +message CallTypeEnum { + // Possible types of property from where the call was made. + enum CallType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The phone call was manually dialed. + MANUALLY_DIALED = 2; + + // The phone call was a mobile click-to-call. + HIGH_END_MOBILE_SEARCH = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/callout_placeholder_field.proto b/google/ads/googleads/v11/enums/callout_placeholder_field.proto new file mode 100644 index 000000000..26ef3ace3 --- /dev/null +++ b/google/ads/googleads/v11/enums/callout_placeholder_field.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CalloutPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Callout placeholder fields. + +// Values for Callout placeholder fields. +message CalloutPlaceholderFieldEnum { + // Possible values for Callout placeholder fields. + enum CalloutPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Callout text. + CALLOUT_TEXT = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_criterion_status.proto b/google/ads/googleads/v11/enums/campaign_criterion_status.proto new file mode 100644 index 000000000..f199d3892 --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_criterion_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing CampaignCriterion statuses. + +// Message describing CampaignCriterion statuses. +message CampaignCriterionStatusEnum { + // The possible statuses of a CampaignCriterion. + enum CampaignCriterionStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The campaign criterion is enabled. + ENABLED = 2; + + // The campaign criterion is paused. + PAUSED = 3; + + // The campaign criterion is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_draft_status.proto b/google/ads/googleads/v11/enums/campaign_draft_status.proto new file mode 100644 index 000000000..81fdb8acc --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_draft_status.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignDraftStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing campaign draft status. + +// Container for enum describing possible statuses of a campaign draft. +message CampaignDraftStatusEnum { + // Possible statuses of a campaign draft. + enum CampaignDraftStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Initial state of the draft, the advertiser can start adding changes with + // no effect on serving. + PROPOSED = 2; + + // The campaign draft is removed. + REMOVED = 3; + + // Advertiser requested to promote draft's changes back into the original + // campaign. Advertiser can poll the long running operation returned by + // the promote action to see the status of the promotion. + PROMOTING = 5; + + // The process to merge changes in the draft back to the original campaign + // has completed successfully. + PROMOTED = 4; + + // The promotion failed after it was partially applied. Promote cannot be + // attempted again safely, so the issue must be corrected in the original + // campaign. + PROMOTE_FAILED = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_experiment_status.proto b/google/ads/googleads/v11/enums/campaign_experiment_status.proto new file mode 100644 index 000000000..30d39777a --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_experiment_status.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing campaign experiment status. + +// Container for enum describing possible statuses of a campaign experiment. +message CampaignExperimentStatusEnum { + // Possible statuses of a campaign experiment. + enum CampaignExperimentStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The experiment campaign is being initialized. + INITIALIZING = 2; + + // Initialization of the experiment campaign failed. + INITIALIZATION_FAILED = 8; + + // The experiment campaign is fully initialized. The experiment is currently + // running, scheduled to run in the future or has ended based on its + // end date. An experiment with the status INITIALIZING will be updated to + // ENABLED when it is fully created. + ENABLED = 3; + + // The experiment campaign was graduated to a stand-alone + // campaign, existing independently of the experiment. + GRADUATED = 4; + + // The experiment is removed. + REMOVED = 5; + + // The experiment's changes are being applied to the original campaign. + // The long running operation returned by the promote method can be polled + // to see the status of the promotion. + PROMOTING = 6; + + // Promote of the experiment campaign failed. + PROMOTION_FAILED = 9; + + // The changes of the experiment are promoted to their original campaign. + PROMOTED = 7; + + // The experiment was ended manually. It did not end based on its end date. + ENDED_MANUALLY = 10; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_experiment_traffic_split_type.proto b/google/ads/googleads/v11/enums/campaign_experiment_traffic_split_type.proto new file mode 100644 index 000000000..130d00828 --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_experiment_traffic_split_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentTrafficSplitTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing campaign experiment traffic split type. + +// Container for enum describing campaign experiment traffic split type. +message CampaignExperimentTrafficSplitTypeEnum { + // Enum of strategies for splitting traffic between base and experiment + // campaigns in campaign experiment. + enum CampaignExperimentTrafficSplitType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Traffic is randomly assigned to the base or experiment arm for each + // query, independent of previous assignments for the same user. + RANDOM_QUERY = 2; + + // Traffic is split using cookies to keep users in the same arm (base or + // experiment) of the experiment. + COOKIE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_experiment_type.proto b/google/ads/googleads/v11/enums/campaign_experiment_type.proto new file mode 100644 index 000000000..d459423cb --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_experiment_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing campaign experiment type. + +// Container for enum describing campaign experiment type. +message CampaignExperimentTypeEnum { + // Indicates if this campaign is a normal campaign, + // a draft campaign, or an experiment campaign. + enum CampaignExperimentType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // This is a regular campaign. + BASE = 2; + + // This is a draft version of a campaign. + // It has some modifications from a base campaign, + // but it does not serve or accrue metrics. + DRAFT = 3; + + // This is an experiment version of a campaign. + // It has some modifications from a base campaign, + // and a percentage of traffic is being diverted + // from the BASE campaign to this experiment campaign. + EXPERIMENT = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_group_status.proto b/google/ads/googleads/v11/enums/campaign_group_status.proto new file mode 100644 index 000000000..97824edcb --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_group_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignGroupStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing CampaignGroup statuses. + +// Message describing CampaignGroup statuses. +message CampaignGroupStatusEnum { + // Possible statuses of a CampaignGroup. + enum CampaignGroupStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The campaign group is active. + ENABLED = 2; + + // The campaign group has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_serving_status.proto b/google/ads/googleads/v11/enums/campaign_serving_status.proto new file mode 100644 index 000000000..1392a9c81 --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_serving_status.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignServingStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Campaign serving statuses. + +// Message describing Campaign serving statuses. +message CampaignServingStatusEnum { + // Possible serving statuses of a campaign. + enum CampaignServingStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Serving. + SERVING = 2; + + // None. + NONE = 3; + + // Ended. + ENDED = 4; + + // Pending. + PENDING = 5; + + // Suspended. + SUSPENDED = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_shared_set_status.proto b/google/ads/googleads/v11/enums/campaign_shared_set_status.proto new file mode 100644 index 000000000..32f14fa0f --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_shared_set_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSharedSetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing campaign shared set statuses. + +// Container for enum describing types of campaign shared set statuses. +message CampaignSharedSetStatusEnum { + // Enum listing the possible campaign shared set statuses. + enum CampaignSharedSetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The campaign shared set is enabled. + ENABLED = 2; + + // The campaign shared set is removed and can no longer be used. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/campaign_status.proto b/google/ads/googleads/v11/enums/campaign_status.proto new file mode 100644 index 000000000..c58c0f4c4 --- /dev/null +++ b/google/ads/googleads/v11/enums/campaign_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing campaign status. + +// Container for enum describing possible statuses of a campaign. +message CampaignStatusEnum { + // Possible statuses of a campaign. + enum CampaignStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Campaign is currently serving ads depending on budget information. + ENABLED = 2; + + // Campaign has been paused by the user. + PAUSED = 3; + + // Campaign has been removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/change_client_type.proto b/google/ads/googleads/v11/enums/change_client_type.proto new file mode 100644 index 000000000..5afd53396 --- /dev/null +++ b/google/ads/googleads/v11/enums/change_client_type.proto @@ -0,0 +1,85 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ChangeClientTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the sources that the change event resource was +// made through. + +// Container for enum describing the sources that the change event resource +// was made through. +message ChangeClientTypeEnum { + // The source that the change_event resource was made through. + enum ChangeClientType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified client type + // unknown in this version. + UNKNOWN = 1; + + // Changes made through the "ads.google.com". + // For example, changes made through campaign management. + GOOGLE_ADS_WEB_CLIENT = 2; + + // Changes made through Google Ads automated rules. + GOOGLE_ADS_AUTOMATED_RULE = 3; + + // Changes made through Google Ads scripts. + GOOGLE_ADS_SCRIPTS = 4; + + // Changes made by Google Ads bulk upload. + GOOGLE_ADS_BULK_UPLOAD = 5; + + // Changes made by Google Ads API. + GOOGLE_ADS_API = 6; + + // Changes made by Google Ads Editor. + GOOGLE_ADS_EDITOR = 7; + + // Changes made by Google Ads mobile app. + GOOGLE_ADS_MOBILE_APP = 8; + + // Changes made through Google Ads recommendations. + GOOGLE_ADS_RECOMMENDATIONS = 9; + + // Changes made through Search Ads 360 Sync. + SEARCH_ADS_360_SYNC = 10; + + // Changes made through Search Ads 360 Post. + SEARCH_ADS_360_POST = 11; + + // Changes made through internal tools. + // For example, when a user sets a URL template on an entity like a + // Campaign, it's automatically wrapped with the SA360 Clickserver URL. + INTERNAL_TOOL = 12; + + // Types of changes that are not categorized, for example, + // changes made by coupon redemption through Google Ads. + OTHER = 13; + } + + +} diff --git a/google/ads/googleads/v11/enums/change_event_resource_type.proto b/google/ads/googleads/v11/enums/change_event_resource_type.proto new file mode 100644 index 000000000..3726de408 --- /dev/null +++ b/google/ads/googleads/v11/enums/change_event_resource_type.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ChangeEventResourceTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the resource types the ChangeEvent resource supports. + +// Container for enum describing supported resource types for the ChangeEvent +// resource. +message ChangeEventResourceTypeEnum { + // Enum listing the resource types support by the ChangeEvent resource. + enum ChangeEventResourceType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified resource unknown + // in this version. + UNKNOWN = 1; + + // An Ad resource change. + AD = 2; + + // An AdGroup resource change. + AD_GROUP = 3; + + // An AdGroupCriterion resource change. + AD_GROUP_CRITERION = 4; + + // A Campaign resource change. + CAMPAIGN = 5; + + // A CampaignBudget resource change. + CAMPAIGN_BUDGET = 6; + + // An AdGroupBidModifier resource change. + AD_GROUP_BID_MODIFIER = 7; + + // A CampaignCriterion resource change. + CAMPAIGN_CRITERION = 8; + + // A Feed resource change. + FEED = 9; + + // A FeedItem resource change. + FEED_ITEM = 10; + + // A CampaignFeed resource change. + CAMPAIGN_FEED = 11; + + // An AdGroupFeed resource change. + AD_GROUP_FEED = 12; + + // An AdGroupAd resource change. + AD_GROUP_AD = 13; + + // An Asset resource change. + ASSET = 14; + + // A CustomerAsset resource change. + CUSTOMER_ASSET = 15; + + // A CampaignAsset resource change. + CAMPAIGN_ASSET = 16; + + // An AdGroupAsset resource change. + AD_GROUP_ASSET = 17; + + // An AssetSet resource change. + ASSET_SET = 18; + + // An AssetSetAsset resource change. + ASSET_SET_ASSET = 19; + + // A CampaignAssetSet resource change. + CAMPAIGN_ASSET_SET = 20; + } + + +} diff --git a/google/ads/googleads/v11/enums/change_status_operation.proto b/google/ads/googleads/v11/enums/change_status_operation.proto new file mode 100644 index 000000000..2b29df806 --- /dev/null +++ b/google/ads/googleads/v11/enums/change_status_operation.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ChangeStatusOperationProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the change status operations. + +// Container for enum describing operations for the ChangeStatus resource. +message ChangeStatusOperationEnum { + // Status of the changed resource + enum ChangeStatusOperation { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified resource unknown + // in this version. + UNKNOWN = 1; + + // The resource was created. + ADDED = 2; + + // The resource was modified. + CHANGED = 3; + + // The resource was removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/change_status_resource_type.proto b/google/ads/googleads/v11/enums/change_status_resource_type.proto new file mode 100644 index 000000000..35a4fbb68 --- /dev/null +++ b/google/ads/googleads/v11/enums/change_status_resource_type.proto @@ -0,0 +1,92 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ChangeStatusResourceTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the resource types the ChangeStatus resource supports. + +// Container for enum describing supported resource types for the ChangeStatus +// resource. +message ChangeStatusResourceTypeEnum { + // Enum listing the resource types support by the ChangeStatus resource. + enum ChangeStatusResourceType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified resource unknown + // in this version. + UNKNOWN = 1; + + // An AdGroup resource change. + AD_GROUP = 3; + + // An AdGroupAd resource change. + AD_GROUP_AD = 4; + + // An AdGroupCriterion resource change. + AD_GROUP_CRITERION = 5; + + // A Campaign resource change. + CAMPAIGN = 6; + + // A CampaignCriterion resource change. + CAMPAIGN_CRITERION = 7; + + // A Feed resource change. + FEED = 9; + + // A FeedItem resource change. + FEED_ITEM = 10; + + // An AdGroupFeed resource change. + AD_GROUP_FEED = 11; + + // A CampaignFeed resource change. + CAMPAIGN_FEED = 12; + + // An AdGroupBidModifier resource change. + AD_GROUP_BID_MODIFIER = 13; + + // A SharedSet resource change. + SHARED_SET = 14; + + // A CampaignSharedSet resource change. + CAMPAIGN_SHARED_SET = 15; + + // An Asset resource change. + ASSET = 16; + + // A CustomerAsset resource change. + CUSTOMER_ASSET = 17; + + // A CampaignAsset resource change. + CAMPAIGN_ASSET = 18; + + // An AdGroupAsset resource change. + AD_GROUP_ASSET = 19; + } + + +} diff --git a/google/ads/googleads/v11/enums/click_type.proto b/google/ads/googleads/v11/enums/click_type.proto new file mode 100644 index 000000000..7e1121e82 --- /dev/null +++ b/google/ads/googleads/v11/enums/click_type.proto @@ -0,0 +1,204 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ClickTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing click types. + +// Container for enumeration of Google Ads click types. +message ClickTypeEnum { + // Enumerates Google Ads click types. + enum ClickType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // App engagement ad deep link. + APP_DEEPLINK = 2; + + // Breadcrumbs. + BREADCRUMBS = 3; + + // Broadband Plan. + BROADBAND_PLAN = 4; + + // Manually dialed phone calls. + CALL_TRACKING = 5; + + // Phone calls. + CALLS = 6; + + // Click on engagement ad. + CLICK_ON_ENGAGEMENT_AD = 7; + + // Driving direction. + GET_DIRECTIONS = 8; + + // Get location details. + LOCATION_EXPANSION = 9; + + // Call. + LOCATION_FORMAT_CALL = 10; + + // Directions. + LOCATION_FORMAT_DIRECTIONS = 11; + + // Image(s). + LOCATION_FORMAT_IMAGE = 12; + + // Go to landing page. + LOCATION_FORMAT_LANDING_PAGE = 13; + + // Map. + LOCATION_FORMAT_MAP = 14; + + // Go to store info. + LOCATION_FORMAT_STORE_INFO = 15; + + // Text. + LOCATION_FORMAT_TEXT = 16; + + // Mobile phone calls. + MOBILE_CALL_TRACKING = 17; + + // Print offer. + OFFER_PRINTS = 18; + + // Other. + OTHER = 19; + + // Product plusbox offer. + PRODUCT_EXTENSION_CLICKS = 20; + + // Shopping - Product - Online. + PRODUCT_LISTING_AD_CLICKS = 21; + + // Sitelink. + SITELINKS = 22; + + // Show nearby locations. + STORE_LOCATOR = 23; + + // Headline. + URL_CLICKS = 25; + + // App store. + VIDEO_APP_STORE_CLICKS = 26; + + // Call-to-Action overlay. + VIDEO_CALL_TO_ACTION_CLICKS = 27; + + // Cards. + VIDEO_CARD_ACTION_HEADLINE_CLICKS = 28; + + // End cap. + VIDEO_END_CAP_CLICKS = 29; + + // Website. + VIDEO_WEBSITE_CLICKS = 30; + + // Visual Sitelinks. + VISUAL_SITELINKS = 31; + + // Wireless Plan. + WIRELESS_PLAN = 32; + + // Shopping - Product - Local. + PRODUCT_LISTING_AD_LOCAL = 33; + + // Shopping - Product - MultiChannel Local. + PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL = 34; + + // Shopping - Product - MultiChannel Online. + PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE = 35; + + // Shopping - Product - Coupon. + PRODUCT_LISTING_ADS_COUPON = 36; + + // Shopping - Product - Sell on Google. + PRODUCT_LISTING_AD_TRANSACTABLE = 37; + + // Shopping - Product - App engagement ad deep link. + PRODUCT_AD_APP_DEEPLINK = 38; + + // Shopping - Showcase - Category. + SHOWCASE_AD_CATEGORY_LINK = 39; + + // Shopping - Showcase - Local storefront. + SHOWCASE_AD_LOCAL_STOREFRONT_LINK = 40; + + // Shopping - Showcase - Online product. + SHOWCASE_AD_ONLINE_PRODUCT_LINK = 42; + + // Shopping - Showcase - Local product. + SHOWCASE_AD_LOCAL_PRODUCT_LINK = 43; + + // Promotion Extension. + PROMOTION_EXTENSION = 44; + + // Ad Headline. + SWIPEABLE_GALLERY_AD_HEADLINE = 45; + + // Swipes. + SWIPEABLE_GALLERY_AD_SWIPES = 46; + + // See More. + SWIPEABLE_GALLERY_AD_SEE_MORE = 47; + + // Sitelink 1. + SWIPEABLE_GALLERY_AD_SITELINK_ONE = 48; + + // Sitelink 2. + SWIPEABLE_GALLERY_AD_SITELINK_TWO = 49; + + // Sitelink 3. + SWIPEABLE_GALLERY_AD_SITELINK_THREE = 50; + + // Sitelink 4. + SWIPEABLE_GALLERY_AD_SITELINK_FOUR = 51; + + // Sitelink 5. + SWIPEABLE_GALLERY_AD_SITELINK_FIVE = 52; + + // Hotel price. + HOTEL_PRICE = 53; + + // Price Extension. + PRICE_EXTENSION = 54; + + // Book on Google hotel room selection. + HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION = 55; + + // Shopping - Comparison Listing. + SHOPPING_COMPARISON_LISTING = 56; + + // Cross-network. From Performance Max and Discovery Campaigns. + CROSS_NETWORK = 57; + } + + +} diff --git a/google/ads/googleads/v11/enums/combined_audience_status.proto b/google/ads/googleads/v11/enums/combined_audience_status.proto new file mode 100644 index 000000000..c487fe680 --- /dev/null +++ b/google/ads/googleads/v11/enums/combined_audience_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CombinedAudienceStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing combined audience status. + +// The status of combined audience. +message CombinedAudienceStatusEnum { + // Enum containing possible combined audience status types. + enum CombinedAudienceStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Enabled status - combined audience is enabled and can be targeted. + ENABLED = 2; + + // Removed status - combined audience is removed and cannot be used for + // targeting. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/content_label_type.proto b/google/ads/googleads/v11/enums/content_label_type.proto new file mode 100644 index 000000000..1d58ed472 --- /dev/null +++ b/google/ads/googleads/v11/enums/content_label_type.proto @@ -0,0 +1,87 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ContentLabelTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::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/google/ads/googleads/v11/enums/conversion_action_category.proto b/google/ads/googleads/v11/enums/conversion_action_category.proto new file mode 100644 index 000000000..adf167cd6 --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_action_category.proto @@ -0,0 +1,114 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionCategoryProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing the category of conversions that are associated +// with a ConversionAction. +message ConversionActionCategoryEnum { + // The category of conversions that are associated with a ConversionAction. + enum ConversionActionCategory { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Default category. + DEFAULT = 2; + + // User visiting a page. + PAGE_VIEW = 3; + + // Purchase, sales, or "order placed" event. + PURCHASE = 4; + + // Signup user action. + SIGNUP = 5; + + // Software download action (as for an app). + DOWNLOAD = 7; + + // The addition of items to a shopping cart or bag on an advertiser site. + ADD_TO_CART = 8; + + // When someone enters the checkout flow on an advertiser site. + BEGIN_CHECKOUT = 9; + + // The start of a paid subscription for a product or service. + SUBSCRIBE_PAID = 10; + + // A call to indicate interest in an advertiser's offering. + PHONE_CALL_LEAD = 11; + + // A lead conversion imported from an external source into Google Ads. + IMPORTED_LEAD = 12; + + // A submission of a form on an advertiser site indicating business + // interest. + SUBMIT_LEAD_FORM = 13; + + // A booking of an appointment with an advertiser's business. + BOOK_APPOINTMENT = 14; + + // A quote or price estimate request. + REQUEST_QUOTE = 15; + + // A search for an advertiser's business location with intention to visit. + GET_DIRECTIONS = 16; + + // A click to an advertiser's partner's site. + OUTBOUND_CLICK = 17; + + // A call, SMS, email, chat or other type of contact to an advertiser. + CONTACT = 18; + + // A website engagement event such as long site time or a Google Analytics + // (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal + // imports. + ENGAGEMENT = 19; + + // A visit to a physical store location. + STORE_VISIT = 20; + + // A sale occurring in a physical store. + STORE_SALE = 21; + + // A lead conversion imported from an external source into Google Ads, + // that has been further qualified by the advertiser (marketing/sales team). + // In the lead-to-sale journey, advertisers get leads, then act on them + // by reaching out to the consumer. If the consumer is interested and + // may end up buying their product, the advertiser marks such leads as + // "qualified leads". + QUALIFIED_LEAD = 22; + + // A lead conversion imported from an external source into Google Ads, that + // has further completed a chosen stage as defined by the lead gen + // advertiser. + CONVERTED_LEAD = 23; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_action_counting_type.proto b/google/ads/googleads/v11/enums/conversion_action_counting_type.proto new file mode 100644 index 000000000..9f52baeb8 --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_action_counting_type.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionCountingTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion action counting type. + +// Container for enum describing the conversion deduplication mode for +// conversion optimizer. +message ConversionActionCountingTypeEnum { + // Indicates how conversions for this action will be counted. For more + // information, see https://support.google.com/google-ads/answer/3438531. + enum ConversionActionCountingType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Count only one conversion per click. + ONE_PER_CLICK = 2; + + // Count all conversions per click. + MANY_PER_CLICK = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_action_status.proto b/google/ads/googleads/v11/enums/conversion_action_status.proto new file mode 100644 index 000000000..c403283ba --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_action_status.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion action status. + +// Container for enum describing possible statuses of a conversion action. +message ConversionActionStatusEnum { + // Possible statuses of a conversion action. + enum ConversionActionStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversions will be recorded. + ENABLED = 2; + + // Conversions will not be recorded. + REMOVED = 3; + + // Conversions will not be recorded and the conversion action will not + // appear in the UI. + HIDDEN = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_action_type.proto b/google/ads/googleads/v11/enums/conversion_action_type.proto new file mode 100644 index 000000000..5b184332c --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_action_type.proto @@ -0,0 +1,173 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion action type. + +// Container for enum describing possible types of a conversion action. +message ConversionActionTypeEnum { + // Possible types of a conversion action. + enum ConversionActionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversions that occur when a user clicks on an ad's call extension. + AD_CALL = 2; + + // Conversions that occur when a user on a mobile device clicks a phone + // number. + CLICK_TO_CALL = 3; + + // Conversions that occur when a user downloads a mobile app from the Google + // Play Store. + GOOGLE_PLAY_DOWNLOAD = 4; + + // Conversions that occur when a user makes a purchase in an app through + // Android billing. + GOOGLE_PLAY_IN_APP_PURCHASE = 5; + + // Call conversions that are tracked by the advertiser and uploaded. + UPLOAD_CALLS = 6; + + // Conversions that are tracked by the advertiser and uploaded with + // attributed clicks. + UPLOAD_CLICKS = 7; + + // Conversions that occur on a webpage. + WEBPAGE = 8; + + // Conversions that occur when a user calls a dynamically-generated phone + // number from an advertiser's website. + WEBSITE_CALL = 9; + + // Store Sales conversion based on first-party or third-party merchant + // data uploads. + // Only customers on the allowlist can use store sales direct upload types. + STORE_SALES_DIRECT_UPLOAD = 10; + + // Store Sales conversion based on first-party or third-party merchant + // data uploads and/or from in-store purchases using cards from payment + // networks. + // Only customers on the allowlist can use store sales types. + // Read only. + STORE_SALES = 11; + + // Android app first open conversions tracked through Firebase. + FIREBASE_ANDROID_FIRST_OPEN = 12; + + // Android app in app purchase conversions tracked through Firebase. + FIREBASE_ANDROID_IN_APP_PURCHASE = 13; + + // Android app custom conversions tracked through Firebase. + FIREBASE_ANDROID_CUSTOM = 14; + + // iOS app first open conversions tracked through Firebase. + FIREBASE_IOS_FIRST_OPEN = 15; + + // iOS app in app purchase conversions tracked through Firebase. + FIREBASE_IOS_IN_APP_PURCHASE = 16; + + // iOS app custom conversions tracked through Firebase. + FIREBASE_IOS_CUSTOM = 17; + + // Android app first open conversions tracked through Third Party App + // Analytics. + THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN = 18; + + // Android app in app purchase conversions tracked through Third Party App + // Analytics. + THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE = 19; + + // Android app custom conversions tracked through Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM = 20; + + // iOS app first open conversions tracked through Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN = 21; + + // iOS app in app purchase conversions tracked through Third Party App + // Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE = 22; + + // iOS app custom conversions tracked through Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM = 23; + + // Conversions that occur when a user pre-registers a mobile app from the + // Google Play Store. Read only. + ANDROID_APP_PRE_REGISTRATION = 24; + + // Conversions that track all Google Play downloads which aren't tracked + // by an app-specific type. Read only. + ANDROID_INSTALLS_ALL_OTHER_APPS = 25; + + // Floodlight activity that counts the number of times that users have + // visited a particular webpage after seeing or clicking on one of + // an advertiser's ads. Read only. + FLOODLIGHT_ACTION = 26; + + // Floodlight activity that tracks the number of sales made or the number + // of items purchased. Can also capture the total value of each sale. + // Read only. + FLOODLIGHT_TRANSACTION = 27; + + // Conversions that track local actions from Google's products and + // services after interacting with an ad. Read only. + GOOGLE_HOSTED = 28; + + // Conversions reported when a user submits a lead form. Read only. + LEAD_FORM_SUBMIT = 29; + + // Conversions that come from Salesforce. Read only. + SALESFORCE = 30; + + // Conversions imported from Search Ads 360 Floodlight data. Read only. + SEARCH_ADS_360 = 31; + + // Call conversions that occur on Smart campaign Ads without call tracking + // setup, using Smart campaign custom criteria. Read only. + SMART_CAMPAIGN_AD_CLICKS_TO_CALL = 32; + + // The user clicks on a call element within Google Maps. Smart campaign + // only. Read only. + SMART_CAMPAIGN_MAP_CLICKS_TO_CALL = 33; + + // The user requests directions to a business location within Google Maps. + // Smart campaign only. Read only. + SMART_CAMPAIGN_MAP_DIRECTIONS = 34; + + // Call conversions that occur on Smart campaign Ads with call tracking + // setup, using Smart campaign custom criteria. Read only. + SMART_CAMPAIGN_TRACKED_CALLS = 35; + + // Conversions that occur when a user visits an advertiser's retail store. + // Read only. + STORE_VISITS = 36; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_adjustment_type.proto b/google/ads/googleads/v11/enums/conversion_adjustment_type.proto new file mode 100644 index 000000000..f0d8873bc --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_adjustment_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionAdjustmentTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion adjustment type. + +// Container for enum describing conversion adjustment types. +message ConversionAdjustmentTypeEnum { + // The different actions advertisers can take to adjust the conversions that + // they already reported. Retractions negate a conversion. Restatements change + // the value of a conversion. + enum ConversionAdjustmentType { + // Not specified. + UNSPECIFIED = 0; + + // Represents value unknown in this version. + UNKNOWN = 1; + + // Negates a conversion so that its total value and count are both zero. + RETRACTION = 2; + + // Changes the value of a conversion. + RESTATEMENT = 3; + + // Supplements an existing conversion with provided user identifiers and + // user agent, which can be used by Google to enhance the conversion count. + ENHANCEMENT = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_attribution_event_type.proto b/google/ads/googleads/v11/enums/conversion_attribution_event_type.proto new file mode 100644 index 000000000..b78cc39a3 --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_attribution_event_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionAttributionEventTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum indicating the event type the conversion is attributed to. +message ConversionAttributionEventTypeEnum { + // The event type of conversions that are attributed to. + enum ConversionAttributionEventType { + // Not specified. + UNSPECIFIED = 0; + + // Represents value unknown in this version. + UNKNOWN = 1; + + // The conversion is attributed to an impression. + IMPRESSION = 2; + + // The conversion is attributed to an interaction. + INTERACTION = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_custom_variable_status.proto b/google/ads/googleads/v11/enums/conversion_custom_variable_status.proto new file mode 100644 index 000000000..d1c2db6fe --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_custom_variable_status.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionCustomVariableStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion custom variable status. + +// Container for enum describing possible statuses of a conversion custom +// variable. +message ConversionCustomVariableStatusEnum { + // Possible statuses of a conversion custom variable. + enum ConversionCustomVariableStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The conversion custom variable is pending activation and will not + // accrue stats until set to ENABLED. + // + // This status can't be used in CREATE and UPDATE requests. + ACTIVATION_NEEDED = 2; + + // The conversion custom variable is enabled and will accrue stats. + ENABLED = 3; + + // The conversion custom variable is paused and will not accrue stats + // until set to ENABLED again. + PAUSED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_environment_enum.proto b/google/ads/googleads/v11/enums/conversion_environment_enum.proto new file mode 100644 index 000000000..7b8f004a9 --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_environment_enum.proto @@ -0,0 +1,47 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionEnvironmentEnumProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum representing the conversion environment an uploaded +// conversion was recorded on, for example, App or Web. +message ConversionEnvironmentEnum { + // Conversion environment of the uploaded conversion. + enum ConversionEnvironment { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The conversion was recorded on an app. + APP = 2; + + // The conversion was recorded on a website. + WEB = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_lag_bucket.proto b/google/ads/googleads/v11/enums/conversion_lag_bucket.proto new file mode 100644 index 000000000..9029a204a --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_lag_bucket.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionLagBucketProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum representing the number of days between impression and +// conversion. +message ConversionLagBucketEnum { + // Enum representing the number of days between impression and conversion. + enum ConversionLagBucket { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. + LESS_THAN_ONE_DAY = 2; + + // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. + ONE_TO_TWO_DAYS = 3; + + // Conversion lag bucket from 2 to 3 days. 2 days is included, + // 3 days is not. + TWO_TO_THREE_DAYS = 4; + + // Conversion lag bucket from 3 to 4 days. 3 days is included, + // 4 days is not. + THREE_TO_FOUR_DAYS = 5; + + // Conversion lag bucket from 4 to 5 days. 4 days is included, + // 5 days is not. + FOUR_TO_FIVE_DAYS = 6; + + // Conversion lag bucket from 5 to 6 days. 5 days is included, + // 6 days is not. + FIVE_TO_SIX_DAYS = 7; + + // Conversion lag bucket from 6 to 7 days. 6 days is included, + // 7 days is not. + SIX_TO_SEVEN_DAYS = 8; + + // Conversion lag bucket from 7 to 8 days. 7 days is included, + // 8 days is not. + SEVEN_TO_EIGHT_DAYS = 9; + + // Conversion lag bucket from 8 to 9 days. 8 days is included, + // 9 days is not. + EIGHT_TO_NINE_DAYS = 10; + + // Conversion lag bucket from 9 to 10 days. 9 days is included, + // 10 days is not. + NINE_TO_TEN_DAYS = 11; + + // Conversion lag bucket from 10 to 11 days. 10 days is included, + // 11 days is not. + TEN_TO_ELEVEN_DAYS = 12; + + // Conversion lag bucket from 11 to 12 days. 11 days is included, + // 12 days is not. + ELEVEN_TO_TWELVE_DAYS = 13; + + // Conversion lag bucket from 12 to 13 days. 12 days is included, + // 13 days is not. + TWELVE_TO_THIRTEEN_DAYS = 14; + + // Conversion lag bucket from 13 to 14 days. 13 days is included, + // 14 days is not. + THIRTEEN_TO_FOURTEEN_DAYS = 15; + + // Conversion lag bucket from 14 to 21 days. 14 days is included, + // 21 days is not. + FOURTEEN_TO_TWENTY_ONE_DAYS = 16; + + // Conversion lag bucket from 21 to 30 days. 21 days is included, + // 30 days is not. + TWENTY_ONE_TO_THIRTY_DAYS = 17; + + // Conversion lag bucket from 30 to 45 days. 30 days is included, + // 45 days is not. + THIRTY_TO_FORTY_FIVE_DAYS = 18; + + // Conversion lag bucket from 45 to 60 days. 45 days is included, + // 60 days is not. + FORTY_FIVE_TO_SIXTY_DAYS = 19; + + // Conversion lag bucket from 60 to 90 days. 60 days is included, + // 90 days is not. + SIXTY_TO_NINETY_DAYS = 20; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_or_adjustment_lag_bucket.proto b/google/ads/googleads/v11/enums/conversion_or_adjustment_lag_bucket.proto new file mode 100644 index 000000000..3dc1db295 --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_or_adjustment_lag_bucket.proto @@ -0,0 +1,204 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionOrAdjustmentLagBucketProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum representing the number of days between the impression and +// the conversion or between the impression and adjustments to the conversion. +message ConversionOrAdjustmentLagBucketEnum { + // Enum representing the number of days between the impression and the + // conversion or between the impression and adjustments to the conversion. + enum ConversionOrAdjustmentLagBucket { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. + CONVERSION_LESS_THAN_ONE_DAY = 2; + + // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. + CONVERSION_ONE_TO_TWO_DAYS = 3; + + // Conversion lag bucket from 2 to 3 days. 2 days is included, + // 3 days is not. + CONVERSION_TWO_TO_THREE_DAYS = 4; + + // Conversion lag bucket from 3 to 4 days. 3 days is included, + // 4 days is not. + CONVERSION_THREE_TO_FOUR_DAYS = 5; + + // Conversion lag bucket from 4 to 5 days. 4 days is included, + // 5 days is not. + CONVERSION_FOUR_TO_FIVE_DAYS = 6; + + // Conversion lag bucket from 5 to 6 days. 5 days is included, + // 6 days is not. + CONVERSION_FIVE_TO_SIX_DAYS = 7; + + // Conversion lag bucket from 6 to 7 days. 6 days is included, + // 7 days is not. + CONVERSION_SIX_TO_SEVEN_DAYS = 8; + + // Conversion lag bucket from 7 to 8 days. 7 days is included, + // 8 days is not. + CONVERSION_SEVEN_TO_EIGHT_DAYS = 9; + + // Conversion lag bucket from 8 to 9 days. 8 days is included, + // 9 days is not. + CONVERSION_EIGHT_TO_NINE_DAYS = 10; + + // Conversion lag bucket from 9 to 10 days. 9 days is included, + // 10 days is not. + CONVERSION_NINE_TO_TEN_DAYS = 11; + + // Conversion lag bucket from 10 to 11 days. 10 days is included, + // 11 days is not. + CONVERSION_TEN_TO_ELEVEN_DAYS = 12; + + // Conversion lag bucket from 11 to 12 days. 11 days is included, + // 12 days is not. + CONVERSION_ELEVEN_TO_TWELVE_DAYS = 13; + + // Conversion lag bucket from 12 to 13 days. 12 days is included, + // 13 days is not. + CONVERSION_TWELVE_TO_THIRTEEN_DAYS = 14; + + // Conversion lag bucket from 13 to 14 days. 13 days is included, + // 14 days is not. + CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS = 15; + + // Conversion lag bucket from 14 to 21 days. 14 days is included, + // 21 days is not. + CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS = 16; + + // Conversion lag bucket from 21 to 30 days. 21 days is included, + // 30 days is not. + CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS = 17; + + // Conversion lag bucket from 30 to 45 days. 30 days is included, + // 45 days is not. + CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS = 18; + + // Conversion lag bucket from 45 to 60 days. 45 days is included, + // 60 days is not. + CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS = 19; + + // Conversion lag bucket from 60 to 90 days. 60 days is included, + // 90 days is not. + CONVERSION_SIXTY_TO_NINETY_DAYS = 20; + + // Conversion adjustment lag bucket from 0 to 1 day. 0 day is included, + // 1 day is not. + ADJUSTMENT_LESS_THAN_ONE_DAY = 21; + + // Conversion adjustment lag bucket from 1 to 2 days. 1 day is included, + // 2 days is not. + ADJUSTMENT_ONE_TO_TWO_DAYS = 22; + + // Conversion adjustment lag bucket from 2 to 3 days. 2 days is included, + // 3 days is not. + ADJUSTMENT_TWO_TO_THREE_DAYS = 23; + + // Conversion adjustment lag bucket from 3 to 4 days. 3 days is included, + // 4 days is not. + ADJUSTMENT_THREE_TO_FOUR_DAYS = 24; + + // Conversion adjustment lag bucket from 4 to 5 days. 4 days is included, + // 5 days is not. + ADJUSTMENT_FOUR_TO_FIVE_DAYS = 25; + + // Conversion adjustment lag bucket from 5 to 6 days. 5 days is included, + // 6 days is not. + ADJUSTMENT_FIVE_TO_SIX_DAYS = 26; + + // Conversion adjustment lag bucket from 6 to 7 days. 6 days is included, + // 7 days is not. + ADJUSTMENT_SIX_TO_SEVEN_DAYS = 27; + + // Conversion adjustment lag bucket from 7 to 8 days. 7 days is included, + // 8 days is not. + ADJUSTMENT_SEVEN_TO_EIGHT_DAYS = 28; + + // Conversion adjustment lag bucket from 8 to 9 days. 8 days is included, + // 9 days is not. + ADJUSTMENT_EIGHT_TO_NINE_DAYS = 29; + + // Conversion adjustment lag bucket from 9 to 10 days. 9 days is included, + // 10 days is not. + ADJUSTMENT_NINE_TO_TEN_DAYS = 30; + + // Conversion adjustment lag bucket from 10 to 11 days. 10 days is included, + // 11 days is not. + ADJUSTMENT_TEN_TO_ELEVEN_DAYS = 31; + + // Conversion adjustment lag bucket from 11 to 12 days. 11 days is included, + // 12 days is not. + ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS = 32; + + // Conversion adjustment lag bucket from 12 to 13 days. 12 days is included, + // 13 days is not. + ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS = 33; + + // Conversion adjustment lag bucket from 13 to 14 days. 13 days is included, + // 14 days is not. + ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS = 34; + + // Conversion adjustment lag bucket from 14 to 21 days. 14 days is included, + // 21 days is not. + ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS = 35; + + // Conversion adjustment lag bucket from 21 to 30 days. 21 days is included, + // 30 days is not. + ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS = 36; + + // Conversion adjustment lag bucket from 30 to 45 days. 30 days is included, + // 45 days is not. + ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS = 37; + + // Conversion adjustment lag bucket from 45 to 60 days. 45 days is included, + // 60 days is not. + ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS = 38; + + // Conversion adjustment lag bucket from 60 to 90 days. 60 days is included, + // 90 days is not. + ADJUSTMENT_SIXTY_TO_NINETY_DAYS = 39; + + // Conversion adjustment lag bucket from 90 to 145 days. 90 days is + // included, 145 days is not. + ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS = 40; + + // Conversion lag bucket UNKNOWN. This is for dates before conversion lag + // bucket was available in Google Ads. + CONVERSION_UNKNOWN = 41; + + // Conversion adjustment lag bucket UNKNOWN. This is for dates before + // conversion adjustment lag bucket was available in Google Ads. + ADJUSTMENT_UNKNOWN = 42; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_origin.proto b/google/ads/googleads/v11/enums/conversion_origin.proto new file mode 100644 index 000000000..f924200d4 --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_origin.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionOriginProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion origin. + +// Container for enum describing possible conversion origins. +message ConversionOriginEnum { + // The possible places where a conversion can occur. + enum ConversionOrigin { + // The conversion origin has not been specified. + UNSPECIFIED = 0; + + // The conversion origin is not known in this version. + UNKNOWN = 1; + + // Conversion that occurs when a user visits a website or takes an action + // there after viewing an ad. + WEBSITE = 2; + + // Conversions reported by an offline pipeline which collects local actions + // from Google-hosted pages (for example, Google Maps, Google Place Page, + // etc) and attributes them to relevant ad events. + GOOGLE_HOSTED = 3; + + // Conversion that occurs when a user performs an action through any app + // platforms. + APP = 4; + + // Conversion that occurs when a user makes a call from ads. + CALL_FROM_ADS = 5; + + // Conversion that occurs when a user visits or makes a purchase at a + // physical store. + STORE = 6; + + // Conversion that occurs on YouTube. + YOUTUBE_HOSTED = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_tracking_status_enum.proto b/google/ads/googleads/v11/enums/conversion_tracking_status_enum.proto new file mode 100644 index 000000000..6b91eeea6 --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_tracking_status_enum.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionTrackingStatusEnumProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum representing the conversion tracking status of the +// customer. +message ConversionTrackingStatusEnum { + // Conversion Tracking status of the customer. + enum ConversionTrackingStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Customer does not use any conversion tracking. + NOT_CONVERSION_TRACKED = 2; + + // The conversion actions are created and managed by this customer. + CONVERSION_TRACKING_MANAGED_BY_SELF = 3; + + // The conversion actions are created and managed by the manager specified + // in the request's `login-customer-id`. + CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER = 4; + + // The conversion actions are created and managed by a manager different + // from the customer or manager specified in the request's + // `login-customer-id`. + CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_value_rule_primary_dimension.proto b/google/ads/googleads/v11/enums/conversion_value_rule_primary_dimension.proto new file mode 100644 index 000000000..70abbf3dc --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_value_rule_primary_dimension.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRulePrimaryDimensionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion value rule primary dimension. + +// Container for enum describing value rule primary dimension for stats. +message ConversionValueRulePrimaryDimensionEnum { + // Identifies the primary dimension for conversion value rule stats. + enum ConversionValueRulePrimaryDimension { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // For no-value-rule-applied conversions after value rule is enabled. + NO_RULE_APPLIED = 2; + + // Below are for value-rule-applied conversions: + // The original stats. + ORIGINAL = 3; + + // When a new or returning customer condition is satisfied. + NEW_VS_RETURNING_USER = 4; + + // When a query-time Geo location condition is satisfied. + GEO_LOCATION = 5; + + // When a query-time browsing device condition is satisfied. + DEVICE = 6; + + // When a query-time audience condition is satisfied. + AUDIENCE = 7; + + // When multiple rules are applied. + MULTIPLE = 8; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_value_rule_set_status.proto b/google/ads/googleads/v11/enums/conversion_value_rule_set_status.proto new file mode 100644 index 000000000..e5f6f400c --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_value_rule_set_status.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleSetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion value rule set status. + +// Container for enum describing possible statuses of a conversion value rule +// set. +message ConversionValueRuleSetStatusEnum { + // Possible statuses of a conversion value rule set. + enum ConversionValueRuleSetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion Value Rule Set is enabled and can be applied. + ENABLED = 2; + + // Conversion Value Rule Set is permanently deleted and can't be applied. + REMOVED = 3; + + // Conversion Value Rule Set is paused and won't be applied. It can be + // enabled again. + PAUSED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/conversion_value_rule_status.proto b/google/ads/googleads/v11/enums/conversion_value_rule_status.proto new file mode 100644 index 000000000..d9d5efd2d --- /dev/null +++ b/google/ads/googleads/v11/enums/conversion_value_rule_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion value rule status. + +// Container for enum describing possible statuses of a conversion value rule. +message ConversionValueRuleStatusEnum { + // Possible statuses of a conversion value rule. + enum ConversionValueRuleStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion Value Rule is enabled and can be applied. + ENABLED = 2; + + // Conversion Value Rule is permanently deleted and can't be applied. + REMOVED = 3; + + // Conversion Value Rule is paused, but can be re-enabled. + PAUSED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/criterion_category_channel_availability_mode.proto b/google/ads/googleads/v11/enums/criterion_category_channel_availability_mode.proto new file mode 100644 index 000000000..808baaf69 --- /dev/null +++ b/google/ads/googleads/v11/enums/criterion_category_channel_availability_mode.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CriterionCategoryChannelAvailabilityModeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the criterion category channel availability mode. + +// Describes channel availability mode for a criterion availability - whether +// the availability is meant to include all advertising channels, or a +// particular channel with all its channel subtypes, or a channel with a certain +// subset of channel subtypes. +message CriterionCategoryChannelAvailabilityModeEnum { + // Enum containing the possible CriterionCategoryChannelAvailabilityMode. + enum CriterionCategoryChannelAvailabilityMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The category is available to campaigns of all channel types and subtypes. + ALL_CHANNELS = 2; + + // The category is available to campaigns of a specific channel type, + // including all subtypes under it. + CHANNEL_TYPE_AND_ALL_SUBTYPES = 3; + + // The category is available to campaigns of a specific channel type and + // subtype(s). + CHANNEL_TYPE_AND_SUBSET_SUBTYPES = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/criterion_category_locale_availability_mode.proto b/google/ads/googleads/v11/enums/criterion_category_locale_availability_mode.proto new file mode 100644 index 000000000..bdcb722f4 --- /dev/null +++ b/google/ads/googleads/v11/enums/criterion_category_locale_availability_mode.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CriterionCategoryLocaleAvailabilityModeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the criterion category locale availability mode. + +// Describes locale availability mode for a criterion availability - whether +// it's available globally, or a particular country with all languages, or a +// particular language with all countries, or a country-language pair. +message CriterionCategoryLocaleAvailabilityModeEnum { + // Enum containing the possible CriterionCategoryLocaleAvailabilityMode. + enum CriterionCategoryLocaleAvailabilityMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The category is available to campaigns of all locales. + ALL_LOCALES = 2; + + // The category is available to campaigns within a list of countries, + // regardless of language. + COUNTRY_AND_ALL_LANGUAGES = 3; + + // The category is available to campaigns within a list of languages, + // regardless of country. + LANGUAGE_AND_ALL_COUNTRIES = 4; + + // The category is available to campaigns within a list of country, language + // pairs. + COUNTRY_AND_LANGUAGE = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/criterion_system_serving_status.proto b/google/ads/googleads/v11/enums/criterion_system_serving_status.proto new file mode 100644 index 000000000..c44afe1c6 --- /dev/null +++ b/google/ads/googleads/v11/enums/criterion_system_serving_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CriterionSystemServingStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing approval status for the criterion. + +// Container for enum describing possible criterion system serving statuses. +message CriterionSystemServingStatusEnum { + // Enumerates criterion system serving statuses. + enum CriterionSystemServingStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Eligible. + ELIGIBLE = 2; + + // Low search volume. + RARELY_SERVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/criterion_type.proto b/google/ads/googleads/v11/enums/criterion_type.proto new file mode 100644 index 000000000..7256a25df --- /dev/null +++ b/google/ads/googleads/v11/enums/criterion_type.proto @@ -0,0 +1,144 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CriterionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing criteria types. + +// The possible types of a criterion. +message CriterionTypeEnum { + // Enum describing possible criterion types. + enum CriterionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Keyword, for example, 'mars cruise'. + KEYWORD = 2; + + // Placement, also known as Website, for example, 'www.flowers4sale.com' + PLACEMENT = 3; + + // Mobile application categories to target. + MOBILE_APP_CATEGORY = 4; + + // Mobile applications to target. + MOBILE_APPLICATION = 5; + + // Devices to target. + DEVICE = 6; + + // Locations to target. + LOCATION = 7; + + // Listing groups to target. + LISTING_GROUP = 8; + + // Ad Schedule. + AD_SCHEDULE = 9; + + // Age range. + AGE_RANGE = 10; + + // Gender. + GENDER = 11; + + // Income Range. + INCOME_RANGE = 12; + + // Parental status. + PARENTAL_STATUS = 13; + + // YouTube Video. + YOUTUBE_VIDEO = 14; + + // YouTube Channel. + YOUTUBE_CHANNEL = 15; + + // User list. + USER_LIST = 16; + + // Proximity. + PROXIMITY = 17; + + // A topic target on the display network (for example, "Pets & Animals"). + TOPIC = 18; + + // Listing scope to target. + LISTING_SCOPE = 19; + + // Language. + LANGUAGE = 20; + + // IpBlock. + IP_BLOCK = 21; + + // Content Label for category exclusion. + CONTENT_LABEL = 22; + + // Carrier. + CARRIER = 23; + + // A category the user is interested in. + USER_INTEREST = 24; + + // Webpage criterion for dynamic search ads. + WEBPAGE = 25; + + // Operating system version. + OPERATING_SYSTEM_VERSION = 26; + + // App payment model. + APP_PAYMENT_MODEL = 27; + + // Mobile device. + MOBILE_DEVICE = 28; + + // Custom affinity. + CUSTOM_AFFINITY = 29; + + // Custom intent. + CUSTOM_INTENT = 30; + + // Location group. + LOCATION_GROUP = 31; + + // Custom audience + CUSTOM_AUDIENCE = 32; + + // Combined audience + COMBINED_AUDIENCE = 33; + + // Smart Campaign keyword theme + KEYWORD_THEME = 34; + + // Audience + AUDIENCE = 35; + } + + +} diff --git a/google/ads/googleads/v11/enums/custom_audience_member_type.proto b/google/ads/googleads/v11/enums/custom_audience_member_type.proto new file mode 100644 index 000000000..636490490 --- /dev/null +++ b/google/ads/googleads/v11/enums/custom_audience_member_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceMemberTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing custom audience member type. + +// The type of custom audience member. +message CustomAudienceMemberTypeEnum { + // Enum containing possible custom audience member types. + enum CustomAudienceMemberType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Users whose interests or actions are described by a keyword. + KEYWORD = 2; + + // Users who have interests related to the website's content. + URL = 3; + + // Users who visit place types described by a place category. + PLACE_CATEGORY = 4; + + // Users who have installed a mobile app. + APP = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/custom_audience_status.proto b/google/ads/googleads/v11/enums/custom_audience_status.proto new file mode 100644 index 000000000..81ab15d66 --- /dev/null +++ b/google/ads/googleads/v11/enums/custom_audience_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing custom audience status. + +// The status of custom audience. +message CustomAudienceStatusEnum { + // Enum containing possible custom audience statuses. + enum CustomAudienceStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Enabled status - custom audience is enabled and can be targeted. + ENABLED = 2; + + // Removed status - custom audience is removed and cannot be used for + // targeting. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/custom_audience_type.proto b/google/ads/googleads/v11/enums/custom_audience_type.proto new file mode 100644 index 000000000..333653799 --- /dev/null +++ b/google/ads/googleads/v11/enums/custom_audience_type.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing custom audience type. + +// The types of custom audience. +message CustomAudienceTypeEnum { + // Enum containing possible custom audience types. + enum CustomAudienceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Google Ads will auto-select the best interpretation at serving + // time. + AUTO = 2; + + // Matches users by their interests. + INTEREST = 3; + + // Matches users by topics they are researching or products they are + // considering for purchase. + PURCHASE_INTENT = 4; + + // Matches users by what they searched on Google Search. + SEARCH = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/custom_conversion_goal_status.proto b/google/ads/googleads/v11/enums/custom_conversion_goal_status.proto new file mode 100644 index 000000000..3ee66b991 --- /dev/null +++ b/google/ads/googleads/v11/enums/custom_conversion_goal_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomConversionGoalStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing custom conversion goal status. + +// Container for enum describing possible statuses of a custom conversion goal. +message CustomConversionGoalStatusEnum { + // The possible statuses of a custom conversion goal. + enum CustomConversionGoalStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The custom conversion goal is enabled. + ENABLED = 2; + + // The custom conversion goal is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/custom_interest_member_type.proto b/google/ads/googleads/v11/enums/custom_interest_member_type.proto new file mode 100644 index 000000000..fe35e9a30 --- /dev/null +++ b/google/ads/googleads/v11/enums/custom_interest_member_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestMemberTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing custom interest member type. + +// The types of custom interest member, either KEYWORD or URL. +message CustomInterestMemberTypeEnum { + // Enum containing possible custom interest member types. + enum CustomInterestMemberType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Custom interest member type KEYWORD. + KEYWORD = 2; + + // Custom interest member type URL. + URL = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/custom_interest_status.proto b/google/ads/googleads/v11/enums/custom_interest_status.proto new file mode 100644 index 000000000..06836b715 --- /dev/null +++ b/google/ads/googleads/v11/enums/custom_interest_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing custom interest status. + +// The status of custom interest. +message CustomInterestStatusEnum { + // Enum containing possible custom interest types. + enum CustomInterestStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Enabled status - custom interest is enabled and can be targeted to. + ENABLED = 2; + + // Removed status - custom interest is removed and cannot be used for + // targeting. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/custom_interest_type.proto b/google/ads/googleads/v11/enums/custom_interest_type.proto new file mode 100644 index 000000000..ca26d37bb --- /dev/null +++ b/google/ads/googleads/v11/enums/custom_interest_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing custom interest type. + +// The types of custom interest. +message CustomInterestTypeEnum { + // Enum containing possible custom interest types. + enum CustomInterestType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Allows brand advertisers to define custom affinity audience lists. + CUSTOM_AFFINITY = 2; + + // Allows advertisers to define custom intent audience lists. + CUSTOM_INTENT = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/custom_placeholder_field.proto b/google/ads/googleads/v11/enums/custom_placeholder_field.proto new file mode 100644 index 000000000..388aa0416 --- /dev/null +++ b/google/ads/googleads/v11/enums/custom_placeholder_field.proto @@ -0,0 +1,127 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Custom placeholder fields. + +// Values for Custom placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message CustomPlaceholderFieldEnum { + // Possible values for Custom placeholder fields. + enum CustomPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Combination ID and ID2 must be unique per + // offer. + ID = 2; + + // Data Type: STRING. Combination ID and ID2 must be unique per offer. + ID2 = 3; + + // Data Type: STRING. Required. Main headline with product name to be shown + // in dynamic ad. + ITEM_TITLE = 4; + + // Data Type: STRING. Optional text to be shown in the image ad. + ITEM_SUBTITLE = 5; + + // Data Type: STRING. Optional description of the product to be shown in the + // ad. + ITEM_DESCRIPTION = 6; + + // Data Type: STRING. Full address of your offer or service, including + // postal code. This will be used to identify the closest product to the + // user when there are multiple offers in the feed that are relevant to the + // user. + ITEM_ADDRESS = 7; + + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + PRICE = 8; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 9; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + SALE_PRICE = 10; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 11; + + // Data Type: URL. Image to be displayed in the ad. Highly recommended for + // image ads. + IMAGE_URL = 12; + + // Data Type: STRING. Used as a recommendation engine signal to serve items + // in the same category. + ITEM_CATEGORY = 13; + + // Data Type: URL_LIST. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific product for ads that have multiple + // products. + FINAL_URLS = 14; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 15; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 16; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 17; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 18; + + // Data Type: STRING_LIST. List of recommended IDs to show together with + // this item. + SIMILAR_IDS = 19; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 20; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 21; + } + + +} diff --git a/google/ads/googleads/v11/enums/customer_match_upload_key_type.proto b/google/ads/googleads/v11/enums/customer_match_upload_key_type.proto new file mode 100644 index 000000000..200cdb6b5 --- /dev/null +++ b/google/ads/googleads/v11/enums/customer_match_upload_key_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomerMatchUploadKeyTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Indicates what type of data are the user list's members matched from. +message CustomerMatchUploadKeyTypeEnum { + // Enum describing possible customer match upload key types. + enum CustomerMatchUploadKeyType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Members are matched from customer info such as email address, phone + // number or physical address. + CONTACT_INFO = 2; + + // Members are matched from a user id generated and assigned by the + // advertiser. + CRM_ID = 3; + + // Members are matched from mobile advertising ids. + MOBILE_ADVERTISING_ID = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/customer_pay_per_conversion_eligibility_failure_reason.proto b/google/ads/googleads/v11/enums/customer_pay_per_conversion_eligibility_failure_reason.proto new file mode 100644 index 000000000..fe1c023ae --- /dev/null +++ b/google/ads/googleads/v11/enums/customer_pay_per_conversion_eligibility_failure_reason.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomerPayPerConversionEligibilityFailureReasonProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing pay per conversion eligibility failure reasons. + +// Container for enum describing reasons why a customer is not eligible to use +// PaymentMode.CONVERSIONS. +message CustomerPayPerConversionEligibilityFailureReasonEnum { + // Enum describing possible reasons a customer is not eligible to use + // PaymentMode.CONVERSIONS. + enum CustomerPayPerConversionEligibilityFailureReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Customer does not have enough conversions. + NOT_ENOUGH_CONVERSIONS = 2; + + // Customer's conversion lag is too high. + CONVERSION_LAG_TOO_HIGH = 3; + + // Customer uses shared budgets. + HAS_CAMPAIGN_WITH_SHARED_BUDGET = 4; + + // Customer has conversions with ConversionActionType.UPLOAD_CLICKS. + HAS_UPLOAD_CLICKS_CONVERSION = 5; + + // Customer's average daily spend is too high. + AVERAGE_DAILY_SPEND_TOO_HIGH = 6; + + // Customer's eligibility has not yet been calculated by the Google Ads + // backend. Check back soon. + ANALYSIS_NOT_COMPLETE = 7; + + // Customer is not eligible due to other reasons. + OTHER = 8; + } + + +} diff --git a/google/ads/googleads/v11/enums/customer_status.proto b/google/ads/googleads/v11/enums/customer_status.proto new file mode 100644 index 000000000..794bde010 --- /dev/null +++ b/google/ads/googleads/v11/enums/customer_status.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomerStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing possible statuses of a customer. +message CustomerStatusEnum { + // Possible statuses of a customer. + enum CustomerStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Indicates an active account able to serve ads. + ENABLED = 2; + + // Indicates a canceled account unable to serve ads. + // Can be reactivated by an admin user. + CANCELED = 3; + + // Indicates a suspended account unable to serve ads. + // May only be activated by Google support. + SUSPENDED = 4; + + // Indicates a closed account unable to serve ads. + // Test account will also have CLOSED status. + // Status is permanent and may not be reopened. + CLOSED = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/customizer_attribute_status.proto b/google/ads/googleads/v11/enums/customizer_attribute_status.proto new file mode 100644 index 000000000..6af9ad006 --- /dev/null +++ b/google/ads/googleads/v11/enums/customizer_attribute_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing customizer attribute status. + +// Container for enum describing possible statuses of a customizer attribute. +message CustomizerAttributeStatusEnum { + // The possible statuses of a customizer attribute. + enum CustomizerAttributeStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The customizer attribute is enabled. + ENABLED = 2; + + // The customizer attribute is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/customizer_attribute_type.proto b/google/ads/googleads/v11/enums/customizer_attribute_type.proto new file mode 100644 index 000000000..07f8cbe37 --- /dev/null +++ b/google/ads/googleads/v11/enums/customizer_attribute_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing customizer attribute type. + +// Container for enum describing possible types of a customizer attribute. +message CustomizerAttributeTypeEnum { + // The possible types of a customizer attribute. + enum CustomizerAttributeType { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // Text customizer. + TEXT = 2; + + // Number customizer. + NUMBER = 3; + + // Price customizer consisting of a number and a currency. + PRICE = 4; + + // Percentage customizer consisting of a number and a '%'. + PERCENT = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/customizer_value_status.proto b/google/ads/googleads/v11/enums/customizer_value_status.proto new file mode 100644 index 000000000..6ac491502 --- /dev/null +++ b/google/ads/googleads/v11/enums/customizer_value_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerValueStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing customizer value status. + +// Container for enum describing possible statuses of a customizer value. +message CustomizerValueStatusEnum { + // The possible statuses of a customizer value. + enum CustomizerValueStatus { + // The status has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The customizer value is enabled. + ENABLED = 2; + + // The customizer value is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/data_driven_model_status.proto b/google/ads/googleads/v11/enums/data_driven_model_status.proto new file mode 100644 index 000000000..1d890441e --- /dev/null +++ b/google/ads/googleads/v11/enums/data_driven_model_status.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DataDrivenModelStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing data-driven model status. + +// Container for enum indicating data driven model status. +message DataDrivenModelStatusEnum { + // Enumerates data driven model statuses. + enum DataDrivenModelStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The data driven model is available. + AVAILABLE = 2; + + // The data driven model is stale. It hasn't been updated for at least 7 + // days. It is still being used, but will become expired if it does not get + // updated for 30 days. + STALE = 3; + + // The data driven model expired. It hasn't been updated for at least 30 + // days and cannot be used. Most commonly this is because there hasn't been + // the required number of events in a recent 30-day period. + EXPIRED = 4; + + // The data driven model has never been generated. Most commonly this is + // because there has never been the required number of events in any 30-day + // period. + NEVER_GENERATED = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/day_of_week.proto b/google/ads/googleads/v11/enums/day_of_week.proto new file mode 100644 index 000000000..ff278d864 --- /dev/null +++ b/google/ads/googleads/v11/enums/day_of_week.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DayOfWeekProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing days of week. + +// Container for enumeration of days of the week, for example, "Monday". +message DayOfWeekEnum { + // Enumerates days of the week, for example, "Monday". + enum DayOfWeek { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Monday. + MONDAY = 2; + + // Tuesday. + TUESDAY = 3; + + // Wednesday. + WEDNESDAY = 4; + + // Thursday. + THURSDAY = 5; + + // Friday. + FRIDAY = 6; + + // Saturday. + SATURDAY = 7; + + // Sunday. + SUNDAY = 8; + } + + +} diff --git a/google/ads/googleads/v11/enums/device.proto b/google/ads/googleads/v11/enums/device.proto new file mode 100644 index 000000000..63c0c7377 --- /dev/null +++ b/google/ads/googleads/v11/enums/device.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DeviceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing devices. + +// Container for enumeration of Google Ads devices available for targeting. +message DeviceEnum { + // Enumerates Google Ads devices available for targeting. + enum Device { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Mobile devices with full browsers. + MOBILE = 2; + + // Tablets with full browsers. + TABLET = 3; + + // Computers. + DESKTOP = 4; + + // Smart TVs and game consoles. + CONNECTED_TV = 6; + + // Other device types. + OTHER = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/display_ad_format_setting.proto b/google/ads/googleads/v11/enums/display_ad_format_setting.proto new file mode 100644 index 000000000..4a67bbca4 --- /dev/null +++ b/google/ads/googleads/v11/enums/display_ad_format_setting.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DisplayAdFormatSettingProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing display ad format settings. + +// Container for display ad format settings. +message DisplayAdFormatSettingEnum { + // Enumerates display ad format settings. + enum DisplayAdFormatSetting { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Text, image and native formats. + ALL_FORMATS = 2; + + // Text and image formats. + NON_NATIVE = 3; + + // Native format, for example, the format rendering is controlled by the + // publisher and not by Google. + NATIVE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/display_upload_product_type.proto b/google/ads/googleads/v11/enums/display_upload_product_type.proto new file mode 100644 index 000000000..d0107048a --- /dev/null +++ b/google/ads/googleads/v11/enums/display_upload_product_type.proto @@ -0,0 +1,95 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DisplayUploadProductTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing display upload product types. + +// Container for display upload product types. Product types that have the word +// "DYNAMIC" in them must be associated with a campaign that has a dynamic +// remarketing feed. See https://support.google.com/google-ads/answer/6053288 +// for more info about dynamic remarketing. Other product types are regarded +// as "static" and do not have this requirement. +message DisplayUploadProductTypeEnum { + // Enumerates display upload product types. + enum DisplayUploadProductType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // HTML5 upload ad. This product type requires the upload_media_bundle + // field in DisplayUploadAdInfo to be set. + HTML5_UPLOAD_AD = 2; + + // Dynamic HTML5 education ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in an education campaign. + DYNAMIC_HTML5_EDUCATION_AD = 3; + + // Dynamic HTML5 flight ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a flight campaign. + DYNAMIC_HTML5_FLIGHT_AD = 4; + + // Dynamic HTML5 hotel and rental ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a hotel campaign. + DYNAMIC_HTML5_HOTEL_RENTAL_AD = 5; + + // Dynamic HTML5 job ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a job campaign. + DYNAMIC_HTML5_JOB_AD = 6; + + // Dynamic HTML5 local ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a local campaign. + DYNAMIC_HTML5_LOCAL_AD = 7; + + // Dynamic HTML5 real estate ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a real estate campaign. + DYNAMIC_HTML5_REAL_ESTATE_AD = 8; + + // Dynamic HTML5 custom ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a custom campaign. + DYNAMIC_HTML5_CUSTOM_AD = 9; + + // Dynamic HTML5 travel ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a travel campaign. + DYNAMIC_HTML5_TRAVEL_AD = 10; + + // Dynamic HTML5 hotel ad. This product type requires the + // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be + // used in a hotel campaign. + DYNAMIC_HTML5_HOTEL_AD = 11; + } + + +} diff --git a/google/ads/googleads/v11/enums/distance_bucket.proto b/google/ads/googleads/v11/enums/distance_bucket.proto new file mode 100644 index 000000000..6631afee5 --- /dev/null +++ b/google/ads/googleads/v11/enums/distance_bucket.proto @@ -0,0 +1,125 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DistanceBucketProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing distance buckets. + +// Container for distance buckets of a user's distance from an advertiser's +// location extension. +message DistanceBucketEnum { + // The distance bucket for a user's distance from an advertiser's location + // extension. + enum DistanceBucket { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // User was within 700m of the location. + WITHIN_700M = 2; + + // User was within 1KM of the location. + WITHIN_1KM = 3; + + // User was within 5KM of the location. + WITHIN_5KM = 4; + + // User was within 10KM of the location. + WITHIN_10KM = 5; + + // User was within 15KM of the location. + WITHIN_15KM = 6; + + // User was within 20KM of the location. + WITHIN_20KM = 7; + + // User was within 25KM of the location. + WITHIN_25KM = 8; + + // User was within 30KM of the location. + WITHIN_30KM = 9; + + // User was within 35KM of the location. + WITHIN_35KM = 10; + + // User was within 40KM of the location. + WITHIN_40KM = 11; + + // User was within 45KM of the location. + WITHIN_45KM = 12; + + // User was within 50KM of the location. + WITHIN_50KM = 13; + + // User was within 55KM of the location. + WITHIN_55KM = 14; + + // User was within 60KM of the location. + WITHIN_60KM = 15; + + // User was within 65KM of the location. + WITHIN_65KM = 16; + + // User was beyond 65KM of the location. + BEYOND_65KM = 17; + + // User was within 0.7 miles of the location. + WITHIN_0_7MILES = 18; + + // User was within 1 mile of the location. + WITHIN_1MILE = 19; + + // User was within 5 miles of the location. + WITHIN_5MILES = 20; + + // User was within 10 miles of the location. + WITHIN_10MILES = 21; + + // User was within 15 miles of the location. + WITHIN_15MILES = 22; + + // User was within 20 miles of the location. + WITHIN_20MILES = 23; + + // User was within 25 miles of the location. + WITHIN_25MILES = 24; + + // User was within 30 miles of the location. + WITHIN_30MILES = 25; + + // User was within 35 miles of the location. + WITHIN_35MILES = 26; + + // User was within 40 miles of the location. + WITHIN_40MILES = 27; + + // User was beyond 40 miles of the location. + BEYOND_40MILES = 28; + } + + +} diff --git a/google/ads/googleads/v11/enums/dsa_page_feed_criterion_field.proto b/google/ads/googleads/v11/enums/dsa_page_feed_criterion_field.proto new file mode 100644 index 000000000..1c53318f9 --- /dev/null +++ b/google/ads/googleads/v11/enums/dsa_page_feed_criterion_field.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DsaPageFeedCriterionFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Dynamic Search Ad Page Feed criterion fields. + +// Values for Dynamic Search Ad Page Feed criterion fields. +message DsaPageFeedCriterionFieldEnum { + // Possible values for Dynamic Search Ad Page Feed criterion fields. + enum DsaPageFeedCriterionField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: URL or URL_LIST. URL of the web page you want to target. + PAGE_URL = 2; + + // Data Type: STRING_LIST. The labels that will help you target ads within + // your page feed. + LABEL = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/education_placeholder_field.proto b/google/ads/googleads/v11/enums/education_placeholder_field.proto new file mode 100644 index 000000000..2f82ece4b --- /dev/null +++ b/google/ads/googleads/v11/enums/education_placeholder_field.proto @@ -0,0 +1,109 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "EducationPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Education placeholder fields. + +// Values for Education placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message EducationPlaceholderFieldEnum { + // Possible values for Education placeholder fields. + enum EducationPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Combination of PROGRAM ID and LOCATION ID + // must be unique per offer. + PROGRAM_ID = 2; + + // Data Type: STRING. Combination of PROGRAM ID and LOCATION ID must be + // unique per offer. + LOCATION_ID = 3; + + // Data Type: STRING. Required. Main headline with program name to be shown + // in dynamic ad. + PROGRAM_NAME = 4; + + // Data Type: STRING. Area of study that can be shown in dynamic ad. + AREA_OF_STUDY = 5; + + // Data Type: STRING. Description of program that can be shown in dynamic + // ad. + PROGRAM_DESCRIPTION = 6; + + // Data Type: STRING. Name of school that can be shown in dynamic ad. + SCHOOL_NAME = 7; + + // Data Type: STRING. Complete school address, including postal code. + ADDRESS = 8; + + // Data Type: URL. Image to be displayed in ads. + THUMBNAIL_IMAGE_URL = 9; + + // Data Type: URL. Alternative hosted file of image to be used in the ad. + ALTERNATIVE_THUMBNAIL_IMAGE_URL = 10; + + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (for example, the individual + // URL of a specific program and its location). + FINAL_URLS = 11; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 12; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 13; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 14; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 15; + + // Data Type: STRING_LIST. List of recommended program IDs to show together + // with this item. + SIMILAR_PROGRAM_IDS = 16; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 17; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 18; + } + + +} diff --git a/google/ads/googleads/v11/enums/experiment_metric.proto b/google/ads/googleads/v11/enums/experiment_metric.proto new file mode 100644 index 000000000..53b4074f1 --- /dev/null +++ b/google/ads/googleads/v11/enums/experiment_metric.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentMetricProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing experiment metric. + +// Container for enum describing the type of experiment metric. +message ExperimentMetricEnum { + // The type of experiment metric. + enum ExperimentMetric { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The goal of the experiment is clicks. + CLICKS = 2; + + // The goal of the experiment is impressions. + IMPRESSIONS = 3; + + // The goal of the experiment is cost. + COST = 4; + + // The goal of the experiment is conversion rate. + CONVERSIONS_PER_INTERACTION_RATE = 5; + + // The goal of the experiment is cost per conversion. + COST_PER_CONVERSION = 6; + + // The goal of the experiment is conversion value per cost. + CONVERSIONS_VALUE_PER_COST = 7; + + // The goal of the experiment is avg cpc. + AVERAGE_CPC = 8; + + // The goal of the experiment is ctr. + CTR = 9; + + // The goal of the experiment is incremental conversions. + INCREMENTAL_CONVERSIONS = 10; + + // The goal of the experiment is completed video views. + COMPLETED_VIDEO_VIEWS = 11; + + // The goal of the experiment is custom algorithms. + CUSTOM_ALGORITHMS = 12; + + // The goal of the experiment is conversions. + CONVERSIONS = 13; + + // The goal of the experiment is conversion value. + CONVERSION_VALUE = 14; + } + + +} diff --git a/google/ads/googleads/v11/enums/experiment_metric_direction.proto b/google/ads/googleads/v11/enums/experiment_metric_direction.proto new file mode 100644 index 000000000..df25ad0b8 --- /dev/null +++ b/google/ads/googleads/v11/enums/experiment_metric_direction.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentMetricDirectionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing experiment metric direction. + +// Container for enum describing the type of experiment metric direction. +message ExperimentMetricDirectionEnum { + // The type of experiment metric direction. + enum ExperimentMetricDirection { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The goal of the experiment is to not change the metric. + NO_CHANGE = 2; + + // The goal of the experiment is to increate the metric. + INCREASE = 3; + + // The goal of the experiment is to decrease the metric. + DECREASE = 4; + + // The goal of the experiment is to either not change or increase the + // metric. + NO_CHANGE_OR_INCREASE = 5; + + // The goal of the experiment is to either not change or decrease the + // metric. + NO_CHANGE_OR_DECREASE = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/experiment_status.proto b/google/ads/googleads/v11/enums/experiment_status.proto new file mode 100644 index 000000000..6a84a881b --- /dev/null +++ b/google/ads/googleads/v11/enums/experiment_status.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing experiment status. + +// Container for enum describing the experiment status. +message ExperimentStatusEnum { + // The status of the experiment. + enum ExperimentStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The experiment is enabled. + ENABLED = 2; + + // The experiment has been removed. + REMOVED = 3; + + // The experiment has been halted. + // This status can be set from ENABLED status through API. + HALTED = 4; + + // The experiment will be promoted out of experimental status. + PROMOTED = 5; + + // Initial status of the experiment. + SETUP = 6; + + // The experiment's campaigns are pending materialization. + // This status can be set from SETUP status through API. + INITIATED = 7; + + // The experiment has been graduated. + GRADUATED = 8; + } + + +} diff --git a/google/ads/googleads/v11/enums/experiment_type.proto b/google/ads/googleads/v11/enums/experiment_type.proto new file mode 100644 index 000000000..5d9199554 --- /dev/null +++ b/google/ads/googleads/v11/enums/experiment_type.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing experiment type. + +// Container for enum describing the type of experiment. +message ExperimentTypeEnum { + // The type of the experiment. + enum ExperimentType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // This is a DISPLAY_AND_VIDEO_360 experiment. + DISPLAY_AND_VIDEO_360 = 2; + + // This is an ad variation experiment. + AD_VARIATION = 3; + + // A custom experiment consisting of Video campaigns. + YOUTUBE_CUSTOM = 5; + + // A custom experiment consisting of display campaigns. + DISPLAY_CUSTOM = 6; + + // A custom experiment consisting of search campaigns. + SEARCH_CUSTOM = 7; + + // An experiment that compares bidding strategies for display campaigns. + DISPLAY_AUTOMATED_BIDDING_STRATEGY = 8; + + // An experiment that compares bidding strategies for search campaigns." + SEARCH_AUTOMATED_BIDDING_STRATEGY = 9; + + // An experiment that compares bidding strategies for shopping campaigns. + SHOPPING_AUTOMATED_BIDDING_STRATEGY = 10; + + // DEPRECATED. A smart matching experiment with search campaigns. + SMART_MATCHING = 11; + + // A custom experiment consisting of hotel campaigns. + HOTEL_CUSTOM = 12; + } + + +} diff --git a/google/ads/googleads/v11/enums/extension_setting_device.proto b/google/ads/googleads/v11/enums/extension_setting_device.proto new file mode 100644 index 000000000..6969b51c8 --- /dev/null +++ b/google/ads/googleads/v11/enums/extension_setting_device.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionSettingDeviceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing extension setting device type. + +// Container for enum describing extension setting device types. +message ExtensionSettingDeviceEnum { + // Possible device types for an extension setting. + enum ExtensionSettingDevice { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Mobile. The extensions in the extension setting will only serve on + // mobile devices. + MOBILE = 2; + + // Desktop. The extensions in the extension setting will only serve on + // desktop devices. + DESKTOP = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/extension_type.proto b/google/ads/googleads/v11/enums/extension_type.proto new file mode 100644 index 000000000..7b958b316 --- /dev/null +++ b/google/ads/googleads/v11/enums/extension_type.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing extension type. + +// Container for enum describing possible data types for an extension in an +// extension setting. +message ExtensionTypeEnum { + // Possible data types for an extension in an extension setting. + enum ExtensionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // None. + NONE = 2; + + // App. + APP = 3; + + // Call. + CALL = 4; + + // Callout. + CALLOUT = 5; + + // Message. + MESSAGE = 6; + + // Price. + PRICE = 7; + + // Promotion. + PROMOTION = 8; + + // Sitelink. + SITELINK = 10; + + // Structured snippet. + STRUCTURED_SNIPPET = 11; + + // Location. + LOCATION = 12; + + // Affiliate location. + AFFILIATE_LOCATION = 13; + + // Hotel callout + HOTEL_CALLOUT = 15; + + // Image. + IMAGE = 16; + } + + +} diff --git a/google/ads/googleads/v11/enums/external_conversion_source.proto b/google/ads/googleads/v11/enums/external_conversion_source.proto new file mode 100644 index 000000000..fb905a191 --- /dev/null +++ b/google/ads/googleads/v11/enums/external_conversion_source.proto @@ -0,0 +1,153 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ExternalConversionSourceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing the external conversion source that is +// associated with a ConversionAction. +message ExternalConversionSourceEnum { + // The external conversion source that is associated with a ConversionAction. + enum ExternalConversionSource { + // Not specified. + UNSPECIFIED = 0; + + // Represents value unknown in this version. + UNKNOWN = 1; + + // Conversion that occurs when a user navigates to a particular webpage + // after viewing an ad; Displayed in Google Ads UI as 'Website'. + WEBPAGE = 2; + + // Conversion that comes from linked Google Analytics goal or transaction; + // Displayed in Google Ads UI as 'Analytics'. + ANALYTICS = 3; + + // Website conversion that is uploaded through ConversionUploadService; + // Displayed in Google Ads UI as 'Import from clicks'. + UPLOAD = 4; + + // Conversion that occurs when a user clicks on a call extension directly on + // an ad; Displayed in Google Ads UI as 'Calls from ads'. + AD_CALL_METRICS = 5; + + // Conversion that occurs when a user calls a dynamically-generated phone + // number (by installed javascript) from an advertiser's website after + // clicking on an ad; Displayed in Google Ads UI as 'Calls from website'. + WEBSITE_CALL_METRICS = 6; + + // Conversion that occurs when a user visits an advertiser's retail store + // after clicking on a Google ad; + // Displayed in Google Ads UI as 'Store visits'. + STORE_VISITS = 7; + + // Conversion that occurs when a user takes an in-app action such as a + // purchase in an Android app; + // Displayed in Google Ads UI as 'Android in-app action'. + ANDROID_IN_APP = 8; + + // Conversion that occurs when a user takes an in-app action such as a + // purchase in an iOS app; + // Displayed in Google Ads UI as 'iOS in-app action'. + IOS_IN_APP = 9; + + // Conversion that occurs when a user opens an iOS app for the first time; + // Displayed in Google Ads UI as 'iOS app install (first open)'. + IOS_FIRST_OPEN = 10; + + // Legacy app conversions that do not have an AppPlatform provided; + // Displayed in Google Ads UI as 'Mobile app'. + APP_UNSPECIFIED = 11; + + // Conversion that occurs when a user opens an Android app for the first + // time; Displayed in Google Ads UI as 'Android app install (first open)'. + ANDROID_FIRST_OPEN = 12; + + // Call conversion that is uploaded through ConversionUploadService; + // Displayed in Google Ads UI as 'Import from calls'. + UPLOAD_CALLS = 13; + + // Conversion that comes from a linked Firebase event; + // Displayed in Google Ads UI as 'Firebase'. + FIREBASE = 14; + + // Conversion that occurs when a user clicks on a mobile phone number; + // Displayed in Google Ads UI as 'Phone number clicks'. + CLICK_TO_CALL = 15; + + // Conversion that comes from Salesforce; + // Displayed in Google Ads UI as 'Salesforce.com'. + SALESFORCE = 16; + + // Conversion that comes from in-store purchases recorded by CRM; + // Displayed in Google Ads UI as 'Store sales (data partner)'. + STORE_SALES_CRM = 17; + + // Conversion that comes from in-store purchases from payment network; + // Displayed in Google Ads UI as 'Store sales (payment network)'. + STORE_SALES_PAYMENT_NETWORK = 18; + + // Codeless Google Play conversion; + // Displayed in Google Ads UI as 'Google Play'. + GOOGLE_PLAY = 19; + + // Conversion that comes from a linked third-party app analytics event; + // Displayed in Google Ads UI as 'Third-party app analytics'. + THIRD_PARTY_APP_ANALYTICS = 20; + + // Conversion that is controlled by Google Attribution. + GOOGLE_ATTRIBUTION = 21; + + // Store Sales conversion based on first-party or third-party merchant data + // uploads. Displayed in Google Ads UI as 'Store sales (direct upload)'. + STORE_SALES_DIRECT_UPLOAD = 23; + + // Store Sales conversion based on first-party or third-party merchant + // data uploads and/or from in-store purchases using cards from payment + // networks. Displayed in Google Ads UI as 'Store sales'. + STORE_SALES = 24; + + // Conversions imported from Search Ads 360 Floodlight data. + SEARCH_ADS_360 = 25; + + // Conversions that track local actions from Google's products and services + // after interacting with an ad. + GOOGLE_HOSTED = 27; + + // Conversions reported by Floodlight tags. + FLOODLIGHT = 29; + + // Conversions that come from Google Analytics specifically for Search Ads + // 360. Displayed in Google Ads UI as Analytics (SA360). + ANALYTICS_SEARCH_ADS_360 = 31; + + // Conversion that comes from a linked Firebase event for Search Ads 360. + FIREBASE_SEARCH_ADS_360 = 33; + + // Conversion that is reported by Floodlight for DV360. + DISPLAY_AND_VIDEO_360_FLOODLIGHT = 34; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_attribute_type.proto b/google/ads/googleads/v11/enums/feed_attribute_type.proto new file mode 100644 index 000000000..bd09313f6 --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_attribute_type.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedAttributeTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed attribute type. + +// Container for enum describing possible data types for a feed attribute. +message FeedAttributeTypeEnum { + // Possible data types for a feed attribute. + enum FeedAttributeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Int64. + INT64 = 2; + + // Double. + DOUBLE = 3; + + // String. + STRING = 4; + + // Boolean. + BOOLEAN = 5; + + // Url. + URL = 6; + + // Datetime. + DATE_TIME = 7; + + // Int64 list. + INT64_LIST = 8; + + // Double (8 bytes) list. + DOUBLE_LIST = 9; + + // String list. + STRING_LIST = 10; + + // Boolean list. + BOOLEAN_LIST = 11; + + // Url list. + URL_LIST = 12; + + // Datetime list. + DATE_TIME_LIST = 13; + + // Price. + PRICE = 14; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_quality_approval_status.proto b/google/ads/googleads/v11/enums/feed_item_quality_approval_status.proto new file mode 100644 index 000000000..321e5ffd1 --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_quality_approval_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemQualityApprovalStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed item quality evaluation approval statuses. + +// Container for enum describing possible quality evaluation approval statuses +// of a feed item. +message FeedItemQualityApprovalStatusEnum { + // The possible quality evaluation approval statuses of a feed item. + enum FeedItemQualityApprovalStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Meets all quality expectations. + APPROVED = 2; + + // Does not meet some quality expectations. The specific reason is found in + // the quality_disapproval_reasons field. + DISAPPROVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_quality_disapproval_reason.proto b/google/ads/googleads/v11/enums/feed_item_quality_disapproval_reason.proto new file mode 100644 index 000000000..429afe5bc --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_quality_disapproval_reason.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemQualityDisapprovalReasonProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed item quality disapproval reasons. + +// Container for enum describing possible quality evaluation disapproval reasons +// of a feed item. +message FeedItemQualityDisapprovalReasonEnum { + // The possible quality evaluation disapproval reasons of a feed item. + enum FeedItemQualityDisapprovalReason { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Price contains repetitive headers. + PRICE_TABLE_REPETITIVE_HEADERS = 2; + + // Price contains repetitive description. + PRICE_TABLE_REPETITIVE_DESCRIPTION = 3; + + // Price contains inconsistent items. + PRICE_TABLE_INCONSISTENT_ROWS = 4; + + // Price contains qualifiers in description. + PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS = 5; + + // Price contains an unsupported language. + PRICE_UNSUPPORTED_LANGUAGE = 6; + + // Price item header is not relevant to the price type. + PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH = 7; + + // Price item header has promotional text. + PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT = 8; + + // Price item description is not relevant to the item header. + PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT = 9; + + // Price item description contains promotional text. + PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT = 10; + + // Price item header and description are repetitive. + PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE = 11; + + // Price item is in a foreign language, nonsense, or can't be rated. + PRICE_TABLE_ROW_UNRATEABLE = 12; + + // Price item price is invalid or inaccurate. + PRICE_TABLE_ROW_PRICE_INVALID = 13; + + // Price item URL is invalid or irrelevant. + PRICE_TABLE_ROW_URL_INVALID = 14; + + // Price item header or description has price. + PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE = 15; + + // Structured snippet values do not match the header. + STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED = 16; + + // Structured snippet values are repeated. + STRUCTURED_SNIPPETS_REPEATED_VALUES = 17; + + // Structured snippet values violate editorial guidelines like punctuation. + STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES = 18; + + // Structured snippet contain promotional text. + STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT = 19; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_set_status.proto b/google/ads/googleads/v11/enums/feed_item_set_status.proto new file mode 100644 index 000000000..967c779cb --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_set_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed item set status. + +// Container for enum describing possible statuses of a feed item set. +message FeedItemSetStatusEnum { + // Possible statuses of a feed item set. + enum FeedItemSetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item set is enabled. + ENABLED = 2; + + // Feed item set has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_set_string_filter_type.proto b/google/ads/googleads/v11/enums/feed_item_set_string_filter_type.proto new file mode 100644 index 000000000..e1ea99018 --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_set_string_filter_type.proto @@ -0,0 +1,43 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetStringFilterTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// The type of string matching to be used for a dynamic FeedItemSet filter. +message FeedItemSetStringFilterTypeEnum { + // describe the possible types for a FeedItemSetStringFilter. + enum FeedItemSetStringFilterType { + // Not specified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The dynamic set filter will use exact string matching. + EXACT = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_status.proto b/google/ads/googleads/v11/enums/feed_item_status.proto new file mode 100644 index 000000000..2548dd989 --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed item status. + +// Container for enum describing possible statuses of a feed item. +message FeedItemStatusEnum { + // Possible statuses of a feed item. + enum FeedItemStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item is enabled. + ENABLED = 2; + + // Feed item has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_target_device.proto b/google/ads/googleads/v11/enums/feed_item_target_device.proto new file mode 100644 index 000000000..2038318bd --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_target_device.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetDeviceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed item target device type. + +// Container for enum describing possible data types for a feed item target +// device. +message FeedItemTargetDeviceEnum { + // Possible data types for a feed item target device. + enum FeedItemTargetDevice { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile. + MOBILE = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_target_status.proto b/google/ads/googleads/v11/enums/feed_item_target_status.proto new file mode 100644 index 000000000..2d4b34aab --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_target_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed item target status. + +// Container for enum describing possible statuses of a feed item target. +message FeedItemTargetStatusEnum { + // Possible statuses of a feed item target. + enum FeedItemTargetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item target is enabled. + ENABLED = 2; + + // Feed item target has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_target_type.proto b/google/ads/googleads/v11/enums/feed_item_target_type.proto new file mode 100644 index 000000000..d643477b3 --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_target_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed item target type status. + +// Container for enum describing possible types of a feed item target. +message FeedItemTargetTypeEnum { + // Possible type of a feed item target. + enum FeedItemTargetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item targets a campaign. + CAMPAIGN = 2; + + // Feed item targets an ad group. + AD_GROUP = 3; + + // Feed item targets a criterion. + CRITERION = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_item_validation_status.proto b/google/ads/googleads/v11/enums/feed_item_validation_status.proto new file mode 100644 index 000000000..399fbbb5d --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_item_validation_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemValidationStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed item validation statuses. + +// Container for enum describing possible validation statuses of a feed item. +message FeedItemValidationStatusEnum { + // The possible validation statuses of a feed item. + enum FeedItemValidationStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Validation pending. + PENDING = 2; + + // An error was found. + INVALID = 3; + + // Feed item is semantically well-formed. + VALID = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_link_status.proto b/google/ads/googleads/v11/enums/feed_link_status.proto new file mode 100644 index 000000000..715f957af --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_link_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedLinkStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing status of a feed link. + +// Container for an enum describing possible statuses of a feed link. +message FeedLinkStatusEnum { + // Possible statuses of a feed link. + enum FeedLinkStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed link is enabled. + ENABLED = 2; + + // Feed link has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_mapping_criterion_type.proto b/google/ads/googleads/v11/enums/feed_mapping_criterion_type.proto new file mode 100644 index 000000000..61b2d027c --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_mapping_criterion_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingCriterionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing criterion types for feed mappings. + +// Container for enum describing possible criterion types for a feed mapping. +message FeedMappingCriterionTypeEnum { + // Possible placeholder types for a feed mapping. + enum FeedMappingCriterionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Allows campaign targeting at locations within a location feed. + LOCATION_EXTENSION_TARGETING = 4; + + // Allows url targeting for your dynamic search ads within a page feed. + DSA_PAGE_FEED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_mapping_status.proto b/google/ads/googleads/v11/enums/feed_mapping_status.proto new file mode 100644 index 000000000..04366d6a2 --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_mapping_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed mapping status. + +// Container for enum describing possible statuses of a feed mapping. +message FeedMappingStatusEnum { + // Possible statuses of a feed mapping. + enum FeedMappingStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed mapping is enabled. + ENABLED = 2; + + // Feed mapping has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/feed_origin.proto b/google/ads/googleads/v11/enums/feed_origin.proto new file mode 100644 index 000000000..0b4f1867c --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_origin.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedOriginProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed origin. + +// Container for enum describing possible values for a feed origin. +message FeedOriginEnum { + // Possible values for a feed origin. + enum FeedOrigin { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The FeedAttributes for this Feed are managed by the + // user. Users can add FeedAttributes to this Feed. + USER = 2; + + // The FeedAttributes for an 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/google/ads/googleads/v11/enums/feed_status.proto b/google/ads/googleads/v11/enums/feed_status.proto new file mode 100644 index 000000000..ad576fb35 --- /dev/null +++ b/google/ads/googleads/v11/enums/feed_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FeedStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed status. + +// Container for enum describing possible statuses of a feed. +message FeedStatusEnum { + // Possible statuses of a feed. + enum FeedStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed is enabled. + ENABLED = 2; + + // Feed has been removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/flight_placeholder_field.proto b/google/ads/googleads/v11/enums/flight_placeholder_field.proto new file mode 100644 index 000000000..7465811c8 --- /dev/null +++ b/google/ads/googleads/v11/enums/flight_placeholder_field.proto @@ -0,0 +1,116 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FlightsPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Flight placeholder fields. + +// Values for Flight placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message FlightPlaceholderFieldEnum { + // Possible values for Flight placeholder fields. + enum FlightPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Destination id. Example: PAR, LON. + // For feed items that only have destination id, destination id must be a + // unique key. For feed items that have both destination id and origin id, + // then the combination must be a unique key. + DESTINATION_ID = 2; + + // Data Type: STRING. Origin id. Example: PAR, LON. + // Optional. Combination of destination id and origin id must be unique per + // offer. + ORIGIN_ID = 3; + + // Data Type: STRING. Required. Main headline with product name to be shown + // in dynamic ad. + FLIGHT_DESCRIPTION = 4; + + // Data Type: STRING. Shorter names are recommended. + ORIGIN_NAME = 5; + + // Data Type: STRING. Shorter names are recommended. + DESTINATION_NAME = 6; + + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + FLIGHT_PRICE = 7; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 8; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + FLIGHT_SALE_PRICE = 9; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 10; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 11; + + // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific flight for ads that show multiple + // flights. + FINAL_URLS = 12; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 13; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 14; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 15; + + // Data Type: STRING_LIST. List of recommended destination IDs to show + // together with this item. + SIMILAR_DESTINATION_IDS = 16; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 17; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 18; + } + + +} diff --git a/google/ads/googleads/v11/enums/frequency_cap_event_type.proto b/google/ads/googleads/v11/enums/frequency_cap_event_type.proto new file mode 100644 index 000000000..b6f0e177b --- /dev/null +++ b/google/ads/googleads/v11/enums/frequency_cap_event_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapEventTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing frequency caps. + +// Container for enum describing the type of event that the cap applies to. +message FrequencyCapEventTypeEnum { + // The type of event that the cap applies to (for example, impression). + enum FrequencyCapEventType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The cap applies on ad impressions. + IMPRESSION = 2; + + // The cap applies on video ad views. + VIDEO_VIEW = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/frequency_cap_level.proto b/google/ads/googleads/v11/enums/frequency_cap_level.proto new file mode 100644 index 000000000..9a4bdf764 --- /dev/null +++ b/google/ads/googleads/v11/enums/frequency_cap_level.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapLevelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing frequency caps. + +// Container for enum describing the level on which the cap is to be applied. +message FrequencyCapLevelEnum { + // The level on which the cap is to be applied (e.g ad group ad, ad group). + // Cap is applied to all the resources of this level. + enum FrequencyCapLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The cap is applied at the ad group ad level. + AD_GROUP_AD = 2; + + // The cap is applied at the ad group level. + AD_GROUP = 3; + + // The cap is applied at the campaign level. + CAMPAIGN = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/frequency_cap_time_unit.proto b/google/ads/googleads/v11/enums/frequency_cap_time_unit.proto new file mode 100644 index 000000000..c29bc7800 --- /dev/null +++ b/google/ads/googleads/v11/enums/frequency_cap_time_unit.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapTimeUnitProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing frequency caps. + +// Container for enum describing the unit of time the cap is defined at. +message FrequencyCapTimeUnitEnum { + // Unit of time the cap is defined at (for example, day, week). + enum FrequencyCapTimeUnit { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The cap would define limit per one day. + DAY = 2; + + // The cap would define limit per one week. + WEEK = 3; + + // The cap would define limit per one month. + MONTH = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/gender_type.proto b/google/ads/googleads/v11/enums/gender_type.proto new file mode 100644 index 000000000..a430125c1 --- /dev/null +++ b/google/ads/googleads/v11/enums/gender_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GenderTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing gender types. + +// Container for enum describing the type of demographic genders. +message GenderTypeEnum { + // The type of demographic genders (for example, female). + enum GenderType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Male. + MALE = 10; + + // Female. + FEMALE = 11; + + // Undetermined gender. + UNDETERMINED = 20; + } + + +} diff --git a/google/ads/googleads/v11/enums/geo_target_constant_status.proto b/google/ads/googleads/v11/enums/geo_target_constant_status.proto new file mode 100644 index 000000000..3e22c3696 --- /dev/null +++ b/google/ads/googleads/v11/enums/geo_target_constant_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetConstantStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing geo target constant statuses. + +// Container for describing the status of a geo target constant. +message GeoTargetConstantStatusEnum { + // The possible statuses of a geo target constant. + enum GeoTargetConstantStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The geo target constant is valid. + ENABLED = 2; + + // The geo target constant is obsolete and will be removed. + REMOVAL_PLANNED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/geo_targeting_restriction.proto b/google/ads/googleads/v11/enums/geo_targeting_restriction.proto new file mode 100644 index 000000000..2f8f3f976 --- /dev/null +++ b/google/ads/googleads/v11/enums/geo_targeting_restriction.proto @@ -0,0 +1,47 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetingRestrictionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing GeoTargetingRestriction. + +// Message describing feed item geo targeting restriction. +message GeoTargetingRestrictionEnum { + // A restriction used to determine if the request context's + // geo should be matched. + enum GeoTargetingRestriction { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Indicates that request context should match the physical location of + // the user. + LOCATION_OF_PRESENCE = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/geo_targeting_type.proto b/google/ads/googleads/v11/enums/geo_targeting_type.proto new file mode 100644 index 000000000..53474ba2a --- /dev/null +++ b/google/ads/googleads/v11/enums/geo_targeting_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetingTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing geo targeting types. + +// Container for enum describing possible geo targeting types. +message GeoTargetingTypeEnum { + // The possible geo targeting types. + enum GeoTargetingType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Location the user is interested in while making the query. + AREA_OF_INTEREST = 2; + + // Location of the user issuing the query. + LOCATION_OF_PRESENCE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/goal_config_level.proto b/google/ads/googleads/v11/enums/goal_config_level.proto new file mode 100644 index 000000000..eb5e49c0c --- /dev/null +++ b/google/ads/googleads/v11/enums/goal_config_level.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GoalConfigLevelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing goal config level. + +// Container for enum describing possible goal config levels. +message GoalConfigLevelEnum { + // The possible goal config levels. Campaigns automatically inherit the + // effective conversion account's customer goals unless they have been + // configured with their own set of campaign goals. + enum GoalConfigLevel { + // The goal config level has not been specified. + UNSPECIFIED = 0; + + // The goal config level is not known in this version. + UNKNOWN = 1; + + // The goal config is defined at the customer level. + CUSTOMER = 2; + + // The goal config is defined at the campaign level. + CAMPAIGN = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/google_ads_field_category.proto b/google/ads/googleads/v11/enums/google_ads_field_category.proto new file mode 100644 index 000000000..d21be3969 --- /dev/null +++ b/google/ads/googleads/v11/enums/google_ads_field_category.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsFieldCategoryProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing GoogleAdsField categories. + +// Container for enum that determines if the described artifact is a resource +// or a field, and if it is a field, when it segments search queries. +message GoogleAdsFieldCategoryEnum { + // The category of the artifact. + enum GoogleAdsFieldCategory { + // Unspecified + UNSPECIFIED = 0; + + // Unknown + UNKNOWN = 1; + + // The described artifact is a resource. + RESOURCE = 2; + + // The described artifact is a field and is an attribute of a resource. + // Including a resource attribute field in a query may segment the query if + // the resource to which it is attributed segments the resource found in + // the FROM clause. + ATTRIBUTE = 3; + + // The described artifact is a field and always segments search queries. + SEGMENT = 5; + + // The described artifact is a field and is a metric. It never segments + // search queries. + METRIC = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/google_ads_field_data_type.proto b/google/ads/googleads/v11/enums/google_ads_field_data_type.proto new file mode 100644 index 000000000..f142b4ffd --- /dev/null +++ b/google/ads/googleads/v11/enums/google_ads_field_data_type.proto @@ -0,0 +1,100 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsFieldDataTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing GoogleAdsField data types. + +// Container holding the various data types. +message GoogleAdsFieldDataTypeEnum { + // These are the various types a GoogleAdsService artifact may take on. + enum GoogleAdsFieldDataType { + // Unspecified + UNSPECIFIED = 0; + + // Unknown + UNKNOWN = 1; + + // Maps to google.protobuf.BoolValue + // + // Applicable operators: =, != + BOOLEAN = 2; + + // Maps to google.protobuf.StringValue. It can be compared using the set of + // operators specific to dates however. + // + // Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN + DATE = 3; + + // Maps to google.protobuf.DoubleValue + // + // Applicable operators: =, !=, <, >, IN, NOT IN + DOUBLE = 4; + + // Maps to an enum. It's specific definition can be found at type_url. + // + // Applicable operators: =, !=, IN, NOT IN + ENUM = 5; + + // Maps to google.protobuf.FloatValue + // + // Applicable operators: =, !=, <, >, IN, NOT IN + FLOAT = 6; + + // Maps to google.protobuf.Int32Value + // + // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + INT32 = 7; + + // Maps to google.protobuf.Int64Value + // + // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + INT64 = 8; + + // Maps to a protocol buffer message type. The data type's details can be + // found in type_url. + // + // No operators work with MESSAGE fields. + MESSAGE = 9; + + // Maps to google.protobuf.StringValue. Represents the resource name + // (unique id) of a resource or one of its foreign keys. + // + // No operators work with RESOURCE_NAME fields. + RESOURCE_NAME = 10; + + // Maps to google.protobuf.StringValue. + // + // Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN + STRING = 11; + + // Maps to google.protobuf.UInt64Value + // + // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + UINT64 = 12; + } + + +} diff --git a/google/ads/googleads/v11/enums/google_voice_call_status.proto b/google/ads/googleads/v11/enums/google_voice_call_status.proto new file mode 100644 index 000000000..bd724c563 --- /dev/null +++ b/google/ads/googleads/v11/enums/google_voice_call_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "GoogleVoiceCallStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing google voice call status. + +// Container for enum describing possible statuses of a google voice call. +message GoogleVoiceCallStatusEnum { + // Possible statuses of a google voice call. + enum GoogleVoiceCallStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The call was missed. + MISSED = 2; + + // The call was received. + RECEIVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/hotel_date_selection_type.proto b/google/ads/googleads/v11/enums/hotel_date_selection_type.proto new file mode 100644 index 000000000..606f525bf --- /dev/null +++ b/google/ads/googleads/v11/enums/hotel_date_selection_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelDateSelectionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing hotel date selection types. + +// Container for enum describing possible hotel date selection types +message HotelDateSelectionTypeEnum { + // Enum describing possible hotel date selection types. + enum HotelDateSelectionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Dates selected by default. + DEFAULT_SELECTION = 50; + + // Dates selected by the user. + USER_SELECTED = 51; + } + + +} diff --git a/google/ads/googleads/v11/enums/hotel_placeholder_field.proto b/google/ads/googleads/v11/enums/hotel_placeholder_field.proto new file mode 100644 index 000000000..b8d53f6c8 --- /dev/null +++ b/google/ads/googleads/v11/enums/hotel_placeholder_field.proto @@ -0,0 +1,122 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelsPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Hotel placeholder fields. + +// Values for Hotel placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message HotelPlaceholderFieldEnum { + // Possible values for Hotel placeholder fields. + enum HotelPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Unique ID. + PROPERTY_ID = 2; + + // Data Type: STRING. Required. Main headline with property name to be shown + // in dynamic ad. + PROPERTY_NAME = 3; + + // Data Type: STRING. Name of destination to be shown in dynamic ad. + DESTINATION_NAME = 4; + + // Data Type: STRING. Description of destination to be shown in dynamic ad. + DESCRIPTION = 5; + + // Data Type: STRING. Complete property address, including postal code. + ADDRESS = 6; + + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + PRICE = 7; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 8; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + SALE_PRICE = 9; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 10; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 11; + + // Data Type: STRING. Category of property used to group like items together + // for recommendation engine. + CATEGORY = 12; + + // Data Type: INT64. Star rating (1 to 5) used to group like items + // together for recommendation engine. + STAR_RATING = 13; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 14; + + // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific flight for ads that show multiple + // flights. + FINAL_URLS = 15; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 16; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 17; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 18; + + // Data Type: STRING_LIST. List of recommended property IDs to show together + // with this item. + SIMILAR_PROPERTY_IDS = 19; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 20; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 21; + } + + +} diff --git a/google/ads/googleads/v11/enums/hotel_price_bucket.proto b/google/ads/googleads/v11/enums/hotel_price_bucket.proto new file mode 100644 index 000000000..35de1a26a --- /dev/null +++ b/google/ads/googleads/v11/enums/hotel_price_bucket.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelPriceBucketProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing hotel price buckets. + +// Container for enum describing hotel price bucket for a hotel itinerary. +message HotelPriceBucketEnum { + // Enum describing possible hotel price buckets. + enum HotelPriceBucket { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Uniquely lowest price. Partner has the lowest price, and no other + // partners are within a small variance of that price. + LOWEST_UNIQUE = 2; + + // Tied for lowest price. Partner is within a small variance of the lowest + // price. + LOWEST_TIED = 3; + + // Not lowest price. Partner is not within a small variance of the lowest + // price. + NOT_LOWEST = 4; + + // Partner was the only one shown. + ONLY_PARTNER_SHOWN = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/hotel_rate_type.proto b/google/ads/googleads/v11/enums/hotel_rate_type.proto new file mode 100644 index 000000000..a73d9c225 --- /dev/null +++ b/google/ads/googleads/v11/enums/hotel_rate_type.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelRateTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing hotel rate types. + +// Container for enum describing possible hotel rate types. +message HotelRateTypeEnum { + // Enum describing possible hotel rate types. + enum HotelRateType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Rate type information is unavailable. + UNAVAILABLE = 2; + + // Rates available to everyone. + PUBLIC_RATE = 3; + + // A membership program rate is available and satisfies basic requirements + // like having a public rate available. UI treatment will strikethrough the + // public rate and indicate that a discount is available to the user. For + // more on Qualified Rates, visit + // https://developers.google.com/hotels/hotel-ads/dev-guide/qualified-rates + QUALIFIED_RATE = 4; + + // Rates available to users that satisfy some eligibility criteria, for + // example, all signed-in users, 20% of mobile users, all mobile users in + // Canada, etc. + PRIVATE_RATE = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/hotel_reconciliation_status.proto b/google/ads/googleads/v11/enums/hotel_reconciliation_status.proto new file mode 100644 index 000000000..8158baa7b --- /dev/null +++ b/google/ads/googleads/v11/enums/hotel_reconciliation_status.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "HotelReconciliationStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing hotel reconciliation row status. + +// Container for HotelReconciliationStatus. +message HotelReconciliationStatusEnum { + // Status of the hotel booking reconciliation. + enum HotelReconciliationStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Bookings are for a future date, or a stay is underway but the check-out + // date hasn't passed. An active reservation can't be reconciled. + RESERVATION_ENABLED = 2; + + // Check-out has already taken place, or the booked dates have passed + // without cancellation. Bookings that are not reconciled within 45 days of + // the check-out date are billed based on the original booking price. + RECONCILIATION_NEEDED = 3; + + // These bookings have been reconciled. Reconciled bookings are billed 45 + // days after the check-out date. + RECONCILED = 4; + + // This booking was marked as canceled. Canceled stays with a value greater + // than zero (due to minimum stay rules or cancellation fees) are billed 45 + // days after the check-out date. + CANCELED = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/image_placeholder_field.proto b/google/ads/googleads/v11/enums/image_placeholder_field.proto new file mode 100644 index 000000000..b42b4f1fb --- /dev/null +++ b/google/ads/googleads/v11/enums/image_placeholder_field.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ImagePlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Advertiser Provided Image placeholder fields. + +// Values for Advertiser Provided Image placeholder fields. +message ImagePlaceholderFieldEnum { + // Possible values for Advertiser Provided Image placeholder fields. + enum ImagePlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: INT64. The asset ID of the image. + ASSET_ID = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/income_range_type.proto b/google/ads/googleads/v11/enums/income_range_type.proto new file mode 100644 index 000000000..ad400885b --- /dev/null +++ b/google/ads/googleads/v11/enums/income_range_type.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "IncomeRangeTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing income range types. + +// Container for enum describing the type of demographic income ranges. +message IncomeRangeTypeEnum { + // The type of demographic income ranges (for example, between 0% to 50%). + enum IncomeRangeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // 0%-50%. + INCOME_RANGE_0_50 = 510001; + + // 50% to 60%. + INCOME_RANGE_50_60 = 510002; + + // 60% to 70%. + INCOME_RANGE_60_70 = 510003; + + // 70% to 80%. + INCOME_RANGE_70_80 = 510004; + + // 80% to 90%. + INCOME_RANGE_80_90 = 510005; + + // Greater than 90%. + INCOME_RANGE_90_UP = 510006; + + // Undetermined income range. + INCOME_RANGE_UNDETERMINED = 510000; + } + + +} diff --git a/google/ads/googleads/v11/enums/interaction_event_type.proto b/google/ads/googleads/v11/enums/interaction_event_type.proto new file mode 100644 index 000000000..92b60d571 --- /dev/null +++ b/google/ads/googleads/v11/enums/interaction_event_type.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "InteractionEventTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing types of payable and free interactions. + +// Container for enum describing types of payable and free interactions. +message InteractionEventTypeEnum { + // Enum describing possible types of payable and free interactions. + enum InteractionEventType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Click to site. In most cases, this interaction navigates to an external + // location, usually the advertiser's landing page. This is also the default + // InteractionEventType for click events. + CLICK = 2; + + // The user's expressed intent to engage with the ad in-place. + ENGAGEMENT = 3; + + // User viewed a video ad. + VIDEO_VIEW = 4; + + // The default InteractionEventType for ad conversion events. + // This is used when an ad conversion row does NOT indicate + // that the free interactions (for example, the ad conversions) + // should be 'promoted' and reported as part of the core metrics. + // These are simply other (ad) conversions. + NONE = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/interaction_type.proto b/google/ads/googleads/v11/enums/interaction_type.proto new file mode 100644 index 000000000..5e2179f60 --- /dev/null +++ b/google/ads/googleads/v11/enums/interaction_type.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "InteractionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing interaction types. + +// Container for enum describing possible interaction types. +message InteractionTypeEnum { + // Enum describing possible interaction types. + enum InteractionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Calls. + CALLS = 8000; + } + + +} diff --git a/google/ads/googleads/v11/enums/invoice_type.proto b/google/ads/googleads/v11/enums/invoice_type.proto new file mode 100644 index 000000000..86b23e884 --- /dev/null +++ b/google/ads/googleads/v11/enums/invoice_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "InvoiceTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing invoice types. + +// Container for enum describing the type of invoices. +message InvoiceTypeEnum { + // The possible type of invoices. + enum InvoiceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // An invoice with a negative amount. The account receives a credit. + CREDIT_MEMO = 2; + + // An invoice with a positive amount. The account owes a balance. + INVOICE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/job_placeholder_field.proto b/google/ads/googleads/v11/enums/job_placeholder_field.proto new file mode 100644 index 000000000..e5d43b608 --- /dev/null +++ b/google/ads/googleads/v11/enums/job_placeholder_field.proto @@ -0,0 +1,113 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "JobsPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Job placeholder fields. + +// Values for Job placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message JobPlaceholderFieldEnum { + // Possible values for Job placeholder fields. + enum JobPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. If only JOB_ID is specified, then it must be + // unique. If both JOB_ID and LOCATION_ID are specified, then the + // pair must be unique. + // ID) pair must be unique. + JOB_ID = 2; + + // Data Type: STRING. Combination of JOB_ID and LOCATION_ID must be unique + // per offer. + LOCATION_ID = 3; + + // Data Type: STRING. Required. Main headline with job title to be shown in + // dynamic ad. + TITLE = 4; + + // Data Type: STRING. Job subtitle to be shown in dynamic ad. + SUBTITLE = 5; + + // Data Type: STRING. Description of job to be shown in dynamic ad. + DESCRIPTION = 6; + + // Data Type: URL. Image to be displayed in the ad. Highly recommended for + // image ads. + IMAGE_URL = 7; + + // Data Type: STRING. Category of property used to group like items together + // for recommendation engine. + CATEGORY = 8; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 9; + + // Data Type: STRING. Complete property address, including postal code. + ADDRESS = 10; + + // Data Type: STRING. Salary or salary range of job to be shown in dynamic + // ad. + SALARY = 11; + + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (for example, the individual + // URL of a specific job and its location). + FINAL_URLS = 12; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 14; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 15; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 16; + + // Data Type: STRING_LIST. List of recommended job IDs to show together with + // this item. + SIMILAR_JOB_IDS = 17; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 18; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 19; + } + + +} diff --git a/google/ads/googleads/v11/enums/keyword_match_type.proto b/google/ads/googleads/v11/enums/keyword_match_type.proto new file mode 100644 index 000000000..776cdeada --- /dev/null +++ b/google/ads/googleads/v11/enums/keyword_match_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordMatchTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Keyword match types. + +// Message describing Keyword match types. +message KeywordMatchTypeEnum { + // Possible Keyword match types. + enum KeywordMatchType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Exact match. + EXACT = 2; + + // Phrase match. + PHRASE = 3; + + // Broad match. + BROAD = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/keyword_plan_aggregate_metric_type.proto b/google/ads/googleads/v11/enums/keyword_plan_aggregate_metric_type.proto new file mode 100644 index 000000000..96b1b07a5 --- /dev/null +++ b/google/ads/googleads/v11/enums/keyword_plan_aggregate_metric_type.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAggregateMetricTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing keyword plan aggregate metric types. + +// The enumeration of keyword plan aggregate metric types. +message KeywordPlanAggregateMetricTypeEnum { + // Aggregate fields. + enum KeywordPlanAggregateMetricType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The device breakdown of aggregate search volume. + DEVICE = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/keyword_plan_competition_level.proto b/google/ads/googleads/v11/enums/keyword_plan_competition_level.proto new file mode 100644 index 000000000..ce8d2074b --- /dev/null +++ b/google/ads/googleads/v11/enums/keyword_plan_competition_level.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCompetitionLevelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Keyword Planner competition levels. + +// Container for enumeration of keyword competition levels. The competition +// level indicates how competitive ad placement is for a keyword and +// is determined by the number of advertisers bidding on that keyword relative +// to all keywords across Google. The competition level can depend on the +// location and Search Network targeting options you've selected. +message KeywordPlanCompetitionLevelEnum { + // Competition level of a keyword. + enum KeywordPlanCompetitionLevel { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Low competition. The Competition Index range for this is [0, 33]. + LOW = 2; + + // Medium competition. The Competition Index range for this is [34, 66]. + MEDIUM = 3; + + // High competition. The Competition Index range for this is [67, 100]. + HIGH = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/keyword_plan_concept_group_type.proto b/google/ads/googleads/v11/enums/keyword_plan_concept_group_type.proto new file mode 100644 index 000000000..39d1c7f1b --- /dev/null +++ b/google/ads/googleads/v11/enums/keyword_plan_concept_group_type.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanConceptGroupTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Keyword Planner Concept Group types. + +// Container for enumeration of keyword plan concept group types. +message KeywordPlanConceptGroupTypeEnum { + // Enumerates keyword plan concept group types. + enum KeywordPlanConceptGroupType { + // The concept group classification different from brand/non-brand. + // This is a catch all bucket for all classifications that are none of the + // below. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The concept group classification is based on BRAND. + BRAND = 2; + + // The concept group classification based on BRAND, that didn't fit well + // with the BRAND classifications. These are generally outliers and can have + // very few keywords in this type of classification. + OTHER_BRANDS = 3; + + // These concept group classification is not based on BRAND. This is + // returned for generic keywords that don't have a brand association. + NON_BRAND = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/keyword_plan_forecast_interval.proto b/google/ads/googleads/v11/enums/keyword_plan_forecast_interval.proto new file mode 100644 index 000000000..3dddaf888 --- /dev/null +++ b/google/ads/googleads/v11/enums/keyword_plan_forecast_interval.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanForecastIntervalProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing keyword plan forecast intervals. + +// Container for enumeration of forecast intervals. +message KeywordPlanForecastIntervalEnum { + // Forecast intervals. + enum KeywordPlanForecastInterval { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The next week date range for keyword plan. The next week is based + // on the default locale of the user's account and is mostly SUN-SAT or + // MON-SUN. + // This can be different from next-7 days. + NEXT_WEEK = 3; + + // The next month date range for keyword plan. + NEXT_MONTH = 4; + + // The next quarter date range for keyword plan. + NEXT_QUARTER = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/keyword_plan_keyword_annotation.proto b/google/ads/googleads/v11/enums/keyword_plan_keyword_annotation.proto new file mode 100644 index 000000000..d1dd8457f --- /dev/null +++ b/google/ads/googleads/v11/enums/keyword_plan_keyword_annotation.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanKeywordAnnotationProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Keyword Planner Keyword annotation types. + +// Container for enumeration of keyword plan keyword annotations. +message KeywordPlanKeywordAnnotationEnum { + // Enumerates keyword plan annotations that can be requested. + enum KeywordPlanKeywordAnnotation { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Return the keyword concept and concept group data. + KEYWORD_CONCEPT = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/keyword_plan_network.proto b/google/ads/googleads/v11/enums/keyword_plan_network.proto new file mode 100644 index 000000000..14d9b381f --- /dev/null +++ b/google/ads/googleads/v11/enums/keyword_plan_network.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanNetworkProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Keyword Planner forecastable network types. + +// Container for enumeration of keyword plan forecastable network types. +message KeywordPlanNetworkEnum { + // Enumerates keyword plan forecastable network types. + enum KeywordPlanNetwork { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Google Search. + GOOGLE_SEARCH = 2; + + // Google Search + Search partners. + GOOGLE_SEARCH_AND_PARTNERS = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/label_status.proto b/google/ads/googleads/v11/enums/label_status.proto new file mode 100644 index 000000000..8d1377804 --- /dev/null +++ b/google/ads/googleads/v11/enums/label_status.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LabelStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing possible status of a label. +message LabelStatusEnum { + // Possible statuses of a label. + enum LabelStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Label is enabled. + ENABLED = 2; + + // Label is removed. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/lead_form_call_to_action_type.proto b/google/ads/googleads/v11/enums/lead_form_call_to_action_type.proto new file mode 100644 index 000000000..e6f85fd05 --- /dev/null +++ b/google/ads/googleads/v11/enums/lead_form_call_to_action_type.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormCallToActionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Describes the type of call-to-action phrases in a lead form. +message LeadFormCallToActionTypeEnum { + // Enum describing the type of call-to-action phrases in a lead form. + enum LeadFormCallToActionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Learn more. + LEARN_MORE = 2; + + // Get quote. + GET_QUOTE = 3; + + // Apply now. + APPLY_NOW = 4; + + // Sign Up. + SIGN_UP = 5; + + // Contact us. + CONTACT_US = 6; + + // Subscribe. + SUBSCRIBE = 7; + + // Download. + DOWNLOAD = 8; + + // Book now. + BOOK_NOW = 9; + + // Get offer. + GET_OFFER = 10; + + // Register. + REGISTER = 11; + + // Get info. + GET_INFO = 12; + + // Request a demo. + REQUEST_DEMO = 13; + + // Join now. + JOIN_NOW = 14; + + // Get started. + GET_STARTED = 15; + } + + +} diff --git a/google/ads/googleads/v11/enums/lead_form_desired_intent.proto b/google/ads/googleads/v11/enums/lead_form_desired_intent.proto new file mode 100644 index 000000000..e21f41833 --- /dev/null +++ b/google/ads/googleads/v11/enums/lead_form_desired_intent.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormDesiredIntentProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Describes the chosen level of intent of generated leads. +message LeadFormDesiredIntentEnum { + // Enum describing the chosen level of intent of generated leads. + enum LeadFormDesiredIntent { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Deliver more leads at a potentially lower quality. + LOW_INTENT = 2; + + // Deliver leads that are more qualified. + HIGH_INTENT = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/lead_form_field_user_input_type.proto b/google/ads/googleads/v11/enums/lead_form_field_user_input_type.proto new file mode 100644 index 000000000..f5a47af8b --- /dev/null +++ b/google/ads/googleads/v11/enums/lead_form_field_user_input_type.proto @@ -0,0 +1,487 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormFieldUserInputTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Describes the input type of a lead form field. +message LeadFormFieldUserInputTypeEnum { + // Enum describing the input type of a lead form field. + enum LeadFormFieldUserInputType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The user will be asked to fill in their given and family name. This field + // cannot be set at the same time as GIVEN_NAME or FAMILY_NAME. + FULL_NAME = 2; + + // The user will be asked to fill in their email address. + EMAIL = 3; + + // The user will be asked to fill in their phone number. + PHONE_NUMBER = 4; + + // The user will be asked to fill in their zip code. + POSTAL_CODE = 5; + + // The user will be asked to fill in their street address. + STREET_ADDRESS = 8; + + // The user will be asked to fill in their city. + CITY = 9; + + // The user will be asked to fill in their region part of the address (for + // example, state for US, province for Canada). + REGION = 10; + + // The user will be asked to fill in their country. + COUNTRY = 11; + + // The user will be asked to fill in their work email address. + WORK_EMAIL = 12; + + // The user will be asked to fill in their company name. + COMPANY_NAME = 13; + + // The user will be asked to fill in their work phone. + WORK_PHONE = 14; + + // The user will be asked to fill in their job title. + JOB_TITLE = 15; + + // The user will be asked to fill in their CPF for Brazil users. + GOVERNMENT_ISSUED_ID_CPF_BR = 16; + + // The user will be asked to fill in their DNI for Argentina users. + GOVERNMENT_ISSUED_ID_DNI_AR = 17; + + // The user will be asked to fill in their DNI for Peru users. + GOVERNMENT_ISSUED_ID_DNI_PE = 18; + + // The user will be asked to fill in their RUT for Chile users. + GOVERNMENT_ISSUED_ID_RUT_CL = 19; + + // The user will be asked to fill in their CC for Colombia users. + GOVERNMENT_ISSUED_ID_CC_CO = 20; + + // The user will be asked to fill in their CI for Ecuador users. + GOVERNMENT_ISSUED_ID_CI_EC = 21; + + // The user will be asked to fill in their RFC for Mexico users. + GOVERNMENT_ISSUED_ID_RFC_MX = 22; + + // The user will be asked to fill in their first name. This + // field can not be set at the same time as FULL_NAME. + FIRST_NAME = 23; + + // The user will be asked to fill in their last name. This + // field can not be set at the same time as FULL_NAME. + LAST_NAME = 24; + + // Question: "Which model are you interested in?" + // Category: "Auto" + VEHICLE_MODEL = 1001; + + // Question: "Which type of vehicle are you interested in?" + // Category: "Auto" + VEHICLE_TYPE = 1002; + + // Question: "What is your preferred dealership?" + // Category: "Auto" + PREFERRED_DEALERSHIP = 1003; + + // Question: "When do you plan on purchasing a vehicle?" + // Category: "Auto" + VEHICLE_PURCHASE_TIMELINE = 1004; + + // Question: "Do you own a vehicle?" + // Category: "Auto" + VEHICLE_OWNERSHIP = 1005; + + // Question: "What vehicle ownership option are you interested in?" + // Category: "Auto" + VEHICLE_PAYMENT_TYPE = 1009; + + // Question: "What type of vehicle condition are you interested in?" + // Category: "Auto" + VEHICLE_CONDITION = 1010; + + // Question: "What size is your company?" + // Category: "Business" + COMPANY_SIZE = 1006; + + // Question: "What is your annual sales volume?" + // Category: "Business" + ANNUAL_SALES = 1007; + + // Question: "How many years have you been in business?" + // Category: "Business" + YEARS_IN_BUSINESS = 1008; + + // Question: "What is your job department?" + // Category: "Business" + JOB_DEPARTMENT = 1011; + + // Question: "What is your job role?" + // Category: "Business" + JOB_ROLE = 1012; + + // Question: "Are you over 18 years of age?" + // Category: "Demographics" + OVER_18_AGE = 1078; + + // Question: "Are you over 19 years of age?" + // Category: "Demographics" + OVER_19_AGE = 1079; + + // Question: "Are you over 20 years of age?" + // Category: "Demographics" + OVER_20_AGE = 1080; + + // Question: "Are you over 21 years of age?" + // Category: "Demographics" + OVER_21_AGE = 1081; + + // Question: "Are you over 22 years of age?" + // Category: "Demographics" + OVER_22_AGE = 1082; + + // Question: "Are you over 23 years of age?" + // Category: "Demographics" + OVER_23_AGE = 1083; + + // Question: "Are you over 24 years of age?" + // Category: "Demographics" + OVER_24_AGE = 1084; + + // Question: "Are you over 25 years of age?" + // Category: "Demographics" + OVER_25_AGE = 1085; + + // Question: "Are you over 26 years of age?" + // Category: "Demographics" + OVER_26_AGE = 1086; + + // Question: "Are you over 27 years of age?" + // Category: "Demographics" + OVER_27_AGE = 1087; + + // Question: "Are you over 28 years of age?" + // Category: "Demographics" + OVER_28_AGE = 1088; + + // Question: "Are you over 29 years of age?" + // Category: "Demographics" + OVER_29_AGE = 1089; + + // Question: "Are you over 30 years of age?" + // Category: "Demographics" + OVER_30_AGE = 1090; + + // Question: "Are you over 31 years of age?" + // Category: "Demographics" + OVER_31_AGE = 1091; + + // Question: "Are you over 32 years of age?" + // Category: "Demographics" + OVER_32_AGE = 1092; + + // Question: "Are you over 33 years of age?" + // Category: "Demographics" + OVER_33_AGE = 1093; + + // Question: "Are you over 34 years of age?" + // Category: "Demographics" + OVER_34_AGE = 1094; + + // Question: "Are you over 35 years of age?" + // Category: "Demographics" + OVER_35_AGE = 1095; + + // Question: "Are you over 36 years of age?" + // Category: "Demographics" + OVER_36_AGE = 1096; + + // Question: "Are you over 37 years of age?" + // Category: "Demographics" + OVER_37_AGE = 1097; + + // Question: "Are you over 38 years of age?" + // Category: "Demographics" + OVER_38_AGE = 1098; + + // Question: "Are you over 39 years of age?" + // Category: "Demographics" + OVER_39_AGE = 1099; + + // Question: "Are you over 40 years of age?" + // Category: "Demographics" + OVER_40_AGE = 1100; + + // Question: "Are you over 41 years of age?" + // Category: "Demographics" + OVER_41_AGE = 1101; + + // Question: "Are you over 42 years of age?" + // Category: "Demographics" + OVER_42_AGE = 1102; + + // Question: "Are you over 43 years of age?" + // Category: "Demographics" + OVER_43_AGE = 1103; + + // Question: "Are you over 44 years of age?" + // Category: "Demographics" + OVER_44_AGE = 1104; + + // Question: "Are you over 45 years of age?" + // Category: "Demographics" + OVER_45_AGE = 1105; + + // Question: "Are you over 46 years of age?" + // Category: "Demographics" + OVER_46_AGE = 1106; + + // Question: "Are you over 47 years of age?" + // Category: "Demographics" + OVER_47_AGE = 1107; + + // Question: "Are you over 48 years of age?" + // Category: "Demographics" + OVER_48_AGE = 1108; + + // Question: "Are you over 49 years of age?" + // Category: "Demographics" + OVER_49_AGE = 1109; + + // Question: "Are you over 50 years of age?" + // Category: "Demographics" + OVER_50_AGE = 1110; + + // Question: "Are you over 51 years of age?" + // Category: "Demographics" + OVER_51_AGE = 1111; + + // Question: "Are you over 52 years of age?" + // Category: "Demographics" + OVER_52_AGE = 1112; + + // Question: "Are you over 53 years of age?" + // Category: "Demographics" + OVER_53_AGE = 1113; + + // Question: "Are you over 54 years of age?" + // Category: "Demographics" + OVER_54_AGE = 1114; + + // Question: "Are you over 55 years of age?" + // Category: "Demographics" + OVER_55_AGE = 1115; + + // Question: "Are you over 56 years of age?" + // Category: "Demographics" + OVER_56_AGE = 1116; + + // Question: "Are you over 57 years of age?" + // Category: "Demographics" + OVER_57_AGE = 1117; + + // Question: "Are you over 58 years of age?" + // Category: "Demographics" + OVER_58_AGE = 1118; + + // Question: "Are you over 59 years of age?" + // Category: "Demographics" + OVER_59_AGE = 1119; + + // Question: "Are you over 60 years of age?" + // Category: "Demographics" + OVER_60_AGE = 1120; + + // Question: "Are you over 61 years of age?" + // Category: "Demographics" + OVER_61_AGE = 1121; + + // Question: "Are you over 62 years of age?" + // Category: "Demographics" + OVER_62_AGE = 1122; + + // Question: "Are you over 63 years of age?" + // Category: "Demographics" + OVER_63_AGE = 1123; + + // Question: "Are you over 64 years of age?" + // Category: "Demographics" + OVER_64_AGE = 1124; + + // Question: "Are you over 65 years of age?" + // Category: "Demographics" + OVER_65_AGE = 1125; + + // Question: "Which program are you interested in?" + // Category: "Education" + EDUCATION_PROGRAM = 1013; + + // Question: "Which course are you interested in?" + // Category: "Education" + EDUCATION_COURSE = 1014; + + // Question: "Which product are you interested in?" + // Category: "General" + PRODUCT = 1016; + + // Question: "Which service are you interested in?" + // Category: "General" + SERVICE = 1017; + + // Question: "Which offer are you interested in?" + // Category: "General" + OFFER = 1018; + + // Question: "Which category are you interested in?" + // Category: "General" + CATEGORY = 1019; + + // Question: "What is your preferred method of contact?" + // Category: "General" + PREFERRED_CONTACT_METHOD = 1020; + + // Question: "What is your preferred location?" + // Category: "General" + PREFERRED_LOCATION = 1021; + + // Question: "What is the best time to contact you?" + // Category: "General" + PREFERRED_CONTACT_TIME = 1022; + + // Question: "When are you looking to make a purchase?" + // Category: "General" + PURCHASE_TIMELINE = 1023; + + // Question: "How many years of work experience do you have?" + // Category: "Jobs" + YEARS_OF_EXPERIENCE = 1048; + + // Question: "What industry do you work in?" + // Category: "Jobs" + JOB_INDUSTRY = 1049; + + // Question: "What is your highest level of education?" + // Category: "Jobs" + LEVEL_OF_EDUCATION = 1050; + + // Question: "What type of property are you looking for?" + // Category: "Real Estate" + PROPERTY_TYPE = 1024; + + // Question: "What do you need a realtor's help with?" + // Category: "Real Estate" + REALTOR_HELP_GOAL = 1025; + + // Question: "What neighborhood are you interested in?" + // Category: "Real Estate" + PROPERTY_COMMUNITY = 1026; + + // Question: "What price range are you looking for?" + // Category: "Real Estate" + PRICE_RANGE = 1027; + + // Question: "How many bedrooms are you looking for?" + // Category: "Real Estate" + NUMBER_OF_BEDROOMS = 1028; + + // Question: "Are you looking for a fully furnished property?" + // Category: "Real Estate" + FURNISHED_PROPERTY = 1029; + + // Question: "Are you looking for properties that allow pets?" + // Category: "Real Estate" + PETS_ALLOWED_PROPERTY = 1030; + + // Question: "What is the next product you plan to purchase?" + // Category: "Retail" + NEXT_PLANNED_PURCHASE = 1031; + + // Question: "Would you like to sign up for an event?" + // Category: "Retail" + EVENT_SIGNUP_INTEREST = 1033; + + // Question: "Where are you interested in shopping?" + // Category: "Retail" + PREFERRED_SHOPPING_PLACES = 1034; + + // Question: "What is your favorite brand?" + // Category: "Retail" + FAVORITE_BRAND = 1035; + + // Question: "Which type of valid commercial license do you have?" + // Category: "Transportation" + TRANSPORTATION_COMMERCIAL_LICENSE_TYPE = 1036; + + // Question: "Interested in booking an event?" + // Category: "Travel" + EVENT_BOOKING_INTEREST = 1038; + + // Question: "What is your destination country?" + // Category: "Travel" + DESTINATION_COUNTRY = 1039; + + // Question: "What is your destination city?" + // Category: "Travel" + DESTINATION_CITY = 1040; + + // Question: "What is your departure country?" + // Category: "Travel" + DEPARTURE_COUNTRY = 1041; + + // Question: "What is your departure city?" + // Category: "Travel" + DEPARTURE_CITY = 1042; + + // Question: "What is your departure date?" + // Category: "Travel" + DEPARTURE_DATE = 1043; + + // Question: "What is your return date?" + // Category: "Travel" + RETURN_DATE = 1044; + + // Question: "How many people are you traveling with?" + // Category: "Travel" + NUMBER_OF_TRAVELERS = 1045; + + // Question: "What is your travel budget?" + // Category: "Travel" + TRAVEL_BUDGET = 1046; + + // Question: "Where do you want to stay during your travel?" + // Category: "Travel" + TRAVEL_ACCOMMODATION = 1047; + } + + +} diff --git a/google/ads/googleads/v11/enums/lead_form_post_submit_call_to_action_type.proto b/google/ads/googleads/v11/enums/lead_form_post_submit_call_to_action_type.proto new file mode 100644 index 000000000..cb081d194 --- /dev/null +++ b/google/ads/googleads/v11/enums/lead_form_post_submit_call_to_action_type.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormPostSubmitCallToActionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Describes the type of post-submit call-to-action phrases for a lead form. +message LeadFormPostSubmitCallToActionTypeEnum { + // Enum describing the type of post-submit call-to-action phrases for a lead + // form. + enum LeadFormPostSubmitCallToActionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Visit site. + VISIT_SITE = 2; + + // Download. + DOWNLOAD = 3; + + // Learn more. + LEARN_MORE = 4; + + // Shop now. + SHOP_NOW = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/legacy_app_install_ad_app_store.proto b/google/ads/googleads/v11/enums/legacy_app_install_ad_app_store.proto new file mode 100644 index 000000000..df48a2e53 --- /dev/null +++ b/google/ads/googleads/v11/enums/legacy_app_install_ad_app_store.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LegacyAppInstallAdAppStoreProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing app store types for a legacy app install ad. + +// Container for enum describing app store type in a legacy app install ad. +message LegacyAppInstallAdAppStoreEnum { + // App store type in a legacy app install ad. + enum LegacyAppInstallAdAppStore { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Apple iTunes. + APPLE_APP_STORE = 2; + + // Google Play. + GOOGLE_PLAY = 3; + + // Windows Store. + WINDOWS_STORE = 4; + + // Windows Phone Store. + WINDOWS_PHONE_STORE = 5; + + // The app is hosted in a Chinese app store. + CN_APP_STORE = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/linked_account_type.proto b/google/ads/googleads/v11/enums/linked_account_type.proto new file mode 100644 index 000000000..b615026d7 --- /dev/null +++ b/google/ads/googleads/v11/enums/linked_account_type.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LinkedAccountTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing different types of Linked accounts. +message LinkedAccountTypeEnum { + // Describes the possible link types between a Google Ads customer + // and another account. + enum LinkedAccountType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // 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; + } + + +} diff --git a/google/ads/googleads/v11/enums/listing_group_filter_bidding_category_level.proto b/google/ads/googleads/v11/enums/listing_group_filter_bidding_category_level.proto new file mode 100644 index 000000000..40e82e93c --- /dev/null +++ b/google/ads/googleads/v11/enums/listing_group_filter_bidding_category_level.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterBiddingCategoryLevelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing listing groups. + +// Container for enum describing the levels of bidding category used in +// ListingGroupFilterDimension. +message ListingGroupFilterBiddingCategoryLevelEnum { + // The level of the listing group filter bidding category. + enum ListingGroupFilterBiddingCategoryLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Level 1. + LEVEL1 = 2; + + // Level 2. + LEVEL2 = 3; + + // Level 3. + LEVEL3 = 4; + + // Level 4. + LEVEL4 = 5; + + // Level 5. + LEVEL5 = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/listing_group_filter_custom_attribute_index.proto b/google/ads/googleads/v11/enums/listing_group_filter_custom_attribute_index.proto new file mode 100644 index 000000000..f931154f7 --- /dev/null +++ b/google/ads/googleads/v11/enums/listing_group_filter_custom_attribute_index.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterCustomAttributeIndexProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing listing groups. + +// Container for enum describing the indexes of custom attribute used in +// ListingGroupFilterDimension. +message ListingGroupFilterCustomAttributeIndexEnum { + // The index of customer attributes. + enum ListingGroupFilterCustomAttributeIndex { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // First listing group filter custom attribute. + INDEX0 = 2; + + // Second listing group filter custom attribute. + INDEX1 = 3; + + // Third listing group filter custom attribute. + INDEX2 = 4; + + // Fourth listing group filter custom attribute. + INDEX3 = 5; + + // Fifth listing group filter custom attribute. + INDEX4 = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/listing_group_filter_product_channel.proto b/google/ads/googleads/v11/enums/listing_group_filter_product_channel.proto new file mode 100644 index 000000000..901f88f75 --- /dev/null +++ b/google/ads/googleads/v11/enums/listing_group_filter_product_channel.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterProductChannelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing listing groups. + +// Locality of a product offer. +message ListingGroupFilterProductChannelEnum { + // Enum describing the locality of a product offer. + enum ListingGroupFilterProductChannel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The item is sold online. + ONLINE = 2; + + // The item is sold in local stores. + LOCAL = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/listing_group_filter_product_condition.proto b/google/ads/googleads/v11/enums/listing_group_filter_product_condition.proto new file mode 100644 index 000000000..eaf1c2ae9 --- /dev/null +++ b/google/ads/googleads/v11/enums/listing_group_filter_product_condition.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterProductConditionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing listing groups. + +// Condition of a product offer. +message ListingGroupFilterProductConditionEnum { + // Enum describing the condition of a product offer. + enum ListingGroupFilterProductCondition { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The product condition is new. + NEW = 2; + + // The product condition is refurbished. + REFURBISHED = 3; + + // The product condition is used. + USED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/listing_group_filter_product_type_level.proto b/google/ads/googleads/v11/enums/listing_group_filter_product_type_level.proto new file mode 100644 index 000000000..447387e13 --- /dev/null +++ b/google/ads/googleads/v11/enums/listing_group_filter_product_type_level.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterProductTypeLevelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing listing groups. + +// Level of the type of a product offer. +message ListingGroupFilterProductTypeLevelEnum { + // Enum describing the level of the type of a product offer. + enum ListingGroupFilterProductTypeLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Level 1. + LEVEL1 = 2; + + // Level 2. + LEVEL2 = 3; + + // Level 3. + LEVEL3 = 4; + + // Level 4. + LEVEL4 = 5; + + // Level 5. + LEVEL5 = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/listing_group_filter_type_enum.proto b/google/ads/googleads/v11/enums/listing_group_filter_type_enum.proto new file mode 100644 index 000000000..c26c723a5 --- /dev/null +++ b/google/ads/googleads/v11/enums/listing_group_filter_type_enum.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterTypeEnumProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing listing groups. + +// Container for enum describing the type of the listing group filter node. +message ListingGroupFilterTypeEnum { + // The type of the listing group filter. + enum ListingGroupFilterType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Subdivision of products along some listing dimensions. + SUBDIVISION = 2; + + // An included listing group filter leaf node. + UNIT_INCLUDED = 3; + + // An excluded listing group filter leaf node. + UNIT_EXCLUDED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/listing_group_filter_vertical.proto b/google/ads/googleads/v11/enums/listing_group_filter_vertical.proto new file mode 100644 index 000000000..3140a9ad2 --- /dev/null +++ b/google/ads/googleads/v11/enums/listing_group_filter_vertical.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterVerticalProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::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 { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Represents the shopping vertical. + SHOPPING = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/listing_group_type.proto b/google/ads/googleads/v11/enums/listing_group_type.proto new file mode 100644 index 000000000..8f4e69597 --- /dev/null +++ b/google/ads/googleads/v11/enums/listing_group_type.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing listing groups. + +// Container for enum describing the type of the listing group. +message ListingGroupTypeEnum { + // The type of the listing group. + enum ListingGroupType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Subdivision of products along some listing dimension. These nodes + // are not used by serving to target listing entries, but is purely + // to define the structure of the tree. + SUBDIVISION = 2; + + // Listing group unit that defines a bid. + UNIT = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/local_placeholder_field.proto b/google/ads/googleads/v11/enums/local_placeholder_field.proto new file mode 100644 index 000000000..90b2cad1e --- /dev/null +++ b/google/ads/googleads/v11/enums/local_placeholder_field.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Local placeholder fields. + +// Values for Local placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message LocalPlaceholderFieldEnum { + // Possible values for Local placeholder fields. + enum LocalPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Unique ID. + DEAL_ID = 2; + + // Data Type: STRING. Required. Main headline with local deal title to be + // shown in dynamic ad. + DEAL_NAME = 3; + + // Data Type: STRING. Local deal subtitle to be shown in dynamic ad. + SUBTITLE = 4; + + // Data Type: STRING. Description of local deal to be shown in dynamic ad. + DESCRIPTION = 5; + + // Data Type: STRING. Price to be shown in the ad. Highly recommended for + // dynamic ads. Example: "100.00 USD" + PRICE = 6; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 7; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + SALE_PRICE = 8; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 9; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 10; + + // Data Type: STRING. Complete property address, including postal code. + ADDRESS = 11; + + // Data Type: STRING. Category of local deal used to group like items + // together for recommendation engine. + CATEGORY = 12; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 13; + + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (for example, the individual + // URL of a specific local deal and its location). + FINAL_URLS = 14; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 15; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 16; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 17; + + // Data Type: STRING_LIST. List of recommended local deal IDs to show + // together with this item. + SIMILAR_DEAL_IDS = 18; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 19; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 20; + } + + +} diff --git a/google/ads/googleads/v11/enums/location_extension_targeting_criterion_field.proto b/google/ads/googleads/v11/enums/location_extension_targeting_criterion_field.proto new file mode 100644 index 000000000..f8ca580f0 --- /dev/null +++ b/google/ads/googleads/v11/enums/location_extension_targeting_criterion_field.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocationExtensionTargetingCriterionFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Location Extension Targeting criterion fields. + +// Values for Location Extension Targeting criterion fields. +message LocationExtensionTargetingCriterionFieldEnum { + // Possible values for Location Extension Targeting criterion fields. + enum LocationExtensionTargetingCriterionField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_1 = 2; + + // Data Type: STRING. Line 2 of the business address. + ADDRESS_LINE_2 = 3; + + // Data Type: STRING. City of the business address. + CITY = 4; + + // Data Type: STRING. Province of the business address. + PROVINCE = 5; + + // Data Type: STRING. Postal code of the business address. + POSTAL_CODE = 6; + + // Data Type: STRING. Country code of the business address. + COUNTRY_CODE = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/location_group_radius_units.proto b/google/ads/googleads/v11/enums/location_group_radius_units.proto new file mode 100644 index 000000000..3d5f08c6b --- /dev/null +++ b/google/ads/googleads/v11/enums/location_group_radius_units.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocationGroupRadiusUnitsProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing location group radius units. + +// Container for enum describing unit of radius in location group. +message LocationGroupRadiusUnitsEnum { + // The unit of radius distance in location group (for example, MILES) + enum LocationGroupRadiusUnits { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Meters + METERS = 2; + + // Miles + MILES = 3; + + // Milli Miles + MILLI_MILES = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/location_placeholder_field.proto b/google/ads/googleads/v11/enums/location_placeholder_field.proto new file mode 100644 index 000000000..adbdb7ff8 --- /dev/null +++ b/google/ads/googleads/v11/enums/location_placeholder_field.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocationPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Location placeholder fields. + +// Values for Location placeholder fields. +message LocationPlaceholderFieldEnum { + // Possible values for Location placeholder fields. + enum LocationPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The name of the business. + BUSINESS_NAME = 2; + + // Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_1 = 3; + + // Data Type: STRING. Line 2 of the business address. + ADDRESS_LINE_2 = 4; + + // Data Type: STRING. City of the business address. + CITY = 5; + + // Data Type: STRING. Province of the business address. + PROVINCE = 6; + + // Data Type: STRING. Postal code of the business address. + POSTAL_CODE = 7; + + // Data Type: STRING. Country code of the business address. + COUNTRY_CODE = 8; + + // Data Type: STRING. Phone number of the business. + PHONE_NUMBER = 9; + } + + +} diff --git a/google/ads/googleads/v11/enums/location_source_type.proto b/google/ads/googleads/v11/enums/location_source_type.proto new file mode 100644 index 000000000..dd3725d00 --- /dev/null +++ b/google/ads/googleads/v11/enums/location_source_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocationSourceTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing location source types. + +// Used to distinguish the location source type. +message LocationSourceTypeEnum { + // The possible types of a location source. + enum LocationSourceType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Locations associated with the customer's linked Business Profile. + GOOGLE_MY_BUSINESS = 2; + + // Affiliate (chain) store locations. For example, Best Buy store locations. + AFFILIATE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/manager_link_status.proto b/google/ads/googleads/v11/enums/manager_link_status.proto new file mode 100644 index 000000000..9d4f7a8fe --- /dev/null +++ b/google/ads/googleads/v11/enums/manager_link_status.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ManagerLinkStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing possible status of a manager and client link. +message ManagerLinkStatusEnum { + // Possible statuses of a link. + enum ManagerLinkStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Indicates current in-effect relationship + ACTIVE = 2; + + // Indicates terminated relationship + INACTIVE = 3; + + // Indicates relationship has been requested by manager, but the client + // hasn't accepted yet. + PENDING = 4; + + // Relationship was requested by the manager, but the client has refused. + REFUSED = 5; + + // Indicates relationship has been requested by manager, but manager + // canceled it. + CANCELED = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/matching_function_context_type.proto b/google/ads/googleads/v11/enums/matching_function_context_type.proto new file mode 100644 index 000000000..8550506d2 --- /dev/null +++ b/google/ads/googleads/v11/enums/matching_function_context_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MatchingFunctionContextTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing matching function context types. + +// Container for context types for an operand in a matching function. +message MatchingFunctionContextTypeEnum { + // Possible context types for an operand in a matching function. + enum MatchingFunctionContextType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Feed item id in the request context. + FEED_ITEM_ID = 2; + + // The device being used (possible values are 'Desktop' or 'Mobile'). + DEVICE_NAME = 3; + + // Feed item set id in the request context. + FEED_ITEM_SET_ID = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/matching_function_operator.proto b/google/ads/googleads/v11/enums/matching_function_operator.proto new file mode 100644 index 000000000..de2b446ac --- /dev/null +++ b/google/ads/googleads/v11/enums/matching_function_operator.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MatchingFunctionOperatorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing matching function operators. + +// Container for enum describing matching function operator. +message MatchingFunctionOperatorEnum { + // Possible operators in a matching function. + enum MatchingFunctionOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The IN operator. + IN = 2; + + // The IDENTITY operator. + IDENTITY = 3; + + // The EQUALS operator + EQUALS = 4; + + // Operator that takes two or more operands that are of type + // FunctionOperand and checks that all the operands evaluate to true. + // For functions related to ad formats, all the operands must be in + // left_operands. + AND = 5; + + // Operator that returns true if the elements in left_operands contain any + // of the elements in right_operands. Otherwise, return false. The + // right_operands must contain at least 1 and no more than 3 + // ConstantOperands. + CONTAINS_ANY = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/media_type.proto b/google/ads/googleads/v11/enums/media_type.proto new file mode 100644 index 000000000..f6156e050 --- /dev/null +++ b/google/ads/googleads/v11/enums/media_type.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MediaTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing media types. + +// Container for enum describing the types of media. +message MediaTypeEnum { + // The type of media. + enum MediaType { + // The media type has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Static image, used for image ad. + IMAGE = 2; + + // Small image, used for map ad. + ICON = 3; + + // ZIP file, used in fields of template ads. + MEDIA_BUNDLE = 4; + + // Audio file. + AUDIO = 5; + + // Video file. + VIDEO = 6; + + // Animated image, such as animated GIF. + DYNAMIC_IMAGE = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/merchant_center_link_status.proto b/google/ads/googleads/v11/enums/merchant_center_link_status.proto new file mode 100644 index 000000000..9e25f0dea --- /dev/null +++ b/google/ads/googleads/v11/enums/merchant_center_link_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MerchantCenterLinkStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::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/google/ads/googleads/v11/enums/message_placeholder_field.proto b/google/ads/googleads/v11/enums/message_placeholder_field.proto new file mode 100644 index 000000000..cf54e6499 --- /dev/null +++ b/google/ads/googleads/v11/enums/message_placeholder_field.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MessagePlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Message placeholder fields. + +// Values for Message placeholder fields. +message MessagePlaceholderFieldEnum { + // Possible values for Message placeholder fields. + enum MessagePlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The name of your business. + BUSINESS_NAME = 2; + + // Data Type: STRING. Country code of phone number. + COUNTRY_CODE = 3; + + // Data Type: STRING. A phone number that's capable of sending and receiving + // text messages. + PHONE_NUMBER = 4; + + // Data Type: STRING. The text that will go in your click-to-message ad. + MESSAGE_EXTENSION_TEXT = 5; + + // Data Type: STRING. The message text automatically shows in people's + // messaging apps when they tap to send you a message. + MESSAGE_TEXT = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/mime_type.proto b/google/ads/googleads/v11/enums/mime_type.proto new file mode 100644 index 000000000..53da86f9b --- /dev/null +++ b/google/ads/googleads/v11/enums/mime_type.proto @@ -0,0 +1,80 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MimeTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing mime types. + +// Container for enum describing the mime types. +message MimeTypeEnum { + // The mime type + enum MimeType { + // The mime type has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // MIME type of image/jpeg. + IMAGE_JPEG = 2; + + // MIME type of image/gif. + IMAGE_GIF = 3; + + // MIME type of image/png. + IMAGE_PNG = 4; + + // MIME type of application/x-shockwave-flash. + FLASH = 5; + + // MIME type of text/html. + TEXT_HTML = 6; + + // MIME type of application/pdf. + PDF = 7; + + // MIME type of application/msword. + MSWORD = 8; + + // MIME type of application/vnd.ms-excel. + MSEXCEL = 9; + + // MIME type of application/rtf. + RTF = 10; + + // MIME type of audio/wav. + AUDIO_WAV = 11; + + // MIME type of audio/mp3. + AUDIO_MP3 = 12; + + // MIME type of application/x-html5-ad-zip. + HTML5_AD_ZIP = 13; + } + + +} diff --git a/google/ads/googleads/v11/enums/minute_of_hour.proto b/google/ads/googleads/v11/enums/minute_of_hour.proto new file mode 100644 index 000000000..88e939778 --- /dev/null +++ b/google/ads/googleads/v11/enums/minute_of_hour.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MinuteOfHourProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing days of week. + +// Container for enumeration of quarter-hours. +message MinuteOfHourEnum { + // Enumerates of quarter-hours. For example, "FIFTEEN" + enum MinuteOfHour { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Zero minutes past the hour. + ZERO = 2; + + // Fifteen minutes past the hour. + FIFTEEN = 3; + + // Thirty minutes past the hour. + THIRTY = 4; + + // Forty-five minutes past the hour. + FORTY_FIVE = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/mobile_app_vendor.proto b/google/ads/googleads/v11/enums/mobile_app_vendor.proto new file mode 100644 index 000000000..9716feb96 --- /dev/null +++ b/google/ads/googleads/v11/enums/mobile_app_vendor.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MobileAppVendorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing different types of mobile app vendors. +message MobileAppVendorEnum { + // The type of mobile app vendor + enum MobileAppVendor { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile app vendor for Apple app store. + APPLE_APP_STORE = 2; + + // Mobile app vendor for Google app store. + GOOGLE_APP_STORE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/mobile_device_type.proto b/google/ads/googleads/v11/enums/mobile_device_type.proto new file mode 100644 index 000000000..d3fc065d7 --- /dev/null +++ b/google/ads/googleads/v11/enums/mobile_device_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MobileDeviceTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing mobile device types. + +// Container for enum describing the types of mobile device. +message MobileDeviceTypeEnum { + // The type of mobile device. + enum MobileDeviceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile phones. + MOBILE = 2; + + // Tablets. + TABLET = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/month_of_year.proto b/google/ads/googleads/v11/enums/month_of_year.proto new file mode 100644 index 000000000..3d7c2529e --- /dev/null +++ b/google/ads/googleads/v11/enums/month_of_year.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "MonthOfYearProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing days of week. + +// Container for enumeration of months of the year, for example, "January". +message MonthOfYearEnum { + // Enumerates months of the year, for example, "January". + enum MonthOfYear { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // January. + JANUARY = 2; + + // February. + FEBRUARY = 3; + + // March. + MARCH = 4; + + // April. + APRIL = 5; + + // May. + MAY = 6; + + // June. + JUNE = 7; + + // July. + JULY = 8; + + // August. + AUGUST = 9; + + // September. + SEPTEMBER = 10; + + // October. + OCTOBER = 11; + + // November. + NOVEMBER = 12; + + // December. + DECEMBER = 13; + } + + +} diff --git a/google/ads/googleads/v11/enums/negative_geo_target_type.proto b/google/ads/googleads/v11/enums/negative_geo_target_type.proto new file mode 100644 index 000000000..ac4c6ae52 --- /dev/null +++ b/google/ads/googleads/v11/enums/negative_geo_target_type.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "NegativeGeoTargetTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing negative geo target types. + +// Container for enum describing possible negative geo target types. +message NegativeGeoTargetTypeEnum { + // The possible negative geo target types. + enum NegativeGeoTargetType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Specifies that a user is excluded from seeing the ad if they + // are in, or show interest in, advertiser's excluded locations. + PRESENCE_OR_INTEREST = 4; + + // Specifies that a user is excluded from seeing the ad if they + // are in advertiser's excluded locations. + PRESENCE = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/offline_user_data_job_failure_reason.proto b/google/ads/googleads/v11/enums/offline_user_data_job_failure_reason.proto new file mode 100644 index 000000000..4d885739b --- /dev/null +++ b/google/ads/googleads/v11/enums/offline_user_data_job_failure_reason.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobFailureReasonProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing offline user data job failure reasons. + +// Container for enum describing reasons why an offline user data job +// failed to be processed. +message OfflineUserDataJobFailureReasonEnum { + // The failure reason of an offline user data job. + enum OfflineUserDataJobFailureReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The matched transactions are insufficient. + INSUFFICIENT_MATCHED_TRANSACTIONS = 2; + + // The uploaded transactions are insufficient. + INSUFFICIENT_TRANSACTIONS = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/offline_user_data_job_match_rate_range.proto b/google/ads/googleads/v11/enums/offline_user_data_job_match_rate_range.proto new file mode 100644 index 000000000..5b3b235a2 --- /dev/null +++ b/google/ads/googleads/v11/enums/offline_user_data_job_match_rate_range.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobMatchRateRangeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing reasons match rate ranges for a customer match +// list upload. +message OfflineUserDataJobMatchRateRangeEnum { + // The match rate range of an offline user data job. + enum OfflineUserDataJobMatchRateRange { + // Not specified. + UNSPECIFIED = 0; + + // Default value for match rate range. + UNKNOWN = 1; + + // Match rate range for offline data upload entity is between 0% and 19%. + MATCH_RANGE_LESS_THAN_20 = 2; + + // Match rate range for offline data upload entity is between 20% and 30%. + MATCH_RANGE_20_TO_30 = 3; + + // Match rate range for offline data upload entity is between 31% and 40%. + MATCH_RANGE_31_TO_40 = 4; + + // Match rate range for offline data upload entity is between 41% and 50%. + MATCH_RANGE_41_TO_50 = 5; + + // Match rate range for offline data upload entity is between 51% and 60%. + MATCH_RANGE_51_TO_60 = 6; + + // Match rate range for offline data upload entity is between 61% and 70%. + MATCH_RANGE_61_TO_70 = 7; + + // Match rate range for offline data upload entity is between 71% and 80%. + MATCH_RANGE_71_TO_80 = 8; + + // Match rate range for offline data upload entity is between 81% and 90%. + MATCH_RANGE_81_TO_90 = 9; + + // Match rate range for offline data upload entity more than or equal to + // 91%. + MATCH_RANGE_91_TO_100 = 10; + } + + +} diff --git a/google/ads/googleads/v11/enums/offline_user_data_job_status.proto b/google/ads/googleads/v11/enums/offline_user_data_job_status.proto new file mode 100644 index 000000000..c1da0b6f7 --- /dev/null +++ b/google/ads/googleads/v11/enums/offline_user_data_job_status.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing offline user data job status. + +// Container for enum describing status of an offline user data job. +message OfflineUserDataJobStatusEnum { + // The status of an offline user data job. + enum OfflineUserDataJobStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The job has been successfully created and pending for uploading. + PENDING = 2; + + // Upload(s) have been accepted and data is being processed. + RUNNING = 3; + + // Uploaded data has been successfully processed. + SUCCESS = 4; + + // Uploaded data has failed to be processed. + FAILED = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/offline_user_data_job_type.proto b/google/ads/googleads/v11/enums/offline_user_data_job_type.proto new file mode 100644 index 000000000..b656089aa --- /dev/null +++ b/google/ads/googleads/v11/enums/offline_user_data_job_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing offline user data job types. + +// Container for enum describing types of an offline user data job. +message OfflineUserDataJobTypeEnum { + // The type of an offline user data job. + enum OfflineUserDataJobType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Store Sales Direct data for self service. + STORE_SALES_UPLOAD_FIRST_PARTY = 2; + + // Store Sales Direct data for third party. + STORE_SALES_UPLOAD_THIRD_PARTY = 3; + + // Customer Match user list data. + CUSTOMER_MATCH_USER_LIST = 4; + + // Customer Match with attribute data. + CUSTOMER_MATCH_WITH_ATTRIBUTES = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/operating_system_version_operator_type.proto b/google/ads/googleads/v11/enums/operating_system_version_operator_type.proto new file mode 100644 index 000000000..6e49d1846 --- /dev/null +++ b/google/ads/googleads/v11/enums/operating_system_version_operator_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OperatingSystemVersionOperatorTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing operating system version operator types. + +// Container for enum describing the type of OS operators. +message OperatingSystemVersionOperatorTypeEnum { + // The type of operating system version. + enum OperatingSystemVersionOperatorType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Equals to the specified version. + EQUALS_TO = 2; + + // Greater than or equals to the specified version. + GREATER_THAN_EQUALS_TO = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/optimization_goal_type.proto b/google/ads/googleads/v11/enums/optimization_goal_type.proto new file mode 100644 index 000000000..6dcfc8bb6 --- /dev/null +++ b/google/ads/googleads/v11/enums/optimization_goal_type.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "OptimizationGoalTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing optimization goal type. + +// Container for enum describing the type of optimization goal. +message OptimizationGoalTypeEnum { + // The type of optimization goal + enum OptimizationGoalType { + // Not specified. + UNSPECIFIED = 0; + + // Used as a return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Optimize for call clicks. Call click conversions are times people + // selected 'Call' to contact a store after viewing an ad. + CALL_CLICKS = 2; + + // Optimize for driving directions. Driving directions conversions are + // times people selected 'Get directions' to navigate to a store after + // viewing an ad. + DRIVING_DIRECTIONS = 3; + + // Optimize for pre-registration. Pre-registration conversions are the + // number of pre-registration signups to receive a notification when the app + // is released. + APP_PRE_REGISTRATION = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/parental_status_type.proto b/google/ads/googleads/v11/enums/parental_status_type.proto new file mode 100644 index 000000000..3dc06ed1b --- /dev/null +++ b/google/ads/googleads/v11/enums/parental_status_type.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ParentalStatusTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing parenal status types. + +// Container for enum describing the type of demographic parental statuses. +message ParentalStatusTypeEnum { + // The type of parental statuses (for example, not a parent). + enum ParentalStatusType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Parent. + PARENT = 300; + + // Not a parent. + NOT_A_PARENT = 301; + + // Undetermined parental status. + UNDETERMINED = 302; + } + + +} diff --git a/google/ads/googleads/v11/enums/payment_mode.proto b/google/ads/googleads/v11/enums/payment_mode.proto new file mode 100644 index 000000000..16084924e --- /dev/null +++ b/google/ads/googleads/v11/enums/payment_mode.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PaymentModeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing payment modes. + +// Container for enum describing possible payment modes. +message PaymentModeEnum { + // Enum describing possible payment modes. + enum PaymentMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Pay per click. + CLICKS = 4; + + // Pay per conversion value. This mode is only supported by campaigns with + // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and + // BudgetType.STANDARD. + CONVERSION_VALUE = 5; + + // Pay per conversion. This mode is only supported by campaigns with + // AdvertisingChannelType.DISPLAY (excluding + // AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA, + // and BudgetType.FIXED_CPA. The customer must also be eligible for this + // mode. See Customer.eligibility_failure_reasons for details. + CONVERSIONS = 6; + + // Pay per guest stay value. This mode is only supported by campaigns with + // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and + // BudgetType.STANDARD. + GUEST_STAY = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/performance_max_upgrade_status.proto b/google/ads/googleads/v11/enums/performance_max_upgrade_status.proto new file mode 100644 index 000000000..bbbac8525 --- /dev/null +++ b/google/ads/googleads/v11/enums/performance_max_upgrade_status.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PerformanceMaxUpgradeStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing advertising channel types + +// Performance Max Upgrade status for campaign. +message PerformanceMaxUpgradeStatusEnum { + // Performance Max Upgrade status enum for campaign. + enum PerformanceMaxUpgradeStatus { + // Not specified. + UNSPECIFIED = 0; + + // 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; + + // The upgrade to a Performance Max campaign is complete. + UPGRADE_COMPLETE = 4; + + // The upgrade to a Performance Max campaign failed. + // The campaign will still serve as it was before upgrade was attempted. + UPGRADE_FAILED = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/placeholder_type.proto b/google/ads/googleads/v11/enums/placeholder_type.proto new file mode 100644 index 000000000..5094bf687 --- /dev/null +++ b/google/ads/googleads/v11/enums/placeholder_type.proto @@ -0,0 +1,122 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PlaceholderTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing feed placeholder types. + +// Container for enum describing possible placeholder types for a feed mapping. +message PlaceholderTypeEnum { + // Possible placeholder types for a feed mapping. + enum PlaceholderType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Lets you show links in your ad to pages from your website, including the + // main landing page. + SITELINK = 2; + + // Lets you attach a phone number to an ad, allowing customers to call + // directly from the ad. + CALL = 3; + + // Lets you provide users with a link that points to a mobile app in + // addition to a website. + APP = 4; + + // Lets you show locations of businesses from your Business Profile + // in your ad. This helps people find your locations by showing your + // ads with your address, a map to your location, or the distance to your + // business. This extension type is useful to draw customers to your + // brick-and-mortar location. + LOCATION = 5; + + // If you sell your product through retail chains, affiliate location + // extensions let you show nearby stores that carry your products. + AFFILIATE_LOCATION = 6; + + // Lets you include additional text with your search ads that provide + // detailed information about your business, including products and services + // you offer. Callouts appear in ads at the top and bottom of Google search + // results. + CALLOUT = 7; + + // Lets you add more info to your ad, specific to some predefined categories + // such as types, brands, styles, etc. A minimum of 3 text (SNIPPETS) values + // are required. + STRUCTURED_SNIPPET = 8; + + // Allows users to see your ad, click an icon, and contact you directly by + // text message. With one tap on your ad, people can contact you to book an + // appointment, get a quote, ask for information, or request a service. + MESSAGE = 9; + + // Lets you display prices for a list of items along with your ads. A price + // feed is composed of three to eight price table rows. + PRICE = 10; + + // Lets you highlight sales and other promotions that let users see how + // they can save by buying now. + PROMOTION = 11; + + // Lets you dynamically inject custom data into the title and description + // of your ads. + AD_CUSTOMIZER = 12; + + // Indicates that this feed is for education dynamic remarketing. + DYNAMIC_EDUCATION = 13; + + // Indicates that this feed is for flight dynamic remarketing. + DYNAMIC_FLIGHT = 14; + + // Indicates that this feed is for a custom dynamic remarketing type. Use + // this only if the other business types don't apply to your products or + // services. + DYNAMIC_CUSTOM = 15; + + // Indicates that this feed is for hotels and rentals dynamic remarketing. + DYNAMIC_HOTEL = 16; + + // Indicates that this feed is for real estate dynamic remarketing. + DYNAMIC_REAL_ESTATE = 17; + + // Indicates that this feed is for travel dynamic remarketing. + DYNAMIC_TRAVEL = 18; + + // Indicates that this feed is for local deals dynamic remarketing. + DYNAMIC_LOCAL = 19; + + // Indicates that this feed is for job dynamic remarketing. + DYNAMIC_JOB = 20; + + // Lets you attach an image to an ad. + IMAGE = 21; + } + + +} diff --git a/google/ads/googleads/v11/enums/placement_type.proto b/google/ads/googleads/v11/enums/placement_type.proto new file mode 100644 index 000000000..8d8706306 --- /dev/null +++ b/google/ads/googleads/v11/enums/placement_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PlacementTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing placement types. + +// Container for enum describing possible placement types. +message PlacementTypeEnum { + // Possible placement types for a feed mapping. + enum PlacementType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Websites(for example, 'www.flowers4sale.com'). + WEBSITE = 2; + + // Mobile application categories(for example, 'Games'). + MOBILE_APP_CATEGORY = 3; + + // mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers'). + MOBILE_APPLICATION = 4; + + // YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys'). + YOUTUBE_VIDEO = 5; + + // YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ'). + YOUTUBE_CHANNEL = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/policy_approval_status.proto b/google/ads/googleads/v11/enums/policy_approval_status.proto new file mode 100644 index 000000000..b3128d153 --- /dev/null +++ b/google/ads/googleads/v11/enums/policy_approval_status.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyApprovalStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing policy approval statuses. + +// Container for enum describing possible policy approval statuses. +message PolicyApprovalStatusEnum { + // The possible policy approval statuses. When there are several approval + // statuses available the most severe one will be used. The order of severity + // is DISAPPROVED, AREA_OF_INTEREST_ONLY, APPROVED_LIMITED and APPROVED. + enum PolicyApprovalStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Will not serve. + DISAPPROVED = 2; + + // Serves with restrictions. + APPROVED_LIMITED = 3; + + // Serves without restrictions. + APPROVED = 4; + + // Will not serve in targeted countries, but may serve for users who are + // searching for information about the targeted countries. + AREA_OF_INTEREST_ONLY = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/policy_review_status.proto b/google/ads/googleads/v11/enums/policy_review_status.proto new file mode 100644 index 000000000..6e5178e81 --- /dev/null +++ b/google/ads/googleads/v11/enums/policy_review_status.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyReviewStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing policy review statuses. + +// Container for enum describing possible policy review statuses. +message PolicyReviewStatusEnum { + // The possible policy review statuses. + enum PolicyReviewStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Currently under review. + REVIEW_IN_PROGRESS = 2; + + // Primary review complete. Other reviews may be continuing. + REVIEWED = 3; + + // The resource has been resubmitted for approval or its policy decision has + // been appealed. + UNDER_APPEAL = 4; + + // The resource is eligible and may be serving but could still undergo + // further review. + ELIGIBLE_MAY_SERVE = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/policy_topic_entry_type.proto b/google/ads/googleads/v11/enums/policy_topic_entry_type.proto new file mode 100644 index 000000000..c24795a0c --- /dev/null +++ b/google/ads/googleads/v11/enums/policy_topic_entry_type.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyTopicEntryTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing policy topic entry types. + +// Container for enum describing possible policy topic entry types. +message PolicyTopicEntryTypeEnum { + // The possible policy topic entry types. + enum PolicyTopicEntryType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The resource will not be served. + PROHIBITED = 2; + + // The resource will not be served under some circumstances. + LIMITED = 4; + + // The resource cannot serve at all because of the current targeting + // criteria. + FULLY_LIMITED = 8; + + // May be of interest, but does not limit how the resource is served. + DESCRIPTIVE = 5; + + // Could increase coverage beyond normal. + BROADENING = 6; + + // Constrained for all targeted countries, but may serve in other countries + // through area of interest. + AREA_OF_INTEREST_ONLY = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/policy_topic_evidence_destination_mismatch_url_type.proto b/google/ads/googleads/v11/enums/policy_topic_evidence_destination_mismatch_url_type.proto new file mode 100644 index 000000000..285a1b2a1 --- /dev/null +++ b/google/ads/googleads/v11/enums/policy_topic_evidence_destination_mismatch_url_type.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyTopicEvidenceDestinationMismatchUrlTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing policy topic evidence destination mismatch url types. + +// Container for enum describing possible policy topic evidence destination +// mismatch url types. +message PolicyTopicEvidenceDestinationMismatchUrlTypeEnum { + // The possible policy topic evidence destination mismatch url types. + enum PolicyTopicEvidenceDestinationMismatchUrlType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The display url. + DISPLAY_URL = 2; + + // The final url. + FINAL_URL = 3; + + // The final mobile url. + FINAL_MOBILE_URL = 4; + + // The tracking url template, with substituted desktop url. + TRACKING_URL = 5; + + // The tracking url template, with substituted mobile url. + MOBILE_TRACKING_URL = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_device.proto b/google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_device.proto new file mode 100644 index 000000000..f10bdb104 --- /dev/null +++ b/google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_device.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDeviceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing device of destination not working policy topic +// evidence. + +// Container for enum describing possible policy topic evidence destination not +// working devices. +message PolicyTopicEvidenceDestinationNotWorkingDeviceEnum { + // The possible policy topic evidence destination not working devices. + enum PolicyTopicEvidenceDestinationNotWorkingDevice { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Landing page doesn't work on desktop device. + DESKTOP = 2; + + // Landing page doesn't work on Android device. + ANDROID = 3; + + // Landing page doesn't work on iOS device. + IOS = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto b/google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto new file mode 100644 index 000000000..49f9f1d07 --- /dev/null +++ b/google/ads/googleads/v11/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing DNS error types of destination not working policy topic +// evidence. + +// Container for enum describing possible policy topic evidence destination not +// working DNS error types. +message PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum { + // The possible policy topic evidence destination not working DNS error types. + enum PolicyTopicEvidenceDestinationNotWorkingDnsErrorType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // Host name not found in DNS when fetching landing page. + HOSTNAME_NOT_FOUND = 2; + + // Google internal crawler issue when communicating with DNS. This error + // doesn't mean the landing page doesn't work. Google will recrawl the + // landing page. + GOOGLE_CRAWLER_DNS_ISSUE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/positive_geo_target_type.proto b/google/ads/googleads/v11/enums/positive_geo_target_type.proto new file mode 100644 index 000000000..810eac1d6 --- /dev/null +++ b/google/ads/googleads/v11/enums/positive_geo_target_type.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PositiveGeoTargetTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing positive geo target types. + +// Container for enum describing possible positive geo target types. +message PositiveGeoTargetTypeEnum { + // The possible positive geo target types. + enum PositiveGeoTargetType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Specifies that an ad is triggered if the user is in, + // or shows interest in, advertiser's targeted locations. + PRESENCE_OR_INTEREST = 5; + + // Specifies that an ad is triggered if the user + // searches for advertiser's targeted locations. + // This can only be used with Search and standard + // Shopping campaigns. + SEARCH_INTEREST = 6; + + // Specifies that an ad is triggered if the user is in + // or regularly in advertiser's targeted locations. + PRESENCE = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/preferred_content_type.proto b/google/ads/googleads/v11/enums/preferred_content_type.proto new file mode 100644 index 000000000..077f015fa --- /dev/null +++ b/google/ads/googleads/v11/enums/preferred_content_type.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PreferredContentTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing preferred content criterion type. + +// Container for enumeration of preferred content criterion type. +message PreferredContentTypeEnum { + // Enumerates preferred content criterion type. + enum PreferredContentType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Represents top content on YouTube. + YOUTUBE_TOP_CONTENT = 400; + } + + +} diff --git a/google/ads/googleads/v11/enums/price_extension_price_qualifier.proto b/google/ads/googleads/v11/enums/price_extension_price_qualifier.proto new file mode 100644 index 000000000..82b384bea --- /dev/null +++ b/google/ads/googleads/v11/enums/price_extension_price_qualifier.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PriceExtensionPriceQualifierProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing price extension price qualifier type. + +// Container for enum describing a price extension price qualifier. +message PriceExtensionPriceQualifierEnum { + // Enums of price extension price qualifier. + enum PriceExtensionPriceQualifier { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // 'From' qualifier for the price. + FROM = 2; + + // 'Up to' qualifier for the price. + UP_TO = 3; + + // 'Average' qualifier for the price. + AVERAGE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/price_extension_price_unit.proto b/google/ads/googleads/v11/enums/price_extension_price_unit.proto new file mode 100644 index 000000000..a60014465 --- /dev/null +++ b/google/ads/googleads/v11/enums/price_extension_price_unit.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PriceExtensionPriceUnitProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing price extension price unit. + +// Container for enum describing price extension price unit. +message PriceExtensionPriceUnitEnum { + // Price extension price unit. + enum PriceExtensionPriceUnit { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Per hour. + PER_HOUR = 2; + + // Per day. + PER_DAY = 3; + + // Per week. + PER_WEEK = 4; + + // Per month. + PER_MONTH = 5; + + // Per year. + PER_YEAR = 6; + + // Per night. + PER_NIGHT = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/price_extension_type.proto b/google/ads/googleads/v11/enums/price_extension_type.proto new file mode 100644 index 000000000..d935652e4 --- /dev/null +++ b/google/ads/googleads/v11/enums/price_extension_type.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PriceExtensionTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing price extension type. + +// Container for enum describing types for a price extension. +message PriceExtensionTypeEnum { + // Price extension type. + enum PriceExtensionType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The type for showing a list of brands. + BRANDS = 2; + + // The type for showing a list of events. + EVENTS = 3; + + // The type for showing locations relevant to your business. + LOCATIONS = 4; + + // The type for showing sub-regions or districts within a city or region. + NEIGHBORHOODS = 5; + + // The type for showing a collection of product categories. + PRODUCT_CATEGORIES = 6; + + // The type for showing a collection of related product tiers. + PRODUCT_TIERS = 7; + + // The type for showing a collection of services offered by your business. + SERVICES = 8; + + // The type for showing a collection of service categories. + SERVICE_CATEGORIES = 9; + + // The type for showing a collection of related service tiers. + SERVICE_TIERS = 10; + } + + +} diff --git a/google/ads/googleads/v11/enums/price_placeholder_field.proto b/google/ads/googleads/v11/enums/price_placeholder_field.proto new file mode 100644 index 000000000..42204ed6c --- /dev/null +++ b/google/ads/googleads/v11/enums/price_placeholder_field.proto @@ -0,0 +1,246 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PricePlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Price placeholder fields. + +// Values for Price placeholder fields. +message PricePlaceholderFieldEnum { + // Possible values for Price placeholder fields. + enum PricePlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The type of your price feed. Must match one of the + // predefined price feed type exactly. + TYPE = 2; + + // Data Type: STRING. The qualifier of each price. Must match one of the + // predefined price qualifiers exactly. + PRICE_QUALIFIER = 3; + + // Data Type: URL. Tracking template for the price feed when using Upgraded + // URLs. + TRACKING_TEMPLATE = 4; + + // Data Type: STRING. Language of the price feed. Must match one of the + // available available locale codes exactly. + LANGUAGE = 5; + + // Data Type: STRING. Final URL suffix for the price feed when using + // parallel tracking. + FINAL_URL_SUFFIX = 6; + + // Data Type: STRING. The header of item 1 of the table. + ITEM_1_HEADER = 100; + + // Data Type: STRING. The description of item 1 of the table. + ITEM_1_DESCRIPTION = 101; + + // Data Type: MONEY. The price (money with currency) of item 1 of the table, + // for example, 30 USD. The currency must match one of the available + // currencies. + ITEM_1_PRICE = 102; + + // Data Type: STRING. The price unit of item 1 of the table. Must match one + // of the predefined price units. + ITEM_1_UNIT = 103; + + // Data Type: URL_LIST. The final URLs of item 1 of the table when using + // Upgraded URLs. + ITEM_1_FINAL_URLS = 104; + + // Data Type: URL_LIST. The final mobile URLs of item 1 of the table when + // using Upgraded URLs. + ITEM_1_FINAL_MOBILE_URLS = 105; + + // Data Type: STRING. The header of item 2 of the table. + ITEM_2_HEADER = 200; + + // Data Type: STRING. The description of item 2 of the table. + ITEM_2_DESCRIPTION = 201; + + // Data Type: MONEY. The price (money with currency) of item 2 of the table, + // for example, 30 USD. The currency must match one of the available + // currencies. + ITEM_2_PRICE = 202; + + // Data Type: STRING. The price unit of item 2 of the table. Must match one + // of the predefined price units. + ITEM_2_UNIT = 203; + + // Data Type: URL_LIST. The final URLs of item 2 of the table when using + // Upgraded URLs. + ITEM_2_FINAL_URLS = 204; + + // Data Type: URL_LIST. The final mobile URLs of item 2 of the table when + // using Upgraded URLs. + ITEM_2_FINAL_MOBILE_URLS = 205; + + // Data Type: STRING. The header of item 3 of the table. + ITEM_3_HEADER = 300; + + // Data Type: STRING. The description of item 3 of the table. + ITEM_3_DESCRIPTION = 301; + + // Data Type: MONEY. The price (money with currency) of item 3 of the table, + // for example, 30 USD. The currency must match one of the available + // currencies. + ITEM_3_PRICE = 302; + + // Data Type: STRING. The price unit of item 3 of the table. Must match one + // of the predefined price units. + ITEM_3_UNIT = 303; + + // Data Type: URL_LIST. The final URLs of item 3 of the table when using + // Upgraded URLs. + ITEM_3_FINAL_URLS = 304; + + // Data Type: URL_LIST. The final mobile URLs of item 3 of the table when + // using Upgraded URLs. + ITEM_3_FINAL_MOBILE_URLS = 305; + + // Data Type: STRING. The header of item 4 of the table. + ITEM_4_HEADER = 400; + + // Data Type: STRING. The description of item 4 of the table. + ITEM_4_DESCRIPTION = 401; + + // Data Type: MONEY. The price (money with currency) of item 4 of the table, + // for example, 30 USD. The currency must match one of the available + // currencies. + ITEM_4_PRICE = 402; + + // Data Type: STRING. The price unit of item 4 of the table. Must match one + // of the predefined price units. + ITEM_4_UNIT = 403; + + // Data Type: URL_LIST. The final URLs of item 4 of the table when using + // Upgraded URLs. + ITEM_4_FINAL_URLS = 404; + + // Data Type: URL_LIST. The final mobile URLs of item 4 of the table when + // using Upgraded URLs. + ITEM_4_FINAL_MOBILE_URLS = 405; + + // Data Type: STRING. The header of item 5 of the table. + ITEM_5_HEADER = 500; + + // Data Type: STRING. The description of item 5 of the table. + ITEM_5_DESCRIPTION = 501; + + // Data Type: MONEY. The price (money with currency) of item 5 of the table, + // for example, 30 USD. The currency must match one of the available + // currencies. + ITEM_5_PRICE = 502; + + // Data Type: STRING. The price unit of item 5 of the table. Must match one + // of the predefined price units. + ITEM_5_UNIT = 503; + + // Data Type: URL_LIST. The final URLs of item 5 of the table when using + // Upgraded URLs. + ITEM_5_FINAL_URLS = 504; + + // Data Type: URL_LIST. The final mobile URLs of item 5 of the table when + // using Upgraded URLs. + ITEM_5_FINAL_MOBILE_URLS = 505; + + // Data Type: STRING. The header of item 6 of the table. + ITEM_6_HEADER = 600; + + // Data Type: STRING. The description of item 6 of the table. + ITEM_6_DESCRIPTION = 601; + + // Data Type: MONEY. The price (money with currency) of item 6 of the table, + // for example, 30 USD. The currency must match one of the available + // currencies. + ITEM_6_PRICE = 602; + + // Data Type: STRING. The price unit of item 6 of the table. Must match one + // of the predefined price units. + ITEM_6_UNIT = 603; + + // Data Type: URL_LIST. The final URLs of item 6 of the table when using + // Upgraded URLs. + ITEM_6_FINAL_URLS = 604; + + // Data Type: URL_LIST. The final mobile URLs of item 6 of the table when + // using Upgraded URLs. + ITEM_6_FINAL_MOBILE_URLS = 605; + + // Data Type: STRING. The header of item 7 of the table. + ITEM_7_HEADER = 700; + + // Data Type: STRING. The description of item 7 of the table. + ITEM_7_DESCRIPTION = 701; + + // Data Type: MONEY. The price (money with currency) of item 7 of the table, + // for example, 30 USD. The currency must match one of the available + // currencies. + ITEM_7_PRICE = 702; + + // Data Type: STRING. The price unit of item 7 of the table. Must match one + // of the predefined price units. + ITEM_7_UNIT = 703; + + // Data Type: URL_LIST. The final URLs of item 7 of the table when using + // Upgraded URLs. + ITEM_7_FINAL_URLS = 704; + + // Data Type: URL_LIST. The final mobile URLs of item 7 of the table when + // using Upgraded URLs. + ITEM_7_FINAL_MOBILE_URLS = 705; + + // Data Type: STRING. The header of item 8 of the table. + ITEM_8_HEADER = 800; + + // Data Type: STRING. The description of item 8 of the table. + ITEM_8_DESCRIPTION = 801; + + // Data Type: MONEY. The price (money with currency) of item 8 of the table, + // for example, 30 USD. The currency must match one of the available + // currencies. + ITEM_8_PRICE = 802; + + // Data Type: STRING. The price unit of item 8 of the table. Must match one + // of the predefined price units. + ITEM_8_UNIT = 803; + + // Data Type: URL_LIST. The final URLs of item 8 of the table when using + // Upgraded URLs. + ITEM_8_FINAL_URLS = 804; + + // Data Type: URL_LIST. The final mobile URLs of item 8 of the table when + // using Upgraded URLs. + ITEM_8_FINAL_MOBILE_URLS = 805; + } + + +} diff --git a/google/ads/googleads/v11/enums/product_bidding_category_level.proto b/google/ads/googleads/v11/enums/product_bidding_category_level.proto new file mode 100644 index 000000000..64c94782b --- /dev/null +++ b/google/ads/googleads/v11/enums/product_bidding_category_level.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductBiddingCategoryLevelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Level of a product bidding category. +message ProductBiddingCategoryLevelEnum { + // Enum describing the level of the product bidding category. + enum ProductBiddingCategoryLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Level 1. + LEVEL1 = 2; + + // Level 2. + LEVEL2 = 3; + + // Level 3. + LEVEL3 = 4; + + // Level 4. + LEVEL4 = 5; + + // Level 5. + LEVEL5 = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/product_bidding_category_status.proto b/google/ads/googleads/v11/enums/product_bidding_category_status.proto new file mode 100644 index 000000000..ef621f9be --- /dev/null +++ b/google/ads/googleads/v11/enums/product_bidding_category_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductBiddingCategoryStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::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 { + // 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 obsolete. Used only for reporting purposes. + OBSOLETE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/product_channel.proto b/google/ads/googleads/v11/enums/product_channel.proto new file mode 100644 index 000000000..fa9a24b50 --- /dev/null +++ b/google/ads/googleads/v11/enums/product_channel.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductChannelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing bidding schemes. + +// Locality of a product offer. +message ProductChannelEnum { + // Enum describing the locality of a product offer. + enum ProductChannel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The item is sold online. + ONLINE = 2; + + // The item is sold in local stores. + LOCAL = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/product_channel_exclusivity.proto b/google/ads/googleads/v11/enums/product_channel_exclusivity.proto new file mode 100644 index 000000000..4d2f7c54b --- /dev/null +++ b/google/ads/googleads/v11/enums/product_channel_exclusivity.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductChannelExclusivityProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing bidding schemes. + +// Availability of a product offer. +message ProductChannelExclusivityEnum { + // Enum describing the availability of a product offer. + enum ProductChannelExclusivity { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The item is sold through one channel only, either local stores or online + // as indicated by its ProductChannel. + SINGLE_CHANNEL = 2; + + // The item is matched to its online or local stores counterpart, indicating + // it is available for purchase in both ShoppingProductChannels. + MULTI_CHANNEL = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/product_condition.proto b/google/ads/googleads/v11/enums/product_condition.proto new file mode 100644 index 000000000..29567f774 --- /dev/null +++ b/google/ads/googleads/v11/enums/product_condition.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductConditionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing bidding schemes. + +// Condition of a product offer. +message ProductConditionEnum { + // Enum describing the condition of a product offer. + enum ProductCondition { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The product condition is new. + NEW = 3; + + // The product condition is refurbished. + REFURBISHED = 4; + + // The product condition is used. + USED = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/product_custom_attribute_index.proto b/google/ads/googleads/v11/enums/product_custom_attribute_index.proto new file mode 100644 index 000000000..ec854edab --- /dev/null +++ b/google/ads/googleads/v11/enums/product_custom_attribute_index.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductCustomAttributeIndexProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing product custom attributes. + +// Container for enum describing the index of the product custom attribute. +message ProductCustomAttributeIndexEnum { + // The index of the product custom attribute. + enum ProductCustomAttributeIndex { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // First product custom attribute. + INDEX0 = 7; + + // Second product custom attribute. + INDEX1 = 8; + + // Third product custom attribute. + INDEX2 = 9; + + // Fourth product custom attribute. + INDEX3 = 10; + + // Fifth product custom attribute. + INDEX4 = 11; + } + + +} diff --git a/google/ads/googleads/v11/enums/product_type_level.proto b/google/ads/googleads/v11/enums/product_type_level.proto new file mode 100644 index 000000000..785275eca --- /dev/null +++ b/google/ads/googleads/v11/enums/product_type_level.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductTypeLevelProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing bidding schemes. + +// Level of the type of a product offer. +message ProductTypeLevelEnum { + // Enum describing the level of the type of a product offer. + enum ProductTypeLevel { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Level 1. + LEVEL1 = 7; + + // Level 2. + LEVEL2 = 8; + + // Level 3. + LEVEL3 = 9; + + // Level 4. + LEVEL4 = 10; + + // Level 5. + LEVEL5 = 11; + } + + +} diff --git a/google/ads/googleads/v11/enums/promotion_extension_discount_modifier.proto b/google/ads/googleads/v11/enums/promotion_extension_discount_modifier.proto new file mode 100644 index 000000000..fd4862282 --- /dev/null +++ b/google/ads/googleads/v11/enums/promotion_extension_discount_modifier.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PromotionExtensionDiscountModifierProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing promotion extension discount modifier. + +// Container for enum describing possible a promotion extension +// discount modifier. +message PromotionExtensionDiscountModifierEnum { + // A promotion extension discount modifier. + enum PromotionExtensionDiscountModifier { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // 'Up to'. + UP_TO = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/promotion_extension_occasion.proto b/google/ads/googleads/v11/enums/promotion_extension_occasion.proto new file mode 100644 index 000000000..f87029c36 --- /dev/null +++ b/google/ads/googleads/v11/enums/promotion_extension_occasion.proto @@ -0,0 +1,155 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PromotionExtensionOccasionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing promotion extension occasion. + +// Container for enum describing a promotion extension occasion. +// For more information about the occasions check: +// https://support.google.com/google-ads/answer/7367521 +message PromotionExtensionOccasionEnum { + // A promotion extension occasion. + enum PromotionExtensionOccasion { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // New Year's. + NEW_YEARS = 2; + + // Chinese New Year. + CHINESE_NEW_YEAR = 3; + + // Valentine's Day. + VALENTINES_DAY = 4; + + // Easter. + EASTER = 5; + + // Mother's Day. + MOTHERS_DAY = 6; + + // Father's Day. + FATHERS_DAY = 7; + + // Labor Day. + LABOR_DAY = 8; + + // Back To School. + BACK_TO_SCHOOL = 9; + + // Halloween. + HALLOWEEN = 10; + + // Black Friday. + BLACK_FRIDAY = 11; + + // Cyber Monday. + CYBER_MONDAY = 12; + + // Christmas. + CHRISTMAS = 13; + + // Boxing Day. + BOXING_DAY = 14; + + // Independence Day in any country. + INDEPENDENCE_DAY = 15; + + // National Day in any country. + NATIONAL_DAY = 16; + + // End of any season. + END_OF_SEASON = 17; + + // Winter Sale. + WINTER_SALE = 18; + + // Summer sale. + SUMMER_SALE = 19; + + // Fall Sale. + FALL_SALE = 20; + + // Spring Sale. + SPRING_SALE = 21; + + // Ramadan. + RAMADAN = 22; + + // Eid al-Fitr. + EID_AL_FITR = 23; + + // Eid al-Adha. + EID_AL_ADHA = 24; + + // Singles Day. + SINGLES_DAY = 25; + + // Women's Day. + WOMENS_DAY = 26; + + // Holi. + HOLI = 27; + + // Parent's Day. + PARENTS_DAY = 28; + + // St. Nicholas Day. + ST_NICHOLAS_DAY = 29; + + // Carnival. + CARNIVAL = 30; + + // Epiphany, also known as Three Kings' Day. + EPIPHANY = 31; + + // Rosh Hashanah. + ROSH_HASHANAH = 32; + + // Passover. + PASSOVER = 33; + + // Hanukkah. + HANUKKAH = 34; + + // Diwali. + DIWALI = 35; + + // Navratri. + NAVRATRI = 36; + + // Available in Thai: Songkran. + SONGKRAN = 37; + + // Available in Japanese: Year-end Gift. + YEAR_END_GIFT = 38; + } + + +} diff --git a/google/ads/googleads/v11/enums/promotion_placeholder_field.proto b/google/ads/googleads/v11/enums/promotion_placeholder_field.proto new file mode 100644 index 000000000..5ef8e52eb --- /dev/null +++ b/google/ads/googleads/v11/enums/promotion_placeholder_field.proto @@ -0,0 +1,93 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "PromotionPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Promotion placeholder fields. + +// Values for Promotion placeholder fields. +message PromotionPlaceholderFieldEnum { + // Possible values for Promotion placeholder fields. + enum PromotionPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The text that appears on the ad when the extension is + // shown. + PROMOTION_TARGET = 2; + + // Data Type: STRING. Lets you add "up to" phrase to the promotion, + // in case you have variable promotion rates. + DISCOUNT_MODIFIER = 3; + + // Data Type: INT64. Takes a value in micros, where 1 million micros + // represents 1%, and is shown as a percentage when rendered. + PERCENT_OFF = 4; + + // Data Type: MONEY. Requires a currency and an amount of money. + MONEY_AMOUNT_OFF = 5; + + // Data Type: STRING. A string that the user enters to get the discount. + PROMOTION_CODE = 6; + + // Data Type: MONEY. A minimum spend before the user qualifies for the + // promotion. + ORDERS_OVER_AMOUNT = 7; + + // Data Type: DATE. The start date of the promotion. + PROMOTION_START = 8; + + // Data Type: DATE. The end date of the promotion. + PROMOTION_END = 9; + + // Data Type: STRING. Describes the associated event for the promotion using + // one of the PromotionExtensionOccasion enum values, for example NEW_YEARS. + OCCASION = 10; + + // Data Type: URL_LIST. Final URLs to be used in the ad when using Upgraded + // URLs. + FINAL_URLS = 11; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 12; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 13; + + // Data Type: STRING. A string represented by a language code for the + // promotion. + LANGUAGE = 14; + + // Data Type: STRING. Final URL suffix for the ad when using parallel + // tracking. + FINAL_URL_SUFFIX = 15; + } + + +} diff --git a/google/ads/googleads/v11/enums/proximity_radius_units.proto b/google/ads/googleads/v11/enums/proximity_radius_units.proto new file mode 100644 index 000000000..6cd50a444 --- /dev/null +++ b/google/ads/googleads/v11/enums/proximity_radius_units.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProximityRadiusUnitsProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing proximity radius units. + +// Container for enum describing unit of radius in proximity. +message ProximityRadiusUnitsEnum { + // The unit of radius distance in proximity (for example, MILES) + enum ProximityRadiusUnits { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Miles + MILES = 2; + + // Kilometers + KILOMETERS = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/quality_score_bucket.proto b/google/ads/googleads/v11/enums/quality_score_bucket.proto new file mode 100644 index 000000000..e2f3554d9 --- /dev/null +++ b/google/ads/googleads/v11/enums/quality_score_bucket.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "QualityScoreBucketProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing quality score buckets. + +// The relative performance compared to other advertisers. +message QualityScoreBucketEnum { + // Enum listing the possible quality score buckets. + enum QualityScoreBucket { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Quality of the creative is below average. + BELOW_AVERAGE = 2; + + // Quality of the creative is average. + AVERAGE = 3; + + // Quality of the creative is above average. + ABOVE_AVERAGE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/reach_plan_ad_length.proto b/google/ads/googleads/v11/enums/reach_plan_ad_length.proto new file mode 100644 index 000000000..03b9e185a --- /dev/null +++ b/google/ads/googleads/v11/enums/reach_plan_ad_length.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanAdLengthProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing ad lengths of a plannable video ad. + +// Message describing length of a plannable video ad. +message ReachPlanAdLengthEnum { + // Possible ad length values. + enum ReachPlanAdLength { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // 6 seconds long ad. + SIX_SECONDS = 2; + + // 15 or 20 seconds long ad. + FIFTEEN_OR_TWENTY_SECONDS = 3; + + // More than 20 seconds long ad. + TWENTY_SECONDS_OR_MORE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/reach_plan_age_range.proto b/google/ads/googleads/v11/enums/reach_plan_age_range.proto new file mode 100644 index 000000000..dba2d4ddb --- /dev/null +++ b/google/ads/googleads/v11/enums/reach_plan_age_range.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanAgeRangeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing a plannable age range. + +// Message describing plannable age ranges. +message ReachPlanAgeRangeEnum { + // Possible plannable age range values. + enum ReachPlanAgeRange { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Between 18 and 24 years old. + AGE_RANGE_18_24 = 503001; + + // Between 18 and 34 years old. + AGE_RANGE_18_34 = 2; + + // Between 18 and 44 years old. + AGE_RANGE_18_44 = 3; + + // Between 18 and 49 years old. + AGE_RANGE_18_49 = 4; + + // Between 18 and 54 years old. + AGE_RANGE_18_54 = 5; + + // Between 18 and 64 years old. + AGE_RANGE_18_64 = 6; + + // Between 18 and 65+ years old. + AGE_RANGE_18_65_UP = 7; + + // Between 21 and 34 years old. + AGE_RANGE_21_34 = 8; + + // Between 25 and 34 years old. + AGE_RANGE_25_34 = 503002; + + // Between 25 and 44 years old. + AGE_RANGE_25_44 = 9; + + // Between 25 and 49 years old. + AGE_RANGE_25_49 = 10; + + // Between 25 and 54 years old. + AGE_RANGE_25_54 = 11; + + // Between 25 and 64 years old. + AGE_RANGE_25_64 = 12; + + // Between 25 and 65+ years old. + AGE_RANGE_25_65_UP = 13; + + // Between 35 and 44 years old. + AGE_RANGE_35_44 = 503003; + + // Between 35 and 49 years old. + AGE_RANGE_35_49 = 14; + + // Between 35 and 54 years old. + AGE_RANGE_35_54 = 15; + + // Between 35 and 64 years old. + AGE_RANGE_35_64 = 16; + + // Between 35 and 65+ years old. + AGE_RANGE_35_65_UP = 17; + + // Between 45 and 54 years old. + AGE_RANGE_45_54 = 503004; + + // Between 45 and 64 years old. + AGE_RANGE_45_64 = 18; + + // Between 45 and 65+ years old. + AGE_RANGE_45_65_UP = 19; + + // Between 50 and 65+ years old. + AGE_RANGE_50_65_UP = 20; + + // Between 55 and 64 years old. + AGE_RANGE_55_64 = 503005; + + // Between 55 and 65+ years old. + AGE_RANGE_55_65_UP = 21; + + // 65 years old and beyond. + AGE_RANGE_65_UP = 503006; + } + + +} diff --git a/google/ads/googleads/v11/enums/reach_plan_network.proto b/google/ads/googleads/v11/enums/reach_plan_network.proto new file mode 100644 index 000000000..349201c3f --- /dev/null +++ b/google/ads/googleads/v11/enums/reach_plan_network.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanNetworkProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing a plannable network. + +// Container for enum describing plannable networks. +message ReachPlanNetworkEnum { + // Possible plannable network values. + enum ReachPlanNetwork { + // Not specified. + UNSPECIFIED = 0; + + // Used as a return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // YouTube network. + YOUTUBE = 2; + + // Google Video Partners (GVP) network. + GOOGLE_VIDEO_PARTNERS = 3; + + // A combination of the YouTube network and the Google Video Partners + // network. + YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/real_estate_placeholder_field.proto b/google/ads/googleads/v11/enums/real_estate_placeholder_field.proto new file mode 100644 index 000000000..c305a8688 --- /dev/null +++ b/google/ads/googleads/v11/enums/real_estate_placeholder_field.proto @@ -0,0 +1,113 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "RealEstatePlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Real Estate placeholder fields. + +// Values for Real Estate placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message RealEstatePlaceholderFieldEnum { + // Possible values for Real Estate placeholder fields. + enum RealEstatePlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Unique ID. + LISTING_ID = 2; + + // Data Type: STRING. Main headline with listing name to be shown in dynamic + // ad. + LISTING_NAME = 3; + + // Data Type: STRING. City name to be shown in dynamic ad. + CITY_NAME = 4; + + // Data Type: STRING. Description of listing to be shown in dynamic ad. + DESCRIPTION = 5; + + // Data Type: STRING. Complete listing address, including postal code. + ADDRESS = 6; + + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + PRICE = 7; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 8; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 9; + + // Data Type: STRING. Type of property (house, condo, apartment, etc.) used + // to group like items together for recommendation engine. + PROPERTY_TYPE = 10; + + // Data Type: STRING. Type of listing (resale, rental, foreclosure, etc.) + // used to group like items together for recommendation engine. + LISTING_TYPE = 11; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 12; + + // Data Type: URL_LIST. Final URLs to be used in ad when using Upgraded + // URLs; the more specific the better (for example, the individual URL of a + // specific listing and its location). + FINAL_URLS = 13; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 14; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 15; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 16; + + // Data Type: STRING_LIST. List of recommended listing IDs to show together + // with this item. + SIMILAR_LISTING_IDS = 17; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 18; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 19; + } + + +} diff --git a/google/ads/googleads/v11/enums/recommendation_type.proto b/google/ads/googleads/v11/enums/recommendation_type.proto new file mode 100644 index 000000000..955cf2706 --- /dev/null +++ b/google/ads/googleads/v11/enums/recommendation_type.proto @@ -0,0 +1,131 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Recommendation types. + +// Container for enum describing types of recommendations. +message RecommendationTypeEnum { + // Types of recommendations. + enum RecommendationType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Budget recommendation for campaigns that are currently budget-constrained + // (as opposed to the FORECASTING_CAMPAIGN_BUDGET recommendation, which + // applies to campaigns that are expected to become budget-constrained in + // the future). + CAMPAIGN_BUDGET = 2; + + // Keyword recommendation. + KEYWORD = 3; + + // Recommendation to add a new text ad. + TEXT_AD = 4; + + // Recommendation to update a campaign to use a Target CPA bidding strategy. + TARGET_CPA_OPT_IN = 5; + + // Recommendation to update a campaign to use the Maximize Conversions + // bidding strategy. + MAXIMIZE_CONVERSIONS_OPT_IN = 6; + + // Recommendation to enable Enhanced Cost Per Click for a campaign. + ENHANCED_CPC_OPT_IN = 7; + + // Recommendation to start showing your campaign's ads on Google Search + // Partners Websites. + SEARCH_PARTNERS_OPT_IN = 8; + + // Recommendation to update a campaign to use a Maximize Clicks bidding + // strategy. + MAXIMIZE_CLICKS_OPT_IN = 9; + + // Recommendation to start using the "Optimize" ad rotation setting for the + // given ad group. + OPTIMIZE_AD_ROTATION = 10; + + // Recommendation to add callout extensions to a campaign. + CALLOUT_EXTENSION = 11; + + // Recommendation to add sitelink extensions to a campaign. + SITELINK_EXTENSION = 12; + + // Recommendation to add call extensions to a campaign. + CALL_EXTENSION = 13; + + // Recommendation to change an existing keyword from one match type to a + // broader match type. + KEYWORD_MATCH_TYPE = 14; + + // Recommendation to move unused budget from one budget to a constrained + // budget. + MOVE_UNUSED_BUDGET = 15; + + // Budget recommendation for campaigns that are expected to become + // budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET + // recommendation, which applies to campaigns that are currently + // budget-constrained). + FORECASTING_CAMPAIGN_BUDGET = 16; + + // Recommendation to update a campaign to use a Target ROAS bidding + // strategy. + TARGET_ROAS_OPT_IN = 17; + + // Recommendation to add a new responsive search ad. + RESPONSIVE_SEARCH_AD = 18; + + // Budget recommendation for campaigns whose ROI is predicted to increase + // with a budget adjustment. + MARGINAL_ROI_CAMPAIGN_BUDGET = 19; + + // Recommendation to expand keywords to broad match for fully automated + // conversion-based bidding campaigns. + USE_BROAD_MATCH_KEYWORD = 20; + + // Recommendation to add new responsive search ad assets. + RESPONSIVE_SEARCH_AD_ASSET = 21; + + // Recommendation to upgrade a Smart Shopping campaign to a Performance Max + // campaign. + UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX = 22; + + // Recommendation to improve strength of responsive search ad. + RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH = 23; + + // Recommendation to update a campaign to use Display Expansion. + DISPLAY_EXPANSION_OPT_IN = 24; + + // Recommendation to upgrade a Local campaign to a Performance Max + // campaign. + UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX = 25; + } + + +} diff --git a/google/ads/googleads/v11/enums/resource_change_operation.proto b/google/ads/googleads/v11/enums/resource_change_operation.proto new file mode 100644 index 000000000..a1726407b --- /dev/null +++ b/google/ads/googleads/v11/enums/resource_change_operation.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ResourceChangeOperationProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the resource change operations in change event. + +// Container for enum describing resource change operations +// in the ChangeEvent resource. +message ResourceChangeOperationEnum { + // The operation on the changed resource in change_event resource. + enum ResourceChangeOperation { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified operation unknown + // in this version. + UNKNOWN = 1; + + // The resource was created. + CREATE = 2; + + // The resource was modified. + UPDATE = 3; + + // The resource was removed. + REMOVE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/resource_limit_type.proto b/google/ads/googleads/v11/enums/resource_limit_type.proto new file mode 100644 index 000000000..48dc770fa --- /dev/null +++ b/google/ads/googleads/v11/enums/resource_limit_type.proto @@ -0,0 +1,461 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ResourceLimitTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing possible resource limit types. +message ResourceLimitTypeEnum { + // Resource limit type. + enum ResourceLimitType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents an unclassified operation unknown + // in this version. + UNKNOWN = 1; + + // Number of ENABLED and PAUSED campaigns per customer. + CAMPAIGNS_PER_CUSTOMER = 2; + + // Number of ENABLED and PAUSED base campaigns per customer. + BASE_CAMPAIGNS_PER_CUSTOMER = 3; + + // Number of ENABLED and PAUSED experiment campaigns per customer. + EXPERIMENT_CAMPAIGNS_PER_CUSTOMER = 105; + + // Number of ENABLED and PAUSED Hotel campaigns per customer. + HOTEL_CAMPAIGNS_PER_CUSTOMER = 4; + + // Number of ENABLED and PAUSED Smart Shopping campaigns per customer. + SMART_SHOPPING_CAMPAIGNS_PER_CUSTOMER = 5; + + // Number of ENABLED ad groups per campaign. + AD_GROUPS_PER_CAMPAIGN = 6; + + // Number of ENABLED ad groups per Shopping campaign. + AD_GROUPS_PER_SHOPPING_CAMPAIGN = 8; + + // Number of ENABLED ad groups per Hotel campaign. + AD_GROUPS_PER_HOTEL_CAMPAIGN = 9; + + // Number of ENABLED reporting ad groups per local campaign. + REPORTING_AD_GROUPS_PER_LOCAL_CAMPAIGN = 10; + + // Number of ENABLED reporting ad groups per App campaign. It includes app + // campaign and app campaign for engagement. + REPORTING_AD_GROUPS_PER_APP_CAMPAIGN = 11; + + // Number of ENABLED managed ad groups per smart campaign. + MANAGED_AD_GROUPS_PER_SMART_CAMPAIGN = 52; + + // Number of ENABLED ad group criteria per customer. + // An ad group criterion is considered as ENABLED if: + // 1. it's not REMOVED + // 2. its ad group is not REMOVED + // 3. its campaign is not REMOVED. + AD_GROUP_CRITERIA_PER_CUSTOMER = 12; + + // Number of ad group criteria across all base campaigns for a customer. + BASE_AD_GROUP_CRITERIA_PER_CUSTOMER = 13; + + // Number of ad group criteria across all experiment campaigns for a + // customer. + EXPERIMENT_AD_GROUP_CRITERIA_PER_CUSTOMER = 107; + + // Number of ENABLED ad group criteria per campaign. + // An ad group criterion is considered as ENABLED if: + // 1. it's not REMOVED + // 2. its ad group is not REMOVED. + AD_GROUP_CRITERIA_PER_CAMPAIGN = 14; + + // Number of ENABLED campaign criteria per customer. + CAMPAIGN_CRITERIA_PER_CUSTOMER = 15; + + // Number of ENABLED campaign criteria across all base campaigns for a + // customer. + BASE_CAMPAIGN_CRITERIA_PER_CUSTOMER = 16; + + // Number of ENABLED campaign criteria across all experiment campaigns for a + // customer. + EXPERIMENT_CAMPAIGN_CRITERIA_PER_CUSTOMER = 108; + + // Number of ENABLED webpage criteria per customer, including + // campaign level and ad group level. + WEBPAGE_CRITERIA_PER_CUSTOMER = 17; + + // Number of ENABLED webpage criteria across all base campaigns for + // a customer. + BASE_WEBPAGE_CRITERIA_PER_CUSTOMER = 18; + + // Meximum number of ENABLED webpage criteria across all experiment + // campaigns for a customer. + EXPERIMENT_WEBPAGE_CRITERIA_PER_CUSTOMER = 19; + + // Number of combined audience criteria per ad group. + COMBINED_AUDIENCE_CRITERIA_PER_AD_GROUP = 20; + + // Limit for placement criterion type group in customer negative criterion. + CUSTOMER_NEGATIVE_PLACEMENT_CRITERIA_PER_CUSTOMER = 21; + + // Limit for YouTube TV channels in customer negative criterion. + CUSTOMER_NEGATIVE_YOUTUBE_CHANNEL_CRITERIA_PER_CUSTOMER = 22; + + // Number of ENABLED criteria per ad group. + CRITERIA_PER_AD_GROUP = 23; + + // Number of listing group criteria per ad group. + LISTING_GROUPS_PER_AD_GROUP = 24; + + // Number of ENABLED explicitly shared budgets per customer. + EXPLICITLY_SHARED_BUDGETS_PER_CUSTOMER = 25; + + // Number of ENABLED implicitly shared budgets per customer. + IMPLICITLY_SHARED_BUDGETS_PER_CUSTOMER = 26; + + // Number of combined audience criteria per campaign. + COMBINED_AUDIENCE_CRITERIA_PER_CAMPAIGN = 27; + + // Number of negative keywords per campaign. + NEGATIVE_KEYWORDS_PER_CAMPAIGN = 28; + + // Number of excluded campaign criteria in placement dimension, for example, + // placement, mobile application, YouTube channel, etc. The API criterion + // type is NOT limited to placement only, and this does not include + // exclusions at the ad group or other levels. + NEGATIVE_PLACEMENTS_PER_CAMPAIGN = 29; + + // Number of geo targets per campaign. + GEO_TARGETS_PER_CAMPAIGN = 30; + + // Number of negative IP blocks per campaign. + NEGATIVE_IP_BLOCKS_PER_CAMPAIGN = 32; + + // Number of proximity targets per campaign. + PROXIMITIES_PER_CAMPAIGN = 33; + + // Number of listing scopes per Shopping campaign. + LISTING_SCOPES_PER_SHOPPING_CAMPAIGN = 34; + + // Number of listing scopes per non-Shopping campaign. + LISTING_SCOPES_PER_NON_SHOPPING_CAMPAIGN = 35; + + // Number of criteria per negative keyword shared set. + NEGATIVE_KEYWORDS_PER_SHARED_SET = 36; + + // Number of criteria per negative placement shared set. + NEGATIVE_PLACEMENTS_PER_SHARED_SET = 37; + + // Default number of shared sets allowed per type per customer. + SHARED_SETS_PER_CUSTOMER_FOR_TYPE_DEFAULT = 40; + + // Number of shared sets of negative placement list type for a + // manager customer. + SHARED_SETS_PER_CUSTOMER_FOR_NEGATIVE_PLACEMENT_LIST_LOWER = 41; + + // Number of hotel_advance_booking_window bid modifiers per ad group. + HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP = 44; + + // Number of ENABLED shared bidding strategies per customer. + BIDDING_STRATEGIES_PER_CUSTOMER = 45; + + // Number of open basic user lists per customer. + BASIC_USER_LISTS_PER_CUSTOMER = 47; + + // Number of open logical user lists per customer. + LOGICAL_USER_LISTS_PER_CUSTOMER = 48; + + // Number of open rule based user lists per customer. + RULE_BASED_USER_LISTS_PER_CUSTOMER = 153; + + // Number of ENABLED and PAUSED ad group ads across all base campaigns for a + // customer. + BASE_AD_GROUP_ADS_PER_CUSTOMER = 53; + + // Number of ENABLED and PAUSED ad group ads across all experiment campaigns + // for a customer. + EXPERIMENT_AD_GROUP_ADS_PER_CUSTOMER = 54; + + // Number of ENABLED and PAUSED ad group ads per campaign. + AD_GROUP_ADS_PER_CAMPAIGN = 55; + + // Number of ENABLED ads per ad group that do not fall in to other buckets. + // Includes text and many other types. + TEXT_AND_OTHER_ADS_PER_AD_GROUP = 56; + + // Number of ENABLED image ads per ad group. + IMAGE_ADS_PER_AD_GROUP = 57; + + // Number of ENABLED shopping smart ads per ad group. + SHOPPING_SMART_ADS_PER_AD_GROUP = 58; + + // Number of ENABLED responsive search ads per ad group. + RESPONSIVE_SEARCH_ADS_PER_AD_GROUP = 59; + + // Number of ENABLED app ads per ad group. + APP_ADS_PER_AD_GROUP = 60; + + // Number of ENABLED app engagement ads per ad group. + APP_ENGAGEMENT_ADS_PER_AD_GROUP = 61; + + // Number of ENABLED local ads per ad group. + LOCAL_ADS_PER_AD_GROUP = 62; + + // Number of ENABLED video ads per ad group. + VIDEO_ADS_PER_AD_GROUP = 63; + + // Number of ENABLED lead form CampaignAssets per campaign. + LEAD_FORM_CAMPAIGN_ASSETS_PER_CAMPAIGN = 143; + + // Number of ENABLED promotion CustomerAssets per customer. + PROMOTION_CUSTOMER_ASSETS_PER_CUSTOMER = 79; + + // Number of ENABLED promotion CampaignAssets per campaign. + PROMOTION_CAMPAIGN_ASSETS_PER_CAMPAIGN = 80; + + // Number of ENABLED promotion AdGroupAssets per ad group. + PROMOTION_AD_GROUP_ASSETS_PER_AD_GROUP = 81; + + // Number of ENABLED callout CustomerAssets per customer. + CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER = 134; + + // Number of ENABLED callout CampaignAssets per campaign. + CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN = 135; + + // Number of ENABLED callout AdGroupAssets per ad group. + CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP = 136; + + // Number of ENABLED sitelink CustomerAssets per customer. + SITELINK_CUSTOMER_ASSETS_PER_CUSTOMER = 137; + + // Number of ENABLED sitelink CampaignAssets per campaign. + SITELINK_CAMPAIGN_ASSETS_PER_CAMPAIGN = 138; + + // Number of ENABLED sitelink AdGroupAssets per ad group. + SITELINK_AD_GROUP_ASSETS_PER_AD_GROUP = 139; + + // Number of ENABLED structured snippet CustomerAssets per customer. + STRUCTURED_SNIPPET_CUSTOMER_ASSETS_PER_CUSTOMER = 140; + + // Number of ENABLED structured snippet CampaignAssets per campaign. + STRUCTURED_SNIPPET_CAMPAIGN_ASSETS_PER_CAMPAIGN = 141; + + // Number of ENABLED structured snippet AdGroupAssets per ad group. + STRUCTURED_SNIPPET_AD_GROUP_ASSETS_PER_AD_GROUP = 142; + + // Number of ENABLED mobile app CustomerAssets per customer. + MOBILE_APP_CUSTOMER_ASSETS_PER_CUSTOMER = 144; + + // Number of ENABLED mobile app CampaignAssets per campaign. + MOBILE_APP_CAMPAIGN_ASSETS_PER_CAMPAIGN = 145; + + // Number of ENABLED mobile app AdGroupAssets per ad group. + MOBILE_APP_AD_GROUP_ASSETS_PER_AD_GROUP = 146; + + // Number of ENABLED hotel callout CustomerAssets per customer. + HOTEL_CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER = 147; + + // Number of ENABLED hotel callout CampaignAssets per campaign. + HOTEL_CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN = 148; + + // Number of ENABLED hotel callout AdGroupAssets per ad group. + HOTEL_CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP = 149; + + // Number of ENABLED call CustomerAssets per customer. + CALL_CUSTOMER_ASSETS_PER_CUSTOMER = 150; + + // Number of ENABLED call CampaignAssets per campaign. + CALL_CAMPAIGN_ASSETS_PER_CAMPAIGN = 151; + + // Number of ENABLED call AdGroupAssets per ad group. + CALL_AD_GROUP_ASSETS_PER_AD_GROUP = 152; + + // Number of ENABLED price CustomerAssets per customer. + PRICE_CUSTOMER_ASSETS_PER_CUSTOMER = 154; + + // Number of ENABLED price CampaignAssets per campaign. + PRICE_CAMPAIGN_ASSETS_PER_CAMPAIGN = 155; + + // Number of ENABLED price AdGroupAssets per ad group. + PRICE_AD_GROUP_ASSETS_PER_AD_GROUP = 156; + + // Number of ENABLED page feed asset sets per customer. + PAGE_FEED_ASSET_SETS_PER_CUSTOMER = 157; + + // Number of ENABLED dynamic education feed asset sets per customer. + DYNAMIC_EDUCATION_FEED_ASSET_SETS_PER_CUSTOMER = 158; + + // Number of ENABLED assets per page feed asset set. + ASSETS_PER_PAGE_FEED_ASSET_SET = 159; + + // Number of ENABLED assets per dynamic education asset set. + ASSETS_PER_DYNAMIC_EDUCATION_FEED_ASSET_SET = 160; + + // Number of ENABLED dynamic real estate asset sets per customer. + DYNAMIC_REAL_ESTATE_ASSET_SETS_PER_CUSTOMER = 161; + + // Number of ENABLED assets per dynamic real estate asset set. + ASSETS_PER_DYNAMIC_REAL_ESTATE_ASSET_SET = 162; + + // Number of ENABLED dynamic custom asset sets per customer. + DYNAMIC_CUSTOM_ASSET_SETS_PER_CUSTOMER = 163; + + // Number of ENABLED assets per dynamic custom asset set. + ASSETS_PER_DYNAMIC_CUSTOM_ASSET_SET = 164; + + // Number of ENABLED dynamic hotels and rentals asset sets per + // customer. + DYNAMIC_HOTELS_AND_RENTALS_ASSET_SETS_PER_CUSTOMER = 165; + + // Number of ENABLED assets per dynamic hotels and rentals asset set. + ASSETS_PER_DYNAMIC_HOTELS_AND_RENTALS_ASSET_SET = 166; + + // Number of ENABLED dynamic local asset sets per customer. + DYNAMIC_LOCAL_ASSET_SETS_PER_CUSTOMER = 167; + + // Number of ENABLED assets per dynamic local asset set. + ASSETS_PER_DYNAMIC_LOCAL_ASSET_SET = 168; + + // Number of ENABLED dynamic flights asset sets per customer. + DYNAMIC_FLIGHTS_ASSET_SETS_PER_CUSTOMER = 169; + + // Number of ENABLED assets per dynamic flights asset set. + ASSETS_PER_DYNAMIC_FLIGHTS_ASSET_SET = 170; + + // Number of ENABLED dynamic travel asset sets per customer. + DYNAMIC_TRAVEL_ASSET_SETS_PER_CUSTOMER = 171; + + // Number of ENABLED assets per dynamic travel asset set. + ASSETS_PER_DYNAMIC_TRAVEL_ASSET_SET = 172; + + // Number of ENABLED dynamic jobs asset sets per customer. + DYNAMIC_JOBS_ASSET_SETS_PER_CUSTOMER = 173; + + // Number of ENABLED assets per dynamic jobs asset set. + ASSETS_PER_DYNAMIC_JOBS_ASSET_SET = 174; + + // Number of versions per ad. + VERSIONS_PER_AD = 82; + + // Number of ENABLED user feeds per customer. + USER_FEEDS_PER_CUSTOMER = 90; + + // Number of ENABLED system feeds per customer. + SYSTEM_FEEDS_PER_CUSTOMER = 91; + + // Number of feed attributes per feed. + FEED_ATTRIBUTES_PER_FEED = 92; + + // Number of ENABLED feed items per customer. + FEED_ITEMS_PER_CUSTOMER = 94; + + // Number of ENABLED campaign feeds per customer. + CAMPAIGN_FEEDS_PER_CUSTOMER = 95; + + // Number of ENABLED campaign feeds across all base campaigns for a + // customer. + BASE_CAMPAIGN_FEEDS_PER_CUSTOMER = 96; + + // Number of ENABLED campaign feeds across all experiment campaigns for a + // customer. + EXPERIMENT_CAMPAIGN_FEEDS_PER_CUSTOMER = 109; + + // Number of ENABLED ad group feeds per customer. + AD_GROUP_FEEDS_PER_CUSTOMER = 97; + + // Number of ENABLED ad group feeds across all base campaigns for a + // customer. + BASE_AD_GROUP_FEEDS_PER_CUSTOMER = 98; + + // Number of ENABLED ad group feeds across all experiment campaigns for a + // customer. + EXPERIMENT_AD_GROUP_FEEDS_PER_CUSTOMER = 110; + + // Number of ENABLED ad group feeds per campaign. + AD_GROUP_FEEDS_PER_CAMPAIGN = 99; + + // Number of ENABLED feed items per customer. + FEED_ITEM_SETS_PER_CUSTOMER = 100; + + // Number of feed items per feed item set. + FEED_ITEMS_PER_FEED_ITEM_SET = 101; + + // Number of ENABLED campaign experiments per customer. + CAMPAIGN_EXPERIMENTS_PER_CUSTOMER = 112; + + // Number of video experiment arms per experiment. + EXPERIMENT_ARMS_PER_VIDEO_EXPERIMENT = 113; + + // Number of owned labels per customer. + OWNED_LABELS_PER_CUSTOMER = 115; + + // Number of applied labels per campaign. + LABELS_PER_CAMPAIGN = 117; + + // Number of applied labels per ad group. + LABELS_PER_AD_GROUP = 118; + + // Number of applied labels per ad group ad. + LABELS_PER_AD_GROUP_AD = 119; + + // Number of applied labels per ad group criterion. + LABELS_PER_AD_GROUP_CRITERION = 120; + + // Number of customers with a single label applied. + TARGET_CUSTOMERS_PER_LABEL = 121; + + // Number of ENABLED keyword plans per user per customer. + // The limit is applied per pair because by default a plan + // is private to a user of a customer. Each user of a customer has their own + // independent limit. + KEYWORD_PLANS_PER_USER_PER_CUSTOMER = 122; + + // Number of keyword plan ad group keywords per keyword plan. + KEYWORD_PLAN_AD_GROUP_KEYWORDS_PER_KEYWORD_PLAN = 123; + + // Number of keyword plan ad groups per keyword plan. + KEYWORD_PLAN_AD_GROUPS_PER_KEYWORD_PLAN = 124; + + // Number of keyword plan negative keywords (both campaign and ad group) per + // keyword plan. + KEYWORD_PLAN_NEGATIVE_KEYWORDS_PER_KEYWORD_PLAN = 125; + + // Number of keyword plan campaigns per keyword plan. + KEYWORD_PLAN_CAMPAIGNS_PER_KEYWORD_PLAN = 126; + + // Number of ENABLED conversion actions per customer. + CONVERSION_ACTIONS_PER_CUSTOMER = 128; + + // Number of operations in a single batch job. + BATCH_JOB_OPERATIONS_PER_JOB = 130; + + // Number of PENDING or ENABLED batch jobs per customer. + BATCH_JOBS_PER_CUSTOMER = 131; + + // Number of hotel check-in date range bid modifiers per ad agroup. + HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP = 132; + } + + +} diff --git a/google/ads/googleads/v11/enums/response_content_type.proto b/google/ads/googleads/v11/enums/response_content_type.proto new file mode 100644 index 000000000..4c36b1470 --- /dev/null +++ b/google/ads/googleads/v11/enums/response_content_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ResponseContentTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the response content types used in mutate operations. + +// Container for possible response content types. +message ResponseContentTypeEnum { + // Possible response content types. + enum ResponseContentType { + // Not specified. Will return the resource name only in the response. + UNSPECIFIED = 0; + + // 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. + MUTABLE_RESOURCE = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/search_engine_results_page_type.proto b/google/ads/googleads/v11/enums/search_engine_results_page_type.proto new file mode 100644 index 000000000..5e55794dc --- /dev/null +++ b/google/ads/googleads/v11/enums/search_engine_results_page_type.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SearchEngineResultsPageTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing search engine results page types. + +// The type of the search engine results page. +message SearchEngineResultsPageTypeEnum { + // The type of the search engine results page. + enum SearchEngineResultsPageType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Only ads were contained in the search engine results page. + ADS_ONLY = 2; + + // Only organic results were contained in the search engine results page. + ORGANIC_ONLY = 3; + + // Both ads and organic results were contained in the search engine results + // page. + ADS_AND_ORGANIC = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/search_term_match_type.proto b/google/ads/googleads/v11/enums/search_term_match_type.proto new file mode 100644 index 000000000..4f63826bf --- /dev/null +++ b/google/ads/googleads/v11/enums/search_term_match_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SearchTermMatchTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing search term match types. + +// Container for enum describing match types for a keyword triggering an ad. +message SearchTermMatchTypeEnum { + // Possible match types for a keyword triggering an ad, including variants. + enum SearchTermMatchType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Broad match. + BROAD = 2; + + // Exact match. + EXACT = 3; + + // Phrase match. + PHRASE = 4; + + // Exact match (close variant). + NEAR_EXACT = 5; + + // Phrase match (close variant). + NEAR_PHRASE = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/search_term_targeting_status.proto b/google/ads/googleads/v11/enums/search_term_targeting_status.proto new file mode 100644 index 000000000..a6e0ceed7 --- /dev/null +++ b/google/ads/googleads/v11/enums/search_term_targeting_status.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SearchTermTargetingStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing search term targeting statuses. + +// Container for enum indicating whether a search term is one of your targeted +// or excluded keywords. +message SearchTermTargetingStatusEnum { + // Indicates whether the search term is one of your targeted or excluded + // keywords. + enum SearchTermTargetingStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Search term is added to targeted keywords. + ADDED = 2; + + // Search term matches a negative keyword. + EXCLUDED = 3; + + // Search term has been both added and excluded. + ADDED_EXCLUDED = 4; + + // Search term is neither targeted nor excluded. + NONE = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/seasonality_event_scope.proto b/google/ads/googleads/v11/enums/seasonality_event_scope.proto new file mode 100644 index 000000000..1d65abcaa --- /dev/null +++ b/google/ads/googleads/v11/enums/seasonality_event_scope.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SeasonalityEventScopeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing seasonality event status. + +// Message describing seasonality event scopes. The two types of seasonality +// events are BiddingSeasonalityAdjustments and BiddingDataExclusions. +message SeasonalityEventScopeEnum { + // The possible scopes of a Seasonality Event. + enum SeasonalityEventScope { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The seasonality event is applied to all the customer's traffic for + // supported advertising channel types and device types. The CUSTOMER scope + // cannot be used in mutates. + CUSTOMER = 2; + + // The seasonality event is applied to all specified campaigns. + CAMPAIGN = 4; + + // The seasonality event is applied to all campaigns that belong to + // specified channel types. + CHANNEL = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/seasonality_event_status.proto b/google/ads/googleads/v11/enums/seasonality_event_status.proto new file mode 100644 index 000000000..34a3d0b7f --- /dev/null +++ b/google/ads/googleads/v11/enums/seasonality_event_status.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SeasonalityEventStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing seasonality event status. + +// Message describing seasonality event statuses. The two types of seasonality +// events are BiddingSeasonalityAdjustments and BiddingDataExclusions. +message SeasonalityEventStatusEnum { + // The possible statuses of a Seasonality Event. + enum SeasonalityEventStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The seasonality event is enabled. + ENABLED = 2; + + // The seasonality event is removed. + REMOVED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/served_asset_field_type.proto b/google/ads/googleads/v11/enums/served_asset_field_type.proto new file mode 100644 index 000000000..fa72cc06d --- /dev/null +++ b/google/ads/googleads/v11/enums/served_asset_field_type.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ServedAssetFieldTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing policy review statuses. + +// Container for enum describing possible asset field types. +message ServedAssetFieldTypeEnum { + // The possible asset field types. + enum ServedAssetFieldType { + // No value has been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // + // This is a response-only value. + UNKNOWN = 1; + + // The asset is used in headline 1. + HEADLINE_1 = 2; + + // The asset is used in headline 2. + HEADLINE_2 = 3; + + // The asset is used in headline 3. + HEADLINE_3 = 4; + + // The asset is used in description 1. + DESCRIPTION_1 = 5; + + // The asset is used in description 2. + DESCRIPTION_2 = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/shared_set_status.proto b/google/ads/googleads/v11/enums/shared_set_status.proto new file mode 100644 index 000000000..9298aadf5 --- /dev/null +++ b/google/ads/googleads/v11/enums/shared_set_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing shared set statuses. + +// Container for enum describing types of shared set statuses. +message SharedSetStatusEnum { + // Enum listing the possible shared set statuses. + enum SharedSetStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The shared set is enabled. + ENABLED = 2; + + // The shared set is removed and can no longer be used. + REMOVED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/shared_set_type.proto b/google/ads/googleads/v11/enums/shared_set_type.proto new file mode 100644 index 000000000..6aeb46cdb --- /dev/null +++ b/google/ads/googleads/v11/enums/shared_set_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing shared set types. + +// Container for enum describing types of shared sets. +message SharedSetTypeEnum { + // Enum listing the possible shared set types. + enum SharedSetType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // A set of keywords that can be excluded from targeting. + NEGATIVE_KEYWORDS = 2; + + // A set of placements that can be excluded from targeting. + NEGATIVE_PLACEMENTS = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/simulation_modification_method.proto b/google/ads/googleads/v11/enums/simulation_modification_method.proto new file mode 100644 index 000000000..f3614c7de --- /dev/null +++ b/google/ads/googleads/v11/enums/simulation_modification_method.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SimulationModificationMethodProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing simulation modification methods. + +// Container for enum describing the method by which a simulation modifies +// a field. +message SimulationModificationMethodEnum { + // Enum describing the method by which a simulation modifies a field. + enum SimulationModificationMethod { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The values in a simulation were applied to all children of a given + // resource uniformly. Overrides on child resources were not respected. + UNIFORM = 2; + + // The values in a simulation were applied to the given resource. + // Overrides on child resources were respected, and traffic estimates + // do not include these resources. + DEFAULT = 3; + + // The values in a simulation were all scaled by the same factor. + // For example, in a simulated TargetCpa campaign, the campaign target and + // all ad group targets were scaled by a factor of X. + SCALING = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/simulation_type.proto b/google/ads/googleads/v11/enums/simulation_type.proto new file mode 100644 index 000000000..5dc793a3c --- /dev/null +++ b/google/ads/googleads/v11/enums/simulation_type.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SimulationTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing simulation types. + +// Container for enum describing the field a simulation modifies. +message SimulationTypeEnum { + // Enum describing the field a simulation modifies. + enum SimulationType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The simulation is for a CPC bid. + CPC_BID = 2; + + // The simulation is for a CPV bid. + CPV_BID = 3; + + // The simulation is for a CPA target. + TARGET_CPA = 4; + + // The simulation is for a bid modifier. + BID_MODIFIER = 5; + + // The simulation is for a ROAS target. + TARGET_ROAS = 6; + + // The simulation is for a percent CPC bid. + PERCENT_CPC_BID = 7; + + // The simulation is for an impression share target. + TARGET_IMPRESSION_SHARE = 8; + + // The simulation is for a budget. + BUDGET = 9; + } + + +} diff --git a/google/ads/googleads/v11/enums/sitelink_placeholder_field.proto b/google/ads/googleads/v11/enums/sitelink_placeholder_field.proto new file mode 100644 index 000000000..576009ea2 --- /dev/null +++ b/google/ads/googleads/v11/enums/sitelink_placeholder_field.proto @@ -0,0 +1,67 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SitelinkPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Sitelink placeholder fields. + +// Values for Sitelink placeholder fields. +message SitelinkPlaceholderFieldEnum { + // Possible values for Sitelink placeholder fields. + enum SitelinkPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The link text for your sitelink. + TEXT = 2; + + // Data Type: STRING. First line of the sitelink description. + LINE_1 = 3; + + // Data Type: STRING. Second line of the sitelink description. + LINE_2 = 4; + + // Data Type: URL_LIST. Final URLs for the sitelink when using Upgraded + // URLs. + FINAL_URLS = 5; + + // Data Type: URL_LIST. Final Mobile URLs for the sitelink when using + // Upgraded URLs. + FINAL_MOBILE_URLS = 6; + + // Data Type: URL. Tracking template for the sitelink when using Upgraded + // URLs. + TRACKING_URL = 7; + + // Data Type: STRING. Final URL suffix for sitelink when using parallel + // tracking. + FINAL_URL_SUFFIX = 8; + } + + +} diff --git a/google/ads/googleads/v11/enums/sk_ad_network_ad_event_type.proto b/google/ads/googleads/v11/enums/sk_ad_network_ad_event_type.proto new file mode 100644 index 000000000..55c7edc93 --- /dev/null +++ b/google/ads/googleads/v11/enums/sk_ad_network_ad_event_type.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SkAdNetworkAdEventTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing SkAdNetwork Ad Event Types. + +// Container for enumeration of SkAdNetwork ad event types. +message SkAdNetworkAdEventTypeEnum { + // Enumerates SkAdNetwork ad event types + enum SkAdNetworkAdEventType { + // 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; + + // The user interacted with the ad. + INTERACTION = 3; + + // The user viewed the ad. + VIEW = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/sk_ad_network_attribution_credit.proto b/google/ads/googleads/v11/enums/sk_ad_network_attribution_credit.proto new file mode 100644 index 000000000..61e17f73a --- /dev/null +++ b/google/ads/googleads/v11/enums/sk_ad_network_attribution_credit.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SkAdNetworkAttributionCreditProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing SkAdNetwork attribution credits. + +// Container for enumeration of SkAdNetwork attribution credits. +message SkAdNetworkAttributionCreditEnum { + // Enumerates SkAdNetwork attribution credits. + enum SkAdNetworkAttributionCredit { + // Default value. This value is equivalent to null. + UNSPECIFIED = 0; + + // The value is unknown in this API version. The true enum value cannot be + // returned in this API version or is not supported yet. + UNKNOWN = 1; + + // The value was not present in the postback or we do not have this data for + // other reasons. + UNAVAILABLE = 2; + + // Google was the ad network that won ad attribution. + WON = 3; + + // Google qualified for attribution, but didn't win. + CONTRIBUTED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/sk_ad_network_user_type.proto b/google/ads/googleads/v11/enums/sk_ad_network_user_type.proto new file mode 100644 index 000000000..3d92979f7 --- /dev/null +++ b/google/ads/googleads/v11/enums/sk_ad_network_user_type.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SkAdNetworkUserTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing SkAdNetwork user types. + +// Container for enumeration of SkAdNetwork user types. +message SkAdNetworkUserTypeEnum { + // Enumerates SkAdNetwork user types + enum SkAdNetworkUserType { + // 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; + + // The user installed the app for the first time. + NEW_INSTALLER = 3; + + // The user has previously installed the app. + REINSTALLER = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/slot.proto b/google/ads/googleads/v11/enums/slot.proto new file mode 100644 index 000000000..07a785924 --- /dev/null +++ b/google/ads/googleads/v11/enums/slot.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SlotProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing slots. + +// Container for enumeration of possible positions of the Ad. +message SlotEnum { + // Enumerates possible positions of the Ad. + enum Slot { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Google search: Side. + SEARCH_SIDE = 2; + + // Google search: Top. + SEARCH_TOP = 3; + + // Google search: Other. + SEARCH_OTHER = 4; + + // Google Display Network. + CONTENT = 5; + + // Search partners: Top. + SEARCH_PARTNER_TOP = 6; + + // Search partners: Other. + SEARCH_PARTNER_OTHER = 7; + + // Cross-network. + MIXED = 8; + } + + +} diff --git a/google/ads/googleads/v11/enums/spending_limit_type.proto b/google/ads/googleads/v11/enums/spending_limit_type.proto new file mode 100644 index 000000000..c9e3af18c --- /dev/null +++ b/google/ads/googleads/v11/enums/spending_limit_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SpendingLimitTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing SpendingLimit types. + +// Message describing spending limit types. +message SpendingLimitTypeEnum { + // The possible spending limit types used by certain resources as an + // alternative to absolute money values in micros. + enum SpendingLimitType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Infinite, indicates unlimited spending power. + INFINITE = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/structured_snippet_placeholder_field.proto b/google/ads/googleads/v11/enums/structured_snippet_placeholder_field.proto new file mode 100644 index 000000000..5a1063371 --- /dev/null +++ b/google/ads/googleads/v11/enums/structured_snippet_placeholder_field.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "StructuredSnippetPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Structured Snippet placeholder fields. + +// Values for Structured Snippet placeholder fields. +message StructuredSnippetPlaceholderFieldEnum { + // Possible values for Structured Snippet placeholder fields. + enum StructuredSnippetPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. The category of snippet of your products/services. + // Must match exactly one of the predefined structured snippets headers. + // For a list, visit + // https://developers.google.com/adwords/api/docs/appendix/structured-snippet-headers + HEADER = 2; + + // Data Type: STRING_LIST. Text values that describe your products/services. + // All text must be family safe. Special or non-ASCII characters are not + // permitted. A snippet can be at most 25 characters. + SNIPPETS = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/summary_row_setting.proto b/google/ads/googleads/v11/enums/summary_row_setting.proto new file mode 100644 index 000000000..177a2e8cc --- /dev/null +++ b/google/ads/googleads/v11/enums/summary_row_setting.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SummaryRowSettingProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing summary row setting. + +// Indicates summary row setting in request parameter. +message SummaryRowSettingEnum { + // Enum describing return summary row settings. + enum SummaryRowSetting { + // Not specified. + UNSPECIFIED = 0; + + // Represent unknown values of return summary row. + UNKNOWN = 1; + + // Do not return summary row. + NO_SUMMARY_ROW = 2; + + // Return summary row along with results. The summary row will be returned + // in the last batch alone (last batch will contain no results). + SUMMARY_ROW_WITH_RESULTS = 3; + + // Return summary row only and return no results. + SUMMARY_ROW_ONLY = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/system_managed_entity_source.proto b/google/ads/googleads/v11/enums/system_managed_entity_source.proto new file mode 100644 index 000000000..223ef53fa --- /dev/null +++ b/google/ads/googleads/v11/enums/system_managed_entity_source.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SystemManagedEntitySourceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing system managed entity sources. + +// Container for enum describing possible system managed entity sources. +message SystemManagedResourceSourceEnum { + // Enum listing the possible system managed entity sources. + enum SystemManagedResourceSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Generated ad variations experiment ad. + AD_VARIATIONS = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/target_cpa_opt_in_recommendation_goal.proto b/google/ads/googleads/v11/enums/target_cpa_opt_in_recommendation_goal.proto new file mode 100644 index 000000000..39d30f10d --- /dev/null +++ b/google/ads/googleads/v11/enums/target_cpa_opt_in_recommendation_goal.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TargetCpaOptInRecommendationGoalProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing TargetCpaOptIn recommendation goals. + +// Container for enum describing goals for TargetCpaOptIn recommendation. +message TargetCpaOptInRecommendationGoalEnum { + // Goal of TargetCpaOptIn recommendation. + enum TargetCpaOptInRecommendationGoal { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Recommendation to set Target CPA to maintain the same cost. + SAME_COST = 2; + + // Recommendation to set Target CPA to maintain the same conversions. + SAME_CONVERSIONS = 3; + + // Recommendation to set Target CPA to maintain the same CPA. + SAME_CPA = 4; + + // Recommendation to set Target CPA to a value that is as close as possible + // to, yet lower than, the actual CPA (computed for past 28 days). + CLOSEST_CPA = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/target_impression_share_location.proto b/google/ads/googleads/v11/enums/target_impression_share_location.proto new file mode 100644 index 000000000..0188383d9 --- /dev/null +++ b/google/ads/googleads/v11/enums/target_impression_share_location.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TargetImpressionShareLocationProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing target impression share goal. + +// Container for enum describing where on the first search results page the +// automated bidding system should target impressions for the +// TargetImpressionShare bidding strategy. +message TargetImpressionShareLocationEnum { + // Enum describing possible goals. + enum TargetImpressionShareLocation { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Any location on the web page. + ANYWHERE_ON_PAGE = 2; + + // Top box of ads. + TOP_OF_PAGE = 3; + + // Top slot in the top box of ads. + ABSOLUTE_TOP_OF_PAGE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/targeting_dimension.proto b/google/ads/googleads/v11/enums/targeting_dimension.proto new file mode 100644 index 000000000..54c1a71db --- /dev/null +++ b/google/ads/googleads/v11/enums/targeting_dimension.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TargetingDimensionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing criteria types. + +// The dimensions that can be targeted. +message TargetingDimensionEnum { + // Enum describing possible targeting dimensions. + enum TargetingDimension { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Keyword criteria, for example, 'mars cruise'. KEYWORD may be used as a + // custom bid dimension. Keywords are always a targeting dimension, so may + // not be set as a target "ALL" dimension with TargetRestriction. + KEYWORD = 2; + + // Audience criteria, which include user list, user interest, custom + // affinity, and custom in market. + AUDIENCE = 3; + + // Topic criteria for targeting categories of content, for example, + // 'category::Animals>Pets' Used for Display and Video targeting. + TOPIC = 4; + + // Criteria for targeting gender. + GENDER = 5; + + // Criteria for targeting age ranges. + AGE_RANGE = 6; + + // Placement criteria, which include websites like 'www.flowers4sale.com', + // as well as mobile applications, mobile app categories, YouTube videos, + // and YouTube channels. + PLACEMENT = 7; + + // Criteria for parental status targeting. + PARENTAL_STATUS = 8; + + // Criteria for income range targeting. + INCOME_RANGE = 9; + } + + +} diff --git a/google/ads/googleads/v11/enums/time_type.proto b/google/ads/googleads/v11/enums/time_type.proto new file mode 100644 index 000000000..d611a0229 --- /dev/null +++ b/google/ads/googleads/v11/enums/time_type.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TimeTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing TimeType types. + +// Message describing time types. +message TimeTypeEnum { + // The possible time types used by certain resources as an alternative to + // absolute timestamps. + enum TimeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // As soon as possible. + NOW = 2; + + // An infinite point in the future. + FOREVER = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/tracking_code_page_format.proto b/google/ads/googleads/v11/enums/tracking_code_page_format.proto new file mode 100644 index 000000000..ab46fecc6 --- /dev/null +++ b/google/ads/googleads/v11/enums/tracking_code_page_format.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TrackingCodePageFormatProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing the format of the web page where the tracking +// tag and snippet will be installed. +message TrackingCodePageFormatEnum { + // The format of the web page where the tracking tag and snippet will be + // installed. + enum TrackingCodePageFormat { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Standard HTML page format. + HTML = 2; + + // Google AMP page format. + AMP = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/tracking_code_type.proto b/google/ads/googleads/v11/enums/tracking_code_type.proto new file mode 100644 index 000000000..51e1b73e8 --- /dev/null +++ b/google/ads/googleads/v11/enums/tracking_code_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TrackingCodeTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Container for enum describing the type of the generated tag snippets for +// tracking conversions. +message TrackingCodeTypeEnum { + // The type of the generated tag snippets for tracking conversions. + enum TrackingCodeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The snippet that is fired as a result of a website page loading. + WEBPAGE = 2; + + // The snippet contains a JavaScript function which fires the tag. This + // function is typically called from an onClick handler added to a link or + // button element on the page. + WEBPAGE_ONCLICK = 3; + + // For embedding on a mobile webpage. The snippet contains a JavaScript + // function which fires the tag. + CLICK_TO_CALL = 4; + + // The snippet that is used to replace the phone number on your website with + // a Google forwarding number for call tracking purposes. + WEBSITE_CALL = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/travel_placeholder_field.proto b/google/ads/googleads/v11/enums/travel_placeholder_field.proto new file mode 100644 index 000000000..8b769108c --- /dev/null +++ b/google/ads/googleads/v11/enums/travel_placeholder_field.proto @@ -0,0 +1,126 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "TravelPlaceholderFieldProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing Travel placeholder fields. + +// Values for Travel placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +message TravelPlaceholderFieldEnum { + // Possible values for Travel placeholder fields. + enum TravelPlaceholderField { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Data Type: STRING. Required. Destination id. Example: PAR, LON. + // For feed items that only have destination id, destination id must be a + // unique key. For feed items that have both destination id and origin id, + // then the combination must be a unique key. + DESTINATION_ID = 2; + + // Data Type: STRING. Origin id. Example: PAR, LON. + // Combination of DESTINATION_ID and ORIGIN_ID must be + // unique per offer. + ORIGIN_ID = 3; + + // Data Type: STRING. Required. Main headline with name to be shown in + // dynamic ad. + TITLE = 4; + + // Data Type: STRING. The destination name. Shorter names are recommended. + DESTINATION_NAME = 5; + + // Data Type: STRING. Origin name. Shorter names are recommended. + ORIGIN_NAME = 6; + + // Data Type: STRING. Price to be shown in the ad. Highly recommended for + // dynamic ads. + // Example: "100.00 USD" + PRICE = 7; + + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FORMATTED_PRICE = 8; + + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + SALE_PRICE = 9; + + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FORMATTED_SALE_PRICE = 10; + + // Data Type: URL. Image to be displayed in the ad. + IMAGE_URL = 11; + + // Data Type: STRING. Category of travel offer used to group like items + // together for recommendation engine. + CATEGORY = 12; + + // Data Type: STRING_LIST. Keywords used for product retrieval. + CONTEXTUAL_KEYWORDS = 13; + + // Data Type: STRING. Address of travel offer, including postal code. + DESTINATION_ADDRESS = 14; + + // Data Type: URL_LIST. Required. Final URLs to be used in ad, when using + // Upgraded URLs; the more specific the better (for example, the individual + // URL of a specific travel offer and its location). + FINAL_URL = 15; + + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FINAL_MOBILE_URLS = 16; + + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TRACKING_URL = 17; + + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + ANDROID_APP_LINK = 18; + + // Data Type: STRING_LIST. List of recommended destination IDs to show + // together with this item. + SIMILAR_DESTINATION_IDS = 19; + + // Data Type: STRING. iOS app link. + IOS_APP_LINK = 20; + + // Data Type: INT64. iOS app store ID. + IOS_APP_STORE_ID = 21; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_identifier_source.proto b/google/ads/googleads/v11/enums/user_identifier_source.proto new file mode 100644 index 000000000..4124de3d6 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_identifier_source.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserIdentifierSourceProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing user identifier source + +// Container for enum describing the source of the user identifier for offline +// Store Sales, click conversion, and conversion adjustment uploads. +message UserIdentifierSourceEnum { + // The type of user identifier source for offline Store Sales, click + // conversion, and conversion adjustment uploads. + enum UserIdentifierSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version + UNKNOWN = 1; + + // Indicates that the user identifier was provided by the first party + // (advertiser). + FIRST_PARTY = 2; + + // Indicates that the user identifier was provided by the third party + // (partner). + THIRD_PARTY = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_interest_taxonomy_type.proto b/google/ads/googleads/v11/enums/user_interest_taxonomy_type.proto new file mode 100644 index 000000000..13dfe9771 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_interest_taxonomy_type.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserInterestTaxonomyTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing the UserInterest taxonomy type + +// Message describing a UserInterestTaxonomyType. +message UserInterestTaxonomyTypeEnum { + // Enum containing the possible UserInterestTaxonomyTypes. + enum UserInterestTaxonomyType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The affinity for this user interest. + AFFINITY = 2; + + // The market for this user interest. + IN_MARKET = 3; + + // Users known to have installed applications in the specified categories. + MOBILE_APP_INSTALL_USER = 4; + + // The geographical location of the interest-based vertical. + VERTICAL_GEO = 5; + + // User interest criteria for new smart phone users. + NEW_SMART_PHONE_USER = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_access_status.proto b/google/ads/googleads/v11/enums/user_list_access_status.proto new file mode 100644 index 000000000..7d8c7dfc3 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_access_status.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListAccessStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing user list access status. + +// Indicates if this client still has access to the list. +message UserListAccessStatusEnum { + // Enum containing possible user list access statuses. + enum UserListAccessStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The access is enabled. + ENABLED = 2; + + // The access is disabled. + DISABLED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_closing_reason.proto b/google/ads/googleads/v11/enums/user_list_closing_reason.proto new file mode 100644 index 000000000..04c770df0 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_closing_reason.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListClosingReasonProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing user list closing reason. + +// Indicates the reason why the userlist was closed. +// This enum is only used when a list is auto-closed by the system. +message UserListClosingReasonEnum { + // Enum describing possible user list closing reasons. + enum UserListClosingReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The userlist was closed because of not being used for over one year. + UNUSED = 2; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_combined_rule_operator.proto b/google/ads/googleads/v11/enums/user_list_combined_rule_operator.proto new file mode 100644 index 000000000..bf8b18083 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_combined_rule_operator.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListCombinedRuleOperatorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Logical operator connecting two rules. +message UserListCombinedRuleOperatorEnum { + // Enum describing possible user list combined rule operators. + enum UserListCombinedRuleOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // A AND B. + AND = 2; + + // A AND NOT B. + AND_NOT = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_crm_data_source_type.proto b/google/ads/googleads/v11/enums/user_list_crm_data_source_type.proto new file mode 100644 index 000000000..f69f0c52e --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_crm_data_source_type.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListCrmDataSourceTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Indicates source of Crm upload data. +message UserListCrmDataSourceTypeEnum { + // Enum describing possible user list crm data source type. + enum UserListCrmDataSourceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The uploaded data is first-party data. + FIRST_PARTY = 2; + + // The uploaded data is from a third-party credit bureau. + THIRD_PARTY_CREDIT_BUREAU = 3; + + // The uploaded data is from a third-party voter file. + THIRD_PARTY_VOTER_FILE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_date_rule_item_operator.proto b/google/ads/googleads/v11/enums/user_list_date_rule_item_operator.proto new file mode 100644 index 000000000..42fe4a500 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_date_rule_item_operator.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListDateRuleItemOperatorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Supported rule operator for date type. +message UserListDateRuleItemOperatorEnum { + // Enum describing possible user list date rule item operators. + enum UserListDateRuleItemOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Equals. + EQUALS = 2; + + // Not Equals. + NOT_EQUALS = 3; + + // Before. + BEFORE = 4; + + // After. + AFTER = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_flexible_rule_operator.proto b/google/ads/googleads/v11/enums/user_list_flexible_rule_operator.proto new file mode 100644 index 000000000..ae140eda3 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_flexible_rule_operator.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListFlexibleRuleOperatorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Logical operator connecting two rules. +message UserListFlexibleRuleOperatorEnum { + // Enum describing possible user list combined rule operators. + enum UserListFlexibleRuleOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // A AND B. + AND = 2; + + // A OR B. + OR = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_logical_rule_operator.proto b/google/ads/googleads/v11/enums/user_list_logical_rule_operator.proto new file mode 100644 index 000000000..05edfacaf --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_logical_rule_operator.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListLogicalRuleOperatorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// The logical operator of the rule. +message UserListLogicalRuleOperatorEnum { + // Enum describing possible user list logical rule operators. + enum UserListLogicalRuleOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // And - all of the operands. + ALL = 2; + + // Or - at least one of the operands. + ANY = 3; + + // Not - none of the operands. + NONE = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_membership_status.proto b/google/ads/googleads/v11/enums/user_list_membership_status.proto new file mode 100644 index 000000000..297e2d2d2 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_membership_status.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListMembershipStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing user list membership status. + +// 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 used for +// targeting. +message UserListMembershipStatusEnum { + // Enum containing possible user list membership statuses. + enum UserListMembershipStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Open status - List is accruing members and can be targeted to. + OPEN = 2; + + // Closed status - No new members being added. Cannot be used for targeting. + CLOSED = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_number_rule_item_operator.proto b/google/ads/googleads/v11/enums/user_list_number_rule_item_operator.proto new file mode 100644 index 000000000..31980f6a8 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_number_rule_item_operator.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListNumberRuleItemOperatorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Supported rule operator for number type. +message UserListNumberRuleItemOperatorEnum { + // Enum describing possible user list number rule item operators. + enum UserListNumberRuleItemOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Greater than. + GREATER_THAN = 2; + + // Greater than or equal. + GREATER_THAN_OR_EQUAL = 3; + + // Equals. + EQUALS = 4; + + // Not equals. + NOT_EQUALS = 5; + + // Less than. + LESS_THAN = 6; + + // Less than or equal. + LESS_THAN_OR_EQUAL = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_prepopulation_status.proto b/google/ads/googleads/v11/enums/user_list_prepopulation_status.proto new file mode 100644 index 000000000..043711bed --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_prepopulation_status.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListPrepopulationStatusProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Indicates status of prepopulation based on the rule. +message UserListPrepopulationStatusEnum { + // Enum describing possible user list prepopulation status. + enum UserListPrepopulationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Prepopoulation is being requested. + REQUESTED = 2; + + // Prepopulation is finished. + FINISHED = 3; + + // Prepopulation failed. + FAILED = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_rule_type.proto b/google/ads/googleads/v11/enums/user_list_rule_type.proto new file mode 100644 index 000000000..fa03eed5a --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_rule_type.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListRuleTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Rule based user list rule type. +message UserListRuleTypeEnum { + // Enum describing possible user list rule types. + enum UserListRuleType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Conjunctive normal form. + AND_OF_ORS = 2; + + // Disjunctive normal form. + OR_OF_ANDS = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_size_range.proto b/google/ads/googleads/v11/enums/user_list_size_range.proto new file mode 100644 index 000000000..3e2ed6ff5 --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_size_range.proto @@ -0,0 +1,90 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListSizeRangeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing user list size range. + +// Size range in terms of number of users of a UserList. +message UserListSizeRangeEnum { + // Enum containing possible user list size ranges. + enum UserListSizeRange { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // User list has less than 500 users. + LESS_THAN_FIVE_HUNDRED = 2; + + // User list has number of users in range of 500 to 1000. + LESS_THAN_ONE_THOUSAND = 3; + + // User list has number of users in range of 1000 to 10000. + ONE_THOUSAND_TO_TEN_THOUSAND = 4; + + // User list has number of users in range of 10000 to 50000. + TEN_THOUSAND_TO_FIFTY_THOUSAND = 5; + + // User list has number of users in range of 50000 to 100000. + FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND = 6; + + // User list has number of users in range of 100000 to 300000. + ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND = 7; + + // User list has number of users in range of 300000 to 500000. + THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND = 8; + + // User list has number of users in range of 500000 to 1 million. + FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION = 9; + + // User list has number of users in range of 1 to 2 millions. + ONE_MILLION_TO_TWO_MILLION = 10; + + // User list has number of users in range of 2 to 3 millions. + TWO_MILLION_TO_THREE_MILLION = 11; + + // User list has number of users in range of 3 to 5 millions. + THREE_MILLION_TO_FIVE_MILLION = 12; + + // User list has number of users in range of 5 to 10 millions. + FIVE_MILLION_TO_TEN_MILLION = 13; + + // User list has number of users in range of 10 to 20 millions. + TEN_MILLION_TO_TWENTY_MILLION = 14; + + // User list has number of users in range of 20 to 30 millions. + TWENTY_MILLION_TO_THIRTY_MILLION = 15; + + // User list has number of users in range of 30 to 50 millions. + THIRTY_MILLION_TO_FIFTY_MILLION = 16; + + // User list has over 50 million users. + OVER_FIFTY_MILLION = 17; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_string_rule_item_operator.proto b/google/ads/googleads/v11/enums/user_list_string_rule_item_operator.proto new file mode 100644 index 000000000..12101f74a --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_string_rule_item_operator.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListStringRuleItemOperatorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Supported rule operator for string type. +message UserListStringRuleItemOperatorEnum { + // Enum describing possible user list string rule item operators. + enum UserListStringRuleItemOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Contains. + CONTAINS = 2; + + // Equals. + EQUALS = 3; + + // Starts with. + STARTS_WITH = 4; + + // Ends with. + ENDS_WITH = 5; + + // Not equals. + NOT_EQUALS = 6; + + // Not contains. + NOT_CONTAINS = 7; + + // Not starts with. + NOT_STARTS_WITH = 8; + + // Not ends with. + NOT_ENDS_WITH = 9; + } + + +} diff --git a/google/ads/googleads/v11/enums/user_list_type.proto b/google/ads/googleads/v11/enums/user_list_type.proto new file mode 100644 index 000000000..bff521fec --- /dev/null +++ b/google/ads/googleads/v11/enums/user_list_type.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing user list type. + +// The user list types. +message UserListTypeEnum { + // Enum containing possible user list types. + enum UserListType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // UserList represented as a collection of conversion types. + REMARKETING = 2; + + // UserList represented as a combination of other user lists/interests. + LOGICAL = 3; + + // UserList created in the Google Ad Manager platform. + EXTERNAL_REMARKETING = 4; + + // UserList associated with a rule. + RULE_BASED = 5; + + // UserList with users similar to users of another UserList. + SIMILAR = 6; + + // UserList of first-party CRM data provided by advertiser in the form of + // emails or other formats. + CRM_BASED = 7; + } + + +} diff --git a/google/ads/googleads/v11/enums/value_rule_device_type.proto b/google/ads/googleads/v11/enums/value_rule_device_type.proto new file mode 100644 index 000000000..a990c8f3d --- /dev/null +++ b/google/ads/googleads/v11/enums/value_rule_device_type.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleDeviceTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion value rule device type. + +// Container for enum describing possible device types used in a conversion +// value rule. +message ValueRuleDeviceTypeEnum { + // Possible device types used in conversion value rule. + enum ValueRuleDeviceType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Mobile device. + MOBILE = 2; + + // Desktop device. + DESKTOP = 3; + + // Tablet device. + TABLET = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/value_rule_geo_location_match_type.proto b/google/ads/googleads/v11/enums/value_rule_geo_location_match_type.proto new file mode 100644 index 000000000..ed4c8814a --- /dev/null +++ b/google/ads/googleads/v11/enums/value_rule_geo_location_match_type.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleGeoLocationMatchTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion value rule geo location match type. + +// Container for enum describing possible geographic location matching types +// used in a conversion value rule. +message ValueRuleGeoLocationMatchTypeEnum { + // Possible geographic location matching types. + enum ValueRuleGeoLocationMatchType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Either Area of Interest or Location of Presence can be used to match. + ANY = 2; + + // Only Location of Presence can be used to match. + LOCATION_OF_PRESENCE = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/value_rule_operation.proto b/google/ads/googleads/v11/enums/value_rule_operation.proto new file mode 100644 index 000000000..dbe4c9dc4 --- /dev/null +++ b/google/ads/googleads/v11/enums/value_rule_operation.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleOperationProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion value rule operation. + +// Container for enum describing possible operations for value rules which are +// executed when rules are triggered. +message ValueRuleOperationEnum { + // Possible operations of the action of a conversion value rule. + enum ValueRuleOperation { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Add provided value to conversion value. + ADD = 2; + + // Multiply conversion value by provided value. + MULTIPLY = 3; + + // Set conversion value to provided value. + SET = 4; + } + + +} diff --git a/google/ads/googleads/v11/enums/value_rule_set_attachment_type.proto b/google/ads/googleads/v11/enums/value_rule_set_attachment_type.proto new file mode 100644 index 000000000..b0454b583 --- /dev/null +++ b/google/ads/googleads/v11/enums/value_rule_set_attachment_type.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleSetAttachmentTypeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing where the conversion value rule is attached. + +// Container for enum describing where a value rule set is attached. +message ValueRuleSetAttachmentTypeEnum { + // Possible level where a value rule set is attached. + enum ValueRuleSetAttachmentType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Attached to the customer. + CUSTOMER = 2; + + // Attached to a campaign. + CAMPAIGN = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/value_rule_set_dimension.proto b/google/ads/googleads/v11/enums/value_rule_set_dimension.proto new file mode 100644 index 000000000..b3230946b --- /dev/null +++ b/google/ads/googleads/v11/enums/value_rule_set_dimension.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ValueRuleSetDimensionProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing conversion value rule set dimension. + +// Container for enum describing possible dimensions of a conversion value rule +// set. +message ValueRuleSetDimensionEnum { + // Possible dimensions of a conversion value rule set. + enum ValueRuleSetDimension { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Dimension for geo location. + GEO_LOCATION = 2; + + // Dimension for device type. + DEVICE = 3; + + // Dimension for audience. + AUDIENCE = 4; + + // This dimension implies the rule will always apply. + NO_CONDITION = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/vanity_pharma_display_url_mode.proto b/google/ads/googleads/v11/enums/vanity_pharma_display_url_mode.proto new file mode 100644 index 000000000..f53da2263 --- /dev/null +++ b/google/ads/googleads/v11/enums/vanity_pharma_display_url_mode.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "VanityPharmaDisplayUrlModeProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing vanity pharma display url modes. + +// The display mode for vanity pharma URLs. +message VanityPharmaDisplayUrlModeEnum { + // Enum describing possible display modes for vanity pharma URLs. + enum VanityPharmaDisplayUrlMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Replace vanity pharma URL with manufacturer website url. + MANUFACTURER_WEBSITE_URL = 2; + + // Replace vanity pharma URL with description of the website. + WEBSITE_DESCRIPTION = 3; + } + + +} diff --git a/google/ads/googleads/v11/enums/vanity_pharma_text.proto b/google/ads/googleads/v11/enums/vanity_pharma_text.proto new file mode 100644 index 000000000..755b00fcb --- /dev/null +++ b/google/ads/googleads/v11/enums/vanity_pharma_text.proto @@ -0,0 +1,85 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "VanityPharmaTextProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing vanity pharma texts. + +// 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. +message VanityPharmaTextEnum { + // Enum describing possible text. + enum VanityPharmaText { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Prescription treatment website with website content in English. + PRESCRIPTION_TREATMENT_WEBSITE_EN = 2; + + // Prescription treatment website with website content in Spanish + // (Sitio de tratamientos con receta). + PRESCRIPTION_TREATMENT_WEBSITE_ES = 3; + + // Prescription device website with website content in English. + PRESCRIPTION_DEVICE_WEBSITE_EN = 4; + + // Prescription device website with website content in Spanish (Sitio de + // dispositivos con receta). + PRESCRIPTION_DEVICE_WEBSITE_ES = 5; + + // Medical device website with website content in English. + MEDICAL_DEVICE_WEBSITE_EN = 6; + + // Medical device website with website content in Spanish (Sitio de + // dispositivos médicos). + MEDICAL_DEVICE_WEBSITE_ES = 7; + + // Preventative treatment website with website content in English. + PREVENTATIVE_TREATMENT_WEBSITE_EN = 8; + + // Preventative treatment website with website content in Spanish (Sitio de + // tratamientos preventivos). + PREVENTATIVE_TREATMENT_WEBSITE_ES = 9; + + // Prescription contraception website with website content in English. + PRESCRIPTION_CONTRACEPTION_WEBSITE_EN = 10; + + // Prescription contraception website with website content in Spanish (Sitio + // de anticonceptivos con receta). + PRESCRIPTION_CONTRACEPTION_WEBSITE_ES = 11; + + // Prescription vaccine website with website content in English. + PRESCRIPTION_VACCINE_WEBSITE_EN = 12; + + // Prescription vaccine website with website content in Spanish (Sitio de + // vacunas con receta). + PRESCRIPTION_VACCINE_WEBSITE_ES = 13; + } + + +} diff --git a/google/ads/googleads/v11/enums/video_thumbnail.proto b/google/ads/googleads/v11/enums/video_thumbnail.proto new file mode 100644 index 000000000..09a4c3670 --- /dev/null +++ b/google/ads/googleads/v11/enums/video_thumbnail.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "VideoThumbnailProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing video thumbnails. + +// Defines the thumbnail to use for In-Display video ads. Note that +// DEFAULT_THUMBNAIL may have been uploaded by the user while thumbnails 1-3 are +// auto-generated from the video. +message VideoThumbnailEnum { + // Enum listing the possible types of a video thumbnail. + enum VideoThumbnail { + // The type has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + // This is a response-only value. + UNKNOWN = 1; + + // The default thumbnail. Can be auto-generated or user-uploaded. + DEFAULT_THUMBNAIL = 2; + + // Thumbnail 1, generated from the video. + THUMBNAIL_1 = 3; + + // Thumbnail 2, generated from the video. + THUMBNAIL_2 = 4; + + // Thumbnail 3, generated from the video. + THUMBNAIL_3 = 5; + } + + +} diff --git a/google/ads/googleads/v11/enums/webpage_condition_operand.proto b/google/ads/googleads/v11/enums/webpage_condition_operand.proto new file mode 100644 index 000000000..9933ae6f5 --- /dev/null +++ b/google/ads/googleads/v11/enums/webpage_condition_operand.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "WebpageConditionOperandProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing webpage condition operand. + +// Container for enum describing webpage condition operand in webpage criterion. +message WebpageConditionOperandEnum { + // The webpage condition operand in webpage criterion. + enum WebpageConditionOperand { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Operand denoting a webpage URL targeting condition. + URL = 2; + + // Operand denoting a webpage category targeting condition. + CATEGORY = 3; + + // Operand denoting a webpage title targeting condition. + PAGE_TITLE = 4; + + // Operand denoting a webpage content targeting condition. + PAGE_CONTENT = 5; + + // Operand denoting a webpage custom label targeting condition. + CUSTOM_LABEL = 6; + } + + +} diff --git a/google/ads/googleads/v11/enums/webpage_condition_operator.proto b/google/ads/googleads/v11/enums/webpage_condition_operator.proto new file mode 100644 index 000000000..00c01eab8 --- /dev/null +++ b/google/ads/googleads/v11/enums/webpage_condition_operator.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "WebpageConditionOperatorProto"; +option java_package = "com.google.ads.googleads.v11.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V11::Enums"; + +// Proto file describing webpage condition operator. + +// Container for enum describing webpage condition operator in webpage +// criterion. +message WebpageConditionOperatorEnum { + // The webpage condition operator in webpage criterion. + enum WebpageConditionOperator { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The argument web condition is equal to the compared web condition. + EQUALS = 2; + + // The argument web condition is part of the compared web condition. + CONTAINS = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/BUILD.bazel b/google/ads/googleads/v11/errors/BUILD.bazel new file mode 100644 index 000000000..48521f2b3 --- /dev/null +++ b/google/ads/googleads/v11/errors/BUILD.bazel @@ -0,0 +1,94 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports +# subpackages. +proto_library( + name = "errors_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/ads/googleads/v11/common:common_proto", + "//google/ads/googleads/v11/enums:enums_proto", + "//google/api:annotations_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", +) + +java_proto_library( + name = "errors_java_proto", + deps = [":errors_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", +) + +csharp_proto_library( + name = "errors_csharp_proto", + deps = [":errors_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_proto_library", +) + +ruby_proto_library( + name = "errors_ruby_proto", + deps = [":errors_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_proto_library", +) + +py_proto_library( + name = "errors_py_proto", + deps = [":errors_proto"], +) diff --git a/google/ads/googleads/v11/errors/access_invitation_error.proto b/google/ads/googleads/v11/errors/access_invitation_error.proto new file mode 100644 index 000000000..275a71d96 --- /dev/null +++ b/google/ads/googleads/v11/errors/access_invitation_error.proto @@ -0,0 +1,67 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AccessInvitationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing AccessInvitation errors. + +// Container for enum describing possible AccessInvitation errors. +message AccessInvitationErrorEnum { + // Enum describing possible AccessInvitation errors. + enum AccessInvitationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The email address is invalid for sending an invitation. + INVALID_EMAIL_ADDRESS = 2; + + // Email address already has access to this customer. + EMAIL_ADDRESS_ALREADY_HAS_ACCESS = 3; + + // Invalid invitation status for the operation. + INVALID_INVITATION_STATUS = 4; + + // Email address cannot be like abc+foo@google.com. + GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED = 5; + + // Invalid invitation ID. + INVALID_INVITATION_ID = 6; + + // Email address already has a pending invitation. + EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION = 7; + + // Pending invitation limit exceeded for the customer. + PENDING_INVITATIONS_LIMIT_EXCEEDED = 8; + + // Email address doesn't conform to the email domain policy. See + // https://support.google.com/google-ads/answer/2375456 + EMAIL_DOMAIN_POLICY_VIOLATED = 9; + } + + +} diff --git a/google/ads/googleads/v11/errors/account_budget_proposal_error.proto b/google/ads/googleads/v11/errors/account_budget_proposal_error.proto new file mode 100644 index 000000000..4c5de106d --- /dev/null +++ b/google/ads/googleads/v11/errors/account_budget_proposal_error.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing account budget proposal errors. + +// Container for enum describing possible account budget proposal errors. +message AccountBudgetProposalErrorEnum { + // Enum describing possible account budget proposal errors. + enum AccountBudgetProposalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The field mask must be empty for create/end/remove proposals. + FIELD_MASK_NOT_ALLOWED = 2; + + // The field cannot be set because of the proposal type. + IMMUTABLE_FIELD = 3; + + // The field is required because of the proposal type. + REQUIRED_FIELD_MISSING = 4; + + // Proposals that have been approved cannot be cancelled. + CANNOT_CANCEL_APPROVED_PROPOSAL = 5; + + // Budgets that haven't been approved cannot be removed. + CANNOT_REMOVE_UNAPPROVED_BUDGET = 6; + + // Budgets that are currently running cannot be removed. + CANNOT_REMOVE_RUNNING_BUDGET = 7; + + // Budgets that haven't been approved cannot be truncated. + CANNOT_END_UNAPPROVED_BUDGET = 8; + + // Only budgets that are currently running can be truncated. + CANNOT_END_INACTIVE_BUDGET = 9; + + // All budgets must have names. + BUDGET_NAME_REQUIRED = 10; + + // Expired budgets cannot be edited after a sufficient amount of time has + // passed. + CANNOT_UPDATE_OLD_BUDGET = 11; + + // It is not permissible a propose a new budget that ends in the past. + CANNOT_END_IN_PAST = 12; + + // An expired budget cannot be extended to overlap with the running budget. + CANNOT_EXTEND_END_TIME = 13; + + // A purchase order number is required. + PURCHASE_ORDER_NUMBER_REQUIRED = 14; + + // Budgets that have a pending update cannot be updated. + PENDING_UPDATE_PROPOSAL_EXISTS = 15; + + // Cannot propose more than one budget when the corresponding billing setup + // hasn't been approved. + MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP = 16; + + // Cannot update the start time of a budget that has already started. + CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET = 17; + + // Cannot update the spending limit of a budget with an amount lower than + // what has already been spent. + SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED = 18; + + // Cannot propose a budget update without actually changing any fields. + UPDATE_IS_NO_OP = 19; + + // The end time must come after the start time. + END_TIME_MUST_FOLLOW_START_TIME = 20; + + // The budget's date range must fall within the date range of its billing + // setup. + BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP = 21; + + // The user is not authorized to mutate budgets for the given billing setup. + NOT_AUTHORIZED = 22; + + // Mutates are not allowed for the given billing setup. + INVALID_BILLING_SETUP = 23; + + // Budget creation failed as it overlaps with an pending budget proposal + // or an approved budget. + OVERLAPS_EXISTING_BUDGET = 24; + + // The control setting in user's payments profile doesn't allow budget + // creation through API. Log in to Google Ads to create budget. + CANNOT_CREATE_BUDGET_THROUGH_API = 25; + } + + +} diff --git a/google/ads/googleads/v11/errors/account_link_error.proto b/google/ads/googleads/v11/errors/account_link_error.proto new file mode 100644 index 000000000..f4236b4c5 --- /dev/null +++ b/google/ads/googleads/v11/errors/account_link_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AccountLinkErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing AccountLink errors. + +// Container for enum describing possible account link errors. +message AccountLinkErrorEnum { + // Enum describing possible account link errors. + enum AccountLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The new link status is invalid. + INVALID_STATUS = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_customizer_error.proto b/google/ads/googleads/v11/errors/ad_customizer_error.proto new file mode 100644 index 000000000..fbf91660a --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_customizer_error.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad customizer errors. + +// Container for enum describing possible ad customizer errors. +message AdCustomizerErrorEnum { + // Enum describing possible ad customizer errors. + enum AdCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Invalid date argument in countdown function. + COUNTDOWN_INVALID_DATE_FORMAT = 2; + + // Countdown end date is in the past. + COUNTDOWN_DATE_IN_PAST = 3; + + // Invalid locale string in countdown function. + COUNTDOWN_INVALID_LOCALE = 4; + + // Days-before argument to countdown function is not positive. + COUNTDOWN_INVALID_START_DAYS_BEFORE = 5; + + // A user list referenced in an IF function does not exist. + UNKNOWN_USER_LIST = 6; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_error.proto b/google/ads/googleads/v11/errors/ad_error.proto new file mode 100644 index 000000000..d0d109fd4 --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_error.proto @@ -0,0 +1,528 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad errors. + +// Container for enum describing possible ad errors. +message AdErrorEnum { + // Enum describing possible ad errors. + enum AdError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Ad customizers are not supported for ad type. + AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE = 2; + + // Estimating character sizes the string is too long. + APPROXIMATELY_TOO_LONG = 3; + + // Estimating character sizes the string is too short. + APPROXIMATELY_TOO_SHORT = 4; + + // There is a problem with the snippet. + BAD_SNIPPET = 5; + + // Cannot modify an ad. + CANNOT_MODIFY_AD = 6; + + // business name and url cannot be set at the same time + CANNOT_SET_BUSINESS_NAME_IF_URL_SET = 7; + + // The specified field is incompatible with this ad's type or settings. + CANNOT_SET_FIELD = 8; + + // Cannot set field when originAdId is set. + CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET = 9; + + // Cannot set field when an existing ad id is set for sharing. + CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING = 10; + + // Cannot set allowFlexibleColor false if no color is provided by user. + CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE = 11; + + // When user select native, no color control is allowed because we will + // always respect publisher color for native format serving. + CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING = 12; + + // Cannot specify a url for the ad type + CANNOT_SET_URL = 13; + + // Cannot specify a tracking or mobile url without also setting final urls + CANNOT_SET_WITHOUT_FINAL_URLS = 14; + + // Cannot specify a legacy url and a final url simultaneously + CANNOT_SET_WITH_FINAL_URLS = 15; + + // Cannot specify a urls in UrlData and in template fields simultaneously. + CANNOT_SET_WITH_URL_DATA = 17; + + // This operator cannot be used with a subclass of Ad. + CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR = 18; + + // Customer is not approved for mobile ads. + CUSTOMER_NOT_APPROVED_MOBILEADS = 19; + + // Customer is not approved for 3PAS richmedia ads. + CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS = 20; + + // Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads. + CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS = 21; + + // Not an eligible customer + CUSTOMER_NOT_ELIGIBLE = 22; + + // Customer is not eligible for updating beacon url + CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL = 23; + + // There already exists an ad with the same dimensions in the union. + DIMENSION_ALREADY_IN_UNION = 24; + + // Ad's dimension must be set before setting union dimension. + DIMENSION_MUST_BE_SET = 25; + + // Ad's dimension must be included in the union dimensions. + DIMENSION_NOT_IN_UNION = 26; + + // Display Url cannot be specified (applies to Ad Exchange Ads) + DISPLAY_URL_CANNOT_BE_SPECIFIED = 27; + + // Telephone number contains invalid characters or invalid format. + // Re-enter your number using digits (0-9), dashes (-), and parentheses + // only. + DOMESTIC_PHONE_NUMBER_FORMAT = 28; + + // Emergency telephone numbers are not allowed. Enter a valid + // domestic phone number to connect customers to your business. + EMERGENCY_PHONE_NUMBER = 29; + + // A required field was not specified or is an empty string. + EMPTY_FIELD = 30; + + // A feed attribute referenced in an ad customizer tag is not in the ad + // customizer mapping for the feed. + FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID = 31; + + // The ad customizer field mapping for the feed attribute does not match the + // expected field type. + FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH = 32; + + // The use of ad customizer tags in the ad text is disallowed. Details in + // trigger. + ILLEGAL_AD_CUSTOMIZER_TAG_USE = 33; + + // Tags of the form {PH_x}, where x is a number, are disallowed in ad text. + ILLEGAL_TAG_USE = 34; + + // The dimensions of the ad are specified or derived in multiple ways and + // are not consistent. + INCONSISTENT_DIMENSIONS = 35; + + // The status cannot differ among template ads of the same union. + INCONSISTENT_STATUS_IN_TEMPLATE_UNION = 36; + + // The length of the string is not valid. + INCORRECT_LENGTH = 37; + + // The ad is ineligible for upgrade. + INELIGIBLE_FOR_UPGRADE = 38; + + // User cannot create mobile ad for countries targeted in specified + // campaign. + INVALID_AD_ADDRESS_CAMPAIGN_TARGET = 39; + + // Invalid Ad type. A specific type of Ad is required. + INVALID_AD_TYPE = 40; + + // Headline, description or phone cannot be present when creating mobile + // image ad. + INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE = 41; + + // Image cannot be present when creating mobile text ad. + INVALID_ATTRIBUTES_FOR_MOBILE_TEXT = 42; + + // Invalid call to action text. + INVALID_CALL_TO_ACTION_TEXT = 43; + + // Invalid character in URL. + INVALID_CHARACTER_FOR_URL = 44; + + // Creative's country code is not valid. + INVALID_COUNTRY_CODE = 45; + + // Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.) + INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 47; + + // An input error whose real reason was not properly mapped (should not + // happen). + INVALID_INPUT = 48; + + // An invalid markup language was entered. + INVALID_MARKUP_LANGUAGE = 49; + + // An invalid mobile carrier was entered. + INVALID_MOBILE_CARRIER = 50; + + // Specified mobile carriers target a country not targeted by the campaign. + INVALID_MOBILE_CARRIER_TARGET = 51; + + // Wrong number of elements for given element type + INVALID_NUMBER_OF_ELEMENTS = 52; + + // The format of the telephone number is incorrect. Re-enter the + // number using the correct format. + INVALID_PHONE_NUMBER_FORMAT = 53; + + // The certified vendor format id is incorrect. + INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID = 54; + + // The template ad data contains validation errors. + INVALID_TEMPLATE_DATA = 55; + + // The template field doesn't have have the correct type. + INVALID_TEMPLATE_ELEMENT_FIELD_TYPE = 56; + + // Invalid template id. + INVALID_TEMPLATE_ID = 57; + + // After substituting replacement strings, the line is too wide. + LINE_TOO_WIDE = 58; + + // The feed referenced must have ad customizer mapping to be used in a + // customizer tag. + MISSING_AD_CUSTOMIZER_MAPPING = 59; + + // Missing address component in template element address field. + MISSING_ADDRESS_COMPONENT = 60; + + // An ad name must be entered. + MISSING_ADVERTISEMENT_NAME = 61; + + // Business name must be entered. + MISSING_BUSINESS_NAME = 62; + + // Description (line 2) must be entered. + MISSING_DESCRIPTION1 = 63; + + // Description (line 3) must be entered. + MISSING_DESCRIPTION2 = 64; + + // The destination url must contain at least one tag (for example, {lpurl}) + MISSING_DESTINATION_URL_TAG = 65; + + // The tracking url template of ExpandedDynamicSearchAd must contain at + // least one tag. (for example, {lpurl}) + MISSING_LANDING_PAGE_URL_TAG = 66; + + // A valid dimension must be specified for this ad. + MISSING_DIMENSION = 67; + + // A display URL must be entered. + MISSING_DISPLAY_URL = 68; + + // Headline must be entered. + MISSING_HEADLINE = 69; + + // A height must be entered. + MISSING_HEIGHT = 70; + + // An image must be entered. + MISSING_IMAGE = 71; + + // Marketing image or product videos are required. + MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS = 72; + + // The markup language in which your site is written must be entered. + MISSING_MARKUP_LANGUAGES = 73; + + // A mobile carrier must be entered. + MISSING_MOBILE_CARRIER = 74; + + // Phone number must be entered. + MISSING_PHONE = 75; + + // Missing required template fields + MISSING_REQUIRED_TEMPLATE_FIELDS = 76; + + // Missing a required field value + MISSING_TEMPLATE_FIELD_VALUE = 77; + + // The ad must have text. + MISSING_TEXT = 78; + + // A visible URL must be entered. + MISSING_VISIBLE_URL = 79; + + // A width must be entered. + MISSING_WIDTH = 80; + + // Only 1 feed can be used as the source of ad customizer substitutions in a + // single ad. + MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED = 81; + + // TempAdUnionId must be use when adding template ads. + MUST_USE_TEMP_AD_UNION_ID_ON_ADD = 82; + + // The string has too many characters. + TOO_LONG = 83; + + // The string has too few characters. + TOO_SHORT = 84; + + // Ad union dimensions cannot change for saved ads. + UNION_DIMENSIONS_CANNOT_CHANGE = 85; + + // Address component is not {country, lat, lng}. + UNKNOWN_ADDRESS_COMPONENT = 86; + + // Unknown unique field name + UNKNOWN_FIELD_NAME = 87; + + // Unknown unique name (template element type specifier) + UNKNOWN_UNIQUE_NAME = 88; + + // Unsupported ad dimension + UNSUPPORTED_DIMENSIONS = 89; + + // URL starts with an invalid scheme. + URL_INVALID_SCHEME = 90; + + // URL ends with an invalid top-level domain name. + URL_INVALID_TOP_LEVEL_DOMAIN = 91; + + // URL contains illegal characters. + URL_MALFORMED = 92; + + // URL must contain a host name. + URL_NO_HOST = 93; + + // URL not equivalent during upgrade. + URL_NOT_EQUIVALENT = 94; + + // URL host name too long to be stored as visible URL (applies to Ad + // Exchange ads) + URL_HOST_NAME_TOO_LONG = 95; + + // URL must start with a scheme. + URL_NO_SCHEME = 96; + + // URL should end in a valid domain extension, such as .com or .net. + URL_NO_TOP_LEVEL_DOMAIN = 97; + + // URL must not end with a path. + URL_PATH_NOT_ALLOWED = 98; + + // URL must not specify a port. + URL_PORT_NOT_ALLOWED = 99; + + // URL must not contain a query. + URL_QUERY_NOT_ALLOWED = 100; + + // A url scheme is not allowed in front of tag in tracking url template + // (for example, http://{lpurl}) + URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 102; + + // The user does not have permissions to create a template ad for the given + // template. + USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE = 103; + + // Expandable setting is inconsistent/wrong. For example, an AdX ad is + // invalid if it has a expandable vendor format but no expanding directions + // specified, or expanding directions is specified, but the vendor format is + // not expandable. + INCONSISTENT_EXPANDABLE_SETTINGS = 104; + + // Format is invalid + INVALID_FORMAT = 105; + + // The text of this field did not match a pattern of allowed values. + INVALID_FIELD_TEXT = 106; + + // Template element is mising + ELEMENT_NOT_PRESENT = 107; + + // Error occurred during image processing + IMAGE_ERROR = 108; + + // The value is not within the valid range + VALUE_NOT_IN_RANGE = 109; + + // Template element field is not present + FIELD_NOT_PRESENT = 110; + + // Address is incomplete + ADDRESS_NOT_COMPLETE = 111; + + // Invalid address + ADDRESS_INVALID = 112; + + // Error retrieving specified video + VIDEO_RETRIEVAL_ERROR = 113; + + // Error processing audio + AUDIO_ERROR = 114; + + // Display URL is incorrect for YouTube PYV ads + INVALID_YOUTUBE_DISPLAY_URL = 115; + + // Too many product Images in GmailAd + TOO_MANY_PRODUCT_IMAGES = 116; + + // Too many product Videos in GmailAd + TOO_MANY_PRODUCT_VIDEOS = 117; + + // The device preference is not compatible with the ad type + INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE = 118; + + // Call tracking is not supported for specified country. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 119; + + // Carrier specific short number is not allowed. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 120; + + // Specified phone number type is disallowed. + DISALLOWED_NUMBER_TYPE = 121; + + // Phone number not supported for country. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 122; + + // Phone number not supported with call tracking enabled for country. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 123; + + // Premium rate phone number is not allowed. + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 124; + + // Vanity phone number is not allowed. + VANITY_PHONE_NUMBER_NOT_ALLOWED = 125; + + // Invalid call conversion type id. + INVALID_CALL_CONVERSION_TYPE_ID = 126; + + // Cannot disable call conversion and set conversion type id. + CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID = 127; + + // Cannot set path2 without path1. + CANNOT_SET_PATH2_WITHOUT_PATH1 = 128; + + // Missing domain name in campaign setting when adding expanded dynamic + // search ad. + MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME = 129; + + // The associated ad is not compatible with restriction type. + INCOMPATIBLE_WITH_RESTRICTION_TYPE = 130; + + // Consent for call recording is required for creating/updating call only + // ads. See https://support.google.com/google-ads/answer/7412639. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 131; + + // Either an image or a media bundle is required in a display upload ad. + MISSING_IMAGE_OR_MEDIA_BUNDLE = 132; + + // The display upload product type is not supported in this campaign. + PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN = 133; + + // The default value of an ad placeholder can not be the empty string. + PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE = 134; + + // Ad placeholders with countdown functions must not have a default value. + PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE = 135; + + // A previous ad placeholder that had a default value was found which means + // that all (non-countdown) placeholders must have a default value. This + // ad placeholder does not have a default value. + PLACEHOLDER_DEFAULT_VALUE_MISSING = 136; + + // A previous ad placeholder that did not have a default value was found + // which means that no placeholders may have a default value. This + // ad placeholder does have a default value. + UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE = 137; + + // Two ad customizers may not be directly adjacent in an ad text. They must + // be separated by at least one character. + AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT = 138; + + // The ad is not associated with any enabled AdGroupAd, and cannot be + // updated. + UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION = 139; + + // Call Ad verification url and final url don't have same domain. + CALL_AD_VERIFICATION_URL_FINAL_URL_DOES_NOT_HAVE_SAME_DOMAIN = 140; + + // Final url and verification url cannot both be empty for call ads. + CALL_AD_FINAL_URL_AND_VERIFICATION_URL_CANNOT_BOTH_BE_EMPTY = 154; + + // Too many ad customizers in one asset. + TOO_MANY_AD_CUSTOMIZERS = 141; + + // The ad customizer tag is recognized, but the format is invalid. + INVALID_AD_CUSTOMIZER_FORMAT = 142; + + // Customizer tags cannot be nested. + NESTED_AD_CUSTOMIZER_SYNTAX = 143; + + // The ad customizer syntax used in the ad is not supported. + UNSUPPORTED_AD_CUSTOMIZER_SYNTAX = 144; + + // There exists unpaired brace in the ad customizer tag. + UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG = 145; + + // More than one type of countdown tag exists among all text lines. + MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS = 146; + + // Date time in the countdown tag is invalid. + DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID = 147; + + // Date time in the countdown tag is in the past. + DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST = 148; + + // Cannot recognize the ad customizer tag. + UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND = 149; + + // Customizer type forbidden for this field. + CUSTOMIZER_TYPE_FORBIDDEN_FOR_FIELD = 150; + + // Customizer attribute name is invalid. + INVALID_CUSTOMIZER_ATTRIBUTE_NAME = 151; + + // App store value does not match the value of the app store in the app + // specified in the campaign. + STORE_MISMATCH = 152; + + // Missing required image aspect ratio. + MISSING_REQUIRED_IMAGE_ASPECT_RATIO = 153; + + // Aspect ratios mismatch between different assets. + MISMATCHED_ASPECT_RATIOS = 155; + + // Images must be unique between different carousel card assets. + DUPLICATE_IMAGE_ACROSS_CAROUSEL_CARDS = 156; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_group_ad_error.proto b/google/ads/googleads/v11/errors/ad_group_ad_error.proto new file mode 100644 index 000000000..f9d51cdda --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_group_ad_error.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad group ad errors. + +// Container for enum describing possible ad group ad errors. +message AdGroupAdErrorEnum { + // Enum describing possible ad group ad errors. + enum AdGroupAdError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // No link found between the adgroup ad and the label. + AD_GROUP_AD_LABEL_DOES_NOT_EXIST = 2; + + // The label has already been attached to the adgroup ad. + AD_GROUP_AD_LABEL_ALREADY_EXISTS = 3; + + // The specified ad was not found in the adgroup + AD_NOT_UNDER_ADGROUP = 4; + + // Removed ads may not be modified + CANNOT_OPERATE_ON_REMOVED_ADGROUPAD = 5; + + // An ad of this type is deprecated and cannot be created. Only deletions + // are permitted. + CANNOT_CREATE_DEPRECATED_ADS = 6; + + // Text ads are deprecated and cannot be created. Use expanded text ads + // instead. + CANNOT_CREATE_TEXT_ADS = 7; + + // A required field was not specified or is an empty string. + EMPTY_FIELD = 8; + + // An ad may only be modified once per call + RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 9; + + // AdGroupAds with the given ad type cannot be paused. + AD_TYPE_CANNOT_BE_PAUSED = 10; + + // AdGroupAds with the given ad type cannot be removed. + AD_TYPE_CANNOT_BE_REMOVED = 11; + + // An ad of this type is deprecated and cannot be updated. Only removals + // are permitted. + CANNOT_UPDATE_DEPRECATED_ADS = 12; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_group_bid_modifier_error.proto b/google/ads/googleads/v11/errors/ad_group_bid_modifier_error.proto new file mode 100644 index 000000000..66e567f38 --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_group_bid_modifier_error.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupBidModifierErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad group bid modifier errors. + +// Container for enum describing possible ad group bid modifier errors. +message AdGroupBidModifierErrorEnum { + // Enum describing possible ad group bid modifier errors. + enum AdGroupBidModifierError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The criterion ID does not support bid modification. + CRITERION_ID_NOT_SUPPORTED = 2; + + // Cannot override the bid modifier for the given criterion ID if the parent + // campaign is opted out of the same criterion. + CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_group_criterion_customizer_error.proto b/google/ads/googleads/v11/errors/ad_group_criterion_customizer_error.proto new file mode 100644 index 000000000..dc33981f7 --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_group_criterion_customizer_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad group criterion customizer errors. + +// Container for enum describing possible ad group criterion customizer errors. +message AdGroupCriterionCustomizerErrorEnum { + // Enum describing possible ad group criterion customizer errors. + enum AdGroupCriterionCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Only keyword type criterion is allowed to link customizer attribute. + CRITERION_IS_NOT_KEYWORD = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_group_criterion_error.proto b/google/ads/googleads/v11/errors/ad_group_criterion_error.proto new file mode 100644 index 000000000..812ae1869 --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_group_criterion_error.proto @@ -0,0 +1,135 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad group criterion errors. + +// Container for enum describing possible ad group criterion errors. +message AdGroupCriterionErrorEnum { + // Enum describing possible ad group criterion errors. + enum AdGroupCriterionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // No link found between the AdGroupCriterion and the label. + AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST = 2; + + // The label has already been attached to the AdGroupCriterion. + AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS = 3; + + // Negative AdGroupCriterion cannot have labels. + CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION = 4; + + // Too many operations for a single call. + TOO_MANY_OPERATIONS = 5; + + // Negative ad group criteria are not updateable. + CANT_UPDATE_NEGATIVE = 6; + + // Concrete type of criterion (keyword v.s. placement) is required for ADD + // and SET operations. + CONCRETE_TYPE_REQUIRED = 7; + + // Bid is incompatible with ad group's bidding settings. + BID_INCOMPATIBLE_WITH_ADGROUP = 8; + + // Cannot target and exclude the same criterion at once. + CANNOT_TARGET_AND_EXCLUDE = 9; + + // The URL of a placement is invalid. + ILLEGAL_URL = 10; + + // Keyword text was invalid. + INVALID_KEYWORD_TEXT = 11; + + // Destination URL was invalid. + INVALID_DESTINATION_URL = 12; + + // The destination url must contain at least one tag (for example, {lpurl}) + MISSING_DESTINATION_URL_TAG = 13; + + // Keyword-level cpm bid is not supported + KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM = 14; + + // For example, cannot add a biddable ad group criterion that had been + // removed. + INVALID_USER_STATUS = 15; + + // Criteria type cannot be targeted for the ad group. Either the account is + // restricted to keywords only, the criteria type is incompatible with the + // campaign's bidding strategy, or the criteria type can only be applied to + // campaigns. + CANNOT_ADD_CRITERIA_TYPE = 16; + + // Criteria type cannot be excluded for the ad group. Refer to the + // documentation for a specific criterion to check if it is excludable. + CANNOT_EXCLUDE_CRITERIA_TYPE = 17; + + // Partial failure is not supported for shopping campaign mutate operations. + CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE = 27; + + // Operations in the mutate request changes too many shopping ad groups. + // Split requests for multiple shopping ad groups across multiple + // requests. + OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS = 28; + + // Not allowed to modify url fields of an ad group criterion if there are + // duplicate elements for that ad group criterion in the request. + CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS = 29; + + // Cannot set url fields without also setting final urls. + CANNOT_SET_WITHOUT_FINAL_URLS = 30; + + // Cannot clear final urls if final mobile urls exist. + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST = 31; + + // Cannot clear final urls if final app urls exist. + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST = 32; + + // Cannot clear final urls if tracking url template exists. + CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS = 33; + + // Cannot clear final urls if url custom parameters exist. + CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST = 34; + + // Cannot set both destination url and final urls. + CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS = 35; + + // Cannot set both destination url and tracking url template. + CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE = 36; + + // Final urls are not supported for this criterion type. + FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 37; + + // Final mobile urls are not supported for this criterion type. + FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 38; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_group_customizer_error.proto b/google/ads/googleads/v11/errors/ad_group_customizer_error.proto new file mode 100644 index 000000000..2c819e64e --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_group_customizer_error.proto @@ -0,0 +1,42 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad group customizer errors. + +// Container for enum describing possible ad group customizer errors. +message AdGroupCustomizerErrorEnum { + // Enum describing possible ad group customizer errors. + enum AdGroupCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_group_error.proto b/google/ads/googleads/v11/errors/ad_group_error.proto new file mode 100644 index 000000000..8bdd8cd5b --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_group_error.proto @@ -0,0 +1,89 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad group errors. + +// Container for enum describing possible ad group errors. +message AdGroupErrorEnum { + // Enum describing possible ad group errors. + enum AdGroupError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // AdGroup with the same name already exists for the campaign. + DUPLICATE_ADGROUP_NAME = 2; + + // AdGroup name is not valid. + INVALID_ADGROUP_NAME = 3; + + // Advertiser is not allowed to target sites or set site bids that are not + // on the Google Search Network. + ADVERTISER_NOT_ON_CONTENT_NETWORK = 5; + + // Bid amount is too big. + BID_TOO_BIG = 6; + + // AdGroup bid does not match the campaign's bidding strategy. + BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH = 7; + + // AdGroup name is required for Add. + MISSING_ADGROUP_NAME = 8; + + // No link found between the ad group and the label. + ADGROUP_LABEL_DOES_NOT_EXIST = 9; + + // The label has already been attached to the ad group. + ADGROUP_LABEL_ALREADY_EXISTS = 10; + + // The CriterionTypeGroup is not supported for the content bid dimension. + INVALID_CONTENT_BID_CRITERION_TYPE_GROUP = 11; + + // The ad group type is not compatible with the campaign channel type. + AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE = 12; + + // The ad group type is not supported in the country of sale of the + // campaign. + ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY = 13; + + // Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to + // campaigns that have DynamicSearchAdsSetting attached. + CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING = 14; + + // Promoted hotels ad groups are only available to customers on the + // allow-list. + PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER = 15; + + // The field type cannot be excluded because an active ad group-asset link + // of this type exists. + INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 16; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_group_feed_error.proto b/google/ads/googleads/v11/errors/ad_group_feed_error.proto new file mode 100644 index 000000000..656a695ed --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_group_feed_error.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupFeedErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad group feed errors. + +// Container for enum describing possible ad group feed errors. +message AdGroupFeedErrorEnum { + // Enum describing possible ad group feed errors. + enum AdGroupFeedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An active feed already exists for this ad group and place holder type. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; + + // The specified feed is removed. + CANNOT_CREATE_FOR_REMOVED_FEED = 3; + + // The AdGroupFeed already exists. UPDATE operation should be used to modify + // the existing AdGroupFeed. + ADGROUP_FEED_ALREADY_EXISTS = 4; + + // Cannot operate on removed AdGroupFeed. + CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED = 5; + + // Invalid placeholder type. + INVALID_PLACEHOLDER_TYPE = 6; + + // Feed mapping for this placeholder type does not exist. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7; + + // Location AdGroupFeeds cannot be created unless there is a location + // CustomerFeed for the specified feed. + NO_EXISTING_LOCATION_CUSTOMER_FEED = 8; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_parameter_error.proto b/google/ads/googleads/v11/errors/ad_parameter_error.proto new file mode 100644 index 000000000..4b0dc08da --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_parameter_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdParameterErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad parameter errors. + +// Container for enum describing possible ad parameter errors. +message AdParameterErrorEnum { + // Enum describing possible ad parameter errors. + enum AdParameterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The ad group criterion must be a keyword criterion. + AD_GROUP_CRITERION_MUST_BE_KEYWORD = 2; + + // The insertion text is invalid. + INVALID_INSERTION_TEXT_FORMAT = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/ad_sharing_error.proto b/google/ads/googleads/v11/errors/ad_sharing_error.proto new file mode 100644 index 000000000..a8cb38897 --- /dev/null +++ b/google/ads/googleads/v11/errors/ad_sharing_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdSharingErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ad sharing errors. + +// Container for enum describing possible ad sharing errors. +message AdSharingErrorEnum { + // Enum describing possible ad sharing errors. + enum AdSharingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Error resulting in attempting to add an Ad to an AdGroup that already + // contains the Ad. + AD_GROUP_ALREADY_CONTAINS_AD = 2; + + // Ad is not compatible with the AdGroup it is being shared with. + INCOMPATIBLE_AD_UNDER_AD_GROUP = 3; + + // Cannot add AdGroupAd on inactive Ad. + CANNOT_SHARE_INACTIVE_AD = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/adx_error.proto b/google/ads/googleads/v11/errors/adx_error.proto new file mode 100644 index 000000000..febcd53f1 --- /dev/null +++ b/google/ads/googleads/v11/errors/adx_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AdxErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing adx errors. + +// Container for enum describing possible adx errors. +message AdxErrorEnum { + // Enum describing possible adx errors. + enum AdxError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Attempt to use non-AdX feature by AdX customer. + UNSUPPORTED_FEATURE = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/asset_error.proto b/google/ads/googleads/v11/errors/asset_error.proto new file mode 100644 index 000000000..af2ad53e4 --- /dev/null +++ b/google/ads/googleads/v11/errors/asset_error.proto @@ -0,0 +1,154 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing asset errors. + +// Container for enum describing possible asset errors. +message AssetErrorEnum { + // Enum describing possible asset errors. + enum AssetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The customer is not is not on the allow-list for this asset type. + CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE = 13; + + // Assets are duplicated across operations. + DUPLICATE_ASSET = 3; + + // The asset name is duplicated, either across operations or with an + // existing asset. + DUPLICATE_ASSET_NAME = 4; + + // The Asset.asset_data oneof is empty. + ASSET_DATA_IS_MISSING = 5; + + // The asset has a name which is different from an existing duplicate that + // represents the same content. + CANNOT_MODIFY_ASSET_NAME = 6; + + // The field cannot be set for this asset type. + FIELD_INCOMPATIBLE_WITH_ASSET_TYPE = 7; + + // Call to action must come from the list of supported values. + INVALID_CALL_TO_ACTION_TEXT = 8; + + // A lead form asset is created with an invalid combination of input fields. + LEAD_FORM_INVALID_FIELDS_COMBINATION = 9; + + // Lead forms require that the Terms of Service have been agreed to before + // mutates can be executed. + LEAD_FORM_MISSING_AGREEMENT = 10; + + // Asset status is invalid in this operation. + INVALID_ASSET_STATUS = 11; + + // The field cannot be modified by this asset type. + FIELD_CANNOT_BE_MODIFIED_FOR_ASSET_TYPE = 12; + + // Ad schedules for the same asset cannot overlap. + SCHEDULES_CANNOT_OVERLAP = 14; + + // Cannot set both percent off and money amount off fields of promotion + // asset. + PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 15; + + // Cannot set both promotion code and orders over amount fields of promotion + // asset. + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 16; + + // The field has too many decimal places specified. + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 17; + + // Duplicate assets across operations, which have identical Asset.asset_data + // oneof, cannot have different asset level fields for asset types which are + // deduped. + DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE = 18; + + // Carrier specific short number is not allowed. + CALL_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 19; + + // Customer consent required for call recording Terms of Service. + CALL_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 20; + + // The type of the specified phone number is not allowed. + CALL_DISALLOWED_NUMBER_TYPE = 21; + + // If the default call_conversion_action is not used, the customer must have + // a ConversionAction with the same id and the ConversionAction must be call + // conversion type. + CALL_INVALID_CONVERSION_ACTION = 22; + + // The country code of the phone number is invalid. + CALL_INVALID_COUNTRY_CODE = 23; + + // The format of the phone number is incorrect. + CALL_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 24; + + // The input phone number is not a valid phone number. + CALL_INVALID_PHONE_NUMBER = 25; + + // The phone number is not supported for country. + CALL_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 26; + + // Premium rate phone number is not allowed. + CALL_PREMIUM_RATE_NUMBER_NOT_ALLOWED = 27; + + // Vanity phone number is not allowed. + CALL_VANITY_PHONE_NUMBER_NOT_ALLOWED = 28; + + // PriceOffering cannot have the same value for header and description. + PRICE_HEADER_SAME_AS_DESCRIPTION = 29; + + // AppId is invalid. + MOBILE_APP_INVALID_APP_ID = 30; + + // Invalid App download URL in final URLs. + MOBILE_APP_INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL = 31; + + // Asset name is required for the asset type. + NAME_REQUIRED_FOR_ASSET_TYPE = 32; + + // Legacy qualifying questions cannot be in the same Lead Form as + // custom questions. + LEAD_FORM_LEGACY_QUALIFYING_QUESTIONS_DISALLOWED = 33; + + // Unique name is required for this asset type. + NAME_CONFLICT_FOR_ASSET_TYPE = 34; + + // Cannot modify asset source. + CANNOT_MODIFY_ASSET_SOURCE = 35; + + // User can not modify the automatically created asset. + CANNOT_MODIFY_AUTOMATICALLY_CREATED_ASSET = 36; + } + + +} diff --git a/google/ads/googleads/v11/errors/asset_group_asset_error.proto b/google/ads/googleads/v11/errors/asset_group_asset_error.proto new file mode 100644 index 000000000..cd8928c53 --- /dev/null +++ b/google/ads/googleads/v11/errors/asset_group_asset_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupAssetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing asset group asset errors. + +// Container for enum describing possible asset group asset errors. +message AssetGroupAssetErrorEnum { + // Enum describing possible asset group asset errors. + enum AssetGroupAssetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot add duplicated asset group asset. + DUPLICATE_RESOURCE = 2; + + // Expandable tags are not allowed in description assets. + EXPANDABLE_TAGS_NOT_ALLOWED_IN_DESCRIPTION = 3; + + // Ad customizers are not supported in assetgroup's text assets. + AD_CUSTOMIZER_NOT_SUPPORTED = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/asset_group_error.proto b/google/ads/googleads/v11/errors/asset_group_error.proto new file mode 100644 index 000000000..a44428e70 --- /dev/null +++ b/google/ads/googleads/v11/errors/asset_group_error.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing asset group errors. + +// Container for enum describing possible asset group errors. +message AssetGroupErrorEnum { + // Enum describing possible asset group errors. + enum AssetGroupError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Each asset group in a single campaign must have a unique name. + DUPLICATE_NAME = 2; + + // Cannot add asset group for the campaign type. + CANNOT_ADD_ASSET_GROUP_FOR_CAMPAIGN_TYPE = 3; + + // Not enough headline asset for a valid asset group. + NOT_ENOUGH_HEADLINE_ASSET = 4; + + // Not enough long headline asset for a valid asset group. + NOT_ENOUGH_LONG_HEADLINE_ASSET = 5; + + // Not enough description headline asset for a valid asset group. + NOT_ENOUGH_DESCRIPTION_ASSET = 6; + + // Not enough business name asset for a valid asset group. + NOT_ENOUGH_BUSINESS_NAME_ASSET = 7; + + // Not enough marketing image asset for a valid asset group. + NOT_ENOUGH_MARKETING_IMAGE_ASSET = 8; + + // Not enough square marketing image asset for a valid asset group. + NOT_ENOUGH_SQUARE_MARKETING_IMAGE_ASSET = 9; + + // Not enough logo asset for a valid asset group. + NOT_ENOUGH_LOGO_ASSET = 10; + + // Final url and shopping merchant url does not have the same domain. + FINAL_URL_SHOPPING_MERCHANT_HOME_PAGE_URL_DOMAINS_DIFFER = 11; + } + + +} diff --git a/google/ads/googleads/v11/errors/asset_group_listing_group_filter_error.proto b/google/ads/googleads/v11/errors/asset_group_listing_group_filter_error.proto new file mode 100644 index 000000000..8d0c3451d --- /dev/null +++ b/google/ads/googleads/v11/errors/asset_group_listing_group_filter_error.proto @@ -0,0 +1,83 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupListingGroupFilterErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing asset group asset errors. + +// Container for enum describing possible asset group listing group filter +// errors. +message AssetGroupListingGroupFilterErrorEnum { + // Enum describing possible asset group listing group filter errors. + enum AssetGroupListingGroupFilterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Listing group tree is too deep. + TREE_TOO_DEEP = 2; + + // Listing Group UNIT node cannot have children. + UNIT_CANNOT_HAVE_CHILDREN = 3; + + // Listing Group SUBDIVISION node must have everything else child. + SUBDIVISION_MUST_HAVE_EVERYTHING_ELSE_CHILD = 4; + + // Dimension type of Listing Group must be the same as that of its siblings. + DIFFERENT_DIMENSION_TYPE_BETWEEN_SIBLINGS = 5; + + // The sibling Listing Groups target exactly the same dimension value. + SAME_DIMENSION_VALUE_BETWEEN_SIBLINGS = 6; + + // The dimension type is the same as one of the ancestor Listing Groups. + SAME_DIMENSION_TYPE_BETWEEN_ANCESTORS = 7; + + // Each Listing Group tree must have a single root. + MULTIPLE_ROOTS = 8; + + // Invalid Listing Group dimension value. + INVALID_DIMENSION_VALUE = 9; + + // Hierarchical dimension must refine a dimension of the same type. + MUST_REFINE_HIERARCHICAL_PARENT_TYPE = 10; + + // Invalid Product Bidding Category. + INVALID_PRODUCT_BIDDING_CATEGORY = 11; + + // Modifying case value is allowed only while updating the entire subtree at + // the same time. + CHANGING_CASE_VALUE_WITH_CHILDREN = 12; + + // Subdivision node has children which must be removed first. + SUBDIVISION_HAS_CHILDREN = 13; + + // Dimension can't subdivide everything-else node in its own hierarchy. + CANNOT_REFINE_HIERARCHICAL_EVERYTHING_ELSE = 14; + } + + +} diff --git a/google/ads/googleads/v11/errors/asset_link_error.proto b/google/ads/googleads/v11/errors/asset_link_error.proto new file mode 100644 index 000000000..e671f66fc --- /dev/null +++ b/google/ads/googleads/v11/errors/asset_link_error.proto @@ -0,0 +1,119 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetLinkErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing asset link errors. + +// Container for enum describing possible asset link errors. +message AssetLinkErrorEnum { + // Enum describing possible asset link errors. + enum AssetLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Pinning is not supported for the given asset link field. + PINNING_UNSUPPORTED = 2; + + // The given field type is not supported to be added directly through asset + // links. + UNSUPPORTED_FIELD_TYPE = 3; + + // The given asset's type and the specified field type are incompatible. + FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE = 4; + + // The specified field type is incompatible with the given campaign type. + FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE = 5; + + // The campaign advertising channel type cannot be associated with the given + // asset due to channel-based restrictions on the asset's fields. + INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE = 6; + + // The image asset provided is not within the dimension constraints + // specified for the submitted asset field. + IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE = 7; + + // The pinned field is not valid for the submitted asset field. + INVALID_PINNED_FIELD = 8; + + // The media bundle asset provided is too large for the submitted asset + // field. + MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE = 9; + + // Not enough assets are available for use with other fields since other + // assets are pinned to specific fields. + NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION = 10; + + // Not enough assets with fallback are available. When validating the + // minimum number of assets, assets without fallback (for example, assets + // that contain location tag without default value "{LOCATION(City)}") will + // not be counted. + NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK = 11; + + // This is a combination of the + // NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION and + // NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK errors. Not enough assets + // with fallback are available since some assets are pinned. + NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION = 12; + + // The YouTube video referenced in the provided asset has been removed. + YOUTUBE_VIDEO_REMOVED = 13; + + // The YouTube video referenced in the provided asset is too long for the + // field submitted. + YOUTUBE_VIDEO_TOO_LONG = 14; + + // The YouTube video referenced in the provided asset is too short for the + // field submitted. + YOUTUBE_VIDEO_TOO_SHORT = 15; + + // The specified field type is excluded for given campaign or ad group. + EXCLUDED_PARENT_FIELD_TYPE = 16; + + // The status is invalid for the operation specified. + INVALID_STATUS = 17; + + // The YouTube video referenced in the provided asset has unknown duration. + // This might be the case for a livestream video or a video being currently + // uploaded to YouTube. In both cases, the video duration should eventually + // get resolved. + YOUTUBE_VIDEO_DURATION_NOT_DEFINED = 18; + + // User cannot create automatically created links. + CANNOT_CREATE_AUTOMATICALLY_CREATED_LINKS = 19; + + // Advertiser links cannot link to automatically created asset. + CANNOT_LINK_TO_AUTOMATICALLY_CREATED_ASSET = 20; + + // Automatically created links cannot be changed into adveritser links or + // the reverse. + CANNOT_MODIFY_ASSET_LINK_SOURCE = 21; + } + + +} diff --git a/google/ads/googleads/v11/errors/asset_set_asset_error.proto b/google/ads/googleads/v11/errors/asset_set_asset_error.proto new file mode 100644 index 000000000..7f6098126 --- /dev/null +++ b/google/ads/googleads/v11/errors/asset_set_asset_error.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetAssetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing asset set asset errors. + +// Container for enum describing possible asset set asset errors. +message AssetSetAssetErrorEnum { + // Enum describing possible asset set asset errors. + enum AssetSetAssetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The asset type is not eligible to be linked to the specific type of asset + // set. + INVALID_ASSET_TYPE = 2; + + // The asset set type is not eligible to contain the specified type of + // assets. + INVALID_ASSET_SET_TYPE = 3; + + // The asset contains duplicate external key with another asset in the asset + // set. + DUPLICATE_EXTERNAL_KEY = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/asset_set_error.proto b/google/ads/googleads/v11/errors/asset_set_error.proto new file mode 100644 index 000000000..82eeba948 --- /dev/null +++ b/google/ads/googleads/v11/errors/asset_set_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing asset set errors. + +// Container for enum describing possible asset set errors. +message AssetSetErrorEnum { + // Enum describing possible asset set errors. + enum AssetSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The asset set name matches that of another enabled asset set. + DUPLICATE_ASSET_SET_NAME = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/asset_set_link_error.proto b/google/ads/googleads/v11/errors/asset_set_link_error.proto new file mode 100644 index 000000000..688304466 --- /dev/null +++ b/google/ads/googleads/v11/errors/asset_set_link_error.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetLinkErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing asset set link errors. + +// Container for enum describing possible asset set link errors. +message AssetSetLinkErrorEnum { + // Enum describing possible asset set link errors. + enum AssetSetLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Advertising channel type cannot be attached to the asset set due to + // channel-based restrictions. + INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE = 2; + + // For this asset set type, only one campaign to feed linkage is allowed. + DUPLICATE_FEED_LINK = 3; + + // The asset set type and campaign type are incompatible. + INCOMPATIBLE_ASSET_SET_TYPE_WITH_CAMPAIGN_TYPE = 4; + + // Cannot link duplicate asset sets to the same campaign. + DUPLICATE_ASSET_SET_LINK = 5; + + // Cannot remove the asset set link. If a campaign is linked with only one + // asset set and you attempt to unlink them, this error will be triggered. + ASSET_SET_LINK_CANNOT_BE_REMOVED = 6; + } + + +} diff --git a/google/ads/googleads/v11/errors/audience_error.proto b/google/ads/googleads/v11/errors/audience_error.proto new file mode 100644 index 000000000..abe3a87f7 --- /dev/null +++ b/google/ads/googleads/v11/errors/audience_error.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AudienceErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing audience errors. + +// Container for enum describing possible audience errors. +message AudienceErrorEnum { + // Enum describing possible audience errors. + enum AudienceError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An audience with this name already exists. + NAME_ALREADY_IN_USE = 2; + + // A dimension within the audience definition is not valid. + DIMENSION_INVALID = 3; + + // One of the audience segment added is not found. + AUDIENCE_SEGMENT_NOT_FOUND = 4; + + // One of the audience segment type is not supported. + AUDIENCE_SEGMENT_TYPE_NOT_SUPPORTED = 5; + + // The same segment already exists in this audience. + DUPLICATE_AUDIENCE_SEGMENT = 6; + + // Audience can't have more than allowed number segments. + TOO_MANY_SEGMENTS = 7; + + // Audience can't have multiple dimensions of same type. + TOO_MANY_DIMENSIONS_OF_SAME_TYPE = 8; + + // The audience cannot be removed, because it is currently used in an + // ad group criterion or asset group signal in an (enabled or paused) + // ad group or campaign. + IN_USE = 9; + } + + +} diff --git a/google/ads/googleads/v11/errors/audience_insights_error.proto b/google/ads/googleads/v11/errors/audience_insights_error.proto new file mode 100644 index 000000000..0d7a3777f --- /dev/null +++ b/google/ads/googleads/v11/errors/audience_insights_error.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AudienceInsightsErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors generated from AudienceInsightsService. + +// Container for enum describing possible errors returned from +// the AudienceInsightsService. +message AudienceInsightsErrorEnum { + // Enum describing possible errors from AudienceInsightsService. + enum AudienceInsightsError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The dimensions cannot be used with topic audience combinations. + DIMENSION_INCOMPATIBLE_WITH_TOPIC_AUDIENCE_COMBINATIONS = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/authentication_error.proto b/google/ads/googleads/v11/errors/authentication_error.proto new file mode 100644 index 000000000..d46292bcf --- /dev/null +++ b/google/ads/googleads/v11/errors/authentication_error.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AuthenticationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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; + + // Google 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; + + // User in the cookie is not a valid Ads user. + 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 Google Ads 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 Google Ads account, enable Advanced Protection in your + // Google account at https://landing.google.com/advancedprotection. + ADVANCED_PROTECTION_NOT_ENROLLED = 24; + } + + +} diff --git a/google/ads/googleads/v11/errors/authorization_error.proto b/google/ads/googleads/v11/errors/authorization_error.proto new file mode 100644 index 000000000..815fc3d83 --- /dev/null +++ b/google/ads/googleads/v11/errors/authorization_error.proto @@ -0,0 +1,93 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AuthorizationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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/google-ads/api/docs/concepts/call-structure#cid + USER_PERMISSION_DENIED = 2; + + // The developer token is not on the allow-list. + DEVELOPER_TOKEN_NOT_ON_ALLOWLIST = 13; + + // The developer token is not allowed with the project sent in the request. + DEVELOPER_TOKEN_PROHIBITED = 4; + + // 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 can't be used because it isn't enabled. + CUSTOMER_NOT_ENABLED = 24; + + // The developer must sign the terms of service. They can be found here: + // ads.google.com/aw/apicenter + MISSING_TOS = 9; + + // The developer token is not approved. Non-approved developer tokens can + // only be used with test accounts. + DEVELOPER_TOKEN_NOT_APPROVED = 10; + + // 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 in Google Ads. 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/google/ads/googleads/v11/errors/batch_job_error.proto b/google/ads/googleads/v11/errors/batch_job_error.proto new file mode 100644 index 000000000..727f5f8df --- /dev/null +++ b/google/ads/googleads/v11/errors/batch_job_error.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "BatchJobErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing batch job errors. + +// Container for enum describing possible batch job errors. +message BatchJobErrorEnum { + // Enum describing possible request errors. + enum BatchJobError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The batch job cannot add more operations or run after it has started + // running. + CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING = 2; + + // The operations for an AddBatchJobOperations request were empty. + EMPTY_OPERATIONS = 3; + + // The sequence token for an AddBatchJobOperations request was invalid. + INVALID_SEQUENCE_TOKEN = 4; + + // Batch job results can only be retrieved once the job is finished. + RESULTS_NOT_READY = 5; + + // The page size for ListBatchJobResults was invalid. + INVALID_PAGE_SIZE = 6; + + // The batch job cannot be removed because it has started running. + CAN_ONLY_REMOVE_PENDING_JOB = 7; + } + + +} diff --git a/google/ads/googleads/v11/errors/bidding_error.proto b/google/ads/googleads/v11/errors/bidding_error.proto new file mode 100644 index 000000000..63e8c5c49 --- /dev/null +++ b/google/ads/googleads/v11/errors/bidding_error.proto @@ -0,0 +1,131 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "BiddingErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing bidding errors. + +// Container for enum describing possible bidding errors. +message BiddingErrorEnum { + // Enum describing possible bidding errors. + enum BiddingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot transition to new bidding strategy. + BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED = 2; + + // Cannot attach bidding strategy to campaign. + CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN = 7; + + // Bidding strategy is not supported or cannot be used as anonymous. + INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE = 10; + + // The type does not match the named strategy's type. + INVALID_BIDDING_STRATEGY_TYPE = 14; + + // The bid is invalid. + INVALID_BID = 17; + + // Bidding strategy is not available for the account type. + BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 18; + + // Conversion tracking is not enabled in the campaign that has value-based + // bidding transitions. + CONVERSION_TRACKING_NOT_ENABLED = 19; + + // Not enough conversions tracked for value-based bidding transitions. + NOT_ENOUGH_CONVERSIONS = 20; + + // Campaign can not be created with given bidding strategy. It can be + // transitioned to the strategy, once eligible. + CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY = 21; + + // Cannot target content network only as campaign uses Page One Promoted + // bidding strategy. + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY = 23; + + // Budget Optimizer and Target Spend bidding strategies are not supported + // for campaigns with AdSchedule targeting. + BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE = 24; + + // Pay per conversion is not available to all the customer, only few + // customers on the allow-list can use this. + PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER = 25; + + // Pay per conversion is not allowed with Target CPA. + PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA = 26; + + // Cannot set bidding strategy to Manual CPM for search network only + // campaigns. + BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS = 27; + + // The bidding strategy is not supported for use in drafts or experiments. + BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS = 28; + + // Bidding strategy type does not support product type ad group criterion. + BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION = 29; + + // Bid amount is too small. + BID_TOO_SMALL = 30; + + // Bid amount is too big. + BID_TOO_BIG = 31; + + // Bid has too many fractional digit precision. + BID_TOO_MANY_FRACTIONAL_DIGITS = 32; + + // Invalid domain name specified. + INVALID_DOMAIN_NAME = 33; + + // The field is not compatible with the payment mode. + NOT_COMPATIBLE_WITH_PAYMENT_MODE = 34; + + // The field is not compatible with the budget type. + NOT_COMPATIBLE_WITH_BUDGET_TYPE = 35; + + // The field is not compatible with the bidding strategy type. + NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE = 36; + + // Bidding strategy type is incompatible with shared budget. + BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET = 37; + + // The attached bidding strategy and budget must be aligned with each other + // if alignment is specified on either entity. + BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED = 38; + + // The attached bidding strategy and budget must be attached to the same + // campaigns to become aligned. + BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ATTACHED_TO_THE_SAME_CAMPAIGNS_TO_ALIGN = 39; + + // The aligned bidding strategy and budget must be removed at the same time. + BIDDING_STRATEGY_AND_BUDGET_MUST_BE_REMOVED_TOGETHER = 40; + } + + +} diff --git a/google/ads/googleads/v11/errors/bidding_strategy_error.proto b/google/ads/googleads/v11/errors/bidding_strategy_error.proto new file mode 100644 index 000000000..09b55324a --- /dev/null +++ b/google/ads/googleads/v11/errors/bidding_strategy_error.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing bidding strategy errors. + +// Container for enum describing possible bidding strategy errors. +message BiddingStrategyErrorEnum { + // Enum describing possible bidding strategy errors. + enum BiddingStrategyError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Each bidding strategy must have a unique name. + DUPLICATE_NAME = 2; + + // Bidding strategy type is immutable. + CANNOT_CHANGE_BIDDING_STRATEGY_TYPE = 3; + + // Only bidding strategies not linked to campaigns, adgroups or adgroup + // criteria can be removed. + CANNOT_REMOVE_ASSOCIATED_STRATEGY = 4; + + // The specified bidding strategy is not supported. + BIDDING_STRATEGY_NOT_SUPPORTED = 5; + + // The bidding strategy is incompatible with the campaign's bidding + // strategy goal type. + INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE = 6; + } + + +} diff --git a/google/ads/googleads/v11/errors/billing_setup_error.proto b/google/ads/googleads/v11/errors/billing_setup_error.proto new file mode 100644 index 000000000..9567d18d1 --- /dev/null +++ b/google/ads/googleads/v11/errors/billing_setup_error.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "BillingSetupErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing billing setup errors. + +// Container for enum describing possible billing setup errors. +message BillingSetupErrorEnum { + // Enum describing possible billing setup errors. + enum BillingSetupError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot specify both an existing payments account and a new payments + // account when setting up billing. + CANNOT_USE_EXISTING_AND_NEW_ACCOUNT = 2; + + // Cannot cancel an approved billing setup whose start time has passed. + CANNOT_REMOVE_STARTED_BILLING_SETUP = 3; + + // Cannot perform a Change of Bill-To (CBT) to the same payments account. + CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT = 4; + + // Billing setups can only be used by customers with ENABLED or DRAFT + // status. + BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS = 5; + + // Billing setups must either include a correctly formatted existing + // payments account id, or a non-empty new payments account name. + INVALID_PAYMENTS_ACCOUNT = 6; + + // Only billable and third-party customers can create billing setups. + BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY = 7; + + // Billing setup creations can only use NOW for start time type. + INVALID_START_TIME_TYPE = 8; + + // Billing setups can only be created for a third-party customer if they do + // not already have a setup. + THIRD_PARTY_ALREADY_HAS_BILLING = 9; + + // Billing setups cannot be created if there is already a pending billing in + // progress. + BILLING_SETUP_IN_PROGRESS = 10; + + // Billing setups can only be created by customers who have permission to + // setup billings. Users can contact a representative for help setting up + // permissions. + NO_SIGNUP_PERMISSION = 11; + + // Billing setups cannot be created if there is already a future-approved + // billing. + CHANGE_OF_BILL_TO_IN_PROGRESS = 12; + + // Requested payments profile not found. + PAYMENTS_PROFILE_NOT_FOUND = 13; + + // Requested payments account not found. + PAYMENTS_ACCOUNT_NOT_FOUND = 14; + + // Billing setup creation failed because the payments profile is ineligible. + PAYMENTS_PROFILE_INELIGIBLE = 15; + + // Billing setup creation failed because the payments account is ineligible. + PAYMENTS_ACCOUNT_INELIGIBLE = 16; + + // Billing setup creation failed because the payments profile needs internal + // approval. + CUSTOMER_NEEDS_INTERNAL_APPROVAL = 17; + + // Payments account has different currency code than the current customer + // and hence cannot be used to setup billing. + PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH = 19; + + // A start time in the future cannot be used because there is currently no + // active billing setup for this customer. + FUTURE_START_TIME_PROHIBITED = 20; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_budget_error.proto b/google/ads/googleads/v11/errors/campaign_budget_error.proto new file mode 100644 index 000000000..24e3e8415 --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_budget_error.proto @@ -0,0 +1,98 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBudgetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign budget errors. + +// Container for enum describing possible campaign budget errors. +message CampaignBudgetErrorEnum { + // Enum describing possible campaign budget errors. + enum CampaignBudgetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The campaign budget cannot be shared. + CAMPAIGN_BUDGET_CANNOT_BE_SHARED = 17; + + // The requested campaign budget no longer exists. + CAMPAIGN_BUDGET_REMOVED = 2; + + // The campaign budget is associated with at least one campaign, and so the + // campaign budget cannot be removed. + CAMPAIGN_BUDGET_IN_USE = 3; + + // Customer is not on the allow-list for this campaign budget period. + CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE = 4; + + // This field is not mutable on implicitly shared campaign budgets + CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET = 6; + + // Cannot change explicitly shared campaign budgets back to implicitly + // shared ones. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED = 7; + + // An implicit campaign budget without a name cannot be changed to + // explicitly shared campaign budget. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME = 8; + + // Cannot change an implicitly shared campaign budget to an explicitly + // shared one. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED = 9; + + // Only explicitly shared campaign budgets can be used with multiple + // campaigns. + CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS = 10; + + // A campaign budget with this name already exists. + DUPLICATE_NAME = 11; + + // A money amount was not in the expected currency. + MONEY_AMOUNT_IN_WRONG_CURRENCY = 12; + + // A money amount was less than the minimum CPC for currency. + MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC = 13; + + // A money amount was greater than the maximum allowed. + MONEY_AMOUNT_TOO_LARGE = 14; + + // A money amount was negative. + NEGATIVE_MONEY_AMOUNT = 15; + + // A money amount was not a multiple of a minimum unit. + NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT = 16; + + // Total budget amount must be unset when BudgetPeriod is DAILY. + TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY = 18; + + // The period of the budget is not allowed. + INVALID_PERIOD = 19; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_conversion_goal_error.proto b/google/ads/googleads/v11/errors/campaign_conversion_goal_error.proto new file mode 100644 index 000000000..9e18ad68d --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_conversion_goal_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignConversionGoalErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign conversion goal errors. + +// Container for enum describing possible campaign conversion goal errors. +message CampaignConversionGoalErrorEnum { + // Enum describing possible campaign conversion goal errors. + enum CampaignConversionGoalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Campaign is managed by Search Ads 360 but uses Unified Goal. + CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_criterion_error.proto b/google/ads/googleads/v11/errors/campaign_criterion_error.proto new file mode 100644 index 000000000..6ae2e8bcd --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_criterion_error.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign criterion errors. + +// Container for enum describing possible campaign criterion errors. +message CampaignCriterionErrorEnum { + // Enum describing possible campaign criterion errors. + enum CampaignCriterionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Concrete type of criterion (keyword v.s. placement) is required for + // CREATE and UPDATE operations. + CONCRETE_TYPE_REQUIRED = 2; + + // Invalid placement URL. + INVALID_PLACEMENT_URL = 3; + + // Criteria type can not be excluded for the campaign by the customer. like + // AOL account type cannot target site type criteria + CANNOT_EXCLUDE_CRITERIA_TYPE = 4; + + // Cannot set the campaign criterion status for this criteria type. + CANNOT_SET_STATUS_FOR_CRITERIA_TYPE = 5; + + // Cannot set the campaign criterion status for an excluded criteria. + CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA = 6; + + // Cannot target and exclude the same criterion. + CANNOT_TARGET_AND_EXCLUDE = 7; + + // The mutate contained too many operations. + TOO_MANY_OPERATIONS = 8; + + // This operator cannot be applied to a criterion of this type. + OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE = 9; + + // The Shopping campaign sales country is not supported for + // ProductSalesChannel targeting. + SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL = 10; + + // The existing field can't be updated with CREATE operation. It can be + // updated with UPDATE operation only. + CANNOT_ADD_EXISTING_FIELD = 11; + + // Negative criteria are immutable, so updates are not allowed. + CANNOT_UPDATE_NEGATIVE_CRITERION = 12; + + // Only free form names are allowed for negative Smart campaign keyword + // theme. + CANNOT_SET_NEGATIVE_KEYWORD_THEME_CONSTANT_CRITERION = 13; + + // Invalid Smart campaign keyword theme constant criterion. + INVALID_KEYWORD_THEME_CONSTANT = 14; + + // A Smart campaign keyword theme constant or free-form Smart campaign + // keyword theme is required. + MISSING_KEYWORD_THEME_CONSTANT_OR_FREE_FORM_KEYWORD_THEME = 15; + + // A Smart campaign may not target proximity and location criteria + // simultaneously. + CANNOT_TARGET_BOTH_PROXIMITY_AND_LOCATION_CRITERIA_FOR_SMART_CAMPAIGN = 16; + + // A Smart campaign may not target multiple proximity criteria. + CANNOT_TARGET_MULTIPLE_PROXIMITY_CRITERIA_FOR_SMART_CAMPAIGN = 17; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_customizer_error.proto b/google/ads/googleads/v11/errors/campaign_customizer_error.proto new file mode 100644 index 000000000..244228731 --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_customizer_error.proto @@ -0,0 +1,42 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign customizer errors. + +// Container for enum describing possible campaign customizer errors. +message CampaignCustomizerErrorEnum { + // Enum describing possible campaign customizer errors. + enum CampaignCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_draft_error.proto b/google/ads/googleads/v11/errors/campaign_draft_error.proto new file mode 100644 index 000000000..ef08cd211 --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_draft_error.proto @@ -0,0 +1,77 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignDraftErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign draft errors. + +// Container for enum describing possible campaign draft errors. +message CampaignDraftErrorEnum { + // Enum describing possible campaign draft errors. + enum CampaignDraftError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A draft with this name already exists for this campaign. + DUPLICATE_DRAFT_NAME = 2; + + // The draft is removed and cannot be transitioned to another status. + INVALID_STATUS_TRANSITION_FROM_REMOVED = 3; + + // The draft has been promoted and cannot be transitioned to the specified + // status. + INVALID_STATUS_TRANSITION_FROM_PROMOTED = 4; + + // The draft has failed to be promoted and cannot be transitioned to the + // specified status. + INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED = 5; + + // This customer is not allowed to create drafts. + CUSTOMER_CANNOT_CREATE_DRAFT = 6; + + // This campaign is not allowed to create drafts. + CAMPAIGN_CANNOT_CREATE_DRAFT = 7; + + // This modification cannot be made on a draft. + INVALID_DRAFT_CHANGE = 8; + + // The draft cannot be transitioned to the specified status from its + // current status. + INVALID_STATUS_TRANSITION = 9; + + // The campaign has reached the maximum number of drafts that can be created + // for a campaign throughout its lifetime. No additional drafts can be + // created for this campaign. Removed drafts also count towards this limit. + MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED = 10; + + // ListAsyncErrors was called without first promoting the draft. + LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY = 11; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_error.proto b/google/ads/googleads/v11/errors/campaign_error.proto new file mode 100644 index 000000000..16841804f --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_error.proto @@ -0,0 +1,211 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign errors. + +// Container for enum describing possible campaign errors. +message CampaignErrorEnum { + // Enum describing possible campaign errors. + enum CampaignError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot target content network. + CANNOT_TARGET_CONTENT_NETWORK = 3; + + // Cannot target search network. + CANNOT_TARGET_SEARCH_NETWORK = 4; + + // Cannot cover search network without google search network. + CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH = 5; + + // Cannot target Google Search network for a CPM campaign. + CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN = 6; + + // Must target at least one network. + CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK = 7; + + // Only some Google partners are allowed to target partner search network. + CANNOT_TARGET_PARTNER_SEARCH_NETWORK = 8; + + // Cannot target content network only as campaign has criteria-level bidding + // strategy. + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY = 9; + + // Cannot modify the start or end date such that the campaign duration would + // not contain the durations of all runnable trials. + CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS = 10; + + // Cannot modify dates, budget or status of a trial campaign. + CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN = 11; + + // Trying to modify the name of an active or paused campaign, where the name + // is already assigned to another active or paused campaign. + DUPLICATE_CAMPAIGN_NAME = 12; + + // Two fields are in conflicting modes. + INCOMPATIBLE_CAMPAIGN_FIELD = 13; + + // Campaign name cannot be used. + INVALID_CAMPAIGN_NAME = 14; + + // Given status is invalid. + INVALID_AD_SERVING_OPTIMIZATION_STATUS = 15; + + // Error in the campaign level tracking URL. + INVALID_TRACKING_URL = 16; + + // Cannot set both tracking URL template and tracking setting. A user has + // to clear legacy tracking setting in order to add tracking URL template. + CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING = 17; + + // The maximum number of impressions for Frequency Cap should be an integer + // greater than 0. + MAX_IMPRESSIONS_NOT_IN_RANGE = 18; + + // Only the Day, Week and Month time units are supported. + TIME_UNIT_NOT_SUPPORTED = 19; + + // Operation not allowed on a campaign whose serving status has ended + INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED = 20; + + // This budget is exclusively linked to a Campaign that is using experiments + // so it cannot be shared. + BUDGET_CANNOT_BE_SHARED = 21; + + // Campaigns using experiments cannot use a shared budget. + CAMPAIGN_CANNOT_USE_SHARED_BUDGET = 22; + + // A different budget cannot be assigned to a campaign when there are + // running or scheduled trials. + CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS = 23; + + // No link found between the campaign and the label. + CAMPAIGN_LABEL_DOES_NOT_EXIST = 24; + + // The label has already been attached to the campaign. + CAMPAIGN_LABEL_ALREADY_EXISTS = 25; + + // A ShoppingSetting was not found when creating a shopping campaign. + MISSING_SHOPPING_SETTING = 26; + + // The country in shopping setting is not an allowed country. + INVALID_SHOPPING_SALES_COUNTRY = 27; + + // The requested channel type is not available according to the customer's + // account setting. + ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 31; + + // The AdvertisingChannelSubType is not a valid subtype of the primary + // channel type. + INVALID_ADVERTISING_CHANNEL_SUB_TYPE = 32; + + // At least one conversion must be selected. + AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED = 33; + + // Setting ad rotation mode for a campaign is not allowed. Ad rotation mode + // at campaign is deprecated. + CANNOT_SET_AD_ROTATION_MODE = 34; + + // Trying to change start date on a campaign that has started. + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 35; + + // Trying to modify a date into the past. + CANNOT_SET_DATE_TO_PAST = 36; + + // Hotel center id in the hotel setting does not match any customer links. + MISSING_HOTEL_CUSTOMER_LINK = 37; + + // Hotel center id in the hotel setting must match an active customer link. + INVALID_HOTEL_CUSTOMER_LINK = 38; + + // Hotel setting was not found when creating a hotel ads campaign. + MISSING_HOTEL_SETTING = 39; + + // A Campaign cannot use shared campaign budgets and be part of a campaign + // group. + CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP = 40; + + // The app ID was not found. + APP_NOT_FOUND = 41; + + // Campaign.shopping_setting.enable_local is not supported for the specified + // campaign type. + SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 42; + + // The merchant does not support the creation of campaigns for Shopping + // Comparison Listing Ads. + MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS = 43; + + // The App campaign for engagement cannot be created because there aren't + // enough installs. + INSUFFICIENT_APP_INSTALLS_COUNT = 44; + + // The App campaign for engagement cannot be created because the app is + // sensitive. + SENSITIVE_CATEGORY_APP = 45; + + // Customers with Housing, Employment, or Credit ads must accept updated + // personalized ads policy to continue creating campaigns. + HEC_AGREEMENT_REQUIRED = 46; + + // The field is not compatible with view through conversion optimization. + NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION = 49; + + // The field type cannot be excluded because an active campaign-asset link + // of this type exists. + INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 48; + + // The app pre-registration campaign cannot be created for non-Android + // applications. + CANNOT_CREATE_APP_PRE_REGISTRATION_FOR_NON_ANDROID_APP = 50; + + // The campaign cannot be created since the app is not available for + // pre-registration in any country. + APP_NOT_AVAILABLE_TO_CREATE_APP_PRE_REGISTRATION_CAMPAIGN = 51; + + // The type of the Budget is not compatible with this Campaign. + INCOMPATIBLE_BUDGET_TYPE = 52; + + // Category bid list in the local services campaign setting contains + // multiple bids for the same category ID. + LOCAL_SERVICES_DUPLICATE_CATEGORY_BID = 53; + + // Category bid list in the local services campaign setting contains + // a bid for an invalid category ID. + LOCAL_SERVICES_INVALID_CATEGORY_BID = 54; + + // Category bid list in the local services campaign setting is missing a + // bid for a category ID that must be present. + LOCAL_SERVICES_MISSING_CATEGORY_BID = 55; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_experiment_error.proto b/google/ads/googleads/v11/errors/campaign_experiment_error.proto new file mode 100644 index 000000000..140a7a069 --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_experiment_error.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign experiment errors. + +// Container for enum describing possible campaign experiment errors. +message CampaignExperimentErrorEnum { + // Enum describing possible campaign experiment errors. + enum CampaignExperimentError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An active campaign or experiment with this name already exists. + DUPLICATE_NAME = 2; + + // Experiment cannot be updated from the current state to the + // requested target state. For example, an experiment can only graduate + // if its status is ENABLED. + INVALID_TRANSITION = 3; + + // Cannot create an experiment from a campaign using an explicitly shared + // budget. + CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET = 4; + + // Cannot create an experiment for a removed base campaign. + CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN = 5; + + // Cannot create an experiment from a draft, which has a status other than + // proposed. + CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT = 6; + + // This customer is not allowed to create an experiment. + CUSTOMER_CANNOT_CREATE_EXPERIMENT = 7; + + // This campaign is not allowed to create an experiment. + CAMPAIGN_CANNOT_CREATE_EXPERIMENT = 8; + + // Trying to set an experiment duration which overlaps with another + // experiment. + EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP = 9; + + // All non-removed experiments must start and end within their campaign's + // duration. + EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION = 10; + + // The experiment cannot be modified because its status is in a terminal + // state, such as REMOVED. + CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS = 11; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_feed_error.proto b/google/ads/googleads/v11/errors/campaign_feed_error.proto new file mode 100644 index 000000000..ecc1665bf --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_feed_error.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignFeedErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign feed errors. + +// Container for enum describing possible campaign feed errors. +message CampaignFeedErrorEnum { + // Enum describing possible campaign feed errors. + enum CampaignFeedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An active feed already exists for this campaign and placeholder type. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; + + // The specified feed is removed. + CANNOT_CREATE_FOR_REMOVED_FEED = 4; + + // The CampaignFeed already exists. UPDATE should be used to modify the + // existing CampaignFeed. + CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED = 5; + + // Cannot update removed campaign feed. + CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED = 6; + + // Invalid placeholder type. + INVALID_PLACEHOLDER_TYPE = 7; + + // Feed mapping for this placeholder type does not exist. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 8; + + // Location CampaignFeeds cannot be created unless there is a location + // CustomerFeed for the specified feed. + NO_EXISTING_LOCATION_CUSTOMER_FEED = 9; + } + + +} diff --git a/google/ads/googleads/v11/errors/campaign_shared_set_error.proto b/google/ads/googleads/v11/errors/campaign_shared_set_error.proto new file mode 100644 index 000000000..3fce28f76 --- /dev/null +++ b/google/ads/googleads/v11/errors/campaign_shared_set_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSharedSetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing campaign shared set errors. + +// Container for enum describing possible campaign shared set errors. +message CampaignSharedSetErrorEnum { + // Enum describing possible campaign shared set errors. + enum CampaignSharedSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The shared set belongs to another customer and permission isn't granted. + SHARED_SET_ACCESS_DENIED = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/change_event_error.proto b/google/ads/googleads/v11/errors/change_event_error.proto new file mode 100644 index 000000000..7bb480985 --- /dev/null +++ b/google/ads/googleads/v11/errors/change_event_error.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ChangeEventErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing change event errors. + +// Container for enum describing possible change event errors. +message ChangeEventErrorEnum { + // Enum describing possible change event errors. + enum ChangeEventError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The requested start date is too old. It cannot be older than 30 days. + START_DATE_TOO_OLD = 2; + + // The change_event search request must specify a finite range filter + // on change_date_time. + CHANGE_DATE_RANGE_INFINITE = 3; + + // The change event search request has specified invalid date time filters + // that can never logically produce any valid results (for example, start + // time after end time). + CHANGE_DATE_RANGE_NEGATIVE = 4; + + // The change_event search request must specify a LIMIT. + LIMIT_NOT_SPECIFIED = 5; + + // The LIMIT specified by change_event request should be less than or equal + // to 10K. + INVALID_LIMIT_CLAUSE = 6; + } + + +} diff --git a/google/ads/googleads/v11/errors/change_status_error.proto b/google/ads/googleads/v11/errors/change_status_error.proto new file mode 100644 index 000000000..6a2e43dfe --- /dev/null +++ b/google/ads/googleads/v11/errors/change_status_error.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ChangeStatusErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing change status errors. + +// Container for enum describing possible change status errors. +message ChangeStatusErrorEnum { + // Enum describing possible change status errors. + enum ChangeStatusError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The requested start date is too old. + START_DATE_TOO_OLD = 3; + + // The change_status search request must specify a finite range filter + // on last_change_date_time. + CHANGE_DATE_RANGE_INFINITE = 4; + + // The change status search request has specified invalid date time filters + // that can never logically produce any valid results (for example, start + // time after end time). + CHANGE_DATE_RANGE_NEGATIVE = 5; + + // The change_status search request must specify a LIMIT. + LIMIT_NOT_SPECIFIED = 6; + + // The LIMIT specified by change_status request should be less than or equal + // to 10K. + INVALID_LIMIT_CLAUSE = 7; + } + + +} diff --git a/google/ads/googleads/v11/errors/collection_size_error.proto b/google/ads/googleads/v11/errors/collection_size_error.proto new file mode 100644 index 000000000..8c360dec3 --- /dev/null +++ b/google/ads/googleads/v11/errors/collection_size_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CollectionSizeErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing collection size errors. + +// Container for enum describing possible collection size errors. +message CollectionSizeErrorEnum { + // Enum describing possible collection size errors. + enum CollectionSizeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Too few. + TOO_FEW = 2; + + // Too many. + TOO_MANY = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/context_error.proto b/google/ads/googleads/v11/errors/context_error.proto new file mode 100644 index 000000000..1938123f6 --- /dev/null +++ b/google/ads/googleads/v11/errors/context_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ContextErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing context errors. + +// Container for enum describing possible context errors. +message ContextErrorEnum { + // Enum describing possible context errors. + enum ContextError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The operation is not allowed for the given context. + OPERATION_NOT_PERMITTED_FOR_CONTEXT = 2; + + // The operation is not allowed for removed resources. + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/conversion_action_error.proto b/google/ads/googleads/v11/errors/conversion_action_error.proto new file mode 100644 index 000000000..9f503ae23 --- /dev/null +++ b/google/ads/googleads/v11/errors/conversion_action_error.proto @@ -0,0 +1,80 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing conversion action errors. + +// Container for enum describing possible conversion action errors. +message ConversionActionErrorEnum { + // Enum describing possible conversion action errors. + enum ConversionActionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified conversion action name already exists. + DUPLICATE_NAME = 2; + + // Another conversion action with the specified app id already exists. + DUPLICATE_APP_ID = 3; + + // Android first open action conflicts with Google play codeless download + // action tracking the same app. + TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD = 4; + + // Android first open action conflicts with Google play codeless download + // action tracking the same app. + BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION = 5; + + // The attribution model cannot be set to DATA_DRIVEN because a data-driven + // model has never been generated. + DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED = 6; + + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is expired. + DATA_DRIVEN_MODEL_EXPIRED = 7; + + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is stale. + DATA_DRIVEN_MODEL_STALE = 8; + + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is unavailable or the conversion action was newly + // added. + DATA_DRIVEN_MODEL_UNKNOWN = 9; + + // Creation of this conversion action type isn't supported by Google + // Ads API. + CREATION_NOT_SUPPORTED = 10; + + // Update of this conversion action isn't supported by Google Ads API. + UPDATE_NOT_SUPPORTED = 11; + } + + +} diff --git a/google/ads/googleads/v11/errors/conversion_adjustment_upload_error.proto b/google/ads/googleads/v11/errors/conversion_adjustment_upload_error.proto new file mode 100644 index 000000000..5f77d92b5 --- /dev/null +++ b/google/ads/googleads/v11/errors/conversion_adjustment_upload_error.proto @@ -0,0 +1,134 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionAdjustmentUploadErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing conversion adjustment upload errors. + +// Container for enum describing possible conversion adjustment upload errors. +message ConversionAdjustmentUploadErrorEnum { + // Enum describing possible conversion adjustment upload errors. + enum ConversionAdjustmentUploadError { + // Not specified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified conversion action was created too recently. + // Try the upload again after 4-6 hours have passed since the + // conversion action was created. + TOO_RECENT_CONVERSION_ACTION = 2; + + // No conversion action of a supported ConversionActionType that matches the + // provided information can be found for the customer. + INVALID_CONVERSION_ACTION = 3; + + // A retraction was already reported for this conversion. + CONVERSION_ALREADY_RETRACTED = 4; + + // A conversion for the supplied combination of conversion + // action and conversion identifier could not be found. + CONVERSION_NOT_FOUND = 5; + + // The specified conversion has already expired. Conversions expire after 55 + // days, after which adjustments cannot be reported against them. + CONVERSION_EXPIRED = 6; + + // The supplied adjustment date time precedes that of the original + // conversion. + ADJUSTMENT_PRECEDES_CONVERSION = 7; + + // A restatement with a more recent adjustment date time was already + // reported for this conversion. + MORE_RECENT_RESTATEMENT_FOUND = 8; + + // The conversion was created too recently. + TOO_RECENT_CONVERSION = 9; + + // Restatements cannot be reported for a conversion action that always uses + // the default value. + CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE = 10; + + // The request contained more than 2000 adjustments. + TOO_MANY_ADJUSTMENTS_IN_REQUEST = 11; + + // The conversion has been adjusted too many times. + TOO_MANY_ADJUSTMENTS = 12; + + // A restatement with this timestamp already exists for this conversion. To + // upload another adjustment, use a different timestamp. + RESTATEMENT_ALREADY_EXISTS = 13; + + // This adjustment has the same timestamp as another adjustment in the + // request for this conversion. To upload another adjustment, use a + // different timestamp. + DUPLICATE_ADJUSTMENT_IN_REQUEST = 14; + + // The customer has not accepted the customer data terms in the conversion + // settings page. + CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 15; + + // The enhanced conversion settings of the conversion action supplied is + // not eligible for enhancements. + CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT = 16; + + // The provided user identifier is not a SHA-256 hash. It is either unhashed + // or hashed using a different hash function. + INVALID_USER_IDENTIFIER = 17; + + // The provided user identifier is not supported. + // ConversionAdjustmentUploadService only supports hashed_email, + // hashed_phone_number, and address_info. + UNSUPPORTED_USER_IDENTIFIER = 18; + + // Cannot set both gclid_date_time_pair and order_id. + GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET = 20; + + // An enhancement with this conversion action and order_id already exists + // for this conversion. + CONVERSION_ALREADY_ENHANCED = 21; + + // This enhancement has the same conversion action and order_id as + // another enhancement in the request. + DUPLICATE_ENHANCEMENT_IN_REQUEST = 22; + + // Per our customer data policies, enhancement has been prohibited in your + // account. If you have any questions, contact your Google + // representative. + CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT = 23; + + // The conversion adjustment is for a conversion action of type WEBPAGE, but + // does not have an order_id. The order_id is required for an adjustment for + // a WEBPAGE conversion action. + MISSING_ORDER_ID_FOR_WEBPAGE = 24; + + // The order_id contains personally identifiable information (PII), such as + // an email address or phone number. + ORDER_ID_CONTAINS_PII = 25; + } + + +} diff --git a/google/ads/googleads/v11/errors/conversion_custom_variable_error.proto b/google/ads/googleads/v11/errors/conversion_custom_variable_error.proto new file mode 100644 index 000000000..706f1decb --- /dev/null +++ b/google/ads/googleads/v11/errors/conversion_custom_variable_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionCustomVariableErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing conversion custom variable errors. + +// Container for enum describing possible conversion custom variable errors. +message ConversionCustomVariableErrorEnum { + // Enum describing possible conversion custom variable errors. + enum ConversionCustomVariableError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A conversion custom variable with the specified name already exists. + DUPLICATE_NAME = 2; + + // A conversion custom variable with the specified tag already exists. + DUPLICATE_TAG = 3; + + // A conversion custom variable with the specified tag is reserved for other + // uses. + RESERVED_TAG = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/conversion_goal_campaign_config_error.proto b/google/ads/googleads/v11/errors/conversion_goal_campaign_config_error.proto new file mode 100644 index 000000000..42a204124 --- /dev/null +++ b/google/ads/googleads/v11/errors/conversion_goal_campaign_config_error.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionGoalCampaignConfigErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing conversion goal campaign config errors. + +// Container for enum describing possible conversion goal campaign config +// errors. +message ConversionGoalCampaignConfigErrorEnum { + // Enum describing possible conversion goal campaign config errors. + enum ConversionGoalCampaignConfigError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Campaign is managed by Search Ads 360 but uses Unified Goal. + CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN = 2; + + // The campaign is using a custom goal that does not belong to its Google + // Ads conversion customer (conversion tracking customer). + CUSTOM_GOAL_DOES_NOT_BELONG_TO_GOOGLE_ADS_CONVERSION_CUSTOMER = 3; + + // The campaign is not allowed to use unified goals. + CAMPAIGN_CANNOT_USE_UNIFIED_GOALS = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/conversion_upload_error.proto b/google/ads/googleads/v11/errors/conversion_upload_error.proto new file mode 100644 index 000000000..22d961f1b --- /dev/null +++ b/google/ads/googleads/v11/errors/conversion_upload_error.proto @@ -0,0 +1,209 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionUploadErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing conversion upload errors. + +// Container for enum describing possible conversion upload errors. +message ConversionUploadErrorEnum { + // Enum describing possible conversion upload errors. + enum ConversionUploadError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The request contained more than 2000 conversions. + TOO_MANY_CONVERSIONS_IN_REQUEST = 2; + + // The specified gclid could not be decoded. + UNPARSEABLE_GCLID = 3; + + // The specified conversion_date_time is before the event time + // associated with the given identifier or iOS URL parameter. + CONVERSION_PRECEDES_EVENT = 42; + + // The click associated with the given identifier or iOS URL parameter is + // either too old to be imported or occurred outside of the click through + // lookback window for the specified conversion action. + EXPIRED_EVENT = 43; + + // The click associated with the given identifier or iOS URL parameter + // occurred too recently. Try uploading again after 6 hours have + // passed since the click occurred. + TOO_RECENT_EVENT = 44; + + // The click associated with the given identifier or iOS URL parameter could + // not be found in the system. This can happen if the identifier or iOS URL + // parameter are collected for non Google Ads clicks. + EVENT_NOT_FOUND = 45; + + // The click associated with the given identifier or iOS URL parameter is + // owned by a customer account that the uploading customer does not manage. + UNAUTHORIZED_CUSTOMER = 8; + + // No upload eligible conversion action that matches the provided + // information can be found for the customer. + INVALID_CONVERSION_ACTION = 9; + + // The specified conversion action was created too recently. + // Try the upload again after 4-6 hours have passed since the + // conversion action was created. + TOO_RECENT_CONVERSION_ACTION = 10; + + // The click associated with the given identifier does not contain + // conversion tracking information. + CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME = 11; + + // The specified conversion action does not use an external attribution + // model, but external_attribution_data was set. + EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 12; + + // The specified conversion action uses an external attribution model, but + // external_attribution_data or one of its contained fields was not set. + // Both external_attribution_credit and external_attribution_model must be + // set for externally attributed conversion actions. + EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 13; + + // Order IDs are not supported for conversion actions which use an external + // attribution model. + ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 14; + + // A conversion with the same order id and conversion action combination + // already exists in our system. + ORDER_ID_ALREADY_IN_USE = 15; + + // The request contained two or more conversions with the same order id and + // conversion action combination. + DUPLICATE_ORDER_ID = 16; + + // The call occurred too recently. Try uploading again after 12 hours + // have passed since the call occurred. + TOO_RECENT_CALL = 17; + + // The click that initiated the call is too old for this conversion to be + // imported. + EXPIRED_CALL = 18; + + // The call or the click leading to the call was not found. + CALL_NOT_FOUND = 19; + + // The specified conversion_date_time is before the call_start_date_time. + CONVERSION_PRECEDES_CALL = 20; + + // The click associated with the call does not contain conversion tracking + // information. + CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME = 21; + + // The caller's phone number cannot be parsed. It should be formatted either + // as E.164 "+16502531234", International "+64 3-331 6005" or US national + // number "6502531234". + UNPARSEABLE_CALLERS_PHONE_NUMBER = 22; + + // A conversion with this timestamp already exists for this click. To upload + // another conversion, use a different timestamp. + CLICK_CONVERSION_ALREADY_EXISTS = 23; + + // A conversion with this timestamp already exists for this call. To upload + // another conversion, use a different timestamp. + CALL_CONVERSION_ALREADY_EXISTS = 24; + + // This conversion has the same click and timestamp as another conversion in + // the request. To upload another conversion for this click, use a + // different timestamp. + DUPLICATE_CLICK_CONVERSION_IN_REQUEST = 25; + + // This conversion has the same call and timestamp as another conversion in + // the request. To upload another conversion for this call, use a + // different timestamp. + DUPLICATE_CALL_CONVERSION_IN_REQUEST = 26; + + // The custom variable is not enabled. + CUSTOM_VARIABLE_NOT_ENABLED = 28; + + // The value of the custom variable contains personally identifiable + // information (PII), such as an email address or phone number. + CUSTOM_VARIABLE_VALUE_CONTAINS_PII = 29; + + // The click associated with the given identifier or iOS URL parameter isn't + // from the account where conversion tracking is set up. + INVALID_CUSTOMER_FOR_CLICK = 30; + + // The click associated with the given call isn't from the account where + // conversion tracking is set up. + INVALID_CUSTOMER_FOR_CALL = 31; + + // The conversion can't be uploaded because the conversion source didn't + // comply with the App Tracking Transparency (ATT) policy or the person who + // converted didn't consent to tracking. + CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY = 32; + + // No click was found for the provided user identifiers. This may be because + // the conversion did not come from a Google Ads campaign. + CLICK_NOT_FOUND = 33; + + // The provided user identifier is not a SHA-256 hash. It is either unhashed + // or hashed using a different hash function. + INVALID_USER_IDENTIFIER = 34; + + // Conversion actions which use an external attribution model cannot be used + // with UserIdentifier. + EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER = 35; + + // The provided user identifier is not supported. ConversionUploadService + // only supports hashed_email and hashed_phone_number. + UNSUPPORTED_USER_IDENTIFIER = 36; + + // gbraid and wbraid are both set in the request. Only one is allowed. + GBRAID_WBRAID_BOTH_SET = 38; + + // The specified wbraid could not be decoded. + UNPARSEABLE_WBRAID = 39; + + // The specified gbraid could not be decoded. + UNPARSEABLE_GBRAID = 40; + + // Conversion actions which use the one-per-click counting type cannot be + // used with gbraid or wbraid. + ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID = 46; + + // Per our customer data policies, enhanced conversions have been prohibited + // in your account. If you have any questions, contact your Google + // representative. + CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS = 47; + + // The customer has not accepted the customer data terms in the conversion + // settings page. + CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 48; + + // The order_id contains personally identifiable information (PII), such as + // an email address or phone number. + ORDER_ID_CONTAINS_PII = 49; + } + + +} diff --git a/google/ads/googleads/v11/errors/conversion_value_rule_error.proto b/google/ads/googleads/v11/errors/conversion_value_rule_error.proto new file mode 100644 index 000000000..b73476087 --- /dev/null +++ b/google/ads/googleads/v11/errors/conversion_value_rule_error.proto @@ -0,0 +1,90 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing conversion value rule errors. + +// Container for enum describing possible conversion value rule errors. +message ConversionValueRuleErrorEnum { + // Enum describing possible conversion value rule errors. + enum ConversionValueRuleError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The value rule's geo location condition contains invalid geo target + // constant(s), for example, there's no matching geo target. + INVALID_GEO_TARGET_CONSTANT = 2; + + // The value rule's geo location condition contains conflicting included and + // excluded geo targets. Specifically, some of the excluded geo target(s) + // are the same as or contain some of the included geo target(s). For + // example, the geo location condition includes California but excludes U.S. + CONFLICTING_INCLUDED_AND_EXCLUDED_GEO_TARGET = 3; + + // User specified conflicting conditions for two value rules in the same + // value rule set. + CONFLICTING_CONDITIONS = 4; + + // The value rule cannot be removed because it's still included in some + // value rule set. + CANNOT_REMOVE_IF_INCLUDED_IN_VALUE_RULE_SET = 5; + + // The value rule contains a condition that's not allowed by the value rule + // set including this value rule. + CONDITION_NOT_ALLOWED = 6; + + // The value rule contains a field that should be unset. + FIELD_MUST_BE_UNSET = 7; + + // Pausing the value rule requires pausing the value rule set because the + // value rule is (one of) the last enabled in the value rule set. + CANNOT_PAUSE_UNLESS_VALUE_RULE_SET_IS_PAUSED = 8; + + // The value rule's geo location condition contains untargetable geo target + // constant(s). + UNTARGETABLE_GEO_TARGET = 9; + + // The value rule's audience condition contains invalid user list(s). In + // another word, there's no matching user list. + INVALID_AUDIENCE_USER_LIST = 10; + + // The value rule's audience condition contains inaccessible user list(s). + INACCESSIBLE_USER_LIST = 11; + + // The value rule's audience condition contains invalid user_interest(s). + // This might be because there is no matching user interest, or the user + // interest is not visible. + INVALID_AUDIENCE_USER_INTEREST = 12; + + // When a value rule is created, it shouldn't have REMOVED status. + CANNOT_ADD_RULE_WITH_STATUS_REMOVED = 13; + } + + +} diff --git a/google/ads/googleads/v11/errors/conversion_value_rule_set_error.proto b/google/ads/googleads/v11/errors/conversion_value_rule_set_error.proto new file mode 100644 index 000000000..4fde57972 --- /dev/null +++ b/google/ads/googleads/v11/errors/conversion_value_rule_set_error.proto @@ -0,0 +1,100 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleSetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing conversion value rule set errors. + +// Container for enum describing possible conversion value rule set errors. +message ConversionValueRuleSetErrorEnum { + // Enum describing possible conversion value rule set errors. + enum ConversionValueRuleSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Two value rules in this value rule set contain conflicting conditions. + CONFLICTING_VALUE_RULE_CONDITIONS = 2; + + // This value rule set includes a value rule that cannot be found, has been + // permanently removed or belongs to a different customer. + INVALID_VALUE_RULE = 3; + + // An error that's thrown when a mutate operation is trying to + // replace/remove some existing elements in the dimensions field. In other + // words, ADD op is always fine and UPDATE op is fine if it's only appending + // new elements into dimensions list. + DIMENSIONS_UPDATE_ONLY_ALLOW_APPEND = 4; + + // An error that's thrown when a mutate is adding new value rule(s) into a + // value rule set and the added value rule(s) include conditions that are + // not specified in the dimensions of the value rule set. + CONDITION_TYPE_NOT_ALLOWED = 5; + + // The dimensions field contains duplicate elements. + DUPLICATE_DIMENSIONS = 6; + + // This value rule set is attached to an invalid campaign id. Either a + // campaign with this campaign id doesn't exist or it belongs to a different + // customer. + INVALID_CAMPAIGN_ID = 7; + + // When a mutate request tries to pause a value rule set, the enabled + // value rules in this set must be paused in the same command, or this error + // will be thrown. + CANNOT_PAUSE_UNLESS_ALL_VALUE_RULES_ARE_PAUSED = 8; + + // When a mutate request tries to pause all the value rules in a value rule + // set, the value rule set must be paused, or this error will be thrown. + SHOULD_PAUSE_WHEN_ALL_VALUE_RULES_ARE_PAUSED = 9; + + // This value rule set is attached to a campaign that does not support value + // rules. Currently, campaign level value rule sets can only be created on + // Search, or Display campaigns. + VALUE_RULES_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 10; + + // To add a value rule set that applies on Store Visits/Store Sales + // conversion action categories, the customer must have valid Store Visits/ + // Store Sales conversion actions. + INELIGIBLE_CONVERSION_ACTION_CATEGORIES = 11; + + // If NO_CONDITION is used as a dimension of a value rule set, it must be + // the only dimension. + DIMENSION_NO_CONDITION_USED_WITH_OTHER_DIMENSIONS = 12; + + // Dimension NO_CONDITION can only be used by Store Visits/Store Sales value + // rule set. + DIMENSION_NO_CONDITION_NOT_ALLOWED = 13; + + // Value rule sets defined on the specified conversion action categories are + // not supported. The list of conversion action categories must be an empty + // list, only STORE_VISIT, or only STORE_SALE. + UNSUPPORTED_CONVERSION_ACTION_CATEGORIES = 14; + } + + +} diff --git a/google/ads/googleads/v11/errors/country_code_error.proto b/google/ads/googleads/v11/errors/country_code_error.proto new file mode 100644 index 000000000..ce2c8f108 --- /dev/null +++ b/google/ads/googleads/v11/errors/country_code_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CountryCodeErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing country code errors. + +// Container for enum describing country code errors. +message CountryCodeErrorEnum { + // Enum describing country code errors. + enum CountryCodeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The country code is invalid. + INVALID_COUNTRY_CODE = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/criterion_error.proto b/google/ads/googleads/v11/errors/criterion_error.proto new file mode 100644 index 000000000..01aa96801 --- /dev/null +++ b/google/ads/googleads/v11/errors/criterion_error.proto @@ -0,0 +1,470 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CriterionErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing criterion errors. + +// Container for enum describing possible criterion errors. +message CriterionErrorEnum { + // Enum describing possible criterion errors. + enum CriterionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Concrete type of criterion is required for CREATE and UPDATE operations. + CONCRETE_TYPE_REQUIRED = 2; + + // The category requested for exclusion is invalid. + INVALID_EXCLUDED_CATEGORY = 3; + + // Invalid keyword criteria text. + INVALID_KEYWORD_TEXT = 4; + + // Keyword text should be less than 80 chars. + KEYWORD_TEXT_TOO_LONG = 5; + + // Keyword text has too many words. + KEYWORD_HAS_TOO_MANY_WORDS = 6; + + // Keyword text has invalid characters or symbols. + KEYWORD_HAS_INVALID_CHARS = 7; + + // Invalid placement URL. + INVALID_PLACEMENT_URL = 8; + + // Invalid user list criterion. + INVALID_USER_LIST = 9; + + // Invalid user interest criterion. + INVALID_USER_INTEREST = 10; + + // Placement URL has wrong format. + INVALID_FORMAT_FOR_PLACEMENT_URL = 11; + + // Placement URL is too long. + PLACEMENT_URL_IS_TOO_LONG = 12; + + // Indicates the URL contains an illegal character. + PLACEMENT_URL_HAS_ILLEGAL_CHAR = 13; + + // Indicates the URL contains multiple comma separated URLs. + PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE = 14; + + // Indicates the domain is blocked. + PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION = 15; + + // Invalid topic path. + INVALID_TOPIC_PATH = 16; + + // The YouTube Channel Id is invalid. + INVALID_YOUTUBE_CHANNEL_ID = 17; + + // The YouTube Video Id is invalid. + INVALID_YOUTUBE_VIDEO_ID = 18; + + // Indicates the placement is a YouTube vertical channel, which is no longer + // supported. + YOUTUBE_VERTICAL_CHANNEL_DEPRECATED = 19; + + // Indicates the placement is a YouTube demographic channel, which is no + // longer supported. + YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED = 20; + + // YouTube urls are not supported in Placement criterion. Use YouTubeChannel + // and YouTubeVideo criterion instead. + YOUTUBE_URL_UNSUPPORTED = 21; + + // Criteria type can not be excluded by the customer, like AOL account type + // cannot target site type criteria. + CANNOT_EXCLUDE_CRITERIA_TYPE = 22; + + // Criteria type can not be targeted. + CANNOT_ADD_CRITERIA_TYPE = 23; + + // Not allowed to exclude similar user list. + CANNOT_EXCLUDE_SIMILAR_USER_LIST = 26; + + // Not allowed to target a closed user list. + CANNOT_ADD_CLOSED_USER_LIST = 27; + + // Not allowed to add display only UserLists to search only campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS = 28; + + // Not allowed to add display only UserLists to search plus campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS = 29; + + // Not allowed to add display only UserLists to shopping campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS = 30; + + // Not allowed to add User interests to search only campaigns. + CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS = 31; + + // Not allowed to set bids for this criterion type in search campaigns + CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS = 32; + + // Final URLs, URL Templates and CustomParameters cannot be set for the + // criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and + // MobileAppCategory in search campaigns and shopping campaigns. + CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE = 33; + + // Invalid combined audience criterion. + INVALID_COMBINED_AUDIENCE = 122; + + // Invalid custom affinity criterion. + INVALID_CUSTOM_AFFINITY = 96; + + // Invalid custom intent criterion. + INVALID_CUSTOM_INTENT = 97; + + // Invalid custom audience criterion. + INVALID_CUSTOM_AUDIENCE = 121; + + // IP address is not valid. + INVALID_IP_ADDRESS = 34; + + // IP format is not valid. + INVALID_IP_FORMAT = 35; + + // Mobile application is not valid. + INVALID_MOBILE_APP = 36; + + // Mobile application category is not valid. + INVALID_MOBILE_APP_CATEGORY = 37; + + // The CriterionId does not exist or is of the incorrect type. + INVALID_CRITERION_ID = 38; + + // The Criterion is not allowed to be targeted. + CANNOT_TARGET_CRITERION = 39; + + // The criterion is not allowed to be targeted as it is deprecated. + CANNOT_TARGET_OBSOLETE_CRITERION = 40; + + // The CriterionId is not valid for the type. + CRITERION_ID_AND_TYPE_MISMATCH = 41; + + // Distance for the radius for the proximity criterion is invalid. + INVALID_PROXIMITY_RADIUS = 42; + + // Units for the distance for the radius for the proximity criterion is + // invalid. + INVALID_PROXIMITY_RADIUS_UNITS = 43; + + // Street address in the address is not valid. + INVALID_STREETADDRESS_LENGTH = 44; + + // City name in the address is not valid. + INVALID_CITYNAME_LENGTH = 45; + + // Region code in the address is not valid. + INVALID_REGIONCODE_LENGTH = 46; + + // Region name in the address is not valid. + INVALID_REGIONNAME_LENGTH = 47; + + // Postal code in the address is not valid. + INVALID_POSTALCODE_LENGTH = 48; + + // Country code in the address is not valid. + INVALID_COUNTRY_CODE = 49; + + // Latitude for the GeoPoint is not valid. + INVALID_LATITUDE = 50; + + // Longitude for the GeoPoint is not valid. + INVALID_LONGITUDE = 51; + + // The Proximity input is not valid. Both address and geoPoint cannot be + // null. + PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL = 52; + + // The Proximity address cannot be geocoded to a valid lat/long. + INVALID_PROXIMITY_ADDRESS = 53; + + // User domain name is not valid. + INVALID_USER_DOMAIN_NAME = 54; + + // Length of serialized criterion parameter exceeded size limit. + CRITERION_PARAMETER_TOO_LONG = 55; + + // Time interval in the AdSchedule overlaps with another AdSchedule. + AD_SCHEDULE_TIME_INTERVALS_OVERLAP = 56; + + // AdSchedule time interval cannot span multiple days. + AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS = 57; + + // AdSchedule time interval specified is invalid, endTime cannot be earlier + // than startTime. + AD_SCHEDULE_INVALID_TIME_INTERVAL = 58; + + // The number of AdSchedule entries in a day exceeds the limit. + AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT = 59; + + // CriteriaId does not match the interval of the AdSchedule specified. + AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS = 60; + + // Cannot set bid modifier for this criterion type. + CANNOT_BID_MODIFY_CRITERION_TYPE = 61; + + // Cannot bid modify criterion, since it is opted out of the campaign. + CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT = 62; + + // Cannot set bid modifier for a negative criterion. + CANNOT_BID_MODIFY_NEGATIVE_CRITERION = 63; + + // Bid Modifier already exists. Use SET operation to update. + BID_MODIFIER_ALREADY_EXISTS = 64; + + // Feed Id is not allowed in these Location Groups. + FEED_ID_NOT_ALLOWED = 65; + + // The account may not use the requested criteria type. For example, some + // accounts are restricted to keywords only. + ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE = 66; + + // The requested criteria type cannot be used with campaign or ad group + // bidding strategy. + CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY = 67; + + // The Criterion is not allowed to be excluded. + CANNOT_EXCLUDE_CRITERION = 68; + + // The criterion is not allowed to be removed. For example, we cannot remove + // any of the device criterion. + CANNOT_REMOVE_CRITERION = 69; + + // Bidding categories do not form a valid path in the Shopping bidding + // category taxonomy. + INVALID_PRODUCT_BIDDING_CATEGORY = 76; + + // ShoppingSetting must be added to the campaign before ProductScope + // criteria can be added. + MISSING_SHOPPING_SETTING = 77; + + // Matching function is invalid. + INVALID_MATCHING_FUNCTION = 78; + + // Filter parameters not allowed for location groups targeting. + LOCATION_FILTER_NOT_ALLOWED = 79; + + // Feed not found, or the feed is not an enabled location feed. + INVALID_FEED_FOR_LOCATION_FILTER = 98; + + // Given location filter parameter is invalid for location groups targeting. + LOCATION_FILTER_INVALID = 80; + + // Cannot set geo target constants and feed item sets at the same time. + CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS = 123; + + // The location group radius is in the range but not at the valid increment. + INVALID_LOCATION_GROUP_RADIUS = 124; + + // The location group radius unit is invalid. + INVALID_LOCATION_GROUP_RADIUS_UNIT = 125; + + // Criteria type cannot be associated with a campaign and its ad group(s) + // simultaneously. + CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP = 81; + + // Range represented by hotel length of stay's min nights and max nights + // overlaps with an existing criterion. + HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION = 82; + + // Range represented by hotel advance booking window's min days and max days + // overlaps with an existing criterion. + HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION = 83; + + // The field is not allowed to be set when the negative field is set to + // true, for example, we don't allow bids in negative ad group or campaign + // criteria. + FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING = 84; + + // The combination of operand and operator in webpage condition is invalid. + INVALID_WEBPAGE_CONDITION = 85; + + // The URL of webpage condition is invalid. + INVALID_WEBPAGE_CONDITION_URL = 86; + + // The URL of webpage condition cannot be empty or contain white space. + WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY = 87; + + // The URL of webpage condition contains an unsupported protocol. + WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL = 88; + + // The URL of webpage condition cannot be an IP address. + WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS = 89; + + // The domain of the URL is not consistent with the domain in campaign + // setting. + WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING = 90; + + // The URL of webpage condition cannot be a public suffix itself. + WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX = 91; + + // The URL of webpage condition has an invalid public suffix. + WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX = 92; + + // Value track parameter is not supported in webpage condition URL. + WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED = 93; + + // Only one URL-EQUALS webpage condition is allowed in a webpage + // criterion and it cannot be combined with other conditions. + WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION = 94; + + // A webpage criterion cannot be added to a non-DSA ad group. + WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP = 95; + + // Cannot add positive user list criteria in Smart Display campaigns. + CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS = 99; + + // Cannot add positive placement criterion types in search campaigns. + CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS = 126; + + // Listing scope contains too many dimension types. + LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES = 100; + + // Listing scope has too many IN operators. + LISTING_SCOPE_TOO_MANY_IN_OPERATORS = 101; + + // Listing scope contains IN operator on an unsupported dimension type. + LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED = 102; + + // There are dimensions with duplicate dimension type. + DUPLICATE_LISTING_DIMENSION_TYPE = 103; + + // There are dimensions with duplicate dimension value. + DUPLICATE_LISTING_DIMENSION_VALUE = 104; + + // Listing group SUBDIVISION nodes cannot have bids. + CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION = 105; + + // Ad group is invalid due to the listing groups it contains. + INVALID_LISTING_GROUP_HIERARCHY = 106; + + // Listing group unit cannot have children. + LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN = 107; + + // Subdivided listing groups must have an "others" case. + LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE = 108; + + // Dimension type of listing group must be the same as that of its siblings. + LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS = 109; + + // Listing group cannot be added to the ad group because it already exists. + LISTING_GROUP_ALREADY_EXISTS = 110; + + // Listing group referenced in the operation was not found in the ad group. + LISTING_GROUP_DOES_NOT_EXIST = 111; + + // Recursive removal failed because listing group subdivision is being + // created or modified in this request. + LISTING_GROUP_CANNOT_BE_REMOVED = 112; + + // Listing group type is not allowed for specified ad group criterion type. + INVALID_LISTING_GROUP_TYPE = 113; + + // Listing group in an ADD operation specifies a non temporary criterion id. + LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID = 114; + + // The combined length of dimension values of the Listing scope criterion + // is too long. + LISTING_SCOPE_TOO_LONG = 115; + + // Listing scope contains too many dimensions. + LISTING_SCOPE_TOO_MANY_DIMENSIONS = 116; + + // The combined length of dimension values of the Listing group criterion is + // too long. + LISTING_GROUP_TOO_LONG = 117; + + // Listing group tree is too deep. + LISTING_GROUP_TREE_TOO_DEEP = 118; + + // Listing dimension is invalid (for example, dimension contains illegal + // value, dimension type is represented with wrong class, etc). Listing + // dimension value can not contain "==" or "&+". + INVALID_LISTING_DIMENSION = 119; + + // Listing dimension type is either invalid for campaigns of this type or + // cannot be used in the current context. BIDDING_CATEGORY_Lx and + // PRODUCT_TYPE_Lx dimensions must be used in ascending order of their + // levels: L1, L2, L3, L4, L5... The levels must be specified sequentially + // and start from L1. Furthermore, an "others" Listing group cannot be + // subdivided with a dimension of the same type but of a higher level + // ("others" BIDDING_CATEGORY_L3 can be subdivided with BRAND but not with + // BIDDING_CATEGORY_L4). + INVALID_LISTING_DIMENSION_TYPE = 120; + + // Customer is not on allowlist for composite audience in display campaigns. + ADVERTISER_NOT_ON_ALLOWLIST_FOR_COMBINED_AUDIENCE_ON_DISPLAY = 127; + + // Cannot target on a removed combined audience. + CANNOT_TARGET_REMOVED_COMBINED_AUDIENCE = 128; + + // Combined audience ID is invalid. + INVALID_COMBINED_AUDIENCE_ID = 129; + + // Can not target removed combined audience. + CANNOT_TARGET_REMOVED_CUSTOM_AUDIENCE = 130; + + // Range represented by hotel check-in date's start date and end date + // overlaps with an existing criterion. + HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION = 131; + + // Start date is earlier than earliest allowed value of yesterday UTC. + HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY = 132; + + // End date later is than latest allowed day of 330 days in the future UTC. + HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE = 133; + + // Start date is after end date. + HOTEL_CHECK_IN_DATE_RANGE_REVERSED = 134; + + // Broad match modifier (BMM) keywords can no longer be created. See + // https://ads-developers.googleblog.com/2021/06/broad-match-modifier-upcoming-changes.html. + BROAD_MATCH_MODIFIER_KEYWORD_NOT_ALLOWED = 135; + + // Only one audience is allowed in an asset group. + ONE_AUDIENCE_ALLOWED_PER_ASSET_GROUP = 136; + + // Audience is not supported for the specified campaign type. + AUDIENCE_NOT_ELIGIBLE_FOR_CAMPAIGN_TYPE = 137; + + // Audience is not allowed to attach when use_audience_grouped bit is set to + // false. + AUDIENCE_NOT_ALLOWED_TO_ATTACH_WHEN_AUDIENCE_GROUPED_SET_TO_FALSE = 138; + + // Targeting is not allowed for Customer Match lists as per Customer Match + // policy. See + // https://support.google.com/google-ads/answer/6299717. + CANNOT_TARGET_CUSTOMER_MATCH_USER_LIST = 139; + } + + +} diff --git a/google/ads/googleads/v11/errors/currency_code_error.proto b/google/ads/googleads/v11/errors/currency_code_error.proto new file mode 100644 index 000000000..d535bc5ce --- /dev/null +++ b/google/ads/googleads/v11/errors/currency_code_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CurrencyCodeErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing currency code errors. + +// Container for enum describing possible currency code errors. +message CurrencyCodeErrorEnum { + // Enum describing possible currency code errors. + enum CurrencyCodeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The currency code is not supported. + UNSUPPORTED = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/custom_audience_error.proto b/google/ads/googleads/v11/errors/custom_audience_error.proto new file mode 100644 index 000000000..38da30c4b --- /dev/null +++ b/google/ads/googleads/v11/errors/custom_audience_error.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing custom audience errors. + +// Container for enum describing possible custom audience errors. +message CustomAudienceErrorEnum { + // Enum describing possible custom audience errors. + enum CustomAudienceError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // New name in the custom audience is duplicated ignoring cases. + NAME_ALREADY_USED = 2; + + // Cannot remove a custom audience while it's still being used as targeting. + CANNOT_REMOVE_WHILE_IN_USE = 3; + + // Cannot update or remove a custom audience that is already removed. + RESOURCE_ALREADY_REMOVED = 4; + + // The pair of [type, value] already exists in members. + MEMBER_TYPE_AND_PARAMETER_ALREADY_EXISTED = 5; + + // Member type is invalid. + INVALID_MEMBER_TYPE = 6; + + // Member type does not have associated value. + MEMBER_TYPE_AND_VALUE_DOES_NOT_MATCH = 7; + + // Custom audience contains a member that violates policy. + POLICY_VIOLATION = 8; + + // Change in custom audience type is not allowed. + INVALID_TYPE_CHANGE = 9; + } + + +} diff --git a/google/ads/googleads/v11/errors/custom_conversion_goal_error.proto b/google/ads/googleads/v11/errors/custom_conversion_goal_error.proto new file mode 100644 index 000000000..1a25fc37f --- /dev/null +++ b/google/ads/googleads/v11/errors/custom_conversion_goal_error.proto @@ -0,0 +1,59 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomConversionGoalErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing CustomConversionGoal errors. + +// Container for enum describing possible custom conversion goal errors. +message CustomConversionGoalErrorEnum { + // Enum describing possible custom conversion goal errors. + enum CustomConversionGoalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot find a conversion action with the specified id. + INVALID_CONVERSION_ACTION = 2; + + // The conversion action is not enabled so it cannot be included in a custom + // conversion goal. + CONVERSION_ACTION_NOT_ENABLED = 3; + + // The custom conversion goal cannot be removed because it's linked to a + // campaign. + CANNOT_REMOVE_LINKED_CUSTOM_CONVERSION_GOAL = 4; + + // Custom goal with the same name already exists. + CUSTOM_GOAL_DUPLICATE_NAME = 5; + + // Custom goal with the same conversion action list already exists. + DUPLICATE_CONVERSION_ACTION_LIST = 6; + } + + +} diff --git a/google/ads/googleads/v11/errors/custom_interest_error.proto b/google/ads/googleads/v11/errors/custom_interest_error.proto new file mode 100644 index 000000000..b4c250686 --- /dev/null +++ b/google/ads/googleads/v11/errors/custom_interest_error.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing custom interest errors. + +// Container for enum describing possible custom interest errors. +message CustomInterestErrorEnum { + // Enum describing possible custom interest errors. + enum CustomInterestError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Duplicate custom interest name ignoring case. + NAME_ALREADY_USED = 2; + + // In the remove custom interest member operation, both member ID and + // pair [type, parameter] are not present. + CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE = 3; + + // The pair of [type, parameter] does not exist. + TYPE_AND_PARAMETER_NOT_FOUND = 4; + + // The pair of [type, parameter] already exists. + TYPE_AND_PARAMETER_ALREADY_EXISTED = 5; + + // Unsupported custom interest member type. + INVALID_CUSTOM_INTEREST_MEMBER_TYPE = 6; + + // Cannot remove a custom interest while it's still being targeted. + CANNOT_REMOVE_WHILE_IN_USE = 7; + + // Cannot mutate custom interest type. + CANNOT_CHANGE_TYPE = 8; + } + + +} diff --git a/google/ads/googleads/v11/errors/customer_client_link_error.proto b/google/ads/googleads/v11/errors/customer_client_link_error.proto new file mode 100644 index 000000000..d64779873 --- /dev/null +++ b/google/ads/googleads/v11/errors/customer_client_link_error.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerClientLinkErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing CustomerClientLink errors. + +// Container for enum describing possible CustomeClientLink errors. +message CustomerClientLinkErrorEnum { + // Enum describing possible CustomerClientLink errors. + enum CustomerClientLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Trying to manage a client that already in being managed by customer. + CLIENT_ALREADY_INVITED_BY_THIS_MANAGER = 2; + + // Already managed by some other manager in the hierarchy. + CLIENT_ALREADY_MANAGED_IN_HIERARCHY = 3; + + // Attempt to create a cycle in the hierarchy. + CYCLIC_LINK_NOT_ALLOWED = 4; + + // Managed accounts has the maximum number of linked accounts. + CUSTOMER_HAS_TOO_MANY_ACCOUNTS = 5; + + // Invitor has the maximum pending invitations. + CLIENT_HAS_TOO_MANY_INVITATIONS = 6; + + // Attempt to change hidden status of a link that is not active. + CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS = 7; + + // Parent manager account has the maximum number of linked accounts. + CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER = 8; + + // Client has too many managers. + CLIENT_HAS_TOO_MANY_MANAGERS = 9; + } + + +} diff --git a/google/ads/googleads/v11/errors/customer_customizer_error.proto b/google/ads/googleads/v11/errors/customer_customizer_error.proto new file mode 100644 index 000000000..b36f7d5ac --- /dev/null +++ b/google/ads/googleads/v11/errors/customer_customizer_error.proto @@ -0,0 +1,42 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerCustomizerErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing customer customizer errors. + +// Container for enum describing possible customer customizer errors. +message CustomerCustomizerErrorEnum { + // Enum describing possible customer customizer errors. + enum CustomerCustomizerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + } + + +} diff --git a/google/ads/googleads/v11/errors/customer_error.proto b/google/ads/googleads/v11/errors/customer_error.proto new file mode 100644 index 000000000..be4bdc50a --- /dev/null +++ b/google/ads/googleads/v11/errors/customer_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Container for enum describing possible customer errors. +message CustomerErrorEnum { + // Set of errors that are related to requests dealing with Customer. + enum CustomerError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Customer status is not allowed to be changed from DRAFT and CLOSED. + // Currency code and at least one of country code and time zone needs to be + // set when status is changed to ENABLED. + STATUS_CHANGE_DISALLOWED = 2; + + // CustomerService cannot get a customer that has not been fully set up. + ACCOUNT_NOT_SET_UP = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/customer_feed_error.proto b/google/ads/googleads/v11/errors/customer_feed_error.proto new file mode 100644 index 000000000..87e83cec7 --- /dev/null +++ b/google/ads/googleads/v11/errors/customer_feed_error.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerFeedErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing customer feed errors. + +// Container for enum describing possible customer feed errors. +message CustomerFeedErrorEnum { + // Enum describing possible customer feed errors. + enum CustomerFeedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An active feed already exists for this customer and place holder type. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; + + // The specified feed is removed. + CANNOT_CREATE_FOR_REMOVED_FEED = 3; + + // The CustomerFeed already exists. Update should be used to modify the + // existing CustomerFeed. + CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED = 4; + + // Cannot update removed customer feed. + CANNOT_MODIFY_REMOVED_CUSTOMER_FEED = 5; + + // Invalid placeholder type. + INVALID_PLACEHOLDER_TYPE = 6; + + // Feed mapping for this placeholder type does not exist. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7; + + // Placeholder not allowed at the account level. + PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED = 8; + } + + +} diff --git a/google/ads/googleads/v11/errors/customer_manager_link_error.proto b/google/ads/googleads/v11/errors/customer_manager_link_error.proto new file mode 100644 index 000000000..ff36f1d89 --- /dev/null +++ b/google/ads/googleads/v11/errors/customer_manager_link_error.proto @@ -0,0 +1,73 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerManagerLinkErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing CustomerManagerLink errors. + +// Container for enum describing possible CustomerManagerLink errors. +message CustomerManagerLinkErrorEnum { + // Enum describing possible CustomerManagerLink errors. + enum CustomerManagerLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // No pending invitation. + NO_PENDING_INVITE = 2; + + // Attempt to operate on the same client more than once in the same call. + SAME_CLIENT_MORE_THAN_ONCE_PER_CALL = 3; + + // Manager account has the maximum number of linked accounts. + MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS = 4; + + // If no active user on account it cannot be unlinked from its manager. + CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER = 5; + + // Account should have at least one active owner on it before being + // unlinked. + CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER = 6; + + // Only account owners may change their permission role. + CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER = 7; + + // When a client's link to its manager is not active, the link role cannot + // be changed. + CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT = 8; + + // Attempt to link a child to a parent that contains or will contain + // duplicate children. + DUPLICATE_CHILD_FOUND = 9; + + // The authorized customer is a test account. It can add no more than the + // allowed number of accounts + TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS = 10; + } + + +} diff --git a/google/ads/googleads/v11/errors/customer_user_access_error.proto b/google/ads/googleads/v11/errors/customer_user_access_error.proto new file mode 100644 index 000000000..a9a67d222 --- /dev/null +++ b/google/ads/googleads/v11/errors/customer_user_access_error.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing CustomerUserAccess errors. + +// Container for enum describing possible CustomerUserAccess errors. +message CustomerUserAccessErrorEnum { + // Enum describing possible customer user access errors. + enum CustomerUserAccessError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // There is no user associated with the user id specified. + INVALID_USER_ID = 2; + + // Unable to remove the access between the user and customer. + REMOVAL_DISALLOWED = 3; + + // Unable to add or update the access role as specified. + DISALLOWED_ACCESS_ROLE = 4; + + // The user can't remove itself from an active serving customer if it's the + // last admin user and the customer doesn't have any owner manager + LAST_ADMIN_USER_OF_SERVING_CUSTOMER = 5; + + // Last admin user cannot be removed from a manager. + LAST_ADMIN_USER_OF_MANAGER = 6; + } + + +} diff --git a/google/ads/googleads/v11/errors/customizer_attribute_error.proto b/google/ads/googleads/v11/errors/customizer_attribute_error.proto new file mode 100644 index 000000000..5e767edc7 --- /dev/null +++ b/google/ads/googleads/v11/errors/customizer_attribute_error.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing customizer attribute errors. + +// Container for enum describing possible customizer attribute errors. +message CustomizerAttributeErrorEnum { + // Enum describing possible customizer attribute errors. + enum CustomizerAttributeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // CustomizerAttribute name matches that of another active + // CustomizerAttribute. + DUPLICATE_CUSTOMIZER_ATTRIBUTE_NAME = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/database_error.proto b/google/ads/googleads/v11/errors/database_error.proto new file mode 100644 index 000000000..44fced8ab --- /dev/null +++ b/google/ads/googleads/v11/errors/database_error.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DatabaseErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing database errors. + +// Container for enum describing possible database errors. +message DatabaseErrorEnum { + // Enum describing possible database errors. + enum DatabaseError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Multiple requests were attempting to modify the same resource at once. + // Retry the request. + CONCURRENT_MODIFICATION = 2; + + // The request conflicted with existing data. This error will usually be + // replaced with a more specific error if the request is retried. + DATA_CONSTRAINT_VIOLATION = 3; + + // The data written is too large. Split the request into smaller + // requests. + REQUEST_TOO_LARGE = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/date_error.proto b/google/ads/googleads/v11/errors/date_error.proto new file mode 100644 index 000000000..9629107a3 --- /dev/null +++ b/google/ads/googleads/v11/errors/date_error.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DateErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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/google/ads/googleads/v11/errors/date_range_error.proto b/google/ads/googleads/v11/errors/date_range_error.proto new file mode 100644 index 000000000..b8470c536 --- /dev/null +++ b/google/ads/googleads/v11/errors/date_range_error.proto @@ -0,0 +1,57 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DateRangeErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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/google/ads/googleads/v11/errors/distinct_error.proto b/google/ads/googleads/v11/errors/distinct_error.proto new file mode 100644 index 000000000..967466756 --- /dev/null +++ b/google/ads/googleads/v11/errors/distinct_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DistinctErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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/google/ads/googleads/v11/errors/enum_error.proto b/google/ads/googleads/v11/errors/enum_error.proto new file mode 100644 index 000000000..56cfdf477 --- /dev/null +++ b/google/ads/googleads/v11/errors/enum_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "EnumErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing enum errors. + +// Container for enum describing possible enum errors. +message EnumErrorEnum { + // Enum describing possible enum errors. + enum EnumError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The enum value is not permitted. + ENUM_VALUE_NOT_PERMITTED = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/errors.proto b/google/ads/googleads/v11/errors/errors.proto new file mode 100644 index 000000000..ea5b914b9 --- /dev/null +++ b/google/ads/googleads/v11/errors/errors.proto @@ -0,0 +1,739 @@ +// 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.ads.googleads.v11.errors; + +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/common/value.proto"; +import "google/ads/googleads/v11/enums/resource_limit_type.proto"; +import "google/ads/googleads/v11/errors/access_invitation_error.proto"; +import "google/ads/googleads/v11/errors/account_budget_proposal_error.proto"; +import "google/ads/googleads/v11/errors/account_link_error.proto"; +import "google/ads/googleads/v11/errors/ad_customizer_error.proto"; +import "google/ads/googleads/v11/errors/ad_error.proto"; +import "google/ads/googleads/v11/errors/ad_group_ad_error.proto"; +import "google/ads/googleads/v11/errors/ad_group_bid_modifier_error.proto"; +import "google/ads/googleads/v11/errors/ad_group_criterion_customizer_error.proto"; +import "google/ads/googleads/v11/errors/ad_group_criterion_error.proto"; +import "google/ads/googleads/v11/errors/ad_group_customizer_error.proto"; +import "google/ads/googleads/v11/errors/ad_group_error.proto"; +import "google/ads/googleads/v11/errors/ad_group_feed_error.proto"; +import "google/ads/googleads/v11/errors/ad_parameter_error.proto"; +import "google/ads/googleads/v11/errors/ad_sharing_error.proto"; +import "google/ads/googleads/v11/errors/adx_error.proto"; +import "google/ads/googleads/v11/errors/asset_error.proto"; +import "google/ads/googleads/v11/errors/asset_group_asset_error.proto"; +import "google/ads/googleads/v11/errors/asset_group_error.proto"; +import "google/ads/googleads/v11/errors/asset_group_listing_group_filter_error.proto"; +import "google/ads/googleads/v11/errors/asset_link_error.proto"; +import "google/ads/googleads/v11/errors/asset_set_asset_error.proto"; +import "google/ads/googleads/v11/errors/asset_set_error.proto"; +import "google/ads/googleads/v11/errors/asset_set_link_error.proto"; +import "google/ads/googleads/v11/errors/audience_error.proto"; +import "google/ads/googleads/v11/errors/audience_insights_error.proto"; +import "google/ads/googleads/v11/errors/authentication_error.proto"; +import "google/ads/googleads/v11/errors/authorization_error.proto"; +import "google/ads/googleads/v11/errors/batch_job_error.proto"; +import "google/ads/googleads/v11/errors/bidding_error.proto"; +import "google/ads/googleads/v11/errors/bidding_strategy_error.proto"; +import "google/ads/googleads/v11/errors/billing_setup_error.proto"; +import "google/ads/googleads/v11/errors/campaign_budget_error.proto"; +import "google/ads/googleads/v11/errors/campaign_conversion_goal_error.proto"; +import "google/ads/googleads/v11/errors/campaign_criterion_error.proto"; +import "google/ads/googleads/v11/errors/campaign_customizer_error.proto"; +import "google/ads/googleads/v11/errors/campaign_draft_error.proto"; +import "google/ads/googleads/v11/errors/campaign_error.proto"; +import "google/ads/googleads/v11/errors/campaign_experiment_error.proto"; +import "google/ads/googleads/v11/errors/campaign_feed_error.proto"; +import "google/ads/googleads/v11/errors/campaign_shared_set_error.proto"; +import "google/ads/googleads/v11/errors/change_event_error.proto"; +import "google/ads/googleads/v11/errors/change_status_error.proto"; +import "google/ads/googleads/v11/errors/collection_size_error.proto"; +import "google/ads/googleads/v11/errors/context_error.proto"; +import "google/ads/googleads/v11/errors/conversion_action_error.proto"; +import "google/ads/googleads/v11/errors/conversion_adjustment_upload_error.proto"; +import "google/ads/googleads/v11/errors/conversion_custom_variable_error.proto"; +import "google/ads/googleads/v11/errors/conversion_goal_campaign_config_error.proto"; +import "google/ads/googleads/v11/errors/conversion_upload_error.proto"; +import "google/ads/googleads/v11/errors/conversion_value_rule_error.proto"; +import "google/ads/googleads/v11/errors/conversion_value_rule_set_error.proto"; +import "google/ads/googleads/v11/errors/country_code_error.proto"; +import "google/ads/googleads/v11/errors/criterion_error.proto"; +import "google/ads/googleads/v11/errors/currency_code_error.proto"; +import "google/ads/googleads/v11/errors/custom_audience_error.proto"; +import "google/ads/googleads/v11/errors/custom_conversion_goal_error.proto"; +import "google/ads/googleads/v11/errors/custom_interest_error.proto"; +import "google/ads/googleads/v11/errors/customer_client_link_error.proto"; +import "google/ads/googleads/v11/errors/customer_customizer_error.proto"; +import "google/ads/googleads/v11/errors/customer_error.proto"; +import "google/ads/googleads/v11/errors/customer_feed_error.proto"; +import "google/ads/googleads/v11/errors/customer_manager_link_error.proto"; +import "google/ads/googleads/v11/errors/customer_user_access_error.proto"; +import "google/ads/googleads/v11/errors/customizer_attribute_error.proto"; +import "google/ads/googleads/v11/errors/database_error.proto"; +import "google/ads/googleads/v11/errors/date_error.proto"; +import "google/ads/googleads/v11/errors/date_range_error.proto"; +import "google/ads/googleads/v11/errors/distinct_error.proto"; +import "google/ads/googleads/v11/errors/enum_error.proto"; +import "google/ads/googleads/v11/errors/experiment_arm_error.proto"; +import "google/ads/googleads/v11/errors/experiment_error.proto"; +import "google/ads/googleads/v11/errors/extension_feed_item_error.proto"; +import "google/ads/googleads/v11/errors/extension_setting_error.proto"; +import "google/ads/googleads/v11/errors/feed_attribute_reference_error.proto"; +import "google/ads/googleads/v11/errors/feed_error.proto"; +import "google/ads/googleads/v11/errors/feed_item_error.proto"; +import "google/ads/googleads/v11/errors/feed_item_set_error.proto"; +import "google/ads/googleads/v11/errors/feed_item_set_link_error.proto"; +import "google/ads/googleads/v11/errors/feed_item_target_error.proto"; +import "google/ads/googleads/v11/errors/feed_item_validation_error.proto"; +import "google/ads/googleads/v11/errors/feed_mapping_error.proto"; +import "google/ads/googleads/v11/errors/field_error.proto"; +import "google/ads/googleads/v11/errors/field_mask_error.proto"; +import "google/ads/googleads/v11/errors/function_error.proto"; +import "google/ads/googleads/v11/errors/function_parsing_error.proto"; +import "google/ads/googleads/v11/errors/geo_target_constant_suggestion_error.proto"; +import "google/ads/googleads/v11/errors/header_error.proto"; +import "google/ads/googleads/v11/errors/id_error.proto"; +import "google/ads/googleads/v11/errors/image_error.proto"; +import "google/ads/googleads/v11/errors/internal_error.proto"; +import "google/ads/googleads/v11/errors/invoice_error.proto"; +import "google/ads/googleads/v11/errors/keyword_plan_ad_group_error.proto"; +import "google/ads/googleads/v11/errors/keyword_plan_ad_group_keyword_error.proto"; +import "google/ads/googleads/v11/errors/keyword_plan_campaign_error.proto"; +import "google/ads/googleads/v11/errors/keyword_plan_campaign_keyword_error.proto"; +import "google/ads/googleads/v11/errors/keyword_plan_error.proto"; +import "google/ads/googleads/v11/errors/keyword_plan_idea_error.proto"; +import "google/ads/googleads/v11/errors/label_error.proto"; +import "google/ads/googleads/v11/errors/language_code_error.proto"; +import "google/ads/googleads/v11/errors/list_operation_error.proto"; +import "google/ads/googleads/v11/errors/manager_link_error.proto"; +import "google/ads/googleads/v11/errors/media_bundle_error.proto"; +import "google/ads/googleads/v11/errors/media_file_error.proto"; +import "google/ads/googleads/v11/errors/media_upload_error.proto"; +import "google/ads/googleads/v11/errors/merchant_center_error.proto"; +import "google/ads/googleads/v11/errors/multiplier_error.proto"; +import "google/ads/googleads/v11/errors/mutate_error.proto"; +import "google/ads/googleads/v11/errors/new_resource_creation_error.proto"; +import "google/ads/googleads/v11/errors/not_allowlisted_error.proto"; +import "google/ads/googleads/v11/errors/not_empty_error.proto"; +import "google/ads/googleads/v11/errors/null_error.proto"; +import "google/ads/googleads/v11/errors/offline_user_data_job_error.proto"; +import "google/ads/googleads/v11/errors/operation_access_denied_error.proto"; +import "google/ads/googleads/v11/errors/operator_error.proto"; +import "google/ads/googleads/v11/errors/partial_failure_error.proto"; +import "google/ads/googleads/v11/errors/payments_account_error.proto"; +import "google/ads/googleads/v11/errors/policy_finding_error.proto"; +import "google/ads/googleads/v11/errors/policy_validation_parameter_error.proto"; +import "google/ads/googleads/v11/errors/policy_violation_error.proto"; +import "google/ads/googleads/v11/errors/query_error.proto"; +import "google/ads/googleads/v11/errors/quota_error.proto"; +import "google/ads/googleads/v11/errors/range_error.proto"; +import "google/ads/googleads/v11/errors/reach_plan_error.proto"; +import "google/ads/googleads/v11/errors/recommendation_error.proto"; +import "google/ads/googleads/v11/errors/region_code_error.proto"; +import "google/ads/googleads/v11/errors/request_error.proto"; +import "google/ads/googleads/v11/errors/resource_access_denied_error.proto"; +import "google/ads/googleads/v11/errors/resource_count_limit_exceeded_error.proto"; +import "google/ads/googleads/v11/errors/setting_error.proto"; +import "google/ads/googleads/v11/errors/shared_criterion_error.proto"; +import "google/ads/googleads/v11/errors/shared_set_error.proto"; +import "google/ads/googleads/v11/errors/size_limit_error.proto"; +import "google/ads/googleads/v11/errors/string_format_error.proto"; +import "google/ads/googleads/v11/errors/string_length_error.proto"; +import "google/ads/googleads/v11/errors/third_party_app_analytics_link_error.proto"; +import "google/ads/googleads/v11/errors/time_zone_error.proto"; +import "google/ads/googleads/v11/errors/url_field_error.proto"; +import "google/ads/googleads/v11/errors/user_data_error.proto"; +import "google/ads/googleads/v11/errors/user_list_error.proto"; +import "google/ads/googleads/v11/errors/youtube_video_registration_error.proto"; +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ErrorsProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing the common error protos + +// Describes how a GoogleAds API call failed. It's returned inside +// google.rpc.Status.details when a call fails. +message GoogleAdsFailure { + // The list of errors that occurred. + repeated GoogleAdsError errors = 1; + + // The unique ID of the request that is used for debugging purposes. + string request_id = 2; +} + +// GoogleAds-specific error. +message GoogleAdsError { + // 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.googleads.v11.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 a Bidding Strategy mutate. + BiddingStrategyErrorEnum.BiddingStrategyError bidding_strategy_error = 2; + + // An error with a URL field mutate. + UrlFieldErrorEnum.UrlFieldError url_field_error = 3; + + // An error with a list operation. + ListOperationErrorEnum.ListOperationError list_operation_error = 4; + + // An error with an AWQL query + QueryErrorEnum.QueryError query_error = 5; + + // An error with a mutate + MutateErrorEnum.MutateError mutate_error = 7; + + // An error with a field mask + FieldMaskErrorEnum.FieldMaskError field_mask_error = 8; + + // 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 amonut of quota remaining. + QuotaErrorEnum.QuotaError quota_error = 11; + + // An error with an Ad Group Ad mutate. + AdErrorEnum.AdError ad_error = 12; + + // An error with an Ad Group mutate. + AdGroupErrorEnum.AdGroupError ad_group_error = 13; + + // An error with a Campaign Budget mutate. + CampaignBudgetErrorEnum.CampaignBudgetError campaign_budget_error = 14; + + // An error with a Campaign mutate. + CampaignErrorEnum.CampaignError campaign_error = 15; + + // Indicates failure to properly authenticate user. + AuthenticationErrorEnum.AuthenticationError authentication_error = 17; + + // The reasons for the ad group criterion customizer error. + AdGroupCriterionCustomizerErrorEnum.AdGroupCriterionCustomizerError ad_group_criterion_customizer_error = 161; + + // Indicates failure to properly authenticate user. + AdGroupCriterionErrorEnum.AdGroupCriterionError ad_group_criterion_error = 18; + + // The reasons for the ad group customizer error. + AdGroupCustomizerErrorEnum.AdGroupCustomizerError ad_group_customizer_error = 159; + + // The reasons for the ad customizer error + AdCustomizerErrorEnum.AdCustomizerError ad_customizer_error = 19; + + // The reasons for the ad group ad error + AdGroupAdErrorEnum.AdGroupAdError ad_group_ad_error = 21; + + // The reasons for the ad sharing error + AdSharingErrorEnum.AdSharingError ad_sharing_error = 24; + + // The reasons for the adx error + AdxErrorEnum.AdxError adx_error = 25; + + // The reasons for the asset error + AssetErrorEnum.AssetError asset_error = 107; + + // The reasons for the asset group asset error + AssetGroupAssetErrorEnum.AssetGroupAssetError asset_group_asset_error = 149; + + // The reasons for the asset group listing group filter error + AssetGroupListingGroupFilterErrorEnum.AssetGroupListingGroupFilterError asset_group_listing_group_filter_error = 155; + + // The reasons for the asset group error + AssetGroupErrorEnum.AssetGroupError asset_group_error = 148; + + // The reasons for the asset set asset error + AssetSetAssetErrorEnum.AssetSetAssetError asset_set_asset_error = 153; + + // The reasons for the asset set link error + AssetSetLinkErrorEnum.AssetSetLinkError asset_set_link_error = 154; + + // The reasons for the asset set error + AssetSetErrorEnum.AssetSetError asset_set_error = 152; + + // The reasons for the bidding errors + BiddingErrorEnum.BiddingError bidding_error = 26; + + // The reasons for the campaign criterion error + CampaignCriterionErrorEnum.CampaignCriterionError campaign_criterion_error = 29; + + // The reasons for the campaign conversion goal error + CampaignConversionGoalErrorEnum.CampaignConversionGoalError campaign_conversion_goal_error = 166; + + // The reasons for the campaign customizer error. + CampaignCustomizerErrorEnum.CampaignCustomizerError campaign_customizer_error = 160; + + // The reasons for the collection size error + CollectionSizeErrorEnum.CollectionSizeError collection_size_error = 31; + + // The reasons for the conversion goal campaign config error + ConversionGoalCampaignConfigErrorEnum.ConversionGoalCampaignConfigError conversion_goal_campaign_config_error = 165; + + // The reasons for the country code error + CountryCodeErrorEnum.CountryCodeError country_code_error = 109; + + // The reasons for the criterion error + CriterionErrorEnum.CriterionError criterion_error = 32; + + // The reasons for the custom conversion goal error + CustomConversionGoalErrorEnum.CustomConversionGoalError custom_conversion_goal_error = 150; + + // The reasons for the customer customizer error. + CustomerCustomizerErrorEnum.CustomerCustomizerError customer_customizer_error = 158; + + // The reasons for the customer error + CustomerErrorEnum.CustomerError customer_error = 90; + + // The reasons for the customizer attribute error. + CustomizerAttributeErrorEnum.CustomizerAttributeError customizer_attribute_error = 151; + + // 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 feed attribute reference error + FeedAttributeReferenceErrorEnum.FeedAttributeReferenceError feed_attribute_reference_error = 36; + + // The reasons for the function error + FunctionErrorEnum.FunctionError function_error = 37; + + // The reasons for the function parsing error + FunctionParsingErrorEnum.FunctionParsingError function_parsing_error = 38; + + // The reasons for the id error + IdErrorEnum.IdError id_error = 39; + + // The reasons for the image error + ImageErrorEnum.ImageError image_error = 40; + + // The reasons for the language code error + LanguageCodeErrorEnum.LanguageCodeError language_code_error = 110; + + // The reasons for the media bundle error + MediaBundleErrorEnum.MediaBundleError media_bundle_error = 42; + + // The reasons for media uploading errors. + MediaUploadErrorEnum.MediaUploadError media_upload_error = 116; + + // The reasons for the media file error + MediaFileErrorEnum.MediaFileError media_file_error = 86; + + // Container for enum describing possible merchant center errors. + MerchantCenterErrorEnum.MerchantCenterError merchant_center_error = 162; + + // The reasons for the multiplier error + MultiplierErrorEnum.MultiplierError multiplier_error = 44; + + // The reasons for the new resource creation error + NewResourceCreationErrorEnum.NewResourceCreationError new_resource_creation_error = 45; + + // The reasons for the not empty error + NotEmptyErrorEnum.NotEmptyError not_empty_error = 46; + + // The reasons for the null error + NullErrorEnum.NullError null_error = 47; + + // The reasons for the operator error + OperatorErrorEnum.OperatorError operator_error = 48; + + // The reasons for the range error + RangeErrorEnum.RangeError range_error = 49; + + // The reasons for error in applying a recommendation + RecommendationErrorEnum.RecommendationError recommendation_error = 58; + + // The reasons for the region code error + RegionCodeErrorEnum.RegionCodeError region_code_error = 51; + + // The reasons for the setting error + SettingErrorEnum.SettingError setting_error = 52; + + // The reasons for the string format error + StringFormatErrorEnum.StringFormatError string_format_error = 53; + + // The reasons for the string length error + StringLengthErrorEnum.StringLengthError string_length_error = 54; + + // The reasons for the operation access denied error + OperationAccessDeniedErrorEnum.OperationAccessDeniedError operation_access_denied_error = 55; + + // The reasons for the resource access denied error + ResourceAccessDeniedErrorEnum.ResourceAccessDeniedError resource_access_denied_error = 56; + + // The reasons for the resource count limit exceeded error + ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededError resource_count_limit_exceeded_error = 57; + + // The reasons for YouTube video registration errors. + YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationError youtube_video_registration_error = 117; + + // The reasons for the ad group bid modifier error + AdGroupBidModifierErrorEnum.AdGroupBidModifierError ad_group_bid_modifier_error = 59; + + // The reasons for the context error + ContextErrorEnum.ContextError context_error = 60; + + // The reasons for the field error + FieldErrorEnum.FieldError field_error = 61; + + // The reasons for the shared set error + SharedSetErrorEnum.SharedSetError shared_set_error = 62; + + // The reasons for the shared criterion error + SharedCriterionErrorEnum.SharedCriterionError shared_criterion_error = 63; + + // The reasons for the campaign shared set error + CampaignSharedSetErrorEnum.CampaignSharedSetError campaign_shared_set_error = 64; + + // The reasons for the conversion action error + ConversionActionErrorEnum.ConversionActionError conversion_action_error = 65; + + // The reasons for the conversion adjustment upload error + ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError conversion_adjustment_upload_error = 115; + + // The reasons for the conversion custom variable error + ConversionCustomVariableErrorEnum.ConversionCustomVariableError conversion_custom_variable_error = 143; + + // The reasons for the conversion upload error + ConversionUploadErrorEnum.ConversionUploadError conversion_upload_error = 111; + + // The reasons for the conversion value rule error + ConversionValueRuleErrorEnum.ConversionValueRuleError conversion_value_rule_error = 145; + + // The reasons for the conversion value rule set error + ConversionValueRuleSetErrorEnum.ConversionValueRuleSetError conversion_value_rule_set_error = 146; + + // The reasons for the header error. + HeaderErrorEnum.HeaderError header_error = 66; + + // The reasons for the database error. + DatabaseErrorEnum.DatabaseError database_error = 67; + + // The reasons for the policy finding error. + PolicyFindingErrorEnum.PolicyFindingError policy_finding_error = 68; + + // The reason for enum error. + EnumErrorEnum.EnumError enum_error = 70; + + // The reason for keyword plan error. + KeywordPlanErrorEnum.KeywordPlanError keyword_plan_error = 71; + + // The reason for keyword plan campaign error. + KeywordPlanCampaignErrorEnum.KeywordPlanCampaignError keyword_plan_campaign_error = 72; + + // The reason for keyword plan campaign keyword error. + KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordError keyword_plan_campaign_keyword_error = 132; + + // The reason for keyword plan ad group error. + KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupError keyword_plan_ad_group_error = 74; + + // The reason for keyword plan ad group keyword error. + KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordError keyword_plan_ad_group_keyword_error = 133; + + // The reason for keyword idea error. + KeywordPlanIdeaErrorEnum.KeywordPlanIdeaError keyword_plan_idea_error = 76; + + // The reasons for account budget proposal errors. + AccountBudgetProposalErrorEnum.AccountBudgetProposalError account_budget_proposal_error = 77; + + // The reasons for the user list error + UserListErrorEnum.UserListError user_list_error = 78; + + // The reasons for the change event error + ChangeEventErrorEnum.ChangeEventError change_event_error = 136; + + // The reasons for the change status error + ChangeStatusErrorEnum.ChangeStatusError change_status_error = 79; + + // The reasons for the feed error + FeedErrorEnum.FeedError feed_error = 80; + + // The reasons for the geo target constant suggestion error. + GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionError geo_target_constant_suggestion_error = 81; + + // The reasons for the campaign draft error + CampaignDraftErrorEnum.CampaignDraftError campaign_draft_error = 82; + + // The reasons for the feed item error + FeedItemErrorEnum.FeedItemError feed_item_error = 83; + + // The reason for the label error. + LabelErrorEnum.LabelError label_error = 84; + + // The reasons for the billing setup error + BillingSetupErrorEnum.BillingSetupError billing_setup_error = 87; + + // The reasons for the customer client link error + CustomerClientLinkErrorEnum.CustomerClientLinkError customer_client_link_error = 88; + + // The reasons for the customer manager link error + CustomerManagerLinkErrorEnum.CustomerManagerLinkError customer_manager_link_error = 91; + + // The reasons for the feed mapping error + FeedMappingErrorEnum.FeedMappingError feed_mapping_error = 92; + + // The reasons for the customer feed error + CustomerFeedErrorEnum.CustomerFeedError customer_feed_error = 93; + + // The reasons for the ad group feed error + AdGroupFeedErrorEnum.AdGroupFeedError ad_group_feed_error = 94; + + // The reasons for the campaign feed error + CampaignFeedErrorEnum.CampaignFeedError campaign_feed_error = 96; + + // The reasons for the custom interest error + CustomInterestErrorEnum.CustomInterestError custom_interest_error = 97; + + // The reasons for the campaign experiment error + CampaignExperimentErrorEnum.CampaignExperimentError campaign_experiment_error = 98; + + // The reasons for the extension feed item error + ExtensionFeedItemErrorEnum.ExtensionFeedItemError extension_feed_item_error = 100; + + // The reasons for the ad parameter error + AdParameterErrorEnum.AdParameterError ad_parameter_error = 101; + + // The reasons for the feed item validation error + FeedItemValidationErrorEnum.FeedItemValidationError feed_item_validation_error = 102; + + // The reasons for the extension setting error + ExtensionSettingErrorEnum.ExtensionSettingError extension_setting_error = 103; + + // The reasons for the feed item set error + FeedItemSetErrorEnum.FeedItemSetError feed_item_set_error = 140; + + // The reasons for the feed item set link error + FeedItemSetLinkErrorEnum.FeedItemSetLinkError feed_item_set_link_error = 141; + + // The reasons for the feed item target error + FeedItemTargetErrorEnum.FeedItemTargetError feed_item_target_error = 104; + + // The reasons for the policy violation error + PolicyViolationErrorEnum.PolicyViolationError policy_violation_error = 105; + + // The reasons for the mutate job error + PartialFailureErrorEnum.PartialFailureError partial_failure_error = 112; + + // The reasons for the policy validation parameter error + PolicyValidationParameterErrorEnum.PolicyValidationParameterError policy_validation_parameter_error = 114; + + // The reasons for the size limit error + SizeLimitErrorEnum.SizeLimitError size_limit_error = 118; + + // The reasons for the offline user data job error. + OfflineUserDataJobErrorEnum.OfflineUserDataJobError offline_user_data_job_error = 119; + + // The reasons for the not allowlisted error + NotAllowlistedErrorEnum.NotAllowlistedError not_allowlisted_error = 137; + + // The reasons for the manager link error + ManagerLinkErrorEnum.ManagerLinkError manager_link_error = 121; + + // The reasons for the currency code error + CurrencyCodeErrorEnum.CurrencyCodeError currency_code_error = 122; + + // The reasons for the experiment error + ExperimentErrorEnum.ExperimentError experiment_error = 123; + + // The reasons for the access invitation error + AccessInvitationErrorEnum.AccessInvitationError access_invitation_error = 124; + + // The reasons for the reach plan error + ReachPlanErrorEnum.ReachPlanError reach_plan_error = 125; + + // The reasons for the invoice error + InvoiceErrorEnum.InvoiceError invoice_error = 126; + + // The reasons for errors in payments accounts service + PaymentsAccountErrorEnum.PaymentsAccountError payments_account_error = 127; + + // The reasons for the time zone error + TimeZoneErrorEnum.TimeZoneError time_zone_error = 128; + + // The reasons for the asset link error + AssetLinkErrorEnum.AssetLinkError asset_link_error = 129; + + // The reasons for the user data error. + UserDataErrorEnum.UserDataError user_data_error = 130; + + // The reasons for the batch job error + BatchJobErrorEnum.BatchJobError batch_job_error = 131; + + // The reasons for the account link status change error + AccountLinkErrorEnum.AccountLinkError account_link_error = 134; + + // The reasons for the third party app analytics link mutate error + ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkError third_party_app_analytics_link_error = 135; + + // The reasons for the customer user access mutate error + CustomerUserAccessErrorEnum.CustomerUserAccessError customer_user_access_error = 138; + + // The reasons for the custom audience error + CustomAudienceErrorEnum.CustomAudienceError custom_audience_error = 139; + + // The reasons for the audience error + AudienceErrorEnum.AudienceError audience_error = 164; + + // The reasons for the experiment arm error + ExperimentArmErrorEnum.ExperimentArmError experiment_arm_error = 156; + + // The reasons for the Audience Insights error + AudienceInsightsErrorEnum.AudienceInsightsError audience_insights_error = 167; + } +} + +// 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; + + // Describes an ad policy violation. + PolicyViolationDetails policy_violation_details = 2; + + // Describes policy violation findings. + PolicyFindingDetails policy_finding_details = 3; + + // Details on the quota error, including the scope (account or developer), the + // rate bucket name and the retry delay. + QuotaErrorDetails quota_error_details = 4; + + // Details for a resource count limit exceeded error. + ResourceCountDetails resource_count_details = 5; +} + +// Error returned as part of a mutate response. +// This error indicates single policy violation by some text +// in one of the fields. +message PolicyViolationDetails { + // Human readable description of policy violation. + string external_policy_description = 2; + + // Unique identifier for this violation. + // If policy is exemptible, this key may be used to request exemption. + google.ads.googleads.v11.common.PolicyViolationKey key = 4; + + // Human readable name of the policy. + string external_policy_name = 5; + + // Whether user can file an exemption request for this violation. + bool is_exemptible = 6; +} + +// Error returned as part of a mutate response. +// This error indicates one or more policy findings in the fields of a +// resource. +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.v11.common.PolicyTopicEntry policy_topic_entries = 1; +} + +// 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 or DevToken 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; +} + +// Error details returned when an resource count limit was exceeded. +message ResourceCountDetails { + // The ID of the resource whose limit was exceeded. + // External customer ID if the limit is for a customer. + string enclosing_id = 1; + + // The name of the resource (Customer, Campaign etc.) whose limit was + // exceeded. + string enclosing_resource = 5; + + // The limit which was exceeded. + int32 limit = 2; + + // The resource limit type which was exceeded. + google.ads.googleads.v11.enums.ResourceLimitTypeEnum.ResourceLimitType limit_type = 3; + + // The count of existing entities. + int32 existing_count = 4; +} diff --git a/google/ads/googleads/v11/errors/experiment_arm_error.proto b/google/ads/googleads/v11/errors/experiment_arm_error.proto new file mode 100644 index 000000000..f8b151232 --- /dev/null +++ b/google/ads/googleads/v11/errors/experiment_arm_error.proto @@ -0,0 +1,86 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentArmErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing experiment arm errors. + +// Container for enum describing possible experiment arm error. +message ExperimentArmErrorEnum { + // Enum describing possible experiment arm errors. + enum ExperimentArmError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Number of experiment arms is above limit. + EXPERIMENT_ARM_COUNT_LIMIT_EXCEEDED = 2; + + // Cannot add campaign with invalid status to the experiment arm. + INVALID_CAMPAIGN_STATUS = 3; + + // Cannot add duplicate experiment arm name in one experiment. + DUPLICATE_EXPERIMENT_ARM_NAME = 4; + + // Cannot set campaigns of treatment experiment arm. + CANNOT_SET_TREATMENT_ARM_CAMPAIGN = 5; + + // Cannot edit campaign ids in trial arms in non SETUP experiment. + CANNOT_MODIFY_CAMPAIGN_IDS = 6; + + // Cannot modify the campaigns in the control arm + // if there is not a suffix set in the trial. + CANNOT_MODIFY_CAMPAIGN_WITHOUT_SUFFIX_SET = 7; + + // Traffic split related settings (like traffic share bounds) can't be + // modified after the trial has started. + CANNOT_MUTATE_TRAFFIC_SPLIT_AFTER_START = 8; + + // Cannot use shared budget on experiment's control campaign. + CANNOT_ADD_CAMPAIGN_WITH_SHARED_BUDGET = 9; + + // Cannot use custom budget on experiment's control campaigns. + CANNOT_ADD_CAMPAIGN_WITH_CUSTOM_BUDGET = 10; + + // Cannot have enable_dynamic_assets turned on in experiment's campaigns. + CANNOT_ADD_CAMPAIGNS_WITH_DYNAMIC_ASSETS_ENABLED = 11; + + // Cannot use campaign's advertising channel sub type in experiment. + UNSUPPORTED_CAMPAIGN_ADVERTISING_CHANNEL_SUB_TYPE = 12; + + // Experiment date range must be within base campaign's date range. + CANNOT_ADD_BASE_CAMPAIGN_WITH_DATE_RANGE = 13; + + // Bidding strategy is not supported in experiments. + BIDDING_STRATEGY_NOT_SUPPORTED_IN_EXPERIMENTS = 14; + + // Traffic split is not supported for some channel types. + TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE = 15; + } + + +} diff --git a/google/ads/googleads/v11/errors/experiment_error.proto b/google/ads/googleads/v11/errors/experiment_error.proto new file mode 100644 index 000000000..6a4f7ed1c --- /dev/null +++ b/google/ads/googleads/v11/errors/experiment_error.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing experiment errors. + +// Container for enum describing possible experiment error. +message ExperimentErrorEnum { + // Enum describing possible experiment errors. + enum ExperimentError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The start date of an experiment cannot be set in the past. + // Use a start date in the future. + CANNOT_SET_START_DATE_IN_PAST = 2; + + // The end date of an experiment is before its start date. + // Use an end date after the start date. + END_DATE_BEFORE_START_DATE = 3; + + // The start date of an experiment is too far in the future. + // Use a start date no more than 1 year in the future. + START_DATE_TOO_FAR_IN_FUTURE = 4; + + // The experiment has the same name as an existing active experiment. + DUPLICATE_EXPERIMENT_NAME = 5; + + // Experiments can only be modified when they are ENABLED. + CANNOT_MODIFY_REMOVED_EXPERIMENT = 6; + + // The start date of an experiment cannot be modified if the existing start + // date has already passed. + START_DATE_ALREADY_PASSED = 7; + + // The end date of an experiment cannot be set in the past. + CANNOT_SET_END_DATE_IN_PAST = 8; + + // The status of an experiment cannot be set to REMOVED. + CANNOT_SET_STATUS_TO_REMOVED = 9; + + // The end date of an expired experiment cannot be modified. + CANNOT_MODIFY_PAST_END_DATE = 10; + + // The status is invalid. + INVALID_STATUS = 11; + + // Experiment arm contains campaigns with invalid advertising channel type. + INVALID_CAMPAIGN_CHANNEL_TYPE = 12; + + // A pair of trials share members and have overlapping date ranges. + OVERLAPPING_MEMBERS_AND_DATE_RANGE = 13; + + // Experiment arm contains invalid traffic split. + INVALID_TRIAL_ARM_TRAFFIC_SPLIT = 14; + + // Experiment contains trial arms with overlapping traffic split. + TRAFFIC_SPLIT_OVERLAPPING = 15; + + // The total traffic split of trial arms is not equal to 100. + SUM_TRIAL_ARM_TRAFFIC_UNEQUALS_TO_TRIAL_TRAFFIC_SPLIT_DENOMINATOR = 16; + + // Traffic split related settings (like traffic share bounds) can't be + // modified after the experiment has started. + CANNOT_MODIFY_TRAFFIC_SPLIT_AFTER_START = 17; + + // The experiment could not be found. + EXPERIMENT_NOT_FOUND = 18; + + // Experiment has not begun. + EXPERIMENT_NOT_YET_STARTED = 19; + + // The experiment cannot have more than one control arm. + CANNOT_HAVE_MULTIPLE_CONTROL_ARMS = 20; + + // The experiment doesn't set in-design campaigns. + IN_DESIGN_CAMPAIGNS_NOT_SET = 21; + + // Clients must use the graduate action to graduate experiments and cannot + // set the status to GRADUATED directly. + CANNOT_SET_STATUS_TO_GRADUATED = 22; + + // Cannot use shared budget on base campaign when scheduling an experiment. + CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_SHARED_BUDGET = 23; + + // Cannot use custom budget on base campaign when scheduling an experiment. + CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_CUSTOM_BUDGET = 24; + + // Invalid status transition. + STATUS_TRANSITION_INVALID = 25; + } + + +} diff --git a/google/ads/googleads/v11/errors/extension_feed_item_error.proto b/google/ads/googleads/v11/errors/extension_feed_item_error.proto new file mode 100644 index 000000000..ca46655eb --- /dev/null +++ b/google/ads/googleads/v11/errors/extension_feed_item_error.proto @@ -0,0 +1,193 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionFeedItemErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing extension feed item errors. + +// Container for enum describing possible extension feed item error. +message ExtensionFeedItemErrorEnum { + // Enum describing possible extension feed item errors. + enum ExtensionFeedItemError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Value is not within the accepted range. + VALUE_OUT_OF_RANGE = 2; + + // Url list is too long. + URL_LIST_TOO_LONG = 3; + + // Cannot have a geo targeting restriction without having geo targeting. + CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING = 4; + + // Cannot simultaneously set sitelink field with final urls. + CANNOT_SET_WITH_FINAL_URLS = 5; + + // Must set field with final urls. + CANNOT_SET_WITHOUT_FINAL_URLS = 6; + + // Phone number for a call extension is invalid. + INVALID_PHONE_NUMBER = 7; + + // Phone number for a call extension is not supported for the given country + // code. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 8; + + // A carrier specific number in short format is not allowed for call + // extensions. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 9; + + // Premium rate numbers are not allowed for call extensions. + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 10; + + // Phone number type for a call extension is not allowed. + // For example, personal number is not allowed for a call extension in + // most regions. + DISALLOWED_NUMBER_TYPE = 11; + + // Phone number for a call extension does not meet domestic format + // requirements. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 12; + + // Vanity phone numbers (for example, those including letters) are not + // allowed for call extensions. + VANITY_PHONE_NUMBER_NOT_ALLOWED = 13; + + // Call conversion action provided for a call extension is invalid. + INVALID_CALL_CONVERSION_ACTION = 14; + + // For a call extension, the customer is not on the allow-list for call + // tracking. + CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING = 47; + + // Call tracking is not supported for the given country for a call + // extension. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 16; + + // Customer hasn't consented for call recording, which is required for + // creating/updating call feed items. See + // https://support.google.com/google-ads/answer/7412639. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 17; + + // App id provided for an app extension is invalid. + INVALID_APP_ID = 18; + + // Quotation marks present in the review text for a review extension. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 19; + + // Hyphen character present in the review text for a review extension. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 20; + + // A denylisted review source name or url was provided for a review + // extension. + REVIEW_EXTENSION_SOURCE_INELIGIBLE = 21; + + // Review source name should not be found in the review text. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 22; + + // Inconsistent currency codes. + INCONSISTENT_CURRENCY_CODES = 23; + + // Price extension cannot have duplicated headers. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 24; + + // Price item cannot have duplicated header and description. + PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 25; + + // Price extension has too few items. + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 26; + + // Price extension has too many items. + PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 27; + + // The input value is not currently supported. + UNSUPPORTED_VALUE = 28; + + // The input value is not currently supported in the selected language of an + // extension. + UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 29; + + // Unknown or unsupported device preference. + INVALID_DEVICE_PREFERENCE = 30; + + // Invalid feed item schedule end time (for example, endHour = 24 and + // endMinute != 0). + INVALID_SCHEDULE_END = 31; + + // Date time zone does not match the account's time zone. + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 32; + + // Invalid structured snippet header. + INVALID_SNIPPETS_HEADER = 33; + + // Cannot operate on removed feed item. + CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 34; + + // Phone number not supported when call tracking enabled for country. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 35; + + // Cannot set call_conversion_action while call_conversion_tracking_enabled + // is set to true. + CONFLICTING_CALL_CONVERSION_SETTINGS = 36; + + // The type of the input extension feed item doesn't match the existing + // extension feed item. + EXTENSION_TYPE_MISMATCH = 37; + + // The oneof field extension for example, subtype of extension feed item is + // required. + EXTENSION_SUBTYPE_REQUIRED = 38; + + // The referenced feed item is not mapped to a supported extension type. + EXTENSION_TYPE_UNSUPPORTED = 39; + + // Cannot operate on a Feed with more than one active FeedMapping. + CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS = 40; + + // Cannot operate on a Feed that has key attributes. + CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES = 41; + + // Input price is not in a valid format. + INVALID_PRICE_FORMAT = 42; + + // The promotion time is invalid. + PROMOTION_INVALID_TIME = 43; + + // This field has too many decimal places specified. + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 44; + + // Concrete sub type of ExtensionFeedItem is required for this operation. + CONCRETE_EXTENSION_TYPE_REQUIRED = 45; + + // Feed item schedule end time must be after start time. + SCHEDULE_END_NOT_AFTER_START = 46; + } + + +} diff --git a/google/ads/googleads/v11/errors/extension_setting_error.proto b/google/ads/googleads/v11/errors/extension_setting_error.proto new file mode 100644 index 000000000..25890d8a4 --- /dev/null +++ b/google/ads/googleads/v11/errors/extension_setting_error.proto @@ -0,0 +1,259 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionSettingErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing extension setting validation errors. + +// Container for enum describing validation errors of extension settings. +message ExtensionSettingErrorEnum { + // Enum describing possible extension setting errors. + enum ExtensionSettingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A platform restriction was provided without input extensions or existing + // extensions. + EXTENSIONS_REQUIRED = 2; + + // The provided feed type does not correspond to the provided extensions. + FEED_TYPE_EXTENSION_TYPE_MISMATCH = 3; + + // The provided feed type cannot be used. + INVALID_FEED_TYPE = 4; + + // The provided feed type cannot be used at the customer level. + INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING = 5; + + // Cannot change a feed item field on a CREATE operation. + CANNOT_CHANGE_FEED_ITEM_ON_CREATE = 6; + + // Cannot update an extension that is not already in this setting. + CANNOT_UPDATE_NEWLY_CREATED_EXTENSION = 7; + + // There is no existing AdGroupExtensionSetting for this type. + NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE = 8; + + // There is no existing CampaignExtensionSetting for this type. + NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE = 9; + + // There is no existing CustomerExtensionSetting for this type. + NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE = 10; + + // The AdGroupExtensionSetting already exists. UPDATE should be used to + // modify the existing AdGroupExtensionSetting. + AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS = 11; + + // The CampaignExtensionSetting already exists. UPDATE should be used to + // modify the existing CampaignExtensionSetting. + CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS = 12; + + // The CustomerExtensionSetting already exists. UPDATE should be used to + // modify the existing CustomerExtensionSetting. + CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS = 13; + + // An active ad group feed already exists for this place holder type. + AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 14; + + // An active campaign feed already exists for this place holder type. + CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 15; + + // An active customer feed already exists for this place holder type. + CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 16; + + // Value is not within the accepted range. + VALUE_OUT_OF_RANGE = 17; + + // Cannot simultaneously set specified field with final urls. + CANNOT_SET_FIELD_WITH_FINAL_URLS = 18; + + // Must set field with final urls. + FINAL_URLS_NOT_SET = 19; + + // Phone number for a call extension is invalid. + INVALID_PHONE_NUMBER = 20; + + // Phone number for a call extension is not supported for the given country + // code. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 21; + + // A carrier specific number in short format is not allowed for call + // extensions. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 22; + + // Premium rate numbers are not allowed for call extensions. + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 23; + + // Phone number type for a call extension is not allowed. + DISALLOWED_NUMBER_TYPE = 24; + + // Phone number for a call extension does not meet domestic format + // requirements. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 25; + + // Vanity phone numbers (for example, those including letters) are not + // allowed for call extensions. + VANITY_PHONE_NUMBER_NOT_ALLOWED = 26; + + // Country code provided for a call extension is invalid. + INVALID_COUNTRY_CODE = 27; + + // Call conversion type id provided for a call extension is invalid. + INVALID_CALL_CONVERSION_TYPE_ID = 28; + + // For a call extension, the customer is not on the allow-list for call + // tracking. + CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 69; + + // Call tracking is not supported for the given country for a call + // extension. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 30; + + // App id provided for an app extension is invalid. + INVALID_APP_ID = 31; + + // Quotation marks present in the review text for a review extension. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 32; + + // Hyphen character present in the review text for a review extension. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 33; + + // A blocked review source name or url was provided for a review + // extension. + REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE = 34; + + // Review source name should not be found in the review text. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 35; + + // Field must be set. + MISSING_FIELD = 36; + + // Inconsistent currency codes. + INCONSISTENT_CURRENCY_CODES = 37; + + // Price extension cannot have duplicated headers. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 38; + + // Price item cannot have duplicated header and description. + PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 39; + + // Price extension has too few items + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 40; + + // Price extension has too many items + PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 41; + + // The input value is not currently supported. + UNSUPPORTED_VALUE = 42; + + // Unknown or unsupported device preference. + INVALID_DEVICE_PREFERENCE = 43; + + // Invalid feed item schedule end time (for example, endHour = 24 and + // endMinute != 0). + INVALID_SCHEDULE_END = 45; + + // Date time zone does not match the account's time zone. + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 47; + + // Overlapping feed item schedule times (for example, 7-10AM and 8-11AM) are + // not allowed. + OVERLAPPING_SCHEDULES_NOT_ALLOWED = 48; + + // Feed item schedule end time must be after start time. + SCHEDULE_END_NOT_AFTER_START = 49; + + // There are too many feed item schedules per day. + TOO_MANY_SCHEDULES_PER_DAY = 50; + + // Cannot edit the same extension feed item more than once in the same + // request. + DUPLICATE_EXTENSION_FEED_ITEM_EDIT = 51; + + // Invalid structured snippet header. + INVALID_SNIPPETS_HEADER = 52; + + // Phone number with call tracking enabled is not supported for the + // specified country. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 53; + + // The targeted adgroup must belong to the targeted campaign. + CAMPAIGN_TARGETING_MISMATCH = 54; + + // The feed used by the ExtensionSetting is removed and cannot be operated + // on. Remove the ExtensionSetting to allow a new one to be created using + // an active feed. + CANNOT_OPERATE_ON_REMOVED_FEED = 55; + + // The ExtensionFeedItem type is required for this operation. + EXTENSION_TYPE_REQUIRED = 56; + + // The matching function that links the extension feed to the customer, + // campaign, or ad group is not compatible with the ExtensionSetting + // services. + INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION = 57; + + // Start date must be before end date. + START_DATE_AFTER_END_DATE = 58; + + // Input price is not in a valid format. + INVALID_PRICE_FORMAT = 59; + + // The promotion time is invalid. + PROMOTION_INVALID_TIME = 60; + + // Cannot set both percent discount and money discount fields. + PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT = 61; + + // Cannot set both promotion code and orders over amount fields. + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 62; + + // This field has too many decimal places specified. + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 63; + + // The language code is not valid. + INVALID_LANGUAGE_CODE = 64; + + // The language is not supported. + UNSUPPORTED_LANGUAGE = 65; + + // Customer hasn't consented for call recording, which is required for + // adding/updating call extensions. See + // https://support.google.com/google-ads/answer/7412639. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 66; + + // The UPDATE operation does not specify any fields other than the resource + // name in the update mask. + EXTENSION_SETTING_UPDATE_IS_A_NOOP = 67; + + // The extension contains text which has been prohibited on policy grounds. + DISALLOWED_TEXT = 68; + } + + +} diff --git a/google/ads/googleads/v11/errors/feed_attribute_reference_error.proto b/google/ads/googleads/v11/errors/feed_attribute_reference_error.proto new file mode 100644 index 000000000..7e80ba9c1 --- /dev/null +++ b/google/ads/googleads/v11/errors/feed_attribute_reference_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedAttributeReferenceErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing feed attribute reference errors. + +// Container for enum describing possible feed attribute reference errors. +message FeedAttributeReferenceErrorEnum { + // Enum describing possible feed attribute reference errors. + enum FeedAttributeReferenceError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A feed referenced by ID has been removed. + CANNOT_REFERENCE_REMOVED_FEED = 2; + + // There is no enabled feed with the given name. + INVALID_FEED_NAME = 3; + + // There is no feed attribute in an enabled feed with the given name. + INVALID_FEED_ATTRIBUTE_NAME = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/feed_error.proto b/google/ads/googleads/v11/errors/feed_error.proto new file mode 100644 index 000000000..5ef250e4a --- /dev/null +++ b/google/ads/googleads/v11/errors/feed_error.proto @@ -0,0 +1,112 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing feed errors. + +// Container for enum describing possible feed errors. +message FeedErrorEnum { + // Enum describing possible feed errors. + enum FeedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The names of the FeedAttributes must be unique. + ATTRIBUTE_NAMES_NOT_UNIQUE = 2; + + // The attribute list must be an exact copy of the existing list if the + // attribute ID's are present. + ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES = 3; + + // Cannot specify USER origin for a system generated feed. + CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED = 4; + + // Cannot specify GOOGLE origin for a non-system generated feed. + CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED = 5; + + // Cannot specify feed attributes for system feed. + CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED = 6; + + // Cannot update FeedAttributes on feed with origin GOOGLE. + CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE = 7; + + // The given ID refers to a removed Feed. Removed Feeds are immutable. + FEED_REMOVED = 8; + + // The origin of the feed is not valid for the client. + INVALID_ORIGIN_VALUE = 9; + + // A user can only create and modify feeds with USER origin. + FEED_ORIGIN_IS_NOT_USER = 10; + + // Invalid auth token for the given email. + INVALID_AUTH_TOKEN_FOR_EMAIL = 11; + + // Invalid email specified. + INVALID_EMAIL = 12; + + // Feed name matches that of another active Feed. + DUPLICATE_FEED_NAME = 13; + + // Name of feed is not allowed. + INVALID_FEED_NAME = 14; + + // Missing OAuthInfo. + MISSING_OAUTH_INFO = 15; + + // New FeedAttributes must not affect the unique key. + NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY = 16; + + // Too many FeedAttributes for a Feed. + TOO_MANY_ATTRIBUTES = 17; + + // The business account is not valid. + INVALID_BUSINESS_ACCOUNT = 18; + + // Business account cannot access Business Profile. + BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT = 19; + + // Invalid chain ID provided for affiliate location feed. + INVALID_AFFILIATE_CHAIN_ID = 20; + + // There is already a feed with the given system feed generation data. + DUPLICATE_SYSTEM_FEED = 21; + + // An error occurred accessing Business Profile. + GMB_ACCESS_ERROR = 22; + + // A customer cannot have both LOCATION and AFFILIATE_LOCATION feeds. + CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS = 23; + + // Feed-based extension is read-only for this extension type. + LEGACY_EXTENSION_TYPE_READ_ONLY = 24; + } + + +} diff --git a/google/ads/googleads/v11/errors/feed_item_error.proto b/google/ads/googleads/v11/errors/feed_item_error.proto new file mode 100644 index 000000000..d97fd32aa --- /dev/null +++ b/google/ads/googleads/v11/errors/feed_item_error.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing feed item errors. + +// Container for enum describing possible feed item errors. +message FeedItemErrorEnum { + // Enum describing possible feed item errors. + enum FeedItemError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot convert the feed attribute value from string to its real type. + CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING = 2; + + // Cannot operate on removed feed item. + CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 3; + + // Date time zone does not match the account's time zone. + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 4; + + // Feed item with the key attributes could not be found. + KEY_ATTRIBUTES_NOT_FOUND = 5; + + // Url feed attribute value is not valid. + INVALID_URL = 6; + + // Some key attributes are missing. + MISSING_KEY_ATTRIBUTES = 7; + + // Feed item has same key attributes as another feed item. + KEY_ATTRIBUTES_NOT_UNIQUE = 8; + + // Cannot modify key attributes on an existing feed item. + CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE = 9; + + // The feed attribute value is too large. + SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE = 10; + } + + +} diff --git a/google/ads/googleads/v11/errors/feed_item_set_error.proto b/google/ads/googleads/v11/errors/feed_item_set_error.proto new file mode 100644 index 000000000..90e7ab817 --- /dev/null +++ b/google/ads/googleads/v11/errors/feed_item_set_error.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing feed item set errors. + +// Container for enum describing possible feed item set errors. +message FeedItemSetErrorEnum { + // Enum describing possible feed item set errors. + enum FeedItemSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The given ID refers to a removed FeedItemSet. + FEED_ITEM_SET_REMOVED = 2; + + // The dynamic filter of a feed item set cannot be cleared on UPDATE if it + // exists. A set is either static or dynamic once added, and that cannot + // change. + CANNOT_CLEAR_DYNAMIC_FILTER = 3; + + // The dynamic filter of a feed item set cannot be created on UPDATE if it + // does not exist. A set is either static or dynamic once added, and that + // cannot change. + CANNOT_CREATE_DYNAMIC_FILTER = 4; + + // FeedItemSets can only be made for location or affiliate location feeds. + INVALID_FEED_TYPE = 5; + + // FeedItemSets duplicate name. Name should be unique within an account. + DUPLICATE_NAME = 6; + + // The feed type of the parent Feed is not compatible with the type of + // dynamic filter being set. For example, you can only set + // dynamic_location_set_filter for LOCATION feed item sets. + WRONG_DYNAMIC_FILTER_FOR_FEED_TYPE = 7; + + // Chain ID specified for AffiliateLocationFeedData is invalid. + DYNAMIC_FILTER_INVALID_CHAIN_IDS = 8; + } + + +} diff --git a/google/ads/googleads/v11/errors/feed_item_set_link_error.proto b/google/ads/googleads/v11/errors/feed_item_set_link_error.proto new file mode 100644 index 000000000..efdcba8e1 --- /dev/null +++ b/google/ads/googleads/v11/errors/feed_item_set_link_error.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetLinkErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing feed item set link errors. + +// Container for enum describing possible feed item set link errors. +message FeedItemSetLinkErrorEnum { + // Enum describing possible feed item set link errors. + enum FeedItemSetLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The feed IDs of the FeedItemSet and FeedItem do not match. Only FeedItems + // in a given Feed can be linked to a FeedItemSet in that Feed. + FEED_ID_MISMATCH = 2; + + // Cannot add or remove links to a dynamic set. + NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/feed_item_target_error.proto b/google/ads/googleads/v11/errors/feed_item_target_error.proto new file mode 100644 index 000000000..226a1b83e --- /dev/null +++ b/google/ads/googleads/v11/errors/feed_item_target_error.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing feed item target errors. + +// Container for enum describing possible feed item target errors. +message FeedItemTargetErrorEnum { + // Enum describing possible feed item target errors. + enum FeedItemTargetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // On CREATE, the FeedItemTarget must have a populated field in the oneof + // target. + MUST_SET_TARGET_ONEOF_ON_CREATE = 2; + + // The specified feed item target already exists, so it cannot be added. + FEED_ITEM_TARGET_ALREADY_EXISTS = 3; + + // The schedules for a given feed item cannot overlap. + FEED_ITEM_SCHEDULES_CANNOT_OVERLAP = 4; + + // Too many targets of a given type were added for a single feed item. + TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE = 5; + + // Too many AdSchedules are enabled for the feed item for the given day. + TOO_MANY_SCHEDULES_PER_DAY = 6; + + // A feed item may either have an enabled campaign target or an enabled ad + // group target. + CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS = 7; + + // Duplicate ad schedules aren't allowed. + DUPLICATE_AD_SCHEDULE = 8; + + // Duplicate keywords aren't allowed. + DUPLICATE_KEYWORD = 9; + } + + +} diff --git a/google/ads/googleads/v11/errors/feed_item_validation_error.proto b/google/ads/googleads/v11/errors/feed_item_validation_error.proto new file mode 100644 index 000000000..921fd804c --- /dev/null +++ b/google/ads/googleads/v11/errors/feed_item_validation_error.proto @@ -0,0 +1,375 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemValidationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing feed item validation errors. + +// Container for enum describing possible validation errors of a feed item. +message FeedItemValidationErrorEnum { + // The possible validation errors of a feed item. + enum FeedItemValidationError { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // String is too short. + STRING_TOO_SHORT = 2; + + // String is too long. + STRING_TOO_LONG = 3; + + // Value is not provided. + VALUE_NOT_SPECIFIED = 4; + + // Phone number format is invalid for region. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 5; + + // String does not represent a phone number. + INVALID_PHONE_NUMBER = 6; + + // Phone number format is not compatible with country code. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 7; + + // Premium rate number is not allowed. + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 8; + + // Phone number type is not allowed. + DISALLOWED_NUMBER_TYPE = 9; + + // Specified value is outside of the valid range. + VALUE_OUT_OF_RANGE = 10; + + // Call tracking is not supported in the selected country. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 11; + + // Customer is not on the allow-list for call tracking. + CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 99; + + // Country code is invalid. + INVALID_COUNTRY_CODE = 13; + + // The specified mobile app id is invalid. + INVALID_APP_ID = 14; + + // Some required field attributes are missing. + MISSING_ATTRIBUTES_FOR_FIELDS = 15; + + // Invalid email button type for email extension. + INVALID_TYPE_ID = 16; + + // Email address is invalid. + INVALID_EMAIL_ADDRESS = 17; + + // The HTTPS URL in email extension is invalid. + INVALID_HTTPS_URL = 18; + + // Delivery address is missing from email extension. + MISSING_DELIVERY_ADDRESS = 19; + + // FeedItem scheduling start date comes after end date. + START_DATE_AFTER_END_DATE = 20; + + // FeedItem scheduling start time is missing. + MISSING_FEED_ITEM_START_TIME = 21; + + // FeedItem scheduling end time is missing. + MISSING_FEED_ITEM_END_TIME = 22; + + // Cannot compute system attributes on a FeedItem that has no FeedItemId. + MISSING_FEED_ITEM_ID = 23; + + // Call extension vanity phone numbers are not supported. + VANITY_PHONE_NUMBER_NOT_ALLOWED = 24; + + // Invalid review text. + INVALID_REVIEW_EXTENSION_SNIPPET = 25; + + // Invalid format for numeric value in ad parameter. + INVALID_NUMBER_FORMAT = 26; + + // Invalid format for date value in ad parameter. + INVALID_DATE_FORMAT = 27; + + // Invalid format for price value in ad parameter. + INVALID_PRICE_FORMAT = 28; + + // Unrecognized type given for value in ad parameter. + UNKNOWN_PLACEHOLDER_FIELD = 29; + + // Enhanced sitelinks must have both description lines specified. + MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE = 30; + + // Review source is ineligible. + REVIEW_EXTENSION_SOURCE_INELIGIBLE = 31; + + // Review text cannot contain hyphens or dashes. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 32; + + // Review text cannot contain double quote characters. + DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 33; + + // Review text cannot contain quote characters. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 34; + + // Parameters are encoded in the wrong format. + INVALID_FORM_ENCODED_PARAMS = 35; + + // URL parameter name must contain only letters, numbers, underscores, and + // dashes. + INVALID_URL_PARAMETER_NAME = 36; + + // Cannot find address location. + NO_GEOCODING_RESULT = 37; + + // Review extension text has source name. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 38; + + // Some phone numbers can be shorter than usual. Some of these short numbers + // are carrier-specific, and we disallow those in ad extensions because they + // will not be available to all users. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 39; + + // Triggered when a request references a placeholder field id that does not + // exist. + INVALID_PLACEHOLDER_FIELD_ID = 40; + + // URL contains invalid ValueTrack tags or format. + INVALID_URL_TAG = 41; + + // Provided list exceeds acceptable size. + LIST_TOO_LONG = 42; + + // Certain combinations of attributes aren't allowed to be specified in the + // same feed item. + INVALID_ATTRIBUTES_COMBINATION = 43; + + // An attribute has the same value repeatedly. + DUPLICATE_VALUES = 44; + + // Advertisers can link a conversion action with a phone number to indicate + // that sufficiently long calls forwarded to that phone number should be + // counted as conversions of the specified type. This is an error message + // indicating that the conversion action specified is invalid (for example, + // the conversion action does not exist within the appropriate Google Ads + // account, or it is a type of conversion not appropriate to phone call + // conversions). + INVALID_CALL_CONVERSION_ACTION_ID = 45; + + // Tracking template requires final url to be set. + CANNOT_SET_WITHOUT_FINAL_URLS = 46; + + // An app id was provided that doesn't exist in the given app store. + APP_ID_DOESNT_EXIST_IN_APP_STORE = 47; + + // Invalid U2 final url. + INVALID_FINAL_URL = 48; + + // Invalid U2 tracking url. + INVALID_TRACKING_URL = 49; + + // Final URL should start from App download URL. + INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL = 50; + + // List provided is too short. + LIST_TOO_SHORT = 51; + + // User Action field has invalid value. + INVALID_USER_ACTION = 52; + + // Type field has invalid value. + INVALID_TYPE_NAME = 53; + + // Change status for event is invalid. + INVALID_EVENT_CHANGE_STATUS = 54; + + // The header of a structured snippets extension is not one of the valid + // headers. + INVALID_SNIPPETS_HEADER = 55; + + // Android app link is not formatted correctly + INVALID_ANDROID_APP_LINK = 56; + + // Phone number incompatible with call tracking for country. + NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 57; + + // The input is identical to a reserved keyword + RESERVED_KEYWORD_OTHER = 58; + + // Each option label in the message extension must be unique. + DUPLICATE_OPTION_LABELS = 59; + + // Each option prefill in the message extension must be unique. + DUPLICATE_OPTION_PREFILLS = 60; + + // In message extensions, the number of optional labels and optional + // prefills must be the same. + UNEQUAL_LIST_LENGTHS = 61; + + // All currency codes in an ad extension must be the same. + INCONSISTENT_CURRENCY_CODES = 62; + + // Headers in price extension are not unique. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 63; + + // Header and description in an item are the same. + ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 64; + + // Price extension has too few items. + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 65; + + // The given value is not supported. + UNSUPPORTED_VALUE = 66; + + // Invalid final mobile url. + INVALID_FINAL_MOBILE_URL = 67; + + // The given string value of Label contains invalid characters + INVALID_KEYWORDLESS_AD_RULE_LABEL = 68; + + // The given URL contains value track parameters. + VALUE_TRACK_PARAMETER_NOT_SUPPORTED = 69; + + // The given value is not supported in the selected language of an + // extension. + UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 70; + + // The iOS app link is not formatted correctly. + INVALID_IOS_APP_LINK = 71; + + // iOS app link or iOS app store id is missing. + MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID = 72; + + // Promotion time is invalid. + PROMOTION_INVALID_TIME = 73; + + // Both the percent off and money amount off fields are set. + PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 74; + + // Both the promotion code and orders over amount fields are set. + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 75; + + // Too many decimal places are specified. + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 76; + + // Ad Customizers are present and not allowed. + AD_CUSTOMIZERS_NOT_ALLOWED = 77; + + // Language code is not valid. + INVALID_LANGUAGE_CODE = 78; + + // Language is not supported. + UNSUPPORTED_LANGUAGE = 79; + + // IF Function is present and not allowed. + IF_FUNCTION_NOT_ALLOWED = 80; + + // Final url suffix is not valid. + INVALID_FINAL_URL_SUFFIX = 81; + + // Final url suffix contains an invalid tag. + INVALID_TAG_IN_FINAL_URL_SUFFIX = 82; + + // Final url suffix is formatted incorrectly. + INVALID_FINAL_URL_SUFFIX_FORMAT = 83; + + // Consent for call recording, which is required for the use of call + // extensions, was not provided by the advertiser. See + // https://support.google.com/google-ads/answer/7412639. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 84; + + // Multiple message delivery options are set. + ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED = 85; + + // No message delivery option is set. + NO_DELIVERY_OPTION_IS_SET = 86; + + // String value of conversion reporting state field is not valid. + INVALID_CONVERSION_REPORTING_STATE = 87; + + // Image size is not right. + IMAGE_SIZE_WRONG = 88; + + // Email delivery is not supported in the country specified in the country + // code field. + EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY = 89; + + // Auto reply is not supported in the country specified in the country code + // field. + AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY = 90; + + // Invalid value specified for latitude. + INVALID_LATITUDE_VALUE = 91; + + // Invalid value specified for longitude. + INVALID_LONGITUDE_VALUE = 92; + + // Too many label fields provided. + TOO_MANY_LABELS = 93; + + // Invalid image url. + INVALID_IMAGE_URL = 94; + + // Latitude value is missing. + MISSING_LATITUDE_VALUE = 95; + + // Longitude value is missing. + MISSING_LONGITUDE_VALUE = 96; + + // Unable to find address. + ADDRESS_NOT_FOUND = 97; + + // Cannot target provided address. + ADDRESS_NOT_TARGETABLE = 98; + + // The specified asset ID does not exist. + INVALID_ASSET_ID = 100; + + // The asset type cannot be set for the field. + INCOMPATIBLE_ASSET_TYPE = 101; + + // The image has unexpected size. + IMAGE_ERROR_UNEXPECTED_SIZE = 102; + + // The image aspect ratio is not allowed. + IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED = 103; + + // The image file is too large. + IMAGE_ERROR_FILE_TOO_LARGE = 104; + + // The image format is unsupported. + IMAGE_ERROR_FORMAT_NOT_ALLOWED = 105; + + // Image violates constraints without more details. + IMAGE_ERROR_CONSTRAINTS_VIOLATED = 106; + + // An error occurred when validating image. + IMAGE_ERROR_SERVER_ERROR = 107; + } + + +} diff --git a/google/ads/googleads/v11/errors/feed_mapping_error.proto b/google/ads/googleads/v11/errors/feed_mapping_error.proto new file mode 100644 index 000000000..6ed5c13ad --- /dev/null +++ b/google/ads/googleads/v11/errors/feed_mapping_error.proto @@ -0,0 +1,98 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing feed item errors. + +// Container for enum describing possible feed item errors. +message FeedMappingErrorEnum { + // Enum describing possible feed item errors. + enum FeedMappingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The given placeholder field does not exist. + INVALID_PLACEHOLDER_FIELD = 2; + + // The given criterion field does not exist. + INVALID_CRITERION_FIELD = 3; + + // The given placeholder type does not exist. + INVALID_PLACEHOLDER_TYPE = 4; + + // The given criterion type does not exist. + INVALID_CRITERION_TYPE = 5; + + // A feed mapping must contain at least one attribute field mapping. + NO_ATTRIBUTE_FIELD_MAPPINGS = 7; + + // The type of the feed attribute referenced in the attribute field mapping + // must match the type of the placeholder field. + FEED_ATTRIBUTE_TYPE_MISMATCH = 8; + + // A feed mapping for a system generated feed cannot be operated on. + CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED = 9; + + // Only one feed mapping for a placeholder type is allowed per feed or + // customer (depending on the placeholder type). + MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE = 10; + + // Only one feed mapping for a criterion type is allowed per customer. + MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE = 11; + + // Only one feed attribute mapping for a placeholder field is allowed + // (depending on the placeholder type). + MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD = 12; + + // Only one feed attribute mapping for a criterion field is allowed + // (depending on the criterion type). + MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD = 13; + + // This feed mapping may not contain any explicit attribute field mappings. + UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS = 14; + + // Location placeholder feed mappings can only be created for Places feeds. + LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS = 15; + + // Mappings for typed feeds cannot be modified. + CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED = 16; + + // The given placeholder type can only be mapped to system generated feeds. + INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED = 17; + + // The given placeholder type cannot be mapped to a system generated feed + // with the given type. + INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE = 18; + + // The "field" oneof was not set in an AttributeFieldMapping. + ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD = 19; + } + + +} diff --git a/google/ads/googleads/v11/errors/field_error.proto b/google/ads/googleads/v11/errors/field_error.proto new file mode 100644 index 000000000..6853928e4 --- /dev/null +++ b/google/ads/googleads/v11/errors/field_error.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FieldErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing field errors. + +// Container for enum describing possible field errors. +message FieldErrorEnum { + // Enum describing possible field errors. + enum FieldError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The required field was not present. + REQUIRED = 2; + + // The field attempted to be mutated is immutable. + IMMUTABLE_FIELD = 3; + + // The field's value is invalid. + INVALID_VALUE = 4; + + // The field cannot be set. + VALUE_MUST_BE_UNSET = 5; + + // The required repeated field was empty. + REQUIRED_NONEMPTY_LIST = 6; + + // The field cannot be cleared. + FIELD_CANNOT_BE_CLEARED = 7; + + // The field's value is on a deny-list for this field. + BLOCKED_VALUE = 9; + + // The field's value cannot be modified, except for clearing. + FIELD_CAN_ONLY_BE_CLEARED = 10; + } + + +} diff --git a/google/ads/googleads/v11/errors/field_mask_error.proto b/google/ads/googleads/v11/errors/field_mask_error.proto new file mode 100644 index 000000000..7d5198d9a --- /dev/null +++ b/google/ads/googleads/v11/errors/field_mask_error.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FieldMaskErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing field mask errors. + +// Container for enum describing possible field mask errors. +message FieldMaskErrorEnum { + // Enum describing possible field mask errors. + enum FieldMaskError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The field mask must be provided for update operations. + FIELD_MASK_MISSING = 5; + + // The field mask must be empty for create and remove operations. + FIELD_MASK_NOT_ALLOWED = 4; + + // The field mask contained an invalid field. + FIELD_NOT_FOUND = 2; + + // The field mask updated a field with subfields. Fields with subfields may + // be cleared, but not updated. To fix this, the field mask should select + // all the subfields of the invalid field. + FIELD_HAS_SUBFIELDS = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/function_error.proto b/google/ads/googleads/v11/errors/function_error.proto new file mode 100644 index 000000000..9399c01fa --- /dev/null +++ b/google/ads/googleads/v11/errors/function_error.proto @@ -0,0 +1,91 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FunctionErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing function errors. + +// Container for enum describing possible function errors. +message FunctionErrorEnum { + // Enum describing possible function errors. + enum FunctionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The format of the function is not recognized as a supported function + // format. + INVALID_FUNCTION_FORMAT = 2; + + // Operand data types do not match. + DATA_TYPE_MISMATCH = 3; + + // The operands cannot be used together in a conjunction. + INVALID_CONJUNCTION_OPERANDS = 4; + + // Invalid numer of Operands. + INVALID_NUMBER_OF_OPERANDS = 5; + + // Operand Type not supported. + INVALID_OPERAND_TYPE = 6; + + // Operator not supported. + INVALID_OPERATOR = 7; + + // Request context type not supported. + INVALID_REQUEST_CONTEXT_TYPE = 8; + + // The matching function is not allowed for call placeholders + INVALID_FUNCTION_FOR_CALL_PLACEHOLDER = 9; + + // The matching function is not allowed for the specified placeholder + INVALID_FUNCTION_FOR_PLACEHOLDER = 10; + + // Invalid operand. + INVALID_OPERAND = 11; + + // Missing value for the constant operand. + MISSING_CONSTANT_OPERAND_VALUE = 12; + + // The value of the constant operand is invalid. + INVALID_CONSTANT_OPERAND_VALUE = 13; + + // Invalid function nesting. + INVALID_NESTING = 14; + + // The Feed ID was different from another Feed ID in the same function. + MULTIPLE_FEED_IDS_NOT_SUPPORTED = 15; + + // The matching function is invalid for use with a feed with a fixed schema. + INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA = 16; + + // Invalid attribute name. + INVALID_ATTRIBUTE_NAME = 17; + } + + +} diff --git a/google/ads/googleads/v11/errors/function_parsing_error.proto b/google/ads/googleads/v11/errors/function_parsing_error.proto new file mode 100644 index 000000000..75428ef73 --- /dev/null +++ b/google/ads/googleads/v11/errors/function_parsing_error.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "FunctionParsingErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing function parsing errors. + +// Container for enum describing possible function parsing errors. +message FunctionParsingErrorEnum { + // Enum describing possible function parsing errors. + enum FunctionParsingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Unexpected end of function string. + NO_MORE_INPUT = 2; + + // Could not find an expected character. + EXPECTED_CHARACTER = 3; + + // Unexpected separator character. + UNEXPECTED_SEPARATOR = 4; + + // Unmatched left bracket or parenthesis. + UNMATCHED_LEFT_BRACKET = 5; + + // Unmatched right bracket or parenthesis. + UNMATCHED_RIGHT_BRACKET = 6; + + // Functions are nested too deeply. + TOO_MANY_NESTED_FUNCTIONS = 7; + + // Missing right-hand-side operand. + MISSING_RIGHT_HAND_OPERAND = 8; + + // Invalid operator/function name. + INVALID_OPERATOR_NAME = 9; + + // Feed attribute operand's argument is not an integer. + FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER = 10; + + // Missing function operands. + NO_OPERANDS = 11; + + // Function had too many operands. + TOO_MANY_OPERANDS = 12; + } + + +} diff --git a/google/ads/googleads/v11/errors/geo_target_constant_suggestion_error.proto b/google/ads/googleads/v11/errors/geo_target_constant_suggestion_error.proto new file mode 100644 index 000000000..4ec391a3e --- /dev/null +++ b/google/ads/googleads/v11/errors/geo_target_constant_suggestion_error.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetConstantSuggestionErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Container for enum describing possible geo target constant suggestion errors. +message GeoTargetConstantSuggestionErrorEnum { + // Enum describing possible geo target constant suggestion errors. + enum GeoTargetConstantSuggestionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A location name cannot be greater than 300 characters. + LOCATION_NAME_SIZE_LIMIT = 2; + + // At most 25 location names can be specified in a SuggestGeoTargetConstants + // method. + LOCATION_NAME_LIMIT = 3; + + // The country code is invalid. + INVALID_COUNTRY_CODE = 4; + + // Geo target constant resource names or location names must be provided in + // the request. + REQUEST_PARAMETERS_UNSET = 5; + } + + +} diff --git a/google/ads/googleads/v11/errors/header_error.proto b/google/ads/googleads/v11/errors/header_error.proto new file mode 100644 index 000000000..bdc720e4f --- /dev/null +++ b/google/ads/googleads/v11/errors/header_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "HeaderErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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 login customer ID could not be validated. + INVALID_LOGIN_CUSTOMER_ID = 3; + + // The linked customer ID could not be validated. + INVALID_LINKED_CUSTOMER_ID = 7; + } + + +} diff --git a/google/ads/googleads/v11/errors/id_error.proto b/google/ads/googleads/v11/errors/id_error.proto new file mode 100644 index 000000000..276d3aadd --- /dev/null +++ b/google/ads/googleads/v11/errors/id_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "IdErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing id errors. + +// Container for enum describing possible ID errors. +message IdErrorEnum { + // Enum describing possible ID errors. + enum IdError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // ID not found + NOT_FOUND = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/image_error.proto b/google/ads/googleads/v11/errors/image_error.proto new file mode 100644 index 000000000..f1579c460 --- /dev/null +++ b/google/ads/googleads/v11/errors/image_error.proto @@ -0,0 +1,162 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ImageErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing image errors. + +// Container for enum describing possible image errors. +message ImageErrorEnum { + // Enum describing possible image errors. + enum ImageError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The image is not valid. + INVALID_IMAGE = 2; + + // The image could not be stored. + STORAGE_ERROR = 3; + + // There was a problem with the request. + BAD_REQUEST = 4; + + // The image is not of legal dimensions. + UNEXPECTED_SIZE = 5; + + // Animated image are not permitted. + ANIMATED_NOT_ALLOWED = 6; + + // Animation is too long. + ANIMATION_TOO_LONG = 7; + + // There was an error on the server. + SERVER_ERROR = 8; + + // Image cannot be in CMYK color format. + CMYK_JPEG_NOT_ALLOWED = 9; + + // Flash images are not permitted. + FLASH_NOT_ALLOWED = 10; + + // Flash images must support clickTag. + FLASH_WITHOUT_CLICKTAG = 11; + + // A flash error has occurred after fixing the click tag. + FLASH_ERROR_AFTER_FIXING_CLICK_TAG = 12; + + // Unacceptable visual effects. + ANIMATED_VISUAL_EFFECT = 13; + + // There was a problem with the flash image. + FLASH_ERROR = 14; + + // Incorrect image layout. + LAYOUT_PROBLEM = 15; + + // There was a problem reading the image file. + PROBLEM_READING_IMAGE_FILE = 16; + + // There was an error storing the image. + ERROR_STORING_IMAGE = 17; + + // The aspect ratio of the image is not allowed. + ASPECT_RATIO_NOT_ALLOWED = 18; + + // Flash cannot have network objects. + FLASH_HAS_NETWORK_OBJECTS = 19; + + // Flash cannot have network methods. + FLASH_HAS_NETWORK_METHODS = 20; + + // Flash cannot have a Url. + FLASH_HAS_URL = 21; + + // Flash cannot use mouse tracking. + FLASH_HAS_MOUSE_TRACKING = 22; + + // Flash cannot have a random number. + FLASH_HAS_RANDOM_NUM = 23; + + // Ad click target cannot be '_self'. + FLASH_SELF_TARGETS = 24; + + // GetUrl method should only use '_blank'. + FLASH_BAD_GETURL_TARGET = 25; + + // Flash version is not supported. + FLASH_VERSION_NOT_SUPPORTED = 26; + + // Flash movies need to have hard coded click URL or clickTAG + FLASH_WITHOUT_HARD_CODED_CLICK_URL = 27; + + // Uploaded flash file is corrupted. + INVALID_FLASH_FILE = 28; + + // Uploaded flash file can be parsed, but the click tag can not be fixed + // properly. + FAILED_TO_FIX_CLICK_TAG_IN_FLASH = 29; + + // Flash movie accesses network resources + FLASH_ACCESSES_NETWORK_RESOURCES = 30; + + // Flash movie attempts to call external javascript code + FLASH_EXTERNAL_JS_CALL = 31; + + // Flash movie attempts to call flash system commands + FLASH_EXTERNAL_FS_CALL = 32; + + // Image file is too large. + FILE_TOO_LARGE = 33; + + // Image data is too large. + IMAGE_DATA_TOO_LARGE = 34; + + // Error while processing the image. + IMAGE_PROCESSING_ERROR = 35; + + // Image is too small. + IMAGE_TOO_SMALL = 36; + + // Input was invalid. + INVALID_INPUT = 37; + + // There was a problem reading the image file. + PROBLEM_READING_FILE = 38; + + // Image constraints are violated, but details like ASPECT_RATIO_NOT_ALLOWED + // can't be provided. This happens when asset spec contains more than one + // constraint and different criteria of different constraints are violated. + IMAGE_CONSTRAINTS_VIOLATED = 39; + + // Image format is not allowed. + FORMAT_NOT_ALLOWED = 40; + } + + +} diff --git a/google/ads/googleads/v11/errors/internal_error.proto b/google/ads/googleads/v11/errors/internal_error.proto new file mode 100644 index 000000000..d52fbd80d --- /dev/null +++ b/google/ads/googleads/v11/errors/internal_error.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "InternalErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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; + + // Google Ads 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; + + // Google Ads 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/google/ads/googleads/v11/errors/invoice_error.proto b/google/ads/googleads/v11/errors/invoice_error.proto new file mode 100644 index 000000000..58288aebc --- /dev/null +++ b/google/ads/googleads/v11/errors/invoice_error.proto @@ -0,0 +1,58 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "InvoiceErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing invoice errors. + +// Container for enum describing possible invoice errors. +message InvoiceErrorEnum { + // Enum describing possible invoice errors. + enum InvoiceError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot request invoices issued before 2019-01-01. + YEAR_MONTH_TOO_OLD = 2; + + // Cannot request invoices for customer who doesn't receive invoices. + NOT_INVOICED_CUSTOMER = 3; + + // Cannot request invoices for a non approved billing setup. + BILLING_SETUP_NOT_APPROVED = 4; + + // Cannot request invoices for a billing setup that is not on monthly + // invoicing. + BILLING_SETUP_NOT_ON_MONTHLY_INVOICING = 5; + + // Cannot request invoices for a non serving customer. + NON_SERVING_CUSTOMER = 6; + } + + +} diff --git a/google/ads/googleads/v11/errors/keyword_plan_ad_group_error.proto b/google/ads/googleads/v11/errors/keyword_plan_ad_group_error.proto new file mode 100644 index 000000000..04b2b1b14 --- /dev/null +++ b/google/ads/googleads/v11/errors/keyword_plan_ad_group_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors from applying a keyword plan ad group. + +// Container for enum describing possible errors from applying a keyword plan +// ad group. +message KeywordPlanAdGroupErrorEnum { + // Enum describing possible errors from applying a keyword plan ad group. + enum KeywordPlanAdGroupError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The keyword plan ad group name is missing, empty, longer than allowed + // limit or contains invalid chars. + INVALID_NAME = 2; + + // The keyword plan ad group name is duplicate to an existing keyword plan + // AdGroup name or other keyword plan AdGroup name in the request. + DUPLICATE_NAME = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/keyword_plan_ad_group_keyword_error.proto b/google/ads/googleads/v11/errors/keyword_plan_ad_group_keyword_error.proto new file mode 100644 index 000000000..70d229b15 --- /dev/null +++ b/google/ads/googleads/v11/errors/keyword_plan_ad_group_keyword_error.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupKeywordErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors from applying a keyword plan ad group keyword or +// keyword plan campaign keyword. + +// Container for enum describing possible errors from applying an ad group +// keyword or a campaign keyword from a keyword plan. +message KeywordPlanAdGroupKeywordErrorEnum { + // Enum describing possible errors from applying a keyword plan ad group + // keyword or keyword plan campaign keyword. + enum KeywordPlanAdGroupKeywordError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A keyword or negative keyword has invalid match type. + INVALID_KEYWORD_MATCH_TYPE = 2; + + // A keyword or negative keyword with same text and match type already + // exists. + DUPLICATE_KEYWORD = 3; + + // Keyword or negative keyword text exceeds the allowed limit. + KEYWORD_TEXT_TOO_LONG = 4; + + // Keyword or negative keyword text has invalid characters or symbols. + KEYWORD_HAS_INVALID_CHARS = 5; + + // Keyword or negative keyword text has too many words. + KEYWORD_HAS_TOO_MANY_WORDS = 6; + + // Keyword or negative keyword has invalid text. + INVALID_KEYWORD_TEXT = 7; + + // Cpc Bid set for negative keyword. + NEGATIVE_KEYWORD_HAS_CPC_BID = 8; + + // New broad match modifier (BMM) KpAdGroupKeywords are not allowed. + NEW_BMM_KEYWORDS_NOT_ALLOWED = 9; + } + + +} diff --git a/google/ads/googleads/v11/errors/keyword_plan_campaign_error.proto b/google/ads/googleads/v11/errors/keyword_plan_campaign_error.proto new file mode 100644 index 000000000..878a7c359 --- /dev/null +++ b/google/ads/googleads/v11/errors/keyword_plan_campaign_error.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors from applying a keyword plan campaign. + +// Container for enum describing possible errors from applying a keyword plan +// campaign. +message KeywordPlanCampaignErrorEnum { + // Enum describing possible errors from applying a keyword plan campaign. + enum KeywordPlanCampaignError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A keyword plan campaign name is missing, empty, longer than allowed limit + // or contains invalid chars. + INVALID_NAME = 2; + + // A keyword plan campaign contains one or more untargetable languages. + INVALID_LANGUAGES = 3; + + // A keyword plan campaign contains one or more invalid geo targets. + INVALID_GEOS = 4; + + // The keyword plan campaign name is duplicate to an existing keyword plan + // campaign name or other keyword plan campaign name in the request. + DUPLICATE_NAME = 5; + + // The number of geo targets in the keyword plan campaign exceeds limits. + MAX_GEOS_EXCEEDED = 6; + + // The number of languages in the keyword plan campaign exceeds limits. + MAX_LANGUAGES_EXCEEDED = 7; + } + + +} diff --git a/google/ads/googleads/v11/errors/keyword_plan_campaign_keyword_error.proto b/google/ads/googleads/v11/errors/keyword_plan_campaign_keyword_error.proto new file mode 100644 index 000000000..379dd30b5 --- /dev/null +++ b/google/ads/googleads/v11/errors/keyword_plan_campaign_keyword_error.proto @@ -0,0 +1,47 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignKeywordErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors from applying a keyword plan campaign keyword. + +// Container for enum describing possible errors from applying a keyword plan +// campaign keyword. +message KeywordPlanCampaignKeywordErrorEnum { + // Enum describing possible errors from applying a keyword plan campaign + // keyword. + enum KeywordPlanCampaignKeywordError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Keyword plan campaign keyword is positive. + CAMPAIGN_KEYWORD_IS_POSITIVE = 8; + } + + +} diff --git a/google/ads/googleads/v11/errors/keyword_plan_error.proto b/google/ads/googleads/v11/errors/keyword_plan_error.proto new file mode 100644 index 000000000..5b1377658 --- /dev/null +++ b/google/ads/googleads/v11/errors/keyword_plan_error.proto @@ -0,0 +1,89 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors from applying keyword plan resources (keyword +// plan, keyword plan campaign, keyword plan ad group or keyword plan keyword) +// or KeywordPlanService RPC. + +// Container for enum describing possible errors from applying a keyword plan +// resource (keyword plan, keyword plan campaign, keyword plan ad group or +// keyword plan keyword) or KeywordPlanService RPC. +message KeywordPlanErrorEnum { + // Enum describing possible errors from applying a keyword plan. + enum KeywordPlanError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The plan's bid multiplier value is outside the valid range. + BID_MULTIPLIER_OUT_OF_RANGE = 2; + + // The plan's bid value is too high. + BID_TOO_HIGH = 3; + + // The plan's bid value is too low. + BID_TOO_LOW = 4; + + // The plan's cpc bid is not a multiple of the minimum billable unit. + BID_TOO_MANY_FRACTIONAL_DIGITS = 5; + + // The plan's daily budget value is too low. + DAILY_BUDGET_TOO_LOW = 6; + + // The plan's daily budget is not a multiple of the minimum billable unit. + DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS = 7; + + // The input has an invalid value. + INVALID_VALUE = 8; + + // The plan has no keyword. + KEYWORD_PLAN_HAS_NO_KEYWORDS = 9; + + // The plan is not enabled and API cannot provide mutation, forecast or + // stats. + KEYWORD_PLAN_NOT_ENABLED = 10; + + // The requested plan cannot be found for providing forecast or stats. + KEYWORD_PLAN_NOT_FOUND = 11; + + // The plan is missing a cpc bid. + MISSING_BID = 13; + + // The plan is missing required forecast_period field. + MISSING_FORECAST_PERIOD = 14; + + // The plan's forecast_period has invalid forecast date range. + INVALID_FORECAST_DATE_RANGE = 15; + + // The plan's name is invalid. + INVALID_NAME = 16; + } + + +} diff --git a/google/ads/googleads/v11/errors/keyword_plan_idea_error.proto b/google/ads/googleads/v11/errors/keyword_plan_idea_error.proto new file mode 100644 index 000000000..c53bb70b8 --- /dev/null +++ b/google/ads/googleads/v11/errors/keyword_plan_idea_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanIdeaErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors from KeywordPlanIdeaService. + +// Container for enum describing possible errors from KeywordPlanIdeaService. +message KeywordPlanIdeaErrorEnum { + // Enum describing possible errors from KeywordPlanIdeaService. + enum KeywordPlanIdeaError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Error when crawling the input URL. + URL_CRAWL_ERROR = 2; + + // The input has an invalid value. + INVALID_VALUE = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/label_error.proto b/google/ads/googleads/v11/errors/label_error.proto new file mode 100644 index 000000000..5d36969a3 --- /dev/null +++ b/google/ads/googleads/v11/errors/label_error.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "LabelErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing label errors. + +// Container for enum describing possible label errors. +message LabelErrorEnum { + // Enum describing possible label errors. + enum LabelError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // An inactive label cannot be applied. + CANNOT_APPLY_INACTIVE_LABEL = 2; + + // A label cannot be applied to a disabled ad group criterion. + CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION = 3; + + // A label cannot be applied to a negative ad group criterion. + CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION = 4; + + // Cannot apply more than 50 labels per resource. + EXCEEDED_LABEL_LIMIT_PER_TYPE = 5; + + // Labels from a manager account cannot be applied to campaign, ad group, + // ad group ad, or ad group criterion resources. + INVALID_RESOURCE_FOR_MANAGER_LABEL = 6; + + // Label names must be unique. + DUPLICATE_NAME = 7; + + // Label names cannot be empty. + INVALID_LABEL_NAME = 8; + + // Labels cannot be applied to a draft. + CANNOT_ATTACH_LABEL_TO_DRAFT = 9; + + // Labels not from a manager account cannot be applied to the customer + // resource. + CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER = 10; + } + + +} diff --git a/google/ads/googleads/v11/errors/language_code_error.proto b/google/ads/googleads/v11/errors/language_code_error.proto new file mode 100644 index 000000000..aaf4aec6e --- /dev/null +++ b/google/ads/googleads/v11/errors/language_code_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "LanguageCodeErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing language code errors. + +// Container for enum describing language code errors. +message LanguageCodeErrorEnum { + // Enum describing language code errors. + enum LanguageCodeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The input language code is not recognized. + LANGUAGE_CODE_NOT_FOUND = 2; + + // The language code is not supported. + INVALID_LANGUAGE_CODE = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/list_operation_error.proto b/google/ads/googleads/v11/errors/list_operation_error.proto new file mode 100644 index 000000000..3f53256d1 --- /dev/null +++ b/google/ads/googleads/v11/errors/list_operation_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ListOperationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing list operation errors. + +// Container for enum describing possible list operation errors. +message ListOperationErrorEnum { + // Enum describing possible list operation errors. + enum ListOperationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Field required in value is missing. + REQUIRED_FIELD_MISSING = 7; + + // Duplicate or identical value is sent in multiple list operations. + DUPLICATE_VALUES = 8; + } + + +} diff --git a/google/ads/googleads/v11/errors/manager_link_error.proto b/google/ads/googleads/v11/errors/manager_link_error.proto new file mode 100644 index 000000000..a39e99843 --- /dev/null +++ b/google/ads/googleads/v11/errors/manager_link_error.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ManagerLinkErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ManagerLink errors. + +// Container for enum describing possible ManagerLink errors. +message ManagerLinkErrorEnum { + // Enum describing possible ManagerLink errors. + enum ManagerLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The manager and client have incompatible account types. + ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING = 2; + + // Client is already linked to too many managers. + TOO_MANY_MANAGERS = 3; + + // Manager has too many pending invitations. + TOO_MANY_INVITES = 4; + + // Client is already invited by this manager. + ALREADY_INVITED_BY_THIS_MANAGER = 5; + + // The client is already managed by this manager. + ALREADY_MANAGED_BY_THIS_MANAGER = 6; + + // Client is already managed in hierarchy. + ALREADY_MANAGED_IN_HIERARCHY = 7; + + // Manager and sub-manager to be linked have duplicate client. + DUPLICATE_CHILD_FOUND = 8; + + // Client has no active user that can access the client account. + CLIENT_HAS_NO_ADMIN_USER = 9; + + // Adding this link would exceed the maximum hierarchy depth. + MAX_DEPTH_EXCEEDED = 10; + + // Adding this link will create a cycle. + CYCLE_NOT_ALLOWED = 11; + + // Manager account has the maximum number of linked clients. + TOO_MANY_ACCOUNTS = 12; + + // Parent manager account has the maximum number of linked clients. + TOO_MANY_ACCOUNTS_AT_MANAGER = 13; + + // The account is not authorized owner. + NON_OWNER_USER_CANNOT_MODIFY_LINK = 14; + + // Your manager account is suspended, and you are no longer allowed to link + // to clients. + SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS = 15; + + // You are not allowed to move a client to a manager that is not under your + // current hierarchy. + CLIENT_OUTSIDE_TREE = 16; + + // The changed status for mutate link is invalid. + INVALID_STATUS_CHANGE = 17; + + // The change for mutate link is invalid. + INVALID_CHANGE = 18; + + // You are not allowed to link a manager account to itself. + CUSTOMER_CANNOT_MANAGE_SELF = 19; + + // The link was created with status ACTIVE and not PENDING. + CREATING_ENABLED_LINK_NOT_ALLOWED = 20; + } + + +} diff --git a/google/ads/googleads/v11/errors/media_bundle_error.proto b/google/ads/googleads/v11/errors/media_bundle_error.proto new file mode 100644 index 000000000..542ac1d65 --- /dev/null +++ b/google/ads/googleads/v11/errors/media_bundle_error.proto @@ -0,0 +1,108 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MediaBundleErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing media bundle errors. + +// Container for enum describing possible media bundle errors. +message MediaBundleErrorEnum { + // Enum describing possible media bundle errors. + enum MediaBundleError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // There was a problem with the request. + BAD_REQUEST = 3; + + // HTML5 ads using DoubleClick Studio created ZIP files are not supported. + DOUBLECLICK_BUNDLE_NOT_ALLOWED = 4; + + // Cannot reference URL external to the media bundle. + EXTERNAL_URL_NOT_ALLOWED = 5; + + // Media bundle file is too large. + FILE_TOO_LARGE = 6; + + // ZIP file from Google Web Designer is not published. + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 7; + + // Input was invalid. + INVALID_INPUT = 8; + + // There was a problem with the media bundle. + INVALID_MEDIA_BUNDLE = 9; + + // There was a problem with one or more of the media bundle entries. + INVALID_MEDIA_BUNDLE_ENTRY = 10; + + // The media bundle contains a file with an unknown mime type + INVALID_MIME_TYPE = 11; + + // The media bundle contain an invalid asset path. + INVALID_PATH = 12; + + // HTML5 ad is trying to reference an asset not in .ZIP file + INVALID_URL_REFERENCE = 13; + + // Media data is too large. + MEDIA_DATA_TOO_LARGE = 14; + + // The media bundle contains no primary entry. + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 15; + + // There was an error on the server. + SERVER_ERROR = 16; + + // The image could not be stored. + STORAGE_ERROR = 17; + + // Media bundle created with the Swiffy tool is not allowed. + SWIFFY_BUNDLE_NOT_ALLOWED = 18; + + // The media bundle contains too many files. + TOO_MANY_FILES = 19; + + // The media bundle is not of legal dimensions. + UNEXPECTED_SIZE = 20; + + // Google Web Designer not created for "Google Ads" environment. + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 21; + + // Unsupported HTML5 feature in HTML5 asset. + UNSUPPORTED_HTML5_FEATURE = 22; + + // URL in HTML5 entry is not ssl compliant. + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 23; + + // Custom exits not allowed in HTML5 entry. + CUSTOM_EXIT_NOT_ALLOWED = 24; + } + + +} diff --git a/google/ads/googleads/v11/errors/media_file_error.proto b/google/ads/googleads/v11/errors/media_file_error.proto new file mode 100644 index 000000000..8b4be3728 --- /dev/null +++ b/google/ads/googleads/v11/errors/media_file_error.proto @@ -0,0 +1,111 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MediaFileErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing media file errors. + +// Container for enum describing possible media file errors. +message MediaFileErrorEnum { + // Enum describing possible media file errors. + enum MediaFileError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot create a standard icon type. + CANNOT_CREATE_STANDARD_ICON = 2; + + // May only select Standard Icons alone. + CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES = 3; + + // Image contains both a media file ID and data. + CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA = 4; + + // A media file with given type and reference ID already exists. + DUPLICATE_MEDIA = 5; + + // A required field was not specified or is an empty string. + EMPTY_FIELD = 6; + + // A media file may only be modified once per call. + RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 7; + + // Field is not supported for the media sub type. + FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE = 8; + + // The media file ID is invalid. + INVALID_MEDIA_FILE_ID = 9; + + // The media subtype is invalid. + INVALID_MEDIA_SUB_TYPE = 10; + + // The media file type is invalid. + INVALID_MEDIA_FILE_TYPE = 11; + + // The mimetype is invalid. + INVALID_MIME_TYPE = 12; + + // The media reference ID is invalid. + INVALID_REFERENCE_ID = 13; + + // The YouTube video ID is invalid. + INVALID_YOU_TUBE_ID = 14; + + // Media file has failed transcoding + MEDIA_FILE_FAILED_TRANSCODING = 15; + + // Media file has not been transcoded. + MEDIA_NOT_TRANSCODED = 16; + + // The media type does not match the actual media file's type. + MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE = 17; + + // None of the fields have been specified. + NO_FIELDS_SPECIFIED = 18; + + // One of reference ID or media file ID must be specified. + NULL_REFERENCE_ID_AND_MEDIA_ID = 19; + + // The string has too many characters. + TOO_LONG = 20; + + // The specified type is not supported. + UNSUPPORTED_TYPE = 21; + + // YouTube is unavailable for requesting video data. + YOU_TUBE_SERVICE_UNAVAILABLE = 22; + + // The YouTube video has a non positive duration. + YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION = 23; + + // The YouTube video ID is syntactically valid but the video was not found. + YOU_TUBE_VIDEO_NOT_FOUND = 24; + } + + +} diff --git a/google/ads/googleads/v11/errors/media_upload_error.proto b/google/ads/googleads/v11/errors/media_upload_error.proto new file mode 100644 index 000000000..2ca9f75c0 --- /dev/null +++ b/google/ads/googleads/v11/errors/media_upload_error.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MediaUploadErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing media uploading errors. + +// Container for enum describing possible media uploading errors. +message MediaUploadErrorEnum { + // Enum describing possible media uploading errors. + enum MediaUploadError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The uploaded file is too big. + FILE_TOO_BIG = 2; + + // Image data is unparseable. + UNPARSEABLE_IMAGE = 3; + + // Animated images are not allowed. + ANIMATED_IMAGE_NOT_ALLOWED = 4; + + // The image or media bundle format is not allowed. + FORMAT_NOT_ALLOWED = 5; + + // Cannot reference URL external to the media bundle. + EXTERNAL_URL_NOT_ALLOWED = 6; + + // HTML5 ad is trying to reference an asset not in .ZIP file. + INVALID_URL_REFERENCE = 7; + + // The media bundle contains no primary entry. + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 8; + + // Animation has disallowed visual effects. + ANIMATED_VISUAL_EFFECT = 9; + + // Animation longer than the allowed 30 second limit. + ANIMATION_TOO_LONG = 10; + + // The aspect ratio of the image does not match the expected aspect ratios + // provided in the asset spec. + ASPECT_RATIO_NOT_ALLOWED = 11; + + // Audio files are not allowed in bundle. + AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 12; + + // CMYK jpegs are not supported. + CMYK_JPEG_NOT_ALLOWED = 13; + + // Flash movies are not allowed. + FLASH_NOT_ALLOWED = 14; + + // The frame rate of the video is higher than the allowed 5fps. + FRAME_RATE_TOO_HIGH = 15; + + // ZIP file from Google Web Designer is not published. + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 16; + + // Image constraints are violated, but more details (like + // DIMENSIONS_NOT_ALLOWED or ASPECT_RATIO_NOT_ALLOWED) can not be provided. + // This happens when asset spec contains more than one constraint and + // criteria of different constraints are violated. + IMAGE_CONSTRAINTS_VIOLATED = 17; + + // Media bundle data is unrecognizable. + INVALID_MEDIA_BUNDLE = 18; + + // There was a problem with one or more of the media bundle entries. + INVALID_MEDIA_BUNDLE_ENTRY = 19; + + // The asset has an invalid mime type. + INVALID_MIME_TYPE = 20; + + // The media bundle contains an invalid asset path. + INVALID_PATH = 21; + + // Image has layout problem. + LAYOUT_PROBLEM = 22; + + // An asset had a URL reference that is malformed per RFC 1738 convention. + MALFORMED_URL = 23; + + // The uploaded media bundle format is not allowed. + MEDIA_BUNDLE_NOT_ALLOWED = 24; + + // The media bundle is not compatible with the asset spec product type. + // (For example, Gmail, dynamic remarketing, etc.) + MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE = 25; + + // A bundle being uploaded that is incompatible with multiple assets for + // different reasons. + MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS = 26; + + // The media bundle contains too many files. + TOO_MANY_FILES_IN_MEDIA_BUNDLE = 27; + + // Google Web Designer not created for "Google Ads" environment. + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 28; + + // Unsupported HTML5 feature in HTML5 asset. + UNSUPPORTED_HTML5_FEATURE = 29; + + // URL in HTML5 entry is not SSL compliant. + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 30; + + // Video file name is longer than the 50 allowed characters. + VIDEO_FILE_NAME_TOO_LONG = 31; + + // Multiple videos with same name in a bundle. + VIDEO_MULTIPLE_FILES_WITH_SAME_NAME = 32; + + // Videos are not allowed in media bundle. + VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 33; + + // This type of media cannot be uploaded through the Google Ads API. + CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API = 34; + + // The dimensions of the image are not allowed. + DIMENSIONS_NOT_ALLOWED = 35; + } + + +} diff --git a/google/ads/googleads/v11/errors/merchant_center_error.proto b/google/ads/googleads/v11/errors/merchant_center_error.proto new file mode 100644 index 000000000..73525b751 --- /dev/null +++ b/google/ads/googleads/v11/errors/merchant_center_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MerchantCenterErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing merchant center errors. + +// Container for enum describing possible merchant center errors. +message MerchantCenterErrorEnum { + // Enum describing Merchant Center errors. + enum MerchantCenterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Merchant ID is either not found or not linked to the Google Ads customer. + MERCHANT_ID_CANNOT_BE_ACCESSED = 2; + + // Customer not allowlisted for Shopping in Performance Max Campaign. + CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/multiplier_error.proto b/google/ads/googleads/v11/errors/multiplier_error.proto new file mode 100644 index 000000000..7ac7beb49 --- /dev/null +++ b/google/ads/googleads/v11/errors/multiplier_error.proto @@ -0,0 +1,80 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MultiplierErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing multiplier errors. + +// Container for enum describing possible multiplier errors. +message MultiplierErrorEnum { + // Enum describing possible multiplier errors. + enum MultiplierError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Multiplier value is too high + MULTIPLIER_TOO_HIGH = 2; + + // Multiplier value is too low + MULTIPLIER_TOO_LOW = 3; + + // Too many fractional digits + TOO_MANY_FRACTIONAL_DIGITS = 4; + + // A multiplier cannot be set for this bidding strategy + MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY = 5; + + // A multiplier cannot be set when there is no base bid (for example, + // content max cpc) + MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING = 6; + + // A bid multiplier must be specified + NO_MULTIPLIER_SPECIFIED = 7; + + // Multiplier causes bid to exceed daily budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET = 8; + + // Multiplier causes bid to exceed monthly budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET = 9; + + // Multiplier causes bid to exceed custom budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET = 10; + + // Multiplier causes bid to exceed maximum allowed bid + MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID = 11; + + // Multiplier causes bid to become less than the minimum bid allowed + BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER = 12; + + // Multiplier type (cpc versus cpm) needs to match campaign's bidding + // strategy + MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH = 13; + } + + +} diff --git a/google/ads/googleads/v11/errors/mutate_error.proto b/google/ads/googleads/v11/errors/mutate_error.proto new file mode 100644 index 000000000..24dbe8eb3 --- /dev/null +++ b/google/ads/googleads/v11/errors/mutate_error.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "MutateErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing mutate errors. + +// Container for enum describing possible mutate errors. +message MutateErrorEnum { + // Enum describing possible mutate errors. + enum MutateError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Requested resource was not found. + RESOURCE_NOT_FOUND = 3; + + // Cannot mutate the same resource twice in one request. + ID_EXISTS_IN_MULTIPLE_MUTATES = 7; + + // The field's contents don't match another field that represents the same + // data. + INCONSISTENT_FIELD_VALUES = 8; + + // Mutates are not allowed for the requested resource. + MUTATE_NOT_ALLOWED = 9; + + // The resource isn't in Google Ads. It belongs to another ads system. + RESOURCE_NOT_IN_GOOGLE_ADS = 10; + + // The resource being created already exists. + RESOURCE_ALREADY_EXISTS = 11; + + // This resource cannot be used with "validate_only". + RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY = 12; + + // This operation cannot be used with "partial_failure". + OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE = 16; + + // Attempt to write to read-only fields. + RESOURCE_READ_ONLY = 13; + } + + +} diff --git a/google/ads/googleads/v11/errors/new_resource_creation_error.proto b/google/ads/googleads/v11/errors/new_resource_creation_error.proto new file mode 100644 index 000000000..f339c3a6b --- /dev/null +++ b/google/ads/googleads/v11/errors/new_resource_creation_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "NewResourceCreationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing new resource creation errors. + +// Container for enum describing possible new resource creation errors. +message NewResourceCreationErrorEnum { + // Enum describing possible new resource creation errors. + enum NewResourceCreationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Do not set the id field while creating new resources. + CANNOT_SET_ID_FOR_CREATE = 2; + + // Creating more than one resource with the same temp ID is not allowed. + DUPLICATE_TEMP_IDS = 3; + + // Parent resource with specified temp ID failed validation, so no + // validation will be done for this child resource. + TEMP_ID_RESOURCE_HAD_ERRORS = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/not_allowlisted_error.proto b/google/ads/googleads/v11/errors/not_allowlisted_error.proto new file mode 100644 index 000000000..820a78710 --- /dev/null +++ b/google/ads/googleads/v11/errors/not_allowlisted_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "NotAllowlistedErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing not allowlisted errors. + +// Container for enum describing possible not allowlisted errors. +message NotAllowlistedErrorEnum { + // Enum describing possible not allowlisted errors. + enum NotAllowlistedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Customer is not allowlisted for accessing this feature. + CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/not_empty_error.proto b/google/ads/googleads/v11/errors/not_empty_error.proto new file mode 100644 index 000000000..515ff6b99 --- /dev/null +++ b/google/ads/googleads/v11/errors/not_empty_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "NotEmptyErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing not empty errors. + +// Container for enum describing possible not empty errors. +message NotEmptyErrorEnum { + // Enum describing possible not empty errors. + enum NotEmptyError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Empty list. + EMPTY_LIST = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/null_error.proto b/google/ads/googleads/v11/errors/null_error.proto new file mode 100644 index 000000000..13974405c --- /dev/null +++ b/google/ads/googleads/v11/errors/null_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "NullErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing null errors. + +// Container for enum describing possible null errors. +message NullErrorEnum { + // Enum describing possible null errors. + enum NullError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Specified list/container must not contain any null elements + NULL_CONTENT = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/offline_user_data_job_error.proto b/google/ads/googleads/v11/errors/offline_user_data_job_error.proto new file mode 100644 index 000000000..b197c7191 --- /dev/null +++ b/google/ads/googleads/v11/errors/offline_user_data_job_error.proto @@ -0,0 +1,173 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing offline user data job errors. + +// Container for enum describing possible offline user data job errors. +message OfflineUserDataJobErrorEnum { + // Enum describing possible request errors. + enum OfflineUserDataJobError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The user list ID provided for the job is invalid. + INVALID_USER_LIST_ID = 3; + + // Type of the user list is not applicable for the job. + INVALID_USER_LIST_TYPE = 4; + + // Customer is not allowisted for using user ID in upload data. + NOT_ON_ALLOWLIST_FOR_USER_ID = 33; + + // Upload data is not compatible with the upload key type of the associated + // user list. + INCOMPATIBLE_UPLOAD_KEY_TYPE = 6; + + // The user identifier is missing valid data. + MISSING_USER_IDENTIFIER = 7; + + // The mobile ID is malformed. + INVALID_MOBILE_ID_FORMAT = 8; + + // Maximum number of user identifiers allowed per request is 100,000 and per + // operation is 20. + TOO_MANY_USER_IDENTIFIERS = 9; + + // Customer is not on the allow-list for store sales direct data. + NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT = 31; + + // Customer is not on the allow-list for unified store sales data. + NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES = 32; + + // The partner ID in store sales direct metadata is invalid. + INVALID_PARTNER_ID = 11; + + // The data in user identifier should not be encoded. + INVALID_ENCODING = 12; + + // The country code is invalid. + INVALID_COUNTRY_CODE = 13; + + // Incompatible user identifier when using third_party_user_id for store + // sales direct first party data or not using third_party_user_id for store + // sales third party data. + INCOMPATIBLE_USER_IDENTIFIER = 14; + + // A transaction time in the future is not allowed. + FUTURE_TRANSACTION_TIME = 15; + + // The conversion_action specified in transaction_attributes is used to + // report conversions to a conversion action configured in Google Ads. This + // error indicates there is no such conversion action in the account. + INVALID_CONVERSION_ACTION = 16; + + // Mobile ID is not supported for store sales direct data. + MOBILE_ID_NOT_SUPPORTED = 17; + + // When a remove-all operation is provided, it has to be the first operation + // of the operation list. + INVALID_OPERATION_ORDER = 18; + + // Mixing creation and removal of offline data in the same job is not + // allowed. + CONFLICTING_OPERATION = 19; + + // The external update ID already exists. + EXTERNAL_UPDATE_ID_ALREADY_EXISTS = 21; + + // Once the upload job is started, new operations cannot be added. + JOB_ALREADY_STARTED = 22; + + // Remove operation is not allowed for store sales direct updates. + REMOVE_NOT_SUPPORTED = 23; + + // Remove-all is not supported for certain offline user data job types. + REMOVE_ALL_NOT_SUPPORTED = 24; + + // The SHA256 encoded value is malformed. + INVALID_SHA256_FORMAT = 25; + + // The custom key specified is not enabled for the unified store sales + // upload. + CUSTOM_KEY_DISABLED = 26; + + // The custom key specified is not predefined through the Google Ads UI. + CUSTOM_KEY_NOT_PREDEFINED = 27; + + // The custom key specified is not set in the upload. + CUSTOM_KEY_NOT_SET = 29; + + // The customer has not accepted the customer data terms in the conversion + // settings page. + CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 30; + + // User attributes cannot be uploaded into a user list. + ATTRIBUTES_NOT_APPLICABLE_FOR_CUSTOMER_MATCH_USER_LIST = 34; + + // Lifetime bucket value must be a number from 0 to 10; 0 is only accepted + // for remove operations + LIFETIME_VALUE_BUCKET_NOT_IN_RANGE = 35; + + // Identifiers not supported for Customer Match attributes. User attributes + // can only be provided with contact info (email, phone, address) user + // identifiers. + INCOMPATIBLE_USER_IDENTIFIER_FOR_ATTRIBUTES = 36; + + // A time in the future is not allowed. + FUTURE_TIME_NOT_ALLOWED = 37; + + // Last purchase date time cannot be less than acquisition date time. + LAST_PURCHASE_TIME_LESS_THAN_ACQUISITION_TIME = 38; + + // Only emails are accepted as user identifiers for shopping loyalty match. + // {-- api.dev/not-precedent: The identifier is not limited to ids, but + // also include other user info eg. phone numbers.} + CUSTOMER_IDENTIFIER_NOT_ALLOWED = 39; + + // Provided item ID is invalid. + INVALID_ITEM_ID = 40; + + // First purchase date time cannot be greater than the last purchase date + // time. + FIRST_PURCHASE_TIME_GREATER_THAN_LAST_PURCHASE_TIME = 42; + + // Provided lifecycle stage is invalid. + INVALID_LIFECYCLE_STAGE = 43; + + // The event value of the Customer Match user attribute is invalid. + INVALID_EVENT_VALUE = 44; + + // All the fields are not present in the EventAttribute of the Customer + // Match. + EVENT_ATTRIBUTE_ALL_FIELDS_ARE_REQUIRED = 45; + } + + +} diff --git a/google/ads/googleads/v11/errors/operation_access_denied_error.proto b/google/ads/googleads/v11/errors/operation_access_denied_error.proto new file mode 100644 index 000000000..ae19a829b --- /dev/null +++ b/google/ads/googleads/v11/errors/operation_access_denied_error.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "OperationAccessDeniedErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing operation access denied errors. + +// Container for enum describing possible operation access denied errors. +message OperationAccessDeniedErrorEnum { + // Enum describing possible operation access denied errors. + enum OperationAccessDeniedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Unauthorized invocation of a service's method (get, mutate, etc.) + ACTION_NOT_PERMITTED = 2; + + // Unauthorized CREATE operation in invoking a service's mutate method. + CREATE_OPERATION_NOT_PERMITTED = 3; + + // Unauthorized REMOVE operation in invoking a service's mutate method. + REMOVE_OPERATION_NOT_PERMITTED = 4; + + // Unauthorized UPDATE operation in invoking a service's mutate method. + UPDATE_OPERATION_NOT_PERMITTED = 5; + + // A mutate action is not allowed on this resource, from this client. + MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT = 6; + + // This operation is not permitted on this campaign type + OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE = 7; + + // A CREATE operation may not set status to REMOVED. + CREATE_AS_REMOVED_NOT_PERMITTED = 8; + + // This operation is not allowed because the resource is removed. + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 9; + + // This operation is not permitted on this ad group type. + OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE = 10; + + // The mutate is not allowed for this customer. + MUTATE_NOT_PERMITTED_FOR_CUSTOMER = 11; + } + + +} diff --git a/google/ads/googleads/v11/errors/operator_error.proto b/google/ads/googleads/v11/errors/operator_error.proto new file mode 100644 index 000000000..25a3eddea --- /dev/null +++ b/google/ads/googleads/v11/errors/operator_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "OperatorErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing operator errors. + +// Container for enum describing possible operator errors. +message OperatorErrorEnum { + // Enum describing possible operator errors. + enum OperatorError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Operator not supported. + OPERATOR_NOT_SUPPORTED = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/partial_failure_error.proto b/google/ads/googleads/v11/errors/partial_failure_error.proto new file mode 100644 index 000000000..06ff4b766 --- /dev/null +++ b/google/ads/googleads/v11/errors/partial_failure_error.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PartialFailureErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing partial failure errors. + +// Container for enum describing possible partial failure errors. +message PartialFailureErrorEnum { + // Enum describing possible partial failure errors. + enum PartialFailureError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The partial failure field was false in the request. + // This method requires this field be set to true. + PARTIAL_FAILURE_MODE_REQUIRED = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/payments_account_error.proto b/google/ads/googleads/v11/errors/payments_account_error.proto new file mode 100644 index 000000000..26b0446c6 --- /dev/null +++ b/google/ads/googleads/v11/errors/payments_account_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PaymentsAccountErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing payments account service errors. + +// Container for enum describing possible errors in payments account service. +message PaymentsAccountErrorEnum { + // Enum describing possible errors in payments account service. + enum PaymentsAccountError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Manager customers are not supported for payments account service. + NOT_SUPPORTED_FOR_MANAGER_CUSTOMER = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/policy_finding_error.proto b/google/ads/googleads/v11/errors/policy_finding_error.proto new file mode 100644 index 000000000..6d8824369 --- /dev/null +++ b/google/ads/googleads/v11/errors/policy_finding_error.proto @@ -0,0 +1,49 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PolicyFindingErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing policy finding errors. + +// Container for enum describing possible policy finding errors. +message PolicyFindingErrorEnum { + // Enum describing possible policy finding errors. + enum PolicyFindingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The resource has been disapproved since the policy summary includes + // policy topics of type PROHIBITED. + POLICY_FINDING = 2; + + // The given policy topic does not exist. + POLICY_TOPIC_NOT_FOUND = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/policy_validation_parameter_error.proto b/google/ads/googleads/v11/errors/policy_validation_parameter_error.proto new file mode 100644 index 000000000..9da555423 --- /dev/null +++ b/google/ads/googleads/v11/errors/policy_validation_parameter_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PolicyValidationParameterErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing policy validation parameter errors. + +// Container for enum describing possible policy validation parameter errors. +message PolicyValidationParameterErrorEnum { + // Enum describing possible policy validation parameter errors. + enum PolicyValidationParameterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Ignorable policy topics are not supported for the ad type. + UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS = 2; + + // Exempt policy violation keys are not supported for the ad type. + UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS = 3; + + // Cannot set ignorable policy topics and exempt policy violation keys in + // the same policy violation parameter. + CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/policy_violation_error.proto b/google/ads/googleads/v11/errors/policy_violation_error.proto new file mode 100644 index 000000000..2bff27bd5 --- /dev/null +++ b/google/ads/googleads/v11/errors/policy_violation_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "PolicyViolationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing policy violation errors. + +// Container for enum describing possible policy violation errors. +message PolicyViolationErrorEnum { + // Enum describing possible policy violation errors. + enum PolicyViolationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A policy was violated. See PolicyViolationDetails for more detail. + POLICY_ERROR = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/query_error.proto b/google/ads/googleads/v11/errors/query_error.proto new file mode 100644 index 000000000..cafee01f4 --- /dev/null +++ b/google/ads/googleads/v11/errors/query_error.proto @@ -0,0 +1,225 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "QueryErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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; + + // An invalid 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/google/ads/googleads/v11/errors/quota_error.proto b/google/ads/googleads/v11/errors/quota_error.proto new file mode 100644 index 000000000..9a698d80a --- /dev/null +++ b/google/ads/googleads/v11/errors/quota_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "QuotaErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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; + + // Access is prohibited. + ACCESS_PROHIBITED = 3; + + // Too many requests in a short amount of time. + RESOURCE_TEMPORARILY_EXHAUSTED = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/range_error.proto b/google/ads/googleads/v11/errors/range_error.proto new file mode 100644 index 000000000..000fd1ca7 --- /dev/null +++ b/google/ads/googleads/v11/errors/range_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RangeErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing range errors. + +// Container for enum describing possible range errors. +message RangeErrorEnum { + // Enum describing possible range errors. + enum RangeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Too low. + TOO_LOW = 2; + + // Too high. + TOO_HIGH = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/reach_plan_error.proto b/google/ads/googleads/v11/errors/reach_plan_error.proto new file mode 100644 index 000000000..c78f50ca9 --- /dev/null +++ b/google/ads/googleads/v11/errors/reach_plan_error.proto @@ -0,0 +1,46 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors generated from ReachPlanService. + +// Container for enum describing possible errors returned from +// the ReachPlanService. +message ReachPlanErrorEnum { + // Enum describing possible errors from ReachPlanService. + enum ReachPlanError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Not forecastable due to missing rate card data. + NOT_FORECASTABLE_MISSING_RATE = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/recommendation_error.proto b/google/ads/googleads/v11/errors/recommendation_error.proto new file mode 100644 index 000000000..58f6a0562 --- /dev/null +++ b/google/ads/googleads/v11/errors/recommendation_error.proto @@ -0,0 +1,88 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing errors from applying a recommendation. + +// Container for enum describing possible errors from applying a recommendation. +message RecommendationErrorEnum { + // Enum describing possible errors from applying a recommendation. + enum RecommendationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified budget amount is too low for example, lower than minimum + // currency unit or lower than ad group minimum cost-per-click. + BUDGET_AMOUNT_TOO_SMALL = 2; + + // The specified budget amount is too large. + BUDGET_AMOUNT_TOO_LARGE = 3; + + // The specified budget amount is not a valid amount, for example, not a + // multiple of minimum currency unit. + INVALID_BUDGET_AMOUNT = 4; + + // The specified keyword or ad violates ad policy. + POLICY_ERROR = 5; + + // The specified bid amount is not valid, for example, too many fractional + // digits, or negative amount. + INVALID_BID_AMOUNT = 6; + + // The number of keywords in ad group have reached the maximum allowed. + ADGROUP_KEYWORD_LIMIT = 7; + + // The recommendation requested to apply has already been applied. + RECOMMENDATION_ALREADY_APPLIED = 8; + + // The recommendation requested to apply has been invalidated. + RECOMMENDATION_INVALIDATED = 9; + + // The number of operations in a single request exceeds the maximum allowed. + TOO_MANY_OPERATIONS = 10; + + // There are no operations in the request. + NO_OPERATIONS = 11; + + // Operations with multiple recommendation types are not supported when + // partial failure mode is not enabled. + DIFFERENT_TYPES_NOT_SUPPORTED = 12; + + // Request contains multiple operations with the same resource_name. + DUPLICATE_RESOURCE_NAME = 13; + + // The recommendation requested to dismiss has already been dismissed. + RECOMMENDATION_ALREADY_DISMISSED = 14; + + // The recommendation apply request was malformed and invalid. + INVALID_APPLY_REQUEST = 15; + } + + +} diff --git a/google/ads/googleads/v11/errors/region_code_error.proto b/google/ads/googleads/v11/errors/region_code_error.proto new file mode 100644 index 000000000..dbcbd1c7a --- /dev/null +++ b/google/ads/googleads/v11/errors/region_code_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RegionCodeErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing region code errors. + +// Container for enum describing possible region code errors. +message RegionCodeErrorEnum { + // Enum describing possible region code errors. + enum RegionCodeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Invalid region code. + INVALID_REGION_CODE = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/request_error.proto b/google/ads/googleads/v11/errors/request_error.proto new file mode 100644 index 000000000..4c882188f --- /dev/null +++ b/google/ads/googleads/v11/errors/request_error.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RequestErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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; + + // 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 developer-token parameter is required for all requests. + DEVELOPER_TOKEN_PARAMETER_MISSING = 19; + + // The login-customer-id parameter is required for this request. + LOGIN_CUSTOMER_ID_PARAMETER_MISSING = 20; + + // 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; + } + + +} diff --git a/google/ads/googleads/v11/errors/resource_access_denied_error.proto b/google/ads/googleads/v11/errors/resource_access_denied_error.proto new file mode 100644 index 000000000..f1026b3bf --- /dev/null +++ b/google/ads/googleads/v11/errors/resource_access_denied_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ResourceAccessDeniedErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing resource access denied errors. + +// Container for enum describing possible resource access denied errors. +message ResourceAccessDeniedErrorEnum { + // Enum describing possible resource access denied errors. + enum ResourceAccessDeniedError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // User did not have write access. + WRITE_ACCESS_DENIED = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/resource_count_limit_exceeded_error.proto b/google/ads/googleads/v11/errors/resource_count_limit_exceeded_error.proto new file mode 100644 index 000000000..a36725e5d --- /dev/null +++ b/google/ads/googleads/v11/errors/resource_count_limit_exceeded_error.proto @@ -0,0 +1,91 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ResourceCountLimitExceededErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing resource count limit exceeded errors. + +// Container for enum describing possible resource count limit exceeded errors. +message ResourceCountLimitExceededErrorEnum { + // Enum describing possible resource count limit exceeded errors. + enum ResourceCountLimitExceededError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Indicates that this request would exceed the number of allowed resources + // for the Google Ads account. The exact resource type and limit being + // checked can be inferred from accountLimitType. + ACCOUNT_LIMIT = 2; + + // Indicates that this request would exceed the number of allowed resources + // in a Campaign. The exact resource type and limit being checked can be + // inferred from accountLimitType, and the numeric id of the + // Campaign involved is given by enclosingId. + CAMPAIGN_LIMIT = 3; + + // Indicates that this request would exceed the number of allowed resources + // in an ad group. The exact resource type and limit being checked can be + // inferred from accountLimitType, and the numeric id of the + // ad group involved is given by enclosingId. + ADGROUP_LIMIT = 4; + + // Indicates that this request would exceed the number of allowed resources + // in an ad group ad. The exact resource type and limit being checked can + // be inferred from accountLimitType, and the enclosingId + // contains the ad group id followed by the ad id, separated by a single + // comma (,). + AD_GROUP_AD_LIMIT = 5; + + // Indicates that this request would exceed the number of allowed resources + // in an ad group criterion. The exact resource type and limit being checked + // can be inferred from accountLimitType, and the + // enclosingId contains the ad group id followed by the + // criterion id, separated by a single comma (,). + AD_GROUP_CRITERION_LIMIT = 6; + + // Indicates that this request would exceed the number of allowed resources + // in this shared set. The exact resource type and limit being checked can + // be inferred from accountLimitType, and the numeric id of the + // shared set involved is given by enclosingId. + SHARED_SET_LIMIT = 7; + + // Exceeds a limit related to a matching function. + MATCHING_FUNCTION_LIMIT = 8; + + // The response for this request would exceed the maximum number of rows + // that can be returned. + RESPONSE_ROW_LIMIT_EXCEEDED = 9; + + // This request would exceed a limit on the number of allowed resources. + // The details of which type of limit was exceeded will eventually be + // returned in ErrorDetails. + RESOURCE_LIMIT = 10; + } + + +} diff --git a/google/ads/googleads/v11/errors/setting_error.proto b/google/ads/googleads/v11/errors/setting_error.proto new file mode 100644 index 000000000..e1ae6c39b --- /dev/null +++ b/google/ads/googleads/v11/errors/setting_error.proto @@ -0,0 +1,88 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SettingErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing setting errors. + +// Container for enum describing possible setting errors. +message SettingErrorEnum { + // Enum describing possible setting errors. + enum SettingError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The campaign setting is not available for this Google Ads account. + SETTING_TYPE_IS_NOT_AVAILABLE = 3; + + // The setting is not compatible with the campaign. + SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN = 4; + + // The supplied TargetingSetting contains an invalid CriterionTypeGroup. See + // CriterionTypeGroup documentation for CriterionTypeGroups allowed + // in Campaign or AdGroup TargetingSettings. + TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP = 5; + + // TargetingSetting must not explicitly + // set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, + // PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in + // which case the system will set them to true automatically). + TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL = 6; + + // TargetingSetting cannot change any of + // the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, + // INCOME_RANGE) from true to false. + TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP = 7; + + // At least one feed id should be present. + DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT = 8; + + // The supplied DynamicSearchAdsSetting contains an invalid domain name. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME = 9; + + // The supplied DynamicSearchAdsSetting contains a subdomain name. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME = 10; + + // The supplied DynamicSearchAdsSetting contains an invalid language code. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE = 11; + + // TargetingSettings in search campaigns should not have + // CriterionTypeGroup.PLACEMENT set to targetAll. + TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN = 12; + + // The setting value is not compatible with the campaign type. + SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN = 20; + + // Switching from observation setting to targeting setting is not allowed + // for Customer Match lists. See + // https://support.google.com/google-ads/answer/6299717. + BID_ONLY_IS_NOT_ALLOWED_TO_BE_MODIFIED_WITH_CUSTOMER_MATCH_TARGETING = 21; + } + + +} diff --git a/google/ads/googleads/v11/errors/shared_criterion_error.proto b/google/ads/googleads/v11/errors/shared_criterion_error.proto new file mode 100644 index 000000000..5d3d79079 --- /dev/null +++ b/google/ads/googleads/v11/errors/shared_criterion_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SharedCriterionErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing shared criterion errors. + +// Container for enum describing possible shared criterion errors. +message SharedCriterionErrorEnum { + // Enum describing possible shared criterion errors. + enum SharedCriterionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The criterion is not appropriate for the shared set type. + CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE = 2; + } + + +} diff --git a/google/ads/googleads/v11/errors/shared_set_error.proto b/google/ads/googleads/v11/errors/shared_set_error.proto new file mode 100644 index 000000000..6b8d557eb --- /dev/null +++ b/google/ads/googleads/v11/errors/shared_set_error.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing shared set errors. + +// Container for enum describing possible shared set errors. +message SharedSetErrorEnum { + // Enum describing possible shared set errors. + enum SharedSetError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The customer cannot create this type of shared set. + CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE = 2; + + // A shared set with this name already exists. + DUPLICATE_NAME = 3; + + // Removed shared sets cannot be mutated. + SHARED_SET_REMOVED = 4; + + // The shared set cannot be removed because it is in use. + SHARED_SET_IN_USE = 5; + } + + +} diff --git a/google/ads/googleads/v11/errors/size_limit_error.proto b/google/ads/googleads/v11/errors/size_limit_error.proto new file mode 100644 index 000000000..c73e994a2 --- /dev/null +++ b/google/ads/googleads/v11/errors/size_limit_error.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SizeLimitErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::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/google/ads/googleads/v11/errors/string_format_error.proto b/google/ads/googleads/v11/errors/string_format_error.proto new file mode 100644 index 000000000..5b5875f93 --- /dev/null +++ b/google/ads/googleads/v11/errors/string_format_error.proto @@ -0,0 +1,48 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "StringFormatErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing string format errors. + +// Container for enum describing possible string format errors. +message StringFormatErrorEnum { + // Enum describing possible string format errors. + enum StringFormatError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The input string value contains disallowed characters. + ILLEGAL_CHARS = 2; + + // The input string value is invalid for the associated field. + INVALID_FORMAT = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/string_length_error.proto b/google/ads/googleads/v11/errors/string_length_error.proto new file mode 100644 index 000000000..a60f8e2fe --- /dev/null +++ b/google/ads/googleads/v11/errors/string_length_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "StringLengthErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing string length errors. + +// Container for enum describing possible string length errors. +message StringLengthErrorEnum { + // Enum describing possible string length errors. + enum StringLengthError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified field should have a least one non-whitespace character in + // it. + EMPTY = 4; + + // Too short. + TOO_SHORT = 2; + + // Too long. + TOO_LONG = 3; + } + + +} diff --git a/google/ads/googleads/v11/errors/third_party_app_analytics_link_error.proto b/google/ads/googleads/v11/errors/third_party_app_analytics_link_error.proto new file mode 100644 index 000000000..5ae8aa6d6 --- /dev/null +++ b/google/ads/googleads/v11/errors/third_party_app_analytics_link_error.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ThirdPartyAppAnalyticsLinkErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing ThirdPartyAppAnalyticsLink errors. + +// Container for enum describing possible third party app analytics link errors. +message ThirdPartyAppAnalyticsLinkErrorEnum { + // Enum describing possible third party app analytics link errors. + enum ThirdPartyAppAnalyticsLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The provided analytics provider ID is invalid. + INVALID_ANALYTICS_PROVIDER_ID = 2; + + // The provided mobile app ID is invalid. + INVALID_MOBILE_APP_ID = 3; + + // The mobile app corresponding to the provided app ID is not + // active/enabled. + MOBILE_APP_IS_NOT_ENABLED = 4; + + // Regenerating shareable link ID is only allowed on active links + CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK = 5; + } + + +} diff --git a/google/ads/googleads/v11/errors/time_zone_error.proto b/google/ads/googleads/v11/errors/time_zone_error.proto new file mode 100644 index 000000000..8f81419e3 --- /dev/null +++ b/google/ads/googleads/v11/errors/time_zone_error.proto @@ -0,0 +1,45 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "TimeZoneErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing time zone errors. + +// Container for enum describing possible time zone errors. +message TimeZoneErrorEnum { + // Enum describing possible currency code errors. + enum TimeZoneError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Time zone is not valid. + INVALID_TIME_ZONE = 5; + } + + +} diff --git a/google/ads/googleads/v11/errors/url_field_error.proto b/google/ads/googleads/v11/errors/url_field_error.proto new file mode 100644 index 000000000..adf563308 --- /dev/null +++ b/google/ads/googleads/v11/errors/url_field_error.proto @@ -0,0 +1,216 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "UrlFieldErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing url field errors. + +// Container for enum describing possible url field errors. +message UrlFieldErrorEnum { + // Enum describing possible url field errors. + enum UrlFieldError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The tracking url template is invalid. + INVALID_TRACKING_URL_TEMPLATE = 2; + + // The tracking url template contains invalid tag. + INVALID_TAG_IN_TRACKING_URL_TEMPLATE = 3; + + // The tracking url template must contain at least one tag (for example, + // {lpurl}), This applies only to tracking url template associated with + // website ads or product ads. + MISSING_TRACKING_URL_TEMPLATE_TAG = 4; + + // The tracking url template must start with a valid protocol (or lpurl + // tag). + MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 5; + + // The tracking url template starts with an invalid protocol. + INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 6; + + // The tracking url template contains illegal characters. + MALFORMED_TRACKING_URL_TEMPLATE = 7; + + // The tracking url template must contain a host name (or lpurl tag). + MISSING_HOST_IN_TRACKING_URL_TEMPLATE = 8; + + // The tracking url template has an invalid or missing top level domain + // extension. + INVALID_TLD_IN_TRACKING_URL_TEMPLATE = 9; + + // The tracking url template contains nested occurrences of the same + // conditional tag (for example, {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG = 10; + + // The final url is invalid. + INVALID_FINAL_URL = 11; + + // The final url contains invalid tag. + INVALID_TAG_IN_FINAL_URL = 12; + + // The final url contains nested occurrences of the same conditional tag + // (for example, {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_FINAL_URL_TAG = 13; + + // The final url must start with a valid protocol. + MISSING_PROTOCOL_IN_FINAL_URL = 14; + + // The final url starts with an invalid protocol. + INVALID_PROTOCOL_IN_FINAL_URL = 15; + + // The final url contains illegal characters. + MALFORMED_FINAL_URL = 16; + + // The final url must contain a host name. + MISSING_HOST_IN_FINAL_URL = 17; + + // The tracking url template has an invalid or missing top level domain + // extension. + INVALID_TLD_IN_FINAL_URL = 18; + + // The final mobile url is invalid. + INVALID_FINAL_MOBILE_URL = 19; + + // The final mobile url contains invalid tag. + INVALID_TAG_IN_FINAL_MOBILE_URL = 20; + + // The final mobile url contains nested occurrences of the same conditional + // tag (for example, {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG = 21; + + // The final mobile url must start with a valid protocol. + MISSING_PROTOCOL_IN_FINAL_MOBILE_URL = 22; + + // The final mobile url starts with an invalid protocol. + INVALID_PROTOCOL_IN_FINAL_MOBILE_URL = 23; + + // The final mobile url contains illegal characters. + MALFORMED_FINAL_MOBILE_URL = 24; + + // The final mobile url must contain a host name. + MISSING_HOST_IN_FINAL_MOBILE_URL = 25; + + // The tracking url template has an invalid or missing top level domain + // extension. + INVALID_TLD_IN_FINAL_MOBILE_URL = 26; + + // The final app url is invalid. + INVALID_FINAL_APP_URL = 27; + + // The final app url contains invalid tag. + INVALID_TAG_IN_FINAL_APP_URL = 28; + + // The final app url contains nested occurrences of the same conditional tag + // (for example, {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_FINAL_APP_URL_TAG = 29; + + // More than one app url found for the same OS type. + MULTIPLE_APP_URLS_FOR_OSTYPE = 30; + + // The OS type given for an app url is not valid. + INVALID_OSTYPE = 31; + + // The protocol given for an app url is not valid. (For example, + // "android-app://") + INVALID_PROTOCOL_FOR_APP_URL = 32; + + // The package id (app id) given for an app url is not valid. + INVALID_PACKAGE_ID_FOR_APP_URL = 33; + + // The number of url custom parameters for an resource exceeds the maximum + // limit allowed. + URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT = 34; + + // An invalid character appears in the parameter key. + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY = 39; + + // An invalid character appears in the parameter value. + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE = 40; + + // The url custom parameter value fails url tag validation. + INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE = 41; + + // The custom parameter contains nested occurrences of the same conditional + // tag (for example, {ifmobile:{ifmobile:x}}). + REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG = 42; + + // The protocol (http:// or https://) is missing. + MISSING_PROTOCOL = 43; + + // Unsupported protocol in URL. Only http and https are supported. + INVALID_PROTOCOL = 52; + + // The url is invalid. + INVALID_URL = 44; + + // Destination Url is deprecated. + DESTINATION_URL_DEPRECATED = 45; + + // The url contains invalid tag. + INVALID_TAG_IN_URL = 46; + + // The url must contain at least one tag (for example, {lpurl}). + MISSING_URL_TAG = 47; + + // Duplicate url id. + DUPLICATE_URL_ID = 48; + + // Invalid url id. + INVALID_URL_ID = 49; + + // The final url suffix cannot begin with '?' or '&' characters and must be + // a valid query string. + FINAL_URL_SUFFIX_MALFORMED = 50; + + // The final url suffix cannot contain {lpurl} related or {ignore} tags. + INVALID_TAG_IN_FINAL_URL_SUFFIX = 51; + + // The top level domain is invalid, for example, not a public top level + // domain listed in publicsuffix.org. + INVALID_TOP_LEVEL_DOMAIN = 53; + + // Malformed top level domain in URL. + MALFORMED_TOP_LEVEL_DOMAIN = 54; + + // Malformed URL. + MALFORMED_URL = 55; + + // No host found in URL. + MISSING_HOST = 56; + + // Custom parameter value cannot be null. + NULL_CUSTOM_PARAMETER_VALUE = 57; + + // Track parameter is not supported. + VALUE_TRACK_PARAMETER_NOT_SUPPORTED = 58; + } + + +} diff --git a/google/ads/googleads/v11/errors/user_data_error.proto b/google/ads/googleads/v11/errors/user_data_error.proto new file mode 100644 index 000000000..97d84549b --- /dev/null +++ b/google/ads/googleads/v11/errors/user_data_error.proto @@ -0,0 +1,52 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "UserDataErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing user data errors. + +// Container for enum describing possible user data errors. +message UserDataErrorEnum { + // Enum describing possible request errors. + enum UserDataError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Customer is not allowed to perform operations related to Customer Match. + OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED = 2; + + // Maximum number of user identifiers allowed for each request is 100 and + // for each operation is 20. + TOO_MANY_USER_IDENTIFIERS = 3; + + // Current user list is not applicable for the given customer. + USER_LIST_NOT_APPLICABLE = 4; + } + + +} diff --git a/google/ads/googleads/v11/errors/user_list_error.proto b/google/ads/googleads/v11/errors/user_list_error.proto new file mode 100644 index 000000000..bc9f17c44 --- /dev/null +++ b/google/ads/googleads/v11/errors/user_list_error.proto @@ -0,0 +1,127 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "UserListErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing user list errors. + +// Container for enum describing possible user list errors. +message UserListErrorEnum { + // Enum describing possible user list errors. + enum UserListError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Creating and updating external remarketing user lists is not supported. + EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED = 2; + + // Concrete type of user list is required. + CONCRETE_TYPE_REQUIRED = 3; + + // Creating/updating user list conversion types requires specifying the + // conversion type Id. + CONVERSION_TYPE_ID_REQUIRED = 4; + + // Remarketing user list cannot have duplicate conversion types. + DUPLICATE_CONVERSION_TYPES = 5; + + // Conversion type is invalid/unknown. + INVALID_CONVERSION_TYPE = 6; + + // User list description is empty or invalid. + INVALID_DESCRIPTION = 7; + + // User list name is empty or invalid. + INVALID_NAME = 8; + + // Type of the UserList does not match. + INVALID_TYPE = 9; + + // Embedded logical user lists are not allowed. + CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND = 10; + + // User list rule operand is invalid. + INVALID_USER_LIST_LOGICAL_RULE_OPERAND = 11; + + // Name is already being used for another user list for the account. + NAME_ALREADY_USED = 12; + + // Name is required when creating a new conversion type. + NEW_CONVERSION_TYPE_NAME_REQUIRED = 13; + + // The given conversion type name has been used. + CONVERSION_TYPE_NAME_ALREADY_USED = 14; + + // Only an owner account may edit a user list. + OWNERSHIP_REQUIRED_FOR_SET = 15; + + // Creating user list without setting type in oneof user_list field, or + // creating/updating read-only user list types is not allowed. + USER_LIST_MUTATE_NOT_SUPPORTED = 16; + + // Rule is invalid. + INVALID_RULE = 17; + + // The specified date range is empty. + INVALID_DATE_RANGE = 27; + + // A UserList which is privacy sensitive or legal rejected cannot be mutated + // by external users. + CAN_NOT_MUTATE_SENSITIVE_USERLIST = 28; + + // Maximum number of rulebased user lists a customer can have. + MAX_NUM_RULEBASED_USERLISTS = 29; + + // BasicUserList's billable record field cannot be modified once it is set. + CANNOT_MODIFY_BILLABLE_RECORD_COUNT = 30; + + // crm_based_user_list.app_id field must be set when upload_key_type is + // MOBILE_ADVERTISING_ID. + APP_ID_NOT_SET = 31; + + // Name of the user list is reserved for system generated lists and cannot + // be used. + USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST = 32; + + // Advertiser needs to be on the allow-list to use remarketing lists created + // from advertiser uploaded data (for example, Customer Match lists). + ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA = 37; + + // The provided rule_type is not supported for the user list. + RULE_TYPE_IS_NOT_SUPPORTED = 34; + + // Similar user list cannot be used as a logical user list operand. + CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND = 35; + + // Logical user list should not have a mix of CRM based user list and other + // types of lists in its rules. + CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS = 36; + } + + +} diff --git a/google/ads/googleads/v11/errors/youtube_video_registration_error.proto b/google/ads/googleads/v11/errors/youtube_video_registration_error.proto new file mode 100644 index 000000000..4b5fd8ac6 --- /dev/null +++ b/google/ads/googleads/v11/errors/youtube_video_registration_error.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "YoutubeVideoRegistrationErrorProto"; +option java_package = "com.google.ads.googleads.v11.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V11::Errors"; + +// Proto file describing YouTube video registration errors. + +// Container for enum describing YouTube video registration errors. +message YoutubeVideoRegistrationErrorEnum { + // Enum describing YouTube video registration errors. + enum YoutubeVideoRegistrationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Video to be registered wasn't found. + VIDEO_NOT_FOUND = 2; + + // Video to be registered is not accessible (for example, private). + VIDEO_NOT_ACCESSIBLE = 3; + + // Video to be registered is not eligible (for example, mature content). + VIDEO_NOT_ELIGIBLE = 4; + } + + +} diff --git a/google/ads/googleads/v11/googleads_gapic.yaml b/google/ads/googleads/v11/googleads_gapic.yaml new file mode 100644 index 000000000..74a7a5363 --- /dev/null +++ b/google/ads/googleads/v11/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.V11.Services + go: + package_name: google.golang.org/google/ads/googleads/v11/services + java: + package_name: com.google.ads.googleads.v11.services + nodejs: + package_name: v11.services + php: + package_name: Google\Ads\GoogleAds\V11\Services + python: + package_name: google.ads.googleads_v11.gapic.services + ruby: + package_name: Google::Ads::Googleads::V11::Services +interfaces: +- name: google.ads.googleads.v11.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/google/ads/googleads/v11/googleads_grpc_service_config.json b/google/ads/googleads/v11/googleads_grpc_service_config.json new file mode 100755 index 000000000..2c9b0dfec --- /dev/null +++ b/google/ads/googleads/v11/googleads_grpc_service_config.json @@ -0,0 +1,327 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.ads.googleads.v11.services.AccountBudgetProposalService" + }, + { + "service": "google.ads.googleads.v11.services.AccountLinkService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupAdLabelService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupAdService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupAssetService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupBidModifierService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupCriterionCustomizerService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupCriterionLabelService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupCriterionService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupCustomizerService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupExtensionSettingService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupFeedService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupLabelService" + }, + { + "service": "google.ads.googleads.v11.services.AdGroupService" + }, + { + "service": "google.ads.googleads.v11.services.AdParameterService" + }, + { + "service": "google.ads.googleads.v11.services.AdService" + }, + { + "service": "google.ads.googleads.v11.services.AssetGroupAssetService" + }, + { + "service": "google.ads.googleads.v11.services.AssetGroupListingGroupFilterService" + }, + { + "service": "google.ads.googleads.v11.services.AssetGroupService" + }, + { + "service": "google.ads.googleads.v11.services.AssetGroupSignalService" + }, + { + "service": "google.ads.googleads.v11.services.AssetService" + }, + { + "service": "google.ads.googleads.v11.services.AssetSetAssetService" + }, + { + "service": "google.ads.googleads.v11.services.AssetSetService" + }, + { + "service": "google.ads.googleads.v11.services.AudienceInsightsService" + }, + { + "service": "google.ads.googleads.v11.services.AudienceService" + }, + { + "service": "google.ads.googleads.v11.services.BatchJobService" + }, + { + "service": "google.ads.googleads.v11.services.BiddingDataExclusionService" + }, + { + "service": "google.ads.googleads.v11.services.BiddingSeasonalityAdjustmentService" + }, + { + "service": "google.ads.googleads.v11.services.BiddingStrategyService" + }, + { + "service": "google.ads.googleads.v11.services.BillingSetupService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignAssetService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignAssetSetService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignBidModifierService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignBudgetService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignConversionGoalService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignCriterionService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignCustomizerService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignDraftService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignExperimentService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignExtensionSettingService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignFeedService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignGroupService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignLabelService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignService" + }, + { + "service": "google.ads.googleads.v11.services.CampaignSharedSetService" + }, + { + "service": "google.ads.googleads.v11.services.ConversionActionService" + }, + { + "service": "google.ads.googleads.v11.services.ConversionAdjustmentUploadService" + }, + { + "service": "google.ads.googleads.v11.services.ConversionCustomVariableService" + }, + { + "service": "google.ads.googleads.v11.services.ConversionGoalCampaignConfigService" + }, + { + "service": "google.ads.googleads.v11.services.ConversionUploadService" + }, + { + "service": "google.ads.googleads.v11.services.ConversionValueRuleService" + }, + { + "service": "google.ads.googleads.v11.services.ConversionValueRuleSetService" + }, + { + "service": "google.ads.googleads.v11.services.CustomAudienceService" + }, + { + "service": "google.ads.googleads.v11.services.CustomConversionGoalService" + }, + { + "service": "google.ads.googleads.v11.services.CustomInterestService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerAssetService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerClientLinkService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerConversionGoalService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerCustomizerService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerExtensionSettingService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerFeedService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerLabelService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerManagerLinkService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerNegativeCriterionService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerUserAccessInvitationService" + }, + { + "service": "google.ads.googleads.v11.services.CustomerUserAccessService" + }, + { + "service": "google.ads.googleads.v11.services.CustomizerAttributeService" + }, + { + "service": "google.ads.googleads.v11.services.ExperimentArmService" + }, + { + "service": "google.ads.googleads.v11.services.ExperimentService" + }, + { + "service": "google.ads.googleads.v11.services.ExtensionFeedItemService" + }, + { + "service": "google.ads.googleads.v11.services.FeedItemService" + }, + { + "service": "google.ads.googleads.v11.services.FeedItemSetLinkService" + }, + { + "service": "google.ads.googleads.v11.services.FeedItemSetService" + }, + { + "service": "google.ads.googleads.v11.services.FeedItemTargetService" + }, + { + "service": "google.ads.googleads.v11.services.FeedMappingService" + }, + { + "service": "google.ads.googleads.v11.services.FeedService" + }, + { + "service": "google.ads.googleads.v11.services.GeoTargetConstantService" + }, + { + "service": "google.ads.googleads.v11.services.GoogleAdsFieldService" + }, + { + "service": "google.ads.googleads.v11.services.GoogleAdsService" + }, + { + "service": "google.ads.googleads.v11.services.InvoiceService" + }, + { + "service": "google.ads.googleads.v11.services.KeywordPlanAdGroupKeywordService" + }, + { + "service": "google.ads.googleads.v11.services.KeywordPlanAdGroupService" + }, + { + "service": "google.ads.googleads.v11.services.KeywordPlanCampaignKeywordService" + }, + { + "service": "google.ads.googleads.v11.services.KeywordPlanCampaignService" + }, + { + "service": "google.ads.googleads.v11.services.KeywordPlanIdeaService" + }, + { + "service": "google.ads.googleads.v11.services.KeywordPlanService" + }, + { + "service": "google.ads.googleads.v11.services.KeywordThemeConstantService" + }, + { + "service": "google.ads.googleads.v11.services.LabelService" + }, + { + "service": "google.ads.googleads.v11.services.MediaFileService" + }, + { + "service": "google.ads.googleads.v11.services.MerchantCenterLinkService" + }, + { + "service": "google.ads.googleads.v11.services.OfflineUserDataJobService" + }, + { + "service": "google.ads.googleads.v11.services.PaymentsAccountService" + }, + { + "service": "google.ads.googleads.v11.services.ReachPlanService" + }, + { + "service": "google.ads.googleads.v11.services.RecommendationService" + }, + { + "service": "google.ads.googleads.v11.services.RemarketingActionService" + }, + { + "service": "google.ads.googleads.v11.services.SharedCriterionService" + }, + { + "service": "google.ads.googleads.v11.services.SharedSetService" + }, + { + "service": "google.ads.googleads.v11.services.SmartCampaignSettingService" + }, + { + "service": "google.ads.googleads.v11.services.SmartCampaignSuggestService" + }, + { + "service": "google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService" + }, + { + "service": "google.ads.googleads.v11.services.UserDataService" + }, + { + "service": "google.ads.googleads.v11.services.UserListService" + } + ], + "timeout": "14400s", + "retryPolicy": { + "initialBackoff": "5s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE", + "DEADLINE_EXCEEDED" + ] + } + } + ] +} diff --git a/google/ads/googleads/v11/googleads_v11.yaml b/google/ads/googleads/v11/googleads_v11.yaml new file mode 100644 index 000000000..c087d39b9 --- /dev/null +++ b/google/ads/googleads/v11/googleads_v11.yaml @@ -0,0 +1,811 @@ +type: google.api.Service +config_version: 3 +name: googleads.googleapis.com +title: Google Ads API + +apis: +- name: google.ads.googleads.v11.services.AccountBudgetProposalService +- name: google.ads.googleads.v11.services.AccountLinkService +- name: google.ads.googleads.v11.services.AdGroupAdLabelService +- name: google.ads.googleads.v11.services.AdGroupAdService +- name: google.ads.googleads.v11.services.AdGroupAssetService +- name: google.ads.googleads.v11.services.AdGroupBidModifierService +- name: google.ads.googleads.v11.services.AdGroupCriterionCustomizerService +- name: google.ads.googleads.v11.services.AdGroupCriterionLabelService +- name: google.ads.googleads.v11.services.AdGroupCriterionService +- name: google.ads.googleads.v11.services.AdGroupCustomizerService +- name: google.ads.googleads.v11.services.AdGroupExtensionSettingService +- name: google.ads.googleads.v11.services.AdGroupFeedService +- name: google.ads.googleads.v11.services.AdGroupLabelService +- name: google.ads.googleads.v11.services.AdGroupService +- name: google.ads.googleads.v11.services.AdParameterService +- name: google.ads.googleads.v11.services.AdService +- name: google.ads.googleads.v11.services.AssetGroupAssetService +- name: google.ads.googleads.v11.services.AssetGroupListingGroupFilterService +- name: google.ads.googleads.v11.services.AssetGroupService +- name: google.ads.googleads.v11.services.AssetGroupSignalService +- name: google.ads.googleads.v11.services.AssetService +- name: google.ads.googleads.v11.services.AssetSetAssetService +- name: google.ads.googleads.v11.services.AssetSetService +- name: google.ads.googleads.v11.services.AudienceInsightsService +- name: google.ads.googleads.v11.services.AudienceService +- name: google.ads.googleads.v11.services.BatchJobService +- name: google.ads.googleads.v11.services.BiddingDataExclusionService +- name: google.ads.googleads.v11.services.BiddingSeasonalityAdjustmentService +- name: google.ads.googleads.v11.services.BiddingStrategyService +- name: google.ads.googleads.v11.services.BillingSetupService +- name: google.ads.googleads.v11.services.CampaignAssetService +- name: google.ads.googleads.v11.services.CampaignAssetSetService +- name: google.ads.googleads.v11.services.CampaignBidModifierService +- name: google.ads.googleads.v11.services.CampaignBudgetService +- name: google.ads.googleads.v11.services.CampaignConversionGoalService +- name: google.ads.googleads.v11.services.CampaignCriterionService +- name: google.ads.googleads.v11.services.CampaignCustomizerService +- name: google.ads.googleads.v11.services.CampaignDraftService +- name: google.ads.googleads.v11.services.CampaignExperimentService +- name: google.ads.googleads.v11.services.CampaignExtensionSettingService +- name: google.ads.googleads.v11.services.CampaignFeedService +- name: google.ads.googleads.v11.services.CampaignGroupService +- name: google.ads.googleads.v11.services.CampaignLabelService +- name: google.ads.googleads.v11.services.CampaignService +- name: google.ads.googleads.v11.services.CampaignSharedSetService +- name: google.ads.googleads.v11.services.ConversionActionService +- name: google.ads.googleads.v11.services.ConversionAdjustmentUploadService +- name: google.ads.googleads.v11.services.ConversionCustomVariableService +- name: google.ads.googleads.v11.services.ConversionGoalCampaignConfigService +- name: google.ads.googleads.v11.services.ConversionUploadService +- name: google.ads.googleads.v11.services.ConversionValueRuleService +- name: google.ads.googleads.v11.services.ConversionValueRuleSetService +- name: google.ads.googleads.v11.services.CustomAudienceService +- name: google.ads.googleads.v11.services.CustomConversionGoalService +- name: google.ads.googleads.v11.services.CustomInterestService +- name: google.ads.googleads.v11.services.CustomerAssetService +- name: google.ads.googleads.v11.services.CustomerClientLinkService +- name: google.ads.googleads.v11.services.CustomerConversionGoalService +- name: google.ads.googleads.v11.services.CustomerCustomizerService +- name: google.ads.googleads.v11.services.CustomerExtensionSettingService +- name: google.ads.googleads.v11.services.CustomerFeedService +- name: google.ads.googleads.v11.services.CustomerLabelService +- name: google.ads.googleads.v11.services.CustomerManagerLinkService +- name: google.ads.googleads.v11.services.CustomerNegativeCriterionService +- name: google.ads.googleads.v11.services.CustomerService +- name: google.ads.googleads.v11.services.CustomerUserAccessInvitationService +- name: google.ads.googleads.v11.services.CustomerUserAccessService +- name: google.ads.googleads.v11.services.CustomizerAttributeService +- name: google.ads.googleads.v11.services.ExperimentArmService +- name: google.ads.googleads.v11.services.ExperimentService +- name: google.ads.googleads.v11.services.ExtensionFeedItemService +- name: google.ads.googleads.v11.services.FeedItemService +- name: google.ads.googleads.v11.services.FeedItemSetLinkService +- name: google.ads.googleads.v11.services.FeedItemSetService +- name: google.ads.googleads.v11.services.FeedItemTargetService +- name: google.ads.googleads.v11.services.FeedMappingService +- name: google.ads.googleads.v11.services.FeedService +- name: google.ads.googleads.v11.services.GeoTargetConstantService +- name: google.ads.googleads.v11.services.GoogleAdsFieldService +- name: google.ads.googleads.v11.services.GoogleAdsService +- name: google.ads.googleads.v11.services.InvoiceService +- name: google.ads.googleads.v11.services.KeywordPlanAdGroupKeywordService +- name: google.ads.googleads.v11.services.KeywordPlanAdGroupService +- name: google.ads.googleads.v11.services.KeywordPlanCampaignKeywordService +- name: google.ads.googleads.v11.services.KeywordPlanCampaignService +- name: google.ads.googleads.v11.services.KeywordPlanIdeaService +- name: google.ads.googleads.v11.services.KeywordPlanService +- name: google.ads.googleads.v11.services.KeywordThemeConstantService +- name: google.ads.googleads.v11.services.LabelService +- name: google.ads.googleads.v11.services.MediaFileService +- name: google.ads.googleads.v11.services.MerchantCenterLinkService +- name: google.ads.googleads.v11.services.OfflineUserDataJobService +- name: google.ads.googleads.v11.services.PaymentsAccountService +- name: google.ads.googleads.v11.services.ReachPlanService +- name: google.ads.googleads.v11.services.RecommendationService +- name: google.ads.googleads.v11.services.RemarketingActionService +- name: google.ads.googleads.v11.services.SharedCriterionService +- name: google.ads.googleads.v11.services.SharedSetService +- name: google.ads.googleads.v11.services.SmartCampaignSettingService +- name: google.ads.googleads.v11.services.SmartCampaignSuggestService +- name: google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService +- name: google.ads.googleads.v11.services.UserDataService +- name: google.ads.googleads.v11.services.UserListService + +types: +- name: google.ads.googleads.v11.errors.GoogleAdsFailure +- name: google.ads.googleads.v11.resources.BatchJob.BatchJobMetadata +- name: google.ads.googleads.v11.services.CreateCampaignExperimentMetadata +- name: google.ads.googleads.v11.services.PromoteExperimentMetadata +- name: google.ads.googleads.v11.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.v11.services.AccountBudgetProposalService.MutateAccountBudgetProposal + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AccountLinkService.CreateAccountLink + deadline: 600.0 + - selector: google.ads.googleads.v11.services.AccountLinkService.MutateAccountLink + deadline: 600.0 + - selector: google.ads.googleads.v11.services.AdGroupAdLabelService.MutateAdGroupAdLabels + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupAdService.MutateAdGroupAds + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupAssetService.MutateAdGroupAssets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupBidModifierService.MutateAdGroupBidModifiers + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupCriterionService.MutateAdGroupCriteria + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupCustomizerService.MutateAdGroupCustomizers + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupFeedService.MutateAdGroupFeeds + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupLabelService.MutateAdGroupLabels + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdGroupService.MutateAdGroups + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdParameterService.MutateAdParameters + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdService.GetAd + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AdService.MutateAds + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AssetGroupAssetService.MutateAssetGroupAssets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AssetGroupService.MutateAssetGroups + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AssetGroupSignalService.MutateAssetGroupSignals + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AssetService.MutateAssets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AssetSetAssetService.MutateAssetSetAssets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.AssetSetService.MutateAssetSets + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.AudienceInsightsService.*' + deadline: 600.0 + - selector: google.ads.googleads.v11.services.AudienceService.MutateAudiences + deadline: 600.0 + - selector: 'google.ads.googleads.v11.services.BatchJobService.*' + deadline: 60.0 + - selector: google.ads.googleads.v11.services.BiddingDataExclusionService.MutateBiddingDataExclusions + deadline: 60.0 + - selector: google.ads.googleads.v11.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments + deadline: 60.0 + - selector: google.ads.googleads.v11.services.BiddingStrategyService.MutateBiddingStrategies + deadline: 60.0 + - selector: google.ads.googleads.v11.services.BillingSetupService.MutateBillingSetup + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignAssetService.MutateCampaignAssets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignAssetSetService.MutateCampaignAssetSets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignBidModifierService.MutateCampaignBidModifiers + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignBudgetService.MutateCampaignBudgets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignConversionGoalService.MutateCampaignConversionGoals + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignCriterionService.MutateCampaignCriteria + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignCustomizerService.MutateCampaignCustomizers + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.CampaignDraftService.*' + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.CampaignExperimentService.*' + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignFeedService.MutateCampaignFeeds + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignGroupService.MutateCampaignGroups + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignLabelService.MutateCampaignLabels + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignService.MutateCampaigns + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CampaignSharedSetService.MutateCampaignSharedSets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.ConversionActionService.MutateConversionActions + deadline: 60.0 + - selector: google.ads.googleads.v11.services.ConversionAdjustmentUploadService.UploadConversionAdjustments + deadline: 600.0 + - selector: google.ads.googleads.v11.services.ConversionCustomVariableService.MutateConversionCustomVariables + deadline: 60.0 + - selector: google.ads.googleads.v11.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs + deadline: 60.0 + - selector: google.ads.googleads.v11.services.ConversionUploadService.UploadCallConversions + deadline: 600.0 + - selector: google.ads.googleads.v11.services.ConversionUploadService.UploadClickConversions + deadline: 600.0 + - selector: google.ads.googleads.v11.services.ConversionValueRuleService.MutateConversionValueRules + deadline: 60.0 + - selector: google.ads.googleads.v11.services.ConversionValueRuleSetService.MutateConversionValueRuleSets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomAudienceService.MutateCustomAudiences + deadline: 600.0 + - selector: google.ads.googleads.v11.services.CustomConversionGoalService.MutateCustomConversionGoals + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomInterestService.MutateCustomInterests + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerAssetService.MutateCustomerAssets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerClientLinkService.MutateCustomerClientLink + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerConversionGoalService.MutateCustomerConversionGoals + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerCustomizerService.MutateCustomerCustomizers + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerFeedService.MutateCustomerFeeds + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerLabelService.MutateCustomerLabels + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerManagerLinkService.MoveManagerLink + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerManagerLinkService.MutateCustomerManagerLink + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.CustomerService.*' + deadline: 60.0 + - selector: google.ads.googleads.v11.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation + deadline: 600.0 + - selector: google.ads.googleads.v11.services.CustomerUserAccessService.MutateCustomerUserAccess + deadline: 600.0 + - selector: google.ads.googleads.v11.services.CustomizerAttributeService.MutateCustomizerAttributes + deadline: 60.0 + - selector: google.ads.googleads.v11.services.ExperimentArmService.MutateExperimentArms + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.ExperimentService.*' + deadline: 60.0 + - selector: google.ads.googleads.v11.services.ExtensionFeedItemService.MutateExtensionFeedItems + deadline: 60.0 + - selector: google.ads.googleads.v11.services.FeedItemService.MutateFeedItems + deadline: 60.0 + - selector: google.ads.googleads.v11.services.FeedItemSetLinkService.MutateFeedItemSetLinks + deadline: 60.0 + - selector: google.ads.googleads.v11.services.FeedItemSetService.MutateFeedItemSets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.FeedItemTargetService.MutateFeedItemTargets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.FeedMappingService.MutateFeedMappings + deadline: 60.0 + - selector: google.ads.googleads.v11.services.FeedService.MutateFeeds + deadline: 60.0 + - selector: google.ads.googleads.v11.services.GeoTargetConstantService.SuggestGeoTargetConstants + deadline: 60.0 + - selector: google.ads.googleads.v11.services.GoogleAdsFieldService.GetGoogleAdsField + deadline: 600.0 + - selector: google.ads.googleads.v11.services.GoogleAdsFieldService.SearchGoogleAdsFields + deadline: 600.0 + - selector: google.ads.googleads.v11.services.GoogleAdsService.Mutate + deadline: 600.0 + - selector: google.ads.googleads.v11.services.GoogleAdsService.Search + deadline: 14400.0 + - selector: google.ads.googleads.v11.services.GoogleAdsService.SearchStream + deadline: 14400.0 + - selector: google.ads.googleads.v11.services.InvoiceService.ListInvoices + deadline: 60.0 + - selector: google.ads.googleads.v11.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords + deadline: 60.0 + - selector: google.ads.googleads.v11.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups + deadline: 60.0 + - selector: google.ads.googleads.v11.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords + deadline: 60.0 + - selector: google.ads.googleads.v11.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.KeywordPlanIdeaService.*' + deadline: 600.0 + - selector: 'google.ads.googleads.v11.services.KeywordPlanService.*' + deadline: 600.0 + - selector: google.ads.googleads.v11.services.KeywordPlanService.MutateKeywordPlans + deadline: 60.0 + - selector: google.ads.googleads.v11.services.KeywordThemeConstantService.SuggestKeywordThemeConstants + deadline: 60.0 + - selector: google.ads.googleads.v11.services.LabelService.MutateLabels + deadline: 60.0 + - selector: google.ads.googleads.v11.services.MediaFileService.MutateMediaFiles + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.MerchantCenterLinkService.*' + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.OfflineUserDataJobService.*' + deadline: 600.0 + - selector: google.ads.googleads.v11.services.PaymentsAccountService.ListPaymentsAccounts + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.ReachPlanService.*' + deadline: 600.0 + - selector: google.ads.googleads.v11.services.RecommendationService.ApplyRecommendation + deadline: 600.0 + - selector: google.ads.googleads.v11.services.RecommendationService.DismissRecommendation + deadline: 600.0 + - selector: google.ads.googleads.v11.services.RemarketingActionService.MutateRemarketingActions + deadline: 60.0 + - selector: google.ads.googleads.v11.services.SharedCriterionService.MutateSharedCriteria + deadline: 60.0 + - selector: google.ads.googleads.v11.services.SharedSetService.MutateSharedSets + deadline: 60.0 + - selector: google.ads.googleads.v11.services.SmartCampaignSettingService.MutateSmartCampaignSettings + deadline: 60.0 + - selector: 'google.ads.googleads.v11.services.SmartCampaignSuggestService.*' + deadline: 60.0 + - selector: google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId + deadline: 600.0 + - selector: google.ads.googleads.v11.services.UserDataService.UploadUserData + deadline: 600.0 + - selector: google.ads.googleads.v11.services.UserListService.MutateUserLists + deadline: 60.0 + - selector: 'google.longrunning.Operations.*' + deadline: 60.0 + +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v11/{name=customers/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v11/{name=customers/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v11/{name=customers/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v11/{name=customers/*/operations}' + - selector: google.longrunning.Operations.WaitOperation + post: '/v11/{name=customers/*/operations/*}:wait' + body: '*' + +authentication: + rules: + - selector: google.ads.googleads.v11.services.AccountBudgetProposalService.MutateAccountBudgetProposal + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AccountLinkService.CreateAccountLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AccountLinkService.MutateAccountLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupAdLabelService.MutateAdGroupAdLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupAdService.MutateAdGroupAds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupAssetService.MutateAdGroupAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupBidModifierService.MutateAdGroupBidModifiers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupCriterionService.MutateAdGroupCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupCustomizerService.MutateAdGroupCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupFeedService.MutateAdGroupFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupLabelService.MutateAdGroupLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdGroupService.MutateAdGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdParameterService.MutateAdParameters + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdService.GetAd + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AdService.MutateAds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AssetGroupAssetService.MutateAssetGroupAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AssetGroupService.MutateAssetGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AssetGroupSignalService.MutateAssetGroupSignals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AssetService.MutateAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AssetSetAssetService.MutateAssetSetAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AssetSetService.MutateAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.AudienceInsightsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.AudienceService.MutateAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.BatchJobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.BiddingDataExclusionService.MutateBiddingDataExclusions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.BiddingStrategyService.MutateBiddingStrategies + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.BillingSetupService.MutateBillingSetup + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignAssetService.MutateCampaignAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignAssetSetService.MutateCampaignAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignBidModifierService.MutateCampaignBidModifiers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignBudgetService.MutateCampaignBudgets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignConversionGoalService.MutateCampaignConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignCriterionService.MutateCampaignCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignCustomizerService.MutateCampaignCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.CampaignDraftService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.CampaignExperimentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignFeedService.MutateCampaignFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignGroupService.MutateCampaignGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignLabelService.MutateCampaignLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignService.MutateCampaigns + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CampaignSharedSetService.MutateCampaignSharedSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ConversionActionService.MutateConversionActions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ConversionAdjustmentUploadService.UploadConversionAdjustments + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ConversionCustomVariableService.MutateConversionCustomVariables + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ConversionUploadService.UploadCallConversions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ConversionUploadService.UploadClickConversions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ConversionValueRuleService.MutateConversionValueRules + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ConversionValueRuleSetService.MutateConversionValueRuleSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomAudienceService.MutateCustomAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomConversionGoalService.MutateCustomConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomInterestService.MutateCustomInterests + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerAssetService.MutateCustomerAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerClientLinkService.MutateCustomerClientLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerConversionGoalService.MutateCustomerConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerCustomizerService.MutateCustomerCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerFeedService.MutateCustomerFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerLabelService.MutateCustomerLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerManagerLinkService.MoveManagerLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerManagerLinkService.MutateCustomerManagerLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.CustomerService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomerUserAccessService.MutateCustomerUserAccess + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.CustomizerAttributeService.MutateCustomizerAttributes + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ExperimentArmService.MutateExperimentArms + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.ExperimentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ExtensionFeedItemService.MutateExtensionFeedItems + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.FeedItemService.MutateFeedItems + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.FeedItemSetLinkService.MutateFeedItemSetLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.FeedItemSetService.MutateFeedItemSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.FeedItemTargetService.MutateFeedItemTargets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.FeedMappingService.MutateFeedMappings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.FeedService.MutateFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.GeoTargetConstantService.SuggestGeoTargetConstants + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.GoogleAdsFieldService.GetGoogleAdsField + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.GoogleAdsFieldService.SearchGoogleAdsFields + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.GoogleAdsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.InvoiceService.ListInvoices + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.KeywordPlanIdeaService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.KeywordPlanService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.KeywordThemeConstantService.SuggestKeywordThemeConstants + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.LabelService.MutateLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.MediaFileService.MutateMediaFiles + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.MerchantCenterLinkService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.OfflineUserDataJobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.PaymentsAccountService.ListPaymentsAccounts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.ReachPlanService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.RecommendationService.ApplyRecommendation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.RecommendationService.DismissRecommendation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.RemarketingActionService.MutateRemarketingActions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.SharedCriterionService.MutateSharedCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.SharedSetService.MutateSharedSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.SmartCampaignSettingService.MutateSmartCampaignSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v11.services.SmartCampaignSuggestService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.services.UserDataService.UploadUserData + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v11.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/google/ads/googleads/v11/resources/BUILD.bazel b/google/ads/googleads/v11/resources/BUILD.bazel new file mode 100644 index 000000000..e0c43a51b --- /dev/null +++ b/google/ads/googleads/v11/resources/BUILD.bazel @@ -0,0 +1,97 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports +# subpackages. +proto_library( + name = "resources_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/ads/googleads/v11/common:common_proto", + "//google/ads/googleads/v11/enums:enums_proto", + "//google/ads/googleads/v11/errors:errors_proto", + "//google/api:annotations_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", +) + +java_proto_library( + name = "resources_java_proto", + deps = [":resources_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", +) + +csharp_proto_library( + name = "resources_csharp_proto", + deps = [":resources_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_proto_library", +) + +ruby_proto_library( + name = "resources_ruby_proto", + deps = [":resources_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_proto_library", +) + +py_proto_library( + name = "resources_py_proto", + deps = [":resources_proto"], +) diff --git a/google/ads/googleads/v11/resources/accessible_bidding_strategy.proto b/google/ads/googleads/v11/resources/accessible_bidding_strategy.proto new file mode 100644 index 000000000..bd7892a9c --- /dev/null +++ b/google/ads/googleads/v11/resources/accessible_bidding_strategy.proto @@ -0,0 +1,171 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v11/enums/target_impression_share_location.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccessibleBiddingStrategyProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::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: "googleads.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_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.googleads.v11.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: "googleads.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.googleads.v11.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/google/ads/googleads/v11/resources/account_budget.proto b/google/ads/googleads/v11/resources/account_budget.proto new file mode 100644 index 000000000..c9c4d173f --- /dev/null +++ b/google/ads/googleads/v11/resources/account_budget.proto @@ -0,0 +1,253 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/account_budget_proposal_type.proto"; +import "google/ads/googleads/v11/enums/account_budget_status.proto"; +import "google/ads/googleads/v11/enums/spending_limit_type.proto"; +import "google/ads/googleads/v11/enums/time_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the AccountBudget resource. + +// An account-level budget. It contains information about the budget itself, +// as well as the most recently approved changes to the budget and proposed +// changes that are pending approval. The proposed changes that are pending +// approval, if any, are found in 'pending_proposal'. Effective details about +// the budget are found in fields prefixed 'approved_', 'adjusted_' and those +// without a prefix. Since some effective details may differ from what the user +// had originally requested (for example, spending limit), these differences are +// juxtaposed through 'proposed_', 'approved_', and possibly 'adjusted_' fields. +// +// This resource is mutated using AccountBudgetProposal and cannot be mutated +// directly. A budget may have at most one pending proposal at any given time. +// It is read through pending_proposal. +// +// Once approved, a budget may be subject to adjustments, such as credit +// adjustments. Adjustments create differences between the 'approved' and +// 'adjusted' fields, which would otherwise be identical. +message AccountBudget { + option (google.api.resource) = { + type: "googleads.googleapis.com/AccountBudget" + pattern: "customers/{customer_id}/accountBudgets/{account_budget_id}" + }; + + // A pending proposal associated with the enclosing account-level budget, + // if applicable. + message PendingAccountBudgetProposal { + // Output only. The resource name of the proposal. + // AccountBudgetProposal resource names have the form: + // + // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` + optional string account_budget_proposal = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + } + ]; + + // Output only. The type of this proposal, for example, END to end the budget associated + // with this proposal. + google.ads.googleads.v11.enums.AccountBudgetProposalTypeEnum.AccountBudgetProposalType proposal_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name to assign to the account-level budget. + optional string name = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The start time in yyyy-MM-dd HH:mm:ss format. + optional string start_date_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A purchase order number is a value that helps users reference this budget + // in their monthly invoices. + optional string purchase_order_number = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Notes associated with this budget. + optional string notes = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this account-level budget proposal was created. + // Formatted as yyyy-MM-dd HH:mm:ss. + optional string creation_date_time = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The end time of the account-level budget. + oneof end_time { + // Output only. The end time in yyyy-MM-dd HH:mm:ss format. + 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.v11.enums.TimeTypeEnum.TimeType end_time_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The spending limit. + oneof spending_limit { + // Output only. The spending limit in micros. One million is equivalent to + // one unit. + int64 spending_limit_micros = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The spending limit as a well-defined type, for example, INFINITE. + google.ads.googleads.v11.enums.SpendingLimitTypeEnum.SpendingLimitType spending_limit_type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + } + + // Output only. The resource name of the account-level budget. + // AccountBudget resource names have the form: + // + // `customers/{customer_id}/accountBudgets/{account_budget_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudget" + } + ]; + + // Output only. The ID of the account-level budget. + optional int64 id = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the billing setup associated with this account-level + // budget. BillingSetup resource names have the form: + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + optional string billing_setup = 24 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + } + ]; + + // Output only. The status of this account-level budget. + google.ads.googleads.v11.enums.AccountBudgetStatusEnum.AccountBudgetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the account-level budget. + optional string name = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The proposed start time of the account-level budget in + // yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed, + // this is the time of request. + optional string proposed_start_date_time = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss + // format. + // + // For example, if a new budget is approved after the proposed start time, + // the approved start time is the time of approval. + optional string approved_start_date_time = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total adjustments amount. + // + // An example of an adjustment is courtesy credits. + int64 total_adjustments_micros = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The value of Ads that have been served, in micros. + // + // This includes overdelivery costs, in which case a credit might be + // automatically applied to the budget (see total_adjustments_micros). + int64 amount_served_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A purchase order number is a value that helps users reference this budget + // in their monthly invoices. + optional string purchase_order_number = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Notes associated with the budget. + optional string notes = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pending proposal to modify this budget, if applicable. + PendingAccountBudgetProposal pending_proposal = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The proposed end time of the account-level budget. + oneof proposed_end_time { + // Output only. The proposed end time in yyyy-MM-dd HH:mm:ss format. + string proposed_end_date_time = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The proposed end time as a well-defined type, for example, FOREVER. + google.ads.googleads.v11.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The approved end time of the account-level budget. + // + // For example, if a budget's end time is updated and the proposal is approved + // after the proposed end time, the approved end time is the time of approval. + oneof approved_end_time { + // Output only. The approved end time in yyyy-MM-dd HH:mm:ss format. + string approved_end_date_time = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved end time as a well-defined type, for example, FOREVER. + google.ads.googleads.v11.enums.TimeTypeEnum.TimeType approved_end_time_type = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The proposed spending limit. + oneof proposed_spending_limit { + // Output only. The proposed spending limit in micros. One million is equivalent to + // one unit. + int64 proposed_spending_limit_micros = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The proposed spending limit as a well-defined type, for example, + // INFINITE. + google.ads.googleads.v11.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The approved spending limit. + // + // For example, if the amount already spent by the account exceeds the + // proposed spending limit at the time the proposal is approved, the approved + // spending limit is set to the amount already spent. + oneof approved_spending_limit { + // Output only. The approved spending limit in micros. One million is equivalent to + // one unit. This will only be populated if the proposed spending limit + // is finite, and will always be greater than or equal to the + // proposed spending limit. + int64 approved_spending_limit_micros = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v11.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The spending limit after adjustments have been applied. Adjustments are + // stored in total_adjustments_micros. + // + // This value has the final say on how much the account is allowed to spend. + oneof adjusted_spending_limit { + // Output only. The adjusted spending limit in micros. One million is equivalent to + // one unit. + // + // If the approved spending limit is finite, the adjusted + // spending limit may vary depending on the types of adjustments applied + // to this budget, if applicable. + // + // The different kinds of adjustments are described here: + // https://support.google.com/google-ads/answer/1704323 + // + // For example, a debit adjustment reduces how much the account is + // allowed to spend. + int64 adjusted_spending_limit_micros = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The adjusted spending limit as a well-defined type, for 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.v11.enums.SpendingLimitTypeEnum.SpendingLimitType adjusted_spending_limit_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/account_budget_proposal.proto b/google/ads/googleads/v11/resources/account_budget_proposal.proto new file mode 100644 index 000000000..fa8b609ac --- /dev/null +++ b/google/ads/googleads/v11/resources/account_budget_proposal.proto @@ -0,0 +1,161 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/account_budget_proposal_status.proto"; +import "google/ads/googleads/v11/enums/account_budget_proposal_type.proto"; +import "google/ads/googleads/v11/enums/spending_limit_type.proto"; +import "google/ads/googleads/v11/enums/time_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the AccountBudgetProposal resource. + +// An account-level budget proposal. +// +// All fields prefixed with 'proposed' may not necessarily be applied directly. +// For example, proposed spending limits may be adjusted before their +// application. This is true if the 'proposed' field has an 'approved' +// counterpart, for example, spending limits. +// +// Note that the proposal type (proposal_type) changes which fields are +// required and which must remain empty. +message AccountBudgetProposal { + option (google.api.resource) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + pattern: "customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}" + }; + + // Immutable. The resource name of the proposal. + // AccountBudgetProposal resource names have the form: + // + // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + } + ]; + + // Output only. The ID of the proposal. + optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The resource name of the billing setup associated with this proposal. + optional string billing_setup = 26 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + } + ]; + + // Immutable. The resource name of the account-level budget associated with this + // proposal. + optional string account_budget = 27 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudget" + } + ]; + + // Immutable. The type of this proposal, for example, END to end the budget associated + // with this proposal. + google.ads.googleads.v11.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.v11.enums.AccountBudgetProposalStatusEnum.AccountBudgetProposalStatus status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The name to assign to the account-level budget. + optional string proposed_name = 28 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format. + optional string approved_start_date_time = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. A purchase order number is a value that enables the user to help them + // reference this budget in their monthly invoices. + optional string proposed_purchase_order_number = 35 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Notes associated with this budget. + optional string proposed_notes = 36 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The date time when this account-level budget proposal was created, which is + // not the same as its approval date time, if applicable. + optional string creation_date_time = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date time when this account-level budget was approved, if applicable. + optional string approval_date_time = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The proposed start date time of the account-level budget, which cannot be + // in the past. + oneof proposed_start_time { + // Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format. + string proposed_start_date_time = 29 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The proposed start date time as a well-defined type, for example, NOW. + google.ads.googleads.v11.enums.TimeTypeEnum.TimeType proposed_start_time_type = 7 [(google.api.field_behavior) = IMMUTABLE]; + } + + // The proposed end date time of the account-level budget, which cannot be in + // the past. + oneof proposed_end_time { + // Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format. + string proposed_end_date_time = 31 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The proposed end date time as a well-defined type, for example, FOREVER. + google.ads.googleads.v11.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = IMMUTABLE]; + } + + // The approved end date time of the account-level budget. + oneof approved_end_time { + // Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format. + string approved_end_date_time = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved end date time as a well-defined type, for example, FOREVER. + google.ads.googleads.v11.enums.TimeTypeEnum.TimeType approved_end_time_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The proposed spending limit. + oneof proposed_spending_limit { + // Immutable. The proposed spending limit in micros. One million is equivalent to + // one unit. + int64 proposed_spending_limit_micros = 33 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The proposed spending limit as a well-defined type, for example, + // INFINITE. + google.ads.googleads.v11.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 11 [(google.api.field_behavior) = IMMUTABLE]; + } + + // The approved spending limit. + oneof approved_spending_limit { + // Output only. The approved spending limit in micros. One million is equivalent to + // one unit. + int64 approved_spending_limit_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The approved spending limit as a well-defined type, for example, + // INFINITE. + google.ads.googleads.v11.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/account_link.proto b/google/ads/googleads/v11/resources/account_link.proto new file mode 100644 index 000000000..6bc1690d7 --- /dev/null +++ b/google/ads/googleads/v11/resources/account_link.proto @@ -0,0 +1,133 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/account_link_status.proto"; +import "google/ads/googleads/v11/enums/linked_account_type.proto"; +import "google/ads/googleads/v11/enums/mobile_app_vendor.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccountLinkProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Represents the data sharing connection between a Google Ads account and +// another account +message AccountLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/AccountLink" + pattern: "customers/{customer_id}/accountLinks/{account_link_id}" + }; + + // Immutable. Resource name of the account link. + // AccountLink resource names have the form: + // `customers/{customer_id}/accountLinks/{account_link_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountLink" + } + ]; + + // Output only. The ID of the link. + // This field is read only. + optional int64 account_link_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The status of the link. + google.ads.googleads.v11.enums.AccountLinkStatusEnum.AccountLinkStatus status = 3; + + // Output only. The type of the linked account. + google.ads.googleads.v11.enums.LinkedAccountTypeEnum.LinkedAccountType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // An account linked to this Google Ads account. + oneof linked_account { + // 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]; + } +} + +// The identifiers of a Third Party App Analytics Link. +message ThirdPartyAppAnalyticsLinkIdentifier { + // Immutable. The ID of the app analytics provider. + // 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. + optional int64 app_analytics_provider_id = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A string that uniquely identifies a mobile application from which the data + // was collected to the Google Ads API. For iOS, the ID string is the 9 digit + // string that appears at the end of an App Store URL (for example, + // "422689480" for "Gmail" whose App Store link is + // https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For + // Android, the ID string is the application's package name (for example, + // "com.google.android.gm" for "Gmail" given Google Play link + // https://play.google.com/store/apps/details?id=com.google.android.gm) + // 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. + optional string app_id = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The vendor of the app. + // 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.v11.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" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/ad.proto b/google/ads/googleads/v11/resources/ad.proto new file mode 100644 index 000000000..871da04d9 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad.proto @@ -0,0 +1,196 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/ad_type_infos.proto"; +import "google/ads/googleads/v11/common/custom_parameter.proto"; +import "google/ads/googleads/v11/common/final_app_url.proto"; +import "google/ads/googleads/v11/common/url_collection.proto"; +import "google/ads/googleads/v11/enums/ad_type.proto"; +import "google/ads/googleads/v11/enums/device.proto"; +import "google/ads/googleads/v11/enums/system_managed_entity_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad type. + +// An ad. +message Ad { + option (google.api.resource) = { + type: "googleads.googleapis.com/Ad" + pattern: "customers/{customer_id}/ads/{ad_id}" + }; + + // Immutable. The resource name of the ad. + // Ad resource names have the form: + // + // `customers/{customer_id}/ads/{ad_id}` + string resource_name = 37 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Ad" + } + ]; + + // Output only. The ID of the ad. + optional int64 id = 40 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The list of possible final URLs after all cross-domain redirects for the + // ad. + repeated string final_urls = 41; + + // A list of final app URLs that will be used on mobile if the user has the + // specific app installed. + repeated google.ads.googleads.v11.common.FinalAppUrl final_app_urls = 35; + + // The list of possible final mobile URLs after all cross-domain redirects + // for the ad. + repeated string final_mobile_urls = 42; + + // The URL template for constructing a tracking URL. + optional string tracking_url_template = 43; + + // The suffix to use when constructing a final URL. + optional string final_url_suffix = 44; + + // 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.v11.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.v11.enums.AdTypeEnum.AdType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates if this ad was automatically added by Google Ads and not by a + // user. For example, this could happen when ads are automatically created as + // suggestions for new ads based on knowledge of how existing ads are + // performing. + optional bool added_by_google_ads = 46 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The device preference for the ad. You can only specify a preference for + // mobile devices. When this preference is set the ad will be preferred over + // other ads when being displayed on a mobile device. The ad can still be + // 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.v11.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.v11.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 name + // field is currently only supported for DisplayUploadAd, ImageAd, + // ShoppingComparisonListingAd and VideoAd. + optional string name = 47 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. If this ad is system managed, then this field will indicate the source. + // This field is read-only. + google.ads.googleads.v11.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.v11.common.TextAdInfo text_ad = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Details pertaining to an expanded text ad. + google.ads.googleads.v11.common.ExpandedTextAdInfo expanded_text_ad = 7; + + // Details pertaining to a call ad. + google.ads.googleads.v11.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.v11.common.ExpandedDynamicSearchAdInfo expanded_dynamic_search_ad = 14 [(google.api.field_behavior) = IMMUTABLE]; + + // Details pertaining to a hotel ad. + google.ads.googleads.v11.common.HotelAdInfo hotel_ad = 15; + + // Details pertaining to a Smart Shopping ad. + google.ads.googleads.v11.common.ShoppingSmartAdInfo shopping_smart_ad = 17; + + // Details pertaining to a Shopping product ad. + google.ads.googleads.v11.common.ShoppingProductAdInfo shopping_product_ad = 18; + + // Immutable. Details pertaining to a Gmail ad. + google.ads.googleads.v11.common.GmailAdInfo gmail_ad = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Details pertaining to an Image ad. + google.ads.googleads.v11.common.ImageAdInfo image_ad = 22 [(google.api.field_behavior) = IMMUTABLE]; + + // Details pertaining to a Video ad. + google.ads.googleads.v11.common.VideoAdInfo video_ad = 24; + + // Details pertaining to a Video responsive ad. + google.ads.googleads.v11.common.VideoResponsiveAdInfo video_responsive_ad = 39; + + // Details pertaining to a responsive search ad. + google.ads.googleads.v11.common.ResponsiveSearchAdInfo responsive_search_ad = 25; + + // Details pertaining to a legacy responsive display ad. + google.ads.googleads.v11.common.LegacyResponsiveDisplayAdInfo legacy_responsive_display_ad = 28; + + // Details pertaining to an app ad. + google.ads.googleads.v11.common.AppAdInfo app_ad = 29; + + // Immutable. Details pertaining to a legacy app install ad. + google.ads.googleads.v11.common.LegacyAppInstallAdInfo legacy_app_install_ad = 30 [(google.api.field_behavior) = IMMUTABLE]; + + // Details pertaining to a responsive display ad. + google.ads.googleads.v11.common.ResponsiveDisplayAdInfo responsive_display_ad = 31; + + // Details pertaining to a local ad. + google.ads.googleads.v11.common.LocalAdInfo local_ad = 32; + + // Details pertaining to a display upload ad. + google.ads.googleads.v11.common.DisplayUploadAdInfo display_upload_ad = 33; + + // Details pertaining to an app engagement ad. + google.ads.googleads.v11.common.AppEngagementAdInfo app_engagement_ad = 34; + + // Details pertaining to a Shopping Comparison Listing ad. + google.ads.googleads.v11.common.ShoppingComparisonListingAdInfo shopping_comparison_listing_ad = 36; + + // Details pertaining to a Smart campaign ad. + google.ads.googleads.v11.common.SmartCampaignAdInfo smart_campaign_ad = 48; + + // Details pertaining to an app pre-registration ad. + google.ads.googleads.v11.common.AppPreRegistrationAdInfo app_pre_registration_ad = 50; + + // Details pertaining to a discovery multi asset ad. + google.ads.googleads.v11.common.DiscoveryMultiAssetAdInfo discovery_multi_asset_ad = 51; + + // Details pertaining to a discovery carousel ad. + google.ads.googleads.v11.common.DiscoveryCarouselAdInfo discovery_carousel_ad = 52; + } +} diff --git a/google/ads/googleads/v11/resources/ad_group.proto b/google/ads/googleads/v11/resources/ad_group.proto new file mode 100644 index 000000000..a4c1c77ef --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group.proto @@ -0,0 +1,201 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/custom_parameter.proto"; +import "google/ads/googleads/v11/common/explorer_auto_optimizer_setting.proto"; +import "google/ads/googleads/v11/common/targeting_setting.proto"; +import "google/ads/googleads/v11/enums/ad_group_ad_rotation_mode.proto"; +import "google/ads/googleads/v11/enums/ad_group_status.proto"; +import "google/ads/googleads/v11/enums/ad_group_type.proto"; +import "google/ads/googleads/v11/enums/asset_field_type.proto"; +import "google/ads/googleads/v11/enums/bidding_source.proto"; +import "google/ads/googleads/v11/enums/targeting_dimension.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group resource. + +// An ad group. +message AdGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroup" + pattern: "customers/{customer_id}/adGroups/{ad_group_id}" + }; + + // Settings for the audience targeting. + message AudienceSetting { + // Immutable. If true, this ad group uses an Audience resource for audience targeting. + // If false, this ad group may use audience segment criteria instead. + bool use_audience_grouped = 1 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Immutable. The resource name of the ad group. + // Ad group resource names have the form: + // + // `customers/{customer_id}/adGroups/{ad_group_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. The ID of the ad group. + optional int64 id = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the ad group. + // + // This field is required and should not be empty when creating new ad + // groups. + // + // It must contain fewer than 255 UTF-8 full-width characters. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + optional string name = 35; + + // The status of the ad group. + google.ads.googleads.v11.enums.AdGroupStatusEnum.AdGroupStatus status = 5; + + // Immutable. The type of the ad group. + google.ads.googleads.v11.enums.AdGroupTypeEnum.AdGroupType type = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // The ad rotation mode of the ad group. + google.ads.googleads.v11.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode ad_rotation_mode = 22; + + // Output only. For draft or experiment ad groups, this field is the resource name of the + // base ad group from which this ad group was created. If a draft or + // experiment ad group does not have a base ad group, then this field is null. + // + // For base ad groups, this field equals the ad group resource name. + // + // This field is read-only. + optional string base_ad_group = 36 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // The URL template for constructing a tracking URL. + optional string tracking_url_template = 37; + + // 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.v11.common.CustomParameter url_custom_parameters = 6; + + // Immutable. The campaign to which the ad group belongs. + optional string campaign = 38 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The maximum CPC (cost-per-click) bid. + optional int64 cpc_bid_micros = 39; + + // Output only. Value will be same as that of the CPC (cost-per-click) bid value when the + // bidding strategy is one of manual cpc, enhanced cpc, page one promoted or + // target outrank share, otherwise the value will be null. + optional int64 effective_cpc_bid_micros = 57 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The maximum CPM (cost-per-thousand viewable impressions) bid. + optional int64 cpm_bid_micros = 40; + + // The target CPA (cost-per-acquisition). If the ad group's campaign + // bidding strategy is TargetCpa or MaximizeConversions (with its target_cpa + // field set), then this field overrides the target CPA specified in the + // campaign's bidding strategy. + // Otherwise, this value is ignored. + optional int64 target_cpa_micros = 41; + + // Output only. The CPV (cost-per-view) bid. + optional int64 cpv_bid_micros = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Average amount in micros that the advertiser is willing to pay for every + // thousand times the ad is shown. + optional int64 target_cpm_micros = 43; + + // The target ROAS (return-on-ad-spend) override. If the ad group's campaign + // bidding strategy is TargetRoas or MaximizeConversionValue (with its + // target_roas field set), then this field overrides the target ROAS specified + // in the campaign's bidding strategy. + // Otherwise, this value is ignored. + optional double target_roas = 44; + + // The percent cpc bid amount, expressed as a fraction of the advertised price + // for some good or service. The valid range for the fraction is [0,1) and the + // value stored here is 1,000,000 * [fraction]. + optional int64 percent_cpc_bid_micros = 45; + + // Settings for the Display Campaign Optimizer, initially termed "Explorer". + google.ads.googleads.v11.common.ExplorerAutoOptimizerSetting explorer_auto_optimizer_setting = 21; + + // 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.v11.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.v11.common.TargetingSetting targeting_setting = 25; + + // Immutable. Setting for audience related features. + AudienceSetting audience_setting = 56 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The effective target CPA (cost-per-acquisition). + // This field is read-only. + optional int64 effective_target_cpa_micros = 47 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source of the effective target CPA. + // This field is read-only. + google.ads.googleads.v11.enums.BiddingSourceEnum.BiddingSource effective_target_cpa_source = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective target ROAS (return-on-ad-spend). + // This field is read-only. + optional double effective_target_roas = 48 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source of the effective target ROAS. + // This field is read-only. + google.ads.googleads.v11.enums.BiddingSourceEnum.BiddingSource effective_target_roas_source = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource names of labels attached to this ad group. + repeated string labels = 49 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupLabel" + } + ]; + + // 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.v11.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 54; +} diff --git a/google/ads/googleads/v11/resources/ad_group_ad.proto b/google/ads/googleads/v11/resources/ad_group_ad.proto new file mode 100644 index 000000000..9b4165f68 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_ad.proto @@ -0,0 +1,102 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/ad_group_ad_status.proto"; +import "google/ads/googleads/v11/enums/ad_strength.proto"; +import "google/ads/googleads/v11/enums/policy_approval_status.proto"; +import "google/ads/googleads/v11/enums/policy_review_status.proto"; +import "google/ads/googleads/v11/resources/ad.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group ad resource. + +// An ad group ad. +message AdGroupAd { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAd" + pattern: "customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}" + }; + + // Immutable. The resource name of the ad. + // Ad group ad resource names have the form: + // + // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // The status of the ad. + google.ads.googleads.v11.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3; + + // Immutable. The ad group to which the ad belongs. + optional string ad_group = 9 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Immutable. The ad. + Ad ad = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Policy information for the ad. + AdGroupAdPolicySummary policy_summary = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Overall ad strength for this ad group ad. + google.ads.googleads.v11.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.". + repeated string action_items = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource names of labels attached to this ad group ad. + repeated string labels = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + } + ]; +} + +// Contains policy information for an ad. +message AdGroupAdPolicySummary { + // Output only. The list of policy findings for this ad. + repeated google.ads.googleads.v11.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.v11.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.v11.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_ad_asset_combination_view.proto b/google/ads/googleads/v11/resources/ad_group_ad_asset_combination_view.proto new file mode 100644 index 000000000..1b1dfa3fd --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_ad_asset_combination_view.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/asset_usage.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdAssetCombinationViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the asset combination view resource. + +// A view on the usage of ad group ad asset combination. +// Now we only support AdGroupAdAssetCombinationView for Responsive Search Ads, +// with more ad types planned for the future. +message AdGroupAdAssetCombinationView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAdAssetCombinationView" + pattern: "customers/{customer_id}/adGroupAdAssetCombinationViews/{ad_group_id}~{ad_id}~{asset_combination_id_low}~{asset_combination_id_high}" + }; + + // Output only. The resource name of the ad group ad asset combination view. The + // combination ID is 128 bits long, where the upper 64 bits are stored in + // asset_combination_id_high, and the lower 64 bits are stored in + // asset_combination_id_low. + // AdGroupAd Asset Combination view resource names have the form: + // `customers/{customer_id}/adGroupAdAssetCombinationViews/{AdGroupAd.ad_group_id}~{AdGroupAd.ad.ad_id}~{AssetCombination.asset_combination_id_low}~{AssetCombination.asset_combination_id_high}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdAssetCombinationView" + } + ]; + + // Output only. Served assets. + repeated google.ads.googleads.v11.common.AssetUsage served_assets = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status between the asset combination and the latest version of the ad. + // If true, the asset combination is linked to the latest version of the ad. + // If false, it means the link once existed but has been removed and is no + // longer present in the latest version of the ad. + optional bool enabled = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_ad_asset_view.proto b/google/ads/googleads/v11/resources/ad_group_ad_asset_view.proto new file mode 100644 index 000000000..c6b005cb0 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_ad_asset_view.proto @@ -0,0 +1,104 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/asset_field_type.proto"; +import "google/ads/googleads/v11/enums/asset_performance_label.proto"; +import "google/ads/googleads/v11/enums/policy_approval_status.proto"; +import "google/ads/googleads/v11/enums/policy_review_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdAssetViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group ad asset view resource. + +// A link between an AdGroupAd and an Asset. +// Currently we only support AdGroupAdAssetView for AppAds. +message AdGroupAdAssetView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAdAssetView" + pattern: "customers/{customer_id}/adGroupAdAssetViews/{ad_group_id}~{ad_id}~{asset_id}~{field_type}" + }; + + // Output only. The resource name of the ad group ad asset view. + // Ad group ad asset view resource names have the form (Before V4): + // + // `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` + // + // Ad group ad asset view resource names have the form (Beginning from V4): + // + // `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdAssetView" + } + ]; + + // Output only. The ad group ad to which the asset is linked. + optional string ad_group_ad = 9 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Output only. The asset which is linked to the ad group ad. + optional string asset = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. Role that the asset takes in the ad. + google.ads.googleads.v11.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. If true, the + // asset is linked to the latest version of the ad. If false, it means the + // link once existed but has been removed and is no longer present in the + // latest version of the ad. + optional bool enabled = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Policy information for the ad group ad asset. + AdGroupAdAssetPolicySummary policy_summary = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Performance of an asset linkage. + google.ads.googleads.v11.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel performance_label = 4 [(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.v11.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.v11.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.v11.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_ad_label.proto b/google/ads/googleads/v11/resources/ad_group_ad_label.proto new file mode 100644 index 000000000..b2a91e585 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_ad_label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdLabelProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group ad label resource. + +// A relationship between an ad group ad and a label. +message AdGroupAdLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + pattern: "customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}" + }; + + // Immutable. The resource name of the ad group ad label. + // Ad group ad label resource names have the form: + // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + } + ]; + + // Immutable. The ad group ad to which the label is attached. + optional string ad_group_ad = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Immutable. The label assigned to the ad group ad. + optional string label = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_asset.proto b/google/ads/googleads/v11/resources/ad_group_asset.proto new file mode 100644 index 000000000..9d9b9c9a8 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_asset.proto @@ -0,0 +1,83 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/asset_field_type.proto"; +import "google/ads/googleads/v11/enums/asset_link_status.proto"; +import "google/ads/googleads/v11/enums/asset_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAssetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the AdGroupAsset resource. + +// A link between an ad group and an asset. +message AdGroupAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAsset" + pattern: "customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}" + }; + + // Immutable. The resource name of the ad group asset. + // AdGroupAsset resource names have the form: + // + // `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAsset" + } + ]; + + // Required. Immutable. The ad group to which the asset is linked. + string ad_group = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Required. Immutable. The asset which is linked to the ad group. + string asset = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Required. Immutable. Role that the asset takes under the linked ad group. + google.ads.googleads.v11.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.v11.enums.AssetSourceEnum.AssetSource source = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Status of the ad group asset. + google.ads.googleads.v11.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; +} diff --git a/google/ads/googleads/v11/resources/ad_group_audience_view.proto b/google/ads/googleads/v11/resources/ad_group_audience_view.proto new file mode 100644 index 000000000..41d2fc0cb --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_audience_view.proto @@ -0,0 +1,53 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAudienceViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group audience view resource. + +// An ad group audience view. +// Includes performance data from interests and remarketing lists for Display +// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), +// aggregated at the audience level. +message AdGroupAudienceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupAudienceView" + pattern: "customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the ad group audience view. + // Ad group audience view resource names have the form: + // + // `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAudienceView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_bid_modifier.proto b/google/ads/googleads/v11/resources/ad_group_bid_modifier.proto new file mode 100644 index 000000000..2ce917d52 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_bid_modifier.proto @@ -0,0 +1,111 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/enums/bid_modifier_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupBidModifierProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group bid modifier resource. + +// Represents an ad group bid modifier. +message AdGroupBidModifier { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + pattern: "customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}" + }; + + // Immutable. The resource name of the ad group bid modifier. + // Ad group bid modifier resource names have the form: + // + // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + } + ]; + + // Immutable. The ad group to which this criterion belongs. + optional string ad_group = 13 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. The ID of the criterion to bid modify. + // + // This field is ignored for mutates. + optional int64 criterion_id = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The modifier for the bid when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent. + // Use 0 to opt out of a Device type. + optional double bid_modifier = 15; + + // Output only. The base ad group from which this draft/trial adgroup bid modifier was + // created. If ad_group is a base ad group then this field will be equal to + // ad_group. If the ad group was created in the draft or trial and has no + // corresponding base ad group, then this field will be null. + // This field is readonly. + optional string base_ad_group = 16 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. Bid modifier source. + google.ads.googleads.v11.enums.BidModifierSourceEnum.BidModifierSource bid_modifier_source = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The criterion of this ad group bid modifier. + // + // Required in create operations starting in V5. + oneof criterion { + // Immutable. Criterion for hotel date selection (default dates versus user selected). + google.ads.googleads.v11.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.v11.common.HotelAdvanceBookingWindowInfo hotel_advance_booking_window = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Criterion for length of hotel stay in nights. + google.ads.googleads.v11.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.v11.common.HotelCheckInDayInfo hotel_check_in_day = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A device criterion. + google.ads.googleads.v11.common.DeviceInfo device = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A preferred content criterion. + google.ads.googleads.v11.common.PreferredContentInfo preferred_content = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Criterion for a hotel check-in date range. + google.ads.googleads.v11.common.HotelCheckInDateRangeInfo hotel_check_in_date_range = 17 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v11/resources/ad_group_criterion.proto b/google/ads/googleads/v11/resources/ad_group_criterion.proto new file mode 100644 index 000000000..8f4c65ce2 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_criterion.proto @@ -0,0 +1,293 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/common/custom_parameter.proto"; +import "google/ads/googleads/v11/enums/ad_group_criterion_approval_status.proto"; +import "google/ads/googleads/v11/enums/ad_group_criterion_status.proto"; +import "google/ads/googleads/v11/enums/bidding_source.proto"; +import "google/ads/googleads/v11/enums/criterion_system_serving_status.proto"; +import "google/ads/googleads/v11/enums/criterion_type.proto"; +import "google/ads/googleads/v11/enums/quality_score_bucket.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group criterion resource. + +// An ad group criterion. +message AdGroupCriterion { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCriterion" + pattern: "customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}" + }; + + // A container for ad group criterion quality information. + message QualityInfo { + // Output only. The quality score. + // + // This field may not be populated if Google does not have enough + // information to determine a value. + optional int32 quality_score = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The performance of the ad compared to other advertisers. + google.ads.googleads.v11.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.v11.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.v11.enums.QualityScoreBucketEnum.QualityScoreBucket search_predicted_ctr = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Estimates for criterion bids at various positions. + message PositionEstimates { + // Output only. The estimate of the CPC bid required for ad to be shown on first + // page of search results. + optional int64 first_page_cpc_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimate of the CPC bid required for ad to be displayed in first + // position, at the top of the first page of search results. + optional int64 first_position_cpc_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimate of the CPC bid required for ad to be displayed at the top + // of the first page of search results. + optional int64 top_of_page_cpc_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimate of how many clicks per week you might get by changing your + // keyword bid to the value in first_position_cpc_micros. + optional int64 estimated_add_clicks_at_first_position_cpc = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimate of how your cost per week might change when changing your + // keyword bid to the value in first_position_cpc_micros. + optional int64 estimated_add_cost_at_first_position_cpc = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the ad group criterion. + // Ad group criterion resource names have the form: + // + // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Output only. The ID of the criterion. + // + // This field is ignored for mutates. + optional int64 criterion_id = 56 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name of the criterion. + // + // This field is ignored for mutates. + string display_name = 77 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The status of the criterion. + // + // This is the status of the ad group criterion entity, set by the client. + // Note: UI reports may incorporate additional information that affects + // whether a criterion is eligible to run. In some cases a criterion that's + // REMOVED in the API can still show as enabled in the UI. + // For example, campaigns by default show to users of all age ranges unless + // 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.v11.enums.AdGroupCriterionStatusEnum.AdGroupCriterionStatus status = 3; + + // Output only. Information regarding the quality of the criterion. + QualityInfo quality_info = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The ad group to which the criterion belongs. + optional string ad_group = 57 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. The type of the criterion. + google.ads.googleads.v11.enums.CriterionTypeEnum.CriterionType type = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. + // + // This field is immutable. To switch a criterion from positive to negative, + // remove then re-add it. + optional bool negative = 58 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Serving status of the criterion. + google.ads.googleads.v11.enums.CriterionSystemServingStatusEnum.CriterionSystemServingStatus system_serving_status = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Approval status of the criterion. + google.ads.googleads.v11.enums.AdGroupCriterionApprovalStatusEnum.AdGroupCriterionApprovalStatus approval_status = 53 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of disapproval reasons of the criterion. + // + // The different reasons for disapproving a criterion can be found here: + // https://support.google.com/adspolicy/answer/6008942 + // + // This field is read-only. + repeated string disapproval_reasons = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource names of labels attached to this ad group criterion. + repeated string labels = 60 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + } + ]; + + // The modifier for the bid when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. + optional double bid_modifier = 61; + + // The CPC (cost-per-click) bid. + optional int64 cpc_bid_micros = 62; + + // The CPM (cost-per-thousand viewable impressions) bid. + optional int64 cpm_bid_micros = 63; + + // The CPV (cost-per-view) bid. + optional int64 cpv_bid_micros = 64; + + // The CPC bid amount, expressed as a fraction of the advertised price + // for some good or service. The valid range for the fraction is [0,1) and the + // value stored here is 1,000,000 * [fraction]. + optional int64 percent_cpc_bid_micros = 65; + + // Output only. The effective CPC (cost-per-click) bid. + optional int64 effective_cpc_bid_micros = 66 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective CPM (cost-per-thousand viewable impressions) bid. + optional int64 effective_cpm_bid_micros = 67 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective CPV (cost-per-view) bid. + optional int64 effective_cpv_bid_micros = 68 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective Percent CPC bid amount. + optional int64 effective_percent_cpc_bid_micros = 69 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source of the effective CPC bid. + google.ads.googleads.v11.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.v11.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.v11.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.v11.enums.BiddingSourceEnum.BiddingSource effective_percent_cpc_bid_source = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimates for criterion bids at various positions. + PositionEstimates position_estimates = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The list of possible final URLs after all cross-domain redirects for the + // ad. + repeated string final_urls = 70; + + // The list of possible final mobile URLs after all cross-domain redirects. + repeated string final_mobile_urls = 71; + + // URL template for appending params to final URL. + optional string final_url_suffix = 72; + + // The URL template for constructing a tracking URL. + optional string tracking_url_template = 73; + + // 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.v11.common.CustomParameter url_custom_parameters = 14; + + // The ad group criterion. + // + // Exactly one must be set. + oneof criterion { + // Immutable. Keyword. + google.ads.googleads.v11.common.KeywordInfo keyword = 27 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Placement. + google.ads.googleads.v11.common.PlacementInfo placement = 28 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile app category. + google.ads.googleads.v11.common.MobileAppCategoryInfo mobile_app_category = 29 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile application. + google.ads.googleads.v11.common.MobileApplicationInfo mobile_application = 30 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Listing group. + google.ads.googleads.v11.common.ListingGroupInfo listing_group = 32 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Age range. + google.ads.googleads.v11.common.AgeRangeInfo age_range = 36 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Gender. + google.ads.googleads.v11.common.GenderInfo gender = 37 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Income range. + google.ads.googleads.v11.common.IncomeRangeInfo income_range = 38 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Parental status. + google.ads.googleads.v11.common.ParentalStatusInfo parental_status = 39 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. User List. + google.ads.googleads.v11.common.UserListInfo user_list = 42 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Video. + google.ads.googleads.v11.common.YouTubeVideoInfo youtube_video = 40 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Channel. + google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel = 41 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Topic. + google.ads.googleads.v11.common.TopicInfo topic = 43 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. User Interest. + google.ads.googleads.v11.common.UserInterestInfo user_interest = 45 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Webpage + google.ads.googleads.v11.common.WebpageInfo webpage = 46 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. App Payment Model. + google.ads.googleads.v11.common.AppPaymentModelInfo app_payment_model = 47 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Affinity. + google.ads.googleads.v11.common.CustomAffinityInfo custom_affinity = 48 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Intent. + google.ads.googleads.v11.common.CustomIntentInfo custom_intent = 49 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Audience. + google.ads.googleads.v11.common.CustomAudienceInfo custom_audience = 74 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Combined Audience. + google.ads.googleads.v11.common.CombinedAudienceInfo combined_audience = 75 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Audience. + google.ads.googleads.v11.common.AudienceInfo audience = 79 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v11/resources/ad_group_criterion_customizer.proto b/google/ads/googleads/v11/resources/ad_group_criterion_customizer.proto new file mode 100644 index 000000000..40957cd31 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_criterion_customizer.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/customizer_value.proto"; +import "google/ads/googleads/v11/enums/customizer_value_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionCustomizerProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// A customizer value for the associated CustomizerAttribute at the +// AdGroupCriterion level. +message AdGroupCriterionCustomizer { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCriterionCustomizer" + pattern: "customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}" + }; + + // Immutable. The resource name of the ad group criterion customizer. + // Ad group criterion customizer resource names have the form: + // + // `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionCustomizer" + } + ]; + + // Immutable. The ad group criterion to which the customizer attribute is linked. + // It must be a keyword criterion. + optional string ad_group_criterion = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Required. Immutable. The customizer attribute which is linked to the ad group criterion. + string customizer_attribute = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The status of the ad group criterion customizer. + google.ads.googleads.v11.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.v11.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_criterion_label.proto b/google/ads/googleads/v11/resources/ad_group_criterion_label.proto new file mode 100644 index 000000000..823df85e2 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_criterion_label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionLabelProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group criterion label resource. + +// A relationship between an ad group criterion and a label. +message AdGroupCriterionLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + pattern: "customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}" + }; + + // Immutable. The resource name of the ad group criterion label. + // Ad group criterion label resource names have the form: + // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + } + ]; + + // Immutable. The ad group criterion to which the label is attached. + optional string ad_group_criterion = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Immutable. The label assigned to the ad group criterion. + optional string label = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_criterion_simulation.proto b/google/ads/googleads/v11/resources/ad_group_criterion_simulation.proto new file mode 100644 index 000000000..420374a28 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_criterion_simulation.proto @@ -0,0 +1,89 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/simulation.proto"; +import "google/ads/googleads/v11/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v11/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionSimulationProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group criterion simulation resource. + +// An ad group criterion simulation. Supported combinations of advertising +// channel type, criterion type, simulation type, and simulation modification +// method are detailed below respectively. Hotel AdGroupCriterion simulation +// operations starting in V5. +// +// 1. DISPLAY - KEYWORD - CPC_BID - UNIFORM +// 2. SEARCH - KEYWORD - CPC_BID - UNIFORM +// 3. SHOPPING - LISTING_GROUP - CPC_BID - UNIFORM +// 4. HOTEL - LISTING_GROUP - CPC_BID - UNIFORM +// 5. HOTEL - LISTING_GROUP - PERCENT_CPC_BID - UNIFORM +message AdGroupCriterionSimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCriterionSimulation" + pattern: "customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the ad group criterion simulation. + // Ad group criterion simulation resource names have the form: + // + // `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionSimulation" + } + ]; + + // Output only. AdGroup ID of the simulation. + optional int64 ad_group_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Criterion ID of the simulation. + optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v11.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v11.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + optional string start_date = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format. + optional string end_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is CPC_BID. + google.ads.googleads.v11.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.v11.common.PercentCpcBidSimulationPointList percent_cpc_bid_point_list = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/ad_group_customizer.proto b/google/ads/googleads/v11/resources/ad_group_customizer.proto new file mode 100644 index 000000000..bfee1b711 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_customizer.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/customizer_value.proto"; +import "google/ads/googleads/v11/enums/customizer_value_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCustomizerProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// A customizer value for the associated CustomizerAttribute at the AdGroup +// level. +message AdGroupCustomizer { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupCustomizer" + pattern: "customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}" + }; + + // Immutable. The resource name of the ad group customizer. + // Ad group customizer resource names have the form: + // + // `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCustomizer" + } + ]; + + // Immutable. The ad group to which the customizer attribute is linked. + string ad_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Required. Immutable. The customizer attribute which is linked to the ad group. + string customizer_attribute = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The status of the ad group customizer. + google.ads.googleads.v11.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.v11.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_extension_setting.proto b/google/ads/googleads/v11/resources/ad_group_extension_setting.proto new file mode 100644 index 000000000..fab818f8a --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_extension_setting.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/extension_setting_device.proto"; +import "google/ads/googleads/v11/enums/extension_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupExtensionSettingProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the AdGroupExtensionSetting resource. + +// An ad group extension setting. +message AdGroupExtensionSetting { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupExtensionSetting" + pattern: "customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}" + }; + + // Immutable. The resource name of the ad group extension setting. + // AdGroupExtensionSetting resource names have the form: + // + // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupExtensionSetting" + } + ]; + + // Immutable. The extension type of the ad group extension setting. + google.ads.googleads.v11.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The resource name of the ad group. The linked extension feed items will + // serve under this ad group. + // AdGroup resource names have the form: + // + // `customers/{customer_id}/adGroups/{ad_group_id}` + optional string ad_group = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // The resource names of the extension feed items to serve under the ad group. + // ExtensionFeedItem resource names have the form: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + repeated string extension_feed_items = 7 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + + // The device for which the extensions will serve. Optional. + google.ads.googleads.v11.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5; +} diff --git a/google/ads/googleads/v11/resources/ad_group_feed.proto b/google/ads/googleads/v11/resources/ad_group_feed.proto new file mode 100644 index 000000000..ece56cb2f --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_feed.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/matching_function.proto"; +import "google/ads/googleads/v11/enums/feed_link_status.proto"; +import "google/ads/googleads/v11/enums/placeholder_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupFeedProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the AdGroupFeed resource. + +// An ad group feed. +message AdGroupFeed { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupFeed" + pattern: "customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}" + }; + + // Immutable. The resource name of the ad group feed. + // Ad group feed resource names have the form: + // + // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id} + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupFeed" + } + ]; + + // Immutable. The feed being linked to the ad group. + optional string feed = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Immutable. The ad group being linked to the feed. + optional string ad_group = 8 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Indicates which placeholder types the feed may populate under the connected + // ad group. Required. + repeated google.ads.googleads.v11.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.v11.common.MatchingFunction matching_function = 5; + + // Output only. Status of the ad group feed. + // This field is read-only. + google.ads.googleads.v11.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_label.proto b/google/ads/googleads/v11/resources/ad_group_label.proto new file mode 100644 index 000000000..d3929fe14 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupLabelProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group label resource. + +// A relationship between an ad group and a label. +message AdGroupLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupLabel" + pattern: "customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}" + }; + + // Immutable. The resource name of the ad group label. + // Ad group label resource names have the form: + // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupLabel" + } + ]; + + // Immutable. The ad group to which the label is attached. + optional string ad_group = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Immutable. The label assigned to the ad group. + optional string label = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/ad_group_simulation.proto b/google/ads/googleads/v11/resources/ad_group_simulation.proto new file mode 100644 index 000000000..8642d9fff --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_group_simulation.proto @@ -0,0 +1,93 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/simulation.proto"; +import "google/ads/googleads/v11/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v11/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupSimulationProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad group simulation resource. + +// An ad group simulation. Supported combinations of advertising +// channel type, simulation type and simulation modification method is +// detailed below respectively. +// +// 1. SEARCH - CPC_BID - DEFAULT +// 2. SEARCH - CPC_BID - UNIFORM +// 3. SEARCH - TARGET_CPA - UNIFORM +// 4. SEARCH - TARGET_ROAS - UNIFORM +// 5. DISPLAY - CPC_BID - DEFAULT +// 6. DISPLAY - CPC_BID - UNIFORM +// 7. DISPLAY - TARGET_CPA - UNIFORM +message AdGroupSimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdGroupSimulation" + pattern: "customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the ad group simulation. + // Ad group simulation resource names have the form: + // + // `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupSimulation" + } + ]; + + // Output only. Ad group id of the simulation. + optional int64 ad_group_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v11.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v11.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + optional string start_date = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format + optional string end_date = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is CPC_BID. + google.ads.googleads.v11.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.v11.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.v11.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.v11.common.TargetRoasSimulationPointList target_roas_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/ad_parameter.proto b/google/ads/googleads/v11/resources/ad_parameter.proto new file mode 100644 index 000000000..09c520060 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_parameter.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdParameterProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad parameter resource. + +// An ad parameter that is used to update numeric values (such as prices or +// inventory levels) in any text line of an ad (including URLs). There can +// be a maximum of two AdParameters per ad group criterion. (One with +// parameter_index = 1 and one with parameter_index = 2.) +// In the ad the parameters are referenced by a placeholder of the form +// "{param#:value}". For example, "{param1:$17}" +message AdParameter { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdParameter" + pattern: "customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}" + }; + + // Immutable. The resource name of the ad parameter. + // Ad parameter resource names have the form: + // + // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdParameter" + } + ]; + + // Immutable. The ad group criterion that this ad parameter belongs to. + optional string ad_group_criterion = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Immutable. The unique index of this ad parameter. Must be either 1 or 2. + optional int64 parameter_index = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Numeric value to insert into the ad text. The following restrictions + // apply: + // - Can use comma or period as a separator, with an optional period or + // comma (respectively) for fractional values. For example, 1,000,000.00 + // and 2.000.000,10 are valid. + // - Can be prepended or appended with a currency symbol. For example, + // $99.99 is valid. + // - Can be prepended or appended with a currency code. For example, 99.99USD + // and EUR200 are valid. + // - Can use '%'. For example, 1.0% and 1,0% are valid. + // - Can use plus or minus. For example, -10.99 and 25+ are valid. + // - Can use '/' between two numbers. For example 4/1 and 0.95/0.45 are + // valid. + optional string insertion_text = 7; +} diff --git a/google/ads/googleads/v11/resources/ad_schedule_view.proto b/google/ads/googleads/v11/resources/ad_schedule_view.proto new file mode 100644 index 000000000..78844cae6 --- /dev/null +++ b/google/ads/googleads/v11/resources/ad_schedule_view.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdScheduleViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ad schedule view resource. + +// An ad schedule view summarizes the performance of campaigns by +// AdSchedule criteria. +message AdScheduleView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AdScheduleView" + pattern: "customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}" + }; + + // Output only. The resource name of the ad schedule view. + // AdSchedule view resource names have the form: + // + // `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdScheduleView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/age_range_view.proto b/google/ads/googleads/v11/resources/age_range_view.proto new file mode 100644 index 000000000..302aa99dc --- /dev/null +++ b/google/ads/googleads/v11/resources/age_range_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AgeRangeViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the age range view resource. + +// An age range view. +message AgeRangeView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AgeRangeView" + pattern: "customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the age range view. + // Age range view resource names have the form: + // + // `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AgeRangeView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/asset.proto b/google/ads/googleads/v11/resources/asset.proto new file mode 100644 index 000000000..bb221d3df --- /dev/null +++ b/google/ads/googleads/v11/resources/asset.proto @@ -0,0 +1,183 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/asset_types.proto"; +import "google/ads/googleads/v11/common/custom_parameter.proto"; +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/asset_source.proto"; +import "google/ads/googleads/v11/enums/asset_type.proto"; +import "google/ads/googleads/v11/enums/policy_approval_status.proto"; +import "google/ads/googleads/v11/enums/policy_review_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the asset resource. + +// Asset is a part of an ad which can be shared across multiple ads. +// It can be an image (ImageAsset), a video (YoutubeVideoAsset), etc. +// Assets are immutable and cannot be removed. To stop an asset from serving, +// remove the asset from the entity that is using it. +message Asset { + option (google.api.resource) = { + type: "googleads.googleapis.com/Asset" + pattern: "customers/{customer_id}/assets/{asset_id}" + }; + + // Immutable. The resource name of the asset. + // Asset resource names have the form: + // + // `customers/{customer_id}/assets/{asset_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. The ID of the asset. + optional int64 id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional name of the asset. + optional string name = 12; + + // Output only. Type of the asset. + google.ads.googleads.v11.enums.AssetTypeEnum.AssetType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A list of possible final URLs after all cross domain redirects. + repeated string final_urls = 14; + + // A list of possible final mobile URLs after all cross domain redirects. + repeated string final_mobile_urls = 16; + + // URL template for constructing a tracking URL. + optional string tracking_url_template = 17; + + // 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.v11.common.CustomParameter url_custom_parameters = 18; + + // URL template for appending params to landing page URLs served with parallel + // tracking. + optional string final_url_suffix = 19; + + // Output only. Source of the asset. + google.ads.googleads.v11.enums.AssetSourceEnum.AssetSource source = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Policy information for the asset. + AssetPolicySummary policy_summary = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The specific type of the asset. + oneof asset_data { + // Immutable. A YouTube video asset. + google.ads.googleads.v11.common.YoutubeVideoAsset youtube_video_asset = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A media bundle asset. + google.ads.googleads.v11.common.MediaBundleAsset media_bundle_asset = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. An image asset. + google.ads.googleads.v11.common.ImageAsset image_asset = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. A text asset. + google.ads.googleads.v11.common.TextAsset text_asset = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // A lead form asset. + google.ads.googleads.v11.common.LeadFormAsset lead_form_asset = 9; + + // A book on google asset. + google.ads.googleads.v11.common.BookOnGoogleAsset book_on_google_asset = 10; + + // A promotion asset. + google.ads.googleads.v11.common.PromotionAsset promotion_asset = 15; + + // A callout asset. + google.ads.googleads.v11.common.CalloutAsset callout_asset = 20; + + // A structured snippet asset. + google.ads.googleads.v11.common.StructuredSnippetAsset structured_snippet_asset = 21; + + // A sitelink asset. + google.ads.googleads.v11.common.SitelinkAsset sitelink_asset = 22; + + // A page feed asset. + google.ads.googleads.v11.common.PageFeedAsset page_feed_asset = 23; + + // A dynamic education asset. + google.ads.googleads.v11.common.DynamicEducationAsset dynamic_education_asset = 24; + + // A mobile app asset. + google.ads.googleads.v11.common.MobileAppAsset mobile_app_asset = 25; + + // A hotel callout asset. + google.ads.googleads.v11.common.HotelCalloutAsset hotel_callout_asset = 26; + + // A call asset. + google.ads.googleads.v11.common.CallAsset call_asset = 27; + + // A price asset. + google.ads.googleads.v11.common.PriceAsset price_asset = 28; + + // Immutable. A call to action asset. + google.ads.googleads.v11.common.CallToActionAsset call_to_action_asset = 29 [(google.api.field_behavior) = IMMUTABLE]; + + // A dynamic real estate asset. + google.ads.googleads.v11.common.DynamicRealEstateAsset dynamic_real_estate_asset = 30; + + // A dynamic custom asset. + google.ads.googleads.v11.common.DynamicCustomAsset dynamic_custom_asset = 31; + + // A dynamic hotels and rentals asset. + google.ads.googleads.v11.common.DynamicHotelsAndRentalsAsset dynamic_hotels_and_rentals_asset = 32; + + // A dynamic flights asset. + google.ads.googleads.v11.common.DynamicFlightsAsset dynamic_flights_asset = 33; + + // Immutable. A discovery carousel card asset. + google.ads.googleads.v11.common.DiscoveryCarouselCardAsset discovery_carousel_card_asset = 34 [(google.api.field_behavior) = IMMUTABLE]; + + // A dynamic travel asset. + google.ads.googleads.v11.common.DynamicTravelAsset dynamic_travel_asset = 35; + + // A dynamic local asset. + google.ads.googleads.v11.common.DynamicLocalAsset dynamic_local_asset = 36; + + // A dynamic jobs asset. + google.ads.googleads.v11.common.DynamicJobsAsset dynamic_jobs_asset = 37; + } +} + +// Contains policy information for an asset. +message AssetPolicySummary { + // Output only. The list of policy findings for this asset. + repeated google.ads.googleads.v11.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.v11.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.v11.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/asset_field_type_view.proto b/google/ads/googleads/v11/resources/asset_field_type_view.proto new file mode 100644 index 000000000..364ffc9c6 --- /dev/null +++ b/google/ads/googleads/v11/resources/asset_field_type_view.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/asset_field_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetFieldTypeViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the AssetFieldTypeView resource. + +// An asset field type view. +// This view reports non-overcounted metrics for each asset field type when the +// asset is used as extension. +message AssetFieldTypeView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetFieldTypeView" + pattern: "customers/{customer_id}/assetFieldTypeViews/{field_type}" + }; + + // Output only. The resource name of the asset field type view. + // Asset field type view resource names have the form: + // + // `customers/{customer_id}/assetFieldTypeViews/{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetFieldTypeView" + } + ]; + + // Output only. The asset field type of the asset field type view. + google.ads.googleads.v11.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/asset_group.proto b/google/ads/googleads/v11/resources/asset_group.proto new file mode 100644 index 000000000..19e84be79 --- /dev/null +++ b/google/ads/googleads/v11/resources/asset_group.proto @@ -0,0 +1,91 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/ad_strength.proto"; +import "google/ads/googleads/v11/enums/asset_group_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// An asset group. +// AssetGroupAsset is used to link an asset to the asset group. +// AssetGroupSignal is used to associate a signal to an asset group. +message AssetGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroup" + pattern: "customers/{customer_id}/assetGroups/{asset_group_id}" + }; + + // Immutable. The resource name of the asset group. + // Asset group resource names have the form: + // + // `customers/{customer_id}/assetGroups/{asset_group_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Output only. The ID of the asset group. + int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The campaign with which this asset group is associated. + // The asset which is linked to the asset group. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Required. Name of the asset group. Required. It must have a minimum length of 1 and + // maximum length of 128. It must be unique under a campaign. + string name = 3 [(google.api.field_behavior) = REQUIRED]; + + // A list of final URLs after all cross domain redirects. In performance max, + // by default, the urls are eligible for expansion unless opted out. + repeated string final_urls = 4; + + // A list of final mobile URLs after all cross domain redirects. In + // performance max, by default, the urls are eligible for expansion + // unless opted out. + repeated string final_mobile_urls = 5; + + // The status of the asset group. + google.ads.googleads.v11.enums.AssetGroupStatusEnum.AssetGroupStatus status = 6; + + // First part of text that may appear appended to the url displayed in + // the ad. + string path1 = 7; + + // Second part of text that may appear appended to the url displayed in + // the ad. This field can only be set when path1 is set. + string path2 = 8; + + // Output only. Overall ad strength of this asset group. + google.ads.googleads.v11.enums.AdStrengthEnum.AdStrength ad_strength = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/asset_group_asset.proto b/google/ads/googleads/v11/resources/asset_group_asset.proto new file mode 100644 index 000000000..a4cac5357 --- /dev/null +++ b/google/ads/googleads/v11/resources/asset_group_asset.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/policy_summary.proto"; +import "google/ads/googleads/v11/enums/asset_field_type.proto"; +import "google/ads/googleads/v11/enums/asset_link_status.proto"; +import "google/ads/googleads/v11/enums/asset_performance_label.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupAssetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// AssetGroupAsset is the link between an asset and an asset group. +// Adding an AssetGroupAsset links an asset with an asset group. +message AssetGroupAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupAsset" + pattern: "customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}" + }; + + // Immutable. The resource name of the asset group asset. + // Asset group asset resource name have the form: + // + // `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupAsset" + } + ]; + + // Immutable. The asset group which this asset group asset is linking. + string asset_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Immutable. The asset which this asset group asset is linking. + string asset = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // The description of the placement of the asset within the asset group. For + // example: HEADLINE, YOUTUBE_VIDEO etc + google.ads.googleads.v11.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4; + + // The status of the link between an asset and asset group. + google.ads.googleads.v11.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; + + // Output only. The performance of this asset group asset. + google.ads.googleads.v11.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.v11.common.PolicySummary policy_summary = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/asset_group_listing_group_filter.proto b/google/ads/googleads/v11/resources/asset_group_listing_group_filter.proto new file mode 100644 index 000000000..cac87667d --- /dev/null +++ b/google/ads/googleads/v11/resources/asset_group_listing_group_filter.proto @@ -0,0 +1,172 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/listing_group_filter_bidding_category_level.proto"; +import "google/ads/googleads/v11/enums/listing_group_filter_custom_attribute_index.proto"; +import "google/ads/googleads/v11/enums/listing_group_filter_product_channel.proto"; +import "google/ads/googleads/v11/enums/listing_group_filter_product_condition.proto"; +import "google/ads/googleads/v11/enums/listing_group_filter_product_type_level.proto"; +import "google/ads/googleads/v11/enums/listing_group_filter_type_enum.proto"; +import "google/ads/googleads/v11/enums/listing_group_filter_vertical.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupListingGroupFilterProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// AssetGroupListingGroupFilter represents a listing group filter tree node in +// an asset group. +message AssetGroupListingGroupFilter { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + pattern: "customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}" + }; + + // Immutable. The resource name of the asset group listing group filter. + // Asset group listing group filter resource name have the form: + // + // `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + } + ]; + + // Immutable. The asset group which this asset group listing group filter is part of. + string asset_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Output only. The ID of the ListingGroupFilter. + int64 id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Type of a listing group filter node. + google.ads.googleads.v11.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.v11.enums.ListingGroupFilterVerticalEnum.ListingGroupFilterVertical vertical = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Dimension value with which this listing group is refining its parent. + // Undefined for the root group. + ListingGroupFilterDimension case_value = 6; + + // Immutable. Resource name of the parent listing group subdivision. Null for the root + // listing group filter node. + string parent_listing_group_filter = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + } + ]; +} + +// Listing dimensions for the asset group listing group filter. +message ListingGroupFilterDimension { + // One element of a bidding 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. + // + // 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; + + // Indicates the level of the category in the taxonomy. + google.ads.googleads.v11.enums.ListingGroupFilterBiddingCategoryLevelEnum.ListingGroupFilterBiddingCategoryLevel level = 2; + } + + // Brand of the product. + message ProductBrand { + // String value of the product brand. + optional string value = 1; + } + + // Locality of a product offer. + message ProductChannel { + // Value of the locality. + google.ads.googleads.v11.enums.ListingGroupFilterProductChannelEnum.ListingGroupFilterProductChannel channel = 1; + } + + // Condition of a product offer. + message ProductCondition { + // Value of the condition. + google.ads.googleads.v11.enums.ListingGroupFilterProductConditionEnum.ListingGroupFilterProductCondition condition = 1; + } + + // Custom attribute of a product offer. + message ProductCustomAttribute { + // String value of the product custom attribute. + optional string value = 1; + + // Indicates the index of the custom attribute. + google.ads.googleads.v11.enums.ListingGroupFilterCustomAttributeIndexEnum.ListingGroupFilterCustomAttributeIndex index = 2; + } + + // Item id of a product offer. + message ProductItemId { + // Value of the id. + optional string value = 1; + } + + // Type of a product offer. + message ProductType { + // Value of the type. + optional string value = 1; + + // Level of the type. + google.ads.googleads.v11.enums.ListingGroupFilterProductTypeLevelEnum.ListingGroupFilterProductTypeLevel level = 2; + } + + // Dimension of one of the types below is always present. + oneof dimension { + // Bidding category of a product offer. + ProductBiddingCategory product_bidding_category = 1; + + // Brand of a product offer. + ProductBrand product_brand = 2; + + // Locality of a product offer. + ProductChannel product_channel = 3; + + // Condition of a product offer. + ProductCondition product_condition = 4; + + // Custom attribute of a product offer. + ProductCustomAttribute product_custom_attribute = 5; + + // Item id of a product offer. + ProductItemId product_item_id = 6; + + // Type of a product offer. + ProductType product_type = 7; + } +} diff --git a/google/ads/googleads/v11/resources/asset_group_product_group_view.proto b/google/ads/googleads/v11/resources/asset_group_product_group_view.proto new file mode 100644 index 000000000..a49301c94 --- /dev/null +++ b/google/ads/googleads/v11/resources/asset_group_product_group_view.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupProductGroupViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the AssetGroupProductGroupView resource. + +// An asset group product group view. +message AssetGroupProductGroupView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupProductGroupView" + pattern: "customers/{customer_id}/assetGroupProductGroupViews/{asset_group_id}~{listing_group_filter_id}" + }; + + // Output only. The resource name of the asset group product group view. + // Asset group product group view resource names have the form: + // + // `customers/{customer_id}/assetGroupProductGroupViews/{asset_group_id}~{listing_group_filter_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupProductGroupView" + } + ]; + + // Output only. The asset group associated with the listing group filter. + string asset_group = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Output only. The resource name of the asset group listing group filter. + string asset_group_listing_group_filter = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/asset_group_signal.proto b/google/ads/googleads/v11/resources/asset_group_signal.proto new file mode 100644 index 000000000..c4199cb68 --- /dev/null +++ b/google/ads/googleads/v11/resources/asset_group_signal.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupSignalProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::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. +// Performance Max uses the signal to look for new people with similar or +// stronger intent to find conversions across Search, Display, Video, and more. +message AssetGroupSignal { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupSignal" + pattern: "customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}" + }; + + // Immutable. The resource name of the asset group signal. + // Asset group signal resource name have the form: + // + // `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{signal_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupSignal" + } + ]; + + // Immutable. The asset group which this asset group signal belongs to. + string asset_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; + + // Immutable. The signal(audience criterion) to be used by the performance max campaign. + google.ads.googleads.v11.common.AudienceInfo audience = 3 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v11/resources/asset_set.proto b/google/ads/googleads/v11/resources/asset_set.proto new file mode 100644 index 000000000..785bf263f --- /dev/null +++ b/google/ads/googleads/v11/resources/asset_set.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/asset_set_status.proto"; +import "google/ads/googleads/v11/enums/asset_set_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// An asset set representing a collection of assets. +// Use AssetSetAsset to link an asset to the asset set. +message AssetSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetSet" + pattern: "customers/{customer_id}/assetSets/{asset_set_id}" + }; + + // Merchant ID and Feed Label from Google Merchant Center. + message MerchantCenterFeed { + // Required. Merchant ID from Google Merchant Center + int64 merchant_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Feed Label from Google Merchant Center. + optional string feed_label = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Output only. The ID of the asset set. + int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The resource name of the asset set. + // Asset set resource names have the form: + // + // `customers/{customer_id}/assetSets/{asset_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + } + ]; + + // Required. Name of the asset set. Required. It must have a minimum length of 1 and + // maximum length of 128. + string name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The type of the asset set. Required. + google.ads.googleads.v11.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.v11.enums.AssetSetStatusEnum.AssetSetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Merchant ID and Feed Label from Google Merchant Center. + MerchantCenterFeed merchant_center_feed = 5; +} diff --git a/google/ads/googleads/v11/resources/asset_set_asset.proto b/google/ads/googleads/v11/resources/asset_set_asset.proto new file mode 100644 index 000000000..9a943ed04 --- /dev/null +++ b/google/ads/googleads/v11/resources/asset_set_asset.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/asset_set_asset_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetAssetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// AssetSetAsset is the link between an asset and an asset set. +// Adding an AssetSetAsset links an asset with an asset set. +message AssetSetAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetSetAsset" + pattern: "customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}" + }; + + // Immutable. The resource name of the asset set asset. + // Asset set asset resource names have the form: + // + // `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSetAsset" + } + ]; + + // Immutable. The asset set which this asset set asset is linking to. + string asset_set = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + } + ]; + + // Immutable. The asset which this asset set asset is linking to. + string asset = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. The status of the asset set asset. Read-only. + google.ads.googleads.v11.enums.AssetSetAssetStatusEnum.AssetSetAssetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/audience.proto b/google/ads/googleads/v11/resources/audience.proto new file mode 100644 index 000000000..f3f02603d --- /dev/null +++ b/google/ads/googleads/v11/resources/audience.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/audiences.proto"; +import "google/ads/googleads/v11/enums/audience_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AudienceProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Audience resource. + +// Audience is an effective targeting option that lets you +// intersect different segment attributes, such as detailed demographics and +// affinities, to create audiences that represent sections of your target +// segments. +message Audience { + option (google.api.resource) = { + type: "googleads.googleapis.com/Audience" + pattern: "customers/{customer_id}/audiences/{audience_id}" + }; + + // Immutable. The resource name of the audience. + // Audience names have the form: + // + // `customers/{customer_id}/audiences/{audience_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Audience" + } + ]; + + // Output only. ID of the audience. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of this audience. Indicates whether the audience + // is enabled or removed. + google.ads.googleads.v11.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]; + + // Description of this audience. + string description = 5; + + // Positive dimensions specifying the audience composition. + repeated google.ads.googleads.v11.common.AudienceDimension dimensions = 6; + + // Negative dimension specifying the audience composition. + google.ads.googleads.v11.common.AudienceExclusionDimension exclusion_dimension = 7; +} diff --git a/google/ads/googleads/v11/resources/batch_job.proto b/google/ads/googleads/v11/resources/batch_job.proto new file mode 100644 index 000000000..be4fca17d --- /dev/null +++ b/google/ads/googleads/v11/resources/batch_job.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/batch_job_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BatchJobProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the batch job resource. + +// A list of mutates being processed asynchronously. The mutates are uploaded +// by the user. The mutates themselves aren't readable and the results of the +// job can only be read using BatchJobService.ListBatchJobResults. +message BatchJob { + option (google.api.resource) = { + type: "googleads.googleapis.com/BatchJob" + pattern: "customers/{customer_id}/batchJobs/{batch_job_id}" + }; + + // Additional information about the batch job. This message is also used as + // metadata returned in batch job Long Running Operations. + message BatchJobMetadata { + // Output only. The time when this batch job was created. + // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:00" + optional string creation_date_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this batch job started running. + // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:30" + optional string start_date_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this batch job was completed. + // Formatted as yyyy-MM-dd HH:mm:ss. Example: "2018-03-05 09:16:00" + optional string completion_date_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The fraction (between 0.0 and 1.0) of mutates that have been processed. + // This is empty if the job hasn't started running yet. + optional double estimated_completion_ratio = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of mutate operations in the batch job. + optional int64 operation_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of mutate operations executed by the batch job. + // Present only if the job has started running. + optional int64 executed_operation_count = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the batch job. + // Batch job resource names have the form: + // + // `customers/{customer_id}/batchJobs/{batch_job_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + } + ]; + + // Output only. ID of this batch job. + optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The next sequence token to use when adding operations. Only set when the + // batch job status is PENDING. + optional string next_add_sequence_token = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Contains additional information about this batch job. + BatchJobMetadata metadata = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of this batch job. + google.ads.googleads.v11.enums.BatchJobStatusEnum.BatchJobStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the long-running operation that can be used to poll + // for completion. Only set when the batch job status is RUNNING or DONE. + optional string long_running_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/bidding_data_exclusion.proto b/google/ads/googleads/v11/resources/bidding_data_exclusion.proto new file mode 100644 index 000000000..016899d0a --- /dev/null +++ b/google/ads/googleads/v11/resources/bidding_data_exclusion.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v11/enums/device.proto"; +import "google/ads/googleads/v11/enums/seasonality_event_scope.proto"; +import "google/ads/googleads/v11/enums/seasonality_event_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BiddingDataExclusionProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Represents a bidding data exclusion. +// +// See "About data exclusions" at +// https://support.google.com/google-ads/answer/10370710. +message BiddingDataExclusion { + option (google.api.resource) = { + type: "googleads.googleapis.com/BiddingDataExclusion" + pattern: "customers/{customer_id}/biddingDataExclusions/{seasonality_event_id}" + }; + + // Immutable. The resource name of the data exclusion. + // Data exclusion resource names have the form: + // + // `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingDataExclusion" + } + ]; + + // Output only. The ID of the data exclusion. + int64 data_exclusion_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The scope of the data exclusion. + google.ads.googleads.v11.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; + + // Output only. The status of the data exclusion. + google.ads.googleads.v11.enums.SeasonalityEventStatusEnum.SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The inclusive start time of the data exclusion in yyyy-MM-dd HH:mm:ss + // format. + // + // A data exclusion is backward looking and should be used for events that + // start in the past and end either in the past or future. + string start_date_time = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The exclusive end time of the data exclusion in yyyy-MM-dd HH:mm:ss format. + // + // The length of [start_date_time, end_date_time) interval must be + // within (0, 14 days]. + string end_date_time = 6 [(google.api.field_behavior) = REQUIRED]; + + // The name of the data exclusion. The name can be at most 255 + // characters. + string name = 7; + + // The description of the data exclusion. The description can be at + // most 2048 characters. + string description = 8; + + // 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.v11.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 + // 2000. + // Note: a data exclusion with both advertising_channel_types and + // campaign_ids is not supported. + repeated string campaigns = 10 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // The data_exclusion will apply to all the campaigns under the listed + // channels retroactively as well as going forward when the scope of this + // exclusion is CHANNEL. + // 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.v11.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_types = 11; +} diff --git a/google/ads/googleads/v11/resources/bidding_seasonality_adjustment.proto b/google/ads/googleads/v11/resources/bidding_seasonality_adjustment.proto new file mode 100644 index 000000000..b2ca0192d --- /dev/null +++ b/google/ads/googleads/v11/resources/bidding_seasonality_adjustment.proto @@ -0,0 +1,113 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v11/enums/device.proto"; +import "google/ads/googleads/v11/enums/seasonality_event_scope.proto"; +import "google/ads/googleads/v11/enums/seasonality_event_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BiddingSeasonalityAdjustmentProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Represents a bidding seasonality adjustment. +// +// See "About seasonality adjustments" at +// https://support.google.com/google-ads/answer/10369906. +message BiddingSeasonalityAdjustment { + option (google.api.resource) = { + type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" + pattern: "customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_event_id}" + }; + + // Immutable. The resource name of the seasonality adjustment. + // Seasonality adjustment resource names have the form: + // + // `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" + } + ]; + + // Output only. The ID of the seasonality adjustment. + int64 seasonality_adjustment_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The scope of the seasonality adjustment. + google.ads.googleads.v11.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; + + // Output only. The status of the seasonality adjustment. + google.ads.googleads.v11.enums.SeasonalityEventStatusEnum.SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The inclusive start time of the seasonality adjustment in yyyy-MM-dd + // HH:mm:ss format. + // + // A seasonality adjustment is forward looking and should be used for events + // that start and end in the future. + string start_date_time = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The exclusive end time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss + // format. + // + // The length of [start_date_time, end_date_time) interval must be + // within (0, 14 days]. + string end_date_time = 6 [(google.api.field_behavior) = REQUIRED]; + + // The name of the seasonality adjustment. The name can be at most 255 + // characters. + string name = 7; + + // The description of the seasonality adjustment. The description can be at + // most 2048 characters. + string description = 8; + + // 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.v11.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 + // applied to traffic. The allowed range is 0.1 to 10.0. + double conversion_rate_modifier = 10; + + // The seasonality adjustment will apply to the campaigns listed when the + // scope of this adjustment is CAMPAIGN. The maximum number of campaigns per + // event is 2000. + // Note: a seasonality adjustment with both advertising_channel_types and + // campaign_ids is not supported. + repeated string campaigns = 11 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // The seasonality adjustment will apply to all the campaigns under the listed + // channels retroactively as well as going forward when the scope of this + // adjustment is CHANNEL. + // 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.v11.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_types = 12; +} diff --git a/google/ads/googleads/v11/resources/bidding_strategy.proto b/google/ads/googleads/v11/resources/bidding_strategy.proto new file mode 100644 index 000000000..8f9d8266c --- /dev/null +++ b/google/ads/googleads/v11/resources/bidding_strategy.proto @@ -0,0 +1,138 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/bidding.proto"; +import "google/ads/googleads/v11/enums/bidding_strategy_status.proto"; +import "google/ads/googleads/v11/enums/bidding_strategy_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the BiddingStrategy resource + +// A bidding strategy. +message BiddingStrategy { + option (google.api.resource) = { + type: "googleads.googleapis.com/BiddingStrategy" + pattern: "customers/{customer_id}/biddingStrategies/{bidding_strategy_id}" + }; + + // Immutable. The resource name of the bidding strategy. + // Bidding strategy resource names have the form: + // + // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategy" + } + ]; + + // Output only. The ID of the bidding strategy. + optional int64 id = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the bidding strategy. + // All bidding strategies within an account must be named distinctly. + // + // The length of this string should be between 1 and 255, inclusive, + // in UTF-8 bytes, (trimmed). + optional string name = 17; + + // Output only. The status of the bidding strategy. + // + // This field is read-only. + google.ads.googleads.v11.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.v11.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The currency used by the bidding strategy (ISO 4217 three-letter code). + // + // For bidding strategies in manager customers, this currency can be set on + // creation and defaults to the manager customer's currency. For serving + // customers, this field cannot be set; all strategies in a serving customer + // implicitly use the serving customer's currency. In all cases the + // effective_currency_code field returns the currency used by the strategy. + string currency_code = 23 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The currency used by the bidding strategy (ISO 4217 three-letter code). + // + // For bidding strategies in manager customers, this is the currency set by + // the advertiser when creating the strategy. For serving customers, this is + // the customer's currency_code. + // + // Bidding strategy metrics are reported in this currency. + // + // This field is read-only. + optional string effective_currency_code = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of campaigns attached to this bidding strategy. + // + // This field is read-only. + optional int64 campaign_count = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of non-removed campaigns attached to this bidding strategy. + // + // This field is read-only. + optional int64 non_removed_campaign_count = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The bidding scheme. + // + // Only one can be set. + oneof scheme { + // 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.v11.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.v11.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.v11.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.v11.common.TargetCpa target_cpa = 9; + + // A bidding strategy that automatically optimizes towards a chosen + // percentage of impressions. + google.ads.googleads.v11.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.v11.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.v11.common.TargetSpend target_spend = 12; + } +} diff --git a/google/ads/googleads/v11/resources/bidding_strategy_simulation.proto b/google/ads/googleads/v11/resources/bidding_strategy_simulation.proto new file mode 100644 index 000000000..2936eb93a --- /dev/null +++ b/google/ads/googleads/v11/resources/bidding_strategy_simulation.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/simulation.proto"; +import "google/ads/googleads/v11/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v11/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategySimulationProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the bidding strategy simulation resource. + +// A bidding strategy simulation. Supported combinations of simulation type +// and simulation modification method are detailed below respectively. +// +// 1. TARGET_CPA - UNIFORM +// 2. TARGET_ROAS - UNIFORM +message BiddingStrategySimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/BiddingStrategySimulation" + pattern: "customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the bidding strategy simulation. + // Bidding strategy simulation resource names have the form: + // + // `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategySimulation" + } + ]; + + // Output only. Bidding strategy shared set id of the simulation. + int64 bidding_strategy_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v11.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v11.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + string start_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format + string end_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is TARGET_CPA. + google.ads.googleads.v11.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.v11.common.TargetRoasSimulationPointList target_roas_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/billing_setup.proto b/google/ads/googleads/v11/resources/billing_setup.proto new file mode 100644 index 000000000..5d67e3b55 --- /dev/null +++ b/google/ads/googleads/v11/resources/billing_setup.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/billing_setup_status.proto"; +import "google/ads/googleads/v11/enums/time_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "BillingSetupProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the BillingSetup resource. + +// A billing setup, which associates a payments account and an advertiser. A +// billing setup is specific to one advertiser. +message BillingSetup { + option (google.api.resource) = { + type: "googleads.googleapis.com/BillingSetup" + pattern: "customers/{customer_id}/billingSetups/{billing_setup_id}" + }; + + // Container of payments account information for this billing. + message PaymentsAccountInfo { + // Output only. A 16 digit id used to identify the payments account associated with the + // billing setup. + // + // This must be passed as a string with dashes, for example, + // "1234-5678-9012-3456". + optional string payments_account_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The name of the payments account associated with the billing setup. + // + // This enables the user to specify a meaningful name for a payments account + // to aid in reconciling monthly invoices. + // + // This name will be printed in the monthly invoices. + optional string payments_account_name = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A 12 digit id used to identify the payments profile associated with the + // billing setup. + // + // This must be passed in as a string with dashes, for example, + // "1234-5678-9012". + optional string payments_profile_id = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The name of the payments profile associated with the billing setup. + optional string payments_profile_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A secondary payments profile id present in uncommon situations, for + // example, when a sequential liability agreement has been arranged. + optional string secondary_payments_profile_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the billing setup. + // BillingSetup resource names have the form: + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + } + ]; + + // Output only. The ID of the billing setup. + optional int64 id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the billing setup. + google.ads.googleads.v11.enums.BillingSetupStatusEnum.BillingSetupStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The resource name of the payments account associated with this billing + // setup. Payments resource names have the form: + // + // `customers/{customer_id}/paymentsAccounts/{payments_account_id}` + // When setting up billing, this is used to signup with an existing payments + // account (and then payments_account_info should not be set). + // When getting a billing setup, this and payments_account_info will be + // populated. + optional string payments_account = 18 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/PaymentsAccount" + } + ]; + + // Immutable. The payments account information associated with this billing setup. + // When setting up billing, this is used to signup with a new payments account + // (and then payments_account should not be set). + // When getting a billing setup, this and payments_account will be + // populated. + PaymentsAccountInfo payments_account_info = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // When creating a new billing setup, this is when the setup should take + // effect. NOW is the only acceptable start time if the customer doesn't have + // any approved setups. + // + // When fetching an existing billing setup, this is the requested start time. + // However, if the setup was approved (see status) after the requested start + // time, then this is the approval time. + oneof start_time { + // Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. Only a + // future time is allowed. + string start_date_time = 16 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The start time as a type. Only NOW is allowed. + google.ads.googleads.v11.enums.TimeTypeEnum.TimeType start_time_type = 10 [(google.api.field_behavior) = IMMUTABLE]; + } + + // When the billing setup ends / ended. This is either FOREVER or the start + // time of the next scheduled billing setup. + oneof end_time { + // Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. + 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.v11.enums.TimeTypeEnum.TimeType end_time_type = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/call_view.proto b/google/ads/googleads/v11/resources/call_view.proto new file mode 100644 index 000000000..6f4bab6b1 --- /dev/null +++ b/google/ads/googleads/v11/resources/call_view.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/call_tracking_display_location.proto"; +import "google/ads/googleads/v11/enums/call_type.proto"; +import "google/ads/googleads/v11/enums/google_voice_call_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CallViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the call view resource. + +// A call view that includes data for call tracking of call-only ads or call +// extensions. +message CallView { + option (google.api.resource) = { + type: "googleads.googleapis.com/CallView" + pattern: "customers/{customer_id}/callViews/{call_detail_id}" + }; + + // Output only. The resource name of the call view. + // Call view resource names have the form: + // + // `customers/{customer_id}/callViews/{call_detail_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CallView" + } + ]; + + // Output only. Country code of the caller. + string caller_country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Area code of the caller. Null if the call duration is shorter than 15 + // seconds. + string caller_area_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The advertiser-provided call duration in seconds. + int64 call_duration_seconds = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The advertiser-provided call start date time. + string start_call_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The advertiser-provided call end date time. + string end_call_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The call tracking display location. + google.ads.googleads.v11.enums.CallTrackingDisplayLocationEnum.CallTrackingDisplayLocation call_tracking_display_location = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the call. + google.ads.googleads.v11.enums.CallTypeEnum.CallType type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the call. + google.ads.googleads.v11.enums.GoogleVoiceCallStatusEnum.GoogleVoiceCallStatus call_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/campaign.proto b/google/ads/googleads/v11/resources/campaign.proto new file mode 100644 index 000000000..d6e3ce7dd --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign.proto @@ -0,0 +1,535 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/bidding.proto"; +import "google/ads/googleads/v11/common/custom_parameter.proto"; +import "google/ads/googleads/v11/common/frequency_cap.proto"; +import "google/ads/googleads/v11/common/real_time_bidding_setting.proto"; +import "google/ads/googleads/v11/common/targeting_setting.proto"; +import "google/ads/googleads/v11/enums/ad_serving_optimization_status.proto"; +import "google/ads/googleads/v11/enums/advertising_channel_sub_type.proto"; +import "google/ads/googleads/v11/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v11/enums/app_campaign_app_store.proto"; +import "google/ads/googleads/v11/enums/app_campaign_bidding_strategy_goal_type.proto"; +import "google/ads/googleads/v11/enums/asset_field_type.proto"; +import "google/ads/googleads/v11/enums/bidding_strategy_system_status.proto"; +import "google/ads/googleads/v11/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v11/enums/brand_safety_suitability.proto"; +import "google/ads/googleads/v11/enums/campaign_experiment_type.proto"; +import "google/ads/googleads/v11/enums/campaign_serving_status.proto"; +import "google/ads/googleads/v11/enums/campaign_status.proto"; +import "google/ads/googleads/v11/enums/location_source_type.proto"; +import "google/ads/googleads/v11/enums/negative_geo_target_type.proto"; +import "google/ads/googleads/v11/enums/optimization_goal_type.proto"; +import "google/ads/googleads/v11/enums/payment_mode.proto"; +import "google/ads/googleads/v11/enums/performance_max_upgrade_status.proto"; +import "google/ads/googleads/v11/enums/positive_geo_target_type.proto"; +import "google/ads/googleads/v11/enums/vanity_pharma_display_url_mode.proto"; +import "google/ads/googleads/v11/enums/vanity_pharma_text.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Campaign resource. + +// A campaign. +message Campaign { + option (google.api.resource) = { + type: "googleads.googleapis.com/Campaign" + pattern: "customers/{customer_id}/campaigns/{campaign_id}" + }; + + // Information about a campaign being upgraded to Performance Max. + message PerformanceMaxUpgrade { + // Output only. Indicates which Performance Max campaign the campaign is upgraded to. + string performance_max_campaign = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. Indicates legacy campaign upgraded to Performance Max. + string pre_upgrade_campaign = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The upgrade status of a campaign requested to be upgraded to Performance + // Max. + google.ads.googleads.v11.enums.PerformanceMaxUpgradeStatusEnum.PerformanceMaxUpgradeStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The network settings for the campaign. + message NetworkSettings { + // Whether ads will be served with google.com search results. + optional bool target_google_search = 5; + + // Whether ads will be served on partner sites in the Google Search Network + // (requires `target_google_search` to also be `true`). + optional bool target_search_network = 6; + + // Whether ads will be served on specified placements in the Google Display + // Network. Placements are specified using the Placement criterion. + optional bool target_content_network = 7; + + // 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; + } + + // Campaign-level settings for hotel ads. + message HotelSettingInfo { + // Immutable. The linked Hotel Center account. + optional int64 hotel_center_id = 2 [(google.api.field_behavior) = IMMUTABLE]; + } + + // The setting for controlling Dynamic Search Ads (DSA). + message DynamicSearchAdsSetting { + // Required. The Internet domain name that this setting represents, for example, + // "google.com" or "www.google.com". + string domain_name = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. The language code specifying the language of the domain, for example, + // "en". + string language_code = 7 [(google.api.field_behavior) = REQUIRED]; + + // Whether the campaign uses advertiser supplied URLs exclusively. + optional bool use_supplied_urls_only = 8; + + // The list of page feeds associated with the campaign. + repeated string feeds = 9 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + }]; + } + + // The setting for Shopping campaigns. Defines the universe of products that + // can be advertised by the campaign, and how this campaign interacts with + // other Shopping campaigns. + message ShoppingSetting { + // Immutable. 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; + + // Feed label of products to include in the campaign. + // Only one of feed_label or sales_country can be set. + // If used instead of sales_country, the feed_label field accepts country + // codes in the same format for example: 'XX'. + // Otherwise can be any string used for feed label in Google Merchant + // Center. + string feed_label = 10; + + // Priority of the campaign. Campaigns with numerically higher priorities + // take precedence over those with lower priorities. + // This field is required for Shopping campaigns, with values between 0 and + // 2, inclusive. + // This field is optional for Smart Shopping campaigns, but must be equal to + // 3 if set. + optional int32 campaign_priority = 7; + + // Whether to include local products. + optional bool enable_local = 8; + + // Immutable. Whether to target Vehicle Listing inventory. + bool use_vehicle_inventory = 9 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Campaign-level settings for tracking information. + message TrackingSetting { + // Output only. The url used for dynamic tracking. + optional string tracking_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Represents a collection of settings related to ads geotargeting. + message GeoTargetTypeSetting { + // The setting used for positive geotargeting in this particular campaign. + google.ads.googleads.v11.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType positive_geo_target_type = 1; + + // The setting used for negative geotargeting in this particular campaign. + google.ads.googleads.v11.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.v11.enums.LocationSourceTypeEnum.LocationSourceType location_source_type = 1; + } + + // Campaign-level settings for App Campaigns. + message AppCampaignSetting { + // Represents the goal which the bidding strategy of this app campaign + // should optimize towards. + google.ads.googleads.v11.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.v11.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.v11.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.v11.enums.VanityPharmaTextEnum.VanityPharmaText vanity_pharma_text = 2; + } + + // Selective optimization setting for this campaign, which includes a set of + // conversion actions to optimize this campaign towards. + message SelectiveOptimization { + // The selected set of conversion actions for optimizing this campaign. + repeated string conversion_actions = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + } + + // Optimization goal setting for this campaign, which includes a set of + // optimization goal types. + message OptimizationGoalSetting { + // The list of optimization goal types. + repeated google.ads.googleads.v11.enums.OptimizationGoalTypeEnum.OptimizationGoalType optimization_goal_types = 1; + } + + // Settings for the audience targeting. + message AudienceSetting { + // Immutable. If true, this campaign uses an Audience resource for audience targeting. + // If false, this campaign may use audience segment criteria instead. + optional bool use_audience_grouped = 1 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Settings for LocalServicesCampaign subresource. + message LocalServicesCampaignSettings { + // Categorical level bids associated with MANUAL_CPA bidding strategy. + repeated CategoryBid category_bids = 1; + } + + // Category bids in LocalServicesReportingCampaignSettings. + message CategoryBid { + // Category for which the bid will be associated with. For example, + // xcat:service_area_business_plumber. + optional string category_id = 1; + + // Manual CPA bid for the category. Bid must be greater than the + // reserve price associated for that category. Value is in micros + // and in the advertiser's currency. + optional int64 manual_cpa_bid_micros = 2; + } + + // Immutable. The resource name of the campaign. + // Campaign resource names have the form: + // + // `customers/{customer_id}/campaigns/{campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ID of the campaign. + optional int64 id = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the campaign. + // + // This field is required and should not be empty when creating new + // campaigns. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + optional string name = 58; + + // The status of the campaign. + // + // When a new campaign is added, the status defaults to ENABLED. + google.ads.googleads.v11.enums.CampaignStatusEnum.CampaignStatus status = 5; + + // Output only. The ad serving status of the campaign. + google.ads.googleads.v11.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.v11.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.v11.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus ad_serving_optimization_status = 8; + + // Immutable. The primary serving target for ads within the campaign. + // The targeting options can be refined in `network_settings`. + // + // This field is required and should not be empty when creating new + // campaigns. + // + // Can be set only when creating campaigns. + // After the campaign is created, the field can not be changed. + google.ads.googleads.v11.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Optional refinement to `advertising_channel_type`. + // Must be a valid sub-type of the parent channel type. + // + // Can be set only when creating campaigns. + // After campaign is created, the field can not be changed. + google.ads.googleads.v11.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 10 [(google.api.field_behavior) = IMMUTABLE]; + + // The URL template for constructing a tracking URL. + optional string tracking_url_template = 60; + + // 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.v11.common.CustomParameter url_custom_parameters = 12; + + // The Local Services Campaign related settings. + LocalServicesCampaignSettings local_services_campaign_settings = 75; + + // Settings for Real-Time Bidding, a feature only available for campaigns + // targeting the Ad Exchange network. + google.ads.googleads.v11.common.RealTimeBiddingSetting real_time_bidding_setting = 39; + + // The network settings for the campaign. + NetworkSettings network_settings = 14; + + // Immutable. The hotel setting for the campaign. + HotelSettingInfo hotel_setting = 32 [(google.api.field_behavior) = IMMUTABLE]; + + // The setting for controlling Dynamic Search Ads (DSA). + DynamicSearchAdsSetting dynamic_search_ads_setting = 33; + + // The setting for controlling Shopping campaigns. + ShoppingSetting shopping_setting = 36; + + // Setting for targeting related features. + google.ads.googleads.v11.common.TargetingSetting targeting_setting = 43; + + // Immutable. Setting for audience related features. + optional AudienceSetting audience_setting = 73 [(google.api.field_behavior) = IMMUTABLE]; + + // The setting for ads geotargeting. + GeoTargetTypeSetting geo_target_type_setting = 47; + + // The setting for local campaign. + LocalCampaignSetting local_campaign_setting = 50; + + // The setting related to App Campaign. + AppCampaignSetting app_campaign_setting = 51; + + // Output only. The resource names of labels attached to this campaign. + repeated string labels = 61 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLabel" + } + ]; + + // Output only. The type of campaign: normal, draft, or experiment. + google.ads.googleads.v11.enums.CampaignExperimentTypeEnum.CampaignExperimentType experiment_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the base campaign of a draft or experiment campaign. + // For base campaigns, this is equal to `resource_name`. + // + // This field is read-only. + optional string base_campaign = 56 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The budget of the campaign. + optional string campaign_budget = 62 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + }]; + + // Output only. The type of bidding strategy. + // + // A bidding strategy can be created by setting either the bidding scheme to + // create a standard bidding strategy or the `bidding_strategy` field to + // create a portfolio bidding strategy. + // + // This field is read-only. + google.ads.googleads.v11.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: "googleads.googleapis.com/AccessibleBiddingStrategy" + } + ]; + + // The date when campaign started in serving customer's timezone in YYYY-MM-DD + // format. + optional string start_date = 63; + + // The campaign group this campaign belongs to. + optional string campaign_group = 76 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignGroup" + }]; + + // The last day of the campaign in serving customer's timezone in YYYY-MM-DD + // format. + optional string end_date = 64; + + // Suffix used to append query parameters to landing pages that are served + // with parallel tracking. + optional string final_url_suffix = 65; + + // A list that limits how often each user will see this campaign's ads. + repeated google.ads.googleads.v11.common.FrequencyCapEntry frequency_caps = 40; + + // Output only. 3-Tier Brand Safety setting for the campaign. + google.ads.googleads.v11.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability video_brand_safety_suitability = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Describes how unbranded pharma ads will be displayed. + VanityPharma vanity_pharma = 44; + + // Selective optimization setting for this campaign, which includes a set of + // conversion actions to optimize this campaign towards. + SelectiveOptimization selective_optimization = 45; + + // Optimization goal setting for this campaign, which includes a set of + // optimization goal types. + OptimizationGoalSetting optimization_goal_setting = 54; + + // Output only. Campaign-level settings for tracking information. + TrackingSetting tracking_setting = 46 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Payment mode for the campaign. + google.ads.googleads.v11.enums.PaymentModeEnum.PaymentMode payment_mode = 52; + + // Output only. Optimization score of the campaign. + // + // Optimization score is an estimate of how well a campaign is set to perform. + // It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the + // campaign is performing at full potential. This field is null for unscored + // campaigns. + // + // See "About optimization score" at + // https://support.google.com/google-ads/answer/9061546. + // + // This field is read-only. + optional double optimization_score = 66 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v11.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 69; + + // Represents opting out of URL expansion to more targeted URLs. If opted out + // (true), only the final URLs in the asset group or URLs specified in the + // advertiser's Google Merchant Center or business data feeds are targeted. + // If opted in (false), the entire domain will be targeted. This field can + // only be set for Performance Max campaigns, where the default value is + // false. + optional bool url_expansion_opt_out = 72; + + // Output only. Information about campaigns being upgraded to Performance Max. + PerformanceMaxUpgrade performance_max_upgrade = 77 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The bidding strategy for the campaign. + // + // Must be either portfolio (created through BiddingStrategy service) or + // standard, that is embedded into the campaign. + oneof campaign_bidding_strategy { + // Portfolio bidding strategy used by campaign. + string bidding_strategy = 67 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategy" + }]; + + // Commission is an automatic bidding strategy in which the advertiser pays + // a certain portion of the conversion value. + google.ads.googleads.v11.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.v11.common.ManualCpa manual_cpa = 74; + + // Standard Manual CPC bidding strategy. + // Manual click-based bidding where user pays per click. + google.ads.googleads.v11.common.ManualCpc manual_cpc = 24; + + // Standard Manual CPM bidding strategy. + // Manual impression-based bidding where user pays per thousand + // impressions. + google.ads.googleads.v11.common.ManualCpm manual_cpm = 25; + + // Output only. A bidding strategy that pays a configurable amount per video view. + google.ads.googleads.v11.common.ManualCpv manual_cpv = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Standard Maximize Conversions bidding strategy that automatically + // maximizes number of conversions while spending your budget. + google.ads.googleads.v11.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.v11.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.v11.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.v11.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.v11.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.v11.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.v11.common.PercentCpc percent_cpc = 34; + + // A bidding strategy that automatically optimizes cost per thousand + // impressions. + google.ads.googleads.v11.common.TargetCpm target_cpm = 41; + } +} diff --git a/google/ads/googleads/v11/resources/campaign_asset.proto b/google/ads/googleads/v11/resources/campaign_asset.proto new file mode 100644 index 000000000..4998dcaee --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_asset.proto @@ -0,0 +1,79 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/asset_field_type.proto"; +import "google/ads/googleads/v11/enums/asset_link_status.proto"; +import "google/ads/googleads/v11/enums/asset_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAssetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CampaignAsset resource. + +// A link between a Campaign and an Asset. +message CampaignAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignAsset" + pattern: "customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}" + }; + + // Immutable. The resource name of the campaign asset. + // CampaignAsset resource names have the form: + // + // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAsset" + } + ]; + + // Immutable. The campaign to which the asset is linked. + optional string campaign = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The asset which is linked to the campaign. + optional string asset = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Immutable. Role that the asset takes under the linked campaign. + // Required. + google.ads.googleads.v11.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Source of the campaign asset link. + google.ads.googleads.v11.enums.AssetSourceEnum.AssetSource source = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Status of the campaign asset. + google.ads.googleads.v11.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; +} diff --git a/google/ads/googleads/v11/resources/campaign_asset_set.proto b/google/ads/googleads/v11/resources/campaign_asset_set.proto new file mode 100644 index 000000000..550efd5e0 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_asset_set.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/asset_set_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAssetSetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CampaignAsset resource. + +// CampaignAssetSet is the linkage between a campaign and an asset set. +// Adding a CampaignAssetSet links an asset set with a campaign. +message CampaignAssetSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignAssetSet" + pattern: "customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}" + }; + + // Immutable. The resource name of the campaign asset set. + // Asset set asset resource names have the form: + // + // `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAssetSet" + } + ]; + + // Immutable. The campaign to which this asset set is linked. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The asset set which is linked to the campaign. + string asset_set = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + } + ]; + + // Output only. The status of the campaign asset set asset. Read-only. + google.ads.googleads.v11.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/campaign_audience_view.proto b/google/ads/googleads/v11/resources/campaign_audience_view.proto new file mode 100644 index 000000000..42e1b529e --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_audience_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAudienceViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the campaign audience view resource. + +// A campaign audience view. +// Includes performance data from interests and remarketing lists for Display +// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), +// aggregated by campaign and audience criterion. This view only includes +// audiences attached at the campaign level. +message CampaignAudienceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignAudienceView" + pattern: "customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}" + }; + + // Output only. The resource name of the campaign audience view. + // Campaign audience view resource names have the form: + // + // `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAudienceView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/campaign_bid_modifier.proto b/google/ads/googleads/v11/resources/campaign_bid_modifier.proto new file mode 100644 index 000000000..60275450d --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_bid_modifier.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBidModifierProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Campaign Bid Modifier resource. + +// Represents a bid-modifiable only criterion at the campaign level. +message CampaignBidModifier { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignBidModifier" + pattern: "customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}" + }; + + // Immutable. The resource name of the campaign bid modifier. + // Campaign bid modifier resource names have the form: + // + // `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBidModifier" + } + ]; + + // Output only. The campaign to which this criterion belongs. + optional string campaign = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ID of the criterion to bid modify. + // + // This field is ignored for mutates. + optional int64 criterion_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The modifier for the bid when the criterion matches. + optional double bid_modifier = 8; + + // The criterion of this campaign bid modifier. + // + // Required in create operations starting in V5. + oneof criterion { + // Immutable. Criterion for interaction type. Only supported for search campaigns. + google.ads.googleads.v11.common.InteractionTypeInfo interaction_type = 5 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v11/resources/campaign_budget.proto b/google/ads/googleads/v11/resources/campaign_budget.proto new file mode 100644 index 000000000..41dbb1d63 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_budget.proto @@ -0,0 +1,155 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/budget_delivery_method.proto"; +import "google/ads/googleads/v11/enums/budget_period.proto"; +import "google/ads/googleads/v11/enums/budget_status.proto"; +import "google/ads/googleads/v11/enums/budget_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBudgetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Budget resource. + +// A campaign budget. +message CampaignBudget { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignBudget" + pattern: "customers/{customer_id}/campaignBudgets/{campaign_budget_id}" + }; + + // Immutable. The resource name of the campaign budget. + // Campaign budget resource names have the form: + // + // `customers/{customer_id}/campaignBudgets/{campaign_budget_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + } + ]; + + // Output only. The ID of the campaign budget. + // + // A campaign budget is created using the CampaignBudgetService create + // operation and is assigned a budget ID. A budget ID can be shared across + // different campaigns; the system will then allocate the campaign budget + // among different campaigns to get optimum results. + optional int64 id = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the campaign budget. + // + // When creating a campaign budget through CampaignBudgetService, every + // explicitly shared campaign budget must have a non-null, non-empty name. + // Campaign budgets that are not explicitly shared derive their name from the + // attached campaign's name. + // + // The length of this string must be between 1 and 255, inclusive, + // in UTF-8 bytes, (trimmed). + optional string name = 20; + + // The amount of the budget, in the local currency for the account. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. Monthly spend is capped at 30.4 times this amount. + optional int64 amount_micros = 21; + + // The lifetime amount of the budget, in the local currency for the account. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + optional int64 total_amount_micros = 22; + + // Output only. The status of this campaign budget. This field is read-only. + google.ads.googleads.v11.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.v11.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod delivery_method = 7; + + // Specifies whether the budget is explicitly shared. Defaults to true if + // unspecified in a create operation. + // + // If true, the budget was created with the purpose of sharing + // across one or more campaigns. + // + // If false, the budget was created with the intention of only being used + // with a single campaign. The budget's name and status will stay in sync + // with the campaign's name and status. Attempting to share the budget with a + // second campaign will result in an error. + // + // A non-shared budget can become an explicitly shared. The same operation + // must also assign the budget a name. + // + // A shared campaign budget can never become non-shared. + optional bool explicitly_shared = 23; + + // Output only. The number of campaigns actively using the budget. + // + // This field is read-only. + optional int64 reference_count = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether there is a recommended budget for this campaign budget. + // + // This field is read-only. + optional bool has_recommended_budget = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended budget amount. If no recommendation is available, this will + // be set to the budget amount. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + // + // This field is read-only. + optional int64 recommended_budget_amount_micros = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Period over which to spend the budget. Defaults to DAILY if not specified. + google.ads.googleads.v11.enums.BudgetPeriodEnum.BudgetPeriod period = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The estimated change in weekly clicks if the recommended budget is applied. + // + // This field is read-only. + optional int64 recommended_budget_estimated_change_weekly_clicks = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimated change in weekly cost in micros if the recommended budget is + // applied. One million is equivalent to one currency unit. + // + // This field is read-only. + optional int64 recommended_budget_estimated_change_weekly_cost_micros = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimated change in weekly interactions if the recommended budget is + // applied. + // + // This field is read-only. + optional int64 recommended_budget_estimated_change_weekly_interactions = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The estimated change in weekly views if the recommended budget is applied. + // + // This field is read-only. + optional int64 recommended_budget_estimated_change_weekly_views = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The type of the campaign budget. + google.ads.googleads.v11.enums.BudgetTypeEnum.BudgetType type = 18 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v11/resources/campaign_conversion_goal.proto b/google/ads/googleads/v11/resources/campaign_conversion_goal.proto new file mode 100644 index 000000000..31ef8f6c0 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_conversion_goal.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/conversion_action_category.proto"; +import "google/ads/googleads/v11/enums/conversion_origin.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignConversionGoalProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// The biddability setting for the specified campaign only for all +// conversion actions with a matching category and origin. +message CampaignConversionGoal { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignConversionGoal" + pattern: "customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{source}" + }; + + // Immutable. The resource name of the campaign conversion goal. + // Campaign conversion goal resource names have the form: + // + // `customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{origin}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignConversionGoal" + } + ]; + + // Immutable. The campaign with which this campaign conversion goal is associated. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The conversion category of this campaign conversion goal. + google.ads.googleads.v11.enums.ConversionActionCategoryEnum.ConversionActionCategory category = 3; + + // The conversion origin of this campaign conversion goal. + google.ads.googleads.v11.enums.ConversionOriginEnum.ConversionOrigin origin = 4; + + // The biddability of the campaign conversion goal. + bool biddable = 5; +} diff --git a/google/ads/googleads/v11/resources/campaign_criterion.proto b/google/ads/googleads/v11/resources/campaign_criterion.proto new file mode 100644 index 000000000..a1b226efe --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_criterion.proto @@ -0,0 +1,180 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/enums/campaign_criterion_status.proto"; +import "google/ads/googleads/v11/enums/criterion_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Campaign Criterion resource. + +// A campaign criterion. +message CampaignCriterion { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignCriterion" + pattern: "customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}" + }; + + // Immutable. The resource name of the campaign criterion. + // Campaign criterion resource names have the form: + // + // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterion" + } + ]; + + // Immutable. The campaign to which the criterion belongs. + optional string campaign = 37 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ID of the criterion. + // + // This field is ignored during mutate. + optional int64 criterion_id = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name of the criterion. + // + // This field is ignored for mutates. + string display_name = 43 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The modifier for the bids when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. + // Use 0 to opt out of a Device type. + optional float bid_modifier = 39; + + // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. + optional bool negative = 40 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The type of the criterion. + google.ads.googleads.v11.enums.CriterionTypeEnum.CriterionType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The status of the criterion. + google.ads.googleads.v11.enums.CampaignCriterionStatusEnum.CampaignCriterionStatus status = 35; + + // The campaign criterion. + // + // Exactly one must be set. + oneof criterion { + // Immutable. Keyword. + google.ads.googleads.v11.common.KeywordInfo keyword = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Placement. + google.ads.googleads.v11.common.PlacementInfo placement = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile app category. + google.ads.googleads.v11.common.MobileAppCategoryInfo mobile_app_category = 10 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile application. + google.ads.googleads.v11.common.MobileApplicationInfo mobile_application = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Location. + google.ads.googleads.v11.common.LocationInfo location = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Device. + google.ads.googleads.v11.common.DeviceInfo device = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Ad Schedule. + google.ads.googleads.v11.common.AdScheduleInfo ad_schedule = 15 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Age range. + google.ads.googleads.v11.common.AgeRangeInfo age_range = 16 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Gender. + google.ads.googleads.v11.common.GenderInfo gender = 17 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Income range. + google.ads.googleads.v11.common.IncomeRangeInfo income_range = 18 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Parental status. + google.ads.googleads.v11.common.ParentalStatusInfo parental_status = 19 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. User List. + google.ads.googleads.v11.common.UserListInfo user_list = 22 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Video. + google.ads.googleads.v11.common.YouTubeVideoInfo youtube_video = 20 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Channel. + google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Proximity. + google.ads.googleads.v11.common.ProximityInfo proximity = 23 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Topic. + google.ads.googleads.v11.common.TopicInfo topic = 24 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Listing scope. + google.ads.googleads.v11.common.ListingScopeInfo listing_scope = 25 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Language. + google.ads.googleads.v11.common.LanguageInfo language = 26 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. IpBlock. + google.ads.googleads.v11.common.IpBlockInfo ip_block = 27 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. ContentLabel. + google.ads.googleads.v11.common.ContentLabelInfo content_label = 28 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Carrier. + google.ads.googleads.v11.common.CarrierInfo carrier = 29 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. User Interest. + google.ads.googleads.v11.common.UserInterestInfo user_interest = 30 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Webpage. + google.ads.googleads.v11.common.WebpageInfo webpage = 31 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Operating system version. + google.ads.googleads.v11.common.OperatingSystemVersionInfo operating_system_version = 32 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile Device. + google.ads.googleads.v11.common.MobileDeviceInfo mobile_device = 33 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Location Group + google.ads.googleads.v11.common.LocationGroupInfo location_group = 34 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Affinity. + google.ads.googleads.v11.common.CustomAffinityInfo custom_affinity = 36 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Audience + google.ads.googleads.v11.common.CustomAudienceInfo custom_audience = 41 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Combined Audience. + google.ads.googleads.v11.common.CombinedAudienceInfo combined_audience = 42 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Smart Campaign Keyword Theme. + google.ads.googleads.v11.common.KeywordThemeInfo keyword_theme = 45 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v11/resources/campaign_criterion_simulation.proto b/google/ads/googleads/v11/resources/campaign_criterion_simulation.proto new file mode 100644 index 000000000..b7f66d3bf --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_criterion_simulation.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/simulation.proto"; +import "google/ads/googleads/v11/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v11/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionSimulationProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the campaign criterion simulation resource. + +// A campaign criterion simulation. Supported combinations of advertising +// channel type, criterion ids, simulation type and simulation modification +// method is detailed below respectively. +// +// 1. SEARCH - 30000,30001,30002 - BID_MODIFIER - UNIFORM +// 2. DISPLAY - 30001 - BID_MODIFIER - UNIFORM +message CampaignCriterionSimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignCriterionSimulation" + pattern: "customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the campaign criterion simulation. + // Campaign criterion simulation resource names have the form: + // + // `customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterionSimulation" + } + ]; + + // Output only. Campaign ID of the simulation. + optional int64 campaign_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Criterion ID of the simulation. + optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v11.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v11.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + optional string start_date = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format. + optional string end_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is BID_MODIFIER. + google.ads.googleads.v11.common.BidModifierSimulationPointList bid_modifier_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/campaign_customizer.proto b/google/ads/googleads/v11/resources/campaign_customizer.proto new file mode 100644 index 000000000..46e34f134 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_customizer.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/customizer_value.proto"; +import "google/ads/googleads/v11/enums/customizer_value_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCustomizerProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// A customizer value for the associated CustomizerAttribute at the Campaign +// level. +message CampaignCustomizer { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignCustomizer" + pattern: "customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}" + }; + + // Immutable. The resource name of the campaign customizer. + // Campaign customizer resource names have the form: + // + // `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCustomizer" + } + ]; + + // Immutable. The campaign to which the customizer attribute is linked. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Required. Immutable. The customizer attribute which is linked to the campaign. + string customizer_attribute = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The status of the campaign customizer. + google.ads.googleads.v11.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.v11.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v11/resources/campaign_draft.proto b/google/ads/googleads/v11/resources/campaign_draft.proto new file mode 100644 index 000000000..59d0e28d4 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_draft.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/campaign_draft_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignDraftProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Campaign Draft resource. + +// A campaign draft. +message CampaignDraft { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignDraft" + pattern: "customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}" + }; + + // Immutable. The resource name of the campaign draft. + // Campaign draft resource names have the form: + // + // `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + } + ]; + + // Output only. The ID of the draft. + // + // This field is read-only. + optional int64 draft_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The base campaign to which the draft belongs. + optional string base_campaign = 10 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The name of the campaign draft. + // + // This field is required and should not be empty when creating new + // campaign drafts. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + optional string name = 11; + + // Output only. Resource name of the Campaign that results from overlaying the draft + // changes onto the base campaign. + // + // This field is read-only. + optional string draft_campaign = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // 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.v11.enums.CampaignDraftStatusEnum.CampaignDraftStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether there is an experiment based on this draft currently serving. + optional bool has_experiment_running = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the long-running operation that can be used to poll + // for completion of draft promotion. This is only set if the draft promotion + // is in progress or finished. + optional string long_running_operation = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/campaign_experiment.proto b/google/ads/googleads/v11/resources/campaign_experiment.proto new file mode 100644 index 000000000..33334031c --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_experiment.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/campaign_experiment_status.proto"; +import "google/ads/googleads/v11/enums/campaign_experiment_traffic_split_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Campaign Experiment resource. + +// An A/B experiment that compares the performance of the base campaign +// (the control) and a variation of that campaign (the experiment). +message CampaignExperiment { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignExperiment" + pattern: "customers/{customer_id}/campaignExperiments/{campaign_experiment_id}" + }; + + // Immutable. The resource name of the campaign experiment. + // Campaign experiment resource names have the form: + // + // `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // Output only. The ID of the campaign experiment. + // + // This field is read-only. + optional int64 id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The campaign draft with staged changes to the base campaign. + optional string campaign_draft = 14 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + } + ]; + + // The name of the campaign experiment. + // + // This field is required when creating new campaign experiments + // and must not conflict with the name of another non-removed + // campaign experiment or campaign. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + optional string name = 15; + + // The description of the experiment. + optional string description = 16; + + // Immutable. Share of traffic directed to experiment as a percent (must be between 1 and + // 99 inclusive. Base campaign receives the remainder of the traffic + // (100 - traffic_split_percent). Required for create. + optional int64 traffic_split_percent = 17 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Determines the behavior of the traffic split. + google.ads.googleads.v11.enums.CampaignExperimentTrafficSplitTypeEnum.CampaignExperimentTrafficSplitType traffic_split_type = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The experiment campaign, as opposed to the base campaign. + optional string experiment_campaign = 18 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The status of the campaign experiment. This field is read-only. + google.ads.googleads.v11.enums.CampaignExperimentStatusEnum.CampaignExperimentStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the long-running operation that can be used to poll + // for completion of experiment create or promote. The most recent long + // running operation is returned. + optional string long_running_operation = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Date when the campaign experiment starts. By default, the experiment starts + // now or on the campaign's start date, whichever is later. If this field is + // set, then the experiment starts at the beginning of the specified date in + // the customer's time zone. Cannot be changed once the experiment starts. + // + // Format: YYYY-MM-DD + // Example: 2019-03-14 + optional string start_date = 20; + + // The last day of the campaign experiment. By default, the experiment ends on + // the campaign's end date. If this field is set, then the experiment ends at + // the end of the specified date in the customer's time zone. + // + // Format: YYYY-MM-DD + // Example: 2019-04-18 + optional string end_date = 21; +} diff --git a/google/ads/googleads/v11/resources/campaign_extension_setting.proto b/google/ads/googleads/v11/resources/campaign_extension_setting.proto new file mode 100644 index 000000000..290323fd0 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_extension_setting.proto @@ -0,0 +1,78 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/extension_setting_device.proto"; +import "google/ads/googleads/v11/enums/extension_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExtensionSettingProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CampaignExtensionSetting resource. + +// A campaign extension setting. +message CampaignExtensionSetting { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignExtensionSetting" + pattern: "customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}" + }; + + // Immutable. The resource name of the campaign extension setting. + // CampaignExtensionSetting resource names have the form: + // + // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExtensionSetting" + } + ]; + + // Immutable. The extension type of the customer extension setting. + google.ads.googleads.v11.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The resource name of the campaign. The linked extension feed items will + // serve under this campaign. + // Campaign resource names have the form: + // + // `customers/{customer_id}/campaigns/{campaign_id}` + optional string campaign = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The resource names of the extension feed items to serve under the campaign. + // ExtensionFeedItem resource names have the form: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + repeated string extension_feed_items = 7 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + + // The device for which the extensions will serve. Optional. + google.ads.googleads.v11.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5; +} diff --git a/google/ads/googleads/v11/resources/campaign_feed.proto b/google/ads/googleads/v11/resources/campaign_feed.proto new file mode 100644 index 000000000..a37ca843c --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_feed.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/matching_function.proto"; +import "google/ads/googleads/v11/enums/feed_link_status.proto"; +import "google/ads/googleads/v11/enums/placeholder_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignFeedProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CampaignFeed resource. + +// A campaign feed. +message CampaignFeed { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignFeed" + pattern: "customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}" + }; + + // Immutable. The resource name of the campaign feed. + // Campaign feed resource names have the form: + // + // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id} + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignFeed" + } + ]; + + // Immutable. The feed to which the CampaignFeed belongs. + optional string feed = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Immutable. The campaign to which the CampaignFeed belongs. + optional string campaign = 8 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Indicates which placeholder types the feed may populate under the connected + // campaign. Required. + repeated google.ads.googleads.v11.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.v11.common.MatchingFunction matching_function = 5; + + // Output only. Status of the campaign feed. + // This field is read-only. + google.ads.googleads.v11.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/campaign_group.proto b/google/ads/googleads/v11/resources/campaign_group.proto new file mode 100644 index 000000000..b066f3501 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_group.proto @@ -0,0 +1,68 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/campaign_group_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignGroupProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Campaign group resource. + +// A campaign group. +message CampaignGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignGroup" + pattern: "customers/{customer_id}/campaignGroups/{campaign_group_id}" + }; + + // Immutable. The resource name of the campaign group. + // Campaign group resource names have the form: + // + // `customers/{customer_id}/campaignGroups/{campaign_group_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignGroup" + } + ]; + + // Output only. The ID of the campaign group. + int64 id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the campaign group. + // + // This field is required and should not be empty when creating new campaign + // groups. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + string name = 4; + + // The status of the campaign group. + // + // When a new campaign group is added, the status defaults to ENABLED. + google.ads.googleads.v11.enums.CampaignGroupStatusEnum.CampaignGroupStatus status = 5; +} diff --git a/google/ads/googleads/v11/resources/campaign_label.proto b/google/ads/googleads/v11/resources/campaign_label.proto new file mode 100644 index 000000000..b897c5f0b --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignLabelProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the campaign label resource. + +// Represents a relationship between a campaign and a label. +message CampaignLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignLabel" + pattern: "customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}" + }; + + // Immutable. Name of the resource. + // Campaign label resource names have the form: + // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLabel" + } + ]; + + // Immutable. The campaign to which the label is attached. + optional string campaign = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The label assigned to the campaign. + optional string label = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/campaign_shared_set.proto b/google/ads/googleads/v11/resources/campaign_shared_set.proto new file mode 100644 index 000000000..bfd0aa797 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_shared_set.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/campaign_shared_set_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSharedSetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CampaignSharedSet resource. + +// CampaignSharedSets are used for managing the shared sets associated with a +// campaign. +message CampaignSharedSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignSharedSet" + pattern: "customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}" + }; + + // Immutable. The resource name of the campaign shared set. + // Campaign shared set resource names have the form: + // + // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSharedSet" + } + ]; + + // Immutable. The campaign to which the campaign shared set belongs. + optional string campaign = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The shared set associated with the campaign. This may be a negative keyword + // shared set of another customer. This customer should be a manager of the + // other customer, otherwise the campaign shared set will exist but have no + // serving effect. Only negative keyword shared sets can be associated with + // Shopping campaigns. Only negative placement shared sets can be associated + // with Display mobile app campaigns. + optional string shared_set = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + } + ]; + + // Output only. The status of this campaign shared set. Read only. + google.ads.googleads.v11.enums.CampaignSharedSetStatusEnum.CampaignSharedSetStatus status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/campaign_simulation.proto b/google/ads/googleads/v11/resources/campaign_simulation.proto new file mode 100644 index 000000000..c64e27454 --- /dev/null +++ b/google/ads/googleads/v11/resources/campaign_simulation.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/simulation.proto"; +import "google/ads/googleads/v11/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v11/enums/simulation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSimulationProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the campaign simulation resource. + +// A campaign simulation. Supported combinations of advertising +// channel type, simulation type and simulation modification +// method is detailed below respectively. +// +// SEARCH - CPC_BID - UNIFORM +// SEARCH - CPC_BID - SCALING +// SEARCH - TARGET_CPA - UNIFORM +// SEARCH - TARGET_CPA - SCALING +// SEARCH - TARGET_ROAS - UNIFORM +// SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM +// SEARCH - BUDGET - UNIFORM +// SHOPPING - BUDGET - UNIFORM +// SHOPPING - TARGET_ROAS - UNIFORM +// MULTI_CHANNEL - TARGET_CPA - UNIFORM +// DISCOVERY - TARGET_CPA - DEFAULT +// DISPLAY - TARGET_CPA - UNIFORM +message CampaignSimulation { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignSimulation" + pattern: "customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}" + }; + + // Output only. The resource name of the campaign simulation. + // Campaign simulation resource names have the form: + // + // `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSimulation" + } + ]; + + // Output only. Campaign id of the simulation. + int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The field that the simulation modifies. + google.ads.googleads.v11.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the simulation modifies the field. + google.ads.googleads.v11.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First day on which the simulation is based, in YYYY-MM-DD format. + string start_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last day on which the simulation is based, in YYYY-MM-DD format + string end_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List of simulation points. + oneof point_list { + // Output only. Simulation points if the simulation type is CPC_BID. + google.ads.googleads.v11.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.v11.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.v11.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.v11.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.v11.common.BudgetSimulationPointList budget_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/carrier_constant.proto b/google/ads/googleads/v11/resources/carrier_constant.proto new file mode 100644 index 000000000..1d06c1485 --- /dev/null +++ b/google/ads/googleads/v11/resources/carrier_constant.proto @@ -0,0 +1,60 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CarrierConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Carrier constant resource. + +// A carrier criterion that can be used in campaign targeting. +message CarrierConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/CarrierConstant" + pattern: "carrierConstants/{criterion_id}" + }; + + // Output only. The resource name of the carrier criterion. + // Carrier criterion resource names have the form: + // + // `carrierConstants/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CarrierConstant" + } + ]; + + // Output only. The ID of the carrier criterion. + optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The full name of the carrier in English. + optional string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The country code of the country where the carrier is located, for example, + // "AR", "FR", etc. + optional string country_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/change_event.proto b/google/ads/googleads/v11/resources/change_event.proto new file mode 100644 index 000000000..c0e166516 --- /dev/null +++ b/google/ads/googleads/v11/resources/change_event.proto @@ -0,0 +1,208 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/change_client_type.proto"; +import "google/ads/googleads/v11/enums/change_event_resource_type.proto"; +import "google/ads/googleads/v11/enums/resource_change_operation.proto"; +import "google/ads/googleads/v11/resources/ad.proto"; +import "google/ads/googleads/v11/resources/ad_group.proto"; +import "google/ads/googleads/v11/resources/ad_group_ad.proto"; +import "google/ads/googleads/v11/resources/ad_group_asset.proto"; +import "google/ads/googleads/v11/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v11/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v11/resources/ad_group_feed.proto"; +import "google/ads/googleads/v11/resources/asset.proto"; +import "google/ads/googleads/v11/resources/asset_set.proto"; +import "google/ads/googleads/v11/resources/asset_set_asset.proto"; +import "google/ads/googleads/v11/resources/campaign.proto"; +import "google/ads/googleads/v11/resources/campaign_asset.proto"; +import "google/ads/googleads/v11/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v11/resources/campaign_budget.proto"; +import "google/ads/googleads/v11/resources/campaign_criterion.proto"; +import "google/ads/googleads/v11/resources/campaign_feed.proto"; +import "google/ads/googleads/v11/resources/customer_asset.proto"; +import "google/ads/googleads/v11/resources/feed.proto"; +import "google/ads/googleads/v11/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.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ChangeEventProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Change Event resource. + +// Describes the granular change of returned resource of certain resource types. +// Changes made through UI, API and new versions of Editor +// by external users (including external users, and internal users that can be +// shown externally) in the past 30 days will be shown. The change shows the old +// values of the changed fields before the change and the new values right after +// the change. ChangeEvent could have up to 3 minutes delay to reflect a new +// change. +message ChangeEvent { + option (google.api.resource) = { + type: "googleads.googleapis.com/ChangeEvent" + pattern: "customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}" + }; + + // A wrapper proto presenting all supported resources. + // Only the resource of the change_resource_type will be set. + message ChangedResource { + // Output only. Set if change_resource_type == AD. + Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP. + AdGroup ad_group = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_CRITERION. + AdGroupCriterion ad_group_criterion = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN. + Campaign campaign = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_BUDGET. + CampaignBudget campaign_budget = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_BID_MODIFIER. + AdGroupBidModifier ad_group_bid_modifier = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_CRITERION. + CampaignCriterion campaign_criterion = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == FEED. + Feed feed = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == FEED_ITEM. + FeedItem feed_item = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_FEED. + CampaignFeed campaign_feed = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_FEED. + AdGroupFeed ad_group_feed = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_AD. + AdGroupAd ad_group_ad = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == ASSET. + Asset asset = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CUSTOMER_ASSET. + CustomerAsset customer_asset = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_ASSET. + CampaignAsset campaign_asset = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == AD_GROUP_ASSET. + AdGroupAsset ad_group_asset = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == ASSET_SET. + AssetSet asset_set = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == ASSET_SET_ASSET. + AssetSetAsset asset_set_asset = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set if change_resource_type == CAMPAIGN_ASSET_SET. + CampaignAssetSet campaign_asset_set = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the change event. + // Change event resource names have the form: + // + // `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ChangeEvent" + } + ]; + + // Output only. Time at which the change was committed on this resource. + string change_date_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the changed resource. This dictates what resource + // will be set in old_resource and new_resource. + google.ads.googleads.v11.enums.ChangeEventResourceTypeEnum.ChangeEventResourceType change_resource_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Simply resource this change occurred on. + string change_resource_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Where the change was made through. + google.ads.googleads.v11.enums.ChangeClientTypeEnum.ChangeClientType client_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The email of the user who made this change. + string user_email = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The old resource before the change. Only changed fields will be populated. + ChangedResource old_resource = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The new resource after the change. Only changed fields will be populated. + ChangedResource new_resource = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The operation on the changed resource. + google.ads.googleads.v11.enums.ResourceChangeOperationEnum.ResourceChangeOperation resource_change_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of fields that are changed in the returned resource. + google.protobuf.FieldMask changed_fields = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Campaign affected by this change. + string campaign = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The AdGroup affected by this change. + string ad_group = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. The Feed affected by this change. + string feed = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. The FeedItem affected by this change. + string feed_item = 14 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Output only. The Asset affected by this change. + string asset = 20 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/change_status.proto b/google/ads/googleads/v11/resources/change_status.proto new file mode 100644 index 000000000..9413af4a0 --- /dev/null +++ b/google/ads/googleads/v11/resources/change_status.proto @@ -0,0 +1,192 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/change_status_operation.proto"; +import "google/ads/googleads/v11/enums/change_status_resource_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ChangeStatusProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Change Status resource. + +// Describes the status of returned resource. ChangeStatus could have up to 3 +// minutes delay to reflect a new change. +message ChangeStatus { + option (google.api.resource) = { + type: "googleads.googleapis.com/ChangeStatus" + pattern: "customers/{customer_id}/changeStatus/{change_status_id}" + }; + + // Output only. The resource name of the change status. + // Change status resource names have the form: + // + // `customers/{customer_id}/changeStatus/{change_status_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ChangeStatus" + } + ]; + + // Output only. Time at which the most recent change has occurred on this resource. + optional string last_change_date_time = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v11.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceType resource_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Campaign affected by this change. + optional string campaign = 17 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The AdGroup affected by this change. + optional string ad_group = 18 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. Represents the status of the changed resource. + google.ads.googleads.v11.enums.ChangeStatusOperationEnum.ChangeStatusOperation resource_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The AdGroupAd affected by this change. + optional string ad_group_ad = 25 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Output only. The AdGroupCriterion affected by this change. + optional string ad_group_criterion = 26 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Output only. The CampaignCriterion affected by this change. + optional string campaign_criterion = 27 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterion" + } + ]; + + // Output only. The Feed affected by this change. + optional string feed = 28 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. The FeedItem affected by this change. + optional string feed_item = 29 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Output only. The AdGroupFeed affected by this change. + optional string ad_group_feed = 30 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupFeed" + } + ]; + + // Output only. The CampaignFeed affected by this change. + optional string campaign_feed = 31 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignFeed" + } + ]; + + // Output only. The AdGroupBidModifier affected by this change. + optional string ad_group_bid_modifier = 32 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + } + ]; + + // Output only. The SharedSet affected by this change. + string shared_set = 33 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + } + ]; + + // Output only. The CampaignSharedSet affected by this change. + string campaign_shared_set = 34 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSharedSet" + } + ]; + + // Output only. The Asset affected by this change. + string asset = 35 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. The CustomerAsset affected by this change. + string customer_asset = 36 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerAsset" + } + ]; + + // Output only. The CampaignAsset affected by this change. + string campaign_asset = 37 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAsset" + } + ]; + + // Output only. The AdGroupAsset affected by this change. + string ad_group_asset = 38 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAsset" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/click_view.proto b/google/ads/googleads/v11/resources/click_view.proto new file mode 100644 index 000000000..bfaf81c2b --- /dev/null +++ b/google/ads/googleads/v11/resources/click_view.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/click_location.proto"; +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ClickViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ClickView resource. + +// A click view with metrics aggregated at each click level, including both +// valid and invalid clicks. For non-Search campaigns, metrics.clicks +// represents the number of valid and invalid interactions. +// Queries including ClickView must have a filter limiting the results to one +// day and can be requested for dates back to 90 days before the time of the +// request. +message ClickView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ClickView" + pattern: "customers/{customer_id}/clickViews/{date}~{gclid}" + }; + + // Output only. The resource name of the click view. + // Click view resource names have the form: + // + // `customers/{customer_id}/clickViews/{date (yyyy-MM-dd)}~{gclid}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ClickView" + } + ]; + + // Output only. The Google Click ID. + optional string gclid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The location criteria matching the area of interest associated with the + // impression. + google.ads.googleads.v11.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.v11.common.ClickLocation location_of_presence = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Page number in search results where the ad was shown. + optional int64 page_number = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The associated ad. + optional string ad_group_ad = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Output only. The associated campaign location target, if one exists. + optional string campaign_location_target = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + } + ]; + + // Output only. The associated user list, if one exists. + optional string user_list = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + } + ]; + + // Output only. The associated keyword, if one exists and the click corresponds to the + // SEARCH channel. + string keyword = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + } + ]; + + // Output only. Basic information about the associated keyword, if it exists. + google.ads.googleads.v11.common.KeywordInfo keyword_info = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/combined_audience.proto b/google/ads/googleads/v11/resources/combined_audience.proto new file mode 100644 index 000000000..cbb21e887 --- /dev/null +++ b/google/ads/googleads/v11/resources/combined_audience.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/combined_audience_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CombinedAudienceProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Combined Audience resource. + +// Describe a resource for combined audiences which includes different +// audiences. +message CombinedAudience { + option (google.api.resource) = { + type: "googleads.googleapis.com/CombinedAudience" + pattern: "customers/{customer_id}/combinedAudiences/{combined_audience_id}" + }; + + // Immutable. The resource name of the combined audience. + // Combined audience names have the form: + // + // `customers/{customer_id}/combinedAudience/{combined_audience_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CombinedAudience" + } + ]; + + // Output only. ID of the combined audience. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of this combined audience. Indicates whether the combined audience + // is enabled or removed. + google.ads.googleads.v11.enums.CombinedAudienceStatusEnum.CombinedAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the combined audience. It should be unique across all combined + // audiences. + string name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Description of this combined audience. + string description = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/conversion_action.proto b/google/ads/googleads/v11/resources/conversion_action.proto new file mode 100644 index 000000000..9fe426def --- /dev/null +++ b/google/ads/googleads/v11/resources/conversion_action.proto @@ -0,0 +1,197 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/tag_snippet.proto"; +import "google/ads/googleads/v11/enums/attribution_model.proto"; +import "google/ads/googleads/v11/enums/conversion_action_category.proto"; +import "google/ads/googleads/v11/enums/conversion_action_counting_type.proto"; +import "google/ads/googleads/v11/enums/conversion_action_status.proto"; +import "google/ads/googleads/v11/enums/conversion_action_type.proto"; +import "google/ads/googleads/v11/enums/conversion_origin.proto"; +import "google/ads/googleads/v11/enums/data_driven_model_status.proto"; +import "google/ads/googleads/v11/enums/mobile_app_vendor.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Conversion Action resource. + +// A conversion action. +message ConversionAction { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionAction" + pattern: "customers/{customer_id}/conversionActions/{conversion_action_id}" + }; + + // Settings related to this conversion action's attribution model. + message AttributionModelSettings { + // The attribution model type of this conversion action. + google.ads.googleads.v11.enums.AttributionModelEnum.AttributionModel attribution_model = 1; + + // Output only. The status of the data-driven attribution model for the conversion + // action. + google.ads.googleads.v11.enums.DataDrivenModelStatusEnum.DataDrivenModelStatus data_driven_model_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Settings related to the value for conversion events associated with this + // conversion action. + message ValueSettings { + // The value to use when conversion events for this conversion action are + // sent with an invalid, disallowed or missing value, or when + // this conversion action is configured to always use the default value. + optional double default_value = 4; + + // The currency code to use when conversion events for this conversion + // action are sent with an invalid or missing currency code, or when this + // conversion action is configured to always use the default value. + optional string default_currency_code = 5; + + // Controls whether the default value and default currency code are used in + // place of the value and currency code specified in conversion events for + // this conversion action. + optional bool always_use_default_value = 6; + } + + // Settings related to a third party app analytics conversion action. + message ThirdPartyAppAnalyticsSettings { + // Output only. The event name of a third-party app analytics conversion. + optional string event_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the third-party app analytics provider. + string provider_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Settings related to a Firebase conversion action. + message FirebaseSettings { + // Output only. The event name of a Firebase conversion. + optional string event_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Firebase project ID of the conversion. + optional string project_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The GA property ID of the conversion. + int64 property_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The GA property name of the conversion. + string property_name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The resource name of the conversion action. + // Conversion action resource names have the form: + // + // `customers/{customer_id}/conversionActions/{conversion_action_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + } + ]; + + // Output only. The ID of the conversion action. + optional int64 id = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the conversion action. + // + // This field is required and should not be empty when creating new + // conversion actions. + optional string name = 22; + + // The status of this conversion action for conversion event accrual. + google.ads.googleads.v11.enums.ConversionActionStatusEnum.ConversionActionStatus status = 4; + + // Immutable. The type of this conversion action. + google.ads.googleads.v11.enums.ConversionActionTypeEnum.ConversionActionType type = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The conversion origin of this conversion action. + google.ads.googleads.v11.enums.ConversionOriginEnum.ConversionOrigin origin = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // If a conversion action's primary_for_goal bit is false, the conversion + // action is non-biddable for all campaigns regardless of their customer + // conversion goal or campaign conversion goal. + // However, custom conversion goals do not respect primary_for_goal, so if + // a campaign has a custom conversion goal configured with a + // primary_for_goal = false conversion action, that conversion action is + // still biddable. + // By default, primary_for_goal will be true if not set. In V9, + // primary_for_goal can only be set to false after creation through an + // 'update' operation because it's not declared as optional. + optional bool primary_for_goal = 31; + + // The category of conversions reported for this conversion action. + google.ads.googleads.v11.enums.ConversionActionCategoryEnum.ConversionActionCategory category = 6; + + // Output only. The resource name of the conversion action owner customer, or null if this + // is a system-defined conversion action. + optional string owner_customer = 23 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Whether this conversion action should be included in the "conversions" + // metric. + optional bool include_in_conversions_metric = 24; + + // The maximum number of days that may elapse between an interaction + // (for example, a click) and a conversion event. + optional int64 click_through_lookback_window_days = 25; + + // The maximum number of days which may elapse between an impression and a + // conversion without an interaction. + optional int64 view_through_lookback_window_days = 26; + + // Settings related to the value for conversion events associated with this + // conversion action. + ValueSettings value_settings = 11; + + // How to count conversion events for the conversion action. + google.ads.googleads.v11.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.v11.common.TagSnippet tag_snippets = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The phone call duration in seconds after which a conversion should be + // reported for this conversion action. + // + // The value must be between 0 and 10000, inclusive. + optional int64 phone_call_duration_seconds = 27; + + // App ID for an app conversion action. + optional string app_id = 28; + + // Output only. Mobile app vendor for an app conversion action. + google.ads.googleads.v11.enums.MobileAppVendorEnum.MobileAppVendor mobile_app_vendor = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Firebase settings for Firebase conversion types. + FirebaseSettings firebase_settings = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Third Party App Analytics settings for third party conversion types. + ThirdPartyAppAnalyticsSettings third_party_app_analytics_settings = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/conversion_custom_variable.proto b/google/ads/googleads/v11/resources/conversion_custom_variable.proto new file mode 100644 index 000000000..68997b39e --- /dev/null +++ b/google/ads/googleads/v11/resources/conversion_custom_variable.proto @@ -0,0 +1,85 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/conversion_custom_variable_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionCustomVariableProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Conversion Custom Variable resource. + +// A conversion custom variable +// See "About custom variables for conversions" at +// https://support.google.com/google-ads/answer/9964350 +message ConversionCustomVariable { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionCustomVariable" + pattern: "customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}" + }; + + // Immutable. The resource name of the conversion custom variable. + // Conversion custom variable resource names have the form: + // + // `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionCustomVariable" + } + ]; + + // Output only. The ID of the conversion custom variable. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the conversion custom variable. + // Name should be unique. The maximum length of name is 100 characters. + // There should not be any extra spaces before and after. + string name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The tag of the conversion custom variable. It is used in the event snippet + // and sent to Google Ads along with conversion pings. For conversion uploads + // in Google Ads API, the resource name of the conversion custom variable is + // used. + // Tag should be unique. The maximum size of tag is 100 bytes. + // There should not be any extra spaces before and after. + // Currently only lowercase letters, numbers and underscores are allowed in + // the tag. + string tag = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // The status of the conversion custom variable for conversion event accrual. + google.ads.googleads.v11.enums.ConversionCustomVariableStatusEnum.ConversionCustomVariableStatus status = 5; + + // Output only. The resource name of the customer that owns the conversion custom variable. + string owner_customer = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/conversion_goal_campaign_config.proto b/google/ads/googleads/v11/resources/conversion_goal_campaign_config.proto new file mode 100644 index 000000000..0ffb366ad --- /dev/null +++ b/google/ads/googleads/v11/resources/conversion_goal_campaign_config.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/goal_config_level.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionGoalCampaignConfigProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Conversion goal settings for a Campaign. +message ConversionGoalCampaignConfig { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionGoalCampaignConfig" + pattern: "customers/{customer_id}/conversionGoalCampaignConfigs/{campaign_id}" + }; + + // Immutable. The resource name of the conversion goal campaign config. + // Conversion goal campaign config resource names have the form: + // + // `customers/{customer_id}/conversionGoalCampaignConfigs/{campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionGoalCampaignConfig" + } + ]; + + // Immutable. The campaign with which this conversion goal campaign config is associated. + string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // The level of goal config the campaign is using. + google.ads.googleads.v11.enums.GoalConfigLevelEnum.GoalConfigLevel goal_config_level = 3; + + // The custom conversion goal the campaign is using for optimization. + string custom_conversion_goal = 4 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomConversionGoal" + }]; +} diff --git a/google/ads/googleads/v11/resources/conversion_value_rule.proto b/google/ads/googleads/v11/resources/conversion_value_rule.proto new file mode 100644 index 000000000..d88396ae9 --- /dev/null +++ b/google/ads/googleads/v11/resources/conversion_value_rule.proto @@ -0,0 +1,134 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/conversion_value_rule_status.proto"; +import "google/ads/googleads/v11/enums/value_rule_device_type.proto"; +import "google/ads/googleads/v11/enums/value_rule_geo_location_match_type.proto"; +import "google/ads/googleads/v11/enums/value_rule_operation.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Conversion Value Rule resource. + +// A conversion value rule +message ConversionValueRule { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionValueRule" + pattern: "customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}" + }; + + // Action applied when rule is applied. + message ValueRuleAction { + // Specifies applied operation. + google.ads.googleads.v11.enums.ValueRuleOperationEnum.ValueRuleOperation operation = 1; + + // Specifies applied value. + double value = 2; + } + + // Condition on Geo dimension. + message ValueRuleGeoLocationCondition { + // Geo locations that advertisers want to exclude. + repeated string excluded_geo_target_constants = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + }]; + + // Excluded Geo location match type. + google.ads.googleads.v11.enums.ValueRuleGeoLocationMatchTypeEnum.ValueRuleGeoLocationMatchType excluded_geo_match_type = 2; + + // Geo locations that advertisers want to include. + repeated string geo_target_constants = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + }]; + + // Included Geo location match type. + google.ads.googleads.v11.enums.ValueRuleGeoLocationMatchTypeEnum.ValueRuleGeoLocationMatchType geo_match_type = 4; + } + + // Condition on Device dimension. + message ValueRuleDeviceCondition { + // Value for device type condition. + repeated google.ads.googleads.v11.enums.ValueRuleDeviceTypeEnum.ValueRuleDeviceType device_types = 1; + } + + // Condition on Audience dimension. + message ValueRuleAudienceCondition { + // User Lists. + repeated string user_lists = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + }]; + + // User Interests. + repeated string user_interests = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserInterest" + }]; + } + + // Immutable. The resource name of the conversion value rule. + // Conversion value rule resource names have the form: + // + // `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRule" + } + ]; + + // Output only. The ID of the conversion value rule. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Action applied when the rule is triggered. + ValueRuleAction action = 3; + + // Condition for Geo location that must be satisfied for the value rule to + // apply. + ValueRuleGeoLocationCondition geo_location_condition = 4; + + // Condition for device type that must be satisfied for the value rule to + // apply. + ValueRuleDeviceCondition device_condition = 5; + + // Condition for audience that must be satisfied for the value rule to apply. + ValueRuleAudienceCondition audience_condition = 6; + + // Output only. The resource name of the conversion value rule's owner customer. + // When the value rule is inherited from a manager + // customer, owner_customer will be the resource name of the manager whereas + // the customer in the resource_name will be of the requesting serving + // customer. + // ** Read-only ** + string owner_customer = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // The status of the conversion value rule. + google.ads.googleads.v11.enums.ConversionValueRuleStatusEnum.ConversionValueRuleStatus status = 8; +} diff --git a/google/ads/googleads/v11/resources/conversion_value_rule_set.proto b/google/ads/googleads/v11/resources/conversion_value_rule_set.proto new file mode 100644 index 000000000..58d694103 --- /dev/null +++ b/google/ads/googleads/v11/resources/conversion_value_rule_set.proto @@ -0,0 +1,99 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/conversion_action_category.proto"; +import "google/ads/googleads/v11/enums/conversion_value_rule_set_status.proto"; +import "google/ads/googleads/v11/enums/value_rule_set_attachment_type.proto"; +import "google/ads/googleads/v11/enums/value_rule_set_dimension.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleSetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Conversion Value Rule Set resource. + +// A conversion value rule set +message ConversionValueRuleSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/ConversionValueRuleSet" + pattern: "customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}" + }; + + // Immutable. The resource name of the conversion value rule set. + // Conversion value rule set resource names have the form: + // + // `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRuleSet" + } + ]; + + // Output only. The ID of the conversion value rule set. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Resource names of rules within the rule set. + repeated string conversion_value_rules = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRule" + }]; + + // Defines dimensions for Value Rule conditions. The condition types of value + // rules within this value rule set must be of these dimensions. The first + // entry in this list is the primary dimension of the included value rules. + // 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.v11.enums.ValueRuleSetDimensionEnum.ValueRuleSetDimension dimensions = 4; + + // Output only. The resource name of the conversion value rule set's owner customer. + // When the value rule set is inherited from a manager + // customer, owner_customer will be the resource name of the manager whereas + // the customer in the resource_name will be of the requesting serving + // customer. + // ** Read-only ** + string owner_customer = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Immutable. Defines the scope where the conversion value rule set is attached. + google.ads.googleads.v11.enums.ValueRuleSetAttachmentTypeEnum.ValueRuleSetAttachmentType attachment_type = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // The resource name of the campaign when the conversion value rule + // set is attached to a campaign. + string campaign = 7 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // Output only. The status of the conversion value rule set. + // ** Read-only ** + google.ads.googleads.v11.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.v11.enums.ConversionActionCategoryEnum.ConversionActionCategory conversion_action_categories = 9 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v11/resources/currency_constant.proto b/google/ads/googleads/v11/resources/currency_constant.proto new file mode 100644 index 000000000..1edc885f3 --- /dev/null +++ b/google/ads/googleads/v11/resources/currency_constant.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CurrencyConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Currency Constant resource. + +// A currency constant. +message CurrencyConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/CurrencyConstant" + pattern: "currencyConstants/{code}" + }; + + // Output only. The resource name of the currency constant. + // Currency constant resource names have the form: + // + // `currencyConstants/{code}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CurrencyConstant" + } + ]; + + // Output only. ISO 4217 three-letter currency code, for example, "USD" + optional string code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Full English name of the currency. + optional string name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Standard symbol for describing this currency, for example, '$' for US + // Dollars. + optional string symbol = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The billable unit for this currency. Billed amounts should be multiples of + // this value. + optional int64 billable_unit_micros = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/custom_audience.proto b/google/ads/googleads/v11/resources/custom_audience.proto new file mode 100644 index 000000000..061bf5fe0 --- /dev/null +++ b/google/ads/googleads/v11/resources/custom_audience.proto @@ -0,0 +1,106 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/custom_audience_member_type.proto"; +import "google/ads/googleads/v11/enums/custom_audience_status.proto"; +import "google/ads/googleads/v11/enums/custom_audience_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Custom Audience resource. + +// A custom audience. This is a list of users by interest. +message CustomAudience { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomAudience" + pattern: "customers/{customer_id}/customAudiences/{custom_audience_id}" + }; + + // Immutable. The resource name of the custom audience. + // Custom audience resource names have the form: + // + // `customers/{customer_id}/customAudiences/{custom_audience_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomAudience" + } + ]; + + // Output only. ID of the custom audience. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of this custom audience. Indicates whether the custom audience is + // enabled or removed. + google.ads.googleads.v11.enums.CustomAudienceStatusEnum.CustomAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of the custom audience. It should be unique for all custom audiences + // created by a customer. + // This field is required for creating operations. + string name = 4; + + // 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.v11.enums.CustomAudienceTypeEnum.CustomAudienceType type = 5; + + // Description of this custom audience. + string description = 6; + + // List of custom audience members that this custom audience is composed of. + // Members can be added during CustomAudience creation. If members are + // presented in UPDATE operation, existing members will be overridden. + repeated CustomAudienceMember members = 7; +} + +// A member of custom audience. A member can be a KEYWORD, URL, +// 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.v11.enums.CustomAudienceMemberTypeEnum.CustomAudienceMemberType member_type = 1; + + // The CustomAudienceMember value. One field is populated depending on the + // member type. + oneof value { + // A keyword or keyword phrase — at most 10 words and 80 characters. + // Languages with double-width characters such as Chinese, Japanese, + // or Korean, are allowed 40 characters, which describes the user's + // interests or actions. + string keyword = 2; + + // An HTTP URL, protocol-included — at most 2048 characters, which includes + // contents users have interests in. + string url = 3; + + // A place type described by a place category users visit. + int64 place_category = 4; + + // A package name of Android apps which users installed such as + // com.google.example. + string app = 5; + } +} diff --git a/google/ads/googleads/v11/resources/custom_conversion_goal.proto b/google/ads/googleads/v11/resources/custom_conversion_goal.proto new file mode 100644 index 000000000..c5ec6aa5e --- /dev/null +++ b/google/ads/googleads/v11/resources/custom_conversion_goal.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/custom_conversion_goal_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomConversionGoalProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Custom conversion goal that can make arbitrary conversion actions biddable. +message CustomConversionGoal { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomConversionGoal" + pattern: "customers/{customer_id}/customConversionGoals/{goal_id}" + }; + + // Immutable. The resource name of the custom conversion goal. + // Custom conversion goal resource names have the form: + // + // `customers/{customer_id}/customConversionGoals/{goal_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomConversionGoal" + } + ]; + + // Immutable. The ID for this custom conversion goal. + int64 id = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // The name for this custom conversion goal. + string name = 3; + + // Conversion actions that the custom conversion goal makes biddable. + repeated string conversion_actions = 4 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + + // The status of the custom conversion goal. + google.ads.googleads.v11.enums.CustomConversionGoalStatusEnum.CustomConversionGoalStatus status = 5; +} diff --git a/google/ads/googleads/v11/resources/custom_interest.proto b/google/ads/googleads/v11/resources/custom_interest.proto new file mode 100644 index 000000000..7740342dd --- /dev/null +++ b/google/ads/googleads/v11/resources/custom_interest.proto @@ -0,0 +1,88 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/custom_interest_member_type.proto"; +import "google/ads/googleads/v11/enums/custom_interest_status.proto"; +import "google/ads/googleads/v11/enums/custom_interest_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Custom Interest resource. + +// A custom interest. This is a list of users by interest. +message CustomInterest { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomInterest" + pattern: "customers/{customer_id}/customInterests/{custom_interest_id}" + }; + + // Immutable. The resource name of the custom interest. + // Custom interest resource names have the form: + // + // `customers/{customer_id}/customInterests/{custom_interest_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomInterest" + } + ]; + + // Output only. Id of the custom interest. + optional int64 id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Status of this custom interest. Indicates whether the custom interest is + // enabled or removed. + google.ads.googleads.v11.enums.CustomInterestStatusEnum.CustomInterestStatus status = 3; + + // Name of the custom interest. It should be unique across the same custom + // affinity audience. + // This field is required for create operations. + optional string name = 9; + + // Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. + // By default the type is set to CUSTOM_AFFINITY. + google.ads.googleads.v11.enums.CustomInterestTypeEnum.CustomInterestType type = 5; + + // Description of this custom interest audience. + optional string description = 10; + + // List of custom interest members that this custom interest is composed of. + // Members can be added during CustomInterest creation. If members are + // presented in UPDATE operation, existing members will be overridden. + repeated CustomInterestMember members = 7; +} + +// A member of custom interest audience. A member can be a keyword or url. +// 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.v11.enums.CustomInterestMemberTypeEnum.CustomInterestMemberType member_type = 1; + + // Keyword text when member_type is KEYWORD or URL string when + // member_type is URL. + optional string parameter = 3; +} diff --git a/google/ads/googleads/v11/resources/customer.proto b/google/ads/googleads/v11/resources/customer.proto new file mode 100644 index 000000000..123105c9d --- /dev/null +++ b/google/ads/googleads/v11/resources/customer.proto @@ -0,0 +1,188 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/conversion_tracking_status_enum.proto"; +import "google/ads/googleads/v11/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; +import "google/ads/googleads/v11/enums/customer_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Customer resource. + +// A customer. +message Customer { + option (google.api.resource) = { + type: "googleads.googleapis.com/Customer" + pattern: "customers/{customer_id}" + }; + + // Immutable. The resource name of the customer. + // Customer resource names have the form: + // + // `customers/{customer_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. The ID of the customer. + optional int64 id = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional, non-unique descriptive name of the customer. + optional string descriptive_name = 20; + + // Immutable. The currency in which the account operates. + // A subset of the currency codes from the ISO 4217 standard is + // supported. + optional string currency_code = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The local timezone ID of the customer. + optional string time_zone = 22 [(google.api.field_behavior) = IMMUTABLE]; + + // The URL template for constructing a tracking URL out of parameters. + optional string tracking_url_template = 23; + + // The URL template for appending params to the final URL + optional string final_url_suffix = 24; + + // Whether auto-tagging is enabled for the customer. + optional bool auto_tagging_enabled = 25; + + // Output only. Whether the Customer has a Partners program badge. If the Customer is not + // associated with the Partners program, this will be false. For more + // information, see https://support.google.com/partners/answer/3125774. + optional bool has_partners_badge = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the customer is a manager. + optional bool manager = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the customer is a test account. + optional bool test_account = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Call reporting setting for a customer. Only mutable in an `update` + // operation. + CallReportingSetting call_reporting_setting = 10; + + // Output only. Conversion tracking setting for a customer. + ConversionTrackingSetting conversion_tracking_setting = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Remarketing setting for a customer. + RemarketingSetting remarketing_setting = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v11.enums.CustomerPayPerConversionEligibilityFailureReasonEnum.CustomerPayPerConversionEligibilityFailureReason pay_per_conversion_eligibility_failure_reasons = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Optimization score of the customer. + // + // Optimization score is an estimate of how well a customer's campaigns are + // set to perform. It ranges from 0% (0.0) to 100% (1.0). This field is null + // for all manager customers, and for unscored non-manager customers. + // + // See "About optimization score" at + // https://support.google.com/google-ads/answer/9061546. + // + // This field is read-only. + optional double optimization_score = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Optimization score weight of the customer. + // + // Optimization score weight can be used to compare/aggregate optimization + // scores across multiple non-manager customers. The aggregate optimization + // score of a manager is computed as the sum over all of their customers of + // `Customer.optimization_score * Customer.optimization_score_weight`. This + // field is 0 for all manager customers, and for unscored non-manager + // customers. + // + // This field is read-only. + double optimization_score_weight = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the customer. + google.ads.googleads.v11.enums.CustomerStatusEnum.CustomerStatus status = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Call reporting setting for a customer. Only mutable in an `update` operation. +message CallReportingSetting { + // Enable reporting of phone call events by redirecting them through Google + // System. + optional bool call_reporting_enabled = 10; + + // Whether to enable call conversion reporting. + optional bool call_conversion_reporting_enabled = 11; + + // Customer-level call conversion action to attribute a call conversion to. + // If not set a default conversion action is used. Only in effect when + // call_conversion_reporting_enabled is set to true. + optional string call_conversion_action = 12 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; +} + +// A collection of customer-wide settings related to Google Ads Conversion +// Tracking. +message ConversionTrackingSetting { + // Output only. The conversion tracking id used for this account. This id doesn't indicate + // whether the customer uses conversion tracking (conversion_tracking_status + // does). This field is read-only. + optional int64 conversion_tracking_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The conversion tracking id of the customer's manager. This is set when the + // customer is opted into cross account conversion tracking, and it overrides + // conversion_tracking_id. This field can only be managed through the Google + // Ads UI. This field is read-only. + optional int64 cross_account_conversion_tracking_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the customer has accepted customer data terms. If using + // cross-account conversion tracking, this value is inherited from the + // manager. This field is read-only. For more + // information, see https://support.google.com/adspolicy/answer/7475709. + bool accepted_customer_data_terms = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion tracking status. It indicates whether the customer is using + // conversion tracking, and who is the conversion tracking owner of 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.v11.enums.ConversionTrackingStatusEnum.ConversionTrackingStatus conversion_tracking_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the customer is opted-in for enhanced conversions + // for leads. If using cross-account conversion tracking, this value is + // inherited from the manager. This field is read-only. + bool enhanced_conversions_for_leads_enabled = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the customer where conversions are created and + // managed. This field is read-only. + string google_ads_conversion_customer = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Remarketing setting for a customer. +message RemarketingSetting { + // Output only. The Google tag. + optional string google_global_site_tag = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/customer_asset.proto b/google/ads/googleads/v11/resources/customer_asset.proto new file mode 100644 index 000000000..59fa4908e --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_asset.proto @@ -0,0 +1,74 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/asset_field_type.proto"; +import "google/ads/googleads/v11/enums/asset_link_status.proto"; +import "google/ads/googleads/v11/enums/asset_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerAssetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CustomerAsset resource. + +// A link between a customer and an asset. +message CustomerAsset { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerAsset" + pattern: "customers/{customer_id}/customerAssets/{asset_id}~{field_type}" + }; + + // Immutable. The resource name of the customer asset. + // CustomerAsset resource names have the form: + // + // `customers/{customer_id}/customerAssets/{asset_id}~{field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerAsset" + } + ]; + + // Required. Immutable. The asset which is linked to the customer. + string asset = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Required. Immutable. Role that the asset takes for the customer link. + google.ads.googleads.v11.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.v11.enums.AssetSourceEnum.AssetSource source = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Status of the customer asset. + google.ads.googleads.v11.enums.AssetLinkStatusEnum.AssetLinkStatus status = 4; +} diff --git a/google/ads/googleads/v11/resources/customer_client.proto b/google/ads/googleads/v11/resources/customer_client.proto new file mode 100644 index 000000000..8db5152a0 --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_client.proto @@ -0,0 +1,104 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/customer_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerClientProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CustomerClient resource. + +// A link between the given customer and a client customer. CustomerClients only +// exist for manager customers. All direct and indirect client customers are +// included, as well as the manager itself. +message CustomerClient { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerClient" + pattern: "customers/{customer_id}/customerClients/{client_customer_id}" + }; + + // Output only. The resource name of the customer client. + // CustomerClient resource names have the form: + // `customers/{customer_id}/customerClients/{client_customer_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerClient" + } + ]; + + // Output only. The resource name of the client-customer which is linked to + // the given customer. Read only. + optional string client_customer = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. Specifies whether this is a + // [hidden account](https://support.google.com/google-ads/answer/7519830). + // Read only. + optional bool hidden = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Distance between given customer and client. For self link, the level value + // will be 0. Read only. + optional int64 level = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Common Locale Data Repository (CLDR) string representation of the + // time zone of the client, for example, America/Los_Angeles. Read only. + optional string time_zone = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies if the client is a test account. Read only. + optional bool test_account = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies if the client is a manager. Read only. + optional bool manager = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Descriptive name for the client. Read only. + optional string descriptive_name = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Currency code (for example, 'USD', 'EUR') for the client. Read only. + optional string currency_code = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the client customer. Read only. + optional int64 id = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource names of the labels owned by the requesting customer that are + // applied to the client customer. + // Label resource names have the form: + // + // `customers/{customer_id}/labels/{label_id}` + repeated string applied_labels = 21 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; + + // Output only. The status of the client customer. Read only. + google.ads.googleads.v11.enums.CustomerStatusEnum.CustomerStatus status = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/customer_client_link.proto b/google/ads/googleads/v11/resources/customer_client_link.proto new file mode 100644 index 000000000..f19a5d9d5 --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_client_link.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/manager_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerClientLinkProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CustomerClientLink resource. + +// Represents customer client link relationship. +message CustomerClientLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerClientLink" + pattern: "customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}" + }; + + // Immutable. Name of the resource. + // CustomerClientLink resource names have the form: + // `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerClientLink" + } + ]; + + // Immutable. The client customer linked to this customer. + optional string client_customer = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. This is uniquely identifies a customer client link. Read only. + optional int64 manager_link_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // This is the status of the link between client and manager. + google.ads.googleads.v11.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; + + // The visibility of the link. Users can choose whether or not to see hidden + // links in the Google Ads UI. + // Default value is false + optional bool hidden = 9; +} diff --git a/google/ads/googleads/v11/resources/customer_conversion_goal.proto b/google/ads/googleads/v11/resources/customer_conversion_goal.proto new file mode 100644 index 000000000..2a5c6fb1b --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_conversion_goal.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/conversion_action_category.proto"; +import "google/ads/googleads/v11/enums/conversion_origin.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerConversionGoalProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Biddability control for conversion actions with a matching category and +// origin. +message CustomerConversionGoal { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerConversionGoal" + pattern: "customers/{customer_id}/customerConversionGoals/{category}~{source}" + }; + + // Immutable. The resource name of the customer conversion goal. + // Customer conversion goal resource names have the form: + // + // `customers/{customer_id}/customerConversionGoals/{category}~{origin}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/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.v11.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.v11.enums.ConversionOriginEnum.ConversionOrigin origin = 3; + + // The biddability of the customer conversion goal. + bool biddable = 4; +} diff --git a/google/ads/googleads/v11/resources/customer_customizer.proto b/google/ads/googleads/v11/resources/customer_customizer.proto new file mode 100644 index 000000000..3cf188aba --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_customizer.proto @@ -0,0 +1,67 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/customizer_value.proto"; +import "google/ads/googleads/v11/enums/customizer_value_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerCustomizerProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// A customizer value for the associated CustomizerAttribute at the Customer +// level. +message CustomerCustomizer { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerCustomizer" + pattern: "customers/{customer_id}/customerCustomizers/{customizer_attribute_id}" + }; + + // Immutable. The resource name of the customer customizer. + // Customer customizer resource names have the form: + // + // `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerCustomizer" + } + ]; + + // Required. Immutable. The customizer attribute which is linked to the customer. + string customizer_attribute = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The status of the customer customizer attribute. + google.ads.googleads.v11.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.v11.common.CustomizerValue value = 4 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v11/resources/customer_extension_setting.proto b/google/ads/googleads/v11/resources/customer_extension_setting.proto new file mode 100644 index 000000000..ff3797dcb --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_extension_setting.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/extension_setting_device.proto"; +import "google/ads/googleads/v11/enums/extension_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerExtensionSettingProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CustomerExtensionSetting resource. + +// A customer extension setting. +message CustomerExtensionSetting { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerExtensionSetting" + pattern: "customers/{customer_id}/customerExtensionSettings/{extension_type}" + }; + + // Immutable. The resource name of the customer extension setting. + // CustomerExtensionSetting resource names have the form: + // + // `customers/{customer_id}/customerExtensionSettings/{extension_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerExtensionSetting" + } + ]; + + // Immutable. The extension type of the customer extension setting. + google.ads.googleads.v11.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // The resource names of the extension feed items to serve under the customer. + // ExtensionFeedItem resource names have the form: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + repeated string extension_feed_items = 5 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + + // The device for which the extensions will serve. Optional. + google.ads.googleads.v11.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 4; +} diff --git a/google/ads/googleads/v11/resources/customer_feed.proto b/google/ads/googleads/v11/resources/customer_feed.proto new file mode 100644 index 000000000..02339aa75 --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_feed.proto @@ -0,0 +1,74 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/matching_function.proto"; +import "google/ads/googleads/v11/enums/feed_link_status.proto"; +import "google/ads/googleads/v11/enums/placeholder_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerFeedProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CustomerFeed resource. + +// A customer feed. +message CustomerFeed { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerFeed" + pattern: "customers/{customer_id}/customerFeeds/{feed_id}" + }; + + // Immutable. The resource name of the customer feed. + // Customer feed resource names have the form: + // + // `customers/{customer_id}/customerFeeds/{feed_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerFeed" + } + ]; + + // Immutable. The feed being linked to the customer. + optional string feed = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Indicates which placeholder types the feed may populate under the connected + // customer. Required. + repeated google.ads.googleads.v11.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.v11.common.MatchingFunction matching_function = 4; + + // Output only. Status of the customer feed. + // This field is read-only. + google.ads.googleads.v11.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/customer_label.proto b/google/ads/googleads/v11/resources/customer_label.proto new file mode 100644 index 000000000..202d9c238 --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_label.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerLabelProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the customer label resource. + +// Represents a relationship between a customer and a label. This customer may +// not have access to all the labels attached to it. Additional CustomerLabels +// may be returned by increasing permissions with login-customer-id. +message CustomerLabel { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerLabel" + pattern: "customers/{customer_id}/customerLabels/{label_id}" + }; + + // Immutable. Name of the resource. + // Customer label resource names have the form: + // `customers/{customer_id}/customerLabels/{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerLabel" + } + ]; + + // Output only. The resource name of the customer to which the label is attached. + // Read only. + optional string customer = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. The resource name of the label assigned to the customer. + // + // Note: the Customer ID portion of the label resource name is not + // validated when creating a new CustomerLabel. + optional string label = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/customer_manager_link.proto b/google/ads/googleads/v11/resources/customer_manager_link.proto new file mode 100644 index 000000000..483b4a0ee --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_manager_link.proto @@ -0,0 +1,64 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/manager_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerManagerLinkProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CustomerManagerLink resource. + +// Represents customer-manager link relationship. +message CustomerManagerLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerManagerLink" + pattern: "customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}" + }; + + // Immutable. Name of the resource. + // CustomerManagerLink resource names have the form: + // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerManagerLink" + } + ]; + + // Output only. The manager customer linked to the customer. + optional string manager_customer = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; + + // Output only. ID of the customer-manager link. This field is read only. + optional int64 manager_link_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Status of the link between the customer and the manager. + google.ads.googleads.v11.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; +} diff --git a/google/ads/googleads/v11/resources/customer_negative_criterion.proto b/google/ads/googleads/v11/resources/customer_negative_criterion.proto new file mode 100644 index 000000000..2206baaaa --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_negative_criterion.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/enums/criterion_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerNegativeCriterionProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Customer Negative Criterion resource. + +// A negative criterion for exclusions at the customer level. +message CustomerNegativeCriterion { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerNegativeCriterion" + pattern: "customers/{customer_id}/customerNegativeCriteria/{criterion_id}" + }; + + // Immutable. The resource name of the customer negative criterion. + // Customer negative criterion resource names have the form: + // + // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerNegativeCriterion" + } + ]; + + // Output only. The ID of the criterion. + optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the criterion. + google.ads.googleads.v11.enums.CriterionTypeEnum.CriterionType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The customer negative criterion. + // + // Exactly one must be set. + oneof criterion { + // Immutable. ContentLabel. + google.ads.googleads.v11.common.ContentLabelInfo content_label = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. MobileApplication. + google.ads.googleads.v11.common.MobileApplicationInfo mobile_application = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. MobileAppCategory. + google.ads.googleads.v11.common.MobileAppCategoryInfo mobile_app_category = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Placement. + google.ads.googleads.v11.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Video. + google.ads.googleads.v11.common.YouTubeVideoInfo youtube_video = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Channel. + google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel = 9 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v11/resources/customer_user_access.proto b/google/ads/googleads/v11/resources/customer_user_access.proto new file mode 100644 index 000000000..af71695cd --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_user_access.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/access_role.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CustomerUserAccess resource. + +// Represents the permission of a single user onto a single customer. +message CustomerUserAccess { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerUserAccess" + pattern: "customers/{customer_id}/customerUserAccesses/{user_id}" + }; + + // Immutable. Name of the resource. + // Resource names have the form: + // `customers/{customer_id}/customerUserAccesses/{user_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccess" + } + ]; + + // Output only. User id of the user with the customer access. + // Read only field + int64 user_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the user. + // Read only field + optional string email_address = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Access role of the user. + google.ads.googleads.v11.enums.AccessRoleEnum.AccessRole access_role = 4; + + // Output only. The customer user access creation time. + // Read only field + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string access_creation_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The email address of the inviter user. + // Read only field + optional string inviter_user_email_address = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/customer_user_access_invitation.proto b/google/ads/googleads/v11/resources/customer_user_access_invitation.proto new file mode 100644 index 000000000..5c6e29fb7 --- /dev/null +++ b/google/ads/googleads/v11/resources/customer_user_access_invitation.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/access_invitation_status.proto"; +import "google/ads/googleads/v11/enums/access_role.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessInvitationProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the CustomerUserAccessInvitation resource. + +// Represent an invitation to a new user on this customer account. +message CustomerUserAccessInvitation { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerUserAccessInvitation" + pattern: "customers/{customer_id}/customerUserAccessInvitations/{invitation_id}" + }; + + // Immutable. Name of the resource. + // Resource names have the form: + // `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccessInvitation" + } + ]; + + // Output only. The ID of the invitation. + // This field is read-only. + int64 invitation_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Access role of the user. + google.ads.googleads.v11.enums.AccessRoleEnum.AccessRole access_role = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Email address the invitation was sent to. + // This can differ from the email address of the account + // that accepts the invite. + string email_address = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Time invitation was created. + // This field is read-only. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string creation_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Invitation status of the user. + google.ads.googleads.v11.enums.AccessInvitationStatusEnum.AccessInvitationStatus invitation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/customizer_attribute.proto b/google/ads/googleads/v11/resources/customizer_attribute.proto new file mode 100644 index 000000000..94fe19ca5 --- /dev/null +++ b/google/ads/googleads/v11/resources/customizer_attribute.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/customizer_attribute_status.proto"; +import "google/ads/googleads/v11/enums/customizer_attribute_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// A customizer attribute. +// Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or +// AdGroupCriterionCustomizer to associate a customizer attribute and +// set its value at the customer, campaign, ad group, or ad group criterion +// level, respectively. +message CustomizerAttribute { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomizerAttribute" + pattern: "customers/{customer_id}/customizerAttributes/{customizer_attribute_id}" + }; + + // Immutable. The resource name of the customizer attribute. + // Customizer Attribute resource names have the form: + // + // `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + } + ]; + + // Output only. The ID of the customizer attribute. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. Name of the customizer attribute. Required. It must have a minimum length + // of 1 and maximum length of 40. Name of an enabled customizer attribute must + // be unique (case insensitive). + string name = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Immutable. The type of the customizer attribute. + google.ads.googleads.v11.enums.CustomizerAttributeTypeEnum.CustomizerAttributeType type = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The status of the customizer attribute. + google.ads.googleads.v11.enums.CustomizerAttributeStatusEnum.CustomizerAttributeStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/detail_placement_view.proto b/google/ads/googleads/v11/resources/detail_placement_view.proto new file mode 100644 index 000000000..bbb68b3b6 --- /dev/null +++ b/google/ads/googleads/v11/resources/detail_placement_view.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/placement_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DetailPlacementViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the detail placement view resource. + +// A view with metrics aggregated by ad group and URL or YouTube video. +message DetailPlacementView { + option (google.api.resource) = { + type: "googleads.googleapis.com/DetailPlacementView" + pattern: "customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}" + }; + + // Output only. The resource name of the detail placement view. + // Detail placement view resource names have the form: + // + // `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DetailPlacementView" + } + ]; + + // Output only. The automatic placement string at detail level, e. g. website URL, mobile + // application ID, or a YouTube video ID. + optional string placement = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name is URL name for websites, YouTube video name for YouTube + // videos, and translated mobile app name for mobile apps. + optional string display_name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL of the group placement, for example, domain, link to the mobile + // application in app store, or a YouTube channel URL. + optional string group_placement_target_url = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL of the placement, for example, website, link to the mobile application + // in app store, or a YouTube video URL. + optional string target_url = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the placement, for example, Website, YouTube Video, and Mobile + // Application. + google.ads.googleads.v11.enums.PlacementTypeEnum.PlacementType placement_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/detailed_demographic.proto b/google/ads/googleads/v11/resources/detailed_demographic.proto new file mode 100644 index 000000000..d987d6dd2 --- /dev/null +++ b/google/ads/googleads/v11/resources/detailed_demographic.proto @@ -0,0 +1,73 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criterion_category_availability.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DetailedDemographicProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Detailed Demographic resource. + +// A detailed demographic: a particular interest-based vertical to be targeted +// to reach users based on long-term life facts. +message DetailedDemographic { + option (google.api.resource) = { + type: "googleads.googleapis.com/DetailedDemographic" + pattern: "customers/{customer_id}/detailedDemographics/{detailed_demographic_id}" + }; + + // Output only. The resource name of the detailed demographic. + // Detailed demographic resource names have the form: + // + // `customers/{customer_id}/detailedDemographics/{detailed_demographic_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DetailedDemographic" + } + ]; + + // Output only. The ID of the detailed demographic. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the detailed demographic. For example,"Highest Level of + // Educational Attainment" + string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The parent of the detailed_demographic. + string parent = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DetailedDemographic" + } + ]; + + // Output only. True if the detailed demographic is launched to all channels and locales. + bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Availability information of the detailed demographic. + repeated google.ads.googleads.v11.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/display_keyword_view.proto b/google/ads/googleads/v11/resources/display_keyword_view.proto new file mode 100644 index 000000000..5a6fae498 --- /dev/null +++ b/google/ads/googleads/v11/resources/display_keyword_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DisplayKeywordViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the display keyword view resource. + +// A display keyword view. +message DisplayKeywordView { + option (google.api.resource) = { + type: "googleads.googleapis.com/DisplayKeywordView" + pattern: "customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the display keyword view. + // Display Keyword view resource names have the form: + // + // `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DisplayKeywordView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/distance_view.proto b/google/ads/googleads/v11/resources/distance_view.proto new file mode 100644 index 000000000..183822ae4 --- /dev/null +++ b/google/ads/googleads/v11/resources/distance_view.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/distance_bucket.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DistanceViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the DistanceView resource. + +// A distance view with metrics aggregated by the user's distance from an +// advertiser's location extensions. Each DistanceBucket includes all +// impressions that fall within its distance and a single impression will +// contribute to the metrics for all DistanceBuckets that include the user's +// distance. +message DistanceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/DistanceView" + pattern: "customers/{customer_id}/distanceViews/{placeholder_chain_id}~{distance_bucket}" + }; + + // Output only. The resource name of the distance view. + // Distance view resource names have the form: + // + // `customers/{customer_id}/distanceViews/1~{distance_bucket}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DistanceView" + } + ]; + + // Output only. Grouping of user distance from location extensions. + google.ads.googleads.v11.enums.DistanceBucketEnum.DistanceBucket distance_bucket = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if the DistanceBucket is using the metric system, false otherwise. + optional bool metric_system = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/domain_category.proto b/google/ads/googleads/v11/resources/domain_category.proto new file mode 100644 index 000000000..4c59c0ef7 --- /dev/null +++ b/google/ads/googleads/v11/resources/domain_category.proto @@ -0,0 +1,90 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DomainCategoryProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Domain Category resource. + +// A category generated automatically by crawling a domain. If a campaign uses +// the DynamicSearchAdsSetting, then domain categories will be generated for +// the domain. The categories can be targeted using WebpageConditionInfo. +// See: https://support.google.com/google-ads/answer/2471185 +message DomainCategory { + option (google.api.resource) = { + type: "googleads.googleapis.com/DomainCategory" + pattern: "customers/{customer_id}/domainCategories/{campaign_id}~{base64_category}~{language_code}" + }; + + // Output only. The resource name of the domain category. + // Domain category resource names have the form: + // + // `customers/{customer_id}/domainCategories/{campaign_id}~{category_base64}~{language_code}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DomainCategory" + } + ]; + + // Output only. The campaign this category is recommended for. + optional string campaign = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. Recommended category for the website domain, for example, if you have a + // website about electronics, the categories could be "cameras", + // "televisions", etc. + optional string category = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The language code specifying the language of the website, for example, "en" + // for English. The language can be specified in the DynamicSearchAdsSetting + // required for dynamic search ads. This is the language of the pages from + // your website that you want Google Ads to find, create ads for, + // and match searches with. + optional string language_code = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The domain for the website. The domain can be specified in the + // DynamicSearchAdsSetting required for dynamic search ads. + optional string domain = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Fraction of pages on your site that this category matches. + optional double coverage_fraction = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The position of this category in the set of categories. Lower numbers + // indicate a better match for the domain. null indicates not recommended. + optional int64 category_rank = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether this category has sub-categories. + optional bool has_children = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended cost per click for the category. + optional int64 recommended_cpc_bid_micros = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/dynamic_search_ads_search_term_view.proto b/google/ads/googleads/v11/resources/dynamic_search_ads_search_term_view.proto new file mode 100644 index 000000000..7ad6f9b4c --- /dev/null +++ b/google/ads/googleads/v11/resources/dynamic_search_ads_search_term_view.proto @@ -0,0 +1,85 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DynamicSearchAdsSearchTermViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Dynamic Search Ads Search Term View resource. + +// A dynamic search ads search term view. +message DynamicSearchAdsSearchTermView { + option (google.api.resource) = { + type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" + pattern: "customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}" + }; + + // Output only. The resource name of the dynamic search ads search term view. + // Dynamic search ads search term view resource names have the form: + // + // `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" + } + ]; + + // Output only. Search term + // + // This field is read-only. + optional string search_term = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The dynamically generated headline of the Dynamic Search Ad. + // + // This field is read-only. + optional string headline = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The dynamically selected landing page URL of the impression. + // + // This field is read-only. + optional string landing_page = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of page feed item served for the impression. + // + // This field is read-only. + optional string page_url = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if query matches a negative keyword. + // + // This field is read-only. + optional bool has_negative_keyword = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if query is added to targeted keywords. + // + // This field is read-only. + optional bool has_matching_keyword = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if query matches a negative url. + // + // This field is read-only. + optional bool has_negative_url = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/expanded_landing_page_view.proto b/google/ads/googleads/v11/resources/expanded_landing_page_view.proto new file mode 100644 index 000000000..eaf943082 --- /dev/null +++ b/google/ads/googleads/v11/resources/expanded_landing_page_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ExpandedLandingPageViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the expanded landing page view resource. + +// A landing page view with metrics aggregated at the expanded final URL +// level. +message ExpandedLandingPageView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ExpandedLandingPageView" + pattern: "customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}" + }; + + // Output only. The resource name of the expanded landing page view. + // Expanded landing page view resource names have the form: + // + // `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ExpandedLandingPageView" + } + ]; + + // Output only. The final URL that clicks are directed to. + optional string expanded_final_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/experiment.proto b/google/ads/googleads/v11/resources/experiment.proto new file mode 100644 index 000000000..4add93ae1 --- /dev/null +++ b/google/ads/googleads/v11/resources/experiment.proto @@ -0,0 +1,106 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/metric_goal.proto"; +import "google/ads/googleads/v11/enums/async_action_status.proto"; +import "google/ads/googleads/v11/enums/experiment_status.proto"; +import "google/ads/googleads/v11/enums/experiment_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Experiment resource. + +// A Google ads experiment for users to experiment changes on multiple +// campaigns, compare the performance, and apply the effective changes. +message Experiment { + option (google.api.resource) = { + type: "googleads.googleapis.com/Experiment" + pattern: "customers/{customer_id}/experiments/{trial_id}" + }; + + // Immutable. The resource name of the experiment. + // Experiment resource names have the form: + // + // `customers/{customer_id}/experiments/{experiment_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // Output only. The ID of the experiment. Read only. + optional int64 experiment_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the experiment. It must have a minimum length of 1 and + // maximum length of 1024. It must be unique under a customer. + string name = 10 [(google.api.field_behavior) = REQUIRED]; + + // The description of the experiment. It must have a minimum length of 1 and + // maximum length of 2048. + string description = 11; + + // For system managed experiments, the advertiser must provide a suffix during + // construction, in the setup stage before moving to initiated. The suffix + // will be appended to the in-design and experiment campaign names so that the + // name is base campaign name + suffix. + string suffix = 12; + + // The product/feature that uses this experiment. + google.ads.googleads.v11.enums.ExperimentTypeEnum.ExperimentType type = 13; + + // The Advertiser-chosen status of this experiment. + google.ads.googleads.v11.enums.ExperimentStatusEnum.ExperimentStatus status = 14; + + // Date when the experiment starts. By default, the experiment starts + // now or on the campaign's start date, whichever is later. If this field is + // set, then the experiment starts at the beginning of the specified date in + // the customer's time zone. + // + // Format: YYYY-MM-DD + // Example: 2019-03-14 + optional string start_date = 15; + + // Date when the experiment ends. By default, the experiment ends on + // the campaign's end date. If this field is set, then the experiment ends at + // the end of the specified date in the customer's time zone. + // + // Format: YYYY-MM-DD + // Example: 2019-04-18 + optional string end_date = 16; + + // The goals of this experiment. + repeated google.ads.googleads.v11.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 recent long + // running operation is returned. + optional string long_running_operation = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the experiment promotion process. + google.ads.googleads.v11.enums.AsyncActionStatusEnum.AsyncActionStatus promote_status = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/experiment_arm.proto b/google/ads/googleads/v11/resources/experiment_arm.proto new file mode 100644 index 000000000..cd1219a44 --- /dev/null +++ b/google/ads/googleads/v11/resources/experiment_arm.proto @@ -0,0 +1,84 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentArmProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Experiment arm resource. + +// A Google ads experiment for users to experiment changes on multiple +// campaigns, compare the performance, and apply the effective changes. +message ExperimentArm { + option (google.api.resource) = { + type: "googleads.googleapis.com/ExperimentArm" + pattern: "customers/{customer_id}/experimentArms/{trial_id}~{trial_arm_id}" + }; + + // Immutable. The resource name of the experiment arm. + // Experiment arm resource names have the form: + // + // `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ExperimentArm" + } + ]; + + // Immutable. The experiment to which the ExperimentArm belongs. + string trial = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // Required. The name of the experiment arm. It must have a minimum length of 1 and + // maximum length of 1024. It must be unique under an experiment. + string name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Whether this arm is a control arm. A control arm is the arm against + // which the other arms are compared. + bool control = 4; + + // Traffic split of the trial arm. The value should be between 1 and 100 + // and must total 100 between the two trial arms. + int64 traffic_split = 5; + + // List of campaigns in the trial arm. The max length is one. + repeated string campaigns = 6 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // Output only. The in design campaigns in the treatment experiment arm. + repeated string in_design_campaigns = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/extension_feed_item.proto b/google/ads/googleads/v11/resources/extension_feed_item.proto new file mode 100644 index 000000000..898d493e7 --- /dev/null +++ b/google/ads/googleads/v11/resources/extension_feed_item.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/common/extensions.proto"; +import "google/ads/googleads/v11/enums/extension_type.proto"; +import "google/ads/googleads/v11/enums/feed_item_status.proto"; +import "google/ads/googleads/v11/enums/feed_item_target_device.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionFeedItemProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ExtensionFeedItem resource. + +// An extension feed item. +message ExtensionFeedItem { + option (google.api.resource) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + pattern: "customers/{customer_id}/extensionFeedItems/{feed_item_id}" + }; + + // Immutable. The resource name of the extension feed item. + // Extension feed item resource names have the form: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + } + ]; + + // Output only. The ID of this feed item. Read-only. + optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The extension type of the extension feed item. + // This field is read-only. + google.ads.googleads.v11.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 + // time is in the customer's time zone. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string start_date_time = 26; + + // End time in which this feed item is no longer effective and will stop + // serving. The time is in the customer's time zone. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string end_date_time = 27; + + // 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.v11.common.AdScheduleInfo ad_schedules = 16; + + // The targeted device. + google.ads.googleads.v11.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 17; + + // The targeted geo target constant. + optional string targeted_geo_target_constant = 30 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + }]; + + // The targeted keyword. + google.ads.googleads.v11.common.KeywordInfo targeted_keyword = 22; + + // Output only. Status of the feed item. + // This field is read-only. + google.ads.googleads.v11.enums.FeedItemStatusEnum.FeedItemStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Extension type. + oneof extension { + // Sitelink extension. + google.ads.googleads.v11.common.SitelinkFeedItem sitelink_feed_item = 2; + + // Structured snippet extension. + google.ads.googleads.v11.common.StructuredSnippetFeedItem structured_snippet_feed_item = 3; + + // App extension. + google.ads.googleads.v11.common.AppFeedItem app_feed_item = 7; + + // Call extension. + google.ads.googleads.v11.common.CallFeedItem call_feed_item = 8; + + // Callout extension. + google.ads.googleads.v11.common.CalloutFeedItem callout_feed_item = 9; + + // Text message extension. + google.ads.googleads.v11.common.TextMessageFeedItem text_message_feed_item = 10; + + // Price extension. + google.ads.googleads.v11.common.PriceFeedItem price_feed_item = 11; + + // Promotion extension. + google.ads.googleads.v11.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.v11.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.v11.common.AffiliateLocationFeedItem affiliate_location_feed_item = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Hotel Callout extension. + google.ads.googleads.v11.common.HotelCalloutFeedItem hotel_callout_feed_item = 23; + + // Immutable. Advertiser provided image extension. + google.ads.googleads.v11.common.ImageFeedItem image_feed_item = 31 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Targeting at either the campaign or ad group level. Feed items that target + // a campaign or ad group will only serve with that resource. + oneof serving_resource_targeting { + // The targeted campaign. + string targeted_campaign = 28 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // The targeted ad group. + string targeted_ad_group = 29 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + }]; + } +} diff --git a/google/ads/googleads/v11/resources/feed.proto b/google/ads/googleads/v11/resources/feed.proto new file mode 100644 index 000000000..feb7d6886 --- /dev/null +++ b/google/ads/googleads/v11/resources/feed.proto @@ -0,0 +1,189 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/affiliate_location_feed_relationship_type.proto"; +import "google/ads/googleads/v11/enums/feed_attribute_type.proto"; +import "google/ads/googleads/v11/enums/feed_origin.proto"; +import "google/ads/googleads/v11/enums/feed_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Feed resource. + +// A feed. +message Feed { + option (google.api.resource) = { + type: "googleads.googleapis.com/Feed" + pattern: "customers/{customer_id}/feeds/{feed_id}" + }; + + // Data used to configure a location feed populated from Business Profile. + message PlacesLocationFeedData { + // Data used for authorization using OAuth. + message OAuthInfo { + // The HTTP method used to obtain authorization. + optional string http_method = 4; + + // The HTTP request URL used to obtain authorization. + optional string http_request_url = 5; + + // The HTTP authorization header used to obtain authorization. + optional string http_authorization_header = 6; + } + + // Immutable. Required authentication token (from OAuth API) for the email. + // This field can only be specified in a create request. All its subfields + // are not selectable. + OAuthInfo oauth_info = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Email address of a Business Profile or email address of a + // manager of the Business Profile. Required. + optional string email_address = 7; + + // Plus page ID of the managed business whose locations should be used. If + // this field is not set, then all businesses accessible by the user + // (specified by email_address) are used. + // This field is mutate-only and is not selectable. + string business_account_id = 8; + + // Used to filter Business Profile listings by business name. If + // business_name_filter is set, only listings with a matching business name + // are candidates to be sync'd into FeedItems. + optional string business_name_filter = 9; + + // Used to filter Business Profile listings by categories. If entries + // exist in category_filters, only listings that belong to any of the + // categories are candidates to be sync'd into FeedItems. If no entries + // exist in category_filters, then all listings are candidates for syncing. + repeated string category_filters = 11; + + // Used to filter Business Profile listings by labels. If entries exist in + // label_filters, only listings that has any of the labels set are + // candidates to be synchronized into FeedItems. If no entries exist in + // label_filters, then all listings are candidates for syncing. + repeated string label_filters = 12; + } + + // Data used to configure an affiliate location feed populated with the + // specified chains. + message AffiliateLocationFeedData { + // The list of chains that the affiliate location feed will sync the + // locations from. + repeated int64 chain_ids = 3; + + // The relationship the chains have with the advertiser. + google.ads.googleads.v11.enums.AffiliateLocationFeedRelationshipTypeEnum.AffiliateLocationFeedRelationshipType relationship_type = 2; + } + + // Immutable. The resource name of the feed. + // Feed resource names have the form: + // + // `customers/{customer_id}/feeds/{feed_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. The ID of the feed. + // This field is read-only. + optional int64 id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Name of the feed. Required. + optional string name = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // The Feed's attributes. Required on CREATE, unless + // system_feed_generation_data is provided, in which case Google Ads will + // update the feed with the correct attributes. + // Disallowed on UPDATE. Use attribute_operations to add new attributes. + repeated FeedAttribute attributes = 4; + + // The list of operations changing the feed attributes. Attributes can only + // be added, not removed. + repeated FeedAttributeOperation attribute_operations = 9; + + // Immutable. Specifies who manages the FeedAttributes for the Feed. + google.ads.googleads.v11.enums.FeedOriginEnum.FeedOrigin origin = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Status of the feed. + // This field is read-only. + google.ads.googleads.v11.enums.FeedStatusEnum.FeedStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The system data for the Feed. This data specifies information for + // generating the feed items of the system generated feed. + oneof system_feed_generation_data { + // Data used to configure a location feed populated from Business Profile. + PlacesLocationFeedData places_location_feed_data = 6; + + // Data used to configure an affiliate location feed populated with + // the specified chains. + AffiliateLocationFeedData affiliate_location_feed_data = 7; + } +} + +// FeedAttributes define the types of data expected to be present in a Feed. A +// single FeedAttribute specifies the expected type of the FeedItemAttributes +// with the same FeedAttributeId. Optionally, a FeedAttribute can be marked as +// being part of a FeedItem's unique key. +message FeedAttribute { + // ID of the attribute. + optional int64 id = 5; + + // The name of the attribute. Required. + optional string name = 6; + + // Data type for feed attribute. Required. + google.ads.googleads.v11.enums.FeedAttributeTypeEnum.FeedAttributeType type = 3; + + // Indicates that data corresponding to this attribute is part of a + // FeedItem's unique key. It defaults to false if it is unspecified. Note + // that a unique key is not required in a Feed's schema, in which case the + // FeedItems must be referenced by their feed_item_id. + optional bool is_part_of_key = 7; +} + +// Operation to be performed on a feed attribute list in a mutate. +message FeedAttributeOperation { + // The operator. + enum Operator { + // Unspecified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Add the attribute to the existing attributes. + ADD = 2; + } + + // Output only. Type of list operation to perform. + Operator operator = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The feed attribute being added to the list. + FeedAttribute value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/feed_item.proto b/google/ads/googleads/v11/resources/feed_item.proto new file mode 100644 index 000000000..2cb38de50 --- /dev/null +++ b/google/ads/googleads/v11/resources/feed_item.proto @@ -0,0 +1,214 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/custom_parameter.proto"; +import "google/ads/googleads/v11/common/feed_common.proto"; +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/feed_item_quality_approval_status.proto"; +import "google/ads/googleads/v11/enums/feed_item_quality_disapproval_reason.proto"; +import "google/ads/googleads/v11/enums/feed_item_status.proto"; +import "google/ads/googleads/v11/enums/feed_item_validation_status.proto"; +import "google/ads/googleads/v11/enums/geo_targeting_restriction.proto"; +import "google/ads/googleads/v11/enums/placeholder_type.proto"; +import "google/ads/googleads/v11/enums/policy_approval_status.proto"; +import "google/ads/googleads/v11/enums/policy_review_status.proto"; +import "google/ads/googleads/v11/errors/feed_item_validation_error.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the FeedItem resource. + +// A feed item. +message FeedItem { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedItem" + pattern: "customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}" + }; + + // Immutable. The resource name of the feed item. + // Feed item resource names have the form: + // + // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Immutable. The feed to which this feed item belongs. + optional string feed = 11 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. The ID of this feed item. + optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Start time in which this feed item is effective and can begin serving. The + // time is in the customer's time zone. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string start_date_time = 13; + + // End time in which this feed item is no longer effective and will stop + // serving. The time is in the customer's time zone. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string end_date_time = 14; + + // The feed item's attribute values. + repeated FeedItemAttributeValue attribute_values = 6; + + // Geo targeting restriction specifies the type of location that can be used + // for targeting. + google.ads.googleads.v11.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.v11.common.CustomParameter url_custom_parameters = 8; + + // Output only. Status of the feed item. + // This field is read-only. + google.ads.googleads.v11.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 for active + // feed mappings. There will be an entry in the list for each type of feed + // mapping associated with the feed, for example, a feed with a sitelink and a + // call feed mapping would cause every feed item associated with that feed to + // have an entry in this list for both sitelink and call. This field is + // read-only. + repeated FeedItemPlaceholderPolicyInfo policy_infos = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A feed item attribute value. +message FeedItemAttributeValue { + // Id of the feed attribute for which the value is associated with. + optional int64 feed_attribute_id = 11; + + // Int64 value. Should be set if feed_attribute_id refers to a feed attribute + // of type INT64. + optional int64 integer_value = 12; + + // Bool value. Should be set if feed_attribute_id refers to a feed attribute + // of type BOOLEAN. + optional bool boolean_value = 13; + + // String value. Should be set if feed_attribute_id refers to a feed attribute + // of type STRING, URL or DATE_TIME. + // For STRING the maximum length is 1500 characters. For URL the maximum + // length is 2076 characters. For DATE_TIME the string must be in the format + // "YYYYMMDD HHMMSS". + optional string string_value = 14; + + // Double value. Should be set if feed_attribute_id refers to a feed attribute + // of type DOUBLE. + optional double double_value = 15; + + // Price value. Should be set if feed_attribute_id refers to a feed attribute + // of type PRICE. + google.ads.googleads.v11.common.Money price_value = 6; + + // Repeated int64 value. Should be set if feed_attribute_id refers to a feed + // attribute of type INT64_LIST. + repeated int64 integer_values = 16; + + // Repeated bool value. Should be set if feed_attribute_id refers to a feed + // attribute of type BOOLEAN_LIST. + repeated bool boolean_values = 17; + + // Repeated string value. Should be set if feed_attribute_id refers to a feed + // attribute of type STRING_LIST, URL_LIST or DATE_TIME_LIST. + // For STRING_LIST and URL_LIST the total size of the list in bytes may not + // exceed 3000. For DATE_TIME_LIST the number of elements may not exceed 200. + // + // For STRING_LIST the maximum length of each string element is 1500 + // characters. For URL_LIST the maximum length is 2076 characters. For + // DATE_TIME the format of the string must be the same as start and end time + // for the feed item. + repeated string string_values = 18; + + // Repeated double value. Should be set if feed_attribute_id refers to a feed + // attribute of type DOUBLE_LIST. + repeated double double_values = 19; +} + +// Policy, validation, and quality approval info for a feed item for the +// specified placeholder type. +message FeedItemPlaceholderPolicyInfo { + // Output only. The placeholder type. + google.ads.googleads.v11.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type_enum = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The FeedMapping that contains the placeholder type. + optional string feed_mapping_resource_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Where the placeholder type is in the review process. + google.ads.googleads.v11.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.v11.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.v11.common.PolicyTopicEntry policy_topic_entries = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The validation status of the palceholder type. + google.ads.googleads.v11.enums.FeedItemValidationStatusEnum.FeedItemValidationStatus validation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of placeholder type validation errors. + repeated FeedItemValidationError validation_errors = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Placeholder type quality evaluation approval status. + google.ads.googleads.v11.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.v11.enums.FeedItemQualityDisapprovalReasonEnum.FeedItemQualityDisapprovalReason quality_disapproval_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Stores a validation error and the set of offending feed attributes which +// together are responsible for causing a feed item validation error. +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.v11.errors.FeedItemValidationErrorEnum.FeedItemValidationError validation_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The description of the validation error. + optional string description = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Set of feed attributes in the feed item flagged during validation. If + // empty, no specific feed attributes can be associated with the error + // (for example, error across the entire feed item). + repeated int64 feed_attribute_ids = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Any extra information related to this error which is not captured by + // validation_error and feed_attribute_id (for example, placeholder field IDs + // when feed_attribute_id is not mapped). Note that extra_info is not + // localized. + optional string extra_info = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/feed_item_set.proto b/google/ads/googleads/v11/resources/feed_item_set.proto new file mode 100644 index 000000000..e4eed5767 --- /dev/null +++ b/google/ads/googleads/v11/resources/feed_item_set.proto @@ -0,0 +1,83 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/feed_item_set_filter_type_infos.proto"; +import "google/ads/googleads/v11/enums/feed_item_set_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::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 +// matching functions of CustomerFeed, CampaignFeed, and AdGroupFeed. +message FeedItemSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedItemSet" + pattern: "customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}" + }; + + // Immutable. The resource name of the feed item set. + // Feed item set resource names have the form: + // `customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSet" + } + ]; + + // Immutable. The resource name of the feed containing the feed items in the set. + // Immutable. Required. + string feed = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Output only. ID of the set. + int64 feed_item_set_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of the set. Must be unique within the account. + string display_name = 4; + + // Output only. Status of the feed item set. + // This field is read-only. + google.ads.googleads.v11.enums.FeedItemSetStatusEnum.FeedItemSetStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Represents a filter on locations in a feed item set. + // Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. + oneof dynamic_set_filter { + // Filter for dynamic location set. + // It is only used for sets of locations. + google.ads.googleads.v11.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.v11.common.DynamicAffiliateLocationSetFilter dynamic_affiliate_location_set_filter = 6; + } +} diff --git a/google/ads/googleads/v11/resources/feed_item_set_link.proto b/google/ads/googleads/v11/resources/feed_item_set_link.proto new file mode 100644 index 000000000..79c1bcbfc --- /dev/null +++ b/google/ads/googleads/v11/resources/feed_item_set_link.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetLinkProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the FeedItemSetLink resource. + +// Represents a link between a FeedItem and a FeedItemSet. +message FeedItemSetLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedItemSetLink" + pattern: "customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}" + }; + + // Immutable. The resource name of the feed item set link. + // Feed item set link resource names have the form: + // `customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSetLink" + } + ]; + + // Immutable. The linked FeedItem. + string feed_item = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Immutable. The linked FeedItemSet. + string feed_item_set = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSet" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/feed_item_target.proto b/google/ads/googleads/v11/resources/feed_item_target.proto new file mode 100644 index 000000000..903cfd1d4 --- /dev/null +++ b/google/ads/googleads/v11/resources/feed_item_target.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/enums/feed_item_target_device.proto"; +import "google/ads/googleads/v11/enums/feed_item_target_status.proto"; +import "google/ads/googleads/v11/enums/feed_item_target_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the FeedItemTarget resource. + +// A feed item target. +message FeedItemTarget { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedItemTarget" + pattern: "customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}" + }; + + // Immutable. The resource name of the feed item target. + // Feed item target resource names have the form: + // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemTarget" + } + ]; + + // Immutable. The feed item to which this feed item target belongs. + optional string feed_item = 12 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + } + ]; + + // Output only. The target type of this feed item target. This field is read-only. + google.ads.googleads.v11.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. + optional int64 feed_item_target_id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of the feed item target. + // This field is read-only. + google.ads.googleads.v11.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The targeted resource. + oneof target { + // Immutable. The targeted campaign. + string campaign = 14 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Immutable. The targeted ad group. + string ad_group = 15 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Immutable. The targeted keyword. + google.ads.googleads.v11.common.KeywordInfo keyword = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The targeted geo target constant resource name. + string geo_target_constant = 16 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + } + ]; + + // Immutable. The targeted device. + google.ads.googleads.v11.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The targeted schedule. + google.ads.googleads.v11.common.AdScheduleInfo ad_schedule = 10 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v11/resources/feed_mapping.proto b/google/ads/googleads/v11/resources/feed_mapping.proto new file mode 100644 index 000000000..24d9d30cc --- /dev/null +++ b/google/ads/googleads/v11/resources/feed_mapping.proto @@ -0,0 +1,188 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/ad_customizer_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/affiliate_location_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/app_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/call_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/callout_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/custom_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/dsa_page_feed_criterion_field.proto"; +import "google/ads/googleads/v11/enums/education_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/feed_mapping_criterion_type.proto"; +import "google/ads/googleads/v11/enums/feed_mapping_status.proto"; +import "google/ads/googleads/v11/enums/flight_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/hotel_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/image_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/job_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/local_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/location_extension_targeting_criterion_field.proto"; +import "google/ads/googleads/v11/enums/location_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/message_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/placeholder_type.proto"; +import "google/ads/googleads/v11/enums/price_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/promotion_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/real_estate_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/sitelink_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/structured_snippet_placeholder_field.proto"; +import "google/ads/googleads/v11/enums/travel_placeholder_field.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the FeedMapping resource. + +// A feed mapping. +message FeedMapping { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedMapping" + pattern: "customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}" + }; + + // Immutable. The resource name of the feed mapping. + // Feed mapping resource names have the form: + // + // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedMapping" + } + ]; + + // Immutable. The feed of this feed mapping. + optional string feed = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + } + ]; + + // Immutable. Feed attributes to field mappings. These mappings are a one-to-many + // relationship meaning that 1 feed attribute can be used to populate + // multiple placeholder fields, but 1 placeholder field can only draw + // data from 1 feed attribute. Ad Customizer is an exception, 1 placeholder + // field can be mapped to multiple feed attributes. Required. + repeated AttributeFieldMapping attribute_field_mappings = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Status of the feed mapping. + // This field is read-only. + google.ads.googleads.v11.enums.FeedMappingStatusEnum.FeedMappingStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Feed mapping target. Can be either a placeholder or a criterion. For a + // given feed, the active FeedMappings must have unique targets. Required. + oneof target { + // Immutable. The placeholder type of this mapping (for example, if the mapping maps + // feed attributes to placeholder fields). + google.ads.googleads.v11.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.v11.enums.FeedMappingCriterionTypeEnum.FeedMappingCriterionType criterion_type = 4 [(google.api.field_behavior) = IMMUTABLE]; + } +} + +// Maps from feed attribute id to a placeholder or criterion field id. +message AttributeFieldMapping { + // Immutable. Feed attribute from which to map. + optional int64 feed_attribute_id = 24 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The placeholder field ID. If a placeholder field enum is not published in + // the current API version, then this field will be populated and the field + // oneof will be empty. + // This field is read-only. + optional int64 field_id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Placeholder or criterion field to be populated using data from + // the above feed attribute. Required. + oneof field { + // Immutable. Sitelink Placeholder Fields. + google.ads.googleads.v11.enums.SitelinkPlaceholderFieldEnum.SitelinkPlaceholderField sitelink_field = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Call Placeholder Fields. + google.ads.googleads.v11.enums.CallPlaceholderFieldEnum.CallPlaceholderField call_field = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. App Placeholder Fields. + google.ads.googleads.v11.enums.AppPlaceholderFieldEnum.AppPlaceholderField app_field = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Location Placeholder Fields. This field is read-only. + google.ads.googleads.v11.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.v11.enums.AffiliateLocationPlaceholderFieldEnum.AffiliateLocationPlaceholderField affiliate_location_field = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Callout Placeholder Fields. + google.ads.googleads.v11.enums.CalloutPlaceholderFieldEnum.CalloutPlaceholderField callout_field = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Structured Snippet Placeholder Fields. + google.ads.googleads.v11.enums.StructuredSnippetPlaceholderFieldEnum.StructuredSnippetPlaceholderField structured_snippet_field = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Message Placeholder Fields. + google.ads.googleads.v11.enums.MessagePlaceholderFieldEnum.MessagePlaceholderField message_field = 10 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Price Placeholder Fields. + google.ads.googleads.v11.enums.PricePlaceholderFieldEnum.PricePlaceholderField price_field = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Promotion Placeholder Fields. + google.ads.googleads.v11.enums.PromotionPlaceholderFieldEnum.PromotionPlaceholderField promotion_field = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Ad Customizer Placeholder Fields + google.ads.googleads.v11.enums.AdCustomizerPlaceholderFieldEnum.AdCustomizerPlaceholderField ad_customizer_field = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Dynamic Search Ad Page Feed Fields. + google.ads.googleads.v11.enums.DsaPageFeedCriterionFieldEnum.DsaPageFeedCriterionField dsa_page_feed_field = 14 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Location Target Fields. + google.ads.googleads.v11.enums.LocationExtensionTargetingCriterionFieldEnum.LocationExtensionTargetingCriterionField location_extension_targeting_field = 15 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Education Placeholder Fields + google.ads.googleads.v11.enums.EducationPlaceholderFieldEnum.EducationPlaceholderField education_field = 16 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Flight Placeholder Fields + google.ads.googleads.v11.enums.FlightPlaceholderFieldEnum.FlightPlaceholderField flight_field = 17 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Custom Placeholder Fields + google.ads.googleads.v11.enums.CustomPlaceholderFieldEnum.CustomPlaceholderField custom_field = 18 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Hotel Placeholder Fields + google.ads.googleads.v11.enums.HotelPlaceholderFieldEnum.HotelPlaceholderField hotel_field = 19 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Real Estate Placeholder Fields + google.ads.googleads.v11.enums.RealEstatePlaceholderFieldEnum.RealEstatePlaceholderField real_estate_field = 20 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Travel Placeholder Fields + google.ads.googleads.v11.enums.TravelPlaceholderFieldEnum.TravelPlaceholderField travel_field = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Local Placeholder Fields + google.ads.googleads.v11.enums.LocalPlaceholderFieldEnum.LocalPlaceholderField local_field = 22 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Job Placeholder Fields + google.ads.googleads.v11.enums.JobPlaceholderFieldEnum.JobPlaceholderField job_field = 23 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Image Placeholder Fields + google.ads.googleads.v11.enums.ImagePlaceholderFieldEnum.ImagePlaceholderField image_field = 26 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v11/resources/feed_placeholder_view.proto b/google/ads/googleads/v11/resources/feed_placeholder_view.proto new file mode 100644 index 000000000..b0ca9fd1f --- /dev/null +++ b/google/ads/googleads/v11/resources/feed_placeholder_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/placeholder_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "FeedPlaceholderViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the FeedPlaceholderView resource. + +// A feed placeholder view. +message FeedPlaceholderView { + option (google.api.resource) = { + type: "googleads.googleapis.com/FeedPlaceholderView" + pattern: "customers/{customer_id}/feedPlaceholderViews/{placeholder_type}" + }; + + // Output only. The resource name of the feed placeholder view. + // Feed placeholder view resource names have the form: + // + // `customers/{customer_id}/feedPlaceholderViews/{placeholder_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedPlaceholderView" + } + ]; + + // Output only. The placeholder type of the feed placeholder view. + google.ads.googleads.v11.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/gender_view.proto b/google/ads/googleads/v11/resources/gender_view.proto new file mode 100644 index 000000000..632926e9b --- /dev/null +++ b/google/ads/googleads/v11/resources/gender_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GenderViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the gender view resource. + +// A gender view. +message GenderView { + option (google.api.resource) = { + type: "googleads.googleapis.com/GenderView" + pattern: "customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the gender view. + // Gender view resource names have the form: + // + // `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GenderView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/geo_target_constant.proto b/google/ads/googleads/v11/resources/geo_target_constant.proto new file mode 100644 index 000000000..ecb00a2b3 --- /dev/null +++ b/google/ads/googleads/v11/resources/geo_target_constant.proto @@ -0,0 +1,81 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/geo_target_constant_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the geo target constant resource. + +// A geo target constant. +message GeoTargetConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/GeoTargetConstant" + pattern: "geoTargetConstants/{criterion_id}" + }; + + // Output only. The resource name of the geo target constant. + // Geo target constant resource names have the form: + // + // `geoTargetConstants/{geo_target_constant_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + } + ]; + + // Output only. The ID of the geo target constant. + optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Geo target constant English name. + optional string name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ISO-3166-1 alpha-2 country code that is associated with the target. + optional string country_code = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Geo target constant target type. + optional string target_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Geo target constant status. + google.ads.googleads.v11.enums.GeoTargetConstantStatusEnum.GeoTargetConstantStatus status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The fully qualified English name, consisting of the target's name and that + // of its parent and country. + optional string canonical_name = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the parent geo target constant. + // Geo target constant resource names have the form: + // + // `geoTargetConstants/{parent_geo_target_constant_id}` + optional string parent_geo_target = 9 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/geographic_view.proto b/google/ads/googleads/v11/resources/geographic_view.proto new file mode 100644 index 000000000..40191167a --- /dev/null +++ b/google/ads/googleads/v11/resources/geographic_view.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/geo_targeting_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GeographicViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the geographic view resource. + +// A geographic view. +// +// Geographic View includes all metrics aggregated at the country level, +// one row per country. It reports metrics at either actual physical location of +// the user or an area of interest. If other segment fields are used, you may +// get more than one row per country. +message GeographicView { + option (google.api.resource) = { + type: "googleads.googleapis.com/GeographicView" + pattern: "customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}" + }; + + // Output only. The resource name of the geographic view. + // Geographic view resource names have the form: + // + // `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GeographicView" + } + ]; + + // Output only. Type of the geo targeting of the campaign. + google.ads.googleads.v11.enums.GeoTargetingTypeEnum.GeoTargetingType location_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Criterion Id for the country. + optional int64 country_criterion_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/google_ads_field.proto b/google/ads/googleads/v11/resources/google_ads_field.proto new file mode 100644 index 000000000..99cc7ea88 --- /dev/null +++ b/google/ads/googleads/v11/resources/google_ads_field.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/google_ads_field_category.proto"; +import "google/ads/googleads/v11/enums/google_ads_field_data_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsFieldProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Google Ads Field resource. + +// A field or resource (artifact) used by GoogleAdsService. +message GoogleAdsField { + option (google.api.resource) = { + type: "googleads.googleapis.com/GoogleAdsField" + pattern: "googleAdsFields/{google_ads_field}" + }; + + // Output only. The resource name of the artifact. + // Artifact resource names have the form: + // + // `googleAdsFields/{name}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GoogleAdsField" + } + ]; + + // Output only. The name of the artifact. + optional string name = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The category of the artifact. + google.ads.googleads.v11.enums.GoogleAdsFieldCategoryEnum.GoogleAdsFieldCategory category = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the artifact can be used in a SELECT clause in search + // queries. + optional bool selectable = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the artifact can be used in a WHERE clause in search + // queries. + optional bool filterable = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the artifact can be used in a ORDER BY clause in search + // queries. + optional bool sortable = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The names of all resources, segments, and metrics that are selectable with + // the described artifact. + repeated string selectable_with = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The names of all resources that are selectable with the described + // artifact. Fields from these resources do not segment metrics when included + // in search queries. + // + // This field is only set for artifacts whose category is RESOURCE. + repeated string attribute_resources = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field lists the names of all metrics that are selectable with the + // described artifact when it is used in the FROM clause. + // It is only set for artifacts whose category is RESOURCE. + repeated string metrics = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field lists the names of all artifacts, whether a segment or another + // resource, that segment metrics when included in search queries and when the + // described artifact is used in the FROM clause. It is only set for artifacts + // whose category is RESOURCE. + repeated string segments = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Values the artifact can assume if it is a field of type ENUM. + // + // This field is only set for artifacts of category SEGMENT or ATTRIBUTE. + repeated string enum_values = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field determines the operators that can be used with the artifact + // in WHERE clauses. + google.ads.googleads.v11.enums.GoogleAdsFieldDataTypeEnum.GoogleAdsFieldDataType data_type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of proto describing the artifact's data type. + optional string type_url = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the field artifact is repeated. + optional bool is_repeated = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/group_placement_view.proto b/google/ads/googleads/v11/resources/group_placement_view.proto new file mode 100644 index 000000000..52864d967 --- /dev/null +++ b/google/ads/googleads/v11/resources/group_placement_view.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/placement_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "GroupPlacementViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the group placement view resource. + +// A group placement view. +message GroupPlacementView { + option (google.api.resource) = { + type: "googleads.googleapis.com/GroupPlacementView" + pattern: "customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}" + }; + + // Output only. The resource name of the group placement view. + // Group placement view resource names have the form: + // + // `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GroupPlacementView" + } + ]; + + // Output only. The automatic placement string at group level, e. g. web domain, mobile + // app ID, or a YouTube channel ID. + optional string placement = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Domain name for websites and YouTube channel name for YouTube channels. + optional string display_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL of the group placement, for example, domain, link to the mobile + // application in app store, or a YouTube channel URL. + optional string target_url = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the placement, for example, Website, YouTube Channel, Mobile + // Application. + google.ads.googleads.v11.enums.PlacementTypeEnum.PlacementType placement_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/hotel_group_view.proto b/google/ads/googleads/v11/resources/hotel_group_view.proto new file mode 100644 index 000000000..26ee59935 --- /dev/null +++ b/google/ads/googleads/v11/resources/hotel_group_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "HotelGroupViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the hotel group view resource. + +// A hotel group view. +message HotelGroupView { + option (google.api.resource) = { + type: "googleads.googleapis.com/HotelGroupView" + pattern: "customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the hotel group view. + // Hotel Group view resource names have the form: + // + // `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/HotelGroupView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/hotel_performance_view.proto b/google/ads/googleads/v11/resources/hotel_performance_view.proto new file mode 100644 index 000000000..0e3e24e74 --- /dev/null +++ b/google/ads/googleads/v11/resources/hotel_performance_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "HotelPerformanceViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the hotel performance view resource. + +// A hotel performance view. +message HotelPerformanceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/HotelPerformanceView" + pattern: "customers/{customer_id}/hotelPerformanceView" + }; + + // Output only. The resource name of the hotel performance view. + // Hotel performance view resource names have the form: + // + // `customers/{customer_id}/hotelPerformanceView` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/HotelPerformanceView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/hotel_reconciliation.proto b/google/ads/googleads/v11/resources/hotel_reconciliation.proto new file mode 100644 index 000000000..dd7f5abc0 --- /dev/null +++ b/google/ads/googleads/v11/resources/hotel_reconciliation.proto @@ -0,0 +1,116 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/hotel_reconciliation_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "HotelReconciliationProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the hotel reconciliation resource. + +// A hotel reconciliation. It contains conversion information from Hotel +// bookings to reconcile with advertiser records. These rows may be updated +// or canceled before billing through Bulk Uploads. +message HotelReconciliation { + option (google.api.resource) = { + type: "googleads.googleapis.com/HotelReconciliation" + pattern: "customers/{customer_id}/hotelReconciliations/{commission_id}" + }; + + // Immutable. The resource name of the hotel reconciliation. + // Hotel reconciliation resource names have the form: + // + // `customers/{customer_id}/hotelReconciliations/{commission_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/HotelReconciliation" + } + ]; + + // Required. Output only. The commission ID is Google's ID for this booking. Every booking event is + // assigned a Commission ID to help you match it to a guest stay. + string commission_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. The order ID is the identifier for this booking as provided in the + // 'transaction_id' parameter of the conversion tracking tag. + string order_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name for the Campaign associated with the conversion. + string campaign = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. Identifier for the Hotel Center account which provides the rates for the + // Hotel campaign. + int64 hotel_center_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unique identifier for the booked property, as provided in the Hotel Center + // feed. The hotel ID comes from the 'ID' parameter of the conversion tracking + // tag. + string hotel_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Check-in date recorded when the booking is made. If the check-in date is + // modified at reconciliation, the revised date will then take the place of + // the original date in this column. Format is YYYY-MM-DD. + string check_in_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Check-out date recorded when the booking is made. If the check-in date is + // modified at reconciliation, the revised date will then take the place of + // the original date in this column. Format is YYYY-MM-DD. + string check_out_date = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Output only. Reconciled value is the final value of a booking as paid by the guest. If + // original booking value changes for any reason, such as itinerary changes or + // room upsells, the reconciled value should be the full final amount + // collected. If a booking is canceled, the reconciled value should include + // the value of any cancellation fees or non-refundable nights charged. Value + // is in millionths of the base unit currency. For example, $12.35 would be + // represented as 12350000. Currency unit is in the default customer currency. + int64 reconciled_value_micros = 8 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Whether a given booking has been billed. Once billed, a booking can't be + // modified. + bool billed = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Output only. Current status of a booking with regards to 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.v11.enums.HotelReconciliationStatusEnum.HotelReconciliationStatus status = 10 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} diff --git a/google/ads/googleads/v11/resources/income_range_view.proto b/google/ads/googleads/v11/resources/income_range_view.proto new file mode 100644 index 000000000..361d2b26f --- /dev/null +++ b/google/ads/googleads/v11/resources/income_range_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "IncomeRangeViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the income range view resource. + +// An income range view. +message IncomeRangeView { + option (google.api.resource) = { + type: "googleads.googleapis.com/IncomeRangeView" + pattern: "customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the income range view. + // Income range view resource names have the form: + // + // `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/IncomeRangeView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/invoice.proto b/google/ads/googleads/v11/resources/invoice.proto new file mode 100644 index 000000000..ecdfa7eea --- /dev/null +++ b/google/ads/googleads/v11/resources/invoice.proto @@ -0,0 +1,202 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/dates.proto"; +import "google/ads/googleads/v11/enums/invoice_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "InvoiceProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Invoice resource. + +// An invoice. All invoice information is snapshotted to match the PDF invoice. +// For invoices older than the launch of InvoiceService, the snapshotted +// information may not match the PDF invoice. +message Invoice { + option (google.api.resource) = { + type: "googleads.googleapis.com/Invoice" + pattern: "customers/{customer_id}/invoices/{invoice_id}" + }; + + // Represents a summarized account budget billable cost. + message AccountBudgetSummary { + // Output only. The resource name of the customer associated with this account budget. + // This contains the customer ID, which appears on the invoice PDF as + // "Account ID". + // Customer resource names have the form: + // + // `customers/{customer_id}` + optional string customer = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The descriptive name of the account budget's customer. It appears on the + // invoice PDF as "Account". + optional string customer_descriptive_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the account budget associated with this summarized + // billable cost. + // AccountBudget resource names have the form: + // + // `customers/{customer_id}/accountBudgets/{account_budget_id}` + optional string account_budget = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the account budget. It appears on the invoice PDF as "Account + // budget". + optional string account_budget_name = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The purchase order number of the account budget. It appears on the + // invoice PDF as "Purchase order". + optional string purchase_order_number = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pretax subtotal amount attributable to this budget during the service + // period, in micros. + optional int64 subtotal_amount_micros = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The tax amount attributable to this budget during the service period, in + // micros. + optional int64 tax_amount_micros = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total amount attributable to this budget during the service period, + // in micros. This equals the sum of the account budget subtotal amount and + // the account budget tax amount. + optional int64 total_amount_micros = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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.v11.common.DateRange billable_activity_date_range = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the invoice. Multiple customers can share a given + // invoice, so multiple resource names may point to the same invoice. + // Invoice resource names have the form: + // + // `customers/{customer_id}/invoices/{invoice_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Invoice" + } + ]; + + // Output only. The ID of the invoice. It appears on the invoice PDF as "Invoice number". + optional string id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of invoice. + google.ads.googleads.v11.enums.InvoiceTypeEnum.InvoiceType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of this invoice's billing setup. + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + optional string billing_setup = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A 16 digit ID used to identify the payments account associated with the + // billing setup, for example, "1234-5678-9012-3456". It appears on the + // invoice PDF as "Billing Account Number". + optional string payments_account_id = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A 12 digit ID used to identify the payments profile associated with the + // billing setup, for example, "1234-5678-9012". It appears on the invoice PDF + // as "Billing ID". + optional string payments_profile_id = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The issue date in yyyy-mm-dd format. It appears on the invoice PDF as + // either "Issue date" or "Invoice date". + optional string issue_date = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The due date in yyyy-mm-dd format. + optional string due_date = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The service period date range of this invoice. The end date is inclusive. + google.ads.googleads.v11.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 subset of the + // currency codes derived from the ISO 4217 standard is supported. + optional string currency_code = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pretax subtotal amount of invoice level adjustments, in micros. + int64 adjustments_subtotal_amount_micros = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The sum of taxes on the invoice level adjustments, in micros. + int64 adjustments_tax_amount_micros = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total amount of invoice level adjustments, in micros. + int64 adjustments_total_amount_micros = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pretax subtotal amount of invoice level regulatory costs, in micros. + int64 regulatory_costs_subtotal_amount_micros = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The sum of taxes on the invoice level regulatory costs, in micros. + int64 regulatory_costs_tax_amount_micros = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total amount of invoice level regulatory costs, in micros. + int64 regulatory_costs_total_amount_micros = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pretax subtotal amount, in micros. This equals the + // sum of the AccountBudgetSummary subtotal amounts, + // Invoice.adjustments_subtotal_amount_micros, and + // Invoice.regulatory_costs_subtotal_amount_micros. + // Starting with v6, the Invoice.regulatory_costs_subtotal_amount_micros is no + // longer included. + optional int64 subtotal_amount_micros = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The sum of all taxes on the invoice, in micros. This equals the sum of the + // AccountBudgetSummary tax amounts, plus taxes not associated with a specific + // account budget. + optional int64 tax_amount_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total amount, in micros. This equals the sum of + // Invoice.subtotal_amount_micros and Invoice.tax_amount_micros. + // Starting with v6, Invoice.regulatory_costs_subtotal_amount_micros is + // also added as it is no longer already included in + // Invoice.tax_amount_micros. + optional int64 total_amount_micros = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the original invoice corrected, wrote off, or canceled + // by this invoice, if applicable. If `corrected_invoice` is set, + // `replaced_invoices` will not be set. + // Invoice resource names have the form: + // + // `customers/{customer_id}/invoices/{invoice_id}` + optional string corrected_invoice = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the original invoice(s) being rebilled or replaced by + // this invoice, if applicable. There might be multiple replaced invoices due + // to invoice consolidation. The replaced invoices may not belong to the same + // payments account. If `replaced_invoices` is set, `corrected_invoice` will + // not be set. + // Invoice resource names have the form: + // + // `customers/{customer_id}/invoices/{invoice_id}` + repeated string replaced_invoices = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL to a PDF copy of the invoice. Users need to pass in their OAuth + // token to request the PDF with this URL. + optional string pdf_url = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of summarized account budget information associated with this + // invoice. + repeated AccountBudgetSummary account_budget_summaries = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/keyword_plan.proto b/google/ads/googleads/v11/resources/keyword_plan.proto new file mode 100644 index 000000000..092f643d5 --- /dev/null +++ b/google/ads/googleads/v11/resources/keyword_plan.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/dates.proto"; +import "google/ads/googleads/v11/enums/keyword_plan_forecast_interval.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the keyword plan resource. + +// A Keyword Planner plan. +// Max number of saved keyword plans: 10000. +// It's possible to remove plans if limit is reached. +message KeywordPlan { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlan" + pattern: "customers/{customer_id}/keywordPlans/{keyword_plan_id}" + }; + + // Immutable. The resource name of the Keyword Planner plan. + // KeywordPlan resource names have the form: + // + // `customers/{customer_id}/keywordPlans/{kp_plan_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; + + // Output only. The ID of the keyword plan. + optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the keyword plan. + // + // This field is required and should not be empty when creating new keyword + // plans. + optional string name = 6; + + // The date period used for forecasting the plan. + KeywordPlanForecastPeriod forecast_period = 4; +} + +// The forecasting period associated with the keyword plan. +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.v11.enums.KeywordPlanForecastIntervalEnum.KeywordPlanForecastInterval date_interval = 1; + + // The custom date range used for forecasting. It cannot be greater than + // a year. + // 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.v11.common.DateRange date_range = 2; + } +} diff --git a/google/ads/googleads/v11/resources/keyword_plan_ad_group.proto b/google/ads/googleads/v11/resources/keyword_plan_ad_group.proto new file mode 100644 index 000000000..410eebc0e --- /dev/null +++ b/google/ads/googleads/v11/resources/keyword_plan_ad_group.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the keyword plan ad group resource. + +// A Keyword Planner ad group. +// Max number of keyword plan ad groups per plan: 200. +message KeywordPlanAdGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + pattern: "customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}" + }; + + // Immutable. The resource name of the Keyword Planner ad group. + // KeywordPlanAdGroup resource names have the form: + // + // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + } + ]; + + // The keyword plan campaign to which this ad group belongs. + optional string keyword_plan_campaign = 6 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + }]; + + // Output only. The ID of the keyword plan ad group. + optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the keyword plan ad group. + // + // This field is required and should not be empty when creating keyword plan + // ad group. + optional string name = 8; + + // A default ad group max cpc bid in micros in account currency for all + // biddable keywords under the keyword plan ad group. + // If not set, will inherit from parent campaign. + optional int64 cpc_bid_micros = 9; +} diff --git a/google/ads/googleads/v11/resources/keyword_plan_ad_group_keyword.proto b/google/ads/googleads/v11/resources/keyword_plan_ad_group_keyword.proto new file mode 100644 index 000000000..ed870e967 --- /dev/null +++ b/google/ads/googleads/v11/resources/keyword_plan_ad_group_keyword.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/keyword_match_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupKeywordProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the keyword plan ad group keyword resource. + +// A Keyword Plan ad group keyword. +// Max number of keyword plan keywords per plan: 10000. +message KeywordPlanAdGroupKeyword { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" + pattern: "customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}" + }; + + // Immutable. The resource name of the Keyword Plan ad group keyword. + // KeywordPlanAdGroupKeyword resource names have the form: + // + // `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" + } + ]; + + // The Keyword Plan ad group to which this keyword belongs. + optional string keyword_plan_ad_group = 8 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + }]; + + // Output only. The ID of the Keyword Plan keyword. + optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The keyword text. + optional string text = 10; + + // The keyword match type. + google.ads.googleads.v11.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; + + // A keyword level max cpc bid in micros (for example, $1 = 1mm). The currency + // is the same as the account currency code. This will override any CPC bid + // set at the keyword plan ad group level. Not applicable for negative + // keywords. (negative = true) This field is Optional. + optional int64 cpc_bid_micros = 11; + + // Immutable. If true, the keyword is negative. + optional bool negative = 12 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v11/resources/keyword_plan_campaign.proto b/google/ads/googleads/v11/resources/keyword_plan_campaign.proto new file mode 100644 index 000000000..26d3c7e63 --- /dev/null +++ b/google/ads/googleads/v11/resources/keyword_plan_campaign.proto @@ -0,0 +1,97 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/keyword_plan_network.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the keyword plan campaign resource. + +// A Keyword Plan campaign. +// Max number of keyword plan campaigns per plan allowed: 1. +message KeywordPlanCampaign { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + pattern: "customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}" + }; + + // Immutable. The resource name of the Keyword Plan campaign. + // KeywordPlanCampaign resource names have the form: + // + // `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + } + ]; + + // The keyword plan this campaign belongs to. + optional string keyword_plan = 9 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + }]; + + // Output only. The ID of the Keyword Plan campaign. + optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the Keyword Plan campaign. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + optional string name = 11; + + // The languages targeted for the Keyword Plan campaign. + // Max allowed: 1. + repeated string language_constants = 12 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/LanguageConstant" + }]; + + // Targeting network. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + google.ads.googleads.v11.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 6; + + // A default max cpc bid in micros, and in the account currency, for all ad + // groups under the campaign. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + optional int64 cpc_bid_micros = 13; + + // The geo targets. + // Max number allowed: 20. + repeated KeywordPlanGeoTarget geo_targets = 8; +} + +// A geo target. +message KeywordPlanGeoTarget { + // Required. The resource name of the geo target. + optional string geo_target_constant = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/GeoTargetConstant" + }]; +} diff --git a/google/ads/googleads/v11/resources/keyword_plan_campaign_keyword.proto b/google/ads/googleads/v11/resources/keyword_plan_campaign_keyword.proto new file mode 100644 index 000000000..c75587a68 --- /dev/null +++ b/google/ads/googleads/v11/resources/keyword_plan_campaign_keyword.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/keyword_match_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignKeywordProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the keyword plan negative keyword resource. + +// A Keyword Plan Campaign keyword. +// Only negative keywords are supported for Campaign Keyword. +message KeywordPlanCampaignKeyword { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" + pattern: "customers/{customer_id}/keywordPlanCampaignKeywords/{keyword_plan_campaign_keyword_id}" + }; + + // Immutable. The resource name of the Keyword Plan Campaign keyword. + // KeywordPlanCampaignKeyword resource names have the form: + // + // `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" + } + ]; + + // The Keyword Plan campaign to which this negative keyword belongs. + optional string keyword_plan_campaign = 8 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + }]; + + // Output only. The ID of the Keyword Plan negative keyword. + optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The keyword text. + optional string text = 10; + + // The keyword match type. + google.ads.googleads.v11.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; + + // Immutable. If true, the keyword is negative. + // Must be set to true. Only negative campaign keywords are supported. + optional bool negative = 11 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v11/resources/keyword_theme_constant.proto b/google/ads/googleads/v11/resources/keyword_theme_constant.proto new file mode 100644 index 000000000..6f22dd97e --- /dev/null +++ b/google/ads/googleads/v11/resources/keyword_theme_constant.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordThemeConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Smart Campaign keyword theme constant resource. + +// A Smart Campaign keyword theme constant. +message KeywordThemeConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordThemeConstant" + pattern: "keywordThemeConstants/{express_category_id}~{express_sub_category_id}" + }; + + // Output only. The resource name of the keyword theme constant. + // Keyword theme constant resource names have the form: + // + // `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordThemeConstant" + } + ]; + + // Output only. The ISO-3166 Alpha-2 country code of the constant, eg. "US". + // To display and query matching purpose, the keyword theme needs to be + // localized. + optional string country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ISO-639-1 language code with 2 letters of the constant, eg. "en". + // To display and query matching purpose, the keyword theme needs to be + // localized. + optional string language_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name of the keyword theme or sub keyword theme. + optional string display_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/keyword_view.proto b/google/ads/googleads/v11/resources/keyword_view.proto new file mode 100644 index 000000000..9d2a9c74d --- /dev/null +++ b/google/ads/googleads/v11/resources/keyword_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "KeywordViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the keyword view resource. + +// A keyword view. +message KeywordView { + option (google.api.resource) = { + type: "googleads.googleapis.com/KeywordView" + pattern: "customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the keyword view. + // Keyword view resource names have the form: + // + // `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/label.proto b/google/ads/googleads/v11/resources/label.proto new file mode 100644 index 000000000..79f3f59fc --- /dev/null +++ b/google/ads/googleads/v11/resources/label.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/text_label.proto"; +import "google/ads/googleads/v11/enums/label_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LabelProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// A label. +message Label { + option (google.api.resource) = { + type: "googleads.googleapis.com/Label" + pattern: "customers/{customer_id}/labels/{label_id}" + }; + + // Immutable. Name of the resource. + // Label resource names have the form: + // `customers/{customer_id}/labels/{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + } + ]; + + // Output only. ID of the label. Read only. + optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the label. + // + // This field is required and should not be empty when creating a new label. + // + // The length of this string should be between 1 and 80, inclusive. + optional string name = 7; + + // Output only. Status of the label. Read only. + google.ads.googleads.v11.enums.LabelStatusEnum.LabelStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A type of label displaying text on a colored background. + google.ads.googleads.v11.common.TextLabel text_label = 5; +} diff --git a/google/ads/googleads/v11/resources/landing_page_view.proto b/google/ads/googleads/v11/resources/landing_page_view.proto new file mode 100644 index 000000000..606461fda --- /dev/null +++ b/google/ads/googleads/v11/resources/landing_page_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LandingPageViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the landing page view resource. + +// A landing page view with metrics aggregated at the unexpanded final URL +// level. +message LandingPageView { + option (google.api.resource) = { + type: "googleads.googleapis.com/LandingPageView" + pattern: "customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}" + }; + + // Output only. The resource name of the landing page view. + // Landing page view resource names have the form: + // + // `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LandingPageView" + } + ]; + + // Output only. The advertiser-specified final URL. + optional string unexpanded_final_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/language_constant.proto b/google/ads/googleads/v11/resources/language_constant.proto new file mode 100644 index 000000000..6c523e0ab --- /dev/null +++ b/google/ads/googleads/v11/resources/language_constant.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LanguageConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the language constant resource. + +// A language. +message LanguageConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/LanguageConstant" + pattern: "languageConstants/{criterion_id}" + }; + + // Output only. The resource name of the language constant. + // Language constant resource names have the form: + // + // `languageConstants/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LanguageConstant" + } + ]; + + // Output only. The ID of the language constant. + optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The language code, for example, "en_US", "en_AU", "es", "fr", etc. + optional string code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The full name of the language in English, for example, "English (US)", + // "Spanish", etc. + optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the language is targetable. + optional bool targetable = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/lead_form_submission_data.proto b/google/ads/googleads/v11/resources/lead_form_submission_data.proto new file mode 100644 index 000000000..0e6e43237 --- /dev/null +++ b/google/ads/googleads/v11/resources/lead_form_submission_data.proto @@ -0,0 +1,105 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/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.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LeadFormSubmissionDataProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the lead form submission data resource. + +// Data from lead form submissions. +message LeadFormSubmissionData { + option (google.api.resource) = { + type: "googleads.googleapis.com/LeadFormSubmissionData" + pattern: "customers/{customer_id}/leadFormSubmissionData/{lead_form_user_submission_id}" + }; + + // Output only. The resource name of the lead form submission data. + // Lead form submission data resource names have the form: + // + // `customers/{customer_id}/leadFormSubmissionData/{lead_form_submission_data_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LeadFormSubmissionData" + } + ]; + + // Output only. ID of this lead form submission. + string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Asset associated with the submitted lead form. + string asset = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + } + ]; + + // Output only. Campaign associated with the submitted lead form. + string campaign = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. Submission data associated with a lead form. + repeated LeadFormSubmissionField lead_form_submission_fields = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. AdGroup associated with the submitted lead form. + string ad_group = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. AdGroupAd associated with the submitted lead form. + string ad_group_ad = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Output only. Google Click Id associated with the submissed lead form. + string gclid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date and time at which the lead form was submitted. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + string submission_date_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Fields in the submitted lead form. +message LeadFormSubmissionField { + // Output only. Field type for lead form fields. + google.ads.googleads.v11.enums.LeadFormFieldUserInputTypeEnum.LeadFormFieldUserInputType field_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Field value for lead form fields. + string field_value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/life_event.proto b/google/ads/googleads/v11/resources/life_event.proto new file mode 100644 index 000000000..5b1a94228 --- /dev/null +++ b/google/ads/googleads/v11/resources/life_event.proto @@ -0,0 +1,72 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criterion_category_availability.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LifeEventProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Life Event resource. + +// A life event: a particular interest-based vertical to be targeted to reach +// users when they are in the midst of important life milestones. +message LifeEvent { + option (google.api.resource) = { + type: "googleads.googleapis.com/LifeEvent" + pattern: "customers/{customer_id}/lifeEvents/{life_event_id}" + }; + + // Output only. The resource name of the life event. + // Life event resource names have the form: + // + // `customers/{customer_id}/lifeEvents/{life_event_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LifeEvent" + } + ]; + + // Output only. The ID of the life event. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the life event, for example,"Recently Moved" + string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The parent of the life_event. + string parent = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LifeEvent" + } + ]; + + // Output only. True if the life event is launched to all channels and locales. + bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Availability information of the life event. + repeated google.ads.googleads.v11.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/location_view.proto b/google/ads/googleads/v11/resources/location_view.proto new file mode 100644 index 000000000..e1d7997af --- /dev/null +++ b/google/ads/googleads/v11/resources/location_view.proto @@ -0,0 +1,51 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LocationViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the location view resource. + +// A location view summarizes the performance of campaigns by +// Location criteria. +message LocationView { + option (google.api.resource) = { + type: "googleads.googleapis.com/LocationView" + pattern: "customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}" + }; + + // Output only. The resource name of the location view. + // Location view resource names have the form: + // + // `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocationView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/managed_placement_view.proto b/google/ads/googleads/v11/resources/managed_placement_view.proto new file mode 100644 index 000000000..5dbb0acc1 --- /dev/null +++ b/google/ads/googleads/v11/resources/managed_placement_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ManagedPlacementViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Managed Placement view resource. + +// A managed placement view. +message ManagedPlacementView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ManagedPlacementView" + pattern: "customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the Managed Placement view. + // Managed placement view resource names have the form: + // + // `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ManagedPlacementView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/media_file.proto b/google/ads/googleads/v11/resources/media_file.proto new file mode 100644 index 000000000..d67945a36 --- /dev/null +++ b/google/ads/googleads/v11/resources/media_file.proto @@ -0,0 +1,136 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/media_type.proto"; +import "google/ads/googleads/v11/enums/mime_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "MediaFileProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the media file resource. + +// A media file. +message MediaFile { + option (google.api.resource) = { + type: "googleads.googleapis.com/MediaFile" + pattern: "customers/{customer_id}/mediaFiles/{media_file_id}" + }; + + // Immutable. The resource name of the media file. + // Media file resource names have the form: + // + // `customers/{customer_id}/mediaFiles/{media_file_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/MediaFile" + } + ]; + + // Output only. The ID of the media file. + optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Type of the media file. + google.ads.googleads.v11.enums.MediaTypeEnum.MediaType type = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The mime type of the media file. + google.ads.googleads.v11.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 a file + // name). Only used for media of type AUDIO and IMAGE. + optional string source_url = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The name of the media file. The name can be used by clients to help + // identify previously uploaded media. + optional string name = 14 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The size of the media file in bytes. + optional int64 file_size = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The specific type of the media file. + oneof mediatype { + // Immutable. Encapsulates an Image. + MediaImage image = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. A ZIP archive media the content of which contains HTML5 assets. + MediaBundle media_bundle = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Encapsulates an Audio. + MediaAudio audio = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Encapsulates a Video. + MediaVideo video = 11 [(google.api.field_behavior) = IMMUTABLE]; + } +} + +// Encapsulates an Image. +message MediaImage { + // Immutable. Raw image data. + optional bytes data = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The url to the full size version of the image. + optional string full_size_image_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The url to the preview size version of the image. + optional string preview_size_image_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents a ZIP archive media the content of which contains HTML5 assets. +message MediaBundle { + // Immutable. Raw zipped data. + optional bytes data = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The url to access the uploaded zipped data. + // For example, https://tpc.googlesyndication.com/simgad/123 + // This field is read-only. + optional string url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Encapsulates an Audio. +message MediaAudio { + // Output only. The duration of the Audio in milliseconds. + optional int64 ad_duration_millis = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Encapsulates a Video. +message MediaVideo { + // Output only. The duration of the Video in milliseconds. + optional int64 ad_duration_millis = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The YouTube video ID (as seen in YouTube URLs). Adding prefix + // "https://www.youtube.com/watch?v=" to this ID will get the YouTube + // streaming URL for this video. + optional string youtube_video_id = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The Advertising Digital Identification code for this video, as defined by + // the American Association of Advertising Agencies, used mainly for + // television commercials. + optional string advertising_id_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Industry Standard Commercial Identifier code for this video, used + // mainly for television commercials. + optional string isci_code = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/merchant_center_link.proto b/google/ads/googleads/v11/resources/merchant_center_link.proto new file mode 100644 index 000000000..c4d2ba638 --- /dev/null +++ b/google/ads/googleads/v11/resources/merchant_center_link.proto @@ -0,0 +1,63 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/merchant_center_link_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "MerchantCenterLinkProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::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.v11.enums.MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus status = 5; +} diff --git a/google/ads/googleads/v11/resources/mobile_app_category_constant.proto b/google/ads/googleads/v11/resources/mobile_app_category_constant.proto new file mode 100644 index 000000000..de9dfc71d --- /dev/null +++ b/google/ads/googleads/v11/resources/mobile_app_category_constant.proto @@ -0,0 +1,56 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "MobileAppCategoryConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Mobile App Category Constant resource. + +// A mobile application category constant. +message MobileAppCategoryConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/MobileAppCategoryConstant" + pattern: "mobileAppCategoryConstants/{mobile_app_category_id}" + }; + + // Output only. The resource name of the mobile app category constant. + // Mobile app category constant resource names have the form: + // + // `mobileAppCategoryConstants/{mobile_app_category_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/MobileAppCategoryConstant" + } + ]; + + // Output only. The ID of the mobile app category constant. + optional int32 id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mobile app category name. + optional string name = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/mobile_device_constant.proto b/google/ads/googleads/v11/resources/mobile_device_constant.proto new file mode 100644 index 000000000..e4b31c205 --- /dev/null +++ b/google/ads/googleads/v11/resources/mobile_device_constant.proto @@ -0,0 +1,66 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/mobile_device_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "MobileDeviceConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the mobile device constant resource. + +// A mobile device constant. +message MobileDeviceConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/MobileDeviceConstant" + pattern: "mobileDeviceConstants/{criterion_id}" + }; + + // Output only. The resource name of the mobile device constant. + // Mobile device constant resource names have the form: + // + // `mobileDeviceConstants/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/MobileDeviceConstant" + } + ]; + + // Output only. The ID of the mobile device constant. + optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the mobile device. + optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The manufacturer of the mobile device. + optional string manufacturer_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The operating system of the mobile device. + optional string operating_system_name = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of mobile device. + google.ads.googleads.v11.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/offline_user_data_job.proto b/google/ads/googleads/v11/resources/offline_user_data_job.proto new file mode 100644 index 000000000..5be69552f --- /dev/null +++ b/google/ads/googleads/v11/resources/offline_user_data_job.proto @@ -0,0 +1,94 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/offline_user_data.proto"; +import "google/ads/googleads/v11/enums/offline_user_data_job_failure_reason.proto"; +import "google/ads/googleads/v11/enums/offline_user_data_job_match_rate_range.proto"; +import "google/ads/googleads/v11/enums/offline_user_data_job_status.proto"; +import "google/ads/googleads/v11/enums/offline_user_data_job_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the offline user data job resource. + +// A job containing offline user data of store visitors, or user list members +// that will be processed asynchronously. The uploaded data isn't readable and +// the processing results of the job can only be read using +// GoogleAdsService.Search/SearchStream. +message OfflineUserDataJob { + option (google.api.resource) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + pattern: "customers/{customer_id}/offlineUserDataJobs/{offline_user_data_update_id}" + }; + + // Immutable. The resource name of the offline user data job. + // Offline user data job resource names have the form: + // + // `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + } + ]; + + // Output only. ID of this offline user data job. + optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. User specified job ID. + optional int64 external_id = 10 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Type of the job. + google.ads.googleads.v11.enums.OfflineUserDataJobTypeEnum.OfflineUserDataJobType type = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Status of the job. + google.ads.googleads.v11.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.v11.enums.OfflineUserDataJobFailureReasonEnum.OfflineUserDataJobFailureReason failure_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata of offline user data job depicting match rate range. + OfflineUserDataJobMetadata operation_metadata = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Metadata of the job. + oneof metadata { + // Immutable. Metadata for data updates to a CRM-based user list. + google.ads.googleads.v11.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Metadata for store sales data update. + google.ads.googleads.v11.common.StoreSalesMetadata store_sales_metadata = 8 [(google.api.field_behavior) = IMMUTABLE]; + } +} + +// Metadata of offline user data job. +message OfflineUserDataJobMetadata { + // Output only. Match rate of the Customer Match user list upload. Describes 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.v11.enums.OfflineUserDataJobMatchRateRangeEnum.OfflineUserDataJobMatchRateRange match_rate_range = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/operating_system_version_constant.proto b/google/ads/googleads/v11/resources/operating_system_version_constant.proto new file mode 100644 index 000000000..afb8a000b --- /dev/null +++ b/google/ads/googleads/v11/resources/operating_system_version_constant.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/operating_system_version_operator_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "OperatingSystemVersionConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the operating system version constant resource. + +// A mobile operating system version or a range of versions, depending on +// `operator_type`. List of available mobile platforms at +// https://developers.google.com/google-ads/api/reference/data/codes-formats#mobile-platforms +message OperatingSystemVersionConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/OperatingSystemVersionConstant" + pattern: "operatingSystemVersionConstants/{criterion_id}" + }; + + // Output only. The resource name of the operating system version constant. + // Operating system version constant resource names have the form: + // + // `operatingSystemVersionConstants/{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OperatingSystemVersionConstant" + } + ]; + + // Output only. The ID of the operating system version. + optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the operating system. + optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The OS Major Version number. + optional int32 os_major_version = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The OS Minor Version number. + optional int32 os_minor_version = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Determines whether this constant represents a single version or a range of + // versions. + google.ads.googleads.v11.enums.OperatingSystemVersionOperatorTypeEnum.OperatingSystemVersionOperatorType operator_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/paid_organic_search_term_view.proto b/google/ads/googleads/v11/resources/paid_organic_search_term_view.proto new file mode 100644 index 000000000..481023232 --- /dev/null +++ b/google/ads/googleads/v11/resources/paid_organic_search_term_view.proto @@ -0,0 +1,55 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "PaidOrganicSearchTermViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the PaidOrganicSearchTermView resource. + +// A paid organic search term view providing a view of search stats across +// ads and organic listings aggregated by search term at the ad group level. +message PaidOrganicSearchTermView { + option (google.api.resource) = { + type: "googleads.googleapis.com/PaidOrganicSearchTermView" + pattern: "customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~{ad_group_id}~{base64_search_term}" + }; + + // Output only. The resource name of the search term view. + // Search term view resource names have the form: + // + // `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~ + // {ad_group_id}~{URL-base64 search term}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/PaidOrganicSearchTermView" + } + ]; + + // Output only. The search term. + optional string search_term = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/parental_status_view.proto b/google/ads/googleads/v11/resources/parental_status_view.proto new file mode 100644 index 000000000..6e675b608 --- /dev/null +++ b/google/ads/googleads/v11/resources/parental_status_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ParentalStatusViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the parental status view resource. + +// A parental status view. +message ParentalStatusView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ParentalStatusView" + pattern: "customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the parental status view. + // Parental Status view resource names have the form: + // + // `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ParentalStatusView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/payments_account.proto b/google/ads/googleads/v11/resources/payments_account.proto new file mode 100644 index 000000000..0b3fe6404 --- /dev/null +++ b/google/ads/googleads/v11/resources/payments_account.proto @@ -0,0 +1,77 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "PaymentsAccountProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the PaymentsAccount resource. + +// A payments account, which can be used to set up billing for an Ads customer. +message PaymentsAccount { + option (google.api.resource) = { + type: "googleads.googleapis.com/PaymentsAccount" + pattern: "customers/{customer_id}/paymentsAccounts/{payments_account_id}" + }; + + // Output only. The resource name of the payments account. + // PaymentsAccount resource names have the form: + // + // `customers/{customer_id}/paymentsAccounts/{payments_account_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/PaymentsAccount" + } + ]; + + // Output only. A 16 digit ID used to identify a payments account. + optional string payments_account_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the payments account. + optional string name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The currency code of the payments account. + // A subset of the currency codes derived from the ISO 4217 standard is + // supported. + optional string currency_code = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A 12 digit ID used to identify the payments profile associated with the + // payments account. + optional string payments_profile_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A secondary payments profile ID present in uncommon situations, for + // example, when a sequential liability agreement has been arranged. + optional string secondary_payments_profile_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Paying manager of this payment account. + optional string paying_manager_customer = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/product_bidding_category_constant.proto b/google/ads/googleads/v11/resources/product_bidding_category_constant.proto new file mode 100644 index 000000000..3e9463aa1 --- /dev/null +++ b/google/ads/googleads/v11/resources/product_bidding_category_constant.proto @@ -0,0 +1,82 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/product_bidding_category_level.proto"; +import "google/ads/googleads/v11/enums/product_bidding_category_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ProductBiddingCategoryConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::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.v11.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of the product bidding category. + google.ads.googleads.v11.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/google/ads/googleads/v11/resources/product_group_view.proto b/google/ads/googleads/v11/resources/product_group_view.proto new file mode 100644 index 000000000..d5243f299 --- /dev/null +++ b/google/ads/googleads/v11/resources/product_group_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ProductGroupViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ProductGroup View resource. + +// A product group view. +message ProductGroupView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ProductGroupView" + pattern: "customers/{customer_id}/productGroupViews/{adgroup_id}~{criterion_id}" + }; + + // Output only. The resource name of the product group view. + // Product group view resource names have the form: + // + // `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductGroupView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/recommendation.proto b/google/ads/googleads/v11/resources/recommendation.proto new file mode 100644 index 000000000..9fc222673 --- /dev/null +++ b/google/ads/googleads/v11/resources/recommendation.proto @@ -0,0 +1,434 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/common/extensions.proto"; +import "google/ads/googleads/v11/enums/keyword_match_type.proto"; +import "google/ads/googleads/v11/enums/recommendation_type.proto"; +import "google/ads/googleads/v11/enums/target_cpa_opt_in_recommendation_goal.proto"; +import "google/ads/googleads/v11/resources/ad.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Recommendation resource. + +// A recommendation. +message Recommendation { + option (google.api.resource) = { + type: "googleads.googleapis.com/Recommendation" + pattern: "customers/{customer_id}/recommendations/{recommendation_id}" + }; + + // The impact of making the change as described in the recommendation. + // Some types of recommendations may not have impact information. + message RecommendationImpact { + // Output only. Base metrics at the time the recommendation was generated. + RecommendationMetrics base_metrics = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimated metrics if the recommendation is applied. + RecommendationMetrics potential_metrics = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Weekly account performance metrics. For some recommendation types, these + // are averaged over the past 90-day period and hence can be fractional. + message RecommendationMetrics { + // Output only. Number of ad impressions. + optional double impressions = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of ad clicks. + optional double clicks = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cost (in micros) for advertising, in the local currency for the account. + optional int64 cost_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of conversions. + optional double conversions = 9 [(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]; + } + + // The budget recommendation for budget constrained campaigns. + message CampaignBudgetRecommendation { + // The impact estimates for a given budget amount. + message CampaignBudgetRecommendationOption { + // Output only. The budget amount for this option. + optional int64 budget_amount_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The impact estimate if budget is changed to amount specified in this + // option. + RecommendationImpact impact = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The current budget amount in micros. + optional int64 current_budget_amount_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended budget amount in micros. + optional int64 recommended_budget_amount_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The budget amounts and associated impact estimates for some values of + // possible budget amounts. + repeated CampaignBudgetRecommendationOption budget_options = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The keyword recommendation. + message KeywordRecommendation { + // Output only. The recommended keyword. + google.ads.googleads.v11.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended CPC (cost-per-click) bid. + optional int64 recommended_cpc_bid_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The text ad recommendation. + message TextAdRecommendation { + // Output only. Recommended ad. + Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Creation date of the recommended ad. + // YYYY-MM-DD format, for example, 2018-04-17. + optional string creation_date = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Date, if present, is the earliest when the recommendation will be auto + // applied. + // YYYY-MM-DD format, for example, 2018-04-17. + optional string auto_apply_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Target CPA opt-in recommendation. + message TargetCpaOptInRecommendation { + // The Target CPA opt-in option with impact estimate. + message TargetCpaOptInRecommendationOption { + // Output only. The goal achieved by this option. + google.ads.googleads.v11.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal goal = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Average CPA target. + optional int64 target_cpa_micros = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The minimum campaign budget, in local currency for the account, + // required to achieve the target CPA. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + optional int64 required_campaign_budget_amount_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The impact estimate if this option is selected. + RecommendationImpact impact = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The available goals and corresponding options for Target CPA strategy. + repeated TargetCpaOptInRecommendationOption options = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended average CPA target. See required budget amount and impact + // of using this recommendation in options list. + optional int64 recommended_target_cpa_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Maximize Conversions Opt-In recommendation. + message MaximizeConversionsOptInRecommendation { + // Output only. The recommended new budget amount. + optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Enhanced Cost-Per-Click Opt-In recommendation. + message EnhancedCpcOptInRecommendation { + + } + + // The Search Partners Opt-In recommendation. + message SearchPartnersOptInRecommendation { + + } + + // The Maximize Clicks opt-in recommendation. + message MaximizeClicksOptInRecommendation { + // Output only. The recommended new budget amount. + // Only set if the current budget is too high. + optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Optimize Ad Rotation recommendation. + message OptimizeAdRotationRecommendation { + + } + + // The Callout extension recommendation. + message CalloutExtensionRecommendation { + // Output only. Callout extensions recommended to be added. + repeated google.ads.googleads.v11.common.CalloutFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Sitelink extension recommendation. + message SitelinkExtensionRecommendation { + // Output only. Sitelink extensions recommended to be added. + repeated google.ads.googleads.v11.common.SitelinkFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Call extension recommendation. + message CallExtensionRecommendation { + // Output only. Call extensions recommended to be added. + repeated google.ads.googleads.v11.common.CallFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The keyword match type recommendation. + message KeywordMatchTypeRecommendation { + // Output only. The existing keyword where the match type should be more broad. + google.ads.googleads.v11.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended new match type. + google.ads.googleads.v11.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The move unused budget recommendation. + message MoveUnusedBudgetRecommendation { + // Output only. The excess budget's resource_name. + optional string excess_campaign_budget = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommendation for the constrained budget to increase. + CampaignBudgetRecommendation budget_recommendation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Target ROAS opt-in recommendation. + message TargetRoasOptInRecommendation { + // Output only. The recommended target ROAS (revenue per unit of spend). + // The value is between 0.01 and 1000.0, inclusive. + optional double recommended_target_roas = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The minimum campaign budget, in local currency for the account, + // required to achieve the target ROAS. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + optional int64 required_campaign_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The add responsive search ad asset recommendation. + message ResponsiveSearchAdAssetRecommendation { + // Output only. The current ad to be updated. + Ad current_ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recommended assets. This is populated only with the new headlines + // and/or descriptions, and is otherwise empty. + Ad recommended_assets = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The responsive search ad improve ad strength recommendation. + message ResponsiveSearchAdImproveAdStrengthRecommendation { + // Output only. The current ad to be updated. + Ad current_ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The updated ad. + Ad recommended_ad = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The add responsive search ad recommendation. + message ResponsiveSearchAdRecommendation { + // Output only. Recommended ad. + Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The use broad match keyword recommendation. + message UseBroadMatchKeywordRecommendation { + // Output only. Sample of keywords to be expanded to Broad Match. + repeated google.ads.googleads.v11.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total number of keywords to be expanded to Broad Match in the campaign. + int64 suggested_keywords_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total number of keywords in the campaign. + int64 campaign_keywords_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the associated campaign uses a shared budget. + bool campaign_uses_shared_budget = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The budget recommended to avoid becoming budget constrained after + // applying the recommendation. + int64 required_campaign_budget_amount_micros = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The upgrade a Smart Shopping campaign to a Performance Max campaign + // recommendation. + message UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation { + // Output only. ID of Merchant Center account. + int64 merchant_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Country whose products from merchant's inventory should be included. + string sales_country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Display Expansion opt-in recommendation. + message DisplayExpansionOptInRecommendation { + + } + + // The Upgrade Local campaign to Performance Max campaign recommendation. + message UpgradeLocalCampaignToPerformanceMaxRecommendation { + + } + + // Immutable. The resource name of the recommendation. + // + // `customers/{customer_id}/recommendations/{recommendation_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Recommendation" + } + ]; + + // Output only. The type of recommendation. + google.ads.googleads.v11.enums.RecommendationTypeEnum.RecommendationType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The impact on account performance as a result of applying the + // recommendation. + RecommendationImpact impact = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The budget targeted by this recommendation. This will be set only when + // the recommendation affects a single campaign budget. + // + // This field will be set for the following recommendation types: + // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET, + // MOVE_UNUSED_BUDGET + optional string campaign_budget = 24 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + } + ]; + + // Output only. The campaign targeted by this recommendation. This will be set only when + // the recommendation affects a single campaign. + // + // This field will be set for the following recommendation types: + // CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN, + // USE_BROAD_MATCH_KEYWORD, KEYWORD, KEYWORD_MATCH_TYPE, + // UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX, MAXIMIZE_CLICKS_OPT_IN, + // MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION, + // RESPONSIVE_SEARCH_AD, + // RESPONSIVE_SEARCH_AD_ASSET, + // SEARCH_PARTNERS_OPT_IN, + // DISPLAY_EXPANSION_OPT_IN, SITELINK_EXTENSION, TARGET_CPA_OPT_IN, + // TARGET_ROAS_OPT_IN, TEXT_AD, + // UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX + optional string campaign = 25 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ad group targeted by this recommendation. This will be set only when + // the recommendation affects a single ad group. + // + // This field will be set for the following recommendation types: + // KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, + // RESPONSIVE_SEARCH_AD_ASSET, TEXT_AD + optional string ad_group = 26 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. Whether the recommendation is dismissed or not. + optional bool dismissed = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The details of recommendation. + oneof recommendation { + // Output only. The campaign budget recommendation. + CampaignBudgetRecommendation campaign_budget_recommendation = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The forecasting campaign budget recommendation. + CampaignBudgetRecommendation forecasting_campaign_budget_recommendation = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The keyword recommendation. + KeywordRecommendation keyword_recommendation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Add expanded text ad recommendation. + TextAdRecommendation text_ad_recommendation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The TargetCPA opt-in recommendation. + TargetCpaOptInRecommendation target_cpa_opt_in_recommendation = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The MaximizeConversions Opt-In recommendation. + MaximizeConversionsOptInRecommendation maximize_conversions_opt_in_recommendation = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Enhanced Cost-Per-Click Opt-In recommendation. + EnhancedCpcOptInRecommendation enhanced_cpc_opt_in_recommendation = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Search Partners Opt-In recommendation. + SearchPartnersOptInRecommendation search_partners_opt_in_recommendation = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The MaximizeClicks Opt-In recommendation. + MaximizeClicksOptInRecommendation maximize_clicks_opt_in_recommendation = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Optimize Ad Rotation recommendation. + OptimizeAdRotationRecommendation optimize_ad_rotation_recommendation = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Callout extension recommendation. + CalloutExtensionRecommendation callout_extension_recommendation = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Sitelink extension recommendation. + SitelinkExtensionRecommendation sitelink_extension_recommendation = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Call extension recommendation. + CallExtensionRecommendation call_extension_recommendation = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The keyword match type recommendation. + KeywordMatchTypeRecommendation keyword_match_type_recommendation = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The move unused budget recommendation. + MoveUnusedBudgetRecommendation move_unused_budget_recommendation = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Target ROAS opt-in recommendation. + TargetRoasOptInRecommendation target_roas_opt_in_recommendation = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The add responsive search ad recommendation. + ResponsiveSearchAdRecommendation responsive_search_ad_recommendation = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The marginal ROI campaign budget recommendation. + CampaignBudgetRecommendation marginal_roi_campaign_budget_recommendation = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The use broad match keyword recommendation. + UseBroadMatchKeywordRecommendation use_broad_match_keyword_recommendation = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The responsive search ad asset recommendation. + ResponsiveSearchAdAssetRecommendation responsive_search_ad_asset_recommendation = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The upgrade a Smart Shopping campaign to a Performance Max campaign + // recommendation. + UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation upgrade_smart_shopping_campaign_to_performance_max_recommendation = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The responsive search ad improve ad strength recommendation. + ResponsiveSearchAdImproveAdStrengthRecommendation responsive_search_ad_improve_ad_strength_recommendation = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Display Expansion opt-in recommendation. + DisplayExpansionOptInRecommendation display_expansion_opt_in_recommendation = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The upgrade a Local campaign to a Performance Max campaign + // recommendation. + UpgradeLocalCampaignToPerformanceMaxRecommendation upgrade_local_campaign_to_performance_max_recommendation = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/google/ads/googleads/v11/resources/remarketing_action.proto b/google/ads/googleads/v11/resources/remarketing_action.proto new file mode 100644 index 000000000..e438219d0 --- /dev/null +++ b/google/ads/googleads/v11/resources/remarketing_action.proto @@ -0,0 +1,65 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/tag_snippet.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "RemarketingActionProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Remarketing Action resource. + +// A remarketing action. A snippet of JavaScript code that will collect the +// product id and the type of page people visited (product page, shopping cart +// page, purchase page, general site visit) on an advertiser's website. +message RemarketingAction { + option (google.api.resource) = { + type: "googleads.googleapis.com/RemarketingAction" + pattern: "customers/{customer_id}/remarketingActions/{remarketing_action_id}" + }; + + // Immutable. The resource name of the remarketing action. + // Remarketing action resource names have the form: + // + // `customers/{customer_id}/remarketingActions/{remarketing_action_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/RemarketingAction" + } + ]; + + // Output only. Id of the remarketing action. + optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the remarketing action. + // + // This field is required and should not be empty when creating new + // remarketing actions. + optional string name = 6; + + // Output only. The snippets used for tracking remarketing actions. + repeated google.ads.googleads.v11.common.TagSnippet tag_snippets = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/search_term_view.proto b/google/ads/googleads/v11/resources/search_term_view.proto new file mode 100644 index 000000000..cbd565315 --- /dev/null +++ b/google/ads/googleads/v11/resources/search_term_view.proto @@ -0,0 +1,67 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/search_term_targeting_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SearchTermViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the SearchTermView resource. + +// A search term view with metrics aggregated by search term at the ad group +// level. +message SearchTermView { + option (google.api.resource) = { + type: "googleads.googleapis.com/SearchTermView" + pattern: "customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{query}" + }; + + // Output only. The resource name of the search term view. + // Search term view resource names have the form: + // + // `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL-base64_search_term}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SearchTermView" + } + ]; + + // Output only. The search term. + optional string search_term = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ad group the search term served in. + optional string ad_group = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; + + // Output only. Indicates whether the search term is currently one of your + // targeted or excluded keywords. + google.ads.googleads.v11.enums.SearchTermTargetingStatusEnum.SearchTermTargetingStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/shared_criterion.proto b/google/ads/googleads/v11/resources/shared_criterion.proto new file mode 100644 index 000000000..3e9f7f8a3 --- /dev/null +++ b/google/ads/googleads/v11/resources/shared_criterion.proto @@ -0,0 +1,91 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/enums/criterion_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SharedCriterionProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the SharedCriterion resource. + +// A criterion belonging to a shared set. +message SharedCriterion { + option (google.api.resource) = { + type: "googleads.googleapis.com/SharedCriterion" + pattern: "customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}" + }; + + // Immutable. The resource name of the shared criterion. + // Shared set resource names have the form: + // + // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedCriterion" + } + ]; + + // Immutable. The shared set to which the shared criterion belongs. + optional string shared_set = 10 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + } + ]; + + // Output only. The ID of the criterion. + // + // This field is ignored for mutates. + optional int64 criterion_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the criterion. + google.ads.googleads.v11.enums.CriterionTypeEnum.CriterionType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The criterion. + // + // Exactly one must be set. + oneof criterion { + // Immutable. Keyword. + google.ads.googleads.v11.common.KeywordInfo keyword = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Video. + google.ads.googleads.v11.common.YouTubeVideoInfo youtube_video = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. YouTube Channel. + google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Placement. + google.ads.googleads.v11.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile App Category. + google.ads.googleads.v11.common.MobileAppCategoryInfo mobile_app_category = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Mobile application. + google.ads.googleads.v11.common.MobileApplicationInfo mobile_application = 9 [(google.api.field_behavior) = IMMUTABLE]; + } +} diff --git a/google/ads/googleads/v11/resources/shared_set.proto b/google/ads/googleads/v11/resources/shared_set.proto new file mode 100644 index 000000000..ca1049273 --- /dev/null +++ b/google/ads/googleads/v11/resources/shared_set.proto @@ -0,0 +1,76 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/enums/shared_set_status.proto"; +import "google/ads/googleads/v11/enums/shared_set_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the SharedSet resource. + +// SharedSets are used for sharing criterion exclusions across multiple +// campaigns. +message SharedSet { + option (google.api.resource) = { + type: "googleads.googleapis.com/SharedSet" + pattern: "customers/{customer_id}/sharedSets/{shared_set_id}" + }; + + // Immutable. The resource name of the shared set. + // Shared set resource names have the form: + // + // `customers/{customer_id}/sharedSets/{shared_set_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + } + ]; + + // Output only. The ID of this shared set. Read only. + optional int64 id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The type of this shared set: each shared set holds only a single kind + // of resource. Required. Immutable. + google.ads.googleads.v11.enums.SharedSetTypeEnum.SharedSetType type = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // The name of this shared set. Required. + // Shared Sets must have names that are unique among active shared sets of + // the same type. + // The length of this string should be between 1 and 255 UTF-8 bytes, + // inclusive. + optional string name = 9; + + // Output only. The status of this shared set. Read only. + google.ads.googleads.v11.enums.SharedSetStatusEnum.SharedSetStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of shared criteria within this shared set. Read only. + optional int64 member_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of campaigns associated with this shared set. Read only. + optional int64 reference_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/shopping_performance_view.proto b/google/ads/googleads/v11/resources/shopping_performance_view.proto new file mode 100644 index 000000000..370c1daf9 --- /dev/null +++ b/google/ads/googleads/v11/resources/shopping_performance_view.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ShoppingPerformanceViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the ShoppingPerformanceView resource. + +// Shopping performance view. +// Provides Shopping campaign statistics aggregated at several product dimension +// levels. Product dimension values from Merchant Center such as brand, +// category, custom attributes, product condition and product type will reflect +// the state of each dimension as of the date and time when the corresponding +// event was recorded. +message ShoppingPerformanceView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ShoppingPerformanceView" + pattern: "customers/{customer_id}/shoppingPerformanceView" + }; + + // Output only. The resource name of the Shopping performance view. + // Shopping performance view resource names have the form: + // `customers/{customer_id}/shoppingPerformanceView` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ShoppingPerformanceView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/smart_campaign_search_term_view.proto b/google/ads/googleads/v11/resources/smart_campaign_search_term_view.proto new file mode 100644 index 000000000..7f06c8fa7 --- /dev/null +++ b/google/ads/googleads/v11/resources/smart_campaign_search_term_view.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SmartCampaignSearchTermViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the SmartCampaignSearchTermView resource. + +// A Smart campaign search term view. +message SmartCampaignSearchTermView { + option (google.api.resource) = { + type: "googleads.googleapis.com/SmartCampaignSearchTermView" + pattern: "customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{query}" + }; + + // Output only. The resource name of the Smart campaign search term view. + // Smart campaign search term view resource names have the form: + // + // `customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{URL-base64_search_term}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SmartCampaignSearchTermView" + } + ]; + + // Output only. The search term. + string search_term = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Smart campaign the search term served in. + string campaign = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/smart_campaign_setting.proto b/google/ads/googleads/v11/resources/smart_campaign_setting.proto new file mode 100644 index 000000000..ac2f08c17 --- /dev/null +++ b/google/ads/googleads/v11/resources/smart_campaign_setting.proto @@ -0,0 +1,110 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "SmartCampaignSettingProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Smart campaign setting resource. + +// Settings for configuring Smart campaigns. +message SmartCampaignSetting { + option (google.api.resource) = { + type: "googleads.googleapis.com/SmartCampaignSetting" + pattern: "customers/{customer_id}/smartCampaignSettings/{campaign_id}" + }; + + // Phone number and country code in smart campaign settings. + message PhoneNumber { + // Phone number of the smart campaign. + optional string phone_number = 1; + + // Upper-case, two-letter country code as defined by ISO-3166. + optional string country_code = 2; + } + + // Settings for configuring a business profile optimized for ads as this + // campaign's landing page. + message AdOptimizedBusinessProfileSetting { + // Enabling a lead form on your business profile enables prospective + // customers to contact your business by filling out a simple form, + // and you'll receive their information through email. + bool include_lead_form = 1; + } + + // Immutable. The resource name of the Smart campaign setting. + // Smart campaign setting resource names have the form: + // + // `customers/{customer_id}/smartCampaignSettings/{campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/SmartCampaignSetting" + } + ]; + + // Output only. The campaign to which these settings apply. + string campaign = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Phone number and country code. + PhoneNumber phone_number = 3; + + // The ISO-639-1 language code to advertise in. + string advertising_language_code = 7; + + // The landing page of this campaign. + oneof landing_page { + // The user-provided landing page URL for this Campaign. + string final_url = 8; + + // Settings for configuring a business profile optimized for ads as this + // campaign's landing page. This campaign must be linked to a business + // profile to use this option. For more information on this feature, + // consult https://support.google.com/google-ads/answer/9827068. + AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9; + } + + // The business setting of this campaign. + oneof business_setting { + // The name of the business. + string business_name = 5; + + // The resource name of a Business Profile location. + // Business Profile location resource names can be fetched through the + // Business Profile API and adhere to the following format: + // `locations/{locationId}`. + // + // See the [Business Profile API] + // (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations) + // for additional details. + string business_profile_location = 10; + } +} diff --git a/google/ads/googleads/v11/resources/third_party_app_analytics_link.proto b/google/ads/googleads/v11/resources/third_party_app_analytics_link.proto new file mode 100644 index 000000000..4fdcbca18 --- /dev/null +++ b/google/ads/googleads/v11/resources/third_party_app_analytics_link.proto @@ -0,0 +1,54 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ThirdPartyAppAnalyticsLinkProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// A data sharing connection, allowing the import of third party app analytics +// into a Google Ads Customer. +message ThirdPartyAppAnalyticsLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" + pattern: "customers/{customer_id}/thirdPartyAppAnalyticsLinks/{customer_link_id}" + }; + + // Immutable. The resource name of the third party app analytics link. + // Third party app analytics link resource names have the form: + // + // `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{account_link_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" + } + ]; + + // Output only. The shareable link ID that should be provided to the third party when + // setting up app analytics. This is able to be regenerated using regenerate + // method in the ThirdPartyAppAnalyticsLinkService. + optional string shareable_link_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/topic_constant.proto b/google/ads/googleads/v11/resources/topic_constant.proto new file mode 100644 index 000000000..16cf9f7da --- /dev/null +++ b/google/ads/googleads/v11/resources/topic_constant.proto @@ -0,0 +1,70 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "TopicConstantProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the Topic Constant resource. + +// Use topics to target or exclude placements in the Google Display Network +// based on the category into which the placement falls (for example, +// "Pets & Animals/Pets/Dogs"). +message TopicConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/TopicConstant" + pattern: "topicConstants/{topic_id}" + }; + + // Output only. The resource name of the topic constant. + // topic constant resource names have the form: + // + // `topicConstants/{topic_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/TopicConstant" + } + ]; + + // Output only. The ID of the topic. + optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Resource name of parent of the topic constant. + optional string topic_constant_parent = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/TopicConstant" + } + ]; + + // Output only. The category to target or exclude. Each subsequent element in the array + // describes a more specific sub-category. For example, + // {"Pets & Animals", "Pets", "Dogs"} represents the + // "Pets & Animals/Pets/Dogs" category. List of available topic categories at + // https://developers.google.com/adwords/api/docs/appendix/verticals + repeated string path = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/topic_view.proto b/google/ads/googleads/v11/resources/topic_view.proto new file mode 100644 index 000000000..d6292d62e --- /dev/null +++ b/google/ads/googleads/v11/resources/topic_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "TopicViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the topic view resource. + +// A topic view. +message TopicView { + option (google.api.resource) = { + type: "googleads.googleapis.com/TopicView" + pattern: "customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the topic view. + // Topic view resource names have the form: + // + // `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/TopicView" + } + ]; +} diff --git a/google/ads/googleads/v11/resources/user_interest.proto b/google/ads/googleads/v11/resources/user_interest.proto new file mode 100644 index 000000000..a9c03f34d --- /dev/null +++ b/google/ads/googleads/v11/resources/user_interest.proto @@ -0,0 +1,75 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/criterion_category_availability.proto"; +import "google/ads/googleads/v11/enums/user_interest_taxonomy_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "UserInterestProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the User Interest resource. + +// A user interest: a particular interest-based vertical to be targeted. +message UserInterest { + option (google.api.resource) = { + type: "googleads.googleapis.com/UserInterest" + pattern: "customers/{customer_id}/userInterests/{user_interest_id}" + }; + + // Output only. The resource name of the user interest. + // User interest resource names have the form: + // + // `customers/{customer_id}/userInterests/{user_interest_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserInterest" + } + ]; + + // Output only. Taxonomy type of the user interest. + google.ads.googleads.v11.enums.UserInterestTaxonomyTypeEnum.UserInterestTaxonomyType taxonomy_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the user interest. + optional int64 user_interest_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the user interest. + optional string name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The parent of the user interest. + optional string user_interest_parent = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserInterest" + } + ]; + + // Output only. True if the user interest is launched to all channels and locales. + optional bool launched_to_all = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Availability information of the user interest. + repeated google.ads.googleads.v11.common.CriterionCategoryAvailability availabilities = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/user_list.proto b/google/ads/googleads/v11/resources/user_list.proto new file mode 100644 index 000000000..e7bf763b7 --- /dev/null +++ b/google/ads/googleads/v11/resources/user_list.proto @@ -0,0 +1,173 @@ +// 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.ads.googleads.v11.resources; + +import "google/ads/googleads/v11/common/user_lists.proto"; +import "google/ads/googleads/v11/enums/access_reason.proto"; +import "google/ads/googleads/v11/enums/user_list_access_status.proto"; +import "google/ads/googleads/v11/enums/user_list_closing_reason.proto"; +import "google/ads/googleads/v11/enums/user_list_membership_status.proto"; +import "google/ads/googleads/v11/enums/user_list_size_range.proto"; +import "google/ads/googleads/v11/enums/user_list_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "UserListProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the User List resource. + +// A user list. This is a list of users a customer may target. +message UserList { + option (google.api.resource) = { + type: "googleads.googleapis.com/UserList" + pattern: "customers/{customer_id}/userLists/{user_list_id}" + }; + + // Immutable. The resource name of the user list. + // User list resource names have the form: + // + // `customers/{customer_id}/userLists/{user_list_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + } + ]; + + // Output only. Id of the user list. + optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An option that indicates if a user may edit a list. Depends on the list + // ownership and list type. For example, external remarketing user lists are + // not editable. + // + // This field is read-only. + optional bool read_only = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of this user list. Depending on its access_reason, the user list name + // may not be unique (for example, if access_reason=SHARED) + optional string name = 27; + + // Description of this user list. + optional string description = 28; + + // 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.v11.enums.UserListMembershipStatusEnum.UserListMembershipStatus membership_status = 6; + + // An ID from external system. It is used by user list sellers to correlate + // IDs on their systems. + optional string integration_code = 29; + + // Number of days a user's cookie stays on your list since its most recent + // addition to the list. This field must be between 0 and 540 inclusive. + // However, for CRM based userlists, this field can be set to 10000 which + // means no expiration. + // + // It'll be ignored for logical_user_list. + optional int64 membership_life_span = 30; + + // Output only. Estimated number of users in this user list, on the Google Display Network. + // This value is null if the number of users has not yet been determined. + // + // This field is read-only. + optional int64 size_for_display = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size range in terms of number of users of the UserList, on the Google + // Display Network. + // + // This field is read-only. + google.ads.googleads.v11.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 domain. + // These are the users available for targeting in Search campaigns. + // This value is null if the number of users has not yet been determined. + // + // This field is read-only. + optional int64 size_for_search = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size range in terms of number of users of the UserList, for Search ads. + // + // This field is read-only. + google.ads.googleads.v11.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.v11.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.v11.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.v11.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.v11.enums.UserListAccessStatusEnum.UserListAccessStatus account_user_list_status = 16; + + // Indicates if this user list is eligible for Google Search Network. + optional bool eligible_for_search = 33; + + // Output only. Indicates this user list is eligible for Google Display Network. + // + // This field is read-only. + optional bool eligible_for_display = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates match rate for Customer Match lists. The range of this field is + // [0-100]. This will be null for other list types or when it's not possible + // to calculate the match rate. + // + // This field is read-only. + optional int32 match_rate_percentage = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The user list. + // + // Exactly one must be set. + oneof user_list { + // User list of CRM users provided by the advertiser. + google.ads.googleads.v11.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.v11.common.SimilarUserListInfo similar_user_list = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User list generated by a rule. + google.ads.googleads.v11.common.RuleBasedUserListInfo rule_based_user_list = 21; + + // User list that is a custom combination of user lists and user interests. + google.ads.googleads.v11.common.LogicalUserListInfo logical_user_list = 22; + + // User list targeting as a collection of conversion or remarketing actions. + google.ads.googleads.v11.common.BasicUserListInfo basic_user_list = 23; + } +} diff --git a/google/ads/googleads/v11/resources/user_location_view.proto b/google/ads/googleads/v11/resources/user_location_view.proto new file mode 100644 index 000000000..1dd4269b1 --- /dev/null +++ b/google/ads/googleads/v11/resources/user_location_view.proto @@ -0,0 +1,61 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "UserLocationViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the user location view resource. + +// A user location view. +// +// User Location View includes all metrics aggregated at the country level, +// one row per country. It reports metrics at the actual physical location of +// the user by targeted or not targeted location. If other segment fields are +// used, you may get more than one row per country. +message UserLocationView { + option (google.api.resource) = { + type: "googleads.googleapis.com/UserLocationView" + pattern: "customers/{customer_id}/userLocationViews/{country_criterion_id}~{is_targeting_location}" + }; + + // Output only. The resource name of the user location view. + // UserLocation view resource names have the form: + // + // `customers/{customer_id}/userLocationViews/{country_criterion_id}~{targeting_location}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserLocationView" + } + ]; + + // Output only. Criterion Id for the country. + optional int64 country_criterion_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether location was targeted or not. + optional bool targeting_location = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/video.proto b/google/ads/googleads/v11/resources/video.proto new file mode 100644 index 000000000..42b69715f --- /dev/null +++ b/google/ads/googleads/v11/resources/video.proto @@ -0,0 +1,62 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "VideoProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the video resource. + +// A video. +message Video { + option (google.api.resource) = { + type: "googleads.googleapis.com/Video" + pattern: "customers/{customer_id}/videos/{video_id}" + }; + + // Output only. The resource name of the video. + // Video resource names have the form: + // + // `customers/{customer_id}/videos/{video_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Video" + } + ]; + + // Output only. The ID of the video. + optional string id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The owner channel id of the video. + optional string channel_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The duration of the video in milliseconds. + optional int64 duration_millis = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The title of the video. + optional string title = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v11/resources/webpage_view.proto b/google/ads/googleads/v11/resources/webpage_view.proto new file mode 100644 index 000000000..ccbbbdaa6 --- /dev/null +++ b/google/ads/googleads/v11/resources/webpage_view.proto @@ -0,0 +1,50 @@ +// 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.ads.googleads.v11.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "WebpageViewProto"; +option java_package = "com.google.ads.googleads.v11.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V11::Resources"; + +// Proto file describing the webpage view resource. + +// A webpage view. +message WebpageView { + option (google.api.resource) = { + type: "googleads.googleapis.com/WebpageView" + pattern: "customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the webpage view. + // Webpage view resource names have the form: + // + // `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/WebpageView" + } + ]; +} diff --git a/google/ads/googleads/v11/services/BUILD.bazel b/google/ads/googleads/v11/services/BUILD.bazel new file mode 100644 index 000000000..2261a82c7 --- /dev/null +++ b/google/ads/googleads/v11/services/BUILD.bazel @@ -0,0 +1,138 @@ +# 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 +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +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") + +# TODO(ohren): Change srcs to use an enumeration of each individual proto +# instead of *.proto globbing once the build file generator supports +# subpackages. +proto_library( + name = "services_proto", + srcs = glob(["*.proto"]), + deps = [ + "//google/ads/googleads/v11/common:common_proto", + "//google/ads/googleads/v11/enums:enums_proto", + "//google/ads/googleads/v11/errors:errors_proto", + "//google/ads/googleads/v11/resources:resources_proto", + "//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//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "services_proto_with_info", + deps = [ + ":services_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "services_java_proto", + deps = [":services_proto"], +) + +java_grpc_library( + name = "services_java_grpc", + srcs = [":services_proto"], + deps = [":services_java_proto"], +) + +############################################################################## +# PHP +############################################################################## + +# PHP targets are in the parent directory's BUILD.bazel file to facilitate +# aggregating metadata using a single underlying call to protoc. + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "services_csharp_proto", + deps = [":services_proto"], +) + +csharp_grpc_library( + name = "services_csharp_grpc", + srcs = [":services_proto"], + deps = [":services_csharp_proto"], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "services_ruby_proto", + deps = [":services_proto"], +) + +ruby_grpc_library( + name = "services_ruby_grpc", + srcs = [":services_proto"], + deps = [":services_ruby_proto"], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_grpc_library", + "py_proto_library", +) + +py_proto_library( + name = "services_py_proto", + deps = [":services_proto"], +) + +py_grpc_library( + name = "services_py_grpc", + srcs = [":services_proto"], + deps = [":services_py_proto"], +) diff --git a/google/ads/googleads/v11/services/account_budget_proposal_service.proto b/google/ads/googleads/v11/services/account_budget_proposal_service.proto new file mode 100644 index 000000000..7f7dad0e2 --- /dev/null +++ b/google/ads/googleads/v11/services/account_budget_proposal_service.proto @@ -0,0 +1,132 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AccountBudgetProposalServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AccountBudgetProposal service. + +// A service for managing account-level budgets through proposals. +// +// A proposal is a request to create a new budget or make changes to an +// existing one. +// +// Mutates: +// The CREATE operation creates a new proposal. +// UPDATE operations aren't supported. +// The REMOVE operation cancels a pending proposal. +service AccountBudgetProposalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes account budget proposals. Operation statuses + // are returned. + // + // List of thrown errors: + // [AccountBudgetProposalError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DateError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + // [StringLengthError]() + rpc MutateAccountBudgetProposal(MutateAccountBudgetProposalRequest) returns (MutateAccountBudgetProposalResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/accountBudgetProposals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for +// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v11.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. +message MutateAccountBudgetProposalRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform on an individual account-level budget proposal. + AccountBudgetProposalOperation 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 operation to propose the creation of a new account-level budget or +// edit/end/remove an existing one. +message AccountBudgetProposalOperation { + // FieldMask that determines which budget fields are modified. While budgets + // may be modified, proposals that propose such modifications are final. + // Therefore, update operations are not supported for proposals. + // + // Proposals that modify budgets have the 'update' proposal type. Specifying + // a mask for any other proposal type is considered an error. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Create operation: A new proposal to create a new budget, edit an + // 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.v11.resources.AccountBudgetProposal create = 2; + + // Remove operation: A resource name for the removed proposal is expected, + // in this format: + // + // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` + // A request may be cancelled iff it is pending. + string remove = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + }]; + } +} + +// Response message for account-level budget mutate operations. +message MutateAccountBudgetProposalResponse { + // The result of the mutate. + MutateAccountBudgetProposalResult result = 2; +} + +// The result for the account budget proposal mutate. +message MutateAccountBudgetProposalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountBudgetProposal" + }]; +} diff --git a/google/ads/googleads/v11/services/account_link_service.proto b/google/ads/googleads/v11/services/account_link_service.proto new file mode 100644 index 000000000..9e667e8df --- /dev/null +++ b/google/ads/googleads/v11/services/account_link_service.proto @@ -0,0 +1,164 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/account_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"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AccountLinkServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// This service allows management of links between Google Ads accounts and other +// accounts. +service AccountLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates an account link. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + // [ThirdPartyAppAnalyticsLinkError]() + rpc CreateAccountLink(CreateAccountLinkRequest) returns (CreateAccountLinkResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/accountLinks:create" + body: "*" + }; + option (google.api.method_signature) = "customer_id,account_link"; + } + + // Creates or removes an account link. + // From V5, create is not supported through + // AccountLinkService.MutateAccountLink. Use + // AccountLinkService.CreateAccountLink instead. + // + // List of thrown errors: + // [AccountLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAccountLink(MutateAccountLinkRequest) returns (MutateAccountLinkResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/accountLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for +// [AccountLinkService.CreateAccountLink][google.ads.googleads.v11.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.v11.resources.AccountLink account_link = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [AccountLinkService.CreateAccountLink][google.ads.googleads.v11.services.AccountLinkService.CreateAccountLink]. +message CreateAccountLinkResponse { + // Returned for successful operations. Resource name of the account link. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountLink" + }]; +} + +// Request message for [AccountLinkService.MutateAccountLink][google.ads.googleads.v11.services.AccountLinkService.MutateAccountLink]. +message MutateAccountLinkRequest { + // 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. + AccountLinkOperation operation = 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; +} + +// A single update on an account link. +message AccountLinkOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The operation to perform. + oneof operation { + // Update operation: The account link is expected to have + // a valid resource name. + google.ads.googleads.v11.resources.AccountLink update = 2; + + // Remove operation: A resource name for the account link to remove is + // expected, in this format: + // + // `customers/{customer_id}/accountLinks/{account_link_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountLink" + }]; + } +} + +// Response message for account link mutate. +message MutateAccountLinkResponse { + // Result for the mutate. + MutateAccountLinkResult result = 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the account link mutate. +message MutateAccountLinkResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AccountLink" + }]; +} diff --git a/google/ads/googleads/v11/services/ad_group_ad_label_service.proto b/google/ads/googleads/v11/services/ad_group_ad_label_service.proto new file mode 100644 index 000000000..2d8e7b377 --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_ad_label_service.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdLabelServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad Group Ad Label service. + +// Service to manage labels on ad group ads. +service AdGroupAdLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes ad group ad labels. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [HeaderError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdGroupAdLabels(MutateAdGroupAdLabelsRequest) returns (MutateAdGroupAdLabelsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupAdLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on ad group ad labels. + repeated AdGroupAdLabelOperation 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; +} + +// A single operation (create, remove) on an ad group ad label. +message AdGroupAdLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group ad + // label. + google.ads.googleads.v11.resources.AdGroupAdLabel create = 1; + + // Remove operation: A resource name for the ad group ad label + // being removed, in this format: + // + // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}_{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + }]; + } +} + +// Response message for an ad group ad labels mutate. +message MutateAdGroupAdLabelsResponse { + // 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 MutateAdGroupAdLabelResult results = 2; +} + +// The result for an ad group ad label mutate. +message MutateAdGroupAdLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAdLabel" + }]; +} diff --git a/google/ads/googleads/v11/services/ad_group_ad_service.proto b/google/ads/googleads/v11/services/ad_group_ad_service.proto new file mode 100644 index 000000000..d0210b487 --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_ad_service.proto @@ -0,0 +1,172 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad_group_ad.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad Group Ad service. + +// Service to manage ads in an ad group. +service AdGroupAdService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ads. Operation statuses are returned. + // + // List of thrown errors: + // [AdCustomizerError]() + // [AdError]() + // [AdGroupAdError]() + // [AdSharingError]() + // [AdxError]() + // [AssetError]() + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [ContextError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FeedAttributeReferenceError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [ImageError]() + // [InternalError]() + // [ListOperationError]() + // [MediaBundleError]() + // [MediaFileError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [PolicyFindingError]() + // [PolicyValidationParameterError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAdGroupAds(MutateAdGroupAdsRequest) returns (MutateAdGroupAdsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupAds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual ads. + repeated AdGroupAdOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an ad group ad. +message AdGroupAdOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // Configuration for how policies are validated. + google.ads.googleads.v11.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.v11.resources.AdGroupAd create = 1; + + // Update operation: The ad is expected to have a valid resource name. + google.ads.googleads.v11.resources.AdGroupAd update = 2; + + // Remove operation: A resource name for the removed ad is expected, + // in this format: + // + // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + }]; + } +} + +// Response message for an ad group ad mutate. +message MutateAdGroupAdsResponse { + // 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 MutateAdGroupAdResult results = 2; +} + +// The result for the ad mutate. +message MutateAdGroupAdResult { + // The resource name returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + }]; + + // 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.v11.resources.AdGroupAd ad_group_ad = 2; +} diff --git a/google/ads/googleads/v11/services/ad_group_asset_service.proto b/google/ads/googleads/v11/services/ad_group_asset_service.proto new file mode 100644 index 000000000..71d05bcd9 --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_asset_service.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad_group_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAssetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AdGroupAsset service. + +// Service to manage ad group assets. +service AdGroupAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad group assets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NotAllowlistedError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdGroupAssets(MutateAdGroupAssetsRequest) returns (MutateAdGroupAssetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupAssetService.MutateAdGroupAssets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual ad group assets. + repeated AdGroupAssetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an ad group asset. +message AdGroupAssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // asset. + google.ads.googleads.v11.resources.AdGroupAsset create = 1; + + // Update operation: The ad group asset is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.AdGroupAsset update = 3; + + // Remove operation: A resource name for the removed ad group asset is + // expected, in this format: + // + // `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAsset" + }]; + } +} + +// Response message for an ad group asset mutate. +message MutateAdGroupAssetsResponse { + // 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 MutateAdGroupAssetResult results = 2; +} + +// The result for the ad group asset mutate. +message MutateAdGroupAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAsset" + }]; + + // 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.v11.resources.AdGroupAsset ad_group_asset = 2; +} diff --git a/google/ads/googleads/v11/services/ad_group_bid_modifier_service.proto b/google/ads/googleads/v11/services/ad_group_bid_modifier_service.proto new file mode 100644 index 000000000..d1f04a0da --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_bid_modifier_service.proto @@ -0,0 +1,151 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad_group_bid_modifier.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupBidModifierServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad Group Bid Modifier service. + +// Service to manage ad group bid modifiers. +service AdGroupBidModifierService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad group bid modifiers. + // Operation statuses are returned. + // + // List of thrown errors: + // [AdGroupBidModifierError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [CriterionError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateAdGroupBidModifiers(MutateAdGroupBidModifiersRequest) returns (MutateAdGroupBidModifiersResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupBidModifiers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v11.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. +message MutateAdGroupBidModifiersRequest { + // Required. ID of the customer whose ad group bid modifiers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual ad group bid modifiers. + repeated AdGroupBidModifierOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on an ad group bid modifier. +message AdGroupBidModifierOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group bid + // modifier. + google.ads.googleads.v11.resources.AdGroupBidModifier create = 1; + + // Update operation: The ad group bid modifier is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.AdGroupBidModifier update = 2; + + // Remove operation: A resource name for the removed ad group bid modifier + // is expected, in this format: + // + // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + }]; + } +} + +// Response message for ad group bid modifiers mutate. +message MutateAdGroupBidModifiersResponse { + // 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 MutateAdGroupBidModifierResult results = 2; +} + +// The result for the criterion mutate. +message MutateAdGroupBidModifierResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupBidModifier" + }]; + + // 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.v11.resources.AdGroupBidModifier ad_group_bid_modifier = 2; +} diff --git a/google/ads/googleads/v11/services/ad_group_criterion_customizer_service.proto b/google/ads/googleads/v11/services/ad_group_criterion_customizer_service.proto new file mode 100644 index 000000000..01fb6f022 --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_criterion_customizer_service.proto @@ -0,0 +1,121 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionCustomizerServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AdGroupCriterionCustomizer service. + +// Service to manage ad group criterion customizer +service AdGroupCriterionCustomizerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes ad group criterion customizers. Operation + // statuses are returned. + rpc MutateAdGroupCriterionCustomizers(MutateAdGroupCriterionCustomizersRequest) returns (MutateAdGroupCriterionCustomizersResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers][google.ads.googleads.v11.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers]. +message MutateAdGroupCriterionCustomizersRequest { + // Required. The ID of the customer whose ad group criterion customizers are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual ad group criterion + // customizers. + repeated AdGroupCriterionCustomizerOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message AdGroupCriterionCustomizerOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // criterion customizer. + google.ads.googleads.v11.resources.AdGroupCriterionCustomizer create = 1; + + // Remove operation: A resource name for the removed ad group criterion + // customizer is expected, in this format: + // + // `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionCustomizer" + }]; + } +} + +// Response message for an ad group criterion customizer mutate. +message MutateAdGroupCriterionCustomizersResponse { + // All results for the mutate. + repeated MutateAdGroupCriterionCustomizerResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the ad group criterion customizer mutate. +message MutateAdGroupCriterionCustomizerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionCustomizer" + }]; + + // 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.v11.resources.AdGroupCriterionCustomizer ad_group_criterion_customizer = 2; +} diff --git a/google/ads/googleads/v11/services/ad_group_criterion_label_service.proto b/google/ads/googleads/v11/services/ad_group_criterion_label_service.proto new file mode 100644 index 000000000..66a852f76 --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_criterion_label_service.proto @@ -0,0 +1,119 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionLabelServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad Group Criterion Label service. + +// Service to manage labels on ad group criteria. +service AdGroupCriterionLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes ad group criterion labels. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdGroupCriterionLabels(MutateAdGroupCriterionLabelsRequest) returns (MutateAdGroupCriterionLabelsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v11.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels]. +message MutateAdGroupCriterionLabelsRequest { + // Required. ID of the customer whose ad group criterion labels are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on ad group criterion labels. + repeated AdGroupCriterionLabelOperation 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; +} + +// A single operation (create, remove) on an ad group criterion label. +message AdGroupCriterionLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // label. + google.ads.googleads.v11.resources.AdGroupCriterionLabel create = 1; + + // Remove operation: A resource name for the ad group criterion label + // being removed, in this format: + // + // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + }]; + } +} + +// Response message for an ad group criterion labels mutate. +message MutateAdGroupCriterionLabelsResponse { + // 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 MutateAdGroupCriterionLabelResult results = 2; +} + +// The result for an ad group criterion label mutate. +message MutateAdGroupCriterionLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterionLabel" + }]; +} diff --git a/google/ads/googleads/v11/services/ad_group_criterion_service.proto b/google/ads/googleads/v11/services/ad_group_criterion_service.proto new file mode 100644 index 000000000..dd5d8050d --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_criterion_service.proto @@ -0,0 +1,171 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad_group_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad Group Criterion service. + +// Service to manage ad group criteria. +service AdGroupCriterionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes criteria. Operation statuses are returned. + // + // List of thrown errors: + // [AdGroupCriterionError]() + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [BiddingStrategyError]() + // [CollectionSizeError]() + // [ContextError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MultiplierError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAdGroupCriteria(MutateAdGroupCriteriaRequest) returns (MutateAdGroupCriteriaResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupCriteria:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v11.services.AdGroupCriterionService.MutateAdGroupCriteria]. +message MutateAdGroupCriteriaRequest { + // Required. ID of the customer whose criteria are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual criteria. + repeated AdGroupCriterionOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on an ad group criterion. +message AdGroupCriterionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // 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.v11.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.v11.resources.AdGroupCriterion create = 1; + + // Update operation: The criterion is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.AdGroupCriterion update = 2; + + // Remove operation: A resource name for the removed criterion is expected, + // in this format: + // + // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + }]; + } +} + +// Response message for an ad group criterion mutate. +message MutateAdGroupCriteriaResponse { + // 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 MutateAdGroupCriterionResult results = 2; +} + +// The result for the criterion mutate. +message MutateAdGroupCriterionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCriterion" + }]; + + // 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.v11.resources.AdGroupCriterion ad_group_criterion = 2; +} diff --git a/google/ads/googleads/v11/services/ad_group_customizer_service.proto b/google/ads/googleads/v11/services/ad_group_customizer_service.proto new file mode 100644 index 000000000..78a6dc688 --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_customizer_service.proto @@ -0,0 +1,118 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCustomizerServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AdGroupCustomizer service. + +// Service to manage ad group customizer +service AdGroupCustomizerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes ad group customizers. Operation statuses are + // returned. + rpc MutateAdGroupCustomizers(MutateAdGroupCustomizersRequest) returns (MutateAdGroupCustomizersResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupCustomizers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AdGroupCustomizerService.MutateAdGroupCustomizers][google.ads.googleads.v11.services.AdGroupCustomizerService.MutateAdGroupCustomizers]. +message MutateAdGroupCustomizersRequest { + // Required. The ID of the customer whose ad group customizers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual ad group customizers. + repeated AdGroupCustomizerOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message AdGroupCustomizerOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // customizer + google.ads.googleads.v11.resources.AdGroupCustomizer create = 1; + + // Remove operation: A resource name for the removed ad group customizer is + // expected, in this format: + // `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCustomizer" + }]; + } +} + +// Response message for an ad group customizer mutate. +message MutateAdGroupCustomizersResponse { + // All results for the mutate. + repeated MutateAdGroupCustomizerResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the ad group customizer mutate. +message MutateAdGroupCustomizerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupCustomizer" + }]; + + // 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.v11.resources.AdGroupCustomizer ad_group_customizer = 2; +} diff --git a/google/ads/googleads/v11/services/ad_group_extension_setting_service.proto b/google/ads/googleads/v11/services/ad_group_extension_setting_service.proto new file mode 100644 index 000000000..32c7d3acc --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_extension_setting_service.proto @@ -0,0 +1,159 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad_group_extension_setting.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupExtensionSettingServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AdGroupExtensionSetting service. + +// Service to manage ad group extension settings. +service AdGroupExtensionSettingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad group extension settings. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [ExtensionSettingError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAdGroupExtensionSettings(MutateAdGroupExtensionSettingsRequest) returns (MutateAdGroupExtensionSettingsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v11.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings]. +message MutateAdGroupExtensionSettingsRequest { + // Required. The ID of the customer whose ad group extension settings are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual ad group extension + // settings. + repeated AdGroupExtensionSettingOperation 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; +} + +// A single operation (create, update, remove) on an ad group extension setting. +message AdGroupExtensionSettingOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.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.v11.resources.AdGroupExtensionSetting create = 1; + + // Update operation: The ad group extension setting is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.AdGroupExtensionSetting update = 2; + + // Remove operation: A resource name for the removed ad group extension + // setting is expected, in this format: + // + // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupExtensionSetting" + }]; + } +} + +// Response message for an ad group extension setting mutate. +message MutateAdGroupExtensionSettingsResponse { + // 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 MutateAdGroupExtensionSettingResult results = 2; +} + +// The result for the ad group extension setting mutate. +message MutateAdGroupExtensionSettingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupExtensionSetting" + }]; + + // 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.v11.resources.AdGroupExtensionSetting ad_group_extension_setting = 2; +} diff --git a/google/ads/googleads/v11/services/ad_group_feed_service.proto b/google/ads/googleads/v11/services/ad_group_feed_service.proto new file mode 100644 index 000000000..42010bb0a --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_feed_service.proto @@ -0,0 +1,149 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad_group_feed.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupFeedServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AdGroupFeed service. + +// Service to manage ad group feeds. +service AdGroupFeedService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad group feeds. Operation statuses are + // returned. + // + // List of thrown errors: + // [AdGroupFeedError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateAdGroupFeeds(MutateAdGroupFeedsRequest) returns (MutateAdGroupFeedsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupFeeds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual ad group feeds. + repeated AdGroupFeedOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an ad group feed. +message AdGroupFeedOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group feed. + google.ads.googleads.v11.resources.AdGroupFeed create = 1; + + // Update operation: The ad group feed is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.AdGroupFeed update = 2; + + // Remove operation: A resource name for the removed ad group feed is + // expected, in this format: + // + // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupFeed" + }]; + } +} + +// Response message for an ad group feed mutate. +message MutateAdGroupFeedsResponse { + // 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 MutateAdGroupFeedResult results = 2; +} + +// The result for the ad group feed mutate. +message MutateAdGroupFeedResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupFeed" + }]; + + // 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.v11.resources.AdGroupFeed ad_group_feed = 2; +} diff --git a/google/ads/googleads/v11/services/ad_group_label_service.proto b/google/ads/googleads/v11/services/ad_group_label_service.proto new file mode 100644 index 000000000..1d1c26adf --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_label_service.proto @@ -0,0 +1,121 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupLabelServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad Group Label service. + +// Service to manage labels on ad groups. +service AdGroupLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes ad group labels. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdGroupLabels(MutateAdGroupLabelsRequest) returns (MutateAdGroupLabelsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroupLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on ad group labels. + repeated AdGroupLabelOperation 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; +} + +// A single operation (create, remove) on an ad group label. +message AdGroupLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group + // label. + google.ads.googleads.v11.resources.AdGroupLabel create = 1; + + // Remove operation: A resource name for the ad group label + // being removed, in this format: + // + // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupLabel" + }]; + } +} + +// Response message for an ad group labels mutate. +message MutateAdGroupLabelsResponse { + // 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 MutateAdGroupLabelResult results = 2; +} + +// The result for an ad group label mutate. +message MutateAdGroupLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupLabel" + }]; +} diff --git a/google/ads/googleads/v11/services/ad_group_service.proto b/google/ads/googleads/v11/services/ad_group_service.proto new file mode 100644 index 000000000..a59170846 --- /dev/null +++ b/google/ads/googleads/v11/services/ad_group_service.proto @@ -0,0 +1,155 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad_group.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad Group service. + +// Service to manage ad groups. +service AdGroupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad groups. Operation statuses are returned. + // + // List of thrown errors: + // [AdGroupError]() + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [BiddingStrategyError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MultiplierError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SettingError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAdGroups(MutateAdGroupsRequest) returns (MutateAdGroupsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adGroups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdGroupService.MutateAdGroups][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual ad groups. + repeated AdGroupOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an ad group. +message AdGroupOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad group. + google.ads.googleads.v11.resources.AdGroup create = 1; + + // Update operation: The ad group is expected to have a valid resource name. + google.ads.googleads.v11.resources.AdGroup update = 2; + + // Remove operation: A resource name for the removed ad group is expected, + // in this format: + // + // `customers/{customer_id}/adGroups/{ad_group_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + }]; + } +} + +// Response message for an ad group mutate. +message MutateAdGroupsResponse { + // 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 MutateAdGroupResult results = 2; +} + +// The result for the ad group mutate. +message MutateAdGroupResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + }]; + + // 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.v11.resources.AdGroup ad_group = 2; +} diff --git a/google/ads/googleads/v11/services/ad_parameter_service.proto b/google/ads/googleads/v11/services/ad_parameter_service.proto new file mode 100644 index 000000000..4cfab2f6c --- /dev/null +++ b/google/ads/googleads/v11/services/ad_parameter_service.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad_parameter.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdParameterServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad Parameter service. + +// Service to manage ad parameters. +service AdParameterService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes ad parameters. Operation statuses are + // returned. + // + // List of thrown errors: + // [AdParameterError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateAdParameters(MutateAdParametersRequest) returns (MutateAdParametersResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/adParameters:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdParameterService.MutateAdParameters][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual ad parameters. + repeated AdParameterOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on ad parameter. +message AdParameterOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new ad parameter. + google.ads.googleads.v11.resources.AdParameter create = 1; + + // Update operation: The ad parameter is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.AdParameter update = 2; + + // Remove operation: A resource name for the ad parameter to remove is + // expected in this format: + // + // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdParameter" + }]; + } +} + +// Response message for an ad parameter mutate. +message MutateAdParametersResponse { + // 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 MutateAdParameterResult results = 2; +} + +// The result for the ad parameter mutate. +message MutateAdParameterResult { + // The resource name returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AdParameter" + }]; + + // 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.v11.resources.AdParameter ad_parameter = 2; +} diff --git a/google/ads/googleads/v11/services/ad_service.proto b/google/ads/googleads/v11/services/ad_service.proto new file mode 100644 index 000000000..ae1b0a7e0 --- /dev/null +++ b/google/ads/googleads/v11/services/ad_service.proto @@ -0,0 +1,186 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/policy.proto"; +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/ad.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AdServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Ad service. + +// Service to manage ads. +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.v11.resources.Ad) { + option (google.api.http) = { + get: "/v11/{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. + // + // List of thrown errors: + // [AdCustomizerError]() + // [AdError]() + // [AdSharingError]() + // [AdxError]() + // [AssetError]() + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FeedAttributeReferenceError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [ImageError]() + // [InternalError]() + // [ListOperationError]() + // [MediaBundleError]() + // [MediaFileError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [PolicyFindingError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateAds(MutateAdsRequest) returns (MutateAdsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/ads:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AdService.GetAd][google.ads.googleads.v11.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.v11.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]; + + // Required. The list of operations to perform on individual ads. + repeated AdOperation 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 = 4; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 3; +} + +// A single update operation on an ad. +message AdOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; + + // Configuration for how policies are validated. + google.ads.googleads.v11.common.PolicyValidationParameter policy_validation_parameter = 3; + + // The mutate operation. + oneof operation { + // Update operation: The ad is expected to have a valid resource name + // in this format: + // + // `customers/{customer_id}/ads/{ad_id}` + google.ads.googleads.v11.resources.Ad update = 1; + } +} + +// Response message for an ad mutate. +message MutateAdsResponse { + // 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 MutateAdResult results = 2; +} + +// The result for the ad mutate. +message MutateAdResult { + // The resource name returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Ad" + }]; + + // 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.v11.resources.Ad ad = 2; +} diff --git a/google/ads/googleads/v11/services/asset_group_asset_service.proto b/google/ads/googleads/v11/services/asset_group_asset_service.proto new file mode 100644 index 000000000..fb3d4bf12 --- /dev/null +++ b/google/ads/googleads/v11/services/asset_group_asset_service.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/asset_group_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupAssetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AssetGroupAsset service. + +// Service to manage asset group asset. +service AssetGroupAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset group assets. Operation statuses are + // returned. + rpc MutateAssetGroupAssets(MutateAssetGroupAssetsRequest) returns (MutateAssetGroupAssetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/assetGroupAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetGroupAssetService.MutateAssetGroupAssets][google.ads.googleads.v11.services.AssetGroupAssetService.MutateAssetGroupAssets]. +message MutateAssetGroupAssetsRequest { + // Required. The ID of the customer whose asset group assets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual asset group assets. + repeated AssetGroupAssetOperation 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; +} + +// A single operation (create, remove) on an asset group asset. +message AssetGroupAssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset group + // asset + google.ads.googleads.v11.resources.AssetGroupAsset create = 1; + + // Update operation: The asset group asset sis expected to have a valid + // resource name. + google.ads.googleads.v11.resources.AssetGroupAsset update = 2; + + // Remove operation: A resource name for the removed asset group asset is + // expected, in this format: + // `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupAsset" + }]; + } +} + +// Response message for an asset group asset mutate. +message MutateAssetGroupAssetsResponse { + // All results for the mutate. + repeated MutateAssetGroupAssetResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset group asset mutate. +message MutateAssetGroupAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupAsset" + }]; +} diff --git a/google/ads/googleads/v11/services/asset_group_listing_group_filter_service.proto b/google/ads/googleads/v11/services/asset_group_listing_group_filter_service.proto new file mode 100644 index 000000000..aca3a6689 --- /dev/null +++ b/google/ads/googleads/v11/services/asset_group_listing_group_filter_service.proto @@ -0,0 +1,120 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupListingGroupFilterServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AssetGroupListingGroupFilter service. + +// Service to manage asset group listing group filter. +service AssetGroupListingGroupFilterService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset group listing group filters. Operation + // statuses are returned. + rpc MutateAssetGroupListingGroupFilters(MutateAssetGroupListingGroupFiltersRequest) returns (MutateAssetGroupListingGroupFiltersResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters][google.ads.googleads.v11.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters]. +// partial_failure is not supported because the tree needs to be validated +// together. +message MutateAssetGroupListingGroupFiltersRequest { + // Required. The ID of the customer whose asset group listing group filters are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual asset group listing group + // filters. + repeated AssetGroupListingGroupFilterOperation operations = 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; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (create, remove) on an asset group listing group filter. +message AssetGroupListingGroupFilterOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset group + // listing group filter. + google.ads.googleads.v11.resources.AssetGroupListingGroupFilter create = 1; + + // Update operation: The asset group listing group filter is expected to + // have a valid resource name. + google.ads.googleads.v11.resources.AssetGroupListingGroupFilter update = 2; + + // Remove operation: A resource name for the removed asset group listing + // group filter is expected, in this format: + // `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}` + // An entity can be removed only if it's not referenced by other + // parent_listing_group_id. If multiple entities are being deleted, the + // mutates must be in the correct order. + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + }]; + } +} + +// Response message for an asset group listing group filter mutate. +message MutateAssetGroupListingGroupFiltersResponse { + // All results for the mutate. + repeated MutateAssetGroupListingGroupFilterResult results = 1; +} + +// The result for the asset group listing group filter mutate. +message MutateAssetGroupListingGroupFilterResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupListingGroupFilter" + }]; + + // 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.v11.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 2; +} diff --git a/google/ads/googleads/v11/services/asset_group_service.proto b/google/ads/googleads/v11/services/asset_group_service.proto new file mode 100644 index 000000000..7d73ff8d5 --- /dev/null +++ b/google/ads/googleads/v11/services/asset_group_service.proto @@ -0,0 +1,108 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/asset_group.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AssetGroup service. + +// Service to manage asset group +service AssetGroupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset groups. Operation statuses are + // returned. + rpc MutateAssetGroups(MutateAssetGroupsRequest) returns (MutateAssetGroupsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/assetGroups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetGroupService.MutateAssetGroups][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual asset groups. + repeated AssetGroupOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// A single operation (create, remove) on an asset group. +message AssetGroupOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset group + google.ads.googleads.v11.resources.AssetGroup create = 1; + + // Update operation: The asset group is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.AssetGroup update = 2; + + // Remove operation: A resource name for the removed asset group is + // expected, in this format: + // `customers/{customer_id}/assetGroups/{asset_group_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + }]; + } +} + +// Response message for an asset group mutate. +message MutateAssetGroupsResponse { + // All results for the mutate. + repeated MutateAssetGroupResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset group mutate. +message MutateAssetGroupResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + }]; +} diff --git a/google/ads/googleads/v11/services/asset_group_signal_service.proto b/google/ads/googleads/v11/services/asset_group_signal_service.proto new file mode 100644 index 000000000..fda7ebc13 --- /dev/null +++ b/google/ads/googleads/v11/services/asset_group_signal_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupSignalServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AssetGroupSignal service. + +// Service to manage asset group signal. +service AssetGroupSignalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes asset group signals. Operation statuses are + // returned. + rpc MutateAssetGroupSignals(MutateAssetGroupSignalsRequest) returns (MutateAssetGroupSignalsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/assetGroupSignals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [AssetGroupSignalService.MutateAssetGroupSignals][google.ads.googleads.v11.services.AssetGroupSignalService.MutateAssetGroupSignals]. +message MutateAssetGroupSignalsRequest { + // Required. The ID of the customer whose asset group signals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual asset group signals. + repeated AssetGroupSignalOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an asset group signal. +message AssetGroupSignalOperation { + // 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.v11.resources.AssetGroupSignal create = 1; + + // Remove operation: A resource name for the removed asset group signal is + // expected, in this format: + // `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupSignal" + }]; + } +} + +// Response message for an asset group signal mutate. +message MutateAssetGroupSignalsResponse { + // All results for the mutate. + repeated MutateAssetGroupSignalResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset group signal mutate. +message MutateAssetGroupSignalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupSignal" + }]; + + // 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.v11.resources.AssetGroupSignal asset_group_signal = 2; +} diff --git a/google/ads/googleads/v11/services/asset_service.proto b/google/ads/googleads/v11/services/asset_service.proto new file mode 100644 index 000000000..f3ea8d058 --- /dev/null +++ b/google/ads/googleads/v11/services/asset_service.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Asset service. + +// Service to manage assets. Asset types can be created with AssetService are +// YoutubeVideoAsset, MediaBundleAsset and ImageAsset. TextAsset should be +// created with Ad inline. +service AssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates assets. Operation statuses are returned. + // + // List of thrown errors: + // [AssetError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CurrencyCodeError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MediaUploadError]() + // [MutateError]() + // [NotAllowlistedError]() + // [NotEmptyError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + // [YoutubeVideoRegistrationError]() + rpc MutateAssets(MutateAssetsRequest) returns (MutateAssetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/assets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetService.MutateAssets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual assets. + repeated AssetOperation 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 = 5; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 3; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// A single operation to create an asset. Supported asset types are +// YoutubeVideoAsset, MediaBundleAsset, ImageAsset, and LeadFormAsset. TextAsset +// should be created with Ad inline. +message AssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset. + google.ads.googleads.v11.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.v11.resources.Asset update = 2; + } +} + +// Response message for an asset mutate. +message MutateAssetsResponse { + // 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 MutateAssetResult results = 2; +} + +// The result for the asset mutate. +message MutateAssetResult { + // The resource name returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Asset" + }]; + + // 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.v11.resources.Asset asset = 2; +} diff --git a/google/ads/googleads/v11/services/asset_set_asset_service.proto b/google/ads/googleads/v11/services/asset_set_asset_service.proto new file mode 100644 index 000000000..b6ecc1bc6 --- /dev/null +++ b/google/ads/googleads/v11/services/asset_set_asset_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetAssetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AssetSetAsset service. + +// Service to manage asset set asset. +service AssetSetAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset set assets. Operation statuses are + // returned. + rpc MutateAssetSetAssets(MutateAssetSetAssetsRequest) returns (MutateAssetSetAssetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/assetSetAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetSetAssetService.MutateAssetSetAssets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual asset set assets. + repeated AssetSetAssetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an asset set asset. +message AssetSetAssetOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset set + // asset + google.ads.googleads.v11.resources.AssetSetAsset create = 1; + + // Remove operation: A resource name for the removed asset set asset is + // expected, in this format: + // `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSetAsset" + }]; + } +} + +// Response message for an asset set asset mutate. +message MutateAssetSetAssetsResponse { + // All results for the mutate. + repeated MutateAssetSetAssetResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset set asset mutate. +message MutateAssetSetAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSetAsset" + }]; + + // 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.v11.resources.AssetSetAsset asset_set_asset = 2; +} diff --git a/google/ads/googleads/v11/services/asset_set_service.proto b/google/ads/googleads/v11/services/asset_set_service.proto new file mode 100644 index 000000000..d3a6ddd79 --- /dev/null +++ b/google/ads/googleads/v11/services/asset_set_service.proto @@ -0,0 +1,123 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AssetSetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the AssetSet service. + +// Service to manage asset set +service AssetSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes asset sets. Operation statuses are + // returned. + rpc MutateAssetSets(MutateAssetSetsRequest) returns (MutateAssetSetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/assetSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AssetSetService.MutateAssetSets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual asset sets. + repeated AssetSetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an asset set. +message AssetSetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new asset set + google.ads.googleads.v11.resources.AssetSet create = 1; + + // Update operation: The asset set is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.AssetSet update = 2; + + // Remove operation: A resource name for the removed asset set is + // expected, in this format: + // `customers/{customer_id}/assetSets/{asset_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + }]; + } +} + +// Response message for an asset set mutate. +message MutateAssetSetsResponse { + // All results for the mutate. + repeated MutateAssetSetResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the asset set mutate. +message MutateAssetSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetSet" + }]; + + // 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.v11.resources.AssetSet asset_set = 2; +} diff --git a/google/ads/googleads/v11/services/audience_insights_service.proto b/google/ads/googleads/v11/services/audience_insights_service.proto new file mode 100644 index 000000000..6eac8685a --- /dev/null +++ b/google/ads/googleads/v11/services/audience_insights_service.proto @@ -0,0 +1,438 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AudienceInsightsServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the audience insights service. + +// Audience Insights Service helps users find information about groups of +// people and how they can be reached with Google Ads. +service AudienceInsightsService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates a saved report that can be viewed in the Insights Finder tool. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc GenerateInsightsFinderReport(GenerateInsightsFinderReportRequest) returns (GenerateInsightsFinderReportResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:generateInsightsFinderReport" + body: "*" + }; + option (google.api.method_signature) = "customer_id,baseline_audience,specific_audience"; + } + + // Searches for audience attributes that can be used to generate insights. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc ListAudienceInsightsAttributes(ListAudienceInsightsAttributesRequest) returns (ListAudienceInsightsAttributesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:searchAudienceInsightsAttributes" + body: "*" + }; + option (google.api.method_signature) = "customer_id,dimensions,query_text"; + } + + // Returns a collection of attributes that are represented in an audience of + // interest, with metrics that compare each attribute's share of the audience + // with its share of a baseline audience. + // + // List of thrown errors: + // [AudienceInsightsError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc GenerateAudienceCompositionInsights(GenerateAudienceCompositionInsightsRequest) returns (GenerateAudienceCompositionInsightsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:generateAudienceCompositionInsights" + body: "*" + }; + option (google.api.method_signature) = "customer_id,audience,dimensions"; + } +} + +// Request message for [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v11.services.AudienceInsightsService.GenerateInsightsFinderReport]. +message GenerateInsightsFinderReportRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. A baseline audience for this report, typically all people in a region. + BasicInsightsAudience baseline_audience = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The specific audience of interest for this report. The insights in the + // report will be based on attributes more prevalent in this audience than + // in the report's baseline audience. + BasicInsightsAudience specific_audience = 3 [(google.api.field_behavior) = REQUIRED]; + + // The name of the customer being planned for. This is a user-defined value. + string customer_insights_group = 4; +} + +// The response message for +// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v11.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 + // report inputs filled in according to the request. + string saved_report_url = 1; +} + +// Request message for +// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v11.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. +message GenerateAudienceCompositionInsightsRequest { + // 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]; + + // 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 = 3; + + // Required. The audience dimensions for which composition insights should be returned. + repeated google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimensions = 4 [(google.api.field_behavior) = REQUIRED]; + + // The name of the customer being planned for. This is a user-defined value. + string customer_insights_group = 5; +} + +// Response message for +// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v11.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. +message GenerateAudienceCompositionInsightsResponse { + // The contents of the insights report, organized into sections. + // Each section is associated with one of the AudienceInsightsDimension values + // in the request. There may be more than one section per dimension. + repeated AudienceCompositionSection sections = 1; +} + +// Request message for +// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v11.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.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimensions = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A free text query. Attributes matching or related to this string will be + // returned. + string query_text = 3 [(google.api.field_behavior) = REQUIRED]; + + // The name of the customer being planned for. This is a user-defined value. + string customer_insights_group = 4; +} + +// Response message for +// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v11.services.AudienceInsightsService.ListAudienceInsightsAttributes]. +message ListAudienceInsightsAttributesResponse { + // The attributes matching the search query. + repeated AudienceInsightsAttributeMetadata attributes = 1; +} + +// An audience attribute that can be used to request insights about the +// audience. +message AudienceInsightsAttribute { + // An audience attribute. + oneof attribute { + // An audience attribute defined by an age range. + google.ads.googleads.v11.common.AgeRangeInfo age_range = 1; + + // An audience attribute defined by a gender. + google.ads.googleads.v11.common.GenderInfo gender = 2; + + // An audience attribute defiend by a geographic location. + google.ads.googleads.v11.common.LocationInfo location = 3; + + // An Affinity or In-Market audience. + google.ads.googleads.v11.common.UserInterestInfo user_interest = 4; + + // An audience attribute defined by interest in a topic represented by a + // Knowledge Graph entity. + AudienceInsightsEntity entity = 5; + + // An audience attribute defined by interest in a Product & Service + // category. + AudienceInsightsCategory category = 6; + + // A YouTube Dynamic Lineup + AudienceInsightsDynamicLineup dynamic_lineup = 7; + + // A Parental Status value (parent, or not a parent). + google.ads.googleads.v11.common.ParentalStatusInfo parental_status = 8; + + // A household income percentile range. + google.ads.googleads.v11.common.IncomeRangeInfo income_range = 9; + + // A YouTube channel. + google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel = 10; + } +} + +// An entity or category representing a topic that defines an audience. +message AudienceInsightsTopic { + // An entity or category attribute. + oneof topic { + // A Knowledge Graph entity + AudienceInsightsEntity entity = 1; + + // A Product & Service category + AudienceInsightsCategory category = 2; + } +} + +// A Knowledge Graph entity, represented by its machine id. +message AudienceInsightsEntity { + // Required. The machine id (mid) of the Knowledge Graph entity. + string knowledge_graph_machine_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A Product and Service category. +message AudienceInsightsCategory { + // Required. The criterion id of the category. + string category_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A YouTube Dynamic Lineup. +message AudienceInsightsDynamicLineup { + // Required. The numeric ID of the dynamic lineup. + string dynamic_lineup_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A description of an audience used for requesting insights. +message BasicInsightsAudience { + // Required. The countries for this audience. + repeated google.ads.googleads.v11.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.v11.common.LocationInfo sub_country_locations = 2; + + // Gender for the audience. If absent, the audience does not restrict by + // gender. + google.ads.googleads.v11.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.v11.common.AgeRangeInfo age_ranges = 4; + + // User interests defining this audience. Affinity and In-Market audiences + // are supported. + repeated google.ads.googleads.v11.common.UserInterestInfo user_interests = 5; + + // Topics, represented by Knowledge Graph entities and/or Product & Service + // categories, that this audience is interested in. + repeated AudienceInsightsTopic topics = 6; +} + +// An audience attribute, with metadata about it, returned in response to a +// search. +message AudienceInsightsAttributeMetadata { + // The type of the attribute. + google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimension = 1; + + // The attribute itself. + AudienceInsightsAttribute attribute = 2; + + // 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". + // If the dimension is CATEGORY, this is the complete path to the category in + // The Product & Service taxonomy, for example + // "/Apparel/Clothing/Outerwear". + string display_info = 5; + + // Metadata specific to the dimension of this attribute. + oneof dimension_metadata { + // Special metadata for a YouTube channel. + YouTubeChannelAttributeMetadata youtube_channel_metadata = 6; + + // Special metadata for a YouTube Dynamic Lineup. + DynamicLineupAttributeMetadata dynamic_attribute_metadata = 7; + } +} + +// Metadata associated with a YouTube channel attribute. +message YouTubeChannelAttributeMetadata { + // The approximate number of subscribers to the YouTube channel. + int64 subscriber_count = 1; +} + +// Metadata associated with a Dynamic Lineup attribute. +message DynamicLineupAttributeMetadata { + // The national market associated with the lineup. + google.ads.googleads.v11.common.LocationInfo inventory_country = 1; + + // The median number of impressions per month on this lineup. + optional int64 median_monthly_inventory = 2; + + // The lower end of a range containing the number of channels in the lineup. + optional int64 channel_count_lower_bound = 3; + + // The upper end of a range containing the number of channels in the lineup. + optional int64 channel_count_upper_bound = 4; +} + +// 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.v11.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.v11.common.LocationInfo sub_country_locations = 2; + + // Gender for the audience. If absent, the audience does not restrict by + // gender. + google.ads.googleads.v11.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.v11.common.AgeRangeInfo age_ranges = 4; + + // Parental status for the audience. If absent, the audience does not + // restrict by parental status. + google.ads.googleads.v11.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.v11.common.IncomeRangeInfo income_ranges = 6; + + // Dynamic lineups representing the YouTube content viewed by the audience. + repeated AudienceInsightsDynamicLineup dynamic_lineups = 7; + + // A combination of entity, category and user interest attributes defining the + // audience. The combination has a logical AND-of-ORs structure: Attributes + // within each InsightsAudienceAttributeGroup are combined with OR, and + // the combinations themselves are combined together with AND. For example, + // the expression (Entity OR Affinity) AND (In-Market OR Category) can be + // formed using two InsightsAudienceAttributeGroups with two Attributes + // each. + repeated InsightsAudienceAttributeGroup topic_audience_combinations = 8; +} + +// A list of AudienceInsightsAttributes. +message InsightsAudienceAttributeGroup { + // Required. A collection of audience attributes to be combined with logical OR. + // Attributes need not all be the same dimension. Only Knowledge Graph + // entities, Product & Service Categories, and Affinity and In-Market + // audiences are supported in this context. + repeated AudienceInsightsAttribute attributes = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A collection of related attributes of the same type in an audience +// composition insights report. +message AudienceCompositionSection { + // The type of the attributes in this section. + google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimension = 1; + + // The most relevant segments for this audience. If dimension is GENDER, + // AGE_RANGE or PARENTAL_STATUS, then this list of attributes is exhaustive. + repeated AudienceCompositionAttribute top_attributes = 3; + + // Additional attributes for this audience, grouped into clusters. Only + // populated if dimension is YOUTUBE_CHANNEL. + repeated AudienceCompositionAttributeCluster clustered_attributes = 4; +} + +// A collection of related attributes, with metadata and metrics, in an audience +// composition insights report. +message AudienceCompositionAttributeCluster { + // The name of this cluster of attributes + string cluster_display_name = 1; + + // If the dimension associated with this cluster is YOUTUBE_CHANNEL, then + // cluster_metrics are metrics associated with the cluster as a whole. + // For other dimensions, this field is unset. + AudienceCompositionMetrics cluster_metrics = 3; + + // The individual attributes that make up this cluster, with metadata and + // metrics. + repeated AudienceCompositionAttribute attributes = 4; +} + +// The share and index metrics associated with an attribute in an audience +// composition insights report. +message AudienceCompositionMetrics { + // The fraction (from 0 to 1 inclusive) of the baseline audience that match + // the attribute. + double baseline_audience_share = 1; + + // The fraction (from 0 to 1 inclusive) of the specific audience that match + // the attribute. + double audience_share = 2; + + // The ratio of audience_share to baseline_audience_share, or zero if this + // ratio is undefined or is not meaningful. + double index = 3; + + // A relevance score from 0 to 1 inclusive. + double score = 4; +} + +// An audience attribute with metadata and metrics. +message AudienceCompositionAttribute { + // The attribute with its metadata. + AudienceInsightsAttributeMetadata attribute_metadata = 1; + + // Share and index metrics for the attribute. + AudienceCompositionMetrics metrics = 2; +} diff --git a/google/ads/googleads/v11/services/audience_service.proto b/google/ads/googleads/v11/services/audience_service.proto new file mode 100644 index 000000000..f58c8d408 --- /dev/null +++ b/google/ads/googleads/v11/services/audience_service.proto @@ -0,0 +1,118 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/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"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "AudienceServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Audience service. + +// Service to manage audiences. +service AudienceService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates audiences. Operation statuses are returned. + // + // List of thrown errors: + // [AudienceError]() + rpc MutateAudiences(MutateAudiencesRequest) returns (MutateAudiencesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/audiences:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [AudienceService.MutateAudiences][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual audiences. + repeated AudienceOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// Response message for an audience mutate. +message MutateAudiencesResponse { + // All results for the mutate. + repeated MutateAudienceResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// A single operation (create, update) on an audience. +message AudienceOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new audience + google.ads.googleads.v11.resources.Audience create = 1; + + // Update operation: The audience is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.Audience update = 2; + } +} + +// The result for the audience mutate. +message MutateAudienceResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Audience" + }]; + + // 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.v11.resources.Audience audience = 2; +} diff --git a/google/ads/googleads/v11/services/batch_job_service.proto b/google/ads/googleads/v11/services/batch_job_service.proto new file mode 100644 index 000000000..b20d9191a --- /dev/null +++ b/google/ads/googleads/v11/services/batch_job_service.proto @@ -0,0 +1,269 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/batch_job.proto"; +import "google/ads/googleads/v11/services/google_ads_service.proto"; +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/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BatchJobServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the BatchJobService. + +// Service to manage batch jobs. +service BatchJobService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Mutates a batch job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateBatchJob(MutateBatchJobRequest) returns (MutateBatchJobResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/batchJobs:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } + + // Returns the results of the batch job. The job must be done. + // Supports standard list paging. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [BatchJobError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListBatchJobResults(ListBatchJobResultsRequest) returns (ListBatchJobResultsResponse) { + option (google.api.http) = { + get: "/v11/{resource_name=customers/*/batchJobs/*}:listResults" + }; + option (google.api.method_signature) = "resource_name"; + } + + // Runs the batch job. + // + // The Operation.metadata field type is BatchJobMetadata. When finished, the + // long running operation will not contain errors or a response. Instead, use + // ListBatchJobResults to get the results of the job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [BatchJobError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc RunBatchJob(RunBatchJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v11/{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.v11.resources.BatchJob.BatchJobMetadata" + }; + } + + // Add operations to the batch job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [BatchJobError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc AddBatchJobOperations(AddBatchJobOperationsRequest) returns (AddBatchJobOperationsResponse) { + option (google.api.http) = { + post: "/v11/{resource_name=customers/*/batchJobs/*}:addOperations" + body: "*" + }; + option (google.api.method_signature) = "resource_name,sequence_token,mutate_operations"; + option (google.api.method_signature) = "resource_name,mutate_operations"; + } +} + +// Request message for [BatchJobService.MutateBatchJob][google.ads.googleads.v11.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]; + + // Required. The operation to perform on an individual batch job. + BatchJobOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single operation on a batch job. +message BatchJobOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new batch job. + google.ads.googleads.v11.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: + // + // `customers/{customer_id}/batchJobs/{batch_job_id}` + string remove = 4 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + }]; + } +} + +// Response message for [BatchJobService.MutateBatchJob][google.ads.googleads.v11.services.BatchJobService.MutateBatchJob]. +message MutateBatchJobResponse { + // The result for the mutate. + MutateBatchJobResult result = 1; +} + +// The result for the batch job mutate. +message MutateBatchJobResult { + // The resource name of the batch job. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + }]; +} + +// Request message for [BatchJobService.RunBatchJob][google.ads.googleads.v11.services.BatchJobService.RunBatchJob]. +message RunBatchJobRequest { + // Required. The resource name of the BatchJob to run. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + } + ]; +} + +// Request message for [BatchJobService.AddBatchJobOperations][google.ads.googleads.v11.services.BatchJobService.AddBatchJobOperations]. +message AddBatchJobOperationsRequest { + // Required. The resource name of the batch job. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + } + ]; + + // A token used to enforce sequencing. + // + // The first AddBatchJobOperations request for a batch job should not set + // sequence_token. Subsequent requests must set sequence_token to the value of + // next_sequence_token received in the previous AddBatchJobOperations + // response. + string sequence_token = 2; + + // Required. The list of mutates being added. + // + // Operations can use negative integers as temp ids to signify dependencies + // between entities created in this batch job. For example, a customer with + // id = 1234 can create a campaign and an ad group in that same campaign by + // creating a campaign in the first operation with the resource name + // explicitly set to "customers/1234/campaigns/-1", and creating an ad group + // in the second operation with the campaign field also set to + // "customers/1234/campaigns/-1". + repeated MutateOperation mutate_operations = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [BatchJobService.AddBatchJobOperations][google.ads.googleads.v11.services.BatchJobService.AddBatchJobOperations]. +message AddBatchJobOperationsResponse { + // The total number of operations added so far for this batch job. + int64 total_operations = 1; + + // The sequence token to be used when calling AddBatchJobOperations again if + // more operations need to be added. The next AddBatchJobOperations request + // must set the sequence_token field to the value of this field. + string next_sequence_token = 2; +} + +// Request message for [BatchJobService.ListBatchJobResults][google.ads.googleads.v11.services.BatchJobService.ListBatchJobResults]. +message ListBatchJobResultsRequest { + // Required. The resource name of the batch job whose results are being listed. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/BatchJob" + } + ]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When a page request is too large, the server may decide to + // further limit the number of returned resources. + int32 page_size = 3; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// Response message for [BatchJobService.ListBatchJobResults][google.ads.googleads.v11.services.BatchJobService.ListBatchJobResults]. +message ListBatchJobResultsResponse { + // The list of rows that matched the query. + repeated BatchJobResult 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; +} + +// An individual batch job result. +message BatchJobResult { + // Index of the mutate operation. + int64 operation_index = 1; + + // Response for the mutate. + // May be empty if errors occurred. + MutateOperationResponse mutate_operation_response = 2; + + // Details of the errors when processing the operation. + google.rpc.Status status = 3; +} diff --git a/google/ads/googleads/v11/services/bidding_data_exclusion_service.proto b/google/ads/googleads/v11/services/bidding_data_exclusion_service.proto new file mode 100644 index 000000000..e5ddf0ec0 --- /dev/null +++ b/google/ads/googleads/v11/services/bidding_data_exclusion_service.proto @@ -0,0 +1,125 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/bidding_data_exclusion.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BiddingDataExclusionServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Service to manage bidding data exclusions. +service BiddingDataExclusionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes data exclusions. + // Operation statuses are returned. + rpc MutateBiddingDataExclusions(MutateBiddingDataExclusionsRequest) returns (MutateBiddingDataExclusionsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/biddingDataExclusions:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [BiddingDataExclusionService.MutateBiddingDataExclusions][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual data exclusions. + repeated BiddingDataExclusionOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on a data exclusion. +message BiddingDataExclusionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new data + // exclusion. + google.ads.googleads.v11.resources.BiddingDataExclusion create = 1; + + // Update operation: The data exclusion is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.BiddingDataExclusion update = 2; + + // Remove operation: A resource name for the removed data exclusion + // is expected, in this format: + // + // `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingDataExclusion" + }]; + } +} + +// Response message for data exlusions mutate. +message MutateBiddingDataExclusionsResponse { + // 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 MutateBiddingDataExclusionsResult results = 2; +} + +// The result for the data exclusion mutate. +message MutateBiddingDataExclusionsResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingDataExclusion" + }]; + + // 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.v11.resources.BiddingDataExclusion bidding_data_exclusion = 2; +} diff --git a/google/ads/googleads/v11/services/bidding_seasonality_adjustment_service.proto b/google/ads/googleads/v11/services/bidding_seasonality_adjustment_service.proto new file mode 100644 index 000000000..20e4453ab --- /dev/null +++ b/google/ads/googleads/v11/services/bidding_seasonality_adjustment_service.proto @@ -0,0 +1,125 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/bidding_seasonality_adjustment.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BiddingSeasonalityAdjustmentServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Service to manage bidding seasonality adjustments. +service BiddingSeasonalityAdjustmentService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes seasonality adjustments. + // Operation statuses are returned. + rpc MutateBiddingSeasonalityAdjustments(MutateBiddingSeasonalityAdjustmentsRequest) returns (MutateBiddingSeasonalityAdjustmentsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments][google.ads.googleads.v11.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments]. +message MutateBiddingSeasonalityAdjustmentsRequest { + // Required. ID of the customer whose seasonality adjustments are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual seasonality adjustments. + repeated BiddingSeasonalityAdjustmentOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on a seasonality adjustment. +message BiddingSeasonalityAdjustmentOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new seasonality + // adjustment. + google.ads.googleads.v11.resources.BiddingSeasonalityAdjustment create = 1; + + // Update operation: The seasonality adjustment is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.BiddingSeasonalityAdjustment update = 2; + + // Remove operation: A resource name for the removed seasonality adjustment + // is expected, in this format: + // + // `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" + }]; + } +} + +// Response message for seasonality adjustments mutate. +message MutateBiddingSeasonalityAdjustmentsResponse { + // 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 MutateBiddingSeasonalityAdjustmentsResult results = 2; +} + +// The result for the seasonality adjustment mutate. +message MutateBiddingSeasonalityAdjustmentsResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" + }]; + + // 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.v11.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 2; +} diff --git a/google/ads/googleads/v11/services/bidding_strategy_service.proto b/google/ads/googleads/v11/services/bidding_strategy_service.proto new file mode 100644 index 000000000..0e389b934 --- /dev/null +++ b/google/ads/googleads/v11/services/bidding_strategy_service.proto @@ -0,0 +1,154 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/bidding_strategy.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BiddingStrategyServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Bidding Strategy service. + +// Service to manage bidding strategies. +service BiddingStrategyService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes bidding strategies. Operation statuses are + // returned. + // + // List of thrown errors: + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [BiddingStrategyError]() + // [ContextError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateBiddingStrategies(MutateBiddingStrategiesRequest) returns (MutateBiddingStrategiesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/biddingStrategies:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v11.services.BiddingStrategyService.MutateBiddingStrategies]. +message MutateBiddingStrategiesRequest { + // Required. The ID of the customer whose bidding strategies are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual bidding strategies. + repeated BiddingStrategyOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a bidding strategy. +message BiddingStrategyOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new bidding + // strategy. + google.ads.googleads.v11.resources.BiddingStrategy create = 1; + + // Update operation: The bidding strategy is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.BiddingStrategy update = 2; + + // Remove operation: A resource name for the removed bidding strategy is + // expected, in this format: + // + // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategy" + }]; + } +} + +// Response message for bidding strategy mutate. +message MutateBiddingStrategiesResponse { + // 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 MutateBiddingStrategyResult results = 2; +} + +// The result for the bidding strategy mutate. +message MutateBiddingStrategyResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BiddingStrategy" + }]; + + // 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.v11.resources.BiddingStrategy bidding_strategy = 2; +} diff --git a/google/ads/googleads/v11/services/billing_setup_service.proto b/google/ads/googleads/v11/services/billing_setup_service.proto new file mode 100644 index 000000000..6e40f6152 --- /dev/null +++ b/google/ads/googleads/v11/services/billing_setup_service.proto @@ -0,0 +1,112 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BillingSetupServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the BillingSetup service. + +// A service for designating the business entity responsible for accrued costs. +// +// A billing setup is associated with a payments account. Billing-related +// activity for all billing setups associated with a particular payments account +// will appear on a single invoice generated monthly. +// +// Mutates: +// The REMOVE operation cancels a pending billing setup. +// The CREATE operation creates a new billing setup. +service BillingSetupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates a billing setup, or cancels an existing billing setup. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [BillingSetupError]() + // [DateError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateBillingSetup(MutateBillingSetupRequest) returns (MutateBillingSetupResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/billingSetups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for billing setup mutate operations. +message MutateBillingSetupRequest { + // Required. Id of the customer to apply the billing setup mutate operation to. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform. + BillingSetupOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single operation on a billing setup, which describes the cancellation of an +// existing billing setup. +message BillingSetupOperation { + // Only one of these operations can be set. "Update" operations are not + // supported. + oneof operation { + // Creates a billing setup. No resource name is expected for the new billing + // setup. + google.ads.googleads.v11.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 + // the future. The resource name looks like + // `customers/{customer_id}/billingSetups/{billing_id}`. + string remove = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + }]; + } +} + +// Response message for a billing setup operation. +message MutateBillingSetupResponse { + // A result that identifies the resource affected by the mutate request. + MutateBillingSetupResult result = 1; +} + +// Result for a single billing setup mutate. +message MutateBillingSetupResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/BillingSetup" + }]; +} diff --git a/google/ads/googleads/v11/services/campaign_asset_service.proto b/google/ads/googleads/v11/services/campaign_asset_service.proto new file mode 100644 index 000000000..8da30003f --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_asset_service.proto @@ -0,0 +1,140 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAssetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CampaignAsset service. + +// Service to manage campaign assets. +service CampaignAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign assets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NotAllowlistedError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCampaignAssets(MutateCampaignAssetsRequest) returns (MutateCampaignAssetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignAssetService.MutateCampaignAssets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual campaign assets. + repeated CampaignAssetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign asset. +message CampaignAssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // asset. + google.ads.googleads.v11.resources.CampaignAsset create = 1; + + // Update operation: The campaign asset is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.CampaignAsset update = 3; + + // Remove operation: A resource name for the removed campaign asset is + // expected, in this format: + // + // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAsset" + }]; + } +} + +// Response message for a campaign asset mutate. +message MutateCampaignAssetsResponse { + // 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 MutateCampaignAssetResult results = 2; +} + +// The result for the campaign asset mutate. +message MutateCampaignAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAsset" + }]; + + // 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.v11.resources.CampaignAsset campaign_asset = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_asset_set_service.proto b/google/ads/googleads/v11/services/campaign_asset_set_service.proto new file mode 100644 index 000000000..985a105b1 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_asset_set_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAssetSetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CampaignAssetSet service. + +// Service to manage campaign asset set +service CampaignAssetSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes campaign asset sets. Operation statuses are + // returned. + rpc MutateCampaignAssetSets(MutateCampaignAssetSetsRequest) returns (MutateCampaignAssetSetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignAssetSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignAssetSetService.MutateCampaignAssetSets][google.ads.googleads.v11.services.CampaignAssetSetService.MutateCampaignAssetSets]. +message MutateCampaignAssetSetsRequest { + // Required. The ID of the customer whose campaign asset sets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign asset sets. + repeated CampaignAssetSetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on a campaign asset set. +message CampaignAssetSetOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign asset + // set. + google.ads.googleads.v11.resources.CampaignAssetSet create = 1; + + // Remove operation: A resource name for the removed campaign asset set is + // expected, in this format: + // `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAssetSet" + }]; + } +} + +// Response message for a campaign asset set mutate. +message MutateCampaignAssetSetsResponse { + // All results for the mutate. + repeated MutateCampaignAssetSetResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the campaign asset set mutate. +message MutateCampaignAssetSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAssetSet" + }]; + + // 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.v11.resources.CampaignAssetSet campaign_asset_set = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_bid_modifier_service.proto b/google/ads/googleads/v11/services/campaign_bid_modifier_service.proto new file mode 100644 index 000000000..3e95bc423 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_bid_modifier_service.proto @@ -0,0 +1,151 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_bid_modifier.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBidModifierServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign Bid Modifier service. + +// Service to manage campaign bid modifiers. +service CampaignBidModifierService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign bid modifiers. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ContextError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCampaignBidModifiers(MutateCampaignBidModifiersRequest) returns (MutateCampaignBidModifiersResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignBidModifiers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CampaignBidModifierService.MutateCampaignBidModifiers][google.ads.googleads.v11.services.CampaignBidModifierService.MutateCampaignBidModifiers]. +message MutateCampaignBidModifiersRequest { + // Required. ID of the customer whose campaign bid modifiers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign bid modifiers. + repeated CampaignBidModifierOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on a campaign bid modifier. +message CampaignBidModifierOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign bid + // modifier. + google.ads.googleads.v11.resources.CampaignBidModifier create = 1; + + // Update operation: The campaign bid modifier is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.CampaignBidModifier update = 2; + + // Remove operation: A resource name for the removed campaign bid modifier + // is expected, in this format: + // + // `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBidModifier" + }]; + } +} + +// Response message for campaign bid modifiers mutate. +message MutateCampaignBidModifiersResponse { + // 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 MutateCampaignBidModifierResult results = 2; +} + +// The result for the criterion mutate. +message MutateCampaignBidModifierResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBidModifier" + }]; + + // 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.v11.resources.CampaignBidModifier campaign_bid_modifier = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_budget_service.proto b/google/ads/googleads/v11/services/campaign_budget_service.proto new file mode 100644 index 000000000..a3540cd69 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_budget_service.proto @@ -0,0 +1,144 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_budget.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignBudgetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign Budget service. + +// Service to manage campaign budgets. +service CampaignBudgetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign budgets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignBudgetError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [OperationAccessDeniedError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [StringLengthError]() + rpc MutateCampaignBudgets(MutateCampaignBudgetsRequest) returns (MutateCampaignBudgetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignBudgets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual campaign budgets. + repeated CampaignBudgetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign budget. +message CampaignBudgetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new budget. + google.ads.googleads.v11.resources.CampaignBudget create = 1; + + // Update operation: The campaign budget is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.CampaignBudget update = 2; + + // Remove operation: A resource name for the removed budget is expected, in + // this format: + // + // `customers/{customer_id}/campaignBudgets/{budget_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + }]; + } +} + +// Response message for campaign budget mutate. +message MutateCampaignBudgetsResponse { + // 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 MutateCampaignBudgetResult results = 2; +} + +// The result for the campaign budget mutate. +message MutateCampaignBudgetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + }]; + + // 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.v11.resources.CampaignBudget campaign_budget = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_conversion_goal_service.proto b/google/ads/googleads/v11/services/campaign_conversion_goal_service.proto new file mode 100644 index 000000000..6e1437bee --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_conversion_goal_service.proto @@ -0,0 +1,92 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignConversionGoalServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CampaignConversionGoal service. + +// Service to manage campaign conversion goal. +service CampaignConversionGoalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes campaign conversion goals. Operation statuses + // are returned. + rpc MutateCampaignConversionGoals(MutateCampaignConversionGoalsRequest) returns (MutateCampaignConversionGoalsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignConversionGoals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CampaignConversionGoalService.MutateCampaignConversionGoals][google.ads.googleads.v11.services.CampaignConversionGoalService.MutateCampaignConversionGoals]. +message MutateCampaignConversionGoalsRequest { + // Required. The ID of the customer whose campaign conversion goals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign conversion goal. + repeated CampaignConversionGoalOperation operations = 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 operation (update) on a campaign conversion goal. +message CampaignConversionGoalOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; + + // The mutate operation. + oneof operation { + // Update operation: The customer conversion goal is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.CampaignConversionGoal update = 1; + } +} + +// Response message for a campaign conversion goal mutate. +message MutateCampaignConversionGoalsResponse { + // All results for the mutate. + repeated MutateCampaignConversionGoalResult results = 1; +} + +// The result for the campaign conversion goal mutate. +message MutateCampaignConversionGoalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignConversionGoal" + }]; +} diff --git a/google/ads/googleads/v11/services/campaign_criterion_service.proto b/google/ads/googleads/v11/services/campaign_criterion_service.proto new file mode 100644 index 000000000..0751be3bc --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_criterion_service.proto @@ -0,0 +1,155 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCriterionServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign Criterion service. + +// Service to manage campaign criteria. +service CampaignCriterionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes criteria. Operation statuses are returned. + // + // List of thrown errors: + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignCriterionError]() + // [CollectionSizeError]() + // [ContextError]() + // [CriterionError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RegionCodeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCampaignCriteria(MutateCampaignCriteriaRequest) returns (MutateCampaignCriteriaResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignCriteria:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual criteria. + repeated CampaignCriterionOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign criterion. +message CampaignCriterionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new criterion. + google.ads.googleads.v11.resources.CampaignCriterion create = 1; + + // Update operation: The criterion is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.CampaignCriterion update = 2; + + // Remove operation: A resource name for the removed criterion is expected, + // in this format: + // + // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterion" + }]; + } +} + +// Response message for campaign criterion mutate. +message MutateCampaignCriteriaResponse { + // 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 MutateCampaignCriterionResult results = 2; +} + +// The result for the criterion mutate. +message MutateCampaignCriterionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCriterion" + }]; + + // 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.v11.resources.CampaignCriterion campaign_criterion = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_customizer_service.proto b/google/ads/googleads/v11/services/campaign_customizer_service.proto new file mode 100644 index 000000000..19ad48036 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_customizer_service.proto @@ -0,0 +1,118 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignCustomizerServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CampaignCustomizer service. + +// Service to manage campaign customizer +service CampaignCustomizerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes campaign customizers. Operation statuses are + // returned. + rpc MutateCampaignCustomizers(MutateCampaignCustomizersRequest) returns (MutateCampaignCustomizersResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignCustomizers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CampaignCustomizerService.MutateCampaignCustomizers][google.ads.googleads.v11.services.CampaignCustomizerService.MutateCampaignCustomizers]. +message MutateCampaignCustomizersRequest { + // Required. The ID of the customer whose campaign customizers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign customizers. + repeated CampaignCustomizerOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message CampaignCustomizerOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // customizer + google.ads.googleads.v11.resources.CampaignCustomizer create = 1; + + // Remove operation: A resource name for the removed campaign customizer is + // expected, in this format: + // `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCustomizer" + }]; + } +} + +// Response message for an campaign customizer mutate. +message MutateCampaignCustomizersResponse { + // All results for the mutate. + repeated MutateCampaignCustomizerResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the campaign customizer mutate. +message MutateCampaignCustomizerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignCustomizer" + }]; + + // 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.v11.resources.CampaignCustomizer campaign_customizer = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_draft_service.proto b/google/ads/googleads/v11/services/campaign_draft_service.proto new file mode 100644 index 000000000..a85ab966c --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_draft_service.proto @@ -0,0 +1,236 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_draft.proto"; +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/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignDraftServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign Draft service. + +// Service to manage campaign drafts. +service CampaignDraftService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign drafts. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignDraftError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCampaignDrafts(MutateCampaignDraftsRequest) returns (MutateCampaignDraftsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignDrafts:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Promotes the changes in a draft back to the base campaign. + // + // This method returns a Long Running Operation (LRO) indicating if the + // Promote is done. Use [Operations.GetOperation] to poll the LRO until it + // 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.v11.services.CampaignDraftService.ListCampaignDraftAsyncErrors] to view the list of + // error reasons. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignDraftError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc PromoteCampaignDraft(PromoteCampaignDraftRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v11/{campaign_draft=customers/*/campaignDrafts/*}:promote" + body: "*" + }; + option (google.api.method_signature) = "campaign_draft"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.protobuf.Empty" + }; + } + + // Returns all errors that occurred during CampaignDraft promote. Throws an + // error if called before campaign draft is promoted. + // Supports standard list paging. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListCampaignDraftAsyncErrors(ListCampaignDraftAsyncErrorsRequest) returns (ListCampaignDraftAsyncErrorsResponse) { + option (google.api.http) = { + get: "/v11/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + }; + option (google.api.method_signature) = "resource_name"; + } +} + +// Request message for [CampaignDraftService.MutateCampaignDrafts][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual campaign drafts. + repeated CampaignDraftOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// Request message for [CampaignDraftService.PromoteCampaignDraft][google.ads.googleads.v11.services.CampaignDraftService.PromoteCampaignDraft]. +message PromoteCampaignDraftRequest { + // Required. The resource name of the campaign draft to promote. + string campaign_draft = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + } + ]; + + // If true, the request is validated but no Long Running Operation is created. + // Only errors are returned. + bool validate_only = 2; +} + +// A single operation (create, update, remove) on a campaign draft. +message CampaignDraftOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // draft. + google.ads.googleads.v11.resources.CampaignDraft create = 1; + + // Update operation: The campaign draft is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.CampaignDraft update = 2; + + // Remove operation: The campaign draft is expected to have a valid + // resource name, in this format: + // + // `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + }]; + } +} + +// Response message for campaign draft mutate. +message MutateCampaignDraftsResponse { + // 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 MutateCampaignDraftResult results = 2; +} + +// The result for the campaign draft mutate. +message MutateCampaignDraftResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + }]; + + // 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.v11.resources.CampaignDraft campaign_draft = 2; +} + +// Request message for [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v11.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. +message ListCampaignDraftAsyncErrorsRequest { + // Required. The name of the campaign draft from which to retrieve the async errors. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignDraft" + } + ]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When a page request is too large, the server may decide to + // further limit the number of returned resources. + int32 page_size = 3; +} + +// Response message for [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v11.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. +message ListCampaignDraftAsyncErrorsResponse { + // Details of the errors when performing the asynchronous operation. + repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_experiment_service.proto b/google/ads/googleads/v11/services/campaign_experiment_service.proto new file mode 100644 index 000000000..2295e8f00 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_experiment_service.proto @@ -0,0 +1,374 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_experiment.proto"; +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/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExperimentServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign Experiment service. + +// CampaignExperimentService manages the life cycle of campaign experiments. +// It is used to create new experiments from drafts, modify experiment +// properties, promote changes in an experiment back to its base campaign, +// graduate experiments into new stand-alone campaigns, and to remove an +// experiment. +// +// An experiment consists of two variants or arms - the base campaign and the +// experiment campaign, directing a fixed share of traffic to each arm. +// A campaign experiment is created from a draft of changes to the base campaign +// and will be a snapshot of changes in the draft at the time of creation. +service CampaignExperimentService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates a campaign experiment based on a campaign draft. The draft campaign + // will be forked into a real campaign (called the experiment campaign) that + // will begin serving ads if successfully created. + // + // The campaign experiment is created immediately with status INITIALIZING. + // This method return a long running operation that tracks the forking of the + // draft campaign. If the forking fails, a list of errors can be retrieved + // using the ListCampaignExperimentAsyncErrors method. The operation's + // metadata will be a StringValue containing the resource name of the created + // campaign experiment. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignExperimentError]() + // [DatabaseError]() + // [DateError]() + // [DateRangeError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc CreateCampaignExperiment(CreateCampaignExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignExperiments:create" + body: "*" + }; + option (google.api.method_signature) = "customer_id,campaign_experiment"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.ads.googleads.v11.services.CreateCampaignExperimentMetadata" + }; + } + + // Updates campaign experiments. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCampaignExperiments(MutateCampaignExperimentsRequest) returns (MutateCampaignExperimentsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignExperiments:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Graduates a campaign experiment to a full campaign. The base and experiment + // campaigns will start running independently with their own budgets. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignExperimentError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc GraduateCampaignExperiment(GraduateCampaignExperimentRequest) returns (GraduateCampaignExperimentResponse) { + option (google.api.http) = { + post: "/v11/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" + body: "*" + }; + option (google.api.method_signature) = "campaign_experiment,campaign_budget"; + } + + // Promotes the changes in a experiment campaign back to the base campaign. + // + // The campaign experiment is updated immediately with status PROMOTING. + // This method return a long running operation that tracks the promoting of + // the experiment campaign. If the promoting fails, a list of errors can be + // retrieved using the ListCampaignExperimentAsyncErrors method. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc PromoteCampaignExperiment(PromoteCampaignExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v11/{campaign_experiment=customers/*/campaignExperiments/*}:promote" + body: "*" + }; + option (google.api.method_signature) = "campaign_experiment"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.protobuf.Empty" + }; + } + + // Immediately ends a campaign experiment, changing the experiment's scheduled + // end date and without waiting for end of day. End date is updated to be the + // time of the request. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc EndCampaignExperiment(EndCampaignExperimentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v11/{campaign_experiment=customers/*/campaignExperiments/*}:end" + body: "*" + }; + option (google.api.method_signature) = "campaign_experiment"; + } + + // Returns all errors that occurred during CampaignExperiment create or + // promote (whichever occurred last). + // Supports standard list paging. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListCampaignExperimentAsyncErrors(ListCampaignExperimentAsyncErrorsRequest) returns (ListCampaignExperimentAsyncErrorsResponse) { + option (google.api.http) = { + get: "/v11/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" + }; + option (google.api.method_signature) = "resource_name"; + } +} + +// Request message for [CampaignExperimentService.MutateCampaignExperiments][google.ads.googleads.v11.services.CampaignExperimentService.MutateCampaignExperiments]. +message MutateCampaignExperimentsRequest { + // Required. The ID of the customer whose campaign experiments are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign experiments. + repeated CampaignExperimentOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single update operation on a campaign experiment. +message CampaignExperimentOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Update operation: The campaign experiment is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.CampaignExperiment update = 1; + + // Remove operation: The campaign experiment is expected to have a valid + // resource name, in this format: + // + // `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + }]; + } +} + +// Response message for campaign experiment mutate. +message MutateCampaignExperimentsResponse { + // 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 MutateCampaignExperimentResult results = 2; +} + +// The result for the campaign experiment mutate. +message MutateCampaignExperimentResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + }]; + + // The mutated campaign experiment with only mutable fields after mutate. The + // field will only be returned when response_content_type is set to + // "MUTABLE_RESOURCE". + google.ads.googleads.v11.resources.CampaignExperiment campaign_experiment = 2; +} + +// Request message for [CampaignExperimentService.CreateCampaignExperiment][google.ads.googleads.v11.services.CampaignExperimentService.CreateCampaignExperiment]. +message CreateCampaignExperimentRequest { + // Required. The ID of the customer whose campaign experiment is being created. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The campaign experiment to be created. + google.ads.googleads.v11.resources.CampaignExperiment campaign_experiment = 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; +} + +// Message used as metadata returned in Long Running Operations for +// CreateCampaignExperimentRequest +message CreateCampaignExperimentMetadata { + // Resource name of campaign experiment created. + string campaign_experiment = 1; +} + +// Request message for [CampaignExperimentService.GraduateCampaignExperiment][google.ads.googleads.v11.services.CampaignExperimentService.GraduateCampaignExperiment]. +message GraduateCampaignExperimentRequest { + // Required. The resource name of the campaign experiment to graduate. + string campaign_experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // Required. Resource name of the budget to attach to the campaign graduated from the + // experiment. + string campaign_budget = 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; +} + +// Response message for campaign experiment graduate. +message GraduateCampaignExperimentResponse { + // The resource name of the campaign from the graduated experiment. + // This campaign is the same one as CampaignExperiment.experiment_campaign. + string graduated_campaign = 1; +} + +// Request message for [CampaignExperimentService.PromoteCampaignExperiment][google.ads.googleads.v11.services.CampaignExperimentService.PromoteCampaignExperiment]. +message PromoteCampaignExperimentRequest { + // Required. The resource name of the campaign experiment to promote. + string campaign_experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // If true, the request is validated but no Long Running Operation is created. + // Only errors are returned. + bool validate_only = 2; +} + +// Request message for [CampaignExperimentService.EndCampaignExperiment][google.ads.googleads.v11.services.CampaignExperimentService.EndCampaignExperiment]. +message EndCampaignExperimentRequest { + // Required. The resource name of the campaign experiment to end. + string campaign_experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// Request message for +// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v11.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors]. +message ListCampaignExperimentAsyncErrorsRequest { + // Required. The name of the campaign experiment from which to retrieve the async + // errors. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExperiment" + } + ]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When a page request is too large, the server may decide to + // further limit the number of returned resources. + int32 page_size = 3; +} + +// Response message for +// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v11.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors]. +message ListCampaignExperimentAsyncErrorsResponse { + // Details of the errors when performing the asynchronous operation. + repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_extension_setting_service.proto b/google/ads/googleads/v11/services/campaign_extension_setting_service.proto new file mode 100644 index 000000000..8cdf8fc22 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_extension_setting_service.proto @@ -0,0 +1,158 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_extension_setting.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignExtensionSettingServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CampaignExtensionSetting service. + +// Service to manage campaign extension settings. +service CampaignExtensionSettingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign extension settings. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [ExtensionSettingError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateCampaignExtensionSettings(MutateCampaignExtensionSettingsRequest) returns (MutateCampaignExtensionSettingsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignExtensionSettings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v11.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings]. +message MutateCampaignExtensionSettingsRequest { + // Required. The ID of the customer whose campaign extension settings are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign extension + // settings. + repeated CampaignExtensionSettingOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign extension setting. +message CampaignExtensionSettingOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // extension setting. + google.ads.googleads.v11.resources.CampaignExtensionSetting create = 1; + + // Update operation: The campaign extension setting is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.CampaignExtensionSetting update = 2; + + // Remove operation: A resource name for the removed campaign extension + // setting is expected, in this format: + // + // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExtensionSetting" + }]; + } +} + +// Response message for a campaign extension setting mutate. +message MutateCampaignExtensionSettingsResponse { + // 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 MutateCampaignExtensionSettingResult results = 2; +} + +// The result for the campaign extension setting mutate. +message MutateCampaignExtensionSettingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignExtensionSetting" + }]; + + // 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.v11.resources.CampaignExtensionSetting campaign_extension_setting = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_feed_service.proto b/google/ads/googleads/v11/services/campaign_feed_service.proto new file mode 100644 index 000000000..2ea76f0a3 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_feed_service.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_feed.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignFeedServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CampaignFeed service. + +// Service to manage campaign feeds. +service CampaignFeedService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign feeds. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignFeedError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCampaignFeeds(MutateCampaignFeedsRequest) returns (MutateCampaignFeedsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignFeeds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual campaign feeds. + repeated CampaignFeedOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign feed. +message CampaignFeedOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign feed. + google.ads.googleads.v11.resources.CampaignFeed create = 1; + + // Update operation: The campaign feed is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.CampaignFeed update = 2; + + // Remove operation: A resource name for the removed campaign feed is + // expected, in this format: + // + // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignFeed" + }]; + } +} + +// Response message for a campaign feed mutate. +message MutateCampaignFeedsResponse { + // 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 MutateCampaignFeedResult results = 2; +} + +// The result for the campaign feed mutate. +message MutateCampaignFeedResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignFeed" + }]; + + // 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.v11.resources.CampaignFeed campaign_feed = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_group_service.proto b/google/ads/googleads/v11/services/campaign_group_service.proto new file mode 100644 index 000000000..f32c54fc6 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_group_service.proto @@ -0,0 +1,129 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign_group.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignGroupServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign group service. + +// Service to manage campaign groups. +service CampaignGroupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaign groups. Operation statuses are + // returned. + rpc MutateCampaignGroups(MutateCampaignGroupsRequest) returns (MutateCampaignGroupsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignGroups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignGroupService.MutateCampaignGroups][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual campaign groups. + repeated CampaignGroupOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign group. +message CampaignGroupOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // group. + google.ads.googleads.v11.resources.CampaignGroup create = 1; + + // Update operation: The campaign group is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.CampaignGroup update = 2; + + // Remove operation: A resource name for the removed campaign group is + // expected, in this format: + // + // `customers/{customer_id}/campaignGroups/{campaign_group_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignGroup" + }]; + } +} + +// Response message for campaign group mutate. +message MutateCampaignGroupsResponse { + // All results for the mutate. + repeated MutateCampaignGroupResult results = 2; + + // 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; +} + +// The result for the campaign group mutate. +message MutateCampaignGroupResult { + // Required. Returned for successful operations. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignGroup" + } + ]; + + // 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.v11.resources.CampaignGroup campaign_group = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_label_service.proto b/google/ads/googleads/v11/services/campaign_label_service.proto new file mode 100644 index 000000000..b905bd31d --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_label_service.proto @@ -0,0 +1,121 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignLabelServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign Label service. + +// Service to manage labels on campaigns. +service CampaignLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes campaign-label relationships. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCampaignLabels(MutateCampaignLabelsRequest) returns (MutateCampaignLabelsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v11.services.CampaignLabelService.MutateCampaignLabels]. +message MutateCampaignLabelsRequest { + // Required. ID of the customer whose campaign-label relationships are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on campaign-label relationships. + repeated CampaignLabelOperation 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; +} + +// A single operation (create, remove) on a campaign-label relationship. +message CampaignLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign-label + // relationship. + google.ads.googleads.v11.resources.CampaignLabel create = 1; + + // Remove operation: A resource name for the campaign-label relationship + // being removed, in this format: + // + // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLabel" + }]; + } +} + +// Response message for a campaign labels mutate. +message MutateCampaignLabelsResponse { + // 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 MutateCampaignLabelResult results = 2; +} + +// The result for a campaign label mutate. +message MutateCampaignLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLabel" + }]; +} diff --git a/google/ads/googleads/v11/services/campaign_service.proto b/google/ads/googleads/v11/services/campaign_service.proto new file mode 100644 index 000000000..185a36fc5 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_service.proto @@ -0,0 +1,160 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/campaign.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign service. + +// Service to manage campaigns. +service CampaignService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes campaigns. Operation statuses are returned. + // + // List of thrown errors: + // [AdxError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [BiddingStrategyError]() + // [CampaignBudgetError]() + // [CampaignError]() + // [ContextError]() + // [DatabaseError]() + // [DateError]() + // [DateRangeError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotAllowlistedError]() + // [NotEmptyError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RegionCodeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SettingError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateCampaigns(MutateCampaignsRequest) returns (MutateCampaignsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaigns:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignService.MutateCampaigns][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual campaigns. + repeated CampaignOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a campaign. +message CampaignOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign. + google.ads.googleads.v11.resources.Campaign create = 1; + + // Update operation: The campaign is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.Campaign update = 2; + + // Remove operation: A resource name for the removed campaign is + // expected, in this format: + // + // `customers/{customer_id}/campaigns/{campaign_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + } +} + +// Response message for campaign mutate. +message MutateCampaignsResponse { + // 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 MutateCampaignResult results = 2; +} + +// The result for the campaign mutate. +message MutateCampaignResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + }]; + + // 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.v11.resources.Campaign campaign = 2; +} diff --git a/google/ads/googleads/v11/services/campaign_shared_set_service.proto b/google/ads/googleads/v11/services/campaign_shared_set_service.proto new file mode 100644 index 000000000..f84357d16 --- /dev/null +++ b/google/ads/googleads/v11/services/campaign_shared_set_service.proto @@ -0,0 +1,141 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignSharedSetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Campaign Shared Set service. + +// Service to manage campaign shared sets. +service CampaignSharedSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes campaign shared sets. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignSharedSetError]() + // [ContextError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCampaignSharedSets(MutateCampaignSharedSetsRequest) returns (MutateCampaignSharedSetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/campaignSharedSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v11.services.CampaignSharedSetService.MutateCampaignSharedSets]. +message MutateCampaignSharedSetsRequest { + // Required. The ID of the customer whose campaign shared sets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual campaign shared sets. + repeated CampaignSharedSetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an campaign shared set. +message CampaignSharedSetOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new campaign + // shared set. + google.ads.googleads.v11.resources.CampaignSharedSet create = 1; + + // Remove operation: A resource name for the removed campaign shared set is + // expected, in this format: + // + // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSharedSet" + }]; + } +} + +// Response message for a campaign shared set mutate. +message MutateCampaignSharedSetsResponse { + // 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 MutateCampaignSharedSetResult results = 2; +} + +// The result for the campaign shared set mutate. +message MutateCampaignSharedSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignSharedSet" + }]; + + // 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.v11.resources.CampaignSharedSet campaign_shared_set = 2; +} diff --git a/google/ads/googleads/v11/services/conversion_action_service.proto b/google/ads/googleads/v11/services/conversion_action_service.proto new file mode 100644 index 000000000..cce5e7524 --- /dev/null +++ b/google/ads/googleads/v11/services/conversion_action_service.proto @@ -0,0 +1,144 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/conversion_action.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionActionServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Conversion Action service. + +// Service to manage conversion actions. +service ConversionActionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes conversion actions. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ConversionActionError]() + // [CurrencyCodeError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [StringLengthError]() + rpc MutateConversionActions(MutateConversionActionsRequest) returns (MutateConversionActionsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/conversionActions:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v11.services.ConversionActionService.MutateConversionActions]. +message MutateConversionActionsRequest { + // Required. The ID of the customer whose conversion actions are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion actions. + repeated ConversionActionOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a conversion action. +message ConversionActionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new conversion + // action. + google.ads.googleads.v11.resources.ConversionAction create = 1; + + // Update operation: The conversion action is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.ConversionAction update = 2; + + // Remove operation: A resource name for the removed conversion action is + // expected, in this format: + // + // `customers/{customer_id}/conversionActions/{conversion_action_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + } +} + +// Response message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v11.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 + // 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 MutateConversionActionResult results = 2; +} + +// The result for the conversion action mutate. +message MutateConversionActionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionAction" + }]; + + // 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.v11.resources.ConversionAction conversion_action = 2; +} diff --git a/google/ads/googleads/v11/services/conversion_adjustment_upload_service.proto b/google/ads/googleads/v11/services/conversion_adjustment_upload_service.proto new file mode 100644 index 000000000..7fa37cda4 --- /dev/null +++ b/google/ads/googleads/v11/services/conversion_adjustment_upload_service.proto @@ -0,0 +1,199 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/offline_user_data.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionAdjustmentUploadServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Service to upload conversion adjustments. +service ConversionAdjustmentUploadService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Processes the given conversion adjustments. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [PartialFailureError]() + // [QuotaError]() + // [RequestError]() + rpc UploadConversionAdjustments(UploadConversionAdjustmentsRequest) returns (UploadConversionAdjustmentsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:uploadConversionAdjustments" + body: "*" + }; + option (google.api.method_signature) = "customer_id,conversion_adjustments,partial_failure"; + } +} + +// Request message for +// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v11.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. +message UploadConversionAdjustmentsRequest { + // Required. The ID of the customer performing the upload. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The conversion adjustments that are being uploaded. + repeated ConversionAdjustment conversion_adjustments = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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. This should always be + // set to true. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// Response message for +// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v11.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 + // errors occur outside the adjustments (for example, auth errors), we return + // an RPC level error. See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + google.rpc.Status partial_failure_error = 1; + + // Returned for successfully processed conversion adjustments. Proto will be + // empty for rows that received an error. Results are not returned when + // validate_only is true. + repeated ConversionAdjustmentResult results = 2; +} + +// A conversion adjustment. +message ConversionAdjustment { + // For adjustments, uniquely identifies a conversion that was reported + // without an order ID specified. If the adjustment_type is ENHANCEMENT, this + // value is optional but may be set in addition to the order_id. + GclidDateTimePair gclid_date_time_pair = 12; + + // The order ID of the conversion to be adjusted. If the conversion was + // reported with an order ID specified, that order ID must be used as the + // identifier here. The order ID is required for enhancements. + optional string order_id = 13; + + // Resource name of the conversion action associated with this conversion + // adjustment. Note: Although this resource name consists of a customer id and + // a conversion action id, validation will ignore the customer id and use the + // conversion action id as the sole identifier of the conversion action. + optional string conversion_action = 8; + + // The date time at which the adjustment occurred. Must be after the + // conversion_date_time. The timezone must be specified. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string adjustment_date_time = 9; + + // The adjustment type. + google.ads.googleads.v11.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5; + + // Information needed to restate the conversion's value. + // Required for restatements. Should not be supplied for retractions. An error + // will be returned if provided for a retraction. + // NOTE: If you want to upload a second restatement with a different adjusted + // value, it must have a new, more recent, adjustment occurrence time. + // Otherwise, it will be treated as a duplicate of the previous restatement + // and ignored. + RestatementValue restatement_value = 6; + + // The user identifiers to enhance the original conversion. + // ConversionAdjustmentUploadService only accepts user identifiers in + // enhancements. The maximum number of user identifiers for each + // enhancement is 5. + repeated google.ads.googleads.v11.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. + // Example, "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X)". User + // agent can only be specified in enhancements with user identifiers. This + // should match the user agent of the request that sent the original + // conversion so the conversion and its enhancement are either both attributed + // as same-device or both attributed as cross-device. + optional string user_agent = 11; +} + +// Contains information needed to restate a conversion's value. +message RestatementValue { + // The restated conversion value. This is the value of the conversion after + // restatement. For example, to change the value of a conversion from 100 to + // 70, an adjusted value of 70 should be reported. + // NOTE: If you want to upload a second restatement with a different adjusted + // value, it must have a new, more recent, adjustment occurrence time. + // Otherwise, it will be treated as a duplicate of the previous restatement + // and ignored. + optional double adjusted_value = 3; + + // The currency of the restated value. If not provided, then the default + // currency from the conversion action is used, and if that is not set then + // the account currency is used. This is the ISO 4217 3-character currency + // code for example, USD or EUR. + optional string currency_code = 4; +} + +// Uniquely identifies a conversion that was reported without an order ID +// specified. +message GclidDateTimePair { + // Google click ID (gclid) associated with the original conversion for this + // adjustment. + optional string gclid = 3; + + // The date time at which the original conversion for this adjustment + // occurred. The timezone must be specified. The format is "yyyy-mm-dd + // hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 4; +} + +// Information identifying a successfully processed ConversionAdjustment. +message ConversionAdjustmentResult { + // The gclid and conversion date time of the conversion. + GclidDateTimePair gclid_date_time_pair = 9; + + // The order ID of the conversion to be adjusted. + string order_id = 10; + + // Resource name of the conversion action associated with this conversion + // adjustment. + optional string conversion_action = 7; + + // The date time at which the adjustment occurred. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string adjustment_date_time = 8; + + // The adjustment type. + google.ads.googleads.v11.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5; +} diff --git a/google/ads/googleads/v11/services/conversion_custom_variable_service.proto b/google/ads/googleads/v11/services/conversion_custom_variable_service.proto new file mode 100644 index 000000000..d0197c2bb --- /dev/null +++ b/google/ads/googleads/v11/services/conversion_custom_variable_service.proto @@ -0,0 +1,132 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/conversion_custom_variable.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionCustomVariableServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Conversion Custom Variable service. + +// Service to manage conversion custom variables. +service ConversionCustomVariableService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates conversion custom variables. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ConversionCustomVariableError]() + // [DatabaseError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateConversionCustomVariables(MutateConversionCustomVariablesRequest) returns (MutateConversionCustomVariablesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/conversionCustomVariables:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v11.services.ConversionCustomVariableService.MutateConversionCustomVariables]. +message MutateConversionCustomVariablesRequest { + // Required. The ID of the customer whose conversion custom variables are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion custom + // variables. + repeated ConversionCustomVariableOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update) on a conversion custom variable. +message ConversionCustomVariableOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new conversion + // custom variable. + google.ads.googleads.v11.resources.ConversionCustomVariable create = 1; + + // Update operation: The conversion custom variable is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.ConversionCustomVariable update = 2; + } +} + +// Response message for +// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v11.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 + // 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 MutateConversionCustomVariableResult results = 2; +} + +// The result for the conversion custom variable mutate. +message MutateConversionCustomVariableResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionCustomVariable" + }]; + + // 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.v11.resources.ConversionCustomVariable conversion_custom_variable = 2; +} diff --git a/google/ads/googleads/v11/services/conversion_goal_campaign_config_service.proto b/google/ads/googleads/v11/services/conversion_goal_campaign_config_service.proto new file mode 100644 index 000000000..fb1084ffe --- /dev/null +++ b/google/ads/googleads/v11/services/conversion_goal_campaign_config_service.proto @@ -0,0 +1,103 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionGoalCampaignConfigServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the ConversionGoalCampaignConfig service. + +// Service to manage conversion goal campaign config. +service ConversionGoalCampaignConfigService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes conversion goal campaign config. Operation + // statuses are returned. + rpc MutateConversionGoalCampaignConfigs(MutateConversionGoalCampaignConfigsRequest) returns (MutateConversionGoalCampaignConfigsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfig][]. +message MutateConversionGoalCampaignConfigsRequest { + // Required. The ID of the customer whose custom conversion goals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion goal campaign + // config. + repeated ConversionGoalCampaignConfigOperation operations = 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; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (update) on a conversion goal campaign config. +message ConversionGoalCampaignConfigOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; + + // The mutate operation. + oneof operation { + // Update operation: The conversion goal campaign config is expected to have + // a valid resource name. + google.ads.googleads.v11.resources.ConversionGoalCampaignConfig update = 1; + } +} + +// Response message for a conversion goal campaign config mutate. +message MutateConversionGoalCampaignConfigsResponse { + // All results for the mutate. + repeated MutateConversionGoalCampaignConfigResult results = 1; +} + +// The result for the conversion goal campaign config mutate. +message MutateConversionGoalCampaignConfigResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionGoalCampaignConfig" + }]; + + // 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.v11.resources.ConversionGoalCampaignConfig conversion_goal_campaign_config = 2; +} diff --git a/google/ads/googleads/v11/services/conversion_upload_service.proto b/google/ads/googleads/v11/services/conversion_upload_service.proto new file mode 100644 index 000000000..bad4f9f06 --- /dev/null +++ b/google/ads/googleads/v11/services/conversion_upload_service.proto @@ -0,0 +1,347 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/offline_user_data.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionUploadServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Service to upload conversions. +service ConversionUploadService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Processes the given click conversions. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ConversionUploadError]() + // [HeaderError]() + // [InternalError]() + // [PartialFailureError]() + // [QuotaError]() + // [RequestError]() + rpc UploadClickConversions(UploadClickConversionsRequest) returns (UploadClickConversionsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:uploadClickConversions" + body: "*" + }; + option (google.api.method_signature) = "customer_id,conversions,partial_failure"; + } + + // Processes the given call conversions. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [PartialFailureError]() + // [QuotaError]() + // [RequestError]() + rpc UploadCallConversions(UploadCallConversionsRequest) returns (UploadCallConversionsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:uploadCallConversions" + body: "*" + }; + option (google.api.method_signature) = "customer_id,conversions,partial_failure"; + } +} + +// Request message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v11.services.ConversionUploadService.UploadClickConversions]. +message UploadClickConversionsRequest { + // Required. The ID of the customer performing the upload. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The conversions that are being uploaded. + repeated ClickConversion conversions = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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. + // This should always be set to true. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// Response message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v11.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 + // outside the conversions (for example, auth errors), we return an RPC level + // error. See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + google.rpc.Status partial_failure_error = 1; + + // Returned for successfully processed conversions. Proto will be empty for + // rows that received an error. Results are not returned when validate_only is + // true. + repeated ClickConversionResult results = 2; +} + +// Request message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v11.services.ConversionUploadService.UploadCallConversions]. +message UploadCallConversionsRequest { + // Required. The ID of the customer performing the upload. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The conversions that are being uploaded. + repeated CallConversion conversions = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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. + // This should always be set to true. + // See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// Response message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v11.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 + // outside the conversions (for example, auth errors), we return an RPC level + // error. See + // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + // for more information about partial failure. + google.rpc.Status partial_failure_error = 1; + + // Returned for successfully processed conversions. Proto will be empty for + // rows that received an error. Results are not returned when validate_only is + // true. + repeated CallConversionResult results = 2; +} + +// A click conversion. +message ClickConversion { + // The Google click ID (gclid) associated with this conversion. + optional string gclid = 9; + + // The click identifier for clicks associated with app conversions and + // originating from iOS devices starting with iOS14. + string gbraid = 18; + + // The click identifier for clicks associated with web conversions and + // originating from iOS devices starting with iOS14. + string wbraid = 19; + + // Resource name of the conversion action associated with this conversion. + // Note: Although this resource name consists of a customer id and a + // conversion action id, validation will ignore the customer id and use the + // conversion action id as the sole identifier of the conversion action. + optional string conversion_action = 10; + + // The date time at which the conversion occurred. Must be after + // the click time. The timezone must be specified. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 11; + + // The value of the conversion for the advertiser. + optional double conversion_value = 12; + + // Currency associated with the conversion value. This is the ISO 4217 + // 3-character currency code. For example: USD, EUR. + optional string currency_code = 13; + + // The order ID associated with the conversion. An order id can only be used + // for one conversion per conversion action. + optional string order_id = 14; + + // Additional data about externally attributed conversions. This field + // is required for conversions with an externally attributed conversion + // action, but should not be set otherwise. + ExternalAttributionData external_attribution_data = 7; + + // The custom variables associated with this conversion. + repeated CustomVariable custom_variables = 15; + + // The cart data associated with this conversion. + CartData cart_data = 16; + + // 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.v11.common.UserIdentifier user_identifiers = 17; + + // The environment this conversion was recorded on, for example, App or Web. + google.ads.googleads.v11.enums.ConversionEnvironmentEnum.ConversionEnvironment conversion_environment = 20; +} + +// A call conversion. +message CallConversion { + // The caller id from which this call was placed. Caller id is expected to be + // in E.164 format with preceding '+' sign, for example, "+16502531234". + optional string caller_id = 7; + + // The date time at which the call occurred. The timezone must be specified. + // The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", + // for example, "2019-01-01 12:32:45-08:00". + optional string call_start_date_time = 8; + + // Resource name of the conversion action associated with this conversion. + // Note: Although this resource name consists of a customer id and a + // conversion action id, validation will ignore the customer id and use the + // conversion action id as the sole identifier of the conversion action. + optional string conversion_action = 9; + + // The date time at which the conversion occurred. Must be after the call + // time. The timezone must be specified. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 10; + + // The value of the conversion for the advertiser. + optional double conversion_value = 11; + + // Currency associated with the conversion value. This is the ISO 4217 + // 3-character currency code. For example: USD, EUR. + optional string currency_code = 12; + + // The custom variables associated with this conversion. + repeated CustomVariable custom_variables = 13; +} + +// Contains additional information about externally attributed conversions. +message ExternalAttributionData { + // Represents the fraction of the conversion that is attributed to the + // Google Ads click. + optional double external_attribution_credit = 3; + + // Specifies the attribution model name. + optional string external_attribution_model = 4; +} + +// Identifying information for a successfully processed ClickConversion. +message ClickConversionResult { + // The Google Click ID (gclid) associated with this conversion. + optional string gclid = 4; + + // The click identifier for clicks associated with app conversions and + // originating from iOS devices starting with iOS14. + string gbraid = 8; + + // The click identifier for clicks associated with web conversions and + // originating from iOS devices starting with iOS14. + string wbraid = 9; + + // Resource name of the conversion action associated with this conversion. + optional string conversion_action = 5; + + // The date time at which the conversion occurred. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 6; + + // 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.v11.common.UserIdentifier user_identifiers = 7; +} + +// Identifying information for a successfully processed CallConversionUpload. +message CallConversionResult { + // The caller id from which this call was placed. Caller id is expected to be + // in E.164 format with preceding '+' sign. + optional string caller_id = 5; + + // The date time at which the call occurred. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string call_start_date_time = 6; + + // Resource name of the conversion action associated with this conversion. + optional string conversion_action = 7; + + // The date time at which the conversion occurred. The format is + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string conversion_date_time = 8; +} + +// A custom variable. +message CustomVariable { + // Resource name of the custom variable associated with this conversion. + // Note: Although this resource name consists of a customer id and a + // conversion custom variable id, validation will ignore the customer id and + // use the conversion custom variable id as the sole identifier of the + // conversion custom variable. + string conversion_custom_variable = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionCustomVariable" + }]; + + // The value string of this custom variable. + // The value of the custom variable should not contain private customer data, + // such as email addresses or phone numbers. + string value = 2; +} + +// Contains additional information about cart data. +message CartData { + // Contains data of the items purchased. + message Item { + // The shopping id of the item. Must be equal to the Merchant Center product + // identifier. + string product_id = 1; + + // Number of items sold. + int32 quantity = 2; + + // Unit price excluding tax, shipping, and any transaction + // level discounts. The currency code is the same as that in the + // ClickConversion message. + double unit_price = 3; + } + + // The Merchant Center ID where the items are uploaded. + int64 merchant_id = 6; + + // The country code associated with the feed where the items are uploaded. + string feed_country_code = 2; + + // The language code associated with the feed where the items are uploaded. + string feed_language_code = 3; + + // Sum of all transaction level discounts, such as free shipping and + // coupon discounts for the whole cart. The currency code is the same + // as that in the ClickConversion message. + double local_transaction_cost = 4; + + // Data of the items purchased. + repeated Item items = 5; +} diff --git a/google/ads/googleads/v11/services/conversion_value_rule_service.proto b/google/ads/googleads/v11/services/conversion_value_rule_service.proto new file mode 100644 index 000000000..a4fac3173 --- /dev/null +++ b/google/ads/googleads/v11/services/conversion_value_rule_service.proto @@ -0,0 +1,128 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/conversion_value_rule.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Conversion Value Rule service. + +// Service to manage conversion value rules. +service ConversionValueRuleService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes conversion value rules. Operation statuses are + // returned. + rpc MutateConversionValueRules(MutateConversionValueRulesRequest) returns (MutateConversionValueRulesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/conversionValueRules:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v11.services.ConversionValueRuleService.MutateConversionValueRules]. +message MutateConversionValueRulesRequest { + // Required. The ID of the customer whose conversion value rules are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion value rules. + repeated ConversionValueRuleOperation 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 = 5; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 3; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (create, update, remove) on a conversion value rule. +message ConversionValueRuleOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new conversion + // value rule. + google.ads.googleads.v11.resources.ConversionValueRule create = 1; + + // Update operation: The conversion value rule is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.ConversionValueRule update = 2; + + // Remove operation: A resource name for the removed conversion value rule + // is expected, in this format: + // + // `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRule" + }]; + } +} + +// Response message for +// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v11.services.ConversionValueRuleService.MutateConversionValueRules]. +message MutateConversionValueRulesResponse { + // All results for the mutate. + repeated MutateConversionValueRuleResult results = 2; + + // 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; +} + +// The result for the conversion value rule mutate. +message MutateConversionValueRuleResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRule" + }]; + + // 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.v11.resources.ConversionValueRule conversion_value_rule = 2; +} diff --git a/google/ads/googleads/v11/services/conversion_value_rule_set_service.proto b/google/ads/googleads/v11/services/conversion_value_rule_set_service.proto new file mode 100644 index 000000000..1f888dbb5 --- /dev/null +++ b/google/ads/googleads/v11/services/conversion_value_rule_set_service.proto @@ -0,0 +1,128 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/conversion_value_rule_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ConversionValueRuleSetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Conversion Value Rule Set service. + +// Service to manage conversion value rule sets. +service ConversionValueRuleSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes conversion value rule sets. Operation statuses + // are returned. + rpc MutateConversionValueRuleSets(MutateConversionValueRuleSetsRequest) returns (MutateConversionValueRuleSetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/conversionValueRuleSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v11.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. +message MutateConversionValueRuleSetsRequest { + // Required. The ID of the customer whose conversion value rule sets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual conversion value rule sets. + repeated ConversionValueRuleSetOperation 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 = 5; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 3; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (create, update, remove) on a conversion value rule set. +message ConversionValueRuleSetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new conversion + // value rule set. + google.ads.googleads.v11.resources.ConversionValueRuleSet create = 1; + + // Update operation: The conversion value rule set is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.ConversionValueRuleSet update = 2; + + // Remove operation: A resource name for the removed conversion value rule + // set is expected, in this format: + // + // `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRuleSet" + }]; + } +} + +// Response message for +// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v11.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. +message MutateConversionValueRuleSetsResponse { + // All results for the mutate. + repeated MutateConversionValueRuleSetResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the conversion value rule set mutate. +message MutateConversionValueRuleSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ConversionValueRuleSet" + }]; + + // 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.v11.resources.ConversionValueRuleSet conversion_value_rule_set = 2; +} diff --git a/google/ads/googleads/v11/services/custom_audience_service.proto b/google/ads/googleads/v11/services/custom_audience_service.proto new file mode 100644 index 000000000..ac9ba1a0a --- /dev/null +++ b/google/ads/googleads/v11/services/custom_audience_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomAudienceServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Custom Audience service. + +// Service to manage custom audiences. +service CustomAudienceService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates custom audiences. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CustomAudienceError]() + // [CustomInterestError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [OperationAccessDeniedError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomAudiences(MutateCustomAudiencesRequest) returns (MutateCustomAudiencesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customAudiences:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomAudienceService.MutateCustomAudiences][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual custom audiences. + repeated CustomAudienceOperation operations = 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 operation (create, update) on a custom audience. +message CustomAudienceOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new custom + // audience. + google.ads.googleads.v11.resources.CustomAudience create = 1; + + // Update operation: The custom audience is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.CustomAudience update = 2; + + // Remove operation: A resource name for the removed custom audience is + // expected, in this format: + // + // `customers/{customer_id}/customAudiences/{custom_audience_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomAudience" + }]; + } +} + +// Response message for custom audience mutate. +message MutateCustomAudiencesResponse { + // All results for the mutate. + repeated MutateCustomAudienceResult results = 1; +} + +// The result for the custom audience mutate. +message MutateCustomAudienceResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomAudience" + }]; +} diff --git a/google/ads/googleads/v11/services/custom_conversion_goal_service.proto b/google/ads/googleads/v11/services/custom_conversion_goal_service.proto new file mode 100644 index 000000000..64809abcf --- /dev/null +++ b/google/ads/googleads/v11/services/custom_conversion_goal_service.proto @@ -0,0 +1,114 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomConversionGoalServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CustomConversionGoal service. + +// Service to manage custom conversion goal. +service CustomConversionGoalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes custom conversion goals. Operation statuses + // are returned. + rpc MutateCustomConversionGoals(MutateCustomConversionGoalsRequest) returns (MutateCustomConversionGoalsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customConversionGoals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomConversionGoalService.MutateCustomConversionGoals][google.ads.googleads.v11.services.CustomConversionGoalService.MutateCustomConversionGoals]. +message MutateCustomConversionGoalsRequest { + // Required. The ID of the customer whose custom conversion goals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual custom conversion goal. + repeated CustomConversionGoalOperation operations = 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; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; +} + +// A single operation (create, remove) on a custom conversion goal. +message CustomConversionGoalOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new custom + // conversion goal + google.ads.googleads.v11.resources.CustomConversionGoal create = 1; + + // Update operation: The custom conversion goal is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.CustomConversionGoal update = 2; + + // Remove operation: A resource name for the removed custom conversion goal + // is expected, in this format: + // + // 'customers/{customer_id}/conversionActions/{ConversionGoal.custom_goal_config.conversion_type_ids}' + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomConversionGoal" + }]; + } +} + +// Response message for a custom conversion goal mutate. +message MutateCustomConversionGoalsResponse { + // All results for the mutate. + repeated MutateCustomConversionGoalResult results = 1; +} + +// The result for the custom conversion goal mutate. +message MutateCustomConversionGoalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomConversionGoal" + }]; + + // 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.v11.resources.CustomConversionGoal custom_conversion_goal = 2; +} diff --git a/google/ads/googleads/v11/services/custom_interest_service.proto b/google/ads/googleads/v11/services/custom_interest_service.proto new file mode 100644 index 000000000..b497de7d2 --- /dev/null +++ b/google/ads/googleads/v11/services/custom_interest_service.proto @@ -0,0 +1,107 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomInterestServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Custom Interest service. + +// Service to manage custom interests. +service CustomInterestService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates custom interests. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CriterionError]() + // [CustomInterestError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RequestError]() + // [StringLengthError]() + rpc MutateCustomInterests(MutateCustomInterestsRequest) returns (MutateCustomInterestsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customInterests:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomInterestService.MutateCustomInterests][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual custom interests. + repeated CustomInterestOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// A single operation (create, update) on a custom interest. +message CustomInterestOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new custom + // interest. + google.ads.googleads.v11.resources.CustomInterest create = 1; + + // Update operation: The custom interest is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.CustomInterest update = 2; + } +} + +// Response message for custom interest mutate. +message MutateCustomInterestsResponse { + // All results for the mutate. + repeated MutateCustomInterestResult results = 2; +} + +// The result for the custom interest mutate. +message MutateCustomInterestResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomInterest" + }]; +} diff --git a/google/ads/googleads/v11/services/customer_asset_service.proto b/google/ads/googleads/v11/services/customer_asset_service.proto new file mode 100644 index 000000000..db29fb8dd --- /dev/null +++ b/google/ads/googleads/v11/services/customer_asset_service.proto @@ -0,0 +1,137 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/customer_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerAssetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CustomerAsset service. + +// Service to manage customer assets. +service CustomerAssetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes customer assets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AssetLinkError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerAssets(MutateCustomerAssetsRequest) returns (MutateCustomerAssetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerAssets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomerAssetService.MutateCustomerAssets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual customer assets. + repeated CustomerAssetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a customer asset. +message CustomerAssetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer + // asset. + google.ads.googleads.v11.resources.CustomerAsset create = 1; + + // Update operation: The customer asset is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.CustomerAsset update = 3; + + // Remove operation: A resource name for the removed customer asset is + // expected, in this format: + // + // `customers/{customer_id}/customerAssets/{asset_id}~{field_type}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerAsset" + }]; + } +} + +// Response message for a customer asset mutate. +message MutateCustomerAssetsResponse { + // 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 MutateCustomerAssetResult results = 2; +} + +// The result for the customer asset mutate. +message MutateCustomerAssetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerAsset" + }]; + + // 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.v11.resources.CustomerAsset customer_asset = 2; +} diff --git a/google/ads/googleads/v11/services/customer_client_link_service.proto b/google/ads/googleads/v11/services/customer_client_link_service.proto new file mode 100644 index 000000000..e5ac1dee5 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_client_link_service.proto @@ -0,0 +1,104 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerClientLinkServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Service to manage customer client links. +service CustomerClientLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates a customer client link. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [ManagerLinkError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerClientLink(MutateCustomerClientLinkRequest) returns (MutateCustomerClientLinkResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerClientLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v11.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]; + + // Required. The operation to perform on the individual CustomerClientLink. + CustomerClientLinkOperation 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 operation (create, update) on a CustomerClientLink. +message CustomerClientLinkOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new link. + google.ads.googleads.v11.resources.CustomerClientLink create = 1; + + // Update operation: The link is expected to have a valid resource name. + google.ads.googleads.v11.resources.CustomerClientLink update = 2; + } +} + +// Response message for a CustomerClientLink mutate. +message MutateCustomerClientLinkResponse { + // A result that identifies the resource affected by the mutate request. + MutateCustomerClientLinkResult result = 1; +} + +// The result for a single customer client link mutate. +message MutateCustomerClientLinkResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerClientLink" + }]; +} diff --git a/google/ads/googleads/v11/services/customer_conversion_goal_service.proto b/google/ads/googleads/v11/services/customer_conversion_goal_service.proto new file mode 100644 index 000000000..6f710ed9a --- /dev/null +++ b/google/ads/googleads/v11/services/customer_conversion_goal_service.proto @@ -0,0 +1,92 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerConversionGoalServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CustomerConversionGoal service. + +// Service to manage customer conversion goal. +service CustomerConversionGoalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes customer conversion goals. Operation statuses + // are returned. + rpc MutateCustomerConversionGoals(MutateCustomerConversionGoalsRequest) returns (MutateCustomerConversionGoalsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerConversionGoals:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomerConversionGoalService.MutateCustomerConversionGoals][google.ads.googleads.v11.services.CustomerConversionGoalService.MutateCustomerConversionGoals]. +message MutateCustomerConversionGoalsRequest { + // Required. The ID of the customer whose customer conversion goals are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customer conversion goal. + repeated CustomerConversionGoalOperation operations = 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 operation (update) on a customer conversion goal. +message CustomerConversionGoalOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; + + // The mutate operation. + oneof operation { + // Update operation: The customer conversion goal is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.CustomerConversionGoal update = 1; + } +} + +// Response message for a customer conversion goal mutate. +message MutateCustomerConversionGoalsResponse { + // All results for the mutate. + repeated MutateCustomerConversionGoalResult results = 1; +} + +// The result for the customer conversion goal mutate. +message MutateCustomerConversionGoalResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerConversionGoal" + }]; +} diff --git a/google/ads/googleads/v11/services/customer_customizer_service.proto b/google/ads/googleads/v11/services/customer_customizer_service.proto new file mode 100644 index 000000000..d4373e631 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_customizer_service.proto @@ -0,0 +1,118 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerCustomizerServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CustomerCustomizer service. + +// Service to manage customer customizer +service CustomerCustomizerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes customer customizers. Operation statuses are + // returned. + rpc MutateCustomerCustomizers(MutateCustomerCustomizersRequest) returns (MutateCustomerCustomizersResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/CustomerCustomizers:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomerCustomizerService.MutateCustomerCustomizers][google.ads.googleads.v11.services.CustomerCustomizerService.MutateCustomerCustomizers]. +message MutateCustomerCustomizersRequest { + // Required. The ID of the customer whose customer customizers are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customer customizers. + repeated CustomerCustomizerOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message CustomerCustomizerOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer + // customizer + google.ads.googleads.v11.resources.CustomerCustomizer create = 1; + + // Remove operation: A resource name for the removed customer customizer is + // expected, in this format: + // `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerCustomizer" + }]; + } +} + +// Response message for an customizer attribute mutate. +message MutateCustomerCustomizersResponse { + // All results for the mutate. + repeated MutateCustomerCustomizerResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the customizer attribute mutate. +message MutateCustomerCustomizerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerCustomizer" + }]; + + // 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.v11.resources.CustomerCustomizer customer_customizer = 2; +} diff --git a/google/ads/googleads/v11/services/customer_extension_setting_service.proto b/google/ads/googleads/v11/services/customer_extension_setting_service.proto new file mode 100644 index 000000000..ee4d30272 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_extension_setting_service.proto @@ -0,0 +1,156 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/customer_extension_setting.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerExtensionSettingServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CustomerExtensionSetting service. + +// Service to manage customer extension settings. +service CustomerExtensionSettingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes customer extension settings. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [ExtensionSettingError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateCustomerExtensionSettings(MutateCustomerExtensionSettingsRequest) returns (MutateCustomerExtensionSettingsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerExtensionSettings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v11.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings]. +message MutateCustomerExtensionSettingsRequest { + // Required. The ID of the customer whose customer extension settings are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customer extension + // settings. + repeated CustomerExtensionSettingOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a customer extension setting. +message CustomerExtensionSettingOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer + // extension setting. + google.ads.googleads.v11.resources.CustomerExtensionSetting create = 1; + + // Update operation: The customer extension setting is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.CustomerExtensionSetting update = 2; + + // Remove operation: A resource name for the removed customer extension + // setting is expected, in this format: + // + // `customers/{customer_id}/customerExtensionSettings/{extension_type}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerExtensionSetting" + }]; + } +} + +// Response message for a customer extension setting mutate. +message MutateCustomerExtensionSettingsResponse { + // 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 MutateCustomerExtensionSettingResult results = 2; +} + +// The result for the customer extension setting mutate. +message MutateCustomerExtensionSettingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerExtensionSetting" + }]; + + // 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.v11.resources.CustomerExtensionSetting customer_extension_setting = 2; +} diff --git a/google/ads/googleads/v11/services/customer_feed_service.proto b/google/ads/googleads/v11/services/customer_feed_service.proto new file mode 100644 index 000000000..84351ea60 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_feed_service.proto @@ -0,0 +1,149 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/customer_feed.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerFeedServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CustomerFeed service. + +// Service to manage customer feeds. +service CustomerFeedService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes customer feeds. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CustomerFeedError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionError]() + // [FunctionParsingError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateCustomerFeeds(MutateCustomerFeedsRequest) returns (MutateCustomerFeedsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerFeeds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual customer feeds. + repeated CustomerFeedOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on a customer feed. +message CustomerFeedOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer feed. + google.ads.googleads.v11.resources.CustomerFeed create = 1; + + // Update operation: The customer feed is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.CustomerFeed update = 2; + + // Remove operation: A resource name for the removed customer feed is + // expected, in this format: + // + // `customers/{customer_id}/customerFeeds/{feed_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerFeed" + }]; + } +} + +// Response message for a customer feed mutate. +message MutateCustomerFeedsResponse { + // 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 MutateCustomerFeedResult results = 2; +} + +// The result for the customer feed mutate. +message MutateCustomerFeedResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerFeed" + }]; + + // 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.v11.resources.CustomerFeed customer_feed = 2; +} diff --git a/google/ads/googleads/v11/services/customer_label_service.proto b/google/ads/googleads/v11/services/customer_label_service.proto new file mode 100644 index 000000000..246831b57 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_label_service.proto @@ -0,0 +1,119 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerLabelServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Customer Label service. + +// Service to manage labels on customers. +service CustomerLabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates and removes customer-label relationships. + // Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [HeaderError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerLabels(MutateCustomerLabelsRequest) returns (MutateCustomerLabelsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerLabels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v11.services.CustomerLabelService.MutateCustomerLabels]. +message MutateCustomerLabelsRequest { + // Required. ID of the customer whose customer-label relationships are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on customer-label relationships. + repeated CustomerLabelOperation 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; +} + +// A single operation (create, remove) on a customer-label relationship. +message CustomerLabelOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customer-label + // relationship. + google.ads.googleads.v11.resources.CustomerLabel create = 1; + + // Remove operation: A resource name for the customer-label relationship + // being removed, in this format: + // + // `customers/{customer_id}/customerLabels/{label_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerLabel" + }]; + } +} + +// Response message for a customer labels mutate. +message MutateCustomerLabelsResponse { + // 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 MutateCustomerLabelResult results = 2; +} + +// The result for a customer label mutate. +message MutateCustomerLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerLabel" + }]; +} diff --git a/google/ads/googleads/v11/services/customer_manager_link_service.proto b/google/ads/googleads/v11/services/customer_manager_link_service.proto new file mode 100644 index 000000000..f11567a58 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_manager_link_service.proto @@ -0,0 +1,157 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerManagerLinkServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Service to manage customer-manager links. +service CustomerManagerLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Updates customer manager links. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [ManagerLinkError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerManagerLink(MutateCustomerManagerLinkRequest) returns (MutateCustomerManagerLinkResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerManagerLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Moves a client customer to a new manager customer. + // This simplifies the complex request that requires two operations to move + // a client customer to a new manager, for example: + // 1. Update operation with Status INACTIVE (previous manager) and, + // 2. Update operation with Status ACTIVE (new manager). + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MoveManagerLink(MoveManagerLinkRequest) returns (MoveManagerLinkResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + body: "*" + }; + option (google.api.method_signature) = "customer_id,previous_customer_manager_link,new_manager"; + } +} + +// Request message for [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v11.services.CustomerManagerLinkService.MutateCustomerManagerLink]. +message MutateCustomerManagerLinkRequest { + // Required. The ID of the customer whose customer manager links are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customer manager links. + repeated CustomerManagerLinkOperation operations = 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; +} + +// Request message for [CustomerManagerLinkService.MoveManagerLink][google.ads.googleads.v11.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]; + + // Required. The resource name of the previous CustomerManagerLink. + // The resource name has the form: + // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}` + string previous_customer_manager_link = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource name of the new manager customer that the client wants to move + // to. Customer resource names have the format: "customers/{customer_id}" + string new_manager = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; +} + +// Updates the status of a CustomerManagerLink. +// The following actions are possible: +// 1. Update operation with status ACTIVE accepts a pending invitation. +// 2. Update operation with status REFUSED declines a pending invitation. +// 3. Update operation with status INACTIVE terminates link to manager. +message CustomerManagerLinkOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Update operation: The link is expected to have a valid resource name. + google.ads.googleads.v11.resources.CustomerManagerLink update = 2; + } +} + +// Response message for a CustomerManagerLink mutate. +message MutateCustomerManagerLinkResponse { + // A result that identifies the resource affected by the mutate request. + repeated MutateCustomerManagerLinkResult results = 1; +} + +// Response message for a CustomerManagerLink moveManagerLink. +message MoveManagerLinkResponse { + // Returned for successful operations. Represents a CustomerManagerLink + // resource of the newly created link between client customer and new manager + // customer. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerManagerLink" + }]; +} + +// The result for the customer manager link mutate. +message MutateCustomerManagerLinkResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerManagerLink" + }]; +} diff --git a/google/ads/googleads/v11/services/customer_negative_criterion_service.proto b/google/ads/googleads/v11/services/customer_negative_criterion_service.proto new file mode 100644 index 000000000..9d29a06f2 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_negative_criterion_service.proto @@ -0,0 +1,128 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerNegativeCriterionServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Customer Negative Criterion service. + +// Service to manage customer negative criteria. +service CustomerNegativeCriterionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes criteria. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CriterionError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerNegativeCriteria(MutateCustomerNegativeCriteriaRequest) returns (MutateCustomerNegativeCriteriaResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerNegativeCriteria:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual criteria. + repeated CustomerNegativeCriterionOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create or remove) on a customer level negative criterion. +message CustomerNegativeCriterionOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new criterion. + google.ads.googleads.v11.resources.CustomerNegativeCriterion create = 1; + + // Remove operation: A resource name for the removed criterion is expected, + // in this format: + // + // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerNegativeCriterion" + }]; + } +} + +// Response message for customer negative criterion mutate. +message MutateCustomerNegativeCriteriaResponse { + // 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 MutateCustomerNegativeCriteriaResult results = 2; +} + +// The result for the criterion mutate. +message MutateCustomerNegativeCriteriaResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerNegativeCriterion" + }]; + + // 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.v11.resources.CustomerNegativeCriterion customer_negative_criterion = 2; +} diff --git a/google/ads/googleads/v11/services/customer_service.proto b/google/ads/googleads/v11/services/customer_service.proto new file mode 100644 index 000000000..eccbbef13 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_service.proto @@ -0,0 +1,192 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/access_role.proto"; +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Customer service. + +// Service to manage customers. +service CustomerService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Updates a customer. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + // [UrlFieldError]() + rpc MutateCustomer(MutateCustomerRequest) returns (MutateCustomerResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } + + // Returns resource names of customers directly accessible by the + // user authenticating the call. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListAccessibleCustomers(ListAccessibleCustomersRequest) returns (ListAccessibleCustomersResponse) { + option (google.api.http) = { + get: "/v11/customers:listAccessibleCustomers" + }; + } + + // Creates a new client under manager. The new client customer is returned. + // + // List of thrown errors: + // [AccessInvitationError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [CurrencyCodeError]() + // [HeaderError]() + // [InternalError]() + // [ManagerLinkError]() + // [QuotaError]() + // [RequestError]() + // [StringLengthError]() + // [TimeZoneError]() + rpc CreateCustomerClient(CreateCustomerClientRequest) returns (CreateCustomerClientResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:createCustomerClient" + body: "*" + }; + option (google.api.method_signature) = "customer_id,customer_client"; + } +} + +// Request message for [CustomerService.MutateCustomer][google.ads.googleads.v11.services.CustomerService.MutateCustomer]. +message MutateCustomerRequest { + // Required. The ID of the customer being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform on the customer + CustomerOperation operation = 4 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 5; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 6; +} + +// Request message for [CustomerService.CreateCustomerClient][google.ads.googleads.v11.services.CustomerService.CreateCustomerClient]. +message CreateCustomerClientRequest { + // Required. The ID of the Manager under whom client customer is being created. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The new client customer to create. The resource name on this customer + // will be ignored. + google.ads.googleads.v11.resources.Customer customer_client = 2 [(google.api.field_behavior) = REQUIRED]; + + // Email address of the user who should be invited on the created client + // customer. Accessible only to customers on the allow-list. + optional string email_address = 5; + + // The proposed role of user on the created client customer. + // Accessible only to customers on the allow-list. + google.ads.googleads.v11.enums.AccessRoleEnum.AccessRole access_role = 4; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 6; +} + +// A single update on a customer. +message CustomerOperation { + // Mutate operation. Only updates are supported for customer. + google.ads.googleads.v11.resources.Customer update = 1; + + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; +} + +// Response message for CreateCustomerClient mutate. +message CreateCustomerClientResponse { + // The resource name of the newly created customer. Customer resource names + // have the form: `customers/{customer_id}`. + string resource_name = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + }]; + + // Link for inviting user to access the created customer. Accessible to + // allowlisted customers only. + string invitation_link = 3; +} + +// Response message for customer mutate. +message MutateCustomerResponse { + // Result for the mutate. + MutateCustomerResult result = 2; +} + +// The result for the customer mutate. +message MutateCustomerResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + }]; + + // 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.v11.resources.Customer customer = 2; +} + +// Request message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v11.services.CustomerService.ListAccessibleCustomers]. +message ListAccessibleCustomersRequest { + +} + +// Response message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v11.services.CustomerService.ListAccessibleCustomers]. +message ListAccessibleCustomersResponse { + // Resource name of customers directly accessible by the + // user authenticating the call. + repeated string resource_names = 1; +} diff --git a/google/ads/googleads/v11/services/customer_user_access_invitation_service.proto b/google/ads/googleads/v11/services/customer_user_access_invitation_service.proto new file mode 100644 index 000000000..9014afa53 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_user_access_invitation_service.proto @@ -0,0 +1,101 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessInvitationServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CustomerUserAccessInvitation service. + +// This service manages the access invitation extended to users for a given +// customer. +service CustomerUserAccessInvitationService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes an access invitation. + // + // List of thrown errors: + // [AccessInvitationError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerUserAccessInvitation(MutateCustomerUserAccessInvitationRequest) returns (MutateCustomerUserAccessInvitationResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for +// [CustomerUserAccessInvitation.MutateCustomerUserAccessInvitation][] +message MutateCustomerUserAccessInvitationRequest { + // Required. The ID of the customer whose access invitation is being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform on the access invitation + CustomerUserAccessInvitationOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single operation (create or remove) on customer user access invitation. +message CustomerUserAccessInvitationOperation { + // The mutate operation + oneof operation { + // Create operation: No resource name is expected for the new access + // invitation. + google.ads.googleads.v11.resources.CustomerUserAccessInvitation create = 1; + + // Remove operation: A resource name for the revoke invitation is + // expected, in this format: + // + // `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccessInvitation" + }]; + } +} + +// Response message for access invitation mutate. +message MutateCustomerUserAccessInvitationResponse { + // Result for the mutate. + MutateCustomerUserAccessInvitationResult result = 1; +} + +// The result for the access invitation mutate. +message MutateCustomerUserAccessInvitationResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccessInvitation" + }]; +} diff --git a/google/ads/googleads/v11/services/customer_user_access_service.proto b/google/ads/googleads/v11/services/customer_user_access_service.proto new file mode 100644 index 000000000..3c5cb0c97 --- /dev/null +++ b/google/ads/googleads/v11/services/customer_user_access_service.proto @@ -0,0 +1,105 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerUserAccessServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// This service manages the permissions of a user on a given customer. +service CustomerUserAccessService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Updates, removes permission of a user on a given customer. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CustomerUserAccessError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateCustomerUserAccess(MutateCustomerUserAccessRequest) returns (MutateCustomerUserAccessResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customerUserAccesses:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Mutate Request for +// [CustomerUserAccessService.MutateCustomerUserAccess][google.ads.googleads.v11.services.CustomerUserAccessService.MutateCustomerUserAccess]. +message MutateCustomerUserAccessRequest { + // Required. The ID of the customer being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform on the customer + CustomerUserAccessOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single operation (update, remove) on customer user access. +message CustomerUserAccessOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 3; + + // The mutate operation. + oneof operation { + // Update operation: The customer user access is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.CustomerUserAccess update = 1; + + // Remove operation: A resource name for the removed access is + // expected, in this format: + // + // `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccess" + }]; + } +} + +// Response message for customer user access mutate. +message MutateCustomerUserAccessResponse { + // Result for the mutate. + MutateCustomerUserAccessResult result = 1; +} + +// The result for the customer user access mutate. +message MutateCustomerUserAccessResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerUserAccess" + }]; +} diff --git a/google/ads/googleads/v11/services/customizer_attribute_service.proto b/google/ads/googleads/v11/services/customizer_attribute_service.proto new file mode 100644 index 000000000..5c575c288 --- /dev/null +++ b/google/ads/googleads/v11/services/customizer_attribute_service.proto @@ -0,0 +1,122 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/customizer_attribute.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomizerAttributeServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the CustomizerAttribute service. + +// Service to manage customizer attribute +service CustomizerAttributeService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes customizer attributes. Operation statuses are + // returned. + rpc MutateCustomizerAttributes(MutateCustomizerAttributesRequest) returns (MutateCustomizerAttributesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/customizerAttributes:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [CustomizerAttributeService.MutateCustomizerAttributes][google.ads.googleads.v11.services.CustomizerAttributeService.MutateCustomizerAttributes]. +message MutateCustomizerAttributesRequest { + // Required. The ID of the customer whose customizer attributes are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual customizer attributes. + repeated CustomizerAttributeOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an customizer attribute. +message CustomizerAttributeOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new customizer + // attribute + google.ads.googleads.v11.resources.CustomizerAttribute create = 1; + + // Remove operation: A resource name for the removed customizer attribute is + // expected, in this format: + // `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + }]; + } +} + +// Response message for an customizer attribute mutate. +message MutateCustomizerAttributesResponse { + // All results for the mutate. + repeated MutateCustomizerAttributeResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the customizer attribute mutate. +message MutateCustomizerAttributeResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomizerAttribute" + }]; + + // 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.v11.resources.CustomizerAttribute customizer_attribute = 2; +} diff --git a/google/ads/googleads/v11/services/experiment_arm_service.proto b/google/ads/googleads/v11/services/experiment_arm_service.proto new file mode 100644 index 000000000..6d3429bac --- /dev/null +++ b/google/ads/googleads/v11/services/experiment_arm_service.proto @@ -0,0 +1,134 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/experiment_arm.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentArmServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Experiment Arm service. + +// Service to manage experiment arms. +service ExperimentArmService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes experiment arms. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentArmError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateExperimentArms(MutateExperimentArmsRequest) returns (MutateExperimentArmsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/experimentArms:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [ExperimentArmService.MutateExperimentArms][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual experiment arm. + repeated ExperimentArmOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation on an experiment arm. +message ExperimentArmOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation + google.ads.googleads.v11.resources.ExperimentArm create = 1; + + // Update operation: The experiment arm is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.ExperimentArm update = 2; + + // Remove operation: The experiment arm is expected to have a valid + // resource name, in this format: + // + // `customers/{customer_id}/experiments/{campaign_experiment_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExperimentArm" + }]; + } +} + +// Response message for experiment arm mutate. +message MutateExperimentArmsResponse { + // 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 MutateExperimentArmResult results = 2; +} + +// The result for the experiment arm mutate. +message MutateExperimentArmResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExperimentArm" + }]; + + // 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.v11.resources.ExperimentArm experiment_arm = 2; +} diff --git a/google/ads/googleads/v11/services/experiment_service.proto b/google/ads/googleads/v11/services/experiment_service.proto new file mode 100644 index 000000000..9700d9ed7 --- /dev/null +++ b/google/ads/googleads/v11/services/experiment_service.proto @@ -0,0 +1,390 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/experiment.proto"; +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/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ExperimentServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Experiment service. + +// Service to manage experiments. +service ExperimentService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes experiments. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateExperiments(MutateExperimentsRequest) returns (MutateExperimentsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/experiments:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Immediately ends an experiment, changing the experiment's scheduled + // end date and without waiting for end of day. End date is updated to be the + // time of the request. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc EndExperiment(EndExperimentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v11/{experiment=customers/*/experiments/*}:endExperiment" + body: "*" + }; + option (google.api.method_signature) = "experiment"; + } + + // Returns all errors that occurred during the last Experiment update (either + // scheduling or promotion). + // Supports standard list paging. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListExperimentAsyncErrors(ListExperimentAsyncErrorsRequest) returns (ListExperimentAsyncErrorsResponse) { + option (google.api.http) = { + get: "/v11/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + }; + option (google.api.method_signature) = "resource_name"; + } + + // Graduates an experiment to a full campaign. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc GraduateExperiment(GraduateExperimentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v11/{experiment=customers/*/experiments/*}:graduateExperiment" + body: "*" + }; + option (google.api.method_signature) = "experiment,campaign_budget_mappings"; + } + + // Schedule an experiment. The in design campaign + // will be converted into a real campaign (called the experiment campaign) + // that will begin serving ads if successfully created. + // + // The experiment is scheduled immediately with status INITIALIZING. + // This method returns a long running operation that tracks the forking of the + // in design campaign. If the forking fails, a list of errors can be retrieved + // using the ListExperimentAsyncErrors method. The operation's + // metadata will be a string containing the resource name of the created + // experiment. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [DatabaseError]() + // [DateError]() + // [DateRangeError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc ScheduleExperiment(ScheduleExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v11/{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.v11.services.ScheduleExperimentMetadata" + }; + } + + // Promotes the trial campaign thus applying changes in the trial campaign + // to the base campaign. + // This method returns a long running operation that tracks the promotion of + // the experiment campaign. If it fails, a list of errors can be retrieved + // using the ListExperimentAsyncErrors method. The operation's + // metadata will be a string containing the resource name of the created + // experiment. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ExperimentError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc PromoteExperiment(PromoteExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v11/{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.v11.services.PromoteExperimentMetadata" + }; + } +} + +// Request message for [ExperimentService.MutateExperiments][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual experiments. + repeated ExperimentOperation 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; +} + +// A single operation on an experiment. +message ExperimentOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation + google.ads.googleads.v11.resources.Experiment create = 1; + + // Update operation: The experiment is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.Experiment update = 2; + + // Remove operation: The experiment is expected to have a valid + // resource name, in this format: + // + // `customers/{customer_id}/experiments/{campaign_experiment_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + }]; + } +} + +// Response message for experiment mutate. +message MutateExperimentsResponse { + // 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 MutateExperimentResult results = 2; +} + +// The result for the campaign experiment mutate. +message MutateExperimentResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + }]; +} + +// Request message for [ExperimentService.EndExperiment][google.ads.googleads.v11.services.ExperimentService.EndExperiment]. +message EndExperimentRequest { + // Required. The resource name of the campaign experiment to end. + string experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// Request message for +// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v11.services.ExperimentService.ListExperimentAsyncErrors]. +message ListExperimentAsyncErrorsRequest { + // Required. The name of the experiment from which to retrieve the async + // errors. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When a page request is too large, the server may decide to + // further limit the number of returned resources. + // The maximum page size is 1000. + int32 page_size = 3; +} + +// Response message for +// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v11.services.ExperimentService.ListExperimentAsyncErrors]. +message ListExperimentAsyncErrorsResponse { + // details of the errors when performing the asynchronous operation. + repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; +} + +// Request message for [ExperimentService.GraduateExperiment][google.ads.googleads.v11.services.ExperimentService.GraduateExperiment]. +message GraduateExperimentRequest { + // Required. The experiment to be graduated. + string experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // Required. List of campaign budget mappings for graduation. Each campaign that + // appears here will graduate, and will be assigned a new budget that is + // paired with it in the mapping. The maximum size is one. + repeated CampaignBudgetMapping campaign_budget_mappings = 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; +} + +// The mapping of experiment campaign and budget to be graduated. +message CampaignBudgetMapping { + // Required. The experiment campaign to graduate. + string experiment_campaign = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Required. The budget that should be attached to the graduating experiment campaign. + string campaign_budget = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignBudget" + } + ]; +} + +// Request message for [ExperimentService.ScheduleExperiment][google.ads.googleads.v11.services.ExperimentService.ScheduleExperiment]. +message ScheduleExperimentRequest { + // Required. The scheduled experiment. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// The metadata of the scheduled experiment. +message ScheduleExperimentMetadata { + // Required. The scheduled experiment. + string experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; +} + +// Request message for [ExperimentService.PromoteExperiment][google.ads.googleads.v11.services.ExperimentService.PromoteExperiment]. +message PromoteExperimentRequest { + // Required. The resource name of the experiment to promote. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// The metadata of the promoted experiment. +message PromoteExperimentMetadata { + // Required. The promoted experiment. + string experiment = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Experiment" + } + ]; +} diff --git a/google/ads/googleads/v11/services/extension_feed_item_service.proto b/google/ads/googleads/v11/services/extension_feed_item_service.proto new file mode 100644 index 000000000..8ed052cdb --- /dev/null +++ b/google/ads/googleads/v11/services/extension_feed_item_service.proto @@ -0,0 +1,152 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/extension_feed_item.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionFeedItemServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the ExtensionFeedItem service. + +// Service to manage extension feed items. +service ExtensionFeedItemService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes extension feed items. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CountryCodeError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [ExtensionFeedItemError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [ImageError]() + // [InternalError]() + // [LanguageCodeError]() + // [MutateError]() + // [NewResourceCreationError]() + // [OperationAccessDeniedError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateExtensionFeedItems(MutateExtensionFeedItemsRequest) returns (MutateExtensionFeedItemsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/extensionFeedItems:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v11.services.ExtensionFeedItemService.MutateExtensionFeedItems]. +message MutateExtensionFeedItemsRequest { + // Required. The ID of the customer whose extension feed items are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual extension feed items. + repeated ExtensionFeedItemOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an extension feed item. +message ExtensionFeedItemOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new extension + // feed item. + google.ads.googleads.v11.resources.ExtensionFeedItem create = 1; + + // Update operation: The extension feed item is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.ExtensionFeedItem update = 2; + + // Remove operation: A resource name for the removed extension feed item + // is expected, in this format: + // + // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + } +} + +// Response message for an extension feed item mutate. +message MutateExtensionFeedItemsResponse { + // 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 MutateExtensionFeedItemResult results = 2; +} + +// The result for the extension feed item mutate. +message MutateExtensionFeedItemResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ExtensionFeedItem" + }]; + + // 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.v11.resources.ExtensionFeedItem extension_feed_item = 2; +} diff --git a/google/ads/googleads/v11/services/feed_item_service.proto b/google/ads/googleads/v11/services/feed_item_service.proto new file mode 100644 index 000000000..55cb78813 --- /dev/null +++ b/google/ads/googleads/v11/services/feed_item_service.proto @@ -0,0 +1,151 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/feed_item.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the FeedItem service. + +// Service to manage feed items. +service FeedItemService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes feed items. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [CriterionError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FeedItemError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + rpc MutateFeedItems(MutateFeedItemsRequest) returns (MutateFeedItemsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/feedItems:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedItemService.MutateFeedItems][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual feed items. + repeated FeedItemOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an feed item. +message FeedItemOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed item. + google.ads.googleads.v11.resources.FeedItem create = 1; + + // Update operation: The feed item is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.FeedItem update = 2; + + // Remove operation: A resource name for the removed feed item is + // expected, in this format: + // + // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + }]; + } +} + +// Response message for an feed item mutate. +message MutateFeedItemsResponse { + // 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 MutateFeedItemResult results = 2; +} + +// The result for the feed item mutate. +message MutateFeedItemResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItem" + }]; + + // 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.v11.resources.FeedItem feed_item = 2; +} diff --git a/google/ads/googleads/v11/services/feed_item_set_link_service.proto b/google/ads/googleads/v11/services/feed_item_set_link_service.proto new file mode 100644 index 000000000..ccad262bd --- /dev/null +++ b/google/ads/googleads/v11/services/feed_item_set_link_service.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetLinkServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the FeedItemSetLink service. + +// Service to manage feed item set links. +service FeedItemSetLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes feed item set links. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateFeedItemSetLinks(MutateFeedItemSetLinksRequest) returns (MutateFeedItemSetLinksResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/feedItemSetLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedItemSetLinkService.MutateFeedItemSetLinks][google.ads.googleads.v11.services.FeedItemSetLinkService.MutateFeedItemSetLinks]. +message MutateFeedItemSetLinksRequest { + // Required. The ID of the customer whose feed item set links are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual feed item set links. + repeated FeedItemSetLinkOperation 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; +} + +// A single operation (create, update, remove) on a feed item set link. +message FeedItemSetLinkOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the + // new feed item set link. + google.ads.googleads.v11.resources.FeedItemSetLink create = 1; + + // Remove operation: A resource name for the removed feed item set link is + // expected, in this format: + // + // `customers/{customer_id}/feedItemSetLinks/{feed_id}_{feed_item_set_id}_{feed_item_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSetLink" + }]; + } +} + +// Response message for a feed item set link mutate. +message MutateFeedItemSetLinksResponse { + // All results for the mutate. + repeated MutateFeedItemSetLinkResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the feed item set link mutate. +message MutateFeedItemSetLinkResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSetLink" + }]; +} diff --git a/google/ads/googleads/v11/services/feed_item_set_service.proto b/google/ads/googleads/v11/services/feed_item_set_service.proto new file mode 100644 index 000000000..298049545 --- /dev/null +++ b/google/ads/googleads/v11/services/feed_item_set_service.proto @@ -0,0 +1,123 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/feed_item_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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemSetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the FeedItemSet service. + +// Service to manage feed Item Set +service FeedItemSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates or removes feed item sets. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc MutateFeedItemSets(MutateFeedItemSetsRequest) returns (MutateFeedItemSetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/feedItemSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedItemSetService.MutateFeedItemSets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual feed item sets. + repeated FeedItemSetOperation 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; +} + +// A single operation (create, remove) on an feed item set. +message FeedItemSetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed item set + google.ads.googleads.v11.resources.FeedItemSet create = 1; + + // Update operation: The feed item set is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.FeedItemSet update = 2; + + // Remove operation: A resource name for the removed feed item is + // expected, in this format: + // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSet" + }]; + } +} + +// Response message for an feed item set mutate. +message MutateFeedItemSetsResponse { + // All results for the mutate. + repeated MutateFeedItemSetResult 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 an RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// The result for the feed item set mutate. +message MutateFeedItemSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemSet" + }]; +} diff --git a/google/ads/googleads/v11/services/feed_item_target_service.proto b/google/ads/googleads/v11/services/feed_item_target_service.proto new file mode 100644 index 000000000..b895d900a --- /dev/null +++ b/google/ads/googleads/v11/services/feed_item_target_service.proto @@ -0,0 +1,138 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedItemTargetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the FeedItemTarget service. + +// Service to manage feed item targets. +service FeedItemTargetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes feed item targets. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CriterionError]() + // [DatabaseError]() + // [DistinctError]() + // [FeedItemTargetError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateFeedItemTargets(MutateFeedItemTargetsRequest) returns (MutateFeedItemTargetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/feedItemTargets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v11.services.FeedItemTargetService.MutateFeedItemTargets]. +message MutateFeedItemTargetsRequest { + // Required. The ID of the customer whose feed item targets are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual feed item targets. + repeated FeedItemTargetOperation 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 = 4; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. + google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 3; +} + +// A single operation (create, remove) on an feed item target. +message FeedItemTargetOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed item + // target. + google.ads.googleads.v11.resources.FeedItemTarget create = 1; + + // Remove operation: A resource name for the removed feed item target is + // expected, in this format: + // + // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemTarget" + }]; + } +} + +// Response message for an feed item target mutate. +message MutateFeedItemTargetsResponse { + // 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 MutateFeedItemTargetResult results = 2; +} + +// The result for the feed item target mutate. +message MutateFeedItemTargetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedItemTarget" + }]; + + // 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.v11.resources.FeedItemTarget feed_item_target = 2; +} diff --git a/google/ads/googleads/v11/services/feed_mapping_service.proto b/google/ads/googleads/v11/services/feed_mapping_service.proto new file mode 100644 index 000000000..f3f9b5624 --- /dev/null +++ b/google/ads/googleads/v11/services/feed_mapping_service.proto @@ -0,0 +1,138 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedMappingServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the FeedMapping service. + +// Service to manage feed mappings. +service FeedMappingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes feed mappings. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DistinctError]() + // [FeedMappingError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [OperationAccessDeniedError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateFeedMappings(MutateFeedMappingsRequest) returns (MutateFeedMappingsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/feedMappings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedMappingService.MutateFeedMappings][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual feed mappings. + repeated FeedMappingOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on a feed mapping. +message FeedMappingOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed mapping. + google.ads.googleads.v11.resources.FeedMapping create = 1; + + // Remove operation: A resource name for the removed feed mapping is + // expected, in this format: + // + // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedMapping" + }]; + } +} + +// Response message for a feed mapping mutate. +message MutateFeedMappingsResponse { + // 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 MutateFeedMappingResult results = 2; +} + +// The result for the feed mapping mutate. +message MutateFeedMappingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/FeedMapping" + }]; + + // 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.v11.resources.FeedMapping feed_mapping = 2; +} diff --git a/google/ads/googleads/v11/services/feed_service.proto b/google/ads/googleads/v11/services/feed_service.proto new file mode 100644 index 000000000..f15ce000c --- /dev/null +++ b/google/ads/googleads/v11/services/feed_service.proto @@ -0,0 +1,150 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/feed.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "FeedServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Feed service. + +// Service to manage feeds. +service FeedService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes feeds. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DistinctError]() + // [FeedError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [ListOperationError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateFeeds(MutateFeedsRequest) returns (MutateFeedsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/feeds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [FeedService.MutateFeeds][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual feeds. + repeated FeedOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an feed. +message FeedOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new feed. + google.ads.googleads.v11.resources.Feed create = 1; + + // Update operation: The feed is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.Feed update = 2; + + // Remove operation: A resource name for the removed feed is + // expected, in this format: + // + // `customers/{customer_id}/feeds/{feed_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + }]; + } +} + +// Response message for an feed mutate. +message MutateFeedsResponse { + // 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 MutateFeedResult results = 2; +} + +// The result for the feed mutate. +message MutateFeedResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Feed" + }]; + + // 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.v11.resources.Feed feed = 2; +} diff --git a/google/ads/googleads/v11/services/geo_target_constant_service.proto b/google/ads/googleads/v11/services/geo_target_constant_service.proto new file mode 100644 index 000000000..fd340b2ac --- /dev/null +++ b/google/ads/googleads/v11/services/geo_target_constant_service.proto @@ -0,0 +1,117 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/geo_target_constant.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "GeoTargetConstantServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Geo target constant service. + +// Service to fetch geo target constants. +service GeoTargetConstantService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns GeoTargetConstant suggestions by location name or by resource name. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [GeoTargetConstantSuggestionError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc SuggestGeoTargetConstants(SuggestGeoTargetConstantsRequest) returns (SuggestGeoTargetConstantsResponse) { + option (google.api.http) = { + post: "/v11/geoTargetConstants:suggest" + body: "*" + }; + } +} + +// Request message for +// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v11.services.GeoTargetConstantService.SuggestGeoTargetConstants]. +message SuggestGeoTargetConstantsRequest { + // A list of location names. + message LocationNames { + // A list of location names. + repeated string names = 2; + } + + // A list of geo target constant resource names. + message GeoTargets { + // A list of geo target constant resource names. + repeated string geo_target_constants = 2; + } + + // If possible, returned geo targets are translated using this locale. If not, + // en is used by default. This is also used as a hint for returned geo + // targets. + optional string locale = 6; + + // Returned geo targets are restricted to this country code. + optional string country_code = 7; + + // Required. A selector of geo target constants. + oneof query { + // The location names to search by. At most 25 names can be set. + LocationNames location_names = 1; + + // The geo target constant resource names to filter by. + GeoTargets geo_targets = 2; + } +} + +// Response message for [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v11.services.GeoTargetConstantService.SuggestGeoTargetConstants]. +message SuggestGeoTargetConstantsResponse { + // Geo target constant suggestions. + repeated GeoTargetConstantSuggestion geo_target_constant_suggestions = 1; +} + +// A geo target constant suggestion. +message GeoTargetConstantSuggestion { + // The language this GeoTargetConstantSuggestion is currently translated to. + // It affects the name of geo target fields. For example, if locale=en, then + // name=Spain. If locale=es, then name=España. The default locale will be + // returned if no translation exists for the locale in the request. + optional string locale = 6; + + // Approximate user population that will be targeted, rounded to the + // nearest 100. + optional int64 reach = 7; + + // If the request searched by location name, this is the location name that + // matched the geo target. + optional string search_term = 8; + + // The GeoTargetConstant result. + google.ads.googleads.v11.resources.GeoTargetConstant geo_target_constant = 4; + + // The list of parents of the geo target constant. + repeated google.ads.googleads.v11.resources.GeoTargetConstant geo_target_constant_parents = 5; +} diff --git a/google/ads/googleads/v11/services/google_ads_field_service.proto b/google/ads/googleads/v11/services/google_ads_field_service.proto new file mode 100644 index 000000000..3a406dee5 --- /dev/null +++ b/google/ads/googleads/v11/services/google_ads_field_service.proto @@ -0,0 +1,115 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsFieldServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the GoogleAdsFieldService. + +// Service to fetch Google Ads API fields. +service GoogleAdsFieldService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns just the requested field. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc GetGoogleAdsField(GetGoogleAdsFieldRequest) returns (google.ads.googleads.v11.resources.GoogleAdsField) { + option (google.api.http) = { + get: "/v11/{resource_name=googleAdsFields/*}" + }; + option (google.api.method_signature) = "resource_name"; + } + + // Returns all fields that match the search query. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QueryError]() + // [QuotaError]() + // [RequestError]() + rpc SearchGoogleAdsFields(SearchGoogleAdsFieldsRequest) returns (SearchGoogleAdsFieldsResponse) { + option (google.api.http) = { + post: "/v11/googleAdsFields:search" + body: "*" + }; + option (google.api.method_signature) = "query"; + } +} + +// Request message for [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v11.services.GoogleAdsFieldService.GetGoogleAdsField]. +message GetGoogleAdsFieldRequest { + // Required. The resource name of the field to get. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/GoogleAdsField" + } + ]; +} + +// Request message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v11.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +message SearchGoogleAdsFieldsRequest { + // Required. The query string. + string query = 1 [(google.api.field_behavior) = REQUIRED]; + + // Token of the page to retrieve. If not specified, the first page of + // results will be returned. Use the value obtained from `next_page_token` + // in the previous response in order to request the next page of results. + string page_token = 2; + + // Number of elements to retrieve in a single page. + // When too large a page is requested, the server may decide to further + // limit the number of returned resources. + int32 page_size = 3; +} + +// Response message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v11.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +message SearchGoogleAdsFieldsResponse { + // The list of fields that matched the query. + repeated google.ads.googleads.v11.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. + // `next_page_token` is not returned for the last page. + string next_page_token = 2; + + // Total number of results that match the query ignoring the LIMIT clause. + int64 total_results_count = 3; +} diff --git a/google/ads/googleads/v11/services/google_ads_service.proto b/google/ads/googleads/v11/services/google_ads_service.proto new file mode 100644 index 000000000..3ff021b1f --- /dev/null +++ b/google/ads/googleads/v11/services/google_ads_service.proto @@ -0,0 +1,1488 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/metrics.proto"; +import "google/ads/googleads/v11/common/segments.proto"; +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/enums/summary_row_setting.proto"; +import "google/ads/googleads/v11/resources/accessible_bidding_strategy.proto"; +import "google/ads/googleads/v11/resources/account_budget.proto"; +import "google/ads/googleads/v11/resources/account_budget_proposal.proto"; +import "google/ads/googleads/v11/resources/account_link.proto"; +import "google/ads/googleads/v11/resources/ad_group.proto"; +import "google/ads/googleads/v11/resources/ad_group_ad.proto"; +import "google/ads/googleads/v11/resources/ad_group_ad_asset_combination_view.proto"; +import "google/ads/googleads/v11/resources/ad_group_ad_asset_view.proto"; +import "google/ads/googleads/v11/resources/ad_group_ad_label.proto"; +import "google/ads/googleads/v11/resources/ad_group_asset.proto"; +import "google/ads/googleads/v11/resources/ad_group_audience_view.proto"; +import "google/ads/googleads/v11/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v11/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v11/resources/ad_group_criterion_customizer.proto"; +import "google/ads/googleads/v11/resources/ad_group_criterion_label.proto"; +import "google/ads/googleads/v11/resources/ad_group_criterion_simulation.proto"; +import "google/ads/googleads/v11/resources/ad_group_customizer.proto"; +import "google/ads/googleads/v11/resources/ad_group_extension_setting.proto"; +import "google/ads/googleads/v11/resources/ad_group_feed.proto"; +import "google/ads/googleads/v11/resources/ad_group_label.proto"; +import "google/ads/googleads/v11/resources/ad_group_simulation.proto"; +import "google/ads/googleads/v11/resources/ad_parameter.proto"; +import "google/ads/googleads/v11/resources/ad_schedule_view.proto"; +import "google/ads/googleads/v11/resources/age_range_view.proto"; +import "google/ads/googleads/v11/resources/asset.proto"; +import "google/ads/googleads/v11/resources/asset_field_type_view.proto"; +import "google/ads/googleads/v11/resources/asset_group.proto"; +import "google/ads/googleads/v11/resources/asset_group_asset.proto"; +import "google/ads/googleads/v11/resources/asset_group_listing_group_filter.proto"; +import "google/ads/googleads/v11/resources/asset_group_product_group_view.proto"; +import "google/ads/googleads/v11/resources/asset_group_signal.proto"; +import "google/ads/googleads/v11/resources/asset_set.proto"; +import "google/ads/googleads/v11/resources/asset_set_asset.proto"; +import "google/ads/googleads/v11/resources/audience.proto"; +import "google/ads/googleads/v11/resources/batch_job.proto"; +import "google/ads/googleads/v11/resources/bidding_data_exclusion.proto"; +import "google/ads/googleads/v11/resources/bidding_seasonality_adjustment.proto"; +import "google/ads/googleads/v11/resources/bidding_strategy.proto"; +import "google/ads/googleads/v11/resources/bidding_strategy_simulation.proto"; +import "google/ads/googleads/v11/resources/billing_setup.proto"; +import "google/ads/googleads/v11/resources/call_view.proto"; +import "google/ads/googleads/v11/resources/campaign.proto"; +import "google/ads/googleads/v11/resources/campaign_asset.proto"; +import "google/ads/googleads/v11/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v11/resources/campaign_audience_view.proto"; +import "google/ads/googleads/v11/resources/campaign_bid_modifier.proto"; +import "google/ads/googleads/v11/resources/campaign_budget.proto"; +import "google/ads/googleads/v11/resources/campaign_conversion_goal.proto"; +import "google/ads/googleads/v11/resources/campaign_criterion.proto"; +import "google/ads/googleads/v11/resources/campaign_criterion_simulation.proto"; +import "google/ads/googleads/v11/resources/campaign_customizer.proto"; +import "google/ads/googleads/v11/resources/campaign_draft.proto"; +import "google/ads/googleads/v11/resources/campaign_experiment.proto"; +import "google/ads/googleads/v11/resources/campaign_extension_setting.proto"; +import "google/ads/googleads/v11/resources/campaign_feed.proto"; +import "google/ads/googleads/v11/resources/campaign_group.proto"; +import "google/ads/googleads/v11/resources/campaign_label.proto"; +import "google/ads/googleads/v11/resources/campaign_shared_set.proto"; +import "google/ads/googleads/v11/resources/campaign_simulation.proto"; +import "google/ads/googleads/v11/resources/carrier_constant.proto"; +import "google/ads/googleads/v11/resources/change_event.proto"; +import "google/ads/googleads/v11/resources/change_status.proto"; +import "google/ads/googleads/v11/resources/click_view.proto"; +import "google/ads/googleads/v11/resources/combined_audience.proto"; +import "google/ads/googleads/v11/resources/conversion_action.proto"; +import "google/ads/googleads/v11/resources/conversion_custom_variable.proto"; +import "google/ads/googleads/v11/resources/conversion_goal_campaign_config.proto"; +import "google/ads/googleads/v11/resources/conversion_value_rule.proto"; +import "google/ads/googleads/v11/resources/conversion_value_rule_set.proto"; +import "google/ads/googleads/v11/resources/currency_constant.proto"; +import "google/ads/googleads/v11/resources/custom_audience.proto"; +import "google/ads/googleads/v11/resources/custom_conversion_goal.proto"; +import "google/ads/googleads/v11/resources/custom_interest.proto"; +import "google/ads/googleads/v11/resources/customer.proto"; +import "google/ads/googleads/v11/resources/customer_asset.proto"; +import "google/ads/googleads/v11/resources/customer_client.proto"; +import "google/ads/googleads/v11/resources/customer_client_link.proto"; +import "google/ads/googleads/v11/resources/customer_conversion_goal.proto"; +import "google/ads/googleads/v11/resources/customer_customizer.proto"; +import "google/ads/googleads/v11/resources/customer_extension_setting.proto"; +import "google/ads/googleads/v11/resources/customer_feed.proto"; +import "google/ads/googleads/v11/resources/customer_label.proto"; +import "google/ads/googleads/v11/resources/customer_manager_link.proto"; +import "google/ads/googleads/v11/resources/customer_negative_criterion.proto"; +import "google/ads/googleads/v11/resources/customer_user_access.proto"; +import "google/ads/googleads/v11/resources/customer_user_access_invitation.proto"; +import "google/ads/googleads/v11/resources/customizer_attribute.proto"; +import "google/ads/googleads/v11/resources/detail_placement_view.proto"; +import "google/ads/googleads/v11/resources/detailed_demographic.proto"; +import "google/ads/googleads/v11/resources/display_keyword_view.proto"; +import "google/ads/googleads/v11/resources/distance_view.proto"; +import "google/ads/googleads/v11/resources/domain_category.proto"; +import "google/ads/googleads/v11/resources/dynamic_search_ads_search_term_view.proto"; +import "google/ads/googleads/v11/resources/expanded_landing_page_view.proto"; +import "google/ads/googleads/v11/resources/experiment.proto"; +import "google/ads/googleads/v11/resources/experiment_arm.proto"; +import "google/ads/googleads/v11/resources/extension_feed_item.proto"; +import "google/ads/googleads/v11/resources/feed.proto"; +import "google/ads/googleads/v11/resources/feed_item.proto"; +import "google/ads/googleads/v11/resources/feed_item_set.proto"; +import "google/ads/googleads/v11/resources/feed_item_set_link.proto"; +import "google/ads/googleads/v11/resources/feed_item_target.proto"; +import "google/ads/googleads/v11/resources/feed_mapping.proto"; +import "google/ads/googleads/v11/resources/feed_placeholder_view.proto"; +import "google/ads/googleads/v11/resources/gender_view.proto"; +import "google/ads/googleads/v11/resources/geo_target_constant.proto"; +import "google/ads/googleads/v11/resources/geographic_view.proto"; +import "google/ads/googleads/v11/resources/group_placement_view.proto"; +import "google/ads/googleads/v11/resources/hotel_group_view.proto"; +import "google/ads/googleads/v11/resources/hotel_performance_view.proto"; +import "google/ads/googleads/v11/resources/hotel_reconciliation.proto"; +import "google/ads/googleads/v11/resources/income_range_view.proto"; +import "google/ads/googleads/v11/resources/keyword_plan.proto"; +import "google/ads/googleads/v11/resources/keyword_plan_ad_group.proto"; +import "google/ads/googleads/v11/resources/keyword_plan_ad_group_keyword.proto"; +import "google/ads/googleads/v11/resources/keyword_plan_campaign.proto"; +import "google/ads/googleads/v11/resources/keyword_plan_campaign_keyword.proto"; +import "google/ads/googleads/v11/resources/keyword_theme_constant.proto"; +import "google/ads/googleads/v11/resources/keyword_view.proto"; +import "google/ads/googleads/v11/resources/label.proto"; +import "google/ads/googleads/v11/resources/landing_page_view.proto"; +import "google/ads/googleads/v11/resources/language_constant.proto"; +import "google/ads/googleads/v11/resources/lead_form_submission_data.proto"; +import "google/ads/googleads/v11/resources/life_event.proto"; +import "google/ads/googleads/v11/resources/location_view.proto"; +import "google/ads/googleads/v11/resources/managed_placement_view.proto"; +import "google/ads/googleads/v11/resources/media_file.proto"; +import "google/ads/googleads/v11/resources/mobile_app_category_constant.proto"; +import "google/ads/googleads/v11/resources/mobile_device_constant.proto"; +import "google/ads/googleads/v11/resources/offline_user_data_job.proto"; +import "google/ads/googleads/v11/resources/operating_system_version_constant.proto"; +import "google/ads/googleads/v11/resources/paid_organic_search_term_view.proto"; +import "google/ads/googleads/v11/resources/parental_status_view.proto"; +import "google/ads/googleads/v11/resources/product_bidding_category_constant.proto"; +import "google/ads/googleads/v11/resources/product_group_view.proto"; +import "google/ads/googleads/v11/resources/recommendation.proto"; +import "google/ads/googleads/v11/resources/remarketing_action.proto"; +import "google/ads/googleads/v11/resources/search_term_view.proto"; +import "google/ads/googleads/v11/resources/shared_criterion.proto"; +import "google/ads/googleads/v11/resources/shared_set.proto"; +import "google/ads/googleads/v11/resources/shopping_performance_view.proto"; +import "google/ads/googleads/v11/resources/smart_campaign_search_term_view.proto"; +import "google/ads/googleads/v11/resources/smart_campaign_setting.proto"; +import "google/ads/googleads/v11/resources/third_party_app_analytics_link.proto"; +import "google/ads/googleads/v11/resources/topic_constant.proto"; +import "google/ads/googleads/v11/resources/topic_view.proto"; +import "google/ads/googleads/v11/resources/user_interest.proto"; +import "google/ads/googleads/v11/resources/user_list.proto"; +import "google/ads/googleads/v11/resources/user_location_view.proto"; +import "google/ads/googleads/v11/resources/video.proto"; +import "google/ads/googleads/v11/resources/webpage_view.proto"; +import "google/ads/googleads/v11/services/ad_group_ad_label_service.proto"; +import "google/ads/googleads/v11/services/ad_group_ad_service.proto"; +import "google/ads/googleads/v11/services/ad_group_asset_service.proto"; +import "google/ads/googleads/v11/services/ad_group_bid_modifier_service.proto"; +import "google/ads/googleads/v11/services/ad_group_criterion_customizer_service.proto"; +import "google/ads/googleads/v11/services/ad_group_criterion_label_service.proto"; +import "google/ads/googleads/v11/services/ad_group_criterion_service.proto"; +import "google/ads/googleads/v11/services/ad_group_customizer_service.proto"; +import "google/ads/googleads/v11/services/ad_group_extension_setting_service.proto"; +import "google/ads/googleads/v11/services/ad_group_feed_service.proto"; +import "google/ads/googleads/v11/services/ad_group_label_service.proto"; +import "google/ads/googleads/v11/services/ad_group_service.proto"; +import "google/ads/googleads/v11/services/ad_parameter_service.proto"; +import "google/ads/googleads/v11/services/ad_service.proto"; +import "google/ads/googleads/v11/services/asset_group_asset_service.proto"; +import "google/ads/googleads/v11/services/asset_group_listing_group_filter_service.proto"; +import "google/ads/googleads/v11/services/asset_group_service.proto"; +import "google/ads/googleads/v11/services/asset_group_signal_service.proto"; +import "google/ads/googleads/v11/services/asset_service.proto"; +import "google/ads/googleads/v11/services/asset_set_asset_service.proto"; +import "google/ads/googleads/v11/services/asset_set_service.proto"; +import "google/ads/googleads/v11/services/audience_service.proto"; +import "google/ads/googleads/v11/services/bidding_data_exclusion_service.proto"; +import "google/ads/googleads/v11/services/bidding_seasonality_adjustment_service.proto"; +import "google/ads/googleads/v11/services/bidding_strategy_service.proto"; +import "google/ads/googleads/v11/services/campaign_asset_service.proto"; +import "google/ads/googleads/v11/services/campaign_asset_set_service.proto"; +import "google/ads/googleads/v11/services/campaign_bid_modifier_service.proto"; +import "google/ads/googleads/v11/services/campaign_budget_service.proto"; +import "google/ads/googleads/v11/services/campaign_conversion_goal_service.proto"; +import "google/ads/googleads/v11/services/campaign_criterion_service.proto"; +import "google/ads/googleads/v11/services/campaign_customizer_service.proto"; +import "google/ads/googleads/v11/services/campaign_draft_service.proto"; +import "google/ads/googleads/v11/services/campaign_experiment_service.proto"; +import "google/ads/googleads/v11/services/campaign_extension_setting_service.proto"; +import "google/ads/googleads/v11/services/campaign_feed_service.proto"; +import "google/ads/googleads/v11/services/campaign_group_service.proto"; +import "google/ads/googleads/v11/services/campaign_label_service.proto"; +import "google/ads/googleads/v11/services/campaign_service.proto"; +import "google/ads/googleads/v11/services/campaign_shared_set_service.proto"; +import "google/ads/googleads/v11/services/conversion_action_service.proto"; +import "google/ads/googleads/v11/services/conversion_custom_variable_service.proto"; +import "google/ads/googleads/v11/services/conversion_goal_campaign_config_service.proto"; +import "google/ads/googleads/v11/services/conversion_value_rule_service.proto"; +import "google/ads/googleads/v11/services/conversion_value_rule_set_service.proto"; +import "google/ads/googleads/v11/services/custom_conversion_goal_service.proto"; +import "google/ads/googleads/v11/services/customer_asset_service.proto"; +import "google/ads/googleads/v11/services/customer_conversion_goal_service.proto"; +import "google/ads/googleads/v11/services/customer_customizer_service.proto"; +import "google/ads/googleads/v11/services/customer_extension_setting_service.proto"; +import "google/ads/googleads/v11/services/customer_feed_service.proto"; +import "google/ads/googleads/v11/services/customer_label_service.proto"; +import "google/ads/googleads/v11/services/customer_negative_criterion_service.proto"; +import "google/ads/googleads/v11/services/customer_service.proto"; +import "google/ads/googleads/v11/services/customizer_attribute_service.proto"; +import "google/ads/googleads/v11/services/experiment_arm_service.proto"; +import "google/ads/googleads/v11/services/experiment_service.proto"; +import "google/ads/googleads/v11/services/extension_feed_item_service.proto"; +import "google/ads/googleads/v11/services/feed_item_service.proto"; +import "google/ads/googleads/v11/services/feed_item_set_link_service.proto"; +import "google/ads/googleads/v11/services/feed_item_set_service.proto"; +import "google/ads/googleads/v11/services/feed_item_target_service.proto"; +import "google/ads/googleads/v11/services/feed_mapping_service.proto"; +import "google/ads/googleads/v11/services/feed_service.proto"; +import "google/ads/googleads/v11/services/keyword_plan_ad_group_keyword_service.proto"; +import "google/ads/googleads/v11/services/keyword_plan_ad_group_service.proto"; +import "google/ads/googleads/v11/services/keyword_plan_campaign_keyword_service.proto"; +import "google/ads/googleads/v11/services/keyword_plan_campaign_service.proto"; +import "google/ads/googleads/v11/services/keyword_plan_service.proto"; +import "google/ads/googleads/v11/services/label_service.proto"; +import "google/ads/googleads/v11/services/media_file_service.proto"; +import "google/ads/googleads/v11/services/remarketing_action_service.proto"; +import "google/ads/googleads/v11/services/shared_criterion_service.proto"; +import "google/ads/googleads/v11/services/shared_set_service.proto"; +import "google/ads/googleads/v11/services/smart_campaign_setting_service.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "GoogleAdsServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the GoogleAdsService. + +// Service to fetch data and metrics across resources. +service GoogleAdsService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns all rows that match the search query. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ChangeEventError]() + // [ChangeStatusError]() + // [ClickViewError]() + // [HeaderError]() + // [InternalError]() + // [QueryError]() + // [QuotaError]() + // [RequestError]() + rpc Search(SearchGoogleAdsRequest) returns (SearchGoogleAdsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/googleAds:search" + body: "*" + }; + option (google.api.method_signature) = "customer_id,query"; + } + + // Returns all rows that match the search stream query. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ChangeEventError]() + // [ChangeStatusError]() + // [ClickViewError]() + // [HeaderError]() + // [InternalError]() + // [QueryError]() + // [QuotaError]() + // [RequestError]() + rpc SearchStream(SearchGoogleAdsStreamRequest) returns (stream SearchGoogleAdsStreamResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/googleAds:searchStream" + body: "*" + }; + option (google.api.method_signature) = "customer_id,query"; + } + + // Creates, updates, or removes resources. This method supports atomic + // transactions with multiple types of resources. For example, you can + // atomically create a campaign and a campaign budget, or perform up to + // thousands of mutates atomically. + // + // This method is essentially a wrapper around a series of mutate methods. The + // only features it offers over calling those methods directly are: + // + // - Atomic transactions + // - Temp resource names (described below) + // - Somewhat reduced latency over making a series of mutate calls + // + // Note: Only resources that support atomic transactions are included, so this + // method can't replace all calls to individual services. + // + // ## Atomic Transaction Benefits + // + // Atomicity makes error handling much easier. If you're making a series of + // changes and one fails, it can leave your account in an inconsistent state. + // With atomicity, you either reach the chosen state directly, or the request + // fails and you can retry. + // + // ## Temp Resource Names + // + // Temp resource names are a special type of resource name used to create a + // resource and reference that resource in the same request. For example, if a + // campaign budget is created with `resource_name` equal to + // `customers/123/campaignBudgets/-1`, that resource name can be reused in + // the `Campaign.budget` field in the same request. That way, the two + // resources are created and linked atomically. + // + // To create a temp resource name, put a negative number in the part of the + // name that the server would normally allocate. + // + // Note: + // + // - Resources must be created with a temp name before the name can be reused. + // For example, the previous CampaignBudget+Campaign example would fail if + // the mutate order was reversed. + // - Temp names are not remembered across requests. + // - There's no limit to the number of temp names in a request. + // - Each temp name must use a unique negative number, even if the resource + // types differ. + // + // ## Latency + // + // It's important to group mutates by resource type or the request may time + // out and fail. Latency is roughly equal to a series of calls to individual + // mutate methods, where each change in resource type is a new call. For + // example, mutating 10 campaigns then 10 ad groups is like 2 calls, while + // mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is like 4 calls. + // + // List of thrown errors: + // [AdCustomizerError]() + // [AdError]() + // [AdGroupAdError]() + // [AdGroupCriterionError]() + // [AdGroupError]() + // [AssetError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [BiddingError]() + // [CampaignBudgetError]() + // [CampaignCriterionError]() + // [CampaignError]() + // [CampaignExperimentError]() + // [CampaignSharedSetError]() + // [CollectionSizeError]() + // [ContextError]() + // [ConversionActionError]() + // [CriterionError]() + // [CustomerFeedError]() + // [DatabaseError]() + // [DateError]() + // [DateRangeError]() + // [DistinctError]() + // [ExtensionFeedItemError]() + // [ExtensionSettingError]() + // [FeedAttributeReferenceError]() + // [FeedError]() + // [FeedItemError]() + // [FeedItemSetError]() + // [FieldError]() + // [FieldMaskError]() + // [FunctionParsingError]() + // [HeaderError]() + // [ImageError]() + // [InternalError]() + // [KeywordPlanAdGroupKeywordError]() + // [KeywordPlanCampaignError]() + // [KeywordPlanError]() + // [LabelError]() + // [ListOperationError]() + // [MediaUploadError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NullError]() + // [OperationAccessDeniedError]() + // [PolicyFindingError]() + // [PolicyViolationError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SettingError]() + // [SharedSetError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + // [UrlFieldError]() + // [UserListError]() + // [YoutubeVideoRegistrationError]() + rpc Mutate(MutateGoogleAdsRequest) returns (MutateGoogleAdsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/googleAds:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,mutate_operations"; + } +} + +// Request message for [GoogleAdsService.Search][google.ads.googleads.v11.services.GoogleAdsService.Search]. +message SearchGoogleAdsRequest { + // Required. The ID of the customer being queried. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The query string. + string query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + string page_token = 3; + + // Number of elements to retrieve in a single page. + // When too large a page is requested, the server may decide to + // further limit the number of returned resources. + int32 page_size = 4; + + // If true, the request is validated but not executed. + bool validate_only = 5; + + // If true, the total number of results that match the query ignoring the + // LIMIT clause will be included in the response. + // Default is false. + bool return_total_results_count = 7; + + // 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.v11.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 8; +} + +// Response message for [GoogleAdsService.Search][google.ads.googleads.v11.services.GoogleAdsService.Search]. +message SearchGoogleAdsResponse { + // The list of rows that matched the query. + repeated GoogleAdsRow 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. `next_page_token` is not returned for the last + // page. + string next_page_token = 2; + + // Total number of results that match the query ignoring the LIMIT + // clause. + int64 total_results_count = 3; + + // FieldMask that represents what fields were requested by the user. + google.protobuf.FieldMask field_mask = 5; + + // Summary row that contains summary of metrics in results. + // Summary of metrics means aggregation of metrics across all results, + // here aggregation could be sum, average, rate, etc. + GoogleAdsRow summary_row = 6; +} + +// Request message for [GoogleAdsService.SearchStream][google.ads.googleads.v11.services.GoogleAdsService.SearchStream]. +message SearchGoogleAdsStreamRequest { + // Required. The ID of the customer being queried. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The query string. + string query = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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.v11.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 3; +} + +// Response message for [GoogleAdsService.SearchStream][google.ads.googleads.v11.services.GoogleAdsService.SearchStream]. +message SearchGoogleAdsStreamResponse { + // The list of rows that matched the query. + repeated GoogleAdsRow results = 1; + + // FieldMask that represents what fields were requested by the user. + google.protobuf.FieldMask field_mask = 2; + + // Summary row that contains summary of metrics in results. + // Summary of metrics means aggregation of metrics across all results, + // here aggregation could be sum, average, rate, etc. + GoogleAdsRow summary_row = 3; + + // The unique id of the request that is used for debugging purposes. + string request_id = 4; +} + +// A returned row from the query. +message GoogleAdsRow { + // The account budget in the query. + google.ads.googleads.v11.resources.AccountBudget account_budget = 42; + + // The account budget proposal referenced in the query. + google.ads.googleads.v11.resources.AccountBudgetProposal account_budget_proposal = 43; + + // The AccountLink referenced in the query. + google.ads.googleads.v11.resources.AccountLink account_link = 143; + + // The ad group referenced in the query. + google.ads.googleads.v11.resources.AdGroup ad_group = 3; + + // The ad referenced in the query. + google.ads.googleads.v11.resources.AdGroupAd ad_group_ad = 16; + + // The ad group ad asset combination view in the query. + google.ads.googleads.v11.resources.AdGroupAdAssetCombinationView ad_group_ad_asset_combination_view = 193; + + // The ad group ad asset view in the query. + google.ads.googleads.v11.resources.AdGroupAdAssetView ad_group_ad_asset_view = 131; + + // The ad group ad label referenced in the query. + google.ads.googleads.v11.resources.AdGroupAdLabel ad_group_ad_label = 120; + + // The ad group asset referenced in the query. + google.ads.googleads.v11.resources.AdGroupAsset ad_group_asset = 154; + + // The ad group audience view referenced in the query. + google.ads.googleads.v11.resources.AdGroupAudienceView ad_group_audience_view = 57; + + // The bid modifier referenced in the query. + google.ads.googleads.v11.resources.AdGroupBidModifier ad_group_bid_modifier = 24; + + // The criterion referenced in the query. + google.ads.googleads.v11.resources.AdGroupCriterion ad_group_criterion = 17; + + // The ad group criterion customizer referenced in the query. + google.ads.googleads.v11.resources.AdGroupCriterionCustomizer ad_group_criterion_customizer = 187; + + // The ad group criterion label referenced in the query. + google.ads.googleads.v11.resources.AdGroupCriterionLabel ad_group_criterion_label = 121; + + // The ad group criterion simulation referenced in the query. + google.ads.googleads.v11.resources.AdGroupCriterionSimulation ad_group_criterion_simulation = 110; + + // The ad group customizer referenced in the query. + google.ads.googleads.v11.resources.AdGroupCustomizer ad_group_customizer = 185; + + // The ad group extension setting referenced in the query. + google.ads.googleads.v11.resources.AdGroupExtensionSetting ad_group_extension_setting = 112; + + // The ad group feed referenced in the query. + google.ads.googleads.v11.resources.AdGroupFeed ad_group_feed = 67; + + // The ad group label referenced in the query. + google.ads.googleads.v11.resources.AdGroupLabel ad_group_label = 115; + + // The ad group simulation referenced in the query. + google.ads.googleads.v11.resources.AdGroupSimulation ad_group_simulation = 107; + + // The ad parameter referenced in the query. + google.ads.googleads.v11.resources.AdParameter ad_parameter = 130; + + // The age range view referenced in the query. + google.ads.googleads.v11.resources.AgeRangeView age_range_view = 48; + + // The ad schedule view referenced in the query. + google.ads.googleads.v11.resources.AdScheduleView ad_schedule_view = 89; + + // The domain category referenced in the query. + google.ads.googleads.v11.resources.DomainCategory domain_category = 91; + + // The asset referenced in the query. + google.ads.googleads.v11.resources.Asset asset = 105; + + // The asset field type view referenced in the query. + google.ads.googleads.v11.resources.AssetFieldTypeView asset_field_type_view = 168; + + // The asset group asset referenced in the query. + google.ads.googleads.v11.resources.AssetGroupAsset asset_group_asset = 173; + + // The asset group signal referenced in the query. + google.ads.googleads.v11.resources.AssetGroupSignal asset_group_signal = 191; + + // The asset group listing group filter referenced in the query. + google.ads.googleads.v11.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 182; + + // The asset group product group view referenced in the query. + google.ads.googleads.v11.resources.AssetGroupProductGroupView asset_group_product_group_view = 189; + + // The asset group referenced in the query. + google.ads.googleads.v11.resources.AssetGroup asset_group = 172; + + // The asset set asset referenced in the query. + google.ads.googleads.v11.resources.AssetSetAsset asset_set_asset = 180; + + // The asset set referenced in the query. + google.ads.googleads.v11.resources.AssetSet asset_set = 179; + + // The batch job referenced in the query. + google.ads.googleads.v11.resources.BatchJob batch_job = 139; + + // The bidding data exclusion referenced in the query. + google.ads.googleads.v11.resources.BiddingDataExclusion bidding_data_exclusion = 159; + + // The bidding seasonality adjustment referenced in the query. + google.ads.googleads.v11.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 160; + + // The bidding strategy referenced in the query. + google.ads.googleads.v11.resources.BiddingStrategy bidding_strategy = 18; + + // The bidding strategy simulation referenced in the query. + google.ads.googleads.v11.resources.BiddingStrategySimulation bidding_strategy_simulation = 158; + + // The billing setup referenced in the query. + google.ads.googleads.v11.resources.BillingSetup billing_setup = 41; + + // The call view referenced in the query. + google.ads.googleads.v11.resources.CallView call_view = 152; + + // The campaign budget referenced in the query. + google.ads.googleads.v11.resources.CampaignBudget campaign_budget = 19; + + // The campaign referenced in the query. + google.ads.googleads.v11.resources.Campaign campaign = 2; + + // The campaign asset referenced in the query. + google.ads.googleads.v11.resources.CampaignAsset campaign_asset = 142; + + // The campaign asset set referenced in the query. + google.ads.googleads.v11.resources.CampaignAssetSet campaign_asset_set = 181; + + // The campaign audience view referenced in the query. + google.ads.googleads.v11.resources.CampaignAudienceView campaign_audience_view = 69; + + // The campaign bid modifier referenced in the query. + google.ads.googleads.v11.resources.CampaignBidModifier campaign_bid_modifier = 26; + + // The CampaignConversionGoal referenced in the query. + google.ads.googleads.v11.resources.CampaignConversionGoal campaign_conversion_goal = 175; + + // The campaign criterion referenced in the query. + google.ads.googleads.v11.resources.CampaignCriterion campaign_criterion = 20; + + // The campaign criterion simulation referenced in the query. + google.ads.googleads.v11.resources.CampaignCriterionSimulation campaign_criterion_simulation = 111; + + // The campaign customizer referenced in the query. + google.ads.googleads.v11.resources.CampaignCustomizer campaign_customizer = 186; + + // The campaign draft referenced in the query. + google.ads.googleads.v11.resources.CampaignDraft campaign_draft = 49; + + // The campaign experiment referenced in the query. + google.ads.googleads.v11.resources.CampaignExperiment campaign_experiment = 84; + + // The campaign extension setting referenced in the query. + google.ads.googleads.v11.resources.CampaignExtensionSetting campaign_extension_setting = 113; + + // The campaign feed referenced in the query. + google.ads.googleads.v11.resources.CampaignFeed campaign_feed = 63; + + // Campaign Group referenced in AWQL query. + google.ads.googleads.v11.resources.CampaignGroup campaign_group = 25; + + // The campaign label referenced in the query. + google.ads.googleads.v11.resources.CampaignLabel campaign_label = 108; + + // Campaign Shared Set referenced in AWQL query. + google.ads.googleads.v11.resources.CampaignSharedSet campaign_shared_set = 30; + + // The campaign simulation referenced in the query. + google.ads.googleads.v11.resources.CampaignSimulation campaign_simulation = 157; + + // The carrier constant referenced in the query. + google.ads.googleads.v11.resources.CarrierConstant carrier_constant = 66; + + // The ChangeEvent referenced in the query. + google.ads.googleads.v11.resources.ChangeEvent change_event = 145; + + // The ChangeStatus referenced in the query. + google.ads.googleads.v11.resources.ChangeStatus change_status = 37; + + // The CombinedAudience referenced in the query. + google.ads.googleads.v11.resources.CombinedAudience combined_audience = 148; + + // The Audience referenced in the query. + google.ads.googleads.v11.resources.Audience audience = 190; + + // The conversion action referenced in the query. + google.ads.googleads.v11.resources.ConversionAction conversion_action = 103; + + // The conversion custom variable referenced in the query. + google.ads.googleads.v11.resources.ConversionCustomVariable conversion_custom_variable = 153; + + // The ConversionGoalCampaignConfig referenced in the query. + google.ads.googleads.v11.resources.ConversionGoalCampaignConfig conversion_goal_campaign_config = 177; + + // The conversion value rule referenced in the query. + google.ads.googleads.v11.resources.ConversionValueRule conversion_value_rule = 164; + + // The conversion value rule set referenced in the query. + google.ads.googleads.v11.resources.ConversionValueRuleSet conversion_value_rule_set = 165; + + // The ClickView referenced in the query. + google.ads.googleads.v11.resources.ClickView click_view = 122; + + // The currency constant referenced in the query. + google.ads.googleads.v11.resources.CurrencyConstant currency_constant = 134; + + // The CustomAudience referenced in the query. + google.ads.googleads.v11.resources.CustomAudience custom_audience = 147; + + // The CustomConversionGoal referenced in the query. + google.ads.googleads.v11.resources.CustomConversionGoal custom_conversion_goal = 176; + + // The CustomInterest referenced in the query. + google.ads.googleads.v11.resources.CustomInterest custom_interest = 104; + + // The customer referenced in the query. + google.ads.googleads.v11.resources.Customer customer = 1; + + // The customer asset referenced in the query. + google.ads.googleads.v11.resources.CustomerAsset customer_asset = 155; + + // The accessible bidding strategy referenced in the query. + google.ads.googleads.v11.resources.AccessibleBiddingStrategy accessible_bidding_strategy = 169; + + // The customer customizer referenced in the query. + google.ads.googleads.v11.resources.CustomerCustomizer customer_customizer = 184; + + // The CustomerManagerLink referenced in the query. + google.ads.googleads.v11.resources.CustomerManagerLink customer_manager_link = 61; + + // The CustomerClientLink referenced in the query. + google.ads.googleads.v11.resources.CustomerClientLink customer_client_link = 62; + + // The CustomerClient referenced in the query. + google.ads.googleads.v11.resources.CustomerClient customer_client = 70; + + // The CustomerConversionGoal referenced in the query. + google.ads.googleads.v11.resources.CustomerConversionGoal customer_conversion_goal = 174; + + // The customer extension setting referenced in the query. + google.ads.googleads.v11.resources.CustomerExtensionSetting customer_extension_setting = 114; + + // The customer feed referenced in the query. + google.ads.googleads.v11.resources.CustomerFeed customer_feed = 64; + + // The customer label referenced in the query. + google.ads.googleads.v11.resources.CustomerLabel customer_label = 124; + + // The customer negative criterion referenced in the query. + google.ads.googleads.v11.resources.CustomerNegativeCriterion customer_negative_criterion = 88; + + // The CustomerUserAccess referenced in the query. + google.ads.googleads.v11.resources.CustomerUserAccess customer_user_access = 146; + + // The CustomerUserAccessInvitation referenced in the query. + google.ads.googleads.v11.resources.CustomerUserAccessInvitation customer_user_access_invitation = 150; + + // The customizer attribute referenced in the query. + google.ads.googleads.v11.resources.CustomizerAttribute customizer_attribute = 178; + + // The detail placement view referenced in the query. + google.ads.googleads.v11.resources.DetailPlacementView detail_placement_view = 118; + + // The detailed demographic referenced in the query. + google.ads.googleads.v11.resources.DetailedDemographic detailed_demographic = 166; + + // The display keyword view referenced in the query. + google.ads.googleads.v11.resources.DisplayKeywordView display_keyword_view = 47; + + // The distance view referenced in the query. + google.ads.googleads.v11.resources.DistanceView distance_view = 132; + + // The dynamic search ads search term view referenced in the query. + google.ads.googleads.v11.resources.DynamicSearchAdsSearchTermView dynamic_search_ads_search_term_view = 106; + + // The expanded landing page view referenced in the query. + google.ads.googleads.v11.resources.ExpandedLandingPageView expanded_landing_page_view = 128; + + // The extension feed item referenced in the query. + google.ads.googleads.v11.resources.ExtensionFeedItem extension_feed_item = 85; + + // The feed referenced in the query. + google.ads.googleads.v11.resources.Feed feed = 46; + + // The feed item referenced in the query. + google.ads.googleads.v11.resources.FeedItem feed_item = 50; + + // The feed item set referenced in the query. + google.ads.googleads.v11.resources.FeedItemSet feed_item_set = 149; + + // The feed item set link referenced in the query. + google.ads.googleads.v11.resources.FeedItemSetLink feed_item_set_link = 151; + + // The feed item target referenced in the query. + google.ads.googleads.v11.resources.FeedItemTarget feed_item_target = 116; + + // The feed mapping referenced in the query. + google.ads.googleads.v11.resources.FeedMapping feed_mapping = 58; + + // The feed placeholder view referenced in the query. + google.ads.googleads.v11.resources.FeedPlaceholderView feed_placeholder_view = 97; + + // The gender view referenced in the query. + google.ads.googleads.v11.resources.GenderView gender_view = 40; + + // The geo target constant referenced in the query. + google.ads.googleads.v11.resources.GeoTargetConstant geo_target_constant = 23; + + // The geographic view referenced in the query. + google.ads.googleads.v11.resources.GeographicView geographic_view = 125; + + // The group placement view referenced in the query. + google.ads.googleads.v11.resources.GroupPlacementView group_placement_view = 119; + + // The hotel group view referenced in the query. + google.ads.googleads.v11.resources.HotelGroupView hotel_group_view = 51; + + // The hotel performance view referenced in the query. + google.ads.googleads.v11.resources.HotelPerformanceView hotel_performance_view = 71; + + // The hotel reconciliation referenced in the query. + google.ads.googleads.v11.resources.HotelReconciliation hotel_reconciliation = 188; + + // The income range view referenced in the query. + google.ads.googleads.v11.resources.IncomeRangeView income_range_view = 138; + + // The keyword view referenced in the query. + google.ads.googleads.v11.resources.KeywordView keyword_view = 21; + + // The keyword plan referenced in the query. + google.ads.googleads.v11.resources.KeywordPlan keyword_plan = 32; + + // The keyword plan campaign referenced in the query. + google.ads.googleads.v11.resources.KeywordPlanCampaign keyword_plan_campaign = 33; + + // The keyword plan campaign keyword referenced in the query. + google.ads.googleads.v11.resources.KeywordPlanCampaignKeyword keyword_plan_campaign_keyword = 140; + + // The keyword plan ad group referenced in the query. + google.ads.googleads.v11.resources.KeywordPlanAdGroup keyword_plan_ad_group = 35; + + // The keyword plan ad group referenced in the query. + google.ads.googleads.v11.resources.KeywordPlanAdGroupKeyword keyword_plan_ad_group_keyword = 141; + + // The keyword theme constant referenced in the query. + google.ads.googleads.v11.resources.KeywordThemeConstant keyword_theme_constant = 163; + + // The label referenced in the query. + google.ads.googleads.v11.resources.Label label = 52; + + // The landing page view referenced in the query. + google.ads.googleads.v11.resources.LandingPageView landing_page_view = 126; + + // The language constant referenced in the query. + google.ads.googleads.v11.resources.LanguageConstant language_constant = 55; + + // The location view referenced in the query. + google.ads.googleads.v11.resources.LocationView location_view = 123; + + // The managed placement view referenced in the query. + google.ads.googleads.v11.resources.ManagedPlacementView managed_placement_view = 53; + + // The media file referenced in the query. + google.ads.googleads.v11.resources.MediaFile media_file = 90; + + // The mobile app category constant referenced in the query. + google.ads.googleads.v11.resources.MobileAppCategoryConstant mobile_app_category_constant = 87; + + // The mobile device constant referenced in the query. + google.ads.googleads.v11.resources.MobileDeviceConstant mobile_device_constant = 98; + + // The offline user data job referenced in the query. + google.ads.googleads.v11.resources.OfflineUserDataJob offline_user_data_job = 137; + + // The operating system version constant referenced in the query. + google.ads.googleads.v11.resources.OperatingSystemVersionConstant operating_system_version_constant = 86; + + // The paid organic search term view referenced in the query. + google.ads.googleads.v11.resources.PaidOrganicSearchTermView paid_organic_search_term_view = 129; + + // The parental status view referenced in the query. + google.ads.googleads.v11.resources.ParentalStatusView parental_status_view = 45; + + // The Product Bidding Category referenced in the query. + google.ads.googleads.v11.resources.ProductBiddingCategoryConstant product_bidding_category_constant = 109; + + // The product group view referenced in the query. + google.ads.googleads.v11.resources.ProductGroupView product_group_view = 54; + + // The recommendation referenced in the query. + google.ads.googleads.v11.resources.Recommendation recommendation = 22; + + // The search term view referenced in the query. + google.ads.googleads.v11.resources.SearchTermView search_term_view = 68; + + // The shared set referenced in the query. + google.ads.googleads.v11.resources.SharedCriterion shared_criterion = 29; + + // The shared set referenced in the query. + google.ads.googleads.v11.resources.SharedSet shared_set = 27; + + // The Smart campaign setting referenced in the query. + google.ads.googleads.v11.resources.SmartCampaignSetting smart_campaign_setting = 167; + + // The shopping performance view referenced in the query. + google.ads.googleads.v11.resources.ShoppingPerformanceView shopping_performance_view = 117; + + // The Smart campaign search term view referenced in the query. + google.ads.googleads.v11.resources.SmartCampaignSearchTermView smart_campaign_search_term_view = 170; + + // The AccountLink referenced in the query. + google.ads.googleads.v11.resources.ThirdPartyAppAnalyticsLink third_party_app_analytics_link = 144; + + // The topic view referenced in the query. + google.ads.googleads.v11.resources.TopicView topic_view = 44; + + // The experiment referenced in the query. + google.ads.googleads.v11.resources.Experiment experiment = 133; + + // The experiment arm referenced in the query. + google.ads.googleads.v11.resources.ExperimentArm experiment_arm = 183; + + // The user interest referenced in the query. + google.ads.googleads.v11.resources.UserInterest user_interest = 59; + + // The life event referenced in the query. + google.ads.googleads.v11.resources.LifeEvent life_event = 161; + + // The user list referenced in the query. + google.ads.googleads.v11.resources.UserList user_list = 38; + + // The user location view referenced in the query. + google.ads.googleads.v11.resources.UserLocationView user_location_view = 135; + + // The remarketing action referenced in the query. + google.ads.googleads.v11.resources.RemarketingAction remarketing_action = 60; + + // The topic constant referenced in the query. + google.ads.googleads.v11.resources.TopicConstant topic_constant = 31; + + // The video referenced in the query. + google.ads.googleads.v11.resources.Video video = 39; + + // The webpage view referenced in the query. + google.ads.googleads.v11.resources.WebpageView webpage_view = 162; + + // The lead form user submission referenced in the query. + google.ads.googleads.v11.resources.LeadFormSubmissionData lead_form_submission_data = 192; + + // The metrics. + google.ads.googleads.v11.common.Metrics metrics = 4; + + // The segments. + google.ads.googleads.v11.common.Segments segments = 102; +} + +// Request message for [GoogleAdsService.Mutate][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual resources. + repeated MutateOperation mutate_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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// Response message for [GoogleAdsService.Mutate][google.ads.googleads.v11.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 + // 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 responses for the mutate. + repeated MutateOperationResponse mutate_operation_responses = 1; +} + +// A single operation (create, update, remove) on a resource. +message MutateOperation { + // The mutate operation. + oneof operation { + // An ad group ad label mutate operation. + AdGroupAdLabelOperation ad_group_ad_label_operation = 17; + + // An ad group ad mutate operation. + AdGroupAdOperation ad_group_ad_operation = 1; + + // An ad group asset mutate operation. + AdGroupAssetOperation ad_group_asset_operation = 56; + + // An ad group bid modifier mutate operation. + AdGroupBidModifierOperation ad_group_bid_modifier_operation = 2; + + // An ad group criterion customizer mutate operation. + AdGroupCriterionCustomizerOperation ad_group_criterion_customizer_operation = 77; + + // An ad group criterion label mutate operation. + AdGroupCriterionLabelOperation ad_group_criterion_label_operation = 18; + + // An ad group criterion mutate operation. + AdGroupCriterionOperation ad_group_criterion_operation = 3; + + // An ad group customizer mutate operation. + AdGroupCustomizerOperation ad_group_customizer_operation = 75; + + // An ad group extension setting mutate operation. + AdGroupExtensionSettingOperation ad_group_extension_setting_operation = 19; + + // An ad group feed mutate operation. + AdGroupFeedOperation ad_group_feed_operation = 20; + + // An ad group label mutate operation. + AdGroupLabelOperation ad_group_label_operation = 21; + + // An ad group mutate operation. + AdGroupOperation ad_group_operation = 5; + + // An ad mutate operation. + AdOperation ad_operation = 49; + + // An ad parameter mutate operation. + AdParameterOperation ad_parameter_operation = 22; + + // An asset mutate operation. + AssetOperation asset_operation = 23; + + // An asset group asset mutate operation. + AssetGroupAssetOperation asset_group_asset_operation = 65; + + // An asset group listing group filter mutate operation. + AssetGroupListingGroupFilterOperation asset_group_listing_group_filter_operation = 78; + + // An asset group signal mutate operation. + AssetGroupSignalOperation asset_group_signal_operation = 80; + + // An asset group mutate operation. + AssetGroupOperation asset_group_operation = 62; + + // An asset set asset mutate operation. + AssetSetAssetOperation asset_set_asset_operation = 71; + + // An asset set mutate operation. + AssetSetOperation asset_set_operation = 72; + + // An audience mutate operation. + AudienceOperation audience_operation = 81; + + // A bidding data exclusion mutate operation. + BiddingDataExclusionOperation bidding_data_exclusion_operation = 58; + + // A bidding seasonality adjustment mutate operation. + BiddingSeasonalityAdjustmentOperation bidding_seasonality_adjustment_operation = 59; + + // A bidding strategy mutate operation. + BiddingStrategyOperation bidding_strategy_operation = 6; + + // A campaign asset mutate operation. + CampaignAssetOperation campaign_asset_operation = 52; + + // A campaign asset mutate operation. + CampaignAssetSetOperation campaign_asset_set_operation = 73; + + // A campaign bid modifier mutate operation. + CampaignBidModifierOperation campaign_bid_modifier_operation = 7; + + // A campaign budget mutate operation. + CampaignBudgetOperation campaign_budget_operation = 8; + + // A campaign conversion goal mutate operation. + CampaignConversionGoalOperation campaign_conversion_goal_operation = 67; + + // A campaign criterion mutate operation. + CampaignCriterionOperation campaign_criterion_operation = 13; + + // An campaign customizer mutate operation. + CampaignCustomizerOperation campaign_customizer_operation = 76; + + // A campaign draft mutate operation. + CampaignDraftOperation campaign_draft_operation = 24; + + // A campaign experiment mutate operation. + CampaignExperimentOperation campaign_experiment_operation = 25; + + // A campaign extension setting mutate operation. + CampaignExtensionSettingOperation campaign_extension_setting_operation = 26; + + // A campaign feed mutate operation. + CampaignFeedOperation campaign_feed_operation = 27; + + // A campaign group mutate operation. + CampaignGroupOperation campaign_group_operation = 9; + + // A campaign label mutate operation. + CampaignLabelOperation campaign_label_operation = 28; + + // A campaign mutate operation. + CampaignOperation campaign_operation = 10; + + // A campaign shared set mutate operation. + CampaignSharedSetOperation campaign_shared_set_operation = 11; + + // A conversion action mutate operation. + ConversionActionOperation conversion_action_operation = 12; + + // A conversion custom variable mutate operation. + ConversionCustomVariableOperation conversion_custom_variable_operation = 55; + + // A conversion goal campaign config mutate operation. + ConversionGoalCampaignConfigOperation conversion_goal_campaign_config_operation = 69; + + // A conversion value rule mutate operation. + ConversionValueRuleOperation conversion_value_rule_operation = 63; + + // A conversion value rule set mutate operation. + ConversionValueRuleSetOperation conversion_value_rule_set_operation = 64; + + // A custom conversion goal mutate operation. + CustomConversionGoalOperation custom_conversion_goal_operation = 68; + + // A customer asset mutate operation. + CustomerAssetOperation customer_asset_operation = 57; + + // A customer conversion goal mutate operation. + CustomerConversionGoalOperation customer_conversion_goal_operation = 66; + + // An customer customizer mutate operation. + CustomerCustomizerOperation customer_customizer_operation = 79; + + // A customer extension setting mutate operation. + CustomerExtensionSettingOperation customer_extension_setting_operation = 30; + + // A customer feed mutate operation. + CustomerFeedOperation customer_feed_operation = 31; + + // A customer label mutate operation. + CustomerLabelOperation customer_label_operation = 32; + + // A customer negative criterion mutate operation. + CustomerNegativeCriterionOperation customer_negative_criterion_operation = 34; + + // A customer mutate operation. + CustomerOperation customer_operation = 35; + + // An customizer attribute mutate operation. + CustomizerAttributeOperation customizer_attribute_operation = 70; + + // An experiment mutate operation. + ExperimentOperation experiment_operation = 82; + + // An experiment arm mutate operation. + ExperimentArmOperation experiment_arm_operation = 83; + + // An extension feed item mutate operation. + ExtensionFeedItemOperation extension_feed_item_operation = 36; + + // A feed item mutate operation. + FeedItemOperation feed_item_operation = 37; + + // A feed item set mutate operation. + FeedItemSetOperation feed_item_set_operation = 53; + + // A feed item set link mutate operation. + FeedItemSetLinkOperation feed_item_set_link_operation = 54; + + // A feed item target mutate operation. + FeedItemTargetOperation feed_item_target_operation = 38; + + // A feed mapping mutate operation. + FeedMappingOperation feed_mapping_operation = 39; + + // A feed mutate operation. + FeedOperation feed_operation = 40; + + // A keyword plan ad group operation. + KeywordPlanAdGroupOperation keyword_plan_ad_group_operation = 44; + + // A keyword plan ad group keyword operation. + KeywordPlanAdGroupKeywordOperation keyword_plan_ad_group_keyword_operation = 50; + + // A keyword plan campaign keyword operation. + KeywordPlanCampaignKeywordOperation keyword_plan_campaign_keyword_operation = 51; + + // A keyword plan campaign operation. + KeywordPlanCampaignOperation keyword_plan_campaign_operation = 45; + + // A keyword plan operation. + KeywordPlanOperation keyword_plan_operation = 48; + + // A label mutate operation. + LabelOperation label_operation = 41; + + // A media file mutate operation. + MediaFileOperation media_file_operation = 42; + + // A remarketing action mutate operation. + RemarketingActionOperation remarketing_action_operation = 43; + + // A shared criterion mutate operation. + SharedCriterionOperation shared_criterion_operation = 14; + + // A shared set mutate operation. + SharedSetOperation shared_set_operation = 15; + + // A Smart campaign setting mutate operation. + SmartCampaignSettingOperation smart_campaign_setting_operation = 61; + + // A user list mutate operation. + UserListOperation user_list_operation = 16; + } +} + +// Response message for the resource mutate. +message MutateOperationResponse { + // The mutate response. + oneof response { + // The result for the ad group ad label mutate. + MutateAdGroupAdLabelResult ad_group_ad_label_result = 17; + + // The result for the ad group ad mutate. + MutateAdGroupAdResult ad_group_ad_result = 1; + + // The result for the ad group asset mutate. + MutateAdGroupAssetResult ad_group_asset_result = 56; + + // The result for the ad group bid modifier mutate. + MutateAdGroupBidModifierResult ad_group_bid_modifier_result = 2; + + // The result for the ad group criterion customizer mutate. + MutateAdGroupCriterionCustomizerResult ad_group_criterion_customizer_result = 77; + + // The result for the ad group criterion label mutate. + MutateAdGroupCriterionLabelResult ad_group_criterion_label_result = 18; + + // The result for the ad group criterion mutate. + MutateAdGroupCriterionResult ad_group_criterion_result = 3; + + // The result for the ad group customizer mutate. + MutateAdGroupCustomizerResult ad_group_customizer_result = 75; + + // The result for the ad group extension setting mutate. + MutateAdGroupExtensionSettingResult ad_group_extension_setting_result = 19; + + // The result for the ad group feed mutate. + MutateAdGroupFeedResult ad_group_feed_result = 20; + + // The result for the ad group label mutate. + MutateAdGroupLabelResult ad_group_label_result = 21; + + // The result for the ad group mutate. + MutateAdGroupResult ad_group_result = 5; + + // The result for the ad parameter mutate. + MutateAdParameterResult ad_parameter_result = 22; + + // The result for the ad mutate. + MutateAdResult ad_result = 49; + + // The result for the asset mutate. + MutateAssetResult asset_result = 23; + + // The result for the asset group asset mutate. + MutateAssetGroupAssetResult asset_group_asset_result = 65; + + // The result for the asset group listing group filter mutate. + MutateAssetGroupListingGroupFilterResult asset_group_listing_group_filter_result = 78; + + // The result for the asset group signal mutate. + MutateAssetGroupSignalResult asset_group_signal_result = 79; + + // The result for the asset group mutate. + MutateAssetGroupResult asset_group_result = 62; + + // The result for the asset set asset mutate. + MutateAssetSetAssetResult asset_set_asset_result = 71; + + // The result for the asset set mutate. + MutateAssetSetResult asset_set_result = 72; + + // The result for the audience mutate. + MutateAudienceResult audience_result = 80; + + // The result for the bidding data exclusion mutate. + MutateBiddingDataExclusionsResult bidding_data_exclusion_result = 58; + + // The result for the bidding seasonality adjustment mutate. + MutateBiddingSeasonalityAdjustmentsResult bidding_seasonality_adjustment_result = 59; + + // The result for the bidding strategy mutate. + MutateBiddingStrategyResult bidding_strategy_result = 6; + + // The result for the campaign asset mutate. + MutateCampaignAssetResult campaign_asset_result = 52; + + // The result for the campaign asset set mutate. + MutateCampaignAssetSetResult campaign_asset_set_result = 73; + + // The result for the campaign bid modifier mutate. + MutateCampaignBidModifierResult campaign_bid_modifier_result = 7; + + // The result for the campaign budget mutate. + MutateCampaignBudgetResult campaign_budget_result = 8; + + // The result for the campaign conversion goal mutate. + MutateCampaignConversionGoalResult campaign_conversion_goal_result = 67; + + // The result for the campaign criterion mutate. + MutateCampaignCriterionResult campaign_criterion_result = 13; + + // The result for the campaign customizer mutate. + MutateCampaignCustomizerResult campaign_customizer_result = 76; + + // The result for the campaign draft mutate. + MutateCampaignDraftResult campaign_draft_result = 24; + + // The result for the campaign experiment mutate. + MutateCampaignExperimentResult campaign_experiment_result = 25; + + // The result for the campaign extension setting mutate. + MutateCampaignExtensionSettingResult campaign_extension_setting_result = 26; + + // The result for the campaign feed mutate. + MutateCampaignFeedResult campaign_feed_result = 27; + + // The result for the campaign group mutate. + MutateCampaignGroupResult campaign_group_result = 9; + + // The result for the campaign label mutate. + MutateCampaignLabelResult campaign_label_result = 28; + + // The result for the campaign mutate. + MutateCampaignResult campaign_result = 10; + + // The result for the campaign shared set mutate. + MutateCampaignSharedSetResult campaign_shared_set_result = 11; + + // The result for the conversion action mutate. + MutateConversionActionResult conversion_action_result = 12; + + // The result for the conversion custom variable mutate. + MutateConversionCustomVariableResult conversion_custom_variable_result = 55; + + // The result for the conversion goal campaign config mutate. + MutateConversionGoalCampaignConfigResult conversion_goal_campaign_config_result = 69; + + // The result for the conversion value rule mutate. + MutateConversionValueRuleResult conversion_value_rule_result = 63; + + // The result for the conversion value rule set mutate. + MutateConversionValueRuleSetResult conversion_value_rule_set_result = 64; + + // The result for the custom conversion goal mutate. + MutateCustomConversionGoalResult custom_conversion_goal_result = 68; + + // The result for the customer asset mutate. + MutateCustomerAssetResult customer_asset_result = 57; + + // The result for the customer conversion goal mutate. + MutateCustomerConversionGoalResult customer_conversion_goal_result = 66; + + // The result for the customer customizer mutate. + MutateCustomerCustomizerResult customer_customizer_result = 74; + + // The result for the customer extension setting mutate. + MutateCustomerExtensionSettingResult customer_extension_setting_result = 30; + + // The result for the customer feed mutate. + MutateCustomerFeedResult customer_feed_result = 31; + + // The result for the customer label mutate. + MutateCustomerLabelResult customer_label_result = 32; + + // The result for the customer negative criterion mutate. + MutateCustomerNegativeCriteriaResult customer_negative_criterion_result = 34; + + // The result for the customer mutate. + MutateCustomerResult customer_result = 35; + + // The result for the customizer attribute mutate. + MutateCustomizerAttributeResult customizer_attribute_result = 70; + + // The result for the experiment mutate. + MutateExperimentResult experiment_result = 81; + + // The result for the experiment arm mutate. + MutateExperimentArmResult experiment_arm_result = 82; + + // The result for the extension feed item mutate. + MutateExtensionFeedItemResult extension_feed_item_result = 36; + + // The result for the feed item mutate. + MutateFeedItemResult feed_item_result = 37; + + // The result for the feed item set mutate. + MutateFeedItemSetResult feed_item_set_result = 53; + + // The result for the feed item set link mutate. + MutateFeedItemSetLinkResult feed_item_set_link_result = 54; + + // The result for the feed item target mutate. + MutateFeedItemTargetResult feed_item_target_result = 38; + + // The result for the feed mapping mutate. + MutateFeedMappingResult feed_mapping_result = 39; + + // The result for the feed mutate. + MutateFeedResult feed_result = 40; + + // The result for the keyword plan ad group mutate. + MutateKeywordPlanAdGroupResult keyword_plan_ad_group_result = 44; + + // The result for the keyword plan campaign mutate. + MutateKeywordPlanCampaignResult keyword_plan_campaign_result = 45; + + // The result for the keyword plan ad group keyword mutate. + MutateKeywordPlanAdGroupKeywordResult keyword_plan_ad_group_keyword_result = 50; + + // The result for the keyword plan campaign keyword mutate. + MutateKeywordPlanCampaignKeywordResult keyword_plan_campaign_keyword_result = 51; + + // The result for the keyword plan mutate. + MutateKeywordPlansResult keyword_plan_result = 48; + + // 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 remarketing action mutate. + MutateRemarketingActionResult remarketing_action_result = 43; + + // The result for the shared criterion mutate. + MutateSharedCriterionResult shared_criterion_result = 14; + + // The result for the shared set mutate. + MutateSharedSetResult shared_set_result = 15; + + // The result for the Smart campaign setting mutate. + MutateSmartCampaignSettingResult smart_campaign_setting_result = 61; + + // The result for the user list mutate. + MutateUserListResult user_list_result = 16; + } +} diff --git a/google/ads/googleads/v11/services/invoice_service.proto b/google/ads/googleads/v11/services/invoice_service.proto new file mode 100644 index 000000000..d48ee2849 --- /dev/null +++ b/google/ads/googleads/v11/services/invoice_service.proto @@ -0,0 +1,83 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/month_of_year.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "InvoiceServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Invoice service. + +// A service to fetch invoices issued for a billing setup during a given month. +service InvoiceService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns all invoices associated with a billing setup, for a given month. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [InvoiceError]() + // [QuotaError]() + // [RequestError]() + rpc ListInvoices(ListInvoicesRequest) returns (ListInvoicesResponse) { + option (google.api.http) = { + get: "/v11/customers/{customer_id=*}/invoices" + }; + option (google.api.method_signature) = "customer_id,billing_setup,issue_year,issue_month"; + } +} + +// Request message for fetching the invoices of a given billing setup that were +// issued during a given month. +message ListInvoicesRequest { + // Required. The ID of the customer to fetch invoices for. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The billing setup resource name of the requested invoices. + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + string billing_setup = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The issue year to retrieve invoices, in yyyy format. Only + // invoices issued in 2019 or later can be retrieved. + string issue_year = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The issue month to retrieve invoices. + google.ads.googleads.v11.enums.MonthOfYearEnum.MonthOfYear issue_month = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [InvoiceService.ListInvoices][google.ads.googleads.v11.services.InvoiceService.ListInvoices]. +message ListInvoicesResponse { + // The list of invoices that match the billing setup and time period. + repeated google.ads.googleads.v11.resources.Invoice invoices = 1; +} diff --git a/google/ads/googleads/v11/services/keyword_plan_ad_group_keyword_service.proto b/google/ads/googleads/v11/services/keyword_plan_ad_group_keyword_service.proto new file mode 100644 index 000000000..bdf201767 --- /dev/null +++ b/google/ads/googleads/v11/services/keyword_plan_ad_group_keyword_service.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/keyword_plan_ad_group_keyword.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupKeywordServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the keyword plan ad group keyword service. + +// Service to manage Keyword Plan ad group keywords. KeywordPlanAdGroup is +// required to add ad group keywords. Positive and negative keywords are +// supported. A maximum of 10,000 positive keywords are allowed per keyword +// plan. A maximum of 1,000 negative keywords are allower per keyword plan. This +// includes campaign negative keywords and ad group negative keywords. +service KeywordPlanAdGroupKeywordService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes Keyword Plan ad group keywords. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanAdGroupKeywordError]() + // [KeywordPlanError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateKeywordPlanAdGroupKeywords(MutateKeywordPlanAdGroupKeywordsRequest) returns (MutateKeywordPlanAdGroupKeywordsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords][google.ads.googleads.v11.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords]. +message MutateKeywordPlanAdGroupKeywordsRequest { + // Required. The ID of the customer whose Keyword Plan ad group keywords are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Keyword Plan ad group + // keywords. + repeated KeywordPlanAdGroupKeywordOperation 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; +} + +// A single operation (create, update, remove) on a Keyword Plan ad group +// keyword. +message KeywordPlanAdGroupKeywordOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new Keyword Plan + // ad group keyword. + google.ads.googleads.v11.resources.KeywordPlanAdGroupKeyword create = 1; + + // Update operation: The Keyword Plan ad group keyword is expected to have a + // valid resource name. + google.ads.googleads.v11.resources.KeywordPlanAdGroupKeyword update = 2; + + // Remove operation: A resource name for the removed Keyword Plan ad group + // keyword is expected, in this format: + // + // `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" + }]; + } +} + +// Response message for a Keyword Plan ad group keyword mutate. +message MutateKeywordPlanAdGroupKeywordsResponse { + // 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 MutateKeywordPlanAdGroupKeywordResult results = 2; +} + +// The result for the Keyword Plan ad group keyword mutate. +message MutateKeywordPlanAdGroupKeywordResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" + }]; +} diff --git a/google/ads/googleads/v11/services/keyword_plan_ad_group_service.proto b/google/ads/googleads/v11/services/keyword_plan_ad_group_service.proto new file mode 100644 index 000000000..bd3a2d457 --- /dev/null +++ b/google/ads/googleads/v11/services/keyword_plan_ad_group_service.proto @@ -0,0 +1,134 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/keyword_plan_ad_group.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanAdGroupServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the keyword plan ad group service. + +// Service to manage Keyword Plan ad groups. +service KeywordPlanAdGroupService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes Keyword Plan ad groups. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanAdGroupError]() + // [KeywordPlanError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateKeywordPlanAdGroups(MutateKeywordPlanAdGroupsRequest) returns (MutateKeywordPlanAdGroupsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v11.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. +message MutateKeywordPlanAdGroupsRequest { + // Required. The ID of the customer whose Keyword Plan ad groups are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Keyword Plan ad groups. + repeated KeywordPlanAdGroupOperation 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; +} + +// A single operation (create, update, remove) on a Keyword Plan ad group. +message KeywordPlanAdGroupOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new Keyword Plan + // ad group. + google.ads.googleads.v11.resources.KeywordPlanAdGroup create = 1; + + // Update operation: The Keyword Plan ad group is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.KeywordPlanAdGroup update = 2; + + // Remove operation: A resource name for the removed Keyword Plan ad group + // is expected, in this format: + // + // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + }]; + } +} + +// Response message for a Keyword Plan ad group mutate. +message MutateKeywordPlanAdGroupsResponse { + // 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. The order of the results is determined by the + // order of the keywords in the original request. + repeated MutateKeywordPlanAdGroupResult results = 2; +} + +// The result for the Keyword Plan ad group mutate. +message MutateKeywordPlanAdGroupResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanAdGroup" + }]; +} diff --git a/google/ads/googleads/v11/services/keyword_plan_campaign_keyword_service.proto b/google/ads/googleads/v11/services/keyword_plan_campaign_keyword_service.proto new file mode 100644 index 000000000..43757166b --- /dev/null +++ b/google/ads/googleads/v11/services/keyword_plan_campaign_keyword_service.proto @@ -0,0 +1,136 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/keyword_plan_campaign_keyword.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignKeywordServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the keyword plan campaign keyword service. + +// Service to manage Keyword Plan campaign keywords. KeywordPlanCampaign is +// required to add the campaign keywords. Only negative keywords are supported. +// A maximum of 1000 negative keywords are allowed per plan. This includes both +// campaign negative keywords and ad group negative keywords. +service KeywordPlanCampaignKeywordService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes Keyword Plan campaign keywords. Operation + // statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanAdGroupKeywordError]() + // [KeywordPlanCampaignKeywordError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateKeywordPlanCampaignKeywords(MutateKeywordPlanCampaignKeywordsRequest) returns (MutateKeywordPlanCampaignKeywordsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords][google.ads.googleads.v11.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords]. +message MutateKeywordPlanCampaignKeywordsRequest { + // Required. The ID of the customer whose campaign keywords are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Keyword Plan campaign + // keywords. + repeated KeywordPlanCampaignKeywordOperation 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; +} + +// A single operation (create, update, remove) on a Keyword Plan campaign +// keyword. +message KeywordPlanCampaignKeywordOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new Keyword Plan + // campaign keyword. + google.ads.googleads.v11.resources.KeywordPlanCampaignKeyword create = 1; + + // Update operation: The Keyword Plan campaign keyword expected to have a + // valid resource name. + google.ads.googleads.v11.resources.KeywordPlanCampaignKeyword update = 2; + + // Remove operation: A resource name for the removed Keyword Plan campaign + // keywords expected in this format: + // + // `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" + }]; + } +} + +// Response message for a Keyword Plan campaign keyword mutate. +message MutateKeywordPlanCampaignKeywordsResponse { + // 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 MutateKeywordPlanCampaignKeywordResult results = 2; +} + +// The result for the Keyword Plan campaign keyword mutate. +message MutateKeywordPlanCampaignKeywordResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" + }]; +} diff --git a/google/ads/googleads/v11/services/keyword_plan_campaign_service.proto b/google/ads/googleads/v11/services/keyword_plan_campaign_service.proto new file mode 100644 index 000000000..83f622263 --- /dev/null +++ b/google/ads/googleads/v11/services/keyword_plan_campaign_service.proto @@ -0,0 +1,135 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/keyword_plan_campaign.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanCampaignServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the keyword plan campaign service. + +// Service to manage Keyword Plan campaigns. +service KeywordPlanCampaignService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes Keyword Plan campaigns. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanCampaignError]() + // [KeywordPlanError]() + // [ListOperationError]() + // [MutateError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + rpc MutateKeywordPlanCampaigns(MutateKeywordPlanCampaignsRequest) returns (MutateKeywordPlanCampaignsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v11.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. +message MutateKeywordPlanCampaignsRequest { + // Required. The ID of the customer whose Keyword Plan campaigns are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Keyword Plan campaigns. + repeated KeywordPlanCampaignOperation 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; +} + +// A single operation (create, update, remove) on a Keyword Plan campaign. +message KeywordPlanCampaignOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new Keyword Plan + // campaign. + google.ads.googleads.v11.resources.KeywordPlanCampaign create = 1; + + // Update operation: The Keyword Plan campaign is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.KeywordPlanCampaign update = 2; + + // Remove operation: A resource name for the removed Keyword Plan campaign + // is expected, in this format: + // + // `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + }]; + } +} + +// Response message for a Keyword Plan campaign mutate. +message MutateKeywordPlanCampaignsResponse { + // 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 MutateKeywordPlanCampaignResult results = 2; +} + +// The result for the Keyword Plan campaign mutate. +message MutateKeywordPlanCampaignResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlanCampaign" + }]; +} diff --git a/google/ads/googleads/v11/services/keyword_plan_idea_service.proto b/google/ads/googleads/v11/services/keyword_plan_idea_service.proto new file mode 100644 index 000000000..9693829af --- /dev/null +++ b/google/ads/googleads/v11/services/keyword_plan_idea_service.proto @@ -0,0 +1,352 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/keyword_plan_common.proto"; +import "google/ads/googleads/v11/enums/keyword_match_type.proto"; +import "google/ads/googleads/v11/enums/keyword_plan_keyword_annotation.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanIdeaServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the keyword plan idea service. + +// Service to generate keyword ideas. +service KeywordPlanIdeaService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns a list of keyword ideas. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanIdeaError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateKeywordIdeas(GenerateKeywordIdeasRequest) returns (GenerateKeywordIdeaResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:generateKeywordIdeas" + body: "*" + }; + } + + // Returns a list of keyword historical metrics. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateKeywordHistoricalMetrics(GenerateKeywordHistoricalMetricsRequest) returns (GenerateKeywordHistoricalMetricsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + body: "*" + }; + } + + // Returns a list of suggested AdGroups and suggested modifications + // (text, match type) for the given keywords. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateAdGroupThemes(GenerateAdGroupThemesRequest) returns (GenerateAdGroupThemesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:generateAdGroupThemes" + body: "*" + }; + } +} + +// Request message for [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v11.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. +message GenerateKeywordIdeasRequest { + // The ID of the customer with the recommendation. + string customer_id = 1; + + // The resource name of the language to target. + // Each keyword belongs to some set of languages; a keyword is included if + // language is one of its languages. + // If not set, all keywords will be included. + optional string language = 14; + + // The resource names of the location to target. Maximum is 10. + // An empty list MAY be used to specify all targeting geos. + repeated string geo_target_constants = 15; + + // If true, adult keywords will be included in response. + // The default value is false. + bool include_adult_keywords = 10; + + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. To request next page of results use the + // value obtained from `next_page_token` in the previous response. + // The request fields must match across pages. + string page_token = 12; + + // Number of results to retrieve in a single page. + // A maximum of 10,000 results may be returned, if the page_size + // exceeds this, it is ignored. + // If unspecified, at most 10,000 results will be returned. + // The server may decide to further limit the number of returned resources. + // If the response contains fewer than 10,000 results it may not be assumed + // as last page of results. + int32 page_size = 13; + + // Targeting network. + // If not set, Google Search And Partners Network will be used. + google.ads.googleads.v11.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 9; + + // The keyword annotations to include in response. + repeated google.ads.googleads.v11.enums.KeywordPlanKeywordAnnotationEnum.KeywordPlanKeywordAnnotation keyword_annotation = 17; + + // The aggregate fields to include in response. + google.ads.googleads.v11.common.KeywordPlanAggregateMetrics aggregate_metrics = 16; + + // The options for historical metrics data. + google.ads.googleads.v11.common.HistoricalMetricsOptions historical_metrics_options = 18; + + // The type of seed to generate keyword ideas. + oneof seed { + // A Keyword and a specific Url to generate ideas from + // for example, cars, www.example.com/cars. + KeywordAndUrlSeed keyword_and_url_seed = 2; + + // A Keyword or phrase to generate ideas from, for example, cars. + KeywordSeed keyword_seed = 3; + + // A specific url to generate ideas from, for example, www.example.com/cars. + UrlSeed url_seed = 5; + + // The site to generate ideas from, for example, www.example.com. + SiteSeed site_seed = 11; + } +} + +// Keyword And Url Seed +message KeywordAndUrlSeed { + // The URL to crawl in order to generate keyword ideas. + optional string url = 3; + + // Requires at least one keyword. + repeated string keywords = 4; +} + +// Keyword Seed +message KeywordSeed { + // Requires at least one keyword. + repeated string keywords = 2; +} + +// Site Seed +message SiteSeed { + // The domain name of the site. If the customer requesting the ideas doesn't + // own the site provided only public information is returned. + optional string site = 2; +} + +// Url Seed +message UrlSeed { + // The URL to crawl in order to generate keyword ideas. + optional string url = 2; +} + +// Response message for [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v11.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. +message GenerateKeywordIdeaResponse { + // Results of generating keyword ideas. + repeated GenerateKeywordIdeaResult results = 1; + + // The aggregate metrics for all keyword ideas. + google.ads.googleads.v11.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 4; + + // 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. + // `next_page_token` is not returned for the last page. + string next_page_token = 2; + + // Total number of results available. + int64 total_size = 3; +} + +// The result of generating keyword ideas. +message GenerateKeywordIdeaResult { + // Text of the keyword idea. + // As in Keyword Plan historical metrics, this text may not be an actual + // keyword, but the canonical form of multiple keywords. + // See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService. + optional string text = 5; + + // The historical metrics for the keyword. + google.ads.googleads.v11.common.KeywordPlanHistoricalMetrics keyword_idea_metrics = 3; + + // The annotations for the keyword. + // The annotation data is only provided if requested. + google.ads.googleads.v11.common.KeywordAnnotations keyword_annotations = 6; + + // The list of close variants from the requested keywords that + // are combined into this GenerateKeywordIdeaResult. See + // https://support.google.com/google-ads/answer/9342105 for the + // definition of "close variants". + repeated string close_variants = 7; +} + +// Request message for +// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v11.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. +message GenerateKeywordHistoricalMetricsRequest { + // The ID of the customer with the recommendation. + string customer_id = 1; + + // A list of keywords to get historical metrics. + // Not all inputs will be returned as a result of near-exact deduplication. + // For example, if stats for "car" and "cars" are requested, only "car" will + // be returned. + // A maximum of 10,000 keywords can be used. + repeated string keywords = 2; + + // The resource name of the language to target. + // Each keyword belongs to some set of languages; a keyword is included if + // language is one of its languages. + // If not set, all keywords will be included. + optional string language = 4; + + // If true, adult keywords will be included in response. + // The default value is false. + bool include_adult_keywords = 5; + + // The resource names of the location to target. Maximum is 10. + // An empty list MAY be used to specify all targeting geos. + repeated string geo_target_constants = 6; + + // Targeting network. + // If not set, Google Search And Partners Network will be used. + google.ads.googleads.v11.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 7; + + // The aggregate fields to include in response. + google.ads.googleads.v11.common.KeywordPlanAggregateMetrics aggregate_metrics = 8; + + // The options for historical metrics data. + google.ads.googleads.v11.common.HistoricalMetricsOptions historical_metrics_options = 3; +} + +// Response message for +// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v11.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.v11.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 2; +} + +// The result of generating keyword historical metrics. +message GenerateKeywordHistoricalMetricsResult { + // The text of the query associated with one or more keywords. + // Note that we de-dupe your keywords list, eliminating close variants + // before returning the keywords as text. For example, if your request + // originally contained the keywords "car" and "cars", the returned search + // query will only contain "cars". The list of de-duped queries will be + // included in close_variants field. + optional string text = 1; + + // The list of close variants from the requested keywords whose stats + // are combined into this GenerateKeywordHistoricalMetricsResult. + repeated string close_variants = 3; + + // The historical metrics for text and its close variants + google.ads.googleads.v11.common.KeywordPlanHistoricalMetrics keyword_metrics = 2; +} + +// Request message for +// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v11.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. +message GenerateAdGroupThemesRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of keywords to group into the provided AdGroups. + repeated string keywords = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of resource names of AdGroups to group keywords into. + // Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}` + repeated string ad_groups = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v11.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. +message GenerateAdGroupThemesResponse { + // A list of suggested AdGroup/keyword pairings. + repeated AdGroupKeywordSuggestion ad_group_keyword_suggestions = 1; + + // A list of provided AdGroups that could not be used as suggestions. + repeated UnusableAdGroup unusable_ad_groups = 2; +} + +// The suggested text and AdGroup/Campaign pairing for a given keyword. +message AdGroupKeywordSuggestion { + // The original keyword text. + string keyword_text = 1; + + // The normalized version of keyword_text for BROAD/EXACT/PHRASE suggestions. + string suggested_keyword_text = 2; + + // The suggested keyword match type. + google.ads.googleads.v11.enums.KeywordMatchTypeEnum.KeywordMatchType suggested_match_type = 3; + + // The suggested AdGroup for the keyword. + // Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}` + string suggested_ad_group = 4; + + // The suggested Campaign for the keyword. + // Resource name format: `customers/{customer_id}/campaigns/{campaign_id}` + string suggested_campaign = 5; +} + +// An AdGroup/Campaign pair that could not be used as a suggestion for keywords. +// +// AdGroups may not be usable if the AdGroup +// * belongs to Campaign that is not ENABLED or PAUSED +// * is itself not ENABLED +message UnusableAdGroup { + // The AdGroup resource name. + // Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}` + string ad_group = 1; + + // The Campaign resource name. + // Resource name format: `customers/{customer_id}/campaigns/{campaign_id}` + string campaign = 2; +} diff --git a/google/ads/googleads/v11/services/keyword_plan_service.proto b/google/ads/googleads/v11/services/keyword_plan_service.proto new file mode 100644 index 000000000..8039ed6cd --- /dev/null +++ b/google/ads/googleads/v11/services/keyword_plan_service.proto @@ -0,0 +1,421 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/keyword_plan_common.proto"; +import "google/ads/googleads/v11/resources/keyword_plan.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordPlanServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the keyword plan service. + +// Service to manage keyword plans. +service KeywordPlanService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes keyword plans. Operation statuses are + // returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [MutateError]() + // [NewResourceCreationError]() + // [QuotaError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [StringLengthError]() + rpc MutateKeywordPlans(MutateKeywordPlansRequest) returns (MutateKeywordPlansResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/keywordPlans:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Returns the requested Keyword Plan forecast curve. + // Only the bidding strategy is considered for generating forecast curve. + // The bidding strategy value specified in the plan is ignored. + // + // To generate a forecast at a value specified in the plan, use + // KeywordPlanService.GenerateForecastMetrics. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateForecastCurve(GenerateForecastCurveRequest) returns (GenerateForecastCurveResponse) { + option (google.api.http) = { + post: "/v11/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" + body: "*" + }; + option (google.api.method_signature) = "keyword_plan"; + } + + // Returns a forecast in the form of a time series for the Keyword Plan over + // the next 52 weeks. + // (1) Forecasts closer to the current date are generally more accurate than + // further out. + // + // (2) The forecast reflects seasonal trends using current and + // prior traffic patterns. The forecast period of the plan is ignored. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateForecastTimeSeries(GenerateForecastTimeSeriesRequest) returns (GenerateForecastTimeSeriesResponse) { + option (google.api.http) = { + post: "/v11/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" + body: "*" + }; + option (google.api.method_signature) = "keyword_plan"; + } + + // Returns the requested Keyword Plan forecasts. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateForecastMetrics(GenerateForecastMetricsRequest) returns (GenerateForecastMetricsResponse) { + option (google.api.http) = { + post: "/v11/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" + body: "*" + }; + option (google.api.method_signature) = "keyword_plan"; + } + + // Returns the requested Keyword Plan historical metrics. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [KeywordPlanError]() + // [QuotaError]() + // [RequestError]() + rpc GenerateHistoricalMetrics(GenerateHistoricalMetricsRequest) returns (GenerateHistoricalMetricsResponse) { + option (google.api.http) = { + post: "/v11/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" + body: "*" + }; + option (google.api.method_signature) = "keyword_plan"; + } +} + +// Request message for [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual keyword plans. + repeated KeywordPlanOperation 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; +} + +// A single operation (create, update, remove) on a keyword plan. +message KeywordPlanOperation { + // The FieldMask that determines which resource fields are modified in an + // update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new keyword plan. + google.ads.googleads.v11.resources.KeywordPlan create = 1; + + // Update operation: The keyword plan is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.KeywordPlan update = 2; + + // Remove operation: A resource name for the removed keyword plan is + // expected in this format: + // + // `customers/{customer_id}/keywordPlans/{keyword_plan_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + }]; + } +} + +// Response message for a keyword plan mutate. +message MutateKeywordPlansResponse { + // 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 MutateKeywordPlansResult results = 2; +} + +// The result for the keyword plan mutate. +message MutateKeywordPlansResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + }]; +} + +// Request message for [KeywordPlanService.GenerateForecastCurve][google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastCurve]. +message GenerateForecastCurveRequest { + // Required. The resource name of the keyword plan to be forecasted. + string keyword_plan = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; +} + +// Response message for [KeywordPlanService.GenerateForecastCurve][google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastCurve]. +message GenerateForecastCurveResponse { + // List of forecast curves for the keyword plan campaign. + // One maximum. + repeated KeywordPlanCampaignForecastCurve campaign_forecast_curves = 1; +} + +// Request message for [KeywordPlanService.GenerateForecastTimeSeries][google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastTimeSeries]. +message GenerateForecastTimeSeriesRequest { + // Required. The resource name of the keyword plan to be forecasted. + string keyword_plan = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; +} + +// Response message for [KeywordPlanService.GenerateForecastTimeSeries][google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastTimeSeries]. +message GenerateForecastTimeSeriesResponse { + // List of weekly time series forecasts for the keyword plan campaign. + // One maximum. + repeated KeywordPlanWeeklyTimeSeriesForecast weekly_time_series_forecasts = 1; +} + +// Request message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastMetrics]. +message GenerateForecastMetricsRequest { + // Required. The resource name of the keyword plan to be forecasted. + string keyword_plan = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; +} + +// Response message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v11.services.KeywordPlanService.GenerateForecastMetrics]. +message GenerateForecastMetricsResponse { + // List of campaign forecasts. + // One maximum. + repeated KeywordPlanCampaignForecast campaign_forecasts = 1; + + // List of ad group forecasts. + repeated KeywordPlanAdGroupForecast ad_group_forecasts = 2; + + // List of keyword forecasts. + repeated KeywordPlanKeywordForecast keyword_forecasts = 3; +} + +// A campaign forecast. +message KeywordPlanCampaignForecast { + // The resource name of the Keyword Plan campaign related to the forecast. + // + // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` + optional string keyword_plan_campaign = 3; + + // The forecast for the Keyword Plan campaign. + ForecastMetrics campaign_forecast = 2; +} + +// An ad group forecast. +message KeywordPlanAdGroupForecast { + // The resource name of the Keyword Plan ad group related to the forecast. + // + // `customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}` + optional string keyword_plan_ad_group = 3; + + // The forecast for the Keyword Plan ad group. + ForecastMetrics ad_group_forecast = 2; +} + +// A keyword forecast. +message KeywordPlanKeywordForecast { + // The resource name of the Keyword Plan keyword related to the forecast. + // + // `customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}` + optional string keyword_plan_ad_group_keyword = 3; + + // The forecast for the Keyword Plan keyword. + ForecastMetrics keyword_forecast = 2; +} + +// The forecast curve for the campaign. +message KeywordPlanCampaignForecastCurve { + // The resource name of the Keyword Plan campaign related to the forecast. + // + // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` + optional string keyword_plan_campaign = 3; + + // The max cpc bid forecast curve for the campaign. + KeywordPlanMaxCpcBidForecastCurve max_cpc_bid_forecast_curve = 2; +} + +// The max cpc bid forecast curve. +message KeywordPlanMaxCpcBidForecastCurve { + // The forecasts for the Keyword Plan campaign at different max CPC bids. + repeated KeywordPlanMaxCpcBidForecast max_cpc_bid_forecasts = 1; +} + +// The forecast of the campaign at a specific bid. +message KeywordPlanMaxCpcBidForecast { + // The max cpc bid in micros. + optional int64 max_cpc_bid_micros = 3; + + // The forecast for the Keyword Plan campaign at the specific bid. + ForecastMetrics max_cpc_bid_forecast = 2; +} + +// The weekly time series forecast for the keyword plan campaign. +message KeywordPlanWeeklyTimeSeriesForecast { + // The resource name of the Keyword Plan campaign related to the forecast. + // + // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` + optional string keyword_plan_campaign = 1; + + // The forecasts for the Keyword Plan campaign at different max CPC bids. + repeated KeywordPlanWeeklyForecast weekly_forecasts = 2; +} + +// The forecast of the campaign for the week starting start_date. +message KeywordPlanWeeklyForecast { + // The start date, in yyyy-mm-dd format. This date is inclusive. + optional string start_date = 1; + + // The forecast for the Keyword Plan campaign for the week. + ForecastMetrics forecast = 2; +} + +// Forecast metrics. +message ForecastMetrics { + // Impressions + optional double impressions = 7; + + // Ctr + optional double ctr = 8; + + // AVG cpc + optional int64 average_cpc = 9; + + // Clicks + optional double clicks = 10; + + // Cost + optional int64 cost_micros = 11; +} + +// Request message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v11.services.KeywordPlanService.GenerateHistoricalMetrics]. +message GenerateHistoricalMetricsRequest { + // Required. The resource name of the keyword plan of which historical metrics are + // requested. + string keyword_plan = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordPlan" + } + ]; + + // The aggregate fields to include in response. + google.ads.googleads.v11.common.KeywordPlanAggregateMetrics aggregate_metrics = 2; + + // The options for historical metrics data. + google.ads.googleads.v11.common.HistoricalMetricsOptions historical_metrics_options = 3; +} + +// Response message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v11.services.KeywordPlanService.GenerateHistoricalMetrics]. +message GenerateHistoricalMetricsResponse { + // List of keyword historical metrics. + repeated KeywordPlanKeywordHistoricalMetrics metrics = 1; + + // The aggregate metrics for all the keywords in the keyword planner plan. + google.ads.googleads.v11.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 2; +} + +// A keyword historical metrics. +message KeywordPlanKeywordHistoricalMetrics { + // The text of the query associated with one or more ad_group_keywords in the + // plan. + // + // Note that we de-dupe your keywords list, eliminating close variants before + // returning the plan's keywords as text. For example, if your plan originally + // contained the keywords 'car' and 'cars', the returned search query will + // only contain 'cars'. + // Starting V5, the list of de-duped queries will be included in + // close_variants field. + optional string search_query = 4; + + // The list of close variant queries for search_query whose search results + // are combined into the search_query. + repeated string close_variants = 3; + + // The historical metrics for the query associated with one or more + // ad_group_keywords in the plan. + google.ads.googleads.v11.common.KeywordPlanHistoricalMetrics keyword_metrics = 2; +} diff --git a/google/ads/googleads/v11/services/keyword_theme_constant_service.proto b/google/ads/googleads/v11/services/keyword_theme_constant_service.proto new file mode 100644 index 000000000..ac26c79fc --- /dev/null +++ b/google/ads/googleads/v11/services/keyword_theme_constant_service.proto @@ -0,0 +1,77 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/keyword_theme_constant.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "KeywordThemeConstantServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Smart Campaign keyword theme constant service. + +// Service to fetch Smart Campaign keyword themes. +service KeywordThemeConstantService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns KeywordThemeConstant suggestions by keyword themes. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc SuggestKeywordThemeConstants(SuggestKeywordThemeConstantsRequest) returns (SuggestKeywordThemeConstantsResponse) { + option (google.api.http) = { + post: "/v11/keywordThemeConstants:suggest" + body: "*" + }; + } +} + +// Request message for +// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v11.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". + string query_text = 1; + + // Upper-case, two-letter country code as defined by ISO-3166. This for + // refining the scope of the query, default to 'US' if not set. + string country_code = 2; + + // The two letter language code for get corresponding keyword theme for + // refining the scope of the query, default to 'en' if not set. + string language_code = 3; +} + +// Response message for +// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v11.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. +message SuggestKeywordThemeConstantsResponse { + // Smart Campaign keyword theme suggestions. + repeated google.ads.googleads.v11.resources.KeywordThemeConstant keyword_theme_constants = 1; +} diff --git a/google/ads/googleads/v11/services/label_service.proto b/google/ads/googleads/v11/services/label_service.proto new file mode 100644 index 000000000..bc2625922 --- /dev/null +++ b/google/ads/googleads/v11/services/label_service.proto @@ -0,0 +1,145 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/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/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "LabelServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Service to manage labels. +service LabelService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes labels. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [LabelError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateLabels(MutateLabelsRequest) returns (MutateLabelsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/labels:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [LabelService.MutateLabels][google.ads.googleads.v11.services.LabelService.MutateLabels]. +message MutateLabelsRequest { + // Required. ID of the customer whose labels are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on labels. + repeated LabelOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove, update) on a label. +message LabelOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new label. + google.ads.googleads.v11.resources.Label create = 1; + + // Update operation: The label is expected to have a valid resource name. + google.ads.googleads.v11.resources.Label update = 2; + + // Remove operation: A resource name for the label being removed, in + // this format: + // + // `customers/{customer_id}/labels/{label_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + }]; + } +} + +// Response message for a labels mutate. +message MutateLabelsResponse { + // 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 MutateLabelResult results = 2; +} + +// The result for a label mutate. +message MutateLabelResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Label" + }]; + + // 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.v11.resources.Label label = 2; +} diff --git a/google/ads/googleads/v11/services/media_file_service.proto b/google/ads/googleads/v11/services/media_file_service.proto new file mode 100644 index 000000000..cdbb08852 --- /dev/null +++ b/google/ads/googleads/v11/services/media_file_service.proto @@ -0,0 +1,131 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "MediaFileServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::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: "/v11/customers/{customer_id=*}/mediaFiles:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [MediaFileService.MutateMediaFiles][google.ads.googleads.v11.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.v11.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.v11.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.v11.resources.MediaFile media_file = 2; +} diff --git a/google/ads/googleads/v11/services/merchant_center_link_service.proto b/google/ads/googleads/v11/services/merchant_center_link_service.proto new file mode 100644 index 000000000..7180a749f --- /dev/null +++ b/google/ads/googleads/v11/services/merchant_center_link_service.proto @@ -0,0 +1,164 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "MerchantCenterLinkServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::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: "/v11/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.v11.resources.MerchantCenterLink) { + option (google.api.http) = { + get: "/v11/{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: "/v11/customers/{customer_id=*}/merchantCenterLinks:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for [MerchantCenterLinkService.ListMerchantCenterLinks][google.ads.googleads.v11.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.v11.services.MerchantCenterLinkService.ListMerchantCenterLinks]. +message ListMerchantCenterLinksResponse { + // Merchant Center links available for the requested customer + repeated google.ads.googleads.v11.resources.MerchantCenterLink merchant_center_links = 1; +} + +// Request message for [MerchantCenterLinkService.GetMerchantCenterLink][google.ads.googleads.v11.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.v11.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.v11.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/google/ads/googleads/v11/services/offline_user_data_job_service.proto b/google/ads/googleads/v11/services/offline_user_data_job_service.proto new file mode 100644 index 000000000..5073ce054 --- /dev/null +++ b/google/ads/googleads/v11/services/offline_user_data_job_service.proto @@ -0,0 +1,212 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/offline_user_data.proto"; +import "google/ads/googleads/v11/resources/offline_user_data_job.proto"; +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/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "OfflineUserDataJobServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the OfflineUserDataJobService. + +// Service to manage offline user data jobs. +service OfflineUserDataJobService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates an offline user data job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [NotAllowlistedError]() + // [OfflineUserDataJobError]() + // [QuotaError]() + // [RequestError]() + rpc CreateOfflineUserDataJob(CreateOfflineUserDataJobRequest) returns (CreateOfflineUserDataJobResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/offlineUserDataJobs:create" + body: "*" + }; + option (google.api.method_signature) = "customer_id,job"; + } + + // Adds operations to the offline user data job. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [OfflineUserDataJobError]() + // [QuotaError]() + // [RequestError]() + rpc AddOfflineUserDataJobOperations(AddOfflineUserDataJobOperationsRequest) returns (AddOfflineUserDataJobOperationsResponse) { + option (google.api.http) = { + post: "/v11/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + body: "*" + }; + option (google.api.method_signature) = "resource_name,operations"; + } + + // Runs the offline user data job. + // + // When finished, the long running operation will contain the processing + // result or failure information, if any. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [HeaderError]() + // [InternalError]() + // [OfflineUserDataJobError]() + // [QuotaError]() + // [RequestError]() + rpc RunOfflineUserDataJob(RunOfflineUserDataJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v11/{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.v11.resources.OfflineUserDataJobMetadata" + }; + } +} + +// Request message for +// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v11.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.v11.resources.OfflineUserDataJob job = 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; + + // If true, match rate range for the offline user data job is calculated and + // made available in the resource. + bool enable_match_rate_range_preview = 5; +} + +// Response message for +// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v11.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. +message CreateOfflineUserDataJobResponse { + // The resource name of the OfflineUserDataJob. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + }]; +} + +// Request message for [OfflineUserDataJobService.RunOfflineUserDataJob][google.ads.googleads.v11.services.OfflineUserDataJobService.RunOfflineUserDataJob]. +message RunOfflineUserDataJobRequest { + // Required. The resource name of the OfflineUserDataJob to run. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + } + ]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 2; +} + +// Request message for +// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v11.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. +message AddOfflineUserDataJobOperationsRequest { + // Required. The resource name of the OfflineUserDataJob. + string resource_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineUserDataJob" + } + ]; + + // True to enable partial failure for the offline user data job. + optional bool enable_partial_failure = 4; + + // True to enable warnings for the offline user data job. When enabled, a + // warning will not block the OfflineUserDataJobOperation, and will also + // return warning messages about malformed field values. + optional bool enable_warnings = 6; + + // Required. The list of operations to be done. + repeated OfflineUserDataJobOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 5; +} + +// Operation to be made for the AddOfflineUserDataJobOperationsRequest. +message OfflineUserDataJobOperation { + // Operation to be made for the AddOfflineUserDataJobOperationsRequest. + oneof operation { + // Add the provided data to the transaction. Data cannot be retrieved after + // being uploaded. + google.ads.googleads.v11.common.UserData create = 1; + + // Remove the provided data from the transaction. Data cannot be retrieved + // after being uploaded. + google.ads.googleads.v11.common.UserData remove = 2; + + // Remove all previously provided data. This is only supported for Customer + // Match. + bool remove_all = 3; + } +} + +// Response message for +// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v11.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 + // 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; + + // Non blocking errors that pertain to operation failures in the warnings + // mode. Returned only when enable_warnings = true. + google.rpc.Status warning = 2; +} diff --git a/google/ads/googleads/v11/services/payments_account_service.proto b/google/ads/googleads/v11/services/payments_account_service.proto new file mode 100644 index 000000000..3bf7b3ea9 --- /dev/null +++ b/google/ads/googleads/v11/services/payments_account_service.proto @@ -0,0 +1,71 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "PaymentsAccountServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the payments account service. + +// Service to provide payments accounts that can be used to set up consolidated +// billing. +service PaymentsAccountService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns all payments accounts associated with all managers + // between the login customer ID and specified serving customer in the + // hierarchy, inclusive. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [PaymentsAccountError]() + // [QuotaError]() + // [RequestError]() + rpc ListPaymentsAccounts(ListPaymentsAccountsRequest) returns (ListPaymentsAccountsResponse) { + option (google.api.http) = { + get: "/v11/customers/{customer_id=*}/paymentsAccounts" + }; + option (google.api.method_signature) = "customer_id"; + } +} + +// Request message for fetching all accessible payments accounts. +message ListPaymentsAccountsRequest { + // Required. The ID of the customer to apply the PaymentsAccount list operation to. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v11.services.PaymentsAccountService.ListPaymentsAccounts]. +message ListPaymentsAccountsResponse { + // The list of accessible payments accounts. + repeated google.ads.googleads.v11.resources.PaymentsAccount payments_accounts = 1; +} diff --git a/google/ads/googleads/v11/services/reach_plan_service.proto b/google/ads/googleads/v11/services/reach_plan_service.proto new file mode 100644 index 000000000..a04036a65 --- /dev/null +++ b/google/ads/googleads/v11/services/reach_plan_service.proto @@ -0,0 +1,665 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/common/dates.proto"; +import "google/ads/googleads/v11/enums/frequency_cap_time_unit.proto"; +import "google/ads/googleads/v11/enums/reach_plan_ad_length.proto"; +import "google/ads/googleads/v11/enums/reach_plan_age_range.proto"; +import "google/ads/googleads/v11/enums/reach_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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the reach plan service. + +// Reach Plan Service gives users information about audience size that can +// be reached through advertisement on YouTube. In particular, +// GenerateReachForecast provides estimated number of people of specified +// demographics that can be reached by an ad in a given market by a campaign of +// certain duration with a defined budget. +service ReachPlanService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns the list of plannable locations (for example, countries). + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListPlannableLocations(ListPlannableLocationsRequest) returns (ListPlannableLocationsResponse) { + option (google.api.http) = { + post: "/v11:listPlannableLocations" + body: "*" + }; + } + + // Returns the list of per-location plannable YouTube ad formats with allowed + // targeting. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) { + option (google.api.http) = { + post: "/v11:listPlannableProducts" + body: "*" + }; + option (google.api.method_signature) = "plannable_location_id"; + } + + // Generates a product mix ideas given a set of preferences. This method + // helps the advertiser to obtain a good mix of ad formats and budget + // allocations based on its preferences. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [ReachPlanError]() + // [RequestError]() + rpc GenerateProductMixIdeas(GenerateProductMixIdeasRequest) returns (GenerateProductMixIdeasResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:generateProductMixIdeas" + body: "*" + }; + option (google.api.method_signature) = "customer_id,plannable_location_id,currency_code,budget_micros"; + } + + // Generates a reach forecast for a given targeting / product mix. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [ReachPlanError]() + // [RequestError]() + rpc GenerateReachForecast(GenerateReachForecastRequest) returns (GenerateReachForecastResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:generateReachForecast" + body: "*" + }; + option (google.api.method_signature) = "customer_id,campaign_duration,planned_products"; + } +} + +// Request message for [ReachPlanService.ListPlannableLocations][google.ads.googleads.v11.services.ReachPlanService.ListPlannableLocations]. +message ListPlannableLocationsRequest { + +} + +// The list of plannable locations. +message ListPlannableLocationsResponse { + // The list of locations available for planning. + // See + // https://developers.google.com/google-ads/api/reference/data/geotargets + // for sample locations. + repeated PlannableLocation plannable_locations = 1; +} + +// A plannable location: country, metro region, province, etc. +message PlannableLocation { + // The location identifier. + optional string id = 4; + + // The unique location name in English. + optional string name = 5; + + // 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.v11.services.ReachPlanService.ListPlannableLocations] or + // [GoogleAdsService.Search/SearchStream][]. + optional int64 parent_country_id = 6; + + // The ISO-3166-1 alpha-2 country code that is associated with the location. + optional string country_code = 7; + + // The location's type. Location types correspond to target_type returned by + // searching location type in [GoogleAdsService.Search/SearchStream][]. + optional string location_type = 8; +} + +// Request to list available products in a given location. +message ListPlannableProductsRequest { + // Required. The ID of the selected location for planning. To list the available + // plannable location IDs use [ReachPlanService.ListPlannableLocations][google.ads.googleads.v11.services.ReachPlanService.ListPlannableLocations]. + string plannable_location_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A response with all available products. +message ListPlannableProductsResponse { + // The list of products available for planning and related targeting metadata. + repeated ProductMetadata product_metadata = 1; +} + +// The metadata associated with an available plannable product. +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.v11.services.ReachPlanService.ListPlannableProducts]. + optional string plannable_product_code = 4; + + // The name associated with the ad product. + string plannable_product_name = 3; + + // The allowed plannable targeting for this product. + PlannableTargeting plannable_targeting = 2; +} + +// The targeting for which traffic metrics will be reported. +message PlannableTargeting { + // Allowed plannable age ranges for the product for which metrics will be + // reported. Actual targeting is computed by mapping this age range onto + // standard Google common.AgeRangeInfo values. + repeated google.ads.googleads.v11.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_ranges = 1; + + // Targetable genders for the ad product. + repeated google.ads.googleads.v11.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.v11.common.DeviceInfo devices = 3; + + // Targetable networks for the ad product. + repeated google.ads.googleads.v11.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4; + + // Targetable YouTube Select Lineups for the ad product. + repeated YouTubeSelectLineUp youtube_select_lineups = 5; +} + +// Request message for [ReachPlanService.GenerateProductMixIdeas][google.ads.googleads.v11.services.ReachPlanService.GenerateProductMixIdeas]. +message GenerateProductMixIdeasRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the location, this is one of the IDs returned by + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v11.services.ReachPlanService.ListPlannableLocations]. + string plannable_location_id = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. Currency code. + // Three-character ISO 4217 currency code. + string currency_code = 7 [(google.api.field_behavior) = REQUIRED]; + + // Required. Total budget. + // Amount in micros. One million is equivalent to one unit. + int64 budget_micros = 8 [(google.api.field_behavior) = REQUIRED]; + + // The preferences of the suggested product mix. + // An unset preference is interpreted as all possible values are allowed, + // unless explicitly specified. + Preferences preferences = 5; +} + +// Set of preferences about the planned mix. +message Preferences { + // True if ad skippable. + // If not set, default is any value. + optional bool is_skippable = 6; + + // True if ad start with sound. + // If not set, default is any value. + optional bool starts_with_sound = 7; + + // The length of the ad. + // If not set, default is any value. + google.ads.googleads.v11.enums.ReachPlanAdLengthEnum.ReachPlanAdLength ad_length = 3; + + // True if ad will only show on the top content. + // If not set, default is false. + optional bool top_content_only = 8; + + // True if the price is guaranteed. The cost of serving the ad is agreed + // upfront and not subject to an auction. + // If not set, default is any value. + optional bool has_guaranteed_price = 9; +} + +// The suggested product mix. +message GenerateProductMixIdeasResponse { + // A list of products (ad formats) and the associated budget allocation idea. + repeated ProductAllocation product_allocation = 1; +} + +// An allocation of a part of the budget on a given product. +message ProductAllocation { + // Selected product for planning. The product codes returned are within the + // set of the ones returned by ListPlannableProducts when using the same + // location ID. + optional string plannable_product_code = 3; + + // The value to be allocated for the suggested product in requested currency. + // Amount in micros. One million is equivalent to one unit. + optional int64 budget_micros = 4; +} + +// Request message for [ReachPlanService.GenerateReachForecast][google.ads.googleads.v11.services.ReachPlanService.GenerateReachForecast]. +message GenerateReachForecastRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // The currency code. + // Three-character ISO 4217 currency code. + optional string currency_code = 9; + + // Required. Campaign duration. + CampaignDuration campaign_duration = 3 [(google.api.field_behavior) = REQUIRED]; + + // Chosen cookie frequency cap to be applied to each planned product. + // This is equivalent to the frequency cap exposed in Google Ads when creating + // a campaign, it represents the maximum number of times an ad can be shown to + // the same user. + // If not specified, no cap is applied. + // + // This field is deprecated in v4 and will eventually be removed. + // Use cookie_frequency_cap_setting instead. + optional int32 cookie_frequency_cap = 10; + + // Chosen cookie frequency cap to be applied to each planned product. + // This is equivalent to the frequency cap exposed in Google Ads when creating + // a campaign, it represents the maximum number of times an ad can be shown to + // the same user during a specified time interval. + // If not specified, a default of 0 (no cap) is applied. + // + // This field replaces the deprecated cookie_frequency_cap field. + FrequencyCap cookie_frequency_cap_setting = 8; + + // Chosen minimum effective frequency (the number of times a person was + // exposed to the ad) for the reported reach metrics [1-10]. + // This won't affect the targeting, but just the reporting. + // If not specified, a default of 1 is applied. + // + // This field cannot be combined with the effective_frequency_limit field. + optional int32 min_effective_frequency = 11; + + // The highest minimum effective frequency (the number of times a person was + // exposed to the ad) value [1-10] to include in + // Forecast.effective_frequency_breakdowns. + // If not specified, Forecast.effective_frequency_breakdowns will not be + // provided. + // + // The effective frequency value provided here will also be used as the + // minimum effective frequency for the reported reach metrics. + // + // This field cannot be combined with the min_effective_frequency field. + optional EffectiveFrequencyLimit effective_frequency_limit = 12; + + // The targeting to be applied to all products selected in the product mix. + // + // This is planned targeting: execution details might vary based on the + // advertising product, consult an implementation specialist. + // + // See specific metrics for details on how targeting affects them. + Targeting targeting = 6; + + // Required. The products to be forecast. + // The max number of allowed planned products is 15. + repeated PlannedProduct planned_products = 7 [(google.api.field_behavior) = REQUIRED]; + + // Controls the forecast metrics returned in the response. + ForecastMetricOptions forecast_metric_options = 13; + + // The name of the customer being planned for. This is a user-defined value. + // Required if targeting.audience_targeting is set. + optional string customer_reach_group = 14; +} + +// Effective frequency limit. +message EffectiveFrequencyLimit { + // The highest effective frequency value to include in + // Forecast.effective_frequency_breakdowns. + // This field supports frequencies 1-10, inclusive. + int32 effective_frequency_breakdown_limit = 1; +} + +// A rule specifying the maximum number of times an ad can be shown to a user +// over a particular time period. +message FrequencyCap { + // Required. The number of impressions, inclusive. + int32 impressions = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of time unit. + google.ads.googleads.v11.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The targeting for which traffic metrics will be reported. +message Targeting { + // Required. The ID of the selected location. Plannable location IDs can be + // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v11.services.ReachPlanService.ListPlannableLocations]. + optional string plannable_location_id = 6; + + // Targeted age range. + // An unset value is equivalent to targeting all ages. + google.ads.googleads.v11.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2; + + // Targeted genders. + // An unset value is equivalent to targeting MALE and FEMALE. + repeated google.ads.googleads.v11.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.v11.services.ReachPlanService.ListPlannableProducts]. + repeated google.ads.googleads.v11.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.v11.services.ReachPlanService.ListPlannableProducts]. + google.ads.googleads.v11.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = 5; + + // Targeted audiences. + // If not specified, does not target any specific audience. + AudienceTargeting audience_targeting = 7; +} + +// The duration of a planned campaign. +message CampaignDuration { + // The duration value in days. + // + // This field cannot be combined with the date_range field. + optional int32 duration_in_days = 2; + + // Date range of the campaign. + // Dates are in the yyyy-mm-dd format and inclusive. + // The end date must be < 1 year in the future and the + // date range must be <= 92 days long. + // + // This field cannot be combined with the duration_in_days field. + google.ads.googleads.v11.common.DateRange date_range = 3; +} + +// A product being planned for reach. +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.v11.services.ReachPlanService.ListPlannableProducts]. + optional string plannable_product_code = 3; + + // Required. Maximum budget allocation in micros for the selected product. + // The value is specified in the selected planning currency_code. + // For example: 1 000 000$ = 1 000 000 000 000 micros. + optional int64 budget_micros = 4; + + // Targeting settings for the selected product. + // To list the available targeting for each product use + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v11.services.ReachPlanService.ListPlannableProducts]. + AdvancedProductTargeting advanced_product_targeting = 5; +} + +// Response message containing the generated reach curve. +message GenerateReachForecastResponse { + // Reference on target audiences for this curve. + OnTargetAudienceMetrics on_target_audience_metrics = 1; + + // The generated reach curve for the planned product mix. + ReachCurve reach_curve = 2; +} + +// The reach curve for the planned products. +message ReachCurve { + // All points on the reach curve. + repeated ReachForecast reach_forecasts = 1; +} + +// A point on reach curve. +message ReachForecast { + // The cost in micros. + int64 cost_micros = 5; + + // Forecasted traffic metrics for this point. + Forecast forecast = 2; + + // The forecasted allocation and traffic metrics for each planned product + // at this point on the reach curve. + repeated PlannedProductReachForecast planned_product_reach_forecasts = 4; +} + +// Forecasted traffic metrics for the planned products and targeting. +message Forecast { + // Number of unique people reached at least + // GenerateReachForecastRequest.min_effective_frequency or + // GenerateReachForecastRequest.effective_frequency_limit times that exactly + // matches the Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the on_target_reach + // value will be rounded to 0. + optional int64 on_target_reach = 5; + + // Total number of unique people reached at least + // GenerateReachForecastRequest.min_effective_frequency or + // GenerateReachForecastRequest.effective_frequency_limit times. This includes + // people that may fall outside the specified Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the total_reach + // value will be rounded to 0. + optional int64 total_reach = 6; + + // Number of ad impressions that exactly matches the Targeting. + optional int64 on_target_impressions = 7; + + // Total number of ad impressions. This includes impressions that may fall + // outside the specified Targeting, due to insufficient information on + // signed-in users. + optional int64 total_impressions = 8; + + // Number of times the ad's impressions were considered viewable. + // See https://support.google.com/google-ads/answer/7029393 for + // more information about what makes an ad viewable and how + // viewability is measured. + optional int64 viewable_impressions = 9; + + // A list of effective frequency forecasts. The list is ordered starting with + // 1+ and ending with the value set in + // GenerateReachForecastRequest.effective_frequency_limit. If no + // effective_frequency_limit was set, this list will be empty. + repeated EffectiveFrequencyBreakdown effective_frequency_breakdowns = 10; + + // Number of unique people reached that exactly matches the Targeting + // including co-viewers. + optional int64 on_target_coview_reach = 11; + + // Number of unique people reached including co-viewers. This includes + // people that may fall outside the specified Targeting. + optional int64 total_coview_reach = 12; + + // Number of ad impressions that exactly matches the Targeting including + // co-viewers. + optional int64 on_target_coview_impressions = 13; + + // Total number of ad impressions including co-viewers. This includes + // impressions that may fall outside the specified Targeting, due to + // insufficient information on signed-in users. + optional int64 total_coview_impressions = 14; +} + +// The forecasted allocation and traffic metrics for a specific product +// at a point on the reach curve. +message PlannedProductReachForecast { + // Selected product for planning. The product codes returned are within the + // set of the ones returned by ListPlannableProducts when using the same + // location ID. + string plannable_product_code = 1; + + // The cost in micros. This may differ from the product's input allocation + // if one or more planned products cannot fulfill the budget because of + // limited inventory. + int64 cost_micros = 2; + + // Forecasted traffic metrics for this product. + PlannedProductForecast planned_product_forecast = 3; +} + +// Forecasted traffic metrics for a planned product. +message PlannedProductForecast { + // Number of unique people reached that exactly matches the Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the on_target_reach + // value will be rounded to 0. + int64 on_target_reach = 1; + + // Number of unique people reached. This includes people that may fall + // outside the specified Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the total_reach + // value will be rounded to 0. + int64 total_reach = 2; + + // Number of ad impressions that exactly matches the Targeting. + int64 on_target_impressions = 3; + + // Total number of ad impressions. This includes impressions that may fall + // outside the specified Targeting, due to insufficient information on + // signed-in users. + int64 total_impressions = 4; + + // Number of times the ad's impressions were considered viewable. + // See https://support.google.com/google-ads/answer/7029393 for + // more information about what makes an ad viewable and how + // viewability is measured. + optional int64 viewable_impressions = 5; + + // Number of unique people reached that exactly matches the Targeting + // including co-viewers. + optional int64 on_target_coview_reach = 6; + + // Number of unique people reached including co-viewers. This includes + // people that may fall outside the specified Targeting. + optional int64 total_coview_reach = 7; + + // Number of ad impressions that exactly matches the Targeting including + // co-viewers. + optional int64 on_target_coview_impressions = 8; + + // Total number of ad impressions including co-viewers. This includes + // impressions that may fall outside the specified Targeting, due to + // insufficient information on signed-in users. + optional int64 total_coview_impressions = 9; +} + +// Audience metrics for the planned products. +// These metrics consider the following targeting dimensions: +// +// - Location +// - PlannableAgeRange +// - Gender +message OnTargetAudienceMetrics { + // Reference audience size matching the considered targeting for YouTube. + optional int64 youtube_audience_size = 3; + + // Reference audience size matching the considered targeting for Census. + optional int64 census_audience_size = 4; +} + +// A breakdown of the number of unique people reached at a given effective +// frequency. +message EffectiveFrequencyBreakdown { + // The effective frequency [1-10]. + int32 effective_frequency = 1; + + // The number of unique people reached at least effective_frequency times that + // exactly matches the Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the on_target_reach + // value will be rounded to 0. + int64 on_target_reach = 2; + + // Total number of unique people reached at least effective_frequency times. + // This includes people that may fall outside the specified Targeting. + // + // Note that a minimum number of unique people must be reached in order for + // data to be reported. If the minimum number is not met, the total_reach + // value will be rounded to 0. + int64 total_reach = 3; + + // The number of users (including co-viewing users) reached for the associated + // effective_frequency value. + optional int64 effective_coview_reach = 4; + + // The number of users (including co-viewing users) reached for the associated + // effective_frequency value within the specified plan demographic. + optional int64 on_target_effective_coview_reach = 5; +} + +// Controls forecast metrics to return. +message ForecastMetricOptions { + // Indicates whether to include co-view metrics in the response forecast. + bool include_coview = 1; +} + +// Audience targeting for reach forecast. +message AudienceTargeting { + // List of audiences based on user interests to be targeted. + repeated google.ads.googleads.v11.common.UserInterestInfo user_interest = 1; +} + +// Advanced targeting settings for products. +message AdvancedProductTargeting { + // Targeting options for this product. + oneof advanced_targeting { + // Settings for YouTube Select targeting. + YouTubeSelectSettings youtube_select_settings = 1; + } +} + +// Request settings for YouTube Select Lineups +message YouTubeSelectSettings { + // Lineup for YouTube Select Targeting. + int64 lineup_id = 1; +} + +// A Plannable YouTube Select Lineup for product targeting. +message YouTubeSelectLineUp { + // The ID of the YouTube Select Lineup. + int64 lineup_id = 1; + + // The unique name of the YouTube Select Lineup. + string lineup_name = 2; +} diff --git a/google/ads/googleads/v11/services/recommendation_service.proto b/google/ads/googleads/v11/services/recommendation_service.proto new file mode 100644 index 000000000..f68745ef3 --- /dev/null +++ b/google/ads/googleads/v11/services/recommendation_service.proto @@ -0,0 +1,316 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/extensions.proto"; +import "google/ads/googleads/v11/enums/keyword_match_type.proto"; +import "google/ads/googleads/v11/resources/ad.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Recommendation service. + +// Service to manage recommendations. +service RecommendationService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Applies given recommendations with corresponding apply parameters. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RecommendationError]() + // [RequestError]() + // [UrlFieldError]() + rpc ApplyRecommendation(ApplyRecommendationRequest) returns (ApplyRecommendationResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/recommendations:apply" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } + + // Dismisses given recommendations. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RecommendationError]() + // [RequestError]() + rpc DismissRecommendation(DismissRecommendationRequest) returns (DismissRecommendationResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/recommendations:dismiss" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v11.services.RecommendationService.ApplyRecommendation]. +message ApplyRecommendationRequest { + // Required. The ID of the customer with the recommendation. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to apply recommendations. + // If partial_failure=false all recommendations should be of the same type + // There is a limit of 100 operations per request. + repeated ApplyRecommendationOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; + + // If true, successful operations will be carried out and invalid + // operations will return errors. If false, operations will be carried + // out as a transaction if and only if they are all valid. + // Default is false. + bool partial_failure = 3; +} + +// Information about the operation to apply a recommendation and any parameters +// to customize it. +message ApplyRecommendationOperation { + // Parameters to use when applying a campaign budget recommendation. + message CampaignBudgetParameters { + // New budget amount to set for target budget resource. This is a required + // field. + optional int64 new_budget_amount_micros = 2; + } + + // Parameters to use when applying a text ad recommendation. + 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.v11.resources.Ad ad = 1; + } + + // Parameters to use when applying keyword recommendation. + message KeywordParameters { + // The ad group resource to add keyword to. This is a required field. + optional string ad_group = 4; + + // The match type of the keyword. This is a required field. + google.ads.googleads.v11.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; + + // Optional, CPC bid to set for the keyword. If not set, keyword will use + // bid based on bidding strategy used by target ad group. + optional int64 cpc_bid_micros = 5; + } + + // Parameters to use when applying Target CPA recommendation. + message TargetCpaOptInParameters { + // Average CPA to use for Target CPA bidding strategy. This is a required + // field. + optional int64 target_cpa_micros = 3; + + // Optional, budget amount to set for the campaign. + optional int64 new_campaign_budget_amount_micros = 4; + } + + // Parameters to use when applying a Target ROAS opt-in recommendation. + message TargetRoasOptInParameters { + // Average ROAS (revenue per unit of spend) to use for Target ROAS bidding + // strategy. The value is between 0.01 and 1000.0, inclusive. This is a + // required field, unless new_campaign_budget_amount_micros is set. + optional double target_roas = 1; + + // Optional, budget amount to set for the campaign. + optional int64 new_campaign_budget_amount_micros = 2; + } + + // Parameters to use when applying callout extension recommendation. + message CalloutExtensionParameters { + // Callout extensions to be added. This is a required field. + repeated google.ads.googleads.v11.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.v11.common.CallFeedItem call_extensions = 1; + } + + // Parameters to use when applying sitelink extension recommendation. + message SitelinkExtensionParameters { + // Sitelink extensions to be added. This is a required field. + repeated google.ads.googleads.v11.common.SitelinkFeedItem sitelink_extensions = 1; + } + + // Parameters to use when applying move unused budget recommendation. + message MoveUnusedBudgetParameters { + // Budget amount to move from excess budget to constrained budget. This is + // a required field. + optional int64 budget_micros_to_move = 2; + } + + // Parameters to use when applying a responsive search ad asset + // recommendation. + message ResponsiveSearchAdAssetParameters { + // Updated ad. The current ad's content will be replaced. + google.ads.googleads.v11.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.v11.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.v11.resources.Ad ad = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Parameters to use when applying a use broad match keyword recommendation. + message UseBroadMatchKeywordParameters { + // New budget amount to set for target budget resource. + optional int64 new_budget_amount_micros = 1; + } + + // The resource name of the recommendation to apply. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Recommendation" + }]; + + // Parameters to use when applying the recommendation. + oneof apply_parameters { + // Optional parameters to use when applying a campaign budget + // recommendation. + CampaignBudgetParameters campaign_budget = 2; + + // Optional parameters to use when applying a text ad recommendation. + TextAdParameters text_ad = 3; + + // Optional parameters to use when applying keyword recommendation. + KeywordParameters keyword = 4; + + // Optional parameters to use when applying target CPA opt-in + // recommendation. + TargetCpaOptInParameters target_cpa_opt_in = 5; + + // Optional parameters to use when applying target ROAS opt-in + // recommendation. + TargetRoasOptInParameters target_roas_opt_in = 10; + + // Parameters to use when applying callout extension recommendation. + CalloutExtensionParameters callout_extension = 6; + + // Parameters to use when applying call extension recommendation. + CallExtensionParameters call_extension = 7; + + // Parameters to use when applying sitelink extension recommendation. + SitelinkExtensionParameters sitelink_extension = 8; + + // Parameters to use when applying move unused budget recommendation. + MoveUnusedBudgetParameters move_unused_budget = 9; + + // Parameters to use when applying a responsive search ad recommendation. + ResponsiveSearchAdParameters responsive_search_ad = 11; + + // Parameters to use when applying a use broad match keyword recommendation. + UseBroadMatchKeywordParameters use_broad_match_keyword = 12; + + // Parameters to use when applying a responsive search ad asset + // recommendation. + ResponsiveSearchAdAssetParameters responsive_search_ad_asset = 13; + + // Parameters to use when applying a responsive search ad improve ad + // strength recommendation. + ResponsiveSearchAdImproveAdStrengthParameters responsive_search_ad_improve_ad_strength = 14; + } +} + +// Response message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v11.services.RecommendationService.ApplyRecommendation]. +message ApplyRecommendationResponse { + // Results of operations to apply recommendations. + repeated ApplyRecommendationResult 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; +} + +// The result of applying a recommendation. +message ApplyRecommendationResult { + // Returned for successful applies. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/Recommendation" + }]; +} + +// Request message for [RecommendationService.DismissRecommendation][google.ads.googleads.v11.services.RecommendationService.DismissRecommendation]. +message DismissRecommendationRequest { + // Operation to dismiss a single recommendation identified by resource_name. + message DismissRecommendationOperation { + // The resource name of the recommendation to dismiss. + string resource_name = 1; + } + + // Required. The ID of the customer with the recommendation. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to dismiss recommendations. + // If partial_failure=false all recommendations should be of the same type + // There is a limit of 100 operations per request. + repeated DismissRecommendationOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; + + // If true, successful operations will be carried out and invalid + // operations will return errors. If false, operations will be carried in a + // single transaction if and only if they are all valid. + // Default is false. + bool partial_failure = 2; +} + +// Response message for [RecommendationService.DismissRecommendation][google.ads.googleads.v11.services.RecommendationService.DismissRecommendation]. +message DismissRecommendationResponse { + // The result of dismissing a recommendation. + message DismissRecommendationResult { + // Returned for successful dismissals. + string resource_name = 1; + } + + // Results of operations to dismiss recommendations. + repeated DismissRecommendationResult 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; +} diff --git a/google/ads/googleads/v11/services/remarketing_action_service.proto b/google/ads/googleads/v11/services/remarketing_action_service.proto new file mode 100644 index 000000000..76a9ce849 --- /dev/null +++ b/google/ads/googleads/v11/services/remarketing_action_service.proto @@ -0,0 +1,116 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/remarketing_action.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "RemarketingActionServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Remarketing Action service. + +// Service to manage remarketing actions. +service RemarketingActionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates remarketing actions. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [ConversionActionError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateRemarketingActions(MutateRemarketingActionsRequest) returns (MutateRemarketingActionsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/remarketingActions:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v11.services.RemarketingActionService.MutateRemarketingActions]. +message MutateRemarketingActionsRequest { + // Required. The ID of the customer whose remarketing actions are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual remarketing actions. + repeated RemarketingActionOperation 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; +} + +// A single operation (create, update) on a remarketing action. +message RemarketingActionOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new remarketing + // action. + google.ads.googleads.v11.resources.RemarketingAction create = 1; + + // Update operation: The remarketing action is expected to have a valid + // resource name. + google.ads.googleads.v11.resources.RemarketingAction update = 2; + } +} + +// Response message for remarketing action mutate. +message MutateRemarketingActionsResponse { + // 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 MutateRemarketingActionResult results = 2; +} + +// The result for the remarketing action mutate. +message MutateRemarketingActionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/RemarketingAction" + }]; +} diff --git a/google/ads/googleads/v11/services/shared_criterion_service.proto b/google/ads/googleads/v11/services/shared_criterion_service.proto new file mode 100644 index 000000000..7dc8589de --- /dev/null +++ b/google/ads/googleads/v11/services/shared_criterion_service.proto @@ -0,0 +1,139 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "SharedCriterionServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Shared Criterion service. + +// Service to manage shared criteria. +service SharedCriterionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or removes shared criteria. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CriterionError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateSharedCriteria(MutateSharedCriteriaRequest) returns (MutateSharedCriteriaResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/sharedCriteria:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual shared criteria. + repeated SharedCriterionOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, remove) on an shared criterion. +message SharedCriterionOperation { + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new shared + // criterion. + google.ads.googleads.v11.resources.SharedCriterion create = 1; + + // Remove operation: A resource name for the removed shared criterion is + // expected, in this format: + // + // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedCriterion" + }]; + } +} + +// Response message for a shared criterion mutate. +message MutateSharedCriteriaResponse { + // 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 MutateSharedCriterionResult results = 2; +} + +// The result for the shared criterion mutate. +message MutateSharedCriterionResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedCriterion" + }]; + + // 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.v11.resources.SharedCriterion shared_criterion = 2; +} diff --git a/google/ads/googleads/v11/services/shared_set_service.proto b/google/ads/googleads/v11/services/shared_set_service.proto new file mode 100644 index 000000000..23e15851a --- /dev/null +++ b/google/ads/googleads/v11/services/shared_set_service.proto @@ -0,0 +1,149 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/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/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "SharedSetServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Shared Set service. + +// Service to manage shared sets. +service SharedSetService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates, updates, or removes shared sets. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DateError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [IdError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotEmptyError]() + // [NullError]() + // [OperatorError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [ResourceCountLimitExceededError]() + // [SharedSetError]() + // [SizeLimitError]() + // [StringFormatError]() + // [StringLengthError]() + rpc MutateSharedSets(MutateSharedSetsRequest) returns (MutateSharedSetsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/sharedSets:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [SharedSetService.MutateSharedSets][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual shared sets. + repeated SharedSetOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation (create, update, remove) on an shared set. +message SharedSetOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new shared set. + google.ads.googleads.v11.resources.SharedSet create = 1; + + // Update operation: The shared set is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.SharedSet update = 2; + + // Remove operation: A resource name for the removed shared set is expected, + // in this format: + // + // `customers/{customer_id}/sharedSets/{shared_set_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + }]; + } +} + +// Response message for a shared set mutate. +message MutateSharedSetsResponse { + // 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 MutateSharedSetResult results = 2; +} + +// The result for the shared set mutate. +message MutateSharedSetResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SharedSet" + }]; + + // 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.v11.resources.SharedSet shared_set = 2; +} diff --git a/google/ads/googleads/v11/services/smart_campaign_setting_service.proto b/google/ads/googleads/v11/services/smart_campaign_setting_service.proto new file mode 100644 index 000000000..25c481c34 --- /dev/null +++ b/google/ads/googleads/v11/services/smart_campaign_setting_service.proto @@ -0,0 +1,111 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/enums/response_content_type.proto"; +import "google/ads/googleads/v11/resources/smart_campaign_setting.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "SmartCampaignSettingServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the Smart campaign setting service. + +// Service to manage Smart campaign settings. +service SmartCampaignSettingService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Updates Smart campaign settings for campaigns. + rpc MutateSmartCampaignSettings(MutateSmartCampaignSettingsRequest) returns (MutateSmartCampaignSettingsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/smartCampaignSettings:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [SmartCampaignSettingService.MutateSmartCampaignSetting][]. +message MutateSmartCampaignSettingsRequest { + // Required. The ID of the customer whose Smart campaign settings are being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on individual Smart campaign settings. + repeated SmartCampaignSettingOperation 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.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; +} + +// A single operation to update Smart campaign settings for a campaign. +message SmartCampaignSettingOperation { + // Update operation: The Smart campaign setting must specify a valid + // resource name. + google.ads.googleads.v11.resources.SmartCampaignSetting update = 1; + + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 2; +} + +// Response message for campaign mutate. +message MutateSmartCampaignSettingsResponse { + // 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 MutateSmartCampaignSettingResult results = 2; +} + +// The result for the Smart campaign setting mutate. +message MutateSmartCampaignSettingResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/SmartCampaignSetting" + }]; + + // 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.v11.resources.SmartCampaignSetting smart_campaign_setting = 2; +} diff --git a/google/ads/googleads/v11/services/smart_campaign_suggest_service.proto b/google/ads/googleads/v11/services/smart_campaign_suggest_service.proto new file mode 100644 index 000000000..aef565576 --- /dev/null +++ b/google/ads/googleads/v11/services/smart_campaign_suggest_service.proto @@ -0,0 +1,226 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/common/ad_type_infos.proto"; +import "google/ads/googleads/v11/common/criteria.proto"; +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "SmartCampaignSuggestServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Service to get suggestions for Smart Campaigns. +service SmartCampaignSuggestService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns BudgetOption suggestions. + rpc SuggestSmartCampaignBudgetOptions(SuggestSmartCampaignBudgetOptionsRequest) returns (SuggestSmartCampaignBudgetOptionsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + body: "*" + }; + } + + // Suggests a Smart campaign ad compatible with the Ad family of resources, + // based on data points such as targeting and the business to advertise. + rpc SuggestSmartCampaignAd(SuggestSmartCampaignAdRequest) returns (SuggestSmartCampaignAdResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:suggestSmartCampaignAd" + body: "*" + }; + } + + // Suggests keyword themes to advertise on. + rpc SuggestKeywordThemes(SuggestKeywordThemesRequest) returns (SuggestKeywordThemesResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:suggestKeywordThemes" + body: "*" + }; + } +} + +// Request message for +// [SmartCampaignSuggestService.SuggestSmartCampaignBudgets][]. +message SuggestSmartCampaignBudgetOptionsRequest { + // Required. The ID of the customer whose budget options are to be suggested. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. For first time campaign creation use SuggestionInfo, for + // subsequent updates on BudgetOptions based on an already created campaign + // use that campaign. + oneof suggestion_data { + // Required. The resource name of the campaign to get suggestion for. + string campaign = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Required. Information needed to get budget options + SmartCampaignSuggestionInfo suggestion_info = 3 [(google.api.field_behavior) = REQUIRED]; + } +} + +// Information needed to get suggestion for Smart Campaign. More information +// provided will help the system to derive better suggestions. +message SmartCampaignSuggestionInfo { + // A list of locations. + message LocationList { + // Required. Locations. + repeated google.ads.googleads.v11.common.LocationInfo locations = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // A context that describes a business. + message BusinessContext { + // Optional. The name of the business. + string business_name = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Landing page URL of the campaign. + string final_url = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The two letter advertising language for the Smart campaign to be + // constructed, default to 'en' if not set. + string language_code = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The business ad schedule. + repeated google.ads.googleads.v11.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.v11.common.KeywordThemeInfo keyword_themes = 7 [(google.api.field_behavior) = OPTIONAL]; + + // The business settings to consider when generating suggestions. + // Settings are automatically extracted from the business when provided. + // Otherwise, these settings must be specified explicitly. + oneof business_setting { + // Optional. Context describing the business to advertise. + BusinessContext business_context = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The resource name of a Business Profile location. + // Business Profile location resource names can be fetched through the + // Business Profile API and adhere to the following format: + // `locations/{locationId}`. + // + // See the [Business Profile API] + // (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations) + // for additional details. + string business_profile_location = 9 [(google.api.field_behavior) = OPTIONAL]; + } + + // The geo target of the campaign, either a list of locations or + // a single proximity shall be specified. + oneof geo_target { + // Optional. The targeting geo location by locations. + LocationList location_list = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The targeting geo location by proximity. + google.ads.googleads.v11.common.ProximityInfo proximity = 5 [(google.api.field_behavior) = OPTIONAL]; + } +} + +// Response message for +// [SmartCampaignSuggestService.SuggestSmartCampaignBudgets][]. Depending on +// whether the system could suggest the options, either all of the options or +// none of them might be returned. +message SuggestSmartCampaignBudgetOptionsResponse { + // Performance metrics for a given budget option. + message Metrics { + // The estimated min daily clicks. + int64 min_daily_clicks = 1; + + // The estimated max daily clicks. + int64 max_daily_clicks = 2; + } + + // Smart Campaign budget option. + message BudgetOption { + // The amount of the budget, in the local currency for the account. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + int64 daily_amount_micros = 1; + + // Metrics pertaining to the suggested budget, could be empty if there is + // not enough information to derive the estimates. + Metrics metrics = 2; + } + + // Optional. The lowest budget option. + optional BudgetOption low = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The recommended budget option. + optional BudgetOption recommended = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The highest budget option. + optional BudgetOption high = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. +message SuggestSmartCampaignAdRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Inputs used to suggest a Smart campaign ad. + // Required fields: final_url, language_code, keyword_themes. + // Optional but recommended fields to improve the quality of the suggestion: + // business_setting and geo_target. + SmartCampaignSuggestionInfo suggestion_info = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. +message SuggestSmartCampaignAdResponse { + // Optional. Ad info includes 3 creative headlines and 2 creative descriptions. + google.ads.googleads.v11.common.SmartCampaignAdInfo ad_info = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestKeywordThemes]. +message SuggestKeywordThemesRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Information to get keyword theme suggestions. + // Required fields: + // * suggestion_info.final_url + // * suggestion_info.language_code + // * suggestion_info.geo_target + // + // Recommended fields: + // * suggestion_info.business_setting + SmartCampaignSuggestionInfo suggestion_info = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestKeywordThemes]. +message SuggestKeywordThemesResponse { + // Smart campaign keyword theme suggestions. + repeated google.ads.googleads.v11.resources.KeywordThemeConstant keyword_themes = 1; +} diff --git a/google/ads/googleads/v11/services/third_party_app_analytics_link_service.proto b/google/ads/googleads/v11/services/third_party_app_analytics_link_service.proto new file mode 100644 index 000000000..70be3b0e5 --- /dev/null +++ b/google/ads/googleads/v11/services/third_party_app_analytics_link_service.proto @@ -0,0 +1,69 @@ +// 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.ads.googleads.v11.services; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ThirdPartyAppAnalyticsLinkServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// This service allows management of links between Google Ads and third party +// app analytics. +service ThirdPartyAppAnalyticsLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be + // provided to the third party when setting up app analytics. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc RegenerateShareableLinkId(RegenerateShareableLinkIdRequest) returns (RegenerateShareableLinkIdResponse) { + option (google.api.http) = { + post: "/v11/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + body: "*" + }; + } +} + +// Request message for +// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. +message RegenerateShareableLinkIdRequest { + // Resource name of the third party app analytics link. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" + }]; +} + +// Response message for +// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v11.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. +message RegenerateShareableLinkIdResponse { + +} diff --git a/google/ads/googleads/v11/services/user_data_service.proto b/google/ads/googleads/v11/services/user_data_service.proto new file mode 100644 index 000000000..2411f08ae --- /dev/null +++ b/google/ads/googleads/v11/services/user_data_service.proto @@ -0,0 +1,104 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "UserDataServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the UserDataService. + +// Service to manage user data uploads. +// Any uploads made to a Customer Match list through this service will be +// eligible for matching as per the customer matching process. See +// https://support.google.com/google-ads/answer/7474263. However, the uploads +// made through this service will not be visible under the 'Segment members' +// section for the Customer Match List in the Google Ads UI. +service UserDataService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Uploads the given user data. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [OfflineUserDataJobError]() + // [QuotaError]() + // [RequestError]() + // [UserDataError]() + rpc UploadUserData(UploadUserDataRequest) returns (UploadUserDataResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}:uploadUserData" + body: "*" + }; + } +} + +// Request message for [UserDataService.UploadUserData][google.ads.googleads.v11.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]; + + // Required. The list of operations to be done. + repeated UserDataOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; + + // Metadata of the request. + oneof metadata { + // Metadata for data updates to a Customer Match user list. + google.ads.googleads.v11.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 2; + } +} + +// Operation to be made for the UploadUserDataRequest. +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.v11.common.UserData create = 1; + + // The list of user data to be removed from the user list. + google.ads.googleads.v11.common.UserData remove = 2; + } +} + +// Response message for [UserDataService.UploadUserData][google.ads.googleads.v11.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 { + // The date time at which the request was received by API, formatted as + // "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00". + optional string upload_date_time = 3; + + // Number of upload data operations received by API. + optional int32 received_operations_count = 4; +} diff --git a/google/ads/googleads/v11/services/user_list_service.proto b/google/ads/googleads/v11/services/user_list_service.proto new file mode 100644 index 000000000..7f1675ea0 --- /dev/null +++ b/google/ads/googleads/v11/services/user_list_service.proto @@ -0,0 +1,136 @@ +// 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.ads.googleads.v11.services; + +import "google/ads/googleads/v11/resources/user_list.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.V11.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/services;services"; +option java_multiple_files = true; +option java_outer_classname = "UserListServiceProto"; +option java_package = "com.google.ads.googleads.v11.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V11::Services"; + +// Proto file describing the User List service. + +// Service to manage user lists. +service UserListService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates or updates user lists. Operation statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CollectionSizeError]() + // [DatabaseError]() + // [DistinctError]() + // [FieldError]() + // [FieldMaskError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [NewResourceCreationError]() + // [NotAllowlistedError]() + // [NotEmptyError]() + // [OperationAccessDeniedError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + // [StringFormatError]() + // [StringLengthError]() + // [UserListError]() + rpc MutateUserLists(MutateUserListsRequest) returns (MutateUserListsResponse) { + option (google.api.http) = { + post: "/v11/customers/{customer_id=*}/userLists:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for [UserListService.MutateUserLists][google.ads.googleads.v11.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]; + + // Required. The list of operations to perform on individual user lists. + repeated UserListOperation 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; +} + +// A single operation (create, update) on a user list. +message UserListOperation { + // FieldMask that determines which resource fields are modified in an update. + google.protobuf.FieldMask update_mask = 4; + + // The mutate operation. + oneof operation { + // Create operation: No resource name is expected for the new user list. + google.ads.googleads.v11.resources.UserList create = 1; + + // Update operation: The user list is expected to have a valid resource + // name. + google.ads.googleads.v11.resources.UserList update = 2; + + // Remove operation: A resource name for the removed user list is expected, + // in this format: + // + // `customers/{customer_id}/userLists/{user_list_id}` + string remove = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + }]; + } +} + +// Response message for user list mutate. +message MutateUserListsResponse { + // 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 MutateUserListResult results = 2; +} + +// The result for the user list mutate. +message MutateUserListResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + }]; +} diff --git a/google/ads/googleads/v7/BUILD.bazel b/google/ads/googleads/v7/BUILD.bazel deleted file mode 100644 index db1324a0f..000000000 --- a/google/ads/googleads/v7/BUILD.bazel +++ /dev/null @@ -1,263 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -exports_files(["googleads_grpc_service_config.json"] + ["*.yaml"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") -load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") - -proto_library( - name = "googleads_proto", - srcs = [], - deps = [ - "//google/ads/googleads/v7/common:common_proto", - "//google/ads/googleads/v7/enums:enums_proto", - "//google/ads/googleads/v7/errors:errors_proto", - "//google/ads/googleads/v7/resources:resources_proto", - "//google/ads/googleads/v7/services:services_proto", - ], -) - -proto_library_with_info( - name = "googleads_proto_with_info", - deps = [ - ":googleads_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_gapic_assembly_gradle_pkg", - "java_gapic_library", - "java_gapic_test", -) - -java_gapic_library( - name = "googleads_java_gapic", - srcs = [ - ":googleads_proto_with_info", - ], - gapic_yaml = "googleads_gapic.yaml", - grpc_service_config = ":googleads_grpc_service_config.json", - deps = [ - "//google/ads/googleads/v7/common:common_java_proto", - "//google/ads/googleads/v7/enums:enums_java_proto", - "//google/ads/googleads/v7/resources:resources_java_proto", - "//google/ads/googleads/v7/services:services_java_grpc", - "//google/ads/googleads/v7/services:services_java_proto", - ], -) - -# TODO(ohren): Add more test classes when java_gapic_test is able to run more -# than a single test. Having at least one verifies proper compilation at least. -java_gapic_test( - name = "googleads_java_gapic_suite", - test_classes = [ - "com.google.ads.googleads.v7.services.CampaignServiceClientTest", - ], - runtime_deps = [":googleads_java_gapic_test"], -) - -java_gapic_assembly_gradle_pkg( - name = "googleads-java", - deps = [ - ":googleads_java_gapic", - "//google/ads/googleads/v7:googleads_proto", - "//google/ads/googleads/v7/common:common_java_proto", - "//google/ads/googleads/v7/enums:enums_java_proto", - "//google/ads/googleads/v7/errors:errors_java_proto", - "//google/ads/googleads/v7/resources:resources_java_proto", - "//google/ads/googleads/v7/services:services_java_grpc", - "//google/ads/googleads/v7/services:services_java_proto", - ], -) - -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", -) - -php_proto_library( - name = "googleads_php_proto", - plugin_args = ["aggregate_metadata=google.ads.googleads"], - deps = [":googleads_proto"], -) - -php_grpc_library( - name = "googleads_php_grpc", - srcs = [":googleads_proto"], - deps = [":googleads_php_proto"], -) - -php_gapic_library( - name = "googleads_php_gapic", - srcs = [":googleads_proto"], - gapic_yaml = "googleads_gapic.yaml", - grpc_service_config = "googleads_grpc_service_config.json", - service_yaml = "googleads_v7.yaml", - deps = [ - ":googleads_php_grpc", - ":googleads_php_proto", - ], -) - -php_gapic_assembly_pkg( - name = "googleads-php", - deps = [ - ":googleads_php_gapic", - ":googleads_php_grpc", - ":googleads_php_proto", - ], -) - -############################################################################## -# C# -############################################################################## -load("@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", "csharp_gapic_library") -load("@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic_pkg.bzl", "csharp_gapic_assembly_pkg") - -csharp_gapic_library( - name = "googleads_csharp_gapic", - srcs = [ - ":googleads_proto_with_info", - ], - grpc_service_config = "googleads_grpc_service_config.json", - deps = [ - "//google/ads/googleads/v7/services:services_csharp_grpc", - ], -) - -csharp_gapic_assembly_pkg( - name = "googleads-csharp", - deps = [ - ":googleads_csharp_gapic", - "//google/ads/googleads/v7/common:common_csharp_proto", - "//google/ads/googleads/v7/enums:enums_csharp_proto", - "//google/ads/googleads/v7/errors:errors_csharp_proto", - "//google/ads/googleads/v7/resources:resources_csharp_proto", - "//google/ads/googleads/v7/services:services_csharp_grpc", - "//google/ads/googleads/v7/services:services_csharp_proto", - ], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "ruby_ads_gapic_library", - "ruby_gapic_assembly_pkg", -) - -ruby_ads_gapic_library( - name = "googleads_ruby_gapic", - srcs = ["googleads_proto_with_info"], - extra_protoc_parameters = [ - ":gem.:name=google-ads-googleads", - ":defaults.:service.:default_host=googleads.googleapis.com", - ":overrides.:namespace.Googleads=GoogleAds", - ], - grpc_service_config = "googleads_grpc_service_config.json", -) - -ruby_gapic_assembly_pkg( - name = "googleads-ruby", - deps = [ - ":googleads_ruby_gapic", - "//google/ads/googleads/v7/common:common_ruby_proto", - "//google/ads/googleads/v7/enums:enums_ruby_proto", - "//google/ads/googleads/v7/errors:errors_ruby_proto", - "//google/ads/googleads/v7/resources:resources_ruby_proto", - "//google/ads/googleads/v7/services:services_ruby_grpc", - "//google/ads/googleads/v7/services:services_ruby_proto", - ], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", -) - -py_gapic_library( - name = "googleads_py_gapic", - srcs = [":googleads_proto_with_info"], - grpc_service_config = "googleads_grpc_service_config.json", - opt_args = [ - "old-naming", - "lazy-import", - "python-gapic-name=googleads", - "python-gapic-templates=ads-templates", - "warehouse-package-name=google-ads", - ], -) - -py_gapic_assembly_pkg( - name = "googleads-py", - deps = [ - ":googleads_py_gapic", - "//google/ads/googleads/v7/common:common_py_proto", - "//google/ads/googleads/v7/enums:enums_py_proto", - "//google/ads/googleads/v7/errors:errors_py_proto", - "//google/ads/googleads/v7/resources:resources_py_proto", - "//google/ads/googleads/v7/services:services_py_grpc", - "//google/ads/googleads/v7/services:services_py_proto", - ], -) - -############################################################################## -# Node.js -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", -) - -nodejs_gapic_library( - name = "googleads_nodejs_gapic", - package_name = "google-ads", - src = ":googleads_proto_with_info", - extra_protoc_parameters = ["metadata"], - grpc_service_config = "googleads_grpc_service_config.json", - main_service = "GoogleAdsService", - package = "google.ads.googleads.v7", - service_yaml = "googleads_v7.yaml", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "googleads-nodejs", - deps = [ - ":googleads_nodejs_gapic", - ":googleads_proto", - ], -) diff --git a/google/ads/googleads/v7/common/BUILD.bazel b/google/ads/googleads/v7/common/BUILD.bazel deleted file mode 100644 index e630dc99e..000000000 --- a/google/ads/googleads/v7/common/BUILD.bazel +++ /dev/null @@ -1,94 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports -# subpackages. -proto_library( - name = "common_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/ads/googleads/v7/enums:enums_proto", - "//google/api:annotations_proto", - "//google/api:field_behavior_proto", - "//google/api:resource_proto", - "@com_google_protobuf//:wrappers_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", -) - -java_proto_library( - name = "common_java_proto", - deps = [":common_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_proto_library", -) - -csharp_proto_library( - name = "common_csharp_proto", - deps = [":common_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_proto_library", -) - -ruby_proto_library( - name = "common_ruby_proto", - deps = [":common_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_proto_library", -) - -py_proto_library( - name = "common_py_proto", - deps = [":common_proto"], -) diff --git a/google/ads/googleads/v7/common/ad_asset.proto b/google/ads/googleads/v7/common/ad_asset.proto deleted file mode 100644 index 6ea184269..000000000 --- a/google/ads/googleads/v7/common/ad_asset.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/common/asset_policy.proto"; -import "google/ads/googleads/v7/enums/asset_performance_label.proto"; -import "google/ads/googleads/v7/enums/served_asset_field_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AdAssetProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::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.v7.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType pinned_field = 2; - - // The performance label of this text asset. - google.ads.googleads.v7.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; -} diff --git a/google/ads/googleads/v7/common/ad_type_infos.proto b/google/ads/googleads/v7/common/ad_type_infos.proto deleted file mode 100644 index 6df1acf18..000000000 --- a/google/ads/googleads/v7/common/ad_type_infos.proto +++ /dev/null @@ -1,673 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/common/ad_asset.proto"; -import "google/ads/googleads/v7/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v7/enums/display_ad_format_setting.proto"; -import "google/ads/googleads/v7/enums/display_upload_product_type.proto"; -import "google/ads/googleads/v7/enums/legacy_app_install_ad_app_store.proto"; -import "google/ads/googleads/v7/enums/mime_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AdTypeInfosProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file containing info messages for specific ad types. - -// A text ad. -message TextAdInfo { - // The headline of the ad. - optional string headline = 4; - - // The first line of the ad's description. - optional string description1 = 5; - - // The second line of the ad's description. - optional string description2 = 6; -} - -// An expanded text ad. -message ExpandedTextAdInfo { - // The first part of the ad's headline. - optional string headline_part1 = 8; - - // The second part of the ad's headline. - optional string headline_part2 = 9; - - // The third part of the ad's headline. - optional string headline_part3 = 10; - - // The description of the ad. - optional string description = 11; - - // The second description of the ad. - optional string description2 = 12; - - // The text that can appear alongside the ad's displayed URL. - optional string path1 = 13; - - // Additional text that can appear alongside the ad's displayed URL. - optional string path2 = 14; -} - -// A call-only ad. -message CallOnlyAdInfo { - // The country code in the ad. - optional string country_code = 13; - - // The phone number in the ad. - optional string phone_number = 14; - - // The business name in the ad. - optional string business_name = 15; - - // First headline in the ad. - optional string headline1 = 16; - - // Second headline in the ad. - optional string headline2 = 17; - - // The first line of the ad's description. - optional string description1 = 18; - - // The second line of the ad's description. - optional string description2 = 19; - - // Whether to enable call tracking for the creative. Enabling call - // tracking also enables call conversions. - optional bool call_tracked = 20; - - // Whether to disable call conversion for the creative. - // If set to `true`, disables call conversions even when `call_tracked` is - // `true`. - // If `call_tracked` is `false`, this field is ignored. - optional bool disable_call_conversion = 21; - - // The URL to be used for phone number verification. - optional string phone_number_verification_url = 22; - - // The conversion action to attribute a call conversion to. If not set a - // default conversion action is used. This field only has effect if - // `call_tracked` is set to `true`. Otherwise this field is ignored. - optional string conversion_action = 23; - - // The call conversion behavior of this call only ad. It can use its own call - // conversion setting, inherit the account level setting, or be disabled. - google.ads.googleads.v7.enums.CallConversionReportingStateEnum.CallConversionReportingState conversion_reporting_state = 10; -} - -// An expanded dynamic search ad. -message ExpandedDynamicSearchAdInfo { - // The description of the ad. - optional string description = 3; - - // The second description of the ad. - optional string description2 = 4; -} - -// A hotel ad. -message HotelAdInfo { - -} - -// A Smart Shopping ad. -message ShoppingSmartAdInfo { - -} - -// A standard Shopping ad. -message ShoppingProductAdInfo { - -} - -// A Shopping Comparison Listing ad. -message ShoppingComparisonListingAdInfo { - // Headline of the ad. This field is required. Allowed length is between 25 - // and 45 characters. - optional string headline = 2; -} - -// A Gmail ad. -message GmailAdInfo { - // The Gmail teaser. - GmailTeaser teaser = 1; - - // The MediaFile resource name of the header image. Valid image types are GIF, - // JPEG and PNG. The minimum size is 300x100 pixels and the aspect ratio must - // be between 3:1 and 5:1 (+-1%). - optional string header_image = 10; - - // The MediaFile resource name of the marketing image. Valid image types are - // GIF, JPEG and PNG. The image must either be landscape with a minimum size - // of 600x314 pixels and aspect ratio of 600:314 (+-1%) or square with a - // minimum size of 300x300 pixels and aspect ratio of 1:1 (+-1%) - optional string marketing_image = 11; - - // Headline of the marketing image. - optional string marketing_image_headline = 12; - - // Description of the marketing image. - optional string marketing_image_description = 13; - - // Display-call-to-action of the marketing image. - DisplayCallToAction marketing_image_display_call_to_action = 6; - - // Product images. Up to 15 images are supported. - repeated ProductImage product_images = 7; - - // Product videos. Up to 7 videos are supported. At least one product video - // or a marketing image must be specified. - repeated ProductVideo product_videos = 8; -} - -// Gmail teaser data. The teaser is a small header that acts as an invitation -// to view the rest of the ad (the body). -message GmailTeaser { - // Headline of the teaser. - optional string headline = 5; - - // Description of the teaser. - optional string description = 6; - - // Business name of the advertiser. - optional string business_name = 7; - - // The MediaFile resource name of the logo image. Valid image types are GIF, - // JPEG and PNG. The minimum size is 144x144 pixels and the aspect ratio must - // be 1:1 (+-1%). - optional string logo_image = 8; -} - -// Data for display call to action. The call to action is a piece of the ad -// that prompts the user to do something. Like clicking a link or making a phone -// call. -message DisplayCallToAction { - // Text for the display-call-to-action. - optional string text = 5; - - // Text color for the display-call-to-action in hexadecimal, e.g. #ffffff for - // white. - optional string text_color = 6; - - // Identifies the URL collection in the `ad.url_collections` field. If not - // set, the URL defaults to `final_url`. - optional string url_collection_id = 7; -} - -// Product image specific data. -message ProductImage { - // The MediaFile resource name of the product image. Valid image types are - // GIF, JPEG and PNG. The minimum size is 300x300 pixels and the aspect ratio - // must be 1:1 (+-1%). - optional string product_image = 4; - - // Description of the product. - optional string description = 5; - - // Display-call-to-action of the product image. - DisplayCallToAction display_call_to_action = 3; -} - -// Product video specific data. -message ProductVideo { - // The MediaFile resource name of a video which must be hosted on YouTube. - optional string product_video = 2; -} - -// An image ad. -message ImageAdInfo { - // Width in pixels of the full size image. - optional int64 pixel_width = 15; - - // Height in pixels of the full size image. - optional int64 pixel_height = 16; - - // URL of the full size image. - optional string image_url = 17; - - // Width in pixels of the preview size image. - optional int64 preview_pixel_width = 18; - - // Height in pixels of the preview size image. - optional int64 preview_pixel_height = 19; - - // URL of the preview size image. - optional string preview_image_url = 20; - - // The mime type of the image. - google.ads.googleads.v7.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. - optional string name = 21; - - // The image to create the ImageAd from. This can be specified in one of - // two ways. - // 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; - - // Raw image data as bytes. - bytes data = 13; - - // An ad ID to copy the image from. - int64 ad_id_to_copy_image_from = 14; - } -} - -// Representation of video bumper in-stream ad format (very short in-stream -// non-skippable video ad). -message VideoBumperInStreamAdInfo { - // The MediaFile resource name of the companion banner used with the ad. - optional string companion_banner = 2; -} - -// Representation of video non-skippable in-stream ad format (15 second -// in-stream non-skippable video ad). -message VideoNonSkippableInStreamAdInfo { - // The MediaFile resource name of the companion banner used with the ad. - optional string companion_banner = 2; -} - -// Representation of video TrueView in-stream ad format (ad shown during video -// playback, often at beginning, which displays a skip button a few seconds into -// the video). -message VideoTrueViewInStreamAdInfo { - // Label on the CTA (call-to-action) button taking the user to the video ad's - // final URL. - // Required for TrueView for action campaigns, optional otherwise. - optional string action_button_label = 4; - - // Additional text displayed with the CTA (call-to-action) button to give - // context and encourage clicking on the button. - optional string action_headline = 5; - - // The MediaFile resource name of the companion banner used with the ad. - optional string companion_banner = 6; -} - -// Representation of video out-stream ad format (ad shown alongside a feed -// with automatic playback, without sound). -message VideoOutstreamAdInfo { - // The headline of the ad. - optional string headline = 3; - - // The description line. - optional string description = 4; -} - -// Representation of video TrueView discovery ad format. -message VideoTrueViewDiscoveryAdInfo { - // The headline of the ad. - optional string headline = 4; - - // First text line for a TrueView video discovery ad. - optional string description1 = 5; - - // Second text line for a TrueView video discovery ad. - optional string description2 = 6; -} - -// A video ad. -message VideoAdInfo { - // The MediaFile resource to use for the video. - optional string media_file = 7; - - // Format-specific schema for the different video formats. - oneof format { - // Video TrueView in-stream ad format. - VideoTrueViewInStreamAdInfo in_stream = 2; - - // Video bumper in-stream ad format. - VideoBumperInStreamAdInfo bumper = 3; - - // Video out-stream ad format. - VideoOutstreamAdInfo out_stream = 4; - - // Video non-skippable in-stream ad format. - VideoNonSkippableInStreamAdInfo non_skippable = 5; - - // Video TrueView discovery ad format. - VideoTrueViewDiscoveryAdInfo discovery = 6; - } -} - -// A video responsive ad. -message VideoResponsiveAdInfo { - // List of text assets used for the short headline, e.g. the "Call To Action" - // banner. Currently, only a single value for the short headline is supported. - repeated AdTextAsset headlines = 1; - - // List of text assets used for the long headline. - // Currently, only a single value for the long headline is supported. - repeated AdTextAsset long_headlines = 2; - - // List of text assets used for the description. - // Currently, only a single value for the description is supported. - repeated AdTextAsset descriptions = 3; - - // List of text assets used for the button, e.g. the "Call To Action" button. - // Currently, only a single value for the button is supported. - repeated AdTextAsset call_to_actions = 4; - - // List of YouTube video assets used for the ad. - // Currently, only a single value for the YouTube video asset is supported. - repeated AdVideoAsset videos = 5; - - // List of image assets used for the companion banner. - // Currently, only a single value for the companion banner asset is supported. - repeated AdImageAsset companion_banners = 6; -} - -// A responsive search ad. -// -// Responsive search ads let you create an ad that adapts to show more text, and -// more relevant messages, to your customers. Enter multiple headlines and -// descriptions when creating a responsive search ad, and over time, Google Ads -// will automatically test different combinations and learn which combinations -// perform best. By adapting your ad's content to more closely match potential -// customers' search terms, responsive search ads may improve your campaign's -// performance. -// -// More information at https://support.google.com/google-ads/answer/7684791 -message ResponsiveSearchAdInfo { - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. - repeated AdTextAsset headlines = 1; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. - repeated AdTextAsset descriptions = 2; - - // First part of text that can be appended to the URL in the ad. - optional string path1 = 5; - - // Second part of text that can be appended to the URL in the ad. This field - // can only be set when `path1` is also set. - optional string path2 = 6; -} - -// A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' -// in the Google Ads UI. -message LegacyResponsiveDisplayAdInfo { - // The short version of the ad's headline. - optional string short_headline = 16; - - // The long version of the ad's headline. - optional string long_headline = 17; - - // The description of the ad. - optional string description = 18; - - // The business name in the ad. - optional string business_name = 19; - - // Advertiser's consent to allow flexible color. When true, the ad may be - // served with different color if necessary. When false, the ad will be served - // with the specified colors or a neutral color. - // The default value is `true`. - // Must be true if `main_color` and `accent_color` are not set. - optional bool allow_flexible_color = 20; - - // The accent color of the ad in hexadecimal, e.g. #ffffff for white. - // If one of `main_color` and `accent_color` is set, the other is required as - // well. - optional string accent_color = 21; - - // The main color of the ad in hexadecimal, e.g. #ffffff for white. - // If one of `main_color` and `accent_color` is set, the other is required as - // well. - optional string main_color = 22; - - // The call-to-action text for the ad. - optional string call_to_action_text = 23; - - // The MediaFile resource name of the logo image used in the ad. - optional string logo_image = 24; - - // The MediaFile resource name of the square logo image used in the ad. - optional string square_logo_image = 25; - - // The MediaFile resource name of the marketing image used in the ad. - optional string marketing_image = 26; - - // The MediaFile resource name of the square marketing image used in the ad. - optional string square_marketing_image = 27; - - // Specifies which format the ad will be served in. Default is ALL_FORMATS. - google.ads.googleads.v7.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 13; - - // Prefix before price. E.g. 'as low as'. - optional string price_prefix = 28; - - // Promotion text used for dynamic formats of responsive ads. For example - // 'Free two-day shipping'. - optional string promo_text = 29; -} - -// An app ad. -message AppAdInfo { - // Mandatory ad text. - AdTextAsset mandatory_ad_text = 1; - - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. - repeated AdTextAsset headlines = 2; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. - repeated AdTextAsset descriptions = 3; - - // List of image assets that may be displayed with the ad. - repeated AdImageAsset images = 4; - - // List of YouTube video assets that may be displayed with the ad. - repeated AdVideoAsset youtube_videos = 5; - - // List of media bundle assets that may be used with the ad. - repeated AdMediaBundleAsset html5_media_bundles = 6; -} - -// App engagement ads allow you to write text encouraging a specific action in -// the app, like checking in, making a purchase, or booking a flight. -// They allow you to send users to a specific part of your app where they can -// find what they're looking for easier and faster. -message AppEngagementAdInfo { - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. - repeated AdTextAsset headlines = 1; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. - repeated AdTextAsset descriptions = 2; - - // List of image assets that may be displayed with the ad. - repeated AdImageAsset images = 3; - - // List of video assets that may be displayed with the ad. - repeated AdVideoAsset videos = 4; -} - -// A legacy app install ad that only can be used by a few select customers. -message LegacyAppInstallAdInfo { - // The ID of the mobile app. - optional string app_id = 6; - - // The app store the mobile app is available in. - google.ads.googleads.v7.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore app_store = 2; - - // The headline of the ad. - optional string headline = 7; - - // The first description line of the ad. - optional string description1 = 8; - - // The second description line of the ad. - optional string description2 = 9; -} - -// A responsive display ad. -message ResponsiveDisplayAdInfo { - // Marketing images 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%). At least one `marketing_image` is required. Combined - // with `square_marketing_images`, the maximum is 15. - repeated AdImageAsset marketing_images = 1; - - // Square marketing images to be used in the ad. Valid image types are GIF, - // JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must - // be 1:1 (+-1%). At least one square `marketing_image` is required. Combined - // with `marketing_images`, the maximum is 15. - repeated AdImageAsset square_marketing_images = 2; - - // Logo images to be used in the ad. Valid image types are GIF, - // JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must - // be 4:1 (+-1%). Combined with `square_logo_images`, the maximum is 5. - repeated AdImageAsset logo_images = 3; - - // Square logo images 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%). Combined with `square_logo_images`, the maximum is 5. - repeated AdImageAsset square_logo_images = 4; - - // Short format headlines for the ad. The maximum length is 30 characters. - // At least 1 and max 5 headlines can be specified. - repeated AdTextAsset headlines = 5; - - // A required long format headline. The maximum length is 90 characters. - AdTextAsset long_headline = 6; - - // Descriptive texts for the ad. The maximum length is 90 characters. At - // least 1 and max 5 headlines can be specified. - repeated AdTextAsset descriptions = 7; - - // Optional YouTube videos for the ad. A maximum of 5 videos can be specified. - repeated AdVideoAsset youtube_videos = 8; - - // The advertiser/brand name. Maximum display width is 25. - optional string business_name = 17; - - // The main color of the ad in hexadecimal, e.g. #ffffff for white. - // If one of `main_color` and `accent_color` is set, the other is required as - // well. - optional string main_color = 18; - - // The accent color of the ad in hexadecimal, e.g. #ffffff for white. - // If one of `main_color` and `accent_color` is set, the other is required as - // well. - optional string accent_color = 19; - - // Advertiser's consent to allow flexible color. When true, the ad may be - // served with different color if necessary. When false, the ad will be served - // with the specified colors or a neutral color. - // The default value is `true`. - // Must be true if `main_color` and `accent_color` are not set. - optional bool allow_flexible_color = 20; - - // The call-to-action text for the ad. Maximum display width is 30. - optional string call_to_action_text = 21; - - // Prefix before price. E.g. 'as low as'. - optional string price_prefix = 22; - - // Promotion text used for dynamic formats of responsive ads. For example - // 'Free two-day shipping'. - optional string promo_text = 23; - - // Specifies which format the ad will be served in. Default is ALL_FORMATS. - google.ads.googleads.v7.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 16; - - // Specification for various creative controls. - ResponsiveDisplayAdControlSpec control_spec = 24; -} - -// A local ad. -message LocalAdInfo { - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. At least 1 and at most 5 headlines must be - // specified. - repeated AdTextAsset headlines = 1; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. At least 1 and at most 5 descriptions must - // be specified. - repeated AdTextAsset descriptions = 2; - - // List of text assets for call-to-actions. When the ad serves the - // call-to-actions will be selected from this list. Call-to-actions are - // optional and at most 5 can be specified. - repeated AdTextAsset call_to_actions = 3; - - // List of marketing image assets that may be displayed with the ad. The - // images must be 314x600 pixels or 320x320 pixels. At least 1 and at most - // 20 image assets must be specified. - repeated AdImageAsset marketing_images = 4; - - // List of logo image assets that may be displayed with the ad. The images - // must be 128x128 pixels and not larger than 120KB. At least 1 and at most 5 - // image assets must be specified. - repeated AdImageAsset logo_images = 5; - - // List of YouTube video assets that may be displayed with the ad. Videos - // are optional and at most 20 can be specified. - repeated AdVideoAsset videos = 6; - - // First part of optional text that can be appended to the URL in the ad. - optional string path1 = 9; - - // Second part of optional text that can be appended to the URL in the ad. - // This field can only be set when `path1` is also set. - optional string path2 = 10; -} - -// A generic type of display ad. The exact ad format is controlled by the -// `display_upload_product_type` field, which determines what kinds of data -// 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.v7.enums.DisplayUploadProductTypeEnum.DisplayUploadProductType display_upload_product_type = 1; - - // The asset data that makes up the ad. - oneof media_asset { - // A media bundle asset to be used in the ad. For information about the - // media bundle for HTML5_UPLOAD_AD, see - // https://support.google.com/google-ads/answer/1722096 - // Media bundles that are part of dynamic product types use a special format - // that needs to be created through the Google Web Designer. See - // https://support.google.com/webdesigner/answer/7543898 for more - // information. - AdMediaBundleAsset media_bundle = 2; - } -} - -// Specification for various creative controls for a responsive display ad. -message ResponsiveDisplayAdControlSpec { - // Whether the advertiser has opted into the asset enhancements feature. - bool enable_asset_enhancements = 1; - - // Whether the advertiser has opted into auto-gen video feature. - bool enable_autogen_video = 2; -} diff --git a/google/ads/googleads/v7/common/asset_policy.proto b/google/ads/googleads/v7/common/asset_policy.proto deleted file mode 100644 index e30611cd3..000000000 --- a/google/ads/googleads/v7/common/asset_policy.proto +++ /dev/null @@ -1,46 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/enums/policy_approval_status.proto"; -import "google/ads/googleads/v7/enums/policy_review_status.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AssetPolicyProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing asset policies. - -// Contains policy information for an asset inside an ad. -message AdAssetPolicySummary { - // The list of policy findings for this asset. - repeated PolicyTopicEntry policy_topic_entries = 1; - - // Where in the review process this asset. - google.ads.googleads.v7.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.v7.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; -} diff --git a/google/ads/googleads/v7/common/asset_types.proto b/google/ads/googleads/v7/common/asset_types.proto deleted file mode 100644 index 0c61dcfd8..000000000 --- a/google/ads/googleads/v7/common/asset_types.proto +++ /dev/null @@ -1,325 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/common/feed_common.proto"; -import "google/ads/googleads/v7/enums/lead_form_call_to_action_type.proto"; -import "google/ads/googleads/v7/enums/lead_form_desired_intent.proto"; -import "google/ads/googleads/v7/enums/lead_form_field_user_input_type.proto"; -import "google/ads/googleads/v7/enums/lead_form_post_submit_call_to_action_type.proto"; -import "google/ads/googleads/v7/enums/mime_type.proto"; -import "google/ads/googleads/v7/enums/promotion_extension_discount_modifier.proto"; -import "google/ads/googleads/v7/enums/promotion_extension_occasion.proto"; -import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AssetTypesProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file containing info messages for specific asset types. - -// A YouTube asset. -message YoutubeVideoAsset { - // YouTube video id. This is the 11 character string value used in the - // YouTube video URL. - optional string youtube_video_id = 2; - - // YouTube video title. - string youtube_video_title = 3; -} - -// A MediaBundle asset. -message MediaBundleAsset { - // Media bundle (ZIP file) asset data. The format of the uploaded ZIP file - // depends on the ad field where it will be used. For more information on the - // format, see the documentation of the ad field where you plan on using the - // MediaBundleAsset. This field is mutate only. - optional bytes data = 2; -} - -// An Image asset. -message ImageAsset { - // The raw bytes data of an image. This field is mutate only. - optional bytes data = 5; - - // File size of the image asset in bytes. - optional int64 file_size = 6; - - // MIME type of the image asset. - google.ads.googleads.v7.enums.MimeTypeEnum.MimeType mime_type = 3; - - // Metadata for this image at its original size. - ImageDimension full_size = 4; -} - -// Metadata for an image at a certain size, either original or resized. -message ImageDimension { - // Height of the image. - optional int64 height_pixels = 4; - - // Width of the image. - optional int64 width_pixels = 5; - - // A URL that returns the image with this height and width. - optional string url = 6; -} - -// A Text asset. -message TextAsset { - // Text content of the text asset. - optional string text = 2; -} - -// A Lead Form asset. -message LeadFormAsset { - // Required. The name of the business being advertised. - string business_name = 10 [(google.api.field_behavior) = REQUIRED]; - - // Required. Pre-defined display text that encourages user to expand the form. - google.ads.googleads.v7.enums.LeadFormCallToActionTypeEnum.LeadFormCallToActionType call_to_action_type = 17 [(google.api.field_behavior) = REQUIRED]; - - // Required. Text giving a clear value proposition of what users expect once they expand - // the form. - string call_to_action_description = 18 [(google.api.field_behavior) = REQUIRED]; - - // Required. Headline of the expanded form to describe what the form is asking for or - // facilitating. - string headline = 12 [(google.api.field_behavior) = REQUIRED]; - - // Required. Detailed description of the expanded form to describe what the form is - // asking for or facilitating. - string description = 13 [(google.api.field_behavior) = REQUIRED]; - - // Required. Link to a page describing the policy on how the collected data is handled - // by the advertiser/business. - string privacy_policy_url = 14 [(google.api.field_behavior) = REQUIRED]; - - // Headline of text shown after form submission that describes how the - // advertiser will follow up with the user. - optional string post_submit_headline = 15; - - // Detailed description shown after form submission that describes how the - // advertiser will follow up with the user. - optional string post_submit_description = 16; - - // Ordered list of input fields. - repeated LeadFormField fields = 8; - - // Configured methods for collected lead data to be delivered to advertiser. - // Only one method typed as WebhookDelivery can be configured. - repeated LeadFormDeliveryMethod delivery_methods = 9; - - // Pre-defined display text that encourages user action after the form is - // submitted. - google.ads.googleads.v7.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%). - optional string background_image_asset = 20; - - // Desired intent for the lead form, e.g. more volume or more qualified. - google.ads.googleads.v7.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent desired_intent = 21; - - // Custom disclosure shown along with Google disclaimer on the lead form. - // Accessible to allowed customers only. - optional string custom_disclosure = 22; -} - -// One input field instance within a form. -message LeadFormField { - // Describes the input type, which may be a predefined type such as - // "full name" or a pre-vetted question like "Do you own a car?". - google.ads.googleads.v7.enums.LeadFormFieldUserInputTypeEnum.LeadFormFieldUserInputType input_type = 1; - - // Defines answer configuration that this form field accepts. If oneof is not - // set, this is a free-text answer. - oneof answers { - // Answer configuration for a single choice question. Can be set only for - // pre-vetted question fields. Minimum of 2 answers required and maximum of - // 12 allowed. - LeadFormSingleChoiceAnswers single_choice_answers = 2; - } -} - -// Defines possible answers for a single choice question, usually presented as -// a single-choice drop-down list. -message LeadFormSingleChoiceAnswers { - // List of choices for a single question field. The order of entries defines - // UI order. Minimum of 2 answers required and maximum of 12 allowed. - repeated string answers = 1; -} - -// A configuration of how leads are delivered to the advertiser. -message LeadFormDeliveryMethod { - // Various subtypes of delivery. - oneof delivery_details { - // Webhook method of delivery. - WebhookDelivery webhook = 1; - } -} - -// Google notifies the advertiser of leads by making HTTP calls to an -// endpoint they specify. The requests contain JSON matching a schema that -// Google publishes as part of form ads documentation. -message WebhookDelivery { - // Webhook url specified by advertiser to send the lead. - optional string advertiser_webhook_url = 4; - - // Anti-spoofing secret set by the advertiser as part of the webhook payload. - optional string google_secret = 5; - - // The schema version that this delivery instance will use. - optional int64 payload_schema_version = 6; -} - -// A Book on Google asset. Used to redirect user to book through Google. -// Book on Google will change the redirect url to book directly through -// Google. -message BookOnGoogleAsset { - -} - -// A Promotion asset. -message PromotionAsset { - // Required. A freeform description of what the promotion is targeting. - string promotion_target = 1 [(google.api.field_behavior) = REQUIRED]; - - // A modifier for qualification of the discount. - google.ads.googleads.v7.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2; - - // Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd - // format. - string redemption_start_date = 7; - - // Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd - // format. - string redemption_end_date = 8; - - // 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.v7.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9; - - // The language of the promotion. - // Represented as BCP 47 language tag. - string language_code = 10; - - // Start date of when this asset is effective and can begin serving, in - // yyyy-MM-dd format. - string start_date = 11; - - // Last date of when this asset is effective and still serving, in yyyy-MM-dd - // format. - string end_date = 12; - - // List of non-overlapping schedules specifying all time intervals for which - // the asset may serve. There can be a maximum of 6 schedules per day, 42 in - // total. - repeated AdScheduleInfo ad_schedule_targets = 13; - - // Discount type, can be percentage off or amount off. - oneof discount_type { - // Percentage off discount in the promotion. 1,000,000 = 100%. - // Either this or money_amount_off is required. - int64 percent_off = 3; - - // Money amount off for discount in the promotion. - // Either this or percent_off is required. - Money money_amount_off = 4; - } - - // Promotion trigger. Can be by promotion code or promo by eligible order - // amount. - oneof promotion_trigger { - // A code the user should use in order to be eligible for the promotion. - string promotion_code = 5; - - // The amount the total order needs to be for the user to be eligible for - // the promotion. - Money orders_over_amount = 6; - } -} - -// A Callout asset. -message CalloutAsset { - // Required. The callout text. - // The length of this string should be between 1 and 25, inclusive. - string callout_text = 1 [(google.api.field_behavior) = REQUIRED]; - - // Start date of when this asset is effective and can begin serving, in - // yyyy-MM-dd format. - string start_date = 2; - - // Last date of when this asset is effective and still serving, in yyyy-MM-dd - // format. - string end_date = 3; - - // List of non-overlapping schedules specifying all time intervals for which - // the asset may serve. There can be a maximum of 6 schedules per day, 42 in - // total. - repeated AdScheduleInfo ad_schedule_targets = 4; -} - -// A Structured Snippet asset. -message StructuredSnippetAsset { - // Required. The header of the snippet. - // This string should be one of the predefined values at - // https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers - string header = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The values in the snippet. - // The size of this collection should be between 3 and 10, inclusive. - // The length of each value should be between 1 and 25 characters, inclusive. - repeated string values = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A Sitelink asset. -message SitelinkAsset { - // Required. URL display text for the sitelink. - // The length of this string should be between 1 and 25, inclusive. - string link_text = 1 [(google.api.field_behavior) = REQUIRED]; - - // First line of the description for the sitelink. - // If set, the length should be between 1 and 35, inclusive, and description2 - // must also be set. - string description1 = 2; - - // Second line of the description for the sitelink. - // If set, the length should be between 1 and 35, inclusive, and description1 - // must also be set. - string description2 = 3; - - // Start date of when this asset is effective and can begin serving, in - // yyyy-MM-dd format. - string start_date = 4; - - // Last date of when this asset is effective and still serving, in yyyy-MM-dd - // format. - string end_date = 5; - - // List of non-overlapping schedules specifying all time intervals for which - // the asset may serve. There can be a maximum of 6 schedules per day, 42 in - // total. - repeated AdScheduleInfo ad_schedule_targets = 6; -} diff --git a/google/ads/googleads/v7/common/bidding.proto b/google/ads/googleads/v7/common/bidding.proto deleted file mode 100644 index 3f278bda3..000000000 --- a/google/ads/googleads/v7/common/bidding.proto +++ /dev/null @@ -1,179 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/target_impression_share_location.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "BiddingProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing bidding schemes. - -// Commission is an automatic bidding strategy in which the advertiser pays a -// certain portion of the conversion value. -message Commission { - // Commission rate defines the portion of the conversion value that the - // advertiser will be billed. A commission rate of x should be passed into - // this field as (x * 1,000,000). For example, 106,000 represents a commission - // rate of 0.106 (10.6%). - optional int64 commission_rate_micros = 2; -} - -// An automated 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. -message EnhancedCpc { - -} - -// Manual click-based bidding where user pays per click. -message ManualCpc { - // Whether bids are to be enhanced based on conversion optimizer data. - optional bool enhanced_cpc_enabled = 2; -} - -// Manual impression-based bidding where user pays per thousand impressions. -message ManualCpm { - -} - -// View based bidding where user pays per video view. -message ManualCpv { - -} - -// An automated bidding strategy to help get the most conversions for your -// campaigns while spending your budget. -message MaximizeConversions { - // The target cost-per-action (CPA) option. This is the average amount that - // you would like to spend per conversion action. If set, the bid strategy - // will get as many conversions as possible at or below the target - // cost-per-action. If the target CPA is not set, the bid strategy will - // aim to achieve the lowest possible CPA given the budget. - int64 target_cpa = 1; -} - -// An automated bidding strategy to help get the most conversion value for your -// campaigns while spending your budget. -message MaximizeConversionValue { - // 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. - optional double target_roas = 2; -} - -// 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 { - // 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 = 4; - - // Maximum bid limit that can be set by the bid strategy. - // The limit applies to all keywords managed by the strategy. - // This should only be set for portfolio bid strategies. - optional int64 cpc_bid_ceiling_micros = 5; - - // Minimum bid limit that can be set by the bid strategy. - // The limit applies to all keywords managed by the strategy. - // This should only be set for portfolio bid strategies. - optional int64 cpc_bid_floor_micros = 6; -} - -// Target CPM (cost per thousand impressions) is an automated bidding strategy -// that sets bids to optimize performance given the target CPM you set. -message TargetCpm { - -} - -// 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 { - // The targeted location on the search results page. - google.ads.googleads.v7.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1; - - // The desired fraction of ads to be shown in the targeted location in micros. - // E.g. 1% equals 10,000. - optional int64 location_fraction_micros = 4; - - // 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 = 5; -} - -// An automated bidding strategy that helps you maximize revenue while -// averaging a specific target return on ad spend (ROAS). -message TargetRoas { - // Required. The desired revenue (based on conversion data) per unit of spend. - // Value must be between 0.01 and 1000.0, inclusive. - optional double target_roas = 4; - - // Maximum bid limit that can be set by the bid strategy. - // The limit applies to all keywords managed by the strategy. - // This should only be set for portfolio bid strategies. - optional int64 cpc_bid_ceiling_micros = 5; - - // Minimum bid limit that can be set by the bid strategy. - // The limit applies to all keywords managed by the strategy. - // This should only be set for portfolio bid strategies. - optional int64 cpc_bid_floor_micros = 6; -} - -// 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. - // 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 = 3 [deprecated = true]; - - // 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 = 4; -} - -// A bidding strategy where bids are a fraction of the advertised price for -// some good or service. -message PercentCpc { - // Maximum bid limit that can be set by the bid strategy. This is - // an optional field entered by the advertiser and specified in local micros. - // Note: A zero value is interpreted in the same way as having bid_ceiling - // undefined. - optional int64 cpc_bid_ceiling_micros = 3; - - // Adjusts the bid for each auction upward or downward, depending on the - // likelihood of a conversion. Individual bids may exceed - // cpc_bid_ceiling_micros, but the average bid amount for a campaign should - // not. - optional bool enhanced_cpc_enabled = 4; -} diff --git a/google/ads/googleads/v7/common/click_location.proto b/google/ads/googleads/v7/common/click_location.proto deleted file mode 100644 index 2943fd73b..000000000 --- a/google/ads/googleads/v7/common/click_location.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "ClickLocationProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing a ClickLocation. - -// Location criteria associated with a click. -message ClickLocation { - // The city location criterion associated with the impression. - optional string city = 6; - - // The country location criterion associated with the impression. - optional string country = 7; - - // The metro location criterion associated with the impression. - optional string metro = 8; - - // The most specific location criterion associated with the impression. - optional string most_specific = 9; - - // The region location criterion associated with the impression. - optional string region = 10; -} diff --git a/google/ads/googleads/v7/common/criteria.proto b/google/ads/googleads/v7/common/criteria.proto deleted file mode 100644 index 2fd99ef8f..000000000 --- a/google/ads/googleads/v7/common/criteria.proto +++ /dev/null @@ -1,636 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/age_range_type.proto"; -import "google/ads/googleads/v7/enums/app_payment_model_type.proto"; -import "google/ads/googleads/v7/enums/content_label_type.proto"; -import "google/ads/googleads/v7/enums/day_of_week.proto"; -import "google/ads/googleads/v7/enums/device.proto"; -import "google/ads/googleads/v7/enums/gender_type.proto"; -import "google/ads/googleads/v7/enums/hotel_date_selection_type.proto"; -import "google/ads/googleads/v7/enums/income_range_type.proto"; -import "google/ads/googleads/v7/enums/interaction_type.proto"; -import "google/ads/googleads/v7/enums/keyword_match_type.proto"; -import "google/ads/googleads/v7/enums/listing_group_type.proto"; -import "google/ads/googleads/v7/enums/location_group_radius_units.proto"; -import "google/ads/googleads/v7/enums/minute_of_hour.proto"; -import "google/ads/googleads/v7/enums/parental_status_type.proto"; -import "google/ads/googleads/v7/enums/preferred_content_type.proto"; -import "google/ads/googleads/v7/enums/product_bidding_category_level.proto"; -import "google/ads/googleads/v7/enums/product_channel.proto"; -import "google/ads/googleads/v7/enums/product_channel_exclusivity.proto"; -import "google/ads/googleads/v7/enums/product_condition.proto"; -import "google/ads/googleads/v7/enums/product_custom_attribute_index.proto"; -import "google/ads/googleads/v7/enums/product_type_level.proto"; -import "google/ads/googleads/v7/enums/proximity_radius_units.proto"; -import "google/ads/googleads/v7/enums/webpage_condition_operand.proto"; -import "google/ads/googleads/v7/enums/webpage_condition_operator.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "CriteriaProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing criteria types. - -// A keyword criterion. -message KeywordInfo { - // The text of the keyword (at most 80 characters and 10 words). - optional string text = 3; - - // The match type of the keyword. - google.ads.googleads.v7.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; -} - -// A placement criterion. This can be used to modify bids for sites when -// targeting the content network. -message PlacementInfo { - // URL of the placement. - // - // For example, "http://www.domain.com". - optional string url = 2; -} - -// A mobile app category criterion. -message MobileAppCategoryInfo { - // The mobile app category constant resource name. - optional string mobile_app_category_constant = 2; -} - -// A mobile application criterion. -message MobileApplicationInfo { - // A string that uniquely identifies a mobile application to Google Ads API. - // The format of this string is "{platform}-{platform_native_id}", where - // platform is "1" for iOS apps and "2" for Android apps, and where - // platform_native_id is the mobile application identifier native to the - // corresponding platform. - // For iOS, this native identifier is the 9 digit string that appears at the - // end of an App Store URL (e.g., "476943146" for "Flood-It! 2" whose App - // Store link is "http://itunes.apple.com/us/app/flood-it!-2/id476943146"). - // For Android, this native identifier is the application's package name - // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link - // "https://play.google.com/store/apps/details?id=com.labpixies.colordrips"). - // A well formed app id for Google Ads API would thus be "1-476943146" for iOS - // and "2-com.labpixies.colordrips" for Android. - // This field is required and must be set in CREATE operations. - optional string app_id = 4; - - // Name of this mobile application. - optional string name = 5; -} - -// A location criterion. -message LocationInfo { - // The geo target constant resource name. - optional string geo_target_constant = 2; -} - -// A device criterion. -message DeviceInfo { - // Type of the device. - google.ads.googleads.v7.enums.DeviceEnum.Device type = 1; -} - -// A preferred content criterion. -message PreferredContentInfo { - // Type of the preferred content. - google.ads.googleads.v7.enums.PreferredContentTypeEnum.PreferredContentType type = 2; -} - -// A listing group criterion. -message ListingGroupInfo { - // Type of the listing group. - google.ads.googleads.v7.enums.ListingGroupTypeEnum.ListingGroupType type = 1; - - // Dimension value with which this listing group is refining its parent. - // Undefined for the root group. - ListingDimensionInfo case_value = 2; - - // Resource name of ad group criterion which is the parent listing group - // subdivision. Null for the root group. - optional string parent_ad_group_criterion = 4; -} - -// A listing scope criterion. -message ListingScopeInfo { - // Scope of the campaign criterion. - repeated ListingDimensionInfo dimensions = 2; -} - -// Listing dimensions for listing group criterion. -message ListingDimensionInfo { - // Dimension of one of the types below is always present. - oneof dimension { - // Advertiser-specific hotel ID. - HotelIdInfo hotel_id = 2; - - // Class of the hotel as a number of stars 1 to 5. - HotelClassInfo hotel_class = 3; - - // Country or Region the hotel is located in. - HotelCountryRegionInfo hotel_country_region = 4; - - // State the hotel is located in. - HotelStateInfo hotel_state = 5; - - // City the hotel is located in. - HotelCityInfo hotel_city = 6; - - // Bidding category of a product offer. - ProductBiddingCategoryInfo product_bidding_category = 13; - - // Brand of a product offer. - ProductBrandInfo product_brand = 15; - - // Locality of a product offer. - ProductChannelInfo product_channel = 8; - - // Availability of a product offer. - ProductChannelExclusivityInfo product_channel_exclusivity = 9; - - // Condition of a product offer. - ProductConditionInfo product_condition = 10; - - // Custom attribute of a product offer. - ProductCustomAttributeInfo product_custom_attribute = 16; - - // Item id of a product offer. - ProductItemIdInfo product_item_id = 11; - - // Type of a product offer. - ProductTypeInfo product_type = 12; - - // Unknown dimension. Set when no other listing dimension is set. - UnknownListingDimensionInfo unknown_listing_dimension = 14; - } -} - -// Advertiser-specific hotel ID. -message HotelIdInfo { - // String value of the hotel ID. - optional string value = 2; -} - -// Class of the hotel as a number of stars 1 to 5. -message HotelClassInfo { - // Long value of the hotel class. - optional int64 value = 2; -} - -// Country or Region the hotel is located in. -message HotelCountryRegionInfo { - // The Geo Target Constant resource name. - optional string country_region_criterion = 2; -} - -// State the hotel is located in. -message HotelStateInfo { - // The Geo Target Constant resource name. - optional string state_criterion = 2; -} - -// City the hotel is located in. -message HotelCityInfo { - // The Geo Target Constant resource name. - optional string city_criterion = 2; -} - -// Bidding category of a product offer. -message ProductBiddingCategoryInfo { - // 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 = 4; - - // Two-letter upper-case country code of the product bidding category. It must - // match the campaign.shopping_setting.sales_country field. - optional string country_code = 5; - - // Level of the product bidding category. - google.ads.googleads.v7.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 3; -} - -// Brand of the product. -message ProductBrandInfo { - // String value of the product brand. - optional string value = 2; -} - -// Locality of a product offer. -message ProductChannelInfo { - // Value of the locality. - google.ads.googleads.v7.enums.ProductChannelEnum.ProductChannel channel = 1; -} - -// Availability of a product offer. -message ProductChannelExclusivityInfo { - // Value of the availability. - google.ads.googleads.v7.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity channel_exclusivity = 1; -} - -// Condition of a product offer. -message ProductConditionInfo { - // Value of the condition. - google.ads.googleads.v7.enums.ProductConditionEnum.ProductCondition condition = 1; -} - -// Custom attribute of a product offer. -message ProductCustomAttributeInfo { - // String value of the product custom attribute. - optional string value = 3; - - // Indicates the index of the custom attribute. - google.ads.googleads.v7.enums.ProductCustomAttributeIndexEnum.ProductCustomAttributeIndex index = 2; -} - -// Item id of a product offer. -message ProductItemIdInfo { - // Value of the id. - optional string value = 2; -} - -// Type of a product offer. -message ProductTypeInfo { - // Value of the type. - optional string value = 3; - - // Level of the type. - google.ads.googleads.v7.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2; -} - -// Unknown listing dimension. -message UnknownListingDimensionInfo { - -} - -// Criterion for hotel date selection (default dates vs. user selected). -message HotelDateSelectionTypeInfo { - // Type of the hotel date selection - google.ads.googleads.v7.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType type = 1; -} - -// Criterion for number of days prior to the stay the booking is being made. -message HotelAdvanceBookingWindowInfo { - // Low end of the number of days prior to the stay. - optional int64 min_days = 3; - - // High end of the number of days prior to the stay. - optional int64 max_days = 4; -} - -// Criterion for length of hotel stay in nights. -message HotelLengthOfStayInfo { - // Low end of the number of nights in the stay. - optional int64 min_nights = 3; - - // High end of the number of nights in the stay. - optional int64 max_nights = 4; -} - -// Criterion for a check-in date range. -message HotelCheckInDateRangeInfo { - // Start date in the YYYY-MM-DD format. - string start_date = 1; - - // End date in the YYYY-MM-DD format. - string end_date = 2; -} - -// Criterion for day of the week the booking is for. -message HotelCheckInDayInfo { - // The day of the week. - google.ads.googleads.v7.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1; -} - -// Criterion for Interaction Type. -message InteractionTypeInfo { - // The interaction type. - google.ads.googleads.v7.enums.InteractionTypeEnum.InteractionType type = 1; -} - -// Represents an AdSchedule criterion. -// -// AdSchedule is specified as the day of the week and a time interval -// within which ads will be shown. -// -// No more than six AdSchedules can be added for the same day. -message AdScheduleInfo { - // Minutes after the start hour at which this schedule starts. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - google.ads.googleads.v7.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.v7.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; - - // Starting hour in 24 hour time. - // This field must be between 0 and 23, inclusive. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - optional int32 start_hour = 6; - - // Ending hour in 24 hour time; 24 signifies end of the day. - // This field must be between 0 and 24, inclusive. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - optional int32 end_hour = 7; - - // Day of the week the schedule applies to. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - google.ads.googleads.v7.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; -} - -// An age range criterion. -message AgeRangeInfo { - // Type of the age range. - google.ads.googleads.v7.enums.AgeRangeTypeEnum.AgeRangeType type = 1; -} - -// A gender criterion. -message GenderInfo { - // Type of the gender. - google.ads.googleads.v7.enums.GenderTypeEnum.GenderType type = 1; -} - -// An income range criterion. -message IncomeRangeInfo { - // Type of the income range. - google.ads.googleads.v7.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1; -} - -// A parental status criterion. -message ParentalStatusInfo { - // Type of the parental status. - google.ads.googleads.v7.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1; -} - -// A YouTube Video criterion. -message YouTubeVideoInfo { - // YouTube video id as it appears on the YouTube watch page. - optional string video_id = 2; -} - -// A YouTube Channel criterion. -message YouTubeChannelInfo { - // The YouTube uploader channel id or the channel code of a YouTube channel. - optional string channel_id = 2; -} - -// A User List criterion. Represents a user list that is defined by the -// advertiser to be targeted. -message UserListInfo { - // The User List resource name. - optional string user_list = 2; -} - -// A Proximity criterion. The geo point and radius determine what geographical -// area is included. The address is a description of the geo point that does -// not affect ad serving. -// -// There are two ways to create a proximity. First, by setting an address -// and radius. The geo point will be automatically computed. Second, by -// setting a geo point and radius. The address is an optional label that won't -// be validated. -message ProximityInfo { - // Latitude and longitude. - GeoPointInfo geo_point = 1; - - // The radius of the proximity. - optional double radius = 5; - - // The unit of measurement of the radius. Default is KILOMETERS. - google.ads.googleads.v7.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3; - - // Full address. - AddressInfo address = 4; -} - -// Geo point for proximity criterion. -message GeoPointInfo { - // Micro degrees for the longitude. - optional int32 longitude_in_micro_degrees = 3; - - // Micro degrees for the latitude. - optional int32 latitude_in_micro_degrees = 4; -} - -// Address for proximity criterion. -message AddressInfo { - // Postal code. - optional string postal_code = 8; - - // Province or state code. - optional string province_code = 9; - - // Country code. - optional string country_code = 10; - - // Province or state name. - optional string province_name = 11; - - // Street address line 1. - optional string street_address = 12; - - // Street address line 2. This field is write-only. It is only used for - // calculating the longitude and latitude of an address when geo_point is - // empty. - optional string street_address2 = 13; - - // Name of the city. - optional string city_name = 14; -} - -// A topic criterion. Use topics to target or exclude placements in the -// Google Display Network based on the category into which the placement falls -// (for example, "Pets & Animals/Pets/Dogs"). -message TopicInfo { - // The Topic Constant resource name. - optional string topic_constant = 3; - - // The category to target or exclude. Each subsequent element in the array - // describes a more specific sub-category. For example, - // "Pets & Animals", "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs" - // category. - repeated string path = 4; -} - -// A language criterion. -message LanguageInfo { - // The language constant resource name. - optional string language_constant = 2; -} - -// An IpBlock criterion used for IP exclusions. We allow: -// - IPv4 and IPv6 addresses -// - individual addresses (192.168.0.1) -// - masks for individual addresses (192.168.0.1/32) -// - masks for Class C networks (192.168.0.1/24) -message IpBlockInfo { - // The IP address of this IP block. - optional string ip_address = 2; -} - -// Content Label for category exclusion. -message ContentLabelInfo { - // Content label type, required for CREATE operations. - google.ads.googleads.v7.enums.ContentLabelTypeEnum.ContentLabelType type = 1; -} - -// Represents a Carrier Criterion. -message CarrierInfo { - // The Carrier constant resource name. - optional string carrier_constant = 2; -} - -// Represents a particular interest-based topic to be targeted. -message UserInterestInfo { - // The UserInterest resource name. - optional string user_interest_category = 2; -} - -// Represents a criterion for targeting webpages of an advertiser's website. -message WebpageInfo { - // The name of the criterion that is defined by this parameter. The name value - // will be used for identifying, sorting and filtering criteria with this type - // of parameters. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - optional string criterion_name = 3; - - // Conditions, or logical expressions, for webpage targeting. The list of - // webpage targeting conditions are and-ed together when evaluated - // for targeting. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - repeated WebpageConditionInfo conditions = 2; - - // Website criteria coverage percentage. This is the computed percentage - // of website coverage based on the website target, negative website target - // and negative keywords in the ad group and campaign. For instance, when - // coverage returns as 1, it indicates it has 100% coverage. This field is - // read-only. - double coverage_percentage = 4; - - // List of sample urls that match the website target. This field is read-only. - WebpageSampleInfo sample = 5; -} - -// Logical expression for targeting webpages of an advertiser's website. -message WebpageConditionInfo { - // Operand of webpage targeting condition. - google.ads.googleads.v7.enums.WebpageConditionOperandEnum.WebpageConditionOperand operand = 1; - - // Operator of webpage targeting condition. - google.ads.googleads.v7.enums.WebpageConditionOperatorEnum.WebpageConditionOperator operator = 2; - - // Argument of webpage targeting condition. - optional string argument = 4; -} - -// List of sample urls that match the website target -message WebpageSampleInfo { - // Webpage sample urls - repeated string sample_urls = 1; -} - -// Represents an operating system version to be targeted. -message OperatingSystemVersionInfo { - // The operating system version constant resource name. - optional string operating_system_version_constant = 2; -} - -// An app payment model criterion. -message AppPaymentModelInfo { - // Type of the app payment model. - google.ads.googleads.v7.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1; -} - -// A mobile device criterion. -message MobileDeviceInfo { - // The mobile device constant resource name. - optional string mobile_device_constant = 2; -} - -// A custom affinity criterion. -// A criterion of this type is only targetable. -message CustomAffinityInfo { - // The CustomInterest resource name. - optional string custom_affinity = 2; -} - -// A custom intent criterion. -// A criterion of this type is only targetable. -message CustomIntentInfo { - // The CustomInterest resource name. - optional string custom_intent = 2; -} - -// A radius around a list of locations specified via a feed. -message LocationGroupInfo { - // Feed specifying locations for targeting. - // This is required and must be set in CREATE operations. - optional string feed = 5; - - // Geo target constant(s) restricting the scope of the geographic area within - // the feed. Currently only one geo target constant is allowed. - repeated string geo_target_constants = 6; - - // Distance in units specifying the radius around targeted locations. - // This is required and must be set in CREATE operations. - optional int64 radius = 7; - - // Unit of the radius. Miles and meters are supported for geo target - // constants. Milli miles and meters are supported for feed item sets. - // This is required and must be set in CREATE operations. - google.ads.googleads.v7.enums.LocationGroupRadiusUnitsEnum.LocationGroupRadiusUnits radius_units = 4; - - // FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, - // then all items that appear in at least one set are targeted. This field - // cannot be used with geo_target_constants. This is optional and can only be - // set in CREATE operations. - repeated string feed_item_sets = 8; -} - -// A custom audience criterion. -message CustomAudienceInfo { - // The CustomAudience resource name. - string custom_audience = 1; -} - -// A combined audience criterion. -message CombinedAudienceInfo { - // The CombinedAudience resource name. - string combined_audience = 1; -} diff --git a/google/ads/googleads/v7/common/criterion_category_availability.proto b/google/ads/googleads/v7/common/criterion_category_availability.proto deleted file mode 100644 index b492f084f..000000000 --- a/google/ads/googleads/v7/common/criterion_category_availability.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v7/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v7/enums/criterion_category_channel_availability_mode.proto"; -import "google/ads/googleads/v7/enums/criterion_category_locale_availability_mode.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "CriterionCategoryAvailabilityProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing criterion category availability information. - -// Information of category availability, per advertising channel. -message CriterionCategoryAvailability { - // Channel types and subtypes that are available to the category. - CriterionCategoryChannelAvailability channel = 1; - - // Locales that are available to the category for the channel. - repeated CriterionCategoryLocaleAvailability locale = 2; -} - -// Information of advertising channel type and subtypes a category is available -// in. -message CriterionCategoryChannelAvailability { - // Format of the channel availability. Can be ALL_CHANNELS (the rest of the - // fields will not be set), CHANNEL_TYPE (only advertising_channel_type type - // will be set, the category is available to all sub types under it) or - // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, - // advertising_channel_sub_type, and include_default_channel_sub_type will all - // be set). - google.ads.googleads.v7.enums.CriterionCategoryChannelAvailabilityModeEnum.CriterionCategoryChannelAvailabilityMode availability_mode = 1; - - // Channel type the category is available to. - google.ads.googleads.v7.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 2; - - // Channel subtypes under the channel type the category is available to. - repeated google.ads.googleads.v7.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 3; - - // Whether default channel sub type is included. For example, - // advertising_channel_type being DISPLAY and include_default_channel_sub_type - // being false means that the default display campaign where channel sub type - // is not set is not included in this availability configuration. - optional bool include_default_channel_sub_type = 5; -} - -// Information about which locales a category is available in. -message CriterionCategoryLocaleAvailability { - // Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and - // 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.v7.enums.CriterionCategoryLocaleAvailabilityModeEnum.CriterionCategoryLocaleAvailabilityMode availability_mode = 1; - - // Code of the country. - optional string country_code = 4; - - // Code of the language. - optional string language_code = 5; -} diff --git a/google/ads/googleads/v7/common/custom_parameter.proto b/google/ads/googleads/v7/common/custom_parameter.proto deleted file mode 100644 index 5f82c3bae..000000000 --- a/google/ads/googleads/v7/common/custom_parameter.proto +++ /dev/null @@ -1,40 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "CustomParameterProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing CustomParameter and operation - -// A mapping that can be used by custom parameter tags in a -// `tracking_url_template`, `final_urls`, or `mobile_final_urls`. -message CustomParameter { - // The key matching the parameter tag name. - optional string key = 3; - - // The value to be substituted. - optional string value = 4; -} diff --git a/google/ads/googleads/v7/common/dates.proto b/google/ads/googleads/v7/common/dates.proto deleted file mode 100644 index d927aae81..000000000 --- a/google/ads/googleads/v7/common/dates.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/month_of_year.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "DatesProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing date range message. - -// A date range. -message DateRange { - // The start date, in yyyy-mm-dd format. This date is inclusive. - optional string start_date = 3; - - // The end date, in yyyy-mm-dd format. This date is inclusive. - optional string end_date = 4; -} - -// The year month range inclusive of the start and end months. -// Eg: A year month range to represent Jan 2020 would be: (Jan 2020, Jan 2020). -message YearMonthRange { - // The inclusive start year month. - YearMonth start = 1; - - // The inclusive end year month. - YearMonth end = 2; -} - -// Year month. -message YearMonth { - // The year (e.g. 2020). - int64 year = 1; - - // The month of the year. (e.g. FEBRUARY). - google.ads.googleads.v7.enums.MonthOfYearEnum.MonthOfYear month = 2; -} diff --git a/google/ads/googleads/v7/common/explorer_auto_optimizer_setting.proto b/google/ads/googleads/v7/common/explorer_auto_optimizer_setting.proto deleted file mode 100644 index 994cc3531..000000000 --- a/google/ads/googleads/v7/common/explorer_auto_optimizer_setting.proto +++ /dev/null @@ -1,38 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "ExplorerAutoOptimizerSettingProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing ExplorerAutoOptimizerSetting - -// Settings for the Display Campaign Optimizer, initially named "Explorer". -// Learn more about -// [automatic targeting](https://support.google.com/google-ads/answer/190596). -message ExplorerAutoOptimizerSetting { - // Indicates whether the optimizer is turned on. - optional bool opt_in = 2; -} diff --git a/google/ads/googleads/v7/common/extensions.proto b/google/ads/googleads/v7/common/extensions.proto deleted file mode 100644 index 2dc80f26c..000000000 --- a/google/ads/googleads/v7/common/extensions.proto +++ /dev/null @@ -1,368 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/common/custom_parameter.proto"; -import "google/ads/googleads/v7/common/feed_common.proto"; -import "google/ads/googleads/v7/enums/app_store.proto"; -import "google/ads/googleads/v7/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v7/enums/price_extension_price_qualifier.proto"; -import "google/ads/googleads/v7/enums/price_extension_price_unit.proto"; -import "google/ads/googleads/v7/enums/price_extension_type.proto"; -import "google/ads/googleads/v7/enums/promotion_extension_discount_modifier.proto"; -import "google/ads/googleads/v7/enums/promotion_extension_occasion.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionsProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing extension types. - -// Represents an App extension. -message AppFeedItem { - // The visible text displayed when the link is rendered in an ad. - // This string must not be empty, and the length of this string should - // be between 1 and 25, inclusive. - optional string link_text = 9; - - // The store-specific ID for the target application. - // This string must not be empty. - optional string app_id = 10; - - // The application store that the target application belongs to. - // This field is required. - google.ads.googleads.v7.enums.AppStoreEnum.AppStore app_store = 3; - - // A list of possible final URLs after all cross domain redirects. - // This list must not be empty. - repeated string final_urls = 11; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 12; - - // URL template for constructing a tracking URL. Default value is "{lpurl}". - optional string tracking_url_template = 13; - - // 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 CustomParameter url_custom_parameters = 7; - - // URL template for appending params to landing page URLs served with parallel - // tracking. - optional string final_url_suffix = 14; -} - -// Represents a Call extension. -message CallFeedItem { - // The advertiser's phone number to append to the ad. - // This string must not be empty. - optional string phone_number = 7; - - // Uppercase two-letter country code of the advertiser's phone number. - // This string must not be empty. - optional string country_code = 8; - - // Indicates whether call tracking is enabled. By default, call tracking is - // not enabled. - optional bool call_tracking_enabled = 9; - - // The conversion action to attribute a call conversion to. If not set a - // default conversion action is used. This field only has effect if - // call_tracking_enabled is set to true. Otherwise this field is ignored. - optional string call_conversion_action = 10; - - // If true, disable call conversion tracking. call_conversion_action should - // not be set if this is true. Optional. - optional bool call_conversion_tracking_disabled = 11; - - // 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.v7.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 6; -} - -// Represents a callout extension. -message CalloutFeedItem { - // The callout text. - // The length of this string should be between 1 and 25, inclusive. - optional string callout_text = 2; -} - -// Represents a location extension. -message LocationFeedItem { - // The name of the business. - optional string business_name = 9; - - // Line 1 of the business address. - optional string address_line_1 = 10; - - // Line 2 of the business address. - optional string address_line_2 = 11; - - // City of the business address. - optional string city = 12; - - // Province of the business address. - optional string province = 13; - - // Postal code of the business address. - optional string postal_code = 14; - - // Country code of the business address. - optional string country_code = 15; - - // Phone number of the business. - optional string phone_number = 16; -} - -// Represents an affiliate location extension. -message AffiliateLocationFeedItem { - // The name of the business. - optional string business_name = 11; - - // Line 1 of the business address. - optional string address_line_1 = 12; - - // Line 2 of the business address. - optional string address_line_2 = 13; - - // City of the business address. - optional string city = 14; - - // Province of the business address. - optional string province = 15; - - // Postal code of the business address. - optional string postal_code = 16; - - // Country code of the business address. - optional string country_code = 17; - - // Phone number of the business. - optional string phone_number = 18; - - // Id of the retail chain that is advertised as a seller of your product. - optional int64 chain_id = 19; - - // Name of chain. - optional string chain_name = 20; -} - -// An extension that users can click on to send a text message to the -// advertiser. -message TextMessageFeedItem { - // The business name to prepend to the message text. - // This field is required. - optional string business_name = 6; - - // Uppercase two-letter country code of the advertiser's phone number. - // This field is required. - optional string country_code = 7; - - // The advertiser's phone number the message will be sent to. Required. - optional string phone_number = 8; - - // The text to show in the ad. - // This field is required. - optional string text = 9; - - // The message extension_text populated in the messaging app. - optional string extension_text = 10; -} - -// Represents a Price extension. -message PriceFeedItem { - // Price extension type of this extension. - google.ads.googleads.v7.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1; - - // Price qualifier for all offers of this price extension. - google.ads.googleads.v7.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2; - - // Tracking URL template for all offers of this price extension. - optional string tracking_url_template = 7; - - // The code of the language used for this price extension. - optional string language_code = 8; - - // The price offerings in this price extension. - repeated PriceOffer price_offerings = 5; - - // Tracking URL template for all offers of this price extension. - optional string final_url_suffix = 9; -} - -// Represents one price offer in a price extension. -message PriceOffer { - // Header text of this offer. - optional string header = 7; - - // Description text of this offer. - optional string description = 8; - - // Price value of this offer. - Money price = 3; - - // Price unit for this offer. - google.ads.googleads.v7.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4; - - // A list of possible final URLs after all cross domain redirects. - repeated string final_urls = 9; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 10; -} - -// Represents a Promotion extension. -message PromotionFeedItem { - // A freeform description of what the promotion is targeting. - // This field is required. - optional string promotion_target = 16; - - // Enum that modifies the qualification of the discount. - google.ads.googleads.v7.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2; - - // Start date of when the promotion is eligible to be redeemed. - optional string promotion_start_date = 19; - - // Last date when the promotion is eligible to be redeemed. - optional string promotion_end_date = 20; - - // 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.v7.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9; - - // A list of possible final URLs after all cross domain redirects. - // This field is required. - repeated string final_urls = 21; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 22; - - // URL template for constructing a tracking URL. - optional string tracking_url_template = 23; - - // 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 CustomParameter url_custom_parameters = 13; - - // URL template for appending params to landing page URLs served with parallel - // tracking. - optional string final_url_suffix = 24; - - // The language of the promotion. - // Represented as BCP 47 language tag. - optional string language_code = 25; - - // Discount type, can be percentage off or amount off. - oneof discount_type { - // Percentage off discount in the promotion in micros. - // One million is equivalent to one percent. - // Either this or money_off_amount is required. - int64 percent_off = 17; - - // Money amount off for discount in the promotion. - // Either this or percent_off is required. - Money money_amount_off = 4; - } - - // Promotion trigger. Can be by promotion code or promo by eligible order - // amount. - oneof promotion_trigger { - // A code the user should use in order to be eligible for the promotion. - string promotion_code = 18; - - // The amount the total order needs to be for the user to be eligible for - // the promotion. - Money orders_over_amount = 6; - } -} - -// Represents a structured snippet extension. -message StructuredSnippetFeedItem { - // The header of the snippet. - // This string must not be empty. - optional string header = 3; - - // The values in the snippet. - // The maximum size of this collection is 10. - repeated string values = 4; -} - -// Represents a sitelink extension. -message SitelinkFeedItem { - // URL display text for the sitelink. - // The length of this string should be between 1 and 25, inclusive. - optional string link_text = 9; - - // First line of the description for the sitelink. - // If this value is set, line2 must also be set. - // The length of this string should be between 0 and 35, inclusive. - optional string line1 = 10; - - // Second line of the description for the sitelink. - // If this value is set, line1 must also be set. - // The length of this string should be between 0 and 35, inclusive. - optional string line2 = 11; - - // A list of possible final URLs after all cross domain redirects. - repeated string final_urls = 12; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 13; - - // URL template for constructing a tracking URL. - optional string tracking_url_template = 14; - - // 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 CustomParameter url_custom_parameters = 7; - - // Final URL suffix to be appended to landing page URLs served with - // parallel tracking. - optional string final_url_suffix = 15; -} - -// Represents a hotel callout extension. -message HotelCalloutFeedItem { - // The callout text. - // The length of this string should be between 1 and 25, inclusive. - optional string text = 3; - - // The language of the hotel callout text. - // IETF BCP 47 compliant language code. - optional string language_code = 4; -} - -// Represents an advertiser provided image extension. -message ImageFeedItem { - // Required. Resource name of the image asset. - string image_asset = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; -} diff --git a/google/ads/googleads/v7/common/feed_common.proto b/google/ads/googleads/v7/common/feed_common.proto deleted file mode 100644 index 06f498c3e..000000000 --- a/google/ads/googleads/v7/common/feed_common.proto +++ /dev/null @@ -1,39 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "FeedCommonProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing common feed proto messages. - -// Represents a price in a particular currency. -message Money { - // Three-character ISO 4217 currency code. - optional string currency_code = 3; - - // Amount in micros. One million is equivalent to one unit. - optional int64 amount_micros = 4; -} diff --git a/google/ads/googleads/v7/common/feed_item_set_filter_type_infos.proto b/google/ads/googleads/v7/common/feed_item_set_filter_type_infos.proto deleted file mode 100644 index af31ad779..000000000 --- a/google/ads/googleads/v7/common/feed_item_set_filter_type_infos.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/feed_item_set_string_filter_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetFilterTypeInfosProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Represents a filter on locations in a feed item set. -// Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. -message DynamicLocationSetFilter { - // If multiple labels are set, then only feeditems marked with all the labels - // will be added to the FeedItemSet. - repeated string labels = 1; - - // Business name filter. - BusinessNameFilter business_name_filter = 2; -} - -// Represents a business name filter on locations in a FeedItemSet. -message BusinessNameFilter { - // Business name string to use for filtering. - string business_name = 1; - - // The type of string matching to use when filtering with business_name. - google.ads.googleads.v7.enums.FeedItemSetStringFilterTypeEnum.FeedItemSetStringFilterType filter_type = 2; -} - -// Represents a filter on affiliate locations in a FeedItemSet. -// Only applicable if the parent Feed of the FeedItemSet is an -// AFFILIATE_LOCATION feed. -message DynamicAffiliateLocationSetFilter { - // Used to filter affiliate locations by chain ids. Only affiliate locations - // that belong to the specified chain(s) will be added to the FeedItemSet. - repeated int64 chain_ids = 1; -} diff --git a/google/ads/googleads/v7/common/final_app_url.proto b/google/ads/googleads/v7/common/final_app_url.proto deleted file mode 100644 index 67767c788..000000000 --- a/google/ads/googleads/v7/common/final_app_url.proto +++ /dev/null @@ -1,46 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/app_url_operating_system_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "FinalAppUrlProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::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.v7.enums.AppUrlOperatingSystemTypeEnum.AppUrlOperatingSystemType os_type = 1; - - // The app deep link URL. Deep links specify a location in an app that - // corresponds to the content you'd like to show, and should be of the form - // {scheme}://{host_path} - // The scheme identifies which app to open. For your app, you can use a custom - // scheme that starts with the app's name. The host and path specify the - // unique location in the app where your content exists. - // Example: "exampleapp://productid_1234". Required. - optional string url = 3; -} diff --git a/google/ads/googleads/v7/common/frequency_cap.proto b/google/ads/googleads/v7/common/frequency_cap.proto deleted file mode 100644 index 5da8ab9e2..000000000 --- a/google/ads/googleads/v7/common/frequency_cap.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/frequency_cap_event_type.proto"; -import "google/ads/googleads/v7/enums/frequency_cap_level.proto"; -import "google/ads/googleads/v7/enums/frequency_cap_time_unit.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "FrequencyCapProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing frequency caps. - -// A rule specifying the maximum number of times an ad (or some set of ads) can -// be shown to a user over a particular time period. -message FrequencyCapEntry { - // The key of a particular frequency cap. There can be no more - // than one frequency cap with the same key. - FrequencyCapKey key = 1; - - // Maximum number of events allowed during the time range by this cap. - optional int32 cap = 3; -} - -// A group of fields used as keys for a frequency cap. -// There can be no more than one frequency cap with the same key. -message FrequencyCapKey { - // The level on which the cap is to be applied (e.g. ad group ad, ad group). - // The cap is applied to all the entities of this level. - google.ads.googleads.v7.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = 1; - - // The type of event that the cap applies to (e.g. impression). - google.ads.googleads.v7.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType event_type = 3; - - // Unit of time the cap is defined at (e.g. day, week). - google.ads.googleads.v7.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2; - - // Number of time units the cap lasts. - optional int32 time_length = 5; -} diff --git a/google/ads/googleads/v7/common/keyword_plan_common.proto b/google/ads/googleads/v7/common/keyword_plan_common.proto deleted file mode 100644 index 2e824bbab..000000000 --- a/google/ads/googleads/v7/common/keyword_plan_common.proto +++ /dev/null @@ -1,139 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/common/dates.proto"; -import "google/ads/googleads/v7/enums/device.proto"; -import "google/ads/googleads/v7/enums/keyword_plan_aggregate_metric_type.proto"; -import "google/ads/googleads/v7/enums/keyword_plan_competition_level.proto"; -import "google/ads/googleads/v7/enums/keyword_plan_concept_group_type.proto"; -import "google/ads/googleads/v7/enums/month_of_year.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCommonProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing Keyword Planner messages. - -// Historical metrics specific to the targeting options selected. -// Targeting options include geographies, network, etc. -// Refer to https://support.google.com/google-ads/answer/3022575 for more -// details. -message KeywordPlanHistoricalMetrics { - // Approximate number of monthly searches on this query averaged - // for the past 12 months. - optional int64 avg_monthly_searches = 7; - - // Approximate number of searches on this query for the past twelve months. - repeated MonthlySearchVolume monthly_search_volumes = 6; - - // The competition level for the query. - google.ads.googleads.v7.enums.KeywordPlanCompetitionLevelEnum.KeywordPlanCompetitionLevel competition = 2; - - // The competition index for the query in the range [0, 100]. - // Shows how competitive ad placement is for a keyword. - // The level of competition from 0-100 is determined by the number of ad slots - // filled divided by the total number of ad slots available. If not enough - // data is available, null is returned. - optional int64 competition_index = 8; - - // Top of page bid low range (20th percentile) in micros for the keyword. - optional int64 low_top_of_page_bid_micros = 9; - - // Top of page bid high range (80th percentile) in micros for the keyword. - optional int64 high_top_of_page_bid_micros = 10; -} - -// Historical metrics options. -message HistoricalMetricsOptions { - // The year month range for historical metrics. If not specified the searches - // will be returned for past 12 months. - // Searches data is available for the past 4 years. If the search volume is - // not available for the entire year_month_range provided, the subset of the - // year month range for which search volume is available will be returned. - optional YearMonthRange year_month_range = 1; -} - -// Monthly search volume. -message MonthlySearchVolume { - // The year of the search volume (e.g. 2020). - optional int64 year = 4; - - // The month of the search volume. - google.ads.googleads.v7.enums.MonthOfYearEnum.MonthOfYear month = 2; - - // Approximate number of searches for the month. - // A null value indicates the search volume is unavailable for - // that month. - optional int64 monthly_searches = 5; -} - -// The aggregate metrics specification of the request. -message KeywordPlanAggregateMetrics { - // The list of aggregate metrics to fetch data. - repeated google.ads.googleads.v7.enums.KeywordPlanAggregateMetricTypeEnum.KeywordPlanAggregateMetricType aggregate_metric_types = 1; -} - -// The aggregated historical metrics for keyword plan keywords. -message KeywordPlanAggregateMetricResults { - // The aggregate searches for all the keywords segmented by device - // for the specified time. - // Supports the following device types: MOBILE, TABLET, DESKTOP. - // - // This is only set when KeywordPlanAggregateMetricTypeEnum.DEVICE is set - // in the KeywordPlanAggregateMetrics field in the request. - repeated KeywordPlanDeviceSearches device_searches = 1; -} - -// The total searches for the device type during the specified time period. -message KeywordPlanDeviceSearches { - // The device type. - google.ads.googleads.v7.enums.DeviceEnum.Device device = 1; - - // The total searches for the device. - optional int64 search_count = 2; -} - -// The Annotations for the Keyword plan keywords. -message KeywordAnnotations { - // The list of concepts for the keyword. - repeated KeywordConcept concepts = 1; -} - -// The concept for the keyword. -message KeywordConcept { - // The concept name for the keyword in the concept_group. - string name = 1; - - // The concept group of the concept details. - ConceptGroup concept_group = 2; -} - -// The concept group for the keyword concept. -message ConceptGroup { - // The concept group name. - string name = 1; - - // The concept group type. - google.ads.googleads.v7.enums.KeywordPlanConceptGroupTypeEnum.KeywordPlanConceptGroupType type = 2; -} diff --git a/google/ads/googleads/v7/common/matching_function.proto b/google/ads/googleads/v7/common/matching_function.proto deleted file mode 100644 index 59fb14bf3..000000000 --- a/google/ads/googleads/v7/common/matching_function.proto +++ /dev/null @@ -1,126 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/matching_function_context_type.proto"; -import "google/ads/googleads/v7/enums/matching_function_operator.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "MatchingFunctionProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing a matching function. - -// Matching function associated with a -// CustomerFeed, CampaignFeed, or AdGroupFeed. The matching function is used -// to filter the set of feed items selected. -message MatchingFunction { - // String representation of the Function. - // - // Examples: - // - // 1. IDENTITY(true) or IDENTITY(false). All or no feed items served. - // 2. EQUALS(CONTEXT.DEVICE,"Mobile") - // 3. IN(FEED_ITEM_ID,{1000001,1000002,1000003}) - // 4. CONTAINS_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus cruise"}) - // 5. AND(IN(FEED_ITEM_ID,{10001,10002}),EQUALS(CONTEXT.DEVICE,"Mobile")) - // - // For more details, visit - // https://developers.google.com/adwords/api/docs/guides/feed-matching-functions - // - // Note that because multiple strings may represent the same underlying - // function (whitespace and single versus double quotation marks, for - // example), the value returned may not be identical to the string sent in a - // mutate request. - optional string function_string = 5; - - // Operator for a function. - google.ads.googleads.v7.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator operator = 4; - - // The operands on the left hand side of the equation. This is also the - // operand to be used for single operand expressions such as NOT. - repeated Operand left_operands = 2; - - // The operands on the right hand side of the equation. - repeated Operand right_operands = 3; -} - -// An operand in a matching function. -message Operand { - // A constant operand in a matching function. - message ConstantOperand { - // Constant operand values. Required. - oneof constant_operand_value { - // String value of the operand if it is a string type. - string string_value = 5; - - // Int64 value of the operand if it is a int64 type. - int64 long_value = 6; - - // Boolean value of the operand if it is a boolean type. - bool boolean_value = 7; - - // Double value of the operand if it is a double type. - double double_value = 8; - } - } - - // A feed attribute operand in a matching function. - // Used to represent a feed attribute in feed. - message FeedAttributeOperand { - // The associated feed. Required. - optional int64 feed_id = 3; - - // Id of the referenced feed attribute. Required. - optional int64 feed_attribute_id = 4; - } - - // A function operand in a matching function. - // Used to represent nested functions. - message FunctionOperand { - // The matching function held in this operand. - MatchingFunction matching_function = 1; - } - - // 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.v7.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType context_type = 1; - } - - // Different operands that can be used in a matching function. Required. - oneof function_argument_operand { - // A constant operand in a matching function. - ConstantOperand constant_operand = 1; - - // This operand specifies a feed attribute in feed. - FeedAttributeOperand feed_attribute_operand = 2; - - // A function operand in a matching function. - // Used to represent nested functions. - FunctionOperand function_operand = 3; - - // An operand in a function referring to a value in the request context. - RequestContextOperand request_context_operand = 4; - } -} diff --git a/google/ads/googleads/v7/common/metrics.proto b/google/ads/googleads/v7/common/metrics.proto deleted file mode 100644 index 699c3669a..000000000 --- a/google/ads/googleads/v7/common/metrics.proto +++ /dev/null @@ -1,608 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/interaction_event_type.proto"; -import "google/ads/googleads/v7/enums/quality_score_bucket.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "MetricsProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::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. - optional double absolute_top_impression_percentage = 183; - - // Average cost of viewable impressions (`active_view_impressions`). - optional double active_view_cpm = 184; - - // Active view measurable clicks divided by active view viewable impressions. - // This metric is reported only for display network. - optional double active_view_ctr = 185; - - // A measurement of how often your ad has become viewable on a Display - // Network site. - optional int64 active_view_impressions = 186; - - // The ratio of impressions that could be measured by Active View over the - // number of served impressions. - optional double active_view_measurability = 187; - - // The cost of the impressions you received that were measurable by Active - // View. - optional int64 active_view_measurable_cost_micros = 188; - - // The number of times your ads are appearing on placements in positions - // where they can be seen. - optional int64 active_view_measurable_impressions = 189; - - // The percentage of time when your ad appeared on an Active View enabled site - // (measurable impressions) and was viewable (viewable impressions). - optional double active_view_viewability = 190; - - // All conversions from interactions (as oppose to view through conversions) - // divided by the number of ad interactions. - optional double all_conversions_from_interactions_rate = 191; - - // The value of all conversions. - optional double all_conversions_value = 192; - - // The value of all conversions. When this column is selected 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_value_by_conversion_date = 240; - - // The total number of conversions. This includes all conversions regardless - // of the value of include_in_conversions_metric. - optional double all_conversions = 193; - - // The total number of conversions. This includes all conversions regardless - // of the value of include_in_conversions_metric. When this column is selected - // 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; - - // The value of all conversions divided by the total cost of ad interactions - // (such as clicks for text ads or views for video ads). - optional double all_conversions_value_per_cost = 194; - - // The number of times people clicked the "Call" button to call a store during - // or after clicking an ad. This number doesn't include whether or not calls - // were connected, or the duration of any calls. - // This metric applies to feed items only. - optional double all_conversions_from_click_to_call = 195; - - // The number of times people clicked a "Get directions" button to navigate to - // a store after clicking an ad. - // This metric applies to feed items only. - optional double all_conversions_from_directions = 196; - - // The value of all conversions from interactions divided by the total number - // of interactions. - optional double all_conversions_from_interactions_value_per_interaction = 197; - - // The number of times people clicked a link to view a store's menu after - // clicking an ad. - // This metric applies to feed items only. - optional double all_conversions_from_menu = 198; - - // The number of times people placed an order at a store after clicking an ad. - // This metric applies to feed items only. - optional double all_conversions_from_order = 199; - - // The number of other conversions (for example, posting a review or saving a - // location for a store) that occurred after people clicked an ad. - // This metric applies to feed items only. - optional double all_conversions_from_other_engagement = 200; - - // Estimated number of times people visited a store after clicking an ad. - // This metric applies to feed items only. - optional double all_conversions_from_store_visit = 201; - - // The number of times that people were taken to a store's URL after clicking - // an ad. - // This metric applies to feed items only. - optional double all_conversions_from_store_website = 202; - - // The average amount you pay per interaction. This amount is the total cost - // of your ads divided by the total number of interactions. - optional double average_cost = 203; - - // The total cost of all clicks divided by the total number of clicks - // received. - optional double average_cpc = 204; - - // The average amount that you've been charged for an ad engagement. This - // amount is the total cost of all ad engagements divided by the total number - // of ad engagements. - optional double average_cpe = 205; - - // Average cost-per-thousand impressions (CPM). - optional double average_cpm = 206; - - // The average amount you pay each time someone views your ad. - // The average CPV is defined by the total cost of all ad views divided by - // the number of views. - optional double average_cpv = 207; - - // Average number of pages viewed per session. - optional double average_page_views = 208; - - // Total duration of all sessions (in seconds) / number of sessions. Imported - // from Google Analytics. - optional double average_time_on_site = 209; - - // An indication of how other advertisers are bidding on similar products. - optional double benchmark_average_max_cpc = 210; - - // An indication on how other advertisers' Shopping ads for similar products - // are performing based on how often people who see their ad click on it. - optional double benchmark_ctr = 211; - - // Percentage of clicks where the user only visited a single page on your - // site. Imported from Google Analytics. - optional double bounce_rate = 212; - - // The number of clicks. - optional int64 clicks = 131; - - // The number of times your ad or your site's listing in the unpaid - // results was clicked. See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional int64 combined_clicks = 156; - - // The number of times your ad or your site's listing in the unpaid - // results was clicked (combined_clicks) divided by combined_queries. See the - // help page at https://support.google.com/google-ads/answer/3097241 for - // details. - optional double combined_clicks_per_query = 157; - - // The number of searches that returned pages from your site in the unpaid - // results or showed one of your text ads. See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional int64 combined_queries = 158; - - // The estimated percent of times that your ad was eligible to show - // on the Display Network but didn't because your budget was too low. - // Note: Content budget lost impression share is reported in the range of 0 - // to 0.9. Any value above 0.9 is reported as 0.9001. - optional double content_budget_lost_impression_share = 159; - - // The impressions you've received on the Display Network divided - // by the estimated number of impressions you were eligible to receive. - // Note: Content impression share is reported in the range of 0.1 to 1. Any - // value below 0.1 is reported as 0.0999. - optional double content_impression_share = 160; - - // The last date/time a conversion tag for this conversion action successfully - // fired and was seen by Google Ads. This firing event may not have been the - // result of an attributable conversion (e.g. because the tag was fired from a - // browser that did not previously click an ad from an appropriate - // advertiser). The date/time is in the customer's time zone. - optional string conversion_last_received_request_date_time = 161; - - // The date of the most recent conversion for this conversion action. The date - // is in the customer's time zone. - optional string conversion_last_conversion_date = 162; - - // The estimated percentage of impressions on the Display Network - // that your ads didn't receive due to poor Ad Rank. - // Note: Content rank lost impression share is reported in the range of 0 - // to 0.9. Any value above 0.9 is reported as 0.9001. - optional double content_rank_lost_impression_share = 163; - - // Conversions from interactions divided by the number of ad interactions - // (such as clicks for text ads or views for video ads). This only includes - // conversion actions which include_in_conversions_metric attribute is set to - // true. If you use conversion-based bidding, your bid strategies will - // optimize for these conversions. - optional double conversions_from_interactions_rate = 164; - - // The value of conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double conversions_value = 165; - - // The value of conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. When this column is selected 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 conversions_value_by_conversion_date = 242; - - // The value of conversions divided by the cost of ad interactions. This only - // includes conversion actions which include_in_conversions_metric attribute - // is set to true. If you use conversion-based bidding, your bid strategies - // will optimize for these conversions. - optional double conversions_value_per_cost = 166; - - // The value of conversions from interactions divided by the number of ad - // interactions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double conversions_from_interactions_value_per_interaction = 167; - - // The number of conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double conversions = 168; - - // The number of conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. When this column is selected 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 conversions_by_conversion_date = 243; - - // The sum of your cost-per-click (CPC) and cost-per-thousand impressions - // (CPM) costs during this period. - optional int64 cost_micros = 169; - - // The cost of ad interactions divided by all conversions. - optional double cost_per_all_conversions = 170; - - // The cost of ad interactions divided by conversions. This only includes - // conversion actions which include_in_conversions_metric attribute is set to - // true. If you use conversion-based bidding, your bid strategies will - // optimize for these conversions. - optional double cost_per_conversion = 171; - - // The cost of ad interactions divided by current model attributed - // conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double cost_per_current_model_attributed_conversion = 172; - - // Conversions from when a customer clicks on a Google Ads ad on one device, - // then converts on a different device or browser. - // Cross-device conversions are already included in all_conversions. - optional double cross_device_conversions = 173; - - // The number of clicks your ad receives (Clicks) divided by the number - // of times your ad is shown (Impressions). - optional double ctr = 174; - - // Shows how your historic conversions data would look under the attribution - // model you've currently selected. This only includes conversion actions - // which include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double current_model_attributed_conversions = 175; - - // Current model attributed conversions from interactions divided by the - // number of ad interactions (such as clicks for text ads or views for video - // ads). This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double current_model_attributed_conversions_from_interactions_rate = 176; - - // The value of current model attributed conversions from interactions divided - // by the number of ad interactions. This only includes conversion actions - // which include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; - - // The value of current model attributed conversions. This only includes - // conversion actions which include_in_conversions_metric attribute is set to - // true. If you use conversion-based bidding, your bid strategies will - // optimize for these conversions. - optional double current_model_attributed_conversions_value = 178; - - // The value of current model attributed conversions divided by the cost of ad - // interactions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double current_model_attributed_conversions_value_per_cost = 179; - - // How often people engage with your ad after it's shown to them. This is the - // number of ad expansions divided by the number of times your ad is shown. - optional double engagement_rate = 180; - - // The number of engagements. - // An engagement occurs when a viewer expands your Lightbox ad. Also, in the - // future, other ad types may support engagement metrics. - optional int64 engagements = 181; - - // Average lead value based on clicks. - optional double hotel_average_lead_value_micros = 213; - - // The average price difference between the price offered by reporting hotel - // advertiser and the cheapest price offered by the competing advertiser. - optional double hotel_price_difference_percentage = 214; - - // The number of impressions that hotel partners could have had given their - // feed performance. - optional int64 hotel_eligible_impressions = 215; - - // The creative historical quality score. - google.ads.googleads.v7.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; - - // The quality of historical landing page experience. - google.ads.googleads.v7.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.v7.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; - - // The number of times the ad was forwarded to someone else as a message. - optional int64 gmail_forwards = 217; - - // The number of times someone has saved your Gmail ad to their inbox as a - // message. - optional int64 gmail_saves = 218; - - // The number of clicks to the landing page on the expanded state of Gmail - // ads. - optional int64 gmail_secondary_clicks = 219; - - // The number of times a store's location-based ad was shown. - // This metric applies to feed items only. - optional int64 impressions_from_store_reach = 220; - - // Count of how often your ad has appeared on a search results page or - // website on the Google Network. - optional int64 impressions = 221; - - // How often people interact with your ad after it is shown to them. - // This is the number of interactions divided by the number of times your ad - // is shown. - optional double interaction_rate = 222; - - // The number of interactions. - // An interaction is the main user action associated with an ad format-clicks - // for text and shopping ads, views for video ads, and so on. - optional int64 interactions = 223; - - // The types of payable and free interactions. - repeated google.ads.googleads.v7.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - - // The percentage of clicks filtered out of your total number of clicks - // (filtered + non-filtered clicks) during the reporting period. - optional double invalid_click_rate = 224; - - // Number of clicks Google considers illegitimate and doesn't charge you for. - optional int64 invalid_clicks = 225; - - // Number of message chats initiated for Click To Message impressions that - // were message tracking eligible. - optional int64 message_chats = 226; - - // Number of Click To Message impressions that were message tracking eligible. - optional int64 message_impressions = 227; - - // Number of message chats initiated (message_chats) divided by the number - // of message impressions (message_impressions). - // Rate at which a user initiates a message chat from an ad impression with - // a messaging option and message tracking enabled. - // Note that this rate can be more than 1.0 for a given message impression. - optional double message_chat_rate = 228; - - // The percentage of mobile clicks that go to a mobile-friendly page. - optional double mobile_friendly_clicks_percentage = 229; - - // The number of times someone clicked your site's listing in the unpaid - // results for a particular query. See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional int64 organic_clicks = 230; - - // The number of times someone clicked your site's listing in the unpaid - // results (organic_clicks) divided by the total number of searches that - // returned pages from your site (organic_queries). See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional double organic_clicks_per_query = 231; - - // The number of listings for your site in the unpaid search results. See the - // help page at https://support.google.com/google-ads/answer/3097241 for - // details. - optional int64 organic_impressions = 232; - - // The number of times a page from your site was listed in the unpaid search - // results (organic_impressions) divided by the number of searches returning - // your site's listing in the unpaid results (organic_queries). See the help - // page at https://support.google.com/google-ads/answer/3097241 for details. - optional double organic_impressions_per_query = 233; - - // The total number of searches that returned your site's listing in the - // unpaid results. See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional int64 organic_queries = 234; - - // Percentage of first-time sessions (from people who had never visited your - // site before). Imported from Google Analytics. - optional double percent_new_visitors = 235; - - // Number of offline phone calls. - optional int64 phone_calls = 236; - - // Number of offline phone impressions. - optional int64 phone_impressions = 237; - - // Number of phone calls received (phone_calls) divided by the number of - // times your phone number is shown (phone_impressions). - optional double phone_through_rate = 238; - - // Your clickthrough rate (Ctr) divided by the average clickthrough rate of - // all advertisers on the websites that show your ads. Measures how your ads - // perform on Display Network sites compared to other ads on the same sites. - optional double relative_ctr = 239; - - // The percentage of the customer's Shopping or Search ad impressions that are - // shown in the most prominent Shopping position. See - // https://support.google.com/google-ads/answer/7501826 - // 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 - // 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; - - // The estimated percent of times that your ad was eligible to show on the - // Search Network but didn't because your budget was too low. Note: Search - // budget lost 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_impression_share = 138; - - // The number estimating how often your ad didn't show anywhere above the - // 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. - optional double search_budget_lost_top_impression_share = 139; - - // The number of clicks you've received on the Search Network - // divided by the estimated number of clicks you were eligible to receive. - // Note: Search click share is reported in the range of 0.1 to 1. Any value - // below 0.1 is reported as 0.0999. - optional double search_click_share = 140; - - // The impressions you've received divided by the estimated number of - // impressions you were eligible to receive on the Search Network for search - // terms that matched your keywords exactly (or were close variants of your - // keyword), regardless of your keyword match types. Note: Search exact match - // impression share is reported in the range of 0.1 to 1. Any value below 0.1 - // is reported as 0.0999. - optional double search_exact_match_impression_share = 141; - - // The impressions you've received on the Search Network divided - // by the estimated number of impressions you were eligible to receive. - // Note: Search impression share is reported in the range of 0.1 to 1. Any - // 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. - // 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; - - // The estimated percentage of impressions on the Search Network - // that your ads didn't receive due to poor Ad Rank. - // Note: Search rank lost 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_impression_share = 144; - - // The number estimating how often your ad didn't show anywhere above the - // 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. - // 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. - optional double search_top_impression_share = 146; - - // A measure of how quickly your page loads after clicks on your mobile ads. - // The score is a range from 1 to 10, 10 being the fastest. - optional int64 speed_score = 147; - - // The percent of your ad impressions that are shown anywhere above the - // organic search results. - optional double top_impression_percentage = 148; - - // The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages - // that reach a valid AMP page. - optional double valid_accelerated_mobile_pages_clicks_percentage = 149; - - // The value of all conversions divided by the number of all conversions. - optional double value_per_all_conversions = 150; - - // The value of all conversions divided by the number of all conversions. When - // this column is selected 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. - optional double value_per_all_conversions_by_conversion_date = 244; - - // The value of conversions divided by the number of conversions. This only - // includes conversion actions which include_in_conversions_metric attribute - // is set to true. If you use conversion-based bidding, your bid strategies - // will optimize for these conversions. - optional double value_per_conversion = 151; - - // The value of conversions divided by the number of conversions. This only - // includes conversion actions which include_in_conversions_metric attribute - // is set to true. If you use conversion-based bidding, your bid strategies - // will optimize for these conversions. When this column is selected 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. - optional double value_per_conversions_by_conversion_date = 245; - - // The value of current model attributed conversions divided by the number of - // the conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double value_per_current_model_attributed_conversion = 152; - - // Percentage of impressions where the viewer watched all of your video. - optional double video_quartile_p100_rate = 132; - - // Percentage of impressions where the viewer watched 25% of your video. - optional double video_quartile_p25_rate = 133; - - // Percentage of impressions where the viewer watched 50% of your video. - optional double video_quartile_p50_rate = 134; - - // Percentage of impressions where the viewer watched 75% of your video. - optional double video_quartile_p75_rate = 135; - - // The number of views your TrueView video ad receives divided by its number - // of impressions, including thumbnail impressions for TrueView in-display - // ads. - optional double video_view_rate = 153; - - // The number of times your video ads were viewed. - optional int64 video_views = 154; - - // The total number of view-through conversions. - // These happen when a customer sees an image or rich media ad, then later - // completes a conversion on your site without interacting with (e.g., - // clicking on) another ad. - optional int64 view_through_conversions = 155; - - // The number of iOS Store Kit Ad Network conversions. - int64 sk_ad_network_conversions = 246; -} diff --git a/google/ads/googleads/v7/common/offline_user_data.proto b/google/ads/googleads/v7/common/offline_user_data.proto deleted file mode 100644 index febbace76..000000000 --- a/google/ads/googleads/v7/common/offline_user_data.proto +++ /dev/null @@ -1,218 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/user_identifier_source.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing offline user data. - -// Address identifier of offline data. -message OfflineUserAddressInfo { - // First name of the user, which is hashed as SHA-256 after normalized - // (Lowercase all characters; Remove any extra spaces before, after, and in - // between). - optional string hashed_first_name = 7; - - // Last name of the user, which is hashed as SHA-256 after normalized (lower - // case only and no punctuation). - optional string hashed_last_name = 8; - - // City of the address. Only accepted for Store Sales Direct data. - optional string city = 9; - - // State code of the address. Only accepted for Store Sales Direct data. - optional string state = 10; - - // 2-letter country code in ISO-3166-1 alpha-2 of the user's address. - optional string country_code = 11; - - // Postal code of the user's address. - optional string postal_code = 12; -} - -// Hashed user identifying information. -message UserIdentifier { - // Source of the user identifier when the upload is from Store Sales third - // party partners. - google.ads.googleads.v7.enums.UserIdentifierSourceEnum.UserIdentifierSource user_identifier_source = 6; - - // Exactly one must be specified. - oneof identifier { - // Hashed email address using SHA-256 hash function after normalization. - string hashed_email = 7; - - // Hashed phone number using SHA-256 hash function after normalization - // (E164 standard). - string hashed_phone_number = 8; - - // Mobile device ID (advertising ID/IDFA). - string mobile_id = 9; - - // Advertiser-assigned user ID for Customer Match upload, or - // third-party-assigned user ID for SSD. - string third_party_user_id = 10; - - // Address information. - OfflineUserAddressInfo address_info = 5; - } -} - -// Attribute of the store sales transaction. -message TransactionAttribute { - // Timestamp when transaction occurred. Required. - // The format is "YYYY-MM-DD HH:MM:SS[+/-HH:MM]", where [+/-HH:MM] is an - // optional timezone offset from UTC. If the offset is absent, the API will - // use the account's timezone as default. - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30+03:00" - optional string transaction_date_time = 8; - - // Transaction amount in micros. Required. - // Transaction amount in micros needs to be greater than 1000. - // If item Attributes are provided, it represents the total value of the - // items, after multiplying the unit price per item by the quantity provided - // in the ItemAttributes. - optional double transaction_amount_micros = 9; - - // Transaction currency code. ISO 4217 three-letter code is used. Required. - optional string currency_code = 10; - - // The resource name of conversion action to report conversions to. - // Required. - optional string conversion_action = 11; - - // Transaction order id. - // Accessible only to customers on the allow-list. - optional string order_id = 12; - - // Store attributes of the transaction. - // Accessible only to customers on the allow-list. - StoreAttribute store_attribute = 6; - - // Value of the custom variable for each transaction. - // Accessible only to customers on the allow-list. - optional string custom_value = 13; -} - -// Store attributes of the transaction. -message StoreAttribute { - // Store code from - // https://support.google.com/business/answer/3370250#storecode - optional string store_code = 2; -} - -// User data holding user identifiers and attributes. -message UserData { - // User identification info. Required. - repeated UserIdentifier user_identifiers = 1; - - // Additional transactions/attributes associated with the user. - // Required when updating store sales data. - TransactionAttribute transaction_attribute = 2; - - // Additional attributes associated with the user. Required when updating - // customer match attributes. These have an expiration of 540 days. - UserAttribute user_attribute = 3; -} - -// User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job -// type. -message UserAttribute { - // Advertiser defined lifetime value for the user. - optional int64 lifetime_value_micros = 1; - - // Advertiser defined lifetime value bucket for the user. The valid range for - // a lifetime value bucket is from 1 (low) to 10 (high), except for remove - // operation where 0 will also be accepted. - optional int32 lifetime_value_bucket = 2; -} - -// Metadata for customer match user list. -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; -} - -// Metadata for Store Sales Direct. -message StoreSalesMetadata { - // This is the fraction of all transactions that are identifiable (i.e., - // associated with any form of customer information). - // Required. - // The fraction needs to be between 0 and 1 (excluding 0). - optional double loyalty_fraction = 5; - - // This is the ratio of sales being uploaded compared to the overall sales - // that can be associated with a customer. Required. - // The fraction needs to be between 0 and 1 (excluding 0). For example, if you - // upload half the sales that you are able to associate with a customer, this - // would be 0.5. - optional double transaction_upload_fraction = 6; - - // Name of the store sales custom variable key. A predefined key that - // can be applied to the transaction and then later used for custom - // segmentation in reporting. - // Accessible only to customers on the allow-list. - optional string custom_key = 7; - - // Metadata for a third party Store Sales upload. - StoreSalesThirdPartyMetadata third_party_metadata = 3; -} - -// Metadata for a third party Store Sales. -// This product is only for customers on the allow-list. Please contact your -// Google business development representative for details on the upload -// configuration. -message StoreSalesThirdPartyMetadata { - // Time the advertiser uploaded the data to the partner. Required. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string advertiser_upload_date_time = 7; - - // The fraction of transactions that are valid. Invalid transactions may - // include invalid formats or values. - // Required. - // The fraction needs to be between 0 and 1 (excluding 0). - optional double valid_transaction_fraction = 8; - - // The fraction of valid transactions that are matched to a third party - // assigned user ID on the partner side. - // Required. - // The fraction needs to be between 0 and 1 (excluding 0). - optional double partner_match_fraction = 9; - - // The fraction of valid transactions that are uploaded by the partner to - // Google. - // Required. - // The fraction needs to be between 0 and 1 (excluding 0). - optional double partner_upload_fraction = 10; - - // Version of partner IDs to be used for uploads. Required. - optional string bridge_map_version_id = 11; - - // ID of the third party partner updating the transaction feed. - optional int64 partner_id = 12; -} diff --git a/google/ads/googleads/v7/common/policy.proto b/google/ads/googleads/v7/common/policy.proto deleted file mode 100644 index 93afef2a3..000000000 --- a/google/ads/googleads/v7/common/policy.proto +++ /dev/null @@ -1,220 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/policy_topic_entry_type.proto"; -import "google/ads/googleads/v7/enums/policy_topic_evidence_destination_mismatch_url_type.proto"; -import "google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_device.proto"; -import "google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "PolicyProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing policy information. - -// Key of the violation. The key is used for referring to a violation -// when filing an exemption request. -message PolicyViolationKey { - // Unique ID of the violated policy. - optional string policy_name = 3; - - // The text that violates the policy if specified. - // Otherwise, refers to the policy in general - // (e.g., when requesting to be exempt from the whole policy). - // If not specified for criterion exemptions, the whole policy is implied. - // Must be specified for ad exemptions. - optional string violating_text = 4; -} - -// Parameter for controlling how policy exemption is done. -message PolicyValidationParameter { - // The list of policy topics that should not cause a PolicyFindingError to - // be reported. This field is currently only compatible with Enhanced Text Ad. - // It corresponds to the PolicyTopicEntry.topic field. - // - // Resources violating these policies 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 string ignorable_policy_topics = 3; - - // The list of policy violation keys that should not cause a - // PolicyViolationError to be reported. Not all policy violations are - // exemptable, please 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 PolicyViolationKey exempt_policy_violation_keys = 2; -} - -// Policy finding attached to a resource (e.g. alcohol policy associated with -// a site that sells alcohol). -// -// Each PolicyTopicEntry has a topic that indicates the specific ads policy -// the entry is about and a type to indicate the effect that the entry will have -// on serving. It may optionally have one or more evidences that indicate the -// reason for the finding. It may also optionally have one or more constraints -// that provide details about how serving may be restricted. -message PolicyTopicEntry { - // Policy topic this finding refers to. For example, "ALCOHOL", - // "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible - // policy topics is not fixed for a particular API version and may change - // at any time. - optional string topic = 5; - - // Describes the negative or positive effect this policy will have on serving. - google.ads.googleads.v7.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType type = 2; - - // Additional information that explains policy finding - // (e.g. the brand name for a trademark finding). - repeated PolicyTopicEvidence evidences = 3; - - // Indicates how serving of this resource may be affected (e.g. not serving - // in a country). - repeated PolicyTopicConstraint constraints = 4; -} - -// Additional information that explains a policy finding. -message PolicyTopicEvidence { - // A list of fragments of text that violated a policy. - message TextList { - // The fragments of text from the resource that caused the policy finding. - repeated string texts = 2; - } - - // A list of websites that caused a policy finding. Used for - // ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more - // than five websites, only the top five (those that appear in resources the - // most) will be listed here. - message WebsiteList { - // Websites that caused the policy finding. - repeated string websites = 2; - } - - // A list of strings found in a destination page that caused a policy - // finding. - message DestinationTextList { - // List of text found in the resource's destination page. - repeated string destination_texts = 2; - } - - // 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.v7.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.PolicyTopicEvidenceDestinationMismatchUrlType url_types = 1; - } - - // Evidence details when the destination is returning an HTTP error - // code or isn't functional in all locations for commonly used devices. - message DestinationNotWorking { - // The full URL that didn't work. - optional string expanded_url = 7; - - // The type of device that failed to load the URL. - google.ads.googleads.v7.enums.PolicyTopicEvidenceDestinationNotWorkingDeviceEnum.PolicyTopicEvidenceDestinationNotWorkingDevice device = 4; - - // The time the URL was last checked. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string last_checked_date_time = 8; - - // Indicates the reason of the DESTINATION_NOT_WORKING policy finding. - oneof reason { - // The type of DNS error. - google.ads.googleads.v7.enums.PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum.PolicyTopicEvidenceDestinationNotWorkingDnsErrorType dns_error_type = 1; - - // The HTTP error code. - int64 http_error_code = 6; - } - } - - // Specific evidence information depending on the evidence type. - oneof value { - // List of websites linked with this resource. - WebsiteList website_list = 3; - - // List of evidence found in the text of a resource. - TextList text_list = 4; - - // The language the resource was detected to be written in. - // This is an IETF language tag such as "en-US". - string language_code = 9; - - // The text in the destination of the resource that is causing a policy - // finding. - DestinationTextList destination_text_list = 6; - - // Mismatch between the destinations of a resource's URLs. - DestinationMismatch destination_mismatch = 7; - - // Details when the destination is returning an HTTP error code or isn't - // functional in all locations for commonly used devices. - DestinationNotWorking destination_not_working = 8; - } -} - -// Describes the effect on serving that a policy topic entry will have. -message PolicyTopicConstraint { - // A list of countries where a resource's serving is constrained. - message CountryConstraintList { - // Total number of countries targeted by the resource. - optional int32 total_targeted_countries = 3; - - // Countries in which serving is restricted. - repeated CountryConstraint countries = 2; - } - - // Indicates that a policy topic was constrained due to disapproval of the - // website for reseller purposes. - message ResellerConstraint { - - } - - // Indicates that a resource's ability to serve in a particular country is - // constrained. - message CountryConstraint { - // Geo target constant resource name of the country in which serving is - // constrained. - optional string country_criterion = 2; - } - - // Specific information about the constraint. - oneof value { - // Countries where the resource cannot serve. - CountryConstraintList country_constraint_list = 1; - - // Reseller constraint. - ResellerConstraint reseller_constraint = 2; - - // Countries where a certificate is required for serving. - CountryConstraintList certificate_missing_in_country_list = 3; - - // Countries where the resource's domain is not covered by the - // certificates associated with it. - CountryConstraintList certificate_domain_mismatch_in_country_list = 4; - } -} diff --git a/google/ads/googleads/v7/common/real_time_bidding_setting.proto b/google/ads/googleads/v7/common/real_time_bidding_setting.proto deleted file mode 100644 index f7333a6d6..000000000 --- a/google/ads/googleads/v7/common/real_time_bidding_setting.proto +++ /dev/null @@ -1,37 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "RealTimeBiddingSettingProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing RealTimeBiddingSetting - -// Settings for Real-Time Bidding, a feature only available for campaigns -// targeting the Ad Exchange network. -message RealTimeBiddingSetting { - // Whether the campaign is opted in to real-time bidding. - optional bool opt_in = 2; -} diff --git a/google/ads/googleads/v7/common/segments.proto b/google/ads/googleads/v7/common/segments.proto deleted file mode 100644 index d8bf9ceb3..000000000 --- a/google/ads/googleads/v7/common/segments.proto +++ /dev/null @@ -1,333 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/enums/ad_destination_type.proto"; -import "google/ads/googleads/v7/enums/ad_network_type.proto"; -import "google/ads/googleads/v7/enums/budget_campaign_association_status.proto"; -import "google/ads/googleads/v7/enums/click_type.proto"; -import "google/ads/googleads/v7/enums/conversion_action_category.proto"; -import "google/ads/googleads/v7/enums/conversion_attribution_event_type.proto"; -import "google/ads/googleads/v7/enums/conversion_lag_bucket.proto"; -import "google/ads/googleads/v7/enums/conversion_or_adjustment_lag_bucket.proto"; -import "google/ads/googleads/v7/enums/day_of_week.proto"; -import "google/ads/googleads/v7/enums/device.proto"; -import "google/ads/googleads/v7/enums/external_conversion_source.proto"; -import "google/ads/googleads/v7/enums/hotel_date_selection_type.proto"; -import "google/ads/googleads/v7/enums/hotel_price_bucket.proto"; -import "google/ads/googleads/v7/enums/hotel_rate_type.proto"; -import "google/ads/googleads/v7/enums/month_of_year.proto"; -import "google/ads/googleads/v7/enums/placeholder_type.proto"; -import "google/ads/googleads/v7/enums/product_channel.proto"; -import "google/ads/googleads/v7/enums/product_channel_exclusivity.proto"; -import "google/ads/googleads/v7/enums/product_condition.proto"; -import "google/ads/googleads/v7/enums/search_engine_results_page_type.proto"; -import "google/ads/googleads/v7/enums/search_term_match_type.proto"; -import "google/ads/googleads/v7/enums/slot.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "SegmentsProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing segment only fields. - -// Segment only fields. -message Segments { - // Ad Destination type. - google.ads.googleads.v7.enums.AdDestinationTypeEnum.AdDestinationType ad_destination_type = 136; - - // Ad network type. - google.ads.googleads.v7.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3; - - // Budget campaign association status. - BudgetCampaignAssociationStatus budget_campaign_association_status = 134; - - // Click type. - google.ads.googleads.v7.enums.ClickTypeEnum.ClickType click_type = 26; - - // Resource name of the conversion action. - optional string conversion_action = 113; - - // Conversion action category. - google.ads.googleads.v7.enums.ConversionActionCategoryEnum.ConversionActionCategory conversion_action_category = 53; - - // Conversion action name. - optional string conversion_action_name = 114; - - // This segments your conversion columns by the original conversion and - // conversion value vs. the delta if conversions were adjusted. False row has - // the data as originally stated; While true row has the delta between data - // now and the data as originally stated. Summing the two together results - // post-adjustment data. - optional bool conversion_adjustment = 115; - - // Conversion attribution event type. - google.ads.googleads.v7.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.v7.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.v7.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket conversion_or_adjustment_lag_bucket = 51; - - // Date to which metrics apply. - // yyyy-MM-dd format, e.g., 2018-04-17. - optional string date = 79; - - // Day of the week, e.g., MONDAY. - google.ads.googleads.v7.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; - - // Device to which metrics apply. - google.ads.googleads.v7.enums.DeviceEnum.Device device = 1; - - // External conversion source. - google.ads.googleads.v7.enums.ExternalConversionSourceEnum.ExternalConversionSource external_conversion_source = 55; - - // Resource name of the geo target constant that represents an airport. - optional string geo_target_airport = 116; - - // Resource name of the geo target constant that represents a canton. - optional string geo_target_canton = 117; - - // Resource name of the geo target constant that represents a city. - optional string geo_target_city = 118; - - // Resource name of the geo target constant that represents a country. - optional string geo_target_country = 119; - - // Resource name of the geo target constant that represents a county. - optional string geo_target_county = 120; - - // Resource name of the geo target constant that represents a district. - optional string geo_target_district = 121; - - // Resource name of the geo target constant that represents a metro. - optional string geo_target_metro = 122; - - // Resource name of the geo target constant that represents the most - // specific location. - optional string geo_target_most_specific_location = 123; - - // Resource name of the geo target constant that represents a postal code. - optional string geo_target_postal_code = 124; - - // Resource name of the geo target constant that represents a province. - optional string geo_target_province = 125; - - // Resource name of the geo target constant that represents a region. - optional string geo_target_region = 126; - - // Resource name of the geo target constant that represents a state. - optional string geo_target_state = 127; - - // Hotel booking window in days. - optional int64 hotel_booking_window_days = 135; - - // Hotel center ID. - optional int64 hotel_center_id = 80; - - // Hotel check-in date. Formatted as yyyy-MM-dd. - optional string hotel_check_in_date = 81; - - // Hotel check-in day of week. - google.ads.googleads.v7.enums.DayOfWeekEnum.DayOfWeek hotel_check_in_day_of_week = 9; - - // Hotel city. - optional string hotel_city = 82; - - // Hotel class. - optional int32 hotel_class = 83; - - // Hotel country. - optional string hotel_country = 84; - - // Hotel date selection type. - google.ads.googleads.v7.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType hotel_date_selection_type = 13; - - // Hotel length of stay. - optional int32 hotel_length_of_stay = 85; - - // Hotel rate rule ID. - optional string hotel_rate_rule_id = 86; - - // Hotel rate type. - google.ads.googleads.v7.enums.HotelRateTypeEnum.HotelRateType hotel_rate_type = 74; - - // Hotel price bucket. - google.ads.googleads.v7.enums.HotelPriceBucketEnum.HotelPriceBucket hotel_price_bucket = 78; - - // Hotel state. - optional string hotel_state = 87; - - // Hour of day as a number between 0 and 23, inclusive. - optional int32 hour = 88; - - // Only used with feed item metrics. - // Indicates whether the interaction metrics occurred on the feed item itself - // or a different extension or ad unit. - optional bool interaction_on_this_extension = 89; - - // Keyword criterion. - Keyword keyword = 61; - - // Month as represented by the date of the first day of a month. Formatted as - // yyyy-MM-dd. - optional string month = 90; - - // Month of the year, e.g., January. - google.ads.googleads.v7.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.v7.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; - - // Bidding category (level 2) of the product. - optional string product_bidding_category_level2 = 93; - - // Bidding category (level 3) of the product. - optional string product_bidding_category_level3 = 94; - - // Bidding category (level 4) of the product. - optional string product_bidding_category_level4 = 95; - - // Bidding category (level 5) of the product. - optional string product_bidding_category_level5 = 96; - - // Brand of the product. - optional string product_brand = 97; - - // Channel of the product. - google.ads.googleads.v7.enums.ProductChannelEnum.ProductChannel product_channel = 30; - - // Channel exclusivity of the product. - google.ads.googleads.v7.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity product_channel_exclusivity = 31; - - // Condition of the product. - google.ads.googleads.v7.enums.ProductConditionEnum.ProductCondition product_condition = 32; - - // Resource name of the geo target constant for the country of sale of the - // product. - optional string product_country = 98; - - // Custom attribute 0 of the product. - optional string product_custom_attribute0 = 99; - - // Custom attribute 1 of the product. - optional string product_custom_attribute1 = 100; - - // Custom attribute 2 of the product. - optional string product_custom_attribute2 = 101; - - // Custom attribute 3 of the product. - optional string product_custom_attribute3 = 102; - - // Custom attribute 4 of the product. - optional string product_custom_attribute4 = 103; - - // Item ID of the product. - optional string product_item_id = 104; - - // Resource name of the language constant for the language of the product. - optional string product_language = 105; - - // Merchant ID of the product. - optional int64 product_merchant_id = 133; - - // Store ID of the product. - optional string product_store_id = 106; - - // Title of the product. - optional string product_title = 107; - - // Type (level 1) of the product. - optional string product_type_l1 = 108; - - // Type (level 2) of the product. - optional string product_type_l2 = 109; - - // Type (level 3) of the product. - optional string product_type_l3 = 110; - - // Type (level 4) of the product. - optional string product_type_l4 = 111; - - // Type (level 5) of the product. - optional string product_type_l5 = 112; - - // Quarter as represented by the date of the first day of a quarter. - // Uses the calendar year for quarters, e.g., the second quarter of 2018 - // starts on 2018-04-01. Formatted as yyyy-MM-dd. - optional string quarter = 128; - - // Type of the search engine results page. - google.ads.googleads.v7.enums.SearchEngineResultsPageTypeEnum.SearchEngineResultsPageType search_engine_results_page_type = 70; - - // Match type of the keyword that triggered the ad, including variants. - google.ads.googleads.v7.enums.SearchTermMatchTypeEnum.SearchTermMatchType search_term_match_type = 22; - - // Position of the ad. - google.ads.googleads.v7.enums.SlotEnum.Slot slot = 23; - - // Resource name of the ad group criterion that represents webpage criterion. - optional string webpage = 129; - - // Week as defined as Monday through Sunday, and represented by the date of - // Monday. Formatted as yyyy-MM-dd. - optional string week = 130; - - // Year, formatted as yyyy. - optional int32 year = 131; - - // iOS Store Kit Ad Network conversion value. - // Null value means this segment is not applicable, e.g. non-iOS campaign. - optional int64 sk_ad_network_conversion_value = 137; -} - -// A Keyword criterion segment. -message Keyword { - // The AdGroupCriterion resource name. - optional string ad_group_criterion = 3; - - // Keyword info. - KeywordInfo info = 2; -} - -// A BudgetCampaignAssociationStatus segment. -message BudgetCampaignAssociationStatus { - // The campaign resource name. - optional string campaign = 1; - - // Budget campaign association status. - google.ads.googleads.v7.enums.BudgetCampaignAssociationStatusEnum.BudgetCampaignAssociationStatus status = 2; -} diff --git a/google/ads/googleads/v7/common/simulation.proto b/google/ads/googleads/v7/common/simulation.proto deleted file mode 100644 index b274396a9..000000000 --- a/google/ads/googleads/v7/common/simulation.proto +++ /dev/null @@ -1,358 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "SimulationProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing simulation points. - -// A container for simulation points for simulations of type BID_MODIFIER. -message BidModifierSimulationPointList { - // Projected metrics for a series of bid modifier amounts. - repeated BidModifierSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type CPC_BID. -message CpcBidSimulationPointList { - // Projected metrics for a series of CPC bid amounts. - repeated CpcBidSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type CPV_BID. -message CpvBidSimulationPointList { - // Projected metrics for a series of CPV bid amounts. - repeated CpvBidSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type TARGET_CPA. -message TargetCpaSimulationPointList { - // Projected metrics for a series of target CPA amounts. - repeated TargetCpaSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type TARGET_ROAS. -message TargetRoasSimulationPointList { - // Projected metrics for a series of target ROAS amounts. - repeated TargetRoasSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type PERCENT_CPC_BID. -message PercentCpcBidSimulationPointList { - // Projected metrics for a series of percent CPC bid amounts. - repeated PercentCpcBidSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type BUDGET. -message BudgetSimulationPointList { - // Projected metrics for a series of budget amounts. - repeated BudgetSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type -// TARGET_IMPRESSION_SHARE. -message TargetImpressionShareSimulationPointList { - // Projected metrics for a specific target impression share value. - repeated TargetImpressionShareSimulationPoint points = 1; -} - -// Projected metrics for a specific bid modifier amount. -message BidModifierSimulationPoint { - // The simulated bid modifier upon which projected metrics are based. - optional double bid_modifier = 15; - - // Projected number of biddable conversions. - // Only search advertising channel type supports this field. - optional double biddable_conversions = 16; - - // Projected total value of biddable conversions. - // Only search advertising channel type supports this field. - optional double biddable_conversions_value = 17; - - // Projected number of clicks. - optional int64 clicks = 18; - - // Projected cost in micros. - optional int64 cost_micros = 19; - - // Projected number of impressions. - optional int64 impressions = 20; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - optional int64 top_slot_impressions = 21; - - // Projected number of biddable conversions for the parent resource. - // Only search advertising channel type supports this field. - optional double parent_biddable_conversions = 22; - - // Projected total value of biddable conversions for the parent resource. - // Only search advertising channel type supports this field. - optional double parent_biddable_conversions_value = 23; - - // Projected number of clicks for the parent resource. - optional int64 parent_clicks = 24; - - // Projected cost in micros for the parent resource. - optional int64 parent_cost_micros = 25; - - // Projected number of impressions for the parent resource. - optional int64 parent_impressions = 26; - - // Projected number of top slot impressions for the parent resource. - // Only search advertising channel type supports this field. - optional int64 parent_top_slot_impressions = 27; - - // Projected minimum daily budget that must be available to the parent - // resource to realize this simulation. - optional int64 parent_required_budget_micros = 28; -} - -// Projected metrics for a specific CPC bid amount. -message CpcBidSimulationPoint { - // Projected required daily budget that the advertiser must set in order to - // receive the estimated traffic, in micros of advertiser currency. - int64 required_budget_amount_micros = 17; - - // Projected number of biddable conversions. - optional double biddable_conversions = 9; - - // Projected total value of biddable conversions. - optional double biddable_conversions_value = 10; - - // Projected number of clicks. - optional int64 clicks = 11; - - // Projected cost in micros. - optional int64 cost_micros = 12; - - // Projected number of impressions. - optional int64 impressions = 13; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - optional int64 top_slot_impressions = 14; - - // When SimulationModificationMethod = UNIFORM or DEFAULT, - // cpc_bid_micros is set. - // When SimulationModificationMethod = SCALING, - // cpc_bid_scaling_modifier is set. - oneof cpc_simulation_key_value { - // The simulated CPC bid upon which projected metrics are based. - int64 cpc_bid_micros = 15; - - // The simulated scaling modifier upon which projected metrics are based. - // All CPC bids relevant to the simulated entity are scaled by this - // modifier. - double cpc_bid_scaling_modifier = 16; - } -} - -// Projected metrics for a specific CPV bid amount. -message CpvBidSimulationPoint { - // The simulated CPV bid upon which projected metrics are based. - optional int64 cpv_bid_micros = 5; - - // Projected cost in micros. - optional int64 cost_micros = 6; - - // Projected number of impressions. - optional int64 impressions = 7; - - // Projected number of views. - optional int64 views = 8; -} - -// Projected metrics for a specific target CPA amount. -message TargetCpaSimulationPoint { - // Projected required daily budget that the advertiser must set in order to - // receive the estimated traffic, in micros of advertiser currency. - int64 required_budget_amount_micros = 19; - - // Projected number of biddable conversions. - optional double biddable_conversions = 9; - - // Projected total value of biddable conversions. - optional double biddable_conversions_value = 10; - - // Projected number of app installs. - double app_installs = 15; - - // Projected number of in-app actions. - double in_app_actions = 16; - - // Projected number of clicks. - optional int64 clicks = 11; - - // Projected cost in micros. - optional int64 cost_micros = 12; - - // Projected number of impressions. - optional int64 impressions = 13; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - optional int64 top_slot_impressions = 14; - - // When SimulationModificationMethod = UNIFORM or DEFAULT, - // target_cpa_micros is set. - // When SimulationModificationMethod = SCALING, - // target_cpa_scaling_modifier is set. - oneof target_cpa_simulation_key_value { - // The simulated target CPA upon which projected metrics are based. - int64 target_cpa_micros = 17; - - // The simulated scaling modifier upon which projected metrics are based. - // All CPA targets relevant to the simulated entity are scaled by this - // modifier. - double target_cpa_scaling_modifier = 18; - } -} - -// Projected metrics for a specific target ROAS amount. -message TargetRoasSimulationPoint { - // The simulated target ROAS upon which projected metrics are based. - optional double target_roas = 8; - - // Projected required daily budget that the advertiser must set in order to - // receive the estimated traffic, in micros of advertiser currency. - int64 required_budget_amount_micros = 15; - - // Projected number of biddable conversions. - optional double biddable_conversions = 9; - - // Projected total value of biddable conversions. - optional double biddable_conversions_value = 10; - - // Projected number of clicks. - optional int64 clicks = 11; - - // Projected cost in micros. - optional int64 cost_micros = 12; - - // Projected number of impressions. - optional int64 impressions = 13; - - // Projected number of top slot impressions. - // Only Search advertising channel type supports this field. - optional int64 top_slot_impressions = 14; -} - -// Projected metrics for a specific percent CPC amount. Only Hotel advertising -// channel type supports this field. -message PercentCpcBidSimulationPoint { - // The simulated percent CPC upon which projected metrics are based. Percent - // CPC expressed as fraction of the advertised price for some good or service. - // The value stored here is 1,000,000 * [fraction]. - optional int64 percent_cpc_bid_micros = 1; - - // Projected number of biddable conversions. - optional double biddable_conversions = 2; - - // Projected total value of biddable conversions in local currency. - optional double biddable_conversions_value = 3; - - // Projected number of clicks. - optional int64 clicks = 4; - - // Projected cost in micros. - optional int64 cost_micros = 5; - - // Projected number of impressions. - optional int64 impressions = 6; - - // Projected number of top slot impressions. - optional int64 top_slot_impressions = 7; -} - -// Projected metrics for a specific budget amount. -message BudgetSimulationPoint { - // The simulated budget upon which projected metrics are based. - int64 budget_amount_micros = 1; - - // Projected required daily cpc bid ceiling that the advertiser must set to - // realize this simulation, in micros of the advertiser currency. - // Only campaigns with the Target Spend bidding strategy support this field. - int64 required_cpc_bid_ceiling_micros = 2; - - // Projected number of biddable conversions. - double biddable_conversions = 3; - - // Projected total value of biddable conversions. - double biddable_conversions_value = 4; - - // Projected number of clicks. - int64 clicks = 5; - - // Projected cost in micros. - int64 cost_micros = 6; - - // Projected number of impressions. - int64 impressions = 7; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - int64 top_slot_impressions = 8; -} - -// Projected metrics for a specific target impression share value. -message TargetImpressionShareSimulationPoint { - // The simulated target impression share value (in micros) upon which - // projected metrics are based. - // E.g. 10% impression share, which is equal to 0.1, is stored as 100_000. - // This value is validated and will not exceed 1M (100%). - int64 target_impression_share_micros = 1; - - // Projected required daily cpc bid ceiling that the advertiser must set to - // realize this simulation, in micros of the advertiser currency. - int64 required_cpc_bid_ceiling_micros = 2; - - // Projected required daily budget that the advertiser must set in order to - // receive the estimated traffic, in micros of advertiser currency. - int64 required_budget_amount_micros = 3; - - // Projected number of biddable conversions. - double biddable_conversions = 4; - - // Projected total value of biddable conversions. - double biddable_conversions_value = 5; - - // Projected number of clicks. - int64 clicks = 6; - - // Projected cost in micros. - int64 cost_micros = 7; - - // Projected number of impressions. - int64 impressions = 8; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - int64 top_slot_impressions = 9; - - // Projected number of absolute top impressions. - // Only search advertising channel type supports this field. - int64 absolute_top_impressions = 10; -} diff --git a/google/ads/googleads/v7/common/tag_snippet.proto b/google/ads/googleads/v7/common/tag_snippet.proto deleted file mode 100644 index 31ae07570..000000000 --- a/google/ads/googleads/v7/common/tag_snippet.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/tracking_code_page_format.proto"; -import "google/ads/googleads/v7/enums/tracking_code_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "TagSnippetProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::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.v7.enums.TrackingCodeTypeEnum.TrackingCodeType type = 1; - - // The format of the web page where the tracking tag and snippet will be - // installed, e.g. HTML. - google.ads.googleads.v7.enums.TrackingCodePageFormatEnum.TrackingCodePageFormat page_format = 2; - - // The site tag that adds visitors to your basic remarketing lists and sets - // new cookies on your domain. - optional string global_site_tag = 5; - - // The event snippet that works with the site tag to track actions that - // should be counted as conversions. - optional string event_snippet = 6; -} diff --git a/google/ads/googleads/v7/common/targeting_setting.proto b/google/ads/googleads/v7/common/targeting_setting.proto deleted file mode 100644 index 2f15de056..000000000 --- a/google/ads/googleads/v7/common/targeting_setting.proto +++ /dev/null @@ -1,85 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/targeting_dimension.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "TargetingSettingProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing TargetingSetting - -// Settings for the targeting-related features, at the campaign and ad group -// levels. For more details about the targeting setting, visit -// https://support.google.com/google-ads/answer/7365594 -message TargetingSetting { - // The per-targeting-dimension setting to restrict the reach of your campaign - // or ad group. - repeated TargetRestriction target_restrictions = 1; - - // The list of operations changing the target restrictions. - // - // Adding a target restriction with a targeting dimension that already exists - // causes the existing target restriction to be replaced with the new value. - repeated TargetRestrictionOperation target_restriction_operations = 2; -} - -// The list of per-targeting-dimension targeting settings. -message TargetRestriction { - // The targeting dimension that these settings apply to. - google.ads.googleads.v7.enums.TargetingDimensionEnum.TargetingDimension targeting_dimension = 1; - - // Indicates whether to restrict your ads to show only for the criteria you - // have selected for this targeting_dimension, or to target all values for - // this targeting_dimension and show ads based on your targeting in other - // TargetingDimensions. A value of `true` means that these criteria will only - // apply bid modifiers, and not affect targeting. A value of `false` means - // that these criteria will restrict targeting as well as applying bid - // modifiers. - optional bool bid_only = 3; -} - -// Operation to be performed on a target restriction list in a mutate. -message TargetRestrictionOperation { - // The operator. - enum Operator { - // Unspecified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Add the restriction to the existing restrictions. - ADD = 2; - - // Remove the restriction from the existing restrictions. - REMOVE = 3; - } - - // Type of list operation to perform. - Operator operator = 1; - - // The target restriction being added to or removed from the list. - TargetRestriction value = 2; -} diff --git a/google/ads/googleads/v7/common/text_label.proto b/google/ads/googleads/v7/common/text_label.proto deleted file mode 100644 index d3fc2e710..000000000 --- a/google/ads/googleads/v7/common/text_label.proto +++ /dev/null @@ -1,40 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "TextLabelProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// A type of label displaying text on a colored background. -message TextLabel { - // Background color of the label in RGB format. This string must match the - // regular expression '^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'. - // Note: The background color may not be visible for manager accounts. - optional string background_color = 3; - - // A short description of the label. The length must be no more than 200 - // characters. - optional string description = 4; -} diff --git a/google/ads/googleads/v7/common/url_collection.proto b/google/ads/googleads/v7/common/url_collection.proto deleted file mode 100644 index eec38cc99..000000000 --- a/google/ads/googleads/v7/common/url_collection.proto +++ /dev/null @@ -1,45 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "UrlCollectionProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file UrlCollection type. - -// Collection of urls that is tagged with a unique identifier. -message UrlCollection { - // Unique identifier for this UrlCollection instance. - optional string url_collection_id = 5; - - // A list of possible final URLs. - repeated string final_urls = 6; - - // A list of possible final mobile URLs. - repeated string final_mobile_urls = 7; - - // URL template for constructing a tracking URL. - optional string tracking_url_template = 8; -} diff --git a/google/ads/googleads/v7/common/user_lists.proto b/google/ads/googleads/v7/common/user_lists.proto deleted file mode 100644 index 8cba7b33c..000000000 --- a/google/ads/googleads/v7/common/user_lists.proto +++ /dev/null @@ -1,291 +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 google.ads.googleads.v7.common; - -import "google/ads/googleads/v7/enums/customer_match_upload_key_type.proto"; -import "google/ads/googleads/v7/enums/user_list_combined_rule_operator.proto"; -import "google/ads/googleads/v7/enums/user_list_crm_data_source_type.proto"; -import "google/ads/googleads/v7/enums/user_list_date_rule_item_operator.proto"; -import "google/ads/googleads/v7/enums/user_list_logical_rule_operator.proto"; -import "google/ads/googleads/v7/enums/user_list_number_rule_item_operator.proto"; -import "google/ads/googleads/v7/enums/user_list_prepopulation_status.proto"; -import "google/ads/googleads/v7/enums/user_list_rule_type.proto"; -import "google/ads/googleads/v7/enums/user_list_string_rule_item_operator.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "UserListsProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing user list types. - -// 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 { - // Seed UserList from which this list is derived. - optional string seed_user_list = 2; -} - -// UserList of CRM users provided by the advertiser. -message CrmBasedUserListInfo { - // A string that uniquely identifies a mobile application from which the data - // was collected. - // For iOS, the ID string is the 9 digit string that appears at the end of an - // App Store URL (e.g., "476943146" for "Flood-It! 2" whose App Store link is - // http://itunes.apple.com/us/app/flood-it!-2/id476943146). - // For Android, the ID string is the application's package name - // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link - // https://play.google.com/store/apps/details?id=com.labpixies.colordrips). - // Required when creating CrmBasedUserList for uploading mobile advertising - // IDs. - optional string app_id = 4; - - // 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.v7.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.v7.enums.UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType data_source_type = 3; -} - -// A client defined rule based on custom parameters sent by web sites or -// uploaded by the advertiser. -message UserListRuleInfo { - // Rule type is used to determine how to group rule items. - // - // The default is OR of ANDs (disjunctive normal form). - // That is, rule items will be ANDed together within rule item groups and the - // groups themselves will be ORed together. - // - // Currently AND of ORs (conjunctive normal form) is only supported for - // ExpressionRuleUserList. - google.ads.googleads.v7.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1; - - // List of rule item groups that defines this rule. - // Rule item groups are grouped together based on rule_type. - repeated UserListRuleItemGroupInfo rule_item_groups = 2; -} - -// A group of rule items. -message UserListRuleItemGroupInfo { - // Rule items that will be grouped together based on rule_type. - repeated UserListRuleItemInfo rule_items = 1; -} - -// An atomic rule item. -message UserListRuleItemInfo { - // Rule variable name. It should match the corresponding key name fired - // by the pixel. - // A name must begin with US-ascii letters or underscore or UTF8 code that is - // greater than 127 and consist of US-ascii letters or digits or underscore or - // UTF8 code that is greater than 127. - // For websites, there are two built-in variable URL (name = 'url__') and - // referrer URL (name = 'ref_url__'). - // This field must be populated when creating a new rule item. - optional string name = 5; - - // An atomic rule item. - oneof rule_item { - // An atomic rule item composed of a number operation. - UserListNumberRuleItemInfo number_rule_item = 2; - - // An atomic rule item composed of a string operation. - UserListStringRuleItemInfo string_rule_item = 3; - - // An atomic rule item composed of a date operation. - UserListDateRuleItemInfo date_rule_item = 4; - } -} - -// A rule item composed of a date operation. -message UserListDateRuleItemInfo { - // Date comparison operator. - // This field is required and must be populated when creating new date - // rule item. - google.ads.googleads.v7.enums.UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator = 1; - - // String representing date value to be compared with the rule variable. - // Supported date format is YYYY-MM-DD. - // Times are reported in the customer's time zone. - optional string value = 4; - - // The relative date value of the right hand side denoted by number of days - // offset from now. The value field will override this field when both are - // present. - optional int64 offset_in_days = 5; -} - -// A rule item composed of a number operation. -message UserListNumberRuleItemInfo { - // Number comparison operator. - // This field is required and must be populated when creating a new number - // rule item. - google.ads.googleads.v7.enums.UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator = 1; - - // Number value to be compared with the variable. - // This field is required and must be populated when creating a new number - // rule item. - optional double value = 3; -} - -// A rule item composed of a string operation. -message UserListStringRuleItemInfo { - // String comparison operator. - // This field is required and must be populated when creating a new string - // rule item. - google.ads.googleads.v7.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator operator = 1; - - // The right hand side of the string rule item. For URLs or referrer URLs, - // the value can not contain illegal URL chars such as newlines, quotes, - // tabs, or parentheses. This field is required and must be populated when - // creating a new string rule item. - optional string value = 3; -} - -// User lists defined by combining two rules, left operand and right operand. -// There are two operators: AND where left operand and right operand have to be -// true; AND_NOT where left operand is true but right operand is false. -message CombinedRuleUserListInfo { - // Left operand of the combined rule. - // This field is required and must be populated when creating new combined - // rule based user list. - UserListRuleInfo left_operand = 1; - - // Right operand of the combined rule. - // This field is required and must be populated when creating new combined - // rule based user list. - UserListRuleInfo right_operand = 2; - - // Operator to connect the two operands. - // - // Required for creating a combined rule user list. - google.ads.googleads.v7.enums.UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator rule_operator = 3; -} - -// Visitors of a page during specific dates. -message DateSpecificRuleUserListInfo { - // Boolean rule that defines visitor of a page. - // - // Required for creating a date specific rule user list. - UserListRuleInfo rule = 1; - - // Start date of users visit. If set to 2000-01-01, then the list includes all - // users before end_date. The date's format should be YYYY-MM-DD. - // - // Required for creating a data specific rule user list. - optional string start_date = 4; - - // Last date of users visit. If set to 2037-12-30, then the list includes all - // users after start_date. The date's format should be YYYY-MM-DD. - // - // Required for creating a data specific rule user list. - optional string end_date = 5; -} - -// Visitors of a page. The page visit is defined by one boolean rule expression. -message ExpressionRuleUserListInfo { - // Boolean rule that defines this user list. The rule consists of a list of - // rule item groups and each rule item group consists of a list of rule items. - // All the rule item groups are ORed or ANDed together for evaluation based on - // rule.rule_type. - // - // Required for creating an expression rule user list. - UserListRuleInfo rule = 1; -} - -// Representation of a userlist that is generated by a rule. -message RuleBasedUserListInfo { - // The status of pre-population. The field is default to NONE if not set which - // means the previous users will not be considered. If set to REQUESTED, past - // site visitors or app users who match the list definition will be included - // in the list (works on the Display Network only). This will only - // add past users from within the last 30 days, depending on the - // 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.v7.enums.UserListPrepopulationStatusEnum.UserListPrepopulationStatus prepopulation_status = 1; - - // Subtypes of rule based user lists. - oneof rule_based_user_list { - // User lists defined by combining two rules. - // There are two operators: AND, where the left and right operands have to - // be true; AND_NOT where left operand is true but right operand is false. - CombinedRuleUserListInfo combined_rule_user_list = 2; - - // Visitors of a page during specific dates. The visiting periods are - // defined as follows: - // Between start_date (inclusive) and end_date (inclusive); - // Before end_date (exclusive) with start_date = 2000-01-01; - // After start_date (exclusive) with end_date = 2037-12-30. - DateSpecificRuleUserListInfo date_specific_rule_user_list = 3; - - // Visitors of a page. The page visit is defined by one boolean rule - // expression. - ExpressionRuleUserListInfo expression_rule_user_list = 4; - } -} - -// Represents a user list that is a custom combination of user lists. -message LogicalUserListInfo { - // Logical list rules that define this user list. The rules are defined as a - // logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are - // ANDed when they are evaluated. - // - // Required for creating a logical user list. - repeated UserListLogicalRuleInfo rules = 1; -} - -// A user list logical rule. A rule has a logical operator (and/or/not) and a -// list of user lists as operands. -message UserListLogicalRuleInfo { - // The logical operator of the rule. - google.ads.googleads.v7.enums.UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator operator = 1; - - // The list of operands of the rule. - repeated LogicalUserListOperandInfo rule_operands = 2; -} - -// Operand of logical user list that consists of a user list. -message LogicalUserListOperandInfo { - // Resource name of a user list as an operand. - optional string user_list = 2; -} - -// User list targeting as a collection of conversions or remarketing actions. -message BasicUserListInfo { - // Actions associated with this user list. - repeated UserListActionInfo actions = 1; -} - -// Represents an action type used for building remarketing user lists. -message UserListActionInfo { - // Subtypes of user list action. - oneof user_list_action { - // A conversion action that's not generated from remarketing. - string conversion_action = 3; - - // A remarketing action. - string remarketing_action = 4; - } -} diff --git a/google/ads/googleads/v7/common/value.proto b/google/ads/googleads/v7/common/value.proto deleted file mode 100644 index 57190b33d..000000000 --- a/google/ads/googleads/v7/common/value.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/common;common"; -option java_multiple_files = true; -option java_outer_classname = "ValueProto"; -option java_package = "com.google.ads.googleads.v7.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V7::Common"; - -// Proto file describing value types. - -// A generic data container. -message Value { - // A value. - oneof value { - // A boolean. - bool boolean_value = 1; - - // An int64. - int64 int64_value = 2; - - // A float. - float float_value = 3; - - // A double. - double double_value = 4; - - // A string. - string string_value = 5; - } -} diff --git a/google/ads/googleads/v7/enums/BUILD.bazel b/google/ads/googleads/v7/enums/BUILD.bazel deleted file mode 100644 index 422fc227c..000000000 --- a/google/ads/googleads/v7/enums/BUILD.bazel +++ /dev/null @@ -1,89 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports subpackages. -proto_library( - name = "enums_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/api:annotations_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", -) - -java_proto_library( - name = "enums_java_proto", - deps = [":enums_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_proto_library", -) - -csharp_proto_library( - name = "enums_csharp_proto", - deps = [":enums_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_proto_library", -) - -ruby_proto_library( - name = "enums_ruby_proto", - deps = [":enums_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_proto_library", -) - -py_proto_library( - name = "enums_py_proto", - deps = [":enums_proto"], -) diff --git a/google/ads/googleads/v7/enums/access_invitation_status.proto b/google/ads/googleads/v7/enums/access_invitation_status.proto deleted file mode 100644 index 84b020528..000000000 --- a/google/ads/googleads/v7/enums/access_invitation_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccessInvitationStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing AccessInvitationStatus enum. - -// Container for enum for identifying the status of access invitation -message AccessInvitationStatusEnum { - // Possible access invitation status of a user - enum AccessInvitationStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The initial state of an invitation, before being acted upon by anyone. - PENDING = 2; - - // Invitation process was terminated by the email recipient. No new user was - // created. - DECLINED = 3; - - // Invitation URLs expired without being acted upon. No new user can be - // created. Invitations expire 20 days after creation. - EXPIRED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/access_reason.proto b/google/ads/googleads/v7/enums/access_reason.proto deleted file mode 100644 index dc4a3e566..000000000 --- a/google/ads/googleads/v7/enums/access_reason.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccessReasonProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Indicates the way the resource such as user list is related to a user. -message AccessReasonEnum { - // Enum describing possible access reasons. - enum AccessReason { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The resource is owned by the user. - OWNED = 2; - - // The resource is shared to the user. - SHARED = 3; - - // The resource is licensed to the user. - LICENSED = 4; - - // The user subscribed to the resource. - SUBSCRIBED = 5; - - // The resource is accessible to the user. - AFFILIATED = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/access_role.proto b/google/ads/googleads/v7/enums/access_role.proto deleted file mode 100644 index 254c2d218..000000000 --- a/google/ads/googleads/v7/enums/access_role.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccessRoleProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing possible access role for user. -message AccessRoleEnum { - // Possible access role of a user. - enum AccessRole { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Owns its account and can control the addition of other users. - ADMIN = 2; - - // Can modify campaigns, but can't affect other users. - STANDARD = 3; - - // Can view campaigns and account changes, but cannot make edits. - READ_ONLY = 4; - - // Role for \"email only\" access. Represents an email recipient rather than - // a true User entity. - EMAIL_ONLY = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/account_budget_proposal_status.proto b/google/ads/googleads/v7/enums/account_budget_proposal_status.proto deleted file mode 100644 index c115da43e..000000000 --- a/google/ads/googleads/v7/enums/account_budget_proposal_status.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing AccountBudgetProposal statuses. - -// Message describing AccountBudgetProposal statuses. -message AccountBudgetProposalStatusEnum { - // The possible statuses of an AccountBudgetProposal. - enum AccountBudgetProposalStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The proposal is pending approval. - PENDING = 2; - - // The proposal has been approved but the corresponding billing setup - // has not. This can occur for proposals that set up the first budget - // when signing up for billing or when performing a change of bill-to - // operation. - APPROVED_HELD = 3; - - // The proposal has been approved. - APPROVED = 4; - - // The proposal has been cancelled by the user. - CANCELLED = 5; - - // The proposal has been rejected by the user, e.g. by rejecting an - // acceptance email. - REJECTED = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/account_budget_proposal_type.proto b/google/ads/googleads/v7/enums/account_budget_proposal_type.proto deleted file mode 100644 index 49a32715f..000000000 --- a/google/ads/googleads/v7/enums/account_budget_proposal_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing AccountBudgetProposal types. - -// Message describing AccountBudgetProposal types. -message AccountBudgetProposalTypeEnum { - // The possible types of an AccountBudgetProposal. - enum AccountBudgetProposalType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Identifies a request to create a new budget. - CREATE = 2; - - // Identifies a request to edit an existing budget. - UPDATE = 3; - - // Identifies a request to end a budget that has already started. - END = 4; - - // Identifies a request to remove a budget that hasn't started yet. - REMOVE = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/account_budget_status.proto b/google/ads/googleads/v7/enums/account_budget_status.proto deleted file mode 100644 index 6e673980f..000000000 --- a/google/ads/googleads/v7/enums/account_budget_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing AccountBudget statuses. - -// Message describing AccountBudget statuses. -message AccountBudgetStatusEnum { - // The possible statuses of an AccountBudget. - enum AccountBudgetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The account budget is pending approval. - PENDING = 2; - - // The account budget has been approved. - APPROVED = 3; - - // The account budget has been cancelled by the user. - CANCELLED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/account_link_status.proto b/google/ads/googleads/v7/enums/account_link_status.proto deleted file mode 100644 index 5cb71bf47..000000000 --- a/google/ads/googleads/v7/enums/account_link_status.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccountLinkStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing possible statuses of an account link. -message AccountLinkStatusEnum { - // Describes the possible statuses for a link between a Google Ads customer - // and another account. - enum AccountLinkStatus { - // 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 is removed/disabled. - REMOVED = 3; - - // The link to the other account has been requested. A user on the other - // account may now approve the link by setting the status to ENABLED. - REQUESTED = 4; - - // This link has been requested by a user on the other account. It may be - // approved by a user on this account by setting the status to ENABLED. - PENDING_APPROVAL = 5; - - // The link is rejected by the approver. - REJECTED = 6; - - // The link is revoked by the user who requested the link. - REVOKED = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_customizer_placeholder_field.proto b/google/ads/googleads/v7/enums/ad_customizer_placeholder_field.proto deleted file mode 100644 index 241d15900..000000000 --- a/google/ads/googleads/v7/enums/ad_customizer_placeholder_field.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdCustomizerPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Ad Customizer placeholder fields. - -// Values for Ad Customizer placeholder fields. -message AdCustomizerPlaceholderFieldEnum { - // Possible values for Ad Customizers placeholder fields. - enum AdCustomizerPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: INT64. Integer value to be inserted. - INTEGER = 2; - - // Data Type: STRING. Price value to be inserted. - PRICE = 3; - - // Data Type: DATE_TIME. Date value to be inserted. - DATE = 4; - - // Data Type: STRING. String value to be inserted. - STRING = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_destination_type.proto b/google/ads/googleads/v7/enums/ad_destination_type.proto deleted file mode 100644 index baca7bc5b..000000000 --- a/google/ads/googleads/v7/enums/ad_destination_type.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdDestinationTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad destination types. - -// Container for enumeration of Google Ads destination types. -message AdDestinationTypeEnum { - // Enumerates Google Ads destination types - enum AdDestinationType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Ads that don't intend to drive users off from ads to other destinations - NOT_APPLICABLE = 2; - - // Website - WEBSITE = 3; - - // App Deep Link - APP_DEEP_LINK = 4; - - // iOS App Store or Play Store - APP_STORE = 5; - - // Call Dialer - PHONE_CALL = 6; - - // Map App - MAP_DIRECTIONS = 7; - - // Location Dedicated Page - LOCATION_LISTING = 8; - - // Text Message - MESSAGE = 9; - - // Lead Generation Form - LEAD_FORM = 10; - - // YouTube - YOUTUBE = 11; - - // Ad Destination for Conversions with keys unknown - UNMODELED_FOR_CONVERSIONS = 12; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_group_ad_rotation_mode.proto b/google/ads/googleads/v7/enums/ad_group_ad_rotation_mode.proto deleted file mode 100644 index 74b96dca5..000000000 --- a/google/ads/googleads/v7/enums/ad_group_ad_rotation_mode.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdRotationModeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad group ad rotation mode. - -// Container for enum describing possible ad rotation modes of ads within an -// ad group. -message AdGroupAdRotationModeEnum { - // The possible ad rotation modes of an ad group. - enum AdGroupAdRotationMode { - // The ad rotation mode has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Optimize ad group ads based on clicks or conversions. - OPTIMIZE = 2; - - // Rotate evenly forever. - ROTATE_FOREVER = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_group_ad_status.proto b/google/ads/googleads/v7/enums/ad_group_ad_status.proto deleted file mode 100644 index dcd862307..000000000 --- a/google/ads/googleads/v7/enums/ad_group_ad_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad group status. - -// Container for enum describing possible statuses of an AdGroupAd. -message AdGroupAdStatusEnum { - // The possible statuses of an AdGroupAd. - enum AdGroupAdStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The ad group ad is enabled. - ENABLED = 2; - - // The ad group ad is paused. - PAUSED = 3; - - // The ad group ad is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_group_criterion_approval_status.proto b/google/ads/googleads/v7/enums/ad_group_criterion_approval_status.proto deleted file mode 100644 index 0ae40a39e..000000000 --- a/google/ads/googleads/v7/enums/ad_group_criterion_approval_status.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing approval status for the criterion. - -// Container for enum describing possible AdGroupCriterion approval statuses. -message AdGroupCriterionApprovalStatusEnum { - // Enumerates AdGroupCriterion approval statuses. - enum AdGroupCriterionApprovalStatus { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Approved. - APPROVED = 2; - - // Disapproved. - DISAPPROVED = 3; - - // Pending Review. - PENDING_REVIEW = 4; - - // Under review. - UNDER_REVIEW = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_group_criterion_status.proto b/google/ads/googleads/v7/enums/ad_group_criterion_status.proto deleted file mode 100644 index 6cdd4b9ea..000000000 --- a/google/ads/googleads/v7/enums/ad_group_criterion_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing AdGroupCriterion statuses. - -// Message describing AdGroupCriterion statuses. -message AdGroupCriterionStatusEnum { - // The possible statuses of an AdGroupCriterion. - enum AdGroupCriterionStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The ad group criterion is enabled. - ENABLED = 2; - - // The ad group criterion is paused. - PAUSED = 3; - - // The ad group criterion is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_group_status.proto b/google/ads/googleads/v7/enums/ad_group_status.proto deleted file mode 100644 index 8de106543..000000000 --- a/google/ads/googleads/v7/enums/ad_group_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad group status. - -// Container for enum describing possible statuses of an ad group. -message AdGroupStatusEnum { - // The possible statuses of an ad group. - enum AdGroupStatus { - // The status has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The ad group is enabled. - ENABLED = 2; - - // The ad group is paused. - PAUSED = 3; - - // The ad group is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_group_type.proto b/google/ads/googleads/v7/enums/ad_group_type.proto deleted file mode 100644 index 6dfd3b901..000000000 --- a/google/ads/googleads/v7/enums/ad_group_type.proto +++ /dev/null @@ -1,93 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad group types. - -// Defines types of an ad group, specific to a particular campaign channel -// type. This type drives validations that restrict which entities can be -// added to the ad group. -message AdGroupTypeEnum { - // Enum listing the possible types of an ad group. - enum AdGroupType { - // The type has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The default ad group type for Search campaigns. - SEARCH_STANDARD = 2; - - // The default ad group type for Display campaigns. - DISPLAY_STANDARD = 3; - - // The ad group type for Shopping campaigns serving standard product ads. - SHOPPING_PRODUCT_ADS = 4; - - // The default ad group type for Hotel campaigns. - HOTEL_ADS = 6; - - // The type for ad groups in Smart Shopping campaigns. - SHOPPING_SMART_ADS = 7; - - // Short unskippable in-stream video ads. - VIDEO_BUMPER = 8; - - // TrueView (skippable) in-stream video ads. - VIDEO_TRUE_VIEW_IN_STREAM = 9; - - // TrueView in-display video ads. - VIDEO_TRUE_VIEW_IN_DISPLAY = 10; - - // Unskippable in-stream video ads. - VIDEO_NON_SKIPPABLE_IN_STREAM = 11; - - // Outstream video ads. - VIDEO_OUTSTREAM = 12; - - // Ad group type for Dynamic Search Ads ad groups. - SEARCH_DYNAMIC_ADS = 13; - - // The type for ad groups in Shopping Comparison Listing campaigns. - SHOPPING_COMPARISON_LISTING_ADS = 14; - - // The ad group type for Promoted Hotel ad groups. - PROMOTED_HOTEL_ADS = 15; - - // Video responsive ad groups. - VIDEO_RESPONSIVE = 16; - - // Video efficient reach ad groups. - VIDEO_EFFICIENT_REACH = 17; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_network_type.proto b/google/ads/googleads/v7/enums/ad_network_type.proto deleted file mode 100644 index a2784f997..000000000 --- a/google/ads/googleads/v7/enums/ad_network_type.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdNetworkTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad network types. - -// Container for enumeration of Google Ads network types. -message AdNetworkTypeEnum { - // Enumerates Google Ads network types. - enum AdNetworkType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Google search. - SEARCH = 2; - - // Search partners. - SEARCH_PARTNERS = 3; - - // Display Network. - CONTENT = 4; - - // YouTube Search. - YOUTUBE_SEARCH = 5; - - // YouTube Videos - YOUTUBE_WATCH = 6; - - // Cross-network. - MIXED = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_serving_optimization_status.proto b/google/ads/googleads/v7/enums/ad_serving_optimization_status.proto deleted file mode 100644 index 90db59794..000000000 --- a/google/ads/googleads/v7/enums/ad_serving_optimization_status.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdServingOptimizationStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad serving statuses. - -// Possible ad serving statuses of a campaign. -message AdServingOptimizationStatusEnum { - // Enum describing possible serving statuses. - enum AdServingOptimizationStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Ad serving is optimized based on CTR for the campaign. - OPTIMIZE = 2; - - // Ad serving is optimized based on CTR * Conversion for the campaign. If - // the campaign is not in the conversion optimizer bidding strategy, it will - // default to OPTIMIZED. - CONVERSION_OPTIMIZE = 3; - - // Ads are rotated evenly for 90 days, then optimized for clicks. - ROTATE = 4; - - // Show lower performing ads more evenly with higher performing ads, and do - // not optimize. - ROTATE_INDEFINITELY = 5; - - // Ad serving optimization status is not available. - UNAVAILABLE = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_strength.proto b/google/ads/googleads/v7/enums/ad_strength.proto deleted file mode 100644 index 6d5b7f59e..000000000 --- a/google/ads/googleads/v7/enums/ad_strength.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdStrengthProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad strengths. - -// Container for enum describing possible ad strengths. -message AdStrengthEnum { - // Enum listing the possible ad strengths. - enum AdStrength { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The ad strength is currently pending. - PENDING = 2; - - // No ads could be generated. - NO_ADS = 3; - - // Poor strength. - POOR = 4; - - // Average strength. - AVERAGE = 5; - - // Good strength. - GOOD = 6; - - // Excellent strength. - EXCELLENT = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/ad_type.proto b/google/ads/googleads/v7/enums/ad_type.proto deleted file mode 100644 index 286fece27..000000000 --- a/google/ads/googleads/v7/enums/ad_type.proto +++ /dev/null @@ -1,125 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the ad type. - -// Container for enum describing possible types of an ad. -message AdTypeEnum { - // The possible types of an ad. - enum AdType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The ad is a text ad. - TEXT_AD = 2; - - // The ad is an expanded text ad. - EXPANDED_TEXT_AD = 3; - - // The ad is a call only ad. - CALL_ONLY_AD = 6; - - // The ad is an expanded dynamic search ad. - EXPANDED_DYNAMIC_SEARCH_AD = 7; - - // The ad is a hotel ad. - HOTEL_AD = 8; - - // The ad is a Smart Shopping ad. - SHOPPING_SMART_AD = 9; - - // The ad is a standard Shopping ad. - SHOPPING_PRODUCT_AD = 10; - - // The ad is a video ad. - VIDEO_AD = 12; - - // This ad is a Gmail ad. - GMAIL_AD = 13; - - // This ad is an Image ad. - IMAGE_AD = 14; - - // The ad is a responsive search ad. - RESPONSIVE_SEARCH_AD = 15; - - // The ad is a legacy responsive display ad. - LEGACY_RESPONSIVE_DISPLAY_AD = 16; - - // The ad is an app ad. - APP_AD = 17; - - // The ad is a legacy app install ad. - LEGACY_APP_INSTALL_AD = 18; - - // The ad is a responsive display ad. - RESPONSIVE_DISPLAY_AD = 19; - - // The ad is a local ad. - LOCAL_AD = 20; - - // The ad is a display upload ad with the HTML5_UPLOAD_AD product type. - HTML5_UPLOAD_AD = 21; - - // The ad is a display upload ad with one of the DYNAMIC_HTML5_* product - // types. - DYNAMIC_HTML5_AD = 22; - - // The ad is an app engagement ad. - APP_ENGAGEMENT_AD = 23; - - // The ad is a Shopping Comparison Listing ad. - SHOPPING_COMPARISON_LISTING_AD = 24; - - // Video bumper ad. - VIDEO_BUMPER_AD = 25; - - // Video non-skippable in-stream ad. - VIDEO_NON_SKIPPABLE_IN_STREAM_AD = 26; - - // Video outstream ad. - VIDEO_OUTSTREAM_AD = 27; - - // Video TrueView in-display ad. - VIDEO_TRUEVIEW_DISCOVERY_AD = 28; - - // Video TrueView in-stream ad. - VIDEO_TRUEVIEW_IN_STREAM_AD = 29; - - // Video responsive ad. - VIDEO_RESPONSIVE_AD = 30; - } - - -} diff --git a/google/ads/googleads/v7/enums/advertising_channel_sub_type.proto b/google/ads/googleads/v7/enums/advertising_channel_sub_type.proto deleted file mode 100644 index ff9be6a31..000000000 --- a/google/ads/googleads/v7/enums/advertising_channel_sub_type.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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdvertisingChannelSubTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing advertising channel subtypes. - -// An immutable specialization of an Advertising Channel. -message AdvertisingChannelSubTypeEnum { - // Enum describing the different channel subtypes. - enum AdvertisingChannelSubType { - // Not specified. - UNSPECIFIED = 0; - - // Used as a return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile app campaigns for Search. - SEARCH_MOBILE_APP = 2; - - // Mobile app campaigns for Display. - DISPLAY_MOBILE_APP = 3; - - // AdWords express campaigns for search. - SEARCH_EXPRESS = 4; - - // AdWords Express campaigns for display. - DISPLAY_EXPRESS = 5; - - // Smart Shopping campaigns. - SHOPPING_SMART_ADS = 6; - - // Gmail Ad campaigns. - DISPLAY_GMAIL_AD = 7; - - // Smart display campaigns. - DISPLAY_SMART_CAMPAIGN = 8; - - // Video Outstream campaigns. - VIDEO_OUTSTREAM = 9; - - // Video TrueView for Action campaigns. - VIDEO_ACTION = 10; - - // Video campaigns with non-skippable video ads. - VIDEO_NON_SKIPPABLE = 11; - - // App Campaign that allows you to easily promote your Android or iOS app - // across Google's top properties including Search, Play, YouTube, and the - // Google Display Network. - APP_CAMPAIGN = 12; - - // App Campaign for engagement, focused on driving re-engagement with the - // app across several of Google’s top properties including Search, YouTube, - // and the Google Display Network. - APP_CAMPAIGN_FOR_ENGAGEMENT = 13; - - // Campaigns specialized for local advertising. - LOCAL_CAMPAIGN = 14; - - // Shopping Comparison Listing campaigns. - SHOPPING_COMPARISON_LISTING_ADS = 15; - - // Standard Smart campaigns. - SMART_CAMPAIGN = 16; - - // Video campaigns with sequence video ads. - VIDEO_SEQUENCE = 17; - } - - -} diff --git a/google/ads/googleads/v7/enums/advertising_channel_type.proto b/google/ads/googleads/v7/enums/advertising_channel_type.proto deleted file mode 100644 index b96474093..000000000 --- a/google/ads/googleads/v7/enums/advertising_channel_type.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdvertisingChannelTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing advertising channel types - -// The channel type a campaign may target to serve on. -message AdvertisingChannelTypeEnum { - // Enum describing the various advertising channel types. - enum AdvertisingChannelType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Search Network. Includes display bundled, and Search+ campaigns. - SEARCH = 2; - - // Google Display Network only. - DISPLAY = 3; - - // Shopping campaigns serve on the shopping property - // and on google.com search results. - SHOPPING = 4; - - // Hotel Ads campaigns. - HOTEL = 5; - - // Video campaigns. - VIDEO = 6; - - // App Campaigns, and App Campaigns for Engagement, that run - // across multiple channels. - MULTI_CHANNEL = 7; - - // Local ads campaigns. - LOCAL = 8; - - // Smart campaigns. - SMART = 9; - } - - -} diff --git a/google/ads/googleads/v7/enums/affiliate_location_feed_relationship_type.proto b/google/ads/googleads/v7/enums/affiliate_location_feed_relationship_type.proto deleted file mode 100644 index fbe5a2acc..000000000 --- a/google/ads/googleads/v7/enums/affiliate_location_feed_relationship_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AffiliateLocationFeedRelationshipTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing relation type for affiliate location feeds. - -// Container for enum describing possible values for a relationship type for -// an affiliate location feed. -message AffiliateLocationFeedRelationshipTypeEnum { - // Possible values for a relationship type for an affiliate location feed. - enum AffiliateLocationFeedRelationshipType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // General retailer relationship. - GENERAL_RETAILER = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/affiliate_location_placeholder_field.proto b/google/ads/googleads/v7/enums/affiliate_location_placeholder_field.proto deleted file mode 100644 index 861a49be3..000000000 --- a/google/ads/googleads/v7/enums/affiliate_location_placeholder_field.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AffiliateLocationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Affiliate Location placeholder fields. - -// Values for Affiliate Location placeholder fields. -message AffiliateLocationPlaceholderFieldEnum { - // Possible values for Affiliate Location placeholder fields. - enum AffiliateLocationPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The name of the business. - BUSINESS_NAME = 2; - - // Data Type: STRING. Line 1 of the business address. - ADDRESS_LINE_1 = 3; - - // Data Type: STRING. Line 2 of the business address. - ADDRESS_LINE_2 = 4; - - // Data Type: STRING. City of the business address. - CITY = 5; - - // Data Type: STRING. Province of the business address. - PROVINCE = 6; - - // Data Type: STRING. Postal code of the business address. - POSTAL_CODE = 7; - - // Data Type: STRING. Country code of the business address. - COUNTRY_CODE = 8; - - // Data Type: STRING. Phone number of the business. - PHONE_NUMBER = 9; - - // Data Type: STRING. Language code of the business. - LANGUAGE_CODE = 10; - - // Data Type: INT64. ID of the chain. - CHAIN_ID = 11; - - // Data Type: STRING. Name of the chain. - CHAIN_NAME = 12; - } - - -} diff --git a/google/ads/googleads/v7/enums/age_range_type.proto b/google/ads/googleads/v7/enums/age_range_type.proto deleted file mode 100644 index 9805e4aad..000000000 --- a/google/ads/googleads/v7/enums/age_range_type.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AgeRangeTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing age range types. - -// Container for enum describing the type of demographic age ranges. -message AgeRangeTypeEnum { - // The type of demographic age ranges (e.g. between 18 and 24 years old). - enum AgeRangeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Between 18 and 24 years old. - AGE_RANGE_18_24 = 503001; - - // Between 25 and 34 years old. - AGE_RANGE_25_34 = 503002; - - // Between 35 and 44 years old. - AGE_RANGE_35_44 = 503003; - - // Between 45 and 54 years old. - AGE_RANGE_45_54 = 503004; - - // Between 55 and 64 years old. - AGE_RANGE_55_64 = 503005; - - // 65 years old and beyond. - AGE_RANGE_65_UP = 503006; - - // Undetermined age range. - AGE_RANGE_UNDETERMINED = 503999; - } - - -} diff --git a/google/ads/googleads/v7/enums/app_campaign_app_store.proto b/google/ads/googleads/v7/enums/app_campaign_app_store.proto deleted file mode 100644 index c4e6adc28..000000000 --- a/google/ads/googleads/v7/enums/app_campaign_app_store.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppCampaignAppStoreProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing App Campaign app store. - -// The application store that distributes mobile applications. -message AppCampaignAppStoreEnum { - // Enum describing app campaign app store. - enum AppCampaignAppStore { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Apple app store. - APPLE_APP_STORE = 2; - - // Google play. - GOOGLE_APP_STORE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/app_campaign_bidding_strategy_goal_type.proto b/google/ads/googleads/v7/enums/app_campaign_bidding_strategy_goal_type.proto deleted file mode 100644 index af1e4a1f7..000000000 --- a/google/ads/googleads/v7/enums/app_campaign_bidding_strategy_goal_type.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppCampaignBiddingStrategyGoalTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing App Campaign bidding strategy goal types. - -// Container for enum describing goal towards which the bidding strategy of an -// app campaign should optimize for. -message AppCampaignBiddingStrategyGoalTypeEnum { - // Goal type of App campaign BiddingStrategy. - enum AppCampaignBiddingStrategyGoalType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Aim to maximize the number of app installs. The cpa bid is the - // target cost per install. - OPTIMIZE_INSTALLS_TARGET_INSTALL_COST = 2; - - // Aim to maximize the long term number of selected in-app conversions from - // app installs. The cpa bid is the target cost per install. - OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST = 3; - - // Aim to maximize the long term number of selected in-app conversions from - // app installs. The cpa bid is the target cost per in-app conversion. Note - // that the actual cpa may seem higher than the target cpa at first, since - // the long term conversions haven’t happened yet. - OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST = 4; - - // Aim to maximize all conversions' value, i.e. install + selected in-app - // conversions while achieving or exceeding target return on advertising - // spend. - OPTIMIZE_RETURN_ON_ADVERTISING_SPEND = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/app_payment_model_type.proto b/google/ads/googleads/v7/enums/app_payment_model_type.proto deleted file mode 100644 index b2ea72de4..000000000 --- a/google/ads/googleads/v7/enums/app_payment_model_type.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppPaymentModelTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing criteria types. - -// Represents a criterion for targeting paid apps. -message AppPaymentModelTypeEnum { - // Enum describing possible app payment models. - enum AppPaymentModelType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Represents paid-for apps. - PAID = 30; - } - - -} diff --git a/google/ads/googleads/v7/enums/app_placeholder_field.proto b/google/ads/googleads/v7/enums/app_placeholder_field.proto deleted file mode 100644 index 9d371358b..000000000 --- a/google/ads/googleads/v7/enums/app_placeholder_field.proto +++ /dev/null @@ -1,75 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing App placeholder fields. - -// Values for App placeholder fields. -message AppPlaceholderFieldEnum { - // Possible values for App placeholder fields. - enum AppPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: INT64. The application store that the target application - // belongs to. Valid values are: 1 = Apple iTunes Store; 2 = Google Play - // Store. - STORE = 2; - - // Data Type: STRING. The store-specific ID for the target application. - ID = 3; - - // Data Type: STRING. The visible text displayed when the link is rendered - // in an ad. - LINK_TEXT = 4; - - // Data Type: STRING. The destination URL of the in-app link. - URL = 5; - - // Data Type: URL_LIST. Final URLs for the in-app link when using Upgraded - // URLs. - FINAL_URLS = 6; - - // Data Type: URL_LIST. Final Mobile URLs for the in-app link when using - // Upgraded URLs. - FINAL_MOBILE_URLS = 7; - - // Data Type: URL. Tracking template for the in-app link when using Upgraded - // URLs. - TRACKING_URL = 8; - - // Data Type: STRING. Final URL suffix for the in-app link when using - // parallel tracking. - FINAL_URL_SUFFIX = 9; - } - - -} diff --git a/google/ads/googleads/v7/enums/app_store.proto b/google/ads/googleads/v7/enums/app_store.proto deleted file mode 100644 index 2eb8f7452..000000000 --- a/google/ads/googleads/v7/enums/app_store.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppStoreProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing app store types for an app extension. - -// Container for enum describing app store type in an app extension. -message AppStoreEnum { - // App store type in an app extension. - enum AppStore { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Apple iTunes. - APPLE_ITUNES = 2; - - // Google Play. - GOOGLE_PLAY = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/app_url_operating_system_type.proto b/google/ads/googleads/v7/enums/app_url_operating_system_type.proto deleted file mode 100644 index c7c7b96c3..000000000 --- a/google/ads/googleads/v7/enums/app_url_operating_system_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppUrlOperatingSystemTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing operating system for a deeplink app URL. - -// The possible OS types for a deeplink AppUrl. -message AppUrlOperatingSystemTypeEnum { - // Operating System - enum AppUrlOperatingSystemType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The Apple IOS operating system. - IOS = 2; - - // The Android operating system. - ANDROID = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/asset_field_type.proto b/google/ads/googleads/v7/enums/asset_field_type.proto deleted file mode 100644 index be0cdbdcb..000000000 --- a/google/ads/googleads/v7/enums/asset_field_type.proto +++ /dev/null @@ -1,81 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AssetFieldTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing asset type. - -// Container for enum describing the possible placements of an asset. -message AssetFieldTypeEnum { - // Enum describing the possible placements of an asset. - enum AssetFieldType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The asset is linked for use as a headline. - HEADLINE = 2; - - // The asset is linked for use as a description. - DESCRIPTION = 3; - - // The asset is linked for use as mandatory ad text. - MANDATORY_AD_TEXT = 4; - - // The asset is linked for use as a marketing image. - MARKETING_IMAGE = 5; - - // The asset is linked for use as a media bundle. - MEDIA_BUNDLE = 6; - - // The asset is linked for use as a YouTube video. - YOUTUBE_VIDEO = 7; - - // The asset is linked to indicate that a hotels campaign is "Book on - // Google" enabled. - BOOK_ON_GOOGLE = 8; - - // The asset is linked for use as a Lead Form extension. - LEAD_FORM = 9; - - // The asset is linked for use as a Promotion extension. - PROMOTION = 10; - - // The asset is linked for use as a Callout extension. - CALLOUT = 11; - - // The asset is linked for use as a Structured Snippet extension. - STRUCTURED_SNIPPET = 12; - - // The asset is linked for use as a Sitelink extension. - SITELINK = 13; - } - - -} diff --git a/google/ads/googleads/v7/enums/asset_link_status.proto b/google/ads/googleads/v7/enums/asset_link_status.proto deleted file mode 100644 index 4e683e5d4..000000000 --- a/google/ads/googleads/v7/enums/asset_link_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AssetLinkStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing status of an asset link. - -// Container for enum describing possible statuses of an asset link. -message AssetLinkStatusEnum { - // Enum describing statuses of an asset link. - enum AssetLinkStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Asset link is enabled. - ENABLED = 2; - - // Asset link has been removed. - REMOVED = 3; - - // Asset link is paused. - PAUSED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/asset_performance_label.proto b/google/ads/googleads/v7/enums/asset_performance_label.proto deleted file mode 100644 index ceee7e742..000000000 --- a/google/ads/googleads/v7/enums/asset_performance_label.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AssetPerformanceLabelProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the performance label of an asset. - -// Container for enum describing the performance label of an asset. -message AssetPerformanceLabelEnum { - // Enum describing the possible performance labels of an asset, usually - // computed in the context of a linkage. - enum AssetPerformanceLabel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // This asset does not yet have any performance informantion. This may be - // because it is still under review. - PENDING = 2; - - // The asset has started getting impressions but the stats are not - // statistically significant enough to get an asset performance label. - LEARNING = 3; - - // Worst performing assets. - LOW = 4; - - // Good performing assets. - GOOD = 5; - - // Best performing assets. - BEST = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/asset_type.proto b/google/ads/googleads/v7/enums/asset_type.proto deleted file mode 100644 index 0aa413779..000000000 --- a/google/ads/googleads/v7/enums/asset_type.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AssetTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing asset type. - -// Container for enum describing the types of asset. -message AssetTypeEnum { - // Enum describing possible types of asset. - enum AssetType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // YouTube video asset. - YOUTUBE_VIDEO = 2; - - // Media bundle asset. - MEDIA_BUNDLE = 3; - - // Image asset. - IMAGE = 4; - - // Text asset. - TEXT = 5; - - // Lead form asset. - LEAD_FORM = 6; - - // Book on Google asset. - BOOK_ON_GOOGLE = 7; - - // Promotion asset. - PROMOTION = 8; - - // Callout asset. - CALLOUT = 9; - - // Structured Snippet asset. - STRUCTURED_SNIPPET = 10; - - // Sitelink asset. - SITELINK = 11; - } - - -} diff --git a/google/ads/googleads/v7/enums/attribution_model.proto b/google/ads/googleads/v7/enums/attribution_model.proto deleted file mode 100644 index 4dee755e2..000000000 --- a/google/ads/googleads/v7/enums/attribution_model.proto +++ /dev/null @@ -1,72 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AttributionModelProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum representing the attribution model that describes how to -// distribute credit for a particular conversion across potentially many prior -// interactions. -message AttributionModelEnum { - // The attribution model that describes how to distribute credit for a - // particular conversion across potentially many prior interactions. - enum AttributionModel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Uses external attribution. - EXTERNAL = 100; - - // Attributes all credit for a conversion to its last click. - GOOGLE_ADS_LAST_CLICK = 101; - - // Attributes all credit for a conversion to its first click using Google - // Search attribution. - GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK = 102; - - // Attributes credit for a conversion equally across all of its clicks using - // Google Search attribution. - GOOGLE_SEARCH_ATTRIBUTION_LINEAR = 103; - - // Attributes exponentially more credit for a conversion to its more recent - // clicks using Google Search attribution (half-life is 1 week). - GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY = 104; - - // Attributes 40% of the credit for a conversion to its first and last - // clicks. Remaining 20% is evenly distributed across all other clicks. This - // uses Google Search attribution. - GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED = 105; - - // Flexible model that uses machine learning to determine the appropriate - // distribution of credit among clicks using Google Search attribution. - GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN = 106; - } - - -} diff --git a/google/ads/googleads/v7/enums/batch_job_status.proto b/google/ads/googleads/v7/enums/batch_job_status.proto deleted file mode 100644 index 9331b738e..000000000 --- a/google/ads/googleads/v7/enums/batch_job_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BatchJobStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing batch job statuses. - -// Container for enum describing possible batch job statuses. -message BatchJobStatusEnum { - // The batch job statuses. - enum BatchJobStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The job is not currently running. - PENDING = 2; - - // The job is running. - RUNNING = 3; - - // The job is done. - DONE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/bid_modifier_source.proto b/google/ads/googleads/v7/enums/bid_modifier_source.proto deleted file mode 100644 index 236b4729f..000000000 --- a/google/ads/googleads/v7/enums/bid_modifier_source.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BidModifierSourceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing bid modifier source. - -// Container for enum describing possible bid modifier sources. -message BidModifierSourceEnum { - // Enum describing possible bid modifier sources. - enum BidModifierSource { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The bid modifier is specified at the campaign level, on the campaign - // level criterion. - CAMPAIGN = 2; - - // The bid modifier is specified (overridden) at the ad group level. - AD_GROUP = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/bidding_source.proto b/google/ads/googleads/v7/enums/bidding_source.proto deleted file mode 100644 index 2a2c6d798..000000000 --- a/google/ads/googleads/v7/enums/bidding_source.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BiddingSourceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing bidding sources. - -// Container for enum describing possible bidding sources. -message BiddingSourceEnum { - // Indicates where a bid or target is defined. For example, an ad group - // criterion may define a cpc bid directly, or it can inherit its cpc bid from - // the ad group. - enum BiddingSource { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Effective bid or target is inherited from campaign bidding strategy. - CAMPAIGN_BIDDING_STRATEGY = 5; - - // The bid or target is defined on the ad group. - AD_GROUP = 6; - - // The bid or target is defined on the ad group criterion. - AD_GROUP_CRITERION = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/bidding_strategy_status.proto b/google/ads/googleads/v7/enums/bidding_strategy_status.proto deleted file mode 100644 index 56a1d9ef9..000000000 --- a/google/ads/googleads/v7/enums/bidding_strategy_status.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing BiddingStrategy statuses. - -// Message describing BiddingStrategy statuses. -message BiddingStrategyStatusEnum { - // The possible statuses of a BiddingStrategy. - enum BiddingStrategyStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The bidding strategy is enabled. - ENABLED = 2; - - // The bidding strategy is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/bidding_strategy_type.proto b/google/ads/googleads/v7/enums/bidding_strategy_type.proto deleted file mode 100644 index c67ba8e23..000000000 --- a/google/ads/googleads/v7/enums/bidding_strategy_type.proto +++ /dev/null @@ -1,110 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing bidding schemes. - -// Container for enum describing possible bidding strategy types. -message BiddingStrategyTypeEnum { - // Enum describing possible bidding strategy types. - enum BiddingStrategyType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Commission is an automatic bidding strategy in which the advertiser pays - // a certain portion of the conversion value. - COMMISSION = 16; - - // Enhanced CPC is 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. - ENHANCED_CPC = 2; - - // Manual click based bidding where user pays per click. - MANUAL_CPC = 3; - - // Manual impression based bidding - // where user pays per thousand impressions. - MANUAL_CPM = 4; - - // A bidding strategy that pays a configurable amount per video view. - MANUAL_CPV = 13; - - // A bidding strategy that automatically maximizes number of conversions - // given a daily budget. - MAXIMIZE_CONVERSIONS = 10; - - // An automated bidding strategy that automatically sets bids to maximize - // revenue while spending your budget. - MAXIMIZE_CONVERSION_VALUE = 11; - - // Page-One Promoted bidding scheme, which sets max cpc bids to - // target impressions on page one or page one promoted slots on google.com. - // This enum value is deprecated. - PAGE_ONE_PROMOTED = 5; - - // Percent Cpc is bidding strategy where bids are a fraction of the - // advertised price for some good or service. - PERCENT_CPC = 12; - - // Target CPA is an automated bid strategy that sets bids - // to help get as many conversions as possible - // at the target cost-per-acquisition (CPA) you set. - TARGET_CPA = 6; - - // Target CPM is an automated bid strategy that sets bids to help get - // as many impressions as possible at the target cost per one thousand - // impressions (CPM) you set. - TARGET_CPM = 14; - - // 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). - TARGET_IMPRESSION_SHARE = 15; - - // Target Outrank Share is an automated bidding strategy that sets bids - // based on the target fraction of auctions where the advertiser - // should outrank a specific competitor. - // This enum value is deprecated. - TARGET_OUTRANK_SHARE = 7; - - // Target ROAS is an automated bidding strategy - // that helps you maximize revenue while averaging - // a specific target Return On Average Spend (ROAS). - TARGET_ROAS = 8; - - // Target Spend is an automated bid strategy that sets your bids - // to help get as many clicks as possible within your budget. - TARGET_SPEND = 9; - } - - -} diff --git a/google/ads/googleads/v7/enums/billing_setup_status.proto b/google/ads/googleads/v7/enums/billing_setup_status.proto deleted file mode 100644 index 8f0f5f1af..000000000 --- a/google/ads/googleads/v7/enums/billing_setup_status.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BillingSetupStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing BillingSetup statuses. - -// Message describing BillingSetup statuses. -message BillingSetupStatusEnum { - // The possible statuses of a BillingSetup. - enum BillingSetupStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The billing setup is pending approval. - PENDING = 2; - - // The billing setup has been approved but the corresponding first budget - // has not. This can only occur for billing setups configured for monthly - // invoicing. - APPROVED_HELD = 3; - - // The billing setup has been approved. - APPROVED = 4; - - // The billing setup was cancelled by the user prior to approval. - CANCELLED = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/brand_safety_suitability.proto b/google/ads/googleads/v7/enums/brand_safety_suitability.proto deleted file mode 100644 index 34d7a62a4..000000000 --- a/google/ads/googleads/v7/enums/brand_safety_suitability.proto +++ /dev/null @@ -1,73 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BrandSafetySuitabilityProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing brand safety suitability settings. - -// Container for enum with 3-Tier brand safety suitability control. -message BrandSafetySuitabilityEnum { - // 3-Tier brand safety suitability control. - enum BrandSafetySuitability { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // This option lets you show ads across all inventory on YouTube and video - // partners that meet our standards for monetization. This option may be an - // appropriate choice for brands that want maximum access to the full - // breadth of videos eligible for ads, including, for example, videos that - // have strong profanity in the context of comedy or a documentary, or - // excessive violence as featured in video games. - EXPANDED_INVENTORY = 2; - - // This option lets you show ads across a wide range of content that's - // appropriate for most brands, such as popular music videos, documentaries, - // and movie trailers. The content you can show ads on is based on YouTube's - // advertiser-friendly content guidelines that take into account, for - // example, the strength or frequency of profanity, or the appropriateness - // of subject matter like sensitive events. Ads won't show, for example, on - // content with repeated strong profanity, strong sexual content, or graphic - // violence. - STANDARD_INVENTORY = 3; - - // This option lets you show ads on a reduced range of content that's - // appropriate for brands with particularly strict guidelines around - // inappropriate language and sexual suggestiveness; above and beyond what - // YouTube's advertiser-friendly content guidelines address. The videos - // accessible in this sensitive category meet heightened requirements, - // especially for inappropriate language and sexual suggestiveness. For - // example, your ads will be excluded from showing on some of YouTube's most - // popular music videos and other pop culture content across YouTube and - // Google video partners. - LIMITED_INVENTORY = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/budget_campaign_association_status.proto b/google/ads/googleads/v7/enums/budget_campaign_association_status.proto deleted file mode 100644 index a7cf05884..000000000 --- a/google/ads/googleads/v7/enums/budget_campaign_association_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetCampaignAssociationStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Budget and Campaign association status. - -// Message describing the status of the association between the Budget and the -// Campaign. -message BudgetCampaignAssociationStatusEnum { - // Possible statuses of the association between the Budget and the Campaign. - enum BudgetCampaignAssociationStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The campaign is currently using the budget. - ENABLED = 2; - - // The campaign is no longer using the budget. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/budget_delivery_method.proto b/google/ads/googleads/v7/enums/budget_delivery_method.proto deleted file mode 100644 index 328fc4ab6..000000000 --- a/google/ads/googleads/v7/enums/budget_delivery_method.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetDeliveryMethodProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Budget delivery methods. - -// Message describing Budget delivery methods. A delivery method determines the -// rate at which the Budget is spent. -message BudgetDeliveryMethodEnum { - // Possible delivery methods of a Budget. - enum BudgetDeliveryMethod { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The budget server will throttle serving evenly across - // the entire time period. - STANDARD = 2; - - // The budget server will not throttle serving, - // and ads will serve as fast as possible. - ACCELERATED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/budget_period.proto b/google/ads/googleads/v7/enums/budget_period.proto deleted file mode 100644 index ea694a9d0..000000000 --- a/google/ads/googleads/v7/enums/budget_period.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetPeriodProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Budget delivery methods. - -// Message describing Budget period. -message BudgetPeriodEnum { - // Possible period of a Budget. - enum BudgetPeriod { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Daily budget. - DAILY = 2; - - // Custom budget, added back in V5. - // Custom bugdet 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/google/ads/googleads/v7/enums/budget_status.proto b/google/ads/googleads/v7/enums/budget_status.proto deleted file mode 100644 index 604dc6081..000000000 --- a/google/ads/googleads/v7/enums/budget_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Budget statuses - -// Message describing a Budget status -message BudgetStatusEnum { - // Possible statuses of a Budget. - enum BudgetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Budget is enabled. - ENABLED = 2; - - // Budget is removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/budget_type.proto b/google/ads/googleads/v7/enums/budget_type.proto deleted file mode 100644 index 8869f5320..000000000 --- a/google/ads/googleads/v7/enums/budget_type.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Budget types. - -// Describes Budget types. -message BudgetTypeEnum { - // Possible Budget types. - enum BudgetType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Budget type for standard Google Ads usage. - // Caps daily spend at two times the specified budget amount. - // Full details: https://support.google.com/google-ads/answer/6385083 - STANDARD = 2; - - // Budget type for Hotels Ads commission program. - // Full details: https://support.google.com/google-ads/answer/9243945 - // - // This type is only supported by campaigns with - // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION and - // PaymentMode.CONVERSION_VALUE. - HOTEL_ADS_COMMISSION = 3; - - // Budget type with a fixed cost-per-acquisition (conversion). - // Full details: https://support.google.com/google-ads/answer/7528254 - // - // This type is only supported by campaigns with - // AdvertisingChannelType.DISPLAY (excluding - // AdvertisingChannelSubType.DISPLAY_GMAIL), - // BiddingStrategyType.TARGET_CPA and PaymentMode.CONVERSIONS. - FIXED_CPA = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/call_conversion_reporting_state.proto b/google/ads/googleads/v7/enums/call_conversion_reporting_state.proto deleted file mode 100644 index d4487355e..000000000 --- a/google/ads/googleads/v7/enums/call_conversion_reporting_state.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CallConversionReportingStateProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing call conversion reporting state. - -// Container for enum describing possible data types for call conversion -// reporting state. -message CallConversionReportingStateEnum { - // Possible data types for a call conversion action state. - enum CallConversionReportingState { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Call conversion action is disabled. - DISABLED = 2; - - // Call conversion action will use call conversion type set at the - // account level. - USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION = 3; - - // Call conversion action will use call conversion type set at the resource - // (call only ads/call extensions) level. - USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/call_placeholder_field.proto b/google/ads/googleads/v7/enums/call_placeholder_field.proto deleted file mode 100644 index 999b912cf..000000000 --- a/google/ads/googleads/v7/enums/call_placeholder_field.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CallPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Call placeholder fields. - -// Values for Call placeholder fields. -message CallPlaceholderFieldEnum { - // Possible values for Call placeholder fields. - enum CallPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The advertiser's phone number to append to the ad. - PHONE_NUMBER = 2; - - // Data Type: STRING. Uppercase two-letter country code of the advertiser's - // phone number. - COUNTRY_CODE = 3; - - // Data Type: BOOLEAN. Indicates whether call tracking is enabled. Default: - // true. - TRACKED = 4; - - // Data Type: INT64. The ID of an AdCallMetricsConversion object. This - // object contains the phoneCallDurationfield which is the minimum duration - // (in seconds) of a call to be considered a conversion. - CONVERSION_TYPE_ID = 5; - - // Data Type: STRING. Indicates whether this call extension uses its own - // call conversion setting or follows the account level setting. - // Valid values are: USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION and - // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION. - CONVERSION_REPORTING_STATE = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/call_tracking_display_location.proto b/google/ads/googleads/v7/enums/call_tracking_display_location.proto deleted file mode 100644 index 18a6e8b17..000000000 --- a/google/ads/googleads/v7/enums/call_tracking_display_location.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CallTrackingDisplayLocationProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing call tracking display location. - -// Container for enum describing possible call tracking display locations. -message CallTrackingDisplayLocationEnum { - // Possible call tracking display locations. - enum CallTrackingDisplayLocation { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The phone call placed from the ad. - AD = 2; - - // The phone call placed from the landing page ad points to. - LANDING_PAGE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/call_type.proto b/google/ads/googleads/v7/enums/call_type.proto deleted file mode 100644 index 100efa5f1..000000000 --- a/google/ads/googleads/v7/enums/call_type.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CallTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing call types. - -// Container for enum describing possible types of property from where the call -// was made. -message CallTypeEnum { - // Possible types of property from where the call was made. - enum CallType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The phone call was manually dialed. - MANUALLY_DIALED = 2; - - // The phone call was a mobile click-to-call. - HIGH_END_MOBILE_SEARCH = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/callout_placeholder_field.proto b/google/ads/googleads/v7/enums/callout_placeholder_field.proto deleted file mode 100644 index c27086b2f..000000000 --- a/google/ads/googleads/v7/enums/callout_placeholder_field.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CalloutPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Callout placeholder fields. - -// Values for Callout placeholder fields. -message CalloutPlaceholderFieldEnum { - // Possible values for Callout placeholder fields. - enum CalloutPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Callout text. - CALLOUT_TEXT = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/campaign_criterion_status.proto b/google/ads/googleads/v7/enums/campaign_criterion_status.proto deleted file mode 100644 index 85df1da94..000000000 --- a/google/ads/googleads/v7/enums/campaign_criterion_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing CampaignCriterion statuses. - -// Message describing CampaignCriterion statuses. -message CampaignCriterionStatusEnum { - // The possible statuses of a CampaignCriterion. - enum CampaignCriterionStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The campaign criterion is enabled. - ENABLED = 2; - - // The campaign criterion is paused. - PAUSED = 3; - - // The campaign criterion is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/campaign_draft_status.proto b/google/ads/googleads/v7/enums/campaign_draft_status.proto deleted file mode 100644 index 10d24c54e..000000000 --- a/google/ads/googleads/v7/enums/campaign_draft_status.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignDraftStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing campaign draft status. - -// Container for enum describing possible statuses of a campaign draft. -message CampaignDraftStatusEnum { - // Possible statuses of a campaign draft. - enum CampaignDraftStatus { - // The status has not been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Initial state of the draft, the advertiser can start adding changes with - // no effect on serving. - PROPOSED = 2; - - // The campaign draft is removed. - REMOVED = 3; - - // Advertiser requested to promote draft's changes back into the original - // campaign. Advertiser can poll the long running operation returned by - // the promote action to see the status of the promotion. - PROMOTING = 5; - - // The process to merge changes in the draft back to the original campaign - // has completed successfully. - PROMOTED = 4; - - // The promotion failed after it was partially applied. Promote cannot be - // attempted again safely, so the issue must be corrected in the original - // campaign. - PROMOTE_FAILED = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/campaign_experiment_status.proto b/google/ads/googleads/v7/enums/campaign_experiment_status.proto deleted file mode 100644 index 263b6fcee..000000000 --- a/google/ads/googleads/v7/enums/campaign_experiment_status.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing campaign experiment status. - -// Container for enum describing possible statuses of a campaign experiment. -message CampaignExperimentStatusEnum { - // Possible statuses of a campaign experiment. - enum CampaignExperimentStatus { - // The status has not been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The experiment campaign is being initialized. - INITIALIZING = 2; - - // Initialization of the experiment campaign failed. - INITIALIZATION_FAILED = 8; - - // The experiment campaign is fully initialized. The experiment is currently - // running, scheduled to run in the future or has ended based on its - // end date. An experiment with the status INITIALIZING will be updated to - // ENABLED when it is fully created. - ENABLED = 3; - - // The experiment campaign was graduated to a stand-alone - // campaign, existing independently of the experiment. - GRADUATED = 4; - - // The experiment is removed. - REMOVED = 5; - - // The experiment's changes are being applied to the original campaign. - // The long running operation returned by the promote method can be polled - // to see the status of the promotion. - PROMOTING = 6; - - // Promote of the experiment campaign failed. - PROMOTION_FAILED = 9; - - // The changes of the experiment are promoted to their original campaign. - PROMOTED = 7; - - // The experiment was ended manually. It did not end based on its end date. - ENDED_MANUALLY = 10; - } - - -} diff --git a/google/ads/googleads/v7/enums/campaign_experiment_traffic_split_type.proto b/google/ads/googleads/v7/enums/campaign_experiment_traffic_split_type.proto deleted file mode 100644 index 12ecf4747..000000000 --- a/google/ads/googleads/v7/enums/campaign_experiment_traffic_split_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentTrafficSplitTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing campaign experiment traffic split type. - -// Container for enum describing campaign experiment traffic split type. -message CampaignExperimentTrafficSplitTypeEnum { - // Enum of strategies for splitting traffic between base and experiment - // campaigns in campaign experiment. - enum CampaignExperimentTrafficSplitType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Traffic is randomly assigned to the base or experiment arm for each - // query, independent of previous assignments for the same user. - RANDOM_QUERY = 2; - - // Traffic is split using cookies to keep users in the same arm (base or - // experiment) of the experiment. - COOKIE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/campaign_experiment_type.proto b/google/ads/googleads/v7/enums/campaign_experiment_type.proto deleted file mode 100644 index 53189a71f..000000000 --- a/google/ads/googleads/v7/enums/campaign_experiment_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing campaign experiment type. - -// Container for enum describing campaign experiment type. -message CampaignExperimentTypeEnum { - // Indicates if this campaign is a normal campaign, - // a draft campaign, or an experiment campaign. - enum CampaignExperimentType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // This is a regular campaign. - BASE = 2; - - // This is a draft version of a campaign. - // It has some modifications from a base campaign, - // but it does not serve or accrue metrics. - DRAFT = 3; - - // This is an experiment version of a campaign. - // It has some modifications from a base campaign, - // and a percentage of traffic is being diverted - // from the BASE campaign to this experiment campaign. - EXPERIMENT = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/campaign_serving_status.proto b/google/ads/googleads/v7/enums/campaign_serving_status.proto deleted file mode 100644 index 91a6abd39..000000000 --- a/google/ads/googleads/v7/enums/campaign_serving_status.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignServingStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Campaign serving statuses. - -// Message describing Campaign serving statuses. -message CampaignServingStatusEnum { - // Possible serving statuses of a campaign. - enum CampaignServingStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Serving. - SERVING = 2; - - // None. - NONE = 3; - - // Ended. - ENDED = 4; - - // Pending. - PENDING = 5; - - // Suspended. - SUSPENDED = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/campaign_shared_set_status.proto b/google/ads/googleads/v7/enums/campaign_shared_set_status.proto deleted file mode 100644 index 02952bc4b..000000000 --- a/google/ads/googleads/v7/enums/campaign_shared_set_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSharedSetStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing campaign shared set statuses. - -// Container for enum describing types of campaign shared set statuses. -message CampaignSharedSetStatusEnum { - // Enum listing the possible campaign shared set statuses. - enum CampaignSharedSetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The campaign shared set is enabled. - ENABLED = 2; - - // The campaign shared set is removed and can no longer be used. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/campaign_status.proto b/google/ads/googleads/v7/enums/campaign_status.proto deleted file mode 100644 index 5e1a5539c..000000000 --- a/google/ads/googleads/v7/enums/campaign_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing campaign status. - -// Container for enum describing possible statuses of a campaign. -message CampaignStatusEnum { - // Possible statuses of a campaign. - enum CampaignStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Campaign is currently serving ads depending on budget information. - ENABLED = 2; - - // Campaign has been paused by the user. - PAUSED = 3; - - // Campaign has been removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/change_client_type.proto b/google/ads/googleads/v7/enums/change_client_type.proto deleted file mode 100644 index 3c4399749..000000000 --- a/google/ads/googleads/v7/enums/change_client_type.proto +++ /dev/null @@ -1,87 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ChangeClientTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the sources that the change event resource was -// made through. - -// Container for enum describing the sources that the change event resource -// was made through. -message ChangeClientTypeEnum { - // The source that the change_event resource was made through. - enum ChangeClientType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified client type - // unknown in this version. - UNKNOWN = 1; - - // Changes made through the "ads.google.com". - // For example, changes made through campaign management. - GOOGLE_ADS_WEB_CLIENT = 2; - - // Changes made through Google Ads automated rules. - GOOGLE_ADS_AUTOMATED_RULE = 3; - - // Changes made through Google Ads scripts. - GOOGLE_ADS_SCRIPTS = 4; - - // Changes made by Google Ads bulk upload. - GOOGLE_ADS_BULK_UPLOAD = 5; - - // Changes made by Google Ads API. - GOOGLE_ADS_API = 6; - - // Changes made by Google Ads Editor. - GOOGLE_ADS_EDITOR = 7; - - // Changes made by Google Ads mobile app. - GOOGLE_ADS_MOBILE_APP = 8; - - // Changes made through Google Ads recommendations. - GOOGLE_ADS_RECOMMENDATIONS = 9; - - // Changes made through Search Ads 360 Sync. - SEARCH_ADS_360_SYNC = 10; - - // Changes made through Search Ads 360 Post. - SEARCH_ADS_360_POST = 11; - - // Changes made through internal tools. - // For example, when a user sets a URL template on an entity like a - // Campaign, it's automatically wrapped with the SA360 Clickserver URL. - INTERNAL_TOOL = 12; - - // Types of changes that are not categorized, for example, - // changes made by coupon redemption through Google Ads. - OTHER = 13; - } - - -} diff --git a/google/ads/googleads/v7/enums/change_event_resource_type.proto b/google/ads/googleads/v7/enums/change_event_resource_type.proto deleted file mode 100644 index f99e17672..000000000 --- a/google/ads/googleads/v7/enums/change_event_resource_type.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ChangeEventResourceTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the resource types the ChangeEvent resource supports. - -// Container for enum describing supported resource types for the ChangeEvent -// resource. -message ChangeEventResourceTypeEnum { - // Enum listing the resource types support by the ChangeEvent resource. - enum ChangeEventResourceType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified resource unknown - // in this version. - UNKNOWN = 1; - - // An Ad resource change. - AD = 2; - - // An AdGroup resource change. - AD_GROUP = 3; - - // An AdGroupCriterion resource change. - AD_GROUP_CRITERION = 4; - - // A Campaign resource change. - CAMPAIGN = 5; - - // A CampaignBudget resource change. - CAMPAIGN_BUDGET = 6; - - // An AdGroupBidModifier resource change. - AD_GROUP_BID_MODIFIER = 7; - - // A CampaignCriterion resource change. - CAMPAIGN_CRITERION = 8; - - // A Feed resource change. - FEED = 9; - - // A FeedItem resource change. - FEED_ITEM = 10; - - // A CampaignFeed resource change. - CAMPAIGN_FEED = 11; - - // An AdGroupFeed resource change. - AD_GROUP_FEED = 12; - - // An AdGroupAd resource change. - AD_GROUP_AD = 13; - } - - -} diff --git a/google/ads/googleads/v7/enums/change_status_operation.proto b/google/ads/googleads/v7/enums/change_status_operation.proto deleted file mode 100644 index fd9f8f95f..000000000 --- a/google/ads/googleads/v7/enums/change_status_operation.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusOperationProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the change status operations. - -// Container for enum describing operations for the ChangeStatus resource. -message ChangeStatusOperationEnum { - // Status of the changed resource - enum ChangeStatusOperation { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified resource unknown - // in this version. - UNKNOWN = 1; - - // The resource was created. - ADDED = 2; - - // The resource was modified. - CHANGED = 3; - - // The resource was removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/change_status_resource_type.proto b/google/ads/googleads/v7/enums/change_status_resource_type.proto deleted file mode 100644 index cdec42cfa..000000000 --- a/google/ads/googleads/v7/enums/change_status_resource_type.proto +++ /dev/null @@ -1,76 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusResourceTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the resource types the ChangeStatus resource supports. - -// Container for enum describing supported resource types for the ChangeStatus -// resource. -message ChangeStatusResourceTypeEnum { - // Enum listing the resource types support by the ChangeStatus resource. - enum ChangeStatusResourceType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified resource unknown - // in this version. - UNKNOWN = 1; - - // An AdGroup resource change. - AD_GROUP = 3; - - // An AdGroupAd resource change. - AD_GROUP_AD = 4; - - // An AdGroupCriterion resource change. - AD_GROUP_CRITERION = 5; - - // A Campaign resource change. - CAMPAIGN = 6; - - // A CampaignCriterion resource change. - CAMPAIGN_CRITERION = 7; - - // A Feed resource change. - FEED = 9; - - // A FeedItem resource change. - FEED_ITEM = 10; - - // An AdGroupFeed resource change. - AD_GROUP_FEED = 11; - - // A CampaignFeed resource change. - CAMPAIGN_FEED = 12; - - // An AdGroupBidModifier resource change. - AD_GROUP_BID_MODIFIER = 13; - } - - -} diff --git a/google/ads/googleads/v7/enums/click_type.proto b/google/ads/googleads/v7/enums/click_type.proto deleted file mode 100644 index a6cc4115d..000000000 --- a/google/ads/googleads/v7/enums/click_type.proto +++ /dev/null @@ -1,203 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ClickTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing click types. - -// Container for enumeration of Google Ads click types. -message ClickTypeEnum { - // Enumerates Google Ads click types. - enum ClickType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // App engagement ad deep link. - APP_DEEPLINK = 2; - - // Breadcrumbs. - BREADCRUMBS = 3; - - // Broadband Plan. - BROADBAND_PLAN = 4; - - // Manually dialed phone calls. - CALL_TRACKING = 5; - - // Phone calls. - CALLS = 6; - - // Click on engagement ad. - CLICK_ON_ENGAGEMENT_AD = 7; - - // Driving direction. - GET_DIRECTIONS = 8; - - // Get location details. - LOCATION_EXPANSION = 9; - - // Call. - LOCATION_FORMAT_CALL = 10; - - // Directions. - LOCATION_FORMAT_DIRECTIONS = 11; - - // Image(s). - LOCATION_FORMAT_IMAGE = 12; - - // Go to landing page. - LOCATION_FORMAT_LANDING_PAGE = 13; - - // Map. - LOCATION_FORMAT_MAP = 14; - - // Go to store info. - LOCATION_FORMAT_STORE_INFO = 15; - - // Text. - LOCATION_FORMAT_TEXT = 16; - - // Mobile phone calls. - MOBILE_CALL_TRACKING = 17; - - // Print offer. - OFFER_PRINTS = 18; - - // Other. - OTHER = 19; - - // Product plusbox offer. - PRODUCT_EXTENSION_CLICKS = 20; - - // Shopping - Product - Online. - PRODUCT_LISTING_AD_CLICKS = 21; - - // Sitelink. - SITELINKS = 22; - - // Show nearby locations. - STORE_LOCATOR = 23; - - // Headline. - URL_CLICKS = 25; - - // App store. - VIDEO_APP_STORE_CLICKS = 26; - - // Call-to-Action overlay. - VIDEO_CALL_TO_ACTION_CLICKS = 27; - - // Cards. - VIDEO_CARD_ACTION_HEADLINE_CLICKS = 28; - - // End cap. - VIDEO_END_CAP_CLICKS = 29; - - // Website. - VIDEO_WEBSITE_CLICKS = 30; - - // Visual Sitelinks. - VISUAL_SITELINKS = 31; - - // Wireless Plan. - WIRELESS_PLAN = 32; - - // Shopping - Product - Local. - PRODUCT_LISTING_AD_LOCAL = 33; - - // Shopping - Product - MultiChannel Local. - PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL = 34; - - // Shopping - Product - MultiChannel Online. - PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE = 35; - - // Shopping - Product - Coupon. - PRODUCT_LISTING_ADS_COUPON = 36; - - // Shopping - Product - Sell on Google. - PRODUCT_LISTING_AD_TRANSACTABLE = 37; - - // Shopping - Product - App engagement ad deep link. - PRODUCT_AD_APP_DEEPLINK = 38; - - // Shopping - Showcase - Category. - SHOWCASE_AD_CATEGORY_LINK = 39; - - // Shopping - Showcase - Local storefront. - SHOWCASE_AD_LOCAL_STOREFRONT_LINK = 40; - - // Shopping - Showcase - Online product. - SHOWCASE_AD_ONLINE_PRODUCT_LINK = 42; - - // Shopping - Showcase - Local product. - SHOWCASE_AD_LOCAL_PRODUCT_LINK = 43; - - // Promotion Extension. - PROMOTION_EXTENSION = 44; - - // Ad Headline. - SWIPEABLE_GALLERY_AD_HEADLINE = 45; - - // Swipes. - SWIPEABLE_GALLERY_AD_SWIPES = 46; - - // See More. - SWIPEABLE_GALLERY_AD_SEE_MORE = 47; - - // Sitelink 1. - SWIPEABLE_GALLERY_AD_SITELINK_ONE = 48; - - // Sitelink 2. - SWIPEABLE_GALLERY_AD_SITELINK_TWO = 49; - - // Sitelink 3. - SWIPEABLE_GALLERY_AD_SITELINK_THREE = 50; - - // Sitelink 4. - SWIPEABLE_GALLERY_AD_SITELINK_FOUR = 51; - - // Sitelink 5. - SWIPEABLE_GALLERY_AD_SITELINK_FIVE = 52; - - // Hotel price. - HOTEL_PRICE = 53; - - // Price Extension. - PRICE_EXTENSION = 54; - - // Book on Google hotel room selection. - HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION = 55; - - // Shopping - Comparison Listing. - SHOPPING_COMPARISON_LISTING = 56; - } - - -} diff --git a/google/ads/googleads/v7/enums/combined_audience_status.proto b/google/ads/googleads/v7/enums/combined_audience_status.proto deleted file mode 100644 index d33a82795..000000000 --- a/google/ads/googleads/v7/enums/combined_audience_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CombinedAudienceStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing combined audience status. - -// The status of combined audience. -message CombinedAudienceStatusEnum { - // Enum containing possible combined audience status types. - enum CombinedAudienceStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Enabled status - combined audience is enabled and can be targeted. - ENABLED = 2; - - // Removed status - combined audience is removed and cannot be used for - // targeting. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/content_label_type.proto b/google/ads/googleads/v7/enums/content_label_type.proto deleted file mode 100644 index 3df93530e..000000000 --- a/google/ads/googleads/v7/enums/content_label_type.proto +++ /dev/null @@ -1,89 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ContentLabelTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::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/google/ads/googleads/v7/enums/conversion_action_category.proto b/google/ads/googleads/v7/enums/conversion_action_category.proto deleted file mode 100644 index ef03a12bb..000000000 --- a/google/ads/googleads/v7/enums/conversion_action_category.proto +++ /dev/null @@ -1,106 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionCategoryProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing the category of conversions that are associated -// with a ConversionAction. -message ConversionActionCategoryEnum { - // The category of conversions that are associated with a ConversionAction. - enum ConversionActionCategory { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Default category. - DEFAULT = 2; - - // User visiting a page. - PAGE_VIEW = 3; - - // Purchase, sales, or "order placed" event. - PURCHASE = 4; - - // Signup user action. - SIGNUP = 5; - - // Lead-generating action. - LEAD = 6; - - // Software download action (as for an app). - DOWNLOAD = 7; - - // The addition of items to a shopping cart or bag on an advertiser site. - ADD_TO_CART = 8; - - // When someone enters the checkout flow on an advertiser site. - BEGIN_CHECKOUT = 9; - - // The start of a paid subscription for a product or service. - SUBSCRIBE_PAID = 10; - - // A call to indicate interest in an advertiser's offering. - PHONE_CALL_LEAD = 11; - - // A lead conversion imported from an external source into Google Ads. - IMPORTED_LEAD = 12; - - // A submission of a form on an advertiser site indicating business - // interest. - SUBMIT_LEAD_FORM = 13; - - // A booking of an appointment with an advertiser's business. - BOOK_APPOINTMENT = 14; - - // A quote or price estimate request. - REQUEST_QUOTE = 15; - - // A search for an advertiser's business location with intention to visit. - GET_DIRECTIONS = 16; - - // A click to an advertiser's partner's site. - OUTBOUND_CLICK = 17; - - // A call, SMS, email, chat or other type of contact to an advertiser. - CONTACT = 18; - - // A website engagement event such as long site time or a Google Analytics - // (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal - // imports. - ENGAGEMENT = 19; - - // A visit to a physical store location. - STORE_VISIT = 20; - - // A sale occurring in a physical store. - STORE_SALE = 21; - } - - -} diff --git a/google/ads/googleads/v7/enums/conversion_action_counting_type.proto b/google/ads/googleads/v7/enums/conversion_action_counting_type.proto deleted file mode 100644 index 8a921f972..000000000 --- a/google/ads/googleads/v7/enums/conversion_action_counting_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionCountingTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing conversion action counting type. - -// Container for enum describing the conversion deduplication mode for -// conversion optimizer. -message ConversionActionCountingTypeEnum { - // Indicates how conversions for this action will be counted. For more - // information, see https://support.google.com/google-ads/answer/3438531. - enum ConversionActionCountingType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Count only one conversion per click. - ONE_PER_CLICK = 2; - - // Count all conversions per click. - MANY_PER_CLICK = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/conversion_action_status.proto b/google/ads/googleads/v7/enums/conversion_action_status.proto deleted file mode 100644 index d4fdbf24e..000000000 --- a/google/ads/googleads/v7/enums/conversion_action_status.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing conversion action status. - -// Container for enum describing possible statuses of a conversion action. -message ConversionActionStatusEnum { - // Possible statuses of a conversion action. - enum ConversionActionStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversions will be recorded. - ENABLED = 2; - - // Conversions will not be recorded. - REMOVED = 3; - - // Conversions will not be recorded and the conversion action will not - // appear in the UI. - HIDDEN = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/conversion_action_type.proto b/google/ads/googleads/v7/enums/conversion_action_type.proto deleted file mode 100644 index 6d43bf518..000000000 --- a/google/ads/googleads/v7/enums/conversion_action_type.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing conversion action type. - -// Container for enum describing possible types of a conversion action. -message ConversionActionTypeEnum { - // Possible types of a conversion action. - enum ConversionActionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversions that occur when a user clicks on an ad's call extension. - AD_CALL = 2; - - // Conversions that occur when a user on a mobile device clicks a phone - // number. - CLICK_TO_CALL = 3; - - // Conversions that occur when a user downloads a mobile app from the Google - // Play Store. - GOOGLE_PLAY_DOWNLOAD = 4; - - // Conversions that occur when a user makes a purchase in an app through - // Android billing. - GOOGLE_PLAY_IN_APP_PURCHASE = 5; - - // Call conversions that are tracked by the advertiser and uploaded. - UPLOAD_CALLS = 6; - - // Conversions that are tracked by the advertiser and uploaded with - // attributed clicks. - UPLOAD_CLICKS = 7; - - // Conversions that occur on a webpage. - WEBPAGE = 8; - - // Conversions that occur when a user calls a dynamically-generated phone - // number from an advertiser's website. - WEBSITE_CALL = 9; - - // Store Sales conversion based on first-party or third-party merchant - // data uploads. - // Only customers on the allowlist can use store sales direct upload types. - STORE_SALES_DIRECT_UPLOAD = 10; - - // Store Sales conversion based on first-party or third-party merchant - // data uploads and/or from in-store purchases using cards from payment - // networks. - // Only customers on the allowlist can use store sales types. - // Read only. - STORE_SALES = 11; - - // Android app first open conversions tracked via Firebase. - FIREBASE_ANDROID_FIRST_OPEN = 12; - - // Android app in app purchase conversions tracked via Firebase. - FIREBASE_ANDROID_IN_APP_PURCHASE = 13; - - // Android app custom conversions tracked via Firebase. - FIREBASE_ANDROID_CUSTOM = 14; - - // iOS app first open conversions tracked via Firebase. - FIREBASE_IOS_FIRST_OPEN = 15; - - // iOS app in app purchase conversions tracked via Firebase. - FIREBASE_IOS_IN_APP_PURCHASE = 16; - - // iOS app custom conversions tracked via Firebase. - FIREBASE_IOS_CUSTOM = 17; - - // Android app first open conversions tracked via Third Party App Analytics. - THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN = 18; - - // Android app in app purchase conversions tracked via Third Party App - // Analytics. - THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE = 19; - - // Android app custom conversions tracked via Third Party App Analytics. - THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM = 20; - - // iOS app first open conversions tracked via Third Party App Analytics. - THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN = 21; - - // iOS app in app purchase conversions tracked via Third Party App - // Analytics. - THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE = 22; - - // iOS app custom conversions tracked via Third Party App Analytics. - THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM = 23; - - // Conversions that occur when a user pre-registers a mobile app from the - // Google Play Store. Read only. - ANDROID_APP_PRE_REGISTRATION = 24; - - // Conversions that track all Google Play downloads which aren't tracked - // by an app-specific type. Read only. - ANDROID_INSTALLS_ALL_OTHER_APPS = 25; - - // Floodlight activity that counts the number of times that users have - // visited a particular webpage after seeing or clicking on one of - // an advertiser's ads. Read only. - FLOODLIGHT_ACTION = 26; - - // Floodlight activity that tracks the number of sales made or the number - // of items purchased. Can also capture the total value of each sale. - // Read only. - FLOODLIGHT_TRANSACTION = 27; - - // Conversions that track local actions from Google's products and - // services after interacting with an ad. Read only. - GOOGLE_HOSTED = 28; - - // Conversions reported when a user submits a lead form. Read only. - LEAD_FORM_SUBMIT = 29; - - // Conversions that come from Salesforce. Read only. - SALESFORCE = 30; - - // Conversions imported from Search Ads 360 Floodlight data. Read only. - SEARCH_ADS_360 = 31; - - // Call conversions that occur on Smart campaign Ads without call tracking - // setup, using Smart campaign custom criteria. Read only. - SMART_CAMPAIGN_AD_CLICKS_TO_CALL = 32; - - // The user clicks on a call element within Google Maps. Smart campaign - // only. Read only. - SMART_CAMPAIGN_MAP_CLICKS_TO_CALL = 33; - - // The user requests directions to a business location within Google Maps. - // Smart campaign only. Read only. - SMART_CAMPAIGN_MAP_DIRECTIONS = 34; - - // Call conversions that occur on Smart campaign Ads with call tracking - // setup, using Smart campaign custom criteria. Read only. - SMART_CAMPAIGN_TRACKED_CALLS = 35; - - // Conversions that occur when a user visits an advertiser's retail store. - // Read only. - STORE_VISITS = 36; - } - - -} diff --git a/google/ads/googleads/v7/enums/conversion_adjustment_type.proto b/google/ads/googleads/v7/enums/conversion_adjustment_type.proto deleted file mode 100644 index faab5941a..000000000 --- a/google/ads/googleads/v7/enums/conversion_adjustment_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionAdjustmentTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing conversion adjustment type. - -// Container for enum describing conversion adjustment types. -message ConversionAdjustmentTypeEnum { - // The different actions advertisers can take to adjust the conversions that - // they already reported. Retractions negate a conversion. Restatements change - // the value of a conversion. - enum ConversionAdjustmentType { - // Not specified. - UNSPECIFIED = 0; - - // Represents value unknown in this version. - UNKNOWN = 1; - - // Negates a conversion so that its total value and count are both zero. - RETRACTION = 2; - - // Changes the value of a conversion. - RESTATEMENT = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/conversion_attribution_event_type.proto b/google/ads/googleads/v7/enums/conversion_attribution_event_type.proto deleted file mode 100644 index fe6c0bd3c..000000000 --- a/google/ads/googleads/v7/enums/conversion_attribution_event_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionAttributionEventTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum indicating the event type the conversion is attributed to. -message ConversionAttributionEventTypeEnum { - // The event type of conversions that are attributed to. - enum ConversionAttributionEventType { - // Not specified. - UNSPECIFIED = 0; - - // Represents value unknown in this version. - UNKNOWN = 1; - - // The conversion is attributed to an impression. - IMPRESSION = 2; - - // The conversion is attributed to an interaction. - INTERACTION = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/conversion_custom_variable_status.proto b/google/ads/googleads/v7/enums/conversion_custom_variable_status.proto deleted file mode 100644 index 398ea4277..000000000 --- a/google/ads/googleads/v7/enums/conversion_custom_variable_status.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionCustomVariableStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing conversion custom variable status. - -// Container for enum describing possible statuses of a conversion custom -// variable. -message ConversionCustomVariableStatusEnum { - // Possible statuses of a conversion custom variable. - enum ConversionCustomVariableStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The conversion custom variable is pending activation and will not - // accrue stats until set to ENABLED. - // - // This status can't be used in CREATE and UPDATE requests. - ACTIVATION_NEEDED = 2; - - // The conversion custom variable is enabled and will accrue stats. - ENABLED = 3; - - // The conversion custom variable is paused and will not accrue stats - // until set to ENABLED again. - PAUSED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/conversion_lag_bucket.proto b/google/ads/googleads/v7/enums/conversion_lag_bucket.proto deleted file mode 100644 index 1f558390b..000000000 --- a/google/ads/googleads/v7/enums/conversion_lag_bucket.proto +++ /dev/null @@ -1,117 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionLagBucketProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum representing the number of days between impression and -// conversion. -message ConversionLagBucketEnum { - // Enum representing the number of days between impression and conversion. - enum ConversionLagBucket { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. - LESS_THAN_ONE_DAY = 2; - - // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. - ONE_TO_TWO_DAYS = 3; - - // Conversion lag bucket from 2 to 3 days. 2 days is included, - // 3 days is not. - TWO_TO_THREE_DAYS = 4; - - // Conversion lag bucket from 3 to 4 days. 3 days is included, - // 4 days is not. - THREE_TO_FOUR_DAYS = 5; - - // Conversion lag bucket from 4 to 5 days. 4 days is included, - // 5 days is not. - FOUR_TO_FIVE_DAYS = 6; - - // Conversion lag bucket from 5 to 6 days. 5 days is included, - // 6 days is not. - FIVE_TO_SIX_DAYS = 7; - - // Conversion lag bucket from 6 to 7 days. 6 days is included, - // 7 days is not. - SIX_TO_SEVEN_DAYS = 8; - - // Conversion lag bucket from 7 to 8 days. 7 days is included, - // 8 days is not. - SEVEN_TO_EIGHT_DAYS = 9; - - // Conversion lag bucket from 8 to 9 days. 8 days is included, - // 9 days is not. - EIGHT_TO_NINE_DAYS = 10; - - // Conversion lag bucket from 9 to 10 days. 9 days is included, - // 10 days is not. - NINE_TO_TEN_DAYS = 11; - - // Conversion lag bucket from 10 to 11 days. 10 days is included, - // 11 days is not. - TEN_TO_ELEVEN_DAYS = 12; - - // Conversion lag bucket from 11 to 12 days. 11 days is included, - // 12 days is not. - ELEVEN_TO_TWELVE_DAYS = 13; - - // Conversion lag bucket from 12 to 13 days. 12 days is included, - // 13 days is not. - TWELVE_TO_THIRTEEN_DAYS = 14; - - // Conversion lag bucket from 13 to 14 days. 13 days is included, - // 14 days is not. - THIRTEEN_TO_FOURTEEN_DAYS = 15; - - // Conversion lag bucket from 14 to 21 days. 14 days is included, - // 21 days is not. - FOURTEEN_TO_TWENTY_ONE_DAYS = 16; - - // Conversion lag bucket from 21 to 30 days. 21 days is included, - // 30 days is not. - TWENTY_ONE_TO_THIRTY_DAYS = 17; - - // Conversion lag bucket from 30 to 45 days. 30 days is included, - // 45 days is not. - THIRTY_TO_FORTY_FIVE_DAYS = 18; - - // Conversion lag bucket from 45 to 60 days. 45 days is included, - // 60 days is not. - FORTY_FIVE_TO_SIXTY_DAYS = 19; - - // Conversion lag bucket from 60 to 90 days. 60 days is included, - // 90 days is not. - SIXTY_TO_NINETY_DAYS = 20; - } - - -} diff --git a/google/ads/googleads/v7/enums/conversion_or_adjustment_lag_bucket.proto b/google/ads/googleads/v7/enums/conversion_or_adjustment_lag_bucket.proto deleted file mode 100644 index 19ad720f3..000000000 --- a/google/ads/googleads/v7/enums/conversion_or_adjustment_lag_bucket.proto +++ /dev/null @@ -1,206 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionOrAdjustmentLagBucketProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum representing the number of days between the impression and -// the conversion or between the impression and adjustments to the conversion. -message ConversionOrAdjustmentLagBucketEnum { - // Enum representing the number of days between the impression and the - // conversion or between the impression and adjustments to the conversion. - enum ConversionOrAdjustmentLagBucket { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. - CONVERSION_LESS_THAN_ONE_DAY = 2; - - // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. - CONVERSION_ONE_TO_TWO_DAYS = 3; - - // Conversion lag bucket from 2 to 3 days. 2 days is included, - // 3 days is not. - CONVERSION_TWO_TO_THREE_DAYS = 4; - - // Conversion lag bucket from 3 to 4 days. 3 days is included, - // 4 days is not. - CONVERSION_THREE_TO_FOUR_DAYS = 5; - - // Conversion lag bucket from 4 to 5 days. 4 days is included, - // 5 days is not. - CONVERSION_FOUR_TO_FIVE_DAYS = 6; - - // Conversion lag bucket from 5 to 6 days. 5 days is included, - // 6 days is not. - CONVERSION_FIVE_TO_SIX_DAYS = 7; - - // Conversion lag bucket from 6 to 7 days. 6 days is included, - // 7 days is not. - CONVERSION_SIX_TO_SEVEN_DAYS = 8; - - // Conversion lag bucket from 7 to 8 days. 7 days is included, - // 8 days is not. - CONVERSION_SEVEN_TO_EIGHT_DAYS = 9; - - // Conversion lag bucket from 8 to 9 days. 8 days is included, - // 9 days is not. - CONVERSION_EIGHT_TO_NINE_DAYS = 10; - - // Conversion lag bucket from 9 to 10 days. 9 days is included, - // 10 days is not. - CONVERSION_NINE_TO_TEN_DAYS = 11; - - // Conversion lag bucket from 10 to 11 days. 10 days is included, - // 11 days is not. - CONVERSION_TEN_TO_ELEVEN_DAYS = 12; - - // Conversion lag bucket from 11 to 12 days. 11 days is included, - // 12 days is not. - CONVERSION_ELEVEN_TO_TWELVE_DAYS = 13; - - // Conversion lag bucket from 12 to 13 days. 12 days is included, - // 13 days is not. - CONVERSION_TWELVE_TO_THIRTEEN_DAYS = 14; - - // Conversion lag bucket from 13 to 14 days. 13 days is included, - // 14 days is not. - CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS = 15; - - // Conversion lag bucket from 14 to 21 days. 14 days is included, - // 21 days is not. - CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS = 16; - - // Conversion lag bucket from 21 to 30 days. 21 days is included, - // 30 days is not. - CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS = 17; - - // Conversion lag bucket from 30 to 45 days. 30 days is included, - // 45 days is not. - CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS = 18; - - // Conversion lag bucket from 45 to 60 days. 45 days is included, - // 60 days is not. - CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS = 19; - - // Conversion lag bucket from 60 to 90 days. 60 days is included, - // 90 days is not. - CONVERSION_SIXTY_TO_NINETY_DAYS = 20; - - // Conversion adjustment lag bucket from 0 to 1 day. 0 day is included, - // 1 day is not. - ADJUSTMENT_LESS_THAN_ONE_DAY = 21; - - // Conversion adjustment lag bucket from 1 to 2 days. 1 day is included, - // 2 days is not. - ADJUSTMENT_ONE_TO_TWO_DAYS = 22; - - // Conversion adjustment lag bucket from 2 to 3 days. 2 days is included, - // 3 days is not. - ADJUSTMENT_TWO_TO_THREE_DAYS = 23; - - // Conversion adjustment lag bucket from 3 to 4 days. 3 days is included, - // 4 days is not. - ADJUSTMENT_THREE_TO_FOUR_DAYS = 24; - - // Conversion adjustment lag bucket from 4 to 5 days. 4 days is included, - // 5 days is not. - ADJUSTMENT_FOUR_TO_FIVE_DAYS = 25; - - // Conversion adjustment lag bucket from 5 to 6 days. 5 days is included, - // 6 days is not. - ADJUSTMENT_FIVE_TO_SIX_DAYS = 26; - - // Conversion adjustment lag bucket from 6 to 7 days. 6 days is included, - // 7 days is not. - ADJUSTMENT_SIX_TO_SEVEN_DAYS = 27; - - // Conversion adjustment lag bucket from 7 to 8 days. 7 days is included, - // 8 days is not. - ADJUSTMENT_SEVEN_TO_EIGHT_DAYS = 28; - - // Conversion adjustment lag bucket from 8 to 9 days. 8 days is included, - // 9 days is not. - ADJUSTMENT_EIGHT_TO_NINE_DAYS = 29; - - // Conversion adjustment lag bucket from 9 to 10 days. 9 days is included, - // 10 days is not. - ADJUSTMENT_NINE_TO_TEN_DAYS = 30; - - // Conversion adjustment lag bucket from 10 to 11 days. 10 days is included, - // 11 days is not. - ADJUSTMENT_TEN_TO_ELEVEN_DAYS = 31; - - // Conversion adjustment lag bucket from 11 to 12 days. 11 days is included, - // 12 days is not. - ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS = 32; - - // Conversion adjustment lag bucket from 12 to 13 days. 12 days is included, - // 13 days is not. - ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS = 33; - - // Conversion adjustment lag bucket from 13 to 14 days. 13 days is included, - // 14 days is not. - ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS = 34; - - // Conversion adjustment lag bucket from 14 to 21 days. 14 days is included, - // 21 days is not. - ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS = 35; - - // Conversion adjustment lag bucket from 21 to 30 days. 21 days is included, - // 30 days is not. - ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS = 36; - - // Conversion adjustment lag bucket from 30 to 45 days. 30 days is included, - // 45 days is not. - ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS = 37; - - // Conversion adjustment lag bucket from 45 to 60 days. 45 days is included, - // 60 days is not. - ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS = 38; - - // Conversion adjustment lag bucket from 60 to 90 days. 60 days is included, - // 90 days is not. - ADJUSTMENT_SIXTY_TO_NINETY_DAYS = 39; - - // Conversion adjustment lag bucket from 90 to 145 days. 90 days is - // included, 145 days is not. - ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS = 40; - - // Conversion lag bucket UNKNOWN. This is for dates before conversion lag - // bucket was available in Google Ads. - CONVERSION_UNKNOWN = 41; - - // Conversion adjustment lag bucket UNKNOWN. This is for dates before - // conversion adjustment lag bucket was available in Google Ads. - ADJUSTMENT_UNKNOWN = 42; - } - - -} diff --git a/google/ads/googleads/v7/enums/criterion_category_channel_availability_mode.proto b/google/ads/googleads/v7/enums/criterion_category_channel_availability_mode.proto deleted file mode 100644 index 917e87c61..000000000 --- a/google/ads/googleads/v7/enums/criterion_category_channel_availability_mode.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CriterionCategoryChannelAvailabilityModeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the criterion category channel availability mode. - -// Describes channel availability mode for a criterion availability - whether -// the availability is meant to include all advertising channels, or a -// particular channel with all its channel subtypes, or a channel with a certain -// subset of channel subtypes. -message CriterionCategoryChannelAvailabilityModeEnum { - // Enum containing the possible CriterionCategoryChannelAvailabilityMode. - enum CriterionCategoryChannelAvailabilityMode { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The category is available to campaigns of all channel types and subtypes. - ALL_CHANNELS = 2; - - // The category is available to campaigns of a specific channel type, - // including all subtypes under it. - CHANNEL_TYPE_AND_ALL_SUBTYPES = 3; - - // The category is available to campaigns of a specific channel type and - // subtype(s). - CHANNEL_TYPE_AND_SUBSET_SUBTYPES = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/criterion_category_locale_availability_mode.proto b/google/ads/googleads/v7/enums/criterion_category_locale_availability_mode.proto deleted file mode 100644 index 190689473..000000000 --- a/google/ads/googleads/v7/enums/criterion_category_locale_availability_mode.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CriterionCategoryLocaleAvailabilityModeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the criterion category locale availability mode. - -// Describes locale availability mode for a criterion availability - whether -// it's available globally, or a particular country with all languages, or a -// particular language with all countries, or a country-language pair. -message CriterionCategoryLocaleAvailabilityModeEnum { - // Enum containing the possible CriterionCategoryLocaleAvailabilityMode. - enum CriterionCategoryLocaleAvailabilityMode { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The category is available to campaigns of all locales. - ALL_LOCALES = 2; - - // The category is available to campaigns within a list of countries, - // regardless of language. - COUNTRY_AND_ALL_LANGUAGES = 3; - - // The category is available to campaigns within a list of languages, - // regardless of country. - LANGUAGE_AND_ALL_COUNTRIES = 4; - - // The category is available to campaigns within a list of country, language - // pairs. - COUNTRY_AND_LANGUAGE = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/criterion_system_serving_status.proto b/google/ads/googleads/v7/enums/criterion_system_serving_status.proto deleted file mode 100644 index 1fb3c9b9b..000000000 --- a/google/ads/googleads/v7/enums/criterion_system_serving_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CriterionSystemServingStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing approval status for the criterion. - -// Container for enum describing possible criterion system serving statuses. -message CriterionSystemServingStatusEnum { - // Enumerates criterion system serving statuses. - enum CriterionSystemServingStatus { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Eligible. - ELIGIBLE = 2; - - // Low search volume. - RARELY_SERVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/criterion_type.proto b/google/ads/googleads/v7/enums/criterion_type.proto deleted file mode 100644 index e97b2a42f..000000000 --- a/google/ads/googleads/v7/enums/criterion_type.proto +++ /dev/null @@ -1,140 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CriterionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing criteria types. - -// The possible types of a criterion. -message CriterionTypeEnum { - // Enum describing possible criterion types. - enum CriterionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Keyword. e.g. 'mars cruise'. - KEYWORD = 2; - - // Placement, aka Website. e.g. 'www.flowers4sale.com' - PLACEMENT = 3; - - // Mobile application categories to target. - MOBILE_APP_CATEGORY = 4; - - // Mobile applications to target. - MOBILE_APPLICATION = 5; - - // Devices to target. - DEVICE = 6; - - // Locations to target. - LOCATION = 7; - - // Listing groups to target. - LISTING_GROUP = 8; - - // Ad Schedule. - AD_SCHEDULE = 9; - - // Age range. - AGE_RANGE = 10; - - // Gender. - GENDER = 11; - - // Income Range. - INCOME_RANGE = 12; - - // Parental status. - PARENTAL_STATUS = 13; - - // YouTube Video. - YOUTUBE_VIDEO = 14; - - // YouTube Channel. - YOUTUBE_CHANNEL = 15; - - // User list. - USER_LIST = 16; - - // Proximity. - PROXIMITY = 17; - - // A topic target on the display network (e.g. "Pets & Animals"). - TOPIC = 18; - - // Listing scope to target. - LISTING_SCOPE = 19; - - // Language. - LANGUAGE = 20; - - // IpBlock. - IP_BLOCK = 21; - - // Content Label for category exclusion. - CONTENT_LABEL = 22; - - // Carrier. - CARRIER = 23; - - // A category the user is interested in. - USER_INTEREST = 24; - - // Webpage criterion for dynamic search ads. - WEBPAGE = 25; - - // Operating system version. - OPERATING_SYSTEM_VERSION = 26; - - // App payment model. - APP_PAYMENT_MODEL = 27; - - // Mobile device. - MOBILE_DEVICE = 28; - - // Custom affinity. - CUSTOM_AFFINITY = 29; - - // Custom intent. - CUSTOM_INTENT = 30; - - // Location group. - LOCATION_GROUP = 31; - - // Custom audience - CUSTOM_AUDIENCE = 32; - - // Combined audience - COMBINED_AUDIENCE = 33; - } - - -} diff --git a/google/ads/googleads/v7/enums/custom_audience_member_type.proto b/google/ads/googleads/v7/enums/custom_audience_member_type.proto deleted file mode 100644 index 3fafaec42..000000000 --- a/google/ads/googleads/v7/enums/custom_audience_member_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceMemberTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing custom audience member type. - -// The type of custom audience member. -message CustomAudienceMemberTypeEnum { - // Enum containing possible custom audience member types. - enum CustomAudienceMemberType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Users whose interests or actions are described by a keyword. - KEYWORD = 2; - - // Users who have interests related to the website's content. - URL = 3; - - // Users who visit place types described by a place category. - PLACE_CATEGORY = 4; - - // Users who have installed a mobile app. - APP = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/custom_audience_status.proto b/google/ads/googleads/v7/enums/custom_audience_status.proto deleted file mode 100644 index c24170519..000000000 --- a/google/ads/googleads/v7/enums/custom_audience_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing custom audience status. - -// The status of custom audience. -message CustomAudienceStatusEnum { - // Enum containing possible custom audience statuses. - enum CustomAudienceStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Enabled status - custom audience is enabled and can be targeted. - ENABLED = 2; - - // Removed status - custom audience is removed and cannot be used for - // targeting. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/custom_audience_type.proto b/google/ads/googleads/v7/enums/custom_audience_type.proto deleted file mode 100644 index e6037ef43..000000000 --- a/google/ads/googleads/v7/enums/custom_audience_type.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing custom audience type. - -// The types of custom audience. -message CustomAudienceTypeEnum { - // Enum containing possible custom audience types. - enum CustomAudienceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Google Ads will auto-select the best interpretation at serving - // time. - AUTO = 2; - - // Matches users by their interests. - INTEREST = 3; - - // Matches users by topics they are researching or products they are - // considering for purchase. - PURCHASE_INTENT = 4; - - // Matches users by what they searched on Google Search. - SEARCH = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/custom_interest_member_type.proto b/google/ads/googleads/v7/enums/custom_interest_member_type.proto deleted file mode 100644 index d43129938..000000000 --- a/google/ads/googleads/v7/enums/custom_interest_member_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestMemberTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing custom interest member type. - -// The types of custom interest member, either KEYWORD or URL. -message CustomInterestMemberTypeEnum { - // Enum containing possible custom interest member types. - enum CustomInterestMemberType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Custom interest member type KEYWORD. - KEYWORD = 2; - - // Custom interest member type URL. - URL = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/custom_interest_status.proto b/google/ads/googleads/v7/enums/custom_interest_status.proto deleted file mode 100644 index 44ef9ca64..000000000 --- a/google/ads/googleads/v7/enums/custom_interest_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing custom interest status. - -// The status of custom interest. -message CustomInterestStatusEnum { - // Enum containing possible custom interest types. - enum CustomInterestStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Enabled status - custom interest is enabled and can be targeted to. - ENABLED = 2; - - // Removed status - custom interest is removed and cannot be used for - // targeting. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/custom_interest_type.proto b/google/ads/googleads/v7/enums/custom_interest_type.proto deleted file mode 100644 index c9f7e6188..000000000 --- a/google/ads/googleads/v7/enums/custom_interest_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing custom interest type. - -// The types of custom interest. -message CustomInterestTypeEnum { - // Enum containing possible custom interest types. - enum CustomInterestType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Allows brand advertisers to define custom affinity audience lists. - CUSTOM_AFFINITY = 2; - - // Allows advertisers to define custom intent audience lists. - CUSTOM_INTENT = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/custom_placeholder_field.proto b/google/ads/googleads/v7/enums/custom_placeholder_field.proto deleted file mode 100644 index 124a0549c..000000000 --- a/google/ads/googleads/v7/enums/custom_placeholder_field.proto +++ /dev/null @@ -1,129 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Custom placeholder fields. - -// Values for Custom placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message CustomPlaceholderFieldEnum { - // Possible values for Custom placeholder fields. - enum CustomPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Combination ID and ID2 must be unique per - // offer. - ID = 2; - - // Data Type: STRING. Combination ID and ID2 must be unique per offer. - ID2 = 3; - - // Data Type: STRING. Required. Main headline with product name to be shown - // in dynamic ad. - ITEM_TITLE = 4; - - // Data Type: STRING. Optional text to be shown in the image ad. - ITEM_SUBTITLE = 5; - - // Data Type: STRING. Optional description of the product to be shown in the - // ad. - ITEM_DESCRIPTION = 6; - - // Data Type: STRING. Full address of your offer or service, including - // postal code. This will be used to identify the closest product to the - // user when there are multiple offers in the feed that are relevant to the - // user. - ITEM_ADDRESS = 7; - - // Data Type: STRING. Price to be shown in the ad. - // Example: "100.00 USD" - PRICE = 8; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 9; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - SALE_PRICE = 10; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 11; - - // Data Type: URL. Image to be displayed in the ad. Highly recommended for - // image ads. - IMAGE_URL = 12; - - // Data Type: STRING. Used as a recommendation engine signal to serve items - // in the same category. - ITEM_CATEGORY = 13; - - // Data Type: URL_LIST. Final URLs for the ad when using Upgraded - // URLs. User will be redirected to these URLs when they click on an ad, or - // when they click on a specific product for ads that have multiple - // products. - FINAL_URLS = 14; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 15; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 16; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 17; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 18; - - // Data Type: STRING_LIST. List of recommended IDs to show together with - // this item. - SIMILAR_IDS = 19; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 20; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 21; - } - - -} diff --git a/google/ads/googleads/v7/enums/customer_match_upload_key_type.proto b/google/ads/googleads/v7/enums/customer_match_upload_key_type.proto deleted file mode 100644 index 2e616d172..000000000 --- a/google/ads/googleads/v7/enums/customer_match_upload_key_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomerMatchUploadKeyTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Indicates what type of data are the user list's members matched from. -message CustomerMatchUploadKeyTypeEnum { - // Enum describing possible customer match upload key types. - enum CustomerMatchUploadKeyType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Members are matched from customer info such as email address, phone - // number or physical address. - CONTACT_INFO = 2; - - // Members are matched from a user id generated and assigned by the - // advertiser. - CRM_ID = 3; - - // Members are matched from mobile advertising ids. - MOBILE_ADVERTISING_ID = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/customer_pay_per_conversion_eligibility_failure_reason.proto b/google/ads/googleads/v7/enums/customer_pay_per_conversion_eligibility_failure_reason.proto deleted file mode 100644 index 3b2695e5f..000000000 --- a/google/ads/googleads/v7/enums/customer_pay_per_conversion_eligibility_failure_reason.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomerPayPerConversionEligibilityFailureReasonProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing pay per conversion eligibility failure reasons. - -// Container for enum describing reasons why a customer is not eligible to use -// PaymentMode.CONVERSIONS. -message CustomerPayPerConversionEligibilityFailureReasonEnum { - // Enum describing possible reasons a customer is not eligible to use - // PaymentMode.CONVERSIONS. - enum CustomerPayPerConversionEligibilityFailureReason { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Customer does not have enough conversions. - NOT_ENOUGH_CONVERSIONS = 2; - - // Customer's conversion lag is too high. - CONVERSION_LAG_TOO_HIGH = 3; - - // Customer uses shared budgets. - HAS_CAMPAIGN_WITH_SHARED_BUDGET = 4; - - // Customer has conversions with ConversionActionType.UPLOAD_CLICKS. - HAS_UPLOAD_CLICKS_CONVERSION = 5; - - // Customer's average daily spend is too high. - AVERAGE_DAILY_SPEND_TOO_HIGH = 6; - - // Customer's eligibility has not yet been calculated by the Google Ads - // backend. Check back soon. - ANALYSIS_NOT_COMPLETE = 7; - - // Customer is not eligible due to other reasons. - OTHER = 8; - } - - -} diff --git a/google/ads/googleads/v7/enums/data_driven_model_status.proto b/google/ads/googleads/v7/enums/data_driven_model_status.proto deleted file mode 100644 index 1d02a1fe0..000000000 --- a/google/ads/googleads/v7/enums/data_driven_model_status.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DataDrivenModelStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing data-driven model status. - -// Container for enum indicating data driven model status. -message DataDrivenModelStatusEnum { - // Enumerates data driven model statuses. - enum DataDrivenModelStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The data driven model is available. - AVAILABLE = 2; - - // The data driven model is stale. It hasn't been updated for at least 7 - // days. It is still being used, but will become expired if it does not get - // updated for 30 days. - STALE = 3; - - // The data driven model expired. It hasn't been updated for at least 30 - // days and cannot be used. Most commonly this is because there hasn't been - // the required number of events in a recent 30-day period. - EXPIRED = 4; - - // The data driven model has never been generated. Most commonly this is - // because there has never been the required number of events in any 30-day - // period. - NEVER_GENERATED = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/day_of_week.proto b/google/ads/googleads/v7/enums/day_of_week.proto deleted file mode 100644 index 421924db7..000000000 --- a/google/ads/googleads/v7/enums/day_of_week.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DayOfWeekProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing days of week. - -// Container for enumeration of days of the week, e.g., "Monday". -message DayOfWeekEnum { - // Enumerates days of the week, e.g., "Monday". - enum DayOfWeek { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Monday. - MONDAY = 2; - - // Tuesday. - TUESDAY = 3; - - // Wednesday. - WEDNESDAY = 4; - - // Thursday. - THURSDAY = 5; - - // Friday. - FRIDAY = 6; - - // Saturday. - SATURDAY = 7; - - // Sunday. - SUNDAY = 8; - } - - -} diff --git a/google/ads/googleads/v7/enums/device.proto b/google/ads/googleads/v7/enums/device.proto deleted file mode 100644 index c3050d41c..000000000 --- a/google/ads/googleads/v7/enums/device.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DeviceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing devices. - -// Container for enumeration of Google Ads devices available for targeting. -message DeviceEnum { - // Enumerates Google Ads devices available for targeting. - enum Device { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Mobile devices with full browsers. - MOBILE = 2; - - // Tablets with full browsers. - TABLET = 3; - - // Computers. - DESKTOP = 4; - - // Smart TVs and game consoles. - CONNECTED_TV = 6; - - // Other device types. - OTHER = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/display_ad_format_setting.proto b/google/ads/googleads/v7/enums/display_ad_format_setting.proto deleted file mode 100644 index cbe4018ba..000000000 --- a/google/ads/googleads/v7/enums/display_ad_format_setting.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DisplayAdFormatSettingProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing display ad format settings. - -// Container for display ad format settings. -message DisplayAdFormatSettingEnum { - // Enumerates display ad format settings. - enum DisplayAdFormatSetting { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Text, image and native formats. - ALL_FORMATS = 2; - - // Text and image formats. - NON_NATIVE = 3; - - // Native format, i.e. the format rendering is controlled by the publisher - // and not by Google. - NATIVE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/display_upload_product_type.proto b/google/ads/googleads/v7/enums/display_upload_product_type.proto deleted file mode 100644 index c6fa97e6f..000000000 --- a/google/ads/googleads/v7/enums/display_upload_product_type.proto +++ /dev/null @@ -1,97 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DisplayUploadProductTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing display upload product types. - -// Container for display upload product types. Product types that have the word -// "DYNAMIC" in them must be associated with a campaign that has a dynamic -// remarketing feed. See https://support.google.com/google-ads/answer/6053288 -// for more info about dynamic remarketing. Other product types are regarded -// as "static" and do not have this requirement. -message DisplayUploadProductTypeEnum { - // Enumerates display upload product types. - enum DisplayUploadProductType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // HTML5 upload ad. This product type requires the upload_media_bundle - // field in DisplayUploadAdInfo to be set. - HTML5_UPLOAD_AD = 2; - - // Dynamic HTML5 education ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in an education campaign. - DYNAMIC_HTML5_EDUCATION_AD = 3; - - // Dynamic HTML5 flight ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a flight campaign. - DYNAMIC_HTML5_FLIGHT_AD = 4; - - // Dynamic HTML5 hotel and rental ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a hotel campaign. - DYNAMIC_HTML5_HOTEL_RENTAL_AD = 5; - - // Dynamic HTML5 job ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a job campaign. - DYNAMIC_HTML5_JOB_AD = 6; - - // Dynamic HTML5 local ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a local campaign. - DYNAMIC_HTML5_LOCAL_AD = 7; - - // Dynamic HTML5 real estate ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a real estate campaign. - DYNAMIC_HTML5_REAL_ESTATE_AD = 8; - - // Dynamic HTML5 custom ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a custom campaign. - DYNAMIC_HTML5_CUSTOM_AD = 9; - - // Dynamic HTML5 travel ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a travel campaign. - DYNAMIC_HTML5_TRAVEL_AD = 10; - - // Dynamic HTML5 hotel ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a hotel campaign. - DYNAMIC_HTML5_HOTEL_AD = 11; - } - - -} diff --git a/google/ads/googleads/v7/enums/distance_bucket.proto b/google/ads/googleads/v7/enums/distance_bucket.proto deleted file mode 100644 index df259bf40..000000000 --- a/google/ads/googleads/v7/enums/distance_bucket.proto +++ /dev/null @@ -1,127 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DistanceBucketProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing distance buckets. - -// Container for distance buckets of a user’s distance from an advertiser’s -// location extension. -message DistanceBucketEnum { - // The distance bucket for a user’s distance from an advertiser’s location - // extension. - enum DistanceBucket { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // User was within 700m of the location. - WITHIN_700M = 2; - - // User was within 1KM of the location. - WITHIN_1KM = 3; - - // User was within 5KM of the location. - WITHIN_5KM = 4; - - // User was within 10KM of the location. - WITHIN_10KM = 5; - - // User was within 15KM of the location. - WITHIN_15KM = 6; - - // User was within 20KM of the location. - WITHIN_20KM = 7; - - // User was within 25KM of the location. - WITHIN_25KM = 8; - - // User was within 30KM of the location. - WITHIN_30KM = 9; - - // User was within 35KM of the location. - WITHIN_35KM = 10; - - // User was within 40KM of the location. - WITHIN_40KM = 11; - - // User was within 45KM of the location. - WITHIN_45KM = 12; - - // User was within 50KM of the location. - WITHIN_50KM = 13; - - // User was within 55KM of the location. - WITHIN_55KM = 14; - - // User was within 60KM of the location. - WITHIN_60KM = 15; - - // User was within 65KM of the location. - WITHIN_65KM = 16; - - // User was beyond 65KM of the location. - BEYOND_65KM = 17; - - // User was within 0.7 miles of the location. - WITHIN_0_7MILES = 18; - - // User was within 1 mile of the location. - WITHIN_1MILE = 19; - - // User was within 5 miles of the location. - WITHIN_5MILES = 20; - - // User was within 10 miles of the location. - WITHIN_10MILES = 21; - - // User was within 15 miles of the location. - WITHIN_15MILES = 22; - - // User was within 20 miles of the location. - WITHIN_20MILES = 23; - - // User was within 25 miles of the location. - WITHIN_25MILES = 24; - - // User was within 30 miles of the location. - WITHIN_30MILES = 25; - - // User was within 35 miles of the location. - WITHIN_35MILES = 26; - - // User was within 40 miles of the location. - WITHIN_40MILES = 27; - - // User was beyond 40 miles of the location. - BEYOND_40MILES = 28; - } - - -} diff --git a/google/ads/googleads/v7/enums/dsa_page_feed_criterion_field.proto b/google/ads/googleads/v7/enums/dsa_page_feed_criterion_field.proto deleted file mode 100644 index 6763b4796..000000000 --- a/google/ads/googleads/v7/enums/dsa_page_feed_criterion_field.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DsaPageFeedCriterionFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Dynamic Search Ad Page Feed criterion fields. - -// Values for Dynamic Search Ad Page Feed criterion fields. -message DsaPageFeedCriterionFieldEnum { - // Possible values for Dynamic Search Ad Page Feed criterion fields. - enum DsaPageFeedCriterionField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: URL or URL_LIST. URL of the web page you want to target. - PAGE_URL = 2; - - // Data Type: STRING_LIST. The labels that will help you target ads within - // your page feed. - LABEL = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/education_placeholder_field.proto b/google/ads/googleads/v7/enums/education_placeholder_field.proto deleted file mode 100644 index fd5f8ebe2..000000000 --- a/google/ads/googleads/v7/enums/education_placeholder_field.proto +++ /dev/null @@ -1,111 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "EducationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Education placeholder fields. - -// Values for Education placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message EducationPlaceholderFieldEnum { - // Possible values for Education placeholder fields. - enum EducationPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Combination of PROGRAM ID and LOCATION ID - // must be unique per offer. - PROGRAM_ID = 2; - - // Data Type: STRING. Combination of PROGRAM ID and LOCATION ID must be - // unique per offer. - LOCATION_ID = 3; - - // Data Type: STRING. Required. Main headline with program name to be shown - // in dynamic ad. - PROGRAM_NAME = 4; - - // Data Type: STRING. Area of study that can be shown in dynamic ad. - AREA_OF_STUDY = 5; - - // Data Type: STRING. Description of program that can be shown in dynamic - // ad. - PROGRAM_DESCRIPTION = 6; - - // Data Type: STRING. Name of school that can be shown in dynamic ad. - SCHOOL_NAME = 7; - - // Data Type: STRING. Complete school address, including postal code. - ADDRESS = 8; - - // Data Type: URL. Image to be displayed in ads. - THUMBNAIL_IMAGE_URL = 9; - - // Data Type: URL. Alternative hosted file of image to be used in the ad. - ALTERNATIVE_THUMBNAIL_IMAGE_URL = 10; - - // Data Type: URL_LIST. Required. Final URLs to be used in ad when using - // Upgraded URLs; the more specific the better (e.g. the individual URL of a - // specific program and its location). - FINAL_URLS = 11; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 12; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 13; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 14; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 15; - - // Data Type: STRING_LIST. List of recommended program IDs to show together - // with this item. - SIMILAR_PROGRAM_IDS = 16; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 17; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 18; - } - - -} diff --git a/google/ads/googleads/v7/enums/extension_setting_device.proto b/google/ads/googleads/v7/enums/extension_setting_device.proto deleted file mode 100644 index 9913a7421..000000000 --- a/google/ads/googleads/v7/enums/extension_setting_device.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionSettingDeviceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing extension setting device type. - -// Container for enum describing extension setting device types. -message ExtensionSettingDeviceEnum { - // Possible device types for an extension setting. - enum ExtensionSettingDevice { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Mobile. The extensions in the extension setting will only serve on - // mobile devices. - MOBILE = 2; - - // Desktop. The extensions in the extension setting will only serve on - // desktop devices. - DESKTOP = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/extension_type.proto b/google/ads/googleads/v7/enums/extension_type.proto deleted file mode 100644 index 88d50d19a..000000000 --- a/google/ads/googleads/v7/enums/extension_type.proto +++ /dev/null @@ -1,84 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing extension type. - -// Container for enum describing possible data types for an extension in an -// extension setting. -message ExtensionTypeEnum { - // Possible data types for an extension in an extension setting. - enum ExtensionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // None. - NONE = 2; - - // App. - APP = 3; - - // Call. - CALL = 4; - - // Callout. - CALLOUT = 5; - - // Message. - MESSAGE = 6; - - // Price. - PRICE = 7; - - // Promotion. - PROMOTION = 8; - - // Sitelink. - SITELINK = 10; - - // Structured snippet. - STRUCTURED_SNIPPET = 11; - - // Location. - LOCATION = 12; - - // Affiliate location. - AFFILIATE_LOCATION = 13; - - // Hotel callout - HOTEL_CALLOUT = 15; - - // Image. - IMAGE = 16; - } - - -} diff --git a/google/ads/googleads/v7/enums/external_conversion_source.proto b/google/ads/googleads/v7/enums/external_conversion_source.proto deleted file mode 100644 index 61cae92b1..000000000 --- a/google/ads/googleads/v7/enums/external_conversion_source.proto +++ /dev/null @@ -1,152 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ExternalConversionSourceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing the external conversion source that is -// associated with a ConversionAction. -message ExternalConversionSourceEnum { - // The external conversion source that is associated with a ConversionAction. - enum ExternalConversionSource { - // Not specified. - UNSPECIFIED = 0; - - // Represents value unknown in this version. - UNKNOWN = 1; - - // Conversion that occurs when a user navigates to a particular webpage - // after viewing an ad; Displayed in Google Ads UI as 'Website'. - WEBPAGE = 2; - - // Conversion that comes from linked Google Analytics goal or transaction; - // Displayed in Google Ads UI as 'Analytics'. - ANALYTICS = 3; - - // Website conversion that is uploaded through ConversionUploadService; - // Displayed in Google Ads UI as 'Import from clicks'. - UPLOAD = 4; - - // Conversion that occurs when a user clicks on a call extension directly on - // an ad; Displayed in Google Ads UI as 'Calls from ads'. - AD_CALL_METRICS = 5; - - // Conversion that occurs when a user calls a dynamically-generated phone - // number (by installed javascript) from an advertiser's website after - // clicking on an ad; Displayed in Google Ads UI as 'Calls from website'. - WEBSITE_CALL_METRICS = 6; - - // Conversion that occurs when a user visits an advertiser's retail store - // after clicking on a Google ad; - // Displayed in Google Ads UI as 'Store visits'. - STORE_VISITS = 7; - - // Conversion that occurs when a user takes an in-app action such as a - // purchase in an Android app; - // Displayed in Google Ads UI as 'Android in-app action'. - ANDROID_IN_APP = 8; - - // Conversion that occurs when a user takes an in-app action such as a - // purchase in an iOS app; - // Displayed in Google Ads UI as 'iOS in-app action'. - IOS_IN_APP = 9; - - // Conversion that occurs when a user opens an iOS app for the first time; - // Displayed in Google Ads UI as 'iOS app install (first open)'. - IOS_FIRST_OPEN = 10; - - // Legacy app conversions that do not have an AppPlatform provided; - // Displayed in Google Ads UI as 'Mobile app'. - APP_UNSPECIFIED = 11; - - // Conversion that occurs when a user opens an Android app for the first - // time; Displayed in Google Ads UI as 'Android app install (first open)'. - ANDROID_FIRST_OPEN = 12; - - // Call conversion that is uploaded through ConversionUploadService; - // Displayed in Google Ads UI as 'Import from calls'. - UPLOAD_CALLS = 13; - - // Conversion that comes from a linked Firebase event; - // Displayed in Google Ads UI as 'Firebase'. - FIREBASE = 14; - - // Conversion that occurs when a user clicks on a mobile phone number; - // Displayed in Google Ads UI as 'Phone number clicks'. - CLICK_TO_CALL = 15; - - // Conversion that comes from Salesforce; - // Displayed in Google Ads UI as 'Salesforce.com'. - SALESFORCE = 16; - - // Conversion that comes from in-store purchases recorded by CRM; - // Displayed in Google Ads UI as 'Store sales (data partner)'. - STORE_SALES_CRM = 17; - - // Conversion that comes from in-store purchases from payment network; - // Displayed in Google Ads UI as 'Store sales (payment network)'. - STORE_SALES_PAYMENT_NETWORK = 18; - - // Codeless Google Play conversion; - // Displayed in Google Ads UI as 'Google Play'. - GOOGLE_PLAY = 19; - - // Conversion that comes from a linked third-party app analytics event; - // Displayed in Google Ads UI as 'Third-party app analytics'. - THIRD_PARTY_APP_ANALYTICS = 20; - - // Conversion that is controlled by Google Attribution. - GOOGLE_ATTRIBUTION = 21; - - // Store Sales conversion based on first-party or third-party merchant data - // uploads. Displayed in Google Ads UI as 'Store sales (direct upload)'. - STORE_SALES_DIRECT_UPLOAD = 23; - - // Store Sales conversion based on first-party or third-party merchant - // data uploads and/or from in-store purchases using cards from payment - // networks. Displayed in Google Ads UI as 'Store sales'. - STORE_SALES = 24; - - // Conversions imported from Search Ads 360 Floodlight data. - SEARCH_ADS_360 = 25; - - // Conversions that track local actions from Google's products and services - // after interacting with an ad. - GOOGLE_HOSTED = 27; - - // Conversions reported by Floodlight tags. - FLOODLIGHT = 29; - - // Conversions that come from Google Analytics specifically for Search Ads - // 360. Displayed in Google Ads UI as Analytics (SA360). - ANALYTICS_SEARCH_ADS_360 = 31; - - // Conversion that comes from a linked Firebase event for Search Ads 360. - FIREBASE_SEARCH_ADS_360 = 33; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_attribute_type.proto b/google/ads/googleads/v7/enums/feed_attribute_type.proto deleted file mode 100644 index c8535ca44..000000000 --- a/google/ads/googleads/v7/enums/feed_attribute_type.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedAttributeTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed attribute type. - -// Container for enum describing possible data types for a feed attribute. -message FeedAttributeTypeEnum { - // Possible data types for a feed attribute. - enum FeedAttributeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Int64. - INT64 = 2; - - // Double. - DOUBLE = 3; - - // String. - STRING = 4; - - // Boolean. - BOOLEAN = 5; - - // Url. - URL = 6; - - // Datetime. - DATE_TIME = 7; - - // Int64 list. - INT64_LIST = 8; - - // Double (8 bytes) list. - DOUBLE_LIST = 9; - - // String list. - STRING_LIST = 10; - - // Boolean list. - BOOLEAN_LIST = 11; - - // Url list. - URL_LIST = 12; - - // Datetime list. - DATE_TIME_LIST = 13; - - // Price. - PRICE = 14; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_quality_approval_status.proto b/google/ads/googleads/v7/enums/feed_item_quality_approval_status.proto deleted file mode 100644 index fbcd6b37c..000000000 --- a/google/ads/googleads/v7/enums/feed_item_quality_approval_status.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemQualityApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed item quality evaluation approval statuses. - -// Container for enum describing possible quality evaluation approval statuses -// of a feed item. -message FeedItemQualityApprovalStatusEnum { - // The possible quality evaluation approval statuses of a feed item. - enum FeedItemQualityApprovalStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Meets all quality expectations. - APPROVED = 2; - - // Does not meet some quality expectations. The specific reason is found in - // the quality_disapproval_reasons field. - DISAPPROVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_quality_disapproval_reason.proto b/google/ads/googleads/v7/enums/feed_item_quality_disapproval_reason.proto deleted file mode 100644 index 02ee0276a..000000000 --- a/google/ads/googleads/v7/enums/feed_item_quality_disapproval_reason.proto +++ /dev/null @@ -1,99 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemQualityDisapprovalReasonProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed item quality disapproval reasons. - -// Container for enum describing possible quality evaluation disapproval reasons -// of a feed item. -message FeedItemQualityDisapprovalReasonEnum { - // The possible quality evaluation disapproval reasons of a feed item. - enum FeedItemQualityDisapprovalReason { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Price contains repetitive headers. - PRICE_TABLE_REPETITIVE_HEADERS = 2; - - // Price contains repetitive description. - PRICE_TABLE_REPETITIVE_DESCRIPTION = 3; - - // Price contains inconsistent items. - PRICE_TABLE_INCONSISTENT_ROWS = 4; - - // Price contains qualifiers in description. - PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS = 5; - - // Price contains an unsupported language. - PRICE_UNSUPPORTED_LANGUAGE = 6; - - // Price item header is not relevant to the price type. - PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH = 7; - - // Price item header has promotional text. - PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT = 8; - - // Price item description is not relevant to the item header. - PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT = 9; - - // Price item description contains promotional text. - PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT = 10; - - // Price item header and description are repetitive. - PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE = 11; - - // Price item is in a foreign language, nonsense, or can't be rated. - PRICE_TABLE_ROW_UNRATEABLE = 12; - - // Price item price is invalid or inaccurate. - PRICE_TABLE_ROW_PRICE_INVALID = 13; - - // Price item URL is invalid or irrelevant. - PRICE_TABLE_ROW_URL_INVALID = 14; - - // Price item header or description has price. - PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE = 15; - - // Structured snippet values do not match the header. - STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED = 16; - - // Structured snippet values are repeated. - STRUCTURED_SNIPPETS_REPEATED_VALUES = 17; - - // Structured snippet values violate editorial guidelines like punctuation. - STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES = 18; - - // Structured snippet contain promotional text. - STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT = 19; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_set_status.proto b/google/ads/googleads/v7/enums/feed_item_set_status.proto deleted file mode 100644 index 1c45a27d8..000000000 --- a/google/ads/googleads/v7/enums/feed_item_set_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed item set status. - -// Container for enum describing possible statuses of a feed item set. -message FeedItemSetStatusEnum { - // Possible statuses of a feed item set. - enum FeedItemSetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item set is enabled. - ENABLED = 2; - - // Feed item set has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_set_string_filter_type.proto b/google/ads/googleads/v7/enums/feed_item_set_string_filter_type.proto deleted file mode 100644 index c0a79eb82..000000000 --- a/google/ads/googleads/v7/enums/feed_item_set_string_filter_type.proto +++ /dev/null @@ -1,45 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetStringFilterTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// The type of string matching to be used for a dynamic FeedItemSet filter. -message FeedItemSetStringFilterTypeEnum { - // describe the possible types for a FeedItemSetStringFilter. - enum FeedItemSetStringFilterType { - // Not specified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The dynamic set filter will use exact string matching. - EXACT = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_status.proto b/google/ads/googleads/v7/enums/feed_item_status.proto deleted file mode 100644 index 61dc831ec..000000000 --- a/google/ads/googleads/v7/enums/feed_item_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed item status. - -// Container for enum describing possible statuses of a feed item. -message FeedItemStatusEnum { - // Possible statuses of a feed item. - enum FeedItemStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item is enabled. - ENABLED = 2; - - // Feed item has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_target_device.proto b/google/ads/googleads/v7/enums/feed_item_target_device.proto deleted file mode 100644 index 5586acb17..000000000 --- a/google/ads/googleads/v7/enums/feed_item_target_device.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetDeviceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed item target device type. - -// Container for enum describing possible data types for a feed item target -// device. -message FeedItemTargetDeviceEnum { - // Possible data types for a feed item target device. - enum FeedItemTargetDevice { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile. - MOBILE = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_target_status.proto b/google/ads/googleads/v7/enums/feed_item_target_status.proto deleted file mode 100644 index f284c131d..000000000 --- a/google/ads/googleads/v7/enums/feed_item_target_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed item target status. - -// Container for enum describing possible statuses of a feed item target. -message FeedItemTargetStatusEnum { - // Possible statuses of a feed item target. - enum FeedItemTargetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item target is enabled. - ENABLED = 2; - - // Feed item target has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_target_type.proto b/google/ads/googleads/v7/enums/feed_item_target_type.proto deleted file mode 100644 index dd7102ed0..000000000 --- a/google/ads/googleads/v7/enums/feed_item_target_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed item target type status. - -// Container for enum describing possible types of a feed item target. -message FeedItemTargetTypeEnum { - // Possible type of a feed item target. - enum FeedItemTargetType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item targets a campaign. - CAMPAIGN = 2; - - // Feed item targets an ad group. - AD_GROUP = 3; - - // Feed item targets a criterion. - CRITERION = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_item_validation_status.proto b/google/ads/googleads/v7/enums/feed_item_validation_status.proto deleted file mode 100644 index c45b07e7d..000000000 --- a/google/ads/googleads/v7/enums/feed_item_validation_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemValidationStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed item validation statuses. - -// Container for enum describing possible validation statuses of a feed item. -message FeedItemValidationStatusEnum { - // The possible validation statuses of a feed item. - enum FeedItemValidationStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Validation pending. - PENDING = 2; - - // An error was found. - INVALID = 3; - - // Feed item is semantically well-formed. - VALID = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_link_status.proto b/google/ads/googleads/v7/enums/feed_link_status.proto deleted file mode 100644 index 09913f279..000000000 --- a/google/ads/googleads/v7/enums/feed_link_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedLinkStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing status of a feed link. - -// Container for an enum describing possible statuses of a feed link. -message FeedLinkStatusEnum { - // Possible statuses of a feed link. - enum FeedLinkStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed link is enabled. - ENABLED = 2; - - // Feed link has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_mapping_criterion_type.proto b/google/ads/googleads/v7/enums/feed_mapping_criterion_type.proto deleted file mode 100644 index f494b1aa5..000000000 --- a/google/ads/googleads/v7/enums/feed_mapping_criterion_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingCriterionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing criterion types for feed mappings. - -// Container for enum describing possible criterion types for a feed mapping. -message FeedMappingCriterionTypeEnum { - // Possible placeholder types for a feed mapping. - enum FeedMappingCriterionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Allows campaign targeting at locations within a location feed. - LOCATION_EXTENSION_TARGETING = 4; - - // Allows url targeting for your dynamic search ads within a page feed. - DSA_PAGE_FEED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_mapping_status.proto b/google/ads/googleads/v7/enums/feed_mapping_status.proto deleted file mode 100644 index 4e887af50..000000000 --- a/google/ads/googleads/v7/enums/feed_mapping_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed mapping status. - -// Container for enum describing possible statuses of a feed mapping. -message FeedMappingStatusEnum { - // Possible statuses of a feed mapping. - enum FeedMappingStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed mapping is enabled. - ENABLED = 2; - - // Feed mapping has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/feed_origin.proto b/google/ads/googleads/v7/enums/feed_origin.proto deleted file mode 100644 index 4064f6c1d..000000000 --- a/google/ads/googleads/v7/enums/feed_origin.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedOriginProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed origin. - -// Container for enum describing possible values for a feed origin. -message FeedOriginEnum { - // Possible values for a feed origin. - enum FeedOrigin { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The FeedAttributes for this Feed are managed by the - // user. Users can add FeedAttributes to this Feed. - USER = 2; - - // The FeedAttributes for an 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/google/ads/googleads/v7/enums/feed_status.proto b/google/ads/googleads/v7/enums/feed_status.proto deleted file mode 100644 index adec627b1..000000000 --- a/google/ads/googleads/v7/enums/feed_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed status. - -// Container for enum describing possible statuses of a feed. -message FeedStatusEnum { - // Possible statuses of a feed. - enum FeedStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed is enabled. - ENABLED = 2; - - // Feed has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/flight_placeholder_field.proto b/google/ads/googleads/v7/enums/flight_placeholder_field.proto deleted file mode 100644 index 1bc54ad7c..000000000 --- a/google/ads/googleads/v7/enums/flight_placeholder_field.proto +++ /dev/null @@ -1,118 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FlightsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Flight placeholder fields. - -// Values for Flight placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message FlightPlaceholderFieldEnum { - // Possible values for Flight placeholder fields. - enum FlightPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Destination id. Example: PAR, LON. - // For feed items that only have destination id, destination id must be a - // unique key. For feed items that have both destination id and origin id, - // then the combination must be a unique key. - DESTINATION_ID = 2; - - // Data Type: STRING. Origin id. Example: PAR, LON. - // Optional. Combination of destination id and origin id must be unique per - // offer. - ORIGIN_ID = 3; - - // Data Type: STRING. Required. Main headline with product name to be shown - // in dynamic ad. - FLIGHT_DESCRIPTION = 4; - - // Data Type: STRING. Shorter names are recommended. - ORIGIN_NAME = 5; - - // Data Type: STRING. Shorter names are recommended. - DESTINATION_NAME = 6; - - // Data Type: STRING. Price to be shown in the ad. - // Example: "100.00 USD" - FLIGHT_PRICE = 7; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 8; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - FLIGHT_SALE_PRICE = 9; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 10; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 11; - - // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded - // URLs. User will be redirected to these URLs when they click on an ad, or - // when they click on a specific flight for ads that show multiple - // flights. - FINAL_URLS = 12; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 13; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 14; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 15; - - // Data Type: STRING_LIST. List of recommended destination IDs to show - // together with this item. - SIMILAR_DESTINATION_IDS = 16; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 17; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 18; - } - - -} diff --git a/google/ads/googleads/v7/enums/frequency_cap_event_type.proto b/google/ads/googleads/v7/enums/frequency_cap_event_type.proto deleted file mode 100644 index 7605dd309..000000000 --- a/google/ads/googleads/v7/enums/frequency_cap_event_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FrequencyCapEventTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing frequency caps. - -// Container for enum describing the type of event that the cap applies to. -message FrequencyCapEventTypeEnum { - // The type of event that the cap applies to (e.g. impression). - enum FrequencyCapEventType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The cap applies on ad impressions. - IMPRESSION = 2; - - // The cap applies on video ad views. - VIDEO_VIEW = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/frequency_cap_level.proto b/google/ads/googleads/v7/enums/frequency_cap_level.proto deleted file mode 100644 index 866fc1a2d..000000000 --- a/google/ads/googleads/v7/enums/frequency_cap_level.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FrequencyCapLevelProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing frequency caps. - -// Container for enum describing the level on which the cap is to be applied. -message FrequencyCapLevelEnum { - // The level on which the cap is to be applied (e.g ad group ad, ad group). - // Cap is applied to all the resources of this level. - enum FrequencyCapLevel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The cap is applied at the ad group ad level. - AD_GROUP_AD = 2; - - // The cap is applied at the ad group level. - AD_GROUP = 3; - - // The cap is applied at the campaign level. - CAMPAIGN = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/frequency_cap_time_unit.proto b/google/ads/googleads/v7/enums/frequency_cap_time_unit.proto deleted file mode 100644 index bfd770912..000000000 --- a/google/ads/googleads/v7/enums/frequency_cap_time_unit.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FrequencyCapTimeUnitProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing frequency caps. - -// Container for enum describing the unit of time the cap is defined at. -message FrequencyCapTimeUnitEnum { - // Unit of time the cap is defined at (e.g. day, week). - enum FrequencyCapTimeUnit { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The cap would define limit per one day. - DAY = 2; - - // The cap would define limit per one week. - WEEK = 3; - - // The cap would define limit per one month. - MONTH = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/gender_type.proto b/google/ads/googleads/v7/enums/gender_type.proto deleted file mode 100644 index 2d9ca18ef..000000000 --- a/google/ads/googleads/v7/enums/gender_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GenderTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing gender types. - -// Container for enum describing the type of demographic genders. -message GenderTypeEnum { - // The type of demographic genders (e.g. female). - enum GenderType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Male. - MALE = 10; - - // Female. - FEMALE = 11; - - // Undetermined gender. - UNDETERMINED = 20; - } - - -} diff --git a/google/ads/googleads/v7/enums/geo_target_constant_status.proto b/google/ads/googleads/v7/enums/geo_target_constant_status.proto deleted file mode 100644 index 9e4d8e58d..000000000 --- a/google/ads/googleads/v7/enums/geo_target_constant_status.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetConstantStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing geo target constant statuses. - -// Container for describing the status of a geo target constant. -message GeoTargetConstantStatusEnum { - // The possible statuses of a geo target constant. - enum GeoTargetConstantStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The geo target constant is valid. - ENABLED = 2; - - // The geo target constant is obsolete and will be removed. - REMOVAL_PLANNED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/geo_targeting_restriction.proto b/google/ads/googleads/v7/enums/geo_targeting_restriction.proto deleted file mode 100644 index 9267cb9df..000000000 --- a/google/ads/googleads/v7/enums/geo_targeting_restriction.proto +++ /dev/null @@ -1,49 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetingRestrictionProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing GeoTargetingRestriction. - -// Message describing feed item geo targeting restriction. -message GeoTargetingRestrictionEnum { - // A restriction used to determine if the request context's - // geo should be matched. - enum GeoTargetingRestriction { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Indicates that request context should match the physical location of - // the user. - LOCATION_OF_PRESENCE = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/geo_targeting_type.proto b/google/ads/googleads/v7/enums/geo_targeting_type.proto deleted file mode 100644 index d412a9885..000000000 --- a/google/ads/googleads/v7/enums/geo_targeting_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetingTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing geo targeting types. - -// Container for enum describing possible geo targeting types. -message GeoTargetingTypeEnum { - // The possible geo targeting types. - enum GeoTargetingType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Location the user is interested in while making the query. - AREA_OF_INTEREST = 2; - - // Location of the user issuing the query. - LOCATION_OF_PRESENCE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/google_ads_field_category.proto b/google/ads/googleads/v7/enums/google_ads_field_category.proto deleted file mode 100644 index 9cf6e5843..000000000 --- a/google/ads/googleads/v7/enums/google_ads_field_category.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsFieldCategoryProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing GoogleAdsField categories. - -// Container for enum that determines if the described artifact is a resource -// or a field, and if it is a field, when it segments search queries. -message GoogleAdsFieldCategoryEnum { - // The category of the artifact. - enum GoogleAdsFieldCategory { - // Unspecified - UNSPECIFIED = 0; - - // Unknown - UNKNOWN = 1; - - // The described artifact is a resource. - RESOURCE = 2; - - // The described artifact is a field and is an attribute of a resource. - // Including a resource attribute field in a query may segment the query if - // the resource to which it is attributed segments the resource found in - // the FROM clause. - ATTRIBUTE = 3; - - // The described artifact is a field and always segments search queries. - SEGMENT = 5; - - // The described artifact is a field and is a metric. It never segments - // search queries. - METRIC = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/google_ads_field_data_type.proto b/google/ads/googleads/v7/enums/google_ads_field_data_type.proto deleted file mode 100644 index 2630ef208..000000000 --- a/google/ads/googleads/v7/enums/google_ads_field_data_type.proto +++ /dev/null @@ -1,102 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsFieldDataTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing GoogleAdsField data types. - -// Container holding the various data types. -message GoogleAdsFieldDataTypeEnum { - // These are the various types a GoogleAdsService artifact may take on. - enum GoogleAdsFieldDataType { - // Unspecified - UNSPECIFIED = 0; - - // Unknown - UNKNOWN = 1; - - // Maps to google.protobuf.BoolValue - // - // Applicable operators: =, != - BOOLEAN = 2; - - // Maps to google.protobuf.StringValue. It can be compared using the set of - // operators specific to dates however. - // - // Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN - DATE = 3; - - // Maps to google.protobuf.DoubleValue - // - // Applicable operators: =, !=, <, >, IN, NOT IN - DOUBLE = 4; - - // Maps to an enum. It's specific definition can be found at type_url. - // - // Applicable operators: =, !=, IN, NOT IN - ENUM = 5; - - // Maps to google.protobuf.FloatValue - // - // Applicable operators: =, !=, <, >, IN, NOT IN - FLOAT = 6; - - // Maps to google.protobuf.Int32Value - // - // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN - INT32 = 7; - - // Maps to google.protobuf.Int64Value - // - // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN - INT64 = 8; - - // Maps to a protocol buffer message type. The data type's details can be - // found in type_url. - // - // No operators work with MESSAGE fields. - MESSAGE = 9; - - // Maps to google.protobuf.StringValue. Represents the resource name - // (unique id) of a resource or one of its foreign keys. - // - // No operators work with RESOURCE_NAME fields. - RESOURCE_NAME = 10; - - // Maps to google.protobuf.StringValue. - // - // Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN - STRING = 11; - - // Maps to google.protobuf.UInt64Value - // - // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN - UINT64 = 12; - } - - -} diff --git a/google/ads/googleads/v7/enums/google_voice_call_status.proto b/google/ads/googleads/v7/enums/google_voice_call_status.proto deleted file mode 100644 index ecfb9d166..000000000 --- a/google/ads/googleads/v7/enums/google_voice_call_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GoogleVoiceCallStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing google voice call status. - -// Container for enum describing possible statuses of a google voice call. -message GoogleVoiceCallStatusEnum { - // Possible statuses of a google voice call. - enum GoogleVoiceCallStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The call was missed. - MISSED = 2; - - // The call was received. - RECEIVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/hotel_date_selection_type.proto b/google/ads/googleads/v7/enums/hotel_date_selection_type.proto deleted file mode 100644 index d7887cd92..000000000 --- a/google/ads/googleads/v7/enums/hotel_date_selection_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "HotelDateSelectionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing hotel date selection types. - -// Container for enum describing possible hotel date selection types -message HotelDateSelectionTypeEnum { - // Enum describing possible hotel date selection types. - enum HotelDateSelectionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Dates selected by default. - DEFAULT_SELECTION = 50; - - // Dates selected by the user. - USER_SELECTED = 51; - } - - -} diff --git a/google/ads/googleads/v7/enums/hotel_placeholder_field.proto b/google/ads/googleads/v7/enums/hotel_placeholder_field.proto deleted file mode 100644 index 10079485a..000000000 --- a/google/ads/googleads/v7/enums/hotel_placeholder_field.proto +++ /dev/null @@ -1,124 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "HotelsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Hotel placeholder fields. - -// Values for Hotel placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message HotelPlaceholderFieldEnum { - // Possible values for Hotel placeholder fields. - enum HotelPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Unique ID. - PROPERTY_ID = 2; - - // Data Type: STRING. Required. Main headline with property name to be shown - // in dynamic ad. - PROPERTY_NAME = 3; - - // Data Type: STRING. Name of destination to be shown in dynamic ad. - DESTINATION_NAME = 4; - - // Data Type: STRING. Description of destination to be shown in dynamic ad. - DESCRIPTION = 5; - - // Data Type: STRING. Complete property address, including postal code. - ADDRESS = 6; - - // Data Type: STRING. Price to be shown in the ad. - // Example: "100.00 USD" - PRICE = 7; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 8; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - SALE_PRICE = 9; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 10; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 11; - - // Data Type: STRING. Category of property used to group like items together - // for recommendation engine. - CATEGORY = 12; - - // Data Type: INT64. Star rating (1 to 5) used to group like items - // together for recommendation engine. - STAR_RATING = 13; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 14; - - // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded - // URLs. User will be redirected to these URLs when they click on an ad, or - // when they click on a specific flight for ads that show multiple - // flights. - FINAL_URLS = 15; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 16; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 17; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 18; - - // Data Type: STRING_LIST. List of recommended property IDs to show together - // with this item. - SIMILAR_PROPERTY_IDS = 19; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 20; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 21; - } - - -} diff --git a/google/ads/googleads/v7/enums/hotel_price_bucket.proto b/google/ads/googleads/v7/enums/hotel_price_bucket.proto deleted file mode 100644 index 1ec440b69..000000000 --- a/google/ads/googleads/v7/enums/hotel_price_bucket.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "HotelPriceBucketProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing hotel price buckets. - -// Container for enum describing hotel price bucket for a hotel itinerary. -message HotelPriceBucketEnum { - // Enum describing possible hotel price buckets. - enum HotelPriceBucket { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Uniquely lowest price. Partner has the lowest price, and no other - // partners are within a small variance of that price. - LOWEST_UNIQUE = 2; - - // Tied for lowest price. Partner is within a small variance of the lowest - // price. - LOWEST_TIED = 3; - - // Not lowest price. Partner is not within a small variance of the lowest - // price. - NOT_LOWEST = 4; - - // Partner was the only one shown. - ONLY_PARTNER_SHOWN = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/hotel_rate_type.proto b/google/ads/googleads/v7/enums/hotel_rate_type.proto deleted file mode 100644 index 46e598d37..000000000 --- a/google/ads/googleads/v7/enums/hotel_rate_type.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "HotelRateTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing hotel rate types. - -// Container for enum describing possible hotel rate types. -message HotelRateTypeEnum { - // Enum describing possible hotel rate types. - enum HotelRateType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Rate type information is unavailable. - UNAVAILABLE = 2; - - // Rates available to everyone. - PUBLIC_RATE = 3; - - // A membership program rate is available and satisfies basic requirements - // like having a public rate available. UI treatment will strikethrough the - // public rate and indicate that a discount is available to the user. For - // more on Qualified Rates, visit - // https://developers.google.com/hotels/hotel-ads/dev-guide/qualified-rates - QUALIFIED_RATE = 4; - - // Rates available to users that satisfy some eligibility criteria. e.g. - // all signed-in users, 20% of mobile users, all mobile users in Canada, - // etc. - PRIVATE_RATE = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/image_placeholder_field.proto b/google/ads/googleads/v7/enums/image_placeholder_field.proto deleted file mode 100644 index 7566a5a8f..000000000 --- a/google/ads/googleads/v7/enums/image_placeholder_field.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ImagePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Advertiser Provided Image placeholder fields. - -// Values for Advertiser Provided Image placeholder fields. -message ImagePlaceholderFieldEnum { - // Possible values for Advertiser Provided Image placeholder fields. - enum ImagePlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: INT64. The asset ID of the image. - ASSET_ID = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/income_range_type.proto b/google/ads/googleads/v7/enums/income_range_type.proto deleted file mode 100644 index 63a28bede..000000000 --- a/google/ads/googleads/v7/enums/income_range_type.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "IncomeRangeTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing income range types. - -// Container for enum describing the type of demographic income ranges. -message IncomeRangeTypeEnum { - // The type of demographic income ranges (e.g. between 0% to 50%). - enum IncomeRangeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // 0%-50%. - INCOME_RANGE_0_50 = 510001; - - // 50% to 60%. - INCOME_RANGE_50_60 = 510002; - - // 60% to 70%. - INCOME_RANGE_60_70 = 510003; - - // 70% to 80%. - INCOME_RANGE_70_80 = 510004; - - // 80% to 90%. - INCOME_RANGE_80_90 = 510005; - - // Greater than 90%. - INCOME_RANGE_90_UP = 510006; - - // Undetermined income range. - INCOME_RANGE_UNDETERMINED = 510000; - } - - -} diff --git a/google/ads/googleads/v7/enums/interaction_event_type.proto b/google/ads/googleads/v7/enums/interaction_event_type.proto deleted file mode 100644 index 79441cac9..000000000 --- a/google/ads/googleads/v7/enums/interaction_event_type.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "InteractionEventTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing types of payable and free interactions. - -// Container for enum describing types of payable and free interactions. -message InteractionEventTypeEnum { - // Enum describing possible types of payable and free interactions. - enum InteractionEventType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Click to site. In most cases, this interaction navigates to an external - // location, usually the advertiser's landing page. This is also the default - // InteractionEventType for click events. - CLICK = 2; - - // The user's expressed intent to engage with the ad in-place. - ENGAGEMENT = 3; - - // User viewed a video ad. - VIDEO_VIEW = 4; - - // The default InteractionEventType for ad conversion events. - // This is used when an ad conversion row does NOT indicate - // that the free interactions (i.e., the ad conversions) - // should be 'promoted' and reported as part of the core metrics. - // These are simply other (ad) conversions. - NONE = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/interaction_type.proto b/google/ads/googleads/v7/enums/interaction_type.proto deleted file mode 100644 index 9a22653f0..000000000 --- a/google/ads/googleads/v7/enums/interaction_type.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "InteractionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing interaction types. - -// Container for enum describing possible interaction types. -message InteractionTypeEnum { - // Enum describing possible interaction types. - enum InteractionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Calls. - CALLS = 8000; - } - - -} diff --git a/google/ads/googleads/v7/enums/invoice_type.proto b/google/ads/googleads/v7/enums/invoice_type.proto deleted file mode 100644 index 991d92c04..000000000 --- a/google/ads/googleads/v7/enums/invoice_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "InvoiceTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing invoice types. - -// Container for enum describing the type of invoices. -message InvoiceTypeEnum { - // The possible type of invoices. - enum InvoiceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // An invoice with a negative amount. The account receives a credit. - CREDIT_MEMO = 2; - - // An invoice with a positive amount. The account owes a balance. - INVOICE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/job_placeholder_field.proto b/google/ads/googleads/v7/enums/job_placeholder_field.proto deleted file mode 100644 index d3dd0aaf7..000000000 --- a/google/ads/googleads/v7/enums/job_placeholder_field.proto +++ /dev/null @@ -1,115 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "JobsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Job placeholder fields. - -// Values for Job placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message JobPlaceholderFieldEnum { - // Possible values for Job placeholder fields. - enum JobPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. If only JOB_ID is specified, then it must be - // unique. If both JOB_ID and LOCATION_ID are specified, then the - // pair must be unique. - // ID) pair must be unique. - JOB_ID = 2; - - // Data Type: STRING. Combination of JOB_ID and LOCATION_ID must be unique - // per offer. - LOCATION_ID = 3; - - // Data Type: STRING. Required. Main headline with job title to be shown in - // dynamic ad. - TITLE = 4; - - // Data Type: STRING. Job subtitle to be shown in dynamic ad. - SUBTITLE = 5; - - // Data Type: STRING. Description of job to be shown in dynamic ad. - DESCRIPTION = 6; - - // Data Type: URL. Image to be displayed in the ad. Highly recommended for - // image ads. - IMAGE_URL = 7; - - // Data Type: STRING. Category of property used to group like items together - // for recommendation engine. - CATEGORY = 8; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 9; - - // Data Type: STRING. Complete property address, including postal code. - ADDRESS = 10; - - // Data Type: STRING. Salary or salary range of job to be shown in dynamic - // ad. - SALARY = 11; - - // Data Type: URL_LIST. Required. Final URLs to be used in ad when using - // Upgraded URLs; the more specific the better (e.g. the individual URL of a - // specific job and its location). - FINAL_URLS = 12; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 14; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 15; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 16; - - // Data Type: STRING_LIST. List of recommended job IDs to show together with - // this item. - SIMILAR_JOB_IDS = 17; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 18; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 19; - } - - -} diff --git a/google/ads/googleads/v7/enums/keyword_match_type.proto b/google/ads/googleads/v7/enums/keyword_match_type.proto deleted file mode 100644 index 97335b0a9..000000000 --- a/google/ads/googleads/v7/enums/keyword_match_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordMatchTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Keyword match types. - -// Message describing Keyword match types. -message KeywordMatchTypeEnum { - // Possible Keyword match types. - enum KeywordMatchType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Exact match. - EXACT = 2; - - // Phrase match. - PHRASE = 3; - - // Broad match. - BROAD = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/keyword_plan_aggregate_metric_type.proto b/google/ads/googleads/v7/enums/keyword_plan_aggregate_metric_type.proto deleted file mode 100644 index bcabce515..000000000 --- a/google/ads/googleads/v7/enums/keyword_plan_aggregate_metric_type.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAggregateMetricTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing keyword plan aggregate metric types. - -// The enumeration of keyword plan aggregate metric types. -message KeywordPlanAggregateMetricTypeEnum { - // Aggregate fields. - enum KeywordPlanAggregateMetricType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // The device breakdown of aggregate search volume. - DEVICE = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/keyword_plan_competition_level.proto b/google/ads/googleads/v7/enums/keyword_plan_competition_level.proto deleted file mode 100644 index d0cb77ab6..000000000 --- a/google/ads/googleads/v7/enums/keyword_plan_competition_level.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCompetitionLevelProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Keyword Planner competition levels. - -// Container for enumeration of keyword competition levels. The competition -// level indicates how competitive ad placement is for a keyword and -// is determined by the number of advertisers bidding on that keyword relative -// to all keywords across Google. The competition level can depend on the -// location and Search Network targeting options you've selected. -message KeywordPlanCompetitionLevelEnum { - // Competition level of a keyword. - enum KeywordPlanCompetitionLevel { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Low competition. The Competition Index range for this is [0, 33]. - LOW = 2; - - // Medium competition. The Competition Index range for this is [34, 66]. - MEDIUM = 3; - - // High competition. The Competition Index range for this is [67, 100]. - HIGH = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/keyword_plan_concept_group_type.proto b/google/ads/googleads/v7/enums/keyword_plan_concept_group_type.proto deleted file mode 100644 index 69dcfd63a..000000000 --- a/google/ads/googleads/v7/enums/keyword_plan_concept_group_type.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanConceptGroupTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Keyword Planner Concept Group types. - -// Container for enumeration of keyword plan concept group types. -message KeywordPlanConceptGroupTypeEnum { - // Enumerates keyword plan concept group types. - enum KeywordPlanConceptGroupType { - // The concept group classification different from brand/non-brand. - // This is a catch all bucket for all classifications that are none of the - // below. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // The concept group classification is based on BRAND. - BRAND = 2; - - // The concept group classification based on BRAND, that didn't fit well - // with the BRAND classifications. These are generally outliers and can have - // very few keywords in this type of classification. - OTHER_BRANDS = 3; - - // These concept group classification is not based on BRAND. This is - // returned for generic keywords that don't have a brand association. - NON_BRAND = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/keyword_plan_forecast_interval.proto b/google/ads/googleads/v7/enums/keyword_plan_forecast_interval.proto deleted file mode 100644 index 1ec27b376..000000000 --- a/google/ads/googleads/v7/enums/keyword_plan_forecast_interval.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanForecastIntervalProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing keyword plan forecast intervals. - -// Container for enumeration of forecast intervals. -message KeywordPlanForecastIntervalEnum { - // Forecast intervals. - enum KeywordPlanForecastInterval { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // The next week date range for keyword plan. The next week is based - // on the default locale of the user's account and is mostly SUN-SAT or - // MON-SUN. - // This can be different from next-7 days. - NEXT_WEEK = 3; - - // The next month date range for keyword plan. - NEXT_MONTH = 4; - - // The next quarter date range for keyword plan. - NEXT_QUARTER = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/keyword_plan_keyword_annotation.proto b/google/ads/googleads/v7/enums/keyword_plan_keyword_annotation.proto deleted file mode 100644 index e6f1fa1a9..000000000 --- a/google/ads/googleads/v7/enums/keyword_plan_keyword_annotation.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanKeywordAnnotationProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Keyword Planner Keyword annotation types. - -// Container for enumeration of keyword plan keyword annotations. -message KeywordPlanKeywordAnnotationEnum { - // Enumerates keyword plan annotations that can be requested. - enum KeywordPlanKeywordAnnotation { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Return the keyword concept and concept group data. - KEYWORD_CONCEPT = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/keyword_plan_network.proto b/google/ads/googleads/v7/enums/keyword_plan_network.proto deleted file mode 100644 index e9252c77d..000000000 --- a/google/ads/googleads/v7/enums/keyword_plan_network.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanNetworkProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Keyword Planner forecastable network types. - -// Container for enumeration of keyword plan forecastable network types. -message KeywordPlanNetworkEnum { - // Enumerates keyword plan forecastable network types. - enum KeywordPlanNetwork { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Google Search. - GOOGLE_SEARCH = 2; - - // Google Search + Search partners. - GOOGLE_SEARCH_AND_PARTNERS = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/label_status.proto b/google/ads/googleads/v7/enums/label_status.proto deleted file mode 100644 index f6f6b0ba6..000000000 --- a/google/ads/googleads/v7/enums/label_status.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LabelStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing possible status of a label. -message LabelStatusEnum { - // Possible statuses of a label. - enum LabelStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Label is enabled. - ENABLED = 2; - - // Label is removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/lead_form_call_to_action_type.proto b/google/ads/googleads/v7/enums/lead_form_call_to_action_type.proto deleted file mode 100644 index 1e14a5841..000000000 --- a/google/ads/googleads/v7/enums/lead_form_call_to_action_type.proto +++ /dev/null @@ -1,84 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LeadFormCallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Describes the type of call-to-action phrases in a lead form. -message LeadFormCallToActionTypeEnum { - // Enum describing the type of call-to-action phrases in a lead form. - enum LeadFormCallToActionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Learn more. - LEARN_MORE = 2; - - // Get quote. - GET_QUOTE = 3; - - // Apply now. - APPLY_NOW = 4; - - // Sign Up. - SIGN_UP = 5; - - // Contact us. - CONTACT_US = 6; - - // Subscribe. - SUBSCRIBE = 7; - - // Download. - DOWNLOAD = 8; - - // Book now. - BOOK_NOW = 9; - - // Get offer. - GET_OFFER = 10; - - // Register. - REGISTER = 11; - - // Get info. - GET_INFO = 12; - - // Request a demo. - REQUEST_DEMO = 13; - - // Join now. - JOIN_NOW = 14; - - // Get started. - GET_STARTED = 15; - } - - -} diff --git a/google/ads/googleads/v7/enums/lead_form_desired_intent.proto b/google/ads/googleads/v7/enums/lead_form_desired_intent.proto deleted file mode 100644 index fe5053758..000000000 --- a/google/ads/googleads/v7/enums/lead_form_desired_intent.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LeadFormDesiredIntentProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Describes the desired level of intent of generated leads. -message LeadFormDesiredIntentEnum { - // Enum describing the desired level of intent of generated leads. - enum LeadFormDesiredIntent { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Deliver more leads at a potentially lower quality. - LOW_INTENT = 2; - - // Deliver leads that are more qualified. - HIGH_INTENT = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/lead_form_field_user_input_type.proto b/google/ads/googleads/v7/enums/lead_form_field_user_input_type.proto deleted file mode 100644 index f7fc05725..000000000 --- a/google/ads/googleads/v7/enums/lead_form_field_user_input_type.proto +++ /dev/null @@ -1,273 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LeadFormFieldUserInputTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Describes the input type of a lead form field. -message LeadFormFieldUserInputTypeEnum { - // Enum describing the input type of a lead form field. - enum LeadFormFieldUserInputType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The user will be asked to fill in their given and family name. This field - // cannot be set at the same time as GIVEN_NAME or FAMILY_NAME. - FULL_NAME = 2; - - // The user will be asked to fill in their given name (first name). This - // field can not be set at the same time as FULL_NAME. - GIVEN_NAME = 6; - - // The user will be asked to fill in their family name (last name). This - // field can not be set at the same time as FULL_NAME. - FAMILY_NAME = 7; - - // The user will be asked to fill in their email address. - EMAIL = 3; - - // The user will be asked to fill in their phone number. - PHONE_NUMBER = 4; - - // The user will be asked to fill in their zip code. - POSTAL_CODE = 5; - - // The user will be asked to fill in their city. - CITY = 9; - - // The user will be asked to fill in their region part of the address (e.g. - // state for US, province for Canada). - REGION = 10; - - // The user will be asked to fill in their country. - COUNTRY = 11; - - // The user will be asked to fill in their work email address. - WORK_EMAIL = 12; - - // The user will be asked to fill in their company name. - COMPANY_NAME = 13; - - // The user will be asked to fill in their work phone. - WORK_PHONE = 14; - - // The user will be asked to fill in their job title. - JOB_TITLE = 15; - - // Question: "Which model are you interested in?" - // Category: "Auto" - VEHICLE_MODEL = 1001; - - // Question: "Which type of vehicle are you interested in?" - // Category: "Auto" - VEHICLE_TYPE = 1002; - - // Question: "What is your preferred dealership?" - // Category: "Auto" - PREFERRED_DEALERSHIP = 1003; - - // Question: "When do you plan on purchasing a vehicle?" - // Category: "Auto" - VEHICLE_PURCHASE_TIMELINE = 1004; - - // Question: "Do you own a vehicle?" - // Category: "Auto" - VEHICLE_OWNERSHIP = 1005; - - // Question: "What vehicle ownership option are you interested in?" - // Category: "Auto" - VEHICLE_PAYMENT_TYPE = 1009; - - // Question: "What type of vehicle condition are you interested in?" - // Category: "Auto" - VEHICLE_CONDITION = 1010; - - // Question: "What size is your company?" - // Category: "Business" - COMPANY_SIZE = 1006; - - // Question: "What is your annual sales volume?" - // Category: "Business" - ANNUAL_SALES = 1007; - - // Question: "How many years have you been in business?" - // Category: "Business" - YEARS_IN_BUSINESS = 1008; - - // Question: "What is your job department?" - // Category: "Business" - JOB_DEPARTMENT = 1011; - - // Question: "What is your job role?" - // Category: "Business" - JOB_ROLE = 1012; - - // Question: "Which program are you interested in?" - // Category: "Education" - EDUCATION_PROGRAM = 1013; - - // Question: "Which course are you interested in?" - // Category: "Education" - EDUCATION_COURSE = 1014; - - // Question: "Which product are you interested in?" - // Category: "General" - PRODUCT = 1016; - - // Question: "Which service are you interested in?" - // Category: "General" - SERVICE = 1017; - - // Question: "Which offer are you interested in?" - // Category: "General" - OFFER = 1018; - - // Question: "Which category are you interested in?" - // Category: "General" - CATEGORY = 1019; - - // Question: "What is your preferred method of contact?" - // Category: "General" - PREFERRED_CONTACT_METHOD = 1020; - - // Question: "What is your preferred location?" - // Category: "General" - PREFERRED_LOCATION = 1021; - - // Question: "What is the best time to contact you?" - // Category: "General" - PREFERRED_CONTACT_TIME = 1022; - - // Question: "When are you looking to make a purchase?" - // Category: "General" - PURCHASE_TIMELINE = 1023; - - // Question: "How many years of work experience do you have?" - // Category: "Jobs" - YEARS_OF_EXPERIENCE = 1048; - - // Question: "What industry do you work in?" - // Category: "Jobs" - JOB_INDUSTRY = 1049; - - // Question: "What is your highest level of education?" - // Category: "Jobs" - LEVEL_OF_EDUCATION = 1050; - - // Question: "What type of property are you looking for?" - // Category: "Real Estate" - PROPERTY_TYPE = 1024; - - // Question: "What do you need a realtor's help with?" - // Category: "Real Estate" - REALTOR_HELP_GOAL = 1025; - - // Question: "What neighborhood are you interested in?" - // Category: "Real Estate" - PROPERTY_COMMUNITY = 1026; - - // Question: "What price range are you looking for?" - // Category: "Real Estate" - PRICE_RANGE = 1027; - - // Question: "How many bedrooms are you looking for?" - // Category: "Real Estate" - NUMBER_OF_BEDROOMS = 1028; - - // Question: "Are you looking for a fully furnished property?" - // Category: "Real Estate" - FURNISHED_PROPERTY = 1029; - - // Question: "Are you looking for properties that allow pets?" - // Category: "Real Estate" - PETS_ALLOWED_PROPERTY = 1030; - - // Question: "What is the next product you plan to purchase?" - // Category: "Retail" - NEXT_PLANNED_PURCHASE = 1031; - - // Question: "Would you like to sign up for an event?" - // Category: "Retail" - EVENT_SIGNUP_INTEREST = 1033; - - // Question: "Where are you interested in shopping?" - // Category: "Retail" - PREFERRED_SHOPPING_PLACES = 1034; - - // Question: "What is your favorite brand?" - // Category: "Retail" - FAVORITE_BRAND = 1035; - - // Question: "Which type of valid commercial license do you have?" - // Category: "Transportation" - TRANSPORTATION_COMMERCIAL_LICENSE_TYPE = 1036; - - // Question: "Interested in booking an event?" - // Category: "Travel" - EVENT_BOOKING_INTEREST = 1038; - - // Question: "What is your destination country?" - // Category: "Travel" - DESTINATION_COUNTRY = 1039; - - // Question: "What is your destination city?" - // Category: "Travel" - DESTINATION_CITY = 1040; - - // Question: "What is your departure country?" - // Category: "Travel" - DEPARTURE_COUNTRY = 1041; - - // Question: "What is your departure city?" - // Category: "Travel" - DEPARTURE_CITY = 1042; - - // Question: "What is your departure date?" - // Category: "Travel" - DEPARTURE_DATE = 1043; - - // Question: "What is your return date?" - // Category: "Travel" - RETURN_DATE = 1044; - - // Question: "How many people are you traveling with?" - // Category: "Travel" - NUMBER_OF_TRAVELERS = 1045; - - // Question: "What is your travel budget?" - // Category: "Travel" - TRAVEL_BUDGET = 1046; - - // Question: "Where do you want to stay during your travel?" - // Category: "Travel" - TRAVEL_ACCOMMODATION = 1047; - } - - -} diff --git a/google/ads/googleads/v7/enums/lead_form_post_submit_call_to_action_type.proto b/google/ads/googleads/v7/enums/lead_form_post_submit_call_to_action_type.proto deleted file mode 100644 index 3712061e7..000000000 --- a/google/ads/googleads/v7/enums/lead_form_post_submit_call_to_action_type.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LeadFormPostSubmitCallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Describes the type of post-submit call-to-action phrases for a lead form. -message LeadFormPostSubmitCallToActionTypeEnum { - // Enum describing the type of post-submit call-to-action phrases for a lead - // form. - enum LeadFormPostSubmitCallToActionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Visit site. - VISIT_SITE = 2; - - // Download. - DOWNLOAD = 3; - - // Learn more. - LEARN_MORE = 4; - - // Shop now. - SHOP_NOW = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/legacy_app_install_ad_app_store.proto b/google/ads/googleads/v7/enums/legacy_app_install_ad_app_store.proto deleted file mode 100644 index bd434758b..000000000 --- a/google/ads/googleads/v7/enums/legacy_app_install_ad_app_store.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LegacyAppInstallAdAppStoreProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing app store types for a legacy app install ad. - -// Container for enum describing app store type in a legacy app install ad. -message LegacyAppInstallAdAppStoreEnum { - // App store type in a legacy app install ad. - enum LegacyAppInstallAdAppStore { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Apple iTunes. - APPLE_APP_STORE = 2; - - // Google Play. - GOOGLE_PLAY = 3; - - // Windows Store. - WINDOWS_STORE = 4; - - // Windows Phone Store. - WINDOWS_PHONE_STORE = 5; - - // The app is hosted in a Chinese app store. - CN_APP_STORE = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/linked_account_type.proto b/google/ads/googleads/v7/enums/linked_account_type.proto deleted file mode 100644 index bdbd5808c..000000000 --- a/google/ads/googleads/v7/enums/linked_account_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LinkedAccountTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing different types of Linked accounts. -message LinkedAccountTypeEnum { - // Describes the possible link types between a Google Ads customer - // and another account. - enum LinkedAccountType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // 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; - } - - -} diff --git a/google/ads/googleads/v7/enums/listing_group_type.proto b/google/ads/googleads/v7/enums/listing_group_type.proto deleted file mode 100644 index 4fbb56d49..000000000 --- a/google/ads/googleads/v7/enums/listing_group_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ListingGroupTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing listing groups. - -// Container for enum describing the type of the listing group. -message ListingGroupTypeEnum { - // The type of the listing group. - enum ListingGroupType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Subdivision of products along some listing dimension. These nodes - // are not used by serving to target listing entries, but is purely - // to define the structure of the tree. - SUBDIVISION = 2; - - // Listing group unit that defines a bid. - UNIT = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/local_placeholder_field.proto b/google/ads/googleads/v7/enums/local_placeholder_field.proto deleted file mode 100644 index 45801ba0e..000000000 --- a/google/ads/googleads/v7/enums/local_placeholder_field.proto +++ /dev/null @@ -1,119 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocalPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Local placeholder fields. - -// Values for Local placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message LocalPlaceholderFieldEnum { - // Possible values for Local placeholder fields. - enum LocalPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Unique ID. - DEAL_ID = 2; - - // Data Type: STRING. Required. Main headline with local deal title to be - // shown in dynamic ad. - DEAL_NAME = 3; - - // Data Type: STRING. Local deal subtitle to be shown in dynamic ad. - SUBTITLE = 4; - - // Data Type: STRING. Description of local deal to be shown in dynamic ad. - DESCRIPTION = 5; - - // Data Type: STRING. Price to be shown in the ad. Highly recommended for - // dynamic ads. Example: "100.00 USD" - PRICE = 6; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 7; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - SALE_PRICE = 8; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 9; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 10; - - // Data Type: STRING. Complete property address, including postal code. - ADDRESS = 11; - - // Data Type: STRING. Category of local deal used to group like items - // together for recommendation engine. - CATEGORY = 12; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 13; - - // Data Type: URL_LIST. Required. Final URLs to be used in ad when using - // Upgraded URLs; the more specific the better (e.g. the individual URL of a - // specific local deal and its location). - FINAL_URLS = 14; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 15; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 16; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 17; - - // Data Type: STRING_LIST. List of recommended local deal IDs to show - // together with this item. - SIMILAR_DEAL_IDS = 18; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 19; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 20; - } - - -} diff --git a/google/ads/googleads/v7/enums/location_extension_targeting_criterion_field.proto b/google/ads/googleads/v7/enums/location_extension_targeting_criterion_field.proto deleted file mode 100644 index 0214b2313..000000000 --- a/google/ads/googleads/v7/enums/location_extension_targeting_criterion_field.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocationExtensionTargetingCriterionFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Location Extension Targeting criterion fields. - -// Values for Location Extension Targeting criterion fields. -message LocationExtensionTargetingCriterionFieldEnum { - // Possible values for Location Extension Targeting criterion fields. - enum LocationExtensionTargetingCriterionField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Line 1 of the business address. - ADDRESS_LINE_1 = 2; - - // Data Type: STRING. Line 2 of the business address. - ADDRESS_LINE_2 = 3; - - // Data Type: STRING. City of the business address. - CITY = 4; - - // Data Type: STRING. Province of the business address. - PROVINCE = 5; - - // Data Type: STRING. Postal code of the business address. - POSTAL_CODE = 6; - - // Data Type: STRING. Country code of the business address. - COUNTRY_CODE = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/location_group_radius_units.proto b/google/ads/googleads/v7/enums/location_group_radius_units.proto deleted file mode 100644 index d4d31cdb5..000000000 --- a/google/ads/googleads/v7/enums/location_group_radius_units.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocationGroupRadiusUnitsProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing location group radius units. - -// Container for enum describing unit of radius in location group. -message LocationGroupRadiusUnitsEnum { - // The unit of radius distance in location group (e.g. MILES) - enum LocationGroupRadiusUnits { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Meters - METERS = 2; - - // Miles - MILES = 3; - - // Milli Miles - MILLI_MILES = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/location_placeholder_field.proto b/google/ads/googleads/v7/enums/location_placeholder_field.proto deleted file mode 100644 index 9b497b1b3..000000000 --- a/google/ads/googleads/v7/enums/location_placeholder_field.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Location placeholder fields. - -// Values for Location placeholder fields. -message LocationPlaceholderFieldEnum { - // Possible values for Location placeholder fields. - enum LocationPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The name of the business. - BUSINESS_NAME = 2; - - // Data Type: STRING. Line 1 of the business address. - ADDRESS_LINE_1 = 3; - - // Data Type: STRING. Line 2 of the business address. - ADDRESS_LINE_2 = 4; - - // Data Type: STRING. City of the business address. - CITY = 5; - - // Data Type: STRING. Province of the business address. - PROVINCE = 6; - - // Data Type: STRING. Postal code of the business address. - POSTAL_CODE = 7; - - // Data Type: STRING. Country code of the business address. - COUNTRY_CODE = 8; - - // Data Type: STRING. Phone number of the business. - PHONE_NUMBER = 9; - } - - -} diff --git a/google/ads/googleads/v7/enums/location_source_type.proto b/google/ads/googleads/v7/enums/location_source_type.proto deleted file mode 100644 index a93fd75f6..000000000 --- a/google/ads/googleads/v7/enums/location_source_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocationSourceTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing location source types. - -// Used to distinguish the location source type. -message LocationSourceTypeEnum { - // The possible types of a location source. - enum LocationSourceType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Locations associated with the customer's linked Business Profile. - GOOGLE_MY_BUSINESS = 2; - - // Affiliate (chain) store locations. For example, Best Buy store locations. - AFFILIATE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/manager_link_status.proto b/google/ads/googleads/v7/enums/manager_link_status.proto deleted file mode 100644 index 6ec6cab1d..000000000 --- a/google/ads/googleads/v7/enums/manager_link_status.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ManagerLinkStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing possible status of a manager and client link. -message ManagerLinkStatusEnum { - // Possible statuses of a link. - enum ManagerLinkStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Indicates current in-effect relationship - ACTIVE = 2; - - // Indicates terminated relationship - INACTIVE = 3; - - // Indicates relationship has been requested by manager, but the client - // hasn't accepted yet. - PENDING = 4; - - // Relationship was requested by the manager, but the client has refused. - REFUSED = 5; - - // Indicates relationship has been requested by manager, but manager - // canceled it. - CANCELED = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/matching_function_context_type.proto b/google/ads/googleads/v7/enums/matching_function_context_type.proto deleted file mode 100644 index c82130612..000000000 --- a/google/ads/googleads/v7/enums/matching_function_context_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MatchingFunctionContextTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing matching function context types. - -// Container for context types for an operand in a matching function. -message MatchingFunctionContextTypeEnum { - // Possible context types for an operand in a matching function. - enum MatchingFunctionContextType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item id in the request context. - FEED_ITEM_ID = 2; - - // The device being used (possible values are 'Desktop' or 'Mobile'). - DEVICE_NAME = 3; - - // Feed item set id in the request context. - FEED_ITEM_SET_ID = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/matching_function_operator.proto b/google/ads/googleads/v7/enums/matching_function_operator.proto deleted file mode 100644 index 2bf36abdb..000000000 --- a/google/ads/googleads/v7/enums/matching_function_operator.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MatchingFunctionOperatorProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing matching function operators. - -// Container for enum describing matching function operator. -message MatchingFunctionOperatorEnum { - // Possible operators in a matching function. - enum MatchingFunctionOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The IN operator. - IN = 2; - - // The IDENTITY operator. - IDENTITY = 3; - - // The EQUALS operator - EQUALS = 4; - - // Operator that takes two or more operands that are of type - // FunctionOperand and checks that all the operands evaluate to true. - // For functions related to ad formats, all the operands must be in - // left_operands. - AND = 5; - - // Operator that returns true if the elements in left_operands contain any - // of the elements in right_operands. Otherwise, return false. The - // right_operands must contain at least 1 and no more than 3 - // ConstantOperands. - CONTAINS_ANY = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/media_type.proto b/google/ads/googleads/v7/enums/media_type.proto deleted file mode 100644 index 323abd99e..000000000 --- a/google/ads/googleads/v7/enums/media_type.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MediaTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing media types. - -// Container for enum describing the types of media. -message MediaTypeEnum { - // The type of media. - enum MediaType { - // The media type has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Static image, used for image ad. - IMAGE = 2; - - // Small image, used for map ad. - ICON = 3; - - // ZIP file, used in fields of template ads. - MEDIA_BUNDLE = 4; - - // Audio file. - AUDIO = 5; - - // Video file. - VIDEO = 6; - - // Animated image, such as animated GIF. - DYNAMIC_IMAGE = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/merchant_center_link_status.proto b/google/ads/googleads/v7/enums/merchant_center_link_status.proto deleted file mode 100644 index 70061ac98..000000000 --- a/google/ads/googleads/v7/enums/merchant_center_link_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::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/google/ads/googleads/v7/enums/message_placeholder_field.proto b/google/ads/googleads/v7/enums/message_placeholder_field.proto deleted file mode 100644 index d1cd04ad2..000000000 --- a/google/ads/googleads/v7/enums/message_placeholder_field.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MessagePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Message placeholder fields. - -// Values for Message placeholder fields. -message MessagePlaceholderFieldEnum { - // Possible values for Message placeholder fields. - enum MessagePlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The name of your business. - BUSINESS_NAME = 2; - - // Data Type: STRING. Country code of phone number. - COUNTRY_CODE = 3; - - // Data Type: STRING. A phone number that's capable of sending and receiving - // text messages. - PHONE_NUMBER = 4; - - // Data Type: STRING. The text that will go in your click-to-message ad. - MESSAGE_EXTENSION_TEXT = 5; - - // Data Type: STRING. The message text automatically shows in people's - // messaging apps when they tap to send you a message. - MESSAGE_TEXT = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/mime_type.proto b/google/ads/googleads/v7/enums/mime_type.proto deleted file mode 100644 index cee1e962e..000000000 --- a/google/ads/googleads/v7/enums/mime_type.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MimeTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing mime types. - -// Container for enum describing the mime types. -message MimeTypeEnum { - // The mime type - enum MimeType { - // The mime type has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // MIME type of image/jpeg. - IMAGE_JPEG = 2; - - // MIME type of image/gif. - IMAGE_GIF = 3; - - // MIME type of image/png. - IMAGE_PNG = 4; - - // MIME type of application/x-shockwave-flash. - FLASH = 5; - - // MIME type of text/html. - TEXT_HTML = 6; - - // MIME type of application/pdf. - PDF = 7; - - // MIME type of application/msword. - MSWORD = 8; - - // MIME type of application/vnd.ms-excel. - MSEXCEL = 9; - - // MIME type of application/rtf. - RTF = 10; - - // MIME type of audio/wav. - AUDIO_WAV = 11; - - // MIME type of audio/mp3. - AUDIO_MP3 = 12; - - // MIME type of application/x-html5-ad-zip. - HTML5_AD_ZIP = 13; - } - - -} diff --git a/google/ads/googleads/v7/enums/minute_of_hour.proto b/google/ads/googleads/v7/enums/minute_of_hour.proto deleted file mode 100644 index 419cd21d2..000000000 --- a/google/ads/googleads/v7/enums/minute_of_hour.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MinuteOfHourProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing days of week. - -// Container for enumeration of quarter-hours. -message MinuteOfHourEnum { - // Enumerates of quarter-hours. E.g. "FIFTEEN" - enum MinuteOfHour { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Zero minutes past the hour. - ZERO = 2; - - // Fifteen minutes past the hour. - FIFTEEN = 3; - - // Thirty minutes past the hour. - THIRTY = 4; - - // Forty-five minutes past the hour. - FORTY_FIVE = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/mobile_app_vendor.proto b/google/ads/googleads/v7/enums/mobile_app_vendor.proto deleted file mode 100644 index 5535c4b30..000000000 --- a/google/ads/googleads/v7/enums/mobile_app_vendor.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MobileAppVendorProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing different types of mobile app vendors. -message MobileAppVendorEnum { - // The type of mobile app vendor - enum MobileAppVendor { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile app vendor for Apple app store. - APPLE_APP_STORE = 2; - - // Mobile app vendor for Google app store. - GOOGLE_APP_STORE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/mobile_device_type.proto b/google/ads/googleads/v7/enums/mobile_device_type.proto deleted file mode 100644 index 7f52ed425..000000000 --- a/google/ads/googleads/v7/enums/mobile_device_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MobileDeviceTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing mobile device types. - -// Container for enum describing the types of mobile device. -message MobileDeviceTypeEnum { - // The type of mobile device. - enum MobileDeviceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile phones. - MOBILE = 2; - - // Tablets. - TABLET = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/month_of_year.proto b/google/ads/googleads/v7/enums/month_of_year.proto deleted file mode 100644 index 8c5c9aa54..000000000 --- a/google/ads/googleads/v7/enums/month_of_year.proto +++ /dev/null @@ -1,80 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MonthOfYearProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing days of week. - -// Container for enumeration of months of the year, e.g., "January". -message MonthOfYearEnum { - // Enumerates months of the year, e.g., "January". - enum MonthOfYear { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // January. - JANUARY = 2; - - // February. - FEBRUARY = 3; - - // March. - MARCH = 4; - - // April. - APRIL = 5; - - // May. - MAY = 6; - - // June. - JUNE = 7; - - // July. - JULY = 8; - - // August. - AUGUST = 9; - - // September. - SEPTEMBER = 10; - - // October. - OCTOBER = 11; - - // November. - NOVEMBER = 12; - - // December. - DECEMBER = 13; - } - - -} diff --git a/google/ads/googleads/v7/enums/negative_geo_target_type.proto b/google/ads/googleads/v7/enums/negative_geo_target_type.proto deleted file mode 100644 index 92a5d4ff4..000000000 --- a/google/ads/googleads/v7/enums/negative_geo_target_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "NegativeGeoTargetTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing negative geo target types. - -// Container for enum describing possible negative geo target types. -message NegativeGeoTargetTypeEnum { - // The possible negative geo target types. - enum NegativeGeoTargetType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Specifies that a user is excluded from seeing the ad if they - // are in, or show interest in, advertiser's excluded locations. - PRESENCE_OR_INTEREST = 4; - - // Specifies that a user is excluded from seeing the ad if they - // are in advertiser's excluded locations. - PRESENCE = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/offline_user_data_job_failure_reason.proto b/google/ads/googleads/v7/enums/offline_user_data_job_failure_reason.proto deleted file mode 100644 index 9bd786f59..000000000 --- a/google/ads/googleads/v7/enums/offline_user_data_job_failure_reason.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobFailureReasonProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing offline user data job failure reasons. - -// Container for enum describing reasons why an offline user data job -// failed to be processed. -message OfflineUserDataJobFailureReasonEnum { - // The failure reason of an offline user data job. - enum OfflineUserDataJobFailureReason { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The matched transactions are insufficient. - INSUFFICIENT_MATCHED_TRANSACTIONS = 2; - - // The uploaded transactions are insufficient. - INSUFFICIENT_TRANSACTIONS = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/offline_user_data_job_status.proto b/google/ads/googleads/v7/enums/offline_user_data_job_status.proto deleted file mode 100644 index d612aaaf7..000000000 --- a/google/ads/googleads/v7/enums/offline_user_data_job_status.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing offline user data job status. - -// Container for enum describing status of an offline user data job. -message OfflineUserDataJobStatusEnum { - // The status of an offline user data job. - enum OfflineUserDataJobStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The job has been successfully created and pending for uploading. - PENDING = 2; - - // Upload(s) have been accepted and data is being processed. - RUNNING = 3; - - // Uploaded data has been successfully processed. - SUCCESS = 4; - - // Uploaded data has failed to be processed. - FAILED = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/offline_user_data_job_type.proto b/google/ads/googleads/v7/enums/offline_user_data_job_type.proto deleted file mode 100644 index 3911a6aa8..000000000 --- a/google/ads/googleads/v7/enums/offline_user_data_job_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing offline user data job types. - -// Container for enum describing types of an offline user data job. -message OfflineUserDataJobTypeEnum { - // The type of an offline user data job. - enum OfflineUserDataJobType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Store Sales Direct data for self service. - STORE_SALES_UPLOAD_FIRST_PARTY = 2; - - // Store Sales Direct data for third party. - STORE_SALES_UPLOAD_THIRD_PARTY = 3; - - // Customer Match user list data. - CUSTOMER_MATCH_USER_LIST = 4; - - // Customer Match with attribute data. - CUSTOMER_MATCH_WITH_ATTRIBUTES = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/operating_system_version_operator_type.proto b/google/ads/googleads/v7/enums/operating_system_version_operator_type.proto deleted file mode 100644 index d87d58e2f..000000000 --- a/google/ads/googleads/v7/enums/operating_system_version_operator_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OperatingSystemVersionOperatorTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing operating system version operator types. - -// Container for enum describing the type of OS operators. -message OperatingSystemVersionOperatorTypeEnum { - // The type of operating system version. - enum OperatingSystemVersionOperatorType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Equals to the specified version. - EQUALS_TO = 2; - - // Greater than or equals to the specified version. - GREATER_THAN_EQUALS_TO = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/optimization_goal_type.proto b/google/ads/googleads/v7/enums/optimization_goal_type.proto deleted file mode 100644 index 0246f73bd..000000000 --- a/google/ads/googleads/v7/enums/optimization_goal_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OptimizationGoalTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing optimization goal type. - -// Container for enum describing the type of optimization goal. -message OptimizationGoalTypeEnum { - // The type of optimization goal - enum OptimizationGoalType { - // Not specified. - UNSPECIFIED = 0; - - // Used as a return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Optimize for call clicks. Call click conversions are times people - // selected 'Call' to contact a store after viewing an ad. - CALL_CLICKS = 2; - - // Optimize for driving directions. Driving directions conversions are - // times people selected 'Get directions' to navigate to a store after - // viewing an ad. - DRIVING_DIRECTIONS = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/parental_status_type.proto b/google/ads/googleads/v7/enums/parental_status_type.proto deleted file mode 100644 index 5def3fbf9..000000000 --- a/google/ads/googleads/v7/enums/parental_status_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ParentalStatusTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing parenal status types. - -// Container for enum describing the type of demographic parental statuses. -message ParentalStatusTypeEnum { - // The type of parental statuses (e.g. not a parent). - enum ParentalStatusType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Parent. - PARENT = 300; - - // Not a parent. - NOT_A_PARENT = 301; - - // Undetermined parental status. - UNDETERMINED = 302; - } - - -} diff --git a/google/ads/googleads/v7/enums/payment_mode.proto b/google/ads/googleads/v7/enums/payment_mode.proto deleted file mode 100644 index c1cf01747..000000000 --- a/google/ads/googleads/v7/enums/payment_mode.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PaymentModeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing payment modes. - -// Container for enum describing possible payment modes. -message PaymentModeEnum { - // Enum describing possible payment modes. - enum PaymentMode { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Pay per click. - CLICKS = 4; - - // Pay per conversion value. This mode is only supported by campaigns with - // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and - // BudgetType.HOTEL_ADS_COMMISSION. - CONVERSION_VALUE = 5; - - // Pay per conversion. This mode is only supported by campaigns with - // AdvertisingChannelType.DISPLAY (excluding - // AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA, - // and BudgetType.FIXED_CPA. The customer must also be eligible for this - // mode. See Customer.eligibility_failure_reasons for details. - CONVERSIONS = 6; - - // Pay per guest stay value. This mode is only supported by campaigns with - // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and - // BudgetType.STANDARD. - GUEST_STAY = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/placeholder_type.proto b/google/ads/googleads/v7/enums/placeholder_type.proto deleted file mode 100644 index 8c363c3de..000000000 --- a/google/ads/googleads/v7/enums/placeholder_type.proto +++ /dev/null @@ -1,124 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PlaceholderTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing feed placeholder types. - -// Container for enum describing possible placeholder types for a feed mapping. -message PlaceholderTypeEnum { - // Possible placeholder types for a feed mapping. - enum PlaceholderType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Lets you show links in your ad to pages from your website, including the - // main landing page. - SITELINK = 2; - - // Lets you attach a phone number to an ad, allowing customers to call - // directly from the ad. - CALL = 3; - - // Lets you provide users with a link that points to a mobile app in - // addition to a website. - APP = 4; - - // Lets you show locations of businesses from your Business Profile - // in your ad. This helps people find your locations by showing your - // ads with your address, a map to your location, or the distance to your - // business. This extension type is useful to draw customers to your - // brick-and-mortar location. - LOCATION = 5; - - // If you sell your product through retail chains, affiliate location - // extensions let you show nearby stores that carry your products. - AFFILIATE_LOCATION = 6; - - // Lets you include additional text with your search ads that provide - // detailed information about your business, including products and services - // you offer. Callouts appear in ads at the top and bottom of Google search - // results. - CALLOUT = 7; - - // Lets you add more info to your ad, specific to some predefined categories - // such as types, brands, styles, etc. A minimum of 3 text (SNIPPETS) values - // are required. - STRUCTURED_SNIPPET = 8; - - // Allows users to see your ad, click an icon, and contact you directly by - // text message. With one tap on your ad, people can contact you to book an - // appointment, get a quote, ask for information, or request a service. - MESSAGE = 9; - - // Lets you display prices for a list of items along with your ads. A price - // feed is composed of three to eight price table rows. - PRICE = 10; - - // Allows you to highlight sales and other promotions that let users see how - // they can save by buying now. - PROMOTION = 11; - - // Lets you dynamically inject custom data into the title and description - // of your ads. - AD_CUSTOMIZER = 12; - - // Indicates that this feed is for education dynamic remarketing. - DYNAMIC_EDUCATION = 13; - - // Indicates that this feed is for flight dynamic remarketing. - DYNAMIC_FLIGHT = 14; - - // Indicates that this feed is for a custom dynamic remarketing type. Use - // this only if the other business types don't apply to your products or - // services. - DYNAMIC_CUSTOM = 15; - - // Indicates that this feed is for hotels and rentals dynamic remarketing. - DYNAMIC_HOTEL = 16; - - // Indicates that this feed is for real estate dynamic remarketing. - DYNAMIC_REAL_ESTATE = 17; - - // Indicates that this feed is for travel dynamic remarketing. - DYNAMIC_TRAVEL = 18; - - // Indicates that this feed is for local deals dynamic remarketing. - DYNAMIC_LOCAL = 19; - - // Indicates that this feed is for job dynamic remarketing. - DYNAMIC_JOB = 20; - - // Lets you attach an image to an ad. - IMAGE = 21; - } - - -} diff --git a/google/ads/googleads/v7/enums/placement_type.proto b/google/ads/googleads/v7/enums/placement_type.proto deleted file mode 100644 index a6d3d1fbf..000000000 --- a/google/ads/googleads/v7/enums/placement_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PlacementTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing placement types. - -// Container for enum describing possible placement types. -message PlacementTypeEnum { - // Possible placement types for a feed mapping. - enum PlacementType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Websites(e.g. 'www.flowers4sale.com'). - WEBSITE = 2; - - // Mobile application categories(e.g. 'Games'). - MOBILE_APP_CATEGORY = 3; - - // mobile applications(e.g. 'mobileapp::2-com.whatsthewordanswers'). - MOBILE_APPLICATION = 4; - - // YouTube videos(e.g. 'youtube.com/video/wtLJPvx7-ys'). - YOUTUBE_VIDEO = 5; - - // YouTube channels(e.g. 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ'). - YOUTUBE_CHANNEL = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/policy_approval_status.proto b/google/ads/googleads/v7/enums/policy_approval_status.proto deleted file mode 100644 index ca835d329..000000000 --- a/google/ads/googleads/v7/enums/policy_approval_status.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing policy approval statuses. - -// Container for enum describing possible policy approval statuses. -message PolicyApprovalStatusEnum { - // The possible policy approval statuses. When there are several approval - // statuses available the most severe one will be used. The order of severity - // is DISAPPROVED, AREA_OF_INTEREST_ONLY, APPROVED_LIMITED and APPROVED. - enum PolicyApprovalStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Will not serve. - DISAPPROVED = 2; - - // Serves with restrictions. - APPROVED_LIMITED = 3; - - // Serves without restrictions. - APPROVED = 4; - - // Will not serve in targeted countries, but may serve for users who are - // searching for information about the targeted countries. - AREA_OF_INTEREST_ONLY = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/policy_review_status.proto b/google/ads/googleads/v7/enums/policy_review_status.proto deleted file mode 100644 index 0cef04fc7..000000000 --- a/google/ads/googleads/v7/enums/policy_review_status.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyReviewStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing policy review statuses. - -// Container for enum describing possible policy review statuses. -message PolicyReviewStatusEnum { - // The possible policy review statuses. - enum PolicyReviewStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Currently under review. - REVIEW_IN_PROGRESS = 2; - - // Primary review complete. Other reviews may be continuing. - REVIEWED = 3; - - // The resource has been resubmitted for approval or its policy decision has - // been appealed. - UNDER_APPEAL = 4; - - // The resource is eligible and may be serving but could still undergo - // further review. - ELIGIBLE_MAY_SERVE = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/policy_topic_entry_type.proto b/google/ads/googleads/v7/enums/policy_topic_entry_type.proto deleted file mode 100644 index 95d4de89e..000000000 --- a/google/ads/googleads/v7/enums/policy_topic_entry_type.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyTopicEntryTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing policy topic entry types. - -// Container for enum describing possible policy topic entry types. -message PolicyTopicEntryTypeEnum { - // The possible policy topic entry types. - enum PolicyTopicEntryType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The resource will not be served. - PROHIBITED = 2; - - // The resource will not be served under some circumstances. - LIMITED = 4; - - // The resource cannot serve at all because of the current targeting - // criteria. - FULLY_LIMITED = 8; - - // May be of interest, but does not limit how the resource is served. - DESCRIPTIVE = 5; - - // Could increase coverage beyond normal. - BROADENING = 6; - - // Constrained for all targeted countries, but may serve in other countries - // through area of interest. - AREA_OF_INTEREST_ONLY = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/policy_topic_evidence_destination_mismatch_url_type.proto b/google/ads/googleads/v7/enums/policy_topic_evidence_destination_mismatch_url_type.proto deleted file mode 100644 index e5ac6b6f5..000000000 --- a/google/ads/googleads/v7/enums/policy_topic_evidence_destination_mismatch_url_type.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyTopicEvidenceDestinationMismatchUrlTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing policy topic evidence destination mismatch url types. - -// Container for enum describing possible policy topic evidence destination -// mismatch url types. -message PolicyTopicEvidenceDestinationMismatchUrlTypeEnum { - // The possible policy topic evidence destination mismatch url types. - enum PolicyTopicEvidenceDestinationMismatchUrlType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The display url. - DISPLAY_URL = 2; - - // The final url. - FINAL_URL = 3; - - // The final mobile url. - FINAL_MOBILE_URL = 4; - - // The tracking url template, with substituted desktop url. - TRACKING_URL = 5; - - // The tracking url template, with substituted mobile url. - MOBILE_TRACKING_URL = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_device.proto b/google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_device.proto deleted file mode 100644 index c6a006220..000000000 --- a/google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_device.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDeviceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing device of destination not working policy topic -// evidence. - -// Container for enum describing possible policy topic evidence destination not -// working devices. -message PolicyTopicEvidenceDestinationNotWorkingDeviceEnum { - // The possible policy topic evidence destination not working devices. - enum PolicyTopicEvidenceDestinationNotWorkingDevice { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Landing page doesn't work on desktop device. - DESKTOP = 2; - - // Landing page doesn't work on Android device. - ANDROID = 3; - - // Landing page doesn't work on iOS device. - IOS = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto b/google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto deleted file mode 100644 index 623f41a27..000000000 --- a/google/ads/googleads/v7/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing DNS error types of destination not working policy topic -// evidence. - -// Container for enum describing possible policy topic evidence destination not -// working DNS error types. -message PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum { - // The possible policy topic evidence destination not working DNS error types. - enum PolicyTopicEvidenceDestinationNotWorkingDnsErrorType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Host name not found in DNS when fetching landing page. - HOSTNAME_NOT_FOUND = 2; - - // Google internal crawler issue when communicating with DNS. This error - // doesn't mean the landing page doesn't work. Google will recrawl the - // landing page. - GOOGLE_CRAWLER_DNS_ISSUE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/positive_geo_target_type.proto b/google/ads/googleads/v7/enums/positive_geo_target_type.proto deleted file mode 100644 index 791109c0c..000000000 --- a/google/ads/googleads/v7/enums/positive_geo_target_type.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PositiveGeoTargetTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing positive geo target types. - -// Container for enum describing possible positive geo target types. -message PositiveGeoTargetTypeEnum { - // The possible positive geo target types. - enum PositiveGeoTargetType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Specifies that an ad is triggered if the user is in, - // or shows interest in, advertiser's targeted locations. - PRESENCE_OR_INTEREST = 5; - - // Specifies that an ad is triggered if the user - // searches for advertiser's targeted locations. - // This can only be used with Search and standard - // Shopping campaigns. - SEARCH_INTEREST = 6; - - // Specifies that an ad is triggered if the user is in - // or regularly in advertiser's targeted locations. - PRESENCE = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/preferred_content_type.proto b/google/ads/googleads/v7/enums/preferred_content_type.proto deleted file mode 100644 index facc157fe..000000000 --- a/google/ads/googleads/v7/enums/preferred_content_type.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PreferredContentTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing preferred content criterion type. - -// Container for enumeration of preferred content criterion type. -message PreferredContentTypeEnum { - // Enumerates preferred content criterion type. - enum PreferredContentType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Represents top content on YouTube. - YOUTUBE_TOP_CONTENT = 400; - } - - -} diff --git a/google/ads/googleads/v7/enums/price_extension_price_qualifier.proto b/google/ads/googleads/v7/enums/price_extension_price_qualifier.proto deleted file mode 100644 index 96cbcf798..000000000 --- a/google/ads/googleads/v7/enums/price_extension_price_qualifier.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PriceExtensionPriceQualifierProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing price extension price qualifier type. - -// Container for enum describing a price extension price qualifier. -message PriceExtensionPriceQualifierEnum { - // Enums of price extension price qualifier. - enum PriceExtensionPriceQualifier { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // 'From' qualifier for the price. - FROM = 2; - - // 'Up to' qualifier for the price. - UP_TO = 3; - - // 'Average' qualifier for the price. - AVERAGE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/price_extension_price_unit.proto b/google/ads/googleads/v7/enums/price_extension_price_unit.proto deleted file mode 100644 index a56f77727..000000000 --- a/google/ads/googleads/v7/enums/price_extension_price_unit.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PriceExtensionPriceUnitProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing price extension price unit. - -// Container for enum describing price extension price unit. -message PriceExtensionPriceUnitEnum { - // Price extension price unit. - enum PriceExtensionPriceUnit { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Per hour. - PER_HOUR = 2; - - // Per day. - PER_DAY = 3; - - // Per week. - PER_WEEK = 4; - - // Per month. - PER_MONTH = 5; - - // Per year. - PER_YEAR = 6; - - // Per night. - PER_NIGHT = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/price_extension_type.proto b/google/ads/googleads/v7/enums/price_extension_type.proto deleted file mode 100644 index b39abe896..000000000 --- a/google/ads/googleads/v7/enums/price_extension_type.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PriceExtensionTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing price extension type. - -// Container for enum describing types for a price extension. -message PriceExtensionTypeEnum { - // Price extension type. - enum PriceExtensionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The type for showing a list of brands. - BRANDS = 2; - - // The type for showing a list of events. - EVENTS = 3; - - // The type for showing locations relevant to your business. - LOCATIONS = 4; - - // The type for showing sub-regions or districts within a city or region. - NEIGHBORHOODS = 5; - - // The type for showing a collection of product categories. - PRODUCT_CATEGORIES = 6; - - // The type for showing a collection of related product tiers. - PRODUCT_TIERS = 7; - - // The type for showing a collection of services offered by your business. - SERVICES = 8; - - // The type for showing a collection of service categories. - SERVICE_CATEGORIES = 9; - - // The type for showing a collection of related service tiers. - SERVICE_TIERS = 10; - } - - -} diff --git a/google/ads/googleads/v7/enums/price_placeholder_field.proto b/google/ads/googleads/v7/enums/price_placeholder_field.proto deleted file mode 100644 index 2fb9700ad..000000000 --- a/google/ads/googleads/v7/enums/price_placeholder_field.proto +++ /dev/null @@ -1,240 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PricePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Price placeholder fields. - -// Values for Price placeholder fields. -message PricePlaceholderFieldEnum { - // Possible values for Price placeholder fields. - enum PricePlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The type of your price feed. Must match one of the - // predefined price feed type exactly. - TYPE = 2; - - // Data Type: STRING. The qualifier of each price. Must match one of the - // predefined price qualifiers exactly. - PRICE_QUALIFIER = 3; - - // Data Type: URL. Tracking template for the price feed when using Upgraded - // URLs. - TRACKING_TEMPLATE = 4; - - // Data Type: STRING. Language of the price feed. Must match one of the - // available available locale codes exactly. - LANGUAGE = 5; - - // Data Type: STRING. Final URL suffix for the price feed when using - // parallel tracking. - FINAL_URL_SUFFIX = 6; - - // Data Type: STRING. The header of item 1 of the table. - ITEM_1_HEADER = 100; - - // Data Type: STRING. The description of item 1 of the table. - ITEM_1_DESCRIPTION = 101; - - // Data Type: MONEY. The price (money with currency) of item 1 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_1_PRICE = 102; - - // Data Type: STRING. The price unit of item 1 of the table. Must match one - // of the predefined price units. - ITEM_1_UNIT = 103; - - // Data Type: URL_LIST. The final URLs of item 1 of the table when using - // Upgraded URLs. - ITEM_1_FINAL_URLS = 104; - - // Data Type: URL_LIST. The final mobile URLs of item 1 of the table when - // using Upgraded URLs. - ITEM_1_FINAL_MOBILE_URLS = 105; - - // Data Type: STRING. The header of item 2 of the table. - ITEM_2_HEADER = 200; - - // Data Type: STRING. The description of item 2 of the table. - ITEM_2_DESCRIPTION = 201; - - // Data Type: MONEY. The price (money with currency) of item 2 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_2_PRICE = 202; - - // Data Type: STRING. The price unit of item 2 of the table. Must match one - // of the predefined price units. - ITEM_2_UNIT = 203; - - // Data Type: URL_LIST. The final URLs of item 2 of the table when using - // Upgraded URLs. - ITEM_2_FINAL_URLS = 204; - - // Data Type: URL_LIST. The final mobile URLs of item 2 of the table when - // using Upgraded URLs. - ITEM_2_FINAL_MOBILE_URLS = 205; - - // Data Type: STRING. The header of item 3 of the table. - ITEM_3_HEADER = 300; - - // Data Type: STRING. The description of item 3 of the table. - ITEM_3_DESCRIPTION = 301; - - // Data Type: MONEY. The price (money with currency) of item 3 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_3_PRICE = 302; - - // Data Type: STRING. The price unit of item 3 of the table. Must match one - // of the predefined price units. - ITEM_3_UNIT = 303; - - // Data Type: URL_LIST. The final URLs of item 3 of the table when using - // Upgraded URLs. - ITEM_3_FINAL_URLS = 304; - - // Data Type: URL_LIST. The final mobile URLs of item 3 of the table when - // using Upgraded URLs. - ITEM_3_FINAL_MOBILE_URLS = 305; - - // Data Type: STRING. The header of item 4 of the table. - ITEM_4_HEADER = 400; - - // Data Type: STRING. The description of item 4 of the table. - ITEM_4_DESCRIPTION = 401; - - // Data Type: MONEY. The price (money with currency) of item 4 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_4_PRICE = 402; - - // Data Type: STRING. The price unit of item 4 of the table. Must match one - // of the predefined price units. - ITEM_4_UNIT = 403; - - // Data Type: URL_LIST. The final URLs of item 4 of the table when using - // Upgraded URLs. - ITEM_4_FINAL_URLS = 404; - - // Data Type: URL_LIST. The final mobile URLs of item 4 of the table when - // using Upgraded URLs. - ITEM_4_FINAL_MOBILE_URLS = 405; - - // Data Type: STRING. The header of item 5 of the table. - ITEM_5_HEADER = 500; - - // Data Type: STRING. The description of item 5 of the table. - ITEM_5_DESCRIPTION = 501; - - // Data Type: MONEY. The price (money with currency) of item 5 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_5_PRICE = 502; - - // Data Type: STRING. The price unit of item 5 of the table. Must match one - // of the predefined price units. - ITEM_5_UNIT = 503; - - // Data Type: URL_LIST. The final URLs of item 5 of the table when using - // Upgraded URLs. - ITEM_5_FINAL_URLS = 504; - - // Data Type: URL_LIST. The final mobile URLs of item 5 of the table when - // using Upgraded URLs. - ITEM_5_FINAL_MOBILE_URLS = 505; - - // Data Type: STRING. The header of item 6 of the table. - ITEM_6_HEADER = 600; - - // Data Type: STRING. The description of item 6 of the table. - ITEM_6_DESCRIPTION = 601; - - // Data Type: MONEY. The price (money with currency) of item 6 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_6_PRICE = 602; - - // Data Type: STRING. The price unit of item 6 of the table. Must match one - // of the predefined price units. - ITEM_6_UNIT = 603; - - // Data Type: URL_LIST. The final URLs of item 6 of the table when using - // Upgraded URLs. - ITEM_6_FINAL_URLS = 604; - - // Data Type: URL_LIST. The final mobile URLs of item 6 of the table when - // using Upgraded URLs. - ITEM_6_FINAL_MOBILE_URLS = 605; - - // Data Type: STRING. The header of item 7 of the table. - ITEM_7_HEADER = 700; - - // Data Type: STRING. The description of item 7 of the table. - ITEM_7_DESCRIPTION = 701; - - // Data Type: MONEY. The price (money with currency) of item 7 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_7_PRICE = 702; - - // Data Type: STRING. The price unit of item 7 of the table. Must match one - // of the predefined price units. - ITEM_7_UNIT = 703; - - // Data Type: URL_LIST. The final URLs of item 7 of the table when using - // Upgraded URLs. - ITEM_7_FINAL_URLS = 704; - - // Data Type: URL_LIST. The final mobile URLs of item 7 of the table when - // using Upgraded URLs. - ITEM_7_FINAL_MOBILE_URLS = 705; - - // Data Type: STRING. The header of item 8 of the table. - ITEM_8_HEADER = 800; - - // Data Type: STRING. The description of item 8 of the table. - ITEM_8_DESCRIPTION = 801; - - // Data Type: MONEY. The price (money with currency) of item 8 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_8_PRICE = 802; - - // Data Type: STRING. The price unit of item 8 of the table. Must match one - // of the predefined price units. - ITEM_8_UNIT = 803; - - // Data Type: URL_LIST. The final URLs of item 8 of the table when using - // Upgraded URLs. - ITEM_8_FINAL_URLS = 804; - - // Data Type: URL_LIST. The final mobile URLs of item 8 of the table when - // using Upgraded URLs. - ITEM_8_FINAL_MOBILE_URLS = 805; - } - - -} diff --git a/google/ads/googleads/v7/enums/product_bidding_category_level.proto b/google/ads/googleads/v7/enums/product_bidding_category_level.proto deleted file mode 100644 index 89c6d2519..000000000 --- a/google/ads/googleads/v7/enums/product_bidding_category_level.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryLevelProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Level of a product bidding category. -message ProductBiddingCategoryLevelEnum { - // Enum describing the level of the product bidding category. - enum ProductBiddingCategoryLevel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Level 1. - LEVEL1 = 2; - - // Level 2. - LEVEL2 = 3; - - // Level 3. - LEVEL3 = 4; - - // Level 4. - LEVEL4 = 5; - - // Level 5. - LEVEL5 = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/product_bidding_category_status.proto b/google/ads/googleads/v7/enums/product_bidding_category_status.proto deleted file mode 100644 index 0766fb5e1..000000000 --- a/google/ads/googleads/v7/enums/product_bidding_category_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::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 { - // 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 obsolete. Used only for reporting purposes. - OBSOLETE = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/product_channel.proto b/google/ads/googleads/v7/enums/product_channel.proto deleted file mode 100644 index c0df672d7..000000000 --- a/google/ads/googleads/v7/enums/product_channel.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductChannelProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing bidding schemes. - -// Locality of a product offer. -message ProductChannelEnum { - // Enum describing the locality of a product offer. - enum ProductChannel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The item is sold online. - ONLINE = 2; - - // The item is sold in local stores. - LOCAL = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/product_channel_exclusivity.proto b/google/ads/googleads/v7/enums/product_channel_exclusivity.proto deleted file mode 100644 index caf33d19c..000000000 --- a/google/ads/googleads/v7/enums/product_channel_exclusivity.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductChannelExclusivityProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing bidding schemes. - -// Availability of a product offer. -message ProductChannelExclusivityEnum { - // Enum describing the availability of a product offer. - enum ProductChannelExclusivity { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The item is sold through one channel only, either local stores or online - // as indicated by its ProductChannel. - SINGLE_CHANNEL = 2; - - // The item is matched to its online or local stores counterpart, indicating - // it is available for purchase in both ShoppingProductChannels. - MULTI_CHANNEL = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/product_condition.proto b/google/ads/googleads/v7/enums/product_condition.proto deleted file mode 100644 index 3ef1b2877..000000000 --- a/google/ads/googleads/v7/enums/product_condition.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductConditionProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing bidding schemes. - -// Condition of a product offer. -message ProductConditionEnum { - // Enum describing the condition of a product offer. - enum ProductCondition { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The product condition is new. - NEW = 3; - - // The product condition is refurbished. - REFURBISHED = 4; - - // The product condition is used. - USED = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/product_custom_attribute_index.proto b/google/ads/googleads/v7/enums/product_custom_attribute_index.proto deleted file mode 100644 index e9517a177..000000000 --- a/google/ads/googleads/v7/enums/product_custom_attribute_index.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductCustomAttributeIndexProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing product custom attributes. - -// Container for enum describing the index of the product custom attribute. -message ProductCustomAttributeIndexEnum { - // The index of the product custom attribute. - enum ProductCustomAttributeIndex { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // First product custom attribute. - INDEX0 = 7; - - // Second product custom attribute. - INDEX1 = 8; - - // Third product custom attribute. - INDEX2 = 9; - - // Fourth product custom attribute. - INDEX3 = 10; - - // Fifth product custom attribute. - INDEX4 = 11; - } - - -} diff --git a/google/ads/googleads/v7/enums/product_type_level.proto b/google/ads/googleads/v7/enums/product_type_level.proto deleted file mode 100644 index 4ab1e2b0d..000000000 --- a/google/ads/googleads/v7/enums/product_type_level.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductTypeLevelProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing bidding schemes. - -// Level of the type of a product offer. -message ProductTypeLevelEnum { - // Enum describing the level of the type of a product offer. - enum ProductTypeLevel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Level 1. - LEVEL1 = 7; - - // Level 2. - LEVEL2 = 8; - - // Level 3. - LEVEL3 = 9; - - // Level 4. - LEVEL4 = 10; - - // Level 5. - LEVEL5 = 11; - } - - -} diff --git a/google/ads/googleads/v7/enums/promotion_extension_discount_modifier.proto b/google/ads/googleads/v7/enums/promotion_extension_discount_modifier.proto deleted file mode 100644 index 1021264ae..000000000 --- a/google/ads/googleads/v7/enums/promotion_extension_discount_modifier.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PromotionExtensionDiscountModifierProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing promotion extension discount modifier. - -// Container for enum describing possible a promotion extension -// discount modifier. -message PromotionExtensionDiscountModifierEnum { - // A promotion extension discount modifier. - enum PromotionExtensionDiscountModifier { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // 'Up to'. - UP_TO = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/promotion_extension_occasion.proto b/google/ads/googleads/v7/enums/promotion_extension_occasion.proto deleted file mode 100644 index b5978f48d..000000000 --- a/google/ads/googleads/v7/enums/promotion_extension_occasion.proto +++ /dev/null @@ -1,157 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PromotionExtensionOccasionProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing promotion extension occasion. - -// Container for enum describing a promotion extension occasion. -// For more information about the occasions please check: -// https://support.google.com/google-ads/answer/7367521 -message PromotionExtensionOccasionEnum { - // A promotion extension occasion. - enum PromotionExtensionOccasion { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // New Year's. - NEW_YEARS = 2; - - // Chinese New Year. - CHINESE_NEW_YEAR = 3; - - // Valentine's Day. - VALENTINES_DAY = 4; - - // Easter. - EASTER = 5; - - // Mother's Day. - MOTHERS_DAY = 6; - - // Father's Day. - FATHERS_DAY = 7; - - // Labor Day. - LABOR_DAY = 8; - - // Back To School. - BACK_TO_SCHOOL = 9; - - // Halloween. - HALLOWEEN = 10; - - // Black Friday. - BLACK_FRIDAY = 11; - - // Cyber Monday. - CYBER_MONDAY = 12; - - // Christmas. - CHRISTMAS = 13; - - // Boxing Day. - BOXING_DAY = 14; - - // Independence Day in any country. - INDEPENDENCE_DAY = 15; - - // National Day in any country. - NATIONAL_DAY = 16; - - // End of any season. - END_OF_SEASON = 17; - - // Winter Sale. - WINTER_SALE = 18; - - // Summer sale. - SUMMER_SALE = 19; - - // Fall Sale. - FALL_SALE = 20; - - // Spring Sale. - SPRING_SALE = 21; - - // Ramadan. - RAMADAN = 22; - - // Eid al-Fitr. - EID_AL_FITR = 23; - - // Eid al-Adha. - EID_AL_ADHA = 24; - - // Singles Day. - SINGLES_DAY = 25; - - // Women's Day. - WOMENS_DAY = 26; - - // Holi. - HOLI = 27; - - // Parent's Day. - PARENTS_DAY = 28; - - // St. Nicholas Day. - ST_NICHOLAS_DAY = 29; - - // Carnival. - CARNIVAL = 30; - - // Epiphany, also known as Three Kings' Day. - EPIPHANY = 31; - - // Rosh Hashanah. - ROSH_HASHANAH = 32; - - // Passover. - PASSOVER = 33; - - // Hanukkah. - HANUKKAH = 34; - - // Diwali. - DIWALI = 35; - - // Navratri. - NAVRATRI = 36; - - // Available in Thai: Songkran. - SONGKRAN = 37; - - // Available in Japanese: Year-end Gift. - YEAR_END_GIFT = 38; - } - - -} diff --git a/google/ads/googleads/v7/enums/promotion_placeholder_field.proto b/google/ads/googleads/v7/enums/promotion_placeholder_field.proto deleted file mode 100644 index 8f14c0cc9..000000000 --- a/google/ads/googleads/v7/enums/promotion_placeholder_field.proto +++ /dev/null @@ -1,95 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PromotionPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Promotion placeholder fields. - -// Values for Promotion placeholder fields. -message PromotionPlaceholderFieldEnum { - // Possible values for Promotion placeholder fields. - enum PromotionPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The text that appears on the ad when the extension is - // shown. - PROMOTION_TARGET = 2; - - // Data Type: STRING. Allows you to add "up to" phrase to the promotion, - // in case you have variable promotion rates. - DISCOUNT_MODIFIER = 3; - - // Data Type: INT64. Takes a value in micros, where 1 million micros - // represents 1%, and is shown as a percentage when rendered. - PERCENT_OFF = 4; - - // Data Type: MONEY. Requires a currency and an amount of money. - MONEY_AMOUNT_OFF = 5; - - // Data Type: STRING. A string that the user enters to get the discount. - PROMOTION_CODE = 6; - - // Data Type: MONEY. A minimum spend before the user qualifies for the - // promotion. - ORDERS_OVER_AMOUNT = 7; - - // Data Type: DATE. The start date of the promotion. - PROMOTION_START = 8; - - // Data Type: DATE. The end date of the promotion. - PROMOTION_END = 9; - - // Data Type: STRING. Describes the associated event for the promotion using - // one of the PromotionExtensionOccasion enum values, for example NEW_YEARS. - OCCASION = 10; - - // Data Type: URL_LIST. Final URLs to be used in the ad when using Upgraded - // URLs. - FINAL_URLS = 11; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 12; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 13; - - // Data Type: STRING. A string represented by a language code for the - // promotion. - LANGUAGE = 14; - - // Data Type: STRING. Final URL suffix for the ad when using parallel - // tracking. - FINAL_URL_SUFFIX = 15; - } - - -} diff --git a/google/ads/googleads/v7/enums/proximity_radius_units.proto b/google/ads/googleads/v7/enums/proximity_radius_units.proto deleted file mode 100644 index 53572b1b1..000000000 --- a/google/ads/googleads/v7/enums/proximity_radius_units.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProximityRadiusUnitsProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing proximity radius units. - -// Container for enum describing unit of radius in proximity. -message ProximityRadiusUnitsEnum { - // The unit of radius distance in proximity (e.g. MILES) - enum ProximityRadiusUnits { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Miles - MILES = 2; - - // Kilometers - KILOMETERS = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/quality_score_bucket.proto b/google/ads/googleads/v7/enums/quality_score_bucket.proto deleted file mode 100644 index 0ea225b1c..000000000 --- a/google/ads/googleads/v7/enums/quality_score_bucket.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "QualityScoreBucketProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing quality score buckets. - -// The relative performance compared to other advertisers. -message QualityScoreBucketEnum { - // Enum listing the possible quality score buckets. - enum QualityScoreBucket { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Quality of the creative is below average. - BELOW_AVERAGE = 2; - - // Quality of the creative is average. - AVERAGE = 3; - - // Quality of the creative is above average. - ABOVE_AVERAGE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/reach_plan_ad_length.proto b/google/ads/googleads/v7/enums/reach_plan_ad_length.proto deleted file mode 100644 index 6896f3532..000000000 --- a/google/ads/googleads/v7/enums/reach_plan_ad_length.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanAdLengthProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing ad lengths of a plannable video ad. - -// Message describing length of a plannable video ad. -message ReachPlanAdLengthEnum { - // Possible ad length values. - enum ReachPlanAdLength { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // 6 seconds long ad. - SIX_SECONDS = 2; - - // 15 or 20 seconds long ad. - FIFTEEN_OR_TWENTY_SECONDS = 3; - - // More than 20 seconds long ad. - TWENTY_SECONDS_OR_MORE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/reach_plan_age_range.proto b/google/ads/googleads/v7/enums/reach_plan_age_range.proto deleted file mode 100644 index aabc1d237..000000000 --- a/google/ads/googleads/v7/enums/reach_plan_age_range.proto +++ /dev/null @@ -1,122 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanAgeRangeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing a plannable age range. - -// Message describing plannable age ranges. -message ReachPlanAgeRangeEnum { - // Possible plannable age range values. - enum ReachPlanAgeRange { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Between 18 and 24 years old. - AGE_RANGE_18_24 = 503001; - - // Between 18 and 34 years old. - AGE_RANGE_18_34 = 2; - - // Between 18 and 44 years old. - AGE_RANGE_18_44 = 3; - - // Between 18 and 49 years old. - AGE_RANGE_18_49 = 4; - - // Between 18 and 54 years old. - AGE_RANGE_18_54 = 5; - - // Between 18 and 64 years old. - AGE_RANGE_18_64 = 6; - - // Between 18 and 65+ years old. - AGE_RANGE_18_65_UP = 7; - - // Between 21 and 34 years old. - AGE_RANGE_21_34 = 8; - - // Between 25 and 34 years old. - AGE_RANGE_25_34 = 503002; - - // Between 25 and 44 years old. - AGE_RANGE_25_44 = 9; - - // Between 25 and 49 years old. - AGE_RANGE_25_49 = 10; - - // Between 25 and 54 years old. - AGE_RANGE_25_54 = 11; - - // Between 25 and 64 years old. - AGE_RANGE_25_64 = 12; - - // Between 25 and 65+ years old. - AGE_RANGE_25_65_UP = 13; - - // Between 35 and 44 years old. - AGE_RANGE_35_44 = 503003; - - // Between 35 and 49 years old. - AGE_RANGE_35_49 = 14; - - // Between 35 and 54 years old. - AGE_RANGE_35_54 = 15; - - // Between 35 and 64 years old. - AGE_RANGE_35_64 = 16; - - // Between 35 and 65+ years old. - AGE_RANGE_35_65_UP = 17; - - // Between 45 and 54 years old. - AGE_RANGE_45_54 = 503004; - - // Between 45 and 64 years old. - AGE_RANGE_45_64 = 18; - - // Between 45 and 65+ years old. - AGE_RANGE_45_65_UP = 19; - - // Between 50 and 65+ years old. - AGE_RANGE_50_65_UP = 20; - - // Between 55 and 64 years old. - AGE_RANGE_55_64 = 503005; - - // Between 55 and 65+ years old. - AGE_RANGE_55_65_UP = 21; - - // 65 years old and beyond. - AGE_RANGE_65_UP = 503006; - } - - -} diff --git a/google/ads/googleads/v7/enums/reach_plan_network.proto b/google/ads/googleads/v7/enums/reach_plan_network.proto deleted file mode 100644 index 95f1f4c7a..000000000 --- a/google/ads/googleads/v7/enums/reach_plan_network.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanNetworkProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing a plannable network. - -// Container for enum describing plannable networks. -message ReachPlanNetworkEnum { - // Possible plannable network values. - enum ReachPlanNetwork { - // Not specified. - UNSPECIFIED = 0; - - // Used as a return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // YouTube network. - YOUTUBE = 2; - - // Google Video Partners (GVP) network. - GOOGLE_VIDEO_PARTNERS = 3; - - // A combination of the YouTube network and the Google Video Partners - // network. - YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/real_estate_placeholder_field.proto b/google/ads/googleads/v7/enums/real_estate_placeholder_field.proto deleted file mode 100644 index 65ac30f46..000000000 --- a/google/ads/googleads/v7/enums/real_estate_placeholder_field.proto +++ /dev/null @@ -1,115 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "RealEstatePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Real Estate placeholder fields. - -// Values for Real Estate placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message RealEstatePlaceholderFieldEnum { - // Possible values for Real Estate placeholder fields. - enum RealEstatePlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Unique ID. - LISTING_ID = 2; - - // Data Type: STRING. Main headline with listing name to be shown in dynamic - // ad. - LISTING_NAME = 3; - - // Data Type: STRING. City name to be shown in dynamic ad. - CITY_NAME = 4; - - // Data Type: STRING. Description of listing to be shown in dynamic ad. - DESCRIPTION = 5; - - // Data Type: STRING. Complete listing address, including postal code. - ADDRESS = 6; - - // Data Type: STRING. Price to be shown in the ad. - // Example: "100.00 USD" - PRICE = 7; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 8; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 9; - - // Data Type: STRING. Type of property (house, condo, apartment, etc.) used - // to group like items together for recommendation engine. - PROPERTY_TYPE = 10; - - // Data Type: STRING. Type of listing (resale, rental, foreclosure, etc.) - // used to group like items together for recommendation engine. - LISTING_TYPE = 11; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 12; - - // Data Type: URL_LIST. Final URLs to be used in ad when using Upgraded - // URLs; the more specific the better (e.g. the individual URL of a specific - // listing and its location). - FINAL_URLS = 13; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 14; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 15; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 16; - - // Data Type: STRING_LIST. List of recommended listing IDs to show together - // with this item. - SIMILAR_LISTING_IDS = 17; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 18; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 19; - } - - -} diff --git a/google/ads/googleads/v7/enums/recommendation_type.proto b/google/ads/googleads/v7/enums/recommendation_type.proto deleted file mode 100644 index 35a1810c0..000000000 --- a/google/ads/googleads/v7/enums/recommendation_type.proto +++ /dev/null @@ -1,112 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Recommendation types. - -// Container for enum describing types of recommendations. -message RecommendationTypeEnum { - // Types of recommendations. - enum RecommendationType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Budget recommendation for campaigns that are currently budget-constrained - // (as opposed to the FORECASTING_CAMPAIGN_BUDGET recommendation, which - // applies to campaigns that are expected to become budget-constrained in - // the future). - CAMPAIGN_BUDGET = 2; - - // Keyword recommendation. - KEYWORD = 3; - - // Recommendation to add a new text ad. - TEXT_AD = 4; - - // Recommendation to update a campaign to use a Target CPA bidding strategy. - TARGET_CPA_OPT_IN = 5; - - // Recommendation to update a campaign to use the Maximize Conversions - // bidding strategy. - MAXIMIZE_CONVERSIONS_OPT_IN = 6; - - // Recommendation to enable Enhanced Cost Per Click for a campaign. - ENHANCED_CPC_OPT_IN = 7; - - // Recommendation to start showing your campaign's ads on Google Search - // Partners Websites. - SEARCH_PARTNERS_OPT_IN = 8; - - // Recommendation to update a campaign to use a Maximize Clicks bidding - // strategy. - MAXIMIZE_CLICKS_OPT_IN = 9; - - // Recommendation to start using the "Optimize" ad rotation setting for the - // given ad group. - OPTIMIZE_AD_ROTATION = 10; - - // Recommendation to add callout extensions to a campaign. - CALLOUT_EXTENSION = 11; - - // Recommendation to add sitelink extensions to a campaign. - SITELINK_EXTENSION = 12; - - // Recommendation to add call extensions to a campaign. - CALL_EXTENSION = 13; - - // Recommendation to change an existing keyword from one match type to a - // broader match type. - KEYWORD_MATCH_TYPE = 14; - - // Recommendation to move unused budget from one budget to a constrained - // budget. - MOVE_UNUSED_BUDGET = 15; - - // Budget recommendation for campaigns that are expected to become - // budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET - // recommendation, which applies to campaigns that are currently - // budget-constrained). - FORECASTING_CAMPAIGN_BUDGET = 16; - - // Recommendation to update a campaign to use a Target ROAS bidding - // strategy. - TARGET_ROAS_OPT_IN = 17; - - // Recommendation to add a new responsive search ad. - RESPONSIVE_SEARCH_AD = 18; - - // Budget recommendation for campaigns whose ROI is predicted to increase - // with a budget adjustment. - MARGINAL_ROI_CAMPAIGN_BUDGET = 19; - } - - -} diff --git a/google/ads/googleads/v7/enums/resource_change_operation.proto b/google/ads/googleads/v7/enums/resource_change_operation.proto deleted file mode 100644 index 13e074c76..000000000 --- a/google/ads/googleads/v7/enums/resource_change_operation.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ResourceChangeOperationProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the resource change operations in change event. - -// Container for enum describing resource change operations -// in the ChangeEvent resource. -message ResourceChangeOperationEnum { - // The operation on the changed resource in change_event resource. - enum ResourceChangeOperation { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified operation unknown - // in this version. - UNKNOWN = 1; - - // The resource was created. - CREATE = 2; - - // The resource was modified. - UPDATE = 3; - - // The resource was removed. - REMOVE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/resource_limit_type.proto b/google/ads/googleads/v7/enums/resource_limit_type.proto deleted file mode 100644 index 88e9cfa04..000000000 --- a/google/ads/googleads/v7/enums/resource_limit_type.proto +++ /dev/null @@ -1,333 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ResourceLimitTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing possible resource limit types. -message ResourceLimitTypeEnum { - // Resource limit type. - enum ResourceLimitType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified operation unknown - // in this version. - UNKNOWN = 1; - - // Number of ENABLED and PAUSED campaigns per customer. - CAMPAIGNS_PER_CUSTOMER = 2; - - // Number of ENABLED and PAUSED base campaigns per customer. - BASE_CAMPAIGNS_PER_CUSTOMER = 3; - - // Number of ENABLED and PAUSED experiment campaigns per customer. - EXPERIMENT_CAMPAIGNS_PER_CUSTOMER = 105; - - // Number of ENABLED and PAUSED Hotel campaigns per customer. - HOTEL_CAMPAIGNS_PER_CUSTOMER = 4; - - // Number of ENABLED and PAUSED Smart Shopping campaigns per customer. - SMART_SHOPPING_CAMPAIGNS_PER_CUSTOMER = 5; - - // Number of ENABLED ad groups per campaign. - AD_GROUPS_PER_CAMPAIGN = 6; - - // Number of ENABLED ad groups per Shopping campaign. - AD_GROUPS_PER_SHOPPING_CAMPAIGN = 8; - - // Number of ENABLED ad groups per Hotel campaign. - AD_GROUPS_PER_HOTEL_CAMPAIGN = 9; - - // Number of ENABLED reporting ad groups per local campaign. - REPORTING_AD_GROUPS_PER_LOCAL_CAMPAIGN = 10; - - // Number of ENABLED reporting ad groups per App campaign. It includes app - // campaign and app campaign for engagement. - REPORTING_AD_GROUPS_PER_APP_CAMPAIGN = 11; - - // Number of ENABLED managed ad groups per smart campaign. - MANAGED_AD_GROUPS_PER_SMART_CAMPAIGN = 52; - - // Number of ENABLED ad group criteria per customer. - // An ad group criterion is considered as ENABLED if: - // 1. it's not REMOVED - // 2. its ad group is not REMOVED - // 3. its campaign is not REMOVED. - AD_GROUP_CRITERIA_PER_CUSTOMER = 12; - - // Number of ad group criteria across all base campaigns for a customer. - BASE_AD_GROUP_CRITERIA_PER_CUSTOMER = 13; - - // Number of ad group criteria across all experiment campaigns for a - // customer. - EXPERIMENT_AD_GROUP_CRITERIA_PER_CUSTOMER = 107; - - // Number of ENABLED ad group criteria per campaign. - // An ad group criterion is considered as ENABLED if: - // 1. it's not REMOVED - // 2. its ad group is not REMOVED. - AD_GROUP_CRITERIA_PER_CAMPAIGN = 14; - - // Number of ENABLED campaign criteria per customer. - CAMPAIGN_CRITERIA_PER_CUSTOMER = 15; - - // Number of ENABLED campaign criteria across all base campaigns for a - // customer. - BASE_CAMPAIGN_CRITERIA_PER_CUSTOMER = 16; - - // Number of ENABLED campaign criteria across all experiment campaigns for a - // customer. - EXPERIMENT_CAMPAIGN_CRITERIA_PER_CUSTOMER = 108; - - // Number of ENABLED webpage criteria per customer, including - // campaign level and ad group level. - WEBPAGE_CRITERIA_PER_CUSTOMER = 17; - - // Number of ENABLED webpage criteria across all base campaigns for - // a customer. - BASE_WEBPAGE_CRITERIA_PER_CUSTOMER = 18; - - // Meximum number of ENABLED webpage criteria across all experiment - // campaigns for a customer. - EXPERIMENT_WEBPAGE_CRITERIA_PER_CUSTOMER = 19; - - // Number of combined audience criteria per ad group. - COMBINED_AUDIENCE_CRITERIA_PER_AD_GROUP = 20; - - // Limit for placement criterion type group in customer negative criterion. - CUSTOMER_NEGATIVE_PLACEMENT_CRITERIA_PER_CUSTOMER = 21; - - // Limit for YouTube TV channels in customer negative criterion. - CUSTOMER_NEGATIVE_YOUTUBE_CHANNEL_CRITERIA_PER_CUSTOMER = 22; - - // Number of ENABLED criteria per ad group. - CRITERIA_PER_AD_GROUP = 23; - - // Number of listing group criteria per ad group. - LISTING_GROUPS_PER_AD_GROUP = 24; - - // Number of ENABLED explicitly shared budgets per customer. - EXPLICITLY_SHARED_BUDGETS_PER_CUSTOMER = 25; - - // Number of ENABLED implicitly shared budgets per customer. - IMPLICITLY_SHARED_BUDGETS_PER_CUSTOMER = 26; - - // Number of combined audience criteria per campaign. - COMBINED_AUDIENCE_CRITERIA_PER_CAMPAIGN = 27; - - // Number of negative keywords per campaign. - NEGATIVE_KEYWORDS_PER_CAMPAIGN = 28; - - // Number of excluded campaign criteria in placement dimension, e.g. - // placement, mobile application, YouTube channel, etc. The API criterion - // type is NOT limited to placement only, and this does not include - // exclusions at the ad group or other levels. - NEGATIVE_PLACEMENTS_PER_CAMPAIGN = 29; - - // Number of geo targets per campaign. - GEO_TARGETS_PER_CAMPAIGN = 30; - - // Number of negative IP blocks per campaign. - NEGATIVE_IP_BLOCKS_PER_CAMPAIGN = 32; - - // Number of proximity targets per campaign. - PROXIMITIES_PER_CAMPAIGN = 33; - - // Number of listing scopes per Shopping campaign. - LISTING_SCOPES_PER_SHOPPING_CAMPAIGN = 34; - - // Number of listing scopes per non-Shopping campaign. - LISTING_SCOPES_PER_NON_SHOPPING_CAMPAIGN = 35; - - // Number of criteria per negative keyword shared set. - NEGATIVE_KEYWORDS_PER_SHARED_SET = 36; - - // Number of criteria per negative placement shared set. - NEGATIVE_PLACEMENTS_PER_SHARED_SET = 37; - - // Default number of shared sets allowed per type per customer. - SHARED_SETS_PER_CUSTOMER_FOR_TYPE_DEFAULT = 40; - - // Number of shared sets of negative placement list type for a - // manager customer. - SHARED_SETS_PER_CUSTOMER_FOR_NEGATIVE_PLACEMENT_LIST_LOWER = 41; - - // Number of hotel_advance_booking_window bid modifiers per ad group. - HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP = 44; - - // Number of ENABLED shared bidding strategies per customer. - BIDDING_STRATEGIES_PER_CUSTOMER = 45; - - // Number of open basic user lists per customer. - BASIC_USER_LISTS_PER_CUSTOMER = 47; - - // Number of open logical user lists per customer. - LOGICAL_USER_LISTS_PER_CUSTOMER = 48; - - // Number of ENABLED and PAUSED ad group ads across all base campaigns for a - // customer. - BASE_AD_GROUP_ADS_PER_CUSTOMER = 53; - - // Number of ENABLED and PAUSED ad group ads across all experiment campaigns - // for a customer. - EXPERIMENT_AD_GROUP_ADS_PER_CUSTOMER = 54; - - // Number of ENABLED and PAUSED ad group ads per campaign. - AD_GROUP_ADS_PER_CAMPAIGN = 55; - - // Number of ENABLED ads per ad group that do not fall in to other buckets. - // Includes text and many other types. - TEXT_AND_OTHER_ADS_PER_AD_GROUP = 56; - - // Number of ENABLED image ads per ad group. - IMAGE_ADS_PER_AD_GROUP = 57; - - // Number of ENABLED shopping smart ads per ad group. - SHOPPING_SMART_ADS_PER_AD_GROUP = 58; - - // Number of ENABLED responsive search ads per ad group. - RESPONSIVE_SEARCH_ADS_PER_AD_GROUP = 59; - - // Number of ENABLED app ads per ad group. - APP_ADS_PER_AD_GROUP = 60; - - // Number of ENABLED app engagement ads per ad group. - APP_ENGAGEMENT_ADS_PER_AD_GROUP = 61; - - // Number of ENABLED local ads per ad group. - LOCAL_ADS_PER_AD_GROUP = 62; - - // Number of ENABLED video ads per ad group. - VIDEO_ADS_PER_AD_GROUP = 63; - - // Number of ENABLED lead form asset links per campaign. - LEAD_FORM_ASSET_LINKS_PER_CAMPAIGN = 68; - - // Number of versions per ad. - VERSIONS_PER_AD = 82; - - // Number of ENABLED user feeds per customer. - USER_FEEDS_PER_CUSTOMER = 90; - - // Number of ENABLED system feeds per customer. - SYSTEM_FEEDS_PER_CUSTOMER = 91; - - // Number of feed attributes per feed. - FEED_ATTRIBUTES_PER_FEED = 92; - - // Number of ENABLED feed items per customer. - FEED_ITEMS_PER_CUSTOMER = 94; - - // Number of ENABLED campaign feeds per customer. - CAMPAIGN_FEEDS_PER_CUSTOMER = 95; - - // Number of ENABLED campaign feeds across all base campaigns for a - // customer. - BASE_CAMPAIGN_FEEDS_PER_CUSTOMER = 96; - - // Number of ENABLED campaign feeds across all experiment campaigns for a - // customer. - EXPERIMENT_CAMPAIGN_FEEDS_PER_CUSTOMER = 109; - - // Number of ENABLED ad group feeds per customer. - AD_GROUP_FEEDS_PER_CUSTOMER = 97; - - // Number of ENABLED ad group feeds across all base campaigns for a - // customer. - BASE_AD_GROUP_FEEDS_PER_CUSTOMER = 98; - - // Number of ENABLED ad group feeds across all experiment campaigns for a - // customer. - EXPERIMENT_AD_GROUP_FEEDS_PER_CUSTOMER = 110; - - // Number of ENABLED ad group feeds per campaign. - AD_GROUP_FEEDS_PER_CAMPAIGN = 99; - - // Number of ENABLED feed items per customer. - FEED_ITEM_SETS_PER_CUSTOMER = 100; - - // Number of feed items per feed item set. - FEED_ITEMS_PER_FEED_ITEM_SET = 101; - - // Number of ENABLED campaign experiments per customer. - CAMPAIGN_EXPERIMENTS_PER_CUSTOMER = 112; - - // Number of video experiment arms per experiment. - EXPERIMENT_ARMS_PER_VIDEO_EXPERIMENT = 113; - - // Number of owned labels per customer. - OWNED_LABELS_PER_CUSTOMER = 115; - - // Number of applied labels per campaign. - LABELS_PER_CAMPAIGN = 117; - - // Number of applied labels per ad group. - LABELS_PER_AD_GROUP = 118; - - // Number of applied labels per ad group ad. - LABELS_PER_AD_GROUP_AD = 119; - - // Number of applied labels per ad group criterion. - LABELS_PER_AD_GROUP_CRITERION = 120; - - // Number of customers with a single label applied. - TARGET_CUSTOMERS_PER_LABEL = 121; - - // Number of ENABLED keyword plans per user per customer. - // The limit is applied per pair because by default a plan - // is private to a user of a customer. Each user of a customer has his or - // her own independent limit. - KEYWORD_PLANS_PER_USER_PER_CUSTOMER = 122; - - // Number of keyword plan ad group keywords per keyword plan. - KEYWORD_PLAN_AD_GROUP_KEYWORDS_PER_KEYWORD_PLAN = 123; - - // Number of keyword plan ad groups per keyword plan. - KEYWORD_PLAN_AD_GROUPS_PER_KEYWORD_PLAN = 124; - - // Number of keyword plan negative keywords (both campaign and ad group) per - // keyword plan. - KEYWORD_PLAN_NEGATIVE_KEYWORDS_PER_KEYWORD_PLAN = 125; - - // Number of keyword plan campaigns per keyword plan. - KEYWORD_PLAN_CAMPAIGNS_PER_KEYWORD_PLAN = 126; - - // Number of ENABLED conversion actions per customer. - CONVERSION_ACTIONS_PER_CUSTOMER = 128; - - // Number of operations in a single batch job. - BATCH_JOB_OPERATIONS_PER_JOB = 130; - - // Number of PENDING or ENABLED batch jobs per customer. - BATCH_JOBS_PER_CUSTOMER = 131; - - // Number of hotel check-in date range bid modifiers per ad agroup. - HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP = 132; - } - - -} diff --git a/google/ads/googleads/v7/enums/response_content_type.proto b/google/ads/googleads/v7/enums/response_content_type.proto deleted file mode 100644 index 7e86ff93d..000000000 --- a/google/ads/googleads/v7/enums/response_content_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ResponseContentTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the response content types used in mutate operations. - -// Container for possible response content types. -message ResponseContentTypeEnum { - // Possible response content types. - enum ResponseContentType { - // Not specified. Will return the resource name only in the response. - UNSPECIFIED = 0; - - // 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. - MUTABLE_RESOURCE = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/search_engine_results_page_type.proto b/google/ads/googleads/v7/enums/search_engine_results_page_type.proto deleted file mode 100644 index 447dc2b94..000000000 --- a/google/ads/googleads/v7/enums/search_engine_results_page_type.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SearchEngineResultsPageTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing search engine results page types. - -// The type of the search engine results page. -message SearchEngineResultsPageTypeEnum { - // The type of the search engine results page. - enum SearchEngineResultsPageType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Only ads were contained in the search engine results page. - ADS_ONLY = 2; - - // Only organic results were contained in the search engine results page. - ORGANIC_ONLY = 3; - - // Both ads and organic results were contained in the search engine results - // page. - ADS_AND_ORGANIC = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/search_term_match_type.proto b/google/ads/googleads/v7/enums/search_term_match_type.proto deleted file mode 100644 index eb1769c10..000000000 --- a/google/ads/googleads/v7/enums/search_term_match_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SearchTermMatchTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing search term match types. - -// Container for enum describing match types for a keyword triggering an ad. -message SearchTermMatchTypeEnum { - // Possible match types for a keyword triggering an ad, including variants. - enum SearchTermMatchType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Broad match. - BROAD = 2; - - // Exact match. - EXACT = 3; - - // Phrase match. - PHRASE = 4; - - // Exact match (close variant). - NEAR_EXACT = 5; - - // Phrase match (close variant). - NEAR_PHRASE = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/search_term_targeting_status.proto b/google/ads/googleads/v7/enums/search_term_targeting_status.proto deleted file mode 100644 index 21ac4e06f..000000000 --- a/google/ads/googleads/v7/enums/search_term_targeting_status.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SearchTermTargetingStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing search term targeting statuses. - -// Container for enum indicating whether a search term is one of your targeted -// or excluded keywords. -message SearchTermTargetingStatusEnum { - // Indicates whether the search term is one of your targeted or excluded - // keywords. - enum SearchTermTargetingStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Search term is added to targeted keywords. - ADDED = 2; - - // Search term matches a negative keyword. - EXCLUDED = 3; - - // Search term has been both added and excluded. - ADDED_EXCLUDED = 4; - - // Search term is neither targeted nor excluded. - NONE = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/served_asset_field_type.proto b/google/ads/googleads/v7/enums/served_asset_field_type.proto deleted file mode 100644 index 330b237b0..000000000 --- a/google/ads/googleads/v7/enums/served_asset_field_type.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ServedAssetFieldTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing policy review statuses. - -// Container for enum describing possible asset field types. -message ServedAssetFieldTypeEnum { - // The possible asset field types. - enum ServedAssetFieldType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The asset is used in headline 1. - HEADLINE_1 = 2; - - // The asset is used in headline 2. - HEADLINE_2 = 3; - - // The asset is used in headline 3. - HEADLINE_3 = 4; - - // The asset is used in description 1. - DESCRIPTION_1 = 5; - - // The asset is used in description 2. - DESCRIPTION_2 = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/shared_set_status.proto b/google/ads/googleads/v7/enums/shared_set_status.proto deleted file mode 100644 index a295b62d4..000000000 --- a/google/ads/googleads/v7/enums/shared_set_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing shared set statuses. - -// Container for enum describing types of shared set statuses. -message SharedSetStatusEnum { - // Enum listing the possible shared set statuses. - enum SharedSetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The shared set is enabled. - ENABLED = 2; - - // The shared set is removed and can no longer be used. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/shared_set_type.proto b/google/ads/googleads/v7/enums/shared_set_type.proto deleted file mode 100644 index 5bedb7317..000000000 --- a/google/ads/googleads/v7/enums/shared_set_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing shared set types. - -// Container for enum describing types of shared sets. -message SharedSetTypeEnum { - // Enum listing the possible shared set types. - enum SharedSetType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // A set of keywords that can be excluded from targeting. - NEGATIVE_KEYWORDS = 2; - - // A set of placements that can be excluded from targeting. - NEGATIVE_PLACEMENTS = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/simulation_modification_method.proto b/google/ads/googleads/v7/enums/simulation_modification_method.proto deleted file mode 100644 index e982982d4..000000000 --- a/google/ads/googleads/v7/enums/simulation_modification_method.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SimulationModificationMethodProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing simulation modification methods. - -// Container for enum describing the method by which a simulation modifies -// a field. -message SimulationModificationMethodEnum { - // Enum describing the method by which a simulation modifies a field. - enum SimulationModificationMethod { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The values in a simulation were applied to all children of a given - // resource uniformly. Overrides on child resources were not respected. - UNIFORM = 2; - - // The values in a simulation were applied to the given resource. - // Overrides on child resources were respected, and traffic estimates - // do not include these resources. - DEFAULT = 3; - - // The values in a simulation were all scaled by the same factor. - // For example, in a simulated TargetCpa campaign, the campaign target and - // all ad group targets were scaled by a factor of X. - SCALING = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/simulation_type.proto b/google/ads/googleads/v7/enums/simulation_type.proto deleted file mode 100644 index 092988e85..000000000 --- a/google/ads/googleads/v7/enums/simulation_type.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SimulationTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing simulation types. - -// Container for enum describing the field a simulation modifies. -message SimulationTypeEnum { - // Enum describing the field a simulation modifies. - enum SimulationType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The simulation is for a CPC bid. - CPC_BID = 2; - - // The simulation is for a CPV bid. - CPV_BID = 3; - - // The simulation is for a CPA target. - TARGET_CPA = 4; - - // The simulation is for a bid modifier. - BID_MODIFIER = 5; - - // The simulation is for a ROAS target. - TARGET_ROAS = 6; - - // The simulation is for a percent CPC bid. - PERCENT_CPC_BID = 7; - - // The simulation is for an impression share target. - TARGET_IMPRESSION_SHARE = 8; - - // The simulation is for a budget. - BUDGET = 9; - } - - -} diff --git a/google/ads/googleads/v7/enums/sitelink_placeholder_field.proto b/google/ads/googleads/v7/enums/sitelink_placeholder_field.proto deleted file mode 100644 index 6f4799672..000000000 --- a/google/ads/googleads/v7/enums/sitelink_placeholder_field.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SitelinkPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Sitelink placeholder fields. - -// Values for Sitelink placeholder fields. -message SitelinkPlaceholderFieldEnum { - // Possible values for Sitelink placeholder fields. - enum SitelinkPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The link text for your sitelink. - TEXT = 2; - - // Data Type: STRING. First line of the sitelink description. - LINE_1 = 3; - - // Data Type: STRING. Second line of the sitelink description. - LINE_2 = 4; - - // Data Type: URL_LIST. Final URLs for the sitelink when using Upgraded - // URLs. - FINAL_URLS = 5; - - // Data Type: URL_LIST. Final Mobile URLs for the sitelink when using - // Upgraded URLs. - FINAL_MOBILE_URLS = 6; - - // Data Type: URL. Tracking template for the sitelink when using Upgraded - // URLs. - TRACKING_URL = 7; - - // Data Type: STRING. Final URL suffix for sitelink when using parallel - // tracking. - FINAL_URL_SUFFIX = 8; - } - - -} diff --git a/google/ads/googleads/v7/enums/slot.proto b/google/ads/googleads/v7/enums/slot.proto deleted file mode 100644 index 969ead809..000000000 --- a/google/ads/googleads/v7/enums/slot.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SlotProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing slots. - -// Container for enumeration of possible positions of the Ad. -message SlotEnum { - // Enumerates possible positions of the Ad. - enum Slot { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Google search: Side. - SEARCH_SIDE = 2; - - // Google search: Top. - SEARCH_TOP = 3; - - // Google search: Other. - SEARCH_OTHER = 4; - - // Google Display Network. - CONTENT = 5; - - // Search partners: Top. - SEARCH_PARTNER_TOP = 6; - - // Search partners: Other. - SEARCH_PARTNER_OTHER = 7; - - // Cross-network. - MIXED = 8; - } - - -} diff --git a/google/ads/googleads/v7/enums/spending_limit_type.proto b/google/ads/googleads/v7/enums/spending_limit_type.proto deleted file mode 100644 index eed3c6b52..000000000 --- a/google/ads/googleads/v7/enums/spending_limit_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SpendingLimitTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing SpendingLimit types. - -// Message describing spending limit types. -message SpendingLimitTypeEnum { - // The possible spending limit types used by certain resources as an - // alternative to absolute money values in micros. - enum SpendingLimitType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Infinite, indicates unlimited spending power. - INFINITE = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/structured_snippet_placeholder_field.proto b/google/ads/googleads/v7/enums/structured_snippet_placeholder_field.proto deleted file mode 100644 index 8f9baaf2b..000000000 --- a/google/ads/googleads/v7/enums/structured_snippet_placeholder_field.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "StructuredSnippetPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Structured Snippet placeholder fields. - -// Values for Structured Snippet placeholder fields. -message StructuredSnippetPlaceholderFieldEnum { - // Possible values for Structured Snippet placeholder fields. - enum StructuredSnippetPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The category of snippet of your products/services. - // Must match exactly one of the predefined structured snippets headers. - // For a list, visit - // https://developers.google.com/adwords/api/docs/appendix/structured-snippet-headers - HEADER = 2; - - // Data Type: STRING_LIST. Text values that describe your products/services. - // All text must be family safe. Special or non-ASCII characters are not - // permitted. A snippet can be at most 25 characters. - SNIPPETS = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/summary_row_setting.proto b/google/ads/googleads/v7/enums/summary_row_setting.proto deleted file mode 100644 index fd4db9636..000000000 --- a/google/ads/googleads/v7/enums/summary_row_setting.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SummaryRowSettingProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing summary row setting. - -// Indicates summary row setting in request parameter. -message SummaryRowSettingEnum { - // Enum describing return summary row settings. - enum SummaryRowSetting { - // Not specified. - UNSPECIFIED = 0; - - // Represent unknown values of return summary row. - UNKNOWN = 1; - - // Do not return summary row. - NO_SUMMARY_ROW = 2; - - // Return summary row along with results. The summary row will be returned - // in the last batch alone (last batch will contain no results). - SUMMARY_ROW_WITH_RESULTS = 3; - - // Return summary row only and return no results. - SUMMARY_ROW_ONLY = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/system_managed_entity_source.proto b/google/ads/googleads/v7/enums/system_managed_entity_source.proto deleted file mode 100644 index 79f7b6651..000000000 --- a/google/ads/googleads/v7/enums/system_managed_entity_source.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SystemManagedEntitySourceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing system managed entity sources. - -// Container for enum describing possible system managed entity sources. -message SystemManagedResourceSourceEnum { - // Enum listing the possible system managed entity sources. - enum SystemManagedResourceSource { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Generated ad variations experiment ad. - AD_VARIATIONS = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/target_cpa_opt_in_recommendation_goal.proto b/google/ads/googleads/v7/enums/target_cpa_opt_in_recommendation_goal.proto deleted file mode 100644 index 38b722b5a..000000000 --- a/google/ads/googleads/v7/enums/target_cpa_opt_in_recommendation_goal.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TargetCpaOptInRecommendationGoalProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing TargetCpaOptIn recommendation goals. - -// Container for enum describing goals for TargetCpaOptIn recommendation. -message TargetCpaOptInRecommendationGoalEnum { - // Goal of TargetCpaOptIn recommendation. - enum TargetCpaOptInRecommendationGoal { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Recommendation to set Target CPA to maintain the same cost. - SAME_COST = 2; - - // Recommendation to set Target CPA to maintain the same conversions. - SAME_CONVERSIONS = 3; - - // Recommendation to set Target CPA to maintain the same CPA. - SAME_CPA = 4; - - // Recommendation to set Target CPA to a value that is as close as possible - // to, yet lower than, the actual CPA (computed for past 28 days). - CLOSEST_CPA = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/target_impression_share_location.proto b/google/ads/googleads/v7/enums/target_impression_share_location.proto deleted file mode 100644 index ae54a82e4..000000000 --- a/google/ads/googleads/v7/enums/target_impression_share_location.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TargetImpressionShareLocationProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing target impression share goal. - -// Container for enum describing where on the first search results page the -// automated bidding system should target impressions for the -// TargetImpressionShare bidding strategy. -message TargetImpressionShareLocationEnum { - // Enum describing possible goals. - enum TargetImpressionShareLocation { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Any location on the web page. - ANYWHERE_ON_PAGE = 2; - - // Top box of ads. - TOP_OF_PAGE = 3; - - // Top slot in the top box of ads. - ABSOLUTE_TOP_OF_PAGE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/targeting_dimension.proto b/google/ads/googleads/v7/enums/targeting_dimension.proto deleted file mode 100644 index b403b5da6..000000000 --- a/google/ads/googleads/v7/enums/targeting_dimension.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TargetingDimensionProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing criteria types. - -// The dimensions that can be targeted. -message TargetingDimensionEnum { - // Enum describing possible targeting dimensions. - enum TargetingDimension { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Keyword criteria, e.g. 'mars cruise'. KEYWORD may be used as a custom bid - // dimension. Keywords are always a targeting dimension, so may not be set - // as a target "ALL" dimension with TargetRestriction. - KEYWORD = 2; - - // Audience criteria, which include user list, user interest, custom - // affinity, and custom in market. - AUDIENCE = 3; - - // Topic criteria for targeting categories of content, e.g. - // 'category::Animals>Pets' Used for Display and Video targeting. - TOPIC = 4; - - // Criteria for targeting gender. - GENDER = 5; - - // Criteria for targeting age ranges. - AGE_RANGE = 6; - - // Placement criteria, which include websites like 'www.flowers4sale.com', - // as well as mobile applications, mobile app categories, YouTube videos, - // and YouTube channels. - PLACEMENT = 7; - - // Criteria for parental status targeting. - PARENTAL_STATUS = 8; - - // Criteria for income range targeting. - INCOME_RANGE = 9; - } - - -} diff --git a/google/ads/googleads/v7/enums/time_type.proto b/google/ads/googleads/v7/enums/time_type.proto deleted file mode 100644 index 3ea3d5b56..000000000 --- a/google/ads/googleads/v7/enums/time_type.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TimeTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing TimeType types. - -// Message describing time types. -message TimeTypeEnum { - // The possible time types used by certain resources as an alternative to - // absolute timestamps. - enum TimeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // As soon as possible. - NOW = 2; - - // An infinite point in the future. - FOREVER = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/tracking_code_page_format.proto b/google/ads/googleads/v7/enums/tracking_code_page_format.proto deleted file mode 100644 index 0d11022d9..000000000 --- a/google/ads/googleads/v7/enums/tracking_code_page_format.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TrackingCodePageFormatProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing the format of the web page where the tracking -// tag and snippet will be installed. -message TrackingCodePageFormatEnum { - // The format of the web page where the tracking tag and snippet will be - // installed. - enum TrackingCodePageFormat { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Standard HTML page format. - HTML = 2; - - // Google AMP page format. - AMP = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/tracking_code_type.proto b/google/ads/googleads/v7/enums/tracking_code_type.proto deleted file mode 100644 index d6f7e7473..000000000 --- a/google/ads/googleads/v7/enums/tracking_code_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TrackingCodeTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Container for enum describing the type of the generated tag snippets for -// tracking conversions. -message TrackingCodeTypeEnum { - // The type of the generated tag snippets for tracking conversions. - enum TrackingCodeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The snippet that is fired as a result of a website page loading. - WEBPAGE = 2; - - // The snippet contains a JavaScript function which fires the tag. This - // function is typically called from an onClick handler added to a link or - // button element on the page. - WEBPAGE_ONCLICK = 3; - - // For embedding on a mobile webpage. The snippet contains a JavaScript - // function which fires the tag. - CLICK_TO_CALL = 4; - - // The snippet that is used to replace the phone number on your website with - // a Google forwarding number for call tracking purposes. - WEBSITE_CALL = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/travel_placeholder_field.proto b/google/ads/googleads/v7/enums/travel_placeholder_field.proto deleted file mode 100644 index 340999d1e..000000000 --- a/google/ads/googleads/v7/enums/travel_placeholder_field.proto +++ /dev/null @@ -1,128 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TravelPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing Travel placeholder fields. - -// Values for Travel placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message TravelPlaceholderFieldEnum { - // Possible values for Travel placeholder fields. - enum TravelPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Destination id. Example: PAR, LON. - // For feed items that only have destination id, destination id must be a - // unique key. For feed items that have both destination id and origin id, - // then the combination must be a unique key. - DESTINATION_ID = 2; - - // Data Type: STRING. Origin id. Example: PAR, LON. - // Combination of DESTINATION_ID and ORIGIN_ID must be - // unique per offer. - ORIGIN_ID = 3; - - // Data Type: STRING. Required. Main headline with name to be shown in - // dynamic ad. - TITLE = 4; - - // Data Type: STRING. The destination name. Shorter names are recommended. - DESTINATION_NAME = 5; - - // Data Type: STRING. Origin name. Shorter names are recommended. - ORIGIN_NAME = 6; - - // Data Type: STRING. Price to be shown in the ad. Highly recommended for - // dynamic ads. - // Example: "100.00 USD" - PRICE = 7; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 8; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - SALE_PRICE = 9; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 10; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 11; - - // Data Type: STRING. Category of travel offer used to group like items - // together for recommendation engine. - CATEGORY = 12; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 13; - - // Data Type: STRING. Address of travel offer, including postal code. - DESTINATION_ADDRESS = 14; - - // Data Type: URL_LIST. Required. Final URLs to be used in ad, when using - // Upgraded URLs; the more specific the better (e.g. the individual URL of a - // specific travel offer and its location). - FINAL_URL = 15; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 16; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 17; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 18; - - // Data Type: STRING_LIST. List of recommended destination IDs to show - // together with this item. - SIMILAR_DESTINATION_IDS = 19; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 20; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 21; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_identifier_source.proto b/google/ads/googleads/v7/enums/user_identifier_source.proto deleted file mode 100644 index 5e7528e3a..000000000 --- a/google/ads/googleads/v7/enums/user_identifier_source.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserIdentifierSourceProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing user identifier source - -// Container for enum describing the source of the user identifier for offline -// Store Sales third party uploads. -message UserIdentifierSourceEnum { - // The type of user identifier source for offline Store Sales third party - // uploads. - enum UserIdentifierSource { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version - UNKNOWN = 1; - - // Indicates that the user identifier was provided by the first party - // (advertiser). - FIRST_PARTY = 2; - - // Indicates that the user identifier was provided by the third party - // (partner). - THIRD_PARTY = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_interest_taxonomy_type.proto b/google/ads/googleads/v7/enums/user_interest_taxonomy_type.proto deleted file mode 100644 index d433b9d28..000000000 --- a/google/ads/googleads/v7/enums/user_interest_taxonomy_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserInterestTaxonomyTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing the UserInterest taxonomy type - -// Message describing a UserInterestTaxonomyType. -message UserInterestTaxonomyTypeEnum { - // Enum containing the possible UserInterestTaxonomyTypes. - enum UserInterestTaxonomyType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The affinity for this user interest. - AFFINITY = 2; - - // The market for this user interest. - IN_MARKET = 3; - - // Users known to have installed applications in the specified categories. - MOBILE_APP_INSTALL_USER = 4; - - // The geographical location of the interest-based vertical. - VERTICAL_GEO = 5; - - // User interest criteria for new smart phone users. - NEW_SMART_PHONE_USER = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_access_status.proto b/google/ads/googleads/v7/enums/user_list_access_status.proto deleted file mode 100644 index acc3ceeff..000000000 --- a/google/ads/googleads/v7/enums/user_list_access_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListAccessStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing user list access status. - -// Indicates if this client still has access to the list. -message UserListAccessStatusEnum { - // Enum containing possible user list access statuses. - enum UserListAccessStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The access is enabled. - ENABLED = 2; - - // The access is disabled. - DISABLED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_closing_reason.proto b/google/ads/googleads/v7/enums/user_list_closing_reason.proto deleted file mode 100644 index 43f29911f..000000000 --- a/google/ads/googleads/v7/enums/user_list_closing_reason.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListClosingReasonProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing user list closing reason. - -// Indicates the reason why the userlist was closed. -// This enum is only used when a list is auto-closed by the system. -message UserListClosingReasonEnum { - // Enum describing possible user list closing reasons. - enum UserListClosingReason { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The userlist was closed because of not being used for over one year. - UNUSED = 2; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_combined_rule_operator.proto b/google/ads/googleads/v7/enums/user_list_combined_rule_operator.proto deleted file mode 100644 index 1bb611bc4..000000000 --- a/google/ads/googleads/v7/enums/user_list_combined_rule_operator.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListCombinedRuleOperatorProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Logical operator connecting two rules. -message UserListCombinedRuleOperatorEnum { - // Enum describing possible user list combined rule operators. - enum UserListCombinedRuleOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // A AND B. - AND = 2; - - // A AND NOT B. - AND_NOT = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_crm_data_source_type.proto b/google/ads/googleads/v7/enums/user_list_crm_data_source_type.proto deleted file mode 100644 index 3593691ef..000000000 --- a/google/ads/googleads/v7/enums/user_list_crm_data_source_type.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListCrmDataSourceTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Indicates source of Crm upload data. -message UserListCrmDataSourceTypeEnum { - // Enum describing possible user list crm data source type. - enum UserListCrmDataSourceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The uploaded data is first-party data. - FIRST_PARTY = 2; - - // The uploaded data is from a third-party credit bureau. - THIRD_PARTY_CREDIT_BUREAU = 3; - - // The uploaded data is from a third-party voter file. - THIRD_PARTY_VOTER_FILE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_date_rule_item_operator.proto b/google/ads/googleads/v7/enums/user_list_date_rule_item_operator.proto deleted file mode 100644 index e88bd4347..000000000 --- a/google/ads/googleads/v7/enums/user_list_date_rule_item_operator.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListDateRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Supported rule operator for date type. -message UserListDateRuleItemOperatorEnum { - // Enum describing possible user list date rule item operators. - enum UserListDateRuleItemOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Equals. - EQUALS = 2; - - // Not Equals. - NOT_EQUALS = 3; - - // Before. - BEFORE = 4; - - // After. - AFTER = 5; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_logical_rule_operator.proto b/google/ads/googleads/v7/enums/user_list_logical_rule_operator.proto deleted file mode 100644 index 32b0f63b9..000000000 --- a/google/ads/googleads/v7/enums/user_list_logical_rule_operator.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListLogicalRuleOperatorProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// The logical operator of the rule. -message UserListLogicalRuleOperatorEnum { - // Enum describing possible user list logical rule operators. - enum UserListLogicalRuleOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // And - all of the operands. - ALL = 2; - - // Or - at least one of the operands. - ANY = 3; - - // Not - none of the operands. - NONE = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_membership_status.proto b/google/ads/googleads/v7/enums/user_list_membership_status.proto deleted file mode 100644 index fe6fccd63..000000000 --- a/google/ads/googleads/v7/enums/user_list_membership_status.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListMembershipStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing user list membership status. - -// 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 used for -// targeting. -message UserListMembershipStatusEnum { - // Enum containing possible user list membership statuses. - enum UserListMembershipStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Open status - List is accruing members and can be targeted to. - OPEN = 2; - - // Closed status - No new members being added. Cannot be used for targeting. - CLOSED = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_number_rule_item_operator.proto b/google/ads/googleads/v7/enums/user_list_number_rule_item_operator.proto deleted file mode 100644 index 2ce673c89..000000000 --- a/google/ads/googleads/v7/enums/user_list_number_rule_item_operator.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListNumberRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Supported rule operator for number type. -message UserListNumberRuleItemOperatorEnum { - // Enum describing possible user list number rule item operators. - enum UserListNumberRuleItemOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Greater than. - GREATER_THAN = 2; - - // Greater than or equal. - GREATER_THAN_OR_EQUAL = 3; - - // Equals. - EQUALS = 4; - - // Not equals. - NOT_EQUALS = 5; - - // Less than. - LESS_THAN = 6; - - // Less than or equal. - LESS_THAN_OR_EQUAL = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_prepopulation_status.proto b/google/ads/googleads/v7/enums/user_list_prepopulation_status.proto deleted file mode 100644 index 17f3d3052..000000000 --- a/google/ads/googleads/v7/enums/user_list_prepopulation_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListPrepopulationStatusProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Indicates status of prepopulation based on the rule. -message UserListPrepopulationStatusEnum { - // Enum describing possible user list prepopulation status. - enum UserListPrepopulationStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Prepopoulation is being requested. - REQUESTED = 2; - - // Prepopulation is finished. - FINISHED = 3; - - // Prepopulation failed. - FAILED = 4; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_rule_type.proto b/google/ads/googleads/v7/enums/user_list_rule_type.proto deleted file mode 100644 index 487b1e008..000000000 --- a/google/ads/googleads/v7/enums/user_list_rule_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListRuleTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Rule based user list rule type. -message UserListRuleTypeEnum { - // Enum describing possible user list rule types. - enum UserListRuleType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conjunctive normal form. - AND_OF_ORS = 2; - - // Disjunctive normal form. - OR_OF_ANDS = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_size_range.proto b/google/ads/googleads/v7/enums/user_list_size_range.proto deleted file mode 100644 index e749f82d7..000000000 --- a/google/ads/googleads/v7/enums/user_list_size_range.proto +++ /dev/null @@ -1,92 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListSizeRangeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing user list size range. - -// Size range in terms of number of users of a UserList. -message UserListSizeRangeEnum { - // Enum containing possible user list size ranges. - enum UserListSizeRange { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // User list has less than 500 users. - LESS_THAN_FIVE_HUNDRED = 2; - - // User list has number of users in range of 500 to 1000. - LESS_THAN_ONE_THOUSAND = 3; - - // User list has number of users in range of 1000 to 10000. - ONE_THOUSAND_TO_TEN_THOUSAND = 4; - - // User list has number of users in range of 10000 to 50000. - TEN_THOUSAND_TO_FIFTY_THOUSAND = 5; - - // User list has number of users in range of 50000 to 100000. - FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND = 6; - - // User list has number of users in range of 100000 to 300000. - ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND = 7; - - // User list has number of users in range of 300000 to 500000. - THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND = 8; - - // User list has number of users in range of 500000 to 1 million. - FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION = 9; - - // User list has number of users in range of 1 to 2 millions. - ONE_MILLION_TO_TWO_MILLION = 10; - - // User list has number of users in range of 2 to 3 millions. - TWO_MILLION_TO_THREE_MILLION = 11; - - // User list has number of users in range of 3 to 5 millions. - THREE_MILLION_TO_FIVE_MILLION = 12; - - // User list has number of users in range of 5 to 10 millions. - FIVE_MILLION_TO_TEN_MILLION = 13; - - // User list has number of users in range of 10 to 20 millions. - TEN_MILLION_TO_TWENTY_MILLION = 14; - - // User list has number of users in range of 20 to 30 millions. - TWENTY_MILLION_TO_THIRTY_MILLION = 15; - - // User list has number of users in range of 30 to 50 millions. - THIRTY_MILLION_TO_FIFTY_MILLION = 16; - - // User list has over 50 million users. - OVER_FIFTY_MILLION = 17; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_string_rule_item_operator.proto b/google/ads/googleads/v7/enums/user_list_string_rule_item_operator.proto deleted file mode 100644 index aafd215a8..000000000 --- a/google/ads/googleads/v7/enums/user_list_string_rule_item_operator.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListStringRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Supported rule operator for string type. -message UserListStringRuleItemOperatorEnum { - // Enum describing possible user list string rule item operators. - enum UserListStringRuleItemOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Contains. - CONTAINS = 2; - - // Equals. - EQUALS = 3; - - // Starts with. - STARTS_WITH = 4; - - // Ends with. - ENDS_WITH = 5; - - // Not equals. - NOT_EQUALS = 6; - - // Not contains. - NOT_CONTAINS = 7; - - // Not starts with. - NOT_STARTS_WITH = 8; - - // Not ends with. - NOT_ENDS_WITH = 9; - } - - -} diff --git a/google/ads/googleads/v7/enums/user_list_type.proto b/google/ads/googleads/v7/enums/user_list_type.proto deleted file mode 100644 index 59f0f6c14..000000000 --- a/google/ads/googleads/v7/enums/user_list_type.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListTypeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing user list type. - -// The user list types. -message UserListTypeEnum { - // Enum containing possible user list types. - enum UserListType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // UserList represented as a collection of conversion types. - REMARKETING = 2; - - // UserList represented as a combination of other user lists/interests. - LOGICAL = 3; - - // UserList created in the Google Ad Manager platform. - EXTERNAL_REMARKETING = 4; - - // UserList associated with a rule. - RULE_BASED = 5; - - // UserList with users similar to users of another UserList. - SIMILAR = 6; - - // UserList of first-party CRM data provided by advertiser in the form of - // emails or other formats. - CRM_BASED = 7; - } - - -} diff --git a/google/ads/googleads/v7/enums/vanity_pharma_display_url_mode.proto b/google/ads/googleads/v7/enums/vanity_pharma_display_url_mode.proto deleted file mode 100644 index 0b0648cee..000000000 --- a/google/ads/googleads/v7/enums/vanity_pharma_display_url_mode.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "VanityPharmaDisplayUrlModeProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing vanity pharma display url modes. - -// The display mode for vanity pharma URLs. -message VanityPharmaDisplayUrlModeEnum { - // Enum describing possible display modes for vanity pharma URLs. - enum VanityPharmaDisplayUrlMode { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Replace vanity pharma URL with manufacturer website url. - MANUFACTURER_WEBSITE_URL = 2; - - // Replace vanity pharma URL with description of the website. - WEBSITE_DESCRIPTION = 3; - } - - -} diff --git a/google/ads/googleads/v7/enums/vanity_pharma_text.proto b/google/ads/googleads/v7/enums/vanity_pharma_text.proto deleted file mode 100644 index 40297f83a..000000000 --- a/google/ads/googleads/v7/enums/vanity_pharma_text.proto +++ /dev/null @@ -1,87 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "VanityPharmaTextProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing vanity pharma texts. - -// 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. -message VanityPharmaTextEnum { - // Enum describing possible text. - enum VanityPharmaText { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Prescription treatment website with website content in English. - PRESCRIPTION_TREATMENT_WEBSITE_EN = 2; - - // Prescription treatment website with website content in Spanish - // (Sitio de tratamientos con receta). - PRESCRIPTION_TREATMENT_WEBSITE_ES = 3; - - // Prescription device website with website content in English. - PRESCRIPTION_DEVICE_WEBSITE_EN = 4; - - // Prescription device website with website content in Spanish (Sitio de - // dispositivos con receta). - PRESCRIPTION_DEVICE_WEBSITE_ES = 5; - - // Medical device website with website content in English. - MEDICAL_DEVICE_WEBSITE_EN = 6; - - // Medical device website with website content in Spanish (Sitio de - // dispositivos médicos). - MEDICAL_DEVICE_WEBSITE_ES = 7; - - // Preventative treatment website with website content in English. - PREVENTATIVE_TREATMENT_WEBSITE_EN = 8; - - // Preventative treatment website with website content in Spanish (Sitio de - // tratamientos preventivos). - PREVENTATIVE_TREATMENT_WEBSITE_ES = 9; - - // Prescription contraception website with website content in English. - PRESCRIPTION_CONTRACEPTION_WEBSITE_EN = 10; - - // Prescription contraception website with website content in Spanish (Sitio - // de anticonceptivos con receta). - PRESCRIPTION_CONTRACEPTION_WEBSITE_ES = 11; - - // Prescription vaccine website with website content in English. - PRESCRIPTION_VACCINE_WEBSITE_EN = 12; - - // Prescription vaccine website with website content in Spanish (Sitio de - // vacunas con receta). - PRESCRIPTION_VACCINE_WEBSITE_ES = 13; - } - - -} diff --git a/google/ads/googleads/v7/enums/webpage_condition_operand.proto b/google/ads/googleads/v7/enums/webpage_condition_operand.proto deleted file mode 100644 index aa3b5427f..000000000 --- a/google/ads/googleads/v7/enums/webpage_condition_operand.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "WebpageConditionOperandProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing webpage condition operand. - -// Container for enum describing webpage condition operand in webpage criterion. -message WebpageConditionOperandEnum { - // The webpage condition operand in webpage criterion. - enum WebpageConditionOperand { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Operand denoting a webpage URL targeting condition. - URL = 2; - - // Operand denoting a webpage category targeting condition. - CATEGORY = 3; - - // Operand denoting a webpage title targeting condition. - PAGE_TITLE = 4; - - // Operand denoting a webpage content targeting condition. - PAGE_CONTENT = 5; - - // Operand denoting a webpage custom label targeting condition. - CUSTOM_LABEL = 6; - } - - -} diff --git a/google/ads/googleads/v7/enums/webpage_condition_operator.proto b/google/ads/googleads/v7/enums/webpage_condition_operator.proto deleted file mode 100644 index 96189c93c..000000000 --- a/google/ads/googleads/v7/enums/webpage_condition_operator.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "WebpageConditionOperatorProto"; -option java_package = "com.google.ads.googleads.v7.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V7::Enums"; - -// Proto file describing webpage condition operator. - -// Container for enum describing webpage condition operator in webpage -// criterion. -message WebpageConditionOperatorEnum { - // The webpage condition operator in webpage criterion. - enum WebpageConditionOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The argument web condition is equal to the compared web condition. - EQUALS = 2; - - // The argument web condition is part of the compared web condition. - CONTAINS = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/BUILD.bazel b/google/ads/googleads/v7/errors/BUILD.bazel deleted file mode 100644 index e33466ec5..000000000 --- a/google/ads/googleads/v7/errors/BUILD.bazel +++ /dev/null @@ -1,94 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports -# subpackages. -proto_library( - name = "errors_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/ads/googleads/v7/common:common_proto", - "//google/ads/googleads/v7/enums:enums_proto", - "//google/api:annotations_proto", - "@com_google_protobuf//:duration_proto", - "@com_google_protobuf//:wrappers_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", -) - -java_proto_library( - name = "errors_java_proto", - deps = [":errors_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_proto_library", -) - -csharp_proto_library( - name = "errors_csharp_proto", - deps = [":errors_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_proto_library", -) - -ruby_proto_library( - name = "errors_ruby_proto", - deps = [":errors_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_proto_library", -) - -py_proto_library( - name = "errors_py_proto", - deps = [":errors_proto"], -) diff --git a/google/ads/googleads/v7/errors/access_invitation_error.proto b/google/ads/googleads/v7/errors/access_invitation_error.proto deleted file mode 100644 index c88a02964..000000000 --- a/google/ads/googleads/v7/errors/access_invitation_error.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AccessInvitationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing AccessInvitation errors. - -// Container for enum describing possible AccessInvitation errors. -message AccessInvitationErrorEnum { - // Enum describing possible AccessInvitation errors. - enum AccessInvitationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The email address is invalid for sending an invitation. - INVALID_EMAIL_ADDRESS = 2; - - // Email address already has access to this customer. - EMAIL_ADDRESS_ALREADY_HAS_ACCESS = 3; - - // Invalid invitation status for the operation. - INVALID_INVITATION_STATUS = 4; - - // Email address cannot be like abc+foo@google.com. - GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED = 5; - - // Invalid invitation id. - INVALID_INVITATION_ID = 6; - - // Email address already has a pending invitation. - EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION = 7; - - // Pending invitation limit exceeded for the customer. - PENDING_INVITATIONS_LIMIT_EXCEEDED = 8; - - // Email address doesn't conform to the email domain policy. Please see - // https://support.google.com/google-ads/answer/2375456 - EMAIL_DOMAIN_POLICY_VIOLATED = 9; - } - - -} diff --git a/google/ads/googleads/v7/errors/account_budget_proposal_error.proto b/google/ads/googleads/v7/errors/account_budget_proposal_error.proto deleted file mode 100644 index a96bfb1df..000000000 --- a/google/ads/googleads/v7/errors/account_budget_proposal_error.proto +++ /dev/null @@ -1,122 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing account budget proposal errors. - -// Container for enum describing possible account budget proposal errors. -message AccountBudgetProposalErrorEnum { - // Enum describing possible account budget proposal errors. - enum AccountBudgetProposalError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The field mask must be empty for create/end/remove proposals. - FIELD_MASK_NOT_ALLOWED = 2; - - // The field cannot be set because of the proposal type. - IMMUTABLE_FIELD = 3; - - // The field is required because of the proposal type. - REQUIRED_FIELD_MISSING = 4; - - // Proposals that have been approved cannot be cancelled. - CANNOT_CANCEL_APPROVED_PROPOSAL = 5; - - // Budgets that haven't been approved cannot be removed. - CANNOT_REMOVE_UNAPPROVED_BUDGET = 6; - - // Budgets that are currently running cannot be removed. - CANNOT_REMOVE_RUNNING_BUDGET = 7; - - // Budgets that haven't been approved cannot be truncated. - CANNOT_END_UNAPPROVED_BUDGET = 8; - - // Only budgets that are currently running can be truncated. - CANNOT_END_INACTIVE_BUDGET = 9; - - // All budgets must have names. - BUDGET_NAME_REQUIRED = 10; - - // Expired budgets cannot be edited after a sufficient amount of time has - // passed. - CANNOT_UPDATE_OLD_BUDGET = 11; - - // It is not permissible a propose a new budget that ends in the past. - CANNOT_END_IN_PAST = 12; - - // An expired budget cannot be extended to overlap with the running budget. - CANNOT_EXTEND_END_TIME = 13; - - // A purchase order number is required. - PURCHASE_ORDER_NUMBER_REQUIRED = 14; - - // Budgets that have a pending update cannot be updated. - PENDING_UPDATE_PROPOSAL_EXISTS = 15; - - // Cannot propose more than one budget when the corresponding billing setup - // hasn't been approved. - MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP = 16; - - // Cannot update the start time of a budget that has already started. - CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET = 17; - - // Cannot update the spending limit of a budget with an amount lower than - // what has already been spent. - SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED = 18; - - // Cannot propose a budget update without actually changing any fields. - UPDATE_IS_NO_OP = 19; - - // The end time must come after the start time. - END_TIME_MUST_FOLLOW_START_TIME = 20; - - // The budget's date range must fall within the date range of its billing - // setup. - BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP = 21; - - // The user is not authorized to mutate budgets for the given billing setup. - NOT_AUTHORIZED = 22; - - // Mutates are not allowed for the given billing setup. - INVALID_BILLING_SETUP = 23; - - // Budget creation failed as it overlaps with an pending budget proposal - // or an approved budget. - OVERLAPS_EXISTING_BUDGET = 24; - - // The control setting in user's payments profile doesn't allow budget - // creation through API. Log in to Google Ads to create budget. - CANNOT_CREATE_BUDGET_THROUGH_API = 25; - } - - -} diff --git a/google/ads/googleads/v7/errors/account_link_error.proto b/google/ads/googleads/v7/errors/account_link_error.proto deleted file mode 100644 index d5a3e9df9..000000000 --- a/google/ads/googleads/v7/errors/account_link_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AccountLinkErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing AccountLink errors. - -// Container for enum describing possible account link errors. -message AccountLinkErrorEnum { - // Enum describing possible account link errors. - enum AccountLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The new link status is invalid. - INVALID_STATUS = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_customizer_error.proto b/google/ads/googleads/v7/errors/ad_customizer_error.proto deleted file mode 100644 index 2da73207a..000000000 --- a/google/ads/googleads/v7/errors/ad_customizer_error.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad customizer errors. - -// Container for enum describing possible ad customizer errors. -message AdCustomizerErrorEnum { - // Enum describing possible ad customizer errors. - enum AdCustomizerError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Invalid date argument in countdown function. - COUNTDOWN_INVALID_DATE_FORMAT = 2; - - // Countdown end date is in the past. - COUNTDOWN_DATE_IN_PAST = 3; - - // Invalid locale string in countdown function. - COUNTDOWN_INVALID_LOCALE = 4; - - // Days-before argument to countdown function is not positive. - COUNTDOWN_INVALID_START_DAYS_BEFORE = 5; - - // A user list referenced in an IF function does not exist. - UNKNOWN_USER_LIST = 6; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_error.proto b/google/ads/googleads/v7/errors/ad_error.proto deleted file mode 100644 index ea01138ac..000000000 --- a/google/ads/googleads/v7/errors/ad_error.proto +++ /dev/null @@ -1,508 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad errors. - -// Container for enum describing possible ad errors. -message AdErrorEnum { - // Enum describing possible ad errors. - enum AdError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Ad customizers are not supported for ad type. - AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE = 2; - - // Estimating character sizes the string is too long. - APPROXIMATELY_TOO_LONG = 3; - - // Estimating character sizes the string is too short. - APPROXIMATELY_TOO_SHORT = 4; - - // There is a problem with the snippet. - BAD_SNIPPET = 5; - - // Cannot modify an ad. - CANNOT_MODIFY_AD = 6; - - // business name and url cannot be set at the same time - CANNOT_SET_BUSINESS_NAME_IF_URL_SET = 7; - - // The specified field is incompatible with this ad's type or settings. - CANNOT_SET_FIELD = 8; - - // Cannot set field when originAdId is set. - CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET = 9; - - // Cannot set field when an existing ad id is set for sharing. - CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING = 10; - - // Cannot set allowFlexibleColor false if no color is provided by user. - CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE = 11; - - // When user select native, no color control is allowed because we will - // always respect publisher color for native format serving. - CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING = 12; - - // Cannot specify a url for the ad type - CANNOT_SET_URL = 13; - - // Cannot specify a tracking or mobile url without also setting final urls - CANNOT_SET_WITHOUT_FINAL_URLS = 14; - - // Cannot specify a legacy url and a final url simultaneously - CANNOT_SET_WITH_FINAL_URLS = 15; - - // Cannot specify a urls in UrlData and in template fields simultaneously. - CANNOT_SET_WITH_URL_DATA = 17; - - // This operator cannot be used with a subclass of Ad. - CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR = 18; - - // Customer is not approved for mobile ads. - CUSTOMER_NOT_APPROVED_MOBILEADS = 19; - - // Customer is not approved for 3PAS richmedia ads. - CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS = 20; - - // Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads. - CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS = 21; - - // Not an eligible customer - CUSTOMER_NOT_ELIGIBLE = 22; - - // Customer is not eligible for updating beacon url - CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL = 23; - - // There already exists an ad with the same dimensions in the union. - DIMENSION_ALREADY_IN_UNION = 24; - - // Ad's dimension must be set before setting union dimension. - DIMENSION_MUST_BE_SET = 25; - - // Ad's dimension must be included in the union dimensions. - DIMENSION_NOT_IN_UNION = 26; - - // Display Url cannot be specified (applies to Ad Exchange Ads) - DISPLAY_URL_CANNOT_BE_SPECIFIED = 27; - - // Telephone number contains invalid characters or invalid format. Please - // re-enter your number using digits (0-9), dashes (-), and parentheses - // only. - DOMESTIC_PHONE_NUMBER_FORMAT = 28; - - // Emergency telephone numbers are not allowed. Please enter a valid - // domestic phone number to connect customers to your business. - EMERGENCY_PHONE_NUMBER = 29; - - // A required field was not specified or is an empty string. - EMPTY_FIELD = 30; - - // A feed attribute referenced in an ad customizer tag is not in the ad - // customizer mapping for the feed. - FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID = 31; - - // The ad customizer field mapping for the feed attribute does not match the - // expected field type. - FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH = 32; - - // The use of ad customizer tags in the ad text is disallowed. Details in - // trigger. - ILLEGAL_AD_CUSTOMIZER_TAG_USE = 33; - - // Tags of the form {PH_x}, where x is a number, are disallowed in ad text. - ILLEGAL_TAG_USE = 34; - - // The dimensions of the ad are specified or derived in multiple ways and - // are not consistent. - INCONSISTENT_DIMENSIONS = 35; - - // The status cannot differ among template ads of the same union. - INCONSISTENT_STATUS_IN_TEMPLATE_UNION = 36; - - // The length of the string is not valid. - INCORRECT_LENGTH = 37; - - // The ad is ineligible for upgrade. - INELIGIBLE_FOR_UPGRADE = 38; - - // User cannot create mobile ad for countries targeted in specified - // campaign. - INVALID_AD_ADDRESS_CAMPAIGN_TARGET = 39; - - // Invalid Ad type. A specific type of Ad is required. - INVALID_AD_TYPE = 40; - - // Headline, description or phone cannot be present when creating mobile - // image ad. - INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE = 41; - - // Image cannot be present when creating mobile text ad. - INVALID_ATTRIBUTES_FOR_MOBILE_TEXT = 42; - - // Invalid call to action text. - INVALID_CALL_TO_ACTION_TEXT = 43; - - // Invalid character in URL. - INVALID_CHARACTER_FOR_URL = 44; - - // Creative's country code is not valid. - INVALID_COUNTRY_CODE = 45; - - // Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.) - INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 47; - - // An input error whose real reason was not properly mapped (should not - // happen). - INVALID_INPUT = 48; - - // An invalid markup language was entered. - INVALID_MARKUP_LANGUAGE = 49; - - // An invalid mobile carrier was entered. - INVALID_MOBILE_CARRIER = 50; - - // Specified mobile carriers target a country not targeted by the campaign. - INVALID_MOBILE_CARRIER_TARGET = 51; - - // Wrong number of elements for given element type - INVALID_NUMBER_OF_ELEMENTS = 52; - - // The format of the telephone number is incorrect. Please re-enter the - // number using the correct format. - INVALID_PHONE_NUMBER_FORMAT = 53; - - // The certified vendor format id is incorrect. - INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID = 54; - - // The template ad data contains validation errors. - INVALID_TEMPLATE_DATA = 55; - - // The template field doesn't have have the correct type. - INVALID_TEMPLATE_ELEMENT_FIELD_TYPE = 56; - - // Invalid template id. - INVALID_TEMPLATE_ID = 57; - - // After substituting replacement strings, the line is too wide. - LINE_TOO_WIDE = 58; - - // The feed referenced must have ad customizer mapping to be used in a - // customizer tag. - MISSING_AD_CUSTOMIZER_MAPPING = 59; - - // Missing address component in template element address field. - MISSING_ADDRESS_COMPONENT = 60; - - // An ad name must be entered. - MISSING_ADVERTISEMENT_NAME = 61; - - // Business name must be entered. - MISSING_BUSINESS_NAME = 62; - - // Description (line 2) must be entered. - MISSING_DESCRIPTION1 = 63; - - // Description (line 3) must be entered. - MISSING_DESCRIPTION2 = 64; - - // The destination url must contain at least one tag (e.g. {lpurl}) - MISSING_DESTINATION_URL_TAG = 65; - - // The tracking url template of ExpandedDynamicSearchAd must contain at - // least one tag. (e.g. {lpurl}) - MISSING_LANDING_PAGE_URL_TAG = 66; - - // A valid dimension must be specified for this ad. - MISSING_DIMENSION = 67; - - // A display URL must be entered. - MISSING_DISPLAY_URL = 68; - - // Headline must be entered. - MISSING_HEADLINE = 69; - - // A height must be entered. - MISSING_HEIGHT = 70; - - // An image must be entered. - MISSING_IMAGE = 71; - - // Marketing image or product videos are required. - MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS = 72; - - // The markup language in which your site is written must be entered. - MISSING_MARKUP_LANGUAGES = 73; - - // A mobile carrier must be entered. - MISSING_MOBILE_CARRIER = 74; - - // Phone number must be entered. - MISSING_PHONE = 75; - - // Missing required template fields - MISSING_REQUIRED_TEMPLATE_FIELDS = 76; - - // Missing a required field value - MISSING_TEMPLATE_FIELD_VALUE = 77; - - // The ad must have text. - MISSING_TEXT = 78; - - // A visible URL must be entered. - MISSING_VISIBLE_URL = 79; - - // A width must be entered. - MISSING_WIDTH = 80; - - // Only 1 feed can be used as the source of ad customizer substitutions in a - // single ad. - MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED = 81; - - // TempAdUnionId must be use when adding template ads. - MUST_USE_TEMP_AD_UNION_ID_ON_ADD = 82; - - // The string has too many characters. - TOO_LONG = 83; - - // The string has too few characters. - TOO_SHORT = 84; - - // Ad union dimensions cannot change for saved ads. - UNION_DIMENSIONS_CANNOT_CHANGE = 85; - - // Address component is not {country, lat, lng}. - UNKNOWN_ADDRESS_COMPONENT = 86; - - // Unknown unique field name - UNKNOWN_FIELD_NAME = 87; - - // Unknown unique name (template element type specifier) - UNKNOWN_UNIQUE_NAME = 88; - - // Unsupported ad dimension - UNSUPPORTED_DIMENSIONS = 89; - - // URL starts with an invalid scheme. - URL_INVALID_SCHEME = 90; - - // URL ends with an invalid top-level domain name. - URL_INVALID_TOP_LEVEL_DOMAIN = 91; - - // URL contains illegal characters. - URL_MALFORMED = 92; - - // URL must contain a host name. - URL_NO_HOST = 93; - - // URL not equivalent during upgrade. - URL_NOT_EQUIVALENT = 94; - - // URL host name too long to be stored as visible URL (applies to Ad - // Exchange ads) - URL_HOST_NAME_TOO_LONG = 95; - - // URL must start with a scheme. - URL_NO_SCHEME = 96; - - // URL should end in a valid domain extension, such as .com or .net. - URL_NO_TOP_LEVEL_DOMAIN = 97; - - // URL must not end with a path. - URL_PATH_NOT_ALLOWED = 98; - - // URL must not specify a port. - URL_PORT_NOT_ALLOWED = 99; - - // URL must not contain a query. - URL_QUERY_NOT_ALLOWED = 100; - - // A url scheme is not allowed in front of tag in tracking url template - // (e.g. http://{lpurl}) - URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 102; - - // The user does not have permissions to create a template ad for the given - // template. - USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE = 103; - - // Expandable setting is inconsistent/wrong. For example, an AdX ad is - // invalid if it has a expandable vendor format but no expanding directions - // specified, or expanding directions is specified, but the vendor format is - // not expandable. - INCONSISTENT_EXPANDABLE_SETTINGS = 104; - - // Format is invalid - INVALID_FORMAT = 105; - - // The text of this field did not match a pattern of allowed values. - INVALID_FIELD_TEXT = 106; - - // Template element is mising - ELEMENT_NOT_PRESENT = 107; - - // Error occurred during image processing - IMAGE_ERROR = 108; - - // The value is not within the valid range - VALUE_NOT_IN_RANGE = 109; - - // Template element field is not present - FIELD_NOT_PRESENT = 110; - - // Address is incomplete - ADDRESS_NOT_COMPLETE = 111; - - // Invalid address - ADDRESS_INVALID = 112; - - // Error retrieving specified video - VIDEO_RETRIEVAL_ERROR = 113; - - // Error processing audio - AUDIO_ERROR = 114; - - // Display URL is incorrect for YouTube PYV ads - INVALID_YOUTUBE_DISPLAY_URL = 115; - - // Too many product Images in GmailAd - TOO_MANY_PRODUCT_IMAGES = 116; - - // Too many product Videos in GmailAd - TOO_MANY_PRODUCT_VIDEOS = 117; - - // The device preference is not compatible with the ad type - INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE = 118; - - // Call tracking is not supported for specified country. - CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 119; - - // Carrier specific short number is not allowed. - CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 120; - - // Specified phone number type is disallowed. - DISALLOWED_NUMBER_TYPE = 121; - - // Phone number not supported for country. - PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 122; - - // Phone number not supported with call tracking enabled for country. - PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 123; - - // Premium rate phone number is not allowed. - PREMIUM_RATE_NUMBER_NOT_ALLOWED = 124; - - // Vanity phone number is not allowed. - VANITY_PHONE_NUMBER_NOT_ALLOWED = 125; - - // Invalid call conversion type id. - INVALID_CALL_CONVERSION_TYPE_ID = 126; - - // Cannot disable call conversion and set conversion type id. - CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID = 127; - - // Cannot set path2 without path1. - CANNOT_SET_PATH2_WITHOUT_PATH1 = 128; - - // Missing domain name in campaign setting when adding expanded dynamic - // search ad. - MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME = 129; - - // The associated ad is not compatible with restriction type. - INCOMPATIBLE_WITH_RESTRICTION_TYPE = 130; - - // Consent for call recording is required for creating/updating call only - // ads. Please see https://support.google.com/google-ads/answer/7412639. - CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 131; - - // Either an image or a media bundle is required in a display upload ad. - MISSING_IMAGE_OR_MEDIA_BUNDLE = 132; - - // The display upload product type is not supported in this campaign. - PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN = 133; - - // The default value of an ad placeholder can not be the empty string. - PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE = 134; - - // Ad placeholders with countdown functions must not have a default value. - PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE = 135; - - // A previous ad placeholder that had a default value was found which means - // that all (non-countdown) placeholders must have a default value. This - // ad placeholder does not have a default value. - PLACEHOLDER_DEFAULT_VALUE_MISSING = 136; - - // A previous ad placeholder that did not have a default value was found - // which means that no placeholders may have a default value. This - // ad placeholder does have a default value. - UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE = 137; - - // Two ad customizers may not be directly adjacent in an ad text. They must - // be separated by at least one character. - AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT = 138; - - // The ad is not associated with any enabled AdGroupAd, and cannot be - // updated. - UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION = 139; - - // Too many ad customizers in one asset. - TOO_MANY_AD_CUSTOMIZERS = 141; - - // The ad customizer tag is recognized, but the format is invalid. - INVALID_AD_CUSTOMIZER_FORMAT = 142; - - // Customizer tags cannot be nested. - NESTED_AD_CUSTOMIZER_SYNTAX = 143; - - // The ad customizer syntax used in the ad is not supported. - UNSUPPORTED_AD_CUSTOMIZER_SYNTAX = 144; - - // There exists unpaired brace in the ad customizer tag. - UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG = 145; - - // More than one type of countdown tag exists among all text lines. - MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS = 146; - - // Date time in the countdown tag is invalid. - DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID = 147; - - // Date time in the countdown tag is in the past. - DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST = 148; - - // Cannot recognize the ad customizer tag. - UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND = 149; - - // Missing required image aspect ratio. - MISSING_REQUIRED_IMAGE_ASPECT_RATIO = 153; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_group_ad_error.proto b/google/ads/googleads/v7/errors/ad_group_ad_error.proto deleted file mode 100644 index 3ca6f0108..000000000 --- a/google/ads/googleads/v7/errors/ad_group_ad_error.proto +++ /dev/null @@ -1,76 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad group ad errors. - -// Container for enum describing possible ad group ad errors. -message AdGroupAdErrorEnum { - // Enum describing possible ad group ad errors. - enum AdGroupAdError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // No link found between the adgroup ad and the label. - AD_GROUP_AD_LABEL_DOES_NOT_EXIST = 2; - - // The label has already been attached to the adgroup ad. - AD_GROUP_AD_LABEL_ALREADY_EXISTS = 3; - - // The specified ad was not found in the adgroup - AD_NOT_UNDER_ADGROUP = 4; - - // Removed ads may not be modified - CANNOT_OPERATE_ON_REMOVED_ADGROUPAD = 5; - - // An ad of this type is deprecated and cannot be created. Only deletions - // are permitted. - CANNOT_CREATE_DEPRECATED_ADS = 6; - - // Text ads are deprecated and cannot be created. Use expanded text ads - // instead. - CANNOT_CREATE_TEXT_ADS = 7; - - // A required field was not specified or is an empty string. - EMPTY_FIELD = 8; - - // An ad may only be modified once per call - RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 9; - - // AdGroupAds with the given ad type cannot be paused. - AD_TYPE_CANNOT_BE_PAUSED = 10; - - // AdGroupAds with the given ad type cannot be removed. - AD_TYPE_CANNOT_BE_REMOVED = 11; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_group_bid_modifier_error.proto b/google/ads/googleads/v7/errors/ad_group_bid_modifier_error.proto deleted file mode 100644 index 86fbfe921..000000000 --- a/google/ads/googleads/v7/errors/ad_group_bid_modifier_error.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupBidModifierErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad group bid modifier errors. - -// Container for enum describing possible ad group bid modifier errors. -message AdGroupBidModifierErrorEnum { - // Enum describing possible ad group bid modifier errors. - enum AdGroupBidModifierError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The criterion ID does not support bid modification. - CRITERION_ID_NOT_SUPPORTED = 2; - - // Cannot override the bid modifier for the given criterion ID if the parent - // campaign is opted out of the same criterion. - CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_group_criterion_error.proto b/google/ads/googleads/v7/errors/ad_group_criterion_error.proto deleted file mode 100644 index 6b9d28b52..000000000 --- a/google/ads/googleads/v7/errors/ad_group_criterion_error.proto +++ /dev/null @@ -1,137 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad group criterion errors. - -// Container for enum describing possible ad group criterion errors. -message AdGroupCriterionErrorEnum { - // Enum describing possible ad group criterion errors. - enum AdGroupCriterionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // No link found between the AdGroupCriterion and the label. - AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST = 2; - - // The label has already been attached to the AdGroupCriterion. - AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS = 3; - - // Negative AdGroupCriterion cannot have labels. - CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION = 4; - - // Too many operations for a single call. - TOO_MANY_OPERATIONS = 5; - - // Negative ad group criteria are not updateable. - CANT_UPDATE_NEGATIVE = 6; - - // Concrete type of criterion (keyword v.s. placement) is required for ADD - // and SET operations. - CONCRETE_TYPE_REQUIRED = 7; - - // Bid is incompatible with ad group's bidding settings. - BID_INCOMPATIBLE_WITH_ADGROUP = 8; - - // Cannot target and exclude the same criterion at once. - CANNOT_TARGET_AND_EXCLUDE = 9; - - // The URL of a placement is invalid. - ILLEGAL_URL = 10; - - // Keyword text was invalid. - INVALID_KEYWORD_TEXT = 11; - - // Destination URL was invalid. - INVALID_DESTINATION_URL = 12; - - // The destination url must contain at least one tag (e.g. {lpurl}) - MISSING_DESTINATION_URL_TAG = 13; - - // Keyword-level cpm bid is not supported - KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM = 14; - - // For example, cannot add a biddable ad group criterion that had been - // removed. - INVALID_USER_STATUS = 15; - - // Criteria type cannot be targeted for the ad group. Either the account is - // restricted to keywords only, the criteria type is incompatible with the - // campaign's bidding strategy, or the criteria type can only be applied to - // campaigns. - CANNOT_ADD_CRITERIA_TYPE = 16; - - // Criteria type cannot be excluded for the ad group. Refer to the - // documentation for a specific criterion to check if it is excludable. - CANNOT_EXCLUDE_CRITERIA_TYPE = 17; - - // Partial failure is not supported for shopping campaign mutate operations. - CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE = 27; - - // Operations in the mutate request changes too many shopping ad groups. - // Please split requests for multiple shopping ad groups across multiple - // requests. - OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS = 28; - - // Not allowed to modify url fields of an ad group criterion if there are - // duplicate elements for that ad group criterion in the request. - CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS = 29; - - // Cannot set url fields without also setting final urls. - CANNOT_SET_WITHOUT_FINAL_URLS = 30; - - // Cannot clear final urls if final mobile urls exist. - CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST = 31; - - // Cannot clear final urls if final app urls exist. - CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST = 32; - - // Cannot clear final urls if tracking url template exists. - CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS = 33; - - // Cannot clear final urls if url custom parameters exist. - CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST = 34; - - // Cannot set both destination url and final urls. - CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS = 35; - - // Cannot set both destination url and tracking url template. - CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE = 36; - - // Final urls are not supported for this criterion type. - FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 37; - - // Final mobile urls are not supported for this criterion type. - FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 38; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_group_error.proto b/google/ads/googleads/v7/errors/ad_group_error.proto deleted file mode 100644 index 5a989688d..000000000 --- a/google/ads/googleads/v7/errors/ad_group_error.proto +++ /dev/null @@ -1,91 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad group errors. - -// Container for enum describing possible ad group errors. -message AdGroupErrorEnum { - // Enum describing possible ad group errors. - enum AdGroupError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // AdGroup with the same name already exists for the campaign. - DUPLICATE_ADGROUP_NAME = 2; - - // AdGroup name is not valid. - INVALID_ADGROUP_NAME = 3; - - // Advertiser is not allowed to target sites or set site bids that are not - // on the Google Search Network. - ADVERTISER_NOT_ON_CONTENT_NETWORK = 5; - - // Bid amount is too big. - BID_TOO_BIG = 6; - - // AdGroup bid does not match the campaign's bidding strategy. - BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH = 7; - - // AdGroup name is required for Add. - MISSING_ADGROUP_NAME = 8; - - // No link found between the ad group and the label. - ADGROUP_LABEL_DOES_NOT_EXIST = 9; - - // The label has already been attached to the ad group. - ADGROUP_LABEL_ALREADY_EXISTS = 10; - - // The CriterionTypeGroup is not supported for the content bid dimension. - INVALID_CONTENT_BID_CRITERION_TYPE_GROUP = 11; - - // The ad group type is not compatible with the campaign channel type. - AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE = 12; - - // The ad group type is not supported in the country of sale of the - // campaign. - ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY = 13; - - // Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to - // campaigns that have DynamicSearchAdsSetting attached. - CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING = 14; - - // Promoted hotels ad groups are only available to customers on the - // allow-list. - PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER = 15; - - // The field type cannot be excluded because an active ad group-asset link - // of this type exists. - INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 16; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_group_feed_error.proto b/google/ads/googleads/v7/errors/ad_group_feed_error.proto deleted file mode 100644 index bd0e0fe1d..000000000 --- a/google/ads/googleads/v7/errors/ad_group_feed_error.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupFeedErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad group feed errors. - -// Container for enum describing possible ad group feed errors. -message AdGroupFeedErrorEnum { - // Enum describing possible ad group feed errors. - enum AdGroupFeedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An active feed already exists for this ad group and place holder type. - FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; - - // The specified feed is removed. - CANNOT_CREATE_FOR_REMOVED_FEED = 3; - - // The AdGroupFeed already exists. UPDATE operation should be used to modify - // the existing AdGroupFeed. - ADGROUP_FEED_ALREADY_EXISTS = 4; - - // Cannot operate on removed AdGroupFeed. - CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED = 5; - - // Invalid placeholder type. - INVALID_PLACEHOLDER_TYPE = 6; - - // Feed mapping for this placeholder type does not exist. - MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7; - - // Location AdGroupFeeds cannot be created unless there is a location - // CustomerFeed for the specified feed. - NO_EXISTING_LOCATION_CUSTOMER_FEED = 8; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_parameter_error.proto b/google/ads/googleads/v7/errors/ad_parameter_error.proto deleted file mode 100644 index c19cad8b6..000000000 --- a/google/ads/googleads/v7/errors/ad_parameter_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdParameterErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad parameter errors. - -// Container for enum describing possible ad parameter errors. -message AdParameterErrorEnum { - // Enum describing possible ad parameter errors. - enum AdParameterError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The ad group criterion must be a keyword criterion. - AD_GROUP_CRITERION_MUST_BE_KEYWORD = 2; - - // The insertion text is invalid. - INVALID_INSERTION_TEXT_FORMAT = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/ad_sharing_error.proto b/google/ads/googleads/v7/errors/ad_sharing_error.proto deleted file mode 100644 index 5fa065fc3..000000000 --- a/google/ads/googleads/v7/errors/ad_sharing_error.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdSharingErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ad sharing errors. - -// Container for enum describing possible ad sharing errors. -message AdSharingErrorEnum { - // Enum describing possible ad sharing errors. - enum AdSharingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Error resulting in attempting to add an Ad to an AdGroup that already - // contains the Ad. - AD_GROUP_ALREADY_CONTAINS_AD = 2; - - // Ad is not compatible with the AdGroup it is being shared with. - INCOMPATIBLE_AD_UNDER_AD_GROUP = 3; - - // Cannot add AdGroupAd on inactive Ad. - CANNOT_SHARE_INACTIVE_AD = 4; - } - - -} diff --git a/google/ads/googleads/v7/errors/adx_error.proto b/google/ads/googleads/v7/errors/adx_error.proto deleted file mode 100644 index 4e3362dfb..000000000 --- a/google/ads/googleads/v7/errors/adx_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdxErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing adx errors. - -// Container for enum describing possible adx errors. -message AdxErrorEnum { - // Enum describing possible adx errors. - enum AdxError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Attempt to use non-AdX feature by AdX customer. - UNSUPPORTED_FEATURE = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/asset_error.proto b/google/ads/googleads/v7/errors/asset_error.proto deleted file mode 100644 index beca1c363..000000000 --- a/google/ads/googleads/v7/errors/asset_error.proto +++ /dev/null @@ -1,99 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AssetErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing asset errors. - -// Container for enum describing possible asset errors. -message AssetErrorEnum { - // Enum describing possible asset errors. - enum AssetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The customer is not is not on the allow-list for this asset type. - CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE = 13; - - // Assets are duplicated across operations. - DUPLICATE_ASSET = 3; - - // The asset name is duplicated, either across operations or with an - // existing asset. - DUPLICATE_ASSET_NAME = 4; - - // The Asset.asset_data oneof is empty. - ASSET_DATA_IS_MISSING = 5; - - // The asset has a name which is different from an existing duplicate that - // represents the same content. - CANNOT_MODIFY_ASSET_NAME = 6; - - // The field cannot be set for this asset type. - FIELD_INCOMPATIBLE_WITH_ASSET_TYPE = 7; - - // Call to action must come from the list of supported values. - INVALID_CALL_TO_ACTION_TEXT = 8; - - // A lead form asset is created with an invalid combination of input fields. - LEAD_FORM_INVALID_FIELDS_COMBINATION = 9; - - // Lead forms require that the Terms of Service have been agreed to before - // mutates can be executed. - LEAD_FORM_MISSING_AGREEMENT = 10; - - // Asset status is invalid in this operation. - INVALID_ASSET_STATUS = 11; - - // The field cannot be modified by this asset type. - FIELD_CANNOT_BE_MODIFIED_FOR_ASSET_TYPE = 12; - - // Ad schedules for the same asset cannot overlap. - SCHEDULES_CANNOT_OVERLAP = 14; - - // Cannot set both percent off and money amount off fields of promotion - // asset. - PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 15; - - // Cannot set both promotion code and orders over amount fields of promotion - // asset. - PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 16; - - // The field has too many decimal places specified. - TOO_MANY_DECIMAL_PLACES_SPECIFIED = 17; - - // Duplicate assets across operations, which have identical Asset.asset_data - // oneof, cannot have different asset level fields for asset types which are - // deduped. - DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE = 18; - } - - -} diff --git a/google/ads/googleads/v7/errors/asset_link_error.proto b/google/ads/googleads/v7/errors/asset_link_error.proto deleted file mode 100644 index 8acce1d5c..000000000 --- a/google/ads/googleads/v7/errors/asset_link_error.proto +++ /dev/null @@ -1,102 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AssetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing asset link errors. - -// Container for enum describing possible asset link errors. -message AssetLinkErrorEnum { - // Enum describing possible asset link errors. - enum AssetLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Pinning is not supported for the given asset link field. - PINNING_UNSUPPORTED = 2; - - // The given field type is not supported to be added directly via asset - // links. - UNSUPPORTED_FIELD_TYPE = 3; - - // The given asset's type and the specified field type are incompatible. - FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE = 4; - - // The specified field type is incompatible with the given campaign type. - FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE = 5; - - // The campaign advertising channel type cannot be associated with the given - // asset due to channel-based restrictions on the asset's fields. - INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE = 6; - - // The image asset provided is not within the dimension constraints - // specified for the submitted asset field. - IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE = 7; - - // The pinned field is not valid for the submitted asset field. - INVALID_PINNED_FIELD = 8; - - // The media bundle asset provided is too large for the submitted asset - // field. - MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE = 9; - - // Not enough assets are available for use with other fields since other - // assets are pinned to specific fields. - NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION = 10; - - // Not enough assets with fallback are available. When validating the - // minimum number of assets, assets without fallback (e.g. assets that - // contain location tag without default value "{LOCATION(City)}") will not - // be counted. - NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK = 11; - - // This is a combination of the - // NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION and - // NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK errors. Not enough assets - // with fallback are available since some assets are pinned. - NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION = 12; - - // The YouTube video referenced in the provided asset has been removed. - YOUTUBE_VIDEO_REMOVED = 13; - - // The YouTube video referenced in the provided asset is too long for the - // field submitted. - YOUTUBE_VIDEO_TOO_LONG = 14; - - // The YouTube video referenced in the provided asset is too short for the - // field submitted. - YOUTUBE_VIDEO_TOO_SHORT = 15; - - // The status is invalid for the operation specified. - INVALID_STATUS = 17; - } - - -} diff --git a/google/ads/googleads/v7/errors/authentication_error.proto b/google/ads/googleads/v7/errors/authentication_error.proto deleted file mode 100644 index 680208a79..000000000 --- a/google/ads/googleads/v7/errors/authentication_error.proto +++ /dev/null @@ -1,103 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AuthenticationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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; - - // Google 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; - - // User in the cookie is not a valid Ads user. - 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 Google Ads 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 Google Ads account, enable Advanced Protection in your - // Google account at https://landing.google.com/advancedprotection. - ADVANCED_PROTECTION_NOT_ENROLLED = 24; - } - - -} diff --git a/google/ads/googleads/v7/errors/authorization_error.proto b/google/ads/googleads/v7/errors/authorization_error.proto deleted file mode 100644 index 80f559df1..000000000 --- a/google/ads/googleads/v7/errors/authorization_error.proto +++ /dev/null @@ -1,92 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AuthorizationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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/google-ads/api/docs/concepts/call-structure#cid - USER_PERMISSION_DENIED = 2; - - // The developer token is not on the allow-list. - DEVELOPER_TOKEN_NOT_ON_ALLOWLIST = 13; - - // The developer token is not allowed with the project sent in the request. - DEVELOPER_TOKEN_PROHIBITED = 4; - - // 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 - // (e.g., ADD, UPDATE, REMOVE) on the resource or call a method. - ACTION_NOT_PERMITTED = 7; - - // Signup not complete. - INCOMPLETE_SIGNUP = 8; - - // The customer can't be used because it isn't enabled. - CUSTOMER_NOT_ENABLED = 24; - - // The developer must sign the terms of service. They can be found here: - // ads.google.com/aw/apicenter - MISSING_TOS = 9; - - // The developer token is not approved. Non-approved developer tokens can - // only be used with test accounts. - DEVELOPER_TOKEN_NOT_APPROVED = 10; - - // 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 in Google Ads. It belongs to - // another ads system. - ACCESS_DENIED_FOR_ACCOUNT_TYPE = 25; - } - - -} diff --git a/google/ads/googleads/v7/errors/batch_job_error.proto b/google/ads/googleads/v7/errors/batch_job_error.proto deleted file mode 100644 index 399331ba3..000000000 --- a/google/ads/googleads/v7/errors/batch_job_error.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "BatchJobErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing batch job errors. - -// Container for enum describing possible batch job errors. -message BatchJobErrorEnum { - // Enum describing possible request errors. - enum BatchJobError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The batch job cannot add more operations or run after it has started - // running. - CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING = 2; - - // The operations for an AddBatchJobOperations request were empty. - EMPTY_OPERATIONS = 3; - - // The sequence token for an AddBatchJobOperations request was invalid. - INVALID_SEQUENCE_TOKEN = 4; - - // Batch job results can only be retrieved once the job is finished. - RESULTS_NOT_READY = 5; - - // The page size for ListBatchJobResults was invalid. - INVALID_PAGE_SIZE = 6; - - // The batch job cannot be removed because it has started running. - CAN_ONLY_REMOVE_PENDING_JOB = 7; - } - - -} diff --git a/google/ads/googleads/v7/errors/bidding_error.proto b/google/ads/googleads/v7/errors/bidding_error.proto deleted file mode 100644 index e5a35fbe3..000000000 --- a/google/ads/googleads/v7/errors/bidding_error.proto +++ /dev/null @@ -1,122 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "BiddingErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing bidding errors. - -// Container for enum describing possible bidding errors. -message BiddingErrorEnum { - // Enum describing possible bidding errors. - enum BiddingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot transition to new bidding strategy. - BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED = 2; - - // Cannot attach bidding strategy to campaign. - CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN = 7; - - // Bidding strategy is not supported or cannot be used as anonymous. - INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE = 10; - - // The type does not match the named strategy's type. - INVALID_BIDDING_STRATEGY_TYPE = 14; - - // The bid is invalid. - INVALID_BID = 17; - - // Bidding strategy is not available for the account type. - BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 18; - - // Conversion tracking is not enabled in the campaign that has value-based - // bidding transitions. - CONVERSION_TRACKING_NOT_ENABLED = 19; - - // Not enough conversions tracked for value-based bidding transitions. - NOT_ENOUGH_CONVERSIONS = 20; - - // Campaign can not be created with given bidding strategy. It can be - // transitioned to the strategy, once eligible. - CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY = 21; - - // Cannot target content network only as campaign uses Page One Promoted - // bidding strategy. - CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY = 23; - - // Budget Optimizer and Target Spend bidding strategies are not supported - // for campaigns with AdSchedule targeting. - BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE = 24; - - // Pay per conversion is not available to all the customer, only few - // customers on the allow-list can use this. - PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER = 25; - - // Pay per conversion is not allowed with Target CPA. - PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA = 26; - - // Cannot set bidding strategy to Manual CPM for search network only - // campaigns. - BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS = 27; - - // The bidding strategy is not supported for use in drafts or experiments. - BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS = 28; - - // Bidding strategy type does not support product type ad group criterion. - BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION = 29; - - // Bid amount is too small. - BID_TOO_SMALL = 30; - - // Bid amount is too big. - BID_TOO_BIG = 31; - - // Bid has too many fractional digit precision. - BID_TOO_MANY_FRACTIONAL_DIGITS = 32; - - // Invalid domain name specified. - INVALID_DOMAIN_NAME = 33; - - // The field is not compatible with the payment mode. - NOT_COMPATIBLE_WITH_PAYMENT_MODE = 34; - - // The field is not compatible with the budget type. - NOT_COMPATIBLE_WITH_BUDGET_TYPE = 35; - - // The field is not compatible with the bidding strategy type. - NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE = 36; - - // Bidding strategy type is incompatible with shared budget. - BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET = 37; - } - - -} diff --git a/google/ads/googleads/v7/errors/bidding_strategy_error.proto b/google/ads/googleads/v7/errors/bidding_strategy_error.proto deleted file mode 100644 index 777b6293c..000000000 --- a/google/ads/googleads/v7/errors/bidding_strategy_error.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing bidding strategy errors. - -// Container for enum describing possible bidding strategy errors. -message BiddingStrategyErrorEnum { - // Enum describing possible bidding strategy errors. - enum BiddingStrategyError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Each bidding strategy must have a unique name. - DUPLICATE_NAME = 2; - - // Bidding strategy type is immutable. - CANNOT_CHANGE_BIDDING_STRATEGY_TYPE = 3; - - // Only bidding strategies not linked to campaigns, adgroups or adgroup - // criteria can be removed. - CANNOT_REMOVE_ASSOCIATED_STRATEGY = 4; - - // The specified bidding strategy is not supported. - BIDDING_STRATEGY_NOT_SUPPORTED = 5; - - // The bidding strategy is incompatible with the campaign's bidding - // strategy goal type. - INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE = 6; - } - - -} diff --git a/google/ads/googleads/v7/errors/billing_setup_error.proto b/google/ads/googleads/v7/errors/billing_setup_error.proto deleted file mode 100644 index 1f16f870f..000000000 --- a/google/ads/googleads/v7/errors/billing_setup_error.proto +++ /dev/null @@ -1,105 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "BillingSetupErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing billing setup errors. - -// Container for enum describing possible billing setup errors. -message BillingSetupErrorEnum { - // Enum describing possible billing setup errors. - enum BillingSetupError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot specify both an existing payments account and a new payments - // account when setting up billing. - CANNOT_USE_EXISTING_AND_NEW_ACCOUNT = 2; - - // Cannot cancel an approved billing setup whose start time has passed. - CANNOT_REMOVE_STARTED_BILLING_SETUP = 3; - - // Cannot perform a Change of Bill-To (CBT) to the same payments account. - CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT = 4; - - // Billing setups can only be used by customers with ENABLED or DRAFT - // status. - BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS = 5; - - // Billing setups must either include a correctly formatted existing - // payments account id, or a non-empty new payments account name. - INVALID_PAYMENTS_ACCOUNT = 6; - - // Only billable and third-party customers can create billing setups. - BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY = 7; - - // Billing setup creations can only use NOW for start time type. - INVALID_START_TIME_TYPE = 8; - - // Billing setups can only be created for a third-party customer if they do - // not already have a setup. - THIRD_PARTY_ALREADY_HAS_BILLING = 9; - - // Billing setups cannot be created if there is already a pending billing in - // progress. - BILLING_SETUP_IN_PROGRESS = 10; - - // Billing setups can only be created by customers who have permission to - // setup billings. Users can contact a representative for help setting up - // permissions. - NO_SIGNUP_PERMISSION = 11; - - // Billing setups cannot be created if there is already a future-approved - // billing. - CHANGE_OF_BILL_TO_IN_PROGRESS = 12; - - // Requested payments profile not found. - PAYMENTS_PROFILE_NOT_FOUND = 13; - - // Requested payments account not found. - PAYMENTS_ACCOUNT_NOT_FOUND = 14; - - // Billing setup creation failed because the payments profile is ineligible. - PAYMENTS_PROFILE_INELIGIBLE = 15; - - // Billing setup creation failed because the payments account is ineligible. - PAYMENTS_ACCOUNT_INELIGIBLE = 16; - - // Billing setup creation failed because the payments profile needs internal - // approval. - CUSTOMER_NEEDS_INTERNAL_APPROVAL = 17; - - // Payments account has different currency code than the current customer - // and hence cannot be used to setup billing. - PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH = 19; - } - - -} diff --git a/google/ads/googleads/v7/errors/campaign_budget_error.proto b/google/ads/googleads/v7/errors/campaign_budget_error.proto deleted file mode 100644 index 8cbcb4bb6..000000000 --- a/google/ads/googleads/v7/errors/campaign_budget_error.proto +++ /dev/null @@ -1,97 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBudgetErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing campaign budget errors. - -// Container for enum describing possible campaign budget errors. -message CampaignBudgetErrorEnum { - // Enum describing possible campaign budget errors. - enum CampaignBudgetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The campaign budget cannot be shared. - CAMPAIGN_BUDGET_CANNOT_BE_SHARED = 17; - - // The requested campaign budget no longer exists. - CAMPAIGN_BUDGET_REMOVED = 2; - - // The campaign budget is associated with at least one campaign, and so the - // campaign budget cannot be removed. - CAMPAIGN_BUDGET_IN_USE = 3; - - // Customer is not on the allow-list for this campaign budget period. - CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE = 4; - - // This field is not mutable on implicitly shared campaign budgets - CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET = 6; - - // Cannot change explicitly shared campaign budgets back to implicitly - // shared ones. - CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED = 7; - - // An implicit campaign budget without a name cannot be changed to - // explicitly shared campaign budget. - CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME = 8; - - // Cannot change an implicitly shared campaign budget to an explicitly - // shared one. - CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED = 9; - - // Only explicitly shared campaign budgets can be used with multiple - // campaigns. - CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS = 10; - - // A campaign budget with this name already exists. - DUPLICATE_NAME = 11; - - // A money amount was not in the expected currency. - MONEY_AMOUNT_IN_WRONG_CURRENCY = 12; - - // A money amount was less than the minimum CPC for currency. - MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC = 13; - - // A money amount was greater than the maximum allowed. - MONEY_AMOUNT_TOO_LARGE = 14; - - // A money amount was negative. - NEGATIVE_MONEY_AMOUNT = 15; - - // A money amount was not a multiple of a minimum unit. - NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT = 16; - - // Total budget amount must be unset when BudgetPeriod is DAILY. - TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY = 18; - } - - -} diff --git a/google/ads/googleads/v7/errors/campaign_criterion_error.proto b/google/ads/googleads/v7/errors/campaign_criterion_error.proto deleted file mode 100644 index b24a549d6..000000000 --- a/google/ads/googleads/v7/errors/campaign_criterion_error.proto +++ /dev/null @@ -1,81 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing campaign criterion errors. - -// Container for enum describing possible campaign criterion errors. -message CampaignCriterionErrorEnum { - // Enum describing possible campaign criterion errors. - enum CampaignCriterionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Concrete type of criterion (keyword v.s. placement) is required for - // CREATE and UPDATE operations. - CONCRETE_TYPE_REQUIRED = 2; - - // Invalid placement URL. - INVALID_PLACEMENT_URL = 3; - - // Criteria type can not be excluded for the campaign by the customer. like - // AOL account type cannot target site type criteria - CANNOT_EXCLUDE_CRITERIA_TYPE = 4; - - // Cannot set the campaign criterion status for this criteria type. - CANNOT_SET_STATUS_FOR_CRITERIA_TYPE = 5; - - // Cannot set the campaign criterion status for an excluded criteria. - CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA = 6; - - // Cannot target and exclude the same criterion. - CANNOT_TARGET_AND_EXCLUDE = 7; - - // The mutate contained too many operations. - TOO_MANY_OPERATIONS = 8; - - // This operator cannot be applied to a criterion of this type. - OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE = 9; - - // The Shopping campaign sales country is not supported for - // ProductSalesChannel targeting. - SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL = 10; - - // The existing field can't be updated with CREATE operation. It can be - // updated with UPDATE operation only. - CANNOT_ADD_EXISTING_FIELD = 11; - - // Negative criteria are immutable, so updates are not allowed. - CANNOT_UPDATE_NEGATIVE_CRITERION = 12; - } - - -} diff --git a/google/ads/googleads/v7/errors/campaign_draft_error.proto b/google/ads/googleads/v7/errors/campaign_draft_error.proto deleted file mode 100644 index eb6ba7e84..000000000 --- a/google/ads/googleads/v7/errors/campaign_draft_error.proto +++ /dev/null @@ -1,79 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignDraftErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing campaign draft errors. - -// Container for enum describing possible campaign draft errors. -message CampaignDraftErrorEnum { - // Enum describing possible campaign draft errors. - enum CampaignDraftError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A draft with this name already exists for this campaign. - DUPLICATE_DRAFT_NAME = 2; - - // The draft is removed and cannot be transitioned to another status. - INVALID_STATUS_TRANSITION_FROM_REMOVED = 3; - - // The draft has been promoted and cannot be transitioned to the specified - // status. - INVALID_STATUS_TRANSITION_FROM_PROMOTED = 4; - - // The draft has failed to be promoted and cannot be transitioned to the - // specified status. - INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED = 5; - - // This customer is not allowed to create drafts. - CUSTOMER_CANNOT_CREATE_DRAFT = 6; - - // This campaign is not allowed to create drafts. - CAMPAIGN_CANNOT_CREATE_DRAFT = 7; - - // This modification cannot be made on a draft. - INVALID_DRAFT_CHANGE = 8; - - // The draft cannot be transitioned to the specified status from its - // current status. - INVALID_STATUS_TRANSITION = 9; - - // The campaign has reached the maximum number of drafts that can be created - // for a campaign throughout its lifetime. No additional drafts can be - // created for this campaign. Removed drafts also count towards this limit. - MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED = 10; - - // ListAsyncErrors was called without first promoting the draft. - LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY = 11; - } - - -} diff --git a/google/ads/googleads/v7/errors/campaign_error.proto b/google/ads/googleads/v7/errors/campaign_error.proto deleted file mode 100644 index 563fe172f..000000000 --- a/google/ads/googleads/v7/errors/campaign_error.proto +++ /dev/null @@ -1,190 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing campaign errors. - -// Container for enum describing possible campaign errors. -message CampaignErrorEnum { - // Enum describing possible campaign errors. - enum CampaignError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot target content network. - CANNOT_TARGET_CONTENT_NETWORK = 3; - - // Cannot target search network. - CANNOT_TARGET_SEARCH_NETWORK = 4; - - // Cannot cover search network without google search network. - CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH = 5; - - // Cannot target Google Search network for a CPM campaign. - CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN = 6; - - // Must target at least one network. - CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK = 7; - - // Only some Google partners are allowed to target partner search network. - CANNOT_TARGET_PARTNER_SEARCH_NETWORK = 8; - - // Cannot target content network only as campaign has criteria-level bidding - // strategy. - CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY = 9; - - // Cannot modify the start or end date such that the campaign duration would - // not contain the durations of all runnable trials. - CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS = 10; - - // Cannot modify dates, budget or status of a trial campaign. - CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN = 11; - - // Trying to modify the name of an active or paused campaign, where the name - // is already assigned to another active or paused campaign. - DUPLICATE_CAMPAIGN_NAME = 12; - - // Two fields are in conflicting modes. - INCOMPATIBLE_CAMPAIGN_FIELD = 13; - - // Campaign name cannot be used. - INVALID_CAMPAIGN_NAME = 14; - - // Given status is invalid. - INVALID_AD_SERVING_OPTIMIZATION_STATUS = 15; - - // Error in the campaign level tracking URL. - INVALID_TRACKING_URL = 16; - - // Cannot set both tracking URL template and tracking setting. A user has - // to clear legacy tracking setting in order to add tracking URL template. - CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING = 17; - - // The maximum number of impressions for Frequency Cap should be an integer - // greater than 0. - MAX_IMPRESSIONS_NOT_IN_RANGE = 18; - - // Only the Day, Week and Month time units are supported. - TIME_UNIT_NOT_SUPPORTED = 19; - - // Operation not allowed on a campaign whose serving status has ended - INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED = 20; - - // This budget is exclusively linked to a Campaign that is using experiments - // so it cannot be shared. - BUDGET_CANNOT_BE_SHARED = 21; - - // Campaigns using experiments cannot use a shared budget. - CAMPAIGN_CANNOT_USE_SHARED_BUDGET = 22; - - // A different budget cannot be assigned to a campaign when there are - // running or scheduled trials. - CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS = 23; - - // No link found between the campaign and the label. - CAMPAIGN_LABEL_DOES_NOT_EXIST = 24; - - // The label has already been attached to the campaign. - CAMPAIGN_LABEL_ALREADY_EXISTS = 25; - - // A ShoppingSetting was not found when creating a shopping campaign. - MISSING_SHOPPING_SETTING = 26; - - // The country in shopping setting is not an allowed country. - INVALID_SHOPPING_SALES_COUNTRY = 27; - - // The requested channel type is not available according to the customer's - // account setting. - ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 31; - - // The AdvertisingChannelSubType is not a valid subtype of the primary - // channel type. - INVALID_ADVERTISING_CHANNEL_SUB_TYPE = 32; - - // At least one conversion must be selected. - AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED = 33; - - // Setting ad rotation mode for a campaign is not allowed. Ad rotation mode - // at campaign is deprecated. - CANNOT_SET_AD_ROTATION_MODE = 34; - - // Trying to change start date on a campaign that has started. - CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 35; - - // Trying to modify a date into the past. - CANNOT_SET_DATE_TO_PAST = 36; - - // Hotel center id in the hotel setting does not match any customer links. - MISSING_HOTEL_CUSTOMER_LINK = 37; - - // Hotel center id in the hotel setting must match an active customer link. - INVALID_HOTEL_CUSTOMER_LINK = 38; - - // Hotel setting was not found when creating a hotel ads campaign. - MISSING_HOTEL_SETTING = 39; - - // A Campaign cannot use shared campaign budgets and be part of a campaign - // group. - CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP = 40; - - // The app ID was not found. - APP_NOT_FOUND = 41; - - // Campaign.shopping_setting.enable_local is not supported for the specified - // campaign type. - SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 42; - - // The merchant does not support the creation of campaigns for Shopping - // Comparison Listing Ads. - MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS = 43; - - // The App campaign for engagement cannot be created because there aren't - // enough installs. - INSUFFICIENT_APP_INSTALLS_COUNT = 44; - - // The App campaign for engagement cannot be created because the app is - // sensitive. - SENSITIVE_CATEGORY_APP = 45; - - // Customers with Housing, Employment, or Credit ads must accept updated - // personalized ads policy to continue creating campaigns. - HEC_AGREEMENT_REQUIRED = 46; - - // The payment mode type is not compatible with view through conversion. - PAYMENT_MODE_NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION = 47; - - // The field type cannot be excluded because an active campaign-asset link - // of this type exists. - INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 48; - } - - -} diff --git a/google/ads/googleads/v7/errors/campaign_experiment_error.proto b/google/ads/googleads/v7/errors/campaign_experiment_error.proto deleted file mode 100644 index be9502053..000000000 --- a/google/ads/googleads/v7/errors/campaign_experiment_error.proto +++ /dev/null @@ -1,81 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing campaign experiment errors. - -// Container for enum describing possible campaign experiment errors. -message CampaignExperimentErrorEnum { - // Enum describing possible campaign experiment errors. - enum CampaignExperimentError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An active campaign or experiment with this name already exists. - DUPLICATE_NAME = 2; - - // Experiment cannot be updated from the current state to the - // requested target state. For example, an experiment can only graduate - // if its status is ENABLED. - INVALID_TRANSITION = 3; - - // Cannot create an experiment from a campaign using an explicitly shared - // budget. - CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET = 4; - - // Cannot create an experiment for a removed base campaign. - CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN = 5; - - // Cannot create an experiment from a draft, which has a status other than - // proposed. - CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT = 6; - - // This customer is not allowed to create an experiment. - CUSTOMER_CANNOT_CREATE_EXPERIMENT = 7; - - // This campaign is not allowed to create an experiment. - CAMPAIGN_CANNOT_CREATE_EXPERIMENT = 8; - - // Trying to set an experiment duration which overlaps with another - // experiment. - EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP = 9; - - // All non-removed experiments must start and end within their campaign's - // duration. - EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION = 10; - - // The experiment cannot be modified because its status is in a terminal - // state, such as REMOVED. - CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS = 11; - } - - -} diff --git a/google/ads/googleads/v7/errors/campaign_feed_error.proto b/google/ads/googleads/v7/errors/campaign_feed_error.proto deleted file mode 100644 index 820751657..000000000 --- a/google/ads/googleads/v7/errors/campaign_feed_error.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignFeedErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing campaign feed errors. - -// Container for enum describing possible campaign feed errors. -message CampaignFeedErrorEnum { - // Enum describing possible campaign feed errors. - enum CampaignFeedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An active feed already exists for this campaign and placeholder type. - FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; - - // The specified feed is removed. - CANNOT_CREATE_FOR_REMOVED_FEED = 4; - - // The CampaignFeed already exists. UPDATE should be used to modify the - // existing CampaignFeed. - CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED = 5; - - // Cannot update removed campaign feed. - CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED = 6; - - // Invalid placeholder type. - INVALID_PLACEHOLDER_TYPE = 7; - - // Feed mapping for this placeholder type does not exist. - MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 8; - - // Location CampaignFeeds cannot be created unless there is a location - // CustomerFeed for the specified feed. - NO_EXISTING_LOCATION_CUSTOMER_FEED = 9; - } - - -} diff --git a/google/ads/googleads/v7/errors/campaign_shared_set_error.proto b/google/ads/googleads/v7/errors/campaign_shared_set_error.proto deleted file mode 100644 index 5b3f48038..000000000 --- a/google/ads/googleads/v7/errors/campaign_shared_set_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSharedSetErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing campaign shared set errors. - -// Container for enum describing possible campaign shared set errors. -message CampaignSharedSetErrorEnum { - // Enum describing possible campaign shared set errors. - enum CampaignSharedSetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The shared set belongs to another customer and permission isn't granted. - SHARED_SET_ACCESS_DENIED = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/change_event_error.proto b/google/ads/googleads/v7/errors/change_event_error.proto deleted file mode 100644 index b00ae79ca..000000000 --- a/google/ads/googleads/v7/errors/change_event_error.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ChangeEventErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing change event errors. - -// Container for enum describing possible change event errors. -message ChangeEventErrorEnum { - // Enum describing possible change event errors. - enum ChangeEventError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The requested start date is too old. It cannot be older than 30 days. - START_DATE_TOO_OLD = 2; - - // The change_event search request must specify a finite range filter - // on change_date_time. - CHANGE_DATE_RANGE_INFINITE = 3; - - // The change event search request has specified invalid date time filters - // that can never logically produce any valid results (for example, start - // time after end time). - CHANGE_DATE_RANGE_NEGATIVE = 4; - - // The change_event search request must specify a LIMIT. - LIMIT_NOT_SPECIFIED = 5; - - // The LIMIT specified by change_event request should be less than or equal - // to 10K. - INVALID_LIMIT_CLAUSE = 6; - } - - -} diff --git a/google/ads/googleads/v7/errors/change_status_error.proto b/google/ads/googleads/v7/errors/change_status_error.proto deleted file mode 100644 index 7e7192b35..000000000 --- a/google/ads/googleads/v7/errors/change_status_error.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing change status errors. - -// Container for enum describing possible change status errors. -message ChangeStatusErrorEnum { - // Enum describing possible change status errors. - enum ChangeStatusError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The requested start date is too old. - START_DATE_TOO_OLD = 3; - - // The change_status search request must specify a finite range filter - // on last_change_date_time. - CHANGE_DATE_RANGE_INFINITE = 4; - - // The change status search request has specified invalid date time filters - // that can never logically produce any valid results (for example, start - // time after end time). - CHANGE_DATE_RANGE_NEGATIVE = 5; - - // The change_status search request must specify a LIMIT. - LIMIT_NOT_SPECIFIED = 6; - - // The LIMIT specified by change_status request should be less than or equal - // to 10K. - INVALID_LIMIT_CLAUSE = 7; - } - - -} diff --git a/google/ads/googleads/v7/errors/collection_size_error.proto b/google/ads/googleads/v7/errors/collection_size_error.proto deleted file mode 100644 index 385e36657..000000000 --- a/google/ads/googleads/v7/errors/collection_size_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CollectionSizeErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing collection size errors. - -// Container for enum describing possible collection size errors. -message CollectionSizeErrorEnum { - // Enum describing possible collection size errors. - enum CollectionSizeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Too few. - TOO_FEW = 2; - - // Too many. - TOO_MANY = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/context_error.proto b/google/ads/googleads/v7/errors/context_error.proto deleted file mode 100644 index 5165ec1cf..000000000 --- a/google/ads/googleads/v7/errors/context_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ContextErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing context errors. - -// Container for enum describing possible context errors. -message ContextErrorEnum { - // Enum describing possible context errors. - enum ContextError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The operation is not allowed for the given context. - OPERATION_NOT_PERMITTED_FOR_CONTEXT = 2; - - // The operation is not allowed for removed resources. - OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/conversion_action_error.proto b/google/ads/googleads/v7/errors/conversion_action_error.proto deleted file mode 100644 index 9f0891a28..000000000 --- a/google/ads/googleads/v7/errors/conversion_action_error.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing conversion action errors. - -// Container for enum describing possible conversion action errors. -message ConversionActionErrorEnum { - // Enum describing possible conversion action errors. - enum ConversionActionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The specified conversion action name already exists. - DUPLICATE_NAME = 2; - - // Another conversion action with the specified app id already exists. - DUPLICATE_APP_ID = 3; - - // Android first open action conflicts with Google play codeless download - // action tracking the same app. - TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD = 4; - - // Android first open action conflicts with Google play codeless download - // action tracking the same app. - BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION = 5; - - // The attribution model cannot be set to DATA_DRIVEN because a data-driven - // model has never been generated. - DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED = 6; - - // The attribution model cannot be set to DATA_DRIVEN because the - // data-driven model is expired. - DATA_DRIVEN_MODEL_EXPIRED = 7; - - // The attribution model cannot be set to DATA_DRIVEN because the - // data-driven model is stale. - DATA_DRIVEN_MODEL_STALE = 8; - - // The attribution model cannot be set to DATA_DRIVEN because the - // data-driven model is unavailable or the conversion action was newly - // added. - DATA_DRIVEN_MODEL_UNKNOWN = 9; - - // Creation of this conversion action type isn't supported by Google - // Ads API. - CREATION_NOT_SUPPORTED = 10; - - // Update of this conversion action isn't supported by Google Ads API. - UPDATE_NOT_SUPPORTED = 11; - } - - -} diff --git a/google/ads/googleads/v7/errors/conversion_adjustment_upload_error.proto b/google/ads/googleads/v7/errors/conversion_adjustment_upload_error.proto deleted file mode 100644 index 55fe6f164..000000000 --- a/google/ads/googleads/v7/errors/conversion_adjustment_upload_error.proto +++ /dev/null @@ -1,85 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionAdjustmentUploadErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing conversion adjustment upload errors. - -// Container for enum describing possible conversion adjustment upload errors. -message ConversionAdjustmentUploadErrorEnum { - // Enum describing possible conversion adjustment upload errors. - enum ConversionAdjustmentUploadError { - // Not specified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The specified conversion action was created too recently. - // Please try the upload again after 4-6 hours have passed since the - // conversion action was created. - TOO_RECENT_CONVERSION_ACTION = 2; - - // No conversion action of a supported ConversionActionType that matches the - // provided information can be found for the customer. - INVALID_CONVERSION_ACTION = 3; - - // A retraction was already reported for this conversion. - CONVERSION_ALREADY_RETRACTED = 4; - - // A conversion for the supplied combination of conversion - // action and conversion identifier could not be found. - CONVERSION_NOT_FOUND = 5; - - // The specified conversion has already expired. Conversions expire after 55 - // days, after which adjustments cannot be reported against them. - CONVERSION_EXPIRED = 6; - - // The supplied adjustment date time precedes that of the original - // conversion. - ADJUSTMENT_PRECEDES_CONVERSION = 7; - - // A restatement with a more recent adjustment date time was already - // reported for this conversion. - MORE_RECENT_RESTATEMENT_FOUND = 8; - - // The conversion was created too recently. - TOO_RECENT_CONVERSION = 9; - - // Restatements cannot be reported for a conversion action that always uses - // the default value. - CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE = 10; - - // The request contained more than 2000 adjustments. - TOO_MANY_ADJUSTMENTS_IN_REQUEST = 11; - - // The conversion has been adjusted too many times. - TOO_MANY_ADJUSTMENTS = 12; - } - - -} diff --git a/google/ads/googleads/v7/errors/conversion_custom_variable_error.proto b/google/ads/googleads/v7/errors/conversion_custom_variable_error.proto deleted file mode 100644 index ec71a2689..000000000 --- a/google/ads/googleads/v7/errors/conversion_custom_variable_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionCustomVariableErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing conversion custom variable errors. - -// Container for enum describing possible conversion custom variable errors. -message ConversionCustomVariableErrorEnum { - // Enum describing possible conversion custom variable errors. - enum ConversionCustomVariableError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A conversion custom variable with the specified name already exists. - DUPLICATE_NAME = 2; - - // A conversion custom variable with the specified tag already exists. - DUPLICATE_TAG = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/conversion_upload_error.proto b/google/ads/googleads/v7/errors/conversion_upload_error.proto deleted file mode 100644 index e42b2a077..000000000 --- a/google/ads/googleads/v7/errors/conversion_upload_error.proto +++ /dev/null @@ -1,137 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionUploadErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing conversion upload errors. - -// Container for enum describing possible conversion upload errors. -message ConversionUploadErrorEnum { - // Enum describing possible conversion upload errors. - enum ConversionUploadError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The request contained more than 2000 conversions. - TOO_MANY_CONVERSIONS_IN_REQUEST = 2; - - // The specified gclid could not be decoded. - UNPARSEABLE_GCLID = 3; - - // The specified conversion_date_time is before the event time - // associated with the given gclid. - CONVERSION_PRECEDES_GCLID = 4; - - // The click associated with the given gclid is either too old to be - // imported or occurred outside of the click through lookback window for the - // specified conversion action. - EXPIRED_GCLID = 5; - - // The click associated with the given gclid occurred too recently. Please - // try uploading again after 6 hours have passed since the click occurred. - TOO_RECENT_GCLID = 6; - - // The click associated with the given gclid could not be found in the - // system. This can happen if Google Click IDs are collected for non Google - // Ads clicks. - GCLID_NOT_FOUND = 7; - - // The click associated with the given gclid is owned by a customer account - // that the uploading customer does not manage. - UNAUTHORIZED_CUSTOMER = 8; - - // No upload eligible conversion action that matches the provided - // information can be found for the customer. - INVALID_CONVERSION_ACTION = 9; - - // The specified conversion action was created too recently. - // Please try the upload again after 4-6 hours have passed since the - // conversion action was created. - TOO_RECENT_CONVERSION_ACTION = 10; - - // The click associated with the given gclid does not contain conversion - // tracking information. - CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME = 11; - - // The specified conversion action does not use an external attribution - // model, but external_attribution_data was set. - EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 12; - - // The specified conversion action uses an external attribution model, but - // external_attribution_data or one of its contained fields was not set. - // Both external_attribution_credit and external_attribution_model must be - // set for externally attributed conversion actions. - EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 13; - - // Order IDs are not supported for conversion actions which use an external - // attribution model. - ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 14; - - // A conversion with the same order id and conversion action combination - // already exists in our system. - ORDER_ID_ALREADY_IN_USE = 15; - - // The request contained two or more conversions with the same order id and - // conversion action combination. - DUPLICATE_ORDER_ID = 16; - - // The call occurred too recently. Please try uploading again after 12 hours - // have passed since the call occurred. - TOO_RECENT_CALL = 17; - - // The click that initiated the call is too old for this conversion to be - // imported. - EXPIRED_CALL = 18; - - // The call or the click leading to the call was not found. - CALL_NOT_FOUND = 19; - - // The specified conversion_date_time is before the call_start_date_time. - CONVERSION_PRECEDES_CALL = 20; - - // The click associated with the call does not contain conversion tracking - // information. - CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME = 21; - - // The caller’s phone number cannot be parsed. It should be formatted either - // as E.164 "+16502531234", International "+64 3-331 6005" or US national - // number "6502531234". - UNPARSEABLE_CALLERS_PHONE_NUMBER = 22; - - // The custom variable is not enabled. - CUSTOM_VARIABLE_NOT_ENABLED = 28; - - // The value of the custom variable contains private customer data, such - // as email addresses or phone numbers. - CUSTOM_VARIABLE_VALUE_CONTAINS_PII = 29; - } - - -} diff --git a/google/ads/googleads/v7/errors/country_code_error.proto b/google/ads/googleads/v7/errors/country_code_error.proto deleted file mode 100644 index 612739024..000000000 --- a/google/ads/googleads/v7/errors/country_code_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CountryCodeErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing country code errors. - -// Container for enum describing country code errors. -message CountryCodeErrorEnum { - // Enum describing country code errors. - enum CountryCodeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The country code is invalid. - INVALID_COUNTRY_CODE = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/criterion_error.proto b/google/ads/googleads/v7/errors/criterion_error.proto deleted file mode 100644 index 2f3ed4a38..000000000 --- a/google/ads/googleads/v7/errors/criterion_error.proto +++ /dev/null @@ -1,452 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CriterionErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing criterion errors. - -// Container for enum describing possible criterion errors. -message CriterionErrorEnum { - // Enum describing possible criterion errors. - enum CriterionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Concrete type of criterion is required for CREATE and UPDATE operations. - CONCRETE_TYPE_REQUIRED = 2; - - // The category requested for exclusion is invalid. - INVALID_EXCLUDED_CATEGORY = 3; - - // Invalid keyword criteria text. - INVALID_KEYWORD_TEXT = 4; - - // Keyword text should be less than 80 chars. - KEYWORD_TEXT_TOO_LONG = 5; - - // Keyword text has too many words. - KEYWORD_HAS_TOO_MANY_WORDS = 6; - - // Keyword text has invalid characters or symbols. - KEYWORD_HAS_INVALID_CHARS = 7; - - // Invalid placement URL. - INVALID_PLACEMENT_URL = 8; - - // Invalid user list criterion. - INVALID_USER_LIST = 9; - - // Invalid user interest criterion. - INVALID_USER_INTEREST = 10; - - // Placement URL has wrong format. - INVALID_FORMAT_FOR_PLACEMENT_URL = 11; - - // Placement URL is too long. - PLACEMENT_URL_IS_TOO_LONG = 12; - - // Indicates the URL contains an illegal character. - PLACEMENT_URL_HAS_ILLEGAL_CHAR = 13; - - // Indicates the URL contains multiple comma separated URLs. - PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE = 14; - - // Indicates the domain is blocked. - PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION = 15; - - // Invalid topic path. - INVALID_TOPIC_PATH = 16; - - // The YouTube Channel Id is invalid. - INVALID_YOUTUBE_CHANNEL_ID = 17; - - // The YouTube Video Id is invalid. - INVALID_YOUTUBE_VIDEO_ID = 18; - - // Indicates the placement is a YouTube vertical channel, which is no longer - // supported. - YOUTUBE_VERTICAL_CHANNEL_DEPRECATED = 19; - - // Indicates the placement is a YouTube demographic channel, which is no - // longer supported. - YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED = 20; - - // YouTube urls are not supported in Placement criterion. Use YouTubeChannel - // and YouTubeVideo criterion instead. - YOUTUBE_URL_UNSUPPORTED = 21; - - // Criteria type can not be excluded by the customer, like AOL account type - // cannot target site type criteria. - CANNOT_EXCLUDE_CRITERIA_TYPE = 22; - - // Criteria type can not be targeted. - CANNOT_ADD_CRITERIA_TYPE = 23; - - // Not allowed to exclude similar user list. - CANNOT_EXCLUDE_SIMILAR_USER_LIST = 26; - - // Not allowed to target a closed user list. - CANNOT_ADD_CLOSED_USER_LIST = 27; - - // Not allowed to add display only UserLists to search only campaigns. - CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS = 28; - - // Not allowed to add display only UserLists to search plus campaigns. - CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS = 29; - - // Not allowed to add display only UserLists to shopping campaigns. - CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS = 30; - - // Not allowed to add User interests to search only campaigns. - CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS = 31; - - // Not allowed to set bids for this criterion type in search campaigns - CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS = 32; - - // Final URLs, URL Templates and CustomParameters cannot be set for the - // criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and - // MobileAppCategory in search campaigns and shopping campaigns. - CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE = 33; - - // Invalid combined audience criterion. - INVALID_COMBINED_AUDIENCE = 122; - - // Invalid custom affinity criterion. - INVALID_CUSTOM_AFFINITY = 96; - - // Invalid custom intent criterion. - INVALID_CUSTOM_INTENT = 97; - - // Invalid custom audience criterion. - INVALID_CUSTOM_AUDIENCE = 121; - - // IP address is not valid. - INVALID_IP_ADDRESS = 34; - - // IP format is not valid. - INVALID_IP_FORMAT = 35; - - // Mobile application is not valid. - INVALID_MOBILE_APP = 36; - - // Mobile application category is not valid. - INVALID_MOBILE_APP_CATEGORY = 37; - - // The CriterionId does not exist or is of the incorrect type. - INVALID_CRITERION_ID = 38; - - // The Criterion is not allowed to be targeted. - CANNOT_TARGET_CRITERION = 39; - - // The criterion is not allowed to be targeted as it is deprecated. - CANNOT_TARGET_OBSOLETE_CRITERION = 40; - - // The CriterionId is not valid for the type. - CRITERION_ID_AND_TYPE_MISMATCH = 41; - - // Distance for the radius for the proximity criterion is invalid. - INVALID_PROXIMITY_RADIUS = 42; - - // Units for the distance for the radius for the proximity criterion is - // invalid. - INVALID_PROXIMITY_RADIUS_UNITS = 43; - - // Street address in the address is not valid. - INVALID_STREETADDRESS_LENGTH = 44; - - // City name in the address is not valid. - INVALID_CITYNAME_LENGTH = 45; - - // Region code in the address is not valid. - INVALID_REGIONCODE_LENGTH = 46; - - // Region name in the address is not valid. - INVALID_REGIONNAME_LENGTH = 47; - - // Postal code in the address is not valid. - INVALID_POSTALCODE_LENGTH = 48; - - // Country code in the address is not valid. - INVALID_COUNTRY_CODE = 49; - - // Latitude for the GeoPoint is not valid. - INVALID_LATITUDE = 50; - - // Longitude for the GeoPoint is not valid. - INVALID_LONGITUDE = 51; - - // The Proximity input is not valid. Both address and geoPoint cannot be - // null. - PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL = 52; - - // The Proximity address cannot be geocoded to a valid lat/long. - INVALID_PROXIMITY_ADDRESS = 53; - - // User domain name is not valid. - INVALID_USER_DOMAIN_NAME = 54; - - // Length of serialized criterion parameter exceeded size limit. - CRITERION_PARAMETER_TOO_LONG = 55; - - // Time interval in the AdSchedule overlaps with another AdSchedule. - AD_SCHEDULE_TIME_INTERVALS_OVERLAP = 56; - - // AdSchedule time interval cannot span multiple days. - AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS = 57; - - // AdSchedule time interval specified is invalid, endTime cannot be earlier - // than startTime. - AD_SCHEDULE_INVALID_TIME_INTERVAL = 58; - - // The number of AdSchedule entries in a day exceeds the limit. - AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT = 59; - - // CriteriaId does not match the interval of the AdSchedule specified. - AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS = 60; - - // Cannot set bid modifier for this criterion type. - CANNOT_BID_MODIFY_CRITERION_TYPE = 61; - - // Cannot bid modify criterion, since it is opted out of the campaign. - CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT = 62; - - // Cannot set bid modifier for a negative criterion. - CANNOT_BID_MODIFY_NEGATIVE_CRITERION = 63; - - // Bid Modifier already exists. Use SET operation to update. - BID_MODIFIER_ALREADY_EXISTS = 64; - - // Feed Id is not allowed in these Location Groups. - FEED_ID_NOT_ALLOWED = 65; - - // The account may not use the requested criteria type. For example, some - // accounts are restricted to keywords only. - ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE = 66; - - // The requested criteria type cannot be used with campaign or ad group - // bidding strategy. - CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY = 67; - - // The Criterion is not allowed to be excluded. - CANNOT_EXCLUDE_CRITERION = 68; - - // The criterion is not allowed to be removed. For example, we cannot remove - // any of the device criterion. - CANNOT_REMOVE_CRITERION = 69; - - // Bidding categories do not form a valid path in the Shopping bidding - // category taxonomy. - INVALID_PRODUCT_BIDDING_CATEGORY = 76; - - // ShoppingSetting must be added to the campaign before ProductScope - // criteria can be added. - MISSING_SHOPPING_SETTING = 77; - - // Matching function is invalid. - INVALID_MATCHING_FUNCTION = 78; - - // Filter parameters not allowed for location groups targeting. - LOCATION_FILTER_NOT_ALLOWED = 79; - - // Feed not found, or the feed is not an enabled location feed. - INVALID_FEED_FOR_LOCATION_FILTER = 98; - - // Given location filter parameter is invalid for location groups targeting. - LOCATION_FILTER_INVALID = 80; - - // Cannot set geo target constants and feed item sets at the same time. - CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS = 123; - - // The location group radius is in the range but not at the valid increment. - INVALID_LOCATION_GROUP_RADIUS = 124; - - // The location group radius unit is invalid. - INVALID_LOCATION_GROUP_RADIUS_UNIT = 125; - - // Criteria type cannot be associated with a campaign and its ad group(s) - // simultaneously. - CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP = 81; - - // Range represented by hotel length of stay's min nights and max nights - // overlaps with an existing criterion. - HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION = 82; - - // Range represented by hotel advance booking window's min days and max days - // overlaps with an existing criterion. - HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION = 83; - - // The field is not allowed to be set when the negative field is set to - // true, e.g. we don't allow bids in negative ad group or campaign criteria. - FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING = 84; - - // The combination of operand and operator in webpage condition is invalid. - INVALID_WEBPAGE_CONDITION = 85; - - // The URL of webpage condition is invalid. - INVALID_WEBPAGE_CONDITION_URL = 86; - - // The URL of webpage condition cannot be empty or contain white space. - WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY = 87; - - // The URL of webpage condition contains an unsupported protocol. - WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL = 88; - - // The URL of webpage condition cannot be an IP address. - WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS = 89; - - // The domain of the URL is not consistent with the domain in campaign - // setting. - WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING = 90; - - // The URL of webpage condition cannot be a public suffix itself. - WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX = 91; - - // The URL of webpage condition has an invalid public suffix. - WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX = 92; - - // Value track parameter is not supported in webpage condition URL. - WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED = 93; - - // Only one URL-EQUALS webpage condition is allowed in a webpage - // criterion and it cannot be combined with other conditions. - WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION = 94; - - // A webpage criterion cannot be added to a non-DSA ad group. - WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP = 95; - - // Cannot add positive user list criteria in Smart Display campaigns. - CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS = 99; - - // Cannot add positive placement criterion types in search campaigns. - CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS = 126; - - // Listing scope contains too many dimension types. - LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES = 100; - - // Listing scope has too many IN operators. - LISTING_SCOPE_TOO_MANY_IN_OPERATORS = 101; - - // Listing scope contains IN operator on an unsupported dimension type. - LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED = 102; - - // There are dimensions with duplicate dimension type. - DUPLICATE_LISTING_DIMENSION_TYPE = 103; - - // There are dimensions with duplicate dimension value. - DUPLICATE_LISTING_DIMENSION_VALUE = 104; - - // Listing group SUBDIVISION nodes cannot have bids. - CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION = 105; - - // Ad group is invalid due to the listing groups it contains. - INVALID_LISTING_GROUP_HIERARCHY = 106; - - // Listing group unit cannot have children. - LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN = 107; - - // Subdivided listing groups must have an "others" case. - LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE = 108; - - // Dimension type of listing group must be the same as that of its siblings. - LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS = 109; - - // Listing group cannot be added to the ad group because it already exists. - LISTING_GROUP_ALREADY_EXISTS = 110; - - // Listing group referenced in the operation was not found in the ad group. - LISTING_GROUP_DOES_NOT_EXIST = 111; - - // Recursive removal failed because listing group subdivision is being - // created or modified in this request. - LISTING_GROUP_CANNOT_BE_REMOVED = 112; - - // Listing group type is not allowed for specified ad group criterion type. - INVALID_LISTING_GROUP_TYPE = 113; - - // Listing group in an ADD operation specifies a non temporary criterion id. - LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID = 114; - - // The combined length of dimension values of the Listing scope criterion - // is too long. - LISTING_SCOPE_TOO_LONG = 115; - - // Listing scope contains too many dimensions. - LISTING_SCOPE_TOO_MANY_DIMENSIONS = 116; - - // The combined length of dimension values of the Listing group criterion is - // too long. - LISTING_GROUP_TOO_LONG = 117; - - // Listing group tree is too deep. - LISTING_GROUP_TREE_TOO_DEEP = 118; - - // Listing dimension is invalid (e.g. dimension contains illegal value, - // dimension type is represented with wrong class, etc). Listing dimension - // value can not contain "==" or "&+". - INVALID_LISTING_DIMENSION = 119; - - // Listing dimension type is either invalid for campaigns of this type or - // cannot be used in the current context. BIDDING_CATEGORY_Lx and - // PRODUCT_TYPE_Lx dimensions must be used in ascending order of their - // levels: L1, L2, L3, L4, L5... The levels must be specified sequentially - // and start from L1. Furthermore, an "others" Listing group cannot be - // subdivided with a dimension of the same type but of a higher level - // ("others" BIDDING_CATEGORY_L3 can be subdivided with BRAND but not with - // BIDDING_CATEGORY_L4). - INVALID_LISTING_DIMENSION_TYPE = 120; - - // Customer is not on allowlist for composite audience in display campaigns. - ADVERTISER_NOT_ON_ALLOWLIST_FOR_COMBINED_AUDIENCE_ON_DISPLAY = 127; - - // Cannot target on a removed combined audience. - CANNOT_TARGET_REMOVED_COMBINED_AUDIENCE = 128; - - // Combined audience ID is invalid. - INVALID_COMBINED_AUDIENCE_ID = 129; - - // Can not target removed combined audience. - CANNOT_TARGET_REMOVED_CUSTOM_AUDIENCE = 130; - - // Range represented by hotel check-in date's start date and end date - // overlaps with an existing criterion. - HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION = 131; - - // Start date is earlier than earliest allowed value of yesterday UTC. - HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY = 132; - - // End date later is than latest allowed day of 330 days in the future UTC. - HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE = 133; - - // Start date is after end date. - HOTEL_CHECK_IN_DATE_RANGE_REVERSED = 134; - } - - -} diff --git a/google/ads/googleads/v7/errors/currency_code_error.proto b/google/ads/googleads/v7/errors/currency_code_error.proto deleted file mode 100644 index 8f082acd4..000000000 --- a/google/ads/googleads/v7/errors/currency_code_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CurrencyCodeErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing currency code errors. - -// Container for enum describing possible currency code errors. -message CurrencyCodeErrorEnum { - // Enum describing possible currency code errors. - enum CurrencyCodeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The currency code is not supported. - UNSUPPORTED = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/custom_audience_error.proto b/google/ads/googleads/v7/errors/custom_audience_error.proto deleted file mode 100644 index 3c637be88..000000000 --- a/google/ads/googleads/v7/errors/custom_audience_error.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing custom audience errors. - -// Container for enum describing possible custom audience errors. -message CustomAudienceErrorEnum { - // Enum describing possible custom audience errors. - enum CustomAudienceError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // New name in the custom audience is duplicated ignoring cases. - NAME_ALREADY_USED = 2; - - // Cannot remove a custom audience while it's still being used as targeting. - CANNOT_REMOVE_WHILE_IN_USE = 3; - - // Cannot update or remove a custom audience that is already removed. - RESOURCE_ALREADY_REMOVED = 4; - - // The pair of [type, value] already exists in members. - MEMBER_TYPE_AND_PARAMETER_ALREADY_EXISTED = 5; - - // Member type is invalid. - INVALID_MEMBER_TYPE = 6; - - // Member type does not have associated value. - MEMBER_TYPE_AND_VALUE_DOES_NOT_MATCH = 7; - - // Custom audience contains a member that violates policy. - POLICY_VIOLATION = 8; - - // Change in custom audience type is not allowed. - INVALID_TYPE_CHANGE = 9; - } - - -} diff --git a/google/ads/googleads/v7/errors/custom_interest_error.proto b/google/ads/googleads/v7/errors/custom_interest_error.proto deleted file mode 100644 index c394fad66..000000000 --- a/google/ads/googleads/v7/errors/custom_interest_error.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing custom interest errors. - -// Container for enum describing possible custom interest errors. -message CustomInterestErrorEnum { - // Enum describing possible custom interest errors. - enum CustomInterestError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Duplicate custom interest name ignoring case. - NAME_ALREADY_USED = 2; - - // In the remove custom interest member operation, both member ID and - // pair [type, parameter] are not present. - CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE = 3; - - // The pair of [type, parameter] does not exist. - TYPE_AND_PARAMETER_NOT_FOUND = 4; - - // The pair of [type, parameter] already exists. - TYPE_AND_PARAMETER_ALREADY_EXISTED = 5; - - // Unsupported custom interest member type. - INVALID_CUSTOM_INTEREST_MEMBER_TYPE = 6; - - // Cannot remove a custom interest while it's still being targeted. - CANNOT_REMOVE_WHILE_IN_USE = 7; - - // Cannot mutate custom interest type. - CANNOT_CHANGE_TYPE = 8; - } - - -} diff --git a/google/ads/googleads/v7/errors/customer_client_link_error.proto b/google/ads/googleads/v7/errors/customer_client_link_error.proto deleted file mode 100644 index e7842fadf..000000000 --- a/google/ads/googleads/v7/errors/customer_client_link_error.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientLinkErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing CustomerClientLink errors. - -// Container for enum describing possible CustomeClientLink errors. -message CustomerClientLinkErrorEnum { - // Enum describing possible CustomerClientLink errors. - enum CustomerClientLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Trying to manage a client that already in being managed by customer. - CLIENT_ALREADY_INVITED_BY_THIS_MANAGER = 2; - - // Already managed by some other manager in the hierarchy. - CLIENT_ALREADY_MANAGED_IN_HIERARCHY = 3; - - // Attempt to create a cycle in the hierarchy. - CYCLIC_LINK_NOT_ALLOWED = 4; - - // Managed accounts has the maximum number of linked accounts. - CUSTOMER_HAS_TOO_MANY_ACCOUNTS = 5; - - // Invitor has the maximum pending invitations. - CLIENT_HAS_TOO_MANY_INVITATIONS = 6; - - // Attempt to change hidden status of a link that is not active. - CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS = 7; - - // Parent manager account has the maximum number of linked accounts. - CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER = 8; - - // Client has too many managers. - CLIENT_HAS_TOO_MANY_MANAGERS = 9; - } - - -} diff --git a/google/ads/googleads/v7/errors/customer_error.proto b/google/ads/googleads/v7/errors/customer_error.proto deleted file mode 100644 index bff554d52..000000000 --- a/google/ads/googleads/v7/errors/customer_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Container for enum describing possible customer errors. -message CustomerErrorEnum { - // Set of errors that are related to requests dealing with Customer. - enum CustomerError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Customer status is not allowed to be changed from DRAFT and CLOSED. - // Currency code and at least one of country code and time zone needs to be - // set when status is changed to ENABLED. - STATUS_CHANGE_DISALLOWED = 2; - - // CustomerService cannot get a customer that has not been fully set up. - ACCOUNT_NOT_SET_UP = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/customer_feed_error.proto b/google/ads/googleads/v7/errors/customer_feed_error.proto deleted file mode 100644 index 807755cfa..000000000 --- a/google/ads/googleads/v7/errors/customer_feed_error.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerFeedErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing customer feed errors. - -// Container for enum describing possible customer feed errors. -message CustomerFeedErrorEnum { - // Enum describing possible customer feed errors. - enum CustomerFeedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An active feed already exists for this customer and place holder type. - FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; - - // The specified feed is removed. - CANNOT_CREATE_FOR_REMOVED_FEED = 3; - - // The CustomerFeed already exists. Update should be used to modify the - // existing CustomerFeed. - CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED = 4; - - // Cannot update removed customer feed. - CANNOT_MODIFY_REMOVED_CUSTOMER_FEED = 5; - - // Invalid placeholder type. - INVALID_PLACEHOLDER_TYPE = 6; - - // Feed mapping for this placeholder type does not exist. - MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7; - - // Placeholder not allowed at the account level. - PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED = 8; - } - - -} diff --git a/google/ads/googleads/v7/errors/customer_manager_link_error.proto b/google/ads/googleads/v7/errors/customer_manager_link_error.proto deleted file mode 100644 index 411a7ad69..000000000 --- a/google/ads/googleads/v7/errors/customer_manager_link_error.proto +++ /dev/null @@ -1,75 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerManagerLinkErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing CustomerManagerLink errors. - -// Container for enum describing possible CustomerManagerLink errors. -message CustomerManagerLinkErrorEnum { - // Enum describing possible CustomerManagerLink errors. - enum CustomerManagerLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // No pending invitation. - NO_PENDING_INVITE = 2; - - // Attempt to operate on the same client more than once in the same call. - SAME_CLIENT_MORE_THAN_ONCE_PER_CALL = 3; - - // Manager account has the maximum number of linked accounts. - MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS = 4; - - // If no active user on account it cannot be unlinked from its manager. - CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER = 5; - - // Account should have at least one active owner on it before being - // unlinked. - CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER = 6; - - // Only account owners may change their permission role. - CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER = 7; - - // When a client's link to its manager is not active, the link role cannot - // be changed. - CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT = 8; - - // Attempt to link a child to a parent that contains or will contain - // duplicate children. - DUPLICATE_CHILD_FOUND = 9; - - // The authorized customer is a test account. It can add no more than the - // allowed number of accounts - TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS = 10; - } - - -} diff --git a/google/ads/googleads/v7/errors/customer_user_access_error.proto b/google/ads/googleads/v7/errors/customer_user_access_error.proto deleted file mode 100644 index 89b670027..000000000 --- a/google/ads/googleads/v7/errors/customer_user_access_error.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing CustomerUserAccess errors. - -// Container for enum describing possible CustomerUserAccess errors. -message CustomerUserAccessErrorEnum { - // Enum describing possible customer user access errors. - enum CustomerUserAccessError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // There is no user associated with the user id specified. - INVALID_USER_ID = 2; - - // Unable to remove the access between the user and customer. - REMOVAL_DISALLOWED = 3; - - // Unable to add or update the access role as specified. - DISALLOWED_ACCESS_ROLE = 4; - - // The user can't remove itself from an active serving customer if it's the - // last admin user and the customer doesn't have any owner manager - LAST_ADMIN_USER_OF_SERVING_CUSTOMER = 5; - - // Last admin user cannot be removed from a manager. - LAST_ADMIN_USER_OF_MANAGER = 6; - } - - -} diff --git a/google/ads/googleads/v7/errors/database_error.proto b/google/ads/googleads/v7/errors/database_error.proto deleted file mode 100644 index e09de53a5..000000000 --- a/google/ads/googleads/v7/errors/database_error.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "DatabaseErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing database errors. - -// Container for enum describing possible database errors. -message DatabaseErrorEnum { - // Enum describing possible database errors. - enum DatabaseError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Multiple requests were attempting to modify the same resource at once. - // Please retry the request. - CONCURRENT_MODIFICATION = 2; - - // The request conflicted with existing data. This error will usually be - // replaced with a more specific error if the request is retried. - DATA_CONSTRAINT_VIOLATION = 3; - - // The data written is too large. Please split the request into smaller - // requests. - REQUEST_TOO_LARGE = 4; - } - - -} diff --git a/google/ads/googleads/v7/errors/date_error.proto b/google/ads/googleads/v7/errors/date_error.proto deleted file mode 100644 index da54f83be..000000000 --- a/google/ads/googleads/v7/errors/date_error.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "DateErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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/google/ads/googleads/v7/errors/date_range_error.proto b/google/ads/googleads/v7/errors/date_range_error.proto deleted file mode 100644 index b263df903..000000000 --- a/google/ads/googleads/v7/errors/date_range_error.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "DateRangeErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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/google/ads/googleads/v7/errors/distinct_error.proto b/google/ads/googleads/v7/errors/distinct_error.proto deleted file mode 100644 index b55614115..000000000 --- a/google/ads/googleads/v7/errors/distinct_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "DistinctErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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/google/ads/googleads/v7/errors/enum_error.proto b/google/ads/googleads/v7/errors/enum_error.proto deleted file mode 100644 index 5282c6232..000000000 --- a/google/ads/googleads/v7/errors/enum_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "EnumErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing enum errors. - -// Container for enum describing possible enum errors. -message EnumErrorEnum { - // Enum describing possible enum errors. - enum EnumError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The enum value is not permitted. - ENUM_VALUE_NOT_PERMITTED = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/errors.proto b/google/ads/googleads/v7/errors/errors.proto deleted file mode 100644 index e28abcc58..000000000 --- a/google/ads/googleads/v7/errors/errors.proto +++ /dev/null @@ -1,656 +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 google.ads.googleads.v7.errors; - -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/common/value.proto"; -import "google/ads/googleads/v7/enums/resource_limit_type.proto"; -import "google/ads/googleads/v7/errors/access_invitation_error.proto"; -import "google/ads/googleads/v7/errors/account_budget_proposal_error.proto"; -import "google/ads/googleads/v7/errors/account_link_error.proto"; -import "google/ads/googleads/v7/errors/ad_customizer_error.proto"; -import "google/ads/googleads/v7/errors/ad_error.proto"; -import "google/ads/googleads/v7/errors/ad_group_ad_error.proto"; -import "google/ads/googleads/v7/errors/ad_group_bid_modifier_error.proto"; -import "google/ads/googleads/v7/errors/ad_group_criterion_error.proto"; -import "google/ads/googleads/v7/errors/ad_group_error.proto"; -import "google/ads/googleads/v7/errors/ad_group_feed_error.proto"; -import "google/ads/googleads/v7/errors/ad_parameter_error.proto"; -import "google/ads/googleads/v7/errors/ad_sharing_error.proto"; -import "google/ads/googleads/v7/errors/adx_error.proto"; -import "google/ads/googleads/v7/errors/asset_error.proto"; -import "google/ads/googleads/v7/errors/asset_link_error.proto"; -import "google/ads/googleads/v7/errors/authentication_error.proto"; -import "google/ads/googleads/v7/errors/authorization_error.proto"; -import "google/ads/googleads/v7/errors/batch_job_error.proto"; -import "google/ads/googleads/v7/errors/bidding_error.proto"; -import "google/ads/googleads/v7/errors/bidding_strategy_error.proto"; -import "google/ads/googleads/v7/errors/billing_setup_error.proto"; -import "google/ads/googleads/v7/errors/campaign_budget_error.proto"; -import "google/ads/googleads/v7/errors/campaign_criterion_error.proto"; -import "google/ads/googleads/v7/errors/campaign_draft_error.proto"; -import "google/ads/googleads/v7/errors/campaign_error.proto"; -import "google/ads/googleads/v7/errors/campaign_experiment_error.proto"; -import "google/ads/googleads/v7/errors/campaign_feed_error.proto"; -import "google/ads/googleads/v7/errors/campaign_shared_set_error.proto"; -import "google/ads/googleads/v7/errors/change_event_error.proto"; -import "google/ads/googleads/v7/errors/change_status_error.proto"; -import "google/ads/googleads/v7/errors/collection_size_error.proto"; -import "google/ads/googleads/v7/errors/context_error.proto"; -import "google/ads/googleads/v7/errors/conversion_action_error.proto"; -import "google/ads/googleads/v7/errors/conversion_adjustment_upload_error.proto"; -import "google/ads/googleads/v7/errors/conversion_custom_variable_error.proto"; -import "google/ads/googleads/v7/errors/conversion_upload_error.proto"; -import "google/ads/googleads/v7/errors/country_code_error.proto"; -import "google/ads/googleads/v7/errors/criterion_error.proto"; -import "google/ads/googleads/v7/errors/currency_code_error.proto"; -import "google/ads/googleads/v7/errors/custom_audience_error.proto"; -import "google/ads/googleads/v7/errors/custom_interest_error.proto"; -import "google/ads/googleads/v7/errors/customer_client_link_error.proto"; -import "google/ads/googleads/v7/errors/customer_error.proto"; -import "google/ads/googleads/v7/errors/customer_feed_error.proto"; -import "google/ads/googleads/v7/errors/customer_manager_link_error.proto"; -import "google/ads/googleads/v7/errors/customer_user_access_error.proto"; -import "google/ads/googleads/v7/errors/database_error.proto"; -import "google/ads/googleads/v7/errors/date_error.proto"; -import "google/ads/googleads/v7/errors/date_range_error.proto"; -import "google/ads/googleads/v7/errors/distinct_error.proto"; -import "google/ads/googleads/v7/errors/enum_error.proto"; -import "google/ads/googleads/v7/errors/extension_feed_item_error.proto"; -import "google/ads/googleads/v7/errors/extension_setting_error.proto"; -import "google/ads/googleads/v7/errors/feed_attribute_reference_error.proto"; -import "google/ads/googleads/v7/errors/feed_error.proto"; -import "google/ads/googleads/v7/errors/feed_item_error.proto"; -import "google/ads/googleads/v7/errors/feed_item_set_error.proto"; -import "google/ads/googleads/v7/errors/feed_item_set_link_error.proto"; -import "google/ads/googleads/v7/errors/feed_item_target_error.proto"; -import "google/ads/googleads/v7/errors/feed_item_validation_error.proto"; -import "google/ads/googleads/v7/errors/feed_mapping_error.proto"; -import "google/ads/googleads/v7/errors/field_error.proto"; -import "google/ads/googleads/v7/errors/field_mask_error.proto"; -import "google/ads/googleads/v7/errors/function_error.proto"; -import "google/ads/googleads/v7/errors/function_parsing_error.proto"; -import "google/ads/googleads/v7/errors/geo_target_constant_suggestion_error.proto"; -import "google/ads/googleads/v7/errors/header_error.proto"; -import "google/ads/googleads/v7/errors/id_error.proto"; -import "google/ads/googleads/v7/errors/image_error.proto"; -import "google/ads/googleads/v7/errors/internal_error.proto"; -import "google/ads/googleads/v7/errors/invoice_error.proto"; -import "google/ads/googleads/v7/errors/keyword_plan_ad_group_error.proto"; -import "google/ads/googleads/v7/errors/keyword_plan_ad_group_keyword_error.proto"; -import "google/ads/googleads/v7/errors/keyword_plan_campaign_error.proto"; -import "google/ads/googleads/v7/errors/keyword_plan_campaign_keyword_error.proto"; -import "google/ads/googleads/v7/errors/keyword_plan_error.proto"; -import "google/ads/googleads/v7/errors/keyword_plan_idea_error.proto"; -import "google/ads/googleads/v7/errors/label_error.proto"; -import "google/ads/googleads/v7/errors/language_code_error.proto"; -import "google/ads/googleads/v7/errors/list_operation_error.proto"; -import "google/ads/googleads/v7/errors/manager_link_error.proto"; -import "google/ads/googleads/v7/errors/media_bundle_error.proto"; -import "google/ads/googleads/v7/errors/media_file_error.proto"; -import "google/ads/googleads/v7/errors/media_upload_error.proto"; -import "google/ads/googleads/v7/errors/multiplier_error.proto"; -import "google/ads/googleads/v7/errors/mutate_error.proto"; -import "google/ads/googleads/v7/errors/new_resource_creation_error.proto"; -import "google/ads/googleads/v7/errors/not_allowlisted_error.proto"; -import "google/ads/googleads/v7/errors/not_empty_error.proto"; -import "google/ads/googleads/v7/errors/null_error.proto"; -import "google/ads/googleads/v7/errors/offline_user_data_job_error.proto"; -import "google/ads/googleads/v7/errors/operation_access_denied_error.proto"; -import "google/ads/googleads/v7/errors/operator_error.proto"; -import "google/ads/googleads/v7/errors/partial_failure_error.proto"; -import "google/ads/googleads/v7/errors/payments_account_error.proto"; -import "google/ads/googleads/v7/errors/policy_finding_error.proto"; -import "google/ads/googleads/v7/errors/policy_validation_parameter_error.proto"; -import "google/ads/googleads/v7/errors/policy_violation_error.proto"; -import "google/ads/googleads/v7/errors/query_error.proto"; -import "google/ads/googleads/v7/errors/quota_error.proto"; -import "google/ads/googleads/v7/errors/range_error.proto"; -import "google/ads/googleads/v7/errors/reach_plan_error.proto"; -import "google/ads/googleads/v7/errors/recommendation_error.proto"; -import "google/ads/googleads/v7/errors/region_code_error.proto"; -import "google/ads/googleads/v7/errors/request_error.proto"; -import "google/ads/googleads/v7/errors/resource_access_denied_error.proto"; -import "google/ads/googleads/v7/errors/resource_count_limit_exceeded_error.proto"; -import "google/ads/googleads/v7/errors/setting_error.proto"; -import "google/ads/googleads/v7/errors/shared_criterion_error.proto"; -import "google/ads/googleads/v7/errors/shared_set_error.proto"; -import "google/ads/googleads/v7/errors/size_limit_error.proto"; -import "google/ads/googleads/v7/errors/string_format_error.proto"; -import "google/ads/googleads/v7/errors/string_length_error.proto"; -import "google/ads/googleads/v7/errors/third_party_app_analytics_link_error.proto"; -import "google/ads/googleads/v7/errors/time_zone_error.proto"; -import "google/ads/googleads/v7/errors/url_field_error.proto"; -import "google/ads/googleads/v7/errors/user_data_error.proto"; -import "google/ads/googleads/v7/errors/user_list_error.proto"; -import "google/ads/googleads/v7/errors/youtube_video_registration_error.proto"; -import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ErrorsProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing the common error protos - -// Describes how a GoogleAds API call failed. It's returned inside -// google.rpc.Status.details when a call fails. -message GoogleAdsFailure { - // The list of errors that occurred. - repeated GoogleAdsError errors = 1; - - // The unique ID of the request that is used for debugging purposes. - string request_id = 2; -} - -// GoogleAds-specific error. -message GoogleAdsError { - // 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.googleads.v7.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 a Bidding Strategy mutate. - BiddingStrategyErrorEnum.BiddingStrategyError bidding_strategy_error = 2; - - // An error with a URL field mutate. - UrlFieldErrorEnum.UrlFieldError url_field_error = 3; - - // An error with a list operation. - ListOperationErrorEnum.ListOperationError list_operation_error = 4; - - // An error with an AWQL query - QueryErrorEnum.QueryError query_error = 5; - - // An error with a mutate - MutateErrorEnum.MutateError mutate_error = 7; - - // An error with a field mask - FieldMaskErrorEnum.FieldMaskError field_mask_error = 8; - - // 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 amonut of quota remaining. - QuotaErrorEnum.QuotaError quota_error = 11; - - // An error with an Ad Group Ad mutate. - AdErrorEnum.AdError ad_error = 12; - - // An error with an Ad Group mutate. - AdGroupErrorEnum.AdGroupError ad_group_error = 13; - - // An error with a Campaign Budget mutate. - CampaignBudgetErrorEnum.CampaignBudgetError campaign_budget_error = 14; - - // An error with a Campaign mutate. - CampaignErrorEnum.CampaignError campaign_error = 15; - - // Indicates failure to properly authenticate user. - AuthenticationErrorEnum.AuthenticationError authentication_error = 17; - - // Indicates failure to properly authenticate user. - AdGroupCriterionErrorEnum.AdGroupCriterionError ad_group_criterion_error = 18; - - // The reasons for the ad customizer error - AdCustomizerErrorEnum.AdCustomizerError ad_customizer_error = 19; - - // The reasons for the ad group ad error - AdGroupAdErrorEnum.AdGroupAdError ad_group_ad_error = 21; - - // The reasons for the ad sharing error - AdSharingErrorEnum.AdSharingError ad_sharing_error = 24; - - // The reasons for the adx error - AdxErrorEnum.AdxError adx_error = 25; - - // The reasons for the asset error - AssetErrorEnum.AssetError asset_error = 107; - - // The reasons for the bidding errors - BiddingErrorEnum.BiddingError bidding_error = 26; - - // The reasons for the campaign criterion error - CampaignCriterionErrorEnum.CampaignCriterionError campaign_criterion_error = 29; - - // The reasons for the collection size error - CollectionSizeErrorEnum.CollectionSizeError collection_size_error = 31; - - // The reasons for the country code error - CountryCodeErrorEnum.CountryCodeError country_code_error = 109; - - // The reasons for the criterion error - CriterionErrorEnum.CriterionError criterion_error = 32; - - // The reasons for the customer error - CustomerErrorEnum.CustomerError customer_error = 90; - - // 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 feed attribute reference error - FeedAttributeReferenceErrorEnum.FeedAttributeReferenceError feed_attribute_reference_error = 36; - - // The reasons for the function error - FunctionErrorEnum.FunctionError function_error = 37; - - // The reasons for the function parsing error - FunctionParsingErrorEnum.FunctionParsingError function_parsing_error = 38; - - // The reasons for the id error - IdErrorEnum.IdError id_error = 39; - - // The reasons for the image error - ImageErrorEnum.ImageError image_error = 40; - - // The reasons for the language code error - LanguageCodeErrorEnum.LanguageCodeError language_code_error = 110; - - // The reasons for the media bundle error - MediaBundleErrorEnum.MediaBundleError media_bundle_error = 42; - - // The reasons for media uploading errors. - MediaUploadErrorEnum.MediaUploadError media_upload_error = 116; - - // The reasons for the media file error - MediaFileErrorEnum.MediaFileError media_file_error = 86; - - // The reasons for the multiplier error - MultiplierErrorEnum.MultiplierError multiplier_error = 44; - - // The reasons for the new resource creation error - NewResourceCreationErrorEnum.NewResourceCreationError new_resource_creation_error = 45; - - // The reasons for the not empty error - NotEmptyErrorEnum.NotEmptyError not_empty_error = 46; - - // The reasons for the null error - NullErrorEnum.NullError null_error = 47; - - // The reasons for the operator error - OperatorErrorEnum.OperatorError operator_error = 48; - - // The reasons for the range error - RangeErrorEnum.RangeError range_error = 49; - - // The reasons for error in applying a recommendation - RecommendationErrorEnum.RecommendationError recommendation_error = 58; - - // The reasons for the region code error - RegionCodeErrorEnum.RegionCodeError region_code_error = 51; - - // The reasons for the setting error - SettingErrorEnum.SettingError setting_error = 52; - - // The reasons for the string format error - StringFormatErrorEnum.StringFormatError string_format_error = 53; - - // The reasons for the string length error - StringLengthErrorEnum.StringLengthError string_length_error = 54; - - // The reasons for the operation access denied error - OperationAccessDeniedErrorEnum.OperationAccessDeniedError operation_access_denied_error = 55; - - // The reasons for the resource access denied error - ResourceAccessDeniedErrorEnum.ResourceAccessDeniedError resource_access_denied_error = 56; - - // The reasons for the resource count limit exceeded error - ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededError resource_count_limit_exceeded_error = 57; - - // The reasons for YouTube video registration errors. - YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationError youtube_video_registration_error = 117; - - // The reasons for the ad group bid modifier error - AdGroupBidModifierErrorEnum.AdGroupBidModifierError ad_group_bid_modifier_error = 59; - - // The reasons for the context error - ContextErrorEnum.ContextError context_error = 60; - - // The reasons for the field error - FieldErrorEnum.FieldError field_error = 61; - - // The reasons for the shared set error - SharedSetErrorEnum.SharedSetError shared_set_error = 62; - - // The reasons for the shared criterion error - SharedCriterionErrorEnum.SharedCriterionError shared_criterion_error = 63; - - // The reasons for the campaign shared set error - CampaignSharedSetErrorEnum.CampaignSharedSetError campaign_shared_set_error = 64; - - // The reasons for the conversion action error - ConversionActionErrorEnum.ConversionActionError conversion_action_error = 65; - - // The reasons for the conversion adjustment upload error - ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError conversion_adjustment_upload_error = 115; - - // The reasons for the conversion custom variable error - ConversionCustomVariableErrorEnum.ConversionCustomVariableError conversion_custom_variable_error = 143; - - // The reasons for the conversion upload error - ConversionUploadErrorEnum.ConversionUploadError conversion_upload_error = 111; - - // The reasons for the header error. - HeaderErrorEnum.HeaderError header_error = 66; - - // The reasons for the database error. - DatabaseErrorEnum.DatabaseError database_error = 67; - - // The reasons for the policy finding error. - PolicyFindingErrorEnum.PolicyFindingError policy_finding_error = 68; - - // The reason for enum error. - EnumErrorEnum.EnumError enum_error = 70; - - // The reason for keyword plan error. - KeywordPlanErrorEnum.KeywordPlanError keyword_plan_error = 71; - - // The reason for keyword plan campaign error. - KeywordPlanCampaignErrorEnum.KeywordPlanCampaignError keyword_plan_campaign_error = 72; - - // The reason for keyword plan campaign keyword error. - KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordError keyword_plan_campaign_keyword_error = 132; - - // The reason for keyword plan ad group error. - KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupError keyword_plan_ad_group_error = 74; - - // The reason for keyword plan ad group keyword error. - KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordError keyword_plan_ad_group_keyword_error = 133; - - // The reason for keyword idea error. - KeywordPlanIdeaErrorEnum.KeywordPlanIdeaError keyword_plan_idea_error = 76; - - // The reasons for account budget proposal errors. - AccountBudgetProposalErrorEnum.AccountBudgetProposalError account_budget_proposal_error = 77; - - // The reasons for the user list error - UserListErrorEnum.UserListError user_list_error = 78; - - // The reasons for the change event error - ChangeEventErrorEnum.ChangeEventError change_event_error = 136; - - // The reasons for the change status error - ChangeStatusErrorEnum.ChangeStatusError change_status_error = 79; - - // The reasons for the feed error - FeedErrorEnum.FeedError feed_error = 80; - - // The reasons for the geo target constant suggestion error. - GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionError geo_target_constant_suggestion_error = 81; - - // The reasons for the campaign draft error - CampaignDraftErrorEnum.CampaignDraftError campaign_draft_error = 82; - - // The reasons for the feed item error - FeedItemErrorEnum.FeedItemError feed_item_error = 83; - - // The reason for the label error. - LabelErrorEnum.LabelError label_error = 84; - - // The reasons for the billing setup error - BillingSetupErrorEnum.BillingSetupError billing_setup_error = 87; - - // The reasons for the customer client link error - CustomerClientLinkErrorEnum.CustomerClientLinkError customer_client_link_error = 88; - - // The reasons for the customer manager link error - CustomerManagerLinkErrorEnum.CustomerManagerLinkError customer_manager_link_error = 91; - - // The reasons for the feed mapping error - FeedMappingErrorEnum.FeedMappingError feed_mapping_error = 92; - - // The reasons for the customer feed error - CustomerFeedErrorEnum.CustomerFeedError customer_feed_error = 93; - - // The reasons for the ad group feed error - AdGroupFeedErrorEnum.AdGroupFeedError ad_group_feed_error = 94; - - // The reasons for the campaign feed error - CampaignFeedErrorEnum.CampaignFeedError campaign_feed_error = 96; - - // The reasons for the custom interest error - CustomInterestErrorEnum.CustomInterestError custom_interest_error = 97; - - // The reasons for the campaign experiment error - CampaignExperimentErrorEnum.CampaignExperimentError campaign_experiment_error = 98; - - // The reasons for the extension feed item error - ExtensionFeedItemErrorEnum.ExtensionFeedItemError extension_feed_item_error = 100; - - // The reasons for the ad parameter error - AdParameterErrorEnum.AdParameterError ad_parameter_error = 101; - - // The reasons for the feed item validation error - FeedItemValidationErrorEnum.FeedItemValidationError feed_item_validation_error = 102; - - // The reasons for the extension setting error - ExtensionSettingErrorEnum.ExtensionSettingError extension_setting_error = 103; - - // The reasons for the feed item set error - FeedItemSetErrorEnum.FeedItemSetError feed_item_set_error = 140; - - // The reasons for the feed item set link error - FeedItemSetLinkErrorEnum.FeedItemSetLinkError feed_item_set_link_error = 141; - - // The reasons for the feed item target error - FeedItemTargetErrorEnum.FeedItemTargetError feed_item_target_error = 104; - - // The reasons for the policy violation error - PolicyViolationErrorEnum.PolicyViolationError policy_violation_error = 105; - - // The reasons for the mutate job error - PartialFailureErrorEnum.PartialFailureError partial_failure_error = 112; - - // The reasons for the policy validation parameter error - PolicyValidationParameterErrorEnum.PolicyValidationParameterError policy_validation_parameter_error = 114; - - // The reasons for the size limit error - SizeLimitErrorEnum.SizeLimitError size_limit_error = 118; - - // The reasons for the offline user data job error. - OfflineUserDataJobErrorEnum.OfflineUserDataJobError offline_user_data_job_error = 119; - - // The reasons for the not allowlisted error - NotAllowlistedErrorEnum.NotAllowlistedError not_allowlisted_error = 137; - - // The reasons for the manager link error - ManagerLinkErrorEnum.ManagerLinkError manager_link_error = 121; - - // The reasons for the currency code error - CurrencyCodeErrorEnum.CurrencyCodeError currency_code_error = 122; - - // The reasons for the access invitation error - AccessInvitationErrorEnum.AccessInvitationError access_invitation_error = 124; - - // The reasons for the reach plan error - ReachPlanErrorEnum.ReachPlanError reach_plan_error = 125; - - // The reasons for the invoice error - InvoiceErrorEnum.InvoiceError invoice_error = 126; - - // The reasons for errors in payments accounts service - PaymentsAccountErrorEnum.PaymentsAccountError payments_account_error = 127; - - // The reasons for the time zone error - TimeZoneErrorEnum.TimeZoneError time_zone_error = 128; - - // The reasons for the asset link error - AssetLinkErrorEnum.AssetLinkError asset_link_error = 129; - - // The reasons for the user data error. - UserDataErrorEnum.UserDataError user_data_error = 130; - - // The reasons for the batch job error - BatchJobErrorEnum.BatchJobError batch_job_error = 131; - - // The reasons for the account link status change error - AccountLinkErrorEnum.AccountLinkError account_link_error = 134; - - // The reasons for the third party app analytics link mutate error - ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkError third_party_app_analytics_link_error = 135; - - // The reasons for the customer user access mutate error - CustomerUserAccessErrorEnum.CustomerUserAccessError customer_user_access_error = 138; - - // The reasons for the custom audience error - CustomAudienceErrorEnum.CustomAudienceError custom_audience_error = 139; - } -} - -// 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; - - // Describes an ad policy violation. - PolicyViolationDetails policy_violation_details = 2; - - // Describes policy violation findings. - PolicyFindingDetails policy_finding_details = 3; - - // Details on the quota error, including the scope (account or developer), the - // rate bucket name and the retry delay. - QuotaErrorDetails quota_error_details = 4; - - // Details for a resource count limit exceeded error. - ResourceCountDetails resource_count_details = 5; -} - -// Error returned as part of a mutate response. -// This error indicates single policy violation by some text -// in one of the fields. -message PolicyViolationDetails { - // Human readable description of policy violation. - string external_policy_description = 2; - - // Unique identifier for this violation. - // If policy is exemptible, this key may be used to request exemption. - google.ads.googleads.v7.common.PolicyViolationKey key = 4; - - // Human readable name of the policy. - string external_policy_name = 5; - - // Whether user can file an exemption request for this violation. - bool is_exemptible = 6; -} - -// Error returned as part of a mutate response. -// This error indicates one or more policy findings in the fields of a -// resource. -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.v7.common.PolicyTopicEntry policy_topic_entries = 1; -} - -// 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 or DevToken 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; -} - -// Error details returned when an resource count limit was exceeded. -message ResourceCountDetails { - // The ID of the resource whose limit was exceeded. - // External customer ID if the limit is for a customer. - string enclosing_id = 1; - - // The name of the resource (Customer, Campaign etc.) whose limit was - // exceeded. - string enclosing_resource = 5; - - // The limit which was exceeded. - int32 limit = 2; - - // The resource limit type which was exceeded. - google.ads.googleads.v7.enums.ResourceLimitTypeEnum.ResourceLimitType limit_type = 3; - - // The count of existing entities. - int32 existing_count = 4; -} diff --git a/google/ads/googleads/v7/errors/extension_feed_item_error.proto b/google/ads/googleads/v7/errors/extension_feed_item_error.proto deleted file mode 100644 index 73c2976da..000000000 --- a/google/ads/googleads/v7/errors/extension_feed_item_error.proto +++ /dev/null @@ -1,195 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionFeedItemErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing extension feed item errors. - -// Container for enum describing possible extension feed item error. -message ExtensionFeedItemErrorEnum { - // Enum describing possible extension feed item errors. - enum ExtensionFeedItemError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Value is not within the accepted range. - VALUE_OUT_OF_RANGE = 2; - - // Url list is too long. - URL_LIST_TOO_LONG = 3; - - // Cannot have a geo targeting restriction without having geo targeting. - CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING = 4; - - // Cannot simultaneously set sitelink field with final urls. - CANNOT_SET_WITH_FINAL_URLS = 5; - - // Must set field with final urls. - CANNOT_SET_WITHOUT_FINAL_URLS = 6; - - // Phone number for a call extension is invalid. - INVALID_PHONE_NUMBER = 7; - - // Phone number for a call extension is not supported for the given country - // code. - PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 8; - - // A carrier specific number in short format is not allowed for call - // extensions. - CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 9; - - // Premium rate numbers are not allowed for call extensions. - PREMIUM_RATE_NUMBER_NOT_ALLOWED = 10; - - // Phone number type for a call extension is not allowed. - // For example, personal number is not allowed for a call extension in - // most regions. - DISALLOWED_NUMBER_TYPE = 11; - - // Phone number for a call extension does not meet domestic format - // requirements. - INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 12; - - // Vanity phone numbers (i.e. those including letters) are not allowed for - // call extensions. - VANITY_PHONE_NUMBER_NOT_ALLOWED = 13; - - // Call conversion action provided for a call extension is invalid. - INVALID_CALL_CONVERSION_ACTION = 14; - - // For a call extension, the customer is not on the allow-list for call - // tracking. - CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING = 47; - - // Call tracking is not supported for the given country for a call - // extension. - CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 16; - - // Customer hasn't consented for call recording, which is required for - // creating/updating call feed items. Please see - // https://support.google.com/google-ads/answer/7412639. - CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 17; - - // App id provided for an app extension is invalid. - INVALID_APP_ID = 18; - - // Quotation marks present in the review text for a review extension. - QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 19; - - // Hyphen character present in the review text for a review extension. - HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 20; - - // A denylisted review source name or url was provided for a review - // extension. - REVIEW_EXTENSION_SOURCE_INELIGIBLE = 21; - - // Review source name should not be found in the review text. - SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 22; - - // Inconsistent currency codes. - INCONSISTENT_CURRENCY_CODES = 23; - - // Price extension cannot have duplicated headers. - PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 24; - - // Price item cannot have duplicated header and description. - PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 25; - - // Price extension has too few items. - PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 26; - - // Price extension has too many items. - PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 27; - - // The input value is not currently supported. - UNSUPPORTED_VALUE = 28; - - // The input value is not currently supported in the selected language of an - // extension. - UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 29; - - // Unknown or unsupported device preference. - INVALID_DEVICE_PREFERENCE = 30; - - // Invalid feed item schedule end time (i.e., endHour = 24 and endMinute != - // 0). - INVALID_SCHEDULE_END = 31; - - // Date time zone does not match the account's time zone. - DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 32; - - // Invalid structured snippet header. - INVALID_SNIPPETS_HEADER = 33; - - // Cannot operate on removed feed item. - CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 34; - - // Phone number not supported when call tracking enabled for country. - PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 35; - - // Cannot set call_conversion_action while call_conversion_tracking_enabled - // is set to true. - CONFLICTING_CALL_CONVERSION_SETTINGS = 36; - - // The type of the input extension feed item doesn't match the existing - // extension feed item. - EXTENSION_TYPE_MISMATCH = 37; - - // The oneof field extension i.e. subtype of extension feed item is - // required. - EXTENSION_SUBTYPE_REQUIRED = 38; - - // The referenced feed item is not mapped to a supported extension type. - EXTENSION_TYPE_UNSUPPORTED = 39; - - // Cannot operate on a Feed with more than one active FeedMapping. - CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS = 40; - - // Cannot operate on a Feed that has key attributes. - CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES = 41; - - // Input price is not in a valid format. - INVALID_PRICE_FORMAT = 42; - - // The promotion time is invalid. - PROMOTION_INVALID_TIME = 43; - - // This field has too many decimal places specified. - TOO_MANY_DECIMAL_PLACES_SPECIFIED = 44; - - // Concrete sub type of ExtensionFeedItem is required for this operation. - CONCRETE_EXTENSION_TYPE_REQUIRED = 45; - - // Feed item schedule end time must be after start time. - SCHEDULE_END_NOT_AFTER_START = 46; - } - - -} diff --git a/google/ads/googleads/v7/errors/extension_setting_error.proto b/google/ads/googleads/v7/errors/extension_setting_error.proto deleted file mode 100644 index c5afacff5..000000000 --- a/google/ads/googleads/v7/errors/extension_setting_error.proto +++ /dev/null @@ -1,261 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionSettingErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing extension setting validation errors. - -// Container for enum describing validation errors of extension settings. -message ExtensionSettingErrorEnum { - // Enum describing possible extension setting errors. - enum ExtensionSettingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A platform restriction was provided without input extensions or existing - // extensions. - EXTENSIONS_REQUIRED = 2; - - // The provided feed type does not correspond to the provided extensions. - FEED_TYPE_EXTENSION_TYPE_MISMATCH = 3; - - // The provided feed type cannot be used. - INVALID_FEED_TYPE = 4; - - // The provided feed type cannot be used at the customer level. - INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING = 5; - - // Cannot change a feed item field on a CREATE operation. - CANNOT_CHANGE_FEED_ITEM_ON_CREATE = 6; - - // Cannot update an extension that is not already in this setting. - CANNOT_UPDATE_NEWLY_CREATED_EXTENSION = 7; - - // There is no existing AdGroupExtensionSetting for this type. - NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE = 8; - - // There is no existing CampaignExtensionSetting for this type. - NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE = 9; - - // There is no existing CustomerExtensionSetting for this type. - NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE = 10; - - // The AdGroupExtensionSetting already exists. UPDATE should be used to - // modify the existing AdGroupExtensionSetting. - AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS = 11; - - // The CampaignExtensionSetting already exists. UPDATE should be used to - // modify the existing CampaignExtensionSetting. - CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS = 12; - - // The CustomerExtensionSetting already exists. UPDATE should be used to - // modify the existing CustomerExtensionSetting. - CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS = 13; - - // An active ad group feed already exists for this place holder type. - AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 14; - - // An active campaign feed already exists for this place holder type. - CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 15; - - // An active customer feed already exists for this place holder type. - CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 16; - - // Value is not within the accepted range. - VALUE_OUT_OF_RANGE = 17; - - // Cannot simultaneously set specified field with final urls. - CANNOT_SET_FIELD_WITH_FINAL_URLS = 18; - - // Must set field with final urls. - FINAL_URLS_NOT_SET = 19; - - // Phone number for a call extension is invalid. - INVALID_PHONE_NUMBER = 20; - - // Phone number for a call extension is not supported for the given country - // code. - PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 21; - - // A carrier specific number in short format is not allowed for call - // extensions. - CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 22; - - // Premium rate numbers are not allowed for call extensions. - PREMIUM_RATE_NUMBER_NOT_ALLOWED = 23; - - // Phone number type for a call extension is not allowed. - DISALLOWED_NUMBER_TYPE = 24; - - // Phone number for a call extension does not meet domestic format - // requirements. - INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 25; - - // Vanity phone numbers (i.e. those including letters) are not allowed for - // call extensions. - VANITY_PHONE_NUMBER_NOT_ALLOWED = 26; - - // Country code provided for a call extension is invalid. - INVALID_COUNTRY_CODE = 27; - - // Call conversion type id provided for a call extension is invalid. - INVALID_CALL_CONVERSION_TYPE_ID = 28; - - // For a call extension, the customer is not on the allow-list for call - // tracking. - CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 69; - - // Call tracking is not supported for the given country for a call - // extension. - CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 30; - - // App id provided for an app extension is invalid. - INVALID_APP_ID = 31; - - // Quotation marks present in the review text for a review extension. - QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 32; - - // Hyphen character present in the review text for a review extension. - HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 33; - - // A blocked review source name or url was provided for a review - // extension. - REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE = 34; - - // Review source name should not be found in the review text. - SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 35; - - // Field must be set. - MISSING_FIELD = 36; - - // Inconsistent currency codes. - INCONSISTENT_CURRENCY_CODES = 37; - - // Price extension cannot have duplicated headers. - PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 38; - - // Price item cannot have duplicated header and description. - PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 39; - - // Price extension has too few items - PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 40; - - // Price extension has too many items - PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 41; - - // The input value is not currently supported. - UNSUPPORTED_VALUE = 42; - - // Unknown or unsupported device preference. - INVALID_DEVICE_PREFERENCE = 43; - - // Invalid feed item schedule end time (i.e., endHour = 24 and - // endMinute != 0). - INVALID_SCHEDULE_END = 45; - - // Date time zone does not match the account's time zone. - DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 47; - - // Overlapping feed item schedule times (e.g., 7-10AM and 8-11AM) are not - // allowed. - OVERLAPPING_SCHEDULES_NOT_ALLOWED = 48; - - // Feed item schedule end time must be after start time. - SCHEDULE_END_NOT_AFTER_START = 49; - - // There are too many feed item schedules per day. - TOO_MANY_SCHEDULES_PER_DAY = 50; - - // Cannot edit the same extension feed item more than once in the same - // request. - DUPLICATE_EXTENSION_FEED_ITEM_EDIT = 51; - - // Invalid structured snippet header. - INVALID_SNIPPETS_HEADER = 52; - - // Phone number with call tracking enabled is not supported for the - // specified country. - PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 53; - - // The targeted adgroup must belong to the targeted campaign. - CAMPAIGN_TARGETING_MISMATCH = 54; - - // The feed used by the ExtensionSetting is removed and cannot be operated - // on. Remove the ExtensionSetting to allow a new one to be created using - // an active feed. - CANNOT_OPERATE_ON_REMOVED_FEED = 55; - - // The ExtensionFeedItem type is required for this operation. - EXTENSION_TYPE_REQUIRED = 56; - - // The matching function that links the extension feed to the customer, - // campaign, or ad group is not compatible with the ExtensionSetting - // services. - INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION = 57; - - // Start date must be before end date. - START_DATE_AFTER_END_DATE = 58; - - // Input price is not in a valid format. - INVALID_PRICE_FORMAT = 59; - - // The promotion time is invalid. - PROMOTION_INVALID_TIME = 60; - - // Cannot set both percent discount and money discount fields. - PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT = 61; - - // Cannot set both promotion code and orders over amount fields. - PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 62; - - // This field has too many decimal places specified. - TOO_MANY_DECIMAL_PLACES_SPECIFIED = 63; - - // The language code is not valid. - INVALID_LANGUAGE_CODE = 64; - - // The language is not supported. - UNSUPPORTED_LANGUAGE = 65; - - // Customer hasn't consented for call recording, which is required for - // adding/updating call extensions. Please see - // https://support.google.com/google-ads/answer/7412639. - CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 66; - - // The UPDATE operation does not specify any fields other than the resource - // name in the update mask. - EXTENSION_SETTING_UPDATE_IS_A_NOOP = 67; - - // The extension contains text which has been prohibited on policy grounds. - DISALLOWED_TEXT = 68; - } - - -} diff --git a/google/ads/googleads/v7/errors/feed_attribute_reference_error.proto b/google/ads/googleads/v7/errors/feed_attribute_reference_error.proto deleted file mode 100644 index 43fc68ff1..000000000 --- a/google/ads/googleads/v7/errors/feed_attribute_reference_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedAttributeReferenceErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing feed attribute reference errors. - -// Container for enum describing possible feed attribute reference errors. -message FeedAttributeReferenceErrorEnum { - // Enum describing possible feed attribute reference errors. - enum FeedAttributeReferenceError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A feed referenced by ID has been removed. - CANNOT_REFERENCE_REMOVED_FEED = 2; - - // There is no enabled feed with the given name. - INVALID_FEED_NAME = 3; - - // There is no feed attribute in an enabled feed with the given name. - INVALID_FEED_ATTRIBUTE_NAME = 4; - } - - -} diff --git a/google/ads/googleads/v7/errors/feed_error.proto b/google/ads/googleads/v7/errors/feed_error.proto deleted file mode 100644 index 1a9732f4c..000000000 --- a/google/ads/googleads/v7/errors/feed_error.proto +++ /dev/null @@ -1,111 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing feed errors. - -// Container for enum describing possible feed errors. -message FeedErrorEnum { - // Enum describing possible feed errors. - enum FeedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The names of the FeedAttributes must be unique. - ATTRIBUTE_NAMES_NOT_UNIQUE = 2; - - // The attribute list must be an exact copy of the existing list if the - // attribute ID's are present. - ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES = 3; - - // Cannot specify USER origin for a system generated feed. - CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED = 4; - - // Cannot specify GOOGLE origin for a non-system generated feed. - CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED = 5; - - // Cannot specify feed attributes for system feed. - CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED = 6; - - // Cannot update FeedAttributes on feed with origin GOOGLE. - CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE = 7; - - // The given ID refers to a removed Feed. Removed Feeds are immutable. - FEED_REMOVED = 8; - - // The origin of the feed is not valid for the client. - INVALID_ORIGIN_VALUE = 9; - - // A user can only create and modify feeds with USER origin. - FEED_ORIGIN_IS_NOT_USER = 10; - - // Invalid auth token for the given email. - INVALID_AUTH_TOKEN_FOR_EMAIL = 11; - - // Invalid email specified. - INVALID_EMAIL = 12; - - // Feed name matches that of another active Feed. - DUPLICATE_FEED_NAME = 13; - - // Name of feed is not allowed. - INVALID_FEED_NAME = 14; - - // Missing OAuthInfo. - MISSING_OAUTH_INFO = 15; - - // New FeedAttributes must not affect the unique key. - NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY = 16; - - // Too many FeedAttributes for a Feed. - TOO_MANY_ATTRIBUTES = 17; - - // The business account is not valid. - INVALID_BUSINESS_ACCOUNT = 18; - - // Business account cannot access Business Profile. - BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT = 19; - - // Invalid chain ID provided for affiliate location feed. - INVALID_AFFILIATE_CHAIN_ID = 20; - - // There is already a feed with the given system feed generation data. - DUPLICATE_SYSTEM_FEED = 21; - - // An error occurred accessing Business Profile. - GMB_ACCESS_ERROR = 22; - - // A customer cannot have both LOCATION and AFFILIATE_LOCATION feeds. - CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS = 23; - } - - -} diff --git a/google/ads/googleads/v7/errors/feed_item_error.proto b/google/ads/googleads/v7/errors/feed_item_error.proto deleted file mode 100644 index 9666c6574..000000000 --- a/google/ads/googleads/v7/errors/feed_item_error.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing feed item errors. - -// Container for enum describing possible feed item errors. -message FeedItemErrorEnum { - // Enum describing possible feed item errors. - enum FeedItemError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot convert the feed attribute value from string to its real type. - CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING = 2; - - // Cannot operate on removed feed item. - CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 3; - - // Date time zone does not match the account's time zone. - DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 4; - - // Feed item with the key attributes could not be found. - KEY_ATTRIBUTES_NOT_FOUND = 5; - - // Url feed attribute value is not valid. - INVALID_URL = 6; - - // Some key attributes are missing. - MISSING_KEY_ATTRIBUTES = 7; - - // Feed item has same key attributes as another feed item. - KEY_ATTRIBUTES_NOT_UNIQUE = 8; - - // Cannot modify key attributes on an existing feed item. - CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE = 9; - - // The feed attribute value is too large. - SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE = 10; - } - - -} diff --git a/google/ads/googleads/v7/errors/feed_item_set_error.proto b/google/ads/googleads/v7/errors/feed_item_set_error.proto deleted file mode 100644 index ba23c27fb..000000000 --- a/google/ads/googleads/v7/errors/feed_item_set_error.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing feed item set errors. - -// Container for enum describing possible feed item set errors. -message FeedItemSetErrorEnum { - // Enum describing possible feed item set errors. - enum FeedItemSetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The given ID refers to a removed FeedItemSet. - FEED_ITEM_SET_REMOVED = 2; - - // The dynamic filter of a feed item set cannot be cleared on UPDATE if it - // exists. A set is either static or dynamic once added, and that cannot - // change. - CANNOT_CLEAR_DYNAMIC_FILTER = 3; - - // The dynamic filter of a feed item set cannot be created on UPDATE if it - // does not exist. A set is either static or dynamic once added, and that - // cannot change. - CANNOT_CREATE_DYNAMIC_FILTER = 4; - - // FeedItemSets can only be made for location or affiliate location feeds. - INVALID_FEED_TYPE = 5; - - // FeedItemSets duplicate name. Name should be unique within an account. - DUPLICATE_NAME = 6; - - // The feed type of the parent Feed is not compatible with the type of - // dynamic filter being set. For example, you can only set - // dynamic_location_set_filter for LOCATION feed item sets. - WRONG_DYNAMIC_FILTER_FOR_FEED_TYPE = 7; - } - - -} diff --git a/google/ads/googleads/v7/errors/feed_item_set_link_error.proto b/google/ads/googleads/v7/errors/feed_item_set_link_error.proto deleted file mode 100644 index b21ad5562..000000000 --- a/google/ads/googleads/v7/errors/feed_item_set_link_error.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing feed item set link errors. - -// Container for enum describing possible feed item set link errors. -message FeedItemSetLinkErrorEnum { - // Enum describing possible feed item set link errors. - enum FeedItemSetLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The feed IDs of the FeedItemSet and FeedItem do not match. Only FeedItems - // in a given Feed can be linked to a FeedItemSet in that Feed. - FEED_ID_MISMATCH = 2; - - // Cannot add or remove links to a dynamic set. - NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/feed_item_target_error.proto b/google/ads/googleads/v7/errors/feed_item_target_error.proto deleted file mode 100644 index 28acbf6d1..000000000 --- a/google/ads/googleads/v7/errors/feed_item_target_error.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing feed item target errors. - -// Container for enum describing possible feed item target errors. -message FeedItemTargetErrorEnum { - // Enum describing possible feed item target errors. - enum FeedItemTargetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // On CREATE, the FeedItemTarget must have a populated field in the oneof - // target. - MUST_SET_TARGET_ONEOF_ON_CREATE = 2; - - // The specified feed item target already exists, so it cannot be added. - FEED_ITEM_TARGET_ALREADY_EXISTS = 3; - - // The schedules for a given feed item cannot overlap. - FEED_ITEM_SCHEDULES_CANNOT_OVERLAP = 4; - - // Too many targets of a given type were added for a single feed item. - TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE = 5; - - // Too many AdSchedules are enabled for the feed item for the given day. - TOO_MANY_SCHEDULES_PER_DAY = 6; - - // A feed item may either have an enabled campaign target or an enabled ad - // group target. - CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS = 7; - - // Duplicate ad schedules aren't allowed. - DUPLICATE_AD_SCHEDULE = 8; - - // Duplicate keywords aren't allowed. - DUPLICATE_KEYWORD = 9; - } - - -} diff --git a/google/ads/googleads/v7/errors/feed_item_validation_error.proto b/google/ads/googleads/v7/errors/feed_item_validation_error.proto deleted file mode 100644 index 818be9e14..000000000 --- a/google/ads/googleads/v7/errors/feed_item_validation_error.proto +++ /dev/null @@ -1,377 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemValidationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing feed item validation errors. - -// Container for enum describing possible validation errors of a feed item. -message FeedItemValidationErrorEnum { - // The possible validation errors of a feed item. - enum FeedItemValidationError { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // String is too short. - STRING_TOO_SHORT = 2; - - // String is too long. - STRING_TOO_LONG = 3; - - // Value is not provided. - VALUE_NOT_SPECIFIED = 4; - - // Phone number format is invalid for region. - INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 5; - - // String does not represent a phone number. - INVALID_PHONE_NUMBER = 6; - - // Phone number format is not compatible with country code. - PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 7; - - // Premium rate number is not allowed. - PREMIUM_RATE_NUMBER_NOT_ALLOWED = 8; - - // Phone number type is not allowed. - DISALLOWED_NUMBER_TYPE = 9; - - // Specified value is outside of the valid range. - VALUE_OUT_OF_RANGE = 10; - - // Call tracking is not supported in the selected country. - CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 11; - - // Customer is not on the allow-list for call tracking. - CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 99; - - // Country code is invalid. - INVALID_COUNTRY_CODE = 13; - - // The specified mobile app id is invalid. - INVALID_APP_ID = 14; - - // Some required field attributes are missing. - MISSING_ATTRIBUTES_FOR_FIELDS = 15; - - // Invalid email button type for email extension. - INVALID_TYPE_ID = 16; - - // Email address is invalid. - INVALID_EMAIL_ADDRESS = 17; - - // The HTTPS URL in email extension is invalid. - INVALID_HTTPS_URL = 18; - - // Delivery address is missing from email extension. - MISSING_DELIVERY_ADDRESS = 19; - - // FeedItem scheduling start date comes after end date. - START_DATE_AFTER_END_DATE = 20; - - // FeedItem scheduling start time is missing. - MISSING_FEED_ITEM_START_TIME = 21; - - // FeedItem scheduling end time is missing. - MISSING_FEED_ITEM_END_TIME = 22; - - // Cannot compute system attributes on a FeedItem that has no FeedItemId. - MISSING_FEED_ITEM_ID = 23; - - // Call extension vanity phone numbers are not supported. - VANITY_PHONE_NUMBER_NOT_ALLOWED = 24; - - // Invalid review text. - INVALID_REVIEW_EXTENSION_SNIPPET = 25; - - // Invalid format for numeric value in ad parameter. - INVALID_NUMBER_FORMAT = 26; - - // Invalid format for date value in ad parameter. - INVALID_DATE_FORMAT = 27; - - // Invalid format for price value in ad parameter. - INVALID_PRICE_FORMAT = 28; - - // Unrecognized type given for value in ad parameter. - UNKNOWN_PLACEHOLDER_FIELD = 29; - - // Enhanced sitelinks must have both description lines specified. - MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE = 30; - - // Review source is ineligible. - REVIEW_EXTENSION_SOURCE_INELIGIBLE = 31; - - // Review text cannot contain hyphens or dashes. - HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 32; - - // Review text cannot contain double quote characters. - DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 33; - - // Review text cannot contain quote characters. - QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 34; - - // Parameters are encoded in the wrong format. - INVALID_FORM_ENCODED_PARAMS = 35; - - // URL parameter name must contain only letters, numbers, underscores, and - // dashes. - INVALID_URL_PARAMETER_NAME = 36; - - // Cannot find address location. - NO_GEOCODING_RESULT = 37; - - // Review extension text has source name. - SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 38; - - // Some phone numbers can be shorter than usual. Some of these short numbers - // are carrier-specific, and we disallow those in ad extensions because they - // will not be available to all users. - CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 39; - - // Triggered when a request references a placeholder field id that does not - // exist. - INVALID_PLACEHOLDER_FIELD_ID = 40; - - // URL contains invalid ValueTrack tags or format. - INVALID_URL_TAG = 41; - - // Provided list exceeds acceptable size. - LIST_TOO_LONG = 42; - - // Certain combinations of attributes aren't allowed to be specified in the - // same feed item. - INVALID_ATTRIBUTES_COMBINATION = 43; - - // An attribute has the same value repeatedly. - DUPLICATE_VALUES = 44; - - // Advertisers can link a conversion action with a phone number to indicate - // that sufficiently long calls forwarded to that phone number should be - // counted as conversions of the specified type. This is an error message - // indicating that the conversion action specified is invalid (e.g., the - // conversion action does not exist within the appropriate Google Ads - // account, or it is a type of conversion not appropriate to phone call - // conversions). - INVALID_CALL_CONVERSION_ACTION_ID = 45; - - // Tracking template requires final url to be set. - CANNOT_SET_WITHOUT_FINAL_URLS = 46; - - // An app id was provided that doesn't exist in the given app store. - APP_ID_DOESNT_EXIST_IN_APP_STORE = 47; - - // Invalid U2 final url. - INVALID_FINAL_URL = 48; - - // Invalid U2 tracking url. - INVALID_TRACKING_URL = 49; - - // Final URL should start from App download URL. - INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL = 50; - - // List provided is too short. - LIST_TOO_SHORT = 51; - - // User Action field has invalid value. - INVALID_USER_ACTION = 52; - - // Type field has invalid value. - INVALID_TYPE_NAME = 53; - - // Change status for event is invalid. - INVALID_EVENT_CHANGE_STATUS = 54; - - // The header of a structured snippets extension is not one of the valid - // headers. - INVALID_SNIPPETS_HEADER = 55; - - // Android app link is not formatted correctly - INVALID_ANDROID_APP_LINK = 56; - - // Phone number incompatible with call tracking for country. - NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 57; - - // The input is identical to a reserved keyword - RESERVED_KEYWORD_OTHER = 58; - - // Each option label in the message extension must be unique. - DUPLICATE_OPTION_LABELS = 59; - - // Each option prefill in the message extension must be unique. - DUPLICATE_OPTION_PREFILLS = 60; - - // In message extensions, the number of optional labels and optional - // prefills must be the same. - UNEQUAL_LIST_LENGTHS = 61; - - // All currency codes in an ad extension must be the same. - INCONSISTENT_CURRENCY_CODES = 62; - - // Headers in price extension are not unique. - PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 63; - - // Header and description in an item are the same. - ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 64; - - // Price extension has too few items. - PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 65; - - // The given value is not supported. - UNSUPPORTED_VALUE = 66; - - // Invalid final mobile url. - INVALID_FINAL_MOBILE_URL = 67; - - // The given string value of Label contains invalid characters - INVALID_KEYWORDLESS_AD_RULE_LABEL = 68; - - // The given URL contains value track parameters. - VALUE_TRACK_PARAMETER_NOT_SUPPORTED = 69; - - // The given value is not supported in the selected language of an - // extension. - UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 70; - - // The iOS app link is not formatted correctly. - INVALID_IOS_APP_LINK = 71; - - // iOS app link or iOS app store id is missing. - MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID = 72; - - // Promotion time is invalid. - PROMOTION_INVALID_TIME = 73; - - // Both the percent off and money amount off fields are set. - PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 74; - - // Both the promotion code and orders over amount fields are set. - PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 75; - - // Too many decimal places are specified. - TOO_MANY_DECIMAL_PLACES_SPECIFIED = 76; - - // Ad Customizers are present and not allowed. - AD_CUSTOMIZERS_NOT_ALLOWED = 77; - - // Language code is not valid. - INVALID_LANGUAGE_CODE = 78; - - // Language is not supported. - UNSUPPORTED_LANGUAGE = 79; - - // IF Function is present and not allowed. - IF_FUNCTION_NOT_ALLOWED = 80; - - // Final url suffix is not valid. - INVALID_FINAL_URL_SUFFIX = 81; - - // Final url suffix contains an invalid tag. - INVALID_TAG_IN_FINAL_URL_SUFFIX = 82; - - // Final url suffix is formatted incorrectly. - INVALID_FINAL_URL_SUFFIX_FORMAT = 83; - - // Consent for call recording, which is required for the use of call - // extensions, was not provided by the advertiser. Please see - // https://support.google.com/google-ads/answer/7412639. - CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 84; - - // Multiple message delivery options are set. - ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED = 85; - - // No message delivery option is set. - NO_DELIVERY_OPTION_IS_SET = 86; - - // String value of conversion reporting state field is not valid. - INVALID_CONVERSION_REPORTING_STATE = 87; - - // Image size is not right. - IMAGE_SIZE_WRONG = 88; - - // Email delivery is not supported in the country specified in the country - // code field. - EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY = 89; - - // Auto reply is not supported in the country specified in the country code - // field. - AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY = 90; - - // Invalid value specified for latitude. - INVALID_LATITUDE_VALUE = 91; - - // Invalid value specified for longitude. - INVALID_LONGITUDE_VALUE = 92; - - // Too many label fields provided. - TOO_MANY_LABELS = 93; - - // Invalid image url. - INVALID_IMAGE_URL = 94; - - // Latitude value is missing. - MISSING_LATITUDE_VALUE = 95; - - // Longitude value is missing. - MISSING_LONGITUDE_VALUE = 96; - - // Unable to find address. - ADDRESS_NOT_FOUND = 97; - - // Cannot target provided address. - ADDRESS_NOT_TARGETABLE = 98; - - // The specified asset ID does not exist. - INVALID_ASSET_ID = 100; - - // The asset type cannot be set for the field. - INCOMPATIBLE_ASSET_TYPE = 101; - - // The image has unexpected size. - IMAGE_ERROR_UNEXPECTED_SIZE = 102; - - // The image aspect ratio is not allowed. - IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED = 103; - - // The image file is too large. - IMAGE_ERROR_FILE_TOO_LARGE = 104; - - // The image format is unsupported. - IMAGE_ERROR_FORMAT_NOT_ALLOWED = 105; - - // Image violates constraints without more details. - IMAGE_ERROR_CONSTRAINTS_VIOLATED = 106; - - // An error occurred when validating image. - IMAGE_ERROR_SERVER_ERROR = 107; - } - - -} diff --git a/google/ads/googleads/v7/errors/feed_mapping_error.proto b/google/ads/googleads/v7/errors/feed_mapping_error.proto deleted file mode 100644 index cdfecb327..000000000 --- a/google/ads/googleads/v7/errors/feed_mapping_error.proto +++ /dev/null @@ -1,100 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing feed item errors. - -// Container for enum describing possible feed item errors. -message FeedMappingErrorEnum { - // Enum describing possible feed item errors. - enum FeedMappingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The given placeholder field does not exist. - INVALID_PLACEHOLDER_FIELD = 2; - - // The given criterion field does not exist. - INVALID_CRITERION_FIELD = 3; - - // The given placeholder type does not exist. - INVALID_PLACEHOLDER_TYPE = 4; - - // The given criterion type does not exist. - INVALID_CRITERION_TYPE = 5; - - // A feed mapping must contain at least one attribute field mapping. - NO_ATTRIBUTE_FIELD_MAPPINGS = 7; - - // The type of the feed attribute referenced in the attribute field mapping - // must match the type of the placeholder field. - FEED_ATTRIBUTE_TYPE_MISMATCH = 8; - - // A feed mapping for a system generated feed cannot be operated on. - CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED = 9; - - // Only one feed mapping for a placeholder type is allowed per feed or - // customer (depending on the placeholder type). - MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE = 10; - - // Only one feed mapping for a criterion type is allowed per customer. - MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE = 11; - - // Only one feed attribute mapping for a placeholder field is allowed - // (depending on the placeholder type). - MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD = 12; - - // Only one feed attribute mapping for a criterion field is allowed - // (depending on the criterion type). - MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD = 13; - - // This feed mapping may not contain any explicit attribute field mappings. - UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS = 14; - - // Location placeholder feed mappings can only be created for Places feeds. - LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS = 15; - - // Mappings for typed feeds cannot be modified. - CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED = 16; - - // The given placeholder type can only be mapped to system generated feeds. - INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED = 17; - - // The given placeholder type cannot be mapped to a system generated feed - // with the given type. - INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE = 18; - - // The "field" oneof was not set in an AttributeFieldMapping. - ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD = 19; - } - - -} diff --git a/google/ads/googleads/v7/errors/field_error.proto b/google/ads/googleads/v7/errors/field_error.proto deleted file mode 100644 index 4daf9c382..000000000 --- a/google/ads/googleads/v7/errors/field_error.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FieldErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing field errors. - -// Container for enum describing possible field errors. -message FieldErrorEnum { - // Enum describing possible field errors. - enum FieldError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The required field was not present. - REQUIRED = 2; - - // The field attempted to be mutated is immutable. - IMMUTABLE_FIELD = 3; - - // The field's value is invalid. - INVALID_VALUE = 4; - - // The field cannot be set. - VALUE_MUST_BE_UNSET = 5; - - // The required repeated field was empty. - REQUIRED_NONEMPTY_LIST = 6; - - // The field cannot be cleared. - FIELD_CANNOT_BE_CLEARED = 7; - - // The field's value is on a deny-list for this field. - BLOCKED_VALUE = 9; - } - - -} diff --git a/google/ads/googleads/v7/errors/field_mask_error.proto b/google/ads/googleads/v7/errors/field_mask_error.proto deleted file mode 100644 index 031147a75..000000000 --- a/google/ads/googleads/v7/errors/field_mask_error.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FieldMaskErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing field mask errors. - -// Container for enum describing possible field mask errors. -message FieldMaskErrorEnum { - // Enum describing possible field mask errors. - enum FieldMaskError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The field mask must be provided for update operations. - FIELD_MASK_MISSING = 5; - - // The field mask must be empty for create and remove operations. - FIELD_MASK_NOT_ALLOWED = 4; - - // The field mask contained an invalid field. - FIELD_NOT_FOUND = 2; - - // The field mask updated a field with subfields. Fields with subfields may - // be cleared, but not updated. To fix this, the field mask should select - // all the subfields of the invalid field. - FIELD_HAS_SUBFIELDS = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/function_error.proto b/google/ads/googleads/v7/errors/function_error.proto deleted file mode 100644 index b77e073f7..000000000 --- a/google/ads/googleads/v7/errors/function_error.proto +++ /dev/null @@ -1,93 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FunctionErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing function errors. - -// Container for enum describing possible function errors. -message FunctionErrorEnum { - // Enum describing possible function errors. - enum FunctionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The format of the function is not recognized as a supported function - // format. - INVALID_FUNCTION_FORMAT = 2; - - // Operand data types do not match. - DATA_TYPE_MISMATCH = 3; - - // The operands cannot be used together in a conjunction. - INVALID_CONJUNCTION_OPERANDS = 4; - - // Invalid numer of Operands. - INVALID_NUMBER_OF_OPERANDS = 5; - - // Operand Type not supported. - INVALID_OPERAND_TYPE = 6; - - // Operator not supported. - INVALID_OPERATOR = 7; - - // Request context type not supported. - INVALID_REQUEST_CONTEXT_TYPE = 8; - - // The matching function is not allowed for call placeholders - INVALID_FUNCTION_FOR_CALL_PLACEHOLDER = 9; - - // The matching function is not allowed for the specified placeholder - INVALID_FUNCTION_FOR_PLACEHOLDER = 10; - - // Invalid operand. - INVALID_OPERAND = 11; - - // Missing value for the constant operand. - MISSING_CONSTANT_OPERAND_VALUE = 12; - - // The value of the constant operand is invalid. - INVALID_CONSTANT_OPERAND_VALUE = 13; - - // Invalid function nesting. - INVALID_NESTING = 14; - - // The Feed ID was different from another Feed ID in the same function. - MULTIPLE_FEED_IDS_NOT_SUPPORTED = 15; - - // The matching function is invalid for use with a feed with a fixed schema. - INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA = 16; - - // Invalid attribute name. - INVALID_ATTRIBUTE_NAME = 17; - } - - -} diff --git a/google/ads/googleads/v7/errors/function_parsing_error.proto b/google/ads/googleads/v7/errors/function_parsing_error.proto deleted file mode 100644 index 20ad27e92..000000000 --- a/google/ads/googleads/v7/errors/function_parsing_error.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FunctionParsingErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing function parsing errors. - -// Container for enum describing possible function parsing errors. -message FunctionParsingErrorEnum { - // Enum describing possible function parsing errors. - enum FunctionParsingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Unexpected end of function string. - NO_MORE_INPUT = 2; - - // Could not find an expected character. - EXPECTED_CHARACTER = 3; - - // Unexpected separator character. - UNEXPECTED_SEPARATOR = 4; - - // Unmatched left bracket or parenthesis. - UNMATCHED_LEFT_BRACKET = 5; - - // Unmatched right bracket or parenthesis. - UNMATCHED_RIGHT_BRACKET = 6; - - // Functions are nested too deeply. - TOO_MANY_NESTED_FUNCTIONS = 7; - - // Missing right-hand-side operand. - MISSING_RIGHT_HAND_OPERAND = 8; - - // Invalid operator/function name. - INVALID_OPERATOR_NAME = 9; - - // Feed attribute operand's argument is not an integer. - FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER = 10; - - // Missing function operands. - NO_OPERANDS = 11; - - // Function had too many operands. - TOO_MANY_OPERANDS = 12; - } - - -} diff --git a/google/ads/googleads/v7/errors/geo_target_constant_suggestion_error.proto b/google/ads/googleads/v7/errors/geo_target_constant_suggestion_error.proto deleted file mode 100644 index 481a6531b..000000000 --- a/google/ads/googleads/v7/errors/geo_target_constant_suggestion_error.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetConstantSuggestionErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Container for enum describing possible geo target constant suggestion errors. -message GeoTargetConstantSuggestionErrorEnum { - // Enum describing possible geo target constant suggestion errors. - enum GeoTargetConstantSuggestionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A location name cannot be greater than 300 characters. - LOCATION_NAME_SIZE_LIMIT = 2; - - // At most 25 location names can be specified in a SuggestGeoTargetConstants - // method. - LOCATION_NAME_LIMIT = 3; - - // The country code is invalid. - INVALID_COUNTRY_CODE = 4; - - // Geo target constant resource names or location names must be provided in - // the request. - REQUEST_PARAMETERS_UNSET = 5; - } - - -} diff --git a/google/ads/googleads/v7/errors/header_error.proto b/google/ads/googleads/v7/errors/header_error.proto deleted file mode 100644 index 853de948b..000000000 --- a/google/ads/googleads/v7/errors/header_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "HeaderErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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 login customer ID could not be validated. - INVALID_LOGIN_CUSTOMER_ID = 3; - - // The linked customer ID could not be validated. - INVALID_LINKED_CUSTOMER_ID = 7; - } - - -} diff --git a/google/ads/googleads/v7/errors/id_error.proto b/google/ads/googleads/v7/errors/id_error.proto deleted file mode 100644 index 882006005..000000000 --- a/google/ads/googleads/v7/errors/id_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "IdErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing id errors. - -// Container for enum describing possible id errors. -message IdErrorEnum { - // Enum describing possible id errors. - enum IdError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Id not found - NOT_FOUND = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/image_error.proto b/google/ads/googleads/v7/errors/image_error.proto deleted file mode 100644 index 6daca0452..000000000 --- a/google/ads/googleads/v7/errors/image_error.proto +++ /dev/null @@ -1,164 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ImageErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing image errors. - -// Container for enum describing possible image errors. -message ImageErrorEnum { - // Enum describing possible image errors. - enum ImageError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The image is not valid. - INVALID_IMAGE = 2; - - // The image could not be stored. - STORAGE_ERROR = 3; - - // There was a problem with the request. - BAD_REQUEST = 4; - - // The image is not of legal dimensions. - UNEXPECTED_SIZE = 5; - - // Animated image are not permitted. - ANIMATED_NOT_ALLOWED = 6; - - // Animation is too long. - ANIMATION_TOO_LONG = 7; - - // There was an error on the server. - SERVER_ERROR = 8; - - // Image cannot be in CMYK color format. - CMYK_JPEG_NOT_ALLOWED = 9; - - // Flash images are not permitted. - FLASH_NOT_ALLOWED = 10; - - // Flash images must support clickTag. - FLASH_WITHOUT_CLICKTAG = 11; - - // A flash error has occurred after fixing the click tag. - FLASH_ERROR_AFTER_FIXING_CLICK_TAG = 12; - - // Unacceptable visual effects. - ANIMATED_VISUAL_EFFECT = 13; - - // There was a problem with the flash image. - FLASH_ERROR = 14; - - // Incorrect image layout. - LAYOUT_PROBLEM = 15; - - // There was a problem reading the image file. - PROBLEM_READING_IMAGE_FILE = 16; - - // There was an error storing the image. - ERROR_STORING_IMAGE = 17; - - // The aspect ratio of the image is not allowed. - ASPECT_RATIO_NOT_ALLOWED = 18; - - // Flash cannot have network objects. - FLASH_HAS_NETWORK_OBJECTS = 19; - - // Flash cannot have network methods. - FLASH_HAS_NETWORK_METHODS = 20; - - // Flash cannot have a Url. - FLASH_HAS_URL = 21; - - // Flash cannot use mouse tracking. - FLASH_HAS_MOUSE_TRACKING = 22; - - // Flash cannot have a random number. - FLASH_HAS_RANDOM_NUM = 23; - - // Ad click target cannot be '_self'. - FLASH_SELF_TARGETS = 24; - - // GetUrl method should only use '_blank'. - FLASH_BAD_GETURL_TARGET = 25; - - // Flash version is not supported. - FLASH_VERSION_NOT_SUPPORTED = 26; - - // Flash movies need to have hard coded click URL or clickTAG - FLASH_WITHOUT_HARD_CODED_CLICK_URL = 27; - - // Uploaded flash file is corrupted. - INVALID_FLASH_FILE = 28; - - // Uploaded flash file can be parsed, but the click tag can not be fixed - // properly. - FAILED_TO_FIX_CLICK_TAG_IN_FLASH = 29; - - // Flash movie accesses network resources - FLASH_ACCESSES_NETWORK_RESOURCES = 30; - - // Flash movie attempts to call external javascript code - FLASH_EXTERNAL_JS_CALL = 31; - - // Flash movie attempts to call flash system commands - FLASH_EXTERNAL_FS_CALL = 32; - - // Image file is too large. - FILE_TOO_LARGE = 33; - - // Image data is too large. - IMAGE_DATA_TOO_LARGE = 34; - - // Error while processing the image. - IMAGE_PROCESSING_ERROR = 35; - - // Image is too small. - IMAGE_TOO_SMALL = 36; - - // Input was invalid. - INVALID_INPUT = 37; - - // There was a problem reading the image file. - PROBLEM_READING_FILE = 38; - - // Image constraints are violated, but details like ASPECT_RATIO_NOT_ALLOWED - // can't be provided. This happens when asset spec contains more than one - // constraint and different criteria of different constraints are violated. - IMAGE_CONSTRAINTS_VIOLATED = 39; - - // Image format is not allowed. - FORMAT_NOT_ALLOWED = 40; - } - - -} diff --git a/google/ads/googleads/v7/errors/internal_error.proto b/google/ads/googleads/v7/errors/internal_error.proto deleted file mode 100644 index 81b9a0887..000000000 --- a/google/ads/googleads/v7/errors/internal_error.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "InternalErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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; - - // Google Ads 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; - - // Google Ads 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/google/ads/googleads/v7/errors/invoice_error.proto b/google/ads/googleads/v7/errors/invoice_error.proto deleted file mode 100644 index b09527ab7..000000000 --- a/google/ads/googleads/v7/errors/invoice_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "InvoiceErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing invoice errors. - -// Container for enum describing possible invoice errors. -message InvoiceErrorEnum { - // Enum describing possible invoice errors. - enum InvoiceError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot request invoices issued before 2019-01-01. - YEAR_MONTH_TOO_OLD = 2; - - // Cannot request invoices for customer who doesn't receive invoices. - NOT_INVOICED_CUSTOMER = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/keyword_plan_ad_group_error.proto b/google/ads/googleads/v7/errors/keyword_plan_ad_group_error.proto deleted file mode 100644 index aac115292..000000000 --- a/google/ads/googleads/v7/errors/keyword_plan_ad_group_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing errors from applying a keyword plan ad group. - -// Container for enum describing possible errors from applying a keyword plan -// ad group. -message KeywordPlanAdGroupErrorEnum { - // Enum describing possible errors from applying a keyword plan ad group. - enum KeywordPlanAdGroupError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The keyword plan ad group name is missing, empty, longer than allowed - // limit or contains invalid chars. - INVALID_NAME = 2; - - // The keyword plan ad group name is duplicate to an existing keyword plan - // AdGroup name or other keyword plan AdGroup name in the request. - DUPLICATE_NAME = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/keyword_plan_ad_group_keyword_error.proto b/google/ads/googleads/v7/errors/keyword_plan_ad_group_keyword_error.proto deleted file mode 100644 index e4a1e56de..000000000 --- a/google/ads/googleads/v7/errors/keyword_plan_ad_group_keyword_error.proto +++ /dev/null @@ -1,72 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupKeywordErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing errors from applying a keyword plan ad group keyword or -// keyword plan campaign keyword. - -// Container for enum describing possible errors from applying an ad group -// keyword or a campaign keyword from a keyword plan. -message KeywordPlanAdGroupKeywordErrorEnum { - // Enum describing possible errors from applying a keyword plan ad group - // keyword or keyword plan campaign keyword. - enum KeywordPlanAdGroupKeywordError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A keyword or negative keyword has invalid match type. - INVALID_KEYWORD_MATCH_TYPE = 2; - - // A keyword or negative keyword with same text and match type already - // exists. - DUPLICATE_KEYWORD = 3; - - // Keyword or negative keyword text exceeds the allowed limit. - KEYWORD_TEXT_TOO_LONG = 4; - - // Keyword or negative keyword text has invalid characters or symbols. - KEYWORD_HAS_INVALID_CHARS = 5; - - // Keyword or negative keyword text has too many words. - KEYWORD_HAS_TOO_MANY_WORDS = 6; - - // Keyword or negative keyword has invalid text. - INVALID_KEYWORD_TEXT = 7; - - // Cpc Bid set for negative keyword. - NEGATIVE_KEYWORD_HAS_CPC_BID = 8; - - // New broad match modifier (BMM) KpAdGroupKeywords are not allowed. - NEW_BMM_KEYWORDS_NOT_ALLOWED = 9; - } - - -} diff --git a/google/ads/googleads/v7/errors/keyword_plan_campaign_error.proto b/google/ads/googleads/v7/errors/keyword_plan_campaign_error.proto deleted file mode 100644 index e6db9bbbd..000000000 --- a/google/ads/googleads/v7/errors/keyword_plan_campaign_error.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing errors from applying a keyword plan campaign. - -// Container for enum describing possible errors from applying a keyword plan -// campaign. -message KeywordPlanCampaignErrorEnum { - // Enum describing possible errors from applying a keyword plan campaign. - enum KeywordPlanCampaignError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A keyword plan campaign name is missing, empty, longer than allowed limit - // or contains invalid chars. - INVALID_NAME = 2; - - // A keyword plan campaign contains one or more untargetable languages. - INVALID_LANGUAGES = 3; - - // A keyword plan campaign contains one or more invalid geo targets. - INVALID_GEOS = 4; - - // The keyword plan campaign name is duplicate to an existing keyword plan - // campaign name or other keyword plan campaign name in the request. - DUPLICATE_NAME = 5; - - // The number of geo targets in the keyword plan campaign exceeds limits. - MAX_GEOS_EXCEEDED = 6; - - // The number of languages in the keyword plan campaign exceeds limits. - MAX_LANGUAGES_EXCEEDED = 7; - } - - -} diff --git a/google/ads/googleads/v7/errors/keyword_plan_campaign_keyword_error.proto b/google/ads/googleads/v7/errors/keyword_plan_campaign_keyword_error.proto deleted file mode 100644 index 536217c20..000000000 --- a/google/ads/googleads/v7/errors/keyword_plan_campaign_keyword_error.proto +++ /dev/null @@ -1,49 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignKeywordErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing errors from applying a keyword plan campaign keyword. - -// Container for enum describing possible errors from applying a keyword plan -// campaign keyword. -message KeywordPlanCampaignKeywordErrorEnum { - // Enum describing possible errors from applying a keyword plan campaign - // keyword. - enum KeywordPlanCampaignKeywordError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Keyword plan campaign keyword is positive. - CAMPAIGN_KEYWORD_IS_POSITIVE = 8; - } - - -} diff --git a/google/ads/googleads/v7/errors/keyword_plan_error.proto b/google/ads/googleads/v7/errors/keyword_plan_error.proto deleted file mode 100644 index 7f98b20e1..000000000 --- a/google/ads/googleads/v7/errors/keyword_plan_error.proto +++ /dev/null @@ -1,91 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing errors from applying keyword plan resources (keyword -// plan, keyword plan campaign, keyword plan ad group or keyword plan keyword) -// or KeywordPlanService RPC. - -// Container for enum describing possible errors from applying a keyword plan -// resource (keyword plan, keyword plan campaign, keyword plan ad group or -// keyword plan keyword) or KeywordPlanService RPC. -message KeywordPlanErrorEnum { - // Enum describing possible errors from applying a keyword plan. - enum KeywordPlanError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The plan's bid multiplier value is outside the valid range. - BID_MULTIPLIER_OUT_OF_RANGE = 2; - - // The plan's bid value is too high. - BID_TOO_HIGH = 3; - - // The plan's bid value is too low. - BID_TOO_LOW = 4; - - // The plan's cpc bid is not a multiple of the minimum billable unit. - BID_TOO_MANY_FRACTIONAL_DIGITS = 5; - - // The plan's daily budget value is too low. - DAILY_BUDGET_TOO_LOW = 6; - - // The plan's daily budget is not a multiple of the minimum billable unit. - DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS = 7; - - // The input has an invalid value. - INVALID_VALUE = 8; - - // The plan has no keyword. - KEYWORD_PLAN_HAS_NO_KEYWORDS = 9; - - // The plan is not enabled and API cannot provide mutation, forecast or - // stats. - KEYWORD_PLAN_NOT_ENABLED = 10; - - // The requested plan cannot be found for providing forecast or stats. - KEYWORD_PLAN_NOT_FOUND = 11; - - // The plan is missing a cpc bid. - MISSING_BID = 13; - - // The plan is missing required forecast_period field. - MISSING_FORECAST_PERIOD = 14; - - // The plan's forecast_period has invalid forecast date range. - INVALID_FORECAST_DATE_RANGE = 15; - - // The plan's name is invalid. - INVALID_NAME = 16; - } - - -} diff --git a/google/ads/googleads/v7/errors/keyword_plan_idea_error.proto b/google/ads/googleads/v7/errors/keyword_plan_idea_error.proto deleted file mode 100644 index e06d962d1..000000000 --- a/google/ads/googleads/v7/errors/keyword_plan_idea_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanIdeaErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing errors from KeywordPlanIdeaService. - -// Container for enum describing possible errors from KeywordPlanIdeaService. -message KeywordPlanIdeaErrorEnum { - // Enum describing possible errors from KeywordPlanIdeaService. - enum KeywordPlanIdeaError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Error when crawling the input URL. - URL_CRAWL_ERROR = 2; - - // The input has an invalid value. - INVALID_VALUE = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/label_error.proto b/google/ads/googleads/v7/errors/label_error.proto deleted file mode 100644 index e3a36cafb..000000000 --- a/google/ads/googleads/v7/errors/label_error.proto +++ /dev/null @@ -1,73 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "LabelErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing label errors. - -// Container for enum describing possible label errors. -message LabelErrorEnum { - // Enum describing possible label errors. - enum LabelError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An inactive label cannot be applied. - CANNOT_APPLY_INACTIVE_LABEL = 2; - - // A label cannot be applied to a disabled ad group criterion. - CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION = 3; - - // A label cannot be applied to a negative ad group criterion. - CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION = 4; - - // Cannot apply more than 50 labels per resource. - EXCEEDED_LABEL_LIMIT_PER_TYPE = 5; - - // Labels from a manager account cannot be applied to campaign, ad group, - // ad group ad, or ad group criterion resources. - INVALID_RESOURCE_FOR_MANAGER_LABEL = 6; - - // Label names must be unique. - DUPLICATE_NAME = 7; - - // Label names cannot be empty. - INVALID_LABEL_NAME = 8; - - // Labels cannot be applied to a draft. - CANNOT_ATTACH_LABEL_TO_DRAFT = 9; - - // Labels not from a manager account cannot be applied to the customer - // resource. - CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER = 10; - } - - -} diff --git a/google/ads/googleads/v7/errors/language_code_error.proto b/google/ads/googleads/v7/errors/language_code_error.proto deleted file mode 100644 index 3fa3c72c5..000000000 --- a/google/ads/googleads/v7/errors/language_code_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "LanguageCodeErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing language code errors. - -// Container for enum describing language code errors. -message LanguageCodeErrorEnum { - // Enum describing language code errors. - enum LanguageCodeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The input language code is not recognized. - LANGUAGE_CODE_NOT_FOUND = 2; - - // The language code is not supported. - INVALID_LANGUAGE_CODE = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/list_operation_error.proto b/google/ads/googleads/v7/errors/list_operation_error.proto deleted file mode 100644 index 08c418fc5..000000000 --- a/google/ads/googleads/v7/errors/list_operation_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ListOperationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing list operation errors. - -// Container for enum describing possible list operation errors. -message ListOperationErrorEnum { - // Enum describing possible list operation errors. - enum ListOperationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Field required in value is missing. - REQUIRED_FIELD_MISSING = 7; - - // Duplicate or identical value is sent in multiple list operations. - DUPLICATE_VALUES = 8; - } - - -} diff --git a/google/ads/googleads/v7/errors/manager_link_error.proto b/google/ads/googleads/v7/errors/manager_link_error.proto deleted file mode 100644 index e884e9257..000000000 --- a/google/ads/googleads/v7/errors/manager_link_error.proto +++ /dev/null @@ -1,97 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ManagerLinkErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ManagerLink errors. - -// Container for enum describing possible ManagerLink errors. -message ManagerLinkErrorEnum { - // Enum describing possible ManagerLink errors. - enum ManagerLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The manager and client have incompatible account types. - ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING = 2; - - // Client is already linked to too many managers. - TOO_MANY_MANAGERS = 3; - - // Manager has too many pending invitations. - TOO_MANY_INVITES = 4; - - // Client is already invited by this manager. - ALREADY_INVITED_BY_THIS_MANAGER = 5; - - // The client is already managed by this manager. - ALREADY_MANAGED_BY_THIS_MANAGER = 6; - - // Client is already managed in hierarchy. - ALREADY_MANAGED_IN_HIERARCHY = 7; - - // Manager and sub-manager to be linked have duplicate client. - DUPLICATE_CHILD_FOUND = 8; - - // Client has no active user that can access the client account. - CLIENT_HAS_NO_ADMIN_USER = 9; - - // Adding this link would exceed the maximum hierarchy depth. - MAX_DEPTH_EXCEEDED = 10; - - // Adding this link will create a cycle. - CYCLE_NOT_ALLOWED = 11; - - // Manager account has the maximum number of linked clients. - TOO_MANY_ACCOUNTS = 12; - - // Parent manager account has the maximum number of linked clients. - TOO_MANY_ACCOUNTS_AT_MANAGER = 13; - - // The account is not authorized owner. - NON_OWNER_USER_CANNOT_MODIFY_LINK = 14; - - // Your manager account is suspended, and you are no longer allowed to link - // to clients. - SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS = 15; - - // You are not allowed to move a client to a manager that is not under your - // current hierarchy. - CLIENT_OUTSIDE_TREE = 16; - - // The changed status for mutate link is invalid. - INVALID_STATUS_CHANGE = 17; - - // The change for mutate link is invalid. - INVALID_CHANGE = 18; - } - - -} diff --git a/google/ads/googleads/v7/errors/media_bundle_error.proto b/google/ads/googleads/v7/errors/media_bundle_error.proto deleted file mode 100644 index 2de86ad19..000000000 --- a/google/ads/googleads/v7/errors/media_bundle_error.proto +++ /dev/null @@ -1,110 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MediaBundleErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing media bundle errors. - -// Container for enum describing possible media bundle errors. -message MediaBundleErrorEnum { - // Enum describing possible media bundle errors. - enum MediaBundleError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // There was a problem with the request. - BAD_REQUEST = 3; - - // HTML5 ads using DoubleClick Studio created ZIP files are not supported. - DOUBLECLICK_BUNDLE_NOT_ALLOWED = 4; - - // Cannot reference URL external to the media bundle. - EXTERNAL_URL_NOT_ALLOWED = 5; - - // Media bundle file is too large. - FILE_TOO_LARGE = 6; - - // ZIP file from Google Web Designer is not published. - GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 7; - - // Input was invalid. - INVALID_INPUT = 8; - - // There was a problem with the media bundle. - INVALID_MEDIA_BUNDLE = 9; - - // There was a problem with one or more of the media bundle entries. - INVALID_MEDIA_BUNDLE_ENTRY = 10; - - // The media bundle contains a file with an unknown mime type - INVALID_MIME_TYPE = 11; - - // The media bundle contain an invalid asset path. - INVALID_PATH = 12; - - // HTML5 ad is trying to reference an asset not in .ZIP file - INVALID_URL_REFERENCE = 13; - - // Media data is too large. - MEDIA_DATA_TOO_LARGE = 14; - - // The media bundle contains no primary entry. - MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 15; - - // There was an error on the server. - SERVER_ERROR = 16; - - // The image could not be stored. - STORAGE_ERROR = 17; - - // Media bundle created with the Swiffy tool is not allowed. - SWIFFY_BUNDLE_NOT_ALLOWED = 18; - - // The media bundle contains too many files. - TOO_MANY_FILES = 19; - - // The media bundle is not of legal dimensions. - UNEXPECTED_SIZE = 20; - - // Google Web Designer not created for "Google Ads" environment. - UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 21; - - // Unsupported HTML5 feature in HTML5 asset. - UNSUPPORTED_HTML5_FEATURE = 22; - - // URL in HTML5 entry is not ssl compliant. - URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 23; - - // Custom exits not allowed in HTML5 entry. - CUSTOM_EXIT_NOT_ALLOWED = 24; - } - - -} diff --git a/google/ads/googleads/v7/errors/media_file_error.proto b/google/ads/googleads/v7/errors/media_file_error.proto deleted file mode 100644 index bbe9e175f..000000000 --- a/google/ads/googleads/v7/errors/media_file_error.proto +++ /dev/null @@ -1,113 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MediaFileErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing media file errors. - -// Container for enum describing possible media file errors. -message MediaFileErrorEnum { - // Enum describing possible media file errors. - enum MediaFileError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot create a standard icon type. - CANNOT_CREATE_STANDARD_ICON = 2; - - // May only select Standard Icons alone. - CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES = 3; - - // Image contains both a media file ID and data. - CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA = 4; - - // A media file with given type and reference ID already exists. - DUPLICATE_MEDIA = 5; - - // A required field was not specified or is an empty string. - EMPTY_FIELD = 6; - - // A media file may only be modified once per call. - RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 7; - - // Field is not supported for the media sub type. - FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE = 8; - - // The media file ID is invalid. - INVALID_MEDIA_FILE_ID = 9; - - // The media subtype is invalid. - INVALID_MEDIA_SUB_TYPE = 10; - - // The media file type is invalid. - INVALID_MEDIA_FILE_TYPE = 11; - - // The mimetype is invalid. - INVALID_MIME_TYPE = 12; - - // The media reference ID is invalid. - INVALID_REFERENCE_ID = 13; - - // The YouTube video ID is invalid. - INVALID_YOU_TUBE_ID = 14; - - // Media file has failed transcoding - MEDIA_FILE_FAILED_TRANSCODING = 15; - - // Media file has not been transcoded. - MEDIA_NOT_TRANSCODED = 16; - - // The media type does not match the actual media file's type. - MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE = 17; - - // None of the fields have been specified. - NO_FIELDS_SPECIFIED = 18; - - // One of reference ID or media file ID must be specified. - NULL_REFERENCE_ID_AND_MEDIA_ID = 19; - - // The string has too many characters. - TOO_LONG = 20; - - // The specified type is not supported. - UNSUPPORTED_TYPE = 21; - - // YouTube is unavailable for requesting video data. - YOU_TUBE_SERVICE_UNAVAILABLE = 22; - - // The YouTube video has a non positive duration. - YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION = 23; - - // The YouTube video ID is syntactically valid but the video was not found. - YOU_TUBE_VIDEO_NOT_FOUND = 24; - } - - -} diff --git a/google/ads/googleads/v7/errors/media_upload_error.proto b/google/ads/googleads/v7/errors/media_upload_error.proto deleted file mode 100644 index 2ca612f26..000000000 --- a/google/ads/googleads/v7/errors/media_upload_error.proto +++ /dev/null @@ -1,152 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MediaUploadErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing media uploading errors. - -// Container for enum describing possible media uploading errors. -message MediaUploadErrorEnum { - // Enum describing possible media uploading errors. - enum MediaUploadError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The uploaded file is too big. - FILE_TOO_BIG = 2; - - // Image data is unparseable. - UNPARSEABLE_IMAGE = 3; - - // Animated images are not allowed. - ANIMATED_IMAGE_NOT_ALLOWED = 4; - - // The image or media bundle format is not allowed. - FORMAT_NOT_ALLOWED = 5; - - // Cannot reference URL external to the media bundle. - EXTERNAL_URL_NOT_ALLOWED = 6; - - // HTML5 ad is trying to reference an asset not in .ZIP file. - INVALID_URL_REFERENCE = 7; - - // The media bundle contains no primary entry. - MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 8; - - // Animation has disallowed visual effects. - ANIMATED_VISUAL_EFFECT = 9; - - // Animation longer than the allowed 30 second limit. - ANIMATION_TOO_LONG = 10; - - // The aspect ratio of the image does not match the expected aspect ratios - // provided in the asset spec. - ASPECT_RATIO_NOT_ALLOWED = 11; - - // Audio files are not allowed in bundle. - AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 12; - - // CMYK jpegs are not supported. - CMYK_JPEG_NOT_ALLOWED = 13; - - // Flash movies are not allowed. - FLASH_NOT_ALLOWED = 14; - - // The frame rate of the video is higher than the allowed 5fps. - FRAME_RATE_TOO_HIGH = 15; - - // ZIP file from Google Web Designer is not published. - GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 16; - - // Image constraints are violated, but more details (like - // DIMENSIONS_NOT_ALLOWED or ASPECT_RATIO_NOT_ALLOWED) can not be provided. - // This happens when asset spec contains more than one constraint and - // criteria of different constraints are violated. - IMAGE_CONSTRAINTS_VIOLATED = 17; - - // Media bundle data is unrecognizable. - INVALID_MEDIA_BUNDLE = 18; - - // There was a problem with one or more of the media bundle entries. - INVALID_MEDIA_BUNDLE_ENTRY = 19; - - // The asset has an invalid mime type. - INVALID_MIME_TYPE = 20; - - // The media bundle contains an invalid asset path. - INVALID_PATH = 21; - - // Image has layout problem. - LAYOUT_PROBLEM = 22; - - // An asset had a URL reference that is malformed per RFC 1738 convention. - MALFORMED_URL = 23; - - // The uploaded media bundle format is not allowed. - MEDIA_BUNDLE_NOT_ALLOWED = 24; - - // The media bundle is not compatible with the asset spec product type. - // (E.g. Gmail, dynamic remarketing, etc.) - MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE = 25; - - // A bundle being uploaded that is incompatible with multiple assets for - // different reasons. - MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS = 26; - - // The media bundle contains too many files. - TOO_MANY_FILES_IN_MEDIA_BUNDLE = 27; - - // Google Web Designer not created for "Google Ads" environment. - UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 28; - - // Unsupported HTML5 feature in HTML5 asset. - UNSUPPORTED_HTML5_FEATURE = 29; - - // URL in HTML5 entry is not SSL compliant. - URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 30; - - // Video file name is longer than the 50 allowed characters. - VIDEO_FILE_NAME_TOO_LONG = 31; - - // Multiple videos with same name in a bundle. - VIDEO_MULTIPLE_FILES_WITH_SAME_NAME = 32; - - // Videos are not allowed in media bundle. - VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 33; - - // This type of media cannot be uploaded through the Google Ads API. - CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API = 34; - - // The dimensions of the image are not allowed. - DIMENSIONS_NOT_ALLOWED = 35; - } - - -} diff --git a/google/ads/googleads/v7/errors/multiplier_error.proto b/google/ads/googleads/v7/errors/multiplier_error.proto deleted file mode 100644 index 05b2c6c3e..000000000 --- a/google/ads/googleads/v7/errors/multiplier_error.proto +++ /dev/null @@ -1,81 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MultiplierErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing multiplier errors. - -// Container for enum describing possible multiplier errors. -message MultiplierErrorEnum { - // Enum describing possible multiplier errors. - enum MultiplierError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Multiplier value is too high - MULTIPLIER_TOO_HIGH = 2; - - // Multiplier value is too low - MULTIPLIER_TOO_LOW = 3; - - // Too many fractional digits - TOO_MANY_FRACTIONAL_DIGITS = 4; - - // A multiplier cannot be set for this bidding strategy - MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY = 5; - - // A multiplier cannot be set when there is no base bid (e.g., content max - // cpc) - MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING = 6; - - // A bid multiplier must be specified - NO_MULTIPLIER_SPECIFIED = 7; - - // Multiplier causes bid to exceed daily budget - MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET = 8; - - // Multiplier causes bid to exceed monthly budget - MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET = 9; - - // Multiplier causes bid to exceed custom budget - MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET = 10; - - // Multiplier causes bid to exceed maximum allowed bid - MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID = 11; - - // Multiplier causes bid to become less than the minimum bid allowed - BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER = 12; - - // Multiplier type (cpc vs. cpm) needs to match campaign's bidding strategy - MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH = 13; - } - - -} diff --git a/google/ads/googleads/v7/errors/mutate_error.proto b/google/ads/googleads/v7/errors/mutate_error.proto deleted file mode 100644 index acb022ae5..000000000 --- a/google/ads/googleads/v7/errors/mutate_error.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MutateErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing mutate errors. - -// Container for enum describing possible mutate errors. -message MutateErrorEnum { - // Enum describing possible mutate errors. - enum MutateError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Requested resource was not found. - RESOURCE_NOT_FOUND = 3; - - // Cannot mutate the same resource twice in one request. - ID_EXISTS_IN_MULTIPLE_MUTATES = 7; - - // The field's contents don't match another field that represents the same - // data. - INCONSISTENT_FIELD_VALUES = 8; - - // Mutates are not allowed for the requested resource. - MUTATE_NOT_ALLOWED = 9; - - // The resource isn't in Google Ads. It belongs to another ads system. - RESOURCE_NOT_IN_GOOGLE_ADS = 10; - - // The resource being created already exists. - RESOURCE_ALREADY_EXISTS = 11; - - // This resource cannot be used with "validate_only". - RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY = 12; - - // Attempt to write to read-only fields. - RESOURCE_READ_ONLY = 13; - } - - -} diff --git a/google/ads/googleads/v7/errors/new_resource_creation_error.proto b/google/ads/googleads/v7/errors/new_resource_creation_error.proto deleted file mode 100644 index a693000c3..000000000 --- a/google/ads/googleads/v7/errors/new_resource_creation_error.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "NewResourceCreationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing new resource creation errors. - -// Container for enum describing possible new resource creation errors. -message NewResourceCreationErrorEnum { - // Enum describing possible new resource creation errors. - enum NewResourceCreationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Do not set the id field while creating new resources. - CANNOT_SET_ID_FOR_CREATE = 2; - - // Creating more than one resource with the same temp ID is not allowed. - DUPLICATE_TEMP_IDS = 3; - - // Parent resource with specified temp ID failed validation, so no - // validation will be done for this child resource. - TEMP_ID_RESOURCE_HAD_ERRORS = 4; - } - - -} diff --git a/google/ads/googleads/v7/errors/not_allowlisted_error.proto b/google/ads/googleads/v7/errors/not_allowlisted_error.proto deleted file mode 100644 index d14092cdd..000000000 --- a/google/ads/googleads/v7/errors/not_allowlisted_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "NotAllowlistedErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing not allowlisted errors. - -// Container for enum describing possible not allowlisted errors. -message NotAllowlistedErrorEnum { - // Enum describing possible not allowlisted errors. - enum NotAllowlistedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Customer is not allowlisted for accessing this feature. - CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/not_empty_error.proto b/google/ads/googleads/v7/errors/not_empty_error.proto deleted file mode 100644 index dca61a23c..000000000 --- a/google/ads/googleads/v7/errors/not_empty_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "NotEmptyErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing not empty errors. - -// Container for enum describing possible not empty errors. -message NotEmptyErrorEnum { - // Enum describing possible not empty errors. - enum NotEmptyError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Empty list. - EMPTY_LIST = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/null_error.proto b/google/ads/googleads/v7/errors/null_error.proto deleted file mode 100644 index 61738c2f9..000000000 --- a/google/ads/googleads/v7/errors/null_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "NullErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing null errors. - -// Container for enum describing possible null errors. -message NullErrorEnum { - // Enum describing possible null errors. - enum NullError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Specified list/container must not contain any null elements - NULL_CONTENT = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/offline_user_data_job_error.proto b/google/ads/googleads/v7/errors/offline_user_data_job_error.proto deleted file mode 100644 index 353c533bb..000000000 --- a/google/ads/googleads/v7/errors/offline_user_data_job_error.proto +++ /dev/null @@ -1,146 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing offline user data job errors. - -// Container for enum describing possible offline user data job errors. -message OfflineUserDataJobErrorEnum { - // Enum describing possible request errors. - enum OfflineUserDataJobError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The user list ID provided for the job is invalid. - INVALID_USER_LIST_ID = 3; - - // Type of the user list is not applicable for the job. - INVALID_USER_LIST_TYPE = 4; - - // Customer is not allowisted for using user ID in upload data. - NOT_ON_ALLOWLIST_FOR_USER_ID = 33; - - // Upload data is not compatible with the upload key type of the associated - // user list. - INCOMPATIBLE_UPLOAD_KEY_TYPE = 6; - - // The user identifier is missing valid data. - MISSING_USER_IDENTIFIER = 7; - - // The mobile ID is malformed. - INVALID_MOBILE_ID_FORMAT = 8; - - // Maximum number of user identifiers allowed per request is 100,000. - TOO_MANY_USER_IDENTIFIERS = 9; - - // Customer is not on the allow-list for store sales direct data. - NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT = 31; - - // Customer is not on the allow-list for unified store sales data. - NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES = 32; - - // The partner ID in store sales direct metadata is invalid. - INVALID_PARTNER_ID = 11; - - // The data in user identifier should not be encoded. - INVALID_ENCODING = 12; - - // The country code is invalid. - INVALID_COUNTRY_CODE = 13; - - // Incompatible user identifier when using third_party_user_id for store - // sales direct first party data or not using third_party_user_id for store - // sales third party data. - INCOMPATIBLE_USER_IDENTIFIER = 14; - - // A transaction time in the future is not allowed. - FUTURE_TRANSACTION_TIME = 15; - - // The conversion_action specified in transaction_attributes is used to - // report conversions to a conversion action configured in Google Ads. This - // error indicates there is no such conversion action in the account. - INVALID_CONVERSION_ACTION = 16; - - // Mobile ID is not supported for store sales direct data. - MOBILE_ID_NOT_SUPPORTED = 17; - - // When a remove-all operation is provided, it has to be the first operation - // of the operation list. - INVALID_OPERATION_ORDER = 18; - - // Mixing creation and removal of offline data in the same job is not - // allowed. - CONFLICTING_OPERATION = 19; - - // The external update ID already exists. - EXTERNAL_UPDATE_ID_ALREADY_EXISTS = 21; - - // Once the upload job is started, new operations cannot be added. - JOB_ALREADY_STARTED = 22; - - // Remove operation is not allowed for store sales direct updates. - REMOVE_NOT_SUPPORTED = 23; - - // Remove-all is not supported for certain offline user data job types. - REMOVE_ALL_NOT_SUPPORTED = 24; - - // The SHA256 encoded value is malformed. - INVALID_SHA256_FORMAT = 25; - - // The custom key specified is not enabled for the unified store sales - // upload. - CUSTOM_KEY_DISABLED = 26; - - // The custom key specified is not predefined through the Google Ads UI. - CUSTOM_KEY_NOT_PREDEFINED = 27; - - // The custom key specified is not set in the upload. - CUSTOM_KEY_NOT_SET = 29; - - // The customer has not accepted the customer data terms in the conversion - // settings page. - CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 30; - - // User attributes cannot be uploaded into a user list. - ATTRIBUTES_NOT_APPLICABLE_FOR_CUSTOMER_MATCH_USER_LIST = 34; - - // Lifetime value bucket must be a number from 1-10, except for remove - // operation where 0 will be accepted. - LIFETIME_VALUE_BUCKET_NOT_IN_RANGE = 35; - - // Identifiers not supported for Customer Match attributes. User attributes - // can only be provided with contact info (email, phone, address) user - // identifiers. - INCOMPATIBLE_USER_IDENTIFIER_FOR_ATTRIBUTES = 36; - } - - -} diff --git a/google/ads/googleads/v7/errors/operation_access_denied_error.proto b/google/ads/googleads/v7/errors/operation_access_denied_error.proto deleted file mode 100644 index d7ab9a222..000000000 --- a/google/ads/googleads/v7/errors/operation_access_denied_error.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "OperationAccessDeniedErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing operation access denied errors. - -// Container for enum describing possible operation access denied errors. -message OperationAccessDeniedErrorEnum { - // Enum describing possible operation access denied errors. - enum OperationAccessDeniedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Unauthorized invocation of a service's method (get, mutate, etc.) - ACTION_NOT_PERMITTED = 2; - - // Unauthorized CREATE operation in invoking a service's mutate method. - CREATE_OPERATION_NOT_PERMITTED = 3; - - // Unauthorized REMOVE operation in invoking a service's mutate method. - REMOVE_OPERATION_NOT_PERMITTED = 4; - - // Unauthorized UPDATE operation in invoking a service's mutate method. - UPDATE_OPERATION_NOT_PERMITTED = 5; - - // A mutate action is not allowed on this resource, from this client. - MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT = 6; - - // This operation is not permitted on this campaign type - OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE = 7; - - // A CREATE operation may not set status to REMOVED. - CREATE_AS_REMOVED_NOT_PERMITTED = 8; - - // This operation is not allowed because the resource is removed. - OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 9; - - // This operation is not permitted on this ad group type. - OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE = 10; - - // The mutate is not allowed for this customer. - MUTATE_NOT_PERMITTED_FOR_CUSTOMER = 11; - } - - -} diff --git a/google/ads/googleads/v7/errors/operator_error.proto b/google/ads/googleads/v7/errors/operator_error.proto deleted file mode 100644 index 07381be4d..000000000 --- a/google/ads/googleads/v7/errors/operator_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "OperatorErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing operator errors. - -// Container for enum describing possible operator errors. -message OperatorErrorEnum { - // Enum describing possible operator errors. - enum OperatorError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Operator not supported. - OPERATOR_NOT_SUPPORTED = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/partial_failure_error.proto b/google/ads/googleads/v7/errors/partial_failure_error.proto deleted file mode 100644 index 18ef22842..000000000 --- a/google/ads/googleads/v7/errors/partial_failure_error.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PartialFailureErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing partial failure errors. - -// Container for enum describing possible partial failure errors. -message PartialFailureErrorEnum { - // Enum describing possible partial failure errors. - enum PartialFailureError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The partial failure field was false in the request. - // This method requires this field be set to true. - PARTIAL_FAILURE_MODE_REQUIRED = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/payments_account_error.proto b/google/ads/googleads/v7/errors/payments_account_error.proto deleted file mode 100644 index 53f880dad..000000000 --- a/google/ads/googleads/v7/errors/payments_account_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PaymentsAccountErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing payments account service errors. - -// Container for enum describing possible errors in payments account service. -message PaymentsAccountErrorEnum { - // Enum describing possible errors in payments account service. - enum PaymentsAccountError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Manager customers are not supported for payments account service. - NOT_SUPPORTED_FOR_MANAGER_CUSTOMER = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/policy_finding_error.proto b/google/ads/googleads/v7/errors/policy_finding_error.proto deleted file mode 100644 index df23c23dd..000000000 --- a/google/ads/googleads/v7/errors/policy_finding_error.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PolicyFindingErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing policy finding errors. - -// Container for enum describing possible policy finding errors. -message PolicyFindingErrorEnum { - // Enum describing possible policy finding errors. - enum PolicyFindingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The resource has been disapproved since the policy summary includes - // policy topics of type PROHIBITED. - POLICY_FINDING = 2; - - // The given policy topic does not exist. - POLICY_TOPIC_NOT_FOUND = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/policy_validation_parameter_error.proto b/google/ads/googleads/v7/errors/policy_validation_parameter_error.proto deleted file mode 100644 index 284c21be8..000000000 --- a/google/ads/googleads/v7/errors/policy_validation_parameter_error.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PolicyValidationParameterErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing policy validation parameter errors. - -// Container for enum describing possible policy validation parameter errors. -message PolicyValidationParameterErrorEnum { - // Enum describing possible policy validation parameter errors. - enum PolicyValidationParameterError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Ignorable policy topics are not supported for the ad type. - UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS = 2; - - // Exempt policy violation keys are not supported for the ad type. - UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS = 3; - - // Cannot set ignorable policy topics and exempt policy violation keys in - // the same policy violation parameter. - CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS = 4; - } - - -} diff --git a/google/ads/googleads/v7/errors/policy_violation_error.proto b/google/ads/googleads/v7/errors/policy_violation_error.proto deleted file mode 100644 index 7127bceaf..000000000 --- a/google/ads/googleads/v7/errors/policy_violation_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PolicyViolationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing policy violation errors. - -// Container for enum describing possible policy violation errors. -message PolicyViolationErrorEnum { - // Enum describing possible policy violation errors. - enum PolicyViolationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A policy was violated. See PolicyViolationDetails for more detail. - POLICY_ERROR = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/query_error.proto b/google/ads/googleads/v7/errors/query_error.proto deleted file mode 100644 index 418819fff..000000000 --- a/google/ads/googleads/v7/errors/query_error.proto +++ /dev/null @@ -1,222 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "QueryErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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 (i.e. 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; - - // Value passed was not a string when it should have been. I.e., 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 non-string 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/google/ads/googleads/v7/errors/quota_error.proto b/google/ads/googleads/v7/errors/quota_error.proto deleted file mode 100644 index 6031410a3..000000000 --- a/google/ads/googleads/v7/errors/quota_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "QuotaErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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; - - // Access is prohibited. - ACCESS_PROHIBITED = 3; - - // Too many requests in a short amount of time. - RESOURCE_TEMPORARILY_EXHAUSTED = 4; - } - - -} diff --git a/google/ads/googleads/v7/errors/range_error.proto b/google/ads/googleads/v7/errors/range_error.proto deleted file mode 100644 index 2369ce914..000000000 --- a/google/ads/googleads/v7/errors/range_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RangeErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing range errors. - -// Container for enum describing possible range errors. -message RangeErrorEnum { - // Enum describing possible range errors. - enum RangeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Too low. - TOO_LOW = 2; - - // Too high. - TOO_HIGH = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/reach_plan_error.proto b/google/ads/googleads/v7/errors/reach_plan_error.proto deleted file mode 100644 index 6ec8da3b7..000000000 --- a/google/ads/googleads/v7/errors/reach_plan_error.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing errors generated from ReachPlanService. - -// Container for enum describing possible errors returned from -// the ReachPlanService. -message ReachPlanErrorEnum { - // Enum describing possible errors from ReachPlanService. - enum ReachPlanError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Not forecastable due to missing rate card data. - NOT_FORECASTABLE_MISSING_RATE = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/recommendation_error.proto b/google/ads/googleads/v7/errors/recommendation_error.proto deleted file mode 100644 index 7ba61ae6b..000000000 --- a/google/ads/googleads/v7/errors/recommendation_error.proto +++ /dev/null @@ -1,90 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing errors from applying a recommendation. - -// Container for enum describing possible errors from applying a recommendation. -message RecommendationErrorEnum { - // Enum describing possible errors from applying a recommendation. - enum RecommendationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The specified budget amount is too low e.g. lower than minimum currency - // unit or lower than ad group minimum cost-per-click. - BUDGET_AMOUNT_TOO_SMALL = 2; - - // The specified budget amount is too large. - BUDGET_AMOUNT_TOO_LARGE = 3; - - // The specified budget amount is not a valid amount. e.g. not a multiple - // of minimum currency unit. - INVALID_BUDGET_AMOUNT = 4; - - // The specified keyword or ad violates ad policy. - POLICY_ERROR = 5; - - // The specified bid amount is not valid. e.g. too many fractional digits, - // or negative amount. - INVALID_BID_AMOUNT = 6; - - // The number of keywords in ad group have reached the maximum allowed. - ADGROUP_KEYWORD_LIMIT = 7; - - // The recommendation requested to apply has already been applied. - RECOMMENDATION_ALREADY_APPLIED = 8; - - // The recommendation requested to apply has been invalidated. - RECOMMENDATION_INVALIDATED = 9; - - // The number of operations in a single request exceeds the maximum allowed. - TOO_MANY_OPERATIONS = 10; - - // There are no operations in the request. - NO_OPERATIONS = 11; - - // Operations with multiple recommendation types are not supported when - // partial failure mode is not enabled. - DIFFERENT_TYPES_NOT_SUPPORTED = 12; - - // Request contains multiple operations with the same resource_name. - DUPLICATE_RESOURCE_NAME = 13; - - // The recommendation requested to dismiss has already been dismissed. - RECOMMENDATION_ALREADY_DISMISSED = 14; - - // The recommendation apply request was malformed and invalid. - INVALID_APPLY_REQUEST = 15; - } - - -} diff --git a/google/ads/googleads/v7/errors/region_code_error.proto b/google/ads/googleads/v7/errors/region_code_error.proto deleted file mode 100644 index a655fe943..000000000 --- a/google/ads/googleads/v7/errors/region_code_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RegionCodeErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing region code errors. - -// Container for enum describing possible region code errors. -message RegionCodeErrorEnum { - // Enum describing possible region code errors. - enum RegionCodeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Invalid region code. - INVALID_REGION_CODE = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/request_error.proto b/google/ads/googleads/v7/errors/request_error.proto deleted file mode 100644 index dda23e633..000000000 --- a/google/ads/googleads/v7/errors/request_error.proto +++ /dev/null @@ -1,119 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RequestErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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; - - // 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 developer-token parameter is required for all requests. - DEVELOPER_TOKEN_PARAMETER_MISSING = 19; - - // The login-customer-id parameter is required for this request. - LOGIN_CUSTOMER_ID_PARAMETER_MISSING = 20; - - // 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; - } - - -} diff --git a/google/ads/googleads/v7/errors/resource_access_denied_error.proto b/google/ads/googleads/v7/errors/resource_access_denied_error.proto deleted file mode 100644 index 60343cb70..000000000 --- a/google/ads/googleads/v7/errors/resource_access_denied_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ResourceAccessDeniedErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing resource access denied errors. - -// Container for enum describing possible resource access denied errors. -message ResourceAccessDeniedErrorEnum { - // Enum describing possible resource access denied errors. - enum ResourceAccessDeniedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // User did not have write access. - WRITE_ACCESS_DENIED = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/resource_count_limit_exceeded_error.proto b/google/ads/googleads/v7/errors/resource_count_limit_exceeded_error.proto deleted file mode 100644 index 45239314b..000000000 --- a/google/ads/googleads/v7/errors/resource_count_limit_exceeded_error.proto +++ /dev/null @@ -1,93 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ResourceCountLimitExceededErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing resource count limit exceeded errors. - -// Container for enum describing possible resource count limit exceeded errors. -message ResourceCountLimitExceededErrorEnum { - // Enum describing possible resource count limit exceeded errors. - enum ResourceCountLimitExceededError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Indicates that this request would exceed the number of allowed resources - // for the Google Ads account. The exact resource type and limit being - // checked can be inferred from accountLimitType. - ACCOUNT_LIMIT = 2; - - // Indicates that this request would exceed the number of allowed resources - // in a Campaign. The exact resource type and limit being checked can be - // inferred from accountLimitType, and the numeric id of the - // Campaign involved is given by enclosingId. - CAMPAIGN_LIMIT = 3; - - // Indicates that this request would exceed the number of allowed resources - // in an ad group. The exact resource type and limit being checked can be - // inferred from accountLimitType, and the numeric id of the - // ad group involved is given by enclosingId. - ADGROUP_LIMIT = 4; - - // Indicates that this request would exceed the number of allowed resources - // in an ad group ad. The exact resource type and limit being checked can - // be inferred from accountLimitType, and the enclosingId - // contains the ad group id followed by the ad id, separated by a single - // comma (,). - AD_GROUP_AD_LIMIT = 5; - - // Indicates that this request would exceed the number of allowed resources - // in an ad group criterion. The exact resource type and limit being checked - // can be inferred from accountLimitType, and the - // enclosingId contains the ad group id followed by the - // criterion id, separated by a single comma (,). - AD_GROUP_CRITERION_LIMIT = 6; - - // Indicates that this request would exceed the number of allowed resources - // in this shared set. The exact resource type and limit being checked can - // be inferred from accountLimitType, and the numeric id of the - // shared set involved is given by enclosingId. - SHARED_SET_LIMIT = 7; - - // Exceeds a limit related to a matching function. - MATCHING_FUNCTION_LIMIT = 8; - - // The response for this request would exceed the maximum number of rows - // that can be returned. - RESPONSE_ROW_LIMIT_EXCEEDED = 9; - - // This request would exceed a limit on the number of allowed resources. - // The details of which type of limit was exceeded will eventually be - // returned in ErrorDetails. - RESOURCE_LIMIT = 10; - } - - -} diff --git a/google/ads/googleads/v7/errors/setting_error.proto b/google/ads/googleads/v7/errors/setting_error.proto deleted file mode 100644 index 19d6c8275..000000000 --- a/google/ads/googleads/v7/errors/setting_error.proto +++ /dev/null @@ -1,85 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "SettingErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing setting errors. - -// Container for enum describing possible setting errors. -message SettingErrorEnum { - // Enum describing possible setting errors. - enum SettingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The campaign setting is not available for this Google Ads account. - SETTING_TYPE_IS_NOT_AVAILABLE = 3; - - // The setting is not compatible with the campaign. - SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN = 4; - - // The supplied TargetingSetting contains an invalid CriterionTypeGroup. See - // CriterionTypeGroup documentation for CriterionTypeGroups allowed - // in Campaign or AdGroup TargetingSettings. - TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP = 5; - - // TargetingSetting must not explicitly - // set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, - // PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in - // which case the system will set them to true automatically). - TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL = 6; - - // TargetingSetting cannot change any of - // the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, - // INCOME_RANGE) from true to false. - TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP = 7; - - // At least one feed id should be present. - DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT = 8; - - // The supplied DynamicSearchAdsSetting contains an invalid domain name. - DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME = 9; - - // The supplied DynamicSearchAdsSetting contains a subdomain name. - DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME = 10; - - // The supplied DynamicSearchAdsSetting contains an invalid language code. - DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE = 11; - - // TargetingSettings in search campaigns should not have - // CriterionTypeGroup.PLACEMENT set to targetAll. - TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN = 12; - - // The setting value is not compatible with the campaign type. - SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN = 20; - } - - -} diff --git a/google/ads/googleads/v7/errors/shared_criterion_error.proto b/google/ads/googleads/v7/errors/shared_criterion_error.proto deleted file mode 100644 index 4446f121a..000000000 --- a/google/ads/googleads/v7/errors/shared_criterion_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "SharedCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing shared criterion errors. - -// Container for enum describing possible shared criterion errors. -message SharedCriterionErrorEnum { - // Enum describing possible shared criterion errors. - enum SharedCriterionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The criterion is not appropriate for the shared set type. - CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE = 2; - } - - -} diff --git a/google/ads/googleads/v7/errors/shared_set_error.proto b/google/ads/googleads/v7/errors/shared_set_error.proto deleted file mode 100644 index 88357af62..000000000 --- a/google/ads/googleads/v7/errors/shared_set_error.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing shared set errors. - -// Container for enum describing possible shared set errors. -message SharedSetErrorEnum { - // Enum describing possible shared set errors. - enum SharedSetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The customer cannot create this type of shared set. - CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE = 2; - - // A shared set with this name already exists. - DUPLICATE_NAME = 3; - - // Removed shared sets cannot be mutated. - SHARED_SET_REMOVED = 4; - - // The shared set cannot be removed because it is in use. - SHARED_SET_IN_USE = 5; - } - - -} diff --git a/google/ads/googleads/v7/errors/size_limit_error.proto b/google/ads/googleads/v7/errors/size_limit_error.proto deleted file mode 100644 index 76e6982b0..000000000 --- a/google/ads/googleads/v7/errors/size_limit_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "SizeLimitErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::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. - REQUEST_SIZE_LIMIT_EXCEEDED = 2; - - // The number of entries in the response exceeds the system limit. - RESPONSE_SIZE_LIMIT_EXCEEDED = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/string_format_error.proto b/google/ads/googleads/v7/errors/string_format_error.proto deleted file mode 100644 index c8eab26e4..000000000 --- a/google/ads/googleads/v7/errors/string_format_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "StringFormatErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing string format errors. - -// Container for enum describing possible string format errors. -message StringFormatErrorEnum { - // Enum describing possible string format errors. - enum StringFormatError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The input string value contains disallowed characters. - ILLEGAL_CHARS = 2; - - // The input string value is invalid for the associated field. - INVALID_FORMAT = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/string_length_error.proto b/google/ads/googleads/v7/errors/string_length_error.proto deleted file mode 100644 index 7f06ec11b..000000000 --- a/google/ads/googleads/v7/errors/string_length_error.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "StringLengthErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing string length errors. - -// Container for enum describing possible string length errors. -message StringLengthErrorEnum { - // Enum describing possible string length errors. - enum StringLengthError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The specified field should have a least one non-whitespace character in - // it. - EMPTY = 4; - - // Too short. - TOO_SHORT = 2; - - // Too long. - TOO_LONG = 3; - } - - -} diff --git a/google/ads/googleads/v7/errors/third_party_app_analytics_link_error.proto b/google/ads/googleads/v7/errors/third_party_app_analytics_link_error.proto deleted file mode 100644 index 6c231e65b..000000000 --- a/google/ads/googleads/v7/errors/third_party_app_analytics_link_error.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ThirdPartyAppAnalyticsLinkErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing ThirdPartyAppAnalyticsLink errors. - -// Container for enum describing possible third party app analytics link errors. -message ThirdPartyAppAnalyticsLinkErrorEnum { - // Enum describing possible third party app analytics link errors. - enum ThirdPartyAppAnalyticsLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The provided analytics provider ID is invalid. - INVALID_ANALYTICS_PROVIDER_ID = 2; - - // The provided mobile app ID is invalid. - INVALID_MOBILE_APP_ID = 3; - - // The mobile app corresponding to the provided app ID is not - // active/enabled. - MOBILE_APP_IS_NOT_ENABLED = 4; - - // Regenerating shareable link ID is only allowed on active links - CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK = 5; - } - - -} diff --git a/google/ads/googleads/v7/errors/time_zone_error.proto b/google/ads/googleads/v7/errors/time_zone_error.proto deleted file mode 100644 index 8b74feff0..000000000 --- a/google/ads/googleads/v7/errors/time_zone_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "TimeZoneErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing time zone errors. - -// Container for enum describing possible time zone errors. -message TimeZoneErrorEnum { - // Enum describing possible currency code errors. - enum TimeZoneError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Time zone is not valid. - INVALID_TIME_ZONE = 5; - } - - -} diff --git a/google/ads/googleads/v7/errors/url_field_error.proto b/google/ads/googleads/v7/errors/url_field_error.proto deleted file mode 100644 index 467b0f675..000000000 --- a/google/ads/googleads/v7/errors/url_field_error.proto +++ /dev/null @@ -1,214 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "UrlFieldErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing url field errors. - -// Container for enum describing possible url field errors. -message UrlFieldErrorEnum { - // Enum describing possible url field errors. - enum UrlFieldError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The tracking url template is invalid. - INVALID_TRACKING_URL_TEMPLATE = 2; - - // The tracking url template contains invalid tag. - INVALID_TAG_IN_TRACKING_URL_TEMPLATE = 3; - - // The tracking url template must contain at least one tag (e.g. {lpurl}), - // This applies only to tracking url template associated with website ads or - // product ads. - MISSING_TRACKING_URL_TEMPLATE_TAG = 4; - - // The tracking url template must start with a valid protocol (or lpurl - // tag). - MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 5; - - // The tracking url template starts with an invalid protocol. - INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 6; - - // The tracking url template contains illegal characters. - MALFORMED_TRACKING_URL_TEMPLATE = 7; - - // The tracking url template must contain a host name (or lpurl tag). - MISSING_HOST_IN_TRACKING_URL_TEMPLATE = 8; - - // The tracking url template has an invalid or missing top level domain - // extension. - INVALID_TLD_IN_TRACKING_URL_TEMPLATE = 9; - - // The tracking url template contains nested occurrences of the same - // conditional tag (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG = 10; - - // The final url is invalid. - INVALID_FINAL_URL = 11; - - // The final url contains invalid tag. - INVALID_TAG_IN_FINAL_URL = 12; - - // The final url contains nested occurrences of the same conditional tag - // (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_FINAL_URL_TAG = 13; - - // The final url must start with a valid protocol. - MISSING_PROTOCOL_IN_FINAL_URL = 14; - - // The final url starts with an invalid protocol. - INVALID_PROTOCOL_IN_FINAL_URL = 15; - - // The final url contains illegal characters. - MALFORMED_FINAL_URL = 16; - - // The final url must contain a host name. - MISSING_HOST_IN_FINAL_URL = 17; - - // The tracking url template has an invalid or missing top level domain - // extension. - INVALID_TLD_IN_FINAL_URL = 18; - - // The final mobile url is invalid. - INVALID_FINAL_MOBILE_URL = 19; - - // The final mobile url contains invalid tag. - INVALID_TAG_IN_FINAL_MOBILE_URL = 20; - - // The final mobile url contains nested occurrences of the same conditional - // tag (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG = 21; - - // The final mobile url must start with a valid protocol. - MISSING_PROTOCOL_IN_FINAL_MOBILE_URL = 22; - - // The final mobile url starts with an invalid protocol. - INVALID_PROTOCOL_IN_FINAL_MOBILE_URL = 23; - - // The final mobile url contains illegal characters. - MALFORMED_FINAL_MOBILE_URL = 24; - - // The final mobile url must contain a host name. - MISSING_HOST_IN_FINAL_MOBILE_URL = 25; - - // The tracking url template has an invalid or missing top level domain - // extension. - INVALID_TLD_IN_FINAL_MOBILE_URL = 26; - - // The final app url is invalid. - INVALID_FINAL_APP_URL = 27; - - // The final app url contains invalid tag. - INVALID_TAG_IN_FINAL_APP_URL = 28; - - // The final app url contains nested occurrences of the same conditional tag - // (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_FINAL_APP_URL_TAG = 29; - - // More than one app url found for the same OS type. - MULTIPLE_APP_URLS_FOR_OSTYPE = 30; - - // The OS type given for an app url is not valid. - INVALID_OSTYPE = 31; - - // The protocol given for an app url is not valid. (E.g. "android-app://") - INVALID_PROTOCOL_FOR_APP_URL = 32; - - // The package id (app id) given for an app url is not valid. - INVALID_PACKAGE_ID_FOR_APP_URL = 33; - - // The number of url custom parameters for an resource exceeds the maximum - // limit allowed. - URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT = 34; - - // An invalid character appears in the parameter key. - INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY = 39; - - // An invalid character appears in the parameter value. - INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE = 40; - - // The url custom parameter value fails url tag validation. - INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE = 41; - - // The custom parameter contains nested occurrences of the same conditional - // tag (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG = 42; - - // The protocol (http:// or https://) is missing. - MISSING_PROTOCOL = 43; - - // Unsupported protocol in URL. Only http and https are supported. - INVALID_PROTOCOL = 52; - - // The url is invalid. - INVALID_URL = 44; - - // Destination Url is deprecated. - DESTINATION_URL_DEPRECATED = 45; - - // The url contains invalid tag. - INVALID_TAG_IN_URL = 46; - - // The url must contain at least one tag (e.g. {lpurl}). - MISSING_URL_TAG = 47; - - // Duplicate url id. - DUPLICATE_URL_ID = 48; - - // Invalid url id. - INVALID_URL_ID = 49; - - // The final url suffix cannot begin with '?' or '&' characters and must be - // a valid query string. - FINAL_URL_SUFFIX_MALFORMED = 50; - - // The final url suffix cannot contain {lpurl} related or {ignore} tags. - INVALID_TAG_IN_FINAL_URL_SUFFIX = 51; - - // The top level domain is invalid, e.g. not a public top level domain - // listed in publicsuffix.org. - INVALID_TOP_LEVEL_DOMAIN = 53; - - // Malformed top level domain in URL. - MALFORMED_TOP_LEVEL_DOMAIN = 54; - - // Malformed URL. - MALFORMED_URL = 55; - - // No host found in URL. - MISSING_HOST = 56; - - // Custom parameter value cannot be null. - NULL_CUSTOM_PARAMETER_VALUE = 57; - } - - -} diff --git a/google/ads/googleads/v7/errors/user_data_error.proto b/google/ads/googleads/v7/errors/user_data_error.proto deleted file mode 100644 index 409f94065..000000000 --- a/google/ads/googleads/v7/errors/user_data_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "UserDataErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing user data errors. - -// Container for enum describing possible user data errors. -message UserDataErrorEnum { - // Enum describing possible request errors. - enum UserDataError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Customer is not allowed to perform operations related to Customer Match. - OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED = 2; - - // Maximum number of user identifiers allowed for each mutate is 100. - TOO_MANY_USER_IDENTIFIERS = 3; - - // Current user list is not applicable for the given customer. - USER_LIST_NOT_APPLICABLE = 4; - } - - -} diff --git a/google/ads/googleads/v7/errors/user_list_error.proto b/google/ads/googleads/v7/errors/user_list_error.proto deleted file mode 100644 index 9ac000ae7..000000000 --- a/google/ads/googleads/v7/errors/user_list_error.proto +++ /dev/null @@ -1,129 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "UserListErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing user list errors. - -// Container for enum describing possible user list errors. -message UserListErrorEnum { - // Enum describing possible user list errors. - enum UserListError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Creating and updating external remarketing user lists is not supported. - EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED = 2; - - // Concrete type of user list is required. - CONCRETE_TYPE_REQUIRED = 3; - - // Creating/updating user list conversion types requires specifying the - // conversion type Id. - CONVERSION_TYPE_ID_REQUIRED = 4; - - // Remarketing user list cannot have duplicate conversion types. - DUPLICATE_CONVERSION_TYPES = 5; - - // Conversion type is invalid/unknown. - INVALID_CONVERSION_TYPE = 6; - - // User list description is empty or invalid. - INVALID_DESCRIPTION = 7; - - // User list name is empty or invalid. - INVALID_NAME = 8; - - // Type of the UserList does not match. - INVALID_TYPE = 9; - - // Embedded logical user lists are not allowed. - CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND = 10; - - // User list rule operand is invalid. - INVALID_USER_LIST_LOGICAL_RULE_OPERAND = 11; - - // Name is already being used for another user list for the account. - NAME_ALREADY_USED = 12; - - // Name is required when creating a new conversion type. - NEW_CONVERSION_TYPE_NAME_REQUIRED = 13; - - // The given conversion type name has been used. - CONVERSION_TYPE_NAME_ALREADY_USED = 14; - - // Only an owner account may edit a user list. - OWNERSHIP_REQUIRED_FOR_SET = 15; - - // Creating user list without setting type in oneof user_list field, or - // creating/updating read-only user list types is not allowed. - USER_LIST_MUTATE_NOT_SUPPORTED = 16; - - // Rule is invalid. - INVALID_RULE = 17; - - // The specified date range is empty. - INVALID_DATE_RANGE = 27; - - // A UserList which is privacy sensitive or legal rejected cannot be mutated - // by external users. - CAN_NOT_MUTATE_SENSITIVE_USERLIST = 28; - - // Maximum number of rulebased user lists a customer can have. - MAX_NUM_RULEBASED_USERLISTS = 29; - - // BasicUserList's billable record field cannot be modified once it is set. - CANNOT_MODIFY_BILLABLE_RECORD_COUNT = 30; - - // crm_based_user_list.app_id field must be set when upload_key_type is - // MOBILE_ADVERTISING_ID. - APP_ID_NOT_SET = 31; - - // Name of the user list is reserved for system generated lists and cannot - // be used. - USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST = 32; - - // Advertiser needs to be on the allow-list to use remarketing lists created - // from advertiser uploaded data (e.g., Customer Match lists). - ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA = 37; - - // The provided rule_type is not supported for the user list. - RULE_TYPE_IS_NOT_SUPPORTED = 34; - - // Similar user list cannot be used as a logical user list operand. - CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND = 35; - - // Logical user list should not have a mix of CRM based user list and other - // types of lists in its rules. - CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS = 36; - } - - -} diff --git a/google/ads/googleads/v7/errors/youtube_video_registration_error.proto b/google/ads/googleads/v7/errors/youtube_video_registration_error.proto deleted file mode 100644 index 1f6aacc8f..000000000 --- a/google/ads/googleads/v7/errors/youtube_video_registration_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v7.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "YoutubeVideoRegistrationErrorProto"; -option java_package = "com.google.ads.googleads.v7.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V7::Errors"; - -// Proto file describing YouTube video registration errors. - -// Container for enum describing YouTube video registration errors. -message YoutubeVideoRegistrationErrorEnum { - // Enum describing YouTube video registration errors. - enum YoutubeVideoRegistrationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Video to be registered wasn't found. - VIDEO_NOT_FOUND = 2; - - // Video to be registered is not accessible (e.g. private). - VIDEO_NOT_ACCESSIBLE = 3; - - // Video to be registered is not eligible (e.g. mature content). - VIDEO_NOT_ELIGIBLE = 4; - } - - -} diff --git a/google/ads/googleads/v7/googleads_gapic.yaml b/google/ads/googleads/v7/googleads_gapic.yaml deleted file mode 100644 index 9b1181eec..000000000 --- a/google/ads/googleads/v7/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.V7.Services - go: - package_name: google.golang.org/google/ads/googleads/v7/services - java: - package_name: com.google.ads.googleads.v7.services - nodejs: - package_name: v7.services - php: - package_name: Google\Ads\GoogleAds\V7\Services - python: - package_name: google.ads.googleads_v7.gapic.services - ruby: - package_name: Google::Ads::Googleads::V7::Services -interfaces: -- name: google.ads.googleads.v7.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/google/ads/googleads/v7/googleads_grpc_service_config.json b/google/ads/googleads/v7/googleads_grpc_service_config.json deleted file mode 100644 index d96b42a4c..000000000 --- a/google/ads/googleads/v7/googleads_grpc_service_config.json +++ /dev/null @@ -1,396 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.ads.googleads.v7.services.AccountBudgetProposalService" - }, - { - "service": "google.ads.googleads.v7.services.AccountBudgetService" - }, - { - "service": "google.ads.googleads.v7.services.AccountLinkService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupAdAssetViewService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupAdLabelService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupAdService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupAssetService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupAudienceViewService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupBidModifierService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupCriterionLabelService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupCriterionService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupCriterionSimulationService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupExtensionSettingService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupFeedService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupLabelService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupService" - }, - { - "service": "google.ads.googleads.v7.services.AdGroupSimulationService" - }, - { - "service": "google.ads.googleads.v7.services.AdParameterService" - }, - { - "service": "google.ads.googleads.v7.services.AdScheduleViewService" - }, - { - "service": "google.ads.googleads.v7.services.AdService" - }, - { - "service": "google.ads.googleads.v7.services.AgeRangeViewService" - }, - { - "service": "google.ads.googleads.v7.services.AssetService" - }, - { - "service": "google.ads.googleads.v7.services.BatchJobService" - }, - { - "service": "google.ads.googleads.v7.services.BiddingStrategyService" - }, - { - "service": "google.ads.googleads.v7.services.BiddingStrategySimulationService" - }, - { - "service": "google.ads.googleads.v7.services.BillingSetupService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignAssetService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignAudienceViewService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignBidModifierService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignBudgetService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignCriterionService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignCriterionSimulationService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignDraftService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignExperimentService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignExtensionSettingService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignFeedService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignLabelService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignSharedSetService" - }, - { - "service": "google.ads.googleads.v7.services.CampaignSimulationService" - }, - { - "service": "google.ads.googleads.v7.services.CarrierConstantService" - }, - { - "service": "google.ads.googleads.v7.services.ChangeStatusService" - }, - { - "service": "google.ads.googleads.v7.services.ClickViewService" - }, - { - "service": "google.ads.googleads.v7.services.CombinedAudienceService" - }, - { - "service": "google.ads.googleads.v7.services.ConversionActionService" - }, - { - "service": "google.ads.googleads.v7.services.ConversionAdjustmentUploadService" - }, - { - "service": "google.ads.googleads.v7.services.ConversionCustomVariableService" - }, - { - "service": "google.ads.googleads.v7.services.ConversionUploadService" - }, - { - "service": "google.ads.googleads.v7.services.CurrencyConstantService" - }, - { - "service": "google.ads.googleads.v7.services.CustomAudienceService" - }, - { - "service": "google.ads.googleads.v7.services.CustomInterestService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerAssetService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerClientLinkService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerClientService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerExtensionSettingService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerFeedService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerLabelService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerManagerLinkService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerNegativeCriterionService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerUserAccessInvitationService" - }, - { - "service": "google.ads.googleads.v7.services.CustomerUserAccessService" - }, - { - "service": "google.ads.googleads.v7.services.DetailPlacementViewService" - }, - { - "service": "google.ads.googleads.v7.services.DisplayKeywordViewService" - }, - { - "service": "google.ads.googleads.v7.services.DistanceViewService" - }, - { - "service": "google.ads.googleads.v7.services.DomainCategoryService" - }, - { - "service": "google.ads.googleads.v7.services.DynamicSearchAdsSearchTermViewService" - }, - { - "service": "google.ads.googleads.v7.services.ExpandedLandingPageViewService" - }, - { - "service": "google.ads.googleads.v7.services.ExtensionFeedItemService" - }, - { - "service": "google.ads.googleads.v7.services.FeedItemService" - }, - { - "service": "google.ads.googleads.v7.services.FeedItemSetLinkService" - }, - { - "service": "google.ads.googleads.v7.services.FeedItemSetService" - }, - { - "service": "google.ads.googleads.v7.services.FeedItemTargetService" - }, - { - "service": "google.ads.googleads.v7.services.FeedMappingService" - }, - { - "service": "google.ads.googleads.v7.services.FeedPlaceholderViewService" - }, - { - "service": "google.ads.googleads.v7.services.FeedService" - }, - { - "service": "google.ads.googleads.v7.services.GenderViewService" - }, - { - "service": "google.ads.googleads.v7.services.GeoTargetConstantService" - }, - { - "service": "google.ads.googleads.v7.services.GeographicViewService" - }, - { - "service": "google.ads.googleads.v7.services.GoogleAdsFieldService" - }, - { - "service": "google.ads.googleads.v7.services.GoogleAdsService" - }, - { - "service": "google.ads.googleads.v7.services.GroupPlacementViewService" - }, - { - "service": "google.ads.googleads.v7.services.HotelGroupViewService" - }, - { - "service": "google.ads.googleads.v7.services.HotelPerformanceViewService" - }, - { - "service": "google.ads.googleads.v7.services.IncomeRangeViewService" - }, - { - "service": "google.ads.googleads.v7.services.InvoiceService" - }, - { - "service": "google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService" - }, - { - "service": "google.ads.googleads.v7.services.KeywordPlanAdGroupService" - }, - { - "service": "google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService" - }, - { - "service": "google.ads.googleads.v7.services.KeywordPlanCampaignService" - }, - { - "service": "google.ads.googleads.v7.services.KeywordPlanIdeaService" - }, - { - "service": "google.ads.googleads.v7.services.KeywordPlanService" - }, - { - "service": "google.ads.googleads.v7.services.KeywordViewService" - }, - { - "service": "google.ads.googleads.v7.services.LabelService" - }, - { - "service": "google.ads.googleads.v7.services.LandingPageViewService" - }, - { - "service": "google.ads.googleads.v7.services.LanguageConstantService" - }, - { - "service": "google.ads.googleads.v7.services.LifeEventService" - }, - { - "service": "google.ads.googleads.v7.services.LocationViewService" - }, - { - "service": "google.ads.googleads.v7.services.ManagedPlacementViewService" - }, - { - "service": "google.ads.googleads.v7.services.MediaFileService" - }, - { - "service": "google.ads.googleads.v7.services.MerchantCenterLinkService" - }, - { - "service": "google.ads.googleads.v7.services.MobileAppCategoryConstantService" - }, - { - "service": "google.ads.googleads.v7.services.MobileDeviceConstantService" - }, - { - "service": "google.ads.googleads.v7.services.OfflineUserDataJobService" - }, - { - "service": "google.ads.googleads.v7.services.OperatingSystemVersionConstantService" - }, - { - "service": "google.ads.googleads.v7.services.PaidOrganicSearchTermViewService" - }, - { - "service": "google.ads.googleads.v7.services.ParentalStatusViewService" - }, - { - "service": "google.ads.googleads.v7.services.PaymentsAccountService" - }, - { - "service": "google.ads.googleads.v7.services.ProductBiddingCategoryConstantService" - }, - { - "service": "google.ads.googleads.v7.services.ProductGroupViewService" - }, - { - "service": "google.ads.googleads.v7.services.ReachPlanService" - }, - { - "service": "google.ads.googleads.v7.services.RecommendationService" - }, - { - "service": "google.ads.googleads.v7.services.RemarketingActionService" - }, - { - "service": "google.ads.googleads.v7.services.SearchTermViewService" - }, - { - "service": "google.ads.googleads.v7.services.SharedCriterionService" - }, - { - "service": "google.ads.googleads.v7.services.SharedSetService" - }, - { - "service": "google.ads.googleads.v7.services.ShoppingPerformanceViewService" - }, - { - "service": "google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService" - }, - { - "service": "google.ads.googleads.v7.services.TopicConstantService" - }, - { - "service": "google.ads.googleads.v7.services.TopicViewService" - }, - { - "service": "google.ads.googleads.v7.services.UserDataService" - }, - { - "service": "google.ads.googleads.v7.services.UserInterestService" - }, - { - "service": "google.ads.googleads.v7.services.UserListService" - }, - { - "service": "google.ads.googleads.v7.services.UserLocationViewService" - }, - { - "service": "google.ads.googleads.v7.services.VideoService" - }, - { - "service": "google.ads.googleads.v7.services.WebpageViewService" - } - ], - "timeout": "3600s", - "retryPolicy": { - "initialBackoff": "5s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - } - ] -} diff --git a/google/ads/googleads/v7/googleads_v7.yaml b/google/ads/googleads/v7/googleads_v7.yaml deleted file mode 100644 index 6d4d7aa68..000000000 --- a/google/ads/googleads/v7/googleads_v7.yaml +++ /dev/null @@ -1,1284 +0,0 @@ -type: google.api.Service -config_version: 3 -name: googleads.googleapis.com -title: Google Ads API - -apis: -- name: google.ads.googleads.v7.services.AccountBudgetProposalService -- name: google.ads.googleads.v7.services.AccountBudgetService -- name: google.ads.googleads.v7.services.AccountLinkService -- name: google.ads.googleads.v7.services.AdGroupAdAssetViewService -- name: google.ads.googleads.v7.services.AdGroupAdLabelService -- name: google.ads.googleads.v7.services.AdGroupAdService -- name: google.ads.googleads.v7.services.AdGroupAssetService -- name: google.ads.googleads.v7.services.AdGroupAudienceViewService -- name: google.ads.googleads.v7.services.AdGroupBidModifierService -- name: google.ads.googleads.v7.services.AdGroupCriterionLabelService -- name: google.ads.googleads.v7.services.AdGroupCriterionService -- name: google.ads.googleads.v7.services.AdGroupCriterionSimulationService -- name: google.ads.googleads.v7.services.AdGroupExtensionSettingService -- name: google.ads.googleads.v7.services.AdGroupFeedService -- name: google.ads.googleads.v7.services.AdGroupLabelService -- name: google.ads.googleads.v7.services.AdGroupService -- name: google.ads.googleads.v7.services.AdGroupSimulationService -- name: google.ads.googleads.v7.services.AdParameterService -- name: google.ads.googleads.v7.services.AdScheduleViewService -- name: google.ads.googleads.v7.services.AdService -- name: google.ads.googleads.v7.services.AgeRangeViewService -- name: google.ads.googleads.v7.services.AssetService -- name: google.ads.googleads.v7.services.BatchJobService -- name: google.ads.googleads.v7.services.BiddingStrategyService -- name: google.ads.googleads.v7.services.BiddingStrategySimulationService -- name: google.ads.googleads.v7.services.BillingSetupService -- name: google.ads.googleads.v7.services.CampaignAssetService -- name: google.ads.googleads.v7.services.CampaignAudienceViewService -- name: google.ads.googleads.v7.services.CampaignBidModifierService -- name: google.ads.googleads.v7.services.CampaignBudgetService -- name: google.ads.googleads.v7.services.CampaignCriterionService -- name: google.ads.googleads.v7.services.CampaignCriterionSimulationService -- name: google.ads.googleads.v7.services.CampaignDraftService -- name: google.ads.googleads.v7.services.CampaignExperimentService -- name: google.ads.googleads.v7.services.CampaignExtensionSettingService -- name: google.ads.googleads.v7.services.CampaignFeedService -- name: google.ads.googleads.v7.services.CampaignLabelService -- name: google.ads.googleads.v7.services.CampaignService -- name: google.ads.googleads.v7.services.CampaignSharedSetService -- name: google.ads.googleads.v7.services.CampaignSimulationService -- name: google.ads.googleads.v7.services.CarrierConstantService -- name: google.ads.googleads.v7.services.ChangeStatusService -- name: google.ads.googleads.v7.services.ClickViewService -- name: google.ads.googleads.v7.services.CombinedAudienceService -- name: google.ads.googleads.v7.services.ConversionActionService -- name: google.ads.googleads.v7.services.ConversionAdjustmentUploadService -- name: google.ads.googleads.v7.services.ConversionCustomVariableService -- name: google.ads.googleads.v7.services.ConversionUploadService -- name: google.ads.googleads.v7.services.CurrencyConstantService -- name: google.ads.googleads.v7.services.CustomAudienceService -- name: google.ads.googleads.v7.services.CustomInterestService -- name: google.ads.googleads.v7.services.CustomerAssetService -- name: google.ads.googleads.v7.services.CustomerClientLinkService -- name: google.ads.googleads.v7.services.CustomerClientService -- name: google.ads.googleads.v7.services.CustomerExtensionSettingService -- name: google.ads.googleads.v7.services.CustomerFeedService -- name: google.ads.googleads.v7.services.CustomerLabelService -- name: google.ads.googleads.v7.services.CustomerManagerLinkService -- name: google.ads.googleads.v7.services.CustomerNegativeCriterionService -- name: google.ads.googleads.v7.services.CustomerService -- name: google.ads.googleads.v7.services.CustomerUserAccessInvitationService -- name: google.ads.googleads.v7.services.CustomerUserAccessService -- name: google.ads.googleads.v7.services.DetailPlacementViewService -- name: google.ads.googleads.v7.services.DisplayKeywordViewService -- name: google.ads.googleads.v7.services.DistanceViewService -- name: google.ads.googleads.v7.services.DomainCategoryService -- name: google.ads.googleads.v7.services.DynamicSearchAdsSearchTermViewService -- name: google.ads.googleads.v7.services.ExpandedLandingPageViewService -- name: google.ads.googleads.v7.services.ExtensionFeedItemService -- name: google.ads.googleads.v7.services.FeedItemService -- name: google.ads.googleads.v7.services.FeedItemSetLinkService -- name: google.ads.googleads.v7.services.FeedItemSetService -- name: google.ads.googleads.v7.services.FeedItemTargetService -- name: google.ads.googleads.v7.services.FeedMappingService -- name: google.ads.googleads.v7.services.FeedPlaceholderViewService -- name: google.ads.googleads.v7.services.FeedService -- name: google.ads.googleads.v7.services.GenderViewService -- name: google.ads.googleads.v7.services.GeoTargetConstantService -- name: google.ads.googleads.v7.services.GeographicViewService -- name: google.ads.googleads.v7.services.GoogleAdsFieldService -- name: google.ads.googleads.v7.services.GoogleAdsService -- name: google.ads.googleads.v7.services.GroupPlacementViewService -- name: google.ads.googleads.v7.services.HotelGroupViewService -- name: google.ads.googleads.v7.services.HotelPerformanceViewService -- name: google.ads.googleads.v7.services.IncomeRangeViewService -- name: google.ads.googleads.v7.services.InvoiceService -- name: google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService -- name: google.ads.googleads.v7.services.KeywordPlanAdGroupService -- name: google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService -- name: google.ads.googleads.v7.services.KeywordPlanCampaignService -- name: google.ads.googleads.v7.services.KeywordPlanIdeaService -- name: google.ads.googleads.v7.services.KeywordPlanService -- name: google.ads.googleads.v7.services.KeywordViewService -- name: google.ads.googleads.v7.services.LabelService -- name: google.ads.googleads.v7.services.LandingPageViewService -- name: google.ads.googleads.v7.services.LanguageConstantService -- name: google.ads.googleads.v7.services.LifeEventService -- name: google.ads.googleads.v7.services.LocationViewService -- name: google.ads.googleads.v7.services.ManagedPlacementViewService -- name: google.ads.googleads.v7.services.MediaFileService -- name: google.ads.googleads.v7.services.MerchantCenterLinkService -- name: google.ads.googleads.v7.services.MobileAppCategoryConstantService -- name: google.ads.googleads.v7.services.MobileDeviceConstantService -- name: google.ads.googleads.v7.services.OfflineUserDataJobService -- name: google.ads.googleads.v7.services.OperatingSystemVersionConstantService -- name: google.ads.googleads.v7.services.PaidOrganicSearchTermViewService -- name: google.ads.googleads.v7.services.ParentalStatusViewService -- name: google.ads.googleads.v7.services.PaymentsAccountService -- name: google.ads.googleads.v7.services.ProductBiddingCategoryConstantService -- name: google.ads.googleads.v7.services.ProductGroupViewService -- name: google.ads.googleads.v7.services.ReachPlanService -- name: google.ads.googleads.v7.services.RecommendationService -- name: google.ads.googleads.v7.services.RemarketingActionService -- name: google.ads.googleads.v7.services.SearchTermViewService -- name: google.ads.googleads.v7.services.SharedCriterionService -- name: google.ads.googleads.v7.services.SharedSetService -- name: google.ads.googleads.v7.services.ShoppingPerformanceViewService -- name: google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService -- name: google.ads.googleads.v7.services.TopicConstantService -- name: google.ads.googleads.v7.services.TopicViewService -- name: google.ads.googleads.v7.services.UserDataService -- name: google.ads.googleads.v7.services.UserInterestService -- name: google.ads.googleads.v7.services.UserListService -- name: google.ads.googleads.v7.services.UserLocationViewService -- name: google.ads.googleads.v7.services.VideoService -- name: google.ads.googleads.v7.services.WebpageViewService - -types: -- name: google.ads.googleads.v7.errors.GoogleAdsFailure -- name: google.ads.googleads.v7.resources.BatchJob.BatchJobMetadata -- name: google.ads.googleads.v7.services.CreateCampaignExperimentMetadata - -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.v7.services.AccountBudgetProposalService.GetAccountBudgetProposal - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AccountBudgetProposalService.MutateAccountBudgetProposal - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AccountBudgetService.GetAccountBudget - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.AccountLinkService.*' - deadline: 600.0 - - selector: google.ads.googleads.v7.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupAdLabelService.GetAdGroupAdLabel - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupAdLabelService.MutateAdGroupAdLabels - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupAdService.GetAdGroupAd - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupAdService.MutateAdGroupAds - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupAssetService.GetAdGroupAsset - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupAssetService.MutateAdGroupAssets - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupAudienceViewService.GetAdGroupAudienceView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupBidModifierService.GetAdGroupBidModifier - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupBidModifierService.MutateAdGroupBidModifiers - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupCriterionService.GetAdGroupCriterion - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupCriterionService.MutateAdGroupCriteria - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupFeedService.GetAdGroupFeed - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupFeedService.MutateAdGroupFeeds - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupLabelService.GetAdGroupLabel - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupLabelService.MutateAdGroupLabels - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupService.GetAdGroup - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupService.MutateAdGroups - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdGroupSimulationService.GetAdGroupSimulation - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdParameterService.GetAdParameter - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdParameterService.MutateAdParameters - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdScheduleViewService.GetAdScheduleView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdService.GetAd - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AdService.MutateAds - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AgeRangeViewService.GetAgeRangeView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AssetService.GetAsset - deadline: 60.0 - - selector: google.ads.googleads.v7.services.AssetService.MutateAssets - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.BatchJobService.*' - deadline: 60.0 - - selector: google.ads.googleads.v7.services.BiddingStrategyService.GetBiddingStrategy - deadline: 60.0 - - selector: google.ads.googleads.v7.services.BiddingStrategyService.MutateBiddingStrategies - deadline: 60.0 - - selector: google.ads.googleads.v7.services.BiddingStrategySimulationService.GetBiddingStrategySimulation - deadline: 60.0 - - selector: google.ads.googleads.v7.services.BillingSetupService.GetBillingSetup - deadline: 60.0 - - selector: google.ads.googleads.v7.services.BillingSetupService.MutateBillingSetup - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignAssetService.GetCampaignAsset - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignAssetService.MutateCampaignAssets - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignAudienceViewService.GetCampaignAudienceView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignBidModifierService.GetCampaignBidModifier - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignBidModifierService.MutateCampaignBidModifiers - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignBudgetService.GetCampaignBudget - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignBudgetService.MutateCampaignBudgets - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignCriterionService.GetCampaignCriterion - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignCriterionService.MutateCampaignCriteria - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.CampaignDraftService.*' - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.CampaignExperimentService.*' - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignExtensionSettingService.GetCampaignExtensionSetting - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignFeedService.GetCampaignFeed - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignFeedService.MutateCampaignFeeds - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignLabelService.GetCampaignLabel - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignLabelService.MutateCampaignLabels - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignService.GetCampaign - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignService.MutateCampaigns - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignSharedSetService.GetCampaignSharedSet - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignSharedSetService.MutateCampaignSharedSets - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CampaignSimulationService.GetCampaignSimulation - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CarrierConstantService.GetCarrierConstant - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ChangeStatusService.GetChangeStatus - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ClickViewService.GetClickView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CombinedAudienceService.GetCombinedAudience - deadline: 600.0 - - selector: google.ads.googleads.v7.services.ConversionActionService.GetConversionAction - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ConversionActionService.MutateConversionActions - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ConversionAdjustmentUploadService.UploadConversionAdjustments - deadline: 600.0 - - selector: google.ads.googleads.v7.services.ConversionCustomVariableService.GetConversionCustomVariable - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ConversionCustomVariableService.MutateConversionCustomVariables - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ConversionUploadService.UploadCallConversions - deadline: 600.0 - - selector: google.ads.googleads.v7.services.ConversionUploadService.UploadClickConversions - deadline: 600.0 - - selector: google.ads.googleads.v7.services.CurrencyConstantService.GetCurrencyConstant - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomAudienceService.GetCustomAudience - deadline: 600.0 - - selector: google.ads.googleads.v7.services.CustomAudienceService.MutateCustomAudiences - deadline: 600.0 - - selector: google.ads.googleads.v7.services.CustomInterestService.GetCustomInterest - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomInterestService.MutateCustomInterests - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerAssetService.GetCustomerAsset - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerAssetService.MutateCustomerAssets - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerClientLinkService.GetCustomerClientLink - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerClientLinkService.MutateCustomerClientLink - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerClientService.GetCustomerClient - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerExtensionSettingService.GetCustomerExtensionSetting - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerFeedService.GetCustomerFeed - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerFeedService.MutateCustomerFeeds - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerLabelService.GetCustomerLabel - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerLabelService.MutateCustomerLabels - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.CustomerManagerLinkService.*' - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.CustomerService.*' - deadline: 60.0 - - selector: google.ads.googleads.v7.services.CustomerUserAccessInvitationService.GetCustomerUserAccessInvitation - deadline: 600.0 - - selector: google.ads.googleads.v7.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation - deadline: 600.0 - - selector: google.ads.googleads.v7.services.CustomerUserAccessService.GetCustomerUserAccess - deadline: 600.0 - - selector: google.ads.googleads.v7.services.CustomerUserAccessService.MutateCustomerUserAccess - deadline: 600.0 - - selector: google.ads.googleads.v7.services.DetailPlacementViewService.GetDetailPlacementView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.DisplayKeywordViewService.GetDisplayKeywordView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.DistanceViewService.GetDistanceView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.DomainCategoryService.GetDomainCategory - deadline: 60.0 - - selector: google.ads.googleads.v7.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ExpandedLandingPageViewService.GetExpandedLandingPageView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ExtensionFeedItemService.GetExtensionFeedItem - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ExtensionFeedItemService.MutateExtensionFeedItems - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedItemService.GetFeedItem - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedItemService.MutateFeedItems - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedItemSetLinkService.GetFeedItemSetLink - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedItemSetLinkService.MutateFeedItemSetLinks - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedItemSetService.GetFeedItemSet - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedItemSetService.MutateFeedItemSets - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedItemTargetService.GetFeedItemTarget - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedItemTargetService.MutateFeedItemTargets - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedMappingService.GetFeedMapping - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedMappingService.MutateFeedMappings - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedPlaceholderViewService.GetFeedPlaceholderView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedService.GetFeed - deadline: 60.0 - - selector: google.ads.googleads.v7.services.FeedService.MutateFeeds - deadline: 60.0 - - selector: google.ads.googleads.v7.services.GenderViewService.GetGenderView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.GeoTargetConstantService.GetGeoTargetConstant - deadline: 60.0 - - selector: google.ads.googleads.v7.services.GeoTargetConstantService.SuggestGeoTargetConstants - deadline: 60.0 - - selector: google.ads.googleads.v7.services.GeographicViewService.GetGeographicView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.GoogleAdsFieldService.GetGoogleAdsField - deadline: 600.0 - - selector: google.ads.googleads.v7.services.GoogleAdsFieldService.SearchGoogleAdsFields - deadline: 600.0 - - selector: google.ads.googleads.v7.services.GoogleAdsService.Mutate - deadline: 600.0 - - selector: google.ads.googleads.v7.services.GoogleAdsService.Search - deadline: 3600.0 - - selector: google.ads.googleads.v7.services.GoogleAdsService.SearchStream - deadline: 3600.0 - - selector: google.ads.googleads.v7.services.GroupPlacementViewService.GetGroupPlacementView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.HotelGroupViewService.GetHotelGroupView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.HotelPerformanceViewService.GetHotelPerformanceView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.IncomeRangeViewService.GetIncomeRangeView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.InvoiceService.ListInvoices - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanCampaignService.GetKeywordPlanCampaign - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanIdeaService.GenerateKeywordIdeas - deadline: 600.0 - - selector: 'google.ads.googleads.v7.services.KeywordPlanService.*' - deadline: 600.0 - - selector: google.ads.googleads.v7.services.KeywordPlanService.GetKeywordPlan - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordPlanService.MutateKeywordPlans - deadline: 60.0 - - selector: google.ads.googleads.v7.services.KeywordViewService.GetKeywordView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.LabelService.GetLabel - deadline: 60.0 - - selector: google.ads.googleads.v7.services.LabelService.MutateLabels - deadline: 60.0 - - selector: google.ads.googleads.v7.services.LandingPageViewService.GetLandingPageView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.LanguageConstantService.GetLanguageConstant - deadline: 60.0 - - selector: google.ads.googleads.v7.services.LifeEventService.GetLifeEvent - deadline: 60.0 - - selector: google.ads.googleads.v7.services.LocationViewService.GetLocationView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ManagedPlacementViewService.GetManagedPlacementView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.MediaFileService.GetMediaFile - deadline: 60.0 - - selector: google.ads.googleads.v7.services.MediaFileService.MutateMediaFiles - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.MerchantCenterLinkService.*' - deadline: 60.0 - - selector: google.ads.googleads.v7.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant - deadline: 60.0 - - selector: google.ads.googleads.v7.services.MobileDeviceConstantService.GetMobileDeviceConstant - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.OfflineUserDataJobService.*' - deadline: 600.0 - - selector: google.ads.googleads.v7.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant - deadline: 60.0 - - selector: google.ads.googleads.v7.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ParentalStatusViewService.GetParentalStatusView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.PaymentsAccountService.ListPaymentsAccounts - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ProductGroupViewService.GetProductGroupView - deadline: 60.0 - - selector: 'google.ads.googleads.v7.services.ReachPlanService.*' - deadline: 600.0 - - selector: 'google.ads.googleads.v7.services.RecommendationService.*' - deadline: 600.0 - - selector: google.ads.googleads.v7.services.RemarketingActionService.GetRemarketingAction - deadline: 60.0 - - selector: google.ads.googleads.v7.services.RemarketingActionService.MutateRemarketingActions - deadline: 60.0 - - selector: google.ads.googleads.v7.services.SearchTermViewService.GetSearchTermView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.SharedCriterionService.GetSharedCriterion - deadline: 60.0 - - selector: google.ads.googleads.v7.services.SharedCriterionService.MutateSharedCriteria - deadline: 60.0 - - selector: google.ads.googleads.v7.services.SharedSetService.GetSharedSet - deadline: 60.0 - - selector: google.ads.googleads.v7.services.SharedSetService.MutateSharedSets - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ShoppingPerformanceViewService.GetShoppingPerformanceView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink - deadline: 600.0 - - selector: google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId - deadline: 600.0 - - selector: google.ads.googleads.v7.services.TopicConstantService.GetTopicConstant - deadline: 60.0 - - selector: google.ads.googleads.v7.services.TopicViewService.GetTopicView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.UserDataService.UploadUserData - deadline: 600.0 - - selector: google.ads.googleads.v7.services.UserInterestService.GetUserInterest - deadline: 60.0 - - selector: google.ads.googleads.v7.services.UserListService.GetUserList - deadline: 60.0 - - selector: google.ads.googleads.v7.services.UserListService.MutateUserLists - deadline: 60.0 - - selector: google.ads.googleads.v7.services.UserLocationViewService.GetUserLocationView - deadline: 60.0 - - selector: google.ads.googleads.v7.services.VideoService.GetVideo - deadline: 60.0 - - selector: google.ads.googleads.v7.services.WebpageViewService.GetWebpageView - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - -http: - rules: - - selector: google.longrunning.Operations.CancelOperation - post: '/v7/{name=customers/*/operations/*}:cancel' - body: '*' - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v7/{name=customers/*/operations/*}' - - selector: google.longrunning.Operations.GetOperation - get: '/v7/{name=customers/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v7/{name=customers/*/operations}' - - selector: google.longrunning.Operations.WaitOperation - post: '/v7/{name=customers/*/operations/*}:wait' - body: '*' - -authentication: - rules: - - selector: google.ads.googleads.v7.services.AccountBudgetProposalService.GetAccountBudgetProposal - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AccountBudgetProposalService.MutateAccountBudgetProposal - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AccountBudgetService.GetAccountBudget - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.AccountLinkService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupAdLabelService.GetAdGroupAdLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupAdLabelService.MutateAdGroupAdLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupAdService.GetAdGroupAd - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupAdService.MutateAdGroupAds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupAssetService.GetAdGroupAsset - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupAssetService.MutateAdGroupAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupAudienceViewService.GetAdGroupAudienceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupBidModifierService.GetAdGroupBidModifier - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupBidModifierService.MutateAdGroupBidModifiers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupCriterionService.GetAdGroupCriterion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupCriterionService.MutateAdGroupCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupFeedService.GetAdGroupFeed - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupFeedService.MutateAdGroupFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupLabelService.GetAdGroupLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupLabelService.MutateAdGroupLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupService.GetAdGroup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupService.MutateAdGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdGroupSimulationService.GetAdGroupSimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdParameterService.GetAdParameter - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdParameterService.MutateAdParameters - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdScheduleViewService.GetAdScheduleView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdService.GetAd - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AdService.MutateAds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AgeRangeViewService.GetAgeRangeView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AssetService.GetAsset - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.AssetService.MutateAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.BatchJobService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.BiddingStrategyService.GetBiddingStrategy - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.BiddingStrategyService.MutateBiddingStrategies - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.BiddingStrategySimulationService.GetBiddingStrategySimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.BillingSetupService.GetBillingSetup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.BillingSetupService.MutateBillingSetup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignAssetService.GetCampaignAsset - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignAssetService.MutateCampaignAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignAudienceViewService.GetCampaignAudienceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignBidModifierService.GetCampaignBidModifier - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignBidModifierService.MutateCampaignBidModifiers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignBudgetService.GetCampaignBudget - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignBudgetService.MutateCampaignBudgets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignCriterionService.GetCampaignCriterion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignCriterionService.MutateCampaignCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.CampaignDraftService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.CampaignExperimentService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignExtensionSettingService.GetCampaignExtensionSetting - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignFeedService.GetCampaignFeed - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignFeedService.MutateCampaignFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignLabelService.GetCampaignLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignLabelService.MutateCampaignLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignService.GetCampaign - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignService.MutateCampaigns - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignSharedSetService.GetCampaignSharedSet - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignSharedSetService.MutateCampaignSharedSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CampaignSimulationService.GetCampaignSimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CarrierConstantService.GetCarrierConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ChangeStatusService.GetChangeStatus - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ClickViewService.GetClickView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CombinedAudienceService.GetCombinedAudience - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ConversionActionService.GetConversionAction - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ConversionActionService.MutateConversionActions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ConversionAdjustmentUploadService.UploadConversionAdjustments - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ConversionCustomVariableService.GetConversionCustomVariable - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ConversionCustomVariableService.MutateConversionCustomVariables - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ConversionUploadService.UploadCallConversions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ConversionUploadService.UploadClickConversions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CurrencyConstantService.GetCurrencyConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomAudienceService.GetCustomAudience - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomAudienceService.MutateCustomAudiences - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomInterestService.GetCustomInterest - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomInterestService.MutateCustomInterests - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerAssetService.GetCustomerAsset - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerAssetService.MutateCustomerAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerClientLinkService.GetCustomerClientLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerClientLinkService.MutateCustomerClientLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerClientService.GetCustomerClient - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerExtensionSettingService.GetCustomerExtensionSetting - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerFeedService.GetCustomerFeed - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerFeedService.MutateCustomerFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerLabelService.GetCustomerLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerLabelService.MutateCustomerLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.CustomerManagerLinkService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.CustomerService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerUserAccessInvitationService.GetCustomerUserAccessInvitation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerUserAccessService.GetCustomerUserAccess - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.CustomerUserAccessService.MutateCustomerUserAccess - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.DetailPlacementViewService.GetDetailPlacementView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.DisplayKeywordViewService.GetDisplayKeywordView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.DistanceViewService.GetDistanceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.DomainCategoryService.GetDomainCategory - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ExpandedLandingPageViewService.GetExpandedLandingPageView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ExtensionFeedItemService.GetExtensionFeedItem - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ExtensionFeedItemService.MutateExtensionFeedItems - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedItemService.GetFeedItem - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedItemService.MutateFeedItems - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedItemSetLinkService.GetFeedItemSetLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedItemSetLinkService.MutateFeedItemSetLinks - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedItemSetService.GetFeedItemSet - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedItemSetService.MutateFeedItemSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedItemTargetService.GetFeedItemTarget - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedItemTargetService.MutateFeedItemTargets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedMappingService.GetFeedMapping - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedMappingService.MutateFeedMappings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedPlaceholderViewService.GetFeedPlaceholderView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedService.GetFeed - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.FeedService.MutateFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.GenderViewService.GetGenderView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.GeoTargetConstantService.GetGeoTargetConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.GeoTargetConstantService.SuggestGeoTargetConstants - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.GeographicViewService.GetGeographicView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.GoogleAdsFieldService.GetGoogleAdsField - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.GoogleAdsFieldService.SearchGoogleAdsFields - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.GoogleAdsService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.GroupPlacementViewService.GetGroupPlacementView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.HotelGroupViewService.GetHotelGroupView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.HotelPerformanceViewService.GetHotelPerformanceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.IncomeRangeViewService.GetIncomeRangeView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.InvoiceService.ListInvoices - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanCampaignService.GetKeywordPlanCampaign - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordPlanIdeaService.GenerateKeywordIdeas - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.KeywordPlanService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.KeywordViewService.GetKeywordView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.LabelService.GetLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.LabelService.MutateLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.LandingPageViewService.GetLandingPageView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.LanguageConstantService.GetLanguageConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.LifeEventService.GetLifeEvent - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.LocationViewService.GetLocationView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ManagedPlacementViewService.GetManagedPlacementView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.MediaFileService.GetMediaFile - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.MediaFileService.MutateMediaFiles - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.MerchantCenterLinkService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.MobileDeviceConstantService.GetMobileDeviceConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.OfflineUserDataJobService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ParentalStatusViewService.GetParentalStatusView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.PaymentsAccountService.ListPaymentsAccounts - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ProductGroupViewService.GetProductGroupView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.ReachPlanService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v7.services.RecommendationService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.RemarketingActionService.GetRemarketingAction - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.RemarketingActionService.MutateRemarketingActions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.SearchTermViewService.GetSearchTermView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.SharedCriterionService.GetSharedCriterion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.SharedCriterionService.MutateSharedCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.SharedSetService.GetSharedSet - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.SharedSetService.MutateSharedSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ShoppingPerformanceViewService.GetShoppingPerformanceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.TopicConstantService.GetTopicConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.TopicViewService.GetTopicView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.UserDataService.UploadUserData - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.UserInterestService.GetUserInterest - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.UserListService.GetUserList - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.UserListService.MutateUserLists - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.UserLocationViewService.GetUserLocationView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.VideoService.GetVideo - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v7.services.WebpageViewService.GetWebpageView - 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/google/ads/googleads/v7/resources/BUILD.bazel b/google/ads/googleads/v7/resources/BUILD.bazel deleted file mode 100644 index f1997fa0e..000000000 --- a/google/ads/googleads/v7/resources/BUILD.bazel +++ /dev/null @@ -1,97 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports -# subpackages. -proto_library( - name = "resources_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/ads/googleads/v7/common:common_proto", - "//google/ads/googleads/v7/enums:enums_proto", - "//google/ads/googleads/v7/errors:errors_proto", - "//google/api:annotations_proto", - "//google/api:field_behavior_proto", - "//google/api:resource_proto", - "@com_google_protobuf//:field_mask_proto", - "@com_google_protobuf//:wrappers_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", -) - -java_proto_library( - name = "resources_java_proto", - deps = [":resources_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_proto_library", -) - -csharp_proto_library( - name = "resources_csharp_proto", - deps = [":resources_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_proto_library", -) - -ruby_proto_library( - name = "resources_ruby_proto", - deps = [":resources_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_proto_library", -) - -py_proto_library( - name = "resources_py_proto", - deps = [":resources_proto"], -) diff --git a/google/ads/googleads/v7/resources/account_budget.proto b/google/ads/googleads/v7/resources/account_budget.proto deleted file mode 100644 index 46321da6a..000000000 --- a/google/ads/googleads/v7/resources/account_budget.proto +++ /dev/null @@ -1,252 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/account_budget_proposal_type.proto"; -import "google/ads/googleads/v7/enums/account_budget_status.proto"; -import "google/ads/googleads/v7/enums/spending_limit_type.proto"; -import "google/ads/googleads/v7/enums/time_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the AccountBudget resource. - -// An account-level budget. It contains information about the budget itself, -// as well as the most recently approved changes to the budget and proposed -// changes that are pending approval. The proposed changes that are pending -// approval, if any, are found in 'pending_proposal'. Effective details about -// the budget are found in fields prefixed 'approved_', 'adjusted_' and those -// without a prefix. Since some effective details may differ from what the user -// had originally requested (e.g. spending limit), these differences are -// juxtaposed via 'proposed_', 'approved_', and possibly 'adjusted_' fields. -// -// This resource is mutated using AccountBudgetProposal and cannot be mutated -// directly. A budget may have at most one pending proposal at any given time. -// It is read through pending_proposal. -// -// Once approved, a budget may be subject to adjustments, such as credit -// adjustments. Adjustments create differences between the 'approved' and -// 'adjusted' fields, which would otherwise be identical. -message AccountBudget { - option (google.api.resource) = { - type: "googleads.googleapis.com/AccountBudget" - pattern: "customers/{customer_id}/accountBudgets/{account_budget_id}" - }; - - // A pending proposal associated with the enclosing account-level budget, - // if applicable. - message PendingAccountBudgetProposal { - // Output only. The resource name of the proposal. - // AccountBudgetProposal resource names have the form: - // - // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` - optional string account_budget_proposal = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudgetProposal" - } - ]; - - // Output only. The type of this proposal, e.g. END to end the budget associated - // with this proposal. - google.ads.googleads.v7.enums.AccountBudgetProposalTypeEnum.AccountBudgetProposalType proposal_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name to assign to the account-level budget. - optional string name = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The start time in yyyy-MM-dd HH:mm:ss format. - optional string start_date_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A purchase order number is a value that helps users reference this budget - // in their monthly invoices. - optional string purchase_order_number = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Notes associated with this budget. - optional string notes = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time when this account-level budget proposal was created. - // Formatted as yyyy-MM-dd HH:mm:ss. - optional string creation_date_time = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The end time of the account-level budget. - oneof end_time { - // Output only. The end time in yyyy-MM-dd HH:mm:ss format. - string end_date_time = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The end time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v7.enums.TimeTypeEnum.TimeType end_time_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The spending limit. - oneof spending_limit { - // Output only. The spending limit in micros. One million is equivalent to - // one unit. - int64 spending_limit_micros = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The spending limit as a well-defined type, e.g. INFINITE. - google.ads.googleads.v7.enums.SpendingLimitTypeEnum.SpendingLimitType spending_limit_type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - } - - // Output only. The resource name of the account-level budget. - // AccountBudget resource names have the form: - // - // `customers/{customer_id}/accountBudgets/{account_budget_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudget" - } - ]; - - // Output only. The ID of the account-level budget. - optional int64 id = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the billing setup associated with this account-level - // budget. BillingSetup resource names have the form: - // - // `customers/{customer_id}/billingSetups/{billing_setup_id}` - optional string billing_setup = 24 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BillingSetup" - } - ]; - - // Output only. The status of this account-level budget. - google.ads.googleads.v7.enums.AccountBudgetStatusEnum.AccountBudgetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the account-level budget. - optional string name = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The proposed start time of the account-level budget in - // yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed, - // this is the time of request. - optional string proposed_start_date_time = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss - // format. - // - // For example, if a new budget is approved after the proposed start time, - // the approved start time is the time of approval. - optional string approved_start_date_time = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total adjustments amount. - // - // An example of an adjustment is courtesy credits. - int64 total_adjustments_micros = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The value of Ads that have been served, in micros. - // - // This includes overdelivery costs, in which case a credit might be - // automatically applied to the budget (see total_adjustments_micros). - int64 amount_served_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A purchase order number is a value that helps users reference this budget - // in their monthly invoices. - optional string purchase_order_number = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Notes associated with the budget. - optional string notes = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pending proposal to modify this budget, if applicable. - PendingAccountBudgetProposal pending_proposal = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The proposed end time of the account-level budget. - oneof proposed_end_time { - // Output only. The proposed end time in yyyy-MM-dd HH:mm:ss format. - string proposed_end_date_time = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The proposed end time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v7.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The approved end time of the account-level budget. - // - // For example, if a budget's end time is updated and the proposal is approved - // after the proposed end time, the approved end time is the time of approval. - oneof approved_end_time { - // Output only. The approved end time in yyyy-MM-dd HH:mm:ss format. - string approved_end_date_time = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved end time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v7.enums.TimeTypeEnum.TimeType approved_end_time_type = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The proposed spending limit. - oneof proposed_spending_limit { - // Output only. The proposed spending limit in micros. One million is equivalent to - // one unit. - int64 proposed_spending_limit_micros = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The proposed spending limit as a well-defined type, e.g. INFINITE. - google.ads.googleads.v7.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The approved spending limit. - // - // For example, if the amount already spent by the account exceeds the - // proposed spending limit at the time the proposal is approved, the approved - // spending limit is set to the amount already spent. - oneof approved_spending_limit { - // Output only. The approved spending limit in micros. One million is equivalent to - // one unit. This will only be populated if the proposed spending limit - // is finite, and will always be greater than or equal to the - // proposed spending limit. - int64 approved_spending_limit_micros = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved spending limit as a well-defined type, e.g. INFINITE. This - // will only be populated if the approved spending limit is INFINITE. - google.ads.googleads.v7.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The spending limit after adjustments have been applied. Adjustments are - // stored in total_adjustments_micros. - // - // This value has the final say on how much the account is allowed to spend. - oneof adjusted_spending_limit { - // Output only. The adjusted spending limit in micros. One million is equivalent to - // one unit. - // - // If the approved spending limit is finite, the adjusted - // spending limit may vary depending on the types of adjustments applied - // to this budget, if applicable. - // - // The different kinds of adjustments are described here: - // https://support.google.com/google-ads/answer/1704323 - // - // For example, a debit adjustment reduces how much the account is - // allowed to spend. - int64 adjusted_spending_limit_micros = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The adjusted spending limit as a well-defined type, e.g. 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.v7.enums.SpendingLimitTypeEnum.SpendingLimitType adjusted_spending_limit_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/account_budget_proposal.proto b/google/ads/googleads/v7/resources/account_budget_proposal.proto deleted file mode 100644 index 30fdb10e8..000000000 --- a/google/ads/googleads/v7/resources/account_budget_proposal.proto +++ /dev/null @@ -1,160 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/account_budget_proposal_status.proto"; -import "google/ads/googleads/v7/enums/account_budget_proposal_type.proto"; -import "google/ads/googleads/v7/enums/spending_limit_type.proto"; -import "google/ads/googleads/v7/enums/time_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the AccountBudgetProposal resource. - -// An account-level budget proposal. -// -// All fields prefixed with 'proposed' may not necessarily be applied directly. -// For example, proposed spending limits may be adjusted before their -// application. This is true if the 'proposed' field has an 'approved' -// counterpart, e.g. spending limits. -// -// Please note that the proposal type (proposal_type) changes which fields are -// required and which must remain empty. -message AccountBudgetProposal { - option (google.api.resource) = { - type: "googleads.googleapis.com/AccountBudgetProposal" - pattern: "customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}" - }; - - // Immutable. The resource name of the proposal. - // AccountBudgetProposal resource names have the form: - // - // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudgetProposal" - } - ]; - - // Output only. The ID of the proposal. - optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The resource name of the billing setup associated with this proposal. - optional string billing_setup = 26 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BillingSetup" - } - ]; - - // Immutable. The resource name of the account-level budget associated with this - // proposal. - optional string account_budget = 27 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudget" - } - ]; - - // Immutable. The type of this proposal, e.g. END to end the budget associated with this - // proposal. - google.ads.googleads.v7.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.v7.enums.AccountBudgetProposalStatusEnum.AccountBudgetProposalStatus status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The name to assign to the account-level budget. - optional string proposed_name = 28 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format. - optional string approved_start_date_time = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. A purchase order number is a value that enables the user to help them - // reference this budget in their monthly invoices. - optional string proposed_purchase_order_number = 35 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Notes associated with this budget. - optional string proposed_notes = 36 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The date time when this account-level budget proposal was created, which is - // not the same as its approval date time, if applicable. - optional string creation_date_time = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The date time when this account-level budget was approved, if applicable. - optional string approval_date_time = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The proposed start date time of the account-level budget, which cannot be - // in the past. - oneof proposed_start_time { - // Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format. - string proposed_start_date_time = 29 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The proposed start date time as a well-defined type, e.g. NOW. - google.ads.googleads.v7.enums.TimeTypeEnum.TimeType proposed_start_time_type = 7 [(google.api.field_behavior) = IMMUTABLE]; - } - - // The proposed end date time of the account-level budget, which cannot be in - // the past. - oneof proposed_end_time { - // Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format. - string proposed_end_date_time = 31 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The proposed end date time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v7.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = IMMUTABLE]; - } - - // The approved end date time of the account-level budget. - oneof approved_end_time { - // Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format. - string approved_end_date_time = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved end date time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v7.enums.TimeTypeEnum.TimeType approved_end_time_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The proposed spending limit. - oneof proposed_spending_limit { - // Immutable. The proposed spending limit in micros. One million is equivalent to - // one unit. - int64 proposed_spending_limit_micros = 33 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The proposed spending limit as a well-defined type, e.g. INFINITE. - google.ads.googleads.v7.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 11 [(google.api.field_behavior) = IMMUTABLE]; - } - - // The approved spending limit. - oneof approved_spending_limit { - // Output only. The approved spending limit in micros. One million is equivalent to - // one unit. - int64 approved_spending_limit_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved spending limit as a well-defined type, e.g. INFINITE. - google.ads.googleads.v7.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/account_link.proto b/google/ads/googleads/v7/resources/account_link.proto deleted file mode 100644 index 69f8ce632..000000000 --- a/google/ads/googleads/v7/resources/account_link.proto +++ /dev/null @@ -1,125 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/account_link_status.proto"; -import "google/ads/googleads/v7/enums/linked_account_type.proto"; -import "google/ads/googleads/v7/enums/mobile_app_vendor.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AccountLinkProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Represents the data sharing connection between a Google Ads account and -// another account -message AccountLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/AccountLink" - pattern: "customers/{customer_id}/accountLinks/{account_link_id}" - }; - - // Immutable. Resource name of the account link. - // AccountLink resource names have the form: - // `customers/{customer_id}/accountLinks/{account_link_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountLink" - } - ]; - - // Output only. The ID of the link. - // This field is read only. - optional int64 account_link_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The status of the link. - google.ads.googleads.v7.enums.AccountLinkStatusEnum.AccountLinkStatus status = 3; - - // Output only. The type of the linked account. - google.ads.googleads.v7.enums.LinkedAccountTypeEnum.LinkedAccountType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // An account linked to this Google Ads account. - oneof linked_account { - // 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]; - } -} - -// The identifiers of a Third Party App Analytics Link. -message ThirdPartyAppAnalyticsLinkIdentifier { - // Immutable. The ID of the app analytics provider. - // 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. - optional int64 app_analytics_provider_id = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A string that uniquely identifies a mobile application from which the data - // was collected to the Google Ads API. For iOS, the ID string is the 9 digit - // string that appears at the end of an App Store URL (e.g., "422689480" for - // "Gmail" whose App Store link is - // https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For - // Android, the ID string is the application's package name (e.g., - // "com.google.android.gm" for "Gmail" given Google Play link - // https://play.google.com/store/apps/details?id=com.google.android.gm) - // 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. - optional string app_id = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The vendor of the app. - // 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.v7.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 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" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/ad.proto b/google/ads/googleads/v7/resources/ad.proto deleted file mode 100644 index d21ac6431..000000000 --- a/google/ads/googleads/v7/resources/ad.proto +++ /dev/null @@ -1,185 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/ad_type_infos.proto"; -import "google/ads/googleads/v7/common/custom_parameter.proto"; -import "google/ads/googleads/v7/common/final_app_url.proto"; -import "google/ads/googleads/v7/common/url_collection.proto"; -import "google/ads/googleads/v7/enums/ad_type.proto"; -import "google/ads/googleads/v7/enums/device.proto"; -import "google/ads/googleads/v7/enums/system_managed_entity_source.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad type. - -// An ad. -message Ad { - option (google.api.resource) = { - type: "googleads.googleapis.com/Ad" - pattern: "customers/{customer_id}/ads/{ad_id}" - }; - - // Immutable. The resource name of the ad. - // Ad resource names have the form: - // - // `customers/{customer_id}/ads/{ad_id}` - string resource_name = 37 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Ad" - } - ]; - - // Output only. The ID of the ad. - optional int64 id = 40 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The list of possible final URLs after all cross-domain redirects for the - // ad. - repeated string final_urls = 41; - - // A list of final app URLs that will be used on mobile if the user has the - // specific app installed. - repeated google.ads.googleads.v7.common.FinalAppUrl final_app_urls = 35; - - // The list of possible final mobile URLs after all cross-domain redirects - // for the ad. - repeated string final_mobile_urls = 42; - - // The URL template for constructing a tracking URL. - optional string tracking_url_template = 43; - - // The suffix to use when constructing a final URL. - optional string final_url_suffix = 44; - - // 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, please use url custom parameter operations. - repeated google.ads.googleads.v7.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.v7.enums.AdTypeEnum.AdType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates if this ad was automatically added by Google Ads and not by a - // user. For example, this could happen when ads are automatically created as - // suggestions for new ads based on knowledge of how existing ads are - // performing. - optional bool added_by_google_ads = 46 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The device preference for the ad. You can only specify a preference for - // mobile devices. When this preference is set the ad will be preferred over - // other ads when being displayed on a mobile device. The ad can still be - // displayed on other device types, e.g. 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.v7.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.v7.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 name - // field is currently only supported for DisplayUploadAd, ImageAd, - // ShoppingComparisonListingAd and VideoAd. - optional string name = 47 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. If this ad is system managed, then this field will indicate the source. - // This field is read-only. - google.ads.googleads.v7.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.v7.common.TextAdInfo text_ad = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Details pertaining to an expanded text ad. - google.ads.googleads.v7.common.ExpandedTextAdInfo expanded_text_ad = 7; - - // Details pertaining to a call-only ad. - google.ads.googleads.v7.common.CallOnlyAdInfo call_only_ad = 13; - - // 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.v7.common.ExpandedDynamicSearchAdInfo expanded_dynamic_search_ad = 14 [(google.api.field_behavior) = IMMUTABLE]; - - // Details pertaining to a hotel ad. - google.ads.googleads.v7.common.HotelAdInfo hotel_ad = 15; - - // Details pertaining to a Smart Shopping ad. - google.ads.googleads.v7.common.ShoppingSmartAdInfo shopping_smart_ad = 17; - - // Details pertaining to a Shopping product ad. - google.ads.googleads.v7.common.ShoppingProductAdInfo shopping_product_ad = 18; - - // Immutable. Details pertaining to a Gmail ad. - google.ads.googleads.v7.common.GmailAdInfo gmail_ad = 21 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Details pertaining to an Image ad. - google.ads.googleads.v7.common.ImageAdInfo image_ad = 22 [(google.api.field_behavior) = IMMUTABLE]; - - // Details pertaining to a Video ad. - google.ads.googleads.v7.common.VideoAdInfo video_ad = 24; - - // Details pertaining to a Video responsive ad. - google.ads.googleads.v7.common.VideoResponsiveAdInfo video_responsive_ad = 39; - - // Details pertaining to a responsive search ad. - google.ads.googleads.v7.common.ResponsiveSearchAdInfo responsive_search_ad = 25; - - // Details pertaining to a legacy responsive display ad. - google.ads.googleads.v7.common.LegacyResponsiveDisplayAdInfo legacy_responsive_display_ad = 28; - - // Details pertaining to an app ad. - google.ads.googleads.v7.common.AppAdInfo app_ad = 29; - - // Immutable. Details pertaining to a legacy app install ad. - google.ads.googleads.v7.common.LegacyAppInstallAdInfo legacy_app_install_ad = 30 [(google.api.field_behavior) = IMMUTABLE]; - - // Details pertaining to a responsive display ad. - google.ads.googleads.v7.common.ResponsiveDisplayAdInfo responsive_display_ad = 31; - - // Details pertaining to a local ad. - google.ads.googleads.v7.common.LocalAdInfo local_ad = 32; - - // Details pertaining to a display upload ad. - google.ads.googleads.v7.common.DisplayUploadAdInfo display_upload_ad = 33; - - // Details pertaining to an app engagement ad. - google.ads.googleads.v7.common.AppEngagementAdInfo app_engagement_ad = 34; - - // Details pertaining to a Shopping Comparison Listing ad. - google.ads.googleads.v7.common.ShoppingComparisonListingAdInfo shopping_comparison_listing_ad = 36; - } -} diff --git a/google/ads/googleads/v7/resources/ad_group.proto b/google/ads/googleads/v7/resources/ad_group.proto deleted file mode 100644 index c602fe05c..000000000 --- a/google/ads/googleads/v7/resources/ad_group.proto +++ /dev/null @@ -1,187 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/custom_parameter.proto"; -import "google/ads/googleads/v7/common/explorer_auto_optimizer_setting.proto"; -import "google/ads/googleads/v7/common/targeting_setting.proto"; -import "google/ads/googleads/v7/enums/ad_group_ad_rotation_mode.proto"; -import "google/ads/googleads/v7/enums/ad_group_status.proto"; -import "google/ads/googleads/v7/enums/ad_group_type.proto"; -import "google/ads/googleads/v7/enums/asset_field_type.proto"; -import "google/ads/googleads/v7/enums/bidding_source.proto"; -import "google/ads/googleads/v7/enums/targeting_dimension.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group resource. - -// An ad group. -message AdGroup { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroup" - pattern: "customers/{customer_id}/adGroups/{ad_group_id}" - }; - - // Immutable. The resource name of the ad group. - // Ad group resource names have the form: - // - // `customers/{customer_id}/adGroups/{ad_group_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. The ID of the ad group. - optional int64 id = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the ad group. - // - // This field is required and should not be empty when creating new ad - // groups. - // - // It must contain fewer than 255 UTF-8 full-width characters. - // - // It must not contain any null (code point 0x0), NL line feed - // (code point 0xA) or carriage return (code point 0xD) characters. - optional string name = 35; - - // The status of the ad group. - google.ads.googleads.v7.enums.AdGroupStatusEnum.AdGroupStatus status = 5; - - // Immutable. The type of the ad group. - google.ads.googleads.v7.enums.AdGroupTypeEnum.AdGroupType type = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // The ad rotation mode of the ad group. - google.ads.googleads.v7.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode ad_rotation_mode = 22; - - // Output only. For draft or experiment ad groups, this field is the resource name of the - // base ad group from which this ad group was created. If a draft or - // experiment ad group does not have a base ad group, then this field is null. - // - // For base ad groups, this field equals the ad group resource name. - // - // This field is read-only. - optional string base_ad_group = 36 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // The URL template for constructing a tracking URL. - optional string tracking_url_template = 37; - - // 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.v7.common.CustomParameter url_custom_parameters = 6; - - // Immutable. The campaign to which the ad group belongs. - optional string campaign = 38 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // The maximum CPC (cost-per-click) bid. - optional int64 cpc_bid_micros = 39; - - // The maximum CPM (cost-per-thousand viewable impressions) bid. - optional int64 cpm_bid_micros = 40; - - // The target CPA (cost-per-acquisition). If the ad group's campaign - // bidding strategy is TargetCpa or MaximizeConversions (with its target_cpa - // field set), then this field overrides the target CPA specified in the - // campaign's bidding strategy. - // Otherwise, this value is ignored. - optional int64 target_cpa_micros = 41; - - // Output only. The CPV (cost-per-view) bid. - optional int64 cpv_bid_micros = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Average amount in micros that the advertiser is willing to pay for every - // thousand times the ad is shown. - optional int64 target_cpm_micros = 43; - - // The target ROAS (return-on-ad-spend) override. If the ad group's campaign - // bidding strategy is TargetRoas or MaximizeConversionValue (with its - // target_roas field set), then this field overrides the target ROAS specified - // in the campaign's bidding strategy. - // Otherwise, this value is ignored. - optional double target_roas = 44; - - // The percent cpc bid amount, expressed as a fraction of the advertised price - // for some good or service. The valid range for the fraction is [0,1) and the - // value stored here is 1,000,000 * [fraction]. - optional int64 percent_cpc_bid_micros = 45; - - // Settings for the Display Campaign Optimizer, initially termed "Explorer". - google.ads.googleads.v7.common.ExplorerAutoOptimizerSetting explorer_auto_optimizer_setting = 21; - - // 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.v7.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.v7.common.TargetingSetting targeting_setting = 25; - - // Output only. The effective target CPA (cost-per-acquisition). - // This field is read-only. - optional int64 effective_target_cpa_micros = 47 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Source of the effective target CPA. - // This field is read-only. - google.ads.googleads.v7.enums.BiddingSourceEnum.BiddingSource effective_target_cpa_source = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The effective target ROAS (return-on-ad-spend). - // This field is read-only. - optional double effective_target_roas = 48 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Source of the effective target ROAS. - // This field is read-only. - google.ads.googleads.v7.enums.BiddingSourceEnum.BiddingSource effective_target_roas_source = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource names of labels attached to this ad group. - repeated string labels = 49 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupLabel" - } - ]; - - // 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.v7.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 54; -} diff --git a/google/ads/googleads/v7/resources/ad_group_ad.proto b/google/ads/googleads/v7/resources/ad_group_ad.proto deleted file mode 100644 index 0bc0f4a5e..000000000 --- a/google/ads/googleads/v7/resources/ad_group_ad.proto +++ /dev/null @@ -1,98 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/enums/ad_group_ad_status.proto"; -import "google/ads/googleads/v7/enums/ad_strength.proto"; -import "google/ads/googleads/v7/enums/policy_approval_status.proto"; -import "google/ads/googleads/v7/enums/policy_review_status.proto"; -import "google/ads/googleads/v7/resources/ad.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group ad resource. - -// An ad group ad. -message AdGroupAd { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAd" - pattern: "customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}" - }; - - // Immutable. The resource name of the ad. - // Ad group ad resource names have the form: - // - // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // The status of the ad. - google.ads.googleads.v7.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3; - - // Immutable. The ad group to which the ad belongs. - optional string ad_group = 9 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Immutable. The ad. - Ad ad = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Policy information for the ad. - AdGroupAdPolicySummary policy_summary = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Overall ad strength for this ad group ad. - google.ads.googleads.v7.enums.AdStrengthEnum.AdStrength ad_strength = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource names of labels attached to this ad group ad. - repeated string labels = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdLabel" - } - ]; -} - -// Contains policy information for an ad. -message AdGroupAdPolicySummary { - // Output only. The list of policy findings for this ad. - repeated google.ads.googleads.v7.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.v7.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.v7.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/ad_group_ad_asset_view.proto b/google/ads/googleads/v7/resources/ad_group_ad_asset_view.proto deleted file mode 100644 index 8fed7ed8c..000000000 --- a/google/ads/googleads/v7/resources/ad_group_ad_asset_view.proto +++ /dev/null @@ -1,105 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/enums/asset_field_type.proto"; -import "google/ads/googleads/v7/enums/asset_performance_label.proto"; -import "google/ads/googleads/v7/enums/policy_approval_status.proto"; -import "google/ads/googleads/v7/enums/policy_review_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdAssetViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group ad asset view resource. - -// A link between an AdGroupAd and an Asset. -// Currently we only support AdGroupAdAssetView for AppAds. -message AdGroupAdAssetView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAdAssetView" - pattern: "customers/{customer_id}/adGroupAdAssetViews/{ad_group_id}~{ad_id}~{asset_id}~{field_type}" - }; - - // Output only. The resource name of the ad group ad asset view. - // Ad group ad asset view resource names have the form (Before V4): - // - // `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` - // - // Ad group ad asset view resource names have the form (Beginning from V4): - // - // `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdAssetView" - } - ]; - - // Output only. The ad group ad to which the asset is linked. - optional string ad_group_ad = 9 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // Output only. The asset which is linked to the ad group ad. - optional string asset = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Output only. Role that the asset takes in the ad. - google.ads.googleads.v7.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. If true, the - // asset is linked to the latest version of the ad. If false, it means the - // link once existed but has been removed and is no longer present in the - // latest version of the ad. - optional bool enabled = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Policy information for the ad group ad asset. - AdGroupAdAssetPolicySummary policy_summary = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Performance of an asset linkage. - google.ads.googleads.v7.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel performance_label = 4 [(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.v7.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.v7.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.v7.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/ad_group_ad_label.proto b/google/ads/googleads/v7/resources/ad_group_ad_label.proto deleted file mode 100644 index e4ab5db5e..000000000 --- a/google/ads/googleads/v7/resources/ad_group_ad_label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdLabelProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group ad label resource. - -// A relationship between an ad group ad and a label. -message AdGroupAdLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAdLabel" - pattern: "customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}" - }; - - // Immutable. The resource name of the ad group ad label. - // Ad group ad label resource names have the form: - // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdLabel" - } - ]; - - // Immutable. The ad group ad to which the label is attached. - optional string ad_group_ad = 4 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // Immutable. The label assigned to the ad group ad. - optional string label = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/ad_group_asset.proto b/google/ads/googleads/v7/resources/ad_group_asset.proto deleted file mode 100644 index fb37f68e9..000000000 --- a/google/ads/googleads/v7/resources/ad_group_asset.proto +++ /dev/null @@ -1,80 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/asset_field_type.proto"; -import "google/ads/googleads/v7/enums/asset_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAssetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the AdGroupAsset resource. - -// A link between an ad group and an asset. -message AdGroupAsset { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAsset" - pattern: "customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}" - }; - - // Immutable. The resource name of the ad group asset. - // AdGroupAsset resource names have the form: - // - // `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAsset" - } - ]; - - // Required. Immutable. The ad group to which the asset is linked. - string ad_group = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Required. Immutable. The asset which is linked to the ad group. - string asset = 3 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Required. Immutable. Role that the asset takes under the linked ad group. - google.ads.googleads.v7.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Status of the ad group asset. - google.ads.googleads.v7.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; -} diff --git a/google/ads/googleads/v7/resources/ad_group_audience_view.proto b/google/ads/googleads/v7/resources/ad_group_audience_view.proto deleted file mode 100644 index 840684148..000000000 --- a/google/ads/googleads/v7/resources/ad_group_audience_view.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAudienceViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group audience view resource. - -// An ad group audience view. -// Includes performance data from interests and remarketing lists for Display -// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), -// aggregated at the audience level. -message AdGroupAudienceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAudienceView" - pattern: "customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the ad group audience view. - // Ad group audience view resource names have the form: - // - // `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAudienceView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/ad_group_bid_modifier.proto b/google/ads/googleads/v7/resources/ad_group_bid_modifier.proto deleted file mode 100644 index 2dd46369c..000000000 --- a/google/ads/googleads/v7/resources/ad_group_bid_modifier.proto +++ /dev/null @@ -1,112 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/enums/bid_modifier_source.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupBidModifierProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group bid modifier resource. - -// Represents an ad group bid modifier. -message AdGroupBidModifier { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupBidModifier" - pattern: "customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}" - }; - - // Immutable. The resource name of the ad group bid modifier. - // Ad group bid modifier resource names have the form: - // - // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupBidModifier" - } - ]; - - // Immutable. The ad group to which this criterion belongs. - optional string ad_group = 13 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. The ID of the criterion to bid modify. - // - // This field is ignored for mutates. - optional int64 criterion_id = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The modifier for the bid when the criterion matches. The modifier must be - // in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent. - // Use 0 to opt out of a Device type. - optional double bid_modifier = 15; - - // Output only. The base ad group from which this draft/trial adgroup bid modifier was - // created. If ad_group is a base ad group then this field will be equal to - // ad_group. If the ad group was created in the draft or trial and has no - // corresponding base ad group, then this field will be null. - // This field is readonly. - optional string base_ad_group = 16 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. Bid modifier source. - google.ads.googleads.v7.enums.BidModifierSourceEnum.BidModifierSource bid_modifier_source = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The criterion of this ad group bid modifier. - // - // Required in create operations starting in V5. - oneof criterion { - // Immutable. Criterion for hotel date selection (default dates vs. user selected). - google.ads.googleads.v7.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.v7.common.HotelAdvanceBookingWindowInfo hotel_advance_booking_window = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Criterion for length of hotel stay in nights. - google.ads.googleads.v7.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.v7.common.HotelCheckInDayInfo hotel_check_in_day = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A device criterion. - google.ads.googleads.v7.common.DeviceInfo device = 11 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A preferred content criterion. - google.ads.googleads.v7.common.PreferredContentInfo preferred_content = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Criterion for a hotel check-in date range. - google.ads.googleads.v7.common.HotelCheckInDateRangeInfo hotel_check_in_date_range = 17 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/ad_group_criterion.proto b/google/ads/googleads/v7/resources/ad_group_criterion.proto deleted file mode 100644 index 0f11e30ac..000000000 --- a/google/ads/googleads/v7/resources/ad_group_criterion.proto +++ /dev/null @@ -1,291 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/common/custom_parameter.proto"; -import "google/ads/googleads/v7/enums/ad_group_criterion_approval_status.proto"; -import "google/ads/googleads/v7/enums/ad_group_criterion_status.proto"; -import "google/ads/googleads/v7/enums/bidding_source.proto"; -import "google/ads/googleads/v7/enums/criterion_system_serving_status.proto"; -import "google/ads/googleads/v7/enums/criterion_type.proto"; -import "google/ads/googleads/v7/enums/quality_score_bucket.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group criterion resource. - -// An ad group criterion. -message AdGroupCriterion { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupCriterion" - pattern: "customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}" - }; - - // A container for ad group criterion quality information. - message QualityInfo { - // Output only. The quality score. - // - // This field may not be populated if Google does not have enough - // information to determine a value. - optional int32 quality_score = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The performance of the ad compared to other advertisers. - google.ads.googleads.v7.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.v7.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.v7.enums.QualityScoreBucketEnum.QualityScoreBucket search_predicted_ctr = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Estimates for criterion bids at various positions. - message PositionEstimates { - // Output only. The estimate of the CPC bid required for ad to be shown on first - // page of search results. - optional int64 first_page_cpc_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimate of the CPC bid required for ad to be displayed in first - // position, at the top of the first page of search results. - optional int64 first_position_cpc_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimate of the CPC bid required for ad to be displayed at the top - // of the first page of search results. - optional int64 top_of_page_cpc_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimate of how many clicks per week you might get by changing your - // keyword bid to the value in first_position_cpc_micros. - optional int64 estimated_add_clicks_at_first_position_cpc = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimate of how your cost per week might change when changing your - // keyword bid to the value in first_position_cpc_micros. - optional int64 estimated_add_cost_at_first_position_cpc = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the ad group criterion. - // Ad group criterion resource names have the form: - // - // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Output only. The ID of the criterion. - // - // This field is ignored for mutates. - optional int64 criterion_id = 56 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The display name of the criterion. - // - // This field is ignored for mutates. - string display_name = 77 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The status of the criterion. - // - // This is the status of the ad group criterion entity, set by the client. - // Note: UI reports may incorporate additional information that affects - // whether a criterion is eligible to run. In some cases a criterion that's - // REMOVED in the API can still show as enabled in the UI. - // For example, campaigns by default show to users of all age ranges unless - // 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.v7.enums.AdGroupCriterionStatusEnum.AdGroupCriterionStatus status = 3; - - // Output only. Information regarding the quality of the criterion. - QualityInfo quality_info = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The ad group to which the criterion belongs. - optional string ad_group = 57 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. The type of the criterion. - google.ads.googleads.v7.enums.CriterionTypeEnum.CriterionType type = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. - // - // This field is immutable. To switch a criterion from positive to negative, - // remove then re-add it. - optional bool negative = 58 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Serving status of the criterion. - google.ads.googleads.v7.enums.CriterionSystemServingStatusEnum.CriterionSystemServingStatus system_serving_status = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Approval status of the criterion. - google.ads.googleads.v7.enums.AdGroupCriterionApprovalStatusEnum.AdGroupCriterionApprovalStatus approval_status = 53 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. List of disapproval reasons of the criterion. - // - // The different reasons for disapproving a criterion can be found here: - // https://support.google.com/adspolicy/answer/6008942 - // - // This field is read-only. - repeated string disapproval_reasons = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource names of labels attached to this ad group criterion. - repeated string labels = 60 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionLabel" - } - ]; - - // The modifier for the bid when the criterion matches. The modifier must be - // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. - optional double bid_modifier = 61; - - // The CPC (cost-per-click) bid. - optional int64 cpc_bid_micros = 62; - - // The CPM (cost-per-thousand viewable impressions) bid. - optional int64 cpm_bid_micros = 63; - - // The CPV (cost-per-view) bid. - optional int64 cpv_bid_micros = 64; - - // The CPC bid amount, expressed as a fraction of the advertised price - // for some good or service. The valid range for the fraction is [0,1) and the - // value stored here is 1,000,000 * [fraction]. - optional int64 percent_cpc_bid_micros = 65; - - // Output only. The effective CPC (cost-per-click) bid. - optional int64 effective_cpc_bid_micros = 66 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The effective CPM (cost-per-thousand viewable impressions) bid. - optional int64 effective_cpm_bid_micros = 67 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The effective CPV (cost-per-view) bid. - optional int64 effective_cpv_bid_micros = 68 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The effective Percent CPC bid amount. - optional int64 effective_percent_cpc_bid_micros = 69 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Source of the effective CPC bid. - google.ads.googleads.v7.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.v7.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.v7.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.v7.enums.BiddingSourceEnum.BiddingSource effective_percent_cpc_bid_source = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimates for criterion bids at various positions. - PositionEstimates position_estimates = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The list of possible final URLs after all cross-domain redirects for the - // ad. - repeated string final_urls = 70; - - // The list of possible final mobile URLs after all cross-domain redirects. - repeated string final_mobile_urls = 71; - - // URL template for appending params to final URL. - optional string final_url_suffix = 72; - - // The URL template for constructing a tracking URL. - optional string tracking_url_template = 73; - - // 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.v7.common.CustomParameter url_custom_parameters = 14; - - // The ad group criterion. - // - // Exactly one must be set. - oneof criterion { - // Immutable. Keyword. - google.ads.googleads.v7.common.KeywordInfo keyword = 27 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Placement. - google.ads.googleads.v7.common.PlacementInfo placement = 28 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile app category. - google.ads.googleads.v7.common.MobileAppCategoryInfo mobile_app_category = 29 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile application. - google.ads.googleads.v7.common.MobileApplicationInfo mobile_application = 30 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Listing group. - google.ads.googleads.v7.common.ListingGroupInfo listing_group = 32 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Age range. - google.ads.googleads.v7.common.AgeRangeInfo age_range = 36 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Gender. - google.ads.googleads.v7.common.GenderInfo gender = 37 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Income range. - google.ads.googleads.v7.common.IncomeRangeInfo income_range = 38 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Parental status. - google.ads.googleads.v7.common.ParentalStatusInfo parental_status = 39 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. User List. - google.ads.googleads.v7.common.UserListInfo user_list = 42 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Video. - google.ads.googleads.v7.common.YouTubeVideoInfo youtube_video = 40 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Channel. - google.ads.googleads.v7.common.YouTubeChannelInfo youtube_channel = 41 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Topic. - google.ads.googleads.v7.common.TopicInfo topic = 43 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. User Interest. - google.ads.googleads.v7.common.UserInterestInfo user_interest = 45 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Webpage - google.ads.googleads.v7.common.WebpageInfo webpage = 46 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. App Payment Model. - google.ads.googleads.v7.common.AppPaymentModelInfo app_payment_model = 47 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Affinity. - google.ads.googleads.v7.common.CustomAffinityInfo custom_affinity = 48 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Intent. - google.ads.googleads.v7.common.CustomIntentInfo custom_intent = 49 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Audience. - google.ads.googleads.v7.common.CustomAudienceInfo custom_audience = 74 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Combined Audience. - google.ads.googleads.v7.common.CombinedAudienceInfo combined_audience = 75 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/ad_group_criterion_label.proto b/google/ads/googleads/v7/resources/ad_group_criterion_label.proto deleted file mode 100644 index 0b277125a..000000000 --- a/google/ads/googleads/v7/resources/ad_group_criterion_label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionLabelProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group criterion label resource. - -// A relationship between an ad group criterion and a label. -message AdGroupCriterionLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupCriterionLabel" - pattern: "customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}" - }; - - // Immutable. The resource name of the ad group criterion label. - // Ad group criterion label resource names have the form: - // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionLabel" - } - ]; - - // Immutable. The ad group criterion to which the label is attached. - optional string ad_group_criterion = 4 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Immutable. The label assigned to the ad group criterion. - optional string label = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/ad_group_criterion_simulation.proto b/google/ads/googleads/v7/resources/ad_group_criterion_simulation.proto deleted file mode 100644 index 88c6bd64f..000000000 --- a/google/ads/googleads/v7/resources/ad_group_criterion_simulation.proto +++ /dev/null @@ -1,90 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/simulation.proto"; -import "google/ads/googleads/v7/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v7/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionSimulationProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group criterion simulation resource. - -// An ad group criterion simulation. Supported combinations of advertising -// channel type, criterion type, simulation type, and simulation modification -// method are detailed below respectively. Hotel AdGroupCriterion simulation -// operations starting in V5. -// -// 1. DISPLAY - KEYWORD - CPC_BID - UNIFORM -// 2. SEARCH - KEYWORD - CPC_BID - UNIFORM -// 3. SHOPPING - LISTING_GROUP - CPC_BID - UNIFORM -// 4. HOTEL - LISTING_GROUP - CPC_BID - UNIFORM -// 5. HOTEL - LISTING_GROUP - PERCENT_CPC_BID - UNIFORM -message AdGroupCriterionSimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupCriterionSimulation" - pattern: "customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the ad group criterion simulation. - // Ad group criterion simulation resource names have the form: - // - // `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionSimulation" - } - ]; - - // Output only. AdGroup ID of the simulation. - optional int64 ad_group_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Criterion ID of the simulation. - optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v7.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v7.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - optional string start_date = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format. - optional string end_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v7.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.v7.common.PercentCpcBidSimulationPointList percent_cpc_bid_point_list = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/ad_group_extension_setting.proto b/google/ads/googleads/v7/resources/ad_group_extension_setting.proto deleted file mode 100644 index 76615924f..000000000 --- a/google/ads/googleads/v7/resources/ad_group_extension_setting.proto +++ /dev/null @@ -1,79 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/extension_setting_device.proto"; -import "google/ads/googleads/v7/enums/extension_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the AdGroupExtensionSetting resource. - -// An ad group extension setting. -message AdGroupExtensionSetting { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupExtensionSetting" - pattern: "customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}" - }; - - // Immutable. The resource name of the ad group extension setting. - // AdGroupExtensionSetting resource names have the form: - // - // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupExtensionSetting" - } - ]; - - // Immutable. The extension type of the ad group extension setting. - google.ads.googleads.v7.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The resource name of the ad group. The linked extension feed items will - // serve under this ad group. - // AdGroup resource names have the form: - // - // `customers/{customer_id}/adGroups/{ad_group_id}` - optional string ad_group = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // The resource names of the extension feed items to serve under the ad group. - // ExtensionFeedItem resource names have the form: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - repeated string extension_feed_items = 7 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - }]; - - // The device for which the extensions will serve. Optional. - google.ads.googleads.v7.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5; -} diff --git a/google/ads/googleads/v7/resources/ad_group_feed.proto b/google/ads/googleads/v7/resources/ad_group_feed.proto deleted file mode 100644 index 4d199f72d..000000000 --- a/google/ads/googleads/v7/resources/ad_group_feed.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/matching_function.proto"; -import "google/ads/googleads/v7/enums/feed_link_status.proto"; -import "google/ads/googleads/v7/enums/placeholder_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupFeedProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the AdGroupFeed resource. - -// An ad group feed. -message AdGroupFeed { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupFeed" - pattern: "customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}" - }; - - // Immutable. The resource name of the ad group feed. - // Ad group feed resource names have the form: - // - // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id} - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupFeed" - } - ]; - - // Immutable. The feed being linked to the ad group. - optional string feed = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Immutable. The ad group being linked to the feed. - optional string ad_group = 8 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Indicates which placeholder types the feed may populate under the connected - // ad group. Required. - repeated google.ads.googleads.v7.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.v7.common.MatchingFunction matching_function = 5; - - // Output only. Status of the ad group feed. - // This field is read-only. - google.ads.googleads.v7.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/ad_group_label.proto b/google/ads/googleads/v7/resources/ad_group_label.proto deleted file mode 100644 index bd8b8ef46..000000000 --- a/google/ads/googleads/v7/resources/ad_group_label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupLabelProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group label resource. - -// A relationship between an ad group and a label. -message AdGroupLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupLabel" - pattern: "customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}" - }; - - // Immutable. The resource name of the ad group label. - // Ad group label resource names have the form: - // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupLabel" - } - ]; - - // Immutable. The ad group to which the label is attached. - optional string ad_group = 4 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Immutable. The label assigned to the ad group. - optional string label = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/ad_group_simulation.proto b/google/ads/googleads/v7/resources/ad_group_simulation.proto deleted file mode 100644 index cfec43b17..000000000 --- a/google/ads/googleads/v7/resources/ad_group_simulation.proto +++ /dev/null @@ -1,94 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/simulation.proto"; -import "google/ads/googleads/v7/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v7/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupSimulationProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad group simulation resource. - -// An ad group simulation. Supported combinations of advertising -// channel type, simulation type and simulation modification method is -// detailed below respectively. -// -// 1. SEARCH - CPC_BID - DEFAULT -// 2. SEARCH - CPC_BID - UNIFORM -// 3. SEARCH - TARGET_CPA - UNIFORM -// 4. SEARCH - TARGET_ROAS - UNIFORM -// 5. DISPLAY - CPC_BID - DEFAULT -// 6. DISPLAY - CPC_BID - UNIFORM -// 7. DISPLAY - TARGET_CPA - UNIFORM -message AdGroupSimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupSimulation" - pattern: "customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the ad group simulation. - // Ad group simulation resource names have the form: - // - // `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupSimulation" - } - ]; - - // Output only. Ad group id of the simulation. - optional int64 ad_group_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v7.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v7.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - optional string start_date = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format - optional string end_date = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v7.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.v7.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.v7.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.v7.common.TargetRoasSimulationPointList target_roas_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/ad_parameter.proto b/google/ads/googleads/v7/resources/ad_parameter.proto deleted file mode 100644 index e33c50a14..000000000 --- a/google/ads/googleads/v7/resources/ad_parameter.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdParameterProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad parameter resource. - -// An ad parameter that is used to update numeric values (such as prices or -// inventory levels) in any text line of an ad (including URLs). There can -// be a maximum of two AdParameters per ad group criterion. (One with -// parameter_index = 1 and one with parameter_index = 2.) -// In the ad the parameters are referenced by a placeholder of the form -// "{param#:value}". E.g. "{param1:$17}" -message AdParameter { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdParameter" - pattern: "customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}" - }; - - // Immutable. The resource name of the ad parameter. - // Ad parameter resource names have the form: - // - // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdParameter" - } - ]; - - // Immutable. The ad group criterion that this ad parameter belongs to. - optional string ad_group_criterion = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Immutable. The unique index of this ad parameter. Must be either 1 or 2. - optional int64 parameter_index = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Numeric value to insert into the ad text. The following restrictions - // apply: - // - Can use comma or period as a separator, with an optional period or - // comma (respectively) for fractional values. For example, 1,000,000.00 - // and 2.000.000,10 are valid. - // - Can be prepended or appended with a currency symbol. For example, - // $99.99 is valid. - // - Can be prepended or appended with a currency code. For example, 99.99USD - // and EUR200 are valid. - // - Can use '%'. For example, 1.0% and 1,0% are valid. - // - Can use plus or minus. For example, -10.99 and 25+ are valid. - // - Can use '/' between two numbers. For example 4/1 and 0.95/0.45 are - // valid. - optional string insertion_text = 7; -} diff --git a/google/ads/googleads/v7/resources/ad_schedule_view.proto b/google/ads/googleads/v7/resources/ad_schedule_view.proto deleted file mode 100644 index ac4cf2f22..000000000 --- a/google/ads/googleads/v7/resources/ad_schedule_view.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdScheduleViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ad schedule view resource. - -// An ad schedule view summarizes the performance of campaigns by -// AdSchedule criteria. -message AdScheduleView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdScheduleView" - pattern: "customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}" - }; - - // Output only. The resource name of the ad schedule view. - // AdSchedule view resource names have the form: - // - // `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdScheduleView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/age_range_view.proto b/google/ads/googleads/v7/resources/age_range_view.proto deleted file mode 100644 index 4b5e3e02c..000000000 --- a/google/ads/googleads/v7/resources/age_range_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AgeRangeViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the age range view resource. - -// An age range view. -message AgeRangeView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AgeRangeView" - pattern: "customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the age range view. - // Age range view resource names have the form: - // - // `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AgeRangeView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/asset.proto b/google/ads/googleads/v7/resources/asset.proto deleted file mode 100644 index 39d591004..000000000 --- a/google/ads/googleads/v7/resources/asset.proto +++ /dev/null @@ -1,135 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/asset_types.proto"; -import "google/ads/googleads/v7/common/custom_parameter.proto"; -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/enums/asset_type.proto"; -import "google/ads/googleads/v7/enums/policy_approval_status.proto"; -import "google/ads/googleads/v7/enums/policy_review_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AssetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the asset resource. - -// Asset is a part of an ad which can be shared across multiple ads. -// It can be an image (ImageAsset), a video (YoutubeVideoAsset), etc. -// Assets are immutable and cannot be removed. To stop an asset from serving, -// remove the asset from the entity that is using it. -message Asset { - option (google.api.resource) = { - type: "googleads.googleapis.com/Asset" - pattern: "customers/{customer_id}/assets/{asset_id}" - }; - - // Immutable. The resource name of the asset. - // Asset resource names have the form: - // - // `customers/{customer_id}/assets/{asset_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Output only. The ID of the asset. - optional int64 id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional name of the asset. - optional string name = 12; - - // Output only. Type of the asset. - google.ads.googleads.v7.enums.AssetTypeEnum.AssetType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // A list of possible final URLs after all cross domain redirects. - repeated string final_urls = 14; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 16; - - // URL template for constructing a tracking URL. - optional string tracking_url_template = 17; - - // 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.v7.common.CustomParameter url_custom_parameters = 18; - - // URL template for appending params to landing page URLs served with parallel - // tracking. - optional string final_url_suffix = 19; - - // Output only. Policy information for the asset. - AssetPolicySummary policy_summary = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The specific type of the asset. - oneof asset_data { - // Immutable. A YouTube video asset. - google.ads.googleads.v7.common.YoutubeVideoAsset youtube_video_asset = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A media bundle asset. - google.ads.googleads.v7.common.MediaBundleAsset media_bundle_asset = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. An image asset. - google.ads.googleads.v7.common.ImageAsset image_asset = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A text asset. - google.ads.googleads.v7.common.TextAsset text_asset = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // A lead form asset. - google.ads.googleads.v7.common.LeadFormAsset lead_form_asset = 9; - - // A book on google asset. - google.ads.googleads.v7.common.BookOnGoogleAsset book_on_google_asset = 10; - - // A promotion asset. - google.ads.googleads.v7.common.PromotionAsset promotion_asset = 15; - - // A callout asset. - google.ads.googleads.v7.common.CalloutAsset callout_asset = 20; - - // A structured snippet asset. - google.ads.googleads.v7.common.StructuredSnippetAsset structured_snippet_asset = 21; - - // A sitelink asset. - google.ads.googleads.v7.common.SitelinkAsset sitelink_asset = 22; - } -} - -// Contains policy information for an asset. -message AssetPolicySummary { - // Output only. The list of policy findings for this asset. - repeated google.ads.googleads.v7.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.v7.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.v7.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/batch_job.proto b/google/ads/googleads/v7/resources/batch_job.proto deleted file mode 100644 index 7036853c2..000000000 --- a/google/ads/googleads/v7/resources/batch_job.proto +++ /dev/null @@ -1,98 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/batch_job_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BatchJobProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the batch job resource. - -// A list of mutates being processed asynchronously. The mutates are uploaded -// by the user. The mutates themselves aren't readable and the results of the -// job can only be read using BatchJobService.ListBatchJobResults. -message BatchJob { - option (google.api.resource) = { - type: "googleads.googleapis.com/BatchJob" - pattern: "customers/{customer_id}/batchJobs/{batch_job_id}" - }; - - // Additional information about the batch job. This message is also used as - // metadata returned in batch job Long Running Operations. - message BatchJobMetadata { - // Output only. The time when this batch job was created. - // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:00" - optional string creation_date_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time when this batch job started running. - // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:30" - optional string start_date_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time when this batch job was completed. - // Formatted as yyyy-MM-dd HH:mm:ss. Example: "2018-03-05 09:16:00" - optional string completion_date_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The fraction (between 0.0 and 1.0) of mutates that have been processed. - // This is empty if the job hasn't started running yet. - optional double estimated_completion_ratio = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of mutate operations in the batch job. - optional int64 operation_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of mutate operations executed by the batch job. - // Present only if the job has started running. - optional int64 executed_operation_count = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the batch job. - // Batch job resource names have the form: - // - // `customers/{customer_id}/batchJobs/{batch_job_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; - - // Output only. ID of this batch job. - optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The next sequence token to use when adding operations. Only set when the - // batch job status is PENDING. - optional string next_add_sequence_token = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Contains additional information about this batch job. - BatchJobMetadata metadata = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of this batch job. - google.ads.googleads.v7.enums.BatchJobStatusEnum.BatchJobStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the long-running operation that can be used to poll - // for completion. Only set when the batch job status is RUNNING or DONE. - optional string long_running_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/bidding_strategy.proto b/google/ads/googleads/v7/resources/bidding_strategy.proto deleted file mode 100644 index 008768307..000000000 --- a/google/ads/googleads/v7/resources/bidding_strategy.proto +++ /dev/null @@ -1,130 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/bidding.proto"; -import "google/ads/googleads/v7/enums/bidding_strategy_status.proto"; -import "google/ads/googleads/v7/enums/bidding_strategy_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the BiddingStrategy resource - -// A bidding strategy. -message BiddingStrategy { - option (google.api.resource) = { - type: "googleads.googleapis.com/BiddingStrategy" - pattern: "customers/{customer_id}/biddingStrategies/{bidding_strategy_id}" - }; - - // Immutable. The resource name of the bidding strategy. - // Bidding strategy resource names have the form: - // - // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategy" - } - ]; - - // Output only. The ID of the bidding strategy. - optional int64 id = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the bidding strategy. - // All bidding strategies within an account must be named distinctly. - // - // The length of this string should be between 1 and 255, inclusive, - // in UTF-8 bytes, (trimmed). - optional string name = 17; - - // Output only. The status of the bidding strategy. - // - // This field is read-only. - google.ads.googleads.v7.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.v7.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The currency used by the bidding strategy (ISO 4217 three-letter code). - // - // For bidding strategies in manager customers, this is the currency set by - // the advertiser when creating the strategy. For serving customers, this is - // the customer's currency_code. - // - // Bidding strategy metrics are reported in this currency. - // - // This field is read-only. - optional string effective_currency_code = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of campaigns attached to this bidding strategy. - // - // This field is read-only. - optional int64 campaign_count = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of non-removed campaigns attached to this bidding strategy. - // - // This field is read-only. - optional int64 non_removed_campaign_count = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The bidding scheme. - // - // Only one can be set. - oneof scheme { - // 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.v7.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.v7.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.v7.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.v7.common.TargetCpa target_cpa = 9; - - // A bidding strategy that automatically optimizes towards a desired - // percentage of impressions. - google.ads.googleads.v7.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.v7.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.v7.common.TargetSpend target_spend = 12; - } -} diff --git a/google/ads/googleads/v7/resources/bidding_strategy_simulation.proto b/google/ads/googleads/v7/resources/bidding_strategy_simulation.proto deleted file mode 100644 index 630f2366c..000000000 --- a/google/ads/googleads/v7/resources/bidding_strategy_simulation.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/simulation.proto"; -import "google/ads/googleads/v7/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v7/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategySimulationProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the bidding strategy simulation resource. - -// A bidding strategy simulation. Supported combinations of simulation type -// and simulation modification method are detailed below respectively. -// -// 1. TARGET_CPA - UNIFORM -// 2. TARGET_ROAS - UNIFORM -message BiddingStrategySimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/BiddingStrategySimulation" - pattern: "customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the bidding strategy simulation. - // Bidding strategy simulation resource names have the form: - // - // `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategySimulation" - } - ]; - - // Output only. Bidding strategy shared set id of the simulation. - int64 bidding_strategy_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v7.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v7.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - string start_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format - string end_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is TARGET_CPA. - google.ads.googleads.v7.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.v7.common.TargetRoasSimulationPointList target_roas_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/billing_setup.proto b/google/ads/googleads/v7/resources/billing_setup.proto deleted file mode 100644 index 9102e4ff2..000000000 --- a/google/ads/googleads/v7/resources/billing_setup.proto +++ /dev/null @@ -1,138 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/billing_setup_status.proto"; -import "google/ads/googleads/v7/enums/time_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BillingSetupProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the BillingSetup resource. - -// A billing setup, which associates a payments account and an advertiser. A -// billing setup is specific to one advertiser. -message BillingSetup { - option (google.api.resource) = { - type: "googleads.googleapis.com/BillingSetup" - pattern: "customers/{customer_id}/billingSetups/{billing_setup_id}" - }; - - // Container of payments account information for this billing. - message PaymentsAccountInfo { - // Output only. A 16 digit id used to identify the payments account associated with the - // billing setup. - // - // This must be passed as a string with dashes, e.g. "1234-5678-9012-3456". - optional string payments_account_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The name of the payments account associated with the billing setup. - // - // This enables the user to specify a meaningful name for a payments account - // to aid in reconciling monthly invoices. - // - // This name will be printed in the monthly invoices. - optional string payments_account_name = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A 12 digit id used to identify the payments profile associated with the - // billing setup. - // - // This must be passed in as a string with dashes, e.g. "1234-5678-9012". - optional string payments_profile_id = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The name of the payments profile associated with the billing setup. - optional string payments_profile_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A secondary payments profile id present in uncommon situations, e.g. - // when a sequential liability agreement has been arranged. - optional string secondary_payments_profile_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the billing setup. - // BillingSetup resource names have the form: - // - // `customers/{customer_id}/billingSetups/{billing_setup_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BillingSetup" - } - ]; - - // Output only. The ID of the billing setup. - optional int64 id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The status of the billing setup. - google.ads.googleads.v7.enums.BillingSetupStatusEnum.BillingSetupStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The resource name of the payments account associated with this billing - // setup. Payments resource names have the form: - // - // `customers/{customer_id}/paymentsAccounts/{payments_account_id}` - // When setting up billing, this is used to signup with an existing payments - // account (and then payments_account_info should not be set). - // When getting a billing setup, this and payments_account_info will be - // populated. - optional string payments_account = 18 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/PaymentsAccount" - } - ]; - - // Immutable. The payments account information associated with this billing setup. - // When setting up billing, this is used to signup with a new payments account - // (and then payments_account should not be set). - // When getting a billing setup, this and payments_account will be - // populated. - PaymentsAccountInfo payments_account_info = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // When creating a new billing setup, this is when the setup should take - // effect. NOW is the only acceptable start time if the customer doesn't have - // any approved setups. - // - // When fetching an existing billing setup, this is the requested start time. - // However, if the setup was approved (see status) after the requested start - // time, then this is the approval time. - oneof start_time { - // Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. Only a - // future time is allowed. - string start_date_time = 16 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The start time as a type. Only NOW is allowed. - google.ads.googleads.v7.enums.TimeTypeEnum.TimeType start_time_type = 10 [(google.api.field_behavior) = IMMUTABLE]; - } - - // When the billing setup ends / ended. This is either FOREVER or the start - // time of the next scheduled billing setup. - oneof end_time { - // Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. - 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.v7.enums.TimeTypeEnum.TimeType end_time_type = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/call_view.proto b/google/ads/googleads/v7/resources/call_view.proto deleted file mode 100644 index 6ef1eec31..000000000 --- a/google/ads/googleads/v7/resources/call_view.proto +++ /dev/null @@ -1,80 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/call_tracking_display_location.proto"; -import "google/ads/googleads/v7/enums/call_type.proto"; -import "google/ads/googleads/v7/enums/google_voice_call_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CallViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the call view resource. - -// A call view that includes data for call tracking of call-only ads or call -// extensions. -message CallView { - option (google.api.resource) = { - type: "googleads.googleapis.com/CallView" - pattern: "customers/{customer_id}/callViews/{call_detail_id}" - }; - - // Output only. The resource name of the call view. - // Call view resource names have the form: - // - // `customers/{customer_id}/callViews/{call_detail_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CallView" - } - ]; - - // Output only. Region code of the caller. - string caller_region_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Area code of the caller. Null if the call duration is shorter than 15 - // seconds. - string caller_area_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The advertiser-provided call duration in seconds. - int64 call_duration_seconds = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The advertiser-provided call start date time. - string start_call_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The advertiser-provided call end date time. - string end_call_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The call tracking display location. - google.ads.googleads.v7.enums.CallTrackingDisplayLocationEnum.CallTrackingDisplayLocation call_tracking_display_location = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of the call. - google.ads.googleads.v7.enums.CallTypeEnum.CallType type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The status of the call. - google.ads.googleads.v7.enums.GoogleVoiceCallStatusEnum.GoogleVoiceCallStatus call_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/campaign.proto b/google/ads/googleads/v7/resources/campaign.proto deleted file mode 100644 index de5b3da6a..000000000 --- a/google/ads/googleads/v7/resources/campaign.proto +++ /dev/null @@ -1,425 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/bidding.proto"; -import "google/ads/googleads/v7/common/custom_parameter.proto"; -import "google/ads/googleads/v7/common/frequency_cap.proto"; -import "google/ads/googleads/v7/common/real_time_bidding_setting.proto"; -import "google/ads/googleads/v7/common/targeting_setting.proto"; -import "google/ads/googleads/v7/enums/ad_serving_optimization_status.proto"; -import "google/ads/googleads/v7/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v7/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v7/enums/app_campaign_app_store.proto"; -import "google/ads/googleads/v7/enums/app_campaign_bidding_strategy_goal_type.proto"; -import "google/ads/googleads/v7/enums/asset_field_type.proto"; -import "google/ads/googleads/v7/enums/bidding_strategy_type.proto"; -import "google/ads/googleads/v7/enums/brand_safety_suitability.proto"; -import "google/ads/googleads/v7/enums/campaign_experiment_type.proto"; -import "google/ads/googleads/v7/enums/campaign_serving_status.proto"; -import "google/ads/googleads/v7/enums/campaign_status.proto"; -import "google/ads/googleads/v7/enums/location_source_type.proto"; -import "google/ads/googleads/v7/enums/negative_geo_target_type.proto"; -import "google/ads/googleads/v7/enums/optimization_goal_type.proto"; -import "google/ads/googleads/v7/enums/payment_mode.proto"; -import "google/ads/googleads/v7/enums/positive_geo_target_type.proto"; -import "google/ads/googleads/v7/enums/vanity_pharma_display_url_mode.proto"; -import "google/ads/googleads/v7/enums/vanity_pharma_text.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Campaign resource. - -// A campaign. -message Campaign { - option (google.api.resource) = { - type: "googleads.googleapis.com/Campaign" - pattern: "customers/{customer_id}/campaigns/{campaign_id}" - }; - - // The network settings for the campaign. - message NetworkSettings { - // Whether ads will be served with google.com search results. - optional bool target_google_search = 5; - - // Whether ads will be served on partner sites in the Google Search Network - // (requires `target_google_search` to also be `true`). - optional bool target_search_network = 6; - - // Whether ads will be served on specified placements in the Google Display - // Network. Placements are specified using the Placement criterion. - optional bool target_content_network = 7; - - // 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; - } - - // Campaign-level settings for hotel ads. - message HotelSettingInfo { - // Immutable. The linked Hotel Center account. - optional int64 hotel_center_id = 2 [(google.api.field_behavior) = IMMUTABLE]; - } - - // The setting for controlling Dynamic Search Ads (DSA). - message DynamicSearchAdsSetting { - // Required. The Internet domain name that this setting represents, e.g., "google.com" - // or "www.google.com". - string domain_name = 6 [(google.api.field_behavior) = REQUIRED]; - - // Required. The language code specifying the language of the domain, e.g., "en". - string language_code = 7 [(google.api.field_behavior) = REQUIRED]; - - // Whether the campaign uses advertiser supplied URLs exclusively. - optional bool use_supplied_urls_only = 8; - - // The list of page feeds associated with the campaign. - repeated string feeds = 9 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - }]; - } - - // Campaign-level settings for tracking information. - message TrackingSetting { - // Output only. The url used for dynamic tracking. - optional string tracking_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Selective optimization setting for this campaign, which includes a set of - // conversion actions to optimize this campaign towards. - message SelectiveOptimization { - // The selected set of conversion actions for optimizing this campaign. - repeated string conversion_actions = 2 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionAction" - }]; - } - - // Optimization goal setting for this campaign, which includes a set of - // optimization goal types. - message OptimizationGoalSetting { - // The list of optimization goal types. - repeated google.ads.googleads.v7.enums.OptimizationGoalTypeEnum.OptimizationGoalType optimization_goal_types = 1; - } - - // The setting for Shopping campaigns. Defines the universe of products that - // can be advertised by the campaign, and how this campaign interacts with - // other Shopping campaigns. - message ShoppingSetting { - // Immutable. 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. - // This field is required for Shopping campaigns. - // This field is optional for non-Shopping campaigns, but it must be equal - // to 'ZZ' if set. - optional string sales_country = 6; - - // Priority of the campaign. Campaigns with numerically higher priorities - // take precedence over those with lower priorities. - // This field is required for Shopping campaigns, with values between 0 and - // 2, inclusive. - // This field is optional for Smart Shopping campaigns, but must be equal to - // 3 if set. - optional int32 campaign_priority = 7; - - // Whether to include local products. - optional bool enable_local = 8; - } - - // Represents a collection of settings related to ads geotargeting. - message GeoTargetTypeSetting { - // The setting used for positive geotargeting in this particular campaign. - google.ads.googleads.v7.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType positive_geo_target_type = 1; - - // The setting used for negative geotargeting in this particular campaign. - google.ads.googleads.v7.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.v7.enums.LocationSourceTypeEnum.LocationSourceType location_source_type = 1; - } - - // Describes how unbranded pharma ads will be displayed. - message VanityPharma { - // The display mode for vanity pharma URLs. - google.ads.googleads.v7.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.v7.enums.VanityPharmaTextEnum.VanityPharmaText vanity_pharma_text = 2; - } - - // Campaign-level settings for App Campaigns. - message AppCampaignSetting { - // Represents the goal which the bidding strategy of this app campaign - // should optimize towards. - google.ads.googleads.v7.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.v7.enums.AppCampaignAppStoreEnum.AppCampaignAppStore app_store = 3 [(google.api.field_behavior) = IMMUTABLE]; - } - - // Immutable. The resource name of the campaign. - // Campaign resource names have the form: - // - // `customers/{customer_id}/campaigns/{campaign_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The ID of the campaign. - optional int64 id = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the campaign. - // - // This field is required and should not be empty when creating new - // campaigns. - // - // It must not contain any null (code point 0x0), NL line feed - // (code point 0xA) or carriage return (code point 0xD) characters. - optional string name = 58; - - // The status of the campaign. - // - // When a new campaign is added, the status defaults to ENABLED. - google.ads.googleads.v7.enums.CampaignStatusEnum.CampaignStatus status = 5; - - // Output only. The ad serving status of the campaign. - google.ads.googleads.v7.enums.CampaignServingStatusEnum.CampaignServingStatus serving_status = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The ad serving optimization status of the campaign. - google.ads.googleads.v7.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus ad_serving_optimization_status = 8; - - // Immutable. The primary serving target for ads within the campaign. - // The targeting options can be refined in `network_settings`. - // - // This field is required and should not be empty when creating new - // campaigns. - // - // Can be set only when creating campaigns. - // After the campaign is created, the field can not be changed. - google.ads.googleads.v7.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 9 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Optional refinement to `advertising_channel_type`. - // Must be a valid sub-type of the parent channel type. - // - // Can be set only when creating campaigns. - // After campaign is created, the field can not be changed. - google.ads.googleads.v7.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 10 [(google.api.field_behavior) = IMMUTABLE]; - - // The URL template for constructing a tracking URL. - optional string tracking_url_template = 60; - - // 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.v7.common.CustomParameter url_custom_parameters = 12; - - // Settings for Real-Time Bidding, a feature only available for campaigns - // targeting the Ad Exchange network. - google.ads.googleads.v7.common.RealTimeBiddingSetting real_time_bidding_setting = 39; - - // The network settings for the campaign. - NetworkSettings network_settings = 14; - - // Immutable. The hotel setting for the campaign. - HotelSettingInfo hotel_setting = 32 [(google.api.field_behavior) = IMMUTABLE]; - - // The setting for controlling Dynamic Search Ads (DSA). - DynamicSearchAdsSetting dynamic_search_ads_setting = 33; - - // The setting for controlling Shopping campaigns. - ShoppingSetting shopping_setting = 36; - - // Setting for targeting related features. - google.ads.googleads.v7.common.TargetingSetting targeting_setting = 43; - - // The setting for ads geotargeting. - GeoTargetTypeSetting geo_target_type_setting = 47; - - // The setting for local campaign. - LocalCampaignSetting local_campaign_setting = 50; - - // The setting related to App Campaign. - AppCampaignSetting app_campaign_setting = 51; - - // Output only. The resource names of labels attached to this campaign. - repeated string labels = 61 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignLabel" - } - ]; - - // Output only. The type of campaign: normal, draft, or experiment. - google.ads.googleads.v7.enums.CampaignExperimentTypeEnum.CampaignExperimentType experiment_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the base campaign of a draft or experiment campaign. - // For base campaigns, this is equal to `resource_name`. - // - // This field is read-only. - optional string base_campaign = 56 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // The budget of the campaign. - optional string campaign_budget = 62 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBudget" - }]; - - // Output only. The type of bidding strategy. - // - // A bidding strategy can be created by setting either the bidding scheme to - // create a standard bidding strategy or the `bidding_strategy` field to - // create a portfolio bidding strategy. - // - // This field is read-only. - google.ads.googleads.v7.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The date when campaign started. - optional string start_date = 63; - - // The last day of the campaign. - optional string end_date = 64; - - // Suffix used to append query parameters to landing pages that are served - // with parallel tracking. - optional string final_url_suffix = 65; - - // A list that limits how often each user will see this campaign's ads. - repeated google.ads.googleads.v7.common.FrequencyCapEntry frequency_caps = 40; - - // Output only. 3-Tier Brand Safety setting for the campaign. - google.ads.googleads.v7.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability video_brand_safety_suitability = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Describes how unbranded pharma ads will be displayed. - VanityPharma vanity_pharma = 44; - - // Selective optimization setting for this campaign, which includes a set of - // conversion actions to optimize this campaign towards. - SelectiveOptimization selective_optimization = 45; - - // Optimization goal setting for this campaign, which includes a set of - // optimization goal types. - OptimizationGoalSetting optimization_goal_setting = 54; - - // Output only. Campaign-level settings for tracking information. - TrackingSetting tracking_setting = 46 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Payment mode for the campaign. - google.ads.googleads.v7.enums.PaymentModeEnum.PaymentMode payment_mode = 52; - - // Output only. Optimization score of the campaign. - // - // Optimization score is an estimate of how well a campaign is set to perform. - // It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the - // campaign is performing at full potential. This field is null for unscored - // campaigns. - // - // See "About optimization score" at - // https://support.google.com/google-ads/answer/9061546. - // - // This field is read-only. - optional double optimization_score = 66 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // 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.v7.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 69; - - // The bidding strategy for the campaign. - // - // Must be either portfolio (created via BiddingStrategy service) or - // standard, that is embedded into the campaign. - oneof campaign_bidding_strategy { - // Portfolio bidding strategy used by campaign. - string bidding_strategy = 67 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategy" - }]; - - // Commission is an automatic bidding strategy in which the advertiser pays - // a certain portion of the conversion value. - google.ads.googleads.v7.common.Commission commission = 49; - - // Standard Manual CPC bidding strategy. - // Manual click-based bidding where user pays per click. - google.ads.googleads.v7.common.ManualCpc manual_cpc = 24; - - // Standard Manual CPM bidding strategy. - // Manual impression-based bidding where user pays per thousand - // impressions. - google.ads.googleads.v7.common.ManualCpm manual_cpm = 25; - - // Output only. A bidding strategy that pays a configurable amount per video view. - google.ads.googleads.v7.common.ManualCpv manual_cpv = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Standard Maximize Conversions bidding strategy that automatically - // maximizes number of conversions while spending your budget. - google.ads.googleads.v7.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.v7.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.v7.common.TargetCpa target_cpa = 26; - - // Target Impression Share bidding strategy. An automated bidding strategy - // that sets bids to achieve a desired percentage of impressions. - google.ads.googleads.v7.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.v7.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.v7.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.v7.common.PercentCpc percent_cpc = 34; - - // A bidding strategy that automatically optimizes cost per thousand - // impressions. - google.ads.googleads.v7.common.TargetCpm target_cpm = 41; - } -} diff --git a/google/ads/googleads/v7/resources/campaign_asset.proto b/google/ads/googleads/v7/resources/campaign_asset.proto deleted file mode 100644 index 1144ea5aa..000000000 --- a/google/ads/googleads/v7/resources/campaign_asset.proto +++ /dev/null @@ -1,76 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/asset_field_type.proto"; -import "google/ads/googleads/v7/enums/asset_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignAssetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CampaignAsset resource. - -// A link between a Campaign and an Asset. -message CampaignAsset { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignAsset" - pattern: "customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}" - }; - - // Immutable. The resource name of the campaign asset. - // CampaignAsset resource names have the form: - // - // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAsset" - } - ]; - - // Immutable. The campaign to which the asset is linked. - optional string campaign = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Immutable. The asset which is linked to the campaign. - optional string asset = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Immutable. Role that the asset takes under the linked campaign. - // Required. - google.ads.googleads.v7.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Status of the campaign asset. - google.ads.googleads.v7.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; -} diff --git a/google/ads/googleads/v7/resources/campaign_audience_view.proto b/google/ads/googleads/v7/resources/campaign_audience_view.proto deleted file mode 100644 index c0ad21765..000000000 --- a/google/ads/googleads/v7/resources/campaign_audience_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignAudienceViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the campaign audience view resource. - -// A campaign audience view. -// Includes performance data from interests and remarketing lists for Display -// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), -// aggregated by campaign and audience criterion. This view only includes -// audiences attached at the campaign level. -message CampaignAudienceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignAudienceView" - pattern: "customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}" - }; - - // Output only. The resource name of the campaign audience view. - // Campaign audience view resource names have the form: - // - // `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAudienceView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/campaign_bid_modifier.proto b/google/ads/googleads/v7/resources/campaign_bid_modifier.proto deleted file mode 100644 index 3d9e06de6..000000000 --- a/google/ads/googleads/v7/resources/campaign_bid_modifier.proto +++ /dev/null @@ -1,76 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBidModifierProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Campaign Bid Modifier resource. - -// Represents a bid-modifiable only criterion at the campaign level. -message CampaignBidModifier { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignBidModifier" - pattern: "customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}" - }; - - // Immutable. The resource name of the campaign bid modifier. - // Campaign bid modifier resource names have the form: - // - // `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBidModifier" - } - ]; - - // Output only. The campaign to which this criterion belongs. - optional string campaign = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The ID of the criterion to bid modify. - // - // This field is ignored for mutates. - optional int64 criterion_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The modifier for the bid when the criterion matches. - optional double bid_modifier = 8; - - // The criterion of this campaign bid modifier. - // - // Required in create operations starting in V5. - oneof criterion { - // Immutable. Criterion for interaction type. Only supported for search campaigns. - google.ads.googleads.v7.common.InteractionTypeInfo interaction_type = 5 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/campaign_budget.proto b/google/ads/googleads/v7/resources/campaign_budget.proto deleted file mode 100644 index 4d4d22312..000000000 --- a/google/ads/googleads/v7/resources/campaign_budget.proto +++ /dev/null @@ -1,156 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/budget_delivery_method.proto"; -import "google/ads/googleads/v7/enums/budget_period.proto"; -import "google/ads/googleads/v7/enums/budget_status.proto"; -import "google/ads/googleads/v7/enums/budget_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBudgetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Budget resource. - -// A campaign budget. -message CampaignBudget { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignBudget" - pattern: "customers/{customer_id}/campaignBudgets/{campaign_budget_id}" - }; - - // Immutable. The resource name of the campaign budget. - // Campaign budget resource names have the form: - // - // `customers/{customer_id}/campaignBudgets/{campaign_budget_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBudget" - } - ]; - - // Output only. The ID of the campaign budget. - // - // A campaign budget is created using the CampaignBudgetService create - // operation and is assigned a budget ID. A budget ID can be shared across - // different campaigns; the system will then allocate the campaign budget - // among different campaigns to get optimum results. - optional int64 id = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the campaign budget. - // - // When creating a campaign budget through CampaignBudgetService, every - // explicitly shared campaign budget must have a non-null, non-empty name. - // Campaign budgets that are not explicitly shared derive their name from the - // attached campaign's name. - // - // The length of this string must be between 1 and 255, inclusive, - // in UTF-8 bytes, (trimmed). - optional string name = 20; - - // The amount of the budget, in the local currency for the account. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. Monthly spend is capped at 30.4 times this amount. - optional int64 amount_micros = 21; - - // The lifetime amount of the budget, in the local currency for the account. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - optional int64 total_amount_micros = 22; - - // Output only. The status of this campaign budget. This field is read-only. - google.ads.googleads.v7.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.v7.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod delivery_method = 7; - - // Specifies whether the budget is explicitly shared. Defaults to true if - // unspecified in a create operation. - // - // If true, the budget was created with the purpose of sharing - // across one or more campaigns. - // - // If false, the budget was created with the intention of only being used - // with a single campaign. The budget's name and status will stay in sync - // with the campaign's name and status. Attempting to share the budget with a - // second campaign will result in an error. - // - // A non-shared budget can become an explicitly shared. The same operation - // must also assign the budget a name. - // - // A shared campaign budget can never become non-shared. - optional bool explicitly_shared = 23; - - // Output only. The number of campaigns actively using the budget. - // - // This field is read-only. - optional int64 reference_count = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates whether there is a recommended budget for this campaign budget. - // - // This field is read-only. - optional bool has_recommended_budget = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended budget amount. If no recommendation is available, this will - // be set to the budget amount. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - // - // This field is read-only. - optional int64 recommended_budget_amount_micros = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Period over which to spend the budget. Defaults to DAILY if not specified. - google.ads.googleads.v7.enums.BudgetPeriodEnum.BudgetPeriod period = 13 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The estimated change in weekly clicks if the recommended budget is applied. - // - // This field is read-only. - optional int64 recommended_budget_estimated_change_weekly_clicks = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimated change in weekly cost in micros if the recommended budget is - // applied. One million is equivalent to one currency unit. - // - // This field is read-only. - optional int64 recommended_budget_estimated_change_weekly_cost_micros = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimated change in weekly interactions if the recommended budget is - // applied. - // - // This field is read-only. - optional int64 recommended_budget_estimated_change_weekly_interactions = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimated change in weekly views if the recommended budget is applied. - // - // This field is read-only. - optional int64 recommended_budget_estimated_change_weekly_views = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The type of the campaign budget. - google.ads.googleads.v7.enums.BudgetTypeEnum.BudgetType type = 18 [(google.api.field_behavior) = IMMUTABLE]; -} diff --git a/google/ads/googleads/v7/resources/campaign_criterion.proto b/google/ads/googleads/v7/resources/campaign_criterion.proto deleted file mode 100644 index dc097cf53..000000000 --- a/google/ads/googleads/v7/resources/campaign_criterion.proto +++ /dev/null @@ -1,178 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/enums/campaign_criterion_status.proto"; -import "google/ads/googleads/v7/enums/criterion_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Campaign Criterion resource. - -// A campaign criterion. -message CampaignCriterion { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignCriterion" - pattern: "customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}" - }; - - // Immutable. The resource name of the campaign criterion. - // Campaign criterion resource names have the form: - // - // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterion" - } - ]; - - // Immutable. The campaign to which the criterion belongs. - optional string campaign = 37 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The ID of the criterion. - // - // This field is ignored during mutate. - optional int64 criterion_id = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The display name of the criterion. - // - // This field is ignored for mutates. - string display_name = 43 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The modifier for the bids when the criterion matches. The modifier must be - // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. - // Use 0 to opt out of a Device type. - optional float bid_modifier = 39; - - // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. - optional bool negative = 40 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The type of the criterion. - google.ads.googleads.v7.enums.CriterionTypeEnum.CriterionType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The status of the criterion. - google.ads.googleads.v7.enums.CampaignCriterionStatusEnum.CampaignCriterionStatus status = 35; - - // The campaign criterion. - // - // Exactly one must be set. - oneof criterion { - // Immutable. Keyword. - google.ads.googleads.v7.common.KeywordInfo keyword = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Placement. - google.ads.googleads.v7.common.PlacementInfo placement = 9 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile app category. - google.ads.googleads.v7.common.MobileAppCategoryInfo mobile_app_category = 10 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile application. - google.ads.googleads.v7.common.MobileApplicationInfo mobile_application = 11 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Location. - google.ads.googleads.v7.common.LocationInfo location = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Device. - google.ads.googleads.v7.common.DeviceInfo device = 13 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Ad Schedule. - google.ads.googleads.v7.common.AdScheduleInfo ad_schedule = 15 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Age range. - google.ads.googleads.v7.common.AgeRangeInfo age_range = 16 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Gender. - google.ads.googleads.v7.common.GenderInfo gender = 17 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Income range. - google.ads.googleads.v7.common.IncomeRangeInfo income_range = 18 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Parental status. - google.ads.googleads.v7.common.ParentalStatusInfo parental_status = 19 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. User List. - google.ads.googleads.v7.common.UserListInfo user_list = 22 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Video. - google.ads.googleads.v7.common.YouTubeVideoInfo youtube_video = 20 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Channel. - google.ads.googleads.v7.common.YouTubeChannelInfo youtube_channel = 21 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Proximity. - google.ads.googleads.v7.common.ProximityInfo proximity = 23 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Topic. - google.ads.googleads.v7.common.TopicInfo topic = 24 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Listing scope. - google.ads.googleads.v7.common.ListingScopeInfo listing_scope = 25 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Language. - google.ads.googleads.v7.common.LanguageInfo language = 26 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. IpBlock. - google.ads.googleads.v7.common.IpBlockInfo ip_block = 27 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. ContentLabel. - google.ads.googleads.v7.common.ContentLabelInfo content_label = 28 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Carrier. - google.ads.googleads.v7.common.CarrierInfo carrier = 29 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. User Interest. - google.ads.googleads.v7.common.UserInterestInfo user_interest = 30 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Webpage. - google.ads.googleads.v7.common.WebpageInfo webpage = 31 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Operating system version. - google.ads.googleads.v7.common.OperatingSystemVersionInfo operating_system_version = 32 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile Device. - google.ads.googleads.v7.common.MobileDeviceInfo mobile_device = 33 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Location Group - google.ads.googleads.v7.common.LocationGroupInfo location_group = 34 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Affinity. - google.ads.googleads.v7.common.CustomAffinityInfo custom_affinity = 36 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Audience - google.ads.googleads.v7.common.CustomAudienceInfo custom_audience = 41 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Combined Audience. - google.ads.googleads.v7.common.CombinedAudienceInfo combined_audience = 42 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/campaign_criterion_simulation.proto b/google/ads/googleads/v7/resources/campaign_criterion_simulation.proto deleted file mode 100644 index bfa4c5a73..000000000 --- a/google/ads/googleads/v7/resources/campaign_criterion_simulation.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/simulation.proto"; -import "google/ads/googleads/v7/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v7/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionSimulationProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the campaign criterion simulation resource. - -// A campaign criterion simulation. Supported combinations of advertising -// channel type, criterion ids, simulation type and simulation modification -// method is detailed below respectively. -// -// 1. SEARCH - 30000,30001,30002 - BID_MODIFIER - UNIFORM -// 2. DISPLAY - 30001 - BID_MODIFIER - UNIFORM -message CampaignCriterionSimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignCriterionSimulation" - pattern: "customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the campaign criterion simulation. - // Campaign criterion simulation resource names have the form: - // - // `customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterionSimulation" - } - ]; - - // Output only. Campaign ID of the simulation. - optional int64 campaign_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Criterion ID of the simulation. - optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v7.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v7.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - optional string start_date = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format. - optional string end_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is BID_MODIFIER. - google.ads.googleads.v7.common.BidModifierSimulationPointList bid_modifier_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/campaign_draft.proto b/google/ads/googleads/v7/resources/campaign_draft.proto deleted file mode 100644 index 679e6f05e..000000000 --- a/google/ads/googleads/v7/resources/campaign_draft.proto +++ /dev/null @@ -1,98 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/campaign_draft_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignDraftProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Campaign Draft resource. - -// A campaign draft. -message CampaignDraft { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignDraft" - pattern: "customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}" - }; - - // Immutable. The resource name of the campaign draft. - // Campaign draft resource names have the form: - // - // `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignDraft" - } - ]; - - // Output only. The ID of the draft. - // - // This field is read-only. - optional int64 draft_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The base campaign to which the draft belongs. - optional string base_campaign = 10 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // The name of the campaign draft. - // - // This field is required and should not be empty when creating new - // campaign drafts. - // - // It must not contain any null (code point 0x0), NL line feed - // (code point 0xA) or carriage return (code point 0xD) characters. - optional string name = 11; - - // Output only. Resource name of the Campaign that results from overlaying the draft - // changes onto the base campaign. - // - // This field is read-only. - optional string draft_campaign = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // 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.v7.enums.CampaignDraftStatusEnum.CampaignDraftStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether there is an experiment based on this draft currently serving. - optional bool has_experiment_running = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the long-running operation that can be used to poll - // for completion of draft promotion. This is only set if the draft promotion - // is in progress or finished. - optional string long_running_operation = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/campaign_experiment.proto b/google/ads/googleads/v7/resources/campaign_experiment.proto deleted file mode 100644 index 2b2de83ae..000000000 --- a/google/ads/googleads/v7/resources/campaign_experiment.proto +++ /dev/null @@ -1,121 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/campaign_experiment_status.proto"; -import "google/ads/googleads/v7/enums/campaign_experiment_traffic_split_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Campaign Experiment resource. - -// An A/B experiment that compares the performance of the base campaign -// (the control) and a variation of that campaign (the experiment). -message CampaignExperiment { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignExperiment" - pattern: "customers/{customer_id}/campaignExperiments/{campaign_experiment_id}" - }; - - // Immutable. The resource name of the campaign experiment. - // Campaign experiment resource names have the form: - // - // `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExperiment" - } - ]; - - // Output only. The ID of the campaign experiment. - // - // This field is read-only. - optional int64 id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The campaign draft with staged changes to the base campaign. - optional string campaign_draft = 14 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignDraft" - } - ]; - - // The name of the campaign experiment. - // - // This field is required when creating new campaign experiments - // and must not conflict with the name of another non-removed - // campaign experiment or campaign. - // - // It must not contain any null (code point 0x0), NL line feed - // (code point 0xA) or carriage return (code point 0xD) characters. - optional string name = 15; - - // The description of the experiment. - optional string description = 16; - - // Immutable. Share of traffic directed to experiment as a percent (must be between 1 and - // 99 inclusive. Base campaign receives the remainder of the traffic - // (100 - traffic_split_percent). Required for create. - optional int64 traffic_split_percent = 17 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Determines the behavior of the traffic split. - google.ads.googleads.v7.enums.CampaignExperimentTrafficSplitTypeEnum.CampaignExperimentTrafficSplitType traffic_split_type = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The experiment campaign, as opposed to the base campaign. - optional string experiment_campaign = 18 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The status of the campaign experiment. This field is read-only. - google.ads.googleads.v7.enums.CampaignExperimentStatusEnum.CampaignExperimentStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the long-running operation that can be used to poll - // for completion of experiment create or promote. The most recent long - // running operation is returned. - optional string long_running_operation = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Date when the campaign experiment starts. By default, the experiment starts - // now or on the campaign's start date, whichever is later. If this field is - // set, then the experiment starts at the beginning of the specified date in - // the customer's time zone. Cannot be changed once the experiment starts. - // - // Format: YYYY-MM-DD - // Example: 2019-03-14 - optional string start_date = 20; - - // The last day of the campaign experiment. By default, the experiment ends on - // the campaign's end date. If this field is set, then the experiment ends at - // the end of the specified date in the customer's time zone. - // - // Format: YYYY-MM-DD - // Example: 2019-04-18 - optional string end_date = 21; -} diff --git a/google/ads/googleads/v7/resources/campaign_extension_setting.proto b/google/ads/googleads/v7/resources/campaign_extension_setting.proto deleted file mode 100644 index 23410e476..000000000 --- a/google/ads/googleads/v7/resources/campaign_extension_setting.proto +++ /dev/null @@ -1,79 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/extension_setting_device.proto"; -import "google/ads/googleads/v7/enums/extension_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CampaignExtensionSetting resource. - -// A campaign extension setting. -message CampaignExtensionSetting { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignExtensionSetting" - pattern: "customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}" - }; - - // Immutable. The resource name of the campaign extension setting. - // CampaignExtensionSetting resource names have the form: - // - // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExtensionSetting" - } - ]; - - // Immutable. The extension type of the customer extension setting. - google.ads.googleads.v7.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The resource name of the campaign. The linked extension feed items will - // serve under this campaign. - // Campaign resource names have the form: - // - // `customers/{customer_id}/campaigns/{campaign_id}` - optional string campaign = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // The resource names of the extension feed items to serve under the campaign. - // ExtensionFeedItem resource names have the form: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - repeated string extension_feed_items = 7 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - }]; - - // The device for which the extensions will serve. Optional. - google.ads.googleads.v7.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5; -} diff --git a/google/ads/googleads/v7/resources/campaign_feed.proto b/google/ads/googleads/v7/resources/campaign_feed.proto deleted file mode 100644 index 0338aae24..000000000 --- a/google/ads/googleads/v7/resources/campaign_feed.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/matching_function.proto"; -import "google/ads/googleads/v7/enums/feed_link_status.proto"; -import "google/ads/googleads/v7/enums/placeholder_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignFeedProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CampaignFeed resource. - -// A campaign feed. -message CampaignFeed { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignFeed" - pattern: "customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}" - }; - - // Immutable. The resource name of the campaign feed. - // Campaign feed resource names have the form: - // - // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id} - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignFeed" - } - ]; - - // Immutable. The feed to which the CampaignFeed belongs. - optional string feed = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Immutable. The campaign to which the CampaignFeed belongs. - optional string campaign = 8 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Indicates which placeholder types the feed may populate under the connected - // campaign. Required. - repeated google.ads.googleads.v7.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.v7.common.MatchingFunction matching_function = 5; - - // Output only. Status of the campaign feed. - // This field is read-only. - google.ads.googleads.v7.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/campaign_label.proto b/google/ads/googleads/v7/resources/campaign_label.proto deleted file mode 100644 index f033235fb..000000000 --- a/google/ads/googleads/v7/resources/campaign_label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignLabelProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the campaign label resource. - -// Represents a relationship between a campaign and a label. -message CampaignLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignLabel" - pattern: "customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}" - }; - - // Immutable. Name of the resource. - // Campaign label resource names have the form: - // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignLabel" - } - ]; - - // Immutable. The campaign to which the label is attached. - optional string campaign = 4 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Immutable. The label assigned to the campaign. - optional string label = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/campaign_shared_set.proto b/google/ads/googleads/v7/resources/campaign_shared_set.proto deleted file mode 100644 index 987b30cc0..000000000 --- a/google/ads/googleads/v7/resources/campaign_shared_set.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/campaign_shared_set_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSharedSetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CampaignSharedSet resource. - -// CampaignSharedSets are used for managing the shared sets associated with a -// campaign. -message CampaignSharedSet { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignSharedSet" - pattern: "customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}" - }; - - // Immutable. The resource name of the campaign shared set. - // Campaign shared set resource names have the form: - // - // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSharedSet" - } - ]; - - // Immutable. The campaign to which the campaign shared set belongs. - optional string campaign = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Immutable. The shared set associated with the campaign. This may be a negative keyword - // shared set of another customer. This customer should be a manager of the - // other customer, otherwise the campaign shared set will exist but have no - // serving effect. Only negative keyword shared sets can be associated with - // Shopping campaigns. Only negative placement shared sets can be associated - // with Display mobile app campaigns. - optional string shared_set = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; - - // Output only. The status of this campaign shared set. Read only. - google.ads.googleads.v7.enums.CampaignSharedSetStatusEnum.CampaignSharedSetStatus status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/campaign_simulation.proto b/google/ads/googleads/v7/resources/campaign_simulation.proto deleted file mode 100644 index 9f281f9f3..000000000 --- a/google/ads/googleads/v7/resources/campaign_simulation.proto +++ /dev/null @@ -1,102 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/simulation.proto"; -import "google/ads/googleads/v7/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v7/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSimulationProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the campaign simulation resource. - -// A campaign simulation. Supported combinations of advertising -// channel type, simulation type and simulation modification -// method is detailed below respectively. -// -// SEARCH - CPC_BID - UNIFORM -// SEARCH - CPC_BID - SCALING -// SEARCH - TARGET_CPA - UNIFORM -// SEARCH - TARGET_CPA - SCALING -// SEARCH - TARGET_ROAS - UNIFORM -// SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM -// SEARCH - BUDGET - UNIFORM -// SHOPPING - BUDGET - UNIFORM -// SHOPPING - TARGET_ROAS - UNIFORM -// MULTIPLE - TARGET_CPA - UNIFORM -// OWNED_AND_OPERATED - TARGET_CPA - DEFAULT -// DISPLAY - TARGET_CPA - UNIFORM -message CampaignSimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignSimulation" - pattern: "customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the campaign simulation. - // Campaign simulation resource names have the form: - // - // `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSimulation" - } - ]; - - // Output only. Campaign id of the simulation. - int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v7.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v7.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - string start_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format - string end_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v7.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.v7.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.v7.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.v7.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.v7.common.BudgetSimulationPointList budget_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/carrier_constant.proto b/google/ads/googleads/v7/resources/carrier_constant.proto deleted file mode 100644 index 4f9e32c25..000000000 --- a/google/ads/googleads/v7/resources/carrier_constant.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CarrierConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Carrier constant resource. - -// A carrier criterion that can be used in campaign targeting. -message CarrierConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/CarrierConstant" - pattern: "carrierConstants/{criterion_id}" - }; - - // Output only. The resource name of the carrier criterion. - // Carrier criterion resource names have the form: - // - // `carrierConstants/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CarrierConstant" - } - ]; - - // Output only. The ID of the carrier criterion. - optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The full name of the carrier in English. - optional string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The country code of the country where the carrier is located, e.g., "AR", - // "FR", etc. - optional string country_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/change_event.proto b/google/ads/googleads/v7/resources/change_event.proto deleted file mode 100644 index ad98d3fdb..000000000 --- a/google/ads/googleads/v7/resources/change_event.proto +++ /dev/null @@ -1,178 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/ad_type.proto"; -import "google/ads/googleads/v7/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v7/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v7/enums/change_client_type.proto"; -import "google/ads/googleads/v7/enums/change_event_resource_type.proto"; -import "google/ads/googleads/v7/enums/criterion_type.proto"; -import "google/ads/googleads/v7/enums/feed_origin.proto"; -import "google/ads/googleads/v7/enums/resource_change_operation.proto"; -import "google/ads/googleads/v7/resources/ad.proto"; -import "google/ads/googleads/v7/resources/ad_group.proto"; -import "google/ads/googleads/v7/resources/ad_group_ad.proto"; -import "google/ads/googleads/v7/resources/ad_group_bid_modifier.proto"; -import "google/ads/googleads/v7/resources/ad_group_criterion.proto"; -import "google/ads/googleads/v7/resources/ad_group_feed.proto"; -import "google/ads/googleads/v7/resources/campaign.proto"; -import "google/ads/googleads/v7/resources/campaign_budget.proto"; -import "google/ads/googleads/v7/resources/campaign_criterion.proto"; -import "google/ads/googleads/v7/resources/campaign_feed.proto"; -import "google/ads/googleads/v7/resources/feed.proto"; -import "google/ads/googleads/v7/resources/feed_item.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/field_mask.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ChangeEventProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Change Event resource. - -// Describes the granular change of returned resource of certain resource types. -// Changes made through UI, API and new versions of Editor -// by external users (including external users, and internal users that can be -// shown externally) in the past 30 days will be shown. The change shows the old -// values of the changed fields before the change and the new values right after -// the change. ChangeEvent could have up to 3 minutes delay to reflect a new -// change. -message ChangeEvent { - option (google.api.resource) = { - type: "googleads.googleapis.com/ChangeEvent" - pattern: "customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}" - }; - - // A wrapper proto presenting all supported resources. - // Only the resource of the change_resource_type will be set. - message ChangedResource { - // Output only. Set if change_resource_type == AD. - Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP. - AdGroup ad_group = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_CRITERION. - AdGroupCriterion ad_group_criterion = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN. - Campaign campaign = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN_BUDGET. - CampaignBudget campaign_budget = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_BID_MODIFIER. - AdGroupBidModifier ad_group_bid_modifier = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN_CRITERION. - CampaignCriterion campaign_criterion = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == FEED. - Feed feed = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == FEED_ITEM. - FeedItem feed_item = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN_FEED. - CampaignFeed campaign_feed = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_FEED. - AdGroupFeed ad_group_feed = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_AD. - AdGroupAd ad_group_ad = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. The resource name of the change event. - // Change event resource names have the form: - // - // `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ChangeEvent" - } - ]; - - // Output only. Time at which the change was committed on this resource. - string change_date_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of the changed resource. This dictates what resource - // will be set in old_resource and new_resource. - google.ads.googleads.v7.enums.ChangeEventResourceTypeEnum.ChangeEventResourceType change_resource_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Simply resource this change occurred on. - string change_resource_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Where the change was made through. - google.ads.googleads.v7.enums.ChangeClientTypeEnum.ChangeClientType client_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The email of the user who made this change. - string user_email = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The old resource before the change. Only changed fields will be populated. - ChangedResource old_resource = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The new resource after the change. Only changed fields will be populated. - ChangedResource new_resource = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The operation on the changed resource. - google.ads.googleads.v7.enums.ResourceChangeOperationEnum.ResourceChangeOperation resource_change_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A list of fields that are changed in the returned resource. - google.protobuf.FieldMask changed_fields = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Campaign affected by this change. - string campaign = 11 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The AdGroup affected by this change. - string ad_group = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. The Feed affected by this change. - string feed = 13 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. The FeedItem affected by this change. - string feed_item = 14 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/change_status.proto b/google/ads/googleads/v7/resources/change_status.proto deleted file mode 100644 index 2f188816e..000000000 --- a/google/ads/googleads/v7/resources/change_status.proto +++ /dev/null @@ -1,150 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/ad_type.proto"; -import "google/ads/googleads/v7/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v7/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v7/enums/change_status_operation.proto"; -import "google/ads/googleads/v7/enums/change_status_resource_type.proto"; -import "google/ads/googleads/v7/enums/criterion_type.proto"; -import "google/ads/googleads/v7/enums/feed_origin.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Change Status resource. - -// Describes the status of returned resource. ChangeStatus could have up to 3 -// minutes delay to reflect a new change. -message ChangeStatus { - option (google.api.resource) = { - type: "googleads.googleapis.com/ChangeStatus" - pattern: "customers/{customer_id}/changeStatus/{change_status_id}" - }; - - // Output only. The resource name of the change status. - // Change status resource names have the form: - // - // `customers/{customer_id}/changeStatus/{change_status_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ChangeStatus" - } - ]; - - // Output only. Time at which the most recent change has occurred on this resource. - optional string last_change_date_time = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // 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.v7.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceType resource_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Campaign affected by this change. - optional string campaign = 17 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The AdGroup affected by this change. - optional string ad_group = 18 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. Represents the status of the changed resource. - google.ads.googleads.v7.enums.ChangeStatusOperationEnum.ChangeStatusOperation resource_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The AdGroupAd affected by this change. - optional string ad_group_ad = 25 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // Output only. The AdGroupCriterion affected by this change. - optional string ad_group_criterion = 26 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Output only. The CampaignCriterion affected by this change. - optional string campaign_criterion = 27 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterion" - } - ]; - - // Output only. The Feed affected by this change. - optional string feed = 28 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. The FeedItem affected by this change. - optional string feed_item = 29 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Output only. The AdGroupFeed affected by this change. - optional string ad_group_feed = 30 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupFeed" - } - ]; - - // Output only. The CampaignFeed affected by this change. - optional string campaign_feed = 31 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignFeed" - } - ]; - - // Output only. The AdGroupBidModifier affected by this change. - optional string ad_group_bid_modifier = 32 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupBidModifier" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/click_view.proto b/google/ads/googleads/v7/resources/click_view.proto deleted file mode 100644 index 1e649a79e..000000000 --- a/google/ads/googleads/v7/resources/click_view.proto +++ /dev/null @@ -1,108 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/click_location.proto"; -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ClickViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ClickView resource. - -// A click view with metrics aggregated at each click level, including both -// valid and invalid clicks. For non-Search campaigns, metrics.clicks -// represents the number of valid and invalid interactions. -// Queries including ClickView must have a filter limiting the results to one -// day and can be requested for dates back to 90 days before the time of the -// request. -message ClickView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ClickView" - pattern: "customers/{customer_id}/clickViews/{date}~{gclid}" - }; - - // Output only. The resource name of the click view. - // Click view resource names have the form: - // - // `customers/{customer_id}/clickViews/{date (yyyy-MM-dd)}~{gclid}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ClickView" - } - ]; - - // Output only. The Google Click ID. - optional string gclid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The location criteria matching the area of interest associated with the - // impression. - google.ads.googleads.v7.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.v7.common.ClickLocation location_of_presence = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Page number in search results where the ad was shown. - optional int64 page_number = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The associated ad. - optional string ad_group_ad = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // Output only. The associated campaign location target, if one exists. - optional string campaign_location_target = 11 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; - - // Output only. The associated user list, if one exists. - optional string user_list = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - } - ]; - - // Output only. The associated keyword, if one exists and the click corresponds to the - // SEARCH channel. - string keyword = 13 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Output only. Basic information about the associated keyword, if it exists. - google.ads.googleads.v7.common.KeywordInfo keyword_info = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/combined_audience.proto b/google/ads/googleads/v7/resources/combined_audience.proto deleted file mode 100644 index d6e8f09e4..000000000 --- a/google/ads/googleads/v7/resources/combined_audience.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/combined_audience_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CombinedAudienceProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Combined Audience resource. - -// Describe a resource for combined audiences which includes different -// audiences. -message CombinedAudience { - option (google.api.resource) = { - type: "googleads.googleapis.com/CombinedAudience" - pattern: "customers/{customer_id}/combinedAudiences/{combined_audience_id}" - }; - - // Immutable. The resource name of the combined audience. - // Combined audience names have the form: - // - // `customers/{customer_id}/combinedAudience/{combined_audience_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CombinedAudience" - } - ]; - - // Output only. ID of the combined audience. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of this combined audience. Indicates whether the combined audience - // is enabled or removed. - google.ads.googleads.v7.enums.CombinedAudienceStatusEnum.CombinedAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Name of the combined audience. It should be unique across all combined - // audiences. - string name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Description of this combined audience. - string description = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/conversion_action.proto b/google/ads/googleads/v7/resources/conversion_action.proto deleted file mode 100644 index e3377453d..000000000 --- a/google/ads/googleads/v7/resources/conversion_action.proto +++ /dev/null @@ -1,176 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/tag_snippet.proto"; -import "google/ads/googleads/v7/enums/attribution_model.proto"; -import "google/ads/googleads/v7/enums/conversion_action_category.proto"; -import "google/ads/googleads/v7/enums/conversion_action_counting_type.proto"; -import "google/ads/googleads/v7/enums/conversion_action_status.proto"; -import "google/ads/googleads/v7/enums/conversion_action_type.proto"; -import "google/ads/googleads/v7/enums/data_driven_model_status.proto"; -import "google/ads/googleads/v7/enums/mobile_app_vendor.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Conversion Action resource. - -// A conversion action. -message ConversionAction { - option (google.api.resource) = { - type: "googleads.googleapis.com/ConversionAction" - pattern: "customers/{customer_id}/conversionActions/{conversion_action_id}" - }; - - // Settings related to this conversion action's attribution model. - message AttributionModelSettings { - // The attribution model type of this conversion action. - google.ads.googleads.v7.enums.AttributionModelEnum.AttributionModel attribution_model = 1; - - // Output only. The status of the data-driven attribution model for the conversion - // action. - google.ads.googleads.v7.enums.DataDrivenModelStatusEnum.DataDrivenModelStatus data_driven_model_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Settings related to the value for conversion events associated with this - // conversion action. - message ValueSettings { - // The value to use when conversion events for this conversion action are - // sent with an invalid, disallowed or missing value, or when - // this conversion action is configured to always use the default value. - optional double default_value = 4; - - // The currency code to use when conversion events for this conversion - // action are sent with an invalid or missing currency code, or when this - // conversion action is configured to always use the default value. - optional string default_currency_code = 5; - - // Controls whether the default value and default currency code are used in - // place of the value and currency code specified in conversion events for - // this conversion action. - optional bool always_use_default_value = 6; - } - - // Settings related to a third party app analytics conversion action. - message ThirdPartyAppAnalyticsSettings { - // Output only. The event name of a third-party app analytics conversion. - optional string event_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Name of the third-party app analytics provider. - string provider_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Settings related to a Firebase conversion action. - message FirebaseSettings { - // Output only. The event name of a Firebase conversion. - optional string event_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Firebase project ID of the conversion. - optional string project_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the conversion action. - // Conversion action resource names have the form: - // - // `customers/{customer_id}/conversionActions/{conversion_action_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionAction" - } - ]; - - // Output only. The ID of the conversion action. - optional int64 id = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the conversion action. - // - // This field is required and should not be empty when creating new - // conversion actions. - optional string name = 22; - - // The status of this conversion action for conversion event accrual. - google.ads.googleads.v7.enums.ConversionActionStatusEnum.ConversionActionStatus status = 4; - - // Immutable. The type of this conversion action. - google.ads.googleads.v7.enums.ConversionActionTypeEnum.ConversionActionType type = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // The category of conversions reported for this conversion action. - google.ads.googleads.v7.enums.ConversionActionCategoryEnum.ConversionActionCategory category = 6; - - // Output only. The resource name of the conversion action owner customer, or null if this - // is a system-defined conversion action. - optional string owner_customer = 23 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Whether this conversion action should be included in the "conversions" - // metric. - optional bool include_in_conversions_metric = 24; - - // The maximum number of days that may elapse between an interaction - // (e.g., a click) and a conversion event. - optional int64 click_through_lookback_window_days = 25; - - // The maximum number of days which may elapse between an impression and a - // conversion without an interaction. - optional int64 view_through_lookback_window_days = 26; - - // Settings related to the value for conversion events associated with this - // conversion action. - ValueSettings value_settings = 11; - - // How to count conversion events for the conversion action. - google.ads.googleads.v7.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.v7.common.TagSnippet tag_snippets = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The phone call duration in seconds after which a conversion should be - // reported for this conversion action. - // - // The value must be between 0 and 10000, inclusive. - optional int64 phone_call_duration_seconds = 27; - - // App ID for an app conversion action. - optional string app_id = 28; - - // Output only. Mobile app vendor for an app conversion action. - google.ads.googleads.v7.enums.MobileAppVendorEnum.MobileAppVendor mobile_app_vendor = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Firebase settings for Firebase conversion types. - FirebaseSettings firebase_settings = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Third Party App Analytics settings for third party conversion types. - ThirdPartyAppAnalyticsSettings third_party_app_analytics_settings = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/conversion_custom_variable.proto b/google/ads/googleads/v7/resources/conversion_custom_variable.proto deleted file mode 100644 index 35aa1da84..000000000 --- a/google/ads/googleads/v7/resources/conversion_custom_variable.proto +++ /dev/null @@ -1,86 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/conversion_custom_variable_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ConversionCustomVariableProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Conversion Custom Variable resource. - -// A conversion custom variable -// See "About custom variables for conversions" at -// https://support.google.com/google-ads/answer/9964350 -message ConversionCustomVariable { - option (google.api.resource) = { - type: "googleads.googleapis.com/ConversionCustomVariable" - pattern: "customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}" - }; - - // Immutable. The resource name of the conversion custom variable. - // Conversion custom variable resource names have the form: - // - // `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionCustomVariable" - } - ]; - - // Output only. The ID of the conversion custom variable. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The name of the conversion custom variable. - // Name should be unique. The maximum length of name is 100 characters. - // There should not be any extra spaces before and after. - string name = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. Immutable. The tag of the conversion custom variable. It is used in the event snippet - // and sent to Google Ads along with conversion pings. For conversion uploads - // in Google Ads API, the resource name of the conversion custom variable is - // used. - // Tag should be unique. The maximum size of tag is 100 bytes. - // There should not be any extra spaces before and after. - // Currently only lowercase letters, numbers and underscores are allowed in - // the tag. - string tag = 4 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // The status of the conversion custom variable for conversion event accrual. - google.ads.googleads.v7.enums.ConversionCustomVariableStatusEnum.ConversionCustomVariableStatus status = 5; - - // Output only. The resource name of the customer that owns the conversion custom variable. - string owner_customer = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/currency_constant.proto b/google/ads/googleads/v7/resources/currency_constant.proto deleted file mode 100644 index 1010793d9..000000000 --- a/google/ads/googleads/v7/resources/currency_constant.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CurrencyConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Currency Constant resource. - -// A currency constant. -message CurrencyConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/CurrencyConstant" - pattern: "currencyConstants/{code}" - }; - - // Output only. The resource name of the currency constant. - // Currency constant resource names have the form: - // - // `currencyConstants/{code}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CurrencyConstant" - } - ]; - - // Output only. ISO 4217 three-letter currency code, e.g. "USD" - optional string code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Full English name of the currency. - optional string name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Standard symbol for describing this currency, e.g. '$' for US Dollars. - optional string symbol = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The billable unit for this currency. Billed amounts should be multiples of - // this value. - optional int64 billable_unit_micros = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/custom_audience.proto b/google/ads/googleads/v7/resources/custom_audience.proto deleted file mode 100644 index b7c1fe382..000000000 --- a/google/ads/googleads/v7/resources/custom_audience.proto +++ /dev/null @@ -1,107 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/custom_audience_member_type.proto"; -import "google/ads/googleads/v7/enums/custom_audience_status.proto"; -import "google/ads/googleads/v7/enums/custom_audience_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Custom Audience resource. - -// A custom audience. This is a list of users by interest. -message CustomAudience { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomAudience" - pattern: "customers/{customer_id}/customAudiences/{custom_audience_id}" - }; - - // Immutable. The resource name of the custom audience. - // Custom audience resource names have the form: - // - // `customers/{customer_id}/customAudiences/{custom_audience_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomAudience" - } - ]; - - // Output only. ID of the custom audience. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of this custom audience. Indicates whether the custom audience is - // enabled or removed. - google.ads.googleads.v7.enums.CustomAudienceStatusEnum.CustomAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Name of the custom audience. It should be unique for all custom audiences - // created by a customer. - // This field is required for creating operations. - string name = 4; - - // 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.v7.enums.CustomAudienceTypeEnum.CustomAudienceType type = 5; - - // Description of this custom audience. - string description = 6; - - // List of custom audience members that this custom audience is composed of. - // Members can be added during CustomAudience creation. If members are - // presented in UPDATE operation, existing members will be overridden. - repeated CustomAudienceMember members = 7; -} - -// A member of custom audience. A member can be a KEYWORD, URL, -// 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.v7.enums.CustomAudienceMemberTypeEnum.CustomAudienceMemberType member_type = 1; - - // The CustomAudienceMember value. One field is populated depending on the - // member type. - oneof value { - // A keyword or keyword phrase — at most 10 words and 80 characters. - // Languages with double-width characters such as Chinese, Japanese, - // or Korean, are allowed 40 characters, which describes the user's - // interests or actions. - string keyword = 2; - - // An HTTP URL, protocol-included — at most 2048 characters, which includes - // contents users have interests in. - string url = 3; - - // A place type described by a place category users visit. - int64 place_category = 4; - - // A package name of Android apps which users installed such as - // com.google.example. - string app = 5; - } -} diff --git a/google/ads/googleads/v7/resources/custom_interest.proto b/google/ads/googleads/v7/resources/custom_interest.proto deleted file mode 100644 index f868d9993..000000000 --- a/google/ads/googleads/v7/resources/custom_interest.proto +++ /dev/null @@ -1,89 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/custom_interest_member_type.proto"; -import "google/ads/googleads/v7/enums/custom_interest_status.proto"; -import "google/ads/googleads/v7/enums/custom_interest_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Custom Interest resource. - -// A custom interest. This is a list of users by interest. -message CustomInterest { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomInterest" - pattern: "customers/{customer_id}/customInterests/{custom_interest_id}" - }; - - // Immutable. The resource name of the custom interest. - // Custom interest resource names have the form: - // - // `customers/{customer_id}/customInterests/{custom_interest_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomInterest" - } - ]; - - // Output only. Id of the custom interest. - optional int64 id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Status of this custom interest. Indicates whether the custom interest is - // enabled or removed. - google.ads.googleads.v7.enums.CustomInterestStatusEnum.CustomInterestStatus status = 3; - - // Name of the custom interest. It should be unique across the same custom - // affinity audience. - // This field is required for create operations. - optional string name = 9; - - // Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. - // By default the type is set to CUSTOM_AFFINITY. - google.ads.googleads.v7.enums.CustomInterestTypeEnum.CustomInterestType type = 5; - - // Description of this custom interest audience. - optional string description = 10; - - // List of custom interest members that this custom interest is composed of. - // Members can be added during CustomInterest creation. If members are - // presented in UPDATE operation, existing members will be overridden. - repeated CustomInterestMember members = 7; -} - -// A member of custom interest audience. A member can be a keyword or url. -// 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.v7.enums.CustomInterestMemberTypeEnum.CustomInterestMemberType member_type = 1; - - // Keyword text when member_type is KEYWORD or URL string when - // member_type is URL. - optional string parameter = 3; -} diff --git a/google/ads/googleads/v7/resources/customer.proto b/google/ads/googleads/v7/resources/customer.proto deleted file mode 100644 index bd41eb631..000000000 --- a/google/ads/googleads/v7/resources/customer.proto +++ /dev/null @@ -1,161 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Customer resource. - -// A customer. -message Customer { - option (google.api.resource) = { - type: "googleads.googleapis.com/Customer" - pattern: "customers/{customer_id}" - }; - - // Immutable. The resource name of the customer. - // Customer resource names have the form: - // - // `customers/{customer_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. The ID of the customer. - optional int64 id = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional, non-unique descriptive name of the customer. - optional string descriptive_name = 20; - - // Immutable. The currency in which the account operates. - // A subset of the currency codes from the ISO 4217 standard is - // supported. - optional string currency_code = 21 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The local timezone ID of the customer. - optional string time_zone = 22 [(google.api.field_behavior) = IMMUTABLE]; - - // The URL template for constructing a tracking URL out of parameters. - optional string tracking_url_template = 23; - - // The URL template for appending params to the final URL - optional string final_url_suffix = 24; - - // Whether auto-tagging is enabled for the customer. - optional bool auto_tagging_enabled = 25; - - // Output only. Whether the Customer has a Partners program badge. If the Customer is not - // associated with the Partners program, this will be false. For more - // information, see https://support.google.com/partners/answer/3125774. - optional bool has_partners_badge = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the customer is a manager. - optional bool manager = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the customer is a test account. - optional bool test_account = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Call reporting setting for a customer. - CallReportingSetting call_reporting_setting = 10; - - // Output only. Conversion tracking setting for a customer. - ConversionTrackingSetting conversion_tracking_setting = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Remarketing setting for a customer. - RemarketingSetting remarketing_setting = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // 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.v7.enums.CustomerPayPerConversionEligibilityFailureReasonEnum.CustomerPayPerConversionEligibilityFailureReason pay_per_conversion_eligibility_failure_reasons = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Optimization score of the customer. - // - // Optimization score is an estimate of how well a customer's campaigns are - // set to perform. It ranges from 0% (0.0) to 100% (1.0). This field is null - // for all manager customers, and for unscored non-manager customers. - // - // See "About optimization score" at - // https://support.google.com/google-ads/answer/9061546. - // - // This field is read-only. - optional double optimization_score = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Optimization score weight of the customer. - // - // Optimization score weight can be used to compare/aggregate optimization - // scores across multiple non-manager customers. The aggregate optimization - // score of a manager is computed as the sum over all of their customers of - // `Customer.optimization_score * Customer.optimization_score_weight`. This - // field is 0 for all manager customers, and for unscored non-manager - // customers. - // - // This field is read-only. - double optimization_score_weight = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Call reporting setting for a customer. -message CallReportingSetting { - // Enable reporting of phone call events by redirecting them via Google - // System. - optional bool call_reporting_enabled = 10; - - // Whether to enable call conversion reporting. - optional bool call_conversion_reporting_enabled = 11; - - // Customer-level call conversion action to attribute a call conversion to. - // If not set a default conversion action is used. Only in effect when - // call_conversion_reporting_enabled is set to true. - optional string call_conversion_action = 12 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionAction" - }]; -} - -// A collection of customer-wide settings related to Google Ads Conversion -// Tracking. -message ConversionTrackingSetting { - // Output only. The conversion tracking id used for this account. This id is automatically - // assigned after any conversion tracking feature is used. If the customer - // doesn't use conversion tracking, this is 0. This field is read-only. - optional int64 conversion_tracking_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The conversion tracking id of the customer's manager. This is set when the - // customer is opted into cross account conversion tracking, and it overrides - // conversion_tracking_id. This field can only be managed through the Google - // Ads UI. This field is read-only. - optional int64 cross_account_conversion_tracking_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Remarketing setting for a customer. -message RemarketingSetting { - // Output only. The Google global site tag. - optional string google_global_site_tag = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/customer_asset.proto b/google/ads/googleads/v7/resources/customer_asset.proto deleted file mode 100644 index 8f178fc7c..000000000 --- a/google/ads/googleads/v7/resources/customer_asset.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/asset_field_type.proto"; -import "google/ads/googleads/v7/enums/asset_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerAssetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CustomerAsset resource. - -// A link between a customer and an asset. -message CustomerAsset { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerAsset" - pattern: "customers/{customer_id}/customerAssets/{asset_id}~{field_type}" - }; - - // Immutable. The resource name of the customer asset. - // CustomerAsset resource names have the form: - // - // `customers/{customer_id}/customerAssets/{asset_id}~{field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerAsset" - } - ]; - - // Required. Immutable. The asset which is linked to the customer. - string asset = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Required. Immutable. Role that the asset takes for the customer link. - google.ads.googleads.v7.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Status of the customer asset. - google.ads.googleads.v7.enums.AssetLinkStatusEnum.AssetLinkStatus status = 4; -} diff --git a/google/ads/googleads/v7/resources/customer_client.proto b/google/ads/googleads/v7/resources/customer_client.proto deleted file mode 100644 index 0d96ddea4..000000000 --- a/google/ads/googleads/v7/resources/customer_client.proto +++ /dev/null @@ -1,89 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CustomerClient resource. - -// A link between the given customer and a client customer. CustomerClients only -// exist for manager customers. All direct and indirect client customers are -// included, as well as the manager itself. -message CustomerClient { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerClient" - pattern: "customers/{customer_id}/customerClients/{client_customer_id}" - }; - - // Output only. The resource name of the customer client. - // CustomerClient resource names have the form: - // `customers/{customer_id}/customerClients/{client_customer_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerClient" - } - ]; - - // Output only. The resource name of the client-customer which is linked to - // the given customer. Read only. - optional string client_customer = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. Specifies whether this is a - // [hidden account](https://support.google.com/google-ads/answer/7519830). - // Read only. - optional bool hidden = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Distance between given customer and client. For self link, the level value - // will be 0. Read only. - optional int64 level = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Common Locale Data Repository (CLDR) string representation of the - // time zone of the client, e.g. America/Los_Angeles. Read only. - optional string time_zone = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Identifies if the client is a test account. Read only. - optional bool test_account = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Identifies if the client is a manager. Read only. - optional bool manager = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Descriptive name for the client. Read only. - optional string descriptive_name = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Currency code (e.g. 'USD', 'EUR') for the client. Read only. - optional string currency_code = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ID of the client customer. Read only. - optional int64 id = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/customer_client_link.proto b/google/ads/googleads/v7/resources/customer_client_link.proto deleted file mode 100644 index 2b36efb25..000000000 --- a/google/ads/googleads/v7/resources/customer_client_link.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/manager_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientLinkProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CustomerClientLink resource. - -// Represents customer client link relationship. -message CustomerClientLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerClientLink" - pattern: "customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}" - }; - - // Immutable. Name of the resource. - // CustomerClientLink resource names have the form: - // `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerClientLink" - } - ]; - - // Immutable. The client customer linked to this customer. - optional string client_customer = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. This is uniquely identifies a customer client link. Read only. - optional int64 manager_link_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // This is the status of the link between client and manager. - google.ads.googleads.v7.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; - - // The visibility of the link. Users can choose whether or not to see hidden - // links in the Google Ads UI. - // Default value is false - optional bool hidden = 9; -} diff --git a/google/ads/googleads/v7/resources/customer_extension_setting.proto b/google/ads/googleads/v7/resources/customer_extension_setting.proto deleted file mode 100644 index 92d9b7735..000000000 --- a/google/ads/googleads/v7/resources/customer_extension_setting.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/extension_setting_device.proto"; -import "google/ads/googleads/v7/enums/extension_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CustomerExtensionSetting resource. - -// A customer extension setting. -message CustomerExtensionSetting { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerExtensionSetting" - pattern: "customers/{customer_id}/customerExtensionSettings/{extension_type}" - }; - - // Immutable. The resource name of the customer extension setting. - // CustomerExtensionSetting resource names have the form: - // - // `customers/{customer_id}/customerExtensionSettings/{extension_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerExtensionSetting" - } - ]; - - // Immutable. The extension type of the customer extension setting. - google.ads.googleads.v7.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; - - // The resource names of the extension feed items to serve under the customer. - // ExtensionFeedItem resource names have the form: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - repeated string extension_feed_items = 5 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - }]; - - // The device for which the extensions will serve. Optional. - google.ads.googleads.v7.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 4; -} diff --git a/google/ads/googleads/v7/resources/customer_feed.proto b/google/ads/googleads/v7/resources/customer_feed.proto deleted file mode 100644 index be9844185..000000000 --- a/google/ads/googleads/v7/resources/customer_feed.proto +++ /dev/null @@ -1,75 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/matching_function.proto"; -import "google/ads/googleads/v7/enums/feed_link_status.proto"; -import "google/ads/googleads/v7/enums/placeholder_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerFeedProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CustomerFeed resource. - -// A customer feed. -message CustomerFeed { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerFeed" - pattern: "customers/{customer_id}/customerFeeds/{feed_id}" - }; - - // Immutable. The resource name of the customer feed. - // Customer feed resource names have the form: - // - // `customers/{customer_id}/customerFeeds/{feed_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerFeed" - } - ]; - - // Immutable. The feed being linked to the customer. - optional string feed = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Indicates which placeholder types the feed may populate under the connected - // customer. Required. - repeated google.ads.googleads.v7.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.v7.common.MatchingFunction matching_function = 4; - - // Output only. Status of the customer feed. - // This field is read-only. - google.ads.googleads.v7.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/customer_label.proto b/google/ads/googleads/v7/resources/customer_label.proto deleted file mode 100644 index 1e3bb80af..000000000 --- a/google/ads/googleads/v7/resources/customer_label.proto +++ /dev/null @@ -1,72 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerLabelProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the customer label resource. - -// Represents a relationship between a customer and a label. This customer may -// not have access to all the labels attached to it. Additional CustomerLabels -// may be returned by increasing permissions with login-customer-id. -message CustomerLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerLabel" - pattern: "customers/{customer_id}/customerLabels/{label_id}" - }; - - // Immutable. Name of the resource. - // Customer label resource names have the form: - // `customers/{customer_id}/customerLabels/{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerLabel" - } - ]; - - // Output only. The resource name of the customer to which the label is attached. - // Read only. - optional string customer = 4 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. The resource name of the label assigned to the customer. - // - // Note: the Customer ID portion of the label resource name is not - // validated when creating a new CustomerLabel. - optional string label = 5 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/customer_manager_link.proto b/google/ads/googleads/v7/resources/customer_manager_link.proto deleted file mode 100644 index fd87d987f..000000000 --- a/google/ads/googleads/v7/resources/customer_manager_link.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/manager_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerManagerLinkProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CustomerManagerLink resource. - -// Represents customer-manager link relationship. -message CustomerManagerLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerManagerLink" - pattern: "customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}" - }; - - // Immutable. Name of the resource. - // CustomerManagerLink resource names have the form: - // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerManagerLink" - } - ]; - - // Output only. The manager customer linked to the customer. - optional string manager_customer = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. ID of the customer-manager link. This field is read only. - optional int64 manager_link_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Status of the link between the customer and the manager. - google.ads.googleads.v7.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; -} diff --git a/google/ads/googleads/v7/resources/customer_negative_criterion.proto b/google/ads/googleads/v7/resources/customer_negative_criterion.proto deleted file mode 100644 index 4cd1eb158..000000000 --- a/google/ads/googleads/v7/resources/customer_negative_criterion.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/enums/criterion_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerNegativeCriterionProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Customer Negative Criterion resource. - -// A negative criterion for exclusions at the customer level. -message CustomerNegativeCriterion { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerNegativeCriterion" - pattern: "customers/{customer_id}/customerNegativeCriteria/{criterion_id}" - }; - - // Immutable. The resource name of the customer negative criterion. - // Customer negative criterion resource names have the form: - // - // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerNegativeCriterion" - } - ]; - - // Output only. The ID of the criterion. - optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of the criterion. - google.ads.googleads.v7.enums.CriterionTypeEnum.CriterionType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The customer negative criterion. - // - // Exactly one must be set. - oneof criterion { - // Immutable. ContentLabel. - google.ads.googleads.v7.common.ContentLabelInfo content_label = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. MobileApplication. - google.ads.googleads.v7.common.MobileApplicationInfo mobile_application = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. MobileAppCategory. - google.ads.googleads.v7.common.MobileAppCategoryInfo mobile_app_category = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Placement. - google.ads.googleads.v7.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Video. - google.ads.googleads.v7.common.YouTubeVideoInfo youtube_video = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Channel. - google.ads.googleads.v7.common.YouTubeChannelInfo youtube_channel = 9 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/customer_user_access.proto b/google/ads/googleads/v7/resources/customer_user_access.proto deleted file mode 100644 index 7842d0992..000000000 --- a/google/ads/googleads/v7/resources/customer_user_access.proto +++ /dev/null @@ -1,72 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/access_role.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CustomerUserAccess resource. - -// Represents the permission of a single user onto a single customer. -message CustomerUserAccess { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerUserAccess" - pattern: "customers/{customer_id}/customerUserAccesses/{user_id}" - }; - - // Immutable. Name of the resource. - // Resource names have the form: - // `customers/{customer_id}/customerUserAccesses/{user_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerUserAccess" - } - ]; - - // Output only. User id of the user with the customer access. - // Read only field - int64 user_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Email address of the user. - // Read only field - optional string email_address = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Access role of the user. - google.ads.googleads.v7.enums.AccessRoleEnum.AccessRole access_role = 4; - - // Output only. The customer user access creation time. - // Read only field - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string access_creation_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The email address of the inviter user. - // Read only field - optional string inviter_user_email_address = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/customer_user_access_invitation.proto b/google/ads/googleads/v7/resources/customer_user_access_invitation.proto deleted file mode 100644 index 635b87ed6..000000000 --- a/google/ads/googleads/v7/resources/customer_user_access_invitation.proto +++ /dev/null @@ -1,73 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/access_invitation_status.proto"; -import "google/ads/googleads/v7/enums/access_role.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessInvitationProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the CustomerUserAccessInvitation resource. - -// Represent an invitation to a new user on this customer account. -message CustomerUserAccessInvitation { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerUserAccessInvitation" - pattern: "customers/{customer_id}/customerUserAccessInvitations/{invitation_id}" - }; - - // Immutable. Name of the resource. - // Resource names have the form: - // `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerUserAccessInvitation" - } - ]; - - // Output only. The ID of the invitation. - // This field is read-only. - int64 invitation_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Access role of the user. - google.ads.googleads.v7.enums.AccessRoleEnum.AccessRole access_role = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Email address the invitation was sent to. - // This can differ from the email address of the account - // that accepts the invite. - string email_address = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Time invitation was created. - // This field is read-only. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - string creation_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Invitation status of the user. - google.ads.googleads.v7.enums.AccessInvitationStatusEnum.AccessInvitationStatus invitation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/detail_placement_view.proto b/google/ads/googleads/v7/resources/detail_placement_view.proto deleted file mode 100644 index 93bac697f..000000000 --- a/google/ads/googleads/v7/resources/detail_placement_view.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/placement_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DetailPlacementViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the detail placement view resource. - -// A view with metrics aggregated by ad group and URL or YouTube video. -message DetailPlacementView { - option (google.api.resource) = { - type: "googleads.googleapis.com/DetailPlacementView" - pattern: "customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}" - }; - - // Output only. The resource name of the detail placement view. - // Detail placement view resource names have the form: - // - // `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DetailPlacementView" - } - ]; - - // Output only. The automatic placement string at detail level, e. g. website URL, mobile - // application ID, or a YouTube video ID. - optional string placement = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The display name is URL name for websites, YouTube video name for YouTube - // videos, and translated mobile app name for mobile apps. - optional string display_name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. URL of the group placement, e.g. domain, link to the mobile application in - // app store, or a YouTube channel URL. - optional string group_placement_target_url = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. URL of the placement, e.g. website, link to the mobile application in app - // store, or a YouTube video URL. - optional string target_url = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Type of the placement, e.g. Website, YouTube Video, and Mobile Application. - google.ads.googleads.v7.enums.PlacementTypeEnum.PlacementType placement_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/display_keyword_view.proto b/google/ads/googleads/v7/resources/display_keyword_view.proto deleted file mode 100644 index f2d2d0d5d..000000000 --- a/google/ads/googleads/v7/resources/display_keyword_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DisplayKeywordViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the display keyword view resource. - -// A display keyword view. -message DisplayKeywordView { - option (google.api.resource) = { - type: "googleads.googleapis.com/DisplayKeywordView" - pattern: "customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the display keyword view. - // Display Keyword view resource names have the form: - // - // `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DisplayKeywordView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/distance_view.proto b/google/ads/googleads/v7/resources/distance_view.proto deleted file mode 100644 index 2aebef1ae..000000000 --- a/google/ads/googleads/v7/resources/distance_view.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/distance_bucket.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DistanceViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the DistanceView resource. - -// A distance view with metrics aggregated by the user's distance from an -// advertiser's location extensions. Each DistanceBucket includes all -// impressions that fall within its distance and a single impression will -// contribute to the metrics for all DistanceBuckets that include the user's -// distance. -message DistanceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/DistanceView" - pattern: "customers/{customer_id}/distanceViews/{placeholder_chain_id}~{distance_bucket}" - }; - - // Output only. The resource name of the distance view. - // Distance view resource names have the form: - // - // `customers/{customer_id}/distanceViews/1~{distance_bucket}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DistanceView" - } - ]; - - // Output only. Grouping of user distance from location extensions. - google.ads.googleads.v7.enums.DistanceBucketEnum.DistanceBucket distance_bucket = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. True if the DistanceBucket is using the metric system, false otherwise. - optional bool metric_system = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/domain_category.proto b/google/ads/googleads/v7/resources/domain_category.proto deleted file mode 100644 index 5e67a9fcd..000000000 --- a/google/ads/googleads/v7/resources/domain_category.proto +++ /dev/null @@ -1,90 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DomainCategoryProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Domain Category resource. - -// A category generated automatically by crawling a domain. If a campaign uses -// the DynamicSearchAdsSetting, then domain categories will be generated for -// the domain. The categories can be targeted using WebpageConditionInfo. -// See: https://support.google.com/google-ads/answer/2471185 -message DomainCategory { - option (google.api.resource) = { - type: "googleads.googleapis.com/DomainCategory" - pattern: "customers/{customer_id}/domainCategories/{campaign_id}~{base64_category}~{language_code}" - }; - - // Output only. The resource name of the domain category. - // Domain category resource names have the form: - // - // `customers/{customer_id}/domainCategories/{campaign_id}~{category_base64}~{language_code}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DomainCategory" - } - ]; - - // Output only. The campaign this category is recommended for. - optional string campaign = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. Recommended category for the website domain. e.g. if you have a website - // about electronics, the categories could be "cameras", "televisions", etc. - optional string category = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The language code specifying the language of the website. e.g. "en" for - // English. The language can be specified in the DynamicSearchAdsSetting - // required for dynamic search ads. This is the language of the pages from - // your website that you want Google Ads to find, create ads for, - // and match searches with. - optional string language_code = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The domain for the website. The domain can be specified in the - // DynamicSearchAdsSetting required for dynamic search ads. - optional string domain = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Fraction of pages on your site that this category matches. - optional double coverage_fraction = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The position of this category in the set of categories. Lower numbers - // indicate a better match for the domain. null indicates not recommended. - optional int64 category_rank = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates whether this category has sub-categories. - optional bool has_children = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended cost per click for the category. - optional int64 recommended_cpc_bid_micros = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/dynamic_search_ads_search_term_view.proto b/google/ads/googleads/v7/resources/dynamic_search_ads_search_term_view.proto deleted file mode 100644 index d314ac8b7..000000000 --- a/google/ads/googleads/v7/resources/dynamic_search_ads_search_term_view.proto +++ /dev/null @@ -1,86 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DynamicSearchAdsSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Dynamic Search Ads Search Term View resource. - -// A dynamic search ads search term view. -message DynamicSearchAdsSearchTermView { - option (google.api.resource) = { - type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" - pattern: "customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}" - }; - - // Output only. The resource name of the dynamic search ads search term view. - // Dynamic search ads search term view resource names have the form: - // - // `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" - } - ]; - - // Output only. Search term - // - // This field is read-only. - optional string search_term = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The dynamically generated headline of the Dynamic Search Ad. - // - // This field is read-only. - optional string headline = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The dynamically selected landing page URL of the impression. - // - // This field is read-only. - optional string landing_page = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The URL of page feed item served for the impression. - // - // This field is read-only. - optional string page_url = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. True if query matches a negative keyword. - // - // This field is read-only. - optional bool has_negative_keyword = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. True if query is added to targeted keywords. - // - // This field is read-only. - optional bool has_matching_keyword = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. True if query matches a negative url. - // - // This field is read-only. - optional bool has_negative_url = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/expanded_landing_page_view.proto b/google/ads/googleads/v7/resources/expanded_landing_page_view.proto deleted file mode 100644 index 1b361b947..000000000 --- a/google/ads/googleads/v7/resources/expanded_landing_page_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ExpandedLandingPageViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the expanded landing page view resource. - -// A landing page view with metrics aggregated at the expanded final URL -// level. -message ExpandedLandingPageView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ExpandedLandingPageView" - pattern: "customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}" - }; - - // Output only. The resource name of the expanded landing page view. - // Expanded landing page view resource names have the form: - // - // `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ExpandedLandingPageView" - } - ]; - - // Output only. The final URL that clicks are directed to. - optional string expanded_final_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/extension_feed_item.proto b/google/ads/googleads/v7/resources/extension_feed_item.proto deleted file mode 100644 index 2dd6ae368..000000000 --- a/google/ads/googleads/v7/resources/extension_feed_item.proto +++ /dev/null @@ -1,151 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/common/extensions.proto"; -import "google/ads/googleads/v7/enums/extension_type.proto"; -import "google/ads/googleads/v7/enums/feed_item_status.proto"; -import "google/ads/googleads/v7/enums/feed_item_target_device.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionFeedItemProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ExtensionFeedItem resource. - -// An extension feed item. -message ExtensionFeedItem { - option (google.api.resource) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - pattern: "customers/{customer_id}/extensionFeedItems/{feed_item_id}" - }; - - // Immutable. The resource name of the extension feed item. - // Extension feed item resource names have the form: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - } - ]; - - // Output only. The ID of this feed item. Read-only. - optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The extension type of the extension feed item. - // This field is read-only. - google.ads.googleads.v7.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 - // time is in the customer's time zone. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string start_date_time = 26; - - // End time in which this feed item is no longer effective and will stop - // serving. The time is in the customer's time zone. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string end_date_time = 27; - - // 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.v7.common.AdScheduleInfo ad_schedules = 16; - - // The targeted device. - google.ads.googleads.v7.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 17; - - // The targeted geo target constant. - optional string targeted_geo_target_constant = 30 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - }]; - - // The targeted keyword. - google.ads.googleads.v7.common.KeywordInfo targeted_keyword = 22; - - // Output only. Status of the feed item. - // This field is read-only. - google.ads.googleads.v7.enums.FeedItemStatusEnum.FeedItemStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Extension type. - oneof extension { - // Sitelink extension. - google.ads.googleads.v7.common.SitelinkFeedItem sitelink_feed_item = 2; - - // Structured snippet extension. - google.ads.googleads.v7.common.StructuredSnippetFeedItem structured_snippet_feed_item = 3; - - // App extension. - google.ads.googleads.v7.common.AppFeedItem app_feed_item = 7; - - // Call extension. - google.ads.googleads.v7.common.CallFeedItem call_feed_item = 8; - - // Callout extension. - google.ads.googleads.v7.common.CalloutFeedItem callout_feed_item = 9; - - // Text message extension. - google.ads.googleads.v7.common.TextMessageFeedItem text_message_feed_item = 10; - - // Price extension. - google.ads.googleads.v7.common.PriceFeedItem price_feed_item = 11; - - // Promotion extension. - google.ads.googleads.v7.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.v7.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.v7.common.AffiliateLocationFeedItem affiliate_location_feed_item = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Hotel Callout extension. - google.ads.googleads.v7.common.HotelCalloutFeedItem hotel_callout_feed_item = 23; - - // Immutable. Advertiser provided image extension. - google.ads.googleads.v7.common.ImageFeedItem image_feed_item = 31 [(google.api.field_behavior) = IMMUTABLE]; - } - - // Targeting at either the campaign or ad group level. Feed items that target - // a campaign or ad group will only serve with that resource. - oneof serving_resource_targeting { - // The targeted campaign. - string targeted_campaign = 28 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - }]; - - // The targeted ad group. - string targeted_ad_group = 29 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - }]; - } -} diff --git a/google/ads/googleads/v7/resources/feed.proto b/google/ads/googleads/v7/resources/feed.proto deleted file mode 100644 index c106cc9a8..000000000 --- a/google/ads/googleads/v7/resources/feed.proto +++ /dev/null @@ -1,190 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/affiliate_location_feed_relationship_type.proto"; -import "google/ads/googleads/v7/enums/feed_attribute_type.proto"; -import "google/ads/googleads/v7/enums/feed_origin.proto"; -import "google/ads/googleads/v7/enums/feed_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Feed resource. - -// A feed. -message Feed { - option (google.api.resource) = { - type: "googleads.googleapis.com/Feed" - pattern: "customers/{customer_id}/feeds/{feed_id}" - }; - - // Data used to configure a location feed populated from Business Profile. - message PlacesLocationFeedData { - // Data used for authorization using OAuth. - message OAuthInfo { - // The HTTP method used to obtain authorization. - optional string http_method = 4; - - // The HTTP request URL used to obtain authorization. - optional string http_request_url = 5; - - // The HTTP authorization header used to obtain authorization. - optional string http_authorization_header = 6; - } - - // Immutable. Required authentication token (from OAuth API) for the email. - // This field can only be specified in a create request. All its subfields - // are not selectable. - OAuthInfo oauth_info = 1 [(google.api.field_behavior) = IMMUTABLE]; - - // Email address of a Business Profile or email address of a - // manager of the Business Profile. Required. - optional string email_address = 7; - - // Plus page ID of the managed business whose locations should be used. If - // this field is not set, then all businesses accessible by the user - // (specified by email_address) are used. - // This field is mutate-only and is not selectable. - string business_account_id = 8; - - // Used to filter Business Profile listings by business name. If - // business_name_filter is set, only listings with a matching business name - // are candidates to be sync'd into FeedItems. - optional string business_name_filter = 9; - - // Used to filter Business Profile listings by categories. If entries - // exist in category_filters, only listings that belong to any of the - // categories are candidates to be sync'd into FeedItems. If no entries - // exist in category_filters, then all listings are candidates for syncing. - repeated string category_filters = 11; - - // Used to filter Business Profile listings by labels. If entries exist in - // label_filters, only listings that has any of the labels set are - // candidates to be synchronized into FeedItems. If no entries exist in - // label_filters, then all listings are candidates for syncing. - repeated string label_filters = 12; - } - - // Data used to configure an affiliate location feed populated with the - // specified chains. - message AffiliateLocationFeedData { - // The list of chains that the affiliate location feed will sync the - // locations from. - repeated int64 chain_ids = 3; - - // The relationship the chains have with the advertiser. - google.ads.googleads.v7.enums.AffiliateLocationFeedRelationshipTypeEnum.AffiliateLocationFeedRelationshipType relationship_type = 2; - } - - // Immutable. The resource name of the feed. - // Feed resource names have the form: - // - // `customers/{customer_id}/feeds/{feed_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. The ID of the feed. - // This field is read-only. - optional int64 id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Name of the feed. Required. - optional string name = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // The Feed's attributes. Required on CREATE, unless - // system_feed_generation_data is provided, in which case Google Ads will - // update the feed with the correct attributes. - // Disallowed on UPDATE. Use attribute_operations to add new attributes. - repeated FeedAttribute attributes = 4; - - // The list of operations changing the feed attributes. Attributes can only - // be added, not removed. - repeated FeedAttributeOperation attribute_operations = 9; - - // Immutable. Specifies who manages the FeedAttributes for the Feed. - google.ads.googleads.v7.enums.FeedOriginEnum.FeedOrigin origin = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Status of the feed. - // This field is read-only. - google.ads.googleads.v7.enums.FeedStatusEnum.FeedStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The system data for the Feed. This data specifies information for - // generating the feed items of the system generated feed. - oneof system_feed_generation_data { - // Data used to configure a location feed populated from Business Profile. - PlacesLocationFeedData places_location_feed_data = 6; - - // Data used to configure an affiliate location feed populated with - // the specified chains. - AffiliateLocationFeedData affiliate_location_feed_data = 7; - } -} - -// FeedAttributes define the types of data expected to be present in a Feed. A -// single FeedAttribute specifies the expected type of the FeedItemAttributes -// with the same FeedAttributeId. Optionally, a FeedAttribute can be marked as -// being part of a FeedItem's unique key. -message FeedAttribute { - // ID of the attribute. - optional int64 id = 5; - - // The name of the attribute. Required. - optional string name = 6; - - // Data type for feed attribute. Required. - google.ads.googleads.v7.enums.FeedAttributeTypeEnum.FeedAttributeType type = 3; - - // Indicates that data corresponding to this attribute is part of a - // FeedItem's unique key. It defaults to false if it is unspecified. Note - // that a unique key is not required in a Feed's schema, in which case the - // FeedItems must be referenced by their feed_item_id. - optional bool is_part_of_key = 7; -} - -// Operation to be performed on a feed attribute list in a mutate. -message FeedAttributeOperation { - // The operator. - enum Operator { - // Unspecified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Add the attribute to the existing attributes. - ADD = 2; - } - - // Output only. Type of list operation to perform. - Operator operator = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The feed attribute being added to the list. - FeedAttribute value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/feed_item.proto b/google/ads/googleads/v7/resources/feed_item.proto deleted file mode 100644 index 9e568e10b..000000000 --- a/google/ads/googleads/v7/resources/feed_item.proto +++ /dev/null @@ -1,214 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/custom_parameter.proto"; -import "google/ads/googleads/v7/common/feed_common.proto"; -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/enums/feed_item_quality_approval_status.proto"; -import "google/ads/googleads/v7/enums/feed_item_quality_disapproval_reason.proto"; -import "google/ads/googleads/v7/enums/feed_item_status.proto"; -import "google/ads/googleads/v7/enums/feed_item_validation_status.proto"; -import "google/ads/googleads/v7/enums/geo_targeting_restriction.proto"; -import "google/ads/googleads/v7/enums/placeholder_type.proto"; -import "google/ads/googleads/v7/enums/policy_approval_status.proto"; -import "google/ads/googleads/v7/enums/policy_review_status.proto"; -import "google/ads/googleads/v7/errors/feed_item_validation_error.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the FeedItem resource. - -// A feed item. -message FeedItem { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedItem" - pattern: "customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}" - }; - - // Immutable. The resource name of the feed item. - // Feed item resource names have the form: - // - // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Immutable. The feed to which this feed item belongs. - optional string feed = 11 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. The ID of this feed item. - optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Start time in which this feed item is effective and can begin serving. The - // time is in the customer's time zone. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string start_date_time = 13; - - // End time in which this feed item is no longer effective and will stop - // serving. The time is in the customer's time zone. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string end_date_time = 14; - - // The feed item's attribute values. - repeated FeedItemAttributeValue attribute_values = 6; - - // Geo targeting restriction specifies the type of location that can be used - // for targeting. - google.ads.googleads.v7.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.v7.common.CustomParameter url_custom_parameters = 8; - - // Output only. Status of the feed item. - // This field is read-only. - google.ads.googleads.v7.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 for active - // feed mappings. There will be an entry in the list for each type of feed - // mapping associated with the feed, e.g. a feed with a sitelink and a call - // feed mapping would cause every feed item associated with that feed to have - // an entry in this list for both sitelink and call. - // This field is read-only. - repeated FeedItemPlaceholderPolicyInfo policy_infos = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// A feed item attribute value. -message FeedItemAttributeValue { - // Id of the feed attribute for which the value is associated with. - optional int64 feed_attribute_id = 11; - - // Int64 value. Should be set if feed_attribute_id refers to a feed attribute - // of type INT64. - optional int64 integer_value = 12; - - // Bool value. Should be set if feed_attribute_id refers to a feed attribute - // of type BOOLEAN. - optional bool boolean_value = 13; - - // String value. Should be set if feed_attribute_id refers to a feed attribute - // of type STRING, URL or DATE_TIME. - // For STRING the maximum length is 1500 characters. For URL the maximum - // length is 2076 characters. For DATE_TIME the string must be in the format - // "YYYYMMDD HHMMSS". - optional string string_value = 14; - - // Double value. Should be set if feed_attribute_id refers to a feed attribute - // of type DOUBLE. - optional double double_value = 15; - - // Price value. Should be set if feed_attribute_id refers to a feed attribute - // of type PRICE. - google.ads.googleads.v7.common.Money price_value = 6; - - // Repeated int64 value. Should be set if feed_attribute_id refers to a feed - // attribute of type INT64_LIST. - repeated int64 integer_values = 16; - - // Repeated bool value. Should be set if feed_attribute_id refers to a feed - // attribute of type BOOLEAN_LIST. - repeated bool boolean_values = 17; - - // Repeated string value. Should be set if feed_attribute_id refers to a feed - // attribute of type STRING_LIST, URL_LIST or DATE_TIME_LIST. - // For STRING_LIST and URL_LIST the total size of the list in bytes may not - // exceed 3000. For DATE_TIME_LIST the number of elements may not exceed 200. - // - // For STRING_LIST the maximum length of each string element is 1500 - // characters. For URL_LIST the maximum length is 2076 characters. For - // DATE_TIME the format of the string must be the same as start and end time - // for the feed item. - repeated string string_values = 18; - - // Repeated double value. Should be set if feed_attribute_id refers to a feed - // attribute of type DOUBLE_LIST. - repeated double double_values = 19; -} - -// Policy, validation, and quality approval info for a feed item for the -// specified placeholder type. -message FeedItemPlaceholderPolicyInfo { - // Output only. The placeholder type. - google.ads.googleads.v7.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type_enum = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The FeedMapping that contains the placeholder type. - optional string feed_mapping_resource_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Where the placeholder type is in the review process. - google.ads.googleads.v7.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.v7.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.v7.common.PolicyTopicEntry policy_topic_entries = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The validation status of the palceholder type. - google.ads.googleads.v7.enums.FeedItemValidationStatusEnum.FeedItemValidationStatus validation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. List of placeholder type validation errors. - repeated FeedItemValidationError validation_errors = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Placeholder type quality evaluation approval status. - google.ads.googleads.v7.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.v7.enums.FeedItemQualityDisapprovalReasonEnum.FeedItemQualityDisapprovalReason quality_disapproval_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Stores a validation error and the set of offending feed attributes which -// together are responsible for causing a feed item validation error. -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.v7.errors.FeedItemValidationErrorEnum.FeedItemValidationError validation_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The description of the validation error. - optional string description = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set of feed attributes in the feed item flagged during validation. If - // empty, no specific feed attributes can be associated with the error - // (e.g. error across the entire feed item). - repeated int64 feed_attribute_ids = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Any extra information related to this error which is not captured by - // validation_error and feed_attribute_id (e.g. placeholder field IDs when - // feed_attribute_id is not mapped). Note that extra_info is not localized. - optional string extra_info = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/feed_item_set.proto b/google/ads/googleads/v7/resources/feed_item_set.proto deleted file mode 100644 index 225887ccd..000000000 --- a/google/ads/googleads/v7/resources/feed_item_set.proto +++ /dev/null @@ -1,84 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/feed_item_set_filter_type_infos.proto"; -import "google/ads/googleads/v7/enums/feed_item_set_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::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 -// matching functions of CustomerFeed, CampaignFeed, and AdGroupFeed. -message FeedItemSet { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedItemSet" - pattern: "customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}" - }; - - // Immutable. The resource name of the feed item set. - // Feed item set resource names have the form: - // `customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSet" - } - ]; - - // Immutable. The resource name of the feed containing the feed items in the set. - // Immutable. Required. - string feed = 2 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. ID of the set. - int64 feed_item_set_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Name of the set. Must be unique within the account. - string display_name = 4; - - // Output only. Status of the feed item set. - // This field is read-only. - google.ads.googleads.v7.enums.FeedItemSetStatusEnum.FeedItemSetStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Represents a filter on locations in a feed item set. - // Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. - oneof dynamic_set_filter { - // Filter for dynamic location set. - // It is only used for sets of locations. - google.ads.googleads.v7.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.v7.common.DynamicAffiliateLocationSetFilter dynamic_affiliate_location_set_filter = 6; - } -} diff --git a/google/ads/googleads/v7/resources/feed_item_set_link.proto b/google/ads/googleads/v7/resources/feed_item_set_link.proto deleted file mode 100644 index a8c73e35a..000000000 --- a/google/ads/googleads/v7/resources/feed_item_set_link.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetLinkProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the FeedItemSetLink resource. - -// Represents a link between a FeedItem and a FeedItemSet. -message FeedItemSetLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedItemSetLink" - pattern: "customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}" - }; - - // Immutable. The resource name of the feed item set link. - // Feed item set link resource names have the form: - // `customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSetLink" - } - ]; - - // Immutable. The linked FeedItem. - string feed_item = 2 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Immutable. The linked FeedItemSet. - string feed_item_set = 3 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSet" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/feed_item_target.proto b/google/ads/googleads/v7/resources/feed_item_target.proto deleted file mode 100644 index 6b8337006..000000000 --- a/google/ads/googleads/v7/resources/feed_item_target.proto +++ /dev/null @@ -1,108 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/enums/feed_item_target_device.proto"; -import "google/ads/googleads/v7/enums/feed_item_target_status.proto"; -import "google/ads/googleads/v7/enums/feed_item_target_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the FeedItemTarget resource. - -// A feed item target. -message FeedItemTarget { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedItemTarget" - pattern: "customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}" - }; - - // Immutable. The resource name of the feed item target. - // Feed item target resource names have the form: - // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemTarget" - } - ]; - - // Immutable. The feed item to which this feed item target belongs. - optional string feed_item = 12 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Output only. The target type of this feed item target. This field is read-only. - google.ads.googleads.v7.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. - optional int64 feed_item_target_id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of the feed item target. - // This field is read-only. - google.ads.googleads.v7.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The targeted resource. - oneof target { - // Immutable. The targeted campaign. - string campaign = 14 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Immutable. The targeted ad group. - string ad_group = 15 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Immutable. The targeted keyword. - google.ads.googleads.v7.common.KeywordInfo keyword = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The targeted geo target constant resource name. - string geo_target_constant = 16 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; - - // Immutable. The targeted device. - google.ads.googleads.v7.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 9 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The targeted schedule. - google.ads.googleads.v7.common.AdScheduleInfo ad_schedule = 10 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/feed_mapping.proto b/google/ads/googleads/v7/resources/feed_mapping.proto deleted file mode 100644 index 17b43be4a..000000000 --- a/google/ads/googleads/v7/resources/feed_mapping.proto +++ /dev/null @@ -1,189 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/ad_customizer_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/affiliate_location_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/app_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/call_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/callout_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/custom_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/dsa_page_feed_criterion_field.proto"; -import "google/ads/googleads/v7/enums/education_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/feed_mapping_criterion_type.proto"; -import "google/ads/googleads/v7/enums/feed_mapping_status.proto"; -import "google/ads/googleads/v7/enums/flight_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/hotel_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/image_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/job_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/local_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/location_extension_targeting_criterion_field.proto"; -import "google/ads/googleads/v7/enums/location_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/message_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/placeholder_type.proto"; -import "google/ads/googleads/v7/enums/price_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/promotion_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/real_estate_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/sitelink_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/structured_snippet_placeholder_field.proto"; -import "google/ads/googleads/v7/enums/travel_placeholder_field.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the FeedMapping resource. - -// A feed mapping. -message FeedMapping { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedMapping" - pattern: "customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}" - }; - - // Immutable. The resource name of the feed mapping. - // Feed mapping resource names have the form: - // - // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedMapping" - } - ]; - - // Immutable. The feed of this feed mapping. - optional string feed = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Immutable. Feed attributes to field mappings. These mappings are a one-to-many - // relationship meaning that 1 feed attribute can be used to populate - // multiple placeholder fields, but 1 placeholder field can only draw - // data from 1 feed attribute. Ad Customizer is an exception, 1 placeholder - // field can be mapped to multiple feed attributes. Required. - repeated AttributeFieldMapping attribute_field_mappings = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Status of the feed mapping. - // This field is read-only. - google.ads.googleads.v7.enums.FeedMappingStatusEnum.FeedMappingStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Feed mapping target. Can be either a placeholder or a criterion. For a - // given feed, the active FeedMappings must have unique targets. Required. - oneof target { - // Immutable. The placeholder type of this mapping (i.e., if the mapping maps feed - // attributes to placeholder fields). - google.ads.googleads.v7.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The criterion type of this mapping (i.e., if the mapping maps feed - // attributes to criterion fields). - google.ads.googleads.v7.enums.FeedMappingCriterionTypeEnum.FeedMappingCriterionType criterion_type = 4 [(google.api.field_behavior) = IMMUTABLE]; - } -} - -// Maps from feed attribute id to a placeholder or criterion field id. -message AttributeFieldMapping { - // Immutable. Feed attribute from which to map. - optional int64 feed_attribute_id = 24 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The placeholder field ID. If a placeholder field enum is not published in - // the current API version, then this field will be populated and the field - // oneof will be empty. - // This field is read-only. - optional int64 field_id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Placeholder or criterion field to be populated using data from - // the above feed attribute. Required. - oneof field { - // Immutable. Sitelink Placeholder Fields. - google.ads.googleads.v7.enums.SitelinkPlaceholderFieldEnum.SitelinkPlaceholderField sitelink_field = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Call Placeholder Fields. - google.ads.googleads.v7.enums.CallPlaceholderFieldEnum.CallPlaceholderField call_field = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. App Placeholder Fields. - google.ads.googleads.v7.enums.AppPlaceholderFieldEnum.AppPlaceholderField app_field = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Location Placeholder Fields. This field is read-only. - google.ads.googleads.v7.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.v7.enums.AffiliateLocationPlaceholderFieldEnum.AffiliateLocationPlaceholderField affiliate_location_field = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Callout Placeholder Fields. - google.ads.googleads.v7.enums.CalloutPlaceholderFieldEnum.CalloutPlaceholderField callout_field = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Structured Snippet Placeholder Fields. - google.ads.googleads.v7.enums.StructuredSnippetPlaceholderFieldEnum.StructuredSnippetPlaceholderField structured_snippet_field = 9 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Message Placeholder Fields. - google.ads.googleads.v7.enums.MessagePlaceholderFieldEnum.MessagePlaceholderField message_field = 10 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Price Placeholder Fields. - google.ads.googleads.v7.enums.PricePlaceholderFieldEnum.PricePlaceholderField price_field = 11 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Promotion Placeholder Fields. - google.ads.googleads.v7.enums.PromotionPlaceholderFieldEnum.PromotionPlaceholderField promotion_field = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Ad Customizer Placeholder Fields - google.ads.googleads.v7.enums.AdCustomizerPlaceholderFieldEnum.AdCustomizerPlaceholderField ad_customizer_field = 13 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Dynamic Search Ad Page Feed Fields. - google.ads.googleads.v7.enums.DsaPageFeedCriterionFieldEnum.DsaPageFeedCriterionField dsa_page_feed_field = 14 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Location Target Fields. - google.ads.googleads.v7.enums.LocationExtensionTargetingCriterionFieldEnum.LocationExtensionTargetingCriterionField location_extension_targeting_field = 15 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Education Placeholder Fields - google.ads.googleads.v7.enums.EducationPlaceholderFieldEnum.EducationPlaceholderField education_field = 16 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Flight Placeholder Fields - google.ads.googleads.v7.enums.FlightPlaceholderFieldEnum.FlightPlaceholderField flight_field = 17 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Placeholder Fields - google.ads.googleads.v7.enums.CustomPlaceholderFieldEnum.CustomPlaceholderField custom_field = 18 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Hotel Placeholder Fields - google.ads.googleads.v7.enums.HotelPlaceholderFieldEnum.HotelPlaceholderField hotel_field = 19 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Real Estate Placeholder Fields - google.ads.googleads.v7.enums.RealEstatePlaceholderFieldEnum.RealEstatePlaceholderField real_estate_field = 20 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Travel Placeholder Fields - google.ads.googleads.v7.enums.TravelPlaceholderFieldEnum.TravelPlaceholderField travel_field = 21 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Local Placeholder Fields - google.ads.googleads.v7.enums.LocalPlaceholderFieldEnum.LocalPlaceholderField local_field = 22 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Job Placeholder Fields - google.ads.googleads.v7.enums.JobPlaceholderFieldEnum.JobPlaceholderField job_field = 23 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Image Placeholder Fields - google.ads.googleads.v7.enums.ImagePlaceholderFieldEnum.ImagePlaceholderField image_field = 26 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/feed_placeholder_view.proto b/google/ads/googleads/v7/resources/feed_placeholder_view.proto deleted file mode 100644 index 7e54f29b1..000000000 --- a/google/ads/googleads/v7/resources/feed_placeholder_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/placeholder_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedPlaceholderViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the FeedPlaceholderView resource. - -// A feed placeholder view. -message FeedPlaceholderView { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedPlaceholderView" - pattern: "customers/{customer_id}/feedPlaceholderViews/{placeholder_type}" - }; - - // Output only. The resource name of the feed placeholder view. - // Feed placeholder view resource names have the form: - // - // `customers/{customer_id}/feedPlaceholderViews/{placeholder_type}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedPlaceholderView" - } - ]; - - // Output only. The placeholder type of the feed placeholder view. - google.ads.googleads.v7.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/gender_view.proto b/google/ads/googleads/v7/resources/gender_view.proto deleted file mode 100644 index bc19b7f6d..000000000 --- a/google/ads/googleads/v7/resources/gender_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GenderViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the gender view resource. - -// A gender view. -message GenderView { - option (google.api.resource) = { - type: "googleads.googleapis.com/GenderView" - pattern: "customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the gender view. - // Gender view resource names have the form: - // - // `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GenderView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/geo_target_constant.proto b/google/ads/googleads/v7/resources/geo_target_constant.proto deleted file mode 100644 index 702bb9e07..000000000 --- a/google/ads/googleads/v7/resources/geo_target_constant.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/geo_target_constant_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the geo target constant resource. - -// A geo target constant. -message GeoTargetConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/GeoTargetConstant" - pattern: "geoTargetConstants/{criterion_id}" - }; - - // Output only. The resource name of the geo target constant. - // Geo target constant resource names have the form: - // - // `geoTargetConstants/{geo_target_constant_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; - - // Output only. The ID of the geo target constant. - optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Geo target constant English name. - optional string name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ISO-3166-1 alpha-2 country code that is associated with the target. - optional string country_code = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Geo target constant target type. - optional string target_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Geo target constant status. - google.ads.googleads.v7.enums.GeoTargetConstantStatusEnum.GeoTargetConstantStatus status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The fully qualified English name, consisting of the target's name and that - // of its parent and country. - optional string canonical_name = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the parent geo target constant. - // Geo target constant resource names have the form: - // - // `geoTargetConstants/{parent_geo_target_constant_id}` - optional string parent_geo_target = 9 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/geographic_view.proto b/google/ads/googleads/v7/resources/geographic_view.proto deleted file mode 100644 index 6c7fadb33..000000000 --- a/google/ads/googleads/v7/resources/geographic_view.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/geo_targeting_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GeographicViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the geographic view resource. - -// A geographic view. -// -// Geographic View includes all metrics aggregated at the country level, -// one row per country. It reports metrics at either actual physical location of -// the user or an area of interest. If other segment fields are used, you may -// get more than one row per country. -message GeographicView { - option (google.api.resource) = { - type: "googleads.googleapis.com/GeographicView" - pattern: "customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}" - }; - - // Output only. The resource name of the geographic view. - // Geographic view resource names have the form: - // - // `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeographicView" - } - ]; - - // Output only. Type of the geo targeting of the campaign. - google.ads.googleads.v7.enums.GeoTargetingTypeEnum.GeoTargetingType location_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Criterion Id for the country. - optional int64 country_criterion_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/google_ads_field.proto b/google/ads/googleads/v7/resources/google_ads_field.proto deleted file mode 100644 index 2204d2347..000000000 --- a/google/ads/googleads/v7/resources/google_ads_field.proto +++ /dev/null @@ -1,108 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/google_ads_field_category.proto"; -import "google/ads/googleads/v7/enums/google_ads_field_data_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsFieldProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Google Ads Field resource. - -// A field or resource (artifact) used by GoogleAdsService. -message GoogleAdsField { - option (google.api.resource) = { - type: "googleads.googleapis.com/GoogleAdsField" - pattern: "googleAdsFields/{google_ads_field}" - }; - - // Output only. The resource name of the artifact. - // Artifact resource names have the form: - // - // `googleAdsFields/{name}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GoogleAdsField" - } - ]; - - // Output only. The name of the artifact. - optional string name = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The category of the artifact. - google.ads.googleads.v7.enums.GoogleAdsFieldCategoryEnum.GoogleAdsFieldCategory category = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the artifact can be used in a SELECT clause in search - // queries. - optional bool selectable = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the artifact can be used in a WHERE clause in search - // queries. - optional bool filterable = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the artifact can be used in a ORDER BY clause in search - // queries. - optional bool sortable = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The names of all resources, segments, and metrics that are selectable with - // the described artifact. - repeated string selectable_with = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The names of all resources that are selectable with the described - // artifact. Fields from these resources do not segment metrics when included - // in search queries. - // - // This field is only set for artifacts whose category is RESOURCE. - repeated string attribute_resources = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. This field lists the names of all metrics that are selectable with the - // described artifact when it is used in the FROM clause. - // It is only set for artifacts whose category is RESOURCE. - repeated string metrics = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. This field lists the names of all artifacts, whether a segment or another - // resource, that segment metrics when included in search queries and when the - // described artifact is used in the FROM clause. It is only set for artifacts - // whose category is RESOURCE. - repeated string segments = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Values the artifact can assume if it is a field of type ENUM. - // - // This field is only set for artifacts of category SEGMENT or ATTRIBUTE. - repeated string enum_values = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. This field determines the operators that can be used with the artifact - // in WHERE clauses. - google.ads.googleads.v7.enums.GoogleAdsFieldDataTypeEnum.GoogleAdsFieldDataType data_type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The URL of proto describing the artifact's data type. - optional string type_url = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the field artifact is repeated. - optional bool is_repeated = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/group_placement_view.proto b/google/ads/googleads/v7/resources/group_placement_view.proto deleted file mode 100644 index 3e57e9ea8..000000000 --- a/google/ads/googleads/v7/resources/group_placement_view.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/placement_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GroupPlacementViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the group placement view resource. - -// A group placement view. -message GroupPlacementView { - option (google.api.resource) = { - type: "googleads.googleapis.com/GroupPlacementView" - pattern: "customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}" - }; - - // Output only. The resource name of the group placement view. - // Group placement view resource names have the form: - // - // `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GroupPlacementView" - } - ]; - - // Output only. The automatic placement string at group level, e. g. web domain, mobile - // app ID, or a YouTube channel ID. - optional string placement = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Domain name for websites and YouTube channel name for YouTube channels. - optional string display_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. URL of the group placement, e.g. domain, link to the mobile application in - // app store, or a YouTube channel URL. - optional string target_url = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Type of the placement, e.g. Website, YouTube Channel, Mobile Application. - google.ads.googleads.v7.enums.PlacementTypeEnum.PlacementType placement_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/hotel_group_view.proto b/google/ads/googleads/v7/resources/hotel_group_view.proto deleted file mode 100644 index 8342c265b..000000000 --- a/google/ads/googleads/v7/resources/hotel_group_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "HotelGroupViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the hotel group view resource. - -// A hotel group view. -message HotelGroupView { - option (google.api.resource) = { - type: "googleads.googleapis.com/HotelGroupView" - pattern: "customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the hotel group view. - // Hotel Group view resource names have the form: - // - // `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/HotelGroupView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/hotel_performance_view.proto b/google/ads/googleads/v7/resources/hotel_performance_view.proto deleted file mode 100644 index aac3a138c..000000000 --- a/google/ads/googleads/v7/resources/hotel_performance_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "HotelPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the hotel performance view resource. - -// A hotel performance view. -message HotelPerformanceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/HotelPerformanceView" - pattern: "customers/{customer_id}/hotelPerformanceView" - }; - - // Output only. The resource name of the hotel performance view. - // Hotel performance view resource names have the form: - // - // `customers/{customer_id}/hotelPerformanceView` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/HotelPerformanceView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/income_range_view.proto b/google/ads/googleads/v7/resources/income_range_view.proto deleted file mode 100644 index e7790b7d5..000000000 --- a/google/ads/googleads/v7/resources/income_range_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "IncomeRangeViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the income range view resource. - -// An income range view. -message IncomeRangeView { - option (google.api.resource) = { - type: "googleads.googleapis.com/IncomeRangeView" - pattern: "customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the income range view. - // Income range view resource names have the form: - // - // `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/IncomeRangeView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/invoice.proto b/google/ads/googleads/v7/resources/invoice.proto deleted file mode 100644 index bff4d389f..000000000 --- a/google/ads/googleads/v7/resources/invoice.proto +++ /dev/null @@ -1,203 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/dates.proto"; -import "google/ads/googleads/v7/enums/invoice_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "InvoiceProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Invoice resource. - -// An invoice. All invoice information is snapshotted to match the PDF invoice. -// For invoices older than the launch of InvoiceService, the snapshotted -// information may not match the PDF invoice. -message Invoice { - option (google.api.resource) = { - type: "googleads.googleapis.com/Invoice" - pattern: "customers/{customer_id}/invoices/{invoice_id}" - }; - - // Represents a summarized account budget billable cost. - message AccountBudgetSummary { - // Output only. The resource name of the customer associated with this account budget. - // This contains the customer ID, which appears on the invoice PDF as - // "Account ID". - // Customer resource names have the form: - // - // `customers/{customer_id}` - optional string customer = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The descriptive name of the account budget’s customer. It appears on the - // invoice PDF as "Account". - optional string customer_descriptive_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the account budget associated with this summarized - // billable cost. - // AccountBudget resource names have the form: - // - // `customers/{customer_id}/accountBudgets/{account_budget_id}` - optional string account_budget = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the account budget. It appears on the invoice PDF as "Account - // budget". - optional string account_budget_name = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The purchase order number of the account budget. It appears on the - // invoice PDF as "Purchase order". - optional string purchase_order_number = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pretax subtotal amount attributable to this budget during the service - // period, in micros. - optional int64 subtotal_amount_micros = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The tax amount attributable to this budget during the service period, in - // micros. - optional int64 tax_amount_micros = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total amount attributable to this budget during the service period, - // in micros. This equals the sum of the account budget subtotal amount and - // the account budget tax amount. - optional int64 total_amount_micros = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // 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.v7.common.DateRange billable_activity_date_range = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. The resource name of the invoice. Multiple customers can share a given - // invoice, so multiple resource names may point to the same invoice. - // Invoice resource names have the form: - // - // `customers/{customer_id}/invoices/{invoice_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Invoice" - } - ]; - - // Output only. The ID of the invoice. It appears on the invoice PDF as "Invoice number". - optional string id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of invoice. - google.ads.googleads.v7.enums.InvoiceTypeEnum.InvoiceType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of this invoice’s billing setup. - // - // `customers/{customer_id}/billingSetups/{billing_setup_id}` - optional string billing_setup = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A 16 digit ID used to identify the payments account associated with the - // billing setup, e.g. "1234-5678-9012-3456". It appears on the invoice PDF as - // "Billing Account Number". - optional string payments_account_id = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A 12 digit ID used to identify the payments profile associated with the - // billing setup, e.g. "1234-5678-9012". It appears on the invoice PDF as - // "Billing ID". - optional string payments_profile_id = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The issue date in yyyy-mm-dd format. It appears on the invoice PDF as - // either "Issue date" or "Invoice date". - optional string issue_date = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The due date in yyyy-mm-dd format. - optional string due_date = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The service period date range of this invoice. The end date is inclusive. - google.ads.googleads.v7.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 subset of the - // currency codes derived from the ISO 4217 standard is supported. - optional string currency_code = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pretax subtotal amount of invoice level adjustments, in micros. - int64 adjustments_subtotal_amount_micros = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The sum of taxes on the invoice level adjustments, in micros. - int64 adjustments_tax_amount_micros = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total amount of invoice level adjustments, in micros. - int64 adjustments_total_amount_micros = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pretax subtotal amount of invoice level regulatory costs, in micros. - int64 regulatory_costs_subtotal_amount_micros = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The sum of taxes on the invoice level regulatory costs, in micros. - int64 regulatory_costs_tax_amount_micros = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total amount of invoice level regulatory costs, in micros. - int64 regulatory_costs_total_amount_micros = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pretax subtotal amount, in micros. This equals the - // sum of the AccountBudgetSummary subtotal amounts, - // Invoice.adjustments_subtotal_amount_micros, and - // Invoice.regulatory_costs_subtotal_amount_micros. - // Starting with v6, the Invoice.regulatory_costs_subtotal_amount_micros is no - // longer included. - optional int64 subtotal_amount_micros = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The sum of all taxes on the invoice, in micros. This equals the sum of the - // AccountBudgetSummary tax amounts, plus taxes not associated with a specific - // account budget. - optional int64 tax_amount_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total amount, in micros. This equals the sum of - // Invoice.subtotal_amount_micros and Invoice.tax_amount_micros. - // Starting with v6, Invoice.regulatory_costs_subtotal_amount_micros is - // also added as it is no longer already included in - // Invoice.tax_amount_micros. - optional int64 total_amount_micros = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the original invoice corrected, wrote off, or canceled - // by this invoice, if applicable. If `corrected_invoice` is set, - // `replaced_invoices` will not be set. - // Invoice resource names have the form: - // - // `customers/{customer_id}/invoices/{invoice_id}` - optional string corrected_invoice = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the original invoice(s) being rebilled or replaced by - // this invoice, if applicable. There might be multiple replaced invoices due - // to invoice consolidation. The replaced invoices may not belong to the same - // payments account. If `replaced_invoices` is set, `corrected_invoice` will - // not be set. - // Invoice resource names have the form: - // - // `customers/{customer_id}/invoices/{invoice_id}` - repeated string replaced_invoices = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The URL to a PDF copy of the invoice. Users need to pass in their OAuth - // token to request the PDF with this URL. - optional string pdf_url = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The list of summarized account budget information associated with this - // invoice. - repeated AccountBudgetSummary account_budget_summaries = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/keyword_plan.proto b/google/ads/googleads/v7/resources/keyword_plan.proto deleted file mode 100644 index fade32bd5..000000000 --- a/google/ads/googleads/v7/resources/keyword_plan.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/dates.proto"; -import "google/ads/googleads/v7/enums/keyword_plan_forecast_interval.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the keyword plan resource. - -// A Keyword Planner plan. -// Max number of saved keyword plans: 10000. -// It's possible to remove plans if limit is reached. -message KeywordPlan { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlan" - pattern: "customers/{customer_id}/keywordPlans/{keyword_plan_id}" - }; - - // Immutable. The resource name of the Keyword Planner plan. - // KeywordPlan resource names have the form: - // - // `customers/{customer_id}/keywordPlans/{kp_plan_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; - - // Output only. The ID of the keyword plan. - optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the keyword plan. - // - // This field is required and should not be empty when creating new keyword - // plans. - optional string name = 6; - - // The date period used for forecasting the plan. - KeywordPlanForecastPeriod forecast_period = 4; -} - -// The forecasting period associated with the keyword plan. -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.v7.enums.KeywordPlanForecastIntervalEnum.KeywordPlanForecastInterval date_interval = 1; - - // The custom date range used for forecasting. - // 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.v7.common.DateRange date_range = 2; - } -} diff --git a/google/ads/googleads/v7/resources/keyword_plan_ad_group.proto b/google/ads/googleads/v7/resources/keyword_plan_ad_group.proto deleted file mode 100644 index 0cb076c57..000000000 --- a/google/ads/googleads/v7/resources/keyword_plan_ad_group.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the keyword plan ad group resource. - -// A Keyword Planner ad group. -// Max number of keyword plan ad groups per plan: 200. -message KeywordPlanAdGroup { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - pattern: "customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}" - }; - - // Immutable. The resource name of the Keyword Planner ad group. - // KeywordPlanAdGroup resource names have the form: - // - // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - } - ]; - - // The keyword plan campaign to which this ad group belongs. - optional string keyword_plan_campaign = 6 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - }]; - - // Output only. The ID of the keyword plan ad group. - optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the keyword plan ad group. - // - // This field is required and should not be empty when creating keyword plan - // ad group. - optional string name = 8; - - // A default ad group max cpc bid in micros in account currency for all - // biddable keywords under the keyword plan ad group. - // If not set, will inherit from parent campaign. - optional int64 cpc_bid_micros = 9; -} diff --git a/google/ads/googleads/v7/resources/keyword_plan_ad_group_keyword.proto b/google/ads/googleads/v7/resources/keyword_plan_ad_group_keyword.proto deleted file mode 100644 index fb56e9308..000000000 --- a/google/ads/googleads/v7/resources/keyword_plan_ad_group_keyword.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/keyword_match_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupKeywordProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the keyword plan ad group keyword resource. - -// A Keyword Plan ad group keyword. -// Max number of keyword plan keywords per plan: 10000. -message KeywordPlanAdGroupKeyword { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" - pattern: "customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}" - }; - - // Immutable. The resource name of the Keyword Plan ad group keyword. - // KeywordPlanAdGroupKeyword resource names have the form: - // - // `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" - } - ]; - - // The Keyword Plan ad group to which this keyword belongs. - optional string keyword_plan_ad_group = 8 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - }]; - - // Output only. The ID of the Keyword Plan keyword. - optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The keyword text. - optional string text = 10; - - // The keyword match type. - google.ads.googleads.v7.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; - - // A keyword level max cpc bid in micros (e.g. $1 = 1mm). The currency is the - // same as the account currency code. This will override any CPC bid set at - // the keyword plan ad group level. - // Not applicable for negative keywords. (negative = true) - // This field is Optional. - optional int64 cpc_bid_micros = 11; - - // Immutable. If true, the keyword is negative. - optional bool negative = 12 [(google.api.field_behavior) = IMMUTABLE]; -} diff --git a/google/ads/googleads/v7/resources/keyword_plan_campaign.proto b/google/ads/googleads/v7/resources/keyword_plan_campaign.proto deleted file mode 100644 index a85d6d6ac..000000000 --- a/google/ads/googleads/v7/resources/keyword_plan_campaign.proto +++ /dev/null @@ -1,98 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/keyword_plan_network.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the keyword plan campaign resource. - -// A Keyword Plan campaign. -// Max number of keyword plan campaigns per plan allowed: 1. -message KeywordPlanCampaign { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - pattern: "customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}" - }; - - // Immutable. The resource name of the Keyword Plan campaign. - // KeywordPlanCampaign resource names have the form: - // - // `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - } - ]; - - // The keyword plan this campaign belongs to. - optional string keyword_plan = 9 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - }]; - - // Output only. The ID of the Keyword Plan campaign. - optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the Keyword Plan campaign. - // - // This field is required and should not be empty when creating Keyword Plan - // campaigns. - optional string name = 11; - - // The languages targeted for the Keyword Plan campaign. - // Max allowed: 1. - repeated string language_constants = 12 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/LanguageConstant" - }]; - - // Targeting network. - // - // This field is required and should not be empty when creating Keyword Plan - // campaigns. - google.ads.googleads.v7.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 6; - - // A default max cpc bid in micros, and in the account currency, for all ad - // groups under the campaign. - // - // This field is required and should not be empty when creating Keyword Plan - // campaigns. - optional int64 cpc_bid_micros = 13; - - // The geo targets. - // Max number allowed: 20. - repeated KeywordPlanGeoTarget geo_targets = 8; -} - -// A geo target. -message KeywordPlanGeoTarget { - // Required. The resource name of the geo target. - optional string geo_target_constant = 2 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - }]; -} diff --git a/google/ads/googleads/v7/resources/keyword_plan_campaign_keyword.proto b/google/ads/googleads/v7/resources/keyword_plan_campaign_keyword.proto deleted file mode 100644 index 81d8c42ea..000000000 --- a/google/ads/googleads/v7/resources/keyword_plan_campaign_keyword.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/keyword_match_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignKeywordProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the keyword plan negative keyword resource. - -// A Keyword Plan Campaign keyword. -// Only negative keywords are supported for Campaign Keyword. -message KeywordPlanCampaignKeyword { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" - pattern: "customers/{customer_id}/keywordPlanCampaignKeywords/{keyword_plan_campaign_keyword_id}" - }; - - // Immutable. The resource name of the Keyword Plan Campaign keyword. - // KeywordPlanCampaignKeyword resource names have the form: - // - // `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" - } - ]; - - // The Keyword Plan campaign to which this negative keyword belongs. - optional string keyword_plan_campaign = 8 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - }]; - - // Output only. The ID of the Keyword Plan negative keyword. - optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The keyword text. - optional string text = 10; - - // The keyword match type. - google.ads.googleads.v7.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; - - // Immutable. If true, the keyword is negative. - // Must be set to true. Only negative campaign keywords are supported. - optional bool negative = 11 [(google.api.field_behavior) = IMMUTABLE]; -} diff --git a/google/ads/googleads/v7/resources/keyword_view.proto b/google/ads/googleads/v7/resources/keyword_view.proto deleted file mode 100644 index 7509ff49b..000000000 --- a/google/ads/googleads/v7/resources/keyword_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the keyword view resource. - -// A keyword view. -message KeywordView { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordView" - pattern: "customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the keyword view. - // Keyword view resource names have the form: - // - // `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/label.proto b/google/ads/googleads/v7/resources/label.proto deleted file mode 100644 index ed8adfc06..000000000 --- a/google/ads/googleads/v7/resources/label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/text_label.proto"; -import "google/ads/googleads/v7/enums/label_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LabelProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// A label. -message Label { - option (google.api.resource) = { - type: "googleads.googleapis.com/Label" - pattern: "customers/{customer_id}/labels/{label_id}" - }; - - // Immutable. Name of the resource. - // Label resource names have the form: - // `customers/{customer_id}/labels/{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; - - // Output only. Id of the label. Read only. - optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the label. - // - // This field is required and should not be empty when creating a new label. - // - // The length of this string should be between 1 and 80, inclusive. - optional string name = 7; - - // Output only. Status of the label. Read only. - google.ads.googleads.v7.enums.LabelStatusEnum.LabelStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // A type of label displaying text on a colored background. - google.ads.googleads.v7.common.TextLabel text_label = 5; -} diff --git a/google/ads/googleads/v7/resources/landing_page_view.proto b/google/ads/googleads/v7/resources/landing_page_view.proto deleted file mode 100644 index dcd9ace72..000000000 --- a/google/ads/googleads/v7/resources/landing_page_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LandingPageViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the landing page view resource. - -// A landing page view with metrics aggregated at the unexpanded final URL -// level. -message LandingPageView { - option (google.api.resource) = { - type: "googleads.googleapis.com/LandingPageView" - pattern: "customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}" - }; - - // Output only. The resource name of the landing page view. - // Landing page view resource names have the form: - // - // `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LandingPageView" - } - ]; - - // Output only. The advertiser-specified final URL. - optional string unexpanded_final_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/language_constant.proto b/google/ads/googleads/v7/resources/language_constant.proto deleted file mode 100644 index 3c9c70cb7..000000000 --- a/google/ads/googleads/v7/resources/language_constant.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LanguageConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the language constant resource. - -// A language. -message LanguageConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/LanguageConstant" - pattern: "languageConstants/{criterion_id}" - }; - - // Output only. The resource name of the language constant. - // Language constant resource names have the form: - // - // `languageConstants/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LanguageConstant" - } - ]; - - // Output only. The ID of the language constant. - optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The language code, e.g. "en_US", "en_AU", "es", "fr", etc. - optional string code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The full name of the language in English, e.g., "English (US)", "Spanish", - // etc. - optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the language is targetable. - optional bool targetable = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/life_event.proto b/google/ads/googleads/v7/resources/life_event.proto deleted file mode 100644 index 3110f6cec..000000000 --- a/google/ads/googleads/v7/resources/life_event.proto +++ /dev/null @@ -1,73 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criterion_category_availability.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LifeEventProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Life Event resource. - -// A life event: a particular interest-based vertical to be targeted to reach -// users when they are in the midst of important life milestones. -message LifeEvent { - option (google.api.resource) = { - type: "googleads.googleapis.com/LifeEvent" - pattern: "customers/{customer_id}/lifeEvents/{life_event_id}" - }; - - // Output only. The resource name of the life event. - // Life event resource names have the form: - // - // `customers/{customer_id}/lifeEvents/{life_event_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LifeEvent" - } - ]; - - // Output only. The ID of the life event. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the life event. E.g.,"Recently Moved" - string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The parent of the life_event. - string parent = 4 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LifeEvent" - } - ]; - - // Output only. True if the life event is launched to all channels and locales. - bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Availability information of the life event. - repeated google.ads.googleads.v7.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/location_view.proto b/google/ads/googleads/v7/resources/location_view.proto deleted file mode 100644 index ac4366b6c..000000000 --- a/google/ads/googleads/v7/resources/location_view.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LocationViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the location view resource. - -// A location view summarizes the performance of campaigns by -// Location criteria. -message LocationView { - option (google.api.resource) = { - type: "googleads.googleapis.com/LocationView" - pattern: "customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}" - }; - - // Output only. The resource name of the location view. - // Location view resource names have the form: - // - // `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LocationView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/managed_placement_view.proto b/google/ads/googleads/v7/resources/managed_placement_view.proto deleted file mode 100644 index c13d5297d..000000000 --- a/google/ads/googleads/v7/resources/managed_placement_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ManagedPlacementViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Managed Placement view resource. - -// A managed placement view. -message ManagedPlacementView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ManagedPlacementView" - pattern: "customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the Managed Placement view. - // Managed placement view resource names have the form: - // - // `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ManagedPlacementView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/media_file.proto b/google/ads/googleads/v7/resources/media_file.proto deleted file mode 100644 index 8f0429b3d..000000000 --- a/google/ads/googleads/v7/resources/media_file.proto +++ /dev/null @@ -1,137 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/media_type.proto"; -import "google/ads/googleads/v7/enums/mime_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MediaFileProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the media file resource. - -// A media file. -message MediaFile { - option (google.api.resource) = { - type: "googleads.googleapis.com/MediaFile" - pattern: "customers/{customer_id}/mediaFiles/{media_file_id}" - }; - - // Immutable. The resource name of the media file. - // Media file resource names have the form: - // - // `customers/{customer_id}/mediaFiles/{media_file_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MediaFile" - } - ]; - - // Output only. The ID of the media file. - optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Type of the media file. - google.ads.googleads.v7.enums.MediaTypeEnum.MediaType type = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The mime type of the media file. - google.ads.googleads.v7.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 a file - // name). Only used for media of type AUDIO and IMAGE. - optional string source_url = 13 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The name of the media file. The name can be used by clients to help - // identify previously uploaded media. - optional string name = 14 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The size of the media file in bytes. - optional int64 file_size = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The specific type of the media file. - oneof mediatype { - // Immutable. Encapsulates an Image. - MediaImage image = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A ZIP archive media the content of which contains HTML5 assets. - MediaBundle media_bundle = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Encapsulates an Audio. - MediaAudio audio = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Encapsulates a Video. - MediaVideo video = 11 [(google.api.field_behavior) = IMMUTABLE]; - } -} - -// Encapsulates an Image. -message MediaImage { - // Immutable. Raw image data. - optional bytes data = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The url to the full size version of the image. - optional string full_size_image_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The url to the preview size version of the image. - optional string preview_size_image_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Represents a ZIP archive media the content of which contains HTML5 assets. -message MediaBundle { - // Immutable. Raw zipped data. - optional bytes data = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The url to access the uploaded zipped data. - // E.g. https://tpc.googlesyndication.com/simgad/123 - // This field is read-only. - optional string url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Encapsulates an Audio. -message MediaAudio { - // Output only. The duration of the Audio in milliseconds. - optional int64 ad_duration_millis = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Encapsulates a Video. -message MediaVideo { - // Output only. The duration of the Video in milliseconds. - optional int64 ad_duration_millis = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The YouTube video ID (as seen in YouTube URLs). Adding prefix - // "https://www.youtube.com/watch?v=" to this ID will get the YouTube - // streaming URL for this video. - optional string youtube_video_id = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The Advertising Digital Identification code for this video, as defined by - // the American Association of Advertising Agencies, used mainly for - // television commercials. - optional string advertising_id_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Industry Standard Commercial Identifier code for this video, used - // mainly for television commercials. - optional string isci_code = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/merchant_center_link.proto b/google/ads/googleads/v7/resources/merchant_center_link.proto deleted file mode 100644 index 07b757325..000000000 --- a/google/ads/googleads/v7/resources/merchant_center_link.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/merchant_center_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::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.v7.enums.MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus status = 5; -} diff --git a/google/ads/googleads/v7/resources/mobile_app_category_constant.proto b/google/ads/googleads/v7/resources/mobile_app_category_constant.proto deleted file mode 100644 index ebcab086c..000000000 --- a/google/ads/googleads/v7/resources/mobile_app_category_constant.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MobileAppCategoryConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Mobile App Category Constant resource. - -// A mobile application category constant. -message MobileAppCategoryConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/MobileAppCategoryConstant" - pattern: "mobileAppCategoryConstants/{mobile_app_category_id}" - }; - - // Output only. The resource name of the mobile app category constant. - // Mobile app category constant resource names have the form: - // - // `mobileAppCategoryConstants/{mobile_app_category_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MobileAppCategoryConstant" - } - ]; - - // Output only. The ID of the mobile app category constant. - optional int32 id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Mobile app category name. - optional string name = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/mobile_device_constant.proto b/google/ads/googleads/v7/resources/mobile_device_constant.proto deleted file mode 100644 index 046fbe549..000000000 --- a/google/ads/googleads/v7/resources/mobile_device_constant.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/mobile_device_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MobileDeviceConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the mobile device constant resource. - -// A mobile device constant. -message MobileDeviceConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/MobileDeviceConstant" - pattern: "mobileDeviceConstants/{criterion_id}" - }; - - // Output only. The resource name of the mobile device constant. - // Mobile device constant resource names have the form: - // - // `mobileDeviceConstants/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MobileDeviceConstant" - } - ]; - - // Output only. The ID of the mobile device constant. - optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the mobile device. - optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The manufacturer of the mobile device. - optional string manufacturer_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The operating system of the mobile device. - optional string operating_system_name = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of mobile device. - google.ads.googleads.v7.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/offline_user_data_job.proto b/google/ads/googleads/v7/resources/offline_user_data_job.proto deleted file mode 100644 index c2a4d1188..000000000 --- a/google/ads/googleads/v7/resources/offline_user_data_job.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/offline_user_data.proto"; -import "google/ads/googleads/v7/enums/offline_user_data_job_failure_reason.proto"; -import "google/ads/googleads/v7/enums/offline_user_data_job_status.proto"; -import "google/ads/googleads/v7/enums/offline_user_data_job_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the offline user data job resource. - -// A job containing offline user data of store visitors, or user list members -// that will be processed asynchronously. The uploaded data isn't readable and -// the processing results of the job can only be read using -// OfflineUserDataJobService.GetOfflineUserDataJob. -message OfflineUserDataJob { - option (google.api.resource) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - pattern: "customers/{customer_id}/offlineUserDataJobs/{offline_user_data_update_id}" - }; - - // Immutable. The resource name of the offline user data job. - // Offline user data job resource names have the form: - // - // `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - } - ]; - - // Output only. ID of this offline user data job. - optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. User specified job ID. - optional int64 external_id = 10 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Type of the job. - google.ads.googleads.v7.enums.OfflineUserDataJobTypeEnum.OfflineUserDataJobType type = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Status of the job. - google.ads.googleads.v7.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.v7.enums.OfflineUserDataJobFailureReasonEnum.OfflineUserDataJobFailureReason failure_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Metadata of the job. - oneof metadata { - // Immutable. Metadata for data updates to a CRM-based user list. - google.ads.googleads.v7.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Metadata for store sales data update. - google.ads.googleads.v7.common.StoreSalesMetadata store_sales_metadata = 8 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/operating_system_version_constant.proto b/google/ads/googleads/v7/resources/operating_system_version_constant.proto deleted file mode 100644 index 1495e49fd..000000000 --- a/google/ads/googleads/v7/resources/operating_system_version_constant.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/operating_system_version_operator_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "OperatingSystemVersionConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the operating system version constant resource. - -// A mobile operating system version or a range of versions, depending on -// `operator_type`. List of available mobile platforms at -// https://developers.google.com/google-ads/api/reference/data/codes-formats#mobile-platforms -message OperatingSystemVersionConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/OperatingSystemVersionConstant" - pattern: "operatingSystemVersionConstants/{criterion_id}" - }; - - // Output only. The resource name of the operating system version constant. - // Operating system version constant resource names have the form: - // - // `operatingSystemVersionConstants/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OperatingSystemVersionConstant" - } - ]; - - // Output only. The ID of the operating system version. - optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Name of the operating system. - optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The OS Major Version number. - optional int32 os_major_version = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The OS Minor Version number. - optional int32 os_minor_version = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Determines whether this constant represents a single version or a range of - // versions. - google.ads.googleads.v7.enums.OperatingSystemVersionOperatorTypeEnum.OperatingSystemVersionOperatorType operator_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/paid_organic_search_term_view.proto b/google/ads/googleads/v7/resources/paid_organic_search_term_view.proto deleted file mode 100644 index ae7349a1f..000000000 --- a/google/ads/googleads/v7/resources/paid_organic_search_term_view.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "PaidOrganicSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the PaidOrganicSearchTermView resource. - -// A paid organic search term view providing a view of search stats across -// ads and organic listings aggregated by search term at the ad group level. -message PaidOrganicSearchTermView { - option (google.api.resource) = { - type: "googleads.googleapis.com/PaidOrganicSearchTermView" - pattern: "customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~{ad_group_id}~{base64_search_term}" - }; - - // Output only. The resource name of the search term view. - // Search term view resource names have the form: - // - // `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~ - // {ad_group_id}~{URL-base64 search term}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/PaidOrganicSearchTermView" - } - ]; - - // Output only. The search term. - optional string search_term = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/parental_status_view.proto b/google/ads/googleads/v7/resources/parental_status_view.proto deleted file mode 100644 index 16a21c2bc..000000000 --- a/google/ads/googleads/v7/resources/parental_status_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ParentalStatusViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the parental status view resource. - -// A parental status view. -message ParentalStatusView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ParentalStatusView" - pattern: "customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the parental status view. - // Parental Status view resource names have the form: - // - // `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ParentalStatusView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/payments_account.proto b/google/ads/googleads/v7/resources/payments_account.proto deleted file mode 100644 index 10b0d73b6..000000000 --- a/google/ads/googleads/v7/resources/payments_account.proto +++ /dev/null @@ -1,78 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "PaymentsAccountProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the PaymentsAccount resource. - -// A payments account, which can be used to set up billing for an Ads customer. -message PaymentsAccount { - option (google.api.resource) = { - type: "googleads.googleapis.com/PaymentsAccount" - pattern: "customers/{customer_id}/paymentsAccounts/{payments_account_id}" - }; - - // Output only. The resource name of the payments account. - // PaymentsAccount resource names have the form: - // - // `customers/{customer_id}/paymentsAccounts/{payments_account_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/PaymentsAccount" - } - ]; - - // Output only. A 16 digit ID used to identify a payments account. - optional string payments_account_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the payments account. - optional string name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The currency code of the payments account. - // A subset of the currency codes derived from the ISO 4217 standard is - // supported. - optional string currency_code = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A 12 digit ID used to identify the payments profile associated with the - // payments account. - optional string payments_profile_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A secondary payments profile ID present in uncommon situations, e.g. - // when a sequential liability agreement has been arranged. - optional string secondary_payments_profile_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Paying manager of this payment account. - optional string paying_manager_customer = 13 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/product_bidding_category_constant.proto b/google/ads/googleads/v7/resources/product_bidding_category_constant.proto deleted file mode 100644 index cf2e762cd..000000000 --- a/google/ads/googleads/v7/resources/product_bidding_category_constant.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/product_bidding_category_level.proto"; -import "google/ads/googleads/v7/enums/product_bidding_category_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::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.v7.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of the product bidding category. - google.ads.googleads.v7.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/google/ads/googleads/v7/resources/product_group_view.proto b/google/ads/googleads/v7/resources/product_group_view.proto deleted file mode 100644 index 176b8e955..000000000 --- a/google/ads/googleads/v7/resources/product_group_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ProductGroupViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ProductGroup View resource. - -// A product group view. -message ProductGroupView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ProductGroupView" - pattern: "customers/{customer_id}/productGroupViews/{adgroup_id}~{criterion_id}" - }; - - // Output only. The resource name of the product group view. - // Product group view resource names have the form: - // - // `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductGroupView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/recommendation.proto b/google/ads/googleads/v7/resources/recommendation.proto deleted file mode 100644 index edaa6d072..000000000 --- a/google/ads/googleads/v7/resources/recommendation.proto +++ /dev/null @@ -1,350 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/common/extensions.proto"; -import "google/ads/googleads/v7/enums/keyword_match_type.proto"; -import "google/ads/googleads/v7/enums/recommendation_type.proto"; -import "google/ads/googleads/v7/enums/target_cpa_opt_in_recommendation_goal.proto"; -import "google/ads/googleads/v7/resources/ad.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Recommendation resource. - -// A recommendation. -message Recommendation { - option (google.api.resource) = { - type: "googleads.googleapis.com/Recommendation" - pattern: "customers/{customer_id}/recommendations/{recommendation_id}" - }; - - // The impact of making the change as described in the recommendation. - // Some types of recommendations may not have impact information. - message RecommendationImpact { - // Output only. Base metrics at the time the recommendation was generated. - RecommendationMetrics base_metrics = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimated metrics if the recommendation is applied. - RecommendationMetrics potential_metrics = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Weekly account performance metrics. For some recommendation types, these - // are averaged over the past 90-day period and hence can be fractional. - message RecommendationMetrics { - // Output only. Number of ad impressions. - optional double impressions = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Number of ad clicks. - optional double clicks = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Cost (in micros) for advertising, in the local currency for the account. - optional int64 cost_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Number of conversions. - optional double conversions = 9 [(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]; - } - - // The budget recommendation for budget constrained campaigns. - message CampaignBudgetRecommendation { - // The impact estimates for a given budget amount. - message CampaignBudgetRecommendationOption { - // Output only. The budget amount for this option. - optional int64 budget_amount_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The impact estimate if budget is changed to amount specified in this - // option. - RecommendationImpact impact = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. The current budget amount in micros. - optional int64 current_budget_amount_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended budget amount in micros. - optional int64 recommended_budget_amount_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The budget amounts and associated impact estimates for some values of - // possible budget amounts. - repeated CampaignBudgetRecommendationOption budget_options = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The keyword recommendation. - message KeywordRecommendation { - // Output only. The recommended keyword. - google.ads.googleads.v7.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended CPC (cost-per-click) bid. - optional int64 recommended_cpc_bid_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Search Partners Opt-In recommendation. - message SearchPartnersOptInRecommendation { - - } - - // The text ad recommendation. - message TextAdRecommendation { - // Output only. Recommended ad. - Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Creation date of the recommended ad. - // YYYY-MM-DD format, e.g., 2018-04-17. - optional string creation_date = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Date, if present, is the earliest when the recommendation will be auto - // applied. - // YYYY-MM-DD format, e.g., 2018-04-17. - optional string auto_apply_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Call extension recommendation. - message CallExtensionRecommendation { - // Output only. Call extensions recommended to be added. - repeated google.ads.googleads.v7.common.CallFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Enhanced Cost-Per-Click Opt-In recommendation. - message EnhancedCpcOptInRecommendation { - - } - - // The Target CPA opt-in recommendation. - message TargetCpaOptInRecommendation { - // The Target CPA opt-in option with impact estimate. - message TargetCpaOptInRecommendationOption { - // Output only. The goal achieved by this option. - google.ads.googleads.v7.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal goal = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Average CPA target. - optional int64 target_cpa_micros = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The minimum campaign budget, in local currency for the account, - // required to achieve the target CPA. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - optional int64 required_campaign_budget_amount_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The impact estimate if this option is selected. - RecommendationImpact impact = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. The available goals and corresponding options for Target CPA strategy. - repeated TargetCpaOptInRecommendationOption options = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended average CPA target. See required budget amount and impact - // of using this recommendation in options list. - optional int64 recommended_target_cpa_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Maximize Conversions Opt-In recommendation. - message MaximizeConversionsOptInRecommendation { - // Output only. The recommended new budget amount. - optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Optimize Ad Rotation recommendation. - message OptimizeAdRotationRecommendation { - - } - - // The Maximize Clicks opt-in recommendation. - message MaximizeClicksOptInRecommendation { - // Output only. The recommended new budget amount. - // Only set if the current budget is too high. - optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The keyword match type recommendation. - message KeywordMatchTypeRecommendation { - // Output only. The existing keyword where the match type should be more broad. - google.ads.googleads.v7.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended new match type. - google.ads.googleads.v7.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The move unused budget recommendation. - message MoveUnusedBudgetRecommendation { - // Output only. The excess budget's resource_name. - optional string excess_campaign_budget = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommendation for the constrained budget to increase. - CampaignBudgetRecommendation budget_recommendation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The add responsive search ad recommendation. - message ResponsiveSearchAdRecommendation { - // Output only. Recommended ad. - Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Callout extension recommendation. - message CalloutExtensionRecommendation { - // Output only. Callout extensions recommended to be added. - repeated google.ads.googleads.v7.common.CalloutFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Sitelink extension recommendation. - message SitelinkExtensionRecommendation { - // Output only. Sitelink extensions recommended to be added. - repeated google.ads.googleads.v7.common.SitelinkFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Target ROAS opt-in recommendation. - message TargetRoasOptInRecommendation { - // Output only. The recommended target ROAS (revenue per unit of spend). - // The value is between 0.01 and 1000.0, inclusive. - optional double recommended_target_roas = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The minimum campaign budget, in local currency for the account, - // required to achieve the target ROAS. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - optional int64 required_campaign_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the recommendation. - // - // `customers/{customer_id}/recommendations/{recommendation_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Recommendation" - } - ]; - - // Output only. The type of recommendation. - google.ads.googleads.v7.enums.RecommendationTypeEnum.RecommendationType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The impact on account performance as a result of applying the - // recommendation. - RecommendationImpact impact = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The budget targeted by this recommendation. This will be set only when - // the recommendation affects a single campaign budget. - // - // This field will be set for the following recommendation types: - // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET, - // MOVE_UNUSED_BUDGET - optional string campaign_budget = 24 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBudget" - } - ]; - - // Output only. The campaign targeted by this recommendation. This will be set only when - // the recommendation affects a single campaign. - // - // This field will be set for the following recommendation types: - // CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN, KEYWORD, - // KEYWORD_MATCH_TYPE, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, - // OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, SEARCH_PARTNERS_OPT_IN, - // SITELINK_EXTENSION, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN, TEXT_AD - optional string campaign = 25 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The ad group targeted by this recommendation. This will be set only when - // the recommendation affects a single ad group. - // - // This field will be set for the following recommendation types: - // KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, TEXT_AD - optional string ad_group = 26 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. Whether the recommendation is dismissed or not. - optional bool dismissed = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The details of recommendation. - oneof recommendation { - // Output only. The campaign budget recommendation. - CampaignBudgetRecommendation campaign_budget_recommendation = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The forecasting campaign budget recommendation. - CampaignBudgetRecommendation forecasting_campaign_budget_recommendation = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The keyword recommendation. - KeywordRecommendation keyword_recommendation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Add expanded text ad recommendation. - TextAdRecommendation text_ad_recommendation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The TargetCPA opt-in recommendation. - TargetCpaOptInRecommendation target_cpa_opt_in_recommendation = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The MaximizeConversions Opt-In recommendation. - MaximizeConversionsOptInRecommendation maximize_conversions_opt_in_recommendation = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Enhanced Cost-Per-Click Opt-In recommendation. - EnhancedCpcOptInRecommendation enhanced_cpc_opt_in_recommendation = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Search Partners Opt-In recommendation. - SearchPartnersOptInRecommendation search_partners_opt_in_recommendation = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The MaximizeClicks Opt-In recommendation. - MaximizeClicksOptInRecommendation maximize_clicks_opt_in_recommendation = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Optimize Ad Rotation recommendation. - OptimizeAdRotationRecommendation optimize_ad_rotation_recommendation = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Callout extension recommendation. - CalloutExtensionRecommendation callout_extension_recommendation = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Sitelink extension recommendation. - SitelinkExtensionRecommendation sitelink_extension_recommendation = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Call extension recommendation. - CallExtensionRecommendation call_extension_recommendation = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The keyword match type recommendation. - KeywordMatchTypeRecommendation keyword_match_type_recommendation = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The move unused budget recommendation. - MoveUnusedBudgetRecommendation move_unused_budget_recommendation = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Target ROAS opt-in recommendation. - TargetRoasOptInRecommendation target_roas_opt_in_recommendation = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The add responsive search ad recommendation. - ResponsiveSearchAdRecommendation responsive_search_ad_recommendation = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The marginal ROI campaign budget recommendation. - CampaignBudgetRecommendation marginal_roi_campaign_budget_recommendation = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v7/resources/remarketing_action.proto b/google/ads/googleads/v7/resources/remarketing_action.proto deleted file mode 100644 index 67441ea33..000000000 --- a/google/ads/googleads/v7/resources/remarketing_action.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/tag_snippet.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "RemarketingActionProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Remarketing Action resource. - -// A remarketing action. A snippet of JavaScript code that will collect the -// product id and the type of page people visited (product page, shopping cart -// page, purchase page, general site visit) on an advertiser's website. -message RemarketingAction { - option (google.api.resource) = { - type: "googleads.googleapis.com/RemarketingAction" - pattern: "customers/{customer_id}/remarketingActions/{remarketing_action_id}" - }; - - // Immutable. The resource name of the remarketing action. - // Remarketing action resource names have the form: - // - // `customers/{customer_id}/remarketingActions/{remarketing_action_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/RemarketingAction" - } - ]; - - // Output only. Id of the remarketing action. - optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the remarketing action. - // - // This field is required and should not be empty when creating new - // remarketing actions. - optional string name = 6; - - // Output only. The snippets used for tracking remarketing actions. - repeated google.ads.googleads.v7.common.TagSnippet tag_snippets = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/search_term_view.proto b/google/ads/googleads/v7/resources/search_term_view.proto deleted file mode 100644 index 9572fc1f9..000000000 --- a/google/ads/googleads/v7/resources/search_term_view.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/search_term_targeting_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "SearchTermViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the SearchTermView resource. - -// A search term view with metrics aggregated by search term at the ad group -// level. -message SearchTermView { - option (google.api.resource) = { - type: "googleads.googleapis.com/SearchTermView" - pattern: "customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{query}" - }; - - // Output only. The resource name of the search term view. - // Search term view resource names have the form: - // - // `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL-base64_search_term}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SearchTermView" - } - ]; - - // Output only. The search term. - optional string search_term = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ad group the search term served in. - optional string ad_group = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. Indicates whether the search term is currently one of your - // targeted or excluded keywords. - google.ads.googleads.v7.enums.SearchTermTargetingStatusEnum.SearchTermTargetingStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/shared_criterion.proto b/google/ads/googleads/v7/resources/shared_criterion.proto deleted file mode 100644 index c80d3b41a..000000000 --- a/google/ads/googleads/v7/resources/shared_criterion.proto +++ /dev/null @@ -1,92 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/enums/criterion_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "SharedCriterionProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the SharedCriterion resource. - -// A criterion belonging to a shared set. -message SharedCriterion { - option (google.api.resource) = { - type: "googleads.googleapis.com/SharedCriterion" - pattern: "customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}" - }; - - // Immutable. The resource name of the shared criterion. - // Shared set resource names have the form: - // - // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedCriterion" - } - ]; - - // Immutable. The shared set to which the shared criterion belongs. - optional string shared_set = 10 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; - - // Output only. The ID of the criterion. - // - // This field is ignored for mutates. - optional int64 criterion_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of the criterion. - google.ads.googleads.v7.enums.CriterionTypeEnum.CriterionType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The criterion. - // - // Exactly one must be set. - oneof criterion { - // Immutable. Keyword. - google.ads.googleads.v7.common.KeywordInfo keyword = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Video. - google.ads.googleads.v7.common.YouTubeVideoInfo youtube_video = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Channel. - google.ads.googleads.v7.common.YouTubeChannelInfo youtube_channel = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Placement. - google.ads.googleads.v7.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile App Category. - google.ads.googleads.v7.common.MobileAppCategoryInfo mobile_app_category = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile application. - google.ads.googleads.v7.common.MobileApplicationInfo mobile_application = 9 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v7/resources/shared_set.proto b/google/ads/googleads/v7/resources/shared_set.proto deleted file mode 100644 index 3f4ab0b9b..000000000 --- a/google/ads/googleads/v7/resources/shared_set.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/enums/shared_set_status.proto"; -import "google/ads/googleads/v7/enums/shared_set_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the SharedSet resource. - -// SharedSets are used for sharing criterion exclusions across multiple -// campaigns. -message SharedSet { - option (google.api.resource) = { - type: "googleads.googleapis.com/SharedSet" - pattern: "customers/{customer_id}/sharedSets/{shared_set_id}" - }; - - // Immutable. The resource name of the shared set. - // Shared set resource names have the form: - // - // `customers/{customer_id}/sharedSets/{shared_set_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; - - // Output only. The ID of this shared set. Read only. - optional int64 id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The type of this shared set: each shared set holds only a single kind - // of resource. Required. Immutable. - google.ads.googleads.v7.enums.SharedSetTypeEnum.SharedSetType type = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // The name of this shared set. Required. - // Shared Sets must have names that are unique among active shared sets of - // the same type. - // The length of this string should be between 1 and 255 UTF-8 bytes, - // inclusive. - optional string name = 9; - - // Output only. The status of this shared set. Read only. - google.ads.googleads.v7.enums.SharedSetStatusEnum.SharedSetStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of shared criteria within this shared set. Read only. - optional int64 member_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of campaigns associated with this shared set. Read only. - optional int64 reference_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/shopping_performance_view.proto b/google/ads/googleads/v7/resources/shopping_performance_view.proto deleted file mode 100644 index 2218f5e0c..000000000 --- a/google/ads/googleads/v7/resources/shopping_performance_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ShoppingPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the ShoppingPerformanceView resource. - -// Shopping performance view. -// Provides Shopping campaign statistics aggregated at several product dimension -// levels. Product dimension values from Merchant Center such as brand, -// category, custom attributes, product condition and product type will reflect -// the state of each dimension as of the date and time when the corresponding -// event was recorded. -message ShoppingPerformanceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ShoppingPerformanceView" - pattern: "customers/{customer_id}/shoppingPerformanceView" - }; - - // Output only. The resource name of the Shopping performance view. - // Shopping performance view resource names have the form: - // `customers/{customer_id}/shoppingPerformanceView` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ShoppingPerformanceView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/third_party_app_analytics_link.proto b/google/ads/googleads/v7/resources/third_party_app_analytics_link.proto deleted file mode 100644 index 5c0e71ecb..000000000 --- a/google/ads/googleads/v7/resources/third_party_app_analytics_link.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ThirdPartyAppAnalyticsLinkProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// A data sharing connection, allowing the import of third party app analytics -// into a Google Ads Customer. -message ThirdPartyAppAnalyticsLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" - pattern: "customers/{customer_id}/thirdPartyAppAnalyticsLinks/{customer_link_id}" - }; - - // Immutable. The resource name of the third party app analytics link. - // Third party app analytics link resource names have the form: - // - // `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{account_link_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" - } - ]; - - // Output only. The shareable link ID that should be provided to the third party when - // setting up app analytics. This is able to be regenerated using regenerate - // method in the ThirdPartyAppAnalyticsLinkService. - optional string shareable_link_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/topic_constant.proto b/google/ads/googleads/v7/resources/topic_constant.proto deleted file mode 100644 index f91308548..000000000 --- a/google/ads/googleads/v7/resources/topic_constant.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "TopicConstantProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the Topic Constant resource. - -// Use topics to target or exclude placements in the Google Display Network -// based on the category into which the placement falls (for example, -// "Pets & Animals/Pets/Dogs"). -message TopicConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/TopicConstant" - pattern: "topicConstants/{topic_id}" - }; - - // Output only. The resource name of the topic constant. - // topic constant resource names have the form: - // - // `topicConstants/{topic_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicConstant" - } - ]; - - // Output only. The ID of the topic. - optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Resource name of parent of the topic constant. - optional string topic_constant_parent = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicConstant" - } - ]; - - // Output only. The category to target or exclude. Each subsequent element in the array - // describes a more specific sub-category. For example, - // {"Pets & Animals", "Pets", "Dogs"} represents the - // "Pets & Animals/Pets/Dogs" category. List of available topic categories at - // https://developers.google.com/adwords/api/docs/appendix/verticals - repeated string path = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/topic_view.proto b/google/ads/googleads/v7/resources/topic_view.proto deleted file mode 100644 index 5782dc91c..000000000 --- a/google/ads/googleads/v7/resources/topic_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "TopicViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the topic view resource. - -// A topic view. -message TopicView { - option (google.api.resource) = { - type: "googleads.googleapis.com/TopicView" - pattern: "customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the topic view. - // Topic view resource names have the form: - // - // `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicView" - } - ]; -} diff --git a/google/ads/googleads/v7/resources/user_interest.proto b/google/ads/googleads/v7/resources/user_interest.proto deleted file mode 100644 index 2cc674687..000000000 --- a/google/ads/googleads/v7/resources/user_interest.proto +++ /dev/null @@ -1,76 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/criterion_category_availability.proto"; -import "google/ads/googleads/v7/enums/user_interest_taxonomy_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "UserInterestProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the User Interest resource. - -// A user interest: a particular interest-based vertical to be targeted. -message UserInterest { - option (google.api.resource) = { - type: "googleads.googleapis.com/UserInterest" - pattern: "customers/{customer_id}/userInterests/{user_interest_id}" - }; - - // Output only. The resource name of the user interest. - // User interest resource names have the form: - // - // `customers/{customer_id}/userInterests/{user_interest_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserInterest" - } - ]; - - // Output only. Taxonomy type of the user interest. - google.ads.googleads.v7.enums.UserInterestTaxonomyTypeEnum.UserInterestTaxonomyType taxonomy_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ID of the user interest. - optional int64 user_interest_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the user interest. - optional string name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The parent of the user interest. - optional string user_interest_parent = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserInterest" - } - ]; - - // Output only. True if the user interest is launched to all channels and locales. - optional bool launched_to_all = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Availability information of the user interest. - repeated google.ads.googleads.v7.common.CriterionCategoryAvailability availabilities = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/user_list.proto b/google/ads/googleads/v7/resources/user_list.proto deleted file mode 100644 index 79bce0a93..000000000 --- a/google/ads/googleads/v7/resources/user_list.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v7.resources; - -import "google/ads/googleads/v7/common/user_lists.proto"; -import "google/ads/googleads/v7/enums/access_reason.proto"; -import "google/ads/googleads/v7/enums/user_list_access_status.proto"; -import "google/ads/googleads/v7/enums/user_list_closing_reason.proto"; -import "google/ads/googleads/v7/enums/user_list_membership_status.proto"; -import "google/ads/googleads/v7/enums/user_list_size_range.proto"; -import "google/ads/googleads/v7/enums/user_list_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "UserListProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the User List resource. - -// A user list. This is a list of users a customer may target. -message UserList { - option (google.api.resource) = { - type: "googleads.googleapis.com/UserList" - pattern: "customers/{customer_id}/userLists/{user_list_id}" - }; - - // Immutable. The resource name of the user list. - // User list resource names have the form: - // - // `customers/{customer_id}/userLists/{user_list_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - } - ]; - - // Output only. Id of the user list. - optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A flag that indicates if a user may edit a list. Depends on the list - // ownership and list type. For example, external remarketing user lists are - // not editable. - // - // This field is read-only. - optional bool read_only = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Name of this user list. Depending on its access_reason, the user list name - // may not be unique (e.g. if access_reason=SHARED) - optional string name = 27; - - // Description of this user list. - optional string description = 28; - - // 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.v7.enums.UserListMembershipStatusEnum.UserListMembershipStatus membership_status = 6; - - // An ID from external system. It is used by user list sellers to correlate - // IDs on their systems. - optional string integration_code = 29; - - // Number of days a user's cookie stays on your list since its most recent - // addition to the list. This field must be between 0 and 540 inclusive. - // However, for CRM based userlists, this field can be set to 10000 which - // means no expiration. - // - // It'll be ignored for logical_user_list. - optional int64 membership_life_span = 30; - - // Output only. Estimated number of users in this user list, on the Google Display Network. - // This value is null if the number of users has not yet been determined. - // - // This field is read-only. - optional int64 size_for_display = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Size range in terms of number of users of the UserList, on the Google - // Display Network. - // - // This field is read-only. - google.ads.googleads.v7.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 domain. - // These are the users available for targeting in Search campaigns. - // This value is null if the number of users has not yet been determined. - // - // This field is read-only. - optional int64 size_for_search = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Size range in terms of number of users of the UserList, for Search ads. - // - // This field is read-only. - google.ads.googleads.v7.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.v7.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.v7.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.v7.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.v7.enums.UserListAccessStatusEnum.UserListAccessStatus account_user_list_status = 16; - - // Indicates if this user list is eligible for Google Search Network. - optional bool eligible_for_search = 33; - - // Output only. Indicates this user list is eligible for Google Display Network. - // - // This field is read-only. - optional bool eligible_for_display = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates match rate for Customer Match lists. The range of this field is - // [0-100]. This will be null for other list types or when it's not possible - // to calculate the match rate. - // - // This field is read-only. - optional int32 match_rate_percentage = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The user list. - // - // Exactly one must be set. - oneof user_list { - // User list of CRM users provided by the advertiser. - google.ads.googleads.v7.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.v7.common.SimilarUserListInfo similar_user_list = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // User list generated by a rule. - google.ads.googleads.v7.common.RuleBasedUserListInfo rule_based_user_list = 21; - - // User list that is a custom combination of user lists and user interests. - google.ads.googleads.v7.common.LogicalUserListInfo logical_user_list = 22; - - // User list targeting as a collection of conversion or remarketing actions. - google.ads.googleads.v7.common.BasicUserListInfo basic_user_list = 23; - } -} diff --git a/google/ads/googleads/v7/resources/user_location_view.proto b/google/ads/googleads/v7/resources/user_location_view.proto deleted file mode 100644 index 9a45d8ebe..000000000 --- a/google/ads/googleads/v7/resources/user_location_view.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "UserLocationViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the user location view resource. - -// A user location view. -// -// User Location View includes all metrics aggregated at the country level, -// one row per country. It reports metrics at the actual physical location of -// the user by targeted or not targeted location. If other segment fields are -// used, you may get more than one row per country. -message UserLocationView { - option (google.api.resource) = { - type: "googleads.googleapis.com/UserLocationView" - pattern: "customers/{customer_id}/userLocationViews/{country_criterion_id}~{is_targeting_location}" - }; - - // Output only. The resource name of the user location view. - // UserLocation view resource names have the form: - // - // `customers/{customer_id}/userLocationViews/{country_criterion_id}~{targeting_location}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserLocationView" - } - ]; - - // Output only. Criterion Id for the country. - optional int64 country_criterion_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates whether location was targeted or not. - optional bool targeting_location = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/video.proto b/google/ads/googleads/v7/resources/video.proto deleted file mode 100644 index e1f6b70ae..000000000 --- a/google/ads/googleads/v7/resources/video.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "VideoProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the video resource. - -// A video. -message Video { - option (google.api.resource) = { - type: "googleads.googleapis.com/Video" - pattern: "customers/{customer_id}/videos/{video_id}" - }; - - // Output only. The resource name of the video. - // Video resource names have the form: - // - // `customers/{customer_id}/videos/{video_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Video" - } - ]; - - // Output only. The ID of the video. - optional string id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The owner channel id of the video. - optional string channel_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The duration of the video in milliseconds. - optional int64 duration_millis = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The title of the video. - optional string title = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v7/resources/webpage_view.proto b/google/ads/googleads/v7/resources/webpage_view.proto deleted file mode 100644 index 32c1eb688..000000000 --- a/google/ads/googleads/v7/resources/webpage_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v7.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "WebpageViewProto"; -option java_package = "com.google.ads.googleads.v7.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V7::Resources"; - -// Proto file describing the webpage view resource. - -// A webpage view. -message WebpageView { - option (google.api.resource) = { - type: "googleads.googleapis.com/WebpageView" - pattern: "customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the webpage view. - // Webpage view resource names have the form: - // - // `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/WebpageView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/BUILD.bazel b/google/ads/googleads/v7/services/BUILD.bazel deleted file mode 100644 index 5a8763d6d..000000000 --- a/google/ads/googleads/v7/services/BUILD.bazel +++ /dev/null @@ -1,138 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -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") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports -# subpackages. -proto_library( - name = "services_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/ads/googleads/v7/common:common_proto", - "//google/ads/googleads/v7/enums:enums_proto", - "//google/ads/googleads/v7/errors:errors_proto", - "//google/ads/googleads/v7/resources:resources_proto", - "//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//:empty_proto", - "@com_google_protobuf//:field_mask_proto", - "@com_google_protobuf//:wrappers_proto", - ], -) - -proto_library_with_info( - name = "services_proto_with_info", - deps = [ - ":services_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_grpc_library", - "java_proto_library", -) - -java_proto_library( - name = "services_java_proto", - deps = [":services_proto"], -) - -java_grpc_library( - name = "services_java_grpc", - srcs = [":services_proto"], - deps = [":services_java_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_grpc_library", - "csharp_proto_library", -) - -csharp_proto_library( - name = "services_csharp_proto", - deps = [":services_proto"], -) - -csharp_grpc_library( - name = "services_csharp_grpc", - srcs = [":services_proto"], - deps = [":services_csharp_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_grpc_library", - "ruby_proto_library", -) - -ruby_proto_library( - name = "services_ruby_proto", - deps = [":services_proto"], -) - -ruby_grpc_library( - name = "services_ruby_grpc", - srcs = [":services_proto"], - deps = [":services_ruby_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_grpc_library", - "py_proto_library", -) - -py_proto_library( - name = "services_py_proto", - deps = [":services_proto"], -) - -py_grpc_library( - name = "services_py_grpc", - srcs = [":services_proto"], - deps = [":services_py_proto"], -) diff --git a/google/ads/googleads/v7/services/account_budget_proposal_service.proto b/google/ads/googleads/v7/services/account_budget_proposal_service.proto deleted file mode 100644 index 3db7dab91..000000000 --- a/google/ads/googleads/v7/services/account_budget_proposal_service.proto +++ /dev/null @@ -1,161 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AccountBudgetProposal service. - -// A service for managing account-level budgets via proposals. -// -// A proposal is a request to create a new budget or make changes to an -// existing one. -// -// Reads for account-level budgets managed by these proposals will be -// supported in a future version. Until then, please use the -// BudgetOrderService from the AdWords API. Learn more at -// https://developers.google.com/adwords/api/docs/guides/budget-order -// -// Mutates: -// The CREATE operation creates a new proposal. -// UPDATE operations aren't supported. -// The REMOVE operation cancels a pending proposal. -service AccountBudgetProposalService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns an account-level budget proposal in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAccountBudgetProposal(GetAccountBudgetProposalRequest) returns (google.ads.googleads.v7.resources.AccountBudgetProposal) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/accountBudgetProposals/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes account budget proposals. Operation statuses - // are returned. - // - // List of thrown errors: - // [AccountBudgetProposalError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DateError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - // [StringLengthError]() - rpc MutateAccountBudgetProposal(MutateAccountBudgetProposalRequest) returns (MutateAccountBudgetProposalResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/accountBudgetProposals:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [AccountBudgetProposalService.GetAccountBudgetProposal][google.ads.googleads.v7.services.AccountBudgetProposalService.GetAccountBudgetProposal]. -message GetAccountBudgetProposalRequest { - // Required. The resource name of the account-level budget proposal to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudgetProposal" - } - ]; -} - -// Request message for -// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v7.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. -message MutateAccountBudgetProposalRequest { - // Required. The ID of the customer. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on an individual account-level budget proposal. - AccountBudgetProposalOperation 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 operation to propose the creation of a new account-level budget or -// edit/end/remove an existing one. -message AccountBudgetProposalOperation { - // FieldMask that determines which budget fields are modified. While budgets - // may be modified, proposals that propose such modifications are final. - // Therefore, update operations are not supported for proposals. - // - // Proposals that modify budgets have the 'update' proposal type. Specifying - // a mask for any other proposal type is considered an error. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Create operation: A new proposal to create a new budget, edit an - // 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.v7.resources.AccountBudgetProposal create = 2; - - // Remove operation: A resource name for the removed proposal is expected, - // in this format: - // - // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` - // A request may be cancelled iff it is pending. - string remove = 1; - } -} - -// Response message for account-level budget mutate operations. -message MutateAccountBudgetProposalResponse { - // The result of the mutate. - MutateAccountBudgetProposalResult result = 2; -} - -// The result for the account budget proposal mutate. -message MutateAccountBudgetProposalResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/account_budget_service.proto b/google/ads/googleads/v7/services/account_budget_service.proto deleted file mode 100644 index 84c5f1f29..000000000 --- a/google/ads/googleads/v7/services/account_budget_service.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/account_budget.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AccountBudget service. - -// A service for fetching an account-level budget. -// -// Account-level budgets are mutated by creating proposal resources. -service AccountBudgetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns an account-level budget in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAccountBudget(GetAccountBudgetRequest) returns (google.ads.googleads.v7.resources.AccountBudget) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/accountBudgets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [AccountBudgetService.GetAccountBudget][google.ads.googleads.v7.services.AccountBudgetService.GetAccountBudget]. -message GetAccountBudgetRequest { - // Required. The resource name of the account-level budget to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudget" - } - ]; -} diff --git a/google/ads/googleads/v7/services/account_link_service.proto b/google/ads/googleads/v7/services/account_link_service.proto deleted file mode 100644 index c106b4f10..000000000 --- a/google/ads/googleads/v7/services/account_link_service.proto +++ /dev/null @@ -1,178 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/account_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AccountLinkServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// This service allows management of links between Google Ads accounts and other -// accounts. -service AccountLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the account link in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAccountLink(GetAccountLinkRequest) returns (google.ads.googleads.v7.resources.AccountLink) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/accountLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates an account link. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - // [ThirdPartyAppAnalyticsLinkError]() - rpc CreateAccountLink(CreateAccountLinkRequest) returns (CreateAccountLinkResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/accountLinks:create" - body: "*" - }; - option (google.api.method_signature) = "customer_id,account_link"; - } - - // Creates or removes an account link. - // From V5, create is not supported through - // AccountLinkService.MutateAccountLink. Please use - // AccountLinkService.CreateAccountLink instead. - // - // List of thrown errors: - // [AccountLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAccountLink(MutateAccountLinkRequest) returns (MutateAccountLinkResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/accountLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for [AccountLinkService.GetAccountLink][google.ads.googleads.v7.services.AccountLinkService.GetAccountLink]. -message GetAccountLinkRequest { - // Required. Resource name of the account link. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountLink" - } - ]; -} - -// Request message for -// [AccountLinkService.CreateAccountLink][google.ads.googleads.v7.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.v7.resources.AccountLink account_link = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for -// [AccountLinkService.CreateAccountLink][google.ads.googleads.v7.services.AccountLinkService.CreateAccountLink]. -message CreateAccountLinkResponse { - // Returned for successful operations. Resource name of the account link. - string resource_name = 1; -} - -// Request message for [AccountLinkService.MutateAccountLink][google.ads.googleads.v7.services.AccountLinkService.MutateAccountLink]. -message MutateAccountLinkRequest { - // 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. - AccountLinkOperation operation = 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; -} - -// A single update on an account link. -message AccountLinkOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The operation to perform. - oneof operation { - // Update operation: The account link is expected to have - // a valid resource name. - google.ads.googleads.v7.resources.AccountLink update = 2; - - // Remove operation: A resource name for the account link to remove is - // expected, in this format: - // - // `customers/{customer_id}/accountLinks/{account_link_id}` - string remove = 3; - } -} - -// Response message for account link mutate. -message MutateAccountLinkResponse { - // Result for the mutate. - MutateAccountLinkResult result = 1; -} - -// The result for the account link mutate. -message MutateAccountLinkResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/ad_group_ad_asset_view_service.proto b/google/ads/googleads/v7/services/ad_group_ad_asset_view_service.proto deleted file mode 100644 index 803a4a4ba..000000000 --- a/google/ads/googleads/v7/services/ad_group_ad_asset_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/ad_group_ad_asset_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdAssetViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the ad group ad asset view service. - -// Service to fetch ad group ad asset views. -service AdGroupAdAssetViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group ad asset view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupAdAssetView(GetAdGroupAdAssetViewRequest) returns (google.ads.googleads.v7.resources.AdGroupAdAssetView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupAdAssetViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AdGroupAdAssetViewService.GetAdGroupAdAssetView][google.ads.googleads.v7.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView]. -message GetAdGroupAdAssetViewRequest { - // Required. The resource name of the ad group ad asset view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdAssetView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/ad_group_ad_label_service.proto b/google/ads/googleads/v7/services/ad_group_ad_label_service.proto deleted file mode 100644 index 8b9ab441c..000000000 --- a/google/ads/googleads/v7/services/ad_group_ad_label_service.proto +++ /dev/null @@ -1,144 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdLabelServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad Group Ad Label service. - -// Service to manage labels on ad group ads. -service AdGroupAdLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group ad label in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupAdLabel(GetAdGroupAdLabelRequest) returns (google.ads.googleads.v7.resources.AdGroupAdLabel) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupAdLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes ad group ad labels. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [HeaderError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdGroupAdLabels(MutateAdGroupAdLabelsRequest) returns (MutateAdGroupAdLabelsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupAdLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupAdLabelService.GetAdGroupAdLabel][google.ads.googleads.v7.services.AdGroupAdLabelService.GetAdGroupAdLabel]. -message GetAdGroupAdLabelRequest { - // Required. The resource name of the ad group ad label to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdLabel" - } - ]; -} - -// Request message for [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on ad group ad labels. - repeated AdGroupAdLabelOperation 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; -} - -// A single operation (create, remove) on an ad group ad label. -message AdGroupAdLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group ad - // label. - google.ads.googleads.v7.resources.AdGroupAdLabel create = 1; - - // Remove operation: A resource name for the ad group ad label - // being removed, in this format: - // - // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id} - // _{label_id}` - string remove = 2; - } -} - -// Response message for an ad group ad labels mutate. -message MutateAdGroupAdLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupAdLabelResult results = 2; -} - -// The result for an ad group ad label mutate. -message MutateAdGroupAdLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/ad_group_ad_service.proto b/google/ads/googleads/v7/services/ad_group_ad_service.proto deleted file mode 100644 index 797dae0b0..000000000 --- a/google/ads/googleads/v7/services/ad_group_ad_service.proto +++ /dev/null @@ -1,195 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/ad_group_ad.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad Group Ad service. - -// Service to manage ads in an ad group. -service AdGroupAdService { - 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 GetAdGroupAd(GetAdGroupAdRequest) returns (google.ads.googleads.v7.resources.AdGroupAd) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupAds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ads. Operation statuses are returned. - // - // List of thrown errors: - // [AdCustomizerError]() - // [AdError]() - // [AdGroupAdError]() - // [AdSharingError]() - // [AdxError]() - // [AssetError]() - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [ContextError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FeedAttributeReferenceError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [ImageError]() - // [InternalError]() - // [ListOperationError]() - // [MediaBundleError]() - // [MediaFileError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [PolicyFindingError]() - // [PolicyValidationParameterError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAdGroupAds(MutateAdGroupAdsRequest) returns (MutateAdGroupAdsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupAds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupAdService.GetAdGroupAd][google.ads.googleads.v7.services.AdGroupAdService.GetAdGroupAd]. -message GetAdGroupAdRequest { - // 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/AdGroupAd" - } - ]; -} - -// Request message for [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual ads. - repeated AdGroupAdOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an ad group ad. -message AdGroupAdOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // Configuration for how policies are validated. - google.ads.googleads.v7.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.v7.resources.AdGroupAd create = 1; - - // Update operation: The ad is expected to have a valid resource name. - google.ads.googleads.v7.resources.AdGroupAd update = 2; - - // Remove operation: A resource name for the removed ad is expected, - // in this format: - // - // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}` - string remove = 3; - } -} - -// Response message for an ad group ad mutate. -message MutateAdGroupAdsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupAdResult results = 2; -} - -// The result for the ad mutate. -message MutateAdGroupAdResult { - // The resource name returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.AdGroupAd ad_group_ad = 2; -} diff --git a/google/ads/googleads/v7/services/ad_group_asset_service.proto b/google/ads/googleads/v7/services/ad_group_asset_service.proto deleted file mode 100644 index 9f89f8384..000000000 --- a/google/ads/googleads/v7/services/ad_group_asset_service.proto +++ /dev/null @@ -1,152 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/ad_group_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAssetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AdGroupAsset service. - -// Service to manage ad group assets. -service AdGroupAssetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group asset in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupAsset(GetAdGroupAssetRequest) returns (google.ads.googleads.v7.resources.AdGroupAsset) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupAssets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad group assets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NotAllowlistedError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdGroupAssets(MutateAdGroupAssetsRequest) returns (MutateAdGroupAssetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupAssets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupAssetService.GetAdGroupAsset][google.ads.googleads.v7.services.AdGroupAssetService.GetAdGroupAsset]. -message GetAdGroupAssetRequest { - // Required. The resource name of the ad group asset to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAsset" - } - ]; -} - -// Request message for [AdGroupAssetService.MutateAdGroupAssets][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual ad group assets. - repeated AdGroupAssetOperation 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; -} - -// A single operation (create, update, remove) on an ad group asset. -message AdGroupAssetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group - // asset. - google.ads.googleads.v7.resources.AdGroupAsset create = 1; - - // Update operation: The ad group asset is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.AdGroupAsset update = 3; - - // Remove operation: A resource name for the removed ad group asset is - // expected, in this format: - // - // `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}` - string remove = 2; - } -} - -// Response message for an ad group asset mutate. -message MutateAdGroupAssetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateAdGroupAssetResult results = 2; -} - -// The result for the ad group asset mutate. -message MutateAdGroupAssetResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/ad_group_audience_view_service.proto b/google/ads/googleads/v7/services/ad_group_audience_view_service.proto deleted file mode 100644 index 5e4e5f328..000000000 --- a/google/ads/googleads/v7/services/ad_group_audience_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/ad_group_audience_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAudienceViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AdGroup Audience View service. - -// Service to manage ad group audience views. -service AdGroupAudienceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group audience view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupAudienceView(GetAdGroupAudienceViewRequest) returns (google.ads.googleads.v7.resources.AdGroupAudienceView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupAudienceViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AdGroupAudienceViewService.GetAdGroupAudienceView][google.ads.googleads.v7.services.AdGroupAudienceViewService.GetAdGroupAudienceView]. -message GetAdGroupAudienceViewRequest { - // Required. The resource name of the ad group audience view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAudienceView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/ad_group_bid_modifier_service.proto b/google/ads/googleads/v7/services/ad_group_bid_modifier_service.proto deleted file mode 100644 index 1702bed3f..000000000 --- a/google/ads/googleads/v7/services/ad_group_bid_modifier_service.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/ad_group_bid_modifier.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupBidModifierServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad Group Bid Modifier service. - -// Service to manage ad group bid modifiers. -service AdGroupBidModifierService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group bid modifier in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupBidModifier(GetAdGroupBidModifierRequest) returns (google.ads.googleads.v7.resources.AdGroupBidModifier) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupBidModifiers/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad group bid modifiers. - // Operation statuses are returned. - // - // List of thrown errors: - // [AdGroupBidModifierError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [CriterionError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateAdGroupBidModifiers(MutateAdGroupBidModifiersRequest) returns (MutateAdGroupBidModifiersResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupBidModifiers:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupBidModifierService.GetAdGroupBidModifier][google.ads.googleads.v7.services.AdGroupBidModifierService.GetAdGroupBidModifier]. -message GetAdGroupBidModifierRequest { - // Required. The resource name of the ad group bid modifier to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupBidModifier" - } - ]; -} - -// Request message for [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v7.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. -message MutateAdGroupBidModifiersRequest { - // Required. ID of the customer whose ad group bid modifiers are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual ad group bid modifiers. - repeated AdGroupBidModifierOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on an ad group bid modifier. -message AdGroupBidModifierOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group bid - // modifier. - google.ads.googleads.v7.resources.AdGroupBidModifier create = 1; - - // Update operation: The ad group bid modifier is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.AdGroupBidModifier update = 2; - - // Remove operation: A resource name for the removed ad group bid modifier - // is expected, in this format: - // - // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for ad group bid modifiers mutate. -message MutateAdGroupBidModifiersResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupBidModifierResult results = 2; -} - -// The result for the criterion mutate. -message MutateAdGroupBidModifierResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.AdGroupBidModifier ad_group_bid_modifier = 2; -} diff --git a/google/ads/googleads/v7/services/ad_group_criterion_label_service.proto b/google/ads/googleads/v7/services/ad_group_criterion_label_service.proto deleted file mode 100644 index 6aac7ec24..000000000 --- a/google/ads/googleads/v7/services/ad_group_criterion_label_service.proto +++ /dev/null @@ -1,143 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionLabelServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad Group Criterion Label service. - -// Service to manage labels on ad group criteria. -service AdGroupCriterionLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group criterion label in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupCriterionLabel(GetAdGroupCriterionLabelRequest) returns (google.ads.googleads.v7.resources.AdGroupCriterionLabel) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupCriterionLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes ad group criterion labels. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdGroupCriterionLabels(MutateAdGroupCriterionLabelsRequest) returns (MutateAdGroupCriterionLabelsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupCriterionLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [AdGroupCriterionLabelService.GetAdGroupCriterionLabel][google.ads.googleads.v7.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel]. -message GetAdGroupCriterionLabelRequest { - // Required. The resource name of the ad group criterion label to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionLabel" - } - ]; -} - -// Request message for -// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v7.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels]. -message MutateAdGroupCriterionLabelsRequest { - // Required. ID of the customer whose ad group criterion labels are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on ad group criterion labels. - repeated AdGroupCriterionLabelOperation 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; -} - -// A single operation (create, remove) on an ad group criterion label. -message AdGroupCriterionLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group - // label. - google.ads.googleads.v7.resources.AdGroupCriterionLabel create = 1; - - // Remove operation: A resource name for the ad group criterion label - // being removed, in this format: - // - // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}` - string remove = 2; - } -} - -// Response message for an ad group criterion labels mutate. -message MutateAdGroupCriterionLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupCriterionLabelResult results = 2; -} - -// The result for an ad group criterion label mutate. -message MutateAdGroupCriterionLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/ad_group_criterion_service.proto b/google/ads/googleads/v7/services/ad_group_criterion_service.proto deleted file mode 100644 index 675d58f11..000000000 --- a/google/ads/googleads/v7/services/ad_group_criterion_service.proto +++ /dev/null @@ -1,194 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/ad_group_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad Group Criterion service. - -// Service to manage ad group criteria. -service AdGroupCriterionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested criterion in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupCriterion(GetAdGroupCriterionRequest) returns (google.ads.googleads.v7.resources.AdGroupCriterion) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupCriteria/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes criteria. Operation statuses are returned. - // - // List of thrown errors: - // [AdGroupCriterionError]() - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [BiddingStrategyError]() - // [CollectionSizeError]() - // [ContextError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MultiplierError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAdGroupCriteria(MutateAdGroupCriteriaRequest) returns (MutateAdGroupCriteriaResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupCriteria:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupCriterionService.GetAdGroupCriterion][google.ads.googleads.v7.services.AdGroupCriterionService.GetAdGroupCriterion]. -message GetAdGroupCriterionRequest { - // Required. The resource name of the criterion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; -} - -// Request message for [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v7.services.AdGroupCriterionService.MutateAdGroupCriteria]. -message MutateAdGroupCriteriaRequest { - // Required. ID of the customer whose criteria are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual criteria. - repeated AdGroupCriterionOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on an ad group criterion. -message AdGroupCriterionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The list of policy violation keys that should not cause a - // PolicyViolationError to be reported. Not all policy violations are - // exemptable, please 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.v7.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.v7.resources.AdGroupCriterion create = 1; - - // Update operation: The criterion is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.AdGroupCriterion update = 2; - - // Remove operation: A resource name for the removed criterion is expected, - // in this format: - // - // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for an ad group criterion mutate. -message MutateAdGroupCriteriaResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupCriterionResult results = 2; -} - -// The result for the criterion mutate. -message MutateAdGroupCriterionResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.AdGroupCriterion ad_group_criterion = 2; -} diff --git a/google/ads/googleads/v7/services/ad_group_criterion_simulation_service.proto b/google/ads/googleads/v7/services/ad_group_criterion_simulation_service.proto deleted file mode 100644 index 2d1de9769..000000000 --- a/google/ads/googleads/v7/services/ad_group_criterion_simulation_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/ad_group_criterion_simulation.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionSimulationServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AdGroupCriterionSimulation service. - -// Service to fetch ad group criterion simulations. -service AdGroupCriterionSimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group criterion simulation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupCriterionSimulation(GetAdGroupCriterionSimulationRequest) returns (google.ads.googleads.v7.resources.AdGroupCriterionSimulation) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupCriterionSimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation][google.ads.googleads.v7.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation]. -message GetAdGroupCriterionSimulationRequest { - // Required. The resource name of the ad group criterion simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionSimulation" - } - ]; -} diff --git a/google/ads/googleads/v7/services/ad_group_extension_setting_service.proto b/google/ads/googleads/v7/services/ad_group_extension_setting_service.proto deleted file mode 100644 index e6378108a..000000000 --- a/google/ads/googleads/v7/services/ad_group_extension_setting_service.proto +++ /dev/null @@ -1,183 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/ad_group_extension_setting.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AdGroupExtensionSetting service. - -// Service to manage ad group extension settings. -service AdGroupExtensionSettingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group extension setting in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupExtensionSetting(GetAdGroupExtensionSettingRequest) returns (google.ads.googleads.v7.resources.AdGroupExtensionSetting) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupExtensionSettings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad group extension settings. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [ExtensionSettingError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAdGroupExtensionSettings(MutateAdGroupExtensionSettingsRequest) returns (MutateAdGroupExtensionSettingsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupExtensionSettings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [AdGroupExtensionSettingService.GetAdGroupExtensionSetting][google.ads.googleads.v7.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting]. -message GetAdGroupExtensionSettingRequest { - // Required. The resource name of the ad group extension setting to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupExtensionSetting" - } - ]; -} - -// Request message for -// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v7.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings]. -message MutateAdGroupExtensionSettingsRequest { - // Required. The ID of the customer whose ad group extension settings are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual ad group extension - // settings. - repeated AdGroupExtensionSettingOperation 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; -} - -// A single operation (create, update, remove) on an ad group extension setting. -message AdGroupExtensionSettingOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v7.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.v7.resources.AdGroupExtensionSetting create = 1; - - // Update operation: The ad group extension setting is expected to have a - // valid resource name. - google.ads.googleads.v7.resources.AdGroupExtensionSetting update = 2; - - // Remove operation: A resource name for the removed ad group extension - // setting is expected, in this format: - // - // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}` - string remove = 3; - } -} - -// Response message for an ad group extension setting mutate. -message MutateAdGroupExtensionSettingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupExtensionSettingResult results = 2; -} - -// The result for the ad group extension setting mutate. -message MutateAdGroupExtensionSettingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.AdGroupExtensionSetting ad_group_extension_setting = 2; -} diff --git a/google/ads/googleads/v7/services/ad_group_feed_service.proto b/google/ads/googleads/v7/services/ad_group_feed_service.proto deleted file mode 100644 index f7cf3950b..000000000 --- a/google/ads/googleads/v7/services/ad_group_feed_service.proto +++ /dev/null @@ -1,172 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/ad_group_feed.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupFeedServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AdGroupFeed service. - -// Service to manage ad group feeds. -service AdGroupFeedService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group feed in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupFeed(GetAdGroupFeedRequest) returns (google.ads.googleads.v7.resources.AdGroupFeed) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupFeeds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad group feeds. Operation statuses are - // returned. - // - // List of thrown errors: - // [AdGroupFeedError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateAdGroupFeeds(MutateAdGroupFeedsRequest) returns (MutateAdGroupFeedsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupFeeds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupFeedService.GetAdGroupFeed][google.ads.googleads.v7.services.AdGroupFeedService.GetAdGroupFeed]. -message GetAdGroupFeedRequest { - // Required. The resource name of the ad group feed to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupFeed" - } - ]; -} - -// Request message for [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual ad group feeds. - repeated AdGroupFeedOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an ad group feed. -message AdGroupFeedOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group feed. - google.ads.googleads.v7.resources.AdGroupFeed create = 1; - - // Update operation: The ad group feed is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.AdGroupFeed update = 2; - - // Remove operation: A resource name for the removed ad group feed is - // expected, in this format: - // - // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}` - string remove = 3; - } -} - -// Response message for an ad group feed mutate. -message MutateAdGroupFeedsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupFeedResult results = 2; -} - -// The result for the ad group feed mutate. -message MutateAdGroupFeedResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.AdGroupFeed ad_group_feed = 2; -} diff --git a/google/ads/googleads/v7/services/ad_group_label_service.proto b/google/ads/googleads/v7/services/ad_group_label_service.proto deleted file mode 100644 index 9839a3ca7..000000000 --- a/google/ads/googleads/v7/services/ad_group_label_service.proto +++ /dev/null @@ -1,144 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupLabelServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad Group Label service. - -// Service to manage labels on ad groups. -service AdGroupLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group label in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupLabel(GetAdGroupLabelRequest) returns (google.ads.googleads.v7.resources.AdGroupLabel) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes ad group labels. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdGroupLabels(MutateAdGroupLabelsRequest) returns (MutateAdGroupLabelsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroupLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupLabelService.GetAdGroupLabel][google.ads.googleads.v7.services.AdGroupLabelService.GetAdGroupLabel]. -message GetAdGroupLabelRequest { - // Required. The resource name of the ad group label to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupLabel" - } - ]; -} - -// Request message for [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on ad group labels. - repeated AdGroupLabelOperation 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; -} - -// A single operation (create, remove) on an ad group label. -message AdGroupLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group - // label. - google.ads.googleads.v7.resources.AdGroupLabel create = 1; - - // Remove operation: A resource name for the ad group label - // being removed, in this format: - // - // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}` - string remove = 2; - } -} - -// Response message for an ad group labels mutate. -message MutateAdGroupLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupLabelResult results = 2; -} - -// The result for an ad group label mutate. -message MutateAdGroupLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/ad_group_service.proto b/google/ads/googleads/v7/services/ad_group_service.proto deleted file mode 100644 index 22c88a569..000000000 --- a/google/ads/googleads/v7/services/ad_group_service.proto +++ /dev/null @@ -1,178 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/ad_group.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad Group service. - -// Service to manage ad groups. -service AdGroupService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroup(GetAdGroupRequest) returns (google.ads.googleads.v7.resources.AdGroup) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroups/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad groups. Operation statuses are returned. - // - // List of thrown errors: - // [AdGroupError]() - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [BiddingStrategyError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MultiplierError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SettingError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAdGroups(MutateAdGroupsRequest) returns (MutateAdGroupsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adGroups:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupService.GetAdGroup][google.ads.googleads.v7.services.AdGroupService.GetAdGroup]. -message GetAdGroupRequest { - // Required. The resource name of the ad group to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; -} - -// Request message for [AdGroupService.MutateAdGroups][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual ad groups. - repeated AdGroupOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an ad group. -message AdGroupOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group. - google.ads.googleads.v7.resources.AdGroup create = 1; - - // Update operation: The ad group is expected to have a valid resource name. - google.ads.googleads.v7.resources.AdGroup update = 2; - - // Remove operation: A resource name for the removed ad group is expected, - // in this format: - // - // `customers/{customer_id}/adGroups/{ad_group_id}` - string remove = 3; - } -} - -// Response message for an ad group mutate. -message MutateAdGroupsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupResult results = 2; -} - -// The result for the ad group mutate. -message MutateAdGroupResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.AdGroup ad_group = 2; -} diff --git a/google/ads/googleads/v7/services/ad_group_simulation_service.proto b/google/ads/googleads/v7/services/ad_group_simulation_service.proto deleted file mode 100644 index 68bd817a0..000000000 --- a/google/ads/googleads/v7/services/ad_group_simulation_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/ad_group_simulation.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupSimulationServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AdGroupSimulation service. - -// Service to fetch ad group simulations. -service AdGroupSimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group simulation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupSimulation(GetAdGroupSimulationRequest) returns (google.ads.googleads.v7.resources.AdGroupSimulation) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adGroupSimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AdGroupSimulationService.GetAdGroupSimulation][google.ads.googleads.v7.services.AdGroupSimulationService.GetAdGroupSimulation]. -message GetAdGroupSimulationRequest { - // Required. The resource name of the ad group simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupSimulation" - } - ]; -} diff --git a/google/ads/googleads/v7/services/ad_parameter_service.proto b/google/ads/googleads/v7/services/ad_parameter_service.proto deleted file mode 100644 index efa8766a2..000000000 --- a/google/ads/googleads/v7/services/ad_parameter_service.proto +++ /dev/null @@ -1,162 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/ad_parameter.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdParameterServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad Parameter service. - -// Service to manage ad parameters. -service AdParameterService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad parameter in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdParameter(GetAdParameterRequest) returns (google.ads.googleads.v7.resources.AdParameter) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adParameters/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad parameters. Operation statuses are - // returned. - // - // List of thrown errors: - // [AdParameterError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdParameters(MutateAdParametersRequest) returns (MutateAdParametersResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/adParameters:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdParameterService.GetAdParameter][google.ads.googleads.v7.services.AdParameterService.GetAdParameter] -message GetAdParameterRequest { - // Required. The resource name of the ad parameter to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdParameter" - } - ]; -} - -// Request message for [AdParameterService.MutateAdParameters][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual ad parameters. - repeated AdParameterOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on ad parameter. -message AdParameterOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad parameter. - google.ads.googleads.v7.resources.AdParameter create = 1; - - // Update operation: The ad parameter is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.AdParameter update = 2; - - // Remove operation: A resource name for the ad parameter to remove is - // expected in this format: - // - // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}` - string remove = 3; - } -} - -// Response message for an ad parameter mutate. -message MutateAdParametersResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdParameterResult results = 2; -} - -// The result for the ad parameter mutate. -message MutateAdParameterResult { - // The resource name returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.AdParameter ad_parameter = 2; -} diff --git a/google/ads/googleads/v7/services/ad_schedule_view_service.proto b/google/ads/googleads/v7/services/ad_schedule_view_service.proto deleted file mode 100644 index 93eacbc66..000000000 --- a/google/ads/googleads/v7/services/ad_schedule_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/ad_schedule_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdScheduleViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the AdSchedule View service. - -// Service to fetch ad schedule views. -service AdScheduleViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad schedule view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdScheduleView(GetAdScheduleViewRequest) returns (google.ads.googleads.v7.resources.AdScheduleView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/adScheduleViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AdScheduleViewService.GetAdScheduleView][google.ads.googleads.v7.services.AdScheduleViewService.GetAdScheduleView]. -message GetAdScheduleViewRequest { - // Required. The resource name of the ad schedule view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdScheduleView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/ad_service.proto b/google/ads/googleads/v7/services/ad_service.proto deleted file mode 100644 index 5899ae47d..000000000 --- a/google/ads/googleads/v7/services/ad_service.proto +++ /dev/null @@ -1,184 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/policy.proto"; -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/ad.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Ad service. - -// Service to manage ads. -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.v7.resources.Ad) { - option (google.api.http) = { - get: "/v7/{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. - // - // List of thrown errors: - // [AdCustomizerError]() - // [AdError]() - // [AdSharingError]() - // [AdxError]() - // [AssetError]() - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FeedAttributeReferenceError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [ImageError]() - // [InternalError]() - // [ListOperationError]() - // [MediaBundleError]() - // [MediaFileError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [PolicyFindingError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAds(MutateAdsRequest) returns (MutateAdsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/ads:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdService.GetAd][google.ads.googleads.v7.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.v7.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]; - - // Required. The list of operations to perform on individual ads. - repeated AdOperation 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 = 4; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 3; -} - -// A single update operation on an ad. -message AdOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 2; - - // Configuration for how policies are validated. - google.ads.googleads.v7.common.PolicyValidationParameter policy_validation_parameter = 3; - - // The mutate operation. - oneof operation { - // Update operation: The ad is expected to have a valid resource name - // in this format: - // - // `customers/{customer_id}/ads/{ad_id}` - google.ads.googleads.v7.resources.Ad update = 1; - } -} - -// Response message for an ad mutate. -message MutateAdsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdResult results = 2; -} - -// The result for the ad mutate. -message MutateAdResult { - // The resource name returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.Ad ad = 2; -} diff --git a/google/ads/googleads/v7/services/age_range_view_service.proto b/google/ads/googleads/v7/services/age_range_view_service.proto deleted file mode 100644 index 86a6c16fd..000000000 --- a/google/ads/googleads/v7/services/age_range_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/age_range_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AgeRangeViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Age Range View service. - -// Service to manage age range views. -service AgeRangeViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested age range view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAgeRangeView(GetAgeRangeViewRequest) returns (google.ads.googleads.v7.resources.AgeRangeView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/ageRangeViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AgeRangeViewService.GetAgeRangeView][google.ads.googleads.v7.services.AgeRangeViewService.GetAgeRangeView]. -message GetAgeRangeViewRequest { - // Required. The resource name of the age range view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AgeRangeView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/asset_service.proto b/google/ads/googleads/v7/services/asset_service.proto deleted file mode 100644 index 234b0b3c3..000000000 --- a/google/ads/googleads/v7/services/asset_service.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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AssetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Asset service. - -// Service to manage assets. Asset types can be created with AssetService are -// YoutubeVideoAsset, MediaBundleAsset and ImageAsset. TextAsset should be -// created with Ad inline. -service AssetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested asset in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAsset(GetAssetRequest) returns (google.ads.googleads.v7.resources.Asset) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/assets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates assets. Operation statuses are returned. - // - // List of thrown errors: - // [AssetError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CurrencyCodeError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MediaUploadError]() - // [MutateError]() - // [NotAllowlistedError]() - // [NotEmptyError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - // [YoutubeVideoRegistrationError]() - rpc MutateAssets(MutateAssetsRequest) returns (MutateAssetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/assets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AssetService.GetAsset][google.ads.googleads.v7.services.AssetService.GetAsset] -message GetAssetRequest { - // Required. The resource name of the asset to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; -} - -// Request message for [AssetService.MutateAssets][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual assets. - repeated AssetOperation 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 = 5; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 3; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// A single operation to create an asset. Supported asset types are -// YoutubeVideoAsset, MediaBundleAsset, ImageAsset, and LeadFormAsset. TextAsset -// should be created with Ad inline. -message AssetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new asset. - google.ads.googleads.v7.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.v7.resources.Asset update = 2; - } -} - -// Response message for an asset mutate. -message MutateAssetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAssetResult results = 2; -} - -// The result for the asset mutate. -message MutateAssetResult { - // The resource name returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.Asset asset = 2; -} diff --git a/google/ads/googleads/v7/services/batch_job_service.proto b/google/ads/googleads/v7/services/batch_job_service.proto deleted file mode 100644 index f9c6d822a..000000000 --- a/google/ads/googleads/v7/services/batch_job_service.proto +++ /dev/null @@ -1,286 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/batch_job.proto"; -import "google/ads/googleads/v7/services/google_ads_service.proto"; -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/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BatchJobServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the BatchJobService. - -// Service to manage batch jobs. -service BatchJobService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Mutates a batch job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateBatchJob(MutateBatchJobRequest) returns (MutateBatchJobResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/batchJobs:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } - - // Returns the batch job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetBatchJob(GetBatchJobRequest) returns (google.ads.googleads.v7.resources.BatchJob) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/batchJobs/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Returns the results of the batch job. The job must be done. - // Supports standard list paging. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [BatchJobError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListBatchJobResults(ListBatchJobResultsRequest) returns (ListBatchJobResultsResponse) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/batchJobs/*}:listResults" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Runs the batch job. - // - // The Operation.metadata field type is BatchJobMetadata. When finished, the - // long running operation will not contain errors or a response. Instead, use - // ListBatchJobResults to get the results of the job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [BatchJobError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc RunBatchJob(RunBatchJobRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v7/{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.v7.resources.BatchJob.BatchJobMetadata" - }; - } - - // Add operations to the batch job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [BatchJobError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc AddBatchJobOperations(AddBatchJobOperationsRequest) returns (AddBatchJobOperationsResponse) { - option (google.api.http) = { - post: "/v7/{resource_name=customers/*/batchJobs/*}:addOperations" - body: "*" - }; - option (google.api.method_signature) = "resource_name,sequence_token,mutate_operations"; - option (google.api.method_signature) = "resource_name,mutate_operations"; - } -} - -// Request message for [BatchJobService.MutateBatchJob][google.ads.googleads.v7.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]; - - // Required. The operation to perform on an individual batch job. - BatchJobOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A single operation on a batch job. -message BatchJobOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new batch job. - google.ads.googleads.v7.resources.BatchJob create = 1; - } -} - -// Response message for [BatchJobService.MutateBatchJob][google.ads.googleads.v7.services.BatchJobService.MutateBatchJob]. -message MutateBatchJobResponse { - // The result for the mutate. - MutateBatchJobResult result = 1; -} - -// The result for the batch job mutate. -message MutateBatchJobResult { - // The resource name of the batch job. - string resource_name = 1; -} - -// Request message for [BatchJobService.GetBatchJob][google.ads.googleads.v7.services.BatchJobService.GetBatchJob]. -message GetBatchJobRequest { - // Required. The resource name of the batch job to get. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; -} - -// Request message for [BatchJobService.RunBatchJob][google.ads.googleads.v7.services.BatchJobService.RunBatchJob]. -message RunBatchJobRequest { - // Required. The resource name of the BatchJob to run. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; -} - -// Request message for [BatchJobService.AddBatchJobOperations][google.ads.googleads.v7.services.BatchJobService.AddBatchJobOperations]. -message AddBatchJobOperationsRequest { - // Required. The resource name of the batch job. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; - - // A token used to enforce sequencing. - // - // The first AddBatchJobOperations request for a batch job should not set - // sequence_token. Subsequent requests must set sequence_token to the value of - // next_sequence_token received in the previous AddBatchJobOperations - // response. - string sequence_token = 2; - - // Required. The list of mutates being added. - // - // Operations can use negative integers as temp ids to signify dependencies - // between entities created in this batch job. For example, a customer with - // id = 1234 can create a campaign and an ad group in that same campaign by - // creating a campaign in the first operation with the resource name - // explicitly set to "customers/1234/campaigns/-1", and creating an ad group - // in the second operation with the campaign field also set to - // "customers/1234/campaigns/-1". - repeated MutateOperation mutate_operations = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for [BatchJobService.AddBatchJobOperations][google.ads.googleads.v7.services.BatchJobService.AddBatchJobOperations]. -message AddBatchJobOperationsResponse { - // The total number of operations added so far for this batch job. - int64 total_operations = 1; - - // The sequence token to be used when calling AddBatchJobOperations again if - // more operations need to be added. The next AddBatchJobOperations request - // must set the sequence_token field to the value of this field. - string next_sequence_token = 2; -} - -// Request message for [BatchJobService.ListBatchJobResults][google.ads.googleads.v7.services.BatchJobService.ListBatchJobResults]. -message ListBatchJobResultsRequest { - // Required. The resource name of the batch job whose results are being listed. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. Use the value obtained from - // `next_page_token` in the previous response in order to request - // the next page of results. - string page_token = 2; - - // Number of elements to retrieve in a single page. - // When a page request is too large, the server may decide to - // further limit the number of returned resources. - int32 page_size = 3; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned. - google.ads.googleads.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; -} - -// Response message for [BatchJobService.ListBatchJobResults][google.ads.googleads.v7.services.BatchJobService.ListBatchJobResults]. -message ListBatchJobResultsResponse { - // The list of rows that matched the query. - repeated BatchJobResult 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. `next_page_token` is not returned for the last - // page. - string next_page_token = 2; -} - -// An individual batch job result. -message BatchJobResult { - // Index of the mutate operation. - int64 operation_index = 1; - - // Response for the mutate. - // May be empty if errors occurred. - MutateOperationResponse mutate_operation_response = 2; - - // Details of the errors when processing the operation. - google.rpc.Status status = 3; -} diff --git a/google/ads/googleads/v7/services/bidding_strategy_service.proto b/google/ads/googleads/v7/services/bidding_strategy_service.proto deleted file mode 100644 index 53fb77533..000000000 --- a/google/ads/googleads/v7/services/bidding_strategy_service.proto +++ /dev/null @@ -1,177 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/bidding_strategy.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Bidding Strategy service. - -// Service to manage bidding strategies. -service BiddingStrategyService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested bidding strategy in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetBiddingStrategy(GetBiddingStrategyRequest) returns (google.ads.googleads.v7.resources.BiddingStrategy) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/biddingStrategies/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes bidding strategies. Operation statuses are - // returned. - // - // List of thrown errors: - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [BiddingStrategyError]() - // [ContextError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateBiddingStrategies(MutateBiddingStrategiesRequest) returns (MutateBiddingStrategiesResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/biddingStrategies:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [BiddingStrategyService.GetBiddingStrategy][google.ads.googleads.v7.services.BiddingStrategyService.GetBiddingStrategy]. -message GetBiddingStrategyRequest { - // Required. The resource name of the bidding strategy to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategy" - } - ]; -} - -// Request message for [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v7.services.BiddingStrategyService.MutateBiddingStrategies]. -message MutateBiddingStrategiesRequest { - // Required. The ID of the customer whose bidding strategies are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual bidding strategies. - repeated BiddingStrategyOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a bidding strategy. -message BiddingStrategyOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new bidding - // strategy. - google.ads.googleads.v7.resources.BiddingStrategy create = 1; - - // Update operation: The bidding strategy is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.BiddingStrategy update = 2; - - // Remove operation: A resource name for the removed bidding strategy is - // expected, in this format: - // - // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` - string remove = 3; - } -} - -// Response message for bidding strategy mutate. -message MutateBiddingStrategiesResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateBiddingStrategyResult results = 2; -} - -// The result for the bidding strategy mutate. -message MutateBiddingStrategyResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.BiddingStrategy bidding_strategy = 2; -} diff --git a/google/ads/googleads/v7/services/bidding_strategy_simulation_service.proto b/google/ads/googleads/v7/services/bidding_strategy_simulation_service.proto deleted file mode 100644 index aa8bc64d4..000000000 --- a/google/ads/googleads/v7/services/bidding_strategy_simulation_service.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/bidding_strategy_simulation.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategySimulationServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the BiddingStrategySimulation service. - -// Service to fetch bidding strategy simulations. -service BiddingStrategySimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested bidding strategy simulation in full detail. - rpc GetBiddingStrategySimulation(GetBiddingStrategySimulationRequest) returns (google.ads.googleads.v7.resources.BiddingStrategySimulation) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/biddingStrategySimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [BiddingStrategySimulationService.GetBiddingStrategySimulation][google.ads.googleads.v7.services.BiddingStrategySimulationService.GetBiddingStrategySimulation]. -message GetBiddingStrategySimulationRequest { - // Required. The resource name of the bidding strategy simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategySimulation" - } - ]; -} diff --git a/google/ads/googleads/v7/services/billing_setup_service.proto b/google/ads/googleads/v7/services/billing_setup_service.proto deleted file mode 100644 index 86d8793aa..000000000 --- a/google/ads/googleads/v7/services/billing_setup_service.proto +++ /dev/null @@ -1,136 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BillingSetupServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the BillingSetup service. - -// A service for designating the business entity responsible for accrued costs. -// -// A billing setup is associated with a payments account. Billing-related -// activity for all billing setups associated with a particular payments account -// will appear on a single invoice generated monthly. -// -// Mutates: -// The REMOVE operation cancels a pending billing setup. -// The CREATE operation creates a new billing setup. -service BillingSetupService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns a billing setup. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetBillingSetup(GetBillingSetupRequest) returns (google.ads.googleads.v7.resources.BillingSetup) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/billingSetups/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates a billing setup, or cancels an existing billing setup. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [BillingSetupError]() - // [DateError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateBillingSetup(MutateBillingSetupRequest) returns (MutateBillingSetupResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/billingSetups:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [BillingSetupService.GetBillingSetup][google.ads.googleads.v7.services.BillingSetupService.GetBillingSetup]. -message GetBillingSetupRequest { - // Required. The resource name of the billing setup to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BillingSetup" - } - ]; -} - -// Request message for billing setup mutate operations. -message MutateBillingSetupRequest { - // Required. Id of the customer to apply the billing setup mutate operation to. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform. - BillingSetupOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A single operation on a billing setup, which describes the cancellation of an -// existing billing setup. -message BillingSetupOperation { - // Only one of these operations can be set. "Update" operations are not - // supported. - oneof operation { - // Creates a billing setup. No resource name is expected for the new billing - // setup. - google.ads.googleads.v7.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 - // the future. The resource name looks like - // `customers/{customer_id}/billingSetups/{billing_id}`. - string remove = 1; - } -} - -// Response message for a billing setup operation. -message MutateBillingSetupResponse { - // A result that identifies the resource affected by the mutate request. - MutateBillingSetupResult result = 1; -} - -// Result for a single billing setup mutate. -message MutateBillingSetupResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/campaign_asset_service.proto b/google/ads/googleads/v7/services/campaign_asset_service.proto deleted file mode 100644 index 18fd626a4..000000000 --- a/google/ads/googleads/v7/services/campaign_asset_service.proto +++ /dev/null @@ -1,153 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/campaign_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignAssetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CampaignAsset service. - -// Service to manage campaign assets. -service CampaignAssetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign asset in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignAsset(GetCampaignAssetRequest) returns (google.ads.googleads.v7.resources.CampaignAsset) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignAssets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign assets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NotAllowlistedError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCampaignAssets(MutateCampaignAssetsRequest) returns (MutateCampaignAssetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignAssets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignAssetService.GetCampaignAsset][google.ads.googleads.v7.services.CampaignAssetService.GetCampaignAsset]. -message GetCampaignAssetRequest { - // Required. The resource name of the campaign asset to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAsset" - } - ]; -} - -// Request message for [CampaignAssetService.MutateCampaignAssets][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual campaign assets. - repeated CampaignAssetOperation 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; -} - -// A single operation (create, update, remove) on a campaign asset. -message CampaignAssetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign - // asset. - google.ads.googleads.v7.resources.CampaignAsset create = 1; - - // Update operation: The campaign asset is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.CampaignAsset update = 3; - - // Remove operation: A resource name for the removed campaign asset is - // expected, in this format: - // - // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` - string remove = 2; - } -} - -// Response message for a campaign asset mutate. -message MutateCampaignAssetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateCampaignAssetResult results = 2; -} - -// The result for the campaign asset mutate. -message MutateCampaignAssetResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/campaign_audience_view_service.proto b/google/ads/googleads/v7/services/campaign_audience_view_service.proto deleted file mode 100644 index 966e0864d..000000000 --- a/google/ads/googleads/v7/services/campaign_audience_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/campaign_audience_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignAudienceViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign Audience View service. - -// Service to manage campaign audience views. -service CampaignAudienceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign audience view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignAudienceView(GetCampaignAudienceViewRequest) returns (google.ads.googleads.v7.resources.CampaignAudienceView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignAudienceViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CampaignAudienceViewService.GetCampaignAudienceView][google.ads.googleads.v7.services.CampaignAudienceViewService.GetCampaignAudienceView]. -message GetCampaignAudienceViewRequest { - // Required. The resource name of the campaign audience view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAudienceView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/campaign_bid_modifier_service.proto b/google/ads/googleads/v7/services/campaign_bid_modifier_service.proto deleted file mode 100644 index 0c93cab28..000000000 --- a/google/ads/googleads/v7/services/campaign_bid_modifier_service.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/campaign_bid_modifier.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBidModifierServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign Bid Modifier service. - -// Service to manage campaign bid modifiers. -service CampaignBidModifierService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign bid modifier in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignBidModifier(GetCampaignBidModifierRequest) returns (google.ads.googleads.v7.resources.CampaignBidModifier) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignBidModifiers/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign bid modifiers. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCampaignBidModifiers(MutateCampaignBidModifiersRequest) returns (MutateCampaignBidModifiersResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignBidModifiers:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignBidModifierService.GetCampaignBidModifier][google.ads.googleads.v7.services.CampaignBidModifierService.GetCampaignBidModifier]. -message GetCampaignBidModifierRequest { - // Required. The resource name of the campaign bid modifier to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBidModifier" - } - ]; -} - -// Request message for -// [CampaignBidModifierService.MutateCampaignBidModifiers][google.ads.googleads.v7.services.CampaignBidModifierService.MutateCampaignBidModifiers]. -message MutateCampaignBidModifiersRequest { - // Required. ID of the customer whose campaign bid modifiers are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual campaign bid modifiers. - repeated CampaignBidModifierOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on a campaign bid modifier. -message CampaignBidModifierOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign bid - // modifier. - google.ads.googleads.v7.resources.CampaignBidModifier create = 1; - - // Update operation: The campaign bid modifier is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.CampaignBidModifier update = 2; - - // Remove operation: A resource name for the removed campaign bid modifier - // is expected, in this format: - // - // `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for campaign bid modifiers mutate. -message MutateCampaignBidModifiersResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignBidModifierResult results = 2; -} - -// The result for the criterion mutate. -message MutateCampaignBidModifierResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CampaignBidModifier campaign_bid_modifier = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_budget_service.proto b/google/ads/googleads/v7/services/campaign_budget_service.proto deleted file mode 100644 index 5c4cebd23..000000000 --- a/google/ads/googleads/v7/services/campaign_budget_service.proto +++ /dev/null @@ -1,167 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/campaign_budget.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBudgetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign Budget service. - -// Service to manage campaign budgets. -service CampaignBudgetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Campaign Budget in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignBudget(GetCampaignBudgetRequest) returns (google.ads.googleads.v7.resources.CampaignBudget) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignBudgets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign budgets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignBudgetError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [OperationAccessDeniedError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [StringLengthError]() - rpc MutateCampaignBudgets(MutateCampaignBudgetsRequest) returns (MutateCampaignBudgetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignBudgets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignBudgetService.GetCampaignBudget][google.ads.googleads.v7.services.CampaignBudgetService.GetCampaignBudget]. -message GetCampaignBudgetRequest { - // Required. The resource name of the campaign budget to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBudget" - } - ]; -} - -// Request message for [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual campaign budgets. - repeated CampaignBudgetOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign budget. -message CampaignBudgetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new budget. - google.ads.googleads.v7.resources.CampaignBudget create = 1; - - // Update operation: The campaign budget is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.CampaignBudget update = 2; - - // Remove operation: A resource name for the removed budget is expected, in - // this format: - // - // `customers/{customer_id}/campaignBudgets/{budget_id}` - string remove = 3; - } -} - -// Response message for campaign budget mutate. -message MutateCampaignBudgetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignBudgetResult results = 2; -} - -// The result for the campaign budget mutate. -message MutateCampaignBudgetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CampaignBudget campaign_budget = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_criterion_service.proto b/google/ads/googleads/v7/services/campaign_criterion_service.proto deleted file mode 100644 index dc50b7682..000000000 --- a/google/ads/googleads/v7/services/campaign_criterion_service.proto +++ /dev/null @@ -1,178 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/campaign_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign Criterion service. - -// Service to manage campaign criteria. -service CampaignCriterionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested criterion in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignCriterion(GetCampaignCriterionRequest) returns (google.ads.googleads.v7.resources.CampaignCriterion) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignCriteria/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes criteria. Operation statuses are returned. - // - // List of thrown errors: - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignCriterionError]() - // [CollectionSizeError]() - // [ContextError]() - // [CriterionError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RegionCodeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCampaignCriteria(MutateCampaignCriteriaRequest) returns (MutateCampaignCriteriaResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignCriteria:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignCriterionService.GetCampaignCriterion][google.ads.googleads.v7.services.CampaignCriterionService.GetCampaignCriterion]. -message GetCampaignCriterionRequest { - // Required. The resource name of the criterion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterion" - } - ]; -} - -// Request message for [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual criteria. - repeated CampaignCriterionOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign criterion. -message CampaignCriterionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v7.resources.CampaignCriterion create = 1; - - // Update operation: The criterion is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.CampaignCriterion update = 2; - - // Remove operation: A resource name for the removed criterion is expected, - // in this format: - // - // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for campaign criterion mutate. -message MutateCampaignCriteriaResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignCriterionResult results = 2; -} - -// The result for the criterion mutate. -message MutateCampaignCriterionResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CampaignCriterion campaign_criterion = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_criterion_simulation_service.proto b/google/ads/googleads/v7/services/campaign_criterion_simulation_service.proto deleted file mode 100644 index 059a4a12a..000000000 --- a/google/ads/googleads/v7/services/campaign_criterion_simulation_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/campaign_criterion_simulation.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionSimulationServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CampaignCriterionSimulation service. - -// Service to fetch campaign criterion simulations. -service CampaignCriterionSimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign criterion simulation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignCriterionSimulation(GetCampaignCriterionSimulationRequest) returns (google.ads.googleads.v7.resources.CampaignCriterionSimulation) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignCriterionSimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [CampaignCriterionSimulationService.GetCampaignCriterionSimulation][google.ads.googleads.v7.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation]. -message GetCampaignCriterionSimulationRequest { - // Required. The resource name of the campaign criterion simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterionSimulation" - } - ]; -} diff --git a/google/ads/googleads/v7/services/campaign_draft_service.proto b/google/ads/googleads/v7/services/campaign_draft_service.proto deleted file mode 100644 index 96ad0ef29..000000000 --- a/google/ads/googleads/v7/services/campaign_draft_service.proto +++ /dev/null @@ -1,254 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/campaign_draft.proto"; -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/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignDraftServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign Draft service. - -// Service to manage campaign drafts. -service CampaignDraftService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign draft in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignDraft(GetCampaignDraftRequest) returns (google.ads.googleads.v7.resources.CampaignDraft) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignDrafts/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign drafts. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignDraftError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCampaignDrafts(MutateCampaignDraftsRequest) returns (MutateCampaignDraftsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignDrafts:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Promotes the changes in a draft back to the base campaign. - // - // This method returns a Long Running Operation (LRO) indicating if the - // Promote is done. Use [Operations.GetOperation] to poll the LRO until it - // 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.v7.services.CampaignDraftService.ListCampaignDraftAsyncErrors] to view the list of - // error reasons. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignDraftError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc PromoteCampaignDraft(PromoteCampaignDraftRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v7/{campaign_draft=customers/*/campaignDrafts/*}:promote" - body: "*" - }; - option (google.api.method_signature) = "campaign_draft"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "google.protobuf.Empty" - }; - } - - // Returns all errors that occurred during CampaignDraft promote. Throws an - // error if called before campaign draft is promoted. - // Supports standard list paging. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListCampaignDraftAsyncErrors(ListCampaignDraftAsyncErrorsRequest) returns (ListCampaignDraftAsyncErrorsResponse) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CampaignDraftService.GetCampaignDraft][google.ads.googleads.v7.services.CampaignDraftService.GetCampaignDraft]. -message GetCampaignDraftRequest { - // Required. The resource name of the campaign draft to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignDraft" - } - ]; -} - -// Request message for [CampaignDraftService.MutateCampaignDrafts][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual campaign drafts. - repeated CampaignDraftOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// Request message for [CampaignDraftService.PromoteCampaignDraft][google.ads.googleads.v7.services.CampaignDraftService.PromoteCampaignDraft]. -message PromoteCampaignDraftRequest { - // Required. The resource name of the campaign draft to promote. - string campaign_draft = 1 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but no Long Running Operation is created. - // Only errors are returned. - bool validate_only = 2; -} - -// A single operation (create, update, remove) on a campaign draft. -message CampaignDraftOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign - // draft. - google.ads.googleads.v7.resources.CampaignDraft create = 1; - - // Update operation: The campaign draft is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.CampaignDraft update = 2; - - // Remove operation: The campaign draft is expected to have a valid - // resource name, in this format: - // - // `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}` - string remove = 3; - } -} - -// Response message for campaign draft mutate. -message MutateCampaignDraftsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignDraftResult results = 2; -} - -// The result for the campaign draft mutate. -message MutateCampaignDraftResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CampaignDraft campaign_draft = 2; -} - -// Request message for [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v7.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. -message ListCampaignDraftAsyncErrorsRequest { - // Required. The name of the campaign draft from which to retrieve the async errors. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignDraft" - } - ]; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. Use the value obtained from - // `next_page_token` in the previous response in order to request - // the next page of results. - string page_token = 2; - - // Number of elements to retrieve in a single page. - // When a page request is too large, the server may decide to - // further limit the number of returned resources. - int32 page_size = 3; -} - -// Response message for [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v7.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. -message ListCampaignDraftAsyncErrorsResponse { - // Details of the errors when performing the asynchronous operation. - repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last - // page. - string next_page_token = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_experiment_service.proto b/google/ads/googleads/v7/services/campaign_experiment_service.proto deleted file mode 100644 index 556376d12..000000000 --- a/google/ads/googleads/v7/services/campaign_experiment_service.proto +++ /dev/null @@ -1,382 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/campaign_experiment.proto"; -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/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign Experiment service. - -// CampaignExperimentService manages the life cycle of campaign experiments. -// It is used to create new experiments from drafts, modify experiment -// properties, promote changes in an experiment back to its base campaign, -// graduate experiments into new stand-alone campaigns, and to remove an -// experiment. -// -// An experiment consists of two variants or arms - the base campaign and the -// experiment campaign, directing a fixed share of traffic to each arm. -// A campaign experiment is created from a draft of changes to the base campaign -// and will be a snapshot of changes in the draft at the time of creation. -service CampaignExperimentService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign experiment in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignExperiment(GetCampaignExperimentRequest) returns (google.ads.googleads.v7.resources.CampaignExperiment) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignExperiments/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates a campaign experiment based on a campaign draft. The draft campaign - // will be forked into a real campaign (called the experiment campaign) that - // will begin serving ads if successfully created. - // - // The campaign experiment is created immediately with status INITIALIZING. - // This method return a long running operation that tracks the forking of the - // draft campaign. If the forking fails, a list of errors can be retrieved - // using the ListCampaignExperimentAsyncErrors method. The operation's - // metadata will be a StringValue containing the resource name of the created - // campaign experiment. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignExperimentError]() - // [DatabaseError]() - // [DateError]() - // [DateRangeError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - rpc CreateCampaignExperiment(CreateCampaignExperimentRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignExperiments:create" - body: "*" - }; - option (google.api.method_signature) = "customer_id,campaign_experiment"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "google.ads.googleads.v7.services.CreateCampaignExperimentMetadata" - }; - } - - // Updates campaign experiments. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignExperimentError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCampaignExperiments(MutateCampaignExperimentsRequest) returns (MutateCampaignExperimentsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignExperiments:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Graduates a campaign experiment to a full campaign. The base and experiment - // campaigns will start running independently with their own budgets. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignExperimentError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc GraduateCampaignExperiment(GraduateCampaignExperimentRequest) returns (GraduateCampaignExperimentResponse) { - option (google.api.http) = { - post: "/v7/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" - body: "*" - }; - option (google.api.method_signature) = "campaign_experiment,campaign_budget"; - } - - // Promotes the changes in a experiment campaign back to the base campaign. - // - // The campaign experiment is updated immediately with status PROMOTING. - // This method return a long running operation that tracks the promoting of - // the experiment campaign. If the promoting fails, a list of errors can be - // retrieved using the ListCampaignExperimentAsyncErrors method. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc PromoteCampaignExperiment(PromoteCampaignExperimentRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v7/{campaign_experiment=customers/*/campaignExperiments/*}:promote" - body: "*" - }; - option (google.api.method_signature) = "campaign_experiment"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "google.protobuf.Empty" - }; - } - - // Immediately ends a campaign experiment, changing the experiment's scheduled - // end date and without waiting for end of day. End date is updated to be the - // time of the request. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignExperimentError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc EndCampaignExperiment(EndCampaignExperimentRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - post: "/v7/{campaign_experiment=customers/*/campaignExperiments/*}:end" - body: "*" - }; - option (google.api.method_signature) = "campaign_experiment"; - } - - // Returns all errors that occurred during CampaignExperiment create or - // promote (whichever occurred last). - // Supports standard list paging. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListCampaignExperimentAsyncErrors(ListCampaignExperimentAsyncErrorsRequest) returns (ListCampaignExperimentAsyncErrorsResponse) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CampaignExperimentService.GetCampaignExperiment][google.ads.googleads.v7.services.CampaignExperimentService.GetCampaignExperiment]. -message GetCampaignExperimentRequest { - // Required. The resource name of the campaign experiment to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExperiment" - } - ]; -} - -// Request message for [CampaignExperimentService.MutateCampaignExperiments][google.ads.googleads.v7.services.CampaignExperimentService.MutateCampaignExperiments]. -message MutateCampaignExperimentsRequest { - // Required. The ID of the customer whose campaign experiments are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual campaign experiments. - repeated CampaignExperimentOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single update operation on a campaign experiment. -message CampaignExperimentOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Update operation: The campaign experiment is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.CampaignExperiment update = 1; - - // Remove operation: The campaign experiment is expected to have a valid - // resource name, in this format: - // - // `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}` - string remove = 2; - } -} - -// Response message for campaign experiment mutate. -message MutateCampaignExperimentsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignExperimentResult results = 2; -} - -// The result for the campaign experiment mutate. -message MutateCampaignExperimentResult { - // Returned for successful operations. - string resource_name = 1; - - // The mutated campaign experiment with only mutable fields after mutate. The - // field will only be returned when response_content_type is set to - // "MUTABLE_RESOURCE". - google.ads.googleads.v7.resources.CampaignExperiment campaign_experiment = 2; -} - -// Request message for [CampaignExperimentService.CreateCampaignExperiment][google.ads.googleads.v7.services.CampaignExperimentService.CreateCampaignExperiment]. -message CreateCampaignExperimentRequest { - // Required. The ID of the customer whose campaign experiment is being created. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The campaign experiment to be created. - google.ads.googleads.v7.resources.CampaignExperiment campaign_experiment = 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; -} - -// Message used as metadata returned in Long Running Operations for -// CreateCampaignExperimentRequest -message CreateCampaignExperimentMetadata { - // Resource name of campaign experiment created. - string campaign_experiment = 1; -} - -// Request message for [CampaignExperimentService.GraduateCampaignExperiment][google.ads.googleads.v7.services.CampaignExperimentService.GraduateCampaignExperiment]. -message GraduateCampaignExperimentRequest { - // Required. The resource name of the campaign experiment to graduate. - string campaign_experiment = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Resource name of the budget to attach to the campaign graduated from the - // experiment. - string campaign_budget = 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; -} - -// Response message for campaign experiment graduate. -message GraduateCampaignExperimentResponse { - // The resource name of the campaign from the graduated experiment. - // This campaign is the same one as CampaignExperiment.experiment_campaign. - string graduated_campaign = 1; -} - -// Request message for [CampaignExperimentService.PromoteCampaignExperiment][google.ads.googleads.v7.services.CampaignExperimentService.PromoteCampaignExperiment]. -message PromoteCampaignExperimentRequest { - // Required. The resource name of the campaign experiment to promote. - string campaign_experiment = 1 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but no Long Running Operation is created. - // Only errors are returned. - bool validate_only = 2; -} - -// Request message for [CampaignExperimentService.EndCampaignExperiment][google.ads.googleads.v7.services.CampaignExperimentService.EndCampaignExperiment]. -message EndCampaignExperimentRequest { - // Required. The resource name of the campaign experiment to end. - string campaign_experiment = 1 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 2; -} - -// Request message for -// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v7.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors]. -message ListCampaignExperimentAsyncErrorsRequest { - // Required. The name of the campaign experiment from which to retrieve the async - // errors. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExperiment" - } - ]; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. Use the value obtained from - // `next_page_token` in the previous response in order to request - // the next page of results. - string page_token = 2; - - // Number of elements to retrieve in a single page. - // When a page request is too large, the server may decide to - // further limit the number of returned resources. - int32 page_size = 3; -} - -// Response message for -// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v7.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors]. -message ListCampaignExperimentAsyncErrorsResponse { - // Details of the errors when performing the asynchronous operation. - repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last - // page. - string next_page_token = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_extension_setting_service.proto b/google/ads/googleads/v7/services/campaign_extension_setting_service.proto deleted file mode 100644 index fa666e53f..000000000 --- a/google/ads/googleads/v7/services/campaign_extension_setting_service.proto +++ /dev/null @@ -1,182 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/campaign_extension_setting.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CampaignExtensionSetting service. - -// Service to manage campaign extension settings. -service CampaignExtensionSettingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign extension setting in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignExtensionSetting(GetCampaignExtensionSettingRequest) returns (google.ads.googleads.v7.resources.CampaignExtensionSetting) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignExtensionSettings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign extension settings. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [ExtensionSettingError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateCampaignExtensionSettings(MutateCampaignExtensionSettingsRequest) returns (MutateCampaignExtensionSettingsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignExtensionSettings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [CampaignExtensionSettingService.GetCampaignExtensionSetting][google.ads.googleads.v7.services.CampaignExtensionSettingService.GetCampaignExtensionSetting]. -message GetCampaignExtensionSettingRequest { - // Required. The resource name of the campaign extension setting to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExtensionSetting" - } - ]; -} - -// Request message for -// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v7.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings]. -message MutateCampaignExtensionSettingsRequest { - // Required. The ID of the customer whose campaign extension settings are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual campaign extension - // settings. - repeated CampaignExtensionSettingOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign extension setting. -message CampaignExtensionSettingOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign - // extension setting. - google.ads.googleads.v7.resources.CampaignExtensionSetting create = 1; - - // Update operation: The campaign extension setting is expected to have a - // valid resource name. - google.ads.googleads.v7.resources.CampaignExtensionSetting update = 2; - - // Remove operation: A resource name for the removed campaign extension - // setting is expected, in this format: - // - // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}` - string remove = 3; - } -} - -// Response message for a campaign extension setting mutate. -message MutateCampaignExtensionSettingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignExtensionSettingResult results = 2; -} - -// The result for the campaign extension setting mutate. -message MutateCampaignExtensionSettingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CampaignExtensionSetting campaign_extension_setting = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_feed_service.proto b/google/ads/googleads/v7/services/campaign_feed_service.proto deleted file mode 100644 index 9f391169b..000000000 --- a/google/ads/googleads/v7/services/campaign_feed_service.proto +++ /dev/null @@ -1,173 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/campaign_feed.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignFeedServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CampaignFeed service. - -// Service to manage campaign feeds. -service CampaignFeedService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign feed in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignFeed(GetCampaignFeedRequest) returns (google.ads.googleads.v7.resources.CampaignFeed) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignFeeds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign feeds. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignFeedError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCampaignFeeds(MutateCampaignFeedsRequest) returns (MutateCampaignFeedsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignFeeds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignFeedService.GetCampaignFeed][google.ads.googleads.v7.services.CampaignFeedService.GetCampaignFeed]. -message GetCampaignFeedRequest { - // Required. The resource name of the campaign feed to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignFeed" - } - ]; -} - -// Request message for [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual campaign feeds. - repeated CampaignFeedOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign feed. -message CampaignFeedOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign feed. - google.ads.googleads.v7.resources.CampaignFeed create = 1; - - // Update operation: The campaign feed is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.CampaignFeed update = 2; - - // Remove operation: A resource name for the removed campaign feed is - // expected, in this format: - // - // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}` - string remove = 3; - } -} - -// Response message for a campaign feed mutate. -message MutateCampaignFeedsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignFeedResult results = 2; -} - -// The result for the campaign feed mutate. -message MutateCampaignFeedResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CampaignFeed campaign_feed = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_label_service.proto b/google/ads/googleads/v7/services/campaign_label_service.proto deleted file mode 100644 index f44bf010f..000000000 --- a/google/ads/googleads/v7/services/campaign_label_service.proto +++ /dev/null @@ -1,144 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignLabelServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign Label service. - -// Service to manage labels on campaigns. -service CampaignLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign-label relationship in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignLabel(GetCampaignLabelRequest) returns (google.ads.googleads.v7.resources.CampaignLabel) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes campaign-label relationships. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCampaignLabels(MutateCampaignLabelsRequest) returns (MutateCampaignLabelsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignLabelService.GetCampaignLabel][google.ads.googleads.v7.services.CampaignLabelService.GetCampaignLabel]. -message GetCampaignLabelRequest { - // Required. The resource name of the campaign-label relationship to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignLabel" - } - ]; -} - -// Request message for [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v7.services.CampaignLabelService.MutateCampaignLabels]. -message MutateCampaignLabelsRequest { - // Required. ID of the customer whose campaign-label relationships are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on campaign-label relationships. - repeated CampaignLabelOperation 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; -} - -// A single operation (create, remove) on a campaign-label relationship. -message CampaignLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign-label - // relationship. - google.ads.googleads.v7.resources.CampaignLabel create = 1; - - // Remove operation: A resource name for the campaign-label relationship - // being removed, in this format: - // - // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}` - string remove = 2; - } -} - -// Response message for a campaign labels mutate. -message MutateCampaignLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignLabelResult results = 2; -} - -// The result for a campaign label mutate. -message MutateCampaignLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/campaign_service.proto b/google/ads/googleads/v7/services/campaign_service.proto deleted file mode 100644 index b987e6c5c..000000000 --- a/google/ads/googleads/v7/services/campaign_service.proto +++ /dev/null @@ -1,183 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/campaign.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign service. - -// Service to manage campaigns. -service CampaignService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaign(GetCampaignRequest) returns (google.ads.googleads.v7.resources.Campaign) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaigns/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaigns. Operation statuses are returned. - // - // List of thrown errors: - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [BiddingStrategyError]() - // [CampaignBudgetError]() - // [CampaignError]() - // [ContextError]() - // [DatabaseError]() - // [DateError]() - // [DateRangeError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotAllowlistedError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RegionCodeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SettingError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateCampaigns(MutateCampaignsRequest) returns (MutateCampaignsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaigns:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignService.GetCampaign][google.ads.googleads.v7.services.CampaignService.GetCampaign]. -message GetCampaignRequest { - // Required. The resource name of the campaign to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; -} - -// Request message for [CampaignService.MutateCampaigns][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual campaigns. - repeated CampaignOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign. -message CampaignOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign. - google.ads.googleads.v7.resources.Campaign create = 1; - - // Update operation: The campaign is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.Campaign update = 2; - - // Remove operation: A resource name for the removed campaign is - // expected, in this format: - // - // `customers/{customer_id}/campaigns/{campaign_id}` - string remove = 3; - } -} - -// Response message for campaign mutate. -message MutateCampaignsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignResult results = 2; -} - -// The result for the campaign mutate. -message MutateCampaignResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.Campaign campaign = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_shared_set_service.proto b/google/ads/googleads/v7/services/campaign_shared_set_service.proto deleted file mode 100644 index 265a5062e..000000000 --- a/google/ads/googleads/v7/services/campaign_shared_set_service.proto +++ /dev/null @@ -1,164 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSharedSetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Campaign Shared Set service. - -// Service to manage campaign shared sets. -service CampaignSharedSetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign shared set in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignSharedSet(GetCampaignSharedSetRequest) returns (google.ads.googleads.v7.resources.CampaignSharedSet) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignSharedSets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes campaign shared sets. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignSharedSetError]() - // [ContextError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCampaignSharedSets(MutateCampaignSharedSetsRequest) returns (MutateCampaignSharedSetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/campaignSharedSets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignSharedSetService.GetCampaignSharedSet][google.ads.googleads.v7.services.CampaignSharedSetService.GetCampaignSharedSet]. -message GetCampaignSharedSetRequest { - // Required. The resource name of the campaign shared set to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSharedSet" - } - ]; -} - -// Request message for [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v7.services.CampaignSharedSetService.MutateCampaignSharedSets]. -message MutateCampaignSharedSetsRequest { - // Required. The ID of the customer whose campaign shared sets are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual campaign shared sets. - repeated CampaignSharedSetOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove) on an campaign shared set. -message CampaignSharedSetOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign - // shared set. - google.ads.googleads.v7.resources.CampaignSharedSet create = 1; - - // Remove operation: A resource name for the removed campaign shared set is - // expected, in this format: - // - // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}` - string remove = 3; - } -} - -// Response message for a campaign shared set mutate. -message MutateCampaignSharedSetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignSharedSetResult results = 2; -} - -// The result for the campaign shared set mutate. -message MutateCampaignSharedSetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CampaignSharedSet campaign_shared_set = 2; -} diff --git a/google/ads/googleads/v7/services/campaign_simulation_service.proto b/google/ads/googleads/v7/services/campaign_simulation_service.proto deleted file mode 100644 index 4107fa74b..000000000 --- a/google/ads/googleads/v7/services/campaign_simulation_service.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/campaign_simulation.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSimulationServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CampaignSimulation service. - -// Service to fetch campaign simulations. -service CampaignSimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign simulation in full detail. - rpc GetCampaignSimulation(GetCampaignSimulationRequest) returns (google.ads.googleads.v7.resources.CampaignSimulation) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/campaignSimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [CampaignSimulationService.GetCampaignSimulation][google.ads.googleads.v7.services.CampaignSimulationService.GetCampaignSimulation]. -message GetCampaignSimulationRequest { - // Required. The resource name of the campaign simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSimulation" - } - ]; -} diff --git a/google/ads/googleads/v7/services/carrier_constant_service.proto b/google/ads/googleads/v7/services/carrier_constant_service.proto deleted file mode 100644 index 84f1bc4c2..000000000 --- a/google/ads/googleads/v7/services/carrier_constant_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/carrier_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CarrierConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the carrier constant service. - -// Service to fetch carrier constants. -service CarrierConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested carrier constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCarrierConstant(GetCarrierConstantRequest) returns (google.ads.googleads.v7.resources.CarrierConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=carrierConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CarrierConstantService.GetCarrierConstant][google.ads.googleads.v7.services.CarrierConstantService.GetCarrierConstant]. -message GetCarrierConstantRequest { - // Required. Resource name of the carrier constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CarrierConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/services/change_status_service.proto b/google/ads/googleads/v7/services/change_status_service.proto deleted file mode 100644 index 52b03619b..000000000 --- a/google/ads/googleads/v7/services/change_status_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/change_status.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Change Status service. - -// Service to fetch change statuses. -service ChangeStatusService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested change status in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetChangeStatus(GetChangeStatusRequest) returns (google.ads.googleads.v7.resources.ChangeStatus) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/changeStatus/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for '[ChangeStatusService.GetChangeStatus][google.ads.googleads.v7.services.ChangeStatusService.GetChangeStatus]'. -message GetChangeStatusRequest { - // Required. The resource name of the change status to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ChangeStatus" - } - ]; -} diff --git a/google/ads/googleads/v7/services/click_view_service.proto b/google/ads/googleads/v7/services/click_view_service.proto deleted file mode 100644 index 016fbca34..000000000 --- a/google/ads/googleads/v7/services/click_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/click_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ClickViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the ClickView service. - -// Service to fetch click views. -service ClickViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested click view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetClickView(GetClickViewRequest) returns (google.ads.googleads.v7.resources.ClickView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/clickViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [ClickViewService.GetClickView][google.ads.googleads.v7.services.ClickViewService.GetClickView]. -message GetClickViewRequest { - // Required. The resource name of the click view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ClickView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/combined_audience_service.proto b/google/ads/googleads/v7/services/combined_audience_service.proto deleted file mode 100644 index d1a2cdfa8..000000000 --- a/google/ads/googleads/v7/services/combined_audience_service.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/combined_audience.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CombinedAudienceServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Combined Audience service. - -// Service to manage combined audiences. This service can be used to list all -// your combined audiences with metadata, but won't show the structure and -// components of the combined audience. -service CombinedAudienceService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested combined audience in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCombinedAudience(GetCombinedAudienceRequest) returns (google.ads.googleads.v7.resources.CombinedAudience) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/combinedAudiences/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CombinedAudienceService.GetCombinedAudience][google.ads.googleads.v7.services.CombinedAudienceService.GetCombinedAudience]. -message GetCombinedAudienceRequest { - // Required. The resource name of the combined audience to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CombinedAudience" - } - ]; -} diff --git a/google/ads/googleads/v7/services/conversion_action_service.proto b/google/ads/googleads/v7/services/conversion_action_service.proto deleted file mode 100644 index bd04457b3..000000000 --- a/google/ads/googleads/v7/services/conversion_action_service.proto +++ /dev/null @@ -1,167 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/conversion_action.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Conversion Action service. - -// Service to manage conversion actions. -service ConversionActionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested conversion action. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetConversionAction(GetConversionActionRequest) returns (google.ads.googleads.v7.resources.ConversionAction) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/conversionActions/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates or removes conversion actions. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ConversionActionError]() - // [CurrencyCodeError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [StringLengthError]() - rpc MutateConversionActions(MutateConversionActionsRequest) returns (MutateConversionActionsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/conversionActions:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [ConversionActionService.GetConversionAction][google.ads.googleads.v7.services.ConversionActionService.GetConversionAction]. -message GetConversionActionRequest { - // Required. The resource name of the conversion action to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionAction" - } - ]; -} - -// Request message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v7.services.ConversionActionService.MutateConversionActions]. -message MutateConversionActionsRequest { - // Required. The ID of the customer whose conversion actions are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual conversion actions. - repeated ConversionActionOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a conversion action. -message ConversionActionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new conversion - // action. - google.ads.googleads.v7.resources.ConversionAction create = 1; - - // Update operation: The conversion action is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.ConversionAction update = 2; - - // Remove operation: A resource name for the removed conversion action is - // expected, in this format: - // - // `customers/{customer_id}/conversionActions/{conversion_action_id}` - string remove = 3; - } -} - -// Response message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v7.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 - // operations. If any errors occur outside the operations (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateConversionActionResult results = 2; -} - -// The result for the conversion action mutate. -message MutateConversionActionResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.ConversionAction conversion_action = 2; -} diff --git a/google/ads/googleads/v7/services/conversion_adjustment_upload_service.proto b/google/ads/googleads/v7/services/conversion_adjustment_upload_service.proto deleted file mode 100644 index 6d3edaf0f..000000000 --- a/google/ads/googleads/v7/services/conversion_adjustment_upload_service.proto +++ /dev/null @@ -1,190 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionAdjustmentUploadServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Service to upload conversion adjustments. -service ConversionAdjustmentUploadService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Processes the given conversion adjustments. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [PartialFailureError]() - // [QuotaError]() - // [RequestError]() - rpc UploadConversionAdjustments(UploadConversionAdjustmentsRequest) returns (UploadConversionAdjustmentsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:uploadConversionAdjustments" - body: "*" - }; - option (google.api.method_signature) = "customer_id,conversion_adjustments,partial_failure"; - } -} - -// Request message for -// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v7.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. -message UploadConversionAdjustmentsRequest { - // Required. The ID of the customer performing the upload. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The conversion adjustments that are being uploaded. - repeated ConversionAdjustment conversion_adjustments = 2 [(google.api.field_behavior) = REQUIRED]; - - // 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. This should always be - // set to true. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// Response message for -// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v7.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 - // errors occur outside the adjustments (e.g. auth errors), we return an RPC - // level error. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - google.rpc.Status partial_failure_error = 1; - - // Returned for successfully processed conversion adjustments. Proto will be - // empty for rows that received an error. Results are not returned when - // validate_only is true. - repeated ConversionAdjustmentResult results = 2; -} - -// A conversion adjustment. -message ConversionAdjustment { - // Resource name of the conversion action associated with this conversion - // adjustment. Note: Although this resource name consists of a customer id and - // a conversion action id, validation will ignore the customer id and use the - // conversion action id as the sole identifier of the conversion action. - optional string conversion_action = 8; - - // The date time at which the adjustment occurred. Must be after the - // conversion_date_time. The timezone must be specified. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string adjustment_date_time = 9; - - // The adjustment type. - google.ads.googleads.v7.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5; - - // Information needed to restate the conversion's value. - // Required for restatements. Should not be supplied for retractions. An error - // will be returned if provided for a retraction. - // NOTE: If you want to upload a second restatement with a different adjusted - // value, it must have a new, more recent, adjustment occurrence time. - // Otherwise, it will be treated as a duplicate of the previous restatement - // and ignored. - RestatementValue restatement_value = 6; - - // Identifies the conversion to be adjusted. - oneof conversion_identifier { - // Uniquely identifies a conversion that was reported without an order ID - // specified. - GclidDateTimePair gclid_date_time_pair = 1; - - // The order ID of the conversion to be adjusted. If the conversion was - // reported with an order ID specified, that order ID must be used as the - // identifier here. - string order_id = 7; - } -} - -// Contains information needed to restate a conversion's value. -message RestatementValue { - // The restated conversion value. This is the value of the conversion after - // restatement. For example, to change the value of a conversion from 100 to - // 70, an adjusted value of 70 should be reported. - // NOTE: If you want to upload a second restatement with a different adjusted - // value, it must have a new, more recent, adjustment occurrence time. - // Otherwise, it will be treated as a duplicate of the previous restatement - // and ignored. - optional double adjusted_value = 3; - - // The currency of the restated value. If not provided, then the default - // currency from the conversion action is used, and if that is not set then - // the account currency is used. This is the ISO 4217 3-character currency - // code e.g. USD or EUR. - optional string currency_code = 4; -} - -// Uniquely identifies a conversion that was reported without an order ID -// specified. -message GclidDateTimePair { - // Google click ID (gclid) associated with the original conversion for this - // adjustment. - optional string gclid = 3; - - // The date time at which the original conversion for this adjustment - // occurred. The timezone must be specified. The format is "yyyy-mm-dd - // hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string conversion_date_time = 4; -} - -// Information identifying a successfully processed ConversionAdjustment. -message ConversionAdjustmentResult { - // Resource name of the conversion action associated with this conversion - // adjustment. - optional string conversion_action = 7; - - // The date time at which the adjustment occurred. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string adjustment_date_time = 8; - - // The adjustment type. - google.ads.googleads.v7.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5; - - // Identifies the conversion that was adjusted. - oneof conversion_identifier { - // Uniquely identifies a conversion that was reported without an order ID - // specified. - GclidDateTimePair gclid_date_time_pair = 1; - - // The order ID of the conversion that was adjusted. - string order_id = 6; - } -} diff --git a/google/ads/googleads/v7/services/conversion_custom_variable_service.proto b/google/ads/googleads/v7/services/conversion_custom_variable_service.proto deleted file mode 100644 index f1faccef6..000000000 --- a/google/ads/googleads/v7/services/conversion_custom_variable_service.proto +++ /dev/null @@ -1,158 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/conversion_custom_variable.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionCustomVariableServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Conversion Custom Variable service. - -// Service to manage conversion custom variables. -service ConversionCustomVariableService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested conversion custom variable. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetConversionCustomVariable(GetConversionCustomVariableRequest) returns (google.ads.googleads.v7.resources.ConversionCustomVariable) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/conversionCustomVariables/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates conversion custom variables. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ConversionCustomVariableError]() - // [DatabaseError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateConversionCustomVariables(MutateConversionCustomVariablesRequest) returns (MutateConversionCustomVariablesResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/conversionCustomVariables:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [ConversionCustomVariableService.GetConversionCustomVariable][google.ads.googleads.v7.services.ConversionCustomVariableService.GetConversionCustomVariable]. -message GetConversionCustomVariableRequest { - // Required. The resource name of the conversion custom variable to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionCustomVariable" - } - ]; -} - -// Request message for -// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v7.services.ConversionCustomVariableService.MutateConversionCustomVariables]. -message MutateConversionCustomVariablesRequest { - // Required. The ID of the customer whose conversion custom variables are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual conversion custom - // variables. - repeated ConversionCustomVariableOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update) on a conversion custom variable. -message ConversionCustomVariableOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new conversion - // custom variable. - google.ads.googleads.v7.resources.ConversionCustomVariable create = 1; - - // Update operation: The conversion custom variable is expected to have a - // valid resource name. - google.ads.googleads.v7.resources.ConversionCustomVariable update = 2; - } -} - -// Response message for -// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v7.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 - // operations. If any errors occur outside the operations (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateConversionCustomVariableResult results = 2; -} - -// The result for the conversion custom variable mutate. -message MutateConversionCustomVariableResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.ConversionCustomVariable conversion_custom_variable = 2; -} diff --git a/google/ads/googleads/v7/services/conversion_upload_service.proto b/google/ads/googleads/v7/services/conversion_upload_service.proto deleted file mode 100644 index dae08e257..000000000 --- a/google/ads/googleads/v7/services/conversion_upload_service.proto +++ /dev/null @@ -1,278 +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 google.ads.googleads.v7.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionUploadServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Service to upload conversions. -service ConversionUploadService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Processes the given click conversions. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ConversionUploadError]() - // [HeaderError]() - // [InternalError]() - // [PartialFailureError]() - // [QuotaError]() - // [RequestError]() - rpc UploadClickConversions(UploadClickConversionsRequest) returns (UploadClickConversionsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:uploadClickConversions" - body: "*" - }; - option (google.api.method_signature) = "customer_id,conversions,partial_failure"; - } - - // Processes the given call conversions. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [PartialFailureError]() - // [QuotaError]() - // [RequestError]() - rpc UploadCallConversions(UploadCallConversionsRequest) returns (UploadCallConversionsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:uploadCallConversions" - body: "*" - }; - option (google.api.method_signature) = "customer_id,conversions,partial_failure"; - } -} - -// Request message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v7.services.ConversionUploadService.UploadClickConversions]. -message UploadClickConversionsRequest { - // Required. The ID of the customer performing the upload. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The conversions that are being uploaded. - repeated ClickConversion conversions = 2 [(google.api.field_behavior) = REQUIRED]; - - // 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. - // This should always be set to true. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// Response message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v7.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 - // outside the conversions (e.g. auth errors), we return an RPC level error. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - google.rpc.Status partial_failure_error = 1; - - // Returned for successfully processed conversions. Proto will be empty for - // rows that received an error. Results are not returned when validate_only is - // true. - repeated ClickConversionResult results = 2; -} - -// Request message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v7.services.ConversionUploadService.UploadCallConversions]. -message UploadCallConversionsRequest { - // Required. The ID of the customer performing the upload. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The conversions that are being uploaded. - repeated CallConversion conversions = 2 [(google.api.field_behavior) = REQUIRED]; - - // 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. - // This should always be set to true. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// Response message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v7.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 - // outside the conversions (e.g. auth errors), we return an RPC level error. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - google.rpc.Status partial_failure_error = 1; - - // Returned for successfully processed conversions. Proto will be empty for - // rows that received an error. Results are not returned when validate_only is - // true. - repeated CallConversionResult results = 2; -} - -// A click conversion. -message ClickConversion { - // The Google click ID (gclid) associated with this conversion. - optional string gclid = 9; - - // Resource name of the conversion action associated with this conversion. - // Note: Although this resource name consists of a customer id and a - // conversion action id, validation will ignore the customer id and use the - // conversion action id as the sole identifier of the conversion action. - optional string conversion_action = 10; - - // The date time at which the conversion occurred. Must be after - // the click time. The timezone must be specified. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. “2019-01-01 12:32:45-08:00”. - optional string conversion_date_time = 11; - - // The value of the conversion for the advertiser. - optional double conversion_value = 12; - - // Currency associated with the conversion value. This is the ISO 4217 - // 3-character currency code. For example: USD, EUR. - optional string currency_code = 13; - - // The order ID associated with the conversion. An order id can only be used - // for one conversion per conversion action. - optional string order_id = 14; - - // Additional data about externally attributed conversions. This field - // is required for conversions with an externally attributed conversion - // action, but should not be set otherwise. - ExternalAttributionData external_attribution_data = 7; - - // The custom variables associated with this conversion. - repeated CustomVariable custom_variables = 15; -} - -// A call conversion. -message CallConversion { - // The caller id from which this call was placed. Caller id is expected to be - // in E.164 format with preceding '+' sign. e.g. "+16502531234". - optional string caller_id = 7; - - // The date time at which the call occurred. The timezone must be specified. - // The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", - // e.g. "2019-01-01 12:32:45-08:00". - optional string call_start_date_time = 8; - - // Resource name of the conversion action associated with this conversion. - // Note: Although this resource name consists of a customer id and a - // conversion action id, validation will ignore the customer id and use the - // conversion action id as the sole identifier of the conversion action. - optional string conversion_action = 9; - - // The date time at which the conversion occurred. Must be after the call - // time. The timezone must be specified. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string conversion_date_time = 10; - - // The value of the conversion for the advertiser. - optional double conversion_value = 11; - - // Currency associated with the conversion value. This is the ISO 4217 - // 3-character currency code. For example: USD, EUR. - optional string currency_code = 12; - - // The custom variables associated with this conversion. - repeated CustomVariable custom_variables = 13; -} - -// Contains additional information about externally attributed conversions. -message ExternalAttributionData { - // Represents the fraction of the conversion that is attributed to the - // Google Ads click. - optional double external_attribution_credit = 3; - - // Specifies the attribution model name. - optional string external_attribution_model = 4; -} - -// Identifying information for a successfully processed ClickConversion. -message ClickConversionResult { - // The Google Click ID (gclid) associated with this conversion. - optional string gclid = 4; - - // Resource name of the conversion action associated with this conversion. - optional string conversion_action = 5; - - // The date time at which the conversion occurred. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. “2019-01-01 12:32:45-08:00”. - optional string conversion_date_time = 6; -} - -// Identifying information for a successfully processed CallConversionUpload. -message CallConversionResult { - // The caller id from which this call was placed. Caller id is expected to be - // in E.164 format with preceding '+' sign. - optional string caller_id = 5; - - // The date time at which the call occurred. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string call_start_date_time = 6; - - // Resource name of the conversion action associated with this conversion. - optional string conversion_action = 7; - - // The date time at which the conversion occurred. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string conversion_date_time = 8; -} - -// A custom variable. -message CustomVariable { - // Resource name of the custom variable associated with this conversion. - // Note: Although this resource name consists of a customer id and a - // conversion custom variable id, validation will ignore the customer id and - // use the conversion custom variable id as the sole identifier of the - // conversion custom variable. - string conversion_custom_variable = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionCustomVariable" - }]; - - // The value string of this custom variable. - // The value of the custom variable should not contain private customer data, - // such as email addresses or phone numbers. - string value = 2; -} diff --git a/google/ads/googleads/v7/services/currency_constant_service.proto b/google/ads/googleads/v7/services/currency_constant_service.proto deleted file mode 100644 index d05ad15ac..000000000 --- a/google/ads/googleads/v7/services/currency_constant_service.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/currency_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CurrencyConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Service to fetch currency constants. -service CurrencyConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested currency constant. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCurrencyConstant(GetCurrencyConstantRequest) returns (google.ads.googleads.v7.resources.CurrencyConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=currencyConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CurrencyConstantService.GetCurrencyConstant][google.ads.googleads.v7.services.CurrencyConstantService.GetCurrencyConstant]. -message GetCurrencyConstantRequest { - // Required. Resource name of the currency constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CurrencyConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/services/custom_audience_service.proto b/google/ads/googleads/v7/services/custom_audience_service.proto deleted file mode 100644 index c09597fee..000000000 --- a/google/ads/googleads/v7/services/custom_audience_service.proto +++ /dev/null @@ -1,140 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Custom Audience service. - -// Service to manage custom audiences. -service CustomAudienceService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested custom audience in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomAudience(GetCustomAudienceRequest) returns (google.ads.googleads.v7.resources.CustomAudience) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customAudiences/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates custom audiences. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CustomAudienceError]() - // [CustomInterestError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [OperationAccessDeniedError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomAudiences(MutateCustomAudiencesRequest) returns (MutateCustomAudiencesResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customAudiences:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomAudienceService.GetCustomAudience][google.ads.googleads.v7.services.CustomAudienceService.GetCustomAudience]. -message GetCustomAudienceRequest { - // Required. The resource name of the custom audience to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomAudience" - } - ]; -} - -// Request message for [CustomAudienceService.MutateCustomAudiences][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual custom audiences. - repeated CustomAudienceOperation operations = 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 operation (create, update) on a custom audience. -message CustomAudienceOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new custom - // audience. - google.ads.googleads.v7.resources.CustomAudience create = 1; - - // Update operation: The custom audience is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.CustomAudience update = 2; - - // Remove operation: A resource name for the removed custom audience is - // expected, in this format: - // - // `customers/{customer_id}/customAudiences/{custom_audience_id}` - string remove = 3; - } -} - -// Response message for custom audience mutate. -message MutateCustomAudiencesResponse { - // All results for the mutate. - repeated MutateCustomAudienceResult results = 1; -} - -// The result for the custom audience mutate. -message MutateCustomAudienceResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/custom_interest_service.proto b/google/ads/googleads/v7/services/custom_interest_service.proto deleted file mode 100644 index 61c244e8d..000000000 --- a/google/ads/googleads/v7/services/custom_interest_service.proto +++ /dev/null @@ -1,132 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Custom Interest service. - -// Service to manage custom interests. -service CustomInterestService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested custom interest in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomInterest(GetCustomInterestRequest) returns (google.ads.googleads.v7.resources.CustomInterest) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customInterests/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates custom interests. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CriterionError]() - // [CustomInterestError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RequestError]() - // [StringLengthError]() - rpc MutateCustomInterests(MutateCustomInterestsRequest) returns (MutateCustomInterestsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customInterests:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomInterestService.GetCustomInterest][google.ads.googleads.v7.services.CustomInterestService.GetCustomInterest]. -message GetCustomInterestRequest { - // Required. The resource name of the custom interest to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomInterest" - } - ]; -} - -// Request message for [CustomInterestService.MutateCustomInterests][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual custom interests. - repeated CustomInterestOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// A single operation (create, update) on a custom interest. -message CustomInterestOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new custom - // interest. - google.ads.googleads.v7.resources.CustomInterest create = 1; - - // Update operation: The custom interest is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.CustomInterest update = 2; - } -} - -// Response message for custom interest mutate. -message MutateCustomInterestsResponse { - // All results for the mutate. - repeated MutateCustomInterestResult results = 2; -} - -// The result for the custom interest mutate. -message MutateCustomInterestResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/customer_asset_service.proto b/google/ads/googleads/v7/services/customer_asset_service.proto deleted file mode 100644 index f1ba4287d..000000000 --- a/google/ads/googleads/v7/services/customer_asset_service.proto +++ /dev/null @@ -1,150 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/customer_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerAssetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CustomerAsset service. - -// Service to manage customer assets. -service CustomerAssetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer asset in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerAsset(GetCustomerAssetRequest) returns (google.ads.googleads.v7.resources.CustomerAsset) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerAssets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes customer assets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerAssets(MutateCustomerAssetsRequest) returns (MutateCustomerAssetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerAssets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomerAssetService.GetCustomerAsset][google.ads.googleads.v7.services.CustomerAssetService.GetCustomerAsset]. -message GetCustomerAssetRequest { - // Required. The resource name of the customer asset to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerAsset" - } - ]; -} - -// Request message for [CustomerAssetService.MutateCustomerAssets][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual customer assets. - repeated CustomerAssetOperation 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; -} - -// A single operation (create, update, remove) on a customer asset. -message CustomerAssetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new customer - // asset. - google.ads.googleads.v7.resources.CustomerAsset create = 1; - - // Update operation: The customer asset is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.CustomerAsset update = 3; - - // Remove operation: A resource name for the removed customer asset is - // expected, in this format: - // - // `customers/{customer_id}/customerAssets/{asset_id}~{field_type}` - string remove = 2; - } -} - -// Response message for a customer asset mutate. -message MutateCustomerAssetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateCustomerAssetResult results = 2; -} - -// The result for the customer asset mutate. -message MutateCustomerAssetResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/customer_client_link_service.proto b/google/ads/googleads/v7/services/customer_client_link_service.proto deleted file mode 100644 index e512a2b7e..000000000 --- a/google/ads/googleads/v7/services/customer_client_link_service.proto +++ /dev/null @@ -1,129 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientLinkServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Service to manage customer client links. -service CustomerClientLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested CustomerClientLink in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerClientLink(GetCustomerClientLinkRequest) returns (google.ads.googleads.v7.resources.CustomerClientLink) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerClientLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates a customer client link. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [ManagerLinkError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerClientLink(MutateCustomerClientLinkRequest) returns (MutateCustomerClientLinkResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerClientLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for [CustomerClientLinkService.GetCustomerClientLink][google.ads.googleads.v7.services.CustomerClientLinkService.GetCustomerClientLink]. -message GetCustomerClientLinkRequest { - // Required. The resource name of the customer client link to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerClientLink" - } - ]; -} - -// Request message for [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v7.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]; - - // Required. The operation to perform on the individual CustomerClientLink. - CustomerClientLinkOperation 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 operation (create, update) on a CustomerClientLink. -message CustomerClientLinkOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new link. - google.ads.googleads.v7.resources.CustomerClientLink create = 1; - - // Update operation: The link is expected to have a valid resource name. - google.ads.googleads.v7.resources.CustomerClientLink update = 2; - } -} - -// Response message for a CustomerClientLink mutate. -message MutateCustomerClientLinkResponse { - // A result that identifies the resource affected by the mutate request. - MutateCustomerClientLinkResult result = 1; -} - -// The result for a single customer client link mutate. -message MutateCustomerClientLinkResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/customer_client_service.proto b/google/ads/googleads/v7/services/customer_client_service.proto deleted file mode 100644 index 4db4772a3..000000000 --- a/google/ads/googleads/v7/services/customer_client_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/customer_client.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Customer Client service. - -// Service to get clients in a customer's hierarchy. -service CustomerClientService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested client in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerClient(GetCustomerClientRequest) returns (google.ads.googleads.v7.resources.CustomerClient) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerClients/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CustomerClientService.GetCustomerClient][google.ads.googleads.v7.services.CustomerClientService.GetCustomerClient]. -message GetCustomerClientRequest { - // Required. The resource name of the client to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerClient" - } - ]; -} diff --git a/google/ads/googleads/v7/services/customer_extension_setting_service.proto b/google/ads/googleads/v7/services/customer_extension_setting_service.proto deleted file mode 100644 index abd75ac2a..000000000 --- a/google/ads/googleads/v7/services/customer_extension_setting_service.proto +++ /dev/null @@ -1,180 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/customer_extension_setting.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CustomerExtensionSetting service. - -// Service to manage customer extension settings. -service CustomerExtensionSettingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer extension setting in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerExtensionSetting(GetCustomerExtensionSettingRequest) returns (google.ads.googleads.v7.resources.CustomerExtensionSetting) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerExtensionSettings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes customer extension settings. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [ExtensionSettingError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateCustomerExtensionSettings(MutateCustomerExtensionSettingsRequest) returns (MutateCustomerExtensionSettingsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerExtensionSettings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [CustomerExtensionSettingService.GetCustomerExtensionSetting][google.ads.googleads.v7.services.CustomerExtensionSettingService.GetCustomerExtensionSetting]. -message GetCustomerExtensionSettingRequest { - // Required. The resource name of the customer extension setting to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerExtensionSetting" - } - ]; -} - -// Request message for -// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v7.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings]. -message MutateCustomerExtensionSettingsRequest { - // Required. The ID of the customer whose customer extension settings are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual customer extension - // settings. - repeated CustomerExtensionSettingOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a customer extension setting. -message CustomerExtensionSettingOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new customer - // extension setting. - google.ads.googleads.v7.resources.CustomerExtensionSetting create = 1; - - // Update operation: The customer extension setting is expected to have a - // valid resource name. - google.ads.googleads.v7.resources.CustomerExtensionSetting update = 2; - - // Remove operation: A resource name for the removed customer extension - // setting is expected, in this format: - // - // `customers/{customer_id}/customerExtensionSettings/{extension_type}` - string remove = 3; - } -} - -// Response message for a customer extension setting mutate. -message MutateCustomerExtensionSettingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCustomerExtensionSettingResult results = 2; -} - -// The result for the customer extension setting mutate. -message MutateCustomerExtensionSettingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CustomerExtensionSetting customer_extension_setting = 2; -} diff --git a/google/ads/googleads/v7/services/customer_feed_service.proto b/google/ads/googleads/v7/services/customer_feed_service.proto deleted file mode 100644 index 3d55e9ec1..000000000 --- a/google/ads/googleads/v7/services/customer_feed_service.proto +++ /dev/null @@ -1,172 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/customer_feed.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerFeedServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CustomerFeed service. - -// Service to manage customer feeds. -service CustomerFeedService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer feed in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerFeed(GetCustomerFeedRequest) returns (google.ads.googleads.v7.resources.CustomerFeed) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerFeeds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes customer feeds. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CustomerFeedError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCustomerFeeds(MutateCustomerFeedsRequest) returns (MutateCustomerFeedsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerFeeds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomerFeedService.GetCustomerFeed][google.ads.googleads.v7.services.CustomerFeedService.GetCustomerFeed]. -message GetCustomerFeedRequest { - // Required. The resource name of the customer feed to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerFeed" - } - ]; -} - -// Request message for [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual customer feeds. - repeated CustomerFeedOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a customer feed. -message CustomerFeedOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new customer feed. - google.ads.googleads.v7.resources.CustomerFeed create = 1; - - // Update operation: The customer feed is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.CustomerFeed update = 2; - - // Remove operation: A resource name for the removed customer feed is - // expected, in this format: - // - // `customers/{customer_id}/customerFeeds/{feed_id}` - string remove = 3; - } -} - -// Response message for a customer feed mutate. -message MutateCustomerFeedsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCustomerFeedResult results = 2; -} - -// The result for the customer feed mutate. -message MutateCustomerFeedResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CustomerFeed customer_feed = 2; -} diff --git a/google/ads/googleads/v7/services/customer_label_service.proto b/google/ads/googleads/v7/services/customer_label_service.proto deleted file mode 100644 index f67c637dc..000000000 --- a/google/ads/googleads/v7/services/customer_label_service.proto +++ /dev/null @@ -1,142 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerLabelServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Customer Label service. - -// Service to manage labels on customers. -service CustomerLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer-label relationship in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerLabel(GetCustomerLabelRequest) returns (google.ads.googleads.v7.resources.CustomerLabel) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes customer-label relationships. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [HeaderError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerLabels(MutateCustomerLabelsRequest) returns (MutateCustomerLabelsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomerLabelService.GetCustomerLabel][google.ads.googleads.v7.services.CustomerLabelService.GetCustomerLabel]. -message GetCustomerLabelRequest { - // Required. The resource name of the customer-label relationship to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerLabel" - } - ]; -} - -// Request message for [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v7.services.CustomerLabelService.MutateCustomerLabels]. -message MutateCustomerLabelsRequest { - // Required. ID of the customer whose customer-label relationships are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on customer-label relationships. - repeated CustomerLabelOperation 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; -} - -// A single operation (create, remove) on a customer-label relationship. -message CustomerLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new customer-label - // relationship. - google.ads.googleads.v7.resources.CustomerLabel create = 1; - - // Remove operation: A resource name for the customer-label relationship - // being removed, in this format: - // - // `customers/{customer_id}/customerLabels/{label_id}` - string remove = 2; - } -} - -// Response message for a customer labels mutate. -message MutateCustomerLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCustomerLabelResult results = 2; -} - -// The result for a customer label mutate. -message MutateCustomerLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/customer_manager_link_service.proto b/google/ads/googleads/v7/services/customer_manager_link_service.proto deleted file mode 100644 index f29f4da78..000000000 --- a/google/ads/googleads/v7/services/customer_manager_link_service.proto +++ /dev/null @@ -1,180 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerManagerLinkServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Service to manage customer-manager links. -service CustomerManagerLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested CustomerManagerLink in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerManagerLink(GetCustomerManagerLinkRequest) returns (google.ads.googleads.v7.resources.CustomerManagerLink) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerManagerLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates customer manager links. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [ManagerLinkError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerManagerLink(MutateCustomerManagerLinkRequest) returns (MutateCustomerManagerLinkResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerManagerLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Moves a client customer to a new manager customer. - // This simplifies the complex request that requires two operations to move - // a client customer to a new manager. i.e: - // 1. Update operation with Status INACTIVE (previous manager) and, - // 2. Update operation with Status ACTIVE (new manager). - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MoveManagerLink(MoveManagerLinkRequest) returns (MoveManagerLinkResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" - body: "*" - }; - option (google.api.method_signature) = "customer_id,previous_customer_manager_link,new_manager"; - } -} - -// Request message for [CustomerManagerLinkService.GetCustomerManagerLink][google.ads.googleads.v7.services.CustomerManagerLinkService.GetCustomerManagerLink]. -message GetCustomerManagerLinkRequest { - // Required. The resource name of the CustomerManagerLink to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerManagerLink" - } - ]; -} - -// Request message for [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v7.services.CustomerManagerLinkService.MutateCustomerManagerLink]. -message MutateCustomerManagerLinkRequest { - // Required. The ID of the customer whose customer manager links are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual customer manager links. - repeated CustomerManagerLinkOperation operations = 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; -} - -// Request message for [CustomerManagerLinkService.MoveManagerLink][google.ads.googleads.v7.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]; - - // Required. The resource name of the previous CustomerManagerLink. - // The resource name has the form: - // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}` - string previous_customer_manager_link = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The resource name of the new manager customer that the client wants to move - // to. Customer resource names have the format: "customers/{customer_id}" - string new_manager = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// Updates the status of a CustomerManagerLink. -// The following actions are possible: -// 1. Update operation with status ACTIVE accepts a pending invitation. -// 2. Update operation with status REFUSED declines a pending invitation. -// 3. Update operation with status INACTIVE terminates link to manager. -message CustomerManagerLinkOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Update operation: The link is expected to have a valid resource name. - google.ads.googleads.v7.resources.CustomerManagerLink update = 2; - } -} - -// Response message for a CustomerManagerLink mutate. -message MutateCustomerManagerLinkResponse { - // A result that identifies the resource affected by the mutate request. - repeated MutateCustomerManagerLinkResult results = 1; -} - -// Response message for a CustomerManagerLink moveManagerLink. -message MoveManagerLinkResponse { - // Returned for successful operations. Represents a CustomerManagerLink - // resource of the newly created link between client customer and new manager - // customer. - string resource_name = 1; -} - -// The result for the customer manager link mutate. -message MutateCustomerManagerLinkResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/customer_negative_criterion_service.proto b/google/ads/googleads/v7/services/customer_negative_criterion_service.proto deleted file mode 100644 index 179cfd7ab..000000000 --- a/google/ads/googleads/v7/services/customer_negative_criterion_service.proto +++ /dev/null @@ -1,152 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerNegativeCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Customer Negative Criterion service. - -// Service to manage customer negative criteria. -service CustomerNegativeCriterionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested criterion in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerNegativeCriterion(GetCustomerNegativeCriterionRequest) returns (google.ads.googleads.v7.resources.CustomerNegativeCriterion) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerNegativeCriteria/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes criteria. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CriterionError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerNegativeCriteria(MutateCustomerNegativeCriteriaRequest) returns (MutateCustomerNegativeCriteriaResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerNegativeCriteria:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [CustomerNegativeCriterionService.GetCustomerNegativeCriterion][google.ads.googleads.v7.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion]. -message GetCustomerNegativeCriterionRequest { - // Required. The resource name of the criterion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerNegativeCriterion" - } - ]; -} - -// Request message for -// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual criteria. - repeated CustomerNegativeCriterionOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create or remove) on a customer level negative criterion. -message CustomerNegativeCriterionOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v7.resources.CustomerNegativeCriterion create = 1; - - // Remove operation: A resource name for the removed criterion is expected, - // in this format: - // - // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}` - string remove = 2; - } -} - -// Response message for customer negative criterion mutate. -message MutateCustomerNegativeCriteriaResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCustomerNegativeCriteriaResult results = 2; -} - -// The result for the criterion mutate. -message MutateCustomerNegativeCriteriaResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.CustomerNegativeCriterion customer_negative_criterion = 2; -} diff --git a/google/ads/googleads/v7/services/customer_service.proto b/google/ads/googleads/v7/services/customer_service.proto deleted file mode 100644 index f00aa1199..000000000 --- a/google/ads/googleads/v7/services/customer_service.proto +++ /dev/null @@ -1,214 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/access_role.proto"; -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Customer service. - -// Service to manage customers. -service CustomerService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomer(GetCustomerRequest) returns (google.ads.googleads.v7.resources.Customer) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Updates a customer. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - // [UrlFieldError]() - rpc MutateCustomer(MutateCustomerRequest) returns (MutateCustomerResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } - - // Returns resource names of customers directly accessible by the - // user authenticating the call. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListAccessibleCustomers(ListAccessibleCustomersRequest) returns (ListAccessibleCustomersResponse) { - option (google.api.http) = { - get: "/v7/customers:listAccessibleCustomers" - }; - } - - // Creates a new client under manager. The new client customer is returned. - // - // List of thrown errors: - // [AccessInvitationError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CurrencyCodeError]() - // [HeaderError]() - // [InternalError]() - // [ManagerLinkError]() - // [QuotaError]() - // [RequestError]() - // [StringLengthError]() - // [TimeZoneError]() - rpc CreateCustomerClient(CreateCustomerClientRequest) returns (CreateCustomerClientResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:createCustomerClient" - body: "*" - }; - option (google.api.method_signature) = "customer_id,customer_client"; - } -} - -// Request message for [CustomerService.GetCustomer][google.ads.googleads.v7.services.CustomerService.GetCustomer]. -message GetCustomerRequest { - // Required. The resource name of the customer to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} - -// Request message for [CustomerService.MutateCustomer][google.ads.googleads.v7.services.CustomerService.MutateCustomer]. -message MutateCustomerRequest { - // Required. The ID of the customer being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on the customer - CustomerOperation operation = 4 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 5; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 6; -} - -// Request message for [CustomerService.CreateCustomerClient][google.ads.googleads.v7.services.CustomerService.CreateCustomerClient]. -message CreateCustomerClientRequest { - // Required. The ID of the Manager under whom client customer is being created. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The new client customer to create. The resource name on this customer - // will be ignored. - google.ads.googleads.v7.resources.Customer customer_client = 2 [(google.api.field_behavior) = REQUIRED]; - - // Email address of the user who should be invited on the created client - // customer. Accessible only to customers on the allow-list. - optional string email_address = 5; - - // The proposed role of user on the created client customer. - // Accessible only to customers on the allow-list. - google.ads.googleads.v7.enums.AccessRoleEnum.AccessRole access_role = 4; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 6; -} - -// A single update on a customer. -message CustomerOperation { - // Mutate operation. Only updates are supported for customer. - google.ads.googleads.v7.resources.Customer update = 1; - - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 2; -} - -// Response message for CreateCustomerClient mutate. -message CreateCustomerClientResponse { - // The resource name of the newly created customer client. - string resource_name = 2; - - // Link for inviting user to access the created customer. Accessible to - // allowlisted customers only. - string invitation_link = 3; -} - -// Response message for customer mutate. -message MutateCustomerResponse { - // Result for the mutate. - MutateCustomerResult result = 2; -} - -// The result for the customer mutate. -message MutateCustomerResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.Customer customer = 2; -} - -// Request message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v7.services.CustomerService.ListAccessibleCustomers]. -message ListAccessibleCustomersRequest { - -} - -// Response message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v7.services.CustomerService.ListAccessibleCustomers]. -message ListAccessibleCustomersResponse { - // Resource name of customers directly accessible by the - // user authenticating the call. - repeated string resource_names = 1; -} diff --git a/google/ads/googleads/v7/services/customer_user_access_invitation_service.proto b/google/ads/googleads/v7/services/customer_user_access_invitation_service.proto deleted file mode 100644 index 40819c3bb..000000000 --- a/google/ads/googleads/v7/services/customer_user_access_invitation_service.proto +++ /dev/null @@ -1,125 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessInvitationServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the CustomerUserAccessInvitation service. - -// This service manages the access invitation extended to users for a given -// customer. -service CustomerUserAccessInvitationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested access invitation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerUserAccessInvitation(GetCustomerUserAccessInvitationRequest) returns (google.ads.googleads.v7.resources.CustomerUserAccessInvitation) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerUserAccessInvitations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes an access invitation. - // - // List of thrown errors: - // [AccessInvitationError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerUserAccessInvitation(MutateCustomerUserAccessInvitationRequest) returns (MutateCustomerUserAccessInvitationResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerUserAccessInvitations:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [CustomerUserAccessInvitation.GetCustomerUserAccessInvitation][] -message GetCustomerUserAccessInvitationRequest { - // Required. Resource name of the access invitation. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerUserAccessInvitation" - } - ]; -} - -// Request message for -// [CustomerUserAccessInvitation.MutateCustomerUserAccessInvitation][] -message MutateCustomerUserAccessInvitationRequest { - // Required. The ID of the customer whose access invitation is being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on the access invitation - CustomerUserAccessInvitationOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A single operation (create or remove) on customer user access invitation. -message CustomerUserAccessInvitationOperation { - // The mutate operation - oneof operation { - // Create operation: No resource name is expected for the new access - // invitation. - google.ads.googleads.v7.resources.CustomerUserAccessInvitation create = 1; - - // Remove operation: A resource name for the revoke invitation is - // expected, in this format: - // - // `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}` - string remove = 2; - } -} - -// Response message for access invitation mutate. -message MutateCustomerUserAccessInvitationResponse { - // Result for the mutate. - MutateCustomerUserAccessInvitationResult result = 1; -} - -// The result for the access invitation mutate. -message MutateCustomerUserAccessInvitationResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/customer_user_access_service.proto b/google/ads/googleads/v7/services/customer_user_access_service.proto deleted file mode 100644 index 227baf3e6..000000000 --- a/google/ads/googleads/v7/services/customer_user_access_service.proto +++ /dev/null @@ -1,129 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// This service manages the permissions of a user on a given customer. -service CustomerUserAccessService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the CustomerUserAccess in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerUserAccess(GetCustomerUserAccessRequest) returns (google.ads.googleads.v7.resources.CustomerUserAccess) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/customerUserAccesses/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Updates, removes permission of a user on a given customer. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CustomerUserAccessError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerUserAccess(MutateCustomerUserAccessRequest) returns (MutateCustomerUserAccessResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/customerUserAccesses:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [CustomerUserAccessService.GetCustomerUserAccess][google.ads.googleads.v7.services.CustomerUserAccessService.GetCustomerUserAccess]. -message GetCustomerUserAccessRequest { - // Required. Resource name of the customer user access. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerUserAccess" - } - ]; -} - -// Mutate Request for -// [CustomerUserAccessService.MutateCustomerUserAccess][google.ads.googleads.v7.services.CustomerUserAccessService.MutateCustomerUserAccess]. -message MutateCustomerUserAccessRequest { - // Required. The ID of the customer being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on the customer - CustomerUserAccessOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A single operation (update, remove) on customer user access. -message CustomerUserAccessOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Update operation: The customer user access is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.CustomerUserAccess update = 1; - - // Remove operation: A resource name for the removed access is - // expected, in this format: - // - // `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}` - string remove = 2; - } -} - -// Response message for customer user access mutate. -message MutateCustomerUserAccessResponse { - // Result for the mutate. - MutateCustomerUserAccessResult result = 1; -} - -// The result for the customer user access mutate. -message MutateCustomerUserAccessResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/detail_placement_view_service.proto b/google/ads/googleads/v7/services/detail_placement_view_service.proto deleted file mode 100644 index c5472bc2f..000000000 --- a/google/ads/googleads/v7/services/detail_placement_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/detail_placement_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DetailPlacementViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Detail Placement View service. - -// Service to fetch Detail Placement views. -service DetailPlacementViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Detail Placement view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDetailPlacementView(GetDetailPlacementViewRequest) returns (google.ads.googleads.v7.resources.DetailPlacementView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/detailPlacementViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [DetailPlacementViewService.GetDetailPlacementView][google.ads.googleads.v7.services.DetailPlacementViewService.GetDetailPlacementView]. -message GetDetailPlacementViewRequest { - // Required. The resource name of the Detail Placement view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DetailPlacementView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/display_keyword_view_service.proto b/google/ads/googleads/v7/services/display_keyword_view_service.proto deleted file mode 100644 index 181b041b3..000000000 --- a/google/ads/googleads/v7/services/display_keyword_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/display_keyword_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DisplayKeywordViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Display Keyword View service. - -// Service to manage display keyword views. -service DisplayKeywordViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested display keyword view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDisplayKeywordView(GetDisplayKeywordViewRequest) returns (google.ads.googleads.v7.resources.DisplayKeywordView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/displayKeywordViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [DisplayKeywordViewService.GetDisplayKeywordView][google.ads.googleads.v7.services.DisplayKeywordViewService.GetDisplayKeywordView]. -message GetDisplayKeywordViewRequest { - // Required. The resource name of the display keyword view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DisplayKeywordView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/distance_view_service.proto b/google/ads/googleads/v7/services/distance_view_service.proto deleted file mode 100644 index 97958e72d..000000000 --- a/google/ads/googleads/v7/services/distance_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/distance_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DistanceViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Distance View service. - -// Service to fetch distance views. -service DistanceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the attributes of the requested distance view. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDistanceView(GetDistanceViewRequest) returns (google.ads.googleads.v7.resources.DistanceView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/distanceViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [DistanceViewService.GetDistanceView][google.ads.googleads.v7.services.DistanceViewService.GetDistanceView]. -message GetDistanceViewRequest { - // Required. The resource name of the distance view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DistanceView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/domain_category_service.proto b/google/ads/googleads/v7/services/domain_category_service.proto deleted file mode 100644 index 105d3587e..000000000 --- a/google/ads/googleads/v7/services/domain_category_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/domain_category.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DomainCategoryServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the DomainCategory Service. - -// Service to fetch domain categories. -service DomainCategoryService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested domain category. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDomainCategory(GetDomainCategoryRequest) returns (google.ads.googleads.v7.resources.DomainCategory) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/domainCategories/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [DomainCategoryService.GetDomainCategory][google.ads.googleads.v7.services.DomainCategoryService.GetDomainCategory]. -message GetDomainCategoryRequest { - // Required. Resource name of the domain category to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DomainCategory" - } - ]; -} diff --git a/google/ads/googleads/v7/services/dynamic_search_ads_search_term_view_service.proto b/google/ads/googleads/v7/services/dynamic_search_ads_search_term_view_service.proto deleted file mode 100644 index a34629024..000000000 --- a/google/ads/googleads/v7/services/dynamic_search_ads_search_term_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/dynamic_search_ads_search_term_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DynamicSearchAdsSearchTermViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Dynamic Search Ads Search Term View service. - -// Service to fetch dynamic search ads views. -service DynamicSearchAdsSearchTermViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested dynamic search ads search term view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDynamicSearchAdsSearchTermView(GetDynamicSearchAdsSearchTermViewRequest) returns (google.ads.googleads.v7.resources.DynamicSearchAdsSearchTermView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView][google.ads.googleads.v7.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView]. -message GetDynamicSearchAdsSearchTermViewRequest { - // Required. The resource name of the dynamic search ads search term view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/expanded_landing_page_view_service.proto b/google/ads/googleads/v7/services/expanded_landing_page_view_service.proto deleted file mode 100644 index 0b3b00e2f..000000000 --- a/google/ads/googleads/v7/services/expanded_landing_page_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/expanded_landing_page_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ExpandedLandingPageViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the expanded landing page view service. - -// Service to fetch expanded landing page views. -service ExpandedLandingPageViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested expanded landing page view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetExpandedLandingPageView(GetExpandedLandingPageViewRequest) returns (google.ads.googleads.v7.resources.ExpandedLandingPageView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/expandedLandingPageViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [ExpandedLandingPageViewService.GetExpandedLandingPageView][google.ads.googleads.v7.services.ExpandedLandingPageViewService.GetExpandedLandingPageView]. -message GetExpandedLandingPageViewRequest { - // Required. The resource name of the expanded landing page view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ExpandedLandingPageView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/extension_feed_item_service.proto b/google/ads/googleads/v7/services/extension_feed_item_service.proto deleted file mode 100644 index 101f06179..000000000 --- a/google/ads/googleads/v7/services/extension_feed_item_service.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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/extension_feed_item.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionFeedItemServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the ExtensionFeedItem service. - -// Service to manage extension feed items. -service ExtensionFeedItemService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested extension feed item in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetExtensionFeedItem(GetExtensionFeedItemRequest) returns (google.ads.googleads.v7.resources.ExtensionFeedItem) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/extensionFeedItems/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes extension feed items. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CountryCodeError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [ExtensionFeedItemError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [ImageError]() - // [InternalError]() - // [LanguageCodeError]() - // [MutateError]() - // [NewResourceCreationError]() - // [OperationAccessDeniedError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateExtensionFeedItems(MutateExtensionFeedItemsRequest) returns (MutateExtensionFeedItemsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/extensionFeedItems:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [ExtensionFeedItemService.GetExtensionFeedItem][google.ads.googleads.v7.services.ExtensionFeedItemService.GetExtensionFeedItem]. -message GetExtensionFeedItemRequest { - // Required. The resource name of the extension feed item to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - } - ]; -} - -// Request message for [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v7.services.ExtensionFeedItemService.MutateExtensionFeedItems]. -message MutateExtensionFeedItemsRequest { - // Required. The ID of the customer whose extension feed items are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual extension feed items. - repeated ExtensionFeedItemOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an extension feed item. -message ExtensionFeedItemOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new extension - // feed item. - google.ads.googleads.v7.resources.ExtensionFeedItem create = 1; - - // Update operation: The extension feed item is expected to have a - // valid resource name. - google.ads.googleads.v7.resources.ExtensionFeedItem update = 2; - - // Remove operation: A resource name for the removed extension feed item - // is expected, in this format: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - string remove = 3; - } -} - -// Response message for an extension feed item mutate. -message MutateExtensionFeedItemsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateExtensionFeedItemResult results = 2; -} - -// The result for the extension feed item mutate. -message MutateExtensionFeedItemResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.ExtensionFeedItem extension_feed_item = 2; -} diff --git a/google/ads/googleads/v7/services/feed_item_service.proto b/google/ads/googleads/v7/services/feed_item_service.proto deleted file mode 100644 index b81938a14..000000000 --- a/google/ads/googleads/v7/services/feed_item_service.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/feed_item.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the FeedItem service. - -// Service to manage feed items. -service FeedItemService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed item in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedItem(GetFeedItemRequest) returns (google.ads.googleads.v7.resources.FeedItem) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/feedItems/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes feed items. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FeedItemError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateFeedItems(MutateFeedItemsRequest) returns (MutateFeedItemsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/feedItems:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedItemService.GetFeedItem][google.ads.googleads.v7.services.FeedItemService.GetFeedItem]. -message GetFeedItemRequest { - // Required. The resource name of the feed item to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; -} - -// Request message for [FeedItemService.MutateFeedItems][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual feed items. - repeated FeedItemOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an feed item. -message FeedItemOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed item. - google.ads.googleads.v7.resources.FeedItem create = 1; - - // Update operation: The feed item is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.FeedItem update = 2; - - // Remove operation: A resource name for the removed feed item is - // expected, in this format: - // - // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}` - string remove = 3; - } -} - -// Response message for an feed item mutate. -message MutateFeedItemsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateFeedItemResult results = 2; -} - -// The result for the feed item mutate. -message MutateFeedItemResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.FeedItem feed_item = 2; -} diff --git a/google/ads/googleads/v7/services/feed_item_set_link_service.proto b/google/ads/googleads/v7/services/feed_item_set_link_service.proto deleted file mode 100644 index 93bef2a8f..000000000 --- a/google/ads/googleads/v7/services/feed_item_set_link_service.proto +++ /dev/null @@ -1,131 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetLinkServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the FeedItemSetLink service. - -// Service to manage feed item set links. -service FeedItemSetLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed item set link in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedItemSetLink(GetFeedItemSetLinkRequest) returns (google.ads.googleads.v7.resources.FeedItemSetLink) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/feedItemSetLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes feed item set links. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateFeedItemSetLinks(MutateFeedItemSetLinksRequest) returns (MutateFeedItemSetLinksResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/feedItemSetLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedItemSetLinkService.GetFeedItemSetLinks][]. -message GetFeedItemSetLinkRequest { - // Required. The resource name of the feed item set link to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSetLink" - } - ]; -} - -// Request message for [FeedItemSetLinkService.MutateFeedItemSetLinks][google.ads.googleads.v7.services.FeedItemSetLinkService.MutateFeedItemSetLinks]. -message MutateFeedItemSetLinksRequest { - // Required. The ID of the customer whose feed item set links are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual feed item set links. - repeated FeedItemSetLinkOperation 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; -} - -// A single operation (create, update, remove) on a feed item set link. -message FeedItemSetLinkOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the - // new feed item set link. - google.ads.googleads.v7.resources.FeedItemSetLink create = 1; - - // Remove operation: A resource name for the removed feed item set link is - // expected, in this format: - // - // `customers/{customer_id}/feedItemSetLinks/{feed_id}_{feed_item_set_id}_{feed_item_id}` - string remove = 2; - } -} - -// Response message for a feed item set link mutate. -message MutateFeedItemSetLinksResponse { - // All results for the mutate. - repeated MutateFeedItemSetLinkResult results = 1; -} - -// The result for the feed item set link mutate. -message MutateFeedItemSetLinkResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/feed_item_set_service.proto b/google/ads/googleads/v7/services/feed_item_set_service.proto deleted file mode 100644 index 67632a2a7..000000000 --- a/google/ads/googleads/v7/services/feed_item_set_service.proto +++ /dev/null @@ -1,139 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/feed_item_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/protobuf/field_mask.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the FeedItemSet service. - -// Service to manage feed Item Set -service FeedItemSetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed item set in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedItemSet(GetFeedItemSetRequest) returns (google.ads.googleads.v7.resources.FeedItemSet) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/feedItemSets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates or removes feed item sets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateFeedItemSets(MutateFeedItemSetsRequest) returns (MutateFeedItemSetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/feedItemSets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedItemSetService.GetFeedItemSet][google.ads.googleads.v7.services.FeedItemSetService.GetFeedItemSet]. -message GetFeedItemSetRequest { - // Required. The resource name of the feed item set to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSet" - } - ]; -} - -// Request message for [FeedItemSetService.MutateFeedItemSets][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual feed item sets. - repeated FeedItemSetOperation 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; -} - -// A single operation (create, remove) on an feed item set. -message FeedItemSetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed item set - google.ads.googleads.v7.resources.FeedItemSet create = 1; - - // Update operation: The feed item set is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.FeedItemSet update = 2; - - // Remove operation: A resource name for the removed feed item is - // expected, in this format: - // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_set_id}` - string remove = 3; - } -} - -// Response message for an feed item set mutate. -message MutateFeedItemSetsResponse { - // All results for the mutate. - repeated MutateFeedItemSetResult results = 1; -} - -// The result for the feed item set mutate. -message MutateFeedItemSetResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/feed_item_target_service.proto b/google/ads/googleads/v7/services/feed_item_target_service.proto deleted file mode 100644 index ef94fef33..000000000 --- a/google/ads/googleads/v7/services/feed_item_target_service.proto +++ /dev/null @@ -1,161 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the FeedItemTarget service. - -// Service to manage feed item targets. -service FeedItemTargetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed item targets in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedItemTarget(GetFeedItemTargetRequest) returns (google.ads.googleads.v7.resources.FeedItemTarget) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/feedItemTargets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes feed item targets. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CriterionError]() - // [DatabaseError]() - // [DistinctError]() - // [FeedItemTargetError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateFeedItemTargets(MutateFeedItemTargetsRequest) returns (MutateFeedItemTargetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/feedItemTargets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedItemTargetService.GetFeedItemTarget][google.ads.googleads.v7.services.FeedItemTargetService.GetFeedItemTarget]. -message GetFeedItemTargetRequest { - // Required. The resource name of the feed item targets to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemTarget" - } - ]; -} - -// Request message for [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v7.services.FeedItemTargetService.MutateFeedItemTargets]. -message MutateFeedItemTargetsRequest { - // Required. The ID of the customer whose feed item targets are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual feed item targets. - repeated FeedItemTargetOperation 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 = 4; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 3; -} - -// A single operation (create, remove) on an feed item target. -message FeedItemTargetOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed item - // target. - google.ads.googleads.v7.resources.FeedItemTarget create = 1; - - // Remove operation: A resource name for the removed feed item target is - // expected, in this format: - // - // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}` - string remove = 2; - } -} - -// Response message for an feed item target mutate. -message MutateFeedItemTargetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateFeedItemTargetResult results = 2; -} - -// The result for the feed item target mutate. -message MutateFeedItemTargetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.FeedItemTarget feed_item_target = 2; -} diff --git a/google/ads/googleads/v7/services/feed_mapping_service.proto b/google/ads/googleads/v7/services/feed_mapping_service.proto deleted file mode 100644 index 97c43e088..000000000 --- a/google/ads/googleads/v7/services/feed_mapping_service.proto +++ /dev/null @@ -1,161 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the FeedMapping service. - -// Service to manage feed mappings. -service FeedMappingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed mapping in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedMapping(GetFeedMappingRequest) returns (google.ads.googleads.v7.resources.FeedMapping) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/feedMappings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes feed mappings. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DistinctError]() - // [FeedMappingError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateFeedMappings(MutateFeedMappingsRequest) returns (MutateFeedMappingsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/feedMappings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedMappingService.GetFeedMapping][google.ads.googleads.v7.services.FeedMappingService.GetFeedMapping]. -message GetFeedMappingRequest { - // Required. The resource name of the feed mapping to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedMapping" - } - ]; -} - -// Request message for [FeedMappingService.MutateFeedMappings][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual feed mappings. - repeated FeedMappingOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove) on a feed mapping. -message FeedMappingOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed mapping. - google.ads.googleads.v7.resources.FeedMapping create = 1; - - // Remove operation: A resource name for the removed feed mapping is - // expected, in this format: - // - // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}` - string remove = 3; - } -} - -// Response message for a feed mapping mutate. -message MutateFeedMappingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateFeedMappingResult results = 2; -} - -// The result for the feed mapping mutate. -message MutateFeedMappingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.FeedMapping feed_mapping = 2; -} diff --git a/google/ads/googleads/v7/services/feed_placeholder_view_service.proto b/google/ads/googleads/v7/services/feed_placeholder_view_service.proto deleted file mode 100644 index 739883411..000000000 --- a/google/ads/googleads/v7/services/feed_placeholder_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/feed_placeholder_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedPlaceholderViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the FeedPlaceholderView service. - -// Service to fetch feed placeholder views. -service FeedPlaceholderViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed placeholder view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedPlaceholderView(GetFeedPlaceholderViewRequest) returns (google.ads.googleads.v7.resources.FeedPlaceholderView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/feedPlaceholderViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [FeedPlaceholderViewService.GetFeedPlaceholderView][google.ads.googleads.v7.services.FeedPlaceholderViewService.GetFeedPlaceholderView]. -message GetFeedPlaceholderViewRequest { - // Required. The resource name of the feed placeholder view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedPlaceholderView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/feed_service.proto b/google/ads/googleads/v7/services/feed_service.proto deleted file mode 100644 index dec8803f8..000000000 --- a/google/ads/googleads/v7/services/feed_service.proto +++ /dev/null @@ -1,173 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/feed.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Feed service. - -// Service to manage feeds. -service FeedService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeed(GetFeedRequest) returns (google.ads.googleads.v7.resources.Feed) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/feeds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes feeds. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DistinctError]() - // [FeedError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateFeeds(MutateFeedsRequest) returns (MutateFeedsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/feeds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedService.GetFeed][google.ads.googleads.v7.services.FeedService.GetFeed]. -message GetFeedRequest { - // Required. The resource name of the feed to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; -} - -// Request message for [FeedService.MutateFeeds][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual feeds. - repeated FeedOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an feed. -message FeedOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed. - google.ads.googleads.v7.resources.Feed create = 1; - - // Update operation: The feed is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.Feed update = 2; - - // Remove operation: A resource name for the removed feed is - // expected, in this format: - // - // `customers/{customer_id}/feeds/{feed_id}` - string remove = 3; - } -} - -// Response message for an feed mutate. -message MutateFeedsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateFeedResult results = 2; -} - -// The result for the feed mutate. -message MutateFeedResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.Feed feed = 2; -} diff --git a/google/ads/googleads/v7/services/gender_view_service.proto b/google/ads/googleads/v7/services/gender_view_service.proto deleted file mode 100644 index 933a141db..000000000 --- a/google/ads/googleads/v7/services/gender_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/gender_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GenderViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Gender View service. - -// Service to manage gender views. -service GenderViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested gender view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGenderView(GetGenderViewRequest) returns (google.ads.googleads.v7.resources.GenderView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/genderViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [GenderViewService.GetGenderView][google.ads.googleads.v7.services.GenderViewService.GetGenderView]. -message GetGenderViewRequest { - // Required. The resource name of the gender view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GenderView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/geo_target_constant_service.proto b/google/ads/googleads/v7/services/geo_target_constant_service.proto deleted file mode 100644 index 4715c44f7..000000000 --- a/google/ads/googleads/v7/services/geo_target_constant_service.proto +++ /dev/null @@ -1,146 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/geo_target_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Geo target constant service. - -// Service to fetch geo target constants. -service GeoTargetConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested geo target constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGeoTargetConstant(GetGeoTargetConstantRequest) returns (google.ads.googleads.v7.resources.GeoTargetConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=geoTargetConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Returns GeoTargetConstant suggestions by location name or by resource name. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [GeoTargetConstantSuggestionError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc SuggestGeoTargetConstants(SuggestGeoTargetConstantsRequest) returns (SuggestGeoTargetConstantsResponse) { - option (google.api.http) = { - post: "/v7/geoTargetConstants:suggest" - body: "*" - }; - } -} - -// Request message for [GeoTargetConstantService.GetGeoTargetConstant][google.ads.googleads.v7.services.GeoTargetConstantService.GetGeoTargetConstant]. -message GetGeoTargetConstantRequest { - // Required. The resource name of the geo target constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; -} - -// Request message for -// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v7.services.GeoTargetConstantService.SuggestGeoTargetConstants]. -message SuggestGeoTargetConstantsRequest { - // A list of location names. - message LocationNames { - // A list of location names. - repeated string names = 2; - } - - // A list of geo target constant resource names. - message GeoTargets { - // A list of geo target constant resource names. - repeated string geo_target_constants = 2; - } - - // If possible, returned geo targets are translated using this locale. If not, - // en is used by default. This is also used as a hint for returned geo - // targets. - optional string locale = 6; - - // Returned geo targets are restricted to this country code. - optional string country_code = 7; - - // Required. A selector of geo target constants. - oneof query { - // The location names to search by. At most 25 names can be set. - LocationNames location_names = 1; - - // The geo target constant resource names to filter by. - GeoTargets geo_targets = 2; - } -} - -// Response message for [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v7.services.GeoTargetConstantService.SuggestGeoTargetConstants]. -message SuggestGeoTargetConstantsResponse { - // Geo target constant suggestions. - repeated GeoTargetConstantSuggestion geo_target_constant_suggestions = 1; -} - -// A geo target constant suggestion. -message GeoTargetConstantSuggestion { - // The language this GeoTargetConstantSuggestion is currently translated to. - // It affects the name of geo target fields. For example, if locale=en, then - // name=Spain. If locale=es, then name=España. The default locale will be - // returned if no translation exists for the locale in the request. - optional string locale = 6; - - // Approximate user population that will be targeted, rounded to the - // nearest 100. - optional int64 reach = 7; - - // If the request searched by location name, this is the location name that - // matched the geo target. - optional string search_term = 8; - - // The GeoTargetConstant result. - google.ads.googleads.v7.resources.GeoTargetConstant geo_target_constant = 4; - - // The list of parents of the geo target constant. - repeated google.ads.googleads.v7.resources.GeoTargetConstant geo_target_constant_parents = 5; -} diff --git a/google/ads/googleads/v7/services/geographic_view_service.proto b/google/ads/googleads/v7/services/geographic_view_service.proto deleted file mode 100644 index db56e01a9..000000000 --- a/google/ads/googleads/v7/services/geographic_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/geographic_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GeographicViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the GeographicViewService. - -// Service to manage geographic views. -service GeographicViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested geographic view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGeographicView(GetGeographicViewRequest) returns (google.ads.googleads.v7.resources.GeographicView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/geographicViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [GeographicViewService.GetGeographicView][google.ads.googleads.v7.services.GeographicViewService.GetGeographicView]. -message GetGeographicViewRequest { - // Required. The resource name of the geographic view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeographicView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/google_ads_field_service.proto b/google/ads/googleads/v7/services/google_ads_field_service.proto deleted file mode 100644 index 9219d20dd..000000000 --- a/google/ads/googleads/v7/services/google_ads_field_service.proto +++ /dev/null @@ -1,115 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsFieldServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the GoogleAdsFieldService. - -// Service to fetch Google Ads API fields. -service GoogleAdsFieldService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns just the requested field. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGoogleAdsField(GetGoogleAdsFieldRequest) returns (google.ads.googleads.v7.resources.GoogleAdsField) { - option (google.api.http) = { - get: "/v7/{resource_name=googleAdsFields/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Returns all fields that match the search query. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QueryError]() - // [QuotaError]() - // [RequestError]() - rpc SearchGoogleAdsFields(SearchGoogleAdsFieldsRequest) returns (SearchGoogleAdsFieldsResponse) { - option (google.api.http) = { - post: "/v7/googleAdsFields:search" - body: "*" - }; - option (google.api.method_signature) = "query"; - } -} - -// Request message for [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v7.services.GoogleAdsFieldService.GetGoogleAdsField]. -message GetGoogleAdsFieldRequest { - // Required. The resource name of the field to get. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GoogleAdsField" - } - ]; -} - -// Request message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v7.services.GoogleAdsFieldService.SearchGoogleAdsFields]. -message SearchGoogleAdsFieldsRequest { - // Required. The query string. - string query = 1 [(google.api.field_behavior) = REQUIRED]; - - // Token of the page to retrieve. If not specified, the first page of - // results will be returned. Use the value obtained from `next_page_token` - // in the previous response in order to request the next page of results. - string page_token = 2; - - // Number of elements to retrieve in a single page. - // When too large a page is requested, the server may decide to further - // limit the number of returned resources. - int32 page_size = 3; -} - -// Response message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v7.services.GoogleAdsFieldService.SearchGoogleAdsFields]. -message SearchGoogleAdsFieldsResponse { - // The list of fields that matched the query. - repeated google.ads.googleads.v7.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. - // `next_page_token` is not returned for the last page. - string next_page_token = 2; - - // Total number of results that match the query ignoring the LIMIT clause. - int64 total_results_count = 3; -} diff --git a/google/ads/googleads/v7/services/google_ads_service.proto b/google/ads/googleads/v7/services/google_ads_service.proto deleted file mode 100644 index 644b08d8d..000000000 --- a/google/ads/googleads/v7/services/google_ads_service.proto +++ /dev/null @@ -1,1177 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/metrics.proto"; -import "google/ads/googleads/v7/common/segments.proto"; -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/enums/summary_row_setting.proto"; -import "google/ads/googleads/v7/resources/account_budget.proto"; -import "google/ads/googleads/v7/resources/account_budget_proposal.proto"; -import "google/ads/googleads/v7/resources/account_link.proto"; -import "google/ads/googleads/v7/resources/ad_group.proto"; -import "google/ads/googleads/v7/resources/ad_group_ad.proto"; -import "google/ads/googleads/v7/resources/ad_group_ad_asset_view.proto"; -import "google/ads/googleads/v7/resources/ad_group_ad_label.proto"; -import "google/ads/googleads/v7/resources/ad_group_asset.proto"; -import "google/ads/googleads/v7/resources/ad_group_audience_view.proto"; -import "google/ads/googleads/v7/resources/ad_group_bid_modifier.proto"; -import "google/ads/googleads/v7/resources/ad_group_criterion.proto"; -import "google/ads/googleads/v7/resources/ad_group_criterion_label.proto"; -import "google/ads/googleads/v7/resources/ad_group_criterion_simulation.proto"; -import "google/ads/googleads/v7/resources/ad_group_extension_setting.proto"; -import "google/ads/googleads/v7/resources/ad_group_feed.proto"; -import "google/ads/googleads/v7/resources/ad_group_label.proto"; -import "google/ads/googleads/v7/resources/ad_group_simulation.proto"; -import "google/ads/googleads/v7/resources/ad_parameter.proto"; -import "google/ads/googleads/v7/resources/ad_schedule_view.proto"; -import "google/ads/googleads/v7/resources/age_range_view.proto"; -import "google/ads/googleads/v7/resources/asset.proto"; -import "google/ads/googleads/v7/resources/batch_job.proto"; -import "google/ads/googleads/v7/resources/bidding_strategy.proto"; -import "google/ads/googleads/v7/resources/bidding_strategy_simulation.proto"; -import "google/ads/googleads/v7/resources/billing_setup.proto"; -import "google/ads/googleads/v7/resources/call_view.proto"; -import "google/ads/googleads/v7/resources/campaign.proto"; -import "google/ads/googleads/v7/resources/campaign_asset.proto"; -import "google/ads/googleads/v7/resources/campaign_audience_view.proto"; -import "google/ads/googleads/v7/resources/campaign_bid_modifier.proto"; -import "google/ads/googleads/v7/resources/campaign_budget.proto"; -import "google/ads/googleads/v7/resources/campaign_criterion.proto"; -import "google/ads/googleads/v7/resources/campaign_criterion_simulation.proto"; -import "google/ads/googleads/v7/resources/campaign_draft.proto"; -import "google/ads/googleads/v7/resources/campaign_experiment.proto"; -import "google/ads/googleads/v7/resources/campaign_extension_setting.proto"; -import "google/ads/googleads/v7/resources/campaign_feed.proto"; -import "google/ads/googleads/v7/resources/campaign_label.proto"; -import "google/ads/googleads/v7/resources/campaign_shared_set.proto"; -import "google/ads/googleads/v7/resources/campaign_simulation.proto"; -import "google/ads/googleads/v7/resources/carrier_constant.proto"; -import "google/ads/googleads/v7/resources/change_event.proto"; -import "google/ads/googleads/v7/resources/change_status.proto"; -import "google/ads/googleads/v7/resources/click_view.proto"; -import "google/ads/googleads/v7/resources/combined_audience.proto"; -import "google/ads/googleads/v7/resources/conversion_action.proto"; -import "google/ads/googleads/v7/resources/conversion_custom_variable.proto"; -import "google/ads/googleads/v7/resources/currency_constant.proto"; -import "google/ads/googleads/v7/resources/custom_audience.proto"; -import "google/ads/googleads/v7/resources/custom_interest.proto"; -import "google/ads/googleads/v7/resources/customer.proto"; -import "google/ads/googleads/v7/resources/customer_asset.proto"; -import "google/ads/googleads/v7/resources/customer_client.proto"; -import "google/ads/googleads/v7/resources/customer_client_link.proto"; -import "google/ads/googleads/v7/resources/customer_extension_setting.proto"; -import "google/ads/googleads/v7/resources/customer_feed.proto"; -import "google/ads/googleads/v7/resources/customer_label.proto"; -import "google/ads/googleads/v7/resources/customer_manager_link.proto"; -import "google/ads/googleads/v7/resources/customer_negative_criterion.proto"; -import "google/ads/googleads/v7/resources/customer_user_access.proto"; -import "google/ads/googleads/v7/resources/customer_user_access_invitation.proto"; -import "google/ads/googleads/v7/resources/detail_placement_view.proto"; -import "google/ads/googleads/v7/resources/display_keyword_view.proto"; -import "google/ads/googleads/v7/resources/distance_view.proto"; -import "google/ads/googleads/v7/resources/domain_category.proto"; -import "google/ads/googleads/v7/resources/dynamic_search_ads_search_term_view.proto"; -import "google/ads/googleads/v7/resources/expanded_landing_page_view.proto"; -import "google/ads/googleads/v7/resources/extension_feed_item.proto"; -import "google/ads/googleads/v7/resources/feed.proto"; -import "google/ads/googleads/v7/resources/feed_item.proto"; -import "google/ads/googleads/v7/resources/feed_item_set.proto"; -import "google/ads/googleads/v7/resources/feed_item_set_link.proto"; -import "google/ads/googleads/v7/resources/feed_item_target.proto"; -import "google/ads/googleads/v7/resources/feed_mapping.proto"; -import "google/ads/googleads/v7/resources/feed_placeholder_view.proto"; -import "google/ads/googleads/v7/resources/gender_view.proto"; -import "google/ads/googleads/v7/resources/geo_target_constant.proto"; -import "google/ads/googleads/v7/resources/geographic_view.proto"; -import "google/ads/googleads/v7/resources/group_placement_view.proto"; -import "google/ads/googleads/v7/resources/hotel_group_view.proto"; -import "google/ads/googleads/v7/resources/hotel_performance_view.proto"; -import "google/ads/googleads/v7/resources/income_range_view.proto"; -import "google/ads/googleads/v7/resources/keyword_plan.proto"; -import "google/ads/googleads/v7/resources/keyword_plan_ad_group.proto"; -import "google/ads/googleads/v7/resources/keyword_plan_ad_group_keyword.proto"; -import "google/ads/googleads/v7/resources/keyword_plan_campaign.proto"; -import "google/ads/googleads/v7/resources/keyword_plan_campaign_keyword.proto"; -import "google/ads/googleads/v7/resources/keyword_view.proto"; -import "google/ads/googleads/v7/resources/label.proto"; -import "google/ads/googleads/v7/resources/landing_page_view.proto"; -import "google/ads/googleads/v7/resources/language_constant.proto"; -import "google/ads/googleads/v7/resources/life_event.proto"; -import "google/ads/googleads/v7/resources/location_view.proto"; -import "google/ads/googleads/v7/resources/managed_placement_view.proto"; -import "google/ads/googleads/v7/resources/media_file.proto"; -import "google/ads/googleads/v7/resources/mobile_app_category_constant.proto"; -import "google/ads/googleads/v7/resources/mobile_device_constant.proto"; -import "google/ads/googleads/v7/resources/offline_user_data_job.proto"; -import "google/ads/googleads/v7/resources/operating_system_version_constant.proto"; -import "google/ads/googleads/v7/resources/paid_organic_search_term_view.proto"; -import "google/ads/googleads/v7/resources/parental_status_view.proto"; -import "google/ads/googleads/v7/resources/product_bidding_category_constant.proto"; -import "google/ads/googleads/v7/resources/product_group_view.proto"; -import "google/ads/googleads/v7/resources/recommendation.proto"; -import "google/ads/googleads/v7/resources/remarketing_action.proto"; -import "google/ads/googleads/v7/resources/search_term_view.proto"; -import "google/ads/googleads/v7/resources/shared_criterion.proto"; -import "google/ads/googleads/v7/resources/shared_set.proto"; -import "google/ads/googleads/v7/resources/shopping_performance_view.proto"; -import "google/ads/googleads/v7/resources/third_party_app_analytics_link.proto"; -import "google/ads/googleads/v7/resources/topic_constant.proto"; -import "google/ads/googleads/v7/resources/topic_view.proto"; -import "google/ads/googleads/v7/resources/user_interest.proto"; -import "google/ads/googleads/v7/resources/user_list.proto"; -import "google/ads/googleads/v7/resources/user_location_view.proto"; -import "google/ads/googleads/v7/resources/video.proto"; -import "google/ads/googleads/v7/resources/webpage_view.proto"; -import "google/ads/googleads/v7/services/ad_group_ad_label_service.proto"; -import "google/ads/googleads/v7/services/ad_group_ad_service.proto"; -import "google/ads/googleads/v7/services/ad_group_asset_service.proto"; -import "google/ads/googleads/v7/services/ad_group_bid_modifier_service.proto"; -import "google/ads/googleads/v7/services/ad_group_criterion_label_service.proto"; -import "google/ads/googleads/v7/services/ad_group_criterion_service.proto"; -import "google/ads/googleads/v7/services/ad_group_extension_setting_service.proto"; -import "google/ads/googleads/v7/services/ad_group_feed_service.proto"; -import "google/ads/googleads/v7/services/ad_group_label_service.proto"; -import "google/ads/googleads/v7/services/ad_group_service.proto"; -import "google/ads/googleads/v7/services/ad_parameter_service.proto"; -import "google/ads/googleads/v7/services/ad_service.proto"; -import "google/ads/googleads/v7/services/asset_service.proto"; -import "google/ads/googleads/v7/services/bidding_strategy_service.proto"; -import "google/ads/googleads/v7/services/campaign_asset_service.proto"; -import "google/ads/googleads/v7/services/campaign_bid_modifier_service.proto"; -import "google/ads/googleads/v7/services/campaign_budget_service.proto"; -import "google/ads/googleads/v7/services/campaign_criterion_service.proto"; -import "google/ads/googleads/v7/services/campaign_draft_service.proto"; -import "google/ads/googleads/v7/services/campaign_experiment_service.proto"; -import "google/ads/googleads/v7/services/campaign_extension_setting_service.proto"; -import "google/ads/googleads/v7/services/campaign_feed_service.proto"; -import "google/ads/googleads/v7/services/campaign_label_service.proto"; -import "google/ads/googleads/v7/services/campaign_service.proto"; -import "google/ads/googleads/v7/services/campaign_shared_set_service.proto"; -import "google/ads/googleads/v7/services/conversion_action_service.proto"; -import "google/ads/googleads/v7/services/conversion_custom_variable_service.proto"; -import "google/ads/googleads/v7/services/customer_asset_service.proto"; -import "google/ads/googleads/v7/services/customer_extension_setting_service.proto"; -import "google/ads/googleads/v7/services/customer_feed_service.proto"; -import "google/ads/googleads/v7/services/customer_label_service.proto"; -import "google/ads/googleads/v7/services/customer_negative_criterion_service.proto"; -import "google/ads/googleads/v7/services/customer_service.proto"; -import "google/ads/googleads/v7/services/extension_feed_item_service.proto"; -import "google/ads/googleads/v7/services/feed_item_service.proto"; -import "google/ads/googleads/v7/services/feed_item_set_link_service.proto"; -import "google/ads/googleads/v7/services/feed_item_set_service.proto"; -import "google/ads/googleads/v7/services/feed_item_target_service.proto"; -import "google/ads/googleads/v7/services/feed_mapping_service.proto"; -import "google/ads/googleads/v7/services/feed_service.proto"; -import "google/ads/googleads/v7/services/keyword_plan_ad_group_keyword_service.proto"; -import "google/ads/googleads/v7/services/keyword_plan_ad_group_service.proto"; -import "google/ads/googleads/v7/services/keyword_plan_campaign_keyword_service.proto"; -import "google/ads/googleads/v7/services/keyword_plan_campaign_service.proto"; -import "google/ads/googleads/v7/services/keyword_plan_service.proto"; -import "google/ads/googleads/v7/services/label_service.proto"; -import "google/ads/googleads/v7/services/media_file_service.proto"; -import "google/ads/googleads/v7/services/remarketing_action_service.proto"; -import "google/ads/googleads/v7/services/shared_criterion_service.proto"; -import "google/ads/googleads/v7/services/shared_set_service.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the GoogleAdsService. - -// Service to fetch data and metrics across resources. -service GoogleAdsService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns all rows that match the search query. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ChangeEventError]() - // [ChangeStatusError]() - // [ClickViewError]() - // [HeaderError]() - // [InternalError]() - // [QueryError]() - // [QuotaError]() - // [RequestError]() - rpc Search(SearchGoogleAdsRequest) returns (SearchGoogleAdsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/googleAds:search" - body: "*" - }; - option (google.api.method_signature) = "customer_id,query"; - } - - // Returns all rows that match the search stream query. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ChangeEventError]() - // [ChangeStatusError]() - // [ClickViewError]() - // [HeaderError]() - // [InternalError]() - // [QueryError]() - // [QuotaError]() - // [RequestError]() - rpc SearchStream(SearchGoogleAdsStreamRequest) returns (stream SearchGoogleAdsStreamResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/googleAds:searchStream" - body: "*" - }; - option (google.api.method_signature) = "customer_id,query"; - } - - // Creates, updates, or removes resources. This method supports atomic - // transactions with multiple types of resources. For example, you can - // atomically create a campaign and a campaign budget, or perform up to - // thousands of mutates atomically. - // - // This method is essentially a wrapper around a series of mutate methods. The - // only features it offers over calling those methods directly are: - // - // - Atomic transactions - // - Temp resource names (described below) - // - Somewhat reduced latency over making a series of mutate calls - // - // Note: Only resources that support atomic transactions are included, so this - // method can't replace all calls to individual services. - // - // ## Atomic Transaction Benefits - // - // Atomicity makes error handling much easier. If you're making a series of - // changes and one fails, it can leave your account in an inconsistent state. - // With atomicity, you either reach the desired state directly, or the request - // fails and you can retry. - // - // ## Temp Resource Names - // - // Temp resource names are a special type of resource name used to create a - // resource and reference that resource in the same request. For example, if a - // campaign budget is created with `resource_name` equal to - // `customers/123/campaignBudgets/-1`, that resource name can be reused in - // the `Campaign.budget` field in the same request. That way, the two - // resources are created and linked atomically. - // - // To create a temp resource name, put a negative number in the part of the - // name that the server would normally allocate. - // - // Note: - // - // - Resources must be created with a temp name before the name can be reused. - // For example, the previous CampaignBudget+Campaign example would fail if - // the mutate order was reversed. - // - Temp names are not remembered across requests. - // - There's no limit to the number of temp names in a request. - // - Each temp name must use a unique negative number, even if the resource - // types differ. - // - // ## Latency - // - // It's important to group mutates by resource type or the request may time - // out and fail. Latency is roughly equal to a series of calls to individual - // mutate methods, where each change in resource type is a new call. For - // example, mutating 10 campaigns then 10 ad groups is like 2 calls, while - // mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is like 4 calls. - // - // List of thrown errors: - // [AdCustomizerError]() - // [AdError]() - // [AdGroupAdError]() - // [AdGroupCriterionError]() - // [AdGroupError]() - // [AssetError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [CampaignBudgetError]() - // [CampaignCriterionError]() - // [CampaignError]() - // [CampaignExperimentError]() - // [CampaignSharedSetError]() - // [CollectionSizeError]() - // [ContextError]() - // [ConversionActionError]() - // [CriterionError]() - // [CustomerFeedError]() - // [DatabaseError]() - // [DateError]() - // [DateRangeError]() - // [DistinctError]() - // [ExtensionFeedItemError]() - // [ExtensionSettingError]() - // [FeedAttributeReferenceError]() - // [FeedError]() - // [FeedItemError]() - // [FeedItemSetError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionParsingError]() - // [HeaderError]() - // [ImageError]() - // [InternalError]() - // [KeywordPlanAdGroupKeywordError]() - // [KeywordPlanCampaignError]() - // [KeywordPlanError]() - // [LabelError]() - // [ListOperationError]() - // [MediaUploadError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [PolicyFindingError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SettingError]() - // [SharedSetError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - // [UserListError]() - // [YoutubeVideoRegistrationError]() - rpc Mutate(MutateGoogleAdsRequest) returns (MutateGoogleAdsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/googleAds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,mutate_operations"; - } -} - -// Request message for [GoogleAdsService.Search][google.ads.googleads.v7.services.GoogleAdsService.Search]. -message SearchGoogleAdsRequest { - // Required. The ID of the customer being queried. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The query string. - string query = 2 [(google.api.field_behavior) = REQUIRED]; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. Use the value obtained from - // `next_page_token` in the previous response in order to request - // the next page of results. - string page_token = 3; - - // Number of elements to retrieve in a single page. - // When too large a page is requested, the server may decide to - // further limit the number of returned resources. - int32 page_size = 4; - - // If true, the request is validated but not executed. - bool validate_only = 5; - - // If true, the total number of results that match the query ignoring the - // LIMIT clause will be included in the response. - // Default is false. - bool return_total_results_count = 7; - - // 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.v7.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 8; -} - -// Response message for [GoogleAdsService.Search][google.ads.googleads.v7.services.GoogleAdsService.Search]. -message SearchGoogleAdsResponse { - // The list of rows that matched the query. - repeated GoogleAdsRow 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. `next_page_token` is not returned for the last - // page. - string next_page_token = 2; - - // Total number of results that match the query ignoring the LIMIT - // clause. - int64 total_results_count = 3; - - // FieldMask that represents what fields were requested by the user. - google.protobuf.FieldMask field_mask = 5; - - // Summary row that contains summary of metrics in results. - // Summary of metrics means aggregation of metrics across all results, - // here aggregation could be sum, average, rate, etc. - GoogleAdsRow summary_row = 6; -} - -// Request message for [GoogleAdsService.SearchStream][google.ads.googleads.v7.services.GoogleAdsService.SearchStream]. -message SearchGoogleAdsStreamRequest { - // Required. The ID of the customer being queried. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The query string. - string query = 2 [(google.api.field_behavior) = REQUIRED]; - - // 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.v7.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 3; -} - -// Response message for [GoogleAdsService.SearchStream][google.ads.googleads.v7.services.GoogleAdsService.SearchStream]. -message SearchGoogleAdsStreamResponse { - // The list of rows that matched the query. - repeated GoogleAdsRow results = 1; - - // FieldMask that represents what fields were requested by the user. - google.protobuf.FieldMask field_mask = 2; - - // Summary row that contains summary of metrics in results. - // Summary of metrics means aggregation of metrics across all results, - // here aggregation could be sum, average, rate, etc. - GoogleAdsRow summary_row = 3; - - // The unique id of the request that is used for debugging purposes. - string request_id = 4; -} - -// A returned row from the query. -message GoogleAdsRow { - // The account budget in the query. - google.ads.googleads.v7.resources.AccountBudget account_budget = 42; - - // The account budget proposal referenced in the query. - google.ads.googleads.v7.resources.AccountBudgetProposal account_budget_proposal = 43; - - // The AccountLink referenced in the query. - google.ads.googleads.v7.resources.AccountLink account_link = 143; - - // The ad group referenced in the query. - google.ads.googleads.v7.resources.AdGroup ad_group = 3; - - // The ad referenced in the query. - google.ads.googleads.v7.resources.AdGroupAd ad_group_ad = 16; - - // The ad group ad asset view in the query. - google.ads.googleads.v7.resources.AdGroupAdAssetView ad_group_ad_asset_view = 131; - - // The ad group ad label referenced in the query. - google.ads.googleads.v7.resources.AdGroupAdLabel ad_group_ad_label = 120; - - // The ad group asset referenced in the query. - google.ads.googleads.v7.resources.AdGroupAsset ad_group_asset = 154; - - // The ad group audience view referenced in the query. - google.ads.googleads.v7.resources.AdGroupAudienceView ad_group_audience_view = 57; - - // The bid modifier referenced in the query. - google.ads.googleads.v7.resources.AdGroupBidModifier ad_group_bid_modifier = 24; - - // The criterion referenced in the query. - google.ads.googleads.v7.resources.AdGroupCriterion ad_group_criterion = 17; - - // The ad group criterion label referenced in the query. - google.ads.googleads.v7.resources.AdGroupCriterionLabel ad_group_criterion_label = 121; - - // The ad group criterion simulation referenced in the query. - google.ads.googleads.v7.resources.AdGroupCriterionSimulation ad_group_criterion_simulation = 110; - - // The ad group extension setting referenced in the query. - google.ads.googleads.v7.resources.AdGroupExtensionSetting ad_group_extension_setting = 112; - - // The ad group feed referenced in the query. - google.ads.googleads.v7.resources.AdGroupFeed ad_group_feed = 67; - - // The ad group label referenced in the query. - google.ads.googleads.v7.resources.AdGroupLabel ad_group_label = 115; - - // The ad group simulation referenced in the query. - google.ads.googleads.v7.resources.AdGroupSimulation ad_group_simulation = 107; - - // The ad parameter referenced in the query. - google.ads.googleads.v7.resources.AdParameter ad_parameter = 130; - - // The age range view referenced in the query. - google.ads.googleads.v7.resources.AgeRangeView age_range_view = 48; - - // The ad schedule view referenced in the query. - google.ads.googleads.v7.resources.AdScheduleView ad_schedule_view = 89; - - // The domain category referenced in the query. - google.ads.googleads.v7.resources.DomainCategory domain_category = 91; - - // The asset referenced in the query. - google.ads.googleads.v7.resources.Asset asset = 105; - - // The batch job referenced in the query. - google.ads.googleads.v7.resources.BatchJob batch_job = 139; - - // The bidding strategy referenced in the query. - google.ads.googleads.v7.resources.BiddingStrategy bidding_strategy = 18; - - // The bidding strategy simulation referenced in the query. - google.ads.googleads.v7.resources.BiddingStrategySimulation bidding_strategy_simulation = 158; - - // The billing setup referenced in the query. - google.ads.googleads.v7.resources.BillingSetup billing_setup = 41; - - // The call view referenced in the query. - google.ads.googleads.v7.resources.CallView call_view = 152; - - // The campaign budget referenced in the query. - google.ads.googleads.v7.resources.CampaignBudget campaign_budget = 19; - - // The campaign referenced in the query. - google.ads.googleads.v7.resources.Campaign campaign = 2; - - // The campaign asset referenced in the query. - google.ads.googleads.v7.resources.CampaignAsset campaign_asset = 142; - - // The campaign audience view referenced in the query. - google.ads.googleads.v7.resources.CampaignAudienceView campaign_audience_view = 69; - - // The campaign bid modifier referenced in the query. - google.ads.googleads.v7.resources.CampaignBidModifier campaign_bid_modifier = 26; - - // The campaign criterion referenced in the query. - google.ads.googleads.v7.resources.CampaignCriterion campaign_criterion = 20; - - // The campaign criterion simulation referenced in the query. - google.ads.googleads.v7.resources.CampaignCriterionSimulation campaign_criterion_simulation = 111; - - // The campaign draft referenced in the query. - google.ads.googleads.v7.resources.CampaignDraft campaign_draft = 49; - - // The campaign experiment referenced in the query. - google.ads.googleads.v7.resources.CampaignExperiment campaign_experiment = 84; - - // The campaign extension setting referenced in the query. - google.ads.googleads.v7.resources.CampaignExtensionSetting campaign_extension_setting = 113; - - // The campaign feed referenced in the query. - google.ads.googleads.v7.resources.CampaignFeed campaign_feed = 63; - - // The campaign label referenced in the query. - google.ads.googleads.v7.resources.CampaignLabel campaign_label = 108; - - // Campaign Shared Set referenced in AWQL query. - google.ads.googleads.v7.resources.CampaignSharedSet campaign_shared_set = 30; - - // The campaign simulation referenced in the query. - google.ads.googleads.v7.resources.CampaignSimulation campaign_simulation = 157; - - // The carrier constant referenced in the query. - google.ads.googleads.v7.resources.CarrierConstant carrier_constant = 66; - - // The ChangeEvent referenced in the query. - google.ads.googleads.v7.resources.ChangeEvent change_event = 145; - - // The ChangeStatus referenced in the query. - google.ads.googleads.v7.resources.ChangeStatus change_status = 37; - - // The CombinedAudience referenced in the query. - google.ads.googleads.v7.resources.CombinedAudience combined_audience = 148; - - // The conversion action referenced in the query. - google.ads.googleads.v7.resources.ConversionAction conversion_action = 103; - - // The conversion custom variable referenced in the query. - google.ads.googleads.v7.resources.ConversionCustomVariable conversion_custom_variable = 153; - - // The ClickView referenced in the query. - google.ads.googleads.v7.resources.ClickView click_view = 122; - - // The currency constant referenced in the query. - google.ads.googleads.v7.resources.CurrencyConstant currency_constant = 134; - - // The CustomAudience referenced in the query. - google.ads.googleads.v7.resources.CustomAudience custom_audience = 147; - - // The CustomInterest referenced in the query. - google.ads.googleads.v7.resources.CustomInterest custom_interest = 104; - - // The customer referenced in the query. - google.ads.googleads.v7.resources.Customer customer = 1; - - // The customer asset referenced in the query. - google.ads.googleads.v7.resources.CustomerAsset customer_asset = 155; - - // The CustomerManagerLink referenced in the query. - google.ads.googleads.v7.resources.CustomerManagerLink customer_manager_link = 61; - - // The CustomerClientLink referenced in the query. - google.ads.googleads.v7.resources.CustomerClientLink customer_client_link = 62; - - // The CustomerClient referenced in the query. - google.ads.googleads.v7.resources.CustomerClient customer_client = 70; - - // The customer extension setting referenced in the query. - google.ads.googleads.v7.resources.CustomerExtensionSetting customer_extension_setting = 114; - - // The customer feed referenced in the query. - google.ads.googleads.v7.resources.CustomerFeed customer_feed = 64; - - // The customer label referenced in the query. - google.ads.googleads.v7.resources.CustomerLabel customer_label = 124; - - // The customer negative criterion referenced in the query. - google.ads.googleads.v7.resources.CustomerNegativeCriterion customer_negative_criterion = 88; - - // The CustomerUserAccess referenced in the query. - google.ads.googleads.v7.resources.CustomerUserAccess customer_user_access = 146; - - // The CustomerUserAccessInvitation referenced in the query. - google.ads.googleads.v7.resources.CustomerUserAccessInvitation customer_user_access_invitation = 150; - - // The detail placement view referenced in the query. - google.ads.googleads.v7.resources.DetailPlacementView detail_placement_view = 118; - - // The display keyword view referenced in the query. - google.ads.googleads.v7.resources.DisplayKeywordView display_keyword_view = 47; - - // The distance view referenced in the query. - google.ads.googleads.v7.resources.DistanceView distance_view = 132; - - // The dynamic search ads search term view referenced in the query. - google.ads.googleads.v7.resources.DynamicSearchAdsSearchTermView dynamic_search_ads_search_term_view = 106; - - // The expanded landing page view referenced in the query. - google.ads.googleads.v7.resources.ExpandedLandingPageView expanded_landing_page_view = 128; - - // The extension feed item referenced in the query. - google.ads.googleads.v7.resources.ExtensionFeedItem extension_feed_item = 85; - - // The feed referenced in the query. - google.ads.googleads.v7.resources.Feed feed = 46; - - // The feed item referenced in the query. - google.ads.googleads.v7.resources.FeedItem feed_item = 50; - - // The feed item set referenced in the query. - google.ads.googleads.v7.resources.FeedItemSet feed_item_set = 149; - - // The feed item set link referenced in the query. - google.ads.googleads.v7.resources.FeedItemSetLink feed_item_set_link = 151; - - // The feed item target referenced in the query. - google.ads.googleads.v7.resources.FeedItemTarget feed_item_target = 116; - - // The feed mapping referenced in the query. - google.ads.googleads.v7.resources.FeedMapping feed_mapping = 58; - - // The feed placeholder view referenced in the query. - google.ads.googleads.v7.resources.FeedPlaceholderView feed_placeholder_view = 97; - - // The gender view referenced in the query. - google.ads.googleads.v7.resources.GenderView gender_view = 40; - - // The geo target constant referenced in the query. - google.ads.googleads.v7.resources.GeoTargetConstant geo_target_constant = 23; - - // The geographic view referenced in the query. - google.ads.googleads.v7.resources.GeographicView geographic_view = 125; - - // The group placement view referenced in the query. - google.ads.googleads.v7.resources.GroupPlacementView group_placement_view = 119; - - // The hotel group view referenced in the query. - google.ads.googleads.v7.resources.HotelGroupView hotel_group_view = 51; - - // The hotel performance view referenced in the query. - google.ads.googleads.v7.resources.HotelPerformanceView hotel_performance_view = 71; - - // The income range view referenced in the query. - google.ads.googleads.v7.resources.IncomeRangeView income_range_view = 138; - - // The keyword view referenced in the query. - google.ads.googleads.v7.resources.KeywordView keyword_view = 21; - - // The keyword plan referenced in the query. - google.ads.googleads.v7.resources.KeywordPlan keyword_plan = 32; - - // The keyword plan campaign referenced in the query. - google.ads.googleads.v7.resources.KeywordPlanCampaign keyword_plan_campaign = 33; - - // The keyword plan campaign keyword referenced in the query. - google.ads.googleads.v7.resources.KeywordPlanCampaignKeyword keyword_plan_campaign_keyword = 140; - - // The keyword plan ad group referenced in the query. - google.ads.googleads.v7.resources.KeywordPlanAdGroup keyword_plan_ad_group = 35; - - // The keyword plan ad group referenced in the query. - google.ads.googleads.v7.resources.KeywordPlanAdGroupKeyword keyword_plan_ad_group_keyword = 141; - - // The label referenced in the query. - google.ads.googleads.v7.resources.Label label = 52; - - // The landing page view referenced in the query. - google.ads.googleads.v7.resources.LandingPageView landing_page_view = 126; - - // The language constant referenced in the query. - google.ads.googleads.v7.resources.LanguageConstant language_constant = 55; - - // The location view referenced in the query. - google.ads.googleads.v7.resources.LocationView location_view = 123; - - // The managed placement view referenced in the query. - google.ads.googleads.v7.resources.ManagedPlacementView managed_placement_view = 53; - - // The media file referenced in the query. - google.ads.googleads.v7.resources.MediaFile media_file = 90; - - // The mobile app category constant referenced in the query. - google.ads.googleads.v7.resources.MobileAppCategoryConstant mobile_app_category_constant = 87; - - // The mobile device constant referenced in the query. - google.ads.googleads.v7.resources.MobileDeviceConstant mobile_device_constant = 98; - - // The offline user data job referenced in the query. - google.ads.googleads.v7.resources.OfflineUserDataJob offline_user_data_job = 137; - - // The operating system version constant referenced in the query. - google.ads.googleads.v7.resources.OperatingSystemVersionConstant operating_system_version_constant = 86; - - // The paid organic search term view referenced in the query. - google.ads.googleads.v7.resources.PaidOrganicSearchTermView paid_organic_search_term_view = 129; - - // The parental status view referenced in the query. - google.ads.googleads.v7.resources.ParentalStatusView parental_status_view = 45; - - // The Product Bidding Category referenced in the query. - google.ads.googleads.v7.resources.ProductBiddingCategoryConstant product_bidding_category_constant = 109; - - // The product group view referenced in the query. - google.ads.googleads.v7.resources.ProductGroupView product_group_view = 54; - - // The recommendation referenced in the query. - google.ads.googleads.v7.resources.Recommendation recommendation = 22; - - // The search term view referenced in the query. - google.ads.googleads.v7.resources.SearchTermView search_term_view = 68; - - // The shared set referenced in the query. - google.ads.googleads.v7.resources.SharedCriterion shared_criterion = 29; - - // The shared set referenced in the query. - google.ads.googleads.v7.resources.SharedSet shared_set = 27; - - // The shopping performance view referenced in the query. - google.ads.googleads.v7.resources.ShoppingPerformanceView shopping_performance_view = 117; - - // The AccountLink referenced in the query. - google.ads.googleads.v7.resources.ThirdPartyAppAnalyticsLink third_party_app_analytics_link = 144; - - // The topic view referenced in the query. - google.ads.googleads.v7.resources.TopicView topic_view = 44; - - // The user interest referenced in the query. - google.ads.googleads.v7.resources.UserInterest user_interest = 59; - - // The life event referenced in the query. - google.ads.googleads.v7.resources.LifeEvent life_event = 161; - - // The user list referenced in the query. - google.ads.googleads.v7.resources.UserList user_list = 38; - - // The user location view referenced in the query. - google.ads.googleads.v7.resources.UserLocationView user_location_view = 135; - - // The remarketing action referenced in the query. - google.ads.googleads.v7.resources.RemarketingAction remarketing_action = 60; - - // The topic constant referenced in the query. - google.ads.googleads.v7.resources.TopicConstant topic_constant = 31; - - // The video referenced in the query. - google.ads.googleads.v7.resources.Video video = 39; - - // The webpage view referenced in the query. - google.ads.googleads.v7.resources.WebpageView webpage_view = 162; - - // The metrics. - google.ads.googleads.v7.common.Metrics metrics = 4; - - // The segments. - google.ads.googleads.v7.common.Segments segments = 102; -} - -// Request message for [GoogleAdsService.Mutate][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual resources. - repeated MutateOperation mutate_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. E.g. MutateCampaignResult.campaign. - google.ads.googleads.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// Response message for [GoogleAdsService.Mutate][google.ads.googleads.v7.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 - // operations. If any errors occur outside the operations (e.g., auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All responses for the mutate. - repeated MutateOperationResponse mutate_operation_responses = 1; -} - -// A single operation (create, update, remove) on a resource. -message MutateOperation { - // The mutate operation. - oneof operation { - // An ad group ad label mutate operation. - AdGroupAdLabelOperation ad_group_ad_label_operation = 17; - - // An ad group ad mutate operation. - AdGroupAdOperation ad_group_ad_operation = 1; - - // An ad group asset mutate operation. - AdGroupAssetOperation ad_group_asset_operation = 56; - - // An ad group bid modifier mutate operation. - AdGroupBidModifierOperation ad_group_bid_modifier_operation = 2; - - // An ad group criterion label mutate operation. - AdGroupCriterionLabelOperation ad_group_criterion_label_operation = 18; - - // An ad group criterion mutate operation. - AdGroupCriterionOperation ad_group_criterion_operation = 3; - - // An ad group extension setting mutate operation. - AdGroupExtensionSettingOperation ad_group_extension_setting_operation = 19; - - // An ad group feed mutate operation. - AdGroupFeedOperation ad_group_feed_operation = 20; - - // An ad group label mutate operation. - AdGroupLabelOperation ad_group_label_operation = 21; - - // An ad group mutate operation. - AdGroupOperation ad_group_operation = 5; - - // An ad mutate operation. - AdOperation ad_operation = 49; - - // An ad parameter mutate operation. - AdParameterOperation ad_parameter_operation = 22; - - // An asset mutate operation. - AssetOperation asset_operation = 23; - - // A bidding strategy mutate operation. - BiddingStrategyOperation bidding_strategy_operation = 6; - - // A campaign asset mutate operation. - CampaignAssetOperation campaign_asset_operation = 52; - - // A campaign bid modifier mutate operation. - CampaignBidModifierOperation campaign_bid_modifier_operation = 7; - - // A campaign budget mutate operation. - CampaignBudgetOperation campaign_budget_operation = 8; - - // A campaign criterion mutate operation. - CampaignCriterionOperation campaign_criterion_operation = 13; - - // A campaign draft mutate operation. - CampaignDraftOperation campaign_draft_operation = 24; - - // A campaign experiment mutate operation. - CampaignExperimentOperation campaign_experiment_operation = 25; - - // A campaign extension setting mutate operation. - CampaignExtensionSettingOperation campaign_extension_setting_operation = 26; - - // A campaign feed mutate operation. - CampaignFeedOperation campaign_feed_operation = 27; - - // A campaign label mutate operation. - CampaignLabelOperation campaign_label_operation = 28; - - // A campaign mutate operation. - CampaignOperation campaign_operation = 10; - - // A campaign shared set mutate operation. - CampaignSharedSetOperation campaign_shared_set_operation = 11; - - // A conversion action mutate operation. - ConversionActionOperation conversion_action_operation = 12; - - // A conversion custom variable mutate operation. - ConversionCustomVariableOperation conversion_custom_variable_operation = 55; - - // A customer asset mutate operation. - CustomerAssetOperation customer_asset_operation = 57; - - // A customer extension setting mutate operation. - CustomerExtensionSettingOperation customer_extension_setting_operation = 30; - - // A customer feed mutate operation. - CustomerFeedOperation customer_feed_operation = 31; - - // A customer label mutate operation. - CustomerLabelOperation customer_label_operation = 32; - - // A customer negative criterion mutate operation. - CustomerNegativeCriterionOperation customer_negative_criterion_operation = 34; - - // A customer mutate operation. - CustomerOperation customer_operation = 35; - - // An extension feed item mutate operation. - ExtensionFeedItemOperation extension_feed_item_operation = 36; - - // A feed item mutate operation. - FeedItemOperation feed_item_operation = 37; - - // A feed item set mutate operation. - FeedItemSetOperation feed_item_set_operation = 53; - - // A feed item set link mutate operation. - FeedItemSetLinkOperation feed_item_set_link_operation = 54; - - // A feed item target mutate operation. - FeedItemTargetOperation feed_item_target_operation = 38; - - // A feed mapping mutate operation. - FeedMappingOperation feed_mapping_operation = 39; - - // A feed mutate operation. - FeedOperation feed_operation = 40; - - // A keyword plan ad group operation. - KeywordPlanAdGroupOperation keyword_plan_ad_group_operation = 44; - - // A keyword plan ad group keyword operation. - KeywordPlanAdGroupKeywordOperation keyword_plan_ad_group_keyword_operation = 50; - - // A keyword plan campaign keyword operation. - KeywordPlanCampaignKeywordOperation keyword_plan_campaign_keyword_operation = 51; - - // A keyword plan campaign operation. - KeywordPlanCampaignOperation keyword_plan_campaign_operation = 45; - - // A keyword plan operation. - KeywordPlanOperation keyword_plan_operation = 48; - - // A label mutate operation. - LabelOperation label_operation = 41; - - // A media file mutate operation. - MediaFileOperation media_file_operation = 42; - - // A remarketing action mutate operation. - RemarketingActionOperation remarketing_action_operation = 43; - - // A shared criterion mutate operation. - SharedCriterionOperation shared_criterion_operation = 14; - - // A shared set mutate operation. - SharedSetOperation shared_set_operation = 15; - - // A user list mutate operation. - UserListOperation user_list_operation = 16; - } -} - -// Response message for the resource mutate. -message MutateOperationResponse { - // The mutate response. - oneof response { - // The result for the ad group ad label mutate. - MutateAdGroupAdLabelResult ad_group_ad_label_result = 17; - - // The result for the ad group ad mutate. - MutateAdGroupAdResult ad_group_ad_result = 1; - - // The result for the ad group asset mutate. - MutateAdGroupAssetResult ad_group_asset_result = 56; - - // The result for the ad group bid modifier mutate. - MutateAdGroupBidModifierResult ad_group_bid_modifier_result = 2; - - // The result for the ad group criterion label mutate. - MutateAdGroupCriterionLabelResult ad_group_criterion_label_result = 18; - - // The result for the ad group criterion mutate. - MutateAdGroupCriterionResult ad_group_criterion_result = 3; - - // The result for the ad group extension setting mutate. - MutateAdGroupExtensionSettingResult ad_group_extension_setting_result = 19; - - // The result for the ad group feed mutate. - MutateAdGroupFeedResult ad_group_feed_result = 20; - - // The result for the ad group label mutate. - MutateAdGroupLabelResult ad_group_label_result = 21; - - // The result for the ad group mutate. - MutateAdGroupResult ad_group_result = 5; - - // The result for the ad parameter mutate. - MutateAdParameterResult ad_parameter_result = 22; - - // The result for the ad mutate. - MutateAdResult ad_result = 49; - - // The result for the asset mutate. - MutateAssetResult asset_result = 23; - - // The result for the bidding strategy mutate. - MutateBiddingStrategyResult bidding_strategy_result = 6; - - // The result for the campaign asset mutate. - MutateCampaignAssetResult campaign_asset_result = 52; - - // The result for the campaign bid modifier mutate. - MutateCampaignBidModifierResult campaign_bid_modifier_result = 7; - - // The result for the campaign budget mutate. - MutateCampaignBudgetResult campaign_budget_result = 8; - - // The result for the campaign criterion mutate. - MutateCampaignCriterionResult campaign_criterion_result = 13; - - // The result for the campaign draft mutate. - MutateCampaignDraftResult campaign_draft_result = 24; - - // The result for the campaign experiment mutate. - MutateCampaignExperimentResult campaign_experiment_result = 25; - - // The result for the campaign extension setting mutate. - MutateCampaignExtensionSettingResult campaign_extension_setting_result = 26; - - // The result for the campaign feed mutate. - MutateCampaignFeedResult campaign_feed_result = 27; - - // The result for the campaign label mutate. - MutateCampaignLabelResult campaign_label_result = 28; - - // The result for the campaign mutate. - MutateCampaignResult campaign_result = 10; - - // The result for the campaign shared set mutate. - MutateCampaignSharedSetResult campaign_shared_set_result = 11; - - // The result for the conversion action mutate. - MutateConversionActionResult conversion_action_result = 12; - - // The result for the conversion custom variable mutate. - MutateConversionCustomVariableResult conversion_custom_variable_result = 55; - - // The result for the customer asset mutate. - MutateCustomerAssetResult customer_asset_result = 57; - - // The result for the customer extension setting mutate. - MutateCustomerExtensionSettingResult customer_extension_setting_result = 30; - - // The result for the customer feed mutate. - MutateCustomerFeedResult customer_feed_result = 31; - - // The result for the customer label mutate. - MutateCustomerLabelResult customer_label_result = 32; - - // The result for the customer negative criterion mutate. - MutateCustomerNegativeCriteriaResult customer_negative_criterion_result = 34; - - // The result for the customer mutate. - MutateCustomerResult customer_result = 35; - - // The result for the extension feed item mutate. - MutateExtensionFeedItemResult extension_feed_item_result = 36; - - // The result for the feed item mutate. - MutateFeedItemResult feed_item_result = 37; - - // The result for the feed item set mutate. - MutateFeedItemSetResult feed_item_set_result = 53; - - // The result for the feed item set link mutate. - MutateFeedItemSetLinkResult feed_item_set_link_result = 54; - - // The result for the feed item target mutate. - MutateFeedItemTargetResult feed_item_target_result = 38; - - // The result for the feed mapping mutate. - MutateFeedMappingResult feed_mapping_result = 39; - - // The result for the feed mutate. - MutateFeedResult feed_result = 40; - - // The result for the keyword plan ad group mutate. - MutateKeywordPlanAdGroupResult keyword_plan_ad_group_result = 44; - - // The result for the keyword plan campaign mutate. - MutateKeywordPlanCampaignResult keyword_plan_campaign_result = 45; - - // The result for the keyword plan ad group keyword mutate. - MutateKeywordPlanAdGroupKeywordResult keyword_plan_ad_group_keyword_result = 50; - - // The result for the keyword plan campaign keyword mutate. - MutateKeywordPlanCampaignKeywordResult keyword_plan_campaign_keyword_result = 51; - - // The result for the keyword plan mutate. - MutateKeywordPlansResult keyword_plan_result = 48; - - // 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 remarketing action mutate. - MutateRemarketingActionResult remarketing_action_result = 43; - - // The result for the shared criterion mutate. - MutateSharedCriterionResult shared_criterion_result = 14; - - // The result for the shared set mutate. - MutateSharedSetResult shared_set_result = 15; - - // The result for the user list mutate. - MutateUserListResult user_list_result = 16; - } -} diff --git a/google/ads/googleads/v7/services/group_placement_view_service.proto b/google/ads/googleads/v7/services/group_placement_view_service.proto deleted file mode 100644 index dbe3024ec..000000000 --- a/google/ads/googleads/v7/services/group_placement_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/group_placement_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GroupPlacementViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Group Placement View service. - -// Service to fetch Group Placement views. -service GroupPlacementViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Group Placement view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGroupPlacementView(GetGroupPlacementViewRequest) returns (google.ads.googleads.v7.resources.GroupPlacementView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/groupPlacementViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [GroupPlacementViewService.GetGroupPlacementView][google.ads.googleads.v7.services.GroupPlacementViewService.GetGroupPlacementView]. -message GetGroupPlacementViewRequest { - // Required. The resource name of the Group Placement view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GroupPlacementView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/hotel_group_view_service.proto b/google/ads/googleads/v7/services/hotel_group_view_service.proto deleted file mode 100644 index 556aaad59..000000000 --- a/google/ads/googleads/v7/services/hotel_group_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/hotel_group_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "HotelGroupViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Hotel Group View Service. - -// Service to manage Hotel Group Views. -service HotelGroupViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Hotel Group View in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetHotelGroupView(GetHotelGroupViewRequest) returns (google.ads.googleads.v7.resources.HotelGroupView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/hotelGroupViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [HotelGroupViewService.GetHotelGroupView][google.ads.googleads.v7.services.HotelGroupViewService.GetHotelGroupView]. -message GetHotelGroupViewRequest { - // Required. Resource name of the Hotel Group View to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/HotelGroupView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/hotel_performance_view_service.proto b/google/ads/googleads/v7/services/hotel_performance_view_service.proto deleted file mode 100644 index 19ed2cda7..000000000 --- a/google/ads/googleads/v7/services/hotel_performance_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/hotel_performance_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "HotelPerformanceViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Hotel Performance View Service. - -// Service to manage Hotel Performance Views. -service HotelPerformanceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Hotel Performance View in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetHotelPerformanceView(GetHotelPerformanceViewRequest) returns (google.ads.googleads.v7.resources.HotelPerformanceView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/hotelPerformanceView}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [HotelPerformanceViewService.GetHotelPerformanceView][google.ads.googleads.v7.services.HotelPerformanceViewService.GetHotelPerformanceView]. -message GetHotelPerformanceViewRequest { - // Required. Resource name of the Hotel Performance View to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/HotelPerformanceView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/income_range_view_service.proto b/google/ads/googleads/v7/services/income_range_view_service.proto deleted file mode 100644 index 6fe5316c5..000000000 --- a/google/ads/googleads/v7/services/income_range_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/income_range_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "IncomeRangeViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Income Range View service. - -// Service to manage income range views. -service IncomeRangeViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested income range view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetIncomeRangeView(GetIncomeRangeViewRequest) returns (google.ads.googleads.v7.resources.IncomeRangeView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/incomeRangeViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [IncomeRangeViewService.GetIncomeRangeView][google.ads.googleads.v7.services.IncomeRangeViewService.GetIncomeRangeView]. -message GetIncomeRangeViewRequest { - // Required. The resource name of the income range view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/IncomeRangeView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/invoice_service.proto b/google/ads/googleads/v7/services/invoice_service.proto deleted file mode 100644 index ffd60dc54..000000000 --- a/google/ads/googleads/v7/services/invoice_service.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/month_of_year.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "InvoiceServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Invoice service. - -// A service to fetch invoices issued for a billing setup during a given month. -service InvoiceService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns all invoices associated with a billing setup, for a given month. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [InvoiceError]() - // [QuotaError]() - // [RequestError]() - rpc ListInvoices(ListInvoicesRequest) returns (ListInvoicesResponse) { - option (google.api.http) = { - get: "/v7/customers/{customer_id=*}/invoices" - }; - option (google.api.method_signature) = "customer_id,billing_setup,issue_year,issue_month"; - } -} - -// Request message for fetching the invoices of a given billing setup that were -// issued during a given month. -message ListInvoicesRequest { - // Required. The ID of the customer to fetch invoices for. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The billing setup resource name of the requested invoices. - // - // `customers/{customer_id}/billingSetups/{billing_setup_id}` - string billing_setup = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The issue year to retrieve invoices, in yyyy format. Only - // invoices issued in 2019 or later can be retrieved. - string issue_year = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The issue month to retrieve invoices. - google.ads.googleads.v7.enums.MonthOfYearEnum.MonthOfYear issue_month = 4 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for [InvoiceService.ListInvoices][google.ads.googleads.v7.services.InvoiceService.ListInvoices]. -message ListInvoicesResponse { - // The list of invoices that match the billing setup and time period. - repeated google.ads.googleads.v7.resources.Invoice invoices = 1; -} diff --git a/google/ads/googleads/v7/services/keyword_plan_ad_group_keyword_service.proto b/google/ads/googleads/v7/services/keyword_plan_ad_group_keyword_service.proto deleted file mode 100644 index 5a20c162a..000000000 --- a/google/ads/googleads/v7/services/keyword_plan_ad_group_keyword_service.proto +++ /dev/null @@ -1,165 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/keyword_plan_ad_group_keyword.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupKeywordServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the keyword plan ad group keyword service. - -// Service to manage Keyword Plan ad group keywords. KeywordPlanAdGroup is -// required to add ad group keywords. Positive and negative keywords are -// supported. A maximum of 10,000 positive keywords are allowed per keyword -// plan. A maximum of 1,000 negative keywords are allower per keyword plan. This -// includes campaign negative keywords and ad group negative keywords. -service KeywordPlanAdGroupKeywordService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Keyword Plan ad group keyword in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlanAdGroupKeyword(GetKeywordPlanAdGroupKeywordRequest) returns (google.ads.googleads.v7.resources.KeywordPlanAdGroupKeyword) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/keywordPlanAdGroupKeywords/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes Keyword Plan ad group keywords. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanAdGroupKeywordError]() - // [KeywordPlanError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateKeywordPlanAdGroupKeywords(MutateKeywordPlanAdGroupKeywordsRequest) returns (MutateKeywordPlanAdGroupKeywordsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword][google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword]. -message GetKeywordPlanAdGroupKeywordRequest { - // Required. The resource name of the ad group keyword to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" - } - ]; -} - -// Request message for -// [KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords][google.ads.googleads.v7.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords]. -message MutateKeywordPlanAdGroupKeywordsRequest { - // Required. The ID of the customer whose Keyword Plan ad group keywords are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Keyword Plan ad group - // keywords. - repeated KeywordPlanAdGroupKeywordOperation 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; -} - -// A single operation (create, update, remove) on a Keyword Plan ad group -// keyword. -message KeywordPlanAdGroupKeywordOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new Keyword Plan - // ad group keyword. - google.ads.googleads.v7.resources.KeywordPlanAdGroupKeyword create = 1; - - // Update operation: The Keyword Plan ad group keyword is expected to have a - // valid resource name. - google.ads.googleads.v7.resources.KeywordPlanAdGroupKeyword update = 2; - - // Remove operation: A resource name for the removed Keyword Plan ad group - // keyword is expected, in this format: - // - // `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" - }]; - } -} - -// Response message for a Keyword Plan ad group keyword mutate. -message MutateKeywordPlanAdGroupKeywordsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateKeywordPlanAdGroupKeywordResult results = 2; -} - -// The result for the Keyword Plan ad group keyword mutate. -message MutateKeywordPlanAdGroupKeywordResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/keyword_plan_ad_group_service.proto b/google/ads/googleads/v7/services/keyword_plan_ad_group_service.proto deleted file mode 100644 index a27e59bf9..000000000 --- a/google/ads/googleads/v7/services/keyword_plan_ad_group_service.proto +++ /dev/null @@ -1,159 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/keyword_plan_ad_group.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the keyword plan ad group service. - -// Service to manage Keyword Plan ad groups. -service KeywordPlanAdGroupService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Keyword Plan ad group in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlanAdGroup(GetKeywordPlanAdGroupRequest) returns (google.ads.googleads.v7.resources.KeywordPlanAdGroup) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/keywordPlanAdGroups/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes Keyword Plan ad groups. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanAdGroupError]() - // [KeywordPlanError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateKeywordPlanAdGroups(MutateKeywordPlanAdGroupsRequest) returns (MutateKeywordPlanAdGroupsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/keywordPlanAdGroups:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [KeywordPlanAdGroupService.GetKeywordPlanAdGroup][google.ads.googleads.v7.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup]. -message GetKeywordPlanAdGroupRequest { - // Required. The resource name of the Keyword Plan ad group to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - } - ]; -} - -// Request message for [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v7.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. -message MutateKeywordPlanAdGroupsRequest { - // Required. The ID of the customer whose Keyword Plan ad groups are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Keyword Plan ad groups. - repeated KeywordPlanAdGroupOperation 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; -} - -// A single operation (create, update, remove) on a Keyword Plan ad group. -message KeywordPlanAdGroupOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new Keyword Plan - // ad group. - google.ads.googleads.v7.resources.KeywordPlanAdGroup create = 1; - - // Update operation: The Keyword Plan ad group is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.KeywordPlanAdGroup update = 2; - - // Remove operation: A resource name for the removed Keyword Plan ad group - // is expected, in this format: - // - // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - }]; - } -} - -// Response message for a Keyword Plan ad group mutate. -message MutateKeywordPlanAdGroupsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. The order of the results is determined by the - // order of the keywords in the original request. - repeated MutateKeywordPlanAdGroupResult results = 2; -} - -// The result for the Keyword Plan ad group mutate. -message MutateKeywordPlanAdGroupResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/keyword_plan_campaign_keyword_service.proto b/google/ads/googleads/v7/services/keyword_plan_campaign_keyword_service.proto deleted file mode 100644 index b4244ccfc..000000000 --- a/google/ads/googleads/v7/services/keyword_plan_campaign_keyword_service.proto +++ /dev/null @@ -1,162 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/keyword_plan_campaign_keyword.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignKeywordServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the keyword plan campaign keyword service. - -// Service to manage Keyword Plan campaign keywords. KeywordPlanCampaign is -// required to add the campaign keywords. Only negative keywords are supported. -// A maximum of 1000 negative keywords are allowed per plan. This includes both -// campaign negative keywords and ad group negative keywords. -service KeywordPlanCampaignKeywordService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested plan in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlanCampaignKeyword(GetKeywordPlanCampaignKeywordRequest) returns (google.ads.googleads.v7.resources.KeywordPlanCampaignKeyword) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/keywordPlanCampaignKeywords/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes Keyword Plan campaign keywords. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanAdGroupKeywordError]() - // [KeywordPlanCampaignKeywordError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateKeywordPlanCampaignKeywords(MutateKeywordPlanCampaignKeywordsRequest) returns (MutateKeywordPlanCampaignKeywordsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword][google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword]. -message GetKeywordPlanCampaignKeywordRequest { - // Required. The resource name of the plan to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" - } - ]; -} - -// Request message for -// [KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords][google.ads.googleads.v7.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords]. -message MutateKeywordPlanCampaignKeywordsRequest { - // Required. The ID of the customer whose campaign keywords are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Keyword Plan campaign - // keywords. - repeated KeywordPlanCampaignKeywordOperation 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; -} - -// A single operation (create, update, remove) on a Keyword Plan campaign -// keyword. -message KeywordPlanCampaignKeywordOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new Keyword Plan - // campaign keyword. - google.ads.googleads.v7.resources.KeywordPlanCampaignKeyword create = 1; - - // Update operation: The Keyword Plan campaign keyword expected to have a - // valid resource name. - google.ads.googleads.v7.resources.KeywordPlanCampaignKeyword update = 2; - - // Remove operation: A resource name for the removed Keyword Plan campaign - // keywords expected in this format: - // - // `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" - }]; - } -} - -// Response message for a Keyword Plan campaign keyword mutate. -message MutateKeywordPlanCampaignKeywordsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateKeywordPlanCampaignKeywordResult results = 2; -} - -// The result for the Keyword Plan campaign keyword mutate. -message MutateKeywordPlanCampaignKeywordResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/keyword_plan_campaign_service.proto b/google/ads/googleads/v7/services/keyword_plan_campaign_service.proto deleted file mode 100644 index 45170ad29..000000000 --- a/google/ads/googleads/v7/services/keyword_plan_campaign_service.proto +++ /dev/null @@ -1,160 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/keyword_plan_campaign.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the keyword plan campaign service. - -// Service to manage Keyword Plan campaigns. -service KeywordPlanCampaignService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Keyword Plan campaign in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlanCampaign(GetKeywordPlanCampaignRequest) returns (google.ads.googleads.v7.resources.KeywordPlanCampaign) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/keywordPlanCampaigns/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes Keyword Plan campaigns. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanCampaignError]() - // [KeywordPlanError]() - // [ListOperationError]() - // [MutateError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateKeywordPlanCampaigns(MutateKeywordPlanCampaignsRequest) returns (MutateKeywordPlanCampaignsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/keywordPlanCampaigns:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [KeywordPlanCampaignService.GetKeywordPlanCampaign][google.ads.googleads.v7.services.KeywordPlanCampaignService.GetKeywordPlanCampaign]. -message GetKeywordPlanCampaignRequest { - // Required. The resource name of the Keyword Plan campaign to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - } - ]; -} - -// Request message for -// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v7.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. -message MutateKeywordPlanCampaignsRequest { - // Required. The ID of the customer whose Keyword Plan campaigns are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Keyword Plan campaigns. - repeated KeywordPlanCampaignOperation 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; -} - -// A single operation (create, update, remove) on a Keyword Plan campaign. -message KeywordPlanCampaignOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new Keyword Plan - // campaign. - google.ads.googleads.v7.resources.KeywordPlanCampaign create = 1; - - // Update operation: The Keyword Plan campaign is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.KeywordPlanCampaign update = 2; - - // Remove operation: A resource name for the removed Keyword Plan campaign - // is expected, in this format: - // - // `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - }]; - } -} - -// Response message for a Keyword Plan campaign mutate. -message MutateKeywordPlanCampaignsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateKeywordPlanCampaignResult results = 2; -} - -// The result for the Keyword Plan campaign mutate. -message MutateKeywordPlanCampaignResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/keyword_plan_idea_service.proto b/google/ads/googleads/v7/services/keyword_plan_idea_service.proto deleted file mode 100644 index c7e4d42c9..000000000 --- a/google/ads/googleads/v7/services/keyword_plan_idea_service.proto +++ /dev/null @@ -1,181 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/keyword_plan_common.proto"; -import "google/ads/googleads/v7/enums/keyword_plan_keyword_annotation.proto"; -import "google/ads/googleads/v7/enums/keyword_plan_network.proto"; -import "google/api/annotations.proto"; -import "google/api/client.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanIdeaServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the keyword plan idea service. - -// Service to generate keyword ideas. -service KeywordPlanIdeaService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns a list of keyword ideas. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanIdeaError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateKeywordIdeas(GenerateKeywordIdeasRequest) returns (GenerateKeywordIdeaResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:generateKeywordIdeas" - body: "*" - }; - } -} - -// Request message for [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v7.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. -message GenerateKeywordIdeasRequest { - // The ID of the customer with the recommendation. - string customer_id = 1; - - // The resource name of the language to target. - // Required - optional string language = 14; - - // The resource names of the location to target. - // Max 10 - repeated string geo_target_constants = 15; - - // If true, adult keywords will be included in response. - // The default value is false. - bool include_adult_keywords = 10; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. To request next page of results use the - // value obtained from `next_page_token` in the previous response. - // The request fields must match across pages. - string page_token = 12; - - // Number of results to retrieve in a single page. - // A maximum of 10,000 results may be returned, if the page_size - // exceeds this, it is ignored. - // If unspecified, at most 10,000 results will be returned. - // The server may decide to further limit the number of returned resources. - // If the response contains fewer than 10,000 results it may not be assumed - // as last page of results. - int32 page_size = 13; - - // Targeting network. - google.ads.googleads.v7.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 9; - - // The keyword annotations to include in response. - repeated google.ads.googleads.v7.enums.KeywordPlanKeywordAnnotationEnum.KeywordPlanKeywordAnnotation keyword_annotation = 17; - - // The aggregate fields to include in response. - google.ads.googleads.v7.common.KeywordPlanAggregateMetrics aggregate_metrics = 16; - - // The options for historical metrics data. - google.ads.googleads.v7.common.HistoricalMetricsOptions historical_metrics_options = 18; - - // The type of seed to generate keyword ideas. - oneof seed { - // A Keyword and a specific Url to generate ideas from - // e.g. cars, www.example.com/cars. - KeywordAndUrlSeed keyword_and_url_seed = 2; - - // A Keyword or phrase to generate ideas from, e.g. cars. - KeywordSeed keyword_seed = 3; - - // A specific url to generate ideas from, e.g. www.example.com/cars. - UrlSeed url_seed = 5; - - // The site to generate ideas from, e.g. www.example.com. - SiteSeed site_seed = 11; - } -} - -// Keyword And Url Seed -message KeywordAndUrlSeed { - // The URL to crawl in order to generate keyword ideas. - optional string url = 3; - - // Requires at least one keyword. - repeated string keywords = 4; -} - -// Keyword Seed -message KeywordSeed { - // Requires at least one keyword. - repeated string keywords = 2; -} - -// Site Seed -message SiteSeed { - // The domain name of the site. If the customer requesting the ideas doesn't - // own the site provided only public information is returned. - optional string site = 2; -} - -// Url Seed -message UrlSeed { - // The URL to crawl in order to generate keyword ideas. - optional string url = 2; -} - -// Response message for [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v7.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. -message GenerateKeywordIdeaResponse { - // Results of generating keyword ideas. - repeated GenerateKeywordIdeaResult results = 1; - - // The aggregate metrics for all keyword ideas. - google.ads.googleads.v7.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 4; - - // 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. - // `next_page_token` is not returned for the last page. - string next_page_token = 2; - - // Total number of results available. - int64 total_size = 3; -} - -// The result of generating keyword ideas. -message GenerateKeywordIdeaResult { - // Text of the keyword idea. - // As in Keyword Plan historical metrics, this text may not be an actual - // keyword, but the canonical form of multiple keywords. - // See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService. - optional string text = 5; - - // The historical metrics for the keyword. - google.ads.googleads.v7.common.KeywordPlanHistoricalMetrics keyword_idea_metrics = 3; - - // The annotations for the keyword. - // The annotation data is only provided if requested. - google.ads.googleads.v7.common.KeywordAnnotations keyword_annotations = 6; -} diff --git a/google/ads/googleads/v7/services/keyword_plan_service.proto b/google/ads/googleads/v7/services/keyword_plan_service.proto deleted file mode 100644 index 19cf022c5..000000000 --- a/google/ads/googleads/v7/services/keyword_plan_service.proto +++ /dev/null @@ -1,446 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/keyword_plan_common.proto"; -import "google/ads/googleads/v7/resources/keyword_plan.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the keyword plan service. - -// Service to manage keyword plans. -service KeywordPlanService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested plan in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlan(GetKeywordPlanRequest) returns (google.ads.googleads.v7.resources.KeywordPlan) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/keywordPlans/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes keyword plans. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [StringLengthError]() - rpc MutateKeywordPlans(MutateKeywordPlansRequest) returns (MutateKeywordPlansResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/keywordPlans:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Returns the requested Keyword Plan forecast curve. - // Only the bidding strategy is considered for generating forecast curve. - // The bidding strategy value specified in the plan is ignored. - // - // To generate a forecast at a value specified in the plan, use - // KeywordPlanService.GenerateForecastMetrics. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateForecastCurve(GenerateForecastCurveRequest) returns (GenerateForecastCurveResponse) { - option (google.api.http) = { - post: "/v7/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" - body: "*" - }; - option (google.api.method_signature) = "keyword_plan"; - } - - // Returns a forecast in the form of a time series for the Keyword Plan over - // the next 52 weeks. - // (1) Forecasts closer to the current date are generally more accurate than - // further out. - // - // (2) The forecast reflects seasonal trends using current and - // prior traffic patterns. The forecast period of the plan is ignored. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateForecastTimeSeries(GenerateForecastTimeSeriesRequest) returns (GenerateForecastTimeSeriesResponse) { - option (google.api.http) = { - post: "/v7/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" - body: "*" - }; - option (google.api.method_signature) = "keyword_plan"; - } - - // Returns the requested Keyword Plan forecasts. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateForecastMetrics(GenerateForecastMetricsRequest) returns (GenerateForecastMetricsResponse) { - option (google.api.http) = { - post: "/v7/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" - body: "*" - }; - option (google.api.method_signature) = "keyword_plan"; - } - - // Returns the requested Keyword Plan historical metrics. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateHistoricalMetrics(GenerateHistoricalMetricsRequest) returns (GenerateHistoricalMetricsResponse) { - option (google.api.http) = { - post: "/v7/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" - body: "*" - }; - option (google.api.method_signature) = "keyword_plan"; - } -} - -// Request message for [KeywordPlanService.GetKeywordPlan][google.ads.googleads.v7.services.KeywordPlanService.GetKeywordPlan]. -message GetKeywordPlanRequest { - // Required. The resource name of the plan to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; -} - -// Request message for [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual keyword plans. - repeated KeywordPlanOperation 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; -} - -// A single operation (create, update, remove) on a keyword plan. -message KeywordPlanOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new keyword plan. - google.ads.googleads.v7.resources.KeywordPlan create = 1; - - // Update operation: The keyword plan is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.KeywordPlan update = 2; - - // Remove operation: A resource name for the removed keyword plan is - // expected in this format: - // - // `customers/{customer_id}/keywordPlans/{keyword_plan_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - }]; - } -} - -// Response message for a keyword plan mutate. -message MutateKeywordPlansResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateKeywordPlansResult results = 2; -} - -// The result for the keyword plan mutate. -message MutateKeywordPlansResult { - // Returned for successful operations. - string resource_name = 1; -} - -// Request message for [KeywordPlanService.GenerateForecastCurve][google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastCurve]. -message GenerateForecastCurveRequest { - // Required. The resource name of the keyword plan to be forecasted. - string keyword_plan = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; -} - -// Response message for [KeywordPlanService.GenerateForecastCurve][google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastCurve]. -message GenerateForecastCurveResponse { - // List of forecast curves for the keyword plan campaign. - // One maximum. - repeated KeywordPlanCampaignForecastCurve campaign_forecast_curves = 1; -} - -// Request message for [KeywordPlanService.GenerateForecastTimeSeries][google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastTimeSeries]. -message GenerateForecastTimeSeriesRequest { - // Required. The resource name of the keyword plan to be forecasted. - string keyword_plan = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; -} - -// Response message for [KeywordPlanService.GenerateForecastTimeSeries][google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastTimeSeries]. -message GenerateForecastTimeSeriesResponse { - // List of weekly time series forecasts for the keyword plan campaign. - // One maximum. - repeated KeywordPlanWeeklyTimeSeriesForecast weekly_time_series_forecasts = 1; -} - -// Request message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastMetrics]. -message GenerateForecastMetricsRequest { - // Required. The resource name of the keyword plan to be forecasted. - string keyword_plan = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; -} - -// Response message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v7.services.KeywordPlanService.GenerateForecastMetrics]. -message GenerateForecastMetricsResponse { - // List of campaign forecasts. - // One maximum. - repeated KeywordPlanCampaignForecast campaign_forecasts = 1; - - // List of ad group forecasts. - repeated KeywordPlanAdGroupForecast ad_group_forecasts = 2; - - // List of keyword forecasts. - repeated KeywordPlanKeywordForecast keyword_forecasts = 3; -} - -// A campaign forecast. -message KeywordPlanCampaignForecast { - // The resource name of the Keyword Plan campaign related to the forecast. - // - // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` - optional string keyword_plan_campaign = 3; - - // The forecast for the Keyword Plan campaign. - ForecastMetrics campaign_forecast = 2; -} - -// An ad group forecast. -message KeywordPlanAdGroupForecast { - // The resource name of the Keyword Plan ad group related to the forecast. - // - // `customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}` - optional string keyword_plan_ad_group = 3; - - // The forecast for the Keyword Plan ad group. - ForecastMetrics ad_group_forecast = 2; -} - -// A keyword forecast. -message KeywordPlanKeywordForecast { - // The resource name of the Keyword Plan keyword related to the forecast. - // - // `customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}` - optional string keyword_plan_ad_group_keyword = 3; - - // The forecast for the Keyword Plan keyword. - ForecastMetrics keyword_forecast = 2; -} - -// The forecast curve for the campaign. -message KeywordPlanCampaignForecastCurve { - // The resource name of the Keyword Plan campaign related to the forecast. - // - // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` - optional string keyword_plan_campaign = 3; - - // The max cpc bid forecast curve for the campaign. - KeywordPlanMaxCpcBidForecastCurve max_cpc_bid_forecast_curve = 2; -} - -// The max cpc bid forecast curve. -message KeywordPlanMaxCpcBidForecastCurve { - // The forecasts for the Keyword Plan campaign at different max CPC bids. - repeated KeywordPlanMaxCpcBidForecast max_cpc_bid_forecasts = 1; -} - -// The forecast of the campaign at a specific bid. -message KeywordPlanMaxCpcBidForecast { - // The max cpc bid in micros. - optional int64 max_cpc_bid_micros = 3; - - // The forecast for the Keyword Plan campaign at the specific bid. - ForecastMetrics max_cpc_bid_forecast = 2; -} - -// The weekly time series forecast for the keyword plan campaign. -message KeywordPlanWeeklyTimeSeriesForecast { - // The resource name of the Keyword Plan campaign related to the forecast. - // - // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` - optional string keyword_plan_campaign = 1; - - // The forecasts for the Keyword Plan campaign at different max CPC bids. - repeated KeywordPlanWeeklyForecast weekly_forecasts = 2; -} - -// The forecast of the campaign for the week starting start_date. -message KeywordPlanWeeklyForecast { - // The start date, in yyyy-mm-dd format. This date is inclusive. - optional string start_date = 1; - - // The forecast for the Keyword Plan campaign for the week. - ForecastMetrics forecast = 2; -} - -// Forecast metrics. -message ForecastMetrics { - // Impressions - optional double impressions = 7; - - // Ctr - optional double ctr = 8; - - // AVG cpc - optional int64 average_cpc = 9; - - // Clicks - optional double clicks = 10; - - // Cost - optional int64 cost_micros = 11; -} - -// Request message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v7.services.KeywordPlanService.GenerateHistoricalMetrics]. -message GenerateHistoricalMetricsRequest { - // Required. The resource name of the keyword plan of which historical metrics are - // requested. - string keyword_plan = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; - - // The aggregate fields to include in response. - google.ads.googleads.v7.common.KeywordPlanAggregateMetrics aggregate_metrics = 2; - - // The options for historical metrics data. - google.ads.googleads.v7.common.HistoricalMetricsOptions historical_metrics_options = 3; -} - -// Response message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v7.services.KeywordPlanService.GenerateHistoricalMetrics]. -message GenerateHistoricalMetricsResponse { - // List of keyword historical metrics. - repeated KeywordPlanKeywordHistoricalMetrics metrics = 1; - - // The aggregate metrics for all the keywords in the keyword planner plan. - google.ads.googleads.v7.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 2; -} - -// A keyword historical metrics. -message KeywordPlanKeywordHistoricalMetrics { - // The text of the query associated with one or more ad_group_keywords in the - // plan. - // - // Note that we de-dupe your keywords list, eliminating close variants before - // returning the plan's keywords as text. For example, if your plan originally - // contained the keywords 'car' and 'cars', the returned search query will - // only contain 'cars'. - // Starting V5, the list of de-duped queries will be included in - // close_variants field. - optional string search_query = 4; - - // The list of close variant queries for search_query whose search results - // are combined into the search_query. - repeated string close_variants = 3; - - // The historical metrics for the query associated with one or more - // ad_group_keywords in the plan. - google.ads.googleads.v7.common.KeywordPlanHistoricalMetrics keyword_metrics = 2; -} diff --git a/google/ads/googleads/v7/services/keyword_view_service.proto b/google/ads/googleads/v7/services/keyword_view_service.proto deleted file mode 100644 index 004f6e91c..000000000 --- a/google/ads/googleads/v7/services/keyword_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/keyword_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Keyword View service. - -// Service to manage keyword views. -service KeywordViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested keyword view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordView(GetKeywordViewRequest) returns (google.ads.googleads.v7.resources.KeywordView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/keywordViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [KeywordViewService.GetKeywordView][google.ads.googleads.v7.services.KeywordViewService.GetKeywordView]. -message GetKeywordViewRequest { - // Required. The resource name of the keyword view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/label_service.proto b/google/ads/googleads/v7/services/label_service.proto deleted file mode 100644 index 25dce47f3..000000000 --- a/google/ads/googleads/v7/services/label_service.proto +++ /dev/null @@ -1,168 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/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/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LabelServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Service to manage labels. -service LabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested label in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetLabel(GetLabelRequest) returns (google.ads.googleads.v7.resources.Label) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/labels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes labels. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateLabels(MutateLabelsRequest) returns (MutateLabelsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/labels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [LabelService.GetLabel][google.ads.googleads.v7.services.LabelService.GetLabel]. -message GetLabelRequest { - // Required. The resource name of the label to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} - -// Request message for [LabelService.MutateLabels][google.ads.googleads.v7.services.LabelService.MutateLabels]. -message MutateLabelsRequest { - // Required. ID of the customer whose labels are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on labels. - repeated LabelOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on a label. -message LabelOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new label. - google.ads.googleads.v7.resources.Label create = 1; - - // Update operation: The label is expected to have a valid resource name. - google.ads.googleads.v7.resources.Label update = 2; - - // Remove operation: A resource name for the label being removed, in - // this format: - // - // `customers/{customer_id}/labels/{label_id}` - string remove = 3; - } -} - -// Response message for a labels mutate. -message MutateLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateLabelResult results = 2; -} - -// The result for a label mutate. -message MutateLabelResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.Label label = 2; -} diff --git a/google/ads/googleads/v7/services/landing_page_view_service.proto b/google/ads/googleads/v7/services/landing_page_view_service.proto deleted file mode 100644 index 63e89bf3c..000000000 --- a/google/ads/googleads/v7/services/landing_page_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/landing_page_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LandingPageViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the landing page view service. - -// Service to fetch landing page views. -service LandingPageViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested landing page view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetLandingPageView(GetLandingPageViewRequest) returns (google.ads.googleads.v7.resources.LandingPageView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/landingPageViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [LandingPageViewService.GetLandingPageView][google.ads.googleads.v7.services.LandingPageViewService.GetLandingPageView]. -message GetLandingPageViewRequest { - // Required. The resource name of the landing page view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LandingPageView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/language_constant_service.proto b/google/ads/googleads/v7/services/language_constant_service.proto deleted file mode 100644 index 5c1631f89..000000000 --- a/google/ads/googleads/v7/services/language_constant_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/language_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LanguageConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the language constant service. - -// Service to fetch language constants. -service LanguageConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested language constant. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetLanguageConstant(GetLanguageConstantRequest) returns (google.ads.googleads.v7.resources.LanguageConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=languageConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [LanguageConstantService.GetLanguageConstant][google.ads.googleads.v7.services.LanguageConstantService.GetLanguageConstant]. -message GetLanguageConstantRequest { - // Required. Resource name of the language constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LanguageConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/services/life_event_service.proto b/google/ads/googleads/v7/services/life_event_service.proto deleted file mode 100644 index 9788d46ce..000000000 --- a/google/ads/googleads/v7/services/life_event_service.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/life_event.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LifeEventServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the life event service - -// Service to fetch Google Ads Life Events. -service LifeEventService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested life event in full detail. - rpc GetLifeEvent(GetLifeEventRequest) returns (google.ads.googleads.v7.resources.LifeEvent) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/lifeEvents/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [LifeEventService.GetLifeEvent][google.ads.googleads.v7.services.LifeEventService.GetLifeEvent]. -message GetLifeEventRequest { - // Required. Resource name of the LifeEvent to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LifeEvent" - } - ]; -} diff --git a/google/ads/googleads/v7/services/location_view_service.proto b/google/ads/googleads/v7/services/location_view_service.proto deleted file mode 100644 index 6474b591b..000000000 --- a/google/ads/googleads/v7/services/location_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/location_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LocationViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Location View service. - -// Service to fetch location views. -service LocationViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested location view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetLocationView(GetLocationViewRequest) returns (google.ads.googleads.v7.resources.LocationView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/locationViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [LocationViewService.GetLocationView][google.ads.googleads.v7.services.LocationViewService.GetLocationView]. -message GetLocationViewRequest { - // Required. The resource name of the location view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LocationView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/managed_placement_view_service.proto b/google/ads/googleads/v7/services/managed_placement_view_service.proto deleted file mode 100644 index bc1a83704..000000000 --- a/google/ads/googleads/v7/services/managed_placement_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/managed_placement_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ManagedPlacementViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Managed Placement View service. - -// Service to manage Managed Placement views. -service ManagedPlacementViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Managed Placement view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetManagedPlacementView(GetManagedPlacementViewRequest) returns (google.ads.googleads.v7.resources.ManagedPlacementView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/managedPlacementViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [ManagedPlacementViewService.GetManagedPlacementView][google.ads.googleads.v7.services.ManagedPlacementViewService.GetManagedPlacementView]. -message GetManagedPlacementViewRequest { - // Required. The resource name of the Managed Placement View to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ManagedPlacementView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/media_file_service.proto b/google/ads/googleads/v7/services/media_file_service.proto deleted file mode 100644 index 670fe6bf9..000000000 --- a/google/ads/googleads/v7/services/media_file_service.proto +++ /dev/null @@ -1,156 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MediaFileServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::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"; - - // Returns the requested media file in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetMediaFile(GetMediaFileRequest) returns (google.ads.googleads.v7.resources.MediaFile) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/mediaFiles/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // 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: "/v7/customers/{customer_id=*}/mediaFiles:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [MediaFileService.GetMediaFile][google.ads.googleads.v7.services.MediaFileService.GetMediaFile] -message GetMediaFileRequest { - // Required. The resource name of the media file to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MediaFile" - } - ]; -} - -// Request message for [MediaFileService.MutateMediaFiles][google.ads.googleads.v7.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.v7.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.v7.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 (e.g. 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; - - // 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.v7.resources.MediaFile media_file = 2; -} diff --git a/google/ads/googleads/v7/services/merchant_center_link_service.proto b/google/ads/googleads/v7/services/merchant_center_link_service.proto deleted file mode 100644 index 9cfd7ea56..000000000 --- a/google/ads/googleads/v7/services/merchant_center_link_service.proto +++ /dev/null @@ -1,160 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::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: "/v7/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.v7.resources.MerchantCenterLink) { - option (google.api.http) = { - get: "/v7/{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: "/v7/customers/{customer_id=*}/merchantCenterLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for [MerchantCenterLinkService.ListMerchantCenterLinks][google.ads.googleads.v7.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.v7.services.MerchantCenterLinkService.ListMerchantCenterLinks]. -message ListMerchantCenterLinksResponse { - // Merchant Center links available for the requested customer - repeated google.ads.googleads.v7.resources.MerchantCenterLink merchant_center_links = 1; -} - -// Request message for [MerchantCenterLinkService.GetMerchantCenterLink][google.ads.googleads.v7.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.v7.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.v7.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; - } -} - -// 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; -} diff --git a/google/ads/googleads/v7/services/mobile_app_category_constant_service.proto b/google/ads/googleads/v7/services/mobile_app_category_constant_service.proto deleted file mode 100644 index 434e602d8..000000000 --- a/google/ads/googleads/v7/services/mobile_app_category_constant_service.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/mobile_app_category_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MobileAppCategoryConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Service to fetch mobile app category constants. -service MobileAppCategoryConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested mobile app category constant. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetMobileAppCategoryConstant(GetMobileAppCategoryConstantRequest) returns (google.ads.googleads.v7.resources.MobileAppCategoryConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=mobileAppCategoryConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [MobileAppCategoryConstantService.GetMobileAppCategoryConstant][google.ads.googleads.v7.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant]. -message GetMobileAppCategoryConstantRequest { - // Required. Resource name of the mobile app category constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MobileAppCategoryConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/services/mobile_device_constant_service.proto b/google/ads/googleads/v7/services/mobile_device_constant_service.proto deleted file mode 100644 index 494590d75..000000000 --- a/google/ads/googleads/v7/services/mobile_device_constant_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/mobile_device_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MobileDeviceConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the mobile device constant service. - -// Service to fetch mobile device constants. -service MobileDeviceConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested mobile device constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetMobileDeviceConstant(GetMobileDeviceConstantRequest) returns (google.ads.googleads.v7.resources.MobileDeviceConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=mobileDeviceConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [MobileDeviceConstantService.GetMobileDeviceConstant][google.ads.googleads.v7.services.MobileDeviceConstantService.GetMobileDeviceConstant]. -message GetMobileDeviceConstantRequest { - // Required. Resource name of the mobile device to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MobileDeviceConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/services/offline_user_data_job_service.proto b/google/ads/googleads/v7/services/offline_user_data_job_service.proto deleted file mode 100644 index 07b5e2c47..000000000 --- a/google/ads/googleads/v7/services/offline_user_data_job_service.proto +++ /dev/null @@ -1,224 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/offline_user_data.proto"; -import "google/ads/googleads/v7/resources/offline_user_data_job.proto"; -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/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the OfflineUserDataJobService. - -// Service to manage offline user data jobs. -service OfflineUserDataJobService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Creates an offline user data job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [NotAllowlistedError]() - // [OfflineUserDataJobError]() - // [QuotaError]() - // [RequestError]() - rpc CreateOfflineUserDataJob(CreateOfflineUserDataJobRequest) returns (CreateOfflineUserDataJobResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/offlineUserDataJobs:create" - body: "*" - }; - option (google.api.method_signature) = "customer_id,job"; - } - - // Returns the offline user data job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetOfflineUserDataJob(GetOfflineUserDataJobRequest) returns (google.ads.googleads.v7.resources.OfflineUserDataJob) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/offlineUserDataJobs/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Adds operations to the offline user data job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [OfflineUserDataJobError]() - // [QuotaError]() - // [RequestError]() - rpc AddOfflineUserDataJobOperations(AddOfflineUserDataJobOperationsRequest) returns (AddOfflineUserDataJobOperationsResponse) { - option (google.api.http) = { - post: "/v7/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" - body: "*" - }; - option (google.api.method_signature) = "resource_name,operations"; - } - - // Runs the offline user data job. - // - // When finished, the long running operation will contain the processing - // result or failure information, if any. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [HeaderError]() - // [InternalError]() - // [OfflineUserDataJobError]() - // [QuotaError]() - // [RequestError]() - rpc RunOfflineUserDataJob(RunOfflineUserDataJobRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v7/{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.protobuf.Empty" - }; - } -} - -// Request message for -// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v7.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.v7.resources.OfflineUserDataJob job = 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; -} - -// Response message for -// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v7.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. -message CreateOfflineUserDataJobResponse { - // The resource name of the OfflineUserDataJob. - string resource_name = 1; -} - -// Request message for [OfflineUserDataJobService.GetOfflineUserDataJob][google.ads.googleads.v7.services.OfflineUserDataJobService.GetOfflineUserDataJob]. -message GetOfflineUserDataJobRequest { - // Required. The resource name of the OfflineUserDataJob to get. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - } - ]; -} - -// Request message for [OfflineUserDataJobService.RunOfflineUserDataJob][google.ads.googleads.v7.services.OfflineUserDataJobService.RunOfflineUserDataJob]. -message RunOfflineUserDataJobRequest { - // Required. The resource name of the OfflineUserDataJob to run. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - } - ]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 2; -} - -// Request message for -// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v7.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. -message AddOfflineUserDataJobOperationsRequest { - // Required. The resource name of the OfflineUserDataJob. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - } - ]; - - // True to enable partial failure for the offline user data job. - optional bool enable_partial_failure = 4; - - // Required. The list of operations to be done. - repeated OfflineUserDataJobOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 5; -} - -// Operation to be made for the AddOfflineUserDataJobOperationsRequest. -message OfflineUserDataJobOperation { - // Operation to be made for the AddOfflineUserDataJobOperationsRequest. - oneof operation { - // Add the provided data to the transaction. Data cannot be retrieved after - // being uploaded. - google.ads.googleads.v7.common.UserData create = 1; - - // Remove the provided data from the transaction. Data cannot be retrieved - // after being uploaded. - google.ads.googleads.v7.common.UserData remove = 2; - - // Remove all previously provided data. This is only supported for Customer - // Match. - bool remove_all = 3; - } -} - -// Response message for -// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v7.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 - // operations. If any errors occur outside the operations (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; -} diff --git a/google/ads/googleads/v7/services/operating_system_version_constant_service.proto b/google/ads/googleads/v7/services/operating_system_version_constant_service.proto deleted file mode 100644 index e10e088fb..000000000 --- a/google/ads/googleads/v7/services/operating_system_version_constant_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/operating_system_version_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "OperatingSystemVersionConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the OS version constant service - -// Service to fetch Operating System Version constants. -service OperatingSystemVersionConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested OS version constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetOperatingSystemVersionConstant(GetOperatingSystemVersionConstantRequest) returns (google.ads.googleads.v7.resources.OperatingSystemVersionConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=operatingSystemVersionConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant][google.ads.googleads.v7.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant]. -message GetOperatingSystemVersionConstantRequest { - // Required. Resource name of the OS version to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OperatingSystemVersionConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/services/paid_organic_search_term_view_service.proto b/google/ads/googleads/v7/services/paid_organic_search_term_view_service.proto deleted file mode 100644 index 023b1d1fa..000000000 --- a/google/ads/googleads/v7/services/paid_organic_search_term_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/paid_organic_search_term_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "PaidOrganicSearchTermViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Paid Organic Search Term View service. - -// Service to fetch paid organic search term views. -service PaidOrganicSearchTermViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested paid organic search term view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetPaidOrganicSearchTermView(GetPaidOrganicSearchTermViewRequest) returns (google.ads.googleads.v7.resources.PaidOrganicSearchTermView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/paidOrganicSearchTermViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView][google.ads.googleads.v7.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView]. -message GetPaidOrganicSearchTermViewRequest { - // Required. The resource name of the paid organic search term view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/PaidOrganicSearchTermView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/parental_status_view_service.proto b/google/ads/googleads/v7/services/parental_status_view_service.proto deleted file mode 100644 index 5ce2f72e3..000000000 --- a/google/ads/googleads/v7/services/parental_status_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/parental_status_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ParentalStatusViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Parental Status View service. - -// Service to manage parental status views. -service ParentalStatusViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested parental status view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetParentalStatusView(GetParentalStatusViewRequest) returns (google.ads.googleads.v7.resources.ParentalStatusView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/parentalStatusViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [ParentalStatusViewService.GetParentalStatusView][google.ads.googleads.v7.services.ParentalStatusViewService.GetParentalStatusView]. -message GetParentalStatusViewRequest { - // Required. The resource name of the parental status view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ParentalStatusView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/payments_account_service.proto b/google/ads/googleads/v7/services/payments_account_service.proto deleted file mode 100644 index cf03e81f7..000000000 --- a/google/ads/googleads/v7/services/payments_account_service.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "PaymentsAccountServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the payments account service. - -// Service to provide payments accounts that can be used to set up consolidated -// billing. -service PaymentsAccountService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns all payments accounts associated with all managers - // between the login customer ID and specified serving customer in the - // hierarchy, inclusive. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [PaymentsAccountError]() - // [QuotaError]() - // [RequestError]() - rpc ListPaymentsAccounts(ListPaymentsAccountsRequest) returns (ListPaymentsAccountsResponse) { - option (google.api.http) = { - get: "/v7/customers/{customer_id=*}/paymentsAccounts" - }; - option (google.api.method_signature) = "customer_id"; - } -} - -// Request message for fetching all accessible payments accounts. -message ListPaymentsAccountsRequest { - // Required. The ID of the customer to apply the PaymentsAccount list operation to. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v7.services.PaymentsAccountService.ListPaymentsAccounts]. -message ListPaymentsAccountsResponse { - // The list of accessible payments accounts. - repeated google.ads.googleads.v7.resources.PaymentsAccount payments_accounts = 1; -} diff --git a/google/ads/googleads/v7/services/product_bidding_category_constant_service.proto b/google/ads/googleads/v7/services/product_bidding_category_constant_service.proto deleted file mode 100644 index 04ea8bbc2..000000000 --- a/google/ads/googleads/v7/services/product_bidding_category_constant_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/product_bidding_category_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Product Bidding Category constant service - -// Service to fetch Product Bidding Categories. -service ProductBiddingCategoryConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Product Bidding Category in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetProductBiddingCategoryConstant(GetProductBiddingCategoryConstantRequest) returns (google.ads.googleads.v7.resources.ProductBiddingCategoryConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=productBiddingCategoryConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant][google.ads.googleads.v7.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant]. -message GetProductBiddingCategoryConstantRequest { - // Required. Resource name of the Product Bidding Category to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductBiddingCategoryConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/services/product_group_view_service.proto b/google/ads/googleads/v7/services/product_group_view_service.proto deleted file mode 100644 index 58a5e6ed8..000000000 --- a/google/ads/googleads/v7/services/product_group_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/product_group_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ProductGroupViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the ProductGroup View service. - -// Service to manage product group views. -service ProductGroupViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested product group view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetProductGroupView(GetProductGroupViewRequest) returns (google.ads.googleads.v7.resources.ProductGroupView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/productGroupViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [ProductGroupViewService.GetProductGroupView][google.ads.googleads.v7.services.ProductGroupViewService.GetProductGroupView]. -message GetProductGroupViewRequest { - // Required. The resource name of the product group view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductGroupView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/reach_plan_service.proto b/google/ads/googleads/v7/services/reach_plan_service.proto deleted file mode 100644 index 0ef871360..000000000 --- a/google/ads/googleads/v7/services/reach_plan_service.proto +++ /dev/null @@ -1,503 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/criteria.proto"; -import "google/ads/googleads/v7/enums/frequency_cap_time_unit.proto"; -import "google/ads/googleads/v7/enums/reach_plan_ad_length.proto"; -import "google/ads/googleads/v7/enums/reach_plan_age_range.proto"; -import "google/ads/googleads/v7/enums/reach_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the reach plan service. - -// Reach Plan Service gives users information about audience size that can -// be reached through advertisement on YouTube. In particular, -// GenerateReachForecast provides estimated number of people of specified -// demographics that can be reached by an ad in a given market by a campaign of -// certain duration with a defined budget. -service ReachPlanService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the list of plannable locations (for example, countries & DMAs). - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListPlannableLocations(ListPlannableLocationsRequest) returns (ListPlannableLocationsResponse) { - option (google.api.http) = { - post: "/v7:listPlannableLocations" - body: "*" - }; - } - - // Returns the list of per-location plannable YouTube ad formats with allowed - // targeting. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) { - option (google.api.http) = { - post: "/v7:listPlannableProducts" - body: "*" - }; - option (google.api.method_signature) = "plannable_location_id"; - } - - // Generates a product mix ideas given a set of preferences. This method - // helps the advertiser to obtain a good mix of ad formats and budget - // allocations based on its preferences. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [ReachPlanError]() - // [RequestError]() - rpc GenerateProductMixIdeas(GenerateProductMixIdeasRequest) returns (GenerateProductMixIdeasResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:generateProductMixIdeas" - body: "*" - }; - option (google.api.method_signature) = "customer_id,plannable_location_id,currency_code,budget_micros"; - } - - // Generates a reach forecast for a given targeting / product mix. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RangeError]() - // [ReachPlanError]() - // [RequestError]() - rpc GenerateReachForecast(GenerateReachForecastRequest) returns (GenerateReachForecastResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:generateReachForecast" - body: "*" - }; - option (google.api.method_signature) = "customer_id,campaign_duration,planned_products"; - } -} - -// Request message for [ReachPlanService.ListPlannableLocations][google.ads.googleads.v7.services.ReachPlanService.ListPlannableLocations]. -message ListPlannableLocationsRequest { - -} - -// The list of plannable locations. -message ListPlannableLocationsResponse { - // The list of locations available for planning (Countries, DMAs, - // sub-countries). - // For locations like Countries and DMAs see - // https://developers.google.com/google-ads/api/reference/data/geotargets for - // more information. - repeated PlannableLocation plannable_locations = 1; -} - -// A plannable location: a country, a DMA, a metro region, a tv region, -// a province. -message PlannableLocation { - // The location identifier. - optional string id = 4; - - // The unique location name in english. - optional string name = 5; - - // 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.v7.services.ReachPlanService.ListPlannableLocations] or directly by accessing - // [GeoTargetConstantService.GetGeoTargetConstant][google.ads.googleads.v7.services.GeoTargetConstantService.GetGeoTargetConstant]. - optional int64 parent_country_id = 6; -} - -// Request to list available products in a given location. -message ListPlannableProductsRequest { - // Required. The ID of the selected location for planning. To list the available - // plannable location ids use [ReachPlanService.ListPlannableLocations][google.ads.googleads.v7.services.ReachPlanService.ListPlannableLocations]. - string plannable_location_id = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A response with all available products. -message ListPlannableProductsResponse { - // The list of products available for planning and related targeting metadata. - repeated ProductMetadata product_metadata = 1; -} - -// The metadata associated with an available plannable product. -message ProductMetadata { - // The code associated with the ad product. E.g. BUMPER, TRUEVIEW_IN_STREAM - // To list the available plannable product codes use ListPlannableProducts. - optional string plannable_product_code = 4; - - // The name associated with the ad product. - string plannable_product_name = 3; - - // The allowed plannable targeting for this product. - PlannableTargeting plannable_targeting = 2; -} - -// The targeting for which traffic metrics will be reported. -message PlannableTargeting { - // Allowed plannable age ranges for the product for which metrics will be - // reported. Actual targeting is computed by mapping this age range onto - // standard Google common.AgeRangeInfo values. - repeated google.ads.googleads.v7.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_ranges = 1; - - // Targetable genders for the ad product. - repeated google.ads.googleads.v7.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.v7.common.DeviceInfo devices = 3; - - // Targetable networks for the ad product. - repeated google.ads.googleads.v7.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4; -} - -// Request message for [ReachPlanService.GenerateProductMixIdeas][google.ads.googleads.v7.services.ReachPlanService.GenerateProductMixIdeas]. -message GenerateProductMixIdeasRequest { - // Required. The ID of the customer. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The ID of the location, this is one of the ids returned by - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v7.services.ReachPlanService.ListPlannableLocations]. - string plannable_location_id = 6 [(google.api.field_behavior) = REQUIRED]; - - // Required. Currency code. - // Three-character ISO 4217 currency code. - string currency_code = 7 [(google.api.field_behavior) = REQUIRED]; - - // Required. Total budget. - // Amount in micros. One million is equivalent to one unit. - int64 budget_micros = 8 [(google.api.field_behavior) = REQUIRED]; - - // The preferences of the suggested product mix. - // An unset preference is interpreted as all possible values are allowed, - // unless explicitly specified. - Preferences preferences = 5; -} - -// Set of preferences about the planned mix. -message Preferences { - // True if ad skippable. - // If not set, default is any value. - optional bool is_skippable = 6; - - // True if ad start with sound. - // If not set, default is any value. - optional bool starts_with_sound = 7; - - // The length of the ad. - // If not set, default is any value. - google.ads.googleads.v7.enums.ReachPlanAdLengthEnum.ReachPlanAdLength ad_length = 3; - - // True if ad will only show on the top content. - // If not set, default is false. - optional bool top_content_only = 8; - - // True if the price guaranteed. The cost of serving the ad is agreed upfront - // and not subject to an auction. - // If not set, default is any value. - optional bool has_guaranteed_price = 9; -} - -// The suggested product mix. -message GenerateProductMixIdeasResponse { - // A list of products (ad formats) and the associated budget allocation idea. - repeated ProductAllocation product_allocation = 1; -} - -// An allocation of a part of the budget on a given product. -message ProductAllocation { - // Selected product for planning. The product codes returned are within the - // set of the ones returned by ListPlannableProducts when using the same - // location ID. - optional string plannable_product_code = 3; - - // The value to be allocated for the suggested product in requested currency. - // Amount in micros. One million is equivalent to one unit. - optional int64 budget_micros = 4; -} - -// Request message for [ReachPlanService.GenerateReachForecast][google.ads.googleads.v7.services.ReachPlanService.GenerateReachForecast]. -message GenerateReachForecastRequest { - // Required. The ID of the customer. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // The currency code. - // Three-character ISO 4217 currency code. - optional string currency_code = 9; - - // Required. Campaign duration. - CampaignDuration campaign_duration = 3 [(google.api.field_behavior) = REQUIRED]; - - // Desired cookie frequency cap that will be applied to each planned product. - // This is equivalent to the frequency cap exposed in Google Ads when creating - // a campaign, it represents the maximum number of times an ad can be shown to - // the same user. - // If not specified no cap is applied. - // - // This field is deprecated in v4 and will eventually be removed. - // Please use cookie_frequency_cap_setting instead. - optional int32 cookie_frequency_cap = 10; - - // Desired cookie frequency cap that will be applied to each planned product. - // This is equivalent to the frequency cap exposed in Google Ads when creating - // a campaign, it represents the maximum number of times an ad can be shown to - // the same user during a specified time interval. - // If not specified, a default of 0 (no cap) is applied. - // - // This field replaces the deprecated cookie_frequency_cap field. - FrequencyCap cookie_frequency_cap_setting = 8; - - // Desired minimum effective frequency (the number of times a person was - // exposed to the ad) for the reported reach metrics [1-10]. - // This won't affect the targeting, but just the reporting. - // If not specified, a default of 1 is applied. - // - // This field cannot be combined with the effective_frequency_limit field. - optional int32 min_effective_frequency = 11; - - // The targeting to be applied to all products selected in the product mix. - // - // This is planned targeting: execution details might vary based on the - // advertising product, please consult an implementation specialist. - // - // See specific metrics for details on how targeting affects them. - Targeting targeting = 6; - - // Required. The products to be forecast. - // The max number of allowed planned products is 15. - repeated PlannedProduct planned_products = 7 [(google.api.field_behavior) = REQUIRED]; -} - -// A rule specifying the maximum number of times an ad can be shown to a user -// over a particular time period. -message FrequencyCap { - // Required. The number of impressions, inclusive. - int32 impressions = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The type of time unit. - google.ads.googleads.v7.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// The targeting for which traffic metrics will be reported. -message Targeting { - // Required. The ID of the selected location. Plannable location IDs can be - // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v7.services.ReachPlanService.ListPlannableLocations]. - optional string plannable_location_id = 6; - - // Targeted age range. - // An unset value is equivalent to targeting all ages. - google.ads.googleads.v7.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2; - - // Targeted genders. - // An unset value is equivalent to targeting MALE and FEMALE. - repeated google.ads.googleads.v7.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.v7.services.ReachPlanService.ListPlannableProducts]. - repeated google.ads.googleads.v7.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.v7.services.ReachPlanService.ListPlannableProducts]. - google.ads.googleads.v7.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = 5; -} - -// The duration of a planned campaign. -message CampaignDuration { - // The duration value in days. - // - // This field cannot be combined with the date_range field. - optional int32 duration_in_days = 2; -} - -// A product being planned for reach. -message PlannedProduct { - // Required. Selected product for planning. - // The code associated with the ad product. E.g. Trueview, Bumper - // To list the available plannable product codes use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v7.services.ReachPlanService.ListPlannableProducts]. - optional string plannable_product_code = 3; - - // Required. Maximum budget allocation in micros for the selected product. - // The value is specified in the selected planning currency_code. - // E.g. 1 000 000$ = 1 000 000 000 000 micros. - optional int64 budget_micros = 4; -} - -// Response message containing the generated reach curve. -message GenerateReachForecastResponse { - // Reference on target audiences for this curve. - OnTargetAudienceMetrics on_target_audience_metrics = 1; - - // The generated reach curve for the planned product mix. - ReachCurve reach_curve = 2; -} - -// The reach curve for the planned products. -message ReachCurve { - // All points on the reach curve. - repeated ReachForecast reach_forecasts = 1; -} - -// A point on reach curve. -message ReachForecast { - // The cost in micros. - int64 cost_micros = 5; - - // Forecasted traffic metrics for this point. - Forecast forecast = 2; - - // The forecasted allocation and traffic metrics for each planned product - // at this point on the reach curve. - repeated PlannedProductReachForecast planned_product_reach_forecasts = 4; -} - -// Forecasted traffic metrics for the planned products and targeting. -message Forecast { - // Number of unique people reached at least - // GenerateReachForecastRequest.min_effective_frequency or - // GenerateReachForecastRequest.effective_frequency_limit times that exactly - // matches the Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the on_target_reach - // value will be rounded to 0. - optional int64 on_target_reach = 5; - - // Total number of unique people reached at least - // GenerateReachForecastRequest.min_effective_frequency or - // GenerateReachForecastRequest.effective_frequency_limit times. This includes - // people that may fall outside the specified Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the total_reach - // value will be rounded to 0. - optional int64 total_reach = 6; - - // Number of ad impressions that exactly matches the Targeting. - optional int64 on_target_impressions = 7; - - // Total number of ad impressions. This includes impressions that may fall - // outside the specified Targeting, due to insufficient information on - // signed-in users. - optional int64 total_impressions = 8; - - // Number of times the ad's impressions were considered viewable. - // See https://support.google.com/google-ads/answer/7029393 for - // more information about what makes an ad viewable and how - // viewability is measured. - optional int64 viewable_impressions = 9; -} - -// The forecasted allocation and traffic metrics for a specific product -// at a point on the reach curve. -message PlannedProductReachForecast { - // Selected product for planning. The product codes returned are within the - // set of the ones returned by ListPlannableProducts when using the same - // location ID. - string plannable_product_code = 1; - - // The cost in micros. This may differ from the product's input allocation - // if one or more planned products cannot fulfill the budget because of - // limited inventory. - int64 cost_micros = 2; - - // Forecasted traffic metrics for this product. - PlannedProductForecast planned_product_forecast = 3; -} - -// Forecasted traffic metrics for a planned product. -message PlannedProductForecast { - // Number of unique people reached that exactly matches the Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the on_target_reach - // value will be rounded to 0. - int64 on_target_reach = 1; - - // Number of unique people reached. This includes people that may fall - // outside the specified Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the total_reach - // value will be rounded to 0. - int64 total_reach = 2; - - // Number of ad impressions that exactly matches the Targeting. - int64 on_target_impressions = 3; - - // Total number of ad impressions. This includes impressions that may fall - // outside the specified Targeting, due to insufficient information on - // signed-in users. - int64 total_impressions = 4; - - // Number of times the ad's impressions were considered viewable. - // See https://support.google.com/google-ads/answer/7029393 for - // more information about what makes an ad viewable and how - // viewability is measured. - optional int64 viewable_impressions = 5; -} - -// Audience metrics for the planned products. -// These metrics consider the following targeting dimensions: -// -// - Location -// - PlannableAgeRange -// - Gender -message OnTargetAudienceMetrics { - // Reference audience size matching the considered targeting for YouTube. - optional int64 youtube_audience_size = 3; - - // Reference audience size matching the considered targeting for Census. - optional int64 census_audience_size = 4; -} diff --git a/google/ads/googleads/v7/services/recommendation_service.proto b/google/ads/googleads/v7/services/recommendation_service.proto deleted file mode 100644 index 5a75df014..000000000 --- a/google/ads/googleads/v7/services/recommendation_service.proto +++ /dev/null @@ -1,309 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/extensions.proto"; -import "google/ads/googleads/v7/enums/keyword_match_type.proto"; -import "google/ads/googleads/v7/resources/ad.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Recommendation service. - -// Service to manage recommendations. -service RecommendationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested recommendation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetRecommendation(GetRecommendationRequest) returns (google.ads.googleads.v7.resources.Recommendation) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/recommendations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Applies given recommendations with corresponding apply parameters. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RecommendationError]() - // [RequestError]() - // [UrlFieldError]() - rpc ApplyRecommendation(ApplyRecommendationRequest) returns (ApplyRecommendationResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/recommendations:apply" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Dismisses given recommendations. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RecommendationError]() - // [RequestError]() - rpc DismissRecommendation(DismissRecommendationRequest) returns (DismissRecommendationResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/recommendations:dismiss" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [RecommendationService.GetRecommendation][google.ads.googleads.v7.services.RecommendationService.GetRecommendation]. -message GetRecommendationRequest { - // Required. The resource name of the recommendation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Recommendation" - } - ]; -} - -// Request message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v7.services.RecommendationService.ApplyRecommendation]. -message ApplyRecommendationRequest { - // Required. The ID of the customer with the recommendation. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to apply recommendations. - // If partial_failure=false all recommendations should be of the same type - // There is a limit of 100 operations per request. - repeated ApplyRecommendationOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; - - // If true, successful operations will be carried out and invalid - // operations will return errors. If false, operations will be carried - // out as a transaction if and only if they are all valid. - // Default is false. - bool partial_failure = 3; -} - -// Information about the operation to apply a recommendation and any parameters -// to customize it. -message ApplyRecommendationOperation { - // Parameters to use when applying a campaign budget recommendation. - message CampaignBudgetParameters { - // New budget amount to set for target budget resource. This is a required - // field. - optional int64 new_budget_amount_micros = 2; - } - - // Parameters to use when applying a text ad recommendation. - 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.v7.resources.Ad ad = 1; - } - - // Parameters to use when applying keyword recommendation. - message KeywordParameters { - // The ad group resource to add keyword to. This is a required field. - optional string ad_group = 4; - - // The match type of the keyword. This is a required field. - google.ads.googleads.v7.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; - - // Optional, CPC bid to set for the keyword. If not set, keyword will use - // bid based on bidding strategy used by target ad group. - optional int64 cpc_bid_micros = 5; - } - - // Parameters to use when applying Target CPA recommendation. - message TargetCpaOptInParameters { - // Average CPA to use for Target CPA bidding strategy. This is a required - // field. - optional int64 target_cpa_micros = 3; - - // Optional, budget amount to set for the campaign. - optional int64 new_campaign_budget_amount_micros = 4; - } - - // Parameters to use when applying a Target ROAS opt-in recommendation. - message TargetRoasOptInParameters { - // Average ROAS (revenue per unit of spend) to use for Target ROAS bidding - // strategy. The value is between 0.01 and 1000.0, inclusive. This is a - // required field, unless new_campaign_budget_amount_micros is set. - optional double target_roas = 1; - - // Optional, budget amount to set for the campaign. - optional int64 new_campaign_budget_amount_micros = 2; - } - - // Parameters to use when applying callout extension recommendation. - message CalloutExtensionParameters { - // Callout extensions to be added. This is a required field. - repeated google.ads.googleads.v7.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.v7.common.CallFeedItem call_extensions = 1; - } - - // Parameters to use when applying sitelink extension recommendation. - message SitelinkExtensionParameters { - // Sitelink extensions to be added. This is a required field. - repeated google.ads.googleads.v7.common.SitelinkFeedItem sitelink_extensions = 1; - } - - // Parameters to use when applying move unused budget recommendation. - message MoveUnusedBudgetParameters { - // Budget amount to move from excess budget to constrained budget. This is - // a required field. - optional int64 budget_micros_to_move = 2; - } - - // Parameters to use when applying a responsive search ad recommendation. - message ResponsiveSearchAdParameters { - // Required. New ad to add to recommended ad group. - google.ads.googleads.v7.resources.Ad ad = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // The resource name of the recommendation to apply. - string resource_name = 1; - - // Parameters to use when applying the recommendation. - oneof apply_parameters { - // Optional parameters to use when applying a campaign budget - // recommendation. - CampaignBudgetParameters campaign_budget = 2; - - // Optional parameters to use when applying a text ad recommendation. - TextAdParameters text_ad = 3; - - // Optional parameters to use when applying keyword recommendation. - KeywordParameters keyword = 4; - - // Optional parameters to use when applying target CPA opt-in - // recommendation. - TargetCpaOptInParameters target_cpa_opt_in = 5; - - // Optional parameters to use when applying target ROAS opt-in - // recommendation. - TargetRoasOptInParameters target_roas_opt_in = 10; - - // Parameters to use when applying callout extension recommendation. - CalloutExtensionParameters callout_extension = 6; - - // Parameters to use when applying call extension recommendation. - CallExtensionParameters call_extension = 7; - - // Parameters to use when applying sitelink extension recommendation. - SitelinkExtensionParameters sitelink_extension = 8; - - // Parameters to use when applying move unused budget recommendation. - MoveUnusedBudgetParameters move_unused_budget = 9; - - // Parameters to use when applying a responsive search ad recommendation. - ResponsiveSearchAdParameters responsive_search_ad = 11; - } -} - -// Response message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v7.services.RecommendationService.ApplyRecommendation]. -message ApplyRecommendationResponse { - // Results of operations to apply recommendations. - repeated ApplyRecommendationResult 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 (e.g. auth errors) - // we return the RPC level error. - google.rpc.Status partial_failure_error = 2; -} - -// The result of applying a recommendation. -message ApplyRecommendationResult { - // Returned for successful applies. - string resource_name = 1; -} - -// Request message for [RecommendationService.DismissRecommendation][google.ads.googleads.v7.services.RecommendationService.DismissRecommendation]. -message DismissRecommendationRequest { - // Operation to dismiss a single recommendation identified by resource_name. - message DismissRecommendationOperation { - // The resource name of the recommendation to dismiss. - string resource_name = 1; - } - - // Required. The ID of the customer with the recommendation. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to dismiss recommendations. - // If partial_failure=false all recommendations should be of the same type - // There is a limit of 100 operations per request. - repeated DismissRecommendationOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, successful operations will be carried out and invalid - // operations will return errors. If false, operations will be carried in a - // single transaction if and only if they are all valid. - // Default is false. - bool partial_failure = 2; -} - -// Response message for [RecommendationService.DismissRecommendation][google.ads.googleads.v7.services.RecommendationService.DismissRecommendation]. -message DismissRecommendationResponse { - // The result of dismissing a recommendation. - message DismissRecommendationResult { - // Returned for successful dismissals. - string resource_name = 1; - } - - // Results of operations to dismiss recommendations. - repeated DismissRecommendationResult 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 (e.g. auth errors) - // we return the RPC level error. - google.rpc.Status partial_failure_error = 2; -} diff --git a/google/ads/googleads/v7/services/remarketing_action_service.proto b/google/ads/googleads/v7/services/remarketing_action_service.proto deleted file mode 100644 index e32cff7f1..000000000 --- a/google/ads/googleads/v7/services/remarketing_action_service.proto +++ /dev/null @@ -1,141 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/remarketing_action.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "RemarketingActionServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Remarketing Action service. - -// Service to manage remarketing actions. -service RemarketingActionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested remarketing action in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetRemarketingAction(GetRemarketingActionRequest) returns (google.ads.googleads.v7.resources.RemarketingAction) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/remarketingActions/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates remarketing actions. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ConversionActionError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateRemarketingActions(MutateRemarketingActionsRequest) returns (MutateRemarketingActionsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/remarketingActions:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [RemarketingActionService.GetRemarketingAction][google.ads.googleads.v7.services.RemarketingActionService.GetRemarketingAction]. -message GetRemarketingActionRequest { - // Required. The resource name of the remarketing action to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/RemarketingAction" - } - ]; -} - -// Request message for [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v7.services.RemarketingActionService.MutateRemarketingActions]. -message MutateRemarketingActionsRequest { - // Required. The ID of the customer whose remarketing actions are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual remarketing actions. - repeated RemarketingActionOperation 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; -} - -// A single operation (create, update) on a remarketing action. -message RemarketingActionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new remarketing - // action. - google.ads.googleads.v7.resources.RemarketingAction create = 1; - - // Update operation: The remarketing action is expected to have a valid - // resource name. - google.ads.googleads.v7.resources.RemarketingAction update = 2; - } -} - -// Response message for remarketing action mutate. -message MutateRemarketingActionsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateRemarketingActionResult results = 2; -} - -// The result for the remarketing action mutate. -message MutateRemarketingActionResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/search_term_view_service.proto b/google/ads/googleads/v7/services/search_term_view_service.proto deleted file mode 100644 index fd86adf64..000000000 --- a/google/ads/googleads/v7/services/search_term_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/search_term_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SearchTermViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Search Term View service. - -// Service to manage search term views. -service SearchTermViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the attributes of the requested search term view. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetSearchTermView(GetSearchTermViewRequest) returns (google.ads.googleads.v7.resources.SearchTermView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/searchTermViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [SearchTermViewService.GetSearchTermView][google.ads.googleads.v7.services.SearchTermViewService.GetSearchTermView]. -message GetSearchTermViewRequest { - // Required. The resource name of the search term view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SearchTermView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/shared_criterion_service.proto b/google/ads/googleads/v7/services/shared_criterion_service.proto deleted file mode 100644 index 84526e825..000000000 --- a/google/ads/googleads/v7/services/shared_criterion_service.proto +++ /dev/null @@ -1,162 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SharedCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Shared Criterion service. - -// Service to manage shared criteria. -service SharedCriterionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested shared criterion in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetSharedCriterion(GetSharedCriterionRequest) returns (google.ads.googleads.v7.resources.SharedCriterion) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/sharedCriteria/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes shared criteria. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CriterionError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateSharedCriteria(MutateSharedCriteriaRequest) returns (MutateSharedCriteriaResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/sharedCriteria:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [SharedCriterionService.GetSharedCriterion][google.ads.googleads.v7.services.SharedCriterionService.GetSharedCriterion]. -message GetSharedCriterionRequest { - // Required. The resource name of the shared criterion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedCriterion" - } - ]; -} - -// Request message for [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual shared criteria. - repeated SharedCriterionOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove) on an shared criterion. -message SharedCriterionOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new shared - // criterion. - google.ads.googleads.v7.resources.SharedCriterion create = 1; - - // Remove operation: A resource name for the removed shared criterion is - // expected, in this format: - // - // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for a shared criterion mutate. -message MutateSharedCriteriaResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateSharedCriterionResult results = 2; -} - -// The result for the shared criterion mutate. -message MutateSharedCriterionResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.SharedCriterion shared_criterion = 2; -} diff --git a/google/ads/googleads/v7/services/shared_set_service.proto b/google/ads/googleads/v7/services/shared_set_service.proto deleted file mode 100644 index ac2c6bd52..000000000 --- a/google/ads/googleads/v7/services/shared_set_service.proto +++ /dev/null @@ -1,172 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/enums/response_content_type.proto"; -import "google/ads/googleads/v7/resources/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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Shared Set service. - -// Service to manage shared sets. -service SharedSetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested shared set in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetSharedSet(GetSharedSetRequest) returns (google.ads.googleads.v7.resources.SharedSet) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/sharedSets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes shared sets. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SharedSetError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateSharedSets(MutateSharedSetsRequest) returns (MutateSharedSetsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/sharedSets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [SharedSetService.GetSharedSet][google.ads.googleads.v7.services.SharedSetService.GetSharedSet]. -message GetSharedSetRequest { - // Required. The resource name of the shared set to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; -} - -// Request message for [SharedSetService.MutateSharedSets][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual shared sets. - repeated SharedSetOperation 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.v7.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an shared set. -message SharedSetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new shared set. - google.ads.googleads.v7.resources.SharedSet create = 1; - - // Update operation: The shared set is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.SharedSet update = 2; - - // Remove operation: A resource name for the removed shared set is expected, - // in this format: - // - // `customers/{customer_id}/sharedSets/{shared_set_id}` - string remove = 3; - } -} - -// Response message for a shared set mutate. -message MutateSharedSetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateSharedSetResult results = 2; -} - -// The result for the shared set mutate. -message MutateSharedSetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v7.resources.SharedSet shared_set = 2; -} diff --git a/google/ads/googleads/v7/services/shopping_performance_view_service.proto b/google/ads/googleads/v7/services/shopping_performance_view_service.proto deleted file mode 100644 index b686d4dcb..000000000 --- a/google/ads/googleads/v7/services/shopping_performance_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/shopping_performance_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ShoppingPerformanceViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the ShoppingPerformanceView service. - -// Service to fetch Shopping performance views. -service ShoppingPerformanceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Shopping performance view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetShoppingPerformanceView(GetShoppingPerformanceViewRequest) returns (google.ads.googleads.v7.resources.ShoppingPerformanceView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/shoppingPerformanceView}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [ShoppingPerformanceViewService.GetShoppingPerformanceView][google.ads.googleads.v7.services.ShoppingPerformanceViewService.GetShoppingPerformanceView]. -message GetShoppingPerformanceViewRequest { - // Required. The resource name of the Shopping performance view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ShoppingPerformanceView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/third_party_app_analytics_link_service.proto b/google/ads/googleads/v7/services/third_party_app_analytics_link_service.proto deleted file mode 100644 index 93570ed9d..000000000 --- a/google/ads/googleads/v7/services/third_party_app_analytics_link_service.proto +++ /dev/null @@ -1,94 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/third_party_app_analytics_link.proto"; -import "google/api/annotations.proto"; -import "google/api/resource.proto"; -import "google/api/client.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ThirdPartyAppAnalyticsLinkServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// This service allows management of links between Google Ads and third party -// app analytics. -service ThirdPartyAppAnalyticsLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the third party app analytics link in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetThirdPartyAppAnalyticsLink(GetThirdPartyAppAnalyticsLinkRequest) returns (google.ads.googleads.v7.resources.ThirdPartyAppAnalyticsLink) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}" - }; - } - - // Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be - // provided to the third party when setting up app analytics. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc RegenerateShareableLinkId(RegenerateShareableLinkIdRequest) returns (RegenerateShareableLinkIdResponse) { - option (google.api.http) = { - post: "/v7/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" - body: "*" - }; - } -} - -// Request message for -// [ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink][google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink]. -message GetThirdPartyAppAnalyticsLinkRequest { - // Resource name of the third party app analytics link. - string resource_name = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" - }]; -} - -// Request message for -// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. -message RegenerateShareableLinkIdRequest { - // Resource name of the third party app analytics link. - string resource_name = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" - }]; -} - -// Response message for -// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v7.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. -message RegenerateShareableLinkIdResponse { - -} diff --git a/google/ads/googleads/v7/services/topic_constant_service.proto b/google/ads/googleads/v7/services/topic_constant_service.proto deleted file mode 100644 index ec0ba8db3..000000000 --- a/google/ads/googleads/v7/services/topic_constant_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/topic_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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "TopicConstantServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Topic constant service - -// Service to fetch topic constants. -service TopicConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested topic constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetTopicConstant(GetTopicConstantRequest) returns (google.ads.googleads.v7.resources.TopicConstant) { - option (google.api.http) = { - get: "/v7/{resource_name=topicConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [TopicConstantService.GetTopicConstant][google.ads.googleads.v7.services.TopicConstantService.GetTopicConstant]. -message GetTopicConstantRequest { - // Required. Resource name of the Topic to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicConstant" - } - ]; -} diff --git a/google/ads/googleads/v7/services/topic_view_service.proto b/google/ads/googleads/v7/services/topic_view_service.proto deleted file mode 100644 index 26a47fd29..000000000 --- a/google/ads/googleads/v7/services/topic_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/topic_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "TopicViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Topic View service. - -// Service to manage topic views. -service TopicViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested topic view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetTopicView(GetTopicViewRequest) returns (google.ads.googleads.v7.resources.TopicView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/topicViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [TopicViewService.GetTopicView][google.ads.googleads.v7.services.TopicViewService.GetTopicView]. -message GetTopicViewRequest { - // Required. The resource name of the topic view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/user_data_service.proto b/google/ads/googleads/v7/services/user_data_service.proto deleted file mode 100644 index 92a20bcd7..000000000 --- a/google/ads/googleads/v7/services/user_data_service.proto +++ /dev/null @@ -1,97 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/common/offline_user_data.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/api/client.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "UserDataServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the UserDataService. - -// Service to manage user data uploads. -service UserDataService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Uploads the given user data. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [OfflineUserDataJobError]() - // [QuotaError]() - // [RequestError]() - // [UserDataError]() - rpc UploadUserData(UploadUserDataRequest) returns (UploadUserDataResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}:uploadUserData" - body: "*" - }; - } -} - -// Request message for [UserDataService.UploadUserData][google.ads.googleads.v7.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]; - - // Required. The list of operations to be done. - repeated UserDataOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; - - // Metadata of the request. - oneof metadata { - // Metadata for data updates to a Customer Match user list. - google.ads.googleads.v7.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 2; - } -} - -// Operation to be made for the UploadUserDataRequest. -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.v7.common.UserData create = 1; - - // The list of user data to be removed from the user list. - google.ads.googleads.v7.common.UserData remove = 2; - } -} - -// Response message for [UserDataService.UploadUserData][google.ads.googleads.v7.services.UserDataService.UploadUserData] -message UploadUserDataResponse { - // The date time at which the request was received by API, formatted as - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string upload_date_time = 3; - - // Number of upload data operations received by API. - optional int32 received_operations_count = 4; -} diff --git a/google/ads/googleads/v7/services/user_interest_service.proto b/google/ads/googleads/v7/services/user_interest_service.proto deleted file mode 100644 index 49d935e11..000000000 --- a/google/ads/googleads/v7/services/user_interest_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/user_interest.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "UserInterestServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the user interest service - -// Service to fetch Google Ads User Interest. -service UserInterestService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested user interest in full detail - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetUserInterest(GetUserInterestRequest) returns (google.ads.googleads.v7.resources.UserInterest) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/userInterests/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [UserInterestService.GetUserInterest][google.ads.googleads.v7.services.UserInterestService.GetUserInterest]. -message GetUserInterestRequest { - // Required. Resource name of the UserInterest to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserInterest" - } - ]; -} diff --git a/google/ads/googleads/v7/services/user_list_service.proto b/google/ads/googleads/v7/services/user_list_service.proto deleted file mode 100644 index c77f9a849..000000000 --- a/google/ads/googleads/v7/services/user_list_service.proto +++ /dev/null @@ -1,159 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/user_list.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "UserListServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the User List service. - -// Service to manage user lists. -service UserListService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested user list. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetUserList(GetUserListRequest) returns (google.ads.googleads.v7.resources.UserList) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/userLists/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates user lists. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotAllowlistedError]() - // [NotEmptyError]() - // [OperationAccessDeniedError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [StringFormatError]() - // [StringLengthError]() - // [UserListError]() - rpc MutateUserLists(MutateUserListsRequest) returns (MutateUserListsResponse) { - option (google.api.http) = { - post: "/v7/customers/{customer_id=*}/userLists:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [UserListService.GetUserList][google.ads.googleads.v7.services.UserListService.GetUserList]. -message GetUserListRequest { - // Required. The resource name of the user list to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - } - ]; -} - -// Request message for [UserListService.MutateUserLists][google.ads.googleads.v7.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]; - - // Required. The list of operations to perform on individual user lists. - repeated UserListOperation 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; -} - -// A single operation (create, update) on a user list. -message UserListOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new user list. - google.ads.googleads.v7.resources.UserList create = 1; - - // Update operation: The user list is expected to have a valid resource - // name. - google.ads.googleads.v7.resources.UserList update = 2; - - // Remove operation: A resource name for the removed user list is expected, - // in this format: - // - // `customers/{customer_id}/userLists/{user_list_id}` - string remove = 3; - } -} - -// Response message for user list mutate. -message MutateUserListsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateUserListResult results = 2; -} - -// The result for the user list mutate. -message MutateUserListResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v7/services/user_location_view_service.proto b/google/ads/googleads/v7/services/user_location_view_service.proto deleted file mode 100644 index d93e6fad6..000000000 --- a/google/ads/googleads/v7/services/user_location_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/user_location_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "UserLocationViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the UserLocationView service. - -// Service to manage user location views. -service UserLocationViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested user location view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetUserLocationView(GetUserLocationViewRequest) returns (google.ads.googleads.v7.resources.UserLocationView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/userLocationViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [UserLocationViewService.GetUserLocationView][google.ads.googleads.v7.services.UserLocationViewService.GetUserLocationView]. -message GetUserLocationViewRequest { - // Required. The resource name of the user location view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserLocationView" - } - ]; -} diff --git a/google/ads/googleads/v7/services/video_service.proto b/google/ads/googleads/v7/services/video_service.proto deleted file mode 100644 index 41f986a06..000000000 --- a/google/ads/googleads/v7/services/video_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/video.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "VideoServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Video service. - -// Service to manage videos. -service VideoService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested video in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetVideo(GetVideoRequest) returns (google.ads.googleads.v7.resources.Video) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/videos/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [VideoService.GetVideo][google.ads.googleads.v7.services.VideoService.GetVideo]. -message GetVideoRequest { - // Required. The resource name of the video to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Video" - } - ]; -} diff --git a/google/ads/googleads/v7/services/webpage_view_service.proto b/google/ads/googleads/v7/services/webpage_view_service.proto deleted file mode 100644 index a0fe35013..000000000 --- a/google/ads/googleads/v7/services/webpage_view_service.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v7.services; - -import "google/ads/googleads/v7/resources/webpage_view.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.V7.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v7/services;services"; -option java_multiple_files = true; -option java_outer_classname = "WebpageViewServiceProto"; -option java_package = "com.google.ads.googleads.v7.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V7\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V7::Services"; - -// Proto file describing the Webpage View service. - -// Service to manage webpage views. -service WebpageViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested webpage view in full detail. - rpc GetWebpageView(GetWebpageViewRequest) returns (google.ads.googleads.v7.resources.WebpageView) { - option (google.api.http) = { - get: "/v7/{resource_name=customers/*/webpageViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [WebpageViewService.GetWebpageView][google.ads.googleads.v7.services.WebpageViewService.GetWebpageView]. -message GetWebpageViewRequest { - // Required. The resource name of the webpage view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/WebpageView" - } - ]; -} diff --git a/google/ads/googleads/v8/BUILD.bazel b/google/ads/googleads/v8/BUILD.bazel deleted file mode 100644 index 942c93bd1..000000000 --- a/google/ads/googleads/v8/BUILD.bazel +++ /dev/null @@ -1,263 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -exports_files(["googleads_grpc_service_config.json"] + ["*.yaml"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") -load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") - -proto_library( - name = "googleads_proto", - srcs = [], - deps = [ - "//google/ads/googleads/v8/common:common_proto", - "//google/ads/googleads/v8/enums:enums_proto", - "//google/ads/googleads/v8/errors:errors_proto", - "//google/ads/googleads/v8/resources:resources_proto", - "//google/ads/googleads/v8/services:services_proto", - ], -) - -proto_library_with_info( - name = "googleads_proto_with_info", - deps = [ - ":googleads_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_gapic_assembly_gradle_pkg", - "java_gapic_library", - "java_gapic_test", -) - -java_gapic_library( - name = "googleads_java_gapic", - srcs = [ - ":googleads_proto_with_info", - ], - gapic_yaml = "googleads_gapic.yaml", - grpc_service_config = ":googleads_grpc_service_config.json", - deps = [ - "//google/ads/googleads/v8/common:common_java_proto", - "//google/ads/googleads/v8/enums:enums_java_proto", - "//google/ads/googleads/v8/resources:resources_java_proto", - "//google/ads/googleads/v8/services:services_java_grpc", - "//google/ads/googleads/v8/services:services_java_proto", - ], -) - -# TODO(ohren): Add more test classes when java_gapic_test is able to run more -# than a single test. Having at least one verifies proper compilation at least. -java_gapic_test( - name = "googleads_java_gapic_suite", - test_classes = [ - "com.google.ads.googleads.v8.services.CampaignServiceClientTest", - ], - runtime_deps = [":googleads_java_gapic_test"], -) - -java_gapic_assembly_gradle_pkg( - name = "googleads-java", - deps = [ - ":googleads_java_gapic", - "//google/ads/googleads/v8:googleads_proto", - "//google/ads/googleads/v8/common:common_java_proto", - "//google/ads/googleads/v8/enums:enums_java_proto", - "//google/ads/googleads/v8/errors:errors_java_proto", - "//google/ads/googleads/v8/resources:resources_java_proto", - "//google/ads/googleads/v8/services:services_java_grpc", - "//google/ads/googleads/v8/services:services_java_proto", - ], -) - -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", -) - -php_proto_library( - name = "googleads_php_proto", - plugin_args = ["aggregate_metadata=google.ads.googleads"], - deps = [":googleads_proto"], -) - -php_grpc_library( - name = "googleads_php_grpc", - srcs = [":googleads_proto"], - deps = [":googleads_php_proto"], -) - -php_gapic_library( - name = "googleads_php_gapic", - srcs = [":googleads_proto"], - gapic_yaml = "googleads_gapic.yaml", - grpc_service_config = "googleads_grpc_service_config.json", - service_yaml = "googleads_v8.yaml", - deps = [ - ":googleads_php_grpc", - ":googleads_php_proto", - ], -) - -php_gapic_assembly_pkg( - name = "googleads-php", - deps = [ - ":googleads_php_gapic", - ":googleads_php_grpc", - ":googleads_php_proto", - ], -) - -############################################################################## -# C# -############################################################################## -load("@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", "csharp_gapic_library") -load("@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic_pkg.bzl", "csharp_gapic_assembly_pkg") - -csharp_gapic_library( - name = "googleads_csharp_gapic", - srcs = [ - ":googleads_proto_with_info", - ], - grpc_service_config = "googleads_grpc_service_config.json", - deps = [ - "//google/ads/googleads/v8/services:services_csharp_grpc", - ], -) - -csharp_gapic_assembly_pkg( - name = "googleads-csharp", - deps = [ - ":googleads_csharp_gapic", - "//google/ads/googleads/v8/common:common_csharp_proto", - "//google/ads/googleads/v8/enums:enums_csharp_proto", - "//google/ads/googleads/v8/errors:errors_csharp_proto", - "//google/ads/googleads/v8/resources:resources_csharp_proto", - "//google/ads/googleads/v8/services:services_csharp_grpc", - "//google/ads/googleads/v8/services:services_csharp_proto", - ], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "ruby_ads_gapic_library", - "ruby_gapic_assembly_pkg", -) - -ruby_ads_gapic_library( - name = "googleads_ruby_gapic", - srcs = ["googleads_proto_with_info"], - extra_protoc_parameters = [ - ":gem.:name=google-ads-googleads", - ":defaults.:service.:default_host=googleads.googleapis.com", - ":overrides.:namespace.Googleads=GoogleAds", - ], - grpc_service_config = "googleads_grpc_service_config.json", -) - -ruby_gapic_assembly_pkg( - name = "googleads-ruby", - deps = [ - ":googleads_ruby_gapic", - "//google/ads/googleads/v8/common:common_ruby_proto", - "//google/ads/googleads/v8/enums:enums_ruby_proto", - "//google/ads/googleads/v8/errors:errors_ruby_proto", - "//google/ads/googleads/v8/resources:resources_ruby_proto", - "//google/ads/googleads/v8/services:services_ruby_grpc", - "//google/ads/googleads/v8/services:services_ruby_proto", - ], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", -) - -py_gapic_library( - name = "googleads_py_gapic", - srcs = [":googleads_proto_with_info"], - grpc_service_config = "googleads_grpc_service_config.json", - opt_args = [ - "old-naming", - "lazy-import", - "python-gapic-name=googleads", - "python-gapic-templates=ads-templates", - "warehouse-package-name=google-ads", - ], -) - -py_gapic_assembly_pkg( - name = "googleads-py", - deps = [ - ":googleads_py_gapic", - "//google/ads/googleads/v8/common:common_py_proto", - "//google/ads/googleads/v8/enums:enums_py_proto", - "//google/ads/googleads/v8/errors:errors_py_proto", - "//google/ads/googleads/v8/resources:resources_py_proto", - "//google/ads/googleads/v8/services:services_py_grpc", - "//google/ads/googleads/v8/services:services_py_proto", - ], -) - -############################################################################## -# Node.js -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", -) - -nodejs_gapic_library( - name = "googleads_nodejs_gapic", - package_name = "google-ads", - src = ":googleads_proto_with_info", - extra_protoc_parameters = ["metadata"], - grpc_service_config = "googleads_grpc_service_config.json", - main_service = "GoogleAdsService", - package = "google.ads.googleads.v8", - service_yaml = "googleads_v8.yaml", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "googleads-nodejs", - deps = [ - ":googleads_nodejs_gapic", - ":googleads_proto", - ], -) diff --git a/google/ads/googleads/v8/common/BUILD.bazel b/google/ads/googleads/v8/common/BUILD.bazel deleted file mode 100644 index 58e17973d..000000000 --- a/google/ads/googleads/v8/common/BUILD.bazel +++ /dev/null @@ -1,94 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports -# subpackages. -proto_library( - name = "common_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/ads/googleads/v8/enums:enums_proto", - "//google/api:annotations_proto", - "//google/api:field_behavior_proto", - "//google/api:resource_proto", - "@com_google_protobuf//:wrappers_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", -) - -java_proto_library( - name = "common_java_proto", - deps = [":common_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_proto_library", -) - -csharp_proto_library( - name = "common_csharp_proto", - deps = [":common_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_proto_library", -) - -ruby_proto_library( - name = "common_ruby_proto", - deps = [":common_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_proto_library", -) - -py_proto_library( - name = "common_py_proto", - deps = [":common_proto"], -) diff --git a/google/ads/googleads/v8/common/ad_asset.proto b/google/ads/googleads/v8/common/ad_asset.proto deleted file mode 100644 index a94b57ea5..000000000 --- a/google/ads/googleads/v8/common/ad_asset.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/common/asset_policy.proto"; -import "google/ads/googleads/v8/enums/asset_performance_label.proto"; -import "google/ads/googleads/v8/enums/served_asset_field_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AdAssetProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::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.v8.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType pinned_field = 2; - - // The performance label of this text asset. - google.ads.googleads.v8.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; -} diff --git a/google/ads/googleads/v8/common/ad_type_infos.proto b/google/ads/googleads/v8/common/ad_type_infos.proto deleted file mode 100644 index 8cf443b24..000000000 --- a/google/ads/googleads/v8/common/ad_type_infos.proto +++ /dev/null @@ -1,691 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/common/ad_asset.proto"; -import "google/ads/googleads/v8/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v8/enums/display_ad_format_setting.proto"; -import "google/ads/googleads/v8/enums/display_upload_product_type.proto"; -import "google/ads/googleads/v8/enums/legacy_app_install_ad_app_store.proto"; -import "google/ads/googleads/v8/enums/mime_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AdTypeInfosProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file containing info messages for specific ad types. - -// A text ad. -message TextAdInfo { - // The headline of the ad. - optional string headline = 4; - - // The first line of the ad's description. - optional string description1 = 5; - - // The second line of the ad's description. - optional string description2 = 6; -} - -// An expanded text ad. -message ExpandedTextAdInfo { - // The first part of the ad's headline. - optional string headline_part1 = 8; - - // The second part of the ad's headline. - optional string headline_part2 = 9; - - // The third part of the ad's headline. - optional string headline_part3 = 10; - - // The description of the ad. - optional string description = 11; - - // The second description of the ad. - optional string description2 = 12; - - // The text that can appear alongside the ad's displayed URL. - optional string path1 = 13; - - // Additional text that can appear alongside the ad's displayed URL. - optional string path2 = 14; -} - -// An expanded dynamic search ad. -message ExpandedDynamicSearchAdInfo { - // The description of the ad. - optional string description = 3; - - // The second description of the ad. - optional string description2 = 4; -} - -// A hotel ad. -message HotelAdInfo { - -} - -// A Smart Shopping ad. -message ShoppingSmartAdInfo { - -} - -// A standard Shopping ad. -message ShoppingProductAdInfo { - -} - -// A Shopping Comparison Listing ad. -message ShoppingComparisonListingAdInfo { - // Headline of the ad. This field is required. Allowed length is between 25 - // and 45 characters. - optional string headline = 2; -} - -// A Gmail ad. -message GmailAdInfo { - // The Gmail teaser. - GmailTeaser teaser = 1; - - // The MediaFile resource name of the header image. Valid image types are GIF, - // JPEG and PNG. The minimum size is 300x100 pixels and the aspect ratio must - // be between 3:1 and 5:1 (+-1%). - optional string header_image = 10; - - // The MediaFile resource name of the marketing image. Valid image types are - // GIF, JPEG and PNG. The image must either be landscape with a minimum size - // of 600x314 pixels and aspect ratio of 600:314 (+-1%) or square with a - // minimum size of 300x300 pixels and aspect ratio of 1:1 (+-1%) - optional string marketing_image = 11; - - // Headline of the marketing image. - optional string marketing_image_headline = 12; - - // Description of the marketing image. - optional string marketing_image_description = 13; - - // Display-call-to-action of the marketing image. - DisplayCallToAction marketing_image_display_call_to_action = 6; - - // Product images. Up to 15 images are supported. - repeated ProductImage product_images = 7; - - // Product videos. Up to 7 videos are supported. At least one product video - // or a marketing image must be specified. - repeated ProductVideo product_videos = 8; -} - -// Gmail teaser data. The teaser is a small header that acts as an invitation -// to view the rest of the ad (the body). -message GmailTeaser { - // Headline of the teaser. - optional string headline = 5; - - // Description of the teaser. - optional string description = 6; - - // Business name of the advertiser. - optional string business_name = 7; - - // The MediaFile resource name of the logo image. Valid image types are GIF, - // JPEG and PNG. The minimum size is 144x144 pixels and the aspect ratio must - // be 1:1 (+-1%). - optional string logo_image = 8; -} - -// Data for display call to action. The call to action is a piece of the ad -// that prompts the user to do something. Like clicking a link or making a phone -// call. -message DisplayCallToAction { - // Text for the display-call-to-action. - optional string text = 5; - - // Text color for the display-call-to-action in hexadecimal, e.g. #ffffff for - // white. - optional string text_color = 6; - - // Identifies the URL collection in the `ad.url_collections` field. If not - // set, the URL defaults to `final_url`. - optional string url_collection_id = 7; -} - -// Product image specific data. -message ProductImage { - // The MediaFile resource name of the product image. Valid image types are - // GIF, JPEG and PNG. The minimum size is 300x300 pixels and the aspect ratio - // must be 1:1 (+-1%). - optional string product_image = 4; - - // Description of the product. - optional string description = 5; - - // Display-call-to-action of the product image. - DisplayCallToAction display_call_to_action = 3; -} - -// Product video specific data. -message ProductVideo { - // The MediaFile resource name of a video which must be hosted on YouTube. - optional string product_video = 2; -} - -// An image ad. -message ImageAdInfo { - // Width in pixels of the full size image. - optional int64 pixel_width = 15; - - // Height in pixels of the full size image. - optional int64 pixel_height = 16; - - // URL of the full size image. - optional string image_url = 17; - - // Width in pixels of the preview size image. - optional int64 preview_pixel_width = 18; - - // Height in pixels of the preview size image. - optional int64 preview_pixel_height = 19; - - // URL of the preview size image. - optional string preview_image_url = 20; - - // The mime type of the image. - google.ads.googleads.v8.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. - optional string name = 21; - - // The image to create the ImageAd from. This can be specified in one of - // two ways. - // 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; - - // Raw image data as bytes. - bytes data = 13; - - // An ad ID to copy the image from. - int64 ad_id_to_copy_image_from = 14; - } -} - -// Representation of video bumper in-stream ad format (very short in-stream -// non-skippable video ad). -message VideoBumperInStreamAdInfo { - // The MediaFile resource name of the companion banner used with the ad. - optional string companion_banner = 2; -} - -// Representation of video non-skippable in-stream ad format (15 second -// in-stream non-skippable video ad). -message VideoNonSkippableInStreamAdInfo { - // The MediaFile resource name of the companion banner used with the ad. - optional string companion_banner = 2; -} - -// Representation of video TrueView in-stream ad format (ad shown during video -// playback, often at beginning, which displays a skip button a few seconds into -// the video). -message VideoTrueViewInStreamAdInfo { - // Label on the CTA (call-to-action) button taking the user to the video ad's - // final URL. - // Required for TrueView for action campaigns, optional otherwise. - optional string action_button_label = 4; - - // Additional text displayed with the CTA (call-to-action) button to give - // context and encourage clicking on the button. - optional string action_headline = 5; - - // The MediaFile resource name of the companion banner used with the ad. - optional string companion_banner = 6; -} - -// Representation of video out-stream ad format (ad shown alongside a feed -// with automatic playback, without sound). -message VideoOutstreamAdInfo { - // The headline of the ad. - optional string headline = 3; - - // The description line. - optional string description = 4; -} - -// Representation of video TrueView discovery ad format. -message VideoTrueViewDiscoveryAdInfo { - // The headline of the ad. - optional string headline = 4; - - // First text line for a TrueView video discovery ad. - optional string description1 = 5; - - // Second text line for a TrueView video discovery ad. - optional string description2 = 6; -} - -// A video ad. -message VideoAdInfo { - // The MediaFile resource to use for the video. - optional string media_file = 7; - - // Format-specific schema for the different video formats. - oneof format { - // Video TrueView in-stream ad format. - VideoTrueViewInStreamAdInfo in_stream = 2; - - // Video bumper in-stream ad format. - VideoBumperInStreamAdInfo bumper = 3; - - // Video out-stream ad format. - VideoOutstreamAdInfo out_stream = 4; - - // Video non-skippable in-stream ad format. - VideoNonSkippableInStreamAdInfo non_skippable = 5; - - // Video TrueView discovery ad format. - VideoTrueViewDiscoveryAdInfo discovery = 6; - } -} - -// A video responsive ad. -message VideoResponsiveAdInfo { - // List of text assets used for the short headline, e.g. the "Call To Action" - // banner. Currently, only a single value for the short headline is supported. - repeated AdTextAsset headlines = 1; - - // List of text assets used for the long headline. - // Currently, only a single value for the long headline is supported. - repeated AdTextAsset long_headlines = 2; - - // List of text assets used for the description. - // Currently, only a single value for the description is supported. - repeated AdTextAsset descriptions = 3; - - // List of text assets used for the button, e.g. the "Call To Action" button. - // Currently, only a single value for the button is supported. - repeated AdTextAsset call_to_actions = 4; - - // List of YouTube video assets used for the ad. - // Currently, only a single value for the YouTube video asset is supported. - repeated AdVideoAsset videos = 5; - - // List of image assets used for the companion banner. - // Currently, only a single value for the companion banner asset is supported. - repeated AdImageAsset companion_banners = 6; -} - -// A responsive search ad. -// -// Responsive search ads let you create an ad that adapts to show more text, and -// more relevant messages, to your customers. Enter multiple headlines and -// descriptions when creating a responsive search ad, and over time, Google Ads -// will automatically test different combinations and learn which combinations -// perform best. By adapting your ad's content to more closely match potential -// customers' search terms, responsive search ads may improve your campaign's -// performance. -// -// More information at https://support.google.com/google-ads/answer/7684791 -message ResponsiveSearchAdInfo { - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. - repeated AdTextAsset headlines = 1; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. - repeated AdTextAsset descriptions = 2; - - // First part of text that can be appended to the URL in the ad. - optional string path1 = 5; - - // Second part of text that can be appended to the URL in the ad. This field - // can only be set when `path1` is also set. - optional string path2 = 6; -} - -// A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' -// in the Google Ads UI. -message LegacyResponsiveDisplayAdInfo { - // The short version of the ad's headline. - optional string short_headline = 16; - - // The long version of the ad's headline. - optional string long_headline = 17; - - // The description of the ad. - optional string description = 18; - - // The business name in the ad. - optional string business_name = 19; - - // Advertiser's consent to allow flexible color. When true, the ad may be - // served with different color if necessary. When false, the ad will be served - // with the specified colors or a neutral color. - // The default value is `true`. - // Must be true if `main_color` and `accent_color` are not set. - optional bool allow_flexible_color = 20; - - // The accent color of the ad in hexadecimal, e.g. #ffffff for white. - // If one of `main_color` and `accent_color` is set, the other is required as - // well. - optional string accent_color = 21; - - // The main color of the ad in hexadecimal, e.g. #ffffff for white. - // If one of `main_color` and `accent_color` is set, the other is required as - // well. - optional string main_color = 22; - - // The call-to-action text for the ad. - optional string call_to_action_text = 23; - - // The MediaFile resource name of the logo image used in the ad. - optional string logo_image = 24; - - // The MediaFile resource name of the square logo image used in the ad. - optional string square_logo_image = 25; - - // The MediaFile resource name of the marketing image used in the ad. - optional string marketing_image = 26; - - // The MediaFile resource name of the square marketing image used in the ad. - optional string square_marketing_image = 27; - - // Specifies which format the ad will be served in. Default is ALL_FORMATS. - google.ads.googleads.v8.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 13; - - // Prefix before price. E.g. 'as low as'. - optional string price_prefix = 28; - - // Promotion text used for dynamic formats of responsive ads. For example - // 'Free two-day shipping'. - optional string promo_text = 29; -} - -// An app ad. -message AppAdInfo { - // Mandatory ad text. - AdTextAsset mandatory_ad_text = 1; - - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. - repeated AdTextAsset headlines = 2; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. - repeated AdTextAsset descriptions = 3; - - // List of image assets that may be displayed with the ad. - repeated AdImageAsset images = 4; - - // List of YouTube video assets that may be displayed with the ad. - repeated AdVideoAsset youtube_videos = 5; - - // List of media bundle assets that may be used with the ad. - repeated AdMediaBundleAsset html5_media_bundles = 6; -} - -// App engagement ads allow you to write text encouraging a specific action in -// the app, like checking in, making a purchase, or booking a flight. -// They allow you to send users to a specific part of your app where they can -// find what they're looking for easier and faster. -message AppEngagementAdInfo { - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. - repeated AdTextAsset headlines = 1; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. - repeated AdTextAsset descriptions = 2; - - // List of image assets that may be displayed with the ad. - repeated AdImageAsset images = 3; - - // List of video assets that may be displayed with the ad. - repeated AdVideoAsset videos = 4; -} - -// A legacy app install ad that only can be used by a few select customers. -message LegacyAppInstallAdInfo { - // The ID of the mobile app. - optional string app_id = 6; - - // The app store the mobile app is available in. - google.ads.googleads.v8.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore app_store = 2; - - // The headline of the ad. - optional string headline = 7; - - // The first description line of the ad. - optional string description1 = 8; - - // The second description line of the ad. - optional string description2 = 9; -} - -// A responsive display ad. -message ResponsiveDisplayAdInfo { - // Marketing images 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%). At least one `marketing_image` is required. Combined - // with `square_marketing_images`, the maximum is 15. - repeated AdImageAsset marketing_images = 1; - - // Square marketing images to be used in the ad. Valid image types are GIF, - // JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must - // be 1:1 (+-1%). At least one square `marketing_image` is required. Combined - // with `marketing_images`, the maximum is 15. - repeated AdImageAsset square_marketing_images = 2; - - // Logo images to be used in the ad. Valid image types are GIF, - // JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must - // be 4:1 (+-1%). Combined with `square_logo_images`, the maximum is 5. - repeated AdImageAsset logo_images = 3; - - // Square logo images 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%). Combined with `square_logo_images`, the maximum is 5. - repeated AdImageAsset square_logo_images = 4; - - // Short format headlines for the ad. The maximum length is 30 characters. - // At least 1 and max 5 headlines can be specified. - repeated AdTextAsset headlines = 5; - - // A required long format headline. The maximum length is 90 characters. - AdTextAsset long_headline = 6; - - // Descriptive texts for the ad. The maximum length is 90 characters. At - // least 1 and max 5 headlines can be specified. - repeated AdTextAsset descriptions = 7; - - // Optional YouTube videos for the ad. A maximum of 5 videos can be specified. - repeated AdVideoAsset youtube_videos = 8; - - // The advertiser/brand name. Maximum display width is 25. - optional string business_name = 17; - - // The main color of the ad in hexadecimal, e.g. #ffffff for white. - // If one of `main_color` and `accent_color` is set, the other is required as - // well. - optional string main_color = 18; - - // The accent color of the ad in hexadecimal, e.g. #ffffff for white. - // If one of `main_color` and `accent_color` is set, the other is required as - // well. - optional string accent_color = 19; - - // Advertiser's consent to allow flexible color. When true, the ad may be - // served with different color if necessary. When false, the ad will be served - // with the specified colors or a neutral color. - // The default value is `true`. - // Must be true if `main_color` and `accent_color` are not set. - optional bool allow_flexible_color = 20; - - // The call-to-action text for the ad. Maximum display width is 30. - optional string call_to_action_text = 21; - - // Prefix before price. E.g. 'as low as'. - optional string price_prefix = 22; - - // Promotion text used for dynamic formats of responsive ads. For example - // 'Free two-day shipping'. - optional string promo_text = 23; - - // Specifies which format the ad will be served in. Default is ALL_FORMATS. - google.ads.googleads.v8.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 16; - - // Specification for various creative controls. - ResponsiveDisplayAdControlSpec control_spec = 24; -} - -// A local ad. -message LocalAdInfo { - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. At least 1 and at most 5 headlines must be - // specified. - repeated AdTextAsset headlines = 1; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. At least 1 and at most 5 descriptions must - // be specified. - repeated AdTextAsset descriptions = 2; - - // List of text assets for call-to-actions. When the ad serves the - // call-to-actions will be selected from this list. Call-to-actions are - // optional and at most 5 can be specified. - repeated AdTextAsset call_to_actions = 3; - - // List of marketing image assets that may be displayed with the ad. The - // images must be 314x600 pixels or 320x320 pixels. At least 1 and at most - // 20 image assets must be specified. - repeated AdImageAsset marketing_images = 4; - - // List of logo image assets that may be displayed with the ad. The images - // must be 128x128 pixels and not larger than 120KB. At least 1 and at most 5 - // image assets must be specified. - repeated AdImageAsset logo_images = 5; - - // List of YouTube video assets that may be displayed with the ad. Videos - // are optional and at most 20 can be specified. - repeated AdVideoAsset videos = 6; - - // First part of optional text that can be appended to the URL in the ad. - optional string path1 = 9; - - // Second part of optional text that can be appended to the URL in the ad. - // This field can only be set when `path1` is also set. - optional string path2 = 10; -} - -// A generic type of display ad. The exact ad format is controlled by the -// `display_upload_product_type` field, which determines what kinds of data -// 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.v8.enums.DisplayUploadProductTypeEnum.DisplayUploadProductType display_upload_product_type = 1; - - // The asset data that makes up the ad. - oneof media_asset { - // A media bundle asset to be used in the ad. For information about the - // media bundle for HTML5_UPLOAD_AD, see - // https://support.google.com/google-ads/answer/1722096 - // Media bundles that are part of dynamic product types use a special format - // that needs to be created through the Google Web Designer. See - // https://support.google.com/webdesigner/answer/7543898 for more - // information. - AdMediaBundleAsset media_bundle = 2; - } -} - -// Specification for various creative controls for a responsive display ad. -message ResponsiveDisplayAdControlSpec { - // Whether the advertiser has opted into the asset enhancements feature. - bool enable_asset_enhancements = 1; - - // Whether the advertiser has opted into auto-gen video feature. - bool enable_autogen_video = 2; -} - -// A Smart campaign ad. -message SmartCampaignAdInfo { - // List of text assets for headlines. When the ad serves the headlines will - // be selected from this list. 3 headlines must be specified. - repeated AdTextAsset headlines = 1; - - // List of text assets for descriptions. When the ad serves the descriptions - // will be selected from this list. 2 descriptions must be specified. - repeated AdTextAsset descriptions = 2; -} - -// A call ad. -message CallAdInfo { - // The country code in the ad. - string country_code = 1; - - // The phone number in the ad. - string phone_number = 2; - - // The business name in the ad. - string business_name = 3; - - // First headline in the ad. - string headline1 = 11; - - // Second headline in the ad. - string headline2 = 12; - - // The first line of the ad's description. - string description1 = 4; - - // The second line of the ad's description. - string description2 = 5; - - // Whether to enable call tracking for the creative. Enabling call - // tracking also enables call conversions. - bool call_tracked = 6; - - // Whether to disable call conversion for the creative. - // If set to `true`, disables call conversions even when `call_tracked` is - // `true`. - // If `call_tracked` is `false`, this field is ignored. - bool disable_call_conversion = 7; - - // The URL to be used for phone number verification. - string phone_number_verification_url = 8; - - // The conversion action to attribute a call conversion to. If not set a - // default conversion action is used. This field only has effect if - // `call_tracked` is set to `true`. Otherwise this field is ignored. - string conversion_action = 9; - - // 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.v8.enums.CallConversionReportingStateEnum.CallConversionReportingState conversion_reporting_state = 10; - - // First part of text that can be appended to the URL in the ad. Optional. - string path1 = 13; - - // Second part of text that can be appended to the URL in the ad. This field - // can only be set when `path1` is also set. Optional. - string path2 = 14; -} diff --git a/google/ads/googleads/v8/common/asset_policy.proto b/google/ads/googleads/v8/common/asset_policy.proto deleted file mode 100644 index eb3888f0c..000000000 --- a/google/ads/googleads/v8/common/asset_policy.proto +++ /dev/null @@ -1,46 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/enums/policy_approval_status.proto"; -import "google/ads/googleads/v8/enums/policy_review_status.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AssetPolicyProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing asset policies. - -// Contains policy information for an asset inside an ad. -message AdAssetPolicySummary { - // The list of policy findings for this asset. - repeated PolicyTopicEntry policy_topic_entries = 1; - - // Where in the review process this asset. - google.ads.googleads.v8.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.v8.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; -} diff --git a/google/ads/googleads/v8/common/asset_types.proto b/google/ads/googleads/v8/common/asset_types.proto deleted file mode 100644 index 08aa9d6b0..000000000 --- a/google/ads/googleads/v8/common/asset_types.proto +++ /dev/null @@ -1,325 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/common/feed_common.proto"; -import "google/ads/googleads/v8/enums/lead_form_call_to_action_type.proto"; -import "google/ads/googleads/v8/enums/lead_form_desired_intent.proto"; -import "google/ads/googleads/v8/enums/lead_form_field_user_input_type.proto"; -import "google/ads/googleads/v8/enums/lead_form_post_submit_call_to_action_type.proto"; -import "google/ads/googleads/v8/enums/mime_type.proto"; -import "google/ads/googleads/v8/enums/promotion_extension_discount_modifier.proto"; -import "google/ads/googleads/v8/enums/promotion_extension_occasion.proto"; -import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AssetTypesProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file containing info messages for specific asset types. - -// A YouTube asset. -message YoutubeVideoAsset { - // YouTube video id. This is the 11 character string value used in the - // YouTube video URL. - optional string youtube_video_id = 2; - - // YouTube video title. - string youtube_video_title = 3; -} - -// A MediaBundle asset. -message MediaBundleAsset { - // Media bundle (ZIP file) asset data. The format of the uploaded ZIP file - // depends on the ad field where it will be used. For more information on the - // format, see the documentation of the ad field where you plan on using the - // MediaBundleAsset. This field is mutate only. - optional bytes data = 2; -} - -// An Image asset. -message ImageAsset { - // The raw bytes data of an image. This field is mutate only. - optional bytes data = 5; - - // File size of the image asset in bytes. - optional int64 file_size = 6; - - // MIME type of the image asset. - google.ads.googleads.v8.enums.MimeTypeEnum.MimeType mime_type = 3; - - // Metadata for this image at its original size. - ImageDimension full_size = 4; -} - -// Metadata for an image at a certain size, either original or resized. -message ImageDimension { - // Height of the image. - optional int64 height_pixels = 4; - - // Width of the image. - optional int64 width_pixels = 5; - - // A URL that returns the image with this height and width. - optional string url = 6; -} - -// A Text asset. -message TextAsset { - // Text content of the text asset. - optional string text = 2; -} - -// A Lead Form asset. -message LeadFormAsset { - // Required. The name of the business being advertised. - string business_name = 10 [(google.api.field_behavior) = REQUIRED]; - - // Required. Pre-defined display text that encourages user to expand the form. - google.ads.googleads.v8.enums.LeadFormCallToActionTypeEnum.LeadFormCallToActionType call_to_action_type = 17 [(google.api.field_behavior) = REQUIRED]; - - // Required. Text giving a clear value proposition of what users expect once they expand - // the form. - string call_to_action_description = 18 [(google.api.field_behavior) = REQUIRED]; - - // Required. Headline of the expanded form to describe what the form is asking for or - // facilitating. - string headline = 12 [(google.api.field_behavior) = REQUIRED]; - - // Required. Detailed description of the expanded form to describe what the form is - // asking for or facilitating. - string description = 13 [(google.api.field_behavior) = REQUIRED]; - - // Required. Link to a page describing the policy on how the collected data is handled - // by the advertiser/business. - string privacy_policy_url = 14 [(google.api.field_behavior) = REQUIRED]; - - // Headline of text shown after form submission that describes how the - // advertiser will follow up with the user. - optional string post_submit_headline = 15; - - // Detailed description shown after form submission that describes how the - // advertiser will follow up with the user. - optional string post_submit_description = 16; - - // Ordered list of input fields. - repeated LeadFormField fields = 8; - - // Configured methods for collected lead data to be delivered to advertiser. - // Only one method typed as WebhookDelivery can be configured. - repeated LeadFormDeliveryMethod delivery_methods = 9; - - // Pre-defined display text that encourages user action after the form is - // submitted. - google.ads.googleads.v8.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%). - optional string background_image_asset = 20; - - // Desired intent for the lead form, e.g. more volume or more qualified. - google.ads.googleads.v8.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent desired_intent = 21; - - // Custom disclosure shown along with Google disclaimer on the lead form. - // Accessible to allowed customers only. - optional string custom_disclosure = 22; -} - -// One input field instance within a form. -message LeadFormField { - // Describes the input type, which may be a predefined type such as - // "full name" or a pre-vetted question like "Do you own a car?". - google.ads.googleads.v8.enums.LeadFormFieldUserInputTypeEnum.LeadFormFieldUserInputType input_type = 1; - - // Defines answer configuration that this form field accepts. If oneof is not - // set, this is a free-text answer. - oneof answers { - // Answer configuration for a single choice question. Can be set only for - // pre-vetted question fields. Minimum of 2 answers required and maximum of - // 12 allowed. - LeadFormSingleChoiceAnswers single_choice_answers = 2; - } -} - -// Defines possible answers for a single choice question, usually presented as -// a single-choice drop-down list. -message LeadFormSingleChoiceAnswers { - // List of choices for a single question field. The order of entries defines - // UI order. Minimum of 2 answers required and maximum of 12 allowed. - repeated string answers = 1; -} - -// A configuration of how leads are delivered to the advertiser. -message LeadFormDeliveryMethod { - // Various subtypes of delivery. - oneof delivery_details { - // Webhook method of delivery. - WebhookDelivery webhook = 1; - } -} - -// Google notifies the advertiser of leads by making HTTP calls to an -// endpoint they specify. The requests contain JSON matching a schema that -// Google publishes as part of form ads documentation. -message WebhookDelivery { - // Webhook url specified by advertiser to send the lead. - optional string advertiser_webhook_url = 4; - - // Anti-spoofing secret set by the advertiser as part of the webhook payload. - optional string google_secret = 5; - - // The schema version that this delivery instance will use. - optional int64 payload_schema_version = 6; -} - -// A Book on Google asset. Used to redirect user to book through Google. -// Book on Google will change the redirect url to book directly through -// Google. -message BookOnGoogleAsset { - -} - -// A Promotion asset. -message PromotionAsset { - // Required. A freeform description of what the promotion is targeting. - string promotion_target = 1 [(google.api.field_behavior) = REQUIRED]; - - // A modifier for qualification of the discount. - google.ads.googleads.v8.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2; - - // Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd - // format. - string redemption_start_date = 7; - - // Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd - // format. - string redemption_end_date = 8; - - // 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.v8.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9; - - // The language of the promotion. - // Represented as BCP 47 language tag. - string language_code = 10; - - // Start date of when this asset is effective and can begin serving, in - // yyyy-MM-dd format. - string start_date = 11; - - // Last date of when this asset is effective and still serving, in yyyy-MM-dd - // format. - string end_date = 12; - - // List of non-overlapping schedules specifying all time intervals for which - // the asset may serve. There can be a maximum of 6 schedules per day, 42 in - // total. - repeated AdScheduleInfo ad_schedule_targets = 13; - - // Discount type, can be percentage off or amount off. - oneof discount_type { - // Percentage off discount in the promotion. 1,000,000 = 100%. - // Either this or money_amount_off is required. - int64 percent_off = 3; - - // Money amount off for discount in the promotion. - // Either this or percent_off is required. - Money money_amount_off = 4; - } - - // Promotion trigger. Can be by promotion code or promo by eligible order - // amount. - oneof promotion_trigger { - // A code the user should use in order to be eligible for the promotion. - string promotion_code = 5; - - // The amount the total order needs to be for the user to be eligible for - // the promotion. - Money orders_over_amount = 6; - } -} - -// A Callout asset. -message CalloutAsset { - // Required. The callout text. - // The length of this string should be between 1 and 25, inclusive. - string callout_text = 1 [(google.api.field_behavior) = REQUIRED]; - - // Start date of when this asset is effective and can begin serving, in - // yyyy-MM-dd format. - string start_date = 2; - - // Last date of when this asset is effective and still serving, in yyyy-MM-dd - // format. - string end_date = 3; - - // List of non-overlapping schedules specifying all time intervals for which - // the asset may serve. There can be a maximum of 6 schedules per day, 42 in - // total. - repeated AdScheduleInfo ad_schedule_targets = 4; -} - -// A Structured Snippet asset. -message StructuredSnippetAsset { - // Required. The header of the snippet. - // This string should be one of the predefined values at - // https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers - string header = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The values in the snippet. - // The size of this collection should be between 3 and 10, inclusive. - // The length of each value should be between 1 and 25 characters, inclusive. - repeated string values = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A Sitelink asset. -message SitelinkAsset { - // Required. URL display text for the sitelink. - // The length of this string should be between 1 and 25, inclusive. - string link_text = 1 [(google.api.field_behavior) = REQUIRED]; - - // First line of the description for the sitelink. - // If set, the length should be between 1 and 35, inclusive, and description2 - // must also be set. - string description1 = 2; - - // Second line of the description for the sitelink. - // If set, the length should be between 1 and 35, inclusive, and description1 - // must also be set. - string description2 = 3; - - // Start date of when this asset is effective and can begin serving, in - // yyyy-MM-dd format. - string start_date = 4; - - // Last date of when this asset is effective and still serving, in yyyy-MM-dd - // format. - string end_date = 5; - - // List of non-overlapping schedules specifying all time intervals for which - // the asset may serve. There can be a maximum of 6 schedules per day, 42 in - // total. - repeated AdScheduleInfo ad_schedule_targets = 6; -} diff --git a/google/ads/googleads/v8/common/bidding.proto b/google/ads/googleads/v8/common/bidding.proto deleted file mode 100644 index 126db31bf..000000000 --- a/google/ads/googleads/v8/common/bidding.proto +++ /dev/null @@ -1,179 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/target_impression_share_location.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "BiddingProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing bidding schemes. - -// Commission is an automatic bidding strategy in which the advertiser pays a -// certain portion of the conversion value. -message Commission { - // Commission rate defines the portion of the conversion value that the - // advertiser will be billed. A commission rate of x should be passed into - // this field as (x * 1,000,000). For example, 106,000 represents a commission - // rate of 0.106 (10.6%). - optional int64 commission_rate_micros = 2; -} - -// An automated 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. -message EnhancedCpc { - -} - -// Manual click-based bidding where user pays per click. -message ManualCpc { - // Whether bids are to be enhanced based on conversion optimizer data. - optional bool enhanced_cpc_enabled = 2; -} - -// Manual impression-based bidding where user pays per thousand impressions. -message ManualCpm { - -} - -// View based bidding where user pays per video view. -message ManualCpv { - -} - -// An automated bidding strategy to help get the most conversions for your -// campaigns while spending your budget. -message MaximizeConversions { - // The target cost-per-action (CPA) option. This is the average amount that - // you would like to spend per conversion action. If set, the bid strategy - // will get as many conversions as possible at or below the target - // cost-per-action. If the target CPA is not set, the bid strategy will - // aim to achieve the lowest possible CPA given the budget. - int64 target_cpa = 1; -} - -// An automated bidding strategy to help get the most conversion value for your -// campaigns while spending your budget. -message MaximizeConversionValue { - // 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 = 2; -} - -// 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 { - // 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 = 4; - - // Maximum bid limit that can be set by the bid strategy. - // The limit applies to all keywords managed by the strategy. - // This should only be set for portfolio bid strategies. - optional int64 cpc_bid_ceiling_micros = 5; - - // Minimum bid limit that can be set by the bid strategy. - // The limit applies to all keywords managed by the strategy. - // This should only be set for portfolio bid strategies. - optional int64 cpc_bid_floor_micros = 6; -} - -// Target CPM (cost per thousand impressions) is an automated bidding strategy -// that sets bids to optimize performance given the target CPM you set. -message TargetCpm { - -} - -// 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 { - // The targeted location on the search results page. - google.ads.googleads.v8.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1; - - // The desired fraction of ads to be shown in the targeted location in micros. - // E.g. 1% equals 10,000. - optional int64 location_fraction_micros = 4; - - // 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 = 5; -} - -// An automated bidding strategy that helps you maximize revenue while -// averaging a specific target return on ad spend (ROAS). -message TargetRoas { - // Required. The desired revenue (based on conversion data) per unit of spend. - // Value must be between 0.01 and 1000.0, inclusive. - optional double target_roas = 4; - - // Maximum bid limit that can be set by the bid strategy. - // The limit applies to all keywords managed by the strategy. - // This should only be set for portfolio bid strategies. - optional int64 cpc_bid_ceiling_micros = 5; - - // Minimum bid limit that can be set by the bid strategy. - // The limit applies to all keywords managed by the strategy. - // This should only be set for portfolio bid strategies. - optional int64 cpc_bid_floor_micros = 6; -} - -// 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. - // 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 = 3 [deprecated = true]; - - // 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 = 4; -} - -// A bidding strategy where bids are a fraction of the advertised price for -// some good or service. -message PercentCpc { - // Maximum bid limit that can be set by the bid strategy. This is - // an optional field entered by the advertiser and specified in local micros. - // Note: A zero value is interpreted in the same way as having bid_ceiling - // undefined. - optional int64 cpc_bid_ceiling_micros = 3; - - // Adjusts the bid for each auction upward or downward, depending on the - // likelihood of a conversion. Individual bids may exceed - // cpc_bid_ceiling_micros, but the average bid amount for a campaign should - // not. - optional bool enhanced_cpc_enabled = 4; -} diff --git a/google/ads/googleads/v8/common/click_location.proto b/google/ads/googleads/v8/common/click_location.proto deleted file mode 100644 index 8b91235da..000000000 --- a/google/ads/googleads/v8/common/click_location.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "ClickLocationProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing a ClickLocation. - -// Location criteria associated with a click. -message ClickLocation { - // The city location criterion associated with the impression. - optional string city = 6; - - // The country location criterion associated with the impression. - optional string country = 7; - - // The metro location criterion associated with the impression. - optional string metro = 8; - - // The most specific location criterion associated with the impression. - optional string most_specific = 9; - - // The region location criterion associated with the impression. - optional string region = 10; -} diff --git a/google/ads/googleads/v8/common/criteria.proto b/google/ads/googleads/v8/common/criteria.proto deleted file mode 100644 index 1d26c963c..000000000 --- a/google/ads/googleads/v8/common/criteria.proto +++ /dev/null @@ -1,651 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/age_range_type.proto"; -import "google/ads/googleads/v8/enums/app_payment_model_type.proto"; -import "google/ads/googleads/v8/enums/content_label_type.proto"; -import "google/ads/googleads/v8/enums/day_of_week.proto"; -import "google/ads/googleads/v8/enums/device.proto"; -import "google/ads/googleads/v8/enums/gender_type.proto"; -import "google/ads/googleads/v8/enums/hotel_date_selection_type.proto"; -import "google/ads/googleads/v8/enums/income_range_type.proto"; -import "google/ads/googleads/v8/enums/interaction_type.proto"; -import "google/ads/googleads/v8/enums/keyword_match_type.proto"; -import "google/ads/googleads/v8/enums/listing_group_type.proto"; -import "google/ads/googleads/v8/enums/location_group_radius_units.proto"; -import "google/ads/googleads/v8/enums/minute_of_hour.proto"; -import "google/ads/googleads/v8/enums/parental_status_type.proto"; -import "google/ads/googleads/v8/enums/preferred_content_type.proto"; -import "google/ads/googleads/v8/enums/product_bidding_category_level.proto"; -import "google/ads/googleads/v8/enums/product_channel.proto"; -import "google/ads/googleads/v8/enums/product_channel_exclusivity.proto"; -import "google/ads/googleads/v8/enums/product_condition.proto"; -import "google/ads/googleads/v8/enums/product_custom_attribute_index.proto"; -import "google/ads/googleads/v8/enums/product_type_level.proto"; -import "google/ads/googleads/v8/enums/proximity_radius_units.proto"; -import "google/ads/googleads/v8/enums/webpage_condition_operand.proto"; -import "google/ads/googleads/v8/enums/webpage_condition_operator.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "CriteriaProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing criteria types. - -// A keyword criterion. -message KeywordInfo { - // The text of the keyword (at most 80 characters and 10 words). - optional string text = 3; - - // The match type of the keyword. - google.ads.googleads.v8.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; -} - -// A placement criterion. This can be used to modify bids for sites when -// targeting the content network. -message PlacementInfo { - // URL of the placement. - // - // For example, "http://www.domain.com". - optional string url = 2; -} - -// A mobile app category criterion. -message MobileAppCategoryInfo { - // The mobile app category constant resource name. - optional string mobile_app_category_constant = 2; -} - -// A mobile application criterion. -message MobileApplicationInfo { - // A string that uniquely identifies a mobile application to Google Ads API. - // The format of this string is "{platform}-{platform_native_id}", where - // platform is "1" for iOS apps and "2" for Android apps, and where - // platform_native_id is the mobile application identifier native to the - // corresponding platform. - // For iOS, this native identifier is the 9 digit string that appears at the - // end of an App Store URL (e.g., "476943146" for "Flood-It! 2" whose App - // Store link is "http://itunes.apple.com/us/app/flood-it!-2/id476943146"). - // For Android, this native identifier is the application's package name - // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link - // "https://play.google.com/store/apps/details?id=com.labpixies.colordrips"). - // A well formed app id for Google Ads API would thus be "1-476943146" for iOS - // and "2-com.labpixies.colordrips" for Android. - // This field is required and must be set in CREATE operations. - optional string app_id = 4; - - // Name of this mobile application. - optional string name = 5; -} - -// A location criterion. -message LocationInfo { - // The geo target constant resource name. - optional string geo_target_constant = 2; -} - -// A device criterion. -message DeviceInfo { - // Type of the device. - google.ads.googleads.v8.enums.DeviceEnum.Device type = 1; -} - -// A preferred content criterion. -message PreferredContentInfo { - // Type of the preferred content. - google.ads.googleads.v8.enums.PreferredContentTypeEnum.PreferredContentType type = 2; -} - -// A listing group criterion. -message ListingGroupInfo { - // Type of the listing group. - google.ads.googleads.v8.enums.ListingGroupTypeEnum.ListingGroupType type = 1; - - // Dimension value with which this listing group is refining its parent. - // Undefined for the root group. - ListingDimensionInfo case_value = 2; - - // Resource name of ad group criterion which is the parent listing group - // subdivision. Null for the root group. - optional string parent_ad_group_criterion = 4; -} - -// A listing scope criterion. -message ListingScopeInfo { - // Scope of the campaign criterion. - repeated ListingDimensionInfo dimensions = 2; -} - -// Listing dimensions for listing group criterion. -message ListingDimensionInfo { - // Dimension of one of the types below is always present. - oneof dimension { - // Advertiser-specific hotel ID. - HotelIdInfo hotel_id = 2; - - // Class of the hotel as a number of stars 1 to 5. - HotelClassInfo hotel_class = 3; - - // Country or Region the hotel is located in. - HotelCountryRegionInfo hotel_country_region = 4; - - // State the hotel is located in. - HotelStateInfo hotel_state = 5; - - // City the hotel is located in. - HotelCityInfo hotel_city = 6; - - // Bidding category of a product offer. - ProductBiddingCategoryInfo product_bidding_category = 13; - - // Brand of a product offer. - ProductBrandInfo product_brand = 15; - - // Locality of a product offer. - ProductChannelInfo product_channel = 8; - - // Availability of a product offer. - ProductChannelExclusivityInfo product_channel_exclusivity = 9; - - // Condition of a product offer. - ProductConditionInfo product_condition = 10; - - // Custom attribute of a product offer. - ProductCustomAttributeInfo product_custom_attribute = 16; - - // Item id of a product offer. - ProductItemIdInfo product_item_id = 11; - - // Type of a product offer. - ProductTypeInfo product_type = 12; - - // Unknown dimension. Set when no other listing dimension is set. - UnknownListingDimensionInfo unknown_listing_dimension = 14; - } -} - -// Advertiser-specific hotel ID. -message HotelIdInfo { - // String value of the hotel ID. - optional string value = 2; -} - -// Class of the hotel as a number of stars 1 to 5. -message HotelClassInfo { - // Long value of the hotel class. - optional int64 value = 2; -} - -// Country or Region the hotel is located in. -message HotelCountryRegionInfo { - // The Geo Target Constant resource name. - optional string country_region_criterion = 2; -} - -// State the hotel is located in. -message HotelStateInfo { - // The Geo Target Constant resource name. - optional string state_criterion = 2; -} - -// City the hotel is located in. -message HotelCityInfo { - // The Geo Target Constant resource name. - optional string city_criterion = 2; -} - -// Bidding category of a product offer. -message ProductBiddingCategoryInfo { - // 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 = 4; - - // Two-letter upper-case country code of the product bidding category. It must - // match the campaign.shopping_setting.sales_country field. - optional string country_code = 5; - - // Level of the product bidding category. - google.ads.googleads.v8.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 3; -} - -// Brand of the product. -message ProductBrandInfo { - // String value of the product brand. - optional string value = 2; -} - -// Locality of a product offer. -message ProductChannelInfo { - // Value of the locality. - google.ads.googleads.v8.enums.ProductChannelEnum.ProductChannel channel = 1; -} - -// Availability of a product offer. -message ProductChannelExclusivityInfo { - // Value of the availability. - google.ads.googleads.v8.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity channel_exclusivity = 1; -} - -// Condition of a product offer. -message ProductConditionInfo { - // Value of the condition. - google.ads.googleads.v8.enums.ProductConditionEnum.ProductCondition condition = 1; -} - -// Custom attribute of a product offer. -message ProductCustomAttributeInfo { - // String value of the product custom attribute. - optional string value = 3; - - // Indicates the index of the custom attribute. - google.ads.googleads.v8.enums.ProductCustomAttributeIndexEnum.ProductCustomAttributeIndex index = 2; -} - -// Item id of a product offer. -message ProductItemIdInfo { - // Value of the id. - optional string value = 2; -} - -// Type of a product offer. -message ProductTypeInfo { - // Value of the type. - optional string value = 3; - - // Level of the type. - google.ads.googleads.v8.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2; -} - -// Unknown listing dimension. -message UnknownListingDimensionInfo { - -} - -// Criterion for hotel date selection (default dates vs. user selected). -message HotelDateSelectionTypeInfo { - // Type of the hotel date selection - google.ads.googleads.v8.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType type = 1; -} - -// Criterion for number of days prior to the stay the booking is being made. -message HotelAdvanceBookingWindowInfo { - // Low end of the number of days prior to the stay. - optional int64 min_days = 3; - - // High end of the number of days prior to the stay. - optional int64 max_days = 4; -} - -// Criterion for length of hotel stay in nights. -message HotelLengthOfStayInfo { - // Low end of the number of nights in the stay. - optional int64 min_nights = 3; - - // High end of the number of nights in the stay. - optional int64 max_nights = 4; -} - -// Criterion for a check-in date range. -message HotelCheckInDateRangeInfo { - // Start date in the YYYY-MM-DD format. - string start_date = 1; - - // End date in the YYYY-MM-DD format. - string end_date = 2; -} - -// Criterion for day of the week the booking is for. -message HotelCheckInDayInfo { - // The day of the week. - google.ads.googleads.v8.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1; -} - -// Criterion for Interaction Type. -message InteractionTypeInfo { - // The interaction type. - google.ads.googleads.v8.enums.InteractionTypeEnum.InteractionType type = 1; -} - -// Represents an AdSchedule criterion. -// -// AdSchedule is specified as the day of the week and a time interval -// within which ads will be shown. -// -// No more than six AdSchedules can be added for the same day. -message AdScheduleInfo { - // Minutes after the start hour at which this schedule starts. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - google.ads.googleads.v8.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.v8.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; - - // Starting hour in 24 hour time. - // This field must be between 0 and 23, inclusive. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - optional int32 start_hour = 6; - - // Ending hour in 24 hour time; 24 signifies end of the day. - // This field must be between 0 and 24, inclusive. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - optional int32 end_hour = 7; - - // Day of the week the schedule applies to. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - google.ads.googleads.v8.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; -} - -// An age range criterion. -message AgeRangeInfo { - // Type of the age range. - google.ads.googleads.v8.enums.AgeRangeTypeEnum.AgeRangeType type = 1; -} - -// A gender criterion. -message GenderInfo { - // Type of the gender. - google.ads.googleads.v8.enums.GenderTypeEnum.GenderType type = 1; -} - -// An income range criterion. -message IncomeRangeInfo { - // Type of the income range. - google.ads.googleads.v8.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1; -} - -// A parental status criterion. -message ParentalStatusInfo { - // Type of the parental status. - google.ads.googleads.v8.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1; -} - -// A YouTube Video criterion. -message YouTubeVideoInfo { - // YouTube video id as it appears on the YouTube watch page. - optional string video_id = 2; -} - -// A YouTube Channel criterion. -message YouTubeChannelInfo { - // The YouTube uploader channel id or the channel code of a YouTube channel. - optional string channel_id = 2; -} - -// A User List criterion. Represents a user list that is defined by the -// advertiser to be targeted. -message UserListInfo { - // The User List resource name. - optional string user_list = 2; -} - -// A Proximity criterion. The geo point and radius determine what geographical -// area is included. The address is a description of the geo point that does -// not affect ad serving. -// -// There are two ways to create a proximity. First, by setting an address -// and radius. The geo point will be automatically computed. Second, by -// setting a geo point and radius. The address is an optional label that won't -// be validated. -message ProximityInfo { - // Latitude and longitude. - GeoPointInfo geo_point = 1; - - // The radius of the proximity. - optional double radius = 5; - - // The unit of measurement of the radius. Default is KILOMETERS. - google.ads.googleads.v8.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3; - - // Full address. - AddressInfo address = 4; -} - -// Geo point for proximity criterion. -message GeoPointInfo { - // Micro degrees for the longitude. - optional int32 longitude_in_micro_degrees = 3; - - // Micro degrees for the latitude. - optional int32 latitude_in_micro_degrees = 4; -} - -// Address for proximity criterion. -message AddressInfo { - // Postal code. - optional string postal_code = 8; - - // Province or state code. - optional string province_code = 9; - - // Country code. - optional string country_code = 10; - - // Province or state name. - optional string province_name = 11; - - // Street address line 1. - optional string street_address = 12; - - // Street address line 2. This field is write-only. It is only used for - // calculating the longitude and latitude of an address when geo_point is - // empty. - optional string street_address2 = 13; - - // Name of the city. - optional string city_name = 14; -} - -// A topic criterion. Use topics to target or exclude placements in the -// Google Display Network based on the category into which the placement falls -// (for example, "Pets & Animals/Pets/Dogs"). -message TopicInfo { - // The Topic Constant resource name. - optional string topic_constant = 3; - - // The category to target or exclude. Each subsequent element in the array - // describes a more specific sub-category. For example, - // "Pets & Animals", "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs" - // category. - repeated string path = 4; -} - -// A language criterion. -message LanguageInfo { - // The language constant resource name. - optional string language_constant = 2; -} - -// An IpBlock criterion used for IP exclusions. We allow: -// - IPv4 and IPv6 addresses -// - individual addresses (192.168.0.1) -// - masks for individual addresses (192.168.0.1/32) -// - masks for Class C networks (192.168.0.1/24) -message IpBlockInfo { - // The IP address of this IP block. - optional string ip_address = 2; -} - -// Content Label for category exclusion. -message ContentLabelInfo { - // Content label type, required for CREATE operations. - google.ads.googleads.v8.enums.ContentLabelTypeEnum.ContentLabelType type = 1; -} - -// Represents a Carrier Criterion. -message CarrierInfo { - // The Carrier constant resource name. - optional string carrier_constant = 2; -} - -// Represents a particular interest-based topic to be targeted. -message UserInterestInfo { - // The UserInterest resource name. - optional string user_interest_category = 2; -} - -// Represents a criterion for targeting webpages of an advertiser's website. -message WebpageInfo { - // The name of the criterion that is defined by this parameter. The name value - // will be used for identifying, sorting and filtering criteria with this type - // of parameters. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - optional string criterion_name = 3; - - // Conditions, or logical expressions, for webpage targeting. The list of - // webpage targeting conditions are and-ed together when evaluated - // for targeting. - // - // This field is required for CREATE operations and is prohibited on UPDATE - // operations. - repeated WebpageConditionInfo conditions = 2; - - // Website criteria coverage percentage. This is the computed percentage - // of website coverage based on the website target, negative website target - // and negative keywords in the ad group and campaign. For instance, when - // coverage returns as 1, it indicates it has 100% coverage. This field is - // read-only. - double coverage_percentage = 4; - - // List of sample urls that match the website target. This field is read-only. - WebpageSampleInfo sample = 5; -} - -// Logical expression for targeting webpages of an advertiser's website. -message WebpageConditionInfo { - // Operand of webpage targeting condition. - google.ads.googleads.v8.enums.WebpageConditionOperandEnum.WebpageConditionOperand operand = 1; - - // Operator of webpage targeting condition. - google.ads.googleads.v8.enums.WebpageConditionOperatorEnum.WebpageConditionOperator operator = 2; - - // Argument of webpage targeting condition. - optional string argument = 4; -} - -// List of sample urls that match the website target -message WebpageSampleInfo { - // Webpage sample urls - repeated string sample_urls = 1; -} - -// Represents an operating system version to be targeted. -message OperatingSystemVersionInfo { - // The operating system version constant resource name. - optional string operating_system_version_constant = 2; -} - -// An app payment model criterion. -message AppPaymentModelInfo { - // Type of the app payment model. - google.ads.googleads.v8.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1; -} - -// A mobile device criterion. -message MobileDeviceInfo { - // The mobile device constant resource name. - optional string mobile_device_constant = 2; -} - -// A custom affinity criterion. -// A criterion of this type is only targetable. -message CustomAffinityInfo { - // The CustomInterest resource name. - optional string custom_affinity = 2; -} - -// A custom intent criterion. -// A criterion of this type is only targetable. -message CustomIntentInfo { - // The CustomInterest resource name. - optional string custom_intent = 2; -} - -// A radius around a list of locations specified via a feed. -message LocationGroupInfo { - // Feed specifying locations for targeting. - // This is required and must be set in CREATE operations. - optional string feed = 5; - - // Geo target constant(s) restricting the scope of the geographic area within - // the feed. Currently only one geo target constant is allowed. - repeated string geo_target_constants = 6; - - // Distance in units specifying the radius around targeted locations. - // This is required and must be set in CREATE operations. - optional int64 radius = 7; - - // Unit of the radius. Miles and meters are supported for geo target - // constants. Milli miles and meters are supported for feed item sets. - // This is required and must be set in CREATE operations. - google.ads.googleads.v8.enums.LocationGroupRadiusUnitsEnum.LocationGroupRadiusUnits radius_units = 4; - - // FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, - // then all items that appear in at least one set are targeted. This field - // cannot be used with geo_target_constants. This is optional and can only be - // set in CREATE operations. - repeated string feed_item_sets = 8; -} - -// A custom audience criterion. -message CustomAudienceInfo { - // The CustomAudience resource name. - string custom_audience = 1; -} - -// A combined audience criterion. -message CombinedAudienceInfo { - // The CombinedAudience resource name. - string combined_audience = 1; -} - -// A Smart Campaign keyword theme. -message KeywordThemeInfo { - // Either a predefined keyword theme constant or free-form text may be - // specified. - 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; - - // Free-form text to be matched to a Smart Campaign keyword theme constant - // on a best-effort basis. - string free_form_keyword_theme = 2; - } -} diff --git a/google/ads/googleads/v8/common/criterion_category_availability.proto b/google/ads/googleads/v8/common/criterion_category_availability.proto deleted file mode 100644 index aaa3243da..000000000 --- a/google/ads/googleads/v8/common/criterion_category_availability.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v8/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v8/enums/criterion_category_channel_availability_mode.proto"; -import "google/ads/googleads/v8/enums/criterion_category_locale_availability_mode.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "CriterionCategoryAvailabilityProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing criterion category availability information. - -// Information of category availability, per advertising channel. -message CriterionCategoryAvailability { - // Channel types and subtypes that are available to the category. - CriterionCategoryChannelAvailability channel = 1; - - // Locales that are available to the category for the channel. - repeated CriterionCategoryLocaleAvailability locale = 2; -} - -// Information of advertising channel type and subtypes a category is available -// in. -message CriterionCategoryChannelAvailability { - // Format of the channel availability. Can be ALL_CHANNELS (the rest of the - // fields will not be set), CHANNEL_TYPE (only advertising_channel_type type - // will be set, the category is available to all sub types under it) or - // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, - // advertising_channel_sub_type, and include_default_channel_sub_type will all - // be set). - google.ads.googleads.v8.enums.CriterionCategoryChannelAvailabilityModeEnum.CriterionCategoryChannelAvailabilityMode availability_mode = 1; - - // Channel type the category is available to. - google.ads.googleads.v8.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 2; - - // Channel subtypes under the channel type the category is available to. - repeated google.ads.googleads.v8.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 3; - - // Whether default channel sub type is included. For example, - // advertising_channel_type being DISPLAY and include_default_channel_sub_type - // being false means that the default display campaign where channel sub type - // is not set is not included in this availability configuration. - optional bool include_default_channel_sub_type = 5; -} - -// Information about which locales a category is available in. -message CriterionCategoryLocaleAvailability { - // Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and - // 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.v8.enums.CriterionCategoryLocaleAvailabilityModeEnum.CriterionCategoryLocaleAvailabilityMode availability_mode = 1; - - // Code of the country. - optional string country_code = 4; - - // Code of the language. - optional string language_code = 5; -} diff --git a/google/ads/googleads/v8/common/custom_parameter.proto b/google/ads/googleads/v8/common/custom_parameter.proto deleted file mode 100644 index e393adb3a..000000000 --- a/google/ads/googleads/v8/common/custom_parameter.proto +++ /dev/null @@ -1,40 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "CustomParameterProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing CustomParameter and operation - -// A mapping that can be used by custom parameter tags in a -// `tracking_url_template`, `final_urls`, or `mobile_final_urls`. -message CustomParameter { - // The key matching the parameter tag name. - optional string key = 3; - - // The value to be substituted. - optional string value = 4; -} diff --git a/google/ads/googleads/v8/common/dates.proto b/google/ads/googleads/v8/common/dates.proto deleted file mode 100644 index 3c52f4f9d..000000000 --- a/google/ads/googleads/v8/common/dates.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/month_of_year.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "DatesProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing date range message. - -// A date range. -message DateRange { - // The start date, in yyyy-mm-dd format. This date is inclusive. - optional string start_date = 3; - - // The end date, in yyyy-mm-dd format. This date is inclusive. - optional string end_date = 4; -} - -// The year month range inclusive of the start and end months. -// Eg: A year month range to represent Jan 2020 would be: (Jan 2020, Jan 2020). -message YearMonthRange { - // The inclusive start year month. - YearMonth start = 1; - - // The inclusive end year month. - YearMonth end = 2; -} - -// Year month. -message YearMonth { - // The year (e.g. 2020). - int64 year = 1; - - // The month of the year. (e.g. FEBRUARY). - google.ads.googleads.v8.enums.MonthOfYearEnum.MonthOfYear month = 2; -} diff --git a/google/ads/googleads/v8/common/explorer_auto_optimizer_setting.proto b/google/ads/googleads/v8/common/explorer_auto_optimizer_setting.proto deleted file mode 100644 index d39cd6b37..000000000 --- a/google/ads/googleads/v8/common/explorer_auto_optimizer_setting.proto +++ /dev/null @@ -1,38 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "ExplorerAutoOptimizerSettingProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing ExplorerAutoOptimizerSetting - -// Settings for the Display Campaign Optimizer, initially named "Explorer". -// Learn more about -// [automatic targeting](https://support.google.com/google-ads/answer/190596). -message ExplorerAutoOptimizerSetting { - // Indicates whether the optimizer is turned on. - optional bool opt_in = 2; -} diff --git a/google/ads/googleads/v8/common/extensions.proto b/google/ads/googleads/v8/common/extensions.proto deleted file mode 100644 index 2f21398ef..000000000 --- a/google/ads/googleads/v8/common/extensions.proto +++ /dev/null @@ -1,368 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/common/custom_parameter.proto"; -import "google/ads/googleads/v8/common/feed_common.proto"; -import "google/ads/googleads/v8/enums/app_store.proto"; -import "google/ads/googleads/v8/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v8/enums/price_extension_price_qualifier.proto"; -import "google/ads/googleads/v8/enums/price_extension_price_unit.proto"; -import "google/ads/googleads/v8/enums/price_extension_type.proto"; -import "google/ads/googleads/v8/enums/promotion_extension_discount_modifier.proto"; -import "google/ads/googleads/v8/enums/promotion_extension_occasion.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionsProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing extension types. - -// Represents an App extension. -message AppFeedItem { - // The visible text displayed when the link is rendered in an ad. - // This string must not be empty, and the length of this string should - // be between 1 and 25, inclusive. - optional string link_text = 9; - - // The store-specific ID for the target application. - // This string must not be empty. - optional string app_id = 10; - - // The application store that the target application belongs to. - // This field is required. - google.ads.googleads.v8.enums.AppStoreEnum.AppStore app_store = 3; - - // A list of possible final URLs after all cross domain redirects. - // This list must not be empty. - repeated string final_urls = 11; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 12; - - // URL template for constructing a tracking URL. Default value is "{lpurl}". - optional string tracking_url_template = 13; - - // 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 CustomParameter url_custom_parameters = 7; - - // URL template for appending params to landing page URLs served with parallel - // tracking. - optional string final_url_suffix = 14; -} - -// Represents a Call extension. -message CallFeedItem { - // The advertiser's phone number to append to the ad. - // This string must not be empty. - optional string phone_number = 7; - - // Uppercase two-letter country code of the advertiser's phone number. - // This string must not be empty. - optional string country_code = 8; - - // Indicates whether call tracking is enabled. By default, call tracking is - // not enabled. - optional bool call_tracking_enabled = 9; - - // The conversion action to attribute a call conversion to. If not set a - // default conversion action is used. This field only has effect if - // call_tracking_enabled is set to true. Otherwise this field is ignored. - optional string call_conversion_action = 10; - - // If true, disable call conversion tracking. call_conversion_action should - // not be set if this is true. Optional. - optional bool call_conversion_tracking_disabled = 11; - - // 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.v8.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 6; -} - -// Represents a callout extension. -message CalloutFeedItem { - // The callout text. - // The length of this string should be between 1 and 25, inclusive. - optional string callout_text = 2; -} - -// Represents a location extension. -message LocationFeedItem { - // The name of the business. - optional string business_name = 9; - - // Line 1 of the business address. - optional string address_line_1 = 10; - - // Line 2 of the business address. - optional string address_line_2 = 11; - - // City of the business address. - optional string city = 12; - - // Province of the business address. - optional string province = 13; - - // Postal code of the business address. - optional string postal_code = 14; - - // Country code of the business address. - optional string country_code = 15; - - // Phone number of the business. - optional string phone_number = 16; -} - -// Represents an affiliate location extension. -message AffiliateLocationFeedItem { - // The name of the business. - optional string business_name = 11; - - // Line 1 of the business address. - optional string address_line_1 = 12; - - // Line 2 of the business address. - optional string address_line_2 = 13; - - // City of the business address. - optional string city = 14; - - // Province of the business address. - optional string province = 15; - - // Postal code of the business address. - optional string postal_code = 16; - - // Country code of the business address. - optional string country_code = 17; - - // Phone number of the business. - optional string phone_number = 18; - - // Id of the retail chain that is advertised as a seller of your product. - optional int64 chain_id = 19; - - // Name of chain. - optional string chain_name = 20; -} - -// An extension that users can click on to send a text message to the -// advertiser. -message TextMessageFeedItem { - // The business name to prepend to the message text. - // This field is required. - optional string business_name = 6; - - // Uppercase two-letter country code of the advertiser's phone number. - // This field is required. - optional string country_code = 7; - - // The advertiser's phone number the message will be sent to. Required. - optional string phone_number = 8; - - // The text to show in the ad. - // This field is required. - optional string text = 9; - - // The message extension_text populated in the messaging app. - optional string extension_text = 10; -} - -// Represents a Price extension. -message PriceFeedItem { - // Price extension type of this extension. - google.ads.googleads.v8.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1; - - // Price qualifier for all offers of this price extension. - google.ads.googleads.v8.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2; - - // Tracking URL template for all offers of this price extension. - optional string tracking_url_template = 7; - - // The code of the language used for this price extension. - optional string language_code = 8; - - // The price offerings in this price extension. - repeated PriceOffer price_offerings = 5; - - // Tracking URL template for all offers of this price extension. - optional string final_url_suffix = 9; -} - -// Represents one price offer in a price extension. -message PriceOffer { - // Header text of this offer. - optional string header = 7; - - // Description text of this offer. - optional string description = 8; - - // Price value of this offer. - Money price = 3; - - // Price unit for this offer. - google.ads.googleads.v8.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4; - - // A list of possible final URLs after all cross domain redirects. - repeated string final_urls = 9; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 10; -} - -// Represents a Promotion extension. -message PromotionFeedItem { - // A freeform description of what the promotion is targeting. - // This field is required. - optional string promotion_target = 16; - - // Enum that modifies the qualification of the discount. - google.ads.googleads.v8.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2; - - // Start date of when the promotion is eligible to be redeemed. - optional string promotion_start_date = 19; - - // Last date when the promotion is eligible to be redeemed. - optional string promotion_end_date = 20; - - // 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.v8.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9; - - // A list of possible final URLs after all cross domain redirects. - // This field is required. - repeated string final_urls = 21; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 22; - - // URL template for constructing a tracking URL. - optional string tracking_url_template = 23; - - // 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 CustomParameter url_custom_parameters = 13; - - // URL template for appending params to landing page URLs served with parallel - // tracking. - optional string final_url_suffix = 24; - - // The language of the promotion. - // Represented as BCP 47 language tag. - optional string language_code = 25; - - // Discount type, can be percentage off or amount off. - oneof discount_type { - // Percentage off discount in the promotion in micros. - // One million is equivalent to one percent. - // Either this or money_off_amount is required. - int64 percent_off = 17; - - // Money amount off for discount in the promotion. - // Either this or percent_off is required. - Money money_amount_off = 4; - } - - // Promotion trigger. Can be by promotion code or promo by eligible order - // amount. - oneof promotion_trigger { - // A code the user should use in order to be eligible for the promotion. - string promotion_code = 18; - - // The amount the total order needs to be for the user to be eligible for - // the promotion. - Money orders_over_amount = 6; - } -} - -// Represents a structured snippet extension. -message StructuredSnippetFeedItem { - // The header of the snippet. - // This string must not be empty. - optional string header = 3; - - // The values in the snippet. - // The maximum size of this collection is 10. - repeated string values = 4; -} - -// Represents a sitelink extension. -message SitelinkFeedItem { - // URL display text for the sitelink. - // The length of this string should be between 1 and 25, inclusive. - optional string link_text = 9; - - // First line of the description for the sitelink. - // If this value is set, line2 must also be set. - // The length of this string should be between 0 and 35, inclusive. - optional string line1 = 10; - - // Second line of the description for the sitelink. - // If this value is set, line1 must also be set. - // The length of this string should be between 0 and 35, inclusive. - optional string line2 = 11; - - // A list of possible final URLs after all cross domain redirects. - repeated string final_urls = 12; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 13; - - // URL template for constructing a tracking URL. - optional string tracking_url_template = 14; - - // 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 CustomParameter url_custom_parameters = 7; - - // Final URL suffix to be appended to landing page URLs served with - // parallel tracking. - optional string final_url_suffix = 15; -} - -// Represents a hotel callout extension. -message HotelCalloutFeedItem { - // The callout text. - // The length of this string should be between 1 and 25, inclusive. - optional string text = 3; - - // The language of the hotel callout text. - // IETF BCP 47 compliant language code. - optional string language_code = 4; -} - -// Represents an advertiser provided image extension. -message ImageFeedItem { - // Required. Resource name of the image asset. - string image_asset = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; -} diff --git a/google/ads/googleads/v8/common/feed_common.proto b/google/ads/googleads/v8/common/feed_common.proto deleted file mode 100644 index 9e1bd467e..000000000 --- a/google/ads/googleads/v8/common/feed_common.proto +++ /dev/null @@ -1,39 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "FeedCommonProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing common feed proto messages. - -// Represents a price in a particular currency. -message Money { - // Three-character ISO 4217 currency code. - optional string currency_code = 3; - - // Amount in micros. One million is equivalent to one unit. - optional int64 amount_micros = 4; -} diff --git a/google/ads/googleads/v8/common/feed_item_set_filter_type_infos.proto b/google/ads/googleads/v8/common/feed_item_set_filter_type_infos.proto deleted file mode 100644 index d79f19493..000000000 --- a/google/ads/googleads/v8/common/feed_item_set_filter_type_infos.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/feed_item_set_string_filter_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetFilterTypeInfosProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Represents a filter on locations in a feed item set. -// Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. -message DynamicLocationSetFilter { - // If multiple labels are set, then only feeditems marked with all the labels - // will be added to the FeedItemSet. - repeated string labels = 1; - - // Business name filter. - BusinessNameFilter business_name_filter = 2; -} - -// Represents a business name filter on locations in a FeedItemSet. -message BusinessNameFilter { - // Business name string to use for filtering. - string business_name = 1; - - // The type of string matching to use when filtering with business_name. - google.ads.googleads.v8.enums.FeedItemSetStringFilterTypeEnum.FeedItemSetStringFilterType filter_type = 2; -} - -// Represents a filter on affiliate locations in a FeedItemSet. -// Only applicable if the parent Feed of the FeedItemSet is an -// AFFILIATE_LOCATION feed. -message DynamicAffiliateLocationSetFilter { - // Used to filter affiliate locations by chain ids. Only affiliate locations - // that belong to the specified chain(s) will be added to the FeedItemSet. - repeated int64 chain_ids = 1; -} diff --git a/google/ads/googleads/v8/common/final_app_url.proto b/google/ads/googleads/v8/common/final_app_url.proto deleted file mode 100644 index 7f98f070f..000000000 --- a/google/ads/googleads/v8/common/final_app_url.proto +++ /dev/null @@ -1,46 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/app_url_operating_system_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "FinalAppUrlProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::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.v8.enums.AppUrlOperatingSystemTypeEnum.AppUrlOperatingSystemType os_type = 1; - - // The app deep link URL. Deep links specify a location in an app that - // corresponds to the content you'd like to show, and should be of the form - // {scheme}://{host_path} - // The scheme identifies which app to open. For your app, you can use a custom - // scheme that starts with the app's name. The host and path specify the - // unique location in the app where your content exists. - // Example: "exampleapp://productid_1234". Required. - optional string url = 3; -} diff --git a/google/ads/googleads/v8/common/frequency_cap.proto b/google/ads/googleads/v8/common/frequency_cap.proto deleted file mode 100644 index 80b4d1b81..000000000 --- a/google/ads/googleads/v8/common/frequency_cap.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/frequency_cap_event_type.proto"; -import "google/ads/googleads/v8/enums/frequency_cap_level.proto"; -import "google/ads/googleads/v8/enums/frequency_cap_time_unit.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "FrequencyCapProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing frequency caps. - -// A rule specifying the maximum number of times an ad (or some set of ads) can -// be shown to a user over a particular time period. -message FrequencyCapEntry { - // The key of a particular frequency cap. There can be no more - // than one frequency cap with the same key. - FrequencyCapKey key = 1; - - // Maximum number of events allowed during the time range by this cap. - optional int32 cap = 3; -} - -// A group of fields used as keys for a frequency cap. -// There can be no more than one frequency cap with the same key. -message FrequencyCapKey { - // The level on which the cap is to be applied (e.g. ad group ad, ad group). - // The cap is applied to all the entities of this level. - google.ads.googleads.v8.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = 1; - - // The type of event that the cap applies to (e.g. impression). - google.ads.googleads.v8.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType event_type = 3; - - // Unit of time the cap is defined at (e.g. day, week). - google.ads.googleads.v8.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2; - - // Number of time units the cap lasts. - optional int32 time_length = 5; -} diff --git a/google/ads/googleads/v8/common/keyword_plan_common.proto b/google/ads/googleads/v8/common/keyword_plan_common.proto deleted file mode 100644 index 74398718e..000000000 --- a/google/ads/googleads/v8/common/keyword_plan_common.proto +++ /dev/null @@ -1,139 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/common/dates.proto"; -import "google/ads/googleads/v8/enums/device.proto"; -import "google/ads/googleads/v8/enums/keyword_plan_aggregate_metric_type.proto"; -import "google/ads/googleads/v8/enums/keyword_plan_competition_level.proto"; -import "google/ads/googleads/v8/enums/keyword_plan_concept_group_type.proto"; -import "google/ads/googleads/v8/enums/month_of_year.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCommonProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing Keyword Planner messages. - -// Historical metrics specific to the targeting options selected. -// Targeting options include geographies, network, etc. -// Refer to https://support.google.com/google-ads/answer/3022575 for more -// details. -message KeywordPlanHistoricalMetrics { - // Approximate number of monthly searches on this query averaged - // for the past 12 months. - optional int64 avg_monthly_searches = 7; - - // Approximate number of searches on this query for the past twelve months. - repeated MonthlySearchVolume monthly_search_volumes = 6; - - // The competition level for the query. - google.ads.googleads.v8.enums.KeywordPlanCompetitionLevelEnum.KeywordPlanCompetitionLevel competition = 2; - - // The competition index for the query in the range [0, 100]. - // Shows how competitive ad placement is for a keyword. - // The level of competition from 0-100 is determined by the number of ad slots - // filled divided by the total number of ad slots available. If not enough - // data is available, null is returned. - optional int64 competition_index = 8; - - // Top of page bid low range (20th percentile) in micros for the keyword. - optional int64 low_top_of_page_bid_micros = 9; - - // Top of page bid high range (80th percentile) in micros for the keyword. - optional int64 high_top_of_page_bid_micros = 10; -} - -// Historical metrics options. -message HistoricalMetricsOptions { - // The year month range for historical metrics. If not specified the searches - // will be returned for past 12 months. - // Searches data is available for the past 4 years. If the search volume is - // not available for the entire year_month_range provided, the subset of the - // year month range for which search volume is available will be returned. - optional YearMonthRange year_month_range = 1; -} - -// Monthly search volume. -message MonthlySearchVolume { - // The year of the search volume (e.g. 2020). - optional int64 year = 4; - - // The month of the search volume. - google.ads.googleads.v8.enums.MonthOfYearEnum.MonthOfYear month = 2; - - // Approximate number of searches for the month. - // A null value indicates the search volume is unavailable for - // that month. - optional int64 monthly_searches = 5; -} - -// The aggregate metrics specification of the request. -message KeywordPlanAggregateMetrics { - // The list of aggregate metrics to fetch data. - repeated google.ads.googleads.v8.enums.KeywordPlanAggregateMetricTypeEnum.KeywordPlanAggregateMetricType aggregate_metric_types = 1; -} - -// The aggregated historical metrics for keyword plan keywords. -message KeywordPlanAggregateMetricResults { - // The aggregate searches for all the keywords segmented by device - // for the specified time. - // Supports the following device types: MOBILE, TABLET, DESKTOP. - // - // This is only set when KeywordPlanAggregateMetricTypeEnum.DEVICE is set - // in the KeywordPlanAggregateMetrics field in the request. - repeated KeywordPlanDeviceSearches device_searches = 1; -} - -// The total searches for the device type during the specified time period. -message KeywordPlanDeviceSearches { - // The device type. - google.ads.googleads.v8.enums.DeviceEnum.Device device = 1; - - // The total searches for the device. - optional int64 search_count = 2; -} - -// The Annotations for the Keyword plan keywords. -message KeywordAnnotations { - // The list of concepts for the keyword. - repeated KeywordConcept concepts = 1; -} - -// The concept for the keyword. -message KeywordConcept { - // The concept name for the keyword in the concept_group. - string name = 1; - - // The concept group of the concept details. - ConceptGroup concept_group = 2; -} - -// The concept group for the keyword concept. -message ConceptGroup { - // The concept group name. - string name = 1; - - // The concept group type. - google.ads.googleads.v8.enums.KeywordPlanConceptGroupTypeEnum.KeywordPlanConceptGroupType type = 2; -} diff --git a/google/ads/googleads/v8/common/matching_function.proto b/google/ads/googleads/v8/common/matching_function.proto deleted file mode 100644 index b5e521f9d..000000000 --- a/google/ads/googleads/v8/common/matching_function.proto +++ /dev/null @@ -1,126 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/matching_function_context_type.proto"; -import "google/ads/googleads/v8/enums/matching_function_operator.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "MatchingFunctionProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing a matching function. - -// Matching function associated with a -// CustomerFeed, CampaignFeed, or AdGroupFeed. The matching function is used -// to filter the set of feed items selected. -message MatchingFunction { - // String representation of the Function. - // - // Examples: - // - // 1. IDENTITY(true) or IDENTITY(false). All or no feed items served. - // 2. EQUALS(CONTEXT.DEVICE,"Mobile") - // 3. IN(FEED_ITEM_ID,{1000001,1000002,1000003}) - // 4. CONTAINS_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus cruise"}) - // 5. AND(IN(FEED_ITEM_ID,{10001,10002}),EQUALS(CONTEXT.DEVICE,"Mobile")) - // - // For more details, visit - // https://developers.google.com/adwords/api/docs/guides/feed-matching-functions - // - // Note that because multiple strings may represent the same underlying - // function (whitespace and single versus double quotation marks, for - // example), the value returned may not be identical to the string sent in a - // mutate request. - optional string function_string = 5; - - // Operator for a function. - google.ads.googleads.v8.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator operator = 4; - - // The operands on the left hand side of the equation. This is also the - // operand to be used for single operand expressions such as NOT. - repeated Operand left_operands = 2; - - // The operands on the right hand side of the equation. - repeated Operand right_operands = 3; -} - -// An operand in a matching function. -message Operand { - // A constant operand in a matching function. - message ConstantOperand { - // Constant operand values. Required. - oneof constant_operand_value { - // String value of the operand if it is a string type. - string string_value = 5; - - // Int64 value of the operand if it is a int64 type. - int64 long_value = 6; - - // Boolean value of the operand if it is a boolean type. - bool boolean_value = 7; - - // Double value of the operand if it is a double type. - double double_value = 8; - } - } - - // A feed attribute operand in a matching function. - // Used to represent a feed attribute in feed. - message FeedAttributeOperand { - // The associated feed. Required. - optional int64 feed_id = 3; - - // Id of the referenced feed attribute. Required. - optional int64 feed_attribute_id = 4; - } - - // A function operand in a matching function. - // Used to represent nested functions. - message FunctionOperand { - // The matching function held in this operand. - MatchingFunction matching_function = 1; - } - - // 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.v8.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType context_type = 1; - } - - // Different operands that can be used in a matching function. Required. - oneof function_argument_operand { - // A constant operand in a matching function. - ConstantOperand constant_operand = 1; - - // This operand specifies a feed attribute in feed. - FeedAttributeOperand feed_attribute_operand = 2; - - // A function operand in a matching function. - // Used to represent nested functions. - FunctionOperand function_operand = 3; - - // An operand in a function referring to a value in the request context. - RequestContextOperand request_context_operand = 4; - } -} diff --git a/google/ads/googleads/v8/common/metrics.proto b/google/ads/googleads/v8/common/metrics.proto deleted file mode 100644 index ab54d06c5..000000000 --- a/google/ads/googleads/v8/common/metrics.proto +++ /dev/null @@ -1,619 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/interaction_event_type.proto"; -import "google/ads/googleads/v8/enums/quality_score_bucket.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "MetricsProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::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. - optional double absolute_top_impression_percentage = 183; - - // Average cost of viewable impressions (`active_view_impressions`). - optional double active_view_cpm = 184; - - // Active view measurable clicks divided by active view viewable impressions. - // This metric is reported only for display network. - optional double active_view_ctr = 185; - - // A measurement of how often your ad has become viewable on a Display - // Network site. - optional int64 active_view_impressions = 186; - - // The ratio of impressions that could be measured by Active View over the - // number of served impressions. - optional double active_view_measurability = 187; - - // The cost of the impressions you received that were measurable by Active - // View. - optional int64 active_view_measurable_cost_micros = 188; - - // The number of times your ads are appearing on placements in positions - // where they can be seen. - optional int64 active_view_measurable_impressions = 189; - - // The percentage of time when your ad appeared on an Active View enabled site - // (measurable impressions) and was viewable (viewable impressions). - optional double active_view_viewability = 190; - - // All conversions from interactions (as oppose to view through conversions) - // divided by the number of ad interactions. - optional double all_conversions_from_interactions_rate = 191; - - // The value of all conversions. - optional double all_conversions_value = 192; - - // The value of all conversions. When this column is selected 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_value_by_conversion_date = 240; - - // The total number of conversions. This includes all conversions regardless - // of the value of include_in_conversions_metric. - optional double all_conversions = 193; - - // The total number of conversions. This includes all conversions regardless - // of the value of include_in_conversions_metric. When this column is selected - // 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; - - // The value of all conversions divided by the total cost of ad interactions - // (such as clicks for text ads or views for video ads). - optional double all_conversions_value_per_cost = 194; - - // The number of times people clicked the "Call" button to call a store during - // or after clicking an ad. This number doesn't include whether or not calls - // were connected, or the duration of any calls. - // This metric applies to feed items only. - optional double all_conversions_from_click_to_call = 195; - - // The number of times people clicked a "Get directions" button to navigate to - // a store after clicking an ad. - // This metric applies to feed items only. - optional double all_conversions_from_directions = 196; - - // The value of all conversions from interactions divided by the total number - // of interactions. - optional double all_conversions_from_interactions_value_per_interaction = 197; - - // The number of times people clicked a link to view a store's menu after - // clicking an ad. - // This metric applies to feed items only. - optional double all_conversions_from_menu = 198; - - // The number of times people placed an order at a store after clicking an ad. - // This metric applies to feed items only. - optional double all_conversions_from_order = 199; - - // The number of other conversions (for example, posting a review or saving a - // location for a store) that occurred after people clicked an ad. - // This metric applies to feed items only. - optional double all_conversions_from_other_engagement = 200; - - // Estimated number of times people visited a store after clicking an ad. - // This metric applies to feed items only. - optional double all_conversions_from_store_visit = 201; - - // The number of times that people were taken to a store's URL after clicking - // an ad. - // This metric applies to feed items only. - optional double all_conversions_from_store_website = 202; - - // The average amount you pay per interaction. This amount is the total cost - // of your ads divided by the total number of interactions. - optional double average_cost = 203; - - // The total cost of all clicks divided by the total number of clicks - // received. - optional double average_cpc = 204; - - // The average amount that you've been charged for an ad engagement. This - // amount is the total cost of all ad engagements divided by the total number - // of ad engagements. - optional double average_cpe = 205; - - // Average cost-per-thousand impressions (CPM). - optional double average_cpm = 206; - - // The average amount you pay each time someone views your ad. - // The average CPV is defined by the total cost of all ad views divided by - // the number of views. - optional double average_cpv = 207; - - // Average number of pages viewed per session. - optional double average_page_views = 208; - - // Total duration of all sessions (in seconds) / number of sessions. Imported - // from Google Analytics. - optional double average_time_on_site = 209; - - // An indication of how other advertisers are bidding on similar products. - optional double benchmark_average_max_cpc = 210; - - // An indication on how other advertisers' Shopping ads for similar products - // are performing based on how often people who see their ad click on it. - optional double benchmark_ctr = 211; - - // Percentage of clicks where the user only visited a single page on your - // site. Imported from Google Analytics. - optional double bounce_rate = 212; - - // The number of clicks. - optional int64 clicks = 131; - - // The number of times your ad or your site's listing in the unpaid - // results was clicked. See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional int64 combined_clicks = 156; - - // The number of times your ad or your site's listing in the unpaid - // results was clicked (combined_clicks) divided by combined_queries. See the - // help page at https://support.google.com/google-ads/answer/3097241 for - // details. - optional double combined_clicks_per_query = 157; - - // The number of searches that returned pages from your site in the unpaid - // results or showed one of your text ads. See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional int64 combined_queries = 158; - - // The estimated percent of times that your ad was eligible to show - // on the Display Network but didn't because your budget was too low. - // Note: Content budget lost impression share is reported in the range of 0 - // to 0.9. Any value above 0.9 is reported as 0.9001. - optional double content_budget_lost_impression_share = 159; - - // The impressions you've received on the Display Network divided - // by the estimated number of impressions you were eligible to receive. - // Note: Content impression share is reported in the range of 0.1 to 1. Any - // value below 0.1 is reported as 0.0999. - optional double content_impression_share = 160; - - // The last date/time a conversion tag for this conversion action successfully - // fired and was seen by Google Ads. This firing event may not have been the - // result of an attributable conversion (e.g. because the tag was fired from a - // browser that did not previously click an ad from an appropriate - // advertiser). The date/time is in the customer's time zone. - optional string conversion_last_received_request_date_time = 161; - - // The date of the most recent conversion for this conversion action. The date - // is in the customer's time zone. - optional string conversion_last_conversion_date = 162; - - // The estimated percentage of impressions on the Display Network - // that your ads didn't receive due to poor Ad Rank. - // Note: Content rank lost impression share is reported in the range of 0 - // to 0.9. Any value above 0.9 is reported as 0.9001. - optional double content_rank_lost_impression_share = 163; - - // Conversions from interactions divided by the number of ad interactions - // (such as clicks for text ads or views for video ads). This only includes - // conversion actions which include_in_conversions_metric attribute is set to - // true. If you use conversion-based bidding, your bid strategies will - // optimize for these conversions. - optional double conversions_from_interactions_rate = 164; - - // The value of conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double conversions_value = 165; - - // The value of conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. When this column is selected 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 conversions_value_by_conversion_date = 242; - - // The value of conversions divided by the cost of ad interactions. This only - // includes conversion actions which include_in_conversions_metric attribute - // is set to true. If you use conversion-based bidding, your bid strategies - // will optimize for these conversions. - optional double conversions_value_per_cost = 166; - - // The value of conversions from interactions divided by the number of ad - // interactions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double conversions_from_interactions_value_per_interaction = 167; - - // The number of conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double conversions = 168; - - // The number of conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. When this column is selected 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 conversions_by_conversion_date = 243; - - // The sum of your cost-per-click (CPC) and cost-per-thousand impressions - // (CPM) costs during this period. - optional int64 cost_micros = 169; - - // The cost of ad interactions divided by all conversions. - optional double cost_per_all_conversions = 170; - - // The cost of ad interactions divided by conversions. This only includes - // conversion actions which include_in_conversions_metric attribute is set to - // true. If you use conversion-based bidding, your bid strategies will - // optimize for these conversions. - optional double cost_per_conversion = 171; - - // The cost of ad interactions divided by current model attributed - // conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double cost_per_current_model_attributed_conversion = 172; - - // Conversions from when a customer clicks on a Google Ads ad on one device, - // then converts on a different device or browser. - // Cross-device conversions are already included in all_conversions. - optional double cross_device_conversions = 173; - - // The number of clicks your ad receives (Clicks) divided by the number - // of times your ad is shown (Impressions). - optional double ctr = 174; - - // Shows how your historic conversions data would look under the attribution - // model you've currently selected. This only includes conversion actions - // which include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double current_model_attributed_conversions = 175; - - // Current model attributed conversions from interactions divided by the - // number of ad interactions (such as clicks for text ads or views for video - // ads). This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double current_model_attributed_conversions_from_interactions_rate = 176; - - // The value of current model attributed conversions from interactions divided - // by the number of ad interactions. This only includes conversion actions - // which include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; - - // The value of current model attributed conversions. This only includes - // conversion actions which include_in_conversions_metric attribute is set to - // true. If you use conversion-based bidding, your bid strategies will - // optimize for these conversions. - optional double current_model_attributed_conversions_value = 178; - - // The value of current model attributed conversions divided by the cost of ad - // interactions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double current_model_attributed_conversions_value_per_cost = 179; - - // How often people engage with your ad after it's shown to them. This is the - // number of ad expansions divided by the number of times your ad is shown. - optional double engagement_rate = 180; - - // The number of engagements. - // An engagement occurs when a viewer expands your Lightbox ad. Also, in the - // future, other ad types may support engagement metrics. - optional int64 engagements = 181; - - // Average lead value based on clicks. - optional double hotel_average_lead_value_micros = 213; - - // The average price difference between the price offered by reporting hotel - // advertiser and the cheapest price offered by the competing advertiser. - optional double hotel_price_difference_percentage = 214; - - // The number of impressions that hotel partners could have had given their - // feed performance. - optional int64 hotel_eligible_impressions = 215; - - // The creative historical quality score. - google.ads.googleads.v8.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; - - // The quality of historical landing page experience. - google.ads.googleads.v8.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.v8.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; - - // The number of times the ad was forwarded to someone else as a message. - optional int64 gmail_forwards = 217; - - // The number of times someone has saved your Gmail ad to their inbox as a - // message. - optional int64 gmail_saves = 218; - - // The number of clicks to the landing page on the expanded state of Gmail - // ads. - optional int64 gmail_secondary_clicks = 219; - - // The number of times a store's location-based ad was shown. - // This metric applies to feed items only. - optional int64 impressions_from_store_reach = 220; - - // Count of how often your ad has appeared on a search results page or - // website on the Google Network. - optional int64 impressions = 221; - - // How often people interact with your ad after it is shown to them. - // This is the number of interactions divided by the number of times your ad - // is shown. - optional double interaction_rate = 222; - - // The number of interactions. - // An interaction is the main user action associated with an ad format-clicks - // for text and shopping ads, views for video ads, and so on. - optional int64 interactions = 223; - - // The types of payable and free interactions. - repeated google.ads.googleads.v8.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - - // The percentage of clicks filtered out of your total number of clicks - // (filtered + non-filtered clicks) during the reporting period. - optional double invalid_click_rate = 224; - - // Number of clicks Google considers illegitimate and doesn't charge you for. - optional int64 invalid_clicks = 225; - - // Number of message chats initiated for Click To Message impressions that - // were message tracking eligible. - optional int64 message_chats = 226; - - // Number of Click To Message impressions that were message tracking eligible. - optional int64 message_impressions = 227; - - // Number of message chats initiated (message_chats) divided by the number - // of message impressions (message_impressions). - // Rate at which a user initiates a message chat from an ad impression with - // a messaging option and message tracking enabled. - // Note that this rate can be more than 1.0 for a given message impression. - optional double message_chat_rate = 228; - - // The percentage of mobile clicks that go to a mobile-friendly page. - optional double mobile_friendly_clicks_percentage = 229; - - // Total optimization score uplift of all recommendations. - optional double optimization_score_uplift = 247; - - // URL for the optimization score page in the Google Ads web interface. - // This metric can be selected from `customer` or `campaign`, and can be - // segmented by `segments.recommendation_type`. For example, `SELECT - // metrics.optimization_score_url, segments.recommendation_type FROM - // customer` will return a URL for each unique (customer, recommendation_type) - // combination. - optional string optimization_score_url = 248; - - // The number of times someone clicked your site's listing in the unpaid - // results for a particular query. See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional int64 organic_clicks = 230; - - // The number of times someone clicked your site's listing in the unpaid - // results (organic_clicks) divided by the total number of searches that - // returned pages from your site (organic_queries). See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional double organic_clicks_per_query = 231; - - // The number of listings for your site in the unpaid search results. See the - // help page at https://support.google.com/google-ads/answer/3097241 for - // details. - optional int64 organic_impressions = 232; - - // The number of times a page from your site was listed in the unpaid search - // results (organic_impressions) divided by the number of searches returning - // your site's listing in the unpaid results (organic_queries). See the help - // page at https://support.google.com/google-ads/answer/3097241 for details. - optional double organic_impressions_per_query = 233; - - // The total number of searches that returned your site's listing in the - // unpaid results. See the help page at - // https://support.google.com/google-ads/answer/3097241 for details. - optional int64 organic_queries = 234; - - // Percentage of first-time sessions (from people who had never visited your - // site before). Imported from Google Analytics. - optional double percent_new_visitors = 235; - - // Number of offline phone calls. - optional int64 phone_calls = 236; - - // Number of offline phone impressions. - optional int64 phone_impressions = 237; - - // Number of phone calls received (phone_calls) divided by the number of - // times your phone number is shown (phone_impressions). - optional double phone_through_rate = 238; - - // Your clickthrough rate (Ctr) divided by the average clickthrough rate of - // all advertisers on the websites that show your ads. Measures how your ads - // perform on Display Network sites compared to other ads on the same sites. - optional double relative_ctr = 239; - - // The percentage of the customer's Shopping or Search ad impressions that are - // shown in the most prominent Shopping position. See - // https://support.google.com/google-ads/answer/7501826 - // 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 - // 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; - - // The estimated percent of times that your ad was eligible to show on the - // Search Network but didn't because your budget was too low. Note: Search - // budget lost 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_impression_share = 138; - - // The number estimating how often your ad didn't show anywhere above the - // 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. - optional double search_budget_lost_top_impression_share = 139; - - // The number of clicks you've received on the Search Network - // divided by the estimated number of clicks you were eligible to receive. - // Note: Search click share is reported in the range of 0.1 to 1. Any value - // below 0.1 is reported as 0.0999. - optional double search_click_share = 140; - - // The impressions you've received divided by the estimated number of - // impressions you were eligible to receive on the Search Network for search - // terms that matched your keywords exactly (or were close variants of your - // keyword), regardless of your keyword match types. Note: Search exact match - // impression share is reported in the range of 0.1 to 1. Any value below 0.1 - // is reported as 0.0999. - optional double search_exact_match_impression_share = 141; - - // The impressions you've received on the Search Network divided - // by the estimated number of impressions you were eligible to receive. - // Note: Search impression share is reported in the range of 0.1 to 1. Any - // 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. - // 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; - - // The estimated percentage of impressions on the Search Network - // that your ads didn't receive due to poor Ad Rank. - // Note: Search rank lost 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_impression_share = 144; - - // The number estimating how often your ad didn't show anywhere above the - // 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. - // 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. - optional double search_top_impression_share = 146; - - // A measure of how quickly your page loads after clicks on your mobile ads. - // The score is a range from 1 to 10, 10 being the fastest. - optional int64 speed_score = 147; - - // The percent of your ad impressions that are shown anywhere above the - // organic search results. - optional double top_impression_percentage = 148; - - // The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages - // that reach a valid AMP page. - optional double valid_accelerated_mobile_pages_clicks_percentage = 149; - - // The value of all conversions divided by the number of all conversions. - optional double value_per_all_conversions = 150; - - // The value of all conversions divided by the number of all conversions. When - // this column is selected 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. - optional double value_per_all_conversions_by_conversion_date = 244; - - // The value of conversions divided by the number of conversions. This only - // includes conversion actions which include_in_conversions_metric attribute - // is set to true. If you use conversion-based bidding, your bid strategies - // will optimize for these conversions. - optional double value_per_conversion = 151; - - // The value of conversions divided by the number of conversions. This only - // includes conversion actions which include_in_conversions_metric attribute - // is set to true. If you use conversion-based bidding, your bid strategies - // will optimize for these conversions. When this column is selected 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. - optional double value_per_conversions_by_conversion_date = 245; - - // The value of current model attributed conversions divided by the number of - // the conversions. This only includes conversion actions which - // include_in_conversions_metric attribute is set to true. If you use - // conversion-based bidding, your bid strategies will optimize for these - // conversions. - optional double value_per_current_model_attributed_conversion = 152; - - // Percentage of impressions where the viewer watched all of your video. - optional double video_quartile_p100_rate = 132; - - // Percentage of impressions where the viewer watched 25% of your video. - optional double video_quartile_p25_rate = 133; - - // Percentage of impressions where the viewer watched 50% of your video. - optional double video_quartile_p50_rate = 134; - - // Percentage of impressions where the viewer watched 75% of your video. - optional double video_quartile_p75_rate = 135; - - // The number of views your TrueView video ad receives divided by its number - // of impressions, including thumbnail impressions for TrueView in-display - // ads. - optional double video_view_rate = 153; - - // The number of times your video ads were viewed. - optional int64 video_views = 154; - - // The total number of view-through conversions. - // These happen when a customer sees an image or rich media ad, then later - // completes a conversion on your site without interacting with (e.g., - // clicking on) another ad. - optional int64 view_through_conversions = 155; - - // The number of iOS Store Kit Ad Network conversions. - int64 sk_ad_network_conversions = 246; -} diff --git a/google/ads/googleads/v8/common/offline_user_data.proto b/google/ads/googleads/v8/common/offline_user_data.proto deleted file mode 100644 index d6c710e8a..000000000 --- a/google/ads/googleads/v8/common/offline_user_data.proto +++ /dev/null @@ -1,284 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/user_identifier_source.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing offline user data. - -// Address identifier of offline data. -message OfflineUserAddressInfo { - // First name of the user, which is hashed as SHA-256 after normalized - // (Lowercase all characters; Remove any extra spaces before, after, and in - // between). - optional string hashed_first_name = 7; - - // Last name of the user, which is hashed as SHA-256 after normalized (lower - // case only and no punctuation). - optional string hashed_last_name = 8; - - // City of the address. Only accepted for Store Sales and - // ConversionAdjustmentUploadService. - optional string city = 9; - - // State code of the address. Only accepted for Store Sales and - // ConversionAdjustmentUploadService. - optional string state = 10; - - // 2-letter country code in ISO-3166-1 alpha-2 of the user's address. - optional string country_code = 11; - - // Postal code of the user's address. - optional string postal_code = 12; - - // The street address of the user hashed using SHA-256 hash function after - // normalization (lower case only). Only accepted for - // ConversionAdjustmentUploadService. - optional string hashed_street_address = 13; -} - -// User identifying information. -message UserIdentifier { - // Source of the user identifier when the upload is from Store Sales, - // ConversionUploadService, or ConversionAdjustmentUploadService. For - // ConversionUploadService and ConversionAdjustmentUploadService, the source - // of the user identifier must be specified as FIRST_PARTY, otherwise an error - // will be returned. - google.ads.googleads.v8.enums.UserIdentifierSourceEnum.UserIdentifierSource user_identifier_source = 6; - - // Exactly one must be specified. For OfflineUserDataJobService, Customer - // Match accepts hashed_email, hashed_phone_number, mobile_id, - // third_party_user_id, and address_info; Store Sales accepts hashed_email, - // hashed_phone_number, third_party_user_id, and address_info. - // ConversionUploadService accepts hashed_email and hashed_phone_number. - // ConversionAdjustmentUploadService accepts hashed_email, - // hashed_phone_number, and address_info. - oneof identifier { - // Hashed email address using SHA-256 hash function after normalization. - // Accepted for Customer Match, Store Sales, ConversionUploadService, and - // ConversionAdjustmentUploadService. - string hashed_email = 7; - - // Hashed phone number using SHA-256 hash function after normalization - // (E164 standard). Accepted for Customer Match, Store Sales, - // ConversionUploadService, and ConversionAdjustmentUploadService. - string hashed_phone_number = 8; - - // Mobile device ID (advertising ID/IDFA). Accepted only for Customer Match. - string mobile_id = 9; - - // Advertiser-assigned user ID for Customer Match upload, or - // third-party-assigned user ID for Store Sales. Accepted only for Customer - // Match and Store Sales. - string third_party_user_id = 10; - - // Address information. Accepted only for Customer Match, Store Sales, and - // ConversionAdjustmentUploadService. - OfflineUserAddressInfo address_info = 5; - } -} - -// Attribute of the store sales transaction. -message TransactionAttribute { - // Timestamp when transaction occurred. Required. - // The format is "YYYY-MM-DD HH:MM:SS[+/-HH:MM]", where [+/-HH:MM] is an - // optional timezone offset from UTC. If the offset is absent, the API will - // use the account's timezone as default. - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30+03:00" - optional string transaction_date_time = 8; - - // Transaction amount in micros. Required. - // Transaction amount in micros needs to be greater than 1000. - // If item Attributes are provided, it represents the total value of the - // items, after multiplying the unit price per item by the quantity provided - // in the ItemAttributes. - optional double transaction_amount_micros = 9; - - // Transaction currency code. ISO 4217 three-letter code is used. Required. - optional string currency_code = 10; - - // The resource name of conversion action to report conversions to. - // Required. - optional string conversion_action = 11; - - // Transaction order id. - // Accessible only to customers on the allow-list. - optional string order_id = 12; - - // Store attributes of the transaction. - // Accessible only to customers on the allow-list. - StoreAttribute store_attribute = 6; - - // Value of the custom variable for each transaction. - // Accessible only to customers on the allow-list. - optional string custom_value = 13; - - // Item attributes of the transaction. - ItemAttribute item_attribute = 14; -} - -// Store attributes of the transaction. -message StoreAttribute { - // Store code from - // https://support.google.com/business/answer/3370250#storecode - optional string store_code = 2; -} - -// Item attributes of the transaction. -message ItemAttribute { - // A unique identifier of a product. It can be either the Merchant Center Item - // ID or GTIN (Global Trade Item Number). - string item_id = 1; - - // ID of the Merchant Center Account. - optional int64 merchant_id = 2; - - // Common Locale Data Repository (CLDR) territory code of the country - // associated with the feed where your items are uploaded. See - // https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes - // for more information. - string country_code = 3; - - // ISO 639-1 code of the language associated with the feed where your items - // are uploaded - string language_code = 4; - - // The number of items sold. Defaults to 1 if not set. - int64 quantity = 5; -} - -// User data holding user identifiers and attributes. -message UserData { - // User identification info. Required. - repeated UserIdentifier user_identifiers = 1; - - // Additional transactions/attributes associated with the user. - // Required when updating store sales data. - TransactionAttribute transaction_attribute = 2; - - // Additional attributes associated with the user. Required when updating - // customer match attributes. These have an expiration of 540 days. - UserAttribute user_attribute = 3; -} - -// User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job -// type. -message UserAttribute { - // Advertiser defined lifetime value for the user. - optional int64 lifetime_value_micros = 1; - - // Advertiser defined lifetime value bucket for the user. The valid range for - // a lifetime value bucket is from 1 (low) to 10 (high), except for remove - // operation where 0 will also be accepted. - optional int32 lifetime_value_bucket = 2; - - // Timestamp of the last purchase made by the user. - // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an - // optional timezone offset from UTC. If the offset is absent, the API will - // use the account's timezone as default. - string last_purchase_date_time = 3; - - // Advertiser defined average number of purchases that are made by the user in - // a 30 day period. - int32 average_purchase_count = 4; - - // Advertiser defined average purchase value in micros for the user. - int64 average_purchase_value_micros = 5; - - // Timestamp when the user was acquired. - // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an - // optional timezone offset from UTC. If the offset is absent, the API will - // use the account's timezone as default. - string acquisition_date_time = 6; -} - -// Metadata for customer match user list. -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; -} - -// Metadata for Store Sales Direct. -message StoreSalesMetadata { - // This is the fraction of all transactions that are identifiable (i.e., - // associated with any form of customer information). - // Required. - // The fraction needs to be between 0 and 1 (excluding 0). - optional double loyalty_fraction = 5; - - // This is the ratio of sales being uploaded compared to the overall sales - // that can be associated with a customer. Required. - // The fraction needs to be between 0 and 1 (excluding 0). For example, if you - // upload half the sales that you are able to associate with a customer, this - // would be 0.5. - optional double transaction_upload_fraction = 6; - - // Name of the store sales custom variable key. A predefined key that - // can be applied to the transaction and then later used for custom - // segmentation in reporting. - // Accessible only to customers on the allow-list. - optional string custom_key = 7; - - // Metadata for a third party Store Sales upload. - StoreSalesThirdPartyMetadata third_party_metadata = 3; -} - -// Metadata for a third party Store Sales. -// This product is only for customers on the allow-list. Please contact your -// Google business development representative for details on the upload -// configuration. -message StoreSalesThirdPartyMetadata { - // Time the advertiser uploaded the data to the partner. Required. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string advertiser_upload_date_time = 7; - - // The fraction of transactions that are valid. Invalid transactions may - // include invalid formats or values. - // Required. - // The fraction needs to be between 0 and 1 (excluding 0). - optional double valid_transaction_fraction = 8; - - // The fraction of valid transactions that are matched to a third party - // assigned user ID on the partner side. - // Required. - // The fraction needs to be between 0 and 1 (excluding 0). - optional double partner_match_fraction = 9; - - // The fraction of valid transactions that are uploaded by the partner to - // Google. - // Required. - // The fraction needs to be between 0 and 1 (excluding 0). - optional double partner_upload_fraction = 10; - - // Version of partner IDs to be used for uploads. Required. - optional string bridge_map_version_id = 11; - - // ID of the third party partner updating the transaction feed. - optional int64 partner_id = 12; -} diff --git a/google/ads/googleads/v8/common/policy.proto b/google/ads/googleads/v8/common/policy.proto deleted file mode 100644 index 3975c4536..000000000 --- a/google/ads/googleads/v8/common/policy.proto +++ /dev/null @@ -1,220 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/policy_topic_entry_type.proto"; -import "google/ads/googleads/v8/enums/policy_topic_evidence_destination_mismatch_url_type.proto"; -import "google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_device.proto"; -import "google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "PolicyProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing policy information. - -// Key of the violation. The key is used for referring to a violation -// when filing an exemption request. -message PolicyViolationKey { - // Unique ID of the violated policy. - optional string policy_name = 3; - - // The text that violates the policy if specified. - // Otherwise, refers to the policy in general - // (e.g., when requesting to be exempt from the whole policy). - // If not specified for criterion exemptions, the whole policy is implied. - // Must be specified for ad exemptions. - optional string violating_text = 4; -} - -// Parameter for controlling how policy exemption is done. -message PolicyValidationParameter { - // The list of policy topics that should not cause a PolicyFindingError to - // be reported. This field is currently only compatible with Enhanced Text Ad. - // It corresponds to the PolicyTopicEntry.topic field. - // - // Resources violating these policies 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 string ignorable_policy_topics = 3; - - // The list of policy violation keys that should not cause a - // PolicyViolationError to be reported. Not all policy violations are - // exemptable, please 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 PolicyViolationKey exempt_policy_violation_keys = 2; -} - -// Policy finding attached to a resource (e.g. alcohol policy associated with -// a site that sells alcohol). -// -// Each PolicyTopicEntry has a topic that indicates the specific ads policy -// the entry is about and a type to indicate the effect that the entry will have -// on serving. It may optionally have one or more evidences that indicate the -// reason for the finding. It may also optionally have one or more constraints -// that provide details about how serving may be restricted. -message PolicyTopicEntry { - // Policy topic this finding refers to. For example, "ALCOHOL", - // "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible - // policy topics is not fixed for a particular API version and may change - // at any time. - optional string topic = 5; - - // Describes the negative or positive effect this policy will have on serving. - google.ads.googleads.v8.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType type = 2; - - // Additional information that explains policy finding - // (e.g. the brand name for a trademark finding). - repeated PolicyTopicEvidence evidences = 3; - - // Indicates how serving of this resource may be affected (e.g. not serving - // in a country). - repeated PolicyTopicConstraint constraints = 4; -} - -// Additional information that explains a policy finding. -message PolicyTopicEvidence { - // A list of fragments of text that violated a policy. - message TextList { - // The fragments of text from the resource that caused the policy finding. - repeated string texts = 2; - } - - // A list of websites that caused a policy finding. Used for - // ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more - // than five websites, only the top five (those that appear in resources the - // most) will be listed here. - message WebsiteList { - // Websites that caused the policy finding. - repeated string websites = 2; - } - - // A list of strings found in a destination page that caused a policy - // finding. - message DestinationTextList { - // List of text found in the resource's destination page. - repeated string destination_texts = 2; - } - - // 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.v8.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.PolicyTopicEvidenceDestinationMismatchUrlType url_types = 1; - } - - // Evidence details when the destination is returning an HTTP error - // code or isn't functional in all locations for commonly used devices. - message DestinationNotWorking { - // The full URL that didn't work. - optional string expanded_url = 7; - - // The type of device that failed to load the URL. - google.ads.googleads.v8.enums.PolicyTopicEvidenceDestinationNotWorkingDeviceEnum.PolicyTopicEvidenceDestinationNotWorkingDevice device = 4; - - // The time the URL was last checked. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string last_checked_date_time = 8; - - // Indicates the reason of the DESTINATION_NOT_WORKING policy finding. - oneof reason { - // The type of DNS error. - google.ads.googleads.v8.enums.PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum.PolicyTopicEvidenceDestinationNotWorkingDnsErrorType dns_error_type = 1; - - // The HTTP error code. - int64 http_error_code = 6; - } - } - - // Specific evidence information depending on the evidence type. - oneof value { - // List of websites linked with this resource. - WebsiteList website_list = 3; - - // List of evidence found in the text of a resource. - TextList text_list = 4; - - // The language the resource was detected to be written in. - // This is an IETF language tag such as "en-US". - string language_code = 9; - - // The text in the destination of the resource that is causing a policy - // finding. - DestinationTextList destination_text_list = 6; - - // Mismatch between the destinations of a resource's URLs. - DestinationMismatch destination_mismatch = 7; - - // Details when the destination is returning an HTTP error code or isn't - // functional in all locations for commonly used devices. - DestinationNotWorking destination_not_working = 8; - } -} - -// Describes the effect on serving that a policy topic entry will have. -message PolicyTopicConstraint { - // A list of countries where a resource's serving is constrained. - message CountryConstraintList { - // Total number of countries targeted by the resource. - optional int32 total_targeted_countries = 3; - - // Countries in which serving is restricted. - repeated CountryConstraint countries = 2; - } - - // Indicates that a policy topic was constrained due to disapproval of the - // website for reseller purposes. - message ResellerConstraint { - - } - - // Indicates that a resource's ability to serve in a particular country is - // constrained. - message CountryConstraint { - // Geo target constant resource name of the country in which serving is - // constrained. - optional string country_criterion = 2; - } - - // Specific information about the constraint. - oneof value { - // Countries where the resource cannot serve. - CountryConstraintList country_constraint_list = 1; - - // Reseller constraint. - ResellerConstraint reseller_constraint = 2; - - // Countries where a certificate is required for serving. - CountryConstraintList certificate_missing_in_country_list = 3; - - // Countries where the resource's domain is not covered by the - // certificates associated with it. - CountryConstraintList certificate_domain_mismatch_in_country_list = 4; - } -} diff --git a/google/ads/googleads/v8/common/real_time_bidding_setting.proto b/google/ads/googleads/v8/common/real_time_bidding_setting.proto deleted file mode 100644 index 54bc10bab..000000000 --- a/google/ads/googleads/v8/common/real_time_bidding_setting.proto +++ /dev/null @@ -1,37 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "RealTimeBiddingSettingProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing RealTimeBiddingSetting - -// Settings for Real-Time Bidding, a feature only available for campaigns -// targeting the Ad Exchange network. -message RealTimeBiddingSetting { - // Whether the campaign is opted in to real-time bidding. - optional bool opt_in = 2; -} diff --git a/google/ads/googleads/v8/common/segments.proto b/google/ads/googleads/v8/common/segments.proto deleted file mode 100644 index b29f43985..000000000 --- a/google/ads/googleads/v8/common/segments.proto +++ /dev/null @@ -1,369 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/enums/ad_destination_type.proto"; -import "google/ads/googleads/v8/enums/ad_network_type.proto"; -import "google/ads/googleads/v8/enums/budget_campaign_association_status.proto"; -import "google/ads/googleads/v8/enums/click_type.proto"; -import "google/ads/googleads/v8/enums/conversion_action_category.proto"; -import "google/ads/googleads/v8/enums/conversion_attribution_event_type.proto"; -import "google/ads/googleads/v8/enums/conversion_lag_bucket.proto"; -import "google/ads/googleads/v8/enums/conversion_or_adjustment_lag_bucket.proto"; -import "google/ads/googleads/v8/enums/conversion_value_rule_primary_dimension.proto"; -import "google/ads/googleads/v8/enums/day_of_week.proto"; -import "google/ads/googleads/v8/enums/device.proto"; -import "google/ads/googleads/v8/enums/external_conversion_source.proto"; -import "google/ads/googleads/v8/enums/hotel_date_selection_type.proto"; -import "google/ads/googleads/v8/enums/hotel_price_bucket.proto"; -import "google/ads/googleads/v8/enums/hotel_rate_type.proto"; -import "google/ads/googleads/v8/enums/month_of_year.proto"; -import "google/ads/googleads/v8/enums/placeholder_type.proto"; -import "google/ads/googleads/v8/enums/product_channel.proto"; -import "google/ads/googleads/v8/enums/product_channel_exclusivity.proto"; -import "google/ads/googleads/v8/enums/product_condition.proto"; -import "google/ads/googleads/v8/enums/recommendation_type.proto"; -import "google/ads/googleads/v8/enums/search_engine_results_page_type.proto"; -import "google/ads/googleads/v8/enums/search_term_match_type.proto"; -import "google/ads/googleads/v8/enums/slot.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "SegmentsProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing segment only fields. - -// Segment only fields. -message Segments { - // Ad Destination type. - google.ads.googleads.v8.enums.AdDestinationTypeEnum.AdDestinationType ad_destination_type = 136; - - // Ad network type. - google.ads.googleads.v8.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3; - - // Budget campaign association status. - BudgetCampaignAssociationStatus budget_campaign_association_status = 134; - - // Click type. - google.ads.googleads.v8.enums.ClickTypeEnum.ClickType click_type = 26; - - // Resource name of the conversion action. - optional string conversion_action = 113; - - // Conversion action category. - google.ads.googleads.v8.enums.ConversionActionCategoryEnum.ConversionActionCategory conversion_action_category = 53; - - // Conversion action name. - optional string conversion_action_name = 114; - - // This segments your conversion columns by the original conversion and - // conversion value vs. the delta if conversions were adjusted. False row has - // the data as originally stated; While true row has the delta between data - // now and the data as originally stated. Summing the two together results - // post-adjustment data. - optional bool conversion_adjustment = 115; - - // Conversion attribution event type. - google.ads.googleads.v8.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.v8.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.v8.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket conversion_or_adjustment_lag_bucket = 51; - - // Date to which metrics apply. - // yyyy-MM-dd format, e.g., 2018-04-17. - optional string date = 79; - - // Day of the week, e.g., MONDAY. - google.ads.googleads.v8.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; - - // Device to which metrics apply. - google.ads.googleads.v8.enums.DeviceEnum.Device device = 1; - - // External conversion source. - google.ads.googleads.v8.enums.ExternalConversionSourceEnum.ExternalConversionSource external_conversion_source = 55; - - // Resource name of the geo target constant that represents an airport. - optional string geo_target_airport = 116; - - // Resource name of the geo target constant that represents a canton. - optional string geo_target_canton = 117; - - // Resource name of the geo target constant that represents a city. - optional string geo_target_city = 118; - - // Resource name of the geo target constant that represents a country. - optional string geo_target_country = 119; - - // Resource name of the geo target constant that represents a county. - optional string geo_target_county = 120; - - // Resource name of the geo target constant that represents a district. - optional string geo_target_district = 121; - - // Resource name of the geo target constant that represents a metro. - optional string geo_target_metro = 122; - - // Resource name of the geo target constant that represents the most - // specific location. - optional string geo_target_most_specific_location = 123; - - // Resource name of the geo target constant that represents a postal code. - optional string geo_target_postal_code = 124; - - // Resource name of the geo target constant that represents a province. - optional string geo_target_province = 125; - - // Resource name of the geo target constant that represents a region. - optional string geo_target_region = 126; - - // Resource name of the geo target constant that represents a state. - optional string geo_target_state = 127; - - // Hotel booking window in days. - optional int64 hotel_booking_window_days = 135; - - // Hotel center ID. - optional int64 hotel_center_id = 80; - - // Hotel check-in date. Formatted as yyyy-MM-dd. - optional string hotel_check_in_date = 81; - - // Hotel check-in day of week. - google.ads.googleads.v8.enums.DayOfWeekEnum.DayOfWeek hotel_check_in_day_of_week = 9; - - // Hotel city. - optional string hotel_city = 82; - - // Hotel class. - optional int32 hotel_class = 83; - - // Hotel country. - optional string hotel_country = 84; - - // Hotel date selection type. - google.ads.googleads.v8.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType hotel_date_selection_type = 13; - - // Hotel length of stay. - optional int32 hotel_length_of_stay = 85; - - // Hotel rate rule ID. - optional string hotel_rate_rule_id = 86; - - // Hotel rate type. - google.ads.googleads.v8.enums.HotelRateTypeEnum.HotelRateType hotel_rate_type = 74; - - // Hotel price bucket. - google.ads.googleads.v8.enums.HotelPriceBucketEnum.HotelPriceBucket hotel_price_bucket = 78; - - // Hotel state. - optional string hotel_state = 87; - - // Hour of day as a number between 0 and 23, inclusive. - optional int32 hour = 88; - - // Only used with feed item metrics. - // Indicates whether the interaction metrics occurred on the feed item itself - // or a different extension or ad unit. - optional bool interaction_on_this_extension = 89; - - // Keyword criterion. - Keyword keyword = 61; - - // Month as represented by the date of the first day of a month. Formatted as - // yyyy-MM-dd. - optional string month = 90; - - // Month of the year, e.g., January. - google.ads.googleads.v8.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.v8.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; - - // Bidding category (level 2) of the product. - optional string product_bidding_category_level2 = 93; - - // Bidding category (level 3) of the product. - optional string product_bidding_category_level3 = 94; - - // Bidding category (level 4) of the product. - optional string product_bidding_category_level4 = 95; - - // Bidding category (level 5) of the product. - optional string product_bidding_category_level5 = 96; - - // Brand of the product. - optional string product_brand = 97; - - // Channel of the product. - google.ads.googleads.v8.enums.ProductChannelEnum.ProductChannel product_channel = 30; - - // Channel exclusivity of the product. - google.ads.googleads.v8.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity product_channel_exclusivity = 31; - - // Condition of the product. - google.ads.googleads.v8.enums.ProductConditionEnum.ProductCondition product_condition = 32; - - // Resource name of the geo target constant for the country of sale of the - // product. - optional string product_country = 98; - - // Custom attribute 0 of the product. - optional string product_custom_attribute0 = 99; - - // Custom attribute 1 of the product. - optional string product_custom_attribute1 = 100; - - // Custom attribute 2 of the product. - optional string product_custom_attribute2 = 101; - - // Custom attribute 3 of the product. - optional string product_custom_attribute3 = 102; - - // Custom attribute 4 of the product. - optional string product_custom_attribute4 = 103; - - // Item ID of the product. - optional string product_item_id = 104; - - // Resource name of the language constant for the language of the product. - optional string product_language = 105; - - // Merchant ID of the product. - optional int64 product_merchant_id = 133; - - // Store ID of the product. - optional string product_store_id = 106; - - // Title of the product. - optional string product_title = 107; - - // Type (level 1) of the product. - optional string product_type_l1 = 108; - - // Type (level 2) of the product. - optional string product_type_l2 = 109; - - // Type (level 3) of the product. - optional string product_type_l3 = 110; - - // Type (level 4) of the product. - optional string product_type_l4 = 111; - - // Type (level 5) of the product. - optional string product_type_l5 = 112; - - // Quarter as represented by the date of the first day of a quarter. - // Uses the calendar year for quarters, e.g., the second quarter of 2018 - // starts on 2018-04-01. Formatted as yyyy-MM-dd. - optional string quarter = 128; - - // Recommendation type. - google.ads.googleads.v8.enums.RecommendationTypeEnum.RecommendationType recommendation_type = 140; - - // Type of the search engine results page. - google.ads.googleads.v8.enums.SearchEngineResultsPageTypeEnum.SearchEngineResultsPageType search_engine_results_page_type = 70; - - // Match type of the keyword that triggered the ad, including variants. - google.ads.googleads.v8.enums.SearchTermMatchTypeEnum.SearchTermMatchType search_term_match_type = 22; - - // Position of the ad. - google.ads.googleads.v8.enums.SlotEnum.Slot slot = 23; - - // Primary dimension of applied conversion value rules. - // NO_RULE_APPLIED shows the total recorded value of conversions that - // do not have a value rule applied. - // ORIGINAL shows the original value of conversions to which a value rule - // has been applied. - // GEO_LOCATION, DEVICE, AUDIENCE show the net adjustment after value - // rules were applied. - google.ads.googleads.v8.enums.ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension conversion_value_rule_primary_dimension = 138; - - // Resource name of the ad group criterion that represents webpage criterion. - optional string webpage = 129; - - // Week as defined as Monday through Sunday, and represented by the date of - // Monday. Formatted as yyyy-MM-dd. - optional string week = 130; - - // Year, formatted as yyyy. - optional int32 year = 131; - - // iOS Store Kit Ad Network conversion value. - // Null value means this segment is not applicable, e.g. non-iOS campaign. - optional int64 sk_ad_network_conversion_value = 137; - - // 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. - // Interactions (e.g. clicks) are counted across all the parts of the served - // ad (e.g. Ad itself and other components like Sitelinks) when they are - // served together. When interaction_on_this_asset is true, it means the - // interactions are on this specific asset and when interaction_on_this_asset - // is false, it means the interactions is not on this specific asset but on - // other parts of the served ad this asset is served with. - optional AssetInteractionTarget asset_interaction_target = 139; -} - -// A Keyword criterion segment. -message Keyword { - // The AdGroupCriterion resource name. - optional string ad_group_criterion = 3; - - // Keyword info. - KeywordInfo info = 2; -} - -// A BudgetCampaignAssociationStatus segment. -message BudgetCampaignAssociationStatus { - // The campaign resource name. - optional string campaign = 1; - - // Budget campaign association status. - google.ads.googleads.v8.enums.BudgetCampaignAssociationStatusEnum.BudgetCampaignAssociationStatus status = 2; -} - -// An AssetInteractionTarget segment. -message AssetInteractionTarget { - // The asset resource name. - string asset = 1; - - // 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. - bool interaction_on_this_asset = 2; -} diff --git a/google/ads/googleads/v8/common/simulation.proto b/google/ads/googleads/v8/common/simulation.proto deleted file mode 100644 index 90b3c6974..000000000 --- a/google/ads/googleads/v8/common/simulation.proto +++ /dev/null @@ -1,358 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "SimulationProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing simulation points. - -// A container for simulation points for simulations of type BID_MODIFIER. -message BidModifierSimulationPointList { - // Projected metrics for a series of bid modifier amounts. - repeated BidModifierSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type CPC_BID. -message CpcBidSimulationPointList { - // Projected metrics for a series of CPC bid amounts. - repeated CpcBidSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type CPV_BID. -message CpvBidSimulationPointList { - // Projected metrics for a series of CPV bid amounts. - repeated CpvBidSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type TARGET_CPA. -message TargetCpaSimulationPointList { - // Projected metrics for a series of target CPA amounts. - repeated TargetCpaSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type TARGET_ROAS. -message TargetRoasSimulationPointList { - // Projected metrics for a series of target ROAS amounts. - repeated TargetRoasSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type PERCENT_CPC_BID. -message PercentCpcBidSimulationPointList { - // Projected metrics for a series of percent CPC bid amounts. - repeated PercentCpcBidSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type BUDGET. -message BudgetSimulationPointList { - // Projected metrics for a series of budget amounts. - repeated BudgetSimulationPoint points = 1; -} - -// A container for simulation points for simulations of type -// TARGET_IMPRESSION_SHARE. -message TargetImpressionShareSimulationPointList { - // Projected metrics for a specific target impression share value. - repeated TargetImpressionShareSimulationPoint points = 1; -} - -// Projected metrics for a specific bid modifier amount. -message BidModifierSimulationPoint { - // The simulated bid modifier upon which projected metrics are based. - optional double bid_modifier = 15; - - // Projected number of biddable conversions. - // Only search advertising channel type supports this field. - optional double biddable_conversions = 16; - - // Projected total value of biddable conversions. - // Only search advertising channel type supports this field. - optional double biddable_conversions_value = 17; - - // Projected number of clicks. - optional int64 clicks = 18; - - // Projected cost in micros. - optional int64 cost_micros = 19; - - // Projected number of impressions. - optional int64 impressions = 20; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - optional int64 top_slot_impressions = 21; - - // Projected number of biddable conversions for the parent resource. - // Only search advertising channel type supports this field. - optional double parent_biddable_conversions = 22; - - // Projected total value of biddable conversions for the parent resource. - // Only search advertising channel type supports this field. - optional double parent_biddable_conversions_value = 23; - - // Projected number of clicks for the parent resource. - optional int64 parent_clicks = 24; - - // Projected cost in micros for the parent resource. - optional int64 parent_cost_micros = 25; - - // Projected number of impressions for the parent resource. - optional int64 parent_impressions = 26; - - // Projected number of top slot impressions for the parent resource. - // Only search advertising channel type supports this field. - optional int64 parent_top_slot_impressions = 27; - - // Projected minimum daily budget that must be available to the parent - // resource to realize this simulation. - optional int64 parent_required_budget_micros = 28; -} - -// Projected metrics for a specific CPC bid amount. -message CpcBidSimulationPoint { - // Projected required daily budget that the advertiser must set in order to - // receive the estimated traffic, in micros of advertiser currency. - int64 required_budget_amount_micros = 17; - - // Projected number of biddable conversions. - optional double biddable_conversions = 9; - - // Projected total value of biddable conversions. - optional double biddable_conversions_value = 10; - - // Projected number of clicks. - optional int64 clicks = 11; - - // Projected cost in micros. - optional int64 cost_micros = 12; - - // Projected number of impressions. - optional int64 impressions = 13; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - optional int64 top_slot_impressions = 14; - - // When SimulationModificationMethod = UNIFORM or DEFAULT, - // cpc_bid_micros is set. - // When SimulationModificationMethod = SCALING, - // cpc_bid_scaling_modifier is set. - oneof cpc_simulation_key_value { - // The simulated CPC bid upon which projected metrics are based. - int64 cpc_bid_micros = 15; - - // The simulated scaling modifier upon which projected metrics are based. - // All CPC bids relevant to the simulated entity are scaled by this - // modifier. - double cpc_bid_scaling_modifier = 16; - } -} - -// Projected metrics for a specific CPV bid amount. -message CpvBidSimulationPoint { - // The simulated CPV bid upon which projected metrics are based. - optional int64 cpv_bid_micros = 5; - - // Projected cost in micros. - optional int64 cost_micros = 6; - - // Projected number of impressions. - optional int64 impressions = 7; - - // Projected number of views. - optional int64 views = 8; -} - -// Projected metrics for a specific target CPA amount. -message TargetCpaSimulationPoint { - // Projected required daily budget that the advertiser must set in order to - // receive the estimated traffic, in micros of advertiser currency. - int64 required_budget_amount_micros = 19; - - // Projected number of biddable conversions. - optional double biddable_conversions = 9; - - // Projected total value of biddable conversions. - optional double biddable_conversions_value = 10; - - // Projected number of app installs. - double app_installs = 15; - - // Projected number of in-app actions. - double in_app_actions = 16; - - // Projected number of clicks. - optional int64 clicks = 11; - - // Projected cost in micros. - optional int64 cost_micros = 12; - - // Projected number of impressions. - optional int64 impressions = 13; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - optional int64 top_slot_impressions = 14; - - // When SimulationModificationMethod = UNIFORM or DEFAULT, - // target_cpa_micros is set. - // When SimulationModificationMethod = SCALING, - // target_cpa_scaling_modifier is set. - oneof target_cpa_simulation_key_value { - // The simulated target CPA upon which projected metrics are based. - int64 target_cpa_micros = 17; - - // The simulated scaling modifier upon which projected metrics are based. - // All CPA targets relevant to the simulated entity are scaled by this - // modifier. - double target_cpa_scaling_modifier = 18; - } -} - -// Projected metrics for a specific target ROAS amount. -message TargetRoasSimulationPoint { - // The simulated target ROAS upon which projected metrics are based. - optional double target_roas = 8; - - // Projected required daily budget that the advertiser must set in order to - // receive the estimated traffic, in micros of advertiser currency. - int64 required_budget_amount_micros = 15; - - // Projected number of biddable conversions. - optional double biddable_conversions = 9; - - // Projected total value of biddable conversions. - optional double biddable_conversions_value = 10; - - // Projected number of clicks. - optional int64 clicks = 11; - - // Projected cost in micros. - optional int64 cost_micros = 12; - - // Projected number of impressions. - optional int64 impressions = 13; - - // Projected number of top slot impressions. - // Only Search advertising channel type supports this field. - optional int64 top_slot_impressions = 14; -} - -// Projected metrics for a specific percent CPC amount. Only Hotel advertising -// channel type supports this field. -message PercentCpcBidSimulationPoint { - // The simulated percent CPC upon which projected metrics are based. Percent - // CPC expressed as fraction of the advertised price for some good or service. - // The value stored here is 1,000,000 * [fraction]. - optional int64 percent_cpc_bid_micros = 1; - - // Projected number of biddable conversions. - optional double biddable_conversions = 2; - - // Projected total value of biddable conversions in local currency. - optional double biddable_conversions_value = 3; - - // Projected number of clicks. - optional int64 clicks = 4; - - // Projected cost in micros. - optional int64 cost_micros = 5; - - // Projected number of impressions. - optional int64 impressions = 6; - - // Projected number of top slot impressions. - optional int64 top_slot_impressions = 7; -} - -// Projected metrics for a specific budget amount. -message BudgetSimulationPoint { - // The simulated budget upon which projected metrics are based. - int64 budget_amount_micros = 1; - - // Projected required daily cpc bid ceiling that the advertiser must set to - // realize this simulation, in micros of the advertiser currency. - // Only campaigns with the Target Spend bidding strategy support this field. - int64 required_cpc_bid_ceiling_micros = 2; - - // Projected number of biddable conversions. - double biddable_conversions = 3; - - // Projected total value of biddable conversions. - double biddable_conversions_value = 4; - - // Projected number of clicks. - int64 clicks = 5; - - // Projected cost in micros. - int64 cost_micros = 6; - - // Projected number of impressions. - int64 impressions = 7; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - int64 top_slot_impressions = 8; -} - -// Projected metrics for a specific target impression share value. -message TargetImpressionShareSimulationPoint { - // The simulated target impression share value (in micros) upon which - // projected metrics are based. - // E.g. 10% impression share, which is equal to 0.1, is stored as 100_000. - // This value is validated and will not exceed 1M (100%). - int64 target_impression_share_micros = 1; - - // Projected required daily cpc bid ceiling that the advertiser must set to - // realize this simulation, in micros of the advertiser currency. - int64 required_cpc_bid_ceiling_micros = 2; - - // Projected required daily budget that the advertiser must set in order to - // receive the estimated traffic, in micros of advertiser currency. - int64 required_budget_amount_micros = 3; - - // Projected number of biddable conversions. - double biddable_conversions = 4; - - // Projected total value of biddable conversions. - double biddable_conversions_value = 5; - - // Projected number of clicks. - int64 clicks = 6; - - // Projected cost in micros. - int64 cost_micros = 7; - - // Projected number of impressions. - int64 impressions = 8; - - // Projected number of top slot impressions. - // Only search advertising channel type supports this field. - int64 top_slot_impressions = 9; - - // Projected number of absolute top impressions. - // Only search advertising channel type supports this field. - int64 absolute_top_impressions = 10; -} diff --git a/google/ads/googleads/v8/common/tag_snippet.proto b/google/ads/googleads/v8/common/tag_snippet.proto deleted file mode 100644 index 544567754..000000000 --- a/google/ads/googleads/v8/common/tag_snippet.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/tracking_code_page_format.proto"; -import "google/ads/googleads/v8/enums/tracking_code_type.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "TagSnippetProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::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.v8.enums.TrackingCodeTypeEnum.TrackingCodeType type = 1; - - // The format of the web page where the tracking tag and snippet will be - // installed, e.g. HTML. - google.ads.googleads.v8.enums.TrackingCodePageFormatEnum.TrackingCodePageFormat page_format = 2; - - // The site tag that adds visitors to your basic remarketing lists and sets - // new cookies on your domain. - optional string global_site_tag = 5; - - // The event snippet that works with the site tag to track actions that - // should be counted as conversions. - optional string event_snippet = 6; -} diff --git a/google/ads/googleads/v8/common/targeting_setting.proto b/google/ads/googleads/v8/common/targeting_setting.proto deleted file mode 100644 index a0b2097f3..000000000 --- a/google/ads/googleads/v8/common/targeting_setting.proto +++ /dev/null @@ -1,85 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/targeting_dimension.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "TargetingSettingProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing TargetingSetting - -// Settings for the targeting-related features, at the campaign and ad group -// levels. For more details about the targeting setting, visit -// https://support.google.com/google-ads/answer/7365594 -message TargetingSetting { - // The per-targeting-dimension setting to restrict the reach of your campaign - // or ad group. - repeated TargetRestriction target_restrictions = 1; - - // The list of operations changing the target restrictions. - // - // Adding a target restriction with a targeting dimension that already exists - // causes the existing target restriction to be replaced with the new value. - repeated TargetRestrictionOperation target_restriction_operations = 2; -} - -// The list of per-targeting-dimension targeting settings. -message TargetRestriction { - // The targeting dimension that these settings apply to. - google.ads.googleads.v8.enums.TargetingDimensionEnum.TargetingDimension targeting_dimension = 1; - - // Indicates whether to restrict your ads to show only for the criteria you - // have selected for this targeting_dimension, or to target all values for - // this targeting_dimension and show ads based on your targeting in other - // TargetingDimensions. A value of `true` means that these criteria will only - // apply bid modifiers, and not affect targeting. A value of `false` means - // that these criteria will restrict targeting as well as applying bid - // modifiers. - optional bool bid_only = 3; -} - -// Operation to be performed on a target restriction list in a mutate. -message TargetRestrictionOperation { - // The operator. - enum Operator { - // Unspecified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Add the restriction to the existing restrictions. - ADD = 2; - - // Remove the restriction from the existing restrictions. - REMOVE = 3; - } - - // Type of list operation to perform. - Operator operator = 1; - - // The target restriction being added to or removed from the list. - TargetRestriction value = 2; -} diff --git a/google/ads/googleads/v8/common/text_label.proto b/google/ads/googleads/v8/common/text_label.proto deleted file mode 100644 index bcfeef81a..000000000 --- a/google/ads/googleads/v8/common/text_label.proto +++ /dev/null @@ -1,40 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "TextLabelProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// A type of label displaying text on a colored background. -message TextLabel { - // Background color of the label in RGB format. This string must match the - // regular expression '^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'. - // Note: The background color may not be visible for manager accounts. - optional string background_color = 3; - - // A short description of the label. The length must be no more than 200 - // characters. - optional string description = 4; -} diff --git a/google/ads/googleads/v8/common/url_collection.proto b/google/ads/googleads/v8/common/url_collection.proto deleted file mode 100644 index fe2b2b94b..000000000 --- a/google/ads/googleads/v8/common/url_collection.proto +++ /dev/null @@ -1,45 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "UrlCollectionProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file UrlCollection type. - -// Collection of urls that is tagged with a unique identifier. -message UrlCollection { - // Unique identifier for this UrlCollection instance. - optional string url_collection_id = 5; - - // A list of possible final URLs. - repeated string final_urls = 6; - - // A list of possible final mobile URLs. - repeated string final_mobile_urls = 7; - - // URL template for constructing a tracking URL. - optional string tracking_url_template = 8; -} diff --git a/google/ads/googleads/v8/common/user_lists.proto b/google/ads/googleads/v8/common/user_lists.proto deleted file mode 100644 index b2097e55e..000000000 --- a/google/ads/googleads/v8/common/user_lists.proto +++ /dev/null @@ -1,291 +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 google.ads.googleads.v8.common; - -import "google/ads/googleads/v8/enums/customer_match_upload_key_type.proto"; -import "google/ads/googleads/v8/enums/user_list_combined_rule_operator.proto"; -import "google/ads/googleads/v8/enums/user_list_crm_data_source_type.proto"; -import "google/ads/googleads/v8/enums/user_list_date_rule_item_operator.proto"; -import "google/ads/googleads/v8/enums/user_list_logical_rule_operator.proto"; -import "google/ads/googleads/v8/enums/user_list_number_rule_item_operator.proto"; -import "google/ads/googleads/v8/enums/user_list_prepopulation_status.proto"; -import "google/ads/googleads/v8/enums/user_list_rule_type.proto"; -import "google/ads/googleads/v8/enums/user_list_string_rule_item_operator.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "UserListsProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing user list types. - -// 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 { - // Seed UserList from which this list is derived. - optional string seed_user_list = 2; -} - -// UserList of CRM users provided by the advertiser. -message CrmBasedUserListInfo { - // A string that uniquely identifies a mobile application from which the data - // was collected. - // For iOS, the ID string is the 9 digit string that appears at the end of an - // App Store URL (e.g., "476943146" for "Flood-It! 2" whose App Store link is - // http://itunes.apple.com/us/app/flood-it!-2/id476943146). - // For Android, the ID string is the application's package name - // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link - // https://play.google.com/store/apps/details?id=com.labpixies.colordrips). - // Required when creating CrmBasedUserList for uploading mobile advertising - // IDs. - optional string app_id = 4; - - // 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.v8.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.v8.enums.UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType data_source_type = 3; -} - -// A client defined rule based on custom parameters sent by web sites or -// uploaded by the advertiser. -message UserListRuleInfo { - // Rule type is used to determine how to group rule items. - // - // The default is OR of ANDs (disjunctive normal form). - // That is, rule items will be ANDed together within rule item groups and the - // groups themselves will be ORed together. - // - // Currently AND of ORs (conjunctive normal form) is only supported for - // ExpressionRuleUserList. - google.ads.googleads.v8.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1; - - // List of rule item groups that defines this rule. - // Rule item groups are grouped together based on rule_type. - repeated UserListRuleItemGroupInfo rule_item_groups = 2; -} - -// A group of rule items. -message UserListRuleItemGroupInfo { - // Rule items that will be grouped together based on rule_type. - repeated UserListRuleItemInfo rule_items = 1; -} - -// An atomic rule item. -message UserListRuleItemInfo { - // Rule variable name. It should match the corresponding key name fired - // by the pixel. - // A name must begin with US-ascii letters or underscore or UTF8 code that is - // greater than 127 and consist of US-ascii letters or digits or underscore or - // UTF8 code that is greater than 127. - // For websites, there are two built-in variable URL (name = 'url__') and - // referrer URL (name = 'ref_url__'). - // This field must be populated when creating a new rule item. - optional string name = 5; - - // An atomic rule item. - oneof rule_item { - // An atomic rule item composed of a number operation. - UserListNumberRuleItemInfo number_rule_item = 2; - - // An atomic rule item composed of a string operation. - UserListStringRuleItemInfo string_rule_item = 3; - - // An atomic rule item composed of a date operation. - UserListDateRuleItemInfo date_rule_item = 4; - } -} - -// A rule item composed of a date operation. -message UserListDateRuleItemInfo { - // Date comparison operator. - // This field is required and must be populated when creating new date - // rule item. - google.ads.googleads.v8.enums.UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator = 1; - - // String representing date value to be compared with the rule variable. - // Supported date format is YYYY-MM-DD. - // Times are reported in the customer's time zone. - optional string value = 4; - - // The relative date value of the right hand side denoted by number of days - // offset from now. The value field will override this field when both are - // present. - optional int64 offset_in_days = 5; -} - -// A rule item composed of a number operation. -message UserListNumberRuleItemInfo { - // Number comparison operator. - // This field is required and must be populated when creating a new number - // rule item. - google.ads.googleads.v8.enums.UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator = 1; - - // Number value to be compared with the variable. - // This field is required and must be populated when creating a new number - // rule item. - optional double value = 3; -} - -// A rule item composed of a string operation. -message UserListStringRuleItemInfo { - // String comparison operator. - // This field is required and must be populated when creating a new string - // rule item. - google.ads.googleads.v8.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator operator = 1; - - // The right hand side of the string rule item. For URLs or referrer URLs, - // the value can not contain illegal URL chars such as newlines, quotes, - // tabs, or parentheses. This field is required and must be populated when - // creating a new string rule item. - optional string value = 3; -} - -// User lists defined by combining two rules, left operand and right operand. -// There are two operators: AND where left operand and right operand have to be -// true; AND_NOT where left operand is true but right operand is false. -message CombinedRuleUserListInfo { - // Left operand of the combined rule. - // This field is required and must be populated when creating new combined - // rule based user list. - UserListRuleInfo left_operand = 1; - - // Right operand of the combined rule. - // This field is required and must be populated when creating new combined - // rule based user list. - UserListRuleInfo right_operand = 2; - - // Operator to connect the two operands. - // - // Required for creating a combined rule user list. - google.ads.googleads.v8.enums.UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator rule_operator = 3; -} - -// Visitors of a page during specific dates. -message DateSpecificRuleUserListInfo { - // Boolean rule that defines visitor of a page. - // - // Required for creating a date specific rule user list. - UserListRuleInfo rule = 1; - - // Start date of users visit. If set to 2000-01-01, then the list includes all - // users before end_date. The date's format should be YYYY-MM-DD. - // - // Required for creating a data specific rule user list. - optional string start_date = 4; - - // Last date of users visit. If set to 2037-12-30, then the list includes all - // users after start_date. The date's format should be YYYY-MM-DD. - // - // Required for creating a data specific rule user list. - optional string end_date = 5; -} - -// Visitors of a page. The page visit is defined by one boolean rule expression. -message ExpressionRuleUserListInfo { - // Boolean rule that defines this user list. The rule consists of a list of - // rule item groups and each rule item group consists of a list of rule items. - // All the rule item groups are ORed or ANDed together for evaluation based on - // rule.rule_type. - // - // Required for creating an expression rule user list. - UserListRuleInfo rule = 1; -} - -// Representation of a userlist that is generated by a rule. -message RuleBasedUserListInfo { - // The status of pre-population. The field is default to NONE if not set which - // means the previous users will not be considered. If set to REQUESTED, past - // site visitors or app users who match the list definition will be included - // in the list (works on the Display Network only). This will only - // add past users from within the last 30 days, depending on the - // 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.v8.enums.UserListPrepopulationStatusEnum.UserListPrepopulationStatus prepopulation_status = 1; - - // Subtypes of rule based user lists. - oneof rule_based_user_list { - // User lists defined by combining two rules. - // There are two operators: AND, where the left and right operands have to - // be true; AND_NOT where left operand is true but right operand is false. - CombinedRuleUserListInfo combined_rule_user_list = 2; - - // Visitors of a page during specific dates. The visiting periods are - // defined as follows: - // Between start_date (inclusive) and end_date (inclusive); - // Before end_date (exclusive) with start_date = 2000-01-01; - // After start_date (exclusive) with end_date = 2037-12-30. - DateSpecificRuleUserListInfo date_specific_rule_user_list = 3; - - // Visitors of a page. The page visit is defined by one boolean rule - // expression. - ExpressionRuleUserListInfo expression_rule_user_list = 4; - } -} - -// Represents a user list that is a custom combination of user lists. -message LogicalUserListInfo { - // Logical list rules that define this user list. The rules are defined as a - // logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are - // ANDed when they are evaluated. - // - // Required for creating a logical user list. - repeated UserListLogicalRuleInfo rules = 1; -} - -// A user list logical rule. A rule has a logical operator (and/or/not) and a -// list of user lists as operands. -message UserListLogicalRuleInfo { - // The logical operator of the rule. - google.ads.googleads.v8.enums.UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator operator = 1; - - // The list of operands of the rule. - repeated LogicalUserListOperandInfo rule_operands = 2; -} - -// Operand of logical user list that consists of a user list. -message LogicalUserListOperandInfo { - // Resource name of a user list as an operand. - optional string user_list = 2; -} - -// User list targeting as a collection of conversions or remarketing actions. -message BasicUserListInfo { - // Actions associated with this user list. - repeated UserListActionInfo actions = 1; -} - -// Represents an action type used for building remarketing user lists. -message UserListActionInfo { - // Subtypes of user list action. - oneof user_list_action { - // A conversion action that's not generated from remarketing. - string conversion_action = 3; - - // A remarketing action. - string remarketing_action = 4; - } -} diff --git a/google/ads/googleads/v8/common/value.proto b/google/ads/googleads/v8/common/value.proto deleted file mode 100644 index b82dcc6fb..000000000 --- a/google/ads/googleads/v8/common/value.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.common; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/common;common"; -option java_multiple_files = true; -option java_outer_classname = "ValueProto"; -option java_package = "com.google.ads.googleads.v8.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V8::Common"; - -// Proto file describing value types. - -// A generic data container. -message Value { - // A value. - oneof value { - // A boolean. - bool boolean_value = 1; - - // An int64. - int64 int64_value = 2; - - // A float. - float float_value = 3; - - // A double. - double double_value = 4; - - // A string. - string string_value = 5; - } -} diff --git a/google/ads/googleads/v8/enums/BUILD.bazel b/google/ads/googleads/v8/enums/BUILD.bazel deleted file mode 100644 index 422fc227c..000000000 --- a/google/ads/googleads/v8/enums/BUILD.bazel +++ /dev/null @@ -1,89 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports subpackages. -proto_library( - name = "enums_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/api:annotations_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", -) - -java_proto_library( - name = "enums_java_proto", - deps = [":enums_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_proto_library", -) - -csharp_proto_library( - name = "enums_csharp_proto", - deps = [":enums_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_proto_library", -) - -ruby_proto_library( - name = "enums_ruby_proto", - deps = [":enums_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_proto_library", -) - -py_proto_library( - name = "enums_py_proto", - deps = [":enums_proto"], -) diff --git a/google/ads/googleads/v8/enums/access_invitation_status.proto b/google/ads/googleads/v8/enums/access_invitation_status.proto deleted file mode 100644 index a11fbc605..000000000 --- a/google/ads/googleads/v8/enums/access_invitation_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccessInvitationStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing AccessInvitationStatus enum. - -// Container for enum for identifying the status of access invitation -message AccessInvitationStatusEnum { - // Possible access invitation status of a user - enum AccessInvitationStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The initial state of an invitation, before being acted upon by anyone. - PENDING = 2; - - // Invitation process was terminated by the email recipient. No new user was - // created. - DECLINED = 3; - - // Invitation URLs expired without being acted upon. No new user can be - // created. Invitations expire 20 days after creation. - EXPIRED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/access_reason.proto b/google/ads/googleads/v8/enums/access_reason.proto deleted file mode 100644 index 51933b85d..000000000 --- a/google/ads/googleads/v8/enums/access_reason.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccessReasonProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Indicates the way the resource such as user list is related to a user. -message AccessReasonEnum { - // Enum describing possible access reasons. - enum AccessReason { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The resource is owned by the user. - OWNED = 2; - - // The resource is shared to the user. - SHARED = 3; - - // The resource is licensed to the user. - LICENSED = 4; - - // The user subscribed to the resource. - SUBSCRIBED = 5; - - // The resource is accessible to the user. - AFFILIATED = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/access_role.proto b/google/ads/googleads/v8/enums/access_role.proto deleted file mode 100644 index e1d5ad180..000000000 --- a/google/ads/googleads/v8/enums/access_role.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccessRoleProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing possible access role for user. -message AccessRoleEnum { - // Possible access role of a user. - enum AccessRole { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Owns its account and can control the addition of other users. - ADMIN = 2; - - // Can modify campaigns, but can't affect other users. - STANDARD = 3; - - // Can view campaigns and account changes, but cannot make edits. - READ_ONLY = 4; - - // Role for \"email only\" access. Represents an email recipient rather than - // a true User entity. - EMAIL_ONLY = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/account_budget_proposal_status.proto b/google/ads/googleads/v8/enums/account_budget_proposal_status.proto deleted file mode 100644 index db62296f1..000000000 --- a/google/ads/googleads/v8/enums/account_budget_proposal_status.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing AccountBudgetProposal statuses. - -// Message describing AccountBudgetProposal statuses. -message AccountBudgetProposalStatusEnum { - // The possible statuses of an AccountBudgetProposal. - enum AccountBudgetProposalStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The proposal is pending approval. - PENDING = 2; - - // The proposal has been approved but the corresponding billing setup - // has not. This can occur for proposals that set up the first budget - // when signing up for billing or when performing a change of bill-to - // operation. - APPROVED_HELD = 3; - - // The proposal has been approved. - APPROVED = 4; - - // The proposal has been cancelled by the user. - CANCELLED = 5; - - // The proposal has been rejected by the user, e.g. by rejecting an - // acceptance email. - REJECTED = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/account_budget_proposal_type.proto b/google/ads/googleads/v8/enums/account_budget_proposal_type.proto deleted file mode 100644 index adb7c89b5..000000000 --- a/google/ads/googleads/v8/enums/account_budget_proposal_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing AccountBudgetProposal types. - -// Message describing AccountBudgetProposal types. -message AccountBudgetProposalTypeEnum { - // The possible types of an AccountBudgetProposal. - enum AccountBudgetProposalType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Identifies a request to create a new budget. - CREATE = 2; - - // Identifies a request to edit an existing budget. - UPDATE = 3; - - // Identifies a request to end a budget that has already started. - END = 4; - - // Identifies a request to remove a budget that hasn't started yet. - REMOVE = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/account_budget_status.proto b/google/ads/googleads/v8/enums/account_budget_status.proto deleted file mode 100644 index 7f05d7e00..000000000 --- a/google/ads/googleads/v8/enums/account_budget_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing AccountBudget statuses. - -// Message describing AccountBudget statuses. -message AccountBudgetStatusEnum { - // The possible statuses of an AccountBudget. - enum AccountBudgetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The account budget is pending approval. - PENDING = 2; - - // The account budget has been approved. - APPROVED = 3; - - // The account budget has been cancelled by the user. - CANCELLED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/account_link_status.proto b/google/ads/googleads/v8/enums/account_link_status.proto deleted file mode 100644 index 8730519a3..000000000 --- a/google/ads/googleads/v8/enums/account_link_status.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AccountLinkStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing possible statuses of an account link. -message AccountLinkStatusEnum { - // Describes the possible statuses for a link between a Google Ads customer - // and another account. - enum AccountLinkStatus { - // 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 is removed/disabled. - REMOVED = 3; - - // The link to the other account has been requested. A user on the other - // account may now approve the link by setting the status to ENABLED. - REQUESTED = 4; - - // This link has been requested by a user on the other account. It may be - // approved by a user on this account by setting the status to ENABLED. - PENDING_APPROVAL = 5; - - // The link is rejected by the approver. - REJECTED = 6; - - // The link is revoked by the user who requested the link. - REVOKED = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_customizer_placeholder_field.proto b/google/ads/googleads/v8/enums/ad_customizer_placeholder_field.proto deleted file mode 100644 index 0972b0020..000000000 --- a/google/ads/googleads/v8/enums/ad_customizer_placeholder_field.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdCustomizerPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Ad Customizer placeholder fields. - -// Values for Ad Customizer placeholder fields. -message AdCustomizerPlaceholderFieldEnum { - // Possible values for Ad Customizers placeholder fields. - enum AdCustomizerPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: INT64. Integer value to be inserted. - INTEGER = 2; - - // Data Type: STRING. Price value to be inserted. - PRICE = 3; - - // Data Type: DATE_TIME. Date value to be inserted. - DATE = 4; - - // Data Type: STRING. String value to be inserted. - STRING = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_destination_type.proto b/google/ads/googleads/v8/enums/ad_destination_type.proto deleted file mode 100644 index cd48f8cf0..000000000 --- a/google/ads/googleads/v8/enums/ad_destination_type.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdDestinationTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad destination types. - -// Container for enumeration of Google Ads destination types. -message AdDestinationTypeEnum { - // Enumerates Google Ads destination types - enum AdDestinationType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Ads that don't intend to drive users off from ads to other destinations - NOT_APPLICABLE = 2; - - // Website - WEBSITE = 3; - - // App Deep Link - APP_DEEP_LINK = 4; - - // iOS App Store or Play Store - APP_STORE = 5; - - // Call Dialer - PHONE_CALL = 6; - - // Map App - MAP_DIRECTIONS = 7; - - // Location Dedicated Page - LOCATION_LISTING = 8; - - // Text Message - MESSAGE = 9; - - // Lead Generation Form - LEAD_FORM = 10; - - // YouTube - YOUTUBE = 11; - - // Ad Destination for Conversions with keys unknown - UNMODELED_FOR_CONVERSIONS = 12; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_group_ad_rotation_mode.proto b/google/ads/googleads/v8/enums/ad_group_ad_rotation_mode.proto deleted file mode 100644 index afba3a294..000000000 --- a/google/ads/googleads/v8/enums/ad_group_ad_rotation_mode.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdRotationModeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad group ad rotation mode. - -// Container for enum describing possible ad rotation modes of ads within an -// ad group. -message AdGroupAdRotationModeEnum { - // The possible ad rotation modes of an ad group. - enum AdGroupAdRotationMode { - // The ad rotation mode has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Optimize ad group ads based on clicks or conversions. - OPTIMIZE = 2; - - // Rotate evenly forever. - ROTATE_FOREVER = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_group_ad_status.proto b/google/ads/googleads/v8/enums/ad_group_ad_status.proto deleted file mode 100644 index 3d8c5544a..000000000 --- a/google/ads/googleads/v8/enums/ad_group_ad_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad group status. - -// Container for enum describing possible statuses of an AdGroupAd. -message AdGroupAdStatusEnum { - // The possible statuses of an AdGroupAd. - enum AdGroupAdStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The ad group ad is enabled. - ENABLED = 2; - - // The ad group ad is paused. - PAUSED = 3; - - // The ad group ad is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_group_criterion_approval_status.proto b/google/ads/googleads/v8/enums/ad_group_criterion_approval_status.proto deleted file mode 100644 index 604ada80e..000000000 --- a/google/ads/googleads/v8/enums/ad_group_criterion_approval_status.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing approval status for the criterion. - -// Container for enum describing possible AdGroupCriterion approval statuses. -message AdGroupCriterionApprovalStatusEnum { - // Enumerates AdGroupCriterion approval statuses. - enum AdGroupCriterionApprovalStatus { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Approved. - APPROVED = 2; - - // Disapproved. - DISAPPROVED = 3; - - // Pending Review. - PENDING_REVIEW = 4; - - // Under review. - UNDER_REVIEW = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_group_criterion_status.proto b/google/ads/googleads/v8/enums/ad_group_criterion_status.proto deleted file mode 100644 index aa96365de..000000000 --- a/google/ads/googleads/v8/enums/ad_group_criterion_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing AdGroupCriterion statuses. - -// Message describing AdGroupCriterion statuses. -message AdGroupCriterionStatusEnum { - // The possible statuses of an AdGroupCriterion. - enum AdGroupCriterionStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The ad group criterion is enabled. - ENABLED = 2; - - // The ad group criterion is paused. - PAUSED = 3; - - // The ad group criterion is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_group_status.proto b/google/ads/googleads/v8/enums/ad_group_status.proto deleted file mode 100644 index 02fa0a524..000000000 --- a/google/ads/googleads/v8/enums/ad_group_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad group status. - -// Container for enum describing possible statuses of an ad group. -message AdGroupStatusEnum { - // The possible statuses of an ad group. - enum AdGroupStatus { - // The status has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The ad group is enabled. - ENABLED = 2; - - // The ad group is paused. - PAUSED = 3; - - // The ad group is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_group_type.proto b/google/ads/googleads/v8/enums/ad_group_type.proto deleted file mode 100644 index f225e356d..000000000 --- a/google/ads/googleads/v8/enums/ad_group_type.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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad group types. - -// Defines types of an ad group, specific to a particular campaign channel -// type. This type drives validations that restrict which entities can be -// added to the ad group. -message AdGroupTypeEnum { - // Enum listing the possible types of an ad group. - enum AdGroupType { - // The type has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The default ad group type for Search campaigns. - SEARCH_STANDARD = 2; - - // The default ad group type for Display campaigns. - DISPLAY_STANDARD = 3; - - // The ad group type for Shopping campaigns serving standard product ads. - SHOPPING_PRODUCT_ADS = 4; - - // The default ad group type for Hotel campaigns. - HOTEL_ADS = 6; - - // The type for ad groups in Smart Shopping campaigns. - SHOPPING_SMART_ADS = 7; - - // Short unskippable in-stream video ads. - VIDEO_BUMPER = 8; - - // TrueView (skippable) in-stream video ads. - VIDEO_TRUE_VIEW_IN_STREAM = 9; - - // TrueView in-display video ads. - VIDEO_TRUE_VIEW_IN_DISPLAY = 10; - - // Unskippable in-stream video ads. - VIDEO_NON_SKIPPABLE_IN_STREAM = 11; - - // Outstream video ads. - VIDEO_OUTSTREAM = 12; - - // Ad group type for Dynamic Search Ads ad groups. - SEARCH_DYNAMIC_ADS = 13; - - // The type for ad groups in Shopping Comparison Listing campaigns. - SHOPPING_COMPARISON_LISTING_ADS = 14; - - // The ad group type for Promoted Hotel ad groups. - PROMOTED_HOTEL_ADS = 15; - - // Video responsive ad groups. - VIDEO_RESPONSIVE = 16; - - // Video efficient reach ad groups. - VIDEO_EFFICIENT_REACH = 17; - - // Ad group type for Smart campaigns. - SMART_CAMPAIGN_ADS = 18; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_network_type.proto b/google/ads/googleads/v8/enums/ad_network_type.proto deleted file mode 100644 index c51464e1d..000000000 --- a/google/ads/googleads/v8/enums/ad_network_type.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdNetworkTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad network types. - -// Container for enumeration of Google Ads network types. -message AdNetworkTypeEnum { - // Enumerates Google Ads network types. - enum AdNetworkType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Google search. - SEARCH = 2; - - // Search partners. - SEARCH_PARTNERS = 3; - - // Display Network. - CONTENT = 4; - - // YouTube Search. - YOUTUBE_SEARCH = 5; - - // YouTube Videos - YOUTUBE_WATCH = 6; - - // Cross-network. - MIXED = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_serving_optimization_status.proto b/google/ads/googleads/v8/enums/ad_serving_optimization_status.proto deleted file mode 100644 index 1e7b7221e..000000000 --- a/google/ads/googleads/v8/enums/ad_serving_optimization_status.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdServingOptimizationStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad serving statuses. - -// Possible ad serving statuses of a campaign. -message AdServingOptimizationStatusEnum { - // Enum describing possible serving statuses. - enum AdServingOptimizationStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Ad serving is optimized based on CTR for the campaign. - OPTIMIZE = 2; - - // Ad serving is optimized based on CTR * Conversion for the campaign. If - // the campaign is not in the conversion optimizer bidding strategy, it will - // default to OPTIMIZED. - CONVERSION_OPTIMIZE = 3; - - // Ads are rotated evenly for 90 days, then optimized for clicks. - ROTATE = 4; - - // Show lower performing ads more evenly with higher performing ads, and do - // not optimize. - ROTATE_INDEFINITELY = 5; - - // Ad serving optimization status is not available. - UNAVAILABLE = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_strength.proto b/google/ads/googleads/v8/enums/ad_strength.proto deleted file mode 100644 index 64ce6d26d..000000000 --- a/google/ads/googleads/v8/enums/ad_strength.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdStrengthProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad strengths. - -// Container for enum describing possible ad strengths. -message AdStrengthEnum { - // Enum listing the possible ad strengths. - enum AdStrength { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The ad strength is currently pending. - PENDING = 2; - - // No ads could be generated. - NO_ADS = 3; - - // Poor strength. - POOR = 4; - - // Average strength. - AVERAGE = 5; - - // Good strength. - GOOD = 6; - - // Excellent strength. - EXCELLENT = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/ad_type.proto b/google/ads/googleads/v8/enums/ad_type.proto deleted file mode 100644 index c58355870..000000000 --- a/google/ads/googleads/v8/enums/ad_type.proto +++ /dev/null @@ -1,128 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the ad type. - -// Container for enum describing possible types of an ad. -message AdTypeEnum { - // The possible types of an ad. - enum AdType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The ad is a text ad. - TEXT_AD = 2; - - // The ad is an expanded text ad. - EXPANDED_TEXT_AD = 3; - - // The ad is an expanded dynamic search ad. - EXPANDED_DYNAMIC_SEARCH_AD = 7; - - // The ad is a hotel ad. - HOTEL_AD = 8; - - // The ad is a Smart Shopping ad. - SHOPPING_SMART_AD = 9; - - // The ad is a standard Shopping ad. - SHOPPING_PRODUCT_AD = 10; - - // The ad is a video ad. - VIDEO_AD = 12; - - // This ad is a Gmail ad. - GMAIL_AD = 13; - - // This ad is an Image ad. - IMAGE_AD = 14; - - // The ad is a responsive search ad. - RESPONSIVE_SEARCH_AD = 15; - - // The ad is a legacy responsive display ad. - LEGACY_RESPONSIVE_DISPLAY_AD = 16; - - // The ad is an app ad. - APP_AD = 17; - - // The ad is a legacy app install ad. - LEGACY_APP_INSTALL_AD = 18; - - // The ad is a responsive display ad. - RESPONSIVE_DISPLAY_AD = 19; - - // The ad is a local ad. - LOCAL_AD = 20; - - // The ad is a display upload ad with the HTML5_UPLOAD_AD product type. - HTML5_UPLOAD_AD = 21; - - // The ad is a display upload ad with one of the DYNAMIC_HTML5_* product - // types. - DYNAMIC_HTML5_AD = 22; - - // The ad is an app engagement ad. - APP_ENGAGEMENT_AD = 23; - - // The ad is a Shopping Comparison Listing ad. - SHOPPING_COMPARISON_LISTING_AD = 24; - - // Video bumper ad. - VIDEO_BUMPER_AD = 25; - - // Video non-skippable in-stream ad. - VIDEO_NON_SKIPPABLE_IN_STREAM_AD = 26; - - // Video outstream ad. - VIDEO_OUTSTREAM_AD = 27; - - // Video TrueView in-display ad. - VIDEO_TRUEVIEW_DISCOVERY_AD = 28; - - // Video TrueView in-stream ad. - VIDEO_TRUEVIEW_IN_STREAM_AD = 29; - - // Video responsive ad. - VIDEO_RESPONSIVE_AD = 30; - - // Smart campaign ad. - SMART_CAMPAIGN_AD = 31; - - // Call ad. - CALL_AD = 32; - } - - -} diff --git a/google/ads/googleads/v8/enums/advertising_channel_sub_type.proto b/google/ads/googleads/v8/enums/advertising_channel_sub_type.proto deleted file mode 100644 index 10f02acc1..000000000 --- a/google/ads/googleads/v8/enums/advertising_channel_sub_type.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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdvertisingChannelSubTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing advertising channel subtypes. - -// An immutable specialization of an Advertising Channel. -message AdvertisingChannelSubTypeEnum { - // Enum describing the different channel subtypes. - enum AdvertisingChannelSubType { - // Not specified. - UNSPECIFIED = 0; - - // Used as a return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile app campaigns for Search. - SEARCH_MOBILE_APP = 2; - - // Mobile app campaigns for Display. - DISPLAY_MOBILE_APP = 3; - - // AdWords express campaigns for search. - SEARCH_EXPRESS = 4; - - // AdWords Express campaigns for display. - DISPLAY_EXPRESS = 5; - - // Smart Shopping campaigns. - SHOPPING_SMART_ADS = 6; - - // Gmail Ad campaigns. - DISPLAY_GMAIL_AD = 7; - - // Smart display campaigns. - DISPLAY_SMART_CAMPAIGN = 8; - - // Video Outstream campaigns. - VIDEO_OUTSTREAM = 9; - - // Video TrueView for Action campaigns. - VIDEO_ACTION = 10; - - // Video campaigns with non-skippable video ads. - VIDEO_NON_SKIPPABLE = 11; - - // App Campaign that allows you to easily promote your Android or iOS app - // across Google's top properties including Search, Play, YouTube, and the - // Google Display Network. - APP_CAMPAIGN = 12; - - // App Campaign for engagement, focused on driving re-engagement with the - // app across several of Google’s top properties including Search, YouTube, - // and the Google Display Network. - APP_CAMPAIGN_FOR_ENGAGEMENT = 13; - - // Campaigns specialized for local advertising. - LOCAL_CAMPAIGN = 14; - - // Shopping Comparison Listing campaigns. - SHOPPING_COMPARISON_LISTING_ADS = 15; - - // Standard Smart campaigns. - SMART_CAMPAIGN = 16; - - // Video campaigns with sequence video ads. - VIDEO_SEQUENCE = 17; - } - - -} diff --git a/google/ads/googleads/v8/enums/advertising_channel_type.proto b/google/ads/googleads/v8/enums/advertising_channel_type.proto deleted file mode 100644 index a9590b192..000000000 --- a/google/ads/googleads/v8/enums/advertising_channel_type.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AdvertisingChannelTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing advertising channel types - -// The channel type a campaign may target to serve on. -message AdvertisingChannelTypeEnum { - // Enum describing the various advertising channel types. - enum AdvertisingChannelType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Search Network. Includes display bundled, and Search+ campaigns. - SEARCH = 2; - - // Google Display Network only. - DISPLAY = 3; - - // Shopping campaigns serve on the shopping property - // and on google.com search results. - SHOPPING = 4; - - // Hotel Ads campaigns. - HOTEL = 5; - - // Video campaigns. - VIDEO = 6; - - // App Campaigns, and App Campaigns for Engagement, that run - // across multiple channels. - MULTI_CHANNEL = 7; - - // Local ads campaigns. - LOCAL = 8; - - // Smart campaigns. - SMART = 9; - } - - -} diff --git a/google/ads/googleads/v8/enums/affiliate_location_feed_relationship_type.proto b/google/ads/googleads/v8/enums/affiliate_location_feed_relationship_type.proto deleted file mode 100644 index 383f94aca..000000000 --- a/google/ads/googleads/v8/enums/affiliate_location_feed_relationship_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AffiliateLocationFeedRelationshipTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing relation type for affiliate location feeds. - -// Container for enum describing possible values for a relationship type for -// an affiliate location feed. -message AffiliateLocationFeedRelationshipTypeEnum { - // Possible values for a relationship type for an affiliate location feed. - enum AffiliateLocationFeedRelationshipType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // General retailer relationship. - GENERAL_RETAILER = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/affiliate_location_placeholder_field.proto b/google/ads/googleads/v8/enums/affiliate_location_placeholder_field.proto deleted file mode 100644 index 22b0dc2d0..000000000 --- a/google/ads/googleads/v8/enums/affiliate_location_placeholder_field.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AffiliateLocationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Affiliate Location placeholder fields. - -// Values for Affiliate Location placeholder fields. -message AffiliateLocationPlaceholderFieldEnum { - // Possible values for Affiliate Location placeholder fields. - enum AffiliateLocationPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The name of the business. - BUSINESS_NAME = 2; - - // Data Type: STRING. Line 1 of the business address. - ADDRESS_LINE_1 = 3; - - // Data Type: STRING. Line 2 of the business address. - ADDRESS_LINE_2 = 4; - - // Data Type: STRING. City of the business address. - CITY = 5; - - // Data Type: STRING. Province of the business address. - PROVINCE = 6; - - // Data Type: STRING. Postal code of the business address. - POSTAL_CODE = 7; - - // Data Type: STRING. Country code of the business address. - COUNTRY_CODE = 8; - - // Data Type: STRING. Phone number of the business. - PHONE_NUMBER = 9; - - // Data Type: STRING. Language code of the business. - LANGUAGE_CODE = 10; - - // Data Type: INT64. ID of the chain. - CHAIN_ID = 11; - - // Data Type: STRING. Name of the chain. - CHAIN_NAME = 12; - } - - -} diff --git a/google/ads/googleads/v8/enums/age_range_type.proto b/google/ads/googleads/v8/enums/age_range_type.proto deleted file mode 100644 index a80e4896a..000000000 --- a/google/ads/googleads/v8/enums/age_range_type.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AgeRangeTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing age range types. - -// Container for enum describing the type of demographic age ranges. -message AgeRangeTypeEnum { - // The type of demographic age ranges (e.g. between 18 and 24 years old). - enum AgeRangeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Between 18 and 24 years old. - AGE_RANGE_18_24 = 503001; - - // Between 25 and 34 years old. - AGE_RANGE_25_34 = 503002; - - // Between 35 and 44 years old. - AGE_RANGE_35_44 = 503003; - - // Between 45 and 54 years old. - AGE_RANGE_45_54 = 503004; - - // Between 55 and 64 years old. - AGE_RANGE_55_64 = 503005; - - // 65 years old and beyond. - AGE_RANGE_65_UP = 503006; - - // Undetermined age range. - AGE_RANGE_UNDETERMINED = 503999; - } - - -} diff --git a/google/ads/googleads/v8/enums/app_campaign_app_store.proto b/google/ads/googleads/v8/enums/app_campaign_app_store.proto deleted file mode 100644 index b7391250f..000000000 --- a/google/ads/googleads/v8/enums/app_campaign_app_store.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppCampaignAppStoreProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing App Campaign app store. - -// The application store that distributes mobile applications. -message AppCampaignAppStoreEnum { - // Enum describing app campaign app store. - enum AppCampaignAppStore { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Apple app store. - APPLE_APP_STORE = 2; - - // Google play. - GOOGLE_APP_STORE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/app_campaign_bidding_strategy_goal_type.proto b/google/ads/googleads/v8/enums/app_campaign_bidding_strategy_goal_type.proto deleted file mode 100644 index 19b54d41e..000000000 --- a/google/ads/googleads/v8/enums/app_campaign_bidding_strategy_goal_type.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppCampaignBiddingStrategyGoalTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing App Campaign bidding strategy goal types. - -// Container for enum describing goal towards which the bidding strategy of an -// app campaign should optimize for. -message AppCampaignBiddingStrategyGoalTypeEnum { - // Goal type of App campaign BiddingStrategy. - enum AppCampaignBiddingStrategyGoalType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Aim to maximize the number of app installs. The cpa bid is the - // target cost per install. - OPTIMIZE_INSTALLS_TARGET_INSTALL_COST = 2; - - // Aim to maximize the long term number of selected in-app conversions from - // app installs. The cpa bid is the target cost per install. - OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST = 3; - - // Aim to maximize the long term number of selected in-app conversions from - // app installs. The cpa bid is the target cost per in-app conversion. Note - // that the actual cpa may seem higher than the target cpa at first, since - // the long term conversions haven’t happened yet. - OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST = 4; - - // Aim to maximize all conversions' value, i.e. install + selected in-app - // conversions while achieving or exceeding target return on advertising - // spend. - OPTIMIZE_RETURN_ON_ADVERTISING_SPEND = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/app_payment_model_type.proto b/google/ads/googleads/v8/enums/app_payment_model_type.proto deleted file mode 100644 index 51871cd1b..000000000 --- a/google/ads/googleads/v8/enums/app_payment_model_type.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppPaymentModelTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing criteria types. - -// Represents a criterion for targeting paid apps. -message AppPaymentModelTypeEnum { - // Enum describing possible app payment models. - enum AppPaymentModelType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Represents paid-for apps. - PAID = 30; - } - - -} diff --git a/google/ads/googleads/v8/enums/app_placeholder_field.proto b/google/ads/googleads/v8/enums/app_placeholder_field.proto deleted file mode 100644 index c51ddfa97..000000000 --- a/google/ads/googleads/v8/enums/app_placeholder_field.proto +++ /dev/null @@ -1,75 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing App placeholder fields. - -// Values for App placeholder fields. -message AppPlaceholderFieldEnum { - // Possible values for App placeholder fields. - enum AppPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: INT64. The application store that the target application - // belongs to. Valid values are: 1 = Apple iTunes Store; 2 = Google Play - // Store. - STORE = 2; - - // Data Type: STRING. The store-specific ID for the target application. - ID = 3; - - // Data Type: STRING. The visible text displayed when the link is rendered - // in an ad. - LINK_TEXT = 4; - - // Data Type: STRING. The destination URL of the in-app link. - URL = 5; - - // Data Type: URL_LIST. Final URLs for the in-app link when using Upgraded - // URLs. - FINAL_URLS = 6; - - // Data Type: URL_LIST. Final Mobile URLs for the in-app link when using - // Upgraded URLs. - FINAL_MOBILE_URLS = 7; - - // Data Type: URL. Tracking template for the in-app link when using Upgraded - // URLs. - TRACKING_URL = 8; - - // Data Type: STRING. Final URL suffix for the in-app link when using - // parallel tracking. - FINAL_URL_SUFFIX = 9; - } - - -} diff --git a/google/ads/googleads/v8/enums/app_store.proto b/google/ads/googleads/v8/enums/app_store.proto deleted file mode 100644 index efb6a3a68..000000000 --- a/google/ads/googleads/v8/enums/app_store.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppStoreProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing app store types for an app extension. - -// Container for enum describing app store type in an app extension. -message AppStoreEnum { - // App store type in an app extension. - enum AppStore { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Apple iTunes. - APPLE_ITUNES = 2; - - // Google Play. - GOOGLE_PLAY = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/app_url_operating_system_type.proto b/google/ads/googleads/v8/enums/app_url_operating_system_type.proto deleted file mode 100644 index c7c79aa06..000000000 --- a/google/ads/googleads/v8/enums/app_url_operating_system_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AppUrlOperatingSystemTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing operating system for a deeplink app URL. - -// The possible OS types for a deeplink AppUrl. -message AppUrlOperatingSystemTypeEnum { - // Operating System - enum AppUrlOperatingSystemType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The Apple IOS operating system. - IOS = 2; - - // The Android operating system. - ANDROID = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/asset_field_type.proto b/google/ads/googleads/v8/enums/asset_field_type.proto deleted file mode 100644 index 5e6669732..000000000 --- a/google/ads/googleads/v8/enums/asset_field_type.proto +++ /dev/null @@ -1,81 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AssetFieldTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing asset type. - -// Container for enum describing the possible placements of an asset. -message AssetFieldTypeEnum { - // Enum describing the possible placements of an asset. - enum AssetFieldType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The asset is linked for use as a headline. - HEADLINE = 2; - - // The asset is linked for use as a description. - DESCRIPTION = 3; - - // The asset is linked for use as mandatory ad text. - MANDATORY_AD_TEXT = 4; - - // The asset is linked for use as a marketing image. - MARKETING_IMAGE = 5; - - // The asset is linked for use as a media bundle. - MEDIA_BUNDLE = 6; - - // The asset is linked for use as a YouTube video. - YOUTUBE_VIDEO = 7; - - // The asset is linked to indicate that a hotels campaign is "Book on - // Google" enabled. - BOOK_ON_GOOGLE = 8; - - // The asset is linked for use as a Lead Form extension. - LEAD_FORM = 9; - - // The asset is linked for use as a Promotion extension. - PROMOTION = 10; - - // The asset is linked for use as a Callout extension. - CALLOUT = 11; - - // The asset is linked for use as a Structured Snippet extension. - STRUCTURED_SNIPPET = 12; - - // The asset is linked for use as a Sitelink extension. - SITELINK = 13; - } - - -} diff --git a/google/ads/googleads/v8/enums/asset_link_status.proto b/google/ads/googleads/v8/enums/asset_link_status.proto deleted file mode 100644 index 60e685fe2..000000000 --- a/google/ads/googleads/v8/enums/asset_link_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AssetLinkStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing status of an asset link. - -// Container for enum describing possible statuses of an asset link. -message AssetLinkStatusEnum { - // Enum describing statuses of an asset link. - enum AssetLinkStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Asset link is enabled. - ENABLED = 2; - - // Asset link has been removed. - REMOVED = 3; - - // Asset link is paused. - PAUSED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/asset_performance_label.proto b/google/ads/googleads/v8/enums/asset_performance_label.proto deleted file mode 100644 index 003641458..000000000 --- a/google/ads/googleads/v8/enums/asset_performance_label.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AssetPerformanceLabelProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the performance label of an asset. - -// Container for enum describing the performance label of an asset. -message AssetPerformanceLabelEnum { - // Enum describing the possible performance labels of an asset, usually - // computed in the context of a linkage. - enum AssetPerformanceLabel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // This asset does not yet have any performance informantion. This may be - // because it is still under review. - PENDING = 2; - - // The asset has started getting impressions but the stats are not - // statistically significant enough to get an asset performance label. - LEARNING = 3; - - // Worst performing assets. - LOW = 4; - - // Good performing assets. - GOOD = 5; - - // Best performing assets. - BEST = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/asset_type.proto b/google/ads/googleads/v8/enums/asset_type.proto deleted file mode 100644 index 66db168f3..000000000 --- a/google/ads/googleads/v8/enums/asset_type.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AssetTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing asset type. - -// Container for enum describing the types of asset. -message AssetTypeEnum { - // Enum describing possible types of asset. - enum AssetType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // YouTube video asset. - YOUTUBE_VIDEO = 2; - - // Media bundle asset. - MEDIA_BUNDLE = 3; - - // Image asset. - IMAGE = 4; - - // Text asset. - TEXT = 5; - - // Lead form asset. - LEAD_FORM = 6; - - // Book on Google asset. - BOOK_ON_GOOGLE = 7; - - // Promotion asset. - PROMOTION = 8; - - // Callout asset. - CALLOUT = 9; - - // Structured Snippet asset. - STRUCTURED_SNIPPET = 10; - - // Sitelink asset. - SITELINK = 11; - } - - -} diff --git a/google/ads/googleads/v8/enums/attribution_model.proto b/google/ads/googleads/v8/enums/attribution_model.proto deleted file mode 100644 index 4da3f09b5..000000000 --- a/google/ads/googleads/v8/enums/attribution_model.proto +++ /dev/null @@ -1,72 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "AttributionModelProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum representing the attribution model that describes how to -// distribute credit for a particular conversion across potentially many prior -// interactions. -message AttributionModelEnum { - // The attribution model that describes how to distribute credit for a - // particular conversion across potentially many prior interactions. - enum AttributionModel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Uses external attribution. - EXTERNAL = 100; - - // Attributes all credit for a conversion to its last click. - GOOGLE_ADS_LAST_CLICK = 101; - - // Attributes all credit for a conversion to its first click using Google - // Search attribution. - GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK = 102; - - // Attributes credit for a conversion equally across all of its clicks using - // Google Search attribution. - GOOGLE_SEARCH_ATTRIBUTION_LINEAR = 103; - - // Attributes exponentially more credit for a conversion to its more recent - // clicks using Google Search attribution (half-life is 1 week). - GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY = 104; - - // Attributes 40% of the credit for a conversion to its first and last - // clicks. Remaining 20% is evenly distributed across all other clicks. This - // uses Google Search attribution. - GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED = 105; - - // Flexible model that uses machine learning to determine the appropriate - // distribution of credit among clicks using Google Search attribution. - GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN = 106; - } - - -} diff --git a/google/ads/googleads/v8/enums/batch_job_status.proto b/google/ads/googleads/v8/enums/batch_job_status.proto deleted file mode 100644 index 2f7dc1a73..000000000 --- a/google/ads/googleads/v8/enums/batch_job_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BatchJobStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing batch job statuses. - -// Container for enum describing possible batch job statuses. -message BatchJobStatusEnum { - // The batch job statuses. - enum BatchJobStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The job is not currently running. - PENDING = 2; - - // The job is running. - RUNNING = 3; - - // The job is done. - DONE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/bid_modifier_source.proto b/google/ads/googleads/v8/enums/bid_modifier_source.proto deleted file mode 100644 index 10f16a358..000000000 --- a/google/ads/googleads/v8/enums/bid_modifier_source.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BidModifierSourceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing bid modifier source. - -// Container for enum describing possible bid modifier sources. -message BidModifierSourceEnum { - // Enum describing possible bid modifier sources. - enum BidModifierSource { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The bid modifier is specified at the campaign level, on the campaign - // level criterion. - CAMPAIGN = 2; - - // The bid modifier is specified (overridden) at the ad group level. - AD_GROUP = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/bidding_source.proto b/google/ads/googleads/v8/enums/bidding_source.proto deleted file mode 100644 index 7be8045c3..000000000 --- a/google/ads/googleads/v8/enums/bidding_source.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BiddingSourceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing bidding sources. - -// Container for enum describing possible bidding sources. -message BiddingSourceEnum { - // Indicates where a bid or target is defined. For example, an ad group - // criterion may define a cpc bid directly, or it can inherit its cpc bid from - // the ad group. - enum BiddingSource { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Effective bid or target is inherited from campaign bidding strategy. - CAMPAIGN_BIDDING_STRATEGY = 5; - - // The bid or target is defined on the ad group. - AD_GROUP = 6; - - // The bid or target is defined on the ad group criterion. - AD_GROUP_CRITERION = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/bidding_strategy_status.proto b/google/ads/googleads/v8/enums/bidding_strategy_status.proto deleted file mode 100644 index 42fa33f4b..000000000 --- a/google/ads/googleads/v8/enums/bidding_strategy_status.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing BiddingStrategy statuses. - -// Message describing BiddingStrategy statuses. -message BiddingStrategyStatusEnum { - // The possible statuses of a BiddingStrategy. - enum BiddingStrategyStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The bidding strategy is enabled. - ENABLED = 2; - - // The bidding strategy is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/bidding_strategy_type.proto b/google/ads/googleads/v8/enums/bidding_strategy_type.proto deleted file mode 100644 index e6e35dfc3..000000000 --- a/google/ads/googleads/v8/enums/bidding_strategy_type.proto +++ /dev/null @@ -1,119 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing bidding schemes. - -// Container for enum describing possible bidding strategy types. -message BiddingStrategyTypeEnum { - // Enum describing possible bidding strategy types. - enum BiddingStrategyType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Commission is an automatic bidding strategy in which the advertiser pays - // a certain portion of the conversion value. - COMMISSION = 16; - - // Enhanced CPC is 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. - ENHANCED_CPC = 2; - - // Used for return value only. Indicates that a campaign does not have a - // bidding strategy. This prevents the campaign from serving. For example, - // a campaign may be attached to a manager bidding strategy and the serving - // account is subsequently unlinked from the manager account. In this case - // the campaign will automatically be detached from the now inaccessible - // manager bidding strategy and transition to the INVALID bidding strategy - // type. - INVALID = 17; - - // Manual click based bidding where user pays per click. - MANUAL_CPC = 3; - - // Manual impression based bidding - // where user pays per thousand impressions. - MANUAL_CPM = 4; - - // A bidding strategy that pays a configurable amount per video view. - MANUAL_CPV = 13; - - // A bidding strategy that automatically maximizes number of conversions - // given a daily budget. - MAXIMIZE_CONVERSIONS = 10; - - // An automated bidding strategy that automatically sets bids to maximize - // revenue while spending your budget. - MAXIMIZE_CONVERSION_VALUE = 11; - - // Page-One Promoted bidding scheme, which sets max cpc bids to - // target impressions on page one or page one promoted slots on google.com. - // This enum value is deprecated. - PAGE_ONE_PROMOTED = 5; - - // Percent Cpc is bidding strategy where bids are a fraction of the - // advertised price for some good or service. - PERCENT_CPC = 12; - - // Target CPA is an automated bid strategy that sets bids - // to help get as many conversions as possible - // at the target cost-per-acquisition (CPA) you set. - TARGET_CPA = 6; - - // Target CPM is an automated bid strategy that sets bids to help get - // as many impressions as possible at the target cost per one thousand - // impressions (CPM) you set. - TARGET_CPM = 14; - - // 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). - TARGET_IMPRESSION_SHARE = 15; - - // Target Outrank Share is an automated bidding strategy that sets bids - // based on the target fraction of auctions where the advertiser - // should outrank a specific competitor. - // This enum value is deprecated. - TARGET_OUTRANK_SHARE = 7; - - // Target ROAS is an automated bidding strategy - // that helps you maximize revenue while averaging - // a specific target Return On Average Spend (ROAS). - TARGET_ROAS = 8; - - // Target Spend is an automated bid strategy that sets your bids - // to help get as many clicks as possible within your budget. - TARGET_SPEND = 9; - } - - -} diff --git a/google/ads/googleads/v8/enums/billing_setup_status.proto b/google/ads/googleads/v8/enums/billing_setup_status.proto deleted file mode 100644 index 5246a1685..000000000 --- a/google/ads/googleads/v8/enums/billing_setup_status.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BillingSetupStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing BillingSetup statuses. - -// Message describing BillingSetup statuses. -message BillingSetupStatusEnum { - // The possible statuses of a BillingSetup. - enum BillingSetupStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The billing setup is pending approval. - PENDING = 2; - - // The billing setup has been approved but the corresponding first budget - // has not. This can only occur for billing setups configured for monthly - // invoicing. - APPROVED_HELD = 3; - - // The billing setup has been approved. - APPROVED = 4; - - // The billing setup was cancelled by the user prior to approval. - CANCELLED = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/brand_safety_suitability.proto b/google/ads/googleads/v8/enums/brand_safety_suitability.proto deleted file mode 100644 index f06f15761..000000000 --- a/google/ads/googleads/v8/enums/brand_safety_suitability.proto +++ /dev/null @@ -1,73 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BrandSafetySuitabilityProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing brand safety suitability settings. - -// Container for enum with 3-Tier brand safety suitability control. -message BrandSafetySuitabilityEnum { - // 3-Tier brand safety suitability control. - enum BrandSafetySuitability { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // This option lets you show ads across all inventory on YouTube and video - // partners that meet our standards for monetization. This option may be an - // appropriate choice for brands that want maximum access to the full - // breadth of videos eligible for ads, including, for example, videos that - // have strong profanity in the context of comedy or a documentary, or - // excessive violence as featured in video games. - EXPANDED_INVENTORY = 2; - - // This option lets you show ads across a wide range of content that's - // appropriate for most brands, such as popular music videos, documentaries, - // and movie trailers. The content you can show ads on is based on YouTube's - // advertiser-friendly content guidelines that take into account, for - // example, the strength or frequency of profanity, or the appropriateness - // of subject matter like sensitive events. Ads won't show, for example, on - // content with repeated strong profanity, strong sexual content, or graphic - // violence. - STANDARD_INVENTORY = 3; - - // This option lets you show ads on a reduced range of content that's - // appropriate for brands with particularly strict guidelines around - // inappropriate language and sexual suggestiveness; above and beyond what - // YouTube's advertiser-friendly content guidelines address. The videos - // accessible in this sensitive category meet heightened requirements, - // especially for inappropriate language and sexual suggestiveness. For - // example, your ads will be excluded from showing on some of YouTube's most - // popular music videos and other pop culture content across YouTube and - // Google video partners. - LIMITED_INVENTORY = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/budget_campaign_association_status.proto b/google/ads/googleads/v8/enums/budget_campaign_association_status.proto deleted file mode 100644 index ca93d24b8..000000000 --- a/google/ads/googleads/v8/enums/budget_campaign_association_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetCampaignAssociationStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Budget and Campaign association status. - -// Message describing the status of the association between the Budget and the -// Campaign. -message BudgetCampaignAssociationStatusEnum { - // Possible statuses of the association between the Budget and the Campaign. - enum BudgetCampaignAssociationStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The campaign is currently using the budget. - ENABLED = 2; - - // The campaign is no longer using the budget. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/budget_delivery_method.proto b/google/ads/googleads/v8/enums/budget_delivery_method.proto deleted file mode 100644 index 8e8a6893b..000000000 --- a/google/ads/googleads/v8/enums/budget_delivery_method.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetDeliveryMethodProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Budget delivery methods. - -// Message describing Budget delivery methods. A delivery method determines the -// rate at which the Budget is spent. -message BudgetDeliveryMethodEnum { - // Possible delivery methods of a Budget. - enum BudgetDeliveryMethod { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The budget server will throttle serving evenly across - // the entire time period. - STANDARD = 2; - - // The budget server will not throttle serving, - // and ads will serve as fast as possible. - ACCELERATED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/budget_period.proto b/google/ads/googleads/v8/enums/budget_period.proto deleted file mode 100644 index b5e452706..000000000 --- a/google/ads/googleads/v8/enums/budget_period.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetPeriodProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Budget delivery methods. - -// Message describing Budget period. -message BudgetPeriodEnum { - // Possible period of a Budget. - enum BudgetPeriod { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Daily budget. - DAILY = 2; - - // Custom budget, added back in V5. - // Custom bugdet 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/google/ads/googleads/v8/enums/budget_status.proto b/google/ads/googleads/v8/enums/budget_status.proto deleted file mode 100644 index ee74213a1..000000000 --- a/google/ads/googleads/v8/enums/budget_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Budget statuses - -// Message describing a Budget status -message BudgetStatusEnum { - // Possible statuses of a Budget. - enum BudgetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Budget is enabled. - ENABLED = 2; - - // Budget is removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/budget_type.proto b/google/ads/googleads/v8/enums/budget_type.proto deleted file mode 100644 index 0d2b85564..000000000 --- a/google/ads/googleads/v8/enums/budget_type.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "BudgetTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Budget types. - -// Describes Budget types. -message BudgetTypeEnum { - // Possible Budget types. - enum BudgetType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Budget type for standard Google Ads usage. - // Caps daily spend at two times the specified budget amount. - // Full details: https://support.google.com/google-ads/answer/6385083 - STANDARD = 2; - - // Budget type for Hotels Ads commission program. - // Full details: https://support.google.com/google-ads/answer/9243945 - // - // This type is only supported by campaigns with - // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION and - // PaymentMode.CONVERSION_VALUE. - HOTEL_ADS_COMMISSION = 3; - - // Budget type with a fixed cost-per-acquisition (conversion). - // Full details: https://support.google.com/google-ads/answer/7528254 - // - // This type is only supported by campaigns with - // AdvertisingChannelType.DISPLAY (excluding - // AdvertisingChannelSubType.DISPLAY_GMAIL), - // BiddingStrategyType.TARGET_CPA and PaymentMode.CONVERSIONS. - FIXED_CPA = 4; - - // Budget type for Smart Campaign. - // Full details: https://support.google.com/google-ads/answer/7653509 - // - // This type is only supported by campaigns with - // AdvertisingChannelType.SMART and - // AdvertisingChannelSubType.SMART_CAMPAIGN. - SMART_CAMPAIGN = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/call_conversion_reporting_state.proto b/google/ads/googleads/v8/enums/call_conversion_reporting_state.proto deleted file mode 100644 index 2fd3492f3..000000000 --- a/google/ads/googleads/v8/enums/call_conversion_reporting_state.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CallConversionReportingStateProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing call conversion reporting state. - -// Container for enum describing possible data types for call conversion -// reporting state. -message CallConversionReportingStateEnum { - // Possible data types for a call conversion action state. - enum CallConversionReportingState { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Call conversion action is disabled. - DISABLED = 2; - - // Call conversion action will use call conversion type set at the - // account level. - USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION = 3; - - // Call conversion action will use call conversion type set at the resource - // (call only ads/call extensions) level. - USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/call_placeholder_field.proto b/google/ads/googleads/v8/enums/call_placeholder_field.proto deleted file mode 100644 index d834abdb7..000000000 --- a/google/ads/googleads/v8/enums/call_placeholder_field.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CallPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Call placeholder fields. - -// Values for Call placeholder fields. -message CallPlaceholderFieldEnum { - // Possible values for Call placeholder fields. - enum CallPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The advertiser's phone number to append to the ad. - PHONE_NUMBER = 2; - - // Data Type: STRING. Uppercase two-letter country code of the advertiser's - // phone number. - COUNTRY_CODE = 3; - - // Data Type: BOOLEAN. Indicates whether call tracking is enabled. Default: - // true. - TRACKED = 4; - - // Data Type: INT64. The ID of an AdCallMetricsConversion object. This - // object contains the phoneCallDurationfield which is the minimum duration - // (in seconds) of a call to be considered a conversion. - CONVERSION_TYPE_ID = 5; - - // Data Type: STRING. Indicates whether this call extension uses its own - // call conversion setting or follows the account level setting. - // Valid values are: USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION and - // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION. - CONVERSION_REPORTING_STATE = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/call_tracking_display_location.proto b/google/ads/googleads/v8/enums/call_tracking_display_location.proto deleted file mode 100644 index 29b7ec1ae..000000000 --- a/google/ads/googleads/v8/enums/call_tracking_display_location.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CallTrackingDisplayLocationProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing call tracking display location. - -// Container for enum describing possible call tracking display locations. -message CallTrackingDisplayLocationEnum { - // Possible call tracking display locations. - enum CallTrackingDisplayLocation { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The phone call placed from the ad. - AD = 2; - - // The phone call placed from the landing page ad points to. - LANDING_PAGE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/call_type.proto b/google/ads/googleads/v8/enums/call_type.proto deleted file mode 100644 index 965eae85a..000000000 --- a/google/ads/googleads/v8/enums/call_type.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CallTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing call types. - -// Container for enum describing possible types of property from where the call -// was made. -message CallTypeEnum { - // Possible types of property from where the call was made. - enum CallType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The phone call was manually dialed. - MANUALLY_DIALED = 2; - - // The phone call was a mobile click-to-call. - HIGH_END_MOBILE_SEARCH = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/callout_placeholder_field.proto b/google/ads/googleads/v8/enums/callout_placeholder_field.proto deleted file mode 100644 index e8c88d5f0..000000000 --- a/google/ads/googleads/v8/enums/callout_placeholder_field.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CalloutPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Callout placeholder fields. - -// Values for Callout placeholder fields. -message CalloutPlaceholderFieldEnum { - // Possible values for Callout placeholder fields. - enum CalloutPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Callout text. - CALLOUT_TEXT = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/campaign_criterion_status.proto b/google/ads/googleads/v8/enums/campaign_criterion_status.proto deleted file mode 100644 index 61a1a03a9..000000000 --- a/google/ads/googleads/v8/enums/campaign_criterion_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing CampaignCriterion statuses. - -// Message describing CampaignCriterion statuses. -message CampaignCriterionStatusEnum { - // The possible statuses of a CampaignCriterion. - enum CampaignCriterionStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The campaign criterion is enabled. - ENABLED = 2; - - // The campaign criterion is paused. - PAUSED = 3; - - // The campaign criterion is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/campaign_draft_status.proto b/google/ads/googleads/v8/enums/campaign_draft_status.proto deleted file mode 100644 index fd9838747..000000000 --- a/google/ads/googleads/v8/enums/campaign_draft_status.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignDraftStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing campaign draft status. - -// Container for enum describing possible statuses of a campaign draft. -message CampaignDraftStatusEnum { - // Possible statuses of a campaign draft. - enum CampaignDraftStatus { - // The status has not been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Initial state of the draft, the advertiser can start adding changes with - // no effect on serving. - PROPOSED = 2; - - // The campaign draft is removed. - REMOVED = 3; - - // Advertiser requested to promote draft's changes back into the original - // campaign. Advertiser can poll the long running operation returned by - // the promote action to see the status of the promotion. - PROMOTING = 5; - - // The process to merge changes in the draft back to the original campaign - // has completed successfully. - PROMOTED = 4; - - // The promotion failed after it was partially applied. Promote cannot be - // attempted again safely, so the issue must be corrected in the original - // campaign. - PROMOTE_FAILED = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/campaign_experiment_status.proto b/google/ads/googleads/v8/enums/campaign_experiment_status.proto deleted file mode 100644 index 82f6442b5..000000000 --- a/google/ads/googleads/v8/enums/campaign_experiment_status.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing campaign experiment status. - -// Container for enum describing possible statuses of a campaign experiment. -message CampaignExperimentStatusEnum { - // Possible statuses of a campaign experiment. - enum CampaignExperimentStatus { - // The status has not been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The experiment campaign is being initialized. - INITIALIZING = 2; - - // Initialization of the experiment campaign failed. - INITIALIZATION_FAILED = 8; - - // The experiment campaign is fully initialized. The experiment is currently - // running, scheduled to run in the future or has ended based on its - // end date. An experiment with the status INITIALIZING will be updated to - // ENABLED when it is fully created. - ENABLED = 3; - - // The experiment campaign was graduated to a stand-alone - // campaign, existing independently of the experiment. - GRADUATED = 4; - - // The experiment is removed. - REMOVED = 5; - - // The experiment's changes are being applied to the original campaign. - // The long running operation returned by the promote method can be polled - // to see the status of the promotion. - PROMOTING = 6; - - // Promote of the experiment campaign failed. - PROMOTION_FAILED = 9; - - // The changes of the experiment are promoted to their original campaign. - PROMOTED = 7; - - // The experiment was ended manually. It did not end based on its end date. - ENDED_MANUALLY = 10; - } - - -} diff --git a/google/ads/googleads/v8/enums/campaign_experiment_traffic_split_type.proto b/google/ads/googleads/v8/enums/campaign_experiment_traffic_split_type.proto deleted file mode 100644 index d7b8b9ab2..000000000 --- a/google/ads/googleads/v8/enums/campaign_experiment_traffic_split_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentTrafficSplitTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing campaign experiment traffic split type. - -// Container for enum describing campaign experiment traffic split type. -message CampaignExperimentTrafficSplitTypeEnum { - // Enum of strategies for splitting traffic between base and experiment - // campaigns in campaign experiment. - enum CampaignExperimentTrafficSplitType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Traffic is randomly assigned to the base or experiment arm for each - // query, independent of previous assignments for the same user. - RANDOM_QUERY = 2; - - // Traffic is split using cookies to keep users in the same arm (base or - // experiment) of the experiment. - COOKIE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/campaign_experiment_type.proto b/google/ads/googleads/v8/enums/campaign_experiment_type.proto deleted file mode 100644 index a27b8a7ba..000000000 --- a/google/ads/googleads/v8/enums/campaign_experiment_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing campaign experiment type. - -// Container for enum describing campaign experiment type. -message CampaignExperimentTypeEnum { - // Indicates if this campaign is a normal campaign, - // a draft campaign, or an experiment campaign. - enum CampaignExperimentType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // This is a regular campaign. - BASE = 2; - - // This is a draft version of a campaign. - // It has some modifications from a base campaign, - // but it does not serve or accrue metrics. - DRAFT = 3; - - // This is an experiment version of a campaign. - // It has some modifications from a base campaign, - // and a percentage of traffic is being diverted - // from the BASE campaign to this experiment campaign. - EXPERIMENT = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/campaign_serving_status.proto b/google/ads/googleads/v8/enums/campaign_serving_status.proto deleted file mode 100644 index 130116cc4..000000000 --- a/google/ads/googleads/v8/enums/campaign_serving_status.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignServingStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Campaign serving statuses. - -// Message describing Campaign serving statuses. -message CampaignServingStatusEnum { - // Possible serving statuses of a campaign. - enum CampaignServingStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Serving. - SERVING = 2; - - // None. - NONE = 3; - - // Ended. - ENDED = 4; - - // Pending. - PENDING = 5; - - // Suspended. - SUSPENDED = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/campaign_shared_set_status.proto b/google/ads/googleads/v8/enums/campaign_shared_set_status.proto deleted file mode 100644 index e24dff01c..000000000 --- a/google/ads/googleads/v8/enums/campaign_shared_set_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSharedSetStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing campaign shared set statuses. - -// Container for enum describing types of campaign shared set statuses. -message CampaignSharedSetStatusEnum { - // Enum listing the possible campaign shared set statuses. - enum CampaignSharedSetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The campaign shared set is enabled. - ENABLED = 2; - - // The campaign shared set is removed and can no longer be used. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/campaign_status.proto b/google/ads/googleads/v8/enums/campaign_status.proto deleted file mode 100644 index fba5ffdb8..000000000 --- a/google/ads/googleads/v8/enums/campaign_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CampaignStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing campaign status. - -// Container for enum describing possible statuses of a campaign. -message CampaignStatusEnum { - // Possible statuses of a campaign. - enum CampaignStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Campaign is currently serving ads depending on budget information. - ENABLED = 2; - - // Campaign has been paused by the user. - PAUSED = 3; - - // Campaign has been removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/change_client_type.proto b/google/ads/googleads/v8/enums/change_client_type.proto deleted file mode 100644 index 6adf7928e..000000000 --- a/google/ads/googleads/v8/enums/change_client_type.proto +++ /dev/null @@ -1,87 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ChangeClientTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the sources that the change event resource was -// made through. - -// Container for enum describing the sources that the change event resource -// was made through. -message ChangeClientTypeEnum { - // The source that the change_event resource was made through. - enum ChangeClientType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified client type - // unknown in this version. - UNKNOWN = 1; - - // Changes made through the "ads.google.com". - // For example, changes made through campaign management. - GOOGLE_ADS_WEB_CLIENT = 2; - - // Changes made through Google Ads automated rules. - GOOGLE_ADS_AUTOMATED_RULE = 3; - - // Changes made through Google Ads scripts. - GOOGLE_ADS_SCRIPTS = 4; - - // Changes made by Google Ads bulk upload. - GOOGLE_ADS_BULK_UPLOAD = 5; - - // Changes made by Google Ads API. - GOOGLE_ADS_API = 6; - - // Changes made by Google Ads Editor. - GOOGLE_ADS_EDITOR = 7; - - // Changes made by Google Ads mobile app. - GOOGLE_ADS_MOBILE_APP = 8; - - // Changes made through Google Ads recommendations. - GOOGLE_ADS_RECOMMENDATIONS = 9; - - // Changes made through Search Ads 360 Sync. - SEARCH_ADS_360_SYNC = 10; - - // Changes made through Search Ads 360 Post. - SEARCH_ADS_360_POST = 11; - - // Changes made through internal tools. - // For example, when a user sets a URL template on an entity like a - // Campaign, it's automatically wrapped with the SA360 Clickserver URL. - INTERNAL_TOOL = 12; - - // Types of changes that are not categorized, for example, - // changes made by coupon redemption through Google Ads. - OTHER = 13; - } - - -} diff --git a/google/ads/googleads/v8/enums/change_event_resource_type.proto b/google/ads/googleads/v8/enums/change_event_resource_type.proto deleted file mode 100644 index 47efa4a8c..000000000 --- a/google/ads/googleads/v8/enums/change_event_resource_type.proto +++ /dev/null @@ -1,94 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ChangeEventResourceTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the resource types the ChangeEvent resource supports. - -// Container for enum describing supported resource types for the ChangeEvent -// resource. -message ChangeEventResourceTypeEnum { - // Enum listing the resource types support by the ChangeEvent resource. - enum ChangeEventResourceType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified resource unknown - // in this version. - UNKNOWN = 1; - - // An Ad resource change. - AD = 2; - - // An AdGroup resource change. - AD_GROUP = 3; - - // An AdGroupCriterion resource change. - AD_GROUP_CRITERION = 4; - - // A Campaign resource change. - CAMPAIGN = 5; - - // A CampaignBudget resource change. - CAMPAIGN_BUDGET = 6; - - // An AdGroupBidModifier resource change. - AD_GROUP_BID_MODIFIER = 7; - - // A CampaignCriterion resource change. - CAMPAIGN_CRITERION = 8; - - // A Feed resource change. - FEED = 9; - - // A FeedItem resource change. - FEED_ITEM = 10; - - // A CampaignFeed resource change. - CAMPAIGN_FEED = 11; - - // An AdGroupFeed resource change. - AD_GROUP_FEED = 12; - - // An AdGroupAd resource change. - AD_GROUP_AD = 13; - - // An Asset resource change. - ASSET = 14; - - // A CustomerAsset resource change. - CUSTOMER_ASSET = 15; - - // A CampaignAsset resource change. - CAMPAIGN_ASSET = 16; - - // An AdGroupAsset resource change. - AD_GROUP_ASSET = 17; - } - - -} diff --git a/google/ads/googleads/v8/enums/change_status_operation.proto b/google/ads/googleads/v8/enums/change_status_operation.proto deleted file mode 100644 index 4acde1c50..000000000 --- a/google/ads/googleads/v8/enums/change_status_operation.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusOperationProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the change status operations. - -// Container for enum describing operations for the ChangeStatus resource. -message ChangeStatusOperationEnum { - // Status of the changed resource - enum ChangeStatusOperation { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified resource unknown - // in this version. - UNKNOWN = 1; - - // The resource was created. - ADDED = 2; - - // The resource was modified. - CHANGED = 3; - - // The resource was removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/change_status_resource_type.proto b/google/ads/googleads/v8/enums/change_status_resource_type.proto deleted file mode 100644 index 9252e2bae..000000000 --- a/google/ads/googleads/v8/enums/change_status_resource_type.proto +++ /dev/null @@ -1,94 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusResourceTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the resource types the ChangeStatus resource supports. - -// Container for enum describing supported resource types for the ChangeStatus -// resource. -message ChangeStatusResourceTypeEnum { - // Enum listing the resource types support by the ChangeStatus resource. - enum ChangeStatusResourceType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified resource unknown - // in this version. - UNKNOWN = 1; - - // An AdGroup resource change. - AD_GROUP = 3; - - // An AdGroupAd resource change. - AD_GROUP_AD = 4; - - // An AdGroupCriterion resource change. - AD_GROUP_CRITERION = 5; - - // A Campaign resource change. - CAMPAIGN = 6; - - // A CampaignCriterion resource change. - CAMPAIGN_CRITERION = 7; - - // A Feed resource change. - FEED = 9; - - // A FeedItem resource change. - FEED_ITEM = 10; - - // An AdGroupFeed resource change. - AD_GROUP_FEED = 11; - - // A CampaignFeed resource change. - CAMPAIGN_FEED = 12; - - // An AdGroupBidModifier resource change. - AD_GROUP_BID_MODIFIER = 13; - - // A SharedSet resource change. - SHARED_SET = 14; - - // A CampaignSharedSet resource change. - CAMPAIGN_SHARED_SET = 15; - - // An Asset resource change. - ASSET = 16; - - // A CustomerAsset resource change. - CUSTOMER_ASSET = 17; - - // A CampaignAsset resource change. - CAMPAIGN_ASSET = 18; - - // An AdGroupAsset resource change. - AD_GROUP_ASSET = 19; - } - - -} diff --git a/google/ads/googleads/v8/enums/click_type.proto b/google/ads/googleads/v8/enums/click_type.proto deleted file mode 100644 index 8adb1a01c..000000000 --- a/google/ads/googleads/v8/enums/click_type.proto +++ /dev/null @@ -1,203 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ClickTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing click types. - -// Container for enumeration of Google Ads click types. -message ClickTypeEnum { - // Enumerates Google Ads click types. - enum ClickType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // App engagement ad deep link. - APP_DEEPLINK = 2; - - // Breadcrumbs. - BREADCRUMBS = 3; - - // Broadband Plan. - BROADBAND_PLAN = 4; - - // Manually dialed phone calls. - CALL_TRACKING = 5; - - // Phone calls. - CALLS = 6; - - // Click on engagement ad. - CLICK_ON_ENGAGEMENT_AD = 7; - - // Driving direction. - GET_DIRECTIONS = 8; - - // Get location details. - LOCATION_EXPANSION = 9; - - // Call. - LOCATION_FORMAT_CALL = 10; - - // Directions. - LOCATION_FORMAT_DIRECTIONS = 11; - - // Image(s). - LOCATION_FORMAT_IMAGE = 12; - - // Go to landing page. - LOCATION_FORMAT_LANDING_PAGE = 13; - - // Map. - LOCATION_FORMAT_MAP = 14; - - // Go to store info. - LOCATION_FORMAT_STORE_INFO = 15; - - // Text. - LOCATION_FORMAT_TEXT = 16; - - // Mobile phone calls. - MOBILE_CALL_TRACKING = 17; - - // Print offer. - OFFER_PRINTS = 18; - - // Other. - OTHER = 19; - - // Product plusbox offer. - PRODUCT_EXTENSION_CLICKS = 20; - - // Shopping - Product - Online. - PRODUCT_LISTING_AD_CLICKS = 21; - - // Sitelink. - SITELINKS = 22; - - // Show nearby locations. - STORE_LOCATOR = 23; - - // Headline. - URL_CLICKS = 25; - - // App store. - VIDEO_APP_STORE_CLICKS = 26; - - // Call-to-Action overlay. - VIDEO_CALL_TO_ACTION_CLICKS = 27; - - // Cards. - VIDEO_CARD_ACTION_HEADLINE_CLICKS = 28; - - // End cap. - VIDEO_END_CAP_CLICKS = 29; - - // Website. - VIDEO_WEBSITE_CLICKS = 30; - - // Visual Sitelinks. - VISUAL_SITELINKS = 31; - - // Wireless Plan. - WIRELESS_PLAN = 32; - - // Shopping - Product - Local. - PRODUCT_LISTING_AD_LOCAL = 33; - - // Shopping - Product - MultiChannel Local. - PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL = 34; - - // Shopping - Product - MultiChannel Online. - PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE = 35; - - // Shopping - Product - Coupon. - PRODUCT_LISTING_ADS_COUPON = 36; - - // Shopping - Product - Sell on Google. - PRODUCT_LISTING_AD_TRANSACTABLE = 37; - - // Shopping - Product - App engagement ad deep link. - PRODUCT_AD_APP_DEEPLINK = 38; - - // Shopping - Showcase - Category. - SHOWCASE_AD_CATEGORY_LINK = 39; - - // Shopping - Showcase - Local storefront. - SHOWCASE_AD_LOCAL_STOREFRONT_LINK = 40; - - // Shopping - Showcase - Online product. - SHOWCASE_AD_ONLINE_PRODUCT_LINK = 42; - - // Shopping - Showcase - Local product. - SHOWCASE_AD_LOCAL_PRODUCT_LINK = 43; - - // Promotion Extension. - PROMOTION_EXTENSION = 44; - - // Ad Headline. - SWIPEABLE_GALLERY_AD_HEADLINE = 45; - - // Swipes. - SWIPEABLE_GALLERY_AD_SWIPES = 46; - - // See More. - SWIPEABLE_GALLERY_AD_SEE_MORE = 47; - - // Sitelink 1. - SWIPEABLE_GALLERY_AD_SITELINK_ONE = 48; - - // Sitelink 2. - SWIPEABLE_GALLERY_AD_SITELINK_TWO = 49; - - // Sitelink 3. - SWIPEABLE_GALLERY_AD_SITELINK_THREE = 50; - - // Sitelink 4. - SWIPEABLE_GALLERY_AD_SITELINK_FOUR = 51; - - // Sitelink 5. - SWIPEABLE_GALLERY_AD_SITELINK_FIVE = 52; - - // Hotel price. - HOTEL_PRICE = 53; - - // Price Extension. - PRICE_EXTENSION = 54; - - // Book on Google hotel room selection. - HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION = 55; - - // Shopping - Comparison Listing. - SHOPPING_COMPARISON_LISTING = 56; - } - - -} diff --git a/google/ads/googleads/v8/enums/combined_audience_status.proto b/google/ads/googleads/v8/enums/combined_audience_status.proto deleted file mode 100644 index 4c58e6a3e..000000000 --- a/google/ads/googleads/v8/enums/combined_audience_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CombinedAudienceStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing combined audience status. - -// The status of combined audience. -message CombinedAudienceStatusEnum { - // Enum containing possible combined audience status types. - enum CombinedAudienceStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Enabled status - combined audience is enabled and can be targeted. - ENABLED = 2; - - // Removed status - combined audience is removed and cannot be used for - // targeting. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/content_label_type.proto b/google/ads/googleads/v8/enums/content_label_type.proto deleted file mode 100644 index 3c69ac85d..000000000 --- a/google/ads/googleads/v8/enums/content_label_type.proto +++ /dev/null @@ -1,89 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ContentLabelTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::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/google/ads/googleads/v8/enums/conversion_action_category.proto b/google/ads/googleads/v8/enums/conversion_action_category.proto deleted file mode 100644 index cf83f0ed7..000000000 --- a/google/ads/googleads/v8/enums/conversion_action_category.proto +++ /dev/null @@ -1,106 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionCategoryProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing the category of conversions that are associated -// with a ConversionAction. -message ConversionActionCategoryEnum { - // The category of conversions that are associated with a ConversionAction. - enum ConversionActionCategory { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Default category. - DEFAULT = 2; - - // User visiting a page. - PAGE_VIEW = 3; - - // Purchase, sales, or "order placed" event. - PURCHASE = 4; - - // Signup user action. - SIGNUP = 5; - - // Lead-generating action. - LEAD = 6; - - // Software download action (as for an app). - DOWNLOAD = 7; - - // The addition of items to a shopping cart or bag on an advertiser site. - ADD_TO_CART = 8; - - // When someone enters the checkout flow on an advertiser site. - BEGIN_CHECKOUT = 9; - - // The start of a paid subscription for a product or service. - SUBSCRIBE_PAID = 10; - - // A call to indicate interest in an advertiser's offering. - PHONE_CALL_LEAD = 11; - - // A lead conversion imported from an external source into Google Ads. - IMPORTED_LEAD = 12; - - // A submission of a form on an advertiser site indicating business - // interest. - SUBMIT_LEAD_FORM = 13; - - // A booking of an appointment with an advertiser's business. - BOOK_APPOINTMENT = 14; - - // A quote or price estimate request. - REQUEST_QUOTE = 15; - - // A search for an advertiser's business location with intention to visit. - GET_DIRECTIONS = 16; - - // A click to an advertiser's partner's site. - OUTBOUND_CLICK = 17; - - // A call, SMS, email, chat or other type of contact to an advertiser. - CONTACT = 18; - - // A website engagement event such as long site time or a Google Analytics - // (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal - // imports. - ENGAGEMENT = 19; - - // A visit to a physical store location. - STORE_VISIT = 20; - - // A sale occurring in a physical store. - STORE_SALE = 21; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_action_counting_type.proto b/google/ads/googleads/v8/enums/conversion_action_counting_type.proto deleted file mode 100644 index 3461d50c8..000000000 --- a/google/ads/googleads/v8/enums/conversion_action_counting_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionCountingTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion action counting type. - -// Container for enum describing the conversion deduplication mode for -// conversion optimizer. -message ConversionActionCountingTypeEnum { - // Indicates how conversions for this action will be counted. For more - // information, see https://support.google.com/google-ads/answer/3438531. - enum ConversionActionCountingType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Count only one conversion per click. - ONE_PER_CLICK = 2; - - // Count all conversions per click. - MANY_PER_CLICK = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_action_status.proto b/google/ads/googleads/v8/enums/conversion_action_status.proto deleted file mode 100644 index 7b1be23db..000000000 --- a/google/ads/googleads/v8/enums/conversion_action_status.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion action status. - -// Container for enum describing possible statuses of a conversion action. -message ConversionActionStatusEnum { - // Possible statuses of a conversion action. - enum ConversionActionStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversions will be recorded. - ENABLED = 2; - - // Conversions will not be recorded. - REMOVED = 3; - - // Conversions will not be recorded and the conversion action will not - // appear in the UI. - HIDDEN = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_action_type.proto b/google/ads/googleads/v8/enums/conversion_action_type.proto deleted file mode 100644 index 62bd9f7e3..000000000 --- a/google/ads/googleads/v8/enums/conversion_action_type.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion action type. - -// Container for enum describing possible types of a conversion action. -message ConversionActionTypeEnum { - // Possible types of a conversion action. - enum ConversionActionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversions that occur when a user clicks on an ad's call extension. - AD_CALL = 2; - - // Conversions that occur when a user on a mobile device clicks a phone - // number. - CLICK_TO_CALL = 3; - - // Conversions that occur when a user downloads a mobile app from the Google - // Play Store. - GOOGLE_PLAY_DOWNLOAD = 4; - - // Conversions that occur when a user makes a purchase in an app through - // Android billing. - GOOGLE_PLAY_IN_APP_PURCHASE = 5; - - // Call conversions that are tracked by the advertiser and uploaded. - UPLOAD_CALLS = 6; - - // Conversions that are tracked by the advertiser and uploaded with - // attributed clicks. - UPLOAD_CLICKS = 7; - - // Conversions that occur on a webpage. - WEBPAGE = 8; - - // Conversions that occur when a user calls a dynamically-generated phone - // number from an advertiser's website. - WEBSITE_CALL = 9; - - // Store Sales conversion based on first-party or third-party merchant - // data uploads. - // Only customers on the allowlist can use store sales direct upload types. - STORE_SALES_DIRECT_UPLOAD = 10; - - // Store Sales conversion based on first-party or third-party merchant - // data uploads and/or from in-store purchases using cards from payment - // networks. - // Only customers on the allowlist can use store sales types. - // Read only. - STORE_SALES = 11; - - // Android app first open conversions tracked via Firebase. - FIREBASE_ANDROID_FIRST_OPEN = 12; - - // Android app in app purchase conversions tracked via Firebase. - FIREBASE_ANDROID_IN_APP_PURCHASE = 13; - - // Android app custom conversions tracked via Firebase. - FIREBASE_ANDROID_CUSTOM = 14; - - // iOS app first open conversions tracked via Firebase. - FIREBASE_IOS_FIRST_OPEN = 15; - - // iOS app in app purchase conversions tracked via Firebase. - FIREBASE_IOS_IN_APP_PURCHASE = 16; - - // iOS app custom conversions tracked via Firebase. - FIREBASE_IOS_CUSTOM = 17; - - // Android app first open conversions tracked via Third Party App Analytics. - THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN = 18; - - // Android app in app purchase conversions tracked via Third Party App - // Analytics. - THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE = 19; - - // Android app custom conversions tracked via Third Party App Analytics. - THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM = 20; - - // iOS app first open conversions tracked via Third Party App Analytics. - THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN = 21; - - // iOS app in app purchase conversions tracked via Third Party App - // Analytics. - THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE = 22; - - // iOS app custom conversions tracked via Third Party App Analytics. - THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM = 23; - - // Conversions that occur when a user pre-registers a mobile app from the - // Google Play Store. Read only. - ANDROID_APP_PRE_REGISTRATION = 24; - - // Conversions that track all Google Play downloads which aren't tracked - // by an app-specific type. Read only. - ANDROID_INSTALLS_ALL_OTHER_APPS = 25; - - // Floodlight activity that counts the number of times that users have - // visited a particular webpage after seeing or clicking on one of - // an advertiser's ads. Read only. - FLOODLIGHT_ACTION = 26; - - // Floodlight activity that tracks the number of sales made or the number - // of items purchased. Can also capture the total value of each sale. - // Read only. - FLOODLIGHT_TRANSACTION = 27; - - // Conversions that track local actions from Google's products and - // services after interacting with an ad. Read only. - GOOGLE_HOSTED = 28; - - // Conversions reported when a user submits a lead form. Read only. - LEAD_FORM_SUBMIT = 29; - - // Conversions that come from Salesforce. Read only. - SALESFORCE = 30; - - // Conversions imported from Search Ads 360 Floodlight data. Read only. - SEARCH_ADS_360 = 31; - - // Call conversions that occur on Smart campaign Ads without call tracking - // setup, using Smart campaign custom criteria. Read only. - SMART_CAMPAIGN_AD_CLICKS_TO_CALL = 32; - - // The user clicks on a call element within Google Maps. Smart campaign - // only. Read only. - SMART_CAMPAIGN_MAP_CLICKS_TO_CALL = 33; - - // The user requests directions to a business location within Google Maps. - // Smart campaign only. Read only. - SMART_CAMPAIGN_MAP_DIRECTIONS = 34; - - // Call conversions that occur on Smart campaign Ads with call tracking - // setup, using Smart campaign custom criteria. Read only. - SMART_CAMPAIGN_TRACKED_CALLS = 35; - - // Conversions that occur when a user visits an advertiser's retail store. - // Read only. - STORE_VISITS = 36; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_adjustment_type.proto b/google/ads/googleads/v8/enums/conversion_adjustment_type.proto deleted file mode 100644 index e1143eab3..000000000 --- a/google/ads/googleads/v8/enums/conversion_adjustment_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionAdjustmentTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion adjustment type. - -// Container for enum describing conversion adjustment types. -message ConversionAdjustmentTypeEnum { - // The different actions advertisers can take to adjust the conversions that - // they already reported. Retractions negate a conversion. Restatements change - // the value of a conversion. - enum ConversionAdjustmentType { - // Not specified. - UNSPECIFIED = 0; - - // Represents value unknown in this version. - UNKNOWN = 1; - - // Negates a conversion so that its total value and count are both zero. - RETRACTION = 2; - - // Changes the value of a conversion. - RESTATEMENT = 3; - - // Supplements an existing conversion with provided user identifiers and - // user agent, which can be used by Google to enhance the conversion count. - ENHANCEMENT = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_attribution_event_type.proto b/google/ads/googleads/v8/enums/conversion_attribution_event_type.proto deleted file mode 100644 index fd27860c4..000000000 --- a/google/ads/googleads/v8/enums/conversion_attribution_event_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionAttributionEventTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum indicating the event type the conversion is attributed to. -message ConversionAttributionEventTypeEnum { - // The event type of conversions that are attributed to. - enum ConversionAttributionEventType { - // Not specified. - UNSPECIFIED = 0; - - // Represents value unknown in this version. - UNKNOWN = 1; - - // The conversion is attributed to an impression. - IMPRESSION = 2; - - // The conversion is attributed to an interaction. - INTERACTION = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_custom_variable_status.proto b/google/ads/googleads/v8/enums/conversion_custom_variable_status.proto deleted file mode 100644 index 770a4ea42..000000000 --- a/google/ads/googleads/v8/enums/conversion_custom_variable_status.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionCustomVariableStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion custom variable status. - -// Container for enum describing possible statuses of a conversion custom -// variable. -message ConversionCustomVariableStatusEnum { - // Possible statuses of a conversion custom variable. - enum ConversionCustomVariableStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The conversion custom variable is pending activation and will not - // accrue stats until set to ENABLED. - // - // This status can't be used in CREATE and UPDATE requests. - ACTIVATION_NEEDED = 2; - - // The conversion custom variable is enabled and will accrue stats. - ENABLED = 3; - - // The conversion custom variable is paused and will not accrue stats - // until set to ENABLED again. - PAUSED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_lag_bucket.proto b/google/ads/googleads/v8/enums/conversion_lag_bucket.proto deleted file mode 100644 index d412716a6..000000000 --- a/google/ads/googleads/v8/enums/conversion_lag_bucket.proto +++ /dev/null @@ -1,117 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionLagBucketProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum representing the number of days between impression and -// conversion. -message ConversionLagBucketEnum { - // Enum representing the number of days between impression and conversion. - enum ConversionLagBucket { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. - LESS_THAN_ONE_DAY = 2; - - // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. - ONE_TO_TWO_DAYS = 3; - - // Conversion lag bucket from 2 to 3 days. 2 days is included, - // 3 days is not. - TWO_TO_THREE_DAYS = 4; - - // Conversion lag bucket from 3 to 4 days. 3 days is included, - // 4 days is not. - THREE_TO_FOUR_DAYS = 5; - - // Conversion lag bucket from 4 to 5 days. 4 days is included, - // 5 days is not. - FOUR_TO_FIVE_DAYS = 6; - - // Conversion lag bucket from 5 to 6 days. 5 days is included, - // 6 days is not. - FIVE_TO_SIX_DAYS = 7; - - // Conversion lag bucket from 6 to 7 days. 6 days is included, - // 7 days is not. - SIX_TO_SEVEN_DAYS = 8; - - // Conversion lag bucket from 7 to 8 days. 7 days is included, - // 8 days is not. - SEVEN_TO_EIGHT_DAYS = 9; - - // Conversion lag bucket from 8 to 9 days. 8 days is included, - // 9 days is not. - EIGHT_TO_NINE_DAYS = 10; - - // Conversion lag bucket from 9 to 10 days. 9 days is included, - // 10 days is not. - NINE_TO_TEN_DAYS = 11; - - // Conversion lag bucket from 10 to 11 days. 10 days is included, - // 11 days is not. - TEN_TO_ELEVEN_DAYS = 12; - - // Conversion lag bucket from 11 to 12 days. 11 days is included, - // 12 days is not. - ELEVEN_TO_TWELVE_DAYS = 13; - - // Conversion lag bucket from 12 to 13 days. 12 days is included, - // 13 days is not. - TWELVE_TO_THIRTEEN_DAYS = 14; - - // Conversion lag bucket from 13 to 14 days. 13 days is included, - // 14 days is not. - THIRTEEN_TO_FOURTEEN_DAYS = 15; - - // Conversion lag bucket from 14 to 21 days. 14 days is included, - // 21 days is not. - FOURTEEN_TO_TWENTY_ONE_DAYS = 16; - - // Conversion lag bucket from 21 to 30 days. 21 days is included, - // 30 days is not. - TWENTY_ONE_TO_THIRTY_DAYS = 17; - - // Conversion lag bucket from 30 to 45 days. 30 days is included, - // 45 days is not. - THIRTY_TO_FORTY_FIVE_DAYS = 18; - - // Conversion lag bucket from 45 to 60 days. 45 days is included, - // 60 days is not. - FORTY_FIVE_TO_SIXTY_DAYS = 19; - - // Conversion lag bucket from 60 to 90 days. 60 days is included, - // 90 days is not. - SIXTY_TO_NINETY_DAYS = 20; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_or_adjustment_lag_bucket.proto b/google/ads/googleads/v8/enums/conversion_or_adjustment_lag_bucket.proto deleted file mode 100644 index daa856d2c..000000000 --- a/google/ads/googleads/v8/enums/conversion_or_adjustment_lag_bucket.proto +++ /dev/null @@ -1,206 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionOrAdjustmentLagBucketProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum representing the number of days between the impression and -// the conversion or between the impression and adjustments to the conversion. -message ConversionOrAdjustmentLagBucketEnum { - // Enum representing the number of days between the impression and the - // conversion or between the impression and adjustments to the conversion. - enum ConversionOrAdjustmentLagBucket { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. - CONVERSION_LESS_THAN_ONE_DAY = 2; - - // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. - CONVERSION_ONE_TO_TWO_DAYS = 3; - - // Conversion lag bucket from 2 to 3 days. 2 days is included, - // 3 days is not. - CONVERSION_TWO_TO_THREE_DAYS = 4; - - // Conversion lag bucket from 3 to 4 days. 3 days is included, - // 4 days is not. - CONVERSION_THREE_TO_FOUR_DAYS = 5; - - // Conversion lag bucket from 4 to 5 days. 4 days is included, - // 5 days is not. - CONVERSION_FOUR_TO_FIVE_DAYS = 6; - - // Conversion lag bucket from 5 to 6 days. 5 days is included, - // 6 days is not. - CONVERSION_FIVE_TO_SIX_DAYS = 7; - - // Conversion lag bucket from 6 to 7 days. 6 days is included, - // 7 days is not. - CONVERSION_SIX_TO_SEVEN_DAYS = 8; - - // Conversion lag bucket from 7 to 8 days. 7 days is included, - // 8 days is not. - CONVERSION_SEVEN_TO_EIGHT_DAYS = 9; - - // Conversion lag bucket from 8 to 9 days. 8 days is included, - // 9 days is not. - CONVERSION_EIGHT_TO_NINE_DAYS = 10; - - // Conversion lag bucket from 9 to 10 days. 9 days is included, - // 10 days is not. - CONVERSION_NINE_TO_TEN_DAYS = 11; - - // Conversion lag bucket from 10 to 11 days. 10 days is included, - // 11 days is not. - CONVERSION_TEN_TO_ELEVEN_DAYS = 12; - - // Conversion lag bucket from 11 to 12 days. 11 days is included, - // 12 days is not. - CONVERSION_ELEVEN_TO_TWELVE_DAYS = 13; - - // Conversion lag bucket from 12 to 13 days. 12 days is included, - // 13 days is not. - CONVERSION_TWELVE_TO_THIRTEEN_DAYS = 14; - - // Conversion lag bucket from 13 to 14 days. 13 days is included, - // 14 days is not. - CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS = 15; - - // Conversion lag bucket from 14 to 21 days. 14 days is included, - // 21 days is not. - CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS = 16; - - // Conversion lag bucket from 21 to 30 days. 21 days is included, - // 30 days is not. - CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS = 17; - - // Conversion lag bucket from 30 to 45 days. 30 days is included, - // 45 days is not. - CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS = 18; - - // Conversion lag bucket from 45 to 60 days. 45 days is included, - // 60 days is not. - CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS = 19; - - // Conversion lag bucket from 60 to 90 days. 60 days is included, - // 90 days is not. - CONVERSION_SIXTY_TO_NINETY_DAYS = 20; - - // Conversion adjustment lag bucket from 0 to 1 day. 0 day is included, - // 1 day is not. - ADJUSTMENT_LESS_THAN_ONE_DAY = 21; - - // Conversion adjustment lag bucket from 1 to 2 days. 1 day is included, - // 2 days is not. - ADJUSTMENT_ONE_TO_TWO_DAYS = 22; - - // Conversion adjustment lag bucket from 2 to 3 days. 2 days is included, - // 3 days is not. - ADJUSTMENT_TWO_TO_THREE_DAYS = 23; - - // Conversion adjustment lag bucket from 3 to 4 days. 3 days is included, - // 4 days is not. - ADJUSTMENT_THREE_TO_FOUR_DAYS = 24; - - // Conversion adjustment lag bucket from 4 to 5 days. 4 days is included, - // 5 days is not. - ADJUSTMENT_FOUR_TO_FIVE_DAYS = 25; - - // Conversion adjustment lag bucket from 5 to 6 days. 5 days is included, - // 6 days is not. - ADJUSTMENT_FIVE_TO_SIX_DAYS = 26; - - // Conversion adjustment lag bucket from 6 to 7 days. 6 days is included, - // 7 days is not. - ADJUSTMENT_SIX_TO_SEVEN_DAYS = 27; - - // Conversion adjustment lag bucket from 7 to 8 days. 7 days is included, - // 8 days is not. - ADJUSTMENT_SEVEN_TO_EIGHT_DAYS = 28; - - // Conversion adjustment lag bucket from 8 to 9 days. 8 days is included, - // 9 days is not. - ADJUSTMENT_EIGHT_TO_NINE_DAYS = 29; - - // Conversion adjustment lag bucket from 9 to 10 days. 9 days is included, - // 10 days is not. - ADJUSTMENT_NINE_TO_TEN_DAYS = 30; - - // Conversion adjustment lag bucket from 10 to 11 days. 10 days is included, - // 11 days is not. - ADJUSTMENT_TEN_TO_ELEVEN_DAYS = 31; - - // Conversion adjustment lag bucket from 11 to 12 days. 11 days is included, - // 12 days is not. - ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS = 32; - - // Conversion adjustment lag bucket from 12 to 13 days. 12 days is included, - // 13 days is not. - ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS = 33; - - // Conversion adjustment lag bucket from 13 to 14 days. 13 days is included, - // 14 days is not. - ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS = 34; - - // Conversion adjustment lag bucket from 14 to 21 days. 14 days is included, - // 21 days is not. - ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS = 35; - - // Conversion adjustment lag bucket from 21 to 30 days. 21 days is included, - // 30 days is not. - ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS = 36; - - // Conversion adjustment lag bucket from 30 to 45 days. 30 days is included, - // 45 days is not. - ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS = 37; - - // Conversion adjustment lag bucket from 45 to 60 days. 45 days is included, - // 60 days is not. - ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS = 38; - - // Conversion adjustment lag bucket from 60 to 90 days. 60 days is included, - // 90 days is not. - ADJUSTMENT_SIXTY_TO_NINETY_DAYS = 39; - - // Conversion adjustment lag bucket from 90 to 145 days. 90 days is - // included, 145 days is not. - ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS = 40; - - // Conversion lag bucket UNKNOWN. This is for dates before conversion lag - // bucket was available in Google Ads. - CONVERSION_UNKNOWN = 41; - - // Conversion adjustment lag bucket UNKNOWN. This is for dates before - // conversion adjustment lag bucket was available in Google Ads. - ADJUSTMENT_UNKNOWN = 42; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_value_rule_primary_dimension.proto b/google/ads/googleads/v8/enums/conversion_value_rule_primary_dimension.proto deleted file mode 100644 index 47cefb380..000000000 --- a/google/ads/googleads/v8/enums/conversion_value_rule_primary_dimension.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRulePrimaryDimensionProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion value rule primary dimension. - -// Container for enum describing value rule primary dimension for stats. -message ConversionValueRulePrimaryDimensionEnum { - // Identifies the primary dimension for conversion value rule stats. - enum ConversionValueRulePrimaryDimension { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // For no-value-rule-applied conversions after value rule is enabled. - NO_RULE_APPLIED = 2; - - // Below are for value-rule-applied conversions: - // The original stats. - ORIGINAL = 3; - - // When a new or returning customer condition is satisfied. - NEW_VS_RETURNING_USER = 4; - - // When a query-time Geo location condition is satisfied. - GEO_LOCATION = 5; - - // When a query-time browsing device condition is satisfied. - DEVICE = 6; - - // When a query-time audience condition is satisfied. - AUDIENCE = 7; - - // When multiple rules are applied. - MULTIPLE = 8; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_value_rule_set_status.proto b/google/ads/googleads/v8/enums/conversion_value_rule_set_status.proto deleted file mode 100644 index 22327a5bb..000000000 --- a/google/ads/googleads/v8/enums/conversion_value_rule_set_status.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRuleSetStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion value rule set status. - -// Container for enum describing possible statuses of a conversion value rule -// set. -message ConversionValueRuleSetStatusEnum { - // Possible statuses of a conversion value rule set. - enum ConversionValueRuleSetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversion Value Rule Set is enabled and can be applied. - ENABLED = 2; - - // Conversion Value Rule Set is permanently deleted and can't be applied. - REMOVED = 3; - - // Conversion Value Rule Set is paused and won't be applied. It can be - // enabled again. - PAUSED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/conversion_value_rule_status.proto b/google/ads/googleads/v8/enums/conversion_value_rule_status.proto deleted file mode 100644 index a9e7aa4c5..000000000 --- a/google/ads/googleads/v8/enums/conversion_value_rule_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRuleStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion value rule status. - -// Container for enum describing possible statuses of a conversion value rule. -message ConversionValueRuleStatusEnum { - // Possible statuses of a conversion value rule. - enum ConversionValueRuleStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conversion Value Rule is enabled and can be applied. - ENABLED = 2; - - // Conversion Value Rule is permanently deleted and can't be applied. - REMOVED = 3; - - // Conversion Value Rule is paused, but can be re-enabled. - PAUSED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/criterion_category_channel_availability_mode.proto b/google/ads/googleads/v8/enums/criterion_category_channel_availability_mode.proto deleted file mode 100644 index cb60574f7..000000000 --- a/google/ads/googleads/v8/enums/criterion_category_channel_availability_mode.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CriterionCategoryChannelAvailabilityModeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the criterion category channel availability mode. - -// Describes channel availability mode for a criterion availability - whether -// the availability is meant to include all advertising channels, or a -// particular channel with all its channel subtypes, or a channel with a certain -// subset of channel subtypes. -message CriterionCategoryChannelAvailabilityModeEnum { - // Enum containing the possible CriterionCategoryChannelAvailabilityMode. - enum CriterionCategoryChannelAvailabilityMode { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The category is available to campaigns of all channel types and subtypes. - ALL_CHANNELS = 2; - - // The category is available to campaigns of a specific channel type, - // including all subtypes under it. - CHANNEL_TYPE_AND_ALL_SUBTYPES = 3; - - // The category is available to campaigns of a specific channel type and - // subtype(s). - CHANNEL_TYPE_AND_SUBSET_SUBTYPES = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/criterion_category_locale_availability_mode.proto b/google/ads/googleads/v8/enums/criterion_category_locale_availability_mode.proto deleted file mode 100644 index c3be98fb9..000000000 --- a/google/ads/googleads/v8/enums/criterion_category_locale_availability_mode.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CriterionCategoryLocaleAvailabilityModeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the criterion category locale availability mode. - -// Describes locale availability mode for a criterion availability - whether -// it's available globally, or a particular country with all languages, or a -// particular language with all countries, or a country-language pair. -message CriterionCategoryLocaleAvailabilityModeEnum { - // Enum containing the possible CriterionCategoryLocaleAvailabilityMode. - enum CriterionCategoryLocaleAvailabilityMode { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The category is available to campaigns of all locales. - ALL_LOCALES = 2; - - // The category is available to campaigns within a list of countries, - // regardless of language. - COUNTRY_AND_ALL_LANGUAGES = 3; - - // The category is available to campaigns within a list of languages, - // regardless of country. - LANGUAGE_AND_ALL_COUNTRIES = 4; - - // The category is available to campaigns within a list of country, language - // pairs. - COUNTRY_AND_LANGUAGE = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/criterion_system_serving_status.proto b/google/ads/googleads/v8/enums/criterion_system_serving_status.proto deleted file mode 100644 index 723f6234f..000000000 --- a/google/ads/googleads/v8/enums/criterion_system_serving_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CriterionSystemServingStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing approval status for the criterion. - -// Container for enum describing possible criterion system serving statuses. -message CriterionSystemServingStatusEnum { - // Enumerates criterion system serving statuses. - enum CriterionSystemServingStatus { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Eligible. - ELIGIBLE = 2; - - // Low search volume. - RARELY_SERVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/criterion_type.proto b/google/ads/googleads/v8/enums/criterion_type.proto deleted file mode 100644 index 2f9104250..000000000 --- a/google/ads/googleads/v8/enums/criterion_type.proto +++ /dev/null @@ -1,143 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CriterionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing criteria types. - -// The possible types of a criterion. -message CriterionTypeEnum { - // Enum describing possible criterion types. - enum CriterionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Keyword. e.g. 'mars cruise'. - KEYWORD = 2; - - // Placement, aka Website. e.g. 'www.flowers4sale.com' - PLACEMENT = 3; - - // Mobile application categories to target. - MOBILE_APP_CATEGORY = 4; - - // Mobile applications to target. - MOBILE_APPLICATION = 5; - - // Devices to target. - DEVICE = 6; - - // Locations to target. - LOCATION = 7; - - // Listing groups to target. - LISTING_GROUP = 8; - - // Ad Schedule. - AD_SCHEDULE = 9; - - // Age range. - AGE_RANGE = 10; - - // Gender. - GENDER = 11; - - // Income Range. - INCOME_RANGE = 12; - - // Parental status. - PARENTAL_STATUS = 13; - - // YouTube Video. - YOUTUBE_VIDEO = 14; - - // YouTube Channel. - YOUTUBE_CHANNEL = 15; - - // User list. - USER_LIST = 16; - - // Proximity. - PROXIMITY = 17; - - // A topic target on the display network (e.g. "Pets & Animals"). - TOPIC = 18; - - // Listing scope to target. - LISTING_SCOPE = 19; - - // Language. - LANGUAGE = 20; - - // IpBlock. - IP_BLOCK = 21; - - // Content Label for category exclusion. - CONTENT_LABEL = 22; - - // Carrier. - CARRIER = 23; - - // A category the user is interested in. - USER_INTEREST = 24; - - // Webpage criterion for dynamic search ads. - WEBPAGE = 25; - - // Operating system version. - OPERATING_SYSTEM_VERSION = 26; - - // App payment model. - APP_PAYMENT_MODEL = 27; - - // Mobile device. - MOBILE_DEVICE = 28; - - // Custom affinity. - CUSTOM_AFFINITY = 29; - - // Custom intent. - CUSTOM_INTENT = 30; - - // Location group. - LOCATION_GROUP = 31; - - // Custom audience - CUSTOM_AUDIENCE = 32; - - // Combined audience - COMBINED_AUDIENCE = 33; - - // Smart Campaign keyword theme - KEYWORD_THEME = 34; - } - - -} diff --git a/google/ads/googleads/v8/enums/custom_audience_member_type.proto b/google/ads/googleads/v8/enums/custom_audience_member_type.proto deleted file mode 100644 index b2850eb63..000000000 --- a/google/ads/googleads/v8/enums/custom_audience_member_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceMemberTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing custom audience member type. - -// The type of custom audience member. -message CustomAudienceMemberTypeEnum { - // Enum containing possible custom audience member types. - enum CustomAudienceMemberType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Users whose interests or actions are described by a keyword. - KEYWORD = 2; - - // Users who have interests related to the website's content. - URL = 3; - - // Users who visit place types described by a place category. - PLACE_CATEGORY = 4; - - // Users who have installed a mobile app. - APP = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/custom_audience_status.proto b/google/ads/googleads/v8/enums/custom_audience_status.proto deleted file mode 100644 index c4eb15557..000000000 --- a/google/ads/googleads/v8/enums/custom_audience_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing custom audience status. - -// The status of custom audience. -message CustomAudienceStatusEnum { - // Enum containing possible custom audience statuses. - enum CustomAudienceStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Enabled status - custom audience is enabled and can be targeted. - ENABLED = 2; - - // Removed status - custom audience is removed and cannot be used for - // targeting. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/custom_audience_type.proto b/google/ads/googleads/v8/enums/custom_audience_type.proto deleted file mode 100644 index fc64ba4f6..000000000 --- a/google/ads/googleads/v8/enums/custom_audience_type.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing custom audience type. - -// The types of custom audience. -message CustomAudienceTypeEnum { - // Enum containing possible custom audience types. - enum CustomAudienceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Google Ads will auto-select the best interpretation at serving - // time. - AUTO = 2; - - // Matches users by their interests. - INTEREST = 3; - - // Matches users by topics they are researching or products they are - // considering for purchase. - PURCHASE_INTENT = 4; - - // Matches users by what they searched on Google Search. - SEARCH = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/custom_interest_member_type.proto b/google/ads/googleads/v8/enums/custom_interest_member_type.proto deleted file mode 100644 index fad33dbb7..000000000 --- a/google/ads/googleads/v8/enums/custom_interest_member_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestMemberTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing custom interest member type. - -// The types of custom interest member, either KEYWORD or URL. -message CustomInterestMemberTypeEnum { - // Enum containing possible custom interest member types. - enum CustomInterestMemberType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Custom interest member type KEYWORD. - KEYWORD = 2; - - // Custom interest member type URL. - URL = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/custom_interest_status.proto b/google/ads/googleads/v8/enums/custom_interest_status.proto deleted file mode 100644 index 1ebafa63a..000000000 --- a/google/ads/googleads/v8/enums/custom_interest_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing custom interest status. - -// The status of custom interest. -message CustomInterestStatusEnum { - // Enum containing possible custom interest types. - enum CustomInterestStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Enabled status - custom interest is enabled and can be targeted to. - ENABLED = 2; - - // Removed status - custom interest is removed and cannot be used for - // targeting. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/custom_interest_type.proto b/google/ads/googleads/v8/enums/custom_interest_type.proto deleted file mode 100644 index 13144b663..000000000 --- a/google/ads/googleads/v8/enums/custom_interest_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing custom interest type. - -// The types of custom interest. -message CustomInterestTypeEnum { - // Enum containing possible custom interest types. - enum CustomInterestType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Allows brand advertisers to define custom affinity audience lists. - CUSTOM_AFFINITY = 2; - - // Allows advertisers to define custom intent audience lists. - CUSTOM_INTENT = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/custom_placeholder_field.proto b/google/ads/googleads/v8/enums/custom_placeholder_field.proto deleted file mode 100644 index 7116a09aa..000000000 --- a/google/ads/googleads/v8/enums/custom_placeholder_field.proto +++ /dev/null @@ -1,129 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Custom placeholder fields. - -// Values for Custom placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message CustomPlaceholderFieldEnum { - // Possible values for Custom placeholder fields. - enum CustomPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Combination ID and ID2 must be unique per - // offer. - ID = 2; - - // Data Type: STRING. Combination ID and ID2 must be unique per offer. - ID2 = 3; - - // Data Type: STRING. Required. Main headline with product name to be shown - // in dynamic ad. - ITEM_TITLE = 4; - - // Data Type: STRING. Optional text to be shown in the image ad. - ITEM_SUBTITLE = 5; - - // Data Type: STRING. Optional description of the product to be shown in the - // ad. - ITEM_DESCRIPTION = 6; - - // Data Type: STRING. Full address of your offer or service, including - // postal code. This will be used to identify the closest product to the - // user when there are multiple offers in the feed that are relevant to the - // user. - ITEM_ADDRESS = 7; - - // Data Type: STRING. Price to be shown in the ad. - // Example: "100.00 USD" - PRICE = 8; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 9; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - SALE_PRICE = 10; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 11; - - // Data Type: URL. Image to be displayed in the ad. Highly recommended for - // image ads. - IMAGE_URL = 12; - - // Data Type: STRING. Used as a recommendation engine signal to serve items - // in the same category. - ITEM_CATEGORY = 13; - - // Data Type: URL_LIST. Final URLs for the ad when using Upgraded - // URLs. User will be redirected to these URLs when they click on an ad, or - // when they click on a specific product for ads that have multiple - // products. - FINAL_URLS = 14; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 15; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 16; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 17; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 18; - - // Data Type: STRING_LIST. List of recommended IDs to show together with - // this item. - SIMILAR_IDS = 19; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 20; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 21; - } - - -} diff --git a/google/ads/googleads/v8/enums/customer_match_upload_key_type.proto b/google/ads/googleads/v8/enums/customer_match_upload_key_type.proto deleted file mode 100644 index de2566ce6..000000000 --- a/google/ads/googleads/v8/enums/customer_match_upload_key_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomerMatchUploadKeyTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Indicates what type of data are the user list's members matched from. -message CustomerMatchUploadKeyTypeEnum { - // Enum describing possible customer match upload key types. - enum CustomerMatchUploadKeyType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Members are matched from customer info such as email address, phone - // number or physical address. - CONTACT_INFO = 2; - - // Members are matched from a user id generated and assigned by the - // advertiser. - CRM_ID = 3; - - // Members are matched from mobile advertising ids. - MOBILE_ADVERTISING_ID = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/customer_pay_per_conversion_eligibility_failure_reason.proto b/google/ads/googleads/v8/enums/customer_pay_per_conversion_eligibility_failure_reason.proto deleted file mode 100644 index 8a698d564..000000000 --- a/google/ads/googleads/v8/enums/customer_pay_per_conversion_eligibility_failure_reason.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "CustomerPayPerConversionEligibilityFailureReasonProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing pay per conversion eligibility failure reasons. - -// Container for enum describing reasons why a customer is not eligible to use -// PaymentMode.CONVERSIONS. -message CustomerPayPerConversionEligibilityFailureReasonEnum { - // Enum describing possible reasons a customer is not eligible to use - // PaymentMode.CONVERSIONS. - enum CustomerPayPerConversionEligibilityFailureReason { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Customer does not have enough conversions. - NOT_ENOUGH_CONVERSIONS = 2; - - // Customer's conversion lag is too high. - CONVERSION_LAG_TOO_HIGH = 3; - - // Customer uses shared budgets. - HAS_CAMPAIGN_WITH_SHARED_BUDGET = 4; - - // Customer has conversions with ConversionActionType.UPLOAD_CLICKS. - HAS_UPLOAD_CLICKS_CONVERSION = 5; - - // Customer's average daily spend is too high. - AVERAGE_DAILY_SPEND_TOO_HIGH = 6; - - // Customer's eligibility has not yet been calculated by the Google Ads - // backend. Check back soon. - ANALYSIS_NOT_COMPLETE = 7; - - // Customer is not eligible due to other reasons. - OTHER = 8; - } - - -} diff --git a/google/ads/googleads/v8/enums/data_driven_model_status.proto b/google/ads/googleads/v8/enums/data_driven_model_status.proto deleted file mode 100644 index 091f0f4a3..000000000 --- a/google/ads/googleads/v8/enums/data_driven_model_status.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DataDrivenModelStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing data-driven model status. - -// Container for enum indicating data driven model status. -message DataDrivenModelStatusEnum { - // Enumerates data driven model statuses. - enum DataDrivenModelStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The data driven model is available. - AVAILABLE = 2; - - // The data driven model is stale. It hasn't been updated for at least 7 - // days. It is still being used, but will become expired if it does not get - // updated for 30 days. - STALE = 3; - - // The data driven model expired. It hasn't been updated for at least 30 - // days and cannot be used. Most commonly this is because there hasn't been - // the required number of events in a recent 30-day period. - EXPIRED = 4; - - // The data driven model has never been generated. Most commonly this is - // because there has never been the required number of events in any 30-day - // period. - NEVER_GENERATED = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/day_of_week.proto b/google/ads/googleads/v8/enums/day_of_week.proto deleted file mode 100644 index 54f8336c5..000000000 --- a/google/ads/googleads/v8/enums/day_of_week.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DayOfWeekProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing days of week. - -// Container for enumeration of days of the week, e.g., "Monday". -message DayOfWeekEnum { - // Enumerates days of the week, e.g., "Monday". - enum DayOfWeek { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Monday. - MONDAY = 2; - - // Tuesday. - TUESDAY = 3; - - // Wednesday. - WEDNESDAY = 4; - - // Thursday. - THURSDAY = 5; - - // Friday. - FRIDAY = 6; - - // Saturday. - SATURDAY = 7; - - // Sunday. - SUNDAY = 8; - } - - -} diff --git a/google/ads/googleads/v8/enums/device.proto b/google/ads/googleads/v8/enums/device.proto deleted file mode 100644 index bd177c4ac..000000000 --- a/google/ads/googleads/v8/enums/device.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DeviceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing devices. - -// Container for enumeration of Google Ads devices available for targeting. -message DeviceEnum { - // Enumerates Google Ads devices available for targeting. - enum Device { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Mobile devices with full browsers. - MOBILE = 2; - - // Tablets with full browsers. - TABLET = 3; - - // Computers. - DESKTOP = 4; - - // Smart TVs and game consoles. - CONNECTED_TV = 6; - - // Other device types. - OTHER = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/display_ad_format_setting.proto b/google/ads/googleads/v8/enums/display_ad_format_setting.proto deleted file mode 100644 index aed99640c..000000000 --- a/google/ads/googleads/v8/enums/display_ad_format_setting.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DisplayAdFormatSettingProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing display ad format settings. - -// Container for display ad format settings. -message DisplayAdFormatSettingEnum { - // Enumerates display ad format settings. - enum DisplayAdFormatSetting { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Text, image and native formats. - ALL_FORMATS = 2; - - // Text and image formats. - NON_NATIVE = 3; - - // Native format, i.e. the format rendering is controlled by the publisher - // and not by Google. - NATIVE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/display_upload_product_type.proto b/google/ads/googleads/v8/enums/display_upload_product_type.proto deleted file mode 100644 index c1f4baf00..000000000 --- a/google/ads/googleads/v8/enums/display_upload_product_type.proto +++ /dev/null @@ -1,97 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DisplayUploadProductTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing display upload product types. - -// Container for display upload product types. Product types that have the word -// "DYNAMIC" in them must be associated with a campaign that has a dynamic -// remarketing feed. See https://support.google.com/google-ads/answer/6053288 -// for more info about dynamic remarketing. Other product types are regarded -// as "static" and do not have this requirement. -message DisplayUploadProductTypeEnum { - // Enumerates display upload product types. - enum DisplayUploadProductType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // HTML5 upload ad. This product type requires the upload_media_bundle - // field in DisplayUploadAdInfo to be set. - HTML5_UPLOAD_AD = 2; - - // Dynamic HTML5 education ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in an education campaign. - DYNAMIC_HTML5_EDUCATION_AD = 3; - - // Dynamic HTML5 flight ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a flight campaign. - DYNAMIC_HTML5_FLIGHT_AD = 4; - - // Dynamic HTML5 hotel and rental ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a hotel campaign. - DYNAMIC_HTML5_HOTEL_RENTAL_AD = 5; - - // Dynamic HTML5 job ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a job campaign. - DYNAMIC_HTML5_JOB_AD = 6; - - // Dynamic HTML5 local ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a local campaign. - DYNAMIC_HTML5_LOCAL_AD = 7; - - // Dynamic HTML5 real estate ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a real estate campaign. - DYNAMIC_HTML5_REAL_ESTATE_AD = 8; - - // Dynamic HTML5 custom ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a custom campaign. - DYNAMIC_HTML5_CUSTOM_AD = 9; - - // Dynamic HTML5 travel ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a travel campaign. - DYNAMIC_HTML5_TRAVEL_AD = 10; - - // Dynamic HTML5 hotel ad. This product type requires the - // upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be - // used in a hotel campaign. - DYNAMIC_HTML5_HOTEL_AD = 11; - } - - -} diff --git a/google/ads/googleads/v8/enums/distance_bucket.proto b/google/ads/googleads/v8/enums/distance_bucket.proto deleted file mode 100644 index 8466672f5..000000000 --- a/google/ads/googleads/v8/enums/distance_bucket.proto +++ /dev/null @@ -1,127 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DistanceBucketProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing distance buckets. - -// Container for distance buckets of a user’s distance from an advertiser’s -// location extension. -message DistanceBucketEnum { - // The distance bucket for a user’s distance from an advertiser’s location - // extension. - enum DistanceBucket { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // User was within 700m of the location. - WITHIN_700M = 2; - - // User was within 1KM of the location. - WITHIN_1KM = 3; - - // User was within 5KM of the location. - WITHIN_5KM = 4; - - // User was within 10KM of the location. - WITHIN_10KM = 5; - - // User was within 15KM of the location. - WITHIN_15KM = 6; - - // User was within 20KM of the location. - WITHIN_20KM = 7; - - // User was within 25KM of the location. - WITHIN_25KM = 8; - - // User was within 30KM of the location. - WITHIN_30KM = 9; - - // User was within 35KM of the location. - WITHIN_35KM = 10; - - // User was within 40KM of the location. - WITHIN_40KM = 11; - - // User was within 45KM of the location. - WITHIN_45KM = 12; - - // User was within 50KM of the location. - WITHIN_50KM = 13; - - // User was within 55KM of the location. - WITHIN_55KM = 14; - - // User was within 60KM of the location. - WITHIN_60KM = 15; - - // User was within 65KM of the location. - WITHIN_65KM = 16; - - // User was beyond 65KM of the location. - BEYOND_65KM = 17; - - // User was within 0.7 miles of the location. - WITHIN_0_7MILES = 18; - - // User was within 1 mile of the location. - WITHIN_1MILE = 19; - - // User was within 5 miles of the location. - WITHIN_5MILES = 20; - - // User was within 10 miles of the location. - WITHIN_10MILES = 21; - - // User was within 15 miles of the location. - WITHIN_15MILES = 22; - - // User was within 20 miles of the location. - WITHIN_20MILES = 23; - - // User was within 25 miles of the location. - WITHIN_25MILES = 24; - - // User was within 30 miles of the location. - WITHIN_30MILES = 25; - - // User was within 35 miles of the location. - WITHIN_35MILES = 26; - - // User was within 40 miles of the location. - WITHIN_40MILES = 27; - - // User was beyond 40 miles of the location. - BEYOND_40MILES = 28; - } - - -} diff --git a/google/ads/googleads/v8/enums/dsa_page_feed_criterion_field.proto b/google/ads/googleads/v8/enums/dsa_page_feed_criterion_field.proto deleted file mode 100644 index de45771a8..000000000 --- a/google/ads/googleads/v8/enums/dsa_page_feed_criterion_field.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "DsaPageFeedCriterionFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Dynamic Search Ad Page Feed criterion fields. - -// Values for Dynamic Search Ad Page Feed criterion fields. -message DsaPageFeedCriterionFieldEnum { - // Possible values for Dynamic Search Ad Page Feed criterion fields. - enum DsaPageFeedCriterionField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: URL or URL_LIST. URL of the web page you want to target. - PAGE_URL = 2; - - // Data Type: STRING_LIST. The labels that will help you target ads within - // your page feed. - LABEL = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/education_placeholder_field.proto b/google/ads/googleads/v8/enums/education_placeholder_field.proto deleted file mode 100644 index 17d866cd0..000000000 --- a/google/ads/googleads/v8/enums/education_placeholder_field.proto +++ /dev/null @@ -1,111 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "EducationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Education placeholder fields. - -// Values for Education placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message EducationPlaceholderFieldEnum { - // Possible values for Education placeholder fields. - enum EducationPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Combination of PROGRAM ID and LOCATION ID - // must be unique per offer. - PROGRAM_ID = 2; - - // Data Type: STRING. Combination of PROGRAM ID and LOCATION ID must be - // unique per offer. - LOCATION_ID = 3; - - // Data Type: STRING. Required. Main headline with program name to be shown - // in dynamic ad. - PROGRAM_NAME = 4; - - // Data Type: STRING. Area of study that can be shown in dynamic ad. - AREA_OF_STUDY = 5; - - // Data Type: STRING. Description of program that can be shown in dynamic - // ad. - PROGRAM_DESCRIPTION = 6; - - // Data Type: STRING. Name of school that can be shown in dynamic ad. - SCHOOL_NAME = 7; - - // Data Type: STRING. Complete school address, including postal code. - ADDRESS = 8; - - // Data Type: URL. Image to be displayed in ads. - THUMBNAIL_IMAGE_URL = 9; - - // Data Type: URL. Alternative hosted file of image to be used in the ad. - ALTERNATIVE_THUMBNAIL_IMAGE_URL = 10; - - // Data Type: URL_LIST. Required. Final URLs to be used in ad when using - // Upgraded URLs; the more specific the better (e.g. the individual URL of a - // specific program and its location). - FINAL_URLS = 11; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 12; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 13; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 14; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 15; - - // Data Type: STRING_LIST. List of recommended program IDs to show together - // with this item. - SIMILAR_PROGRAM_IDS = 16; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 17; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 18; - } - - -} diff --git a/google/ads/googleads/v8/enums/extension_setting_device.proto b/google/ads/googleads/v8/enums/extension_setting_device.proto deleted file mode 100644 index c7646f8ef..000000000 --- a/google/ads/googleads/v8/enums/extension_setting_device.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionSettingDeviceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing extension setting device type. - -// Container for enum describing extension setting device types. -message ExtensionSettingDeviceEnum { - // Possible device types for an extension setting. - enum ExtensionSettingDevice { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Mobile. The extensions in the extension setting will only serve on - // mobile devices. - MOBILE = 2; - - // Desktop. The extensions in the extension setting will only serve on - // desktop devices. - DESKTOP = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/extension_type.proto b/google/ads/googleads/v8/enums/extension_type.proto deleted file mode 100644 index df3f09034..000000000 --- a/google/ads/googleads/v8/enums/extension_type.proto +++ /dev/null @@ -1,84 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing extension type. - -// Container for enum describing possible data types for an extension in an -// extension setting. -message ExtensionTypeEnum { - // Possible data types for an extension in an extension setting. - enum ExtensionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // None. - NONE = 2; - - // App. - APP = 3; - - // Call. - CALL = 4; - - // Callout. - CALLOUT = 5; - - // Message. - MESSAGE = 6; - - // Price. - PRICE = 7; - - // Promotion. - PROMOTION = 8; - - // Sitelink. - SITELINK = 10; - - // Structured snippet. - STRUCTURED_SNIPPET = 11; - - // Location. - LOCATION = 12; - - // Affiliate location. - AFFILIATE_LOCATION = 13; - - // Hotel callout - HOTEL_CALLOUT = 15; - - // Image. - IMAGE = 16; - } - - -} diff --git a/google/ads/googleads/v8/enums/external_conversion_source.proto b/google/ads/googleads/v8/enums/external_conversion_source.proto deleted file mode 100644 index d0b6fb79f..000000000 --- a/google/ads/googleads/v8/enums/external_conversion_source.proto +++ /dev/null @@ -1,152 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ExternalConversionSourceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing the external conversion source that is -// associated with a ConversionAction. -message ExternalConversionSourceEnum { - // The external conversion source that is associated with a ConversionAction. - enum ExternalConversionSource { - // Not specified. - UNSPECIFIED = 0; - - // Represents value unknown in this version. - UNKNOWN = 1; - - // Conversion that occurs when a user navigates to a particular webpage - // after viewing an ad; Displayed in Google Ads UI as 'Website'. - WEBPAGE = 2; - - // Conversion that comes from linked Google Analytics goal or transaction; - // Displayed in Google Ads UI as 'Analytics'. - ANALYTICS = 3; - - // Website conversion that is uploaded through ConversionUploadService; - // Displayed in Google Ads UI as 'Import from clicks'. - UPLOAD = 4; - - // Conversion that occurs when a user clicks on a call extension directly on - // an ad; Displayed in Google Ads UI as 'Calls from ads'. - AD_CALL_METRICS = 5; - - // Conversion that occurs when a user calls a dynamically-generated phone - // number (by installed javascript) from an advertiser's website after - // clicking on an ad; Displayed in Google Ads UI as 'Calls from website'. - WEBSITE_CALL_METRICS = 6; - - // Conversion that occurs when a user visits an advertiser's retail store - // after clicking on a Google ad; - // Displayed in Google Ads UI as 'Store visits'. - STORE_VISITS = 7; - - // Conversion that occurs when a user takes an in-app action such as a - // purchase in an Android app; - // Displayed in Google Ads UI as 'Android in-app action'. - ANDROID_IN_APP = 8; - - // Conversion that occurs when a user takes an in-app action such as a - // purchase in an iOS app; - // Displayed in Google Ads UI as 'iOS in-app action'. - IOS_IN_APP = 9; - - // Conversion that occurs when a user opens an iOS app for the first time; - // Displayed in Google Ads UI as 'iOS app install (first open)'. - IOS_FIRST_OPEN = 10; - - // Legacy app conversions that do not have an AppPlatform provided; - // Displayed in Google Ads UI as 'Mobile app'. - APP_UNSPECIFIED = 11; - - // Conversion that occurs when a user opens an Android app for the first - // time; Displayed in Google Ads UI as 'Android app install (first open)'. - ANDROID_FIRST_OPEN = 12; - - // Call conversion that is uploaded through ConversionUploadService; - // Displayed in Google Ads UI as 'Import from calls'. - UPLOAD_CALLS = 13; - - // Conversion that comes from a linked Firebase event; - // Displayed in Google Ads UI as 'Firebase'. - FIREBASE = 14; - - // Conversion that occurs when a user clicks on a mobile phone number; - // Displayed in Google Ads UI as 'Phone number clicks'. - CLICK_TO_CALL = 15; - - // Conversion that comes from Salesforce; - // Displayed in Google Ads UI as 'Salesforce.com'. - SALESFORCE = 16; - - // Conversion that comes from in-store purchases recorded by CRM; - // Displayed in Google Ads UI as 'Store sales (data partner)'. - STORE_SALES_CRM = 17; - - // Conversion that comes from in-store purchases from payment network; - // Displayed in Google Ads UI as 'Store sales (payment network)'. - STORE_SALES_PAYMENT_NETWORK = 18; - - // Codeless Google Play conversion; - // Displayed in Google Ads UI as 'Google Play'. - GOOGLE_PLAY = 19; - - // Conversion that comes from a linked third-party app analytics event; - // Displayed in Google Ads UI as 'Third-party app analytics'. - THIRD_PARTY_APP_ANALYTICS = 20; - - // Conversion that is controlled by Google Attribution. - GOOGLE_ATTRIBUTION = 21; - - // Store Sales conversion based on first-party or third-party merchant data - // uploads. Displayed in Google Ads UI as 'Store sales (direct upload)'. - STORE_SALES_DIRECT_UPLOAD = 23; - - // Store Sales conversion based on first-party or third-party merchant - // data uploads and/or from in-store purchases using cards from payment - // networks. Displayed in Google Ads UI as 'Store sales'. - STORE_SALES = 24; - - // Conversions imported from Search Ads 360 Floodlight data. - SEARCH_ADS_360 = 25; - - // Conversions that track local actions from Google's products and services - // after interacting with an ad. - GOOGLE_HOSTED = 27; - - // Conversions reported by Floodlight tags. - FLOODLIGHT = 29; - - // Conversions that come from Google Analytics specifically for Search Ads - // 360. Displayed in Google Ads UI as Analytics (SA360). - ANALYTICS_SEARCH_ADS_360 = 31; - - // Conversion that comes from a linked Firebase event for Search Ads 360. - FIREBASE_SEARCH_ADS_360 = 33; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_attribute_type.proto b/google/ads/googleads/v8/enums/feed_attribute_type.proto deleted file mode 100644 index 211f204e3..000000000 --- a/google/ads/googleads/v8/enums/feed_attribute_type.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedAttributeTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed attribute type. - -// Container for enum describing possible data types for a feed attribute. -message FeedAttributeTypeEnum { - // Possible data types for a feed attribute. - enum FeedAttributeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Int64. - INT64 = 2; - - // Double. - DOUBLE = 3; - - // String. - STRING = 4; - - // Boolean. - BOOLEAN = 5; - - // Url. - URL = 6; - - // Datetime. - DATE_TIME = 7; - - // Int64 list. - INT64_LIST = 8; - - // Double (8 bytes) list. - DOUBLE_LIST = 9; - - // String list. - STRING_LIST = 10; - - // Boolean list. - BOOLEAN_LIST = 11; - - // Url list. - URL_LIST = 12; - - // Datetime list. - DATE_TIME_LIST = 13; - - // Price. - PRICE = 14; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_quality_approval_status.proto b/google/ads/googleads/v8/enums/feed_item_quality_approval_status.proto deleted file mode 100644 index 52d18ad00..000000000 --- a/google/ads/googleads/v8/enums/feed_item_quality_approval_status.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemQualityApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed item quality evaluation approval statuses. - -// Container for enum describing possible quality evaluation approval statuses -// of a feed item. -message FeedItemQualityApprovalStatusEnum { - // The possible quality evaluation approval statuses of a feed item. - enum FeedItemQualityApprovalStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Meets all quality expectations. - APPROVED = 2; - - // Does not meet some quality expectations. The specific reason is found in - // the quality_disapproval_reasons field. - DISAPPROVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_quality_disapproval_reason.proto b/google/ads/googleads/v8/enums/feed_item_quality_disapproval_reason.proto deleted file mode 100644 index 4394d2685..000000000 --- a/google/ads/googleads/v8/enums/feed_item_quality_disapproval_reason.proto +++ /dev/null @@ -1,99 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemQualityDisapprovalReasonProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed item quality disapproval reasons. - -// Container for enum describing possible quality evaluation disapproval reasons -// of a feed item. -message FeedItemQualityDisapprovalReasonEnum { - // The possible quality evaluation disapproval reasons of a feed item. - enum FeedItemQualityDisapprovalReason { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Price contains repetitive headers. - PRICE_TABLE_REPETITIVE_HEADERS = 2; - - // Price contains repetitive description. - PRICE_TABLE_REPETITIVE_DESCRIPTION = 3; - - // Price contains inconsistent items. - PRICE_TABLE_INCONSISTENT_ROWS = 4; - - // Price contains qualifiers in description. - PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS = 5; - - // Price contains an unsupported language. - PRICE_UNSUPPORTED_LANGUAGE = 6; - - // Price item header is not relevant to the price type. - PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH = 7; - - // Price item header has promotional text. - PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT = 8; - - // Price item description is not relevant to the item header. - PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT = 9; - - // Price item description contains promotional text. - PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT = 10; - - // Price item header and description are repetitive. - PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE = 11; - - // Price item is in a foreign language, nonsense, or can't be rated. - PRICE_TABLE_ROW_UNRATEABLE = 12; - - // Price item price is invalid or inaccurate. - PRICE_TABLE_ROW_PRICE_INVALID = 13; - - // Price item URL is invalid or irrelevant. - PRICE_TABLE_ROW_URL_INVALID = 14; - - // Price item header or description has price. - PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE = 15; - - // Structured snippet values do not match the header. - STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED = 16; - - // Structured snippet values are repeated. - STRUCTURED_SNIPPETS_REPEATED_VALUES = 17; - - // Structured snippet values violate editorial guidelines like punctuation. - STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES = 18; - - // Structured snippet contain promotional text. - STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT = 19; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_set_status.proto b/google/ads/googleads/v8/enums/feed_item_set_status.proto deleted file mode 100644 index e27eeaa6a..000000000 --- a/google/ads/googleads/v8/enums/feed_item_set_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed item set status. - -// Container for enum describing possible statuses of a feed item set. -message FeedItemSetStatusEnum { - // Possible statuses of a feed item set. - enum FeedItemSetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item set is enabled. - ENABLED = 2; - - // Feed item set has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_set_string_filter_type.proto b/google/ads/googleads/v8/enums/feed_item_set_string_filter_type.proto deleted file mode 100644 index 29f6703b9..000000000 --- a/google/ads/googleads/v8/enums/feed_item_set_string_filter_type.proto +++ /dev/null @@ -1,45 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetStringFilterTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// The type of string matching to be used for a dynamic FeedItemSet filter. -message FeedItemSetStringFilterTypeEnum { - // describe the possible types for a FeedItemSetStringFilter. - enum FeedItemSetStringFilterType { - // Not specified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The dynamic set filter will use exact string matching. - EXACT = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_status.proto b/google/ads/googleads/v8/enums/feed_item_status.proto deleted file mode 100644 index 99923cb65..000000000 --- a/google/ads/googleads/v8/enums/feed_item_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed item status. - -// Container for enum describing possible statuses of a feed item. -message FeedItemStatusEnum { - // Possible statuses of a feed item. - enum FeedItemStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item is enabled. - ENABLED = 2; - - // Feed item has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_target_device.proto b/google/ads/googleads/v8/enums/feed_item_target_device.proto deleted file mode 100644 index 2bcbe6fb1..000000000 --- a/google/ads/googleads/v8/enums/feed_item_target_device.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetDeviceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed item target device type. - -// Container for enum describing possible data types for a feed item target -// device. -message FeedItemTargetDeviceEnum { - // Possible data types for a feed item target device. - enum FeedItemTargetDevice { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile. - MOBILE = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_target_status.proto b/google/ads/googleads/v8/enums/feed_item_target_status.proto deleted file mode 100644 index 2980d43c5..000000000 --- a/google/ads/googleads/v8/enums/feed_item_target_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed item target status. - -// Container for enum describing possible statuses of a feed item target. -message FeedItemTargetStatusEnum { - // Possible statuses of a feed item target. - enum FeedItemTargetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item target is enabled. - ENABLED = 2; - - // Feed item target has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_target_type.proto b/google/ads/googleads/v8/enums/feed_item_target_type.proto deleted file mode 100644 index 2c3cb4df4..000000000 --- a/google/ads/googleads/v8/enums/feed_item_target_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed item target type status. - -// Container for enum describing possible types of a feed item target. -message FeedItemTargetTypeEnum { - // Possible type of a feed item target. - enum FeedItemTargetType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item targets a campaign. - CAMPAIGN = 2; - - // Feed item targets an ad group. - AD_GROUP = 3; - - // Feed item targets a criterion. - CRITERION = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_item_validation_status.proto b/google/ads/googleads/v8/enums/feed_item_validation_status.proto deleted file mode 100644 index fdd1a637c..000000000 --- a/google/ads/googleads/v8/enums/feed_item_validation_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemValidationStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed item validation statuses. - -// Container for enum describing possible validation statuses of a feed item. -message FeedItemValidationStatusEnum { - // The possible validation statuses of a feed item. - enum FeedItemValidationStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Validation pending. - PENDING = 2; - - // An error was found. - INVALID = 3; - - // Feed item is semantically well-formed. - VALID = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_link_status.proto b/google/ads/googleads/v8/enums/feed_link_status.proto deleted file mode 100644 index 3d68d849c..000000000 --- a/google/ads/googleads/v8/enums/feed_link_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedLinkStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing status of a feed link. - -// Container for an enum describing possible statuses of a feed link. -message FeedLinkStatusEnum { - // Possible statuses of a feed link. - enum FeedLinkStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed link is enabled. - ENABLED = 2; - - // Feed link has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_mapping_criterion_type.proto b/google/ads/googleads/v8/enums/feed_mapping_criterion_type.proto deleted file mode 100644 index 7b954eea4..000000000 --- a/google/ads/googleads/v8/enums/feed_mapping_criterion_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingCriterionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing criterion types for feed mappings. - -// Container for enum describing possible criterion types for a feed mapping. -message FeedMappingCriterionTypeEnum { - // Possible placeholder types for a feed mapping. - enum FeedMappingCriterionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Allows campaign targeting at locations within a location feed. - LOCATION_EXTENSION_TARGETING = 4; - - // Allows url targeting for your dynamic search ads within a page feed. - DSA_PAGE_FEED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_mapping_status.proto b/google/ads/googleads/v8/enums/feed_mapping_status.proto deleted file mode 100644 index 7c3e6f75a..000000000 --- a/google/ads/googleads/v8/enums/feed_mapping_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed mapping status. - -// Container for enum describing possible statuses of a feed mapping. -message FeedMappingStatusEnum { - // Possible statuses of a feed mapping. - enum FeedMappingStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed mapping is enabled. - ENABLED = 2; - - // Feed mapping has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/feed_origin.proto b/google/ads/googleads/v8/enums/feed_origin.proto deleted file mode 100644 index fabf0c00d..000000000 --- a/google/ads/googleads/v8/enums/feed_origin.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedOriginProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed origin. - -// Container for enum describing possible values for a feed origin. -message FeedOriginEnum { - // Possible values for a feed origin. - enum FeedOrigin { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The FeedAttributes for this Feed are managed by the - // user. Users can add FeedAttributes to this Feed. - USER = 2; - - // The FeedAttributes for an 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/google/ads/googleads/v8/enums/feed_status.proto b/google/ads/googleads/v8/enums/feed_status.proto deleted file mode 100644 index 7b2b383bb..000000000 --- a/google/ads/googleads/v8/enums/feed_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FeedStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed status. - -// Container for enum describing possible statuses of a feed. -message FeedStatusEnum { - // Possible statuses of a feed. - enum FeedStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed is enabled. - ENABLED = 2; - - // Feed has been removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/flight_placeholder_field.proto b/google/ads/googleads/v8/enums/flight_placeholder_field.proto deleted file mode 100644 index 905bf249c..000000000 --- a/google/ads/googleads/v8/enums/flight_placeholder_field.proto +++ /dev/null @@ -1,118 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FlightsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Flight placeholder fields. - -// Values for Flight placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message FlightPlaceholderFieldEnum { - // Possible values for Flight placeholder fields. - enum FlightPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Destination id. Example: PAR, LON. - // For feed items that only have destination id, destination id must be a - // unique key. For feed items that have both destination id and origin id, - // then the combination must be a unique key. - DESTINATION_ID = 2; - - // Data Type: STRING. Origin id. Example: PAR, LON. - // Optional. Combination of destination id and origin id must be unique per - // offer. - ORIGIN_ID = 3; - - // Data Type: STRING. Required. Main headline with product name to be shown - // in dynamic ad. - FLIGHT_DESCRIPTION = 4; - - // Data Type: STRING. Shorter names are recommended. - ORIGIN_NAME = 5; - - // Data Type: STRING. Shorter names are recommended. - DESTINATION_NAME = 6; - - // Data Type: STRING. Price to be shown in the ad. - // Example: "100.00 USD" - FLIGHT_PRICE = 7; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 8; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - FLIGHT_SALE_PRICE = 9; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 10; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 11; - - // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded - // URLs. User will be redirected to these URLs when they click on an ad, or - // when they click on a specific flight for ads that show multiple - // flights. - FINAL_URLS = 12; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 13; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 14; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 15; - - // Data Type: STRING_LIST. List of recommended destination IDs to show - // together with this item. - SIMILAR_DESTINATION_IDS = 16; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 17; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 18; - } - - -} diff --git a/google/ads/googleads/v8/enums/frequency_cap_event_type.proto b/google/ads/googleads/v8/enums/frequency_cap_event_type.proto deleted file mode 100644 index 7725e9320..000000000 --- a/google/ads/googleads/v8/enums/frequency_cap_event_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FrequencyCapEventTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing frequency caps. - -// Container for enum describing the type of event that the cap applies to. -message FrequencyCapEventTypeEnum { - // The type of event that the cap applies to (e.g. impression). - enum FrequencyCapEventType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The cap applies on ad impressions. - IMPRESSION = 2; - - // The cap applies on video ad views. - VIDEO_VIEW = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/frequency_cap_level.proto b/google/ads/googleads/v8/enums/frequency_cap_level.proto deleted file mode 100644 index 16102a97e..000000000 --- a/google/ads/googleads/v8/enums/frequency_cap_level.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FrequencyCapLevelProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing frequency caps. - -// Container for enum describing the level on which the cap is to be applied. -message FrequencyCapLevelEnum { - // The level on which the cap is to be applied (e.g ad group ad, ad group). - // Cap is applied to all the resources of this level. - enum FrequencyCapLevel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The cap is applied at the ad group ad level. - AD_GROUP_AD = 2; - - // The cap is applied at the ad group level. - AD_GROUP = 3; - - // The cap is applied at the campaign level. - CAMPAIGN = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/frequency_cap_time_unit.proto b/google/ads/googleads/v8/enums/frequency_cap_time_unit.proto deleted file mode 100644 index c3f1fc2f6..000000000 --- a/google/ads/googleads/v8/enums/frequency_cap_time_unit.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "FrequencyCapTimeUnitProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing frequency caps. - -// Container for enum describing the unit of time the cap is defined at. -message FrequencyCapTimeUnitEnum { - // Unit of time the cap is defined at (e.g. day, week). - enum FrequencyCapTimeUnit { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The cap would define limit per one day. - DAY = 2; - - // The cap would define limit per one week. - WEEK = 3; - - // The cap would define limit per one month. - MONTH = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/gender_type.proto b/google/ads/googleads/v8/enums/gender_type.proto deleted file mode 100644 index c2c127d67..000000000 --- a/google/ads/googleads/v8/enums/gender_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GenderTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing gender types. - -// Container for enum describing the type of demographic genders. -message GenderTypeEnum { - // The type of demographic genders (e.g. female). - enum GenderType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Male. - MALE = 10; - - // Female. - FEMALE = 11; - - // Undetermined gender. - UNDETERMINED = 20; - } - - -} diff --git a/google/ads/googleads/v8/enums/geo_target_constant_status.proto b/google/ads/googleads/v8/enums/geo_target_constant_status.proto deleted file mode 100644 index 8107b2afb..000000000 --- a/google/ads/googleads/v8/enums/geo_target_constant_status.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetConstantStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing geo target constant statuses. - -// Container for describing the status of a geo target constant. -message GeoTargetConstantStatusEnum { - // The possible statuses of a geo target constant. - enum GeoTargetConstantStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The geo target constant is valid. - ENABLED = 2; - - // The geo target constant is obsolete and will be removed. - REMOVAL_PLANNED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/geo_targeting_restriction.proto b/google/ads/googleads/v8/enums/geo_targeting_restriction.proto deleted file mode 100644 index c5645023e..000000000 --- a/google/ads/googleads/v8/enums/geo_targeting_restriction.proto +++ /dev/null @@ -1,49 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetingRestrictionProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing GeoTargetingRestriction. - -// Message describing feed item geo targeting restriction. -message GeoTargetingRestrictionEnum { - // A restriction used to determine if the request context's - // geo should be matched. - enum GeoTargetingRestriction { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Indicates that request context should match the physical location of - // the user. - LOCATION_OF_PRESENCE = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/geo_targeting_type.proto b/google/ads/googleads/v8/enums/geo_targeting_type.proto deleted file mode 100644 index d6781c44f..000000000 --- a/google/ads/googleads/v8/enums/geo_targeting_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetingTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing geo targeting types. - -// Container for enum describing possible geo targeting types. -message GeoTargetingTypeEnum { - // The possible geo targeting types. - enum GeoTargetingType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Location the user is interested in while making the query. - AREA_OF_INTEREST = 2; - - // Location of the user issuing the query. - LOCATION_OF_PRESENCE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/google_ads_field_category.proto b/google/ads/googleads/v8/enums/google_ads_field_category.proto deleted file mode 100644 index f78abad54..000000000 --- a/google/ads/googleads/v8/enums/google_ads_field_category.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsFieldCategoryProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing GoogleAdsField categories. - -// Container for enum that determines if the described artifact is a resource -// or a field, and if it is a field, when it segments search queries. -message GoogleAdsFieldCategoryEnum { - // The category of the artifact. - enum GoogleAdsFieldCategory { - // Unspecified - UNSPECIFIED = 0; - - // Unknown - UNKNOWN = 1; - - // The described artifact is a resource. - RESOURCE = 2; - - // The described artifact is a field and is an attribute of a resource. - // Including a resource attribute field in a query may segment the query if - // the resource to which it is attributed segments the resource found in - // the FROM clause. - ATTRIBUTE = 3; - - // The described artifact is a field and always segments search queries. - SEGMENT = 5; - - // The described artifact is a field and is a metric. It never segments - // search queries. - METRIC = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/google_ads_field_data_type.proto b/google/ads/googleads/v8/enums/google_ads_field_data_type.proto deleted file mode 100644 index ae2cbf9cd..000000000 --- a/google/ads/googleads/v8/enums/google_ads_field_data_type.proto +++ /dev/null @@ -1,102 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsFieldDataTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing GoogleAdsField data types. - -// Container holding the various data types. -message GoogleAdsFieldDataTypeEnum { - // These are the various types a GoogleAdsService artifact may take on. - enum GoogleAdsFieldDataType { - // Unspecified - UNSPECIFIED = 0; - - // Unknown - UNKNOWN = 1; - - // Maps to google.protobuf.BoolValue - // - // Applicable operators: =, != - BOOLEAN = 2; - - // Maps to google.protobuf.StringValue. It can be compared using the set of - // operators specific to dates however. - // - // Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN - DATE = 3; - - // Maps to google.protobuf.DoubleValue - // - // Applicable operators: =, !=, <, >, IN, NOT IN - DOUBLE = 4; - - // Maps to an enum. It's specific definition can be found at type_url. - // - // Applicable operators: =, !=, IN, NOT IN - ENUM = 5; - - // Maps to google.protobuf.FloatValue - // - // Applicable operators: =, !=, <, >, IN, NOT IN - FLOAT = 6; - - // Maps to google.protobuf.Int32Value - // - // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN - INT32 = 7; - - // Maps to google.protobuf.Int64Value - // - // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN - INT64 = 8; - - // Maps to a protocol buffer message type. The data type's details can be - // found in type_url. - // - // No operators work with MESSAGE fields. - MESSAGE = 9; - - // Maps to google.protobuf.StringValue. Represents the resource name - // (unique id) of a resource or one of its foreign keys. - // - // No operators work with RESOURCE_NAME fields. - RESOURCE_NAME = 10; - - // Maps to google.protobuf.StringValue. - // - // Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN - STRING = 11; - - // Maps to google.protobuf.UInt64Value - // - // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN - UINT64 = 12; - } - - -} diff --git a/google/ads/googleads/v8/enums/google_voice_call_status.proto b/google/ads/googleads/v8/enums/google_voice_call_status.proto deleted file mode 100644 index b526ee991..000000000 --- a/google/ads/googleads/v8/enums/google_voice_call_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "GoogleVoiceCallStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing google voice call status. - -// Container for enum describing possible statuses of a google voice call. -message GoogleVoiceCallStatusEnum { - // Possible statuses of a google voice call. - enum GoogleVoiceCallStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The call was missed. - MISSED = 2; - - // The call was received. - RECEIVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/hotel_date_selection_type.proto b/google/ads/googleads/v8/enums/hotel_date_selection_type.proto deleted file mode 100644 index 54bec58ec..000000000 --- a/google/ads/googleads/v8/enums/hotel_date_selection_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "HotelDateSelectionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing hotel date selection types. - -// Container for enum describing possible hotel date selection types -message HotelDateSelectionTypeEnum { - // Enum describing possible hotel date selection types. - enum HotelDateSelectionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Dates selected by default. - DEFAULT_SELECTION = 50; - - // Dates selected by the user. - USER_SELECTED = 51; - } - - -} diff --git a/google/ads/googleads/v8/enums/hotel_placeholder_field.proto b/google/ads/googleads/v8/enums/hotel_placeholder_field.proto deleted file mode 100644 index 95d90c8c6..000000000 --- a/google/ads/googleads/v8/enums/hotel_placeholder_field.proto +++ /dev/null @@ -1,124 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "HotelsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Hotel placeholder fields. - -// Values for Hotel placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message HotelPlaceholderFieldEnum { - // Possible values for Hotel placeholder fields. - enum HotelPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Unique ID. - PROPERTY_ID = 2; - - // Data Type: STRING. Required. Main headline with property name to be shown - // in dynamic ad. - PROPERTY_NAME = 3; - - // Data Type: STRING. Name of destination to be shown in dynamic ad. - DESTINATION_NAME = 4; - - // Data Type: STRING. Description of destination to be shown in dynamic ad. - DESCRIPTION = 5; - - // Data Type: STRING. Complete property address, including postal code. - ADDRESS = 6; - - // Data Type: STRING. Price to be shown in the ad. - // Example: "100.00 USD" - PRICE = 7; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 8; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - SALE_PRICE = 9; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 10; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 11; - - // Data Type: STRING. Category of property used to group like items together - // for recommendation engine. - CATEGORY = 12; - - // Data Type: INT64. Star rating (1 to 5) used to group like items - // together for recommendation engine. - STAR_RATING = 13; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 14; - - // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded - // URLs. User will be redirected to these URLs when they click on an ad, or - // when they click on a specific flight for ads that show multiple - // flights. - FINAL_URLS = 15; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 16; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 17; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 18; - - // Data Type: STRING_LIST. List of recommended property IDs to show together - // with this item. - SIMILAR_PROPERTY_IDS = 19; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 20; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 21; - } - - -} diff --git a/google/ads/googleads/v8/enums/hotel_price_bucket.proto b/google/ads/googleads/v8/enums/hotel_price_bucket.proto deleted file mode 100644 index 875d97afd..000000000 --- a/google/ads/googleads/v8/enums/hotel_price_bucket.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "HotelPriceBucketProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing hotel price buckets. - -// Container for enum describing hotel price bucket for a hotel itinerary. -message HotelPriceBucketEnum { - // Enum describing possible hotel price buckets. - enum HotelPriceBucket { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Uniquely lowest price. Partner has the lowest price, and no other - // partners are within a small variance of that price. - LOWEST_UNIQUE = 2; - - // Tied for lowest price. Partner is within a small variance of the lowest - // price. - LOWEST_TIED = 3; - - // Not lowest price. Partner is not within a small variance of the lowest - // price. - NOT_LOWEST = 4; - - // Partner was the only one shown. - ONLY_PARTNER_SHOWN = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/hotel_rate_type.proto b/google/ads/googleads/v8/enums/hotel_rate_type.proto deleted file mode 100644 index c884ca52f..000000000 --- a/google/ads/googleads/v8/enums/hotel_rate_type.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "HotelRateTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing hotel rate types. - -// Container for enum describing possible hotel rate types. -message HotelRateTypeEnum { - // Enum describing possible hotel rate types. - enum HotelRateType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Rate type information is unavailable. - UNAVAILABLE = 2; - - // Rates available to everyone. - PUBLIC_RATE = 3; - - // A membership program rate is available and satisfies basic requirements - // like having a public rate available. UI treatment will strikethrough the - // public rate and indicate that a discount is available to the user. For - // more on Qualified Rates, visit - // https://developers.google.com/hotels/hotel-ads/dev-guide/qualified-rates - QUALIFIED_RATE = 4; - - // Rates available to users that satisfy some eligibility criteria. e.g. - // all signed-in users, 20% of mobile users, all mobile users in Canada, - // etc. - PRIVATE_RATE = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/image_placeholder_field.proto b/google/ads/googleads/v8/enums/image_placeholder_field.proto deleted file mode 100644 index fb58dce84..000000000 --- a/google/ads/googleads/v8/enums/image_placeholder_field.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ImagePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Advertiser Provided Image placeholder fields. - -// Values for Advertiser Provided Image placeholder fields. -message ImagePlaceholderFieldEnum { - // Possible values for Advertiser Provided Image placeholder fields. - enum ImagePlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: INT64. The asset ID of the image. - ASSET_ID = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/income_range_type.proto b/google/ads/googleads/v8/enums/income_range_type.proto deleted file mode 100644 index d1a6ee733..000000000 --- a/google/ads/googleads/v8/enums/income_range_type.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "IncomeRangeTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing income range types. - -// Container for enum describing the type of demographic income ranges. -message IncomeRangeTypeEnum { - // The type of demographic income ranges (e.g. between 0% to 50%). - enum IncomeRangeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // 0%-50%. - INCOME_RANGE_0_50 = 510001; - - // 50% to 60%. - INCOME_RANGE_50_60 = 510002; - - // 60% to 70%. - INCOME_RANGE_60_70 = 510003; - - // 70% to 80%. - INCOME_RANGE_70_80 = 510004; - - // 80% to 90%. - INCOME_RANGE_80_90 = 510005; - - // Greater than 90%. - INCOME_RANGE_90_UP = 510006; - - // Undetermined income range. - INCOME_RANGE_UNDETERMINED = 510000; - } - - -} diff --git a/google/ads/googleads/v8/enums/interaction_event_type.proto b/google/ads/googleads/v8/enums/interaction_event_type.proto deleted file mode 100644 index 544165d7d..000000000 --- a/google/ads/googleads/v8/enums/interaction_event_type.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "InteractionEventTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing types of payable and free interactions. - -// Container for enum describing types of payable and free interactions. -message InteractionEventTypeEnum { - // Enum describing possible types of payable and free interactions. - enum InteractionEventType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Click to site. In most cases, this interaction navigates to an external - // location, usually the advertiser's landing page. This is also the default - // InteractionEventType for click events. - CLICK = 2; - - // The user's expressed intent to engage with the ad in-place. - ENGAGEMENT = 3; - - // User viewed a video ad. - VIDEO_VIEW = 4; - - // The default InteractionEventType for ad conversion events. - // This is used when an ad conversion row does NOT indicate - // that the free interactions (i.e., the ad conversions) - // should be 'promoted' and reported as part of the core metrics. - // These are simply other (ad) conversions. - NONE = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/interaction_type.proto b/google/ads/googleads/v8/enums/interaction_type.proto deleted file mode 100644 index bdb73cda6..000000000 --- a/google/ads/googleads/v8/enums/interaction_type.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "InteractionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing interaction types. - -// Container for enum describing possible interaction types. -message InteractionTypeEnum { - // Enum describing possible interaction types. - enum InteractionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Calls. - CALLS = 8000; - } - - -} diff --git a/google/ads/googleads/v8/enums/invoice_type.proto b/google/ads/googleads/v8/enums/invoice_type.proto deleted file mode 100644 index 2ee6328ec..000000000 --- a/google/ads/googleads/v8/enums/invoice_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "InvoiceTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing invoice types. - -// Container for enum describing the type of invoices. -message InvoiceTypeEnum { - // The possible type of invoices. - enum InvoiceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // An invoice with a negative amount. The account receives a credit. - CREDIT_MEMO = 2; - - // An invoice with a positive amount. The account owes a balance. - INVOICE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/job_placeholder_field.proto b/google/ads/googleads/v8/enums/job_placeholder_field.proto deleted file mode 100644 index d1e49fa95..000000000 --- a/google/ads/googleads/v8/enums/job_placeholder_field.proto +++ /dev/null @@ -1,115 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "JobsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Job placeholder fields. - -// Values for Job placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message JobPlaceholderFieldEnum { - // Possible values for Job placeholder fields. - enum JobPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. If only JOB_ID is specified, then it must be - // unique. If both JOB_ID and LOCATION_ID are specified, then the - // pair must be unique. - // ID) pair must be unique. - JOB_ID = 2; - - // Data Type: STRING. Combination of JOB_ID and LOCATION_ID must be unique - // per offer. - LOCATION_ID = 3; - - // Data Type: STRING. Required. Main headline with job title to be shown in - // dynamic ad. - TITLE = 4; - - // Data Type: STRING. Job subtitle to be shown in dynamic ad. - SUBTITLE = 5; - - // Data Type: STRING. Description of job to be shown in dynamic ad. - DESCRIPTION = 6; - - // Data Type: URL. Image to be displayed in the ad. Highly recommended for - // image ads. - IMAGE_URL = 7; - - // Data Type: STRING. Category of property used to group like items together - // for recommendation engine. - CATEGORY = 8; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 9; - - // Data Type: STRING. Complete property address, including postal code. - ADDRESS = 10; - - // Data Type: STRING. Salary or salary range of job to be shown in dynamic - // ad. - SALARY = 11; - - // Data Type: URL_LIST. Required. Final URLs to be used in ad when using - // Upgraded URLs; the more specific the better (e.g. the individual URL of a - // specific job and its location). - FINAL_URLS = 12; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 14; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 15; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 16; - - // Data Type: STRING_LIST. List of recommended job IDs to show together with - // this item. - SIMILAR_JOB_IDS = 17; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 18; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 19; - } - - -} diff --git a/google/ads/googleads/v8/enums/keyword_match_type.proto b/google/ads/googleads/v8/enums/keyword_match_type.proto deleted file mode 100644 index a60c35ffe..000000000 --- a/google/ads/googleads/v8/enums/keyword_match_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordMatchTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Keyword match types. - -// Message describing Keyword match types. -message KeywordMatchTypeEnum { - // Possible Keyword match types. - enum KeywordMatchType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Exact match. - EXACT = 2; - - // Phrase match. - PHRASE = 3; - - // Broad match. - BROAD = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/keyword_plan_aggregate_metric_type.proto b/google/ads/googleads/v8/enums/keyword_plan_aggregate_metric_type.proto deleted file mode 100644 index 3219e0758..000000000 --- a/google/ads/googleads/v8/enums/keyword_plan_aggregate_metric_type.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAggregateMetricTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing keyword plan aggregate metric types. - -// The enumeration of keyword plan aggregate metric types. -message KeywordPlanAggregateMetricTypeEnum { - // Aggregate fields. - enum KeywordPlanAggregateMetricType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // The device breakdown of aggregate search volume. - DEVICE = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/keyword_plan_competition_level.proto b/google/ads/googleads/v8/enums/keyword_plan_competition_level.proto deleted file mode 100644 index efa553692..000000000 --- a/google/ads/googleads/v8/enums/keyword_plan_competition_level.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCompetitionLevelProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Keyword Planner competition levels. - -// Container for enumeration of keyword competition levels. The competition -// level indicates how competitive ad placement is for a keyword and -// is determined by the number of advertisers bidding on that keyword relative -// to all keywords across Google. The competition level can depend on the -// location and Search Network targeting options you've selected. -message KeywordPlanCompetitionLevelEnum { - // Competition level of a keyword. - enum KeywordPlanCompetitionLevel { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Low competition. The Competition Index range for this is [0, 33]. - LOW = 2; - - // Medium competition. The Competition Index range for this is [34, 66]. - MEDIUM = 3; - - // High competition. The Competition Index range for this is [67, 100]. - HIGH = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/keyword_plan_concept_group_type.proto b/google/ads/googleads/v8/enums/keyword_plan_concept_group_type.proto deleted file mode 100644 index 949d2d1f3..000000000 --- a/google/ads/googleads/v8/enums/keyword_plan_concept_group_type.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanConceptGroupTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Keyword Planner Concept Group types. - -// Container for enumeration of keyword plan concept group types. -message KeywordPlanConceptGroupTypeEnum { - // Enumerates keyword plan concept group types. - enum KeywordPlanConceptGroupType { - // The concept group classification different from brand/non-brand. - // This is a catch all bucket for all classifications that are none of the - // below. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // The concept group classification is based on BRAND. - BRAND = 2; - - // The concept group classification based on BRAND, that didn't fit well - // with the BRAND classifications. These are generally outliers and can have - // very few keywords in this type of classification. - OTHER_BRANDS = 3; - - // These concept group classification is not based on BRAND. This is - // returned for generic keywords that don't have a brand association. - NON_BRAND = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/keyword_plan_forecast_interval.proto b/google/ads/googleads/v8/enums/keyword_plan_forecast_interval.proto deleted file mode 100644 index 3de47c297..000000000 --- a/google/ads/googleads/v8/enums/keyword_plan_forecast_interval.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanForecastIntervalProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing keyword plan forecast intervals. - -// Container for enumeration of forecast intervals. -message KeywordPlanForecastIntervalEnum { - // Forecast intervals. - enum KeywordPlanForecastInterval { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // The next week date range for keyword plan. The next week is based - // on the default locale of the user's account and is mostly SUN-SAT or - // MON-SUN. - // This can be different from next-7 days. - NEXT_WEEK = 3; - - // The next month date range for keyword plan. - NEXT_MONTH = 4; - - // The next quarter date range for keyword plan. - NEXT_QUARTER = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/keyword_plan_keyword_annotation.proto b/google/ads/googleads/v8/enums/keyword_plan_keyword_annotation.proto deleted file mode 100644 index ce67be5fc..000000000 --- a/google/ads/googleads/v8/enums/keyword_plan_keyword_annotation.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanKeywordAnnotationProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Keyword Planner Keyword annotation types. - -// Container for enumeration of keyword plan keyword annotations. -message KeywordPlanKeywordAnnotationEnum { - // Enumerates keyword plan annotations that can be requested. - enum KeywordPlanKeywordAnnotation { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Return the keyword concept and concept group data. - KEYWORD_CONCEPT = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/keyword_plan_network.proto b/google/ads/googleads/v8/enums/keyword_plan_network.proto deleted file mode 100644 index 74135395d..000000000 --- a/google/ads/googleads/v8/enums/keyword_plan_network.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanNetworkProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Keyword Planner forecastable network types. - -// Container for enumeration of keyword plan forecastable network types. -message KeywordPlanNetworkEnum { - // Enumerates keyword plan forecastable network types. - enum KeywordPlanNetwork { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Google Search. - GOOGLE_SEARCH = 2; - - // Google Search + Search partners. - GOOGLE_SEARCH_AND_PARTNERS = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/label_status.proto b/google/ads/googleads/v8/enums/label_status.proto deleted file mode 100644 index 394b2cd56..000000000 --- a/google/ads/googleads/v8/enums/label_status.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LabelStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing possible status of a label. -message LabelStatusEnum { - // Possible statuses of a label. - enum LabelStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Label is enabled. - ENABLED = 2; - - // Label is removed. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/lead_form_call_to_action_type.proto b/google/ads/googleads/v8/enums/lead_form_call_to_action_type.proto deleted file mode 100644 index 19bc05bd2..000000000 --- a/google/ads/googleads/v8/enums/lead_form_call_to_action_type.proto +++ /dev/null @@ -1,84 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LeadFormCallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Describes the type of call-to-action phrases in a lead form. -message LeadFormCallToActionTypeEnum { - // Enum describing the type of call-to-action phrases in a lead form. - enum LeadFormCallToActionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Learn more. - LEARN_MORE = 2; - - // Get quote. - GET_QUOTE = 3; - - // Apply now. - APPLY_NOW = 4; - - // Sign Up. - SIGN_UP = 5; - - // Contact us. - CONTACT_US = 6; - - // Subscribe. - SUBSCRIBE = 7; - - // Download. - DOWNLOAD = 8; - - // Book now. - BOOK_NOW = 9; - - // Get offer. - GET_OFFER = 10; - - // Register. - REGISTER = 11; - - // Get info. - GET_INFO = 12; - - // Request a demo. - REQUEST_DEMO = 13; - - // Join now. - JOIN_NOW = 14; - - // Get started. - GET_STARTED = 15; - } - - -} diff --git a/google/ads/googleads/v8/enums/lead_form_desired_intent.proto b/google/ads/googleads/v8/enums/lead_form_desired_intent.proto deleted file mode 100644 index 8f3459047..000000000 --- a/google/ads/googleads/v8/enums/lead_form_desired_intent.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LeadFormDesiredIntentProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Describes the desired level of intent of generated leads. -message LeadFormDesiredIntentEnum { - // Enum describing the desired level of intent of generated leads. - enum LeadFormDesiredIntent { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Deliver more leads at a potentially lower quality. - LOW_INTENT = 2; - - // Deliver leads that are more qualified. - HIGH_INTENT = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/lead_form_field_user_input_type.proto b/google/ads/googleads/v8/enums/lead_form_field_user_input_type.proto deleted file mode 100644 index 20442fbd0..000000000 --- a/google/ads/googleads/v8/enums/lead_form_field_user_input_type.proto +++ /dev/null @@ -1,273 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LeadFormFieldUserInputTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Describes the input type of a lead form field. -message LeadFormFieldUserInputTypeEnum { - // Enum describing the input type of a lead form field. - enum LeadFormFieldUserInputType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The user will be asked to fill in their given and family name. This field - // cannot be set at the same time as GIVEN_NAME or FAMILY_NAME. - FULL_NAME = 2; - - // The user will be asked to fill in their email address. - EMAIL = 3; - - // The user will be asked to fill in their phone number. - PHONE_NUMBER = 4; - - // The user will be asked to fill in their zip code. - POSTAL_CODE = 5; - - // The user will be asked to fill in their city. - CITY = 9; - - // The user will be asked to fill in their region part of the address (e.g. - // state for US, province for Canada). - REGION = 10; - - // The user will be asked to fill in their country. - COUNTRY = 11; - - // The user will be asked to fill in their work email address. - WORK_EMAIL = 12; - - // The user will be asked to fill in their company name. - COMPANY_NAME = 13; - - // The user will be asked to fill in their work phone. - WORK_PHONE = 14; - - // The user will be asked to fill in their job title. - JOB_TITLE = 15; - - // The user will be asked to fill in their first name. This - // field can not be set at the same time as FULL_NAME. - FIRST_NAME = 23; - - // The user will be asked to fill in their last name. This - // field can not be set at the same time as FULL_NAME. - LAST_NAME = 24; - - // Question: "Which model are you interested in?" - // Category: "Auto" - VEHICLE_MODEL = 1001; - - // Question: "Which type of vehicle are you interested in?" - // Category: "Auto" - VEHICLE_TYPE = 1002; - - // Question: "What is your preferred dealership?" - // Category: "Auto" - PREFERRED_DEALERSHIP = 1003; - - // Question: "When do you plan on purchasing a vehicle?" - // Category: "Auto" - VEHICLE_PURCHASE_TIMELINE = 1004; - - // Question: "Do you own a vehicle?" - // Category: "Auto" - VEHICLE_OWNERSHIP = 1005; - - // Question: "What vehicle ownership option are you interested in?" - // Category: "Auto" - VEHICLE_PAYMENT_TYPE = 1009; - - // Question: "What type of vehicle condition are you interested in?" - // Category: "Auto" - VEHICLE_CONDITION = 1010; - - // Question: "What size is your company?" - // Category: "Business" - COMPANY_SIZE = 1006; - - // Question: "What is your annual sales volume?" - // Category: "Business" - ANNUAL_SALES = 1007; - - // Question: "How many years have you been in business?" - // Category: "Business" - YEARS_IN_BUSINESS = 1008; - - // Question: "What is your job department?" - // Category: "Business" - JOB_DEPARTMENT = 1011; - - // Question: "What is your job role?" - // Category: "Business" - JOB_ROLE = 1012; - - // Question: "Which program are you interested in?" - // Category: "Education" - EDUCATION_PROGRAM = 1013; - - // Question: "Which course are you interested in?" - // Category: "Education" - EDUCATION_COURSE = 1014; - - // Question: "Which product are you interested in?" - // Category: "General" - PRODUCT = 1016; - - // Question: "Which service are you interested in?" - // Category: "General" - SERVICE = 1017; - - // Question: "Which offer are you interested in?" - // Category: "General" - OFFER = 1018; - - // Question: "Which category are you interested in?" - // Category: "General" - CATEGORY = 1019; - - // Question: "What is your preferred method of contact?" - // Category: "General" - PREFERRED_CONTACT_METHOD = 1020; - - // Question: "What is your preferred location?" - // Category: "General" - PREFERRED_LOCATION = 1021; - - // Question: "What is the best time to contact you?" - // Category: "General" - PREFERRED_CONTACT_TIME = 1022; - - // Question: "When are you looking to make a purchase?" - // Category: "General" - PURCHASE_TIMELINE = 1023; - - // Question: "How many years of work experience do you have?" - // Category: "Jobs" - YEARS_OF_EXPERIENCE = 1048; - - // Question: "What industry do you work in?" - // Category: "Jobs" - JOB_INDUSTRY = 1049; - - // Question: "What is your highest level of education?" - // Category: "Jobs" - LEVEL_OF_EDUCATION = 1050; - - // Question: "What type of property are you looking for?" - // Category: "Real Estate" - PROPERTY_TYPE = 1024; - - // Question: "What do you need a realtor's help with?" - // Category: "Real Estate" - REALTOR_HELP_GOAL = 1025; - - // Question: "What neighborhood are you interested in?" - // Category: "Real Estate" - PROPERTY_COMMUNITY = 1026; - - // Question: "What price range are you looking for?" - // Category: "Real Estate" - PRICE_RANGE = 1027; - - // Question: "How many bedrooms are you looking for?" - // Category: "Real Estate" - NUMBER_OF_BEDROOMS = 1028; - - // Question: "Are you looking for a fully furnished property?" - // Category: "Real Estate" - FURNISHED_PROPERTY = 1029; - - // Question: "Are you looking for properties that allow pets?" - // Category: "Real Estate" - PETS_ALLOWED_PROPERTY = 1030; - - // Question: "What is the next product you plan to purchase?" - // Category: "Retail" - NEXT_PLANNED_PURCHASE = 1031; - - // Question: "Would you like to sign up for an event?" - // Category: "Retail" - EVENT_SIGNUP_INTEREST = 1033; - - // Question: "Where are you interested in shopping?" - // Category: "Retail" - PREFERRED_SHOPPING_PLACES = 1034; - - // Question: "What is your favorite brand?" - // Category: "Retail" - FAVORITE_BRAND = 1035; - - // Question: "Which type of valid commercial license do you have?" - // Category: "Transportation" - TRANSPORTATION_COMMERCIAL_LICENSE_TYPE = 1036; - - // Question: "Interested in booking an event?" - // Category: "Travel" - EVENT_BOOKING_INTEREST = 1038; - - // Question: "What is your destination country?" - // Category: "Travel" - DESTINATION_COUNTRY = 1039; - - // Question: "What is your destination city?" - // Category: "Travel" - DESTINATION_CITY = 1040; - - // Question: "What is your departure country?" - // Category: "Travel" - DEPARTURE_COUNTRY = 1041; - - // Question: "What is your departure city?" - // Category: "Travel" - DEPARTURE_CITY = 1042; - - // Question: "What is your departure date?" - // Category: "Travel" - DEPARTURE_DATE = 1043; - - // Question: "What is your return date?" - // Category: "Travel" - RETURN_DATE = 1044; - - // Question: "How many people are you traveling with?" - // Category: "Travel" - NUMBER_OF_TRAVELERS = 1045; - - // Question: "What is your travel budget?" - // Category: "Travel" - TRAVEL_BUDGET = 1046; - - // Question: "Where do you want to stay during your travel?" - // Category: "Travel" - TRAVEL_ACCOMMODATION = 1047; - } - - -} diff --git a/google/ads/googleads/v8/enums/lead_form_post_submit_call_to_action_type.proto b/google/ads/googleads/v8/enums/lead_form_post_submit_call_to_action_type.proto deleted file mode 100644 index aac94668b..000000000 --- a/google/ads/googleads/v8/enums/lead_form_post_submit_call_to_action_type.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LeadFormPostSubmitCallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Describes the type of post-submit call-to-action phrases for a lead form. -message LeadFormPostSubmitCallToActionTypeEnum { - // Enum describing the type of post-submit call-to-action phrases for a lead - // form. - enum LeadFormPostSubmitCallToActionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Visit site. - VISIT_SITE = 2; - - // Download. - DOWNLOAD = 3; - - // Learn more. - LEARN_MORE = 4; - - // Shop now. - SHOP_NOW = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/legacy_app_install_ad_app_store.proto b/google/ads/googleads/v8/enums/legacy_app_install_ad_app_store.proto deleted file mode 100644 index 8f11ee8fe..000000000 --- a/google/ads/googleads/v8/enums/legacy_app_install_ad_app_store.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LegacyAppInstallAdAppStoreProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing app store types for a legacy app install ad. - -// Container for enum describing app store type in a legacy app install ad. -message LegacyAppInstallAdAppStoreEnum { - // App store type in a legacy app install ad. - enum LegacyAppInstallAdAppStore { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Apple iTunes. - APPLE_APP_STORE = 2; - - // Google Play. - GOOGLE_PLAY = 3; - - // Windows Store. - WINDOWS_STORE = 4; - - // Windows Phone Store. - WINDOWS_PHONE_STORE = 5; - - // The app is hosted in a Chinese app store. - CN_APP_STORE = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/linked_account_type.proto b/google/ads/googleads/v8/enums/linked_account_type.proto deleted file mode 100644 index 7b3fcdcd1..000000000 --- a/google/ads/googleads/v8/enums/linked_account_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LinkedAccountTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing different types of Linked accounts. -message LinkedAccountTypeEnum { - // Describes the possible link types between a Google Ads customer - // and another account. - enum LinkedAccountType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // 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; - } - - -} diff --git a/google/ads/googleads/v8/enums/listing_group_type.proto b/google/ads/googleads/v8/enums/listing_group_type.proto deleted file mode 100644 index 353c6aadf..000000000 --- a/google/ads/googleads/v8/enums/listing_group_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ListingGroupTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing listing groups. - -// Container for enum describing the type of the listing group. -message ListingGroupTypeEnum { - // The type of the listing group. - enum ListingGroupType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Subdivision of products along some listing dimension. These nodes - // are not used by serving to target listing entries, but is purely - // to define the structure of the tree. - SUBDIVISION = 2; - - // Listing group unit that defines a bid. - UNIT = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/local_placeholder_field.proto b/google/ads/googleads/v8/enums/local_placeholder_field.proto deleted file mode 100644 index 3acc9b6db..000000000 --- a/google/ads/googleads/v8/enums/local_placeholder_field.proto +++ /dev/null @@ -1,119 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocalPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Local placeholder fields. - -// Values for Local placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message LocalPlaceholderFieldEnum { - // Possible values for Local placeholder fields. - enum LocalPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Unique ID. - DEAL_ID = 2; - - // Data Type: STRING. Required. Main headline with local deal title to be - // shown in dynamic ad. - DEAL_NAME = 3; - - // Data Type: STRING. Local deal subtitle to be shown in dynamic ad. - SUBTITLE = 4; - - // Data Type: STRING. Description of local deal to be shown in dynamic ad. - DESCRIPTION = 5; - - // Data Type: STRING. Price to be shown in the ad. Highly recommended for - // dynamic ads. Example: "100.00 USD" - PRICE = 6; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 7; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - SALE_PRICE = 8; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 9; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 10; - - // Data Type: STRING. Complete property address, including postal code. - ADDRESS = 11; - - // Data Type: STRING. Category of local deal used to group like items - // together for recommendation engine. - CATEGORY = 12; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 13; - - // Data Type: URL_LIST. Required. Final URLs to be used in ad when using - // Upgraded URLs; the more specific the better (e.g. the individual URL of a - // specific local deal and its location). - FINAL_URLS = 14; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 15; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 16; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 17; - - // Data Type: STRING_LIST. List of recommended local deal IDs to show - // together with this item. - SIMILAR_DEAL_IDS = 18; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 19; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 20; - } - - -} diff --git a/google/ads/googleads/v8/enums/location_extension_targeting_criterion_field.proto b/google/ads/googleads/v8/enums/location_extension_targeting_criterion_field.proto deleted file mode 100644 index 8cee4802b..000000000 --- a/google/ads/googleads/v8/enums/location_extension_targeting_criterion_field.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocationExtensionTargetingCriterionFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Location Extension Targeting criterion fields. - -// Values for Location Extension Targeting criterion fields. -message LocationExtensionTargetingCriterionFieldEnum { - // Possible values for Location Extension Targeting criterion fields. - enum LocationExtensionTargetingCriterionField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Line 1 of the business address. - ADDRESS_LINE_1 = 2; - - // Data Type: STRING. Line 2 of the business address. - ADDRESS_LINE_2 = 3; - - // Data Type: STRING. City of the business address. - CITY = 4; - - // Data Type: STRING. Province of the business address. - PROVINCE = 5; - - // Data Type: STRING. Postal code of the business address. - POSTAL_CODE = 6; - - // Data Type: STRING. Country code of the business address. - COUNTRY_CODE = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/location_group_radius_units.proto b/google/ads/googleads/v8/enums/location_group_radius_units.proto deleted file mode 100644 index 67f49f46a..000000000 --- a/google/ads/googleads/v8/enums/location_group_radius_units.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocationGroupRadiusUnitsProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing location group radius units. - -// Container for enum describing unit of radius in location group. -message LocationGroupRadiusUnitsEnum { - // The unit of radius distance in location group (e.g. MILES) - enum LocationGroupRadiusUnits { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Meters - METERS = 2; - - // Miles - MILES = 3; - - // Milli Miles - MILLI_MILES = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/location_placeholder_field.proto b/google/ads/googleads/v8/enums/location_placeholder_field.proto deleted file mode 100644 index a5591f2ed..000000000 --- a/google/ads/googleads/v8/enums/location_placeholder_field.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Location placeholder fields. - -// Values for Location placeholder fields. -message LocationPlaceholderFieldEnum { - // Possible values for Location placeholder fields. - enum LocationPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The name of the business. - BUSINESS_NAME = 2; - - // Data Type: STRING. Line 1 of the business address. - ADDRESS_LINE_1 = 3; - - // Data Type: STRING. Line 2 of the business address. - ADDRESS_LINE_2 = 4; - - // Data Type: STRING. City of the business address. - CITY = 5; - - // Data Type: STRING. Province of the business address. - PROVINCE = 6; - - // Data Type: STRING. Postal code of the business address. - POSTAL_CODE = 7; - - // Data Type: STRING. Country code of the business address. - COUNTRY_CODE = 8; - - // Data Type: STRING. Phone number of the business. - PHONE_NUMBER = 9; - } - - -} diff --git a/google/ads/googleads/v8/enums/location_source_type.proto b/google/ads/googleads/v8/enums/location_source_type.proto deleted file mode 100644 index d7be983fc..000000000 --- a/google/ads/googleads/v8/enums/location_source_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "LocationSourceTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing location source types. - -// Used to distinguish the location source type. -message LocationSourceTypeEnum { - // The possible types of a location source. - enum LocationSourceType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Locations associated with the customer's linked Business Profile. - GOOGLE_MY_BUSINESS = 2; - - // Affiliate (chain) store locations. For example, Best Buy store locations. - AFFILIATE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/manager_link_status.proto b/google/ads/googleads/v8/enums/manager_link_status.proto deleted file mode 100644 index 797c2fc3f..000000000 --- a/google/ads/googleads/v8/enums/manager_link_status.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ManagerLinkStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing possible status of a manager and client link. -message ManagerLinkStatusEnum { - // Possible statuses of a link. - enum ManagerLinkStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Indicates current in-effect relationship - ACTIVE = 2; - - // Indicates terminated relationship - INACTIVE = 3; - - // Indicates relationship has been requested by manager, but the client - // hasn't accepted yet. - PENDING = 4; - - // Relationship was requested by the manager, but the client has refused. - REFUSED = 5; - - // Indicates relationship has been requested by manager, but manager - // canceled it. - CANCELED = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/matching_function_context_type.proto b/google/ads/googleads/v8/enums/matching_function_context_type.proto deleted file mode 100644 index a5967c735..000000000 --- a/google/ads/googleads/v8/enums/matching_function_context_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MatchingFunctionContextTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing matching function context types. - -// Container for context types for an operand in a matching function. -message MatchingFunctionContextTypeEnum { - // Possible context types for an operand in a matching function. - enum MatchingFunctionContextType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Feed item id in the request context. - FEED_ITEM_ID = 2; - - // The device being used (possible values are 'Desktop' or 'Mobile'). - DEVICE_NAME = 3; - - // Feed item set id in the request context. - FEED_ITEM_SET_ID = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/matching_function_operator.proto b/google/ads/googleads/v8/enums/matching_function_operator.proto deleted file mode 100644 index 6a37ce475..000000000 --- a/google/ads/googleads/v8/enums/matching_function_operator.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MatchingFunctionOperatorProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing matching function operators. - -// Container for enum describing matching function operator. -message MatchingFunctionOperatorEnum { - // Possible operators in a matching function. - enum MatchingFunctionOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The IN operator. - IN = 2; - - // The IDENTITY operator. - IDENTITY = 3; - - // The EQUALS operator - EQUALS = 4; - - // Operator that takes two or more operands that are of type - // FunctionOperand and checks that all the operands evaluate to true. - // For functions related to ad formats, all the operands must be in - // left_operands. - AND = 5; - - // Operator that returns true if the elements in left_operands contain any - // of the elements in right_operands. Otherwise, return false. The - // right_operands must contain at least 1 and no more than 3 - // ConstantOperands. - CONTAINS_ANY = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/media_type.proto b/google/ads/googleads/v8/enums/media_type.proto deleted file mode 100644 index a01e702e8..000000000 --- a/google/ads/googleads/v8/enums/media_type.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MediaTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing media types. - -// Container for enum describing the types of media. -message MediaTypeEnum { - // The type of media. - enum MediaType { - // The media type has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Static image, used for image ad. - IMAGE = 2; - - // Small image, used for map ad. - ICON = 3; - - // ZIP file, used in fields of template ads. - MEDIA_BUNDLE = 4; - - // Audio file. - AUDIO = 5; - - // Video file. - VIDEO = 6; - - // Animated image, such as animated GIF. - DYNAMIC_IMAGE = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/merchant_center_link_status.proto b/google/ads/googleads/v8/enums/merchant_center_link_status.proto deleted file mode 100644 index 0a2279cf4..000000000 --- a/google/ads/googleads/v8/enums/merchant_center_link_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::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/google/ads/googleads/v8/enums/message_placeholder_field.proto b/google/ads/googleads/v8/enums/message_placeholder_field.proto deleted file mode 100644 index ac20ff1b0..000000000 --- a/google/ads/googleads/v8/enums/message_placeholder_field.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MessagePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Message placeholder fields. - -// Values for Message placeholder fields. -message MessagePlaceholderFieldEnum { - // Possible values for Message placeholder fields. - enum MessagePlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The name of your business. - BUSINESS_NAME = 2; - - // Data Type: STRING. Country code of phone number. - COUNTRY_CODE = 3; - - // Data Type: STRING. A phone number that's capable of sending and receiving - // text messages. - PHONE_NUMBER = 4; - - // Data Type: STRING. The text that will go in your click-to-message ad. - MESSAGE_EXTENSION_TEXT = 5; - - // Data Type: STRING. The message text automatically shows in people's - // messaging apps when they tap to send you a message. - MESSAGE_TEXT = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/mime_type.proto b/google/ads/googleads/v8/enums/mime_type.proto deleted file mode 100644 index e88810f5c..000000000 --- a/google/ads/googleads/v8/enums/mime_type.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MimeTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing mime types. - -// Container for enum describing the mime types. -message MimeTypeEnum { - // The mime type - enum MimeType { - // The mime type has not been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // MIME type of image/jpeg. - IMAGE_JPEG = 2; - - // MIME type of image/gif. - IMAGE_GIF = 3; - - // MIME type of image/png. - IMAGE_PNG = 4; - - // MIME type of application/x-shockwave-flash. - FLASH = 5; - - // MIME type of text/html. - TEXT_HTML = 6; - - // MIME type of application/pdf. - PDF = 7; - - // MIME type of application/msword. - MSWORD = 8; - - // MIME type of application/vnd.ms-excel. - MSEXCEL = 9; - - // MIME type of application/rtf. - RTF = 10; - - // MIME type of audio/wav. - AUDIO_WAV = 11; - - // MIME type of audio/mp3. - AUDIO_MP3 = 12; - - // MIME type of application/x-html5-ad-zip. - HTML5_AD_ZIP = 13; - } - - -} diff --git a/google/ads/googleads/v8/enums/minute_of_hour.proto b/google/ads/googleads/v8/enums/minute_of_hour.proto deleted file mode 100644 index 83389081d..000000000 --- a/google/ads/googleads/v8/enums/minute_of_hour.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MinuteOfHourProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing days of week. - -// Container for enumeration of quarter-hours. -message MinuteOfHourEnum { - // Enumerates of quarter-hours. E.g. "FIFTEEN" - enum MinuteOfHour { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Zero minutes past the hour. - ZERO = 2; - - // Fifteen minutes past the hour. - FIFTEEN = 3; - - // Thirty minutes past the hour. - THIRTY = 4; - - // Forty-five minutes past the hour. - FORTY_FIVE = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/mobile_app_vendor.proto b/google/ads/googleads/v8/enums/mobile_app_vendor.proto deleted file mode 100644 index f566e4d43..000000000 --- a/google/ads/googleads/v8/enums/mobile_app_vendor.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MobileAppVendorProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing different types of mobile app vendors. -message MobileAppVendorEnum { - // The type of mobile app vendor - enum MobileAppVendor { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile app vendor for Apple app store. - APPLE_APP_STORE = 2; - - // Mobile app vendor for Google app store. - GOOGLE_APP_STORE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/mobile_device_type.proto b/google/ads/googleads/v8/enums/mobile_device_type.proto deleted file mode 100644 index ecbc057b6..000000000 --- a/google/ads/googleads/v8/enums/mobile_device_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MobileDeviceTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing mobile device types. - -// Container for enum describing the types of mobile device. -message MobileDeviceTypeEnum { - // The type of mobile device. - enum MobileDeviceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile phones. - MOBILE = 2; - - // Tablets. - TABLET = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/month_of_year.proto b/google/ads/googleads/v8/enums/month_of_year.proto deleted file mode 100644 index 8d830106d..000000000 --- a/google/ads/googleads/v8/enums/month_of_year.proto +++ /dev/null @@ -1,80 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MonthOfYearProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing days of week. - -// Container for enumeration of months of the year, e.g., "January". -message MonthOfYearEnum { - // Enumerates months of the year, e.g., "January". - enum MonthOfYear { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // January. - JANUARY = 2; - - // February. - FEBRUARY = 3; - - // March. - MARCH = 4; - - // April. - APRIL = 5; - - // May. - MAY = 6; - - // June. - JUNE = 7; - - // July. - JULY = 8; - - // August. - AUGUST = 9; - - // September. - SEPTEMBER = 10; - - // October. - OCTOBER = 11; - - // November. - NOVEMBER = 12; - - // December. - DECEMBER = 13; - } - - -} diff --git a/google/ads/googleads/v8/enums/negative_geo_target_type.proto b/google/ads/googleads/v8/enums/negative_geo_target_type.proto deleted file mode 100644 index 4cc197989..000000000 --- a/google/ads/googleads/v8/enums/negative_geo_target_type.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "NegativeGeoTargetTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing negative geo target types. - -// Container for enum describing possible negative geo target types. -message NegativeGeoTargetTypeEnum { - // The possible negative geo target types. - enum NegativeGeoTargetType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Specifies that a user is excluded from seeing the ad if they - // are in, or show interest in, advertiser's excluded locations. - PRESENCE_OR_INTEREST = 4; - - // Specifies that a user is excluded from seeing the ad if they - // are in advertiser's excluded locations. - PRESENCE = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/offline_user_data_job_failure_reason.proto b/google/ads/googleads/v8/enums/offline_user_data_job_failure_reason.proto deleted file mode 100644 index 223de2d55..000000000 --- a/google/ads/googleads/v8/enums/offline_user_data_job_failure_reason.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobFailureReasonProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing offline user data job failure reasons. - -// Container for enum describing reasons why an offline user data job -// failed to be processed. -message OfflineUserDataJobFailureReasonEnum { - // The failure reason of an offline user data job. - enum OfflineUserDataJobFailureReason { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The matched transactions are insufficient. - INSUFFICIENT_MATCHED_TRANSACTIONS = 2; - - // The uploaded transactions are insufficient. - INSUFFICIENT_TRANSACTIONS = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/offline_user_data_job_status.proto b/google/ads/googleads/v8/enums/offline_user_data_job_status.proto deleted file mode 100644 index 2f796468a..000000000 --- a/google/ads/googleads/v8/enums/offline_user_data_job_status.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing offline user data job status. - -// Container for enum describing status of an offline user data job. -message OfflineUserDataJobStatusEnum { - // The status of an offline user data job. - enum OfflineUserDataJobStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The job has been successfully created and pending for uploading. - PENDING = 2; - - // Upload(s) have been accepted and data is being processed. - RUNNING = 3; - - // Uploaded data has been successfully processed. - SUCCESS = 4; - - // Uploaded data has failed to be processed. - FAILED = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/offline_user_data_job_type.proto b/google/ads/googleads/v8/enums/offline_user_data_job_type.proto deleted file mode 100644 index d09315412..000000000 --- a/google/ads/googleads/v8/enums/offline_user_data_job_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing offline user data job types. - -// Container for enum describing types of an offline user data job. -message OfflineUserDataJobTypeEnum { - // The type of an offline user data job. - enum OfflineUserDataJobType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Store Sales Direct data for self service. - STORE_SALES_UPLOAD_FIRST_PARTY = 2; - - // Store Sales Direct data for third party. - STORE_SALES_UPLOAD_THIRD_PARTY = 3; - - // Customer Match user list data. - CUSTOMER_MATCH_USER_LIST = 4; - - // Customer Match with attribute data. - CUSTOMER_MATCH_WITH_ATTRIBUTES = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/operating_system_version_operator_type.proto b/google/ads/googleads/v8/enums/operating_system_version_operator_type.proto deleted file mode 100644 index 9a93f80d2..000000000 --- a/google/ads/googleads/v8/enums/operating_system_version_operator_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OperatingSystemVersionOperatorTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing operating system version operator types. - -// Container for enum describing the type of OS operators. -message OperatingSystemVersionOperatorTypeEnum { - // The type of operating system version. - enum OperatingSystemVersionOperatorType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Equals to the specified version. - EQUALS_TO = 2; - - // Greater than or equals to the specified version. - GREATER_THAN_EQUALS_TO = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/optimization_goal_type.proto b/google/ads/googleads/v8/enums/optimization_goal_type.proto deleted file mode 100644 index 0c31b4f71..000000000 --- a/google/ads/googleads/v8/enums/optimization_goal_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "OptimizationGoalTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing optimization goal type. - -// Container for enum describing the type of optimization goal. -message OptimizationGoalTypeEnum { - // The type of optimization goal - enum OptimizationGoalType { - // Not specified. - UNSPECIFIED = 0; - - // Used as a return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Optimize for call clicks. Call click conversions are times people - // selected 'Call' to contact a store after viewing an ad. - CALL_CLICKS = 2; - - // Optimize for driving directions. Driving directions conversions are - // times people selected 'Get directions' to navigate to a store after - // viewing an ad. - DRIVING_DIRECTIONS = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/parental_status_type.proto b/google/ads/googleads/v8/enums/parental_status_type.proto deleted file mode 100644 index ed9658314..000000000 --- a/google/ads/googleads/v8/enums/parental_status_type.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ParentalStatusTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing parenal status types. - -// Container for enum describing the type of demographic parental statuses. -message ParentalStatusTypeEnum { - // The type of parental statuses (e.g. not a parent). - enum ParentalStatusType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Parent. - PARENT = 300; - - // Not a parent. - NOT_A_PARENT = 301; - - // Undetermined parental status. - UNDETERMINED = 302; - } - - -} diff --git a/google/ads/googleads/v8/enums/payment_mode.proto b/google/ads/googleads/v8/enums/payment_mode.proto deleted file mode 100644 index bb2de22d7..000000000 --- a/google/ads/googleads/v8/enums/payment_mode.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PaymentModeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing payment modes. - -// Container for enum describing possible payment modes. -message PaymentModeEnum { - // Enum describing possible payment modes. - enum PaymentMode { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Pay per click. - CLICKS = 4; - - // Pay per conversion value. This mode is only supported by campaigns with - // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and - // BudgetType.HOTEL_ADS_COMMISSION. - CONVERSION_VALUE = 5; - - // Pay per conversion. This mode is only supported by campaigns with - // AdvertisingChannelType.DISPLAY (excluding - // AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA, - // and BudgetType.FIXED_CPA. The customer must also be eligible for this - // mode. See Customer.eligibility_failure_reasons for details. - CONVERSIONS = 6; - - // Pay per guest stay value. This mode is only supported by campaigns with - // AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and - // BudgetType.STANDARD. - GUEST_STAY = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/placeholder_type.proto b/google/ads/googleads/v8/enums/placeholder_type.proto deleted file mode 100644 index e129d9635..000000000 --- a/google/ads/googleads/v8/enums/placeholder_type.proto +++ /dev/null @@ -1,124 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PlaceholderTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing feed placeholder types. - -// Container for enum describing possible placeholder types for a feed mapping. -message PlaceholderTypeEnum { - // Possible placeholder types for a feed mapping. - enum PlaceholderType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Lets you show links in your ad to pages from your website, including the - // main landing page. - SITELINK = 2; - - // Lets you attach a phone number to an ad, allowing customers to call - // directly from the ad. - CALL = 3; - - // Lets you provide users with a link that points to a mobile app in - // addition to a website. - APP = 4; - - // Lets you show locations of businesses from your Business Profile - // in your ad. This helps people find your locations by showing your - // ads with your address, a map to your location, or the distance to your - // business. This extension type is useful to draw customers to your - // brick-and-mortar location. - LOCATION = 5; - - // If you sell your product through retail chains, affiliate location - // extensions let you show nearby stores that carry your products. - AFFILIATE_LOCATION = 6; - - // Lets you include additional text with your search ads that provide - // detailed information about your business, including products and services - // you offer. Callouts appear in ads at the top and bottom of Google search - // results. - CALLOUT = 7; - - // Lets you add more info to your ad, specific to some predefined categories - // such as types, brands, styles, etc. A minimum of 3 text (SNIPPETS) values - // are required. - STRUCTURED_SNIPPET = 8; - - // Allows users to see your ad, click an icon, and contact you directly by - // text message. With one tap on your ad, people can contact you to book an - // appointment, get a quote, ask for information, or request a service. - MESSAGE = 9; - - // Lets you display prices for a list of items along with your ads. A price - // feed is composed of three to eight price table rows. - PRICE = 10; - - // Allows you to highlight sales and other promotions that let users see how - // they can save by buying now. - PROMOTION = 11; - - // Lets you dynamically inject custom data into the title and description - // of your ads. - AD_CUSTOMIZER = 12; - - // Indicates that this feed is for education dynamic remarketing. - DYNAMIC_EDUCATION = 13; - - // Indicates that this feed is for flight dynamic remarketing. - DYNAMIC_FLIGHT = 14; - - // Indicates that this feed is for a custom dynamic remarketing type. Use - // this only if the other business types don't apply to your products or - // services. - DYNAMIC_CUSTOM = 15; - - // Indicates that this feed is for hotels and rentals dynamic remarketing. - DYNAMIC_HOTEL = 16; - - // Indicates that this feed is for real estate dynamic remarketing. - DYNAMIC_REAL_ESTATE = 17; - - // Indicates that this feed is for travel dynamic remarketing. - DYNAMIC_TRAVEL = 18; - - // Indicates that this feed is for local deals dynamic remarketing. - DYNAMIC_LOCAL = 19; - - // Indicates that this feed is for job dynamic remarketing. - DYNAMIC_JOB = 20; - - // Lets you attach an image to an ad. - IMAGE = 21; - } - - -} diff --git a/google/ads/googleads/v8/enums/placement_type.proto b/google/ads/googleads/v8/enums/placement_type.proto deleted file mode 100644 index dcc82fab0..000000000 --- a/google/ads/googleads/v8/enums/placement_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PlacementTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing placement types. - -// Container for enum describing possible placement types. -message PlacementTypeEnum { - // Possible placement types for a feed mapping. - enum PlacementType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Websites(e.g. 'www.flowers4sale.com'). - WEBSITE = 2; - - // Mobile application categories(e.g. 'Games'). - MOBILE_APP_CATEGORY = 3; - - // mobile applications(e.g. 'mobileapp::2-com.whatsthewordanswers'). - MOBILE_APPLICATION = 4; - - // YouTube videos(e.g. 'youtube.com/video/wtLJPvx7-ys'). - YOUTUBE_VIDEO = 5; - - // YouTube channels(e.g. 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ'). - YOUTUBE_CHANNEL = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/policy_approval_status.proto b/google/ads/googleads/v8/enums/policy_approval_status.proto deleted file mode 100644 index 1118576e2..000000000 --- a/google/ads/googleads/v8/enums/policy_approval_status.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing policy approval statuses. - -// Container for enum describing possible policy approval statuses. -message PolicyApprovalStatusEnum { - // The possible policy approval statuses. When there are several approval - // statuses available the most severe one will be used. The order of severity - // is DISAPPROVED, AREA_OF_INTEREST_ONLY, APPROVED_LIMITED and APPROVED. - enum PolicyApprovalStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Will not serve. - DISAPPROVED = 2; - - // Serves with restrictions. - APPROVED_LIMITED = 3; - - // Serves without restrictions. - APPROVED = 4; - - // Will not serve in targeted countries, but may serve for users who are - // searching for information about the targeted countries. - AREA_OF_INTEREST_ONLY = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/policy_review_status.proto b/google/ads/googleads/v8/enums/policy_review_status.proto deleted file mode 100644 index cae168f2b..000000000 --- a/google/ads/googleads/v8/enums/policy_review_status.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyReviewStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing policy review statuses. - -// Container for enum describing possible policy review statuses. -message PolicyReviewStatusEnum { - // The possible policy review statuses. - enum PolicyReviewStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Currently under review. - REVIEW_IN_PROGRESS = 2; - - // Primary review complete. Other reviews may be continuing. - REVIEWED = 3; - - // The resource has been resubmitted for approval or its policy decision has - // been appealed. - UNDER_APPEAL = 4; - - // The resource is eligible and may be serving but could still undergo - // further review. - ELIGIBLE_MAY_SERVE = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/policy_topic_entry_type.proto b/google/ads/googleads/v8/enums/policy_topic_entry_type.proto deleted file mode 100644 index 9dde752a3..000000000 --- a/google/ads/googleads/v8/enums/policy_topic_entry_type.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyTopicEntryTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing policy topic entry types. - -// Container for enum describing possible policy topic entry types. -message PolicyTopicEntryTypeEnum { - // The possible policy topic entry types. - enum PolicyTopicEntryType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The resource will not be served. - PROHIBITED = 2; - - // The resource will not be served under some circumstances. - LIMITED = 4; - - // The resource cannot serve at all because of the current targeting - // criteria. - FULLY_LIMITED = 8; - - // May be of interest, but does not limit how the resource is served. - DESCRIPTIVE = 5; - - // Could increase coverage beyond normal. - BROADENING = 6; - - // Constrained for all targeted countries, but may serve in other countries - // through area of interest. - AREA_OF_INTEREST_ONLY = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/policy_topic_evidence_destination_mismatch_url_type.proto b/google/ads/googleads/v8/enums/policy_topic_evidence_destination_mismatch_url_type.proto deleted file mode 100644 index 4f2544d89..000000000 --- a/google/ads/googleads/v8/enums/policy_topic_evidence_destination_mismatch_url_type.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyTopicEvidenceDestinationMismatchUrlTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing policy topic evidence destination mismatch url types. - -// Container for enum describing possible policy topic evidence destination -// mismatch url types. -message PolicyTopicEvidenceDestinationMismatchUrlTypeEnum { - // The possible policy topic evidence destination mismatch url types. - enum PolicyTopicEvidenceDestinationMismatchUrlType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The display url. - DISPLAY_URL = 2; - - // The final url. - FINAL_URL = 3; - - // The final mobile url. - FINAL_MOBILE_URL = 4; - - // The tracking url template, with substituted desktop url. - TRACKING_URL = 5; - - // The tracking url template, with substituted mobile url. - MOBILE_TRACKING_URL = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_device.proto b/google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_device.proto deleted file mode 100644 index 388447f3a..000000000 --- a/google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_device.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDeviceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing device of destination not working policy topic -// evidence. - -// Container for enum describing possible policy topic evidence destination not -// working devices. -message PolicyTopicEvidenceDestinationNotWorkingDeviceEnum { - // The possible policy topic evidence destination not working devices. - enum PolicyTopicEvidenceDestinationNotWorkingDevice { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Landing page doesn't work on desktop device. - DESKTOP = 2; - - // Landing page doesn't work on Android device. - ANDROID = 3; - - // Landing page doesn't work on iOS device. - IOS = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto b/google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto deleted file mode 100644 index cbdc26268..000000000 --- a/google/ads/googleads/v8/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing DNS error types of destination not working policy topic -// evidence. - -// Container for enum describing possible policy topic evidence destination not -// working DNS error types. -message PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum { - // The possible policy topic evidence destination not working DNS error types. - enum PolicyTopicEvidenceDestinationNotWorkingDnsErrorType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // Host name not found in DNS when fetching landing page. - HOSTNAME_NOT_FOUND = 2; - - // Google internal crawler issue when communicating with DNS. This error - // doesn't mean the landing page doesn't work. Google will recrawl the - // landing page. - GOOGLE_CRAWLER_DNS_ISSUE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/positive_geo_target_type.proto b/google/ads/googleads/v8/enums/positive_geo_target_type.proto deleted file mode 100644 index 89045d744..000000000 --- a/google/ads/googleads/v8/enums/positive_geo_target_type.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PositiveGeoTargetTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing positive geo target types. - -// Container for enum describing possible positive geo target types. -message PositiveGeoTargetTypeEnum { - // The possible positive geo target types. - enum PositiveGeoTargetType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Specifies that an ad is triggered if the user is in, - // or shows interest in, advertiser's targeted locations. - PRESENCE_OR_INTEREST = 5; - - // Specifies that an ad is triggered if the user - // searches for advertiser's targeted locations. - // This can only be used with Search and standard - // Shopping campaigns. - SEARCH_INTEREST = 6; - - // Specifies that an ad is triggered if the user is in - // or regularly in advertiser's targeted locations. - PRESENCE = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/preferred_content_type.proto b/google/ads/googleads/v8/enums/preferred_content_type.proto deleted file mode 100644 index 5aa7b3ab0..000000000 --- a/google/ads/googleads/v8/enums/preferred_content_type.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PreferredContentTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing preferred content criterion type. - -// Container for enumeration of preferred content criterion type. -message PreferredContentTypeEnum { - // Enumerates preferred content criterion type. - enum PreferredContentType { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Represents top content on YouTube. - YOUTUBE_TOP_CONTENT = 400; - } - - -} diff --git a/google/ads/googleads/v8/enums/price_extension_price_qualifier.proto b/google/ads/googleads/v8/enums/price_extension_price_qualifier.proto deleted file mode 100644 index ca8e97014..000000000 --- a/google/ads/googleads/v8/enums/price_extension_price_qualifier.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PriceExtensionPriceQualifierProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing price extension price qualifier type. - -// Container for enum describing a price extension price qualifier. -message PriceExtensionPriceQualifierEnum { - // Enums of price extension price qualifier. - enum PriceExtensionPriceQualifier { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // 'From' qualifier for the price. - FROM = 2; - - // 'Up to' qualifier for the price. - UP_TO = 3; - - // 'Average' qualifier for the price. - AVERAGE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/price_extension_price_unit.proto b/google/ads/googleads/v8/enums/price_extension_price_unit.proto deleted file mode 100644 index 1fc5b43f6..000000000 --- a/google/ads/googleads/v8/enums/price_extension_price_unit.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PriceExtensionPriceUnitProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing price extension price unit. - -// Container for enum describing price extension price unit. -message PriceExtensionPriceUnitEnum { - // Price extension price unit. - enum PriceExtensionPriceUnit { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Per hour. - PER_HOUR = 2; - - // Per day. - PER_DAY = 3; - - // Per week. - PER_WEEK = 4; - - // Per month. - PER_MONTH = 5; - - // Per year. - PER_YEAR = 6; - - // Per night. - PER_NIGHT = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/price_extension_type.proto b/google/ads/googleads/v8/enums/price_extension_type.proto deleted file mode 100644 index b33bf87fb..000000000 --- a/google/ads/googleads/v8/enums/price_extension_type.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PriceExtensionTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing price extension type. - -// Container for enum describing types for a price extension. -message PriceExtensionTypeEnum { - // Price extension type. - enum PriceExtensionType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The type for showing a list of brands. - BRANDS = 2; - - // The type for showing a list of events. - EVENTS = 3; - - // The type for showing locations relevant to your business. - LOCATIONS = 4; - - // The type for showing sub-regions or districts within a city or region. - NEIGHBORHOODS = 5; - - // The type for showing a collection of product categories. - PRODUCT_CATEGORIES = 6; - - // The type for showing a collection of related product tiers. - PRODUCT_TIERS = 7; - - // The type for showing a collection of services offered by your business. - SERVICES = 8; - - // The type for showing a collection of service categories. - SERVICE_CATEGORIES = 9; - - // The type for showing a collection of related service tiers. - SERVICE_TIERS = 10; - } - - -} diff --git a/google/ads/googleads/v8/enums/price_placeholder_field.proto b/google/ads/googleads/v8/enums/price_placeholder_field.proto deleted file mode 100644 index 02a3236e1..000000000 --- a/google/ads/googleads/v8/enums/price_placeholder_field.proto +++ /dev/null @@ -1,240 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PricePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Price placeholder fields. - -// Values for Price placeholder fields. -message PricePlaceholderFieldEnum { - // Possible values for Price placeholder fields. - enum PricePlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The type of your price feed. Must match one of the - // predefined price feed type exactly. - TYPE = 2; - - // Data Type: STRING. The qualifier of each price. Must match one of the - // predefined price qualifiers exactly. - PRICE_QUALIFIER = 3; - - // Data Type: URL. Tracking template for the price feed when using Upgraded - // URLs. - TRACKING_TEMPLATE = 4; - - // Data Type: STRING. Language of the price feed. Must match one of the - // available available locale codes exactly. - LANGUAGE = 5; - - // Data Type: STRING. Final URL suffix for the price feed when using - // parallel tracking. - FINAL_URL_SUFFIX = 6; - - // Data Type: STRING. The header of item 1 of the table. - ITEM_1_HEADER = 100; - - // Data Type: STRING. The description of item 1 of the table. - ITEM_1_DESCRIPTION = 101; - - // Data Type: MONEY. The price (money with currency) of item 1 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_1_PRICE = 102; - - // Data Type: STRING. The price unit of item 1 of the table. Must match one - // of the predefined price units. - ITEM_1_UNIT = 103; - - // Data Type: URL_LIST. The final URLs of item 1 of the table when using - // Upgraded URLs. - ITEM_1_FINAL_URLS = 104; - - // Data Type: URL_LIST. The final mobile URLs of item 1 of the table when - // using Upgraded URLs. - ITEM_1_FINAL_MOBILE_URLS = 105; - - // Data Type: STRING. The header of item 2 of the table. - ITEM_2_HEADER = 200; - - // Data Type: STRING. The description of item 2 of the table. - ITEM_2_DESCRIPTION = 201; - - // Data Type: MONEY. The price (money with currency) of item 2 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_2_PRICE = 202; - - // Data Type: STRING. The price unit of item 2 of the table. Must match one - // of the predefined price units. - ITEM_2_UNIT = 203; - - // Data Type: URL_LIST. The final URLs of item 2 of the table when using - // Upgraded URLs. - ITEM_2_FINAL_URLS = 204; - - // Data Type: URL_LIST. The final mobile URLs of item 2 of the table when - // using Upgraded URLs. - ITEM_2_FINAL_MOBILE_URLS = 205; - - // Data Type: STRING. The header of item 3 of the table. - ITEM_3_HEADER = 300; - - // Data Type: STRING. The description of item 3 of the table. - ITEM_3_DESCRIPTION = 301; - - // Data Type: MONEY. The price (money with currency) of item 3 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_3_PRICE = 302; - - // Data Type: STRING. The price unit of item 3 of the table. Must match one - // of the predefined price units. - ITEM_3_UNIT = 303; - - // Data Type: URL_LIST. The final URLs of item 3 of the table when using - // Upgraded URLs. - ITEM_3_FINAL_URLS = 304; - - // Data Type: URL_LIST. The final mobile URLs of item 3 of the table when - // using Upgraded URLs. - ITEM_3_FINAL_MOBILE_URLS = 305; - - // Data Type: STRING. The header of item 4 of the table. - ITEM_4_HEADER = 400; - - // Data Type: STRING. The description of item 4 of the table. - ITEM_4_DESCRIPTION = 401; - - // Data Type: MONEY. The price (money with currency) of item 4 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_4_PRICE = 402; - - // Data Type: STRING. The price unit of item 4 of the table. Must match one - // of the predefined price units. - ITEM_4_UNIT = 403; - - // Data Type: URL_LIST. The final URLs of item 4 of the table when using - // Upgraded URLs. - ITEM_4_FINAL_URLS = 404; - - // Data Type: URL_LIST. The final mobile URLs of item 4 of the table when - // using Upgraded URLs. - ITEM_4_FINAL_MOBILE_URLS = 405; - - // Data Type: STRING. The header of item 5 of the table. - ITEM_5_HEADER = 500; - - // Data Type: STRING. The description of item 5 of the table. - ITEM_5_DESCRIPTION = 501; - - // Data Type: MONEY. The price (money with currency) of item 5 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_5_PRICE = 502; - - // Data Type: STRING. The price unit of item 5 of the table. Must match one - // of the predefined price units. - ITEM_5_UNIT = 503; - - // Data Type: URL_LIST. The final URLs of item 5 of the table when using - // Upgraded URLs. - ITEM_5_FINAL_URLS = 504; - - // Data Type: URL_LIST. The final mobile URLs of item 5 of the table when - // using Upgraded URLs. - ITEM_5_FINAL_MOBILE_URLS = 505; - - // Data Type: STRING. The header of item 6 of the table. - ITEM_6_HEADER = 600; - - // Data Type: STRING. The description of item 6 of the table. - ITEM_6_DESCRIPTION = 601; - - // Data Type: MONEY. The price (money with currency) of item 6 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_6_PRICE = 602; - - // Data Type: STRING. The price unit of item 6 of the table. Must match one - // of the predefined price units. - ITEM_6_UNIT = 603; - - // Data Type: URL_LIST. The final URLs of item 6 of the table when using - // Upgraded URLs. - ITEM_6_FINAL_URLS = 604; - - // Data Type: URL_LIST. The final mobile URLs of item 6 of the table when - // using Upgraded URLs. - ITEM_6_FINAL_MOBILE_URLS = 605; - - // Data Type: STRING. The header of item 7 of the table. - ITEM_7_HEADER = 700; - - // Data Type: STRING. The description of item 7 of the table. - ITEM_7_DESCRIPTION = 701; - - // Data Type: MONEY. The price (money with currency) of item 7 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_7_PRICE = 702; - - // Data Type: STRING. The price unit of item 7 of the table. Must match one - // of the predefined price units. - ITEM_7_UNIT = 703; - - // Data Type: URL_LIST. The final URLs of item 7 of the table when using - // Upgraded URLs. - ITEM_7_FINAL_URLS = 704; - - // Data Type: URL_LIST. The final mobile URLs of item 7 of the table when - // using Upgraded URLs. - ITEM_7_FINAL_MOBILE_URLS = 705; - - // Data Type: STRING. The header of item 8 of the table. - ITEM_8_HEADER = 800; - - // Data Type: STRING. The description of item 8 of the table. - ITEM_8_DESCRIPTION = 801; - - // Data Type: MONEY. The price (money with currency) of item 8 of the table, - // e.g., 30 USD. The currency must match one of the available currencies. - ITEM_8_PRICE = 802; - - // Data Type: STRING. The price unit of item 8 of the table. Must match one - // of the predefined price units. - ITEM_8_UNIT = 803; - - // Data Type: URL_LIST. The final URLs of item 8 of the table when using - // Upgraded URLs. - ITEM_8_FINAL_URLS = 804; - - // Data Type: URL_LIST. The final mobile URLs of item 8 of the table when - // using Upgraded URLs. - ITEM_8_FINAL_MOBILE_URLS = 805; - } - - -} diff --git a/google/ads/googleads/v8/enums/product_bidding_category_level.proto b/google/ads/googleads/v8/enums/product_bidding_category_level.proto deleted file mode 100644 index 5df7b7184..000000000 --- a/google/ads/googleads/v8/enums/product_bidding_category_level.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryLevelProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Level of a product bidding category. -message ProductBiddingCategoryLevelEnum { - // Enum describing the level of the product bidding category. - enum ProductBiddingCategoryLevel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Level 1. - LEVEL1 = 2; - - // Level 2. - LEVEL2 = 3; - - // Level 3. - LEVEL3 = 4; - - // Level 4. - LEVEL4 = 5; - - // Level 5. - LEVEL5 = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/product_bidding_category_status.proto b/google/ads/googleads/v8/enums/product_bidding_category_status.proto deleted file mode 100644 index 2d16a013a..000000000 --- a/google/ads/googleads/v8/enums/product_bidding_category_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::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 { - // 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 obsolete. Used only for reporting purposes. - OBSOLETE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/product_channel.proto b/google/ads/googleads/v8/enums/product_channel.proto deleted file mode 100644 index edb0a8ea1..000000000 --- a/google/ads/googleads/v8/enums/product_channel.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductChannelProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing bidding schemes. - -// Locality of a product offer. -message ProductChannelEnum { - // Enum describing the locality of a product offer. - enum ProductChannel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The item is sold online. - ONLINE = 2; - - // The item is sold in local stores. - LOCAL = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/product_channel_exclusivity.proto b/google/ads/googleads/v8/enums/product_channel_exclusivity.proto deleted file mode 100644 index 4221cfe50..000000000 --- a/google/ads/googleads/v8/enums/product_channel_exclusivity.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductChannelExclusivityProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing bidding schemes. - -// Availability of a product offer. -message ProductChannelExclusivityEnum { - // Enum describing the availability of a product offer. - enum ProductChannelExclusivity { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The item is sold through one channel only, either local stores or online - // as indicated by its ProductChannel. - SINGLE_CHANNEL = 2; - - // The item is matched to its online or local stores counterpart, indicating - // it is available for purchase in both ShoppingProductChannels. - MULTI_CHANNEL = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/product_condition.proto b/google/ads/googleads/v8/enums/product_condition.proto deleted file mode 100644 index c3ef9ef80..000000000 --- a/google/ads/googleads/v8/enums/product_condition.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductConditionProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing bidding schemes. - -// Condition of a product offer. -message ProductConditionEnum { - // Enum describing the condition of a product offer. - enum ProductCondition { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The product condition is new. - NEW = 3; - - // The product condition is refurbished. - REFURBISHED = 4; - - // The product condition is used. - USED = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/product_custom_attribute_index.proto b/google/ads/googleads/v8/enums/product_custom_attribute_index.proto deleted file mode 100644 index 2bf696665..000000000 --- a/google/ads/googleads/v8/enums/product_custom_attribute_index.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductCustomAttributeIndexProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing product custom attributes. - -// Container for enum describing the index of the product custom attribute. -message ProductCustomAttributeIndexEnum { - // The index of the product custom attribute. - enum ProductCustomAttributeIndex { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // First product custom attribute. - INDEX0 = 7; - - // Second product custom attribute. - INDEX1 = 8; - - // Third product custom attribute. - INDEX2 = 9; - - // Fourth product custom attribute. - INDEX3 = 10; - - // Fifth product custom attribute. - INDEX4 = 11; - } - - -} diff --git a/google/ads/googleads/v8/enums/product_type_level.proto b/google/ads/googleads/v8/enums/product_type_level.proto deleted file mode 100644 index 4b9ca231d..000000000 --- a/google/ads/googleads/v8/enums/product_type_level.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProductTypeLevelProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing bidding schemes. - -// Level of the type of a product offer. -message ProductTypeLevelEnum { - // Enum describing the level of the type of a product offer. - enum ProductTypeLevel { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Level 1. - LEVEL1 = 7; - - // Level 2. - LEVEL2 = 8; - - // Level 3. - LEVEL3 = 9; - - // Level 4. - LEVEL4 = 10; - - // Level 5. - LEVEL5 = 11; - } - - -} diff --git a/google/ads/googleads/v8/enums/promotion_extension_discount_modifier.proto b/google/ads/googleads/v8/enums/promotion_extension_discount_modifier.proto deleted file mode 100644 index 3aef5a872..000000000 --- a/google/ads/googleads/v8/enums/promotion_extension_discount_modifier.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PromotionExtensionDiscountModifierProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing promotion extension discount modifier. - -// Container for enum describing possible a promotion extension -// discount modifier. -message PromotionExtensionDiscountModifierEnum { - // A promotion extension discount modifier. - enum PromotionExtensionDiscountModifier { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // 'Up to'. - UP_TO = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/promotion_extension_occasion.proto b/google/ads/googleads/v8/enums/promotion_extension_occasion.proto deleted file mode 100644 index 42cea2baa..000000000 --- a/google/ads/googleads/v8/enums/promotion_extension_occasion.proto +++ /dev/null @@ -1,157 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PromotionExtensionOccasionProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing promotion extension occasion. - -// Container for enum describing a promotion extension occasion. -// For more information about the occasions please check: -// https://support.google.com/google-ads/answer/7367521 -message PromotionExtensionOccasionEnum { - // A promotion extension occasion. - enum PromotionExtensionOccasion { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // New Year's. - NEW_YEARS = 2; - - // Chinese New Year. - CHINESE_NEW_YEAR = 3; - - // Valentine's Day. - VALENTINES_DAY = 4; - - // Easter. - EASTER = 5; - - // Mother's Day. - MOTHERS_DAY = 6; - - // Father's Day. - FATHERS_DAY = 7; - - // Labor Day. - LABOR_DAY = 8; - - // Back To School. - BACK_TO_SCHOOL = 9; - - // Halloween. - HALLOWEEN = 10; - - // Black Friday. - BLACK_FRIDAY = 11; - - // Cyber Monday. - CYBER_MONDAY = 12; - - // Christmas. - CHRISTMAS = 13; - - // Boxing Day. - BOXING_DAY = 14; - - // Independence Day in any country. - INDEPENDENCE_DAY = 15; - - // National Day in any country. - NATIONAL_DAY = 16; - - // End of any season. - END_OF_SEASON = 17; - - // Winter Sale. - WINTER_SALE = 18; - - // Summer sale. - SUMMER_SALE = 19; - - // Fall Sale. - FALL_SALE = 20; - - // Spring Sale. - SPRING_SALE = 21; - - // Ramadan. - RAMADAN = 22; - - // Eid al-Fitr. - EID_AL_FITR = 23; - - // Eid al-Adha. - EID_AL_ADHA = 24; - - // Singles Day. - SINGLES_DAY = 25; - - // Women's Day. - WOMENS_DAY = 26; - - // Holi. - HOLI = 27; - - // Parent's Day. - PARENTS_DAY = 28; - - // St. Nicholas Day. - ST_NICHOLAS_DAY = 29; - - // Carnival. - CARNIVAL = 30; - - // Epiphany, also known as Three Kings' Day. - EPIPHANY = 31; - - // Rosh Hashanah. - ROSH_HASHANAH = 32; - - // Passover. - PASSOVER = 33; - - // Hanukkah. - HANUKKAH = 34; - - // Diwali. - DIWALI = 35; - - // Navratri. - NAVRATRI = 36; - - // Available in Thai: Songkran. - SONGKRAN = 37; - - // Available in Japanese: Year-end Gift. - YEAR_END_GIFT = 38; - } - - -} diff --git a/google/ads/googleads/v8/enums/promotion_placeholder_field.proto b/google/ads/googleads/v8/enums/promotion_placeholder_field.proto deleted file mode 100644 index 9f45604ab..000000000 --- a/google/ads/googleads/v8/enums/promotion_placeholder_field.proto +++ /dev/null @@ -1,95 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "PromotionPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Promotion placeholder fields. - -// Values for Promotion placeholder fields. -message PromotionPlaceholderFieldEnum { - // Possible values for Promotion placeholder fields. - enum PromotionPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The text that appears on the ad when the extension is - // shown. - PROMOTION_TARGET = 2; - - // Data Type: STRING. Allows you to add "up to" phrase to the promotion, - // in case you have variable promotion rates. - DISCOUNT_MODIFIER = 3; - - // Data Type: INT64. Takes a value in micros, where 1 million micros - // represents 1%, and is shown as a percentage when rendered. - PERCENT_OFF = 4; - - // Data Type: MONEY. Requires a currency and an amount of money. - MONEY_AMOUNT_OFF = 5; - - // Data Type: STRING. A string that the user enters to get the discount. - PROMOTION_CODE = 6; - - // Data Type: MONEY. A minimum spend before the user qualifies for the - // promotion. - ORDERS_OVER_AMOUNT = 7; - - // Data Type: DATE. The start date of the promotion. - PROMOTION_START = 8; - - // Data Type: DATE. The end date of the promotion. - PROMOTION_END = 9; - - // Data Type: STRING. Describes the associated event for the promotion using - // one of the PromotionExtensionOccasion enum values, for example NEW_YEARS. - OCCASION = 10; - - // Data Type: URL_LIST. Final URLs to be used in the ad when using Upgraded - // URLs. - FINAL_URLS = 11; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 12; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 13; - - // Data Type: STRING. A string represented by a language code for the - // promotion. - LANGUAGE = 14; - - // Data Type: STRING. Final URL suffix for the ad when using parallel - // tracking. - FINAL_URL_SUFFIX = 15; - } - - -} diff --git a/google/ads/googleads/v8/enums/proximity_radius_units.proto b/google/ads/googleads/v8/enums/proximity_radius_units.proto deleted file mode 100644 index d82f1db97..000000000 --- a/google/ads/googleads/v8/enums/proximity_radius_units.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ProximityRadiusUnitsProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing proximity radius units. - -// Container for enum describing unit of radius in proximity. -message ProximityRadiusUnitsEnum { - // The unit of radius distance in proximity (e.g. MILES) - enum ProximityRadiusUnits { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Miles - MILES = 2; - - // Kilometers - KILOMETERS = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/quality_score_bucket.proto b/google/ads/googleads/v8/enums/quality_score_bucket.proto deleted file mode 100644 index 3e2626cbd..000000000 --- a/google/ads/googleads/v8/enums/quality_score_bucket.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "QualityScoreBucketProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing quality score buckets. - -// The relative performance compared to other advertisers. -message QualityScoreBucketEnum { - // Enum listing the possible quality score buckets. - enum QualityScoreBucket { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Quality of the creative is below average. - BELOW_AVERAGE = 2; - - // Quality of the creative is average. - AVERAGE = 3; - - // Quality of the creative is above average. - ABOVE_AVERAGE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/reach_plan_ad_length.proto b/google/ads/googleads/v8/enums/reach_plan_ad_length.proto deleted file mode 100644 index dd2078465..000000000 --- a/google/ads/googleads/v8/enums/reach_plan_ad_length.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanAdLengthProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing ad lengths of a plannable video ad. - -// Message describing length of a plannable video ad. -message ReachPlanAdLengthEnum { - // Possible ad length values. - enum ReachPlanAdLength { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // 6 seconds long ad. - SIX_SECONDS = 2; - - // 15 or 20 seconds long ad. - FIFTEEN_OR_TWENTY_SECONDS = 3; - - // More than 20 seconds long ad. - TWENTY_SECONDS_OR_MORE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/reach_plan_age_range.proto b/google/ads/googleads/v8/enums/reach_plan_age_range.proto deleted file mode 100644 index 7dc1443bf..000000000 --- a/google/ads/googleads/v8/enums/reach_plan_age_range.proto +++ /dev/null @@ -1,122 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanAgeRangeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing a plannable age range. - -// Message describing plannable age ranges. -message ReachPlanAgeRangeEnum { - // Possible plannable age range values. - enum ReachPlanAgeRange { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Between 18 and 24 years old. - AGE_RANGE_18_24 = 503001; - - // Between 18 and 34 years old. - AGE_RANGE_18_34 = 2; - - // Between 18 and 44 years old. - AGE_RANGE_18_44 = 3; - - // Between 18 and 49 years old. - AGE_RANGE_18_49 = 4; - - // Between 18 and 54 years old. - AGE_RANGE_18_54 = 5; - - // Between 18 and 64 years old. - AGE_RANGE_18_64 = 6; - - // Between 18 and 65+ years old. - AGE_RANGE_18_65_UP = 7; - - // Between 21 and 34 years old. - AGE_RANGE_21_34 = 8; - - // Between 25 and 34 years old. - AGE_RANGE_25_34 = 503002; - - // Between 25 and 44 years old. - AGE_RANGE_25_44 = 9; - - // Between 25 and 49 years old. - AGE_RANGE_25_49 = 10; - - // Between 25 and 54 years old. - AGE_RANGE_25_54 = 11; - - // Between 25 and 64 years old. - AGE_RANGE_25_64 = 12; - - // Between 25 and 65+ years old. - AGE_RANGE_25_65_UP = 13; - - // Between 35 and 44 years old. - AGE_RANGE_35_44 = 503003; - - // Between 35 and 49 years old. - AGE_RANGE_35_49 = 14; - - // Between 35 and 54 years old. - AGE_RANGE_35_54 = 15; - - // Between 35 and 64 years old. - AGE_RANGE_35_64 = 16; - - // Between 35 and 65+ years old. - AGE_RANGE_35_65_UP = 17; - - // Between 45 and 54 years old. - AGE_RANGE_45_54 = 503004; - - // Between 45 and 64 years old. - AGE_RANGE_45_64 = 18; - - // Between 45 and 65+ years old. - AGE_RANGE_45_65_UP = 19; - - // Between 50 and 65+ years old. - AGE_RANGE_50_65_UP = 20; - - // Between 55 and 64 years old. - AGE_RANGE_55_64 = 503005; - - // Between 55 and 65+ years old. - AGE_RANGE_55_65_UP = 21; - - // 65 years old and beyond. - AGE_RANGE_65_UP = 503006; - } - - -} diff --git a/google/ads/googleads/v8/enums/reach_plan_network.proto b/google/ads/googleads/v8/enums/reach_plan_network.proto deleted file mode 100644 index 67fca372d..000000000 --- a/google/ads/googleads/v8/enums/reach_plan_network.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanNetworkProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing a plannable network. - -// Container for enum describing plannable networks. -message ReachPlanNetworkEnum { - // Possible plannable network values. - enum ReachPlanNetwork { - // Not specified. - UNSPECIFIED = 0; - - // Used as a return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // YouTube network. - YOUTUBE = 2; - - // Google Video Partners (GVP) network. - GOOGLE_VIDEO_PARTNERS = 3; - - // A combination of the YouTube network and the Google Video Partners - // network. - YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/real_estate_placeholder_field.proto b/google/ads/googleads/v8/enums/real_estate_placeholder_field.proto deleted file mode 100644 index 08733fda6..000000000 --- a/google/ads/googleads/v8/enums/real_estate_placeholder_field.proto +++ /dev/null @@ -1,115 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "RealEstatePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Real Estate placeholder fields. - -// Values for Real Estate placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message RealEstatePlaceholderFieldEnum { - // Possible values for Real Estate placeholder fields. - enum RealEstatePlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Unique ID. - LISTING_ID = 2; - - // Data Type: STRING. Main headline with listing name to be shown in dynamic - // ad. - LISTING_NAME = 3; - - // Data Type: STRING. City name to be shown in dynamic ad. - CITY_NAME = 4; - - // Data Type: STRING. Description of listing to be shown in dynamic ad. - DESCRIPTION = 5; - - // Data Type: STRING. Complete listing address, including postal code. - ADDRESS = 6; - - // Data Type: STRING. Price to be shown in the ad. - // Example: "100.00 USD" - PRICE = 7; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 8; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 9; - - // Data Type: STRING. Type of property (house, condo, apartment, etc.) used - // to group like items together for recommendation engine. - PROPERTY_TYPE = 10; - - // Data Type: STRING. Type of listing (resale, rental, foreclosure, etc.) - // used to group like items together for recommendation engine. - LISTING_TYPE = 11; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 12; - - // Data Type: URL_LIST. Final URLs to be used in ad when using Upgraded - // URLs; the more specific the better (e.g. the individual URL of a specific - // listing and its location). - FINAL_URLS = 13; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 14; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 15; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 16; - - // Data Type: STRING_LIST. List of recommended listing IDs to show together - // with this item. - SIMILAR_LISTING_IDS = 17; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 18; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 19; - } - - -} diff --git a/google/ads/googleads/v8/enums/recommendation_type.proto b/google/ads/googleads/v8/enums/recommendation_type.proto deleted file mode 100644 index 5c48c54b2..000000000 --- a/google/ads/googleads/v8/enums/recommendation_type.proto +++ /dev/null @@ -1,112 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Recommendation types. - -// Container for enum describing types of recommendations. -message RecommendationTypeEnum { - // Types of recommendations. - enum RecommendationType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Budget recommendation for campaigns that are currently budget-constrained - // (as opposed to the FORECASTING_CAMPAIGN_BUDGET recommendation, which - // applies to campaigns that are expected to become budget-constrained in - // the future). - CAMPAIGN_BUDGET = 2; - - // Keyword recommendation. - KEYWORD = 3; - - // Recommendation to add a new text ad. - TEXT_AD = 4; - - // Recommendation to update a campaign to use a Target CPA bidding strategy. - TARGET_CPA_OPT_IN = 5; - - // Recommendation to update a campaign to use the Maximize Conversions - // bidding strategy. - MAXIMIZE_CONVERSIONS_OPT_IN = 6; - - // Recommendation to enable Enhanced Cost Per Click for a campaign. - ENHANCED_CPC_OPT_IN = 7; - - // Recommendation to start showing your campaign's ads on Google Search - // Partners Websites. - SEARCH_PARTNERS_OPT_IN = 8; - - // Recommendation to update a campaign to use a Maximize Clicks bidding - // strategy. - MAXIMIZE_CLICKS_OPT_IN = 9; - - // Recommendation to start using the "Optimize" ad rotation setting for the - // given ad group. - OPTIMIZE_AD_ROTATION = 10; - - // Recommendation to add callout extensions to a campaign. - CALLOUT_EXTENSION = 11; - - // Recommendation to add sitelink extensions to a campaign. - SITELINK_EXTENSION = 12; - - // Recommendation to add call extensions to a campaign. - CALL_EXTENSION = 13; - - // Recommendation to change an existing keyword from one match type to a - // broader match type. - KEYWORD_MATCH_TYPE = 14; - - // Recommendation to move unused budget from one budget to a constrained - // budget. - MOVE_UNUSED_BUDGET = 15; - - // Budget recommendation for campaigns that are expected to become - // budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET - // recommendation, which applies to campaigns that are currently - // budget-constrained). - FORECASTING_CAMPAIGN_BUDGET = 16; - - // Recommendation to update a campaign to use a Target ROAS bidding - // strategy. - TARGET_ROAS_OPT_IN = 17; - - // Recommendation to add a new responsive search ad. - RESPONSIVE_SEARCH_AD = 18; - - // Budget recommendation for campaigns whose ROI is predicted to increase - // with a budget adjustment. - MARGINAL_ROI_CAMPAIGN_BUDGET = 19; - } - - -} diff --git a/google/ads/googleads/v8/enums/resource_change_operation.proto b/google/ads/googleads/v8/enums/resource_change_operation.proto deleted file mode 100644 index 812ba3c0e..000000000 --- a/google/ads/googleads/v8/enums/resource_change_operation.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ResourceChangeOperationProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the resource change operations in change event. - -// Container for enum describing resource change operations -// in the ChangeEvent resource. -message ResourceChangeOperationEnum { - // The operation on the changed resource in change_event resource. - enum ResourceChangeOperation { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified operation unknown - // in this version. - UNKNOWN = 1; - - // The resource was created. - CREATE = 2; - - // The resource was modified. - UPDATE = 3; - - // The resource was removed. - REMOVE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/resource_limit_type.proto b/google/ads/googleads/v8/enums/resource_limit_type.proto deleted file mode 100644 index 6fe8f5e89..000000000 --- a/google/ads/googleads/v8/enums/resource_limit_type.proto +++ /dev/null @@ -1,333 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ResourceLimitTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing possible resource limit types. -message ResourceLimitTypeEnum { - // Resource limit type. - enum ResourceLimitType { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents an unclassified operation unknown - // in this version. - UNKNOWN = 1; - - // Number of ENABLED and PAUSED campaigns per customer. - CAMPAIGNS_PER_CUSTOMER = 2; - - // Number of ENABLED and PAUSED base campaigns per customer. - BASE_CAMPAIGNS_PER_CUSTOMER = 3; - - // Number of ENABLED and PAUSED experiment campaigns per customer. - EXPERIMENT_CAMPAIGNS_PER_CUSTOMER = 105; - - // Number of ENABLED and PAUSED Hotel campaigns per customer. - HOTEL_CAMPAIGNS_PER_CUSTOMER = 4; - - // Number of ENABLED and PAUSED Smart Shopping campaigns per customer. - SMART_SHOPPING_CAMPAIGNS_PER_CUSTOMER = 5; - - // Number of ENABLED ad groups per campaign. - AD_GROUPS_PER_CAMPAIGN = 6; - - // Number of ENABLED ad groups per Shopping campaign. - AD_GROUPS_PER_SHOPPING_CAMPAIGN = 8; - - // Number of ENABLED ad groups per Hotel campaign. - AD_GROUPS_PER_HOTEL_CAMPAIGN = 9; - - // Number of ENABLED reporting ad groups per local campaign. - REPORTING_AD_GROUPS_PER_LOCAL_CAMPAIGN = 10; - - // Number of ENABLED reporting ad groups per App campaign. It includes app - // campaign and app campaign for engagement. - REPORTING_AD_GROUPS_PER_APP_CAMPAIGN = 11; - - // Number of ENABLED managed ad groups per smart campaign. - MANAGED_AD_GROUPS_PER_SMART_CAMPAIGN = 52; - - // Number of ENABLED ad group criteria per customer. - // An ad group criterion is considered as ENABLED if: - // 1. it's not REMOVED - // 2. its ad group is not REMOVED - // 3. its campaign is not REMOVED. - AD_GROUP_CRITERIA_PER_CUSTOMER = 12; - - // Number of ad group criteria across all base campaigns for a customer. - BASE_AD_GROUP_CRITERIA_PER_CUSTOMER = 13; - - // Number of ad group criteria across all experiment campaigns for a - // customer. - EXPERIMENT_AD_GROUP_CRITERIA_PER_CUSTOMER = 107; - - // Number of ENABLED ad group criteria per campaign. - // An ad group criterion is considered as ENABLED if: - // 1. it's not REMOVED - // 2. its ad group is not REMOVED. - AD_GROUP_CRITERIA_PER_CAMPAIGN = 14; - - // Number of ENABLED campaign criteria per customer. - CAMPAIGN_CRITERIA_PER_CUSTOMER = 15; - - // Number of ENABLED campaign criteria across all base campaigns for a - // customer. - BASE_CAMPAIGN_CRITERIA_PER_CUSTOMER = 16; - - // Number of ENABLED campaign criteria across all experiment campaigns for a - // customer. - EXPERIMENT_CAMPAIGN_CRITERIA_PER_CUSTOMER = 108; - - // Number of ENABLED webpage criteria per customer, including - // campaign level and ad group level. - WEBPAGE_CRITERIA_PER_CUSTOMER = 17; - - // Number of ENABLED webpage criteria across all base campaigns for - // a customer. - BASE_WEBPAGE_CRITERIA_PER_CUSTOMER = 18; - - // Meximum number of ENABLED webpage criteria across all experiment - // campaigns for a customer. - EXPERIMENT_WEBPAGE_CRITERIA_PER_CUSTOMER = 19; - - // Number of combined audience criteria per ad group. - COMBINED_AUDIENCE_CRITERIA_PER_AD_GROUP = 20; - - // Limit for placement criterion type group in customer negative criterion. - CUSTOMER_NEGATIVE_PLACEMENT_CRITERIA_PER_CUSTOMER = 21; - - // Limit for YouTube TV channels in customer negative criterion. - CUSTOMER_NEGATIVE_YOUTUBE_CHANNEL_CRITERIA_PER_CUSTOMER = 22; - - // Number of ENABLED criteria per ad group. - CRITERIA_PER_AD_GROUP = 23; - - // Number of listing group criteria per ad group. - LISTING_GROUPS_PER_AD_GROUP = 24; - - // Number of ENABLED explicitly shared budgets per customer. - EXPLICITLY_SHARED_BUDGETS_PER_CUSTOMER = 25; - - // Number of ENABLED implicitly shared budgets per customer. - IMPLICITLY_SHARED_BUDGETS_PER_CUSTOMER = 26; - - // Number of combined audience criteria per campaign. - COMBINED_AUDIENCE_CRITERIA_PER_CAMPAIGN = 27; - - // Number of negative keywords per campaign. - NEGATIVE_KEYWORDS_PER_CAMPAIGN = 28; - - // Number of excluded campaign criteria in placement dimension, e.g. - // placement, mobile application, YouTube channel, etc. The API criterion - // type is NOT limited to placement only, and this does not include - // exclusions at the ad group or other levels. - NEGATIVE_PLACEMENTS_PER_CAMPAIGN = 29; - - // Number of geo targets per campaign. - GEO_TARGETS_PER_CAMPAIGN = 30; - - // Number of negative IP blocks per campaign. - NEGATIVE_IP_BLOCKS_PER_CAMPAIGN = 32; - - // Number of proximity targets per campaign. - PROXIMITIES_PER_CAMPAIGN = 33; - - // Number of listing scopes per Shopping campaign. - LISTING_SCOPES_PER_SHOPPING_CAMPAIGN = 34; - - // Number of listing scopes per non-Shopping campaign. - LISTING_SCOPES_PER_NON_SHOPPING_CAMPAIGN = 35; - - // Number of criteria per negative keyword shared set. - NEGATIVE_KEYWORDS_PER_SHARED_SET = 36; - - // Number of criteria per negative placement shared set. - NEGATIVE_PLACEMENTS_PER_SHARED_SET = 37; - - // Default number of shared sets allowed per type per customer. - SHARED_SETS_PER_CUSTOMER_FOR_TYPE_DEFAULT = 40; - - // Number of shared sets of negative placement list type for a - // manager customer. - SHARED_SETS_PER_CUSTOMER_FOR_NEGATIVE_PLACEMENT_LIST_LOWER = 41; - - // Number of hotel_advance_booking_window bid modifiers per ad group. - HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP = 44; - - // Number of ENABLED shared bidding strategies per customer. - BIDDING_STRATEGIES_PER_CUSTOMER = 45; - - // Number of open basic user lists per customer. - BASIC_USER_LISTS_PER_CUSTOMER = 47; - - // Number of open logical user lists per customer. - LOGICAL_USER_LISTS_PER_CUSTOMER = 48; - - // Number of ENABLED and PAUSED ad group ads across all base campaigns for a - // customer. - BASE_AD_GROUP_ADS_PER_CUSTOMER = 53; - - // Number of ENABLED and PAUSED ad group ads across all experiment campaigns - // for a customer. - EXPERIMENT_AD_GROUP_ADS_PER_CUSTOMER = 54; - - // Number of ENABLED and PAUSED ad group ads per campaign. - AD_GROUP_ADS_PER_CAMPAIGN = 55; - - // Number of ENABLED ads per ad group that do not fall in to other buckets. - // Includes text and many other types. - TEXT_AND_OTHER_ADS_PER_AD_GROUP = 56; - - // Number of ENABLED image ads per ad group. - IMAGE_ADS_PER_AD_GROUP = 57; - - // Number of ENABLED shopping smart ads per ad group. - SHOPPING_SMART_ADS_PER_AD_GROUP = 58; - - // Number of ENABLED responsive search ads per ad group. - RESPONSIVE_SEARCH_ADS_PER_AD_GROUP = 59; - - // Number of ENABLED app ads per ad group. - APP_ADS_PER_AD_GROUP = 60; - - // Number of ENABLED app engagement ads per ad group. - APP_ENGAGEMENT_ADS_PER_AD_GROUP = 61; - - // Number of ENABLED local ads per ad group. - LOCAL_ADS_PER_AD_GROUP = 62; - - // Number of ENABLED video ads per ad group. - VIDEO_ADS_PER_AD_GROUP = 63; - - // Number of ENABLED lead form asset links per campaign. - LEAD_FORM_ASSET_LINKS_PER_CAMPAIGN = 68; - - // Number of versions per ad. - VERSIONS_PER_AD = 82; - - // Number of ENABLED user feeds per customer. - USER_FEEDS_PER_CUSTOMER = 90; - - // Number of ENABLED system feeds per customer. - SYSTEM_FEEDS_PER_CUSTOMER = 91; - - // Number of feed attributes per feed. - FEED_ATTRIBUTES_PER_FEED = 92; - - // Number of ENABLED feed items per customer. - FEED_ITEMS_PER_CUSTOMER = 94; - - // Number of ENABLED campaign feeds per customer. - CAMPAIGN_FEEDS_PER_CUSTOMER = 95; - - // Number of ENABLED campaign feeds across all base campaigns for a - // customer. - BASE_CAMPAIGN_FEEDS_PER_CUSTOMER = 96; - - // Number of ENABLED campaign feeds across all experiment campaigns for a - // customer. - EXPERIMENT_CAMPAIGN_FEEDS_PER_CUSTOMER = 109; - - // Number of ENABLED ad group feeds per customer. - AD_GROUP_FEEDS_PER_CUSTOMER = 97; - - // Number of ENABLED ad group feeds across all base campaigns for a - // customer. - BASE_AD_GROUP_FEEDS_PER_CUSTOMER = 98; - - // Number of ENABLED ad group feeds across all experiment campaigns for a - // customer. - EXPERIMENT_AD_GROUP_FEEDS_PER_CUSTOMER = 110; - - // Number of ENABLED ad group feeds per campaign. - AD_GROUP_FEEDS_PER_CAMPAIGN = 99; - - // Number of ENABLED feed items per customer. - FEED_ITEM_SETS_PER_CUSTOMER = 100; - - // Number of feed items per feed item set. - FEED_ITEMS_PER_FEED_ITEM_SET = 101; - - // Number of ENABLED campaign experiments per customer. - CAMPAIGN_EXPERIMENTS_PER_CUSTOMER = 112; - - // Number of video experiment arms per experiment. - EXPERIMENT_ARMS_PER_VIDEO_EXPERIMENT = 113; - - // Number of owned labels per customer. - OWNED_LABELS_PER_CUSTOMER = 115; - - // Number of applied labels per campaign. - LABELS_PER_CAMPAIGN = 117; - - // Number of applied labels per ad group. - LABELS_PER_AD_GROUP = 118; - - // Number of applied labels per ad group ad. - LABELS_PER_AD_GROUP_AD = 119; - - // Number of applied labels per ad group criterion. - LABELS_PER_AD_GROUP_CRITERION = 120; - - // Number of customers with a single label applied. - TARGET_CUSTOMERS_PER_LABEL = 121; - - // Number of ENABLED keyword plans per user per customer. - // The limit is applied per pair because by default a plan - // is private to a user of a customer. Each user of a customer has his or - // her own independent limit. - KEYWORD_PLANS_PER_USER_PER_CUSTOMER = 122; - - // Number of keyword plan ad group keywords per keyword plan. - KEYWORD_PLAN_AD_GROUP_KEYWORDS_PER_KEYWORD_PLAN = 123; - - // Number of keyword plan ad groups per keyword plan. - KEYWORD_PLAN_AD_GROUPS_PER_KEYWORD_PLAN = 124; - - // Number of keyword plan negative keywords (both campaign and ad group) per - // keyword plan. - KEYWORD_PLAN_NEGATIVE_KEYWORDS_PER_KEYWORD_PLAN = 125; - - // Number of keyword plan campaigns per keyword plan. - KEYWORD_PLAN_CAMPAIGNS_PER_KEYWORD_PLAN = 126; - - // Number of ENABLED conversion actions per customer. - CONVERSION_ACTIONS_PER_CUSTOMER = 128; - - // Number of operations in a single batch job. - BATCH_JOB_OPERATIONS_PER_JOB = 130; - - // Number of PENDING or ENABLED batch jobs per customer. - BATCH_JOBS_PER_CUSTOMER = 131; - - // Number of hotel check-in date range bid modifiers per ad agroup. - HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP = 132; - } - - -} diff --git a/google/ads/googleads/v8/enums/response_content_type.proto b/google/ads/googleads/v8/enums/response_content_type.proto deleted file mode 100644 index b3b8fe73b..000000000 --- a/google/ads/googleads/v8/enums/response_content_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ResponseContentTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the response content types used in mutate operations. - -// Container for possible response content types. -message ResponseContentTypeEnum { - // Possible response content types. - enum ResponseContentType { - // Not specified. Will return the resource name only in the response. - UNSPECIFIED = 0; - - // 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. - MUTABLE_RESOURCE = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/search_engine_results_page_type.proto b/google/ads/googleads/v8/enums/search_engine_results_page_type.proto deleted file mode 100644 index 29f7e11aa..000000000 --- a/google/ads/googleads/v8/enums/search_engine_results_page_type.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SearchEngineResultsPageTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing search engine results page types. - -// The type of the search engine results page. -message SearchEngineResultsPageTypeEnum { - // The type of the search engine results page. - enum SearchEngineResultsPageType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Only ads were contained in the search engine results page. - ADS_ONLY = 2; - - // Only organic results were contained in the search engine results page. - ORGANIC_ONLY = 3; - - // Both ads and organic results were contained in the search engine results - // page. - ADS_AND_ORGANIC = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/search_term_match_type.proto b/google/ads/googleads/v8/enums/search_term_match_type.proto deleted file mode 100644 index 466903958..000000000 --- a/google/ads/googleads/v8/enums/search_term_match_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SearchTermMatchTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing search term match types. - -// Container for enum describing match types for a keyword triggering an ad. -message SearchTermMatchTypeEnum { - // Possible match types for a keyword triggering an ad, including variants. - enum SearchTermMatchType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Broad match. - BROAD = 2; - - // Exact match. - EXACT = 3; - - // Phrase match. - PHRASE = 4; - - // Exact match (close variant). - NEAR_EXACT = 5; - - // Phrase match (close variant). - NEAR_PHRASE = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/search_term_targeting_status.proto b/google/ads/googleads/v8/enums/search_term_targeting_status.proto deleted file mode 100644 index 5bf1e2e54..000000000 --- a/google/ads/googleads/v8/enums/search_term_targeting_status.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SearchTermTargetingStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing search term targeting statuses. - -// Container for enum indicating whether a search term is one of your targeted -// or excluded keywords. -message SearchTermTargetingStatusEnum { - // Indicates whether the search term is one of your targeted or excluded - // keywords. - enum SearchTermTargetingStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Search term is added to targeted keywords. - ADDED = 2; - - // Search term matches a negative keyword. - EXCLUDED = 3; - - // Search term has been both added and excluded. - ADDED_EXCLUDED = 4; - - // Search term is neither targeted nor excluded. - NONE = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/seasonality_event_scope.proto b/google/ads/googleads/v8/enums/seasonality_event_scope.proto deleted file mode 100644 index ed90a47fb..000000000 --- a/google/ads/googleads/v8/enums/seasonality_event_scope.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SeasonalityEventScopeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing seasonality event status. - -// Message describing seasonality event scopes. The two types of seasonality -// events are BiddingSeasonalityAdjustments and BiddingDataExclusions. -message SeasonalityEventScopeEnum { - // The possible scopes of a Seasonality Event. - enum SeasonalityEventScope { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The seasonality event is applied to all the customer’s traffic for - // supported advertising channel types and device types. The CUSTOMER scope - // cannot be used in mutates. - CUSTOMER = 2; - - // The seasonality event is applied to all specified campaigns. - CAMPAIGN = 4; - - // The seasonality event is applied to all campaigns that belong to - // specified channel types. - CHANNEL = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/seasonality_event_status.proto b/google/ads/googleads/v8/enums/seasonality_event_status.proto deleted file mode 100644 index 5255b696e..000000000 --- a/google/ads/googleads/v8/enums/seasonality_event_status.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SeasonalityEventStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing seasonality event status. - -// Message describing seasonality event statuses. The two types of seasonality -// events are BiddingSeasonalityAdjustments and BiddingDataExclusions. -message SeasonalityEventStatusEnum { - // The possible statuses of a Seasonality Event. - enum SeasonalityEventStatus { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The seasonality event is enabled. - ENABLED = 2; - - // The seasonality event is removed. - REMOVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/served_asset_field_type.proto b/google/ads/googleads/v8/enums/served_asset_field_type.proto deleted file mode 100644 index 7886f0da0..000000000 --- a/google/ads/googleads/v8/enums/served_asset_field_type.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ServedAssetFieldTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing policy review statuses. - -// Container for enum describing possible asset field types. -message ServedAssetFieldTypeEnum { - // The possible asset field types. - enum ServedAssetFieldType { - // No value has been specified. - UNSPECIFIED = 0; - - // The received value is not known in this version. - // - // This is a response-only value. - UNKNOWN = 1; - - // The asset is used in headline 1. - HEADLINE_1 = 2; - - // The asset is used in headline 2. - HEADLINE_2 = 3; - - // The asset is used in headline 3. - HEADLINE_3 = 4; - - // The asset is used in description 1. - DESCRIPTION_1 = 5; - - // The asset is used in description 2. - DESCRIPTION_2 = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/shared_set_status.proto b/google/ads/googleads/v8/enums/shared_set_status.proto deleted file mode 100644 index 4f861128b..000000000 --- a/google/ads/googleads/v8/enums/shared_set_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing shared set statuses. - -// Container for enum describing types of shared set statuses. -message SharedSetStatusEnum { - // Enum listing the possible shared set statuses. - enum SharedSetStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The shared set is enabled. - ENABLED = 2; - - // The shared set is removed and can no longer be used. - REMOVED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/shared_set_type.proto b/google/ads/googleads/v8/enums/shared_set_type.proto deleted file mode 100644 index 43e284dcf..000000000 --- a/google/ads/googleads/v8/enums/shared_set_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing shared set types. - -// Container for enum describing types of shared sets. -message SharedSetTypeEnum { - // Enum listing the possible shared set types. - enum SharedSetType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // A set of keywords that can be excluded from targeting. - NEGATIVE_KEYWORDS = 2; - - // A set of placements that can be excluded from targeting. - NEGATIVE_PLACEMENTS = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/simulation_modification_method.proto b/google/ads/googleads/v8/enums/simulation_modification_method.proto deleted file mode 100644 index d4fe28dec..000000000 --- a/google/ads/googleads/v8/enums/simulation_modification_method.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SimulationModificationMethodProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing simulation modification methods. - -// Container for enum describing the method by which a simulation modifies -// a field. -message SimulationModificationMethodEnum { - // Enum describing the method by which a simulation modifies a field. - enum SimulationModificationMethod { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The values in a simulation were applied to all children of a given - // resource uniformly. Overrides on child resources were not respected. - UNIFORM = 2; - - // The values in a simulation were applied to the given resource. - // Overrides on child resources were respected, and traffic estimates - // do not include these resources. - DEFAULT = 3; - - // The values in a simulation were all scaled by the same factor. - // For example, in a simulated TargetCpa campaign, the campaign target and - // all ad group targets were scaled by a factor of X. - SCALING = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/simulation_type.proto b/google/ads/googleads/v8/enums/simulation_type.proto deleted file mode 100644 index 73a97e702..000000000 --- a/google/ads/googleads/v8/enums/simulation_type.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SimulationTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing simulation types. - -// Container for enum describing the field a simulation modifies. -message SimulationTypeEnum { - // Enum describing the field a simulation modifies. - enum SimulationType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The simulation is for a CPC bid. - CPC_BID = 2; - - // The simulation is for a CPV bid. - CPV_BID = 3; - - // The simulation is for a CPA target. - TARGET_CPA = 4; - - // The simulation is for a bid modifier. - BID_MODIFIER = 5; - - // The simulation is for a ROAS target. - TARGET_ROAS = 6; - - // The simulation is for a percent CPC bid. - PERCENT_CPC_BID = 7; - - // The simulation is for an impression share target. - TARGET_IMPRESSION_SHARE = 8; - - // The simulation is for a budget. - BUDGET = 9; - } - - -} diff --git a/google/ads/googleads/v8/enums/sitelink_placeholder_field.proto b/google/ads/googleads/v8/enums/sitelink_placeholder_field.proto deleted file mode 100644 index 600a0aed6..000000000 --- a/google/ads/googleads/v8/enums/sitelink_placeholder_field.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SitelinkPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Sitelink placeholder fields. - -// Values for Sitelink placeholder fields. -message SitelinkPlaceholderFieldEnum { - // Possible values for Sitelink placeholder fields. - enum SitelinkPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The link text for your sitelink. - TEXT = 2; - - // Data Type: STRING. First line of the sitelink description. - LINE_1 = 3; - - // Data Type: STRING. Second line of the sitelink description. - LINE_2 = 4; - - // Data Type: URL_LIST. Final URLs for the sitelink when using Upgraded - // URLs. - FINAL_URLS = 5; - - // Data Type: URL_LIST. Final Mobile URLs for the sitelink when using - // Upgraded URLs. - FINAL_MOBILE_URLS = 6; - - // Data Type: URL. Tracking template for the sitelink when using Upgraded - // URLs. - TRACKING_URL = 7; - - // Data Type: STRING. Final URL suffix for sitelink when using parallel - // tracking. - FINAL_URL_SUFFIX = 8; - } - - -} diff --git a/google/ads/googleads/v8/enums/slot.proto b/google/ads/googleads/v8/enums/slot.proto deleted file mode 100644 index 744848795..000000000 --- a/google/ads/googleads/v8/enums/slot.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SlotProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing slots. - -// Container for enumeration of possible positions of the Ad. -message SlotEnum { - // Enumerates possible positions of the Ad. - enum Slot { - // Not specified. - UNSPECIFIED = 0; - - // The value is unknown in this version. - UNKNOWN = 1; - - // Google search: Side. - SEARCH_SIDE = 2; - - // Google search: Top. - SEARCH_TOP = 3; - - // Google search: Other. - SEARCH_OTHER = 4; - - // Google Display Network. - CONTENT = 5; - - // Search partners: Top. - SEARCH_PARTNER_TOP = 6; - - // Search partners: Other. - SEARCH_PARTNER_OTHER = 7; - - // Cross-network. - MIXED = 8; - } - - -} diff --git a/google/ads/googleads/v8/enums/spending_limit_type.proto b/google/ads/googleads/v8/enums/spending_limit_type.proto deleted file mode 100644 index f9ad5e277..000000000 --- a/google/ads/googleads/v8/enums/spending_limit_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SpendingLimitTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing SpendingLimit types. - -// Message describing spending limit types. -message SpendingLimitTypeEnum { - // The possible spending limit types used by certain resources as an - // alternative to absolute money values in micros. - enum SpendingLimitType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Infinite, indicates unlimited spending power. - INFINITE = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/structured_snippet_placeholder_field.proto b/google/ads/googleads/v8/enums/structured_snippet_placeholder_field.proto deleted file mode 100644 index 9c622689f..000000000 --- a/google/ads/googleads/v8/enums/structured_snippet_placeholder_field.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "StructuredSnippetPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Structured Snippet placeholder fields. - -// Values for Structured Snippet placeholder fields. -message StructuredSnippetPlaceholderFieldEnum { - // Possible values for Structured Snippet placeholder fields. - enum StructuredSnippetPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. The category of snippet of your products/services. - // Must match exactly one of the predefined structured snippets headers. - // For a list, visit - // https://developers.google.com/adwords/api/docs/appendix/structured-snippet-headers - HEADER = 2; - - // Data Type: STRING_LIST. Text values that describe your products/services. - // All text must be family safe. Special or non-ASCII characters are not - // permitted. A snippet can be at most 25 characters. - SNIPPETS = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/summary_row_setting.proto b/google/ads/googleads/v8/enums/summary_row_setting.proto deleted file mode 100644 index e800090fa..000000000 --- a/google/ads/googleads/v8/enums/summary_row_setting.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SummaryRowSettingProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing summary row setting. - -// Indicates summary row setting in request parameter. -message SummaryRowSettingEnum { - // Enum describing return summary row settings. - enum SummaryRowSetting { - // Not specified. - UNSPECIFIED = 0; - - // Represent unknown values of return summary row. - UNKNOWN = 1; - - // Do not return summary row. - NO_SUMMARY_ROW = 2; - - // Return summary row along with results. The summary row will be returned - // in the last batch alone (last batch will contain no results). - SUMMARY_ROW_WITH_RESULTS = 3; - - // Return summary row only and return no results. - SUMMARY_ROW_ONLY = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/system_managed_entity_source.proto b/google/ads/googleads/v8/enums/system_managed_entity_source.proto deleted file mode 100644 index c20b0bce4..000000000 --- a/google/ads/googleads/v8/enums/system_managed_entity_source.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "SystemManagedEntitySourceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing system managed entity sources. - -// Container for enum describing possible system managed entity sources. -message SystemManagedResourceSourceEnum { - // Enum listing the possible system managed entity sources. - enum SystemManagedResourceSource { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Generated ad variations experiment ad. - AD_VARIATIONS = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/target_cpa_opt_in_recommendation_goal.proto b/google/ads/googleads/v8/enums/target_cpa_opt_in_recommendation_goal.proto deleted file mode 100644 index af00d8a78..000000000 --- a/google/ads/googleads/v8/enums/target_cpa_opt_in_recommendation_goal.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TargetCpaOptInRecommendationGoalProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing TargetCpaOptIn recommendation goals. - -// Container for enum describing goals for TargetCpaOptIn recommendation. -message TargetCpaOptInRecommendationGoalEnum { - // Goal of TargetCpaOptIn recommendation. - enum TargetCpaOptInRecommendationGoal { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Recommendation to set Target CPA to maintain the same cost. - SAME_COST = 2; - - // Recommendation to set Target CPA to maintain the same conversions. - SAME_CONVERSIONS = 3; - - // Recommendation to set Target CPA to maintain the same CPA. - SAME_CPA = 4; - - // Recommendation to set Target CPA to a value that is as close as possible - // to, yet lower than, the actual CPA (computed for past 28 days). - CLOSEST_CPA = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/target_impression_share_location.proto b/google/ads/googleads/v8/enums/target_impression_share_location.proto deleted file mode 100644 index 3b575a6ea..000000000 --- a/google/ads/googleads/v8/enums/target_impression_share_location.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TargetImpressionShareLocationProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing target impression share goal. - -// Container for enum describing where on the first search results page the -// automated bidding system should target impressions for the -// TargetImpressionShare bidding strategy. -message TargetImpressionShareLocationEnum { - // Enum describing possible goals. - enum TargetImpressionShareLocation { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Any location on the web page. - ANYWHERE_ON_PAGE = 2; - - // Top box of ads. - TOP_OF_PAGE = 3; - - // Top slot in the top box of ads. - ABSOLUTE_TOP_OF_PAGE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/targeting_dimension.proto b/google/ads/googleads/v8/enums/targeting_dimension.proto deleted file mode 100644 index 3bbe02f33..000000000 --- a/google/ads/googleads/v8/enums/targeting_dimension.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TargetingDimensionProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing criteria types. - -// The dimensions that can be targeted. -message TargetingDimensionEnum { - // Enum describing possible targeting dimensions. - enum TargetingDimension { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Keyword criteria, e.g. 'mars cruise'. KEYWORD may be used as a custom bid - // dimension. Keywords are always a targeting dimension, so may not be set - // as a target "ALL" dimension with TargetRestriction. - KEYWORD = 2; - - // Audience criteria, which include user list, user interest, custom - // affinity, and custom in market. - AUDIENCE = 3; - - // Topic criteria for targeting categories of content, e.g. - // 'category::Animals>Pets' Used for Display and Video targeting. - TOPIC = 4; - - // Criteria for targeting gender. - GENDER = 5; - - // Criteria for targeting age ranges. - AGE_RANGE = 6; - - // Placement criteria, which include websites like 'www.flowers4sale.com', - // as well as mobile applications, mobile app categories, YouTube videos, - // and YouTube channels. - PLACEMENT = 7; - - // Criteria for parental status targeting. - PARENTAL_STATUS = 8; - - // Criteria for income range targeting. - INCOME_RANGE = 9; - } - - -} diff --git a/google/ads/googleads/v8/enums/time_type.proto b/google/ads/googleads/v8/enums/time_type.proto deleted file mode 100644 index d03b82038..000000000 --- a/google/ads/googleads/v8/enums/time_type.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TimeTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing TimeType types. - -// Message describing time types. -message TimeTypeEnum { - // The possible time types used by certain resources as an alternative to - // absolute timestamps. - enum TimeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // As soon as possible. - NOW = 2; - - // An infinite point in the future. - FOREVER = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/tracking_code_page_format.proto b/google/ads/googleads/v8/enums/tracking_code_page_format.proto deleted file mode 100644 index 5fc587368..000000000 --- a/google/ads/googleads/v8/enums/tracking_code_page_format.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TrackingCodePageFormatProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing the format of the web page where the tracking -// tag and snippet will be installed. -message TrackingCodePageFormatEnum { - // The format of the web page where the tracking tag and snippet will be - // installed. - enum TrackingCodePageFormat { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Standard HTML page format. - HTML = 2; - - // Google AMP page format. - AMP = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/tracking_code_type.proto b/google/ads/googleads/v8/enums/tracking_code_type.proto deleted file mode 100644 index 28ba63ab7..000000000 --- a/google/ads/googleads/v8/enums/tracking_code_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TrackingCodeTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Container for enum describing the type of the generated tag snippets for -// tracking conversions. -message TrackingCodeTypeEnum { - // The type of the generated tag snippets for tracking conversions. - enum TrackingCodeType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The snippet that is fired as a result of a website page loading. - WEBPAGE = 2; - - // The snippet contains a JavaScript function which fires the tag. This - // function is typically called from an onClick handler added to a link or - // button element on the page. - WEBPAGE_ONCLICK = 3; - - // For embedding on a mobile webpage. The snippet contains a JavaScript - // function which fires the tag. - CLICK_TO_CALL = 4; - - // The snippet that is used to replace the phone number on your website with - // a Google forwarding number for call tracking purposes. - WEBSITE_CALL = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/travel_placeholder_field.proto b/google/ads/googleads/v8/enums/travel_placeholder_field.proto deleted file mode 100644 index f5399c979..000000000 --- a/google/ads/googleads/v8/enums/travel_placeholder_field.proto +++ /dev/null @@ -1,128 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "TravelPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing Travel placeholder fields. - -// Values for Travel placeholder fields. -// For more information about dynamic remarketing feeds, see -// https://support.google.com/google-ads/answer/6053288. -message TravelPlaceholderFieldEnum { - // Possible values for Travel placeholder fields. - enum TravelPlaceholderField { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Data Type: STRING. Required. Destination id. Example: PAR, LON. - // For feed items that only have destination id, destination id must be a - // unique key. For feed items that have both destination id and origin id, - // then the combination must be a unique key. - DESTINATION_ID = 2; - - // Data Type: STRING. Origin id. Example: PAR, LON. - // Combination of DESTINATION_ID and ORIGIN_ID must be - // unique per offer. - ORIGIN_ID = 3; - - // Data Type: STRING. Required. Main headline with name to be shown in - // dynamic ad. - TITLE = 4; - - // Data Type: STRING. The destination name. Shorter names are recommended. - DESTINATION_NAME = 5; - - // Data Type: STRING. Origin name. Shorter names are recommended. - ORIGIN_NAME = 6; - - // Data Type: STRING. Price to be shown in the ad. Highly recommended for - // dynamic ads. - // Example: "100.00 USD" - PRICE = 7; - - // Data Type: STRING. Formatted price to be shown in the ad. - // Example: "Starting at $100.00 USD", "$80 - $100" - FORMATTED_PRICE = 8; - - // Data Type: STRING. Sale price to be shown in the ad. - // Example: "80.00 USD" - SALE_PRICE = 9; - - // Data Type: STRING. Formatted sale price to be shown in the ad. - // Example: "On sale for $80.00", "$60 - $80" - FORMATTED_SALE_PRICE = 10; - - // Data Type: URL. Image to be displayed in the ad. - IMAGE_URL = 11; - - // Data Type: STRING. Category of travel offer used to group like items - // together for recommendation engine. - CATEGORY = 12; - - // Data Type: STRING_LIST. Keywords used for product retrieval. - CONTEXTUAL_KEYWORDS = 13; - - // Data Type: STRING. Address of travel offer, including postal code. - DESTINATION_ADDRESS = 14; - - // Data Type: URL_LIST. Required. Final URLs to be used in ad, when using - // Upgraded URLs; the more specific the better (e.g. the individual URL of a - // specific travel offer and its location). - FINAL_URL = 15; - - // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded - // URLs. - FINAL_MOBILE_URLS = 16; - - // Data Type: URL. Tracking template for the ad when using Upgraded URLs. - TRACKING_URL = 17; - - // Data Type: STRING. Android app link. Must be formatted as: - // android-app://{package_id}/{scheme}/{host_path}. - // The components are defined as follows: - // package_id: app ID as specified in Google Play. - // scheme: the scheme to pass to the application. Can be HTTP, or a custom - // scheme. - // host_path: identifies the specific content within your application. - ANDROID_APP_LINK = 18; - - // Data Type: STRING_LIST. List of recommended destination IDs to show - // together with this item. - SIMILAR_DESTINATION_IDS = 19; - - // Data Type: STRING. iOS app link. - IOS_APP_LINK = 20; - - // Data Type: INT64. iOS app store ID. - IOS_APP_STORE_ID = 21; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_identifier_source.proto b/google/ads/googleads/v8/enums/user_identifier_source.proto deleted file mode 100644 index 9165a6c82..000000000 --- a/google/ads/googleads/v8/enums/user_identifier_source.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserIdentifierSourceProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing user identifier source - -// Container for enum describing the source of the user identifier for offline -// Store Sales, click conversion, and conversion adjustment uploads. -message UserIdentifierSourceEnum { - // The type of user identifier source for offline Store Sales, click - // conversion, and conversion adjustment uploads. - enum UserIdentifierSource { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version - UNKNOWN = 1; - - // Indicates that the user identifier was provided by the first party - // (advertiser). - FIRST_PARTY = 2; - - // Indicates that the user identifier was provided by the third party - // (partner). - THIRD_PARTY = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_interest_taxonomy_type.proto b/google/ads/googleads/v8/enums/user_interest_taxonomy_type.proto deleted file mode 100644 index 4246ab631..000000000 --- a/google/ads/googleads/v8/enums/user_interest_taxonomy_type.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserInterestTaxonomyTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing the UserInterest taxonomy type - -// Message describing a UserInterestTaxonomyType. -message UserInterestTaxonomyTypeEnum { - // Enum containing the possible UserInterestTaxonomyTypes. - enum UserInterestTaxonomyType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The affinity for this user interest. - AFFINITY = 2; - - // The market for this user interest. - IN_MARKET = 3; - - // Users known to have installed applications in the specified categories. - MOBILE_APP_INSTALL_USER = 4; - - // The geographical location of the interest-based vertical. - VERTICAL_GEO = 5; - - // User interest criteria for new smart phone users. - NEW_SMART_PHONE_USER = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_access_status.proto b/google/ads/googleads/v8/enums/user_list_access_status.proto deleted file mode 100644 index e8cd2fdc4..000000000 --- a/google/ads/googleads/v8/enums/user_list_access_status.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListAccessStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing user list access status. - -// Indicates if this client still has access to the list. -message UserListAccessStatusEnum { - // Enum containing possible user list access statuses. - enum UserListAccessStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The access is enabled. - ENABLED = 2; - - // The access is disabled. - DISABLED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_closing_reason.proto b/google/ads/googleads/v8/enums/user_list_closing_reason.proto deleted file mode 100644 index e22f8e83f..000000000 --- a/google/ads/googleads/v8/enums/user_list_closing_reason.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListClosingReasonProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing user list closing reason. - -// Indicates the reason why the userlist was closed. -// This enum is only used when a list is auto-closed by the system. -message UserListClosingReasonEnum { - // Enum describing possible user list closing reasons. - enum UserListClosingReason { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The userlist was closed because of not being used for over one year. - UNUSED = 2; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_combined_rule_operator.proto b/google/ads/googleads/v8/enums/user_list_combined_rule_operator.proto deleted file mode 100644 index 14dc6469e..000000000 --- a/google/ads/googleads/v8/enums/user_list_combined_rule_operator.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListCombinedRuleOperatorProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Logical operator connecting two rules. -message UserListCombinedRuleOperatorEnum { - // Enum describing possible user list combined rule operators. - enum UserListCombinedRuleOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // A AND B. - AND = 2; - - // A AND NOT B. - AND_NOT = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_crm_data_source_type.proto b/google/ads/googleads/v8/enums/user_list_crm_data_source_type.proto deleted file mode 100644 index 5c76744ab..000000000 --- a/google/ads/googleads/v8/enums/user_list_crm_data_source_type.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListCrmDataSourceTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Indicates source of Crm upload data. -message UserListCrmDataSourceTypeEnum { - // Enum describing possible user list crm data source type. - enum UserListCrmDataSourceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The uploaded data is first-party data. - FIRST_PARTY = 2; - - // The uploaded data is from a third-party credit bureau. - THIRD_PARTY_CREDIT_BUREAU = 3; - - // The uploaded data is from a third-party voter file. - THIRD_PARTY_VOTER_FILE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_date_rule_item_operator.proto b/google/ads/googleads/v8/enums/user_list_date_rule_item_operator.proto deleted file mode 100644 index 5c6371ece..000000000 --- a/google/ads/googleads/v8/enums/user_list_date_rule_item_operator.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListDateRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Supported rule operator for date type. -message UserListDateRuleItemOperatorEnum { - // Enum describing possible user list date rule item operators. - enum UserListDateRuleItemOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Equals. - EQUALS = 2; - - // Not Equals. - NOT_EQUALS = 3; - - // Before. - BEFORE = 4; - - // After. - AFTER = 5; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_logical_rule_operator.proto b/google/ads/googleads/v8/enums/user_list_logical_rule_operator.proto deleted file mode 100644 index ed22121a6..000000000 --- a/google/ads/googleads/v8/enums/user_list_logical_rule_operator.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListLogicalRuleOperatorProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// The logical operator of the rule. -message UserListLogicalRuleOperatorEnum { - // Enum describing possible user list logical rule operators. - enum UserListLogicalRuleOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // And - all of the operands. - ALL = 2; - - // Or - at least one of the operands. - ANY = 3; - - // Not - none of the operands. - NONE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_membership_status.proto b/google/ads/googleads/v8/enums/user_list_membership_status.proto deleted file mode 100644 index 29a84ff68..000000000 --- a/google/ads/googleads/v8/enums/user_list_membership_status.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListMembershipStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing user list membership status. - -// 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 used for -// targeting. -message UserListMembershipStatusEnum { - // Enum containing possible user list membership statuses. - enum UserListMembershipStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Open status - List is accruing members and can be targeted to. - OPEN = 2; - - // Closed status - No new members being added. Cannot be used for targeting. - CLOSED = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_number_rule_item_operator.proto b/google/ads/googleads/v8/enums/user_list_number_rule_item_operator.proto deleted file mode 100644 index 303226213..000000000 --- a/google/ads/googleads/v8/enums/user_list_number_rule_item_operator.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListNumberRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Supported rule operator for number type. -message UserListNumberRuleItemOperatorEnum { - // Enum describing possible user list number rule item operators. - enum UserListNumberRuleItemOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Greater than. - GREATER_THAN = 2; - - // Greater than or equal. - GREATER_THAN_OR_EQUAL = 3; - - // Equals. - EQUALS = 4; - - // Not equals. - NOT_EQUALS = 5; - - // Less than. - LESS_THAN = 6; - - // Less than or equal. - LESS_THAN_OR_EQUAL = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_prepopulation_status.proto b/google/ads/googleads/v8/enums/user_list_prepopulation_status.proto deleted file mode 100644 index 6afb1b634..000000000 --- a/google/ads/googleads/v8/enums/user_list_prepopulation_status.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListPrepopulationStatusProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Indicates status of prepopulation based on the rule. -message UserListPrepopulationStatusEnum { - // Enum describing possible user list prepopulation status. - enum UserListPrepopulationStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Prepopoulation is being requested. - REQUESTED = 2; - - // Prepopulation is finished. - FINISHED = 3; - - // Prepopulation failed. - FAILED = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_rule_type.proto b/google/ads/googleads/v8/enums/user_list_rule_type.proto deleted file mode 100644 index 30d403b3a..000000000 --- a/google/ads/googleads/v8/enums/user_list_rule_type.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListRuleTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Rule based user list rule type. -message UserListRuleTypeEnum { - // Enum describing possible user list rule types. - enum UserListRuleType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Conjunctive normal form. - AND_OF_ORS = 2; - - // Disjunctive normal form. - OR_OF_ANDS = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_size_range.proto b/google/ads/googleads/v8/enums/user_list_size_range.proto deleted file mode 100644 index 8402f6946..000000000 --- a/google/ads/googleads/v8/enums/user_list_size_range.proto +++ /dev/null @@ -1,92 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListSizeRangeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing user list size range. - -// Size range in terms of number of users of a UserList. -message UserListSizeRangeEnum { - // Enum containing possible user list size ranges. - enum UserListSizeRange { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // User list has less than 500 users. - LESS_THAN_FIVE_HUNDRED = 2; - - // User list has number of users in range of 500 to 1000. - LESS_THAN_ONE_THOUSAND = 3; - - // User list has number of users in range of 1000 to 10000. - ONE_THOUSAND_TO_TEN_THOUSAND = 4; - - // User list has number of users in range of 10000 to 50000. - TEN_THOUSAND_TO_FIFTY_THOUSAND = 5; - - // User list has number of users in range of 50000 to 100000. - FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND = 6; - - // User list has number of users in range of 100000 to 300000. - ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND = 7; - - // User list has number of users in range of 300000 to 500000. - THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND = 8; - - // User list has number of users in range of 500000 to 1 million. - FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION = 9; - - // User list has number of users in range of 1 to 2 millions. - ONE_MILLION_TO_TWO_MILLION = 10; - - // User list has number of users in range of 2 to 3 millions. - TWO_MILLION_TO_THREE_MILLION = 11; - - // User list has number of users in range of 3 to 5 millions. - THREE_MILLION_TO_FIVE_MILLION = 12; - - // User list has number of users in range of 5 to 10 millions. - FIVE_MILLION_TO_TEN_MILLION = 13; - - // User list has number of users in range of 10 to 20 millions. - TEN_MILLION_TO_TWENTY_MILLION = 14; - - // User list has number of users in range of 20 to 30 millions. - TWENTY_MILLION_TO_THIRTY_MILLION = 15; - - // User list has number of users in range of 30 to 50 millions. - THIRTY_MILLION_TO_FIFTY_MILLION = 16; - - // User list has over 50 million users. - OVER_FIFTY_MILLION = 17; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_string_rule_item_operator.proto b/google/ads/googleads/v8/enums/user_list_string_rule_item_operator.proto deleted file mode 100644 index fec2ee683..000000000 --- a/google/ads/googleads/v8/enums/user_list_string_rule_item_operator.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListStringRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Supported rule operator for string type. -message UserListStringRuleItemOperatorEnum { - // Enum describing possible user list string rule item operators. - enum UserListStringRuleItemOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Contains. - CONTAINS = 2; - - // Equals. - EQUALS = 3; - - // Starts with. - STARTS_WITH = 4; - - // Ends with. - ENDS_WITH = 5; - - // Not equals. - NOT_EQUALS = 6; - - // Not contains. - NOT_CONTAINS = 7; - - // Not starts with. - NOT_STARTS_WITH = 8; - - // Not ends with. - NOT_ENDS_WITH = 9; - } - - -} diff --git a/google/ads/googleads/v8/enums/user_list_type.proto b/google/ads/googleads/v8/enums/user_list_type.proto deleted file mode 100644 index a526121d7..000000000 --- a/google/ads/googleads/v8/enums/user_list_type.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "UserListTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing user list type. - -// The user list types. -message UserListTypeEnum { - // Enum containing possible user list types. - enum UserListType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // UserList represented as a collection of conversion types. - REMARKETING = 2; - - // UserList represented as a combination of other user lists/interests. - LOGICAL = 3; - - // UserList created in the Google Ad Manager platform. - EXTERNAL_REMARKETING = 4; - - // UserList associated with a rule. - RULE_BASED = 5; - - // UserList with users similar to users of another UserList. - SIMILAR = 6; - - // UserList of first-party CRM data provided by advertiser in the form of - // emails or other formats. - CRM_BASED = 7; - } - - -} diff --git a/google/ads/googleads/v8/enums/value_rule_device_type.proto b/google/ads/googleads/v8/enums/value_rule_device_type.proto deleted file mode 100644 index 1d3e0f604..000000000 --- a/google/ads/googleads/v8/enums/value_rule_device_type.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ValueRuleDeviceTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion value rule device type. - -// Container for enum describing possible device types used in a conversion -// value rule. -message ValueRuleDeviceTypeEnum { - // Possible device types used in conversion value rule. - enum ValueRuleDeviceType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Mobile device. - MOBILE = 2; - - // Desktop device. - DESKTOP = 3; - - // Tablet device. - TABLET = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/value_rule_geo_location_match_type.proto b/google/ads/googleads/v8/enums/value_rule_geo_location_match_type.proto deleted file mode 100644 index 150a123f9..000000000 --- a/google/ads/googleads/v8/enums/value_rule_geo_location_match_type.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ValueRuleGeoLocationMatchTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion value rule geo location match type. - -// Container for enum describing possible geographic location matching types -// used in a conversion value rule. -message ValueRuleGeoLocationMatchTypeEnum { - // Possible geographic location matching types. - enum ValueRuleGeoLocationMatchType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Either Area of Interest or Location of Presence can be used to match. - ANY = 2; - - // Only Location of Presence can be used to match. - LOCATION_OF_PRESENCE = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/value_rule_operation.proto b/google/ads/googleads/v8/enums/value_rule_operation.proto deleted file mode 100644 index 6ba233af9..000000000 --- a/google/ads/googleads/v8/enums/value_rule_operation.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ValueRuleOperationProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion value rule operation. - -// Container for enum describing possible operations for value rules which are -// executed when rules are triggered. -message ValueRuleOperationEnum { - // Possible operations of the action of a conversion value rule. - enum ValueRuleOperation { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Add provided value to conversion value. - ADD = 2; - - // Multiply conversion value by provided value. - MULTIPLY = 3; - - // Set conversion value to provided value. - SET = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/value_rule_set_attachment_type.proto b/google/ads/googleads/v8/enums/value_rule_set_attachment_type.proto deleted file mode 100644 index 2a18f18f4..000000000 --- a/google/ads/googleads/v8/enums/value_rule_set_attachment_type.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ValueRuleSetAttachmentTypeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing where the conversion value rule is attached. - -// Container for enum describing where a value rule set is attached. -message ValueRuleSetAttachmentTypeEnum { - // Possible level where a value rule set is attached. - enum ValueRuleSetAttachmentType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Attached to the customer. - CUSTOMER = 2; - - // Attached to a campaign. - CAMPAIGN = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/value_rule_set_dimension.proto b/google/ads/googleads/v8/enums/value_rule_set_dimension.proto deleted file mode 100644 index e365fd742..000000000 --- a/google/ads/googleads/v8/enums/value_rule_set_dimension.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ValueRuleSetDimensionProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing conversion value rule set dimension. - -// Container for enum describing possible dimensions of a conversion value rule -// set. -message ValueRuleSetDimensionEnum { - // Possible dimensions of a conversion value rule set. - enum ValueRuleSetDimension { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Dimension for geo location. - GEO_LOCATION = 2; - - // Dimension for device type. - DEVICE = 3; - - // Dimension for audience. - AUDIENCE = 4; - } - - -} diff --git a/google/ads/googleads/v8/enums/vanity_pharma_display_url_mode.proto b/google/ads/googleads/v8/enums/vanity_pharma_display_url_mode.proto deleted file mode 100644 index 55df5dacc..000000000 --- a/google/ads/googleads/v8/enums/vanity_pharma_display_url_mode.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "VanityPharmaDisplayUrlModeProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing vanity pharma display url modes. - -// The display mode for vanity pharma URLs. -message VanityPharmaDisplayUrlModeEnum { - // Enum describing possible display modes for vanity pharma URLs. - enum VanityPharmaDisplayUrlMode { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Replace vanity pharma URL with manufacturer website url. - MANUFACTURER_WEBSITE_URL = 2; - - // Replace vanity pharma URL with description of the website. - WEBSITE_DESCRIPTION = 3; - } - - -} diff --git a/google/ads/googleads/v8/enums/vanity_pharma_text.proto b/google/ads/googleads/v8/enums/vanity_pharma_text.proto deleted file mode 100644 index 2e4f6e0a2..000000000 --- a/google/ads/googleads/v8/enums/vanity_pharma_text.proto +++ /dev/null @@ -1,87 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "VanityPharmaTextProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing vanity pharma texts. - -// 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. -message VanityPharmaTextEnum { - // Enum describing possible text. - enum VanityPharmaText { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Prescription treatment website with website content in English. - PRESCRIPTION_TREATMENT_WEBSITE_EN = 2; - - // Prescription treatment website with website content in Spanish - // (Sitio de tratamientos con receta). - PRESCRIPTION_TREATMENT_WEBSITE_ES = 3; - - // Prescription device website with website content in English. - PRESCRIPTION_DEVICE_WEBSITE_EN = 4; - - // Prescription device website with website content in Spanish (Sitio de - // dispositivos con receta). - PRESCRIPTION_DEVICE_WEBSITE_ES = 5; - - // Medical device website with website content in English. - MEDICAL_DEVICE_WEBSITE_EN = 6; - - // Medical device website with website content in Spanish (Sitio de - // dispositivos médicos). - MEDICAL_DEVICE_WEBSITE_ES = 7; - - // Preventative treatment website with website content in English. - PREVENTATIVE_TREATMENT_WEBSITE_EN = 8; - - // Preventative treatment website with website content in Spanish (Sitio de - // tratamientos preventivos). - PREVENTATIVE_TREATMENT_WEBSITE_ES = 9; - - // Prescription contraception website with website content in English. - PRESCRIPTION_CONTRACEPTION_WEBSITE_EN = 10; - - // Prescription contraception website with website content in Spanish (Sitio - // de anticonceptivos con receta). - PRESCRIPTION_CONTRACEPTION_WEBSITE_ES = 11; - - // Prescription vaccine website with website content in English. - PRESCRIPTION_VACCINE_WEBSITE_EN = 12; - - // Prescription vaccine website with website content in Spanish (Sitio de - // vacunas con receta). - PRESCRIPTION_VACCINE_WEBSITE_ES = 13; - } - - -} diff --git a/google/ads/googleads/v8/enums/webpage_condition_operand.proto b/google/ads/googleads/v8/enums/webpage_condition_operand.proto deleted file mode 100644 index c9847a0ea..000000000 --- a/google/ads/googleads/v8/enums/webpage_condition_operand.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "WebpageConditionOperandProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing webpage condition operand. - -// Container for enum describing webpage condition operand in webpage criterion. -message WebpageConditionOperandEnum { - // The webpage condition operand in webpage criterion. - enum WebpageConditionOperand { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Operand denoting a webpage URL targeting condition. - URL = 2; - - // Operand denoting a webpage category targeting condition. - CATEGORY = 3; - - // Operand denoting a webpage title targeting condition. - PAGE_TITLE = 4; - - // Operand denoting a webpage content targeting condition. - PAGE_CONTENT = 5; - - // Operand denoting a webpage custom label targeting condition. - CUSTOM_LABEL = 6; - } - - -} diff --git a/google/ads/googleads/v8/enums/webpage_condition_operator.proto b/google/ads/googleads/v8/enums/webpage_condition_operator.proto deleted file mode 100644 index 0807268e1..000000000 --- a/google/ads/googleads/v8/enums/webpage_condition_operator.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.enums; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "WebpageConditionOperatorProto"; -option java_package = "com.google.ads.googleads.v8.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V8::Enums"; - -// Proto file describing webpage condition operator. - -// Container for enum describing webpage condition operator in webpage -// criterion. -message WebpageConditionOperatorEnum { - // The webpage condition operator in webpage criterion. - enum WebpageConditionOperator { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The argument web condition is equal to the compared web condition. - EQUALS = 2; - - // The argument web condition is part of the compared web condition. - CONTAINS = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/BUILD.bazel b/google/ads/googleads/v8/errors/BUILD.bazel deleted file mode 100644 index fccaec9cd..000000000 --- a/google/ads/googleads/v8/errors/BUILD.bazel +++ /dev/null @@ -1,94 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports -# subpackages. -proto_library( - name = "errors_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/ads/googleads/v8/common:common_proto", - "//google/ads/googleads/v8/enums:enums_proto", - "//google/api:annotations_proto", - "@com_google_protobuf//:duration_proto", - "@com_google_protobuf//:wrappers_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", -) - -java_proto_library( - name = "errors_java_proto", - deps = [":errors_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_proto_library", -) - -csharp_proto_library( - name = "errors_csharp_proto", - deps = [":errors_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_proto_library", -) - -ruby_proto_library( - name = "errors_ruby_proto", - deps = [":errors_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_proto_library", -) - -py_proto_library( - name = "errors_py_proto", - deps = [":errors_proto"], -) diff --git a/google/ads/googleads/v8/errors/access_invitation_error.proto b/google/ads/googleads/v8/errors/access_invitation_error.proto deleted file mode 100644 index 82f95aab4..000000000 --- a/google/ads/googleads/v8/errors/access_invitation_error.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AccessInvitationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing AccessInvitation errors. - -// Container for enum describing possible AccessInvitation errors. -message AccessInvitationErrorEnum { - // Enum describing possible AccessInvitation errors. - enum AccessInvitationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The email address is invalid for sending an invitation. - INVALID_EMAIL_ADDRESS = 2; - - // Email address already has access to this customer. - EMAIL_ADDRESS_ALREADY_HAS_ACCESS = 3; - - // Invalid invitation status for the operation. - INVALID_INVITATION_STATUS = 4; - - // Email address cannot be like abc+foo@google.com. - GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED = 5; - - // Invalid invitation id. - INVALID_INVITATION_ID = 6; - - // Email address already has a pending invitation. - EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION = 7; - - // Pending invitation limit exceeded for the customer. - PENDING_INVITATIONS_LIMIT_EXCEEDED = 8; - - // Email address doesn't conform to the email domain policy. Please see - // https://support.google.com/google-ads/answer/2375456 - EMAIL_DOMAIN_POLICY_VIOLATED = 9; - } - - -} diff --git a/google/ads/googleads/v8/errors/account_budget_proposal_error.proto b/google/ads/googleads/v8/errors/account_budget_proposal_error.proto deleted file mode 100644 index 41467289f..000000000 --- a/google/ads/googleads/v8/errors/account_budget_proposal_error.proto +++ /dev/null @@ -1,122 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing account budget proposal errors. - -// Container for enum describing possible account budget proposal errors. -message AccountBudgetProposalErrorEnum { - // Enum describing possible account budget proposal errors. - enum AccountBudgetProposalError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The field mask must be empty for create/end/remove proposals. - FIELD_MASK_NOT_ALLOWED = 2; - - // The field cannot be set because of the proposal type. - IMMUTABLE_FIELD = 3; - - // The field is required because of the proposal type. - REQUIRED_FIELD_MISSING = 4; - - // Proposals that have been approved cannot be cancelled. - CANNOT_CANCEL_APPROVED_PROPOSAL = 5; - - // Budgets that haven't been approved cannot be removed. - CANNOT_REMOVE_UNAPPROVED_BUDGET = 6; - - // Budgets that are currently running cannot be removed. - CANNOT_REMOVE_RUNNING_BUDGET = 7; - - // Budgets that haven't been approved cannot be truncated. - CANNOT_END_UNAPPROVED_BUDGET = 8; - - // Only budgets that are currently running can be truncated. - CANNOT_END_INACTIVE_BUDGET = 9; - - // All budgets must have names. - BUDGET_NAME_REQUIRED = 10; - - // Expired budgets cannot be edited after a sufficient amount of time has - // passed. - CANNOT_UPDATE_OLD_BUDGET = 11; - - // It is not permissible a propose a new budget that ends in the past. - CANNOT_END_IN_PAST = 12; - - // An expired budget cannot be extended to overlap with the running budget. - CANNOT_EXTEND_END_TIME = 13; - - // A purchase order number is required. - PURCHASE_ORDER_NUMBER_REQUIRED = 14; - - // Budgets that have a pending update cannot be updated. - PENDING_UPDATE_PROPOSAL_EXISTS = 15; - - // Cannot propose more than one budget when the corresponding billing setup - // hasn't been approved. - MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP = 16; - - // Cannot update the start time of a budget that has already started. - CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET = 17; - - // Cannot update the spending limit of a budget with an amount lower than - // what has already been spent. - SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED = 18; - - // Cannot propose a budget update without actually changing any fields. - UPDATE_IS_NO_OP = 19; - - // The end time must come after the start time. - END_TIME_MUST_FOLLOW_START_TIME = 20; - - // The budget's date range must fall within the date range of its billing - // setup. - BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP = 21; - - // The user is not authorized to mutate budgets for the given billing setup. - NOT_AUTHORIZED = 22; - - // Mutates are not allowed for the given billing setup. - INVALID_BILLING_SETUP = 23; - - // Budget creation failed as it overlaps with an pending budget proposal - // or an approved budget. - OVERLAPS_EXISTING_BUDGET = 24; - - // The control setting in user's payments profile doesn't allow budget - // creation through API. Log in to Google Ads to create budget. - CANNOT_CREATE_BUDGET_THROUGH_API = 25; - } - - -} diff --git a/google/ads/googleads/v8/errors/account_link_error.proto b/google/ads/googleads/v8/errors/account_link_error.proto deleted file mode 100644 index 7abab09a6..000000000 --- a/google/ads/googleads/v8/errors/account_link_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AccountLinkErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing AccountLink errors. - -// Container for enum describing possible account link errors. -message AccountLinkErrorEnum { - // Enum describing possible account link errors. - enum AccountLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The new link status is invalid. - INVALID_STATUS = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_customizer_error.proto b/google/ads/googleads/v8/errors/ad_customizer_error.proto deleted file mode 100644 index 809ec1320..000000000 --- a/google/ads/googleads/v8/errors/ad_customizer_error.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad customizer errors. - -// Container for enum describing possible ad customizer errors. -message AdCustomizerErrorEnum { - // Enum describing possible ad customizer errors. - enum AdCustomizerError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Invalid date argument in countdown function. - COUNTDOWN_INVALID_DATE_FORMAT = 2; - - // Countdown end date is in the past. - COUNTDOWN_DATE_IN_PAST = 3; - - // Invalid locale string in countdown function. - COUNTDOWN_INVALID_LOCALE = 4; - - // Days-before argument to countdown function is not positive. - COUNTDOWN_INVALID_START_DAYS_BEFORE = 5; - - // A user list referenced in an IF function does not exist. - UNKNOWN_USER_LIST = 6; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_error.proto b/google/ads/googleads/v8/errors/ad_error.proto deleted file mode 100644 index 4484a4bd1..000000000 --- a/google/ads/googleads/v8/errors/ad_error.proto +++ /dev/null @@ -1,512 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad errors. - -// Container for enum describing possible ad errors. -message AdErrorEnum { - // Enum describing possible ad errors. - enum AdError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Ad customizers are not supported for ad type. - AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE = 2; - - // Estimating character sizes the string is too long. - APPROXIMATELY_TOO_LONG = 3; - - // Estimating character sizes the string is too short. - APPROXIMATELY_TOO_SHORT = 4; - - // There is a problem with the snippet. - BAD_SNIPPET = 5; - - // Cannot modify an ad. - CANNOT_MODIFY_AD = 6; - - // business name and url cannot be set at the same time - CANNOT_SET_BUSINESS_NAME_IF_URL_SET = 7; - - // The specified field is incompatible with this ad's type or settings. - CANNOT_SET_FIELD = 8; - - // Cannot set field when originAdId is set. - CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET = 9; - - // Cannot set field when an existing ad id is set for sharing. - CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING = 10; - - // Cannot set allowFlexibleColor false if no color is provided by user. - CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE = 11; - - // When user select native, no color control is allowed because we will - // always respect publisher color for native format serving. - CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING = 12; - - // Cannot specify a url for the ad type - CANNOT_SET_URL = 13; - - // Cannot specify a tracking or mobile url without also setting final urls - CANNOT_SET_WITHOUT_FINAL_URLS = 14; - - // Cannot specify a legacy url and a final url simultaneously - CANNOT_SET_WITH_FINAL_URLS = 15; - - // Cannot specify a urls in UrlData and in template fields simultaneously. - CANNOT_SET_WITH_URL_DATA = 17; - - // This operator cannot be used with a subclass of Ad. - CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR = 18; - - // Customer is not approved for mobile ads. - CUSTOMER_NOT_APPROVED_MOBILEADS = 19; - - // Customer is not approved for 3PAS richmedia ads. - CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS = 20; - - // Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads. - CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS = 21; - - // Not an eligible customer - CUSTOMER_NOT_ELIGIBLE = 22; - - // Customer is not eligible for updating beacon url - CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL = 23; - - // There already exists an ad with the same dimensions in the union. - DIMENSION_ALREADY_IN_UNION = 24; - - // Ad's dimension must be set before setting union dimension. - DIMENSION_MUST_BE_SET = 25; - - // Ad's dimension must be included in the union dimensions. - DIMENSION_NOT_IN_UNION = 26; - - // Display Url cannot be specified (applies to Ad Exchange Ads) - DISPLAY_URL_CANNOT_BE_SPECIFIED = 27; - - // Telephone number contains invalid characters or invalid format. Please - // re-enter your number using digits (0-9), dashes (-), and parentheses - // only. - DOMESTIC_PHONE_NUMBER_FORMAT = 28; - - // Emergency telephone numbers are not allowed. Please enter a valid - // domestic phone number to connect customers to your business. - EMERGENCY_PHONE_NUMBER = 29; - - // A required field was not specified or is an empty string. - EMPTY_FIELD = 30; - - // A feed attribute referenced in an ad customizer tag is not in the ad - // customizer mapping for the feed. - FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID = 31; - - // The ad customizer field mapping for the feed attribute does not match the - // expected field type. - FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH = 32; - - // The use of ad customizer tags in the ad text is disallowed. Details in - // trigger. - ILLEGAL_AD_CUSTOMIZER_TAG_USE = 33; - - // Tags of the form {PH_x}, where x is a number, are disallowed in ad text. - ILLEGAL_TAG_USE = 34; - - // The dimensions of the ad are specified or derived in multiple ways and - // are not consistent. - INCONSISTENT_DIMENSIONS = 35; - - // The status cannot differ among template ads of the same union. - INCONSISTENT_STATUS_IN_TEMPLATE_UNION = 36; - - // The length of the string is not valid. - INCORRECT_LENGTH = 37; - - // The ad is ineligible for upgrade. - INELIGIBLE_FOR_UPGRADE = 38; - - // User cannot create mobile ad for countries targeted in specified - // campaign. - INVALID_AD_ADDRESS_CAMPAIGN_TARGET = 39; - - // Invalid Ad type. A specific type of Ad is required. - INVALID_AD_TYPE = 40; - - // Headline, description or phone cannot be present when creating mobile - // image ad. - INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE = 41; - - // Image cannot be present when creating mobile text ad. - INVALID_ATTRIBUTES_FOR_MOBILE_TEXT = 42; - - // Invalid call to action text. - INVALID_CALL_TO_ACTION_TEXT = 43; - - // Invalid character in URL. - INVALID_CHARACTER_FOR_URL = 44; - - // Creative's country code is not valid. - INVALID_COUNTRY_CODE = 45; - - // Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.) - INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 47; - - // An input error whose real reason was not properly mapped (should not - // happen). - INVALID_INPUT = 48; - - // An invalid markup language was entered. - INVALID_MARKUP_LANGUAGE = 49; - - // An invalid mobile carrier was entered. - INVALID_MOBILE_CARRIER = 50; - - // Specified mobile carriers target a country not targeted by the campaign. - INVALID_MOBILE_CARRIER_TARGET = 51; - - // Wrong number of elements for given element type - INVALID_NUMBER_OF_ELEMENTS = 52; - - // The format of the telephone number is incorrect. Please re-enter the - // number using the correct format. - INVALID_PHONE_NUMBER_FORMAT = 53; - - // The certified vendor format id is incorrect. - INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID = 54; - - // The template ad data contains validation errors. - INVALID_TEMPLATE_DATA = 55; - - // The template field doesn't have have the correct type. - INVALID_TEMPLATE_ELEMENT_FIELD_TYPE = 56; - - // Invalid template id. - INVALID_TEMPLATE_ID = 57; - - // After substituting replacement strings, the line is too wide. - LINE_TOO_WIDE = 58; - - // The feed referenced must have ad customizer mapping to be used in a - // customizer tag. - MISSING_AD_CUSTOMIZER_MAPPING = 59; - - // Missing address component in template element address field. - MISSING_ADDRESS_COMPONENT = 60; - - // An ad name must be entered. - MISSING_ADVERTISEMENT_NAME = 61; - - // Business name must be entered. - MISSING_BUSINESS_NAME = 62; - - // Description (line 2) must be entered. - MISSING_DESCRIPTION1 = 63; - - // Description (line 3) must be entered. - MISSING_DESCRIPTION2 = 64; - - // The destination url must contain at least one tag (e.g. {lpurl}) - MISSING_DESTINATION_URL_TAG = 65; - - // The tracking url template of ExpandedDynamicSearchAd must contain at - // least one tag. (e.g. {lpurl}) - MISSING_LANDING_PAGE_URL_TAG = 66; - - // A valid dimension must be specified for this ad. - MISSING_DIMENSION = 67; - - // A display URL must be entered. - MISSING_DISPLAY_URL = 68; - - // Headline must be entered. - MISSING_HEADLINE = 69; - - // A height must be entered. - MISSING_HEIGHT = 70; - - // An image must be entered. - MISSING_IMAGE = 71; - - // Marketing image or product videos are required. - MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS = 72; - - // The markup language in which your site is written must be entered. - MISSING_MARKUP_LANGUAGES = 73; - - // A mobile carrier must be entered. - MISSING_MOBILE_CARRIER = 74; - - // Phone number must be entered. - MISSING_PHONE = 75; - - // Missing required template fields - MISSING_REQUIRED_TEMPLATE_FIELDS = 76; - - // Missing a required field value - MISSING_TEMPLATE_FIELD_VALUE = 77; - - // The ad must have text. - MISSING_TEXT = 78; - - // A visible URL must be entered. - MISSING_VISIBLE_URL = 79; - - // A width must be entered. - MISSING_WIDTH = 80; - - // Only 1 feed can be used as the source of ad customizer substitutions in a - // single ad. - MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED = 81; - - // TempAdUnionId must be use when adding template ads. - MUST_USE_TEMP_AD_UNION_ID_ON_ADD = 82; - - // The string has too many characters. - TOO_LONG = 83; - - // The string has too few characters. - TOO_SHORT = 84; - - // Ad union dimensions cannot change for saved ads. - UNION_DIMENSIONS_CANNOT_CHANGE = 85; - - // Address component is not {country, lat, lng}. - UNKNOWN_ADDRESS_COMPONENT = 86; - - // Unknown unique field name - UNKNOWN_FIELD_NAME = 87; - - // Unknown unique name (template element type specifier) - UNKNOWN_UNIQUE_NAME = 88; - - // Unsupported ad dimension - UNSUPPORTED_DIMENSIONS = 89; - - // URL starts with an invalid scheme. - URL_INVALID_SCHEME = 90; - - // URL ends with an invalid top-level domain name. - URL_INVALID_TOP_LEVEL_DOMAIN = 91; - - // URL contains illegal characters. - URL_MALFORMED = 92; - - // URL must contain a host name. - URL_NO_HOST = 93; - - // URL not equivalent during upgrade. - URL_NOT_EQUIVALENT = 94; - - // URL host name too long to be stored as visible URL (applies to Ad - // Exchange ads) - URL_HOST_NAME_TOO_LONG = 95; - - // URL must start with a scheme. - URL_NO_SCHEME = 96; - - // URL should end in a valid domain extension, such as .com or .net. - URL_NO_TOP_LEVEL_DOMAIN = 97; - - // URL must not end with a path. - URL_PATH_NOT_ALLOWED = 98; - - // URL must not specify a port. - URL_PORT_NOT_ALLOWED = 99; - - // URL must not contain a query. - URL_QUERY_NOT_ALLOWED = 100; - - // A url scheme is not allowed in front of tag in tracking url template - // (e.g. http://{lpurl}) - URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 102; - - // The user does not have permissions to create a template ad for the given - // template. - USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE = 103; - - // Expandable setting is inconsistent/wrong. For example, an AdX ad is - // invalid if it has a expandable vendor format but no expanding directions - // specified, or expanding directions is specified, but the vendor format is - // not expandable. - INCONSISTENT_EXPANDABLE_SETTINGS = 104; - - // Format is invalid - INVALID_FORMAT = 105; - - // The text of this field did not match a pattern of allowed values. - INVALID_FIELD_TEXT = 106; - - // Template element is mising - ELEMENT_NOT_PRESENT = 107; - - // Error occurred during image processing - IMAGE_ERROR = 108; - - // The value is not within the valid range - VALUE_NOT_IN_RANGE = 109; - - // Template element field is not present - FIELD_NOT_PRESENT = 110; - - // Address is incomplete - ADDRESS_NOT_COMPLETE = 111; - - // Invalid address - ADDRESS_INVALID = 112; - - // Error retrieving specified video - VIDEO_RETRIEVAL_ERROR = 113; - - // Error processing audio - AUDIO_ERROR = 114; - - // Display URL is incorrect for YouTube PYV ads - INVALID_YOUTUBE_DISPLAY_URL = 115; - - // Too many product Images in GmailAd - TOO_MANY_PRODUCT_IMAGES = 116; - - // Too many product Videos in GmailAd - TOO_MANY_PRODUCT_VIDEOS = 117; - - // The device preference is not compatible with the ad type - INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE = 118; - - // Call tracking is not supported for specified country. - CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 119; - - // Carrier specific short number is not allowed. - CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 120; - - // Specified phone number type is disallowed. - DISALLOWED_NUMBER_TYPE = 121; - - // Phone number not supported for country. - PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 122; - - // Phone number not supported with call tracking enabled for country. - PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 123; - - // Premium rate phone number is not allowed. - PREMIUM_RATE_NUMBER_NOT_ALLOWED = 124; - - // Vanity phone number is not allowed. - VANITY_PHONE_NUMBER_NOT_ALLOWED = 125; - - // Invalid call conversion type id. - INVALID_CALL_CONVERSION_TYPE_ID = 126; - - // Cannot disable call conversion and set conversion type id. - CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID = 127; - - // Cannot set path2 without path1. - CANNOT_SET_PATH2_WITHOUT_PATH1 = 128; - - // Missing domain name in campaign setting when adding expanded dynamic - // search ad. - MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME = 129; - - // The associated ad is not compatible with restriction type. - INCOMPATIBLE_WITH_RESTRICTION_TYPE = 130; - - // Consent for call recording is required for creating/updating call only - // ads. Please see https://support.google.com/google-ads/answer/7412639. - CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 131; - - // Either an image or a media bundle is required in a display upload ad. - MISSING_IMAGE_OR_MEDIA_BUNDLE = 132; - - // The display upload product type is not supported in this campaign. - PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN = 133; - - // The default value of an ad placeholder can not be the empty string. - PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE = 134; - - // Ad placeholders with countdown functions must not have a default value. - PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE = 135; - - // A previous ad placeholder that had a default value was found which means - // that all (non-countdown) placeholders must have a default value. This - // ad placeholder does not have a default value. - PLACEHOLDER_DEFAULT_VALUE_MISSING = 136; - - // A previous ad placeholder that did not have a default value was found - // which means that no placeholders may have a default value. This - // ad placeholder does have a default value. - UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE = 137; - - // Two ad customizers may not be directly adjacent in an ad text. They must - // be separated by at least one character. - AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT = 138; - - // The ad is not associated with any enabled AdGroupAd, and cannot be - // updated. - UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION = 139; - - // Too many ad customizers in one asset. - TOO_MANY_AD_CUSTOMIZERS = 141; - - // The ad customizer tag is recognized, but the format is invalid. - INVALID_AD_CUSTOMIZER_FORMAT = 142; - - // Customizer tags cannot be nested. - NESTED_AD_CUSTOMIZER_SYNTAX = 143; - - // The ad customizer syntax used in the ad is not supported. - UNSUPPORTED_AD_CUSTOMIZER_SYNTAX = 144; - - // There exists unpaired brace in the ad customizer tag. - UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG = 145; - - // More than one type of countdown tag exists among all text lines. - MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS = 146; - - // Date time in the countdown tag is invalid. - DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID = 147; - - // Date time in the countdown tag is in the past. - DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST = 148; - - // Cannot recognize the ad customizer tag. - UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND = 149; - - // App store value does not match the value of the app store in the app - // specified in the campaign. - STORE_MISMATCH = 152; - - // Missing required image aspect ratio. - MISSING_REQUIRED_IMAGE_ASPECT_RATIO = 153; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_group_ad_error.proto b/google/ads/googleads/v8/errors/ad_group_ad_error.proto deleted file mode 100644 index de80b6c57..000000000 --- a/google/ads/googleads/v8/errors/ad_group_ad_error.proto +++ /dev/null @@ -1,80 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad group ad errors. - -// Container for enum describing possible ad group ad errors. -message AdGroupAdErrorEnum { - // Enum describing possible ad group ad errors. - enum AdGroupAdError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // No link found between the adgroup ad and the label. - AD_GROUP_AD_LABEL_DOES_NOT_EXIST = 2; - - // The label has already been attached to the adgroup ad. - AD_GROUP_AD_LABEL_ALREADY_EXISTS = 3; - - // The specified ad was not found in the adgroup - AD_NOT_UNDER_ADGROUP = 4; - - // Removed ads may not be modified - CANNOT_OPERATE_ON_REMOVED_ADGROUPAD = 5; - - // An ad of this type is deprecated and cannot be created. Only deletions - // are permitted. - CANNOT_CREATE_DEPRECATED_ADS = 6; - - // Text ads are deprecated and cannot be created. Use expanded text ads - // instead. - CANNOT_CREATE_TEXT_ADS = 7; - - // A required field was not specified or is an empty string. - EMPTY_FIELD = 8; - - // An ad may only be modified once per call - RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 9; - - // AdGroupAds with the given ad type cannot be paused. - AD_TYPE_CANNOT_BE_PAUSED = 10; - - // AdGroupAds with the given ad type cannot be removed. - AD_TYPE_CANNOT_BE_REMOVED = 11; - - // An ad of this type is deprecated and cannot be updated. Only removals - // are permitted. - CANNOT_UPDATE_DEPRECATED_ADS = 12; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_group_bid_modifier_error.proto b/google/ads/googleads/v8/errors/ad_group_bid_modifier_error.proto deleted file mode 100644 index 32674a0fa..000000000 --- a/google/ads/googleads/v8/errors/ad_group_bid_modifier_error.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupBidModifierErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad group bid modifier errors. - -// Container for enum describing possible ad group bid modifier errors. -message AdGroupBidModifierErrorEnum { - // Enum describing possible ad group bid modifier errors. - enum AdGroupBidModifierError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The criterion ID does not support bid modification. - CRITERION_ID_NOT_SUPPORTED = 2; - - // Cannot override the bid modifier for the given criterion ID if the parent - // campaign is opted out of the same criterion. - CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_group_criterion_error.proto b/google/ads/googleads/v8/errors/ad_group_criterion_error.proto deleted file mode 100644 index e030e8257..000000000 --- a/google/ads/googleads/v8/errors/ad_group_criterion_error.proto +++ /dev/null @@ -1,137 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad group criterion errors. - -// Container for enum describing possible ad group criterion errors. -message AdGroupCriterionErrorEnum { - // Enum describing possible ad group criterion errors. - enum AdGroupCriterionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // No link found between the AdGroupCriterion and the label. - AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST = 2; - - // The label has already been attached to the AdGroupCriterion. - AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS = 3; - - // Negative AdGroupCriterion cannot have labels. - CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION = 4; - - // Too many operations for a single call. - TOO_MANY_OPERATIONS = 5; - - // Negative ad group criteria are not updateable. - CANT_UPDATE_NEGATIVE = 6; - - // Concrete type of criterion (keyword v.s. placement) is required for ADD - // and SET operations. - CONCRETE_TYPE_REQUIRED = 7; - - // Bid is incompatible with ad group's bidding settings. - BID_INCOMPATIBLE_WITH_ADGROUP = 8; - - // Cannot target and exclude the same criterion at once. - CANNOT_TARGET_AND_EXCLUDE = 9; - - // The URL of a placement is invalid. - ILLEGAL_URL = 10; - - // Keyword text was invalid. - INVALID_KEYWORD_TEXT = 11; - - // Destination URL was invalid. - INVALID_DESTINATION_URL = 12; - - // The destination url must contain at least one tag (e.g. {lpurl}) - MISSING_DESTINATION_URL_TAG = 13; - - // Keyword-level cpm bid is not supported - KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM = 14; - - // For example, cannot add a biddable ad group criterion that had been - // removed. - INVALID_USER_STATUS = 15; - - // Criteria type cannot be targeted for the ad group. Either the account is - // restricted to keywords only, the criteria type is incompatible with the - // campaign's bidding strategy, or the criteria type can only be applied to - // campaigns. - CANNOT_ADD_CRITERIA_TYPE = 16; - - // Criteria type cannot be excluded for the ad group. Refer to the - // documentation for a specific criterion to check if it is excludable. - CANNOT_EXCLUDE_CRITERIA_TYPE = 17; - - // Partial failure is not supported for shopping campaign mutate operations. - CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE = 27; - - // Operations in the mutate request changes too many shopping ad groups. - // Please split requests for multiple shopping ad groups across multiple - // requests. - OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS = 28; - - // Not allowed to modify url fields of an ad group criterion if there are - // duplicate elements for that ad group criterion in the request. - CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS = 29; - - // Cannot set url fields without also setting final urls. - CANNOT_SET_WITHOUT_FINAL_URLS = 30; - - // Cannot clear final urls if final mobile urls exist. - CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST = 31; - - // Cannot clear final urls if final app urls exist. - CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST = 32; - - // Cannot clear final urls if tracking url template exists. - CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS = 33; - - // Cannot clear final urls if url custom parameters exist. - CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST = 34; - - // Cannot set both destination url and final urls. - CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS = 35; - - // Cannot set both destination url and tracking url template. - CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE = 36; - - // Final urls are not supported for this criterion type. - FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 37; - - // Final mobile urls are not supported for this criterion type. - FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 38; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_group_error.proto b/google/ads/googleads/v8/errors/ad_group_error.proto deleted file mode 100644 index 7044cd61d..000000000 --- a/google/ads/googleads/v8/errors/ad_group_error.proto +++ /dev/null @@ -1,91 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad group errors. - -// Container for enum describing possible ad group errors. -message AdGroupErrorEnum { - // Enum describing possible ad group errors. - enum AdGroupError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // AdGroup with the same name already exists for the campaign. - DUPLICATE_ADGROUP_NAME = 2; - - // AdGroup name is not valid. - INVALID_ADGROUP_NAME = 3; - - // Advertiser is not allowed to target sites or set site bids that are not - // on the Google Search Network. - ADVERTISER_NOT_ON_CONTENT_NETWORK = 5; - - // Bid amount is too big. - BID_TOO_BIG = 6; - - // AdGroup bid does not match the campaign's bidding strategy. - BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH = 7; - - // AdGroup name is required for Add. - MISSING_ADGROUP_NAME = 8; - - // No link found between the ad group and the label. - ADGROUP_LABEL_DOES_NOT_EXIST = 9; - - // The label has already been attached to the ad group. - ADGROUP_LABEL_ALREADY_EXISTS = 10; - - // The CriterionTypeGroup is not supported for the content bid dimension. - INVALID_CONTENT_BID_CRITERION_TYPE_GROUP = 11; - - // The ad group type is not compatible with the campaign channel type. - AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE = 12; - - // The ad group type is not supported in the country of sale of the - // campaign. - ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY = 13; - - // Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to - // campaigns that have DynamicSearchAdsSetting attached. - CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING = 14; - - // Promoted hotels ad groups are only available to customers on the - // allow-list. - PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER = 15; - - // The field type cannot be excluded because an active ad group-asset link - // of this type exists. - INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 16; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_group_feed_error.proto b/google/ads/googleads/v8/errors/ad_group_feed_error.proto deleted file mode 100644 index c9f3ab9c6..000000000 --- a/google/ads/googleads/v8/errors/ad_group_feed_error.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupFeedErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad group feed errors. - -// Container for enum describing possible ad group feed errors. -message AdGroupFeedErrorEnum { - // Enum describing possible ad group feed errors. - enum AdGroupFeedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An active feed already exists for this ad group and place holder type. - FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; - - // The specified feed is removed. - CANNOT_CREATE_FOR_REMOVED_FEED = 3; - - // The AdGroupFeed already exists. UPDATE operation should be used to modify - // the existing AdGroupFeed. - ADGROUP_FEED_ALREADY_EXISTS = 4; - - // Cannot operate on removed AdGroupFeed. - CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED = 5; - - // Invalid placeholder type. - INVALID_PLACEHOLDER_TYPE = 6; - - // Feed mapping for this placeholder type does not exist. - MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7; - - // Location AdGroupFeeds cannot be created unless there is a location - // CustomerFeed for the specified feed. - NO_EXISTING_LOCATION_CUSTOMER_FEED = 8; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_parameter_error.proto b/google/ads/googleads/v8/errors/ad_parameter_error.proto deleted file mode 100644 index 69dad14be..000000000 --- a/google/ads/googleads/v8/errors/ad_parameter_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdParameterErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad parameter errors. - -// Container for enum describing possible ad parameter errors. -message AdParameterErrorEnum { - // Enum describing possible ad parameter errors. - enum AdParameterError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The ad group criterion must be a keyword criterion. - AD_GROUP_CRITERION_MUST_BE_KEYWORD = 2; - - // The insertion text is invalid. - INVALID_INSERTION_TEXT_FORMAT = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/ad_sharing_error.proto b/google/ads/googleads/v8/errors/ad_sharing_error.proto deleted file mode 100644 index 396daa3aa..000000000 --- a/google/ads/googleads/v8/errors/ad_sharing_error.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdSharingErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ad sharing errors. - -// Container for enum describing possible ad sharing errors. -message AdSharingErrorEnum { - // Enum describing possible ad sharing errors. - enum AdSharingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Error resulting in attempting to add an Ad to an AdGroup that already - // contains the Ad. - AD_GROUP_ALREADY_CONTAINS_AD = 2; - - // Ad is not compatible with the AdGroup it is being shared with. - INCOMPATIBLE_AD_UNDER_AD_GROUP = 3; - - // Cannot add AdGroupAd on inactive Ad. - CANNOT_SHARE_INACTIVE_AD = 4; - } - - -} diff --git a/google/ads/googleads/v8/errors/adx_error.proto b/google/ads/googleads/v8/errors/adx_error.proto deleted file mode 100644 index f975168b4..000000000 --- a/google/ads/googleads/v8/errors/adx_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AdxErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing adx errors. - -// Container for enum describing possible adx errors. -message AdxErrorEnum { - // Enum describing possible adx errors. - enum AdxError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Attempt to use non-AdX feature by AdX customer. - UNSUPPORTED_FEATURE = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/asset_error.proto b/google/ads/googleads/v8/errors/asset_error.proto deleted file mode 100644 index dac2179b3..000000000 --- a/google/ads/googleads/v8/errors/asset_error.proto +++ /dev/null @@ -1,99 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AssetErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing asset errors. - -// Container for enum describing possible asset errors. -message AssetErrorEnum { - // Enum describing possible asset errors. - enum AssetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The customer is not is not on the allow-list for this asset type. - CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE = 13; - - // Assets are duplicated across operations. - DUPLICATE_ASSET = 3; - - // The asset name is duplicated, either across operations or with an - // existing asset. - DUPLICATE_ASSET_NAME = 4; - - // The Asset.asset_data oneof is empty. - ASSET_DATA_IS_MISSING = 5; - - // The asset has a name which is different from an existing duplicate that - // represents the same content. - CANNOT_MODIFY_ASSET_NAME = 6; - - // The field cannot be set for this asset type. - FIELD_INCOMPATIBLE_WITH_ASSET_TYPE = 7; - - // Call to action must come from the list of supported values. - INVALID_CALL_TO_ACTION_TEXT = 8; - - // A lead form asset is created with an invalid combination of input fields. - LEAD_FORM_INVALID_FIELDS_COMBINATION = 9; - - // Lead forms require that the Terms of Service have been agreed to before - // mutates can be executed. - LEAD_FORM_MISSING_AGREEMENT = 10; - - // Asset status is invalid in this operation. - INVALID_ASSET_STATUS = 11; - - // The field cannot be modified by this asset type. - FIELD_CANNOT_BE_MODIFIED_FOR_ASSET_TYPE = 12; - - // Ad schedules for the same asset cannot overlap. - SCHEDULES_CANNOT_OVERLAP = 14; - - // Cannot set both percent off and money amount off fields of promotion - // asset. - PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 15; - - // Cannot set both promotion code and orders over amount fields of promotion - // asset. - PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 16; - - // The field has too many decimal places specified. - TOO_MANY_DECIMAL_PLACES_SPECIFIED = 17; - - // Duplicate assets across operations, which have identical Asset.asset_data - // oneof, cannot have different asset level fields for asset types which are - // deduped. - DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE = 18; - } - - -} diff --git a/google/ads/googleads/v8/errors/asset_link_error.proto b/google/ads/googleads/v8/errors/asset_link_error.proto deleted file mode 100644 index 1ed63aedc..000000000 --- a/google/ads/googleads/v8/errors/asset_link_error.proto +++ /dev/null @@ -1,108 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AssetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing asset link errors. - -// Container for enum describing possible asset link errors. -message AssetLinkErrorEnum { - // Enum describing possible asset link errors. - enum AssetLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Pinning is not supported for the given asset link field. - PINNING_UNSUPPORTED = 2; - - // The given field type is not supported to be added directly via asset - // links. - UNSUPPORTED_FIELD_TYPE = 3; - - // The given asset's type and the specified field type are incompatible. - FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE = 4; - - // The specified field type is incompatible with the given campaign type. - FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE = 5; - - // The campaign advertising channel type cannot be associated with the given - // asset due to channel-based restrictions on the asset's fields. - INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE = 6; - - // The image asset provided is not within the dimension constraints - // specified for the submitted asset field. - IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE = 7; - - // The pinned field is not valid for the submitted asset field. - INVALID_PINNED_FIELD = 8; - - // The media bundle asset provided is too large for the submitted asset - // field. - MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE = 9; - - // Not enough assets are available for use with other fields since other - // assets are pinned to specific fields. - NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION = 10; - - // Not enough assets with fallback are available. When validating the - // minimum number of assets, assets without fallback (e.g. assets that - // contain location tag without default value "{LOCATION(City)}") will not - // be counted. - NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK = 11; - - // This is a combination of the - // NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION and - // NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK errors. Not enough assets - // with fallback are available since some assets are pinned. - NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION = 12; - - // The YouTube video referenced in the provided asset has been removed. - YOUTUBE_VIDEO_REMOVED = 13; - - // The YouTube video referenced in the provided asset is too long for the - // field submitted. - YOUTUBE_VIDEO_TOO_LONG = 14; - - // The YouTube video referenced in the provided asset is too short for the - // field submitted. - YOUTUBE_VIDEO_TOO_SHORT = 15; - - // The status is invalid for the operation specified. - INVALID_STATUS = 17; - - // The YouTube video referenced in the provided asset has unknown duration. - // This might be the case for a livestream video or a video being currently - // uploaded to YouTube. In both cases, the video duration should eventually - // get resolved. - YOUTUBE_VIDEO_DURATION_NOT_DEFINED = 18; - } - - -} diff --git a/google/ads/googleads/v8/errors/authentication_error.proto b/google/ads/googleads/v8/errors/authentication_error.proto deleted file mode 100644 index 1bb65a8bb..000000000 --- a/google/ads/googleads/v8/errors/authentication_error.proto +++ /dev/null @@ -1,103 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AuthenticationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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; - - // Google 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; - - // User in the cookie is not a valid Ads user. - 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 Google Ads 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 Google Ads account, enable Advanced Protection in your - // Google account at https://landing.google.com/advancedprotection. - ADVANCED_PROTECTION_NOT_ENROLLED = 24; - } - - -} diff --git a/google/ads/googleads/v8/errors/authorization_error.proto b/google/ads/googleads/v8/errors/authorization_error.proto deleted file mode 100644 index cb5166005..000000000 --- a/google/ads/googleads/v8/errors/authorization_error.proto +++ /dev/null @@ -1,92 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "AuthorizationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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/google-ads/api/docs/concepts/call-structure#cid - USER_PERMISSION_DENIED = 2; - - // The developer token is not on the allow-list. - DEVELOPER_TOKEN_NOT_ON_ALLOWLIST = 13; - - // The developer token is not allowed with the project sent in the request. - DEVELOPER_TOKEN_PROHIBITED = 4; - - // 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 - // (e.g., ADD, UPDATE, REMOVE) on the resource or call a method. - ACTION_NOT_PERMITTED = 7; - - // Signup not complete. - INCOMPLETE_SIGNUP = 8; - - // The customer can't be used because it isn't enabled. - CUSTOMER_NOT_ENABLED = 24; - - // The developer must sign the terms of service. They can be found here: - // ads.google.com/aw/apicenter - MISSING_TOS = 9; - - // The developer token is not approved. Non-approved developer tokens can - // only be used with test accounts. - DEVELOPER_TOKEN_NOT_APPROVED = 10; - - // 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 in Google Ads. It belongs to - // another ads system. - ACCESS_DENIED_FOR_ACCOUNT_TYPE = 25; - } - - -} diff --git a/google/ads/googleads/v8/errors/batch_job_error.proto b/google/ads/googleads/v8/errors/batch_job_error.proto deleted file mode 100644 index da9691434..000000000 --- a/google/ads/googleads/v8/errors/batch_job_error.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "BatchJobErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing batch job errors. - -// Container for enum describing possible batch job errors. -message BatchJobErrorEnum { - // Enum describing possible request errors. - enum BatchJobError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The batch job cannot add more operations or run after it has started - // running. - CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING = 2; - - // The operations for an AddBatchJobOperations request were empty. - EMPTY_OPERATIONS = 3; - - // The sequence token for an AddBatchJobOperations request was invalid. - INVALID_SEQUENCE_TOKEN = 4; - - // Batch job results can only be retrieved once the job is finished. - RESULTS_NOT_READY = 5; - - // The page size for ListBatchJobResults was invalid. - INVALID_PAGE_SIZE = 6; - - // The batch job cannot be removed because it has started running. - CAN_ONLY_REMOVE_PENDING_JOB = 7; - } - - -} diff --git a/google/ads/googleads/v8/errors/bidding_error.proto b/google/ads/googleads/v8/errors/bidding_error.proto deleted file mode 100644 index f0180c7d1..000000000 --- a/google/ads/googleads/v8/errors/bidding_error.proto +++ /dev/null @@ -1,122 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "BiddingErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing bidding errors. - -// Container for enum describing possible bidding errors. -message BiddingErrorEnum { - // Enum describing possible bidding errors. - enum BiddingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot transition to new bidding strategy. - BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED = 2; - - // Cannot attach bidding strategy to campaign. - CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN = 7; - - // Bidding strategy is not supported or cannot be used as anonymous. - INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE = 10; - - // The type does not match the named strategy's type. - INVALID_BIDDING_STRATEGY_TYPE = 14; - - // The bid is invalid. - INVALID_BID = 17; - - // Bidding strategy is not available for the account type. - BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 18; - - // Conversion tracking is not enabled in the campaign that has value-based - // bidding transitions. - CONVERSION_TRACKING_NOT_ENABLED = 19; - - // Not enough conversions tracked for value-based bidding transitions. - NOT_ENOUGH_CONVERSIONS = 20; - - // Campaign can not be created with given bidding strategy. It can be - // transitioned to the strategy, once eligible. - CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY = 21; - - // Cannot target content network only as campaign uses Page One Promoted - // bidding strategy. - CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY = 23; - - // Budget Optimizer and Target Spend bidding strategies are not supported - // for campaigns with AdSchedule targeting. - BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE = 24; - - // Pay per conversion is not available to all the customer, only few - // customers on the allow-list can use this. - PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER = 25; - - // Pay per conversion is not allowed with Target CPA. - PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA = 26; - - // Cannot set bidding strategy to Manual CPM for search network only - // campaigns. - BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS = 27; - - // The bidding strategy is not supported for use in drafts or experiments. - BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS = 28; - - // Bidding strategy type does not support product type ad group criterion. - BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION = 29; - - // Bid amount is too small. - BID_TOO_SMALL = 30; - - // Bid amount is too big. - BID_TOO_BIG = 31; - - // Bid has too many fractional digit precision. - BID_TOO_MANY_FRACTIONAL_DIGITS = 32; - - // Invalid domain name specified. - INVALID_DOMAIN_NAME = 33; - - // The field is not compatible with the payment mode. - NOT_COMPATIBLE_WITH_PAYMENT_MODE = 34; - - // The field is not compatible with the budget type. - NOT_COMPATIBLE_WITH_BUDGET_TYPE = 35; - - // The field is not compatible with the bidding strategy type. - NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE = 36; - - // Bidding strategy type is incompatible with shared budget. - BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET = 37; - } - - -} diff --git a/google/ads/googleads/v8/errors/bidding_strategy_error.proto b/google/ads/googleads/v8/errors/bidding_strategy_error.proto deleted file mode 100644 index 9f4f99240..000000000 --- a/google/ads/googleads/v8/errors/bidding_strategy_error.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing bidding strategy errors. - -// Container for enum describing possible bidding strategy errors. -message BiddingStrategyErrorEnum { - // Enum describing possible bidding strategy errors. - enum BiddingStrategyError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Each bidding strategy must have a unique name. - DUPLICATE_NAME = 2; - - // Bidding strategy type is immutable. - CANNOT_CHANGE_BIDDING_STRATEGY_TYPE = 3; - - // Only bidding strategies not linked to campaigns, adgroups or adgroup - // criteria can be removed. - CANNOT_REMOVE_ASSOCIATED_STRATEGY = 4; - - // The specified bidding strategy is not supported. - BIDDING_STRATEGY_NOT_SUPPORTED = 5; - - // The bidding strategy is incompatible with the campaign's bidding - // strategy goal type. - INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE = 6; - } - - -} diff --git a/google/ads/googleads/v8/errors/billing_setup_error.proto b/google/ads/googleads/v8/errors/billing_setup_error.proto deleted file mode 100644 index 70d9255f1..000000000 --- a/google/ads/googleads/v8/errors/billing_setup_error.proto +++ /dev/null @@ -1,105 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "BillingSetupErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing billing setup errors. - -// Container for enum describing possible billing setup errors. -message BillingSetupErrorEnum { - // Enum describing possible billing setup errors. - enum BillingSetupError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot specify both an existing payments account and a new payments - // account when setting up billing. - CANNOT_USE_EXISTING_AND_NEW_ACCOUNT = 2; - - // Cannot cancel an approved billing setup whose start time has passed. - CANNOT_REMOVE_STARTED_BILLING_SETUP = 3; - - // Cannot perform a Change of Bill-To (CBT) to the same payments account. - CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT = 4; - - // Billing setups can only be used by customers with ENABLED or DRAFT - // status. - BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS = 5; - - // Billing setups must either include a correctly formatted existing - // payments account id, or a non-empty new payments account name. - INVALID_PAYMENTS_ACCOUNT = 6; - - // Only billable and third-party customers can create billing setups. - BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY = 7; - - // Billing setup creations can only use NOW for start time type. - INVALID_START_TIME_TYPE = 8; - - // Billing setups can only be created for a third-party customer if they do - // not already have a setup. - THIRD_PARTY_ALREADY_HAS_BILLING = 9; - - // Billing setups cannot be created if there is already a pending billing in - // progress. - BILLING_SETUP_IN_PROGRESS = 10; - - // Billing setups can only be created by customers who have permission to - // setup billings. Users can contact a representative for help setting up - // permissions. - NO_SIGNUP_PERMISSION = 11; - - // Billing setups cannot be created if there is already a future-approved - // billing. - CHANGE_OF_BILL_TO_IN_PROGRESS = 12; - - // Requested payments profile not found. - PAYMENTS_PROFILE_NOT_FOUND = 13; - - // Requested payments account not found. - PAYMENTS_ACCOUNT_NOT_FOUND = 14; - - // Billing setup creation failed because the payments profile is ineligible. - PAYMENTS_PROFILE_INELIGIBLE = 15; - - // Billing setup creation failed because the payments account is ineligible. - PAYMENTS_ACCOUNT_INELIGIBLE = 16; - - // Billing setup creation failed because the payments profile needs internal - // approval. - CUSTOMER_NEEDS_INTERNAL_APPROVAL = 17; - - // Payments account has different currency code than the current customer - // and hence cannot be used to setup billing. - PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH = 19; - } - - -} diff --git a/google/ads/googleads/v8/errors/campaign_budget_error.proto b/google/ads/googleads/v8/errors/campaign_budget_error.proto deleted file mode 100644 index ba5a31874..000000000 --- a/google/ads/googleads/v8/errors/campaign_budget_error.proto +++ /dev/null @@ -1,97 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBudgetErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing campaign budget errors. - -// Container for enum describing possible campaign budget errors. -message CampaignBudgetErrorEnum { - // Enum describing possible campaign budget errors. - enum CampaignBudgetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The campaign budget cannot be shared. - CAMPAIGN_BUDGET_CANNOT_BE_SHARED = 17; - - // The requested campaign budget no longer exists. - CAMPAIGN_BUDGET_REMOVED = 2; - - // The campaign budget is associated with at least one campaign, and so the - // campaign budget cannot be removed. - CAMPAIGN_BUDGET_IN_USE = 3; - - // Customer is not on the allow-list for this campaign budget period. - CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE = 4; - - // This field is not mutable on implicitly shared campaign budgets - CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET = 6; - - // Cannot change explicitly shared campaign budgets back to implicitly - // shared ones. - CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED = 7; - - // An implicit campaign budget without a name cannot be changed to - // explicitly shared campaign budget. - CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME = 8; - - // Cannot change an implicitly shared campaign budget to an explicitly - // shared one. - CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED = 9; - - // Only explicitly shared campaign budgets can be used with multiple - // campaigns. - CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS = 10; - - // A campaign budget with this name already exists. - DUPLICATE_NAME = 11; - - // A money amount was not in the expected currency. - MONEY_AMOUNT_IN_WRONG_CURRENCY = 12; - - // A money amount was less than the minimum CPC for currency. - MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC = 13; - - // A money amount was greater than the maximum allowed. - MONEY_AMOUNT_TOO_LARGE = 14; - - // A money amount was negative. - NEGATIVE_MONEY_AMOUNT = 15; - - // A money amount was not a multiple of a minimum unit. - NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT = 16; - - // Total budget amount must be unset when BudgetPeriod is DAILY. - TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY = 18; - } - - -} diff --git a/google/ads/googleads/v8/errors/campaign_criterion_error.proto b/google/ads/googleads/v8/errors/campaign_criterion_error.proto deleted file mode 100644 index bbb55d1e1..000000000 --- a/google/ads/googleads/v8/errors/campaign_criterion_error.proto +++ /dev/null @@ -1,99 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing campaign criterion errors. - -// Container for enum describing possible campaign criterion errors. -message CampaignCriterionErrorEnum { - // Enum describing possible campaign criterion errors. - enum CampaignCriterionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Concrete type of criterion (keyword v.s. placement) is required for - // CREATE and UPDATE operations. - CONCRETE_TYPE_REQUIRED = 2; - - // Invalid placement URL. - INVALID_PLACEMENT_URL = 3; - - // Criteria type can not be excluded for the campaign by the customer. like - // AOL account type cannot target site type criteria - CANNOT_EXCLUDE_CRITERIA_TYPE = 4; - - // Cannot set the campaign criterion status for this criteria type. - CANNOT_SET_STATUS_FOR_CRITERIA_TYPE = 5; - - // Cannot set the campaign criterion status for an excluded criteria. - CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA = 6; - - // Cannot target and exclude the same criterion. - CANNOT_TARGET_AND_EXCLUDE = 7; - - // The mutate contained too many operations. - TOO_MANY_OPERATIONS = 8; - - // This operator cannot be applied to a criterion of this type. - OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE = 9; - - // The Shopping campaign sales country is not supported for - // ProductSalesChannel targeting. - SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL = 10; - - // The existing field can't be updated with CREATE operation. It can be - // updated with UPDATE operation only. - CANNOT_ADD_EXISTING_FIELD = 11; - - // Negative criteria are immutable, so updates are not allowed. - CANNOT_UPDATE_NEGATIVE_CRITERION = 12; - - // Only free form names are allowed for negative Smart campaign keyword - // theme. - CANNOT_SET_NEGATIVE_KEYWORD_THEME_CONSTANT_CRITERION = 13; - - // Invalid Smart campaign keyword theme constant criterion. - INVALID_KEYWORD_THEME_CONSTANT = 14; - - // A Smart campaign keyword theme constant or free-form Smart campaign - // keyword theme is required. - MISSING_KEYWORD_THEME_CONSTANT_OR_FREE_FORM_KEYWORD_THEME = 15; - - // A Smart campaign may not target proximity and location criteria - // simultaneously. - CANNOT_TARGET_BOTH_PROXIMITY_AND_LOCATION_CRITERIA_FOR_SMART_CAMPAIGN = 16; - - // A Smart campaign may not target multiple proximity criteria. - CANNOT_TARGET_MULTIPLE_PROXIMITY_CRITERIA_FOR_SMART_CAMPAIGN = 17; - } - - -} diff --git a/google/ads/googleads/v8/errors/campaign_draft_error.proto b/google/ads/googleads/v8/errors/campaign_draft_error.proto deleted file mode 100644 index 1c3ba4ccf..000000000 --- a/google/ads/googleads/v8/errors/campaign_draft_error.proto +++ /dev/null @@ -1,79 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignDraftErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing campaign draft errors. - -// Container for enum describing possible campaign draft errors. -message CampaignDraftErrorEnum { - // Enum describing possible campaign draft errors. - enum CampaignDraftError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A draft with this name already exists for this campaign. - DUPLICATE_DRAFT_NAME = 2; - - // The draft is removed and cannot be transitioned to another status. - INVALID_STATUS_TRANSITION_FROM_REMOVED = 3; - - // The draft has been promoted and cannot be transitioned to the specified - // status. - INVALID_STATUS_TRANSITION_FROM_PROMOTED = 4; - - // The draft has failed to be promoted and cannot be transitioned to the - // specified status. - INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED = 5; - - // This customer is not allowed to create drafts. - CUSTOMER_CANNOT_CREATE_DRAFT = 6; - - // This campaign is not allowed to create drafts. - CAMPAIGN_CANNOT_CREATE_DRAFT = 7; - - // This modification cannot be made on a draft. - INVALID_DRAFT_CHANGE = 8; - - // The draft cannot be transitioned to the specified status from its - // current status. - INVALID_STATUS_TRANSITION = 9; - - // The campaign has reached the maximum number of drafts that can be created - // for a campaign throughout its lifetime. No additional drafts can be - // created for this campaign. Removed drafts also count towards this limit. - MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED = 10; - - // ListAsyncErrors was called without first promoting the draft. - LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY = 11; - } - - -} diff --git a/google/ads/googleads/v8/errors/campaign_error.proto b/google/ads/googleads/v8/errors/campaign_error.proto deleted file mode 100644 index 7fccf36a9..000000000 --- a/google/ads/googleads/v8/errors/campaign_error.proto +++ /dev/null @@ -1,190 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing campaign errors. - -// Container for enum describing possible campaign errors. -message CampaignErrorEnum { - // Enum describing possible campaign errors. - enum CampaignError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot target content network. - CANNOT_TARGET_CONTENT_NETWORK = 3; - - // Cannot target search network. - CANNOT_TARGET_SEARCH_NETWORK = 4; - - // Cannot cover search network without google search network. - CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH = 5; - - // Cannot target Google Search network for a CPM campaign. - CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN = 6; - - // Must target at least one network. - CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK = 7; - - // Only some Google partners are allowed to target partner search network. - CANNOT_TARGET_PARTNER_SEARCH_NETWORK = 8; - - // Cannot target content network only as campaign has criteria-level bidding - // strategy. - CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY = 9; - - // Cannot modify the start or end date such that the campaign duration would - // not contain the durations of all runnable trials. - CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS = 10; - - // Cannot modify dates, budget or status of a trial campaign. - CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN = 11; - - // Trying to modify the name of an active or paused campaign, where the name - // is already assigned to another active or paused campaign. - DUPLICATE_CAMPAIGN_NAME = 12; - - // Two fields are in conflicting modes. - INCOMPATIBLE_CAMPAIGN_FIELD = 13; - - // Campaign name cannot be used. - INVALID_CAMPAIGN_NAME = 14; - - // Given status is invalid. - INVALID_AD_SERVING_OPTIMIZATION_STATUS = 15; - - // Error in the campaign level tracking URL. - INVALID_TRACKING_URL = 16; - - // Cannot set both tracking URL template and tracking setting. A user has - // to clear legacy tracking setting in order to add tracking URL template. - CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING = 17; - - // The maximum number of impressions for Frequency Cap should be an integer - // greater than 0. - MAX_IMPRESSIONS_NOT_IN_RANGE = 18; - - // Only the Day, Week and Month time units are supported. - TIME_UNIT_NOT_SUPPORTED = 19; - - // Operation not allowed on a campaign whose serving status has ended - INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED = 20; - - // This budget is exclusively linked to a Campaign that is using experiments - // so it cannot be shared. - BUDGET_CANNOT_BE_SHARED = 21; - - // Campaigns using experiments cannot use a shared budget. - CAMPAIGN_CANNOT_USE_SHARED_BUDGET = 22; - - // A different budget cannot be assigned to a campaign when there are - // running or scheduled trials. - CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS = 23; - - // No link found between the campaign and the label. - CAMPAIGN_LABEL_DOES_NOT_EXIST = 24; - - // The label has already been attached to the campaign. - CAMPAIGN_LABEL_ALREADY_EXISTS = 25; - - // A ShoppingSetting was not found when creating a shopping campaign. - MISSING_SHOPPING_SETTING = 26; - - // The country in shopping setting is not an allowed country. - INVALID_SHOPPING_SALES_COUNTRY = 27; - - // The requested channel type is not available according to the customer's - // account setting. - ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 31; - - // The AdvertisingChannelSubType is not a valid subtype of the primary - // channel type. - INVALID_ADVERTISING_CHANNEL_SUB_TYPE = 32; - - // At least one conversion must be selected. - AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED = 33; - - // Setting ad rotation mode for a campaign is not allowed. Ad rotation mode - // at campaign is deprecated. - CANNOT_SET_AD_ROTATION_MODE = 34; - - // Trying to change start date on a campaign that has started. - CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 35; - - // Trying to modify a date into the past. - CANNOT_SET_DATE_TO_PAST = 36; - - // Hotel center id in the hotel setting does not match any customer links. - MISSING_HOTEL_CUSTOMER_LINK = 37; - - // Hotel center id in the hotel setting must match an active customer link. - INVALID_HOTEL_CUSTOMER_LINK = 38; - - // Hotel setting was not found when creating a hotel ads campaign. - MISSING_HOTEL_SETTING = 39; - - // A Campaign cannot use shared campaign budgets and be part of a campaign - // group. - CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP = 40; - - // The app ID was not found. - APP_NOT_FOUND = 41; - - // Campaign.shopping_setting.enable_local is not supported for the specified - // campaign type. - SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 42; - - // The merchant does not support the creation of campaigns for Shopping - // Comparison Listing Ads. - MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS = 43; - - // The App campaign for engagement cannot be created because there aren't - // enough installs. - INSUFFICIENT_APP_INSTALLS_COUNT = 44; - - // The App campaign for engagement cannot be created because the app is - // sensitive. - SENSITIVE_CATEGORY_APP = 45; - - // Customers with Housing, Employment, or Credit ads must accept updated - // personalized ads policy to continue creating campaigns. - HEC_AGREEMENT_REQUIRED = 46; - - // The field is not compatible with view through conversion optimization. - NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION = 49; - - // The field type cannot be excluded because an active campaign-asset link - // of this type exists. - INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 48; - } - - -} diff --git a/google/ads/googleads/v8/errors/campaign_experiment_error.proto b/google/ads/googleads/v8/errors/campaign_experiment_error.proto deleted file mode 100644 index 3d4a976c9..000000000 --- a/google/ads/googleads/v8/errors/campaign_experiment_error.proto +++ /dev/null @@ -1,81 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing campaign experiment errors. - -// Container for enum describing possible campaign experiment errors. -message CampaignExperimentErrorEnum { - // Enum describing possible campaign experiment errors. - enum CampaignExperimentError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An active campaign or experiment with this name already exists. - DUPLICATE_NAME = 2; - - // Experiment cannot be updated from the current state to the - // requested target state. For example, an experiment can only graduate - // if its status is ENABLED. - INVALID_TRANSITION = 3; - - // Cannot create an experiment from a campaign using an explicitly shared - // budget. - CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET = 4; - - // Cannot create an experiment for a removed base campaign. - CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN = 5; - - // Cannot create an experiment from a draft, which has a status other than - // proposed. - CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT = 6; - - // This customer is not allowed to create an experiment. - CUSTOMER_CANNOT_CREATE_EXPERIMENT = 7; - - // This campaign is not allowed to create an experiment. - CAMPAIGN_CANNOT_CREATE_EXPERIMENT = 8; - - // Trying to set an experiment duration which overlaps with another - // experiment. - EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP = 9; - - // All non-removed experiments must start and end within their campaign's - // duration. - EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION = 10; - - // The experiment cannot be modified because its status is in a terminal - // state, such as REMOVED. - CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS = 11; - } - - -} diff --git a/google/ads/googleads/v8/errors/campaign_feed_error.proto b/google/ads/googleads/v8/errors/campaign_feed_error.proto deleted file mode 100644 index fc8fc0a2a..000000000 --- a/google/ads/googleads/v8/errors/campaign_feed_error.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignFeedErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing campaign feed errors. - -// Container for enum describing possible campaign feed errors. -message CampaignFeedErrorEnum { - // Enum describing possible campaign feed errors. - enum CampaignFeedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An active feed already exists for this campaign and placeholder type. - FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; - - // The specified feed is removed. - CANNOT_CREATE_FOR_REMOVED_FEED = 4; - - // The CampaignFeed already exists. UPDATE should be used to modify the - // existing CampaignFeed. - CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED = 5; - - // Cannot update removed campaign feed. - CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED = 6; - - // Invalid placeholder type. - INVALID_PLACEHOLDER_TYPE = 7; - - // Feed mapping for this placeholder type does not exist. - MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 8; - - // Location CampaignFeeds cannot be created unless there is a location - // CustomerFeed for the specified feed. - NO_EXISTING_LOCATION_CUSTOMER_FEED = 9; - } - - -} diff --git a/google/ads/googleads/v8/errors/campaign_shared_set_error.proto b/google/ads/googleads/v8/errors/campaign_shared_set_error.proto deleted file mode 100644 index 52467b7dd..000000000 --- a/google/ads/googleads/v8/errors/campaign_shared_set_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSharedSetErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing campaign shared set errors. - -// Container for enum describing possible campaign shared set errors. -message CampaignSharedSetErrorEnum { - // Enum describing possible campaign shared set errors. - enum CampaignSharedSetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The shared set belongs to another customer and permission isn't granted. - SHARED_SET_ACCESS_DENIED = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/change_event_error.proto b/google/ads/googleads/v8/errors/change_event_error.proto deleted file mode 100644 index 7aef976da..000000000 --- a/google/ads/googleads/v8/errors/change_event_error.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ChangeEventErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing change event errors. - -// Container for enum describing possible change event errors. -message ChangeEventErrorEnum { - // Enum describing possible change event errors. - enum ChangeEventError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The requested start date is too old. It cannot be older than 30 days. - START_DATE_TOO_OLD = 2; - - // The change_event search request must specify a finite range filter - // on change_date_time. - CHANGE_DATE_RANGE_INFINITE = 3; - - // The change event search request has specified invalid date time filters - // that can never logically produce any valid results (for example, start - // time after end time). - CHANGE_DATE_RANGE_NEGATIVE = 4; - - // The change_event search request must specify a LIMIT. - LIMIT_NOT_SPECIFIED = 5; - - // The LIMIT specified by change_event request should be less than or equal - // to 10K. - INVALID_LIMIT_CLAUSE = 6; - } - - -} diff --git a/google/ads/googleads/v8/errors/change_status_error.proto b/google/ads/googleads/v8/errors/change_status_error.proto deleted file mode 100644 index 451bc5775..000000000 --- a/google/ads/googleads/v8/errors/change_status_error.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing change status errors. - -// Container for enum describing possible change status errors. -message ChangeStatusErrorEnum { - // Enum describing possible change status errors. - enum ChangeStatusError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The requested start date is too old. - START_DATE_TOO_OLD = 3; - - // The change_status search request must specify a finite range filter - // on last_change_date_time. - CHANGE_DATE_RANGE_INFINITE = 4; - - // The change status search request has specified invalid date time filters - // that can never logically produce any valid results (for example, start - // time after end time). - CHANGE_DATE_RANGE_NEGATIVE = 5; - - // The change_status search request must specify a LIMIT. - LIMIT_NOT_SPECIFIED = 6; - - // The LIMIT specified by change_status request should be less than or equal - // to 10K. - INVALID_LIMIT_CLAUSE = 7; - } - - -} diff --git a/google/ads/googleads/v8/errors/collection_size_error.proto b/google/ads/googleads/v8/errors/collection_size_error.proto deleted file mode 100644 index 4bfc3d28e..000000000 --- a/google/ads/googleads/v8/errors/collection_size_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CollectionSizeErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing collection size errors. - -// Container for enum describing possible collection size errors. -message CollectionSizeErrorEnum { - // Enum describing possible collection size errors. - enum CollectionSizeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Too few. - TOO_FEW = 2; - - // Too many. - TOO_MANY = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/context_error.proto b/google/ads/googleads/v8/errors/context_error.proto deleted file mode 100644 index 663e319d8..000000000 --- a/google/ads/googleads/v8/errors/context_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ContextErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing context errors. - -// Container for enum describing possible context errors. -message ContextErrorEnum { - // Enum describing possible context errors. - enum ContextError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The operation is not allowed for the given context. - OPERATION_NOT_PERMITTED_FOR_CONTEXT = 2; - - // The operation is not allowed for removed resources. - OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/conversion_action_error.proto b/google/ads/googleads/v8/errors/conversion_action_error.proto deleted file mode 100644 index ede311fd8..000000000 --- a/google/ads/googleads/v8/errors/conversion_action_error.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing conversion action errors. - -// Container for enum describing possible conversion action errors. -message ConversionActionErrorEnum { - // Enum describing possible conversion action errors. - enum ConversionActionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The specified conversion action name already exists. - DUPLICATE_NAME = 2; - - // Another conversion action with the specified app id already exists. - DUPLICATE_APP_ID = 3; - - // Android first open action conflicts with Google play codeless download - // action tracking the same app. - TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD = 4; - - // Android first open action conflicts with Google play codeless download - // action tracking the same app. - BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION = 5; - - // The attribution model cannot be set to DATA_DRIVEN because a data-driven - // model has never been generated. - DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED = 6; - - // The attribution model cannot be set to DATA_DRIVEN because the - // data-driven model is expired. - DATA_DRIVEN_MODEL_EXPIRED = 7; - - // The attribution model cannot be set to DATA_DRIVEN because the - // data-driven model is stale. - DATA_DRIVEN_MODEL_STALE = 8; - - // The attribution model cannot be set to DATA_DRIVEN because the - // data-driven model is unavailable or the conversion action was newly - // added. - DATA_DRIVEN_MODEL_UNKNOWN = 9; - - // Creation of this conversion action type isn't supported by Google - // Ads API. - CREATION_NOT_SUPPORTED = 10; - - // Update of this conversion action isn't supported by Google Ads API. - UPDATE_NOT_SUPPORTED = 11; - } - - -} diff --git a/google/ads/googleads/v8/errors/conversion_adjustment_upload_error.proto b/google/ads/googleads/v8/errors/conversion_adjustment_upload_error.proto deleted file mode 100644 index 2a847d208..000000000 --- a/google/ads/googleads/v8/errors/conversion_adjustment_upload_error.proto +++ /dev/null @@ -1,105 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionAdjustmentUploadErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing conversion adjustment upload errors. - -// Container for enum describing possible conversion adjustment upload errors. -message ConversionAdjustmentUploadErrorEnum { - // Enum describing possible conversion adjustment upload errors. - enum ConversionAdjustmentUploadError { - // Not specified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The specified conversion action was created too recently. - // Please try the upload again after 4-6 hours have passed since the - // conversion action was created. - TOO_RECENT_CONVERSION_ACTION = 2; - - // No conversion action of a supported ConversionActionType that matches the - // provided information can be found for the customer. - INVALID_CONVERSION_ACTION = 3; - - // A retraction was already reported for this conversion. - CONVERSION_ALREADY_RETRACTED = 4; - - // A conversion for the supplied combination of conversion - // action and conversion identifier could not be found. - CONVERSION_NOT_FOUND = 5; - - // The specified conversion has already expired. Conversions expire after 55 - // days, after which adjustments cannot be reported against them. - CONVERSION_EXPIRED = 6; - - // The supplied adjustment date time precedes that of the original - // conversion. - ADJUSTMENT_PRECEDES_CONVERSION = 7; - - // A restatement with a more recent adjustment date time was already - // reported for this conversion. - MORE_RECENT_RESTATEMENT_FOUND = 8; - - // The conversion was created too recently. - TOO_RECENT_CONVERSION = 9; - - // Restatements cannot be reported for a conversion action that always uses - // the default value. - CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE = 10; - - // The request contained more than 2000 adjustments. - TOO_MANY_ADJUSTMENTS_IN_REQUEST = 11; - - // The conversion has been adjusted too many times. - TOO_MANY_ADJUSTMENTS = 12; - - // The customer has not accepted the customer data terms in the conversion - // settings page. - CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 15; - - // The enhanced conversion settings of the conversion action supplied is - // not eligible for enhancements. - CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT = 16; - - // The provided user identifier is not a SHA-256 hash. It is either unhashed - // or hashed using a different hash function. - INVALID_USER_IDENTIFIER = 17; - - // The provided user identifier is not supported. - // ConversionAdjustmentUploadService only supports hashed_email, - // hashed_phone_number, and address_info. - UNSUPPORTED_USER_IDENTIFIER = 18; - - // The user_identifier_source must be FIRST_PARTY for enhancements. - INVALID_USER_IDENTIFIER_SOURCE = 19; - } - - -} diff --git a/google/ads/googleads/v8/errors/conversion_custom_variable_error.proto b/google/ads/googleads/v8/errors/conversion_custom_variable_error.proto deleted file mode 100644 index e178a51b8..000000000 --- a/google/ads/googleads/v8/errors/conversion_custom_variable_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionCustomVariableErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing conversion custom variable errors. - -// Container for enum describing possible conversion custom variable errors. -message ConversionCustomVariableErrorEnum { - // Enum describing possible conversion custom variable errors. - enum ConversionCustomVariableError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A conversion custom variable with the specified name already exists. - DUPLICATE_NAME = 2; - - // A conversion custom variable with the specified tag already exists. - DUPLICATE_TAG = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/conversion_upload_error.proto b/google/ads/googleads/v8/errors/conversion_upload_error.proto deleted file mode 100644 index 423cdd32b..000000000 --- a/google/ads/googleads/v8/errors/conversion_upload_error.proto +++ /dev/null @@ -1,169 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionUploadErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing conversion upload errors. - -// Container for enum describing possible conversion upload errors. -message ConversionUploadErrorEnum { - // Enum describing possible conversion upload errors. - enum ConversionUploadError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The request contained more than 2000 conversions. - TOO_MANY_CONVERSIONS_IN_REQUEST = 2; - - // The specified gclid could not be decoded. - UNPARSEABLE_GCLID = 3; - - // The specified conversion_date_time is before the event time - // associated with the given gclid. - CONVERSION_PRECEDES_GCLID = 4; - - // The click associated with the given gclid is either too old to be - // imported or occurred outside of the click through lookback window for the - // specified conversion action. - EXPIRED_GCLID = 5; - - // The click associated with the given gclid occurred too recently. Please - // try uploading again after 6 hours have passed since the click occurred. - TOO_RECENT_GCLID = 6; - - // The click associated with the given gclid could not be found in the - // system. This can happen if Google Click IDs are collected for non Google - // Ads clicks. - GCLID_NOT_FOUND = 7; - - // The click associated with the given gclid is owned by a customer account - // that the uploading customer does not manage. - UNAUTHORIZED_CUSTOMER = 8; - - // No upload eligible conversion action that matches the provided - // information can be found for the customer. - INVALID_CONVERSION_ACTION = 9; - - // The specified conversion action was created too recently. - // Please try the upload again after 4-6 hours have passed since the - // conversion action was created. - TOO_RECENT_CONVERSION_ACTION = 10; - - // The click associated with the given gclid does not contain conversion - // tracking information. - CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME = 11; - - // The specified conversion action does not use an external attribution - // model, but external_attribution_data was set. - EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 12; - - // The specified conversion action uses an external attribution model, but - // external_attribution_data or one of its contained fields was not set. - // Both external_attribution_credit and external_attribution_model must be - // set for externally attributed conversion actions. - EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 13; - - // Order IDs are not supported for conversion actions which use an external - // attribution model. - ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 14; - - // A conversion with the same order id and conversion action combination - // already exists in our system. - ORDER_ID_ALREADY_IN_USE = 15; - - // The request contained two or more conversions with the same order id and - // conversion action combination. - DUPLICATE_ORDER_ID = 16; - - // The call occurred too recently. Please try uploading again after 12 hours - // have passed since the call occurred. - TOO_RECENT_CALL = 17; - - // The click that initiated the call is too old for this conversion to be - // imported. - EXPIRED_CALL = 18; - - // The call or the click leading to the call was not found. - CALL_NOT_FOUND = 19; - - // The specified conversion_date_time is before the call_start_date_time. - CONVERSION_PRECEDES_CALL = 20; - - // The click associated with the call does not contain conversion tracking - // information. - CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME = 21; - - // The caller’s phone number cannot be parsed. It should be formatted either - // as E.164 "+16502531234", International "+64 3-331 6005" or US national - // number "6502531234". - UNPARSEABLE_CALLERS_PHONE_NUMBER = 22; - - // The custom variable is not enabled. - CUSTOM_VARIABLE_NOT_ENABLED = 28; - - // The value of the custom variable contains private customer data, such - // as email addresses or phone numbers. - CUSTOM_VARIABLE_VALUE_CONTAINS_PII = 29; - - // The click associated with the given gclid isn't from the account where - // conversion tracking is set up. - INVALID_CUSTOMER_FOR_CLICK = 30; - - // The click associated with the given call isn't from the account where - // conversion tracking is set up. - INVALID_CUSTOMER_FOR_CALL = 31; - - // The conversion can't be uploaded because the conversion source didn't - // comply with the App Tracking Transparency (ATT) policy or the person who - // converted didn't consent to tracking. - CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY = 32; - - // No click was found for the provided user identifiers that could be - // applied to the specified conversion action. - CLICK_NOT_FOUND = 33; - - // The provided user identifier is not a SHA-256 hash. It is either unhashed - // or hashed using a different hash function. - INVALID_USER_IDENTIFIER = 34; - - // Conversion actions which use an external attribution model cannot be used - // with UserIdentifier. - EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER = 35; - - // The provided user identifier is not supported. ConversionUploadService - // only supports hashed_email and hashed_phone_number. - UNSUPPORTED_USER_IDENTIFIER = 36; - - // The user_identifier_source must be FIRST_PARTY for conversion uploads. - INVALID_USER_IDENTIFIER_SOURCE = 37; - } - - -} diff --git a/google/ads/googleads/v8/errors/conversion_value_rule_error.proto b/google/ads/googleads/v8/errors/conversion_value_rule_error.proto deleted file mode 100644 index fc711362c..000000000 --- a/google/ads/googleads/v8/errors/conversion_value_rule_error.proto +++ /dev/null @@ -1,92 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRuleErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing conversion value rule errors. - -// Container for enum describing possible conversion value rule errors. -message ConversionValueRuleErrorEnum { - // Enum describing possible conversion value rule errors. - enum ConversionValueRuleError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The value rule's geo location condition contains invalid geo target - // constant(s), i.e. there's no matching geo target. - INVALID_GEO_TARGET_CONSTANT = 2; - - // The value rule's geo location condition contains conflicting included and - // excluded geo targets. Specifically, some of the excluded geo target(s) - // are the same as or contain some of the included geo target(s). For - // example, the geo location condition includes California but excludes U.S. - CONFLICTING_INCLUDED_AND_EXCLUDED_GEO_TARGET = 3; - - // User specified conflicting conditions for two value rules in the same - // value rule set. - CONFLICTING_CONDITIONS = 4; - - // The value rule cannot be removed because it's still included in some - // value rule set. - CANNOT_REMOVE_IF_INCLUDED_IN_VALUE_RULE_SET = 5; - - // The value rule contains a condition that's not allowed by the value rule - // set including this value rule. - CONDITION_NOT_ALLOWED = 6; - - // The value rule contains a field that should be unset. - FIELD_MUST_BE_UNSET = 7; - - // Pausing the value rule requires pausing the value rule set because the - // value rule is (one of) the last enabled in the value rule set. - CANNOT_PAUSE_UNLESS_VALUE_RULE_SET_IS_PAUSED = 8; - - // The value rule's geo location condition contains untargetable geo target - // constant(s). - UNTARGETABLE_GEO_TARGET = 9; - - // The value rule's audience condition contains invalid user list(s). In - // another word, there's no matching user list. - INVALID_AUDIENCE_USER_LIST = 10; - - // The value rule's audience condition contains inaccessible user list(s). - INACCESSIBLE_USER_LIST = 11; - - // The value rule's audience condition contains invalid user_interest(s). - // This might be because there is no matching user interest, or the user - // interest is not visible. - INVALID_AUDIENCE_USER_INTEREST = 12; - - // When a value rule is created, it shouldn't have REMOVED status. - CANNOT_ADD_RULE_WITH_STATUS_REMOVED = 13; - } - - -} diff --git a/google/ads/googleads/v8/errors/conversion_value_rule_set_error.proto b/google/ads/googleads/v8/errors/conversion_value_rule_set_error.proto deleted file mode 100644 index 1e143c7e3..000000000 --- a/google/ads/googleads/v8/errors/conversion_value_rule_set_error.proto +++ /dev/null @@ -1,84 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRuleSetErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing conversion value rule set errors. - -// Container for enum describing possible conversion value rule set errors. -message ConversionValueRuleSetErrorEnum { - // Enum describing possible conversion value rule set errors. - enum ConversionValueRuleSetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Two value rules in this value rule set contain conflicting conditions. - CONFLICTING_VALUE_RULE_CONDITIONS = 2; - - // This value rule set includes a value rule that cannot be found, has been - // permanently removed or belongs to a different customer. - INVALID_VALUE_RULE = 3; - - // An error that's thrown when a mutate operation is trying to - // replace/remove some existing elements in the dimensions field. In other - // words, ADD op is always fine and UPDATE op is fine if it's only appending - // new elements into dimensions list. - DIMENSIONS_UPDATE_ONLY_ALLOW_APPEND = 4; - - // An error that's thrown when a mutate is adding new value rule(s) into a - // value rule set and the added value rule(s) include conditions that are - // not specified in the dimensions of the value rule set. - CONDITION_TYPE_NOT_ALLOWED = 5; - - // The dimensions field contains duplicate elements. - DUPLICATE_DIMENSIONS = 6; - - // This value rule set is attached to an invalid campaign id. Either a - // campaign with this campaign id doesn't exist or it belongs to a different - // customer. - INVALID_CAMPAIGN_ID = 7; - - // When a mutate request tries to pause a value rule set, the enabled - // value rules in this set must be paused in the same command, or this error - // will be thrown. - CANNOT_PAUSE_UNLESS_ALL_VALUE_RULES_ARE_PAUSED = 8; - - // When a mutate request tries to pause all the value rules in a value rule - // set, the value rule set must be paused, or this error will be thrown. - SHOULD_PAUSE_WHEN_ALL_VALUE_RULES_ARE_PAUSED = 9; - - // This value rule set is attached to a campaign that does not support value - // rules. Currently, campaign level value rule sets can only be created on - // Search, or Display campaigns. - VALUE_RULES_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 10; - } - - -} diff --git a/google/ads/googleads/v8/errors/country_code_error.proto b/google/ads/googleads/v8/errors/country_code_error.proto deleted file mode 100644 index f849a1bac..000000000 --- a/google/ads/googleads/v8/errors/country_code_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CountryCodeErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing country code errors. - -// Container for enum describing country code errors. -message CountryCodeErrorEnum { - // Enum describing country code errors. - enum CountryCodeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The country code is invalid. - INVALID_COUNTRY_CODE = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/criterion_error.proto b/google/ads/googleads/v8/errors/criterion_error.proto deleted file mode 100644 index a1a7be9f6..000000000 --- a/google/ads/googleads/v8/errors/criterion_error.proto +++ /dev/null @@ -1,456 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CriterionErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing criterion errors. - -// Container for enum describing possible criterion errors. -message CriterionErrorEnum { - // Enum describing possible criterion errors. - enum CriterionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Concrete type of criterion is required for CREATE and UPDATE operations. - CONCRETE_TYPE_REQUIRED = 2; - - // The category requested for exclusion is invalid. - INVALID_EXCLUDED_CATEGORY = 3; - - // Invalid keyword criteria text. - INVALID_KEYWORD_TEXT = 4; - - // Keyword text should be less than 80 chars. - KEYWORD_TEXT_TOO_LONG = 5; - - // Keyword text has too many words. - KEYWORD_HAS_TOO_MANY_WORDS = 6; - - // Keyword text has invalid characters or symbols. - KEYWORD_HAS_INVALID_CHARS = 7; - - // Invalid placement URL. - INVALID_PLACEMENT_URL = 8; - - // Invalid user list criterion. - INVALID_USER_LIST = 9; - - // Invalid user interest criterion. - INVALID_USER_INTEREST = 10; - - // Placement URL has wrong format. - INVALID_FORMAT_FOR_PLACEMENT_URL = 11; - - // Placement URL is too long. - PLACEMENT_URL_IS_TOO_LONG = 12; - - // Indicates the URL contains an illegal character. - PLACEMENT_URL_HAS_ILLEGAL_CHAR = 13; - - // Indicates the URL contains multiple comma separated URLs. - PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE = 14; - - // Indicates the domain is blocked. - PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION = 15; - - // Invalid topic path. - INVALID_TOPIC_PATH = 16; - - // The YouTube Channel Id is invalid. - INVALID_YOUTUBE_CHANNEL_ID = 17; - - // The YouTube Video Id is invalid. - INVALID_YOUTUBE_VIDEO_ID = 18; - - // Indicates the placement is a YouTube vertical channel, which is no longer - // supported. - YOUTUBE_VERTICAL_CHANNEL_DEPRECATED = 19; - - // Indicates the placement is a YouTube demographic channel, which is no - // longer supported. - YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED = 20; - - // YouTube urls are not supported in Placement criterion. Use YouTubeChannel - // and YouTubeVideo criterion instead. - YOUTUBE_URL_UNSUPPORTED = 21; - - // Criteria type can not be excluded by the customer, like AOL account type - // cannot target site type criteria. - CANNOT_EXCLUDE_CRITERIA_TYPE = 22; - - // Criteria type can not be targeted. - CANNOT_ADD_CRITERIA_TYPE = 23; - - // Not allowed to exclude similar user list. - CANNOT_EXCLUDE_SIMILAR_USER_LIST = 26; - - // Not allowed to target a closed user list. - CANNOT_ADD_CLOSED_USER_LIST = 27; - - // Not allowed to add display only UserLists to search only campaigns. - CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS = 28; - - // Not allowed to add display only UserLists to search plus campaigns. - CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS = 29; - - // Not allowed to add display only UserLists to shopping campaigns. - CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS = 30; - - // Not allowed to add User interests to search only campaigns. - CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS = 31; - - // Not allowed to set bids for this criterion type in search campaigns - CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS = 32; - - // Final URLs, URL Templates and CustomParameters cannot be set for the - // criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and - // MobileAppCategory in search campaigns and shopping campaigns. - CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE = 33; - - // Invalid combined audience criterion. - INVALID_COMBINED_AUDIENCE = 122; - - // Invalid custom affinity criterion. - INVALID_CUSTOM_AFFINITY = 96; - - // Invalid custom intent criterion. - INVALID_CUSTOM_INTENT = 97; - - // Invalid custom audience criterion. - INVALID_CUSTOM_AUDIENCE = 121; - - // IP address is not valid. - INVALID_IP_ADDRESS = 34; - - // IP format is not valid. - INVALID_IP_FORMAT = 35; - - // Mobile application is not valid. - INVALID_MOBILE_APP = 36; - - // Mobile application category is not valid. - INVALID_MOBILE_APP_CATEGORY = 37; - - // The CriterionId does not exist or is of the incorrect type. - INVALID_CRITERION_ID = 38; - - // The Criterion is not allowed to be targeted. - CANNOT_TARGET_CRITERION = 39; - - // The criterion is not allowed to be targeted as it is deprecated. - CANNOT_TARGET_OBSOLETE_CRITERION = 40; - - // The CriterionId is not valid for the type. - CRITERION_ID_AND_TYPE_MISMATCH = 41; - - // Distance for the radius for the proximity criterion is invalid. - INVALID_PROXIMITY_RADIUS = 42; - - // Units for the distance for the radius for the proximity criterion is - // invalid. - INVALID_PROXIMITY_RADIUS_UNITS = 43; - - // Street address in the address is not valid. - INVALID_STREETADDRESS_LENGTH = 44; - - // City name in the address is not valid. - INVALID_CITYNAME_LENGTH = 45; - - // Region code in the address is not valid. - INVALID_REGIONCODE_LENGTH = 46; - - // Region name in the address is not valid. - INVALID_REGIONNAME_LENGTH = 47; - - // Postal code in the address is not valid. - INVALID_POSTALCODE_LENGTH = 48; - - // Country code in the address is not valid. - INVALID_COUNTRY_CODE = 49; - - // Latitude for the GeoPoint is not valid. - INVALID_LATITUDE = 50; - - // Longitude for the GeoPoint is not valid. - INVALID_LONGITUDE = 51; - - // The Proximity input is not valid. Both address and geoPoint cannot be - // null. - PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL = 52; - - // The Proximity address cannot be geocoded to a valid lat/long. - INVALID_PROXIMITY_ADDRESS = 53; - - // User domain name is not valid. - INVALID_USER_DOMAIN_NAME = 54; - - // Length of serialized criterion parameter exceeded size limit. - CRITERION_PARAMETER_TOO_LONG = 55; - - // Time interval in the AdSchedule overlaps with another AdSchedule. - AD_SCHEDULE_TIME_INTERVALS_OVERLAP = 56; - - // AdSchedule time interval cannot span multiple days. - AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS = 57; - - // AdSchedule time interval specified is invalid, endTime cannot be earlier - // than startTime. - AD_SCHEDULE_INVALID_TIME_INTERVAL = 58; - - // The number of AdSchedule entries in a day exceeds the limit. - AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT = 59; - - // CriteriaId does not match the interval of the AdSchedule specified. - AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS = 60; - - // Cannot set bid modifier for this criterion type. - CANNOT_BID_MODIFY_CRITERION_TYPE = 61; - - // Cannot bid modify criterion, since it is opted out of the campaign. - CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT = 62; - - // Cannot set bid modifier for a negative criterion. - CANNOT_BID_MODIFY_NEGATIVE_CRITERION = 63; - - // Bid Modifier already exists. Use SET operation to update. - BID_MODIFIER_ALREADY_EXISTS = 64; - - // Feed Id is not allowed in these Location Groups. - FEED_ID_NOT_ALLOWED = 65; - - // The account may not use the requested criteria type. For example, some - // accounts are restricted to keywords only. - ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE = 66; - - // The requested criteria type cannot be used with campaign or ad group - // bidding strategy. - CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY = 67; - - // The Criterion is not allowed to be excluded. - CANNOT_EXCLUDE_CRITERION = 68; - - // The criterion is not allowed to be removed. For example, we cannot remove - // any of the device criterion. - CANNOT_REMOVE_CRITERION = 69; - - // Bidding categories do not form a valid path in the Shopping bidding - // category taxonomy. - INVALID_PRODUCT_BIDDING_CATEGORY = 76; - - // ShoppingSetting must be added to the campaign before ProductScope - // criteria can be added. - MISSING_SHOPPING_SETTING = 77; - - // Matching function is invalid. - INVALID_MATCHING_FUNCTION = 78; - - // Filter parameters not allowed for location groups targeting. - LOCATION_FILTER_NOT_ALLOWED = 79; - - // Feed not found, or the feed is not an enabled location feed. - INVALID_FEED_FOR_LOCATION_FILTER = 98; - - // Given location filter parameter is invalid for location groups targeting. - LOCATION_FILTER_INVALID = 80; - - // Cannot set geo target constants and feed item sets at the same time. - CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS = 123; - - // The location group radius is in the range but not at the valid increment. - INVALID_LOCATION_GROUP_RADIUS = 124; - - // The location group radius unit is invalid. - INVALID_LOCATION_GROUP_RADIUS_UNIT = 125; - - // Criteria type cannot be associated with a campaign and its ad group(s) - // simultaneously. - CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP = 81; - - // Range represented by hotel length of stay's min nights and max nights - // overlaps with an existing criterion. - HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION = 82; - - // Range represented by hotel advance booking window's min days and max days - // overlaps with an existing criterion. - HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION = 83; - - // The field is not allowed to be set when the negative field is set to - // true, e.g. we don't allow bids in negative ad group or campaign criteria. - FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING = 84; - - // The combination of operand and operator in webpage condition is invalid. - INVALID_WEBPAGE_CONDITION = 85; - - // The URL of webpage condition is invalid. - INVALID_WEBPAGE_CONDITION_URL = 86; - - // The URL of webpage condition cannot be empty or contain white space. - WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY = 87; - - // The URL of webpage condition contains an unsupported protocol. - WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL = 88; - - // The URL of webpage condition cannot be an IP address. - WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS = 89; - - // The domain of the URL is not consistent with the domain in campaign - // setting. - WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING = 90; - - // The URL of webpage condition cannot be a public suffix itself. - WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX = 91; - - // The URL of webpage condition has an invalid public suffix. - WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX = 92; - - // Value track parameter is not supported in webpage condition URL. - WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED = 93; - - // Only one URL-EQUALS webpage condition is allowed in a webpage - // criterion and it cannot be combined with other conditions. - WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION = 94; - - // A webpage criterion cannot be added to a non-DSA ad group. - WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP = 95; - - // Cannot add positive user list criteria in Smart Display campaigns. - CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS = 99; - - // Cannot add positive placement criterion types in search campaigns. - CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS = 126; - - // Listing scope contains too many dimension types. - LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES = 100; - - // Listing scope has too many IN operators. - LISTING_SCOPE_TOO_MANY_IN_OPERATORS = 101; - - // Listing scope contains IN operator on an unsupported dimension type. - LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED = 102; - - // There are dimensions with duplicate dimension type. - DUPLICATE_LISTING_DIMENSION_TYPE = 103; - - // There are dimensions with duplicate dimension value. - DUPLICATE_LISTING_DIMENSION_VALUE = 104; - - // Listing group SUBDIVISION nodes cannot have bids. - CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION = 105; - - // Ad group is invalid due to the listing groups it contains. - INVALID_LISTING_GROUP_HIERARCHY = 106; - - // Listing group unit cannot have children. - LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN = 107; - - // Subdivided listing groups must have an "others" case. - LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE = 108; - - // Dimension type of listing group must be the same as that of its siblings. - LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS = 109; - - // Listing group cannot be added to the ad group because it already exists. - LISTING_GROUP_ALREADY_EXISTS = 110; - - // Listing group referenced in the operation was not found in the ad group. - LISTING_GROUP_DOES_NOT_EXIST = 111; - - // Recursive removal failed because listing group subdivision is being - // created or modified in this request. - LISTING_GROUP_CANNOT_BE_REMOVED = 112; - - // Listing group type is not allowed for specified ad group criterion type. - INVALID_LISTING_GROUP_TYPE = 113; - - // Listing group in an ADD operation specifies a non temporary criterion id. - LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID = 114; - - // The combined length of dimension values of the Listing scope criterion - // is too long. - LISTING_SCOPE_TOO_LONG = 115; - - // Listing scope contains too many dimensions. - LISTING_SCOPE_TOO_MANY_DIMENSIONS = 116; - - // The combined length of dimension values of the Listing group criterion is - // too long. - LISTING_GROUP_TOO_LONG = 117; - - // Listing group tree is too deep. - LISTING_GROUP_TREE_TOO_DEEP = 118; - - // Listing dimension is invalid (e.g. dimension contains illegal value, - // dimension type is represented with wrong class, etc). Listing dimension - // value can not contain "==" or "&+". - INVALID_LISTING_DIMENSION = 119; - - // Listing dimension type is either invalid for campaigns of this type or - // cannot be used in the current context. BIDDING_CATEGORY_Lx and - // PRODUCT_TYPE_Lx dimensions must be used in ascending order of their - // levels: L1, L2, L3, L4, L5... The levels must be specified sequentially - // and start from L1. Furthermore, an "others" Listing group cannot be - // subdivided with a dimension of the same type but of a higher level - // ("others" BIDDING_CATEGORY_L3 can be subdivided with BRAND but not with - // BIDDING_CATEGORY_L4). - INVALID_LISTING_DIMENSION_TYPE = 120; - - // Customer is not on allowlist for composite audience in display campaigns. - ADVERTISER_NOT_ON_ALLOWLIST_FOR_COMBINED_AUDIENCE_ON_DISPLAY = 127; - - // Cannot target on a removed combined audience. - CANNOT_TARGET_REMOVED_COMBINED_AUDIENCE = 128; - - // Combined audience ID is invalid. - INVALID_COMBINED_AUDIENCE_ID = 129; - - // Can not target removed combined audience. - CANNOT_TARGET_REMOVED_CUSTOM_AUDIENCE = 130; - - // Range represented by hotel check-in date's start date and end date - // overlaps with an existing criterion. - HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION = 131; - - // Start date is earlier than earliest allowed value of yesterday UTC. - HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY = 132; - - // End date later is than latest allowed day of 330 days in the future UTC. - HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE = 133; - - // Start date is after end date. - HOTEL_CHECK_IN_DATE_RANGE_REVERSED = 134; - - // Broad match modifier (BMM) keywords can no longer be created. Please see - // https://ads-developers.googleblog.com/2021/06/broad-match-modifier-upcoming-changes.html. - BROAD_MATCH_MODIFIER_KEYWORD_NOT_ALLOWED = 135; - } - - -} diff --git a/google/ads/googleads/v8/errors/currency_code_error.proto b/google/ads/googleads/v8/errors/currency_code_error.proto deleted file mode 100644 index 06de55097..000000000 --- a/google/ads/googleads/v8/errors/currency_code_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CurrencyCodeErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing currency code errors. - -// Container for enum describing possible currency code errors. -message CurrencyCodeErrorEnum { - // Enum describing possible currency code errors. - enum CurrencyCodeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The currency code is not supported. - UNSUPPORTED = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/custom_audience_error.proto b/google/ads/googleads/v8/errors/custom_audience_error.proto deleted file mode 100644 index 03df8b6ce..000000000 --- a/google/ads/googleads/v8/errors/custom_audience_error.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing custom audience errors. - -// Container for enum describing possible custom audience errors. -message CustomAudienceErrorEnum { - // Enum describing possible custom audience errors. - enum CustomAudienceError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // New name in the custom audience is duplicated ignoring cases. - NAME_ALREADY_USED = 2; - - // Cannot remove a custom audience while it's still being used as targeting. - CANNOT_REMOVE_WHILE_IN_USE = 3; - - // Cannot update or remove a custom audience that is already removed. - RESOURCE_ALREADY_REMOVED = 4; - - // The pair of [type, value] already exists in members. - MEMBER_TYPE_AND_PARAMETER_ALREADY_EXISTED = 5; - - // Member type is invalid. - INVALID_MEMBER_TYPE = 6; - - // Member type does not have associated value. - MEMBER_TYPE_AND_VALUE_DOES_NOT_MATCH = 7; - - // Custom audience contains a member that violates policy. - POLICY_VIOLATION = 8; - - // Change in custom audience type is not allowed. - INVALID_TYPE_CHANGE = 9; - } - - -} diff --git a/google/ads/googleads/v8/errors/custom_interest_error.proto b/google/ads/googleads/v8/errors/custom_interest_error.proto deleted file mode 100644 index 0a6211bc2..000000000 --- a/google/ads/googleads/v8/errors/custom_interest_error.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing custom interest errors. - -// Container for enum describing possible custom interest errors. -message CustomInterestErrorEnum { - // Enum describing possible custom interest errors. - enum CustomInterestError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Duplicate custom interest name ignoring case. - NAME_ALREADY_USED = 2; - - // In the remove custom interest member operation, both member ID and - // pair [type, parameter] are not present. - CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE = 3; - - // The pair of [type, parameter] does not exist. - TYPE_AND_PARAMETER_NOT_FOUND = 4; - - // The pair of [type, parameter] already exists. - TYPE_AND_PARAMETER_ALREADY_EXISTED = 5; - - // Unsupported custom interest member type. - INVALID_CUSTOM_INTEREST_MEMBER_TYPE = 6; - - // Cannot remove a custom interest while it's still being targeted. - CANNOT_REMOVE_WHILE_IN_USE = 7; - - // Cannot mutate custom interest type. - CANNOT_CHANGE_TYPE = 8; - } - - -} diff --git a/google/ads/googleads/v8/errors/customer_client_link_error.proto b/google/ads/googleads/v8/errors/customer_client_link_error.proto deleted file mode 100644 index ee4691a6e..000000000 --- a/google/ads/googleads/v8/errors/customer_client_link_error.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientLinkErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing CustomerClientLink errors. - -// Container for enum describing possible CustomeClientLink errors. -message CustomerClientLinkErrorEnum { - // Enum describing possible CustomerClientLink errors. - enum CustomerClientLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Trying to manage a client that already in being managed by customer. - CLIENT_ALREADY_INVITED_BY_THIS_MANAGER = 2; - - // Already managed by some other manager in the hierarchy. - CLIENT_ALREADY_MANAGED_IN_HIERARCHY = 3; - - // Attempt to create a cycle in the hierarchy. - CYCLIC_LINK_NOT_ALLOWED = 4; - - // Managed accounts has the maximum number of linked accounts. - CUSTOMER_HAS_TOO_MANY_ACCOUNTS = 5; - - // Invitor has the maximum pending invitations. - CLIENT_HAS_TOO_MANY_INVITATIONS = 6; - - // Attempt to change hidden status of a link that is not active. - CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS = 7; - - // Parent manager account has the maximum number of linked accounts. - CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER = 8; - - // Client has too many managers. - CLIENT_HAS_TOO_MANY_MANAGERS = 9; - } - - -} diff --git a/google/ads/googleads/v8/errors/customer_error.proto b/google/ads/googleads/v8/errors/customer_error.proto deleted file mode 100644 index 4dfe97f06..000000000 --- a/google/ads/googleads/v8/errors/customer_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Container for enum describing possible customer errors. -message CustomerErrorEnum { - // Set of errors that are related to requests dealing with Customer. - enum CustomerError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Customer status is not allowed to be changed from DRAFT and CLOSED. - // Currency code and at least one of country code and time zone needs to be - // set when status is changed to ENABLED. - STATUS_CHANGE_DISALLOWED = 2; - - // CustomerService cannot get a customer that has not been fully set up. - ACCOUNT_NOT_SET_UP = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/customer_feed_error.proto b/google/ads/googleads/v8/errors/customer_feed_error.proto deleted file mode 100644 index af9bcedbf..000000000 --- a/google/ads/googleads/v8/errors/customer_feed_error.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerFeedErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing customer feed errors. - -// Container for enum describing possible customer feed errors. -message CustomerFeedErrorEnum { - // Enum describing possible customer feed errors. - enum CustomerFeedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An active feed already exists for this customer and place holder type. - FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2; - - // The specified feed is removed. - CANNOT_CREATE_FOR_REMOVED_FEED = 3; - - // The CustomerFeed already exists. Update should be used to modify the - // existing CustomerFeed. - CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED = 4; - - // Cannot update removed customer feed. - CANNOT_MODIFY_REMOVED_CUSTOMER_FEED = 5; - - // Invalid placeholder type. - INVALID_PLACEHOLDER_TYPE = 6; - - // Feed mapping for this placeholder type does not exist. - MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7; - - // Placeholder not allowed at the account level. - PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED = 8; - } - - -} diff --git a/google/ads/googleads/v8/errors/customer_manager_link_error.proto b/google/ads/googleads/v8/errors/customer_manager_link_error.proto deleted file mode 100644 index c4d5916e3..000000000 --- a/google/ads/googleads/v8/errors/customer_manager_link_error.proto +++ /dev/null @@ -1,75 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerManagerLinkErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing CustomerManagerLink errors. - -// Container for enum describing possible CustomerManagerLink errors. -message CustomerManagerLinkErrorEnum { - // Enum describing possible CustomerManagerLink errors. - enum CustomerManagerLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // No pending invitation. - NO_PENDING_INVITE = 2; - - // Attempt to operate on the same client more than once in the same call. - SAME_CLIENT_MORE_THAN_ONCE_PER_CALL = 3; - - // Manager account has the maximum number of linked accounts. - MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS = 4; - - // If no active user on account it cannot be unlinked from its manager. - CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER = 5; - - // Account should have at least one active owner on it before being - // unlinked. - CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER = 6; - - // Only account owners may change their permission role. - CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER = 7; - - // When a client's link to its manager is not active, the link role cannot - // be changed. - CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT = 8; - - // Attempt to link a child to a parent that contains or will contain - // duplicate children. - DUPLICATE_CHILD_FOUND = 9; - - // The authorized customer is a test account. It can add no more than the - // allowed number of accounts - TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS = 10; - } - - -} diff --git a/google/ads/googleads/v8/errors/customer_user_access_error.proto b/google/ads/googleads/v8/errors/customer_user_access_error.proto deleted file mode 100644 index 37ff305ce..000000000 --- a/google/ads/googleads/v8/errors/customer_user_access_error.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing CustomerUserAccess errors. - -// Container for enum describing possible CustomerUserAccess errors. -message CustomerUserAccessErrorEnum { - // Enum describing possible customer user access errors. - enum CustomerUserAccessError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // There is no user associated with the user id specified. - INVALID_USER_ID = 2; - - // Unable to remove the access between the user and customer. - REMOVAL_DISALLOWED = 3; - - // Unable to add or update the access role as specified. - DISALLOWED_ACCESS_ROLE = 4; - - // The user can't remove itself from an active serving customer if it's the - // last admin user and the customer doesn't have any owner manager - LAST_ADMIN_USER_OF_SERVING_CUSTOMER = 5; - - // Last admin user cannot be removed from a manager. - LAST_ADMIN_USER_OF_MANAGER = 6; - } - - -} diff --git a/google/ads/googleads/v8/errors/database_error.proto b/google/ads/googleads/v8/errors/database_error.proto deleted file mode 100644 index 6abad4eb6..000000000 --- a/google/ads/googleads/v8/errors/database_error.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "DatabaseErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing database errors. - -// Container for enum describing possible database errors. -message DatabaseErrorEnum { - // Enum describing possible database errors. - enum DatabaseError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Multiple requests were attempting to modify the same resource at once. - // Please retry the request. - CONCURRENT_MODIFICATION = 2; - - // The request conflicted with existing data. This error will usually be - // replaced with a more specific error if the request is retried. - DATA_CONSTRAINT_VIOLATION = 3; - - // The data written is too large. Please split the request into smaller - // requests. - REQUEST_TOO_LARGE = 4; - } - - -} diff --git a/google/ads/googleads/v8/errors/date_error.proto b/google/ads/googleads/v8/errors/date_error.proto deleted file mode 100644 index a53c4971e..000000000 --- a/google/ads/googleads/v8/errors/date_error.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "DateErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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/google/ads/googleads/v8/errors/date_range_error.proto b/google/ads/googleads/v8/errors/date_range_error.proto deleted file mode 100644 index 58b677179..000000000 --- a/google/ads/googleads/v8/errors/date_range_error.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "DateRangeErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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/google/ads/googleads/v8/errors/distinct_error.proto b/google/ads/googleads/v8/errors/distinct_error.proto deleted file mode 100644 index 0bec94d6f..000000000 --- a/google/ads/googleads/v8/errors/distinct_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "DistinctErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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/google/ads/googleads/v8/errors/enum_error.proto b/google/ads/googleads/v8/errors/enum_error.proto deleted file mode 100644 index 608443991..000000000 --- a/google/ads/googleads/v8/errors/enum_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "EnumErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing enum errors. - -// Container for enum describing possible enum errors. -message EnumErrorEnum { - // Enum describing possible enum errors. - enum EnumError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The enum value is not permitted. - ENUM_VALUE_NOT_PERMITTED = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/errors.proto b/google/ads/googleads/v8/errors/errors.proto deleted file mode 100644 index 08c1578a3..000000000 --- a/google/ads/googleads/v8/errors/errors.proto +++ /dev/null @@ -1,664 +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 google.ads.googleads.v8.errors; - -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/common/value.proto"; -import "google/ads/googleads/v8/enums/resource_limit_type.proto"; -import "google/ads/googleads/v8/errors/access_invitation_error.proto"; -import "google/ads/googleads/v8/errors/account_budget_proposal_error.proto"; -import "google/ads/googleads/v8/errors/account_link_error.proto"; -import "google/ads/googleads/v8/errors/ad_customizer_error.proto"; -import "google/ads/googleads/v8/errors/ad_error.proto"; -import "google/ads/googleads/v8/errors/ad_group_ad_error.proto"; -import "google/ads/googleads/v8/errors/ad_group_bid_modifier_error.proto"; -import "google/ads/googleads/v8/errors/ad_group_criterion_error.proto"; -import "google/ads/googleads/v8/errors/ad_group_error.proto"; -import "google/ads/googleads/v8/errors/ad_group_feed_error.proto"; -import "google/ads/googleads/v8/errors/ad_parameter_error.proto"; -import "google/ads/googleads/v8/errors/ad_sharing_error.proto"; -import "google/ads/googleads/v8/errors/adx_error.proto"; -import "google/ads/googleads/v8/errors/asset_error.proto"; -import "google/ads/googleads/v8/errors/asset_link_error.proto"; -import "google/ads/googleads/v8/errors/authentication_error.proto"; -import "google/ads/googleads/v8/errors/authorization_error.proto"; -import "google/ads/googleads/v8/errors/batch_job_error.proto"; -import "google/ads/googleads/v8/errors/bidding_error.proto"; -import "google/ads/googleads/v8/errors/bidding_strategy_error.proto"; -import "google/ads/googleads/v8/errors/billing_setup_error.proto"; -import "google/ads/googleads/v8/errors/campaign_budget_error.proto"; -import "google/ads/googleads/v8/errors/campaign_criterion_error.proto"; -import "google/ads/googleads/v8/errors/campaign_draft_error.proto"; -import "google/ads/googleads/v8/errors/campaign_error.proto"; -import "google/ads/googleads/v8/errors/campaign_experiment_error.proto"; -import "google/ads/googleads/v8/errors/campaign_feed_error.proto"; -import "google/ads/googleads/v8/errors/campaign_shared_set_error.proto"; -import "google/ads/googleads/v8/errors/change_event_error.proto"; -import "google/ads/googleads/v8/errors/change_status_error.proto"; -import "google/ads/googleads/v8/errors/collection_size_error.proto"; -import "google/ads/googleads/v8/errors/context_error.proto"; -import "google/ads/googleads/v8/errors/conversion_action_error.proto"; -import "google/ads/googleads/v8/errors/conversion_adjustment_upload_error.proto"; -import "google/ads/googleads/v8/errors/conversion_custom_variable_error.proto"; -import "google/ads/googleads/v8/errors/conversion_upload_error.proto"; -import "google/ads/googleads/v8/errors/conversion_value_rule_error.proto"; -import "google/ads/googleads/v8/errors/conversion_value_rule_set_error.proto"; -import "google/ads/googleads/v8/errors/country_code_error.proto"; -import "google/ads/googleads/v8/errors/criterion_error.proto"; -import "google/ads/googleads/v8/errors/currency_code_error.proto"; -import "google/ads/googleads/v8/errors/custom_audience_error.proto"; -import "google/ads/googleads/v8/errors/custom_interest_error.proto"; -import "google/ads/googleads/v8/errors/customer_client_link_error.proto"; -import "google/ads/googleads/v8/errors/customer_error.proto"; -import "google/ads/googleads/v8/errors/customer_feed_error.proto"; -import "google/ads/googleads/v8/errors/customer_manager_link_error.proto"; -import "google/ads/googleads/v8/errors/customer_user_access_error.proto"; -import "google/ads/googleads/v8/errors/database_error.proto"; -import "google/ads/googleads/v8/errors/date_error.proto"; -import "google/ads/googleads/v8/errors/date_range_error.proto"; -import "google/ads/googleads/v8/errors/distinct_error.proto"; -import "google/ads/googleads/v8/errors/enum_error.proto"; -import "google/ads/googleads/v8/errors/extension_feed_item_error.proto"; -import "google/ads/googleads/v8/errors/extension_setting_error.proto"; -import "google/ads/googleads/v8/errors/feed_attribute_reference_error.proto"; -import "google/ads/googleads/v8/errors/feed_error.proto"; -import "google/ads/googleads/v8/errors/feed_item_error.proto"; -import "google/ads/googleads/v8/errors/feed_item_set_error.proto"; -import "google/ads/googleads/v8/errors/feed_item_set_link_error.proto"; -import "google/ads/googleads/v8/errors/feed_item_target_error.proto"; -import "google/ads/googleads/v8/errors/feed_item_validation_error.proto"; -import "google/ads/googleads/v8/errors/feed_mapping_error.proto"; -import "google/ads/googleads/v8/errors/field_error.proto"; -import "google/ads/googleads/v8/errors/field_mask_error.proto"; -import "google/ads/googleads/v8/errors/function_error.proto"; -import "google/ads/googleads/v8/errors/function_parsing_error.proto"; -import "google/ads/googleads/v8/errors/geo_target_constant_suggestion_error.proto"; -import "google/ads/googleads/v8/errors/header_error.proto"; -import "google/ads/googleads/v8/errors/id_error.proto"; -import "google/ads/googleads/v8/errors/image_error.proto"; -import "google/ads/googleads/v8/errors/internal_error.proto"; -import "google/ads/googleads/v8/errors/invoice_error.proto"; -import "google/ads/googleads/v8/errors/keyword_plan_ad_group_error.proto"; -import "google/ads/googleads/v8/errors/keyword_plan_ad_group_keyword_error.proto"; -import "google/ads/googleads/v8/errors/keyword_plan_campaign_error.proto"; -import "google/ads/googleads/v8/errors/keyword_plan_campaign_keyword_error.proto"; -import "google/ads/googleads/v8/errors/keyword_plan_error.proto"; -import "google/ads/googleads/v8/errors/keyword_plan_idea_error.proto"; -import "google/ads/googleads/v8/errors/label_error.proto"; -import "google/ads/googleads/v8/errors/language_code_error.proto"; -import "google/ads/googleads/v8/errors/list_operation_error.proto"; -import "google/ads/googleads/v8/errors/manager_link_error.proto"; -import "google/ads/googleads/v8/errors/media_bundle_error.proto"; -import "google/ads/googleads/v8/errors/media_file_error.proto"; -import "google/ads/googleads/v8/errors/media_upload_error.proto"; -import "google/ads/googleads/v8/errors/multiplier_error.proto"; -import "google/ads/googleads/v8/errors/mutate_error.proto"; -import "google/ads/googleads/v8/errors/new_resource_creation_error.proto"; -import "google/ads/googleads/v8/errors/not_allowlisted_error.proto"; -import "google/ads/googleads/v8/errors/not_empty_error.proto"; -import "google/ads/googleads/v8/errors/null_error.proto"; -import "google/ads/googleads/v8/errors/offline_user_data_job_error.proto"; -import "google/ads/googleads/v8/errors/operation_access_denied_error.proto"; -import "google/ads/googleads/v8/errors/operator_error.proto"; -import "google/ads/googleads/v8/errors/partial_failure_error.proto"; -import "google/ads/googleads/v8/errors/payments_account_error.proto"; -import "google/ads/googleads/v8/errors/policy_finding_error.proto"; -import "google/ads/googleads/v8/errors/policy_validation_parameter_error.proto"; -import "google/ads/googleads/v8/errors/policy_violation_error.proto"; -import "google/ads/googleads/v8/errors/query_error.proto"; -import "google/ads/googleads/v8/errors/quota_error.proto"; -import "google/ads/googleads/v8/errors/range_error.proto"; -import "google/ads/googleads/v8/errors/reach_plan_error.proto"; -import "google/ads/googleads/v8/errors/recommendation_error.proto"; -import "google/ads/googleads/v8/errors/region_code_error.proto"; -import "google/ads/googleads/v8/errors/request_error.proto"; -import "google/ads/googleads/v8/errors/resource_access_denied_error.proto"; -import "google/ads/googleads/v8/errors/resource_count_limit_exceeded_error.proto"; -import "google/ads/googleads/v8/errors/setting_error.proto"; -import "google/ads/googleads/v8/errors/shared_criterion_error.proto"; -import "google/ads/googleads/v8/errors/shared_set_error.proto"; -import "google/ads/googleads/v8/errors/size_limit_error.proto"; -import "google/ads/googleads/v8/errors/string_format_error.proto"; -import "google/ads/googleads/v8/errors/string_length_error.proto"; -import "google/ads/googleads/v8/errors/third_party_app_analytics_link_error.proto"; -import "google/ads/googleads/v8/errors/time_zone_error.proto"; -import "google/ads/googleads/v8/errors/url_field_error.proto"; -import "google/ads/googleads/v8/errors/user_data_error.proto"; -import "google/ads/googleads/v8/errors/user_list_error.proto"; -import "google/ads/googleads/v8/errors/youtube_video_registration_error.proto"; -import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ErrorsProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing the common error protos - -// Describes how a GoogleAds API call failed. It's returned inside -// google.rpc.Status.details when a call fails. -message GoogleAdsFailure { - // The list of errors that occurred. - repeated GoogleAdsError errors = 1; - - // The unique ID of the request that is used for debugging purposes. - string request_id = 2; -} - -// GoogleAds-specific error. -message GoogleAdsError { - // 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.googleads.v8.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 a Bidding Strategy mutate. - BiddingStrategyErrorEnum.BiddingStrategyError bidding_strategy_error = 2; - - // An error with a URL field mutate. - UrlFieldErrorEnum.UrlFieldError url_field_error = 3; - - // An error with a list operation. - ListOperationErrorEnum.ListOperationError list_operation_error = 4; - - // An error with an AWQL query - QueryErrorEnum.QueryError query_error = 5; - - // An error with a mutate - MutateErrorEnum.MutateError mutate_error = 7; - - // An error with a field mask - FieldMaskErrorEnum.FieldMaskError field_mask_error = 8; - - // 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 amonut of quota remaining. - QuotaErrorEnum.QuotaError quota_error = 11; - - // An error with an Ad Group Ad mutate. - AdErrorEnum.AdError ad_error = 12; - - // An error with an Ad Group mutate. - AdGroupErrorEnum.AdGroupError ad_group_error = 13; - - // An error with a Campaign Budget mutate. - CampaignBudgetErrorEnum.CampaignBudgetError campaign_budget_error = 14; - - // An error with a Campaign mutate. - CampaignErrorEnum.CampaignError campaign_error = 15; - - // Indicates failure to properly authenticate user. - AuthenticationErrorEnum.AuthenticationError authentication_error = 17; - - // Indicates failure to properly authenticate user. - AdGroupCriterionErrorEnum.AdGroupCriterionError ad_group_criterion_error = 18; - - // The reasons for the ad customizer error - AdCustomizerErrorEnum.AdCustomizerError ad_customizer_error = 19; - - // The reasons for the ad group ad error - AdGroupAdErrorEnum.AdGroupAdError ad_group_ad_error = 21; - - // The reasons for the ad sharing error - AdSharingErrorEnum.AdSharingError ad_sharing_error = 24; - - // The reasons for the adx error - AdxErrorEnum.AdxError adx_error = 25; - - // The reasons for the asset error - AssetErrorEnum.AssetError asset_error = 107; - - // The reasons for the bidding errors - BiddingErrorEnum.BiddingError bidding_error = 26; - - // The reasons for the campaign criterion error - CampaignCriterionErrorEnum.CampaignCriterionError campaign_criterion_error = 29; - - // The reasons for the collection size error - CollectionSizeErrorEnum.CollectionSizeError collection_size_error = 31; - - // The reasons for the country code error - CountryCodeErrorEnum.CountryCodeError country_code_error = 109; - - // The reasons for the criterion error - CriterionErrorEnum.CriterionError criterion_error = 32; - - // The reasons for the customer error - CustomerErrorEnum.CustomerError customer_error = 90; - - // 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 feed attribute reference error - FeedAttributeReferenceErrorEnum.FeedAttributeReferenceError feed_attribute_reference_error = 36; - - // The reasons for the function error - FunctionErrorEnum.FunctionError function_error = 37; - - // The reasons for the function parsing error - FunctionParsingErrorEnum.FunctionParsingError function_parsing_error = 38; - - // The reasons for the id error - IdErrorEnum.IdError id_error = 39; - - // The reasons for the image error - ImageErrorEnum.ImageError image_error = 40; - - // The reasons for the language code error - LanguageCodeErrorEnum.LanguageCodeError language_code_error = 110; - - // The reasons for the media bundle error - MediaBundleErrorEnum.MediaBundleError media_bundle_error = 42; - - // The reasons for media uploading errors. - MediaUploadErrorEnum.MediaUploadError media_upload_error = 116; - - // The reasons for the media file error - MediaFileErrorEnum.MediaFileError media_file_error = 86; - - // The reasons for the multiplier error - MultiplierErrorEnum.MultiplierError multiplier_error = 44; - - // The reasons for the new resource creation error - NewResourceCreationErrorEnum.NewResourceCreationError new_resource_creation_error = 45; - - // The reasons for the not empty error - NotEmptyErrorEnum.NotEmptyError not_empty_error = 46; - - // The reasons for the null error - NullErrorEnum.NullError null_error = 47; - - // The reasons for the operator error - OperatorErrorEnum.OperatorError operator_error = 48; - - // The reasons for the range error - RangeErrorEnum.RangeError range_error = 49; - - // The reasons for error in applying a recommendation - RecommendationErrorEnum.RecommendationError recommendation_error = 58; - - // The reasons for the region code error - RegionCodeErrorEnum.RegionCodeError region_code_error = 51; - - // The reasons for the setting error - SettingErrorEnum.SettingError setting_error = 52; - - // The reasons for the string format error - StringFormatErrorEnum.StringFormatError string_format_error = 53; - - // The reasons for the string length error - StringLengthErrorEnum.StringLengthError string_length_error = 54; - - // The reasons for the operation access denied error - OperationAccessDeniedErrorEnum.OperationAccessDeniedError operation_access_denied_error = 55; - - // The reasons for the resource access denied error - ResourceAccessDeniedErrorEnum.ResourceAccessDeniedError resource_access_denied_error = 56; - - // The reasons for the resource count limit exceeded error - ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededError resource_count_limit_exceeded_error = 57; - - // The reasons for YouTube video registration errors. - YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationError youtube_video_registration_error = 117; - - // The reasons for the ad group bid modifier error - AdGroupBidModifierErrorEnum.AdGroupBidModifierError ad_group_bid_modifier_error = 59; - - // The reasons for the context error - ContextErrorEnum.ContextError context_error = 60; - - // The reasons for the field error - FieldErrorEnum.FieldError field_error = 61; - - // The reasons for the shared set error - SharedSetErrorEnum.SharedSetError shared_set_error = 62; - - // The reasons for the shared criterion error - SharedCriterionErrorEnum.SharedCriterionError shared_criterion_error = 63; - - // The reasons for the campaign shared set error - CampaignSharedSetErrorEnum.CampaignSharedSetError campaign_shared_set_error = 64; - - // The reasons for the conversion action error - ConversionActionErrorEnum.ConversionActionError conversion_action_error = 65; - - // The reasons for the conversion adjustment upload error - ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError conversion_adjustment_upload_error = 115; - - // The reasons for the conversion custom variable error - ConversionCustomVariableErrorEnum.ConversionCustomVariableError conversion_custom_variable_error = 143; - - // The reasons for the conversion upload error - ConversionUploadErrorEnum.ConversionUploadError conversion_upload_error = 111; - - // The reasons for the conversion value rule error - ConversionValueRuleErrorEnum.ConversionValueRuleError conversion_value_rule_error = 145; - - // The reasons for the conversion value rule set error - ConversionValueRuleSetErrorEnum.ConversionValueRuleSetError conversion_value_rule_set_error = 146; - - // The reasons for the header error. - HeaderErrorEnum.HeaderError header_error = 66; - - // The reasons for the database error. - DatabaseErrorEnum.DatabaseError database_error = 67; - - // The reasons for the policy finding error. - PolicyFindingErrorEnum.PolicyFindingError policy_finding_error = 68; - - // The reason for enum error. - EnumErrorEnum.EnumError enum_error = 70; - - // The reason for keyword plan error. - KeywordPlanErrorEnum.KeywordPlanError keyword_plan_error = 71; - - // The reason for keyword plan campaign error. - KeywordPlanCampaignErrorEnum.KeywordPlanCampaignError keyword_plan_campaign_error = 72; - - // The reason for keyword plan campaign keyword error. - KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordError keyword_plan_campaign_keyword_error = 132; - - // The reason for keyword plan ad group error. - KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupError keyword_plan_ad_group_error = 74; - - // The reason for keyword plan ad group keyword error. - KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordError keyword_plan_ad_group_keyword_error = 133; - - // The reason for keyword idea error. - KeywordPlanIdeaErrorEnum.KeywordPlanIdeaError keyword_plan_idea_error = 76; - - // The reasons for account budget proposal errors. - AccountBudgetProposalErrorEnum.AccountBudgetProposalError account_budget_proposal_error = 77; - - // The reasons for the user list error - UserListErrorEnum.UserListError user_list_error = 78; - - // The reasons for the change event error - ChangeEventErrorEnum.ChangeEventError change_event_error = 136; - - // The reasons for the change status error - ChangeStatusErrorEnum.ChangeStatusError change_status_error = 79; - - // The reasons for the feed error - FeedErrorEnum.FeedError feed_error = 80; - - // The reasons for the geo target constant suggestion error. - GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionError geo_target_constant_suggestion_error = 81; - - // The reasons for the campaign draft error - CampaignDraftErrorEnum.CampaignDraftError campaign_draft_error = 82; - - // The reasons for the feed item error - FeedItemErrorEnum.FeedItemError feed_item_error = 83; - - // The reason for the label error. - LabelErrorEnum.LabelError label_error = 84; - - // The reasons for the billing setup error - BillingSetupErrorEnum.BillingSetupError billing_setup_error = 87; - - // The reasons for the customer client link error - CustomerClientLinkErrorEnum.CustomerClientLinkError customer_client_link_error = 88; - - // The reasons for the customer manager link error - CustomerManagerLinkErrorEnum.CustomerManagerLinkError customer_manager_link_error = 91; - - // The reasons for the feed mapping error - FeedMappingErrorEnum.FeedMappingError feed_mapping_error = 92; - - // The reasons for the customer feed error - CustomerFeedErrorEnum.CustomerFeedError customer_feed_error = 93; - - // The reasons for the ad group feed error - AdGroupFeedErrorEnum.AdGroupFeedError ad_group_feed_error = 94; - - // The reasons for the campaign feed error - CampaignFeedErrorEnum.CampaignFeedError campaign_feed_error = 96; - - // The reasons for the custom interest error - CustomInterestErrorEnum.CustomInterestError custom_interest_error = 97; - - // The reasons for the campaign experiment error - CampaignExperimentErrorEnum.CampaignExperimentError campaign_experiment_error = 98; - - // The reasons for the extension feed item error - ExtensionFeedItemErrorEnum.ExtensionFeedItemError extension_feed_item_error = 100; - - // The reasons for the ad parameter error - AdParameterErrorEnum.AdParameterError ad_parameter_error = 101; - - // The reasons for the feed item validation error - FeedItemValidationErrorEnum.FeedItemValidationError feed_item_validation_error = 102; - - // The reasons for the extension setting error - ExtensionSettingErrorEnum.ExtensionSettingError extension_setting_error = 103; - - // The reasons for the feed item set error - FeedItemSetErrorEnum.FeedItemSetError feed_item_set_error = 140; - - // The reasons for the feed item set link error - FeedItemSetLinkErrorEnum.FeedItemSetLinkError feed_item_set_link_error = 141; - - // The reasons for the feed item target error - FeedItemTargetErrorEnum.FeedItemTargetError feed_item_target_error = 104; - - // The reasons for the policy violation error - PolicyViolationErrorEnum.PolicyViolationError policy_violation_error = 105; - - // The reasons for the mutate job error - PartialFailureErrorEnum.PartialFailureError partial_failure_error = 112; - - // The reasons for the policy validation parameter error - PolicyValidationParameterErrorEnum.PolicyValidationParameterError policy_validation_parameter_error = 114; - - // The reasons for the size limit error - SizeLimitErrorEnum.SizeLimitError size_limit_error = 118; - - // The reasons for the offline user data job error. - OfflineUserDataJobErrorEnum.OfflineUserDataJobError offline_user_data_job_error = 119; - - // The reasons for the not allowlisted error - NotAllowlistedErrorEnum.NotAllowlistedError not_allowlisted_error = 137; - - // The reasons for the manager link error - ManagerLinkErrorEnum.ManagerLinkError manager_link_error = 121; - - // The reasons for the currency code error - CurrencyCodeErrorEnum.CurrencyCodeError currency_code_error = 122; - - // The reasons for the access invitation error - AccessInvitationErrorEnum.AccessInvitationError access_invitation_error = 124; - - // The reasons for the reach plan error - ReachPlanErrorEnum.ReachPlanError reach_plan_error = 125; - - // The reasons for the invoice error - InvoiceErrorEnum.InvoiceError invoice_error = 126; - - // The reasons for errors in payments accounts service - PaymentsAccountErrorEnum.PaymentsAccountError payments_account_error = 127; - - // The reasons for the time zone error - TimeZoneErrorEnum.TimeZoneError time_zone_error = 128; - - // The reasons for the asset link error - AssetLinkErrorEnum.AssetLinkError asset_link_error = 129; - - // The reasons for the user data error. - UserDataErrorEnum.UserDataError user_data_error = 130; - - // The reasons for the batch job error - BatchJobErrorEnum.BatchJobError batch_job_error = 131; - - // The reasons for the account link status change error - AccountLinkErrorEnum.AccountLinkError account_link_error = 134; - - // The reasons for the third party app analytics link mutate error - ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkError third_party_app_analytics_link_error = 135; - - // The reasons for the customer user access mutate error - CustomerUserAccessErrorEnum.CustomerUserAccessError customer_user_access_error = 138; - - // The reasons for the custom audience error - CustomAudienceErrorEnum.CustomAudienceError custom_audience_error = 139; - } -} - -// 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; - - // Describes an ad policy violation. - PolicyViolationDetails policy_violation_details = 2; - - // Describes policy violation findings. - PolicyFindingDetails policy_finding_details = 3; - - // Details on the quota error, including the scope (account or developer), the - // rate bucket name and the retry delay. - QuotaErrorDetails quota_error_details = 4; - - // Details for a resource count limit exceeded error. - ResourceCountDetails resource_count_details = 5; -} - -// Error returned as part of a mutate response. -// This error indicates single policy violation by some text -// in one of the fields. -message PolicyViolationDetails { - // Human readable description of policy violation. - string external_policy_description = 2; - - // Unique identifier for this violation. - // If policy is exemptible, this key may be used to request exemption. - google.ads.googleads.v8.common.PolicyViolationKey key = 4; - - // Human readable name of the policy. - string external_policy_name = 5; - - // Whether user can file an exemption request for this violation. - bool is_exemptible = 6; -} - -// Error returned as part of a mutate response. -// This error indicates one or more policy findings in the fields of a -// resource. -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.v8.common.PolicyTopicEntry policy_topic_entries = 1; -} - -// 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 or DevToken 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; -} - -// Error details returned when an resource count limit was exceeded. -message ResourceCountDetails { - // The ID of the resource whose limit was exceeded. - // External customer ID if the limit is for a customer. - string enclosing_id = 1; - - // The name of the resource (Customer, Campaign etc.) whose limit was - // exceeded. - string enclosing_resource = 5; - - // The limit which was exceeded. - int32 limit = 2; - - // The resource limit type which was exceeded. - google.ads.googleads.v8.enums.ResourceLimitTypeEnum.ResourceLimitType limit_type = 3; - - // The count of existing entities. - int32 existing_count = 4; -} diff --git a/google/ads/googleads/v8/errors/extension_feed_item_error.proto b/google/ads/googleads/v8/errors/extension_feed_item_error.proto deleted file mode 100644 index c205b95ca..000000000 --- a/google/ads/googleads/v8/errors/extension_feed_item_error.proto +++ /dev/null @@ -1,195 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionFeedItemErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing extension feed item errors. - -// Container for enum describing possible extension feed item error. -message ExtensionFeedItemErrorEnum { - // Enum describing possible extension feed item errors. - enum ExtensionFeedItemError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Value is not within the accepted range. - VALUE_OUT_OF_RANGE = 2; - - // Url list is too long. - URL_LIST_TOO_LONG = 3; - - // Cannot have a geo targeting restriction without having geo targeting. - CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING = 4; - - // Cannot simultaneously set sitelink field with final urls. - CANNOT_SET_WITH_FINAL_URLS = 5; - - // Must set field with final urls. - CANNOT_SET_WITHOUT_FINAL_URLS = 6; - - // Phone number for a call extension is invalid. - INVALID_PHONE_NUMBER = 7; - - // Phone number for a call extension is not supported for the given country - // code. - PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 8; - - // A carrier specific number in short format is not allowed for call - // extensions. - CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 9; - - // Premium rate numbers are not allowed for call extensions. - PREMIUM_RATE_NUMBER_NOT_ALLOWED = 10; - - // Phone number type for a call extension is not allowed. - // For example, personal number is not allowed for a call extension in - // most regions. - DISALLOWED_NUMBER_TYPE = 11; - - // Phone number for a call extension does not meet domestic format - // requirements. - INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 12; - - // Vanity phone numbers (i.e. those including letters) are not allowed for - // call extensions. - VANITY_PHONE_NUMBER_NOT_ALLOWED = 13; - - // Call conversion action provided for a call extension is invalid. - INVALID_CALL_CONVERSION_ACTION = 14; - - // For a call extension, the customer is not on the allow-list for call - // tracking. - CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING = 47; - - // Call tracking is not supported for the given country for a call - // extension. - CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 16; - - // Customer hasn't consented for call recording, which is required for - // creating/updating call feed items. Please see - // https://support.google.com/google-ads/answer/7412639. - CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 17; - - // App id provided for an app extension is invalid. - INVALID_APP_ID = 18; - - // Quotation marks present in the review text for a review extension. - QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 19; - - // Hyphen character present in the review text for a review extension. - HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 20; - - // A denylisted review source name or url was provided for a review - // extension. - REVIEW_EXTENSION_SOURCE_INELIGIBLE = 21; - - // Review source name should not be found in the review text. - SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 22; - - // Inconsistent currency codes. - INCONSISTENT_CURRENCY_CODES = 23; - - // Price extension cannot have duplicated headers. - PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 24; - - // Price item cannot have duplicated header and description. - PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 25; - - // Price extension has too few items. - PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 26; - - // Price extension has too many items. - PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 27; - - // The input value is not currently supported. - UNSUPPORTED_VALUE = 28; - - // The input value is not currently supported in the selected language of an - // extension. - UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 29; - - // Unknown or unsupported device preference. - INVALID_DEVICE_PREFERENCE = 30; - - // Invalid feed item schedule end time (i.e., endHour = 24 and endMinute != - // 0). - INVALID_SCHEDULE_END = 31; - - // Date time zone does not match the account's time zone. - DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 32; - - // Invalid structured snippet header. - INVALID_SNIPPETS_HEADER = 33; - - // Cannot operate on removed feed item. - CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 34; - - // Phone number not supported when call tracking enabled for country. - PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 35; - - // Cannot set call_conversion_action while call_conversion_tracking_enabled - // is set to true. - CONFLICTING_CALL_CONVERSION_SETTINGS = 36; - - // The type of the input extension feed item doesn't match the existing - // extension feed item. - EXTENSION_TYPE_MISMATCH = 37; - - // The oneof field extension i.e. subtype of extension feed item is - // required. - EXTENSION_SUBTYPE_REQUIRED = 38; - - // The referenced feed item is not mapped to a supported extension type. - EXTENSION_TYPE_UNSUPPORTED = 39; - - // Cannot operate on a Feed with more than one active FeedMapping. - CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS = 40; - - // Cannot operate on a Feed that has key attributes. - CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES = 41; - - // Input price is not in a valid format. - INVALID_PRICE_FORMAT = 42; - - // The promotion time is invalid. - PROMOTION_INVALID_TIME = 43; - - // This field has too many decimal places specified. - TOO_MANY_DECIMAL_PLACES_SPECIFIED = 44; - - // Concrete sub type of ExtensionFeedItem is required for this operation. - CONCRETE_EXTENSION_TYPE_REQUIRED = 45; - - // Feed item schedule end time must be after start time. - SCHEDULE_END_NOT_AFTER_START = 46; - } - - -} diff --git a/google/ads/googleads/v8/errors/extension_setting_error.proto b/google/ads/googleads/v8/errors/extension_setting_error.proto deleted file mode 100644 index 3afb52ed1..000000000 --- a/google/ads/googleads/v8/errors/extension_setting_error.proto +++ /dev/null @@ -1,261 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionSettingErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing extension setting validation errors. - -// Container for enum describing validation errors of extension settings. -message ExtensionSettingErrorEnum { - // Enum describing possible extension setting errors. - enum ExtensionSettingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A platform restriction was provided without input extensions or existing - // extensions. - EXTENSIONS_REQUIRED = 2; - - // The provided feed type does not correspond to the provided extensions. - FEED_TYPE_EXTENSION_TYPE_MISMATCH = 3; - - // The provided feed type cannot be used. - INVALID_FEED_TYPE = 4; - - // The provided feed type cannot be used at the customer level. - INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING = 5; - - // Cannot change a feed item field on a CREATE operation. - CANNOT_CHANGE_FEED_ITEM_ON_CREATE = 6; - - // Cannot update an extension that is not already in this setting. - CANNOT_UPDATE_NEWLY_CREATED_EXTENSION = 7; - - // There is no existing AdGroupExtensionSetting for this type. - NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE = 8; - - // There is no existing CampaignExtensionSetting for this type. - NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE = 9; - - // There is no existing CustomerExtensionSetting for this type. - NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE = 10; - - // The AdGroupExtensionSetting already exists. UPDATE should be used to - // modify the existing AdGroupExtensionSetting. - AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS = 11; - - // The CampaignExtensionSetting already exists. UPDATE should be used to - // modify the existing CampaignExtensionSetting. - CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS = 12; - - // The CustomerExtensionSetting already exists. UPDATE should be used to - // modify the existing CustomerExtensionSetting. - CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS = 13; - - // An active ad group feed already exists for this place holder type. - AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 14; - - // An active campaign feed already exists for this place holder type. - CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 15; - - // An active customer feed already exists for this place holder type. - CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 16; - - // Value is not within the accepted range. - VALUE_OUT_OF_RANGE = 17; - - // Cannot simultaneously set specified field with final urls. - CANNOT_SET_FIELD_WITH_FINAL_URLS = 18; - - // Must set field with final urls. - FINAL_URLS_NOT_SET = 19; - - // Phone number for a call extension is invalid. - INVALID_PHONE_NUMBER = 20; - - // Phone number for a call extension is not supported for the given country - // code. - PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 21; - - // A carrier specific number in short format is not allowed for call - // extensions. - CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 22; - - // Premium rate numbers are not allowed for call extensions. - PREMIUM_RATE_NUMBER_NOT_ALLOWED = 23; - - // Phone number type for a call extension is not allowed. - DISALLOWED_NUMBER_TYPE = 24; - - // Phone number for a call extension does not meet domestic format - // requirements. - INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 25; - - // Vanity phone numbers (i.e. those including letters) are not allowed for - // call extensions. - VANITY_PHONE_NUMBER_NOT_ALLOWED = 26; - - // Country code provided for a call extension is invalid. - INVALID_COUNTRY_CODE = 27; - - // Call conversion type id provided for a call extension is invalid. - INVALID_CALL_CONVERSION_TYPE_ID = 28; - - // For a call extension, the customer is not on the allow-list for call - // tracking. - CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 69; - - // Call tracking is not supported for the given country for a call - // extension. - CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 30; - - // App id provided for an app extension is invalid. - INVALID_APP_ID = 31; - - // Quotation marks present in the review text for a review extension. - QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 32; - - // Hyphen character present in the review text for a review extension. - HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 33; - - // A blocked review source name or url was provided for a review - // extension. - REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE = 34; - - // Review source name should not be found in the review text. - SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 35; - - // Field must be set. - MISSING_FIELD = 36; - - // Inconsistent currency codes. - INCONSISTENT_CURRENCY_CODES = 37; - - // Price extension cannot have duplicated headers. - PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 38; - - // Price item cannot have duplicated header and description. - PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 39; - - // Price extension has too few items - PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 40; - - // Price extension has too many items - PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 41; - - // The input value is not currently supported. - UNSUPPORTED_VALUE = 42; - - // Unknown or unsupported device preference. - INVALID_DEVICE_PREFERENCE = 43; - - // Invalid feed item schedule end time (i.e., endHour = 24 and - // endMinute != 0). - INVALID_SCHEDULE_END = 45; - - // Date time zone does not match the account's time zone. - DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 47; - - // Overlapping feed item schedule times (e.g., 7-10AM and 8-11AM) are not - // allowed. - OVERLAPPING_SCHEDULES_NOT_ALLOWED = 48; - - // Feed item schedule end time must be after start time. - SCHEDULE_END_NOT_AFTER_START = 49; - - // There are too many feed item schedules per day. - TOO_MANY_SCHEDULES_PER_DAY = 50; - - // Cannot edit the same extension feed item more than once in the same - // request. - DUPLICATE_EXTENSION_FEED_ITEM_EDIT = 51; - - // Invalid structured snippet header. - INVALID_SNIPPETS_HEADER = 52; - - // Phone number with call tracking enabled is not supported for the - // specified country. - PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 53; - - // The targeted adgroup must belong to the targeted campaign. - CAMPAIGN_TARGETING_MISMATCH = 54; - - // The feed used by the ExtensionSetting is removed and cannot be operated - // on. Remove the ExtensionSetting to allow a new one to be created using - // an active feed. - CANNOT_OPERATE_ON_REMOVED_FEED = 55; - - // The ExtensionFeedItem type is required for this operation. - EXTENSION_TYPE_REQUIRED = 56; - - // The matching function that links the extension feed to the customer, - // campaign, or ad group is not compatible with the ExtensionSetting - // services. - INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION = 57; - - // Start date must be before end date. - START_DATE_AFTER_END_DATE = 58; - - // Input price is not in a valid format. - INVALID_PRICE_FORMAT = 59; - - // The promotion time is invalid. - PROMOTION_INVALID_TIME = 60; - - // Cannot set both percent discount and money discount fields. - PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT = 61; - - // Cannot set both promotion code and orders over amount fields. - PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 62; - - // This field has too many decimal places specified. - TOO_MANY_DECIMAL_PLACES_SPECIFIED = 63; - - // The language code is not valid. - INVALID_LANGUAGE_CODE = 64; - - // The language is not supported. - UNSUPPORTED_LANGUAGE = 65; - - // Customer hasn't consented for call recording, which is required for - // adding/updating call extensions. Please see - // https://support.google.com/google-ads/answer/7412639. - CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 66; - - // The UPDATE operation does not specify any fields other than the resource - // name in the update mask. - EXTENSION_SETTING_UPDATE_IS_A_NOOP = 67; - - // The extension contains text which has been prohibited on policy grounds. - DISALLOWED_TEXT = 68; - } - - -} diff --git a/google/ads/googleads/v8/errors/feed_attribute_reference_error.proto b/google/ads/googleads/v8/errors/feed_attribute_reference_error.proto deleted file mode 100644 index 65903100c..000000000 --- a/google/ads/googleads/v8/errors/feed_attribute_reference_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedAttributeReferenceErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing feed attribute reference errors. - -// Container for enum describing possible feed attribute reference errors. -message FeedAttributeReferenceErrorEnum { - // Enum describing possible feed attribute reference errors. - enum FeedAttributeReferenceError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A feed referenced by ID has been removed. - CANNOT_REFERENCE_REMOVED_FEED = 2; - - // There is no enabled feed with the given name. - INVALID_FEED_NAME = 3; - - // There is no feed attribute in an enabled feed with the given name. - INVALID_FEED_ATTRIBUTE_NAME = 4; - } - - -} diff --git a/google/ads/googleads/v8/errors/feed_error.proto b/google/ads/googleads/v8/errors/feed_error.proto deleted file mode 100644 index 208195c67..000000000 --- a/google/ads/googleads/v8/errors/feed_error.proto +++ /dev/null @@ -1,111 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing feed errors. - -// Container for enum describing possible feed errors. -message FeedErrorEnum { - // Enum describing possible feed errors. - enum FeedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The names of the FeedAttributes must be unique. - ATTRIBUTE_NAMES_NOT_UNIQUE = 2; - - // The attribute list must be an exact copy of the existing list if the - // attribute ID's are present. - ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES = 3; - - // Cannot specify USER origin for a system generated feed. - CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED = 4; - - // Cannot specify GOOGLE origin for a non-system generated feed. - CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED = 5; - - // Cannot specify feed attributes for system feed. - CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED = 6; - - // Cannot update FeedAttributes on feed with origin GOOGLE. - CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE = 7; - - // The given ID refers to a removed Feed. Removed Feeds are immutable. - FEED_REMOVED = 8; - - // The origin of the feed is not valid for the client. - INVALID_ORIGIN_VALUE = 9; - - // A user can only create and modify feeds with USER origin. - FEED_ORIGIN_IS_NOT_USER = 10; - - // Invalid auth token for the given email. - INVALID_AUTH_TOKEN_FOR_EMAIL = 11; - - // Invalid email specified. - INVALID_EMAIL = 12; - - // Feed name matches that of another active Feed. - DUPLICATE_FEED_NAME = 13; - - // Name of feed is not allowed. - INVALID_FEED_NAME = 14; - - // Missing OAuthInfo. - MISSING_OAUTH_INFO = 15; - - // New FeedAttributes must not affect the unique key. - NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY = 16; - - // Too many FeedAttributes for a Feed. - TOO_MANY_ATTRIBUTES = 17; - - // The business account is not valid. - INVALID_BUSINESS_ACCOUNT = 18; - - // Business account cannot access Business Profile. - BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT = 19; - - // Invalid chain ID provided for affiliate location feed. - INVALID_AFFILIATE_CHAIN_ID = 20; - - // There is already a feed with the given system feed generation data. - DUPLICATE_SYSTEM_FEED = 21; - - // An error occurred accessing Business Profile. - GMB_ACCESS_ERROR = 22; - - // A customer cannot have both LOCATION and AFFILIATE_LOCATION feeds. - CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS = 23; - } - - -} diff --git a/google/ads/googleads/v8/errors/feed_item_error.proto b/google/ads/googleads/v8/errors/feed_item_error.proto deleted file mode 100644 index fac1262e4..000000000 --- a/google/ads/googleads/v8/errors/feed_item_error.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing feed item errors. - -// Container for enum describing possible feed item errors. -message FeedItemErrorEnum { - // Enum describing possible feed item errors. - enum FeedItemError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot convert the feed attribute value from string to its real type. - CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING = 2; - - // Cannot operate on removed feed item. - CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 3; - - // Date time zone does not match the account's time zone. - DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 4; - - // Feed item with the key attributes could not be found. - KEY_ATTRIBUTES_NOT_FOUND = 5; - - // Url feed attribute value is not valid. - INVALID_URL = 6; - - // Some key attributes are missing. - MISSING_KEY_ATTRIBUTES = 7; - - // Feed item has same key attributes as another feed item. - KEY_ATTRIBUTES_NOT_UNIQUE = 8; - - // Cannot modify key attributes on an existing feed item. - CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE = 9; - - // The feed attribute value is too large. - SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE = 10; - } - - -} diff --git a/google/ads/googleads/v8/errors/feed_item_set_error.proto b/google/ads/googleads/v8/errors/feed_item_set_error.proto deleted file mode 100644 index 0c2039044..000000000 --- a/google/ads/googleads/v8/errors/feed_item_set_error.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing feed item set errors. - -// Container for enum describing possible feed item set errors. -message FeedItemSetErrorEnum { - // Enum describing possible feed item set errors. - enum FeedItemSetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The given ID refers to a removed FeedItemSet. - FEED_ITEM_SET_REMOVED = 2; - - // The dynamic filter of a feed item set cannot be cleared on UPDATE if it - // exists. A set is either static or dynamic once added, and that cannot - // change. - CANNOT_CLEAR_DYNAMIC_FILTER = 3; - - // The dynamic filter of a feed item set cannot be created on UPDATE if it - // does not exist. A set is either static or dynamic once added, and that - // cannot change. - CANNOT_CREATE_DYNAMIC_FILTER = 4; - - // FeedItemSets can only be made for location or affiliate location feeds. - INVALID_FEED_TYPE = 5; - - // FeedItemSets duplicate name. Name should be unique within an account. - DUPLICATE_NAME = 6; - - // The feed type of the parent Feed is not compatible with the type of - // dynamic filter being set. For example, you can only set - // dynamic_location_set_filter for LOCATION feed item sets. - WRONG_DYNAMIC_FILTER_FOR_FEED_TYPE = 7; - - // Chain ID specified for AffiliateLocationFeedData is invalid. - DYNAMIC_FILTER_INVALID_CHAIN_IDS = 8; - } - - -} diff --git a/google/ads/googleads/v8/errors/feed_item_set_link_error.proto b/google/ads/googleads/v8/errors/feed_item_set_link_error.proto deleted file mode 100644 index 4c8497f2a..000000000 --- a/google/ads/googleads/v8/errors/feed_item_set_link_error.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing feed item set link errors. - -// Container for enum describing possible feed item set link errors. -message FeedItemSetLinkErrorEnum { - // Enum describing possible feed item set link errors. - enum FeedItemSetLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The feed IDs of the FeedItemSet and FeedItem do not match. Only FeedItems - // in a given Feed can be linked to a FeedItemSet in that Feed. - FEED_ID_MISMATCH = 2; - - // Cannot add or remove links to a dynamic set. - NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/feed_item_target_error.proto b/google/ads/googleads/v8/errors/feed_item_target_error.proto deleted file mode 100644 index b8b9dae12..000000000 --- a/google/ads/googleads/v8/errors/feed_item_target_error.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing feed item target errors. - -// Container for enum describing possible feed item target errors. -message FeedItemTargetErrorEnum { - // Enum describing possible feed item target errors. - enum FeedItemTargetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // On CREATE, the FeedItemTarget must have a populated field in the oneof - // target. - MUST_SET_TARGET_ONEOF_ON_CREATE = 2; - - // The specified feed item target already exists, so it cannot be added. - FEED_ITEM_TARGET_ALREADY_EXISTS = 3; - - // The schedules for a given feed item cannot overlap. - FEED_ITEM_SCHEDULES_CANNOT_OVERLAP = 4; - - // Too many targets of a given type were added for a single feed item. - TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE = 5; - - // Too many AdSchedules are enabled for the feed item for the given day. - TOO_MANY_SCHEDULES_PER_DAY = 6; - - // A feed item may either have an enabled campaign target or an enabled ad - // group target. - CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS = 7; - - // Duplicate ad schedules aren't allowed. - DUPLICATE_AD_SCHEDULE = 8; - - // Duplicate keywords aren't allowed. - DUPLICATE_KEYWORD = 9; - } - - -} diff --git a/google/ads/googleads/v8/errors/feed_item_validation_error.proto b/google/ads/googleads/v8/errors/feed_item_validation_error.proto deleted file mode 100644 index 5d66a50fb..000000000 --- a/google/ads/googleads/v8/errors/feed_item_validation_error.proto +++ /dev/null @@ -1,377 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemValidationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing feed item validation errors. - -// Container for enum describing possible validation errors of a feed item. -message FeedItemValidationErrorEnum { - // The possible validation errors of a feed item. - enum FeedItemValidationError { - // No value has been specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // String is too short. - STRING_TOO_SHORT = 2; - - // String is too long. - STRING_TOO_LONG = 3; - - // Value is not provided. - VALUE_NOT_SPECIFIED = 4; - - // Phone number format is invalid for region. - INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 5; - - // String does not represent a phone number. - INVALID_PHONE_NUMBER = 6; - - // Phone number format is not compatible with country code. - PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 7; - - // Premium rate number is not allowed. - PREMIUM_RATE_NUMBER_NOT_ALLOWED = 8; - - // Phone number type is not allowed. - DISALLOWED_NUMBER_TYPE = 9; - - // Specified value is outside of the valid range. - VALUE_OUT_OF_RANGE = 10; - - // Call tracking is not supported in the selected country. - CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 11; - - // Customer is not on the allow-list for call tracking. - CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 99; - - // Country code is invalid. - INVALID_COUNTRY_CODE = 13; - - // The specified mobile app id is invalid. - INVALID_APP_ID = 14; - - // Some required field attributes are missing. - MISSING_ATTRIBUTES_FOR_FIELDS = 15; - - // Invalid email button type for email extension. - INVALID_TYPE_ID = 16; - - // Email address is invalid. - INVALID_EMAIL_ADDRESS = 17; - - // The HTTPS URL in email extension is invalid. - INVALID_HTTPS_URL = 18; - - // Delivery address is missing from email extension. - MISSING_DELIVERY_ADDRESS = 19; - - // FeedItem scheduling start date comes after end date. - START_DATE_AFTER_END_DATE = 20; - - // FeedItem scheduling start time is missing. - MISSING_FEED_ITEM_START_TIME = 21; - - // FeedItem scheduling end time is missing. - MISSING_FEED_ITEM_END_TIME = 22; - - // Cannot compute system attributes on a FeedItem that has no FeedItemId. - MISSING_FEED_ITEM_ID = 23; - - // Call extension vanity phone numbers are not supported. - VANITY_PHONE_NUMBER_NOT_ALLOWED = 24; - - // Invalid review text. - INVALID_REVIEW_EXTENSION_SNIPPET = 25; - - // Invalid format for numeric value in ad parameter. - INVALID_NUMBER_FORMAT = 26; - - // Invalid format for date value in ad parameter. - INVALID_DATE_FORMAT = 27; - - // Invalid format for price value in ad parameter. - INVALID_PRICE_FORMAT = 28; - - // Unrecognized type given for value in ad parameter. - UNKNOWN_PLACEHOLDER_FIELD = 29; - - // Enhanced sitelinks must have both description lines specified. - MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE = 30; - - // Review source is ineligible. - REVIEW_EXTENSION_SOURCE_INELIGIBLE = 31; - - // Review text cannot contain hyphens or dashes. - HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 32; - - // Review text cannot contain double quote characters. - DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 33; - - // Review text cannot contain quote characters. - QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 34; - - // Parameters are encoded in the wrong format. - INVALID_FORM_ENCODED_PARAMS = 35; - - // URL parameter name must contain only letters, numbers, underscores, and - // dashes. - INVALID_URL_PARAMETER_NAME = 36; - - // Cannot find address location. - NO_GEOCODING_RESULT = 37; - - // Review extension text has source name. - SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 38; - - // Some phone numbers can be shorter than usual. Some of these short numbers - // are carrier-specific, and we disallow those in ad extensions because they - // will not be available to all users. - CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 39; - - // Triggered when a request references a placeholder field id that does not - // exist. - INVALID_PLACEHOLDER_FIELD_ID = 40; - - // URL contains invalid ValueTrack tags or format. - INVALID_URL_TAG = 41; - - // Provided list exceeds acceptable size. - LIST_TOO_LONG = 42; - - // Certain combinations of attributes aren't allowed to be specified in the - // same feed item. - INVALID_ATTRIBUTES_COMBINATION = 43; - - // An attribute has the same value repeatedly. - DUPLICATE_VALUES = 44; - - // Advertisers can link a conversion action with a phone number to indicate - // that sufficiently long calls forwarded to that phone number should be - // counted as conversions of the specified type. This is an error message - // indicating that the conversion action specified is invalid (e.g., the - // conversion action does not exist within the appropriate Google Ads - // account, or it is a type of conversion not appropriate to phone call - // conversions). - INVALID_CALL_CONVERSION_ACTION_ID = 45; - - // Tracking template requires final url to be set. - CANNOT_SET_WITHOUT_FINAL_URLS = 46; - - // An app id was provided that doesn't exist in the given app store. - APP_ID_DOESNT_EXIST_IN_APP_STORE = 47; - - // Invalid U2 final url. - INVALID_FINAL_URL = 48; - - // Invalid U2 tracking url. - INVALID_TRACKING_URL = 49; - - // Final URL should start from App download URL. - INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL = 50; - - // List provided is too short. - LIST_TOO_SHORT = 51; - - // User Action field has invalid value. - INVALID_USER_ACTION = 52; - - // Type field has invalid value. - INVALID_TYPE_NAME = 53; - - // Change status for event is invalid. - INVALID_EVENT_CHANGE_STATUS = 54; - - // The header of a structured snippets extension is not one of the valid - // headers. - INVALID_SNIPPETS_HEADER = 55; - - // Android app link is not formatted correctly - INVALID_ANDROID_APP_LINK = 56; - - // Phone number incompatible with call tracking for country. - NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 57; - - // The input is identical to a reserved keyword - RESERVED_KEYWORD_OTHER = 58; - - // Each option label in the message extension must be unique. - DUPLICATE_OPTION_LABELS = 59; - - // Each option prefill in the message extension must be unique. - DUPLICATE_OPTION_PREFILLS = 60; - - // In message extensions, the number of optional labels and optional - // prefills must be the same. - UNEQUAL_LIST_LENGTHS = 61; - - // All currency codes in an ad extension must be the same. - INCONSISTENT_CURRENCY_CODES = 62; - - // Headers in price extension are not unique. - PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 63; - - // Header and description in an item are the same. - ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 64; - - // Price extension has too few items. - PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 65; - - // The given value is not supported. - UNSUPPORTED_VALUE = 66; - - // Invalid final mobile url. - INVALID_FINAL_MOBILE_URL = 67; - - // The given string value of Label contains invalid characters - INVALID_KEYWORDLESS_AD_RULE_LABEL = 68; - - // The given URL contains value track parameters. - VALUE_TRACK_PARAMETER_NOT_SUPPORTED = 69; - - // The given value is not supported in the selected language of an - // extension. - UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 70; - - // The iOS app link is not formatted correctly. - INVALID_IOS_APP_LINK = 71; - - // iOS app link or iOS app store id is missing. - MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID = 72; - - // Promotion time is invalid. - PROMOTION_INVALID_TIME = 73; - - // Both the percent off and money amount off fields are set. - PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 74; - - // Both the promotion code and orders over amount fields are set. - PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 75; - - // Too many decimal places are specified. - TOO_MANY_DECIMAL_PLACES_SPECIFIED = 76; - - // Ad Customizers are present and not allowed. - AD_CUSTOMIZERS_NOT_ALLOWED = 77; - - // Language code is not valid. - INVALID_LANGUAGE_CODE = 78; - - // Language is not supported. - UNSUPPORTED_LANGUAGE = 79; - - // IF Function is present and not allowed. - IF_FUNCTION_NOT_ALLOWED = 80; - - // Final url suffix is not valid. - INVALID_FINAL_URL_SUFFIX = 81; - - // Final url suffix contains an invalid tag. - INVALID_TAG_IN_FINAL_URL_SUFFIX = 82; - - // Final url suffix is formatted incorrectly. - INVALID_FINAL_URL_SUFFIX_FORMAT = 83; - - // Consent for call recording, which is required for the use of call - // extensions, was not provided by the advertiser. Please see - // https://support.google.com/google-ads/answer/7412639. - CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 84; - - // Multiple message delivery options are set. - ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED = 85; - - // No message delivery option is set. - NO_DELIVERY_OPTION_IS_SET = 86; - - // String value of conversion reporting state field is not valid. - INVALID_CONVERSION_REPORTING_STATE = 87; - - // Image size is not right. - IMAGE_SIZE_WRONG = 88; - - // Email delivery is not supported in the country specified in the country - // code field. - EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY = 89; - - // Auto reply is not supported in the country specified in the country code - // field. - AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY = 90; - - // Invalid value specified for latitude. - INVALID_LATITUDE_VALUE = 91; - - // Invalid value specified for longitude. - INVALID_LONGITUDE_VALUE = 92; - - // Too many label fields provided. - TOO_MANY_LABELS = 93; - - // Invalid image url. - INVALID_IMAGE_URL = 94; - - // Latitude value is missing. - MISSING_LATITUDE_VALUE = 95; - - // Longitude value is missing. - MISSING_LONGITUDE_VALUE = 96; - - // Unable to find address. - ADDRESS_NOT_FOUND = 97; - - // Cannot target provided address. - ADDRESS_NOT_TARGETABLE = 98; - - // The specified asset ID does not exist. - INVALID_ASSET_ID = 100; - - // The asset type cannot be set for the field. - INCOMPATIBLE_ASSET_TYPE = 101; - - // The image has unexpected size. - IMAGE_ERROR_UNEXPECTED_SIZE = 102; - - // The image aspect ratio is not allowed. - IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED = 103; - - // The image file is too large. - IMAGE_ERROR_FILE_TOO_LARGE = 104; - - // The image format is unsupported. - IMAGE_ERROR_FORMAT_NOT_ALLOWED = 105; - - // Image violates constraints without more details. - IMAGE_ERROR_CONSTRAINTS_VIOLATED = 106; - - // An error occurred when validating image. - IMAGE_ERROR_SERVER_ERROR = 107; - } - - -} diff --git a/google/ads/googleads/v8/errors/feed_mapping_error.proto b/google/ads/googleads/v8/errors/feed_mapping_error.proto deleted file mode 100644 index 90f2cceac..000000000 --- a/google/ads/googleads/v8/errors/feed_mapping_error.proto +++ /dev/null @@ -1,100 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing feed item errors. - -// Container for enum describing possible feed item errors. -message FeedMappingErrorEnum { - // Enum describing possible feed item errors. - enum FeedMappingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The given placeholder field does not exist. - INVALID_PLACEHOLDER_FIELD = 2; - - // The given criterion field does not exist. - INVALID_CRITERION_FIELD = 3; - - // The given placeholder type does not exist. - INVALID_PLACEHOLDER_TYPE = 4; - - // The given criterion type does not exist. - INVALID_CRITERION_TYPE = 5; - - // A feed mapping must contain at least one attribute field mapping. - NO_ATTRIBUTE_FIELD_MAPPINGS = 7; - - // The type of the feed attribute referenced in the attribute field mapping - // must match the type of the placeholder field. - FEED_ATTRIBUTE_TYPE_MISMATCH = 8; - - // A feed mapping for a system generated feed cannot be operated on. - CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED = 9; - - // Only one feed mapping for a placeholder type is allowed per feed or - // customer (depending on the placeholder type). - MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE = 10; - - // Only one feed mapping for a criterion type is allowed per customer. - MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE = 11; - - // Only one feed attribute mapping for a placeholder field is allowed - // (depending on the placeholder type). - MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD = 12; - - // Only one feed attribute mapping for a criterion field is allowed - // (depending on the criterion type). - MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD = 13; - - // This feed mapping may not contain any explicit attribute field mappings. - UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS = 14; - - // Location placeholder feed mappings can only be created for Places feeds. - LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS = 15; - - // Mappings for typed feeds cannot be modified. - CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED = 16; - - // The given placeholder type can only be mapped to system generated feeds. - INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED = 17; - - // The given placeholder type cannot be mapped to a system generated feed - // with the given type. - INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE = 18; - - // The "field" oneof was not set in an AttributeFieldMapping. - ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD = 19; - } - - -} diff --git a/google/ads/googleads/v8/errors/field_error.proto b/google/ads/googleads/v8/errors/field_error.proto deleted file mode 100644 index 84f197bce..000000000 --- a/google/ads/googleads/v8/errors/field_error.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FieldErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing field errors. - -// Container for enum describing possible field errors. -message FieldErrorEnum { - // Enum describing possible field errors. - enum FieldError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The required field was not present. - REQUIRED = 2; - - // The field attempted to be mutated is immutable. - IMMUTABLE_FIELD = 3; - - // The field's value is invalid. - INVALID_VALUE = 4; - - // The field cannot be set. - VALUE_MUST_BE_UNSET = 5; - - // The required repeated field was empty. - REQUIRED_NONEMPTY_LIST = 6; - - // The field cannot be cleared. - FIELD_CANNOT_BE_CLEARED = 7; - - // The field's value is on a deny-list for this field. - BLOCKED_VALUE = 9; - } - - -} diff --git a/google/ads/googleads/v8/errors/field_mask_error.proto b/google/ads/googleads/v8/errors/field_mask_error.proto deleted file mode 100644 index e53bf7f6a..000000000 --- a/google/ads/googleads/v8/errors/field_mask_error.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FieldMaskErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing field mask errors. - -// Container for enum describing possible field mask errors. -message FieldMaskErrorEnum { - // Enum describing possible field mask errors. - enum FieldMaskError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The field mask must be provided for update operations. - FIELD_MASK_MISSING = 5; - - // The field mask must be empty for create and remove operations. - FIELD_MASK_NOT_ALLOWED = 4; - - // The field mask contained an invalid field. - FIELD_NOT_FOUND = 2; - - // The field mask updated a field with subfields. Fields with subfields may - // be cleared, but not updated. To fix this, the field mask should select - // all the subfields of the invalid field. - FIELD_HAS_SUBFIELDS = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/function_error.proto b/google/ads/googleads/v8/errors/function_error.proto deleted file mode 100644 index 01b0340a1..000000000 --- a/google/ads/googleads/v8/errors/function_error.proto +++ /dev/null @@ -1,93 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FunctionErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing function errors. - -// Container for enum describing possible function errors. -message FunctionErrorEnum { - // Enum describing possible function errors. - enum FunctionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The format of the function is not recognized as a supported function - // format. - INVALID_FUNCTION_FORMAT = 2; - - // Operand data types do not match. - DATA_TYPE_MISMATCH = 3; - - // The operands cannot be used together in a conjunction. - INVALID_CONJUNCTION_OPERANDS = 4; - - // Invalid numer of Operands. - INVALID_NUMBER_OF_OPERANDS = 5; - - // Operand Type not supported. - INVALID_OPERAND_TYPE = 6; - - // Operator not supported. - INVALID_OPERATOR = 7; - - // Request context type not supported. - INVALID_REQUEST_CONTEXT_TYPE = 8; - - // The matching function is not allowed for call placeholders - INVALID_FUNCTION_FOR_CALL_PLACEHOLDER = 9; - - // The matching function is not allowed for the specified placeholder - INVALID_FUNCTION_FOR_PLACEHOLDER = 10; - - // Invalid operand. - INVALID_OPERAND = 11; - - // Missing value for the constant operand. - MISSING_CONSTANT_OPERAND_VALUE = 12; - - // The value of the constant operand is invalid. - INVALID_CONSTANT_OPERAND_VALUE = 13; - - // Invalid function nesting. - INVALID_NESTING = 14; - - // The Feed ID was different from another Feed ID in the same function. - MULTIPLE_FEED_IDS_NOT_SUPPORTED = 15; - - // The matching function is invalid for use with a feed with a fixed schema. - INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA = 16; - - // Invalid attribute name. - INVALID_ATTRIBUTE_NAME = 17; - } - - -} diff --git a/google/ads/googleads/v8/errors/function_parsing_error.proto b/google/ads/googleads/v8/errors/function_parsing_error.proto deleted file mode 100644 index 02ee50071..000000000 --- a/google/ads/googleads/v8/errors/function_parsing_error.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "FunctionParsingErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing function parsing errors. - -// Container for enum describing possible function parsing errors. -message FunctionParsingErrorEnum { - // Enum describing possible function parsing errors. - enum FunctionParsingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Unexpected end of function string. - NO_MORE_INPUT = 2; - - // Could not find an expected character. - EXPECTED_CHARACTER = 3; - - // Unexpected separator character. - UNEXPECTED_SEPARATOR = 4; - - // Unmatched left bracket or parenthesis. - UNMATCHED_LEFT_BRACKET = 5; - - // Unmatched right bracket or parenthesis. - UNMATCHED_RIGHT_BRACKET = 6; - - // Functions are nested too deeply. - TOO_MANY_NESTED_FUNCTIONS = 7; - - // Missing right-hand-side operand. - MISSING_RIGHT_HAND_OPERAND = 8; - - // Invalid operator/function name. - INVALID_OPERATOR_NAME = 9; - - // Feed attribute operand's argument is not an integer. - FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER = 10; - - // Missing function operands. - NO_OPERANDS = 11; - - // Function had too many operands. - TOO_MANY_OPERANDS = 12; - } - - -} diff --git a/google/ads/googleads/v8/errors/geo_target_constant_suggestion_error.proto b/google/ads/googleads/v8/errors/geo_target_constant_suggestion_error.proto deleted file mode 100644 index 6b9088421..000000000 --- a/google/ads/googleads/v8/errors/geo_target_constant_suggestion_error.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetConstantSuggestionErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Container for enum describing possible geo target constant suggestion errors. -message GeoTargetConstantSuggestionErrorEnum { - // Enum describing possible geo target constant suggestion errors. - enum GeoTargetConstantSuggestionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A location name cannot be greater than 300 characters. - LOCATION_NAME_SIZE_LIMIT = 2; - - // At most 25 location names can be specified in a SuggestGeoTargetConstants - // method. - LOCATION_NAME_LIMIT = 3; - - // The country code is invalid. - INVALID_COUNTRY_CODE = 4; - - // Geo target constant resource names or location names must be provided in - // the request. - REQUEST_PARAMETERS_UNSET = 5; - } - - -} diff --git a/google/ads/googleads/v8/errors/header_error.proto b/google/ads/googleads/v8/errors/header_error.proto deleted file mode 100644 index ab7dbba66..000000000 --- a/google/ads/googleads/v8/errors/header_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "HeaderErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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 login customer ID could not be validated. - INVALID_LOGIN_CUSTOMER_ID = 3; - - // The linked customer ID could not be validated. - INVALID_LINKED_CUSTOMER_ID = 7; - } - - -} diff --git a/google/ads/googleads/v8/errors/id_error.proto b/google/ads/googleads/v8/errors/id_error.proto deleted file mode 100644 index e60138812..000000000 --- a/google/ads/googleads/v8/errors/id_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "IdErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing id errors. - -// Container for enum describing possible id errors. -message IdErrorEnum { - // Enum describing possible id errors. - enum IdError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Id not found - NOT_FOUND = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/image_error.proto b/google/ads/googleads/v8/errors/image_error.proto deleted file mode 100644 index c0242211c..000000000 --- a/google/ads/googleads/v8/errors/image_error.proto +++ /dev/null @@ -1,164 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ImageErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing image errors. - -// Container for enum describing possible image errors. -message ImageErrorEnum { - // Enum describing possible image errors. - enum ImageError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The image is not valid. - INVALID_IMAGE = 2; - - // The image could not be stored. - STORAGE_ERROR = 3; - - // There was a problem with the request. - BAD_REQUEST = 4; - - // The image is not of legal dimensions. - UNEXPECTED_SIZE = 5; - - // Animated image are not permitted. - ANIMATED_NOT_ALLOWED = 6; - - // Animation is too long. - ANIMATION_TOO_LONG = 7; - - // There was an error on the server. - SERVER_ERROR = 8; - - // Image cannot be in CMYK color format. - CMYK_JPEG_NOT_ALLOWED = 9; - - // Flash images are not permitted. - FLASH_NOT_ALLOWED = 10; - - // Flash images must support clickTag. - FLASH_WITHOUT_CLICKTAG = 11; - - // A flash error has occurred after fixing the click tag. - FLASH_ERROR_AFTER_FIXING_CLICK_TAG = 12; - - // Unacceptable visual effects. - ANIMATED_VISUAL_EFFECT = 13; - - // There was a problem with the flash image. - FLASH_ERROR = 14; - - // Incorrect image layout. - LAYOUT_PROBLEM = 15; - - // There was a problem reading the image file. - PROBLEM_READING_IMAGE_FILE = 16; - - // There was an error storing the image. - ERROR_STORING_IMAGE = 17; - - // The aspect ratio of the image is not allowed. - ASPECT_RATIO_NOT_ALLOWED = 18; - - // Flash cannot have network objects. - FLASH_HAS_NETWORK_OBJECTS = 19; - - // Flash cannot have network methods. - FLASH_HAS_NETWORK_METHODS = 20; - - // Flash cannot have a Url. - FLASH_HAS_URL = 21; - - // Flash cannot use mouse tracking. - FLASH_HAS_MOUSE_TRACKING = 22; - - // Flash cannot have a random number. - FLASH_HAS_RANDOM_NUM = 23; - - // Ad click target cannot be '_self'. - FLASH_SELF_TARGETS = 24; - - // GetUrl method should only use '_blank'. - FLASH_BAD_GETURL_TARGET = 25; - - // Flash version is not supported. - FLASH_VERSION_NOT_SUPPORTED = 26; - - // Flash movies need to have hard coded click URL or clickTAG - FLASH_WITHOUT_HARD_CODED_CLICK_URL = 27; - - // Uploaded flash file is corrupted. - INVALID_FLASH_FILE = 28; - - // Uploaded flash file can be parsed, but the click tag can not be fixed - // properly. - FAILED_TO_FIX_CLICK_TAG_IN_FLASH = 29; - - // Flash movie accesses network resources - FLASH_ACCESSES_NETWORK_RESOURCES = 30; - - // Flash movie attempts to call external javascript code - FLASH_EXTERNAL_JS_CALL = 31; - - // Flash movie attempts to call flash system commands - FLASH_EXTERNAL_FS_CALL = 32; - - // Image file is too large. - FILE_TOO_LARGE = 33; - - // Image data is too large. - IMAGE_DATA_TOO_LARGE = 34; - - // Error while processing the image. - IMAGE_PROCESSING_ERROR = 35; - - // Image is too small. - IMAGE_TOO_SMALL = 36; - - // Input was invalid. - INVALID_INPUT = 37; - - // There was a problem reading the image file. - PROBLEM_READING_FILE = 38; - - // Image constraints are violated, but details like ASPECT_RATIO_NOT_ALLOWED - // can't be provided. This happens when asset spec contains more than one - // constraint and different criteria of different constraints are violated. - IMAGE_CONSTRAINTS_VIOLATED = 39; - - // Image format is not allowed. - FORMAT_NOT_ALLOWED = 40; - } - - -} diff --git a/google/ads/googleads/v8/errors/internal_error.proto b/google/ads/googleads/v8/errors/internal_error.proto deleted file mode 100644 index fa10504c1..000000000 --- a/google/ads/googleads/v8/errors/internal_error.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "InternalErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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; - - // Google Ads 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; - - // Google Ads 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/google/ads/googleads/v8/errors/invoice_error.proto b/google/ads/googleads/v8/errors/invoice_error.proto deleted file mode 100644 index d00fd64a6..000000000 --- a/google/ads/googleads/v8/errors/invoice_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "InvoiceErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing invoice errors. - -// Container for enum describing possible invoice errors. -message InvoiceErrorEnum { - // Enum describing possible invoice errors. - enum InvoiceError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot request invoices issued before 2019-01-01. - YEAR_MONTH_TOO_OLD = 2; - - // Cannot request invoices for customer who doesn't receive invoices. - NOT_INVOICED_CUSTOMER = 3; - - // Cannot request invoices for a non approved billing setup. - BILLING_SETUP_NOT_APPROVED = 4; - } - - -} diff --git a/google/ads/googleads/v8/errors/keyword_plan_ad_group_error.proto b/google/ads/googleads/v8/errors/keyword_plan_ad_group_error.proto deleted file mode 100644 index ba1c0bf05..000000000 --- a/google/ads/googleads/v8/errors/keyword_plan_ad_group_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing errors from applying a keyword plan ad group. - -// Container for enum describing possible errors from applying a keyword plan -// ad group. -message KeywordPlanAdGroupErrorEnum { - // Enum describing possible errors from applying a keyword plan ad group. - enum KeywordPlanAdGroupError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The keyword plan ad group name is missing, empty, longer than allowed - // limit or contains invalid chars. - INVALID_NAME = 2; - - // The keyword plan ad group name is duplicate to an existing keyword plan - // AdGroup name or other keyword plan AdGroup name in the request. - DUPLICATE_NAME = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/keyword_plan_ad_group_keyword_error.proto b/google/ads/googleads/v8/errors/keyword_plan_ad_group_keyword_error.proto deleted file mode 100644 index e822351d9..000000000 --- a/google/ads/googleads/v8/errors/keyword_plan_ad_group_keyword_error.proto +++ /dev/null @@ -1,72 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupKeywordErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing errors from applying a keyword plan ad group keyword or -// keyword plan campaign keyword. - -// Container for enum describing possible errors from applying an ad group -// keyword or a campaign keyword from a keyword plan. -message KeywordPlanAdGroupKeywordErrorEnum { - // Enum describing possible errors from applying a keyword plan ad group - // keyword or keyword plan campaign keyword. - enum KeywordPlanAdGroupKeywordError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A keyword or negative keyword has invalid match type. - INVALID_KEYWORD_MATCH_TYPE = 2; - - // A keyword or negative keyword with same text and match type already - // exists. - DUPLICATE_KEYWORD = 3; - - // Keyword or negative keyword text exceeds the allowed limit. - KEYWORD_TEXT_TOO_LONG = 4; - - // Keyword or negative keyword text has invalid characters or symbols. - KEYWORD_HAS_INVALID_CHARS = 5; - - // Keyword or negative keyword text has too many words. - KEYWORD_HAS_TOO_MANY_WORDS = 6; - - // Keyword or negative keyword has invalid text. - INVALID_KEYWORD_TEXT = 7; - - // Cpc Bid set for negative keyword. - NEGATIVE_KEYWORD_HAS_CPC_BID = 8; - - // New broad match modifier (BMM) KpAdGroupKeywords are not allowed. - NEW_BMM_KEYWORDS_NOT_ALLOWED = 9; - } - - -} diff --git a/google/ads/googleads/v8/errors/keyword_plan_campaign_error.proto b/google/ads/googleads/v8/errors/keyword_plan_campaign_error.proto deleted file mode 100644 index 937f77c28..000000000 --- a/google/ads/googleads/v8/errors/keyword_plan_campaign_error.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing errors from applying a keyword plan campaign. - -// Container for enum describing possible errors from applying a keyword plan -// campaign. -message KeywordPlanCampaignErrorEnum { - // Enum describing possible errors from applying a keyword plan campaign. - enum KeywordPlanCampaignError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A keyword plan campaign name is missing, empty, longer than allowed limit - // or contains invalid chars. - INVALID_NAME = 2; - - // A keyword plan campaign contains one or more untargetable languages. - INVALID_LANGUAGES = 3; - - // A keyword plan campaign contains one or more invalid geo targets. - INVALID_GEOS = 4; - - // The keyword plan campaign name is duplicate to an existing keyword plan - // campaign name or other keyword plan campaign name in the request. - DUPLICATE_NAME = 5; - - // The number of geo targets in the keyword plan campaign exceeds limits. - MAX_GEOS_EXCEEDED = 6; - - // The number of languages in the keyword plan campaign exceeds limits. - MAX_LANGUAGES_EXCEEDED = 7; - } - - -} diff --git a/google/ads/googleads/v8/errors/keyword_plan_campaign_keyword_error.proto b/google/ads/googleads/v8/errors/keyword_plan_campaign_keyword_error.proto deleted file mode 100644 index 3a8ebdd93..000000000 --- a/google/ads/googleads/v8/errors/keyword_plan_campaign_keyword_error.proto +++ /dev/null @@ -1,49 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignKeywordErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing errors from applying a keyword plan campaign keyword. - -// Container for enum describing possible errors from applying a keyword plan -// campaign keyword. -message KeywordPlanCampaignKeywordErrorEnum { - // Enum describing possible errors from applying a keyword plan campaign - // keyword. - enum KeywordPlanCampaignKeywordError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Keyword plan campaign keyword is positive. - CAMPAIGN_KEYWORD_IS_POSITIVE = 8; - } - - -} diff --git a/google/ads/googleads/v8/errors/keyword_plan_error.proto b/google/ads/googleads/v8/errors/keyword_plan_error.proto deleted file mode 100644 index 57b4a8c5b..000000000 --- a/google/ads/googleads/v8/errors/keyword_plan_error.proto +++ /dev/null @@ -1,91 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing errors from applying keyword plan resources (keyword -// plan, keyword plan campaign, keyword plan ad group or keyword plan keyword) -// or KeywordPlanService RPC. - -// Container for enum describing possible errors from applying a keyword plan -// resource (keyword plan, keyword plan campaign, keyword plan ad group or -// keyword plan keyword) or KeywordPlanService RPC. -message KeywordPlanErrorEnum { - // Enum describing possible errors from applying a keyword plan. - enum KeywordPlanError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The plan's bid multiplier value is outside the valid range. - BID_MULTIPLIER_OUT_OF_RANGE = 2; - - // The plan's bid value is too high. - BID_TOO_HIGH = 3; - - // The plan's bid value is too low. - BID_TOO_LOW = 4; - - // The plan's cpc bid is not a multiple of the minimum billable unit. - BID_TOO_MANY_FRACTIONAL_DIGITS = 5; - - // The plan's daily budget value is too low. - DAILY_BUDGET_TOO_LOW = 6; - - // The plan's daily budget is not a multiple of the minimum billable unit. - DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS = 7; - - // The input has an invalid value. - INVALID_VALUE = 8; - - // The plan has no keyword. - KEYWORD_PLAN_HAS_NO_KEYWORDS = 9; - - // The plan is not enabled and API cannot provide mutation, forecast or - // stats. - KEYWORD_PLAN_NOT_ENABLED = 10; - - // The requested plan cannot be found for providing forecast or stats. - KEYWORD_PLAN_NOT_FOUND = 11; - - // The plan is missing a cpc bid. - MISSING_BID = 13; - - // The plan is missing required forecast_period field. - MISSING_FORECAST_PERIOD = 14; - - // The plan's forecast_period has invalid forecast date range. - INVALID_FORECAST_DATE_RANGE = 15; - - // The plan's name is invalid. - INVALID_NAME = 16; - } - - -} diff --git a/google/ads/googleads/v8/errors/keyword_plan_idea_error.proto b/google/ads/googleads/v8/errors/keyword_plan_idea_error.proto deleted file mode 100644 index e46a0155d..000000000 --- a/google/ads/googleads/v8/errors/keyword_plan_idea_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanIdeaErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing errors from KeywordPlanIdeaService. - -// Container for enum describing possible errors from KeywordPlanIdeaService. -message KeywordPlanIdeaErrorEnum { - // Enum describing possible errors from KeywordPlanIdeaService. - enum KeywordPlanIdeaError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Error when crawling the input URL. - URL_CRAWL_ERROR = 2; - - // The input has an invalid value. - INVALID_VALUE = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/label_error.proto b/google/ads/googleads/v8/errors/label_error.proto deleted file mode 100644 index d38293e71..000000000 --- a/google/ads/googleads/v8/errors/label_error.proto +++ /dev/null @@ -1,73 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "LabelErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing label errors. - -// Container for enum describing possible label errors. -message LabelErrorEnum { - // Enum describing possible label errors. - enum LabelError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // An inactive label cannot be applied. - CANNOT_APPLY_INACTIVE_LABEL = 2; - - // A label cannot be applied to a disabled ad group criterion. - CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION = 3; - - // A label cannot be applied to a negative ad group criterion. - CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION = 4; - - // Cannot apply more than 50 labels per resource. - EXCEEDED_LABEL_LIMIT_PER_TYPE = 5; - - // Labels from a manager account cannot be applied to campaign, ad group, - // ad group ad, or ad group criterion resources. - INVALID_RESOURCE_FOR_MANAGER_LABEL = 6; - - // Label names must be unique. - DUPLICATE_NAME = 7; - - // Label names cannot be empty. - INVALID_LABEL_NAME = 8; - - // Labels cannot be applied to a draft. - CANNOT_ATTACH_LABEL_TO_DRAFT = 9; - - // Labels not from a manager account cannot be applied to the customer - // resource. - CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER = 10; - } - - -} diff --git a/google/ads/googleads/v8/errors/language_code_error.proto b/google/ads/googleads/v8/errors/language_code_error.proto deleted file mode 100644 index b5899f51e..000000000 --- a/google/ads/googleads/v8/errors/language_code_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "LanguageCodeErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing language code errors. - -// Container for enum describing language code errors. -message LanguageCodeErrorEnum { - // Enum describing language code errors. - enum LanguageCodeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The input language code is not recognized. - LANGUAGE_CODE_NOT_FOUND = 2; - - // The language code is not supported. - INVALID_LANGUAGE_CODE = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/list_operation_error.proto b/google/ads/googleads/v8/errors/list_operation_error.proto deleted file mode 100644 index 79170f1e4..000000000 --- a/google/ads/googleads/v8/errors/list_operation_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ListOperationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing list operation errors. - -// Container for enum describing possible list operation errors. -message ListOperationErrorEnum { - // Enum describing possible list operation errors. - enum ListOperationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Field required in value is missing. - REQUIRED_FIELD_MISSING = 7; - - // Duplicate or identical value is sent in multiple list operations. - DUPLICATE_VALUES = 8; - } - - -} diff --git a/google/ads/googleads/v8/errors/manager_link_error.proto b/google/ads/googleads/v8/errors/manager_link_error.proto deleted file mode 100644 index 3eb8c80ca..000000000 --- a/google/ads/googleads/v8/errors/manager_link_error.proto +++ /dev/null @@ -1,97 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ManagerLinkErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ManagerLink errors. - -// Container for enum describing possible ManagerLink errors. -message ManagerLinkErrorEnum { - // Enum describing possible ManagerLink errors. - enum ManagerLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The manager and client have incompatible account types. - ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING = 2; - - // Client is already linked to too many managers. - TOO_MANY_MANAGERS = 3; - - // Manager has too many pending invitations. - TOO_MANY_INVITES = 4; - - // Client is already invited by this manager. - ALREADY_INVITED_BY_THIS_MANAGER = 5; - - // The client is already managed by this manager. - ALREADY_MANAGED_BY_THIS_MANAGER = 6; - - // Client is already managed in hierarchy. - ALREADY_MANAGED_IN_HIERARCHY = 7; - - // Manager and sub-manager to be linked have duplicate client. - DUPLICATE_CHILD_FOUND = 8; - - // Client has no active user that can access the client account. - CLIENT_HAS_NO_ADMIN_USER = 9; - - // Adding this link would exceed the maximum hierarchy depth. - MAX_DEPTH_EXCEEDED = 10; - - // Adding this link will create a cycle. - CYCLE_NOT_ALLOWED = 11; - - // Manager account has the maximum number of linked clients. - TOO_MANY_ACCOUNTS = 12; - - // Parent manager account has the maximum number of linked clients. - TOO_MANY_ACCOUNTS_AT_MANAGER = 13; - - // The account is not authorized owner. - NON_OWNER_USER_CANNOT_MODIFY_LINK = 14; - - // Your manager account is suspended, and you are no longer allowed to link - // to clients. - SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS = 15; - - // You are not allowed to move a client to a manager that is not under your - // current hierarchy. - CLIENT_OUTSIDE_TREE = 16; - - // The changed status for mutate link is invalid. - INVALID_STATUS_CHANGE = 17; - - // The change for mutate link is invalid. - INVALID_CHANGE = 18; - } - - -} diff --git a/google/ads/googleads/v8/errors/media_bundle_error.proto b/google/ads/googleads/v8/errors/media_bundle_error.proto deleted file mode 100644 index e06cbabb0..000000000 --- a/google/ads/googleads/v8/errors/media_bundle_error.proto +++ /dev/null @@ -1,110 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MediaBundleErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing media bundle errors. - -// Container for enum describing possible media bundle errors. -message MediaBundleErrorEnum { - // Enum describing possible media bundle errors. - enum MediaBundleError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // There was a problem with the request. - BAD_REQUEST = 3; - - // HTML5 ads using DoubleClick Studio created ZIP files are not supported. - DOUBLECLICK_BUNDLE_NOT_ALLOWED = 4; - - // Cannot reference URL external to the media bundle. - EXTERNAL_URL_NOT_ALLOWED = 5; - - // Media bundle file is too large. - FILE_TOO_LARGE = 6; - - // ZIP file from Google Web Designer is not published. - GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 7; - - // Input was invalid. - INVALID_INPUT = 8; - - // There was a problem with the media bundle. - INVALID_MEDIA_BUNDLE = 9; - - // There was a problem with one or more of the media bundle entries. - INVALID_MEDIA_BUNDLE_ENTRY = 10; - - // The media bundle contains a file with an unknown mime type - INVALID_MIME_TYPE = 11; - - // The media bundle contain an invalid asset path. - INVALID_PATH = 12; - - // HTML5 ad is trying to reference an asset not in .ZIP file - INVALID_URL_REFERENCE = 13; - - // Media data is too large. - MEDIA_DATA_TOO_LARGE = 14; - - // The media bundle contains no primary entry. - MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 15; - - // There was an error on the server. - SERVER_ERROR = 16; - - // The image could not be stored. - STORAGE_ERROR = 17; - - // Media bundle created with the Swiffy tool is not allowed. - SWIFFY_BUNDLE_NOT_ALLOWED = 18; - - // The media bundle contains too many files. - TOO_MANY_FILES = 19; - - // The media bundle is not of legal dimensions. - UNEXPECTED_SIZE = 20; - - // Google Web Designer not created for "Google Ads" environment. - UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 21; - - // Unsupported HTML5 feature in HTML5 asset. - UNSUPPORTED_HTML5_FEATURE = 22; - - // URL in HTML5 entry is not ssl compliant. - URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 23; - - // Custom exits not allowed in HTML5 entry. - CUSTOM_EXIT_NOT_ALLOWED = 24; - } - - -} diff --git a/google/ads/googleads/v8/errors/media_file_error.proto b/google/ads/googleads/v8/errors/media_file_error.proto deleted file mode 100644 index ca12c88a1..000000000 --- a/google/ads/googleads/v8/errors/media_file_error.proto +++ /dev/null @@ -1,113 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MediaFileErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing media file errors. - -// Container for enum describing possible media file errors. -message MediaFileErrorEnum { - // Enum describing possible media file errors. - enum MediaFileError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Cannot create a standard icon type. - CANNOT_CREATE_STANDARD_ICON = 2; - - // May only select Standard Icons alone. - CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES = 3; - - // Image contains both a media file ID and data. - CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA = 4; - - // A media file with given type and reference ID already exists. - DUPLICATE_MEDIA = 5; - - // A required field was not specified or is an empty string. - EMPTY_FIELD = 6; - - // A media file may only be modified once per call. - RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 7; - - // Field is not supported for the media sub type. - FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE = 8; - - // The media file ID is invalid. - INVALID_MEDIA_FILE_ID = 9; - - // The media subtype is invalid. - INVALID_MEDIA_SUB_TYPE = 10; - - // The media file type is invalid. - INVALID_MEDIA_FILE_TYPE = 11; - - // The mimetype is invalid. - INVALID_MIME_TYPE = 12; - - // The media reference ID is invalid. - INVALID_REFERENCE_ID = 13; - - // The YouTube video ID is invalid. - INVALID_YOU_TUBE_ID = 14; - - // Media file has failed transcoding - MEDIA_FILE_FAILED_TRANSCODING = 15; - - // Media file has not been transcoded. - MEDIA_NOT_TRANSCODED = 16; - - // The media type does not match the actual media file's type. - MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE = 17; - - // None of the fields have been specified. - NO_FIELDS_SPECIFIED = 18; - - // One of reference ID or media file ID must be specified. - NULL_REFERENCE_ID_AND_MEDIA_ID = 19; - - // The string has too many characters. - TOO_LONG = 20; - - // The specified type is not supported. - UNSUPPORTED_TYPE = 21; - - // YouTube is unavailable for requesting video data. - YOU_TUBE_SERVICE_UNAVAILABLE = 22; - - // The YouTube video has a non positive duration. - YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION = 23; - - // The YouTube video ID is syntactically valid but the video was not found. - YOU_TUBE_VIDEO_NOT_FOUND = 24; - } - - -} diff --git a/google/ads/googleads/v8/errors/media_upload_error.proto b/google/ads/googleads/v8/errors/media_upload_error.proto deleted file mode 100644 index 05092c8b7..000000000 --- a/google/ads/googleads/v8/errors/media_upload_error.proto +++ /dev/null @@ -1,152 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MediaUploadErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing media uploading errors. - -// Container for enum describing possible media uploading errors. -message MediaUploadErrorEnum { - // Enum describing possible media uploading errors. - enum MediaUploadError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The uploaded file is too big. - FILE_TOO_BIG = 2; - - // Image data is unparseable. - UNPARSEABLE_IMAGE = 3; - - // Animated images are not allowed. - ANIMATED_IMAGE_NOT_ALLOWED = 4; - - // The image or media bundle format is not allowed. - FORMAT_NOT_ALLOWED = 5; - - // Cannot reference URL external to the media bundle. - EXTERNAL_URL_NOT_ALLOWED = 6; - - // HTML5 ad is trying to reference an asset not in .ZIP file. - INVALID_URL_REFERENCE = 7; - - // The media bundle contains no primary entry. - MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 8; - - // Animation has disallowed visual effects. - ANIMATED_VISUAL_EFFECT = 9; - - // Animation longer than the allowed 30 second limit. - ANIMATION_TOO_LONG = 10; - - // The aspect ratio of the image does not match the expected aspect ratios - // provided in the asset spec. - ASPECT_RATIO_NOT_ALLOWED = 11; - - // Audio files are not allowed in bundle. - AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 12; - - // CMYK jpegs are not supported. - CMYK_JPEG_NOT_ALLOWED = 13; - - // Flash movies are not allowed. - FLASH_NOT_ALLOWED = 14; - - // The frame rate of the video is higher than the allowed 5fps. - FRAME_RATE_TOO_HIGH = 15; - - // ZIP file from Google Web Designer is not published. - GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 16; - - // Image constraints are violated, but more details (like - // DIMENSIONS_NOT_ALLOWED or ASPECT_RATIO_NOT_ALLOWED) can not be provided. - // This happens when asset spec contains more than one constraint and - // criteria of different constraints are violated. - IMAGE_CONSTRAINTS_VIOLATED = 17; - - // Media bundle data is unrecognizable. - INVALID_MEDIA_BUNDLE = 18; - - // There was a problem with one or more of the media bundle entries. - INVALID_MEDIA_BUNDLE_ENTRY = 19; - - // The asset has an invalid mime type. - INVALID_MIME_TYPE = 20; - - // The media bundle contains an invalid asset path. - INVALID_PATH = 21; - - // Image has layout problem. - LAYOUT_PROBLEM = 22; - - // An asset had a URL reference that is malformed per RFC 1738 convention. - MALFORMED_URL = 23; - - // The uploaded media bundle format is not allowed. - MEDIA_BUNDLE_NOT_ALLOWED = 24; - - // The media bundle is not compatible with the asset spec product type. - // (E.g. Gmail, dynamic remarketing, etc.) - MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE = 25; - - // A bundle being uploaded that is incompatible with multiple assets for - // different reasons. - MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS = 26; - - // The media bundle contains too many files. - TOO_MANY_FILES_IN_MEDIA_BUNDLE = 27; - - // Google Web Designer not created for "Google Ads" environment. - UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 28; - - // Unsupported HTML5 feature in HTML5 asset. - UNSUPPORTED_HTML5_FEATURE = 29; - - // URL in HTML5 entry is not SSL compliant. - URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 30; - - // Video file name is longer than the 50 allowed characters. - VIDEO_FILE_NAME_TOO_LONG = 31; - - // Multiple videos with same name in a bundle. - VIDEO_MULTIPLE_FILES_WITH_SAME_NAME = 32; - - // Videos are not allowed in media bundle. - VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 33; - - // This type of media cannot be uploaded through the Google Ads API. - CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API = 34; - - // The dimensions of the image are not allowed. - DIMENSIONS_NOT_ALLOWED = 35; - } - - -} diff --git a/google/ads/googleads/v8/errors/multiplier_error.proto b/google/ads/googleads/v8/errors/multiplier_error.proto deleted file mode 100644 index 10cdc6203..000000000 --- a/google/ads/googleads/v8/errors/multiplier_error.proto +++ /dev/null @@ -1,81 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MultiplierErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing multiplier errors. - -// Container for enum describing possible multiplier errors. -message MultiplierErrorEnum { - // Enum describing possible multiplier errors. - enum MultiplierError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Multiplier value is too high - MULTIPLIER_TOO_HIGH = 2; - - // Multiplier value is too low - MULTIPLIER_TOO_LOW = 3; - - // Too many fractional digits - TOO_MANY_FRACTIONAL_DIGITS = 4; - - // A multiplier cannot be set for this bidding strategy - MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY = 5; - - // A multiplier cannot be set when there is no base bid (e.g., content max - // cpc) - MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING = 6; - - // A bid multiplier must be specified - NO_MULTIPLIER_SPECIFIED = 7; - - // Multiplier causes bid to exceed daily budget - MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET = 8; - - // Multiplier causes bid to exceed monthly budget - MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET = 9; - - // Multiplier causes bid to exceed custom budget - MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET = 10; - - // Multiplier causes bid to exceed maximum allowed bid - MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID = 11; - - // Multiplier causes bid to become less than the minimum bid allowed - BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER = 12; - - // Multiplier type (cpc vs. cpm) needs to match campaign's bidding strategy - MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH = 13; - } - - -} diff --git a/google/ads/googleads/v8/errors/mutate_error.proto b/google/ads/googleads/v8/errors/mutate_error.proto deleted file mode 100644 index faa8f10fe..000000000 --- a/google/ads/googleads/v8/errors/mutate_error.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "MutateErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing mutate errors. - -// Container for enum describing possible mutate errors. -message MutateErrorEnum { - // Enum describing possible mutate errors. - enum MutateError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Requested resource was not found. - RESOURCE_NOT_FOUND = 3; - - // Cannot mutate the same resource twice in one request. - ID_EXISTS_IN_MULTIPLE_MUTATES = 7; - - // The field's contents don't match another field that represents the same - // data. - INCONSISTENT_FIELD_VALUES = 8; - - // Mutates are not allowed for the requested resource. - MUTATE_NOT_ALLOWED = 9; - - // The resource isn't in Google Ads. It belongs to another ads system. - RESOURCE_NOT_IN_GOOGLE_ADS = 10; - - // The resource being created already exists. - RESOURCE_ALREADY_EXISTS = 11; - - // This resource cannot be used with "validate_only". - RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY = 12; - - // Attempt to write to read-only fields. - RESOURCE_READ_ONLY = 13; - } - - -} diff --git a/google/ads/googleads/v8/errors/new_resource_creation_error.proto b/google/ads/googleads/v8/errors/new_resource_creation_error.proto deleted file mode 100644 index 3e2a6ce56..000000000 --- a/google/ads/googleads/v8/errors/new_resource_creation_error.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "NewResourceCreationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing new resource creation errors. - -// Container for enum describing possible new resource creation errors. -message NewResourceCreationErrorEnum { - // Enum describing possible new resource creation errors. - enum NewResourceCreationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Do not set the id field while creating new resources. - CANNOT_SET_ID_FOR_CREATE = 2; - - // Creating more than one resource with the same temp ID is not allowed. - DUPLICATE_TEMP_IDS = 3; - - // Parent resource with specified temp ID failed validation, so no - // validation will be done for this child resource. - TEMP_ID_RESOURCE_HAD_ERRORS = 4; - } - - -} diff --git a/google/ads/googleads/v8/errors/not_allowlisted_error.proto b/google/ads/googleads/v8/errors/not_allowlisted_error.proto deleted file mode 100644 index 222882ae5..000000000 --- a/google/ads/googleads/v8/errors/not_allowlisted_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "NotAllowlistedErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing not allowlisted errors. - -// Container for enum describing possible not allowlisted errors. -message NotAllowlistedErrorEnum { - // Enum describing possible not allowlisted errors. - enum NotAllowlistedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Customer is not allowlisted for accessing this feature. - CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/not_empty_error.proto b/google/ads/googleads/v8/errors/not_empty_error.proto deleted file mode 100644 index 902878247..000000000 --- a/google/ads/googleads/v8/errors/not_empty_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "NotEmptyErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing not empty errors. - -// Container for enum describing possible not empty errors. -message NotEmptyErrorEnum { - // Enum describing possible not empty errors. - enum NotEmptyError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Empty list. - EMPTY_LIST = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/null_error.proto b/google/ads/googleads/v8/errors/null_error.proto deleted file mode 100644 index 6e0e8239f..000000000 --- a/google/ads/googleads/v8/errors/null_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "NullErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing null errors. - -// Container for enum describing possible null errors. -message NullErrorEnum { - // Enum describing possible null errors. - enum NullError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Specified list/container must not contain any null elements - NULL_CONTENT = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/offline_user_data_job_error.proto b/google/ads/googleads/v8/errors/offline_user_data_job_error.proto deleted file mode 100644 index e81134867..000000000 --- a/google/ads/googleads/v8/errors/offline_user_data_job_error.proto +++ /dev/null @@ -1,152 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing offline user data job errors. - -// Container for enum describing possible offline user data job errors. -message OfflineUserDataJobErrorEnum { - // Enum describing possible request errors. - enum OfflineUserDataJobError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The user list ID provided for the job is invalid. - INVALID_USER_LIST_ID = 3; - - // Type of the user list is not applicable for the job. - INVALID_USER_LIST_TYPE = 4; - - // Customer is not allowisted for using user ID in upload data. - NOT_ON_ALLOWLIST_FOR_USER_ID = 33; - - // Upload data is not compatible with the upload key type of the associated - // user list. - INCOMPATIBLE_UPLOAD_KEY_TYPE = 6; - - // The user identifier is missing valid data. - MISSING_USER_IDENTIFIER = 7; - - // The mobile ID is malformed. - INVALID_MOBILE_ID_FORMAT = 8; - - // Maximum number of user identifiers allowed per request is 100,000. - TOO_MANY_USER_IDENTIFIERS = 9; - - // Customer is not on the allow-list for store sales direct data. - NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT = 31; - - // Customer is not on the allow-list for unified store sales data. - NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES = 32; - - // The partner ID in store sales direct metadata is invalid. - INVALID_PARTNER_ID = 11; - - // The data in user identifier should not be encoded. - INVALID_ENCODING = 12; - - // The country code is invalid. - INVALID_COUNTRY_CODE = 13; - - // Incompatible user identifier when using third_party_user_id for store - // sales direct first party data or not using third_party_user_id for store - // sales third party data. - INCOMPATIBLE_USER_IDENTIFIER = 14; - - // A transaction time in the future is not allowed. - FUTURE_TRANSACTION_TIME = 15; - - // The conversion_action specified in transaction_attributes is used to - // report conversions to a conversion action configured in Google Ads. This - // error indicates there is no such conversion action in the account. - INVALID_CONVERSION_ACTION = 16; - - // Mobile ID is not supported for store sales direct data. - MOBILE_ID_NOT_SUPPORTED = 17; - - // When a remove-all operation is provided, it has to be the first operation - // of the operation list. - INVALID_OPERATION_ORDER = 18; - - // Mixing creation and removal of offline data in the same job is not - // allowed. - CONFLICTING_OPERATION = 19; - - // The external update ID already exists. - EXTERNAL_UPDATE_ID_ALREADY_EXISTS = 21; - - // Once the upload job is started, new operations cannot be added. - JOB_ALREADY_STARTED = 22; - - // Remove operation is not allowed for store sales direct updates. - REMOVE_NOT_SUPPORTED = 23; - - // Remove-all is not supported for certain offline user data job types. - REMOVE_ALL_NOT_SUPPORTED = 24; - - // The SHA256 encoded value is malformed. - INVALID_SHA256_FORMAT = 25; - - // The custom key specified is not enabled for the unified store sales - // upload. - CUSTOM_KEY_DISABLED = 26; - - // The custom key specified is not predefined through the Google Ads UI. - CUSTOM_KEY_NOT_PREDEFINED = 27; - - // The custom key specified is not set in the upload. - CUSTOM_KEY_NOT_SET = 29; - - // The customer has not accepted the customer data terms in the conversion - // settings page. - CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 30; - - // User attributes cannot be uploaded into a user list. - ATTRIBUTES_NOT_APPLICABLE_FOR_CUSTOMER_MATCH_USER_LIST = 34; - - // Lifetime value bucket must be a number from 1-10, except for remove - // operation where 0 will be accepted. - LIFETIME_VALUE_BUCKET_NOT_IN_RANGE = 35; - - // Identifiers not supported for Customer Match attributes. User attributes - // can only be provided with contact info (email, phone, address) user - // identifiers. - INCOMPATIBLE_USER_IDENTIFIER_FOR_ATTRIBUTES = 36; - - // A time in the future is not allowed. - FUTURE_TIME_NOT_ALLOWED = 37; - - // Last purchase date time cannot be less than acquisition date time. - LAST_PURCHASE_TIME_LESS_THAN_ACQUISITION_TIME = 38; - } - - -} diff --git a/google/ads/googleads/v8/errors/operation_access_denied_error.proto b/google/ads/googleads/v8/errors/operation_access_denied_error.proto deleted file mode 100644 index d05a83c56..000000000 --- a/google/ads/googleads/v8/errors/operation_access_denied_error.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "OperationAccessDeniedErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing operation access denied errors. - -// Container for enum describing possible operation access denied errors. -message OperationAccessDeniedErrorEnum { - // Enum describing possible operation access denied errors. - enum OperationAccessDeniedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Unauthorized invocation of a service's method (get, mutate, etc.) - ACTION_NOT_PERMITTED = 2; - - // Unauthorized CREATE operation in invoking a service's mutate method. - CREATE_OPERATION_NOT_PERMITTED = 3; - - // Unauthorized REMOVE operation in invoking a service's mutate method. - REMOVE_OPERATION_NOT_PERMITTED = 4; - - // Unauthorized UPDATE operation in invoking a service's mutate method. - UPDATE_OPERATION_NOT_PERMITTED = 5; - - // A mutate action is not allowed on this resource, from this client. - MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT = 6; - - // This operation is not permitted on this campaign type - OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE = 7; - - // A CREATE operation may not set status to REMOVED. - CREATE_AS_REMOVED_NOT_PERMITTED = 8; - - // This operation is not allowed because the resource is removed. - OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 9; - - // This operation is not permitted on this ad group type. - OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE = 10; - - // The mutate is not allowed for this customer. - MUTATE_NOT_PERMITTED_FOR_CUSTOMER = 11; - } - - -} diff --git a/google/ads/googleads/v8/errors/operator_error.proto b/google/ads/googleads/v8/errors/operator_error.proto deleted file mode 100644 index 15a266352..000000000 --- a/google/ads/googleads/v8/errors/operator_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "OperatorErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing operator errors. - -// Container for enum describing possible operator errors. -message OperatorErrorEnum { - // Enum describing possible operator errors. - enum OperatorError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Operator not supported. - OPERATOR_NOT_SUPPORTED = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/partial_failure_error.proto b/google/ads/googleads/v8/errors/partial_failure_error.proto deleted file mode 100644 index 316c95f18..000000000 --- a/google/ads/googleads/v8/errors/partial_failure_error.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PartialFailureErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing partial failure errors. - -// Container for enum describing possible partial failure errors. -message PartialFailureErrorEnum { - // Enum describing possible partial failure errors. - enum PartialFailureError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The partial failure field was false in the request. - // This method requires this field be set to true. - PARTIAL_FAILURE_MODE_REQUIRED = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/payments_account_error.proto b/google/ads/googleads/v8/errors/payments_account_error.proto deleted file mode 100644 index 824203270..000000000 --- a/google/ads/googleads/v8/errors/payments_account_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PaymentsAccountErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing payments account service errors. - -// Container for enum describing possible errors in payments account service. -message PaymentsAccountErrorEnum { - // Enum describing possible errors in payments account service. - enum PaymentsAccountError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Manager customers are not supported for payments account service. - NOT_SUPPORTED_FOR_MANAGER_CUSTOMER = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/policy_finding_error.proto b/google/ads/googleads/v8/errors/policy_finding_error.proto deleted file mode 100644 index f28a9c46e..000000000 --- a/google/ads/googleads/v8/errors/policy_finding_error.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PolicyFindingErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing policy finding errors. - -// Container for enum describing possible policy finding errors. -message PolicyFindingErrorEnum { - // Enum describing possible policy finding errors. - enum PolicyFindingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The resource has been disapproved since the policy summary includes - // policy topics of type PROHIBITED. - POLICY_FINDING = 2; - - // The given policy topic does not exist. - POLICY_TOPIC_NOT_FOUND = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/policy_validation_parameter_error.proto b/google/ads/googleads/v8/errors/policy_validation_parameter_error.proto deleted file mode 100644 index a71eac51d..000000000 --- a/google/ads/googleads/v8/errors/policy_validation_parameter_error.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PolicyValidationParameterErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing policy validation parameter errors. - -// Container for enum describing possible policy validation parameter errors. -message PolicyValidationParameterErrorEnum { - // Enum describing possible policy validation parameter errors. - enum PolicyValidationParameterError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Ignorable policy topics are not supported for the ad type. - UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS = 2; - - // Exempt policy violation keys are not supported for the ad type. - UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS = 3; - - // Cannot set ignorable policy topics and exempt policy violation keys in - // the same policy violation parameter. - CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS = 4; - } - - -} diff --git a/google/ads/googleads/v8/errors/policy_violation_error.proto b/google/ads/googleads/v8/errors/policy_violation_error.proto deleted file mode 100644 index a3c540100..000000000 --- a/google/ads/googleads/v8/errors/policy_violation_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "PolicyViolationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing policy violation errors. - -// Container for enum describing possible policy violation errors. -message PolicyViolationErrorEnum { - // Enum describing possible policy violation errors. - enum PolicyViolationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // A policy was violated. See PolicyViolationDetails for more detail. - POLICY_ERROR = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/query_error.proto b/google/ads/googleads/v8/errors/query_error.proto deleted file mode 100644 index 48e1c9389..000000000 --- a/google/ads/googleads/v8/errors/query_error.proto +++ /dev/null @@ -1,222 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "QueryErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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 (i.e. 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; - - // Value passed was not a string when it should have been. I.e., 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; - - // An invalid 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/google/ads/googleads/v8/errors/quota_error.proto b/google/ads/googleads/v8/errors/quota_error.proto deleted file mode 100644 index 3749277db..000000000 --- a/google/ads/googleads/v8/errors/quota_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "QuotaErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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; - - // Access is prohibited. - ACCESS_PROHIBITED = 3; - - // Too many requests in a short amount of time. - RESOURCE_TEMPORARILY_EXHAUSTED = 4; - } - - -} diff --git a/google/ads/googleads/v8/errors/range_error.proto b/google/ads/googleads/v8/errors/range_error.proto deleted file mode 100644 index 0a9ef94de..000000000 --- a/google/ads/googleads/v8/errors/range_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RangeErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing range errors. - -// Container for enum describing possible range errors. -message RangeErrorEnum { - // Enum describing possible range errors. - enum RangeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Too low. - TOO_LOW = 2; - - // Too high. - TOO_HIGH = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/reach_plan_error.proto b/google/ads/googleads/v8/errors/reach_plan_error.proto deleted file mode 100644 index 95d451859..000000000 --- a/google/ads/googleads/v8/errors/reach_plan_error.proto +++ /dev/null @@ -1,48 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing errors generated from ReachPlanService. - -// Container for enum describing possible errors returned from -// the ReachPlanService. -message ReachPlanErrorEnum { - // Enum describing possible errors from ReachPlanService. - enum ReachPlanError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Not forecastable due to missing rate card data. - NOT_FORECASTABLE_MISSING_RATE = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/recommendation_error.proto b/google/ads/googleads/v8/errors/recommendation_error.proto deleted file mode 100644 index 79f5b3fcf..000000000 --- a/google/ads/googleads/v8/errors/recommendation_error.proto +++ /dev/null @@ -1,90 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing errors from applying a recommendation. - -// Container for enum describing possible errors from applying a recommendation. -message RecommendationErrorEnum { - // Enum describing possible errors from applying a recommendation. - enum RecommendationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The specified budget amount is too low e.g. lower than minimum currency - // unit or lower than ad group minimum cost-per-click. - BUDGET_AMOUNT_TOO_SMALL = 2; - - // The specified budget amount is too large. - BUDGET_AMOUNT_TOO_LARGE = 3; - - // The specified budget amount is not a valid amount. e.g. not a multiple - // of minimum currency unit. - INVALID_BUDGET_AMOUNT = 4; - - // The specified keyword or ad violates ad policy. - POLICY_ERROR = 5; - - // The specified bid amount is not valid. e.g. too many fractional digits, - // or negative amount. - INVALID_BID_AMOUNT = 6; - - // The number of keywords in ad group have reached the maximum allowed. - ADGROUP_KEYWORD_LIMIT = 7; - - // The recommendation requested to apply has already been applied. - RECOMMENDATION_ALREADY_APPLIED = 8; - - // The recommendation requested to apply has been invalidated. - RECOMMENDATION_INVALIDATED = 9; - - // The number of operations in a single request exceeds the maximum allowed. - TOO_MANY_OPERATIONS = 10; - - // There are no operations in the request. - NO_OPERATIONS = 11; - - // Operations with multiple recommendation types are not supported when - // partial failure mode is not enabled. - DIFFERENT_TYPES_NOT_SUPPORTED = 12; - - // Request contains multiple operations with the same resource_name. - DUPLICATE_RESOURCE_NAME = 13; - - // The recommendation requested to dismiss has already been dismissed. - RECOMMENDATION_ALREADY_DISMISSED = 14; - - // The recommendation apply request was malformed and invalid. - INVALID_APPLY_REQUEST = 15; - } - - -} diff --git a/google/ads/googleads/v8/errors/region_code_error.proto b/google/ads/googleads/v8/errors/region_code_error.proto deleted file mode 100644 index 90c417cf5..000000000 --- a/google/ads/googleads/v8/errors/region_code_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RegionCodeErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing region code errors. - -// Container for enum describing possible region code errors. -message RegionCodeErrorEnum { - // Enum describing possible region code errors. - enum RegionCodeError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Invalid region code. - INVALID_REGION_CODE = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/request_error.proto b/google/ads/googleads/v8/errors/request_error.proto deleted file mode 100644 index b0e52db71..000000000 --- a/google/ads/googleads/v8/errors/request_error.proto +++ /dev/null @@ -1,119 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RequestErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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; - - // 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 developer-token parameter is required for all requests. - DEVELOPER_TOKEN_PARAMETER_MISSING = 19; - - // The login-customer-id parameter is required for this request. - LOGIN_CUSTOMER_ID_PARAMETER_MISSING = 20; - - // 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; - } - - -} diff --git a/google/ads/googleads/v8/errors/resource_access_denied_error.proto b/google/ads/googleads/v8/errors/resource_access_denied_error.proto deleted file mode 100644 index 403de84d1..000000000 --- a/google/ads/googleads/v8/errors/resource_access_denied_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ResourceAccessDeniedErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing resource access denied errors. - -// Container for enum describing possible resource access denied errors. -message ResourceAccessDeniedErrorEnum { - // Enum describing possible resource access denied errors. - enum ResourceAccessDeniedError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // User did not have write access. - WRITE_ACCESS_DENIED = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/resource_count_limit_exceeded_error.proto b/google/ads/googleads/v8/errors/resource_count_limit_exceeded_error.proto deleted file mode 100644 index d737bc69c..000000000 --- a/google/ads/googleads/v8/errors/resource_count_limit_exceeded_error.proto +++ /dev/null @@ -1,93 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ResourceCountLimitExceededErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing resource count limit exceeded errors. - -// Container for enum describing possible resource count limit exceeded errors. -message ResourceCountLimitExceededErrorEnum { - // Enum describing possible resource count limit exceeded errors. - enum ResourceCountLimitExceededError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Indicates that this request would exceed the number of allowed resources - // for the Google Ads account. The exact resource type and limit being - // checked can be inferred from accountLimitType. - ACCOUNT_LIMIT = 2; - - // Indicates that this request would exceed the number of allowed resources - // in a Campaign. The exact resource type and limit being checked can be - // inferred from accountLimitType, and the numeric id of the - // Campaign involved is given by enclosingId. - CAMPAIGN_LIMIT = 3; - - // Indicates that this request would exceed the number of allowed resources - // in an ad group. The exact resource type and limit being checked can be - // inferred from accountLimitType, and the numeric id of the - // ad group involved is given by enclosingId. - ADGROUP_LIMIT = 4; - - // Indicates that this request would exceed the number of allowed resources - // in an ad group ad. The exact resource type and limit being checked can - // be inferred from accountLimitType, and the enclosingId - // contains the ad group id followed by the ad id, separated by a single - // comma (,). - AD_GROUP_AD_LIMIT = 5; - - // Indicates that this request would exceed the number of allowed resources - // in an ad group criterion. The exact resource type and limit being checked - // can be inferred from accountLimitType, and the - // enclosingId contains the ad group id followed by the - // criterion id, separated by a single comma (,). - AD_GROUP_CRITERION_LIMIT = 6; - - // Indicates that this request would exceed the number of allowed resources - // in this shared set. The exact resource type and limit being checked can - // be inferred from accountLimitType, and the numeric id of the - // shared set involved is given by enclosingId. - SHARED_SET_LIMIT = 7; - - // Exceeds a limit related to a matching function. - MATCHING_FUNCTION_LIMIT = 8; - - // The response for this request would exceed the maximum number of rows - // that can be returned. - RESPONSE_ROW_LIMIT_EXCEEDED = 9; - - // This request would exceed a limit on the number of allowed resources. - // The details of which type of limit was exceeded will eventually be - // returned in ErrorDetails. - RESOURCE_LIMIT = 10; - } - - -} diff --git a/google/ads/googleads/v8/errors/setting_error.proto b/google/ads/googleads/v8/errors/setting_error.proto deleted file mode 100644 index 7d3290a72..000000000 --- a/google/ads/googleads/v8/errors/setting_error.proto +++ /dev/null @@ -1,85 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "SettingErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing setting errors. - -// Container for enum describing possible setting errors. -message SettingErrorEnum { - // Enum describing possible setting errors. - enum SettingError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The campaign setting is not available for this Google Ads account. - SETTING_TYPE_IS_NOT_AVAILABLE = 3; - - // The setting is not compatible with the campaign. - SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN = 4; - - // The supplied TargetingSetting contains an invalid CriterionTypeGroup. See - // CriterionTypeGroup documentation for CriterionTypeGroups allowed - // in Campaign or AdGroup TargetingSettings. - TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP = 5; - - // TargetingSetting must not explicitly - // set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, - // PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in - // which case the system will set them to true automatically). - TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL = 6; - - // TargetingSetting cannot change any of - // the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, - // INCOME_RANGE) from true to false. - TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP = 7; - - // At least one feed id should be present. - DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT = 8; - - // The supplied DynamicSearchAdsSetting contains an invalid domain name. - DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME = 9; - - // The supplied DynamicSearchAdsSetting contains a subdomain name. - DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME = 10; - - // The supplied DynamicSearchAdsSetting contains an invalid language code. - DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE = 11; - - // TargetingSettings in search campaigns should not have - // CriterionTypeGroup.PLACEMENT set to targetAll. - TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN = 12; - - // The setting value is not compatible with the campaign type. - SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN = 20; - } - - -} diff --git a/google/ads/googleads/v8/errors/shared_criterion_error.proto b/google/ads/googleads/v8/errors/shared_criterion_error.proto deleted file mode 100644 index fd9196517..000000000 --- a/google/ads/googleads/v8/errors/shared_criterion_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "SharedCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing shared criterion errors. - -// Container for enum describing possible shared criterion errors. -message SharedCriterionErrorEnum { - // Enum describing possible shared criterion errors. - enum SharedCriterionError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The criterion is not appropriate for the shared set type. - CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE = 2; - } - - -} diff --git a/google/ads/googleads/v8/errors/shared_set_error.proto b/google/ads/googleads/v8/errors/shared_set_error.proto deleted file mode 100644 index 741806d01..000000000 --- a/google/ads/googleads/v8/errors/shared_set_error.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing shared set errors. - -// Container for enum describing possible shared set errors. -message SharedSetErrorEnum { - // Enum describing possible shared set errors. - enum SharedSetError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The customer cannot create this type of shared set. - CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE = 2; - - // A shared set with this name already exists. - DUPLICATE_NAME = 3; - - // Removed shared sets cannot be mutated. - SHARED_SET_REMOVED = 4; - - // The shared set cannot be removed because it is in use. - SHARED_SET_IN_USE = 5; - } - - -} diff --git a/google/ads/googleads/v8/errors/size_limit_error.proto b/google/ads/googleads/v8/errors/size_limit_error.proto deleted file mode 100644 index f604f49d2..000000000 --- a/google/ads/googleads/v8/errors/size_limit_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "SizeLimitErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::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. - REQUEST_SIZE_LIMIT_EXCEEDED = 2; - - // The number of entries in the response exceeds the system limit. - RESPONSE_SIZE_LIMIT_EXCEEDED = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/string_format_error.proto b/google/ads/googleads/v8/errors/string_format_error.proto deleted file mode 100644 index ef958095d..000000000 --- a/google/ads/googleads/v8/errors/string_format_error.proto +++ /dev/null @@ -1,50 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "StringFormatErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing string format errors. - -// Container for enum describing possible string format errors. -message StringFormatErrorEnum { - // Enum describing possible string format errors. - enum StringFormatError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The input string value contains disallowed characters. - ILLEGAL_CHARS = 2; - - // The input string value is invalid for the associated field. - INVALID_FORMAT = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/string_length_error.proto b/google/ads/googleads/v8/errors/string_length_error.proto deleted file mode 100644 index 3c3943824..000000000 --- a/google/ads/googleads/v8/errors/string_length_error.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "StringLengthErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing string length errors. - -// Container for enum describing possible string length errors. -message StringLengthErrorEnum { - // Enum describing possible string length errors. - enum StringLengthError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The specified field should have a least one non-whitespace character in - // it. - EMPTY = 4; - - // Too short. - TOO_SHORT = 2; - - // Too long. - TOO_LONG = 3; - } - - -} diff --git a/google/ads/googleads/v8/errors/third_party_app_analytics_link_error.proto b/google/ads/googleads/v8/errors/third_party_app_analytics_link_error.proto deleted file mode 100644 index bb113c656..000000000 --- a/google/ads/googleads/v8/errors/third_party_app_analytics_link_error.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "ThirdPartyAppAnalyticsLinkErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing ThirdPartyAppAnalyticsLink errors. - -// Container for enum describing possible third party app analytics link errors. -message ThirdPartyAppAnalyticsLinkErrorEnum { - // Enum describing possible third party app analytics link errors. - enum ThirdPartyAppAnalyticsLinkError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The provided analytics provider ID is invalid. - INVALID_ANALYTICS_PROVIDER_ID = 2; - - // The provided mobile app ID is invalid. - INVALID_MOBILE_APP_ID = 3; - - // The mobile app corresponding to the provided app ID is not - // active/enabled. - MOBILE_APP_IS_NOT_ENABLED = 4; - - // Regenerating shareable link ID is only allowed on active links - CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK = 5; - } - - -} diff --git a/google/ads/googleads/v8/errors/time_zone_error.proto b/google/ads/googleads/v8/errors/time_zone_error.proto deleted file mode 100644 index e8ea6edbc..000000000 --- a/google/ads/googleads/v8/errors/time_zone_error.proto +++ /dev/null @@ -1,47 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "TimeZoneErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing time zone errors. - -// Container for enum describing possible time zone errors. -message TimeZoneErrorEnum { - // Enum describing possible currency code errors. - enum TimeZoneError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Time zone is not valid. - INVALID_TIME_ZONE = 5; - } - - -} diff --git a/google/ads/googleads/v8/errors/url_field_error.proto b/google/ads/googleads/v8/errors/url_field_error.proto deleted file mode 100644 index 21dc5ef37..000000000 --- a/google/ads/googleads/v8/errors/url_field_error.proto +++ /dev/null @@ -1,214 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "UrlFieldErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing url field errors. - -// Container for enum describing possible url field errors. -message UrlFieldErrorEnum { - // Enum describing possible url field errors. - enum UrlFieldError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // The tracking url template is invalid. - INVALID_TRACKING_URL_TEMPLATE = 2; - - // The tracking url template contains invalid tag. - INVALID_TAG_IN_TRACKING_URL_TEMPLATE = 3; - - // The tracking url template must contain at least one tag (e.g. {lpurl}), - // This applies only to tracking url template associated with website ads or - // product ads. - MISSING_TRACKING_URL_TEMPLATE_TAG = 4; - - // The tracking url template must start with a valid protocol (or lpurl - // tag). - MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 5; - - // The tracking url template starts with an invalid protocol. - INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 6; - - // The tracking url template contains illegal characters. - MALFORMED_TRACKING_URL_TEMPLATE = 7; - - // The tracking url template must contain a host name (or lpurl tag). - MISSING_HOST_IN_TRACKING_URL_TEMPLATE = 8; - - // The tracking url template has an invalid or missing top level domain - // extension. - INVALID_TLD_IN_TRACKING_URL_TEMPLATE = 9; - - // The tracking url template contains nested occurrences of the same - // conditional tag (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG = 10; - - // The final url is invalid. - INVALID_FINAL_URL = 11; - - // The final url contains invalid tag. - INVALID_TAG_IN_FINAL_URL = 12; - - // The final url contains nested occurrences of the same conditional tag - // (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_FINAL_URL_TAG = 13; - - // The final url must start with a valid protocol. - MISSING_PROTOCOL_IN_FINAL_URL = 14; - - // The final url starts with an invalid protocol. - INVALID_PROTOCOL_IN_FINAL_URL = 15; - - // The final url contains illegal characters. - MALFORMED_FINAL_URL = 16; - - // The final url must contain a host name. - MISSING_HOST_IN_FINAL_URL = 17; - - // The tracking url template has an invalid or missing top level domain - // extension. - INVALID_TLD_IN_FINAL_URL = 18; - - // The final mobile url is invalid. - INVALID_FINAL_MOBILE_URL = 19; - - // The final mobile url contains invalid tag. - INVALID_TAG_IN_FINAL_MOBILE_URL = 20; - - // The final mobile url contains nested occurrences of the same conditional - // tag (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG = 21; - - // The final mobile url must start with a valid protocol. - MISSING_PROTOCOL_IN_FINAL_MOBILE_URL = 22; - - // The final mobile url starts with an invalid protocol. - INVALID_PROTOCOL_IN_FINAL_MOBILE_URL = 23; - - // The final mobile url contains illegal characters. - MALFORMED_FINAL_MOBILE_URL = 24; - - // The final mobile url must contain a host name. - MISSING_HOST_IN_FINAL_MOBILE_URL = 25; - - // The tracking url template has an invalid or missing top level domain - // extension. - INVALID_TLD_IN_FINAL_MOBILE_URL = 26; - - // The final app url is invalid. - INVALID_FINAL_APP_URL = 27; - - // The final app url contains invalid tag. - INVALID_TAG_IN_FINAL_APP_URL = 28; - - // The final app url contains nested occurrences of the same conditional tag - // (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_FINAL_APP_URL_TAG = 29; - - // More than one app url found for the same OS type. - MULTIPLE_APP_URLS_FOR_OSTYPE = 30; - - // The OS type given for an app url is not valid. - INVALID_OSTYPE = 31; - - // The protocol given for an app url is not valid. (E.g. "android-app://") - INVALID_PROTOCOL_FOR_APP_URL = 32; - - // The package id (app id) given for an app url is not valid. - INVALID_PACKAGE_ID_FOR_APP_URL = 33; - - // The number of url custom parameters for an resource exceeds the maximum - // limit allowed. - URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT = 34; - - // An invalid character appears in the parameter key. - INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY = 39; - - // An invalid character appears in the parameter value. - INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE = 40; - - // The url custom parameter value fails url tag validation. - INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE = 41; - - // The custom parameter contains nested occurrences of the same conditional - // tag (i.e. {ifmobile:{ifmobile:x}}). - REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG = 42; - - // The protocol (http:// or https://) is missing. - MISSING_PROTOCOL = 43; - - // Unsupported protocol in URL. Only http and https are supported. - INVALID_PROTOCOL = 52; - - // The url is invalid. - INVALID_URL = 44; - - // Destination Url is deprecated. - DESTINATION_URL_DEPRECATED = 45; - - // The url contains invalid tag. - INVALID_TAG_IN_URL = 46; - - // The url must contain at least one tag (e.g. {lpurl}). - MISSING_URL_TAG = 47; - - // Duplicate url id. - DUPLICATE_URL_ID = 48; - - // Invalid url id. - INVALID_URL_ID = 49; - - // The final url suffix cannot begin with '?' or '&' characters and must be - // a valid query string. - FINAL_URL_SUFFIX_MALFORMED = 50; - - // The final url suffix cannot contain {lpurl} related or {ignore} tags. - INVALID_TAG_IN_FINAL_URL_SUFFIX = 51; - - // The top level domain is invalid, e.g. not a public top level domain - // listed in publicsuffix.org. - INVALID_TOP_LEVEL_DOMAIN = 53; - - // Malformed top level domain in URL. - MALFORMED_TOP_LEVEL_DOMAIN = 54; - - // Malformed URL. - MALFORMED_URL = 55; - - // No host found in URL. - MISSING_HOST = 56; - - // Custom parameter value cannot be null. - NULL_CUSTOM_PARAMETER_VALUE = 57; - } - - -} diff --git a/google/ads/googleads/v8/errors/user_data_error.proto b/google/ads/googleads/v8/errors/user_data_error.proto deleted file mode 100644 index b6a2a1f5b..000000000 --- a/google/ads/googleads/v8/errors/user_data_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "UserDataErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing user data errors. - -// Container for enum describing possible user data errors. -message UserDataErrorEnum { - // Enum describing possible request errors. - enum UserDataError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Customer is not allowed to perform operations related to Customer Match. - OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED = 2; - - // Maximum number of user identifiers allowed for each mutate is 100. - TOO_MANY_USER_IDENTIFIERS = 3; - - // Current user list is not applicable for the given customer. - USER_LIST_NOT_APPLICABLE = 4; - } - - -} diff --git a/google/ads/googleads/v8/errors/user_list_error.proto b/google/ads/googleads/v8/errors/user_list_error.proto deleted file mode 100644 index d1fae2abf..000000000 --- a/google/ads/googleads/v8/errors/user_list_error.proto +++ /dev/null @@ -1,129 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "UserListErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing user list errors. - -// Container for enum describing possible user list errors. -message UserListErrorEnum { - // Enum describing possible user list errors. - enum UserListError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Creating and updating external remarketing user lists is not supported. - EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED = 2; - - // Concrete type of user list is required. - CONCRETE_TYPE_REQUIRED = 3; - - // Creating/updating user list conversion types requires specifying the - // conversion type Id. - CONVERSION_TYPE_ID_REQUIRED = 4; - - // Remarketing user list cannot have duplicate conversion types. - DUPLICATE_CONVERSION_TYPES = 5; - - // Conversion type is invalid/unknown. - INVALID_CONVERSION_TYPE = 6; - - // User list description is empty or invalid. - INVALID_DESCRIPTION = 7; - - // User list name is empty or invalid. - INVALID_NAME = 8; - - // Type of the UserList does not match. - INVALID_TYPE = 9; - - // Embedded logical user lists are not allowed. - CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND = 10; - - // User list rule operand is invalid. - INVALID_USER_LIST_LOGICAL_RULE_OPERAND = 11; - - // Name is already being used for another user list for the account. - NAME_ALREADY_USED = 12; - - // Name is required when creating a new conversion type. - NEW_CONVERSION_TYPE_NAME_REQUIRED = 13; - - // The given conversion type name has been used. - CONVERSION_TYPE_NAME_ALREADY_USED = 14; - - // Only an owner account may edit a user list. - OWNERSHIP_REQUIRED_FOR_SET = 15; - - // Creating user list without setting type in oneof user_list field, or - // creating/updating read-only user list types is not allowed. - USER_LIST_MUTATE_NOT_SUPPORTED = 16; - - // Rule is invalid. - INVALID_RULE = 17; - - // The specified date range is empty. - INVALID_DATE_RANGE = 27; - - // A UserList which is privacy sensitive or legal rejected cannot be mutated - // by external users. - CAN_NOT_MUTATE_SENSITIVE_USERLIST = 28; - - // Maximum number of rulebased user lists a customer can have. - MAX_NUM_RULEBASED_USERLISTS = 29; - - // BasicUserList's billable record field cannot be modified once it is set. - CANNOT_MODIFY_BILLABLE_RECORD_COUNT = 30; - - // crm_based_user_list.app_id field must be set when upload_key_type is - // MOBILE_ADVERTISING_ID. - APP_ID_NOT_SET = 31; - - // Name of the user list is reserved for system generated lists and cannot - // be used. - USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST = 32; - - // Advertiser needs to be on the allow-list to use remarketing lists created - // from advertiser uploaded data (e.g., Customer Match lists). - ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA = 37; - - // The provided rule_type is not supported for the user list. - RULE_TYPE_IS_NOT_SUPPORTED = 34; - - // Similar user list cannot be used as a logical user list operand. - CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND = 35; - - // Logical user list should not have a mix of CRM based user list and other - // types of lists in its rules. - CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS = 36; - } - - -} diff --git a/google/ads/googleads/v8/errors/youtube_video_registration_error.proto b/google/ads/googleads/v8/errors/youtube_video_registration_error.proto deleted file mode 100644 index d63775fe7..000000000 --- a/google/ads/googleads/v8/errors/youtube_video_registration_error.proto +++ /dev/null @@ -1,53 +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 google.ads.googleads.v8.errors; - -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "YoutubeVideoRegistrationErrorProto"; -option java_package = "com.google.ads.googleads.v8.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V8::Errors"; - -// Proto file describing YouTube video registration errors. - -// Container for enum describing YouTube video registration errors. -message YoutubeVideoRegistrationErrorEnum { - // Enum describing YouTube video registration errors. - enum YoutubeVideoRegistrationError { - // Enum unspecified. - UNSPECIFIED = 0; - - // The received error code is not known in this version. - UNKNOWN = 1; - - // Video to be registered wasn't found. - VIDEO_NOT_FOUND = 2; - - // Video to be registered is not accessible (e.g. private). - VIDEO_NOT_ACCESSIBLE = 3; - - // Video to be registered is not eligible (e.g. mature content). - VIDEO_NOT_ELIGIBLE = 4; - } - - -} diff --git a/google/ads/googleads/v8/googleads_gapic.yaml b/google/ads/googleads/v8/googleads_gapic.yaml deleted file mode 100644 index 2aaeed956..000000000 --- a/google/ads/googleads/v8/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.V8.Services - go: - package_name: google.golang.org/google/ads/googleads/v8/services - java: - package_name: com.google.ads.googleads.v8.services - nodejs: - package_name: v8.services - php: - package_name: Google\Ads\GoogleAds\V8\Services - python: - package_name: google.ads.googleads_v8.gapic.services - ruby: - package_name: Google::Ads::Googleads::V8::Services -interfaces: -- name: google.ads.googleads.v8.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/google/ads/googleads/v8/googleads_grpc_service_config.json b/google/ads/googleads/v8/googleads_grpc_service_config.json deleted file mode 100755 index 920084a20..000000000 --- a/google/ads/googleads/v8/googleads_grpc_service_config.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.ads.googleads.v8.services.AccessibleBiddingStrategyService" - }, - { - "service": "google.ads.googleads.v8.services.AccountBudgetProposalService" - }, - { - "service": "google.ads.googleads.v8.services.AccountBudgetService" - }, - { - "service": "google.ads.googleads.v8.services.AccountLinkService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupAdAssetViewService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupAdLabelService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupAdService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupAssetService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupAudienceViewService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupBidModifierService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupCriterionLabelService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupCriterionService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupCriterionSimulationService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupExtensionSettingService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupFeedService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupLabelService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupService" - }, - { - "service": "google.ads.googleads.v8.services.AdGroupSimulationService" - }, - { - "service": "google.ads.googleads.v8.services.AdParameterService" - }, - { - "service": "google.ads.googleads.v8.services.AdScheduleViewService" - }, - { - "service": "google.ads.googleads.v8.services.AdService" - }, - { - "service": "google.ads.googleads.v8.services.AgeRangeViewService" - }, - { - "service": "google.ads.googleads.v8.services.AssetFieldTypeViewService" - }, - { - "service": "google.ads.googleads.v8.services.AssetService" - }, - { - "service": "google.ads.googleads.v8.services.BatchJobService" - }, - { - "service": "google.ads.googleads.v8.services.BiddingDataExclusionService" - }, - { - "service": "google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService" - }, - { - "service": "google.ads.googleads.v8.services.BiddingStrategyService" - }, - { - "service": "google.ads.googleads.v8.services.BiddingStrategySimulationService" - }, - { - "service": "google.ads.googleads.v8.services.BillingSetupService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignAssetService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignAudienceViewService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignBidModifierService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignBudgetService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignCriterionService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignCriterionSimulationService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignDraftService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignExperimentService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignExtensionSettingService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignFeedService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignLabelService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignSharedSetService" - }, - { - "service": "google.ads.googleads.v8.services.CampaignSimulationService" - }, - { - "service": "google.ads.googleads.v8.services.CarrierConstantService" - }, - { - "service": "google.ads.googleads.v8.services.ChangeStatusService" - }, - { - "service": "google.ads.googleads.v8.services.ClickViewService" - }, - { - "service": "google.ads.googleads.v8.services.CombinedAudienceService" - }, - { - "service": "google.ads.googleads.v8.services.ConversionActionService" - }, - { - "service": "google.ads.googleads.v8.services.ConversionAdjustmentUploadService" - }, - { - "service": "google.ads.googleads.v8.services.ConversionCustomVariableService" - }, - { - "service": "google.ads.googleads.v8.services.ConversionUploadService" - }, - { - "service": "google.ads.googleads.v8.services.ConversionValueRuleService" - }, - { - "service": "google.ads.googleads.v8.services.ConversionValueRuleSetService" - }, - { - "service": "google.ads.googleads.v8.services.CurrencyConstantService" - }, - { - "service": "google.ads.googleads.v8.services.CustomAudienceService" - }, - { - "service": "google.ads.googleads.v8.services.CustomInterestService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerAssetService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerClientLinkService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerClientService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerExtensionSettingService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerFeedService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerLabelService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerManagerLinkService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerNegativeCriterionService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerUserAccessInvitationService" - }, - { - "service": "google.ads.googleads.v8.services.CustomerUserAccessService" - }, - { - "service": "google.ads.googleads.v8.services.DetailPlacementViewService" - }, - { - "service": "google.ads.googleads.v8.services.DetailedDemographicService" - }, - { - "service": "google.ads.googleads.v8.services.DisplayKeywordViewService" - }, - { - "service": "google.ads.googleads.v8.services.DistanceViewService" - }, - { - "service": "google.ads.googleads.v8.services.DomainCategoryService" - }, - { - "service": "google.ads.googleads.v8.services.DynamicSearchAdsSearchTermViewService" - }, - { - "service": "google.ads.googleads.v8.services.ExpandedLandingPageViewService" - }, - { - "service": "google.ads.googleads.v8.services.ExtensionFeedItemService" - }, - { - "service": "google.ads.googleads.v8.services.FeedItemService" - }, - { - "service": "google.ads.googleads.v8.services.FeedItemSetLinkService" - }, - { - "service": "google.ads.googleads.v8.services.FeedItemSetService" - }, - { - "service": "google.ads.googleads.v8.services.FeedItemTargetService" - }, - { - "service": "google.ads.googleads.v8.services.FeedMappingService" - }, - { - "service": "google.ads.googleads.v8.services.FeedPlaceholderViewService" - }, - { - "service": "google.ads.googleads.v8.services.FeedService" - }, - { - "service": "google.ads.googleads.v8.services.GenderViewService" - }, - { - "service": "google.ads.googleads.v8.services.GeoTargetConstantService" - }, - { - "service": "google.ads.googleads.v8.services.GeographicViewService" - }, - { - "service": "google.ads.googleads.v8.services.GoogleAdsFieldService" - }, - { - "service": "google.ads.googleads.v8.services.GoogleAdsService" - }, - { - "service": "google.ads.googleads.v8.services.GroupPlacementViewService" - }, - { - "service": "google.ads.googleads.v8.services.HotelGroupViewService" - }, - { - "service": "google.ads.googleads.v8.services.HotelPerformanceViewService" - }, - { - "service": "google.ads.googleads.v8.services.IncomeRangeViewService" - }, - { - "service": "google.ads.googleads.v8.services.InvoiceService" - }, - { - "service": "google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService" - }, - { - "service": "google.ads.googleads.v8.services.KeywordPlanAdGroupService" - }, - { - "service": "google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService" - }, - { - "service": "google.ads.googleads.v8.services.KeywordPlanCampaignService" - }, - { - "service": "google.ads.googleads.v8.services.KeywordPlanIdeaService" - }, - { - "service": "google.ads.googleads.v8.services.KeywordPlanService" - }, - { - "service": "google.ads.googleads.v8.services.KeywordThemeConstantService" - }, - { - "service": "google.ads.googleads.v8.services.KeywordViewService" - }, - { - "service": "google.ads.googleads.v8.services.LabelService" - }, - { - "service": "google.ads.googleads.v8.services.LandingPageViewService" - }, - { - "service": "google.ads.googleads.v8.services.LanguageConstantService" - }, - { - "service": "google.ads.googleads.v8.services.LifeEventService" - }, - { - "service": "google.ads.googleads.v8.services.LocationViewService" - }, - { - "service": "google.ads.googleads.v8.services.ManagedPlacementViewService" - }, - { - "service": "google.ads.googleads.v8.services.MediaFileService" - }, - { - "service": "google.ads.googleads.v8.services.MerchantCenterLinkService" - }, - { - "service": "google.ads.googleads.v8.services.MobileAppCategoryConstantService" - }, - { - "service": "google.ads.googleads.v8.services.MobileDeviceConstantService" - }, - { - "service": "google.ads.googleads.v8.services.OfflineUserDataJobService" - }, - { - "service": "google.ads.googleads.v8.services.OperatingSystemVersionConstantService" - }, - { - "service": "google.ads.googleads.v8.services.PaidOrganicSearchTermViewService" - }, - { - "service": "google.ads.googleads.v8.services.ParentalStatusViewService" - }, - { - "service": "google.ads.googleads.v8.services.PaymentsAccountService" - }, - { - "service": "google.ads.googleads.v8.services.ProductBiddingCategoryConstantService" - }, - { - "service": "google.ads.googleads.v8.services.ProductGroupViewService" - }, - { - "service": "google.ads.googleads.v8.services.ReachPlanService" - }, - { - "service": "google.ads.googleads.v8.services.RecommendationService" - }, - { - "service": "google.ads.googleads.v8.services.RemarketingActionService" - }, - { - "service": "google.ads.googleads.v8.services.SearchTermViewService" - }, - { - "service": "google.ads.googleads.v8.services.SharedCriterionService" - }, - { - "service": "google.ads.googleads.v8.services.SharedSetService" - }, - { - "service": "google.ads.googleads.v8.services.ShoppingPerformanceViewService" - }, - { - "service": "google.ads.googleads.v8.services.SmartCampaignSearchTermViewService" - }, - { - "service": "google.ads.googleads.v8.services.SmartCampaignSettingService" - }, - { - "service": "google.ads.googleads.v8.services.SmartCampaignSuggestService" - }, - { - "service": "google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService" - }, - { - "service": "google.ads.googleads.v8.services.TopicConstantService" - }, - { - "service": "google.ads.googleads.v8.services.TopicViewService" - }, - { - "service": "google.ads.googleads.v8.services.UserDataService" - }, - { - "service": "google.ads.googleads.v8.services.UserInterestService" - }, - { - "service": "google.ads.googleads.v8.services.UserListService" - }, - { - "service": "google.ads.googleads.v8.services.UserLocationViewService" - }, - { - "service": "google.ads.googleads.v8.services.VideoService" - }, - { - "service": "google.ads.googleads.v8.services.WebpageViewService" - } - ], - "timeout": "3600s", - "retryPolicy": { - "initialBackoff": "5s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - } - ] -} diff --git a/google/ads/googleads/v8/googleads_v8.yaml b/google/ads/googleads/v8/googleads_v8.yaml deleted file mode 100644 index c691e62d9..000000000 --- a/google/ads/googleads/v8/googleads_v8.yaml +++ /dev/null @@ -1,1403 +0,0 @@ -type: google.api.Service -config_version: 3 -name: googleads.googleapis.com -title: Google Ads API - -apis: -- name: google.ads.googleads.v8.services.AccessibleBiddingStrategyService -- name: google.ads.googleads.v8.services.AccountBudgetProposalService -- name: google.ads.googleads.v8.services.AccountBudgetService -- name: google.ads.googleads.v8.services.AccountLinkService -- name: google.ads.googleads.v8.services.AdGroupAdAssetViewService -- name: google.ads.googleads.v8.services.AdGroupAdLabelService -- name: google.ads.googleads.v8.services.AdGroupAdService -- name: google.ads.googleads.v8.services.AdGroupAssetService -- name: google.ads.googleads.v8.services.AdGroupAudienceViewService -- name: google.ads.googleads.v8.services.AdGroupBidModifierService -- name: google.ads.googleads.v8.services.AdGroupCriterionLabelService -- name: google.ads.googleads.v8.services.AdGroupCriterionService -- name: google.ads.googleads.v8.services.AdGroupCriterionSimulationService -- name: google.ads.googleads.v8.services.AdGroupExtensionSettingService -- name: google.ads.googleads.v8.services.AdGroupFeedService -- name: google.ads.googleads.v8.services.AdGroupLabelService -- name: google.ads.googleads.v8.services.AdGroupService -- name: google.ads.googleads.v8.services.AdGroupSimulationService -- name: google.ads.googleads.v8.services.AdParameterService -- name: google.ads.googleads.v8.services.AdScheduleViewService -- name: google.ads.googleads.v8.services.AdService -- name: google.ads.googleads.v8.services.AgeRangeViewService -- name: google.ads.googleads.v8.services.AssetFieldTypeViewService -- name: google.ads.googleads.v8.services.AssetService -- name: google.ads.googleads.v8.services.BatchJobService -- name: google.ads.googleads.v8.services.BiddingDataExclusionService -- name: google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService -- name: google.ads.googleads.v8.services.BiddingStrategyService -- name: google.ads.googleads.v8.services.BiddingStrategySimulationService -- name: google.ads.googleads.v8.services.BillingSetupService -- name: google.ads.googleads.v8.services.CampaignAssetService -- name: google.ads.googleads.v8.services.CampaignAudienceViewService -- name: google.ads.googleads.v8.services.CampaignBidModifierService -- name: google.ads.googleads.v8.services.CampaignBudgetService -- name: google.ads.googleads.v8.services.CampaignCriterionService -- name: google.ads.googleads.v8.services.CampaignCriterionSimulationService -- name: google.ads.googleads.v8.services.CampaignDraftService -- name: google.ads.googleads.v8.services.CampaignExperimentService -- name: google.ads.googleads.v8.services.CampaignExtensionSettingService -- name: google.ads.googleads.v8.services.CampaignFeedService -- name: google.ads.googleads.v8.services.CampaignLabelService -- name: google.ads.googleads.v8.services.CampaignService -- name: google.ads.googleads.v8.services.CampaignSharedSetService -- name: google.ads.googleads.v8.services.CampaignSimulationService -- name: google.ads.googleads.v8.services.CarrierConstantService -- name: google.ads.googleads.v8.services.ChangeStatusService -- name: google.ads.googleads.v8.services.ClickViewService -- name: google.ads.googleads.v8.services.CombinedAudienceService -- name: google.ads.googleads.v8.services.ConversionActionService -- name: google.ads.googleads.v8.services.ConversionAdjustmentUploadService -- name: google.ads.googleads.v8.services.ConversionCustomVariableService -- name: google.ads.googleads.v8.services.ConversionUploadService -- name: google.ads.googleads.v8.services.ConversionValueRuleService -- name: google.ads.googleads.v8.services.ConversionValueRuleSetService -- name: google.ads.googleads.v8.services.CurrencyConstantService -- name: google.ads.googleads.v8.services.CustomAudienceService -- name: google.ads.googleads.v8.services.CustomInterestService -- name: google.ads.googleads.v8.services.CustomerAssetService -- name: google.ads.googleads.v8.services.CustomerClientLinkService -- name: google.ads.googleads.v8.services.CustomerClientService -- name: google.ads.googleads.v8.services.CustomerExtensionSettingService -- name: google.ads.googleads.v8.services.CustomerFeedService -- name: google.ads.googleads.v8.services.CustomerLabelService -- name: google.ads.googleads.v8.services.CustomerManagerLinkService -- name: google.ads.googleads.v8.services.CustomerNegativeCriterionService -- name: google.ads.googleads.v8.services.CustomerService -- name: google.ads.googleads.v8.services.CustomerUserAccessInvitationService -- name: google.ads.googleads.v8.services.CustomerUserAccessService -- name: google.ads.googleads.v8.services.DetailPlacementViewService -- name: google.ads.googleads.v8.services.DetailedDemographicService -- name: google.ads.googleads.v8.services.DisplayKeywordViewService -- name: google.ads.googleads.v8.services.DistanceViewService -- name: google.ads.googleads.v8.services.DomainCategoryService -- name: google.ads.googleads.v8.services.DynamicSearchAdsSearchTermViewService -- name: google.ads.googleads.v8.services.ExpandedLandingPageViewService -- name: google.ads.googleads.v8.services.ExtensionFeedItemService -- name: google.ads.googleads.v8.services.FeedItemService -- name: google.ads.googleads.v8.services.FeedItemSetLinkService -- name: google.ads.googleads.v8.services.FeedItemSetService -- name: google.ads.googleads.v8.services.FeedItemTargetService -- name: google.ads.googleads.v8.services.FeedMappingService -- name: google.ads.googleads.v8.services.FeedPlaceholderViewService -- name: google.ads.googleads.v8.services.FeedService -- name: google.ads.googleads.v8.services.GenderViewService -- name: google.ads.googleads.v8.services.GeoTargetConstantService -- name: google.ads.googleads.v8.services.GeographicViewService -- name: google.ads.googleads.v8.services.GoogleAdsFieldService -- name: google.ads.googleads.v8.services.GoogleAdsService -- name: google.ads.googleads.v8.services.GroupPlacementViewService -- name: google.ads.googleads.v8.services.HotelGroupViewService -- name: google.ads.googleads.v8.services.HotelPerformanceViewService -- name: google.ads.googleads.v8.services.IncomeRangeViewService -- name: google.ads.googleads.v8.services.InvoiceService -- name: google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService -- name: google.ads.googleads.v8.services.KeywordPlanAdGroupService -- name: google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService -- name: google.ads.googleads.v8.services.KeywordPlanCampaignService -- name: google.ads.googleads.v8.services.KeywordPlanIdeaService -- name: google.ads.googleads.v8.services.KeywordPlanService -- name: google.ads.googleads.v8.services.KeywordThemeConstantService -- name: google.ads.googleads.v8.services.KeywordViewService -- name: google.ads.googleads.v8.services.LabelService -- name: google.ads.googleads.v8.services.LandingPageViewService -- name: google.ads.googleads.v8.services.LanguageConstantService -- name: google.ads.googleads.v8.services.LifeEventService -- name: google.ads.googleads.v8.services.LocationViewService -- name: google.ads.googleads.v8.services.ManagedPlacementViewService -- name: google.ads.googleads.v8.services.MediaFileService -- name: google.ads.googleads.v8.services.MerchantCenterLinkService -- name: google.ads.googleads.v8.services.MobileAppCategoryConstantService -- name: google.ads.googleads.v8.services.MobileDeviceConstantService -- name: google.ads.googleads.v8.services.OfflineUserDataJobService -- name: google.ads.googleads.v8.services.OperatingSystemVersionConstantService -- name: google.ads.googleads.v8.services.PaidOrganicSearchTermViewService -- name: google.ads.googleads.v8.services.ParentalStatusViewService -- name: google.ads.googleads.v8.services.PaymentsAccountService -- name: google.ads.googleads.v8.services.ProductBiddingCategoryConstantService -- name: google.ads.googleads.v8.services.ProductGroupViewService -- name: google.ads.googleads.v8.services.ReachPlanService -- name: google.ads.googleads.v8.services.RecommendationService -- name: google.ads.googleads.v8.services.RemarketingActionService -- name: google.ads.googleads.v8.services.SearchTermViewService -- name: google.ads.googleads.v8.services.SharedCriterionService -- name: google.ads.googleads.v8.services.SharedSetService -- name: google.ads.googleads.v8.services.ShoppingPerformanceViewService -- name: google.ads.googleads.v8.services.SmartCampaignSearchTermViewService -- name: google.ads.googleads.v8.services.SmartCampaignSettingService -- name: google.ads.googleads.v8.services.SmartCampaignSuggestService -- name: google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService -- name: google.ads.googleads.v8.services.TopicConstantService -- name: google.ads.googleads.v8.services.TopicViewService -- name: google.ads.googleads.v8.services.UserDataService -- name: google.ads.googleads.v8.services.UserInterestService -- name: google.ads.googleads.v8.services.UserListService -- name: google.ads.googleads.v8.services.UserLocationViewService -- name: google.ads.googleads.v8.services.VideoService -- name: google.ads.googleads.v8.services.WebpageViewService - -types: -- name: google.ads.googleads.v8.errors.GoogleAdsFailure -- name: google.ads.googleads.v8.resources.BatchJob.BatchJobMetadata -- name: google.ads.googleads.v8.services.CreateCampaignExperimentMetadata - -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.v8.services.AccessibleBiddingStrategyService.GetAccessibleBiddingStrategy - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AccountBudgetProposalService.GetAccountBudgetProposal - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AccountBudgetProposalService.MutateAccountBudgetProposal - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AccountBudgetService.GetAccountBudget - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.AccountLinkService.*' - deadline: 600.0 - - selector: google.ads.googleads.v8.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupAdLabelService.GetAdGroupAdLabel - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupAdLabelService.MutateAdGroupAdLabels - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupAdService.GetAdGroupAd - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupAdService.MutateAdGroupAds - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupAssetService.GetAdGroupAsset - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupAssetService.MutateAdGroupAssets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupAudienceViewService.GetAdGroupAudienceView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupBidModifierService.GetAdGroupBidModifier - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupBidModifierService.MutateAdGroupBidModifiers - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupCriterionService.GetAdGroupCriterion - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupCriterionService.MutateAdGroupCriteria - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupFeedService.GetAdGroupFeed - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupFeedService.MutateAdGroupFeeds - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupLabelService.GetAdGroupLabel - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupLabelService.MutateAdGroupLabels - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupService.GetAdGroup - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupService.MutateAdGroups - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdGroupSimulationService.GetAdGroupSimulation - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdParameterService.GetAdParameter - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdParameterService.MutateAdParameters - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdScheduleViewService.GetAdScheduleView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdService.GetAd - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AdService.MutateAds - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AgeRangeViewService.GetAgeRangeView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AssetFieldTypeViewService.GetAssetFieldTypeView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AssetService.GetAsset - deadline: 60.0 - - selector: google.ads.googleads.v8.services.AssetService.MutateAssets - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.BatchJobService.*' - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BiddingDataExclusionService.GetBiddingDataExclusion - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BiddingDataExclusionService.MutateBiddingDataExclusions - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService.GetBiddingSeasonalityAdjustment - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BiddingStrategyService.GetBiddingStrategy - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BiddingStrategyService.MutateBiddingStrategies - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BiddingStrategySimulationService.GetBiddingStrategySimulation - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BillingSetupService.GetBillingSetup - deadline: 60.0 - - selector: google.ads.googleads.v8.services.BillingSetupService.MutateBillingSetup - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignAssetService.GetCampaignAsset - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignAssetService.MutateCampaignAssets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignAudienceViewService.GetCampaignAudienceView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignBidModifierService.GetCampaignBidModifier - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignBidModifierService.MutateCampaignBidModifiers - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignBudgetService.GetCampaignBudget - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignBudgetService.MutateCampaignBudgets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignCriterionService.GetCampaignCriterion - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignCriterionService.MutateCampaignCriteria - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.CampaignDraftService.*' - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.CampaignExperimentService.*' - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignExtensionSettingService.GetCampaignExtensionSetting - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignFeedService.GetCampaignFeed - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignFeedService.MutateCampaignFeeds - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignLabelService.GetCampaignLabel - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignLabelService.MutateCampaignLabels - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignService.GetCampaign - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignService.MutateCampaigns - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignSharedSetService.GetCampaignSharedSet - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignSharedSetService.MutateCampaignSharedSets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CampaignSimulationService.GetCampaignSimulation - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CarrierConstantService.GetCarrierConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ChangeStatusService.GetChangeStatus - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ClickViewService.GetClickView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CombinedAudienceService.GetCombinedAudience - deadline: 600.0 - - selector: google.ads.googleads.v8.services.ConversionActionService.GetConversionAction - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ConversionActionService.MutateConversionActions - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ConversionAdjustmentUploadService.UploadConversionAdjustments - deadline: 600.0 - - selector: google.ads.googleads.v8.services.ConversionCustomVariableService.GetConversionCustomVariable - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ConversionCustomVariableService.MutateConversionCustomVariables - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ConversionUploadService.UploadCallConversions - deadline: 600.0 - - selector: google.ads.googleads.v8.services.ConversionUploadService.UploadClickConversions - deadline: 600.0 - - selector: google.ads.googleads.v8.services.ConversionValueRuleService.GetConversionValueRule - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ConversionValueRuleService.MutateConversionValueRules - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ConversionValueRuleSetService.GetConversionValueRuleSet - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ConversionValueRuleSetService.MutateConversionValueRuleSets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CurrencyConstantService.GetCurrencyConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomAudienceService.GetCustomAudience - deadline: 600.0 - - selector: google.ads.googleads.v8.services.CustomAudienceService.MutateCustomAudiences - deadline: 600.0 - - selector: google.ads.googleads.v8.services.CustomInterestService.GetCustomInterest - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomInterestService.MutateCustomInterests - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerAssetService.GetCustomerAsset - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerAssetService.MutateCustomerAssets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerClientLinkService.GetCustomerClientLink - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerClientLinkService.MutateCustomerClientLink - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerClientService.GetCustomerClient - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerExtensionSettingService.GetCustomerExtensionSetting - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerFeedService.GetCustomerFeed - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerFeedService.MutateCustomerFeeds - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerLabelService.GetCustomerLabel - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerLabelService.MutateCustomerLabels - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.CustomerManagerLinkService.*' - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.CustomerService.*' - deadline: 60.0 - - selector: google.ads.googleads.v8.services.CustomerUserAccessInvitationService.GetCustomerUserAccessInvitation - deadline: 600.0 - - selector: google.ads.googleads.v8.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation - deadline: 600.0 - - selector: google.ads.googleads.v8.services.CustomerUserAccessService.GetCustomerUserAccess - deadline: 600.0 - - selector: google.ads.googleads.v8.services.CustomerUserAccessService.MutateCustomerUserAccess - deadline: 600.0 - - selector: google.ads.googleads.v8.services.DetailPlacementViewService.GetDetailPlacementView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.DetailedDemographicService.GetDetailedDemographic - deadline: 60.0 - - selector: google.ads.googleads.v8.services.DisplayKeywordViewService.GetDisplayKeywordView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.DistanceViewService.GetDistanceView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.DomainCategoryService.GetDomainCategory - deadline: 60.0 - - selector: google.ads.googleads.v8.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ExpandedLandingPageViewService.GetExpandedLandingPageView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ExtensionFeedItemService.GetExtensionFeedItem - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ExtensionFeedItemService.MutateExtensionFeedItems - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedItemService.GetFeedItem - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedItemService.MutateFeedItems - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedItemSetLinkService.GetFeedItemSetLink - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedItemSetLinkService.MutateFeedItemSetLinks - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedItemSetService.GetFeedItemSet - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedItemSetService.MutateFeedItemSets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedItemTargetService.GetFeedItemTarget - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedItemTargetService.MutateFeedItemTargets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedMappingService.GetFeedMapping - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedMappingService.MutateFeedMappings - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedPlaceholderViewService.GetFeedPlaceholderView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedService.GetFeed - deadline: 60.0 - - selector: google.ads.googleads.v8.services.FeedService.MutateFeeds - deadline: 60.0 - - selector: google.ads.googleads.v8.services.GenderViewService.GetGenderView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.GeoTargetConstantService.GetGeoTargetConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.GeoTargetConstantService.SuggestGeoTargetConstants - deadline: 60.0 - - selector: google.ads.googleads.v8.services.GeographicViewService.GetGeographicView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.GoogleAdsFieldService.GetGoogleAdsField - deadline: 600.0 - - selector: google.ads.googleads.v8.services.GoogleAdsFieldService.SearchGoogleAdsFields - deadline: 600.0 - - selector: google.ads.googleads.v8.services.GoogleAdsService.Mutate - deadline: 600.0 - - selector: google.ads.googleads.v8.services.GoogleAdsService.Search - deadline: 3600.0 - - selector: google.ads.googleads.v8.services.GoogleAdsService.SearchStream - deadline: 3600.0 - - selector: google.ads.googleads.v8.services.GroupPlacementViewService.GetGroupPlacementView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.HotelGroupViewService.GetHotelGroupView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.HotelPerformanceViewService.GetHotelPerformanceView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.IncomeRangeViewService.GetIncomeRangeView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.InvoiceService.ListInvoices - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanCampaignService.GetKeywordPlanCampaign - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanIdeaService.GenerateKeywordIdeas - deadline: 600.0 - - selector: 'google.ads.googleads.v8.services.KeywordPlanService.*' - deadline: 600.0 - - selector: google.ads.googleads.v8.services.KeywordPlanService.GetKeywordPlan - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordPlanService.MutateKeywordPlans - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordThemeConstantService.GetKeywordThemeConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordThemeConstantService.SuggestKeywordThemeConstants - deadline: 60.0 - - selector: google.ads.googleads.v8.services.KeywordViewService.GetKeywordView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.LabelService.GetLabel - deadline: 60.0 - - selector: google.ads.googleads.v8.services.LabelService.MutateLabels - deadline: 60.0 - - selector: google.ads.googleads.v8.services.LandingPageViewService.GetLandingPageView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.LanguageConstantService.GetLanguageConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.LifeEventService.GetLifeEvent - deadline: 60.0 - - selector: google.ads.googleads.v8.services.LocationViewService.GetLocationView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ManagedPlacementViewService.GetManagedPlacementView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.MediaFileService.GetMediaFile - deadline: 60.0 - - selector: google.ads.googleads.v8.services.MediaFileService.MutateMediaFiles - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.MerchantCenterLinkService.*' - deadline: 60.0 - - selector: google.ads.googleads.v8.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.MobileDeviceConstantService.GetMobileDeviceConstant - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.OfflineUserDataJobService.*' - deadline: 600.0 - - selector: google.ads.googleads.v8.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ParentalStatusViewService.GetParentalStatusView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.PaymentsAccountService.ListPaymentsAccounts - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ProductGroupViewService.GetProductGroupView - deadline: 60.0 - - selector: 'google.ads.googleads.v8.services.ReachPlanService.*' - deadline: 600.0 - - selector: 'google.ads.googleads.v8.services.RecommendationService.*' - deadline: 600.0 - - selector: google.ads.googleads.v8.services.RemarketingActionService.GetRemarketingAction - deadline: 60.0 - - selector: google.ads.googleads.v8.services.RemarketingActionService.MutateRemarketingActions - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SearchTermViewService.GetSearchTermView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SharedCriterionService.GetSharedCriterion - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SharedCriterionService.MutateSharedCriteria - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SharedSetService.GetSharedSet - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SharedSetService.MutateSharedSets - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ShoppingPerformanceViewService.GetShoppingPerformanceView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SmartCampaignSearchTermViewService.GetSmartCampaignSearchTermView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SmartCampaignSettingService.GetSmartCampaignSetting - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SmartCampaignSettingService.MutateSmartCampaignSettings - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SmartCampaignSuggestService.SuggestSmartCampaignAd - deadline: 60.0 - - selector: google.ads.googleads.v8.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions - deadline: 60.0 - - selector: google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink - deadline: 600.0 - - selector: google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId - deadline: 600.0 - - selector: google.ads.googleads.v8.services.TopicConstantService.GetTopicConstant - deadline: 60.0 - - selector: google.ads.googleads.v8.services.TopicViewService.GetTopicView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.UserDataService.UploadUserData - deadline: 600.0 - - selector: google.ads.googleads.v8.services.UserInterestService.GetUserInterest - deadline: 60.0 - - selector: google.ads.googleads.v8.services.UserListService.GetUserList - deadline: 60.0 - - selector: google.ads.googleads.v8.services.UserListService.MutateUserLists - deadline: 60.0 - - selector: google.ads.googleads.v8.services.UserLocationViewService.GetUserLocationView - deadline: 60.0 - - selector: google.ads.googleads.v8.services.VideoService.GetVideo - deadline: 60.0 - - selector: google.ads.googleads.v8.services.WebpageViewService.GetWebpageView - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - -http: - rules: - - selector: google.longrunning.Operations.CancelOperation - post: '/v8/{name=customers/*/operations/*}:cancel' - body: '*' - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v8/{name=customers/*/operations/*}' - - selector: google.longrunning.Operations.GetOperation - get: '/v8/{name=customers/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v8/{name=customers/*/operations}' - - selector: google.longrunning.Operations.WaitOperation - post: '/v8/{name=customers/*/operations/*}:wait' - body: '*' - -authentication: - rules: - - selector: google.ads.googleads.v8.services.AccessibleBiddingStrategyService.GetAccessibleBiddingStrategy - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AccountBudgetProposalService.GetAccountBudgetProposal - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AccountBudgetProposalService.MutateAccountBudgetProposal - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AccountBudgetService.GetAccountBudget - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.AccountLinkService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupAdLabelService.GetAdGroupAdLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupAdLabelService.MutateAdGroupAdLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupAdService.GetAdGroupAd - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupAdService.MutateAdGroupAds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupAssetService.GetAdGroupAsset - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupAssetService.MutateAdGroupAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupAudienceViewService.GetAdGroupAudienceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupBidModifierService.GetAdGroupBidModifier - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupBidModifierService.MutateAdGroupBidModifiers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupCriterionService.GetAdGroupCriterion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupCriterionService.MutateAdGroupCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupFeedService.GetAdGroupFeed - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupFeedService.MutateAdGroupFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupLabelService.GetAdGroupLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupLabelService.MutateAdGroupLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupService.GetAdGroup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupService.MutateAdGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdGroupSimulationService.GetAdGroupSimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdParameterService.GetAdParameter - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdParameterService.MutateAdParameters - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdScheduleViewService.GetAdScheduleView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdService.GetAd - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AdService.MutateAds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AgeRangeViewService.GetAgeRangeView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AssetFieldTypeViewService.GetAssetFieldTypeView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AssetService.GetAsset - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.AssetService.MutateAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.BatchJobService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BiddingDataExclusionService.GetBiddingDataExclusion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BiddingDataExclusionService.MutateBiddingDataExclusions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService.GetBiddingSeasonalityAdjustment - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BiddingStrategyService.GetBiddingStrategy - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BiddingStrategyService.MutateBiddingStrategies - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BiddingStrategySimulationService.GetBiddingStrategySimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BillingSetupService.GetBillingSetup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.BillingSetupService.MutateBillingSetup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignAssetService.GetCampaignAsset - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignAssetService.MutateCampaignAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignAudienceViewService.GetCampaignAudienceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignBidModifierService.GetCampaignBidModifier - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignBidModifierService.MutateCampaignBidModifiers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignBudgetService.GetCampaignBudget - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignBudgetService.MutateCampaignBudgets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignCriterionService.GetCampaignCriterion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignCriterionService.MutateCampaignCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.CampaignDraftService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.CampaignExperimentService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignExtensionSettingService.GetCampaignExtensionSetting - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignFeedService.GetCampaignFeed - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignFeedService.MutateCampaignFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignLabelService.GetCampaignLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignLabelService.MutateCampaignLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignService.GetCampaign - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignService.MutateCampaigns - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignSharedSetService.GetCampaignSharedSet - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignSharedSetService.MutateCampaignSharedSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CampaignSimulationService.GetCampaignSimulation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CarrierConstantService.GetCarrierConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ChangeStatusService.GetChangeStatus - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ClickViewService.GetClickView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CombinedAudienceService.GetCombinedAudience - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionActionService.GetConversionAction - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionActionService.MutateConversionActions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionAdjustmentUploadService.UploadConversionAdjustments - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionCustomVariableService.GetConversionCustomVariable - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionCustomVariableService.MutateConversionCustomVariables - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionUploadService.UploadCallConversions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionUploadService.UploadClickConversions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionValueRuleService.GetConversionValueRule - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionValueRuleService.MutateConversionValueRules - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionValueRuleSetService.GetConversionValueRuleSet - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ConversionValueRuleSetService.MutateConversionValueRuleSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CurrencyConstantService.GetCurrencyConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomAudienceService.GetCustomAudience - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomAudienceService.MutateCustomAudiences - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomInterestService.GetCustomInterest - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomInterestService.MutateCustomInterests - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerAssetService.GetCustomerAsset - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerAssetService.MutateCustomerAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerClientLinkService.GetCustomerClientLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerClientLinkService.MutateCustomerClientLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerClientService.GetCustomerClient - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerExtensionSettingService.GetCustomerExtensionSetting - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerFeedService.GetCustomerFeed - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerFeedService.MutateCustomerFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerLabelService.GetCustomerLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerLabelService.MutateCustomerLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.CustomerManagerLinkService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.CustomerService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerUserAccessInvitationService.GetCustomerUserAccessInvitation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerUserAccessService.GetCustomerUserAccess - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.CustomerUserAccessService.MutateCustomerUserAccess - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.DetailPlacementViewService.GetDetailPlacementView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.DetailedDemographicService.GetDetailedDemographic - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.DisplayKeywordViewService.GetDisplayKeywordView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.DistanceViewService.GetDistanceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.DomainCategoryService.GetDomainCategory - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ExpandedLandingPageViewService.GetExpandedLandingPageView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ExtensionFeedItemService.GetExtensionFeedItem - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ExtensionFeedItemService.MutateExtensionFeedItems - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedItemService.GetFeedItem - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedItemService.MutateFeedItems - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedItemSetLinkService.GetFeedItemSetLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedItemSetLinkService.MutateFeedItemSetLinks - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedItemSetService.GetFeedItemSet - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedItemSetService.MutateFeedItemSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedItemTargetService.GetFeedItemTarget - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedItemTargetService.MutateFeedItemTargets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedMappingService.GetFeedMapping - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedMappingService.MutateFeedMappings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedPlaceholderViewService.GetFeedPlaceholderView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedService.GetFeed - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.FeedService.MutateFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.GenderViewService.GetGenderView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.GeoTargetConstantService.GetGeoTargetConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.GeoTargetConstantService.SuggestGeoTargetConstants - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.GeographicViewService.GetGeographicView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.GoogleAdsFieldService.GetGoogleAdsField - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.GoogleAdsFieldService.SearchGoogleAdsFields - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.GoogleAdsService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.GroupPlacementViewService.GetGroupPlacementView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.HotelGroupViewService.GetHotelGroupView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.HotelPerformanceViewService.GetHotelPerformanceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.IncomeRangeViewService.GetIncomeRangeView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.InvoiceService.ListInvoices - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanCampaignService.GetKeywordPlanCampaign - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordPlanIdeaService.GenerateKeywordIdeas - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.KeywordPlanService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordThemeConstantService.GetKeywordThemeConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordThemeConstantService.SuggestKeywordThemeConstants - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.KeywordViewService.GetKeywordView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.LabelService.GetLabel - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.LabelService.MutateLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.LandingPageViewService.GetLandingPageView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.LanguageConstantService.GetLanguageConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.LifeEventService.GetLifeEvent - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.LocationViewService.GetLocationView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ManagedPlacementViewService.GetManagedPlacementView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.MediaFileService.GetMediaFile - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.MediaFileService.MutateMediaFiles - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.MerchantCenterLinkService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.MobileDeviceConstantService.GetMobileDeviceConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.OfflineUserDataJobService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ParentalStatusViewService.GetParentalStatusView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.PaymentsAccountService.ListPaymentsAccounts - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ProductGroupViewService.GetProductGroupView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.ReachPlanService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v8.services.RecommendationService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.RemarketingActionService.GetRemarketingAction - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.RemarketingActionService.MutateRemarketingActions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SearchTermViewService.GetSearchTermView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SharedCriterionService.GetSharedCriterion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SharedCriterionService.MutateSharedCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SharedSetService.GetSharedSet - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SharedSetService.MutateSharedSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ShoppingPerformanceViewService.GetShoppingPerformanceView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SmartCampaignSearchTermViewService.GetSmartCampaignSearchTermView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SmartCampaignSettingService.GetSmartCampaignSetting - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SmartCampaignSettingService.MutateSmartCampaignSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SmartCampaignSuggestService.SuggestSmartCampaignAd - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.TopicConstantService.GetTopicConstant - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.TopicViewService.GetTopicView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.UserDataService.UploadUserData - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.UserInterestService.GetUserInterest - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.UserListService.GetUserList - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.UserListService.MutateUserLists - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.UserLocationViewService.GetUserLocationView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.VideoService.GetVideo - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v8.services.WebpageViewService.GetWebpageView - 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/google/ads/googleads/v8/resources/BUILD.bazel b/google/ads/googleads/v8/resources/BUILD.bazel deleted file mode 100644 index 5d72781d8..000000000 --- a/google/ads/googleads/v8/resources/BUILD.bazel +++ /dev/null @@ -1,97 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports -# subpackages. -proto_library( - name = "resources_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/ads/googleads/v8/common:common_proto", - "//google/ads/googleads/v8/enums:enums_proto", - "//google/ads/googleads/v8/errors:errors_proto", - "//google/api:annotations_proto", - "//google/api:field_behavior_proto", - "//google/api:resource_proto", - "@com_google_protobuf//:field_mask_proto", - "@com_google_protobuf//:wrappers_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", -) - -java_proto_library( - name = "resources_java_proto", - deps = [":resources_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_proto_library", -) - -csharp_proto_library( - name = "resources_csharp_proto", - deps = [":resources_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_proto_library", -) - -ruby_proto_library( - name = "resources_ruby_proto", - deps = [":resources_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_proto_library", -) - -py_proto_library( - name = "resources_py_proto", - deps = [":resources_proto"], -) diff --git a/google/ads/googleads/v8/resources/accessible_bidding_strategy.proto b/google/ads/googleads/v8/resources/accessible_bidding_strategy.proto deleted file mode 100644 index a03a154d2..000000000 --- a/google/ads/googleads/v8/resources/accessible_bidding_strategy.proto +++ /dev/null @@ -1,172 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/bidding_strategy_type.proto"; -import "google/ads/googleads/v8/enums/target_impression_share_location.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AccessibleBiddingStrategyProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::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: "googleads.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]; - } - - // 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.googleads.v8.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The desired fraction of ads to be shown in the targeted location in - // micros. E.g. 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 desired 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: "googleads.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.googleads.v8.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 desired - // 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/google/ads/googleads/v8/resources/account_budget.proto b/google/ads/googleads/v8/resources/account_budget.proto deleted file mode 100644 index 8d37fae32..000000000 --- a/google/ads/googleads/v8/resources/account_budget.proto +++ /dev/null @@ -1,252 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/account_budget_proposal_type.proto"; -import "google/ads/googleads/v8/enums/account_budget_status.proto"; -import "google/ads/googleads/v8/enums/spending_limit_type.proto"; -import "google/ads/googleads/v8/enums/time_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the AccountBudget resource. - -// An account-level budget. It contains information about the budget itself, -// as well as the most recently approved changes to the budget and proposed -// changes that are pending approval. The proposed changes that are pending -// approval, if any, are found in 'pending_proposal'. Effective details about -// the budget are found in fields prefixed 'approved_', 'adjusted_' and those -// without a prefix. Since some effective details may differ from what the user -// had originally requested (e.g. spending limit), these differences are -// juxtaposed via 'proposed_', 'approved_', and possibly 'adjusted_' fields. -// -// This resource is mutated using AccountBudgetProposal and cannot be mutated -// directly. A budget may have at most one pending proposal at any given time. -// It is read through pending_proposal. -// -// Once approved, a budget may be subject to adjustments, such as credit -// adjustments. Adjustments create differences between the 'approved' and -// 'adjusted' fields, which would otherwise be identical. -message AccountBudget { - option (google.api.resource) = { - type: "googleads.googleapis.com/AccountBudget" - pattern: "customers/{customer_id}/accountBudgets/{account_budget_id}" - }; - - // A pending proposal associated with the enclosing account-level budget, - // if applicable. - message PendingAccountBudgetProposal { - // Output only. The resource name of the proposal. - // AccountBudgetProposal resource names have the form: - // - // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` - optional string account_budget_proposal = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudgetProposal" - } - ]; - - // Output only. The type of this proposal, e.g. END to end the budget associated - // with this proposal. - google.ads.googleads.v8.enums.AccountBudgetProposalTypeEnum.AccountBudgetProposalType proposal_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name to assign to the account-level budget. - optional string name = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The start time in yyyy-MM-dd HH:mm:ss format. - optional string start_date_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A purchase order number is a value that helps users reference this budget - // in their monthly invoices. - optional string purchase_order_number = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Notes associated with this budget. - optional string notes = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time when this account-level budget proposal was created. - // Formatted as yyyy-MM-dd HH:mm:ss. - optional string creation_date_time = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The end time of the account-level budget. - oneof end_time { - // Output only. The end time in yyyy-MM-dd HH:mm:ss format. - string end_date_time = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The end time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v8.enums.TimeTypeEnum.TimeType end_time_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The spending limit. - oneof spending_limit { - // Output only. The spending limit in micros. One million is equivalent to - // one unit. - int64 spending_limit_micros = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The spending limit as a well-defined type, e.g. INFINITE. - google.ads.googleads.v8.enums.SpendingLimitTypeEnum.SpendingLimitType spending_limit_type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - } - - // Output only. The resource name of the account-level budget. - // AccountBudget resource names have the form: - // - // `customers/{customer_id}/accountBudgets/{account_budget_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudget" - } - ]; - - // Output only. The ID of the account-level budget. - optional int64 id = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the billing setup associated with this account-level - // budget. BillingSetup resource names have the form: - // - // `customers/{customer_id}/billingSetups/{billing_setup_id}` - optional string billing_setup = 24 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BillingSetup" - } - ]; - - // Output only. The status of this account-level budget. - google.ads.googleads.v8.enums.AccountBudgetStatusEnum.AccountBudgetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the account-level budget. - optional string name = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The proposed start time of the account-level budget in - // yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed, - // this is the time of request. - optional string proposed_start_date_time = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss - // format. - // - // For example, if a new budget is approved after the proposed start time, - // the approved start time is the time of approval. - optional string approved_start_date_time = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total adjustments amount. - // - // An example of an adjustment is courtesy credits. - int64 total_adjustments_micros = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The value of Ads that have been served, in micros. - // - // This includes overdelivery costs, in which case a credit might be - // automatically applied to the budget (see total_adjustments_micros). - int64 amount_served_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A purchase order number is a value that helps users reference this budget - // in their monthly invoices. - optional string purchase_order_number = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Notes associated with the budget. - optional string notes = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pending proposal to modify this budget, if applicable. - PendingAccountBudgetProposal pending_proposal = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The proposed end time of the account-level budget. - oneof proposed_end_time { - // Output only. The proposed end time in yyyy-MM-dd HH:mm:ss format. - string proposed_end_date_time = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The proposed end time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v8.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The approved end time of the account-level budget. - // - // For example, if a budget's end time is updated and the proposal is approved - // after the proposed end time, the approved end time is the time of approval. - oneof approved_end_time { - // Output only. The approved end time in yyyy-MM-dd HH:mm:ss format. - string approved_end_date_time = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved end time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v8.enums.TimeTypeEnum.TimeType approved_end_time_type = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The proposed spending limit. - oneof proposed_spending_limit { - // Output only. The proposed spending limit in micros. One million is equivalent to - // one unit. - int64 proposed_spending_limit_micros = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The proposed spending limit as a well-defined type, e.g. INFINITE. - google.ads.googleads.v8.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The approved spending limit. - // - // For example, if the amount already spent by the account exceeds the - // proposed spending limit at the time the proposal is approved, the approved - // spending limit is set to the amount already spent. - oneof approved_spending_limit { - // Output only. The approved spending limit in micros. One million is equivalent to - // one unit. This will only be populated if the proposed spending limit - // is finite, and will always be greater than or equal to the - // proposed spending limit. - int64 approved_spending_limit_micros = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved spending limit as a well-defined type, e.g. INFINITE. This - // will only be populated if the approved spending limit is INFINITE. - google.ads.googleads.v8.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The spending limit after adjustments have been applied. Adjustments are - // stored in total_adjustments_micros. - // - // This value has the final say on how much the account is allowed to spend. - oneof adjusted_spending_limit { - // Output only. The adjusted spending limit in micros. One million is equivalent to - // one unit. - // - // If the approved spending limit is finite, the adjusted - // spending limit may vary depending on the types of adjustments applied - // to this budget, if applicable. - // - // The different kinds of adjustments are described here: - // https://support.google.com/google-ads/answer/1704323 - // - // For example, a debit adjustment reduces how much the account is - // allowed to spend. - int64 adjusted_spending_limit_micros = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The adjusted spending limit as a well-defined type, e.g. 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.v8.enums.SpendingLimitTypeEnum.SpendingLimitType adjusted_spending_limit_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/account_budget_proposal.proto b/google/ads/googleads/v8/resources/account_budget_proposal.proto deleted file mode 100644 index 8a0ca14f1..000000000 --- a/google/ads/googleads/v8/resources/account_budget_proposal.proto +++ /dev/null @@ -1,160 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/account_budget_proposal_status.proto"; -import "google/ads/googleads/v8/enums/account_budget_proposal_type.proto"; -import "google/ads/googleads/v8/enums/spending_limit_type.proto"; -import "google/ads/googleads/v8/enums/time_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the AccountBudgetProposal resource. - -// An account-level budget proposal. -// -// All fields prefixed with 'proposed' may not necessarily be applied directly. -// For example, proposed spending limits may be adjusted before their -// application. This is true if the 'proposed' field has an 'approved' -// counterpart, e.g. spending limits. -// -// Please note that the proposal type (proposal_type) changes which fields are -// required and which must remain empty. -message AccountBudgetProposal { - option (google.api.resource) = { - type: "googleads.googleapis.com/AccountBudgetProposal" - pattern: "customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}" - }; - - // Immutable. The resource name of the proposal. - // AccountBudgetProposal resource names have the form: - // - // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudgetProposal" - } - ]; - - // Output only. The ID of the proposal. - optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The resource name of the billing setup associated with this proposal. - optional string billing_setup = 26 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BillingSetup" - } - ]; - - // Immutable. The resource name of the account-level budget associated with this - // proposal. - optional string account_budget = 27 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudget" - } - ]; - - // Immutable. The type of this proposal, e.g. END to end the budget associated with this - // proposal. - google.ads.googleads.v8.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.v8.enums.AccountBudgetProposalStatusEnum.AccountBudgetProposalStatus status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The name to assign to the account-level budget. - optional string proposed_name = 28 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format. - optional string approved_start_date_time = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. A purchase order number is a value that enables the user to help them - // reference this budget in their monthly invoices. - optional string proposed_purchase_order_number = 35 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Notes associated with this budget. - optional string proposed_notes = 36 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The date time when this account-level budget proposal was created, which is - // not the same as its approval date time, if applicable. - optional string creation_date_time = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The date time when this account-level budget was approved, if applicable. - optional string approval_date_time = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The proposed start date time of the account-level budget, which cannot be - // in the past. - oneof proposed_start_time { - // Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format. - string proposed_start_date_time = 29 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The proposed start date time as a well-defined type, e.g. NOW. - google.ads.googleads.v8.enums.TimeTypeEnum.TimeType proposed_start_time_type = 7 [(google.api.field_behavior) = IMMUTABLE]; - } - - // The proposed end date time of the account-level budget, which cannot be in - // the past. - oneof proposed_end_time { - // Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format. - string proposed_end_date_time = 31 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The proposed end date time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v8.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = IMMUTABLE]; - } - - // The approved end date time of the account-level budget. - oneof approved_end_time { - // Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format. - string approved_end_date_time = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved end date time as a well-defined type, e.g. FOREVER. - google.ads.googleads.v8.enums.TimeTypeEnum.TimeType approved_end_time_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The proposed spending limit. - oneof proposed_spending_limit { - // Immutable. The proposed spending limit in micros. One million is equivalent to - // one unit. - int64 proposed_spending_limit_micros = 33 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The proposed spending limit as a well-defined type, e.g. INFINITE. - google.ads.googleads.v8.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 11 [(google.api.field_behavior) = IMMUTABLE]; - } - - // The approved spending limit. - oneof approved_spending_limit { - // Output only. The approved spending limit in micros. One million is equivalent to - // one unit. - int64 approved_spending_limit_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The approved spending limit as a well-defined type, e.g. INFINITE. - google.ads.googleads.v8.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/account_link.proto b/google/ads/googleads/v8/resources/account_link.proto deleted file mode 100644 index 054b6408b..000000000 --- a/google/ads/googleads/v8/resources/account_link.proto +++ /dev/null @@ -1,125 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/account_link_status.proto"; -import "google/ads/googleads/v8/enums/linked_account_type.proto"; -import "google/ads/googleads/v8/enums/mobile_app_vendor.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AccountLinkProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Represents the data sharing connection between a Google Ads account and -// another account -message AccountLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/AccountLink" - pattern: "customers/{customer_id}/accountLinks/{account_link_id}" - }; - - // Immutable. Resource name of the account link. - // AccountLink resource names have the form: - // `customers/{customer_id}/accountLinks/{account_link_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountLink" - } - ]; - - // Output only. The ID of the link. - // This field is read only. - optional int64 account_link_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The status of the link. - google.ads.googleads.v8.enums.AccountLinkStatusEnum.AccountLinkStatus status = 3; - - // Output only. The type of the linked account. - google.ads.googleads.v8.enums.LinkedAccountTypeEnum.LinkedAccountType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // An account linked to this Google Ads account. - oneof linked_account { - // 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]; - } -} - -// The identifiers of a Third Party App Analytics Link. -message ThirdPartyAppAnalyticsLinkIdentifier { - // Immutable. The ID of the app analytics provider. - // 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. - optional int64 app_analytics_provider_id = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A string that uniquely identifies a mobile application from which the data - // was collected to the Google Ads API. For iOS, the ID string is the 9 digit - // string that appears at the end of an App Store URL (e.g., "422689480" for - // "Gmail" whose App Store link is - // https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For - // Android, the ID string is the application's package name (e.g., - // "com.google.android.gm" for "Gmail" given Google Play link - // https://play.google.com/store/apps/details?id=com.google.android.gm) - // 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. - optional string app_id = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The vendor of the app. - // 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.v8.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 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" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/ad.proto b/google/ads/googleads/v8/resources/ad.proto deleted file mode 100644 index 64a8c3fc4..000000000 --- a/google/ads/googleads/v8/resources/ad.proto +++ /dev/null @@ -1,188 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/ad_type_infos.proto"; -import "google/ads/googleads/v8/common/custom_parameter.proto"; -import "google/ads/googleads/v8/common/final_app_url.proto"; -import "google/ads/googleads/v8/common/url_collection.proto"; -import "google/ads/googleads/v8/enums/ad_type.proto"; -import "google/ads/googleads/v8/enums/device.proto"; -import "google/ads/googleads/v8/enums/system_managed_entity_source.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad type. - -// An ad. -message Ad { - option (google.api.resource) = { - type: "googleads.googleapis.com/Ad" - pattern: "customers/{customer_id}/ads/{ad_id}" - }; - - // Immutable. The resource name of the ad. - // Ad resource names have the form: - // - // `customers/{customer_id}/ads/{ad_id}` - string resource_name = 37 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Ad" - } - ]; - - // Output only. The ID of the ad. - optional int64 id = 40 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The list of possible final URLs after all cross-domain redirects for the - // ad. - repeated string final_urls = 41; - - // A list of final app URLs that will be used on mobile if the user has the - // specific app installed. - repeated google.ads.googleads.v8.common.FinalAppUrl final_app_urls = 35; - - // The list of possible final mobile URLs after all cross-domain redirects - // for the ad. - repeated string final_mobile_urls = 42; - - // The URL template for constructing a tracking URL. - optional string tracking_url_template = 43; - - // The suffix to use when constructing a final URL. - optional string final_url_suffix = 44; - - // 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, please use url custom parameter operations. - repeated google.ads.googleads.v8.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.v8.enums.AdTypeEnum.AdType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates if this ad was automatically added by Google Ads and not by a - // user. For example, this could happen when ads are automatically created as - // suggestions for new ads based on knowledge of how existing ads are - // performing. - optional bool added_by_google_ads = 46 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The device preference for the ad. You can only specify a preference for - // mobile devices. When this preference is set the ad will be preferred over - // other ads when being displayed on a mobile device. The ad can still be - // displayed on other device types, e.g. 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.v8.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.v8.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 name - // field is currently only supported for DisplayUploadAd, ImageAd, - // ShoppingComparisonListingAd and VideoAd. - optional string name = 47 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. If this ad is system managed, then this field will indicate the source. - // This field is read-only. - google.ads.googleads.v8.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.v8.common.TextAdInfo text_ad = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Details pertaining to an expanded text ad. - google.ads.googleads.v8.common.ExpandedTextAdInfo expanded_text_ad = 7; - - // Details pertaining to a call ad. - google.ads.googleads.v8.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.v8.common.ExpandedDynamicSearchAdInfo expanded_dynamic_search_ad = 14 [(google.api.field_behavior) = IMMUTABLE]; - - // Details pertaining to a hotel ad. - google.ads.googleads.v8.common.HotelAdInfo hotel_ad = 15; - - // Details pertaining to a Smart Shopping ad. - google.ads.googleads.v8.common.ShoppingSmartAdInfo shopping_smart_ad = 17; - - // Details pertaining to a Shopping product ad. - google.ads.googleads.v8.common.ShoppingProductAdInfo shopping_product_ad = 18; - - // Immutable. Details pertaining to a Gmail ad. - google.ads.googleads.v8.common.GmailAdInfo gmail_ad = 21 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Details pertaining to an Image ad. - google.ads.googleads.v8.common.ImageAdInfo image_ad = 22 [(google.api.field_behavior) = IMMUTABLE]; - - // Details pertaining to a Video ad. - google.ads.googleads.v8.common.VideoAdInfo video_ad = 24; - - // Details pertaining to a Video responsive ad. - google.ads.googleads.v8.common.VideoResponsiveAdInfo video_responsive_ad = 39; - - // Details pertaining to a responsive search ad. - google.ads.googleads.v8.common.ResponsiveSearchAdInfo responsive_search_ad = 25; - - // Details pertaining to a legacy responsive display ad. - google.ads.googleads.v8.common.LegacyResponsiveDisplayAdInfo legacy_responsive_display_ad = 28; - - // Details pertaining to an app ad. - google.ads.googleads.v8.common.AppAdInfo app_ad = 29; - - // Immutable. Details pertaining to a legacy app install ad. - google.ads.googleads.v8.common.LegacyAppInstallAdInfo legacy_app_install_ad = 30 [(google.api.field_behavior) = IMMUTABLE]; - - // Details pertaining to a responsive display ad. - google.ads.googleads.v8.common.ResponsiveDisplayAdInfo responsive_display_ad = 31; - - // Details pertaining to a local ad. - google.ads.googleads.v8.common.LocalAdInfo local_ad = 32; - - // Details pertaining to a display upload ad. - google.ads.googleads.v8.common.DisplayUploadAdInfo display_upload_ad = 33; - - // Details pertaining to an app engagement ad. - google.ads.googleads.v8.common.AppEngagementAdInfo app_engagement_ad = 34; - - // Details pertaining to a Shopping Comparison Listing ad. - google.ads.googleads.v8.common.ShoppingComparisonListingAdInfo shopping_comparison_listing_ad = 36; - - // Details pertaining to a Smart campaign ad. - google.ads.googleads.v8.common.SmartCampaignAdInfo smart_campaign_ad = 48; - } -} diff --git a/google/ads/googleads/v8/resources/ad_group.proto b/google/ads/googleads/v8/resources/ad_group.proto deleted file mode 100644 index 526a2e7cb..000000000 --- a/google/ads/googleads/v8/resources/ad_group.proto +++ /dev/null @@ -1,187 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/custom_parameter.proto"; -import "google/ads/googleads/v8/common/explorer_auto_optimizer_setting.proto"; -import "google/ads/googleads/v8/common/targeting_setting.proto"; -import "google/ads/googleads/v8/enums/ad_group_ad_rotation_mode.proto"; -import "google/ads/googleads/v8/enums/ad_group_status.proto"; -import "google/ads/googleads/v8/enums/ad_group_type.proto"; -import "google/ads/googleads/v8/enums/asset_field_type.proto"; -import "google/ads/googleads/v8/enums/bidding_source.proto"; -import "google/ads/googleads/v8/enums/targeting_dimension.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group resource. - -// An ad group. -message AdGroup { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroup" - pattern: "customers/{customer_id}/adGroups/{ad_group_id}" - }; - - // Immutable. The resource name of the ad group. - // Ad group resource names have the form: - // - // `customers/{customer_id}/adGroups/{ad_group_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. The ID of the ad group. - optional int64 id = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the ad group. - // - // This field is required and should not be empty when creating new ad - // groups. - // - // It must contain fewer than 255 UTF-8 full-width characters. - // - // It must not contain any null (code point 0x0), NL line feed - // (code point 0xA) or carriage return (code point 0xD) characters. - optional string name = 35; - - // The status of the ad group. - google.ads.googleads.v8.enums.AdGroupStatusEnum.AdGroupStatus status = 5; - - // Immutable. The type of the ad group. - google.ads.googleads.v8.enums.AdGroupTypeEnum.AdGroupType type = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // The ad rotation mode of the ad group. - google.ads.googleads.v8.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode ad_rotation_mode = 22; - - // Output only. For draft or experiment ad groups, this field is the resource name of the - // base ad group from which this ad group was created. If a draft or - // experiment ad group does not have a base ad group, then this field is null. - // - // For base ad groups, this field equals the ad group resource name. - // - // This field is read-only. - optional string base_ad_group = 36 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // The URL template for constructing a tracking URL. - optional string tracking_url_template = 37; - - // 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.v8.common.CustomParameter url_custom_parameters = 6; - - // Immutable. The campaign to which the ad group belongs. - optional string campaign = 38 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // The maximum CPC (cost-per-click) bid. - optional int64 cpc_bid_micros = 39; - - // The maximum CPM (cost-per-thousand viewable impressions) bid. - optional int64 cpm_bid_micros = 40; - - // The target CPA (cost-per-acquisition). If the ad group's campaign - // bidding strategy is TargetCpa or MaximizeConversions (with its target_cpa - // field set), then this field overrides the target CPA specified in the - // campaign's bidding strategy. - // Otherwise, this value is ignored. - optional int64 target_cpa_micros = 41; - - // Output only. The CPV (cost-per-view) bid. - optional int64 cpv_bid_micros = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Average amount in micros that the advertiser is willing to pay for every - // thousand times the ad is shown. - optional int64 target_cpm_micros = 43; - - // The target ROAS (return-on-ad-spend) override. If the ad group's campaign - // bidding strategy is TargetRoas or MaximizeConversionValue (with its - // target_roas field set), then this field overrides the target ROAS specified - // in the campaign's bidding strategy. - // Otherwise, this value is ignored. - optional double target_roas = 44; - - // The percent cpc bid amount, expressed as a fraction of the advertised price - // for some good or service. The valid range for the fraction is [0,1) and the - // value stored here is 1,000,000 * [fraction]. - optional int64 percent_cpc_bid_micros = 45; - - // Settings for the Display Campaign Optimizer, initially termed "Explorer". - google.ads.googleads.v8.common.ExplorerAutoOptimizerSetting explorer_auto_optimizer_setting = 21; - - // 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.v8.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.v8.common.TargetingSetting targeting_setting = 25; - - // Output only. The effective target CPA (cost-per-acquisition). - // This field is read-only. - optional int64 effective_target_cpa_micros = 47 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Source of the effective target CPA. - // This field is read-only. - google.ads.googleads.v8.enums.BiddingSourceEnum.BiddingSource effective_target_cpa_source = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The effective target ROAS (return-on-ad-spend). - // This field is read-only. - optional double effective_target_roas = 48 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Source of the effective target ROAS. - // This field is read-only. - google.ads.googleads.v8.enums.BiddingSourceEnum.BiddingSource effective_target_roas_source = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource names of labels attached to this ad group. - repeated string labels = 49 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupLabel" - } - ]; - - // 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.v8.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 54; -} diff --git a/google/ads/googleads/v8/resources/ad_group_ad.proto b/google/ads/googleads/v8/resources/ad_group_ad.proto deleted file mode 100644 index 6ebbe1ad6..000000000 --- a/google/ads/googleads/v8/resources/ad_group_ad.proto +++ /dev/null @@ -1,103 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/enums/ad_group_ad_status.proto"; -import "google/ads/googleads/v8/enums/ad_strength.proto"; -import "google/ads/googleads/v8/enums/policy_approval_status.proto"; -import "google/ads/googleads/v8/enums/policy_review_status.proto"; -import "google/ads/googleads/v8/resources/ad.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group ad resource. - -// An ad group ad. -message AdGroupAd { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAd" - pattern: "customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}" - }; - - // Immutable. The resource name of the ad. - // Ad group ad resource names have the form: - // - // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // The status of the ad. - google.ads.googleads.v8.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3; - - // Immutable. The ad group to which the ad belongs. - optional string ad_group = 9 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Immutable. The ad. - Ad ad = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Policy information for the ad. - AdGroupAdPolicySummary policy_summary = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Overall ad strength for this ad group ad. - google.ads.googleads.v8.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.". - repeated string action_items = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource names of labels attached to this ad group ad. - repeated string labels = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdLabel" - } - ]; -} - -// Contains policy information for an ad. -message AdGroupAdPolicySummary { - // Output only. The list of policy findings for this ad. - repeated google.ads.googleads.v8.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.v8.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.v8.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/ad_group_ad_asset_view.proto b/google/ads/googleads/v8/resources/ad_group_ad_asset_view.proto deleted file mode 100644 index 307857a81..000000000 --- a/google/ads/googleads/v8/resources/ad_group_ad_asset_view.proto +++ /dev/null @@ -1,105 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/enums/asset_field_type.proto"; -import "google/ads/googleads/v8/enums/asset_performance_label.proto"; -import "google/ads/googleads/v8/enums/policy_approval_status.proto"; -import "google/ads/googleads/v8/enums/policy_review_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdAssetViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group ad asset view resource. - -// A link between an AdGroupAd and an Asset. -// Currently we only support AdGroupAdAssetView for AppAds. -message AdGroupAdAssetView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAdAssetView" - pattern: "customers/{customer_id}/adGroupAdAssetViews/{ad_group_id}~{ad_id}~{asset_id}~{field_type}" - }; - - // Output only. The resource name of the ad group ad asset view. - // Ad group ad asset view resource names have the form (Before V4): - // - // `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` - // - // Ad group ad asset view resource names have the form (Beginning from V4): - // - // `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdAssetView" - } - ]; - - // Output only. The ad group ad to which the asset is linked. - optional string ad_group_ad = 9 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // Output only. The asset which is linked to the ad group ad. - optional string asset = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Output only. Role that the asset takes in the ad. - google.ads.googleads.v8.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. If true, the - // asset is linked to the latest version of the ad. If false, it means the - // link once existed but has been removed and is no longer present in the - // latest version of the ad. - optional bool enabled = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Policy information for the ad group ad asset. - AdGroupAdAssetPolicySummary policy_summary = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Performance of an asset linkage. - google.ads.googleads.v8.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel performance_label = 4 [(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.v8.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.v8.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.v8.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/ad_group_ad_label.proto b/google/ads/googleads/v8/resources/ad_group_ad_label.proto deleted file mode 100644 index 1d1e75471..000000000 --- a/google/ads/googleads/v8/resources/ad_group_ad_label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdLabelProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group ad label resource. - -// A relationship between an ad group ad and a label. -message AdGroupAdLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAdLabel" - pattern: "customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}" - }; - - // Immutable. The resource name of the ad group ad label. - // Ad group ad label resource names have the form: - // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdLabel" - } - ]; - - // Immutable. The ad group ad to which the label is attached. - optional string ad_group_ad = 4 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // Immutable. The label assigned to the ad group ad. - optional string label = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/ad_group_asset.proto b/google/ads/googleads/v8/resources/ad_group_asset.proto deleted file mode 100644 index 94efcb4e4..000000000 --- a/google/ads/googleads/v8/resources/ad_group_asset.proto +++ /dev/null @@ -1,80 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/asset_field_type.proto"; -import "google/ads/googleads/v8/enums/asset_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAssetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the AdGroupAsset resource. - -// A link between an ad group and an asset. -message AdGroupAsset { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAsset" - pattern: "customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}" - }; - - // Immutable. The resource name of the ad group asset. - // AdGroupAsset resource names have the form: - // - // `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAsset" - } - ]; - - // Required. Immutable. The ad group to which the asset is linked. - string ad_group = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Required. Immutable. The asset which is linked to the ad group. - string asset = 3 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Required. Immutable. Role that the asset takes under the linked ad group. - google.ads.googleads.v8.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Status of the ad group asset. - google.ads.googleads.v8.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; -} diff --git a/google/ads/googleads/v8/resources/ad_group_audience_view.proto b/google/ads/googleads/v8/resources/ad_group_audience_view.proto deleted file mode 100644 index 4c6ce2317..000000000 --- a/google/ads/googleads/v8/resources/ad_group_audience_view.proto +++ /dev/null @@ -1,54 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAudienceViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group audience view resource. - -// An ad group audience view. -// Includes performance data from interests and remarketing lists for Display -// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), -// aggregated at the audience level. -message AdGroupAudienceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupAudienceView" - pattern: "customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the ad group audience view. - // Ad group audience view resource names have the form: - // - // `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAudienceView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/ad_group_bid_modifier.proto b/google/ads/googleads/v8/resources/ad_group_bid_modifier.proto deleted file mode 100644 index cf22f5cca..000000000 --- a/google/ads/googleads/v8/resources/ad_group_bid_modifier.proto +++ /dev/null @@ -1,112 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/enums/bid_modifier_source.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupBidModifierProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group bid modifier resource. - -// Represents an ad group bid modifier. -message AdGroupBidModifier { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupBidModifier" - pattern: "customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}" - }; - - // Immutable. The resource name of the ad group bid modifier. - // Ad group bid modifier resource names have the form: - // - // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupBidModifier" - } - ]; - - // Immutable. The ad group to which this criterion belongs. - optional string ad_group = 13 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. The ID of the criterion to bid modify. - // - // This field is ignored for mutates. - optional int64 criterion_id = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The modifier for the bid when the criterion matches. The modifier must be - // in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent. - // Use 0 to opt out of a Device type. - optional double bid_modifier = 15; - - // Output only. The base ad group from which this draft/trial adgroup bid modifier was - // created. If ad_group is a base ad group then this field will be equal to - // ad_group. If the ad group was created in the draft or trial and has no - // corresponding base ad group, then this field will be null. - // This field is readonly. - optional string base_ad_group = 16 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. Bid modifier source. - google.ads.googleads.v8.enums.BidModifierSourceEnum.BidModifierSource bid_modifier_source = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The criterion of this ad group bid modifier. - // - // Required in create operations starting in V5. - oneof criterion { - // Immutable. Criterion for hotel date selection (default dates vs. user selected). - google.ads.googleads.v8.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.v8.common.HotelAdvanceBookingWindowInfo hotel_advance_booking_window = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Criterion for length of hotel stay in nights. - google.ads.googleads.v8.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.v8.common.HotelCheckInDayInfo hotel_check_in_day = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A device criterion. - google.ads.googleads.v8.common.DeviceInfo device = 11 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A preferred content criterion. - google.ads.googleads.v8.common.PreferredContentInfo preferred_content = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Criterion for a hotel check-in date range. - google.ads.googleads.v8.common.HotelCheckInDateRangeInfo hotel_check_in_date_range = 17 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/ad_group_criterion.proto b/google/ads/googleads/v8/resources/ad_group_criterion.proto deleted file mode 100644 index 0d5e9d61b..000000000 --- a/google/ads/googleads/v8/resources/ad_group_criterion.proto +++ /dev/null @@ -1,291 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/common/custom_parameter.proto"; -import "google/ads/googleads/v8/enums/ad_group_criterion_approval_status.proto"; -import "google/ads/googleads/v8/enums/ad_group_criterion_status.proto"; -import "google/ads/googleads/v8/enums/bidding_source.proto"; -import "google/ads/googleads/v8/enums/criterion_system_serving_status.proto"; -import "google/ads/googleads/v8/enums/criterion_type.proto"; -import "google/ads/googleads/v8/enums/quality_score_bucket.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group criterion resource. - -// An ad group criterion. -message AdGroupCriterion { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupCriterion" - pattern: "customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}" - }; - - // A container for ad group criterion quality information. - message QualityInfo { - // Output only. The quality score. - // - // This field may not be populated if Google does not have enough - // information to determine a value. - optional int32 quality_score = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The performance of the ad compared to other advertisers. - google.ads.googleads.v8.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.v8.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.v8.enums.QualityScoreBucketEnum.QualityScoreBucket search_predicted_ctr = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Estimates for criterion bids at various positions. - message PositionEstimates { - // Output only. The estimate of the CPC bid required for ad to be shown on first - // page of search results. - optional int64 first_page_cpc_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimate of the CPC bid required for ad to be displayed in first - // position, at the top of the first page of search results. - optional int64 first_position_cpc_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimate of the CPC bid required for ad to be displayed at the top - // of the first page of search results. - optional int64 top_of_page_cpc_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimate of how many clicks per week you might get by changing your - // keyword bid to the value in first_position_cpc_micros. - optional int64 estimated_add_clicks_at_first_position_cpc = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimate of how your cost per week might change when changing your - // keyword bid to the value in first_position_cpc_micros. - optional int64 estimated_add_cost_at_first_position_cpc = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the ad group criterion. - // Ad group criterion resource names have the form: - // - // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Output only. The ID of the criterion. - // - // This field is ignored for mutates. - optional int64 criterion_id = 56 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The display name of the criterion. - // - // This field is ignored for mutates. - string display_name = 77 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The status of the criterion. - // - // This is the status of the ad group criterion entity, set by the client. - // Note: UI reports may incorporate additional information that affects - // whether a criterion is eligible to run. In some cases a criterion that's - // REMOVED in the API can still show as enabled in the UI. - // For example, campaigns by default show to users of all age ranges unless - // 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.v8.enums.AdGroupCriterionStatusEnum.AdGroupCriterionStatus status = 3; - - // Output only. Information regarding the quality of the criterion. - QualityInfo quality_info = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The ad group to which the criterion belongs. - optional string ad_group = 57 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. The type of the criterion. - google.ads.googleads.v8.enums.CriterionTypeEnum.CriterionType type = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. - // - // This field is immutable. To switch a criterion from positive to negative, - // remove then re-add it. - optional bool negative = 58 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Serving status of the criterion. - google.ads.googleads.v8.enums.CriterionSystemServingStatusEnum.CriterionSystemServingStatus system_serving_status = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Approval status of the criterion. - google.ads.googleads.v8.enums.AdGroupCriterionApprovalStatusEnum.AdGroupCriterionApprovalStatus approval_status = 53 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. List of disapproval reasons of the criterion. - // - // The different reasons for disapproving a criterion can be found here: - // https://support.google.com/adspolicy/answer/6008942 - // - // This field is read-only. - repeated string disapproval_reasons = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource names of labels attached to this ad group criterion. - repeated string labels = 60 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionLabel" - } - ]; - - // The modifier for the bid when the criterion matches. The modifier must be - // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. - optional double bid_modifier = 61; - - // The CPC (cost-per-click) bid. - optional int64 cpc_bid_micros = 62; - - // The CPM (cost-per-thousand viewable impressions) bid. - optional int64 cpm_bid_micros = 63; - - // The CPV (cost-per-view) bid. - optional int64 cpv_bid_micros = 64; - - // The CPC bid amount, expressed as a fraction of the advertised price - // for some good or service. The valid range for the fraction is [0,1) and the - // value stored here is 1,000,000 * [fraction]. - optional int64 percent_cpc_bid_micros = 65; - - // Output only. The effective CPC (cost-per-click) bid. - optional int64 effective_cpc_bid_micros = 66 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The effective CPM (cost-per-thousand viewable impressions) bid. - optional int64 effective_cpm_bid_micros = 67 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The effective CPV (cost-per-view) bid. - optional int64 effective_cpv_bid_micros = 68 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The effective Percent CPC bid amount. - optional int64 effective_percent_cpc_bid_micros = 69 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Source of the effective CPC bid. - google.ads.googleads.v8.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.v8.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.v8.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.v8.enums.BiddingSourceEnum.BiddingSource effective_percent_cpc_bid_source = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimates for criterion bids at various positions. - PositionEstimates position_estimates = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The list of possible final URLs after all cross-domain redirects for the - // ad. - repeated string final_urls = 70; - - // The list of possible final mobile URLs after all cross-domain redirects. - repeated string final_mobile_urls = 71; - - // URL template for appending params to final URL. - optional string final_url_suffix = 72; - - // The URL template for constructing a tracking URL. - optional string tracking_url_template = 73; - - // 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.v8.common.CustomParameter url_custom_parameters = 14; - - // The ad group criterion. - // - // Exactly one must be set. - oneof criterion { - // Immutable. Keyword. - google.ads.googleads.v8.common.KeywordInfo keyword = 27 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Placement. - google.ads.googleads.v8.common.PlacementInfo placement = 28 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile app category. - google.ads.googleads.v8.common.MobileAppCategoryInfo mobile_app_category = 29 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile application. - google.ads.googleads.v8.common.MobileApplicationInfo mobile_application = 30 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Listing group. - google.ads.googleads.v8.common.ListingGroupInfo listing_group = 32 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Age range. - google.ads.googleads.v8.common.AgeRangeInfo age_range = 36 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Gender. - google.ads.googleads.v8.common.GenderInfo gender = 37 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Income range. - google.ads.googleads.v8.common.IncomeRangeInfo income_range = 38 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Parental status. - google.ads.googleads.v8.common.ParentalStatusInfo parental_status = 39 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. User List. - google.ads.googleads.v8.common.UserListInfo user_list = 42 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Video. - google.ads.googleads.v8.common.YouTubeVideoInfo youtube_video = 40 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Channel. - google.ads.googleads.v8.common.YouTubeChannelInfo youtube_channel = 41 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Topic. - google.ads.googleads.v8.common.TopicInfo topic = 43 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. User Interest. - google.ads.googleads.v8.common.UserInterestInfo user_interest = 45 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Webpage - google.ads.googleads.v8.common.WebpageInfo webpage = 46 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. App Payment Model. - google.ads.googleads.v8.common.AppPaymentModelInfo app_payment_model = 47 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Affinity. - google.ads.googleads.v8.common.CustomAffinityInfo custom_affinity = 48 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Intent. - google.ads.googleads.v8.common.CustomIntentInfo custom_intent = 49 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Audience. - google.ads.googleads.v8.common.CustomAudienceInfo custom_audience = 74 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Combined Audience. - google.ads.googleads.v8.common.CombinedAudienceInfo combined_audience = 75 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/ad_group_criterion_label.proto b/google/ads/googleads/v8/resources/ad_group_criterion_label.proto deleted file mode 100644 index 5ecf9e676..000000000 --- a/google/ads/googleads/v8/resources/ad_group_criterion_label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionLabelProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group criterion label resource. - -// A relationship between an ad group criterion and a label. -message AdGroupCriterionLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupCriterionLabel" - pattern: "customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}" - }; - - // Immutable. The resource name of the ad group criterion label. - // Ad group criterion label resource names have the form: - // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionLabel" - } - ]; - - // Immutable. The ad group criterion to which the label is attached. - optional string ad_group_criterion = 4 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Immutable. The label assigned to the ad group criterion. - optional string label = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/ad_group_criterion_simulation.proto b/google/ads/googleads/v8/resources/ad_group_criterion_simulation.proto deleted file mode 100644 index 0b0877c0b..000000000 --- a/google/ads/googleads/v8/resources/ad_group_criterion_simulation.proto +++ /dev/null @@ -1,90 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/simulation.proto"; -import "google/ads/googleads/v8/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v8/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionSimulationProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group criterion simulation resource. - -// An ad group criterion simulation. Supported combinations of advertising -// channel type, criterion type, simulation type, and simulation modification -// method are detailed below respectively. Hotel AdGroupCriterion simulation -// operations starting in V5. -// -// 1. DISPLAY - KEYWORD - CPC_BID - UNIFORM -// 2. SEARCH - KEYWORD - CPC_BID - UNIFORM -// 3. SHOPPING - LISTING_GROUP - CPC_BID - UNIFORM -// 4. HOTEL - LISTING_GROUP - CPC_BID - UNIFORM -// 5. HOTEL - LISTING_GROUP - PERCENT_CPC_BID - UNIFORM -message AdGroupCriterionSimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupCriterionSimulation" - pattern: "customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the ad group criterion simulation. - // Ad group criterion simulation resource names have the form: - // - // `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionSimulation" - } - ]; - - // Output only. AdGroup ID of the simulation. - optional int64 ad_group_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Criterion ID of the simulation. - optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v8.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v8.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - optional string start_date = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format. - optional string end_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v8.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.v8.common.PercentCpcBidSimulationPointList percent_cpc_bid_point_list = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/ad_group_extension_setting.proto b/google/ads/googleads/v8/resources/ad_group_extension_setting.proto deleted file mode 100644 index 9ae23f56c..000000000 --- a/google/ads/googleads/v8/resources/ad_group_extension_setting.proto +++ /dev/null @@ -1,79 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/extension_setting_device.proto"; -import "google/ads/googleads/v8/enums/extension_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the AdGroupExtensionSetting resource. - -// An ad group extension setting. -message AdGroupExtensionSetting { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupExtensionSetting" - pattern: "customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}" - }; - - // Immutable. The resource name of the ad group extension setting. - // AdGroupExtensionSetting resource names have the form: - // - // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupExtensionSetting" - } - ]; - - // Immutable. The extension type of the ad group extension setting. - google.ads.googleads.v8.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The resource name of the ad group. The linked extension feed items will - // serve under this ad group. - // AdGroup resource names have the form: - // - // `customers/{customer_id}/adGroups/{ad_group_id}` - optional string ad_group = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // The resource names of the extension feed items to serve under the ad group. - // ExtensionFeedItem resource names have the form: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - repeated string extension_feed_items = 7 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - }]; - - // The device for which the extensions will serve. Optional. - google.ads.googleads.v8.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5; -} diff --git a/google/ads/googleads/v8/resources/ad_group_feed.proto b/google/ads/googleads/v8/resources/ad_group_feed.proto deleted file mode 100644 index fad3eb99d..000000000 --- a/google/ads/googleads/v8/resources/ad_group_feed.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/matching_function.proto"; -import "google/ads/googleads/v8/enums/feed_link_status.proto"; -import "google/ads/googleads/v8/enums/placeholder_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupFeedProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the AdGroupFeed resource. - -// An ad group feed. -message AdGroupFeed { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupFeed" - pattern: "customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}" - }; - - // Immutable. The resource name of the ad group feed. - // Ad group feed resource names have the form: - // - // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id} - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupFeed" - } - ]; - - // Immutable. The feed being linked to the ad group. - optional string feed = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Immutable. The ad group being linked to the feed. - optional string ad_group = 8 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Indicates which placeholder types the feed may populate under the connected - // ad group. Required. - repeated google.ads.googleads.v8.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.v8.common.MatchingFunction matching_function = 5; - - // Output only. Status of the ad group feed. - // This field is read-only. - google.ads.googleads.v8.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/ad_group_label.proto b/google/ads/googleads/v8/resources/ad_group_label.proto deleted file mode 100644 index cf0b1858d..000000000 --- a/google/ads/googleads/v8/resources/ad_group_label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupLabelProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group label resource. - -// A relationship between an ad group and a label. -message AdGroupLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupLabel" - pattern: "customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}" - }; - - // Immutable. The resource name of the ad group label. - // Ad group label resource names have the form: - // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupLabel" - } - ]; - - // Immutable. The ad group to which the label is attached. - optional string ad_group = 4 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Immutable. The label assigned to the ad group. - optional string label = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/ad_group_simulation.proto b/google/ads/googleads/v8/resources/ad_group_simulation.proto deleted file mode 100644 index a5248cb00..000000000 --- a/google/ads/googleads/v8/resources/ad_group_simulation.proto +++ /dev/null @@ -1,94 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/simulation.proto"; -import "google/ads/googleads/v8/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v8/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupSimulationProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad group simulation resource. - -// An ad group simulation. Supported combinations of advertising -// channel type, simulation type and simulation modification method is -// detailed below respectively. -// -// 1. SEARCH - CPC_BID - DEFAULT -// 2. SEARCH - CPC_BID - UNIFORM -// 3. SEARCH - TARGET_CPA - UNIFORM -// 4. SEARCH - TARGET_ROAS - UNIFORM -// 5. DISPLAY - CPC_BID - DEFAULT -// 6. DISPLAY - CPC_BID - UNIFORM -// 7. DISPLAY - TARGET_CPA - UNIFORM -message AdGroupSimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdGroupSimulation" - pattern: "customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the ad group simulation. - // Ad group simulation resource names have the form: - // - // `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupSimulation" - } - ]; - - // Output only. Ad group id of the simulation. - optional int64 ad_group_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v8.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v8.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - optional string start_date = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format - optional string end_date = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v8.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.v8.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.v8.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.v8.common.TargetRoasSimulationPointList target_roas_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/ad_parameter.proto b/google/ads/googleads/v8/resources/ad_parameter.proto deleted file mode 100644 index eb4d3da0c..000000000 --- a/google/ads/googleads/v8/resources/ad_parameter.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdParameterProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad parameter resource. - -// An ad parameter that is used to update numeric values (such as prices or -// inventory levels) in any text line of an ad (including URLs). There can -// be a maximum of two AdParameters per ad group criterion. (One with -// parameter_index = 1 and one with parameter_index = 2.) -// In the ad the parameters are referenced by a placeholder of the form -// "{param#:value}". E.g. "{param1:$17}" -message AdParameter { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdParameter" - pattern: "customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}" - }; - - // Immutable. The resource name of the ad parameter. - // Ad parameter resource names have the form: - // - // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdParameter" - } - ]; - - // Immutable. The ad group criterion that this ad parameter belongs to. - optional string ad_group_criterion = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Immutable. The unique index of this ad parameter. Must be either 1 or 2. - optional int64 parameter_index = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Numeric value to insert into the ad text. The following restrictions - // apply: - // - Can use comma or period as a separator, with an optional period or - // comma (respectively) for fractional values. For example, 1,000,000.00 - // and 2.000.000,10 are valid. - // - Can be prepended or appended with a currency symbol. For example, - // $99.99 is valid. - // - Can be prepended or appended with a currency code. For example, 99.99USD - // and EUR200 are valid. - // - Can use '%'. For example, 1.0% and 1,0% are valid. - // - Can use plus or minus. For example, -10.99 and 25+ are valid. - // - Can use '/' between two numbers. For example 4/1 and 0.95/0.45 are - // valid. - optional string insertion_text = 7; -} diff --git a/google/ads/googleads/v8/resources/ad_schedule_view.proto b/google/ads/googleads/v8/resources/ad_schedule_view.proto deleted file mode 100644 index bdaa1e90d..000000000 --- a/google/ads/googleads/v8/resources/ad_schedule_view.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AdScheduleViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ad schedule view resource. - -// An ad schedule view summarizes the performance of campaigns by -// AdSchedule criteria. -message AdScheduleView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AdScheduleView" - pattern: "customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}" - }; - - // Output only. The resource name of the ad schedule view. - // AdSchedule view resource names have the form: - // - // `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdScheduleView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/age_range_view.proto b/google/ads/googleads/v8/resources/age_range_view.proto deleted file mode 100644 index 515935854..000000000 --- a/google/ads/googleads/v8/resources/age_range_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AgeRangeViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the age range view resource. - -// An age range view. -message AgeRangeView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AgeRangeView" - pattern: "customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the age range view. - // Age range view resource names have the form: - // - // `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AgeRangeView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/asset.proto b/google/ads/googleads/v8/resources/asset.proto deleted file mode 100644 index 269b88838..000000000 --- a/google/ads/googleads/v8/resources/asset.proto +++ /dev/null @@ -1,135 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/asset_types.proto"; -import "google/ads/googleads/v8/common/custom_parameter.proto"; -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/enums/asset_type.proto"; -import "google/ads/googleads/v8/enums/policy_approval_status.proto"; -import "google/ads/googleads/v8/enums/policy_review_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AssetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the asset resource. - -// Asset is a part of an ad which can be shared across multiple ads. -// It can be an image (ImageAsset), a video (YoutubeVideoAsset), etc. -// Assets are immutable and cannot be removed. To stop an asset from serving, -// remove the asset from the entity that is using it. -message Asset { - option (google.api.resource) = { - type: "googleads.googleapis.com/Asset" - pattern: "customers/{customer_id}/assets/{asset_id}" - }; - - // Immutable. The resource name of the asset. - // Asset resource names have the form: - // - // `customers/{customer_id}/assets/{asset_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Output only. The ID of the asset. - optional int64 id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional name of the asset. - optional string name = 12; - - // Output only. Type of the asset. - google.ads.googleads.v8.enums.AssetTypeEnum.AssetType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // A list of possible final URLs after all cross domain redirects. - repeated string final_urls = 14; - - // A list of possible final mobile URLs after all cross domain redirects. - repeated string final_mobile_urls = 16; - - // URL template for constructing a tracking URL. - optional string tracking_url_template = 17; - - // 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.v8.common.CustomParameter url_custom_parameters = 18; - - // URL template for appending params to landing page URLs served with parallel - // tracking. - optional string final_url_suffix = 19; - - // Output only. Policy information for the asset. - AssetPolicySummary policy_summary = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The specific type of the asset. - oneof asset_data { - // Immutable. A YouTube video asset. - google.ads.googleads.v8.common.YoutubeVideoAsset youtube_video_asset = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A media bundle asset. - google.ads.googleads.v8.common.MediaBundleAsset media_bundle_asset = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. An image asset. - google.ads.googleads.v8.common.ImageAsset image_asset = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A text asset. - google.ads.googleads.v8.common.TextAsset text_asset = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // A lead form asset. - google.ads.googleads.v8.common.LeadFormAsset lead_form_asset = 9; - - // A book on google asset. - google.ads.googleads.v8.common.BookOnGoogleAsset book_on_google_asset = 10; - - // A promotion asset. - google.ads.googleads.v8.common.PromotionAsset promotion_asset = 15; - - // A callout asset. - google.ads.googleads.v8.common.CalloutAsset callout_asset = 20; - - // A structured snippet asset. - google.ads.googleads.v8.common.StructuredSnippetAsset structured_snippet_asset = 21; - - // A sitelink asset. - google.ads.googleads.v8.common.SitelinkAsset sitelink_asset = 22; - } -} - -// Contains policy information for an asset. -message AssetPolicySummary { - // Output only. The list of policy findings for this asset. - repeated google.ads.googleads.v8.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.v8.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.v8.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/asset_field_type_view.proto b/google/ads/googleads/v8/resources/asset_field_type_view.proto deleted file mode 100644 index 022d701f6..000000000 --- a/google/ads/googleads/v8/resources/asset_field_type_view.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/asset_field_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "AssetFieldTypeViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the AssetFieldTypeView resource. - -// An asset field type view. -// This view reports non-overcounted metrics for each asset field type when the -// asset is used as extension. -message AssetFieldTypeView { - option (google.api.resource) = { - type: "googleads.googleapis.com/AssetFieldTypeView" - pattern: "customers/{customer_id}/assetFieldTypeViews/{field_type}" - }; - - // Output only. The resource name of the asset field type view. - // Asset field type view resource names have the form: - // - // `customers/{customer_id}/assetFieldTypeViews/{field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AssetFieldTypeView" - } - ]; - - // Output only. The asset field type of the asset field type view. - google.ads.googleads.v8.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/batch_job.proto b/google/ads/googleads/v8/resources/batch_job.proto deleted file mode 100644 index e65959f33..000000000 --- a/google/ads/googleads/v8/resources/batch_job.proto +++ /dev/null @@ -1,98 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/batch_job_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BatchJobProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the batch job resource. - -// A list of mutates being processed asynchronously. The mutates are uploaded -// by the user. The mutates themselves aren't readable and the results of the -// job can only be read using BatchJobService.ListBatchJobResults. -message BatchJob { - option (google.api.resource) = { - type: "googleads.googleapis.com/BatchJob" - pattern: "customers/{customer_id}/batchJobs/{batch_job_id}" - }; - - // Additional information about the batch job. This message is also used as - // metadata returned in batch job Long Running Operations. - message BatchJobMetadata { - // Output only. The time when this batch job was created. - // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:00" - optional string creation_date_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time when this batch job started running. - // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:30" - optional string start_date_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time when this batch job was completed. - // Formatted as yyyy-MM-dd HH:mm:ss. Example: "2018-03-05 09:16:00" - optional string completion_date_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The fraction (between 0.0 and 1.0) of mutates that have been processed. - // This is empty if the job hasn't started running yet. - optional double estimated_completion_ratio = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of mutate operations in the batch job. - optional int64 operation_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of mutate operations executed by the batch job. - // Present only if the job has started running. - optional int64 executed_operation_count = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the batch job. - // Batch job resource names have the form: - // - // `customers/{customer_id}/batchJobs/{batch_job_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; - - // Output only. ID of this batch job. - optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The next sequence token to use when adding operations. Only set when the - // batch job status is PENDING. - optional string next_add_sequence_token = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Contains additional information about this batch job. - BatchJobMetadata metadata = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of this batch job. - google.ads.googleads.v8.enums.BatchJobStatusEnum.BatchJobStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the long-running operation that can be used to poll - // for completion. Only set when the batch job status is RUNNING or DONE. - optional string long_running_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/bidding_data_exclusion.proto b/google/ads/googleads/v8/resources/bidding_data_exclusion.proto deleted file mode 100644 index 72c57815d..000000000 --- a/google/ads/googleads/v8/resources/bidding_data_exclusion.proto +++ /dev/null @@ -1,108 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v8/enums/device.proto"; -import "google/ads/googleads/v8/enums/seasonality_event_scope.proto"; -import "google/ads/googleads/v8/enums/seasonality_event_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BiddingDataExclusionProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Represents a bidding data exclusion. -// -// See "About data exclusions" at -// https://support.google.com/google-ads/answer/10370710. -message BiddingDataExclusion { - option (google.api.resource) = { - type: "googleads.googleapis.com/BiddingDataExclusion" - pattern: "customers/{customer_id}/biddingDataExclusions/{seasonality_event_id}" - }; - - // Immutable. The resource name of the data exclusion. - // Data exclusion resource names have the form: - // - // `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingDataExclusion" - } - ]; - - // Output only. The ID of the data exclusion. - int64 data_exclusion_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The scope of the data exclusion. - google.ads.googleads.v8.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; - - // Output only. The status of the data exclusion. - google.ads.googleads.v8.enums.SeasonalityEventStatusEnum.SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The inclusive start time of the data exclusion in yyyy-MM-dd HH:mm:ss - // format. - // - // A data exclusion is backward looking and should be used for events that - // start in the past and end either in the past or future. - string start_date_time = 5 [(google.api.field_behavior) = REQUIRED]; - - // Required. The exclusive end time of the data exclusion in yyyy-MM-dd HH:mm:ss format. - // - // The length of [start_date_time, end_date_time) interval must be - // within (0, 14 days]. - string end_date_time = 6 [(google.api.field_behavior) = REQUIRED]; - - // The name of the data exclusion. The name can be at most 255 - // characters. - string name = 7; - - // The description of the data exclusion. The description can be at - // most 2048 characters. - string description = 8; - - // 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.v8.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 - // 2000. - // Note: a data exclusion with both advertising_channel_types and - // campaign_ids is not supported. - repeated string campaigns = 10 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - }]; - - // The data_exclusion will apply to all the campaigns under the listed - // channels retroactively as well as going forward when the scope of this - // exclusion is CHANNEL. - // 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.v8.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_types = 11; -} diff --git a/google/ads/googleads/v8/resources/bidding_seasonality_adjustment.proto b/google/ads/googleads/v8/resources/bidding_seasonality_adjustment.proto deleted file mode 100644 index d9fbca982..000000000 --- a/google/ads/googleads/v8/resources/bidding_seasonality_adjustment.proto +++ /dev/null @@ -1,114 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v8/enums/device.proto"; -import "google/ads/googleads/v8/enums/seasonality_event_scope.proto"; -import "google/ads/googleads/v8/enums/seasonality_event_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BiddingSeasonalityAdjustmentProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Represents a bidding seasonality adjustment. -// -// See "About seasonality adjustments" at -// https://support.google.com/google-ads/answer/10369906. -message BiddingSeasonalityAdjustment { - option (google.api.resource) = { - type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" - pattern: "customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_event_id}" - }; - - // Immutable. The resource name of the seasonality adjustment. - // Seasonality adjustment resource names have the form: - // - // `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" - } - ]; - - // Output only. The ID of the seasonality adjustment. - int64 seasonality_adjustment_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The scope of the seasonality adjustment. - google.ads.googleads.v8.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; - - // Output only. The status of the seasonality adjustment. - google.ads.googleads.v8.enums.SeasonalityEventStatusEnum.SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The inclusive start time of the seasonality adjustment in yyyy-MM-dd - // HH:mm:ss format. - // - // A seasonality adjustment is forward looking and should be used for events - // that start and end in the future. - string start_date_time = 5 [(google.api.field_behavior) = REQUIRED]; - - // Required. The exclusive end time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss - // format. - // - // The length of [start_date_time, end_date_time) interval must be - // within (0, 14 days]. - string end_date_time = 6 [(google.api.field_behavior) = REQUIRED]; - - // The name of the seasonality adjustment. The name can be at most 255 - // characters. - string name = 7; - - // The description of the seasonality adjustment. The description can be at - // most 2048 characters. - string description = 8; - - // 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.v8.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 - // applied to traffic. The allowed range is 0.1 to 10.0. - double conversion_rate_modifier = 10; - - // The seasonality adjustment will apply to the campaigns listed when the - // scope of this adjustment is CAMPAIGN. The maximum number of campaigns per - // event is 2000. - // Note: a seasonality adjustment with both advertising_channel_types and - // campaign_ids is not supported. - repeated string campaigns = 11 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - }]; - - // The seasonality adjustment will apply to all the campaigns under the listed - // channels retroactively as well as going forward when the scope of this - // adjustment is CHANNEL. - // 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.v8.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_types = 12; -} diff --git a/google/ads/googleads/v8/resources/bidding_strategy.proto b/google/ads/googleads/v8/resources/bidding_strategy.proto deleted file mode 100644 index 9e4b8a561..000000000 --- a/google/ads/googleads/v8/resources/bidding_strategy.proto +++ /dev/null @@ -1,139 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/bidding.proto"; -import "google/ads/googleads/v8/enums/bidding_strategy_status.proto"; -import "google/ads/googleads/v8/enums/bidding_strategy_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the BiddingStrategy resource - -// A bidding strategy. -message BiddingStrategy { - option (google.api.resource) = { - type: "googleads.googleapis.com/BiddingStrategy" - pattern: "customers/{customer_id}/biddingStrategies/{bidding_strategy_id}" - }; - - // Immutable. The resource name of the bidding strategy. - // Bidding strategy resource names have the form: - // - // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategy" - } - ]; - - // Output only. The ID of the bidding strategy. - optional int64 id = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the bidding strategy. - // All bidding strategies within an account must be named distinctly. - // - // The length of this string should be between 1 and 255, inclusive, - // in UTF-8 bytes, (trimmed). - optional string name = 17; - - // Output only. The status of the bidding strategy. - // - // This field is read-only. - google.ads.googleads.v8.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.v8.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The currency used by the bidding strategy (ISO 4217 three-letter code). - // - // For bidding strategies in manager customers, this currency can be set on - // creation and defaults to the manager customer's currency. For serving - // customers, this field cannot be set; all strategies in a serving customer - // implicitly use the serving customer's currency. In all cases the - // effective_currency_code field returns the currency used by the strategy. - string currency_code = 23 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The currency used by the bidding strategy (ISO 4217 three-letter code). - // - // For bidding strategies in manager customers, this is the currency set by - // the advertiser when creating the strategy. For serving customers, this is - // the customer's currency_code. - // - // Bidding strategy metrics are reported in this currency. - // - // This field is read-only. - optional string effective_currency_code = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of campaigns attached to this bidding strategy. - // - // This field is read-only. - optional int64 campaign_count = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of non-removed campaigns attached to this bidding strategy. - // - // This field is read-only. - optional int64 non_removed_campaign_count = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The bidding scheme. - // - // Only one can be set. - oneof scheme { - // 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.v8.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.v8.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.v8.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.v8.common.TargetCpa target_cpa = 9; - - // A bidding strategy that automatically optimizes towards a desired - // percentage of impressions. - google.ads.googleads.v8.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.v8.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.v8.common.TargetSpend target_spend = 12; - } -} diff --git a/google/ads/googleads/v8/resources/bidding_strategy_simulation.proto b/google/ads/googleads/v8/resources/bidding_strategy_simulation.proto deleted file mode 100644 index 256c362d1..000000000 --- a/google/ads/googleads/v8/resources/bidding_strategy_simulation.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/simulation.proto"; -import "google/ads/googleads/v8/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v8/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategySimulationProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the bidding strategy simulation resource. - -// A bidding strategy simulation. Supported combinations of simulation type -// and simulation modification method are detailed below respectively. -// -// 1. TARGET_CPA - UNIFORM -// 2. TARGET_ROAS - UNIFORM -message BiddingStrategySimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/BiddingStrategySimulation" - pattern: "customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the bidding strategy simulation. - // Bidding strategy simulation resource names have the form: - // - // `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategySimulation" - } - ]; - - // Output only. Bidding strategy shared set id of the simulation. - int64 bidding_strategy_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v8.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v8.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - string start_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format - string end_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is TARGET_CPA. - google.ads.googleads.v8.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.v8.common.TargetRoasSimulationPointList target_roas_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/billing_setup.proto b/google/ads/googleads/v8/resources/billing_setup.proto deleted file mode 100644 index 63d2930f0..000000000 --- a/google/ads/googleads/v8/resources/billing_setup.proto +++ /dev/null @@ -1,138 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/billing_setup_status.proto"; -import "google/ads/googleads/v8/enums/time_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "BillingSetupProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the BillingSetup resource. - -// A billing setup, which associates a payments account and an advertiser. A -// billing setup is specific to one advertiser. -message BillingSetup { - option (google.api.resource) = { - type: "googleads.googleapis.com/BillingSetup" - pattern: "customers/{customer_id}/billingSetups/{billing_setup_id}" - }; - - // Container of payments account information for this billing. - message PaymentsAccountInfo { - // Output only. A 16 digit id used to identify the payments account associated with the - // billing setup. - // - // This must be passed as a string with dashes, e.g. "1234-5678-9012-3456". - optional string payments_account_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The name of the payments account associated with the billing setup. - // - // This enables the user to specify a meaningful name for a payments account - // to aid in reconciling monthly invoices. - // - // This name will be printed in the monthly invoices. - optional string payments_account_name = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A 12 digit id used to identify the payments profile associated with the - // billing setup. - // - // This must be passed in as a string with dashes, e.g. "1234-5678-9012". - optional string payments_profile_id = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The name of the payments profile associated with the billing setup. - optional string payments_profile_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A secondary payments profile id present in uncommon situations, e.g. - // when a sequential liability agreement has been arranged. - optional string secondary_payments_profile_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the billing setup. - // BillingSetup resource names have the form: - // - // `customers/{customer_id}/billingSetups/{billing_setup_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BillingSetup" - } - ]; - - // Output only. The ID of the billing setup. - optional int64 id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The status of the billing setup. - google.ads.googleads.v8.enums.BillingSetupStatusEnum.BillingSetupStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The resource name of the payments account associated with this billing - // setup. Payments resource names have the form: - // - // `customers/{customer_id}/paymentsAccounts/{payments_account_id}` - // When setting up billing, this is used to signup with an existing payments - // account (and then payments_account_info should not be set). - // When getting a billing setup, this and payments_account_info will be - // populated. - optional string payments_account = 18 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/PaymentsAccount" - } - ]; - - // Immutable. The payments account information associated with this billing setup. - // When setting up billing, this is used to signup with a new payments account - // (and then payments_account should not be set). - // When getting a billing setup, this and payments_account will be - // populated. - PaymentsAccountInfo payments_account_info = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // When creating a new billing setup, this is when the setup should take - // effect. NOW is the only acceptable start time if the customer doesn't have - // any approved setups. - // - // When fetching an existing billing setup, this is the requested start time. - // However, if the setup was approved (see status) after the requested start - // time, then this is the approval time. - oneof start_time { - // Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. Only a - // future time is allowed. - string start_date_time = 16 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The start time as a type. Only NOW is allowed. - google.ads.googleads.v8.enums.TimeTypeEnum.TimeType start_time_type = 10 [(google.api.field_behavior) = IMMUTABLE]; - } - - // When the billing setup ends / ended. This is either FOREVER or the start - // time of the next scheduled billing setup. - oneof end_time { - // Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. - 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.v8.enums.TimeTypeEnum.TimeType end_time_type = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/call_view.proto b/google/ads/googleads/v8/resources/call_view.proto deleted file mode 100644 index d28e1513d..000000000 --- a/google/ads/googleads/v8/resources/call_view.proto +++ /dev/null @@ -1,80 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/call_tracking_display_location.proto"; -import "google/ads/googleads/v8/enums/call_type.proto"; -import "google/ads/googleads/v8/enums/google_voice_call_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CallViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the call view resource. - -// A call view that includes data for call tracking of call-only ads or call -// extensions. -message CallView { - option (google.api.resource) = { - type: "googleads.googleapis.com/CallView" - pattern: "customers/{customer_id}/callViews/{call_detail_id}" - }; - - // Output only. The resource name of the call view. - // Call view resource names have the form: - // - // `customers/{customer_id}/callViews/{call_detail_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CallView" - } - ]; - - // Output only. Country code of the caller. - string caller_country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Area code of the caller. Null if the call duration is shorter than 15 - // seconds. - string caller_area_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The advertiser-provided call duration in seconds. - int64 call_duration_seconds = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The advertiser-provided call start date time. - string start_call_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The advertiser-provided call end date time. - string end_call_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The call tracking display location. - google.ads.googleads.v8.enums.CallTrackingDisplayLocationEnum.CallTrackingDisplayLocation call_tracking_display_location = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of the call. - google.ads.googleads.v8.enums.CallTypeEnum.CallType type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The status of the call. - google.ads.googleads.v8.enums.GoogleVoiceCallStatusEnum.GoogleVoiceCallStatus call_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/campaign.proto b/google/ads/googleads/v8/resources/campaign.proto deleted file mode 100644 index 2a3f6d6e2..000000000 --- a/google/ads/googleads/v8/resources/campaign.proto +++ /dev/null @@ -1,441 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/bidding.proto"; -import "google/ads/googleads/v8/common/custom_parameter.proto"; -import "google/ads/googleads/v8/common/frequency_cap.proto"; -import "google/ads/googleads/v8/common/real_time_bidding_setting.proto"; -import "google/ads/googleads/v8/common/targeting_setting.proto"; -import "google/ads/googleads/v8/enums/ad_serving_optimization_status.proto"; -import "google/ads/googleads/v8/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v8/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v8/enums/app_campaign_app_store.proto"; -import "google/ads/googleads/v8/enums/app_campaign_bidding_strategy_goal_type.proto"; -import "google/ads/googleads/v8/enums/asset_field_type.proto"; -import "google/ads/googleads/v8/enums/bidding_strategy_type.proto"; -import "google/ads/googleads/v8/enums/brand_safety_suitability.proto"; -import "google/ads/googleads/v8/enums/campaign_experiment_type.proto"; -import "google/ads/googleads/v8/enums/campaign_serving_status.proto"; -import "google/ads/googleads/v8/enums/campaign_status.proto"; -import "google/ads/googleads/v8/enums/location_source_type.proto"; -import "google/ads/googleads/v8/enums/negative_geo_target_type.proto"; -import "google/ads/googleads/v8/enums/optimization_goal_type.proto"; -import "google/ads/googleads/v8/enums/payment_mode.proto"; -import "google/ads/googleads/v8/enums/positive_geo_target_type.proto"; -import "google/ads/googleads/v8/enums/vanity_pharma_display_url_mode.proto"; -import "google/ads/googleads/v8/enums/vanity_pharma_text.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Campaign resource. - -// A campaign. -message Campaign { - option (google.api.resource) = { - type: "googleads.googleapis.com/Campaign" - pattern: "customers/{customer_id}/campaigns/{campaign_id}" - }; - - // The network settings for the campaign. - message NetworkSettings { - // Whether ads will be served with google.com search results. - optional bool target_google_search = 5; - - // Whether ads will be served on partner sites in the Google Search Network - // (requires `target_google_search` to also be `true`). - optional bool target_search_network = 6; - - // Whether ads will be served on specified placements in the Google Display - // Network. Placements are specified using the Placement criterion. - optional bool target_content_network = 7; - - // 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; - } - - // Campaign-level settings for hotel ads. - message HotelSettingInfo { - // Immutable. The linked Hotel Center account. - optional int64 hotel_center_id = 2 [(google.api.field_behavior) = IMMUTABLE]; - } - - // The setting for controlling Dynamic Search Ads (DSA). - message DynamicSearchAdsSetting { - // Required. The Internet domain name that this setting represents, e.g., "google.com" - // or "www.google.com". - string domain_name = 6 [(google.api.field_behavior) = REQUIRED]; - - // Required. The language code specifying the language of the domain, e.g., "en". - string language_code = 7 [(google.api.field_behavior) = REQUIRED]; - - // Whether the campaign uses advertiser supplied URLs exclusively. - optional bool use_supplied_urls_only = 8; - - // The list of page feeds associated with the campaign. - repeated string feeds = 9 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - }]; - } - - // Selective optimization setting for this campaign, which includes a set of - // conversion actions to optimize this campaign towards. - message SelectiveOptimization { - // The selected set of conversion actions for optimizing this campaign. - repeated string conversion_actions = 2 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionAction" - }]; - } - - // The setting for Shopping campaigns. Defines the universe of products that - // can be advertised by the campaign, and how this campaign interacts with - // other Shopping campaigns. - message ShoppingSetting { - // Immutable. 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. - // This field is required for Shopping campaigns. - // This field is optional for non-Shopping campaigns, but it must be equal - // to 'ZZ' if set. - optional string sales_country = 6; - - // Priority of the campaign. Campaigns with numerically higher priorities - // take precedence over those with lower priorities. - // This field is required for Shopping campaigns, with values between 0 and - // 2, inclusive. - // This field is optional for Smart Shopping campaigns, but must be equal to - // 3 if set. - optional int32 campaign_priority = 7; - - // Whether to include local products. - optional bool enable_local = 8; - } - - // Optimization goal setting for this campaign, which includes a set of - // optimization goal types. - message OptimizationGoalSetting { - // The list of optimization goal types. - repeated google.ads.googleads.v8.enums.OptimizationGoalTypeEnum.OptimizationGoalType optimization_goal_types = 1; - } - - // Campaign-level settings for tracking information. - message TrackingSetting { - // Output only. The url used for dynamic tracking. - optional string tracking_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Represents a collection of settings related to ads geotargeting. - message GeoTargetTypeSetting { - // The setting used for positive geotargeting in this particular campaign. - google.ads.googleads.v8.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType positive_geo_target_type = 1; - - // The setting used for negative geotargeting in this particular campaign. - google.ads.googleads.v8.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.v8.enums.LocationSourceTypeEnum.LocationSourceType location_source_type = 1; - } - - // Campaign-level settings for App Campaigns. - message AppCampaignSetting { - // Represents the goal which the bidding strategy of this app campaign - // should optimize towards. - google.ads.googleads.v8.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.v8.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.v8.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.v8.enums.VanityPharmaTextEnum.VanityPharmaText vanity_pharma_text = 2; - } - - // Immutable. The resource name of the campaign. - // Campaign resource names have the form: - // - // `customers/{customer_id}/campaigns/{campaign_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The ID of the campaign. - optional int64 id = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the campaign. - // - // This field is required and should not be empty when creating new - // campaigns. - // - // It must not contain any null (code point 0x0), NL line feed - // (code point 0xA) or carriage return (code point 0xD) characters. - optional string name = 58; - - // The status of the campaign. - // - // When a new campaign is added, the status defaults to ENABLED. - google.ads.googleads.v8.enums.CampaignStatusEnum.CampaignStatus status = 5; - - // Output only. The ad serving status of the campaign. - google.ads.googleads.v8.enums.CampaignServingStatusEnum.CampaignServingStatus serving_status = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The ad serving optimization status of the campaign. - google.ads.googleads.v8.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus ad_serving_optimization_status = 8; - - // Immutable. The primary serving target for ads within the campaign. - // The targeting options can be refined in `network_settings`. - // - // This field is required and should not be empty when creating new - // campaigns. - // - // Can be set only when creating campaigns. - // After the campaign is created, the field can not be changed. - google.ads.googleads.v8.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 9 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Optional refinement to `advertising_channel_type`. - // Must be a valid sub-type of the parent channel type. - // - // Can be set only when creating campaigns. - // After campaign is created, the field can not be changed. - google.ads.googleads.v8.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 10 [(google.api.field_behavior) = IMMUTABLE]; - - // The URL template for constructing a tracking URL. - optional string tracking_url_template = 60; - - // 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.v8.common.CustomParameter url_custom_parameters = 12; - - // Settings for Real-Time Bidding, a feature only available for campaigns - // targeting the Ad Exchange network. - google.ads.googleads.v8.common.RealTimeBiddingSetting real_time_bidding_setting = 39; - - // The network settings for the campaign. - NetworkSettings network_settings = 14; - - // Immutable. The hotel setting for the campaign. - HotelSettingInfo hotel_setting = 32 [(google.api.field_behavior) = IMMUTABLE]; - - // The setting for controlling Dynamic Search Ads (DSA). - DynamicSearchAdsSetting dynamic_search_ads_setting = 33; - - // The setting for controlling Shopping campaigns. - ShoppingSetting shopping_setting = 36; - - // Setting for targeting related features. - google.ads.googleads.v8.common.TargetingSetting targeting_setting = 43; - - // The setting for ads geotargeting. - GeoTargetTypeSetting geo_target_type_setting = 47; - - // The setting for local campaign. - LocalCampaignSetting local_campaign_setting = 50; - - // The setting related to App Campaign. - AppCampaignSetting app_campaign_setting = 51; - - // Output only. The resource names of labels attached to this campaign. - repeated string labels = 61 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignLabel" - } - ]; - - // Output only. The type of campaign: normal, draft, or experiment. - google.ads.googleads.v8.enums.CampaignExperimentTypeEnum.CampaignExperimentType experiment_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the base campaign of a draft or experiment campaign. - // For base campaigns, this is equal to `resource_name`. - // - // This field is read-only. - optional string base_campaign = 56 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // The budget of the campaign. - optional string campaign_budget = 62 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBudget" - }]; - - // Output only. The type of bidding strategy. - // - // A bidding strategy can be created by setting either the bidding scheme to - // create a standard bidding strategy or the `bidding_strategy` field to - // create a portfolio bidding strategy. - // - // This field is read-only. - google.ads.googleads.v8.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: "googleads.googleapis.com/AccessibleBiddingStrategy" - } - ]; - - // The date when campaign started. - optional string start_date = 63; - - // The last day of the campaign. - optional string end_date = 64; - - // Suffix used to append query parameters to landing pages that are served - // with parallel tracking. - optional string final_url_suffix = 65; - - // A list that limits how often each user will see this campaign's ads. - repeated google.ads.googleads.v8.common.FrequencyCapEntry frequency_caps = 40; - - // Output only. 3-Tier Brand Safety setting for the campaign. - google.ads.googleads.v8.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability video_brand_safety_suitability = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Describes how unbranded pharma ads will be displayed. - VanityPharma vanity_pharma = 44; - - // Selective optimization setting for this campaign, which includes a set of - // conversion actions to optimize this campaign towards. - SelectiveOptimization selective_optimization = 45; - - // Optimization goal setting for this campaign, which includes a set of - // optimization goal types. - OptimizationGoalSetting optimization_goal_setting = 54; - - // Output only. Campaign-level settings for tracking information. - TrackingSetting tracking_setting = 46 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Payment mode for the campaign. - google.ads.googleads.v8.enums.PaymentModeEnum.PaymentMode payment_mode = 52; - - // Output only. Optimization score of the campaign. - // - // Optimization score is an estimate of how well a campaign is set to perform. - // It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the - // campaign is performing at full potential. This field is null for unscored - // campaigns. - // - // See "About optimization score" at - // https://support.google.com/google-ads/answer/9061546. - // - // This field is read-only. - optional double optimization_score = 66 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // 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.v8.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 69; - - // The bidding strategy for the campaign. - // - // Must be either portfolio (created via BiddingStrategy service) or - // standard, that is embedded into the campaign. - oneof campaign_bidding_strategy { - // Portfolio bidding strategy used by campaign. - string bidding_strategy = 67 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategy" - }]; - - // Commission is an automatic bidding strategy in which the advertiser pays - // a certain portion of the conversion value. - google.ads.googleads.v8.common.Commission commission = 49; - - // Standard Manual CPC bidding strategy. - // Manual click-based bidding where user pays per click. - google.ads.googleads.v8.common.ManualCpc manual_cpc = 24; - - // Standard Manual CPM bidding strategy. - // Manual impression-based bidding where user pays per thousand - // impressions. - google.ads.googleads.v8.common.ManualCpm manual_cpm = 25; - - // Output only. A bidding strategy that pays a configurable amount per video view. - google.ads.googleads.v8.common.ManualCpv manual_cpv = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Standard Maximize Conversions bidding strategy that automatically - // maximizes number of conversions while spending your budget. - google.ads.googleads.v8.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.v8.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.v8.common.TargetCpa target_cpa = 26; - - // Target Impression Share bidding strategy. An automated bidding strategy - // that sets bids to achieve a desired percentage of impressions. - google.ads.googleads.v8.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.v8.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.v8.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.v8.common.PercentCpc percent_cpc = 34; - - // A bidding strategy that automatically optimizes cost per thousand - // impressions. - google.ads.googleads.v8.common.TargetCpm target_cpm = 41; - } -} diff --git a/google/ads/googleads/v8/resources/campaign_asset.proto b/google/ads/googleads/v8/resources/campaign_asset.proto deleted file mode 100644 index bf012e660..000000000 --- a/google/ads/googleads/v8/resources/campaign_asset.proto +++ /dev/null @@ -1,76 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/asset_field_type.proto"; -import "google/ads/googleads/v8/enums/asset_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignAssetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CampaignAsset resource. - -// A link between a Campaign and an Asset. -message CampaignAsset { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignAsset" - pattern: "customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}" - }; - - // Immutable. The resource name of the campaign asset. - // CampaignAsset resource names have the form: - // - // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAsset" - } - ]; - - // Immutable. The campaign to which the asset is linked. - optional string campaign = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Immutable. The asset which is linked to the campaign. - optional string asset = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Immutable. Role that the asset takes under the linked campaign. - // Required. - google.ads.googleads.v8.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Status of the campaign asset. - google.ads.googleads.v8.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; -} diff --git a/google/ads/googleads/v8/resources/campaign_audience_view.proto b/google/ads/googleads/v8/resources/campaign_audience_view.proto deleted file mode 100644 index 342e530bc..000000000 --- a/google/ads/googleads/v8/resources/campaign_audience_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignAudienceViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the campaign audience view resource. - -// A campaign audience view. -// Includes performance data from interests and remarketing lists for Display -// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), -// aggregated by campaign and audience criterion. This view only includes -// audiences attached at the campaign level. -message CampaignAudienceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignAudienceView" - pattern: "customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}" - }; - - // Output only. The resource name of the campaign audience view. - // Campaign audience view resource names have the form: - // - // `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAudienceView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/campaign_bid_modifier.proto b/google/ads/googleads/v8/resources/campaign_bid_modifier.proto deleted file mode 100644 index 15bbaa259..000000000 --- a/google/ads/googleads/v8/resources/campaign_bid_modifier.proto +++ /dev/null @@ -1,76 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBidModifierProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Campaign Bid Modifier resource. - -// Represents a bid-modifiable only criterion at the campaign level. -message CampaignBidModifier { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignBidModifier" - pattern: "customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}" - }; - - // Immutable. The resource name of the campaign bid modifier. - // Campaign bid modifier resource names have the form: - // - // `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBidModifier" - } - ]; - - // Output only. The campaign to which this criterion belongs. - optional string campaign = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The ID of the criterion to bid modify. - // - // This field is ignored for mutates. - optional int64 criterion_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The modifier for the bid when the criterion matches. - optional double bid_modifier = 8; - - // The criterion of this campaign bid modifier. - // - // Required in create operations starting in V5. - oneof criterion { - // Immutable. Criterion for interaction type. Only supported for search campaigns. - google.ads.googleads.v8.common.InteractionTypeInfo interaction_type = 5 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/campaign_budget.proto b/google/ads/googleads/v8/resources/campaign_budget.proto deleted file mode 100644 index a4f685578..000000000 --- a/google/ads/googleads/v8/resources/campaign_budget.proto +++ /dev/null @@ -1,156 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/budget_delivery_method.proto"; -import "google/ads/googleads/v8/enums/budget_period.proto"; -import "google/ads/googleads/v8/enums/budget_status.proto"; -import "google/ads/googleads/v8/enums/budget_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBudgetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Budget resource. - -// A campaign budget. -message CampaignBudget { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignBudget" - pattern: "customers/{customer_id}/campaignBudgets/{campaign_budget_id}" - }; - - // Immutable. The resource name of the campaign budget. - // Campaign budget resource names have the form: - // - // `customers/{customer_id}/campaignBudgets/{campaign_budget_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBudget" - } - ]; - - // Output only. The ID of the campaign budget. - // - // A campaign budget is created using the CampaignBudgetService create - // operation and is assigned a budget ID. A budget ID can be shared across - // different campaigns; the system will then allocate the campaign budget - // among different campaigns to get optimum results. - optional int64 id = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the campaign budget. - // - // When creating a campaign budget through CampaignBudgetService, every - // explicitly shared campaign budget must have a non-null, non-empty name. - // Campaign budgets that are not explicitly shared derive their name from the - // attached campaign's name. - // - // The length of this string must be between 1 and 255, inclusive, - // in UTF-8 bytes, (trimmed). - optional string name = 20; - - // The amount of the budget, in the local currency for the account. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. Monthly spend is capped at 30.4 times this amount. - optional int64 amount_micros = 21; - - // The lifetime amount of the budget, in the local currency for the account. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - optional int64 total_amount_micros = 22; - - // Output only. The status of this campaign budget. This field is read-only. - google.ads.googleads.v8.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.v8.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod delivery_method = 7; - - // Specifies whether the budget is explicitly shared. Defaults to true if - // unspecified in a create operation. - // - // If true, the budget was created with the purpose of sharing - // across one or more campaigns. - // - // If false, the budget was created with the intention of only being used - // with a single campaign. The budget's name and status will stay in sync - // with the campaign's name and status. Attempting to share the budget with a - // second campaign will result in an error. - // - // A non-shared budget can become an explicitly shared. The same operation - // must also assign the budget a name. - // - // A shared campaign budget can never become non-shared. - optional bool explicitly_shared = 23; - - // Output only. The number of campaigns actively using the budget. - // - // This field is read-only. - optional int64 reference_count = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates whether there is a recommended budget for this campaign budget. - // - // This field is read-only. - optional bool has_recommended_budget = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended budget amount. If no recommendation is available, this will - // be set to the budget amount. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - // - // This field is read-only. - optional int64 recommended_budget_amount_micros = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Period over which to spend the budget. Defaults to DAILY if not specified. - google.ads.googleads.v8.enums.BudgetPeriodEnum.BudgetPeriod period = 13 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The estimated change in weekly clicks if the recommended budget is applied. - // - // This field is read-only. - optional int64 recommended_budget_estimated_change_weekly_clicks = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimated change in weekly cost in micros if the recommended budget is - // applied. One million is equivalent to one currency unit. - // - // This field is read-only. - optional int64 recommended_budget_estimated_change_weekly_cost_micros = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimated change in weekly interactions if the recommended budget is - // applied. - // - // This field is read-only. - optional int64 recommended_budget_estimated_change_weekly_interactions = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The estimated change in weekly views if the recommended budget is applied. - // - // This field is read-only. - optional int64 recommended_budget_estimated_change_weekly_views = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The type of the campaign budget. - google.ads.googleads.v8.enums.BudgetTypeEnum.BudgetType type = 18 [(google.api.field_behavior) = IMMUTABLE]; -} diff --git a/google/ads/googleads/v8/resources/campaign_criterion.proto b/google/ads/googleads/v8/resources/campaign_criterion.proto deleted file mode 100644 index 0a7882652..000000000 --- a/google/ads/googleads/v8/resources/campaign_criterion.proto +++ /dev/null @@ -1,181 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/enums/campaign_criterion_status.proto"; -import "google/ads/googleads/v8/enums/criterion_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Campaign Criterion resource. - -// A campaign criterion. -message CampaignCriterion { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignCriterion" - pattern: "customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}" - }; - - // Immutable. The resource name of the campaign criterion. - // Campaign criterion resource names have the form: - // - // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterion" - } - ]; - - // Immutable. The campaign to which the criterion belongs. - optional string campaign = 37 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The ID of the criterion. - // - // This field is ignored during mutate. - optional int64 criterion_id = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The display name of the criterion. - // - // This field is ignored for mutates. - string display_name = 43 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The modifier for the bids when the criterion matches. The modifier must be - // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. - // Use 0 to opt out of a Device type. - optional float bid_modifier = 39; - - // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. - optional bool negative = 40 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The type of the criterion. - google.ads.googleads.v8.enums.CriterionTypeEnum.CriterionType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The status of the criterion. - google.ads.googleads.v8.enums.CampaignCriterionStatusEnum.CampaignCriterionStatus status = 35; - - // The campaign criterion. - // - // Exactly one must be set. - oneof criterion { - // Immutable. Keyword. - google.ads.googleads.v8.common.KeywordInfo keyword = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Placement. - google.ads.googleads.v8.common.PlacementInfo placement = 9 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile app category. - google.ads.googleads.v8.common.MobileAppCategoryInfo mobile_app_category = 10 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile application. - google.ads.googleads.v8.common.MobileApplicationInfo mobile_application = 11 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Location. - google.ads.googleads.v8.common.LocationInfo location = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Device. - google.ads.googleads.v8.common.DeviceInfo device = 13 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Ad Schedule. - google.ads.googleads.v8.common.AdScheduleInfo ad_schedule = 15 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Age range. - google.ads.googleads.v8.common.AgeRangeInfo age_range = 16 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Gender. - google.ads.googleads.v8.common.GenderInfo gender = 17 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Income range. - google.ads.googleads.v8.common.IncomeRangeInfo income_range = 18 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Parental status. - google.ads.googleads.v8.common.ParentalStatusInfo parental_status = 19 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. User List. - google.ads.googleads.v8.common.UserListInfo user_list = 22 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Video. - google.ads.googleads.v8.common.YouTubeVideoInfo youtube_video = 20 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Channel. - google.ads.googleads.v8.common.YouTubeChannelInfo youtube_channel = 21 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Proximity. - google.ads.googleads.v8.common.ProximityInfo proximity = 23 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Topic. - google.ads.googleads.v8.common.TopicInfo topic = 24 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Listing scope. - google.ads.googleads.v8.common.ListingScopeInfo listing_scope = 25 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Language. - google.ads.googleads.v8.common.LanguageInfo language = 26 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. IpBlock. - google.ads.googleads.v8.common.IpBlockInfo ip_block = 27 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. ContentLabel. - google.ads.googleads.v8.common.ContentLabelInfo content_label = 28 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Carrier. - google.ads.googleads.v8.common.CarrierInfo carrier = 29 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. User Interest. - google.ads.googleads.v8.common.UserInterestInfo user_interest = 30 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Webpage. - google.ads.googleads.v8.common.WebpageInfo webpage = 31 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Operating system version. - google.ads.googleads.v8.common.OperatingSystemVersionInfo operating_system_version = 32 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile Device. - google.ads.googleads.v8.common.MobileDeviceInfo mobile_device = 33 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Location Group - google.ads.googleads.v8.common.LocationGroupInfo location_group = 34 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Affinity. - google.ads.googleads.v8.common.CustomAffinityInfo custom_affinity = 36 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Audience - google.ads.googleads.v8.common.CustomAudienceInfo custom_audience = 41 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Combined Audience. - google.ads.googleads.v8.common.CombinedAudienceInfo combined_audience = 42 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Smart Campaign Keyword Theme. - google.ads.googleads.v8.common.KeywordThemeInfo keyword_theme = 45 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/campaign_criterion_simulation.proto b/google/ads/googleads/v8/resources/campaign_criterion_simulation.proto deleted file mode 100644 index 631fc06b7..000000000 --- a/google/ads/googleads/v8/resources/campaign_criterion_simulation.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/simulation.proto"; -import "google/ads/googleads/v8/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v8/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionSimulationProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the campaign criterion simulation resource. - -// A campaign criterion simulation. Supported combinations of advertising -// channel type, criterion ids, simulation type and simulation modification -// method is detailed below respectively. -// -// 1. SEARCH - 30000,30001,30002 - BID_MODIFIER - UNIFORM -// 2. DISPLAY - 30001 - BID_MODIFIER - UNIFORM -message CampaignCriterionSimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignCriterionSimulation" - pattern: "customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the campaign criterion simulation. - // Campaign criterion simulation resource names have the form: - // - // `customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterionSimulation" - } - ]; - - // Output only. Campaign ID of the simulation. - optional int64 campaign_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Criterion ID of the simulation. - optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v8.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v8.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - optional string start_date = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format. - optional string end_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is BID_MODIFIER. - google.ads.googleads.v8.common.BidModifierSimulationPointList bid_modifier_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/campaign_draft.proto b/google/ads/googleads/v8/resources/campaign_draft.proto deleted file mode 100644 index a6f9acd3d..000000000 --- a/google/ads/googleads/v8/resources/campaign_draft.proto +++ /dev/null @@ -1,98 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/campaign_draft_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignDraftProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Campaign Draft resource. - -// A campaign draft. -message CampaignDraft { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignDraft" - pattern: "customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}" - }; - - // Immutable. The resource name of the campaign draft. - // Campaign draft resource names have the form: - // - // `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignDraft" - } - ]; - - // Output only. The ID of the draft. - // - // This field is read-only. - optional int64 draft_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The base campaign to which the draft belongs. - optional string base_campaign = 10 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // The name of the campaign draft. - // - // This field is required and should not be empty when creating new - // campaign drafts. - // - // It must not contain any null (code point 0x0), NL line feed - // (code point 0xA) or carriage return (code point 0xD) characters. - optional string name = 11; - - // Output only. Resource name of the Campaign that results from overlaying the draft - // changes onto the base campaign. - // - // This field is read-only. - optional string draft_campaign = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // 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.v8.enums.CampaignDraftStatusEnum.CampaignDraftStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether there is an experiment based on this draft currently serving. - optional bool has_experiment_running = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the long-running operation that can be used to poll - // for completion of draft promotion. This is only set if the draft promotion - // is in progress or finished. - optional string long_running_operation = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/campaign_experiment.proto b/google/ads/googleads/v8/resources/campaign_experiment.proto deleted file mode 100644 index c6904f501..000000000 --- a/google/ads/googleads/v8/resources/campaign_experiment.proto +++ /dev/null @@ -1,121 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/campaign_experiment_status.proto"; -import "google/ads/googleads/v8/enums/campaign_experiment_traffic_split_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Campaign Experiment resource. - -// An A/B experiment that compares the performance of the base campaign -// (the control) and a variation of that campaign (the experiment). -message CampaignExperiment { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignExperiment" - pattern: "customers/{customer_id}/campaignExperiments/{campaign_experiment_id}" - }; - - // Immutable. The resource name of the campaign experiment. - // Campaign experiment resource names have the form: - // - // `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExperiment" - } - ]; - - // Output only. The ID of the campaign experiment. - // - // This field is read-only. - optional int64 id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The campaign draft with staged changes to the base campaign. - optional string campaign_draft = 14 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignDraft" - } - ]; - - // The name of the campaign experiment. - // - // This field is required when creating new campaign experiments - // and must not conflict with the name of another non-removed - // campaign experiment or campaign. - // - // It must not contain any null (code point 0x0), NL line feed - // (code point 0xA) or carriage return (code point 0xD) characters. - optional string name = 15; - - // The description of the experiment. - optional string description = 16; - - // Immutable. Share of traffic directed to experiment as a percent (must be between 1 and - // 99 inclusive. Base campaign receives the remainder of the traffic - // (100 - traffic_split_percent). Required for create. - optional int64 traffic_split_percent = 17 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Determines the behavior of the traffic split. - google.ads.googleads.v8.enums.CampaignExperimentTrafficSplitTypeEnum.CampaignExperimentTrafficSplitType traffic_split_type = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The experiment campaign, as opposed to the base campaign. - optional string experiment_campaign = 18 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The status of the campaign experiment. This field is read-only. - google.ads.googleads.v8.enums.CampaignExperimentStatusEnum.CampaignExperimentStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the long-running operation that can be used to poll - // for completion of experiment create or promote. The most recent long - // running operation is returned. - optional string long_running_operation = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Date when the campaign experiment starts. By default, the experiment starts - // now or on the campaign's start date, whichever is later. If this field is - // set, then the experiment starts at the beginning of the specified date in - // the customer's time zone. Cannot be changed once the experiment starts. - // - // Format: YYYY-MM-DD - // Example: 2019-03-14 - optional string start_date = 20; - - // The last day of the campaign experiment. By default, the experiment ends on - // the campaign's end date. If this field is set, then the experiment ends at - // the end of the specified date in the customer's time zone. - // - // Format: YYYY-MM-DD - // Example: 2019-04-18 - optional string end_date = 21; -} diff --git a/google/ads/googleads/v8/resources/campaign_extension_setting.proto b/google/ads/googleads/v8/resources/campaign_extension_setting.proto deleted file mode 100644 index aaa7f3178..000000000 --- a/google/ads/googleads/v8/resources/campaign_extension_setting.proto +++ /dev/null @@ -1,79 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/extension_setting_device.proto"; -import "google/ads/googleads/v8/enums/extension_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CampaignExtensionSetting resource. - -// A campaign extension setting. -message CampaignExtensionSetting { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignExtensionSetting" - pattern: "customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}" - }; - - // Immutable. The resource name of the campaign extension setting. - // CampaignExtensionSetting resource names have the form: - // - // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExtensionSetting" - } - ]; - - // Immutable. The extension type of the customer extension setting. - google.ads.googleads.v8.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The resource name of the campaign. The linked extension feed items will - // serve under this campaign. - // Campaign resource names have the form: - // - // `customers/{customer_id}/campaigns/{campaign_id}` - optional string campaign = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // The resource names of the extension feed items to serve under the campaign. - // ExtensionFeedItem resource names have the form: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - repeated string extension_feed_items = 7 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - }]; - - // The device for which the extensions will serve. Optional. - google.ads.googleads.v8.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5; -} diff --git a/google/ads/googleads/v8/resources/campaign_feed.proto b/google/ads/googleads/v8/resources/campaign_feed.proto deleted file mode 100644 index b8f1601ce..000000000 --- a/google/ads/googleads/v8/resources/campaign_feed.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/matching_function.proto"; -import "google/ads/googleads/v8/enums/feed_link_status.proto"; -import "google/ads/googleads/v8/enums/placeholder_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignFeedProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CampaignFeed resource. - -// A campaign feed. -message CampaignFeed { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignFeed" - pattern: "customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}" - }; - - // Immutable. The resource name of the campaign feed. - // Campaign feed resource names have the form: - // - // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id} - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignFeed" - } - ]; - - // Immutable. The feed to which the CampaignFeed belongs. - optional string feed = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Immutable. The campaign to which the CampaignFeed belongs. - optional string campaign = 8 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Indicates which placeholder types the feed may populate under the connected - // campaign. Required. - repeated google.ads.googleads.v8.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.v8.common.MatchingFunction matching_function = 5; - - // Output only. Status of the campaign feed. - // This field is read-only. - google.ads.googleads.v8.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/campaign_label.proto b/google/ads/googleads/v8/resources/campaign_label.proto deleted file mode 100644 index e251eaccb..000000000 --- a/google/ads/googleads/v8/resources/campaign_label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignLabelProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the campaign label resource. - -// Represents a relationship between a campaign and a label. -message CampaignLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignLabel" - pattern: "customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}" - }; - - // Immutable. Name of the resource. - // Campaign label resource names have the form: - // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignLabel" - } - ]; - - // Immutable. The campaign to which the label is attached. - optional string campaign = 4 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Immutable. The label assigned to the campaign. - optional string label = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/campaign_shared_set.proto b/google/ads/googleads/v8/resources/campaign_shared_set.proto deleted file mode 100644 index b8c8cd611..000000000 --- a/google/ads/googleads/v8/resources/campaign_shared_set.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/campaign_shared_set_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSharedSetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CampaignSharedSet resource. - -// CampaignSharedSets are used for managing the shared sets associated with a -// campaign. -message CampaignSharedSet { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignSharedSet" - pattern: "customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}" - }; - - // Immutable. The resource name of the campaign shared set. - // Campaign shared set resource names have the form: - // - // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSharedSet" - } - ]; - - // Immutable. The campaign to which the campaign shared set belongs. - optional string campaign = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Immutable. The shared set associated with the campaign. This may be a negative keyword - // shared set of another customer. This customer should be a manager of the - // other customer, otherwise the campaign shared set will exist but have no - // serving effect. Only negative keyword shared sets can be associated with - // Shopping campaigns. Only negative placement shared sets can be associated - // with Display mobile app campaigns. - optional string shared_set = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; - - // Output only. The status of this campaign shared set. Read only. - google.ads.googleads.v8.enums.CampaignSharedSetStatusEnum.CampaignSharedSetStatus status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/campaign_simulation.proto b/google/ads/googleads/v8/resources/campaign_simulation.proto deleted file mode 100644 index f37a2416f..000000000 --- a/google/ads/googleads/v8/resources/campaign_simulation.proto +++ /dev/null @@ -1,102 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/simulation.proto"; -import "google/ads/googleads/v8/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v8/enums/simulation_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSimulationProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the campaign simulation resource. - -// A campaign simulation. Supported combinations of advertising -// channel type, simulation type and simulation modification -// method is detailed below respectively. -// -// SEARCH - CPC_BID - UNIFORM -// SEARCH - CPC_BID - SCALING -// SEARCH - TARGET_CPA - UNIFORM -// SEARCH - TARGET_CPA - SCALING -// SEARCH - TARGET_ROAS - UNIFORM -// SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM -// SEARCH - BUDGET - UNIFORM -// SHOPPING - BUDGET - UNIFORM -// SHOPPING - TARGET_ROAS - UNIFORM -// MULTIPLE - TARGET_CPA - UNIFORM -// OWNED_AND_OPERATED - TARGET_CPA - DEFAULT -// DISPLAY - TARGET_CPA - UNIFORM -message CampaignSimulation { - option (google.api.resource) = { - type: "googleads.googleapis.com/CampaignSimulation" - pattern: "customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}" - }; - - // Output only. The resource name of the campaign simulation. - // Campaign simulation resource names have the form: - // - // `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSimulation" - } - ]; - - // Output only. Campaign id of the simulation. - int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The field that the simulation modifies. - google.ads.googleads.v8.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. How the simulation modifies the field. - google.ads.googleads.v8.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. First day on which the simulation is based, in YYYY-MM-DD format. - string start_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Last day on which the simulation is based, in YYYY-MM-DD format - string end_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // List of simulation points. - oneof point_list { - // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v8.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.v8.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.v8.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.v8.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.v8.common.BudgetSimulationPointList budget_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/carrier_constant.proto b/google/ads/googleads/v8/resources/carrier_constant.proto deleted file mode 100644 index dd2875086..000000000 --- a/google/ads/googleads/v8/resources/carrier_constant.proto +++ /dev/null @@ -1,61 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CarrierConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Carrier constant resource. - -// A carrier criterion that can be used in campaign targeting. -message CarrierConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/CarrierConstant" - pattern: "carrierConstants/{criterion_id}" - }; - - // Output only. The resource name of the carrier criterion. - // Carrier criterion resource names have the form: - // - // `carrierConstants/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CarrierConstant" - } - ]; - - // Output only. The ID of the carrier criterion. - optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The full name of the carrier in English. - optional string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The country code of the country where the carrier is located, e.g., "AR", - // "FR", etc. - optional string country_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/change_event.proto b/google/ads/googleads/v8/resources/change_event.proto deleted file mode 100644 index 44b974b2a..000000000 --- a/google/ads/googleads/v8/resources/change_event.proto +++ /dev/null @@ -1,203 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/ad_type.proto"; -import "google/ads/googleads/v8/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v8/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v8/enums/asset_type.proto"; -import "google/ads/googleads/v8/enums/change_client_type.proto"; -import "google/ads/googleads/v8/enums/change_event_resource_type.proto"; -import "google/ads/googleads/v8/enums/criterion_type.proto"; -import "google/ads/googleads/v8/enums/feed_origin.proto"; -import "google/ads/googleads/v8/enums/resource_change_operation.proto"; -import "google/ads/googleads/v8/resources/ad.proto"; -import "google/ads/googleads/v8/resources/ad_group.proto"; -import "google/ads/googleads/v8/resources/ad_group_ad.proto"; -import "google/ads/googleads/v8/resources/ad_group_asset.proto"; -import "google/ads/googleads/v8/resources/ad_group_bid_modifier.proto"; -import "google/ads/googleads/v8/resources/ad_group_criterion.proto"; -import "google/ads/googleads/v8/resources/ad_group_feed.proto"; -import "google/ads/googleads/v8/resources/asset.proto"; -import "google/ads/googleads/v8/resources/campaign.proto"; -import "google/ads/googleads/v8/resources/campaign_asset.proto"; -import "google/ads/googleads/v8/resources/campaign_budget.proto"; -import "google/ads/googleads/v8/resources/campaign_criterion.proto"; -import "google/ads/googleads/v8/resources/campaign_feed.proto"; -import "google/ads/googleads/v8/resources/customer_asset.proto"; -import "google/ads/googleads/v8/resources/feed.proto"; -import "google/ads/googleads/v8/resources/feed_item.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/field_mask.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ChangeEventProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Change Event resource. - -// Describes the granular change of returned resource of certain resource types. -// Changes made through UI, API and new versions of Editor -// by external users (including external users, and internal users that can be -// shown externally) in the past 30 days will be shown. The change shows the old -// values of the changed fields before the change and the new values right after -// the change. ChangeEvent could have up to 3 minutes delay to reflect a new -// change. -message ChangeEvent { - option (google.api.resource) = { - type: "googleads.googleapis.com/ChangeEvent" - pattern: "customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}" - }; - - // A wrapper proto presenting all supported resources. - // Only the resource of the change_resource_type will be set. - message ChangedResource { - // Output only. Set if change_resource_type == AD. - Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP. - AdGroup ad_group = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_CRITERION. - AdGroupCriterion ad_group_criterion = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN. - Campaign campaign = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN_BUDGET. - CampaignBudget campaign_budget = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_BID_MODIFIER. - AdGroupBidModifier ad_group_bid_modifier = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN_CRITERION. - CampaignCriterion campaign_criterion = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == FEED. - Feed feed = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == FEED_ITEM. - FeedItem feed_item = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN_FEED. - CampaignFeed campaign_feed = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_FEED. - AdGroupFeed ad_group_feed = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_AD. - AdGroupAd ad_group_ad = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == ASSET. - Asset asset = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CUSTOMER_ASSET. - CustomerAsset customer_asset = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == CAMPAIGN_ASSET. - CampaignAsset campaign_asset = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set if change_resource_type == AD_GROUP_ASSET. - AdGroupAsset ad_group_asset = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. The resource name of the change event. - // Change event resource names have the form: - // - // `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ChangeEvent" - } - ]; - - // Output only. Time at which the change was committed on this resource. - string change_date_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of the changed resource. This dictates what resource - // will be set in old_resource and new_resource. - google.ads.googleads.v8.enums.ChangeEventResourceTypeEnum.ChangeEventResourceType change_resource_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Simply resource this change occurred on. - string change_resource_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Where the change was made through. - google.ads.googleads.v8.enums.ChangeClientTypeEnum.ChangeClientType client_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The email of the user who made this change. - string user_email = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The old resource before the change. Only changed fields will be populated. - ChangedResource old_resource = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The new resource after the change. Only changed fields will be populated. - ChangedResource new_resource = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The operation on the changed resource. - google.ads.googleads.v8.enums.ResourceChangeOperationEnum.ResourceChangeOperation resource_change_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A list of fields that are changed in the returned resource. - google.protobuf.FieldMask changed_fields = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Campaign affected by this change. - string campaign = 11 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The AdGroup affected by this change. - string ad_group = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. The Feed affected by this change. - string feed = 13 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. The FeedItem affected by this change. - string feed_item = 14 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Output only. The Asset affected by this change. - string asset = 20 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/change_status.proto b/google/ads/googleads/v8/resources/change_status.proto deleted file mode 100644 index add8a9095..000000000 --- a/google/ads/googleads/v8/resources/change_status.proto +++ /dev/null @@ -1,199 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/ad_type.proto"; -import "google/ads/googleads/v8/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v8/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v8/enums/asset_type.proto"; -import "google/ads/googleads/v8/enums/change_status_operation.proto"; -import "google/ads/googleads/v8/enums/change_status_resource_type.proto"; -import "google/ads/googleads/v8/enums/criterion_type.proto"; -import "google/ads/googleads/v8/enums/feed_origin.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Change Status resource. - -// Describes the status of returned resource. ChangeStatus could have up to 3 -// minutes delay to reflect a new change. -message ChangeStatus { - option (google.api.resource) = { - type: "googleads.googleapis.com/ChangeStatus" - pattern: "customers/{customer_id}/changeStatus/{change_status_id}" - }; - - // Output only. The resource name of the change status. - // Change status resource names have the form: - // - // `customers/{customer_id}/changeStatus/{change_status_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ChangeStatus" - } - ]; - - // Output only. Time at which the most recent change has occurred on this resource. - optional string last_change_date_time = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // 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.v8.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceType resource_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Campaign affected by this change. - optional string campaign = 17 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The AdGroup affected by this change. - optional string ad_group = 18 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. Represents the status of the changed resource. - google.ads.googleads.v8.enums.ChangeStatusOperationEnum.ChangeStatusOperation resource_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The AdGroupAd affected by this change. - optional string ad_group_ad = 25 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // Output only. The AdGroupCriterion affected by this change. - optional string ad_group_criterion = 26 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Output only. The CampaignCriterion affected by this change. - optional string campaign_criterion = 27 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterion" - } - ]; - - // Output only. The Feed affected by this change. - optional string feed = 28 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. The FeedItem affected by this change. - optional string feed_item = 29 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Output only. The AdGroupFeed affected by this change. - optional string ad_group_feed = 30 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupFeed" - } - ]; - - // Output only. The CampaignFeed affected by this change. - optional string campaign_feed = 31 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignFeed" - } - ]; - - // Output only. The AdGroupBidModifier affected by this change. - optional string ad_group_bid_modifier = 32 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupBidModifier" - } - ]; - - // Output only. The SharedSet affected by this change. - string shared_set = 33 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; - - // Output only. The CampaignSharedSet affected by this change. - string campaign_shared_set = 34 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSharedSet" - } - ]; - - // Output only. The Asset affected by this change. - string asset = 35 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Output only. The CustomerAsset affected by this change. - string customer_asset = 36 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerAsset" - } - ]; - - // Output only. The CampaignAsset affected by this change. - string campaign_asset = 37 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAsset" - } - ]; - - // Output only. The AdGroupAsset affected by this change. - string ad_group_asset = 38 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAsset" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/click_view.proto b/google/ads/googleads/v8/resources/click_view.proto deleted file mode 100644 index 5087acca5..000000000 --- a/google/ads/googleads/v8/resources/click_view.proto +++ /dev/null @@ -1,108 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/click_location.proto"; -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ClickViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ClickView resource. - -// A click view with metrics aggregated at each click level, including both -// valid and invalid clicks. For non-Search campaigns, metrics.clicks -// represents the number of valid and invalid interactions. -// Queries including ClickView must have a filter limiting the results to one -// day and can be requested for dates back to 90 days before the time of the -// request. -message ClickView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ClickView" - pattern: "customers/{customer_id}/clickViews/{date}~{gclid}" - }; - - // Output only. The resource name of the click view. - // Click view resource names have the form: - // - // `customers/{customer_id}/clickViews/{date (yyyy-MM-dd)}~{gclid}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ClickView" - } - ]; - - // Output only. The Google Click ID. - optional string gclid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The location criteria matching the area of interest associated with the - // impression. - google.ads.googleads.v8.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.v8.common.ClickLocation location_of_presence = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Page number in search results where the ad was shown. - optional int64 page_number = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The associated ad. - optional string ad_group_ad = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAd" - } - ]; - - // Output only. The associated campaign location target, if one exists. - optional string campaign_location_target = 11 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; - - // Output only. The associated user list, if one exists. - optional string user_list = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - } - ]; - - // Output only. The associated keyword, if one exists and the click corresponds to the - // SEARCH channel. - string keyword = 13 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; - - // Output only. Basic information about the associated keyword, if it exists. - google.ads.googleads.v8.common.KeywordInfo keyword_info = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/combined_audience.proto b/google/ads/googleads/v8/resources/combined_audience.proto deleted file mode 100644 index c1945dea9..000000000 --- a/google/ads/googleads/v8/resources/combined_audience.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/combined_audience_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CombinedAudienceProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Combined Audience resource. - -// Describe a resource for combined audiences which includes different -// audiences. -message CombinedAudience { - option (google.api.resource) = { - type: "googleads.googleapis.com/CombinedAudience" - pattern: "customers/{customer_id}/combinedAudiences/{combined_audience_id}" - }; - - // Immutable. The resource name of the combined audience. - // Combined audience names have the form: - // - // `customers/{customer_id}/combinedAudience/{combined_audience_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CombinedAudience" - } - ]; - - // Output only. ID of the combined audience. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of this combined audience. Indicates whether the combined audience - // is enabled or removed. - google.ads.googleads.v8.enums.CombinedAudienceStatusEnum.CombinedAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Name of the combined audience. It should be unique across all combined - // audiences. - string name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Description of this combined audience. - string description = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/conversion_action.proto b/google/ads/googleads/v8/resources/conversion_action.proto deleted file mode 100644 index 40d09b0f7..000000000 --- a/google/ads/googleads/v8/resources/conversion_action.proto +++ /dev/null @@ -1,176 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/tag_snippet.proto"; -import "google/ads/googleads/v8/enums/attribution_model.proto"; -import "google/ads/googleads/v8/enums/conversion_action_category.proto"; -import "google/ads/googleads/v8/enums/conversion_action_counting_type.proto"; -import "google/ads/googleads/v8/enums/conversion_action_status.proto"; -import "google/ads/googleads/v8/enums/conversion_action_type.proto"; -import "google/ads/googleads/v8/enums/data_driven_model_status.proto"; -import "google/ads/googleads/v8/enums/mobile_app_vendor.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Conversion Action resource. - -// A conversion action. -message ConversionAction { - option (google.api.resource) = { - type: "googleads.googleapis.com/ConversionAction" - pattern: "customers/{customer_id}/conversionActions/{conversion_action_id}" - }; - - // Settings related to this conversion action's attribution model. - message AttributionModelSettings { - // The attribution model type of this conversion action. - google.ads.googleads.v8.enums.AttributionModelEnum.AttributionModel attribution_model = 1; - - // Output only. The status of the data-driven attribution model for the conversion - // action. - google.ads.googleads.v8.enums.DataDrivenModelStatusEnum.DataDrivenModelStatus data_driven_model_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Settings related to the value for conversion events associated with this - // conversion action. - message ValueSettings { - // The value to use when conversion events for this conversion action are - // sent with an invalid, disallowed or missing value, or when - // this conversion action is configured to always use the default value. - optional double default_value = 4; - - // The currency code to use when conversion events for this conversion - // action are sent with an invalid or missing currency code, or when this - // conversion action is configured to always use the default value. - optional string default_currency_code = 5; - - // Controls whether the default value and default currency code are used in - // place of the value and currency code specified in conversion events for - // this conversion action. - optional bool always_use_default_value = 6; - } - - // Settings related to a Firebase conversion action. - message FirebaseSettings { - // Output only. The event name of a Firebase conversion. - optional string event_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Firebase project ID of the conversion. - optional string project_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Settings related to a third party app analytics conversion action. - message ThirdPartyAppAnalyticsSettings { - // Output only. The event name of a third-party app analytics conversion. - optional string event_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Name of the third-party app analytics provider. - string provider_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the conversion action. - // Conversion action resource names have the form: - // - // `customers/{customer_id}/conversionActions/{conversion_action_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionAction" - } - ]; - - // Output only. The ID of the conversion action. - optional int64 id = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the conversion action. - // - // This field is required and should not be empty when creating new - // conversion actions. - optional string name = 22; - - // The status of this conversion action for conversion event accrual. - google.ads.googleads.v8.enums.ConversionActionStatusEnum.ConversionActionStatus status = 4; - - // Immutable. The type of this conversion action. - google.ads.googleads.v8.enums.ConversionActionTypeEnum.ConversionActionType type = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // The category of conversions reported for this conversion action. - google.ads.googleads.v8.enums.ConversionActionCategoryEnum.ConversionActionCategory category = 6; - - // Output only. The resource name of the conversion action owner customer, or null if this - // is a system-defined conversion action. - optional string owner_customer = 23 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Whether this conversion action should be included in the "conversions" - // metric. - optional bool include_in_conversions_metric = 24; - - // The maximum number of days that may elapse between an interaction - // (e.g., a click) and a conversion event. - optional int64 click_through_lookback_window_days = 25; - - // The maximum number of days which may elapse between an impression and a - // conversion without an interaction. - optional int64 view_through_lookback_window_days = 26; - - // Settings related to the value for conversion events associated with this - // conversion action. - ValueSettings value_settings = 11; - - // How to count conversion events for the conversion action. - google.ads.googleads.v8.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.v8.common.TagSnippet tag_snippets = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The phone call duration in seconds after which a conversion should be - // reported for this conversion action. - // - // The value must be between 0 and 10000, inclusive. - optional int64 phone_call_duration_seconds = 27; - - // App ID for an app conversion action. - optional string app_id = 28; - - // Output only. Mobile app vendor for an app conversion action. - google.ads.googleads.v8.enums.MobileAppVendorEnum.MobileAppVendor mobile_app_vendor = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Firebase settings for Firebase conversion types. - FirebaseSettings firebase_settings = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Third Party App Analytics settings for third party conversion types. - ThirdPartyAppAnalyticsSettings third_party_app_analytics_settings = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/conversion_custom_variable.proto b/google/ads/googleads/v8/resources/conversion_custom_variable.proto deleted file mode 100644 index 4c4a7a394..000000000 --- a/google/ads/googleads/v8/resources/conversion_custom_variable.proto +++ /dev/null @@ -1,86 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/conversion_custom_variable_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ConversionCustomVariableProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Conversion Custom Variable resource. - -// A conversion custom variable -// See "About custom variables for conversions" at -// https://support.google.com/google-ads/answer/9964350 -message ConversionCustomVariable { - option (google.api.resource) = { - type: "googleads.googleapis.com/ConversionCustomVariable" - pattern: "customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}" - }; - - // Immutable. The resource name of the conversion custom variable. - // Conversion custom variable resource names have the form: - // - // `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionCustomVariable" - } - ]; - - // Output only. The ID of the conversion custom variable. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The name of the conversion custom variable. - // Name should be unique. The maximum length of name is 100 characters. - // There should not be any extra spaces before and after. - string name = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. Immutable. The tag of the conversion custom variable. It is used in the event snippet - // and sent to Google Ads along with conversion pings. For conversion uploads - // in Google Ads API, the resource name of the conversion custom variable is - // used. - // Tag should be unique. The maximum size of tag is 100 bytes. - // There should not be any extra spaces before and after. - // Currently only lowercase letters, numbers and underscores are allowed in - // the tag. - string tag = 4 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // The status of the conversion custom variable for conversion event accrual. - google.ads.googleads.v8.enums.ConversionCustomVariableStatusEnum.ConversionCustomVariableStatus status = 5; - - // Output only. The resource name of the customer that owns the conversion custom variable. - string owner_customer = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/conversion_value_rule.proto b/google/ads/googleads/v8/resources/conversion_value_rule.proto deleted file mode 100644 index da0ee815c..000000000 --- a/google/ads/googleads/v8/resources/conversion_value_rule.proto +++ /dev/null @@ -1,135 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/conversion_value_rule_status.proto"; -import "google/ads/googleads/v8/enums/value_rule_device_type.proto"; -import "google/ads/googleads/v8/enums/value_rule_geo_location_match_type.proto"; -import "google/ads/googleads/v8/enums/value_rule_operation.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRuleProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Conversion Value Rule resource. - -// A conversion value rule -message ConversionValueRule { - option (google.api.resource) = { - type: "googleads.googleapis.com/ConversionValueRule" - pattern: "customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}" - }; - - // Action applied when rule is applied. - message ValueRuleAction { - // Specifies applied operation. - google.ads.googleads.v8.enums.ValueRuleOperationEnum.ValueRuleOperation operation = 1; - - // Specifies applied value. - double value = 2; - } - - // Condition on Geo dimension. - message ValueRuleGeoLocationCondition { - // Geo locations that advertisers want to exclude. - repeated string excluded_geo_target_constants = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - }]; - - // Excluded Geo location match type. - google.ads.googleads.v8.enums.ValueRuleGeoLocationMatchTypeEnum.ValueRuleGeoLocationMatchType excluded_geo_match_type = 2; - - // Geo locations that advertisers want to include. - repeated string geo_target_constants = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - }]; - - // Included Geo location match type. - google.ads.googleads.v8.enums.ValueRuleGeoLocationMatchTypeEnum.ValueRuleGeoLocationMatchType geo_match_type = 4; - } - - // Condition on Device dimension. - message ValueRuleDeviceCondition { - // Value for device type condition. - repeated google.ads.googleads.v8.enums.ValueRuleDeviceTypeEnum.ValueRuleDeviceType device_types = 1; - } - - // Condition on Audience dimension. - message ValueRuleAudienceCondition { - // User Lists. - repeated string user_lists = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - }]; - - // User Interests. - repeated string user_interests = 2 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/UserInterest" - }]; - } - - // Immutable. The resource name of the conversion value rule. - // Conversion value rule resource names have the form: - // - // `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionValueRule" - } - ]; - - // Output only. The ID of the conversion value rule. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Action applied when the rule is triggered. - ValueRuleAction action = 3; - - // Condition for Geo location that must be satisfied for the value rule to - // apply. - ValueRuleGeoLocationCondition geo_location_condition = 4; - - // Condition for device type that must be satisfied for the value rule to - // apply. - ValueRuleDeviceCondition device_condition = 5; - - // Condition for audience that must be satisfied for the value rule to apply. - ValueRuleAudienceCondition audience_condition = 6; - - // Output only. The resource name of the conversion value rule's owner customer. - // When the value rule is inherited from a manager - // customer, owner_customer will be the resource name of the manager whereas - // the customer in the resource_name will be of the requesting serving - // customer. - // ** Read-only ** - string owner_customer = 7 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // The status of the conversion value rule. - google.ads.googleads.v8.enums.ConversionValueRuleStatusEnum.ConversionValueRuleStatus status = 8; -} diff --git a/google/ads/googleads/v8/resources/conversion_value_rule_set.proto b/google/ads/googleads/v8/resources/conversion_value_rule_set.proto deleted file mode 100644 index 3bdcbec0f..000000000 --- a/google/ads/googleads/v8/resources/conversion_value_rule_set.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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/conversion_value_rule_set_status.proto"; -import "google/ads/googleads/v8/enums/value_rule_set_attachment_type.proto"; -import "google/ads/googleads/v8/enums/value_rule_set_dimension.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRuleSetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Conversion Value Rule Set resource. - -// A conversion value rule set -message ConversionValueRuleSet { - option (google.api.resource) = { - type: "googleads.googleapis.com/ConversionValueRuleSet" - pattern: "customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}" - }; - - // Immutable. The resource name of the conversion value rule set. - // Conversion value rule set resource names have the form: - // - // `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionValueRuleSet" - } - ]; - - // Output only. The ID of the conversion value rule set. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Resource names of rules within the rule set. - repeated string conversion_value_rules = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionValueRule" - }]; - - // Defines dimensions for Value Rule conditions. The condition types of value - // rules within this value rule set must be of these dimensions. The first - // entry in this list is the primary dimension of the included value rules. - // 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.v8.enums.ValueRuleSetDimensionEnum.ValueRuleSetDimension dimensions = 4; - - // Output only. The resource name of the conversion value rule set's owner customer. - // When the value rule set is inherited from a manager - // customer, owner_customer will be the resource name of the manager whereas - // the customer in the resource_name will be of the requesting serving - // customer. - // ** Read-only ** - string owner_customer = 5 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Defines the scope where the conversion value rule set is attached. - google.ads.googleads.v8.enums.ValueRuleSetAttachmentTypeEnum.ValueRuleSetAttachmentType attachment_type = 6; - - // The resource name of the campaign when the conversion value rule - // set is attached to a campaign. - string campaign = 7 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - }]; - - // Output only. The status of the conversion value rule set. - // ** Read-only ** - google.ads.googleads.v8.enums.ConversionValueRuleSetStatusEnum.ConversionValueRuleSetStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/currency_constant.proto b/google/ads/googleads/v8/resources/currency_constant.proto deleted file mode 100644 index 53b606eb2..000000000 --- a/google/ads/googleads/v8/resources/currency_constant.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CurrencyConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Currency Constant resource. - -// A currency constant. -message CurrencyConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/CurrencyConstant" - pattern: "currencyConstants/{code}" - }; - - // Output only. The resource name of the currency constant. - // Currency constant resource names have the form: - // - // `currencyConstants/{code}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CurrencyConstant" - } - ]; - - // Output only. ISO 4217 three-letter currency code, e.g. "USD" - optional string code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Full English name of the currency. - optional string name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Standard symbol for describing this currency, e.g. '$' for US Dollars. - optional string symbol = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The billable unit for this currency. Billed amounts should be multiples of - // this value. - optional int64 billable_unit_micros = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/custom_audience.proto b/google/ads/googleads/v8/resources/custom_audience.proto deleted file mode 100644 index 96a4df6f7..000000000 --- a/google/ads/googleads/v8/resources/custom_audience.proto +++ /dev/null @@ -1,107 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/custom_audience_member_type.proto"; -import "google/ads/googleads/v8/enums/custom_audience_status.proto"; -import "google/ads/googleads/v8/enums/custom_audience_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Custom Audience resource. - -// A custom audience. This is a list of users by interest. -message CustomAudience { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomAudience" - pattern: "customers/{customer_id}/customAudiences/{custom_audience_id}" - }; - - // Immutable. The resource name of the custom audience. - // Custom audience resource names have the form: - // - // `customers/{customer_id}/customAudiences/{custom_audience_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomAudience" - } - ]; - - // Output only. ID of the custom audience. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of this custom audience. Indicates whether the custom audience is - // enabled or removed. - google.ads.googleads.v8.enums.CustomAudienceStatusEnum.CustomAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Name of the custom audience. It should be unique for all custom audiences - // created by a customer. - // This field is required for creating operations. - string name = 4; - - // 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.v8.enums.CustomAudienceTypeEnum.CustomAudienceType type = 5; - - // Description of this custom audience. - string description = 6; - - // List of custom audience members that this custom audience is composed of. - // Members can be added during CustomAudience creation. If members are - // presented in UPDATE operation, existing members will be overridden. - repeated CustomAudienceMember members = 7; -} - -// A member of custom audience. A member can be a KEYWORD, URL, -// 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.v8.enums.CustomAudienceMemberTypeEnum.CustomAudienceMemberType member_type = 1; - - // The CustomAudienceMember value. One field is populated depending on the - // member type. - oneof value { - // A keyword or keyword phrase — at most 10 words and 80 characters. - // Languages with double-width characters such as Chinese, Japanese, - // or Korean, are allowed 40 characters, which describes the user's - // interests or actions. - string keyword = 2; - - // An HTTP URL, protocol-included — at most 2048 characters, which includes - // contents users have interests in. - string url = 3; - - // A place type described by a place category users visit. - int64 place_category = 4; - - // A package name of Android apps which users installed such as - // com.google.example. - string app = 5; - } -} diff --git a/google/ads/googleads/v8/resources/custom_interest.proto b/google/ads/googleads/v8/resources/custom_interest.proto deleted file mode 100644 index c57157fa6..000000000 --- a/google/ads/googleads/v8/resources/custom_interest.proto +++ /dev/null @@ -1,89 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/custom_interest_member_type.proto"; -import "google/ads/googleads/v8/enums/custom_interest_status.proto"; -import "google/ads/googleads/v8/enums/custom_interest_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Custom Interest resource. - -// A custom interest. This is a list of users by interest. -message CustomInterest { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomInterest" - pattern: "customers/{customer_id}/customInterests/{custom_interest_id}" - }; - - // Immutable. The resource name of the custom interest. - // Custom interest resource names have the form: - // - // `customers/{customer_id}/customInterests/{custom_interest_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomInterest" - } - ]; - - // Output only. Id of the custom interest. - optional int64 id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Status of this custom interest. Indicates whether the custom interest is - // enabled or removed. - google.ads.googleads.v8.enums.CustomInterestStatusEnum.CustomInterestStatus status = 3; - - // Name of the custom interest. It should be unique across the same custom - // affinity audience. - // This field is required for create operations. - optional string name = 9; - - // Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. - // By default the type is set to CUSTOM_AFFINITY. - google.ads.googleads.v8.enums.CustomInterestTypeEnum.CustomInterestType type = 5; - - // Description of this custom interest audience. - optional string description = 10; - - // List of custom interest members that this custom interest is composed of. - // Members can be added during CustomInterest creation. If members are - // presented in UPDATE operation, existing members will be overridden. - repeated CustomInterestMember members = 7; -} - -// A member of custom interest audience. A member can be a keyword or url. -// 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.v8.enums.CustomInterestMemberTypeEnum.CustomInterestMemberType member_type = 1; - - // Keyword text when member_type is KEYWORD or URL string when - // member_type is URL. - optional string parameter = 3; -} diff --git a/google/ads/googleads/v8/resources/customer.proto b/google/ads/googleads/v8/resources/customer.proto deleted file mode 100644 index 03fe8f41e..000000000 --- a/google/ads/googleads/v8/resources/customer.proto +++ /dev/null @@ -1,161 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Customer resource. - -// A customer. -message Customer { - option (google.api.resource) = { - type: "googleads.googleapis.com/Customer" - pattern: "customers/{customer_id}" - }; - - // Immutable. The resource name of the customer. - // Customer resource names have the form: - // - // `customers/{customer_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. The ID of the customer. - optional int64 id = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional, non-unique descriptive name of the customer. - optional string descriptive_name = 20; - - // Immutable. The currency in which the account operates. - // A subset of the currency codes from the ISO 4217 standard is - // supported. - optional string currency_code = 21 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The local timezone ID of the customer. - optional string time_zone = 22 [(google.api.field_behavior) = IMMUTABLE]; - - // The URL template for constructing a tracking URL out of parameters. - optional string tracking_url_template = 23; - - // The URL template for appending params to the final URL - optional string final_url_suffix = 24; - - // Whether auto-tagging is enabled for the customer. - optional bool auto_tagging_enabled = 25; - - // Output only. Whether the Customer has a Partners program badge. If the Customer is not - // associated with the Partners program, this will be false. For more - // information, see https://support.google.com/partners/answer/3125774. - optional bool has_partners_badge = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the customer is a manager. - optional bool manager = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the customer is a test account. - optional bool test_account = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Call reporting setting for a customer. - CallReportingSetting call_reporting_setting = 10; - - // Output only. Conversion tracking setting for a customer. - ConversionTrackingSetting conversion_tracking_setting = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Remarketing setting for a customer. - RemarketingSetting remarketing_setting = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // 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.v8.enums.CustomerPayPerConversionEligibilityFailureReasonEnum.CustomerPayPerConversionEligibilityFailureReason pay_per_conversion_eligibility_failure_reasons = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Optimization score of the customer. - // - // Optimization score is an estimate of how well a customer's campaigns are - // set to perform. It ranges from 0% (0.0) to 100% (1.0). This field is null - // for all manager customers, and for unscored non-manager customers. - // - // See "About optimization score" at - // https://support.google.com/google-ads/answer/9061546. - // - // This field is read-only. - optional double optimization_score = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Optimization score weight of the customer. - // - // Optimization score weight can be used to compare/aggregate optimization - // scores across multiple non-manager customers. The aggregate optimization - // score of a manager is computed as the sum over all of their customers of - // `Customer.optimization_score * Customer.optimization_score_weight`. This - // field is 0 for all manager customers, and for unscored non-manager - // customers. - // - // This field is read-only. - double optimization_score_weight = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Call reporting setting for a customer. -message CallReportingSetting { - // Enable reporting of phone call events by redirecting them via Google - // System. - optional bool call_reporting_enabled = 10; - - // Whether to enable call conversion reporting. - optional bool call_conversion_reporting_enabled = 11; - - // Customer-level call conversion action to attribute a call conversion to. - // If not set a default conversion action is used. Only in effect when - // call_conversion_reporting_enabled is set to true. - optional string call_conversion_action = 12 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionAction" - }]; -} - -// A collection of customer-wide settings related to Google Ads Conversion -// Tracking. -message ConversionTrackingSetting { - // Output only. The conversion tracking id used for this account. This id is automatically - // assigned after any conversion tracking feature is used. If the customer - // doesn't use conversion tracking, this is 0. This field is read-only. - optional int64 conversion_tracking_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The conversion tracking id of the customer's manager. This is set when the - // customer is opted into cross account conversion tracking, and it overrides - // conversion_tracking_id. This field can only be managed through the Google - // Ads UI. This field is read-only. - optional int64 cross_account_conversion_tracking_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Remarketing setting for a customer. -message RemarketingSetting { - // Output only. The Google global site tag. - optional string google_global_site_tag = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/customer_asset.proto b/google/ads/googleads/v8/resources/customer_asset.proto deleted file mode 100644 index 95905466f..000000000 --- a/google/ads/googleads/v8/resources/customer_asset.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/asset_field_type.proto"; -import "google/ads/googleads/v8/enums/asset_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerAssetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CustomerAsset resource. - -// A link between a customer and an asset. -message CustomerAsset { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerAsset" - pattern: "customers/{customer_id}/customerAssets/{asset_id}~{field_type}" - }; - - // Immutable. The resource name of the customer asset. - // CustomerAsset resource names have the form: - // - // `customers/{customer_id}/customerAssets/{asset_id}~{field_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerAsset" - } - ]; - - // Required. Immutable. The asset which is linked to the customer. - string asset = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; - - // Required. Immutable. Role that the asset takes for the customer link. - google.ads.googleads.v8.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Status of the customer asset. - google.ads.googleads.v8.enums.AssetLinkStatusEnum.AssetLinkStatus status = 4; -} diff --git a/google/ads/googleads/v8/resources/customer_client.proto b/google/ads/googleads/v8/resources/customer_client.proto deleted file mode 100644 index 5d8c23ed5..000000000 --- a/google/ads/googleads/v8/resources/customer_client.proto +++ /dev/null @@ -1,101 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CustomerClient resource. - -// A link between the given customer and a client customer. CustomerClients only -// exist for manager customers. All direct and indirect client customers are -// included, as well as the manager itself. -message CustomerClient { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerClient" - pattern: "customers/{customer_id}/customerClients/{client_customer_id}" - }; - - // Output only. The resource name of the customer client. - // CustomerClient resource names have the form: - // `customers/{customer_id}/customerClients/{client_customer_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerClient" - } - ]; - - // Output only. The resource name of the client-customer which is linked to - // the given customer. Read only. - optional string client_customer = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. Specifies whether this is a - // [hidden account](https://support.google.com/google-ads/answer/7519830). - // Read only. - optional bool hidden = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Distance between given customer and client. For self link, the level value - // will be 0. Read only. - optional int64 level = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Common Locale Data Repository (CLDR) string representation of the - // time zone of the client, e.g. America/Los_Angeles. Read only. - optional string time_zone = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Identifies if the client is a test account. Read only. - optional bool test_account = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Identifies if the client is a manager. Read only. - optional bool manager = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Descriptive name for the client. Read only. - optional string descriptive_name = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Currency code (e.g. 'USD', 'EUR') for the client. Read only. - optional string currency_code = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ID of the client customer. Read only. - optional int64 id = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource names of the labels owned by the requesting customer that are - // applied to the client customer. - // Label resource names have the form: - // - // `customers/{customer_id}/labels/{label_id}` - repeated string applied_labels = 21 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/customer_client_link.proto b/google/ads/googleads/v8/resources/customer_client_link.proto deleted file mode 100644 index 2c5e0f86b..000000000 --- a/google/ads/googleads/v8/resources/customer_client_link.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/manager_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientLinkProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CustomerClientLink resource. - -// Represents customer client link relationship. -message CustomerClientLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerClientLink" - pattern: "customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}" - }; - - // Immutable. Name of the resource. - // CustomerClientLink resource names have the form: - // `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerClientLink" - } - ]; - - // Immutable. The client customer linked to this customer. - optional string client_customer = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. This is uniquely identifies a customer client link. Read only. - optional int64 manager_link_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // This is the status of the link between client and manager. - google.ads.googleads.v8.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; - - // The visibility of the link. Users can choose whether or not to see hidden - // links in the Google Ads UI. - // Default value is false - optional bool hidden = 9; -} diff --git a/google/ads/googleads/v8/resources/customer_extension_setting.proto b/google/ads/googleads/v8/resources/customer_extension_setting.proto deleted file mode 100644 index e916c8e0a..000000000 --- a/google/ads/googleads/v8/resources/customer_extension_setting.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/extension_setting_device.proto"; -import "google/ads/googleads/v8/enums/extension_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CustomerExtensionSetting resource. - -// A customer extension setting. -message CustomerExtensionSetting { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerExtensionSetting" - pattern: "customers/{customer_id}/customerExtensionSettings/{extension_type}" - }; - - // Immutable. The resource name of the customer extension setting. - // CustomerExtensionSetting resource names have the form: - // - // `customers/{customer_id}/customerExtensionSettings/{extension_type}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerExtensionSetting" - } - ]; - - // Immutable. The extension type of the customer extension setting. - google.ads.googleads.v8.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; - - // The resource names of the extension feed items to serve under the customer. - // ExtensionFeedItem resource names have the form: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - repeated string extension_feed_items = 5 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - }]; - - // The device for which the extensions will serve. Optional. - google.ads.googleads.v8.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 4; -} diff --git a/google/ads/googleads/v8/resources/customer_feed.proto b/google/ads/googleads/v8/resources/customer_feed.proto deleted file mode 100644 index e662fac47..000000000 --- a/google/ads/googleads/v8/resources/customer_feed.proto +++ /dev/null @@ -1,75 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/matching_function.proto"; -import "google/ads/googleads/v8/enums/feed_link_status.proto"; -import "google/ads/googleads/v8/enums/placeholder_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerFeedProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CustomerFeed resource. - -// A customer feed. -message CustomerFeed { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerFeed" - pattern: "customers/{customer_id}/customerFeeds/{feed_id}" - }; - - // Immutable. The resource name of the customer feed. - // Customer feed resource names have the form: - // - // `customers/{customer_id}/customerFeeds/{feed_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerFeed" - } - ]; - - // Immutable. The feed being linked to the customer. - optional string feed = 6 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Indicates which placeholder types the feed may populate under the connected - // customer. Required. - repeated google.ads.googleads.v8.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.v8.common.MatchingFunction matching_function = 4; - - // Output only. Status of the customer feed. - // This field is read-only. - google.ads.googleads.v8.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/customer_label.proto b/google/ads/googleads/v8/resources/customer_label.proto deleted file mode 100644 index 82fb12263..000000000 --- a/google/ads/googleads/v8/resources/customer_label.proto +++ /dev/null @@ -1,72 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerLabelProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the customer label resource. - -// Represents a relationship between a customer and a label. This customer may -// not have access to all the labels attached to it. Additional CustomerLabels -// may be returned by increasing permissions with login-customer-id. -message CustomerLabel { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerLabel" - pattern: "customers/{customer_id}/customerLabels/{label_id}" - }; - - // Immutable. Name of the resource. - // Customer label resource names have the form: - // `customers/{customer_id}/customerLabels/{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerLabel" - } - ]; - - // Output only. The resource name of the customer to which the label is attached. - // Read only. - optional string customer = 4 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. The resource name of the label assigned to the customer. - // - // Note: the Customer ID portion of the label resource name is not - // validated when creating a new CustomerLabel. - optional string label = 5 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/customer_manager_link.proto b/google/ads/googleads/v8/resources/customer_manager_link.proto deleted file mode 100644 index bb79ce275..000000000 --- a/google/ads/googleads/v8/resources/customer_manager_link.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/manager_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerManagerLinkProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CustomerManagerLink resource. - -// Represents customer-manager link relationship. -message CustomerManagerLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerManagerLink" - pattern: "customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}" - }; - - // Immutable. Name of the resource. - // CustomerManagerLink resource names have the form: - // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerManagerLink" - } - ]; - - // Output only. The manager customer linked to the customer. - optional string manager_customer = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; - - // Output only. ID of the customer-manager link. This field is read only. - optional int64 manager_link_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Status of the link between the customer and the manager. - google.ads.googleads.v8.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; -} diff --git a/google/ads/googleads/v8/resources/customer_negative_criterion.proto b/google/ads/googleads/v8/resources/customer_negative_criterion.proto deleted file mode 100644 index 02bc736f4..000000000 --- a/google/ads/googleads/v8/resources/customer_negative_criterion.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/enums/criterion_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerNegativeCriterionProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Customer Negative Criterion resource. - -// A negative criterion for exclusions at the customer level. -message CustomerNegativeCriterion { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerNegativeCriterion" - pattern: "customers/{customer_id}/customerNegativeCriteria/{criterion_id}" - }; - - // Immutable. The resource name of the customer negative criterion. - // Customer negative criterion resource names have the form: - // - // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerNegativeCriterion" - } - ]; - - // Output only. The ID of the criterion. - optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of the criterion. - google.ads.googleads.v8.enums.CriterionTypeEnum.CriterionType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The customer negative criterion. - // - // Exactly one must be set. - oneof criterion { - // Immutable. ContentLabel. - google.ads.googleads.v8.common.ContentLabelInfo content_label = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. MobileApplication. - google.ads.googleads.v8.common.MobileApplicationInfo mobile_application = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. MobileAppCategory. - google.ads.googleads.v8.common.MobileAppCategoryInfo mobile_app_category = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Placement. - google.ads.googleads.v8.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Video. - google.ads.googleads.v8.common.YouTubeVideoInfo youtube_video = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Channel. - google.ads.googleads.v8.common.YouTubeChannelInfo youtube_channel = 9 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/customer_user_access.proto b/google/ads/googleads/v8/resources/customer_user_access.proto deleted file mode 100644 index 2dcaf4ab2..000000000 --- a/google/ads/googleads/v8/resources/customer_user_access.proto +++ /dev/null @@ -1,72 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/access_role.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CustomerUserAccess resource. - -// Represents the permission of a single user onto a single customer. -message CustomerUserAccess { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerUserAccess" - pattern: "customers/{customer_id}/customerUserAccesses/{user_id}" - }; - - // Immutable. Name of the resource. - // Resource names have the form: - // `customers/{customer_id}/customerUserAccesses/{user_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerUserAccess" - } - ]; - - // Output only. User id of the user with the customer access. - // Read only field - int64 user_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Email address of the user. - // Read only field - optional string email_address = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Access role of the user. - google.ads.googleads.v8.enums.AccessRoleEnum.AccessRole access_role = 4; - - // Output only. The customer user access creation time. - // Read only field - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string access_creation_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The email address of the inviter user. - // Read only field - optional string inviter_user_email_address = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/customer_user_access_invitation.proto b/google/ads/googleads/v8/resources/customer_user_access_invitation.proto deleted file mode 100644 index d4c17a3ba..000000000 --- a/google/ads/googleads/v8/resources/customer_user_access_invitation.proto +++ /dev/null @@ -1,73 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/access_invitation_status.proto"; -import "google/ads/googleads/v8/enums/access_role.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessInvitationProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the CustomerUserAccessInvitation resource. - -// Represent an invitation to a new user on this customer account. -message CustomerUserAccessInvitation { - option (google.api.resource) = { - type: "googleads.googleapis.com/CustomerUserAccessInvitation" - pattern: "customers/{customer_id}/customerUserAccessInvitations/{invitation_id}" - }; - - // Immutable. Name of the resource. - // Resource names have the form: - // `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerUserAccessInvitation" - } - ]; - - // Output only. The ID of the invitation. - // This field is read-only. - int64 invitation_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Access role of the user. - google.ads.googleads.v8.enums.AccessRoleEnum.AccessRole access_role = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Email address the invitation was sent to. - // This can differ from the email address of the account - // that accepts the invite. - string email_address = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Time invitation was created. - // This field is read-only. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - string creation_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Invitation status of the user. - google.ads.googleads.v8.enums.AccessInvitationStatusEnum.AccessInvitationStatus invitation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/detail_placement_view.proto b/google/ads/googleads/v8/resources/detail_placement_view.proto deleted file mode 100644 index 4184be50a..000000000 --- a/google/ads/googleads/v8/resources/detail_placement_view.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/placement_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DetailPlacementViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the detail placement view resource. - -// A view with metrics aggregated by ad group and URL or YouTube video. -message DetailPlacementView { - option (google.api.resource) = { - type: "googleads.googleapis.com/DetailPlacementView" - pattern: "customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}" - }; - - // Output only. The resource name of the detail placement view. - // Detail placement view resource names have the form: - // - // `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DetailPlacementView" - } - ]; - - // Output only. The automatic placement string at detail level, e. g. website URL, mobile - // application ID, or a YouTube video ID. - optional string placement = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The display name is URL name for websites, YouTube video name for YouTube - // videos, and translated mobile app name for mobile apps. - optional string display_name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. URL of the group placement, e.g. domain, link to the mobile application in - // app store, or a YouTube channel URL. - optional string group_placement_target_url = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. URL of the placement, e.g. website, link to the mobile application in app - // store, or a YouTube video URL. - optional string target_url = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Type of the placement, e.g. Website, YouTube Video, and Mobile Application. - google.ads.googleads.v8.enums.PlacementTypeEnum.PlacementType placement_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/detailed_demographic.proto b/google/ads/googleads/v8/resources/detailed_demographic.proto deleted file mode 100644 index 59013d501..000000000 --- a/google/ads/googleads/v8/resources/detailed_demographic.proto +++ /dev/null @@ -1,74 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criterion_category_availability.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DetailedDemographicProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Detailed Demographic resource. - -// A detailed demographic: a particular interest-based vertical to be targeted -// to reach users based on long-term life facts. -message DetailedDemographic { - option (google.api.resource) = { - type: "googleads.googleapis.com/DetailedDemographic" - pattern: "customers/{customer_id}/detailedDemographics/{detailed_demographic_id}" - }; - - // Output only. The resource name of the detailed demographic. - // Detailed demographic resource names have the form: - // - // `customers/{customer_id}/detailedDemographics/{detailed_demographic_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DetailedDemographic" - } - ]; - - // Output only. The ID of the detailed demographic. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the detailed demographic. E.g."Highest Level of Educational - // Attainment" - string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The parent of the detailed_demographic. - string parent = 4 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DetailedDemographic" - } - ]; - - // Output only. True if the detailed demographic is launched to all channels and locales. - bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Availability information of the detailed demographic. - repeated google.ads.googleads.v8.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/display_keyword_view.proto b/google/ads/googleads/v8/resources/display_keyword_view.proto deleted file mode 100644 index a6491d88c..000000000 --- a/google/ads/googleads/v8/resources/display_keyword_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DisplayKeywordViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the display keyword view resource. - -// A display keyword view. -message DisplayKeywordView { - option (google.api.resource) = { - type: "googleads.googleapis.com/DisplayKeywordView" - pattern: "customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the display keyword view. - // Display Keyword view resource names have the form: - // - // `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DisplayKeywordView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/distance_view.proto b/google/ads/googleads/v8/resources/distance_view.proto deleted file mode 100644 index 94cce7dbb..000000000 --- a/google/ads/googleads/v8/resources/distance_view.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/distance_bucket.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DistanceViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the DistanceView resource. - -// A distance view with metrics aggregated by the user's distance from an -// advertiser's location extensions. Each DistanceBucket includes all -// impressions that fall within its distance and a single impression will -// contribute to the metrics for all DistanceBuckets that include the user's -// distance. -message DistanceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/DistanceView" - pattern: "customers/{customer_id}/distanceViews/{placeholder_chain_id}~{distance_bucket}" - }; - - // Output only. The resource name of the distance view. - // Distance view resource names have the form: - // - // `customers/{customer_id}/distanceViews/1~{distance_bucket}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DistanceView" - } - ]; - - // Output only. Grouping of user distance from location extensions. - google.ads.googleads.v8.enums.DistanceBucketEnum.DistanceBucket distance_bucket = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. True if the DistanceBucket is using the metric system, false otherwise. - optional bool metric_system = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/domain_category.proto b/google/ads/googleads/v8/resources/domain_category.proto deleted file mode 100644 index a7a5d373e..000000000 --- a/google/ads/googleads/v8/resources/domain_category.proto +++ /dev/null @@ -1,90 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DomainCategoryProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Domain Category resource. - -// A category generated automatically by crawling a domain. If a campaign uses -// the DynamicSearchAdsSetting, then domain categories will be generated for -// the domain. The categories can be targeted using WebpageConditionInfo. -// See: https://support.google.com/google-ads/answer/2471185 -message DomainCategory { - option (google.api.resource) = { - type: "googleads.googleapis.com/DomainCategory" - pattern: "customers/{customer_id}/domainCategories/{campaign_id}~{base64_category}~{language_code}" - }; - - // Output only. The resource name of the domain category. - // Domain category resource names have the form: - // - // `customers/{customer_id}/domainCategories/{campaign_id}~{category_base64}~{language_code}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DomainCategory" - } - ]; - - // Output only. The campaign this category is recommended for. - optional string campaign = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. Recommended category for the website domain. e.g. if you have a website - // about electronics, the categories could be "cameras", "televisions", etc. - optional string category = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The language code specifying the language of the website. e.g. "en" for - // English. The language can be specified in the DynamicSearchAdsSetting - // required for dynamic search ads. This is the language of the pages from - // your website that you want Google Ads to find, create ads for, - // and match searches with. - optional string language_code = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The domain for the website. The domain can be specified in the - // DynamicSearchAdsSetting required for dynamic search ads. - optional string domain = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Fraction of pages on your site that this category matches. - optional double coverage_fraction = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The position of this category in the set of categories. Lower numbers - // indicate a better match for the domain. null indicates not recommended. - optional int64 category_rank = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates whether this category has sub-categories. - optional bool has_children = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended cost per click for the category. - optional int64 recommended_cpc_bid_micros = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/dynamic_search_ads_search_term_view.proto b/google/ads/googleads/v8/resources/dynamic_search_ads_search_term_view.proto deleted file mode 100644 index 85b0c1997..000000000 --- a/google/ads/googleads/v8/resources/dynamic_search_ads_search_term_view.proto +++ /dev/null @@ -1,86 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "DynamicSearchAdsSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Dynamic Search Ads Search Term View resource. - -// A dynamic search ads search term view. -message DynamicSearchAdsSearchTermView { - option (google.api.resource) = { - type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" - pattern: "customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}" - }; - - // Output only. The resource name of the dynamic search ads search term view. - // Dynamic search ads search term view resource names have the form: - // - // `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" - } - ]; - - // Output only. Search term - // - // This field is read-only. - optional string search_term = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The dynamically generated headline of the Dynamic Search Ad. - // - // This field is read-only. - optional string headline = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The dynamically selected landing page URL of the impression. - // - // This field is read-only. - optional string landing_page = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The URL of page feed item served for the impression. - // - // This field is read-only. - optional string page_url = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. True if query matches a negative keyword. - // - // This field is read-only. - optional bool has_negative_keyword = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. True if query is added to targeted keywords. - // - // This field is read-only. - optional bool has_matching_keyword = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. True if query matches a negative url. - // - // This field is read-only. - optional bool has_negative_url = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/expanded_landing_page_view.proto b/google/ads/googleads/v8/resources/expanded_landing_page_view.proto deleted file mode 100644 index 2a6c7fb80..000000000 --- a/google/ads/googleads/v8/resources/expanded_landing_page_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ExpandedLandingPageViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the expanded landing page view resource. - -// A landing page view with metrics aggregated at the expanded final URL -// level. -message ExpandedLandingPageView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ExpandedLandingPageView" - pattern: "customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}" - }; - - // Output only. The resource name of the expanded landing page view. - // Expanded landing page view resource names have the form: - // - // `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ExpandedLandingPageView" - } - ]; - - // Output only. The final URL that clicks are directed to. - optional string expanded_final_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/extension_feed_item.proto b/google/ads/googleads/v8/resources/extension_feed_item.proto deleted file mode 100644 index 588574f8a..000000000 --- a/google/ads/googleads/v8/resources/extension_feed_item.proto +++ /dev/null @@ -1,151 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/common/extensions.proto"; -import "google/ads/googleads/v8/enums/extension_type.proto"; -import "google/ads/googleads/v8/enums/feed_item_status.proto"; -import "google/ads/googleads/v8/enums/feed_item_target_device.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionFeedItemProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ExtensionFeedItem resource. - -// An extension feed item. -message ExtensionFeedItem { - option (google.api.resource) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - pattern: "customers/{customer_id}/extensionFeedItems/{feed_item_id}" - }; - - // Immutable. The resource name of the extension feed item. - // Extension feed item resource names have the form: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - } - ]; - - // Output only. The ID of this feed item. Read-only. - optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The extension type of the extension feed item. - // This field is read-only. - google.ads.googleads.v8.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 - // time is in the customer's time zone. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string start_date_time = 26; - - // End time in which this feed item is no longer effective and will stop - // serving. The time is in the customer's time zone. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string end_date_time = 27; - - // 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.v8.common.AdScheduleInfo ad_schedules = 16; - - // The targeted device. - google.ads.googleads.v8.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 17; - - // The targeted geo target constant. - optional string targeted_geo_target_constant = 30 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - }]; - - // The targeted keyword. - google.ads.googleads.v8.common.KeywordInfo targeted_keyword = 22; - - // Output only. Status of the feed item. - // This field is read-only. - google.ads.googleads.v8.enums.FeedItemStatusEnum.FeedItemStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Extension type. - oneof extension { - // Sitelink extension. - google.ads.googleads.v8.common.SitelinkFeedItem sitelink_feed_item = 2; - - // Structured snippet extension. - google.ads.googleads.v8.common.StructuredSnippetFeedItem structured_snippet_feed_item = 3; - - // App extension. - google.ads.googleads.v8.common.AppFeedItem app_feed_item = 7; - - // Call extension. - google.ads.googleads.v8.common.CallFeedItem call_feed_item = 8; - - // Callout extension. - google.ads.googleads.v8.common.CalloutFeedItem callout_feed_item = 9; - - // Text message extension. - google.ads.googleads.v8.common.TextMessageFeedItem text_message_feed_item = 10; - - // Price extension. - google.ads.googleads.v8.common.PriceFeedItem price_feed_item = 11; - - // Promotion extension. - google.ads.googleads.v8.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.v8.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.v8.common.AffiliateLocationFeedItem affiliate_location_feed_item = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Hotel Callout extension. - google.ads.googleads.v8.common.HotelCalloutFeedItem hotel_callout_feed_item = 23; - - // Immutable. Advertiser provided image extension. - google.ads.googleads.v8.common.ImageFeedItem image_feed_item = 31 [(google.api.field_behavior) = IMMUTABLE]; - } - - // Targeting at either the campaign or ad group level. Feed items that target - // a campaign or ad group will only serve with that resource. - oneof serving_resource_targeting { - // The targeted campaign. - string targeted_campaign = 28 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - }]; - - // The targeted ad group. - string targeted_ad_group = 29 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - }]; - } -} diff --git a/google/ads/googleads/v8/resources/feed.proto b/google/ads/googleads/v8/resources/feed.proto deleted file mode 100644 index 58bf95160..000000000 --- a/google/ads/googleads/v8/resources/feed.proto +++ /dev/null @@ -1,190 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/affiliate_location_feed_relationship_type.proto"; -import "google/ads/googleads/v8/enums/feed_attribute_type.proto"; -import "google/ads/googleads/v8/enums/feed_origin.proto"; -import "google/ads/googleads/v8/enums/feed_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Feed resource. - -// A feed. -message Feed { - option (google.api.resource) = { - type: "googleads.googleapis.com/Feed" - pattern: "customers/{customer_id}/feeds/{feed_id}" - }; - - // Data used to configure a location feed populated from Business Profile. - message PlacesLocationFeedData { - // Data used for authorization using OAuth. - message OAuthInfo { - // The HTTP method used to obtain authorization. - optional string http_method = 4; - - // The HTTP request URL used to obtain authorization. - optional string http_request_url = 5; - - // The HTTP authorization header used to obtain authorization. - optional string http_authorization_header = 6; - } - - // Immutable. Required authentication token (from OAuth API) for the email. - // This field can only be specified in a create request. All its subfields - // are not selectable. - OAuthInfo oauth_info = 1 [(google.api.field_behavior) = IMMUTABLE]; - - // Email address of a Business Profile or email address of a - // manager of the Business Profile. Required. - optional string email_address = 7; - - // Plus page ID of the managed business whose locations should be used. If - // this field is not set, then all businesses accessible by the user - // (specified by email_address) are used. - // This field is mutate-only and is not selectable. - string business_account_id = 8; - - // Used to filter Business Profile listings by business name. If - // business_name_filter is set, only listings with a matching business name - // are candidates to be sync'd into FeedItems. - optional string business_name_filter = 9; - - // Used to filter Business Profile listings by categories. If entries - // exist in category_filters, only listings that belong to any of the - // categories are candidates to be sync'd into FeedItems. If no entries - // exist in category_filters, then all listings are candidates for syncing. - repeated string category_filters = 11; - - // Used to filter Business Profile listings by labels. If entries exist in - // label_filters, only listings that has any of the labels set are - // candidates to be synchronized into FeedItems. If no entries exist in - // label_filters, then all listings are candidates for syncing. - repeated string label_filters = 12; - } - - // Data used to configure an affiliate location feed populated with the - // specified chains. - message AffiliateLocationFeedData { - // The list of chains that the affiliate location feed will sync the - // locations from. - repeated int64 chain_ids = 3; - - // The relationship the chains have with the advertiser. - google.ads.googleads.v8.enums.AffiliateLocationFeedRelationshipTypeEnum.AffiliateLocationFeedRelationshipType relationship_type = 2; - } - - // Immutable. The resource name of the feed. - // Feed resource names have the form: - // - // `customers/{customer_id}/feeds/{feed_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. The ID of the feed. - // This field is read-only. - optional int64 id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Name of the feed. Required. - optional string name = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // The Feed's attributes. Required on CREATE, unless - // system_feed_generation_data is provided, in which case Google Ads will - // update the feed with the correct attributes. - // Disallowed on UPDATE. Use attribute_operations to add new attributes. - repeated FeedAttribute attributes = 4; - - // The list of operations changing the feed attributes. Attributes can only - // be added, not removed. - repeated FeedAttributeOperation attribute_operations = 9; - - // Immutable. Specifies who manages the FeedAttributes for the Feed. - google.ads.googleads.v8.enums.FeedOriginEnum.FeedOrigin origin = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Status of the feed. - // This field is read-only. - google.ads.googleads.v8.enums.FeedStatusEnum.FeedStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The system data for the Feed. This data specifies information for - // generating the feed items of the system generated feed. - oneof system_feed_generation_data { - // Data used to configure a location feed populated from Business Profile. - PlacesLocationFeedData places_location_feed_data = 6; - - // Data used to configure an affiliate location feed populated with - // the specified chains. - AffiliateLocationFeedData affiliate_location_feed_data = 7; - } -} - -// FeedAttributes define the types of data expected to be present in a Feed. A -// single FeedAttribute specifies the expected type of the FeedItemAttributes -// with the same FeedAttributeId. Optionally, a FeedAttribute can be marked as -// being part of a FeedItem's unique key. -message FeedAttribute { - // ID of the attribute. - optional int64 id = 5; - - // The name of the attribute. Required. - optional string name = 6; - - // Data type for feed attribute. Required. - google.ads.googleads.v8.enums.FeedAttributeTypeEnum.FeedAttributeType type = 3; - - // Indicates that data corresponding to this attribute is part of a - // FeedItem's unique key. It defaults to false if it is unspecified. Note - // that a unique key is not required in a Feed's schema, in which case the - // FeedItems must be referenced by their feed_item_id. - optional bool is_part_of_key = 7; -} - -// Operation to be performed on a feed attribute list in a mutate. -message FeedAttributeOperation { - // The operator. - enum Operator { - // Unspecified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Add the attribute to the existing attributes. - ADD = 2; - } - - // Output only. Type of list operation to perform. - Operator operator = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The feed attribute being added to the list. - FeedAttribute value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/feed_item.proto b/google/ads/googleads/v8/resources/feed_item.proto deleted file mode 100644 index 756910af4..000000000 --- a/google/ads/googleads/v8/resources/feed_item.proto +++ /dev/null @@ -1,214 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/custom_parameter.proto"; -import "google/ads/googleads/v8/common/feed_common.proto"; -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/enums/feed_item_quality_approval_status.proto"; -import "google/ads/googleads/v8/enums/feed_item_quality_disapproval_reason.proto"; -import "google/ads/googleads/v8/enums/feed_item_status.proto"; -import "google/ads/googleads/v8/enums/feed_item_validation_status.proto"; -import "google/ads/googleads/v8/enums/geo_targeting_restriction.proto"; -import "google/ads/googleads/v8/enums/placeholder_type.proto"; -import "google/ads/googleads/v8/enums/policy_approval_status.proto"; -import "google/ads/googleads/v8/enums/policy_review_status.proto"; -import "google/ads/googleads/v8/errors/feed_item_validation_error.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the FeedItem resource. - -// A feed item. -message FeedItem { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedItem" - pattern: "customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}" - }; - - // Immutable. The resource name of the feed item. - // Feed item resource names have the form: - // - // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Immutable. The feed to which this feed item belongs. - optional string feed = 11 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. The ID of this feed item. - optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Start time in which this feed item is effective and can begin serving. The - // time is in the customer's time zone. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string start_date_time = 13; - - // End time in which this feed item is no longer effective and will stop - // serving. The time is in the customer's time zone. - // The format is "YYYY-MM-DD HH:MM:SS". - // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" - optional string end_date_time = 14; - - // The feed item's attribute values. - repeated FeedItemAttributeValue attribute_values = 6; - - // Geo targeting restriction specifies the type of location that can be used - // for targeting. - google.ads.googleads.v8.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.v8.common.CustomParameter url_custom_parameters = 8; - - // Output only. Status of the feed item. - // This field is read-only. - google.ads.googleads.v8.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 for active - // feed mappings. There will be an entry in the list for each type of feed - // mapping associated with the feed, e.g. a feed with a sitelink and a call - // feed mapping would cause every feed item associated with that feed to have - // an entry in this list for both sitelink and call. - // This field is read-only. - repeated FeedItemPlaceholderPolicyInfo policy_infos = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// A feed item attribute value. -message FeedItemAttributeValue { - // Id of the feed attribute for which the value is associated with. - optional int64 feed_attribute_id = 11; - - // Int64 value. Should be set if feed_attribute_id refers to a feed attribute - // of type INT64. - optional int64 integer_value = 12; - - // Bool value. Should be set if feed_attribute_id refers to a feed attribute - // of type BOOLEAN. - optional bool boolean_value = 13; - - // String value. Should be set if feed_attribute_id refers to a feed attribute - // of type STRING, URL or DATE_TIME. - // For STRING the maximum length is 1500 characters. For URL the maximum - // length is 2076 characters. For DATE_TIME the string must be in the format - // "YYYYMMDD HHMMSS". - optional string string_value = 14; - - // Double value. Should be set if feed_attribute_id refers to a feed attribute - // of type DOUBLE. - optional double double_value = 15; - - // Price value. Should be set if feed_attribute_id refers to a feed attribute - // of type PRICE. - google.ads.googleads.v8.common.Money price_value = 6; - - // Repeated int64 value. Should be set if feed_attribute_id refers to a feed - // attribute of type INT64_LIST. - repeated int64 integer_values = 16; - - // Repeated bool value. Should be set if feed_attribute_id refers to a feed - // attribute of type BOOLEAN_LIST. - repeated bool boolean_values = 17; - - // Repeated string value. Should be set if feed_attribute_id refers to a feed - // attribute of type STRING_LIST, URL_LIST or DATE_TIME_LIST. - // For STRING_LIST and URL_LIST the total size of the list in bytes may not - // exceed 3000. For DATE_TIME_LIST the number of elements may not exceed 200. - // - // For STRING_LIST the maximum length of each string element is 1500 - // characters. For URL_LIST the maximum length is 2076 characters. For - // DATE_TIME the format of the string must be the same as start and end time - // for the feed item. - repeated string string_values = 18; - - // Repeated double value. Should be set if feed_attribute_id refers to a feed - // attribute of type DOUBLE_LIST. - repeated double double_values = 19; -} - -// Policy, validation, and quality approval info for a feed item for the -// specified placeholder type. -message FeedItemPlaceholderPolicyInfo { - // Output only. The placeholder type. - google.ads.googleads.v8.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type_enum = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The FeedMapping that contains the placeholder type. - optional string feed_mapping_resource_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Where the placeholder type is in the review process. - google.ads.googleads.v8.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.v8.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.v8.common.PolicyTopicEntry policy_topic_entries = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The validation status of the palceholder type. - google.ads.googleads.v8.enums.FeedItemValidationStatusEnum.FeedItemValidationStatus validation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. List of placeholder type validation errors. - repeated FeedItemValidationError validation_errors = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Placeholder type quality evaluation approval status. - google.ads.googleads.v8.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.v8.enums.FeedItemQualityDisapprovalReasonEnum.FeedItemQualityDisapprovalReason quality_disapproval_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Stores a validation error and the set of offending feed attributes which -// together are responsible for causing a feed item validation error. -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.v8.errors.FeedItemValidationErrorEnum.FeedItemValidationError validation_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The description of the validation error. - optional string description = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Set of feed attributes in the feed item flagged during validation. If - // empty, no specific feed attributes can be associated with the error - // (e.g. error across the entire feed item). - repeated int64 feed_attribute_ids = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Any extra information related to this error which is not captured by - // validation_error and feed_attribute_id (e.g. placeholder field IDs when - // feed_attribute_id is not mapped). Note that extra_info is not localized. - optional string extra_info = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/feed_item_set.proto b/google/ads/googleads/v8/resources/feed_item_set.proto deleted file mode 100644 index af4e6501c..000000000 --- a/google/ads/googleads/v8/resources/feed_item_set.proto +++ /dev/null @@ -1,84 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/feed_item_set_filter_type_infos.proto"; -import "google/ads/googleads/v8/enums/feed_item_set_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::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 -// matching functions of CustomerFeed, CampaignFeed, and AdGroupFeed. -message FeedItemSet { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedItemSet" - pattern: "customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}" - }; - - // Immutable. The resource name of the feed item set. - // Feed item set resource names have the form: - // `customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSet" - } - ]; - - // Immutable. The resource name of the feed containing the feed items in the set. - // Immutable. Required. - string feed = 2 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Output only. ID of the set. - int64 feed_item_set_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Name of the set. Must be unique within the account. - string display_name = 4; - - // Output only. Status of the feed item set. - // This field is read-only. - google.ads.googleads.v8.enums.FeedItemSetStatusEnum.FeedItemSetStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Represents a filter on locations in a feed item set. - // Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. - oneof dynamic_set_filter { - // Filter for dynamic location set. - // It is only used for sets of locations. - google.ads.googleads.v8.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.v8.common.DynamicAffiliateLocationSetFilter dynamic_affiliate_location_set_filter = 6; - } -} diff --git a/google/ads/googleads/v8/resources/feed_item_set_link.proto b/google/ads/googleads/v8/resources/feed_item_set_link.proto deleted file mode 100644 index 623fb1405..000000000 --- a/google/ads/googleads/v8/resources/feed_item_set_link.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetLinkProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the FeedItemSetLink resource. - -// Represents a link between a FeedItem and a FeedItemSet. -message FeedItemSetLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedItemSetLink" - pattern: "customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}" - }; - - // Immutable. The resource name of the feed item set link. - // Feed item set link resource names have the form: - // `customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSetLink" - } - ]; - - // Immutable. The linked FeedItem. - string feed_item = 2 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Immutable. The linked FeedItemSet. - string feed_item_set = 3 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSet" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/feed_item_target.proto b/google/ads/googleads/v8/resources/feed_item_target.proto deleted file mode 100644 index f76960fdb..000000000 --- a/google/ads/googleads/v8/resources/feed_item_target.proto +++ /dev/null @@ -1,108 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/enums/feed_item_target_device.proto"; -import "google/ads/googleads/v8/enums/feed_item_target_status.proto"; -import "google/ads/googleads/v8/enums/feed_item_target_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the FeedItemTarget resource. - -// A feed item target. -message FeedItemTarget { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedItemTarget" - pattern: "customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}" - }; - - // Immutable. The resource name of the feed item target. - // Feed item target resource names have the form: - // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemTarget" - } - ]; - - // Immutable. The feed item to which this feed item target belongs. - optional string feed_item = 12 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; - - // Output only. The target type of this feed item target. This field is read-only. - google.ads.googleads.v8.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. - optional int64 feed_item_target_id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of the feed item target. - // This field is read-only. - google.ads.googleads.v8.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The targeted resource. - oneof target { - // Immutable. The targeted campaign. - string campaign = 14 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Immutable. The targeted ad group. - string ad_group = 15 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Immutable. The targeted keyword. - google.ads.googleads.v8.common.KeywordInfo keyword = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The targeted geo target constant resource name. - string geo_target_constant = 16 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; - - // Immutable. The targeted device. - google.ads.googleads.v8.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 9 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The targeted schedule. - google.ads.googleads.v8.common.AdScheduleInfo ad_schedule = 10 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/feed_mapping.proto b/google/ads/googleads/v8/resources/feed_mapping.proto deleted file mode 100644 index 8c02a820f..000000000 --- a/google/ads/googleads/v8/resources/feed_mapping.proto +++ /dev/null @@ -1,189 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/ad_customizer_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/affiliate_location_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/app_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/call_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/callout_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/custom_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/dsa_page_feed_criterion_field.proto"; -import "google/ads/googleads/v8/enums/education_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/feed_mapping_criterion_type.proto"; -import "google/ads/googleads/v8/enums/feed_mapping_status.proto"; -import "google/ads/googleads/v8/enums/flight_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/hotel_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/image_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/job_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/local_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/location_extension_targeting_criterion_field.proto"; -import "google/ads/googleads/v8/enums/location_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/message_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/placeholder_type.proto"; -import "google/ads/googleads/v8/enums/price_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/promotion_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/real_estate_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/sitelink_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/structured_snippet_placeholder_field.proto"; -import "google/ads/googleads/v8/enums/travel_placeholder_field.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the FeedMapping resource. - -// A feed mapping. -message FeedMapping { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedMapping" - pattern: "customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}" - }; - - // Immutable. The resource name of the feed mapping. - // Feed mapping resource names have the form: - // - // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedMapping" - } - ]; - - // Immutable. The feed of this feed mapping. - optional string feed = 7 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; - - // Immutable. Feed attributes to field mappings. These mappings are a one-to-many - // relationship meaning that 1 feed attribute can be used to populate - // multiple placeholder fields, but 1 placeholder field can only draw - // data from 1 feed attribute. Ad Customizer is an exception, 1 placeholder - // field can be mapped to multiple feed attributes. Required. - repeated AttributeFieldMapping attribute_field_mappings = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Status of the feed mapping. - // This field is read-only. - google.ads.googleads.v8.enums.FeedMappingStatusEnum.FeedMappingStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Feed mapping target. Can be either a placeholder or a criterion. For a - // given feed, the active FeedMappings must have unique targets. Required. - oneof target { - // Immutable. The placeholder type of this mapping (i.e., if the mapping maps feed - // attributes to placeholder fields). - google.ads.googleads.v8.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The criterion type of this mapping (i.e., if the mapping maps feed - // attributes to criterion fields). - google.ads.googleads.v8.enums.FeedMappingCriterionTypeEnum.FeedMappingCriterionType criterion_type = 4 [(google.api.field_behavior) = IMMUTABLE]; - } -} - -// Maps from feed attribute id to a placeholder or criterion field id. -message AttributeFieldMapping { - // Immutable. Feed attribute from which to map. - optional int64 feed_attribute_id = 24 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The placeholder field ID. If a placeholder field enum is not published in - // the current API version, then this field will be populated and the field - // oneof will be empty. - // This field is read-only. - optional int64 field_id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Placeholder or criterion field to be populated using data from - // the above feed attribute. Required. - oneof field { - // Immutable. Sitelink Placeholder Fields. - google.ads.googleads.v8.enums.SitelinkPlaceholderFieldEnum.SitelinkPlaceholderField sitelink_field = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Call Placeholder Fields. - google.ads.googleads.v8.enums.CallPlaceholderFieldEnum.CallPlaceholderField call_field = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. App Placeholder Fields. - google.ads.googleads.v8.enums.AppPlaceholderFieldEnum.AppPlaceholderField app_field = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Location Placeholder Fields. This field is read-only. - google.ads.googleads.v8.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.v8.enums.AffiliateLocationPlaceholderFieldEnum.AffiliateLocationPlaceholderField affiliate_location_field = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Callout Placeholder Fields. - google.ads.googleads.v8.enums.CalloutPlaceholderFieldEnum.CalloutPlaceholderField callout_field = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Structured Snippet Placeholder Fields. - google.ads.googleads.v8.enums.StructuredSnippetPlaceholderFieldEnum.StructuredSnippetPlaceholderField structured_snippet_field = 9 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Message Placeholder Fields. - google.ads.googleads.v8.enums.MessagePlaceholderFieldEnum.MessagePlaceholderField message_field = 10 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Price Placeholder Fields. - google.ads.googleads.v8.enums.PricePlaceholderFieldEnum.PricePlaceholderField price_field = 11 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Promotion Placeholder Fields. - google.ads.googleads.v8.enums.PromotionPlaceholderFieldEnum.PromotionPlaceholderField promotion_field = 12 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Ad Customizer Placeholder Fields - google.ads.googleads.v8.enums.AdCustomizerPlaceholderFieldEnum.AdCustomizerPlaceholderField ad_customizer_field = 13 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Dynamic Search Ad Page Feed Fields. - google.ads.googleads.v8.enums.DsaPageFeedCriterionFieldEnum.DsaPageFeedCriterionField dsa_page_feed_field = 14 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Location Target Fields. - google.ads.googleads.v8.enums.LocationExtensionTargetingCriterionFieldEnum.LocationExtensionTargetingCriterionField location_extension_targeting_field = 15 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Education Placeholder Fields - google.ads.googleads.v8.enums.EducationPlaceholderFieldEnum.EducationPlaceholderField education_field = 16 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Flight Placeholder Fields - google.ads.googleads.v8.enums.FlightPlaceholderFieldEnum.FlightPlaceholderField flight_field = 17 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Custom Placeholder Fields - google.ads.googleads.v8.enums.CustomPlaceholderFieldEnum.CustomPlaceholderField custom_field = 18 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Hotel Placeholder Fields - google.ads.googleads.v8.enums.HotelPlaceholderFieldEnum.HotelPlaceholderField hotel_field = 19 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Real Estate Placeholder Fields - google.ads.googleads.v8.enums.RealEstatePlaceholderFieldEnum.RealEstatePlaceholderField real_estate_field = 20 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Travel Placeholder Fields - google.ads.googleads.v8.enums.TravelPlaceholderFieldEnum.TravelPlaceholderField travel_field = 21 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Local Placeholder Fields - google.ads.googleads.v8.enums.LocalPlaceholderFieldEnum.LocalPlaceholderField local_field = 22 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Job Placeholder Fields - google.ads.googleads.v8.enums.JobPlaceholderFieldEnum.JobPlaceholderField job_field = 23 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Image Placeholder Fields - google.ads.googleads.v8.enums.ImagePlaceholderFieldEnum.ImagePlaceholderField image_field = 26 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/feed_placeholder_view.proto b/google/ads/googleads/v8/resources/feed_placeholder_view.proto deleted file mode 100644 index 46554ebb3..000000000 --- a/google/ads/googleads/v8/resources/feed_placeholder_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/placeholder_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "FeedPlaceholderViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the FeedPlaceholderView resource. - -// A feed placeholder view. -message FeedPlaceholderView { - option (google.api.resource) = { - type: "googleads.googleapis.com/FeedPlaceholderView" - pattern: "customers/{customer_id}/feedPlaceholderViews/{placeholder_type}" - }; - - // Output only. The resource name of the feed placeholder view. - // Feed placeholder view resource names have the form: - // - // `customers/{customer_id}/feedPlaceholderViews/{placeholder_type}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedPlaceholderView" - } - ]; - - // Output only. The placeholder type of the feed placeholder view. - google.ads.googleads.v8.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/gender_view.proto b/google/ads/googleads/v8/resources/gender_view.proto deleted file mode 100644 index 0672d6f2e..000000000 --- a/google/ads/googleads/v8/resources/gender_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GenderViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the gender view resource. - -// A gender view. -message GenderView { - option (google.api.resource) = { - type: "googleads.googleapis.com/GenderView" - pattern: "customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the gender view. - // Gender view resource names have the form: - // - // `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GenderView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/geo_target_constant.proto b/google/ads/googleads/v8/resources/geo_target_constant.proto deleted file mode 100644 index 23a29d355..000000000 --- a/google/ads/googleads/v8/resources/geo_target_constant.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/geo_target_constant_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the geo target constant resource. - -// A geo target constant. -message GeoTargetConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/GeoTargetConstant" - pattern: "geoTargetConstants/{criterion_id}" - }; - - // Output only. The resource name of the geo target constant. - // Geo target constant resource names have the form: - // - // `geoTargetConstants/{geo_target_constant_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; - - // Output only. The ID of the geo target constant. - optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Geo target constant English name. - optional string name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ISO-3166-1 alpha-2 country code that is associated with the target. - optional string country_code = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Geo target constant target type. - optional string target_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Geo target constant status. - google.ads.googleads.v8.enums.GeoTargetConstantStatusEnum.GeoTargetConstantStatus status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The fully qualified English name, consisting of the target's name and that - // of its parent and country. - optional string canonical_name = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the parent geo target constant. - // Geo target constant resource names have the form: - // - // `geoTargetConstants/{parent_geo_target_constant_id}` - optional string parent_geo_target = 9 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/geographic_view.proto b/google/ads/googleads/v8/resources/geographic_view.proto deleted file mode 100644 index cfba5eca2..000000000 --- a/google/ads/googleads/v8/resources/geographic_view.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/geo_targeting_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GeographicViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the geographic view resource. - -// A geographic view. -// -// Geographic View includes all metrics aggregated at the country level, -// one row per country. It reports metrics at either actual physical location of -// the user or an area of interest. If other segment fields are used, you may -// get more than one row per country. -message GeographicView { - option (google.api.resource) = { - type: "googleads.googleapis.com/GeographicView" - pattern: "customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}" - }; - - // Output only. The resource name of the geographic view. - // Geographic view resource names have the form: - // - // `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeographicView" - } - ]; - - // Output only. Type of the geo targeting of the campaign. - google.ads.googleads.v8.enums.GeoTargetingTypeEnum.GeoTargetingType location_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Criterion Id for the country. - optional int64 country_criterion_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/google_ads_field.proto b/google/ads/googleads/v8/resources/google_ads_field.proto deleted file mode 100644 index 90cd5f3d8..000000000 --- a/google/ads/googleads/v8/resources/google_ads_field.proto +++ /dev/null @@ -1,108 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/google_ads_field_category.proto"; -import "google/ads/googleads/v8/enums/google_ads_field_data_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsFieldProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Google Ads Field resource. - -// A field or resource (artifact) used by GoogleAdsService. -message GoogleAdsField { - option (google.api.resource) = { - type: "googleads.googleapis.com/GoogleAdsField" - pattern: "googleAdsFields/{google_ads_field}" - }; - - // Output only. The resource name of the artifact. - // Artifact resource names have the form: - // - // `googleAdsFields/{name}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GoogleAdsField" - } - ]; - - // Output only. The name of the artifact. - optional string name = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The category of the artifact. - google.ads.googleads.v8.enums.GoogleAdsFieldCategoryEnum.GoogleAdsFieldCategory category = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the artifact can be used in a SELECT clause in search - // queries. - optional bool selectable = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the artifact can be used in a WHERE clause in search - // queries. - optional bool filterable = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the artifact can be used in a ORDER BY clause in search - // queries. - optional bool sortable = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The names of all resources, segments, and metrics that are selectable with - // the described artifact. - repeated string selectable_with = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The names of all resources that are selectable with the described - // artifact. Fields from these resources do not segment metrics when included - // in search queries. - // - // This field is only set for artifacts whose category is RESOURCE. - repeated string attribute_resources = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. This field lists the names of all metrics that are selectable with the - // described artifact when it is used in the FROM clause. - // It is only set for artifacts whose category is RESOURCE. - repeated string metrics = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. This field lists the names of all artifacts, whether a segment or another - // resource, that segment metrics when included in search queries and when the - // described artifact is used in the FROM clause. It is only set for artifacts - // whose category is RESOURCE. - repeated string segments = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Values the artifact can assume if it is a field of type ENUM. - // - // This field is only set for artifacts of category SEGMENT or ATTRIBUTE. - repeated string enum_values = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. This field determines the operators that can be used with the artifact - // in WHERE clauses. - google.ads.googleads.v8.enums.GoogleAdsFieldDataTypeEnum.GoogleAdsFieldDataType data_type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The URL of proto describing the artifact's data type. - optional string type_url = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the field artifact is repeated. - optional bool is_repeated = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/group_placement_view.proto b/google/ads/googleads/v8/resources/group_placement_view.proto deleted file mode 100644 index 913b451e4..000000000 --- a/google/ads/googleads/v8/resources/group_placement_view.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/placement_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "GroupPlacementViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the group placement view resource. - -// A group placement view. -message GroupPlacementView { - option (google.api.resource) = { - type: "googleads.googleapis.com/GroupPlacementView" - pattern: "customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}" - }; - - // Output only. The resource name of the group placement view. - // Group placement view resource names have the form: - // - // `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GroupPlacementView" - } - ]; - - // Output only. The automatic placement string at group level, e. g. web domain, mobile - // app ID, or a YouTube channel ID. - optional string placement = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Domain name for websites and YouTube channel name for YouTube channels. - optional string display_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. URL of the group placement, e.g. domain, link to the mobile application in - // app store, or a YouTube channel URL. - optional string target_url = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Type of the placement, e.g. Website, YouTube Channel, Mobile Application. - google.ads.googleads.v8.enums.PlacementTypeEnum.PlacementType placement_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/hotel_group_view.proto b/google/ads/googleads/v8/resources/hotel_group_view.proto deleted file mode 100644 index ad3c38cd8..000000000 --- a/google/ads/googleads/v8/resources/hotel_group_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "HotelGroupViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the hotel group view resource. - -// A hotel group view. -message HotelGroupView { - option (google.api.resource) = { - type: "googleads.googleapis.com/HotelGroupView" - pattern: "customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the hotel group view. - // Hotel Group view resource names have the form: - // - // `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/HotelGroupView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/hotel_performance_view.proto b/google/ads/googleads/v8/resources/hotel_performance_view.proto deleted file mode 100644 index 393360b6b..000000000 --- a/google/ads/googleads/v8/resources/hotel_performance_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "HotelPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the hotel performance view resource. - -// A hotel performance view. -message HotelPerformanceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/HotelPerformanceView" - pattern: "customers/{customer_id}/hotelPerformanceView" - }; - - // Output only. The resource name of the hotel performance view. - // Hotel performance view resource names have the form: - // - // `customers/{customer_id}/hotelPerformanceView` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/HotelPerformanceView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/income_range_view.proto b/google/ads/googleads/v8/resources/income_range_view.proto deleted file mode 100644 index 7e26586e9..000000000 --- a/google/ads/googleads/v8/resources/income_range_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "IncomeRangeViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the income range view resource. - -// An income range view. -message IncomeRangeView { - option (google.api.resource) = { - type: "googleads.googleapis.com/IncomeRangeView" - pattern: "customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the income range view. - // Income range view resource names have the form: - // - // `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/IncomeRangeView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/invoice.proto b/google/ads/googleads/v8/resources/invoice.proto deleted file mode 100644 index 2083ceab2..000000000 --- a/google/ads/googleads/v8/resources/invoice.proto +++ /dev/null @@ -1,203 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/dates.proto"; -import "google/ads/googleads/v8/enums/invoice_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "InvoiceProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Invoice resource. - -// An invoice. All invoice information is snapshotted to match the PDF invoice. -// For invoices older than the launch of InvoiceService, the snapshotted -// information may not match the PDF invoice. -message Invoice { - option (google.api.resource) = { - type: "googleads.googleapis.com/Invoice" - pattern: "customers/{customer_id}/invoices/{invoice_id}" - }; - - // Represents a summarized account budget billable cost. - message AccountBudgetSummary { - // Output only. The resource name of the customer associated with this account budget. - // This contains the customer ID, which appears on the invoice PDF as - // "Account ID". - // Customer resource names have the form: - // - // `customers/{customer_id}` - optional string customer = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The descriptive name of the account budget’s customer. It appears on the - // invoice PDF as "Account". - optional string customer_descriptive_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the account budget associated with this summarized - // billable cost. - // AccountBudget resource names have the form: - // - // `customers/{customer_id}/accountBudgets/{account_budget_id}` - optional string account_budget = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the account budget. It appears on the invoice PDF as "Account - // budget". - optional string account_budget_name = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The purchase order number of the account budget. It appears on the - // invoice PDF as "Purchase order". - optional string purchase_order_number = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pretax subtotal amount attributable to this budget during the service - // period, in micros. - optional int64 subtotal_amount_micros = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The tax amount attributable to this budget during the service period, in - // micros. - optional int64 tax_amount_micros = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total amount attributable to this budget during the service period, - // in micros. This equals the sum of the account budget subtotal amount and - // the account budget tax amount. - optional int64 total_amount_micros = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // 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.v8.common.DateRange billable_activity_date_range = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. The resource name of the invoice. Multiple customers can share a given - // invoice, so multiple resource names may point to the same invoice. - // Invoice resource names have the form: - // - // `customers/{customer_id}/invoices/{invoice_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Invoice" - } - ]; - - // Output only. The ID of the invoice. It appears on the invoice PDF as "Invoice number". - optional string id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of invoice. - google.ads.googleads.v8.enums.InvoiceTypeEnum.InvoiceType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of this invoice’s billing setup. - // - // `customers/{customer_id}/billingSetups/{billing_setup_id}` - optional string billing_setup = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A 16 digit ID used to identify the payments account associated with the - // billing setup, e.g. "1234-5678-9012-3456". It appears on the invoice PDF as - // "Billing Account Number". - optional string payments_account_id = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A 12 digit ID used to identify the payments profile associated with the - // billing setup, e.g. "1234-5678-9012". It appears on the invoice PDF as - // "Billing ID". - optional string payments_profile_id = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The issue date in yyyy-mm-dd format. It appears on the invoice PDF as - // either "Issue date" or "Invoice date". - optional string issue_date = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The due date in yyyy-mm-dd format. - optional string due_date = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The service period date range of this invoice. The end date is inclusive. - google.ads.googleads.v8.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 subset of the - // currency codes derived from the ISO 4217 standard is supported. - optional string currency_code = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pretax subtotal amount of invoice level adjustments, in micros. - int64 adjustments_subtotal_amount_micros = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The sum of taxes on the invoice level adjustments, in micros. - int64 adjustments_tax_amount_micros = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total amount of invoice level adjustments, in micros. - int64 adjustments_total_amount_micros = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pretax subtotal amount of invoice level regulatory costs, in micros. - int64 regulatory_costs_subtotal_amount_micros = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The sum of taxes on the invoice level regulatory costs, in micros. - int64 regulatory_costs_tax_amount_micros = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total amount of invoice level regulatory costs, in micros. - int64 regulatory_costs_total_amount_micros = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The pretax subtotal amount, in micros. This equals the - // sum of the AccountBudgetSummary subtotal amounts, - // Invoice.adjustments_subtotal_amount_micros, and - // Invoice.regulatory_costs_subtotal_amount_micros. - // Starting with v6, the Invoice.regulatory_costs_subtotal_amount_micros is no - // longer included. - optional int64 subtotal_amount_micros = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The sum of all taxes on the invoice, in micros. This equals the sum of the - // AccountBudgetSummary tax amounts, plus taxes not associated with a specific - // account budget. - optional int64 tax_amount_micros = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The total amount, in micros. This equals the sum of - // Invoice.subtotal_amount_micros and Invoice.tax_amount_micros. - // Starting with v6, Invoice.regulatory_costs_subtotal_amount_micros is - // also added as it is no longer already included in - // Invoice.tax_amount_micros. - optional int64 total_amount_micros = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the original invoice corrected, wrote off, or canceled - // by this invoice, if applicable. If `corrected_invoice` is set, - // `replaced_invoices` will not be set. - // Invoice resource names have the form: - // - // `customers/{customer_id}/invoices/{invoice_id}` - optional string corrected_invoice = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource name of the original invoice(s) being rebilled or replaced by - // this invoice, if applicable. There might be multiple replaced invoices due - // to invoice consolidation. The replaced invoices may not belong to the same - // payments account. If `replaced_invoices` is set, `corrected_invoice` will - // not be set. - // Invoice resource names have the form: - // - // `customers/{customer_id}/invoices/{invoice_id}` - repeated string replaced_invoices = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The URL to a PDF copy of the invoice. Users need to pass in their OAuth - // token to request the PDF with this URL. - optional string pdf_url = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The list of summarized account budget information associated with this - // invoice. - repeated AccountBudgetSummary account_budget_summaries = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/keyword_plan.proto b/google/ads/googleads/v8/resources/keyword_plan.proto deleted file mode 100644 index 719ea8950..000000000 --- a/google/ads/googleads/v8/resources/keyword_plan.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/dates.proto"; -import "google/ads/googleads/v8/enums/keyword_plan_forecast_interval.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the keyword plan resource. - -// A Keyword Planner plan. -// Max number of saved keyword plans: 10000. -// It's possible to remove plans if limit is reached. -message KeywordPlan { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlan" - pattern: "customers/{customer_id}/keywordPlans/{keyword_plan_id}" - }; - - // Immutable. The resource name of the Keyword Planner plan. - // KeywordPlan resource names have the form: - // - // `customers/{customer_id}/keywordPlans/{kp_plan_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; - - // Output only. The ID of the keyword plan. - optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the keyword plan. - // - // This field is required and should not be empty when creating new keyword - // plans. - optional string name = 6; - - // The date period used for forecasting the plan. - KeywordPlanForecastPeriod forecast_period = 4; -} - -// The forecasting period associated with the keyword plan. -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.v8.enums.KeywordPlanForecastIntervalEnum.KeywordPlanForecastInterval date_interval = 1; - - // The custom date range used for forecasting. - // 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.v8.common.DateRange date_range = 2; - } -} diff --git a/google/ads/googleads/v8/resources/keyword_plan_ad_group.proto b/google/ads/googleads/v8/resources/keyword_plan_ad_group.proto deleted file mode 100644 index e66661a30..000000000 --- a/google/ads/googleads/v8/resources/keyword_plan_ad_group.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the keyword plan ad group resource. - -// A Keyword Planner ad group. -// Max number of keyword plan ad groups per plan: 200. -message KeywordPlanAdGroup { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - pattern: "customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}" - }; - - // Immutable. The resource name of the Keyword Planner ad group. - // KeywordPlanAdGroup resource names have the form: - // - // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - } - ]; - - // The keyword plan campaign to which this ad group belongs. - optional string keyword_plan_campaign = 6 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - }]; - - // Output only. The ID of the keyword plan ad group. - optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the keyword plan ad group. - // - // This field is required and should not be empty when creating keyword plan - // ad group. - optional string name = 8; - - // A default ad group max cpc bid in micros in account currency for all - // biddable keywords under the keyword plan ad group. - // If not set, will inherit from parent campaign. - optional int64 cpc_bid_micros = 9; -} diff --git a/google/ads/googleads/v8/resources/keyword_plan_ad_group_keyword.proto b/google/ads/googleads/v8/resources/keyword_plan_ad_group_keyword.proto deleted file mode 100644 index fa9d55f09..000000000 --- a/google/ads/googleads/v8/resources/keyword_plan_ad_group_keyword.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/keyword_match_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupKeywordProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the keyword plan ad group keyword resource. - -// A Keyword Plan ad group keyword. -// Max number of keyword plan keywords per plan: 10000. -message KeywordPlanAdGroupKeyword { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" - pattern: "customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}" - }; - - // Immutable. The resource name of the Keyword Plan ad group keyword. - // KeywordPlanAdGroupKeyword resource names have the form: - // - // `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" - } - ]; - - // The Keyword Plan ad group to which this keyword belongs. - optional string keyword_plan_ad_group = 8 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - }]; - - // Output only. The ID of the Keyword Plan keyword. - optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The keyword text. - optional string text = 10; - - // The keyword match type. - google.ads.googleads.v8.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; - - // A keyword level max cpc bid in micros (e.g. $1 = 1mm). The currency is the - // same as the account currency code. This will override any CPC bid set at - // the keyword plan ad group level. - // Not applicable for negative keywords. (negative = true) - // This field is Optional. - optional int64 cpc_bid_micros = 11; - - // Immutable. If true, the keyword is negative. - optional bool negative = 12 [(google.api.field_behavior) = IMMUTABLE]; -} diff --git a/google/ads/googleads/v8/resources/keyword_plan_campaign.proto b/google/ads/googleads/v8/resources/keyword_plan_campaign.proto deleted file mode 100644 index 855f10bea..000000000 --- a/google/ads/googleads/v8/resources/keyword_plan_campaign.proto +++ /dev/null @@ -1,98 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/keyword_plan_network.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the keyword plan campaign resource. - -// A Keyword Plan campaign. -// Max number of keyword plan campaigns per plan allowed: 1. -message KeywordPlanCampaign { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - pattern: "customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}" - }; - - // Immutable. The resource name of the Keyword Plan campaign. - // KeywordPlanCampaign resource names have the form: - // - // `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - } - ]; - - // The keyword plan this campaign belongs to. - optional string keyword_plan = 9 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - }]; - - // Output only. The ID of the Keyword Plan campaign. - optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the Keyword Plan campaign. - // - // This field is required and should not be empty when creating Keyword Plan - // campaigns. - optional string name = 11; - - // The languages targeted for the Keyword Plan campaign. - // Max allowed: 1. - repeated string language_constants = 12 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/LanguageConstant" - }]; - - // Targeting network. - // - // This field is required and should not be empty when creating Keyword Plan - // campaigns. - google.ads.googleads.v8.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 6; - - // A default max cpc bid in micros, and in the account currency, for all ad - // groups under the campaign. - // - // This field is required and should not be empty when creating Keyword Plan - // campaigns. - optional int64 cpc_bid_micros = 13; - - // The geo targets. - // Max number allowed: 20. - repeated KeywordPlanGeoTarget geo_targets = 8; -} - -// A geo target. -message KeywordPlanGeoTarget { - // Required. The resource name of the geo target. - optional string geo_target_constant = 2 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - }]; -} diff --git a/google/ads/googleads/v8/resources/keyword_plan_campaign_keyword.proto b/google/ads/googleads/v8/resources/keyword_plan_campaign_keyword.proto deleted file mode 100644 index eb43df8a4..000000000 --- a/google/ads/googleads/v8/resources/keyword_plan_campaign_keyword.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/keyword_match_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignKeywordProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the keyword plan negative keyword resource. - -// A Keyword Plan Campaign keyword. -// Only negative keywords are supported for Campaign Keyword. -message KeywordPlanCampaignKeyword { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" - pattern: "customers/{customer_id}/keywordPlanCampaignKeywords/{keyword_plan_campaign_keyword_id}" - }; - - // Immutable. The resource name of the Keyword Plan Campaign keyword. - // KeywordPlanCampaignKeyword resource names have the form: - // - // `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" - } - ]; - - // The Keyword Plan campaign to which this negative keyword belongs. - optional string keyword_plan_campaign = 8 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - }]; - - // Output only. The ID of the Keyword Plan negative keyword. - optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The keyword text. - optional string text = 10; - - // The keyword match type. - google.ads.googleads.v8.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; - - // Immutable. If true, the keyword is negative. - // Must be set to true. Only negative campaign keywords are supported. - optional bool negative = 11 [(google.api.field_behavior) = IMMUTABLE]; -} diff --git a/google/ads/googleads/v8/resources/keyword_theme_constant.proto b/google/ads/googleads/v8/resources/keyword_theme_constant.proto deleted file mode 100644 index c8d326cb8..000000000 --- a/google/ads/googleads/v8/resources/keyword_theme_constant.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordThemeConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Smart Campaign keyword theme constant resource. - -// A Smart Campaign keyword theme constant. -message KeywordThemeConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordThemeConstant" - pattern: "keywordThemeConstants/{express_category_id}~{express_sub_category_id}" - }; - - // Output only. The resource name of the keyword theme constant. - // Keyword theme constant resource names have the form: - // - // `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordThemeConstant" - } - ]; - - // Output only. The ISO-3166 Alpha-2 country code of the constant, eg. "US". - // To display and query matching purpose, the keyword theme needs to be - // localized. - optional string country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ISO-639-1 language code with 2 letters of the constant, eg. "en". - // To display and query matching purpose, the keyword theme needs to be - // localized. - optional string language_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The display name of the keyword theme or sub keyword theme. - optional string display_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/keyword_view.proto b/google/ads/googleads/v8/resources/keyword_view.proto deleted file mode 100644 index d82073bfb..000000000 --- a/google/ads/googleads/v8/resources/keyword_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "KeywordViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the keyword view resource. - -// A keyword view. -message KeywordView { - option (google.api.resource) = { - type: "googleads.googleapis.com/KeywordView" - pattern: "customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the keyword view. - // Keyword view resource names have the form: - // - // `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/label.proto b/google/ads/googleads/v8/resources/label.proto deleted file mode 100644 index 1685f7e76..000000000 --- a/google/ads/googleads/v8/resources/label.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/text_label.proto"; -import "google/ads/googleads/v8/enums/label_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LabelProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// A label. -message Label { - option (google.api.resource) = { - type: "googleads.googleapis.com/Label" - pattern: "customers/{customer_id}/labels/{label_id}" - }; - - // Immutable. Name of the resource. - // Label resource names have the form: - // `customers/{customer_id}/labels/{label_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; - - // Output only. Id of the label. Read only. - optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the label. - // - // This field is required and should not be empty when creating a new label. - // - // The length of this string should be between 1 and 80, inclusive. - optional string name = 7; - - // Output only. Status of the label. Read only. - google.ads.googleads.v8.enums.LabelStatusEnum.LabelStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // A type of label displaying text on a colored background. - google.ads.googleads.v8.common.TextLabel text_label = 5; -} diff --git a/google/ads/googleads/v8/resources/landing_page_view.proto b/google/ads/googleads/v8/resources/landing_page_view.proto deleted file mode 100644 index fc161cbdc..000000000 --- a/google/ads/googleads/v8/resources/landing_page_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LandingPageViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the landing page view resource. - -// A landing page view with metrics aggregated at the unexpanded final URL -// level. -message LandingPageView { - option (google.api.resource) = { - type: "googleads.googleapis.com/LandingPageView" - pattern: "customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}" - }; - - // Output only. The resource name of the landing page view. - // Landing page view resource names have the form: - // - // `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LandingPageView" - } - ]; - - // Output only. The advertiser-specified final URL. - optional string unexpanded_final_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/language_constant.proto b/google/ads/googleads/v8/resources/language_constant.proto deleted file mode 100644 index 311255a07..000000000 --- a/google/ads/googleads/v8/resources/language_constant.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LanguageConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the language constant resource. - -// A language. -message LanguageConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/LanguageConstant" - pattern: "languageConstants/{criterion_id}" - }; - - // Output only. The resource name of the language constant. - // Language constant resource names have the form: - // - // `languageConstants/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LanguageConstant" - } - ]; - - // Output only. The ID of the language constant. - optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The language code, e.g. "en_US", "en_AU", "es", "fr", etc. - optional string code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The full name of the language in English, e.g., "English (US)", "Spanish", - // etc. - optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Whether the language is targetable. - optional bool targetable = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/life_event.proto b/google/ads/googleads/v8/resources/life_event.proto deleted file mode 100644 index ff87c9e0f..000000000 --- a/google/ads/googleads/v8/resources/life_event.proto +++ /dev/null @@ -1,73 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criterion_category_availability.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LifeEventProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Life Event resource. - -// A life event: a particular interest-based vertical to be targeted to reach -// users when they are in the midst of important life milestones. -message LifeEvent { - option (google.api.resource) = { - type: "googleads.googleapis.com/LifeEvent" - pattern: "customers/{customer_id}/lifeEvents/{life_event_id}" - }; - - // Output only. The resource name of the life event. - // Life event resource names have the form: - // - // `customers/{customer_id}/lifeEvents/{life_event_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LifeEvent" - } - ]; - - // Output only. The ID of the life event. - int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the life event. E.g.,"Recently Moved" - string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The parent of the life_event. - string parent = 4 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LifeEvent" - } - ]; - - // Output only. True if the life event is launched to all channels and locales. - bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Availability information of the life event. - repeated google.ads.googleads.v8.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/location_view.proto b/google/ads/googleads/v8/resources/location_view.proto deleted file mode 100644 index 970d6c08e..000000000 --- a/google/ads/googleads/v8/resources/location_view.proto +++ /dev/null @@ -1,52 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "LocationViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the location view resource. - -// A location view summarizes the performance of campaigns by -// Location criteria. -message LocationView { - option (google.api.resource) = { - type: "googleads.googleapis.com/LocationView" - pattern: "customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}" - }; - - // Output only. The resource name of the location view. - // Location view resource names have the form: - // - // `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LocationView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/managed_placement_view.proto b/google/ads/googleads/v8/resources/managed_placement_view.proto deleted file mode 100644 index 14d750a87..000000000 --- a/google/ads/googleads/v8/resources/managed_placement_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ManagedPlacementViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Managed Placement view resource. - -// A managed placement view. -message ManagedPlacementView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ManagedPlacementView" - pattern: "customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the Managed Placement view. - // Managed placement view resource names have the form: - // - // `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ManagedPlacementView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/media_file.proto b/google/ads/googleads/v8/resources/media_file.proto deleted file mode 100644 index 329f9de10..000000000 --- a/google/ads/googleads/v8/resources/media_file.proto +++ /dev/null @@ -1,137 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/media_type.proto"; -import "google/ads/googleads/v8/enums/mime_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MediaFileProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the media file resource. - -// A media file. -message MediaFile { - option (google.api.resource) = { - type: "googleads.googleapis.com/MediaFile" - pattern: "customers/{customer_id}/mediaFiles/{media_file_id}" - }; - - // Immutable. The resource name of the media file. - // Media file resource names have the form: - // - // `customers/{customer_id}/mediaFiles/{media_file_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MediaFile" - } - ]; - - // Output only. The ID of the media file. - optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Type of the media file. - google.ads.googleads.v8.enums.MediaTypeEnum.MediaType type = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The mime type of the media file. - google.ads.googleads.v8.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 a file - // name). Only used for media of type AUDIO and IMAGE. - optional string source_url = 13 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The name of the media file. The name can be used by clients to help - // identify previously uploaded media. - optional string name = 14 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The size of the media file in bytes. - optional int64 file_size = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The specific type of the media file. - oneof mediatype { - // Immutable. Encapsulates an Image. - MediaImage image = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. A ZIP archive media the content of which contains HTML5 assets. - MediaBundle media_bundle = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Encapsulates an Audio. - MediaAudio audio = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Encapsulates a Video. - MediaVideo video = 11 [(google.api.field_behavior) = IMMUTABLE]; - } -} - -// Encapsulates an Image. -message MediaImage { - // Immutable. Raw image data. - optional bytes data = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The url to the full size version of the image. - optional string full_size_image_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The url to the preview size version of the image. - optional string preview_size_image_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Represents a ZIP archive media the content of which contains HTML5 assets. -message MediaBundle { - // Immutable. Raw zipped data. - optional bytes data = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The url to access the uploaded zipped data. - // E.g. https://tpc.googlesyndication.com/simgad/123 - // This field is read-only. - optional string url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Encapsulates an Audio. -message MediaAudio { - // Output only. The duration of the Audio in milliseconds. - optional int64 ad_duration_millis = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Encapsulates a Video. -message MediaVideo { - // Output only. The duration of the Video in milliseconds. - optional int64 ad_duration_millis = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The YouTube video ID (as seen in YouTube URLs). Adding prefix - // "https://www.youtube.com/watch?v=" to this ID will get the YouTube - // streaming URL for this video. - optional string youtube_video_id = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The Advertising Digital Identification code for this video, as defined by - // the American Association of Advertising Agencies, used mainly for - // television commercials. - optional string advertising_id_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Industry Standard Commercial Identifier code for this video, used - // mainly for television commercials. - optional string isci_code = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/merchant_center_link.proto b/google/ads/googleads/v8/resources/merchant_center_link.proto deleted file mode 100644 index d025ae2c3..000000000 --- a/google/ads/googleads/v8/resources/merchant_center_link.proto +++ /dev/null @@ -1,64 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/merchant_center_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::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.v8.enums.MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus status = 5; -} diff --git a/google/ads/googleads/v8/resources/mobile_app_category_constant.proto b/google/ads/googleads/v8/resources/mobile_app_category_constant.proto deleted file mode 100644 index 294adc265..000000000 --- a/google/ads/googleads/v8/resources/mobile_app_category_constant.proto +++ /dev/null @@ -1,57 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MobileAppCategoryConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Mobile App Category Constant resource. - -// A mobile application category constant. -message MobileAppCategoryConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/MobileAppCategoryConstant" - pattern: "mobileAppCategoryConstants/{mobile_app_category_id}" - }; - - // Output only. The resource name of the mobile app category constant. - // Mobile app category constant resource names have the form: - // - // `mobileAppCategoryConstants/{mobile_app_category_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MobileAppCategoryConstant" - } - ]; - - // Output only. The ID of the mobile app category constant. - optional int32 id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Mobile app category name. - optional string name = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/mobile_device_constant.proto b/google/ads/googleads/v8/resources/mobile_device_constant.proto deleted file mode 100644 index 6be42d16d..000000000 --- a/google/ads/googleads/v8/resources/mobile_device_constant.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/mobile_device_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MobileDeviceConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the mobile device constant resource. - -// A mobile device constant. -message MobileDeviceConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/MobileDeviceConstant" - pattern: "mobileDeviceConstants/{criterion_id}" - }; - - // Output only. The resource name of the mobile device constant. - // Mobile device constant resource names have the form: - // - // `mobileDeviceConstants/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MobileDeviceConstant" - } - ]; - - // Output only. The ID of the mobile device constant. - optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the mobile device. - optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The manufacturer of the mobile device. - optional string manufacturer_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The operating system of the mobile device. - optional string operating_system_name = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of mobile device. - google.ads.googleads.v8.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/offline_user_data_job.proto b/google/ads/googleads/v8/resources/offline_user_data_job.proto deleted file mode 100644 index 9813b335c..000000000 --- a/google/ads/googleads/v8/resources/offline_user_data_job.proto +++ /dev/null @@ -1,82 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/offline_user_data.proto"; -import "google/ads/googleads/v8/enums/offline_user_data_job_failure_reason.proto"; -import "google/ads/googleads/v8/enums/offline_user_data_job_status.proto"; -import "google/ads/googleads/v8/enums/offline_user_data_job_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the offline user data job resource. - -// A job containing offline user data of store visitors, or user list members -// that will be processed asynchronously. The uploaded data isn't readable and -// the processing results of the job can only be read using -// OfflineUserDataJobService.GetOfflineUserDataJob. -message OfflineUserDataJob { - option (google.api.resource) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - pattern: "customers/{customer_id}/offlineUserDataJobs/{offline_user_data_update_id}" - }; - - // Immutable. The resource name of the offline user data job. - // Offline user data job resource names have the form: - // - // `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - } - ]; - - // Output only. ID of this offline user data job. - optional int64 id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. User specified job ID. - optional int64 external_id = 10 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Type of the job. - google.ads.googleads.v8.enums.OfflineUserDataJobTypeEnum.OfflineUserDataJobType type = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Status of the job. - google.ads.googleads.v8.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.v8.enums.OfflineUserDataJobFailureReasonEnum.OfflineUserDataJobFailureReason failure_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Metadata of the job. - oneof metadata { - // Immutable. Metadata for data updates to a CRM-based user list. - google.ads.googleads.v8.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Metadata for store sales data update. - google.ads.googleads.v8.common.StoreSalesMetadata store_sales_metadata = 8 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/operating_system_version_constant.proto b/google/ads/googleads/v8/resources/operating_system_version_constant.proto deleted file mode 100644 index 03b652242..000000000 --- a/google/ads/googleads/v8/resources/operating_system_version_constant.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/operating_system_version_operator_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "OperatingSystemVersionConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the operating system version constant resource. - -// A mobile operating system version or a range of versions, depending on -// `operator_type`. List of available mobile platforms at -// https://developers.google.com/google-ads/api/reference/data/codes-formats#mobile-platforms -message OperatingSystemVersionConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/OperatingSystemVersionConstant" - pattern: "operatingSystemVersionConstants/{criterion_id}" - }; - - // Output only. The resource name of the operating system version constant. - // Operating system version constant resource names have the form: - // - // `operatingSystemVersionConstants/{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OperatingSystemVersionConstant" - } - ]; - - // Output only. The ID of the operating system version. - optional int64 id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Name of the operating system. - optional string name = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The OS Major Version number. - optional int32 os_major_version = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The OS Minor Version number. - optional int32 os_minor_version = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Determines whether this constant represents a single version or a range of - // versions. - google.ads.googleads.v8.enums.OperatingSystemVersionOperatorTypeEnum.OperatingSystemVersionOperatorType operator_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/paid_organic_search_term_view.proto b/google/ads/googleads/v8/resources/paid_organic_search_term_view.proto deleted file mode 100644 index a47bc05ac..000000000 --- a/google/ads/googleads/v8/resources/paid_organic_search_term_view.proto +++ /dev/null @@ -1,56 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "PaidOrganicSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the PaidOrganicSearchTermView resource. - -// A paid organic search term view providing a view of search stats across -// ads and organic listings aggregated by search term at the ad group level. -message PaidOrganicSearchTermView { - option (google.api.resource) = { - type: "googleads.googleapis.com/PaidOrganicSearchTermView" - pattern: "customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~{ad_group_id}~{base64_search_term}" - }; - - // Output only. The resource name of the search term view. - // Search term view resource names have the form: - // - // `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~ - // {ad_group_id}~{URL-base64 search term}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/PaidOrganicSearchTermView" - } - ]; - - // Output only. The search term. - optional string search_term = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/parental_status_view.proto b/google/ads/googleads/v8/resources/parental_status_view.proto deleted file mode 100644 index 9eac45f84..000000000 --- a/google/ads/googleads/v8/resources/parental_status_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ParentalStatusViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the parental status view resource. - -// A parental status view. -message ParentalStatusView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ParentalStatusView" - pattern: "customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the parental status view. - // Parental Status view resource names have the form: - // - // `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ParentalStatusView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/payments_account.proto b/google/ads/googleads/v8/resources/payments_account.proto deleted file mode 100644 index 66c05e4e1..000000000 --- a/google/ads/googleads/v8/resources/payments_account.proto +++ /dev/null @@ -1,78 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "PaymentsAccountProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the PaymentsAccount resource. - -// A payments account, which can be used to set up billing for an Ads customer. -message PaymentsAccount { - option (google.api.resource) = { - type: "googleads.googleapis.com/PaymentsAccount" - pattern: "customers/{customer_id}/paymentsAccounts/{payments_account_id}" - }; - - // Output only. The resource name of the payments account. - // PaymentsAccount resource names have the form: - // - // `customers/{customer_id}/paymentsAccounts/{payments_account_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/PaymentsAccount" - } - ]; - - // Output only. A 16 digit ID used to identify a payments account. - optional string payments_account_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the payments account. - optional string name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The currency code of the payments account. - // A subset of the currency codes derived from the ISO 4217 standard is - // supported. - optional string currency_code = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A 12 digit ID used to identify the payments profile associated with the - // payments account. - optional string payments_profile_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A secondary payments profile ID present in uncommon situations, e.g. - // when a sequential liability agreement has been arranged. - optional string secondary_payments_profile_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Paying manager of this payment account. - optional string paying_manager_customer = 13 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/product_bidding_category_constant.proto b/google/ads/googleads/v8/resources/product_bidding_category_constant.proto deleted file mode 100644 index b36fee9d1..000000000 --- a/google/ads/googleads/v8/resources/product_bidding_category_constant.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/product_bidding_category_level.proto"; -import "google/ads/googleads/v8/enums/product_bidding_category_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::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.v8.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of the product bidding category. - google.ads.googleads.v8.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/google/ads/googleads/v8/resources/product_group_view.proto b/google/ads/googleads/v8/resources/product_group_view.proto deleted file mode 100644 index 734c06765..000000000 --- a/google/ads/googleads/v8/resources/product_group_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ProductGroupViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ProductGroup View resource. - -// A product group view. -message ProductGroupView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ProductGroupView" - pattern: "customers/{customer_id}/productGroupViews/{adgroup_id}~{criterion_id}" - }; - - // Output only. The resource name of the product group view. - // Product group view resource names have the form: - // - // `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductGroupView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/recommendation.proto b/google/ads/googleads/v8/resources/recommendation.proto deleted file mode 100644 index 88dde325d..000000000 --- a/google/ads/googleads/v8/resources/recommendation.proto +++ /dev/null @@ -1,350 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/common/extensions.proto"; -import "google/ads/googleads/v8/enums/keyword_match_type.proto"; -import "google/ads/googleads/v8/enums/recommendation_type.proto"; -import "google/ads/googleads/v8/enums/target_cpa_opt_in_recommendation_goal.proto"; -import "google/ads/googleads/v8/resources/ad.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Recommendation resource. - -// A recommendation. -message Recommendation { - option (google.api.resource) = { - type: "googleads.googleapis.com/Recommendation" - pattern: "customers/{customer_id}/recommendations/{recommendation_id}" - }; - - // The impact of making the change as described in the recommendation. - // Some types of recommendations may not have impact information. - message RecommendationImpact { - // Output only. Base metrics at the time the recommendation was generated. - RecommendationMetrics base_metrics = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimated metrics if the recommendation is applied. - RecommendationMetrics potential_metrics = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Weekly account performance metrics. For some recommendation types, these - // are averaged over the past 90-day period and hence can be fractional. - message RecommendationMetrics { - // Output only. Number of ad impressions. - optional double impressions = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Number of ad clicks. - optional double clicks = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Cost (in micros) for advertising, in the local currency for the account. - optional int64 cost_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Number of conversions. - optional double conversions = 9 [(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]; - } - - // The budget recommendation for budget constrained campaigns. - message CampaignBudgetRecommendation { - // The impact estimates for a given budget amount. - message CampaignBudgetRecommendationOption { - // Output only. The budget amount for this option. - optional int64 budget_amount_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The impact estimate if budget is changed to amount specified in this - // option. - RecommendationImpact impact = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. The current budget amount in micros. - optional int64 current_budget_amount_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended budget amount in micros. - optional int64 recommended_budget_amount_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The budget amounts and associated impact estimates for some values of - // possible budget amounts. - repeated CampaignBudgetRecommendationOption budget_options = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The keyword recommendation. - message KeywordRecommendation { - // Output only. The recommended keyword. - google.ads.googleads.v8.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended CPC (cost-per-click) bid. - optional int64 recommended_cpc_bid_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Search Partners Opt-In recommendation. - message SearchPartnersOptInRecommendation { - - } - - // The text ad recommendation. - message TextAdRecommendation { - // Output only. Recommended ad. - Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Creation date of the recommended ad. - // YYYY-MM-DD format, e.g., 2018-04-17. - optional string creation_date = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Date, if present, is the earliest when the recommendation will be auto - // applied. - // YYYY-MM-DD format, e.g., 2018-04-17. - optional string auto_apply_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Target CPA opt-in recommendation. - message TargetCpaOptInRecommendation { - // The Target CPA opt-in option with impact estimate. - message TargetCpaOptInRecommendationOption { - // Output only. The goal achieved by this option. - google.ads.googleads.v8.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal goal = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Average CPA target. - optional int64 target_cpa_micros = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The minimum campaign budget, in local currency for the account, - // required to achieve the target CPA. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - optional int64 required_campaign_budget_amount_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The impact estimate if this option is selected. - RecommendationImpact impact = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. The available goals and corresponding options for Target CPA strategy. - repeated TargetCpaOptInRecommendationOption options = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended average CPA target. See required budget amount and impact - // of using this recommendation in options list. - optional int64 recommended_target_cpa_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Maximize Clicks opt-in recommendation. - message MaximizeClicksOptInRecommendation { - // Output only. The recommended new budget amount. - // Only set if the current budget is too high. - optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Callout extension recommendation. - message CalloutExtensionRecommendation { - // Output only. Callout extensions recommended to be added. - repeated google.ads.googleads.v8.common.CalloutFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Call extension recommendation. - message CallExtensionRecommendation { - // Output only. Call extensions recommended to be added. - repeated google.ads.googleads.v8.common.CallFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Maximize Conversions Opt-In recommendation. - message MaximizeConversionsOptInRecommendation { - // Output only. The recommended new budget amount. - optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Enhanced Cost-Per-Click Opt-In recommendation. - message EnhancedCpcOptInRecommendation { - - } - - // The Sitelink extension recommendation. - message SitelinkExtensionRecommendation { - // Output only. Sitelink extensions recommended to be added. - repeated google.ads.googleads.v8.common.SitelinkFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Optimize Ad Rotation recommendation. - message OptimizeAdRotationRecommendation { - - } - - // The keyword match type recommendation. - message KeywordMatchTypeRecommendation { - // Output only. The existing keyword where the match type should be more broad. - google.ads.googleads.v8.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommended new match type. - google.ads.googleads.v8.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The Target ROAS opt-in recommendation. - message TargetRoasOptInRecommendation { - // Output only. The recommended target ROAS (revenue per unit of spend). - // The value is between 0.01 and 1000.0, inclusive. - optional double recommended_target_roas = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The minimum campaign budget, in local currency for the account, - // required to achieve the target ROAS. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - optional int64 required_campaign_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The move unused budget recommendation. - message MoveUnusedBudgetRecommendation { - // Output only. The excess budget's resource_name. - optional string excess_campaign_budget = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The recommendation for the constrained budget to increase. - CampaignBudgetRecommendation budget_recommendation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // The add responsive search ad recommendation. - message ResponsiveSearchAdRecommendation { - // Output only. Recommended ad. - Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Immutable. The resource name of the recommendation. - // - // `customers/{customer_id}/recommendations/{recommendation_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Recommendation" - } - ]; - - // Output only. The type of recommendation. - google.ads.googleads.v8.enums.RecommendationTypeEnum.RecommendationType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The impact on account performance as a result of applying the - // recommendation. - RecommendationImpact impact = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The budget targeted by this recommendation. This will be set only when - // the recommendation affects a single campaign budget. - // - // This field will be set for the following recommendation types: - // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET, - // MOVE_UNUSED_BUDGET - optional string campaign_budget = 24 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBudget" - } - ]; - - // Output only. The campaign targeted by this recommendation. This will be set only when - // the recommendation affects a single campaign. - // - // This field will be set for the following recommendation types: - // CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN, KEYWORD, - // KEYWORD_MATCH_TYPE, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, - // OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, SEARCH_PARTNERS_OPT_IN, - // SITELINK_EXTENSION, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN, TEXT_AD - optional string campaign = 25 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Output only. The ad group targeted by this recommendation. This will be set only when - // the recommendation affects a single ad group. - // - // This field will be set for the following recommendation types: - // KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, TEXT_AD - optional string ad_group = 26 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. Whether the recommendation is dismissed or not. - optional bool dismissed = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The details of recommendation. - oneof recommendation { - // Output only. The campaign budget recommendation. - CampaignBudgetRecommendation campaign_budget_recommendation = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The forecasting campaign budget recommendation. - CampaignBudgetRecommendation forecasting_campaign_budget_recommendation = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The keyword recommendation. - KeywordRecommendation keyword_recommendation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Add expanded text ad recommendation. - TextAdRecommendation text_ad_recommendation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The TargetCPA opt-in recommendation. - TargetCpaOptInRecommendation target_cpa_opt_in_recommendation = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The MaximizeConversions Opt-In recommendation. - MaximizeConversionsOptInRecommendation maximize_conversions_opt_in_recommendation = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Enhanced Cost-Per-Click Opt-In recommendation. - EnhancedCpcOptInRecommendation enhanced_cpc_opt_in_recommendation = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Search Partners Opt-In recommendation. - SearchPartnersOptInRecommendation search_partners_opt_in_recommendation = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The MaximizeClicks Opt-In recommendation. - MaximizeClicksOptInRecommendation maximize_clicks_opt_in_recommendation = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Optimize Ad Rotation recommendation. - OptimizeAdRotationRecommendation optimize_ad_rotation_recommendation = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Callout extension recommendation. - CalloutExtensionRecommendation callout_extension_recommendation = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Sitelink extension recommendation. - SitelinkExtensionRecommendation sitelink_extension_recommendation = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Call extension recommendation. - CallExtensionRecommendation call_extension_recommendation = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The keyword match type recommendation. - KeywordMatchTypeRecommendation keyword_match_type_recommendation = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The move unused budget recommendation. - MoveUnusedBudgetRecommendation move_unused_budget_recommendation = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Target ROAS opt-in recommendation. - TargetRoasOptInRecommendation target_roas_opt_in_recommendation = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The add responsive search ad recommendation. - ResponsiveSearchAdRecommendation responsive_search_ad_recommendation = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The marginal ROI campaign budget recommendation. - CampaignBudgetRecommendation marginal_roi_campaign_budget_recommendation = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} diff --git a/google/ads/googleads/v8/resources/remarketing_action.proto b/google/ads/googleads/v8/resources/remarketing_action.proto deleted file mode 100644 index 541b4b683..000000000 --- a/google/ads/googleads/v8/resources/remarketing_action.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/tag_snippet.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "RemarketingActionProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Remarketing Action resource. - -// A remarketing action. A snippet of JavaScript code that will collect the -// product id and the type of page people visited (product page, shopping cart -// page, purchase page, general site visit) on an advertiser's website. -message RemarketingAction { - option (google.api.resource) = { - type: "googleads.googleapis.com/RemarketingAction" - pattern: "customers/{customer_id}/remarketingActions/{remarketing_action_id}" - }; - - // Immutable. The resource name of the remarketing action. - // Remarketing action resource names have the form: - // - // `customers/{customer_id}/remarketingActions/{remarketing_action_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/RemarketingAction" - } - ]; - - // Output only. Id of the remarketing action. - optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The name of the remarketing action. - // - // This field is required and should not be empty when creating new - // remarketing actions. - optional string name = 6; - - // Output only. The snippets used for tracking remarketing actions. - repeated google.ads.googleads.v8.common.TagSnippet tag_snippets = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/search_term_view.proto b/google/ads/googleads/v8/resources/search_term_view.proto deleted file mode 100644 index 0ddf21493..000000000 --- a/google/ads/googleads/v8/resources/search_term_view.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/search_term_targeting_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "SearchTermViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the SearchTermView resource. - -// A search term view with metrics aggregated by search term at the ad group -// level. -message SearchTermView { - option (google.api.resource) = { - type: "googleads.googleapis.com/SearchTermView" - pattern: "customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{query}" - }; - - // Output only. The resource name of the search term view. - // Search term view resource names have the form: - // - // `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL-base64_search_term}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SearchTermView" - } - ]; - - // Output only. The search term. - optional string search_term = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ad group the search term served in. - optional string ad_group = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; - - // Output only. Indicates whether the search term is currently one of your - // targeted or excluded keywords. - google.ads.googleads.v8.enums.SearchTermTargetingStatusEnum.SearchTermTargetingStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/shared_criterion.proto b/google/ads/googleads/v8/resources/shared_criterion.proto deleted file mode 100644 index df9476658..000000000 --- a/google/ads/googleads/v8/resources/shared_criterion.proto +++ /dev/null @@ -1,92 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/enums/criterion_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "SharedCriterionProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the SharedCriterion resource. - -// A criterion belonging to a shared set. -message SharedCriterion { - option (google.api.resource) = { - type: "googleads.googleapis.com/SharedCriterion" - pattern: "customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}" - }; - - // Immutable. The resource name of the shared criterion. - // Shared set resource names have the form: - // - // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedCriterion" - } - ]; - - // Immutable. The shared set to which the shared criterion belongs. - optional string shared_set = 10 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; - - // Output only. The ID of the criterion. - // - // This field is ignored for mutates. - optional int64 criterion_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The type of the criterion. - google.ads.googleads.v8.enums.CriterionTypeEnum.CriterionType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The criterion. - // - // Exactly one must be set. - oneof criterion { - // Immutable. Keyword. - google.ads.googleads.v8.common.KeywordInfo keyword = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Video. - google.ads.googleads.v8.common.YouTubeVideoInfo youtube_video = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. YouTube Channel. - google.ads.googleads.v8.common.YouTubeChannelInfo youtube_channel = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Placement. - google.ads.googleads.v8.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile App Category. - google.ads.googleads.v8.common.MobileAppCategoryInfo mobile_app_category = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Mobile application. - google.ads.googleads.v8.common.MobileApplicationInfo mobile_application = 9 [(google.api.field_behavior) = IMMUTABLE]; - } -} diff --git a/google/ads/googleads/v8/resources/shared_set.proto b/google/ads/googleads/v8/resources/shared_set.proto deleted file mode 100644 index 2a5ff7191..000000000 --- a/google/ads/googleads/v8/resources/shared_set.proto +++ /dev/null @@ -1,77 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/enums/shared_set_status.proto"; -import "google/ads/googleads/v8/enums/shared_set_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the SharedSet resource. - -// SharedSets are used for sharing criterion exclusions across multiple -// campaigns. -message SharedSet { - option (google.api.resource) = { - type: "googleads.googleapis.com/SharedSet" - pattern: "customers/{customer_id}/sharedSets/{shared_set_id}" - }; - - // Immutable. The resource name of the shared set. - // Shared set resource names have the form: - // - // `customers/{customer_id}/sharedSets/{shared_set_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; - - // Output only. The ID of this shared set. Read only. - optional int64 id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The type of this shared set: each shared set holds only a single kind - // of resource. Required. Immutable. - google.ads.googleads.v8.enums.SharedSetTypeEnum.SharedSetType type = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // The name of this shared set. Required. - // Shared Sets must have names that are unique among active shared sets of - // the same type. - // The length of this string should be between 1 and 255 UTF-8 bytes, - // inclusive. - optional string name = 9; - - // Output only. The status of this shared set. Read only. - google.ads.googleads.v8.enums.SharedSetStatusEnum.SharedSetStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of shared criteria within this shared set. Read only. - optional int64 member_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of campaigns associated with this shared set. Read only. - optional int64 reference_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/shopping_performance_view.proto b/google/ads/googleads/v8/resources/shopping_performance_view.proto deleted file mode 100644 index 9f6c6a450..000000000 --- a/google/ads/googleads/v8/resources/shopping_performance_view.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ShoppingPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the ShoppingPerformanceView resource. - -// Shopping performance view. -// Provides Shopping campaign statistics aggregated at several product dimension -// levels. Product dimension values from Merchant Center such as brand, -// category, custom attributes, product condition and product type will reflect -// the state of each dimension as of the date and time when the corresponding -// event was recorded. -message ShoppingPerformanceView { - option (google.api.resource) = { - type: "googleads.googleapis.com/ShoppingPerformanceView" - pattern: "customers/{customer_id}/shoppingPerformanceView" - }; - - // Output only. The resource name of the Shopping performance view. - // Shopping performance view resource names have the form: - // `customers/{customer_id}/shoppingPerformanceView` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ShoppingPerformanceView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/smart_campaign_search_term_view.proto b/google/ads/googleads/v8/resources/smart_campaign_search_term_view.proto deleted file mode 100644 index b3ade41a6..000000000 --- a/google/ads/googleads/v8/resources/smart_campaign_search_term_view.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "SmartCampaignSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the SmartCampaignSearchTermView resource. - -// A Smart campaign search term view. -message SmartCampaignSearchTermView { - option (google.api.resource) = { - type: "googleads.googleapis.com/SmartCampaignSearchTermView" - pattern: "customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{query}" - }; - - // Output only. The resource name of the Smart campaign search term view. - // Smart campaign search term view resource names have the form: - // - // `customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{URL-base64_search_term}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SmartCampaignSearchTermView" - } - ]; - - // Output only. The search term. - string search_term = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The Smart campaign the search term served in. - string campaign = 3 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/smart_campaign_setting.proto b/google/ads/googleads/v8/resources/smart_campaign_setting.proto deleted file mode 100644 index 8cd0eef25..000000000 --- a/google/ads/googleads/v8/resources/smart_campaign_setting.proto +++ /dev/null @@ -1,91 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "SmartCampaignSettingProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Smart campaign setting resource. - -// Settings for configuring Smart campaigns. -message SmartCampaignSetting { - option (google.api.resource) = { - type: "googleads.googleapis.com/SmartCampaignSetting" - pattern: "customers/{customer_id}/smartCampaignSettings/{campaign_id}" - }; - - // Phone number and country code in smart campaign settings. - message PhoneNumber { - // Phone number of the smart campaign. - optional string phone_number = 1; - - // Upper-case, two-letter country code as defined by ISO-3166. - optional string country_code = 2; - } - - // Immutable. The resource name of the Smart campaign setting. - // Smart campaign setting resource names have the form: - // - // `customers/{customer_id}/smartCampaignSettings/{campaign_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SmartCampaignSetting" - } - ]; - - // Output only. The campaign to which these settings apply. - string campaign = 2 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Phone number and country code. - PhoneNumber phone_number = 3; - - // Landing page url given by user for this Campaign. - string final_url = 4; - - // The ISO-639-1 language code to advertise in. - string advertising_language_code = 7; - - // The business setting of this campaign. - oneof business_setting { - // The name of the business. - string business_name = 5; - - // The ID of the Business Profile location. - // The location ID can be fetched by Business Profile API with its form: - // accounts/{accountId}/locations/{locationId}. The last {locationId} - // component from the Business Profile API represents the - // business_location_id. See the [Business Profile API] - // (https://developers.google.com/my-business/reference/rest/v4/accounts.locations) - int64 business_location_id = 6; - } -} diff --git a/google/ads/googleads/v8/resources/third_party_app_analytics_link.proto b/google/ads/googleads/v8/resources/third_party_app_analytics_link.proto deleted file mode 100644 index c22d8be36..000000000 --- a/google/ads/googleads/v8/resources/third_party_app_analytics_link.proto +++ /dev/null @@ -1,55 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ThirdPartyAppAnalyticsLinkProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// A data sharing connection, allowing the import of third party app analytics -// into a Google Ads Customer. -message ThirdPartyAppAnalyticsLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" - pattern: "customers/{customer_id}/thirdPartyAppAnalyticsLinks/{customer_link_id}" - }; - - // Immutable. The resource name of the third party app analytics link. - // Third party app analytics link resource names have the form: - // - // `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{account_link_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" - } - ]; - - // Output only. The shareable link ID that should be provided to the third party when - // setting up app analytics. This is able to be regenerated using regenerate - // method in the ThirdPartyAppAnalyticsLinkService. - optional string shareable_link_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/topic_constant.proto b/google/ads/googleads/v8/resources/topic_constant.proto deleted file mode 100644 index e2d314314..000000000 --- a/google/ads/googleads/v8/resources/topic_constant.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "TopicConstantProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the Topic Constant resource. - -// Use topics to target or exclude placements in the Google Display Network -// based on the category into which the placement falls (for example, -// "Pets & Animals/Pets/Dogs"). -message TopicConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/TopicConstant" - pattern: "topicConstants/{topic_id}" - }; - - // Output only. The resource name of the topic constant. - // topic constant resource names have the form: - // - // `topicConstants/{topic_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicConstant" - } - ]; - - // Output only. The ID of the topic. - optional int64 id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Resource name of parent of the topic constant. - optional string topic_constant_parent = 6 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicConstant" - } - ]; - - // Output only. The category to target or exclude. Each subsequent element in the array - // describes a more specific sub-category. For example, - // {"Pets & Animals", "Pets", "Dogs"} represents the - // "Pets & Animals/Pets/Dogs" category. List of available topic categories at - // https://developers.google.com/adwords/api/docs/appendix/verticals - repeated string path = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/topic_view.proto b/google/ads/googleads/v8/resources/topic_view.proto deleted file mode 100644 index a6a6633e4..000000000 --- a/google/ads/googleads/v8/resources/topic_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "TopicViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the topic view resource. - -// A topic view. -message TopicView { - option (google.api.resource) = { - type: "googleads.googleapis.com/TopicView" - pattern: "customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the topic view. - // Topic view resource names have the form: - // - // `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicView" - } - ]; -} diff --git a/google/ads/googleads/v8/resources/user_interest.proto b/google/ads/googleads/v8/resources/user_interest.proto deleted file mode 100644 index 353261653..000000000 --- a/google/ads/googleads/v8/resources/user_interest.proto +++ /dev/null @@ -1,76 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/criterion_category_availability.proto"; -import "google/ads/googleads/v8/enums/user_interest_taxonomy_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "UserInterestProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the User Interest resource. - -// A user interest: a particular interest-based vertical to be targeted. -message UserInterest { - option (google.api.resource) = { - type: "googleads.googleapis.com/UserInterest" - pattern: "customers/{customer_id}/userInterests/{user_interest_id}" - }; - - // Output only. The resource name of the user interest. - // User interest resource names have the form: - // - // `customers/{customer_id}/userInterests/{user_interest_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserInterest" - } - ]; - - // Output only. Taxonomy type of the user interest. - google.ads.googleads.v8.enums.UserInterestTaxonomyTypeEnum.UserInterestTaxonomyType taxonomy_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The ID of the user interest. - optional int64 user_interest_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the user interest. - optional string name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The parent of the user interest. - optional string user_interest_parent = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserInterest" - } - ]; - - // Output only. True if the user interest is launched to all channels and locales. - optional bool launched_to_all = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Availability information of the user interest. - repeated google.ads.googleads.v8.common.CriterionCategoryAvailability availabilities = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/user_list.proto b/google/ads/googleads/v8/resources/user_list.proto deleted file mode 100644 index ac009ef4c..000000000 --- a/google/ads/googleads/v8/resources/user_list.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v8.resources; - -import "google/ads/googleads/v8/common/user_lists.proto"; -import "google/ads/googleads/v8/enums/access_reason.proto"; -import "google/ads/googleads/v8/enums/user_list_access_status.proto"; -import "google/ads/googleads/v8/enums/user_list_closing_reason.proto"; -import "google/ads/googleads/v8/enums/user_list_membership_status.proto"; -import "google/ads/googleads/v8/enums/user_list_size_range.proto"; -import "google/ads/googleads/v8/enums/user_list_type.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "UserListProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the User List resource. - -// A user list. This is a list of users a customer may target. -message UserList { - option (google.api.resource) = { - type: "googleads.googleapis.com/UserList" - pattern: "customers/{customer_id}/userLists/{user_list_id}" - }; - - // Immutable. The resource name of the user list. - // User list resource names have the form: - // - // `customers/{customer_id}/userLists/{user_list_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - } - ]; - - // Output only. Id of the user list. - optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A flag that indicates if a user may edit a list. Depends on the list - // ownership and list type. For example, external remarketing user lists are - // not editable. - // - // This field is read-only. - optional bool read_only = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Name of this user list. Depending on its access_reason, the user list name - // may not be unique (e.g. if access_reason=SHARED) - optional string name = 27; - - // Description of this user list. - optional string description = 28; - - // 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.v8.enums.UserListMembershipStatusEnum.UserListMembershipStatus membership_status = 6; - - // An ID from external system. It is used by user list sellers to correlate - // IDs on their systems. - optional string integration_code = 29; - - // Number of days a user's cookie stays on your list since its most recent - // addition to the list. This field must be between 0 and 540 inclusive. - // However, for CRM based userlists, this field can be set to 10000 which - // means no expiration. - // - // It'll be ignored for logical_user_list. - optional int64 membership_life_span = 30; - - // Output only. Estimated number of users in this user list, on the Google Display Network. - // This value is null if the number of users has not yet been determined. - // - // This field is read-only. - optional int64 size_for_display = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Size range in terms of number of users of the UserList, on the Google - // Display Network. - // - // This field is read-only. - google.ads.googleads.v8.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 domain. - // These are the users available for targeting in Search campaigns. - // This value is null if the number of users has not yet been determined. - // - // This field is read-only. - optional int64 size_for_search = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Size range in terms of number of users of the UserList, for Search ads. - // - // This field is read-only. - google.ads.googleads.v8.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.v8.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.v8.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.v8.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.v8.enums.UserListAccessStatusEnum.UserListAccessStatus account_user_list_status = 16; - - // Indicates if this user list is eligible for Google Search Network. - optional bool eligible_for_search = 33; - - // Output only. Indicates this user list is eligible for Google Display Network. - // - // This field is read-only. - optional bool eligible_for_display = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates match rate for Customer Match lists. The range of this field is - // [0-100]. This will be null for other list types or when it's not possible - // to calculate the match rate. - // - // This field is read-only. - optional int32 match_rate_percentage = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The user list. - // - // Exactly one must be set. - oneof user_list { - // User list of CRM users provided by the advertiser. - google.ads.googleads.v8.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.v8.common.SimilarUserListInfo similar_user_list = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // User list generated by a rule. - google.ads.googleads.v8.common.RuleBasedUserListInfo rule_based_user_list = 21; - - // User list that is a custom combination of user lists and user interests. - google.ads.googleads.v8.common.LogicalUserListInfo logical_user_list = 22; - - // User list targeting as a collection of conversion or remarketing actions. - google.ads.googleads.v8.common.BasicUserListInfo basic_user_list = 23; - } -} diff --git a/google/ads/googleads/v8/resources/user_location_view.proto b/google/ads/googleads/v8/resources/user_location_view.proto deleted file mode 100644 index e4adae990..000000000 --- a/google/ads/googleads/v8/resources/user_location_view.proto +++ /dev/null @@ -1,62 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "UserLocationViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the user location view resource. - -// A user location view. -// -// User Location View includes all metrics aggregated at the country level, -// one row per country. It reports metrics at the actual physical location of -// the user by targeted or not targeted location. If other segment fields are -// used, you may get more than one row per country. -message UserLocationView { - option (google.api.resource) = { - type: "googleads.googleapis.com/UserLocationView" - pattern: "customers/{customer_id}/userLocationViews/{country_criterion_id}~{is_targeting_location}" - }; - - // Output only. The resource name of the user location view. - // UserLocation view resource names have the form: - // - // `customers/{customer_id}/userLocationViews/{country_criterion_id}~{targeting_location}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserLocationView" - } - ]; - - // Output only. Criterion Id for the country. - optional int64 country_criterion_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Indicates whether location was targeted or not. - optional bool targeting_location = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/video.proto b/google/ads/googleads/v8/resources/video.proto deleted file mode 100644 index 9dc758fd8..000000000 --- a/google/ads/googleads/v8/resources/video.proto +++ /dev/null @@ -1,63 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "VideoProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the video resource. - -// A video. -message Video { - option (google.api.resource) = { - type: "googleads.googleapis.com/Video" - pattern: "customers/{customer_id}/videos/{video_id}" - }; - - // Output only. The resource name of the video. - // Video resource names have the form: - // - // `customers/{customer_id}/videos/{video_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Video" - } - ]; - - // Output only. The ID of the video. - optional string id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The owner channel id of the video. - optional string channel_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The duration of the video in milliseconds. - optional int64 duration_millis = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The title of the video. - optional string title = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/ads/googleads/v8/resources/webpage_view.proto b/google/ads/googleads/v8/resources/webpage_view.proto deleted file mode 100644 index b309363e9..000000000 --- a/google/ads/googleads/v8/resources/webpage_view.proto +++ /dev/null @@ -1,51 +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 google.ads.googleads.v8.resources; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "WebpageViewProto"; -option java_package = "com.google.ads.googleads.v8.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V8::Resources"; - -// Proto file describing the webpage view resource. - -// A webpage view. -message WebpageView { - option (google.api.resource) = { - type: "googleads.googleapis.com/WebpageView" - pattern: "customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}" - }; - - // Output only. The resource name of the webpage view. - // Webpage view resource names have the form: - // - // `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/WebpageView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/BUILD.bazel b/google/ads/googleads/v8/services/BUILD.bazel deleted file mode 100644 index 984c65849..000000000 --- a/google/ads/googleads/v8/services/BUILD.bazel +++ /dev/null @@ -1,138 +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 -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -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") - -# TODO(ohren): Change srcs to use an enumeration of each individual proto -# instead of *.proto globbing once the build file generator supports -# subpackages. -proto_library( - name = "services_proto", - srcs = glob(["*.proto"]), - deps = [ - "//google/ads/googleads/v8/common:common_proto", - "//google/ads/googleads/v8/enums:enums_proto", - "//google/ads/googleads/v8/errors:errors_proto", - "//google/ads/googleads/v8/resources:resources_proto", - "//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//:empty_proto", - "@com_google_protobuf//:field_mask_proto", - "@com_google_protobuf//:wrappers_proto", - ], -) - -proto_library_with_info( - name = "services_proto_with_info", - deps = [ - ":services_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_grpc_library", - "java_proto_library", -) - -java_proto_library( - name = "services_java_proto", - deps = [":services_proto"], -) - -java_grpc_library( - name = "services_java_grpc", - srcs = [":services_proto"], - deps = [":services_java_proto"], -) - -############################################################################## -# PHP -############################################################################## - -# PHP targets are in the parent directory's BUILD.bazel file to facilitate -# aggregating metadata using a single underlying call to protoc. - -############################################################################## -# C# -############################################################################## -load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", - "csharp_grpc_library", - "csharp_proto_library", -) - -csharp_proto_library( - name = "services_csharp_proto", - deps = [":services_proto"], -) - -csharp_grpc_library( - name = "services_csharp_grpc", - srcs = [":services_proto"], - deps = [":services_csharp_proto"], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", - "ruby_grpc_library", - "ruby_proto_library", -) - -ruby_proto_library( - name = "services_ruby_proto", - deps = [":services_proto"], -) - -ruby_grpc_library( - name = "services_ruby_grpc", - srcs = [":services_proto"], - deps = [":services_ruby_proto"], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_grpc_library", - "py_proto_library", -) - -py_proto_library( - name = "services_py_proto", - deps = [":services_proto"], -) - -py_grpc_library( - name = "services_py_grpc", - srcs = [":services_proto"], - deps = [":services_py_proto"], -) diff --git a/google/ads/googleads/v8/services/accessible_bidding_strategy_service.proto b/google/ads/googleads/v8/services/accessible_bidding_strategy_service.proto deleted file mode 100644 index 9fea6aa13..000000000 --- a/google/ads/googleads/v8/services/accessible_bidding_strategy_service.proto +++ /dev/null @@ -1,58 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/accessible_bidding_strategy.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AccessibleBiddingStrategyServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to read accessible bidding strategies. -service AccessibleBiddingStrategyService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested accessible bidding strategy in full detail. - rpc GetAccessibleBiddingStrategy(GetAccessibleBiddingStrategyRequest) returns (google.ads.googleads.v8.resources.AccessibleBiddingStrategy) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/accessibleBiddingStrategies/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [AccessibleBiddingStrategyService.GetAccessibleBiddingStrategy][google.ads.googleads.v8.services.AccessibleBiddingStrategyService.GetAccessibleBiddingStrategy]. -message GetAccessibleBiddingStrategyRequest { - // Required. The resource name of the accessible bidding strategy to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccessibleBiddingStrategy" - } - ]; -} diff --git a/google/ads/googleads/v8/services/account_budget_proposal_service.proto b/google/ads/googleads/v8/services/account_budget_proposal_service.proto deleted file mode 100644 index e3c69bedb..000000000 --- a/google/ads/googleads/v8/services/account_budget_proposal_service.proto +++ /dev/null @@ -1,161 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetProposalServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AccountBudgetProposal service. - -// A service for managing account-level budgets via proposals. -// -// A proposal is a request to create a new budget or make changes to an -// existing one. -// -// Reads for account-level budgets managed by these proposals will be -// supported in a future version. Until then, please use the -// BudgetOrderService from the AdWords API. Learn more at -// https://developers.google.com/adwords/api/docs/guides/budget-order -// -// Mutates: -// The CREATE operation creates a new proposal. -// UPDATE operations aren't supported. -// The REMOVE operation cancels a pending proposal. -service AccountBudgetProposalService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns an account-level budget proposal in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAccountBudgetProposal(GetAccountBudgetProposalRequest) returns (google.ads.googleads.v8.resources.AccountBudgetProposal) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/accountBudgetProposals/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes account budget proposals. Operation statuses - // are returned. - // - // List of thrown errors: - // [AccountBudgetProposalError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DateError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - // [StringLengthError]() - rpc MutateAccountBudgetProposal(MutateAccountBudgetProposalRequest) returns (MutateAccountBudgetProposalResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/accountBudgetProposals:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [AccountBudgetProposalService.GetAccountBudgetProposal][google.ads.googleads.v8.services.AccountBudgetProposalService.GetAccountBudgetProposal]. -message GetAccountBudgetProposalRequest { - // Required. The resource name of the account-level budget proposal to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudgetProposal" - } - ]; -} - -// Request message for -// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v8.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. -message MutateAccountBudgetProposalRequest { - // Required. The ID of the customer. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on an individual account-level budget proposal. - AccountBudgetProposalOperation 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 operation to propose the creation of a new account-level budget or -// edit/end/remove an existing one. -message AccountBudgetProposalOperation { - // FieldMask that determines which budget fields are modified. While budgets - // may be modified, proposals that propose such modifications are final. - // Therefore, update operations are not supported for proposals. - // - // Proposals that modify budgets have the 'update' proposal type. Specifying - // a mask for any other proposal type is considered an error. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Create operation: A new proposal to create a new budget, edit an - // 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.v8.resources.AccountBudgetProposal create = 2; - - // Remove operation: A resource name for the removed proposal is expected, - // in this format: - // - // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` - // A request may be cancelled iff it is pending. - string remove = 1; - } -} - -// Response message for account-level budget mutate operations. -message MutateAccountBudgetProposalResponse { - // The result of the mutate. - MutateAccountBudgetProposalResult result = 2; -} - -// The result for the account budget proposal mutate. -message MutateAccountBudgetProposalResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/account_budget_service.proto b/google/ads/googleads/v8/services/account_budget_service.proto deleted file mode 100644 index e2187bad7..000000000 --- a/google/ads/googleads/v8/services/account_budget_service.proto +++ /dev/null @@ -1,70 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/account_budget.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AccountBudgetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AccountBudget service. - -// A service for fetching an account-level budget. -// -// Account-level budgets are mutated by creating proposal resources. -service AccountBudgetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns an account-level budget in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAccountBudget(GetAccountBudgetRequest) returns (google.ads.googleads.v8.resources.AccountBudget) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/accountBudgets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [AccountBudgetService.GetAccountBudget][google.ads.googleads.v8.services.AccountBudgetService.GetAccountBudget]. -message GetAccountBudgetRequest { - // Required. The resource name of the account-level budget to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountBudget" - } - ]; -} diff --git a/google/ads/googleads/v8/services/account_link_service.proto b/google/ads/googleads/v8/services/account_link_service.proto deleted file mode 100644 index 4a596b73e..000000000 --- a/google/ads/googleads/v8/services/account_link_service.proto +++ /dev/null @@ -1,178 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/account_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AccountLinkServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// This service allows management of links between Google Ads accounts and other -// accounts. -service AccountLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the account link in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAccountLink(GetAccountLinkRequest) returns (google.ads.googleads.v8.resources.AccountLink) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/accountLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates an account link. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - // [ThirdPartyAppAnalyticsLinkError]() - rpc CreateAccountLink(CreateAccountLinkRequest) returns (CreateAccountLinkResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/accountLinks:create" - body: "*" - }; - option (google.api.method_signature) = "customer_id,account_link"; - } - - // Creates or removes an account link. - // From V5, create is not supported through - // AccountLinkService.MutateAccountLink. Please use - // AccountLinkService.CreateAccountLink instead. - // - // List of thrown errors: - // [AccountLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAccountLink(MutateAccountLinkRequest) returns (MutateAccountLinkResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/accountLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for [AccountLinkService.GetAccountLink][google.ads.googleads.v8.services.AccountLinkService.GetAccountLink]. -message GetAccountLinkRequest { - // Required. Resource name of the account link. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AccountLink" - } - ]; -} - -// Request message for -// [AccountLinkService.CreateAccountLink][google.ads.googleads.v8.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.v8.resources.AccountLink account_link = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for -// [AccountLinkService.CreateAccountLink][google.ads.googleads.v8.services.AccountLinkService.CreateAccountLink]. -message CreateAccountLinkResponse { - // Returned for successful operations. Resource name of the account link. - string resource_name = 1; -} - -// Request message for [AccountLinkService.MutateAccountLink][google.ads.googleads.v8.services.AccountLinkService.MutateAccountLink]. -message MutateAccountLinkRequest { - // 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. - AccountLinkOperation operation = 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; -} - -// A single update on an account link. -message AccountLinkOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The operation to perform. - oneof operation { - // Update operation: The account link is expected to have - // a valid resource name. - google.ads.googleads.v8.resources.AccountLink update = 2; - - // Remove operation: A resource name for the account link to remove is - // expected, in this format: - // - // `customers/{customer_id}/accountLinks/{account_link_id}` - string remove = 3; - } -} - -// Response message for account link mutate. -message MutateAccountLinkResponse { - // Result for the mutate. - MutateAccountLinkResult result = 1; -} - -// The result for the account link mutate. -message MutateAccountLinkResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/ad_group_ad_asset_view_service.proto b/google/ads/googleads/v8/services/ad_group_ad_asset_view_service.proto deleted file mode 100644 index 81b4a6815..000000000 --- a/google/ads/googleads/v8/services/ad_group_ad_asset_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/ad_group_ad_asset_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdAssetViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the ad group ad asset view service. - -// Service to fetch ad group ad asset views. -service AdGroupAdAssetViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group ad asset view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupAdAssetView(GetAdGroupAdAssetViewRequest) returns (google.ads.googleads.v8.resources.AdGroupAdAssetView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupAdAssetViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AdGroupAdAssetViewService.GetAdGroupAdAssetView][google.ads.googleads.v8.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView]. -message GetAdGroupAdAssetViewRequest { - // Required. The resource name of the ad group ad asset view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdAssetView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/ad_group_ad_label_service.proto b/google/ads/googleads/v8/services/ad_group_ad_label_service.proto deleted file mode 100644 index 310a40837..000000000 --- a/google/ads/googleads/v8/services/ad_group_ad_label_service.proto +++ /dev/null @@ -1,144 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdLabelServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad Group Ad Label service. - -// Service to manage labels on ad group ads. -service AdGroupAdLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group ad label in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupAdLabel(GetAdGroupAdLabelRequest) returns (google.ads.googleads.v8.resources.AdGroupAdLabel) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupAdLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes ad group ad labels. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [HeaderError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdGroupAdLabels(MutateAdGroupAdLabelsRequest) returns (MutateAdGroupAdLabelsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupAdLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupAdLabelService.GetAdGroupAdLabel][google.ads.googleads.v8.services.AdGroupAdLabelService.GetAdGroupAdLabel]. -message GetAdGroupAdLabelRequest { - // Required. The resource name of the ad group ad label to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAdLabel" - } - ]; -} - -// Request message for [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on ad group ad labels. - repeated AdGroupAdLabelOperation 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; -} - -// A single operation (create, remove) on an ad group ad label. -message AdGroupAdLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group ad - // label. - google.ads.googleads.v8.resources.AdGroupAdLabel create = 1; - - // Remove operation: A resource name for the ad group ad label - // being removed, in this format: - // - // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id} - // _{label_id}` - string remove = 2; - } -} - -// Response message for an ad group ad labels mutate. -message MutateAdGroupAdLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupAdLabelResult results = 2; -} - -// The result for an ad group ad label mutate. -message MutateAdGroupAdLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/ad_group_ad_service.proto b/google/ads/googleads/v8/services/ad_group_ad_service.proto deleted file mode 100644 index 6d3f0aba0..000000000 --- a/google/ads/googleads/v8/services/ad_group_ad_service.proto +++ /dev/null @@ -1,195 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad_group_ad.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAdServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad Group Ad service. - -// Service to manage ads in an ad group. -service AdGroupAdService { - 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 GetAdGroupAd(GetAdGroupAdRequest) returns (google.ads.googleads.v8.resources.AdGroupAd) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupAds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ads. Operation statuses are returned. - // - // List of thrown errors: - // [AdCustomizerError]() - // [AdError]() - // [AdGroupAdError]() - // [AdSharingError]() - // [AdxError]() - // [AssetError]() - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [ContextError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FeedAttributeReferenceError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [ImageError]() - // [InternalError]() - // [ListOperationError]() - // [MediaBundleError]() - // [MediaFileError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [PolicyFindingError]() - // [PolicyValidationParameterError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAdGroupAds(MutateAdGroupAdsRequest) returns (MutateAdGroupAdsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupAds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupAdService.GetAdGroupAd][google.ads.googleads.v8.services.AdGroupAdService.GetAdGroupAd]. -message GetAdGroupAdRequest { - // 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/AdGroupAd" - } - ]; -} - -// Request message for [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual ads. - repeated AdGroupAdOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an ad group ad. -message AdGroupAdOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // Configuration for how policies are validated. - google.ads.googleads.v8.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.v8.resources.AdGroupAd create = 1; - - // Update operation: The ad is expected to have a valid resource name. - google.ads.googleads.v8.resources.AdGroupAd update = 2; - - // Remove operation: A resource name for the removed ad is expected, - // in this format: - // - // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}` - string remove = 3; - } -} - -// Response message for an ad group ad mutate. -message MutateAdGroupAdsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupAdResult results = 2; -} - -// The result for the ad mutate. -message MutateAdGroupAdResult { - // The resource name returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.AdGroupAd ad_group_ad = 2; -} diff --git a/google/ads/googleads/v8/services/ad_group_asset_service.proto b/google/ads/googleads/v8/services/ad_group_asset_service.proto deleted file mode 100644 index 132fe57ce..000000000 --- a/google/ads/googleads/v8/services/ad_group_asset_service.proto +++ /dev/null @@ -1,162 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad_group_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAssetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AdGroupAsset service. - -// Service to manage ad group assets. -service AdGroupAssetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group asset in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupAsset(GetAdGroupAssetRequest) returns (google.ads.googleads.v8.resources.AdGroupAsset) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupAssets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad group assets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NotAllowlistedError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdGroupAssets(MutateAdGroupAssetsRequest) returns (MutateAdGroupAssetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupAssets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupAssetService.GetAdGroupAsset][google.ads.googleads.v8.services.AdGroupAssetService.GetAdGroupAsset]. -message GetAdGroupAssetRequest { - // Required. The resource name of the ad group asset to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAsset" - } - ]; -} - -// Request message for [AdGroupAssetService.MutateAdGroupAssets][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual ad group assets. - repeated AdGroupAssetOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an ad group asset. -message AdGroupAssetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group - // asset. - google.ads.googleads.v8.resources.AdGroupAsset create = 1; - - // Update operation: The ad group asset is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.AdGroupAsset update = 3; - - // Remove operation: A resource name for the removed ad group asset is - // expected, in this format: - // - // `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}` - string remove = 2; - } -} - -// Response message for an ad group asset mutate. -message MutateAdGroupAssetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateAdGroupAssetResult results = 2; -} - -// The result for the ad group asset mutate. -message MutateAdGroupAssetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.AdGroupAsset ad_group_asset = 2; -} diff --git a/google/ads/googleads/v8/services/ad_group_audience_view_service.proto b/google/ads/googleads/v8/services/ad_group_audience_view_service.proto deleted file mode 100644 index 56085426c..000000000 --- a/google/ads/googleads/v8/services/ad_group_audience_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/ad_group_audience_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupAudienceViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AdGroup Audience View service. - -// Service to manage ad group audience views. -service AdGroupAudienceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group audience view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupAudienceView(GetAdGroupAudienceViewRequest) returns (google.ads.googleads.v8.resources.AdGroupAudienceView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupAudienceViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AdGroupAudienceViewService.GetAdGroupAudienceView][google.ads.googleads.v8.services.AdGroupAudienceViewService.GetAdGroupAudienceView]. -message GetAdGroupAudienceViewRequest { - // Required. The resource name of the ad group audience view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupAudienceView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/ad_group_bid_modifier_service.proto b/google/ads/googleads/v8/services/ad_group_bid_modifier_service.proto deleted file mode 100644 index 4c75c2114..000000000 --- a/google/ads/googleads/v8/services/ad_group_bid_modifier_service.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad_group_bid_modifier.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupBidModifierServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad Group Bid Modifier service. - -// Service to manage ad group bid modifiers. -service AdGroupBidModifierService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group bid modifier in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupBidModifier(GetAdGroupBidModifierRequest) returns (google.ads.googleads.v8.resources.AdGroupBidModifier) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupBidModifiers/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad group bid modifiers. - // Operation statuses are returned. - // - // List of thrown errors: - // [AdGroupBidModifierError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [CriterionError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateAdGroupBidModifiers(MutateAdGroupBidModifiersRequest) returns (MutateAdGroupBidModifiersResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupBidModifiers:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupBidModifierService.GetAdGroupBidModifier][google.ads.googleads.v8.services.AdGroupBidModifierService.GetAdGroupBidModifier]. -message GetAdGroupBidModifierRequest { - // Required. The resource name of the ad group bid modifier to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupBidModifier" - } - ]; -} - -// Request message for [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v8.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. -message MutateAdGroupBidModifiersRequest { - // Required. ID of the customer whose ad group bid modifiers are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual ad group bid modifiers. - repeated AdGroupBidModifierOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on an ad group bid modifier. -message AdGroupBidModifierOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group bid - // modifier. - google.ads.googleads.v8.resources.AdGroupBidModifier create = 1; - - // Update operation: The ad group bid modifier is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.AdGroupBidModifier update = 2; - - // Remove operation: A resource name for the removed ad group bid modifier - // is expected, in this format: - // - // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for ad group bid modifiers mutate. -message MutateAdGroupBidModifiersResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupBidModifierResult results = 2; -} - -// The result for the criterion mutate. -message MutateAdGroupBidModifierResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.AdGroupBidModifier ad_group_bid_modifier = 2; -} diff --git a/google/ads/googleads/v8/services/ad_group_criterion_label_service.proto b/google/ads/googleads/v8/services/ad_group_criterion_label_service.proto deleted file mode 100644 index d5a9f54b1..000000000 --- a/google/ads/googleads/v8/services/ad_group_criterion_label_service.proto +++ /dev/null @@ -1,143 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionLabelServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad Group Criterion Label service. - -// Service to manage labels on ad group criteria. -service AdGroupCriterionLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group criterion label in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupCriterionLabel(GetAdGroupCriterionLabelRequest) returns (google.ads.googleads.v8.resources.AdGroupCriterionLabel) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupCriterionLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes ad group criterion labels. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdGroupCriterionLabels(MutateAdGroupCriterionLabelsRequest) returns (MutateAdGroupCriterionLabelsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupCriterionLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [AdGroupCriterionLabelService.GetAdGroupCriterionLabel][google.ads.googleads.v8.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel]. -message GetAdGroupCriterionLabelRequest { - // Required. The resource name of the ad group criterion label to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionLabel" - } - ]; -} - -// Request message for -// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v8.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels]. -message MutateAdGroupCriterionLabelsRequest { - // Required. ID of the customer whose ad group criterion labels are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on ad group criterion labels. - repeated AdGroupCriterionLabelOperation 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; -} - -// A single operation (create, remove) on an ad group criterion label. -message AdGroupCriterionLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group - // label. - google.ads.googleads.v8.resources.AdGroupCriterionLabel create = 1; - - // Remove operation: A resource name for the ad group criterion label - // being removed, in this format: - // - // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}` - string remove = 2; - } -} - -// Response message for an ad group criterion labels mutate. -message MutateAdGroupCriterionLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupCriterionLabelResult results = 2; -} - -// The result for an ad group criterion label mutate. -message MutateAdGroupCriterionLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/ad_group_criterion_service.proto b/google/ads/googleads/v8/services/ad_group_criterion_service.proto deleted file mode 100644 index 9ca290573..000000000 --- a/google/ads/googleads/v8/services/ad_group_criterion_service.proto +++ /dev/null @@ -1,194 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad_group_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad Group Criterion service. - -// Service to manage ad group criteria. -service AdGroupCriterionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested criterion in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupCriterion(GetAdGroupCriterionRequest) returns (google.ads.googleads.v8.resources.AdGroupCriterion) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupCriteria/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes criteria. Operation statuses are returned. - // - // List of thrown errors: - // [AdGroupCriterionError]() - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [BiddingStrategyError]() - // [CollectionSizeError]() - // [ContextError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MultiplierError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAdGroupCriteria(MutateAdGroupCriteriaRequest) returns (MutateAdGroupCriteriaResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupCriteria:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupCriterionService.GetAdGroupCriterion][google.ads.googleads.v8.services.AdGroupCriterionService.GetAdGroupCriterion]. -message GetAdGroupCriterionRequest { - // Required. The resource name of the criterion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterion" - } - ]; -} - -// Request message for [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v8.services.AdGroupCriterionService.MutateAdGroupCriteria]. -message MutateAdGroupCriteriaRequest { - // Required. ID of the customer whose criteria are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual criteria. - repeated AdGroupCriterionOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on an ad group criterion. -message AdGroupCriterionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The list of policy violation keys that should not cause a - // PolicyViolationError to be reported. Not all policy violations are - // exemptable, please 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.v8.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.v8.resources.AdGroupCriterion create = 1; - - // Update operation: The criterion is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.AdGroupCriterion update = 2; - - // Remove operation: A resource name for the removed criterion is expected, - // in this format: - // - // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for an ad group criterion mutate. -message MutateAdGroupCriteriaResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupCriterionResult results = 2; -} - -// The result for the criterion mutate. -message MutateAdGroupCriterionResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.AdGroupCriterion ad_group_criterion = 2; -} diff --git a/google/ads/googleads/v8/services/ad_group_criterion_simulation_service.proto b/google/ads/googleads/v8/services/ad_group_criterion_simulation_service.proto deleted file mode 100644 index f5e36b4d4..000000000 --- a/google/ads/googleads/v8/services/ad_group_criterion_simulation_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/ad_group_criterion_simulation.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupCriterionSimulationServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AdGroupCriterionSimulation service. - -// Service to fetch ad group criterion simulations. -service AdGroupCriterionSimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group criterion simulation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupCriterionSimulation(GetAdGroupCriterionSimulationRequest) returns (google.ads.googleads.v8.resources.AdGroupCriterionSimulation) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupCriterionSimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation][google.ads.googleads.v8.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation]. -message GetAdGroupCriterionSimulationRequest { - // Required. The resource name of the ad group criterion simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupCriterionSimulation" - } - ]; -} diff --git a/google/ads/googleads/v8/services/ad_group_extension_setting_service.proto b/google/ads/googleads/v8/services/ad_group_extension_setting_service.proto deleted file mode 100644 index 2f1ca770c..000000000 --- a/google/ads/googleads/v8/services/ad_group_extension_setting_service.proto +++ /dev/null @@ -1,183 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad_group_extension_setting.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AdGroupExtensionSetting service. - -// Service to manage ad group extension settings. -service AdGroupExtensionSettingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group extension setting in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupExtensionSetting(GetAdGroupExtensionSettingRequest) returns (google.ads.googleads.v8.resources.AdGroupExtensionSetting) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupExtensionSettings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad group extension settings. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [ExtensionSettingError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAdGroupExtensionSettings(MutateAdGroupExtensionSettingsRequest) returns (MutateAdGroupExtensionSettingsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupExtensionSettings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [AdGroupExtensionSettingService.GetAdGroupExtensionSetting][google.ads.googleads.v8.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting]. -message GetAdGroupExtensionSettingRequest { - // Required. The resource name of the ad group extension setting to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupExtensionSetting" - } - ]; -} - -// Request message for -// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v8.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings]. -message MutateAdGroupExtensionSettingsRequest { - // Required. The ID of the customer whose ad group extension settings are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual ad group extension - // settings. - repeated AdGroupExtensionSettingOperation 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; -} - -// A single operation (create, update, remove) on an ad group extension setting. -message AdGroupExtensionSettingOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v8.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.v8.resources.AdGroupExtensionSetting create = 1; - - // Update operation: The ad group extension setting is expected to have a - // valid resource name. - google.ads.googleads.v8.resources.AdGroupExtensionSetting update = 2; - - // Remove operation: A resource name for the removed ad group extension - // setting is expected, in this format: - // - // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}` - string remove = 3; - } -} - -// Response message for an ad group extension setting mutate. -message MutateAdGroupExtensionSettingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupExtensionSettingResult results = 2; -} - -// The result for the ad group extension setting mutate. -message MutateAdGroupExtensionSettingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.AdGroupExtensionSetting ad_group_extension_setting = 2; -} diff --git a/google/ads/googleads/v8/services/ad_group_feed_service.proto b/google/ads/googleads/v8/services/ad_group_feed_service.proto deleted file mode 100644 index 596e920d7..000000000 --- a/google/ads/googleads/v8/services/ad_group_feed_service.proto +++ /dev/null @@ -1,172 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad_group_feed.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupFeedServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AdGroupFeed service. - -// Service to manage ad group feeds. -service AdGroupFeedService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group feed in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupFeed(GetAdGroupFeedRequest) returns (google.ads.googleads.v8.resources.AdGroupFeed) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupFeeds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad group feeds. Operation statuses are - // returned. - // - // List of thrown errors: - // [AdGroupFeedError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateAdGroupFeeds(MutateAdGroupFeedsRequest) returns (MutateAdGroupFeedsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupFeeds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupFeedService.GetAdGroupFeed][google.ads.googleads.v8.services.AdGroupFeedService.GetAdGroupFeed]. -message GetAdGroupFeedRequest { - // Required. The resource name of the ad group feed to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupFeed" - } - ]; -} - -// Request message for [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual ad group feeds. - repeated AdGroupFeedOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an ad group feed. -message AdGroupFeedOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group feed. - google.ads.googleads.v8.resources.AdGroupFeed create = 1; - - // Update operation: The ad group feed is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.AdGroupFeed update = 2; - - // Remove operation: A resource name for the removed ad group feed is - // expected, in this format: - // - // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}` - string remove = 3; - } -} - -// Response message for an ad group feed mutate. -message MutateAdGroupFeedsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupFeedResult results = 2; -} - -// The result for the ad group feed mutate. -message MutateAdGroupFeedResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.AdGroupFeed ad_group_feed = 2; -} diff --git a/google/ads/googleads/v8/services/ad_group_label_service.proto b/google/ads/googleads/v8/services/ad_group_label_service.proto deleted file mode 100644 index 39ff4b806..000000000 --- a/google/ads/googleads/v8/services/ad_group_label_service.proto +++ /dev/null @@ -1,144 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupLabelServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad Group Label service. - -// Service to manage labels on ad groups. -service AdGroupLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group label in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupLabel(GetAdGroupLabelRequest) returns (google.ads.googleads.v8.resources.AdGroupLabel) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes ad group labels. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdGroupLabels(MutateAdGroupLabelsRequest) returns (MutateAdGroupLabelsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroupLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupLabelService.GetAdGroupLabel][google.ads.googleads.v8.services.AdGroupLabelService.GetAdGroupLabel]. -message GetAdGroupLabelRequest { - // Required. The resource name of the ad group label to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupLabel" - } - ]; -} - -// Request message for [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on ad group labels. - repeated AdGroupLabelOperation 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; -} - -// A single operation (create, remove) on an ad group label. -message AdGroupLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group - // label. - google.ads.googleads.v8.resources.AdGroupLabel create = 1; - - // Remove operation: A resource name for the ad group label - // being removed, in this format: - // - // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}` - string remove = 2; - } -} - -// Response message for an ad group labels mutate. -message MutateAdGroupLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupLabelResult results = 2; -} - -// The result for an ad group label mutate. -message MutateAdGroupLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/ad_group_service.proto b/google/ads/googleads/v8/services/ad_group_service.proto deleted file mode 100644 index 1b00ef720..000000000 --- a/google/ads/googleads/v8/services/ad_group_service.proto +++ /dev/null @@ -1,178 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad_group.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad Group service. - -// Service to manage ad groups. -service AdGroupService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroup(GetAdGroupRequest) returns (google.ads.googleads.v8.resources.AdGroup) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroups/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad groups. Operation statuses are returned. - // - // List of thrown errors: - // [AdGroupError]() - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [BiddingStrategyError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MultiplierError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SettingError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAdGroups(MutateAdGroupsRequest) returns (MutateAdGroupsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adGroups:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdGroupService.GetAdGroup][google.ads.googleads.v8.services.AdGroupService.GetAdGroup]. -message GetAdGroupRequest { - // Required. The resource name of the ad group to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroup" - } - ]; -} - -// Request message for [AdGroupService.MutateAdGroups][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual ad groups. - repeated AdGroupOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an ad group. -message AdGroupOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad group. - google.ads.googleads.v8.resources.AdGroup create = 1; - - // Update operation: The ad group is expected to have a valid resource name. - google.ads.googleads.v8.resources.AdGroup update = 2; - - // Remove operation: A resource name for the removed ad group is expected, - // in this format: - // - // `customers/{customer_id}/adGroups/{ad_group_id}` - string remove = 3; - } -} - -// Response message for an ad group mutate. -message MutateAdGroupsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdGroupResult results = 2; -} - -// The result for the ad group mutate. -message MutateAdGroupResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.AdGroup ad_group = 2; -} diff --git a/google/ads/googleads/v8/services/ad_group_simulation_service.proto b/google/ads/googleads/v8/services/ad_group_simulation_service.proto deleted file mode 100644 index 3d3596792..000000000 --- a/google/ads/googleads/v8/services/ad_group_simulation_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/ad_group_simulation.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdGroupSimulationServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AdGroupSimulation service. - -// Service to fetch ad group simulations. -service AdGroupSimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad group simulation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdGroupSimulation(GetAdGroupSimulationRequest) returns (google.ads.googleads.v8.resources.AdGroupSimulation) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adGroupSimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AdGroupSimulationService.GetAdGroupSimulation][google.ads.googleads.v8.services.AdGroupSimulationService.GetAdGroupSimulation]. -message GetAdGroupSimulationRequest { - // Required. The resource name of the ad group simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdGroupSimulation" - } - ]; -} diff --git a/google/ads/googleads/v8/services/ad_parameter_service.proto b/google/ads/googleads/v8/services/ad_parameter_service.proto deleted file mode 100644 index 2fe7f3f31..000000000 --- a/google/ads/googleads/v8/services/ad_parameter_service.proto +++ /dev/null @@ -1,162 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad_parameter.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdParameterServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad Parameter service. - -// Service to manage ad parameters. -service AdParameterService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad parameter in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdParameter(GetAdParameterRequest) returns (google.ads.googleads.v8.resources.AdParameter) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adParameters/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes ad parameters. Operation statuses are - // returned. - // - // List of thrown errors: - // [AdParameterError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateAdParameters(MutateAdParametersRequest) returns (MutateAdParametersResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/adParameters:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdParameterService.GetAdParameter][google.ads.googleads.v8.services.AdParameterService.GetAdParameter] -message GetAdParameterRequest { - // Required. The resource name of the ad parameter to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdParameter" - } - ]; -} - -// Request message for [AdParameterService.MutateAdParameters][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual ad parameters. - repeated AdParameterOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on ad parameter. -message AdParameterOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new ad parameter. - google.ads.googleads.v8.resources.AdParameter create = 1; - - // Update operation: The ad parameter is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.AdParameter update = 2; - - // Remove operation: A resource name for the ad parameter to remove is - // expected in this format: - // - // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}` - string remove = 3; - } -} - -// Response message for an ad parameter mutate. -message MutateAdParametersResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdParameterResult results = 2; -} - -// The result for the ad parameter mutate. -message MutateAdParameterResult { - // The resource name returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.AdParameter ad_parameter = 2; -} diff --git a/google/ads/googleads/v8/services/ad_schedule_view_service.proto b/google/ads/googleads/v8/services/ad_schedule_view_service.proto deleted file mode 100644 index c329e8b50..000000000 --- a/google/ads/googleads/v8/services/ad_schedule_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/ad_schedule_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdScheduleViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AdSchedule View service. - -// Service to fetch ad schedule views. -service AdScheduleViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested ad schedule view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAdScheduleView(GetAdScheduleViewRequest) returns (google.ads.googleads.v8.resources.AdScheduleView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/adScheduleViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AdScheduleViewService.GetAdScheduleView][google.ads.googleads.v8.services.AdScheduleViewService.GetAdScheduleView]. -message GetAdScheduleViewRequest { - // Required. The resource name of the ad schedule view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AdScheduleView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/ad_service.proto b/google/ads/googleads/v8/services/ad_service.proto deleted file mode 100644 index 491e45fbe..000000000 --- a/google/ads/googleads/v8/services/ad_service.proto +++ /dev/null @@ -1,184 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/policy.proto"; -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/ad.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AdServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Ad service. - -// Service to manage ads. -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.v8.resources.Ad) { - option (google.api.http) = { - get: "/v8/{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. - // - // List of thrown errors: - // [AdCustomizerError]() - // [AdError]() - // [AdSharingError]() - // [AdxError]() - // [AssetError]() - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FeedAttributeReferenceError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [ImageError]() - // [InternalError]() - // [ListOperationError]() - // [MediaBundleError]() - // [MediaFileError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [PolicyFindingError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateAds(MutateAdsRequest) returns (MutateAdsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/ads:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AdService.GetAd][google.ads.googleads.v8.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.v8.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]; - - // Required. The list of operations to perform on individual ads. - repeated AdOperation 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 = 4; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 3; -} - -// A single update operation on an ad. -message AdOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 2; - - // Configuration for how policies are validated. - google.ads.googleads.v8.common.PolicyValidationParameter policy_validation_parameter = 3; - - // The mutate operation. - oneof operation { - // Update operation: The ad is expected to have a valid resource name - // in this format: - // - // `customers/{customer_id}/ads/{ad_id}` - google.ads.googleads.v8.resources.Ad update = 1; - } -} - -// Response message for an ad mutate. -message MutateAdsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAdResult results = 2; -} - -// The result for the ad mutate. -message MutateAdResult { - // The resource name returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.Ad ad = 2; -} diff --git a/google/ads/googleads/v8/services/age_range_view_service.proto b/google/ads/googleads/v8/services/age_range_view_service.proto deleted file mode 100644 index 3f0bba142..000000000 --- a/google/ads/googleads/v8/services/age_range_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/age_range_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AgeRangeViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Age Range View service. - -// Service to manage age range views. -service AgeRangeViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested age range view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAgeRangeView(GetAgeRangeViewRequest) returns (google.ads.googleads.v8.resources.AgeRangeView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/ageRangeViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AgeRangeViewService.GetAgeRangeView][google.ads.googleads.v8.services.AgeRangeViewService.GetAgeRangeView]. -message GetAgeRangeViewRequest { - // Required. The resource name of the age range view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AgeRangeView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/asset_field_type_view_service.proto b/google/ads/googleads/v8/services/asset_field_type_view_service.proto deleted file mode 100644 index be005ac28..000000000 --- a/google/ads/googleads/v8/services/asset_field_type_view_service.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/asset_field_type_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AssetFieldTypeViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the AssetFieldTypeView service. - -// Service to fetch asset field type views. -service AssetFieldTypeViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested asset field type view in full detail. - rpc GetAssetFieldTypeView(GetAssetFieldTypeViewRequest) returns (google.ads.googleads.v8.resources.AssetFieldTypeView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/assetFieldTypeViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [AssetFieldTypeViewService.GetAssetFieldTypeView][google.ads.googleads.v8.services.AssetFieldTypeViewService.GetAssetFieldTypeView]. -message GetAssetFieldTypeViewRequest { - // Required. The resource name of the asset field type view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/AssetFieldTypeView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/asset_service.proto b/google/ads/googleads/v8/services/asset_service.proto deleted file mode 100644 index 9b504cd19..000000000 --- a/google/ads/googleads/v8/services/asset_service.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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "AssetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Asset service. - -// Service to manage assets. Asset types can be created with AssetService are -// YoutubeVideoAsset, MediaBundleAsset and ImageAsset. TextAsset should be -// created with Ad inline. -service AssetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested asset in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAsset(GetAssetRequest) returns (google.ads.googleads.v8.resources.Asset) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/assets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates assets. Operation statuses are returned. - // - // List of thrown errors: - // [AssetError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CurrencyCodeError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MediaUploadError]() - // [MutateError]() - // [NotAllowlistedError]() - // [NotEmptyError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - // [YoutubeVideoRegistrationError]() - rpc MutateAssets(MutateAssetsRequest) returns (MutateAssetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/assets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [AssetService.GetAsset][google.ads.googleads.v8.services.AssetService.GetAsset] -message GetAssetRequest { - // Required. The resource name of the asset to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Asset" - } - ]; -} - -// Request message for [AssetService.MutateAssets][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual assets. - repeated AssetOperation 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 = 5; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 3; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// A single operation to create an asset. Supported asset types are -// YoutubeVideoAsset, MediaBundleAsset, ImageAsset, and LeadFormAsset. TextAsset -// should be created with Ad inline. -message AssetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new asset. - google.ads.googleads.v8.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.v8.resources.Asset update = 2; - } -} - -// Response message for an asset mutate. -message MutateAssetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateAssetResult results = 2; -} - -// The result for the asset mutate. -message MutateAssetResult { - // The resource name returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.Asset asset = 2; -} diff --git a/google/ads/googleads/v8/services/batch_job_service.proto b/google/ads/googleads/v8/services/batch_job_service.proto deleted file mode 100644 index d6898d3bd..000000000 --- a/google/ads/googleads/v8/services/batch_job_service.proto +++ /dev/null @@ -1,286 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/batch_job.proto"; -import "google/ads/googleads/v8/services/google_ads_service.proto"; -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/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BatchJobServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the BatchJobService. - -// Service to manage batch jobs. -service BatchJobService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Mutates a batch job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateBatchJob(MutateBatchJobRequest) returns (MutateBatchJobResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/batchJobs:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } - - // Returns the batch job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetBatchJob(GetBatchJobRequest) returns (google.ads.googleads.v8.resources.BatchJob) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/batchJobs/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Returns the results of the batch job. The job must be done. - // Supports standard list paging. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [BatchJobError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListBatchJobResults(ListBatchJobResultsRequest) returns (ListBatchJobResultsResponse) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/batchJobs/*}:listResults" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Runs the batch job. - // - // The Operation.metadata field type is BatchJobMetadata. When finished, the - // long running operation will not contain errors or a response. Instead, use - // ListBatchJobResults to get the results of the job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [BatchJobError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc RunBatchJob(RunBatchJobRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v8/{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.v8.resources.BatchJob.BatchJobMetadata" - }; - } - - // Add operations to the batch job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [BatchJobError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc AddBatchJobOperations(AddBatchJobOperationsRequest) returns (AddBatchJobOperationsResponse) { - option (google.api.http) = { - post: "/v8/{resource_name=customers/*/batchJobs/*}:addOperations" - body: "*" - }; - option (google.api.method_signature) = "resource_name,sequence_token,mutate_operations"; - option (google.api.method_signature) = "resource_name,mutate_operations"; - } -} - -// Request message for [BatchJobService.MutateBatchJob][google.ads.googleads.v8.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]; - - // Required. The operation to perform on an individual batch job. - BatchJobOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A single operation on a batch job. -message BatchJobOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new batch job. - google.ads.googleads.v8.resources.BatchJob create = 1; - } -} - -// Response message for [BatchJobService.MutateBatchJob][google.ads.googleads.v8.services.BatchJobService.MutateBatchJob]. -message MutateBatchJobResponse { - // The result for the mutate. - MutateBatchJobResult result = 1; -} - -// The result for the batch job mutate. -message MutateBatchJobResult { - // The resource name of the batch job. - string resource_name = 1; -} - -// Request message for [BatchJobService.GetBatchJob][google.ads.googleads.v8.services.BatchJobService.GetBatchJob]. -message GetBatchJobRequest { - // Required. The resource name of the batch job to get. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; -} - -// Request message for [BatchJobService.RunBatchJob][google.ads.googleads.v8.services.BatchJobService.RunBatchJob]. -message RunBatchJobRequest { - // Required. The resource name of the BatchJob to run. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; -} - -// Request message for [BatchJobService.AddBatchJobOperations][google.ads.googleads.v8.services.BatchJobService.AddBatchJobOperations]. -message AddBatchJobOperationsRequest { - // Required. The resource name of the batch job. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; - - // A token used to enforce sequencing. - // - // The first AddBatchJobOperations request for a batch job should not set - // sequence_token. Subsequent requests must set sequence_token to the value of - // next_sequence_token received in the previous AddBatchJobOperations - // response. - string sequence_token = 2; - - // Required. The list of mutates being added. - // - // Operations can use negative integers as temp ids to signify dependencies - // between entities created in this batch job. For example, a customer with - // id = 1234 can create a campaign and an ad group in that same campaign by - // creating a campaign in the first operation with the resource name - // explicitly set to "customers/1234/campaigns/-1", and creating an ad group - // in the second operation with the campaign field also set to - // "customers/1234/campaigns/-1". - repeated MutateOperation mutate_operations = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for [BatchJobService.AddBatchJobOperations][google.ads.googleads.v8.services.BatchJobService.AddBatchJobOperations]. -message AddBatchJobOperationsResponse { - // The total number of operations added so far for this batch job. - int64 total_operations = 1; - - // The sequence token to be used when calling AddBatchJobOperations again if - // more operations need to be added. The next AddBatchJobOperations request - // must set the sequence_token field to the value of this field. - string next_sequence_token = 2; -} - -// Request message for [BatchJobService.ListBatchJobResults][google.ads.googleads.v8.services.BatchJobService.ListBatchJobResults]. -message ListBatchJobResultsRequest { - // Required. The resource name of the batch job whose results are being listed. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BatchJob" - } - ]; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. Use the value obtained from - // `next_page_token` in the previous response in order to request - // the next page of results. - string page_token = 2; - - // Number of elements to retrieve in a single page. - // When a page request is too large, the server may decide to - // further limit the number of returned resources. - int32 page_size = 3; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned. - google.ads.googleads.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; -} - -// Response message for [BatchJobService.ListBatchJobResults][google.ads.googleads.v8.services.BatchJobService.ListBatchJobResults]. -message ListBatchJobResultsResponse { - // The list of rows that matched the query. - repeated BatchJobResult 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. `next_page_token` is not returned for the last - // page. - string next_page_token = 2; -} - -// An individual batch job result. -message BatchJobResult { - // Index of the mutate operation. - int64 operation_index = 1; - - // Response for the mutate. - // May be empty if errors occurred. - MutateOperationResponse mutate_operation_response = 2; - - // Details of the errors when processing the operation. - google.rpc.Status status = 3; -} diff --git a/google/ads/googleads/v8/services/bidding_data_exclusion_service.proto b/google/ads/googleads/v8/services/bidding_data_exclusion_service.proto deleted file mode 100644 index 54bbd06be..000000000 --- a/google/ads/googleads/v8/services/bidding_data_exclusion_service.proto +++ /dev/null @@ -1,141 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/bidding_data_exclusion.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BiddingDataExclusionServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to manage bidding data exclusions. -service BiddingDataExclusionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested data exclusion in full detail. - rpc GetBiddingDataExclusion(GetBiddingDataExclusionRequest) returns (google.ads.googleads.v8.resources.BiddingDataExclusion) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/biddingDataExclusions/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes data exclusions. - // Operation statuses are returned. - rpc MutateBiddingDataExclusions(MutateBiddingDataExclusionsRequest) returns (MutateBiddingDataExclusionsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/biddingDataExclusions:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [BiddingDataExclusionService.GetBiddingDataExclusion][google.ads.googleads.v8.services.BiddingDataExclusionService.GetBiddingDataExclusion]. -message GetBiddingDataExclusionRequest { - // Required. The resource name of the data exclusion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingDataExclusion" - } - ]; -} - -// Request message for -// [BiddingDataExclusionService.MutateBiddingDataExclusions][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual data exclusions. - repeated BiddingDataExclusionOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on a data exclusion. -message BiddingDataExclusionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new data - // exclusion. - google.ads.googleads.v8.resources.BiddingDataExclusion create = 1; - - // Update operation: The data exclusion is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.BiddingDataExclusion update = 2; - - // Remove operation: A resource name for the removed data exclusion - // is expected, in this format: - // - // `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}` - string remove = 3; - } -} - -// Response message for data exlusions mutate. -message MutateBiddingDataExclusionsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateBiddingDataExclusionsResult results = 2; -} - -// The result for the data exclusion mutate. -message MutateBiddingDataExclusionsResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.BiddingDataExclusion bidding_data_exclusion = 2; -} diff --git a/google/ads/googleads/v8/services/bidding_seasonality_adjustment_service.proto b/google/ads/googleads/v8/services/bidding_seasonality_adjustment_service.proto deleted file mode 100644 index 6b13726f5..000000000 --- a/google/ads/googleads/v8/services/bidding_seasonality_adjustment_service.proto +++ /dev/null @@ -1,141 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/bidding_seasonality_adjustment.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BiddingSeasonalityAdjustmentServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to manage bidding seasonality adjustments. -service BiddingSeasonalityAdjustmentService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested seasonality adjustment in full detail. - rpc GetBiddingSeasonalityAdjustment(GetBiddingSeasonalityAdjustmentRequest) returns (google.ads.googleads.v8.resources.BiddingSeasonalityAdjustment) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/biddingSeasonalityAdjustments/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes seasonality adjustments. - // Operation statuses are returned. - rpc MutateBiddingSeasonalityAdjustments(MutateBiddingSeasonalityAdjustmentsRequest) returns (MutateBiddingSeasonalityAdjustmentsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [BiddingSeasonalityAdjustmentService.GetBiddingSeasonalityAdjustment][google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService.GetBiddingSeasonalityAdjustment]. -message GetBiddingSeasonalityAdjustmentRequest { - // Required. The resource name of the seasonality adjustment to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingSeasonalityAdjustment" - } - ]; -} - -// Request message for -// [BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments][google.ads.googleads.v8.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments]. -message MutateBiddingSeasonalityAdjustmentsRequest { - // Required. ID of the customer whose seasonality adjustments are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual seasonality adjustments. - repeated BiddingSeasonalityAdjustmentOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on a seasonality adjustment. -message BiddingSeasonalityAdjustmentOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new seasonality - // adjustment. - google.ads.googleads.v8.resources.BiddingSeasonalityAdjustment create = 1; - - // Update operation: The seasonality adjustment is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.BiddingSeasonalityAdjustment update = 2; - - // Remove operation: A resource name for the removed seasonality adjustment - // is expected, in this format: - // - // `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}` - string remove = 3; - } -} - -// Response message for seasonality adjustments mutate. -message MutateBiddingSeasonalityAdjustmentsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateBiddingSeasonalityAdjustmentsResult results = 2; -} - -// The result for the seasonality adjustment mutate. -message MutateBiddingSeasonalityAdjustmentsResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 2; -} diff --git a/google/ads/googleads/v8/services/bidding_strategy_service.proto b/google/ads/googleads/v8/services/bidding_strategy_service.proto deleted file mode 100644 index e79678cf1..000000000 --- a/google/ads/googleads/v8/services/bidding_strategy_service.proto +++ /dev/null @@ -1,177 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/bidding_strategy.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategyServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Bidding Strategy service. - -// Service to manage bidding strategies. -service BiddingStrategyService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested bidding strategy in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetBiddingStrategy(GetBiddingStrategyRequest) returns (google.ads.googleads.v8.resources.BiddingStrategy) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/biddingStrategies/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes bidding strategies. Operation statuses are - // returned. - // - // List of thrown errors: - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [BiddingStrategyError]() - // [ContextError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateBiddingStrategies(MutateBiddingStrategiesRequest) returns (MutateBiddingStrategiesResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/biddingStrategies:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [BiddingStrategyService.GetBiddingStrategy][google.ads.googleads.v8.services.BiddingStrategyService.GetBiddingStrategy]. -message GetBiddingStrategyRequest { - // Required. The resource name of the bidding strategy to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategy" - } - ]; -} - -// Request message for [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v8.services.BiddingStrategyService.MutateBiddingStrategies]. -message MutateBiddingStrategiesRequest { - // Required. The ID of the customer whose bidding strategies are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual bidding strategies. - repeated BiddingStrategyOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a bidding strategy. -message BiddingStrategyOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new bidding - // strategy. - google.ads.googleads.v8.resources.BiddingStrategy create = 1; - - // Update operation: The bidding strategy is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.BiddingStrategy update = 2; - - // Remove operation: A resource name for the removed bidding strategy is - // expected, in this format: - // - // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` - string remove = 3; - } -} - -// Response message for bidding strategy mutate. -message MutateBiddingStrategiesResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateBiddingStrategyResult results = 2; -} - -// The result for the bidding strategy mutate. -message MutateBiddingStrategyResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.BiddingStrategy bidding_strategy = 2; -} diff --git a/google/ads/googleads/v8/services/bidding_strategy_simulation_service.proto b/google/ads/googleads/v8/services/bidding_strategy_simulation_service.proto deleted file mode 100644 index 849d39229..000000000 --- a/google/ads/googleads/v8/services/bidding_strategy_simulation_service.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/bidding_strategy_simulation.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BiddingStrategySimulationServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the BiddingStrategySimulation service. - -// Service to fetch bidding strategy simulations. -service BiddingStrategySimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested bidding strategy simulation in full detail. - rpc GetBiddingStrategySimulation(GetBiddingStrategySimulationRequest) returns (google.ads.googleads.v8.resources.BiddingStrategySimulation) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/biddingStrategySimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [BiddingStrategySimulationService.GetBiddingStrategySimulation][google.ads.googleads.v8.services.BiddingStrategySimulationService.GetBiddingStrategySimulation]. -message GetBiddingStrategySimulationRequest { - // Required. The resource name of the bidding strategy simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BiddingStrategySimulation" - } - ]; -} diff --git a/google/ads/googleads/v8/services/billing_setup_service.proto b/google/ads/googleads/v8/services/billing_setup_service.proto deleted file mode 100644 index 72d51eeb3..000000000 --- a/google/ads/googleads/v8/services/billing_setup_service.proto +++ /dev/null @@ -1,136 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "BillingSetupServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the BillingSetup service. - -// A service for designating the business entity responsible for accrued costs. -// -// A billing setup is associated with a payments account. Billing-related -// activity for all billing setups associated with a particular payments account -// will appear on a single invoice generated monthly. -// -// Mutates: -// The REMOVE operation cancels a pending billing setup. -// The CREATE operation creates a new billing setup. -service BillingSetupService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns a billing setup. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetBillingSetup(GetBillingSetupRequest) returns (google.ads.googleads.v8.resources.BillingSetup) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/billingSetups/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates a billing setup, or cancels an existing billing setup. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [BillingSetupError]() - // [DateError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateBillingSetup(MutateBillingSetupRequest) returns (MutateBillingSetupResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/billingSetups:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [BillingSetupService.GetBillingSetup][google.ads.googleads.v8.services.BillingSetupService.GetBillingSetup]. -message GetBillingSetupRequest { - // Required. The resource name of the billing setup to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/BillingSetup" - } - ]; -} - -// Request message for billing setup mutate operations. -message MutateBillingSetupRequest { - // Required. Id of the customer to apply the billing setup mutate operation to. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform. - BillingSetupOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A single operation on a billing setup, which describes the cancellation of an -// existing billing setup. -message BillingSetupOperation { - // Only one of these operations can be set. "Update" operations are not - // supported. - oneof operation { - // Creates a billing setup. No resource name is expected for the new billing - // setup. - google.ads.googleads.v8.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 - // the future. The resource name looks like - // `customers/{customer_id}/billingSetups/{billing_id}`. - string remove = 1; - } -} - -// Response message for a billing setup operation. -message MutateBillingSetupResponse { - // A result that identifies the resource affected by the mutate request. - MutateBillingSetupResult result = 1; -} - -// Result for a single billing setup mutate. -message MutateBillingSetupResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/campaign_asset_service.proto b/google/ads/googleads/v8/services/campaign_asset_service.proto deleted file mode 100644 index 7f6e6149f..000000000 --- a/google/ads/googleads/v8/services/campaign_asset_service.proto +++ /dev/null @@ -1,163 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignAssetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CampaignAsset service. - -// Service to manage campaign assets. -service CampaignAssetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign asset in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignAsset(GetCampaignAssetRequest) returns (google.ads.googleads.v8.resources.CampaignAsset) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignAssets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign assets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NotAllowlistedError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCampaignAssets(MutateCampaignAssetsRequest) returns (MutateCampaignAssetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignAssets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignAssetService.GetCampaignAsset][google.ads.googleads.v8.services.CampaignAssetService.GetCampaignAsset]. -message GetCampaignAssetRequest { - // Required. The resource name of the campaign asset to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAsset" - } - ]; -} - -// Request message for [CampaignAssetService.MutateCampaignAssets][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual campaign assets. - repeated CampaignAssetOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign asset. -message CampaignAssetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign - // asset. - google.ads.googleads.v8.resources.CampaignAsset create = 1; - - // Update operation: The campaign asset is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.CampaignAsset update = 3; - - // Remove operation: A resource name for the removed campaign asset is - // expected, in this format: - // - // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` - string remove = 2; - } -} - -// Response message for a campaign asset mutate. -message MutateCampaignAssetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateCampaignAssetResult results = 2; -} - -// The result for the campaign asset mutate. -message MutateCampaignAssetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CampaignAsset campaign_asset = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_audience_view_service.proto b/google/ads/googleads/v8/services/campaign_audience_view_service.proto deleted file mode 100644 index 324c65e8f..000000000 --- a/google/ads/googleads/v8/services/campaign_audience_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/campaign_audience_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignAudienceViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign Audience View service. - -// Service to manage campaign audience views. -service CampaignAudienceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign audience view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignAudienceView(GetCampaignAudienceViewRequest) returns (google.ads.googleads.v8.resources.CampaignAudienceView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignAudienceViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CampaignAudienceViewService.GetCampaignAudienceView][google.ads.googleads.v8.services.CampaignAudienceViewService.GetCampaignAudienceView]. -message GetCampaignAudienceViewRequest { - // Required. The resource name of the campaign audience view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignAudienceView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/campaign_bid_modifier_service.proto b/google/ads/googleads/v8/services/campaign_bid_modifier_service.proto deleted file mode 100644 index f9c189361..000000000 --- a/google/ads/googleads/v8/services/campaign_bid_modifier_service.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign_bid_modifier.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBidModifierServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign Bid Modifier service. - -// Service to manage campaign bid modifiers. -service CampaignBidModifierService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign bid modifier in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignBidModifier(GetCampaignBidModifierRequest) returns (google.ads.googleads.v8.resources.CampaignBidModifier) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignBidModifiers/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign bid modifiers. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ContextError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCampaignBidModifiers(MutateCampaignBidModifiersRequest) returns (MutateCampaignBidModifiersResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignBidModifiers:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignBidModifierService.GetCampaignBidModifier][google.ads.googleads.v8.services.CampaignBidModifierService.GetCampaignBidModifier]. -message GetCampaignBidModifierRequest { - // Required. The resource name of the campaign bid modifier to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBidModifier" - } - ]; -} - -// Request message for -// [CampaignBidModifierService.MutateCampaignBidModifiers][google.ads.googleads.v8.services.CampaignBidModifierService.MutateCampaignBidModifiers]. -message MutateCampaignBidModifiersRequest { - // Required. ID of the customer whose campaign bid modifiers are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual campaign bid modifiers. - repeated CampaignBidModifierOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on a campaign bid modifier. -message CampaignBidModifierOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign bid - // modifier. - google.ads.googleads.v8.resources.CampaignBidModifier create = 1; - - // Update operation: The campaign bid modifier is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.CampaignBidModifier update = 2; - - // Remove operation: A resource name for the removed campaign bid modifier - // is expected, in this format: - // - // `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for campaign bid modifiers mutate. -message MutateCampaignBidModifiersResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignBidModifierResult results = 2; -} - -// The result for the criterion mutate. -message MutateCampaignBidModifierResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CampaignBidModifier campaign_bid_modifier = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_budget_service.proto b/google/ads/googleads/v8/services/campaign_budget_service.proto deleted file mode 100644 index 11462c56d..000000000 --- a/google/ads/googleads/v8/services/campaign_budget_service.proto +++ /dev/null @@ -1,167 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign_budget.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignBudgetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign Budget service. - -// Service to manage campaign budgets. -service CampaignBudgetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Campaign Budget in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignBudget(GetCampaignBudgetRequest) returns (google.ads.googleads.v8.resources.CampaignBudget) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignBudgets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign budgets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignBudgetError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [OperationAccessDeniedError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [StringLengthError]() - rpc MutateCampaignBudgets(MutateCampaignBudgetsRequest) returns (MutateCampaignBudgetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignBudgets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignBudgetService.GetCampaignBudget][google.ads.googleads.v8.services.CampaignBudgetService.GetCampaignBudget]. -message GetCampaignBudgetRequest { - // Required. The resource name of the campaign budget to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignBudget" - } - ]; -} - -// Request message for [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual campaign budgets. - repeated CampaignBudgetOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign budget. -message CampaignBudgetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new budget. - google.ads.googleads.v8.resources.CampaignBudget create = 1; - - // Update operation: The campaign budget is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.CampaignBudget update = 2; - - // Remove operation: A resource name for the removed budget is expected, in - // this format: - // - // `customers/{customer_id}/campaignBudgets/{budget_id}` - string remove = 3; - } -} - -// Response message for campaign budget mutate. -message MutateCampaignBudgetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignBudgetResult results = 2; -} - -// The result for the campaign budget mutate. -message MutateCampaignBudgetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CampaignBudget campaign_budget = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_criterion_service.proto b/google/ads/googleads/v8/services/campaign_criterion_service.proto deleted file mode 100644 index d2c5a4f63..000000000 --- a/google/ads/googleads/v8/services/campaign_criterion_service.proto +++ /dev/null @@ -1,178 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign Criterion service. - -// Service to manage campaign criteria. -service CampaignCriterionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested criterion in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignCriterion(GetCampaignCriterionRequest) returns (google.ads.googleads.v8.resources.CampaignCriterion) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignCriteria/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes criteria. Operation statuses are returned. - // - // List of thrown errors: - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignCriterionError]() - // [CollectionSizeError]() - // [ContextError]() - // [CriterionError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RegionCodeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCampaignCriteria(MutateCampaignCriteriaRequest) returns (MutateCampaignCriteriaResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignCriteria:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignCriterionService.GetCampaignCriterion][google.ads.googleads.v8.services.CampaignCriterionService.GetCampaignCriterion]. -message GetCampaignCriterionRequest { - // Required. The resource name of the criterion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterion" - } - ]; -} - -// Request message for [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual criteria. - repeated CampaignCriterionOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign criterion. -message CampaignCriterionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v8.resources.CampaignCriterion create = 1; - - // Update operation: The criterion is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.CampaignCriterion update = 2; - - // Remove operation: A resource name for the removed criterion is expected, - // in this format: - // - // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for campaign criterion mutate. -message MutateCampaignCriteriaResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignCriterionResult results = 2; -} - -// The result for the criterion mutate. -message MutateCampaignCriterionResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CampaignCriterion campaign_criterion = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_criterion_simulation_service.proto b/google/ads/googleads/v8/services/campaign_criterion_simulation_service.proto deleted file mode 100644 index 7984de6d9..000000000 --- a/google/ads/googleads/v8/services/campaign_criterion_simulation_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/campaign_criterion_simulation.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignCriterionSimulationServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CampaignCriterionSimulation service. - -// Service to fetch campaign criterion simulations. -service CampaignCriterionSimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign criterion simulation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignCriterionSimulation(GetCampaignCriterionSimulationRequest) returns (google.ads.googleads.v8.resources.CampaignCriterionSimulation) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignCriterionSimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [CampaignCriterionSimulationService.GetCampaignCriterionSimulation][google.ads.googleads.v8.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation]. -message GetCampaignCriterionSimulationRequest { - // Required. The resource name of the campaign criterion simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignCriterionSimulation" - } - ]; -} diff --git a/google/ads/googleads/v8/services/campaign_draft_service.proto b/google/ads/googleads/v8/services/campaign_draft_service.proto deleted file mode 100644 index d2146b521..000000000 --- a/google/ads/googleads/v8/services/campaign_draft_service.proto +++ /dev/null @@ -1,254 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign_draft.proto"; -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/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignDraftServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign Draft service. - -// Service to manage campaign drafts. -service CampaignDraftService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign draft in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignDraft(GetCampaignDraftRequest) returns (google.ads.googleads.v8.resources.CampaignDraft) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignDrafts/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign drafts. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignDraftError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCampaignDrafts(MutateCampaignDraftsRequest) returns (MutateCampaignDraftsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignDrafts:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Promotes the changes in a draft back to the base campaign. - // - // This method returns a Long Running Operation (LRO) indicating if the - // Promote is done. Use [Operations.GetOperation] to poll the LRO until it - // 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.v8.services.CampaignDraftService.ListCampaignDraftAsyncErrors] to view the list of - // error reasons. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignDraftError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc PromoteCampaignDraft(PromoteCampaignDraftRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v8/{campaign_draft=customers/*/campaignDrafts/*}:promote" - body: "*" - }; - option (google.api.method_signature) = "campaign_draft"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "google.protobuf.Empty" - }; - } - - // Returns all errors that occurred during CampaignDraft promote. Throws an - // error if called before campaign draft is promoted. - // Supports standard list paging. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListCampaignDraftAsyncErrors(ListCampaignDraftAsyncErrorsRequest) returns (ListCampaignDraftAsyncErrorsResponse) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CampaignDraftService.GetCampaignDraft][google.ads.googleads.v8.services.CampaignDraftService.GetCampaignDraft]. -message GetCampaignDraftRequest { - // Required. The resource name of the campaign draft to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignDraft" - } - ]; -} - -// Request message for [CampaignDraftService.MutateCampaignDrafts][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual campaign drafts. - repeated CampaignDraftOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// Request message for [CampaignDraftService.PromoteCampaignDraft][google.ads.googleads.v8.services.CampaignDraftService.PromoteCampaignDraft]. -message PromoteCampaignDraftRequest { - // Required. The resource name of the campaign draft to promote. - string campaign_draft = 1 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but no Long Running Operation is created. - // Only errors are returned. - bool validate_only = 2; -} - -// A single operation (create, update, remove) on a campaign draft. -message CampaignDraftOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign - // draft. - google.ads.googleads.v8.resources.CampaignDraft create = 1; - - // Update operation: The campaign draft is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.CampaignDraft update = 2; - - // Remove operation: The campaign draft is expected to have a valid - // resource name, in this format: - // - // `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}` - string remove = 3; - } -} - -// Response message for campaign draft mutate. -message MutateCampaignDraftsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignDraftResult results = 2; -} - -// The result for the campaign draft mutate. -message MutateCampaignDraftResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CampaignDraft campaign_draft = 2; -} - -// Request message for [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v8.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. -message ListCampaignDraftAsyncErrorsRequest { - // Required. The name of the campaign draft from which to retrieve the async errors. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignDraft" - } - ]; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. Use the value obtained from - // `next_page_token` in the previous response in order to request - // the next page of results. - string page_token = 2; - - // Number of elements to retrieve in a single page. - // When a page request is too large, the server may decide to - // further limit the number of returned resources. - int32 page_size = 3; -} - -// Response message for [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v8.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. -message ListCampaignDraftAsyncErrorsResponse { - // Details of the errors when performing the asynchronous operation. - repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last - // page. - string next_page_token = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_experiment_service.proto b/google/ads/googleads/v8/services/campaign_experiment_service.proto deleted file mode 100644 index d631e84d2..000000000 --- a/google/ads/googleads/v8/services/campaign_experiment_service.proto +++ /dev/null @@ -1,382 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign_experiment.proto"; -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/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExperimentServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign Experiment service. - -// CampaignExperimentService manages the life cycle of campaign experiments. -// It is used to create new experiments from drafts, modify experiment -// properties, promote changes in an experiment back to its base campaign, -// graduate experiments into new stand-alone campaigns, and to remove an -// experiment. -// -// An experiment consists of two variants or arms - the base campaign and the -// experiment campaign, directing a fixed share of traffic to each arm. -// A campaign experiment is created from a draft of changes to the base campaign -// and will be a snapshot of changes in the draft at the time of creation. -service CampaignExperimentService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign experiment in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignExperiment(GetCampaignExperimentRequest) returns (google.ads.googleads.v8.resources.CampaignExperiment) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignExperiments/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates a campaign experiment based on a campaign draft. The draft campaign - // will be forked into a real campaign (called the experiment campaign) that - // will begin serving ads if successfully created. - // - // The campaign experiment is created immediately with status INITIALIZING. - // This method return a long running operation that tracks the forking of the - // draft campaign. If the forking fails, a list of errors can be retrieved - // using the ListCampaignExperimentAsyncErrors method. The operation's - // metadata will be a StringValue containing the resource name of the created - // campaign experiment. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignExperimentError]() - // [DatabaseError]() - // [DateError]() - // [DateRangeError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - rpc CreateCampaignExperiment(CreateCampaignExperimentRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignExperiments:create" - body: "*" - }; - option (google.api.method_signature) = "customer_id,campaign_experiment"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "google.ads.googleads.v8.services.CreateCampaignExperimentMetadata" - }; - } - - // Updates campaign experiments. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignExperimentError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCampaignExperiments(MutateCampaignExperimentsRequest) returns (MutateCampaignExperimentsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignExperiments:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Graduates a campaign experiment to a full campaign. The base and experiment - // campaigns will start running independently with their own budgets. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignExperimentError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc GraduateCampaignExperiment(GraduateCampaignExperimentRequest) returns (GraduateCampaignExperimentResponse) { - option (google.api.http) = { - post: "/v8/{campaign_experiment=customers/*/campaignExperiments/*}:graduate" - body: "*" - }; - option (google.api.method_signature) = "campaign_experiment,campaign_budget"; - } - - // Promotes the changes in a experiment campaign back to the base campaign. - // - // The campaign experiment is updated immediately with status PROMOTING. - // This method return a long running operation that tracks the promoting of - // the experiment campaign. If the promoting fails, a list of errors can be - // retrieved using the ListCampaignExperimentAsyncErrors method. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc PromoteCampaignExperiment(PromoteCampaignExperimentRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v8/{campaign_experiment=customers/*/campaignExperiments/*}:promote" - body: "*" - }; - option (google.api.method_signature) = "campaign_experiment"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "google.protobuf.Empty" - }; - } - - // Immediately ends a campaign experiment, changing the experiment's scheduled - // end date and without waiting for end of day. End date is updated to be the - // time of the request. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignExperimentError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc EndCampaignExperiment(EndCampaignExperimentRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - post: "/v8/{campaign_experiment=customers/*/campaignExperiments/*}:end" - body: "*" - }; - option (google.api.method_signature) = "campaign_experiment"; - } - - // Returns all errors that occurred during CampaignExperiment create or - // promote (whichever occurred last). - // Supports standard list paging. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListCampaignExperimentAsyncErrors(ListCampaignExperimentAsyncErrorsRequest) returns (ListCampaignExperimentAsyncErrorsResponse) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CampaignExperimentService.GetCampaignExperiment][google.ads.googleads.v8.services.CampaignExperimentService.GetCampaignExperiment]. -message GetCampaignExperimentRequest { - // Required. The resource name of the campaign experiment to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExperiment" - } - ]; -} - -// Request message for [CampaignExperimentService.MutateCampaignExperiments][google.ads.googleads.v8.services.CampaignExperimentService.MutateCampaignExperiments]. -message MutateCampaignExperimentsRequest { - // Required. The ID of the customer whose campaign experiments are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual campaign experiments. - repeated CampaignExperimentOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single update operation on a campaign experiment. -message CampaignExperimentOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Update operation: The campaign experiment is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.CampaignExperiment update = 1; - - // Remove operation: The campaign experiment is expected to have a valid - // resource name, in this format: - // - // `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}` - string remove = 2; - } -} - -// Response message for campaign experiment mutate. -message MutateCampaignExperimentsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignExperimentResult results = 2; -} - -// The result for the campaign experiment mutate. -message MutateCampaignExperimentResult { - // Returned for successful operations. - string resource_name = 1; - - // The mutated campaign experiment with only mutable fields after mutate. The - // field will only be returned when response_content_type is set to - // "MUTABLE_RESOURCE". - google.ads.googleads.v8.resources.CampaignExperiment campaign_experiment = 2; -} - -// Request message for [CampaignExperimentService.CreateCampaignExperiment][google.ads.googleads.v8.services.CampaignExperimentService.CreateCampaignExperiment]. -message CreateCampaignExperimentRequest { - // Required. The ID of the customer whose campaign experiment is being created. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The campaign experiment to be created. - google.ads.googleads.v8.resources.CampaignExperiment campaign_experiment = 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; -} - -// Message used as metadata returned in Long Running Operations for -// CreateCampaignExperimentRequest -message CreateCampaignExperimentMetadata { - // Resource name of campaign experiment created. - string campaign_experiment = 1; -} - -// Request message for [CampaignExperimentService.GraduateCampaignExperiment][google.ads.googleads.v8.services.CampaignExperimentService.GraduateCampaignExperiment]. -message GraduateCampaignExperimentRequest { - // Required. The resource name of the campaign experiment to graduate. - string campaign_experiment = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Resource name of the budget to attach to the campaign graduated from the - // experiment. - string campaign_budget = 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; -} - -// Response message for campaign experiment graduate. -message GraduateCampaignExperimentResponse { - // The resource name of the campaign from the graduated experiment. - // This campaign is the same one as CampaignExperiment.experiment_campaign. - string graduated_campaign = 1; -} - -// Request message for [CampaignExperimentService.PromoteCampaignExperiment][google.ads.googleads.v8.services.CampaignExperimentService.PromoteCampaignExperiment]. -message PromoteCampaignExperimentRequest { - // Required. The resource name of the campaign experiment to promote. - string campaign_experiment = 1 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but no Long Running Operation is created. - // Only errors are returned. - bool validate_only = 2; -} - -// Request message for [CampaignExperimentService.EndCampaignExperiment][google.ads.googleads.v8.services.CampaignExperimentService.EndCampaignExperiment]. -message EndCampaignExperimentRequest { - // Required. The resource name of the campaign experiment to end. - string campaign_experiment = 1 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 2; -} - -// Request message for -// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v8.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors]. -message ListCampaignExperimentAsyncErrorsRequest { - // Required. The name of the campaign experiment from which to retrieve the async - // errors. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExperiment" - } - ]; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. Use the value obtained from - // `next_page_token` in the previous response in order to request - // the next page of results. - string page_token = 2; - - // Number of elements to retrieve in a single page. - // When a page request is too large, the server may decide to - // further limit the number of returned resources. - int32 page_size = 3; -} - -// Response message for -// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v8.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors]. -message ListCampaignExperimentAsyncErrorsResponse { - // Details of the errors when performing the asynchronous operation. - repeated google.rpc.Status errors = 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. `next_page_token` is not returned for the last - // page. - string next_page_token = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_extension_setting_service.proto b/google/ads/googleads/v8/services/campaign_extension_setting_service.proto deleted file mode 100644 index b794cbd79..000000000 --- a/google/ads/googleads/v8/services/campaign_extension_setting_service.proto +++ /dev/null @@ -1,182 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign_extension_setting.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CampaignExtensionSetting service. - -// Service to manage campaign extension settings. -service CampaignExtensionSettingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign extension setting in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignExtensionSetting(GetCampaignExtensionSettingRequest) returns (google.ads.googleads.v8.resources.CampaignExtensionSetting) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignExtensionSettings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign extension settings. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [ExtensionSettingError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateCampaignExtensionSettings(MutateCampaignExtensionSettingsRequest) returns (MutateCampaignExtensionSettingsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignExtensionSettings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [CampaignExtensionSettingService.GetCampaignExtensionSetting][google.ads.googleads.v8.services.CampaignExtensionSettingService.GetCampaignExtensionSetting]. -message GetCampaignExtensionSettingRequest { - // Required. The resource name of the campaign extension setting to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignExtensionSetting" - } - ]; -} - -// Request message for -// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v8.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings]. -message MutateCampaignExtensionSettingsRequest { - // Required. The ID of the customer whose campaign extension settings are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual campaign extension - // settings. - repeated CampaignExtensionSettingOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign extension setting. -message CampaignExtensionSettingOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign - // extension setting. - google.ads.googleads.v8.resources.CampaignExtensionSetting create = 1; - - // Update operation: The campaign extension setting is expected to have a - // valid resource name. - google.ads.googleads.v8.resources.CampaignExtensionSetting update = 2; - - // Remove operation: A resource name for the removed campaign extension - // setting is expected, in this format: - // - // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}` - string remove = 3; - } -} - -// Response message for a campaign extension setting mutate. -message MutateCampaignExtensionSettingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignExtensionSettingResult results = 2; -} - -// The result for the campaign extension setting mutate. -message MutateCampaignExtensionSettingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CampaignExtensionSetting campaign_extension_setting = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_feed_service.proto b/google/ads/googleads/v8/services/campaign_feed_service.proto deleted file mode 100644 index 72b1c0c80..000000000 --- a/google/ads/googleads/v8/services/campaign_feed_service.proto +++ /dev/null @@ -1,173 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign_feed.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignFeedServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CampaignFeed service. - -// Service to manage campaign feeds. -service CampaignFeedService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign feed in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignFeed(GetCampaignFeedRequest) returns (google.ads.googleads.v8.resources.CampaignFeed) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignFeeds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaign feeds. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignFeedError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCampaignFeeds(MutateCampaignFeedsRequest) returns (MutateCampaignFeedsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignFeeds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignFeedService.GetCampaignFeed][google.ads.googleads.v8.services.CampaignFeedService.GetCampaignFeed]. -message GetCampaignFeedRequest { - // Required. The resource name of the campaign feed to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignFeed" - } - ]; -} - -// Request message for [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual campaign feeds. - repeated CampaignFeedOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign feed. -message CampaignFeedOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign feed. - google.ads.googleads.v8.resources.CampaignFeed create = 1; - - // Update operation: The campaign feed is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.CampaignFeed update = 2; - - // Remove operation: A resource name for the removed campaign feed is - // expected, in this format: - // - // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}` - string remove = 3; - } -} - -// Response message for a campaign feed mutate. -message MutateCampaignFeedsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignFeedResult results = 2; -} - -// The result for the campaign feed mutate. -message MutateCampaignFeedResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CampaignFeed campaign_feed = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_label_service.proto b/google/ads/googleads/v8/services/campaign_label_service.proto deleted file mode 100644 index b9b7d15b4..000000000 --- a/google/ads/googleads/v8/services/campaign_label_service.proto +++ /dev/null @@ -1,144 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignLabelServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign Label service. - -// Service to manage labels on campaigns. -service CampaignLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign-label relationship in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignLabel(GetCampaignLabelRequest) returns (google.ads.googleads.v8.resources.CampaignLabel) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes campaign-label relationships. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCampaignLabels(MutateCampaignLabelsRequest) returns (MutateCampaignLabelsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignLabelService.GetCampaignLabel][google.ads.googleads.v8.services.CampaignLabelService.GetCampaignLabel]. -message GetCampaignLabelRequest { - // Required. The resource name of the campaign-label relationship to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignLabel" - } - ]; -} - -// Request message for [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v8.services.CampaignLabelService.MutateCampaignLabels]. -message MutateCampaignLabelsRequest { - // Required. ID of the customer whose campaign-label relationships are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on campaign-label relationships. - repeated CampaignLabelOperation 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; -} - -// A single operation (create, remove) on a campaign-label relationship. -message CampaignLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign-label - // relationship. - google.ads.googleads.v8.resources.CampaignLabel create = 1; - - // Remove operation: A resource name for the campaign-label relationship - // being removed, in this format: - // - // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}` - string remove = 2; - } -} - -// Response message for a campaign labels mutate. -message MutateCampaignLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignLabelResult results = 2; -} - -// The result for a campaign label mutate. -message MutateCampaignLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/campaign_service.proto b/google/ads/googleads/v8/services/campaign_service.proto deleted file mode 100644 index 61f557c40..000000000 --- a/google/ads/googleads/v8/services/campaign_service.proto +++ /dev/null @@ -1,183 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/campaign.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign service. - -// Service to manage campaigns. -service CampaignService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaign(GetCampaignRequest) returns (google.ads.googleads.v8.resources.Campaign) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaigns/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes campaigns. Operation statuses are returned. - // - // List of thrown errors: - // [AdxError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [BiddingStrategyError]() - // [CampaignBudgetError]() - // [CampaignError]() - // [ContextError]() - // [DatabaseError]() - // [DateError]() - // [DateRangeError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotAllowlistedError]() - // [NotEmptyError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RegionCodeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SettingError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateCampaigns(MutateCampaignsRequest) returns (MutateCampaignsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaigns:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignService.GetCampaign][google.ads.googleads.v8.services.CampaignService.GetCampaign]. -message GetCampaignRequest { - // Required. The resource name of the campaign to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; -} - -// Request message for [CampaignService.MutateCampaigns][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual campaigns. - repeated CampaignOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a campaign. -message CampaignOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign. - google.ads.googleads.v8.resources.Campaign create = 1; - - // Update operation: The campaign is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.Campaign update = 2; - - // Remove operation: A resource name for the removed campaign is - // expected, in this format: - // - // `customers/{customer_id}/campaigns/{campaign_id}` - string remove = 3; - } -} - -// Response message for campaign mutate. -message MutateCampaignsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignResult results = 2; -} - -// The result for the campaign mutate. -message MutateCampaignResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.Campaign campaign = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_shared_set_service.proto b/google/ads/googleads/v8/services/campaign_shared_set_service.proto deleted file mode 100644 index 411bc1ea9..000000000 --- a/google/ads/googleads/v8/services/campaign_shared_set_service.proto +++ /dev/null @@ -1,164 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSharedSetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Campaign Shared Set service. - -// Service to manage campaign shared sets. -service CampaignSharedSetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign shared set in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCampaignSharedSet(GetCampaignSharedSetRequest) returns (google.ads.googleads.v8.resources.CampaignSharedSet) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignSharedSets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes campaign shared sets. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CampaignSharedSetError]() - // [ContextError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCampaignSharedSets(MutateCampaignSharedSetsRequest) returns (MutateCampaignSharedSetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/campaignSharedSets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CampaignSharedSetService.GetCampaignSharedSet][google.ads.googleads.v8.services.CampaignSharedSetService.GetCampaignSharedSet]. -message GetCampaignSharedSetRequest { - // Required. The resource name of the campaign shared set to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSharedSet" - } - ]; -} - -// Request message for [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v8.services.CampaignSharedSetService.MutateCampaignSharedSets]. -message MutateCampaignSharedSetsRequest { - // Required. The ID of the customer whose campaign shared sets are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual campaign shared sets. - repeated CampaignSharedSetOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove) on an campaign shared set. -message CampaignSharedSetOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new campaign - // shared set. - google.ads.googleads.v8.resources.CampaignSharedSet create = 1; - - // Remove operation: A resource name for the removed campaign shared set is - // expected, in this format: - // - // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}` - string remove = 3; - } -} - -// Response message for a campaign shared set mutate. -message MutateCampaignSharedSetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCampaignSharedSetResult results = 2; -} - -// The result for the campaign shared set mutate. -message MutateCampaignSharedSetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CampaignSharedSet campaign_shared_set = 2; -} diff --git a/google/ads/googleads/v8/services/campaign_simulation_service.proto b/google/ads/googleads/v8/services/campaign_simulation_service.proto deleted file mode 100644 index a719d0faf..000000000 --- a/google/ads/googleads/v8/services/campaign_simulation_service.proto +++ /dev/null @@ -1,60 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/campaign_simulation.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CampaignSimulationServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CampaignSimulation service. - -// Service to fetch campaign simulations. -service CampaignSimulationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested campaign simulation in full detail. - rpc GetCampaignSimulation(GetCampaignSimulationRequest) returns (google.ads.googleads.v8.resources.CampaignSimulation) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/campaignSimulations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [CampaignSimulationService.GetCampaignSimulation][google.ads.googleads.v8.services.CampaignSimulationService.GetCampaignSimulation]. -message GetCampaignSimulationRequest { - // Required. The resource name of the campaign simulation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CampaignSimulation" - } - ]; -} diff --git a/google/ads/googleads/v8/services/carrier_constant_service.proto b/google/ads/googleads/v8/services/carrier_constant_service.proto deleted file mode 100644 index 79120af02..000000000 --- a/google/ads/googleads/v8/services/carrier_constant_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/carrier_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CarrierConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the carrier constant service. - -// Service to fetch carrier constants. -service CarrierConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested carrier constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCarrierConstant(GetCarrierConstantRequest) returns (google.ads.googleads.v8.resources.CarrierConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=carrierConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CarrierConstantService.GetCarrierConstant][google.ads.googleads.v8.services.CarrierConstantService.GetCarrierConstant]. -message GetCarrierConstantRequest { - // Required. Resource name of the carrier constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CarrierConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/services/change_status_service.proto b/google/ads/googleads/v8/services/change_status_service.proto deleted file mode 100644 index 23da01fda..000000000 --- a/google/ads/googleads/v8/services/change_status_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/change_status.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ChangeStatusServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Change Status service. - -// Service to fetch change statuses. -service ChangeStatusService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested change status in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetChangeStatus(GetChangeStatusRequest) returns (google.ads.googleads.v8.resources.ChangeStatus) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/changeStatus/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for '[ChangeStatusService.GetChangeStatus][google.ads.googleads.v8.services.ChangeStatusService.GetChangeStatus]'. -message GetChangeStatusRequest { - // Required. The resource name of the change status to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ChangeStatus" - } - ]; -} diff --git a/google/ads/googleads/v8/services/click_view_service.proto b/google/ads/googleads/v8/services/click_view_service.proto deleted file mode 100644 index 5d4af7427..000000000 --- a/google/ads/googleads/v8/services/click_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/click_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ClickViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the ClickView service. - -// Service to fetch click views. -service ClickViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested click view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetClickView(GetClickViewRequest) returns (google.ads.googleads.v8.resources.ClickView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/clickViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [ClickViewService.GetClickView][google.ads.googleads.v8.services.ClickViewService.GetClickView]. -message GetClickViewRequest { - // Required. The resource name of the click view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ClickView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/combined_audience_service.proto b/google/ads/googleads/v8/services/combined_audience_service.proto deleted file mode 100644 index 56f712d43..000000000 --- a/google/ads/googleads/v8/services/combined_audience_service.proto +++ /dev/null @@ -1,69 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/combined_audience.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CombinedAudienceServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Combined Audience service. - -// Service to manage combined audiences. This service can be used to list all -// your combined audiences with metadata, but won't show the structure and -// components of the combined audience. -service CombinedAudienceService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested combined audience in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCombinedAudience(GetCombinedAudienceRequest) returns (google.ads.googleads.v8.resources.CombinedAudience) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/combinedAudiences/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CombinedAudienceService.GetCombinedAudience][google.ads.googleads.v8.services.CombinedAudienceService.GetCombinedAudience]. -message GetCombinedAudienceRequest { - // Required. The resource name of the combined audience to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CombinedAudience" - } - ]; -} diff --git a/google/ads/googleads/v8/services/conversion_action_service.proto b/google/ads/googleads/v8/services/conversion_action_service.proto deleted file mode 100644 index 006793f5c..000000000 --- a/google/ads/googleads/v8/services/conversion_action_service.proto +++ /dev/null @@ -1,167 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/conversion_action.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionActionServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Conversion Action service. - -// Service to manage conversion actions. -service ConversionActionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested conversion action. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetConversionAction(GetConversionActionRequest) returns (google.ads.googleads.v8.resources.ConversionAction) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/conversionActions/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates or removes conversion actions. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ConversionActionError]() - // [CurrencyCodeError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [StringLengthError]() - rpc MutateConversionActions(MutateConversionActionsRequest) returns (MutateConversionActionsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/conversionActions:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [ConversionActionService.GetConversionAction][google.ads.googleads.v8.services.ConversionActionService.GetConversionAction]. -message GetConversionActionRequest { - // Required. The resource name of the conversion action to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionAction" - } - ]; -} - -// Request message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v8.services.ConversionActionService.MutateConversionActions]. -message MutateConversionActionsRequest { - // Required. The ID of the customer whose conversion actions are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual conversion actions. - repeated ConversionActionOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a conversion action. -message ConversionActionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new conversion - // action. - google.ads.googleads.v8.resources.ConversionAction create = 1; - - // Update operation: The conversion action is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.ConversionAction update = 2; - - // Remove operation: A resource name for the removed conversion action is - // expected, in this format: - // - // `customers/{customer_id}/conversionActions/{conversion_action_id}` - string remove = 3; - } -} - -// Response message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v8.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 - // operations. If any errors occur outside the operations (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateConversionActionResult results = 2; -} - -// The result for the conversion action mutate. -message MutateConversionActionResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.ConversionAction conversion_action = 2; -} diff --git a/google/ads/googleads/v8/services/conversion_adjustment_upload_service.proto b/google/ads/googleads/v8/services/conversion_adjustment_upload_service.proto deleted file mode 100644 index d046f8062..000000000 --- a/google/ads/googleads/v8/services/conversion_adjustment_upload_service.proto +++ /dev/null @@ -1,203 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/offline_user_data.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionAdjustmentUploadServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to upload conversion adjustments. -service ConversionAdjustmentUploadService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Processes the given conversion adjustments. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [PartialFailureError]() - // [QuotaError]() - // [RequestError]() - rpc UploadConversionAdjustments(UploadConversionAdjustmentsRequest) returns (UploadConversionAdjustmentsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:uploadConversionAdjustments" - body: "*" - }; - option (google.api.method_signature) = "customer_id,conversion_adjustments,partial_failure"; - } -} - -// Request message for -// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v8.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. -message UploadConversionAdjustmentsRequest { - // Required. The ID of the customer performing the upload. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The conversion adjustments that are being uploaded. - repeated ConversionAdjustment conversion_adjustments = 2 [(google.api.field_behavior) = REQUIRED]; - - // 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. This should always be - // set to true. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// Response message for -// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v8.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 - // errors occur outside the adjustments (e.g. auth errors), we return an RPC - // level error. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - google.rpc.Status partial_failure_error = 1; - - // Returned for successfully processed conversion adjustments. Proto will be - // empty for rows that received an error. Results are not returned when - // validate_only is true. - repeated ConversionAdjustmentResult results = 2; -} - -// A conversion adjustment. -message ConversionAdjustment { - // Resource name of the conversion action associated with this conversion - // adjustment. Note: Although this resource name consists of a customer id and - // a conversion action id, validation will ignore the customer id and use the - // conversion action id as the sole identifier of the conversion action. - optional string conversion_action = 8; - - // The date time at which the adjustment occurred. Must be after the - // conversion_date_time. The timezone must be specified. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string adjustment_date_time = 9; - - // The adjustment type. - google.ads.googleads.v8.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5; - - // Information needed to restate the conversion's value. - // Required for restatements. Should not be supplied for retractions. An error - // will be returned if provided for a retraction. - // NOTE: If you want to upload a second restatement with a different adjusted - // value, it must have a new, more recent, adjustment occurrence time. - // Otherwise, it will be treated as a duplicate of the previous restatement - // and ignored. - RestatementValue restatement_value = 6; - - // The user identifiers to enhance the original conversion. - // ConversionAdjustmentUploadService only accepts user identifiers in - // enhancements. The maximum number of user identifiers for each - // enhancement is 5. - repeated google.ads.googleads.v8.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. - // Example, "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X)". User - // agent can only be specified in enhancements with user identifiers. - optional string user_agent = 11; - - // Identifies the conversion to be adjusted. - oneof conversion_identifier { - // Uniquely identifies a conversion that was reported without an order ID - // specified. - GclidDateTimePair gclid_date_time_pair = 1; - - // The order ID of the conversion to be adjusted. If the conversion was - // reported with an order ID specified, that order ID must be used as the - // identifier here. The order ID is required for enhancements. - string order_id = 7; - } -} - -// Contains information needed to restate a conversion's value. -message RestatementValue { - // The restated conversion value. This is the value of the conversion after - // restatement. For example, to change the value of a conversion from 100 to - // 70, an adjusted value of 70 should be reported. - // NOTE: If you want to upload a second restatement with a different adjusted - // value, it must have a new, more recent, adjustment occurrence time. - // Otherwise, it will be treated as a duplicate of the previous restatement - // and ignored. - optional double adjusted_value = 3; - - // The currency of the restated value. If not provided, then the default - // currency from the conversion action is used, and if that is not set then - // the account currency is used. This is the ISO 4217 3-character currency - // code e.g. USD or EUR. - optional string currency_code = 4; -} - -// Uniquely identifies a conversion that was reported without an order ID -// specified. -message GclidDateTimePair { - // Google click ID (gclid) associated with the original conversion for this - // adjustment. - optional string gclid = 3; - - // The date time at which the original conversion for this adjustment - // occurred. The timezone must be specified. The format is "yyyy-mm-dd - // hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string conversion_date_time = 4; -} - -// Information identifying a successfully processed ConversionAdjustment. -message ConversionAdjustmentResult { - // Resource name of the conversion action associated with this conversion - // adjustment. - optional string conversion_action = 7; - - // The date time at which the adjustment occurred. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string adjustment_date_time = 8; - - // The adjustment type. - google.ads.googleads.v8.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5; - - // Identifies the conversion that was adjusted. - oneof conversion_identifier { - // Uniquely identifies a conversion that was reported without an order ID - // specified. - GclidDateTimePair gclid_date_time_pair = 1; - - // The order ID of the conversion that was adjusted. - string order_id = 6; - } -} diff --git a/google/ads/googleads/v8/services/conversion_custom_variable_service.proto b/google/ads/googleads/v8/services/conversion_custom_variable_service.proto deleted file mode 100644 index b503e59be..000000000 --- a/google/ads/googleads/v8/services/conversion_custom_variable_service.proto +++ /dev/null @@ -1,158 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/conversion_custom_variable.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionCustomVariableServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Conversion Custom Variable service. - -// Service to manage conversion custom variables. -service ConversionCustomVariableService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested conversion custom variable. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetConversionCustomVariable(GetConversionCustomVariableRequest) returns (google.ads.googleads.v8.resources.ConversionCustomVariable) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/conversionCustomVariables/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates conversion custom variables. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ConversionCustomVariableError]() - // [DatabaseError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateConversionCustomVariables(MutateConversionCustomVariablesRequest) returns (MutateConversionCustomVariablesResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/conversionCustomVariables:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [ConversionCustomVariableService.GetConversionCustomVariable][google.ads.googleads.v8.services.ConversionCustomVariableService.GetConversionCustomVariable]. -message GetConversionCustomVariableRequest { - // Required. The resource name of the conversion custom variable to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionCustomVariable" - } - ]; -} - -// Request message for -// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v8.services.ConversionCustomVariableService.MutateConversionCustomVariables]. -message MutateConversionCustomVariablesRequest { - // Required. The ID of the customer whose conversion custom variables are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual conversion custom - // variables. - repeated ConversionCustomVariableOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update) on a conversion custom variable. -message ConversionCustomVariableOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new conversion - // custom variable. - google.ads.googleads.v8.resources.ConversionCustomVariable create = 1; - - // Update operation: The conversion custom variable is expected to have a - // valid resource name. - google.ads.googleads.v8.resources.ConversionCustomVariable update = 2; - } -} - -// Response message for -// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v8.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 - // operations. If any errors occur outside the operations (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateConversionCustomVariableResult results = 2; -} - -// The result for the conversion custom variable mutate. -message MutateConversionCustomVariableResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.ConversionCustomVariable conversion_custom_variable = 2; -} diff --git a/google/ads/googleads/v8/services/conversion_upload_service.proto b/google/ads/googleads/v8/services/conversion_upload_service.proto deleted file mode 100644 index c38f77cca..000000000 --- a/google/ads/googleads/v8/services/conversion_upload_service.proto +++ /dev/null @@ -1,327 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/offline_user_data.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionUploadServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to upload conversions. -service ConversionUploadService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Processes the given click conversions. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ConversionUploadError]() - // [HeaderError]() - // [InternalError]() - // [PartialFailureError]() - // [QuotaError]() - // [RequestError]() - rpc UploadClickConversions(UploadClickConversionsRequest) returns (UploadClickConversionsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:uploadClickConversions" - body: "*" - }; - option (google.api.method_signature) = "customer_id,conversions,partial_failure"; - } - - // Processes the given call conversions. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [PartialFailureError]() - // [QuotaError]() - // [RequestError]() - rpc UploadCallConversions(UploadCallConversionsRequest) returns (UploadCallConversionsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:uploadCallConversions" - body: "*" - }; - option (google.api.method_signature) = "customer_id,conversions,partial_failure"; - } -} - -// Request message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v8.services.ConversionUploadService.UploadClickConversions]. -message UploadClickConversionsRequest { - // Required. The ID of the customer performing the upload. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The conversions that are being uploaded. - repeated ClickConversion conversions = 2 [(google.api.field_behavior) = REQUIRED]; - - // 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. - // This should always be set to true. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// Response message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v8.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 - // outside the conversions (e.g. auth errors), we return an RPC level error. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - google.rpc.Status partial_failure_error = 1; - - // Returned for successfully processed conversions. Proto will be empty for - // rows that received an error. Results are not returned when validate_only is - // true. - repeated ClickConversionResult results = 2; -} - -// Request message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v8.services.ConversionUploadService.UploadCallConversions]. -message UploadCallConversionsRequest { - // Required. The ID of the customer performing the upload. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The conversions that are being uploaded. - repeated CallConversion conversions = 2 [(google.api.field_behavior) = REQUIRED]; - - // 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. - // This should always be set to true. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - bool partial_failure = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// Response message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v8.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 - // outside the conversions (e.g. auth errors), we return an RPC level error. - // See - // https://developers.google.com/google-ads/api/docs/best-practices/partial-failures - // for more information about partial failure. - google.rpc.Status partial_failure_error = 1; - - // Returned for successfully processed conversions. Proto will be empty for - // rows that received an error. Results are not returned when validate_only is - // true. - repeated CallConversionResult results = 2; -} - -// A click conversion. -message ClickConversion { - // The Google click ID (gclid) associated with this conversion. - optional string gclid = 9; - - // Resource name of the conversion action associated with this conversion. - // Note: Although this resource name consists of a customer id and a - // conversion action id, validation will ignore the customer id and use the - // conversion action id as the sole identifier of the conversion action. - optional string conversion_action = 10; - - // The date time at which the conversion occurred. Must be after - // the click time. The timezone must be specified. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. “2019-01-01 12:32:45-08:00”. - optional string conversion_date_time = 11; - - // The value of the conversion for the advertiser. - optional double conversion_value = 12; - - // Currency associated with the conversion value. This is the ISO 4217 - // 3-character currency code. For example: USD, EUR. - optional string currency_code = 13; - - // The order ID associated with the conversion. An order id can only be used - // for one conversion per conversion action. - optional string order_id = 14; - - // Additional data about externally attributed conversions. This field - // is required for conversions with an externally attributed conversion - // action, but should not be set otherwise. - ExternalAttributionData external_attribution_data = 7; - - // The custom variables associated with this conversion. - repeated CustomVariable custom_variables = 15; - - // The cart data associated with this conversion. - CartData cart_data = 16; - - // 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.v8.common.UserIdentifier user_identifiers = 17; -} - -// A call conversion. -message CallConversion { - // The caller id from which this call was placed. Caller id is expected to be - // in E.164 format with preceding '+' sign. e.g. "+16502531234". - optional string caller_id = 7; - - // The date time at which the call occurred. The timezone must be specified. - // The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", - // e.g. "2019-01-01 12:32:45-08:00". - optional string call_start_date_time = 8; - - // Resource name of the conversion action associated with this conversion. - // Note: Although this resource name consists of a customer id and a - // conversion action id, validation will ignore the customer id and use the - // conversion action id as the sole identifier of the conversion action. - optional string conversion_action = 9; - - // The date time at which the conversion occurred. Must be after the call - // time. The timezone must be specified. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string conversion_date_time = 10; - - // The value of the conversion for the advertiser. - optional double conversion_value = 11; - - // Currency associated with the conversion value. This is the ISO 4217 - // 3-character currency code. For example: USD, EUR. - optional string currency_code = 12; - - // The custom variables associated with this conversion. - repeated CustomVariable custom_variables = 13; -} - -// Contains additional information about externally attributed conversions. -message ExternalAttributionData { - // Represents the fraction of the conversion that is attributed to the - // Google Ads click. - optional double external_attribution_credit = 3; - - // Specifies the attribution model name. - optional string external_attribution_model = 4; -} - -// Identifying information for a successfully processed ClickConversion. -message ClickConversionResult { - // The Google Click ID (gclid) associated with this conversion. - optional string gclid = 4; - - // Resource name of the conversion action associated with this conversion. - optional string conversion_action = 5; - - // The date time at which the conversion occurred. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. “2019-01-01 12:32:45-08:00”. - optional string conversion_date_time = 6; - - // 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.v8.common.UserIdentifier user_identifiers = 7; -} - -// Identifying information for a successfully processed CallConversionUpload. -message CallConversionResult { - // The caller id from which this call was placed. Caller id is expected to be - // in E.164 format with preceding '+' sign. - optional string caller_id = 5; - - // The date time at which the call occurred. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string call_start_date_time = 6; - - // Resource name of the conversion action associated with this conversion. - optional string conversion_action = 7; - - // The date time at which the conversion occurred. The format is - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string conversion_date_time = 8; -} - -// A custom variable. -message CustomVariable { - // Resource name of the custom variable associated with this conversion. - // Note: Although this resource name consists of a customer id and a - // conversion custom variable id, validation will ignore the customer id and - // use the conversion custom variable id as the sole identifier of the - // conversion custom variable. - string conversion_custom_variable = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionCustomVariable" - }]; - - // The value string of this custom variable. - // The value of the custom variable should not contain private customer data, - // such as email addresses or phone numbers. - string value = 2; -} - -// Contains additional information about cart data. -message CartData { - // Contains data of the items purchased. - message Item { - // The shopping id of the item. Must be equal to the Merchant Center product - // identifier. - string product_id = 1; - - // Number of items sold. - int32 quantity = 2; - - // Unit price excluding tax, shipping, and any transaction - // level discounts. The currency code is the same as that in the - // ClickConversion message. - double unit_price = 3; - } - - // The Merchant Center ID where the items are uploaded. - string merchant_id = 1; - - // The country code associated with the feed where the items are uploaded. - string feed_country_code = 2; - - // The language code associated with the feed where the items are uploaded. - string feed_language_code = 3; - - // Sum of all transaction level discounts, such as free shipping and - // coupon discounts for the whole cart. The currency code is the same - // as that in the ClickConversion message. - double local_transaction_cost = 4; - - // Data of the items purchased. - repeated Item items = 5; -} diff --git a/google/ads/googleads/v8/services/conversion_value_rule_service.proto b/google/ads/googleads/v8/services/conversion_value_rule_service.proto deleted file mode 100644 index 83509163b..000000000 --- a/google/ads/googleads/v8/services/conversion_value_rule_service.proto +++ /dev/null @@ -1,144 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/conversion_value_rule.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRuleServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Conversion Value Rule service. - -// Service to manage conversion value rules. -service ConversionValueRuleService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested conversion value rule. - rpc GetConversionValueRule(GetConversionValueRuleRequest) returns (google.ads.googleads.v8.resources.ConversionValueRule) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/conversionValueRules/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes conversion value rules. Operation statuses are - // returned. - rpc MutateConversionValueRules(MutateConversionValueRulesRequest) returns (MutateConversionValueRulesResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/conversionValueRules:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [ConversionValueRuleService.GetConversionValueRule][google.ads.googleads.v8.services.ConversionValueRuleService.GetConversionValueRule]. -message GetConversionValueRuleRequest { - // Required. The resource name of the conversion value rule to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionValueRule" - } - ]; -} - -// Request message for -// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v8.services.ConversionValueRuleService.MutateConversionValueRules]. -message MutateConversionValueRulesRequest { - // Required. The ID of the customer whose conversion value rules are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual conversion value rules. - repeated ConversionValueRuleOperation 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 = 5; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 3; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; -} - -// A single operation (create, update, remove) on a conversion value rule. -message ConversionValueRuleOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new conversion - // value rule. - google.ads.googleads.v8.resources.ConversionValueRule create = 1; - - // Update operation: The conversion value rule is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.ConversionValueRule update = 2; - - // Remove operation: A resource name for the removed conversion value rule - // is expected, in this format: - // - // `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}` - string remove = 3; - } -} - -// Response message for -// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v8.services.ConversionValueRuleService.MutateConversionValueRules]. -message MutateConversionValueRulesResponse { - // All results for the mutate. - repeated MutateConversionValueRuleResult results = 2; - - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; -} - -// The result for the conversion value rule mutate. -message MutateConversionValueRuleResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.ConversionValueRule conversion_value_rule = 2; -} diff --git a/google/ads/googleads/v8/services/conversion_value_rule_set_service.proto b/google/ads/googleads/v8/services/conversion_value_rule_set_service.proto deleted file mode 100644 index bca6666cc..000000000 --- a/google/ads/googleads/v8/services/conversion_value_rule_set_service.proto +++ /dev/null @@ -1,144 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/conversion_value_rule_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ConversionValueRuleSetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Conversion Value Rule Set service. - -// Service to manage conversion value rule sets. -service ConversionValueRuleSetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested conversion value rule set. - rpc GetConversionValueRuleSet(GetConversionValueRuleSetRequest) returns (google.ads.googleads.v8.resources.ConversionValueRuleSet) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/conversionValueRuleSets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates or removes conversion value rule sets. Operation statuses - // are returned. - rpc MutateConversionValueRuleSets(MutateConversionValueRuleSetsRequest) returns (MutateConversionValueRuleSetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/conversionValueRuleSets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [ConversionValueRuleSetService.GetConversionValueRuleSet][google.ads.googleads.v8.services.ConversionValueRuleSetService.GetConversionValueRuleSet]. -message GetConversionValueRuleSetRequest { - // Required. The resource name of the conversion value rule set to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ConversionValueRuleSet" - } - ]; -} - -// Request message for -// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v8.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. -message MutateConversionValueRuleSetsRequest { - // Required. The ID of the customer whose conversion value rule sets are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual conversion value rule sets. - repeated ConversionValueRuleSetOperation 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 = 5; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 3; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; -} - -// A single operation (create, update, remove) on a conversion value rule set. -message ConversionValueRuleSetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new conversion - // value rule set. - google.ads.googleads.v8.resources.ConversionValueRuleSet create = 1; - - // Update operation: The conversion value rule set is expected to have a - // valid resource name. - google.ads.googleads.v8.resources.ConversionValueRuleSet update = 2; - - // Remove operation: A resource name for the removed conversion value rule - // set is expected, in this format: - // - // `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}` - string remove = 3; - } -} - -// Response message for -// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v8.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. -message MutateConversionValueRuleSetsResponse { - // All results for the mutate. - repeated MutateConversionValueRuleSetResult 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 2; -} - -// The result for the conversion value rule set mutate. -message MutateConversionValueRuleSetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.ConversionValueRuleSet conversion_value_rule_set = 2; -} diff --git a/google/ads/googleads/v8/services/currency_constant_service.proto b/google/ads/googleads/v8/services/currency_constant_service.proto deleted file mode 100644 index 58f9fa589..000000000 --- a/google/ads/googleads/v8/services/currency_constant_service.proto +++ /dev/null @@ -1,65 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/currency_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CurrencyConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to fetch currency constants. -service CurrencyConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested currency constant. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCurrencyConstant(GetCurrencyConstantRequest) returns (google.ads.googleads.v8.resources.CurrencyConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=currencyConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CurrencyConstantService.GetCurrencyConstant][google.ads.googleads.v8.services.CurrencyConstantService.GetCurrencyConstant]. -message GetCurrencyConstantRequest { - // Required. Resource name of the currency constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CurrencyConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/services/custom_audience_service.proto b/google/ads/googleads/v8/services/custom_audience_service.proto deleted file mode 100644 index 99c508621..000000000 --- a/google/ads/googleads/v8/services/custom_audience_service.proto +++ /dev/null @@ -1,140 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomAudienceServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Custom Audience service. - -// Service to manage custom audiences. -service CustomAudienceService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested custom audience in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomAudience(GetCustomAudienceRequest) returns (google.ads.googleads.v8.resources.CustomAudience) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customAudiences/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates custom audiences. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CustomAudienceError]() - // [CustomInterestError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [OperationAccessDeniedError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomAudiences(MutateCustomAudiencesRequest) returns (MutateCustomAudiencesResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customAudiences:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomAudienceService.GetCustomAudience][google.ads.googleads.v8.services.CustomAudienceService.GetCustomAudience]. -message GetCustomAudienceRequest { - // Required. The resource name of the custom audience to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomAudience" - } - ]; -} - -// Request message for [CustomAudienceService.MutateCustomAudiences][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual custom audiences. - repeated CustomAudienceOperation operations = 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 operation (create, update) on a custom audience. -message CustomAudienceOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new custom - // audience. - google.ads.googleads.v8.resources.CustomAudience create = 1; - - // Update operation: The custom audience is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.CustomAudience update = 2; - - // Remove operation: A resource name for the removed custom audience is - // expected, in this format: - // - // `customers/{customer_id}/customAudiences/{custom_audience_id}` - string remove = 3; - } -} - -// Response message for custom audience mutate. -message MutateCustomAudiencesResponse { - // All results for the mutate. - repeated MutateCustomAudienceResult results = 1; -} - -// The result for the custom audience mutate. -message MutateCustomAudienceResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/custom_interest_service.proto b/google/ads/googleads/v8/services/custom_interest_service.proto deleted file mode 100644 index 2b8b8fc84..000000000 --- a/google/ads/googleads/v8/services/custom_interest_service.proto +++ /dev/null @@ -1,132 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomInterestServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Custom Interest service. - -// Service to manage custom interests. -service CustomInterestService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested custom interest in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomInterest(GetCustomInterestRequest) returns (google.ads.googleads.v8.resources.CustomInterest) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customInterests/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates custom interests. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CriterionError]() - // [CustomInterestError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RequestError]() - // [StringLengthError]() - rpc MutateCustomInterests(MutateCustomInterestsRequest) returns (MutateCustomInterestsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customInterests:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomInterestService.GetCustomInterest][google.ads.googleads.v8.services.CustomInterestService.GetCustomInterest]. -message GetCustomInterestRequest { - // Required. The resource name of the custom interest to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomInterest" - } - ]; -} - -// Request message for [CustomInterestService.MutateCustomInterests][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual custom interests. - repeated CustomInterestOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// A single operation (create, update) on a custom interest. -message CustomInterestOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new custom - // interest. - google.ads.googleads.v8.resources.CustomInterest create = 1; - - // Update operation: The custom interest is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.CustomInterest update = 2; - } -} - -// Response message for custom interest mutate. -message MutateCustomInterestsResponse { - // All results for the mutate. - repeated MutateCustomInterestResult results = 2; -} - -// The result for the custom interest mutate. -message MutateCustomInterestResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/customer_asset_service.proto b/google/ads/googleads/v8/services/customer_asset_service.proto deleted file mode 100644 index 3317dfb3b..000000000 --- a/google/ads/googleads/v8/services/customer_asset_service.proto +++ /dev/null @@ -1,160 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/customer_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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerAssetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CustomerAsset service. - -// Service to manage customer assets. -service CustomerAssetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer asset in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerAsset(GetCustomerAssetRequest) returns (google.ads.googleads.v8.resources.CustomerAsset) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerAssets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes customer assets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AssetLinkError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerAssets(MutateCustomerAssetsRequest) returns (MutateCustomerAssetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerAssets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomerAssetService.GetCustomerAsset][google.ads.googleads.v8.services.CustomerAssetService.GetCustomerAsset]. -message GetCustomerAssetRequest { - // Required. The resource name of the customer asset to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerAsset" - } - ]; -} - -// Request message for [CustomerAssetService.MutateCustomerAssets][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual customer assets. - repeated CustomerAssetOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a customer asset. -message CustomerAssetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new customer - // asset. - google.ads.googleads.v8.resources.CustomerAsset create = 1; - - // Update operation: The customer asset is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.CustomerAsset update = 3; - - // Remove operation: A resource name for the removed customer asset is - // expected, in this format: - // - // `customers/{customer_id}/customerAssets/{asset_id}~{field_type}` - string remove = 2; - } -} - -// Response message for a customer asset mutate. -message MutateCustomerAssetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateCustomerAssetResult results = 2; -} - -// The result for the customer asset mutate. -message MutateCustomerAssetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CustomerAsset customer_asset = 2; -} diff --git a/google/ads/googleads/v8/services/customer_client_link_service.proto b/google/ads/googleads/v8/services/customer_client_link_service.proto deleted file mode 100644 index 8eb35596b..000000000 --- a/google/ads/googleads/v8/services/customer_client_link_service.proto +++ /dev/null @@ -1,129 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientLinkServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to manage customer client links. -service CustomerClientLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested CustomerClientLink in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerClientLink(GetCustomerClientLinkRequest) returns (google.ads.googleads.v8.resources.CustomerClientLink) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerClientLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates a customer client link. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [ManagerLinkError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerClientLink(MutateCustomerClientLinkRequest) returns (MutateCustomerClientLinkResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerClientLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for [CustomerClientLinkService.GetCustomerClientLink][google.ads.googleads.v8.services.CustomerClientLinkService.GetCustomerClientLink]. -message GetCustomerClientLinkRequest { - // Required. The resource name of the customer client link to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerClientLink" - } - ]; -} - -// Request message for [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v8.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]; - - // Required. The operation to perform on the individual CustomerClientLink. - CustomerClientLinkOperation 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 operation (create, update) on a CustomerClientLink. -message CustomerClientLinkOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new link. - google.ads.googleads.v8.resources.CustomerClientLink create = 1; - - // Update operation: The link is expected to have a valid resource name. - google.ads.googleads.v8.resources.CustomerClientLink update = 2; - } -} - -// Response message for a CustomerClientLink mutate. -message MutateCustomerClientLinkResponse { - // A result that identifies the resource affected by the mutate request. - MutateCustomerClientLinkResult result = 1; -} - -// The result for a single customer client link mutate. -message MutateCustomerClientLinkResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/customer_client_service.proto b/google/ads/googleads/v8/services/customer_client_service.proto deleted file mode 100644 index 753f47461..000000000 --- a/google/ads/googleads/v8/services/customer_client_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/customer_client.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerClientServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Customer Client service. - -// Service to get clients in a customer's hierarchy. -service CustomerClientService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested client in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerClient(GetCustomerClientRequest) returns (google.ads.googleads.v8.resources.CustomerClient) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerClients/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [CustomerClientService.GetCustomerClient][google.ads.googleads.v8.services.CustomerClientService.GetCustomerClient]. -message GetCustomerClientRequest { - // Required. The resource name of the client to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerClient" - } - ]; -} diff --git a/google/ads/googleads/v8/services/customer_extension_setting_service.proto b/google/ads/googleads/v8/services/customer_extension_setting_service.proto deleted file mode 100644 index 6784b1712..000000000 --- a/google/ads/googleads/v8/services/customer_extension_setting_service.proto +++ /dev/null @@ -1,180 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/customer_extension_setting.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CustomerExtensionSetting service. - -// Service to manage customer extension settings. -service CustomerExtensionSettingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer extension setting in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerExtensionSetting(GetCustomerExtensionSettingRequest) returns (google.ads.googleads.v8.resources.CustomerExtensionSetting) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerExtensionSettings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes customer extension settings. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [ExtensionSettingError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateCustomerExtensionSettings(MutateCustomerExtensionSettingsRequest) returns (MutateCustomerExtensionSettingsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerExtensionSettings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [CustomerExtensionSettingService.GetCustomerExtensionSetting][google.ads.googleads.v8.services.CustomerExtensionSettingService.GetCustomerExtensionSetting]. -message GetCustomerExtensionSettingRequest { - // Required. The resource name of the customer extension setting to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerExtensionSetting" - } - ]; -} - -// Request message for -// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v8.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings]. -message MutateCustomerExtensionSettingsRequest { - // Required. The ID of the customer whose customer extension settings are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual customer extension - // settings. - repeated CustomerExtensionSettingOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a customer extension setting. -message CustomerExtensionSettingOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new customer - // extension setting. - google.ads.googleads.v8.resources.CustomerExtensionSetting create = 1; - - // Update operation: The customer extension setting is expected to have a - // valid resource name. - google.ads.googleads.v8.resources.CustomerExtensionSetting update = 2; - - // Remove operation: A resource name for the removed customer extension - // setting is expected, in this format: - // - // `customers/{customer_id}/customerExtensionSettings/{extension_type}` - string remove = 3; - } -} - -// Response message for a customer extension setting mutate. -message MutateCustomerExtensionSettingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCustomerExtensionSettingResult results = 2; -} - -// The result for the customer extension setting mutate. -message MutateCustomerExtensionSettingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CustomerExtensionSetting customer_extension_setting = 2; -} diff --git a/google/ads/googleads/v8/services/customer_feed_service.proto b/google/ads/googleads/v8/services/customer_feed_service.proto deleted file mode 100644 index e13168cab..000000000 --- a/google/ads/googleads/v8/services/customer_feed_service.proto +++ /dev/null @@ -1,172 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/customer_feed.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerFeedServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CustomerFeed service. - -// Service to manage customer feeds. -service CustomerFeedService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer feed in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerFeed(GetCustomerFeedRequest) returns (google.ads.googleads.v8.resources.CustomerFeed) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerFeeds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes customer feeds. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CustomerFeedError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionError]() - // [FunctionParsingError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateCustomerFeeds(MutateCustomerFeedsRequest) returns (MutateCustomerFeedsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerFeeds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomerFeedService.GetCustomerFeed][google.ads.googleads.v8.services.CustomerFeedService.GetCustomerFeed]. -message GetCustomerFeedRequest { - // Required. The resource name of the customer feed to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerFeed" - } - ]; -} - -// Request message for [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual customer feeds. - repeated CustomerFeedOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on a customer feed. -message CustomerFeedOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new customer feed. - google.ads.googleads.v8.resources.CustomerFeed create = 1; - - // Update operation: The customer feed is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.CustomerFeed update = 2; - - // Remove operation: A resource name for the removed customer feed is - // expected, in this format: - // - // `customers/{customer_id}/customerFeeds/{feed_id}` - string remove = 3; - } -} - -// Response message for a customer feed mutate. -message MutateCustomerFeedsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCustomerFeedResult results = 2; -} - -// The result for the customer feed mutate. -message MutateCustomerFeedResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CustomerFeed customer_feed = 2; -} diff --git a/google/ads/googleads/v8/services/customer_label_service.proto b/google/ads/googleads/v8/services/customer_label_service.proto deleted file mode 100644 index 9d3b5c326..000000000 --- a/google/ads/googleads/v8/services/customer_label_service.proto +++ /dev/null @@ -1,142 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerLabelServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Customer Label service. - -// Service to manage labels on customers. -service CustomerLabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer-label relationship in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerLabel(GetCustomerLabelRequest) returns (google.ads.googleads.v8.resources.CustomerLabel) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerLabels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates and removes customer-label relationships. - // Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [HeaderError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerLabels(MutateCustomerLabelsRequest) returns (MutateCustomerLabelsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerLabels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [CustomerLabelService.GetCustomerLabel][google.ads.googleads.v8.services.CustomerLabelService.GetCustomerLabel]. -message GetCustomerLabelRequest { - // Required. The resource name of the customer-label relationship to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerLabel" - } - ]; -} - -// Request message for [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v8.services.CustomerLabelService.MutateCustomerLabels]. -message MutateCustomerLabelsRequest { - // Required. ID of the customer whose customer-label relationships are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on customer-label relationships. - repeated CustomerLabelOperation 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; -} - -// A single operation (create, remove) on a customer-label relationship. -message CustomerLabelOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new customer-label - // relationship. - google.ads.googleads.v8.resources.CustomerLabel create = 1; - - // Remove operation: A resource name for the customer-label relationship - // being removed, in this format: - // - // `customers/{customer_id}/customerLabels/{label_id}` - string remove = 2; - } -} - -// Response message for a customer labels mutate. -message MutateCustomerLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCustomerLabelResult results = 2; -} - -// The result for a customer label mutate. -message MutateCustomerLabelResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/customer_manager_link_service.proto b/google/ads/googleads/v8/services/customer_manager_link_service.proto deleted file mode 100644 index 257c9036a..000000000 --- a/google/ads/googleads/v8/services/customer_manager_link_service.proto +++ /dev/null @@ -1,180 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerManagerLinkServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to manage customer-manager links. -service CustomerManagerLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested CustomerManagerLink in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerManagerLink(GetCustomerManagerLinkRequest) returns (google.ads.googleads.v8.resources.CustomerManagerLink) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerManagerLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates customer manager links. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [ManagerLinkError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerManagerLink(MutateCustomerManagerLinkRequest) returns (MutateCustomerManagerLinkResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerManagerLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Moves a client customer to a new manager customer. - // This simplifies the complex request that requires two operations to move - // a client customer to a new manager. i.e: - // 1. Update operation with Status INACTIVE (previous manager) and, - // 2. Update operation with Status ACTIVE (new manager). - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MoveManagerLink(MoveManagerLinkRequest) returns (MoveManagerLinkResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" - body: "*" - }; - option (google.api.method_signature) = "customer_id,previous_customer_manager_link,new_manager"; - } -} - -// Request message for [CustomerManagerLinkService.GetCustomerManagerLink][google.ads.googleads.v8.services.CustomerManagerLinkService.GetCustomerManagerLink]. -message GetCustomerManagerLinkRequest { - // Required. The resource name of the CustomerManagerLink to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerManagerLink" - } - ]; -} - -// Request message for [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v8.services.CustomerManagerLinkService.MutateCustomerManagerLink]. -message MutateCustomerManagerLinkRequest { - // Required. The ID of the customer whose customer manager links are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual customer manager links. - repeated CustomerManagerLinkOperation operations = 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; -} - -// Request message for [CustomerManagerLinkService.MoveManagerLink][google.ads.googleads.v8.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]; - - // Required. The resource name of the previous CustomerManagerLink. - // The resource name has the form: - // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}` - string previous_customer_manager_link = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The resource name of the new manager customer that the client wants to move - // to. Customer resource names have the format: "customers/{customer_id}" - string new_manager = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; -} - -// Updates the status of a CustomerManagerLink. -// The following actions are possible: -// 1. Update operation with status ACTIVE accepts a pending invitation. -// 2. Update operation with status REFUSED declines a pending invitation. -// 3. Update operation with status INACTIVE terminates link to manager. -message CustomerManagerLinkOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Update operation: The link is expected to have a valid resource name. - google.ads.googleads.v8.resources.CustomerManagerLink update = 2; - } -} - -// Response message for a CustomerManagerLink mutate. -message MutateCustomerManagerLinkResponse { - // A result that identifies the resource affected by the mutate request. - repeated MutateCustomerManagerLinkResult results = 1; -} - -// Response message for a CustomerManagerLink moveManagerLink. -message MoveManagerLinkResponse { - // Returned for successful operations. Represents a CustomerManagerLink - // resource of the newly created link between client customer and new manager - // customer. - string resource_name = 1; -} - -// The result for the customer manager link mutate. -message MutateCustomerManagerLinkResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/customer_negative_criterion_service.proto b/google/ads/googleads/v8/services/customer_negative_criterion_service.proto deleted file mode 100644 index b23d9354f..000000000 --- a/google/ads/googleads/v8/services/customer_negative_criterion_service.proto +++ /dev/null @@ -1,152 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerNegativeCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Customer Negative Criterion service. - -// Service to manage customer negative criteria. -service CustomerNegativeCriterionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested criterion in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerNegativeCriterion(GetCustomerNegativeCriterionRequest) returns (google.ads.googleads.v8.resources.CustomerNegativeCriterion) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerNegativeCriteria/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes criteria. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CriterionError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerNegativeCriteria(MutateCustomerNegativeCriteriaRequest) returns (MutateCustomerNegativeCriteriaResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerNegativeCriteria:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [CustomerNegativeCriterionService.GetCustomerNegativeCriterion][google.ads.googleads.v8.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion]. -message GetCustomerNegativeCriterionRequest { - // Required. The resource name of the criterion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerNegativeCriterion" - } - ]; -} - -// Request message for -// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual criteria. - repeated CustomerNegativeCriterionOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create or remove) on a customer level negative criterion. -message CustomerNegativeCriterionOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v8.resources.CustomerNegativeCriterion create = 1; - - // Remove operation: A resource name for the removed criterion is expected, - // in this format: - // - // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}` - string remove = 2; - } -} - -// Response message for customer negative criterion mutate. -message MutateCustomerNegativeCriteriaResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateCustomerNegativeCriteriaResult results = 2; -} - -// The result for the criterion mutate. -message MutateCustomerNegativeCriteriaResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.CustomerNegativeCriterion customer_negative_criterion = 2; -} diff --git a/google/ads/googleads/v8/services/customer_service.proto b/google/ads/googleads/v8/services/customer_service.proto deleted file mode 100644 index 15de603cb..000000000 --- a/google/ads/googleads/v8/services/customer_service.proto +++ /dev/null @@ -1,214 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/access_role.proto"; -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Customer service. - -// Service to manage customers. -service CustomerService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested customer in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomer(GetCustomerRequest) returns (google.ads.googleads.v8.resources.Customer) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Updates a customer. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - // [UrlFieldError]() - rpc MutateCustomer(MutateCustomerRequest) returns (MutateCustomerResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } - - // Returns resource names of customers directly accessible by the - // user authenticating the call. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListAccessibleCustomers(ListAccessibleCustomersRequest) returns (ListAccessibleCustomersResponse) { - option (google.api.http) = { - get: "/v8/customers:listAccessibleCustomers" - }; - } - - // Creates a new client under manager. The new client customer is returned. - // - // List of thrown errors: - // [AccessInvitationError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [CurrencyCodeError]() - // [HeaderError]() - // [InternalError]() - // [ManagerLinkError]() - // [QuotaError]() - // [RequestError]() - // [StringLengthError]() - // [TimeZoneError]() - rpc CreateCustomerClient(CreateCustomerClientRequest) returns (CreateCustomerClientResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:createCustomerClient" - body: "*" - }; - option (google.api.method_signature) = "customer_id,customer_client"; - } -} - -// Request message for [CustomerService.GetCustomer][google.ads.googleads.v8.services.CustomerService.GetCustomer]. -message GetCustomerRequest { - // Required. The resource name of the customer to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} - -// Request message for [CustomerService.MutateCustomer][google.ads.googleads.v8.services.CustomerService.MutateCustomer]. -message MutateCustomerRequest { - // Required. The ID of the customer being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on the customer - CustomerOperation operation = 4 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 5; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 6; -} - -// Request message for [CustomerService.CreateCustomerClient][google.ads.googleads.v8.services.CustomerService.CreateCustomerClient]. -message CreateCustomerClientRequest { - // Required. The ID of the Manager under whom client customer is being created. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The new client customer to create. The resource name on this customer - // will be ignored. - google.ads.googleads.v8.resources.Customer customer_client = 2 [(google.api.field_behavior) = REQUIRED]; - - // Email address of the user who should be invited on the created client - // customer. Accessible only to customers on the allow-list. - optional string email_address = 5; - - // The proposed role of user on the created client customer. - // Accessible only to customers on the allow-list. - google.ads.googleads.v8.enums.AccessRoleEnum.AccessRole access_role = 4; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 6; -} - -// A single update on a customer. -message CustomerOperation { - // Mutate operation. Only updates are supported for customer. - google.ads.googleads.v8.resources.Customer update = 1; - - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 2; -} - -// Response message for CreateCustomerClient mutate. -message CreateCustomerClientResponse { - // The resource name of the newly created customer client. - string resource_name = 2; - - // Link for inviting user to access the created customer. Accessible to - // allowlisted customers only. - string invitation_link = 3; -} - -// Response message for customer mutate. -message MutateCustomerResponse { - // Result for the mutate. - MutateCustomerResult result = 2; -} - -// The result for the customer mutate. -message MutateCustomerResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.Customer customer = 2; -} - -// Request message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v8.services.CustomerService.ListAccessibleCustomers]. -message ListAccessibleCustomersRequest { - -} - -// Response message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v8.services.CustomerService.ListAccessibleCustomers]. -message ListAccessibleCustomersResponse { - // Resource name of customers directly accessible by the - // user authenticating the call. - repeated string resource_names = 1; -} diff --git a/google/ads/googleads/v8/services/customer_user_access_invitation_service.proto b/google/ads/googleads/v8/services/customer_user_access_invitation_service.proto deleted file mode 100644 index 18dbce368..000000000 --- a/google/ads/googleads/v8/services/customer_user_access_invitation_service.proto +++ /dev/null @@ -1,125 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessInvitationServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the CustomerUserAccessInvitation service. - -// This service manages the access invitation extended to users for a given -// customer. -service CustomerUserAccessInvitationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested access invitation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerUserAccessInvitation(GetCustomerUserAccessInvitationRequest) returns (google.ads.googleads.v8.resources.CustomerUserAccessInvitation) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerUserAccessInvitations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes an access invitation. - // - // List of thrown errors: - // [AccessInvitationError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerUserAccessInvitation(MutateCustomerUserAccessInvitationRequest) returns (MutateCustomerUserAccessInvitationResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerUserAccessInvitations:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [CustomerUserAccessInvitation.GetCustomerUserAccessInvitation][] -message GetCustomerUserAccessInvitationRequest { - // Required. Resource name of the access invitation. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerUserAccessInvitation" - } - ]; -} - -// Request message for -// [CustomerUserAccessInvitation.MutateCustomerUserAccessInvitation][] -message MutateCustomerUserAccessInvitationRequest { - // Required. The ID of the customer whose access invitation is being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on the access invitation - CustomerUserAccessInvitationOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A single operation (create or remove) on customer user access invitation. -message CustomerUserAccessInvitationOperation { - // The mutate operation - oneof operation { - // Create operation: No resource name is expected for the new access - // invitation. - google.ads.googleads.v8.resources.CustomerUserAccessInvitation create = 1; - - // Remove operation: A resource name for the revoke invitation is - // expected, in this format: - // - // `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}` - string remove = 2; - } -} - -// Response message for access invitation mutate. -message MutateCustomerUserAccessInvitationResponse { - // Result for the mutate. - MutateCustomerUserAccessInvitationResult result = 1; -} - -// The result for the access invitation mutate. -message MutateCustomerUserAccessInvitationResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/customer_user_access_service.proto b/google/ads/googleads/v8/services/customer_user_access_service.proto deleted file mode 100644 index 4146d8db4..000000000 --- a/google/ads/googleads/v8/services/customer_user_access_service.proto +++ /dev/null @@ -1,129 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "CustomerUserAccessServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// This service manages the permissions of a user on a given customer. -service CustomerUserAccessService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the CustomerUserAccess in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetCustomerUserAccess(GetCustomerUserAccessRequest) returns (google.ads.googleads.v8.resources.CustomerUserAccess) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/customerUserAccesses/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Updates, removes permission of a user on a given customer. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CustomerUserAccessError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateCustomerUserAccess(MutateCustomerUserAccessRequest) returns (MutateCustomerUserAccessResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/customerUserAccesses:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [CustomerUserAccessService.GetCustomerUserAccess][google.ads.googleads.v8.services.CustomerUserAccessService.GetCustomerUserAccess]. -message GetCustomerUserAccessRequest { - // Required. Resource name of the customer user access. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/CustomerUserAccess" - } - ]; -} - -// Mutate Request for -// [CustomerUserAccessService.MutateCustomerUserAccess][google.ads.googleads.v8.services.CustomerUserAccessService.MutateCustomerUserAccess]. -message MutateCustomerUserAccessRequest { - // Required. The ID of the customer being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on the customer - CustomerUserAccessOperation operation = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A single operation (update, remove) on customer user access. -message CustomerUserAccessOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The mutate operation. - oneof operation { - // Update operation: The customer user access is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.CustomerUserAccess update = 1; - - // Remove operation: A resource name for the removed access is - // expected, in this format: - // - // `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}` - string remove = 2; - } -} - -// Response message for customer user access mutate. -message MutateCustomerUserAccessResponse { - // Result for the mutate. - MutateCustomerUserAccessResult result = 1; -} - -// The result for the customer user access mutate. -message MutateCustomerUserAccessResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/detail_placement_view_service.proto b/google/ads/googleads/v8/services/detail_placement_view_service.proto deleted file mode 100644 index ce389b865..000000000 --- a/google/ads/googleads/v8/services/detail_placement_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/detail_placement_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DetailPlacementViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Detail Placement View service. - -// Service to fetch Detail Placement views. -service DetailPlacementViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Detail Placement view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDetailPlacementView(GetDetailPlacementViewRequest) returns (google.ads.googleads.v8.resources.DetailPlacementView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/detailPlacementViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [DetailPlacementViewService.GetDetailPlacementView][google.ads.googleads.v8.services.DetailPlacementViewService.GetDetailPlacementView]. -message GetDetailPlacementViewRequest { - // Required. The resource name of the Detail Placement view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DetailPlacementView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/detailed_demographic_service.proto b/google/ads/googleads/v8/services/detailed_demographic_service.proto deleted file mode 100644 index ef44a8f8b..000000000 --- a/google/ads/googleads/v8/services/detailed_demographic_service.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/detailed_demographic.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DetailedDemographicServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the detailed demographic service - -// Service to fetch Google Ads Detailed Demographics. -service DetailedDemographicService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested detailed demographic in full detail. - rpc GetDetailedDemographic(GetDetailedDemographicRequest) returns (google.ads.googleads.v8.resources.DetailedDemographic) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/detailedDemographics/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [DetailedDemographicService.GetDetailedDemographic][google.ads.googleads.v8.services.DetailedDemographicService.GetDetailedDemographic]. -message GetDetailedDemographicRequest { - // Required. Resource name of the DetailedDemographic to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DetailedDemographic" - } - ]; -} diff --git a/google/ads/googleads/v8/services/display_keyword_view_service.proto b/google/ads/googleads/v8/services/display_keyword_view_service.proto deleted file mode 100644 index 512758d47..000000000 --- a/google/ads/googleads/v8/services/display_keyword_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/display_keyword_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DisplayKeywordViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Display Keyword View service. - -// Service to manage display keyword views. -service DisplayKeywordViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested display keyword view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDisplayKeywordView(GetDisplayKeywordViewRequest) returns (google.ads.googleads.v8.resources.DisplayKeywordView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/displayKeywordViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [DisplayKeywordViewService.GetDisplayKeywordView][google.ads.googleads.v8.services.DisplayKeywordViewService.GetDisplayKeywordView]. -message GetDisplayKeywordViewRequest { - // Required. The resource name of the display keyword view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DisplayKeywordView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/distance_view_service.proto b/google/ads/googleads/v8/services/distance_view_service.proto deleted file mode 100644 index f4b02944a..000000000 --- a/google/ads/googleads/v8/services/distance_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/distance_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DistanceViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Distance View service. - -// Service to fetch distance views. -service DistanceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the attributes of the requested distance view. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDistanceView(GetDistanceViewRequest) returns (google.ads.googleads.v8.resources.DistanceView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/distanceViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [DistanceViewService.GetDistanceView][google.ads.googleads.v8.services.DistanceViewService.GetDistanceView]. -message GetDistanceViewRequest { - // Required. The resource name of the distance view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DistanceView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/domain_category_service.proto b/google/ads/googleads/v8/services/domain_category_service.proto deleted file mode 100644 index ce7fddf6a..000000000 --- a/google/ads/googleads/v8/services/domain_category_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/domain_category.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DomainCategoryServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the DomainCategory Service. - -// Service to fetch domain categories. -service DomainCategoryService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested domain category. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDomainCategory(GetDomainCategoryRequest) returns (google.ads.googleads.v8.resources.DomainCategory) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/domainCategories/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [DomainCategoryService.GetDomainCategory][google.ads.googleads.v8.services.DomainCategoryService.GetDomainCategory]. -message GetDomainCategoryRequest { - // Required. Resource name of the domain category to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DomainCategory" - } - ]; -} diff --git a/google/ads/googleads/v8/services/dynamic_search_ads_search_term_view_service.proto b/google/ads/googleads/v8/services/dynamic_search_ads_search_term_view_service.proto deleted file mode 100644 index 842702101..000000000 --- a/google/ads/googleads/v8/services/dynamic_search_ads_search_term_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/dynamic_search_ads_search_term_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "DynamicSearchAdsSearchTermViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Dynamic Search Ads Search Term View service. - -// Service to fetch dynamic search ads views. -service DynamicSearchAdsSearchTermViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested dynamic search ads search term view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetDynamicSearchAdsSearchTermView(GetDynamicSearchAdsSearchTermViewRequest) returns (google.ads.googleads.v8.resources.DynamicSearchAdsSearchTermView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView][google.ads.googleads.v8.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView]. -message GetDynamicSearchAdsSearchTermViewRequest { - // Required. The resource name of the dynamic search ads search term view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/DynamicSearchAdsSearchTermView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/expanded_landing_page_view_service.proto b/google/ads/googleads/v8/services/expanded_landing_page_view_service.proto deleted file mode 100644 index 00df6441a..000000000 --- a/google/ads/googleads/v8/services/expanded_landing_page_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/expanded_landing_page_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ExpandedLandingPageViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the expanded landing page view service. - -// Service to fetch expanded landing page views. -service ExpandedLandingPageViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested expanded landing page view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetExpandedLandingPageView(GetExpandedLandingPageViewRequest) returns (google.ads.googleads.v8.resources.ExpandedLandingPageView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/expandedLandingPageViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [ExpandedLandingPageViewService.GetExpandedLandingPageView][google.ads.googleads.v8.services.ExpandedLandingPageViewService.GetExpandedLandingPageView]. -message GetExpandedLandingPageViewRequest { - // Required. The resource name of the expanded landing page view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ExpandedLandingPageView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/extension_feed_item_service.proto b/google/ads/googleads/v8/services/extension_feed_item_service.proto deleted file mode 100644 index f08e6f739..000000000 --- a/google/ads/googleads/v8/services/extension_feed_item_service.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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/extension_feed_item.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ExtensionFeedItemServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the ExtensionFeedItem service. - -// Service to manage extension feed items. -service ExtensionFeedItemService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested extension feed item in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetExtensionFeedItem(GetExtensionFeedItemRequest) returns (google.ads.googleads.v8.resources.ExtensionFeedItem) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/extensionFeedItems/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes extension feed items. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CountryCodeError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [ExtensionFeedItemError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [ImageError]() - // [InternalError]() - // [LanguageCodeError]() - // [MutateError]() - // [NewResourceCreationError]() - // [OperationAccessDeniedError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateExtensionFeedItems(MutateExtensionFeedItemsRequest) returns (MutateExtensionFeedItemsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/extensionFeedItems:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [ExtensionFeedItemService.GetExtensionFeedItem][google.ads.googleads.v8.services.ExtensionFeedItemService.GetExtensionFeedItem]. -message GetExtensionFeedItemRequest { - // Required. The resource name of the extension feed item to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ExtensionFeedItem" - } - ]; -} - -// Request message for [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v8.services.ExtensionFeedItemService.MutateExtensionFeedItems]. -message MutateExtensionFeedItemsRequest { - // Required. The ID of the customer whose extension feed items are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual extension feed items. - repeated ExtensionFeedItemOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an extension feed item. -message ExtensionFeedItemOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new extension - // feed item. - google.ads.googleads.v8.resources.ExtensionFeedItem create = 1; - - // Update operation: The extension feed item is expected to have a - // valid resource name. - google.ads.googleads.v8.resources.ExtensionFeedItem update = 2; - - // Remove operation: A resource name for the removed extension feed item - // is expected, in this format: - // - // `customers/{customer_id}/extensionFeedItems/{feed_item_id}` - string remove = 3; - } -} - -// Response message for an extension feed item mutate. -message MutateExtensionFeedItemsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateExtensionFeedItemResult results = 2; -} - -// The result for the extension feed item mutate. -message MutateExtensionFeedItemResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.ExtensionFeedItem extension_feed_item = 2; -} diff --git a/google/ads/googleads/v8/services/feed_item_service.proto b/google/ads/googleads/v8/services/feed_item_service.proto deleted file mode 100644 index c4c0346ad..000000000 --- a/google/ads/googleads/v8/services/feed_item_service.proto +++ /dev/null @@ -1,174 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/feed_item.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the FeedItem service. - -// Service to manage feed items. -service FeedItemService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed item in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedItem(GetFeedItemRequest) returns (google.ads.googleads.v8.resources.FeedItem) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/feedItems/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes feed items. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [CriterionError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FeedItemError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - rpc MutateFeedItems(MutateFeedItemsRequest) returns (MutateFeedItemsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/feedItems:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedItemService.GetFeedItem][google.ads.googleads.v8.services.FeedItemService.GetFeedItem]. -message GetFeedItemRequest { - // Required. The resource name of the feed item to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItem" - } - ]; -} - -// Request message for [FeedItemService.MutateFeedItems][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual feed items. - repeated FeedItemOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an feed item. -message FeedItemOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed item. - google.ads.googleads.v8.resources.FeedItem create = 1; - - // Update operation: The feed item is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.FeedItem update = 2; - - // Remove operation: A resource name for the removed feed item is - // expected, in this format: - // - // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}` - string remove = 3; - } -} - -// Response message for an feed item mutate. -message MutateFeedItemsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateFeedItemResult results = 2; -} - -// The result for the feed item mutate. -message MutateFeedItemResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.FeedItem feed_item = 2; -} diff --git a/google/ads/googleads/v8/services/feed_item_set_link_service.proto b/google/ads/googleads/v8/services/feed_item_set_link_service.proto deleted file mode 100644 index bb99b23b8..000000000 --- a/google/ads/googleads/v8/services/feed_item_set_link_service.proto +++ /dev/null @@ -1,131 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetLinkServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the FeedItemSetLink service. - -// Service to manage feed item set links. -service FeedItemSetLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed item set link in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedItemSetLink(GetFeedItemSetLinkRequest) returns (google.ads.googleads.v8.resources.FeedItemSetLink) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/feedItemSetLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes feed item set links. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateFeedItemSetLinks(MutateFeedItemSetLinksRequest) returns (MutateFeedItemSetLinksResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/feedItemSetLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedItemSetLinkService.GetFeedItemSetLinks][]. -message GetFeedItemSetLinkRequest { - // Required. The resource name of the feed item set link to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSetLink" - } - ]; -} - -// Request message for [FeedItemSetLinkService.MutateFeedItemSetLinks][google.ads.googleads.v8.services.FeedItemSetLinkService.MutateFeedItemSetLinks]. -message MutateFeedItemSetLinksRequest { - // Required. The ID of the customer whose feed item set links are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual feed item set links. - repeated FeedItemSetLinkOperation 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; -} - -// A single operation (create, update, remove) on a feed item set link. -message FeedItemSetLinkOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the - // new feed item set link. - google.ads.googleads.v8.resources.FeedItemSetLink create = 1; - - // Remove operation: A resource name for the removed feed item set link is - // expected, in this format: - // - // `customers/{customer_id}/feedItemSetLinks/{feed_id}_{feed_item_set_id}_{feed_item_id}` - string remove = 2; - } -} - -// Response message for a feed item set link mutate. -message MutateFeedItemSetLinksResponse { - // All results for the mutate. - repeated MutateFeedItemSetLinkResult results = 1; -} - -// The result for the feed item set link mutate. -message MutateFeedItemSetLinkResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/feed_item_set_service.proto b/google/ads/googleads/v8/services/feed_item_set_service.proto deleted file mode 100644 index 686769b2c..000000000 --- a/google/ads/googleads/v8/services/feed_item_set_service.proto +++ /dev/null @@ -1,139 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/feed_item_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/protobuf/field_mask.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemSetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the FeedItemSet service. - -// Service to manage feed Item Set -service FeedItemSetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed item set in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedItemSet(GetFeedItemSetRequest) returns (google.ads.googleads.v8.resources.FeedItemSet) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/feedItemSets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates or removes feed item sets. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - rpc MutateFeedItemSets(MutateFeedItemSetsRequest) returns (MutateFeedItemSetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/feedItemSets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedItemSetService.GetFeedItemSet][google.ads.googleads.v8.services.FeedItemSetService.GetFeedItemSet]. -message GetFeedItemSetRequest { - // Required. The resource name of the feed item set to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemSet" - } - ]; -} - -// Request message for [FeedItemSetService.MutateFeedItemSets][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual feed item sets. - repeated FeedItemSetOperation 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; -} - -// A single operation (create, remove) on an feed item set. -message FeedItemSetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed item set - google.ads.googleads.v8.resources.FeedItemSet create = 1; - - // Update operation: The feed item set is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.FeedItemSet update = 2; - - // Remove operation: A resource name for the removed feed item is - // expected, in this format: - // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_set_id}` - string remove = 3; - } -} - -// Response message for an feed item set mutate. -message MutateFeedItemSetsResponse { - // All results for the mutate. - repeated MutateFeedItemSetResult results = 1; -} - -// The result for the feed item set mutate. -message MutateFeedItemSetResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/feed_item_target_service.proto b/google/ads/googleads/v8/services/feed_item_target_service.proto deleted file mode 100644 index 29c2940f0..000000000 --- a/google/ads/googleads/v8/services/feed_item_target_service.proto +++ /dev/null @@ -1,161 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedItemTargetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the FeedItemTarget service. - -// Service to manage feed item targets. -service FeedItemTargetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed item targets in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedItemTarget(GetFeedItemTargetRequest) returns (google.ads.googleads.v8.resources.FeedItemTarget) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/feedItemTargets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes feed item targets. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CriterionError]() - // [DatabaseError]() - // [DistinctError]() - // [FeedItemTargetError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateFeedItemTargets(MutateFeedItemTargetsRequest) returns (MutateFeedItemTargetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/feedItemTargets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedItemTargetService.GetFeedItemTarget][google.ads.googleads.v8.services.FeedItemTargetService.GetFeedItemTarget]. -message GetFeedItemTargetRequest { - // Required. The resource name of the feed item targets to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedItemTarget" - } - ]; -} - -// Request message for [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v8.services.FeedItemTargetService.MutateFeedItemTargets]. -message MutateFeedItemTargetsRequest { - // Required. The ID of the customer whose feed item targets are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual feed item targets. - repeated FeedItemTargetOperation 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 = 4; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 3; -} - -// A single operation (create, remove) on an feed item target. -message FeedItemTargetOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed item - // target. - google.ads.googleads.v8.resources.FeedItemTarget create = 1; - - // Remove operation: A resource name for the removed feed item target is - // expected, in this format: - // - // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}` - string remove = 2; - } -} - -// Response message for an feed item target mutate. -message MutateFeedItemTargetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateFeedItemTargetResult results = 2; -} - -// The result for the feed item target mutate. -message MutateFeedItemTargetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.FeedItemTarget feed_item_target = 2; -} diff --git a/google/ads/googleads/v8/services/feed_mapping_service.proto b/google/ads/googleads/v8/services/feed_mapping_service.proto deleted file mode 100644 index 01d1531a6..000000000 --- a/google/ads/googleads/v8/services/feed_mapping_service.proto +++ /dev/null @@ -1,161 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedMappingServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the FeedMapping service. - -// Service to manage feed mappings. -service FeedMappingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed mapping in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedMapping(GetFeedMappingRequest) returns (google.ads.googleads.v8.resources.FeedMapping) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/feedMappings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes feed mappings. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DistinctError]() - // [FeedMappingError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [OperationAccessDeniedError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateFeedMappings(MutateFeedMappingsRequest) returns (MutateFeedMappingsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/feedMappings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedMappingService.GetFeedMapping][google.ads.googleads.v8.services.FeedMappingService.GetFeedMapping]. -message GetFeedMappingRequest { - // Required. The resource name of the feed mapping to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedMapping" - } - ]; -} - -// Request message for [FeedMappingService.MutateFeedMappings][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual feed mappings. - repeated FeedMappingOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove) on a feed mapping. -message FeedMappingOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed mapping. - google.ads.googleads.v8.resources.FeedMapping create = 1; - - // Remove operation: A resource name for the removed feed mapping is - // expected, in this format: - // - // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}` - string remove = 3; - } -} - -// Response message for a feed mapping mutate. -message MutateFeedMappingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateFeedMappingResult results = 2; -} - -// The result for the feed mapping mutate. -message MutateFeedMappingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.FeedMapping feed_mapping = 2; -} diff --git a/google/ads/googleads/v8/services/feed_placeholder_view_service.proto b/google/ads/googleads/v8/services/feed_placeholder_view_service.proto deleted file mode 100644 index 539794062..000000000 --- a/google/ads/googleads/v8/services/feed_placeholder_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/feed_placeholder_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedPlaceholderViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the FeedPlaceholderView service. - -// Service to fetch feed placeholder views. -service FeedPlaceholderViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed placeholder view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeedPlaceholderView(GetFeedPlaceholderViewRequest) returns (google.ads.googleads.v8.resources.FeedPlaceholderView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/feedPlaceholderViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [FeedPlaceholderViewService.GetFeedPlaceholderView][google.ads.googleads.v8.services.FeedPlaceholderViewService.GetFeedPlaceholderView]. -message GetFeedPlaceholderViewRequest { - // Required. The resource name of the feed placeholder view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/FeedPlaceholderView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/feed_service.proto b/google/ads/googleads/v8/services/feed_service.proto deleted file mode 100644 index 4c84ae6db..000000000 --- a/google/ads/googleads/v8/services/feed_service.proto +++ /dev/null @@ -1,173 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/feed.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "FeedServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Feed service. - -// Service to manage feeds. -service FeedService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested feed in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetFeed(GetFeedRequest) returns (google.ads.googleads.v8.resources.Feed) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/feeds/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes feeds. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DistinctError]() - // [FeedError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [ListOperationError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateFeeds(MutateFeedsRequest) returns (MutateFeedsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/feeds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [FeedService.GetFeed][google.ads.googleads.v8.services.FeedService.GetFeed]. -message GetFeedRequest { - // Required. The resource name of the feed to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Feed" - } - ]; -} - -// Request message for [FeedService.MutateFeeds][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual feeds. - repeated FeedOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an feed. -message FeedOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new feed. - google.ads.googleads.v8.resources.Feed create = 1; - - // Update operation: The feed is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.Feed update = 2; - - // Remove operation: A resource name for the removed feed is - // expected, in this format: - // - // `customers/{customer_id}/feeds/{feed_id}` - string remove = 3; - } -} - -// Response message for an feed mutate. -message MutateFeedsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateFeedResult results = 2; -} - -// The result for the feed mutate. -message MutateFeedResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.Feed feed = 2; -} diff --git a/google/ads/googleads/v8/services/gender_view_service.proto b/google/ads/googleads/v8/services/gender_view_service.proto deleted file mode 100644 index 14af4ae4e..000000000 --- a/google/ads/googleads/v8/services/gender_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/gender_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GenderViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Gender View service. - -// Service to manage gender views. -service GenderViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested gender view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGenderView(GetGenderViewRequest) returns (google.ads.googleads.v8.resources.GenderView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/genderViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [GenderViewService.GetGenderView][google.ads.googleads.v8.services.GenderViewService.GetGenderView]. -message GetGenderViewRequest { - // Required. The resource name of the gender view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GenderView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/geo_target_constant_service.proto b/google/ads/googleads/v8/services/geo_target_constant_service.proto deleted file mode 100644 index 570fdd229..000000000 --- a/google/ads/googleads/v8/services/geo_target_constant_service.proto +++ /dev/null @@ -1,146 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/geo_target_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GeoTargetConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Geo target constant service. - -// Service to fetch geo target constants. -service GeoTargetConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested geo target constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGeoTargetConstant(GetGeoTargetConstantRequest) returns (google.ads.googleads.v8.resources.GeoTargetConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=geoTargetConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Returns GeoTargetConstant suggestions by location name or by resource name. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [GeoTargetConstantSuggestionError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc SuggestGeoTargetConstants(SuggestGeoTargetConstantsRequest) returns (SuggestGeoTargetConstantsResponse) { - option (google.api.http) = { - post: "/v8/geoTargetConstants:suggest" - body: "*" - }; - } -} - -// Request message for [GeoTargetConstantService.GetGeoTargetConstant][google.ads.googleads.v8.services.GeoTargetConstantService.GetGeoTargetConstant]. -message GetGeoTargetConstantRequest { - // Required. The resource name of the geo target constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeoTargetConstant" - } - ]; -} - -// Request message for -// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v8.services.GeoTargetConstantService.SuggestGeoTargetConstants]. -message SuggestGeoTargetConstantsRequest { - // A list of location names. - message LocationNames { - // A list of location names. - repeated string names = 2; - } - - // A list of geo target constant resource names. - message GeoTargets { - // A list of geo target constant resource names. - repeated string geo_target_constants = 2; - } - - // If possible, returned geo targets are translated using this locale. If not, - // en is used by default. This is also used as a hint for returned geo - // targets. - optional string locale = 6; - - // Returned geo targets are restricted to this country code. - optional string country_code = 7; - - // Required. A selector of geo target constants. - oneof query { - // The location names to search by. At most 25 names can be set. - LocationNames location_names = 1; - - // The geo target constant resource names to filter by. - GeoTargets geo_targets = 2; - } -} - -// Response message for [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v8.services.GeoTargetConstantService.SuggestGeoTargetConstants]. -message SuggestGeoTargetConstantsResponse { - // Geo target constant suggestions. - repeated GeoTargetConstantSuggestion geo_target_constant_suggestions = 1; -} - -// A geo target constant suggestion. -message GeoTargetConstantSuggestion { - // The language this GeoTargetConstantSuggestion is currently translated to. - // It affects the name of geo target fields. For example, if locale=en, then - // name=Spain. If locale=es, then name=España. The default locale will be - // returned if no translation exists for the locale in the request. - optional string locale = 6; - - // Approximate user population that will be targeted, rounded to the - // nearest 100. - optional int64 reach = 7; - - // If the request searched by location name, this is the location name that - // matched the geo target. - optional string search_term = 8; - - // The GeoTargetConstant result. - google.ads.googleads.v8.resources.GeoTargetConstant geo_target_constant = 4; - - // The list of parents of the geo target constant. - repeated google.ads.googleads.v8.resources.GeoTargetConstant geo_target_constant_parents = 5; -} diff --git a/google/ads/googleads/v8/services/geographic_view_service.proto b/google/ads/googleads/v8/services/geographic_view_service.proto deleted file mode 100644 index a970348df..000000000 --- a/google/ads/googleads/v8/services/geographic_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/geographic_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GeographicViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the GeographicViewService. - -// Service to manage geographic views. -service GeographicViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested geographic view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGeographicView(GetGeographicViewRequest) returns (google.ads.googleads.v8.resources.GeographicView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/geographicViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [GeographicViewService.GetGeographicView][google.ads.googleads.v8.services.GeographicViewService.GetGeographicView]. -message GetGeographicViewRequest { - // Required. The resource name of the geographic view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GeographicView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/google_ads_field_service.proto b/google/ads/googleads/v8/services/google_ads_field_service.proto deleted file mode 100644 index 5c07b20fc..000000000 --- a/google/ads/googleads/v8/services/google_ads_field_service.proto +++ /dev/null @@ -1,115 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsFieldServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the GoogleAdsFieldService. - -// Service to fetch Google Ads API fields. -service GoogleAdsFieldService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns just the requested field. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGoogleAdsField(GetGoogleAdsFieldRequest) returns (google.ads.googleads.v8.resources.GoogleAdsField) { - option (google.api.http) = { - get: "/v8/{resource_name=googleAdsFields/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Returns all fields that match the search query. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QueryError]() - // [QuotaError]() - // [RequestError]() - rpc SearchGoogleAdsFields(SearchGoogleAdsFieldsRequest) returns (SearchGoogleAdsFieldsResponse) { - option (google.api.http) = { - post: "/v8/googleAdsFields:search" - body: "*" - }; - option (google.api.method_signature) = "query"; - } -} - -// Request message for [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v8.services.GoogleAdsFieldService.GetGoogleAdsField]. -message GetGoogleAdsFieldRequest { - // Required. The resource name of the field to get. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GoogleAdsField" - } - ]; -} - -// Request message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v8.services.GoogleAdsFieldService.SearchGoogleAdsFields]. -message SearchGoogleAdsFieldsRequest { - // Required. The query string. - string query = 1 [(google.api.field_behavior) = REQUIRED]; - - // Token of the page to retrieve. If not specified, the first page of - // results will be returned. Use the value obtained from `next_page_token` - // in the previous response in order to request the next page of results. - string page_token = 2; - - // Number of elements to retrieve in a single page. - // When too large a page is requested, the server may decide to further - // limit the number of returned resources. - int32 page_size = 3; -} - -// Response message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v8.services.GoogleAdsFieldService.SearchGoogleAdsFields]. -message SearchGoogleAdsFieldsResponse { - // The list of fields that matched the query. - repeated google.ads.googleads.v8.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. - // `next_page_token` is not returned for the last page. - string next_page_token = 2; - - // Total number of results that match the query ignoring the LIMIT clause. - int64 total_results_count = 3; -} diff --git a/google/ads/googleads/v8/services/google_ads_service.proto b/google/ads/googleads/v8/services/google_ads_service.proto deleted file mode 100644 index 61c03c115..000000000 --- a/google/ads/googleads/v8/services/google_ads_service.proto +++ /dev/null @@ -1,1252 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/metrics.proto"; -import "google/ads/googleads/v8/common/segments.proto"; -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/enums/summary_row_setting.proto"; -import "google/ads/googleads/v8/resources/accessible_bidding_strategy.proto"; -import "google/ads/googleads/v8/resources/account_budget.proto"; -import "google/ads/googleads/v8/resources/account_budget_proposal.proto"; -import "google/ads/googleads/v8/resources/account_link.proto"; -import "google/ads/googleads/v8/resources/ad_group.proto"; -import "google/ads/googleads/v8/resources/ad_group_ad.proto"; -import "google/ads/googleads/v8/resources/ad_group_ad_asset_view.proto"; -import "google/ads/googleads/v8/resources/ad_group_ad_label.proto"; -import "google/ads/googleads/v8/resources/ad_group_asset.proto"; -import "google/ads/googleads/v8/resources/ad_group_audience_view.proto"; -import "google/ads/googleads/v8/resources/ad_group_bid_modifier.proto"; -import "google/ads/googleads/v8/resources/ad_group_criterion.proto"; -import "google/ads/googleads/v8/resources/ad_group_criterion_label.proto"; -import "google/ads/googleads/v8/resources/ad_group_criterion_simulation.proto"; -import "google/ads/googleads/v8/resources/ad_group_extension_setting.proto"; -import "google/ads/googleads/v8/resources/ad_group_feed.proto"; -import "google/ads/googleads/v8/resources/ad_group_label.proto"; -import "google/ads/googleads/v8/resources/ad_group_simulation.proto"; -import "google/ads/googleads/v8/resources/ad_parameter.proto"; -import "google/ads/googleads/v8/resources/ad_schedule_view.proto"; -import "google/ads/googleads/v8/resources/age_range_view.proto"; -import "google/ads/googleads/v8/resources/asset.proto"; -import "google/ads/googleads/v8/resources/asset_field_type_view.proto"; -import "google/ads/googleads/v8/resources/batch_job.proto"; -import "google/ads/googleads/v8/resources/bidding_data_exclusion.proto"; -import "google/ads/googleads/v8/resources/bidding_seasonality_adjustment.proto"; -import "google/ads/googleads/v8/resources/bidding_strategy.proto"; -import "google/ads/googleads/v8/resources/bidding_strategy_simulation.proto"; -import "google/ads/googleads/v8/resources/billing_setup.proto"; -import "google/ads/googleads/v8/resources/call_view.proto"; -import "google/ads/googleads/v8/resources/campaign.proto"; -import "google/ads/googleads/v8/resources/campaign_asset.proto"; -import "google/ads/googleads/v8/resources/campaign_audience_view.proto"; -import "google/ads/googleads/v8/resources/campaign_bid_modifier.proto"; -import "google/ads/googleads/v8/resources/campaign_budget.proto"; -import "google/ads/googleads/v8/resources/campaign_criterion.proto"; -import "google/ads/googleads/v8/resources/campaign_criterion_simulation.proto"; -import "google/ads/googleads/v8/resources/campaign_draft.proto"; -import "google/ads/googleads/v8/resources/campaign_experiment.proto"; -import "google/ads/googleads/v8/resources/campaign_extension_setting.proto"; -import "google/ads/googleads/v8/resources/campaign_feed.proto"; -import "google/ads/googleads/v8/resources/campaign_label.proto"; -import "google/ads/googleads/v8/resources/campaign_shared_set.proto"; -import "google/ads/googleads/v8/resources/campaign_simulation.proto"; -import "google/ads/googleads/v8/resources/carrier_constant.proto"; -import "google/ads/googleads/v8/resources/change_event.proto"; -import "google/ads/googleads/v8/resources/change_status.proto"; -import "google/ads/googleads/v8/resources/click_view.proto"; -import "google/ads/googleads/v8/resources/combined_audience.proto"; -import "google/ads/googleads/v8/resources/conversion_action.proto"; -import "google/ads/googleads/v8/resources/conversion_custom_variable.proto"; -import "google/ads/googleads/v8/resources/conversion_value_rule.proto"; -import "google/ads/googleads/v8/resources/conversion_value_rule_set.proto"; -import "google/ads/googleads/v8/resources/currency_constant.proto"; -import "google/ads/googleads/v8/resources/custom_audience.proto"; -import "google/ads/googleads/v8/resources/custom_interest.proto"; -import "google/ads/googleads/v8/resources/customer.proto"; -import "google/ads/googleads/v8/resources/customer_asset.proto"; -import "google/ads/googleads/v8/resources/customer_client.proto"; -import "google/ads/googleads/v8/resources/customer_client_link.proto"; -import "google/ads/googleads/v8/resources/customer_extension_setting.proto"; -import "google/ads/googleads/v8/resources/customer_feed.proto"; -import "google/ads/googleads/v8/resources/customer_label.proto"; -import "google/ads/googleads/v8/resources/customer_manager_link.proto"; -import "google/ads/googleads/v8/resources/customer_negative_criterion.proto"; -import "google/ads/googleads/v8/resources/customer_user_access.proto"; -import "google/ads/googleads/v8/resources/customer_user_access_invitation.proto"; -import "google/ads/googleads/v8/resources/detail_placement_view.proto"; -import "google/ads/googleads/v8/resources/detailed_demographic.proto"; -import "google/ads/googleads/v8/resources/display_keyword_view.proto"; -import "google/ads/googleads/v8/resources/distance_view.proto"; -import "google/ads/googleads/v8/resources/domain_category.proto"; -import "google/ads/googleads/v8/resources/dynamic_search_ads_search_term_view.proto"; -import "google/ads/googleads/v8/resources/expanded_landing_page_view.proto"; -import "google/ads/googleads/v8/resources/extension_feed_item.proto"; -import "google/ads/googleads/v8/resources/feed.proto"; -import "google/ads/googleads/v8/resources/feed_item.proto"; -import "google/ads/googleads/v8/resources/feed_item_set.proto"; -import "google/ads/googleads/v8/resources/feed_item_set_link.proto"; -import "google/ads/googleads/v8/resources/feed_item_target.proto"; -import "google/ads/googleads/v8/resources/feed_mapping.proto"; -import "google/ads/googleads/v8/resources/feed_placeholder_view.proto"; -import "google/ads/googleads/v8/resources/gender_view.proto"; -import "google/ads/googleads/v8/resources/geo_target_constant.proto"; -import "google/ads/googleads/v8/resources/geographic_view.proto"; -import "google/ads/googleads/v8/resources/group_placement_view.proto"; -import "google/ads/googleads/v8/resources/hotel_group_view.proto"; -import "google/ads/googleads/v8/resources/hotel_performance_view.proto"; -import "google/ads/googleads/v8/resources/income_range_view.proto"; -import "google/ads/googleads/v8/resources/keyword_plan.proto"; -import "google/ads/googleads/v8/resources/keyword_plan_ad_group.proto"; -import "google/ads/googleads/v8/resources/keyword_plan_ad_group_keyword.proto"; -import "google/ads/googleads/v8/resources/keyword_plan_campaign.proto"; -import "google/ads/googleads/v8/resources/keyword_plan_campaign_keyword.proto"; -import "google/ads/googleads/v8/resources/keyword_theme_constant.proto"; -import "google/ads/googleads/v8/resources/keyword_view.proto"; -import "google/ads/googleads/v8/resources/label.proto"; -import "google/ads/googleads/v8/resources/landing_page_view.proto"; -import "google/ads/googleads/v8/resources/language_constant.proto"; -import "google/ads/googleads/v8/resources/life_event.proto"; -import "google/ads/googleads/v8/resources/location_view.proto"; -import "google/ads/googleads/v8/resources/managed_placement_view.proto"; -import "google/ads/googleads/v8/resources/media_file.proto"; -import "google/ads/googleads/v8/resources/mobile_app_category_constant.proto"; -import "google/ads/googleads/v8/resources/mobile_device_constant.proto"; -import "google/ads/googleads/v8/resources/offline_user_data_job.proto"; -import "google/ads/googleads/v8/resources/operating_system_version_constant.proto"; -import "google/ads/googleads/v8/resources/paid_organic_search_term_view.proto"; -import "google/ads/googleads/v8/resources/parental_status_view.proto"; -import "google/ads/googleads/v8/resources/product_bidding_category_constant.proto"; -import "google/ads/googleads/v8/resources/product_group_view.proto"; -import "google/ads/googleads/v8/resources/recommendation.proto"; -import "google/ads/googleads/v8/resources/remarketing_action.proto"; -import "google/ads/googleads/v8/resources/search_term_view.proto"; -import "google/ads/googleads/v8/resources/shared_criterion.proto"; -import "google/ads/googleads/v8/resources/shared_set.proto"; -import "google/ads/googleads/v8/resources/shopping_performance_view.proto"; -import "google/ads/googleads/v8/resources/smart_campaign_search_term_view.proto"; -import "google/ads/googleads/v8/resources/smart_campaign_setting.proto"; -import "google/ads/googleads/v8/resources/third_party_app_analytics_link.proto"; -import "google/ads/googleads/v8/resources/topic_constant.proto"; -import "google/ads/googleads/v8/resources/topic_view.proto"; -import "google/ads/googleads/v8/resources/user_interest.proto"; -import "google/ads/googleads/v8/resources/user_list.proto"; -import "google/ads/googleads/v8/resources/user_location_view.proto"; -import "google/ads/googleads/v8/resources/video.proto"; -import "google/ads/googleads/v8/resources/webpage_view.proto"; -import "google/ads/googleads/v8/services/ad_group_ad_label_service.proto"; -import "google/ads/googleads/v8/services/ad_group_ad_service.proto"; -import "google/ads/googleads/v8/services/ad_group_asset_service.proto"; -import "google/ads/googleads/v8/services/ad_group_bid_modifier_service.proto"; -import "google/ads/googleads/v8/services/ad_group_criterion_label_service.proto"; -import "google/ads/googleads/v8/services/ad_group_criterion_service.proto"; -import "google/ads/googleads/v8/services/ad_group_extension_setting_service.proto"; -import "google/ads/googleads/v8/services/ad_group_feed_service.proto"; -import "google/ads/googleads/v8/services/ad_group_label_service.proto"; -import "google/ads/googleads/v8/services/ad_group_service.proto"; -import "google/ads/googleads/v8/services/ad_parameter_service.proto"; -import "google/ads/googleads/v8/services/ad_service.proto"; -import "google/ads/googleads/v8/services/asset_service.proto"; -import "google/ads/googleads/v8/services/bidding_data_exclusion_service.proto"; -import "google/ads/googleads/v8/services/bidding_seasonality_adjustment_service.proto"; -import "google/ads/googleads/v8/services/bidding_strategy_service.proto"; -import "google/ads/googleads/v8/services/campaign_asset_service.proto"; -import "google/ads/googleads/v8/services/campaign_bid_modifier_service.proto"; -import "google/ads/googleads/v8/services/campaign_budget_service.proto"; -import "google/ads/googleads/v8/services/campaign_criterion_service.proto"; -import "google/ads/googleads/v8/services/campaign_draft_service.proto"; -import "google/ads/googleads/v8/services/campaign_experiment_service.proto"; -import "google/ads/googleads/v8/services/campaign_extension_setting_service.proto"; -import "google/ads/googleads/v8/services/campaign_feed_service.proto"; -import "google/ads/googleads/v8/services/campaign_label_service.proto"; -import "google/ads/googleads/v8/services/campaign_service.proto"; -import "google/ads/googleads/v8/services/campaign_shared_set_service.proto"; -import "google/ads/googleads/v8/services/conversion_action_service.proto"; -import "google/ads/googleads/v8/services/conversion_custom_variable_service.proto"; -import "google/ads/googleads/v8/services/conversion_value_rule_service.proto"; -import "google/ads/googleads/v8/services/conversion_value_rule_set_service.proto"; -import "google/ads/googleads/v8/services/customer_asset_service.proto"; -import "google/ads/googleads/v8/services/customer_extension_setting_service.proto"; -import "google/ads/googleads/v8/services/customer_feed_service.proto"; -import "google/ads/googleads/v8/services/customer_label_service.proto"; -import "google/ads/googleads/v8/services/customer_negative_criterion_service.proto"; -import "google/ads/googleads/v8/services/customer_service.proto"; -import "google/ads/googleads/v8/services/extension_feed_item_service.proto"; -import "google/ads/googleads/v8/services/feed_item_service.proto"; -import "google/ads/googleads/v8/services/feed_item_set_link_service.proto"; -import "google/ads/googleads/v8/services/feed_item_set_service.proto"; -import "google/ads/googleads/v8/services/feed_item_target_service.proto"; -import "google/ads/googleads/v8/services/feed_mapping_service.proto"; -import "google/ads/googleads/v8/services/feed_service.proto"; -import "google/ads/googleads/v8/services/keyword_plan_ad_group_keyword_service.proto"; -import "google/ads/googleads/v8/services/keyword_plan_ad_group_service.proto"; -import "google/ads/googleads/v8/services/keyword_plan_campaign_keyword_service.proto"; -import "google/ads/googleads/v8/services/keyword_plan_campaign_service.proto"; -import "google/ads/googleads/v8/services/keyword_plan_service.proto"; -import "google/ads/googleads/v8/services/label_service.proto"; -import "google/ads/googleads/v8/services/media_file_service.proto"; -import "google/ads/googleads/v8/services/remarketing_action_service.proto"; -import "google/ads/googleads/v8/services/shared_criterion_service.proto"; -import "google/ads/googleads/v8/services/shared_set_service.proto"; -import "google/ads/googleads/v8/services/smart_campaign_setting_service.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GoogleAdsServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the GoogleAdsService. - -// Service to fetch data and metrics across resources. -service GoogleAdsService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns all rows that match the search query. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ChangeEventError]() - // [ChangeStatusError]() - // [ClickViewError]() - // [HeaderError]() - // [InternalError]() - // [QueryError]() - // [QuotaError]() - // [RequestError]() - rpc Search(SearchGoogleAdsRequest) returns (SearchGoogleAdsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/googleAds:search" - body: "*" - }; - option (google.api.method_signature) = "customer_id,query"; - } - - // Returns all rows that match the search stream query. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ChangeEventError]() - // [ChangeStatusError]() - // [ClickViewError]() - // [HeaderError]() - // [InternalError]() - // [QueryError]() - // [QuotaError]() - // [RequestError]() - rpc SearchStream(SearchGoogleAdsStreamRequest) returns (stream SearchGoogleAdsStreamResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/googleAds:searchStream" - body: "*" - }; - option (google.api.method_signature) = "customer_id,query"; - } - - // Creates, updates, or removes resources. This method supports atomic - // transactions with multiple types of resources. For example, you can - // atomically create a campaign and a campaign budget, or perform up to - // thousands of mutates atomically. - // - // This method is essentially a wrapper around a series of mutate methods. The - // only features it offers over calling those methods directly are: - // - // - Atomic transactions - // - Temp resource names (described below) - // - Somewhat reduced latency over making a series of mutate calls - // - // Note: Only resources that support atomic transactions are included, so this - // method can't replace all calls to individual services. - // - // ## Atomic Transaction Benefits - // - // Atomicity makes error handling much easier. If you're making a series of - // changes and one fails, it can leave your account in an inconsistent state. - // With atomicity, you either reach the desired state directly, or the request - // fails and you can retry. - // - // ## Temp Resource Names - // - // Temp resource names are a special type of resource name used to create a - // resource and reference that resource in the same request. For example, if a - // campaign budget is created with `resource_name` equal to - // `customers/123/campaignBudgets/-1`, that resource name can be reused in - // the `Campaign.budget` field in the same request. That way, the two - // resources are created and linked atomically. - // - // To create a temp resource name, put a negative number in the part of the - // name that the server would normally allocate. - // - // Note: - // - // - Resources must be created with a temp name before the name can be reused. - // For example, the previous CampaignBudget+Campaign example would fail if - // the mutate order was reversed. - // - Temp names are not remembered across requests. - // - There's no limit to the number of temp names in a request. - // - Each temp name must use a unique negative number, even if the resource - // types differ. - // - // ## Latency - // - // It's important to group mutates by resource type or the request may time - // out and fail. Latency is roughly equal to a series of calls to individual - // mutate methods, where each change in resource type is a new call. For - // example, mutating 10 campaigns then 10 ad groups is like 2 calls, while - // mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is like 4 calls. - // - // List of thrown errors: - // [AdCustomizerError]() - // [AdError]() - // [AdGroupAdError]() - // [AdGroupCriterionError]() - // [AdGroupError]() - // [AssetError]() - // [AuthenticationError]() - // [AuthorizationError]() - // [BiddingError]() - // [CampaignBudgetError]() - // [CampaignCriterionError]() - // [CampaignError]() - // [CampaignExperimentError]() - // [CampaignSharedSetError]() - // [CollectionSizeError]() - // [ContextError]() - // [ConversionActionError]() - // [CriterionError]() - // [CustomerFeedError]() - // [DatabaseError]() - // [DateError]() - // [DateRangeError]() - // [DistinctError]() - // [ExtensionFeedItemError]() - // [ExtensionSettingError]() - // [FeedAttributeReferenceError]() - // [FeedError]() - // [FeedItemError]() - // [FeedItemSetError]() - // [FieldError]() - // [FieldMaskError]() - // [FunctionParsingError]() - // [HeaderError]() - // [ImageError]() - // [InternalError]() - // [KeywordPlanAdGroupKeywordError]() - // [KeywordPlanCampaignError]() - // [KeywordPlanError]() - // [LabelError]() - // [ListOperationError]() - // [MediaUploadError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NullError]() - // [OperationAccessDeniedError]() - // [PolicyFindingError]() - // [PolicyViolationError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SettingError]() - // [SharedSetError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - // [UrlFieldError]() - // [UserListError]() - // [YoutubeVideoRegistrationError]() - rpc Mutate(MutateGoogleAdsRequest) returns (MutateGoogleAdsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/googleAds:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,mutate_operations"; - } -} - -// Request message for [GoogleAdsService.Search][google.ads.googleads.v8.services.GoogleAdsService.Search]. -message SearchGoogleAdsRequest { - // Required. The ID of the customer being queried. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The query string. - string query = 2 [(google.api.field_behavior) = REQUIRED]; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. Use the value obtained from - // `next_page_token` in the previous response in order to request - // the next page of results. - string page_token = 3; - - // Number of elements to retrieve in a single page. - // When too large a page is requested, the server may decide to - // further limit the number of returned resources. - int32 page_size = 4; - - // If true, the request is validated but not executed. - bool validate_only = 5; - - // If true, the total number of results that match the query ignoring the - // LIMIT clause will be included in the response. - // Default is false. - bool return_total_results_count = 7; - - // 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.v8.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 8; -} - -// Response message for [GoogleAdsService.Search][google.ads.googleads.v8.services.GoogleAdsService.Search]. -message SearchGoogleAdsResponse { - // The list of rows that matched the query. - repeated GoogleAdsRow 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. `next_page_token` is not returned for the last - // page. - string next_page_token = 2; - - // Total number of results that match the query ignoring the LIMIT - // clause. - int64 total_results_count = 3; - - // FieldMask that represents what fields were requested by the user. - google.protobuf.FieldMask field_mask = 5; - - // Summary row that contains summary of metrics in results. - // Summary of metrics means aggregation of metrics across all results, - // here aggregation could be sum, average, rate, etc. - GoogleAdsRow summary_row = 6; -} - -// Request message for [GoogleAdsService.SearchStream][google.ads.googleads.v8.services.GoogleAdsService.SearchStream]. -message SearchGoogleAdsStreamRequest { - // Required. The ID of the customer being queried. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The query string. - string query = 2 [(google.api.field_behavior) = REQUIRED]; - - // 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.v8.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 3; -} - -// Response message for [GoogleAdsService.SearchStream][google.ads.googleads.v8.services.GoogleAdsService.SearchStream]. -message SearchGoogleAdsStreamResponse { - // The list of rows that matched the query. - repeated GoogleAdsRow results = 1; - - // FieldMask that represents what fields were requested by the user. - google.protobuf.FieldMask field_mask = 2; - - // Summary row that contains summary of metrics in results. - // Summary of metrics means aggregation of metrics across all results, - // here aggregation could be sum, average, rate, etc. - GoogleAdsRow summary_row = 3; - - // The unique id of the request that is used for debugging purposes. - string request_id = 4; -} - -// A returned row from the query. -message GoogleAdsRow { - // The account budget in the query. - google.ads.googleads.v8.resources.AccountBudget account_budget = 42; - - // The account budget proposal referenced in the query. - google.ads.googleads.v8.resources.AccountBudgetProposal account_budget_proposal = 43; - - // The AccountLink referenced in the query. - google.ads.googleads.v8.resources.AccountLink account_link = 143; - - // The ad group referenced in the query. - google.ads.googleads.v8.resources.AdGroup ad_group = 3; - - // The ad referenced in the query. - google.ads.googleads.v8.resources.AdGroupAd ad_group_ad = 16; - - // The ad group ad asset view in the query. - google.ads.googleads.v8.resources.AdGroupAdAssetView ad_group_ad_asset_view = 131; - - // The ad group ad label referenced in the query. - google.ads.googleads.v8.resources.AdGroupAdLabel ad_group_ad_label = 120; - - // The ad group asset referenced in the query. - google.ads.googleads.v8.resources.AdGroupAsset ad_group_asset = 154; - - // The ad group audience view referenced in the query. - google.ads.googleads.v8.resources.AdGroupAudienceView ad_group_audience_view = 57; - - // The bid modifier referenced in the query. - google.ads.googleads.v8.resources.AdGroupBidModifier ad_group_bid_modifier = 24; - - // The criterion referenced in the query. - google.ads.googleads.v8.resources.AdGroupCriterion ad_group_criterion = 17; - - // The ad group criterion label referenced in the query. - google.ads.googleads.v8.resources.AdGroupCriterionLabel ad_group_criterion_label = 121; - - // The ad group criterion simulation referenced in the query. - google.ads.googleads.v8.resources.AdGroupCriterionSimulation ad_group_criterion_simulation = 110; - - // The ad group extension setting referenced in the query. - google.ads.googleads.v8.resources.AdGroupExtensionSetting ad_group_extension_setting = 112; - - // The ad group feed referenced in the query. - google.ads.googleads.v8.resources.AdGroupFeed ad_group_feed = 67; - - // The ad group label referenced in the query. - google.ads.googleads.v8.resources.AdGroupLabel ad_group_label = 115; - - // The ad group simulation referenced in the query. - google.ads.googleads.v8.resources.AdGroupSimulation ad_group_simulation = 107; - - // The ad parameter referenced in the query. - google.ads.googleads.v8.resources.AdParameter ad_parameter = 130; - - // The age range view referenced in the query. - google.ads.googleads.v8.resources.AgeRangeView age_range_view = 48; - - // The ad schedule view referenced in the query. - google.ads.googleads.v8.resources.AdScheduleView ad_schedule_view = 89; - - // The domain category referenced in the query. - google.ads.googleads.v8.resources.DomainCategory domain_category = 91; - - // The asset referenced in the query. - google.ads.googleads.v8.resources.Asset asset = 105; - - // The asset field type view referenced in the query. - google.ads.googleads.v8.resources.AssetFieldTypeView asset_field_type_view = 168; - - // The batch job referenced in the query. - google.ads.googleads.v8.resources.BatchJob batch_job = 139; - - // The bidding data exclusion referenced in the query. - google.ads.googleads.v8.resources.BiddingDataExclusion bidding_data_exclusion = 159; - - // The bidding seasonality adjustment referenced in the query. - google.ads.googleads.v8.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 160; - - // The bidding strategy referenced in the query. - google.ads.googleads.v8.resources.BiddingStrategy bidding_strategy = 18; - - // The bidding strategy simulation referenced in the query. - google.ads.googleads.v8.resources.BiddingStrategySimulation bidding_strategy_simulation = 158; - - // The billing setup referenced in the query. - google.ads.googleads.v8.resources.BillingSetup billing_setup = 41; - - // The call view referenced in the query. - google.ads.googleads.v8.resources.CallView call_view = 152; - - // The campaign budget referenced in the query. - google.ads.googleads.v8.resources.CampaignBudget campaign_budget = 19; - - // The campaign referenced in the query. - google.ads.googleads.v8.resources.Campaign campaign = 2; - - // The campaign asset referenced in the query. - google.ads.googleads.v8.resources.CampaignAsset campaign_asset = 142; - - // The campaign audience view referenced in the query. - google.ads.googleads.v8.resources.CampaignAudienceView campaign_audience_view = 69; - - // The campaign bid modifier referenced in the query. - google.ads.googleads.v8.resources.CampaignBidModifier campaign_bid_modifier = 26; - - // The campaign criterion referenced in the query. - google.ads.googleads.v8.resources.CampaignCriterion campaign_criterion = 20; - - // The campaign criterion simulation referenced in the query. - google.ads.googleads.v8.resources.CampaignCriterionSimulation campaign_criterion_simulation = 111; - - // The campaign draft referenced in the query. - google.ads.googleads.v8.resources.CampaignDraft campaign_draft = 49; - - // The campaign experiment referenced in the query. - google.ads.googleads.v8.resources.CampaignExperiment campaign_experiment = 84; - - // The campaign extension setting referenced in the query. - google.ads.googleads.v8.resources.CampaignExtensionSetting campaign_extension_setting = 113; - - // The campaign feed referenced in the query. - google.ads.googleads.v8.resources.CampaignFeed campaign_feed = 63; - - // The campaign label referenced in the query. - google.ads.googleads.v8.resources.CampaignLabel campaign_label = 108; - - // Campaign Shared Set referenced in AWQL query. - google.ads.googleads.v8.resources.CampaignSharedSet campaign_shared_set = 30; - - // The campaign simulation referenced in the query. - google.ads.googleads.v8.resources.CampaignSimulation campaign_simulation = 157; - - // The carrier constant referenced in the query. - google.ads.googleads.v8.resources.CarrierConstant carrier_constant = 66; - - // The ChangeEvent referenced in the query. - google.ads.googleads.v8.resources.ChangeEvent change_event = 145; - - // The ChangeStatus referenced in the query. - google.ads.googleads.v8.resources.ChangeStatus change_status = 37; - - // The CombinedAudience referenced in the query. - google.ads.googleads.v8.resources.CombinedAudience combined_audience = 148; - - // The conversion action referenced in the query. - google.ads.googleads.v8.resources.ConversionAction conversion_action = 103; - - // The conversion custom variable referenced in the query. - google.ads.googleads.v8.resources.ConversionCustomVariable conversion_custom_variable = 153; - - // The conversion value rule referenced in the query. - google.ads.googleads.v8.resources.ConversionValueRule conversion_value_rule = 164; - - // The conversion value rule set referenced in the query. - google.ads.googleads.v8.resources.ConversionValueRuleSet conversion_value_rule_set = 165; - - // The ClickView referenced in the query. - google.ads.googleads.v8.resources.ClickView click_view = 122; - - // The currency constant referenced in the query. - google.ads.googleads.v8.resources.CurrencyConstant currency_constant = 134; - - // The CustomAudience referenced in the query. - google.ads.googleads.v8.resources.CustomAudience custom_audience = 147; - - // The CustomInterest referenced in the query. - google.ads.googleads.v8.resources.CustomInterest custom_interest = 104; - - // The customer referenced in the query. - google.ads.googleads.v8.resources.Customer customer = 1; - - // The customer asset referenced in the query. - google.ads.googleads.v8.resources.CustomerAsset customer_asset = 155; - - // The accessible bidding strategy referenced in the query. - google.ads.googleads.v8.resources.AccessibleBiddingStrategy accessible_bidding_strategy = 169; - - // The CustomerManagerLink referenced in the query. - google.ads.googleads.v8.resources.CustomerManagerLink customer_manager_link = 61; - - // The CustomerClientLink referenced in the query. - google.ads.googleads.v8.resources.CustomerClientLink customer_client_link = 62; - - // The CustomerClient referenced in the query. - google.ads.googleads.v8.resources.CustomerClient customer_client = 70; - - // The customer extension setting referenced in the query. - google.ads.googleads.v8.resources.CustomerExtensionSetting customer_extension_setting = 114; - - // The customer feed referenced in the query. - google.ads.googleads.v8.resources.CustomerFeed customer_feed = 64; - - // The customer label referenced in the query. - google.ads.googleads.v8.resources.CustomerLabel customer_label = 124; - - // The customer negative criterion referenced in the query. - google.ads.googleads.v8.resources.CustomerNegativeCriterion customer_negative_criterion = 88; - - // The CustomerUserAccess referenced in the query. - google.ads.googleads.v8.resources.CustomerUserAccess customer_user_access = 146; - - // The CustomerUserAccessInvitation referenced in the query. - google.ads.googleads.v8.resources.CustomerUserAccessInvitation customer_user_access_invitation = 150; - - // The detail placement view referenced in the query. - google.ads.googleads.v8.resources.DetailPlacementView detail_placement_view = 118; - - // The detailed demographic referenced in the query. - google.ads.googleads.v8.resources.DetailedDemographic detailed_demographic = 166; - - // The display keyword view referenced in the query. - google.ads.googleads.v8.resources.DisplayKeywordView display_keyword_view = 47; - - // The distance view referenced in the query. - google.ads.googleads.v8.resources.DistanceView distance_view = 132; - - // The dynamic search ads search term view referenced in the query. - google.ads.googleads.v8.resources.DynamicSearchAdsSearchTermView dynamic_search_ads_search_term_view = 106; - - // The expanded landing page view referenced in the query. - google.ads.googleads.v8.resources.ExpandedLandingPageView expanded_landing_page_view = 128; - - // The extension feed item referenced in the query. - google.ads.googleads.v8.resources.ExtensionFeedItem extension_feed_item = 85; - - // The feed referenced in the query. - google.ads.googleads.v8.resources.Feed feed = 46; - - // The feed item referenced in the query. - google.ads.googleads.v8.resources.FeedItem feed_item = 50; - - // The feed item set referenced in the query. - google.ads.googleads.v8.resources.FeedItemSet feed_item_set = 149; - - // The feed item set link referenced in the query. - google.ads.googleads.v8.resources.FeedItemSetLink feed_item_set_link = 151; - - // The feed item target referenced in the query. - google.ads.googleads.v8.resources.FeedItemTarget feed_item_target = 116; - - // The feed mapping referenced in the query. - google.ads.googleads.v8.resources.FeedMapping feed_mapping = 58; - - // The feed placeholder view referenced in the query. - google.ads.googleads.v8.resources.FeedPlaceholderView feed_placeholder_view = 97; - - // The gender view referenced in the query. - google.ads.googleads.v8.resources.GenderView gender_view = 40; - - // The geo target constant referenced in the query. - google.ads.googleads.v8.resources.GeoTargetConstant geo_target_constant = 23; - - // The geographic view referenced in the query. - google.ads.googleads.v8.resources.GeographicView geographic_view = 125; - - // The group placement view referenced in the query. - google.ads.googleads.v8.resources.GroupPlacementView group_placement_view = 119; - - // The hotel group view referenced in the query. - google.ads.googleads.v8.resources.HotelGroupView hotel_group_view = 51; - - // The hotel performance view referenced in the query. - google.ads.googleads.v8.resources.HotelPerformanceView hotel_performance_view = 71; - - // The income range view referenced in the query. - google.ads.googleads.v8.resources.IncomeRangeView income_range_view = 138; - - // The keyword view referenced in the query. - google.ads.googleads.v8.resources.KeywordView keyword_view = 21; - - // The keyword plan referenced in the query. - google.ads.googleads.v8.resources.KeywordPlan keyword_plan = 32; - - // The keyword plan campaign referenced in the query. - google.ads.googleads.v8.resources.KeywordPlanCampaign keyword_plan_campaign = 33; - - // The keyword plan campaign keyword referenced in the query. - google.ads.googleads.v8.resources.KeywordPlanCampaignKeyword keyword_plan_campaign_keyword = 140; - - // The keyword plan ad group referenced in the query. - google.ads.googleads.v8.resources.KeywordPlanAdGroup keyword_plan_ad_group = 35; - - // The keyword plan ad group referenced in the query. - google.ads.googleads.v8.resources.KeywordPlanAdGroupKeyword keyword_plan_ad_group_keyword = 141; - - // The keyword theme constant referenced in the query. - google.ads.googleads.v8.resources.KeywordThemeConstant keyword_theme_constant = 163; - - // The label referenced in the query. - google.ads.googleads.v8.resources.Label label = 52; - - // The landing page view referenced in the query. - google.ads.googleads.v8.resources.LandingPageView landing_page_view = 126; - - // The language constant referenced in the query. - google.ads.googleads.v8.resources.LanguageConstant language_constant = 55; - - // The location view referenced in the query. - google.ads.googleads.v8.resources.LocationView location_view = 123; - - // The managed placement view referenced in the query. - google.ads.googleads.v8.resources.ManagedPlacementView managed_placement_view = 53; - - // The media file referenced in the query. - google.ads.googleads.v8.resources.MediaFile media_file = 90; - - // The mobile app category constant referenced in the query. - google.ads.googleads.v8.resources.MobileAppCategoryConstant mobile_app_category_constant = 87; - - // The mobile device constant referenced in the query. - google.ads.googleads.v8.resources.MobileDeviceConstant mobile_device_constant = 98; - - // The offline user data job referenced in the query. - google.ads.googleads.v8.resources.OfflineUserDataJob offline_user_data_job = 137; - - // The operating system version constant referenced in the query. - google.ads.googleads.v8.resources.OperatingSystemVersionConstant operating_system_version_constant = 86; - - // The paid organic search term view referenced in the query. - google.ads.googleads.v8.resources.PaidOrganicSearchTermView paid_organic_search_term_view = 129; - - // The parental status view referenced in the query. - google.ads.googleads.v8.resources.ParentalStatusView parental_status_view = 45; - - // The Product Bidding Category referenced in the query. - google.ads.googleads.v8.resources.ProductBiddingCategoryConstant product_bidding_category_constant = 109; - - // The product group view referenced in the query. - google.ads.googleads.v8.resources.ProductGroupView product_group_view = 54; - - // The recommendation referenced in the query. - google.ads.googleads.v8.resources.Recommendation recommendation = 22; - - // The search term view referenced in the query. - google.ads.googleads.v8.resources.SearchTermView search_term_view = 68; - - // The shared set referenced in the query. - google.ads.googleads.v8.resources.SharedCriterion shared_criterion = 29; - - // The shared set referenced in the query. - google.ads.googleads.v8.resources.SharedSet shared_set = 27; - - // The Smart campaign setting referenced in the query. - google.ads.googleads.v8.resources.SmartCampaignSetting smart_campaign_setting = 167; - - // The shopping performance view referenced in the query. - google.ads.googleads.v8.resources.ShoppingPerformanceView shopping_performance_view = 117; - - // The Smart campaign search term view referenced in the query. - google.ads.googleads.v8.resources.SmartCampaignSearchTermView smart_campaign_search_term_view = 170; - - // The AccountLink referenced in the query. - google.ads.googleads.v8.resources.ThirdPartyAppAnalyticsLink third_party_app_analytics_link = 144; - - // The topic view referenced in the query. - google.ads.googleads.v8.resources.TopicView topic_view = 44; - - // The user interest referenced in the query. - google.ads.googleads.v8.resources.UserInterest user_interest = 59; - - // The life event referenced in the query. - google.ads.googleads.v8.resources.LifeEvent life_event = 161; - - // The user list referenced in the query. - google.ads.googleads.v8.resources.UserList user_list = 38; - - // The user location view referenced in the query. - google.ads.googleads.v8.resources.UserLocationView user_location_view = 135; - - // The remarketing action referenced in the query. - google.ads.googleads.v8.resources.RemarketingAction remarketing_action = 60; - - // The topic constant referenced in the query. - google.ads.googleads.v8.resources.TopicConstant topic_constant = 31; - - // The video referenced in the query. - google.ads.googleads.v8.resources.Video video = 39; - - // The webpage view referenced in the query. - google.ads.googleads.v8.resources.WebpageView webpage_view = 162; - - // The metrics. - google.ads.googleads.v8.common.Metrics metrics = 4; - - // The segments. - google.ads.googleads.v8.common.Segments segments = 102; -} - -// Request message for [GoogleAdsService.Mutate][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual resources. - repeated MutateOperation mutate_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. E.g. MutateCampaignResult.campaign. - google.ads.googleads.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// Response message for [GoogleAdsService.Mutate][google.ads.googleads.v8.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 - // operations. If any errors occur outside the operations (e.g., auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All responses for the mutate. - repeated MutateOperationResponse mutate_operation_responses = 1; -} - -// A single operation (create, update, remove) on a resource. -message MutateOperation { - // The mutate operation. - oneof operation { - // An ad group ad label mutate operation. - AdGroupAdLabelOperation ad_group_ad_label_operation = 17; - - // An ad group ad mutate operation. - AdGroupAdOperation ad_group_ad_operation = 1; - - // An ad group asset mutate operation. - AdGroupAssetOperation ad_group_asset_operation = 56; - - // An ad group bid modifier mutate operation. - AdGroupBidModifierOperation ad_group_bid_modifier_operation = 2; - - // An ad group criterion label mutate operation. - AdGroupCriterionLabelOperation ad_group_criterion_label_operation = 18; - - // An ad group criterion mutate operation. - AdGroupCriterionOperation ad_group_criterion_operation = 3; - - // An ad group extension setting mutate operation. - AdGroupExtensionSettingOperation ad_group_extension_setting_operation = 19; - - // An ad group feed mutate operation. - AdGroupFeedOperation ad_group_feed_operation = 20; - - // An ad group label mutate operation. - AdGroupLabelOperation ad_group_label_operation = 21; - - // An ad group mutate operation. - AdGroupOperation ad_group_operation = 5; - - // An ad mutate operation. - AdOperation ad_operation = 49; - - // An ad parameter mutate operation. - AdParameterOperation ad_parameter_operation = 22; - - // An asset mutate operation. - AssetOperation asset_operation = 23; - - // A bidding data exclusion mutate operation. - BiddingDataExclusionOperation bidding_data_exclusion_operation = 58; - - // A bidding seasonality adjustment mutate operation. - BiddingSeasonalityAdjustmentOperation bidding_seasonality_adjustment_operation = 59; - - // A bidding strategy mutate operation. - BiddingStrategyOperation bidding_strategy_operation = 6; - - // A campaign asset mutate operation. - CampaignAssetOperation campaign_asset_operation = 52; - - // A campaign bid modifier mutate operation. - CampaignBidModifierOperation campaign_bid_modifier_operation = 7; - - // A campaign budget mutate operation. - CampaignBudgetOperation campaign_budget_operation = 8; - - // A campaign criterion mutate operation. - CampaignCriterionOperation campaign_criterion_operation = 13; - - // A campaign draft mutate operation. - CampaignDraftOperation campaign_draft_operation = 24; - - // A campaign experiment mutate operation. - CampaignExperimentOperation campaign_experiment_operation = 25; - - // A campaign extension setting mutate operation. - CampaignExtensionSettingOperation campaign_extension_setting_operation = 26; - - // A campaign feed mutate operation. - CampaignFeedOperation campaign_feed_operation = 27; - - // A campaign label mutate operation. - CampaignLabelOperation campaign_label_operation = 28; - - // A campaign mutate operation. - CampaignOperation campaign_operation = 10; - - // A campaign shared set mutate operation. - CampaignSharedSetOperation campaign_shared_set_operation = 11; - - // A conversion action mutate operation. - ConversionActionOperation conversion_action_operation = 12; - - // A conversion custom variable mutate operation. - ConversionCustomVariableOperation conversion_custom_variable_operation = 55; - - // A conversion value rule mutate operation. - ConversionValueRuleOperation conversion_value_rule_operation = 63; - - // A conversion value rule set mutate operation. - ConversionValueRuleSetOperation conversion_value_rule_set_operation = 64; - - // A customer asset mutate operation. - CustomerAssetOperation customer_asset_operation = 57; - - // A customer extension setting mutate operation. - CustomerExtensionSettingOperation customer_extension_setting_operation = 30; - - // A customer feed mutate operation. - CustomerFeedOperation customer_feed_operation = 31; - - // A customer label mutate operation. - CustomerLabelOperation customer_label_operation = 32; - - // A customer negative criterion mutate operation. - CustomerNegativeCriterionOperation customer_negative_criterion_operation = 34; - - // A customer mutate operation. - CustomerOperation customer_operation = 35; - - // An extension feed item mutate operation. - ExtensionFeedItemOperation extension_feed_item_operation = 36; - - // A feed item mutate operation. - FeedItemOperation feed_item_operation = 37; - - // A feed item set mutate operation. - FeedItemSetOperation feed_item_set_operation = 53; - - // A feed item set link mutate operation. - FeedItemSetLinkOperation feed_item_set_link_operation = 54; - - // A feed item target mutate operation. - FeedItemTargetOperation feed_item_target_operation = 38; - - // A feed mapping mutate operation. - FeedMappingOperation feed_mapping_operation = 39; - - // A feed mutate operation. - FeedOperation feed_operation = 40; - - // A keyword plan ad group operation. - KeywordPlanAdGroupOperation keyword_plan_ad_group_operation = 44; - - // A keyword plan ad group keyword operation. - KeywordPlanAdGroupKeywordOperation keyword_plan_ad_group_keyword_operation = 50; - - // A keyword plan campaign keyword operation. - KeywordPlanCampaignKeywordOperation keyword_plan_campaign_keyword_operation = 51; - - // A keyword plan campaign operation. - KeywordPlanCampaignOperation keyword_plan_campaign_operation = 45; - - // A keyword plan operation. - KeywordPlanOperation keyword_plan_operation = 48; - - // A label mutate operation. - LabelOperation label_operation = 41; - - // A media file mutate operation. - MediaFileOperation media_file_operation = 42; - - // A remarketing action mutate operation. - RemarketingActionOperation remarketing_action_operation = 43; - - // A shared criterion mutate operation. - SharedCriterionOperation shared_criterion_operation = 14; - - // A shared set mutate operation. - SharedSetOperation shared_set_operation = 15; - - // A Smart campaign setting mutate operation. - SmartCampaignSettingOperation smart_campaign_setting_operation = 61; - - // A user list mutate operation. - UserListOperation user_list_operation = 16; - } -} - -// Response message for the resource mutate. -message MutateOperationResponse { - // The mutate response. - oneof response { - // The result for the ad group ad label mutate. - MutateAdGroupAdLabelResult ad_group_ad_label_result = 17; - - // The result for the ad group ad mutate. - MutateAdGroupAdResult ad_group_ad_result = 1; - - // The result for the ad group asset mutate. - MutateAdGroupAssetResult ad_group_asset_result = 56; - - // The result for the ad group bid modifier mutate. - MutateAdGroupBidModifierResult ad_group_bid_modifier_result = 2; - - // The result for the ad group criterion label mutate. - MutateAdGroupCriterionLabelResult ad_group_criterion_label_result = 18; - - // The result for the ad group criterion mutate. - MutateAdGroupCriterionResult ad_group_criterion_result = 3; - - // The result for the ad group extension setting mutate. - MutateAdGroupExtensionSettingResult ad_group_extension_setting_result = 19; - - // The result for the ad group feed mutate. - MutateAdGroupFeedResult ad_group_feed_result = 20; - - // The result for the ad group label mutate. - MutateAdGroupLabelResult ad_group_label_result = 21; - - // The result for the ad group mutate. - MutateAdGroupResult ad_group_result = 5; - - // The result for the ad parameter mutate. - MutateAdParameterResult ad_parameter_result = 22; - - // The result for the ad mutate. - MutateAdResult ad_result = 49; - - // The result for the asset mutate. - MutateAssetResult asset_result = 23; - - // The result for the bidding data exclusion mutate. - MutateBiddingDataExclusionsResult bidding_data_exclusion_result = 58; - - // The result for the bidding seasonality adjustment mutate. - MutateBiddingSeasonalityAdjustmentsResult bidding_seasonality_adjustment_result = 59; - - // The result for the bidding strategy mutate. - MutateBiddingStrategyResult bidding_strategy_result = 6; - - // The result for the campaign asset mutate. - MutateCampaignAssetResult campaign_asset_result = 52; - - // The result for the campaign bid modifier mutate. - MutateCampaignBidModifierResult campaign_bid_modifier_result = 7; - - // The result for the campaign budget mutate. - MutateCampaignBudgetResult campaign_budget_result = 8; - - // The result for the campaign criterion mutate. - MutateCampaignCriterionResult campaign_criterion_result = 13; - - // The result for the campaign draft mutate. - MutateCampaignDraftResult campaign_draft_result = 24; - - // The result for the campaign experiment mutate. - MutateCampaignExperimentResult campaign_experiment_result = 25; - - // The result for the campaign extension setting mutate. - MutateCampaignExtensionSettingResult campaign_extension_setting_result = 26; - - // The result for the campaign feed mutate. - MutateCampaignFeedResult campaign_feed_result = 27; - - // The result for the campaign label mutate. - MutateCampaignLabelResult campaign_label_result = 28; - - // The result for the campaign mutate. - MutateCampaignResult campaign_result = 10; - - // The result for the campaign shared set mutate. - MutateCampaignSharedSetResult campaign_shared_set_result = 11; - - // The result for the conversion action mutate. - MutateConversionActionResult conversion_action_result = 12; - - // The result for the conversion custom variable mutate. - MutateConversionCustomVariableResult conversion_custom_variable_result = 55; - - // The result for the conversion value rule mutate. - MutateConversionValueRuleResult conversion_value_rule_result = 63; - - // The result for the conversion value rule set mutate. - MutateConversionValueRuleSetResult conversion_value_rule_set_result = 64; - - // The result for the customer asset mutate. - MutateCustomerAssetResult customer_asset_result = 57; - - // The result for the customer extension setting mutate. - MutateCustomerExtensionSettingResult customer_extension_setting_result = 30; - - // The result for the customer feed mutate. - MutateCustomerFeedResult customer_feed_result = 31; - - // The result for the customer label mutate. - MutateCustomerLabelResult customer_label_result = 32; - - // The result for the customer negative criterion mutate. - MutateCustomerNegativeCriteriaResult customer_negative_criterion_result = 34; - - // The result for the customer mutate. - MutateCustomerResult customer_result = 35; - - // The result for the extension feed item mutate. - MutateExtensionFeedItemResult extension_feed_item_result = 36; - - // The result for the feed item mutate. - MutateFeedItemResult feed_item_result = 37; - - // The result for the feed item set mutate. - MutateFeedItemSetResult feed_item_set_result = 53; - - // The result for the feed item set link mutate. - MutateFeedItemSetLinkResult feed_item_set_link_result = 54; - - // The result for the feed item target mutate. - MutateFeedItemTargetResult feed_item_target_result = 38; - - // The result for the feed mapping mutate. - MutateFeedMappingResult feed_mapping_result = 39; - - // The result for the feed mutate. - MutateFeedResult feed_result = 40; - - // The result for the keyword plan ad group mutate. - MutateKeywordPlanAdGroupResult keyword_plan_ad_group_result = 44; - - // The result for the keyword plan campaign mutate. - MutateKeywordPlanCampaignResult keyword_plan_campaign_result = 45; - - // The result for the keyword plan ad group keyword mutate. - MutateKeywordPlanAdGroupKeywordResult keyword_plan_ad_group_keyword_result = 50; - - // The result for the keyword plan campaign keyword mutate. - MutateKeywordPlanCampaignKeywordResult keyword_plan_campaign_keyword_result = 51; - - // The result for the keyword plan mutate. - MutateKeywordPlansResult keyword_plan_result = 48; - - // 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 remarketing action mutate. - MutateRemarketingActionResult remarketing_action_result = 43; - - // The result for the shared criterion mutate. - MutateSharedCriterionResult shared_criterion_result = 14; - - // The result for the shared set mutate. - MutateSharedSetResult shared_set_result = 15; - - // The result for the Smart campaign setting mutate. - MutateSmartCampaignSettingResult smart_campaign_setting_result = 61; - - // The result for the user list mutate. - MutateUserListResult user_list_result = 16; - } -} diff --git a/google/ads/googleads/v8/services/group_placement_view_service.proto b/google/ads/googleads/v8/services/group_placement_view_service.proto deleted file mode 100644 index bdd50974b..000000000 --- a/google/ads/googleads/v8/services/group_placement_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/group_placement_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "GroupPlacementViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Group Placement View service. - -// Service to fetch Group Placement views. -service GroupPlacementViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Group Placement view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetGroupPlacementView(GetGroupPlacementViewRequest) returns (google.ads.googleads.v8.resources.GroupPlacementView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/groupPlacementViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [GroupPlacementViewService.GetGroupPlacementView][google.ads.googleads.v8.services.GroupPlacementViewService.GetGroupPlacementView]. -message GetGroupPlacementViewRequest { - // Required. The resource name of the Group Placement view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/GroupPlacementView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/hotel_group_view_service.proto b/google/ads/googleads/v8/services/hotel_group_view_service.proto deleted file mode 100644 index 4c90a32aa..000000000 --- a/google/ads/googleads/v8/services/hotel_group_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/hotel_group_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "HotelGroupViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Hotel Group View Service. - -// Service to manage Hotel Group Views. -service HotelGroupViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Hotel Group View in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetHotelGroupView(GetHotelGroupViewRequest) returns (google.ads.googleads.v8.resources.HotelGroupView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/hotelGroupViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [HotelGroupViewService.GetHotelGroupView][google.ads.googleads.v8.services.HotelGroupViewService.GetHotelGroupView]. -message GetHotelGroupViewRequest { - // Required. Resource name of the Hotel Group View to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/HotelGroupView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/hotel_performance_view_service.proto b/google/ads/googleads/v8/services/hotel_performance_view_service.proto deleted file mode 100644 index 80fc3a8d2..000000000 --- a/google/ads/googleads/v8/services/hotel_performance_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/hotel_performance_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "HotelPerformanceViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Hotel Performance View Service. - -// Service to manage Hotel Performance Views. -service HotelPerformanceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Hotel Performance View in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetHotelPerformanceView(GetHotelPerformanceViewRequest) returns (google.ads.googleads.v8.resources.HotelPerformanceView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/hotelPerformanceView}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [HotelPerformanceViewService.GetHotelPerformanceView][google.ads.googleads.v8.services.HotelPerformanceViewService.GetHotelPerformanceView]. -message GetHotelPerformanceViewRequest { - // Required. Resource name of the Hotel Performance View to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/HotelPerformanceView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/income_range_view_service.proto b/google/ads/googleads/v8/services/income_range_view_service.proto deleted file mode 100644 index 40c07445b..000000000 --- a/google/ads/googleads/v8/services/income_range_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/income_range_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "IncomeRangeViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Income Range View service. - -// Service to manage income range views. -service IncomeRangeViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested income range view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetIncomeRangeView(GetIncomeRangeViewRequest) returns (google.ads.googleads.v8.resources.IncomeRangeView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/incomeRangeViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [IncomeRangeViewService.GetIncomeRangeView][google.ads.googleads.v8.services.IncomeRangeViewService.GetIncomeRangeView]. -message GetIncomeRangeViewRequest { - // Required. The resource name of the income range view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/IncomeRangeView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/invoice_service.proto b/google/ads/googleads/v8/services/invoice_service.proto deleted file mode 100644 index 9da634584..000000000 --- a/google/ads/googleads/v8/services/invoice_service.proto +++ /dev/null @@ -1,83 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/month_of_year.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "InvoiceServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Invoice service. - -// A service to fetch invoices issued for a billing setup during a given month. -service InvoiceService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns all invoices associated with a billing setup, for a given month. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [InvoiceError]() - // [QuotaError]() - // [RequestError]() - rpc ListInvoices(ListInvoicesRequest) returns (ListInvoicesResponse) { - option (google.api.http) = { - get: "/v8/customers/{customer_id=*}/invoices" - }; - option (google.api.method_signature) = "customer_id,billing_setup,issue_year,issue_month"; - } -} - -// Request message for fetching the invoices of a given billing setup that were -// issued during a given month. -message ListInvoicesRequest { - // Required. The ID of the customer to fetch invoices for. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The billing setup resource name of the requested invoices. - // - // `customers/{customer_id}/billingSetups/{billing_setup_id}` - string billing_setup = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The issue year to retrieve invoices, in yyyy format. Only - // invoices issued in 2019 or later can be retrieved. - string issue_year = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The issue month to retrieve invoices. - google.ads.googleads.v8.enums.MonthOfYearEnum.MonthOfYear issue_month = 4 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for [InvoiceService.ListInvoices][google.ads.googleads.v8.services.InvoiceService.ListInvoices]. -message ListInvoicesResponse { - // The list of invoices that match the billing setup and time period. - repeated google.ads.googleads.v8.resources.Invoice invoices = 1; -} diff --git a/google/ads/googleads/v8/services/keyword_plan_ad_group_keyword_service.proto b/google/ads/googleads/v8/services/keyword_plan_ad_group_keyword_service.proto deleted file mode 100644 index fa940e695..000000000 --- a/google/ads/googleads/v8/services/keyword_plan_ad_group_keyword_service.proto +++ /dev/null @@ -1,165 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/keyword_plan_ad_group_keyword.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupKeywordServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the keyword plan ad group keyword service. - -// Service to manage Keyword Plan ad group keywords. KeywordPlanAdGroup is -// required to add ad group keywords. Positive and negative keywords are -// supported. A maximum of 10,000 positive keywords are allowed per keyword -// plan. A maximum of 1,000 negative keywords are allower per keyword plan. This -// includes campaign negative keywords and ad group negative keywords. -service KeywordPlanAdGroupKeywordService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Keyword Plan ad group keyword in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlanAdGroupKeyword(GetKeywordPlanAdGroupKeywordRequest) returns (google.ads.googleads.v8.resources.KeywordPlanAdGroupKeyword) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/keywordPlanAdGroupKeywords/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes Keyword Plan ad group keywords. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanAdGroupKeywordError]() - // [KeywordPlanError]() - // [MutateError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateKeywordPlanAdGroupKeywords(MutateKeywordPlanAdGroupKeywordsRequest) returns (MutateKeywordPlanAdGroupKeywordsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword][google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService.GetKeywordPlanAdGroupKeyword]. -message GetKeywordPlanAdGroupKeywordRequest { - // Required. The resource name of the ad group keyword to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" - } - ]; -} - -// Request message for -// [KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords][google.ads.googleads.v8.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords]. -message MutateKeywordPlanAdGroupKeywordsRequest { - // Required. The ID of the customer whose Keyword Plan ad group keywords are being - // modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Keyword Plan ad group - // keywords. - repeated KeywordPlanAdGroupKeywordOperation 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; -} - -// A single operation (create, update, remove) on a Keyword Plan ad group -// keyword. -message KeywordPlanAdGroupKeywordOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new Keyword Plan - // ad group keyword. - google.ads.googleads.v8.resources.KeywordPlanAdGroupKeyword create = 1; - - // Update operation: The Keyword Plan ad group keyword is expected to have a - // valid resource name. - google.ads.googleads.v8.resources.KeywordPlanAdGroupKeyword update = 2; - - // Remove operation: A resource name for the removed Keyword Plan ad group - // keyword is expected, in this format: - // - // `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroupKeyword" - }]; - } -} - -// Response message for a Keyword Plan ad group keyword mutate. -message MutateKeywordPlanAdGroupKeywordsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateKeywordPlanAdGroupKeywordResult results = 2; -} - -// The result for the Keyword Plan ad group keyword mutate. -message MutateKeywordPlanAdGroupKeywordResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/keyword_plan_ad_group_service.proto b/google/ads/googleads/v8/services/keyword_plan_ad_group_service.proto deleted file mode 100644 index 0e296b227..000000000 --- a/google/ads/googleads/v8/services/keyword_plan_ad_group_service.proto +++ /dev/null @@ -1,159 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/keyword_plan_ad_group.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanAdGroupServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the keyword plan ad group service. - -// Service to manage Keyword Plan ad groups. -service KeywordPlanAdGroupService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Keyword Plan ad group in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlanAdGroup(GetKeywordPlanAdGroupRequest) returns (google.ads.googleads.v8.resources.KeywordPlanAdGroup) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/keywordPlanAdGroups/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes Keyword Plan ad groups. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanAdGroupError]() - // [KeywordPlanError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateKeywordPlanAdGroups(MutateKeywordPlanAdGroupsRequest) returns (MutateKeywordPlanAdGroupsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/keywordPlanAdGroups:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [KeywordPlanAdGroupService.GetKeywordPlanAdGroup][google.ads.googleads.v8.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup]. -message GetKeywordPlanAdGroupRequest { - // Required. The resource name of the Keyword Plan ad group to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - } - ]; -} - -// Request message for [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v8.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. -message MutateKeywordPlanAdGroupsRequest { - // Required. The ID of the customer whose Keyword Plan ad groups are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Keyword Plan ad groups. - repeated KeywordPlanAdGroupOperation 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; -} - -// A single operation (create, update, remove) on a Keyword Plan ad group. -message KeywordPlanAdGroupOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new Keyword Plan - // ad group. - google.ads.googleads.v8.resources.KeywordPlanAdGroup create = 1; - - // Update operation: The Keyword Plan ad group is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.KeywordPlanAdGroup update = 2; - - // Remove operation: A resource name for the removed Keyword Plan ad group - // is expected, in this format: - // - // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanAdGroup" - }]; - } -} - -// Response message for a Keyword Plan ad group mutate. -message MutateKeywordPlanAdGroupsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. The order of the results is determined by the - // order of the keywords in the original request. - repeated MutateKeywordPlanAdGroupResult results = 2; -} - -// The result for the Keyword Plan ad group mutate. -message MutateKeywordPlanAdGroupResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/keyword_plan_campaign_keyword_service.proto b/google/ads/googleads/v8/services/keyword_plan_campaign_keyword_service.proto deleted file mode 100644 index 3229f3aa0..000000000 --- a/google/ads/googleads/v8/services/keyword_plan_campaign_keyword_service.proto +++ /dev/null @@ -1,162 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/keyword_plan_campaign_keyword.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignKeywordServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the keyword plan campaign keyword service. - -// Service to manage Keyword Plan campaign keywords. KeywordPlanCampaign is -// required to add the campaign keywords. Only negative keywords are supported. -// A maximum of 1000 negative keywords are allowed per plan. This includes both -// campaign negative keywords and ad group negative keywords. -service KeywordPlanCampaignKeywordService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested plan in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlanCampaignKeyword(GetKeywordPlanCampaignKeywordRequest) returns (google.ads.googleads.v8.resources.KeywordPlanCampaignKeyword) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/keywordPlanCampaignKeywords/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes Keyword Plan campaign keywords. Operation - // statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanAdGroupKeywordError]() - // [KeywordPlanCampaignKeywordError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateKeywordPlanCampaignKeywords(MutateKeywordPlanCampaignKeywordsRequest) returns (MutateKeywordPlanCampaignKeywordsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword][google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword]. -message GetKeywordPlanCampaignKeywordRequest { - // Required. The resource name of the plan to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" - } - ]; -} - -// Request message for -// [KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords][google.ads.googleads.v8.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords]. -message MutateKeywordPlanCampaignKeywordsRequest { - // Required. The ID of the customer whose campaign keywords are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Keyword Plan campaign - // keywords. - repeated KeywordPlanCampaignKeywordOperation 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; -} - -// A single operation (create, update, remove) on a Keyword Plan campaign -// keyword. -message KeywordPlanCampaignKeywordOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new Keyword Plan - // campaign keyword. - google.ads.googleads.v8.resources.KeywordPlanCampaignKeyword create = 1; - - // Update operation: The Keyword Plan campaign keyword expected to have a - // valid resource name. - google.ads.googleads.v8.resources.KeywordPlanCampaignKeyword update = 2; - - // Remove operation: A resource name for the removed Keyword Plan campaign - // keywords expected in this format: - // - // `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaignKeyword" - }]; - } -} - -// Response message for a Keyword Plan campaign keyword mutate. -message MutateKeywordPlanCampaignKeywordsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateKeywordPlanCampaignKeywordResult results = 2; -} - -// The result for the Keyword Plan campaign keyword mutate. -message MutateKeywordPlanCampaignKeywordResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/keyword_plan_campaign_service.proto b/google/ads/googleads/v8/services/keyword_plan_campaign_service.proto deleted file mode 100644 index f02084049..000000000 --- a/google/ads/googleads/v8/services/keyword_plan_campaign_service.proto +++ /dev/null @@ -1,160 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/keyword_plan_campaign.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanCampaignServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the keyword plan campaign service. - -// Service to manage Keyword Plan campaigns. -service KeywordPlanCampaignService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Keyword Plan campaign in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlanCampaign(GetKeywordPlanCampaignRequest) returns (google.ads.googleads.v8.resources.KeywordPlanCampaign) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/keywordPlanCampaigns/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes Keyword Plan campaigns. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanCampaignError]() - // [KeywordPlanError]() - // [ListOperationError]() - // [MutateError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - rpc MutateKeywordPlanCampaigns(MutateKeywordPlanCampaignsRequest) returns (MutateKeywordPlanCampaignsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/keywordPlanCampaigns:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [KeywordPlanCampaignService.GetKeywordPlanCampaign][google.ads.googleads.v8.services.KeywordPlanCampaignService.GetKeywordPlanCampaign]. -message GetKeywordPlanCampaignRequest { - // Required. The resource name of the Keyword Plan campaign to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - } - ]; -} - -// Request message for -// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v8.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. -message MutateKeywordPlanCampaignsRequest { - // Required. The ID of the customer whose Keyword Plan campaigns are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Keyword Plan campaigns. - repeated KeywordPlanCampaignOperation 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; -} - -// A single operation (create, update, remove) on a Keyword Plan campaign. -message KeywordPlanCampaignOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new Keyword Plan - // campaign. - google.ads.googleads.v8.resources.KeywordPlanCampaign create = 1; - - // Update operation: The Keyword Plan campaign is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.KeywordPlanCampaign update = 2; - - // Remove operation: A resource name for the removed Keyword Plan campaign - // is expected, in this format: - // - // `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlanCampaign" - }]; - } -} - -// Response message for a Keyword Plan campaign mutate. -message MutateKeywordPlanCampaignsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateKeywordPlanCampaignResult results = 2; -} - -// The result for the Keyword Plan campaign mutate. -message MutateKeywordPlanCampaignResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/keyword_plan_idea_service.proto b/google/ads/googleads/v8/services/keyword_plan_idea_service.proto deleted file mode 100644 index 5c436446c..000000000 --- a/google/ads/googleads/v8/services/keyword_plan_idea_service.proto +++ /dev/null @@ -1,181 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/keyword_plan_common.proto"; -import "google/ads/googleads/v8/enums/keyword_plan_keyword_annotation.proto"; -import "google/ads/googleads/v8/enums/keyword_plan_network.proto"; -import "google/api/annotations.proto"; -import "google/api/client.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanIdeaServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the keyword plan idea service. - -// Service to generate keyword ideas. -service KeywordPlanIdeaService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns a list of keyword ideas. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanIdeaError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateKeywordIdeas(GenerateKeywordIdeasRequest) returns (GenerateKeywordIdeaResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:generateKeywordIdeas" - body: "*" - }; - } -} - -// Request message for [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v8.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. -message GenerateKeywordIdeasRequest { - // The ID of the customer with the recommendation. - string customer_id = 1; - - // The resource name of the language to target. - // Required - optional string language = 14; - - // The resource names of the location to target. - // Max 10 - repeated string geo_target_constants = 15; - - // If true, adult keywords will be included in response. - // The default value is false. - bool include_adult_keywords = 10; - - // Token of the page to retrieve. If not specified, the first - // page of results will be returned. To request next page of results use the - // value obtained from `next_page_token` in the previous response. - // The request fields must match across pages. - string page_token = 12; - - // Number of results to retrieve in a single page. - // A maximum of 10,000 results may be returned, if the page_size - // exceeds this, it is ignored. - // If unspecified, at most 10,000 results will be returned. - // The server may decide to further limit the number of returned resources. - // If the response contains fewer than 10,000 results it may not be assumed - // as last page of results. - int32 page_size = 13; - - // Targeting network. - google.ads.googleads.v8.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 9; - - // The keyword annotations to include in response. - repeated google.ads.googleads.v8.enums.KeywordPlanKeywordAnnotationEnum.KeywordPlanKeywordAnnotation keyword_annotation = 17; - - // The aggregate fields to include in response. - google.ads.googleads.v8.common.KeywordPlanAggregateMetrics aggregate_metrics = 16; - - // The options for historical metrics data. - google.ads.googleads.v8.common.HistoricalMetricsOptions historical_metrics_options = 18; - - // The type of seed to generate keyword ideas. - oneof seed { - // A Keyword and a specific Url to generate ideas from - // e.g. cars, www.example.com/cars. - KeywordAndUrlSeed keyword_and_url_seed = 2; - - // A Keyword or phrase to generate ideas from, e.g. cars. - KeywordSeed keyword_seed = 3; - - // A specific url to generate ideas from, e.g. www.example.com/cars. - UrlSeed url_seed = 5; - - // The site to generate ideas from, e.g. www.example.com. - SiteSeed site_seed = 11; - } -} - -// Keyword And Url Seed -message KeywordAndUrlSeed { - // The URL to crawl in order to generate keyword ideas. - optional string url = 3; - - // Requires at least one keyword. - repeated string keywords = 4; -} - -// Keyword Seed -message KeywordSeed { - // Requires at least one keyword. - repeated string keywords = 2; -} - -// Site Seed -message SiteSeed { - // The domain name of the site. If the customer requesting the ideas doesn't - // own the site provided only public information is returned. - optional string site = 2; -} - -// Url Seed -message UrlSeed { - // The URL to crawl in order to generate keyword ideas. - optional string url = 2; -} - -// Response message for [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v8.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. -message GenerateKeywordIdeaResponse { - // Results of generating keyword ideas. - repeated GenerateKeywordIdeaResult results = 1; - - // The aggregate metrics for all keyword ideas. - google.ads.googleads.v8.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 4; - - // 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. - // `next_page_token` is not returned for the last page. - string next_page_token = 2; - - // Total number of results available. - int64 total_size = 3; -} - -// The result of generating keyword ideas. -message GenerateKeywordIdeaResult { - // Text of the keyword idea. - // As in Keyword Plan historical metrics, this text may not be an actual - // keyword, but the canonical form of multiple keywords. - // See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService. - optional string text = 5; - - // The historical metrics for the keyword. - google.ads.googleads.v8.common.KeywordPlanHistoricalMetrics keyword_idea_metrics = 3; - - // The annotations for the keyword. - // The annotation data is only provided if requested. - google.ads.googleads.v8.common.KeywordAnnotations keyword_annotations = 6; -} diff --git a/google/ads/googleads/v8/services/keyword_plan_service.proto b/google/ads/googleads/v8/services/keyword_plan_service.proto deleted file mode 100644 index 80608d9a9..000000000 --- a/google/ads/googleads/v8/services/keyword_plan_service.proto +++ /dev/null @@ -1,446 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/keyword_plan_common.proto"; -import "google/ads/googleads/v8/resources/keyword_plan.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordPlanServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the keyword plan service. - -// Service to manage keyword plans. -service KeywordPlanService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested plan in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordPlan(GetKeywordPlanRequest) returns (google.ads.googleads.v8.resources.KeywordPlan) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/keywordPlans/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes keyword plans. Operation statuses are - // returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [MutateError]() - // [NewResourceCreationError]() - // [QuotaError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [StringLengthError]() - rpc MutateKeywordPlans(MutateKeywordPlansRequest) returns (MutateKeywordPlansResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/keywordPlans:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Returns the requested Keyword Plan forecast curve. - // Only the bidding strategy is considered for generating forecast curve. - // The bidding strategy value specified in the plan is ignored. - // - // To generate a forecast at a value specified in the plan, use - // KeywordPlanService.GenerateForecastMetrics. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateForecastCurve(GenerateForecastCurveRequest) returns (GenerateForecastCurveResponse) { - option (google.api.http) = { - post: "/v8/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve" - body: "*" - }; - option (google.api.method_signature) = "keyword_plan"; - } - - // Returns a forecast in the form of a time series for the Keyword Plan over - // the next 52 weeks. - // (1) Forecasts closer to the current date are generally more accurate than - // further out. - // - // (2) The forecast reflects seasonal trends using current and - // prior traffic patterns. The forecast period of the plan is ignored. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateForecastTimeSeries(GenerateForecastTimeSeriesRequest) returns (GenerateForecastTimeSeriesResponse) { - option (google.api.http) = { - post: "/v8/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries" - body: "*" - }; - option (google.api.method_signature) = "keyword_plan"; - } - - // Returns the requested Keyword Plan forecasts. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateForecastMetrics(GenerateForecastMetricsRequest) returns (GenerateForecastMetricsResponse) { - option (google.api.http) = { - post: "/v8/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics" - body: "*" - }; - option (google.api.method_signature) = "keyword_plan"; - } - - // Returns the requested Keyword Plan historical metrics. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [KeywordPlanError]() - // [QuotaError]() - // [RequestError]() - rpc GenerateHistoricalMetrics(GenerateHistoricalMetricsRequest) returns (GenerateHistoricalMetricsResponse) { - option (google.api.http) = { - post: "/v8/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics" - body: "*" - }; - option (google.api.method_signature) = "keyword_plan"; - } -} - -// Request message for [KeywordPlanService.GetKeywordPlan][google.ads.googleads.v8.services.KeywordPlanService.GetKeywordPlan]. -message GetKeywordPlanRequest { - // Required. The resource name of the plan to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; -} - -// Request message for [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual keyword plans. - repeated KeywordPlanOperation 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; -} - -// A single operation (create, update, remove) on a keyword plan. -message KeywordPlanOperation { - // The FieldMask that determines which resource fields are modified in an - // update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new keyword plan. - google.ads.googleads.v8.resources.KeywordPlan create = 1; - - // Update operation: The keyword plan is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.KeywordPlan update = 2; - - // Remove operation: A resource name for the removed keyword plan is - // expected in this format: - // - // `customers/{customer_id}/keywordPlans/{keyword_plan_id}` - string remove = 3 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - }]; - } -} - -// Response message for a keyword plan mutate. -message MutateKeywordPlansResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateKeywordPlansResult results = 2; -} - -// The result for the keyword plan mutate. -message MutateKeywordPlansResult { - // Returned for successful operations. - string resource_name = 1; -} - -// Request message for [KeywordPlanService.GenerateForecastCurve][google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastCurve]. -message GenerateForecastCurveRequest { - // Required. The resource name of the keyword plan to be forecasted. - string keyword_plan = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; -} - -// Response message for [KeywordPlanService.GenerateForecastCurve][google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastCurve]. -message GenerateForecastCurveResponse { - // List of forecast curves for the keyword plan campaign. - // One maximum. - repeated KeywordPlanCampaignForecastCurve campaign_forecast_curves = 1; -} - -// Request message for [KeywordPlanService.GenerateForecastTimeSeries][google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastTimeSeries]. -message GenerateForecastTimeSeriesRequest { - // Required. The resource name of the keyword plan to be forecasted. - string keyword_plan = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; -} - -// Response message for [KeywordPlanService.GenerateForecastTimeSeries][google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastTimeSeries]. -message GenerateForecastTimeSeriesResponse { - // List of weekly time series forecasts for the keyword plan campaign. - // One maximum. - repeated KeywordPlanWeeklyTimeSeriesForecast weekly_time_series_forecasts = 1; -} - -// Request message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastMetrics]. -message GenerateForecastMetricsRequest { - // Required. The resource name of the keyword plan to be forecasted. - string keyword_plan = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; -} - -// Response message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v8.services.KeywordPlanService.GenerateForecastMetrics]. -message GenerateForecastMetricsResponse { - // List of campaign forecasts. - // One maximum. - repeated KeywordPlanCampaignForecast campaign_forecasts = 1; - - // List of ad group forecasts. - repeated KeywordPlanAdGroupForecast ad_group_forecasts = 2; - - // List of keyword forecasts. - repeated KeywordPlanKeywordForecast keyword_forecasts = 3; -} - -// A campaign forecast. -message KeywordPlanCampaignForecast { - // The resource name of the Keyword Plan campaign related to the forecast. - // - // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` - optional string keyword_plan_campaign = 3; - - // The forecast for the Keyword Plan campaign. - ForecastMetrics campaign_forecast = 2; -} - -// An ad group forecast. -message KeywordPlanAdGroupForecast { - // The resource name of the Keyword Plan ad group related to the forecast. - // - // `customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}` - optional string keyword_plan_ad_group = 3; - - // The forecast for the Keyword Plan ad group. - ForecastMetrics ad_group_forecast = 2; -} - -// A keyword forecast. -message KeywordPlanKeywordForecast { - // The resource name of the Keyword Plan keyword related to the forecast. - // - // `customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}` - optional string keyword_plan_ad_group_keyword = 3; - - // The forecast for the Keyword Plan keyword. - ForecastMetrics keyword_forecast = 2; -} - -// The forecast curve for the campaign. -message KeywordPlanCampaignForecastCurve { - // The resource name of the Keyword Plan campaign related to the forecast. - // - // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` - optional string keyword_plan_campaign = 3; - - // The max cpc bid forecast curve for the campaign. - KeywordPlanMaxCpcBidForecastCurve max_cpc_bid_forecast_curve = 2; -} - -// The max cpc bid forecast curve. -message KeywordPlanMaxCpcBidForecastCurve { - // The forecasts for the Keyword Plan campaign at different max CPC bids. - repeated KeywordPlanMaxCpcBidForecast max_cpc_bid_forecasts = 1; -} - -// The forecast of the campaign at a specific bid. -message KeywordPlanMaxCpcBidForecast { - // The max cpc bid in micros. - optional int64 max_cpc_bid_micros = 3; - - // The forecast for the Keyword Plan campaign at the specific bid. - ForecastMetrics max_cpc_bid_forecast = 2; -} - -// The weekly time series forecast for the keyword plan campaign. -message KeywordPlanWeeklyTimeSeriesForecast { - // The resource name of the Keyword Plan campaign related to the forecast. - // - // `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}` - optional string keyword_plan_campaign = 1; - - // The forecasts for the Keyword Plan campaign at different max CPC bids. - repeated KeywordPlanWeeklyForecast weekly_forecasts = 2; -} - -// The forecast of the campaign for the week starting start_date. -message KeywordPlanWeeklyForecast { - // The start date, in yyyy-mm-dd format. This date is inclusive. - optional string start_date = 1; - - // The forecast for the Keyword Plan campaign for the week. - ForecastMetrics forecast = 2; -} - -// Forecast metrics. -message ForecastMetrics { - // Impressions - optional double impressions = 7; - - // Ctr - optional double ctr = 8; - - // AVG cpc - optional int64 average_cpc = 9; - - // Clicks - optional double clicks = 10; - - // Cost - optional int64 cost_micros = 11; -} - -// Request message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v8.services.KeywordPlanService.GenerateHistoricalMetrics]. -message GenerateHistoricalMetricsRequest { - // Required. The resource name of the keyword plan of which historical metrics are - // requested. - string keyword_plan = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordPlan" - } - ]; - - // The aggregate fields to include in response. - google.ads.googleads.v8.common.KeywordPlanAggregateMetrics aggregate_metrics = 2; - - // The options for historical metrics data. - google.ads.googleads.v8.common.HistoricalMetricsOptions historical_metrics_options = 3; -} - -// Response message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v8.services.KeywordPlanService.GenerateHistoricalMetrics]. -message GenerateHistoricalMetricsResponse { - // List of keyword historical metrics. - repeated KeywordPlanKeywordHistoricalMetrics metrics = 1; - - // The aggregate metrics for all the keywords in the keyword planner plan. - google.ads.googleads.v8.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 2; -} - -// A keyword historical metrics. -message KeywordPlanKeywordHistoricalMetrics { - // The text of the query associated with one or more ad_group_keywords in the - // plan. - // - // Note that we de-dupe your keywords list, eliminating close variants before - // returning the plan's keywords as text. For example, if your plan originally - // contained the keywords 'car' and 'cars', the returned search query will - // only contain 'cars'. - // Starting V5, the list of de-duped queries will be included in - // close_variants field. - optional string search_query = 4; - - // The list of close variant queries for search_query whose search results - // are combined into the search_query. - repeated string close_variants = 3; - - // The historical metrics for the query associated with one or more - // ad_group_keywords in the plan. - google.ads.googleads.v8.common.KeywordPlanHistoricalMetrics keyword_metrics = 2; -} diff --git a/google/ads/googleads/v8/services/keyword_theme_constant_service.proto b/google/ads/googleads/v8/services/keyword_theme_constant_service.proto deleted file mode 100644 index 3e607999a..000000000 --- a/google/ads/googleads/v8/services/keyword_theme_constant_service.proto +++ /dev/null @@ -1,98 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordThemeConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Smart Campaign keyword theme constant service. - -// Service to fetch Smart Campaign keyword themes. -service KeywordThemeConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested keyword theme constant in full detail. - rpc GetKeywordThemeConstant(GetKeywordThemeConstantRequest) returns (google.ads.googleads.v8.resources.KeywordThemeConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=keywordThemeConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Returns KeywordThemeConstant suggestions by keyword themes. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc SuggestKeywordThemeConstants(SuggestKeywordThemeConstantsRequest) returns (SuggestKeywordThemeConstantsResponse) { - option (google.api.http) = { - post: "/v8/keywordThemeConstants:suggest" - body: "*" - }; - } -} - -// Request message for [KeywordThemeConstantService.GetKeywordThemeConstant][google.ads.googleads.v8.services.KeywordThemeConstantService.GetKeywordThemeConstant]. -message GetKeywordThemeConstantRequest { - // Required. The resource name of the keyword theme constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordThemeConstant" - } - ]; -} - -// Request message for -// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v8.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. -message SuggestKeywordThemeConstantsRequest { - // The query text of a keyword theme that will be used to map to similar - // keyword themes. E.g. "plumber" or "roofer". - string query_text = 1; - - // Upper-case, two-letter country code as defined by ISO-3166. This for - // refining the scope of the query, default to 'US' if not set. - string country_code = 2; - - // The two letter language code for get corresponding keyword theme for - // refining the scope of the query, default to 'en' if not set. - string language_code = 3; -} - -// Response message for -// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v8.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. -message SuggestKeywordThemeConstantsResponse { - // Smart Campaign keyword theme suggestions. - repeated google.ads.googleads.v8.resources.KeywordThemeConstant keyword_theme_constants = 1; -} diff --git a/google/ads/googleads/v8/services/keyword_view_service.proto b/google/ads/googleads/v8/services/keyword_view_service.proto deleted file mode 100644 index 7070cbcf8..000000000 --- a/google/ads/googleads/v8/services/keyword_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/keyword_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "KeywordViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Keyword View service. - -// Service to manage keyword views. -service KeywordViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested keyword view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetKeywordView(GetKeywordViewRequest) returns (google.ads.googleads.v8.resources.KeywordView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/keywordViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [KeywordViewService.GetKeywordView][google.ads.googleads.v8.services.KeywordViewService.GetKeywordView]. -message GetKeywordViewRequest { - // Required. The resource name of the keyword view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/KeywordView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/label_service.proto b/google/ads/googleads/v8/services/label_service.proto deleted file mode 100644 index dcec0e138..000000000 --- a/google/ads/googleads/v8/services/label_service.proto +++ /dev/null @@ -1,168 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/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/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LabelServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to manage labels. -service LabelService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested label in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetLabel(GetLabelRequest) returns (google.ads.googleads.v8.resources.Label) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/labels/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes labels. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [LabelError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateLabels(MutateLabelsRequest) returns (MutateLabelsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/labels:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [LabelService.GetLabel][google.ads.googleads.v8.services.LabelService.GetLabel]. -message GetLabelRequest { - // Required. The resource name of the label to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Label" - } - ]; -} - -// Request message for [LabelService.MutateLabels][google.ads.googleads.v8.services.LabelService.MutateLabels]. -message MutateLabelsRequest { - // Required. ID of the customer whose labels are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on labels. - repeated LabelOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove, update) on a label. -message LabelOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new label. - google.ads.googleads.v8.resources.Label create = 1; - - // Update operation: The label is expected to have a valid resource name. - google.ads.googleads.v8.resources.Label update = 2; - - // Remove operation: A resource name for the label being removed, in - // this format: - // - // `customers/{customer_id}/labels/{label_id}` - string remove = 3; - } -} - -// Response message for a labels mutate. -message MutateLabelsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateLabelResult results = 2; -} - -// The result for a label mutate. -message MutateLabelResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.Label label = 2; -} diff --git a/google/ads/googleads/v8/services/landing_page_view_service.proto b/google/ads/googleads/v8/services/landing_page_view_service.proto deleted file mode 100644 index 84a0325b9..000000000 --- a/google/ads/googleads/v8/services/landing_page_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/landing_page_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LandingPageViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the landing page view service. - -// Service to fetch landing page views. -service LandingPageViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested landing page view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetLandingPageView(GetLandingPageViewRequest) returns (google.ads.googleads.v8.resources.LandingPageView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/landingPageViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [LandingPageViewService.GetLandingPageView][google.ads.googleads.v8.services.LandingPageViewService.GetLandingPageView]. -message GetLandingPageViewRequest { - // Required. The resource name of the landing page view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LandingPageView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/language_constant_service.proto b/google/ads/googleads/v8/services/language_constant_service.proto deleted file mode 100644 index e82eaa06d..000000000 --- a/google/ads/googleads/v8/services/language_constant_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/language_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LanguageConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the language constant service. - -// Service to fetch language constants. -service LanguageConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested language constant. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetLanguageConstant(GetLanguageConstantRequest) returns (google.ads.googleads.v8.resources.LanguageConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=languageConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [LanguageConstantService.GetLanguageConstant][google.ads.googleads.v8.services.LanguageConstantService.GetLanguageConstant]. -message GetLanguageConstantRequest { - // Required. Resource name of the language constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LanguageConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/services/life_event_service.proto b/google/ads/googleads/v8/services/life_event_service.proto deleted file mode 100644 index 1660a6f4e..000000000 --- a/google/ads/googleads/v8/services/life_event_service.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/life_event.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LifeEventServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the life event service - -// Service to fetch Google Ads Life Events. -service LifeEventService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested life event in full detail. - rpc GetLifeEvent(GetLifeEventRequest) returns (google.ads.googleads.v8.resources.LifeEvent) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/lifeEvents/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [LifeEventService.GetLifeEvent][google.ads.googleads.v8.services.LifeEventService.GetLifeEvent]. -message GetLifeEventRequest { - // Required. Resource name of the LifeEvent to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LifeEvent" - } - ]; -} diff --git a/google/ads/googleads/v8/services/location_view_service.proto b/google/ads/googleads/v8/services/location_view_service.proto deleted file mode 100644 index cc2eabfbd..000000000 --- a/google/ads/googleads/v8/services/location_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/location_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "LocationViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Location View service. - -// Service to fetch location views. -service LocationViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested location view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetLocationView(GetLocationViewRequest) returns (google.ads.googleads.v8.resources.LocationView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/locationViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [LocationViewService.GetLocationView][google.ads.googleads.v8.services.LocationViewService.GetLocationView]. -message GetLocationViewRequest { - // Required. The resource name of the location view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/LocationView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/managed_placement_view_service.proto b/google/ads/googleads/v8/services/managed_placement_view_service.proto deleted file mode 100644 index e9b357927..000000000 --- a/google/ads/googleads/v8/services/managed_placement_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/managed_placement_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ManagedPlacementViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Managed Placement View service. - -// Service to manage Managed Placement views. -service ManagedPlacementViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Managed Placement view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetManagedPlacementView(GetManagedPlacementViewRequest) returns (google.ads.googleads.v8.resources.ManagedPlacementView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/managedPlacementViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [ManagedPlacementViewService.GetManagedPlacementView][google.ads.googleads.v8.services.ManagedPlacementViewService.GetManagedPlacementView]. -message GetManagedPlacementViewRequest { - // Required. The resource name of the Managed Placement View to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ManagedPlacementView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/media_file_service.proto b/google/ads/googleads/v8/services/media_file_service.proto deleted file mode 100644 index 5a08aafd9..000000000 --- a/google/ads/googleads/v8/services/media_file_service.proto +++ /dev/null @@ -1,156 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MediaFileServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::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"; - - // Returns the requested media file in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetMediaFile(GetMediaFileRequest) returns (google.ads.googleads.v8.resources.MediaFile) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/mediaFiles/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // 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: "/v8/customers/{customer_id=*}/mediaFiles:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [MediaFileService.GetMediaFile][google.ads.googleads.v8.services.MediaFileService.GetMediaFile] -message GetMediaFileRequest { - // Required. The resource name of the media file to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MediaFile" - } - ]; -} - -// Request message for [MediaFileService.MutateMediaFiles][google.ads.googleads.v8.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.v8.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.v8.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 (e.g. 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; - - // 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.v8.resources.MediaFile media_file = 2; -} diff --git a/google/ads/googleads/v8/services/merchant_center_link_service.proto b/google/ads/googleads/v8/services/merchant_center_link_service.proto deleted file mode 100644 index bdcc595f4..000000000 --- a/google/ads/googleads/v8/services/merchant_center_link_service.proto +++ /dev/null @@ -1,160 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::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: "/v8/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.v8.resources.MerchantCenterLink) { - option (google.api.http) = { - get: "/v8/{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: "/v8/customers/{customer_id=*}/merchantCenterLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for [MerchantCenterLinkService.ListMerchantCenterLinks][google.ads.googleads.v8.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.v8.services.MerchantCenterLinkService.ListMerchantCenterLinks]. -message ListMerchantCenterLinksResponse { - // Merchant Center links available for the requested customer - repeated google.ads.googleads.v8.resources.MerchantCenterLink merchant_center_links = 1; -} - -// Request message for [MerchantCenterLinkService.GetMerchantCenterLink][google.ads.googleads.v8.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.v8.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.v8.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; - } -} - -// 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; -} diff --git a/google/ads/googleads/v8/services/mobile_app_category_constant_service.proto b/google/ads/googleads/v8/services/mobile_app_category_constant_service.proto deleted file mode 100644 index 56d57d4c5..000000000 --- a/google/ads/googleads/v8/services/mobile_app_category_constant_service.proto +++ /dev/null @@ -1,66 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/mobile_app_category_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MobileAppCategoryConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to fetch mobile app category constants. -service MobileAppCategoryConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested mobile app category constant. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetMobileAppCategoryConstant(GetMobileAppCategoryConstantRequest) returns (google.ads.googleads.v8.resources.MobileAppCategoryConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=mobileAppCategoryConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [MobileAppCategoryConstantService.GetMobileAppCategoryConstant][google.ads.googleads.v8.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant]. -message GetMobileAppCategoryConstantRequest { - // Required. Resource name of the mobile app category constant to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MobileAppCategoryConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/services/mobile_device_constant_service.proto b/google/ads/googleads/v8/services/mobile_device_constant_service.proto deleted file mode 100644 index e0330d396..000000000 --- a/google/ads/googleads/v8/services/mobile_device_constant_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/mobile_device_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MobileDeviceConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the mobile device constant service. - -// Service to fetch mobile device constants. -service MobileDeviceConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested mobile device constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetMobileDeviceConstant(GetMobileDeviceConstantRequest) returns (google.ads.googleads.v8.resources.MobileDeviceConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=mobileDeviceConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [MobileDeviceConstantService.GetMobileDeviceConstant][google.ads.googleads.v8.services.MobileDeviceConstantService.GetMobileDeviceConstant]. -message GetMobileDeviceConstantRequest { - // Required. Resource name of the mobile device to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MobileDeviceConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/services/offline_user_data_job_service.proto b/google/ads/googleads/v8/services/offline_user_data_job_service.proto deleted file mode 100644 index 7dba2a51e..000000000 --- a/google/ads/googleads/v8/services/offline_user_data_job_service.proto +++ /dev/null @@ -1,224 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/offline_user_data.proto"; -import "google/ads/googleads/v8/resources/offline_user_data_job.proto"; -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/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "OfflineUserDataJobServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the OfflineUserDataJobService. - -// Service to manage offline user data jobs. -service OfflineUserDataJobService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Creates an offline user data job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [NotAllowlistedError]() - // [OfflineUserDataJobError]() - // [QuotaError]() - // [RequestError]() - rpc CreateOfflineUserDataJob(CreateOfflineUserDataJobRequest) returns (CreateOfflineUserDataJobResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/offlineUserDataJobs:create" - body: "*" - }; - option (google.api.method_signature) = "customer_id,job"; - } - - // Returns the offline user data job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetOfflineUserDataJob(GetOfflineUserDataJobRequest) returns (google.ads.googleads.v8.resources.OfflineUserDataJob) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/offlineUserDataJobs/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Adds operations to the offline user data job. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [OfflineUserDataJobError]() - // [QuotaError]() - // [RequestError]() - rpc AddOfflineUserDataJobOperations(AddOfflineUserDataJobOperationsRequest) returns (AddOfflineUserDataJobOperationsResponse) { - option (google.api.http) = { - post: "/v8/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" - body: "*" - }; - option (google.api.method_signature) = "resource_name,operations"; - } - - // Runs the offline user data job. - // - // When finished, the long running operation will contain the processing - // result or failure information, if any. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [HeaderError]() - // [InternalError]() - // [OfflineUserDataJobError]() - // [QuotaError]() - // [RequestError]() - rpc RunOfflineUserDataJob(RunOfflineUserDataJobRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v8/{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.protobuf.Empty" - }; - } -} - -// Request message for -// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v8.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.v8.resources.OfflineUserDataJob job = 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; -} - -// Response message for -// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v8.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. -message CreateOfflineUserDataJobResponse { - // The resource name of the OfflineUserDataJob. - string resource_name = 1; -} - -// Request message for [OfflineUserDataJobService.GetOfflineUserDataJob][google.ads.googleads.v8.services.OfflineUserDataJobService.GetOfflineUserDataJob]. -message GetOfflineUserDataJobRequest { - // Required. The resource name of the OfflineUserDataJob to get. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - } - ]; -} - -// Request message for [OfflineUserDataJobService.RunOfflineUserDataJob][google.ads.googleads.v8.services.OfflineUserDataJobService.RunOfflineUserDataJob]. -message RunOfflineUserDataJobRequest { - // Required. The resource name of the OfflineUserDataJob to run. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - } - ]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 2; -} - -// Request message for -// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v8.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. -message AddOfflineUserDataJobOperationsRequest { - // Required. The resource name of the OfflineUserDataJob. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OfflineUserDataJob" - } - ]; - - // True to enable partial failure for the offline user data job. - optional bool enable_partial_failure = 4; - - // Required. The list of operations to be done. - repeated OfflineUserDataJobOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 5; -} - -// Operation to be made for the AddOfflineUserDataJobOperationsRequest. -message OfflineUserDataJobOperation { - // Operation to be made for the AddOfflineUserDataJobOperationsRequest. - oneof operation { - // Add the provided data to the transaction. Data cannot be retrieved after - // being uploaded. - google.ads.googleads.v8.common.UserData create = 1; - - // Remove the provided data from the transaction. Data cannot be retrieved - // after being uploaded. - google.ads.googleads.v8.common.UserData remove = 2; - - // Remove all previously provided data. This is only supported for Customer - // Match. - bool remove_all = 3; - } -} - -// Response message for -// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v8.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 - // operations. If any errors occur outside the operations (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; -} diff --git a/google/ads/googleads/v8/services/operating_system_version_constant_service.proto b/google/ads/googleads/v8/services/operating_system_version_constant_service.proto deleted file mode 100644 index 995cc1a6b..000000000 --- a/google/ads/googleads/v8/services/operating_system_version_constant_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/operating_system_version_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "OperatingSystemVersionConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the OS version constant service - -// Service to fetch Operating System Version constants. -service OperatingSystemVersionConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested OS version constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetOperatingSystemVersionConstant(GetOperatingSystemVersionConstantRequest) returns (google.ads.googleads.v8.resources.OperatingSystemVersionConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=operatingSystemVersionConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant][google.ads.googleads.v8.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant]. -message GetOperatingSystemVersionConstantRequest { - // Required. Resource name of the OS version to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/OperatingSystemVersionConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/services/paid_organic_search_term_view_service.proto b/google/ads/googleads/v8/services/paid_organic_search_term_view_service.proto deleted file mode 100644 index 7bd14f1a3..000000000 --- a/google/ads/googleads/v8/services/paid_organic_search_term_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/paid_organic_search_term_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "PaidOrganicSearchTermViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Paid Organic Search Term View service. - -// Service to fetch paid organic search term views. -service PaidOrganicSearchTermViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested paid organic search term view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetPaidOrganicSearchTermView(GetPaidOrganicSearchTermViewRequest) returns (google.ads.googleads.v8.resources.PaidOrganicSearchTermView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/paidOrganicSearchTermViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView][google.ads.googleads.v8.services.PaidOrganicSearchTermViewService.GetPaidOrganicSearchTermView]. -message GetPaidOrganicSearchTermViewRequest { - // Required. The resource name of the paid organic search term view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/PaidOrganicSearchTermView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/parental_status_view_service.proto b/google/ads/googleads/v8/services/parental_status_view_service.proto deleted file mode 100644 index c37b143a6..000000000 --- a/google/ads/googleads/v8/services/parental_status_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/parental_status_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ParentalStatusViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Parental Status View service. - -// Service to manage parental status views. -service ParentalStatusViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested parental status view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetParentalStatusView(GetParentalStatusViewRequest) returns (google.ads.googleads.v8.resources.ParentalStatusView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/parentalStatusViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [ParentalStatusViewService.GetParentalStatusView][google.ads.googleads.v8.services.ParentalStatusViewService.GetParentalStatusView]. -message GetParentalStatusViewRequest { - // Required. The resource name of the parental status view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ParentalStatusView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/payments_account_service.proto b/google/ads/googleads/v8/services/payments_account_service.proto deleted file mode 100644 index 7c19f6c8b..000000000 --- a/google/ads/googleads/v8/services/payments_account_service.proto +++ /dev/null @@ -1,71 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "PaymentsAccountServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the payments account service. - -// Service to provide payments accounts that can be used to set up consolidated -// billing. -service PaymentsAccountService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns all payments accounts associated with all managers - // between the login customer ID and specified serving customer in the - // hierarchy, inclusive. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [PaymentsAccountError]() - // [QuotaError]() - // [RequestError]() - rpc ListPaymentsAccounts(ListPaymentsAccountsRequest) returns (ListPaymentsAccountsResponse) { - option (google.api.http) = { - get: "/v8/customers/{customer_id=*}/paymentsAccounts" - }; - option (google.api.method_signature) = "customer_id"; - } -} - -// Request message for fetching all accessible payments accounts. -message ListPaymentsAccountsRequest { - // Required. The ID of the customer to apply the PaymentsAccount list operation to. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v8.services.PaymentsAccountService.ListPaymentsAccounts]. -message ListPaymentsAccountsResponse { - // The list of accessible payments accounts. - repeated google.ads.googleads.v8.resources.PaymentsAccount payments_accounts = 1; -} diff --git a/google/ads/googleads/v8/services/product_bidding_category_constant_service.proto b/google/ads/googleads/v8/services/product_bidding_category_constant_service.proto deleted file mode 100644 index 42513e0ed..000000000 --- a/google/ads/googleads/v8/services/product_bidding_category_constant_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/product_bidding_category_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Product Bidding Category constant service - -// Service to fetch Product Bidding Categories. -service ProductBiddingCategoryConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Product Bidding Category in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetProductBiddingCategoryConstant(GetProductBiddingCategoryConstantRequest) returns (google.ads.googleads.v8.resources.ProductBiddingCategoryConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=productBiddingCategoryConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant][google.ads.googleads.v8.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant]. -message GetProductBiddingCategoryConstantRequest { - // Required. Resource name of the Product Bidding Category to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductBiddingCategoryConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/services/product_group_view_service.proto b/google/ads/googleads/v8/services/product_group_view_service.proto deleted file mode 100644 index 9b01f204a..000000000 --- a/google/ads/googleads/v8/services/product_group_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/product_group_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ProductGroupViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the ProductGroup View service. - -// Service to manage product group views. -service ProductGroupViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested product group view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetProductGroupView(GetProductGroupViewRequest) returns (google.ads.googleads.v8.resources.ProductGroupView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/productGroupViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [ProductGroupViewService.GetProductGroupView][google.ads.googleads.v8.services.ProductGroupViewService.GetProductGroupView]. -message GetProductGroupViewRequest { - // Required. The resource name of the product group view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductGroupView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/reach_plan_service.proto b/google/ads/googleads/v8/services/reach_plan_service.proto deleted file mode 100644 index 09587ed36..000000000 --- a/google/ads/googleads/v8/services/reach_plan_service.proto +++ /dev/null @@ -1,552 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/ads/googleads/v8/enums/frequency_cap_time_unit.proto"; -import "google/ads/googleads/v8/enums/reach_plan_ad_length.proto"; -import "google/ads/googleads/v8/enums/reach_plan_age_range.proto"; -import "google/ads/googleads/v8/enums/reach_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ReachPlanServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the reach plan service. - -// Reach Plan Service gives users information about audience size that can -// be reached through advertisement on YouTube. In particular, -// GenerateReachForecast provides estimated number of people of specified -// demographics that can be reached by an ad in a given market by a campaign of -// certain duration with a defined budget. -service ReachPlanService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the list of plannable locations (for example, countries & DMAs). - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListPlannableLocations(ListPlannableLocationsRequest) returns (ListPlannableLocationsResponse) { - option (google.api.http) = { - post: "/v8:listPlannableLocations" - body: "*" - }; - } - - // Returns the list of per-location plannable YouTube ad formats with allowed - // targeting. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) { - option (google.api.http) = { - post: "/v8:listPlannableProducts" - body: "*" - }; - option (google.api.method_signature) = "plannable_location_id"; - } - - // Generates a product mix ideas given a set of preferences. This method - // helps the advertiser to obtain a good mix of ad formats and budget - // allocations based on its preferences. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [ReachPlanError]() - // [RequestError]() - rpc GenerateProductMixIdeas(GenerateProductMixIdeasRequest) returns (GenerateProductMixIdeasResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:generateProductMixIdeas" - body: "*" - }; - option (google.api.method_signature) = "customer_id,plannable_location_id,currency_code,budget_micros"; - } - - // Generates a reach forecast for a given targeting / product mix. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RangeError]() - // [ReachPlanError]() - // [RequestError]() - rpc GenerateReachForecast(GenerateReachForecastRequest) returns (GenerateReachForecastResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:generateReachForecast" - body: "*" - }; - option (google.api.method_signature) = "customer_id,campaign_duration,planned_products"; - } -} - -// Request message for [ReachPlanService.ListPlannableLocations][google.ads.googleads.v8.services.ReachPlanService.ListPlannableLocations]. -message ListPlannableLocationsRequest { - -} - -// The list of plannable locations. -message ListPlannableLocationsResponse { - // The list of locations available for planning (Countries, DMAs, - // sub-countries). - // For locations like Countries and DMAs see - // https://developers.google.com/google-ads/api/reference/data/geotargets for - // more information. - repeated PlannableLocation plannable_locations = 1; -} - -// A plannable location: a country, a DMA, a metro region, a tv region, -// a province. -message PlannableLocation { - // The location identifier. - optional string id = 4; - - // The unique location name in english. - optional string name = 5; - - // 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.v8.services.ReachPlanService.ListPlannableLocations] or directly by accessing - // [GeoTargetConstantService.GetGeoTargetConstant][google.ads.googleads.v8.services.GeoTargetConstantService.GetGeoTargetConstant]. - optional int64 parent_country_id = 6; -} - -// Request to list available products in a given location. -message ListPlannableProductsRequest { - // Required. The ID of the selected location for planning. To list the available - // plannable location ids use [ReachPlanService.ListPlannableLocations][google.ads.googleads.v8.services.ReachPlanService.ListPlannableLocations]. - string plannable_location_id = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// A response with all available products. -message ListPlannableProductsResponse { - // The list of products available for planning and related targeting metadata. - repeated ProductMetadata product_metadata = 1; -} - -// The metadata associated with an available plannable product. -message ProductMetadata { - // The code associated with the ad product. E.g. BUMPER, TRUEVIEW_IN_STREAM - // To list the available plannable product codes use ListPlannableProducts. - optional string plannable_product_code = 4; - - // The name associated with the ad product. - string plannable_product_name = 3; - - // The allowed plannable targeting for this product. - PlannableTargeting plannable_targeting = 2; -} - -// The targeting for which traffic metrics will be reported. -message PlannableTargeting { - // Allowed plannable age ranges for the product for which metrics will be - // reported. Actual targeting is computed by mapping this age range onto - // standard Google common.AgeRangeInfo values. - repeated google.ads.googleads.v8.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_ranges = 1; - - // Targetable genders for the ad product. - repeated google.ads.googleads.v8.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.v8.common.DeviceInfo devices = 3; - - // Targetable networks for the ad product. - repeated google.ads.googleads.v8.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4; -} - -// Request message for [ReachPlanService.GenerateProductMixIdeas][google.ads.googleads.v8.services.ReachPlanService.GenerateProductMixIdeas]. -message GenerateProductMixIdeasRequest { - // Required. The ID of the customer. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The ID of the location, this is one of the ids returned by - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v8.services.ReachPlanService.ListPlannableLocations]. - string plannable_location_id = 6 [(google.api.field_behavior) = REQUIRED]; - - // Required. Currency code. - // Three-character ISO 4217 currency code. - string currency_code = 7 [(google.api.field_behavior) = REQUIRED]; - - // Required. Total budget. - // Amount in micros. One million is equivalent to one unit. - int64 budget_micros = 8 [(google.api.field_behavior) = REQUIRED]; - - // The preferences of the suggested product mix. - // An unset preference is interpreted as all possible values are allowed, - // unless explicitly specified. - Preferences preferences = 5; -} - -// Set of preferences about the planned mix. -message Preferences { - // True if ad skippable. - // If not set, default is any value. - optional bool is_skippable = 6; - - // True if ad start with sound. - // If not set, default is any value. - optional bool starts_with_sound = 7; - - // The length of the ad. - // If not set, default is any value. - google.ads.googleads.v8.enums.ReachPlanAdLengthEnum.ReachPlanAdLength ad_length = 3; - - // True if ad will only show on the top content. - // If not set, default is false. - optional bool top_content_only = 8; - - // True if the price guaranteed. The cost of serving the ad is agreed upfront - // and not subject to an auction. - // If not set, default is any value. - optional bool has_guaranteed_price = 9; -} - -// The suggested product mix. -message GenerateProductMixIdeasResponse { - // A list of products (ad formats) and the associated budget allocation idea. - repeated ProductAllocation product_allocation = 1; -} - -// An allocation of a part of the budget on a given product. -message ProductAllocation { - // Selected product for planning. The product codes returned are within the - // set of the ones returned by ListPlannableProducts when using the same - // location ID. - optional string plannable_product_code = 3; - - // The value to be allocated for the suggested product in requested currency. - // Amount in micros. One million is equivalent to one unit. - optional int64 budget_micros = 4; -} - -// Request message for [ReachPlanService.GenerateReachForecast][google.ads.googleads.v8.services.ReachPlanService.GenerateReachForecast]. -message GenerateReachForecastRequest { - // Required. The ID of the customer. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // The currency code. - // Three-character ISO 4217 currency code. - optional string currency_code = 9; - - // Required. Campaign duration. - CampaignDuration campaign_duration = 3 [(google.api.field_behavior) = REQUIRED]; - - // Desired cookie frequency cap that will be applied to each planned product. - // This is equivalent to the frequency cap exposed in Google Ads when creating - // a campaign, it represents the maximum number of times an ad can be shown to - // the same user. - // If not specified no cap is applied. - // - // This field is deprecated in v4 and will eventually be removed. - // Please use cookie_frequency_cap_setting instead. - optional int32 cookie_frequency_cap = 10; - - // Desired cookie frequency cap that will be applied to each planned product. - // This is equivalent to the frequency cap exposed in Google Ads when creating - // a campaign, it represents the maximum number of times an ad can be shown to - // the same user during a specified time interval. - // If not specified, a default of 0 (no cap) is applied. - // - // This field replaces the deprecated cookie_frequency_cap field. - FrequencyCap cookie_frequency_cap_setting = 8; - - // Desired minimum effective frequency (the number of times a person was - // exposed to the ad) for the reported reach metrics [1-10]. - // This won't affect the targeting, but just the reporting. - // If not specified, a default of 1 is applied. - // - // This field cannot be combined with the effective_frequency_limit field. - optional int32 min_effective_frequency = 11; - - // The highest minimum effective frequency (the number of times a person was - // exposed to the ad) value [1-10] to include in - // Forecast.effective_frequency_breakdowns. - // If not specified, Forecast.effective_frequency_breakdowns will not be - // provided. - // - // The effective frequency value provided here will also be used as the - // minimum effective frequency for the reported reach metrics. - // - // This field cannot be combined with the min_effective_frequency field. - optional EffectiveFrequencyLimit effective_frequency_limit = 12; - - // The targeting to be applied to all products selected in the product mix. - // - // This is planned targeting: execution details might vary based on the - // advertising product, please consult an implementation specialist. - // - // See specific metrics for details on how targeting affects them. - Targeting targeting = 6; - - // Required. The products to be forecast. - // The max number of allowed planned products is 15. - repeated PlannedProduct planned_products = 7 [(google.api.field_behavior) = REQUIRED]; -} - -// Effective frequency limit. -message EffectiveFrequencyLimit { - // The highest effective frequency value to include in - // Forecast.effective_frequency_breakdowns. - // This field supports frequencies 1-10, inclusive. - int32 effective_frequency_breakdown_limit = 1; -} - -// A rule specifying the maximum number of times an ad can be shown to a user -// over a particular time period. -message FrequencyCap { - // Required. The number of impressions, inclusive. - int32 impressions = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The type of time unit. - google.ads.googleads.v8.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// The targeting for which traffic metrics will be reported. -message Targeting { - // Required. The ID of the selected location. Plannable location IDs can be - // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v8.services.ReachPlanService.ListPlannableLocations]. - optional string plannable_location_id = 6; - - // Targeted age range. - // An unset value is equivalent to targeting all ages. - google.ads.googleads.v8.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2; - - // Targeted genders. - // An unset value is equivalent to targeting MALE and FEMALE. - repeated google.ads.googleads.v8.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.v8.services.ReachPlanService.ListPlannableProducts]. - repeated google.ads.googleads.v8.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.v8.services.ReachPlanService.ListPlannableProducts]. - google.ads.googleads.v8.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = 5; -} - -// The duration of a planned campaign. -message CampaignDuration { - // The duration value in days. - // - // This field cannot be combined with the date_range field. - optional int32 duration_in_days = 2; -} - -// A product being planned for reach. -message PlannedProduct { - // Required. Selected product for planning. - // The code associated with the ad product. E.g. Trueview, Bumper - // To list the available plannable product codes use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v8.services.ReachPlanService.ListPlannableProducts]. - optional string plannable_product_code = 3; - - // Required. Maximum budget allocation in micros for the selected product. - // The value is specified in the selected planning currency_code. - // E.g. 1 000 000$ = 1 000 000 000 000 micros. - optional int64 budget_micros = 4; -} - -// Response message containing the generated reach curve. -message GenerateReachForecastResponse { - // Reference on target audiences for this curve. - OnTargetAudienceMetrics on_target_audience_metrics = 1; - - // The generated reach curve for the planned product mix. - ReachCurve reach_curve = 2; -} - -// The reach curve for the planned products. -message ReachCurve { - // All points on the reach curve. - repeated ReachForecast reach_forecasts = 1; -} - -// A point on reach curve. -message ReachForecast { - // The cost in micros. - int64 cost_micros = 5; - - // Forecasted traffic metrics for this point. - Forecast forecast = 2; - - // The forecasted allocation and traffic metrics for each planned product - // at this point on the reach curve. - repeated PlannedProductReachForecast planned_product_reach_forecasts = 4; -} - -// Forecasted traffic metrics for the planned products and targeting. -message Forecast { - // Number of unique people reached at least - // GenerateReachForecastRequest.min_effective_frequency or - // GenerateReachForecastRequest.effective_frequency_limit times that exactly - // matches the Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the on_target_reach - // value will be rounded to 0. - optional int64 on_target_reach = 5; - - // Total number of unique people reached at least - // GenerateReachForecastRequest.min_effective_frequency or - // GenerateReachForecastRequest.effective_frequency_limit times. This includes - // people that may fall outside the specified Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the total_reach - // value will be rounded to 0. - optional int64 total_reach = 6; - - // Number of ad impressions that exactly matches the Targeting. - optional int64 on_target_impressions = 7; - - // Total number of ad impressions. This includes impressions that may fall - // outside the specified Targeting, due to insufficient information on - // signed-in users. - optional int64 total_impressions = 8; - - // Number of times the ad's impressions were considered viewable. - // See https://support.google.com/google-ads/answer/7029393 for - // more information about what makes an ad viewable and how - // viewability is measured. - optional int64 viewable_impressions = 9; - - // A list of effective frequency forecasts. The list is ordered starting with - // 1+ and ending with the value set in - // GenerateReachForecastRequest.effective_frequency_limit. If no - // effective_frequency_limit was set, this list will be empty. - repeated EffectiveFrequencyBreakdown effective_frequency_breakdowns = 10; -} - -// The forecasted allocation and traffic metrics for a specific product -// at a point on the reach curve. -message PlannedProductReachForecast { - // Selected product for planning. The product codes returned are within the - // set of the ones returned by ListPlannableProducts when using the same - // location ID. - string plannable_product_code = 1; - - // The cost in micros. This may differ from the product's input allocation - // if one or more planned products cannot fulfill the budget because of - // limited inventory. - int64 cost_micros = 2; - - // Forecasted traffic metrics for this product. - PlannedProductForecast planned_product_forecast = 3; -} - -// Forecasted traffic metrics for a planned product. -message PlannedProductForecast { - // Number of unique people reached that exactly matches the Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the on_target_reach - // value will be rounded to 0. - int64 on_target_reach = 1; - - // Number of unique people reached. This includes people that may fall - // outside the specified Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the total_reach - // value will be rounded to 0. - int64 total_reach = 2; - - // Number of ad impressions that exactly matches the Targeting. - int64 on_target_impressions = 3; - - // Total number of ad impressions. This includes impressions that may fall - // outside the specified Targeting, due to insufficient information on - // signed-in users. - int64 total_impressions = 4; - - // Number of times the ad's impressions were considered viewable. - // See https://support.google.com/google-ads/answer/7029393 for - // more information about what makes an ad viewable and how - // viewability is measured. - optional int64 viewable_impressions = 5; -} - -// Audience metrics for the planned products. -// These metrics consider the following targeting dimensions: -// -// - Location -// - PlannableAgeRange -// - Gender -message OnTargetAudienceMetrics { - // Reference audience size matching the considered targeting for YouTube. - optional int64 youtube_audience_size = 3; - - // Reference audience size matching the considered targeting for Census. - optional int64 census_audience_size = 4; -} - -// A breakdown of the number of unique people reached at a given effective -// frequency. -message EffectiveFrequencyBreakdown { - // The effective frequency [1-10]. - int32 effective_frequency = 1; - - // The number of unique people reached at least effective_frequency times that - // exactly matches the Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the on_target_reach - // value will be rounded to 0. - int64 on_target_reach = 2; - - // Total number of unique people reached at least effective_frequency times. - // This includes people that may fall outside the specified Targeting. - // - // Note that a minimum number of unique people must be reached in order for - // data to be reported. If the minimum number is not met, the total_reach - // value will be rounded to 0. - int64 total_reach = 3; -} diff --git a/google/ads/googleads/v8/services/recommendation_service.proto b/google/ads/googleads/v8/services/recommendation_service.proto deleted file mode 100644 index a4d3ab556..000000000 --- a/google/ads/googleads/v8/services/recommendation_service.proto +++ /dev/null @@ -1,309 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/extensions.proto"; -import "google/ads/googleads/v8/enums/keyword_match_type.proto"; -import "google/ads/googleads/v8/resources/ad.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Recommendation service. - -// Service to manage recommendations. -service RecommendationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested recommendation in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetRecommendation(GetRecommendationRequest) returns (google.ads.googleads.v8.resources.Recommendation) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/recommendations/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Applies given recommendations with corresponding apply parameters. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [QuotaError]() - // [RecommendationError]() - // [RequestError]() - // [UrlFieldError]() - rpc ApplyRecommendation(ApplyRecommendationRequest) returns (ApplyRecommendationResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/recommendations:apply" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } - - // Dismisses given recommendations. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RecommendationError]() - // [RequestError]() - rpc DismissRecommendation(DismissRecommendationRequest) returns (DismissRecommendationResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/recommendations:dismiss" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [RecommendationService.GetRecommendation][google.ads.googleads.v8.services.RecommendationService.GetRecommendation]. -message GetRecommendationRequest { - // Required. The resource name of the recommendation to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Recommendation" - } - ]; -} - -// Request message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v8.services.RecommendationService.ApplyRecommendation]. -message ApplyRecommendationRequest { - // Required. The ID of the customer with the recommendation. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to apply recommendations. - // If partial_failure=false all recommendations should be of the same type - // There is a limit of 100 operations per request. - repeated ApplyRecommendationOperation operations = 2 [(google.api.field_behavior) = REQUIRED]; - - // If true, successful operations will be carried out and invalid - // operations will return errors. If false, operations will be carried - // out as a transaction if and only if they are all valid. - // Default is false. - bool partial_failure = 3; -} - -// Information about the operation to apply a recommendation and any parameters -// to customize it. -message ApplyRecommendationOperation { - // Parameters to use when applying a campaign budget recommendation. - message CampaignBudgetParameters { - // New budget amount to set for target budget resource. This is a required - // field. - optional int64 new_budget_amount_micros = 2; - } - - // Parameters to use when applying a text ad recommendation. - 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.v8.resources.Ad ad = 1; - } - - // Parameters to use when applying keyword recommendation. - message KeywordParameters { - // The ad group resource to add keyword to. This is a required field. - optional string ad_group = 4; - - // The match type of the keyword. This is a required field. - google.ads.googleads.v8.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; - - // Optional, CPC bid to set for the keyword. If not set, keyword will use - // bid based on bidding strategy used by target ad group. - optional int64 cpc_bid_micros = 5; - } - - // Parameters to use when applying Target CPA recommendation. - message TargetCpaOptInParameters { - // Average CPA to use for Target CPA bidding strategy. This is a required - // field. - optional int64 target_cpa_micros = 3; - - // Optional, budget amount to set for the campaign. - optional int64 new_campaign_budget_amount_micros = 4; - } - - // Parameters to use when applying a Target ROAS opt-in recommendation. - message TargetRoasOptInParameters { - // Average ROAS (revenue per unit of spend) to use for Target ROAS bidding - // strategy. The value is between 0.01 and 1000.0, inclusive. This is a - // required field, unless new_campaign_budget_amount_micros is set. - optional double target_roas = 1; - - // Optional, budget amount to set for the campaign. - optional int64 new_campaign_budget_amount_micros = 2; - } - - // Parameters to use when applying callout extension recommendation. - message CalloutExtensionParameters { - // Callout extensions to be added. This is a required field. - repeated google.ads.googleads.v8.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.v8.common.CallFeedItem call_extensions = 1; - } - - // Parameters to use when applying sitelink extension recommendation. - message SitelinkExtensionParameters { - // Sitelink extensions to be added. This is a required field. - repeated google.ads.googleads.v8.common.SitelinkFeedItem sitelink_extensions = 1; - } - - // Parameters to use when applying move unused budget recommendation. - message MoveUnusedBudgetParameters { - // Budget amount to move from excess budget to constrained budget. This is - // a required field. - optional int64 budget_micros_to_move = 2; - } - - // Parameters to use when applying a responsive search ad recommendation. - message ResponsiveSearchAdParameters { - // Required. New ad to add to recommended ad group. - google.ads.googleads.v8.resources.Ad ad = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // The resource name of the recommendation to apply. - string resource_name = 1; - - // Parameters to use when applying the recommendation. - oneof apply_parameters { - // Optional parameters to use when applying a campaign budget - // recommendation. - CampaignBudgetParameters campaign_budget = 2; - - // Optional parameters to use when applying a text ad recommendation. - TextAdParameters text_ad = 3; - - // Optional parameters to use when applying keyword recommendation. - KeywordParameters keyword = 4; - - // Optional parameters to use when applying target CPA opt-in - // recommendation. - TargetCpaOptInParameters target_cpa_opt_in = 5; - - // Optional parameters to use when applying target ROAS opt-in - // recommendation. - TargetRoasOptInParameters target_roas_opt_in = 10; - - // Parameters to use when applying callout extension recommendation. - CalloutExtensionParameters callout_extension = 6; - - // Parameters to use when applying call extension recommendation. - CallExtensionParameters call_extension = 7; - - // Parameters to use when applying sitelink extension recommendation. - SitelinkExtensionParameters sitelink_extension = 8; - - // Parameters to use when applying move unused budget recommendation. - MoveUnusedBudgetParameters move_unused_budget = 9; - - // Parameters to use when applying a responsive search ad recommendation. - ResponsiveSearchAdParameters responsive_search_ad = 11; - } -} - -// Response message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v8.services.RecommendationService.ApplyRecommendation]. -message ApplyRecommendationResponse { - // Results of operations to apply recommendations. - repeated ApplyRecommendationResult 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 (e.g. auth errors) - // we return the RPC level error. - google.rpc.Status partial_failure_error = 2; -} - -// The result of applying a recommendation. -message ApplyRecommendationResult { - // Returned for successful applies. - string resource_name = 1; -} - -// Request message for [RecommendationService.DismissRecommendation][google.ads.googleads.v8.services.RecommendationService.DismissRecommendation]. -message DismissRecommendationRequest { - // Operation to dismiss a single recommendation identified by resource_name. - message DismissRecommendationOperation { - // The resource name of the recommendation to dismiss. - string resource_name = 1; - } - - // Required. The ID of the customer with the recommendation. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to dismiss recommendations. - // If partial_failure=false all recommendations should be of the same type - // There is a limit of 100 operations per request. - repeated DismissRecommendationOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; - - // If true, successful operations will be carried out and invalid - // operations will return errors. If false, operations will be carried in a - // single transaction if and only if they are all valid. - // Default is false. - bool partial_failure = 2; -} - -// Response message for [RecommendationService.DismissRecommendation][google.ads.googleads.v8.services.RecommendationService.DismissRecommendation]. -message DismissRecommendationResponse { - // The result of dismissing a recommendation. - message DismissRecommendationResult { - // Returned for successful dismissals. - string resource_name = 1; - } - - // Results of operations to dismiss recommendations. - repeated DismissRecommendationResult 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 (e.g. auth errors) - // we return the RPC level error. - google.rpc.Status partial_failure_error = 2; -} diff --git a/google/ads/googleads/v8/services/remarketing_action_service.proto b/google/ads/googleads/v8/services/remarketing_action_service.proto deleted file mode 100644 index a6b9c5a75..000000000 --- a/google/ads/googleads/v8/services/remarketing_action_service.proto +++ /dev/null @@ -1,141 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/remarketing_action.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "RemarketingActionServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Remarketing Action service. - -// Service to manage remarketing actions. -service RemarketingActionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested remarketing action in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetRemarketingAction(GetRemarketingActionRequest) returns (google.ads.googleads.v8.resources.RemarketingAction) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/remarketingActions/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates remarketing actions. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [ConversionActionError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateRemarketingActions(MutateRemarketingActionsRequest) returns (MutateRemarketingActionsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/remarketingActions:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [RemarketingActionService.GetRemarketingAction][google.ads.googleads.v8.services.RemarketingActionService.GetRemarketingAction]. -message GetRemarketingActionRequest { - // Required. The resource name of the remarketing action to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/RemarketingAction" - } - ]; -} - -// Request message for [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v8.services.RemarketingActionService.MutateRemarketingActions]. -message MutateRemarketingActionsRequest { - // Required. The ID of the customer whose remarketing actions are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual remarketing actions. - repeated RemarketingActionOperation 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; -} - -// A single operation (create, update) on a remarketing action. -message RemarketingActionOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new remarketing - // action. - google.ads.googleads.v8.resources.RemarketingAction create = 1; - - // Update operation: The remarketing action is expected to have a valid - // resource name. - google.ads.googleads.v8.resources.RemarketingAction update = 2; - } -} - -// Response message for remarketing action mutate. -message MutateRemarketingActionsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateRemarketingActionResult results = 2; -} - -// The result for the remarketing action mutate. -message MutateRemarketingActionResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/search_term_view_service.proto b/google/ads/googleads/v8/services/search_term_view_service.proto deleted file mode 100644 index 77da34fee..000000000 --- a/google/ads/googleads/v8/services/search_term_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/search_term_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SearchTermViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Search Term View service. - -// Service to manage search term views. -service SearchTermViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the attributes of the requested search term view. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetSearchTermView(GetSearchTermViewRequest) returns (google.ads.googleads.v8.resources.SearchTermView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/searchTermViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [SearchTermViewService.GetSearchTermView][google.ads.googleads.v8.services.SearchTermViewService.GetSearchTermView]. -message GetSearchTermViewRequest { - // Required. The resource name of the search term view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SearchTermView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/shared_criterion_service.proto b/google/ads/googleads/v8/services/shared_criterion_service.proto deleted file mode 100644 index bb06e05d0..000000000 --- a/google/ads/googleads/v8/services/shared_criterion_service.proto +++ /dev/null @@ -1,162 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SharedCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Shared Criterion service. - -// Service to manage shared criteria. -service SharedCriterionService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested shared criterion in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetSharedCriterion(GetSharedCriterionRequest) returns (google.ads.googleads.v8.resources.SharedCriterion) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/sharedCriteria/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or removes shared criteria. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CriterionError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateSharedCriteria(MutateSharedCriteriaRequest) returns (MutateSharedCriteriaResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/sharedCriteria:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [SharedCriterionService.GetSharedCriterion][google.ads.googleads.v8.services.SharedCriterionService.GetSharedCriterion]. -message GetSharedCriterionRequest { - // Required. The resource name of the shared criterion to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedCriterion" - } - ]; -} - -// Request message for [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual shared criteria. - repeated SharedCriterionOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, remove) on an shared criterion. -message SharedCriterionOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new shared - // criterion. - google.ads.googleads.v8.resources.SharedCriterion create = 1; - - // Remove operation: A resource name for the removed shared criterion is - // expected, in this format: - // - // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}` - string remove = 3; - } -} - -// Response message for a shared criterion mutate. -message MutateSharedCriteriaResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateSharedCriterionResult results = 2; -} - -// The result for the shared criterion mutate. -message MutateSharedCriterionResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.SharedCriterion shared_criterion = 2; -} diff --git a/google/ads/googleads/v8/services/shared_set_service.proto b/google/ads/googleads/v8/services/shared_set_service.proto deleted file mode 100644 index 74022a0b8..000000000 --- a/google/ads/googleads/v8/services/shared_set_service.proto +++ /dev/null @@ -1,172 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/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/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SharedSetServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Shared Set service. - -// Service to manage shared sets. -service SharedSetService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested shared set in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetSharedSet(GetSharedSetRequest) returns (google.ads.googleads.v8.resources.SharedSet) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/sharedSets/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates, updates, or removes shared sets. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DateError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [IdError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [ResourceCountLimitExceededError]() - // [SharedSetError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateSharedSets(MutateSharedSetsRequest) returns (MutateSharedSetsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/sharedSets:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [SharedSetService.GetSharedSet][google.ads.googleads.v8.services.SharedSetService.GetSharedSet]. -message GetSharedSetRequest { - // Required. The resource name of the shared set to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SharedSet" - } - ]; -} - -// Request message for [SharedSetService.MutateSharedSets][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual shared sets. - repeated SharedSetOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation (create, update, remove) on an shared set. -message SharedSetOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new shared set. - google.ads.googleads.v8.resources.SharedSet create = 1; - - // Update operation: The shared set is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.SharedSet update = 2; - - // Remove operation: A resource name for the removed shared set is expected, - // in this format: - // - // `customers/{customer_id}/sharedSets/{shared_set_id}` - string remove = 3; - } -} - -// Response message for a shared set mutate. -message MutateSharedSetsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateSharedSetResult results = 2; -} - -// The result for the shared set mutate. -message MutateSharedSetResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.SharedSet shared_set = 2; -} diff --git a/google/ads/googleads/v8/services/shopping_performance_view_service.proto b/google/ads/googleads/v8/services/shopping_performance_view_service.proto deleted file mode 100644 index bd97ceef9..000000000 --- a/google/ads/googleads/v8/services/shopping_performance_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/shopping_performance_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ShoppingPerformanceViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the ShoppingPerformanceView service. - -// Service to fetch Shopping performance views. -service ShoppingPerformanceViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Shopping performance view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetShoppingPerformanceView(GetShoppingPerformanceViewRequest) returns (google.ads.googleads.v8.resources.ShoppingPerformanceView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/shoppingPerformanceView}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [ShoppingPerformanceViewService.GetShoppingPerformanceView][google.ads.googleads.v8.services.ShoppingPerformanceViewService.GetShoppingPerformanceView]. -message GetShoppingPerformanceViewRequest { - // Required. The resource name of the Shopping performance view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ShoppingPerformanceView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/smart_campaign_search_term_view_service.proto b/google/ads/googleads/v8/services/smart_campaign_search_term_view_service.proto deleted file mode 100644 index 12aa98911..000000000 --- a/google/ads/googleads/v8/services/smart_campaign_search_term_view_service.proto +++ /dev/null @@ -1,68 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/smart_campaign_search_term_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SmartCampaignSearchTermViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Smart Campaign Search Term View service. - -// Service to manage Smart campaign search term views. -service SmartCampaignSearchTermViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the attributes of the requested Smart campaign search term view. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetSmartCampaignSearchTermView(GetSmartCampaignSearchTermViewRequest) returns (google.ads.googleads.v8.resources.SmartCampaignSearchTermView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/smartCampaignSearchTermViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for -// [SmartCampaignSearchTermViewService.GetSmartCampaignSearchTermView][google.ads.googleads.v8.services.SmartCampaignSearchTermViewService.GetSmartCampaignSearchTermView]. -message GetSmartCampaignSearchTermViewRequest { - // Required. The resource name of the Smart campaign search term view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SmartCampaignSearchTermView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/smart_campaign_setting_service.proto b/google/ads/googleads/v8/services/smart_campaign_setting_service.proto deleted file mode 100644 index 1a84ddf9c..000000000 --- a/google/ads/googleads/v8/services/smart_campaign_setting_service.proto +++ /dev/null @@ -1,128 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/enums/response_content_type.proto"; -import "google/ads/googleads/v8/resources/smart_campaign_setting.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SmartCampaignSettingServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Smart campaign setting service. - -// Service to manage Smart campaign settings. -service SmartCampaignSettingService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested Smart campaign setting in full detail. - rpc GetSmartCampaignSetting(GetSmartCampaignSettingRequest) returns (google.ads.googleads.v8.resources.SmartCampaignSetting) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/smartCampaignSettings/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Updates Smart campaign settings for campaigns. - rpc MutateSmartCampaignSettings(MutateSmartCampaignSettingsRequest) returns (MutateSmartCampaignSettingsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/smartCampaignSettings:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [SmartCampaignSettingService.GetSmartCampaignSetting][google.ads.googleads.v8.services.SmartCampaignSettingService.GetSmartCampaignSetting]. -message GetSmartCampaignSettingRequest { - // Required. The resource name of the Smart campaign setting to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/SmartCampaignSetting" - } - ]; -} - -// Request message for -// [SmartCampaignSettingService.MutateSmartCampaignSetting][]. -message MutateSmartCampaignSettingsRequest { - // Required. The ID of the customer whose Smart campaign settings are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual Smart campaign settings. - repeated SmartCampaignSettingOperation 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.v8.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; -} - -// A single operation to update Smart campaign settings for a campaign. -message SmartCampaignSettingOperation { - // Update operation: The Smart campaign setting must specify a valid - // resource name. - google.ads.googleads.v8.resources.SmartCampaignSetting update = 1; - - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 2; -} - -// Response message for campaign mutate. -message MutateSmartCampaignSettingsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 1; - - // All results for the mutate. - repeated MutateSmartCampaignSettingResult results = 2; -} - -// The result for the Smart campaign setting mutate. -message MutateSmartCampaignSettingResult { - // Returned for successful operations. - string resource_name = 1; - - // 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.v8.resources.SmartCampaignSetting smart_campaign_setting = 2; -} diff --git a/google/ads/googleads/v8/services/smart_campaign_suggest_service.proto b/google/ads/googleads/v8/services/smart_campaign_suggest_service.proto deleted file mode 100644 index 81339b7d9..000000000 --- a/google/ads/googleads/v8/services/smart_campaign_suggest_service.proto +++ /dev/null @@ -1,191 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/ad_type_infos.proto"; -import "google/ads/googleads/v8/common/criteria.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/client.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "SmartCampaignSuggestServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Service to get suggestions for Smart Campaigns. -service SmartCampaignSuggestService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns BudgetOption suggestions. - rpc SuggestSmartCampaignBudgetOptions(SuggestSmartCampaignBudgetOptionsRequest) returns (SuggestSmartCampaignBudgetOptionsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" - body: "*" - }; - } - - // Suggests a Smart campaign ad compatible with the Ad family of resources, - // based on data points such as targeting and the business to advertise. - rpc SuggestSmartCampaignAd(SuggestSmartCampaignAdRequest) returns (SuggestSmartCampaignAdResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:suggestSmartCampaignAd" - body: "*" - }; - } -} - -// Request message for -// [SmartCampaignSuggestService.SuggestSmartCampaignBudgets][]. -message SuggestSmartCampaignBudgetOptionsRequest { - // Required. The ID of the customer whose budget options are to be suggested. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. For first time campaign creation use SuggestionInfo, for - // subsequent updates on BudgetOptions based on an already created campaign - // use that campaign. - oneof suggestion_data { - // Required. The resource name of the campaign to get suggestion for. - string campaign = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Campaign" - } - ]; - - // Required. Information needed to get budget options - SmartCampaignSuggestionInfo suggestion_info = 3 [(google.api.field_behavior) = REQUIRED]; - } -} - -// Information needed to get suggestion for Smart Campaign. More information -// provided will help the system to derive better suggestions. -message SmartCampaignSuggestionInfo { - // A list of locations. - message LocationList { - // Required. Locations. - repeated google.ads.googleads.v8.common.LocationInfo locations = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // A context that describes a business. - message BusinessContext { - // Optional. The name of the business. - string business_name = 1 [(google.api.field_behavior) = OPTIONAL]; - } - - // Optional. Landing page URL of the campaign. - string final_url = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The two letter advertising language for the Smart campaign to be - // constructed, default to 'en' if not set. - string language_code = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The business ad schedule. - repeated google.ads.googleads.v8.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.v8.common.KeywordThemeInfo keyword_themes = 7 [(google.api.field_behavior) = OPTIONAL]; - - // The business settings to consider when generating suggestions. - // Settings are automatically extracted from the business when provided. - // Otherwise, these settings must be specified explicitly. - oneof business_setting { - // Optional. Context describing the business to advertise. - BusinessContext business_context = 8 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The ID of the Business Profile location. - // The location ID can be fetched by Business Profile API with its form: - // accounts/{accountId}/locations/{locationId}. The last {locationId} - // component from the Business Profile API represents the - // business_location_id. See the [Business Profile API] - // (https://developers.google.com/my-business/reference/rest/v4/accounts.locations) - int64 business_location_id = 2 [(google.api.field_behavior) = OPTIONAL]; - } - - // The geo target of the campaign, either a list of locations or - // a single proximity shall be specified. - oneof geo_target { - // Optional. The targeting geo location by locations. - LocationList location_list = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The targeting geo location by proximity. - google.ads.googleads.v8.common.ProximityInfo proximity = 5 [(google.api.field_behavior) = OPTIONAL]; - } -} - -// Response message for -// [SmartCampaignSuggestService.SuggestSmartCampaignBudgets][]. Depending on -// whether the system could suggest the options, either all of the options or -// none of them might be returned. -message SuggestSmartCampaignBudgetOptionsResponse { - // Performance metrics for a given budget option. - message Metrics { - // The estimated min daily clicks. - int64 min_daily_clicks = 1; - - // The estimated max daily clicks. - int64 max_daily_clicks = 2; - } - - // Smart Campaign budget option. - message BudgetOption { - // The amount of the budget, in the local currency for the account. - // Amount is specified in micros, where one million is equivalent to one - // currency unit. - int64 daily_amount_micros = 1; - - // Metrics pertaining to the suggested budget, could be empty if there is - // not enough information to derive the estimates. - Metrics metrics = 2; - } - - // Optional. The lowest budget option. - optional BudgetOption low = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The recommended budget option. - optional BudgetOption recommended = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The highest budget option. - optional BudgetOption high = 3 [(google.api.field_behavior) = OPTIONAL]; -} - -// Request message for -// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v8.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. -message SuggestSmartCampaignAdRequest { - // Required. The ID of the customer. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Inputs used to suggest a Smart campaign ad. - // Required fields: final_url, language_code, keyword_themes. - // Optional but recommended fields to improve the quality of the suggestion: - // business_setting and geo_target. - SmartCampaignSuggestionInfo suggestion_info = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for -// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v8.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. -message SuggestSmartCampaignAdResponse { - // Optional. Ad info includes 3 creative headlines and 2 creative descriptions. - google.ads.googleads.v8.common.SmartCampaignAdInfo ad_info = 1 [(google.api.field_behavior) = OPTIONAL]; -} diff --git a/google/ads/googleads/v8/services/third_party_app_analytics_link_service.proto b/google/ads/googleads/v8/services/third_party_app_analytics_link_service.proto deleted file mode 100644 index 20cb16854..000000000 --- a/google/ads/googleads/v8/services/third_party_app_analytics_link_service.proto +++ /dev/null @@ -1,94 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/third_party_app_analytics_link.proto"; -import "google/api/annotations.proto"; -import "google/api/resource.proto"; -import "google/api/client.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ThirdPartyAppAnalyticsLinkServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// This service allows management of links between Google Ads and third party -// app analytics. -service ThirdPartyAppAnalyticsLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the third party app analytics link in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetThirdPartyAppAnalyticsLink(GetThirdPartyAppAnalyticsLinkRequest) returns (google.ads.googleads.v8.resources.ThirdPartyAppAnalyticsLink) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}" - }; - } - - // Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be - // provided to the third party when setting up app analytics. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc RegenerateShareableLinkId(RegenerateShareableLinkIdRequest) returns (RegenerateShareableLinkIdResponse) { - option (google.api.http) = { - post: "/v8/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" - body: "*" - }; - } -} - -// Request message for -// [ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink][google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink]. -message GetThirdPartyAppAnalyticsLinkRequest { - // Resource name of the third party app analytics link. - string resource_name = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" - }]; -} - -// Request message for -// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. -message RegenerateShareableLinkIdRequest { - // Resource name of the third party app analytics link. - string resource_name = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ThirdPartyAppAnalyticsLink" - }]; -} - -// Response message for -// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v8.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. -message RegenerateShareableLinkIdResponse { - -} diff --git a/google/ads/googleads/v8/services/topic_constant_service.proto b/google/ads/googleads/v8/services/topic_constant_service.proto deleted file mode 100644 index 8916ad25b..000000000 --- a/google/ads/googleads/v8/services/topic_constant_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/topic_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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "TopicConstantServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Topic constant service - -// Service to fetch topic constants. -service TopicConstantService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested topic constant in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetTopicConstant(GetTopicConstantRequest) returns (google.ads.googleads.v8.resources.TopicConstant) { - option (google.api.http) = { - get: "/v8/{resource_name=topicConstants/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [TopicConstantService.GetTopicConstant][google.ads.googleads.v8.services.TopicConstantService.GetTopicConstant]. -message GetTopicConstantRequest { - // Required. Resource name of the Topic to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicConstant" - } - ]; -} diff --git a/google/ads/googleads/v8/services/topic_view_service.proto b/google/ads/googleads/v8/services/topic_view_service.proto deleted file mode 100644 index 6c95389ae..000000000 --- a/google/ads/googleads/v8/services/topic_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/topic_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "TopicViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Topic View service. - -// Service to manage topic views. -service TopicViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested topic view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetTopicView(GetTopicViewRequest) returns (google.ads.googleads.v8.resources.TopicView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/topicViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [TopicViewService.GetTopicView][google.ads.googleads.v8.services.TopicViewService.GetTopicView]. -message GetTopicViewRequest { - // Required. The resource name of the topic view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/TopicView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/user_data_service.proto b/google/ads/googleads/v8/services/user_data_service.proto deleted file mode 100644 index 8051ca391..000000000 --- a/google/ads/googleads/v8/services/user_data_service.proto +++ /dev/null @@ -1,97 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/common/offline_user_data.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/api/client.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "UserDataServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the UserDataService. - -// Service to manage user data uploads. -service UserDataService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Uploads the given user data. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [FieldError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [OfflineUserDataJobError]() - // [QuotaError]() - // [RequestError]() - // [UserDataError]() - rpc UploadUserData(UploadUserDataRequest) returns (UploadUserDataResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}:uploadUserData" - body: "*" - }; - } -} - -// Request message for [UserDataService.UploadUserData][google.ads.googleads.v8.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]; - - // Required. The list of operations to be done. - repeated UserDataOperation operations = 3 [(google.api.field_behavior) = REQUIRED]; - - // Metadata of the request. - oneof metadata { - // Metadata for data updates to a Customer Match user list. - google.ads.googleads.v8.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 2; - } -} - -// Operation to be made for the UploadUserDataRequest. -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.v8.common.UserData create = 1; - - // The list of user data to be removed from the user list. - google.ads.googleads.v8.common.UserData remove = 2; - } -} - -// Response message for [UserDataService.UploadUserData][google.ads.googleads.v8.services.UserDataService.UploadUserData] -message UploadUserDataResponse { - // The date time at which the request was received by API, formatted as - // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". - optional string upload_date_time = 3; - - // Number of upload data operations received by API. - optional int32 received_operations_count = 4; -} diff --git a/google/ads/googleads/v8/services/user_interest_service.proto b/google/ads/googleads/v8/services/user_interest_service.proto deleted file mode 100644 index e9d4c5a4a..000000000 --- a/google/ads/googleads/v8/services/user_interest_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/user_interest.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "UserInterestServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the user interest service - -// Service to fetch Google Ads User Interest. -service UserInterestService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested user interest in full detail - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetUserInterest(GetUserInterestRequest) returns (google.ads.googleads.v8.resources.UserInterest) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/userInterests/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [UserInterestService.GetUserInterest][google.ads.googleads.v8.services.UserInterestService.GetUserInterest]. -message GetUserInterestRequest { - // Required. Resource name of the UserInterest to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserInterest" - } - ]; -} diff --git a/google/ads/googleads/v8/services/user_list_service.proto b/google/ads/googleads/v8/services/user_list_service.proto deleted file mode 100644 index bc0d3ecf1..000000000 --- a/google/ads/googleads/v8/services/user_list_service.proto +++ /dev/null @@ -1,159 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/user_list.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "UserListServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the User List service. - -// Service to manage user lists. -service UserListService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested user list. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetUserList(GetUserListRequest) returns (google.ads.googleads.v8.resources.UserList) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/userLists/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Creates or updates user lists. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [CollectionSizeError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [MutateError]() - // [NewResourceCreationError]() - // [NotAllowlistedError]() - // [NotEmptyError]() - // [OperationAccessDeniedError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [StringFormatError]() - // [StringLengthError]() - // [UserListError]() - rpc MutateUserLists(MutateUserListsRequest) returns (MutateUserListsResponse) { - option (google.api.http) = { - post: "/v8/customers/{customer_id=*}/userLists:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for [UserListService.GetUserList][google.ads.googleads.v8.services.UserListService.GetUserList]. -message GetUserListRequest { - // Required. The resource name of the user list to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - } - ]; -} - -// Request message for [UserListService.MutateUserLists][google.ads.googleads.v8.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]; - - // Required. The list of operations to perform on individual user lists. - repeated UserListOperation 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; -} - -// A single operation (create, update) on a user list. -message UserListOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 4; - - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new user list. - google.ads.googleads.v8.resources.UserList create = 1; - - // Update operation: The user list is expected to have a valid resource - // name. - google.ads.googleads.v8.resources.UserList update = 2; - - // Remove operation: A resource name for the removed user list is expected, - // in this format: - // - // `customers/{customer_id}/userLists/{user_list_id}` - string remove = 3; - } -} - -// Response message for user list mutate. -message MutateUserListsResponse { - // 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 (e.g. auth errors), - // we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateUserListResult results = 2; -} - -// The result for the user list mutate. -message MutateUserListResult { - // Returned for successful operations. - string resource_name = 1; -} diff --git a/google/ads/googleads/v8/services/user_location_view_service.proto b/google/ads/googleads/v8/services/user_location_view_service.proto deleted file mode 100644 index a27f118a1..000000000 --- a/google/ads/googleads/v8/services/user_location_view_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/user_location_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "UserLocationViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the UserLocationView service. - -// Service to manage user location views. -service UserLocationViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested user location view in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetUserLocationView(GetUserLocationViewRequest) returns (google.ads.googleads.v8.resources.UserLocationView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/userLocationViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [UserLocationViewService.GetUserLocationView][google.ads.googleads.v8.services.UserLocationViewService.GetUserLocationView]. -message GetUserLocationViewRequest { - // Required. The resource name of the user location view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserLocationView" - } - ]; -} diff --git a/google/ads/googleads/v8/services/video_service.proto b/google/ads/googleads/v8/services/video_service.proto deleted file mode 100644 index d395012e9..000000000 --- a/google/ads/googleads/v8/services/video_service.proto +++ /dev/null @@ -1,67 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/video.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "VideoServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Video service. - -// Service to manage videos. -service VideoService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested video in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetVideo(GetVideoRequest) returns (google.ads.googleads.v8.resources.Video) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/videos/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [VideoService.GetVideo][google.ads.googleads.v8.services.VideoService.GetVideo]. -message GetVideoRequest { - // Required. The resource name of the video to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Video" - } - ]; -} diff --git a/google/ads/googleads/v8/services/webpage_view_service.proto b/google/ads/googleads/v8/services/webpage_view_service.proto deleted file mode 100644 index b7b9abb5e..000000000 --- a/google/ads/googleads/v8/services/webpage_view_service.proto +++ /dev/null @@ -1,59 +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 google.ads.googleads.v8.services; - -import "google/ads/googleads/v8/resources/webpage_view.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.V8.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/services;services"; -option java_multiple_files = true; -option java_outer_classname = "WebpageViewServiceProto"; -option java_package = "com.google.ads.googleads.v8.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V8::Services"; - -// Proto file describing the Webpage View service. - -// Service to manage webpage views. -service WebpageViewService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns the requested webpage view in full detail. - rpc GetWebpageView(GetWebpageViewRequest) returns (google.ads.googleads.v8.resources.WebpageView) { - option (google.api.http) = { - get: "/v8/{resource_name=customers/*/webpageViews/*}" - }; - option (google.api.method_signature) = "resource_name"; - } -} - -// Request message for [WebpageViewService.GetWebpageView][google.ads.googleads.v8.services.WebpageViewService.GetWebpageView]. -message GetWebpageViewRequest { - // Required. The resource name of the webpage view to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/WebpageView" - } - ]; -} diff --git a/google/ads/googleads/v9/BUILD.bazel b/google/ads/googleads/v9/BUILD.bazel index f232f8aa8..40452d1d9 100644 --- a/google/ads/googleads/v9/BUILD.bazel +++ b/google/ads/googleads/v9/BUILD.bazel @@ -138,8 +138,11 @@ php_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## -load("@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", "csharp_gapic_library") -load("@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic_pkg.bzl", "csharp_gapic_assembly_pkg") +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", +) csharp_gapic_library( name = "googleads_csharp_gapic", diff --git a/google/ads/googleads/v9/common/BUILD.bazel b/google/ads/googleads/v9/common/BUILD.bazel index 8f61bd5ee..b90f195ca 100644 --- a/google/ads/googleads/v9/common/BUILD.bazel +++ b/google/ads/googleads/v9/common/BUILD.bazel @@ -58,7 +58,7 @@ java_proto_library( # C# ############################################################################## load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "csharp_proto_library", ) @@ -71,7 +71,7 @@ csharp_proto_library( # Ruby ############################################################################## load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "ruby_proto_library", ) diff --git a/google/ads/googleads/v9/enums/BUILD.bazel b/google/ads/googleads/v9/enums/BUILD.bazel index 422fc227c..01a51ee0b 100644 --- a/google/ads/googleads/v9/enums/BUILD.bazel +++ b/google/ads/googleads/v9/enums/BUILD.bazel @@ -53,7 +53,7 @@ java_proto_library( # C# ############################################################################## load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "csharp_proto_library", ) @@ -66,7 +66,7 @@ csharp_proto_library( # Ruby ############################################################################## load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "ruby_proto_library", ) diff --git a/google/ads/googleads/v9/errors/BUILD.bazel b/google/ads/googleads/v9/errors/BUILD.bazel index d58aecebe..898db2426 100644 --- a/google/ads/googleads/v9/errors/BUILD.bazel +++ b/google/ads/googleads/v9/errors/BUILD.bazel @@ -58,7 +58,7 @@ java_proto_library( # C# ############################################################################## load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "csharp_proto_library", ) @@ -71,7 +71,7 @@ csharp_proto_library( # Ruby ############################################################################## load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "ruby_proto_library", ) diff --git a/google/ads/googleads/v9/resources/BUILD.bazel b/google/ads/googleads/v9/resources/BUILD.bazel index e0837a2fc..96eda3459 100644 --- a/google/ads/googleads/v9/resources/BUILD.bazel +++ b/google/ads/googleads/v9/resources/BUILD.bazel @@ -61,7 +61,7 @@ java_proto_library( # C# ############################################################################## load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "csharp_proto_library", ) @@ -74,7 +74,7 @@ csharp_proto_library( # Ruby ############################################################################## load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "ruby_proto_library", ) diff --git a/google/ads/googleads/v9/services/BUILD.bazel b/google/ads/googleads/v9/services/BUILD.bazel index 7640aac7d..f34bc42c0 100644 --- a/google/ads/googleads/v9/services/BUILD.bazel +++ b/google/ads/googleads/v9/services/BUILD.bazel @@ -81,7 +81,7 @@ java_grpc_library( # C# ############################################################################## load( - "@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "csharp_grpc_library", "csharp_proto_library", ) @@ -101,7 +101,7 @@ csharp_grpc_library( # Ruby ############################################################################## load( - "@gapic_generator_ruby//rules_ruby_gapic:ruby_gapic.bzl", + "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", "ruby_proto_library", ) diff --git a/google/analytics/admin/v1alpha/BUILD.bazel b/google/analytics/admin/v1alpha/BUILD.bazel index 34951f97c..47c65d60c 100644 --- a/google/analytics/admin/v1alpha/BUILD.bazel +++ b/google/analytics/admin/v1alpha/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -21,7 +21,9 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "admin_proto", srcs = [ + "access_report.proto", "analytics_admin.proto", + "audience.proto", "resources.proto", ], deps = [ @@ -29,6 +31,7 @@ proto_library( "//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//:timestamp_proto", @@ -70,18 +73,24 @@ java_grpc_library( java_gapic_library( name = "admin_java_gapic", srcs = [":admin_proto_with_info"], + gapic_yaml = "analyticsadmin_gapic.yaml", grpc_service_config = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin_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.analytics.admin.v1alpha.AnalyticsAdminServiceClientHttpJsonTest", + "com.google.analytics.admin.v1alpha.AnalyticsAdminServiceClientTest", ], runtime_deps = [":admin_java_gapic_test"], ) @@ -89,6 +98,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-analytics-admin-v1alpha-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":admin_java_gapic", ":admin_java_grpc", @@ -123,9 +134,12 @@ go_gapic_library( srcs = [":admin_proto_with_info"], grpc_service_config = "admin_grpc_service_config.json", importpath = "google.golang.org/google/analytics/admin/v1alpha;admin", + metadata = True, service_yaml = "analyticsadmin_v1alpha.yaml", + transport = "grpc+rest", deps = [ ":admin_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -141,6 +155,7 @@ go_gapic_assembly_pkg( name = "gapi-analytics-admin-v1alpha-go", deps = [ ":admin_go_gapic", + ":admin_go_gapic_srcjar-metadata.srcjar", ":admin_go_gapic_srcjar-test.srcjar", ":admin_go_proto", ], @@ -153,12 +168,27 @@ 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 = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin_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 @@ -195,6 +225,7 @@ php_gapic_library( name = "admin_php_gapic", srcs = [":admin_proto_with_info"], grpc_service_config = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin_v1alpha.yaml", deps = [ ":admin_php_grpc", ":admin_php_proto", @@ -244,8 +275,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -263,16 +294,17 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "admin_ruby_gapic", - srcs = [":admin_proto_with_info",], + srcs = [":admin_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-analytics-admin-v1alpha", - "ruby-cloud-env-prefix=ANALYTICS_ADMIN", "ruby-cloud-api-id=analyticsadmin.googleapis.com", "ruby-cloud-api-shortname=analyticsadmin", + "ruby-cloud-env-prefix=ANALYTICS_ADMIN", + "ruby-cloud-gem-name=google-analytics-admin-v1alpha", ], grpc_service_config = "admin_grpc_service_config.json", ruby_cloud_description = "The Analytics Admin API allows for programmatic access to the Google Analytics App+Web configuration data. You can use the Google Analytics Admin API to manage accounts and App+Web properties.", ruby_cloud_title = "Google Analytics Admin V1alpha", + service_yaml = "analyticsadmin_v1alpha.yaml", deps = [ ":admin_ruby_grpc", ":admin_ruby_proto", @@ -316,6 +348,7 @@ csharp_gapic_library( srcs = [":admin_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin_v1alpha.yaml", deps = [ ":admin_csharp_grpc", ":admin_csharp_proto", @@ -335,4 +368,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +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/google/analytics/admin/v1alpha/access_report.proto b/google/analytics/admin/v1alpha/access_report.proto new file mode 100644 index 000000000..ce6a8aa15 --- /dev/null +++ b/google/analytics/admin/v1alpha/access_report.proto @@ -0,0 +1,328 @@ +// 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.analytics.admin.v1alpha; + +option go_package = "google.golang.org/genproto/googleapis/analytics/admin/v1alpha;admin"; +option java_multiple_files = true; +option java_outer_classname = "AccessReportProto"; +option java_package = "com.google.analytics.admin.v1alpha"; + +// Dimensions are attributes of your data. For example, the dimension +// `userEmail` indicates the email of the user that accessed reporting data. +// Dimension values in report responses are strings. +message AccessDimension { + // The API name of the dimension. See [Data Access + // Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) + // for the list of dimensions supported in this API. + // + // Dimensions are referenced by name in `dimensionFilter` and `orderBys`. + string dimension_name = 1; +} + +// The quantitative measurements of a report. For example, the metric +// `accessCount` is the total number of data access records. +message AccessMetric { + // The API name of the metric. See [Data Access + // Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) + // for the list of metrics supported in this API. + // + // Metrics are referenced by name in `metricFilter` & `orderBys`. + string metric_name = 1; +} + +// A contiguous range of days: startDate, startDate + 1, ..., endDate. +message AccessDateRange { + // The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot + // be after `endDate`. The format `NdaysAgo`, `yesterday`, or `today` is also + // accepted, and in that case, the date is inferred based on the current time + // in the request's time zone. + string start_date = 1; + + // The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot + // be before `startDate`. The format `NdaysAgo`, `yesterday`, or `today` is + // also accepted, and in that case, the date is inferred based on the current + // time in the request's time zone. + string end_date = 2; +} + +// Expresses dimension or metric filters. The fields in the same expression need +// to be either all dimensions or all metrics. +message AccessFilterExpression { + // Specify one type of filter expression for `FilterExpression`. + oneof one_expression { + // Each of the FilterExpressions in the and_group has an AND relationship. + AccessFilterExpressionList and_group = 1; + + // Each of the FilterExpressions in the or_group has an OR relationship. + AccessFilterExpressionList or_group = 2; + + // The FilterExpression is NOT of not_expression. + AccessFilterExpression not_expression = 3; + + // A primitive filter. In the same FilterExpression, all of the filter's + // field names need to be either all dimensions or all metrics. + AccessFilter access_filter = 4; + } +} + +// A list of filter expressions. +message AccessFilterExpressionList { + // A list of filter expressions. + repeated AccessFilterExpression expressions = 1; +} + +// An expression to filter dimension or metric values. +message AccessFilter { + // Specify one type of filter for `Filter`. + oneof one_filter { + // Strings related filter. + AccessStringFilter string_filter = 2; + + // A filter for in list values. + AccessInListFilter in_list_filter = 3; + + // A filter for numeric or date values. + AccessNumericFilter numeric_filter = 4; + + // A filter for two values. + AccessBetweenFilter between_filter = 5; + } + + // The dimension name or metric name. + string field_name = 1; +} + +// The filter for strings. +message AccessStringFilter { + // The match type of a string filter. + enum MatchType { + // Unspecified + MATCH_TYPE_UNSPECIFIED = 0; + + // Exact match of the string value. + EXACT = 1; + + // Begins with the string value. + BEGINS_WITH = 2; + + // Ends with the string value. + ENDS_WITH = 3; + + // Contains the string value. + CONTAINS = 4; + + // Full match for the regular expression with the string value. + FULL_REGEXP = 5; + + // Partial match for the regular expression with the string value. + PARTIAL_REGEXP = 6; + } + + // The match type for this filter. + MatchType match_type = 1; + + // The string value used for the matching. + string value = 2; + + // If true, the string value is case sensitive. + bool case_sensitive = 3; +} + +// The result needs to be in a list of string values. +message AccessInListFilter { + // The list of string values. Must be non-empty. + repeated string values = 1; + + // If true, the string value is case sensitive. + bool case_sensitive = 2; +} + +// Filters for numeric or date values. +message AccessNumericFilter { + // The operation applied to a numeric filter. + enum Operation { + // Unspecified. + OPERATION_UNSPECIFIED = 0; + + // Equal + EQUAL = 1; + + // Less than + LESS_THAN = 2; + + // Less than or equal + LESS_THAN_OR_EQUAL = 3; + + // Greater than + GREATER_THAN = 4; + + // Greater than or equal + GREATER_THAN_OR_EQUAL = 5; + } + + // The operation type for this filter. + Operation operation = 1; + + // A numeric value or a date value. + NumericValue value = 2; +} + +// To express that the result needs to be between two numbers (inclusive). +message AccessBetweenFilter { + // Begins with this number. + NumericValue from_value = 1; + + // Ends with this number. + NumericValue to_value = 2; +} + +// To represent a number. +message NumericValue { + // One of a numeric value + oneof one_value { + // Integer value + int64 int64_value = 1; + + // Double value + double double_value = 2; + } +} + +// Order bys define how rows will be sorted in the response. For example, +// ordering rows by descending access count is one ordering, and ordering rows +// by the country string is a different ordering. +message AccessOrderBy { + // 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. If false or unspecified, sorts in + // ascending order. + bool desc = 3; +} + +// 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 +// report; correspondingly, those dimensions do not produce headers. +message AccessDimensionHeader { + // The dimension's name; for example 'userEmail'. + string dimension_name = 1; +} + +// Describes a metric column in the report. Visible metrics requested in a +// report produce column entries within rows and MetricHeaders. However, +// metrics used exclusively within filters or expressions do not produce columns +// in a report; correspondingly, those metrics do not produce headers. +message AccessMetricHeader { + // The metric's name; for example 'accessCount'. + string metric_name = 1; +} + +// Access report data for each row. +message AccessRow { + // List of dimension values. These values are in the same order as specified + // in the request. + repeated AccessDimensionValue dimension_values = 1; + + // List of metric values. These values are in the same order as specified + // in the request. + repeated AccessMetricValue metric_values = 2; +} + +// The value of a dimension. +message AccessDimensionValue { + // The dimension value. For example, this value may be 'France' for the + // 'country' dimension. + string value = 1; +} + +// The value of a metric. +message AccessMetricValue { + // The measurement value. For example, this value may be '13'. + string value = 1; +} + +// Current state of all quotas for this Analytics property. If any quota for a +// property is exhausted, all requests to that property will return Resource +// Exhausted errors. +message AccessQuota { + // Properties can use 250,000 tokens per day. Most requests consume fewer than + // 10 tokens. + AccessQuotaStatus tokens_per_day = 1; + + // Properties can use 50,000 tokens per hour. An API request consumes a single + // number of tokens, and that number is deducted from both the hourly and + // daily quotas. + AccessQuotaStatus tokens_per_hour = 2; + + // Properties can use up to 50 concurrent requests. + AccessQuotaStatus concurrent_requests = 3; + + // Properties and cloud project pairs can have up to 50 server errors per + // hour. + AccessQuotaStatus server_errors_per_project_per_hour = 4; +} + +// Current state for a particular quota group. +message AccessQuotaStatus { + // Quota consumed by this request. + int32 consumed = 1; + + // Quota remaining after this request. + int32 remaining = 2; +} diff --git a/google/analytics/admin/v1alpha/admin_grpc_service_config.json b/google/analytics/admin/v1alpha/admin_grpc_service_config.json index c504383e3..7b40cde7a 100644 --- a/google/analytics/admin/v1alpha/admin_grpc_service_config.json +++ b/google/analytics/admin/v1alpha/admin_grpc_service_config.json @@ -10,149 +10,6 @@ "backoffMultiplier": 1.3, "retryableStatusCodes": ["UNAVAILABLE", "UNKNOWN"] } - }, - { - "name": [ - { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "GetAccount" - }, - { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ListAccounts" - }, - { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "DeleteAccount" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateAccount" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ProvisionAccountTicket" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "GetProperty" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ListProperties" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "DeleteProperty" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "CreateProperty" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateProperty" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "GetUserLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "BatchGetUserLinks" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ListUserLinks" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "AuditUserLinks" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "CreateUserLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "BatchCreateUserLinks" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateUserLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "BatchUpdateUserLinks" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "DeleteUserLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "BatchDeleteUserLinks" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "GetWebDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateWebDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "CreateWebDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ListWebDataStreams" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "GetIosAppDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "DeleteIosAppDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateIosAppDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "CreateIosAppDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ListIosAppDataStreams" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "GetAndroidAppDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "DeleteAndroidAppDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateAndroidAppDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "CreateAndroidAppDataStream" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ListAndroidAppDataStreams" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "GetEnhancedMeasurementSettings" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateEnhancedMeasurementSettings" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "CreateFirebaseLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateFirebaseLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "DeleteFirebaseLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ListFirebaseLinks" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "GetGlobalSiteTag" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "CreateGoogleAdsLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "UpdateGoogleAdsLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "DeleteGoogleAdsLink" - }, { - "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "method": "ListGoogleAdsLinks" - } - ], - "timeout": "60s" } ] } diff --git a/google/analytics/admin/v1alpha/analytics_admin.proto b/google/analytics/admin/v1alpha/analytics_admin.proto index ff367e3ff..926f91bb3 100644 --- a/google/analytics/admin/v1alpha/analytics_admin.proto +++ b/google/analytics/admin/v1alpha/analytics_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,6 +16,8 @@ syntax = "proto3"; package google.analytics.admin.v1alpha; +import "google/analytics/admin/v1alpha/access_report.proto"; +import "google/analytics/admin/v1alpha/audience.proto"; import "google/analytics/admin/v1alpha/resources.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; @@ -288,123 +290,6 @@ service AnalyticsAdminService { }; } - // Lookup for a single WebDataStream - rpc GetWebDataStream(GetWebDataStreamRequest) returns (WebDataStream) { - option (google.api.http) = { - get: "/v1alpha/{name=properties/*/webDataStreams/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Deletes a web stream on a property. - rpc DeleteWebDataStream(DeleteWebDataStreamRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha/{name=properties/*/webDataStreams/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates a web stream on a property. - rpc UpdateWebDataStream(UpdateWebDataStreamRequest) returns (WebDataStream) { - option (google.api.http) = { - patch: "/v1alpha/{web_data_stream.name=properties/*/webDataStreams/*}" - body: "web_data_stream" - }; - option (google.api.method_signature) = "web_data_stream,update_mask"; - } - - // Creates a web stream with the specified location and attributes. - rpc CreateWebDataStream(CreateWebDataStreamRequest) returns (WebDataStream) { - option (google.api.http) = { - post: "/v1alpha/{parent=properties/*}/webDataStreams" - body: "web_data_stream" - }; - option (google.api.method_signature) = "parent,web_data_stream"; - } - - // Returns child web data streams under the specified parent property. - // - // Web data streams will be excluded if the caller does not have access. - // Returns an empty list if no relevant web data streams are found. - rpc ListWebDataStreams(ListWebDataStreamsRequest) returns (ListWebDataStreamsResponse) { - option (google.api.http) = { - get: "/v1alpha/{parent=properties/*}/webDataStreams" - }; - option (google.api.method_signature) = "parent"; - } - - // Lookup for a single IosAppDataStream - rpc GetIosAppDataStream(GetIosAppDataStreamRequest) returns (IosAppDataStream) { - option (google.api.http) = { - get: "/v1alpha/{name=properties/*/iosAppDataStreams/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Deletes an iOS app stream on a property. - rpc DeleteIosAppDataStream(DeleteIosAppDataStreamRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha/{name=properties/*/iosAppDataStreams/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates an iOS app stream on a property. - rpc UpdateIosAppDataStream(UpdateIosAppDataStreamRequest) returns (IosAppDataStream) { - option (google.api.http) = { - patch: "/v1alpha/{ios_app_data_stream.name=properties/*/iosAppDataStreams/*}" - body: "ios_app_data_stream" - }; - option (google.api.method_signature) = "ios_app_data_stream,update_mask"; - } - - // Returns child iOS app data streams under the specified parent property. - // - // iOS app data streams will be excluded if the caller does not have access. - // Returns an empty list if no relevant iOS app data streams are found. - rpc ListIosAppDataStreams(ListIosAppDataStreamsRequest) returns (ListIosAppDataStreamsResponse) { - option (google.api.http) = { - get: "/v1alpha/{parent=properties/*}/iosAppDataStreams" - }; - option (google.api.method_signature) = "parent"; - } - - // Lookup for a single AndroidAppDataStream - rpc GetAndroidAppDataStream(GetAndroidAppDataStreamRequest) returns (AndroidAppDataStream) { - option (google.api.http) = { - get: "/v1alpha/{name=properties/*/androidAppDataStreams/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Deletes an android app stream on a property. - rpc DeleteAndroidAppDataStream(DeleteAndroidAppDataStreamRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha/{name=properties/*/androidAppDataStreams/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates an android app stream on a property. - rpc UpdateAndroidAppDataStream(UpdateAndroidAppDataStreamRequest) returns (AndroidAppDataStream) { - option (google.api.http) = { - patch: "/v1alpha/{android_app_data_stream.name=properties/*/androidAppDataStreams/*}" - body: "android_app_data_stream" - }; - option (google.api.method_signature) = "android_app_data_stream,update_mask"; - } - - // Returns child android app streams under the specified parent property. - // - // Android app streams will be excluded if the caller does not have access. - // Returns an empty list if no relevant android app streams are found. - rpc ListAndroidAppDataStreams(ListAndroidAppDataStreamsRequest) returns (ListAndroidAppDataStreamsResponse) { - option (google.api.http) = { - get: "/v1alpha/{parent=properties/*}/androidAppDataStreams" - }; - option (google.api.method_signature) = "parent"; - } - // Creates a FirebaseLink. // // Properties can have at most one FirebaseLink. @@ -437,7 +322,7 @@ service AnalyticsAdminService { // Site Tags are immutable singletons. rpc GetGlobalSiteTag(GetGlobalSiteTagRequest) returns (GlobalSiteTag) { option (google.api.http) = { - get: "/v1alpha/{name=properties/*/webDataStreams/*/globalSiteTag}" + get: "/v1alpha/{name=properties/*/dataStreams/*/globalSiteTag}" }; option (google.api.method_signature) = "name"; } @@ -488,13 +373,7 @@ service AnalyticsAdminService { // Lookup for a single "GA4" MeasurementProtocolSecret. rpc GetMeasurementProtocolSecret(GetMeasurementProtocolSecretRequest) returns (MeasurementProtocolSecret) { option (google.api.http) = { - get: "/v1alpha/{name=properties/*/webDataStreams/*/measurementProtocolSecrets/*}" - additional_bindings { - get: "/v1alpha/{name=properties/*/iosAppDataStreams/*/measurementProtocolSecrets/*}" - } - additional_bindings { - get: "/v1alpha/{name=properties/*/androidAppDataStreams/*/measurementProtocolSecrets/*}" - } + get: "/v1alpha/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" }; option (google.api.method_signature) = "name"; } @@ -503,13 +382,7 @@ service AnalyticsAdminService { // Property. rpc ListMeasurementProtocolSecrets(ListMeasurementProtocolSecretsRequest) returns (ListMeasurementProtocolSecretsResponse) { option (google.api.http) = { - get: "/v1alpha/{parent=properties/*/webDataStreams/*}/measurementProtocolSecrets" - additional_bindings { - get: "/v1alpha/{parent=properties/*/iosAppDataStreams/*}/measurementProtocolSecrets" - } - additional_bindings { - get: "/v1alpha/{parent=properties/*/androidAppDataStreams/*}/measurementProtocolSecrets" - } + get: "/v1alpha/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" }; option (google.api.method_signature) = "parent"; } @@ -517,16 +390,8 @@ service AnalyticsAdminService { // Creates a measurement protocol secret. rpc CreateMeasurementProtocolSecret(CreateMeasurementProtocolSecretRequest) returns (MeasurementProtocolSecret) { option (google.api.http) = { - post: "/v1alpha/{parent=properties/*/webDataStreams/*}/measurementProtocolSecrets" + post: "/v1alpha/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" body: "measurement_protocol_secret" - additional_bindings { - post: "/v1alpha/{parent=properties/*/iosAppDataStreams/*}/measurementProtocolSecrets" - body: "measurement_protocol_secret" - } - additional_bindings { - post: "/v1alpha/{parent=properties/*/androidAppDataStreams/*}/measurementProtocolSecrets" - body: "measurement_protocol_secret" - } }; option (google.api.method_signature) = "parent,measurement_protocol_secret"; } @@ -534,13 +399,7 @@ service AnalyticsAdminService { // Deletes target MeasurementProtocolSecret. rpc DeleteMeasurementProtocolSecret(DeleteMeasurementProtocolSecretRequest) returns (google.protobuf.Empty) { option (google.api.http) = { - delete: "/v1alpha/{name=properties/*/webDataStreams/*/measurementProtocolSecrets/*}" - additional_bindings { - delete: "/v1alpha/{name=properties/*/iosAppDataStreams/*/measurementProtocolSecrets/*}" - } - additional_bindings { - delete: "/v1alpha/{name=properties/*/androidAppDataStreams/*/measurementProtocolSecrets/*}" - } + delete: "/v1alpha/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" }; option (google.api.method_signature) = "name"; } @@ -548,16 +407,8 @@ service AnalyticsAdminService { // Updates a measurement protocol secret. rpc UpdateMeasurementProtocolSecret(UpdateMeasurementProtocolSecretRequest) returns (MeasurementProtocolSecret) { option (google.api.http) = { - patch: "/v1alpha/{measurement_protocol_secret.name=properties/*/webDataStreams/*/measurementProtocolSecrets/*}" + patch: "/v1alpha/{measurement_protocol_secret.name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" body: "measurement_protocol_secret" - additional_bindings { - patch: "/v1alpha/{measurement_protocol_secret.name=properties/*/iosAppDataStreams/*/measurementProtocolSecrets/*}" - body: "measurement_protocol_secret" - } - additional_bindings { - patch: "/v1alpha/{measurement_protocol_secret.name=properties/*/androidAppDataStreams/*/measurementProtocolSecrets/*}" - body: "measurement_protocol_secret" - } }; option (google.api.method_signature) = "measurement_protocol_secret,update_mask"; } @@ -880,6 +731,190 @@ service AnalyticsAdminService { }; option (google.api.method_signature) = "name"; } + + // Lookup for a single Audience. + // Audiences created before 2020 may not be supported. + rpc GetAudience(GetAudienceRequest) returns (Audience) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/audiences/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Audiences on a property. + // Audiences created before 2020 may not be supported. + rpc ListAudiences(ListAudiencesRequest) returns (ListAudiencesResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*}/audiences" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates an Audience. + rpc CreateAudience(CreateAudienceRequest) returns (Audience) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/audiences" + body: "audience" + }; + option (google.api.method_signature) = "parent,audience"; + } + + // Updates an Audience on a property. + rpc UpdateAudience(UpdateAudienceRequest) returns (Audience) { + option (google.api.http) = { + patch: "/v1alpha/{audience.name=properties/*/audiences/*}" + body: "audience" + }; + option (google.api.method_signature) = "audience,update_mask"; + } + + // Archives an Audience on a property. + rpc ArchiveAudience(ArchiveAudienceRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha/{name=properties/*/audiences/*}:archive" + body: "*" + }; + } + + // Lookup for a AttributionSettings singleton. + rpc GetAttributionSettings(GetAttributionSettingsRequest) returns (AttributionSettings) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/attributionSettings}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates attribution settings on a property. + rpc UpdateAttributionSettings(UpdateAttributionSettingsRequest) returns (AttributionSettings) { + option (google.api.http) = { + patch: "/v1alpha/{attribution_settings.name=properties/*/attributionSettings}" + body: "attribution_settings" + }; + option (google.api.method_signature) = "attribution_settings,update_mask"; + } + + // Returns a customized report of data access records. The report provides + // records of each time a user reads Google Analytics reporting data. Access + // records are retained for up to 2 years. + // + // Data Access Reports can be requested for a property. The property must be + // in Google Analytics 360. This method is only available to Administrators. + // + // These data access records include GA4 UI Reporting, GA4 UI Explorations, + // GA4 Data API, and other products like Firebase & Admob that can retrieve + // data from Google Analytics through a linkage. These records don't include + // property configuration changes like adding a stream or changing a + // property's time zone. For configuration change history, see + // [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents). + rpc RunAccessReport(RunAccessReportRequest) returns (RunAccessReportResponse) { + option (google.api.http) = { + post: "/v1alpha/{entity=properties/*}:runAccessReport" + body: "*" + }; + } +} + +// The request for a Data Access Record Report. +message RunAccessReportRequest { + // The Data Access Report is requested for this property. + // For example if "123" is your GA4 property ID, then entity should be + // "properties/123". + string entity = 1; + + // The dimensions requested and displayed in the response. Requests are + // allowed up to 9 dimensions. + repeated AccessDimension dimensions = 2; + + // The metrics requested and displayed in the response. Requests are allowed + // up to 10 metrics. + repeated AccessMetric metrics = 3; + + // Date ranges of access records 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 access records for the overlapping days is + // included in the response rows for both date ranges. Requests are allowed up + // to 2 date ranges. + repeated AccessDateRange date_ranges = 4; + + // Dimension filters allow you to restrict report response to specific + // dimension values which match the filter. For example, filtering on access + // records of a single user. 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. + AccessFilterExpression dimension_filter = 5; + + // Metric filters allow you to restrict report response to specific metric + // values which match the filter. Metric filters are applied after aggregating + // the report's rows, similar to SQL having-clause. Dimensions cannot be used + // in this filter. + AccessFilterExpression metric_filter = 6; + + // The row count of the start row. The first row is counted as row 0. If + // offset is unspecified, it is treated as 0. If offset is zero, then this + // method will return the first page of results with `limit` entries. + // + // To learn more about this pagination parameter, see + // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + int64 offset = 7; + + // The number of rows to return. If unspecified, 10,000 rows are returned. The + // API returns a maximum of 100,000 rows per request, no matter how many you + // ask for. `limit` must be positive. + // + // The API may return fewer rows than the requested `limit`, if there aren't + // as many remaining rows 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. + // + // To learn more about this pagination parameter, see + // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + int64 limit = 8; + + // This request's time zone if specified. If unspecified, the property's time + // zone is used. The request's time zone is used to interpret the start & end + // dates of the report. + // + // Formatted as strings from the IANA Time Zone database + // (https://www.iana.org/time-zones); for example "America/New_York" or + // "Asia/Tokyo". + string time_zone = 9; + + // Specifies how rows are ordered in the response. + repeated AccessOrderBy order_bys = 10; + + // Toggles whether to return the current state of this Analytics Property's + // quota. Quota is returned in [AccessQuota](#AccessQuota). + bool return_entity_quota = 11; +} + +// The customized Data Access Record Report response. +message RunAccessReportResponse { + // The header for a column in the report that corresponds to a specific + // dimension. The number of DimensionHeaders and ordering of DimensionHeaders + // matches the dimensions present in rows. + repeated AccessDimensionHeader dimension_headers = 1; + + // The header for a column in the report that corresponds to a specific + // metric. The number of MetricHeaders and ordering of MetricHeaders matches + // the metrics present in rows. + repeated AccessMetricHeader metric_headers = 2; + + // Rows of dimension value combinations and metric values in the report. + repeated AccessRow rows = 3; + + // The total number of rows in the query result. `rowCount` is independent of + // the number of rows returned in the response, the `limit` request + // parameter, and the `offset` request parameter. For example if a query + // returns 175 rows and includes `limit` of 50 in the API request, the + // response will contain `rowCount` of 175 but only 50 rows. + // + // To learn more about this pagination parameter, see + // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + int32 row_count = 4; + + // The quota state for this Analytics property including this request. + AccessQuota quota = 5; } // Request message for GetAccount RPC. @@ -983,14 +1018,17 @@ message GetPropertyRequest { message ListPropertiesRequest { // Required. An expression for filtering the results of the request. // Fields eligible for filtering are: - // `parent:`(The resource name of the parent account) or + // `parent:`(The resource name of the parent account/property) or + // `ancestor:`(The resource name of the parent account) or // `firebase_project:`(The id or number of the linked firebase project). // Some examples of filters: // // ``` // | Filter | Description | // |-----------------------------|-------------------------------------------| - // | parent:accounts/123 | The account with account id: 123. | + // | parent:accounts/123 | The account with account id: 123. | + // | parent:properties/123 | The property with property id: 123. | + // | ancestor:accounts/123 | The account with account id: 123. | // | firebase_project:project-id | The firebase project with id: project-id. | // | firebase_project:123 | The firebase project with number: 123. | // ``` @@ -1278,239 +1316,6 @@ message BatchDeleteUserLinksRequest { repeated DeleteUserLinkRequest requests = 2 [(google.api.field_behavior) = REQUIRED]; } -// Request message for GetWebDataStream RPC. -message GetWebDataStreamRequest { - // Required. The name of the web data stream to lookup. - // Format: properties/{property_id}/webDataStreams/{stream_id} - // Example: "properties/123/webDataStreams/456" - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsadmin.googleapis.com/WebDataStream" - } - ]; -} - -// Request message for DeleteWebDataStream RPC. -message DeleteWebDataStreamRequest { - // Required. The name of the web data stream to delete. - // Format: properties/{property_id}/webDataStreams/{stream_id} - // Example: "properties/123/webDataStreams/456" - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsadmin.googleapis.com/WebDataStream" - } - ]; -} - -// Request message for UpdateWebDataStream RPC. -message UpdateWebDataStreamRequest { - // Required. The web stream to update. - // The `name` field is used to identify the web stream to be updated. - WebDataStream web_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of fields to be updated. Field names must be in snake case - // (e.g., "field_to_update"). Omitted fields will not be updated. To replace - // the entire entity, use one path with the string "*" to match all fields. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for CreateWebDataStream RPC. -message CreateWebDataStreamRequest { - // Required. The web stream to create. - WebDataStream web_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The parent resource where this web data stream will be created. - // Format: properties/123 - string parent = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "analyticsadmin.googleapis.com/WebDataStream" - } - ]; -} - -// Request message for ListWebDataStreams RPC. -message ListWebDataStreamsRequest { - // Required. The name of the parent property. - // For example, to list results of web streams under the property with Id - // 123: "properties/123" - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "analyticsadmin.googleapis.com/WebDataStream" - } - ]; - - // The maximum number of resources to return. - // If unspecified, at most 50 resources will be returned. - // The maximum value is 200; (higher values will be coerced to the maximum) - int32 page_size = 2; - - // A page token, received from a previous `ListWebDataStreams` call. - // Provide this to retrieve the subsequent page. - // When paginating, all other parameters provided to `ListWebDataStreams` must - // match the call that provided the page token. - string page_token = 3; -} - -// Request message for ListWebDataStreams RPC. -message ListWebDataStreamsResponse { - // Results that matched the filter criteria and were accessible to the caller. - repeated WebDataStream web_data_streams = 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 GetIosAppDataStream RPC. -message GetIosAppDataStreamRequest { - // Required. The name of the iOS app data stream to lookup. - // Format: properties/{property_id}/iosAppDataStreams/{stream_id} - // Example: "properties/123/iosAppDataStreams/456" - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsadmin.googleapis.com/IosAppDataStream" - } - ]; -} - -// Request message for DeleteIosAppDataStream RPC. -message DeleteIosAppDataStreamRequest { - // Required. The name of the iOS app data stream to delete. - // Format: properties/{property_id}/iosAppDataStreams/{stream_id} - // Example: "properties/123/iosAppDataStreams/456" - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsadmin.googleapis.com/IosAppDataStream" - } - ]; -} - -// Request message for UpdateIosAppDataStream RPC. -message UpdateIosAppDataStreamRequest { - // Required. The iOS app stream to update. - // The `name` field is used to identify the iOS app stream to be updated. - IosAppDataStream ios_app_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of fields to be updated. Field names must be in snake case - // (e.g., "field_to_update"). Omitted fields will not be updated. To replace - // the entire entity, use one path with the string "*" to match all fields. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for ListIosAppDataStreams RPC. -message ListIosAppDataStreamsRequest { - // Required. The name of the parent property. - // For example, to list results of app streams under the property with Id - // 123: "properties/123" - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "analyticsadmin.googleapis.com/IosAppDataStream" - } - ]; - - // The maximum number of resources to return. - // If unspecified, at most 50 resources will be returned. - // The maximum value is 200; (higher values will be coerced to the maximum) - int32 page_size = 2; - - // A page token, received from a previous `ListIosAppDataStreams` - // call. Provide this to retrieve the subsequent page. - // When paginating, all other parameters provided to `ListIosAppDataStreams` - // must match the call that provided the page token. - string page_token = 3; -} - -// Request message for ListIosAppDataStreams RPC. -message ListIosAppDataStreamsResponse { - // Results that matched the filter criteria and were accessible to the caller. - repeated IosAppDataStream ios_app_data_streams = 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 GetAndroidAppDataStream RPC. -message GetAndroidAppDataStreamRequest { - // Required. The name of the android app data stream to lookup. - // Format: properties/{property_id}/androidAppDataStreams/{stream_id} - // Example: "properties/123/androidAppDataStreams/456" - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsadmin.googleapis.com/AndroidAppDataStream" - } - ]; -} - -// Request message for DeleteAndroidAppDataStream RPC. -message DeleteAndroidAppDataStreamRequest { - // Required. The name of the android app data stream to delete. - // Format: properties/{property_id}/androidAppDataStreams/{stream_id} - // Example: "properties/123/androidAppDataStreams/456" - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsadmin.googleapis.com/AndroidAppDataStream" - } - ]; -} - -// Request message for UpdateAndroidAppDataStream RPC. -message UpdateAndroidAppDataStreamRequest { - // Required. The android app stream to update. - // The `name` field is used to identify the android app stream to be updated. - AndroidAppDataStream android_app_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of fields to be updated. Field names must be in snake case - // (e.g., "field_to_update"). Omitted fields will not be updated. To replace - // the entire entity, use one path with the string "*" to match all fields. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for ListAndroidAppDataStreams RPC. -message ListAndroidAppDataStreamsRequest { - // Required. The name of the parent property. - // For example, to limit results to app streams under the property with Id - // 123: "properties/123" - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "analyticsadmin.googleapis.com/AndroidAppDataStream" - } - ]; - - // The maximum number of resources to return. - // - // If unspecified, at most 50 resources will be returned. - // The maximum value is 200; (higher values will be coerced to the maximum) - int32 page_size = 2; - - // A page token, received from a previous call. Provide this to - // retrieve the subsequent page. - // When paginating, all other parameters provided to - // `ListAndroidAppDataStreams` must match the call that provided the page - // token. - string page_token = 3; -} - -// Request message for ListAndroidDataStreams RPC. -message ListAndroidAppDataStreamsResponse { - // Results that matched the filter criteria and were accessible to the caller. - repeated AndroidAppDataStream android_app_data_streams = 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 CreateFirebaseLink RPC message CreateFirebaseLinkRequest { // Required. Format: properties/{property_id} @@ -1578,8 +1383,8 @@ message ListFirebaseLinksResponse { message GetGlobalSiteTagRequest { // Required. The name of the site tag to lookup. // Note that site tags are singletons and do not have unique IDs. - // Format: properties/{property_id}/webDataStreams/{stream_id}/globalSiteTag - // Example: "properties/123/webDataStreams/456/globalSiteTag" + // Format: properties/{property_id}/dataStreams/{stream_id}/globalSiteTag + // Example: "properties/123/dataStreams/456/globalSiteTag" string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1784,9 +1589,7 @@ message SearchChangeHistoryEventsResponse { message GetMeasurementProtocolSecretRequest { // Required. The name of the measurement protocol secret to lookup. // Format: - // properties/{property}/webDataStreams/{webDataStream}/measurementProtocolSecrets/{measurementProtocolSecret} - // Note: Any type of stream (WebDataStream, IosAppDataStream, - // AndroidAppDataStream) may be a parent. + // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret} string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1798,9 +1601,7 @@ message GetMeasurementProtocolSecretRequest { // Request message for CreateMeasurementProtocolSecret RPC message CreateMeasurementProtocolSecretRequest { // Required. The parent resource where this secret will be created. - // Any type of stream (WebDataStream, IosAppDataStream, AndroidAppDataStream) - // may be a parent. - // Format: properties/{property}/webDataStreams/{webDataStream} + // Format: properties/{property}/dataStreams/{dataStream} string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1816,9 +1617,7 @@ message CreateMeasurementProtocolSecretRequest { message DeleteMeasurementProtocolSecretRequest { // Required. The name of the MeasurementProtocolSecret to delete. // Format: - // properties/{property}/webDataStreams/{webDataStream}/measurementProtocolSecrets/{measurementProtocolSecret} - // Note: Any type of stream (WebDataStream, IosAppDataStream, - // AndroidAppDataStream) may be a parent. + // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret} string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1839,10 +1638,8 @@ message UpdateMeasurementProtocolSecretRequest { // Request message for ListMeasurementProtocolSecret RPC message ListMeasurementProtocolSecretsRequest { // Required. The resource name of the parent stream. - // Any type of stream (WebDataStream, IosAppDataStream, AndroidAppDataStream) - // may be a parent. // Format: - // properties/{property}/webDataStreams/{webDataStream}/measurementProtocolSecrets + // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -2428,3 +2225,109 @@ message GetDataStreamRequest { } ]; } + +// Request message for GetAudience RPC. +message GetAudienceRequest { + // Required. The name of the Audience to get. + // Example format: properties/1234/audiences/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Audience" + } + ]; +} + +// Request message for ListAudiences RPC. +message ListAudiencesRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/Audience" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200 (higher values will be coerced to the maximum). + int32 page_size = 2; + + // A page token, received from a previous `ListAudiences` call. Provide this + // to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAudiences` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListAudiences RPC. +message ListAudiencesResponse { + // List of Audiences. + repeated Audience audiences = 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 CreateAudience RPC. +message CreateAudienceRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/Audience" + } + ]; + + // Required. The audience to create. + Audience audience = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateAudience RPC. +message UpdateAudienceRequest { + // Required. The audience to update. + // The audience's `name` field is used to identify the audience to be updated. + Audience audience = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to be updated. Field names must be in snake case + // (e.g., "field_to_update"). Omitted fields will not be updated. To replace + // the entire entity, use one path with the string "*" to match all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ArchiveAudience RPC. +message ArchiveAudienceRequest { + // Required. Example format: properties/1234/audiences/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/Audience" + } + ]; +} + +// Request message for GetAttributionSettings RPC. +message GetAttributionSettingsRequest { + // Required. The name of the attribution settings to retrieve. + // Format: properties/{property}/attributionSettings + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/AttributionSettings" + } + ]; +} + +// Request message for UpdateAttributionSettings RPC +message UpdateAttributionSettingsRequest { + // Required. The attribution settings to update. + // The `name` field is used to identify the settings to be updated. + AttributionSettings attribution_settings = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to be updated. Field names must be in snake case + // (e.g., "field_to_update"). Omitted fields will not be updated. To replace + // the entire entity, use one path with the string "*" to match all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/analytics/admin/v1alpha/analyticsadmin.yaml b/google/analytics/admin/v1alpha/analyticsadmin.yaml new file mode 100644 index 000000000..d74aa8bac --- /dev/null +++ b/google/analytics/admin/v1alpha/analyticsadmin.yaml @@ -0,0 +1,198 @@ +type: google.api.Service +config_version: 3 +name: analyticsadmin.googleapis.com +title: Google Analytics Admin API + +apis: +- name: google.analytics.admin.v1alpha.AnalyticsAdminService + +authentication: + rules: + - selector: 'google.analytics.admin.v1alpha.AnalyticsAdminService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.AuditUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users, + https://www.googleapis.com/auth/analytics.manage.users.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.BatchCreateUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.BatchDeleteUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.BatchGetUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users, + https://www.googleapis.com/auth/analytics.manage.users.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.BatchUpdateUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.CreateUserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteUserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetAccount + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetAttributionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetAudience + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetConversionEvent + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomDimension + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomMetric + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataRetentionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataSharingSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataStream + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLinkProposal + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetGlobalSiteTag + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetGoogleSignalsSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetMeasurementProtocolSecret + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetProperty + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetUserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users, + https://www.googleapis.com/auth/analytics.manage.users.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccountSummaries + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccounts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListConversionEvents + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomDimensions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomMetrics + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListDataStreams + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinkProposals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListFirebaseLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListGoogleAdsLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListMeasurementProtocolSecrets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListProperties + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users, + https://www.googleapis.com/auth/analytics.manage.users.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateUserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users diff --git a/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml b/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml index 20cb77def..e268411e9 100644 --- a/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml +++ b/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml @@ -47,7 +47,12 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly - - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetAndroidAppDataStream + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetAttributionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetAudience oauth: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, @@ -102,11 +107,6 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly - - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetIosAppDataStream - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/analytics.edit, - https://www.googleapis.com/auth/analytics.readonly - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetMeasurementProtocolSecret oauth: canonical_scopes: |- @@ -122,11 +122,6 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.manage.users, https://www.googleapis.com/auth/analytics.manage.users.readonly - - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetWebDataStream - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/analytics.edit, - https://www.googleapis.com/auth/analytics.readonly - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccountSummaries oauth: canonical_scopes: |- @@ -137,7 +132,7 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly - - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListAndroidAppDataStreams + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListAudiences oauth: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, @@ -182,11 +177,6 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly - - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListIosAppDataStreams - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/analytics.edit, - https://www.googleapis.com/auth/analytics.readonly - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListMeasurementProtocolSecrets oauth: canonical_scopes: |- @@ -202,7 +192,7 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.manage.users, https://www.googleapis.com/auth/analytics.manage.users.readonly - - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListWebDataStreams + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.RunAccessReport oauth: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, diff --git a/google/analytics/admin/v1alpha/audience.proto b/google/analytics/admin/v1alpha/audience.proto new file mode 100644 index 000000000..e12943e1c --- /dev/null +++ b/google/analytics/admin/v1alpha/audience.proto @@ -0,0 +1,419 @@ +// 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.analytics.admin.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "google.golang.org/genproto/googleapis/analytics/admin/v1alpha;admin"; +option java_multiple_files = true; +option java_outer_classname = "AudienceProto"; +option java_package = "com.google.analytics.admin.v1alpha"; + +// Specifies how to evaluate users for joining an Audience. +enum AudienceFilterScope { + // Scope is not specified. + AUDIENCE_FILTER_SCOPE_UNSPECIFIED = 0; + + // User joins the Audience if the filter condition is met within one + // event. + AUDIENCE_FILTER_SCOPE_WITHIN_SAME_EVENT = 1; + + // User joins the Audience if the filter condition is met within one + // session. + AUDIENCE_FILTER_SCOPE_WITHIN_SAME_SESSION = 2; + + // User joins the Audience if the filter condition is met by any event + // across any session. + AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS = 3; +} + +// A specific filter for a single dimension or metric. +message AudienceDimensionOrMetricFilter { + // A filter for a string-type dimension that matches a particular pattern. + message StringFilter { + // The match type for the string filter. + enum MatchType { + // Unspecified + MATCH_TYPE_UNSPECIFIED = 0; + + // Exact match of the string value. + EXACT = 1; + + // Begins with the string value. + BEGINS_WITH = 2; + + // Ends with the string value. + ENDS_WITH = 3; + + // Contains the string value. + CONTAINS = 4; + + // Full regular expression matches with the string value. + FULL_REGEXP = 5; + + // Partial regular expression matches with the string value. + PARTIAL_REGEXP = 6; + } + + // Required. The match type for the string filter. + MatchType match_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The string value to be matched against. + string value = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. If true, the match is case-sensitive. If false, the match is + // case-insensitive. + bool case_sensitive = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // A filter for a string dimension that matches a particular list of options. + message InListFilter { + // Required. The list of possible string values to match against. Must be non-empty. + repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. If true, the match is case-sensitive. If false, the match is + // case-insensitive. + bool case_sensitive = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // To represent a number. + message NumericValue { + // One of a numeric value. + oneof one_value { + // Integer value. + int64 int64_value = 1; + + // Double value. + double double_value = 2; + } + } + + // A filter for numeric or date values on a dimension or metric. + message NumericFilter { + // The operation applied to a numeric filter. + enum Operation { + // Unspecified. + OPERATION_UNSPECIFIED = 0; + + // Equal. + EQUAL = 1; + + // Less than. + LESS_THAN = 2; + + // Less than or equal. + LESS_THAN_OR_EQUAL = 3; + + // Greater than. + GREATER_THAN = 4; + + // Greater than or equal. + GREATER_THAN_OR_EQUAL = 5; + } + + // Required. The operation applied to a numeric filter. + Operation operation = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The numeric or date value to match against. + NumericValue value = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // A filter for numeric or date values between certain values on a dimension + // or metric. + message BetweenFilter { + // Required. Begins with this number, inclusive. + NumericValue from_value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ends with this number, inclusive. + NumericValue to_value = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // One of the above filters. + oneof one_filter { + // A filter for a string-type dimension that matches a particular pattern. + StringFilter string_filter = 2; + + // A filter for a string dimension that matches a particular list of + // options. + InListFilter in_list_filter = 3; + + // A filter for numeric or date values on a dimension or metric. + NumericFilter numeric_filter = 4; + + // A filter for numeric or date values between certain values on a dimension + // or metric. + BetweenFilter between_filter = 5; + } + + // Required. Immutable. The dimension name or metric name to filter. + string field_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Indicates whether this filter needs dynamic evaluation or not. If set to + // true, users join the Audience if they ever met the condition (static + // evaluation). If unset or set to false, user evaluation for an Audience is + // dynamic; users are added to an Audience when they meet the conditions and + // then removed when they no longer meet them. + // + // This can only be set when Audience scope is ACROSS_ALL_SESSIONS. + bool at_any_point_in_time = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, specifies the time window for which to evaluate data in number of + // days. If not set, then audience data is evaluated against lifetime data + // (i.e., infinite time window). + // + // For example, if set to 1 day, only the current day's data is evaluated. The + // reference point is the current day when at_any_point_in_time is unset or + // false. + // + // It can only be set when Audience scope is ACROSS_ALL_SESSIONS and cannot be + // greater than 60 days. + int32 in_any_n_day_period = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// A filter that matches events of a single event name. If an event parameter +// is specified, only the subset of events that match both the single event name +// and the parameter filter expressions match this event filter. +message AudienceEventFilter { + // Required. Immutable. The name of the event to match against. + string event_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. If specified, this filter matches events that match both the single + // event name and the parameter filter expressions. AudienceEventFilter + // inside the parameter filter expression cannot be set (i.e., nested + // event filters are not supported). This should be a single and_group of + // dimension_or_metric_filter or not_expression; ANDs of ORs are not + // supported. Also, if it includes a filter for "eventCount", only that one + // will be considered; all the other filters will be ignored. + AudienceFilterExpression event_parameter_filter_expression = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A logical expression of Audience dimension, metric, or event filters. +message AudienceFilterExpression { + // The expression applied to a filter. + oneof expr { + // A list of expressions to be AND’ed together. It can only contain + // AudienceFilterExpressions with or_group. This must be set for the top + // level AudienceFilterExpression. + AudienceFilterExpressionList and_group = 1; + + // A list of expressions to OR’ed together. It cannot contain + // AudienceFilterExpressions with and_group or or_group. + AudienceFilterExpressionList or_group = 2; + + // A filter expression to be NOT'ed (i.e., inverted, complemented). It + // can only include a dimension_or_metric_filter. This cannot be set on the + // top level AudienceFilterExpression. + AudienceFilterExpression not_expression = 3; + + // A filter on a single dimension or metric. This cannot be set on the top + // level AudienceFilterExpression. + AudienceDimensionOrMetricFilter dimension_or_metric_filter = 4; + + // Creates a filter that matches a specific event. This cannot be set on the + // top level AudienceFilterExpression. + AudienceEventFilter event_filter = 5; + } +} + +// A list of Audience filter expressions. +message AudienceFilterExpressionList { + // A list of Audience filter expressions. + repeated AudienceFilterExpression filter_expressions = 1; +} + +// Defines a simple filter that a user must satisfy to be a member of the +// Audience. +message AudienceSimpleFilter { + // Required. Immutable. Specifies the scope for this filter. + AudienceFilterScope scope = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. A logical expression of Audience dimension, metric, or event filters. + AudienceFilterExpression filter_expression = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; +} + +// Defines filters that must occur in a specific order for the user to be a +// member of the Audience. +message AudienceSequenceFilter { + // A condition that must occur in the specified step order for this user + // to match the sequence. + message AudienceSequenceStep { + // Required. Immutable. Specifies the scope for this step. + AudienceFilterScope scope = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. If true, the event satisfying this step must be the very next event + // after the event satisfying the last step. If unset or false, this + // step indirectly follows the prior step; for example, there may be + // events between the prior step and this step. It is ignored for the + // first step. + bool immediately_follows = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When set, this step must be satisfied within the constraint_duration of + // the previous step (i.e., t[i] - t[i-1] <= constraint_duration). If not + // set, there is no duration requirement (the duration is effectively + // unlimited). It is ignored for the first step. + google.protobuf.Duration constraint_duration = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Immutable. A logical expression of Audience dimension, metric, or event filters in + // each step. + AudienceFilterExpression filter_expression = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + } + + // Required. Immutable. Specifies the scope for this filter. + AudienceFilterScope scope = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Defines the time period in which the whole sequence must occur. + google.protobuf.Duration sequence_maximum_duration = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. An ordered sequence of steps. A user must complete each step in order to + // join the sequence filter. + repeated AudienceSequenceStep sequence_steps = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// A clause for defining either a simple or sequence filter. A filter can be +// inclusive (i.e., users satisfying the filter clause are included in the +// Audience) or exclusive (i.e., users satisfying the filter clause are +// excluded from the Audience). +message AudienceFilterClause { + // Specifies whether this is an include or exclude filter clause. + enum AudienceClauseType { + // Unspecified clause type. + AUDIENCE_CLAUSE_TYPE_UNSPECIFIED = 0; + + // Users will be included in the Audience if the filter clause is met. + INCLUDE = 1; + + // Users will be excluded from the Audience if the filter clause is met. + EXCLUDE = 2; + } + + oneof filter { + // A simple filter that a user must satisfy to be a member of the Audience. + AudienceSimpleFilter simple_filter = 2; + + // Filters that must occur in a specific order for the user to be a member + // of the Audience. + AudienceSequenceFilter sequence_filter = 3; + } + + // Required. Specifies whether this is an include or exclude filter clause. + AudienceClauseType clause_type = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Specifies an event to log when a user joins the Audience. +message AudienceEventTrigger { + // Determines when to log the event. + enum LogCondition { + // Log condition is not specified. + LOG_CONDITION_UNSPECIFIED = 0; + + // The event should be logged only when a user is joined. + AUDIENCE_JOINED = 1; + + // The event should be logged whenever the Audience condition is met, even + // if the user is already a member of the Audience. + AUDIENCE_MEMBERSHIP_RENEWED = 2; + } + + // Required. The event name that will be logged. + string event_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. When to log the event. + LogCondition log_condition = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A resource message representing a GA4 Audience. +message Audience { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/Audience" + pattern: "properties/{property}/audiences/{audience}" + }; + + // Specifies how long an exclusion lasts for users that meet the exclusion + // filter. + enum AudienceExclusionDurationMode { + // Not specified. + AUDIENCE_EXCLUSION_DURATION_MODE_UNSPECIFIED = 0; + + // Exclude users from the Audience during periods when they meet the + // filter clause. + EXCLUDE_TEMPORARILY = 1; + + // Exclude users from the Audience if they've ever met the filter clause. + EXCLUDE_PERMANENTLY = 2; + } + + // Output only. The resource name for this Audience resource. + // Format: properties/{propertyId}/audiences/{audienceId} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the Audience. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The description of the Audience. + string description = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The duration a user should stay in an Audience. It cannot be set to more + // than 540 days. + int32 membership_duration_days = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. It is automatically set by GA to false if this is an NPA Audience and is + // excluded from ads personalization. + bool ads_personalization_enabled = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Specifies an event to log when a user joins the Audience. If not set, no + // event is logged when a user joins the Audience. + AudienceEventTrigger event_trigger = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Immutable. Specifies how long an exclusion lasts for users that meet the exclusion + // filter. It is applied to all EXCLUDE filter clauses and is ignored when + // there is no EXCLUDE filter clause in the Audience. + AudienceExclusionDurationMode exclusion_duration_mode = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. Immutable. null Filter clauses that define the Audience. All clauses will be AND’ed + // together. + repeated AudienceFilterClause filter_clauses = 8 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = UNORDERED_LIST + ]; +} diff --git a/google/analytics/admin/v1alpha/resources.proto b/google/analytics/admin/v1alpha/resources.proto index 4820ec8c0..337c7fe65 100644 --- a/google/analytics/admin/v1alpha/resources.proto +++ b/google/analytics/admin/v1alpha/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -164,15 +164,6 @@ enum ChangeHistoryResourceType { // Property resource PROPERTY = 2; - // WebDataStream resource - WEB_DATA_STREAM = 3; - - // AndroidAppDataStream resource - ANDROID_APP_DATA_STREAM = 4; - - // IosAppDataStream resource - IOS_APP_DATA_STREAM = 5; - // FirebaseLink resource FIREBASE_LINK = 6; @@ -202,6 +193,15 @@ enum ChangeHistoryResourceType { // DisplayVideo360AdvertiserLinkProposal resource DISPLAY_VIDEO_360_ADVERTISER_LINK_PROPOSAL = 15; + + // SearchAds360Link resource + SEARCH_ADS_360_LINK = 16; + + // DataStream resource + DATA_STREAM = 18; + + // AttributionSettings resource + ATTRIBUTION_SETTINGS = 20; } // Status of the Google Signals settings (i.e., whether this feature has been @@ -278,6 +278,21 @@ enum LinkProposalState { OBSOLETE = 6; } +// Types of Property resources. +enum PropertyType { + // Unknown or unspecified property type + PROPERTY_TYPE_UNSPECIFIED = 0; + + // Ordinary GA4 property + PROPERTY_TYPE_ORDINARY = 1; + + // GA4 subproperty + PROPERTY_TYPE_SUBPROPERTY = 2; + + // GA4 rollup property + PROPERTY_TYPE_ROLLUP = 3; +} + // A resource message representing a Google Analytics account. message Account { option (google.api.resource) = { @@ -319,6 +334,12 @@ message Property { // Example: "properties/1000" string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Immutable. The property type for this Property resource. When creating a property, if + // the type is "PROPERTY_TYPE_UNSPECIFIED", then "ORDINARY_PROPERTY" will be + // implied. "SUBPROPERTY" and "ROLLUP_PROPERTY" types cannot yet be created + // via Google Analytics Admin API. + PropertyType property_type = 14 [(google.api.field_behavior) = IMMUTABLE]; + // Output only. Time when the entity was originally created. google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -328,8 +349,8 @@ message Property { // Immutable. Resource name of this property's logical parent. // // Note: The Property-Moving UI can be used to change the parent. - // Format: accounts/{account} - // Example: "accounts/100" + // Format: accounts/{account}, properties/{property} + // Example: "accounts/100", "properties/101" string parent = 2 [(google.api.field_behavior) = IMMUTABLE]; // Required. Human-readable display name for this property. @@ -382,109 +403,6 @@ message Property { ]; } -// A resource message representing a Google Analytics Android app stream. -message AndroidAppDataStream { - option (google.api.resource) = { - type: "analyticsadmin.googleapis.com/AndroidAppDataStream" - pattern: "properties/{property}/androidAppDataStreams/{android_app_data_stream}" - }; - - // Output only. Resource name of this Data Stream. - // Format: properties/{property_id}/androidAppDataStreams/{stream_id} - // Example: "properties/1000/androidAppDataStreams/2000" - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. ID of the corresponding Android app in Firebase, if any. - // This ID can change if the Android app is deleted and recreated. - string firebase_app_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when this stream was originally created. - google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when stream payload fields were last updated. - google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. The package name for the app being measured. - // Example: "com.example.myandroidapp" - string package_name = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Human-readable display name for the Data Stream. - // - // The max allowed display name length is 255 UTF-16 code units. - string display_name = 6; -} - -// A resource message representing a Google Analytics IOS app stream. -message IosAppDataStream { - option (google.api.resource) = { - type: "analyticsadmin.googleapis.com/IosAppDataStream" - pattern: "properties/{property}/iosAppDataStreams/{ios_app_data_stream}" - }; - - // Output only. Resource name of this Data Stream. - // Format: properties/{property_id}/iosAppDataStreams/{stream_id} - // Example: "properties/1000/iosAppDataStreams/2000" - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. ID of the corresponding iOS app in Firebase, if any. - // This ID can change if the iOS app is deleted and recreated. - string firebase_app_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when this stream was originally created. - google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when stream payload fields were last updated. - google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. Immutable. The Apple App Store Bundle ID for the app - // Example: "com.example.myiosapp" - string bundle_id = 5 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.field_behavior) = REQUIRED - ]; - - // Human-readable display name for the Data Stream. - // - // The max allowed display name length is 255 UTF-16 code units. - string display_name = 6; -} - -// A resource message representing a Google Analytics web stream. -message WebDataStream { - option (google.api.resource) = { - type: "analyticsadmin.googleapis.com/WebDataStream" - pattern: "properties/{property}/webDataStreams/{web_data_stream}" - }; - - // Output only. Resource name of this Data Stream. - // Format: properties/{property_id}/webDataStreams/{stream_id} - // Example: "properties/1000/webDataStreams/2000" - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Analytics "Measurement ID", without the "G-" prefix. - // Example: "G-1A2BCD345E" would just be "1A2BCD345E" - string measurement_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. ID of the corresponding web app in Firebase, if any. - // This ID can change if the web app is deleted and recreated. - string firebase_app_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when this stream was originally created. - google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when stream payload fields were last updated. - google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Domain name of the web app being measured, or empty. - // Example: "http://www.google.com", "https://www.google.com" - string default_uri = 6 [(google.api.field_behavior) = IMMUTABLE]; - - // Required. Human-readable display name for the Data Stream. - // - // The max allowed display name length is 255 UTF-16 code units. - string display_name = 7 [(google.api.field_behavior) = REQUIRED]; -} - // A resource message representing a data stream. message DataStream { option (google.api.resource) = { @@ -668,15 +586,16 @@ message FirebaseLink { } // Read-only resource with the tag for sending data from a website to a -// WebDataStream. +// DataStream. Only present for web DataStream resources. message GlobalSiteTag { option (google.api.resource) = { type: "analyticsadmin.googleapis.com/GlobalSiteTag" - pattern: "properties/{property}/globalSiteTag" + pattern: "properties/{property}/dataStreams/{data_stream}/globalSiteTag" }; // Output only. Resource name for this GlobalSiteTag resource. - // Format: properties/{propertyId}/globalSiteTag + // Format: properties/{property_id}/dataStreams/{stream_id}/globalSiteTag + // Example: "properties/123/dataStreams/456/globalSiteTag" string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. JavaScript code snippet to be pasted as the first item into the head tag of @@ -790,19 +709,29 @@ message PropertySummary { // Display name for the property referred to in this property summary. string display_name = 2; + + // The property's property type. + PropertyType property_type = 3; + + // Resource name of this property's logical parent. + // + // Note: The Property-Moving UI can be used to change the parent. + // Format: accounts/{account}, properties/{property} + // Example: "accounts/100", "properties/200" + string parent = 4; } // A secret value used for sending hits to Measurement Protocol. message MeasurementProtocolSecret { option (google.api.resource) = { type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret" - pattern: "properties/{property}/webDataStreams/{web_data_stream}/measurementProtocolSecrets/{measurement_protocol_secret}" + pattern: "properties/{property}/dataStreams/{data_stream}/measurementProtocolSecrets/{measurement_protocol_secret}" }; // Output only. Resource name of this secret. This secret may be a child of any type of // stream. // Format: - // properties/{property}/webDataStreams/{webDataStream}/measurementProtocolSecrets/{measurementProtocolSecret} + // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret} string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. Human-readable display name for this secret. @@ -854,15 +783,6 @@ message ChangeHistoryChange { // A snapshot of a Property resource in change history. Property property = 2; - // A snapshot of a WebDataStream resource in change history. - WebDataStream web_data_stream = 3; - - // A snapshot of an AndroidAppDataStream resource in change history. - AndroidAppDataStream android_app_data_stream = 4; - - // A snapshot of an IosAppDataStream resource in change history. - IosAppDataStream ios_app_data_stream = 5; - // A snapshot of a FirebaseLink resource in change history. FirebaseLink firebase_link = 6; @@ -894,6 +814,12 @@ message ChangeHistoryChange { // A snapshot of a data retention settings resource in change history. DataRetentionSettings data_retention_settings = 15; + + // A snapshot of a DataStream resource in change history. + DataStream data_stream = 18; + + // A snapshot of AttributionSettings resource in change history. + AttributionSettings attribution_settings = 20; } } @@ -1065,7 +991,7 @@ message GoogleSignalsSettings { message CustomDimension { option (google.api.resource) = { type: "analyticsadmin.googleapis.com/CustomDimension" - pattern: "properties/{property}/customDimensions" + pattern: "properties/{property}/customDimensions/{custom_dimension}" }; // Valid values for the scope of this dimension. @@ -1125,7 +1051,7 @@ message CustomDimension { message CustomMetric { option (google.api.resource) = { type: "analyticsadmin.googleapis.com/CustomMetric" - pattern: "properties/{property}/customMetrics" + pattern: "properties/{property}/customMetrics/{custom_metric}" }; // Possible types of representing the custom metric's value. @@ -1176,6 +1102,19 @@ message CustomMetric { EVENT = 1; } + // Labels that mark the data in this custom metric as data that should be + // restricted to specific users. + enum RestrictedMetricType { + // Type unknown or unspecified. + RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0; + + // Metric reports cost data. + COST_DATA = 1; + + // Metric reports revenue data. + REVENUE_DATA = 2; + } + // Output only. Resource name for this CustomMetric resource. // Format: properties/{property}/customMetrics/{customMetric} string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -1211,6 +1150,11 @@ message CustomMetric { (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; + + // Optional. Types of restricted data that this metric may contain. Required for metrics + // with CURRENCY measurement unit. Must be empty for metrics with a + // non-CURRENCY measurement unit. + repeated RestrictedMetricType restricted_metric_type = 8 [(google.api.field_behavior) = OPTIONAL]; } // Settings values for data retention. This is a singleton resource. @@ -1255,3 +1199,102 @@ message DataRetentionSettings { // event from that user. bool reset_user_data_on_new_activity = 3; } + +// The attribution settings used for a given property. This is a singleton +// resource. +message AttributionSettings { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/AttributionSettings" + pattern: "properties/{property}/attributionSettings" + }; + + // How far back in time events should be considered for inclusion in a + // converting path which leads to the first install of an app or the first + // visit to a site. + enum AcquisitionConversionEventLookbackWindow { + // Lookback window size unspecified. + ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_UNSPECIFIED = 0; + + // 7-day lookback window. + ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_7_DAYS = 1; + + // 30-day lookback window. + ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS = 2; + } + + // How far back in time events should be considered for inclusion in a + // converting path for all conversions other than first app install/first site + // visit. + enum OtherConversionEventLookbackWindow { + // Lookback window size unspecified. + OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_UNSPECIFIED = 0; + + // 30-day lookback window. + OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS = 1; + + // 60-day lookback window. + OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_60_DAYS = 2; + + // 90-day lookback window. + OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_90_DAYS = 3; + } + + // The reporting attribution model used to calculate conversion credit in this + // property's reports. + enum ReportingAttributionModel { + // Reporting attribution model unspecified. + REPORTING_ATTRIBUTION_MODEL_UNSPECIFIED = 0; + + // Data-driven attribution distributes credit for the conversion based on + // data for each conversion event. Each Data-driven model is specific to + // each advertiser and each conversion event. + CROSS_CHANNEL_DATA_DRIVEN = 1; + + // Ignores direct traffic and attributes 100% of the conversion value to the + // last channel that the customer clicked through (or engaged view through + // for YouTube) before converting. + CROSS_CHANNEL_LAST_CLICK = 2; + + // Gives all credit for the conversion to the first channel that a customer + // clicked (or engaged view through for YouTube) before converting. + CROSS_CHANNEL_FIRST_CLICK = 3; + + // Distributes the credit for the conversion equally across all the channels + // a customer clicked (or engaged view through for YouTube) before + // converting. + CROSS_CHANNEL_LINEAR = 4; + + // Attributes 40% credit to the first and last interaction, and the + // remaining 20% credit is distributed evenly to the middle interactions. + CROSS_CHANNEL_POSITION_BASED = 5; + + // Gives more credit to the touchpoints that happened closer in time to + // the conversion. + CROSS_CHANNEL_TIME_DECAY = 6; + + // Attributes 100% of the conversion value to the last Google Ads channel + // that the customer clicked through before converting. + ADS_PREFERRED_LAST_CLICK = 7; + } + + // Output only. Resource name of this attribution settings resource. + // Format: properties/{property_id}/attributionSettings + // Example: "properties/1000/attributionSettings" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The lookback window configuration for acquisition conversion events. + // The default window size is 30 days. + AcquisitionConversionEventLookbackWindow acquisition_conversion_event_lookback_window = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The lookback window for all other, non-acquisition conversion events. + // The default window size is 90 days. + OtherConversionEventLookbackWindow other_conversion_event_lookback_window = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The reporting attribution model used to calculate conversion credit in this + // property's reports. + // + // Changing the attribution model will apply to both historical and future + // data. These changes will be reflected in reports with conversion and + // revenue data. User and session data will be unaffected. + ReportingAttributionModel reporting_attribution_model = 4 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/analytics/admin/v1beta/BUILD.bazel b/google/analytics/admin/v1beta/BUILD.bazel new file mode 100644 index 000000000..3184ca8f3 --- /dev/null +++ b/google/analytics/admin/v1beta/BUILD.bazel @@ -0,0 +1,376 @@ +# 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 = "admin_proto", + srcs = [ + "analytics_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", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "admin_proto_with_info", + deps = [ + ":admin_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_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 = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin.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.analytics.admin.v1beta.AnalyticsAdminServiceClientHttpJsonTest", + "com.google.analytics.admin.v1beta.AnalyticsAdminServiceClientTest", + ], + runtime_deps = [":admin_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-analytics-admin-v1beta-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":admin_java_gapic", + ":admin_java_grpc", + ":admin_java_proto", + ":admin_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "admin_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/analytics/admin/v1beta", + protos = [":admin_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "admin_go_gapic", + srcs = [":admin_proto_with_info"], + grpc_service_config = "admin_grpc_service_config.json", + importpath = "google.golang.org/google/analytics/admin/v1beta;admin", + metadata = True, + service_yaml = "analyticsadmin.yaml", + transport = "grpc+rest", + deps = [ + ":admin_go_proto", + ], +) + +go_test( + name = "admin_go_gapic_test", + srcs = [":admin_go_gapic_srcjar_test"], + embed = [":admin_go_gapic"], + importpath = "google.golang.org/google/analytics/admin/v1beta", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-analytics-admin-v1beta-go", + deps = [ + ":admin_go_gapic", + ":admin_go_gapic_srcjar-metadata.srcjar", + ":admin_go_gapic_srcjar-test.srcjar", + ":admin_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +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 = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin.yaml", + transport = "grpc+rest", +) + +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 = "analytics-admin-v1beta-py", + deps = [ + ":admin_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "admin_php_proto", + deps = [":admin_proto"], +) + +php_grpc_library( + name = "admin_php_grpc", + srcs = [":admin_proto"], + deps = [":admin_php_proto"], +) + +php_gapic_library( + name = "admin_php_gapic", + srcs = [":admin_proto_with_info"], + grpc_service_config = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin.yaml", + deps = [ + ":admin_php_grpc", + ":admin_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-analytics-admin-v1beta-php", + deps = [ + ":admin_php_gapic", + ":admin_php_grpc", + ":admin_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +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 = "admin_grpc_service_config.json", + package = "google.analytics.admin.v1beta", + service_yaml = "analyticsadmin.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "analytics-admin-v1beta-nodejs", + deps = [ + ":admin_nodejs_gapic", + ":admin_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 = "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-analytics-admin-v1beta", + ], + grpc_service_config = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin.yaml", + deps = [ + ":admin_ruby_grpc", + ":admin_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-analytics-admin-v1beta-ruby", + deps = [ + ":admin_ruby_gapic", + ":admin_ruby_grpc", + ":admin_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 = "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 = "admin_grpc_service_config.json", + service_yaml = "analyticsadmin.yaml", + deps = [ + ":admin_csharp_grpc", + ":admin_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-analytics-admin-v1beta-csharp", + deps = [ + ":admin_csharp_gapic", + ":admin_csharp_grpc", + ":admin_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +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/google/analytics/admin/v1beta/admin_grpc_service_config.json b/google/analytics/admin/v1beta/admin_grpc_service_config.json new file mode 100644 index 000000000..e78bde2d9 --- /dev/null +++ b/google/analytics/admin/v1beta/admin_grpc_service_config.json @@ -0,0 +1,158 @@ +{ + "methodConfig": [ + { + "name": [{"service": "google.analytics.admin.v1beta.AnalyticsAdminService"}], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "UNKNOWN"] + } + }, + { + "name": [ + { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "GetAccount" + }, + { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ListAccounts" + }, + { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "DeleteAccount" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateAccount" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ProvisionAccountTicket" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "GetProperty" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ListProperties" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "DeleteProperty" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "CreateProperty" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateProperty" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "GetUserLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "BatchGetUserLinks" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ListUserLinks" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "AuditUserLinks" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "CreateUserLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "BatchCreateUserLinks" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateUserLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "BatchUpdateUserLinks" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "DeleteUserLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "BatchDeleteUserLinks" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "GetWebDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateWebDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "CreateWebDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ListWebDataStreams" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "GetIosAppDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "DeleteIosAppDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateIosAppDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "CreateIosAppDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ListIosAppDataStreams" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "GetAndroidAppDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "DeleteAndroidAppDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateAndroidAppDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "CreateAndroidAppDataStream" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ListAndroidAppDataStreams" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "GetEnhancedMeasurementSettings" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateEnhancedMeasurementSettings" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "CreateFirebaseLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateFirebaseLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "DeleteFirebaseLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ListFirebaseLinks" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "GetGlobalSiteTag" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "CreateGoogleAdsLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "UpdateGoogleAdsLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "DeleteGoogleAdsLink" + }, { + "service": "google.analytics.admin.v1beta.AnalyticsAdminService", + "method": "ListGoogleAdsLinks" + } + ], + "timeout": "60s" + } + ] +} diff --git a/google/analytics/admin/v1beta/analytics_admin.proto b/google/analytics/admin/v1beta/analytics_admin.proto new file mode 100644 index 000000000..7e80f7362 --- /dev/null +++ b/google/analytics/admin/v1beta/analytics_admin.proto @@ -0,0 +1,1333 @@ +// 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.analytics.admin.v1beta; + +import "google/analytics/admin/v1beta/resources.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"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/analytics/admin/v1beta;admin"; +option java_multiple_files = true; +option java_outer_classname = "AnalyticsAdminProto"; +option java_package = "com.google.analytics.admin.v1beta"; + +// Service Interface for the Analytics Admin API (GA4). +service AnalyticsAdminService { + option (google.api.default_host) = "analyticsadmin.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/analytics.edit," + "https://www.googleapis.com/auth/analytics.readonly"; + + // Lookup for a single Account. + rpc GetAccount(GetAccountRequest) returns (Account) { + option (google.api.http) = { + get: "/v1beta/{name=accounts/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns all accounts accessible by the caller. + // + // Note that these accounts might not currently have GA4 properties. + // Soft-deleted (ie: "trashed") accounts are excluded by default. + // Returns an empty list if no relevant accounts are found. + rpc ListAccounts(ListAccountsRequest) returns (ListAccountsResponse) { + option (google.api.http) = { + get: "/v1beta/accounts" + }; + } + + // Marks target Account as soft-deleted (ie: "trashed") and returns it. + // + // This API does not have a method to restore soft-deleted accounts. + // However, they can be restored using the Trash Can UI. + // + // If the accounts are not restored before the expiration time, the account + // and all child resources (eg: Properties, GoogleAdsLinks, Streams, + // UserLinks) will be permanently purged. + // https://support.google.com/analytics/answer/6154772 + // + // Returns an error if the target is not found. + rpc DeleteAccount(DeleteAccountRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=accounts/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates an account. + rpc UpdateAccount(UpdateAccountRequest) returns (Account) { + option (google.api.http) = { + patch: "/v1beta/{account.name=accounts/*}" + body: "account" + }; + option (google.api.method_signature) = "account,update_mask"; + } + + // Requests a ticket for creating an account. + rpc ProvisionAccountTicket(ProvisionAccountTicketRequest) returns (ProvisionAccountTicketResponse) { + option (google.api.http) = { + post: "/v1beta/accounts:provisionAccountTicket" + body: "*" + }; + } + + // Returns summaries of all accounts accessible by the caller. + rpc ListAccountSummaries(ListAccountSummariesRequest) returns (ListAccountSummariesResponse) { + option (google.api.http) = { + get: "/v1beta/accountSummaries" + }; + } + + // Lookup for a single "GA4" Property. + rpc GetProperty(GetPropertyRequest) returns (Property) { + option (google.api.http) = { + get: "/v1beta/{name=properties/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns child Properties under the specified parent Account. + // + // Only "GA4" properties will be returned. + // Properties will be excluded if the caller does not have access. + // Soft-deleted (ie: "trashed") properties are excluded by default. + // Returns an empty list if no relevant properties are found. + rpc ListProperties(ListPropertiesRequest) returns (ListPropertiesResponse) { + option (google.api.http) = { + get: "/v1beta/properties" + }; + } + + // Creates an "GA4" property with the specified location and attributes. + rpc CreateProperty(CreatePropertyRequest) returns (Property) { + option (google.api.http) = { + post: "/v1beta/properties" + body: "property" + }; + option (google.api.method_signature) = "property"; + } + + // Marks target Property as soft-deleted (ie: "trashed") and returns it. + // + // This API does not have a method to restore soft-deleted properties. + // However, they can be restored using the Trash Can UI. + // + // If the properties are not restored before the expiration time, the Property + // and all child resources (eg: GoogleAdsLinks, Streams, UserLinks) + // will be permanently purged. + // https://support.google.com/analytics/answer/6154772 + // + // Returns an error if the target is not found, or is not an GA4 Property. + rpc DeleteProperty(DeletePropertyRequest) returns (Property) { + option (google.api.http) = { + delete: "/v1beta/{name=properties/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a property. + rpc UpdateProperty(UpdatePropertyRequest) returns (Property) { + option (google.api.http) = { + patch: "/v1beta/{property.name=properties/*}" + body: "property" + }; + option (google.api.method_signature) = "property,update_mask"; + } + + // Creates a FirebaseLink. + // + // Properties can have at most one FirebaseLink. + rpc CreateFirebaseLink(CreateFirebaseLinkRequest) returns (FirebaseLink) { + option (google.api.http) = { + post: "/v1beta/{parent=properties/*}/firebaseLinks" + body: "firebase_link" + }; + option (google.api.method_signature) = "parent,firebase_link"; + } + + // Deletes a FirebaseLink on a property + rpc DeleteFirebaseLink(DeleteFirebaseLinkRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=properties/*/firebaseLinks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists FirebaseLinks on a property. + // Properties can have at most one FirebaseLink. + rpc ListFirebaseLinks(ListFirebaseLinksRequest) returns (ListFirebaseLinksResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=properties/*}/firebaseLinks" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a GoogleAdsLink. + rpc CreateGoogleAdsLink(CreateGoogleAdsLinkRequest) returns (GoogleAdsLink) { + option (google.api.http) = { + post: "/v1beta/{parent=properties/*}/googleAdsLinks" + body: "google_ads_link" + }; + option (google.api.method_signature) = "parent,google_ads_link"; + } + + // Updates a GoogleAdsLink on a property + rpc UpdateGoogleAdsLink(UpdateGoogleAdsLinkRequest) returns (GoogleAdsLink) { + option (google.api.http) = { + patch: "/v1beta/{google_ads_link.name=properties/*/googleAdsLinks/*}" + body: "google_ads_link" + }; + option (google.api.method_signature) = "google_ads_link,update_mask"; + } + + // Deletes a GoogleAdsLink on a property + rpc DeleteGoogleAdsLink(DeleteGoogleAdsLinkRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=properties/*/googleAdsLinks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists GoogleAdsLinks on a property. + rpc ListGoogleAdsLinks(ListGoogleAdsLinksRequest) returns (ListGoogleAdsLinksResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=properties/*}/googleAdsLinks" + }; + option (google.api.method_signature) = "parent"; + } + + // Get data sharing settings on an account. + // Data sharing settings are singletons. + rpc GetDataSharingSettings(GetDataSharingSettingsRequest) returns (DataSharingSettings) { + option (google.api.http) = { + get: "/v1beta/{name=accounts/*/dataSharingSettings}" + }; + option (google.api.method_signature) = "name"; + } + + // Lookup for a single "GA4" MeasurementProtocolSecret. + rpc GetMeasurementProtocolSecret(GetMeasurementProtocolSecretRequest) returns (MeasurementProtocolSecret) { + option (google.api.http) = { + get: "/v1beta/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns child MeasurementProtocolSecrets under the specified parent + // Property. + rpc ListMeasurementProtocolSecrets(ListMeasurementProtocolSecretsRequest) returns (ListMeasurementProtocolSecretsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a measurement protocol secret. + rpc CreateMeasurementProtocolSecret(CreateMeasurementProtocolSecretRequest) returns (MeasurementProtocolSecret) { + option (google.api.http) = { + post: "/v1beta/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" + body: "measurement_protocol_secret" + }; + option (google.api.method_signature) = "parent,measurement_protocol_secret"; + } + + // Deletes target MeasurementProtocolSecret. + rpc DeleteMeasurementProtocolSecret(DeleteMeasurementProtocolSecretRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a measurement protocol secret. + rpc UpdateMeasurementProtocolSecret(UpdateMeasurementProtocolSecretRequest) returns (MeasurementProtocolSecret) { + option (google.api.http) = { + patch: "/v1beta/{measurement_protocol_secret.name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" + body: "measurement_protocol_secret" + }; + option (google.api.method_signature) = "measurement_protocol_secret,update_mask"; + } + + // Acknowledges the terms of user data collection for the specified property. + // + // This acknowledgement must be completed (either in the Google Analytics UI + // or via this API) before MeasurementProtocolSecret resources may be created. + rpc AcknowledgeUserDataCollection(AcknowledgeUserDataCollectionRequest) returns (AcknowledgeUserDataCollectionResponse) { + option (google.api.http) = { + post: "/v1beta/{property=properties/*}:acknowledgeUserDataCollection" + body: "*" + }; + } + + // Searches through all changes to an account or its children given the + // specified set of filters. + rpc SearchChangeHistoryEvents(SearchChangeHistoryEventsRequest) returns (SearchChangeHistoryEventsResponse) { + option (google.api.http) = { + post: "/v1beta/{account=accounts/*}:searchChangeHistoryEvents" + body: "*" + }; + } + + // Creates a conversion event with the specified attributes. + rpc CreateConversionEvent(CreateConversionEventRequest) returns (ConversionEvent) { + option (google.api.http) = { + post: "/v1beta/{parent=properties/*}/conversionEvents" + body: "conversion_event" + }; + option (google.api.method_signature) = "parent,conversion_event"; + } + + // Retrieve a single conversion event. + rpc GetConversionEvent(GetConversionEventRequest) returns (ConversionEvent) { + option (google.api.http) = { + get: "/v1beta/{name=properties/*/conversionEvents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a conversion event in a property. + rpc DeleteConversionEvent(DeleteConversionEventRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=properties/*/conversionEvents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns a list of conversion events in the specified parent property. + // + // Returns an empty list if no conversion events are found. + rpc ListConversionEvents(ListConversionEventsRequest) returns (ListConversionEventsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=properties/*}/conversionEvents" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a CustomDimension. + rpc CreateCustomDimension(CreateCustomDimensionRequest) returns (CustomDimension) { + option (google.api.http) = { + post: "/v1beta/{parent=properties/*}/customDimensions" + body: "custom_dimension" + }; + option (google.api.method_signature) = "parent,custom_dimension"; + } + + // Updates a CustomDimension on a property. + rpc UpdateCustomDimension(UpdateCustomDimensionRequest) returns (CustomDimension) { + option (google.api.http) = { + patch: "/v1beta/{custom_dimension.name=properties/*/customDimensions/*}" + body: "custom_dimension" + }; + option (google.api.method_signature) = "custom_dimension,update_mask"; + } + + // Lists CustomDimensions on a property. + rpc ListCustomDimensions(ListCustomDimensionsRequest) returns (ListCustomDimensionsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=properties/*}/customDimensions" + }; + option (google.api.method_signature) = "parent"; + } + + // Archives a CustomDimension on a property. + rpc ArchiveCustomDimension(ArchiveCustomDimensionRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta/{name=properties/*/customDimensions/*}:archive" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Lookup for a single CustomDimension. + rpc GetCustomDimension(GetCustomDimensionRequest) returns (CustomDimension) { + option (google.api.http) = { + get: "/v1beta/{name=properties/*/customDimensions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a CustomMetric. + rpc CreateCustomMetric(CreateCustomMetricRequest) returns (CustomMetric) { + option (google.api.http) = { + post: "/v1beta/{parent=properties/*}/customMetrics" + body: "custom_metric" + }; + option (google.api.method_signature) = "parent,custom_metric"; + } + + // Updates a CustomMetric on a property. + rpc UpdateCustomMetric(UpdateCustomMetricRequest) returns (CustomMetric) { + option (google.api.http) = { + patch: "/v1beta/{custom_metric.name=properties/*/customMetrics/*}" + body: "custom_metric" + }; + option (google.api.method_signature) = "custom_metric,update_mask"; + } + + // Lists CustomMetrics on a property. + rpc ListCustomMetrics(ListCustomMetricsRequest) returns (ListCustomMetricsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=properties/*}/customMetrics" + }; + option (google.api.method_signature) = "parent"; + } + + // Archives a CustomMetric on a property. + rpc ArchiveCustomMetric(ArchiveCustomMetricRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta/{name=properties/*/customMetrics/*}:archive" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Lookup for a single CustomMetric. + rpc GetCustomMetric(GetCustomMetricRequest) returns (CustomMetric) { + option (google.api.http) = { + get: "/v1beta/{name=properties/*/customMetrics/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns the singleton data retention settings for this property. + rpc GetDataRetentionSettings(GetDataRetentionSettingsRequest) returns (DataRetentionSettings) { + option (google.api.http) = { + get: "/v1beta/{name=properties/*/dataRetentionSettings}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the singleton data retention settings for this property. + rpc UpdateDataRetentionSettings(UpdateDataRetentionSettingsRequest) returns (DataRetentionSettings) { + option (google.api.http) = { + patch: "/v1beta/{data_retention_settings.name=properties/*/dataRetentionSettings}" + body: "data_retention_settings" + }; + option (google.api.method_signature) = "data_retention_settings,update_mask"; + } + + // Creates a DataStream. + rpc CreateDataStream(CreateDataStreamRequest) returns (DataStream) { + option (google.api.http) = { + post: "/v1beta/{parent=properties/*}/dataStreams" + body: "data_stream" + }; + option (google.api.method_signature) = "parent,data_stream"; + } + + // Deletes a DataStream on a property. + rpc DeleteDataStream(DeleteDataStreamRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=properties/*/dataStreams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a DataStream on a property. + rpc UpdateDataStream(UpdateDataStreamRequest) returns (DataStream) { + option (google.api.http) = { + patch: "/v1beta/{data_stream.name=properties/*/dataStreams/*}" + body: "data_stream" + }; + option (google.api.method_signature) = "data_stream,update_mask"; + } + + // Lists DataStreams on a property. + rpc ListDataStreams(ListDataStreamsRequest) returns (ListDataStreamsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=properties/*}/dataStreams" + }; + option (google.api.method_signature) = "parent"; + } + + // Lookup for a single DataStream. + rpc GetDataStream(GetDataStreamRequest) returns (DataStream) { + option (google.api.http) = { + get: "/v1beta/{name=properties/*/dataStreams/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for GetAccount RPC. +message GetAccountRequest { + // Required. The name of the account to lookup. + // Format: accounts/{account} + // Example: "accounts/100" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Account" + } + ]; +} + +// Request message for ListAccounts RPC. +message ListAccountsRequest { + // The maximum number of resources to return. The service may return + // fewer than this value, even if there are additional pages. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 1; + + // 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; + + // Whether to include soft-deleted (ie: "trashed") Accounts in the + // results. Accounts can be inspected to determine whether they are deleted or + // not. + bool show_deleted = 3; +} + +// Request message for ListAccounts RPC. +message ListAccountsResponse { + // Results that were accessible to the caller. + 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 DeleteAccount RPC. +message DeleteAccountRequest { + // Required. The name of the Account to soft-delete. + // Format: accounts/{account} + // Example: "accounts/100" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Account" + } + ]; +} + +// Request message for UpdateAccount RPC. +message UpdateAccountRequest { + // Required. The account to update. + // The account's `name` field is used to identify the account. + Account account = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to be updated. Field names must be in snake case + // (e.g., "field_to_update"). Omitted fields will not be updated. To replace + // the entire entity, use one path with the string "*" to match all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ProvisionAccountTicket RPC. +message ProvisionAccountTicketRequest { + // The account to create. + Account account = 1; + + // Redirect URI where the user will be sent after accepting Terms of Service. + // Must be configured in Developers Console as a Redirect URI + string redirect_uri = 2; +} + +// Response message for ProvisionAccountTicket RPC. +message ProvisionAccountTicketResponse { + // The param to be passed in the ToS link. + string account_ticket_id = 1; +} + +// Request message for GetProperty RPC. +message GetPropertyRequest { + // Required. The name of the property to lookup. + // Format: properties/{property_id} + // Example: "properties/1000" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Property" + } + ]; +} + +// Request message for ListProperties RPC. +message ListPropertiesRequest { + // Required. An expression for filtering the results of the request. + // Fields eligible for filtering are: + // `parent:`(The resource name of the parent account/property) or + // `ancestor:`(The resource name of the parent account) or + // `firebase_project:`(The id or number of the linked firebase project). + // Some examples of filters: + // + // ``` + // | Filter | Description | + // |-----------------------------|-------------------------------------------| + // | parent:accounts/123 | The account with account id: 123. | + // | parent:properties/123 | The property with property id: 123. | + // | ancestor:accounts/123 | The account with account id: 123. | + // | firebase_project:project-id | The firebase project with id: project-id. | + // | firebase_project:123 | The firebase project with number: 123. | + // ``` + string filter = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of resources to return. The service may return + // fewer than this value, even if there are additional pages. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 2; + + // A page token, received from a previous `ListProperties` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListProperties` must + // match the call that provided the page token. + string page_token = 3; + + // Whether to include soft-deleted (ie: "trashed") Properties in the + // results. Properties can be inspected to determine whether they are deleted + // or not. + bool show_deleted = 4; +} + +// Response message for ListProperties RPC. +message ListPropertiesResponse { + // Results that matched the filter criteria and were accessible to the caller. + repeated Property properties = 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 UpdateProperty RPC. +message UpdatePropertyRequest { + // Required. The property to update. + // The property's `name` field is used to identify the property to be + // updated. + Property property = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to be updated. Field names must be in snake case + // (e.g., "field_to_update"). Omitted fields will not be updated. To replace + // the entire entity, use one path with the string "*" to match all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for CreateProperty RPC. +message CreatePropertyRequest { + // Required. The property to create. + // Note: the supplied property must specify its parent. + Property property = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteProperty RPC. +message DeletePropertyRequest { + // Required. The name of the Property to soft-delete. + // Format: properties/{property_id} + // Example: "properties/1000" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Property" + } + ]; +} + +// Request message for CreateFirebaseLink RPC +message CreateFirebaseLinkRequest { + // Required. Format: properties/{property_id} + // Example: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/FirebaseLink" + } + ]; + + // Required. The Firebase link to create. + FirebaseLink firebase_link = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteFirebaseLink RPC +message DeleteFirebaseLinkRequest { + // Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id} + // Example: properties/1234/firebaseLinks/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/FirebaseLink" + } + ]; +} + +// Request message for ListFirebaseLinks RPC +message ListFirebaseLinksRequest { + // Required. Format: properties/{property_id} + // Example: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/FirebaseLink" + } + ]; + + // The maximum number of resources to return. The service may return + // fewer than this value, even if there are additional pages. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 2; + + // A page token, received from a previous `ListFirebaseLinks` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListProperties` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListFirebaseLinks RPC +message ListFirebaseLinksResponse { + // List of FirebaseLinks. This will have at most one value. + repeated FirebaseLink firebase_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. + // Currently, Google Analytics supports only one FirebaseLink per property, + // so this will never be populated. + string next_page_token = 2; +} + +// Request message for CreateGoogleAdsLink RPC +message CreateGoogleAdsLinkRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/GoogleAdsLink" + } + ]; + + // Required. The GoogleAdsLink to create. + GoogleAdsLink google_ads_link = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateGoogleAdsLink RPC +message UpdateGoogleAdsLinkRequest { + // The GoogleAdsLink to update + GoogleAdsLink google_ads_link = 1; + + // Required. The list of fields to be updated. Field names must be in snake case + // (e.g., "field_to_update"). Omitted fields will not be updated. To replace + // the entire entity, use one path with the string "*" to match all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteGoogleAdsLink RPC. +message DeleteGoogleAdsLinkRequest { + // Required. Example format: properties/1234/googleAdsLinks/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/GoogleAdsLink" + } + ]; +} + +// Request message for ListGoogleAdsLinks RPC. +message ListGoogleAdsLinksRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/GoogleAdsLink" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200 (higher values will be coerced to the maximum). + int32 page_size = 2; + + // A page token, received from a previous `ListGoogleAdsLinks` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListGoogleAdsLinks` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListGoogleAdsLinks RPC. +message ListGoogleAdsLinksResponse { + // List of GoogleAdsLinks. + repeated GoogleAdsLink google_ads_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 GetDataSharingSettings RPC. +message GetDataSharingSettingsRequest { + // Required. The name of the settings to lookup. + // Format: accounts/{account}/dataSharingSettings + // Example: "accounts/1000/dataSharingSettings" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/DataSharingSettings" + } + ]; +} + +// Request message for ListAccountSummaries RPC. +message ListAccountSummariesRequest { + // The maximum number of AccountSummary resources to return. The service may + // return fewer than this value, even if there are additional pages. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 1; + + // A page token, received from a previous `ListAccountSummaries` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListAccountSummaries` + // must match the call that provided the page token. + string page_token = 2; +} + +// Response message for ListAccountSummaries RPC. +message ListAccountSummariesResponse { + // Account summaries of all accounts the caller has access to. + repeated AccountSummary account_summaries = 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 AcknowledgeUserDataCollection RPC. +message AcknowledgeUserDataCollectionRequest { + // Required. The property for which to acknowledge user data collection. + string property = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Property" + } + ]; + + // Required. An acknowledgement that the caller of this method understands the terms + // of user data collection. + // + // This field must contain the exact value: + // "I acknowledge that I have the necessary privacy disclosures and rights + // from my end users for the collection and processing of their data, + // including the association of such data with the visitation information + // Google Analytics collects from my site and/or app property." + string acknowledgement = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for AcknowledgeUserDataCollection RPC. +message AcknowledgeUserDataCollectionResponse { + +} + +// Request message for SearchChangeHistoryEvents RPC. +message SearchChangeHistoryEventsRequest { + // Required. The account resource for which to return change history resources. + string account = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Account" + } + ]; + + // Optional. Resource name for a child property. If set, only return changes + // made to this property or its child resources. + string property = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Property" + } + ]; + + // Optional. If set, only return changes if they are for a resource that matches at + // least one of these types. + repeated ChangeHistoryResourceType resource_type = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, only return changes that match one or more of these types of + // actions. + repeated ActionType action = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, only return changes if they are made by a user in this list. + repeated string actor_email = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, only return changes made after this time (inclusive). + google.protobuf.Timestamp earliest_change_time = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, only return changes made before this time (inclusive). + google.protobuf.Timestamp latest_change_time = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of ChangeHistoryEvent items to return. + // The service may return fewer than this value, even if there are additional + // pages. If unspecified, at most 50 items will be returned. + // The maximum value is 200 (higher values will be coerced to the maximum). + int32 page_size = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `SearchChangeHistoryEvents` call. + // Provide this to retrieve the subsequent page. When paginating, all other + // parameters provided to `SearchChangeHistoryEvents` must match the call that + // provided the page token. + string page_token = 9 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for SearchAccounts RPC. +message SearchChangeHistoryEventsResponse { + // Results that were accessible to the caller. + repeated ChangeHistoryEvent change_history_events = 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 GetMeasurementProtocolSecret RPC. +message GetMeasurementProtocolSecretRequest { + // Required. The name of the measurement protocol secret to lookup. + // Format: + // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret" + } + ]; +} + +// Request message for CreateMeasurementProtocolSecret RPC +message CreateMeasurementProtocolSecretRequest { + // Required. The parent resource where this secret will be created. + // Format: properties/{property}/dataStreams/{dataStream} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret" + } + ]; + + // Required. The measurement protocol secret to create. + MeasurementProtocolSecret measurement_protocol_secret = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteMeasurementProtocolSecret RPC +message DeleteMeasurementProtocolSecretRequest { + // Required. The name of the MeasurementProtocolSecret to delete. + // Format: + // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret" + } + ]; +} + +// Request message for UpdateMeasurementProtocolSecret RPC +message UpdateMeasurementProtocolSecretRequest { + // Required. The measurement protocol secret to update. + MeasurementProtocolSecret measurement_protocol_secret = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for ListMeasurementProtocolSecret RPC +message ListMeasurementProtocolSecretsRequest { + // Required. The resource name of the parent stream. + // Format: + // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 10 resources will be returned. + // The maximum value is 10. Higher values will be coerced to the maximum. + int32 page_size = 2; + + // A page token, received from a previous `ListMeasurementProtocolSecrets` + // call. Provide this to retrieve the subsequent page. When paginating, all + // other parameters provided to `ListMeasurementProtocolSecrets` must match + // the call that provided the page token. + string page_token = 3; +} + +// Response message for ListMeasurementProtocolSecret RPC +message ListMeasurementProtocolSecretsResponse { + // A list of secrets for the parent stream specified in the request. + repeated MeasurementProtocolSecret measurement_protocol_secrets = 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 CreateConversionEvent RPC +message CreateConversionEventRequest { + // Required. The conversion event to create. + ConversionEvent conversion_event = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource name of the parent property where this conversion event will + // be created. Format: properties/123 + string parent = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/ConversionEvent" + } + ]; +} + +// Request message for GetConversionEvent RPC +message GetConversionEventRequest { + // Required. The resource name of the conversion event to retrieve. + // Format: properties/{property}/conversionEvents/{conversion_event} + // Example: "properties/123/conversionEvents/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/ConversionEvent" + } + ]; +} + +// Request message for DeleteConversionEvent RPC +message DeleteConversionEventRequest { + // Required. The resource name of the conversion event to delete. + // Format: properties/{property}/conversionEvents/{conversion_event} + // Example: "properties/123/conversionEvents/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/ConversionEvent" + } + ]; +} + +// Request message for ListConversionEvents RPC +message ListConversionEventsRequest { + // Required. The resource name of the parent property. + // Example: 'properties/123' + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/ConversionEvent" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 2; + + // A page token, received from a previous `ListConversionEvents` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListConversionEvents` + // must match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListConversionEvents RPC. +message ListConversionEventsResponse { + // The requested conversion events + repeated ConversionEvent conversion_events = 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 CreateCustomDimension RPC. +message CreateCustomDimensionRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/CustomDimension" + } + ]; + + // Required. The CustomDimension to create. + CustomDimension custom_dimension = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateCustomDimension RPC. +message UpdateCustomDimensionRequest { + // The CustomDimension to update + CustomDimension custom_dimension = 1; + + // Required. The list of fields to be updated. Omitted fields will not be updated. + // To replace the entire entity, use one path with the string "*" to match + // all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ListCustomDimensions RPC. +message ListCustomDimensionsRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/CustomDimension" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200 (higher values will be coerced to the maximum). + int32 page_size = 2; + + // A page token, received from a previous `ListCustomDimensions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCustomDimensions` + // must match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListCustomDimensions RPC. +message ListCustomDimensionsResponse { + // List of CustomDimensions. + repeated CustomDimension custom_dimensions = 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 ArchiveCustomDimension RPC. +message ArchiveCustomDimensionRequest { + // Required. The name of the CustomDimension to archive. + // Example format: properties/1234/customDimensions/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/CustomDimension" + } + ]; +} + +// Request message for GetCustomDimension RPC. +message GetCustomDimensionRequest { + // Required. The name of the CustomDimension to get. + // Example format: properties/1234/customDimensions/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/CustomDimension" + } + ]; +} + +// Request message for CreateCustomMetric RPC. +message CreateCustomMetricRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/CustomMetric" + } + ]; + + // Required. The CustomMetric to create. + CustomMetric custom_metric = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateCustomMetric RPC. +message UpdateCustomMetricRequest { + // The CustomMetric to update + CustomMetric custom_metric = 1; + + // Required. The list of fields to be updated. Omitted fields will not be updated. + // To replace the entire entity, use one path with the string "*" to match + // all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ListCustomMetrics RPC. +message ListCustomMetricsRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/CustomMetric" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200 (higher values will be coerced to the maximum). + int32 page_size = 2; + + // A page token, received from a previous `ListCustomMetrics` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCustomMetrics` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListCustomMetrics RPC. +message ListCustomMetricsResponse { + // List of CustomMetrics. + repeated CustomMetric custom_metrics = 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 ArchiveCustomMetric RPC. +message ArchiveCustomMetricRequest { + // Required. The name of the CustomMetric to archive. + // Example format: properties/1234/customMetrics/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/CustomMetric" + } + ]; +} + +// Request message for GetCustomMetric RPC. +message GetCustomMetricRequest { + // Required. The name of the CustomMetric to get. + // Example format: properties/1234/customMetrics/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/CustomMetric" + } + ]; +} + +// Request message for GetDataRetentionSettings RPC. +message GetDataRetentionSettingsRequest { + // Required. The name of the settings to lookup. + // Format: + // properties/{property}/dataRetentionSettings + // Example: "properties/1000/dataRetentionSettings" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/DataRetentionSettings" + } + ]; +} + +// Request message for UpdateDataRetentionSettings RPC. +message UpdateDataRetentionSettingsRequest { + // Required. The settings to update. + // The `name` field is used to identify the settings to be updated. + DataRetentionSettings data_retention_settings = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to be updated. Field names must be in snake case + // (e.g., "field_to_update"). Omitted fields will not be updated. To replace + // the entire entity, use one path with the string "*" to match all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for CreateDataStream RPC. +message CreateDataStreamRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/DataStream" + } + ]; + + // Required. The DataStream to create. + DataStream data_stream = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteDataStream RPC. +message DeleteDataStreamRequest { + // Required. The name of the DataStream to delete. + // Example format: properties/1234/dataStreams/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/DataStream" + } + ]; +} + +// Request message for UpdateDataStream RPC. +message UpdateDataStreamRequest { + // The DataStream to update + DataStream data_stream = 1; + + // Required. The list of fields to be updated. Omitted fields will not be updated. + // To replace the entire entity, use one path with the string "*" to match + // all fields. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ListDataStreams RPC. +message ListDataStreamsRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/DataStream" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200 (higher values will be coerced to the maximum). + int32 page_size = 2; + + // A page token, received from a previous `ListDataStreams` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListDataStreams` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListDataStreams RPC. +message ListDataStreamsResponse { + // List of DataStreams. + repeated DataStream data_streams = 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 GetDataStream RPC. +message GetDataStreamRequest { + // Required. The name of the DataStream to get. + // Example format: properties/1234/dataStreams/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/DataStream" + } + ]; +} diff --git a/google/analytics/admin/v1beta/analyticsadmin.yaml b/google/analytics/admin/v1beta/analyticsadmin.yaml new file mode 100644 index 000000000..bffe682e8 --- /dev/null +++ b/google/analytics/admin/v1beta/analyticsadmin.yaml @@ -0,0 +1,109 @@ +type: google.api.Service +config_version: 3 +name: analyticsadmin.googleapis.com +title: Google Analytics Admin API + +apis: +- name: google.analytics.admin.v1beta.AnalyticsAdminService + +authentication: + rules: + - selector: 'google.analytics.admin.v1beta.AnalyticsAdminService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetAccount + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetConversionEvent + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetCustomDimension + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetCustomMetric + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetDataRetentionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetDataSharingSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetDataStream + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetMeasurementProtocolSecret + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetProperty + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListAccountSummaries + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListAccounts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListConversionEvents + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListCustomDimensions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListCustomMetrics + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListDataStreams + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListFirebaseLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListGoogleAdsLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListMeasurementProtocolSecrets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListProperties + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly diff --git a/google/analytics/admin/v1beta/resources.proto b/google/analytics/admin/v1beta/resources.proto new file mode 100644 index 000000000..2a7010305 --- /dev/null +++ b/google/analytics/admin/v1beta/resources.proto @@ -0,0 +1,905 @@ +// 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.analytics.admin.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "google.golang.org/genproto/googleapis/analytics/admin/v1beta;admin"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.analytics.admin.v1beta"; + +// The category selected for this property, used for industry benchmarking. +enum IndustryCategory { + // Industry category unspecified + INDUSTRY_CATEGORY_UNSPECIFIED = 0; + + // Automotive + AUTOMOTIVE = 1; + + // Business and industrial markets + BUSINESS_AND_INDUSTRIAL_MARKETS = 2; + + // Finance + FINANCE = 3; + + // Healthcare + HEALTHCARE = 4; + + // Technology + TECHNOLOGY = 5; + + // Travel + TRAVEL = 6; + + // Other + OTHER = 7; + + // Arts and entertainment + ARTS_AND_ENTERTAINMENT = 8; + + // Beauty and fitness + BEAUTY_AND_FITNESS = 9; + + // Books and literature + BOOKS_AND_LITERATURE = 10; + + // Food and drink + FOOD_AND_DRINK = 11; + + // Games + GAMES = 12; + + // Hobbies and leisure + HOBBIES_AND_LEISURE = 13; + + // Home and garden + HOME_AND_GARDEN = 14; + + // Internet and telecom + INTERNET_AND_TELECOM = 15; + + // Law and government + LAW_AND_GOVERNMENT = 16; + + // News + NEWS = 17; + + // Online communities + ONLINE_COMMUNITIES = 18; + + // People and society + PEOPLE_AND_SOCIETY = 19; + + // Pets and animals + PETS_AND_ANIMALS = 20; + + // Real estate + REAL_ESTATE = 21; + + // Reference + REFERENCE = 22; + + // Science + SCIENCE = 23; + + // Sports + SPORTS = 24; + + // Jobs and education + JOBS_AND_EDUCATION = 25; + + // Shopping + SHOPPING = 26; +} + +// Various levels of service for Google Analytics. +enum ServiceLevel { + // Service level not specified or invalid. + SERVICE_LEVEL_UNSPECIFIED = 0; + + // The standard version of Google Analytics. + GOOGLE_ANALYTICS_STANDARD = 1; + + // The paid, premium version of Google Analytics. + GOOGLE_ANALYTICS_360 = 2; +} + +// Different kinds of actors that can make changes to Google Analytics +// resources. +enum ActorType { + // Unknown or unspecified actor type. + ACTOR_TYPE_UNSPECIFIED = 0; + + // Changes made by the user specified in actor_email. + USER = 1; + + // Changes made by the Google Analytics system. + SYSTEM = 2; + + // Changes made by Google Analytics support team staff. + SUPPORT = 3; +} + +// Types of actions that may change a resource. +enum ActionType { + // Action type unknown or not specified. + ACTION_TYPE_UNSPECIFIED = 0; + + // Resource was created in this change. + CREATED = 1; + + // Resource was updated in this change. + UPDATED = 2; + + // Resource was deleted in this change. + DELETED = 3; +} + +// Types of resources whose changes may be returned from change history. +enum ChangeHistoryResourceType { + // Resource type unknown or not specified. + CHANGE_HISTORY_RESOURCE_TYPE_UNSPECIFIED = 0; + + // Account resource + ACCOUNT = 1; + + // Property resource + PROPERTY = 2; + + // FirebaseLink resource + FIREBASE_LINK = 6; + + // GoogleAdsLink resource + GOOGLE_ADS_LINK = 7; + + // GoogleSignalsSettings resource + GOOGLE_SIGNALS_SETTINGS = 8; + + // ConversionEvent resource + CONVERSION_EVENT = 9; + + // MeasurementProtocolSecret resource + MEASUREMENT_PROTOCOL_SECRET = 10; + + // DataRetentionSettings resource + DATA_RETENTION_SETTINGS = 13; + + // DisplayVideo360AdvertiserLink resource + DISPLAY_VIDEO_360_ADVERTISER_LINK = 14; + + // DisplayVideo360AdvertiserLinkProposal resource + DISPLAY_VIDEO_360_ADVERTISER_LINK_PROPOSAL = 15; + + // DataStream resource + DATA_STREAM = 18; + + // AttributionSettings resource + ATTRIBUTION_SETTINGS = 20; +} + +// Types of Property resources. +enum PropertyType { + // Unknown or unspecified property type + PROPERTY_TYPE_UNSPECIFIED = 0; + + // Ordinary GA4 property + PROPERTY_TYPE_ORDINARY = 1; + + // GA4 subproperty + PROPERTY_TYPE_SUBPROPERTY = 2; + + // GA4 rollup property + PROPERTY_TYPE_ROLLUP = 3; +} + +// A resource message representing a Google Analytics account. +message Account { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/Account" + pattern: "accounts/{account}" + }; + + // Output only. Resource name of this account. + // Format: accounts/{account} + // Example: "accounts/100" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this account was originally created. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when account payload fields were last updated. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Human-readable display name for this account. + string display_name = 4 [(google.api.field_behavior) = REQUIRED]; + + // Country of business. Must be a Unicode CLDR region code. + string region_code = 5; + + // Output only. Indicates whether this Account is soft-deleted or not. Deleted + // accounts are excluded from List results unless specifically requested. + bool deleted = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A resource message representing a Google Analytics GA4 property. +message Property { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/Property" + pattern: "properties/{property}" + }; + + // Output only. Resource name of this property. + // Format: properties/{property_id} + // Example: "properties/1000" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The property type for this Property resource. When creating a property, if + // the type is "PROPERTY_TYPE_UNSPECIFIED", then "ORDINARY_PROPERTY" will be + // implied. "SUBPROPERTY" and "ROLLUP_PROPERTY" types cannot yet be created + // via Google Analytics Admin API. + PropertyType property_type = 14 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Time when the entity was originally created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when entity payload fields were last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Resource name of this property's logical parent. + // + // Note: The Property-Moving UI can be used to change the parent. + // Format: accounts/{account}, properties/{property} + // Example: "accounts/100", "properties/101" + string parent = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. Human-readable display name for this property. + // + // The max allowed display name length is 100 UTF-16 code units. + string display_name = 5 [(google.api.field_behavior) = REQUIRED]; + + // Industry associated with this property + // Example: AUTOMOTIVE, FOOD_AND_DRINK + IndustryCategory industry_category = 6; + + // Required. Reporting Time Zone, used as the day boundary for reports, regardless of + // where the data originates. If the time zone honors DST, Analytics will + // automatically adjust for the changes. + // + // NOTE: Changing the time zone only affects data going forward, and is not + // applied retroactively. + // + // Format: https://www.iana.org/time-zones + // Example: "America/Los_Angeles" + string time_zone = 7 [(google.api.field_behavior) = REQUIRED]; + + // The currency type used in reports involving monetary values. + // + // + // Format: https://en.wikipedia.org/wiki/ISO_4217 + // Examples: "USD", "EUR", "JPY" + string currency_code = 8; + + // Output only. The Google Analytics service level that applies to this property. + ServiceLevel service_level = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, the time at which this property was trashed. If not set, then this + // property is not currently in the trash can. + google.protobuf.Timestamp delete_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, the time at which this trashed property will be permanently + // deleted. If not set, then this property is not currently in the trash can + // and is not slated to be deleted. + google.protobuf.Timestamp expire_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The resource name of the parent account + // Format: accounts/{account_id} + // Example: "accounts/123" + string account = 13 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Account" + } + ]; +} + +// A resource message representing a data stream. +message DataStream { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/DataStream" + pattern: "properties/{property}/dataStreams/{data_stream}" + }; + + // Data specific to web streams. + message WebStreamData { + // Output only. Analytics "Measurement ID", without the "G-" prefix. + // Example: "G-1A2BCD345E" would just be "1A2BCD345E" + string measurement_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ID of the corresponding web app in Firebase, if any. + // This ID can change if the web app is deleted and recreated. + string firebase_app_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Domain name of the web app being measured, or empty. + // Example: "http://www.google.com", "https://www.google.com" + string default_uri = 3 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Data specific to Android app streams. + message AndroidAppStreamData { + // Output only. ID of the corresponding Android app in Firebase, if any. + // This ID can change if the Android app is deleted and recreated. + string firebase_app_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The package name for the app being measured. + // Example: "com.example.myandroidapp" + string package_name = 2 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Data specific to iOS app streams. + message IosAppStreamData { + // Output only. ID of the corresponding iOS app in Firebase, if any. + // This ID can change if the iOS app is deleted and recreated. + string firebase_app_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The Apple App Store Bundle ID for the app + // Example: "com.example.myiosapp" + string bundle_id = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + } + + // The type of the data stream. + enum DataStreamType { + // Type unknown or not specified. + DATA_STREAM_TYPE_UNSPECIFIED = 0; + + // Web data stream. + WEB_DATA_STREAM = 1; + + // Android app data stream. + ANDROID_APP_DATA_STREAM = 2; + + // iOS app data stream. + IOS_APP_DATA_STREAM = 3; + } + + // Data for specific data stream types. The message that will be + // set corresponds to the type of this stream. + oneof stream_data { + // Data specific to web streams. Must be populated if type is + // WEB_DATA_STREAM. + WebStreamData web_stream_data = 6; + + // Data specific to Android app streams. Must be populated if type is + // ANDROID_APP_DATA_STREAM. + AndroidAppStreamData android_app_stream_data = 7; + + // Data specific to iOS app streams. Must be populated if type is + // IOS_APP_DATA_STREAM. + IosAppStreamData ios_app_stream_data = 8; + } + + // Output only. Resource name of this Data Stream. + // Format: properties/{property_id}/dataStreams/{stream_id} + // Example: "properties/1000/dataStreams/2000" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The type of this DataStream resource. + DataStreamType type = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Human-readable display name for the Data Stream. + // + // Required for web data streams. + // + // The max allowed display name length is 255 UTF-16 code units. + string display_name = 3; + + // Output only. Time when this stream was originally created. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when stream payload fields were last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A link between a GA4 property and a Firebase project. +message FirebaseLink { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/FirebaseLink" + pattern: "properties/{property}/firebaseLinks/{firebase_link}" + }; + + // Output only. Example format: properties/1234/firebaseLinks/5678 + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Firebase project resource name. When creating a FirebaseLink, you may + // provide this resource name using either a project number or project ID. + // Once this resource has been created, returned FirebaseLinks will always + // have a project_name that contains a project number. + // + // Format: 'projects/{project number}' + // Example: 'projects/1234' + string project = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Time when this FirebaseLink was originally created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A link between a GA4 property and a Google Ads account. +message GoogleAdsLink { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/GoogleAdsLink" + pattern: "properties/{property}/googleAdsLinks/{google_ads_link}" + }; + + // Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} + // + // Note: googleAdsLinkId is not the Google Ads customer ID. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Google Ads customer ID. + string customer_id = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. If true, this link is for a Google Ads manager account. + bool can_manage_clients = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Enable personalized advertising features with this integration. + // Automatically publish my Google Analytics audience lists and Google + // Analytics remarketing events/parameters to the linked Google Ads account. + // If this field is not set on create/update, it will be defaulted to true. + google.protobuf.BoolValue ads_personalization_enabled = 5; + + // Output only. Time when this link was originally created. + google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this link was last updated. + google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the user that created the link. + // An empty string will be returned if the email address can't be retrieved. + string creator_email_address = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A resource message representing data sharing settings of a Google Analytics +// account. +message DataSharingSettings { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/DataSharingSettings" + pattern: "accounts/{account}/dataSharingSettings" + }; + + // Output only. Resource name. + // Format: accounts/{account}/dataSharingSettings + // Example: "accounts/1000/dataSharingSettings" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows Google support to access the data in order to help troubleshoot + // issues. + bool sharing_with_google_support_enabled = 2; + + // Allows Google sales teams that are assigned to the customer to access the + // data in order to suggest configuration changes to improve results. + // Sales team restrictions still apply when enabled. + bool sharing_with_google_assigned_sales_enabled = 3; + + // Allows any of Google sales to access the data in order to suggest + // configuration changes to improve results. + bool sharing_with_google_any_sales_enabled = 4; + + // Allows Google to use the data to improve other Google products or services. + bool sharing_with_google_products_enabled = 5; + + // Allows Google to share the data anonymously in aggregate form with others. + bool sharing_with_others_enabled = 6; +} + +// A virtual resource representing an overview of an account and +// all its child GA4 properties. +message AccountSummary { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/AccountSummary" + pattern: "accountSummaries/{account_summary}" + }; + + // Resource name for this account summary. + // Format: accountSummaries/{account_id} + // Example: "accountSummaries/1000" + string name = 1; + + // Resource name of account referred to by this account summary + // Format: accounts/{account_id} + // Example: "accounts/1000" + string account = 2 [(google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Account" + }]; + + // Display name for the account referred to in this account summary. + string display_name = 3; + + // List of summaries for child accounts of this account. + repeated PropertySummary property_summaries = 4; +} + +// A virtual resource representing metadata for a GA4 property. +message PropertySummary { + // Resource name of property referred to by this property summary + // Format: properties/{property_id} + // Example: "properties/1000" + string property = 1 [(google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Property" + }]; + + // Display name for the property referred to in this property summary. + string display_name = 2; + + // The property's property type. + PropertyType property_type = 3; + + // Resource name of this property's logical parent. + // + // Note: The Property-Moving UI can be used to change the parent. + // Format: accounts/{account}, properties/{property} + // Example: "accounts/100", "properties/200" + string parent = 4; +} + +// A secret value used for sending hits to Measurement Protocol. +message MeasurementProtocolSecret { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret" + pattern: "properties/{property}/dataStreams/{data_stream}/measurementProtocolSecrets/{measurement_protocol_secret}" + }; + + // Output only. Resource name of this secret. This secret may be a child of any type of + // stream. + // Format: + // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Human-readable display name for this secret. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The measurement protocol secret value. Pass this value to the api_secret + // field of the Measurement Protocol API when sending hits to this + // secret's parent property. + string secret_value = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A set of changes within a Google Analytics account or its child properties +// that resulted from the same cause. Common causes would be updates made in the +// Google Analytics UI, changes from customer support, or automatic Google +// Analytics system changes. +message ChangeHistoryEvent { + // ID of this change history event. This ID is unique across Google Analytics. + string id = 1; + + // Time when change was made. + google.protobuf.Timestamp change_time = 2; + + // The type of actor that made this change. + ActorType actor_type = 3; + + // Email address of the Google account that made the change. This will be a + // valid email address if the actor field is set to USER, and empty otherwise. + // Google accounts that have been deleted will cause an error. + string user_actor_email = 4; + + // If true, then the list of changes returned was filtered, and does not + // represent all changes that occurred in this event. + bool changes_filtered = 5; + + // A list of changes made in this change history event that fit the filters + // specified in SearchChangeHistoryEventsRequest. + repeated ChangeHistoryChange changes = 6; +} + +// A description of a change to a single Google Analytics resource. +message ChangeHistoryChange { + // A snapshot of a resource as before or after the result of a change in + // change history. + message ChangeHistoryResource { + oneof resource { + // A snapshot of an Account resource in change history. + Account account = 1; + + // A snapshot of a Property resource in change history. + Property property = 2; + + // A snapshot of a FirebaseLink resource in change history. + FirebaseLink firebase_link = 6; + + // A snapshot of a GoogleAdsLink resource in change history. + GoogleAdsLink google_ads_link = 7; + + // A snapshot of a ConversionEvent resource in change history. + ConversionEvent conversion_event = 11; + + // A snapshot of a MeasurementProtocolSecret resource in change history. + MeasurementProtocolSecret measurement_protocol_secret = 12; + + // A snapshot of a data retention settings resource in change history. + DataRetentionSettings data_retention_settings = 15; + + // A snapshot of a DataStream resource in change history. + DataStream data_stream = 18; + } + } + + // Resource name of the resource whose changes are described by this entry. + string resource = 1; + + // The type of action that changed this resource. + ActionType action = 2; + + // Resource contents from before the change was made. If this resource was + // created in this change, this field will be missing. + ChangeHistoryResource resource_before_change = 3; + + // Resource contents from after the change was made. If this resource was + // deleted in this change, this field will be missing. + ChangeHistoryResource resource_after_change = 4; +} + +// A conversion event in a Google Analytics property. +message ConversionEvent { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/ConversionEvent" + pattern: "properties/{property}/conversionEvents/{conversion_event}" + }; + + // Output only. Resource name of this conversion event. + // Format: properties/{property}/conversionEvents/{conversion_event} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The event name for this conversion event. + // Examples: 'click', 'purchase' + string event_name = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Time when this conversion event was created in the property. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, this event can currently be deleted via DeleteConversionEvent. + bool deletable = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set to true, this conversion event refers to a custom event. If set to + // false, this conversion event refers to a default event in GA. Default + // events typically have special meaning in GA. Default events are usually + // created for you by the GA system, but in some cases can be created by + // property admins. Custom events count towards the maximum number of + // custom conversion events that may be created per property. + bool custom = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A definition for a CustomDimension. +message CustomDimension { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/CustomDimension" + pattern: "properties/{property}/customDimensions/{custom_dimension}" + }; + + // Valid values for the scope of this dimension. + enum DimensionScope { + // Scope unknown or not specified. + DIMENSION_SCOPE_UNSPECIFIED = 0; + + // Dimension scoped to an event. + EVENT = 1; + + // Dimension scoped to a user. + USER = 2; + } + + // Output only. Resource name for this CustomDimension resource. + // Format: properties/{property}/customDimensions/{customDimension} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. Tagging parameter name for this custom dimension. + // + // If this is a user-scoped dimension, then this is the user property name. + // If this is an event-scoped dimension, then this is the event parameter + // name. + // + // May only contain alphanumeric and underscore characters, starting with a + // letter. Max length of 24 characters for user-scoped dimensions, 40 + // characters for event-scoped dimensions. + string parameter_name = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Display name for this custom dimension as shown in the Analytics UI. + // Max length of 82 characters, alphanumeric plus space and underscore + // starting with a letter. Legacy system-generated display names may contain + // square brackets, but updates to this field will never permit square + // brackets. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Description for this custom dimension. Max length of 150 characters. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Immutable. The scope of this dimension. + DimensionScope scope = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. If set to true, sets this dimension as NPA and excludes it from ads + // personalization. + // + // This is currently only supported by user-scoped custom dimensions. + bool disallow_ads_personalization = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// A definition for a custom metric. +message CustomMetric { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/CustomMetric" + pattern: "properties/{property}/customMetrics/{custom_metric}" + }; + + // Possible types of representing the custom metric's value. + // + // Currency representation may change in the future, requiring a breaking API + // change. + enum MeasurementUnit { + // MeasurementUnit unspecified or missing. + MEASUREMENT_UNIT_UNSPECIFIED = 0; + + // This metric uses default units. + STANDARD = 1; + + // This metric measures a currency. + CURRENCY = 2; + + // This metric measures feet. + FEET = 3; + + // This metric measures meters. + METERS = 4; + + // This metric measures kilometers. + KILOMETERS = 5; + + // This metric measures miles. + MILES = 6; + + // This metric measures milliseconds. + MILLISECONDS = 7; + + // This metric measures seconds. + SECONDS = 8; + + // This metric measures minutes. + MINUTES = 9; + + // This metric measures hours. + HOURS = 10; + } + + // The scope of this metric. + enum MetricScope { + // Scope unknown or not specified. + METRIC_SCOPE_UNSPECIFIED = 0; + + // Metric scoped to an event. + EVENT = 1; + } + + // Labels that mark the data in this custom metric as data that should be + // restricted to specific users. + enum RestrictedMetricType { + // Type unknown or unspecified. + RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0; + + // Metric reports cost data. + COST_DATA = 1; + + // Metric reports revenue data. + REVENUE_DATA = 2; + } + + // Output only. Resource name for this CustomMetric resource. + // Format: properties/{property}/customMetrics/{customMetric} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. Tagging name for this custom metric. + // + // If this is an event-scoped metric, then this is the event parameter + // name. + // + // May only contain alphanumeric and underscore charactes, starting with a + // letter. Max length of 40 characters for event-scoped metrics. + string parameter_name = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Display name for this custom metric as shown in the Analytics UI. + // Max length of 82 characters, alphanumeric plus space and underscore + // starting with a letter. Legacy system-generated display names may contain + // square brackets, but updates to this field will never permit square + // brackets. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Description for this custom dimension. + // Max length of 150 characters. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The type for the custom metric's value. + MeasurementUnit measurement_unit = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The scope of this custom metric. + MetricScope scope = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Types of restricted data that this metric may contain. Required for metrics + // with CURRENCY measurement unit. Must be empty for metrics with a + // non-CURRENCY measurement unit. + repeated RestrictedMetricType restricted_metric_type = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// Settings values for data retention. This is a singleton resource. +message DataRetentionSettings { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/DataRetentionSettings" + pattern: "properties/{property}/dataRetentionSettings" + }; + + // Valid values for the data retention duration. + enum RetentionDuration { + // Data retention time duration is not specified. + RETENTION_DURATION_UNSPECIFIED = 0; + + // The data retention time duration is 2 months. + TWO_MONTHS = 1; + + // The data retention time duration is 14 months. + FOURTEEN_MONTHS = 3; + + // The data retention time duration is 26 months. + // Available to 360 properties only. + TWENTY_SIX_MONTHS = 4; + + // The data retention time duration is 38 months. + // Available to 360 properties only. + THIRTY_EIGHT_MONTHS = 5; + + // The data retention time duration is 50 months. + // Available to 360 properties only. + FIFTY_MONTHS = 6; + } + + // Output only. Resource name for this DataRetentionSetting resource. + // Format: properties/{property}/dataRetentionSettings + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The length of time that event-level data is retained. + RetentionDuration event_data_retention = 2; + + // If true, reset the retention period for the user identifier with every + // event from that user. + bool reset_user_data_on_new_activity = 3; +} diff --git a/google/analytics/data/BUILD.bazel b/google/analytics/data/BUILD.bazel index 32f9d0452..40fd80e36 100644 --- a/google/analytics/data/BUILD.bazel +++ b/google/analytics/data/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-analytics-data", "ruby-cloud-env-prefix=ANALYTICS_DATA", - "ruby-cloud-wrapper-of=v1beta:0.0;v1alpha:0.0", + "ruby-cloud-wrapper-of=v1beta:0.0", "ruby-cloud-product-url=https://developers.google.com/analytics/devguides/reporting/data/v1", "ruby-cloud-api-id=analyticsdata.googleapis.com", "ruby-cloud-api-shortname=analyticsdata", diff --git a/google/analytics/data/v1alpha/BUILD.bazel b/google/analytics/data/v1alpha/BUILD.bazel new file mode 100644 index 000000000..f1adcb879 --- /dev/null +++ b/google/analytics/data/v1alpha/BUILD.bazel @@ -0,0 +1,370 @@ +# 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 = "data_proto", + srcs = [ + "analytics_data_api.proto", + "data.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "@com_google_protobuf//:duration_proto", + ], +) + +proto_library_with_info( + name = "data_proto_with_info", + deps = [ + ":data_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "data_java_proto", + deps = [":data_proto"], +) + +java_grpc_library( + name = "data_java_grpc", + srcs = [":data_proto"], + deps = [":data_java_proto"], +) + +java_gapic_library( + name = "data_java_gapic", + srcs = [":data_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "analytics_data_grpc_service_config.json", + service_yaml = "analyticsdata_v1alpha.yaml", + test_deps = [ + ":data_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":data_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "data_java_gapic_test_suite", + test_classes = [ + "com.google.analytics.data.v1alpha.AlphaAnalyticsDataClientHttpJsonTest", + "com.google.analytics.data.v1alpha.AlphaAnalyticsDataClientTest", + ], + runtime_deps = [":data_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-analytics-data-v1alpha-java", + transport = "grpc+rest", + deps = [ + ":data_java_gapic", + ":data_java_grpc", + ":data_java_proto", + ":data_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "data_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/analytics/data/v1alpha", + protos = [":data_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "data_go_gapic", + srcs = [":data_proto_with_info"], + grpc_service_config = "analytics_data_grpc_service_config.json", + importpath = "google.golang.org/google/analytics/data/v1alpha;data", + metadata = True, + service_yaml = "analyticsdata_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":data_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +go_test( + name = "data_go_gapic_test", + srcs = [":data_go_gapic_srcjar_test"], + embed = [":data_go_gapic"], + importpath = "google.golang.org/google/analytics/data/v1alpha", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-analytics-data-v1alpha-go", + deps = [ + ":data_go_gapic", + ":data_go_gapic_srcjar-metadata.srcjar", + ":data_go_gapic_srcjar-test.srcjar", + ":data_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "data_py_gapic", + srcs = [":data_proto"], + grpc_service_config = "analytics_data_grpc_service_config.json", + service_yaml = "analyticsdata_v1alpha.yaml", + transport = "grpc+rest", +) + +py_test( + name = "data_py_gapic_test", + srcs = [ + "data_py_gapic_pytest.py", + "data_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":data_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "analytics-data-v1alpha-py", + deps = [ + ":data_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "data_php_proto", + deps = [":data_proto"], +) + +php_grpc_library( + name = "data_php_grpc", + srcs = [":data_proto"], + deps = [":data_php_proto"], +) + +php_gapic_library( + name = "data_php_gapic", + srcs = [":data_proto_with_info"], + grpc_service_config = "analytics_data_grpc_service_config.json", + service_yaml = "analyticsdata_v1alpha.yaml", + deps = [ + ":data_php_grpc", + ":data_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-analytics-data-v1alpha-php", + deps = [ + ":data_php_gapic", + ":data_php_grpc", + ":data_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "data_nodejs_gapic", + package_name = "@google-cloud/data", + src = ":data_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "analytics_data_grpc_service_config.json", + package = "google.analytics.data.v1alpha", + service_yaml = "analyticsdata_v1alpha.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "analytics-data-v1alpha-nodejs", + deps = [ + ":data_nodejs_gapic", + ":data_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 = "data_ruby_proto", + deps = [":data_proto"], +) + +ruby_grpc_library( + name = "data_ruby_grpc", + srcs = [":data_proto"], + deps = [":data_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "data_ruby_gapic", + srcs = [":data_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-analytics-data-v1alpha", + ], + grpc_service_config = "analytics_data_grpc_service_config.json", + deps = [ + ":data_ruby_grpc", + ":data_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-analytics-data-v1alpha-ruby", + deps = [ + ":data_ruby_gapic", + ":data_ruby_grpc", + ":data_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 = "data_csharp_proto", + deps = [":data_proto"], +) + +csharp_grpc_library( + name = "data_csharp_grpc", + srcs = [":data_proto"], + deps = [":data_csharp_proto"], +) + +csharp_gapic_library( + name = "data_csharp_gapic", + srcs = [":data_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "analytics_data_grpc_service_config.json", + service_yaml = "analyticsdata_v1alpha.yaml", + deps = [ + ":data_csharp_grpc", + ":data_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-analytics-data-v1alpha-csharp", + deps = [ + ":data_csharp_gapic", + ":data_csharp_grpc", + ":data_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "data_cc_proto", + deps = [":data_proto"], +) + +cc_grpc_library( + name = "data_cc_grpc", + srcs = [":data_proto"], + grpc_only = True, + deps = [":data_cc_proto"], +) diff --git a/google/analytics/data/v1alpha/analytics_data_api.proto b/google/analytics/data/v1alpha/analytics_data_api.proto new file mode 100644 index 000000000..f86cf8dbd --- /dev/null +++ b/google/analytics/data/v1alpha/analytics_data_api.proto @@ -0,0 +1,169 @@ +// 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.analytics.data.v1alpha; + +import "google/analytics/data/v1alpha/data.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; + +option go_package = "google.golang.org/genproto/googleapis/analytics/data/v1alpha;data"; +option java_multiple_files = true; +option java_outer_classname = "AnalyticsDataApiProto"; +option java_package = "com.google.analytics.data.v1alpha"; + +// Google Analytics reporting data service. +service AlphaAnalyticsData { + option (google.api.default_host) = "analyticsdata.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/analytics," + "https://www.googleapis.com/auth/analytics.readonly"; + + // Returns a customized funnel report of your Google Analytics event data. The + // data returned from the API is as a table with columns for the requested + // dimensions and metrics. + // + // Funnel exploration lets you visualize the steps your users take to complete + // a task and quickly see how well they are succeeding or failing at each + // step. For example, how do prospects become shoppers and then become buyers? + // How do one time buyers become repeat buyers? With this information, you can + // improve inefficient or abandoned customer journeys. To learn more, see [GA4 + // Funnel Explorations](https://support.google.com/analytics/answer/9327974). + rpc RunFunnelReport(RunFunnelReportRequest) returns (RunFunnelReportResponse) { + option (google.api.http) = { + post: "/v1alpha/{property=properties/*}:runFunnelReport" + body: "*" + }; + } +} + +// The request for a funnel report. +message RunFunnelReportRequest { + // Controls the dimensions present in the funnel visualization sub report + // response. + enum FunnelVisualizationType { + // Unspecified type. + FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED = 0; + + // A standard (stepped) funnel. The funnel visualization sub report in the + // response will not contain date. + STANDARD_FUNNEL = 1; + + // A trended (line chart) funnel. The funnel visualization sub report in the + // response will contain the date dimension. + TRENDED_FUNNEL = 2; + } + + // A Google Analytics GA4 property identifier whose events are tracked. + // Specified in the URL path and not the body. To learn more, see [where to + // find your Property + // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + // Within a batch request, this property should either be unspecified or + // consistent with the batch-level property. + // + // Example: properties/1234 + string property = 1; + + // 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. + repeated DateRange date_ranges = 2; + + // The configuration of this request's funnel. This funnel configuration is + // required. + Funnel funnel = 3; + + // If specified, this breakdown adds a dimension to the funnel table sub + // report response. This breakdown dimension expands each funnel step to the + // unique values of the breakdown dimension. For example, a breakdown by the + // `deviceCategory` dimension will create rows for `mobile`, `tablet`, + // `desktop`, and the total. + FunnelBreakdown funnel_breakdown = 4; + + // If specified, next action adds a dimension to the funnel visualization sub + // report response. This next action dimension expands each funnel step to the + // unique values of the next action. For example a next action of the + // `eventName` dimension will create rows for several events (i.e. + // `session_start` & `click`) and the total. + // + // Next action only supports `eventName` and most Page / Screen dimensions + // like `pageTitle` and `pagePath`. + FunnelNextAction funnel_next_action = 5; + + // The funnel visualization type controls the dimensions present in the funnel + // visualization sub report response. If not specified, `STANDARD_FUNNEL` is + // used. + FunnelVisualizationType funnel_visualization_type = 6; + + // The configurations of segments. Segments are subsets of a property's data. + // In a funnel report with segments, the funnel is evaluated in each segment. + // + // Each segment specified in this request + // produces a separate row in the response; in the response, each segment + // identified by its name. + // + // The segments parameter is optional. Requests are limited to 4 segments. + repeated Segment segments = 7; + + // The number of rows to return. If unspecified, 10,000 rows are returned. The + // API returns a maximum of 100,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`. + int64 limit = 9; + + // Dimension filters allow you to ask for only specific dimension values in + // the report. To learn more, see [Creating a Report: 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 = 10; + + // Toggles whether to return the current state of this Analytics Property's + // quota. Quota is returned in [PropertyQuota](#PropertyQuota). + bool return_property_quota = 12; +} + +// The funnel report response contains two sub reports. The two sub reports are +// different combinations of dimensions and metrics. +message RunFunnelReportResponse { + // The funnel table is a report with the funnel step, segment, breakdown + // dimension, active users, completion rate, abandonments, and abandonments + // rate. + // + // The segment dimension is only present in this response if a segment was + // requested. The breakdown dimension is only present in this response if it + // was requested. + FunnelSubReport funnel_table = 1; + + // The funnel visualization is a report with the funnel step, segment, date, + // next action dimension, and active users. + // + // The segment dimension is only present in this response if a segment was + // requested. The date dimension is only present in this response if it was + // requested via the `TRENDED_FUNNEL` funnel type. The next action dimension + // is only present in the response if it was requested. + FunnelSubReport funnel_visualization = 2; + + // This Analytics Property's quota state including this request. + PropertyQuota property_quota = 3; + + // Identifies what kind of resource this message is. This `kind` is always the + // fixed string "analyticsData#runFunnelReport". Useful to distinguish between + // response types in JSON. + string kind = 4; +} diff --git a/google/analytics/data/v1alpha/analytics_data_grpc_service_config.json b/google/analytics/data/v1alpha/analytics_data_grpc_service_config.json new file mode 100644 index 000000000..87520a154 --- /dev/null +++ b/google/analytics/data/v1alpha/analytics_data_grpc_service_config.json @@ -0,0 +1,24 @@ +{ + "methodConfig": [ + { + "name": [{ "service": "google.analytics.data.v1alpha.AlphaAnalyticsData" }], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNKNOWN"] + } + }, + { + "name": [ + { + "service": "google.analytics.data.v1alpha.AlphaAnalyticsData", + "method": "RunFunnelReport" + } + ], + "timeout": "60s" + } + ] +} diff --git a/google/analytics/data/v1alpha/analyticsdata_v1alpha.yaml b/google/analytics/data/v1alpha/analyticsdata_v1alpha.yaml new file mode 100644 index 000000000..b55a02fea --- /dev/null +++ b/google/analytics/data/v1alpha/analyticsdata_v1alpha.yaml @@ -0,0 +1,23 @@ +type: google.api.Service +config_version: 3 +name: analyticsdata.googleapis.com +title: Google Analytics Data API + +apis: +- name: google.analytics.data.v1alpha.AlphaAnalyticsData + +documentation: + summary: Accesses report data in Google Analytics. + +backend: + rules: + - selector: google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReport + deadline: 180.0 + +authentication: + rules: + - selector: google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReport + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics, + https://www.googleapis.com/auth/analytics.readonly diff --git a/google/analytics/data/v1alpha/data.proto b/google/analytics/data/v1alpha/data.proto new file mode 100644 index 000000000..9ef9f6143 --- /dev/null +++ b/google/analytics/data/v1alpha/data.proto @@ -0,0 +1,1233 @@ +// 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.analytics.data.v1alpha; + +import "google/protobuf/duration.proto"; + +option go_package = "google.golang.org/genproto/googleapis/analytics/data/v1alpha;data"; +option java_multiple_files = true; +option java_outer_classname = "ReportingApiProto"; +option java_package = "com.google.analytics.data.v1alpha"; + +// A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests +// are allowed up to 4 date ranges. +message DateRange { + // The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot + // be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also + // accepted, and in that case, the date is inferred based on the property's + // reporting time zone. + string start_date = 1; + + // The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot + // be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is + // also accepted, and in that case, the date is inferred based on the + // property's reporting time zone. + string end_date = 2; + + // Assigns a name to this date range. The dimension `dateRange` is valued to + // this name in a report response. If set, cannot begin with `date_range_` or + // `RESERVED_`. If not set, date ranges are named by their zero based index in + // the request: `date_range_0`, `date_range_1`, etc. + string name = 3; +} + +// Dimensions are attributes of your data. For example, the dimension city +// indicates the city from which an event originates. Dimension values in report +// responses are strings; for example, the city could be "Paris" or "New York". +message Dimension { + // The name of the dimension. See the [API + // Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) + // for the list of dimension names. + // + // If `dimensionExpression` is specified, `name` can be any string that you + // would like within the allowed character set. For example if a + // `dimensionExpression` concatenates `country` and `city`, you could call + // that dimension `countryAndCity`. Dimension names that you choose must match + // the regular expression `^[a-zA-Z0-9_]$`. + // + // Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, + // `dimensionExpression`, and `pivots`. + string name = 1; + + // One dimension can be the result of an expression of multiple dimensions. + // For example, dimension "country, city": concatenate(country, ", ", city). + DimensionExpression dimension_expression = 2; +} + +// Used to express a dimension which is the result of a formula of multiple +// dimensions. Example usages: +// 1) lower_case(dimension) +// 2) concatenate(dimension1, symbol, dimension2). +message DimensionExpression { + // Used to convert a dimension value to a single case. + message CaseExpression { + // Name of a dimension. The name must refer back to a name in dimensions + // field of the request. + string dimension_name = 1; + } + + // Used to combine dimension values to a single dimension. + message ConcatenateExpression { + // Names of dimensions. The names must refer back to names in the dimensions + // field of the request. + repeated string dimension_names = 1; + + // The delimiter placed between dimension names. + // + // Delimiters are often single characters such as "|" or "," but can be + // longer strings. If a dimension value contains the delimiter, both will be + // present in response with no distinction. For example if dimension 1 value + // = "US,FR", dimension 2 value = "JP", and delimiter = ",", then the + // response will contain "US,FR,JP". + string delimiter = 2; + } + + // Specify one type of dimension expression for `DimensionExpression`. + oneof one_expression { + // Used to convert a dimension value to lower case. + CaseExpression lower_case = 4; + + // Used to convert a dimension value to upper case. + CaseExpression upper_case = 5; + + // Used to combine dimension values to a single dimension. + // For example, dimension "country, city": concatenate(country, ", ", city). + ConcatenateExpression concatenate = 6; + } +} + +// To express dimension or metric filters. The fields in the same +// FilterExpression need to be either all dimensions or all metrics. +message FilterExpression { + // Specify one type of filter expression for `FilterExpression`. + oneof expr { + // The FilterExpressions in and_group have an AND relationship. + FilterExpressionList and_group = 1; + + // The FilterExpressions in or_group have an OR relationship. + FilterExpressionList or_group = 2; + + // The FilterExpression is NOT of not_expression. + FilterExpression not_expression = 3; + + // A primitive filter. In the same FilterExpression, all of the filter's + // field names need to be either all dimensions or all metrics. + Filter filter = 4; + } +} + +// A list of filter expressions. +message FilterExpressionList { + // A list of filter expressions. + repeated FilterExpression expressions = 1; +} + +// An expression to filter dimension or metric values. +message Filter { + // The dimension name or metric name. Must be a name defined in dimensions + // or metrics. + string field_name = 1; + + // Specify one type of filter for `Filter`. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 2; + + // A filter for in list values. + InListFilter in_list_filter = 3; + + // A filter for numeric or date values. + NumericFilter numeric_filter = 4; + + // A filter for between two values. + BetweenFilter between_filter = 5; + } +} + +// The filter for string +message StringFilter { + // The match type of a string filter + enum MatchType { + // Unspecified + MATCH_TYPE_UNSPECIFIED = 0; + + // Exact match of the string value. + EXACT = 1; + + // Begins with the string value. + BEGINS_WITH = 2; + + // Ends with the string value. + ENDS_WITH = 3; + + // Contains the string value. + CONTAINS = 4; + + // Full match for the regular expression with the string value. + FULL_REGEXP = 5; + + // Partial match for the regular expression with the string value. + PARTIAL_REGEXP = 6; + } + + // The match type for this filter. + MatchType match_type = 1; + + // The string value used for the matching. + string value = 2; + + // If true, the string value is case sensitive. + bool case_sensitive = 3; +} + +// The result needs to be in a list of string values. +message InListFilter { + // The list of string values. + // Must be non-empty. + repeated string values = 1; + + // If true, the string value is case sensitive. + bool case_sensitive = 2; +} + +// Filters for numeric or date values. +message NumericFilter { + // The operation applied to a numeric filter + enum Operation { + // Unspecified. + OPERATION_UNSPECIFIED = 0; + + // Equal + EQUAL = 1; + + // Less than + LESS_THAN = 2; + + // Less than or equal + LESS_THAN_OR_EQUAL = 3; + + // Greater than + GREATER_THAN = 4; + + // Greater than or equal + GREATER_THAN_OR_EQUAL = 5; + } + + // The operation type for this filter. + Operation operation = 1; + + // A numeric value or a date value. + NumericValue value = 2; +} + +// To express that the result needs to be between two numbers (inclusive). +message BetweenFilter { + // Begins with this number. + NumericValue from_value = 1; + + // Ends with this number. + NumericValue to_value = 2; +} + +// To represent a number. +message NumericValue { + // One of a numeric value + oneof one_value { + // Integer value + int64 int64_value = 1; + + // Double value + double double_value = 2; + } +} + +// 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 +// report; correspondingly, those dimensions do not produce headers. +message DimensionHeader { + // The dimension's name. + string name = 1; +} + +// Describes a metric column in the report. Visible metrics requested in a +// report produce column entries within rows and MetricHeaders. However, +// metrics used exclusively within filters or expressions do not produce columns +// in a report; correspondingly, those metrics do not produce headers. +message MetricHeader { + // The metric's name. + string name = 1; + + // The metric's data type. + MetricType type = 2; +} + +// Report data for each row. +// For example if RunReportRequest contains: +// +// ```none +// "dimensions": [ +// { +// "name": "eventName" +// }, +// { +// "name": "countryId" +// } +// ], +// "metrics": [ +// { +// "name": "eventCount" +// } +// ] +// ``` +// +// One row with 'in_app_purchase' as the eventName, 'JP' as the countryId, and +// 15 as the eventCount, would be: +// +// ```none +// "dimensionValues": [ +// { +// "value": "in_app_purchase" +// }, +// { +// "value": "JP" +// } +// ], +// "metricValues": [ +// { +// "value": "15" +// } +// ] +// ``` +message Row { + // List of requested dimension values. In a PivotReport, dimension_values + // are only listed for dimensions included in a pivot. + repeated DimensionValue dimension_values = 1; + + // List of requested visible metric values. + repeated MetricValue metric_values = 2; +} + +// The value of a dimension. +message DimensionValue { + // One kind of dimension value + oneof one_value { + // Value as a string if the dimension type is a string. + string value = 1; + } +} + +// The value of a metric. +message MetricValue { + // One of metric value + oneof one_value { + // Measurement value. See MetricHeader for type. + string value = 4; + } +} + +// Current state of all quotas for this Analytics Property. If any quota for a +// property is exhausted, all requests to that property will return Resource +// Exhausted errors. +message PropertyQuota { + // Standard Analytics Properties can use up to 25,000 tokens per day; + // Analytics 360 Properties can use 250,000 tokens per day. Most requests + // consume fewer than 10 tokens. + QuotaStatus tokens_per_day = 1; + + // Standard Analytics Properties can use up to 5,000 tokens per hour; + // Analytics 360 Properties can use 50,000 tokens per hour. An API request + // consumes a single number of tokens, and that number is deducted from both + // the hourly and daily quotas. + QuotaStatus tokens_per_hour = 2; + + // Standard Analytics Properties can send up to 10 concurrent requests; + // Analytics 360 Properties can use up to 50 concurrent requests. + QuotaStatus concurrent_requests = 3; + + // Standard Analytics Properties and cloud project pairs can have up to 10 + // server errors per hour; Analytics 360 Properties and cloud project pairs + // can have up to 50 server errors per hour. + QuotaStatus server_errors_per_project_per_hour = 4; + + // Analytics Properties can send up to 120 requests with potentially + // thresholded dimensions per hour. In a batch request, each report request + // is individually counted for this quota if the request contains potentially + // thresholded dimensions. + QuotaStatus potentially_thresholded_requests_per_hour = 5; +} + +// Current state for a particular quota group. +message QuotaStatus { + // Quota consumed by this request. + int32 consumed = 1; + + // Quota remaining after this request. + int32 remaining = 2; +} + +// Breakdowns add a dimension to the funnel table sub report response. +message FunnelBreakdown { + // The dimension column added to the funnel table sub report response. The + // breakdown dimension breaks down each funnel step. A valid + // `breakdownDimension` is required if `funnelBreakdown` is specified. + Dimension breakdown_dimension = 1; + + // The maximum number of distinct values of the breakdown dimension to return + // in the response. A `limit` of `5` is used if limit is not specified. Limit + // must exceed zero and cannot exceed 15. + optional int64 limit = 2; +} + +// Next actions state the value for a dimension after the user has achieved +// a step but before the same user has achieved the next step. For example if +// the `nextActionDimension` is `eventName`, then `nextActionDimension` in the +// `i`th funnel step row will return first event after the event that qualified +// the user into the `i`th funnel step but before the user achieved the `i+1`th +// funnel step. +message FunnelNextAction { + // The dimension column added to the funnel visualization sub report response. + // The next action dimension returns the next dimension value of this + // dimension after the user has attained the `i`th funnel step. + // + // `nextActionDimension` currently only supports `eventName` and most Page / + // Screen dimensions like `pageTitle` and `pagePath`. `nextActionDimension` + // cannot be a dimension expression. + Dimension next_action_dimension = 1; + + // The maximum number of distinct values of the breakdown dimension to return + // in the response. A `limit` of `5` is used if limit is not specified. Limit + // must exceed zero and cannot exceed 5. + optional int64 limit = 2; +} + +// Configures the funnel in a funnel report request. A funnel reports on users +// as they pass through a sequence of steps. +// +// Funnel exploration lets you visualize the steps your users take to complete a +// task and quickly see how well they are succeeding or failing at each step. +// For example, how do prospects become shoppers and then become buyers? How do +// one time buyers become repeat buyers? With this information, you can improve +// inefficient or abandoned customer journeys. +message Funnel { + // In an open funnel, users can enter the funnel in any step, and in a closed + // funnel, users must enter the funnel in the first step. Optional. If + // unspecified, a closed funnel is used. + bool is_open_funnel = 1; + + // The sequential steps of this funnel. + repeated FunnelStep steps = 2; +} + +// Steps define the user journey you want to measure. Steps contain one or +// more conditions that your users must meet to be included in that step of +// the funnel journey. +message FunnelStep { + // The distinctive name for this step. If unspecified, steps will be named + // by a 1 based indexed name (i.e. "0. ", "1. ", etc.). This name defines + // string value returned by the `funnelStepName` dimension. For example, + // specifying `name = Purchase` in the request's third funnel step will + // produce `3. Purchase` in the funnel report response. + string name = 1; + + // If true, this step must directly follow the previous step. If false, + // there can be events between the previous step and this step. If + // unspecified, `isDirectlyFollowedBy` is treated as false. + bool is_directly_followed_by = 2; + + // If specified, this step must complete within this duration of the + // completion of the prior step. `withinDurationFromPriorStep` is inclusive + // of the endpoint at the microsecond granularity. For example a duration of + // 5 seconds can be completed at 4.9 or 5.0 seconds, but not 5 seconds and 1 + // microsecond. + // + // `withinDurationFromPriorStep` is optional, and if unspecified, steps may + // be separated by any time duration. + optional google.protobuf.Duration within_duration_from_prior_step = 3; + + // The condition that your users must meet to be included in this step of + // the funnel journey. + FunnelFilterExpression filter_expression = 4; +} + +// Funnel sub reports contain the dimension and metric data values. For example, +// 12 users reached the second step of the funnel. +message FunnelSubReport { + // Describes dimension columns. Funnel reports always include the funnel step + // dimension in sub report responses. Additional dimensions like breakdowns, + // dates, and next actions may be present in the response if requested. + repeated DimensionHeader dimension_headers = 1; + + // Describes metric columns. Funnel reports always include active users in sub + // report responses. The funnel table includes additional metrics like + // completion rate, abandonments, and abandonments rate. + repeated MetricHeader metric_headers = 2; + + // Rows of dimension value combinations and metric values in the report. + repeated Row rows = 3; + + // Metadata for the funnel report. + FunnelResponseMetadata metadata = 4; +} + +// User segments are subsets of users who engaged with your site or app. For +// example, users who have previously purchased; users who added items to their +// shopping carts, but didn’t complete a purchase. +message UserSegment { + // Defines which users are included in this segment. Optional. + UserSegmentCriteria user_inclusion_criteria = 1; + + // Defines which users are excluded in this segment. Optional. + UserSegmentExclusion exclusion = 2; +} + +// A user matches a criteria if the user's events meet the conditions in the +// criteria. +message UserSegmentCriteria { + // A user matches this criteria if the user matches each of these + // `andConditionGroups` and each of the `andSequenceGroups`. + // `andConditionGroups` may be empty if `andSequenceGroups` are specified. + repeated UserSegmentConditionGroup and_condition_groups = 1; + + // A user matches this criteria if the user matches each of these + // `andSequenceGroups` and each of the `andConditionGroups`. + // `andSequenceGroups` may be empty if `andConditionGroups` are specified. + repeated UserSegmentSequenceGroup and_sequence_groups = 2; +} + +// Scoping specifies which events are considered when evaluating if a user +// meets a criteria. +enum UserCriteriaScoping { + // Unspecified criteria scoping. Do not specify. + USER_CRITERIA_SCOPING_UNSPECIFIED = 0; + + // If the criteria is satisfied within one event, the user matches the + // criteria. + USER_CRITERIA_WITHIN_SAME_EVENT = 1; + + // If the criteria is satisfied within one session, the user matches the + // criteria. + USER_CRITERIA_WITHIN_SAME_SESSION = 2; + + // If the criteria is satisfied by any events for the user, the user + // matches the criteria. + USER_CRITERIA_ACROSS_ALL_SESSIONS = 3; +} + +// Conditions tell Analytics what data to include in or exclude from the +// segment. +message UserSegmentConditionGroup { + // Data is included or excluded from the segment based on if it matches + // the condition group. This scoping defines how many events the + // `segmentFilterExpression` is evaluated on before the condition group + // is determined to be matched or not. For example if `conditionScoping = + // USER_CRITERIA_WITHIN_SAME_SESSION`, the expression is evaluated on all + // events in a session, and then, the condition group is determined to be + // matched or not for this user. For example if `conditionScoping = + // USER_CRITERIA_WITHIN_SAME_EVENT`, the expression is evaluated on a single + // event, and then, the condition group is determined to be matched or not for + // this user. + // + // Optional. If unspecified, `conditionScoping = ACROSS_ALL_SESSIONS` is + // used. + UserCriteriaScoping condition_scoping = 1; + + // Data is included or excluded from the segment based on if it matches + // this expression. Expressions express criteria on dimension, metrics, + // and/or parameters. + SegmentFilterExpression segment_filter_expression = 2; +} + +// Define conditions that must occur in a specific order for the user to be +// a member of the segment. +message UserSegmentSequenceGroup { + // All sequence steps must be satisfied in the scoping for the user to + // match the sequence. For example if `sequenceScoping = + // USER_CRITERIA_WITHIN_SAME_SESSION`, all sequence steps must complete within + // one session for the user to match the sequence. `sequenceScoping = + // USER_CRITERIA_WITHIN_SAME_EVENT` is not supported. + // + // Optional. If unspecified, `conditionScoping = ACROSS_ALL_SESSIONS` is + // used. + UserCriteriaScoping sequence_scoping = 1; + + // Defines the time period in which the whole sequence must occur; for + // example, 30 Minutes. `sequenceMaximumDuration` is inclusive + // of the endpoint at the microsecond granularity. For example a sequence + // with a maximum duration of 5 seconds can be completed at 4.9 or 5.0 + // seconds, but not 5 seconds and 1 microsecond. + // + // `sequenceMaximumDuration` is optional, and if unspecified, sequences can + // be completed in any time duration. + google.protobuf.Duration sequence_maximum_duration = 2; + + // An ordered sequence of condition steps. A user's events must complete + // each step in order for the user to match the + // `UserSegmentSequenceGroup`. + repeated UserSequenceStep user_sequence_steps = 3; +} + +// A condition that must occur in the specified step order for this user +// to match the sequence. +message UserSequenceStep { + // If true, the event satisfying this step must be the very next event + // after the event satifying the last step. If false, this step indirectly + // follows the prior step; for example, there may be events between the + // prior step and this step. `isDirectlyFollowedBy` must be false for + // the first step. + bool is_directly_followed_by = 1; + + // This sequence step must be satisfied in the scoping for the user to + // match the sequence. For example if `sequenceScoping = + // WITHIN_SAME_SESSION`, this sequence steps must complete within one + // session for the user to match the sequence. `stepScoping = + // ACROSS_ALL_SESSIONS` is only allowed if the `sequenceScoping = + // ACROSS_ALL_SESSIONS`. + // + // Optional. If unspecified, `stepScoping` uses the same + // `UserCriteriaScoping` as the `sequenceScoping`. + UserCriteriaScoping step_scoping = 2; + + // A user matches this sequence step if their events match this + // expression. Expressions express criteria on dimension, metrics, + // and/or parameters. + SegmentFilterExpression segment_filter_expression = 3; +} + +// Specifies which users are excluded in this segment. +message UserSegmentExclusion { + // Specifies how long an exclusion will last if a user matches the + // `userExclusionCriteria`. + // + // Optional. If unspecified, `userExclusionDuration` of + // `USER_EXCLUSION_TEMPORARY` is used. + UserExclusionDuration user_exclusion_duration = 1; + + // If a user meets this condition, the user is excluded from membership in + // the segment for the `userExclusionDuration`. + UserSegmentCriteria user_exclusion_criteria = 2; +} + +// Enumerates options for how long an exclusion will last if a user matches +// the `userExclusionCriteria`. +enum UserExclusionDuration { + // Unspecified exclusion duration. Do not specify. + USER_EXCLUSION_DURATION_UNSPECIFIED = 0; + + // Temporarily exclude users from the segment during periods when the + // user meets the `userExclusionCriteria` condition. + USER_EXCLUSION_TEMPORARY = 1; + + // Permanently exclude users from the segment if the user ever meets the + // `userExclusionCriteria` condition. + USER_EXCLUSION_PERMANENT = 2; +} + +// Session segments are subsets of the sessions that occurred on your site or +// app: for example, all the sessions that originated from a particular +// advertising campaign. +message SessionSegment { + // Defines which sessions are included in this segment. Optional. + SessionSegmentCriteria session_inclusion_criteria = 1; + + // Defines which sessions are excluded in this segment. Optional. + SessionSegmentExclusion exclusion = 2; +} + +// A session matches a criteria if the session's events meet the conditions in +// the criteria. +message SessionSegmentCriteria { + // A session matches this criteria if the session matches each of these + // `andConditionGroups`. + repeated SessionSegmentConditionGroup and_condition_groups = 1; +} + +// Scoping specifies which events are considered when evaluating if a +// session meets a criteria. +enum SessionCriteriaScoping { + // Unspecified criteria scoping. Do not specify. + SESSION_CRITERIA_SCOPING_UNSPECIFIED = 0; + + // If the criteria is satisfied within one event, the session matches the + // criteria. + SESSION_CRITERIA_WITHIN_SAME_EVENT = 1; + + // If the criteria is satisfied within one session, the session matches + // the criteria. + SESSION_CRITERIA_WITHIN_SAME_SESSION = 2; +} + +// Conditions tell Analytics what data to include in or exclude from the +// segment. +message SessionSegmentConditionGroup { + // Data is included or excluded from the segment based on if it matches + // the condition group. This scoping defines how many events the + // `segmentFilterExpression` is evaluated on before the condition group + // is determined to be matched or not. For example if `conditionScoping = + // SESSION_CRITERIA_WITHIN_SAME_SESSION`, the expression is evaluated on all + // events in a session, and then, the condition group is determined to be + // matched or not for this session. For example if `conditionScoping = + // SESSION_CRITERIA_WITHIN_SAME_EVENT`, the expression is evaluated on a + // single event, and then, the condition group is determined to be matched or + // not for this session. + // + // Optional. If unspecified, a `conditionScoping` of `WITHIN_SAME_SESSION` + // is used. + SessionCriteriaScoping condition_scoping = 1; + + // Data is included or excluded from the segment based on if it matches + // this expression. Expressions express criteria on dimension, metrics, + // and/or parameters. + SegmentFilterExpression segment_filter_expression = 2; +} + +// Specifies which sessions are excluded in this segment. +message SessionSegmentExclusion { + // Specifies how long an exclusion will last if a session matches the + // `sessionExclusionCriteria`. + // + // Optional. If unspecified, a `sessionExclusionDuration` of + // `SESSION_EXCLUSION_TEMPORARY` is used. + SessionExclusionDuration session_exclusion_duration = 1; + + // If a session meets this condition, the session is excluded from + // membership in the segment for the `sessionExclusionDuration`. + SessionSegmentCriteria session_exclusion_criteria = 2; +} + +// Enumerates options for how long an exclusion will last if a session +// matches the `sessionExclusionCriteria`. +enum SessionExclusionDuration { + // Unspecified exclusion duration. Do not specify. + SESSION_EXCLUSION_DURATION_UNSPECIFIED = 0; + + // Temporarily exclude sessions from the segment during periods when the + // session meets the `sessionExclusionCriteria` condition. + SESSION_EXCLUSION_TEMPORARY = 1; + + // Permanently exclude sessions from the segment if the session ever meets + // the `sessionExclusionCriteria` condition. + SESSION_EXCLUSION_PERMANENT = 2; +} + +// Event segments are subsets of events that were triggered on your site or app. +// for example, all purchase events made in a particular location; app_exception +// events that occurred on a specific operating system. +message EventSegment { + // Defines which events are included in this segment. Optional. + EventSegmentCriteria event_inclusion_criteria = 1; + + // Defines which events are excluded in this segment. Optional. + EventSegmentExclusion exclusion = 2; +} + +// An event matches a criteria if the event meet the conditions in the +// criteria. +message EventSegmentCriteria { + // An event matches this criteria if the event matches each of these + // `andConditionGroups`. + repeated EventSegmentConditionGroup and_condition_groups = 1; +} + +// Scoping specifies which events are considered when evaluating if an event +// meets a criteria. +enum EventCriteriaScoping { + // Unspecified criteria scoping. Do not specify. + EVENT_CRITERIA_SCOPING_UNSPECIFIED = 0; + + // If the criteria is satisfied within one event, the event matches the + // criteria. + EVENT_CRITERIA_WITHIN_SAME_EVENT = 1; +} + +// Conditions tell Analytics what data to include in or exclude from the +// segment. +message EventSegmentConditionGroup { + // `conditionScoping` should always be `EVENT_CRITERIA_WITHIN_SAME_EVENT`. + // + // Optional. If unspecified, a `conditionScoping` of + // `EVENT_CRITERIA_WITHIN_SAME_EVENT` is used. + EventCriteriaScoping condition_scoping = 1; + + // Data is included or excluded from the segment based on if it matches + // this expression. Expressions express criteria on dimension, metrics, + // and/or parameters. + SegmentFilterExpression segment_filter_expression = 2; +} + +// Specifies which events are excluded in this segment. +message EventSegmentExclusion { + // `eventExclusionDuration` should always be `PERMANENTLY_EXCLUDE`. + // + // Optional. If unspecified, an `eventExclusionDuration` of + // `EVENT_EXCLUSION_PERMANENT` is used. + EventExclusionDuration event_exclusion_duration = 1; + + // If an event meets this condition, the event is excluded from membership + // in the segment for the `eventExclusionDuration`. + EventSegmentCriteria event_exclusion_criteria = 2; +} + +// Enumerates options for how long an exclusion will last if an event +// matches the `eventExclusionCriteria`. +enum EventExclusionDuration { + // Unspecified exclusion duration. Do not specify. + EVENT_EXCLUSION_DURATION_UNSPECIFIED = 0; + + // Permanently exclude events from the segment if the event ever meets + // the `eventExclusionCriteria` condition. + EVENT_EXCLUSION_PERMANENT = 1; +} + +// A segment is a subset of your Analytics data. For example, of your entire set +// of users, one segment might be users from a particular country or city. +// Another segment might be users who purchase a particular line of products or +// who visit a specific part of your site or trigger certain events in your app. +// +// To learn more, see [GA4 Segment +// Builder](https://support.google.com/analytics/answer/9304353). +message Segment { + // The name for this segment. If unspecified, segments are named "Segment". + // This name defines string value returned by the `segment` dimension. The + // `segment` dimension prefixes segment names by the 1-based index number of + // the segment in the request (i.e. "1. Segment", "2. Segment", etc.). + string name = 1; + + // A segment is specified in one scope. + oneof one_segment_scope { + // User segments are subsets of users who engaged with your site or app. + UserSegment user_segment = 2; + + // Session segments are subsets of the sessions that occurred on your site + // or app. + SessionSegment session_segment = 3; + + // Event segments are subsets of events that were triggered on your site or + // app. + EventSegment event_segment = 4; + } +} + +// Expresses combinations of segment filters. +message SegmentFilterExpression { + // Specify one type of filter for `SegmentFilterExpression`. + oneof expr { + // The SegmentFilterExpression in `andGroup` have an AND relationship. + SegmentFilterExpressionList and_group = 1; + + // The SegmentFilterExpression in `orGroup` have an OR relationship. + SegmentFilterExpressionList or_group = 2; + + // The SegmentFilterExpression is NOT of `notExpression`. + SegmentFilterExpression not_expression = 3; + + // A primitive segment filter. + SegmentFilter segment_filter = 4; + + // Creates a filter that matches events of a single event name. If a + // parameter filter expression is specified, only the subset of events that + // match both the single event name and the parameter filter expressions + // match this event filter. + SegmentEventFilter segment_event_filter = 5; + } +} + +// A list of segment filter expressions. +message SegmentFilterExpressionList { + // The list of segment filter expressions + repeated SegmentFilterExpression expressions = 1; +} + +// An expression to filter dimension or metric values. +message SegmentFilter { + // The dimension name or metric name. + string field_name = 1; + + // Specify one type of filter for `Filter`. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 4; + + // A filter for in list values. + InListFilter in_list_filter = 5; + + // A filter for numeric or date values. + NumericFilter numeric_filter = 6; + + // A filter for between two values. + BetweenFilter between_filter = 7; + } + + // Specifies the scope for the filter. + SegmentFilterScoping filter_scoping = 8; +} + +// Scopings specify how the dimensions & metrics of multiple events +// should be considered when evaluating a segment filter. +message SegmentFilterScoping { + // If `atAnyPointInTime` is true, this filter evaluates to true for all + // events if it evaluates to true for any event in the date range of the + // request. + // + // This `atAnyPointInTime` parameter does not extend the date range of + // events in the report. If `atAnyPointInTime` is true, only events within + // the report's date range are considered when evaluating this filter. + // + // This `atAnyPointInTime` is only able to be specified if the criteria + // scoping is `ACROSS_ALL_SESSIONS` and is not able to be specified in + // sequences. + // + // If the criteria scoping is `ACROSS_ALL_SESSIONS`, `atAnyPointInTime` = + // false is used if unspecified. + optional bool at_any_point_in_time = 1; +} + +// Creates a filter that matches events of a single event name. If a parameter +// filter expression is specified, only the subset of events that match both the +// single event name and the parameter filter expressions match this event +// filter. +message SegmentEventFilter { + // This filter matches events of this single event name. Event name is + // required. + optional string event_name = 1; + + // If specified, this filter matches events that match both the single event + // name and the parameter filter expressions. + // + // Inside the parameter filter expression, only parameter filters are + // available. + optional SegmentParameterFilterExpression segment_parameter_filter_expression = 2; +} + +// Expresses combinations of segment filter on parameters. +message SegmentParameterFilterExpression { + // Specify one type of filter for `SegmentParameterFilterExpression`. + oneof expr { + // The SegmentParameterFilterExpression in `andGroup` have an AND + // relationship. + SegmentParameterFilterExpressionList and_group = 1; + + // The SegmentParameterFilterExpression in `orGroup` have an OR + // relationship. + SegmentParameterFilterExpressionList or_group = 2; + + // The SegmentParameterFilterExpression is NOT of `notExpression`. + SegmentParameterFilterExpression not_expression = 3; + + // A primitive segment parameter filter. + SegmentParameterFilter segment_parameter_filter = 4; + } +} + +// A list of segment parameter filter expressions. +message SegmentParameterFilterExpressionList { + // The list of segment parameter filter expressions. + repeated SegmentParameterFilterExpression expressions = 1; +} + +// An expression to filter parameter values in a segment. +message SegmentParameterFilter { + // The field that is being filtered. + oneof one_parameter { + // This filter will be evaluated on the specified event parameter. Event + // parameters are logged as parameters of the event. Event parameters + // include fields like "firebase_screen" & "currency". + // + // Event parameters can only be used in segments & funnels and can only be + // used in a descendent filter from an EventFilter. In a descendent filter + // from an EventFilter either event or item parameters should be used. + string event_parameter_name = 1; + + // This filter will be evaluated on the specified item parameter. Item + // parameters are logged as parameters in the item array. Item parameters + // include fields like "item_name" & "item_category". + // + // Item parameters can only be used in segments & funnels and can only be + // used in a descendent filter from an EventFilter. In a descendent filter + // from an EventFilter either event or item parameters should be used. + // + // Item parameters are only available in ecommerce events. To learn more + // about ecommerce events, see the [Measure ecommerce] + // (https://developers.google.com/analytics/devguides/collection/ga4/ecommerce) + // guide. + string item_parameter_name = 2; + } + + // Specify one type of filter. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 4; + + // A filter for in list values. + InListFilter in_list_filter = 5; + + // A filter for numeric or date values. + NumericFilter numeric_filter = 6; + + // A filter for between two values. + BetweenFilter between_filter = 7; + } + + // Specifies the scope for the filter. + SegmentParameterFilterScoping filter_scoping = 8; +} + +// Scopings specify how multiple events should be considered when evaluating a +// segment parameter filter. +message SegmentParameterFilterScoping { + // Accumulates the parameter over the specified period of days before + // applying the filter. Only supported if criteria scoping is + // `ACROSS_ALL_SESSIONS` or `WITHIN_SAME_SESSION`. Only supported if the + // parameter is `event_count`. + // + // For example if `inAnyNDayPeriod` is 3, the event_name is "purchase", + // the event parameter is "event_count", and the Filter's criteria is + // greater than 5, this filter will accumulate the event count of purchase + // events over every 3 consecutive day period in the report's date range; a + // user will pass this Filter's criteria to be included in this segment if + // their count of purchase events exceeds 5 in any 3 consecutive day period. + // For example, the periods 2021-11-01 to 2021-11-03, 2021-11-02 to + // 2021-11-04, 2021-11-03 to 2021-11-05, and etc. will be considered. + // + // The date range is not extended for the purpose of having a full N day + // window near the start of the date range. For example if a report is for + // 2021-11-01 to 2021-11-10 and `inAnyNDayPeriod` = 3, the first two day + // period will be effectively shortened because no event data outside the + // report's date range will be read. For example, the first four periods + // will effectively be: 2021-11-01 to 2021-11-01, 2021-11-01 to 2021-11-02, + // 2021-11-01 to 2021-11-03, and 2021-11-02 to 2021-11-04. + // + // `inAnyNDayPeriod` is optional. If not specified, the + // `segmentParameterFilter` is applied to each event individually. + optional int64 in_any_n_day_period = 1; +} + +// Expresses combinations of funnel filters. +message FunnelFilterExpression { + // Specify one type of filter for `FunnelFilterExpression`. + oneof expr { + // The FunnelFilterExpression in `andGroup` have an AND relationship. + FunnelFilterExpressionList and_group = 1; + + // The FunnelFilterExpression in `orGroup` have an OR relationship. + FunnelFilterExpressionList or_group = 2; + + // The FunnelFilterExpression is NOT of `notExpression`. + FunnelFilterExpression not_expression = 3; + + // A funnel filter for a dimension or metric. + FunnelFieldFilter funnel_field_filter = 4; + + // Creates a filter that matches events of a single event name. If a + // parameter filter expression is specified, only the subset of events that + // match both the single event name and the parameter filter expressions + // match this event filter. + FunnelEventFilter funnel_event_filter = 5; + } +} + +// A list of funnel filter expressions. +message FunnelFilterExpressionList { + // The list of funnel filter expressions. + repeated FunnelFilterExpression expressions = 1; +} + +// An expression to filter dimension or metric values. +message FunnelFieldFilter { + // The dimension name or metric name. + string field_name = 1; + + // Specify one type of filter. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 4; + + // A filter for in list values. + InListFilter in_list_filter = 5; + + // A filter for numeric or date values. + NumericFilter numeric_filter = 6; + + // A filter for between two values. + BetweenFilter between_filter = 7; + } +} + +// Creates a filter that matches events of a single event name. If a parameter +// filter expression is specified, only the subset of events that match both the +// single event name and the parameter filter expressions match this event +// filter. +message FunnelEventFilter { + // This filter matches events of this single event name. Event name is + // required. + optional string event_name = 1; + + // If specified, this filter matches events that match both the single event + // name and the parameter filter expressions. + // + // Inside the parameter filter expression, only parameter filters are + // available. + optional FunnelParameterFilterExpression funnel_parameter_filter_expression = 2; +} + +// Expresses combinations of funnel filters on parameters. +message FunnelParameterFilterExpression { + // Specify one type of filter for `FunnelParameterFilterExpression`. + oneof expr { + // The FunnelParameterFilterExpression in `andGroup` have an AND + // relationship. + FunnelParameterFilterExpressionList and_group = 1; + + // The FunnelParameterFilterExpression in `orGroup` have an OR + // relationship. + FunnelParameterFilterExpressionList or_group = 2; + + // The FunnelParameterFilterExpression is NOT of `notExpression`. + FunnelParameterFilterExpression not_expression = 3; + + // A primitive funnel parameter filter. + FunnelParameterFilter funnel_parameter_filter = 4; + } +} + +// A list of funnel parameter filter expressions. +message FunnelParameterFilterExpressionList { + // The list of funnel parameter filter expressions. + repeated FunnelParameterFilterExpression expressions = 1; +} + +// An expression to filter parameter values in a funnel. +message FunnelParameterFilter { + // The field that is being filtered. + oneof one_parameter { + // This filter will be evaluated on the specified event parameter. Event + // parameters are logged as parameters of the event. Event parameters + // include fields like "firebase_screen" & "currency". + // + // Event parameters can only be used in segments & funnels and can only be + // used in a descendent filter from an EventFilter. In a descendent filter + // from an EventFilter either event or item parameters should be used. + string event_parameter_name = 1; + + // This filter will be evaluated on the specified item parameter. Item + // parameters are logged as parameters in the item array. Item parameters + // include fields like "item_name" & "item_category". + // + // Item parameters can only be used in segments & funnels and can only be + // used in a descendent filter from an EventFilter. In a descendent filter + // from an EventFilter either event or item parameters should be used. + // + // Item parameters are only available in ecommerce events. To learn more + // about ecommerce events, see the [Measure ecommerce] + // (https://developers.google.com/analytics/devguides/collection/ga4/ecommerce) + // guide. + string item_parameter_name = 2; + } + + // Specify one type of filter. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 4; + + // A filter for in list values. + InListFilter in_list_filter = 5; + + // A filter for numeric or date values. + NumericFilter numeric_filter = 6; + + // A filter for between two values. + BetweenFilter between_filter = 7; + } +} + +// The funnel report's response metadata carries additional information about +// the funnel report. +message FunnelResponseMetadata { + // If funnel report results are + // [sampled](https://support.google.com/analytics/answer/2637192), this + // describes what percentage of events were used in this funnel report. One + // `samplingMetadatas` is populated for each date range. Each + // `samplingMetadatas` corresponds to a date range in order that date ranges + // were specified in the request. + // + // However if the results are not sampled, this field will not be defined. + repeated SamplingMetadata sampling_metadatas = 1; +} + +// If funnel report results are +// [sampled](https://support.google.com/analytics/answer/2637192), this +// metadata describes what percentage of events were used in this funnel +// report for a date range. Sampling is the practice of analyzing a subset of +// all data in order to uncover the meaningful information in the larger data +// set. +message SamplingMetadata { + // The total number of events read in this sampled report for a date range. + // This is the size of the subset this property's data that was analyzed in + // this funnel report. + int64 samples_read_count = 1; + + // The total number of events present in this property's data that could + // have been analyzed in this funnel report for a date range. Sampling + // uncovers the meaningful information about the larger data set, and this + // is the size of the larger data set. + // + // To calculate the percentage of available data that was used in this + // funnel report, compute `samplesReadCount/samplingSpaceSize`. + int64 sampling_space_size = 2; +} + +// A metric's value type. +enum MetricType { + // Unspecified type. + METRIC_TYPE_UNSPECIFIED = 0; + + // Integer type. + TYPE_INTEGER = 1; + + // Floating point type. + TYPE_FLOAT = 2; + + // A duration of seconds; a special floating point type. + TYPE_SECONDS = 4; + + // A duration in milliseconds; a special floating point type. + TYPE_MILLISECONDS = 5; + + // A duration in minutes; a special floating point type. + TYPE_MINUTES = 6; + + // A duration in hours; a special floating point type. + TYPE_HOURS = 7; + + // A custom metric of standard type; a special floating point type. + TYPE_STANDARD = 8; + + // An amount of money; a special floating point type. + TYPE_CURRENCY = 9; + + // A length in feet; a special floating point type. + TYPE_FEET = 10; + + // A length in miles; a special floating point type. + TYPE_MILES = 11; + + // A length in meters; a special floating point type. + TYPE_METERS = 12; + + // A length in kilometers; a special floating point type. + TYPE_KILOMETERS = 13; +} diff --git a/google/analytics/data/v1beta/BUILD.bazel b/google/analytics/data/v1beta/BUILD.bazel index 7483e9154..1ad3cb2ff 100644 --- a/google/analytics/data/v1beta/BUILD.bazel +++ b/google/analytics/data/v1beta/BUILD.bazel @@ -70,6 +70,7 @@ java_gapic_library( test_deps = [ ":data_java_grpc", ], + transport = "grpc+rest", deps = [ ":data_java_proto", ], @@ -78,6 +79,7 @@ java_gapic_library( java_gapic_test( name = "data_java_gapic_test_suite", test_classes = [ + "com.google.analytics.data.v1beta.BetaAnalyticsDataClientHttpJsonTest", "com.google.analytics.data.v1beta.BetaAnalyticsDataClientTest", ], runtime_deps = [":data_java_gapic_test"], @@ -86,6 +88,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-analytics-data-v1beta-java", + transport = "grpc+rest", deps = [ ":data_java_gapic", ":data_java_grpc", @@ -122,6 +125,7 @@ go_gapic_library( importpath = "google.golang.org/google/analytics/data/v1beta;data", metadata = True, service_yaml = "analyticsdata_v1beta.yaml", + transport = "grpc+rest", deps = [ ":data_go_proto", ], @@ -152,12 +156,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "data_py_gapic", srcs = [":data_proto"], grpc_service_config = "analytics_data_grpc_service_config.json", + transport = "grpc+rest", +) + +py_test( + name = "data_py_gapic_test", + srcs = [ + "data_py_gapic_pytest.py", + "data_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":data_py_gapic"], ) # Open Source Packages @@ -317,6 +333,7 @@ csharp_gapic_library( srcs = [":data_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "analytics_data_grpc_service_config.json", + service_yaml = "analyticsdata_v1beta.yaml", deps = [ ":data_csharp_grpc", ":data_csharp_proto", diff --git a/google/analytics/data/v1beta/data.proto b/google/analytics/data/v1beta/data.proto index 7f9b1450b..a33d45538 100644 --- a/google/analytics/data/v1beta/data.proto +++ b/google/analytics/data/v1beta/data.proto @@ -52,8 +52,8 @@ message MinuteRange { // // If unspecified, `startMinutesAgo` is defaulted to 29. Standard Analytics // properties can request up to the last 30 minutes of event data - // (`startMinutesAgo <= 29`), and 360 Analytics properties can request up to - // the last 60 minutes of event data (`startMinutesAgo <= 59`). + // (`startMinutesAgo <= 29`), and Google Analytics 360 properties can request + // up to the last 60 minutes of event data (`startMinutesAgo <= 59`). optional int32 start_minutes_ago = 1; // The inclusive end minute for the query as a number of minutes before now. @@ -63,8 +63,8 @@ message MinuteRange { // // If unspecified, `endMinutesAgo` is defaulted to 0. Standard Analytics // properties can request any minute in the last 30 minutes of event data - // (`endMinutesAgo <= 29`), and 360 Analytics properties can request any - // minute in the last 60 minutes of event data (`endMinutesAgo <= 59`). + // (`endMinutesAgo <= 29`), and Google Analytics 360 properties can request + // any minute in the last 60 minutes of event data (`endMinutesAgo <= 59`). optional int32 end_minutes_ago = 2; // Assigns a name to this minute range. The dimension `dateRange` is valued to diff --git a/google/api/BUILD.bazel b/google/api/BUILD.bazel index 781061120..ebb9ba812 100644 --- a/google/api/BUILD.bazel +++ b/google/api/BUILD.bazel @@ -244,16 +244,17 @@ proto_library( proto_library( name = "visibility_proto", srcs = ["visibility.proto"], - deps = ["@com_google_protobuf//:descriptor_proto"], visibility = ["//visibility:public"], + deps = ["@com_google_protobuf//:descriptor_proto"], ) ############################################################################## # Java ############################################################################## -load("@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", - "java_gapic_assembly_gradle_pkg" +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_proto_library", ) java_proto_library( @@ -298,8 +299,8 @@ java_proto_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-api-java", + transport = "grpc+rest", deps = [ - ":api_java_proto", "annotations_proto", "auth_proto", "backend_proto", @@ -331,6 +332,7 @@ java_gapic_assembly_gradle_pkg( "system_parameter_proto", "usage_proto", "visibility_proto", + ":api_java_proto", ], ) @@ -344,7 +346,11 @@ go_proto_library( importpath = "google.golang.org/genproto/googleapis/api/annotations", protos = [ ":annotations_proto", + ":client_proto", + ":field_behavior_proto", ":http_proto", + ":resource_proto", + ":routing_proto", ], ) diff --git a/google/api/apikeys/BUILD.bazel b/google/api/apikeys/BUILD.bazel new file mode 100644 index 000000000..8131ffe60 --- /dev/null +++ b/google/api/apikeys/BUILD.bazel @@ -0,0 +1,40 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-api_keys. + +# 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 apikeys. +# 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 = "apikeys_ruby_wrapper", + srcs = ["//google/api/apikeys/v2:apikeys_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=apikeys.googleapis.com", + "ruby-cloud-api-shortname=apikeys", + "ruby-cloud-gem-name=google-cloud-api_keys", + "ruby-cloud-product-url=https://cloud.google.com/api-keys/", + "ruby-cloud-wrapper-of=v2:0.0", + ], + ruby_cloud_description = "An API key is a simple encrypted string that you can use when calling Google Cloud APIs. The API Keys service manages the API keys associated with developer projects.", + ruby_cloud_title = "API Keys", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-apikeys-ruby", + deps = [ + ":apikeys_ruby_wrapper", + ], +) + diff --git a/google/api/apikeys/v2/BUILD.bazel b/google/api/apikeys/v2/BUILD.bazel new file mode 100644 index 000000000..b2b71c0fe --- /dev/null +++ b/google/api/apikeys/v2/BUILD.bazel @@ -0,0 +1,390 @@ +# 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 = "apikeys_proto", + srcs = [ + "apikeys.proto", + "resources.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//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "apikeys_proto_with_info", + deps = [ + ":apikeys_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "apikeys_java_proto", + deps = [":apikeys_proto"], +) + +java_grpc_library( + name = "apikeys_java_grpc", + srcs = [":apikeys_proto"], + deps = [":apikeys_java_proto"], +) + +java_gapic_library( + name = "apikeys_java_gapic", + srcs = [":apikeys_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "apikeys_grpc_service_config.json", + service_yaml = "apikeys_v2.yaml", + test_deps = [ + ":apikeys_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":apikeys_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "apikeys_java_gapic_test_suite", + test_classes = [ + "com.google.api.apikeys.v2.ApiKeysClientHttpJsonTest", + "com.google.api.apikeys.v2.ApiKeysClientTest", + ], + runtime_deps = [":apikeys_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-api-apikeys-v2-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":apikeys_java_gapic", + ":apikeys_java_grpc", + ":apikeys_java_proto", + ":apikeys_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "apikeys_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/api/apikeys/v2", + protos = [":apikeys_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "apikeys_go_gapic", + srcs = [":apikeys_proto_with_info"], + grpc_service_config = "apikeys_grpc_service_config.json", + importpath = "cloud.google.com/go/api/apikeys/apiv2;apikeys", + metadata = True, + service_yaml = "apikeys_v2.yaml", + transport = "grpc+rest", + deps = [ + ":apikeys_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", + ], +) + +go_test( + name = "apikeys_go_gapic_test", + srcs = [":apikeys_go_gapic_srcjar_test"], + embed = [":apikeys_go_gapic"], + importpath = "cloud.google.com/go/api/apikeys/apiv2", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-api-apikeys-v2-go", + deps = [ + ":apikeys_go_gapic", + ":apikeys_go_gapic_srcjar-metadata.srcjar", + ":apikeys_go_gapic_srcjar-test.srcjar", + ":apikeys_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "apikeys_py_gapic", + srcs = [":apikeys_proto"], + grpc_service_config = "apikeys_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-api-keys", + "python-gapic-namespace=google.cloud", + "python-gapic-name=api_keys", + ], + service_yaml = "apikeys_v2.yaml", + transport = "grpc+rest", + deps = [], +) + +py_test( + name = "apikeys_py_gapic_test", + srcs = [ + "apikeys_py_gapic_pytest.py", + "apikeys_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":apikeys_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "api-apikeys-v2-py", + deps = [ + ":apikeys_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "apikeys_php_proto", + deps = [":apikeys_proto"], +) + +php_grpc_library( + name = "apikeys_php_grpc", + srcs = [":apikeys_proto"], + deps = [":apikeys_php_proto"], +) + +php_gapic_library( + name = "apikeys_php_gapic", + srcs = [":apikeys_proto_with_info"], + grpc_service_config = "apikeys_grpc_service_config.json", + service_yaml = "apikeys_v2.yaml", + deps = [ + ":apikeys_php_grpc", + ":apikeys_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-api-apikeys-v2-php", + deps = [ + ":apikeys_php_gapic", + ":apikeys_php_grpc", + ":apikeys_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "apikeys_nodejs_gapic", + package_name = "@google-cloud/apikeys", + src = ":apikeys_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "apikeys_grpc_service_config.json", + package = "google.api.apikeys.v2", + service_yaml = "apikeys_v2.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "api-apikeys-v2-nodejs", + deps = [ + ":apikeys_nodejs_gapic", + ":apikeys_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 = "apikeys_ruby_proto", + deps = [":apikeys_proto"], +) + +ruby_grpc_library( + name = "apikeys_ruby_grpc", + srcs = [":apikeys_proto"], + deps = [":apikeys_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "apikeys_ruby_gapic", + srcs = [":apikeys_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=apikeys.googleapis.com", + "ruby-cloud-api-shortname=apikeys", + "ruby-cloud-gem-name=google-cloud-api_keys-v2", + "ruby-cloud-product-url=https://cloud.google.com/api-keys/", + ], + grpc_service_config = "apikeys_grpc_service_config.json", + ruby_cloud_description = "An API key is a simple encrypted string that you can use when calling Google Cloud APIs. The API Keys service manages the API keys associated with developer projects.", + ruby_cloud_title = "API Keys V2", + service_yaml = "apikeys_v2.yaml", + deps = [ + ":apikeys_ruby_grpc", + ":apikeys_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-api-apikeys-v2-ruby", + deps = [ + ":apikeys_ruby_gapic", + ":apikeys_ruby_grpc", + ":apikeys_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 = "apikeys_csharp_proto", + deps = [":apikeys_proto"], +) + +csharp_grpc_library( + name = "apikeys_csharp_grpc", + srcs = [":apikeys_proto"], + deps = [":apikeys_csharp_proto"], +) + +csharp_gapic_library( + name = "apikeys_csharp_gapic", + srcs = [":apikeys_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "apikeys_grpc_service_config.json", + service_yaml = "apikeys_v2.yaml", + deps = [ + ":apikeys_csharp_grpc", + ":apikeys_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-api-apikeys-v2-csharp", + deps = [ + ":apikeys_csharp_gapic", + ":apikeys_csharp_grpc", + ":apikeys_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "apikeys_cc_proto", + deps = [":apikeys_proto"], +) + +cc_grpc_library( + name = "apikeys_cc_grpc", + srcs = [":apikeys_proto"], + grpc_only = True, + deps = [":apikeys_cc_proto"], +) diff --git a/google/api/apikeys/v2/apikeys.proto b/google/api/apikeys/v2/apikeys.proto new file mode 100644 index 000000000..4b0e08ac2 --- /dev/null +++ b/google/api/apikeys/v2/apikeys.proto @@ -0,0 +1,287 @@ +// 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.api.apikeys.v2; + +import "google/api/annotations.proto"; +import "google/api/apikeys/v2/resources.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/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.ApiKeys.V2"; +option go_package = "google.golang.org/genproto/googleapis/api/apikeys/v2;apikeys"; +option java_multiple_files = true; +option java_outer_classname = "ApiKeysProto"; +option java_package = "com.google.api.apikeys.v2"; +option php_namespace = "Google\\Cloud\\ApiKeys\\V2"; +option ruby_package = "Google::Cloud::ApiKeys::V2"; + +// Manages the API keys associated with projects. +service ApiKeys { + option (google.api.default_host) = "apikeys.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // Creates a new API key. + // + // NOTE: Key is a global resource; hence the only supported value for + // location is `global`. + rpc CreateKey(CreateKeyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/keys" + body: "key" + }; + option (google.api.method_signature) = "parent,key,key_id"; + option (google.longrunning.operation_info) = { + response_type: "Key" + metadata_type: "google.protobuf.Empty" + }; + } + + // Lists the API keys owned by a project. The key string of the API key + // isn't included in the response. + // + // NOTE: Key is a global resource; hence the only supported value for + // location is `global`. + rpc ListKeys(ListKeysRequest) returns (ListKeysResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/keys" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the metadata for an API key. The key string of the API key + // isn't included in the response. + // + // NOTE: Key is a global resource; hence the only supported value for + // location is `global`. + rpc GetKey(GetKeyRequest) returns (Key) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/keys/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Get the key string for an API key. + // + // NOTE: Key is a global resource; hence the only supported value for + // location is `global`. + rpc GetKeyString(GetKeyStringRequest) returns (GetKeyStringResponse) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/keys/*}/keyString" + }; + option (google.api.method_signature) = "name"; + } + + // Patches the modifiable fields of an API key. + // The key string of the API key isn't included in the response. + // + // NOTE: Key is a global resource; hence the only supported value for + // location is `global`. + rpc UpdateKey(UpdateKeyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{key.name=projects/*/locations/*/keys/*}" + body: "key" + }; + option (google.api.method_signature) = "key,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Key" + metadata_type: "google.protobuf.Empty" + }; + } + + // Deletes an API key. Deleted key can be retrieved within 30 days of + // deletion. Afterward, key will be purged from the project. + // + // NOTE: Key is a global resource; hence the only supported value for + // location is `global`. + rpc DeleteKey(DeleteKeyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/keys/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Key" + metadata_type: "google.protobuf.Empty" + }; + } + + // Undeletes an API key which was deleted within 30 days. + // + // NOTE: Key is a global resource; hence the only supported value for + // location is `global`. + rpc UndeleteKey(UndeleteKeyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/keys/*}:undelete" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "Key" + metadata_type: "google.protobuf.Empty" + }; + } + + // Find the parent project and resource name of the API + // key that matches the key string in the request. If the API key has been + // purged, resource name will not be set. + // The service account must have the `apikeys.keys.lookup` permission + // on the parent project. + rpc LookupKey(LookupKeyRequest) returns (LookupKeyResponse) { + option (google.api.http) = { + get: "/v2/keys:lookupKey" + }; + } +} + +// Request message for `CreateKey` method. +message CreateKeyRequest { + // Required. The project in which the API key is created. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apikeys.googleapis.com/Key" + } + ]; + + // Required. The API key fields to set at creation time. + // You can configure only the `display_name`, `restrictions`, and + // `annotations` fields. + Key key = 2 [(google.api.field_behavior) = REQUIRED]; + + // User specified key id (optional). If specified, it will become the final + // component of the key resource name. + // + // The id must be unique within the project, must conform with RFC-1034, + // is restricted to lower-cased letters, and has a maximum length of 63 + // characters. In another word, the id must match the regular + // expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. + // + // The id must NOT be a UUID-like string. + string key_id = 3; +} + +// Request message for `ListKeys` method. +message ListKeysRequest { + // Required. Lists all API keys associated with this project. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apikeys.googleapis.com/Key" + } + ]; + + // Optional. Specifies the maximum number of results to be returned at a time. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Requests a specific page of results. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicate that keys deleted in the past 30 days should also be + // returned. + bool show_deleted = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for `ListKeys` method. +message ListKeysResponse { + // A list of API keys. + repeated Key keys = 1; + + // The pagination token for the next page of results. + string next_page_token = 2; +} + +// Request message for `GetKey` method. +message GetKeyRequest { + // Required. The resource name of the API key to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apikeys.googleapis.com/Key" } + ]; +} + +// Request message for `GetKeyString` method. +message GetKeyStringRequest { + // Required. The resource name of the API key to be retrieved. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apikeys.googleapis.com/Key" } + ]; +} + +// Response message for `GetKeyString` method. +message GetKeyStringResponse { + // An encrypted and signed value of the key. + string key_string = 1; +} + +// Request message for `UpdateKey` method. +message UpdateKeyRequest { + // Required. Set the `name` field to the resource name of the API key to be + // updated. You can update only the `display_name`, `restrictions`, and + // `annotations` fields. + Key key = 1 [(google.api.field_behavior) = REQUIRED]; + + // The field mask specifies which fields to be updated as part of this + // request. All other fields are ignored. + // Mutable fields are: `display_name`, `restrictions`, and `annotations`. + // If an update mask is not provided, the service treats it as an implied mask + // equivalent to all allowed fields that are set on the wire. If the field + // mask has a special value "*", the service treats it equivalent to replace + // all allowed mutable fields. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for `DeleteKey` method. +message DeleteKeyRequest { + // Required. The resource name of the API key to be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apikeys.googleapis.com/Key" } + ]; + + // Optional. The etag known to the client for the expected state of the key. + // This is to be used for optimistic concurrency. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for `UndeleteKey` method. +message UndeleteKeyRequest { + // Required. The resource name of the API key to be undeleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apikeys.googleapis.com/Key" } + ]; +} + +// Request message for `LookupKey` method. +message LookupKeyRequest { + // Required. Finds the project that owns the key string value. + string key_string = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for `LookupKey` method. +message LookupKeyResponse { + // The project that owns the key with the value specified in the request. + string parent = 1; + + // The resource name of the API key. If the API key has been purged, + // resource name is empty. + string name = 2; +} diff --git a/google/api/apikeys/v2/apikeys_grpc_service_config.json b/google/api/apikeys/v2/apikeys_grpc_service_config.json new file mode 100644 index 000000000..418bf99a6 --- /dev/null +++ b/google/api/apikeys/v2/apikeys_grpc_service_config.json @@ -0,0 +1,8 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.api.apikeys.v2.ApiKeys" } + ], + "timeout": "10s" + }] +} diff --git a/google/api/apikeys/v2/apikeys_v2.yaml b/google/api/apikeys/v2/apikeys_v2.yaml new file mode 100644 index 000000000..0f9403e16 --- /dev/null +++ b/google/api/apikeys/v2/apikeys_v2.yaml @@ -0,0 +1,55 @@ +type: google.api.Service +config_version: 3 +name: apikeys.googleapis.com +title: API Keys API + +apis: +- name: google.api.apikeys.v2.ApiKeys +- name: google.longrunning.Operations + +documentation: + summary: Manages the API keys associated with developer projects. + +backend: + rules: + - selector: 'google.api.apikeys.v2.ApiKeys.*' + deadline: 120.0 + - selector: google.longrunning.Operations.GetOperation + deadline: 120.0 + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v2/{name=operations/*}' + +authentication: + rules: + - selector: 'google.api.apikeys.v2.ApiKeys.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.api.apikeys.v2.ApiKeys.GetKey + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.api.apikeys.v2.ApiKeys.GetKeyString + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.api.apikeys.v2.ApiKeys.ListKeys + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.api.apikeys.v2.ApiKeys.LookupKey + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.longrunning.Operations.GetOperation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only diff --git a/google/api/apikeys/v2/resources.proto b/google/api/apikeys/v2/resources.proto new file mode 100644 index 000000000..08e0b11ae --- /dev/null +++ b/google/api/apikeys/v2/resources.proto @@ -0,0 +1,172 @@ +// 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.api.apikeys.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ApiKeys.V2"; +option go_package = "google.golang.org/genproto/googleapis/api/apikeys/v2;apikeys"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.api.apikeys.v2"; +option php_namespace = "Google\\Cloud\\ApiKeys\\V2"; +option ruby_package = "Google::Cloud::ApiKeys::V2"; + +// The representation of a key managed by the API Keys API. +message Key { + option (google.api.resource) = { + type: "apikeys.googleapis.com/Key" + pattern: "projects/{project}/locations/{location}/keys/{key}" + plural: "keys" + singular: "key" + style: DECLARATIVE_FRIENDLY + }; + + // Output only. The resource name of the key. + // The `name` has the form: + // `projects//locations/global/keys/`. + // For example: + // `projects/123456867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2` + // + // NOTE: Key is a global resource; hence the only supported value for + // location is `global`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unique id in UUID4 format. + string uid = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Human-readable display name of this key that you can modify. + // The maximum length is 63 characters. + string display_name = 2; + + // Output only. An encrypted and signed value held by this key. + // This field can be accessed only through the `GetKeyString` method. + string key_string = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A timestamp identifying the time this key was originally + // created. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A timestamp identifying the time this key was last + // updated. + google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A timestamp when this key was deleted. If the resource is not deleted, + // this must be empty. + google.protobuf.Timestamp delete_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Annotations is an unstructured key-value map stored with a policy that + // may be set by external tools to store and retrieve arbitrary metadata. + // They are not queryable and should be preserved when modifying objects. + map annotations = 8; + + // Key restrictions. + Restrictions restrictions = 9; + + // Output only. A checksum computed by the server based on the current value of the Key + // resource. This may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + // See https://google.aip.dev/154. + string etag = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Describes the restrictions on the key. +message Restrictions { + // The websites, IP addresses, Android apps, or iOS apps (the clients) that + // are allowed to use the key. You can specify only one type of client + // restrictions per key. + oneof client_restrictions { + // The HTTP referrers (websites) that are allowed to use the key. + BrowserKeyRestrictions browser_key_restrictions = 1; + + // The IP addresses of callers that are allowed to use the key. + ServerKeyRestrictions server_key_restrictions = 2; + + // The Android apps that are allowed to use the key. + AndroidKeyRestrictions android_key_restrictions = 3; + + // The iOS apps that are allowed to use the key. + IosKeyRestrictions ios_key_restrictions = 4; + } + + // A restriction for a specific service and optionally one or + // more specific methods. Requests are allowed if they + // match any of these restrictions. If no restrictions are + // specified, all targets are allowed. + repeated ApiTarget api_targets = 5; +} + +// The HTTP referrers (websites) that are allowed to use the key. +message BrowserKeyRestrictions { + // A list of regular expressions for the referrer URLs that are allowed + // to make API calls with this key. + repeated string allowed_referrers = 1; +} + +// The IP addresses of callers that are allowed to use the key. +message ServerKeyRestrictions { + // A list of the caller IP addresses that are allowed to make API calls + // with this key. + repeated string allowed_ips = 1; +} + +// The Android apps that are allowed to use the key. +message AndroidKeyRestrictions { + // A list of Android applications that are allowed to make API calls with + // this key. + repeated AndroidApplication allowed_applications = 1; +} + +// Identifier of an Android application for key use. +message AndroidApplication { + // The SHA1 fingerprint of the application. For example, both sha1 formats are + // acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or + // DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. + // Output format is the latter. + string sha1_fingerprint = 1; + + // The package name of the application. + string package_name = 2; +} + +// The iOS apps that are allowed to use the key. +message IosKeyRestrictions { + // A list of bundle IDs that are allowed when making API calls with this key. + repeated string allowed_bundle_ids = 1; +} + +// A restriction for a specific service and optionally one or multiple +// specific methods. Both fields are case insensitive. +message ApiTarget { + // The service for this restriction. It should be the canonical + // service name, for example: `translate.googleapis.com`. + // You can use [`gcloud services list`](/sdk/gcloud/reference/services/list) + // to get a list of services that are enabled in the project. + string service = 1; + + // Optional. List of one or more methods that can be called. + // If empty, all methods for the service are allowed. A wildcard + // (*) can be used as the last symbol. + // Valid examples: + // `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` + // `TranslateText` + // `Get*` + // `translate.googleapis.com.Get*` + repeated string methods = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/api/billing.proto b/google/api/billing.proto index cf481794d..e94c2ec58 100644 --- a/google/api/billing.proto +++ b/google/api/billing.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.api; -import "google/api/metric.proto"; - option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig"; option java_multiple_files = true; option java_outer_classname = "BillingProto"; diff --git a/google/api/expr/v1alpha1/checked.proto b/google/api/expr/v1alpha1/checked.proto index 16aab0312..930dc4f00 100644 --- a/google/api/expr/v1alpha1/checked.proto +++ b/google/api/expr/v1alpha1/checked.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -243,8 +243,8 @@ message Decl { // logging which are not observable from CEL). message FunctionDecl { // An overload indicates a function's parameter types and return type, and - // may optionally include a function body described in terms of [Expr][google.api.expr.v1alpha1.Expr] - // values. + // may optionally include a function body described in terms of + // [Expr][google.api.expr.v1alpha1.Expr] values. // // Functions overloads are declared in either a function or method // call-style. For methods, the `params[0]` is the expected type of the @@ -256,11 +256,13 @@ message Decl { // Required. Globally unique overload name of the function which reflects // the function name and argument types. // - // This will be used by a [Reference][google.api.expr.v1alpha1.Reference] to indicate the `overload_id` that - // was resolved for the function `name`. + // This will be used by a [Reference][google.api.expr.v1alpha1.Reference] + // to indicate the `overload_id` that was resolved for the function + // `name`. string overload_id = 1; - // List of function parameter [Type][google.api.expr.v1alpha1.Type] values. + // List of function parameter [Type][google.api.expr.v1alpha1.Type] + // values. // // Param types are disjoint after generic type parameters have been // replaced with the type `DYN`. Since the `DYN` type is compatible with @@ -283,7 +285,7 @@ message Decl { Type result_type = 4; // Whether the function is to be used in a method call-style `x.f(...)` - // of a function call-style `f(x, ...)`. + // or a function call-style `f(x, ...)`. // // For methods, the first parameter declaration, `params[0]` is the // expected type of the target receiver. @@ -302,9 +304,11 @@ message Decl { // Declarations are organized in containers and this represents the full path // to the declaration in its container, as in `google.api.expr.Decl`. // - // Declarations used as [FunctionDecl.Overload][google.api.expr.v1alpha1.Decl.FunctionDecl.Overload] parameters may or may not - // have a name depending on whether the overload is function declaration or a - // function definition containing a result [Expr][google.api.expr.v1alpha1.Expr]. + // Declarations used as + // [FunctionDecl.Overload][google.api.expr.v1alpha1.Decl.FunctionDecl.Overload] + // parameters may or may not have a name depending on whether the overload is + // function declaration or a function definition containing a result + // [Expr][google.api.expr.v1alpha1.Expr]. string name = 1; // Required. The declaration kind. @@ -329,7 +333,8 @@ message Reference { // presented candidates must happen at runtime because of dynamic types. The // type checker attempts to narrow down this list as much as possible. // - // Empty if this is not a reference to a [Decl.FunctionDecl][google.api.expr.v1alpha1.Decl.FunctionDecl]. + // Empty if this is not a reference to a + // [Decl.FunctionDecl][google.api.expr.v1alpha1.Decl.FunctionDecl]. repeated string overload_id = 3; // For references to constants, this may contain the value of the diff --git a/google/api/expr/v1alpha1/eval.proto b/google/api/expr/v1alpha1/eval.proto index 38ae8bb66..e90526440 100644 --- a/google/api/expr/v1alpha1/eval.proto +++ b/google/api/expr/v1alpha1/eval.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/api/expr/v1alpha1/explain.proto b/google/api/expr/v1alpha1/explain.proto index 9547661a6..23d514851 100644 --- a/google/api/expr/v1alpha1/explain.proto +++ b/google/api/expr/v1alpha1/explain.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/api/expr/v1alpha1/syntax.proto b/google/api/expr/v1alpha1/syntax.proto index 15ad1981c..c234a02e3 100644 --- a/google/api/expr/v1alpha1/syntax.proto +++ b/google/api/expr/v1alpha1/syntax.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -129,7 +129,14 @@ message Expr { } // Required. The value assigned to the key. + // + // If the optional_entry field is true, the expression must resolve to an + // optional-typed value. If the optional value is present, the key will be + // set; however, if the optional value is absent, the key will be unset. Expr value = 4; + + // Whether the key-value pair is optional. + bool optional_entry = 5; } // The type name of the message to be created, empty when creating map diff --git a/google/api/expr/v1alpha1/value.proto b/google/api/expr/v1alpha1/value.proto index 99c56614c..2f03ef62a 100644 --- a/google/api/expr/v1alpha1/value.proto +++ b/google/api/expr/v1alpha1/value.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/api/service.proto b/google/api/service.proto index bb988a981..7cae8a944 100644 --- a/google/api/service.proto +++ b/google/api/service.proto @@ -24,18 +24,15 @@ import "google/api/control.proto"; import "google/api/documentation.proto"; import "google/api/endpoint.proto"; import "google/api/http.proto"; -import "google/api/label.proto"; import "google/api/log.proto"; import "google/api/logging.proto"; import "google/api/metric.proto"; import "google/api/monitored_resource.proto"; import "google/api/monitoring.proto"; import "google/api/quota.proto"; -import "google/api/resource.proto"; import "google/api/source_info.proto"; import "google/api/system_parameter.proto"; import "google/api/usage.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/api.proto"; import "google/protobuf/type.proto"; import "google/protobuf/wrappers.proto"; diff --git a/google/api/servicecontrol/v1/BUILD.bazel b/google/api/servicecontrol/v1/BUILD.bazel index 45ef46f39..a603fe7fe 100644 --- a/google/api/servicecontrol/v1/BUILD.bazel +++ b/google/api/servicecontrol/v1/BUILD.bazel @@ -81,6 +81,7 @@ java_gapic_library( test_deps = [ ":servicecontrol_java_grpc", ], + transport = "grpc+rest", deps = [ ":servicecontrol_java_proto", ], @@ -89,7 +90,9 @@ java_gapic_library( java_gapic_test( name = "servicecontrol_java_gapic_test_suite", test_classes = [ + "com.google.api.servicecontrol.v1.QuotaControllerClientHttpJsonTest", "com.google.api.servicecontrol.v1.QuotaControllerClientTest", + "com.google.api.servicecontrol.v1.ServiceControllerClientHttpJsonTest", "com.google.api.servicecontrol.v1.ServiceControllerClientTest", ], runtime_deps = [":servicecontrol_java_gapic_test"], @@ -98,6 +101,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-api-servicecontrol-v1-java", + transport = "grpc+rest", deps = [ ":servicecontrol_java_gapic", ":servicecontrol_java_grpc", @@ -137,6 +141,7 @@ go_gapic_library( importpath = "cloud.google.com/go/api/servicecontrol/apiv1;servicecontrol", metadata = True, service_yaml = "servicecontrol.yaml", + transport = "grpc+rest", deps = [ ":servicecontrol_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -168,6 +173,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -179,6 +185,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "warehouse-package-name=google-cloud-service-control", ], + transport = "grpc", +) + +py_test( + name = "servicecontrol_py_gapic_test", + srcs = [ + "servicecontrol_py_gapic_pytest.py", + "servicecontrol_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":servicecontrol_py_gapic"], ) # Open Source Packages @@ -340,6 +357,7 @@ csharp_gapic_library( srcs = [":servicecontrol_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "servicecontrol_grpc_service_config.json", + service_yaml = "servicecontrol.yaml", deps = [ ":servicecontrol_csharp_grpc", ":servicecontrol_csharp_proto", diff --git a/google/api/servicecontrol/v1/service_controller.proto b/google/api/servicecontrol/v1/service_controller.proto index 8580fc7a8..8f658c4fa 100644 --- a/google/api/servicecontrol/v1/service_controller.proto +++ b/google/api/servicecontrol/v1/service_controller.proto @@ -20,7 +20,6 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/servicecontrol/v1/check_error.proto"; import "google/api/servicecontrol/v1/operation.proto"; -import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; option cc_enable_arenas = true; diff --git a/google/api/servicecontrol/v2/BUILD.bazel b/google/api/servicecontrol/v2/BUILD.bazel new file mode 100644 index 000000000..8fec05fb7 --- /dev/null +++ b/google/api/servicecontrol/v2/BUILD.bazel @@ -0,0 +1,382 @@ +# 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 = "servicecontrol_proto", + srcs = [ + "service_controller.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/rpc:status_proto", + "//google/rpc/context:attribute_context_proto", + ], +) + +proto_library_with_info( + name = "servicecontrol_proto_with_info", + deps = [ + ":servicecontrol_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "servicecontrol_java_proto", + deps = [":servicecontrol_proto"], +) + +java_grpc_library( + name = "servicecontrol_java_grpc", + srcs = [":servicecontrol_proto"], + deps = [":servicecontrol_java_proto"], +) + +java_gapic_library( + name = "servicecontrol_java_gapic", + srcs = [":servicecontrol_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "servicecontrol_grpc_service_config.json", + service_yaml = "servicecontrol.yaml", + test_deps = [ + ":servicecontrol_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":servicecontrol_java_proto", + "//google/api:api_java_proto", + "//google/rpc/context:attribute_context_java_proto", + ], +) + +java_gapic_test( + name = "servicecontrol_java_gapic_test_suite", + test_classes = [ + "com.google.api.servicecontrol.v2.ServiceControllerClientHttpJsonTest", + "com.google.api.servicecontrol.v2.ServiceControllerClientTest", + ], + runtime_deps = [":servicecontrol_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-api-servicecontrol-v2-java", + transport = "grpc+rest", + deps = [ + ":servicecontrol_java_gapic", + ":servicecontrol_java_grpc", + ":servicecontrol_java_proto", + ":servicecontrol_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "servicecontrol_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/api/servicecontrol/v2", + protos = [":servicecontrol_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/rpc:status_go_proto", + "//google/rpc/context:attribute_context_go_proto", + ], +) + +go_gapic_library( + name = "servicecontrol_go_gapic", + srcs = [":servicecontrol_proto_with_info"], + grpc_service_config = "servicecontrol_grpc_service_config.json", + importpath = "cloud.google.com/go/api/servicecontrol/apiv2;servicecontrol", + metadata = True, + service_yaml = "servicecontrol.yaml", + transport = "grpc+rest", + deps = [ + ":servicecontrol_go_proto", + ], +) + +go_test( + name = "servicecontrol_go_gapic_test", + srcs = [":servicecontrol_go_gapic_srcjar_test"], + embed = [":servicecontrol_go_gapic"], + importpath = "cloud.google.com/go/api/servicecontrol/apiv2", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-api-servicecontrol-v2-go", + deps = [ + ":servicecontrol_go_gapic", + ":servicecontrol_go_gapic_srcjar-metadata.srcjar", + ":servicecontrol_go_gapic_srcjar-test.srcjar", + ":servicecontrol_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "servicecontrol_py_gapic", + srcs = [":servicecontrol_proto"], + grpc_service_config = "servicecontrol_grpc_service_config.json", + opt_args = [ + "python-gapic-name=servicecontrol", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-service-control", + ], + transport = "grpc", +) + +py_test( + name = "servicecontrol_py_gapic_test", + srcs = [ + "servicecontrol_py_gapic_pytest.py", + "servicecontrol_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":servicecontrol_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "api-servicecontrol-v2-py", + deps = [ + ":servicecontrol_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "servicecontrol_php_proto", + deps = [":servicecontrol_proto"], +) + +php_grpc_library( + name = "servicecontrol_php_grpc", + srcs = [":servicecontrol_proto"], + deps = [":servicecontrol_php_proto"], +) + +php_gapic_library( + name = "servicecontrol_php_gapic", + srcs = [":servicecontrol_proto_with_info"], + grpc_service_config = "servicecontrol_grpc_service_config.json", + service_yaml = "servicecontrol.yaml", + deps = [ + ":servicecontrol_php_grpc", + ":servicecontrol_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-api-servicecontrol-v2-php", + deps = [ + ":servicecontrol_php_gapic", + ":servicecontrol_php_grpc", + ":servicecontrol_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "servicecontrol_nodejs_gapic", + package_name = "@google-cloud/servicecontrol", + src = ":servicecontrol_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "servicecontrol_grpc_service_config.json", + package = "google.api.servicecontrol.v2", + service_yaml = "servicecontrol.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "api-servicecontrol-v2-nodejs", + deps = [ + ":servicecontrol_nodejs_gapic", + ":servicecontrol_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 = "servicecontrol_ruby_proto", + deps = [":servicecontrol_proto"], +) + +ruby_grpc_library( + name = "servicecontrol_ruby_grpc", + srcs = [":servicecontrol_proto"], + deps = [":servicecontrol_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "servicecontrol_ruby_gapic", + srcs = [":servicecontrol_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=servicecontrol.googleapis.com", + "ruby-cloud-api-shortname=servicecontrol", + "ruby-cloud-env-prefix=SERVICE_CONTROL", + "ruby-cloud-gem-name=google-cloud-service_control-v2", + "ruby-cloud-product-url=https://cloud.google.com/service-infrastructure/docs/overview/", + ], + grpc_service_config = "servicecontrol_grpc_service_config.json", + ruby_cloud_description = "The Service Control API provides control plane functionality to managed services, such as logging, monitoring, and status checks.", + ruby_cloud_title = "Service Control API V2", + deps = [ + ":servicecontrol_ruby_grpc", + ":servicecontrol_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-api-servicecontrol-v2-ruby", + deps = [ + ":servicecontrol_ruby_gapic", + ":servicecontrol_ruby_grpc", + ":servicecontrol_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 = "servicecontrol_csharp_proto", + deps = [":servicecontrol_proto"], +) + +csharp_grpc_library( + name = "servicecontrol_csharp_grpc", + srcs = [":servicecontrol_proto"], + deps = [":servicecontrol_csharp_proto"], +) + +csharp_gapic_library( + name = "servicecontrol_csharp_gapic", + srcs = [":servicecontrol_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "servicecontrol_grpc_service_config.json", + service_yaml = "servicecontrol.yaml", + deps = [ + ":servicecontrol_csharp_grpc", + ":servicecontrol_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-api-servicecontrol-v2-csharp", + deps = [ + ":servicecontrol_csharp_gapic", + ":servicecontrol_csharp_grpc", + ":servicecontrol_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "servicecontrol_cc_proto", + deps = [":servicecontrol_proto"], +) + +cc_grpc_library( + name = "servicecontrol_cc_grpc", + srcs = [":servicecontrol_proto"], + grpc_only = True, + deps = [":servicecontrol_cc_proto"], +) diff --git a/google/api/servicecontrol/v2/service_controller.proto b/google/api/servicecontrol/v2/service_controller.proto new file mode 100644 index 000000000..2e2112ef3 --- /dev/null +++ b/google/api/servicecontrol/v2/service_controller.proto @@ -0,0 +1,190 @@ +// 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.api.servicecontrol.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/rpc/context/attribute_context.proto"; +import "google/rpc/status.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.ServiceControl.V2"; +option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v2;servicecontrol"; +option java_multiple_files = true; +option java_outer_classname = "ServiceControllerProto"; +option java_package = "com.google.api.servicecontrol.v2"; +option objc_class_prefix = "GASC"; +option php_namespace = "Google\\Cloud\\ServiceControl\\V2"; +option ruby_package = "Google::Cloud::ServiceControl::V2"; + +// [Service Control API +// v2](https://cloud.google.com/service-infrastructure/docs/service-control/access-control) +// +// Private Preview. This feature is only available for approved services. +// +// This API provides admission control and telemetry reporting for services +// that are integrated with [Service +// Infrastructure](https://cloud.google.com/service-infrastructure). +service ServiceController { + option (google.api.default_host) = "servicecontrol.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/servicecontrol"; + + // Private Preview. This feature is only available for approved services. + // + // This method provides admission control for services that are integrated + // with [Service + // Infrastructure](https://cloud.google.com/service-infrastructure). It checks + // whether an operation should be allowed based on the service configuration + // and relevant policies. It must be called before the operation is executed. + // For more information, see + // [Admission + // Control](https://cloud.google.com/service-infrastructure/docs/admission-control). + // + // NOTE: The admission control has an expected policy propagation delay of + // 60s. The caller **must** not depend on the most recent policy changes. + // + // NOTE: The admission control has a hard limit of 1 referenced resources + // per call. If an operation refers to more than 1 resources, the caller + // must call the Check method multiple times. + // + // This method requires the `servicemanagement.services.check` permission + // on the specified service. For more information, see + // [Service Control API Access + // Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control). + rpc Check(CheckRequest) returns (CheckResponse) { + option (google.api.http) = { + post: "/v2/services/{service_name}:check" + body: "*" + }; + } + + // Private Preview. This feature is only available for approved services. + // + // This method provides telemetry reporting for services that are integrated + // with [Service + // Infrastructure](https://cloud.google.com/service-infrastructure). It + // reports a list of operations that have occurred on a service. It must be + // called after the operations have been executed. For more information, see + // [Telemetry + // Reporting](https://cloud.google.com/service-infrastructure/docs/telemetry-reporting). + // + // NOTE: The telemetry reporting has a hard limit of 1000 operations and 1MB + // per Report call. It is recommended to have no more than 100 operations per + // call. + // + // This method requires the `servicemanagement.services.report` permission + // on the specified service. For more information, see + // [Service Control API Access + // Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control). + rpc Report(ReportRequest) returns (ReportResponse) { + option (google.api.http) = { + post: "/v2/services/{service_name}:report" + body: "*" + }; + } +} + +// Request message for the Check method. +message CheckRequest { + // The service name as specified in its service configuration. For example, + // `"pubsub.googleapis.com"`. + // + // See + // [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) + // for the definition of a service name. + string service_name = 1; + + // Specifies the version of the service configuration that should be used to + // process the request. Must not be empty. Set this field to 'latest' to + // specify using the latest configuration. + string service_config_id = 2; + + // Describes attributes about the operation being executed by the service. + google.rpc.context.AttributeContext attributes = 3; + + // Describes the resources and the policies applied to each resource. + repeated ResourceInfo resources = 4; + + // Optional. Contains a comma-separated list of flags. + string flags = 5; +} + +// Describes a resource referenced in the request. +message ResourceInfo { + // The name of the resource referenced in the request. + string name = 1; + + // The resource type in the format of "{service}/{kind}". + string type = 2; + + // The resource permission needed for this request. + // The format must be "{service}/{plural}.{verb}". + string permission = 3; + + // Optional. The identifier of the container of this resource. For Google + // Cloud APIs, the resource container must be one of the following formats: + // - `projects/` + // - `folders/` + // - `organizations/` + // For the policy enforcement on the container level (VPCSC and Location + // Policy check), this field takes precedence on the container extracted from + // name when presents. + string container = 4; + + // Optional. The location of the resource. The value must be a valid zone, + // region or multiregion. For example: "europe-west4" or + // "northamerica-northeast1-a" + string location = 5; +} + +// Response message for the Check method. +message CheckResponse { + // Operation is allowed when this field is not set. Any non-'OK' status + // indicates a denial; [google.rpc.Status.details][google.rpc.Status.details] + // would contain additional details about the denial. + google.rpc.Status status = 1; + + // Returns a set of request contexts generated from the `CheckRequest`. + map headers = 2; +} + +// Request message for the Report method. +message ReportRequest { + // The service name as specified in its service configuration. For example, + // `"pubsub.googleapis.com"`. + // + // See + // [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) + // for the definition of a service name. + string service_name = 1; + + // Specifies the version of the service configuration that should be used to + // process the request. Must not be empty. Set this field to 'latest' to + // specify using the latest configuration. + string service_config_id = 2; + + // Describes the list of operations to be reported. Each operation is + // represented as an AttributeContext, and contains all attributes around an + // API access. + repeated google.rpc.context.AttributeContext operations = 3; +} + +// Response message for the Report method. +// If the request contains any invalid data, the server returns an RPC error. +message ReportResponse {} diff --git a/google/api/servicecontrol/v2/servicecontrol.yaml b/google/api/servicecontrol/v2/servicecontrol.yaml new file mode 100644 index 000000000..9fd969fd0 --- /dev/null +++ b/google/api/servicecontrol/v2/servicecontrol.yaml @@ -0,0 +1,171 @@ +type: google.api.Service +config_version: 3 +name: servicecontrol.googleapis.com +title: Service Control API + +apis: +- name: google.api.servicecontrol.v2.ServiceController + +documentation: + summary: |- + Provides admission control and telemetry reporting for services integrated + with Service Infrastructure. + overview: |- + Google Service Control provides control plane functionality to managed + services, such as logging, monitoring, and status checks. This page + provides an overview of what it does and how it works. + + ## Why use Service Control? + + When you develop a cloud service, you typically start with the business + requirements and the architecture design, then proceed with API definition + and implementation. Before you put your service into production, you + need to deal with many control plane issues: + + * How to control access to your service. + * How to send logging and monitoring data to both consumers and producers. + * How to create and manage dashboards to visualize this data. + * How to automatically scale the control plane components with your + service. + + Service Control is a mature and feature-rich control plane provider + that addresses these needs with high efficiency, high scalability, + and high availability. It provides a simple public API that can be + accessed from anywhere using JSON REST and gRPC clients, so when you move + your service from on-premise to a cloud provider, or from one cloud + provider to another, you don't need to change the control plane provider. + + Services built using Google Cloud Endpoints already take advantage of + Service Control. Cloud Endpoints sends logging and monitoring data + through Google Service Control for every request arriving at its + proxy. If you need to report any additional logging and monitoring data + for your Cloud Endpoints service, you can call the Service Control API + directly from your service. + + The Service Control API definition is open sourced and available on + [GitHub](https://github.com/googleapis/googleapis/tree/master/google/api/servicecontrol). By + changing the DNS name, you can easily use alternative implementations + of the Service Control API. + + ## Architecture + + Google Service Control works with a set of *managed services* and their + *operations* (activities), *checks* whether an operation is allowed to + proceed, and *reports* completed operations. Behind the scenes, it + leverages other + Google Cloud services, such as + [Google Service + Management](https://cloud.google.com/service-infrastructure/docs/service-management/getting-started), [Stackdriver + Logging](https://cloud.google.com/products/operations), and [Stackdriver + Monitoring](https://cloud.google.com/monitoring), while hiding their + complexity from service producers. It enables service + producers to send telemetry data to their consumers. It uses caching, + batching, aggregation, and retries to deliver higher performance and + availability than the individual backend systems it encapsulates. + +
+
+ The overall architecture of a service that uses Google Service
+    Control.
Figure 1: Using Google Service + Control.
+ + The Service Control API provides two methods: + + * + [`services.check`](https://cloud.google.com/service-infrastructure/docs/service-control/reference/rest/v1/services/check), + used for: + * Ensuring valid consumer status + * Validating API keys + * + [`services.report`](https://cloud.google.com/service-infrastructure/docs/service-control/reference/rest/v1/services/report), + used for: + * Sending logs to Stackdriver Logging + * Sending metrics to Stackdriver Monitoring + + We'll look at these in more detail in the rest of this overview. + + ## Managed services + + A [managed + service](https://cloud.google.com/service-infrastructure/docs/service-control/reference/rest/v1/services) is + a network service managed by + [Google Service + Management](https://cloud.google.com/service-infrastructure/docs/service-management/getting-started). Each + managed service has a unique name, such as `example.googleapis.com`, + which must be a valid fully-qualified DNS name, as per RFC 1035. + + For example: + + * Google Cloud Pub/Sub (`pubsub.googleapis.com`) + * Google Cloud Vision (`vision.googleapis.com`) + * Google Cloud Bigtable (`bigtable.googleapis.com`) + * Google Cloud Datastore (`datastore.googleapis.com`) + + Google Service Management manages the lifecycle of each service's + configuration, which is used to customize Google Service Control's + behavior. Service configurations are also used by Google Cloud Console for + displaying APIs and their settings, enabling/disabling APIs, and more. + + ## Operations + + Google Service Control uses the generic concept of an *operation* + to represent the activities of a managed service, such as API calls and + resource usage. Each operation is associated with a managed service and a + specific service consumer, and has a set of properties that describe the + operation, such as the API method name and resource usage amount. For more + information, see the + [Operation + definition](https://cloud.google.com/service-infrastructure/docs/service-control/reference/rest/v1/Operation). ## + Check + + The + [`services.check`](https://cloud.google.com/service-infrastructure/docs/service-control/reference/rest/v1/services/check) method + determines whether an operation should be allowed to proceed for a + managed service. + + For example: + + * Check if the consumer is still active. + * Check if the consumer has enabled the service. + * Check if the API key is still valid. + + By performing multiple checks within a single method call, it provides + better performance, higher reliability, and reduced development cost to + service producers compared to checking with multiple backend systems. + + ## Report + + The + [`services.report`](https://cloud.google.com/service-infrastructure/docs/service-control/reference/rest/v1/services/report) method + reports completed operations for a managed service to backend + systems, such as logging and monitoring. The reported data can be seen in + Google API Console and Google Cloud Console, and retrieved with + appropriate APIs, such as the Stackdriver Logging and Stackdriver + Monitoring APIs. + + ## Next steps + + * Read our [Getting Started + guide](https://cloud.google.com/service-infrastructure/docs/service-control/getting-started) + to find out how to set up and use the Google Service Control API. + +backend: + rules: + - selector: google.api.servicecontrol.v2.ServiceController.Check + deadline: 5.0 + - selector: google.api.servicecontrol.v2.ServiceController.Report + deadline: 5.0 + +authentication: + rules: + - selector: google.api.servicecontrol.v2.ServiceController.Check + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/servicecontrol + - selector: google.api.servicecontrol.v2.ServiceController.Report + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/servicecontrol diff --git a/google/api/servicecontrol/v2/servicecontrol_grpc_service_config.json b/google/api/servicecontrol/v2/servicecontrol_grpc_service_config.json new file mode 100644 index 000000000..a1ebcef06 --- /dev/null +++ b/google/api/servicecontrol/v2/servicecontrol_grpc_service_config.json @@ -0,0 +1,20 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.api.servicecontrol.v2.ServiceController", + "method": "Check" + } + ], + "timeout": "5s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + } + ] +} diff --git a/google/api/servicemanagement/BUILD.bazel b/google/api/servicemanagement/BUILD.bazel index 08d5c1336..906c4c821 100644 --- a/google/api/servicemanagement/BUILD.bazel +++ b/google/api/servicemanagement/BUILD.bazel @@ -28,7 +28,7 @@ ruby_cloud_gapic_library( "ruby-cloud-api-shortname=servicemanagement", ], ruby_cloud_description = "Google Service Management allows service producers to publish their services on Google Cloud Platform so that they can be discovered and used by service consumers.", - ruby_cloud_title = "Service Management API", + ruby_cloud_title = "Service Management", ) # Open Source package. diff --git a/google/api/servicemanagement/v1/BUILD.bazel b/google/api/servicemanagement/v1/BUILD.bazel index 835ab0d45..3e2431097 100644 --- a/google/api/servicemanagement/v1/BUILD.bazel +++ b/google/api/servicemanagement/v1/BUILD.bazel @@ -1,4 +1,13 @@ # 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"]) @@ -20,13 +29,9 @@ proto_library( "//google/api:client_proto", "//google/api:config_change_proto", "//google/api:field_behavior_proto", - "//google/api:metric_proto", - "//google/api:quota_proto", "//google/api:service_proto", "//google/longrunning:operations_proto", - "//google/rpc:status_proto", "@com_google_protobuf//:any_proto", - "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -67,9 +72,11 @@ java_gapic_library( srcs = [":servicemanagement_proto_with_info"], gapic_yaml = "servicemanagement_gapic.yaml", grpc_service_config = "servicemanagement_grpc_service_config.json", + service_yaml = "servicemanagement_v1.yaml", test_deps = [ ":servicemanagement_java_grpc", ], + transport = "grpc+rest", deps = [ ":servicemanagement_java_proto", "//google/api:api_java_proto", @@ -79,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "servicemanagement_java_gapic_test_suite", test_classes = [ + "com.google.cloud.api.servicemanagement.v1.ServiceManagerClientHttpJsonTest", "com.google.cloud.api.servicemanagement.v1.ServiceManagerClientTest", ], runtime_deps = [":servicemanagement_java_gapic_test"], @@ -87,6 +95,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-api-servicemanagement-v1-java", + transport = "grpc+rest", deps = [ ":servicemanagement_java_gapic", ":servicemanagement_java_grpc", @@ -114,10 +123,8 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/api:configchange_go_proto", - "//google/api:metric_go_proto", "//google/api:serviceconfig_go_proto", "//google/longrunning:longrunning_go_proto", - "//google/rpc:status_go_proto", ], ) @@ -126,7 +133,9 @@ go_gapic_library( srcs = [":servicemanagement_proto_with_info"], grpc_service_config = "servicemanagement_grpc_service_config.json", importpath = "cloud.google.com/go/api/servicemanagement/apiv1;servicemanagement", + metadata = True, service_yaml = "servicemanagement_v1.yaml", + transport = "grpc+rest", deps = [ ":servicemanagement_go_proto", "//google/api:serviceconfig_go_proto", @@ -149,6 +158,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-api-servicemanagement-v1-go", deps = [ ":servicemanagement_go_gapic", + ":servicemanagement_go_gapic_srcjar-metadata.srcjar", ":servicemanagement_go_gapic_srcjar-test.srcjar", ":servicemanagement_go_proto", ], @@ -161,6 +171,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -168,10 +179,21 @@ py_gapic_library( srcs = [":servicemanagement_proto"], grpc_service_config = "servicemanagement_grpc_service_config.json", opt_args = [ - "warehouse-package-name=google-cloud-service-management", - "python-gapic-namespace=google.cloud", "python-gapic-name=servicemanagement", - ] + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-service-management", + ], + transport = "grpc", +) + +py_test( + name = "servicemanagement_py_gapic_test", + srcs = [ + "servicemanagement_py_gapic_pytest.py", + "servicemanagement_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":servicemanagement_py_gapic"], ) # Open Source Packages @@ -279,14 +301,15 @@ ruby_cloud_gapic_library( name = "servicemanagement_ruby_gapic", srcs = [":servicemanagement_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-service_management-v1", - "ruby-cloud-env-prefix=SERVICE_MANAGEMENT", - "ruby-cloud-product-url=https://cloud.google.com/service-infrastructure/docs/overview/", "ruby-cloud-api-id=servicemanagement.googleapis.com", "ruby-cloud-api-shortname=servicemanagement", + "ruby-cloud-env-prefix=SERVICE_MANAGEMENT", + "ruby-cloud-gem-name=google-cloud-service_management-v1", + "ruby-cloud-product-url=https://cloud.google.com/service-infrastructure/docs/overview/", ], + grpc_service_config = "servicemanagement_grpc_service_config.json", ruby_cloud_description = "Google Service Management allows service producers to publish their services on Google Cloud Platform so that they can be discovered and used by service consumers.", - ruby_cloud_title = "Service Management API V1", + ruby_cloud_title = "Service Management V1", deps = [ ":servicemanagement_ruby_grpc", ":servicemanagement_ruby_proto", @@ -330,6 +353,7 @@ csharp_gapic_library( srcs = [":servicemanagement_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "servicemanagement_grpc_service_config.json", + service_yaml = "servicemanagement_v1.yaml", deps = [ ":servicemanagement_csharp_grpc", ":servicemanagement_csharp_proto", diff --git a/google/api/servicemanagement/v1/resources.proto b/google/api/servicemanagement/v1/resources.proto index 0d9ed6b54..57ffd770b 100644 --- a/google/api/servicemanagement/v1/resources.proto +++ b/google/api/servicemanagement/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -11,23 +11,14 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -// syntax = "proto3"; package google.api.servicemanagement.v1; -import "google/api/annotations.proto"; import "google/api/config_change.proto"; import "google/api/field_behavior.proto"; -import "google/api/metric.proto"; -import "google/api/quota.proto"; -import "google/api/service.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.ServiceManagement.V1"; option go_package = "google.golang.org/genproto/googleapis/api/servicemanagement/v1;servicemanagement"; @@ -41,7 +32,8 @@ option ruby_package = "Google::Cloud::ServiceManagement::V1"; // The full representation of a Service that is managed by // Google Service Management. message ManagedService { - // The name of the service. See the [overview](https://cloud.google.com/service-management/overview) + // The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) // for naming requirements. string service_name = 2; @@ -235,9 +227,7 @@ message Rollout { // Strategy used to delete a service. This strategy is a placeholder only // used by the system generated rollout to delete a service. - message DeleteServiceStrategy { - - } + message DeleteServiceStrategy {} // Status of a Rollout. enum RolloutStatus { @@ -265,8 +255,9 @@ message Rollout { FAILED_ROLLED_BACK = 6; } - // Optional. Unique identifier of this Rollout. Must be no longer than 63 characters - // and only lower case letters, digits, '.', '_' and '-' are allowed. + // Optional. Unique identifier of this Rollout. Must be no longer than 63 + // characters and only lower case letters, digits, '.', '_' and '-' are + // allowed. // // If not specified by client, the server will generate one. The generated id // will have the form of , where "date" is the create diff --git a/google/api/servicemanagement/v1/servicemanagement_v1.yaml b/google/api/servicemanagement/v1/servicemanagement_v1.yaml index 43640dd58..78a96a91f 100644 --- a/google/api/servicemanagement/v1/servicemanagement_v1.yaml +++ b/google/api/servicemanagement/v1/servicemanagement_v1.yaml @@ -1,5 +1,5 @@ type: google.api.Service -config_version: 2 +config_version: 3 name: servicemanagement.googleapis.com title: Service Management API @@ -9,8 +9,6 @@ apis: types: - name: google.api.servicemanagement.v1.ConfigRef - name: google.api.servicemanagement.v1.ConfigSource -- name: google.api.servicemanagement.v1.DisableServiceResponse -- name: google.api.servicemanagement.v1.EnableServiceResponse - name: google.api.servicemanagement.v1.OperationMetadata - name: google.api.servicemanagement.v1.Rollout - name: google.api.servicemanagement.v1.SubmitConfigSourceResponse @@ -33,12 +31,12 @@ documentation: support the managed services. If you are a service producer, you can use the Google Service Management - API and [Google Cloud SDK (gcloud)](/sdk) to publish and manage your - services. - Each managed service has a service configuration which declares various - aspects of the service such as its API surface, along with parameters to - configure the supporting backend systems, such as logging and monitoring. - If you build your service using + API and [Google Cloud SDK (gcloud)](https://cloud.google.com/sdk) to + publish and manage your services. Each managed service has a service + configuration which declares various aspects of the service such as its + API surface, along with parameters to configure the supporting + backend + systems, such as logging and monitoring. If you build your service using [Google Cloud Endpoints](https://cloud.google.com/endpoints/), the service configuration will be handled automatically. @@ -54,9 +52,8 @@ documentation: REST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}`
REST schema is defined - [here](/service-management/reference/rest/v1/services). - - A managed service refers to a network service managed by + [here](https://cloud.google.com/service-management/reference/rest/v1/services). A + managed service refers to a network service managed by Service Management. Each managed service has a unique name, such as `example.googleapis.com`, which must be a valid fully-qualified DNS name, as per RFC 1035. @@ -66,9 +63,7 @@ documentation: services. Service producers can use methods, such as - [services.create](/service-management/reference/rest/v1/services/create), - [services.delete](/service-management/reference/rest/v1/services/delete), - [services.undelete](/service-management/reference/rest/v1/services/undelete), to + [services.create](https://cloud.google.com/service-management/reference/rest/v1/services/create), [services.delete](https://cloud.google.com/service-management/reference/rest/v1/services/delete), [services.undelete](https://cloud.google.com/service-management/reference/rest/v1/services/undelete), to manipulate their managed services. ## Service producers @@ -88,10 +83,9 @@ documentation: REST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}/configs/{config_id}`
REST schema is defined - [here](/service-management/reference/rest/v1/services.configs). - - Each managed service is described by a service configuration which covers - a wide range of features, including its name, title, RPC API + [here](https://cloud.google.com/service-management/reference/rest/v1/services.configs). Each + managed service is described by a service configuration which covers a + wide range of features, including its name, title, RPC API definitions, REST API definitions, documentation, authentication, and more. @@ -102,8 +96,8 @@ documentation: service configurations, making it possible to easily retrace how a service's configuration evolved over time. Service configurations can be published - using the [services.configs.create](/service-management/reference/rest/v1/services.configs/create) or - [services.configs.submit](/service-management/reference/rest/v1/services.configs/submit) methods. Alternatively, + using the [services.configs.create](https://cloud.google.com/service-management/reference/rest/v1/services.configs/create) or + [services.configs.submit](https://cloud.google.com/service-management/reference/rest/v1/services.configs/submit) methods. Alternatively, `services.configs.submit` allows publishing an [OpenAPI](https://github.com/OAI/OpenAPI-Specification) specification, formerly known as the Swagger Specification, which is automatically @@ -114,9 +108,8 @@ documentation: REST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}/rollouts/{rollout-id}`
REST schema is defined - [here](/service-management/reference/rest/v1/services.rollouts). - - A `Rollout` defines how Google Service Management should deploy service + [here](https://cloud.google.com/service-management/reference/rest/v1/services.rollouts). A + `Rollout` defines how Google Service Management should deploy service configurations to backend systems and how the configurations take effect at runtime. It lets service producers specify multiple service configuration @@ -137,8 +130,7 @@ documentation: Service Management keeps a history of rollouts so that service producers can undo to previous configuration versions. You can rollback a configuration by initiating a new `Rollout` that clones a previously - submitted - rollout record. + submitted rollout record. rules: - selector: google.iam.v1.IAMPolicy.GetIamPolicy description: |- @@ -150,14 +142,14 @@ documentation: Sets the access control policy on the specified resource. Replaces any existing policy. - Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and - PERMISSION_DENIED + 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. + 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 diff --git a/google/api/servicemanagement/v1/servicemanager.proto b/google/api/servicemanagement/v1/servicemanager.proto index c12f7748b..c863cd419 100644 --- a/google/api/servicemanagement/v1/servicemanager.proto +++ b/google/api/servicemanagement/v1/servicemanager.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -23,8 +23,6 @@ import "google/api/service.proto"; import "google/api/servicemanagement/v1/resources.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/any.proto"; -import "google/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.ServiceManagement.V1"; option go_package = "google.golang.org/genproto/googleapis/api/servicemanagement/v1;servicemanagement"; @@ -35,7 +33,8 @@ option objc_class_prefix = "GASM"; option php_namespace = "Google\\Cloud\\ServiceManagement\\V1"; option ruby_package = "Google::Cloud::ServiceManagement::V1"; -// [Google Service Management API](https://cloud.google.com/service-management/overview) +// [Google Service Management +// API](https://cloud.google.com/service-infrastructure/docs/overview) service ServiceManager { option (google.api.default_host) = "servicemanagement.googleapis.com"; option (google.api.oauth_scopes) = @@ -49,10 +48,6 @@ service ServiceManager { // Returns all public services. For authenticated users, also returns all // services the calling user has "servicemanagement.services.get" permission // for. - // - // **BETA:** If the caller specifies the `consumer_id`, it returns only the - // services enabled on the consumer. The `consumer_id` must have the format - // of "project:{PROJECT-ID}". rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { option (google.api.http) = { get: "/v1/services" @@ -70,10 +65,18 @@ service ServiceManager { } // Creates a new managed service. - // Please note one producer project can own no more than 20 services. + // + // A managed service is immutable, and is subject to mandatory 30-day + // data retention. You cannot move a service or recreate it within 30 days + // after deletion. + // + // One producer project can own no more than 500 services. For security and + // reliability purposes, a production service should be hosted in a + // dedicated producer project. // // Operation - rpc CreateService(CreateServiceRequest) returns (google.longrunning.Operation) { + rpc CreateService(CreateServiceRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/services" body: "service" @@ -87,11 +90,14 @@ service ServiceManager { // Deletes a managed service. This method will change the service to the // `Soft-Delete` state for 30 days. Within this period, service producers may - // call [UndeleteService][google.api.servicemanagement.v1.ServiceManager.UndeleteService] to restore the service. - // After 30 days, the service will be permanently deleted. + // call + // [UndeleteService][google.api.servicemanagement.v1.ServiceManager.UndeleteService] + // to restore the service. After 30 days, the service will be permanently + // deleted. // // Operation - rpc DeleteService(DeleteServiceRequest) returns (google.longrunning.Operation) { + rpc DeleteService(DeleteServiceRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/services/{service_name}" }; @@ -108,7 +114,8 @@ service ServiceManager { // last 30 days. // // Operation - rpc UndeleteService(UndeleteServiceRequest) returns (google.longrunning.Operation) { + rpc UndeleteService(UndeleteServiceRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/services/{service_name}:undelete" }; @@ -121,7 +128,8 @@ service ServiceManager { // Lists the history of the service configuration for a managed service, // from the newest to the oldest. - rpc ListServiceConfigs(ListServiceConfigsRequest) returns (ListServiceConfigsResponse) { + rpc ListServiceConfigs(ListServiceConfigsRequest) + returns (ListServiceConfigsResponse) { option (google.api.http) = { get: "/v1/services/{service_name}/configs" }; @@ -132,9 +140,7 @@ service ServiceManager { rpc GetServiceConfig(GetServiceConfigRequest) returns (google.api.Service) { option (google.api.http) = { get: "/v1/services/{service_name}/configs/{config_id}" - additional_bindings { - get: "/v1/services/{service_name}/config" - } + additional_bindings { get: "/v1/services/{service_name}/config" } }; option (google.api.method_signature) = "service_name,config_id,view"; } @@ -147,7 +153,8 @@ service ServiceManager { // Only the 100 most recent service configurations and ones referenced by // existing rollouts are kept for each service. The rest will be deleted // eventually. - rpc CreateServiceConfig(CreateServiceConfigRequest) returns (google.api.Service) { + rpc CreateServiceConfig(CreateServiceConfigRequest) + returns (google.api.Service) { option (google.api.http) = { post: "/v1/services/{service_name}/configs" body: "service_config" @@ -161,19 +168,22 @@ service ServiceManager { // Specification). This method stores the source configurations as well as the // generated service configuration. To rollout the service configuration to // other services, - // please call [CreateServiceRollout][google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout]. + // please call + // [CreateServiceRollout][google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout]. // // Only the 100 most recent configuration sources and ones referenced by // existing service configurtions are kept for each service. The rest will be // deleted eventually. // // Operation - rpc SubmitConfigSource(SubmitConfigSourceRequest) returns (google.longrunning.Operation) { + rpc SubmitConfigSource(SubmitConfigSourceRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/services/{service_name}/configs:submit" body: "*" }; - option (google.api.method_signature) = "service_name,config_source,validate_only"; + option (google.api.method_signature) = + "service_name,config_source,validate_only"; option (google.longrunning.operation_info) = { response_type: "google.api.servicemanagement.v1.SubmitConfigSourceResponse" metadata_type: "google.api.servicemanagement.v1.OperationMetadata" @@ -182,14 +192,16 @@ service ServiceManager { // Lists the history of the service configuration rollouts for a managed // service, from the newest to the oldest. - rpc ListServiceRollouts(ListServiceRolloutsRequest) returns (ListServiceRolloutsResponse) { + rpc ListServiceRollouts(ListServiceRolloutsRequest) + returns (ListServiceRolloutsResponse) { option (google.api.http) = { get: "/v1/services/{service_name}/rollouts" }; option (google.api.method_signature) = "service_name,filter"; } - // Gets a service configuration [rollout][google.api.servicemanagement.v1.Rollout]. + // Gets a service configuration + // [rollout][google.api.servicemanagement.v1.Rollout]. rpc GetServiceRollout(GetServiceRolloutRequest) returns (Rollout) { option (google.api.http) = { get: "/v1/services/{service_name}/rollouts/{rollout_id}" @@ -211,7 +223,8 @@ service ServiceManager { // service. The rest will be deleted eventually. // // Operation - rpc CreateServiceRollout(CreateServiceRolloutRequest) returns (google.longrunning.Operation) { + rpc CreateServiceRollout(CreateServiceRolloutRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/services/{service_name}/rollouts" body: "rollout" @@ -234,50 +247,14 @@ service ServiceManager { // If GenerateConfigReportRequest.old_value is not specified, this method // will compare GenerateConfigReportRequest.new_value with the last pushed // service configuration. - rpc GenerateConfigReport(GenerateConfigReportRequest) returns (GenerateConfigReportResponse) { + rpc GenerateConfigReport(GenerateConfigReportRequest) + returns (GenerateConfigReportResponse) { option (google.api.http) = { post: "/v1/services:generateConfigReport" body: "*" }; option (google.api.method_signature) = "new_config,old_config"; } - - // Enables a [service][google.api.servicemanagement.v1.ManagedService] for a project, so it can be used - // for the project. See - // [Cloud Auth Guide](https://cloud.google.com/docs/authentication) for - // more information. - // - // Operation - rpc EnableService(EnableServiceRequest) returns (google.longrunning.Operation) { - option deprecated = true; - option (google.api.http) = { - post: "/v1/services/{service_name}:enable" - body: "*" - }; - option (google.api.method_signature) = "service_name,consumer_id"; - option (google.longrunning.operation_info) = { - response_type: "google.api.servicemanagement.v1.EnableServiceResponse" - metadata_type: "google.api.servicemanagement.v1.OperationMetadata" - }; - } - - // Disables a [service][google.api.servicemanagement.v1.ManagedService] for a project, so it can no longer be - // be used for the project. It prevents accidental usage that may cause - // unexpected billing charges or security leaks. - // - // Operation - rpc DisableService(DisableServiceRequest) returns (google.longrunning.Operation) { - option deprecated = true; - option (google.api.http) = { - post: "/v1/services/{service_name}:disable" - body: "*" - }; - option (google.api.method_signature) = "service_name,consumer_id"; - option (google.longrunning.operation_info) = { - response_type: "google.api.servicemanagement.v1.DisableServiceResponse" - metadata_type: "google.api.servicemanagement.v1.OperationMetadata" - }; - } } // Request message for `ListServices` method. @@ -312,8 +289,8 @@ message ListServicesResponse { // Request message for `GetService` method. message GetServiceRequest { - // Required. The name of the service. See the `ServiceManager` overview for naming - // requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the `ServiceManager` overview for + // naming requirements. For example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -325,15 +302,17 @@ message CreateServiceRequest { // Request message for DeleteService method. message DeleteServiceRequest { - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; } // Request message for UndeleteService method. message UndeleteServiceRequest { - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -356,8 +335,9 @@ message GetServiceConfigRequest { FULL = 1; } - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The id of the service configuration resource. @@ -373,8 +353,9 @@ message GetServiceConfigRequest { // Request message for ListServiceConfigs method. message ListServiceConfigsRequest { - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; // The token of the page to retrieve. @@ -396,18 +377,21 @@ message ListServiceConfigsResponse { // Request message for CreateServiceConfig method. message CreateServiceConfigRequest { - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The service configuration resource. - google.api.Service service_config = 2 [(google.api.field_behavior) = REQUIRED]; + google.api.Service service_config = 2 + [(google.api.field_behavior) = REQUIRED]; } // Request message for SubmitConfigSource method. message SubmitConfigSourceRequest { - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The source configuration for the service. @@ -427,8 +411,9 @@ message SubmitConfigSourceResponse { // Request message for 'CreateServiceRollout' message CreateServiceRolloutRequest { - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The rollout resource. The `service_name` field is output only. @@ -437,8 +422,9 @@ message CreateServiceRolloutRequest { // Request message for 'ListServiceRollouts' message ListServiceRolloutsRequest { - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; // The token of the page to retrieve. @@ -470,60 +456,15 @@ message ListServiceRolloutsResponse { // Request message for GetServiceRollout method. message GetServiceRolloutRequest { - // Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) - // for naming requirements. For example: `example.googleapis.com`. + // Required. The name of the service. See the + // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For + // example: `example.googleapis.com`. string service_name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The id of the rollout resource. string rollout_id = 2 [(google.api.field_behavior) = REQUIRED]; } -// Request message for EnableService method. -message EnableServiceRequest { - // Required. Name of the service to enable. Specifying an unknown service name will - // cause the request to fail. - string service_name = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The identity of consumer resource which service enablement will be - // applied to. - // - // The Google Service Management implementation accepts the following - // forms: - // - "project:" - // - // Note: this is made compatible with - // google.api.servicecontrol.v1.Operation.consumer_id. - string consumer_id = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Operation payload for EnableService method. -message EnableServiceResponse { - -} - -// Request message for DisableService method. -message DisableServiceRequest { - // Required. Name of the service to disable. Specifying an unknown service name - // will cause the request to fail. - string service_name = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The identity of consumer resource which service disablement will be - // applied to. - // - // The Google Service Management implementation accepts the following - // forms: - // - "project:" - // - // Note: this is made compatible with - // google.api.servicecontrol.v1.Operation.consumer_id. - string consumer_id = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Operation payload for DisableService method. -message DisableServiceResponse { - -} - // Request message for GenerateConfigReport method. message GenerateConfigReportRequest { // Required. Service configuration for which we want to generate the report. diff --git a/google/api/serviceusage/v1/BUILD.bazel b/google/api/serviceusage/v1/BUILD.bazel index dab03a80c..8c25c297f 100644 --- a/google/api/serviceusage/v1/BUILD.bazel +++ b/google/api/serviceusage/v1/BUILD.bazel @@ -77,6 +77,7 @@ java_gapic_library( test_deps = [ ":serviceusage_java_grpc", ], + transport = "grpc+rest", deps = [ ":serviceusage_java_proto", ], @@ -85,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "serviceusage_java_gapic_test_suite", test_classes = [ + "com.google.api.serviceusage.v1.ServiceUsageClientHttpJsonTest", "com.google.api.serviceusage.v1.ServiceUsageClientTest", ], runtime_deps = [":serviceusage_java_gapic_test"], @@ -93,6 +95,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-api-serviceusage-v1-java", + transport = "grpc+rest", deps = [ ":serviceusage_java_gapic", ":serviceusage_java_grpc", @@ -170,6 +173,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -181,6 +185,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=service_usage", ], + transport = "grpc", +) + +py_test( + name = "serviceusage_py_gapic_test", + srcs = [ + "serviceusage_py_gapic_pytest.py", + "serviceusage_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":serviceusage_py_gapic"], ) # Open Source Packages @@ -267,8 +282,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -340,6 +355,7 @@ csharp_gapic_library( srcs = [":serviceusage_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "serviceusage_grpc_service_config.json", + # service_yaml = "serviceusage_v1.yaml", deps = [ ":serviceusage_csharp_grpc", ":serviceusage_csharp_proto", diff --git a/google/api/serviceusage/v1/resources.proto b/google/api/serviceusage/v1/resources.proto index a2aaae961..b78ba0f33 100644 --- a/google/api/serviceusage/v1/resources.proto +++ b/google/api/serviceusage/v1/resources.proto @@ -24,7 +24,6 @@ import "google/api/monitoring.proto"; import "google/api/quota.proto"; import "google/api/usage.proto"; import "google/protobuf/api.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.ServiceUsage.V1"; option go_package = "google.golang.org/genproto/googleapis/api/serviceusage/v1;serviceusage"; diff --git a/google/api/serviceusage/v1beta1/BUILD.bazel b/google/api/serviceusage/v1beta1/BUILD.bazel index 4ac6a5ea2..56d11deca 100644 --- a/google/api/serviceusage/v1beta1/BUILD.bazel +++ b/google/api/serviceusage/v1beta1/BUILD.bazel @@ -79,6 +79,7 @@ java_gapic_library( test_deps = [ ":serviceusage_java_grpc", ], + transport = "grpc+rest", deps = [ ":serviceusage_java_proto", ], @@ -87,6 +88,7 @@ java_gapic_library( java_gapic_test( name = "serviceusage_java_gapic_test_suite", test_classes = [ + "com.google.api.serviceusage.v1beta1.ServiceUsageClientHttpJsonTest", "com.google.api.serviceusage.v1beta1.ServiceUsageClientTest", ], runtime_deps = [":serviceusage_java_gapic_test"], @@ -95,6 +97,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-api-serviceusage-v1beta1-java", + transport = "grpc+rest", deps = [ ":serviceusage_java_gapic", ":serviceusage_java_grpc", @@ -134,6 +137,7 @@ go_gapic_library( importpath = "cloud.google.com/go/api/serviceusage/apiv1beta1;serviceusage", metadata = True, service_yaml = "serviceusage_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":serviceusage_go_proto", "//google/longrunning:longrunning_go_proto", @@ -173,8 +177,20 @@ py_gapic_library( name = "serviceusage_py_gapic", srcs = [":serviceusage_proto"], grpc_service_config = "serviceusage_grpc_service_config.json", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "serviceusage_py_gapic_test", +# srcs = [ +# "serviceusage_py_gapic_pytest.py", +# "serviceusage_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":serviceusage_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "api-serviceusage-v1beta1-py", @@ -332,6 +348,7 @@ csharp_gapic_library( srcs = [":serviceusage_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "serviceusage_grpc_service_config.json", + service_yaml = "serviceusage_v1beta1.yaml", deps = [ ":serviceusage_csharp_grpc", ":serviceusage_csharp_proto", diff --git a/google/api/serviceusage/v1beta1/resources.proto b/google/api/serviceusage/v1beta1/resources.proto index 4db1161f0..a68437c3c 100644 --- a/google/api/serviceusage/v1beta1/resources.proto +++ b/google/api/serviceusage/v1beta1/resources.proto @@ -24,7 +24,6 @@ import "google/api/monitoring.proto"; import "google/api/quota.proto"; import "google/api/usage.proto"; import "google/protobuf/api.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Api.ServiceUsage.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/api/serviceusage/v1beta1;serviceusage"; diff --git a/google/api/serviceusage/v1beta1/serviceusage.proto b/google/api/serviceusage/v1beta1/serviceusage.proto index 2b0761f33..205122488 100644 --- a/google/api/serviceusage/v1beta1/serviceusage.proto +++ b/google/api/serviceusage/v1beta1/serviceusage.proto @@ -18,7 +18,6 @@ package google.api.serviceusage.v1beta1; import "google/api/annotations.proto"; import "google/api/client.proto"; -import "google/api/field_behavior.proto"; import "google/api/serviceusage/v1beta1/resources.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; diff --git a/google/appengine/legacy/audit_data.proto b/google/appengine/legacy/audit_data.proto index 5aaa61d7e..e5217262c 100644 --- a/google/appengine/legacy/audit_data.proto +++ b/google/appengine/legacy/audit_data.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.appengine.legacy; -import "google/api/annotations.proto"; - option go_package = "google.golang.org/genproto/googleapis/appengine/legacy;legacy"; option java_multiple_files = true; option java_outer_classname = "AuditDataProto"; diff --git a/google/appengine/logging/v1/BUILD.bazel b/google/appengine/logging/v1/BUILD.bazel index ad4db5290..2ea7513bf 100644 --- a/google/appengine/logging/v1/BUILD.bazel +++ b/google/appengine/logging/v1/BUILD.bazel @@ -63,8 +63,8 @@ go_proto_library( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", "py_gapic_library", - "py_gapic_assembly_pkg" ) py_gapic_library( @@ -72,9 +72,10 @@ py_gapic_library( srcs = [":logging_proto"], opt_args = [ "warehouse-package-name=google-cloud-appengine-logging", - "python-gapic-namespace=google.cloud", + "python-gapic-namespace=google.cloud", "python-gapic-name=appengine_logging", ], + transport = "grpc", ) # Open Source Packages diff --git a/google/appengine/v1/BUILD.bazel b/google/appengine/v1/BUILD.bazel index 7ed290422..37463b636 100644 --- a/google/appengine/v1/BUILD.bazel +++ b/google/appengine/v1/BUILD.bazel @@ -89,6 +89,7 @@ java_gapic_library( test_deps = [ ":appengine_java_grpc", ], + transport = "grpc+rest", deps = [ ":appengine_java_proto", ], @@ -97,13 +98,21 @@ java_gapic_library( java_gapic_test( name = "appengine_java_gapic_test_suite", test_classes = [ + "com.google.appengine.v1.ApplicationsClientHttpJsonTest", "com.google.appengine.v1.ApplicationsClientTest", + "com.google.appengine.v1.AuthorizedCertificatesClientHttpJsonTest", "com.google.appengine.v1.AuthorizedCertificatesClientTest", + "com.google.appengine.v1.AuthorizedDomainsClientHttpJsonTest", "com.google.appengine.v1.AuthorizedDomainsClientTest", + "com.google.appengine.v1.DomainMappingsClientHttpJsonTest", "com.google.appengine.v1.DomainMappingsClientTest", + "com.google.appengine.v1.FirewallClientHttpJsonTest", "com.google.appengine.v1.FirewallClientTest", + "com.google.appengine.v1.InstancesClientHttpJsonTest", "com.google.appengine.v1.InstancesClientTest", + "com.google.appengine.v1.ServicesClientHttpJsonTest", "com.google.appengine.v1.ServicesClientTest", + "com.google.appengine.v1.VersionsClientHttpJsonTest", "com.google.appengine.v1.VersionsClientTest", ], runtime_deps = [":appengine_java_gapic_test"], @@ -112,6 +121,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-appengine-v1-java", + transport = "grpc+rest", deps = [ ":appengine_java_gapic", ":appengine_java_grpc", @@ -149,6 +159,7 @@ go_gapic_library( importpath = "cloud.google.com/go/appengine/apiv1;appengine", metadata = True, service_yaml = "appengine_v1.yaml", + transport = "grpc+rest", deps = [ ":appengine_go_proto", "//google/longrunning:longrunning_go_proto", @@ -183,6 +194,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -194,6 +206,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=appengine_admin", ], + transport = "grpc", +) + +py_test( + name = "appengine_py_gapic_test", + srcs = [ + "appengine_py_gapic_pytest.py", + "appengine_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":appengine_py_gapic"], ) # Open Source Packages @@ -280,8 +303,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -352,6 +375,7 @@ csharp_gapic_library( srcs = [":appengine_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "appengine_grpc_service_config.json", + service_yaml = "appengine_v1.yaml", deps = [ ":appengine_csharp_grpc", ":appengine_csharp_proto", diff --git a/google/appengine/v1/app_yaml.proto b/google/appengine/v1/app_yaml.proto index 657ad97f8..882185335 100644 --- a/google/appengine/v1/app_yaml.proto +++ b/google/appengine/v1/app_yaml.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; diff --git a/google/appengine/v1/appengine.proto b/google/appengine/v1/appengine.proto index 76c6d6871..76eb230fa 100644 --- a/google/appengine/v1/appengine.proto +++ b/google/appengine/v1/appengine.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,19 +16,19 @@ syntax = "proto3"; package google.appengine.v1; +import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/appengine/v1/application.proto"; import "google/appengine/v1/certificate.proto"; import "google/appengine/v1/domain.proto"; import "google/appengine/v1/domain_mapping.proto"; import "google/appengine/v1/firewall.proto"; import "google/appengine/v1/instance.proto"; -import "google/appengine/v1/version.proto"; import "google/appengine/v1/service.proto"; -import "google/api/annotations.proto"; +import "google/appengine/v1/version.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; @@ -51,6 +51,7 @@ service Applications { option (google.api.http) = { get: "/v1/{name=apps/*}" }; + option (google.api.method_signature) = "name"; } // Creates an App Engine application for a Google Cloud Platform project. @@ -76,6 +77,7 @@ service Applications { // // * `auth_domain` - Google authentication domain for controlling user access to the application. // * `default_cookie_expiration` - Cookie expiration policy for the application. + // * `iap` - Identity-Aware Proxy properties for the application. rpc UpdateApplication(UpdateApplicationRequest) returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1/{name=apps/*}" @@ -129,7 +131,7 @@ message UpdateApplicationRequest { // An Application containing the updated resource. Application application = 2; - // Standard field mask for the set of fields to be updated. + // Required. Standard field mask for the set of fields to be updated. google.protobuf.FieldMask update_mask = 3; } @@ -221,7 +223,7 @@ message UpdateServiceRequest { // field mask will be updated. Service service = 2; - // Standard field mask for the set of fields to be updated. + // Required. Standard field mask for the set of fields to be updated. google.protobuf.FieldMask update_mask = 3; // Set to `true` to gradually shift traffic to one or more versions that you @@ -365,6 +367,19 @@ message ListVersionsResponse { string next_page_token = 2; } +// Fields that should be returned when [Version][google.appengine.v1.Version] resources +// are retrieved. +enum VersionView { + // Basic version information including scaling and inbound services, + // but not detailed deployment information. + BASIC = 0; + + // The information from `BASIC`, plus detailed information about the + // deployment. This format is required when creating resources, but + // is not returned in `Get` or `List` by default. + FULL = 1; +} + // Request message for `Versions.GetVersion`. message GetVersionRequest { // Name of the resource requested. Example: @@ -399,19 +414,6 @@ message UpdateVersionRequest { google.protobuf.FieldMask update_mask = 3; } -// Fields that should be returned when [Version][google.appengine.v1.Version] resources -// are retrieved. -enum VersionView { - // Basic version information including scaling and inbound services, - // but not detailed deployment information. - BASIC = 0; - - // The information from `BASIC`, plus detailed information about the - // deployment. This format is required when creating resources, but - // is not returned in `Get` or `List` by default. - FULL = 1; -} - // Request message for `Versions.DeleteVersion`. message DeleteVersionRequest { // Name of the resource requested. Example: @@ -419,6 +421,73 @@ message DeleteVersionRequest { string name = 1; } +// Manages instances of a version. +service Instances { + option (google.api.default_host) = "appengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/appengine.admin," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // Lists the instances of a version. + // + // Tip: To aggregate details about instances over time, see the + // [Stackdriver Monitoring API](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). + rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { + option (google.api.http) = { + get: "/v1/{parent=apps/*/services/*/versions/*}/instances" + }; + } + + // Gets instance information. + rpc GetInstance(GetInstanceRequest) returns (Instance) { + option (google.api.http) = { + get: "/v1/{name=apps/*/services/*/versions/*/instances/*}" + }; + } + + // Stops a running instance. + // + // The instance might be automatically recreated based on the scaling settings + // of the version. For more information, see "How Instances are Managed" + // ([standard environment](https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed) | + // [flexible environment](https://cloud.google.com/appengine/docs/flexible/python/how-instances-are-managed)). + // + // To ensure that instances are not re-created and avoid getting billed, you + // can stop all instances within the target version by changing the serving + // status of the version to `STOPPED` with the + // [`apps.services.versions.patch`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch) + // method. + rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=apps/*/services/*/versions/*/instances/*}" + }; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadataV1" + }; + } + + // Enables debugging on a VM instance. This allows you to use the SSH + // command to connect to the virtual machine where the instance lives. + // While in "debug mode", the instance continues to serve live traffic. + // You should delete the instance when you are done debugging and then + // allow the system to take over and determine if another instance + // should be started. + // + // Only applicable for instances in App Engine flexible environment. + rpc DebugInstance(DebugInstanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=apps/*/services/*/versions/*/instances/*}:debug" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "Instance" + metadata_type: "OperationMetadataV1" + }; + } +} + // Request message for `Instances.ListInstances`. message ListInstancesRequest { // Name of the parent Version resource. Example: @@ -471,91 +540,91 @@ message DebugInstanceRequest { string ssh_key = 2; } -// Request message for `Firewall.ListIngressRules`. -message ListIngressRulesRequest { - // Name of the Firewall collection to retrieve. - // Example: `apps/myapp/firewall/ingressRules`. - string parent = 1; - - // Maximum results to return per page. - int32 page_size = 2; - - // Continuation token for fetching the next page of results. - string page_token = 3; - - // A valid IP Address. If set, only rules matching this address will be - // returned. The first returned rule will be the rule that fires on requests - // from this IP. - string matching_address = 4; -} - -// Manages instances of a version. -service Instances { +// Firewall resources are used to define a collection of access control rules +// for an Application. Each rule is defined with a position which specifies +// the rule's order in the sequence of rules, an IP range to be matched against +// requests, and an action to take upon matching requests. +// +// Every request is evaluated against the Firewall rules in priority order. +// Processesing stops at the first rule which matches the request's IP address. +// A final rule always specifies an action that applies to all remaining +// IP addresses. The default final rule for a newly-created application will be +// set to "allow" if not otherwise specified by the user. +service Firewall { option (google.api.default_host) = "appengine.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/appengine.admin," "https://www.googleapis.com/auth/cloud-platform," "https://www.googleapis.com/auth/cloud-platform.read-only"; - // Lists the instances of a version. - // - // Tip: To aggregate details about instances over time, see the - // [Stackdriver Monitoring API](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). - rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { + // Lists the firewall rules of an application. + rpc ListIngressRules(ListIngressRulesRequest) returns (ListIngressRulesResponse) { option (google.api.http) = { - get: "/v1/{parent=apps/*/services/*/versions/*}/instances" + get: "/v1/{parent=apps/*}/firewall/ingressRules" }; } - // Gets instance information. - rpc GetInstance(GetInstanceRequest) returns (Instance) { + // Replaces the entire firewall ruleset in one bulk operation. This overrides + // and replaces the rules of an existing firewall with the new rules. + // + // If the final rule does not match traffic with the '*' wildcard IP range, + // then an "allow all" rule is explicitly added to the end of the list. + rpc BatchUpdateIngressRules(BatchUpdateIngressRulesRequest) returns (BatchUpdateIngressRulesResponse) { option (google.api.http) = { - get: "/v1/{name=apps/*/services/*/versions/*/instances/*}" + post: "/v1/{name=apps/*/firewall/ingressRules}:batchUpdate" + body: "*" }; } - // Stops a running instance. - // - // The instance might be automatically recreated based on the scaling settings - // of the version. For more information, see "How Instances are Managed" - // ([standard environment](https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed) | - // [flexible environment](https://cloud.google.com/appengine/docs/flexible/python/how-instances-are-managed)). - // - // To ensure that instances are not re-created and avoid getting billed, you - // can stop all instances within the target version by changing the serving - // status of the version to `STOPPED` with the - // [`apps.services.versions.patch`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch) - // method. - rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) { + // Creates a firewall rule for the application. + rpc CreateIngressRule(CreateIngressRuleRequest) returns (google.appengine.v1.FirewallRule) { option (google.api.http) = { - delete: "/v1/{name=apps/*/services/*/versions/*/instances/*}" + post: "/v1/{parent=apps/*}/firewall/ingressRules" + body: "rule" }; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "OperationMetadataV1" + } + + // Gets the specified firewall rule. + rpc GetIngressRule(GetIngressRuleRequest) returns (google.appengine.v1.FirewallRule) { + option (google.api.http) = { + get: "/v1/{name=apps/*/firewall/ingressRules/*}" }; } - // Enables debugging on a VM instance. This allows you to use the SSH - // command to connect to the virtual machine where the instance lives. - // While in "debug mode", the instance continues to serve live traffic. - // You should delete the instance when you are done debugging and then - // allow the system to take over and determine if another instance - // should be started. - // - // Only applicable for instances in App Engine flexible environment. - rpc DebugInstance(DebugInstanceRequest) returns (google.longrunning.Operation) { + // Updates the specified firewall rule. + rpc UpdateIngressRule(UpdateIngressRuleRequest) returns (google.appengine.v1.FirewallRule) { option (google.api.http) = { - post: "/v1/{name=apps/*/services/*/versions/*/instances/*}:debug" - body: "*" + patch: "/v1/{name=apps/*/firewall/ingressRules/*}" + body: "rule" }; - option (google.longrunning.operation_info) = { - response_type: "Instance" - metadata_type: "OperationMetadataV1" + } + + // Deletes the specified firewall rule. + rpc DeleteIngressRule(DeleteIngressRuleRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=apps/*/firewall/ingressRules/*}" }; } } +// Request message for `Firewall.ListIngressRules`. +message ListIngressRulesRequest { + // Name of the Firewall collection to retrieve. + // Example: `apps/myapp/firewall/ingressRules`. + string parent = 1; + + // Maximum results to return per page. + int32 page_size = 2; + + // Continuation token for fetching the next page of results. + string page_token = 3; + + // A valid IP Address. If set, only rules matching this address will be + // returned. The first returned rule will be the rule that fires on requests + // from this IP. + string matching_address = 4; +} + // Response message for `Firewall.ListIngressRules`. message ListIngressRulesResponse { // The ingress FirewallRules for this application. @@ -627,6 +696,24 @@ message DeleteIngressRuleRequest { string name = 1; } +// Manages domains a user is authorized to administer. To authorize use of a +// domain, verify ownership via +// [Webmaster Central](https://www.google.com/webmasters/verification/home). +service AuthorizedDomains { + option (google.api.default_host) = "appengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/appengine.admin," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // Lists all domains the user is authorized to administer. + rpc ListAuthorizedDomains(ListAuthorizedDomainsRequest) returns (ListAuthorizedDomainsResponse) { + option (google.api.http) = { + get: "/v1/{parent=apps/*}/authorizedDomains" + }; + } +} + // Request message for `AuthorizedDomains.ListAuthorizedDomains`. message ListAuthorizedDomainsRequest { // Name of the parent Application resource. Example: `apps/myapp`. @@ -648,95 +735,79 @@ message ListAuthorizedDomainsResponse { string next_page_token = 2; } -// Request message for `AuthorizedCertificates.ListAuthorizedCertificates`. -message ListAuthorizedCertificatesRequest { - // Name of the parent `Application` resource. Example: `apps/myapp`. - string parent = 1; - - // Controls the set of fields returned in the `LIST` response. - AuthorizedCertificateView view = 4; +// Manages SSL certificates a user is authorized to administer. A user can +// administer any SSL certificates applicable to their authorized domains. +service AuthorizedCertificates { + option (google.api.default_host) = "appengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/appengine.admin," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; - // Maximum results to return per page. - int32 page_size = 2; - - // Continuation token for fetching the next page of results. - string page_token = 3; -} - -// Response message for `AuthorizedCertificates.ListAuthorizedCertificates`. -message ListAuthorizedCertificatesResponse { - // The SSL certificates the user is authorized to administer. - repeated google.appengine.v1.AuthorizedCertificate certificates = 1; - - // Continuation token for fetching the next page of results. - string next_page_token = 2; -} - -// Firewall resources are used to define a collection of access control rules -// for an Application. Each rule is defined with a position which specifies -// the rule's order in the sequence of rules, an IP range to be matched against -// requests, and an action to take upon matching requests. -// -// Every request is evaluated against the Firewall rules in priority order. -// Processesing stops at the first rule which matches the request's IP address. -// A final rule always specifies an action that applies to all remaining -// IP addresses. The default final rule for a newly-created application will be -// set to "allow" if not otherwise specified by the user. -service Firewall { - option (google.api.default_host) = "appengine.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/appengine.admin," - "https://www.googleapis.com/auth/cloud-platform," - "https://www.googleapis.com/auth/cloud-platform.read-only"; - - // Lists the firewall rules of an application. - rpc ListIngressRules(ListIngressRulesRequest) returns (ListIngressRulesResponse) { + // Lists all SSL certificates the user is authorized to administer. + rpc ListAuthorizedCertificates(ListAuthorizedCertificatesRequest) returns (ListAuthorizedCertificatesResponse) { option (google.api.http) = { - get: "/v1/{parent=apps/*}/firewall/ingressRules" + get: "/v1/{parent=apps/*}/authorizedCertificates" }; } - // Replaces the entire firewall ruleset in one bulk operation. This overrides - // and replaces the rules of an existing firewall with the new rules. - // - // If the final rule does not match traffic with the '*' wildcard IP range, - // then an "allow all" rule is explicitly added to the end of the list. - rpc BatchUpdateIngressRules(BatchUpdateIngressRulesRequest) returns (BatchUpdateIngressRulesResponse) { + // Gets the specified SSL certificate. + rpc GetAuthorizedCertificate(GetAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) { option (google.api.http) = { - post: "/v1/{name=apps/*/firewall/ingressRules}:batchUpdate" - body: "*" + get: "/v1/{name=apps/*/authorizedCertificates/*}" }; } - // Creates a firewall rule for the application. - rpc CreateIngressRule(CreateIngressRuleRequest) returns (google.appengine.v1.FirewallRule) { + // Uploads the specified SSL certificate. + rpc CreateAuthorizedCertificate(CreateAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) { option (google.api.http) = { - post: "/v1/{parent=apps/*}/firewall/ingressRules" - body: "rule" + post: "/v1/{parent=apps/*}/authorizedCertificates" + body: "certificate" }; } - // Gets the specified firewall rule. - rpc GetIngressRule(GetIngressRuleRequest) returns (google.appengine.v1.FirewallRule) { + // Updates the specified SSL certificate. To renew a certificate and maintain + // its existing domain mappings, update `certificate_data` with a new + // certificate. The new certificate must be applicable to the same domains as + // the original certificate. The certificate `display_name` may also be + // updated. + rpc UpdateAuthorizedCertificate(UpdateAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) { option (google.api.http) = { - get: "/v1/{name=apps/*/firewall/ingressRules/*}" + patch: "/v1/{name=apps/*/authorizedCertificates/*}" + body: "certificate" }; } - // Updates the specified firewall rule. - rpc UpdateIngressRule(UpdateIngressRuleRequest) returns (google.appengine.v1.FirewallRule) { + // Deletes the specified SSL certificate. + rpc DeleteAuthorizedCertificate(DeleteAuthorizedCertificateRequest) returns (google.protobuf.Empty) { option (google.api.http) = { - patch: "/v1/{name=apps/*/firewall/ingressRules/*}" - body: "rule" + delete: "/v1/{name=apps/*/authorizedCertificates/*}" }; } +} - // Deletes the specified firewall rule. - rpc DeleteIngressRule(DeleteIngressRuleRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1/{name=apps/*/firewall/ingressRules/*}" - }; - } +// Request message for `AuthorizedCertificates.ListAuthorizedCertificates`. +message ListAuthorizedCertificatesRequest { + // Name of the parent `Application` resource. Example: `apps/myapp`. + string parent = 1; + + // Controls the set of fields returned in the `LIST` response. + AuthorizedCertificateView view = 4; + + // Maximum results to return per page. + int32 page_size = 2; + + // Continuation token for fetching the next page of results. + string page_token = 3; +} + +// Response message for `AuthorizedCertificates.ListAuthorizedCertificates`. +message ListAuthorizedCertificatesResponse { + // The SSL certificates the user is authorized to administer. + repeated google.appengine.v1.AuthorizedCertificate certificates = 1; + + // Continuation token for fetching the next page of results. + string next_page_token = 2; } // Request message for `AuthorizedCertificates.GetAuthorizedCertificate`. @@ -749,6 +820,18 @@ message GetAuthorizedCertificateRequest { AuthorizedCertificateView view = 2; } +// Fields that should be returned when an AuthorizedCertificate resource is +// retrieved. +enum AuthorizedCertificateView { + // Basic certificate information, including applicable domains and expiration + // date. + BASIC_CERTIFICATE = 0; + + // The information from `BASIC_CERTIFICATE`, plus detailed information on the + // domain mappings that have this certificate mapped. + FULL_CERTIFICATE = 1; +} + // Request message for `AuthorizedCertificates.CreateAuthorizedCertificate`. message CreateAuthorizedCertificateRequest { // Name of the parent `Application` resource. Example: `apps/myapp`. @@ -780,166 +863,6 @@ message DeleteAuthorizedCertificateRequest { string name = 1; } -// Request message for `DomainMappings.ListDomainMappings`. -message ListDomainMappingsRequest { - // Name of the parent Application resource. Example: `apps/myapp`. - string parent = 1; - - // Maximum results to return per page. - int32 page_size = 2; - - // Continuation token for fetching the next page of results. - string page_token = 3; -} - -// Response message for `DomainMappings.ListDomainMappings`. -message ListDomainMappingsResponse { - // The domain mappings for the application. - repeated google.appengine.v1.DomainMapping domain_mappings = 1; - - // Continuation token for fetching the next page of results. - string next_page_token = 2; -} - -// Request message for `DomainMappings.GetDomainMapping`. -message GetDomainMappingRequest { - // Name of the resource requested. Example: - // `apps/myapp/domainMappings/example.com`. - string name = 1; -} - -// Request message for `DomainMappings.CreateDomainMapping`. -message CreateDomainMappingRequest { - // Name of the parent Application resource. Example: `apps/myapp`. - string parent = 1; - - // Domain mapping configuration. - google.appengine.v1.DomainMapping domain_mapping = 2; - - // Whether the domain creation should override any existing mappings for this - // domain. By default, overrides are rejected. - DomainOverrideStrategy override_strategy = 4; -} - -// Manages domains a user is authorized to administer. To authorize use of a -// domain, verify ownership via -// [Webmaster Central](https://www.google.com/webmasters/verification/home). -service AuthorizedDomains { - option (google.api.default_host) = "appengine.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/appengine.admin," - "https://www.googleapis.com/auth/cloud-platform," - "https://www.googleapis.com/auth/cloud-platform.read-only"; - - // Lists all domains the user is authorized to administer. - rpc ListAuthorizedDomains(ListAuthorizedDomainsRequest) returns (ListAuthorizedDomainsResponse) { - option (google.api.http) = { - get: "/v1/{parent=apps/*}/authorizedDomains" - }; - } -} - -// Request message for `DomainMappings.UpdateDomainMapping`. -message UpdateDomainMappingRequest { - // Name of the resource to update. Example: - // `apps/myapp/domainMappings/example.com`. - string name = 1; - - // A domain mapping containing the updated resource. Only fields set - // in the field mask will be updated. - google.appengine.v1.DomainMapping domain_mapping = 2; - - // Standard field mask for the set of fields to be updated. - google.protobuf.FieldMask update_mask = 3; -} - -// Request message for `DomainMappings.DeleteDomainMapping`. -message DeleteDomainMappingRequest { - // Name of the resource to delete. Example: - // `apps/myapp/domainMappings/example.com`. - string name = 1; -} - -// Manages SSL certificates a user is authorized to administer. A user can -// administer any SSL certificates applicable to their authorized domains. -service AuthorizedCertificates { - option (google.api.default_host) = "appengine.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/appengine.admin," - "https://www.googleapis.com/auth/cloud-platform," - "https://www.googleapis.com/auth/cloud-platform.read-only"; - - // Lists all SSL certificates the user is authorized to administer. - rpc ListAuthorizedCertificates(ListAuthorizedCertificatesRequest) returns (ListAuthorizedCertificatesResponse) { - option (google.api.http) = { - get: "/v1/{parent=apps/*}/authorizedCertificates" - }; - } - - // Gets the specified SSL certificate. - rpc GetAuthorizedCertificate(GetAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) { - option (google.api.http) = { - get: "/v1/{name=apps/*/authorizedCertificates/*}" - }; - } - - // Uploads the specified SSL certificate. - rpc CreateAuthorizedCertificate(CreateAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) { - option (google.api.http) = { - post: "/v1/{parent=apps/*}/authorizedCertificates" - body: "certificate" - }; - } - - // Updates the specified SSL certificate. To renew a certificate and maintain - // its existing domain mappings, update `certificate_data` with a new - // certificate. The new certificate must be applicable to the same domains as - // the original certificate. The certificate `display_name` may also be - // updated. - rpc UpdateAuthorizedCertificate(UpdateAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) { - option (google.api.http) = { - patch: "/v1/{name=apps/*/authorizedCertificates/*}" - body: "certificate" - }; - } - - // Deletes the specified SSL certificate. - rpc DeleteAuthorizedCertificate(DeleteAuthorizedCertificateRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1/{name=apps/*/authorizedCertificates/*}" - }; - } -} - -// Fields that should be returned when an AuthorizedCertificate resource is -// retrieved. -enum AuthorizedCertificateView { - // Basic certificate information, including applicable domains and expiration - // date. - BASIC_CERTIFICATE = 0; - - // The information from `BASIC_CERTIFICATE`, plus detailed information on the - // domain mappings that have this certificate mapped. - FULL_CERTIFICATE = 1; -} - -// Override strategy for mutating an existing mapping. -enum DomainOverrideStrategy { - // Strategy unspecified. Defaults to `STRICT`. - UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY = 0; - - // Overrides not allowed. If a mapping already exists for the - // specified domain, the request will return an ALREADY_EXISTS (409). - STRICT = 1; - - // Overrides allowed. If a mapping already exists for the specified domain, - // the request will overwrite it. Note that this might stop another - // Google product from serving. For example, if the domain is - // mapped to another App Engine application, that app will no - // longer serve from that domain. - OVERRIDE = 2; -} - // Manages domains serving an application. service DomainMappings { option (google.api.default_host) = "appengine.googleapis.com"; @@ -1004,3 +927,82 @@ service DomainMappings { }; } } + +// Request message for `DomainMappings.ListDomainMappings`. +message ListDomainMappingsRequest { + // Name of the parent Application resource. Example: `apps/myapp`. + string parent = 1; + + // Maximum results to return per page. + int32 page_size = 2; + + // Continuation token for fetching the next page of results. + string page_token = 3; +} + +// Response message for `DomainMappings.ListDomainMappings`. +message ListDomainMappingsResponse { + // The domain mappings for the application. + repeated google.appengine.v1.DomainMapping domain_mappings = 1; + + // Continuation token for fetching the next page of results. + string next_page_token = 2; +} + +// Request message for `DomainMappings.GetDomainMapping`. +message GetDomainMappingRequest { + // Name of the resource requested. Example: + // `apps/myapp/domainMappings/example.com`. + string name = 1; +} + +// Override strategy for mutating an existing mapping. +enum DomainOverrideStrategy { + // Strategy unspecified. Defaults to `STRICT`. + UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY = 0; + + // Overrides not allowed. If a mapping already exists for the + // specified domain, the request will return an ALREADY_EXISTS (409). + STRICT = 1; + + // Overrides allowed. If a mapping already exists for the specified domain, + // the request will overwrite it. Note that this might stop another + // Google product from serving. For example, if the domain is + // mapped to another App Engine application, that app will no + // longer serve from that domain. + OVERRIDE = 2; +} + +// Request message for `DomainMappings.CreateDomainMapping`. +message CreateDomainMappingRequest { + // Name of the parent Application resource. Example: `apps/myapp`. + string parent = 1; + + // Domain mapping configuration. + google.appengine.v1.DomainMapping domain_mapping = 2; + + // Whether the domain creation should override any existing mappings for this + // domain. By default, overrides are rejected. + DomainOverrideStrategy override_strategy = 4; +} + +// Request message for `DomainMappings.UpdateDomainMapping`. +message UpdateDomainMappingRequest { + // Name of the resource to update. Example: + // `apps/myapp/domainMappings/example.com`. + string name = 1; + + // A domain mapping containing the updated resource. Only fields set + // in the field mask will be updated. + google.appengine.v1.DomainMapping domain_mapping = 2; + + // Required. Standard field mask for the set of fields to be updated. + google.protobuf.FieldMask update_mask = 3; +} + +// Request message for `DomainMappings.DeleteDomainMapping`. +message DeleteDomainMappingRequest { + // Name of the resource to delete. Example: + // `apps/myapp/domainMappings/example.com`. + string name = 1; +} diff --git a/google/appengine/v1/appengine_v1.yaml b/google/appengine/v1/appengine_v1.yaml index 8bf777728..d35731835 100644 --- a/google/appengine/v1/appengine_v1.yaml +++ b/google/appengine/v1/appengine_v1.yaml @@ -46,10 +46,16 @@ backend: deadline: 30.0 - selector: 'google.appengine.v1.AuthorizedCertificates.*' deadline: 30.0 + - selector: google.appengine.v1.AuthorizedCertificates.GetAuthorizedCertificate + deadline: 60.0 - selector: google.appengine.v1.AuthorizedDomains.ListAuthorizedDomains deadline: 30.0 - selector: 'google.appengine.v1.DomainMappings.*' deadline: 30.0 + - selector: google.appengine.v1.DomainMappings.GetDomainMapping + deadline: 60.0 + - selector: google.appengine.v1.DomainMappings.ListDomainMappings + deadline: 60.0 - selector: 'google.appengine.v1.Firewall.*' deadline: 30.0 - selector: 'google.appengine.v1.Instances.*' diff --git a/google/appengine/v1/application.proto b/google/appengine/v1/application.proto index ca4e6b0bc..bc9c3f5dc 100644 --- a/google/appengine/v1/application.proto +++ b/google/appengine/v1/application.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; @@ -30,6 +29,20 @@ option ruby_package = "Google::Cloud::AppEngine::V1"; // An Application resource contains the top-level configuration of an App // Engine application. message Application { + enum ServingStatus { + // Serving status is unspecified. + UNSPECIFIED = 0; + + // Application is serving. + SERVING = 1; + + // Application has been disabled by the user. + USER_DISABLED = 2; + + // Application has been disabled by the system. + SYSTEM_DISABLED = 3; + } + // Identity-Aware Proxy message IdentityAwareProxy { // Whether the serving infrastructure will authenticate and @@ -57,6 +70,20 @@ message Application { string oauth2_client_secret_sha256 = 4; } + enum DatabaseType { + // Database type is unspecified. + DATABASE_TYPE_UNSPECIFIED = 0; + + // Cloud Datastore + CLOUD_DATASTORE = 1; + + // Cloud Firestore Native + CLOUD_FIRESTORE = 2; + + // Cloud Firestore in Datastore Mode + CLOUD_DATASTORE_COMPATIBILITY = 3; + } + // The feature specific settings to be used in the application. These define // behaviors that are user configurable. message FeatureSettings { @@ -73,34 +100,6 @@ message Application { bool use_container_optimized_os = 2; } - enum ServingStatus { - // Serving status is unspecified. - UNSPECIFIED = 0; - - // Application is serving. - SERVING = 1; - - // Application has been disabled by the user. - USER_DISABLED = 2; - - // Application has been disabled by the system. - SYSTEM_DISABLED = 3; - } - - enum DatabaseType { - // Database type is unspecified. - DATABASE_TYPE_UNSPECIFIED = 0; - - // Cloud Datastore - CLOUD_DATASTORE = 1; - - // Cloud Firestore Native - CLOUD_FIRESTORE = 2; - - // Cloud Firestore in Datastore Mode - CLOUD_DATASTORE_COMPATIBILITY = 3; - } - // Full path to the Application resource in the API. // Example: `apps/myapp`. // @@ -158,6 +157,11 @@ message Application { // @OutputOnly string default_bucket = 12; + // The service account associated with the application. + // This is the app-level default identity. If no identity provided during + // create version, Admin API will fallback to this one. + string service_account = 13; + IdentityAwareProxy iap = 14; // The Google Container Registry domain used for storing managed build docker diff --git a/google/appengine/v1/audit_data.proto b/google/appengine/v1/audit_data.proto index 101dd71c7..d839280df 100644 --- a/google/appengine/v1/audit_data.proto +++ b/google/appengine/v1/audit_data.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1; import "google/appengine/v1/appengine.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; diff --git a/google/appengine/v1/certificate.proto b/google/appengine/v1/certificate.proto index 9ce5e72da..037465be7 100644 --- a/google/appengine/v1/certificate.proto +++ b/google/appengine/v1/certificate.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; diff --git a/google/appengine/v1/deploy.proto b/google/appengine/v1/deploy.proto index 4d9d2c169..8796ec1f5 100644 --- a/google/appengine/v1/deploy.proto +++ b/google/appengine/v1/deploy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; diff --git a/google/appengine/v1/deployed_files.proto b/google/appengine/v1/deployed_files.proto index b9024c867..67e9b703b 100644 --- a/google/appengine/v1/deployed_files.proto +++ b/google/appengine/v1/deployed_files.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.appengine.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; option java_multiple_files = true; diff --git a/google/appengine/v1/domain.proto b/google/appengine/v1/domain.proto index 70951382c..cd39adfbe 100644 --- a/google/appengine/v1/domain.proto +++ b/google/appengine/v1/domain.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.appengine.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; option java_multiple_files = true; diff --git a/google/appengine/v1/domain_mapping.proto b/google/appengine/v1/domain_mapping.proto index d0cfec75b..f307217a3 100644 --- a/google/appengine/v1/domain_mapping.proto +++ b/google/appengine/v1/domain_mapping.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.appengine.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; option java_multiple_files = true; diff --git a/google/appengine/v1/firewall.proto b/google/appengine/v1/firewall.proto index ba4e96340..d7172f7ee 100644 --- a/google/appengine/v1/firewall.proto +++ b/google/appengine/v1/firewall.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.appengine.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; option java_multiple_files = true; diff --git a/google/appengine/v1/instance.proto b/google/appengine/v1/instance.proto index d2f314f87..59b2e5c92 100644 --- a/google/appengine/v1/instance.proto +++ b/google/appengine/v1/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.appengine.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; @@ -37,6 +36,15 @@ message Instance { pattern: "apps/{app}/services/{service}/versions/{version}/instances/{instance}" }; + // Availability of the instance. + enum Availability { + UNSPECIFIED = 0; + + RESIDENT = 1; + + DYNAMIC = 2; + } + // Wrapper for LivenessState enum. message Liveness { // Liveness health check status for Flex instances. @@ -71,15 +79,6 @@ message Instance { } - // Availability of the instance. - enum Availability { - UNSPECIFIED = 0; - - RESIDENT = 1; - - DYNAMIC = 2; - } - // Output only. Full path to the Instance resource in the API. // Example: `apps/myapp/services/default/versions/v1/instances/instance-1`. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/appengine/v1/location.proto b/google/appengine/v1/location.proto index f150188f1..995a5ff65 100644 --- a/google/appengine/v1/location.proto +++ b/google/appengine/v1/location.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; diff --git a/google/appengine/v1/network_settings.proto b/google/appengine/v1/network_settings.proto index b6dab2126..2645e8c8d 100644 --- a/google/appengine/v1/network_settings.proto +++ b/google/appengine/v1/network_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.appengine.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; option java_multiple_files = true; diff --git a/google/appengine/v1/operation.proto b/google/appengine/v1/operation.proto index a8d4f7cd0..a2636cb7c 100644 --- a/google/appengine/v1/operation.proto +++ b/google/appengine/v1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,7 @@ syntax = "proto3"; package google.appengine.v1; -import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; diff --git a/google/appengine/v1/service.proto b/google/appengine/v1/service.proto index 7c03d835b..b3ed6def1 100644 --- a/google/appengine/v1/service.proto +++ b/google/appengine/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1; import "google/appengine/v1/network_settings.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; @@ -51,6 +50,19 @@ message Service { // different versions within the service. TrafficSplit split = 3; + // A set of labels to apply to this service. Labels are key/value pairs that + // describe the service and all resources that belong to it (e.g., + // versions). The labels can be used to search and group resources, and are + // propagated to the usage and billing reports, enabling fine-grain analysis + // of costs. An example of using labels is to tag resources belonging to + // different environments (e.g., "env=prod", "env=qa"). + // + //

Label keys and values can be no longer than 63 characters and can only + // contain lowercase letters, numeric characters, underscores, dashes, and + // international characters. Label keys must start with a lowercase letter + // or an international character. Each service can have at most 32 labels. + map labels = 4; + // Ingress settings for this service. Will apply to all versions. NetworkSettings network_settings = 6; } diff --git a/google/appengine/v1/version.proto b/google/appengine/v1/version.proto index 4f253b02b..2caab513c 100644 --- a/google/appengine/v1/version.proto +++ b/google/appengine/v1/version.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ package google.appengine.v1; import "google/appengine/v1/app_yaml.proto"; import "google/appengine/v1/deploy.proto"; -import "google/appengine/v1/network_settings.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; @@ -104,6 +102,10 @@ message Version { // Whether to deploy this version in a container on a virtual machine. bool vm = 12; + // Allows App Engine second generation runtimes to access the legacy bundled + // services. + bool app_engine_apis = 128; + // Metadata settings that are supplied to this version to enable // beta runtime features. map beta_settings = 13; @@ -511,22 +513,6 @@ message Resources { string kms_key_reference = 5; } -// VPC access connector specification. -message VpcAccessConnector { - // Full Serverless VPC Access Connector name e.g. - // /projects/my-project/locations/us-central1/connectors/c1. - string name = 1; -} - -// The entrypoint for the application. -message Entrypoint { - // The command to run. - oneof command { - // The format should be a shell command that can be fed to `bash -c`. - string shell = 1; - } -} - // Available inbound services. enum InboundServiceType { // Not specified. @@ -572,3 +558,37 @@ enum ServingStatus { // to `SERVING`. STOPPED = 2; } + +// VPC access connector specification. +message VpcAccessConnector { + // Available egress settings. + // + // This controls what traffic is diverted through the VPC Access Connector + // resource. By default PRIVATE_IP_RANGES will be used. + enum EgressSetting { + EGRESS_SETTING_UNSPECIFIED = 0; + + // Force the use of VPC Access for all egress traffic from the function. + ALL_TRAFFIC = 1; + + // Use the VPC Access Connector for private IP space from RFC1918. + PRIVATE_IP_RANGES = 2; + } + + // Full Serverless VPC Access Connector name e.g. + // /projects/my-project/locations/us-central1/connectors/c1. + string name = 1; + + // The egress setting for the connector, controlling what traffic is diverted + // through it. + EgressSetting egress_setting = 2; +} + +// The entrypoint for the application. +message Entrypoint { + // The command to run. + oneof command { + // The format should be a shell command that can be fed to `bash -c`. + string shell = 1; + } +} diff --git a/google/appengine/v1beta/app_yaml.proto b/google/appengine/v1beta/app_yaml.proto index d4cb4458f..a18e9d588 100644 --- a/google/appengine/v1beta/app_yaml.proto +++ b/google/appengine/v1beta/app_yaml.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1beta; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/application.proto b/google/appengine/v1beta/application.proto index 34cb1e413..f99046dc7 100644 --- a/google/appengine/v1beta/application.proto +++ b/google/appengine/v1beta/application.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1beta; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/audit_data.proto b/google/appengine/v1beta/audit_data.proto index 897154efc..254a46ddf 100644 --- a/google/appengine/v1beta/audit_data.proto +++ b/google/appengine/v1beta/audit_data.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1beta; import "google/appengine/v1beta/appengine.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/certificate.proto b/google/appengine/v1beta/certificate.proto index 9cb25399b..fda072de1 100644 --- a/google/appengine/v1beta/certificate.proto +++ b/google/appengine/v1beta/certificate.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1beta; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/deploy.proto b/google/appengine/v1beta/deploy.proto index 09f6b19f9..4714915a3 100644 --- a/google/appengine/v1beta/deploy.proto +++ b/google/appengine/v1beta/deploy.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1beta; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/domain.proto b/google/appengine/v1beta/domain.proto index dd434ba06..94bbcd9cb 100644 --- a/google/appengine/v1beta/domain.proto +++ b/google/appengine/v1beta/domain.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.appengine.v1beta; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/domain_mapping.proto b/google/appengine/v1beta/domain_mapping.proto index f2527129d..9a0bebc75 100644 --- a/google/appengine/v1beta/domain_mapping.proto +++ b/google/appengine/v1beta/domain_mapping.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.appengine.v1beta; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/firewall.proto b/google/appengine/v1beta/firewall.proto index 95b43aae8..f853327c8 100644 --- a/google/appengine/v1beta/firewall.proto +++ b/google/appengine/v1beta/firewall.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.appengine.v1beta; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/instance.proto b/google/appengine/v1beta/instance.proto index d9e7154f0..f54445081 100644 --- a/google/appengine/v1beta/instance.proto +++ b/google/appengine/v1beta/instance.proto @@ -19,7 +19,6 @@ package google.appengine.v1beta; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/location.proto b/google/appengine/v1beta/location.proto index d708c2614..e4689d230 100644 --- a/google/appengine/v1beta/location.proto +++ b/google/appengine/v1beta/location.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1beta; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/network_settings.proto b/google/appengine/v1beta/network_settings.proto index 3bc42ae92..1e84f69f8 100644 --- a/google/appengine/v1beta/network_settings.proto +++ b/google/appengine/v1beta/network_settings.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.appengine.v1beta; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/operation.proto b/google/appengine/v1beta/operation.proto index 3e9422fa9..10c5ea31a 100644 --- a/google/appengine/v1beta/operation.proto +++ b/google/appengine/v1beta/operation.proto @@ -16,9 +16,7 @@ syntax = "proto3"; package google.appengine.v1beta; -import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/service.proto b/google/appengine/v1beta/service.proto index 1e65409ae..7c4a2a88b 100644 --- a/google/appengine/v1beta/service.proto +++ b/google/appengine/v1beta/service.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.appengine.v1beta; import "google/appengine/v1beta/network_settings.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/appengine/v1beta/version.proto b/google/appengine/v1beta/version.proto index 39f93b98d..e32f2d26f 100644 --- a/google/appengine/v1beta/version.proto +++ b/google/appengine/v1beta/version.proto @@ -21,7 +21,6 @@ import "google/appengine/v1beta/deploy.proto"; import "google/appengine/v1beta/network_settings.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine"; diff --git a/google/apps/alertcenter/v1beta1/BUILD.bazel b/google/apps/alertcenter/v1beta1/BUILD.bazel index 33820b5f1..d83f6f71e 100644 --- a/google/apps/alertcenter/v1beta1/BUILD.bazel +++ b/google/apps/alertcenter/v1beta1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":alertcenter_java_grpc", ], + transport = "grpc+rest", deps = [ ":alertcenter_java_proto", ], @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "alertcenter_java_gapic_test_suite", test_classes = [ + "com.google.apps.alertcenter.v1beta1.AlertCenterServiceClientHttpJsonTest", "com.google.apps.alertcenter.v1beta1.AlertCenterServiceClientTest", ], runtime_deps = [":alertcenter_java_gapic_test"], @@ -88,6 +90,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-apps-alertcenter-v1beta1-java", + transport = "grpc+rest", deps = [ ":alertcenter_java_gapic", ":alertcenter_java_grpc", @@ -123,8 +126,9 @@ go_gapic_library( srcs = [":alertcenter_proto_with_info"], grpc_service_config = "alertcenter_grpc_service_config.json", importpath = "google.golang.org/google/apps/alertcenter/v1beta1;alertcenter", - service_yaml = "alertcenter.yaml", metadata = True, + service_yaml = "alertcenter.yaml", + transport = "grpc+rest", deps = [ ":alertcenter_go_proto", ], @@ -142,8 +146,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-apps-alertcenter-v1beta1-go", deps = [ ":alertcenter_go_gapic", - ":alertcenter_go_gapic_srcjar-test.srcjar", ":alertcenter_go_gapic_srcjar-metadata.srcjar", + ":alertcenter_go_gapic_srcjar-test.srcjar", ":alertcenter_go_proto", ], ) @@ -155,12 +159,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "alertcenter_py_gapic", srcs = [":alertcenter_proto"], grpc_service_config = "alertcenter_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "alertcenter_py_gapic_test", + srcs = [ + "alertcenter_py_gapic_pytest.py", + "alertcenter_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":alertcenter_py_gapic"], ) # Open Source Packages @@ -247,8 +263,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -314,6 +330,7 @@ csharp_gapic_library( srcs = [":alertcenter_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "alertcenter_grpc_service_config.json", + service_yaml = "alertcenter.yaml", deps = [ ":alertcenter_csharp_grpc", ":alertcenter_csharp_proto", diff --git a/google/apps/alertcenter/v1beta1/alertcenter.proto b/google/apps/alertcenter/v1beta1/alertcenter.proto index 7557e59c5..916633232 100644 --- a/google/apps/alertcenter/v1beta1/alertcenter.proto +++ b/google/apps/alertcenter/v1beta1/alertcenter.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.apps.alertcenter.v1beta1; import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; import "google/protobuf/any.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/apps/drive/activity/v2/BUILD.bazel b/google/apps/drive/activity/v2/BUILD.bazel index 084ccc571..d25367d1b 100644 --- a/google/apps/drive/activity/v2/BUILD.bazel +++ b/google/apps/drive/activity/v2/BUILD.bazel @@ -70,18 +70,24 @@ java_grpc_library( java_gapic_library( name = "activity_java_gapic", srcs = [":activity_proto_with_info"], + gapic_yaml = None, grpc_service_config = "driveactivity_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "driveactivity_v2.yaml", test_deps = [ ":activity_java_grpc", ], + transport = "grpc+rest", deps = [ ":activity_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "activity_java_gapic_test_suite", test_classes = [ + "com.google.apps.drive.activity.v2.DriveActivityServiceClientHttpJsonTest", "com.google.apps.drive.activity.v2.DriveActivityServiceClientTest", ], runtime_deps = [":activity_java_gapic_test"], @@ -90,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-drive-activity-v2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":activity_java_gapic", ":activity_java_grpc", @@ -125,7 +133,9 @@ go_gapic_library( grpc_service_config = "driveactivity_grpc_service_config.json", importpath = "google.golang.org/google/apps/drive/activity/v2;activity", metadata = True, + rest_numeric_enums = False, service_yaml = "driveactivity_v2.yaml", + transport = "grpc+rest", deps = [ ":activity_go_proto", ], @@ -156,12 +166,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "activity_py_gapic", srcs = [":activity_proto"], grpc_service_config = "driveactivity_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "driveactivity_v2.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "activity_py_gapic_test", + srcs = [ + "activity_py_gapic_pytest.py", + "activity_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":activity_py_gapic"], ) # Open Source Packages @@ -198,6 +224,8 @@ php_gapic_library( name = "activity_php_gapic", srcs = [":activity_proto_with_info"], grpc_service_config = "driveactivity_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "driveactivity_v2.yaml", deps = [ ":activity_php_grpc", ":activity_php_proto", @@ -230,6 +258,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "driveactivity_grpc_service_config.json", package = "google.apps.drive.activity.v2", + rest_numeric_enums = False, service_yaml = "driveactivity_v2.yaml", deps = [], ) @@ -269,6 +298,8 @@ ruby_cloud_gapic_library( srcs = [":activity_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-apps-drive-activity-v2"], grpc_service_config = "driveactivity_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "driveactivity_v2.yaml", deps = [ ":activity_ruby_grpc", ":activity_ruby_proto", @@ -312,6 +343,8 @@ csharp_gapic_library( srcs = [":activity_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "driveactivity_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "driveactivity_v2.yaml", deps = [ ":activity_csharp_grpc", ":activity_csharp_proto", diff --git a/google/apps/drive/activity/v2/action.proto b/google/apps/drive/activity/v2/action.proto index 422465c82..b1398c953 100644 --- a/google/apps/drive/activity/v2/action.proto +++ b/google/apps/drive/activity/v2/action.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -88,6 +88,9 @@ message ActionDetail { // Settings were changed. SettingsChange settings_change = 13; + + // Label was changed. + AppliedLabelChange applied_label_change = 19; } } @@ -192,11 +195,6 @@ message PermissionChange { // The permission setting of an object. message Permission { - // Represents any user (including a logged out user). - message Anyone { - - } - // The [Google Drive permissions // roles](https://developers.google.com/drive/web/manage-sharing#roles). enum Role { @@ -230,6 +228,11 @@ message Permission { PUBLISHED_VIEWER = 7; } + // Represents any user (including a logged out user). + message Anyone { + + } + // Indicates the // [Google Drive permissions // role](https://developers.google.com/drive/web/manage-sharing#roles). The @@ -458,3 +461,146 @@ message SettingsChange { // The set of changes made to restrictions. repeated RestrictionChange restriction_changes = 1; } + +// Label changes that were made on the Target. +message AppliedLabelChange { + // A change made to a Label on the Target. + message AppliedLabelChangeDetail { + // Change to a Field value. + message FieldValueChange { + // Contains a value of a Field. + message FieldValue { + // Wrapper for Text Field value. + message Text { + // Value of Text Field. + optional string value = 1; + } + + // Wrapper for Text List Field value. + message TextList { + // Text values. + repeated Text values = 1; + } + + // Wrapper for Selection Field value as combined value/display_name + // pair for selected choice. + message Selection { + // Selection value as Field Choice ID. + optional string value = 1; + + // Selection value as human-readable display string. + optional string display_name = 2; + } + + // Wrapper for SelectionList Field value. + message SelectionList { + // Selection values. + repeated Selection values = 1; + } + + // Wrapper for Integer Field value. + message Integer { + // Integer value. + optional int64 value = 1; + } + + // Wrapper for User Field value. + message SingleUser { + // User value as email. + optional string value = 1; + } + + // Wrapper for UserList Field value. + message UserList { + // User values. + repeated SingleUser values = 1; + } + + // Wrapper for Date Field value. + message Date { + // Date value. + optional google.protobuf.Timestamp value = 1; + } + + // Field values for all Field types. + oneof value { + // Text Field value. + Text text = 1; + + // Text List Field value. + TextList text_list = 3; + + // Selection Field value. + Selection selection = 4; + + // Selection List Field value. + SelectionList selection_list = 5; + + // Integer Field value. + Integer integer = 6; + + // User Field value. + SingleUser user = 7; + + // User List Field value. + UserList user_list = 8; + + // Date Field value. + Date date = 9; + } + } + + // The ID of this field. Field IDs are unique within a Label. + optional string field_id = 1; + + // The value that was previously set on the field. If not present, + // the field was newly set. At least one of {old_value|new_value} is + // always set. + optional FieldValue old_value = 2; + + // The value that is now set on the field. If not present, the field was + // cleared. At least one of {old_value|new_value} is always set. + optional FieldValue new_value = 3; + + // The human-readable display name for this field. + optional string display_name = 4; + } + + // The type of Label change + enum Type { + // The type of change to this Label is not available. + TYPE_UNSPECIFIED = 0; + + // The identified Label was added to the Target. + LABEL_ADDED = 1; + + // The identified Label was removed from the Target. + LABEL_REMOVED = 2; + + // Field values were changed on the Target. + LABEL_FIELD_VALUE_CHANGED = 3; + + // The Label was applied as a side-effect of Drive item creation. + LABEL_APPLIED_BY_ITEM_CREATE = 4; + } + + // The Label name representing the Label that changed. + // This name always contains the revision of the Label that was used + // when this Action occurred. The format is + // `labels/id@revision`. + string label = 1; + + // The types of changes made to the Label on the Target. + repeated Type types = 2; + + // The human-readable title of the label that changed. + string title = 3; + + // Field Changes. Only present if `types` contains + // `LABEL_FIELD_VALUE_CHANGED`. + repeated FieldValueChange field_changes = 4; + } + + // Changes that were made to the Label on the Target. + repeated AppliedLabelChangeDetail changes = 1; +} diff --git a/google/apps/drive/activity/v2/actor.proto b/google/apps/drive/activity/v2/actor.proto index da2d12f38..5a65ed0e4 100644 --- a/google/apps/drive/activity/v2/actor.proto +++ b/google/apps/drive/activity/v2/actor.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.apps.drive.activity.v2; -import "google/apps/drive/activity/v2/common.proto"; - option csharp_namespace = "Google.Apps.Drive.Activity.V2"; option go_package = "google.golang.org/genproto/googleapis/apps/drive/activity/v2;activity"; option java_multiple_files = true; diff --git a/google/apps/drive/activity/v2/common.proto b/google/apps/drive/activity/v2/common.proto index 75a1fbcb7..cf1a6b2ad 100644 --- a/google/apps/drive/activity/v2/common.proto +++ b/google/apps/drive/activity/v2/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/apps/drive/activity/v2/drive_activity_service.proto b/google/apps/drive/activity/v2/drive_activity_service.proto index 849ac49f0..f54760c55 100644 --- a/google/apps/drive/activity/v2/drive_activity_service.proto +++ b/google/apps/drive/activity/v2/drive_activity_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,9 +17,9 @@ syntax = "proto3"; package google.apps.drive.activity.v2; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/apps/drive/activity/v2/query_drive_activity_request.proto"; import "google/apps/drive/activity/v2/query_drive_activity_response.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Apps.Drive.Activity.V2"; option go_package = "google.golang.org/genproto/googleapis/apps/drive/activity/v2;activity"; diff --git a/google/apps/drive/activity/v2/query_drive_activity_request.proto b/google/apps/drive/activity/v2/query_drive_activity_request.proto index 9985107e4..59d8087d3 100644 --- a/google/apps/drive/activity/v2/query_drive_activity_request.proto +++ b/google/apps/drive/activity/v2/query_drive_activity_request.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -73,6 +73,7 @@ message QueryDriveActivityRequest { // - `detail.action_detail_case: RENAME` // - `detail.action_detail_case:(CREATE EDIT)` // - `-detail.action_detail_case:MOVE` + // string filter = 8; } diff --git a/google/apps/drive/activity/v2/query_drive_activity_response.proto b/google/apps/drive/activity/v2/query_drive_activity_response.proto index 08cbe8e15..61ca30ed5 100644 --- a/google/apps/drive/activity/v2/query_drive_activity_response.proto +++ b/google/apps/drive/activity/v2/query_drive_activity_response.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/apps/drive/activity/v2/target.proto b/google/apps/drive/activity/v2/target.proto index 75dcd5b94..f6967fcee 100644 --- a/google/apps/drive/activity/v2/target.proto +++ b/google/apps/drive/activity/v2/target.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/apps/market/v2/BUILD.bazel b/google/apps/market/v2/BUILD.bazel index f385d4ae1..32b1c8cdd 100644 --- a/google/apps/market/v2/BUILD.bazel +++ b/google/apps/market/v2/BUILD.bazel @@ -68,6 +68,7 @@ java_gapic_library( test_deps = [ ":marketplace_java_grpc", ], + transport = "grpc+rest", deps = [ ":marketplace_java_proto", ], @@ -76,8 +77,11 @@ java_gapic_library( 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"], @@ -86,6 +90,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-hosted-marketplace-v2-java", + transport = "grpc+rest", deps = [ ":marketplace_java_gapic", ":marketplace_java_grpc", @@ -152,12 +157,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "marketplace_py_gapic", srcs = [":marketplace_proto"], grpc_service_config = "service_grpc_service_config.json", + transport = "grpc", +) + +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 @@ -310,6 +327,7 @@ csharp_gapic_library( srcs = [":marketplace_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "service_grpc_service_config.json", + service_yaml = "appsmarket_v2.yaml", deps = [ ":marketplace_csharp_grpc", ":marketplace_csharp_proto", diff --git a/google/apps/market/v2/resources.proto b/google/apps/market/v2/resources.proto index c133d4858..782edab30 100644 --- a/google/apps/market/v2/resources.proto +++ b/google/apps/market/v2/resources.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package ccc.hosted.marketplace.v2; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/ccc/hosted/marketplace/v2;marketplace"; option java_multiple_files = true; diff --git a/google/apps/script/type/BUILD.bazel b/google/apps/script/type/BUILD.bazel index 2dd3aa8b0..619630a68 100644 --- a/google/apps/script/type/BUILD.bazel +++ b/google/apps/script/type/BUILD.bazel @@ -58,6 +58,7 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-script-type-java", + transport = "grpc+rest", deps = [ ":type_java_grpc", ":type_java_proto", @@ -86,6 +87,11 @@ py_proto_library( deps = [":type_moved_proto"], ) +py_proto_library( + name = "type_py_original_proto", + deps = [":type_proto"], +) + py_grpc_library( name = "type_py_grpc", srcs = [":type_moved_proto"], diff --git a/google/apps/script/type/calendar/BUILD.bazel b/google/apps/script/type/calendar/BUILD.bazel index 18a160348..7e70f9707 100644 --- a/google/apps/script/type/calendar/BUILD.bazel +++ b/google/apps/script/type/calendar/BUILD.bazel @@ -13,9 +13,9 @@ load( "csharp_grpc_library", "csharp_proto_library", "go_proto_library", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg", "moved_proto_library", "php_grpc_library", "php_proto_library", @@ -55,9 +55,10 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-script-type-calendar-java", + transport = "grpc+rest", deps = [ - ":calendar_java_proto", ":calendar_java_grpc", + ":calendar_java_proto", ":calendar_proto", ], ) @@ -87,6 +88,11 @@ py_proto_library( deps = [":calendar_moved_proto"], ) +py_proto_library( + name = "calendar_py_original_proto", + deps = [":calendar_proto"], +) + py_grpc_library( name = "calendar_py_grpc", srcs = [":calendar_moved_proto"], diff --git a/google/apps/script/type/docs/BUILD.bazel b/google/apps/script/type/docs/BUILD.bazel index bf87cd484..e82d088e8 100644 --- a/google/apps/script/type/docs/BUILD.bazel +++ b/google/apps/script/type/docs/BUILD.bazel @@ -13,9 +13,9 @@ load( "csharp_grpc_library", "csharp_proto_library", "go_proto_library", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg", "moved_proto_library", "php_grpc_library", "php_proto_library", @@ -55,9 +55,10 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-script-type-docs-java", + transport = "grpc+rest", deps = [ - ":docs_java_proto", ":docs_java_grpc", + ":docs_java_proto", ":docs_proto", ], ) @@ -87,6 +88,11 @@ py_proto_library( deps = [":docs_moved_proto"], ) +py_proto_library( + name = "docs_py_original_proto", + deps = [":docs_proto"], +) + py_grpc_library( name = "docs_py_grpc", srcs = [":docs_moved_proto"], diff --git a/google/apps/script/type/drive/BUILD.bazel b/google/apps/script/type/drive/BUILD.bazel index c63487ba6..817fd1226 100644 --- a/google/apps/script/type/drive/BUILD.bazel +++ b/google/apps/script/type/drive/BUILD.bazel @@ -13,9 +13,9 @@ load( "csharp_grpc_library", "csharp_proto_library", "go_proto_library", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg", "moved_proto_library", "php_grpc_library", "php_proto_library", @@ -54,9 +54,10 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-script-type-drive-java", + transport = "grpc+rest", deps = [ - ":drive_java_proto", ":drive_java_grpc", + ":drive_java_proto", ":drive_proto", ], ) @@ -84,6 +85,11 @@ py_proto_library( deps = [":drive_moved_proto"], ) +py_proto_library( + name = "drive_py_original_proto", + deps = [":drive_proto"], +) + py_grpc_library( name = "drive_py_grpc", srcs = [":drive_moved_proto"], diff --git a/google/apps/script/type/gmail/BUILD.bazel b/google/apps/script/type/gmail/BUILD.bazel index 1990f63f2..b5d48c4ff 100644 --- a/google/apps/script/type/gmail/BUILD.bazel +++ b/google/apps/script/type/gmail/BUILD.bazel @@ -13,9 +13,9 @@ load( "csharp_grpc_library", "csharp_proto_library", "go_proto_library", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg", "moved_proto_library", "php_grpc_library", "php_proto_library", @@ -55,14 +55,14 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-script-type-gmail-java", + transport = "grpc+rest", deps = [ - ":gmail_java_proto", ":gmail_java_grpc", + ":gmail_java_proto", ":gmail_proto", ], ) - go_proto_library( name = "gmail_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], @@ -87,6 +87,11 @@ py_proto_library( deps = [":gmail_moved_proto"], ) +py_proto_library( + name = "gmail_py_original_proto", + deps = [":gmail_proto"], +) + py_grpc_library( name = "gmail_py_grpc", srcs = [":gmail_moved_proto"], diff --git a/google/apps/script/type/gmail/gmail_addon_manifest.proto b/google/apps/script/type/gmail/gmail_addon_manifest.proto index 293899786..eda200782 100644 --- a/google/apps/script/type/gmail/gmail_addon_manifest.proto +++ b/google/apps/script/type/gmail/gmail_addon_manifest.proto @@ -18,7 +18,6 @@ package google.apps.script.type.gmail; import "google/apps/script/type/addon_widget_set.proto"; import "google/apps/script/type/extension_point.proto"; -import "google/protobuf/struct.proto"; option csharp_namespace = "Google.Apps.Script.Type.Gmail"; option go_package = "google.golang.org/genproto/googleapis/apps/script/type/gmail"; diff --git a/google/apps/script/type/sheets/BUILD.bazel b/google/apps/script/type/sheets/BUILD.bazel index 94ba71efa..d85c73842 100644 --- a/google/apps/script/type/sheets/BUILD.bazel +++ b/google/apps/script/type/sheets/BUILD.bazel @@ -13,9 +13,9 @@ load( "csharp_grpc_library", "csharp_proto_library", "go_proto_library", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg", "moved_proto_library", "php_grpc_library", "php_proto_library", @@ -55,9 +55,10 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-script-type-sheets-java", + transport = "grpc+rest", deps = [ - ":sheets_java_proto", ":sheets_java_grpc", + ":sheets_java_proto", ":sheets_proto", ], ) @@ -87,6 +88,11 @@ py_proto_library( deps = [":sheets_moved_proto"], ) +py_proto_library( + name = "sheets_py_original_proto", + deps = [":sheets_proto"], +) + py_grpc_library( name = "sheets_py_grpc", srcs = [":sheets_moved_proto"], diff --git a/google/apps/script/type/slides/BUILD.bazel b/google/apps/script/type/slides/BUILD.bazel index 95ff616a4..37d8ff599 100644 --- a/google/apps/script/type/slides/BUILD.bazel +++ b/google/apps/script/type/slides/BUILD.bazel @@ -13,9 +13,9 @@ load( "csharp_grpc_library", "csharp_proto_library", "go_proto_library", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg", "moved_proto_library", "php_grpc_library", "php_proto_library", @@ -55,9 +55,10 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-script-type-slides-java", + transport = "grpc+rest", deps = [ - ":slides_java_proto", ":slides_java_grpc", + ":slides_java_proto", ":slides_proto", ], ) @@ -87,6 +88,11 @@ py_proto_library( deps = [":slides_moved_proto"], ) +py_proto_library( + name = "slides_py_original_proto", + deps = [":slides_proto"], +) + py_grpc_library( name = "slides_py_grpc", srcs = [":slides_moved_proto"], diff --git a/google/area120/tables/v1alpha1/BUILD.bazel b/google/area120/tables/v1alpha1/BUILD.bazel index 7abbceaa0..3c635126c 100644 --- a/google/area120/tables/v1alpha1/BUILD.bazel +++ b/google/area120/tables/v1alpha1/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":tables_java_grpc", ], + transport = "grpc+rest", deps = [ ":tables_java_proto", ], @@ -81,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "tables_java_gapic_test_suite", test_classes = [ + "com.google.area120.tables.v1alpha.TablesServiceClientHttpJsonTest", "com.google.area120.tables.v1alpha.TablesServiceClientTest", ], runtime_deps = [":tables_java_gapic_test"], @@ -89,6 +91,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-area120-tables-v1alpha1-java", + transport = "grpc+rest", deps = [ ":tables_java_gapic", ":tables_java_grpc", @@ -124,6 +127,7 @@ go_gapic_library( grpc_service_config = "tables_grpc_service_config.json", importpath = "google.golang.org/google/area120/tables/v1alpha1;tables", service_yaml = "area120tables_v1alpha1.yaml", + transport = "grpc+rest", deps = [ ":tables_go_proto", ], @@ -153,12 +157,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "tables_py_gapic", srcs = [":tables_proto"], grpc_service_config = "tables_grpc_service_config.json", + transport = "grpc+rest", +) + +py_test( + name = "tables_py_gapic_test", + srcs = [ + "tables_py_gapic_pytest.py", + "tables_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":tables_py_gapic"], ) # Open Source Packages @@ -244,8 +260,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -263,7 +279,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "tables_ruby_gapic", - srcs = [":tables_proto_with_info",], + srcs = [":tables_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-area120-tables-v1alpha1", "ruby-cloud-env-prefix=AREA120_TABLES", @@ -317,6 +333,7 @@ csharp_gapic_library( srcs = [":tables_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "tables_grpc_service_config.json", + service_yaml = "area120tables_v1alpha1.yaml", deps = [ ":tables_csharp_grpc", ":tables_csharp_proto", diff --git a/google/bigtable/admin/v2/BUILD.bazel b/google/bigtable/admin/v2/BUILD.bazel index aa7d9be4b..8ec078912 100644 --- a/google/bigtable/admin/v2/BUILD.bazel +++ b/google/bigtable/admin/v2/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( ":admin_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc", deps = [ ":admin_java_proto", "//google/iam/v1:iam_java_proto", @@ -92,6 +93,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigtable-admin-v2-java", + transport = "grpc", deps = [ ":admin_java_gapic", ":admin_java_grpc", @@ -130,6 +132,7 @@ go_gapic_library( grpc_service_config = "bigtableadmin_grpc_service_config.json", importpath = "cloud.google.com/go/bigtable/admin/apiv2;admin", service_yaml = "bigtableadmin_v2.yaml", + transport = "grpc", deps = [ ":admin_go_proto", "//google/iam/v1:iam_go_proto", @@ -164,6 +167,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -173,7 +177,22 @@ py_gapic_library( opt_args = [ "python-gapic-namespace=google.cloud", "python-gapic-name=bigtable_admin", + "autogen-snippets=False", ], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "bigtable_admin_py_gapic_test", + srcs = [ + "bigtable_admin_py_gapic_pytest.py", + "bigtable_admin_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":bigtable_admin_py_gapic"], ) # Open Source Packages @@ -210,6 +229,7 @@ php_gapic_library( name = "admin_php_gapic", srcs = [":admin_proto_with_info"], gapic_yaml = "bigtableadmin_gapic.yaml", + service_yaml = "bigtableadmin_v2.yaml", deps = [ ":admin_php_grpc", ":admin_php_proto", @@ -334,6 +354,7 @@ csharp_gapic_library( srcs = [":admin_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigtableadmin_grpc_service_config.json", + service_yaml = "bigtableadmin_v2.yaml", deps = [ ":admin_csharp_grpc", ":admin_csharp_proto", diff --git a/google/bigtable/admin/v2/bigtable_instance_admin.proto b/google/bigtable/admin/v2/bigtable_instance_admin.proto index 76dbd914f..d7b2ead1c 100644 --- a/google/bigtable/admin/v2/bigtable_instance_admin.proto +++ b/google/bigtable/admin/v2/bigtable_instance_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -274,6 +274,15 @@ service BigtableInstanceAdmin { }; option (google.api.method_signature) = "resource,permissions"; } + + // Lists hot tablets in a cluster, within the time range provided. Hot + // tablets are ordered based on CPU usage. + rpc ListHotTablets(ListHotTabletsRequest) returns (ListHotTabletsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/instances/*/clusters/*}/hotTablets" + }; + option (google.api.method_signature) = "parent"; + } } // Request message for BigtableInstanceAdmin.CreateInstance. @@ -475,6 +484,37 @@ message UpdateInstanceMetadata { // The metadata for the Operation returned by CreateCluster. message CreateClusterMetadata { + // Progress info for copying a table's data to the new cluster. + message TableProgress { + enum State { + STATE_UNSPECIFIED = 0; + + // The table has not yet begun copying to the new cluster. + PENDING = 1; + + // The table is actively being copied to the new cluster. + COPYING = 2; + + // The table has been fully copied to the new cluster. + COMPLETED = 3; + + // The table was deleted before it finished copying to the new cluster. + // Note that tables deleted after completion will stay marked as + // COMPLETED, not CANCELLED. + CANCELLED = 4; + } + + // Estimate of the size of the table to be copied. + int64 estimated_size_bytes = 2; + + // Estimate of the number of bytes copied so far for this table. + // This will eventually reach 'estimated_size_bytes' unless the table copy + // is CANCELLED. + int64 estimated_copied_bytes = 3; + + State state = 4; + } + // The request that prompted the initiation of this CreateCluster operation. CreateClusterRequest original_request = 1; @@ -483,6 +523,16 @@ message CreateClusterMetadata { // The time at which the operation failed or was completed successfully. google.protobuf.Timestamp finish_time = 3; + + // Keys: the full `name` of each table that existed in the instance when + // CreateCluster was first called, i.e. + // `projects//instances//tables/`. Any table added + // to the instance by a later API call will be created in the new cluster by + // that API call, not this one. + // + // Values: information on how much of a table's data has been copied to the + // newly-created cluster so far. + map tables = 4; } // The metadata for the Operation returned by UpdateCluster. @@ -634,3 +684,56 @@ message DeleteAppProfileRequest { message UpdateAppProfileMetadata { } + +// Request message for BigtableInstanceAdmin.ListHotTablets. +message ListHotTabletsRequest { + // Required. The cluster name to list hot tablets. + // Value is in the following form: + // `projects/{project}/instances/{instance}/clusters/{cluster}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/Cluster" + } + ]; + + // The start time to list hot tablets. The hot tablets in the response will + // have start times between the requested start time and end time. Start time + // defaults to Now if it is unset, and end time defaults to Now - 24 hours if + // it is unset. The start time should be less than the end time, and the + // maximum allowed time range between start time and end time is 48 hours. + // Start time and end time should have values between Now and Now - 14 days. + google.protobuf.Timestamp start_time = 2; + + // The end time to list hot tablets. + google.protobuf.Timestamp end_time = 3; + + // Maximum number of results per page. + // + // A page_size that is empty or 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 do not need a + // page_size field. If a page_size is set in subsequent calls, it must match + // the page_size given in the first request. + int32 page_size = 4; + + // The value of `next_page_token` returned by a previous call. + string page_token = 5; +} + +// Response message for BigtableInstanceAdmin.ListHotTablets. +message ListHotTabletsResponse { + // List of hot tablets in the tables of the requested cluster that fall + // within the requested time range. Hot tablets are ordered by node cpu usage + // percent. If there are multiple hot tablets that correspond to the same + // tablet within a 15-minute interval, only the hot tablet with the highest + // node cpu usage will be included in the response. + repeated HotTablet hot_tablets = 1; + + // Set if not all hot tablets 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; +} diff --git a/google/bigtable/admin/v2/bigtable_table_admin.proto b/google/bigtable/admin/v2/bigtable_table_admin.proto index 88bd87047..6a2d9eac9 100644 --- a/google/bigtable/admin/v2/bigtable_table_admin.proto +++ b/google/bigtable/admin/v2/bigtable_table_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -100,6 +100,19 @@ service BigtableTableAdmin { option (google.api.method_signature) = "name"; } + // Updates a specified table. + rpc UpdateTable(UpdateTableRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{table.name=projects/*/instances/*/tables/*}" + body: "table" + }; + option (google.api.method_signature) = "table,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Table" + metadata_type: "UpdateTableMetadata" + }; + } + // Permanently deletes a specified table and all of its data. rpc DeleteTable(DeleteTableRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -108,6 +121,19 @@ service BigtableTableAdmin { option (google.api.method_signature) = "name"; } + // Restores a specified table which was accidentally deleted. + rpc UndeleteTable(UndeleteTableRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/instances/*/tables/*}:undelete" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Table" + metadata_type: "UndeleteTableMetadata" + }; + } + // 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 @@ -566,6 +592,38 @@ message GetTableRequest { Table.View view = 2; } +// The request for +// [UpdateTable][google.bigtable.admin.v2.BigtableTableAdmin.UpdateTable]. +message UpdateTableRequest { + // Required. The table to update. + // The table's `name` field is used to identify the table to update. + Table table = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + // A mask specifying which fields (e.g. `deletion_protection`) in the `table` + // field should be updated. This mask is relative to the `table` field, not to + // the request message. The wildcard (*) path is currently not supported. + // Currently UpdateTable is only supported for the following field: + // * `deletion_protection` + // If `column_families` is set in `update_mask`, it will return an + // UNIMPLEMENTED error. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata type for the operation returned by +// [UpdateTable][google.bigtable.admin.v2.BigtableTableAdmin.UpdateTable]. +message UpdateTableMetadata { + // The name of the table being updated. + string name = 1; + + // The time at which this operation started. + google.protobuf.Timestamp start_time = 2; + + // If set, the time at which this operation finished or was canceled. + google.protobuf.Timestamp end_time = 3; +} + // Request message for // [google.bigtable.admin.v2.BigtableTableAdmin.DeleteTable][google.bigtable.admin.v2.BigtableTableAdmin.DeleteTable] message DeleteTableRequest { @@ -580,6 +638,33 @@ message DeleteTableRequest { ]; } +// Request message for +// [google.bigtable.admin.v2.BigtableTableAdmin.UndeleteTable][google.bigtable.admin.v2.BigtableTableAdmin.UndeleteTable] +message UndeleteTableRequest { + // Required. The unique name of the table to be restored. + // Values are of the form + // `projects/{project}/instances/{instance}/tables/{table}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/Table" + } + ]; +} + +// Metadata type for the operation returned by +// [google.bigtable.admin.v2.BigtableTableAdmin.UndeleteTable][google.bigtable.admin.v2.BigtableTableAdmin.UndeleteTable]. +message UndeleteTableMetadata { + // The name of the table being restored. + string name = 1; + + // The time at which this operation started. + google.protobuf.Timestamp start_time = 2; + + // If set, the time at which this operation finished or was cancelled. + google.protobuf.Timestamp end_time = 3; +} + // Request message for // [google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies][google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies] message ModifyColumnFamiliesRequest { @@ -588,7 +673,7 @@ message ModifyColumnFamiliesRequest { // The ID of the column family to be modified. string id = 1; - // Column familiy modifications. + // Column family modifications. oneof mod { // Create a new column family with the specified schema, or fail if // one already exists with the given ID. diff --git a/google/bigtable/admin/v2/bigtableadmin_grpc_service_config.json b/google/bigtable/admin/v2/bigtableadmin_grpc_service_config.json index 95ecf2536..cf8e3ff7e 100755 --- a/google/bigtable/admin/v2/bigtableadmin_grpc_service_config.json +++ b/google/bigtable/admin/v2/bigtableadmin_grpc_service_config.json @@ -105,6 +105,7 @@ ], "timeout": "60s", "retryPolicy": { + "maxAttempts": 5, "initialBackoff": "1s", "maxBackoff": "60s", "backoffMultiplier": 2, @@ -144,15 +145,15 @@ }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "GetCluster" + "method": "UpdateInstance" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "UpdateCluster" + "method": "PartialUpdateInstance" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "PartialUpdateCluster" + "method": "GetCluster" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", @@ -160,31 +161,31 @@ }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "GetAppProfile" + "method": "UpdateCluster" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "ListAppProfiles" + "method": "GetAppProfile" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "UpdateAppProfile" + "method": "ListAppProfiles" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "UpdateInstance" + "method": "UpdateAppProfile" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "PartialUpdateInstance" + "method": "GetIamPolicy" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "GetIamPolicy" + "method": "TestIamPermissions" }, { "service": "google.bigtable.admin.v2.BigtableInstanceAdmin", - "method": "TestIamPermissions" + "method": "ListHotTablets" } ], "timeout": "60s", diff --git a/google/bigtable/admin/v2/bigtableadmin_v2.yaml b/google/bigtable/admin/v2/bigtableadmin_v2.yaml index bb46f4dd6..b8f53f799 100644 --- a/google/bigtable/admin/v2/bigtableadmin_v2.yaml +++ b/google/bigtable/admin/v2/bigtableadmin_v2.yaml @@ -17,9 +17,11 @@ types: - name: google.bigtable.admin.v2.PartialUpdateClusterMetadata - name: google.bigtable.admin.v2.RestoreTableMetadata - name: google.bigtable.admin.v2.SnapshotTableMetadata +- name: google.bigtable.admin.v2.UndeleteTableMetadata - name: google.bigtable.admin.v2.UpdateAppProfileMetadata - name: google.bigtable.admin.v2.UpdateClusterMetadata - name: google.bigtable.admin.v2.UpdateInstanceMetadata +- name: google.bigtable.admin.v2.UpdateTableMetadata documentation: summary: Administer your Cloud Bigtable tables and instances. @@ -99,6 +101,16 @@ authentication: https://www.googleapis.com/auth/cloud-bigtable.admin.cluster, https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.bigtable.admin.v2.BigtableInstanceAdmin.ListHotTablets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigtable.admin, + https://www.googleapis.com/auth/bigtable.admin.cluster, + https://www.googleapis.com/auth/bigtable.admin.instance, + https://www.googleapis.com/auth/cloud-bigtable.admin, + https://www.googleapis.com/auth/cloud-bigtable.admin.cluster, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only - selector: google.bigtable.admin.v2.BigtableInstanceAdmin.ListInstances oauth: canonical_scopes: |- diff --git a/google/bigtable/admin/v2/common.proto b/google/bigtable/admin/v2/common.proto index 1d7782e67..0d337e6b5 100644 --- a/google/bigtable/admin/v2/common.proto +++ b/google/bigtable/admin/v2/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.bigtable.admin.v2; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2"; option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin"; diff --git a/google/bigtable/admin/v2/instance.proto b/google/bigtable/admin/v2/instance.proto index 2e61b0858..e7e73e00f 100644 --- a/google/bigtable/admin/v2/instance.proto +++ b/google/bigtable/admin/v2/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/bigtable/admin/v2/common.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2"; option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin"; @@ -69,19 +68,14 @@ message Instance { // on the cluster. PRODUCTION = 1; - // The instance is meant for development and testing purposes only; it has - // no performance or uptime guarantees and is not covered by SLA. - // After a development instance is created, it can be upgraded by - // updating the instance to type `PRODUCTION`. An instance created - // as a production instance cannot be changed to a development instance. - // When creating a development instance, `serve_nodes` on the cluster must - // not be set. + // DEPRECATED: Prefer PRODUCTION for all use cases, as it no longer enforces + // a higher minimum node count than DEVELOPMENT. DEVELOPMENT = 2; } // The unique name of the instance. Values are of the form // `projects/{project}/instances/[a-z][a-z0-9\\-]+[a-z0-9]`. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + string name = 1; // Required. The descriptive name for this instance as it appears in UIs. // Can be changed at any time, but should be kept globally unique @@ -112,14 +106,26 @@ message Instance { // For instances created before this field was added (August 2021), this value // is `seconds: 0, nanos: 1`. google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + optional bool satisfies_pzs = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The Autoscaling targets for a Cluster. These determine the recommended nodes. message AutoscalingTargets { // The cpu utilization that the Autoscaler should be trying to achieve. // This number is on a scale from 0 (no utilization) to - // 100 (total utilization). + // 100 (total utilization), and is limited between 10 and 80, otherwise it + // will return INVALID_ARGUMENT error. int32 cpu_utilization_percent = 2; + + // The storage utilization that the Autoscaler should be trying to achieve. + // This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD + // cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster; + // otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, + // it will be treated as if it were set to the default value: 2560 for SSD, + // 8192 for HDD. + int32 storage_utilization_gib_per_node = 3; } // Limits for the number of nodes a Cluster can autoscale up/down to. @@ -140,6 +146,31 @@ message Cluster { pattern: "projects/{project}/instances/{instance}/clusters/{cluster}" }; + // Possible states of a cluster. + enum State { + // The state of the cluster could not be determined. + STATE_NOT_KNOWN = 0; + + // The cluster has been successfully created and is ready to serve requests. + READY = 1; + + // The cluster is currently being created, and may be destroyed + // if the creation process encounters an error. + // A cluster may not be able to serve requests while being created. + CREATING = 2; + + // The cluster is currently being resized, and may revert to its previous + // node count if the process encounters an error. + // A cluster is still capable of serving requests while being resized, + // but may exhibit performance as if its number of allocated nodes is + // between the starting and requested states. + RESIZING = 3; + + // The cluster has no backing nodes. The data (tables) still + // exist, but no operations can be performed on the cluster. + DISABLED = 4; + } + // Autoscaling config for a cluster. message ClusterAutoscalingConfig { // Required. Autoscaling limits for this cluster. @@ -165,51 +196,30 @@ message Cluster { // `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. // 2) Only regional keys can be used and the region of the CMEK key must // match the region of the cluster. - // 3) All clusters within an instance must use the same CMEK key. + // 3) All clusters within an instance must use the same CMEK key. + // Values are of the form + // `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}` string kms_key_name = 1 [(google.api.resource_reference) = { - type: "cloudkms.googleapis.com/CryptoKey" - }]; - } - - // Possible states of a cluster. - enum State { - // The state of the cluster could not be determined. - STATE_NOT_KNOWN = 0; - - // The cluster has been successfully created and is ready to serve requests. - READY = 1; - - // The cluster is currently being created, and may be destroyed - // if the creation process encounters an error. - // A cluster may not be able to serve requests while being created. - CREATING = 2; - - // The cluster is currently being resized, and may revert to its previous - // node count if the process encounters an error. - // A cluster is still capable of serving requests while being resized, - // but may exhibit performance as if its number of allocated nodes is - // between the starting and requested states. - RESIZING = 3; - - // The cluster has no backing nodes. The data (tables) still - // exist, but no operations can be performed on the cluster. - DISABLED = 4; + type: "cloudkms.googleapis.com/CryptoKey" + }]; } // The unique name of the cluster. Values are of the form // `projects/{project}/instances/{instance}/clusters/[a-z][-a-z0-9]*`. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + string name = 1; - // (`CreationOnly`) - // The location where this cluster's nodes and storage reside. For best + // Immutable. The location where this cluster's nodes and storage reside. For best // performance, clients should be located as close as possible to this // cluster. Currently only zones are supported, so values should be of the // form `projects/{project}/locations/{zone}`. - string location = 2 [(google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - }]; - - // The current state of the cluster. + string location = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Output only. The current state of the cluster. State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // The number of nodes allocated to this cluster. More nodes enable higher @@ -221,14 +231,12 @@ message Cluster { ClusterConfig cluster_config = 7; } - // (`CreationOnly`) - // The type of storage used by this cluster to serve its + // Immutable. The type of storage used by this cluster to serve its // parent instance's tables, unless explicitly overridden. - StorageType default_storage_type = 5; + StorageType default_storage_type = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The encryption configuration for CMEK-protected clusters. - EncryptionConfig encryption_config = 6 - [(google.api.field_behavior) = IMMUTABLE]; + EncryptionConfig encryption_config = 6 [(google.api.field_behavior) = IMMUTABLE]; } // A configuration object describing how Cloud Bigtable should treat traffic @@ -263,7 +271,6 @@ message AppProfile { bool allow_transactional_writes = 2; } - // (`OutputOnly`) // 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; @@ -278,7 +285,7 @@ message AppProfile { // details. string etag = 2; - // Optional long form description of the use case for this AppProfile. + // Long form description of the use case for this AppProfile. string description = 3; // The routing policy for all read/write requests that use this app profile. @@ -291,3 +298,43 @@ message AppProfile { SingleClusterRouting single_cluster_routing = 6; } } + +// A tablet is a defined by a start and end key and is explained in +// https://cloud.google.com/bigtable/docs/overview#architecture and +// https://cloud.google.com/bigtable/docs/performance#optimization. +// A Hot tablet is a tablet that exhibits high average cpu usage during the time +// interval from start time to end time. +message HotTablet { + option (google.api.resource) = { + type: "bigtableadmin.googleapis.com/HotTablet" + pattern: "projects/{project}/instances/{instance}/clusters/{cluster}/hotTablets/{hot_tablet}" + }; + + // The unique name of the hot tablet. Values are of the form + // `projects/{project}/instances/{instance}/clusters/{cluster}/hotTablets/[a-zA-Z0-9_-]*`. + string name = 1; + + // Name of the table that contains the tablet. Values are of the form + // `projects/{project}/instances/{instance}/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`. + string table_name = 2 [(google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/Table" + }]; + + // Output only. The start time of the hot tablet. + google.protobuf.Timestamp start_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The end time of the hot tablet. + google.protobuf.Timestamp end_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Tablet Start Key (inclusive). + string start_key = 5; + + // Tablet End Key (inclusive). + string end_key = 6; + + // Output only. The average CPU usage spent by a node on this tablet over the start_time to + // end_time time range. The percentage is the amount of CPU used by the node + // to serve the tablet, from 0% (tablet was not interacted with) to 100% (the + // node spent all cycles serving the hot tablet). + float node_cpu_usage_percent = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/bigtable/admin/v2/table.proto b/google/bigtable/admin/v2/table.proto index 4e2d709ab..5a59fd203 100644 --- a/google/bigtable/admin/v2/table.proto +++ b/google/bigtable/admin/v2/table.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -34,14 +34,6 @@ option (google.api.resource_definition) = { pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" }; -// Indicates the type of the restore source. -enum RestoreSourceType { - // No restore associated. - RESTORE_SOURCE_TYPE_UNSPECIFIED = 0; - - // A backup was used as the source of the restore. - BACKUP = 1; -} // Information about a table restore. message RestoreInfo { @@ -96,15 +88,14 @@ message Table { } // Output only. The state of replication for the table in this cluster. - ReplicationState replication_state = 1; + ReplicationState replication_state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The encryption information for the table in this cluster. // If the encryption key protecting this resource is customer managed, then // its version can be rotated in Cloud Key Management Service (Cloud KMS). // The primary version of the key and its status will be reflected here when // changes propagate from Cloud KMS. - repeated EncryptionInfo encryption_info = 2 - [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated EncryptionInfo encryption_info = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Possible timestamp granularities to use when keeping multiple versions @@ -133,7 +124,7 @@ message Table { // state. REPLICATION_VIEW = 3; - // Only populates 'name' and fields related to the table's encryption state. + // Only populates `name` and fields related to the table's encryption state. ENCRYPTION_VIEW = 5; // Populates all fields. @@ -150,23 +141,29 @@ message Table { // particular cluster (for example, if its zone is unavailable), then // there will be an entry for the cluster with UNKNOWN `replication_status`. // Views: `REPLICATION_VIEW`, `ENCRYPTION_VIEW`, `FULL` - map cluster_states = 2; + map cluster_states = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // (`CreationOnly`) // The column families configured for this table, mapped by column family ID. // Views: `SCHEMA_VIEW`, `FULL` map column_families = 3; - // (`CreationOnly`) - // The granularity (i.e. `MILLIS`) at which timestamps are stored in - // this table. Timestamps not matching the granularity will be rejected. + // Immutable. The granularity (i.e. `MILLIS`) at which timestamps are stored in this + // table. Timestamps not matching the granularity will be rejected. // If unspecified at creation time, the value will be set to `MILLIS`. // Views: `SCHEMA_VIEW`, `FULL`. - TimestampGranularity granularity = 4; - - // Output only. If this table was restored from another data source (e.g. a - // backup), this field will be populated with information about the restore. - RestoreInfo restore_info = 6; + TimestampGranularity granularity = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. If this table was restored from another data source (e.g. a backup), this + // field will be populated with information about the restore. + RestoreInfo restore_info = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set to true to make the table protected against data loss. i.e. deleting + // the following resources through Admin APIs are prohibited: + // - The table. + // - The column families in the table. + // - The instance containing the table. + // Note one can still delete the data stored in the table through Data APIs. + bool deletion_protection = 9; } // A set of columns within a table which share a common configuration. @@ -238,17 +235,14 @@ message EncryptionInfo { } // Output only. The type of encryption used to protect this resource. - EncryptionType encryption_type = 3 - [(google.api.field_behavior) = OUTPUT_ONLY]; + EncryptionType encryption_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The status of encrypt/decrypt calls on underlying data for - // this resource. Regardless of status, the existing data is always encrypted - // at rest. - google.rpc.Status encryption_status = 4 - [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The status of encrypt/decrypt calls on underlying data for this resource. + // Regardless of status, the existing data is always encrypted at rest. + google.rpc.Status encryption_status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The version of the Cloud KMS key specified in the parent - // cluster that is in use for the data underlying this table. + // Output only. The version of the Cloud KMS key specified in the parent cluster that is + // in use for the data underlying this table. string kms_key_version = 2 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -333,7 +327,7 @@ message Backup { READY = 2; } - // Output only. A globally unique identifier for the backup which cannot be + // A globally unique identifier for the backup which cannot be // changed. Values are of the form // `projects/{project}/instances/{instance}/clusters/{cluster}/ // backups/[_a-zA-Z0-9][-_.a-zA-Z0-9]*` @@ -343,10 +337,10 @@ message Backup { // The backup is stored in the cluster identified by the prefix of the backup // name of the form // `projects/{project}/instances/{instance}/clusters/{cluster}`. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + string name = 1; - // Required. Immutable. Name of the table from which this backup was created. - // This needs to be in the same instance as the backup. Values are of the form + // Required. Immutable. Name of the table from which this backup was created. This needs + // to be in the same instance as the backup. Values are of the form // `projects/{project}/instances/{instance}/tables/{source_table}`. string source_table = 2 [ (google.api.field_behavior) = IMMUTABLE, @@ -358,21 +352,17 @@ message Backup { // from the time the request is received. Once the `expire_time` // has passed, Cloud Bigtable will delete the backup and free the // resources used by the backup. - google.protobuf.Timestamp expire_time = 3 - [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp expire_time = 3 [(google.api.field_behavior) = REQUIRED]; // Output only. `start_time` is the time that the backup was started // (i.e. approximately the time the - // [CreateBackup][google.bigtable.admin.v2.BigtableTableAdmin.CreateBackup] - // request is received). The row data in this backup will be no older than - // this timestamp. - google.protobuf.Timestamp start_time = 4 - [(google.api.field_behavior) = OUTPUT_ONLY]; + // [CreateBackup][google.bigtable.admin.v2.BigtableTableAdmin.CreateBackup] request is received). The + // row data in this backup will be no older than this timestamp. + google.protobuf.Timestamp start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. `end_time` is the time that the backup was finished. The row // data in the backup will be no newer than this timestamp. - google.protobuf.Timestamp end_time = 5 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp end_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Size of the backup in bytes. int64 size_bytes = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -381,8 +371,7 @@ message Backup { State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The encryption information for the backup. - EncryptionInfo encryption_info = 9 - [(google.api.field_behavior) = OUTPUT_ONLY]; + EncryptionInfo encryption_info = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Information about a backup. @@ -392,14 +381,21 @@ message BackupInfo { // Output only. The time that the backup was started. Row data in the backup // will be no older than this timestamp. - google.protobuf.Timestamp start_time = 2 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp start_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. This time that the backup was finished. Row data in the // backup will be no newer than this timestamp. - google.protobuf.Timestamp end_time = 3 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp end_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Name of the table the backup was created from. string source_table = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Indicates the type of the restore source. +enum RestoreSourceType { + // No restore associated. + RESTORE_SOURCE_TYPE_UNSPECIFIED = 0; + + // A backup was used as the source of the restore. + BACKUP = 1; +} diff --git a/google/bigtable/v2/BUILD.bazel b/google/bigtable/v2/BUILD.bazel index 692627dfe..795632754 100644 --- a/google/bigtable/v2/BUILD.bazel +++ b/google/bigtable/v2/BUILD.bazel @@ -14,6 +14,8 @@ proto_library( srcs = [ "bigtable.proto", "data.proto", + "request_stats.proto", + "response_params.proto", ], deps = [ "//google/api:annotations_proto", @@ -22,6 +24,7 @@ proto_library( "//google/api:resource_proto", "//google/api:routing_proto", "//google/rpc:status_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:wrappers_proto", ], ) @@ -65,6 +68,7 @@ java_gapic_library( test_deps = [ ":bigtable_java_grpc", ], + transport = "grpc", deps = [ ":bigtable_java_proto", ], @@ -81,6 +85,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigtable-v2-java", + transport = "grpc", deps = [ ":bigtable_java_gapic", ":bigtable_java_grpc", @@ -117,6 +122,7 @@ go_gapic_library( grpc_service_config = "bigtable_grpc_service_config.json", importpath = "cloud.google.com/go/bigtable/apiv2;bigtable", service_yaml = "bigtable_v2.yaml", + transport = "grpc", deps = [ ":bigtable_go_proto", ], @@ -146,13 +152,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "bigtable_py_gapic", srcs = [":bigtable_proto"], grpc_service_config = "bigtable_grpc_service_config.json", - opt_args = ["python-gapic-namespace=google.cloud"], + opt_args = [ + "python-gapic-namespace=google.cloud", + "autogen-snippets=False", + ], + transport = "grpc", +) + +py_test( + name = "bigtable_py_gapic_test", + srcs = [ + "bigtable_py_gapic_pytest.py", + "bigtable_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":bigtable_py_gapic"], ) py_gapic_assembly_pkg( @@ -219,6 +240,7 @@ nodejs_gapic_library( src = ":bigtable_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "bigtable_grpc_service_config.json", + handwritten_layer = True, main_service = "bigtable", package = "google.bigtable.v2", service_yaml = "bigtable_v2.yaml", @@ -311,6 +333,7 @@ csharp_gapic_library( srcs = [":bigtable_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigtable_grpc_service_config.json", + service_yaml = "bigtable_v2.yaml", deps = [ ":bigtable_csharp_grpc", ":bigtable_csharp_proto", diff --git a/google/bigtable/v2/bigtable.proto b/google/bigtable/v2/bigtable.proto index 17b145665..090c60eb7 100644 --- a/google/bigtable/v2/bigtable.proto +++ b/google/bigtable/v2/bigtable.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// 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. @@ -22,6 +22,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/api/routing.proto"; import "google/bigtable/v2/data.proto"; +import "google/bigtable/v2/request_stats.proto"; import "google/protobuf/wrappers.proto"; import "google/rpc/status.proto"; @@ -32,6 +33,10 @@ option java_outer_classname = "BigtableProto"; option java_package = "com.google.bigtable.v2"; option php_namespace = "Google\\Cloud\\Bigtable\\V2"; option ruby_package = "Google::Cloud::Bigtable::V2"; +option (google.api.resource_definition) = { + type: "bigtableadmin.googleapis.com/Instance" + pattern: "projects/{project}/instances/{instance}" +}; option (google.api.resource_definition) = { type: "bigtableadmin.googleapis.com/Table" pattern: "projects/{project}/instances/{instance}/tables/{table}" @@ -63,9 +68,7 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name"; option (google.api.method_signature) = "table_name,app_profile_id"; @@ -75,7 +78,8 @@ service Bigtable { // delimit contiguous sections of the table of approximately equal size, // which can be used to break up the data for distributed tasks like // mapreduces. - rpc SampleRowKeys(SampleRowKeysRequest) returns (stream SampleRowKeysResponse) { + rpc SampleRowKeys(SampleRowKeysRequest) + returns (stream SampleRowKeysResponse) { option (google.api.http) = { get: "/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys" }; @@ -84,9 +88,7 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name"; option (google.api.method_signature) = "table_name,app_profile_id"; @@ -104,12 +106,11 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name,row_key,mutations"; - option (google.api.method_signature) = "table_name,row_key,mutations,app_profile_id"; + option (google.api.method_signature) = + "table_name,row_key,mutations,app_profile_id"; } // Mutates multiple rows in a batch. Each individual row is mutated @@ -125,16 +126,15 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name,entries"; option (google.api.method_signature) = "table_name,entries,app_profile_id"; } // Mutates a row atomically based on the output of a predicate Reader filter. - rpc CheckAndMutateRow(CheckAndMutateRowRequest) returns (CheckAndMutateRowResponse) { + rpc CheckAndMutateRow(CheckAndMutateRowRequest) + returns (CheckAndMutateRowResponse) { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow" body: "*" @@ -144,12 +144,30 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } + routing_parameters { field: "app_profile_id" } + }; + option (google.api.method_signature) = + "table_name,row_key,predicate_filter,true_mutations,false_mutations"; + option (google.api.method_signature) = + "table_name,row_key,predicate_filter,true_mutations,false_mutations,app_profile_id"; + } + + // Warm up associated instance metadata for this connection. + // This call is not required but may be useful for connection keep-alive. + rpc PingAndWarm(PingAndWarmRequest) returns (PingAndWarmResponse) { + option (google.api.http) = { + post: "/v2/{name=projects/*/instances/*}:ping" + body: "*" + }; + option (google.api.routing) = { routing_parameters { - field: "app_profile_id" + field: "name" + path_template: "{name=projects/*/instances/*}" } + routing_parameters { field: "app_profile_id" } }; - option (google.api.method_signature) = "table_name,row_key,predicate_filter,true_mutations,false_mutations"; - option (google.api.method_signature) = "table_name,row_key,predicate_filter,true_mutations,false_mutations,app_profile_id"; + option (google.api.method_signature) = "name"; + option (google.api.method_signature) = "name,app_profile_id"; } // Modifies a row atomically on the server. The method reads the latest @@ -157,7 +175,8 @@ service Bigtable { // entry based on pre-defined read/modify/write rules. The new value for the // timestamp is the greater of the existing timestamp or the current server // time. The method returns the new contents of all modified cells. - rpc ReadModifyWriteRow(ReadModifyWriteRowRequest) returns (ReadModifyWriteRowResponse) { + rpc ReadModifyWriteRow(ReadModifyWriteRowRequest) + returns (ReadModifyWriteRowResponse) { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow" body: "*" @@ -167,17 +186,36 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name,row_key,rules"; - option (google.api.method_signature) = "table_name,row_key,rules,app_profile_id"; + option (google.api.method_signature) = + "table_name,row_key,rules,app_profile_id"; } } // Request message for Bigtable.ReadRows. message ReadRowsRequest { + // + // The desired view into RequestStats that should be returned in the response. + // + // See also: RequestStats message. + enum RequestStatsView { + // The default / unset value. The API will default to the NONE option below. + REQUEST_STATS_VIEW_UNSPECIFIED = 0; + + // Do not include any RequestStats in the response. This will leave the + // RequestStats embedded message unset in the response. + REQUEST_STATS_NONE = 1; + + // Include stats related to the efficiency of the read. + REQUEST_STATS_EFFICIENCY = 2; + + // Include the full set of available RequestStats in the response, + // applicable to this read. + REQUEST_STATS_FULL = 3; + } + // Required. The unique name of the table from which to read. // Values are of the form // `projects//instances//tables/
`. @@ -188,8 +226,8 @@ message ReadRowsRequest { } ]; - // This value specifies routing for replication. If not specified, the - // "default" application profile will be used. + // This value specifies routing for replication. This API only accepts the + // empty value of app_profile_id. string app_profile_id = 5; // The row keys and/or ranges to read sequentially. If not specified, reads @@ -203,6 +241,9 @@ message ReadRowsRequest { // The read will stop after committing to N rows' worth of results. The // default (zero) is to return all results. int64 rows_limit = 4; + + // The view into RequestStats, as described above. + RequestStatsView request_stats_view = 6; } // Response message for Bigtable.ReadRows. @@ -282,6 +323,28 @@ message ReadRowsResponse { // lot of data that was filtered out since the last committed row // key, allowing the client to skip that work on a retry. bytes last_scanned_row_key = 2; + + // + // If requested, provide enhanced query performance statistics. The semantics + // dictate: + // * request_stats is empty on every (streamed) response, except + // * request_stats has non-empty information after all chunks have been + // streamed, where the ReadRowsResponse message only contains + // request_stats. + // * For example, if a read request would have returned an empty + // response instead a single ReadRowsResponse is streamed with empty + // chunks and request_stats filled. + // + // Visually, response messages will stream as follows: + // ... -> {chunks: [...]} -> {chunks: [], request_stats: {...}} + // \______________________/ \________________________________/ + // Primary response Trailer of RequestStats info + // + // Or if the read did not return any values: + // {chunks: [], request_stats: {...}} + // \________________________________/ + // Trailer of RequestStats info + RequestStats request_stats = 3; } // Request message for Bigtable.SampleRowKeys. @@ -321,8 +384,8 @@ 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 + // Required. 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, @@ -338,16 +401,14 @@ message MutateRowRequest { // Required. The key of the row to which the mutation should be applied. bytes row_key = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. Changes to be atomically applied to the specified row. Entries are applied - // in order, meaning that earlier mutations can be masked by later ones. - // Must contain at least one entry and at most 100000. + // Required. Changes to be atomically applied to the specified row. Entries + // are applied in order, meaning that earlier mutations can be masked by later + // ones. Must contain at least one entry and at most 100000. repeated Mutation mutations = 3 [(google.api.field_behavior) = REQUIRED]; } // Response message for Bigtable.MutateRow. -message MutateRowResponse { - -} +message MutateRowResponse {} // Request message for BigtableService.MutateRows. message MutateRowsRequest { @@ -356,14 +417,14 @@ message MutateRowsRequest { // The key of the row to which the `mutations` should be applied. bytes row_key = 1; - // Required. Changes to be atomically applied to the specified row. Mutations are - // applied in order, meaning that earlier mutations can be masked by - // later ones. - // You must specify at least one mutation. + // Required. Changes to be atomically applied to the specified row. + // Mutations are applied in order, meaning that earlier mutations can be + // masked by later ones. You must specify at least one mutation. repeated Mutation mutations = 2 [(google.api.field_behavior) = REQUIRED]; } - // Required. The unique name of the table to which the mutations should be applied. + // Required. The unique name of the table to which the mutations should be + // applied. string table_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -404,9 +465,8 @@ message MutateRowsResponse { // 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 + // Required. 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, @@ -419,7 +479,8 @@ message CheckAndMutateRowRequest { // "default" application profile will be used. string app_profile_id = 7; - // Required. The key of the row to which the conditional mutation should be applied. + // Required. The key of the row to which the conditional mutation should be + // applied. bytes row_key = 2 [(google.api.field_behavior) = REQUIRED]; // The filter to be applied to the contents of the specified row. Depending @@ -450,11 +511,30 @@ message CheckAndMutateRowResponse { bool predicate_matched = 1; } +// Request message for client connection keep-alive and warming. +message PingAndWarmRequest { + // Required. The unique name of the instance to check permissions for as well + // as respond. Values are of the form + // `projects//instances/`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/Instance" + } + ]; + + // This value specifies routing for replication. If not specified, the + // "default" application profile will be used. + string app_profile_id = 2; +} + +// Response message for Bigtable.PingAndWarm connection keepalive and warming. +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 + // Required. 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, @@ -467,13 +547,15 @@ message ReadModifyWriteRowRequest { // "default" application profile will be used. string app_profile_id = 4; - // Required. The key of the row to which the read/modify/write rules should be applied. + // Required. The key of the row to which the read/modify/write rules should be + // applied. bytes row_key = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. Rules specifying how the specified row's contents are to be transformed - // into writes. Entries are applied in order, meaning that earlier rules will - // affect the results of later ones. - repeated ReadModifyWriteRule rules = 3 [(google.api.field_behavior) = REQUIRED]; + // Required. Rules specifying how the specified row's contents are to be + // transformed into writes. Entries are applied in order, meaning that earlier + // rules will affect the results of later ones. + repeated ReadModifyWriteRule rules = 3 + [(google.api.field_behavior) = REQUIRED]; } // Response message for Bigtable.ReadModifyWriteRow. diff --git a/google/bigtable/v2/bigtable_grpc_service_config.json b/google/bigtable/v2/bigtable_grpc_service_config.json index 8786d7fd5..9ad691ecf 100755 --- a/google/bigtable/v2/bigtable_grpc_service_config.json +++ b/google/bigtable/v2/bigtable_grpc_service_config.json @@ -11,13 +11,7 @@ "method": "ReadModifyWriteRow" } ], - "timeout": "20s", - "retryPolicy": { - "initialBackoff": "0.010s", - "maxBackoff": "60s", - "backoffMultiplier": 2, - "retryableStatusCodes": [] - } + "timeout": "20s" }, { "name": [ @@ -26,13 +20,7 @@ "method": "SampleRowKeys" } ], - "timeout": "60s", - "retryPolicy": { - "initialBackoff": "0.010s", - "maxBackoff": "60s", - "backoffMultiplier": 2, - "retryableStatusCodes": [] - } + "timeout": "60s" }, { "name": [ @@ -41,13 +29,7 @@ "method": "MutateRows" } ], - "timeout": "600s", - "retryPolicy": { - "initialBackoff": "0.010s", - "maxBackoff": "60s", - "backoffMultiplier": 2, - "retryableStatusCodes": [] - } + "timeout": "600s" }, { "name": [ @@ -56,13 +38,7 @@ "method": "ReadRows" } ], - "timeout": "43200s", - "retryPolicy": { - "initialBackoff": "0.010s", - "maxBackoff": "60s", - "backoffMultiplier": 2, - "retryableStatusCodes": [] - } + "timeout": "43200s" }, { "name": [ diff --git a/google/bigtable/v2/bigtable_v2.yaml b/google/bigtable/v2/bigtable_v2.yaml index 44f5f5f35..ad7d56677 100644 --- a/google/bigtable/v2/bigtable_v2.yaml +++ b/google/bigtable/v2/bigtable_v2.yaml @@ -1,11 +1,15 @@ type: google.api.Service -config_version: 1 +config_version: 3 name: bigtable.googleapis.com title: Cloud Bigtable API apis: - name: google.bigtable.v2.Bigtable +types: +- name: google.bigtable.v2.RequestStats +- name: google.bigtable.v2.ResponseParams + documentation: summary: |- API for reading and writing the contents of Bigtables associated with a diff --git a/google/bigtable/v2/data.proto b/google/bigtable/v2/data.proto index 7193ee753..9e5a05c2e 100644 --- a/google/bigtable/v2/data.proto +++ b/google/bigtable/v2/data.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// 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. diff --git a/google/bigtable/v2/request_stats.proto b/google/bigtable/v2/request_stats.proto new file mode 100644 index 000000000..101603504 --- /dev/null +++ b/google/bigtable/v2/request_stats.proto @@ -0,0 +1,117 @@ +// 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.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 java_multiple_files = true; +option java_outer_classname = "RequestStatsProto"; +option java_package = "com.google.bigtable.v2"; +option php_namespace = "Google\\Cloud\\Bigtable\\V2"; +option ruby_package = "Google::Cloud::Bigtable::V2"; + +// +// Messages related to RequestStats, part of the Slow Queries feature, that can +// help understand the performance of requests. + +// ReadIteratorStats captures information about the iteration of rows or cells +// over the course of a read, e.g. how many results were scanned in a read +// operation versus the results returned. +message ReadIteratorStats { + // The rows seen (scanned) as part of the request. This includes the count of + // rows returned, as captured below. + int64 rows_seen_count = 1; + + // The rows returned as part of the request. + int64 rows_returned_count = 2; + + // The cells seen (scanned) as part of the request. This includes the count of + // cells returned, as captured below. + int64 cells_seen_count = 3; + + // The cells returned as part of the request. + int64 cells_returned_count = 4; + + // The deletes seen as part of the request. + int64 deletes_seen_count = 5; +} + +// RequestLatencyStats provides a measurement of the latency of the request as +// it interacts with different systems over its lifetime, e.g. how long the +// request took to execute within a frontend server. +message RequestLatencyStats { + // The latency measured by the frontend server handling this request, from + // when the request was received, to when this value is sent back in the + // response. For more context on the component that is measuring this latency, + // see: https://cloud.google.com/bigtable/docs/overview + // + // Note: This value may be slightly shorter than the value reported into + // aggregate latency metrics in Monitoring for this request + // (https://cloud.google.com/bigtable/docs/monitoring-instance) as this value + // needs to be sent in the response before the latency measurement including + // that transmission is finalized. + google.protobuf.Duration frontend_server_latency = 1; +} + +// ReadEfficiencyStats captures information about the efficiency of a read. +message ReadEfficiencyStats { + // Iteration stats describe how efficient the read is, e.g. comparing + // rows seen vs. rows returned or cells seen vs cells returned can provide an + // indication of read efficiency (the higher the ratio of seen to retuned the + // better). + ReadIteratorStats read_iterator_stats = 1; + + // Request latency stats describe the time taken to complete a request, from + // the server side. + RequestLatencyStats request_latency_stats = 2; +} + +// AllReadStats captures all known information about a read. +message AllReadStats { + // Iteration stats describe how efficient the read is, e.g. comparing + // rows seen vs. rows returned or cells seen vs cells returned can provide an + // indication of read efficiency (the higher the ratio of seen to retuned the + // better). + ReadIteratorStats read_iterator_stats = 1; + + // Request latency stats describe the time taken to complete a request, from + // the server side. + RequestLatencyStats request_latency_stats = 2; +} + +// RequestStats is the container for additional information pertaining to a +// single request, helpful for evaluating the performance of the sent request. +// Currently, there are the following supported methods: +// * google.bigtable.v2.ReadRows +message RequestStats { + // Information pertaining to each request type received. The type is chosen + // based on the requested view. + // + // See the messages above for additional context. + oneof stats { + // Available with the + // ReadRowsRequest.RequestStatsView.REQUEST_STATS_EFFICIENCY view, see + // package google.bigtable.v2. + ReadEfficiencyStats read_efficiency_stats = 1; + + // Available with the ReadRowsRequest.RequestStatsView.REQUEST_STATS_FULL + // view, see package google.bigtable.v2. + AllReadStats all_read_stats = 2; + } +} diff --git a/google/bigtable/v2/response_params.proto b/google/bigtable/v2/response_params.proto new file mode 100644 index 000000000..a8105911c --- /dev/null +++ b/google/bigtable/v2/response_params.proto @@ -0,0 +1,38 @@ +// 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.bigtable.v2; + +option csharp_namespace = "Google.Cloud.Bigtable.V2"; +option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable"; +option java_multiple_files = true; +option java_outer_classname = "ResponseParamsProto"; +option java_package = "com.google.bigtable.v2"; +option php_namespace = "Google\\Cloud\\Bigtable\\V2"; +option ruby_package = "Google::Cloud::Bigtable::V2"; + +// Response metadata proto +// This is an experimental feature that will be used to get zone_id and +// cluster_id from response trailers to tag the metrics. This should not be +// used by customers directly +message ResponseParams { + // The cloud bigtable zone associated with the cluster. + optional string zone_id = 1; + + // Identifier for a cluster that represents set of + // bigtable resources. + optional string cluster_id = 2; +} diff --git a/google/chat/logging/v1/BUILD.bazel b/google/chat/logging/v1/BUILD.bazel new file mode 100644 index 000000000..01dda3313 --- /dev/null +++ b/google/chat/logging/v1/BUILD.bazel @@ -0,0 +1,177 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "chat_app_log_entry.proto", + ], + deps = [ + "//google/rpc:status_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/chat/logging/v1", + protos = [":logging_proto"], + deps = [ + "//google/rpc:status_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "//google/rpc:status_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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/chat/logging/v1/chat_app_log_entry.proto b/google/chat/logging/v1/chat_app_log_entry.proto new file mode 100644 index 000000000..9caa4c9fe --- /dev/null +++ b/google/chat/logging/v1/chat_app_log_entry.proto @@ -0,0 +1,40 @@ +// 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.chat.logging.v1; + +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/chat/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "ChatAppLogEntryProto"; +option java_package = "com.google.chat.logging.v1"; + +// JSON payload of error messages. If the Cloud Logging API is enabled, these +// error messages are logged to +// [Google Cloud Logging](https://cloud.google.com/logging/docs). +message ChatAppLogEntry { + // The deployment that caused the error. For Chat bots built in Apps Script, + // this is the deployment ID defined by Apps Script. + string deployment = 1; + + // The error code and message. + google.rpc.Status error = 2; + + // The unencrypted `callback_method` name that was running when the error was + // encountered. + string deployment_function = 3; +} diff --git a/google/chromeos/moblab/v1beta1/BUILD.bazel b/google/chromeos/moblab/v1beta1/BUILD.bazel index 471c31ff8..3cafac1d3 100644 --- a/google/chromeos/moblab/v1beta1/BUILD.bazel +++ b/google/chromeos/moblab/v1beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":moblab_java_grpc", ], + transport = "grpc+rest", deps = [ ":moblab_java_proto", "//google/api:api_java_proto", @@ -84,6 +85,7 @@ java_gapic_library( java_gapic_test( name = "moblab_java_gapic_test_suite", test_classes = [ + "com.google.chromeos.moblab.v1beta1.BuildServiceClientHttpJsonTest", "com.google.chromeos.moblab.v1beta1.BuildServiceClientTest", ], runtime_deps = [":moblab_java_gapic_test"], @@ -92,6 +94,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-chromeos-moblab-v1beta1-java", + transport = "grpc+rest", deps = [ ":moblab_java_gapic", ":moblab_java_grpc", @@ -129,6 +132,7 @@ go_gapic_library( importpath = "google.golang.org/google/chromeos/moblab/v1beta1;moblab", metadata = True, service_yaml = "chromeosmoblab_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":moblab_go_proto", "//google/longrunning:longrunning_go_proto", @@ -162,12 +166,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "moblab_py_gapic", srcs = [":moblab_proto"], grpc_service_config = "moblab_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "moblab_py_gapic_test", + srcs = [ + "moblab_py_gapic_pytest.py", + "moblab_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":moblab_py_gapic"], ) # Open Source Packages @@ -319,6 +335,7 @@ csharp_gapic_library( srcs = [":moblab_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "moblab_grpc_service_config.json", + service_yaml = "chromeosmoblab_v1beta1.yaml", deps = [ ":moblab_csharp_grpc", ":moblab_csharp_proto", diff --git a/google/chromeos/uidetection/v1/BUILD.bazel b/google/chromeos/uidetection/v1/BUILD.bazel index e452031cd..2e8855f24 100644 --- a/google/chromeos/uidetection/v1/BUILD.bazel +++ b/google/chromeos/uidetection/v1/BUILD.bazel @@ -70,6 +70,7 @@ java_gapic_library( test_deps = [ ":uidetection_java_grpc", ], + transport = "grpc+rest", deps = [ ":uidetection_java_proto", "//google/api:api_java_proto", @@ -79,6 +80,7 @@ java_gapic_library( java_gapic_test( name = "uidetection_java_gapic_test_suite", test_classes = [ + "com.google.chromeos.uidetection.v1.UiDetectionServiceClientHttpJsonTest", "com.google.chromeos.uidetection.v1.UiDetectionServiceClientTest", ], runtime_deps = [":uidetection_java_gapic_test"], @@ -87,6 +89,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-chromeos-uidetection-v1-java", + transport = "grpc+rest", deps = [ ":uidetection_java_gapic", ":uidetection_java_grpc", @@ -121,8 +124,9 @@ go_gapic_library( srcs = [":uidetection_proto_with_info"], grpc_service_config = "ui_detection_grpc_service_config.json", importpath = "google.golang.org/google/chromeos/uidetection/v1;uidetection", - service_yaml = "chromeosuidetection_v1.yaml", metadata = True, + service_yaml = "chromeosuidetection_v1.yaml", + transport = "grpc+rest", deps = [ ":uidetection_go_proto", ], @@ -140,8 +144,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-chromeos-uidetection-v1-go", deps = [ ":uidetection_go_gapic", - ":uidetection_go_gapic_srcjar-test.srcjar", ":uidetection_go_gapic_srcjar-metadata.srcjar", + ":uidetection_go_gapic_srcjar-test.srcjar", ":uidetection_go_proto", ], ) @@ -153,12 +157,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "uidetection_py_gapic", srcs = [":uidetection_proto"], grpc_service_config = "ui_detection_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "uidetection_py_gapic_test", + srcs = [ + "uidetection_py_gapic_pytest.py", + "uidetection_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":uidetection_py_gapic"], ) # Open Source Packages @@ -245,8 +261,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -312,6 +328,7 @@ csharp_gapic_library( srcs = [":uidetection_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "ui_detection_grpc_service_config.json", + service_yaml = "chromeosuidetection_v1.yaml", deps = [ ":uidetection_csharp_grpc", ":uidetection_csharp_proto", diff --git a/google/chromeos/uidetection/v1/ui_detection.proto b/google/chromeos/uidetection/v1/ui_detection.proto index e7f529c9c..e1f593f2c 100644 --- a/google/chromeos/uidetection/v1/ui_detection.proto +++ b/google/chromeos/uidetection/v1/ui_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,8 +17,8 @@ syntax = "proto3"; package google.chromeos.uidetection.v1; import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; import "google/api/client.proto"; +import "google/api/field_behavior.proto"; option go_package = "google.golang.org/genproto/googleapis/chromeos/uidetection/v1;uidetection"; option java_multiple_files = true; @@ -64,18 +64,45 @@ message DetectionRequest { message WordDetectionRequest { // Required. The word to locate in the image. string word = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicating whether the query string is a regex or not. + bool regex_mode = 2; + + // Indicating whether the detection is an approximate match. + bool disable_approx_match = 3; + + // Levenshtein distance threshold. + // Applicable only if regex_mode is False. + optional int32 max_edit_distance = 4; } // Detection type for text block detection. message TextBlockDetectionRequest { - // Required. The text block consisting a list of words to locate im the image. + // Required. The text block consisting a list of words to locate in the image. repeated string words = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicating whether the query string is a regex or not. + bool regex_mode = 2; + + // Indicating whether the detection is an approximate match. + bool disable_approx_match = 3; + + // Levenshtein distance threshold. + // Applicable only if regex_mode is False. + optional int32 max_edit_distance = 4; } // Detection type for custom icon detection. message CustomIconDetectionRequest { // Required. Required field that represents an icon in PNG format. bytes icon_png = 1 [(google.api.field_behavior) = REQUIRED]; + + // Set match_count to -1 to not limit the number of matches. + int32 match_count = 2; + + // Confidence threshold in the range [0.0, 1.0] below which the matches will + // be considered as non-existent. + double min_confidence_threshold = 3; } // Response message for UI detection. diff --git a/google/cloud/BUILD.bazel b/google/cloud/BUILD.bazel index d405b232b..b315e94f3 100644 --- a/google/cloud/BUILD.bazel +++ b/google/cloud/BUILD.bazel @@ -21,9 +21,11 @@ proto_library( ############################################################################## # Java ############################################################################## -load("@com_google_googleapis_imports//:imports.bzl", - "java_gapic_assembly_gradle_pkg", - "java_proto_library") +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_proto_library", +) java_proto_library( name = "extended_operations_java_proto", @@ -37,6 +39,7 @@ java_proto_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-apps-script-type-java", + transport = "grpc+rest", deps = [ "extended_operations_java_proto", ":extended_operations_proto", diff --git a/google/cloud/accessapproval/v1/BUILD.bazel b/google/cloud/accessapproval/v1/BUILD.bazel index c6e248684..558bd178c 100644 --- a/google/cloud/accessapproval/v1/BUILD.bazel +++ b/google/cloud/accessapproval/v1/BUILD.bazel @@ -27,6 +27,7 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:resource_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", @@ -72,6 +73,7 @@ java_gapic_library( test_deps = [ ":accessapproval_java_grpc", ], + transport = "grpc+rest", deps = [ ":accessapproval_java_proto", ], @@ -80,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "accessapproval_java_gapic_test_suite", test_classes = [ + "com.google.cloud.accessapproval.v1.AccessApprovalAdminClientHttpJsonTest", "com.google.cloud.accessapproval.v1.AccessApprovalAdminClientTest", ], runtime_deps = [":accessapproval_java_gapic_test"], @@ -88,6 +91,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-accessapproval-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":accessapproval_java_gapic", ":accessapproval_java_grpc", @@ -123,6 +128,7 @@ go_gapic_library( grpc_service_config = "accessapproval_grpc_service_config.json", importpath = "cloud.google.com/go/accessapproval/apiv1;accessapproval", service_yaml = "accessapproval_v1.yaml", + transport = "grpc+rest", deps = [ ":accessapproval_go_proto", ], @@ -152,6 +158,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -161,6 +168,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-access-approval", ], + transport = "grpc", +) + +py_test( + name = "accessapproval_py_gapic_test", + srcs = [ + "accessapproval_py_gapic_pytest.py", + "accessapproval_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":accessapproval_py_gapic"], ) # Open Source Packages @@ -319,6 +337,7 @@ csharp_gapic_library( srcs = [":accessapproval_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "accessapproval_grpc_service_config.json", + service_yaml = "accessapproval_v1.yaml", deps = [ ":accessapproval_csharp_grpc", ":accessapproval_csharp_proto", diff --git a/google/cloud/accessapproval/v1/accessapproval.proto b/google/cloud/accessapproval/v1/accessapproval.proto index cd1ec8eb2..adeccff45 100644 --- a/google/cloud/accessapproval/v1/accessapproval.proto +++ b/google/cloud/accessapproval/v1/accessapproval.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -19,6 +19,7 @@ package google.cloud.accessapproval.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/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -36,17 +37,17 @@ option ruby_package = "Google::Cloud::AccessApproval::V1"; // // - The API has a collection of // [ApprovalRequest][google.cloud.accessapproval.v1.ApprovalRequest] -// resources, named `approvalRequests/{approval_request_id}` +// resources, named `approvalRequests/{approval_request}` // - The API has top-level settings per Project/Folder/Organization, named // `accessApprovalSettings` // // The service also periodically emails a list of recipients, defined at the // Project/Folder/Organization level in the accessApprovalSettings, when there // is a pending ApprovalRequest for them to act on. The ApprovalRequests can -// also optionally be published to a Cloud Pub/Sub topic owned by the customer -// (for Beta, the Pub/Sub setup is managed manually). +// also optionally be published to a Pub/Sub topic owned by the customer +// (contact support if you would like to enable Pub/Sub notifications). // -// ApprovalRequests can be approved or dismissed. Google personel can only +// ApprovalRequests can be approved or dismissed. Google personnel can only // access the indicated resource or resources if the request is approved // (subject to some exclusions: // https://cloud.google.com/access-approval/docs/overview#exclusions). @@ -142,6 +143,29 @@ service AccessApproval { }; } + // Invalidates an existing ApprovalRequest. Returns the updated + // ApprovalRequest. + // + // NOTE: This does not deny access to the resource if another request has been + // made and approved. It only invalidates a single approval. + // + // Returns FAILED_PRECONDITION if the request exists but is not in an approved + // state. + rpc InvalidateApprovalRequest(InvalidateApprovalRequestMessage) returns (ApprovalRequest) { + option (google.api.http) = { + post: "/v1/{name=projects/*/approvalRequests/*}:invalidate" + body: "*" + additional_bindings { + post: "/v1/{name=folders/*/approvalRequests/*}:invalidate" + body: "*" + } + additional_bindings { + post: "/v1/{name=organizations/*/approvalRequests/*}:invalidate" + body: "*" + } + }; + } + // Gets the settings associated with a project, folder, or organization. rpc GetAccessApprovalSettings(GetAccessApprovalSettingsMessage) returns (AccessApprovalSettings) { option (google.api.http) = { @@ -192,6 +216,21 @@ service AccessApproval { }; option (google.api.method_signature) = "name"; } + + // Retrieves the service account that is used by Access Approval to access KMS + // keys for signing approved approval requests. + rpc GetAccessApprovalServiceAccount(GetAccessApprovalServiceAccountMessage) returns (AccessApprovalServiceAccount) { + option (google.api.http) = { + get: "/v1/{name=projects/*/serviceAccount}" + additional_bindings { + get: "/v1/{name=folders/*/serviceAccount}" + } + additional_bindings { + get: "/v1/{name=organizations/*/serviceAccount}" + } + }; + option (google.api.method_signature) = "name"; + } } // Home office and physical location of the principal. @@ -202,15 +241,14 @@ message AccessLocations { // of a country code. // Possible Region Codes: // - // - ASI: Asia - // - EUR: Europe - // - OCE: Oceania - // - AFR: Africa - // - NAM: North America - // - SAM: South America - // - ANT: Antarctica - // - ANY: Any location - // + // * ASI: Asia + // * EUR: Europe + // * OCE: Oceania + // * AFR: Africa + // * NAM: North America + // * SAM: South America + // * ANT: Antarctica + // * ANY: Any location string principal_office_country = 1; // Physical location of the principal at the time of the access. A @@ -219,15 +257,14 @@ message AccessLocations { // a region code instead of a country code. // Possible Region Codes: // - // - ASI: Asia - // - EUR: Europe - // - OCE: Oceania - // - AFR: Africa - // - NAM: North America - // - SAM: South America - // - ANT: Antarctica - // - ANY: Any location - // + // * ASI: Asia + // * EUR: Europe + // * OCE: Oceania + // * AFR: Africa + // * NAM: North America + // * SAM: South America + // * ANT: Antarctica + // * ANY: Any location string principal_physical_location_country = 2; } @@ -240,24 +277,32 @@ message AccessReason { // 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-#####" - // + // * "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 or a known outage. Often this access is used - // to confirm that customers are not affected by a suspected service issue - // or to remediate a reversible system issue. + // 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; } // Type of access justification. @@ -267,6 +312,23 @@ message AccessReason { string detail = 2; } +// Information about the digital signature of the resource. +message SignatureInfo { + // The digital signature. + bytes signature = 1; + + // How this signature may be verified. + oneof verification_info { + // The public key for the Google default signing, encoded in PEM format. The + // signature was created using a private key which may be verified using + // this public key. + string google_public_key_pem = 2; + + // The resource name of the customer CryptoKeyVersion used for signing. + string customer_kms_key_version = 3; + } +} + // A decision that has been made to approve access to a resource. message ApproveDecision { // The time at which approval was granted. @@ -274,12 +336,26 @@ message ApproveDecision { // The time at which the approval expires. google.protobuf.Timestamp expire_time = 2; + + // If set, denotes the timestamp at which the approval is invalidated. + google.protobuf.Timestamp invalidate_time = 3; + + // The signature for the ApprovalRequest and details on how it was signed. + SignatureInfo signature_info = 4; + + // True when the request has been auto-approved. + bool auto_approved = 5; } // A decision that has been made to dismiss an approval request. message DismissDecision { // The time at which the approval request was dismissed. google.protobuf.Timestamp dismiss_time = 1; + + // This field will be true if the ApprovalRequest was implicitly dismissed due + // to inaction by the access approval approvers (the request is not acted + // on by the approvers before the exiration time). + bool implicit = 2; } // The properties associated with the resource of the request. @@ -291,8 +367,15 @@ message ResourceProperties { // A request for the customer to approve access to a resource. message ApprovalRequest { + option (google.api.resource) = { + type: "accessapproval.googleapis.com/ApprovalRequest" + pattern: "projects/{project}/approvalRequests/{approval_request}" + pattern: "folders/{folder}/approvalRequests/{approval_request}" + pattern: "organizations/{organization}/approvalRequests/{approval_request}" + }; + // The resource name of the request. Format is - // "{projects|folders|organizations}/{id}/approvalRequests/{approval_request_id}". + // "{projects|folders|organizations}/{id}/approvalRequests/{approval_request}". string name = 1; // The resource for which approval is being requested. The format of the @@ -330,46 +413,102 @@ message ApprovalRequest { } } +// Represents the type of enrollment for a given service to Access Approval. +enum EnrollmentLevel { + // Default value for proto, shouldn't be used. + ENROLLMENT_LEVEL_UNSPECIFIED = 0; + + // Service is enrolled in Access Approval for all requests + BLOCK_ALL = 1; +} + // Represents the enrollment of a cloud resource into a specific service. message EnrolledService { // The product for which Access Approval will be enrolled. Allowed values are // listed below (case-sensitive): // - // - all - // - appengine.googleapis.com - // - bigquery.googleapis.com - // - bigtable.googleapis.com - // - cloudkms.googleapis.com - // - compute.googleapis.com - // - dataflow.googleapis.com - // - iam.googleapis.com - // - pubsub.googleapis.com - // - storage.googleapis.com + // * all + // * GA + // * App Engine + // * BigQuery + // * Cloud Bigtable + // * Cloud Key Management Service + // * Compute Engine + // * Cloud Dataflow + // * Cloud Dataproc + // * Cloud DLP + // * Cloud EKM + // * Cloud HSM + // * Cloud Identity and Access Management + // * Cloud Logging + // * Cloud Pub/Sub + // * Cloud Spanner + // * Cloud SQL + // * Cloud Storage + // * Google Kubernetes Engine + // * Organization Policy Serivice + // * Persistent Disk + // * Resource Manager + // * Secret Manager + // * Speaker ID + // + // Note: These values are supported as input for legacy purposes, but will not + // be returned from the API. + // + // * all + // * ga-only + // * appengine.googleapis.com + // * bigquery.googleapis.com + // * bigtable.googleapis.com + // * container.googleapis.com + // * cloudkms.googleapis.com + // * cloudresourcemanager.googleapis.com + // * cloudsql.googleapis.com + // * compute.googleapis.com + // * dataflow.googleapis.com + // * dataproc.googleapis.com + // * dlp.googleapis.com + // * iam.googleapis.com + // * logging.googleapis.com + // * orgpolicy.googleapis.com + // * pubsub.googleapis.com + // * spanner.googleapis.com + // * secretmanager.googleapis.com + // * speakerid.googleapis.com + // * storage.googleapis.com // + // Calls to UpdateAccessApprovalSettings using 'all' or any of the + // XXX.googleapis.com will be translated to the associated product name + // ('all', 'App Engine', etc.). + // + // Note: 'all' will enroll the resource in all products supported at both 'GA' + // and 'Preview' levels. + // + // More information about levels of support is available at + // https://cloud.google.com/access-approval/docs/supported-services string cloud_product = 1; // The enrollment level of the service. EnrollmentLevel enrollment_level = 2; } -// Represents the type of enrollment for a given service to Access Approval. -enum EnrollmentLevel { - // Default value for proto, shouldn't be used. - ENROLLMENT_LEVEL_UNSPECIFIED = 0; - - // Service is enrolled in Access Approval for all requests - BLOCK_ALL = 1; -} - // Settings on a Project/Folder/Organization related to Access Approval. message AccessApprovalSettings { + option (google.api.resource) = { + type: "accessapproval.googleapis.com/AccessApprovalSettings" + pattern: "projects/{project}/accessApprovalSettings" + pattern: "folders/{folder}/accessApprovalSettings" + pattern: "organizations/{organization}/accessApprovalSettings" + }; + // The resource name of the settings. Format is one of: // - // - "projects/{project_id}/accessApprovalSettings" - // - "folders/{folder_id}/accessApprovalSettings" - // - "organizations/{organization_id}/accessApprovalSettings" - // - string name = 1; + // * "projects/{project}/accessApprovalSettings" + // * "folders/{folder}/accessApprovalSettings" + // * "organizations/{organization}/accessApprovalSettings" + string name = 1 [(google.api.resource_reference) = { + type: "accessapproval.googleapis.com/AccessApprovalSettings" + }]; // A list of email addresses to which notifications relating to approval // requests should be sent. Notifications relating to a resource will be sent @@ -391,28 +530,76 @@ message AccessApprovalSettings { repeated EnrolledService enrolled_services = 3; // Output only. This field is read only (not settable via - // UpdateAccessAccessApprovalSettings method). If the field is true, that + // UpdateAccessApprovalSettings method). If the field is true, that // indicates that at least one service is enrolled for Access Approval in one // or more ancestors of the Project or Folder (this field will always be // unset for the organization since organizations do not have ancestors). bool enrolled_ancestor = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The asymmetric crypto key version to use for signing approval requests. + // Empty active_key_version indicates that a Google-managed key should be used + // for signing. This property will be ignored if set by an ancestor of this + // resource, and new non-empty values may not be set. + string active_key_version = 6; + + // Output only. This field is read only (not settable via UpdateAccessApprovalSettings + // method). If the field is true, that indicates that an ancestor of this + // Project or Folder has set active_key_version (this field will always be + // unset for the organization since organizations do not have ancestors). + bool ancestor_has_active_key_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field is read only (not settable via UpdateAccessApprovalSettings + // method). If the field is true, that indicates that there is some + // configuration issue with the active_key_version configured at this level in + // the resource hierarchy (e.g. it doesn't exist or the Access Approval + // service account doesn't have the correct permissions on it, etc.) This key + // version is not necessarily the effective key version at this level, as key + // versions are inherited top-down. + bool invalid_key_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Access Approval service account related to a project/folder/organization. +message AccessApprovalServiceAccount { + option (google.api.resource) = { + type: "accessapproval.googleapis.com/AccessApprovalServiceAccount" + pattern: "projects/{project}/serviceAccount" + pattern: "folders/{folder}/serviceAccount" + pattern: "organizations/{organization}/serviceAccount" + }; + + // The resource name of the Access Approval service account. Format is one of: + // + // * "projects/{project}/serviceAccount" + // * "folders/{folder}/serviceAccount" + // * "organizations/{organization}/serviceAccount" + string name = 1 [(google.api.resource_reference) = { + type: "accessapproval.googleapis.com/AccessApprovalServiceAccount" + }]; + + // Email address of the service account. + string account_email = 2; } // Request to list approval requests. message ListApprovalRequestsMessage { - // The parent resource. This may be "projects/{project_id}", - // "folders/{folder_id}", or "organizations/{organization_id}". - string parent = 1; + // The parent resource. This may be "projects/{project}", + // "folders/{folder}", or "organizations/{organization}". + string parent = 1 [(google.api.resource_reference) = { + child_type: "accessapproval.googleapis.com/ApprovalRequest" + }]; // A filter on the type of approval requests to retrieve. Must be one of the // following values: // - // - [not set]: Requests that are pending or have active approvals. - // - ALL: All requests. - // - PENDING: Only pending requests. - // - ACTIVE: Only active (i.e. currently approved) requests. - // - DISMISSED: Only dismissed (including expired) requests. - // + // * [not set]: Requests that are pending or have active approvals. + // * ALL: All requests. + // * PENDING: Only pending requests. + // * ACTIVE: Only active (i.e. currently approved) requests. + // * DISMISSED: Only requests that have been dismissed, or requests that + // are not approved and past expiration. + // * EXPIRED: Only requests that have been approved, and the approval has + // expired. + // * HISTORY: Active, dismissed and expired requests. string filter = 2; // Requested page size. @@ -433,14 +620,20 @@ message ListApprovalRequestsResponse { // Request to get an approval request. message GetApprovalRequestMessage { - // Name of the approval request to retrieve. - string name = 1; + // The name of the approval request to retrieve. + // Format: + // "{projects|folders|organizations}/{id}/approvalRequests/{approval_request}" + string name = 1 [(google.api.resource_reference) = { + type: "accessapproval.googleapis.com/ApprovalRequest" + }]; } // Request to approve an ApprovalRequest. message ApproveApprovalRequestMessage { // Name of the approval request to approve. - string name = 1; + string name = 1 [(google.api.resource_reference) = { + type: "accessapproval.googleapis.com/ApprovalRequest" + }]; // The expiration time of this approval. google.protobuf.Timestamp expire_time = 2; @@ -449,13 +642,26 @@ message ApproveApprovalRequestMessage { // Request to dismiss an approval request. message DismissApprovalRequestMessage { // Name of the ApprovalRequest to dismiss. - string name = 1; + string name = 1 [(google.api.resource_reference) = { + type: "accessapproval.googleapis.com/ApprovalRequest" + }]; +} + +// Request to invalidate an existing approval. +message InvalidateApprovalRequestMessage { + // Name of the ApprovalRequest to invalidate. + string name = 1 [(google.api.resource_reference) = { + type: "accessapproval.googleapis.com/ApprovalRequest" + }]; } // Request to get access approval settings. message GetAccessApprovalSettingsMessage { - // Name of the AccessApprovalSettings to retrieve. - string name = 1; + // The name of the AccessApprovalSettings to retrieve. + // Format: "{projects|folders|organizations}/{id}/accessApprovalSettings" + string name = 1 [(google.api.resource_reference) = { + type: "accessapproval.googleapis.com/AccessApprovalSettings" + }]; } // Request to update access approval settings. @@ -479,5 +685,13 @@ message UpdateAccessApprovalSettingsMessage { // Request to delete access approval settings. message DeleteAccessApprovalSettingsMessage { // Name of the AccessApprovalSettings to delete. + string name = 1 [(google.api.resource_reference) = { + type: "accessapproval.googleapis.com/AccessApprovalSettings" + }]; +} + +// Request to get an Access Approval service account. +message GetAccessApprovalServiceAccountMessage { + // Name of the AccessApprovalServiceAccount to retrieve. string name = 1; } diff --git a/google/cloud/accessapproval/v1/accessapproval_grpc_service_config.json b/google/cloud/accessapproval/v1/accessapproval_grpc_service_config.json index 7d505a0ef..03f40e13a 100644 --- a/google/cloud/accessapproval/v1/accessapproval_grpc_service_config.json +++ b/google/cloud/accessapproval/v1/accessapproval_grpc_service_config.json @@ -21,6 +21,7 @@ "name": [ {"service": "google.cloud.accessapproval.v1.AccessApproval", "method": "ApproveApprovalRequest"}, {"service": "google.cloud.accessapproval.v1.AccessApproval", "method": "DismissApprovalRequest"}, + {"service": "google.cloud.accessapproval.v1.AccessApproval", "method": "InvalidateApprovalRequest"}, {"service": "google.cloud.accessapproval.v1.AccessApproval", "method": "UpdateAccessApprovalSettings"}, {"service": "google.cloud.accessapproval.v1.AccessApproval", "method": "DeleteAccessApprovalSettings"} ], diff --git a/google/cloud/aiplatform/BUILD.bazel b/google/cloud/aiplatform/BUILD.bazel new file mode 100644 index 000000000..b71915569 --- /dev/null +++ b/google/cloud/aiplatform/BUILD.bazel @@ -0,0 +1,41 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-ai_platform. + +# 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 aiplatform. +# 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 = "aiplatform_ruby_wrapper", + srcs = ["//google/cloud/aiplatform/v1:aiplatform_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-ai_platform", + "ruby-cloud-wrapper-of=v1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/vertex-ai/docs/", + "ruby-cloud-api-id=aiplatform.googleapis.com", + "ruby-cloud-api-shortname=aiplatform", + "ruby-cloud-gem-namespace=Google::Cloud::AIPlatform", + "ruby-cloud-service-override=AiPlatform=AIPlatform", + ], + 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", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-aiplatform-ruby", + deps = [ + ":aiplatform_ruby_wrapper", + ], +) diff --git a/google/cloud/aiplatform/v1/BUILD.bazel b/google/cloud/aiplatform/v1/BUILD.bazel index 36345b872..2fb56baa1 100644 --- a/google/cloud/aiplatform/v1/BUILD.bazel +++ b/google/cloud/aiplatform/v1/BUILD.bazel @@ -55,6 +55,7 @@ proto_library( "feature_monitoring_stats.proto", "feature_selector.proto", "featurestore.proto", + "featurestore_monitoring.proto", "featurestore_online_service.proto", "featurestore_service.proto", "hyperparameter_tuning_job.proto", @@ -80,10 +81,12 @@ proto_library( "model_monitoring.proto", "model_service.proto", "operation.proto", + "pipeline_failure_policy.proto", "pipeline_job.proto", "pipeline_service.proto", "pipeline_state.proto", "prediction_service.proto", + "saved_query.proto", "specialist_pool.proto", "specialist_pool_service.proto", "study.proto", @@ -123,6 +126,8 @@ proto_library_with_info( deps = [ ":aiplatform_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ] + _PROTO_SUBPACKAGE_DEPS, ) @@ -166,13 +171,19 @@ java_grpc_library( java_gapic_library( name = "aiplatform_java_gapic", srcs = [":aiplatform_proto_with_info"], + gapic_yaml = "aiplatform_gapic.yaml", grpc_service_config = "aiplatform_grpc_service_config.json", + service_yaml = "aiplatform_v1.yaml", test_deps = [ ":aiplatform_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ] + _JAVA_PROTO_SUBPACKAGE_DEPS, deps = [ ":aiplatform_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ] + _JAVA_PROTO_SUBPACKAGE_DEPS, ) @@ -181,12 +192,19 @@ java_gapic_test( test_classes = [ "com.google.cloud.aiplatform.v1.DatasetServiceClientTest", "com.google.cloud.aiplatform.v1.EndpointServiceClientTest", + "com.google.cloud.aiplatform.v1.FeaturestoreOnlineServingServiceClientTest", + "com.google.cloud.aiplatform.v1.FeaturestoreServiceClientTest", + "com.google.cloud.aiplatform.v1.IndexEndpointServiceClientTest", + "com.google.cloud.aiplatform.v1.IndexServiceClientTest", "com.google.cloud.aiplatform.v1.JobServiceClientTest", + "com.google.cloud.aiplatform.v1.MetadataServiceClientTest", "com.google.cloud.aiplatform.v1.MigrationServiceClientTest", "com.google.cloud.aiplatform.v1.ModelServiceClientTest", "com.google.cloud.aiplatform.v1.PipelineServiceClientTest", "com.google.cloud.aiplatform.v1.PredictionServiceClientTest", "com.google.cloud.aiplatform.v1.SpecialistPoolServiceClientTest", + "com.google.cloud.aiplatform.v1.TensorboardServiceClientTest", + "com.google.cloud.aiplatform.v1.VizierServiceClientTest", ], runtime_deps = [":aiplatform_java_gapic_test"], ) @@ -237,6 +255,8 @@ go_gapic_library( deps = [ ":aiplatform_go_proto", "//google/api:httpbody_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", @@ -270,6 +290,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) _PY_GAPIC_SUBPACKAGE_DEPS = [ @@ -283,6 +304,21 @@ py_gapic_library( name = "aiplatform_py_gapic", srcs = [":aiplatform_proto"], grpc_service_config = "aiplatform_grpc_service_config.json", + service_yaml = "aiplatform_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "aiplatform_py_gapic_test", + srcs = [ + "aiplatform_py_gapic_pytest.py", + "aiplatform_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":aiplatform_py_gapic"], ) # Open Source Packages @@ -400,6 +436,7 @@ ruby_cloud_gapic_library( grpc_service_config = "aiplatform_grpc_service_config.json", 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", deps = [ ":aiplatform_ruby_grpc", ":aiplatform_ruby_proto", @@ -457,6 +494,7 @@ csharp_gapic_assembly_pkg( # srcs = [":aiplatform_proto_with_info"], # common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", # grpc_service_config = "aiplatform_grpc_service_config.json", +# service_yaml = "aiplatform_v1.yaml", # deps = [ # ":aiplatform_csharp_grpc", # ":aiplatform_csharp_proto", diff --git a/google/cloud/aiplatform/v1/accelerator_type.proto b/google/cloud/aiplatform/v1/accelerator_type.proto index 0bd6d10ae..726ec203d 100644 --- a/google/cloud/aiplatform/v1/accelerator_type.proto +++ b/google/cloud/aiplatform/v1/accelerator_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; option java_multiple_files = true; @@ -48,4 +46,10 @@ enum AcceleratorType { // Nvidia Tesla A100 GPU. NVIDIA_TESLA_A100 = 8; + + // TPU v2. + TPU_V2 = 6; + + // TPU v3. + TPU_V3 = 7; } diff --git a/google/cloud/aiplatform/v1/aiplatform_v1.yaml b/google/cloud/aiplatform/v1/aiplatform_v1.yaml index efd3c39dd..2ece033b3 100644 --- a/google/cloud/aiplatform/v1/aiplatform_v1.yaml +++ b/google/cloud/aiplatform/v1/aiplatform_v1.yaml @@ -19,6 +19,9 @@ apis: - name: google.cloud.aiplatform.v1.SpecialistPoolService - name: google.cloud.aiplatform.v1.TensorboardService - name: google.cloud.aiplatform.v1.VizierService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: - name: google.cloud.aiplatform.v1.BatchCreateFeaturesOperationMetadata @@ -137,9 +140,9 @@ backend: - selector: 'google.cloud.aiplatform.v1.FeaturestoreService.*' deadline: 60.0 - selector: 'google.cloud.aiplatform.v1.IndexEndpointService.*' - deadline: 30.0 + deadline: 60.0 - selector: 'google.cloud.aiplatform.v1.IndexService.*' - deadline: 30.0 + deadline: 60.0 - selector: 'google.cloud.aiplatform.v1.JobService.*' deadline: 60.0 - selector: 'google.cloud.aiplatform.v1.MetadataService.*' @@ -179,6 +182,20 @@ http: get: '/ui/{name=projects/*}/locations' additional_bindings: - get: '/v1/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy' + additional_bindings: + - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions' + additional_bindings: + - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:testIamPermissions' - selector: google.longrunning.Operations.CancelOperation post: '/ui/{name=projects/*/locations/*/operations/*}:cancel' additional_bindings: @@ -187,6 +204,7 @@ http: - post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}:cancel' @@ -216,6 +234,7 @@ http: - post: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/endpoints/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/featurestores/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}:cancel' @@ -246,6 +265,7 @@ http: - delete: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}' @@ -275,6 +295,7 @@ http: - delete: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}' + - delete: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/endpoints/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/featurestores/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}' @@ -305,6 +326,7 @@ http: - get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/edgeDeploymentJobs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}' @@ -335,6 +357,7 @@ http: - get: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}' + - get: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/endpoints/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/featurestores/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}' @@ -365,6 +388,7 @@ http: - get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*}/operations' + - get: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*}/operations' - get: '/ui/{name=projects/*/locations/*/edgeDevices/*}/operations' - get: '/ui/{name=projects/*/locations/*/endpoints/*}/operations' - get: '/ui/{name=projects/*/locations/*/featurestores/*}/operations' @@ -394,6 +418,7 @@ http: - get: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations' - get: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}/operations' - get: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*}/operations' + - get: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*}/operations' - get: '/v1/{name=projects/*/locations/*/endpoints/*}/operations' - get: '/v1/{name=projects/*/locations/*/featurestores/*}/operations' - get: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}/operations' @@ -424,6 +449,7 @@ http: - post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}:wait' @@ -453,6 +479,7 @@ http: - post: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:wait' + - post: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/endpoints/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/featurestores/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}:wait' diff --git a/google/cloud/aiplatform/v1/annotation.proto b/google/cloud/aiplatform/v1/annotation.proto index 91b768e47..3a1048090 100644 --- a/google/cloud/aiplatform/v1/annotation.proto +++ b/google/cloud/aiplatform/v1/annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,11 +18,9 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; - import "google/cloud/aiplatform/v1/user_action_reference.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/annotation_spec.proto b/google/cloud/aiplatform/v1/annotation_spec.proto index b4727ac90..3082e3ee9 100644 --- a/google/cloud/aiplatform/v1/annotation_spec.proto +++ b/google/cloud/aiplatform/v1/annotation_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/artifact.proto b/google/cloud/aiplatform/v1/artifact.proto index c34a76fa5..d7ef997ad 100644 --- a/google/cloud/aiplatform/v1/artifact.proto +++ b/google/cloud/aiplatform/v1/artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/batch_prediction_job.proto b/google/cloud/aiplatform/v1/batch_prediction_job.proto index a793e57f4..21568cee0 100644 --- a/google/cloud/aiplatform/v1/batch_prediction_job.proto +++ b/google/cloud/aiplatform/v1/batch_prediction_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -25,12 +25,10 @@ import "google/cloud/aiplatform/v1/io.proto"; import "google/cloud/aiplatform/v1/job_state.proto"; import "google/cloud/aiplatform/v1/machine_resources.proto"; import "google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto"; -import "google/cloud/aiplatform/v1/model_monitoring.proto"; import "google/cloud/aiplatform/v1/unmanaged_container_model.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -156,15 +154,21 @@ message BatchPredictionJob { // Required. The user-defined name of this BatchPredictionJob. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - // The name of the Model resoure that produces the predictions via this job, + // The name of the Model resource that produces the predictions via this job, // must share the same ancestor Location. // Starting this job has no impact on any existing deployments of the Model // and their resources. // Exactly one of model and unmanaged_container_model must be set. + // + // The model resource name may contain version id or version alias to specify + // the version, if no version is specified, the default version will be used. string model = 3 [(google.api.resource_reference) = { type: "aiplatform.googleapis.com/Model" }]; + // Output only. The version ID of the Model that produces the predictions via this job. + string model_version_id = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Contains model information necessary to perform batch prediction without // requiring uploading to model registry. // Exactly one of model and unmanaged_container_model must be set. diff --git a/google/cloud/aiplatform/v1/completion_stats.proto b/google/cloud/aiplatform/v1/completion_stats.proto index 09288808c..a1d7b3238 100644 --- a/google/cloud/aiplatform/v1/completion_stats.proto +++ b/google/cloud/aiplatform/v1/completion_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,8 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; -import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -43,4 +41,8 @@ message CompletionStats { // Set to -1 if the number is unknown (for example, the operation failed // before the total entity number could be collected). int64 incomplete_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of the successful forecast points that are generated by the + // forecasting model. This is ONLY used by the forecasting batch prediction. + int64 successful_forecast_point_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/context.proto b/google/cloud/aiplatform/v1/context.proto index 0305987f0..b602a5504 100644 --- a/google/cloud/aiplatform/v1/context.proto +++ b/google/cloud/aiplatform/v1/context.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/custom_job.proto b/google/cloud/aiplatform/v1/custom_job.proto index 9c947bf35..af3de68b7 100644 --- a/google/cloud/aiplatform/v1/custom_job.proto +++ b/google/cloud/aiplatform/v1/custom_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -26,7 +26,6 @@ import "google/cloud/aiplatform/v1/machine_resources.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -123,7 +122,7 @@ message CustomJobSpec { // for the CustomJob's project is used. string service_account = 4; - // The full name of the Compute Engine + // Optional. The full name of the Compute Engine // [network](/compute/docs/networks-and-firewalls#networks) to which the Job // should be peered. For example, `projects/12345/global/networks/myVPC`. // [Format](/compute/docs/reference/rest/v1/networks/insert) @@ -136,9 +135,22 @@ message CustomJobSpec { // AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). // // If this field is left unspecified, the job is not peered with any network. - string network = 5 [(google.api.resource_reference) = { - type: "compute.googleapis.com/Network" - }]; + string network = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "compute.googleapis.com/Network" + } + ]; + + // Optional. A list of names for the reserved ip ranges under the VPC network + // that can be used for this job. + // + // If set, we will deploy the job within the provided ip ranges. Otherwise, + // the job will be deployed to any ip ranges under the provided VPC + // network. + // + // Example: ['vertex-ai-ip-range']. + repeated string reserved_ip_ranges = 13 [(google.api.field_behavior) = OPTIONAL]; // The Cloud Storage location to store the output of this CustomJob or // HyperparameterTuningJob. For HyperparameterTuningJob, @@ -204,6 +216,9 @@ message WorkerPoolSpec { // Optional. The number of worker replicas to use for this worker pool. int64 replica_count = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. List of NFS mount spec. + repeated NfsMount nfs_mounts = 4 [(google.api.field_behavior) = OPTIONAL]; + // Disk spec. DiskSpec disk_spec = 5; } diff --git a/google/cloud/aiplatform/v1/data_item.proto b/google/cloud/aiplatform/v1/data_item.proto index f2313209c..10431e743 100644 --- a/google/cloud/aiplatform/v1/data_item.proto +++ b/google/cloud/aiplatform/v1/data_item.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ 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"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/data_labeling_job.proto b/google/cloud/aiplatform/v1/data_labeling_job.proto index 82ff7cab5..f136190ba 100644 --- a/google/cloud/aiplatform/v1/data_labeling_job.proto +++ b/google/cloud/aiplatform/v1/data_labeling_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,15 +18,12 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1/accelerator_type.proto"; import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/cloud/aiplatform/v1/job_state.proto"; -import "google/cloud/aiplatform/v1/specialist_pool.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; import "google/type/money.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/dataset.proto b/google/cloud/aiplatform/v1/dataset.proto index da467816d..6c686986a 100644 --- a/google/cloud/aiplatform/v1/dataset.proto +++ b/google/cloud/aiplatform/v1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/cloud/aiplatform/v1/io.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/dataset_service.proto b/google/cloud/aiplatform/v1/dataset_service.proto index d07ecf58a..c26f60e33 100644 --- a/google/cloud/aiplatform/v1/dataset_service.proto +++ b/google/cloud/aiplatform/v1/dataset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -25,7 +25,7 @@ import "google/cloud/aiplatform/v1/annotation_spec.proto"; import "google/cloud/aiplatform/v1/data_item.proto"; import "google/cloud/aiplatform/v1/dataset.proto"; import "google/cloud/aiplatform/v1/operation.proto"; -import "google/cloud/aiplatform/v1/training_pipeline.proto"; +import "google/cloud/aiplatform/v1/saved_query.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; @@ -127,6 +127,14 @@ service DatasetService { option (google.api.method_signature) = "parent"; } + // Lists SavedQueries in a Dataset. + rpc ListSavedQueries(ListSavedQueriesRequest) returns (ListSavedQueriesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/datasets/*}/savedQueries" + }; + option (google.api.method_signature) = "parent"; + } + // Gets an AnnotationSpec. rpc GetAnnotationSpec(GetAnnotationSpecRequest) returns (AnnotationSpec) { option (google.api.http) = { @@ -216,6 +224,7 @@ message ListDatasetsRequest { // * A key including a space must be quoted. `labels."a key"`. // // Some examples: + // // * `displayName="myDisplayName"` // * `labels.myKey="myValue"` string filter = 2; @@ -232,6 +241,7 @@ message ListDatasetsRequest { // 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` @@ -358,6 +368,44 @@ message ListDataItemsResponse { string next_page_token = 2; } +// Request message for [DatasetService.ListSavedQueries][google.cloud.aiplatform.v1.DatasetService.ListSavedQueries]. +message ListSavedQueriesRequest { + // Required. The resource name of the Dataset to list SavedQueries from. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + } + ]; + + // The standard list filter. + 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; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + string order_by = 6; +} + +// Response message for [DatasetService.ListSavedQueries][google.cloud.aiplatform.v1.DatasetService.ListSavedQueries]. +message ListSavedQueriesResponse { + // A list of SavedQueries that match the specified filter in the request. + repeated SavedQuery saved_queries = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + // Request message for [DatasetService.GetAnnotationSpec][google.cloud.aiplatform.v1.DatasetService.GetAnnotationSpec]. message GetAnnotationSpecRequest { // Required. The name of the AnnotationSpec resource. diff --git a/google/cloud/aiplatform/v1/deployed_index_ref.proto b/google/cloud/aiplatform/v1/deployed_index_ref.proto index cd0a8595b..35c8b30c7 100644 --- a/google/cloud/aiplatform/v1/deployed_index_ref.proto +++ b/google/cloud/aiplatform/v1/deployed_index_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/deployed_model_ref.proto b/google/cloud/aiplatform/v1/deployed_model_ref.proto index 0950cbb9f..8a7b1eb79 100644 --- a/google/cloud/aiplatform/v1/deployed_model_ref.proto +++ b/google/cloud/aiplatform/v1/deployed_model_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/encryption_spec.proto b/google/cloud/aiplatform/v1/encryption_spec.proto index ee7a96b83..15a799019 100644 --- a/google/cloud/aiplatform/v1/encryption_spec.proto +++ b/google/cloud/aiplatform/v1/encryption_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/endpoint.proto b/google/cloud/aiplatform/v1/endpoint.proto index 69c65501f..6d48f8f22 100644 --- a/google/cloud/aiplatform/v1/endpoint.proto +++ b/google/cloud/aiplatform/v1/endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,10 +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/model_deployment_monitoring_job.proto"; -import "google/cloud/aiplatform/v1/model_monitoring.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -112,12 +109,12 @@ message Endpoint { type: "compute.googleapis.com/Network" }]; - // If true, expose the Endpoint via private service connect. + // Deprecated: If true, expose the Endpoint via private service connect. // // Only one of the fields, [network][google.cloud.aiplatform.v1.Endpoint.network] or // [enable_private_service_connect][google.cloud.aiplatform.v1.Endpoint.enable_private_service_connect], // can be set. - bool enable_private_service_connect = 17; + bool enable_private_service_connect = 17 [deprecated = true]; // Output only. Resource name of the Model Monitoring job associated with this Endpoint // if monitoring is enabled by [CreateModelDeploymentMonitoringJob][]. @@ -129,6 +126,9 @@ message Endpoint { type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob" } ]; + + // Configures the request-response logging for online prediction. + PredictRequestResponseLoggingConfig predict_request_response_logging_config = 18; } // A deployment of a Model. Endpoints contain one or more DeployedModels. @@ -154,8 +154,11 @@ message DeployedModel { // This value should be 1-10 characters, and valid characters are /[0-9]/. string id = 1 [(google.api.field_behavior) = IMMUTABLE]; - // Required. The name of the Model that this is the deployment of. Note that the Model - // may be in a different location than the DeployedModel's Endpoint. + // Required. The resource name of the Model that this is the deployment of. Note that + // the Model may be in a different location than the DeployedModel's Endpoint. + // + // The resource name may contain version id or version alias to specify the + // version, if no version is specified, the default version will be deployed. string model = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -163,6 +166,9 @@ message DeployedModel { } ]; + // Output only. The version ID of the model that is deployed. + string model_version_id = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The display name of the DeployedModel. If not provided upon creation, // the Model's display_name is used. string display_name = 3; @@ -232,3 +238,21 @@ message PrivateEndpoints { // connect is enabled. string service_attachment = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Configuration for logging request-response to a BigQuery table. +message PredictRequestResponseLoggingConfig { + // If logging is enabled or not. + bool enabled = 1; + + // Percentage of requests to be logged, expressed as a fraction in + // range(0,1]. + double sampling_rate = 2; + + // BigQuery table for logging. + // If only given a project, a new dataset will be created with name + // `logging__` where + // will be made BigQuery-dataset-name compatible (e.g. + // most special characters will become underscores). If no table name is + // given, a new table will be created with name `request_response_logging` + BigQueryDestination bigquery_destination = 3; +} diff --git a/google/cloud/aiplatform/v1/endpoint_service.proto b/google/cloud/aiplatform/v1/endpoint_service.proto index bb38292a6..0108728cc 100644 --- a/google/cloud/aiplatform/v1/endpoint_service.proto +++ b/google/cloud/aiplatform/v1/endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/aiplatform/v1/entity_type.proto b/google/cloud/aiplatform/v1/entity_type.proto index 497aa96dd..073b53398 100644 --- a/google/cloud/aiplatform/v1/entity_type.proto +++ b/google/cloud/aiplatform/v1/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,9 +18,8 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1/feature.proto"; +import "google/cloud/aiplatform/v1/featurestore_monitoring.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -74,4 +73,14 @@ message EntityType { // Optional. Used to perform a consistent read-modify-write updates. If not set, a blind // "overwrite" update happens. string etag = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default monitoring configuration for all Features with value type + // ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL, STRING, DOUBLE or INT64 under this + // EntityType. + // + // If this is populated with + // [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot + // analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is + // disabled. + FeaturestoreMonitoringConfig monitoring_config = 8 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/aiplatform/v1/env_var.proto b/google/cloud/aiplatform/v1/env_var.proto index 1d6aa59f3..34722e362 100644 --- a/google/cloud/aiplatform/v1/env_var.proto +++ b/google/cloud/aiplatform/v1/env_var.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/event.proto b/google/cloud/aiplatform/v1/event.proto index f4c928aab..f9f925db5 100644 --- a/google/cloud/aiplatform/v1/event.proto +++ b/google/cloud/aiplatform/v1/event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/execution.proto b/google/cloud/aiplatform/v1/execution.proto index c883d68ed..a2b7c2b90 100644 --- a/google/cloud/aiplatform/v1/execution.proto +++ b/google/cloud/aiplatform/v1/execution.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/explanation.proto b/google/cloud/aiplatform/v1/explanation.proto index 100d7061a..0c00d8a22 100644 --- a/google/cloud/aiplatform/v1/explanation.proto +++ b/google/cloud/aiplatform/v1/explanation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,9 +18,7 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1/explanation_metadata.proto"; -import "google/cloud/aiplatform/v1/io.proto"; import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -48,6 +46,12 @@ message Explanation { // the attributions are stored by [Attribution.output_index][google.cloud.aiplatform.v1.Attribution.output_index] in the same // order as they appear in the output_indices. repeated Attribution attributions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of the nearest neighbors for example-based explanations. + // + // For models deployed with the examples explanations feature enabled, the + // attributions field is empty and instead the neighbors field is populated. + repeated Neighbor neighbors = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Aggregated explanation metrics for a Model over a set of instances. @@ -164,13 +168,22 @@ message Attribution { string output_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Neighbors for example-based explanations. +message Neighbor { + // Output only. The neighbor id. + string neighbor_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The neighbor distance. + double neighbor_distance = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Specification of Model explanation. message ExplanationSpec { // Required. Parameters that configure explaining of the Model's predictions. ExplanationParameters parameters = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Metadata describing the Model's input and output for explanation. - ExplanationMetadata metadata = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. Metadata describing the Model's input and output for explanation. + ExplanationMetadata metadata = 2 [(google.api.field_behavior) = OPTIONAL]; } // Parameters to configure explaining for Model's predictions. @@ -211,7 +224,7 @@ message ExplanationParameters { // explaining. // // If not populated, returns attributions for [top_k][google.cloud.aiplatform.v1.ExplanationParameters.top_k] indices of outputs. - // If neither top_k nor output_indeices is populated, returns the argmax + // If neither top_k nor output_indices is populated, returns the argmax // index of the outputs. // // Only applicable to Models that predict multiple outputs (e,g, multi-class @@ -377,6 +390,9 @@ message ExplanationSpecOverride { // The metadata to be overridden. If not specified, no metadata is overridden. ExplanationMetadataOverride metadata = 2; + + // The example-based explanations parameter overrides. + ExamplesOverride examples_override = 3; } // The [ExplanationMetadata][google.cloud.aiplatform.v1.ExplanationMetadata] entries that can be overridden at @@ -401,3 +417,45 @@ message ExplanationMetadataOverride { // overridden. map inputs = 1 [(google.api.field_behavior) = REQUIRED]; } + +// Overrides for example-based explanations. +message ExamplesOverride { + // Data format enum. + enum DataFormat { + // Unspecified format. Must not be used. + DATA_FORMAT_UNSPECIFIED = 0; + + // Provided data is a set of model inputs. + INSTANCES = 1; + + // Provided data is a set of embeddings. + EMBEDDINGS = 2; + } + + // The number of neighbors to return. + int32 neighbor_count = 1; + + // The number of neighbors to return that have the same crowding tag. + int32 crowding_count = 2; + + // Restrict the resulting nearest neighbors to respect these constraints. + repeated ExamplesRestrictionsNamespace restrictions = 3; + + // If true, return the embeddings instead of neighbors. + bool return_embeddings = 4; + + // The format of the data being provided with each call. + DataFormat data_format = 5; +} + +// Restrictions namespace for example-based explanations overrides. +message ExamplesRestrictionsNamespace { + // The namespace name. + string namespace_name = 1; + + // The list of allowed tags. + repeated string allow = 2; + + // The list of deny tags. + repeated string deny = 3; +} diff --git a/google/cloud/aiplatform/v1/explanation_metadata.proto b/google/cloud/aiplatform/v1/explanation_metadata.proto index 5189330b3..5ee0c1ce3 100644 --- a/google/cloud/aiplatform/v1/explanation_metadata.proto +++ b/google/cloud/aiplatform/v1/explanation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -393,4 +392,7 @@ message ExplanationMetadata { // than the one given on input. The output URI will point to a location where // the user only has a read access. string feature_attributions_schema_uri = 3; + + // Name of the source to generate embeddings for example based explanations. + string latent_space_source = 5; } diff --git a/google/cloud/aiplatform/v1/feature.proto b/google/cloud/aiplatform/v1/feature.proto index 6614fb519..690bb3641 100644 --- a/google/cloud/aiplatform/v1/feature.proto +++ b/google/cloud/aiplatform/v1/feature.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/feature_monitoring_stats.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -39,6 +38,33 @@ message Feature { pattern: "projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}" }; + // A list of historical [Snapshot + // Analysis][FeaturestoreMonitoringConfig.SnapshotAnalysis] or [Import Feature + // Analysis] [FeaturestoreMonitoringConfig.ImportFeatureAnalysis] stats + // requested by user, sorted by [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1.FeatureStatsAnomaly.start_time] descending. + message MonitoringStatsAnomaly { + // If the objective in the request is both + // Import Feature Analysis and Snapshot Analysis, this objective could be + // one of them. Otherwise, this objective should be the same as the + // objective in the request. + enum Objective { + // If it's OBJECTIVE_UNSPECIFIED, monitoring_stats will be empty. + OBJECTIVE_UNSPECIFIED = 0; + + // Stats are generated by Import Feature Analysis. + IMPORT_FEATURE_ANALYSIS = 1; + + // Stats are generated by Snapshot Analysis. + SNAPSHOT_ANALYSIS = 2; + } + + // Output only. The objective for each stats. + Objective objective = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The stats and anomalies generated at specific timestamp. + FeatureStatsAnomaly feature_stats_anomaly = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // An enum representing the value type of a feature. enum ValueType { // The value type is unspecified. @@ -113,4 +139,16 @@ message Feature { // Used to perform a consistent read-modify-write updates. If not set, a blind // "overwrite" update happens. string etag = 7; + + // Optional. If not set, use the monitoring_config defined for the EntityType this + // Feature belongs to. + // Only Features with type ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL, STRING, DOUBLE or + // INT64 can enable monitoring. + // + // If set to true, all types of data monitoring are disabled despite the + // config on EntityType. + bool disable_monitoring = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The list of historical stats and anomalies with specified objectives. + repeated MonitoringStatsAnomaly monitoring_stats_anomalies = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/feature_monitoring_stats.proto b/google/cloud/aiplatform/v1/feature_monitoring_stats.proto index 4dbba85b9..1138ec8c3 100644 --- a/google/cloud/aiplatform/v1/feature_monitoring_stats.proto +++ b/google/cloud/aiplatform/v1/feature_monitoring_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/feature_selector.proto b/google/cloud/aiplatform/v1/feature_selector.proto index 5eaa6fc77..7a4a8e664 100644 --- a/google/cloud/aiplatform/v1/feature_selector.proto +++ b/google/cloud/aiplatform/v1/feature_selector.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/featurestore.proto b/google/cloud/aiplatform/v1/featurestore.proto index eaee0a4b2..4c8a72f59 100644 --- a/google/cloud/aiplatform/v1/featurestore.proto +++ b/google/cloud/aiplatform/v1/featurestore.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -42,30 +41,51 @@ message Featurestore { // OnlineServingConfig specifies the details for provisioning online serving // resources. message OnlineServingConfig { - // The number of nodes for each cluster. The number of nodes will not - // scale automatically but can be scaled manually by providing different - // values when updating. + // Online serving scaling configuration. If min_node_count and + // max_node_count are set to the same value, the cluster will be configured + // with the fixed number of node (no auto-scaling). + message Scaling { + // Required. The minimum number of nodes to scale down to. Must be greater than or + // equal to 1. + int32 min_node_count = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of nodes to scale up to. Must be greater than + // min_node_count, and less than or equal to 10 times of 'min_node_count'. + int32 max_node_count = 2; + } + + // The number of nodes for the online store. The number of nodes doesn't + // scale automatically, but you can manually update the number of + // nodes. If set to 0, the featurestore will not have an + // online store and cannot be used for online serving. int32 fixed_node_count = 2; + + // Online serving scaling configuration. + // Only one of `fixed_node_count` and `scaling` can be set. Setting one will + // reset the other. + Scaling scaling = 4; } - // Possible states a Featurestore can have. + // Possible states a featurestore can have. enum State { // Default value. This value is unused. STATE_UNSPECIFIED = 0; - // State when the Featurestore configuration is not being updated and the - // fields reflect the current configuration of the Featurestore. The - // Featurestore is usable in this state. + // State when the featurestore configuration is not being updated and the + // fields reflect the current configuration of the featurestore. The + // featurestore is usable in this state. STABLE = 1; - // State when the Featurestore configuration is being updated and the fields - // reflect the updated configuration of the Featurestore, not the current - // one. For example, `online_serving_config.fixed_node_count` can take - // minutes to update. While the update is in progress, the Featurestore - // will be in the UPDATING state and the value of `fixed_node_count` will be - // the updated value. Until the update completes, the actual number of nodes - // can still be the original value of `fixed_node_count`. The Featurestore - // is still usable in this state. + // The state of the featurestore configuration when it is being updated. + // During an update, the fields reflect either the original configuration + // or the updated configuration of the featurestore. For example, + // `online_serving_config.fixed_node_count` can take minutes to update. + // While the update is in progress, the featurestore is in the UPDATING + // state, and the value of `fixed_node_count` can be the original value or + // the updated value, depending on the progress of the operation. Until the + // update completes, the actual number of nodes can still be the original + // value of `fixed_node_count`. The featurestore is still usable in this + // state. UPDATING = 2; } @@ -96,8 +116,9 @@ message Featurestore { // and are immutable. map labels = 6 [(google.api.field_behavior) = OPTIONAL]; - // Required. Config for online serving resources. - OnlineServingConfig online_serving_config = 7 [(google.api.field_behavior) = REQUIRED]; + // Optional. Config for online storage resources. If unset, the featurestore will + // not have an online store and cannot be used for online serving. + OnlineServingConfig online_serving_config = 7 [(google.api.field_behavior) = OPTIONAL]; // Output only. State of the featurestore. State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/aiplatform/v1/featurestore_monitoring.proto b/google/cloud/aiplatform/v1/featurestore_monitoring.proto new file mode 100644 index 000000000..7233658b0 --- /dev/null +++ b/google/cloud/aiplatform/v1/featurestore_monitoring.proto @@ -0,0 +1,149 @@ +// 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.cloud.aiplatform.v1; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "FeaturestoreMonitoringProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Configuration of how features in Featurestore are monitored. +message FeaturestoreMonitoringConfig { + // Configuration of the Featurestore's Snapshot Analysis Based Monitoring. + // This type of analysis generates statistics for each Feature based on a + // snapshot of the latest feature value of each entities every + // monitoring_interval. + message SnapshotAnalysis { + // The monitoring schedule for snapshot analysis. + // For EntityType-level config: + // unset / disabled = true indicates disabled by + // default for Features under it; otherwise by default enable snapshot + // analysis monitoring with monitoring_interval for Features under it. + // Feature-level config: + // disabled = true indicates disabled regardless of the EntityType-level + // config; unset monitoring_interval indicates going with EntityType-level + // config; otherwise run snapshot analysis monitoring with + // monitoring_interval regardless of the EntityType-level config. + // Explicitly Disable the snapshot analysis based monitoring. + bool disabled = 1; + + // Configuration of the snapshot analysis based monitoring pipeline + // running interval. The value indicates number of days. + // If both + // [FeaturestoreMonitoringConfig.SnapshotAnalysis.monitoring_interval_days][google.cloud.aiplatform.v1.FeaturestoreMonitoringConfig.SnapshotAnalysis.monitoring_interval_days] + // and [FeaturestoreMonitoringConfig.SnapshotAnalysis.monitoring_interval][] + // are set when creating/updating EntityTypes/Features, + // [FeaturestoreMonitoringConfig.SnapshotAnalysis.monitoring_interval_days][google.cloud.aiplatform.v1.FeaturestoreMonitoringConfig.SnapshotAnalysis.monitoring_interval_days] + // will be used. + int32 monitoring_interval_days = 3; + + // Customized export features time window for snapshot analysis. Unit is one + // day. Default value is 3 weeks. Minimum value is 1 day. Maximum value is + // 4000 days. + int32 staleness_days = 4; + } + + // Configuration of the Featurestore's ImportFeature Analysis Based + // Monitoring. This type of analysis generates statistics for values of each + // Feature imported by every [ImportFeatureValues][] operation. + message ImportFeaturesAnalysis { + // The state defines whether to enable ImportFeature analysis. + enum State { + // Should not be used. + STATE_UNSPECIFIED = 0; + + // The default behavior of whether to enable the monitoring. + // EntityType-level config: disabled. + // Feature-level config: inherited from the configuration of EntityType + // this Feature belongs to. + DEFAULT = 1; + + // Explicitly enables import features analysis. + // EntityType-level config: by default enables import features analysis + // for all Features under it. Feature-level config: enables import + // features analysis regardless of the EntityType-level config. + ENABLED = 2; + + // Explicitly disables import features analysis. + // EntityType-level config: by default disables import features analysis + // for all Features under it. Feature-level config: disables import + // features analysis regardless of the EntityType-level config. + DISABLED = 3; + } + + // Defines the baseline to do anomaly detection for feature values imported + // by each [ImportFeatureValues][] operation. + enum Baseline { + // Should not be used. + BASELINE_UNSPECIFIED = 0; + + // Choose the later one statistics generated by either most recent + // snapshot analysis or previous import features analysis. If non of them + // exists, skip anomaly detection and only generate a statistics. + LATEST_STATS = 1; + + // Use the statistics generated by the most recent snapshot analysis if + // exists. + MOST_RECENT_SNAPSHOT_STATS = 2; + + // Use the statistics generated by the previous import features analysis + // if exists. + PREVIOUS_IMPORT_FEATURES_STATS = 3; + } + + // Whether to enable / disable / inherite default hebavior for import + // features analysis. + State state = 1; + + // The baseline used to do anomaly detection for the statistics generated by + // import features analysis. + Baseline anomaly_detection_baseline = 2; + } + + // The config for Featurestore Monitoring threshold. + message ThresholdConfig { + oneof threshold { + // Specify a threshold value that can trigger the alert. + // 1. For categorical feature, the distribution distance is calculated by + // L-inifinity norm. + // 2. For numerical feature, the distribution distance is calculated by + // Jensen–Shannon divergence. Each feature must have a non-zero threshold + // if they need to be monitored. Otherwise no alert will be triggered for + // that feature. + double value = 1; + } + } + + // The config for Snapshot Analysis Based Feature Monitoring. + SnapshotAnalysis snapshot_analysis = 1; + + // The config for ImportFeatures Analysis Based Feature Monitoring. + ImportFeaturesAnalysis import_features_analysis = 2; + + // Threshold for numerical features of anomaly detection. + // This is shared by all objectives of Featurestore Monitoring for numerical + // features (i.e. Features with type ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) DOUBLE or INT64). + ThresholdConfig numerical_threshold_config = 3; + + // Threshold for categorical features of anomaly detection. + // This is shared by all types of Featurestore Monitoring for categorical + // features (i.e. Features with type ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL or STRING). + ThresholdConfig categorical_threshold_config = 4; +} diff --git a/google/cloud/aiplatform/v1/featurestore_online_service.proto b/google/cloud/aiplatform/v1/featurestore_online_service.proto index 285198a3e..915c4c3fb 100644 --- a/google/cloud/aiplatform/v1/featurestore_online_service.proto +++ b/google/cloud/aiplatform/v1/featurestore_online_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -171,7 +171,6 @@ message StreamingReadFeatureValuesRequest { } // Value for a feature. -// NEXT ID: 15 message FeatureValue { // Metadata of feature value. message Metadata { diff --git a/google/cloud/aiplatform/v1/featurestore_service.proto b/google/cloud/aiplatform/v1/featurestore_service.proto index 5ce119860..516092ee1 100644 --- a/google/cloud/aiplatform/v1/featurestore_service.proto +++ b/google/cloud/aiplatform/v1/featurestore_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/entity_type.proto"; import "google/cloud/aiplatform/v1/feature.proto"; -import "google/cloud/aiplatform/v1/feature_monitoring_stats.proto"; import "google/cloud/aiplatform/v1/feature_selector.proto"; import "google/cloud/aiplatform/v1/featurestore.proto"; import "google/cloud/aiplatform/v1/io.proto"; @@ -419,6 +418,7 @@ message UpdateFeaturestoreRequest { // // * `labels` // * `online_serving_config.fixed_node_count` + // * `online_serving_config.scaling` google.protobuf.FieldMask update_mask = 2; } @@ -506,6 +506,9 @@ message ImportFeatureValuesRequest { // If not set, defaults to using 1 worker. The low count ensures minimal // impact on online serving performance. int32 worker_count = 11; + + // If true, API doesn't start ingestion analysis pipeline. + bool disable_ingestion_analysis = 12; } // Response message for [FeaturestoreService.ImportFeatureValues][google.cloud.aiplatform.v1.FeaturestoreService.ImportFeatureValues]. @@ -522,6 +525,10 @@ message ImportFeatureValuesResponse { // * Having a null timestamp. // * Not being parsable (applicable for CSV sources). int64 invalid_row_count = 6; + + // The number rows that weren't ingested due to having feature timestamps + // outside the retention boundary. + int64 timestamp_outside_retention_rows_count = 4; } // Request message for [FeaturestoreService.BatchReadFeatureValues][google.cloud.aiplatform.v1.FeaturestoreService.BatchReadFeatureValues]. @@ -847,7 +854,12 @@ message UpdateEntityTypeRequest { // * `description` // * `labels` // * `monitoring_config.snapshot_analysis.disabled` - // * `monitoring_config.snapshot_analysis.monitoring_interval` + // * `monitoring_config.snapshot_analysis.monitoring_interval_days` + // * `monitoring_config.snapshot_analysis.staleness_days` + // * `monitoring_config.import_features_analysis.state` + // * `monitoring_config.import_features_analysis.anomaly_detection_baseline` + // * `monitoring_config.numerical_threshold_config.value` + // * `monitoring_config.categorical_threshold_config.value` google.protobuf.FieldMask update_mask = 2; } @@ -1139,8 +1151,7 @@ message UpdateFeatureRequest { // // * `description` // * `labels` - // * `monitoring_config.snapshot_analysis.disabled` - // * `monitoring_config.snapshot_analysis.monitoring_interval` + // * `disable_monitoring` google.protobuf.FieldMask update_mask = 2; } @@ -1186,6 +1197,10 @@ message ImportFeatureValuesOperationMetadata { // * Having a null timestamp. // * Not being parsable (applicable for CSV sources). int64 invalid_row_count = 6; + + // The number rows that weren't ingested due to having timestamps outside the + // retention boundary. + int64 timestamp_outside_retention_rows_count = 7; } // Details of operations that exports Features values. diff --git a/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto b/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto index 9a86ae85a..dfe173dcc 100644 --- a/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto +++ b/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -24,7 +24,6 @@ import "google/cloud/aiplatform/v1/job_state.proto"; import "google/cloud/aiplatform/v1/study.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/index.proto b/google/cloud/aiplatform/v1/index.proto index 46242e43b..69fde66a7 100644 --- a/google/cloud/aiplatform/v1/index.proto +++ b/google/cloud/aiplatform/v1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,10 +19,8 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/deployed_index_ref.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -40,6 +38,21 @@ message Index { pattern: "projects/{project}/locations/{location}/indexes/{index}" }; + // The update method of an Index. + enum IndexUpdateMethod { + // Should not be used. + INDEX_UPDATE_METHOD_UNSPECIFIED = 0; + + // BatchUpdate: user can call UpdateIndex with files on Cloud Storage of + // datapoints to update. + BATCH_UPDATE = 1; + + // StreamUpdate: user can call UpsertDatapoints/DeleteDatapoints to update + // the Index and the updates will be applied in corresponding + // DeployedIndexes in nearly real-time. + STREAM_UPDATE = 2; + } + // Output only. The resource name of the Index. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -95,4 +108,65 @@ message Index { // in the Index. Result of any successfully completed Operation on the Index // is reflected in it. google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Stats of the index resource. + IndexStats index_stats = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The update method to use with this Index. If not set, BATCH_UPDATE will be + // used by default. + IndexUpdateMethod index_update_method = 16 [(google.api.field_behavior) = IMMUTABLE]; +} + +// A datapoint of Index. +message IndexDatapoint { + // Restriction of a datapoint which describe its attributes(tokens) from each + // of several attribute categories(namespaces). + message Restriction { + // The namespace of this restriction. eg: color. + string namespace = 1; + + // The attributes to allow in this namespace. eg: 'red' + repeated string allow_list = 2; + + // The attributes to deny in this namespace. eg: 'blue' + repeated string deny_list = 3; + } + + // Crowding tag 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. + message CrowdingTag { + // The attribute value used for crowding. The maximum number of neighbors + // to return per crowding attribute value + // (per_crowding_attribute_num_neighbors) is configured per-query. This + // field is ignored if per_crowding_attribute_num_neighbors is larger than + // the total number of neighbors to return for a given query. + string crowding_attribute = 1; + } + + // 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]. + repeated float feature_vector = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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. + // See: https://cloud.google.com/vertex-ai/docs/matching-engine/filtering + repeated Restriction restricts = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. CrowdingTag of the datapoint, the number of neighbors to return in each + // crowding can be configured during query. + CrowdingTag crowding_tag = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Stats of the Index. +message IndexStats { + // Output only. The number of vectors in the Index. + int64 vectors_count = 1 [(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/google/cloud/aiplatform/v1/index_endpoint.proto b/google/cloud/aiplatform/v1/index_endpoint.proto index 9dadf5d69..9f1e9941b 100644 --- a/google/cloud/aiplatform/v1/index_endpoint.proto +++ b/google/cloud/aiplatform/v1/index_endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,12 +16,10 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; -import "google/cloud/aiplatform/v1/index.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/machine_resources.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -82,9 +80,9 @@ message IndexEndpoint { // Private services access must already be configured for the network. If left // unspecified, the Endpoint is not peered with any network. // - // Only one of the fields, [network][google.cloud.aiplatform.v1.IndexEndpoint.network] or - // [enable_private_service_connect][google.cloud.aiplatform.v1.IndexEndpoint.enable_private_service_connect], - // can be set. + // [network][google.cloud.aiplatform.v1.IndexEndpoint.network] and + // [private_service_connect_config][google.cloud.aiplatform.v1.IndexEndpoint.private_service_connect_config] + // are mutually exclusive. // // [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): // projects/{project}/global/networks/{network}. @@ -92,12 +90,15 @@ message IndexEndpoint { // network name. string network = 9 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If true, expose the IndexEndpoint via private service connect. + // Optional. Deprecated: If true, expose the IndexEndpoint via private service connect. // // Only one of the fields, [network][google.cloud.aiplatform.v1.IndexEndpoint.network] or // [enable_private_service_connect][google.cloud.aiplatform.v1.IndexEndpoint.enable_private_service_connect], // can be set. - bool enable_private_service_connect = 10 [(google.api.field_behavior) = OPTIONAL]; + bool enable_private_service_connect = 10 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL + ]; } // A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes. @@ -154,6 +155,18 @@ message DeployedIndex { // 1000. AutomaticResources automatic_resources = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. A description of resources that are dedicated to the DeployedIndex, and + // that need a higher degree of manual configuration. + // If min_replica_count is not set, the default value is 2 (we don't provide + // SLA when min_replica_count=1). If max_replica_count is not set, the + // default value is min_replica_count. The max allowed replica count is + // 1000. + // + // Available machine types: + // n1-standard-16 + // n1-standard-32 + DedicatedResources dedicated_resources = 16 [(google.api.field_behavior) = OPTIONAL]; + // Optional. If true, private endpoint's access logs are sent to StackDriver Logging. // // These logs are like standard server access logs, containing diff --git a/google/cloud/aiplatform/v1/index_endpoint_service.proto b/google/cloud/aiplatform/v1/index_endpoint_service.proto index 4aa032aa7..8acdb5bc6 100644 --- a/google/cloud/aiplatform/v1/index_endpoint_service.proto +++ b/google/cloud/aiplatform/v1/index_endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/aiplatform/v1/index_service.proto b/google/cloud/aiplatform/v1/index_service.proto index f7b5c01b3..0f6c63256 100644 --- a/google/cloud/aiplatform/v1/index_service.proto +++ b/google/cloud/aiplatform/v1/index_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -93,6 +93,22 @@ service IndexService { metadata_type: "DeleteOperationMetadata" }; } + + // Add/update Datapoints into an Index. + rpc UpsertDatapoints(UpsertDatapointsRequest) returns (UpsertDatapointsResponse) { + option (google.api.http) = { + post: "/v1/{index=projects/*/locations/*/indexes/*}:upsertDatapoints" + body: "*" + }; + } + + // Remove Datapoints from an Index. + rpc RemoveDatapoints(RemoveDatapointsRequest) returns (RemoveDatapointsResponse) { + option (google.api.http) = { + post: "/v1/{index=projects/*/locations/*/indexes/*}:removeDatapoints" + body: "*" + }; + } } // Request message for [IndexService.CreateIndex][google.cloud.aiplatform.v1.IndexService.CreateIndex]. @@ -201,6 +217,48 @@ message DeleteIndexRequest { ]; } +// Request message for [IndexService.UpsertDatapoints][google.cloud.aiplatform.v1.IndexService.UpsertDatapoints] +message UpsertDatapointsRequest { + // Required. The name of the Index resource to be updated. + // Format: + // `projects/{project}/locations/{location}/indexes/{index}` + string index = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Index" + } + ]; + + // A list of datapoints to be created/updated. + repeated IndexDatapoint datapoints = 2; +} + +// Response message for [IndexService.UpsertDatapoints][google.cloud.aiplatform.v1.IndexService.UpsertDatapoints] +message UpsertDatapointsResponse { + +} + +// Request message for [IndexService.RemoveDatapoints][google.cloud.aiplatform.v1.IndexService.RemoveDatapoints] +message RemoveDatapointsRequest { + // Required. The name of the Index resource to be updated. + // Format: + // `projects/{project}/locations/{location}/indexes/{index}` + string index = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Index" + } + ]; + + // A list of datapoint ids to be deleted. + repeated string datapoint_ids = 2; +} + +// Response message for [IndexService.RemoveDatapoints][google.cloud.aiplatform.v1.IndexService.RemoveDatapoints] +message RemoveDatapointsResponse { + +} + // Runtime operation metadata with regard to Matching Engine Index. message NearestNeighborSearchOperationMetadata { message RecordError { diff --git a/google/cloud/aiplatform/v1/io.proto b/google/cloud/aiplatform/v1/io.proto index 766fb56bd..43d5fdc63 100644 --- a/google/cloud/aiplatform/v1/io.proto +++ b/google/cloud/aiplatform/v1/io.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/job_service.proto b/google/cloud/aiplatform/v1/job_service.proto index 2b2d449e5..7e987dfde 100644 --- a/google/cloud/aiplatform/v1/job_service.proto +++ b/google/cloud/aiplatform/v1/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -384,19 +384,22 @@ message ListCustomJobsRequest { // // Supported fields: // - // * `display_name` supports = and !=. - // - // * `state` supports = and !=. + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` - // - // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` - // - // * `NOT display_name="my_job"` - // - // * `state="JOB_STATE_FAILED"` + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. @@ -491,19 +494,22 @@ message ListDataLabelingJobsRequest { // // Supported fields: // - // * `display_name` supports = and !=. - // - // * `state` supports = and !=. + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` - // - // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` - // - // * `NOT display_name="my_job"` - // - // * `state="JOB_STATE_FAILED"` + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. @@ -603,19 +609,22 @@ message ListHyperparameterTuningJobsRequest { // // Supported fields: // - // * `display_name` supports = and !=. - // - // * `state` supports = and !=. + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` - // - // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` - // - // * `NOT display_name="my_job"` - // - // * `state="JOB_STATE_FAILED"` + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. @@ -712,21 +721,23 @@ message ListBatchPredictionJobsRequest { // // Supported fields: // - // * `display_name` supports = and !=. - // - // * `state` supports = and !=. - // - // * `model_display_name` supports = and != + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `model_display_name` supports `=`, `!=` comparisons. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` - // - // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` - // - // * `NOT display_name="my_job"` - // - // * `state="JOB_STATE_FAILED"` + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. @@ -813,7 +824,7 @@ message SearchModelDeploymentMonitoringStatsAnomaliesRequest { // Required. ModelDeploymentMonitoring Job resource name. // Format: - // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job} + // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` string model_deployment_monitoring_job = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -893,6 +904,25 @@ message ListModelDeploymentMonitoringJobsRequest { ]; // The standard list filter. + // + // Supported fields: + // + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence + // + // Some examples of using the filter are: + // + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. diff --git a/google/cloud/aiplatform/v1/job_state.proto b/google/cloud/aiplatform/v1/job_state.proto index bc8a6139d..45b101c01 100644 --- a/google/cloud/aiplatform/v1/job_state.proto +++ b/google/cloud/aiplatform/v1/job_state.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; option java_multiple_files = true; @@ -58,4 +56,11 @@ enum JobState { // The job has expired. JOB_STATE_EXPIRED = 9; + + // The job is being updated. The job is only able to be updated at RUNNING + // state; if the update operation succeeds, job goes back to RUNNING state; if + // the update operation fails, the job goes back to RUNNING state with error + // messages written to [ModelDeploymentMonitoringJob.partial_errors][] field + // if it is a ModelDeploymentMonitoringJob. + JOB_STATE_UPDATING = 10; } diff --git a/google/cloud/aiplatform/v1/lineage_subgraph.proto b/google/cloud/aiplatform/v1/lineage_subgraph.proto index dc9f62e1f..7ad020b61 100644 --- a/google/cloud/aiplatform/v1/lineage_subgraph.proto +++ b/google/cloud/aiplatform/v1/lineage_subgraph.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/cloud/aiplatform/v1/artifact.proto"; import "google/cloud/aiplatform/v1/event.proto"; import "google/cloud/aiplatform/v1/execution.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/machine_resources.proto b/google/cloud/aiplatform/v1/machine_resources.proto index 6d03d2cf4..9bcf37c16 100644 --- a/google/cloud/aiplatform/v1/machine_resources.proto +++ b/google/cloud/aiplatform/v1/machine_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1/accelerator_type.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -79,6 +78,11 @@ message DedicatedResources { // replicas at maximum may handle, a portion of the traffic will be dropped. // If this value is not provided, will use [min_replica_count][google.cloud.aiplatform.v1.DedicatedResources.min_replica_count] as the // default value. + // + // The value of this field impacts the charge against Vertex CPU and GPU + // quotas. Specifically, you will be charged for (max_replica_count * + // number of cores in the selected machine type) and (max_replica_count * + // number of GPUs per replica in the selected machine type). int32 max_replica_count = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The metric specifications that overrides a resource @@ -165,6 +169,21 @@ message DiskSpec { int32 boot_disk_size_gb = 2; } +// Represents a mount configuration for Network File System (NFS) to mount. +message NfsMount { + // Required. IP address of the NFS server. + string server = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Source path exported from NFS server. + // Has to start with '/', and combined with the ip address, it indicates + // the source mount path in the form of `server:path` + string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Destination mount path. The NFS will be mounted for the user under + // /mnt/nfs/ + string mount_point = 3 [(google.api.field_behavior) = REQUIRED]; +} + // The metric specification that defines the target resource utilization // (CPU utilization, accelerator's duty cycle, and so on) for calculating the // desired replica count. diff --git a/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto b/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto index 7bae2c8b4..e469d45eb 100644 --- a/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto +++ b/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -35,6 +34,6 @@ message ManualBatchTuningParameters { // speeds up the batch operation's execution, but too high value will result // in a whole batch not fitting in a machine's memory, and the whole // operation will fail. - // The default value is 4. + // The default value is 64. int32 batch_size = 1 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/google/cloud/aiplatform/v1/metadata_schema.proto b/google/cloud/aiplatform/v1/metadata_schema.proto index ead95579c..b00a15529 100644 --- a/google/cloud/aiplatform/v1/metadata_schema.proto +++ b/google/cloud/aiplatform/v1/metadata_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/metadata_service.proto b/google/cloud/aiplatform/v1/metadata_service.proto index 1af4a2912..e1dd4fcc0 100644 --- a/google/cloud/aiplatform/v1/metadata_service.proto +++ b/google/cloud/aiplatform/v1/metadata_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -228,6 +228,17 @@ service MetadataService { option (google.api.method_signature) = "context,child_contexts"; } + // Remove a set of children contexts from a parent Context. If any of the + // child Contexts were NOT added to the parent Context, they are + // simply skipped. + rpc RemoveContextChildren(RemoveContextChildrenRequest) returns (RemoveContextChildrenResponse) { + option (google.api.http) = { + post: "/v1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:removeContextChildren" + body: "*" + }; + option (google.api.method_signature) = "context,child_contexts"; + } + // Retrieves Artifacts and Executions within the specified Context, connected // by Event edges and returned as a LineageSubgraph. rpc QueryContextLineageSubgraph(QueryContextLineageSubgraphRequest) returns (LineageSubgraph) { @@ -549,6 +560,14 @@ message ListArtifactsRequest { // // For example: `display_name = "test" AND metadata.field1.bool_value = true`. string filter = 4; + + // How the list of messages is ordered. Specify the values to order by and an + // ordering operation. The default sorting order is ascending. To specify + // descending order for a field, users append a " desc" suffix; for example: + // "foo desc, bar". + // Subfields are specified with a `.` character, such as foo.bar. + // see https://google.aip.dev/132#ordering for more details. + string order_by = 5; } // Response message for [MetadataService.ListArtifacts][google.cloud.aiplatform.v1.MetadataService.ListArtifacts]. @@ -571,9 +590,9 @@ message UpdateArtifactRequest { // `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` Artifact artifact = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. A FieldMask indicating which fields should be updated. + // Optional. A FieldMask indicating which fields should be updated. // Functionality of this field is not yet supported. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; // If set to true, and the [Artifact][google.cloud.aiplatform.v1.Artifact] is not found, a new [Artifact][google.cloud.aiplatform.v1.Artifact] is // created. @@ -735,6 +754,14 @@ message ListContextsRequest { // // For example: `display_name = "test" AND metadata.field1.bool_value = true`. string filter = 4; + + // How the list of messages is ordered. Specify the values to order by and an + // ordering operation. The default sorting order is ascending. To specify + // descending order for a field, users append a " desc" suffix; for example: + // "foo desc, bar". + // Subfields are specified with a `.` character, such as foo.bar. + // see https://google.aip.dev/132#ordering for more details. + string order_by = 5; } // Response message for [MetadataService.ListContexts][google.cloud.aiplatform.v1.MetadataService.ListContexts]. @@ -757,9 +784,9 @@ message UpdateContextRequest { // `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` Context context = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. A FieldMask indicating which fields should be updated. + // Optional. A FieldMask indicating which fields should be updated. // Functionality of this field is not yet supported. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; // If set to true, and the [Context][google.cloud.aiplatform.v1.Context] is not found, a new [Context][google.cloud.aiplatform.v1.Context] is // created. @@ -890,6 +917,31 @@ message AddContextChildrenResponse { } +// Request message for +// [MetadataService.DeleteContextChildrenRequest][]. +message RemoveContextChildrenRequest { + // Required. The resource name of the parent Context. + // + // Format: + // `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` + string context = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Context" + } + ]; + + // The resource names of the child Contexts. + repeated string child_contexts = 2 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Context" + }]; +} + +// Response message for [MetadataService.RemoveContextChildren][google.cloud.aiplatform.v1.MetadataService.RemoveContextChildren]. +message RemoveContextChildrenResponse { + +} + // Request message for [MetadataService.QueryContextLineageSubgraph][google.cloud.aiplatform.v1.MetadataService.QueryContextLineageSubgraph]. message QueryContextLineageSubgraphRequest { // Required. The resource name of the Context whose Artifacts and Executions @@ -999,6 +1051,14 @@ message ListExecutionsRequest { // logical operators (`AND` & `OR`). // For example: `display_name = "test" AND metadata.field1.bool_value = true`. string filter = 4; + + // How the list of messages is ordered. Specify the values to order by and an + // ordering operation. The default sorting order is ascending. To specify + // descending order for a field, users append a " desc" suffix; for example: + // "foo desc, bar". + // Subfields are specified with a `.` character, such as foo.bar. + // see https://google.aip.dev/132#ordering for more details. + string order_by = 5; } // Response message for [MetadataService.ListExecutions][google.cloud.aiplatform.v1.MetadataService.ListExecutions]. @@ -1021,9 +1081,9 @@ message UpdateExecutionRequest { // `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` Execution execution = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. A FieldMask indicating which fields should be updated. + // Optional. A FieldMask indicating which fields should be updated. // Functionality of this field is not yet supported. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; // If set to true, and the [Execution][google.cloud.aiplatform.v1.Execution] is not found, a new [Execution][google.cloud.aiplatform.v1.Execution] // is created. diff --git a/google/cloud/aiplatform/v1/metadata_store.proto b/google/cloud/aiplatform/v1/metadata_store.proto index e1b853de5..31e7fd2c9 100644 --- a/google/cloud/aiplatform/v1/metadata_store.proto +++ b/google/cloud/aiplatform/v1/metadata_store.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/migratable_resource.proto b/google/cloud/aiplatform/v1/migratable_resource.proto index 09b4a21a0..3306029af 100644 --- a/google/cloud/aiplatform/v1/migratable_resource.proto +++ b/google/cloud/aiplatform/v1/migratable_resource.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/migration_service.proto b/google/cloud/aiplatform/v1/migration_service.proto index 0f87f47b4..bcacf30a4 100644 --- a/google/cloud/aiplatform/v1/migration_service.proto +++ b/google/cloud/aiplatform/v1/migration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; -import "google/cloud/aiplatform/v1/dataset.proto"; -import "google/cloud/aiplatform/v1/model.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; diff --git a/google/cloud/aiplatform/v1/model.proto b/google/cloud/aiplatform/v1/model.proto index 3bcf0c40a..f34fad6ed 100644 --- a/google/cloud/aiplatform/v1/model.proto +++ b/google/cloud/aiplatform/v1/model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,15 +18,12 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1/dataset.proto"; import "google/cloud/aiplatform/v1/deployed_model_ref.proto"; import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/cloud/aiplatform/v1/env_var.proto"; import "google/cloud/aiplatform/v1/explanation.proto"; - import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -101,11 +98,41 @@ message Model { // Resources that to large degree are decided by Vertex AI, and require // only a modest additional configuration. AUTOMATIC_RESOURCES = 2; + + // Resources that can be shared by multiple [DeployedModels][google.cloud.aiplatform.v1.DeployedModel]. + // A pre-configured [DeploymentResourcePool][] is required. + SHARED_RESOURCES = 3; } // The resource name of the Model. string name = 1; + // Output only. Immutable. The version ID of the model. + // A new version is committed when a new model version is uploaded or + // trained under an existing model id. It is an auto-incrementing decimal + // number in string representation. + string version_id = 28 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // User provided version aliases so that a model version can be referenced via + // alias (i.e. + // projects/{project}/locations/{location}/models/{model_id}@{version_alias} + // instead of auto-generated version id (i.e. + // projects/{project}/locations/{location}/models/{model_id}@{version_id}). + // The format is [a-z][a-zA-Z0-9-]{0,126}[a-z0-9] to distinguish from + // version_id. A default version alias will be created for the first version + // of the model, and there must be exactly one default version alias for a + // model. + repeated string version_aliases = 29; + + // Output only. Timestamp when this version was created. + google.protobuf.Timestamp version_create_time = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this version was most recently updated. + google.protobuf.Timestamp version_update_time = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Required. The display name of the Model. // The name can be up to 128 characters long and can be consist of any UTF-8 // characters. @@ -114,6 +141,9 @@ message Model { // The description of the Model. string description = 3; + // The description of this version. + string version_description = 30; + // The schemata that describe formats of the Model's predictions and // explanations as given and returned via // [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] and [PredictionService.Explain][google.cloud.aiplatform.v1.PredictionService.Explain]. @@ -298,6 +328,10 @@ message Model { // Customer-managed encryption key spec for a Model. If set, this // Model and all sub-resources of this Model will be secured by this key. EncryptionSpec encryption_spec = 24; + + // Output only. Source of a model. It can either be automl training pipeline, custom + // training pipeline, BigQuery ML, or existing Vertex AI Model. + ModelSourceInfo model_source_info = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains the schemata used in Model's predictions and explanations via @@ -344,7 +378,7 @@ message PredictSchemata { // Specification of a container for serving predictions. Some fields in this // message correspond to fields in the [Kubernetes Container v1 core -// specification](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). +// specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). message ModelContainerSpec { // Required. Immutable. URI of the Docker image to be used as the custom container for serving // predictions. This URI must identify an image in Artifact Registry or @@ -402,7 +436,7 @@ message ModelContainerSpec { // $$(VARIABLE_NAME) // This field corresponds to the `command` field of the Kubernetes Containers // [v1 core - // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). repeated string command = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Specifies arguments for the command that runs when the container starts. @@ -440,7 +474,7 @@ message ModelContainerSpec { // $$(VARIABLE_NAME) // This field corresponds to the `args` field of the Kubernetes Containers // [v1 core - // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). repeated string args = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. List of environment variables to set in the container. After the container @@ -470,7 +504,7 @@ message ModelContainerSpec { // // This field corresponds to the `env` field of the Kubernetes Containers // [v1 core - // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). repeated EnvVar env = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. List of ports to expose from the container. Vertex AI sends any @@ -493,7 +527,7 @@ message ModelContainerSpec { // Vertex AI does not use ports other than the first one listed. This field // corresponds to the `ports` field of the Kubernetes Containers // [v1 core - // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). repeated Port ports = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. HTTP path on the container to send prediction requests to. Vertex AI @@ -560,3 +594,24 @@ message Port { // Must be a valid port number, between 1 and 65535 inclusive. int32 container_port = 3; } + +// Detail description of the source information of the model. +message ModelSourceInfo { + // Source of the model. + enum ModelSourceType { + // Should not be used. + MODEL_SOURCE_TYPE_UNSPECIFIED = 0; + + // The Model is uploaded by automl training pipeline. + AUTOML = 1; + + // The Model is uploaded by user or custom training pipeline. + CUSTOM = 2; + + // The Model is registered and sync'ed from BigQuery ML. + BQML = 3; + } + + // Type of the model source. + ModelSourceType source_type = 1; +} diff --git a/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto b/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto index cb8db3e66..87252239d 100644 --- a/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto +++ b/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -28,8 +28,6 @@ import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; option java_multiple_files = true; @@ -69,6 +67,16 @@ message ModelDeploymentMonitoringJob { pattern: "projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}" }; + // All metadata of most recent monitoring pipelines. + message LatestMonitoringPipelineMetadata { + // The time that most recent monitoring pipelines that is related to this + // run. + google.protobuf.Timestamp run_time = 1; + + // The status of the most recent monitoring pipeline. + google.rpc.Status status = 2; + } + // The state to Specify the monitoring pipeline. enum MonitoringScheduleState { // Unspecified state. @@ -112,6 +120,9 @@ message ModelDeploymentMonitoringJob { // Output only. Schedule state when the monitoring job is in Running state. MonitoringScheduleState schedule_state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Latest triggered monitoring pipeline metadata. + LatestMonitoringPipelineMetadata latest_monitoring_pipeline_metadata = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Required. The config for monitoring objectives. This is a per DeployedModel config. // Each DeployedModel needs to be configured separately. repeated ModelDeploymentMonitoringObjectiveConfig model_deployment_monitoring_objective_configs = 6 [(google.api.field_behavior) = REQUIRED]; @@ -252,9 +263,19 @@ message ModelDeploymentMonitoringObjectiveConfig { // The config for scheduling monitoring job. message ModelDeploymentMonitoringScheduleConfig { - // Required. The model monitoring job running interval. It will be rounded up to next - // full hour. + // Required. The model monitoring job scheduling interval. It will be rounded up to next + // full hour. This defines how often the monitoring jobs are triggered. google.protobuf.Duration monitor_interval = 1 [(google.api.field_behavior) = REQUIRED]; + + // The time window of the prediction data being included in each prediction + // dataset. This window specifies how long the data should be collected from + // historical model results for each run. If not set, + // [ModelDeploymentMonitoringScheduleConfig.monitor_interval][google.cloud.aiplatform.v1.ModelDeploymentMonitoringScheduleConfig.monitor_interval] will be used. + // e.g. If currently the cutoff time is 2022-01-08 14:30:00 and the + // monitor_window is set to be 3600, then data from 2022-01-08 13:30:00 + // to 2022-01-08 14:30:00 will be retrieved and aggregated to calculate the + // monitoring statistics. + google.protobuf.Duration monitor_window = 2; } // Statistics and anomalies generated by Model Monitoring. diff --git a/google/cloud/aiplatform/v1/model_evaluation.proto b/google/cloud/aiplatform/v1/model_evaluation.proto index 28e4978e3..5fc333e66 100644 --- a/google/cloud/aiplatform/v1/model_evaluation.proto +++ b/google/cloud/aiplatform/v1/model_evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/explanation.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -39,31 +38,79 @@ message ModelEvaluation { pattern: "projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}" }; + message ModelEvaluationExplanationSpec { + // Explanation type. + // + // For AutoML Image Classification models, possible values are: + // + // * `image-integrated-gradients` + // * `image-xrai` + string explanation_type = 1; + + // Explanation spec details. + ExplanationSpec explanation_spec = 2; + } + // Output only. The resource name of the ModelEvaluation. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Points to a YAML file stored on Google Cloud Storage describing the + // The display name of the ModelEvaluation. + string display_name = 10; + + // Points to a YAML file stored on Google Cloud Storage describing the // [metrics][google.cloud.aiplatform.v1.ModelEvaluation.metrics] of this ModelEvaluation. The schema is // defined as an OpenAPI 3.0.2 [Schema // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). - string metrics_schema_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + string metrics_schema_uri = 2; - // Output only. Evaluation metrics of the Model. The schema of the metrics is stored in + // Evaluation metrics of the Model. The schema of the metrics is stored in // [metrics_schema_uri][google.cloud.aiplatform.v1.ModelEvaluation.metrics_schema_uri] - google.protobuf.Value metrics = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Value metrics = 3; // Output only. Timestamp when this ModelEvaluation was created. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. All possible [dimensions][ModelEvaluationSlice.slice.dimension] of + // All possible [dimensions][ModelEvaluationSlice.slice.dimension] of // ModelEvaluationSlices. The dimensions can be used as the filter of the // [ModelService.ListModelEvaluationSlices][google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices] request, in the form of // `slice.dimension = `. - repeated string slice_dimensions = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated string slice_dimensions = 5; + + // Points to a YAML file stored on Google Cloud Storage describing + // [EvaluatedDataItemView.data_item_payload][] and + // [EvaluatedAnnotation.data_item_payload][]. The schema is defined as an + // OpenAPI 3.0.2 [Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + // + // This field is not populated if there are neither EvaluatedDataItemViews nor + // EvaluatedAnnotations under this ModelEvaluation. + string data_item_schema_uri = 6; - // Output only. Aggregated explanation metrics for the Model's prediction output over the + // Points to a YAML file stored on Google Cloud Storage describing + // [EvaluatedDataItemView.predictions][], + // [EvaluatedDataItemView.ground_truths][], + // [EvaluatedAnnotation.predictions][], and + // [EvaluatedAnnotation.ground_truths][]. The schema is defined as an + // OpenAPI 3.0.2 [Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + // + // This field is not populated if there are neither EvaluatedDataItemViews nor + // EvaluatedAnnotations under this ModelEvaluation. + string annotation_schema_uri = 7; + + // Aggregated explanation metrics for the Model's prediction output over the // data this ModelEvaluation uses. This field is populated only if the Model // is evaluated with explanations, and only for AutoML tabular Models. // - ModelExplanation model_explanation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + ModelExplanation model_explanation = 8; + + // Describes the values of [ExplanationSpec][google.cloud.aiplatform.v1.ExplanationSpec] that are used for explaining + // the predicted values on the evaluated data. + repeated ModelEvaluationExplanationSpec explanation_specs = 9; + + // The metadata of the ModelEvaluation. + // For the ModelEvaluation uploaded from Managed Pipeline, metadata contains a + // structured value with keys of "pipeline_job_id", "evaluation_dataset_type", + // "evaluation_dataset_path". + google.protobuf.Value metadata = 11; } diff --git a/google/cloud/aiplatform/v1/model_evaluation_slice.proto b/google/cloud/aiplatform/v1/model_evaluation_slice.proto index e79195e71..f28b01354 100644 --- a/google/cloud/aiplatform/v1/model_evaluation_slice.proto +++ b/google/cloud/aiplatform/v1/model_evaluation_slice.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/model_monitoring.proto b/google/cloud/aiplatform/v1/model_monitoring.proto index 05b456fff..039161dde 100644 --- a/google/cloud/aiplatform/v1/model_monitoring.proto +++ b/google/cloud/aiplatform/v1/model_monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/io.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -28,7 +27,8 @@ option java_package = "com.google.cloud.aiplatform.v1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; option ruby_package = "Google::Cloud::AIPlatform::V1"; -// Next ID: 6 +// The objective configuration for model monitoring, including the information +// needed to detect anomalies for one particular model. message ModelMonitoringObjectiveConfig { // Training Dataset information. message TrainingDataset { @@ -56,6 +56,8 @@ message ModelMonitoringObjectiveConfig { // // "csv" // The source file is a CSV file. + // "jsonl" + // The source file is a JSONL file. string data_format = 2; // The target field name the model is to predict. @@ -81,6 +83,11 @@ message ModelMonitoringObjectiveConfig { // against attribution score distance between the training and prediction // feature. map attribution_score_skew_thresholds = 2; + + // Skew anomaly detection threshold used by all features. + // When the per-feature thresholds are not set, this field can be used to + // specify a threshold for all features. + ThresholdConfig default_skew_threshold = 6; } // The config for Prediction data drift detection. @@ -94,6 +101,11 @@ message ModelMonitoringObjectiveConfig { // Key is the feature name and value is the threshold. The threshold here is // against attribution score distance between different time windows. map attribution_score_drift_thresholds = 2; + + // Drift anomaly detection threshold used by all features. + // When the per-feature thresholds are not set, this field can be used to + // specify a threshold for all features. + ThresholdConfig default_drift_threshold = 5; } // The config for integrating with Vertex Explainable AI. Only applicable if @@ -151,7 +163,6 @@ message ModelMonitoringObjectiveConfig { ExplanationConfig explanation_config = 5; } -// Next ID: 3 message ModelMonitoringAlertConfig { // The config for email alert. message EmailAlertConfig { @@ -173,7 +184,6 @@ message ModelMonitoringAlertConfig { } // The config for feature monitoring threshold. -// Next ID: 3 message ThresholdConfig { oneof threshold { // Specify a threshold value that can trigger the alert. @@ -190,7 +200,6 @@ message ThresholdConfig { // Sampling Strategy for logging, can be for both training and prediction // dataset. -// Next ID: 2 message SamplingStrategy { // Requests are randomly selected. message RandomSampleConfig { diff --git a/google/cloud/aiplatform/v1/model_service.proto b/google/cloud/aiplatform/v1/model_service.proto index 807619d4f..9ea6c56c4 100644 --- a/google/cloud/aiplatform/v1/model_service.proto +++ b/google/cloud/aiplatform/v1/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -70,6 +70,14 @@ service ModelService { option (google.api.method_signature) = "parent"; } + // Lists versions of the specified model. + rpc ListModelVersions(ListModelVersionsRequest) returns (ListModelVersionsResponse) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/models/*}:listVersions" + }; + option (google.api.method_signature) = "name"; + } + // Updates a Model. rpc UpdateModel(UpdateModelRequest) returns (Model) { option (google.api.http) = { @@ -95,6 +103,31 @@ service ModelService { }; } + // Deletes a Model version. + // + // Model version can only be deleted if there are no [DeployedModels][] + // created from it. Deleting the only version in the Model is not allowed. Use + // [DeleteModel][google.cloud.aiplatform.v1.ModelService.DeleteModel] for deleting the Model instead. + rpc DeleteModelVersion(DeleteModelVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/models/*}:deleteVersion" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Merges a set of aliases for a Model version. + rpc MergeVersionAliases(MergeVersionAliasesRequest) returns (Model) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/models/*}:mergeVersionAliases" + body: "*" + }; + option (google.api.method_signature) = "name,version_aliases"; + } + // Exports a trained, exportable Model to a location specified by the // user. A Model is considered to be exportable if it has at least one // [supported export format][google.cloud.aiplatform.v1.Model.supported_export_formats]. @@ -110,6 +143,24 @@ service ModelService { }; } + // Imports an externally generated ModelEvaluation. + rpc ImportModelEvaluation(ImportModelEvaluationRequest) returns (ModelEvaluation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/models/*}/evaluations:import" + body: "*" + }; + option (google.api.method_signature) = "parent,model_evaluation"; + } + + // Imports a list of externally generated ModelEvaluationSlice. + rpc BatchImportModelEvaluationSlices(BatchImportModelEvaluationSlicesRequest) returns (BatchImportModelEvaluationSlicesResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices:batchImport" + body: "*" + }; + option (google.api.method_signature) = "parent,model_evaluation_slices"; + } + // Gets a ModelEvaluation. rpc GetModelEvaluation(GetModelEvaluationRequest) returns (ModelEvaluation) { option (google.api.http) = { @@ -154,6 +205,17 @@ message UploadModelRequest { } ]; + // Optional. The resource name of the model into which to upload the version. Only + // specify this field when uploading a new version. + string parent_model = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ID to use for the uploaded Model, which will become the final + // component of the model resource name. + // + // This value may be up to 63 characters, and valid characters are + // `[a-z0-9_-]`. The first character cannot be a number or hyphen. + string model_id = 5 [(google.api.field_behavior) = OPTIONAL]; + // Required. The Model to create. Model model = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -171,12 +233,25 @@ message UploadModelResponse { string model = 1 [(google.api.resource_reference) = { type: "aiplatform.googleapis.com/Model" }]; + + // Output only. The version ID of the model that is uploaded. + string model_version_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for [ModelService.GetModel][google.cloud.aiplatform.v1.ModelService.GetModel]. message GetModelRequest { // Required. The name of the Model resource. // Format: `projects/{project}/locations/{location}/models/{model}` + // + // In order to retrieve a specific version of the model, also provide + // the version ID or version alias. + // Example: `projects/{project}/locations/{location}/models/{model}@2` + // or + // `projects/{project}/locations/{location}/models/{model}@golden` + // If no version ID or alias is specified, the "default" version will be + // returned. The "default" version alias is created for the first version of + // the model, and can be moved to other versions later on. There will be + // exactly one default version. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -208,6 +283,7 @@ message ListModelsRequest { // * A key including a space must be quoted. `labels."a key"`. // // Some examples: + // // * `model=1234` // * `displayName="myDisplayName"` // * `labels.myKey="myValue"` @@ -228,6 +304,7 @@ message ListModelsRequest { // 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` @@ -246,9 +323,74 @@ message ListModelsResponse { string next_page_token = 2; } +// Request message for [ModelService.ListModelVersions][google.cloud.aiplatform.v1.ModelService.ListModelVersions]. +message ListModelVersionsRequest { + // Required. The name of the model to list versions for. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // The standard list page size. + int32 page_size = 2; + + // The standard list page token. + // Typically obtained via + // [ListModelVersionsResponse.next_page_token][google.cloud.aiplatform.v1.ListModelVersionsResponse.next_page_token] of the previous + // [ModelService.ListModelversions][] call. + string page_token = 3; + + // An expression for filtering the results of the request. For field names + // both snake_case and camelCase are supported. + // + // * `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"`. + // + // Some examples: + // + // * `labels.myKey="myValue"` + string filter = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for [ModelService.ListModelVersions][google.cloud.aiplatform.v1.ModelService.ListModelVersions] +message ListModelVersionsResponse { + // List of Model versions in the requested page. + // In the returned Model name field, version ID instead of regvision tag will + // be included. + repeated Model models = 1; + + // A token to retrieve the next page of results. + // Pass to [ListModelVersionsRequest.page_token][google.cloud.aiplatform.v1.ListModelVersionsRequest.page_token] to obtain that page. + string next_page_token = 2; +} + // Request message for [ModelService.UpdateModel][google.cloud.aiplatform.v1.ModelService.UpdateModel]. message UpdateModelRequest { // Required. The Model which replaces the resource on the server. + // When Model Versioning is enabled, the model.name will be used to determine + // whether to update the model or model version. + // 1. model.name with the @ value, e.g. models/123@1, refers to a version + // specific update. + // 2. model.name without the @ value, e.g. models/123, refers to a model + // update. + // 3. model.name with @-, e.g. models/123@-, refers to a model update. + // 4. Supported model fields: display_name, description; supported + // version-specific fields: version_description. Labels are supported in both + // scenarios. Both the model labels and the version labels are merged when a + // model is returned. When updating labels, if the request is for + // model-specific update, model label gets updated. Otherwise, version labels + // get updated. + // 5. A model name or model version name fields update mismatch will cause a + // precondition error. + // 6. One request cannot update both the model and the version fields. You + // must update them separately. Model model = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The update mask applies to the resource. @@ -268,6 +410,48 @@ message DeleteModelRequest { ]; } +// Request message for [ModelService.DeleteModelVersion][google.cloud.aiplatform.v1.ModelService.DeleteModelVersion]. +message DeleteModelVersionRequest { + // Required. The name of the model version to be deleted, with a version ID explicitly + // included. + // + // Example: `projects/{project}/locations/{location}/models/{model}@1234` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; +} + +// Request message for [ModelService.MergeVersionAliases][google.cloud.aiplatform.v1.ModelService.MergeVersionAliases]. +message MergeVersionAliasesRequest { + // Required. The name of the model version to merge aliases, with a version ID + // explicitly included. + // + // Example: `projects/{project}/locations/{location}/models/{model}@1234` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Required. The set of version aliases to merge. + // The alias should be at most 128 characters, and match + // `[a-z][a-zA-Z0-9-]{0,126}[a-z-0-9]`. + // Add the `-` prefix to an alias means removing that alias from the version. + // `-` is NOT counted in the 128 characters. Example: `-golden` means removing + // the `golden` alias from the version. + // + // There is NO ordering in aliases, which means + // 1) The aliases returned from GetModel API might not have the exactly same + // order from this MergeVersionAliases API. 2) Adding and deleting the same + // alias in the request is not recommended, and the 2 operations will be + // cancelled out. + repeated string version_aliases = 2 [(google.api.field_behavior) = REQUIRED]; +} + // Request message for [ModelService.ExportModel][google.cloud.aiplatform.v1.ModelService.ExportModel]. message ExportModelRequest { // Output configuration for the Model export. @@ -296,6 +480,8 @@ message ExportModelRequest { } // Required. The resource name of the Model to export. + // The resource name may contain version id or version alias to specify the + // version, if no version is specified, the default version will be exported. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -334,6 +520,43 @@ message ExportModelResponse { } +// Request message for [ModelService.ImportModelEvaluation][google.cloud.aiplatform.v1.ModelService.ImportModelEvaluation] +message ImportModelEvaluationRequest { + // Required. The name of the parent model resource. + // Format: `projects/{project}/locations/{location}/models/{model}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Required. Model evaluation resource to be imported. + ModelEvaluation model_evaluation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [ModelService.BatchImportModelEvaluationSlices][google.cloud.aiplatform.v1.ModelService.BatchImportModelEvaluationSlices] +message BatchImportModelEvaluationSlicesRequest { + // Required. The name of the parent ModelEvaluation resource. + // Format: + // `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelEvaluation" + } + ]; + + // Required. Model evaluation slice resource to be imported. + repeated ModelEvaluationSlice model_evaluation_slices = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [ModelService.BatchImportModelEvaluationSlices][google.cloud.aiplatform.v1.ModelService.BatchImportModelEvaluationSlices] +message BatchImportModelEvaluationSlicesResponse { + // Output only. List of imported [ModelEvaluationSlice.name][google.cloud.aiplatform.v1.ModelEvaluationSlice.name]. + repeated string imported_model_evaluation_slices = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Request message for [ModelService.GetModelEvaluation][google.cloud.aiplatform.v1.ModelService.GetModelEvaluation]. message GetModelEvaluationRequest { // Required. The name of the ModelEvaluation resource. diff --git a/google/cloud/aiplatform/v1/operation.proto b/google/cloud/aiplatform/v1/operation.proto index ee33b41aa..da7c5dcc2 100644 --- a/google/cloud/aiplatform/v1/operation.proto +++ b/google/cloud/aiplatform/v1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/pipeline_failure_policy.proto b/google/cloud/aiplatform/v1/pipeline_failure_policy.proto new file mode 100644 index 000000000..5ff3b78be --- /dev/null +++ b/google/cloud/aiplatform/v1/pipeline_failure_policy.proto @@ -0,0 +1,44 @@ +// 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.cloud.aiplatform.v1; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "PipelineFailurePolicyProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents the failure policy of a pipeline. Currently, the default of a +// pipeline is that the pipeline will continue to run until no more tasks can be +// executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. However, if a +// pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it will stop scheduling +// any new tasks when a task has failed. Any scheduled tasks will continue to +// completion. +enum PipelineFailurePolicy { + // Default value, and follows fail slow behavior. + PIPELINE_FAILURE_POLICY_UNSPECIFIED = 0; + + // Indicates that the pipeline should continue to run until all possible + // tasks have been scheduled and completed. + PIPELINE_FAILURE_POLICY_FAIL_SLOW = 1; + + // Indicates that the pipeline should stop scheduling new tasks after a task + // has failed. + PIPELINE_FAILURE_POLICY_FAIL_FAST = 2; +} diff --git a/google/cloud/aiplatform/v1/pipeline_job.proto b/google/cloud/aiplatform/v1/pipeline_job.proto index 193c829bc..656a385b9 100644 --- a/google/cloud/aiplatform/v1/pipeline_job.proto +++ b/google/cloud/aiplatform/v1/pipeline_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,12 +22,12 @@ import "google/cloud/aiplatform/v1/artifact.proto"; import "google/cloud/aiplatform/v1/context.proto"; import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/cloud/aiplatform/v1/execution.proto"; +import "google/cloud/aiplatform/v1/pipeline_failure_policy.proto"; import "google/cloud/aiplatform/v1/pipeline_state.proto"; import "google/cloud/aiplatform/v1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -50,6 +50,18 @@ message PipelineJob { // The runtime config of a PipelineJob. message RuntimeConfig { + // The type of an input artifact. + message InputArtifact { + oneof kind { + // Artifact resource id from MLMD. Which is the last portion of an + // artifact resource + // name(projects/{project}/locations/{location}/metadataStores/default/artifacts/{artifact_id}). + // The artifact must stay within the same project, location and default + // metadatastore as the pipeline. + string artifact_id = 1; + } + } + // Deprecated. Use [RuntimeConfig.parameter_values][google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.parameter_values] instead. The runtime // parameters of the PipelineJob. The parameters will be passed into // [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec] to replace the placeholders at runtime. @@ -73,6 +85,18 @@ message PipelineJob { // `PipelineJob.pipeline_spec.schema_version` 2.1.0, such as pipelines built // using Kubeflow Pipelines SDK 1.9 or higher and the v2 DSL. map parameter_values = 3; + + // Represents the failure policy of a pipeline. Currently, the default of a + // pipeline is that the pipeline will continue to run until no more tasks + // can be executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. + // However, if a pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it + // will stop scheduling any new tasks when a task has failed. Any scheduled + // tasks will continue to completion. + PipelineFailurePolicy failure_policy = 4; + + // The runtime artifacts of the PipelineJob. The key will be the input + // artifact name and the value would be one of the InputArtifact. + map input_artifacts = 5; } // Output only. The resource name of the PipelineJob. @@ -95,8 +119,8 @@ message PipelineJob { // Output only. Timestamp when this PipelineJob was most recently updated. google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. The spec of the pipeline. - google.protobuf.Struct pipeline_spec = 7 [(google.api.field_behavior) = REQUIRED]; + // The spec of the pipeline. + google.protobuf.Struct pipeline_spec = 7; // Output only. The detailed state of the job. PipelineState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -151,6 +175,27 @@ message PipelineJob { string network = 18 [(google.api.resource_reference) = { type: "compute.googleapis.com/Network" }]; + + // A template uri from where the [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec], if empty, will + // be downloaded. + string template_uri = 19; + + // Output only. Pipeline template metadata. Will fill up fields if + // [PipelineJob.template_uri][google.cloud.aiplatform.v1.PipelineJob.template_uri] is from supported template registry. + PipelineTemplateMetadata template_metadata = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Pipeline template metadata if [PipelineJob.template_uri][google.cloud.aiplatform.v1.PipelineJob.template_uri] is from supported +// template registry. Currently, the only supported registry is Artifact +// Registry. +message PipelineTemplateMetadata { + // The version_name in artifact registry. + // + // Will always be presented in output if the [PipelineJob.template_uri][google.cloud.aiplatform.v1.PipelineJob.template_uri] is + // from supported template registry. + // + // Format is "sha256:abcdef123456...". + string version = 3; } // The runtime detail of PipelineJob. diff --git a/google/cloud/aiplatform/v1/pipeline_service.proto b/google/cloud/aiplatform/v1/pipeline_service.proto index 24b29edb1..0cd46b329 100644 --- a/google/cloud/aiplatform/v1/pipeline_service.proto +++ b/google/cloud/aiplatform/v1/pipeline_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -193,21 +193,25 @@ message ListTrainingPipelinesRequest { ]; // The standard list filter. - // Supported fields: // - // * `display_name` supports = and !=. + // Supported fields: // - // * `state` supports = and !=. + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `training_task_definition` `=`, `!=` comparisons, and `:` wildcard. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="PIPELINE_STATE_SUCCEEDED" AND display_name="my_pipeline"` - // - // * `state="PIPELINE_STATE_RUNNING" OR display_name="my_pipeline"` - // - // * `NOT display_name="my_pipeline"` - // - // * `state="PIPELINE_STATE_FAILED"` + // * `state="PIPELINE_STATE_SUCCEEDED" AND display_name:"my_pipeline_*"` + // * `state!="PIPELINE_STATE_FAILED" OR display_name="my_pipeline"` + // * `NOT display_name="my_pipeline"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `training_task_definition:"*automl_text_classification*"` string filter = 2; // The standard list page size. @@ -312,8 +316,8 @@ message ListPipelineJobsRequest { // * `pipeline_name`: Supports `=` and `!=` comparisons. // * `display_name`: Supports `=`, `!=` comparisons, and `:` wildcard. // * `pipeline_job_user_id`: Supports `=`, `!=` comparisons, and `:` wildcard. - // for example, can check if pipeline's display_name contains *step* by doing - // display_name:\"*step*\" + // for example, can check if pipeline's display_name contains *step* by + // doing display_name:\"*step*\" // * `state`: Supports `=` and `!=` comparisons. // * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. // Values must be in RFC 3339 format. @@ -322,6 +326,9 @@ message ListPipelineJobsRequest { // * `end_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. // Values must be in RFC 3339 format. // * `labels`: Supports key-value equality and key presence. + // * `template_uri`: Supports `=`, `!=` comparisons, and `:` wildcard. + // * `template_metadata.version`: Supports `=`, `!=` comparisons, and `:` + // wildcard. // // Filter expressions can be combined together using logical operators // (`AND` & `OR`). @@ -356,11 +363,15 @@ message ListPipelineJobsRequest { // there are multiple jobs having the same create time, order them by the end // time in ascending order. if order_by is not specified, it will order by // default order is create time in descending order. Supported fields: + // // * `create_time` // * `update_time` // * `end_time` // * `start_time` string order_by = 6; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 7; } // Response message for [PipelineService.ListPipelineJobs][google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs] diff --git a/google/cloud/aiplatform/v1/pipeline_state.proto b/google/cloud/aiplatform/v1/pipeline_state.proto index 71a165d7e..a06ae8abe 100644 --- a/google/cloud/aiplatform/v1/pipeline_state.proto +++ b/google/cloud/aiplatform/v1/pipeline_state.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; option java_multiple_files = true; diff --git a/google/cloud/aiplatform/v1/prediction_service.proto b/google/cloud/aiplatform/v1/prediction_service.proto index 6c69e3cce..36096fd9e 100644 --- a/google/cloud/aiplatform/v1/prediction_service.proto +++ b/google/cloud/aiplatform/v1/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -133,6 +133,10 @@ message PredictResponse { } ]; + // Output only. The version ID of the Model which is deployed as the DeployedModel that + // this prediction hits. + string model_version_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The [display name][google.cloud.aiplatform.v1.Model.display_name] of the Model which is deployed as // the DeployedModel that this prediction hits. string model_display_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/aiplatform/v1/saved_query.proto b/google/cloud/aiplatform/v1/saved_query.proto new file mode 100644 index 000000000..5332222d2 --- /dev/null +++ b/google/cloud/aiplatform/v1/saved_query.proto @@ -0,0 +1,85 @@ +// 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.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"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "SavedQueryProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A SavedQuery is a view of the dataset. It references a subset of annotations +// by problem type and filters. +message SavedQuery { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/SavedQuery" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/savedQueries/{saved_query}" + }; + + // Output only. Resource name of the SavedQuery. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of the SavedQuery. + // 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]; + + // Some additional information about the SavedQuery. + google.protobuf.Value metadata = 12; + + // Output only. Timestamp when this SavedQuery was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when SavedQuery was last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Filters on the Annotations in the dataset. + string annotation_filter = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Problem type of the SavedQuery. + // Allowed values: + // + // * IMAGE_CLASSIFICATION_SINGLE_LABEL + // * IMAGE_CLASSIFICATION_MULTI_LABEL + // * IMAGE_BOUNDING_POLY + // * IMAGE_BOUNDING_BOX + // * TEXT_CLASSIFICATION_SINGLE_LABEL + // * TEXT_CLASSIFICATION_MULTI_LABEL + // * TEXT_EXTRACTION + // * TEXT_SENTIMENT + // * VIDEO_CLASSIFICATION + // * VIDEO_OBJECT_TRACKING + string problem_type = 6 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Number of AnnotationSpecs in the context of the SavedQuery. + int32 annotation_spec_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Used to perform a consistent read-modify-write update. If not set, a blind + // "overwrite" update happens. + string etag = 8; + + // Output only. If the Annotations belonging to the SavedQuery can be used for AutoML + // training. + bool support_automl_training = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/BUILD.bazel b/google/cloud/aiplatform/v1/schema/predict/instance/BUILD.bazel index 0f906d45b..c34bac4e2 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/BUILD.bazel +++ b/google/cloud/aiplatform/v1/schema/predict/instance/BUILD.bazel @@ -97,11 +97,12 @@ py_grpc_library( py_gapic_library( name = "instance_py_gapic", + srcs = [":instance_proto"], opt_args = [ "python-gapic-namespace=google.cloud.aiplatform.v1.schema.predict", "python-gapic-name=instance", ], - srcs = [":instance_proto"], + transport = "grpc", ) # Open Source Packages @@ -109,9 +110,21 @@ py_gapic_assembly_pkg( name = "instance-py", deps = [ ":instance_py_gapic", - ] + ], ) +#load("@gapic_generator_java//rules_java_gapic:java_gapic.bzl", "java_generator_request_dump") +# +#java_generator_request_dump( +# name = "instance_request_dump", +# srcs = [":instance_py_gapic"], +# # opt_args = [ +# # "python-gapic-namespace=google.cloud.aiplatform.v1.schema.predict", +# # "python-gapic-name=instance", +# # ], +# transport = "grpc", +#) + ############################################################################## # PHP ############################################################################## diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto b/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto index 752227950..7ebb77ab8 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto b/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto index 5e5317336..96aa4b14e 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto b/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto index b4682c035..95dbf98cf 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto b/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto index cfd431702..7d977a2f3 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto b/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto index 697ee1197..b0b60c0fc 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto b/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto index a06c7c2f6..15ded40b9 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto b/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto index 9ab477e24..a43507dd6 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto b/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto index 68cb3cb35..70318a602 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto b/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto index 34adc8406..26b34930b 100644 --- a/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto +++ b/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.instance; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; diff --git a/google/cloud/aiplatform/v1/schema/predict/params/BUILD.bazel b/google/cloud/aiplatform/v1/schema/predict/params/BUILD.bazel index 9bd697b8e..371fe2b9f 100644 --- a/google/cloud/aiplatform/v1/schema/predict/params/BUILD.bazel +++ b/google/cloud/aiplatform/v1/schema/predict/params/BUILD.bazel @@ -94,11 +94,12 @@ py_grpc_library( py_gapic_library( name = "params_py_gapic", + srcs = [":params_proto"], opt_args = [ "python-gapic-namespace=google.cloud.aiplatform.v1.schema.predict", "python-gapic-name=params", ], - srcs = [":params_proto"], + transport = "grpc", ) # Open Source Packages @@ -106,7 +107,7 @@ py_gapic_assembly_pkg( name = "params-py", deps = [ ":params_py_gapic", - ] + ], ) ############################################################################## @@ -138,7 +139,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto b/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto index b3cb7e20f..6aab8b468 100644 --- a/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto +++ b/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.params; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; diff --git a/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto b/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto index 34130f7c6..e957e2af2 100644 --- a/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto +++ b/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.params; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; diff --git a/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto b/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto index 50e06ee8d..5469108a3 100644 --- a/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto +++ b/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.params; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; diff --git a/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto b/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto index aa6407226..ba6ec5403 100644 --- a/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto +++ b/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.params; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; diff --git a/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto b/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto index ec062072f..f4325f8a1 100644 --- a/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto +++ b/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.params; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; diff --git a/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto b/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto index 579dc4d4c..82449062d 100644 --- a/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto +++ b/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.params; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/BUILD.bazel b/google/cloud/aiplatform/v1/schema/predict/prediction/BUILD.bazel index 78b507026..7e9de2de2 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/BUILD.bazel +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/BUILD.bazel @@ -79,7 +79,6 @@ load( "py_gapic_library", "py_grpc_library", "py_proto_library", - ) moved_proto_library( @@ -107,18 +106,19 @@ py_grpc_library( py_gapic_library( name = "prediction_py_gapic", + srcs = [":prediction_proto"], opt_args = [ - "python-gapic-namespace=google.cloud.aiplatform.v1.schema.predict", # Replace with the current version + "python-gapic-namespace=google.cloud.aiplatform.v1.schema.predict", # Replace with the current version "python-gapic-name=prediction", ], - srcs = [":prediction_proto"], + transport = "grpc", ) py_gapic_assembly_pkg( name = "prediction-py", deps = [ ":prediction_py_gapic", - ] + ], ) ############################################################################## @@ -150,7 +150,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto index b8e396ab6..be54f2c8d 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.prediction; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto index 50d76ecc3..b0bb842e6 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.prediction; import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto index f245f1e13..20ff4f6d2 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.prediction; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto index 25cd6672b..979461bd3 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.prediction; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto index a26c3cb25..ba6bc6a7d 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.prediction; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto index 00ca76943..f74a82bfd 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.prediction; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto index 09d24248d..4e8d5ec2c 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.predict.prediction; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto index 6cd59711c..35aecb6c5 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1.schema.predict.prediction; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto index 5d33c5aea..fee01c7e7 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1.schema.predict.prediction; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto b/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto index 20ecbb1a7..d445c0cc4 100644 --- a/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto +++ b/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1.schema.predict.prediction; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/BUILD.bazel b/google/cloud/aiplatform/v1/schema/trainingjob/definition/BUILD.bazel index d3fa3b4cf..848375765 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/BUILD.bazel +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/BUILD.bazel @@ -107,6 +107,7 @@ py_gapic_library( "python-gapic-namespace=google.cloud.aiplatform.v1.schema.trainingjob", "python-gapic-name=definition", ], + transport = "grpc", ) # Open Source Packages diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto index f51227cfb..0f2c1ea4e 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto index 62e7ae2c3..1459a85a7 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto index 00af43c1c..8303ef692 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto index 0c4ee2d6e..5b43fc7be 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto @@ -16,9 +16,7 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto index 8723af0e8..1713e6a6c 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto index db33c3f56..01f56c31f 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto index 153a57fe5..cb3f0ac5f 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto index 86f723b7d..331033bdc 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto index ff0d78f08..194ea3c66 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto index 52cba9f38..d97e356f3 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto b/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto index ac0d32356..eaa3298a2 100644 --- a/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto +++ b/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1.schema.trainingjob.definition; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; diff --git a/google/cloud/aiplatform/v1/specialist_pool.proto b/google/cloud/aiplatform/v1/specialist_pool.proto index 7702c6425..0e620e6a1 100644 --- a/google/cloud/aiplatform/v1/specialist_pool.proto +++ b/google/cloud/aiplatform/v1/specialist_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/specialist_pool_service.proto b/google/cloud/aiplatform/v1/specialist_pool_service.proto index ad17178f6..c45cc767b 100644 --- a/google/cloud/aiplatform/v1/specialist_pool_service.proto +++ b/google/cloud/aiplatform/v1/specialist_pool_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/aiplatform/v1/study.proto b/google/cloud/aiplatform/v1/study.proto index 6726b7fad..c61a4a3fe 100644 --- a/google/cloud/aiplatform/v1/study.proto +++ b/google/cloud/aiplatform/v1/study.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -31,7 +30,6 @@ option java_package = "com.google.cloud.aiplatform.v1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; option ruby_package = "Google::Cloud::AIPlatform::V1"; -// LINT.IfChange // A message representing a Study. message Study { option (google.api.resource) = { @@ -227,7 +225,7 @@ message StudySpec { // offered starting point. // // Currently only supported by the Vertex AI Vizier service. Not supported - // by HyperparamterTuningJob or TrainingPipeline. + // by HyperparameterTuningJob or TrainingPipeline. optional double default_value = 4; } @@ -244,7 +242,7 @@ message StudySpec { // offered starting point. // // Currently only supported by the Vertex AI Vizier service. Not supported - // by HyperparamterTuningJob or TrainingPipeline. + // by HyperparameterTuningJob or TrainingPipeline. optional int64 default_value = 4; } @@ -257,8 +255,8 @@ message StudySpec { // relatively good starting point. Unset value signals that there is no // offered starting point. // - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. + // Currently only supported by the Vertex AI Vizier service. Not supported + // by HyperparameterTuningJob or TrainingPipeline. optional string default_value = 3; } @@ -275,8 +273,8 @@ message StudySpec { // offered starting point. It automatically rounds to the // nearest feasible discrete point. // - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. + // Currently only supported by the Vertex AI Vizier service. Not supported + // by HyperparameterTuningJob or TrainingPipeline. optional double default_value = 3; } @@ -400,6 +398,54 @@ message StudySpec { bool use_elapsed_duration = 1; } + // Configuration for ConvexAutomatedStoppingSpec. + // When there are enough completed trials (configured by + // min_measurement_count), for pending trials with enough measurements and + // steps, the policy first computes an overestimate of the objective value at + // max_num_steps according to the slope of the incomplete objective value + // curve. No prediction can be made if the curve is completely flat. If the + // overestimation is worse than the best objective value of the completed + // trials, this pending trial will be early-stopped, but a last measurement + // will be added to the pending trial with max_num_steps and predicted + // objective value from the autoregression model. + message ConvexAutomatedStoppingSpec { + // Steps used in predicting the final objective for early stopped trials. In + // general, it's set to be the same as the defined steps in training / + // tuning. If not defined, it will learn it from the completed trials. When + // use_steps is false, this field is set to the maximum elapsed seconds. + int64 max_step_count = 1; + + // Minimum number of steps for a trial to complete. Trials which do not have + // a measurement with step_count > min_step_count won't be considered for + // early stopping. It's ok to set it to 0, and a trial can be early stopped + // at any stage. By default, min_step_count is set to be one-tenth of the + // max_step_count. + // When use_elapsed_duration is true, this field is set to the minimum + // elapsed seconds. + int64 min_step_count = 2; + + // The minimal number of measurements in a Trial. Early-stopping checks + // will not trigger if less than min_measurement_count+1 completed trials or + // pending trials with less than min_measurement_count measurements. If not + // defined, the default value is 5. + int64 min_measurement_count = 3; + + // The hyper-parameter name used in the tuning job that stands for learning + // rate. Leave it blank if learning rate is not in a parameter in tuning. + // The learning_rate is used to estimate the objective value of the ongoing + // trial. + string learning_rate_parameter_name = 4; + + // This bool determines whether or not the rule is applied based on + // elapsed_secs or steps. If use_elapsed_duration==false, the early stopping + // decision is made according to the predicted objective values according to + // the target steps. If use_elapsed_duration==true, elapsed_secs is used + // instead of steps. Also, in this case, the parameters max_num_steps and + // min_num_steps are overloaded to contain max_elapsed_seconds and + // min_elapsed_seconds. + bool use_elapsed_duration = 5; + } + // The available search algorithms for the Study. enum Algorithm { // The default algorithm used by Vertex AI for [hyperparameter @@ -463,6 +509,9 @@ message StudySpec { // The automated early stopping spec using median rule. MedianAutomatedStoppingSpec median_automated_stopping_spec = 5; + + // The automated early stopping spec using convex stopping rule. + ConvexAutomatedStoppingSpec convex_automated_stopping_spec = 9; } // Required. Metric specs for the Study. @@ -476,7 +525,7 @@ message StudySpec { // The observation noise level of the study. // Currently only supported by the Vertex AI Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. + // HyperparameterTuningJob or TrainingPipeline. ObservationNoise observation_noise = 6; // Describe which measurement selection type will be used diff --git a/google/cloud/aiplatform/v1/tensorboard.proto b/google/cloud/aiplatform/v1/tensorboard.proto index c1a9ba026..84a245d90 100644 --- a/google/cloud/aiplatform/v1/tensorboard.proto +++ b/google/cloud/aiplatform/v1/tensorboard.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/tensorboard_data.proto b/google/cloud/aiplatform/v1/tensorboard_data.proto index 2cd9d67b3..c65db6945 100644 --- a/google/cloud/aiplatform/v1/tensorboard_data.proto +++ b/google/cloud/aiplatform/v1/tensorboard_data.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1/tensorboard_time_series.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/tensorboard_experiment.proto b/google/cloud/aiplatform/v1/tensorboard_experiment.proto index 3ef9df6e9..9d7fe1204 100644 --- a/google/cloud/aiplatform/v1/tensorboard_experiment.proto +++ b/google/cloud/aiplatform/v1/tensorboard_experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/tensorboard_run.proto b/google/cloud/aiplatform/v1/tensorboard_run.proto index 7986240f5..0f7b5eff6 100644 --- a/google/cloud/aiplatform/v1/tensorboard_run.proto +++ b/google/cloud/aiplatform/v1/tensorboard_run.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/tensorboard_service.proto b/google/cloud/aiplatform/v1/tensorboard_service.proto index fc65a78dc..ed81dd1f2 100644 --- a/google/cloud/aiplatform/v1/tensorboard_service.proto +++ b/google/cloud/aiplatform/v1/tensorboard_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/aiplatform/v1/tensorboard_time_series.proto b/google/cloud/aiplatform/v1/tensorboard_time_series.proto index 801d7883a..eff288e5d 100644 --- a/google/cloud/aiplatform/v1/tensorboard_time_series.proto +++ b/google/cloud/aiplatform/v1/tensorboard_time_series.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/training_pipeline.proto b/google/cloud/aiplatform/v1/training_pipeline.proto index a2062815b..a0de8cf40 100644 --- a/google/cloud/aiplatform/v1/training_pipeline.proto +++ b/google/cloud/aiplatform/v1/training_pipeline.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,14 +20,11 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/cloud/aiplatform/v1/io.proto"; -import "google/cloud/aiplatform/v1/machine_resources.proto"; -import "google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto"; import "google/cloud/aiplatform/v1/model.proto"; import "google/cloud/aiplatform/v1/pipeline_state.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; @@ -99,6 +96,17 @@ message TrainingPipeline { // is. Model model_to_upload = 7; + // Optional. The ID to use for the uploaded Model, which will become the final + // component of the model resource name. + // + // This value may be up to 63 characters, and valid characters are + // `[a-z0-9_-]`. The first character cannot be a number or hyphen. + string model_id = 22 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When specify this field, the `model_to_upload` will not be uploaded as a + // new model, instead, it will become a new version of this `parent_model`. + string parent_model = 21 [(google.api.field_behavior) = OPTIONAL]; + // Output only. The detailed state of the pipeline. PipelineState state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -268,6 +276,20 @@ message InputDataConfig { // for training are filtered by both [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter] and // [annotation_schema_uri][google.cloud.aiplatform.v1.InputDataConfig.annotation_schema_uri]. string annotation_schema_uri = 9; + + // Only applicable to Datasets that have SavedQueries. + // + // The ID of a SavedQuery (annotation set) under the Dataset specified by + // [dataset_id][google.cloud.aiplatform.v1.InputDataConfig.dataset_id] used for filtering Annotations for training. + // + // Only Annotations that are associated with this SavedQuery are used in + // respectively training. When used in conjunction with + // [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter], the Annotations used for training are filtered by + // both [saved_query_id][google.cloud.aiplatform.v1.InputDataConfig.saved_query_id] and [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter]. + // + // Only one of [saved_query_id][google.cloud.aiplatform.v1.InputDataConfig.saved_query_id] and [annotation_schema_uri][google.cloud.aiplatform.v1.InputDataConfig.annotation_schema_uri] should be + // specified as both of them represent the same thing: problem type. + string saved_query_id = 7; } // Assigns the input data to training, validation, and test sets as per the diff --git a/google/cloud/aiplatform/v1/types.proto b/google/cloud/aiplatform/v1/types.proto index 34cf10ca7..095b73c11 100644 --- a/google/cloud/aiplatform/v1/types.proto +++ b/google/cloud/aiplatform/v1/types.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; option java_multiple_files = true; @@ -34,7 +32,7 @@ message BoolArray { // A list of double values. message DoubleArray { - // A list of bool values. + // A list of double values. repeated double values = 1; } diff --git a/google/cloud/aiplatform/v1/unmanaged_container_model.proto b/google/cloud/aiplatform/v1/unmanaged_container_model.proto index 04d13ddb0..62e3e459c 100644 --- a/google/cloud/aiplatform/v1/unmanaged_container_model.proto +++ b/google/cloud/aiplatform/v1/unmanaged_container_model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1/model.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; diff --git a/google/cloud/aiplatform/v1/user_action_reference.proto b/google/cloud/aiplatform/v1/user_action_reference.proto index ffafed034..bf4c9f933 100644 --- a/google/cloud/aiplatform/v1/user_action_reference.proto +++ b/google/cloud/aiplatform/v1/user_action_reference.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; option java_multiple_files = true; diff --git a/google/cloud/aiplatform/v1/value.proto b/google/cloud/aiplatform/v1/value.proto index 48607bf95..e8ab58538 100644 --- a/google/cloud/aiplatform/v1/value.proto +++ b/google/cloud/aiplatform/v1/value.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; option java_multiple_files = true; diff --git a/google/cloud/aiplatform/v1/vizier_service.proto b/google/cloud/aiplatform/v1/vizier_service.proto index 7cad3be13..70cc7a7a2 100644 --- a/google/cloud/aiplatform/v1/vizier_service.proto +++ b/google/cloud/aiplatform/v1/vizier_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -285,7 +285,7 @@ message SuggestTrialsRequest { } ]; - // Required. The number of suggestions requested. + // Required. The number of suggestions requested. It must be positive. int32 suggestion_count = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The identifier of the client that is requesting the suggestion. diff --git a/google/cloud/aiplatform/v1beta1/BUILD.bazel b/google/cloud/aiplatform/v1beta1/BUILD.bazel index 86288344e..ae11c9d6e 100644 --- a/google/cloud/aiplatform/v1beta1/BUILD.bazel +++ b/google/cloud/aiplatform/v1beta1/BUILD.bazel @@ -35,6 +35,8 @@ proto_library( "dataset_service.proto", "deployed_index_ref.proto", "deployed_model_ref.proto", + "deployment_resource_pool.proto", + "deployment_resource_pool_service.proto", "encryption_spec.proto", "endpoint.proto", "endpoint_service.proto", @@ -74,10 +76,12 @@ proto_library( "model_monitoring.proto", "model_service.proto", "operation.proto", + "pipeline_failure_policy.proto", "pipeline_job.proto", "pipeline_service.proto", "pipeline_state.proto", "prediction_service.proto", + "saved_query.proto", "specialist_pool.proto", "specialist_pool_service.proto", "study.proto", @@ -102,6 +106,7 @@ proto_library( "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", + "//google/type:interval_proto", "//google/type:money_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", @@ -117,6 +122,8 @@ proto_library_with_info( deps = [ ":aiplatform_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ] + _PROTO_SUBPACKAGE_DEPS, ) @@ -160,13 +167,19 @@ java_grpc_library( java_gapic_library( name = "aiplatform_java_gapic", srcs = [":aiplatform_proto_with_info"], + gapic_yaml = None, grpc_service_config = "aiplatform_grpc_service_config.json", + service_yaml = "aiplatform_v1beta1.yaml", test_deps = [ ":aiplatform_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ] + _JAVA_GRPC_SUBPACKAGE_DEPS, deps = [ ":aiplatform_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ] + _JAVA_PROTO_SUBPACKAGE_DEPS, ) @@ -175,12 +188,18 @@ java_gapic_test( test_classes = [ "com.google.cloud.aiplatform.v1beta1.DatasetServiceClientTest", "com.google.cloud.aiplatform.v1beta1.EndpointServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.FeaturestoreServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.IndexEndpointServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.IndexServiceClientTest", "com.google.cloud.aiplatform.v1beta1.JobServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.MetadataServiceClientTest", "com.google.cloud.aiplatform.v1beta1.MigrationServiceClientTest", "com.google.cloud.aiplatform.v1beta1.ModelServiceClientTest", "com.google.cloud.aiplatform.v1beta1.PipelineServiceClientTest", "com.google.cloud.aiplatform.v1beta1.PredictionServiceClientTest", "com.google.cloud.aiplatform.v1beta1.SpecialistPoolServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.TensorboardServiceClientTest", "com.google.cloud.aiplatform.v1beta1.VizierServiceClientTest", ], runtime_deps = [":aiplatform_java_gapic_test"], @@ -218,6 +237,7 @@ go_proto_library( "//google/api:httpbody_go_proto", "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", + "//google/type:interval_go_proto", "//google/type:money_go_proto", ], ) @@ -232,6 +252,8 @@ go_gapic_library( deps = [ ":aiplatform_go_proto", "//google/api:httpbody_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", @@ -265,6 +287,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) _PY_GAPIC_SUBPACKAGE_DEPS = [ @@ -278,6 +301,21 @@ py_gapic_library( name = "aiplatform_py_gapic", srcs = [":aiplatform_proto"], grpc_service_config = "aiplatform_grpc_service_config.json", + service_yaml = "aiplatform_v1beta1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "aiplatform_py_gapic_test", + srcs = [ + "aiplatform_py_gapic_pytest.py", + "aiplatform_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":aiplatform_py_gapic"], ) # Open Source Packages @@ -433,6 +471,7 @@ csharp_grpc_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", +# service_yaml = "aiplatform_v1beta1.yaml", # deps = [ # ":aiplatform_csharp_grpc", # ":aiplatform_csharp_proto", diff --git a/google/cloud/aiplatform/v1beta1/accelerator_type.proto b/google/cloud/aiplatform/v1beta1/accelerator_type.proto index 92b01fae6..af624cb73 100644 --- a/google/cloud/aiplatform/v1beta1/accelerator_type.proto +++ b/google/cloud/aiplatform/v1beta1/accelerator_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option java_multiple_files = true; @@ -48,4 +46,10 @@ enum AcceleratorType { // Nvidia Tesla A100 GPU. NVIDIA_TESLA_A100 = 8; + + // TPU v2. + TPU_V2 = 6; + + // TPU v3. + TPU_V3 = 7; } diff --git a/google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json b/google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json index 929c66ac3..724503cb0 100644 --- a/google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json +++ b/google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json @@ -389,6 +389,10 @@ "service": "google.cloud.aiplatform.v1beta1.ModelService", "method": "ExportModel" }, + { + "service": "google.cloud.aiplatform.v1beta1.ModelService", + "method": "CopyModel" + }, { "service": "google.cloud.aiplatform.v1beta1.ModelService", "method": "GetModelEvaluation" diff --git a/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml b/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml index 655aa9699..4d4e07546 100644 --- a/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml +++ b/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml @@ -5,6 +5,7 @@ title: Vertex AI API apis: - name: google.cloud.aiplatform.v1beta1.DatasetService +- name: google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService - name: google.cloud.aiplatform.v1beta1.EndpointService - name: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService - name: google.cloud.aiplatform.v1beta1.FeaturestoreService @@ -19,6 +20,9 @@ apis: - name: google.cloud.aiplatform.v1beta1.SpecialistPoolService - name: google.cloud.aiplatform.v1beta1.TensorboardService - 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.BatchCreateFeaturesOperationMetadata @@ -30,6 +34,7 @@ types: - name: google.cloud.aiplatform.v1beta1.CheckTrialEarlyStoppingStateMetatdata - name: google.cloud.aiplatform.v1beta1.CheckTrialEarlyStoppingStateResponse - name: google.cloud.aiplatform.v1beta1.CreateDatasetOperationMetadata +- name: google.cloud.aiplatform.v1beta1.CreateDeploymentResourcePoolOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateEndpointOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateEntityTypeOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateFeatureOperationMetadata @@ -39,6 +44,8 @@ types: - name: google.cloud.aiplatform.v1beta1.CreateMetadataStoreOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateSpecialistPoolOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateTensorboardOperationMetadata +- name: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesOperationMetadata +- name: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesResponse - name: google.cloud.aiplatform.v1beta1.DeleteMetadataStoreOperationMetadata - name: google.cloud.aiplatform.v1beta1.DeleteOperationMetadata - name: google.cloud.aiplatform.v1beta1.DeployIndexOperationMetadata @@ -70,6 +77,9 @@ types: - name: google.cloud.aiplatform.v1beta1.UndeployIndexResponse - name: google.cloud.aiplatform.v1beta1.UndeployModelOperationMetadata - name: google.cloud.aiplatform.v1beta1.UndeployModelResponse +- name: google.cloud.aiplatform.v1beta1.UpdateDeploymentResourcePoolOperationMetadata +- name: google.cloud.aiplatform.v1beta1.UpdateExplanationDatasetOperationMetadata +- name: google.cloud.aiplatform.v1beta1.UpdateExplanationDatasetResponse - name: google.cloud.aiplatform.v1beta1.UpdateFeaturestoreOperationMetadata - name: google.cloud.aiplatform.v1beta1.UpdateIndexOperationMetadata - name: google.cloud.aiplatform.v1beta1.UpdateModelDeploymentMonitoringJobOperationMetadata @@ -119,18 +129,18 @@ backend: rules: - selector: 'google.cloud.aiplatform.v1beta1.DatasetService.*' deadline: 60.0 + - selector: 'google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.*' + deadline: 30.0 - selector: 'google.cloud.aiplatform.v1beta1.EndpointService.*' deadline: 60.0 - - selector: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues - deadline: 60.0 - - selector: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues + - selector: 'google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.*' deadline: 60.0 - selector: 'google.cloud.aiplatform.v1beta1.FeaturestoreService.*' deadline: 60.0 - selector: 'google.cloud.aiplatform.v1beta1.IndexEndpointService.*' - deadline: 30.0 + deadline: 60.0 - selector: 'google.cloud.aiplatform.v1beta1.IndexService.*' - deadline: 30.0 + deadline: 60.0 - selector: 'google.cloud.aiplatform.v1beta1.JobService.*' deadline: 60.0 - selector: 'google.cloud.aiplatform.v1beta1.MetadataService.*' @@ -171,13 +181,29 @@ http: additional_bindings: - get: '/v1beta1/{name=projects/*}/locations' - selector: google.iam.v1.IAMPolicy.GetIamPolicy - get: '/v1beta1/{resource=projects/*/locations/*/**}:getIamPolicy' + post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy' + body: '*' + additional_bindings: + - post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:getIamPolicy' + - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy' + - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy - post: '/v1beta1/{resource=projects/*/locations/*/**}:setIamPolicy' + post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy' body: '*' + additional_bindings: + - post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:setIamPolicy' + body: '*' + - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy' + body: '*' + - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions - post: '/v1beta1/{resource=projects/*/locations/*/**}:testIamPermissions' + post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions' body: '*' + additional_bindings: + - post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:testIamPermissions' + - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions' + - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:testIamPermissions' - selector: google.longrunning.Operations.CancelOperation post: '/ui/{name=projects/*/locations/*/operations/*}:cancel' additional_bindings: @@ -186,6 +212,7 @@ http: - post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}:cancel' @@ -215,6 +242,7 @@ http: - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:cancel' + - post: '/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/edgeDevices/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/endpoints/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/featurestores/*/operations/*}:cancel' @@ -246,6 +274,7 @@ http: - delete: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}' @@ -275,6 +304,7 @@ http: - delete: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}' + - delete: '/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/edgeDevices/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/endpoints/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/featurestores/*/operations/*}' @@ -306,6 +336,7 @@ http: - get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/edgeDeploymentJobs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}' @@ -336,6 +367,7 @@ http: - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}' + - get: '/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/edgeDevices/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/endpoints/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/featurestores/*/operations/*}' @@ -367,6 +399,7 @@ http: - get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*}/operations' + - get: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*}/operations' - get: '/ui/{name=projects/*/locations/*/edgeDevices/*}/operations' - get: '/ui/{name=projects/*/locations/*/endpoints/*}/operations' - get: '/ui/{name=projects/*/locations/*/featurestores/*}/operations' @@ -396,6 +429,7 @@ http: - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*}/operations' + - get: '/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/edgeDevices/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/endpoints/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/featurestores/*}/operations' @@ -427,6 +461,7 @@ http: - post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}:wait' @@ -456,6 +491,7 @@ http: - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:wait' + - post: '/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/edgeDevices/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/endpoints/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/featurestores/*/operations/*}:wait' @@ -486,15 +522,15 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.aiplatform.v1beta1.EndpointService.*' + - selector: 'google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues + - selector: 'google.cloud.aiplatform.v1beta1.EndpointService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues + - selector: 'google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/aiplatform/v1beta1/annotation.proto b/google/cloud/aiplatform/v1beta1/annotation.proto index 1724bfb94..e57ab445a 100644 --- a/google/cloud/aiplatform/v1beta1/annotation.proto +++ b/google/cloud/aiplatform/v1beta1/annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,11 +18,9 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; - import "google/cloud/aiplatform/v1beta1/user_action_reference.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/annotation_spec.proto b/google/cloud/aiplatform/v1beta1/annotation_spec.proto index a23a1ec09..5d4c5664e 100644 --- a/google/cloud/aiplatform/v1beta1/annotation_spec.proto +++ b/google/cloud/aiplatform/v1beta1/annotation_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/artifact.proto b/google/cloud/aiplatform/v1beta1/artifact.proto index 2817349e5..378afb3f7 100644 --- a/google/cloud/aiplatform/v1beta1/artifact.proto +++ b/google/cloud/aiplatform/v1beta1/artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto b/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto index 2b7cf5d82..63fb0d9d0 100644 --- a/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto +++ b/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -25,12 +25,12 @@ import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/cloud/aiplatform/v1beta1/job_state.proto"; import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; import "google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto"; +import "google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto"; import "google/cloud/aiplatform/v1beta1/model_monitoring.proto"; import "google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -156,15 +156,21 @@ message BatchPredictionJob { // Required. The user-defined name of this BatchPredictionJob. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - // The name of the Model resoure that produces the predictions via this job, + // The name of the Model resource that produces the predictions via this job, // must share the same ancestor Location. // Starting this job has no impact on any existing deployments of the Model // and their resources. // Exactly one of model and unmanaged_container_model must be set. + // + // The model resource name may contain version id or version alias to specify + // the version, if no version is specified, the default version will be used. string model = 3 [(google.api.resource_reference) = { type: "aiplatform.googleapis.com/Model" }]; + // Output only. The version ID of the Model that produces the predictions via this job. + string model_version_id = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Contains model information necessary to perform batch prediction without // requiring uploading to model registry. // Exactly one of model and unmanaged_container_model must be set. @@ -200,6 +206,15 @@ message BatchPredictionJob { // must be provided. BatchDedicatedResources dedicated_resources = 7; + // The service account that the DeployedModel's container runs as. If not + // specified, a system generated one will be used, which + // has minimal permissions and the custom container, if used, may not have + // enough permission to access other GCP resources. + // + // Users deploying the Model must have the `iam.serviceAccounts.actAs` + // permission on this service account. + string service_account = 29; + // Immutable. Parameters configuring the batch behavior. Currently only applicable when // [dedicated_resources][google.cloud.aiplatform.v1beta1.BatchPredictionJob.dedicated_resources] are used (in other cases Vertex AI does // the tuning itself). @@ -285,4 +300,15 @@ message BatchPredictionJob { // is set, then all resources created by the BatchPredictionJob will be // encrypted with the provided encryption key. EncryptionSpec encryption_spec = 24; + + // Model monitoring config will be used for analysis model behaviors, based on + // the input and output to the batch prediction job, as well as the provided + // training dataset. + ModelMonitoringConfig model_monitoring_config = 26; + + // Get batch prediction job monitoring statistics. + repeated ModelMonitoringStatsAnomalies model_monitoring_stats_anomalies = 31; + + // Output only. The running status of the model monitoring pipeline. + google.rpc.Status model_monitoring_status = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/completion_stats.proto b/google/cloud/aiplatform/v1beta1/completion_stats.proto index 2c54b9612..f784eda4e 100644 --- a/google/cloud/aiplatform/v1beta1/completion_stats.proto +++ b/google/cloud/aiplatform/v1beta1/completion_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,8 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; -import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -43,4 +41,8 @@ message CompletionStats { // Set to -1 if the number is unknown (for example, the operation failed // before the total entity number could be collected). int64 incomplete_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of the successful forecast points that are generated by the + // forecasting model. This is ONLY used by the forecasting batch prediction. + int64 successful_forecast_point_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/context.proto b/google/cloud/aiplatform/v1beta1/context.proto index 64d25ea71..7f81ce4c0 100644 --- a/google/cloud/aiplatform/v1beta1/context.proto +++ b/google/cloud/aiplatform/v1beta1/context.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/custom_job.proto b/google/cloud/aiplatform/v1beta1/custom_job.proto index 54a4b0be3..24d384ff6 100644 --- a/google/cloud/aiplatform/v1beta1/custom_job.proto +++ b/google/cloud/aiplatform/v1beta1/custom_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -26,7 +26,6 @@ import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -123,7 +122,7 @@ message CustomJobSpec { // for the CustomJob's project is used. string service_account = 4; - // The full name of the Compute Engine + // Optional. The full name of the Compute Engine // [network](/compute/docs/networks-and-firewalls#networks) to which the Job // should be peered. For example, `projects/12345/global/networks/myVPC`. // [Format](/compute/docs/reference/rest/v1/networks/insert) @@ -136,9 +135,22 @@ message CustomJobSpec { // AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). // // If this field is left unspecified, the job is not peered with any network. - string network = 5 [(google.api.resource_reference) = { - type: "compute.googleapis.com/Network" - }]; + string network = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "compute.googleapis.com/Network" + } + ]; + + // Optional. A list of names for the reserved ip ranges under the VPC network + // that can be used for this job. + // + // If set, we will deploy the job within the provided ip ranges. Otherwise, + // the job will be deployed to any ip ranges under the provided VPC + // network. + // + // Example: ['vertex-ai-ip-range']. + repeated string reserved_ip_ranges = 13 [(google.api.field_behavior) = OPTIONAL]; // The Cloud Storage location to store the output of this CustomJob or // HyperparameterTuningJob. For HyperparameterTuningJob, @@ -204,6 +216,9 @@ message WorkerPoolSpec { // Optional. The number of worker replicas to use for this worker pool. int64 replica_count = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. List of NFS mount spec. + repeated NfsMount nfs_mounts = 4 [(google.api.field_behavior) = OPTIONAL]; + // Disk spec. DiskSpec disk_spec = 5; } @@ -220,6 +235,10 @@ message ContainerSpec { // The arguments to be passed when starting the container. repeated string args = 3; + + // Environment variables to be passed to the container. + // Maximum limit is 100. + repeated EnvVar env = 4; } // The spec of a Python packaged code. @@ -242,6 +261,10 @@ message PythonPackageSpec { // Command line arguments to be passed to the Python task. repeated string args = 4; + + // Environment variables to be passed to the python module. + // Maximum limit is 100. + repeated EnvVar env = 5; } // All parameters related to queuing and scheduling of custom jobs. diff --git a/google/cloud/aiplatform/v1beta1/data_item.proto b/google/cloud/aiplatform/v1beta1/data_item.proto index 2f904487d..5c3e443bf 100644 --- a/google/cloud/aiplatform/v1beta1/data_item.proto +++ b/google/cloud/aiplatform/v1beta1/data_item.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ 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"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/data_labeling_job.proto b/google/cloud/aiplatform/v1beta1/data_labeling_job.proto index 5c2de6651..3a7160a56 100644 --- a/google/cloud/aiplatform/v1beta1/data_labeling_job.proto +++ b/google/cloud/aiplatform/v1beta1/data_labeling_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,15 +18,12 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/accelerator_type.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/job_state.proto"; -import "google/cloud/aiplatform/v1beta1/specialist_pool.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; import "google/type/money.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/dataset.proto b/google/cloud/aiplatform/v1beta1/dataset.proto index 23e8626d6..5d1f197f4 100644 --- a/google/cloud/aiplatform/v1beta1/dataset.proto +++ b/google/cloud/aiplatform/v1beta1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/dataset_service.proto b/google/cloud/aiplatform/v1beta1/dataset_service.proto index 172859a52..3be59c059 100644 --- a/google/cloud/aiplatform/v1beta1/dataset_service.proto +++ b/google/cloud/aiplatform/v1beta1/dataset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -25,7 +25,7 @@ import "google/cloud/aiplatform/v1beta1/annotation_spec.proto"; import "google/cloud/aiplatform/v1beta1/data_item.proto"; import "google/cloud/aiplatform/v1beta1/dataset.proto"; import "google/cloud/aiplatform/v1beta1/operation.proto"; -import "google/cloud/aiplatform/v1beta1/training_pipeline.proto"; +import "google/cloud/aiplatform/v1beta1/saved_query.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; @@ -127,6 +127,14 @@ service DatasetService { option (google.api.method_signature) = "parent"; } + // Lists SavedQueries in a Dataset. + rpc ListSavedQueries(ListSavedQueriesRequest) returns (ListSavedQueriesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/datasets/*}/savedQueries" + }; + option (google.api.method_signature) = "parent"; + } + // Gets an AnnotationSpec. rpc GetAnnotationSpec(GetAnnotationSpecRequest) returns (AnnotationSpec) { option (google.api.http) = { @@ -216,6 +224,7 @@ message ListDatasetsRequest { // * A key including a space must be quoted. `labels."a key"`. // // Some examples: + // // * `displayName="myDisplayName"` // * `labels.myKey="myValue"` string filter = 2; @@ -232,6 +241,7 @@ message ListDatasetsRequest { // 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` @@ -358,6 +368,44 @@ message ListDataItemsResponse { string next_page_token = 2; } +// Request message for [DatasetService.ListSavedQueries][google.cloud.aiplatform.v1beta1.DatasetService.ListSavedQueries]. +message ListSavedQueriesRequest { + // Required. The resource name of the Dataset to list SavedQueries from. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + } + ]; + + // The standard list filter. + 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; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + string order_by = 6; +} + +// Response message for [DatasetService.ListSavedQueries][google.cloud.aiplatform.v1beta1.DatasetService.ListSavedQueries]. +message ListSavedQueriesResponse { + // A list of SavedQueries that match the specified filter in the request. + repeated SavedQuery saved_queries = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + // Request message for [DatasetService.GetAnnotationSpec][google.cloud.aiplatform.v1beta1.DatasetService.GetAnnotationSpec]. message GetAnnotationSpecRequest { // Required. The name of the AnnotationSpec resource. diff --git a/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto b/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto index ed7cf7371..fd20f4d63 100644 --- a/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto +++ b/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto b/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto index 1c85e8efd..337ba55e8 100644 --- a/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto +++ b/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto b/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto new file mode 100644 index 000000000..2249e655c --- /dev/null +++ b/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto @@ -0,0 +1,50 @@ +// 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.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "DeploymentResourcePoolProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A description of resources that can be shared by multiple DeployedModels, +// whose underlying specification consists of a DedicatedResources. +message DeploymentResourcePool { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/DeploymentResourcePool" + pattern: "projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}" + }; + + // Output only. The resource name of the DeploymentResourcePool. + // Format: + // projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The underlying DedicatedResources that the DeploymentResourcePool uses. + DedicatedResources dedicated_resources = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp when this DeploymentResourcePool was created. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/aiplatform/v1beta1/deployment_resource_pool_service.proto b/google/cloud/aiplatform/v1beta1/deployment_resource_pool_service.proto new file mode 100644 index 000000000..11eddf67c --- /dev/null +++ b/google/cloud/aiplatform/v1beta1/deployment_resource_pool_service.proto @@ -0,0 +1,219 @@ +// 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.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/deployed_model_ref.proto"; +import "google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto"; +import "google/cloud/aiplatform/v1beta1/endpoint.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "DeploymentResourcePoolServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service that manages the DeploymentResourcePool resource. +service DeploymentResourcePoolService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Create a DeploymentResourcePool. + rpc CreateDeploymentResourcePool(CreateDeploymentResourcePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/deploymentResourcePools" + body: "*" + }; + option (google.api.method_signature) = "parent,deployment_resource_pool,deployment_resource_pool_id"; + option (google.longrunning.operation_info) = { + response_type: "DeploymentResourcePool" + metadata_type: "CreateDeploymentResourcePoolOperationMetadata" + }; + } + + // Get a DeploymentResourcePool. + rpc GetDeploymentResourcePool(GetDeploymentResourcePoolRequest) returns (DeploymentResourcePool) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List DeploymentResourcePools in a location. + rpc ListDeploymentResourcePools(ListDeploymentResourcePoolsRequest) returns (ListDeploymentResourcePoolsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/deploymentResourcePools" + }; + option (google.api.method_signature) = "parent"; + } + + // Delete a DeploymentResourcePool. + rpc DeleteDeploymentResourcePool(DeleteDeploymentResourcePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/deploymentResourcePools/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // List DeployedModels that have been deployed on this DeploymentResourcePool. + rpc QueryDeployedModels(QueryDeployedModelsRequest) returns (QueryDeployedModelsResponse) { + option (google.api.http) = { + get: "/v1beta1/{deployment_resource_pool=projects/*/locations/*/deploymentResourcePools/*}:queryDeployedModels" + }; + option (google.api.method_signature) = "deployment_resource_pool"; + } +} + +// Request message for CreateDeploymentResourcePool method. +message CreateDeploymentResourcePoolRequest { + // Required. The parent location resource where this DeploymentResourcePool will be + // created. Format: projects/{project}/locations/{location} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The DeploymentResourcePool to create. + DeploymentResourcePool deployment_resource_pool = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the DeploymentResourcePool, which + // will become the final component of the DeploymentResourcePool's resource + // name. + // + // The maximum length is 63 characters, and valid characters + // are `/^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/`. + string deployment_resource_pool_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation information for CreateDeploymentResourcePool method. +message CreateDeploymentResourcePoolOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for GetDeploymentResourcePool method. +message GetDeploymentResourcePoolRequest { + // Required. The name of the DeploymentResourcePool to retrieve. + // Format: + // projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/DeploymentResourcePool" + } + ]; +} + +// Request message for ListDeploymentResourcePools method. +message ListDeploymentResourcePoolsRequest { + // Required. The parent Location which owns this collection of DeploymentResourcePools. + // Format: projects/{project}/locations/{location} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "locations.googleapis.com/Location" + } + ]; + + // The maximum number of DeploymentResourcePools to return. The service may + // return fewer than this value. + int32 page_size = 2; + + // A page token, received from a previous `ListDeploymentResourcePools` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListDeploymentResourcePools` must match the call that provided the page + // token. + string page_token = 3; +} + +// Response message for ListDeploymentResourcePools method. +message ListDeploymentResourcePoolsResponse { + // The DeploymentResourcePools from the specified location. + repeated DeploymentResourcePool deployment_resource_pools = 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; +} + +// Runtime operation information for UpdateDeploymentResourcePool method. +message UpdateDeploymentResourcePoolOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for DeleteDeploymentResourcePool method. +message DeleteDeploymentResourcePoolRequest { + // Required. The name of the DeploymentResourcePool to delete. + // Format: + // projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/DeploymentResourcePool" + } + ]; +} + +// Request message for QueryDeployedModels method. +message QueryDeployedModelsRequest { + // Required. The name of the target DeploymentResourcePool to query. + // Format: + // projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool} + string deployment_resource_pool = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of DeployedModels to return. The service may return + // fewer than this value. + int32 page_size = 2; + + // A page token, received from a previous `QueryDeployedModels` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `QueryDeployedModels` must match the call that provided the page + // token. + string page_token = 3; +} + +// Response message for QueryDeployedModels method. +message QueryDeployedModelsResponse { + // DEPRECATED Use deployed_model_refs instead. + repeated DeployedModel deployed_models = 1 [deprecated = true]; + + // 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; + + // References to the DeployedModels that share the specified + // deploymentResourcePool. + repeated DeployedModelRef deployed_model_refs = 3; +} diff --git a/google/cloud/aiplatform/v1beta1/encryption_spec.proto b/google/cloud/aiplatform/v1beta1/encryption_spec.proto index d74e3b938..27e2bade0 100644 --- a/google/cloud/aiplatform/v1beta1/encryption_spec.proto +++ b/google/cloud/aiplatform/v1beta1/encryption_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/endpoint.proto b/google/cloud/aiplatform/v1beta1/endpoint.proto index 3971a35be..0236e532f 100644 --- a/google/cloud/aiplatform/v1beta1/endpoint.proto +++ b/google/cloud/aiplatform/v1beta1/endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,10 +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/model_deployment_monitoring_job.proto"; -import "google/cloud/aiplatform/v1beta1/model_monitoring.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -112,12 +109,12 @@ message Endpoint { type: "compute.googleapis.com/Network" }]; - // If true, expose the Endpoint via private service connect. + // Deprecated: If true, expose the Endpoint via private service connect. // // Only one of the fields, [network][google.cloud.aiplatform.v1beta1.Endpoint.network] or // [enable_private_service_connect][google.cloud.aiplatform.v1beta1.Endpoint.enable_private_service_connect], // can be set. - bool enable_private_service_connect = 17; + bool enable_private_service_connect = 17 [deprecated = true]; // Output only. Resource name of the Model Monitoring job associated with this Endpoint // if monitoring is enabled by [CreateModelDeploymentMonitoringJob][]. @@ -129,6 +126,9 @@ message Endpoint { type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob" } ]; + + // Configures the request-response logging for online prediction. + PredictRequestResponseLoggingConfig predict_request_response_logging_config = 18; } // A deployment of a Model. Endpoints contain one or more DeployedModels. @@ -146,6 +146,13 @@ message DeployedModel { // A description of resources that to large degree are decided by Vertex // AI, and require only a modest additional configuration. AutomaticResources automatic_resources = 8; + + // The resource name of the shared DeploymentResourcePool to deploy on. + // Format: + // projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool} + string shared_resources = 17 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/DeploymentResourcePool" + }]; } // Immutable. The ID of the DeployedModel. If not provided upon deployment, Vertex AI @@ -154,8 +161,11 @@ message DeployedModel { // This value should be 1-10 characters, and valid characters are /[0-9]/. string id = 1 [(google.api.field_behavior) = IMMUTABLE]; - // Required. The name of the Model that this is the deployment of. Note that the Model - // may be in a different location than the DeployedModel's Endpoint. + // Required. The resource name of the Model that this is the deployment of. Note that + // the Model may be in a different location than the DeployedModel's Endpoint. + // + // The resource name may contain version id or version alias to specify the + // version, if no version is specified, the default version will be deployed. string model = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -163,6 +173,9 @@ message DeployedModel { } ]; + // Output only. The version ID of the model that is deployed. + string model_version_id = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The display name of the DeployedModel. If not provided upon creation, // the Model's display_name is used. string display_name = 3; @@ -229,3 +242,21 @@ message PrivateEndpoints { // connect is enabled. string service_attachment = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Configuration for logging request-response to a BigQuery table. +message PredictRequestResponseLoggingConfig { + // If logging is enabled or not. + bool enabled = 1; + + // Percentage of requests to be logged, expressed as a fraction in + // range(0,1]. + double sampling_rate = 2; + + // BigQuery table for logging. + // If only given a project, a new dataset will be created with name + // `logging__` where + // will be made BigQuery-dataset-name compatible (e.g. + // most special characters will become underscores). If no table name is + // given, a new table will be created with name `request_response_logging` + BigQueryDestination bigquery_destination = 3; +} diff --git a/google/cloud/aiplatform/v1beta1/endpoint_service.proto b/google/cloud/aiplatform/v1beta1/endpoint_service.proto index 9cf261f20..e30077dcd 100644 --- a/google/cloud/aiplatform/v1beta1/endpoint_service.proto +++ b/google/cloud/aiplatform/v1beta1/endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/aiplatform/v1beta1/entity_type.proto b/google/cloud/aiplatform/v1beta1/entity_type.proto index 232b0ec21..14f762bac 100644 --- a/google/cloud/aiplatform/v1beta1/entity_type.proto +++ b/google/cloud/aiplatform/v1beta1/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/feature.proto"; import "google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/env_var.proto b/google/cloud/aiplatform/v1beta1/env_var.proto index e62c594b8..5e1d677b9 100644 --- a/google/cloud/aiplatform/v1beta1/env_var.proto +++ b/google/cloud/aiplatform/v1beta1/env_var.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/event.proto b/google/cloud/aiplatform/v1beta1/event.proto index c2d7abbd0..5cbb25c8c 100644 --- a/google/cloud/aiplatform/v1beta1/event.proto +++ b/google/cloud/aiplatform/v1beta1/event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/execution.proto b/google/cloud/aiplatform/v1beta1/execution.proto index f26554de5..74395db99 100644 --- a/google/cloud/aiplatform/v1beta1/execution.proto +++ b/google/cloud/aiplatform/v1beta1/execution.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,10 +18,8 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/explanation.proto b/google/cloud/aiplatform/v1beta1/explanation.proto index e8c852008..6dccd06e4 100644 --- a/google/cloud/aiplatform/v1beta1/explanation.proto +++ b/google/cloud/aiplatform/v1beta1/explanation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1beta1/explanation_metadata.proto"; import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -48,6 +47,12 @@ message Explanation { // the attributions are stored by [Attribution.output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index] in the same // order as they appear in the output_indices. repeated Attribution attributions = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of the nearest neighbors for example-based explanations. + // + // For models deployed with the examples explanations feature enabled, the + // attributions field is empty and instead the neighbors field is populated. + repeated Neighbor neighbors = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Aggregated explanation metrics for a Model over a set of instances. @@ -164,13 +169,22 @@ message Attribution { string output_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Neighbors for example-based explanations. +message Neighbor { + // Output only. The neighbor id. + string neighbor_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The neighbor distance. + double neighbor_distance = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Specification of Model explanation. message ExplanationSpec { // Required. Parameters that configure explaining of the Model's predictions. ExplanationParameters parameters = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Metadata describing the Model's input and output for explanation. - ExplanationMetadata metadata = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. Metadata describing the Model's input and output for explanation. + ExplanationMetadata metadata = 2 [(google.api.field_behavior) = OPTIONAL]; } // Parameters to configure explaining for Model's predictions. @@ -198,9 +212,9 @@ message ExplanationParameters { // x-rays or quality-control cameras, use Integrated Gradients instead. XraiAttribution xrai_attribution = 3; - // Similarity explainability that returns the nearest neighbors from the + // Example-based explanations that returns the nearest neighbors from the // provided dataset. - Similarity similarity = 7; + Examples examples = 7; } // If populated, returns attributions for top K indices of outputs @@ -215,7 +229,7 @@ message ExplanationParameters { // explaining. // // If not populated, returns attributions for [top_k][google.cloud.aiplatform.v1beta1.ExplanationParameters.top_k] indices of outputs. - // If neither top_k nor output_indeices is populated, returns the argmax + // If neither top_k nor output_indices is populated, returns the argmax // index of the outputs. // // Only applicable to Models that predict multiple outputs (e,g, multi-class @@ -371,15 +385,58 @@ message BlurBaselineConfig { float max_blur_sigma = 1; } -// Similarity explainability that returns the nearest neighbors from the +// Example-based explainability that returns the nearest neighbors from the // provided dataset. -message Similarity { +message Examples { + oneof config { + // The configuration for the generated index, the semantics are the same as + // [metadata][google.cloud.aiplatform.v1beta1.Index.metadata] and should match NearestNeighborSearchConfig. + google.protobuf.Value nearest_neighbor_search_config = 2; + + // Preset config based on the desired query speed-precision trade-off + // and modality + Presets presets = 4; + } + // The Cloud Storage location for the input instances. GcsSource gcs_source = 1; - // The configuration for the generated index, the semantics are the same as - // [metadata][google.cloud.aiplatform.v1beta1.Index.metadata] and should match NearestNeighborSearchConfig. - google.protobuf.Value nearest_neighbor_search_config = 2; + // The number of neighbors to return. + int32 neighbor_count = 3; +} + +// Preset configuration for example-based explanations +message Presets { + // Preset option controlling parameters for query speed-precision trade-off + enum Query { + // More precise neighbors as a trade-off against slower response. + // This is also the default value (field-number 0). + PRECISE = 0; + + // Faster response as a trade-off against less precise neighbors. + FAST = 1; + } + + // Preset option controlling parameters for different modalities + enum Modality { + // Should not be set. Added as a recommended best practice for enums + MODALITY_UNSPECIFIED = 0; + + // IMAGE modality + IMAGE = 1; + + // TEXT modality + TEXT = 2; + + // TABULAR modality + TABULAR = 3; + } + + // Preset option controlling parameters for query speed-precision trade-off + optional Query query = 1; + + // Preset option controlling parameters for different modalities + Modality modality = 2; } // The [ExplanationSpec][google.cloud.aiplatform.v1beta1.ExplanationSpec] entries that can be overridden at @@ -392,6 +449,9 @@ message ExplanationSpecOverride { // The metadata to be overridden. If not specified, no metadata is overridden. ExplanationMetadataOverride metadata = 2; + + // The example-based explanations parameter overrides. + ExamplesOverride examples_override = 3; } // The [ExplanationMetadata][google.cloud.aiplatform.v1beta1.ExplanationMetadata] entries that can be overridden at @@ -416,3 +476,45 @@ message ExplanationMetadataOverride { // overridden. map inputs = 1 [(google.api.field_behavior) = REQUIRED]; } + +// Overrides for example-based explanations. +message ExamplesOverride { + // Data format enum. + enum DataFormat { + // Unspecified format. Must not be used. + DATA_FORMAT_UNSPECIFIED = 0; + + // Provided data is a set of model inputs. + INSTANCES = 1; + + // Provided data is a set of embeddings. + EMBEDDINGS = 2; + } + + // The number of neighbors to return. + int32 neighbor_count = 1; + + // The number of neighbors to return that have the same crowding tag. + int32 crowding_count = 2; + + // Restrict the resulting nearest neighbors to respect these constraints. + repeated ExamplesRestrictionsNamespace restrictions = 3; + + // If true, return the embeddings instead of neighbors. + bool return_embeddings = 4; + + // The format of the data being provided with each call. + DataFormat data_format = 5; +} + +// Restrictions namespace for example-based explanations overrides. +message ExamplesRestrictionsNamespace { + // The namespace name. + string namespace_name = 1; + + // The list of allowed tags. + repeated string allow = 2; + + // The list of deny tags. + repeated string deny = 3; +} diff --git a/google/cloud/aiplatform/v1beta1/explanation_metadata.proto b/google/cloud/aiplatform/v1beta1/explanation_metadata.proto index 9919dbd88..ef962a519 100644 --- a/google/cloud/aiplatform/v1beta1/explanation_metadata.proto +++ b/google/cloud/aiplatform/v1beta1/explanation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -393,4 +392,7 @@ message ExplanationMetadata { // than the one given on input. The output URI will point to a location where // the user only has a read access. string feature_attributions_schema_uri = 3; + + // Name of the source to generate embeddings for example based explanations. + string latent_space_source = 5; } diff --git a/google/cloud/aiplatform/v1beta1/feature.proto b/google/cloud/aiplatform/v1beta1/feature.proto index a4f8b36c3..cf67cf3e9 100644 --- a/google/cloud/aiplatform/v1beta1/feature.proto +++ b/google/cloud/aiplatform/v1beta1/feature.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto"; import "google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -40,6 +39,33 @@ message Feature { pattern: "projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}" }; + // A list of historical [Snapshot + // Analysis][FeaturestoreMonitoringConfig.SnapshotAnalysis] or [Import Feature + // Analysis] [FeaturestoreMonitoringConfig.ImportFeatureAnalysis] stats + // requested by user, sorted by [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1beta1.FeatureStatsAnomaly.start_time] descending. + message MonitoringStatsAnomaly { + // If the objective in the request is both + // Import Feature Analysis and Snapshot Analysis, this objective could be + // one of them. Otherwise, this objective should be the same as the + // objective in the request. + enum Objective { + // If it's OBJECTIVE_UNSPECIFIED, monitoring_stats will be empty. + OBJECTIVE_UNSPECIFIED = 0; + + // Stats are generated by Import Feature Analysis. + IMPORT_FEATURE_ANALYSIS = 1; + + // Stats are generated by Snapshot Analysis. + SNAPSHOT_ANALYSIS = 2; + } + + // Output only. The objective for each stats. + Objective objective = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The stats and anomalies generated at specific timestamp. + FeatureStatsAnomaly feature_stats_anomaly = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // An enum representing the value type of a feature. enum ValueType { // The value type is unspecified. @@ -115,8 +141,9 @@ message Feature { // "overwrite" update happens. string etag = 7; - // Optional. The custom monitoring configuration for this Feature, if not set, use the - // monitoring_config defined for the EntityType this Feature belongs to. + // Optional. Deprecated: The custom monitoring configuration for this Feature, if not + // set, use the monitoring_config defined for the EntityType this Feature + // belongs to. // Only Features with type ([Feature.ValueType][google.cloud.aiplatform.v1beta1.Feature.ValueType]) BOOL, STRING, DOUBLE or // INT64 can enable monitoring. // @@ -126,11 +153,26 @@ message Feature { // [FeaturestoreMonitoringConfig.monitoring_interval][] specified, snapshot // analysis monitoring is enabled. Otherwise, snapshot analysis monitoring // config is same as the EntityType's this Feature belongs to. - FeaturestoreMonitoringConfig monitoring_config = 9 [(google.api.field_behavior) = OPTIONAL]; + FeaturestoreMonitoringConfig monitoring_config = 9 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If not set, use the monitoring_config defined for the EntityType this + // Feature belongs to. + // Only Features with type ([Feature.ValueType][google.cloud.aiplatform.v1beta1.Feature.ValueType]) BOOL, STRING, DOUBLE or + // INT64 can enable monitoring. + // + // If set to true, all types of data monitoring are disabled despite the + // config on EntityType. + bool disable_monitoring = 12 [(google.api.field_behavior) = OPTIONAL]; // Output only. A list of historical [Snapshot // Analysis][FeaturestoreMonitoringConfig.SnapshotAnalysis] // stats requested by user, sorted by [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1beta1.FeatureStatsAnomaly.start_time] // descending. repeated FeatureStatsAnomaly monitoring_stats = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of historical stats and anomalies with specified objectives. + repeated MonitoringStatsAnomaly monitoring_stats_anomalies = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto b/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto index 051b93b59..30ffbd951 100644 --- a/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto +++ b/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/feature_selector.proto b/google/cloud/aiplatform/v1beta1/feature_selector.proto index 74d9aa693..907f14e23 100644 --- a/google/cloud/aiplatform/v1beta1/feature_selector.proto +++ b/google/cloud/aiplatform/v1beta1/feature_selector.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/featurestore.proto b/google/cloud/aiplatform/v1beta1/featurestore.proto index b48c5d80e..f5ece8f20 100644 --- a/google/cloud/aiplatform/v1beta1/featurestore.proto +++ b/google/cloud/aiplatform/v1beta1/featurestore.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -42,30 +41,51 @@ message Featurestore { // OnlineServingConfig specifies the details for provisioning online serving // resources. message OnlineServingConfig { - // The number of nodes for each cluster. The number of nodes will not - // scale automatically but can be scaled manually by providing different - // values when updating. + // Online serving scaling configuration. If min_node_count and + // max_node_count are set to the same value, the cluster will be configured + // with the fixed number of node (no auto-scaling). + message Scaling { + // Required. The minimum number of nodes to scale down to. Must be greater than or + // equal to 1. + int32 min_node_count = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of nodes to scale up to. Must be greater than + // min_node_count, and less than or equal to 10 times of 'min_node_count'. + int32 max_node_count = 2; + } + + // The number of nodes for the online store. The number of nodes doesn't + // scale automatically, but you can manually update the number of + // nodes. If set to 0, the featurestore will not have an + // online store and cannot be used for online serving. int32 fixed_node_count = 2; + + // Online serving scaling configuration. + // Only one of `fixed_node_count` and `scaling` can be set. Setting one will + // reset the other. + Scaling scaling = 4; } - // Possible states a Featurestore can have. + // Possible states a featurestore can have. enum State { // Default value. This value is unused. STATE_UNSPECIFIED = 0; - // State when the Featurestore configuration is not being updated and the - // fields reflect the current configuration of the Featurestore. The - // Featurestore is usable in this state. + // State when the featurestore configuration is not being updated and the + // fields reflect the current configuration of the featurestore. The + // featurestore is usable in this state. STABLE = 1; - // State when the Featurestore configuration is being updated and the fields - // reflect the updated configuration of the Featurestore, not the current - // one. For example, `online_serving_config.fixed_node_count` can take - // minutes to update. While the update is in progress, the Featurestore - // will be in the UPDATING state and the value of `fixed_node_count` will be - // the updated value. Until the update completes, the actual number of nodes - // can still be the original value of `fixed_node_count`. The Featurestore - // is still usable in this state. + // The state of the featurestore configuration when it is being updated. + // During an update, the fields reflect either the original configuration + // or the updated configuration of the featurestore. For example, + // `online_serving_config.fixed_node_count` can take minutes to update. + // While the update is in progress, the featurestore is in the UPDATING + // state, and the value of `fixed_node_count` can be the original value or + // the updated value, depending on the progress of the operation. Until the + // update completes, the actual number of nodes can still be the original + // value of `fixed_node_count`. The featurestore is still usable in this + // state. UPDATING = 2; } @@ -96,8 +116,9 @@ message Featurestore { // and are immutable. map labels = 6 [(google.api.field_behavior) = OPTIONAL]; - // Required. Config for online serving resources. - OnlineServingConfig online_serving_config = 7 [(google.api.field_behavior) = REQUIRED]; + // Optional. Config for online storage resources. If unset, the featurestore will + // not have an online store and cannot be used for online serving. + OnlineServingConfig online_serving_config = 7 [(google.api.field_behavior) = OPTIONAL]; // Output only. State of the featurestore. State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto b/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto index ca1d29c94..fefe9e772 100644 --- a/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto +++ b/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -60,8 +59,97 @@ message FeaturestoreMonitoringConfig { // [FeaturestoreMonitoringConfig.SnapshotAnalysis.monitoring_interval_days][google.cloud.aiplatform.v1beta1.FeaturestoreMonitoringConfig.SnapshotAnalysis.monitoring_interval_days] // will be used. int32 monitoring_interval_days = 3; + + // Customized export features time window for snapshot analysis. Unit is one + // day. Default value is 3 weeks. Minimum value is 1 day. Maximum value is + // 4000 days. + int32 staleness_days = 4; + } + + // Configuration of the Featurestore's ImportFeature Analysis Based + // Monitoring. This type of analysis generates statistics for values of each + // Feature imported by every [ImportFeatureValues][] operation. + message ImportFeaturesAnalysis { + // The state defines whether to enable ImportFeature analysis. + enum State { + // Should not be used. + STATE_UNSPECIFIED = 0; + + // The default behavior of whether to enable the monitoring. + // EntityType-level config: disabled. + // Feature-level config: inherited from the configuration of EntityType + // this Feature belongs to. + DEFAULT = 1; + + // Explicitly enables import features analysis. + // EntityType-level config: by default enables import features analysis + // for all Features under it. Feature-level config: enables import + // features analysis regardless of the EntityType-level config. + ENABLED = 2; + + // Explicitly disables import features analysis. + // EntityType-level config: by default disables import features analysis + // for all Features under it. Feature-level config: disables import + // features analysis regardless of the EntityType-level config. + DISABLED = 3; + } + + // Defines the baseline to do anomaly detection for feature values imported + // by each [ImportFeatureValues][] operation. + enum Baseline { + // Should not be used. + BASELINE_UNSPECIFIED = 0; + + // Choose the later one statistics generated by either most recent + // snapshot analysis or previous import features analysis. If non of them + // exists, skip anomaly detection and only generate a statistics. + LATEST_STATS = 1; + + // Use the statistics generated by the most recent snapshot analysis if + // exists. + MOST_RECENT_SNAPSHOT_STATS = 2; + + // Use the statistics generated by the previous import features analysis + // if exists. + PREVIOUS_IMPORT_FEATURES_STATS = 3; + } + + // Whether to enable / disable / inherite default hebavior for import + // features analysis. + State state = 1; + + // The baseline used to do anomaly detection for the statistics generated by + // import features analysis. + Baseline anomaly_detection_baseline = 2; + } + + // The config for Featurestore Monitoring threshold. + message ThresholdConfig { + oneof threshold { + // Specify a threshold value that can trigger the alert. + // 1. For categorical feature, the distribution distance is calculated by + // L-inifinity norm. + // 2. For numerical feature, the distribution distance is calculated by + // Jensen–Shannon divergence. Each feature must have a non-zero threshold + // if they need to be monitored. Otherwise no alert will be triggered for + // that feature. + double value = 1; + } } // The config for Snapshot Analysis Based Feature Monitoring. SnapshotAnalysis snapshot_analysis = 1; + + // The config for ImportFeatures Analysis Based Feature Monitoring. + ImportFeaturesAnalysis import_features_analysis = 2; + + // Threshold for numerical features of anomaly detection. + // This is shared by all objectives of Featurestore Monitoring for numerical + // features (i.e. Features with type ([Feature.ValueType][google.cloud.aiplatform.v1beta1.Feature.ValueType]) DOUBLE or INT64). + ThresholdConfig numerical_threshold_config = 3; + + // Threshold for categorical features of anomaly detection. + // This is shared by all types of Featurestore Monitoring for categorical + // features (i.e. Features with type ([Feature.ValueType][google.cloud.aiplatform.v1beta1.Feature.ValueType]) BOOL or STRING). + ThresholdConfig categorical_threshold_config = 4; } diff --git a/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto b/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto index 69722343d..5f7cbd144 100644 --- a/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto +++ b/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -58,6 +58,55 @@ service FeaturestoreOnlineServingService { }; option (google.api.method_signature) = "entity_type"; } + + // Writes Feature values of one or more entities of an EntityType. + // + // The Feature values are merged into existing entities if any. The Feature + // values to be written must have timestamp within the online storage + // retention. + rpc WriteFeatureValues(WriteFeatureValuesRequest) returns (WriteFeatureValuesResponse) { + option (google.api.http) = { + post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:writeFeatureValues" + body: "*" + }; + option (google.api.method_signature) = "entity_type,payloads"; + } +} + +// Request message for [FeaturestoreOnlineServingService.WriteFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.WriteFeatureValues]. +message WriteFeatureValuesRequest { + // Required. The resource name of the EntityType for the entities being written. + // Value format: `projects/{project}/locations/{location}/featurestores/ + // {featurestore}/entityTypes/{entityType}`. For example, + // for a machine learning model predicting user clicks on a website, an + // EntityType ID could be `user`. + string entity_type = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/EntityType" + } + ]; + + // Required. The entities to be written. Up to 100,000 feature values can be written + // across all `payloads`. + repeated WriteFeatureValuesPayload payloads = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Contains Feature values to be written for a specific entity. +message WriteFeatureValuesPayload { + // Required. The ID of the entity. + string entity_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Feature values to be written, mapping from Feature ID to value. Up to + // 100,000 `feature_values` entries may be written across all payloads. The + // feature generation time, aligned by days, must be no older than five + // years (1825 days) and no later than one year (366 days) in the future. + map feature_values = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [FeaturestoreOnlineServingService.WriteFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.WriteFeatureValues]. +message WriteFeatureValuesResponse { + } // Request message for [FeaturestoreOnlineServingService.ReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues]. @@ -171,7 +220,6 @@ message StreamingReadFeatureValuesRequest { } // Value for a feature. -// NEXT ID: 15 message FeatureValue { // Metadata of feature value. message Metadata { diff --git a/google/cloud/aiplatform/v1beta1/featurestore_service.proto b/google/cloud/aiplatform/v1beta1/featurestore_service.proto index f4c4bcdec..56df4670f 100644 --- a/google/cloud/aiplatform/v1beta1/featurestore_service.proto +++ b/google/cloud/aiplatform/v1beta1/featurestore_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/entity_type.proto"; import "google/cloud/aiplatform/v1beta1/feature.proto"; -import "google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto"; import "google/cloud/aiplatform/v1beta1/feature_selector.proto"; import "google/cloud/aiplatform/v1beta1/featurestore.proto"; import "google/cloud/aiplatform/v1beta1/io.proto"; @@ -30,6 +29,7 @@ import "google/cloud/aiplatform/v1beta1/operation.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +import "google/type/interval.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -281,6 +281,28 @@ service FeaturestoreService { }; } + // Delete Feature values from Featurestore. + // + // The progress of the deletion is tracked by the returned operation. The + // deleted feature values are guaranteed to be invisible to subsequent read + // operations after the operation is marked as successfully done. + // + // If a delete feature values operation fails, the feature values + // returned from reads and exports may be inconsistent. If consistency is + // required, the caller must retry the same delete request again and wait till + // the new operation returned is marked as successfully done. + rpc DeleteFeatureValues(DeleteFeatureValuesRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:deleteFeatureValues" + body: "*" + }; + option (google.api.method_signature) = "entity_type"; + option (google.longrunning.operation_info) = { + response_type: "DeleteFeatureValuesResponse" + metadata_type: "DeleteFeatureValuesOperationMetadata" + }; + } + // Searches Features matching a query in a given project. rpc SearchFeatures(SearchFeaturesRequest) returns (SearchFeaturesResponse) { option (google.api.http) = { @@ -419,6 +441,7 @@ message UpdateFeaturestoreRequest { // // * `labels` // * `online_serving_config.fixed_node_count` + // * `online_serving_config.scaling` google.protobuf.FieldMask update_mask = 2; } @@ -506,6 +529,9 @@ message ImportFeatureValuesRequest { // If not set, defaults to using 1 worker. The low count ensures minimal // impact on online serving performance. int32 worker_count = 11; + + // If true, API doesn't start ingestion analysis pipeline. + bool disable_ingestion_analysis = 12; } // Response message for [FeaturestoreService.ImportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues]. @@ -522,6 +548,10 @@ message ImportFeatureValuesResponse { // * Having a null timestamp. // * Not being parsable (applicable for CSV sources). int64 invalid_row_count = 6; + + // The number rows that weren't ingested due to having feature timestamps + // outside the retention boundary. + int64 timestamp_outside_retention_rows_count = 4; } // Request message for [FeaturestoreService.BatchReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues]. @@ -847,7 +877,12 @@ message UpdateEntityTypeRequest { // * `description` // * `labels` // * `monitoring_config.snapshot_analysis.disabled` - // * `monitoring_config.snapshot_analysis.monitoring_interval` + // * `monitoring_config.snapshot_analysis.monitoring_interval_days` + // * `monitoring_config.snapshot_analysis.staleness_days` + // * `monitoring_config.import_features_analysis.state` + // * `monitoring_config.import_features_analysis.anomaly_detection_baseline` + // * `monitoring_config.numerical_threshold_config.value` + // * `monitoring_config.categorical_threshold_config.value` google.protobuf.FieldMask update_mask = 2; } @@ -1139,8 +1174,7 @@ message UpdateFeatureRequest { // // * `description` // * `labels` - // * `monitoring_config.snapshot_analysis.disabled` - // * `monitoring_config.snapshot_analysis.monitoring_interval` + // * `disable_monitoring` google.protobuf.FieldMask update_mask = 2; } @@ -1186,6 +1220,10 @@ message ImportFeatureValuesOperationMetadata { // * Having a null timestamp. // * Not being parsable (applicable for CSV sources). int64 invalid_row_count = 6; + + // The number rows that weren't ingested due to having timestamps outside the + // retention boundary. + int64 timestamp_outside_retention_rows_count = 7; } // Details of operations that exports Features values. @@ -1200,6 +1238,12 @@ message BatchReadFeatureValuesOperationMetadata { GenericOperationMetadata generic_metadata = 1; } +// Details of operations that delete Feature values. +message DeleteFeatureValuesOperationMetadata { + // Operation metadata for Featurestore delete Features values. + GenericOperationMetadata generic_metadata = 1; +} + // Details of operations that perform create EntityType. message CreateEntityTypeOperationMetadata { // Operation metadata for EntityType. @@ -1217,3 +1261,72 @@ message BatchCreateFeaturesOperationMetadata { // Operation metadata for Feature. GenericOperationMetadata generic_metadata = 1; } + +// Request message for [FeaturestoreService.DeleteFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues]. +message DeleteFeatureValuesRequest { + // Message to select entity. + // If an entity id is selected, all the feature values corresponding to the + // entity id will be deleted, including the entityId. + message SelectEntity { + // Required. Selectors choosing feature values of which entity id to be deleted from + // the EntityType. + EntityIdSelector entity_id_selector = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Message to select time range and feature. + // Values of the selected feature generated within an inclusive time range + // will be deleted. + message SelectTimeRangeAndFeature { + // Required. Select feature generated within a half-inclusive time range. + // The time range is lower inclusive and upper exclusive. + google.type.Interval time_range = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Selectors choosing which feature values to be deleted from the + // EntityType. + FeatureSelector feature_selector = 2 [(google.api.field_behavior) = REQUIRED]; + + // If set, data will not be deleted from online storage. + // When time range is older than the data in online storage, setting this to + // be true will make the deletion have no impact on online serving. + bool skip_online_storage_delete = 3; + } + + // Defines options to select feature values to be deleted. + oneof DeleteOption { + // Select feature values to be deleted by specifying entities. + SelectEntity select_entity = 2; + + // Select feature values to be deleted by specifying time range and + // features. + SelectTimeRangeAndFeature select_time_range_and_feature = 3; + } + + // Required. The resource name of the EntityType grouping the Features for which values + // are being deleted from. Format: + // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}` + string entity_type = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/EntityType" + } + ]; +} + +// Response message for [FeaturestoreService.DeleteFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues]. +message DeleteFeatureValuesResponse { + +} + +// Selector for entityId. Getting ids from the given source. +message EntityIdSelector { + // Details about the source data, including the location of the storage and + // the format. + oneof EntityIdsSource { + // Source of Csv + CsvSource csv_source = 3; + } + + // Source column that holds entity IDs. If not provided, entity IDs are + // extracted from the column named `entity_id`. + string entity_id_field = 5; +} diff --git a/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto b/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto index aa4a633d0..4e994e1e7 100644 --- a/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto +++ b/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -24,7 +24,6 @@ import "google/cloud/aiplatform/v1beta1/job_state.proto"; import "google/cloud/aiplatform/v1beta1/study.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/index.proto b/google/cloud/aiplatform/v1beta1/index.proto index 53996f29c..f0e3c67a0 100644 --- a/google/cloud/aiplatform/v1beta1/index.proto +++ b/google/cloud/aiplatform/v1beta1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,10 +19,8 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/deployed_index_ref.proto"; - import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -40,6 +38,21 @@ message Index { pattern: "projects/{project}/locations/{location}/indexes/{index}" }; + // The update method of an Index. + enum IndexUpdateMethod { + // Should not be used. + INDEX_UPDATE_METHOD_UNSPECIFIED = 0; + + // BatchUpdate: user can call UpdateIndex with files on Cloud Storage of + // datapoints to update. + BATCH_UPDATE = 1; + + // StreamUpdate: user can call UpsertDatapoints/DeleteDatapoints to update + // the Index and the updates will be applied in corresponding + // DeployedIndexes in nearly real-time. + STREAM_UPDATE = 2; + } + // Output only. The resource name of the Index. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -95,4 +108,65 @@ message Index { // in the Index. Result of any successfully completed Operation on the Index // is reflected in it. google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Stats of the index resource. + IndexStats index_stats = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The update method to use with this Index. If not set, BATCH_UPDATE will be + // used by default. + IndexUpdateMethod index_update_method = 16 [(google.api.field_behavior) = IMMUTABLE]; +} + +// A datapoint of Index. +message IndexDatapoint { + // Restriction of a datapoint which describe its attributes(tokens) from each + // of several attribute categories(namespaces). + message Restriction { + // The namespace of this restriction. eg: color. + string namespace = 1; + + // The attributes to allow in this namespace. eg: 'red' + repeated string allow_list = 2; + + // The attributes to deny in this namespace. eg: 'blue' + repeated string deny_list = 3; + } + + // Crowding tag 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. + message CrowdingTag { + // The attribute value used for crowding. The maximum number of neighbors + // to return per crowding attribute value + // (per_crowding_attribute_num_neighbors) is configured per-query. This + // field is ignored if per_crowding_attribute_num_neighbors is larger than + // the total number of neighbors to return for a given query. + string crowding_attribute = 1; + } + + // 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]. + repeated float feature_vector = 2 [(google.api.field_behavior) = REQUIRED]; + + // 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. + // See: https://cloud.google.com/vertex-ai/docs/matching-engine/filtering + repeated Restriction restricts = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. CrowdingTag of the datapoint, the number of neighbors to return in each + // crowding can be configured during query. + CrowdingTag crowding_tag = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Stats of the Index. +message IndexStats { + // Output only. The number of vectors in the Index. + int64 vectors_count = 1 [(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/google/cloud/aiplatform/v1beta1/index_endpoint.proto b/google/cloud/aiplatform/v1beta1/index_endpoint.proto index c33f01a2b..3f8fa62b2 100644 --- a/google/cloud/aiplatform/v1beta1/index_endpoint.proto +++ b/google/cloud/aiplatform/v1beta1/index_endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,12 +16,10 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; -import "google/cloud/aiplatform/v1beta1/index.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -82,9 +80,9 @@ message IndexEndpoint { // Private services access must already be configured for the network. If left // unspecified, the Endpoint is not peered with any network. // - // Only one of the fields, [network][google.cloud.aiplatform.v1beta1.IndexEndpoint.network] or - // [enable_private_service_connect][google.cloud.aiplatform.v1beta1.IndexEndpoint.enable_private_service_connect], - // can be set. + // [network][google.cloud.aiplatform.v1beta1.IndexEndpoint.network] and + // [private_service_connect_config][google.cloud.aiplatform.v1beta1.IndexEndpoint.private_service_connect_config] + // are mutually exclusive. // // [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): // projects/{project}/global/networks/{network}. @@ -92,12 +90,15 @@ message IndexEndpoint { // network name. string network = 9 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If true, expose the IndexEndpoint via private service connect. + // Optional. Deprecated: If true, expose the IndexEndpoint via private service connect. // // Only one of the fields, [network][google.cloud.aiplatform.v1beta1.IndexEndpoint.network] or // [enable_private_service_connect][google.cloud.aiplatform.v1beta1.IndexEndpoint.enable_private_service_connect], // can be set. - bool enable_private_service_connect = 10 [(google.api.field_behavior) = OPTIONAL]; + bool enable_private_service_connect = 10 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL + ]; } // A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes. @@ -154,6 +155,18 @@ message DeployedIndex { // 1000. AutomaticResources automatic_resources = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. A description of resources that are dedicated to the DeployedIndex, and + // that need a higher degree of manual configuration. + // If min_replica_count is not set, the default value is 2 (we don't provide + // SLA when min_replica_count=1). If max_replica_count is not set, the + // default value is min_replica_count. The max allowed replica count is + // 1000. + // + // Available machine types: + // n1-standard-16 + // n1-standard-32 + DedicatedResources dedicated_resources = 16 [(google.api.field_behavior) = OPTIONAL]; + // Optional. If true, private endpoint's access logs are sent to StackDriver Logging. // // These logs are like standard server access logs, containing diff --git a/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto b/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto index 3d106135d..c688741fa 100644 --- a/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto +++ b/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/aiplatform/v1beta1/index_service.proto b/google/cloud/aiplatform/v1beta1/index_service.proto index 6af0465cf..813f648c9 100644 --- a/google/cloud/aiplatform/v1beta1/index_service.proto +++ b/google/cloud/aiplatform/v1beta1/index_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -93,6 +93,22 @@ service IndexService { metadata_type: "DeleteOperationMetadata" }; } + + // Add/update Datapoints into an Index. + rpc UpsertDatapoints(UpsertDatapointsRequest) returns (UpsertDatapointsResponse) { + option (google.api.http) = { + post: "/v1beta1/{index=projects/*/locations/*/indexes/*}:upsertDatapoints" + body: "*" + }; + } + + // Remove Datapoints from an Index. + rpc RemoveDatapoints(RemoveDatapointsRequest) returns (RemoveDatapointsResponse) { + option (google.api.http) = { + post: "/v1beta1/{index=projects/*/locations/*/indexes/*}:removeDatapoints" + body: "*" + }; + } } // Request message for [IndexService.CreateIndex][google.cloud.aiplatform.v1beta1.IndexService.CreateIndex]. @@ -201,6 +217,48 @@ message DeleteIndexRequest { ]; } +// Request message for [IndexService.UpsertDatapoints][google.cloud.aiplatform.v1beta1.IndexService.UpsertDatapoints] +message UpsertDatapointsRequest { + // Required. The name of the Index resource to be updated. + // Format: + // `projects/{project}/locations/{location}/indexes/{index}` + string index = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Index" + } + ]; + + // A list of datapoints to be created/updated. + repeated IndexDatapoint datapoints = 2; +} + +// Response message for [IndexService.UpsertDatapoints][google.cloud.aiplatform.v1beta1.IndexService.UpsertDatapoints] +message UpsertDatapointsResponse { + +} + +// Request message for [IndexService.RemoveDatapoints][google.cloud.aiplatform.v1beta1.IndexService.RemoveDatapoints] +message RemoveDatapointsRequest { + // Required. The name of the Index resource to be updated. + // Format: + // `projects/{project}/locations/{location}/indexes/{index}` + string index = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Index" + } + ]; + + // A list of datapoint ids to be deleted. + repeated string datapoint_ids = 2; +} + +// Response message for [IndexService.RemoveDatapoints][google.cloud.aiplatform.v1beta1.IndexService.RemoveDatapoints] +message RemoveDatapointsResponse { + +} + // Runtime operation metadata with regard to Matching Engine Index. message NearestNeighborSearchOperationMetadata { message RecordError { diff --git a/google/cloud/aiplatform/v1beta1/io.proto b/google/cloud/aiplatform/v1beta1/io.proto index 8027a8e05..f571bb62f 100644 --- a/google/cloud/aiplatform/v1beta1/io.proto +++ b/google/cloud/aiplatform/v1beta1/io.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/job_service.proto b/google/cloud/aiplatform/v1beta1/job_service.proto index 06d2daf5c..68492a64c 100644 --- a/google/cloud/aiplatform/v1beta1/job_service.proto +++ b/google/cloud/aiplatform/v1beta1/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -384,19 +384,22 @@ message ListCustomJobsRequest { // // Supported fields: // - // * `display_name` supports = and !=. - // - // * `state` supports = and !=. + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` - // - // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` - // - // * `NOT display_name="my_job"` - // - // * `state="JOB_STATE_FAILED"` + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. @@ -491,19 +494,22 @@ message ListDataLabelingJobsRequest { // // Supported fields: // - // * `display_name` supports = and !=. - // - // * `state` supports = and !=. + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` - // - // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` - // - // * `NOT display_name="my_job"` - // - // * `state="JOB_STATE_FAILED"` + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. @@ -603,19 +609,22 @@ message ListHyperparameterTuningJobsRequest { // // Supported fields: // - // * `display_name` supports = and !=. - // - // * `state` supports = and !=. + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` - // - // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` - // - // * `NOT display_name="my_job"` - // - // * `state="JOB_STATE_FAILED"` + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. @@ -712,21 +721,23 @@ message ListBatchPredictionJobsRequest { // // Supported fields: // - // * `display_name` supports = and !=. - // - // * `state` supports = and !=. - // - // * `model_display_name` supports = and != + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `model_display_name` supports `=`, `!=` comparisons. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` - // - // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` - // - // * `NOT display_name="my_job"` - // - // * `state="JOB_STATE_FAILED"` + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. @@ -813,7 +824,7 @@ message SearchModelDeploymentMonitoringStatsAnomaliesRequest { // Required. ModelDeploymentMonitoring Job resource name. // Format: - // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job} + // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` string model_deployment_monitoring_job = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -893,6 +904,25 @@ message ListModelDeploymentMonitoringJobsRequest { ]; // The standard list filter. + // + // Supported fields: + // + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence + // + // Some examples of using the filter are: + // + // * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` + // * `state!="JOB_STATE_FAILED" OR display_name="my_job"` + // * `NOT display_name="my_job"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `labels.keyA=valueA` + // * `labels.keyB:*` string filter = 2; // The standard list page size. diff --git a/google/cloud/aiplatform/v1beta1/job_state.proto b/google/cloud/aiplatform/v1beta1/job_state.proto index 9efe88bf8..14458e2ee 100644 --- a/google/cloud/aiplatform/v1beta1/job_state.proto +++ b/google/cloud/aiplatform/v1beta1/job_state.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option java_multiple_files = true; @@ -58,4 +56,11 @@ enum JobState { // The job has expired. JOB_STATE_EXPIRED = 9; + + // The job is being updated. The job is only able to be updated at RUNNING + // state; if the update operation succeeds, job goes back to RUNNING state; if + // the update operation fails, the job goes back to RUNNING state with error + // messages written to [ModelDeploymentMonitoringJob.partial_errors][] field + // if it is a ModelDeploymentMonitoringJob. + JOB_STATE_UPDATING = 10; } diff --git a/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto b/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto index 24d818918..ce2797179 100644 --- a/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto +++ b/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/cloud/aiplatform/v1beta1/artifact.proto"; import "google/cloud/aiplatform/v1beta1/event.proto"; import "google/cloud/aiplatform/v1beta1/execution.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/machine_resources.proto b/google/cloud/aiplatform/v1beta1/machine_resources.proto index 1a7ef3f23..fa1d1faaf 100644 --- a/google/cloud/aiplatform/v1beta1/machine_resources.proto +++ b/google/cloud/aiplatform/v1beta1/machine_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1beta1/accelerator_type.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -79,6 +78,11 @@ message DedicatedResources { // replicas at maximum may handle, a portion of the traffic will be dropped. // If this value is not provided, will use [min_replica_count][google.cloud.aiplatform.v1beta1.DedicatedResources.min_replica_count] as the // default value. + // + // The value of this field impacts the charge against Vertex CPU and GPU + // quotas. Specifically, you will be charged for (max_replica_count * + // number of cores in the selected machine type) and (max_replica_count * + // number of GPUs per replica in the selected machine type). int32 max_replica_count = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The metric specifications that overrides a resource @@ -165,6 +169,21 @@ message DiskSpec { int32 boot_disk_size_gb = 2; } +// Represents a mount configuration for Network File System (NFS) to mount. +message NfsMount { + // Required. IP address of the NFS server. + string server = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Source path exported from NFS server. + // Has to start with '/', and combined with the ip address, it indicates + // the source mount path in the form of `server:path` + string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Destination mount path. The NFS will be mounted for the user under + // /mnt/nfs/ + string mount_point = 3 [(google.api.field_behavior) = REQUIRED]; +} + // The metric specification that defines the target resource utilization // (CPU utilization, accelerator's duty cycle, and so on) for calculating the // desired replica count. diff --git a/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto b/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto index 4c7594ce4..5498d89d4 100644 --- a/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto +++ b/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -35,6 +34,6 @@ message ManualBatchTuningParameters { // speeds up the batch operation's execution, but too high value will result // in a whole batch not fitting in a machine's memory, and the whole // operation will fail. - // The default value is 4. + // The default value is 64. int32 batch_size = 1 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/google/cloud/aiplatform/v1beta1/metadata_schema.proto b/google/cloud/aiplatform/v1beta1/metadata_schema.proto index e36d1bfc6..0623a3ee9 100644 --- a/google/cloud/aiplatform/v1beta1/metadata_schema.proto +++ b/google/cloud/aiplatform/v1beta1/metadata_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/metadata_service.proto b/google/cloud/aiplatform/v1beta1/metadata_service.proto index ba425ceb1..abdcb600c 100644 --- a/google/cloud/aiplatform/v1beta1/metadata_service.proto +++ b/google/cloud/aiplatform/v1beta1/metadata_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -228,6 +228,17 @@ service MetadataService { option (google.api.method_signature) = "context,child_contexts"; } + // Remove a set of children contexts from a parent Context. If any of the + // child Contexts were NOT added to the parent Context, they are + // simply skipped. + rpc RemoveContextChildren(RemoveContextChildrenRequest) returns (RemoveContextChildrenResponse) { + option (google.api.http) = { + post: "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:removeContextChildren" + body: "*" + }; + option (google.api.method_signature) = "context,child_contexts"; + } + // Retrieves Artifacts and Executions within the specified Context, connected // by Event edges and returned as a LineageSubgraph. rpc QueryContextLineageSubgraph(QueryContextLineageSubgraphRequest) returns (LineageSubgraph) { @@ -549,6 +560,14 @@ message ListArtifactsRequest { // // For example: `display_name = "test" AND metadata.field1.bool_value = true`. string filter = 4; + + // How the list of messages is ordered. Specify the values to order by and an + // ordering operation. The default sorting order is ascending. To specify + // descending order for a field, users append a " desc" suffix; for example: + // "foo desc, bar". + // Subfields are specified with a `.` character, such as foo.bar. + // see https://google.aip.dev/132#ordering for more details. + string order_by = 5; } // Response message for [MetadataService.ListArtifacts][google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts]. @@ -571,9 +590,9 @@ message UpdateArtifactRequest { // `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` Artifact artifact = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. A FieldMask indicating which fields should be updated. + // Optional. A FieldMask indicating which fields should be updated. // Functionality of this field is not yet supported. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; // If set to true, and the [Artifact][google.cloud.aiplatform.v1beta1.Artifact] is not found, a new [Artifact][google.cloud.aiplatform.v1beta1.Artifact] is // created. @@ -735,6 +754,14 @@ message ListContextsRequest { // // For example: `display_name = "test" AND metadata.field1.bool_value = true`. string filter = 4; + + // How the list of messages is ordered. Specify the values to order by and an + // ordering operation. The default sorting order is ascending. To specify + // descending order for a field, users append a " desc" suffix; for example: + // "foo desc, bar". + // Subfields are specified with a `.` character, such as foo.bar. + // see https://google.aip.dev/132#ordering for more details. + string order_by = 5; } // Response message for [MetadataService.ListContexts][google.cloud.aiplatform.v1beta1.MetadataService.ListContexts]. @@ -757,9 +784,9 @@ message UpdateContextRequest { // `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` Context context = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. A FieldMask indicating which fields should be updated. + // Optional. A FieldMask indicating which fields should be updated. // Functionality of this field is not yet supported. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; // If set to true, and the [Context][google.cloud.aiplatform.v1beta1.Context] is not found, a new [Context][google.cloud.aiplatform.v1beta1.Context] is // created. @@ -890,6 +917,31 @@ message AddContextChildrenResponse { } +// Request message for +// [MetadataService.DeleteContextChildrenRequest][]. +message RemoveContextChildrenRequest { + // Required. The resource name of the parent Context. + // + // Format: + // `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` + string context = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Context" + } + ]; + + // The resource names of the child Contexts. + repeated string child_contexts = 2 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Context" + }]; +} + +// Response message for [MetadataService.RemoveContextChildren][google.cloud.aiplatform.v1beta1.MetadataService.RemoveContextChildren]. +message RemoveContextChildrenResponse { + +} + // Request message for [MetadataService.QueryContextLineageSubgraph][google.cloud.aiplatform.v1beta1.MetadataService.QueryContextLineageSubgraph]. message QueryContextLineageSubgraphRequest { // Required. The resource name of the Context whose Artifacts and Executions @@ -999,6 +1051,14 @@ message ListExecutionsRequest { // logical operators (`AND` & `OR`). // For example: `display_name = "test" AND metadata.field1.bool_value = true`. string filter = 4; + + // How the list of messages is ordered. Specify the values to order by and an + // ordering operation. The default sorting order is ascending. To specify + // descending order for a field, users append a " desc" suffix; for example: + // "foo desc, bar". + // Subfields are specified with a `.` character, such as foo.bar. + // see https://google.aip.dev/132#ordering for more details. + string order_by = 5; } // Response message for [MetadataService.ListExecutions][google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions]. @@ -1021,9 +1081,9 @@ message UpdateExecutionRequest { // `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` Execution execution = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. A FieldMask indicating which fields should be updated. + // Optional. A FieldMask indicating which fields should be updated. // Functionality of this field is not yet supported. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; // If set to true, and the [Execution][google.cloud.aiplatform.v1beta1.Execution] is not found, a new [Execution][google.cloud.aiplatform.v1beta1.Execution] // is created. diff --git a/google/cloud/aiplatform/v1beta1/metadata_store.proto b/google/cloud/aiplatform/v1beta1/metadata_store.proto index a7fc66709..2d8a19d3a 100644 --- a/google/cloud/aiplatform/v1beta1/metadata_store.proto +++ b/google/cloud/aiplatform/v1beta1/metadata_store.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/migratable_resource.proto b/google/cloud/aiplatform/v1beta1/migratable_resource.proto index 5e6f5f697..bd8aa7301 100644 --- a/google/cloud/aiplatform/v1beta1/migratable_resource.proto +++ b/google/cloud/aiplatform/v1beta1/migratable_resource.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/migration_service.proto b/google/cloud/aiplatform/v1beta1/migration_service.proto index 4b843523e..f08ad889c 100644 --- a/google/cloud/aiplatform/v1beta1/migration_service.proto +++ b/google/cloud/aiplatform/v1beta1/migration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; -import "google/cloud/aiplatform/v1beta1/dataset.proto"; -import "google/cloud/aiplatform/v1beta1/model.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; diff --git a/google/cloud/aiplatform/v1beta1/model.proto b/google/cloud/aiplatform/v1beta1/model.proto index aec1b35c9..9e408aebd 100644 --- a/google/cloud/aiplatform/v1beta1/model.proto +++ b/google/cloud/aiplatform/v1beta1/model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,15 +18,12 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/dataset.proto"; import "google/cloud/aiplatform/v1beta1/deployed_model_ref.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/env_var.proto"; import "google/cloud/aiplatform/v1beta1/explanation.proto"; - import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -101,11 +98,41 @@ message Model { // Resources that to large degree are decided by Vertex AI, and require // only a modest additional configuration. AUTOMATIC_RESOURCES = 2; + + // Resources that can be shared by multiple [DeployedModels][google.cloud.aiplatform.v1beta1.DeployedModel]. + // A pre-configured [DeploymentResourcePool][google.cloud.aiplatform.v1beta1.DeploymentResourcePool] is required. + SHARED_RESOURCES = 3; } // The resource name of the Model. string name = 1; + // Output only. Immutable. The version ID of the model. + // A new version is committed when a new model version is uploaded or + // trained under an existing model id. It is an auto-incrementing decimal + // number in string representation. + string version_id = 28 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // User provided version aliases so that a model version can be referenced via + // alias (i.e. + // projects/{project}/locations/{location}/models/{model_id}@{version_alias} + // instead of auto-generated version id (i.e. + // projects/{project}/locations/{location}/models/{model_id}@{version_id}). + // The format is [a-z][a-zA-Z0-9-]{0,126}[a-z0-9] to distinguish from + // version_id. A default version alias will be created for the first version + // of the model, and there must be exactly one default version alias for a + // model. + repeated string version_aliases = 29; + + // Output only. Timestamp when this version was created. + google.protobuf.Timestamp version_create_time = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this version was most recently updated. + google.protobuf.Timestamp version_update_time = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Required. The display name of the Model. // The name can be up to 128 characters long and can be consist of any UTF-8 // characters. @@ -114,6 +141,9 @@ message Model { // The description of the Model. string description = 3; + // The description of this version. + string version_description = 30; + // The schemata that describe formats of the Model's predictions and // explanations as given and returned via // [PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict] and [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain]. @@ -298,6 +328,10 @@ message Model { // Customer-managed encryption key spec for a Model. If set, this // Model and all sub-resources of this Model will be secured by this key. EncryptionSpec encryption_spec = 24; + + // Output only. Source of a model. It can either be automl training pipeline, custom + // training pipeline, BigQuery ML, or existing Vertex AI Model. + ModelSourceInfo model_source_info = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains the schemata used in Model's predictions and explanations via @@ -344,7 +378,7 @@ message PredictSchemata { // Specification of a container for serving predictions. Some fields in this // message correspond to fields in the [Kubernetes Container v1 core -// specification](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). +// specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). message ModelContainerSpec { // Required. Immutable. URI of the Docker image to be used as the custom container for serving // predictions. This URI must identify an image in Artifact Registry or @@ -402,7 +436,7 @@ message ModelContainerSpec { // $$(VARIABLE_NAME) // This field corresponds to the `command` field of the Kubernetes Containers // [v1 core - // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). repeated string command = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Specifies arguments for the command that runs when the container starts. @@ -440,7 +474,7 @@ message ModelContainerSpec { // $$(VARIABLE_NAME) // This field corresponds to the `args` field of the Kubernetes Containers // [v1 core - // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). repeated string args = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. List of environment variables to set in the container. After the container @@ -470,7 +504,7 @@ message ModelContainerSpec { // // This field corresponds to the `env` field of the Kubernetes Containers // [v1 core - // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). repeated EnvVar env = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. List of ports to expose from the container. Vertex AI sends any @@ -493,7 +527,7 @@ message ModelContainerSpec { // Vertex AI does not use ports other than the first one listed. This field // corresponds to the `ports` field of the Kubernetes Containers // [v1 core - // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). repeated Port ports = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. HTTP path on the container to send prediction requests to. Vertex AI @@ -560,3 +594,24 @@ message Port { // Must be a valid port number, between 1 and 65535 inclusive. int32 container_port = 3; } + +// Detail description of the source information of the model. +message ModelSourceInfo { + // Source of the model. + enum ModelSourceType { + // Should not be used. + MODEL_SOURCE_TYPE_UNSPECIFIED = 0; + + // The Model is uploaded by automl training pipeline. + AUTOML = 1; + + // The Model is uploaded by user or custom training pipeline. + CUSTOM = 2; + + // The Model is registered and sync'ed from BigQuery ML. + BQML = 3; + } + + // Type of the model source. + ModelSourceType source_type = 1; +} diff --git a/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto b/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto index dd8554130..0446c1cc2 100644 --- a/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto +++ b/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -28,8 +28,6 @@ import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option java_multiple_files = true; @@ -69,6 +67,16 @@ message ModelDeploymentMonitoringJob { pattern: "projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}" }; + // All metadata of most recent monitoring pipelines. + message LatestMonitoringPipelineMetadata { + // The time that most recent monitoring pipelines that is related to this + // run. + google.protobuf.Timestamp run_time = 1; + + // The status of the most recent monitoring pipeline. + google.rpc.Status status = 2; + } + // The state to Specify the monitoring pipeline. enum MonitoringScheduleState { // Unspecified state. @@ -112,6 +120,9 @@ message ModelDeploymentMonitoringJob { // Output only. Schedule state when the monitoring job is in Running state. MonitoringScheduleState schedule_state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Latest triggered monitoring pipeline metadata. + LatestMonitoringPipelineMetadata latest_monitoring_pipeline_metadata = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Required. The config for monitoring objectives. This is a per DeployedModel config. // Each DeployedModel needs to be configured separately. repeated ModelDeploymentMonitoringObjectiveConfig model_deployment_monitoring_objective_configs = 6 [(google.api.field_behavior) = REQUIRED]; @@ -252,9 +263,19 @@ message ModelDeploymentMonitoringObjectiveConfig { // The config for scheduling monitoring job. message ModelDeploymentMonitoringScheduleConfig { - // Required. The model monitoring job running interval. It will be rounded up to next - // full hour. + // Required. The model monitoring job scheduling interval. It will be rounded up to next + // full hour. This defines how often the monitoring jobs are triggered. google.protobuf.Duration monitor_interval = 1 [(google.api.field_behavior) = REQUIRED]; + + // The time window of the prediction data being included in each prediction + // dataset. This window specifies how long the data should be collected from + // historical model results for each run. If not set, + // [ModelDeploymentMonitoringScheduleConfig.monitor_interval][google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringScheduleConfig.monitor_interval] will be used. + // e.g. If currently the cutoff time is 2022-01-08 14:30:00 and the + // monitor_window is set to be 3600, then data from 2022-01-08 13:30:00 + // to 2022-01-08 14:30:00 will be retrieved and aggregated to calculate the + // monitoring statistics. + google.protobuf.Duration monitor_window = 2; } // Statistics and anomalies generated by Model Monitoring. diff --git a/google/cloud/aiplatform/v1beta1/model_evaluation.proto b/google/cloud/aiplatform/v1beta1/model_evaluation.proto index 148458313..4e2c903e1 100644 --- a/google/cloud/aiplatform/v1beta1/model_evaluation.proto +++ b/google/cloud/aiplatform/v1beta1/model_evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/explanation.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -55,32 +54,41 @@ message ModelEvaluation { // Output only. The resource name of the ModelEvaluation. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Points to a YAML file stored on Google Cloud Storage describing the + // The display name of the ModelEvaluation. + string display_name = 10; + + // Points to a YAML file stored on Google Cloud Storage describing the // [metrics][google.cloud.aiplatform.v1beta1.ModelEvaluation.metrics] of this ModelEvaluation. The schema is // defined as an OpenAPI 3.0.2 [Schema // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). - string metrics_schema_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + string metrics_schema_uri = 2; - // Output only. Evaluation metrics of the Model. The schema of the metrics is stored in + // Evaluation metrics of the Model. The schema of the metrics is stored in // [metrics_schema_uri][google.cloud.aiplatform.v1beta1.ModelEvaluation.metrics_schema_uri] - google.protobuf.Value metrics = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Value metrics = 3; // Output only. Timestamp when this ModelEvaluation was created. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. All possible [dimensions][ModelEvaluationSlice.slice.dimension] of + // All possible [dimensions][ModelEvaluationSlice.slice.dimension] of // ModelEvaluationSlices. The dimensions can be used as the filter of the // [ModelService.ListModelEvaluationSlices][google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluationSlices] request, in the form of // `slice.dimension = `. - repeated string slice_dimensions = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated string slice_dimensions = 5; - // Output only. Aggregated explanation metrics for the Model's prediction output over the + // Aggregated explanation metrics for the Model's prediction output over the // data this ModelEvaluation uses. This field is populated only if the Model // is evaluated with explanations, and only for AutoML tabular Models. // - ModelExplanation model_explanation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + ModelExplanation model_explanation = 8; - // Output only. Describes the values of [ExplanationSpec][google.cloud.aiplatform.v1beta1.ExplanationSpec] that are used for explaining + // Describes the values of [ExplanationSpec][google.cloud.aiplatform.v1beta1.ExplanationSpec] that are used for explaining // the predicted values on the evaluated data. - repeated ModelEvaluationExplanationSpec explanation_specs = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated ModelEvaluationExplanationSpec explanation_specs = 9; + + // The metadata of the ModelEvaluation. + // For the ModelEvaluation uploaded from Managed Pipeline, metadata contains a + // structured value with keys of "pipeline_job_id", "evaluation_dataset_type", + // "evaluation_dataset_path". + google.protobuf.Value metadata = 11; } diff --git a/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto b/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto index 8a882c435..aa39f1118 100644 --- a/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto +++ b/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/model_monitoring.proto b/google/cloud/aiplatform/v1beta1/model_monitoring.proto index d1bdc0f57..955314ecd 100644 --- a/google/cloud/aiplatform/v1beta1/model_monitoring.proto +++ b/google/cloud/aiplatform/v1beta1/model_monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/io.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -28,7 +27,32 @@ option java_package = "com.google.cloud.aiplatform.v1beta1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; -// Next ID: 6 +// The model monitoring configuration used for Batch Prediction Job. +message ModelMonitoringConfig { + // Model monitoring objective config. + repeated ModelMonitoringObjectiveConfig objective_configs = 3; + + // Model monitoring alert config. + ModelMonitoringAlertConfig alert_config = 2; + + // YAML schema file uri in Cloud Storage describing the format of a single + // instance that you want Tensorflow Data Validation (TFDV) to analyze. + // + // If there are any data type differences between predict instance and TFDV + // instance, this field can be used to override the schema. + // For models trained with Vertex AI, this field must be set as all the + // fields in predict instance formatted as string. + string analysis_instance_schema_uri = 4; + + // A Google Cloud Storage location for batch prediction model monitoring to + // dump statistics and anomalies. + // If not provided, a folder will be created in customer project to hold + // statistics and anomalies. + GcsDestination stats_anomalies_base_directory = 5; +} + +// The objective configuration for model monitoring, including the information +// needed to detect anomalies for one particular model. message ModelMonitoringObjectiveConfig { // Training Dataset information. message TrainingDataset { @@ -56,6 +80,8 @@ message ModelMonitoringObjectiveConfig { // // "csv" // The source file is a CSV file. + // "jsonl" + // The source file is a JSONL file. string data_format = 2; // The target field name the model is to predict. @@ -81,6 +107,11 @@ message ModelMonitoringObjectiveConfig { // against attribution score distance between the training and prediction // feature. map attribution_score_skew_thresholds = 2; + + // Skew anomaly detection threshold used by all features. + // When the per-feature thresholds are not set, this field can be used to + // specify a threshold for all features. + ThresholdConfig default_skew_threshold = 6; } // The config for Prediction data drift detection. @@ -94,6 +125,11 @@ message ModelMonitoringObjectiveConfig { // Key is the feature name and value is the threshold. The threshold here is // against attribution score distance between different time windows. map attribution_score_drift_thresholds = 2; + + // Drift anomaly detection threshold used by all features. + // When the per-feature thresholds are not set, this field can be used to + // specify a threshold for all features. + ThresholdConfig default_drift_threshold = 5; } // The config for integrating with Vertex Explainable AI. Only applicable if @@ -151,7 +187,6 @@ message ModelMonitoringObjectiveConfig { ExplanationConfig explanation_config = 5; } -// Next ID: 3 message ModelMonitoringAlertConfig { // The config for email alert. message EmailAlertConfig { @@ -173,7 +208,6 @@ message ModelMonitoringAlertConfig { } // The config for feature monitoring threshold. -// Next ID: 3 message ThresholdConfig { oneof threshold { // Specify a threshold value that can trigger the alert. @@ -190,7 +224,6 @@ message ThresholdConfig { // Sampling Strategy for logging, can be for both training and prediction // dataset. -// Next ID: 2 message SamplingStrategy { // Requests are randomly selected. message RandomSampleConfig { diff --git a/google/cloud/aiplatform/v1beta1/model_service.proto b/google/cloud/aiplatform/v1beta1/model_service.proto index ac8f22e9f..1af9d4b48 100644 --- a/google/cloud/aiplatform/v1beta1/model_service.proto +++ b/google/cloud/aiplatform/v1beta1/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -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/explanation.proto"; import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/cloud/aiplatform/v1beta1/model.proto"; import "google/cloud/aiplatform/v1beta1/model_evaluation.proto"; @@ -70,6 +71,14 @@ service ModelService { option (google.api.method_signature) = "parent"; } + // Lists versions of the specified model. + rpc ListModelVersions(ListModelVersionsRequest) returns (ListModelVersionsResponse) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/models/*}:listVersions" + }; + option (google.api.method_signature) = "name"; + } + // Updates a Model. rpc UpdateModel(UpdateModelRequest) returns (Model) { option (google.api.http) = { @@ -79,6 +88,19 @@ service ModelService { option (google.api.method_signature) = "model,update_mask"; } + // Incrementally update the dataset used for an examples model. + rpc UpdateExplanationDataset(UpdateExplanationDatasetRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{model=projects/*/locations/*/models/*}:updateExplanationDataset" + body: "*" + }; + option (google.api.method_signature) = "model"; + option (google.longrunning.operation_info) = { + response_type: "UpdateExplanationDatasetResponse" + metadata_type: "UpdateExplanationDatasetOperationMetadata" + }; + } + // Deletes a Model. // // A model cannot be deleted if any [Endpoint][google.cloud.aiplatform.v1beta1.Endpoint] resource has a @@ -95,6 +117,31 @@ service ModelService { }; } + // Deletes a Model version. + // + // Model version can only be deleted if there are no [DeployedModels][] + // created from it. Deleting the only version in the Model is not allowed. Use + // [DeleteModel][google.cloud.aiplatform.v1beta1.ModelService.DeleteModel] for deleting the Model instead. + rpc DeleteModelVersion(DeleteModelVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/models/*}:deleteVersion" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Merges a set of aliases for a Model version. + rpc MergeVersionAliases(MergeVersionAliasesRequest) returns (Model) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/models/*}:mergeVersionAliases" + body: "*" + }; + option (google.api.method_signature) = "name,version_aliases"; + } + // Exports a trained, exportable Model to a location specified by the // user. A Model is considered to be exportable if it has at least one // [supported export format][google.cloud.aiplatform.v1beta1.Model.supported_export_formats]. @@ -110,6 +157,24 @@ service ModelService { }; } + // Imports an externally generated ModelEvaluation. + rpc ImportModelEvaluation(ImportModelEvaluationRequest) returns (ModelEvaluation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/models/*}/evaluations:import" + body: "*" + }; + option (google.api.method_signature) = "parent,model_evaluation"; + } + + // Imports a list of externally generated ModelEvaluationSlice. + rpc BatchImportModelEvaluationSlices(BatchImportModelEvaluationSlicesRequest) returns (BatchImportModelEvaluationSlicesResponse) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices:batchImport" + body: "*" + }; + option (google.api.method_signature) = "parent,model_evaluation_slices"; + } + // Gets a ModelEvaluation. rpc GetModelEvaluation(GetModelEvaluationRequest) returns (ModelEvaluation) { option (google.api.http) = { @@ -154,6 +219,17 @@ message UploadModelRequest { } ]; + // Optional. The resource name of the model into which to upload the version. Only + // specify this field when uploading a new version. + string parent_model = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ID to use for the uploaded Model, which will become the final + // component of the model resource name. + // + // This value may be up to 63 characters, and valid characters are + // `[a-z0-9_-]`. The first character cannot be a number or hyphen. + string model_id = 5 [(google.api.field_behavior) = OPTIONAL]; + // Required. The Model to create. Model model = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -171,12 +247,25 @@ message UploadModelResponse { string model = 1 [(google.api.resource_reference) = { type: "aiplatform.googleapis.com/Model" }]; + + // Output only. The version ID of the model that is uploaded. + string model_version_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for [ModelService.GetModel][google.cloud.aiplatform.v1beta1.ModelService.GetModel]. message GetModelRequest { // Required. The name of the Model resource. // Format: `projects/{project}/locations/{location}/models/{model}` + // + // In order to retrieve a specific version of the model, also provide + // the version ID or version alias. + // Example: `projects/{project}/locations/{location}/models/{model}@2` + // or + // `projects/{project}/locations/{location}/models/{model}@golden` + // If no version ID or alias is specified, the "default" version will be + // returned. The "default" version alias is created for the first version of + // the model, and can be moved to other versions later on. There will be + // exactly one default version. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -208,6 +297,7 @@ message ListModelsRequest { // * A key including a space must be quoted. `labels."a key"`. // // Some examples: + // // * `model=1234` // * `displayName="myDisplayName"` // * `labels.myKey="myValue"` @@ -236,9 +326,74 @@ message ListModelsResponse { string next_page_token = 2; } +// Request message for [ModelService.ListModelVersions][google.cloud.aiplatform.v1beta1.ModelService.ListModelVersions]. +message ListModelVersionsRequest { + // Required. The name of the model to list versions for. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // The standard list page size. + int32 page_size = 2; + + // The standard list page token. + // Typically obtained via + // [ListModelVersionsResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListModelVersionsResponse.next_page_token] of the previous + // [ModelService.ListModelversions][] call. + string page_token = 3; + + // An expression for filtering the results of the request. For field names + // both snake_case and camelCase are supported. + // + // * `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"`. + // + // Some examples: + // + // * `labels.myKey="myValue"` + string filter = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for [ModelService.ListModelVersions][google.cloud.aiplatform.v1beta1.ModelService.ListModelVersions] +message ListModelVersionsResponse { + // List of Model versions in the requested page. + // In the returned Model name field, version ID instead of regvision tag will + // be included. + repeated Model models = 1; + + // A token to retrieve the next page of results. + // Pass to [ListModelVersionsRequest.page_token][google.cloud.aiplatform.v1beta1.ListModelVersionsRequest.page_token] to obtain that page. + string next_page_token = 2; +} + // Request message for [ModelService.UpdateModel][google.cloud.aiplatform.v1beta1.ModelService.UpdateModel]. message UpdateModelRequest { // Required. The Model which replaces the resource on the server. + // When Model Versioning is enabled, the model.name will be used to determine + // whether to update the model or model version. + // 1. model.name with the @ value, e.g. models/123@1, refers to a version + // specific update. + // 2. model.name without the @ value, e.g. models/123, refers to a model + // update. + // 3. model.name with @-, e.g. models/123@-, refers to a model update. + // 4. Supported model fields: display_name, description; supported + // version-specific fields: version_description. Labels are supported in both + // scenarios. Both the model labels and the version labels are merged when a + // model is returned. When updating labels, if the request is for + // model-specific update, model label gets updated. Otherwise, version labels + // get updated. + // 5. A model name or model version name fields update mismatch will cause a + // precondition error. + // 6. One request cannot update both the model and the version fields. You + // must update them separately. Model model = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The update mask applies to the resource. @@ -246,6 +401,29 @@ message UpdateModelRequest { google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } +// Request message for +// [ModelService.UpdateExplanationDataset][google.cloud.aiplatform.v1beta1.ModelService.UpdateExplanationDataset]. +message UpdateExplanationDatasetRequest { + // Required. The resource name of the Model to update. + // Format: `projects/{project}/locations/{location}/models/{model}` + string model = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // The example config containing the location of the dataset. + Examples examples = 2; +} + +// Runtime operation information for +// [ModelService.UpdateExplanationDataset][google.cloud.aiplatform.v1beta1.ModelService.UpdateExplanationDataset]. +message UpdateExplanationDatasetOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; +} + // Request message for [ModelService.DeleteModel][google.cloud.aiplatform.v1beta1.ModelService.DeleteModel]. message DeleteModelRequest { // Required. The name of the Model resource to be deleted. @@ -258,6 +436,48 @@ message DeleteModelRequest { ]; } +// Request message for [ModelService.DeleteModelVersion][google.cloud.aiplatform.v1beta1.ModelService.DeleteModelVersion]. +message DeleteModelVersionRequest { + // Required. The name of the model version to be deleted, with a version ID explicitly + // included. + // + // Example: `projects/{project}/locations/{location}/models/{model}@1234` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; +} + +// Request message for [ModelService.MergeVersionAliases][google.cloud.aiplatform.v1beta1.ModelService.MergeVersionAliases]. +message MergeVersionAliasesRequest { + // Required. The name of the model version to merge aliases, with a version ID + // explicitly included. + // + // Example: `projects/{project}/locations/{location}/models/{model}@1234` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Required. The set of version aliases to merge. + // The alias should be at most 128 characters, and match + // `[a-z][a-zA-Z0-9-]{0,126}[a-z-0-9]`. + // Add the `-` prefix to an alias means removing that alias from the version. + // `-` is NOT counted in the 128 characters. Example: `-golden` means removing + // the `golden` alias from the version. + // + // There is NO ordering in aliases, which means + // 1) The aliases returned from GetModel API might not have the exactly same + // order from this MergeVersionAliases API. 2) Adding and deleting the same + // alias in the request is not recommended, and the 2 operations will be + // cancelled out. + repeated string version_aliases = 2 [(google.api.field_behavior) = REQUIRED]; +} + // Request message for [ModelService.ExportModel][google.cloud.aiplatform.v1beta1.ModelService.ExportModel]. message ExportModelRequest { // Output configuration for the Model export. @@ -286,6 +506,8 @@ message ExportModelRequest { } // Required. The resource name of the Model to export. + // The resource name may contain version id or version alias to specify the + // version, if no version is specified, the default version will be exported. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -319,11 +541,53 @@ message ExportModelOperationMetadata { OutputInfo output_info = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Response message of [ModelService.UpdateExplanationDataset][google.cloud.aiplatform.v1beta1.ModelService.UpdateExplanationDataset] operation. +message UpdateExplanationDatasetResponse { + +} + // Response message of [ModelService.ExportModel][google.cloud.aiplatform.v1beta1.ModelService.ExportModel] operation. message ExportModelResponse { } +// Request message for [ModelService.ImportModelEvaluation][google.cloud.aiplatform.v1beta1.ModelService.ImportModelEvaluation] +message ImportModelEvaluationRequest { + // Required. The name of the parent model resource. + // Format: `projects/{project}/locations/{location}/models/{model}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Required. Model evaluation resource to be imported. + ModelEvaluation model_evaluation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [ModelService.BatchImportModelEvaluationSlices][google.cloud.aiplatform.v1beta1.ModelService.BatchImportModelEvaluationSlices] +message BatchImportModelEvaluationSlicesRequest { + // Required. The name of the parent ModelEvaluation resource. + // Format: + // `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelEvaluation" + } + ]; + + // Required. Model evaluation slice resource to be imported. + repeated ModelEvaluationSlice model_evaluation_slices = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [ModelService.BatchImportModelEvaluationSlices][google.cloud.aiplatform.v1beta1.ModelService.BatchImportModelEvaluationSlices] +message BatchImportModelEvaluationSlicesResponse { + // Output only. List of imported [ModelEvaluationSlice.name][google.cloud.aiplatform.v1beta1.ModelEvaluationSlice.name]. + repeated string imported_model_evaluation_slices = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Request message for [ModelService.GetModelEvaluation][google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluation]. message GetModelEvaluationRequest { // Required. The name of the ModelEvaluation resource. diff --git a/google/cloud/aiplatform/v1beta1/operation.proto b/google/cloud/aiplatform/v1beta1/operation.proto index 045f921b7..04e04b201 100644 --- a/google/cloud/aiplatform/v1beta1/operation.proto +++ b/google/cloud/aiplatform/v1beta1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto b/google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto new file mode 100644 index 000000000..f197f510f --- /dev/null +++ b/google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto @@ -0,0 +1,44 @@ +// 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.cloud.aiplatform.v1beta1; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "PipelineFailurePolicyProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Represents the failure policy of a pipeline. Currently, the default of a +// pipeline is that the pipeline will continue to run until no more tasks can be +// executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. However, if a +// pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it will stop scheduling +// any new tasks when a task has failed. Any scheduled tasks will continue to +// completion. +enum PipelineFailurePolicy { + // Default value, and follows fail slow behavior. + PIPELINE_FAILURE_POLICY_UNSPECIFIED = 0; + + // Indicates that the pipeline should continue to run until all possible + // tasks have been scheduled and completed. + PIPELINE_FAILURE_POLICY_FAIL_SLOW = 1; + + // Indicates that the pipeline should stop scheduling new tasks after a task + // has failed. + PIPELINE_FAILURE_POLICY_FAIL_FAST = 2; +} diff --git a/google/cloud/aiplatform/v1beta1/pipeline_job.proto b/google/cloud/aiplatform/v1beta1/pipeline_job.proto index 999dff9d1..cb450ee56 100644 --- a/google/cloud/aiplatform/v1beta1/pipeline_job.proto +++ b/google/cloud/aiplatform/v1beta1/pipeline_job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,12 +22,12 @@ import "google/cloud/aiplatform/v1beta1/artifact.proto"; import "google/cloud/aiplatform/v1beta1/context.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/execution.proto"; +import "google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto"; import "google/cloud/aiplatform/v1beta1/pipeline_state.proto"; import "google/cloud/aiplatform/v1beta1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -50,6 +50,18 @@ message PipelineJob { // The runtime config of a PipelineJob. message RuntimeConfig { + // The type of an input artifact. + message InputArtifact { + oneof kind { + // Artifact resource id from MLMD. Which is the last portion of an + // artifact resource + // name(projects/{project}/locations/{location}/metadataStores/default/artifacts/{artifact_id}). + // The artifact must stay within the same project, location and default + // metadatastore as the pipeline. + string artifact_id = 1; + } + } + // Deprecated. Use [RuntimeConfig.parameter_values][google.cloud.aiplatform.v1beta1.PipelineJob.RuntimeConfig.parameter_values] instead. The runtime // parameters of the PipelineJob. The parameters will be passed into // [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1beta1.PipelineJob.pipeline_spec] to replace the placeholders at runtime. @@ -73,6 +85,18 @@ message PipelineJob { // `PipelineJob.pipeline_spec.schema_version` 2.1.0, such as pipelines built // using Kubeflow Pipelines SDK 1.9 or higher and the v2 DSL. map parameter_values = 3; + + // Represents the failure policy of a pipeline. Currently, the default of a + // pipeline is that the pipeline will continue to run until no more tasks + // can be executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. + // However, if a pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it + // will stop scheduling any new tasks when a task has failed. Any scheduled + // tasks will continue to completion. + PipelineFailurePolicy failure_policy = 4; + + // The runtime artifacts of the PipelineJob. The key will be the input + // artifact name and the value would be one of the InputArtifact. + map input_artifacts = 5; } // Output only. The resource name of the PipelineJob. @@ -95,8 +119,8 @@ message PipelineJob { // Output only. Timestamp when this PipelineJob was most recently updated. google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. The spec of the pipeline. - google.protobuf.Struct pipeline_spec = 7 [(google.api.field_behavior) = REQUIRED]; + // The spec of the pipeline. + google.protobuf.Struct pipeline_spec = 7; // Output only. The detailed state of the job. PipelineState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -151,6 +175,27 @@ message PipelineJob { string network = 18 [(google.api.resource_reference) = { type: "compute.googleapis.com/Network" }]; + + // A template uri from where the [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1beta1.PipelineJob.pipeline_spec], if empty, will + // be downloaded. + string template_uri = 19; + + // Output only. Pipeline template metadata. Will fill up fields if + // [PipelineJob.template_uri][google.cloud.aiplatform.v1beta1.PipelineJob.template_uri] is from supported template registry. + PipelineTemplateMetadata template_metadata = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Pipeline template metadata if [PipelineJob.template_uri][google.cloud.aiplatform.v1beta1.PipelineJob.template_uri] is from supported +// template registry. Currently, the only supported registry is Artifact +// Registry. +message PipelineTemplateMetadata { + // The version_name in artifact registry. + // + // Will always be presented in output if the [PipelineJob.template_uri][google.cloud.aiplatform.v1beta1.PipelineJob.template_uri] is + // from supported template registry. + // + // Format is "sha256:abcdef123456...". + string version = 3; } // The runtime detail of PipelineJob. diff --git a/google/cloud/aiplatform/v1beta1/pipeline_service.proto b/google/cloud/aiplatform/v1beta1/pipeline_service.proto index 7ab9340fa..8126d7b88 100644 --- a/google/cloud/aiplatform/v1beta1/pipeline_service.proto +++ b/google/cloud/aiplatform/v1beta1/pipeline_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -193,21 +193,25 @@ message ListTrainingPipelinesRequest { ]; // The standard list filter. - // Supported fields: // - // * `display_name` supports = and !=. + // Supported fields: // - // * `state` supports = and !=. + // * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. + // * `state` supports `=`, `!=` comparisons. + // * `training_task_definition` `=`, `!=` comparisons, and `:` wildcard. + // * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. + // `create_time` must be in RFC 3339 format. + // * `labels` supports general map functions that is: + // `labels.key=value` - key:value equality + // `labels.key:* - key existence // // Some examples of using the filter are: // - // * `state="PIPELINE_STATE_SUCCEEDED" AND display_name="my_pipeline"` - // - // * `state="PIPELINE_STATE_RUNNING" OR display_name="my_pipeline"` - // - // * `NOT display_name="my_pipeline"` - // - // * `state="PIPELINE_STATE_FAILED"` + // * `state="PIPELINE_STATE_SUCCEEDED" AND display_name:"my_pipeline_*"` + // * `state!="PIPELINE_STATE_FAILED" OR display_name="my_pipeline"` + // * `NOT display_name="my_pipeline"` + // * `create_time>"2021-05-18T00:00:00Z"` + // * `training_task_definition:"*automl_text_classification*"` string filter = 2; // The standard list page size. @@ -312,8 +316,8 @@ message ListPipelineJobsRequest { // * `pipeline_name`: Supports `=` and `!=` comparisons. // * `display_name`: Supports `=`, `!=` comparisons, and `:` wildcard. // * `pipeline_job_user_id`: Supports `=`, `!=` comparisons, and `:` wildcard. - // for example, can check if pipeline's display_name contains *step* by doing - // display_name:\"*step*\" + // for example, can check if pipeline's display_name contains *step* by + // doing display_name:\"*step*\" // * `state`: Supports `=` and `!=` comparisons. // * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. // Values must be in RFC 3339 format. @@ -322,6 +326,9 @@ message ListPipelineJobsRequest { // * `end_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. // Values must be in RFC 3339 format. // * `labels`: Supports key-value equality and key presence. + // * `template_uri`: Supports `=`, `!=` comparisons, and `:` wildcard. + // * `template_metadata.version`: Supports `=`, `!=` comparisons, and `:` + // wildcard. // // Filter expressions can be combined together using logical operators // (`AND` & `OR`). @@ -356,11 +363,15 @@ message ListPipelineJobsRequest { // there are multiple jobs having the same create time, order them by the end // time in ascending order. if order_by is not specified, it will order by // default order is create time in descending order. Supported fields: + // // * `create_time` // * `update_time` // * `end_time` // * `start_time` string order_by = 6; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 7; } // Response message for [PipelineService.ListPipelineJobs][google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs] diff --git a/google/cloud/aiplatform/v1beta1/pipeline_state.proto b/google/cloud/aiplatform/v1beta1/pipeline_state.proto index 1dfb08e5d..41f2fb6ae 100644 --- a/google/cloud/aiplatform/v1beta1/pipeline_state.proto +++ b/google/cloud/aiplatform/v1beta1/pipeline_state.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option java_multiple_files = true; diff --git a/google/cloud/aiplatform/v1beta1/prediction_service.proto b/google/cloud/aiplatform/v1beta1/prediction_service.proto index e8ee52ce9..e24524205 100644 --- a/google/cloud/aiplatform/v1beta1/prediction_service.proto +++ b/google/cloud/aiplatform/v1beta1/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -133,6 +133,10 @@ message PredictResponse { } ]; + // Output only. The version ID of the Model which is deployed as the DeployedModel that + // this prediction hits. + string model_version_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The [display name][google.cloud.aiplatform.v1beta1.Model.display_name] of the Model which is deployed as // the DeployedModel that this prediction hits. string model_display_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/aiplatform/v1beta1/saved_query.proto b/google/cloud/aiplatform/v1beta1/saved_query.proto new file mode 100644 index 000000000..da02d8a50 --- /dev/null +++ b/google/cloud/aiplatform/v1beta1/saved_query.proto @@ -0,0 +1,85 @@ +// 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.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 = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "SavedQueryProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A SavedQuery is a view of the dataset. It references a subset of annotations +// by problem type and filters. +message SavedQuery { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/SavedQuery" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/savedQueries/{saved_query}" + }; + + // Output only. Resource name of the SavedQuery. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of the SavedQuery. + // 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]; + + // Some additional information about the SavedQuery. + google.protobuf.Value metadata = 12; + + // Output only. Timestamp when this SavedQuery was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when SavedQuery was last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Filters on the Annotations in the dataset. + string annotation_filter = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Problem type of the SavedQuery. + // Allowed values: + // + // * IMAGE_CLASSIFICATION_SINGLE_LABEL + // * IMAGE_CLASSIFICATION_MULTI_LABEL + // * IMAGE_BOUNDING_POLY + // * IMAGE_BOUNDING_BOX + // * TEXT_CLASSIFICATION_SINGLE_LABEL + // * TEXT_CLASSIFICATION_MULTI_LABEL + // * TEXT_EXTRACTION + // * TEXT_SENTIMENT + // * VIDEO_CLASSIFICATION + // * VIDEO_OBJECT_TRACKING + string problem_type = 6 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Number of AnnotationSpecs in the context of the SavedQuery. + int32 annotation_spec_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Used to perform a consistent read-modify-write update. If not set, a blind + // "overwrite" update happens. + string etag = 8; + + // Output only. If the Annotations belonging to the SavedQuery can be used for AutoML + // training. + bool support_automl_training = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto b/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto index a57a99728..249c5ca3c 100644 --- a/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto +++ b/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto @@ -19,12 +19,14 @@ package google.cloud.aiplatform.v1beta1.schema; import "google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto"; import "google/cloud/aiplatform/v1beta1/schema/geometry.proto"; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema;schema"; option java_multiple_files = true; option java_outer_classname = "AnnotationPayloadProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema"; // Annotation details specific to image classification. message ImageClassificationAnnotation { diff --git a/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto b/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto index bd57636fa..5a4b97674 100644 --- a/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto +++ b/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto @@ -17,12 +17,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema; import "google/type/color.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema;schema"; option java_multiple_files = true; option java_outer_classname = "AnnotationSpecColorProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema"; // An entry of mapping between color and AnnotationSpec. The mapping is used in // segmentation mask. diff --git a/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto b/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto index b9c0c6656..6f8b3eff8 100644 --- a/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto +++ b/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto @@ -17,13 +17,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema; import "google/api/field_behavior.proto"; -import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema;schema"; option java_multiple_files = true; option java_outer_classname = "DataItemPayloadProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema"; // Payload of Image DataItem. message ImageDataItem { diff --git a/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto b/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto index 6970d5abf..d35bbc33c 100644 --- a/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto +++ b/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema;schema"; option java_multiple_files = true; option java_outer_classname = "DatasetMetadataProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema"; // The metadata of Datasets that contain Image DataItems. message ImageDatasetMetadata { diff --git a/google/cloud/aiplatform/v1beta1/schema/geometry.proto b/google/cloud/aiplatform/v1beta1/schema/geometry.proto index 4c0061040..5dd708e37 100644 --- a/google/cloud/aiplatform/v1beta1/schema/geometry.proto +++ b/google/cloud/aiplatform/v1beta1/schema/geometry.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema;schema"; option java_multiple_files = true; option java_outer_classname = "GeometryProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema"; // A vertex represents a 2D point in the image. // NOTE: the normalized vertex coordinates are relative to the original image diff --git a/google/cloud/aiplatform/v1beta1/schema/io_format.proto b/google/cloud/aiplatform/v1beta1/schema/io_format.proto index 210ecf8d5..50a286e8f 100644 --- a/google/cloud/aiplatform/v1beta1/schema/io_format.proto +++ b/google/cloud/aiplatform/v1beta1/schema/io_format.proto @@ -24,10 +24,13 @@ import "google/protobuf/struct.proto"; import "google/rpc/code.proto"; import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema;schema"; option java_multiple_files = true; option java_outer_classname = "IoFormatProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema"; // Represents a line of JSONL in the batch prediction output file. message PredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/BUILD.bazel b/google/cloud/aiplatform/v1beta1/schema/predict/instance/BUILD.bazel index ad8a3bf07..d34fa576c 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/BUILD.bazel +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/BUILD.bazel @@ -102,6 +102,7 @@ py_gapic_library( "python-gapic-namespace=google.cloud.aiplatform.v1beta1.schema.predict", "python-gapic-name=instance", ], + transport = "grpc", ) # Open Source Packages diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto index f68044623..7ce0a3442 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "ImageClassificationPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Image Classification. message ImageClassificationPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto index 1765f464d..b92db336c 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "ImageObjectDetectionPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Image Object Detection. message ImageObjectDetectionPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto index d5477020f..a83b7fbcc 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "ImageSegmentationPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Image Segmentation. message ImageSegmentationPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto index 8a09ff2dd..99b8deda7 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "TextClassificationPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Text Classification. message TextClassificationPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto index f547c36b2..0265e4c03 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "TextExtractionPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Text Extraction. message TextExtractionPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto index 204858212..17480d0c1 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "TextSentimentPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Text Sentiment. message TextSentimentPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto index 888ae402f..f65c6d2b1 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "VideoActionRecognitionPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Video Action Recognition. message VideoActionRecognitionPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto index 5f7df37e3..9261a2402 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "VideoClassificationPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Video Classification. message VideoClassificationPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto b/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto index fec8b4d19..6a420074a 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.instance; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/instance;instance"; option java_multiple_files = true; option java_outer_classname = "VideoObjectTrackingPredictionInstanceProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance"; // Prediction input format for Video Object Tracking. message VideoObjectTrackingPredictionInstance { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/params/BUILD.bazel b/google/cloud/aiplatform/v1beta1/schema/predict/params/BUILD.bazel index 26f5c5562..c6aff45a6 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/params/BUILD.bazel +++ b/google/cloud/aiplatform/v1beta1/schema/predict/params/BUILD.bazel @@ -99,6 +99,7 @@ py_gapic_library( "python-gapic-namespace=google.cloud.aiplatform.v1beta1.schema.predict", "python-gapic-name=params", ], + transport = "grpc", ) # Open Source Packages diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto b/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto index 4c7742cfc..088f04952 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.params; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/params;params"; option java_multiple_files = true; option java_outer_classname = "ImageClassificationPredictionParamsProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params"; // Prediction model parameters for Image Classification. message ImageClassificationPredictionParams { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto b/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto index f77a9676d..32861f2b6 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.params; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/params;params"; option java_multiple_files = true; option java_outer_classname = "ImageObjectDetectionPredictionParamsProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params"; // Prediction model parameters for Image Object Detection. message ImageObjectDetectionPredictionParams { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto b/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto index 8664ccf2c..a49c81364 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.params; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/params;params"; option java_multiple_files = true; option java_outer_classname = "ImageSegmentationPredictionParamsProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params"; // Prediction model parameters for Image Segmentation. message ImageSegmentationPredictionParams { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto b/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto index e70d6ff66..02e8ec9fb 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.params; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/params;params"; option java_multiple_files = true; option java_outer_classname = "VideoActionRecognitionPredictionParamsProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params"; // Prediction model parameters for Video Action Recognition. message VideoActionRecognitionPredictionParams { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto b/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto index ee99e65c0..c93ccb6be 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.params; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/params;params"; option java_multiple_files = true; option java_outer_classname = "VideoClassificationPredictionParamsProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params"; // Prediction model parameters for Video Classification. message VideoClassificationPredictionParams { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto b/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto index d51305104..25c91dd71 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.params; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/params;params"; option java_multiple_files = true; option java_outer_classname = "VideoObjectTrackingPredictionParamsProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params"; // Prediction model parameters for Video Object Tracking. message VideoObjectTrackingPredictionParams { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/BUILD.bazel b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/BUILD.bazel index e9e7fb22f..ec39be0ad 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/BUILD.bazel +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/BUILD.bazel @@ -113,6 +113,7 @@ py_gapic_library( "python-gapic-namespace=google.cloud.aiplatform.v1beta1.schema.predict", "python-gapic-name=prediction", ], + transport = "grpc", ) # Open Source Packages @@ -152,7 +153,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto index f2c683f16..b7b6d3db1 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.prediction; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "ClassificationPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Image and Text Classification. message ClassificationPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto index 519f525af..a5489b1bc 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto @@ -17,12 +17,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.prediction; import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "ImageObjectDetectionPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Image Object Detection. message ImageObjectDetectionPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto index b48846ea8..77629ccff 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.prediction; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "ImageSegmentationPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Image Segmentation. message ImageSegmentationPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto index f9b5dc88a..1616dfca5 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.prediction; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "TabularClassificationPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Tabular Classification. message TabularClassificationPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto index 8f2ad6a5e..0aa04bdda 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.prediction; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "TabularRegressionPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Tabular Regression. message TabularRegressionPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto index 7b4b43aef..e7c0cffce 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.prediction; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "TextExtractionPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Text Extraction. message TextExtractionPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto index 41a6c2a90..b5b7a1458 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.prediction; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "TextSentimentPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Text Sentiment message TextSentimentPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto index 8f435b68d..e2db5812d 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.predict.prediction; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "TimeSeriesForecastingPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Time Series Forecasting. message TimeSeriesForecastingPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto index 779f2a0ae..86ff341c2 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto @@ -18,12 +18,14 @@ package google.cloud.aiplatform.v1beta1.schema.predict.prediction; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "VideoActionRecognitionPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Video Action Recognition. message VideoActionRecognitionPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto index bef4dcb0f..6cff97622 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto @@ -18,12 +18,14 @@ package google.cloud.aiplatform.v1beta1.schema.predict.prediction; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "VideoClassificationPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Video Classification. message VideoClassificationPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto index 1d443a06e..11e28a9aa 100644 --- a/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto +++ b/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto @@ -18,12 +18,14 @@ package google.cloud.aiplatform.v1beta1.schema.predict.prediction; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Prediction"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/predict/prediction;prediction"; option java_multiple_files = true; option java_outer_classname = "VideoObjectTrackingPredictionResultProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Prediction"; // Prediction output format for Video Object Tracking. message VideoObjectTrackingPredictionResult { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/BUILD.bazel b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/BUILD.bazel index 2ff210f0a..367757634 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/BUILD.bazel +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/BUILD.bazel @@ -79,6 +79,7 @@ load( "py_gapic_library", "py_grpc_library", "py_proto_library", + "py_test", ) moved_proto_library( @@ -86,7 +87,7 @@ moved_proto_library( srcs = [":definition_proto"], deps = [ "//google/api:annotations_proto", - "//google/api:field_behavior_proto", + "//google/api:field_behavior_proto", ], ) @@ -108,6 +109,7 @@ py_gapic_library( "python-gapic-namespace=google.cloud.aiplatform.v1beta1.schema.trainingjob", "python-gapic-name=definition", ], + transport = "grpc", ) # Open Source Packages @@ -147,7 +149,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto index f9f7420e8..1b874b03b 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLImageClassificationProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Image Classification Model. message AutoMlImageClassification { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto index 5e757987b..938ece400 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLImageObjectDetectionProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Image Object Detection Model. message AutoMlImageObjectDetection { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto index bd379eb07..e368e00b6 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLImageSegmentationProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Image Segmentation Model. message AutoMlImageSegmentation { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto index 134f2701f..5488f747f 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto @@ -17,12 +17,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; import "google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLTablesProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Tables Model. message AutoMlTables { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto index ae28f9c26..b57492a5f 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLTextClassificationProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Text Classification Model. message AutoMlTextClassification { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto index 074b18974..a367486a4 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLTextExtractionProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Text Extraction Model. message AutoMlTextExtraction { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto index ce85d9ec1..b63162d7c 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLTextSentimentProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Text Sentiment Model. message AutoMlTextSentiment { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto index 50d10bdcf..596d0abd5 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto @@ -17,12 +17,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; import "google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLForecastingProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Forecasting Model. message AutoMlForecasting { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto index fe7ce7e79..ef5284b7d 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLVideoActionRecognitionProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Video Action Recognition // Model. diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto index 8b49b4336..c6e152291 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLVideoClassificationProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Video Classification Model. message AutoMlVideoClassification { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto index ea04cedd2..7d929d203 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "AutoMLVideoObjectTrackingProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // A TrainingJob that trains and uploads an AutoML Video ObjectTracking Model. message AutoMlVideoObjectTracking { diff --git a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto index 48bf3ca09..b88d0c4f1 100644 --- a/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto +++ b/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto @@ -16,12 +16,14 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1.schema.trainingjob.definition; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1.Schema.TrainingJob.Definition"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1/schema/trainingjob/definition;definition"; option java_multiple_files = true; option java_outer_classname = "ExportEvaluatedDataItemsConfigProto"; option java_package = "com.google.cloud.aiplatform.v1beta1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1::Schema::TrainingJob::Definition"; // Configuration for exporting test set predictions to a BigQuery table. message ExportEvaluatedDataItemsConfig { diff --git a/google/cloud/aiplatform/v1beta1/specialist_pool.proto b/google/cloud/aiplatform/v1beta1/specialist_pool.proto index ab536bca7..49be7b793 100644 --- a/google/cloud/aiplatform/v1beta1/specialist_pool.proto +++ b/google/cloud/aiplatform/v1beta1/specialist_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto b/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto index 2687d2dfb..a110b9cb8 100644 --- a/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto +++ b/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/aiplatform/v1beta1/study.proto b/google/cloud/aiplatform/v1beta1/study.proto index 9d123a948..5ca0eb1a0 100644 --- a/google/cloud/aiplatform/v1beta1/study.proto +++ b/google/cloud/aiplatform/v1beta1/study.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -31,7 +30,6 @@ option java_package = "com.google.cloud.aiplatform.v1beta1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; -// LINT.IfChange // A message representing a Study. message Study { option (google.api.resource) = { @@ -227,7 +225,7 @@ message StudySpec { // offered starting point. // // Currently only supported by the Vertex AI Vizier service. Not supported - // by HyperparamterTuningJob or TrainingPipeline. + // by HyperparameterTuningJob or TrainingPipeline. optional double default_value = 4; } @@ -244,7 +242,7 @@ message StudySpec { // offered starting point. // // Currently only supported by the Vertex AI Vizier service. Not supported - // by HyperparamterTuningJob or TrainingPipeline. + // by HyperparameterTuningJob or TrainingPipeline. optional int64 default_value = 4; } @@ -257,8 +255,8 @@ message StudySpec { // relatively good starting point. Unset value signals that there is no // offered starting point. // - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. + // Currently only supported by the Vertex AI Vizier service. Not supported + // by HyperparameterTuningJob or TrainingPipeline. optional string default_value = 3; } @@ -275,8 +273,8 @@ message StudySpec { // offered starting point. It automatically rounds to the // nearest feasible discrete point. // - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. + // Currently only supported by the Vertex AI Vizier service. Not supported + // by HyperparameterTuningJob or TrainingPipeline. optional double default_value = 3; } @@ -400,6 +398,54 @@ message StudySpec { bool use_elapsed_duration = 1; } + // Configuration for ConvexAutomatedStoppingSpec. + // When there are enough completed trials (configured by + // min_measurement_count), for pending trials with enough measurements and + // steps, the policy first computes an overestimate of the objective value at + // max_num_steps according to the slope of the incomplete objective value + // curve. No prediction can be made if the curve is completely flat. If the + // overestimation is worse than the best objective value of the completed + // trials, this pending trial will be early-stopped, but a last measurement + // will be added to the pending trial with max_num_steps and predicted + // objective value from the autoregression model. + message ConvexAutomatedStoppingSpec { + // Steps used in predicting the final objective for early stopped trials. In + // general, it's set to be the same as the defined steps in training / + // tuning. If not defined, it will learn it from the completed trials. When + // use_steps is false, this field is set to the maximum elapsed seconds. + int64 max_step_count = 1; + + // Minimum number of steps for a trial to complete. Trials which do not have + // a measurement with step_count > min_step_count won't be considered for + // early stopping. It's ok to set it to 0, and a trial can be early stopped + // at any stage. By default, min_step_count is set to be one-tenth of the + // max_step_count. + // When use_elapsed_duration is true, this field is set to the minimum + // elapsed seconds. + int64 min_step_count = 2; + + // The minimal number of measurements in a Trial. Early-stopping checks + // will not trigger if less than min_measurement_count+1 completed trials or + // pending trials with less than min_measurement_count measurements. If not + // defined, the default value is 5. + int64 min_measurement_count = 3; + + // The hyper-parameter name used in the tuning job that stands for learning + // rate. Leave it blank if learning rate is not in a parameter in tuning. + // The learning_rate is used to estimate the objective value of the ongoing + // trial. + string learning_rate_parameter_name = 4; + + // This bool determines whether or not the rule is applied based on + // elapsed_secs or steps. If use_elapsed_duration==false, the early stopping + // decision is made according to the predicted objective values according to + // the target steps. If use_elapsed_duration==true, elapsed_secs is used + // instead of steps. Also, in this case, the parameters max_num_steps and + // min_num_steps are overloaded to contain max_elapsed_seconds and + // min_elapsed_seconds. + bool use_elapsed_duration = 5; + } + // Configuration for ConvexStopPolicy. message ConvexStopConfig { option deprecated = true; @@ -439,6 +485,19 @@ message StudySpec { bool use_seconds = 5; } + // This contains flag for manually disabling transfer learning for a study. + // The names of prior studies being used for transfer learning (if any) + // are also listed here. + message TransferLearningConfig { + // Flag to to manually prevent vizier from using transfer learning on a + // new study. Otherwise, vizier will automatically determine whether or not + // to use transfer learning. + bool disable_transfer_learning = 1; + + // Output only. Names of previously completed studies + repeated string prior_study_names = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // The available search algorithms for the Study. enum Algorithm { // The default algorithm used by Vertex AI for [hyperparameter @@ -506,6 +565,9 @@ message StudySpec { // Deprecated. // The automated early stopping using convex stopping rule. ConvexStopConfig convex_stop_config = 8 [deprecated = true]; + + // The automated early stopping spec using convex stopping rule. + ConvexAutomatedStoppingSpec convex_automated_stopping_spec = 9; } // Required. Metric specs for the Study. @@ -519,11 +581,15 @@ message StudySpec { // The observation noise level of the study. // Currently only supported by the Vertex AI Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. + // HyperparameterTuningJob or TrainingPipeline. ObservationNoise observation_noise = 6; // Describe which measurement selection type will be used MeasurementSelectionType measurement_selection_type = 7; + + // The configuration info/options for transfer learning. Currently supported + // for Vertex AI Vizier service, not HyperParameterTuningJob + TransferLearningConfig transfer_learning_config = 10; } // A message representing a Measurement of a Trial. A Measurement contains diff --git a/google/cloud/aiplatform/v1beta1/tensorboard.proto b/google/cloud/aiplatform/v1beta1/tensorboard.proto index dda3557da..640e636e5 100644 --- a/google/cloud/aiplatform/v1beta1/tensorboard.proto +++ b/google/cloud/aiplatform/v1beta1/tensorboard.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/tensorboard_data.proto b/google/cloud/aiplatform/v1beta1/tensorboard_data.proto index 1e7e0f2a9..cfc36e302 100644 --- a/google/cloud/aiplatform/v1beta1/tensorboard_data.proto +++ b/google/cloud/aiplatform/v1beta1/tensorboard_data.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto b/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto index 1895d848d..0258ef6d1 100644 --- a/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto +++ b/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/tensorboard_run.proto b/google/cloud/aiplatform/v1beta1/tensorboard_run.proto index e06b565f9..b5f570c87 100644 --- a/google/cloud/aiplatform/v1beta1/tensorboard_run.proto +++ b/google/cloud/aiplatform/v1beta1/tensorboard_run.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/tensorboard_service.proto b/google/cloud/aiplatform/v1beta1/tensorboard_service.proto index d8a063bff..629e5d793 100644 --- a/google/cloud/aiplatform/v1beta1/tensorboard_service.proto +++ b/google/cloud/aiplatform/v1beta1/tensorboard_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto b/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto index e99b51c1b..6e202a6ef 100644 --- a/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto +++ b/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/training_pipeline.proto b/google/cloud/aiplatform/v1beta1/training_pipeline.proto index 316c066ea..138fbc3c8 100644 --- a/google/cloud/aiplatform/v1beta1/training_pipeline.proto +++ b/google/cloud/aiplatform/v1beta1/training_pipeline.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,14 +20,11 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/io.proto"; -import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; -import "google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto"; import "google/cloud/aiplatform/v1beta1/model.proto"; import "google/cloud/aiplatform/v1beta1/pipeline_state.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; @@ -99,6 +96,17 @@ message TrainingPipeline { // is. Model model_to_upload = 7; + // Optional. The ID to use for the uploaded Model, which will become the final + // component of the model resource name. + // + // This value may be up to 63 characters, and valid characters are + // `[a-z0-9_-]`. The first character cannot be a number or hyphen. + string model_id = 22 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When specify this field, the `model_to_upload` will not be uploaded as a + // new model, instead, it will become a new version of this `parent_model`. + string parent_model = 21 [(google.api.field_behavior) = OPTIONAL]; + // Output only. The detailed state of the pipeline. PipelineState state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -268,6 +276,20 @@ message InputDataConfig { // for training are filtered by both [annotations_filter][google.cloud.aiplatform.v1beta1.InputDataConfig.annotations_filter] and // [annotation_schema_uri][google.cloud.aiplatform.v1beta1.InputDataConfig.annotation_schema_uri]. string annotation_schema_uri = 9; + + // Only applicable to Datasets that have SavedQueries. + // + // The ID of a SavedQuery (annotation set) under the Dataset specified by + // [dataset_id][google.cloud.aiplatform.v1beta1.InputDataConfig.dataset_id] used for filtering Annotations for training. + // + // Only Annotations that are associated with this SavedQuery are used in + // respectively training. When used in conjunction with + // [annotations_filter][google.cloud.aiplatform.v1beta1.InputDataConfig.annotations_filter], the Annotations used for training are filtered by + // both [saved_query_id][google.cloud.aiplatform.v1beta1.InputDataConfig.saved_query_id] and [annotations_filter][google.cloud.aiplatform.v1beta1.InputDataConfig.annotations_filter]. + // + // Only one of [saved_query_id][google.cloud.aiplatform.v1beta1.InputDataConfig.saved_query_id] and [annotation_schema_uri][google.cloud.aiplatform.v1beta1.InputDataConfig.annotation_schema_uri] should be + // specified as both of them represent the same thing: problem type. + string saved_query_id = 7; } // Assigns the input data to training, validation, and test sets as per the diff --git a/google/cloud/aiplatform/v1beta1/types.proto b/google/cloud/aiplatform/v1beta1/types.proto index bc4016e24..d62b772cf 100644 --- a/google/cloud/aiplatform/v1beta1/types.proto +++ b/google/cloud/aiplatform/v1beta1/types.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option java_multiple_files = true; @@ -34,7 +32,7 @@ message BoolArray { // A list of double values. message DoubleArray { - // A list of bool values. + // A list of double values. repeated double values = 1; } diff --git a/google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto b/google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto index d9337bca1..7b0d6bdcd 100644 --- a/google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto +++ b/google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1beta1/model.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; diff --git a/google/cloud/aiplatform/v1beta1/user_action_reference.proto b/google/cloud/aiplatform/v1beta1/user_action_reference.proto index cd17de284..3d4633b59 100644 --- a/google/cloud/aiplatform/v1beta1/user_action_reference.proto +++ b/google/cloud/aiplatform/v1beta1/user_action_reference.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option java_multiple_files = true; diff --git a/google/cloud/aiplatform/v1beta1/value.proto b/google/cloud/aiplatform/v1beta1/value.proto index 699c10400..9468f580a 100644 --- a/google/cloud/aiplatform/v1beta1/value.proto +++ b/google/cloud/aiplatform/v1beta1/value.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option java_multiple_files = true; diff --git a/google/cloud/aiplatform/v1beta1/vizier_service.proto b/google/cloud/aiplatform/v1beta1/vizier_service.proto index 3ca9143be..88aec042e 100644 --- a/google/cloud/aiplatform/v1beta1/vizier_service.proto +++ b/google/cloud/aiplatform/v1beta1/vizier_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -285,7 +285,7 @@ message SuggestTrialsRequest { } ]; - // Required. The number of suggestions requested. + // Required. The number of suggestions requested. It must be positive. int32 suggestion_count = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The identifier of the client that is requesting the suggestion. diff --git a/google/cloud/apigateway/v1/BUILD.bazel b/google/cloud/apigateway/v1/BUILD.bazel index f509f47d1..fa9f70349 100644 --- a/google/cloud/apigateway/v1/BUILD.bazel +++ b/google/cloud/apigateway/v1/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":apigateway_java_grpc", ], + transport = "grpc+rest", deps = [ ":apigateway_java_proto", ], @@ -81,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "apigateway_java_gapic_test_suite", test_classes = [ + "com.google.cloud.apigateway.v1.ApiGatewayServiceClientHttpJsonTest", "com.google.cloud.apigateway.v1.ApiGatewayServiceClientTest", ], runtime_deps = [":apigateway_java_gapic_test"], @@ -89,6 +91,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-apigateway-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":apigateway_java_gapic", ":apigateway_java_grpc", @@ -126,6 +130,7 @@ go_gapic_library( importpath = "cloud.google.com/go/apigateway/apiv1;apigateway", metadata = True, service_yaml = "apigateway_v1.yaml", + transport = "grpc+rest", deps = [ ":apigateway_go_proto", "//google/longrunning:longrunning_go_proto", @@ -159,6 +164,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -166,6 +172,17 @@ py_gapic_library( srcs = [":apigateway_proto"], grpc_service_config = "apigateway_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-api-gateway"], + transport = "grpc", +) + +py_test( + name = "apigateway_py_gapic_test", + srcs = [ + "apigateway_py_gapic_pytest.py", + "apigateway_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":apigateway_py_gapic"], ) # Open Source Packages @@ -252,8 +269,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -325,6 +342,7 @@ csharp_gapic_library( srcs = [":apigateway_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "apigateway_grpc_service_config.json", + service_yaml = "apigateway_v1.yaml", deps = [ ":apigateway_csharp_grpc", ":apigateway_csharp_proto", diff --git a/google/cloud/apigateway/v1/apigateway.proto b/google/cloud/apigateway/v1/apigateway.proto index 35ca6bed0..d1dccc740 100644 --- a/google/cloud/apigateway/v1/apigateway.proto +++ b/google/cloud/apigateway/v1/apigateway.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.ApiGateway.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/apigateway/v1;apigateway"; diff --git a/google/cloud/apigeeconnect/v1/BUILD.bazel b/google/cloud/apigeeconnect/v1/BUILD.bazel index a00ecd592..fd6db762e 100644 --- a/google/cloud/apigeeconnect/v1/BUILD.bazel +++ b/google/cloud/apigeeconnect/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":apigeeconnect_java_grpc", ], + transport = "grpc+rest", deps = [ ":apigeeconnect_java_proto", ], @@ -80,7 +81,9 @@ java_gapic_library( java_gapic_test( name = "apigeeconnect_java_gapic_test_suite", test_classes = [ + "com.google.cloud.apigeeconnect.v1.ConnectionServiceClientHttpJsonTest", "com.google.cloud.apigeeconnect.v1.ConnectionServiceClientTest", + "com.google.cloud.apigeeconnect.v1.TetherClientHttpJsonTest", "com.google.cloud.apigeeconnect.v1.TetherClientTest", ], runtime_deps = [":apigeeconnect_java_gapic_test"], @@ -89,6 +92,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-apigeeconnect-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":apigeeconnect_java_gapic", ":apigeeconnect_java_grpc", @@ -157,13 +162,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "apigeeconnect_py_gapic", srcs = [":apigeeconnect_proto"], grpc_service_config = "connection_grpc_service_config.json", - opt_args = ["warehouse-package-name=google-cloud-apigee-connect"] + opt_args = ["warehouse-package-name=google-cloud-apigee-connect"], + transport = "grpc", +) + +py_test( + name = "apigeeconnect_py_gapic_test", + srcs = [ + "apigeeconnect_py_gapic_pytest.py", + "apigeeconnect_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":apigeeconnect_py_gapic"], ) # Open Source Packages @@ -323,6 +340,7 @@ csharp_gapic_library( srcs = [":apigeeconnect_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "connection_grpc_service_config.json", + service_yaml = "apigeeconnect_v1.yaml", deps = [ ":apigeeconnect_csharp_grpc", ":apigeeconnect_csharp_proto", diff --git a/google/cloud/apigeeregistry/BUILD.bazel b/google/cloud/apigeeregistry/BUILD.bazel new file mode 100644 index 000000000..907465d61 --- /dev/null +++ b/google/cloud/apigeeregistry/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-apigee_registry. + +# 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 apigeeregistry. +# 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 = "apigeeregistry_ruby_wrapper", + srcs = ["//google/cloud/apigeeregistry/v1:apigeeregistry_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=apigeeregistry.googleapis.com", + "ruby-cloud-api-shortname=apigeeregistry", + "ruby-cloud-gem-name=google-cloud-apigee_registry", + "ruby-cloud-product-url=https://cloud.google.com/apigee/docs/api-hub/get-started-registry-api/", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "The Apigee Registry API allows teams to upload and share machine-readable descriptions of APIs that are in use and in development. These descriptions include API specifications in standard formats like OpenAPI, the Google API Discovery Service Format, and the Protocol Buffers Language. These API specifications can be used by tools like linters, browsers, documentation generators, test runners, proxies, and API client and server generators. The Registry API itself can be seen as a machine-readable enterprise API catalog designed to back online directories, portals, and workflow managers.", + ruby_cloud_title = "Apigee Registry", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-apigeeregistry-ruby", + deps = [ + ":apigeeregistry_ruby_wrapper", + ], +) diff --git a/google/cloud/apigeeregistry/v1/BUILD.bazel b/google/cloud/apigeeregistry/v1/BUILD.bazel new file mode 100644 index 000000000..5f5b69c48 --- /dev/null +++ b/google/cloud/apigeeregistry/v1/BUILD.bazel @@ -0,0 +1,406 @@ +# 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 = "apigeeregistry_proto", + srcs = [ + "provisioning_service.proto", + "registry_models.proto", + "registry_service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:httpbody_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 = "apigeeregistry_proto_with_info", + deps = [ + ":apigeeregistry_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "apigeeregistry_java_proto", + deps = [":apigeeregistry_proto"], +) + +java_grpc_library( + name = "apigeeregistry_java_grpc", + srcs = [":apigeeregistry_proto"], + deps = [":apigeeregistry_java_proto"], +) + +java_gapic_library( + name = "apigeeregistry_java_gapic", + srcs = [":apigeeregistry_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "apigeeregistry_grpc_service_config.json", + service_yaml = "apigeeregistry_v1.yaml", + test_deps = [ + ":apigeeregistry_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":apigeeregistry_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "apigeeregistry_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.apigeeregistry.v1.ProvisioningClientHttpJsonTest", + "com.google.cloud.apigeeregistry.v1.ProvisioningClientTest", + "com.google.cloud.apigeeregistry.v1.RegistryClientHttpJsonTest", + "com.google.cloud.apigeeregistry.v1.RegistryClientTest", + ], + runtime_deps = [":apigeeregistry_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-apigeeregistry-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":apigeeregistry_java_gapic", + ":apigeeregistry_java_grpc", + ":apigeeregistry_java_proto", + ":apigeeregistry_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "apigeeregistry_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/apigeeregistry/v1", + protos = [":apigeeregistry_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/api:httpbody_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "apigeeregistry_go_gapic", + srcs = [":apigeeregistry_proto_with_info"], + grpc_service_config = "apigeeregistry_grpc_service_config.json", + importpath = "cloud.google.com/go/apigeeregistry/apiv1;apigeeregistry", + metadata = True, + service_yaml = "apigeeregistry_v1.yaml", + deps = [ + ":apigeeregistry_go_proto", + "//google/api:httpbody_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", + ], +) + +go_test( + name = "apigeeregistry_go_gapic_test", + srcs = [":apigeeregistry_go_gapic_srcjar_test"], + embed = [":apigeeregistry_go_gapic"], + importpath = "cloud.google.com/go/apigeeregistry/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-apigeeregistry-v1-go", + deps = [ + ":apigeeregistry_go_gapic", + ":apigeeregistry_go_gapic_srcjar-metadata.srcjar", + ":apigeeregistry_go_gapic_srcjar-test.srcjar", + ":apigeeregistry_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "apigeeregistry_py_gapic", + srcs = [":apigeeregistry_proto"], + grpc_service_config = "apigeeregistry_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-apigee-registry", + "python-gapic-namespace=google.cloud", + "python-gapic-name=apigee_registry", + ], + service_yaml = "apigeeregistry_v1.yaml", + transport = "grpc+rest", +) + +py_test( + name = "apigeeregistry_py_gapic_test", + srcs = [ + "apigeeregistry_py_gapic_pytest.py", + "apigeeregistry_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [ + ":apigeeregistry_py_gapic", + "//google/iam/v1:iam_policy_py_proto", + ], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "apigeeregistry-v1-py", + deps = [ + ":apigeeregistry_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "apigeeregistry_php_proto", + deps = [":apigeeregistry_proto"], +) + +php_grpc_library( + name = "apigeeregistry_php_grpc", + srcs = [":apigeeregistry_proto"], + deps = [":apigeeregistry_php_proto"], +) + +php_gapic_library( + name = "apigeeregistry_php_gapic", + srcs = [":apigeeregistry_proto_with_info"], + grpc_service_config = "apigeeregistry_grpc_service_config.json", + service_yaml = "apigeeregistry_v1.yaml", + deps = [ + ":apigeeregistry_php_grpc", + ":apigeeregistry_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-apigeeregistry-v1-php", + deps = [ + ":apigeeregistry_php_gapic", + ":apigeeregistry_php_grpc", + ":apigeeregistry_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "apigeeregistry_nodejs_gapic", + package_name = "@google-cloud/apigee-registry", + src = ":apigeeregistry_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "apigeeregistry_grpc_service_config.json", + package = "google.cloud.apigeeregistry.v1", + service_yaml = "apigeeregistry_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "apigeeregistry-v1-nodejs", + deps = [ + ":apigeeregistry_nodejs_gapic", + ":apigeeregistry_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 = "apigeeregistry_ruby_proto", + deps = [":apigeeregistry_proto"], +) + +ruby_grpc_library( + name = "apigeeregistry_ruby_grpc", + srcs = [":apigeeregistry_proto"], + deps = [":apigeeregistry_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "apigeeregistry_ruby_gapic", + srcs = [":apigeeregistry_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=apigeeregistry.googleapis.com", + "ruby-cloud-api-shortname=apigeeregistry", + "ruby-cloud-gem-name=google-cloud-apigee_registry-v1", + "ruby-cloud-product-url=https://cloud.google.com/apigee/docs/api-hub/get-started-registry-api/", + ], + grpc_service_config = "apigeeregistry_grpc_service_config.json", + ruby_cloud_description = "The Apigee Registry API allows teams to upload and share machine-readable descriptions of APIs that are in use and in development. These descriptions include API specifications in standard formats like OpenAPI, the Google API Discovery Service Format, and the Protocol Buffers Language. These API specifications can be used by tools like linters, browsers, documentation generators, test runners, proxies, and API client and server generators. The Registry API itself can be seen as a machine-readable enterprise API catalog designed to back online directories, portals, and workflow managers.", + ruby_cloud_title = "Apigee Registry V1", + service_yaml = "apigeeregistry_v1.yaml", + deps = [ + ":apigeeregistry_ruby_grpc", + ":apigeeregistry_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-apigeeregistry-v1-ruby", + deps = [ + ":apigeeregistry_ruby_gapic", + ":apigeeregistry_ruby_grpc", + ":apigeeregistry_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 = "apigeeregistry_csharp_proto", + deps = [":apigeeregistry_proto"], +) + +csharp_grpc_library( + name = "apigeeregistry_csharp_grpc", + srcs = [":apigeeregistry_proto"], + deps = [":apigeeregistry_csharp_proto"], +) + +csharp_gapic_library( + name = "apigeeregistry_csharp_gapic", + srcs = [":apigeeregistry_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "apigeeregistry_grpc_service_config.json", + service_yaml = "apigeeregistry_v1.yaml", + deps = [ + ":apigeeregistry_csharp_grpc", + ":apigeeregistry_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-apigeeregistry-v1-csharp", + deps = [ + ":apigeeregistry_csharp_gapic", + ":apigeeregistry_csharp_grpc", + ":apigeeregistry_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "apigeeregistry_cc_proto", + deps = [":apigeeregistry_proto"], +) + +cc_grpc_library( + name = "apigeeregistry_cc_grpc", + srcs = [":apigeeregistry_proto"], + grpc_only = True, + deps = [":apigeeregistry_cc_proto"], +) diff --git a/google/cloud/apigeeregistry/v1/apigeeregistry_grpc_service_config.json b/google/cloud/apigeeregistry/v1/apigeeregistry_grpc_service_config.json new file mode 100644 index 000000000..ed5d75f17 --- /dev/null +++ b/google/cloud/apigeeregistry/v1/apigeeregistry_grpc_service_config.json @@ -0,0 +1,168 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "ListApis" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "GetApi" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "CreateApi" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "UpdateApi" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "DeleteApi" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "ListApiVersions" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "GetApiVersion" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "CreateApiVersion" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "UpdateApiVersion" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "DeleteApiVersion" + }, + + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "ListApiSpecs" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "GetApiSpec" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "GetApiSpecContents" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "CreateApiSpec" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "UpdateApiSpec" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "DeleteApiSpec" + }, + + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "TagApiSpecRevision" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "ListApiSpecRevisions" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "DeleteApiSpecRevision" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "ListApiDeployments" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "GetApiDeployment" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "CreateApiDeployment" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "UpdateApiDeployment" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "DeleteApiDeployment" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "TagApiDeploymentRevision" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "ListApiDeploymentRevisions" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "DeleteApiDeploymentRevision" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "ListArtifacts" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "GetArtifact" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "GetArtifactContents" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "CreateArtifact" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "ReplaceArtifact" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "DeleteArtifact" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "0.200s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "ABORTED", + "CANCELLED", + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ] + } + }, + { + "name": [ + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "RollbackApiSpec" + }, + { + "service": "google.cloud.apigeeregistry.v1.Registry", + "method": "RollbackApiDeployment" + } + ], + "timeout": "60s" + } + ] +} diff --git a/google/cloud/apigeeregistry/v1/apigeeregistry_v1.yaml b/google/cloud/apigeeregistry/v1/apigeeregistry_v1.yaml new file mode 100644 index 000000000..e4fd7c7c7 --- /dev/null +++ b/google/cloud/apigeeregistry/v1/apigeeregistry_v1.yaml @@ -0,0 +1,159 @@ +type: google.api.Service +config_version: 3 +name: apigeeregistry.googleapis.com +title: Apigee Registry API + +apis: +- name: google.cloud.apigeeregistry.v1.Provisioning +- name: google.cloud.apigeeregistry.v1.Registry +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.apigeeregistry.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. + +backend: + rules: + - selector: 'google.cloud.apigeeregistry.v1.Provisioning.*' + deadline: 60.0 + - selector: 'google.cloud.apigeeregistry.v1.Registry.*' + 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 + 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/*/apis/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/apis/*/deployments/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/apis/*/versions/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/specs/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/artifacts/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/apis/*/artifacts/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/artifacts/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/instances/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/runtime}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/apis/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/apis/*/deployments/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/versions/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/specs/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/artifacts/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/artifacts/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/artifacts/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/instances/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/runtime}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/apis/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/apis/*/deployments/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/versions/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/specs/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/artifacts/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/artifacts/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/artifacts/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/instances/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/runtime}: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.apigeeregistry.v1.Provisioning.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.apigeeregistry.v1.Registry.*' + 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 diff --git a/google/cloud/apigeeregistry/v1/provisioning_service.proto b/google/cloud/apigeeregistry/v1/provisioning_service.proto new file mode 100644 index 000000000..9e7baee58 --- /dev/null +++ b/google/cloud/apigeeregistry/v1/provisioning_service.proto @@ -0,0 +1,205 @@ +// 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.cloud.apigeeregistry.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/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ApigeeRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/apigeeregistry/v1;apigeeregistry"; +option java_multiple_files = true; +option java_outer_classname = "ProvisioningServiceProto"; +option java_package = "com.google.cloud.apigeeregistry.v1"; +option php_namespace = "Google\\Cloud\\ApigeeRegistry\\V1"; +option ruby_package = "Google::Cloud::ApigeeRegistry::V1"; + +// The service that is used for managing the data plane provisioning of the +// Registry. +service Provisioning { + option (google.api.default_host) = "apigeeregistry.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Provisions instance resources for the Registry. + rpc CreateInstance(CreateInstanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/instances" + body: "instance" + }; + option (google.api.method_signature) = "parent,instance,instance_id"; + option (google.longrunning.operation_info) = { + response_type: "Instance" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the Registry instance. + rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/instances/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Gets details of a single Instance. + rpc GetInstance(GetInstanceRequest) returns (Instance) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/instances/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for CreateInstance. +message CreateInstanceRequest { + // Required. Parent resource of the Instance, of the form: `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. Identifier to assign to the Instance. Must be unique within scope of the + // parent resource. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Instance. + Instance instance = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteInstance. +message DeleteInstanceRequest { + // Required. The name of the Instance to delete. + // Format: `projects/*/locations/*/instances/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/Instance" + } + ]; +} + +// Request message for GetInstance. +message GetInstanceRequest { + // Required. The name of the Instance to retrieve. + // Format: `projects/*/locations/*/instances/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/Instance" + } + ]; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // Server-defined resource path for the target of the operation. + string target = 3; + + // Name of the verb executed by the operation. + string verb = 4; + + // Human-readable status of the operation, if any. + string status_message = 5; + + // 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 cancellation_requested = 6; + + // API version used to start the operation. + string api_version = 7; +} + +// An Instance represents the instance resources of the Registry. +// Currently, only one instance is allowed for each project. +message Instance { + option (google.api.resource) = { + type: "apigeeregistry.googleapis.com/Instance" + pattern: "projects/{project}/locations/{location}/instances/{instance}" + }; + + // State of the Instance. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // The Instance has not been initialized or has been deleted. + INACTIVE = 1; + + // The Instance is being created. + CREATING = 2; + + // The Instance has been created and is ready for use. + ACTIVE = 3; + + // The Instance is being updated. + UPDATING = 4; + + // The Instance is being deleted. + DELETING = 5; + + // The Instance encountered an error during a state change. + FAILED = 6; + } + + // Available configurations to provision an Instance. + message Config { + // Output only. The GCP location where the Instance resides. + string location = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The Customer Managed Encryption Key (CMEK) used for data encryption. + // The CMEK name should follow the format of + // `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`, + // where the `location` must match InstanceConfig.location. + string cmek_key_name = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Format: `projects/*/locations/*/instance`. + // Currently only `locations/global` is supported. + string name = 1; + + // Output only. Creation timestamp. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last update timestamp. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the Instance. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Extra information of Instance.State if the state is `FAILED`. + string state_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Config of the Instance. + Config config = 6 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/apigeeregistry/v1/registry_models.proto b/google/cloud/apigeeregistry/v1/registry_models.proto new file mode 100644 index 000000000..8411f9ecf --- /dev/null +++ b/google/cloud/apigeeregistry/v1/registry_models.proto @@ -0,0 +1,364 @@ +// 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.cloud.apigeeregistry.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ApigeeRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/apigeeregistry/v1;apigeeregistry"; +option java_multiple_files = true; +option java_outer_classname = "RegistryModelsProto"; +option java_package = "com.google.cloud.apigeeregistry.v1"; +option php_namespace = "Google\\Cloud\\ApigeeRegistry\\V1"; +option ruby_package = "Google::Cloud::ApigeeRegistry::V1"; + +// A top-level description of an API. +// Produced by producers and are commitments to provide services. +message Api { + option (google.api.resource) = { + type: "apigeeregistry.googleapis.com/Api" + pattern: "projects/{project}/locations/{location}/apis/{api}" + }; + + // Resource name. + string name = 1; + + // Human-meaningful name. + string display_name = 2; + + // A detailed description. + string description = 3; + + // Output only. Creation timestamp. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last update timestamp. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A user-definable description of the availability of this service. + // Format: free-form, but we expect single words that describe availability, + // e.g., "NONE", "TESTING", "PREVIEW", "GENERAL", "DEPRECATED", "SHUTDOWN". + string availability = 6; + + // The recommended version of the API. + // Format: `apis/{api}/versions/{version}` + string recommended_version = 7 [(google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiVersion" + }]; + + // The recommended deployment of the API. + // Format: `apis/{api}/deployments/{deployment}` + string recommended_deployment = 8 [(google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiDeployment" + }]; + + // Labels attach identifying metadata to resources. Identifying metadata can + // be used to filter list operations. + // + // 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 resource (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with + // `apigeeregistry.googleapis.com/` and cannot be changed. + map labels = 9; + + // Annotations attach non-identifying metadata to resources. + // + // Annotation keys and values are less restricted than those of labels, but + // should be generally used for small values of broad interest. Larger, topic- + // specific metadata should be stored in Artifacts. + map annotations = 10; +} + +// Describes a particular version of an API. +// ApiVersions are what consumers actually use. +message ApiVersion { + option (google.api.resource) = { + type: "apigeeregistry.googleapis.com/ApiVersion" + pattern: "projects/{project}/locations/{location}/apis/{api}/versions/{version}" + }; + + // Resource name. + string name = 1; + + // Human-meaningful name. + string display_name = 2; + + // A detailed description. + string description = 3; + + // Output only. Creation timestamp. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last update timestamp. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A user-definable description of the lifecycle phase of this API version. + // Format: free-form, but we expect single words that describe API maturity, + // e.g., "CONCEPT", "DESIGN", "DEVELOPMENT", "STAGING", "PRODUCTION", + // "DEPRECATED", "RETIRED". + string state = 6; + + // Labels attach identifying metadata to resources. Identifying metadata can + // be used to filter list operations. + // + // 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 resource (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with + // `apigeeregistry.googleapis.com/` and cannot be changed. + map labels = 7; + + // Annotations attach non-identifying metadata to resources. + // + // Annotation keys and values are less restricted than those of labels, but + // should be generally used for small values of broad interest. Larger, topic- + // specific metadata should be stored in Artifacts. + map annotations = 8; +} + +// Describes a version of an API in a structured way. +// ApiSpecs provide formal descriptions that consumers can use to use a version. +// ApiSpec resources are intended to be fully-resolved descriptions of an +// ApiVersion. When specs consist of multiple files, these should be bundled +// together (e.g., in a zip archive) and stored as a unit. Multiple specs can +// exist to provide representations in different API description formats. +// Synchronization of these representations would be provided by tooling and +// background services. +message ApiSpec { + option (google.api.resource) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + pattern: "projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}" + }; + + // Resource name. + string name = 1; + + // A possibly-hierarchical name used to refer to the spec from other specs. + string filename = 2; + + // A detailed description. + string description = 3; + + // Output only. Immutable. The revision ID of the spec. + // A new revision is committed whenever the spec contents are changed. + // The format is an 8-character hexadecimal string. + string revision_id = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Creation timestamp; when the spec resource was created. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Revision creation timestamp; when the represented revision was created. + google.protobuf.Timestamp revision_create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last update timestamp: when the represented revision was last modified. + google.protobuf.Timestamp revision_update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A style (format) descriptor for this spec that is specified as a Media Type + // (https://en.wikipedia.org/wiki/Media_type). Possible values include + // `application/vnd.apigee.proto`, `application/vnd.apigee.openapi`, and + // `application/vnd.apigee.graphql`, with possible suffixes representing + // compression types. These hypothetical names are defined in the vendor tree + // defined in RFC6838 (https://tools.ietf.org/html/rfc6838) and are not final. + // Content types can specify compression. Currently only GZip compression is + // supported (indicated with "+gzip"). + string mime_type = 8; + + // Output only. The size of the spec file in bytes. If the spec is gzipped, this is the + // size of the uncompressed spec. + int32 size_bytes = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A SHA-256 hash of the spec's contents. If the spec is gzipped, this is + // the hash of the uncompressed spec. + string hash = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The original source URI of the spec (if one exists). + // This is an external location that can be used for reference purposes + // but which may not be authoritative since this external resource may + // change after the spec is retrieved. + string source_uri = 11; + + // Input only. The contents of the spec. + // Provided by API callers when specs are created or updated. + // To access the contents of a spec, use GetApiSpecContents. + bytes contents = 12 [(google.api.field_behavior) = INPUT_ONLY]; + + // Labels attach identifying metadata to resources. Identifying metadata can + // be used to filter list operations. + // + // 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 resource (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with + // `apigeeregistry.googleapis.com/` and cannot be changed. + map labels = 14; + + // Annotations attach non-identifying metadata to resources. + // + // Annotation keys and values are less restricted than those of labels, but + // should be generally used for small values of broad interest. Larger, topic- + // specific metadata should be stored in Artifacts. + map annotations = 15; +} + +// Describes a service running at particular address that +// provides a particular version of an API. ApiDeployments have revisions which +// correspond to different configurations of a single deployment in time. +// Revision identifiers should be updated whenever the served API spec or +// endpoint address changes. +message ApiDeployment { + option (google.api.resource) = { + type: "apigeeregistry.googleapis.com/ApiDeployment" + pattern: "projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}" + }; + + // Resource name. + string name = 1; + + // Human-meaningful name. + string display_name = 2; + + // A detailed description. + string description = 3; + + // Output only. Immutable. The revision ID of the deployment. + // A new revision is committed whenever the deployment contents are changed. + // The format is an 8-character hexadecimal string. + string revision_id = 4 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Creation timestamp; when the deployment resource was created. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Revision creation timestamp; when the represented revision was created. + google.protobuf.Timestamp revision_create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last update timestamp: when the represented revision was last modified. + google.protobuf.Timestamp revision_update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The full resource name (including revision ID) of the spec of the API being + // served by the deployment. Changes to this value will update the revision. + // Format: `apis/{api}/deployments/{deployment}` + string api_spec_revision = 8 [(google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + }]; + + // The address where the deployment is serving. Changes to this value will + // update the revision. + string endpoint_uri = 9; + + // The address of the external channel of the API (e.g., the Developer + // Portal). Changes to this value will not affect the revision. + string external_channel_uri = 10; + + // Text briefly identifying the intended audience of the API. Changes to this + // value will not affect the revision. + string intended_audience = 11; + + // Text briefly describing how to access the endpoint. Changes to this value + // will not affect the revision. + string access_guidance = 12; + + // Labels attach identifying metadata to resources. Identifying metadata can + // be used to filter list operations. + // + // 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 resource (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with + // `apigeeregistry.googleapis.com/` and cannot be changed. + map labels = 14; + + // Annotations attach non-identifying metadata to resources. + // + // Annotation keys and values are less restricted than those of labels, but + // should be generally used for small values of broad interest. Larger, topic- + // specific metadata should be stored in Artifacts. + map annotations = 15; +} + +// Artifacts of resources. Artifacts are unique (single-value) per resource +// and are used to store metadata that is too large or numerous to be stored +// directly on the resource. Since artifacts are stored separately from parent +// resources, they should generally be used for metadata that is needed +// infrequently, i.e., not for display in primary views of the resource but +// perhaps displayed or downloaded upon request. The `ListArtifacts` method +// allows artifacts to be quickly enumerated and checked for presence without +// downloading their (potentially-large) contents. +message Artifact { + option (google.api.resource) = { + type: "apigeeregistry.googleapis.com/Artifact" + pattern: "projects/{project}/locations/{location}/artifacts/{artifact}" + pattern: "projects/{project}/locations/{location}/apis/{api}/artifacts/{artifact}" + pattern: "projects/{project}/locations/{location}/apis/{api}/versions/{version}/artifacts/{artifact}" + pattern: "projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}/artifacts/{artifact}" + pattern: "projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}/artifacts/{artifact}" + }; + + // Resource name. + string name = 1; + + // Output only. Creation timestamp. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last update timestamp. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A content type specifier for the artifact. + // Content type specifiers are Media Types + // (https://en.wikipedia.org/wiki/Media_type) with a possible "schema" + // parameter that specifies a schema for the stored information. + // Content types can specify compression. Currently only GZip compression is + // supported (indicated with "+gzip"). + string mime_type = 4; + + // Output only. The size of the artifact in bytes. If the artifact is gzipped, this is + // the size of the uncompressed artifact. + int32 size_bytes = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A SHA-256 hash of the artifact's contents. If the artifact is gzipped, + // this is the hash of the uncompressed artifact. + string hash = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Input only. The contents of the artifact. + // Provided by API callers when artifacts are created or replaced. + // To access the contents of an artifact, use GetArtifactContents. + bytes contents = 7 [(google.api.field_behavior) = INPUT_ONLY]; +} diff --git a/google/cloud/apigeeregistry/v1/registry_service.proto b/google/cloud/apigeeregistry/v1/registry_service.proto new file mode 100644 index 000000000..1eec64e8b --- /dev/null +++ b/google/cloud/apigeeregistry/v1/registry_service.proto @@ -0,0 +1,1133 @@ +// 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.cloud.apigeeregistry.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/httpbody.proto"; +import "google/api/resource.proto"; +import "google/cloud/apigeeregistry/v1/registry_models.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.ApigeeRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/apigeeregistry/v1;apigeeregistry"; +option java_multiple_files = true; +option java_outer_classname = "RegistryServiceProto"; +option java_package = "com.google.cloud.apigeeregistry.v1"; +option php_namespace = "Google\\Cloud\\ApigeeRegistry\\V1"; +option ruby_package = "Google::Cloud::ApigeeRegistry::V1"; + +// The Registry service allows teams to manage descriptions of APIs. +service Registry { + option (google.api.default_host) = "apigeeregistry.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Returns matching APIs. + rpc ListApis(ListApisRequest) returns (ListApisResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/apis" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns a specified API. + rpc GetApi(GetApiRequest) returns (Api) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a specified API. + rpc CreateApi(CreateApiRequest) returns (Api) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/apis" + body: "api" + }; + option (google.api.method_signature) = "parent,api,api_id"; + } + + // Used to modify a specified API. + rpc UpdateApi(UpdateApiRequest) returns (Api) { + option (google.api.http) = { + patch: "/v1/{api.name=projects/*/locations/*/apis/*}" + body: "api" + }; + option (google.api.method_signature) = "api,update_mask"; + } + + // Removes a specified API and all of the resources that it + // owns. + rpc DeleteApi(DeleteApiRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns matching versions. + rpc ListApiVersions(ListApiVersionsRequest) returns (ListApiVersionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/apis/*}/versions" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns a specified version. + rpc GetApiVersion(GetApiVersionRequest) returns (ApiVersion) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a specified version. + rpc CreateApiVersion(CreateApiVersionRequest) returns (ApiVersion) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/apis/*}/versions" + body: "api_version" + }; + option (google.api.method_signature) = "parent,api_version,api_version_id"; + } + + // Used to modify a specified version. + rpc UpdateApiVersion(UpdateApiVersionRequest) returns (ApiVersion) { + option (google.api.http) = { + patch: "/v1/{api_version.name=projects/*/locations/*/apis/*/versions/*}" + body: "api_version" + }; + option (google.api.method_signature) = "api_version,update_mask"; + } + + // Removes a specified version and all of the resources that + // it owns. + rpc DeleteApiVersion(DeleteApiVersionRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*/versions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns matching specs. + rpc ListApiSpecs(ListApiSpecsRequest) returns (ListApiSpecsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns a specified spec. + rpc GetApiSpec(GetApiSpecRequest) returns (ApiSpec) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns the contents of a specified spec. + // If specs are stored with GZip compression, the default behavior + // is to return the spec uncompressed (the mime_type response field + // indicates the exact format returned). + rpc GetApiSpecContents(GetApiSpecContentsRequest) returns (google.api.HttpBody) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:getContents" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a specified spec. + rpc CreateApiSpec(CreateApiSpecRequest) returns (ApiSpec) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs" + body: "api_spec" + }; + option (google.api.method_signature) = "parent,api_spec,api_spec_id"; + } + + // Used to modify a specified spec. + rpc UpdateApiSpec(UpdateApiSpecRequest) returns (ApiSpec) { + option (google.api.http) = { + patch: "/v1/{api_spec.name=projects/*/locations/*/apis/*/versions/*/specs/*}" + body: "api_spec" + }; + option (google.api.method_signature) = "api_spec,update_mask"; + } + + // Removes a specified spec, all revisions, and all child + // resources (e.g., artifacts). + rpc DeleteApiSpec(DeleteApiSpecRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Adds a tag to a specified revision of a spec. + rpc TagApiSpecRevision(TagApiSpecRevisionRequest) returns (ApiSpec) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:tagRevision" + body: "*" + }; + } + + // Lists all revisions of a spec. + // Revisions are returned in descending order of revision creation time. + rpc ListApiSpecRevisions(ListApiSpecRevisionsRequest) returns (ListApiSpecRevisionsResponse) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:listRevisions" + }; + } + + // Sets the current revision to a specified prior revision. + // Note that this creates a new revision with a new revision ID. + rpc RollbackApiSpec(RollbackApiSpecRequest) returns (ApiSpec) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:rollback" + body: "*" + }; + } + + // Deletes a revision of a spec. + rpc DeleteApiSpecRevision(DeleteApiSpecRevisionRequest) returns (ApiSpec) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:deleteRevision" + }; + option (google.api.method_signature) = "name"; + } + + // Returns matching deployments. + rpc ListApiDeployments(ListApiDeploymentsRequest) returns (ListApiDeploymentsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/apis/*}/deployments" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns a specified deployment. + rpc GetApiDeployment(GetApiDeploymentRequest) returns (ApiDeployment) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/deployments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a specified deployment. + rpc CreateApiDeployment(CreateApiDeploymentRequest) returns (ApiDeployment) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/apis/*}/deployments" + body: "api_deployment" + }; + option (google.api.method_signature) = "parent,api_deployment,api_deployment_id"; + } + + // Used to modify a specified deployment. + rpc UpdateApiDeployment(UpdateApiDeploymentRequest) returns (ApiDeployment) { + option (google.api.http) = { + patch: "/v1/{api_deployment.name=projects/*/locations/*/apis/*/deployments/*}" + body: "api_deployment" + }; + option (google.api.method_signature) = "api_deployment,update_mask"; + } + + // Removes a specified deployment, all revisions, and all + // child resources (e.g., artifacts). + rpc DeleteApiDeployment(DeleteApiDeploymentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*/deployments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Adds a tag to a specified revision of a + // deployment. + rpc TagApiDeploymentRevision(TagApiDeploymentRevisionRequest) returns (ApiDeployment) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/apis/*/deployments/*}:tagRevision" + body: "*" + }; + } + + // Lists all revisions of a deployment. + // Revisions are returned in descending order of revision creation time. + rpc ListApiDeploymentRevisions(ListApiDeploymentRevisionsRequest) returns (ListApiDeploymentRevisionsResponse) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/deployments/*}:listRevisions" + }; + } + + // Sets the current revision to a specified prior + // revision. Note that this creates a new revision with a new revision ID. + rpc RollbackApiDeployment(RollbackApiDeploymentRequest) returns (ApiDeployment) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/apis/*/deployments/*}:rollback" + body: "*" + }; + } + + // Deletes a revision of a deployment. + rpc DeleteApiDeploymentRevision(DeleteApiDeploymentRevisionRequest) returns (ApiDeployment) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*/deployments/*}:deleteRevision" + }; + option (google.api.method_signature) = "name"; + } + + // Returns matching artifacts. + rpc ListArtifacts(ListArtifactsRequest) returns (ListArtifactsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/artifacts" + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/apis/*}/artifacts" + } + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/artifacts" + } + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/apis/*/versions/*/specs/*}/artifacts" + } + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/apis/*/deployments/*}/artifacts" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Returns a specified artifact. + rpc GetArtifact(GetArtifactRequest) returns (Artifact) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/artifacts/*}" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/apis/*/artifacts/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/artifacts/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/apis/*/deployments/*/artifacts/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Returns the contents of a specified artifact. + // If artifacts are stored with GZip compression, the default behavior + // is to return the artifact uncompressed (the mime_type response field + // indicates the exact format returned). + rpc GetArtifactContents(GetArtifactContentsRequest) returns (google.api.HttpBody) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/artifacts/*}:getContents" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/apis/*/artifacts/*}:getContents" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/artifacts/*}:getContents" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}:getContents" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/apis/*/deployments/*/artifacts/*}:getContents" + } + }; + option (google.api.method_signature) = "name"; + } + + // Creates a specified artifact. + rpc CreateArtifact(CreateArtifactRequest) returns (Artifact) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/artifacts" + body: "artifact" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/apis/*}/artifacts" + body: "artifact" + } + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/artifacts" + body: "artifact" + } + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/apis/*/versions/*/specs/*}/artifacts" + body: "artifact" + } + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/apis/*/deployments/*}/artifacts" + body: "artifact" + } + }; + option (google.api.method_signature) = "parent,artifact,artifact_id"; + } + + // Used to replace a specified artifact. + rpc ReplaceArtifact(ReplaceArtifactRequest) returns (Artifact) { + option (google.api.http) = { + put: "/v1/{artifact.name=projects/*/locations/*/artifacts/*}" + body: "artifact" + additional_bindings { + put: "/v1/{artifact.name=projects/*/locations/*/apis/*/artifacts/*}" + body: "artifact" + } + additional_bindings { + put: "/v1/{artifact.name=projects/*/locations/*/apis/*/versions/*/artifacts/*}" + body: "artifact" + } + additional_bindings { + put: "/v1/{artifact.name=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}" + body: "artifact" + } + additional_bindings { + put: "/v1/{artifact.name=projects/*/locations/*/apis/*/deployments/*/artifacts/*}" + body: "artifact" + } + }; + option (google.api.method_signature) = "artifact"; + } + + // Removes a specified artifact. + rpc DeleteArtifact(DeleteArtifactRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/artifacts/*}" + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/apis/*/artifacts/*}" + } + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/apis/*/versions/*/artifacts/*}" + } + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*/artifacts/*}" + } + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/apis/*/deployments/*/artifacts/*}" + } + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for ListApis. +message ListApisRequest { + // Required. The parent, which owns this collection of APIs. + // Format: `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/Api" + } + ]; + + // The maximum number of APIs to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListApis` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListApis` must match + // the call that provided the page token. + string page_token = 3; + + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields. + string filter = 4; +} + +// Response message for ListApis. +message ListApisResponse { + // The APIs from the specified publisher. + repeated Api apis = 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 GetApi. +message GetApiRequest { + // Required. The name of the API to retrieve. + // Format: `projects/*/locations/*/apis/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/Api" + } + ]; +} + +// Request message for CreateApi. +message CreateApiRequest { + // Required. The parent, which owns this collection of APIs. + // Format: `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/Api" + } + ]; + + // Required. The API to create. + Api api = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the API, which will become the final component of + // the API's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + // + // Following AIP-162, IDs must not have the form of a UUID. + string api_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateApi. +message UpdateApiRequest { + // Required. The API to update. + // + // The `name` field is used to identify the API to update. + // Format: `projects/*/locations/*/apis/*` + Api api = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. If omitted, all fields are updated that + // are set in the request message (fields set to default values are ignored). + // If an asterisk "*" is specified, all fields are updated, including fields + // that are unspecified/default in the request. + google.protobuf.FieldMask update_mask = 2; + + // If set to true, and the API is not found, a new API will be created. + // In this situation, `update_mask` is ignored. + bool allow_missing = 3; +} + +// Request message for DeleteApi. +message DeleteApiRequest { + // Required. The name of the API to delete. + // Format: `projects/*/locations/*/apis/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/Api" + } + ]; + + // If set to true, any child resources will also be deleted. + // (Otherwise, the request will only work if there are no child resources.) + bool force = 2; +} + +// Request message for ListApiVersions. +message ListApiVersionsRequest { + // Required. The parent, which owns this collection of versions. + // Format: `projects/*/locations/*/apis/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/ApiVersion" + } + ]; + + // The maximum number of versions to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListApiVersions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListApiVersions` must + // match the call that provided the page token. + string page_token = 3; + + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields. + string filter = 4; +} + +// Response message for ListApiVersions. +message ListApiVersionsResponse { + // The versions from the specified publisher. + repeated ApiVersion api_versions = 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 GetApiVersion. +message GetApiVersionRequest { + // Required. The name of the version to retrieve. + // Format: `projects/*/locations/*/apis/*/versions/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiVersion" + } + ]; +} + +// Request message for CreateApiVersion. +message CreateApiVersionRequest { + // Required. The parent, which owns this collection of versions. + // Format: `projects/*/locations/*/apis/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/ApiVersion" + } + ]; + + // Required. The version to create. + ApiVersion api_version = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the version, which will become the final component of + // the version's resource name. + // + // This value should be 1-63 characters, and valid characters + // are /[a-z][0-9]-/. + // + // Following AIP-162, IDs must not have the form of a UUID. + string api_version_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateApiVersion. +message UpdateApiVersionRequest { + // Required. The version to update. + // + // The `name` field is used to identify the version to update. + // Format: `projects/*/locations/*/apis/*/versions/*` + ApiVersion api_version = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. If omitted, all fields are updated that + // are set in the request message (fields set to default values are ignored). + // If an asterisk "*" is specified, all fields are updated, including fields + // that are unspecified/default in the request. + google.protobuf.FieldMask update_mask = 2; + + // If set to true, and the version is not found, a new version will be + // created. In this situation, `update_mask` is ignored. + bool allow_missing = 3; +} + +// Request message for DeleteApiVersion. +message DeleteApiVersionRequest { + // Required. The name of the version to delete. + // Format: `projects/*/locations/*/apis/*/versions/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiVersion" + } + ]; + + // If set to true, any child resources will also be deleted. + // (Otherwise, the request will only work if there are no child resources.) + bool force = 2; +} + +// Request message for ListApiSpecs. +message ListApiSpecsRequest { + // Required. The parent, which owns this collection of specs. + // Format: `projects/*/locations/*/apis/*/versions/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; + + // The maximum number of specs to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListApiSpecs` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListApiSpecs` must match + // the call that provided the page token. + string page_token = 3; + + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields except contents. + string filter = 4; +} + +// Response message for ListApiSpecs. +message ListApiSpecsResponse { + // The specs from the specified publisher. + repeated ApiSpec api_specs = 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 GetApiSpec. +message GetApiSpecRequest { + // Required. The name of the spec to retrieve. + // Format: `projects/*/locations/*/apis/*/versions/*/specs/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; +} + +// Request message for GetApiSpecContents. +message GetApiSpecContentsRequest { + // Required. The name of the spec whose contents should be retrieved. + // Format: `projects/*/locations/*/apis/*/versions/*/specs/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; +} + +// Request message for CreateApiSpec. +message CreateApiSpecRequest { + // Required. The parent, which owns this collection of specs. + // Format: `projects/*/locations/*/apis/*/versions/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; + + // Required. The spec to create. + ApiSpec api_spec = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the spec, which will become the final component of + // the spec's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + // + // Following AIP-162, IDs must not have the form of a UUID. + string api_spec_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateApiSpec. +message UpdateApiSpecRequest { + // Required. The spec to update. + // + // The `name` field is used to identify the spec to update. + // Format: `projects/*/locations/*/apis/*/versions/*/specs/*` + ApiSpec api_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. If omitted, all fields are updated that + // are set in the request message (fields set to default values are ignored). + // If an asterisk "*" is specified, all fields are updated, including fields + // that are unspecified/default in the request. + google.protobuf.FieldMask update_mask = 2; + + // If set to true, and the spec is not found, a new spec will be created. + // In this situation, `update_mask` is ignored. + bool allow_missing = 3; +} + +// Request message for DeleteApiSpec. +message DeleteApiSpecRequest { + // Required. The name of the spec to delete. + // Format: `projects/*/locations/*/apis/*/versions/*/specs/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; + + // If set to true, any child resources will also be deleted. + // (Otherwise, the request will only work if there are no child resources.) + bool force = 2; +} + +// Request message for TagApiSpecRevision. +message TagApiSpecRevisionRequest { + // Required. The name of the spec to be tagged, including the revision ID. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; + + // Required. The tag to apply. + // The tag should be at most 40 characters, and match `[a-z][a-z0-9-]{3,39}`. + string tag = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ListApiSpecRevisions. +message ListApiSpecRevisionsRequest { + // Required. The name of the spec to list revisions for. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; + + // The maximum number of revisions to return per page. + int32 page_size = 2; + + // The page token, received from a previous ListApiSpecRevisions call. + // Provide this to retrieve the subsequent page. + string page_token = 3; +} + +// Response message for ListApiSpecRevisionsResponse. +message ListApiSpecRevisionsResponse { + // The revisions of the spec. + repeated ApiSpec api_specs = 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 RollbackApiSpec. +message RollbackApiSpecRequest { + // Required. The spec being rolled back. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; + + // Required. The revision ID to roll back to. + // It must be a revision of the same spec. + // + // Example: `c7cfa2a8` + string revision_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteApiSpecRevision. +message DeleteApiSpecRevisionRequest { + // Required. The name of the spec revision to be deleted, + // with a revision ID explicitly included. + // + // Example: + // `projects/sample/locations/global/apis/petstore/versions/1.0.0/specs/openapi.yaml@c7cfa2a8` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiSpec" + } + ]; +} + +// Request message for ListApiDeployments. +message ListApiDeploymentsRequest { + // Required. The parent, which owns this collection of deployments. + // Format: `projects/*/locations/*/apis/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/ApiDeployment" + } + ]; + + // The maximum number of deployments to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListApiDeployments` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListApiDeployments` must + // match the call that provided the page token. + string page_token = 3; + + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields. + string filter = 4; +} + +// Response message for ListApiDeployments. +message ListApiDeploymentsResponse { + // The deployments from the specified publisher. + repeated ApiDeployment api_deployments = 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 GetApiDeployment. +message GetApiDeploymentRequest { + // Required. The name of the deployment to retrieve. + // Format: `projects/*/locations/*/apis/*/deployments/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiDeployment" + } + ]; +} + +// Request message for CreateApiDeployment. +message CreateApiDeploymentRequest { + // Required. The parent, which owns this collection of deployments. + // Format: `projects/*/locations/*/apis/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/ApiDeployment" + } + ]; + + // Required. The deployment to create. + ApiDeployment api_deployment = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the deployment, which will become the final component of + // the deployment's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + // + // Following AIP-162, IDs must not have the form of a UUID. + string api_deployment_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateApiDeployment. +message UpdateApiDeploymentRequest { + // Required. The deployment to update. + // + // The `name` field is used to identify the deployment to update. + // Format: `projects/*/locations/*/apis/*/deployments/*` + ApiDeployment api_deployment = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. If omitted, all fields are updated that + // are set in the request message (fields set to default values are ignored). + // If an asterisk "*" is specified, all fields are updated, including fields + // that are unspecified/default in the request. + google.protobuf.FieldMask update_mask = 2; + + // If set to true, and the deployment is not found, a new deployment will be + // created. In this situation, `update_mask` is ignored. + bool allow_missing = 3; +} + +// Request message for DeleteApiDeployment. +message DeleteApiDeploymentRequest { + // Required. The name of the deployment to delete. + // Format: `projects/*/locations/*/apis/*/deployments/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiDeployment" + } + ]; + + // If set to true, any child resources will also be deleted. + // (Otherwise, the request will only work if there are no child resources.) + bool force = 2; +} + +// Request message for TagApiDeploymentRevision. +message TagApiDeploymentRevisionRequest { + // Required. The name of the deployment to be tagged, including the revision ID. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiDeployment" + } + ]; + + // Required. The tag to apply. + // The tag should be at most 40 characters, and match `[a-z][a-z0-9-]{3,39}`. + string tag = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ListApiDeploymentRevisions. +message ListApiDeploymentRevisionsRequest { + // Required. The name of the deployment to list revisions for. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiDeployment" + } + ]; + + // The maximum number of revisions to return per page. + int32 page_size = 2; + + // The page token, received from a previous ListApiDeploymentRevisions call. + // Provide this to retrieve the subsequent page. + string page_token = 3; +} + +// Response message for ListApiDeploymentRevisionsResponse. +message ListApiDeploymentRevisionsResponse { + // The revisions of the deployment. + repeated ApiDeployment api_deployments = 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 RollbackApiDeployment. +message RollbackApiDeploymentRequest { + // Required. The deployment being rolled back. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiDeployment" + } + ]; + + // Required. The revision ID to roll back to. + // It must be a revision of the same deployment. + // + // Example: `c7cfa2a8` + string revision_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteApiDeploymentRevision. +message DeleteApiDeploymentRevisionRequest { + // Required. The name of the deployment revision to be deleted, + // with a revision ID explicitly included. + // + // Example: + // `projects/sample/locations/global/apis/petstore/deployments/prod@c7cfa2a8` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/ApiDeployment" + } + ]; +} + +// Request message for ListArtifacts. +message ListArtifactsRequest { + // Required. The parent, which owns this collection of artifacts. + // Format: `{parent}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/Artifact" + } + ]; + + // The maximum number of artifacts to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListArtifacts` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListArtifacts` must + // match the call that provided the page token. + string page_token = 3; + + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields except contents. + string filter = 4; +} + +// Response message for ListArtifacts. +message ListArtifactsResponse { + // The artifacts from the specified publisher. + repeated Artifact artifacts = 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 GetArtifact. +message GetArtifactRequest { + // Required. The name of the artifact to retrieve. + // Format: `{parent}/artifacts/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/Artifact" + } + ]; +} + +// Request message for GetArtifactContents. +message GetArtifactContentsRequest { + // Required. The name of the artifact whose contents should be retrieved. + // Format: `{parent}/artifacts/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/Artifact" + } + ]; +} + +// Request message for CreateArtifact. +message CreateArtifactRequest { + // Required. The parent, which owns this collection of artifacts. + // Format: `{parent}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apigeeregistry.googleapis.com/Artifact" + } + ]; + + // Required. The artifact to create. + Artifact artifact = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the artifact, which will become the final component of + // the artifact's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + // + // Following AIP-162, IDs must not have the form of a UUID. + string artifact_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ReplaceArtifact. +message ReplaceArtifactRequest { + // Required. The artifact to replace. + // + // The `name` field is used to identify the artifact to replace. + // Format: `{parent}/artifacts/*` + Artifact artifact = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteArtifact. +message DeleteArtifactRequest { + // Required. The name of the artifact to delete. + // Format: `{parent}/artifacts/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apigeeregistry.googleapis.com/Artifact" + } + ]; +} diff --git a/google/cloud/asset/asset_v1beta1.yaml b/google/cloud/asset/asset_v1beta1.yaml deleted file mode 100644 index d1edc78b9..000000000 --- a/google/cloud/asset/asset_v1beta1.yaml +++ /dev/null @@ -1,56 +0,0 @@ -type: google.api.Service -config_version: 3 -name: cloudasset.googleapis.com -title: Cloud Asset API - -apis: -- name: google.cloud.asset.v1beta1.AssetService - -documentation: - summary: The cloud asset API manages the history and inventory of cloud resources. - overview: |- - # Cloud Asset API - - The Cloud Asset API keeps a history of Google Cloud Platform (GCP) asset - metadata, and allows GCP users to download a dump of all asset metadata for - the resource types listed below within an organization or a project at a - given timestamp. - - Read more documents here: - https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/overview - -backend: - rules: - - selector: google.longrunning.Operations.GetOperation - deadline: 60.0 - - selector: google.cloud.asset.v1beta1.AssetService.ExportAssets - deadline: 600.0 - - selector: google.cloud.asset.v1beta1.AssetService.BatchGetAssetsHistory - deadline: 600.0 - -http: - rules: - - selector: google.longrunning.Operations.GetOperation - get: '/v1alpha1/{name=projects/*/operations/*/*}' - additional_bindings: - - get: '/v1alpha1/{name=organizations/*/operations/*/*}' - - - get: '/v1alpha2/{name=projects/*/operations/*/*}' - - - get: '/v1alpha2/{name=organizations/*/operations/*/*}' - - - get: '/v1beta1/{name=projects/*/operations/*/*}' - - - get: '/v1beta1/{name=folders/*/operations/*/*}' - - - get: '/v1beta1/{name=organizations/*/operations/*/*}' - - - get: '/v1/{name=*/*/operations/*/*}' - - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/asset/asset_v1p2beta1.yaml b/google/cloud/asset/asset_v1p2beta1.yaml deleted file mode 100644 index 3d218a365..000000000 --- a/google/cloud/asset/asset_v1p2beta1.yaml +++ /dev/null @@ -1,38 +0,0 @@ -type: google.api.Service -config_version: 3 -name: cloudasset.googleapis.com -title: Cloud Asset API - -apis: -- name: google.cloud.asset.v1p2beta1.AssetService - -documentation: - summary: The cloud asset API manages the history and inventory of cloud resources. - overview: |- - # Cloud Asset API - - The Cloud Asset API keeps a history of Google Cloud Platform (GCP) asset - metadata, and allows GCP users to download a dump of all asset metadata - for the resource types listed below within an organization or a project at - a given timestamp. - - Read more documents here: - https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/overview - -backend: - rules: - - selector: 'google.cloud.asset.v1p2beta1.AssetService.*' - deadline: 600.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 60.0 - -authentication: - rules: - - selector: 'google.cloud.asset.v1p2beta1.AssetService.*' - 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 diff --git a/google/cloud/asset/v1/BUILD.bazel b/google/cloud/asset/v1/BUILD.bazel index da4fd1b76..74a1a28c9 100644 --- a/google/cloud/asset/v1/BUILD.bazel +++ b/google/cloud/asset/v1/BUILD.bazel @@ -26,6 +26,7 @@ proto_library( "//google/identity/accesscontextmanager/v1:accesscontextmanager_proto", "//google/longrunning:operations_proto", "//google/rpc:code_proto", + "//google/rpc:status_proto", "//google/type:expr_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:duration_proto", @@ -33,7 +34,6 @@ proto_library( "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", - "//google/rpc:status_proto" ], ) @@ -76,6 +76,7 @@ java_gapic_library( ":asset_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":asset_java_proto", "//google/iam/v1:iam_java_proto", @@ -85,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "asset_java_gapic_test_suite", test_classes = [ + "com.google.cloud.asset.v1.AssetServiceClientHttpJsonTest", "com.google.cloud.asset.v1.AssetServiceClientTest", ], runtime_deps = [":asset_java_gapic_test"], @@ -93,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-asset-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":asset_java_gapic", ":asset_java_grpc", @@ -125,8 +129,8 @@ go_proto_library( "//google/identity/accesscontextmanager/v1:accesscontextmanager_go_proto", "//google/longrunning:longrunning_go_proto", "//google/rpc:code_go_proto", + "//google/rpc:status_go_proto", "//google/type:expr_go_proto", - "//google/rpc:status_go_proto" ], ) @@ -136,6 +140,7 @@ go_gapic_library( grpc_service_config = "cloudasset_grpc_service_config.json", importpath = "cloud.google.com/go/asset/apiv1;asset", service_yaml = "cloudasset_v1.yaml", + transport = "grpc+rest", deps = [ ":asset_go_proto", "//google/iam/v1:iam_go_proto", @@ -172,12 +177,23 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "asset_py_gapic", srcs = [":asset_proto"], grpc_service_config = "cloudasset_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/cloud/orgpolicy/v1:orgpolicy_py_original_proto", + "//google/cloud/osconfig/v1:osconfig_py_proto", + "//google/iam/v1:policy_py_proto", + "//google/identity/accesscontextmanager/v1:access_level_py_proto", + "//google/identity/accesscontextmanager/v1:access_policy_py_proto", + "//google/identity/accesscontextmanager/v1:accesscontextmanager_py_gapic", + "//google/identity/accesscontextmanager/v1:service_perimeter_py_proto", + ], ) py_gapic_assembly_pkg( @@ -187,6 +203,16 @@ py_gapic_assembly_pkg( ], ) +py_test( + name = "asset_py_gapic_test", + srcs = [ + "asset_py_gapic_pytest.py", + "asset_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":asset_py_gapic"], +) + ############################################################################## # PHP ############################################################################## @@ -341,6 +367,7 @@ csharp_gapic_library( srcs = [":asset_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudasset_grpc_service_config.json", + service_yaml = "cloudasset_v1.yaml", deps = [ ":asset_csharp_grpc", ":asset_csharp_proto", diff --git a/google/cloud/asset/v1/asset_service.proto b/google/cloud/asset/v1/asset_service.proto index 80a3da247..1c3432729 100644 --- a/google/cloud/asset/v1/asset_service.proto +++ b/google/cloud/asset/v1/asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/asset/v1/assets.proto"; +import "google/iam/v1/policy.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; @@ -40,18 +41,20 @@ option php_namespace = "Google\\Cloud\\Asset\\V1"; // Asset service definition. service AssetService { option (google.api.default_host) = "cloudasset.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"; // Exports assets with time and resource types to a given Cloud Storage // location/BigQuery table. For Cloud Storage location destinations, the // output format is newline-delimited JSON. Each line represents a - // [google.cloud.asset.v1.Asset][google.cloud.asset.v1.Asset] in the JSON format; for BigQuery table - // destinations, the output table stores the fields in asset proto as columns. - // This API implements the [google.longrunning.Operation][google.longrunning.Operation] API - // , which allows you to keep track of the export. We recommend intervals of - // at least 2 seconds with exponential retry to poll the export operation - // result. For regular-size resource parent, the export operation usually - // finishes within 5 minutes. + // [google.cloud.asset.v1.Asset][google.cloud.asset.v1.Asset] in the JSON + // format; for BigQuery table destinations, the output table stores the fields + // in asset Protobuf as columns. This API implements the + // [google.longrunning.Operation][google.longrunning.Operation] API, which + // allows you to keep track of the export. We recommend intervals of at least + // 2 seconds with exponential retry to poll the export operation result. For + // regular-size resource parent, the export operation usually finishes within + // 5 minutes. rpc ExportAssets(ExportAssetsRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=*/*}:exportAssets" @@ -79,7 +82,8 @@ service AssetService { // deleted status. // If a specified asset does not exist, this API returns an INVALID_ARGUMENT // error. - rpc BatchGetAssetsHistory(BatchGetAssetsHistoryRequest) returns (BatchGetAssetsHistoryResponse) { + rpc BatchGetAssetsHistory(BatchGetAssetsHistoryRequest) + returns (BatchGetAssetsHistoryResponse) { option (google.api.http) = { get: "/v1/{parent=*/*}:batchGetAssetsHistory" }; @@ -132,7 +136,8 @@ service AssetService { // folder, or organization. The caller must be granted the // `cloudasset.assets.searchAllResources` permission on the desired scope, // otherwise the request will be rejected. - rpc SearchAllResources(SearchAllResourcesRequest) returns (SearchAllResourcesResponse) { + rpc SearchAllResources(SearchAllResourcesRequest) + returns (SearchAllResourcesResponse) { option (google.api.http) = { get: "/v1/{scope=*/*}:searchAllResources" }; @@ -143,7 +148,8 @@ service AssetService { // folder, or organization. The caller must be granted the // `cloudasset.assets.searchAllIamPolicies` permission on the desired scope, // otherwise the request will be rejected. - rpc SearchAllIamPolicies(SearchAllIamPoliciesRequest) returns (SearchAllIamPoliciesResponse) { + rpc SearchAllIamPolicies(SearchAllIamPoliciesRequest) + returns (SearchAllIamPoliciesResponse) { option (google.api.http) = { get: "/v1/{scope=*/*}:searchAllIamPolicies" }; @@ -152,7 +158,8 @@ service AssetService { // Analyzes IAM policies to answer which identities have what accesses on // which resources. - rpc AnalyzeIamPolicy(AnalyzeIamPolicyRequest) returns (AnalyzeIamPolicyResponse) { + rpc AnalyzeIamPolicy(AnalyzeIamPolicyRequest) + returns (AnalyzeIamPolicyResponse) { option (google.api.http) = { get: "/v1/{analysis_query.scope=*/*}:analyzeIamPolicy" }; @@ -162,12 +169,14 @@ service AssetService { // accesses on which resources, and writes the analysis results to a Google // Cloud Storage or a BigQuery destination. For Cloud Storage destination, the // output format is the JSON format that represents a - // [AnalyzeIamPolicyResponse][google.cloud.asset.v1.AnalyzeIamPolicyResponse]. This method implements the - // [google.longrunning.Operation][google.longrunning.Operation], which allows you to track the operation - // status. We recommend intervals of at least 2 seconds with exponential - // backoff retry to poll the operation result. The metadata contains the - // metadata for the long-running operation. - rpc AnalyzeIamPolicyLongrunning(AnalyzeIamPolicyLongrunningRequest) returns (google.longrunning.Operation) { + // [AnalyzeIamPolicyResponse][google.cloud.asset.v1.AnalyzeIamPolicyResponse]. + // This method implements the + // [google.longrunning.Operation][google.longrunning.Operation], which allows + // you to track the operation status. We recommend intervals of at least 2 + // seconds with exponential backoff retry to poll the operation result. The + // metadata contains the metadata for the long-running operation. + rpc AnalyzeIamPolicyLongrunning(AnalyzeIamPolicyLongrunningRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{analysis_query.scope=*/*}:analyzeIamPolicyLongrunning" body: "*" @@ -188,13 +197,87 @@ service AssetService { get: "/v1/{resource=*/*}:analyzeMove" }; } + + // Issue a job that queries assets using a SQL statement compatible with + // [BigQuery Standard + // SQL](http://cloud/bigquery/docs/reference/standard-sql/enabling-standard-sql). + // + // If the query execution finishes within timeout and there's no pagination, + // the full query results will be returned in the `QueryAssetsResponse`. + // + // Otherwise, full query results can be obtained by issuing extra requests + // with the `job_reference` from the a previous `QueryAssets` call. + // + // Note, the query result has approximately 10 GB limitation enforced by + // BigQuery + // https://cloud.google.com/bigquery/docs/best-practices-performance-output, + // queries return larger results will result in errors. + rpc QueryAssets(QueryAssetsRequest) returns (QueryAssetsResponse) { + option (google.api.http) = { + post: "/v1/{parent=*/*}:queryAssets" + body: "*" + }; + } + + // Creates a saved query in a parent project/folder/organization. + rpc CreateSavedQuery(CreateSavedQueryRequest) returns (SavedQuery) { + option (google.api.http) = { + post: "/v1/{parent=*/*}/savedQueries" + body: "saved_query" + }; + option (google.api.method_signature) = "parent,saved_query,saved_query_id"; + } + + // Gets details about a saved query. + rpc GetSavedQuery(GetSavedQueryRequest) returns (SavedQuery) { + option (google.api.http) = { + get: "/v1/{name=*/*/savedQueries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all saved queries in a parent project/folder/organization. + rpc ListSavedQueries(ListSavedQueriesRequest) + returns (ListSavedQueriesResponse) { + option (google.api.http) = { + get: "/v1/{parent=*/*}/savedQueries" + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a saved query. + rpc UpdateSavedQuery(UpdateSavedQueryRequest) returns (SavedQuery) { + option (google.api.http) = { + patch: "/v1/{saved_query.name=*/*/savedQueries/*}" + body: "saved_query" + }; + option (google.api.method_signature) = "saved_query,update_mask"; + } + + // Deletes a saved query. + rpc DeleteSavedQuery(DeleteSavedQueryRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=*/*/savedQueries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets effective IAM policies for a batch of resources. + rpc BatchGetEffectiveIamPolicies(BatchGetEffectiveIamPoliciesRequest) + returns (BatchGetEffectiveIamPoliciesResponse) { + option (google.api.http) = { + get: "/v1/{scope=*/*}/effectiveIamPolicies:batchGet" + }; + } } // Represents the metadata of the longrunning operation for the // AnalyzeIamPolicyLongrunning rpc. message AnalyzeIamPolicyLongrunningMetadata { // Output only. The time the operation was created. - google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Export asset request. @@ -241,7 +324,8 @@ message ExportAssetsRequest { // returned. ContentType content_type = 4; - // Required. Output configuration indicating where the results will be output to. + // Required. Output configuration indicating where the results will be output + // to. OutputConfig output_config = 5 [(google.api.field_behavior) = REQUIRED]; // A list of relationship types to export, for example: @@ -263,8 +347,10 @@ message ExportAssetsRequest { } // The export asset response. This message is returned by the -// [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation] method in the returned -// [google.longrunning.Operation.response][google.longrunning.Operation.response] field. +// [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation] +// method in the returned +// [google.longrunning.Operation.response][google.longrunning.Operation.response] +// field. message ExportAssetsResponse { // Time the snapshot was taken. google.protobuf.Timestamp read_time = 1; @@ -282,10 +368,11 @@ message ExportAssetsResponse { // ListAssets request. message ListAssetsRequest { - // Required. Name of the organization or project the assets belong to. Format: - // "organizations/[organization-number]" (such as "organizations/123"), - // "projects/[project-id]" (such as "projects/my-project-id"), or - // "projects/[project-number]" (such as "projects/12345"). + // Required. Name of the organization, folder, or project the assets belong + // to. Format: "organizations/[organization-number]" (such as + // "organizations/123"), "projects/[project-id]" (such as + // "projects/my-project-id"), "projects/[project-number]" (such as + // "projects/12345"), or "folders/[folder-number]" (such as "folders/12345"). string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -414,7 +501,8 @@ message BatchGetAssetsHistoryRequest { // See [Introduction to Cloud Asset // Inventory](https://cloud.google.com/asset-inventory/docs/overview) for all // supported asset types and relationship types. - repeated string relationship_types = 5 [(google.api.field_behavior) = OPTIONAL]; + repeated string relationship_types = 5 + [(google.api.field_behavior) = OPTIONAL]; } // Batch get assets history response. @@ -436,9 +524,8 @@ message CreateFeedRequest { // be unique under a specific parent project/folder/organization. string feed_id = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. The feed details. The field `name` must be empty and it will be generated - // in the format of: - // projects/project_number/feeds/feed_id + // Required. The feed details. The field `name` must be empty and it will be + // generated in the format of: projects/project_number/feeds/feed_id // folders/folder_number/feeds/feed_id // organizations/organization_number/feeds/feed_id Feed feed = 3 [(google.api.field_behavior) = REQUIRED]; @@ -452,9 +539,7 @@ message GetFeedRequest { // organizations/organization_number/feeds/feed_id string name = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudasset.googleapis.com/Feed" - } + (google.api.resource_reference) = { type: "cloudasset.googleapis.com/Feed" } ]; } @@ -473,8 +558,8 @@ message ListFeedsResponse { // Update asset feed request. message UpdateFeedRequest { - // Required. The new values of feed details. It must match an existing feed and the - // field `name` must be in the format of: + // Required. The new values of feed details. It must match an existing feed + // and the field `name` must be in the format of: // projects/project_number/feeds/feed_id or // folders/folder_number/feeds/feed_id or // organizations/organization_number/feeds/feed_id. @@ -483,7 +568,8 @@ message UpdateFeedRequest { // Required. Only updates the `feed` fields indicated by this mask. // The field mask must not be empty, and it must not contain fields that // are immutable or only set by the server. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; } message DeleteFeedRequest { @@ -493,9 +579,7 @@ message DeleteFeedRequest { // organizations/organization_number/feeds/feed_id string name = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudasset.googleapis.com/Feed" - } + (google.api.resource_reference) = { type: "cloudasset.googleapis.com/Feed" } ]; } @@ -507,7 +591,7 @@ message OutputConfig { GcsDestination gcs_destination = 1; // Destination on BigQuery. The output table stores the fields in asset - // proto as columns in BigQuery. + // Protobuf as columns in BigQuery. BigQueryDestination bigquery_destination = 2; } } @@ -561,7 +645,11 @@ message BigQueryDestination { // Required. The BigQuery dataset in format // "projects/projectId/datasets/datasetId", to which the snapshot result // should be exported. If this dataset does not exist, the export call returns - // an INVALID_ARGUMENT error. + // an INVALID_ARGUMENT error. Setting the `contentType` for `exportAssets` + // determines the + // [schema](/asset-inventory/docs/exporting-to-bigquery#bigquery-schema) + // of the BigQuery table. Setting `separateTablesPerAssetType` to `TRUE` also + // influences the schema. string dataset = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The BigQuery table to which the snapshot result should be @@ -697,9 +785,8 @@ message Feed { // specified asset_names or asset_types are exported to the feed. // Example: // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. - // See [Resource - // Names](https://cloud.google.com/apis/design/resource_names#full_resource_name) - // for more info. + // For a list of the full names for supported asset types, see [Resource + // name format](/asset-inventory/docs/resource-name-format). repeated string asset_names = 2; // A list of types of the assets to receive updates. You must specify either @@ -707,9 +794,8 @@ message Feed { // specified asset_names or asset_types are exported to the feed. // Example: `"compute.googleapis.com/Disk"` // - // See [this - // topic](https://cloud.google.com/asset-inventory/docs/supported-asset-types) - // for a list of all supported asset types. + // For a list of all supported asset types, see + // [Supported asset types](/asset-inventory/docs/supported-asset-types). repeated string asset_types = 3; // Asset content type. If not specified, no content but the asset name and @@ -718,7 +804,8 @@ message Feed { // Required. Feed output configuration defining where the asset updates are // published to. - FeedOutputConfig feed_output_config = 5 [(google.api.field_behavior) = REQUIRED]; + FeedOutputConfig feed_output_config = 5 + [(google.api.field_behavior) = REQUIRED]; // A condition which determines whether an asset update should be published. // If specified, an asset will be returned only when the expression evaluates @@ -755,8 +842,9 @@ message Feed { // Search all resources request. message SearchAllResourcesRequest { - // Required. A scope can be a project, a folder, or an organization. The search is - // limited to the resources within the `scope`. The caller must be granted the + // Required. A scope can be a project, a folder, or an organization. The + // search is limited to the resources within the `scope`. The caller must be + // granted the // [`cloudasset.assets.searchAllResources`](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions) // permission on the desired scope. // @@ -790,6 +878,14 @@ message SearchAllResourcesRequest { // * `labels.env:*` to find Cloud resources that have a label "env". // * `kmsKey:key` to find Cloud resources encrypted with a customer-managed // encryption key whose name contains the word "key". + // * `relationships:instance-group-1` to find Cloud resources that have + // relationships with "instance-group-1" in the related resource name. + // * `relationships:INSTANCE_TO_INSTANCEGROUP` to find compute instances that + // have relationships of type "INSTANCE_TO_INSTANCEGROUP". + // * `relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1` to find + // compute instances that have relationships with "instance-group-1" in the + // compute instance group resource name, for relationship type + // "INSTANCE_TO_INSTANCEGROUP". // * `state:ACTIVE` to find Cloud resources whose state contains "ACTIVE" as a // word. // * `NOT state:ACTIVE` to find Cloud resources whose state doesn't contain @@ -810,8 +906,8 @@ message SearchAllResourcesRequest { // location. string query = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A list of asset types that this request searches for. If empty, it will - // search all the [searchable asset + // Optional. A list of asset types that this request searches for. If empty, + // it will search all the [searchable asset // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). // // Regular expressions are also supported. For example: @@ -826,21 +922,22 @@ message SearchAllResourcesRequest { // supported asset type, an INVALID_ARGUMENT error will be returned. repeated string asset_types = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The page size for search result pagination. Page size is capped at 500 even - // if a larger value is given. If set to zero, server will pick an appropriate - // default. Returned results may be fewer than requested. When this happens, - // there could be more results as long as `next_page_token` is returned. + // Optional. The page size for search result pagination. Page size is capped + // at 500 even if a larger value is given. If set to zero, server will pick an + // appropriate default. Returned results may be fewer than requested. When + // this happens, there could be more results as long as `next_page_token` is + // returned. int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If present, then retrieve the next batch of results from the preceding call - // to this method. `page_token` must be the value of `next_page_token` from - // the previous response. The values of all other method parameters, must be - // identical to those in the previous call. + // Optional. If present, then retrieve the next batch of results from the + // preceding call to this method. `page_token` must be the value of + // `next_page_token` from the previous response. The values of all other + // method parameters, must be identical to those in the previous call. string page_token = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A comma-separated list of fields specifying the sorting order of the - // results. The default order is ascending. Add " DESC" after the field name - // to indicate descending order. Redundant space characters are ignored. + // Optional. A comma-separated list of fields specifying the sorting order of + // the results. The default order is ascending. Add " DESC" after the field + // name to indicate descending order. Redundant space characters are ignored. // Example: "location DESC, name". // Only singular primitive fields in the response are sortable: // @@ -862,10 +959,10 @@ message SearchAllResourcesRequest { // are not supported. string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A comma-separated list of fields specifying which fields to be returned in - // ResourceSearchResult. Only '*' or combination of top level fields can be - // specified. Field names of both snake_case and camelCase are supported. - // Examples: `"*"`, `"name,location"`, `"name,versionedResources"`. + // Optional. A comma-separated list of fields specifying which fields to be + // returned in ResourceSearchResult. Only '*' or combination of top level + // fields can be specified. Field names of both snake_case and camelCase are + // supported. Examples: `"*"`, `"name,location"`, `"name,versionedResources"`. // // The read_mask paths must be valid field paths listed but not limited to // (both snake_case and camelCase are supported): @@ -876,6 +973,9 @@ message SearchAllResourcesRequest { // * displayName // * description // * location + // * tagKeys + // * tagValues + // * tagValueIds // * labels // * networkTags // * kmsKey @@ -890,7 +990,8 @@ message SearchAllResourcesRequest { // If only '*' is specified, all fields including versionedResources will be // returned. // Any invalid field path will trigger INVALID_ARGUMENT error. - google.protobuf.FieldMask read_mask = 8 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.FieldMask read_mask = 8 + [(google.api.field_behavior) = OPTIONAL]; } // Search all resources response. @@ -907,9 +1008,9 @@ message SearchAllResourcesResponse { // Search all IAM policies request. message SearchAllIamPoliciesRequest { - // Required. A scope can be a project, a folder, or an organization. The search is - // limited to the IAM policies within the `scope`. The caller must be granted - // the + // Required. A scope can be a project, a folder, or an organization. The + // search is limited to the IAM policies within the `scope`. The caller must + // be granted the // [`cloudasset.assets.searchAllIamPolicies`](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions) // permission on the desired scope. // @@ -925,11 +1026,11 @@ message SearchAllIamPoliciesRequest { // query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_construct_a_query) // for more information. If not specified or empty, it will search all the // IAM policies within the specified `scope`. Note that the query string is - // compared against each Cloud IAM policy binding, including its members, + // compared against each Cloud IAM policy binding, including its principals, // roles, and Cloud IAM conditions. The returned Cloud IAM policies will only // contain the bindings that match your query. To learn more about the IAM - // policy structure, see [IAM policy - // doc](https://cloud.google.com/iam/docs/policies#structure). + // policy structure, see the [IAM policy + // documentation](https://cloud.google.com/iam/help/allow-policies/structure). // // Examples: // @@ -961,24 +1062,26 @@ message SearchAllIamPoliciesRequest { // "instance2" and also specify user "amy". // * `roles:roles/compute.admin` to find IAM policy bindings that specify the // Compute Admin role. - // * `memberTypes:user` to find IAM policy bindings that contain the "user" - // member type. + // * `memberTypes:user` to find IAM policy bindings that contain the + // principal type "user". string query = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The page size for search result pagination. Page size is capped at 500 even - // if a larger value is given. If set to zero, server will pick an appropriate - // default. Returned results may be fewer than requested. When this happens, - // there could be more results as long as `next_page_token` is returned. + // Optional. The page size for search result pagination. Page size is capped + // at 500 even if a larger value is given. If set to zero, server will pick an + // appropriate default. Returned results may be fewer than requested. When + // this happens, there could be more results as long as `next_page_token` is + // returned. int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If present, retrieve the next batch of results from the preceding call to - // this method. `page_token` must be the value of `next_page_token` from the - // previous response. The values of all other method parameters must be - // identical to those in the previous call. + // Optional. If present, retrieve the next batch of results from the preceding + // call to this method. `page_token` must be the value of `next_page_token` + // from the previous response. The values of all other method parameters must + // be identical to those in the previous call. string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A list of asset types that the IAM policies are attached to. If empty, it - // will search the IAM policies that are attached to all the [searchable asset + // Optional. A list of asset types that the IAM policies are attached to. If + // empty, it will search the IAM policies that are attached to all the + // [searchable asset // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). // // Regular expressions are also supported. For example: @@ -995,9 +1098,9 @@ message SearchAllIamPoliciesRequest { // supported asset type, an INVALID_ARGUMENT error will be returned. repeated string asset_types = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A comma-separated list of fields specifying the sorting order of the - // results. The default order is ascending. Add " DESC" after the field name - // to indicate descending order. Redundant space characters are ignored. + // Optional. A comma-separated list of fields specifying the sorting order of + // the results. The default order is ascending. Add " DESC" after the field + // name to indicate descending order. Redundant space characters are ignored. // Example: "assetType DESC, resource". // Only singular primitive fields in the response are sortable: // * resource @@ -1020,7 +1123,7 @@ message SearchAllIamPoliciesResponse { string next_page_token = 2; } -// ## IAM policy analysis query message. +// IAM policy analysis query message. message IamPolicyAnalysisQuery { // Specifies the resource to analyze for access policies, which may be set // directly on the resource, or on ancestors such as organizations, folders or @@ -1037,7 +1140,7 @@ message IamPolicyAnalysisQuery { // roles assigned either directly to them or to the groups they belong to, // directly or indirectly. message IdentitySelector { - // Required. The identity appear in the form of members in + // Required. The identity appear in the form of principals in // [IAM policy // binding](https://cloud.google.com/iam/reference/rest/v1/Binding). // @@ -1070,9 +1173,13 @@ message IamPolicyAnalysisQuery { // Optional. If true, the identities section of the result will expand any // Google groups appearing in an IAM policy binding. // - // If [IamPolicyAnalysisQuery.identity_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.identity_selector] is specified, the - // identity in the result will be determined by the selector, and this flag - // is not allowed to set. + // If + // [IamPolicyAnalysisQuery.identity_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.identity_selector] + // is specified, the identity in the result will be determined by the + // selector, and this flag is not allowed to set. + // + // If true, the default max expansion per group is 1000 for + // AssetService.AnalyzeIamPolicy][]. // // Default is false. bool expand_groups = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -1080,51 +1187,58 @@ message IamPolicyAnalysisQuery { // Optional. If true, the access section of result will expand any roles // appearing in IAM policy bindings to include their permissions. // - // If [IamPolicyAnalysisQuery.access_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.access_selector] is specified, the access - // section of the result will be determined by the selector, and this flag - // is not allowed to set. + // If + // [IamPolicyAnalysisQuery.access_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.access_selector] + // is specified, the access section of the result will be determined by the + // selector, and this flag is not allowed to set. // // Default is false. bool expand_roles = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If true and [IamPolicyAnalysisQuery.resource_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.resource_selector] is not - // specified, the resource section of the result will expand any resource - // attached to an IAM policy to include resources lower in the resource - // hierarchy. + // Optional. If true and + // [IamPolicyAnalysisQuery.resource_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.resource_selector] + // is not specified, the resource section of the result will expand any + // resource attached to an IAM policy to include resources lower in the + // resource hierarchy. // // For example, if the request analyzes for which resources user A has // permission P, and the results include an IAM policy with P on a GCP // folder, the results will also include resources in that folder with // permission P. // - // If true and [IamPolicyAnalysisQuery.resource_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.resource_selector] is specified, - // the resource section of the result will expand the specified resource to - // include resources lower in the resource hierarchy. Only project or - // lower resources are supported. Folder and organization resource cannot be - // used together with this option. + // If true and + // [IamPolicyAnalysisQuery.resource_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.resource_selector] + // is specified, the resource section of the result will expand the + // specified resource to include resources lower in the resource hierarchy. + // Only project or lower resources are supported. Folder and organization + // resource cannot be used together with this option. // // For example, if the request analyzes for which users have permission P on // a GCP project with this option enabled, the results will include all // users who have permission P on that project or any lower resource. // + // If true, the default max expansion per resource is 1000 for + // AssetService.AnalyzeIamPolicy][] and 100000 for + // AssetService.AnalyzeIamPolicyLongrunning][]. + // // Default is false. bool expand_resources = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If true, the result will output resource edges, starting - // from the policy attached resource, to any expanded resources. - // Default is false. + // Optional. If true, the result will output the relevant parent/child + // relationships between resources. Default is false. bool output_resource_edges = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If true, the result will output group identity edges, starting - // from the binding's group members, to any expanded identities. - // Default is false. + // Optional. If true, the result will output the relevant membership + // relationships between groups and other groups, and between groups and + // principals. Default is false. bool output_group_edges = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If true, the response will include access analysis from identities to - // resources via service account impersonation. This is a very expensive - // operation, because many derived queries will be executed. We highly - // recommend you use [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning] rpc - // instead. + // Optional. If true, the response will include access analysis from + // identities to resources via service account impersonation. This is a very + // expensive operation, because many derived queries will be executed. We + // highly recommend you use + // [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning] + // rpc instead. // // For example, if the request analyzes for which resources user A has // permission P, and there's an IAM policy states user A has @@ -1142,8 +1256,18 @@ message IamPolicyAnalysisQuery { // F. And those advanced analysis results will be included in // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. // + // Only the following permissions are considered in this analysis: + // + // * `iam.serviceAccounts.actAs` + // * `iam.serviceAccounts.signBlob` + // * `iam.serviceAccounts.signJwt` + // * `iam.serviceAccounts.getAccessToken` + // * `iam.serviceAccounts.getOpenIdToken` + // * `iam.serviceAccounts.implicitDelegation` + // // Default is false. - bool analyze_service_account_impersonation = 6 [(google.api.field_behavior) = OPTIONAL]; + bool analyze_service_account_impersonation = 6 + [(google.api.field_behavior) = OPTIONAL]; } // The IAM conditions context. @@ -1157,8 +1281,8 @@ message IamPolicyAnalysisQuery { } } - // Required. The relative name of the root asset. Only resources and IAM policies within - // the scope will be analyzed. + // Required. The relative name of the root asset. Only resources and IAM + // policies within the scope will be analyzed. // // This can only be an organization number (such as "organizations/123"), a // folder number (such as "folders/123"), a project ID (such as @@ -1172,10 +1296,12 @@ message IamPolicyAnalysisQuery { string scope = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Specifies a resource for analysis. - ResourceSelector resource_selector = 2 [(google.api.field_behavior) = OPTIONAL]; + ResourceSelector resource_selector = 2 + [(google.api.field_behavior) = OPTIONAL]; // Optional. Specifies an identity for analysis. - IdentitySelector identity_selector = 3 [(google.api.field_behavior) = OPTIONAL]; + IdentitySelector identity_selector = 3 + [(google.api.field_behavior) = OPTIONAL]; // Optional. Specifies roles or permissions for analysis. This is optional. AccessSelector access_selector = 4 [(google.api.field_behavior) = OPTIONAL]; @@ -1184,15 +1310,37 @@ message IamPolicyAnalysisQuery { Options options = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. The hypothetical context for IAM conditions evaluation. - ConditionContext condition_context = 6 [(google.api.field_behavior) = OPTIONAL]; + ConditionContext condition_context = 6 + [(google.api.field_behavior) = OPTIONAL]; } -// A request message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.AnalyzeIamPolicy]. +// A request message for +// [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.AnalyzeIamPolicy]. message AnalyzeIamPolicyRequest { // Required. The request query. - IamPolicyAnalysisQuery analysis_query = 1 [(google.api.field_behavior) = REQUIRED]; + IamPolicyAnalysisQuery analysis_query = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The name of a saved query, which must be in the format of: + // + // * projects/project_number/savedQueries/saved_query_id + // * folders/folder_number/savedQueries/saved_query_id + // * organizations/organization_number/savedQueries/saved_query_id + // + // If both `analysis_query` and `saved_analysis_query` are provided, they + // will be merged together with the `saved_analysis_query` as base and + // the `analysis_query` as overrides. For more details of the merge behavior, + // please refer to the + // [MergeFrom](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message.MergeFrom.details) + // page. + // + // Note that you cannot override primitive fields with default value, such as + // 0 or empty string, etc., because we use proto3, which doesn't support field + // presence yet. + string saved_analysis_query = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Amount of time executable has to complete. See JSON representation of + // Optional. Amount of time executable has to complete. See JSON + // representation of // [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json). // // If this field is set with a value less than the RPC deadline, and the @@ -1202,22 +1350,26 @@ message AnalyzeIamPolicyRequest { // If it's not finished until then, you will get a DEADLINE_EXCEEDED error. // // Default is empty. - google.protobuf.Duration execution_timeout = 2 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Duration execution_timeout = 2 + [(google.api.field_behavior) = OPTIONAL]; } -// A response message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.AnalyzeIamPolicy]. +// A response message for +// [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.AnalyzeIamPolicy]. message AnalyzeIamPolicyResponse { // An analysis message to group the query and results. message IamPolicyAnalysis { // The analysis query. IamPolicyAnalysisQuery analysis_query = 1; - // A list of [IamPolicyAnalysisResult][google.cloud.asset.v1.IamPolicyAnalysisResult] that matches the analysis query, or - // empty if no result is found. + // A list of + // [IamPolicyAnalysisResult][google.cloud.asset.v1.IamPolicyAnalysisResult] + // that matches the analysis query, or empty if no result is found. repeated IamPolicyAnalysisResult analysis_results = 2; - // Represents whether all entries in the [analysis_results][google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_results] have been - // fully explored to answer the query. + // Represents whether all entries in the + // [analysis_results][google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_results] + // have been fully explored to answer the query. bool fully_explored = 3; // A list of non-critical errors happened during the query handling. @@ -1232,9 +1384,11 @@ message AnalyzeIamPolicyResponse { // enabled. repeated IamPolicyAnalysis service_account_impersonation_analysis = 2; - // Represents whether all entries in the [main_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.main_analysis] and - // [service_account_impersonation_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis] have been fully explored to - // answer the query in the request. + // Represents whether all entries in the + // [main_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.main_analysis] + // and + // [service_account_impersonation_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis] + // have been fully explored to answer the query in the request. bool fully_explored = 3; } @@ -1242,8 +1396,8 @@ message AnalyzeIamPolicyResponse { message IamPolicyAnalysisOutputConfig { // A Cloud Storage location. message GcsDestination { - // Required. The uri of the Cloud Storage object. It's the same uri that is used by - // gsutil. Example: "gs://bucket_name/object_name". See [Viewing and + // Required. The uri of the Cloud Storage object. It's the same uri that is + // used by gsutil. Example: "gs://bucket_name/object_name". See [Viewing and // Editing Object // Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) // for more information. @@ -1271,13 +1425,15 @@ message IamPolicyAnalysisOutputConfig { REQUEST_TIME = 1; } - // Required. The BigQuery dataset in format "projects/projectId/datasets/datasetId", - // to which the analysis results should be exported. If this dataset does - // not exist, the export call will return an INVALID_ARGUMENT error. + // Required. The BigQuery dataset in format + // "projects/projectId/datasets/datasetId", to which the analysis results + // should be exported. If this dataset does not exist, the export call will + // return an INVALID_ARGUMENT error. string dataset = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The prefix of the BigQuery tables to which the analysis results will be - // written. Tables will be created based on this table_prefix if not exist: + // Required. The prefix of the BigQuery tables to which the analysis results + // will be written. Tables will be created based on this table_prefix if not + // exist: // * _analysis table will contain export operation's metadata. // * _analysis_result will contain all the // [IamPolicyAnalysisResult][google.cloud.asset.v1.IamPolicyAnalysisResult]. @@ -1288,8 +1444,8 @@ message IamPolicyAnalysisOutputConfig { // The partition key for BigQuery partitioned table. PartitionKey partition_key = 3; - // Optional. Specifies the action that occurs if the destination table or partition - // already exists. The following values are supported: + // Optional. Specifies the action that occurs if the destination table or + // partition already exists. The following values are supported: // // * WRITE_TRUNCATE: If the table or partition already exists, BigQuery // overwrites the entire table or all the partitions data. @@ -1314,18 +1470,219 @@ message IamPolicyAnalysisOutputConfig { } } -// A request message for [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning]. +// A request message for +// [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning]. message AnalyzeIamPolicyLongrunningRequest { // Required. The request query. - IamPolicyAnalysisQuery analysis_query = 1 [(google.api.field_behavior) = REQUIRED]; + IamPolicyAnalysisQuery analysis_query = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The name of a saved query, which must be in the format of: + // + // * projects/project_number/savedQueries/saved_query_id + // * folders/folder_number/savedQueries/saved_query_id + // * organizations/organization_number/savedQueries/saved_query_id + // + // If both `analysis_query` and `saved_analysis_query` are provided, they + // will be merged together with the `saved_analysis_query` as base and + // the `analysis_query` as overrides. For more details of the merge behavior, + // please refer to the + // [MergeFrom](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message.MergeFrom.details) + // doc. + // + // Note that you cannot override primitive fields with default value, such as + // 0 or empty string, etc., because we use proto3, which doesn't support field + // presence yet. + string saved_analysis_query = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Output configuration indicating where the results will be output + // to. + IamPolicyAnalysisOutputConfig output_config = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// A response message for +// [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning]. +message AnalyzeIamPolicyLongrunningResponse {} + +// A saved query which can be shared with others or used later. +message SavedQuery { + option (google.api.resource) = { + type: "cloudasset.googleapis.com/SavedQuery" + pattern: "projects/{project}/savedQueries/{saved_query}" + pattern: "folders/{folder}/savedQueries/{saved_query}" + pattern: "organizations/{organization}/savedQueries/{saved_query}" + }; + + // The query content. + message QueryContent { + oneof query_content { + // An IAM Policy Analysis query, which could be used in + // the + // [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.AnalyzeIamPolicy] + // rpc or the + // [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning] + // rpc. + IamPolicyAnalysisQuery iam_policy_analysis_query = 1; + } + } + + // The resource name of the saved query. The format must be: + // + // * projects/project_number/savedQueries/saved_query_id + // * folders/folder_number/savedQueries/saved_query_id + // * organizations/organization_number/savedQueries/saved_query_id + string name = 1; + + // The description of this saved query. This value should be fewer than 255 + // characters. + string description = 2; + + // Output only. The create time of this saved query. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The account's email address who has created this saved query. + string creator = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update time of this saved query. + google.protobuf.Timestamp last_update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The account's email address who has updated this saved query + // most recently. + string last_updater = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Labels applied on the resource. + // This value should not contain more than 10 entries. The key and value of + // each entry must be non-empty and fewer than 64 characters. + map labels = 7; + + // The query content. + QueryContent content = 8; +} + +// Request to create a saved query. +message CreateSavedQueryRequest { + // Required. The name of the project/folder/organization where this + // saved_query should be created in. It can only be an organization number + // (such as "organizations/123"), a folder number (such as "folders/123"), a + // project ID (such as "projects/my-project-id")", or a project number (such + // as "projects/12345"). + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudasset.googleapis.com/SavedQuery" + } + ]; + + // Required. The saved_query details. The `name` field must be empty as it + // will be generated based on the parent and saved_query_id. + SavedQuery saved_query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the saved query, which must be unique in the + // specified parent. It will become the final component of the saved query's + // resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + // + // Notice that this field is required in the saved query creation, and the + // `name` field of the `saved_query` will be ignored. + string saved_query_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request to get a saved query. +message GetSavedQueryRequest { + // Required. The name of the saved query and it must be in the format of: + // + // * projects/project_number/savedQueries/saved_query_id + // * folders/folder_number/savedQueries/saved_query_id + // * organizations/organization_number/savedQueries/saved_query_id + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudasset.googleapis.com/SavedQuery" + } + ]; +} + +// Request to list saved queries. +message ListSavedQueriesRequest { + // Required. The parent project/folder/organization whose savedQueries are to + // be listed. It can only be using project/folder/organization number (such as + // "folders/12345")", or a project ID (such as "projects/my-project-id"). + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudasset.googleapis.com/SavedQuery" + } + ]; + + // Optional. The expression to filter resources. + // The expression is a list of zero or more restrictions combined via logical + // operators `AND` and `OR`. When `AND` and `OR` are both used in the + // expression, parentheses must be appropriately used to group the + // combinations. The expression may also contain regular expressions. + // + // See https://google.aip.dev/160 for more information on the grammar. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of saved queries to return per page. The + // service may return fewer than this value. If unspecified, at most 50 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]; - // Required. Output configuration indicating where the results will be output to. - IamPolicyAnalysisOutputConfig output_config = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. A page token, received from a previous `ListSavedQueries` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListSavedQueries` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } -// A response message for [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning]. -message AnalyzeIamPolicyLongrunningResponse { +// Response of listing saved queries. +message ListSavedQueriesResponse { + // A list of savedQueries. + repeated SavedQuery saved_queries = 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 a saved query. +message UpdateSavedQueryRequest { + // Required. The saved query to update. + // + // The saved query's `name` field is used to identify the one to update, + // which has format as below: + // + // * projects/project_number/savedQueries/saved_query_id + // * folders/folder_number/savedQueries/saved_query_id + // * organizations/organization_number/savedQueries/saved_query_id + SavedQuery saved_query = 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 to delete a saved query. +message DeleteSavedQueryRequest { + // Required. The name of the saved query to delete. It must be in the format + // of: + // + // * projects/project_number/savedQueries/saved_query_id + // * folders/folder_number/savedQueries/saved_query_id + // * organizations/organization_number/savedQueries/saved_query_id + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudasset.googleapis.com/SavedQuery" + } + ]; } // The request message for performing resource move analysis. @@ -1403,6 +1760,293 @@ message MoveImpact { string detail = 1; } +// Output configuration query assets. +message QueryAssetsOutputConfig { + // BigQuery destination. + message BigQueryDestination { + // Required. The BigQuery dataset where the query results will be saved. It + // has the format of "projects/{projectId}/datasets/{datasetId}". + string dataset = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The BigQuery table where the query results will be saved. If + // this table does not exist, a new table with the given name will be + // created. + string table = 2 [(google.api.field_behavior) = REQUIRED]; + + // Specifies the action that occurs if the destination table or partition + // already exists. The following values are supported: + // + // * WRITE_TRUNCATE: If the table or partition already exists, BigQuery + // overwrites the entire table or all the partitions data. + // * WRITE_APPEND: If the table or partition already exists, BigQuery + // appends the data to the table or the latest partition. + // * WRITE_EMPTY: If the table already exists and contains data, an error is + // returned. + string write_disposition = 3; + } + + // BigQuery destination where the query results will be saved. + BigQueryDestination bigquery_destination = 1; +} + +// QueryAssets request. +message QueryAssetsRequest { + // Required. The relative name of the root asset. This can only be an + // organization number (such as "organizations/123"), a project ID (such as + // "projects/my-project-id"), or a project number (such as "projects/12345"), + // or a folder number (such as "folders/123"). + // + // Only assets belonging to the `parent` will be returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudasset.googleapis.com/Asset" + } + ]; + + oneof query { + // Optional. A SQL statement that's compatible with [BigQuery Standard + // SQL](http://cloud/bigquery/docs/reference/standard-sql/enabling-standard-sql). + string statement = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Reference to the query job, which is from the + // `QueryAssetsResponse` of previous `QueryAssets` call. + string job_reference = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. The maximum number of rows to return in the results. Responses + // are limited to 10 MB and 1000 rows. + // + // By default, the maximum row count is 1000. When the byte or row count limit + // is reached, the rest of the query results will be paginated. + // + // The field will be ignored when [output_config] is specified. + int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token received from previous `QueryAssets`. + // + // The field will be ignored when [output_config] is specified. + string page_token = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the maximum amount of time that the client is willing + // to wait for the query to complete. By default, this limit is 5 min for the + // first query, and 1 minute for the following queries. If the query is + // complete, the `done` field in the `QueryAssetsResponse` is true, otherwise + // false. + // + // Like BigQuery [jobs.query + // API](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest) + // 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. + // + // The field will be ignored when [output_config] is specified. + google.protobuf.Duration timeout = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Specifies what time period or point in time to query asset metadata at. + // * unset - query asset metadata as it is right now + // * [read_time_window] - query asset metadata as it was at any point in time + // between [start_time] and [end_time]. + // * [read_time] - query asset metadata as it was at that point in time. + // If data for the timestamp/date range selected does not exist, + // it will simply return a valid response with no rows. + oneof time { + // Optional. [start_time] is required. [start_time] must be less than + // [end_time] Defaults [end_time] to now if [start_time] is set and + // [end_time] isn't. Maximum permitted time range is 7 days. + TimeWindow read_time_window = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Queries cloud assets as they appeared at the specified point in + // time. + google.protobuf.Timestamp read_time = 8 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Destination where the query results will be saved. + // + // When this field is specified, the query results won't be saved in the + // [QueryAssetsResponse.query_result]. Instead + // [QueryAssetsResponse.output_config] will be set. + // + // Meanwhile, [QueryAssetsResponse.job_reference] will be set and can be used + // to check the status of the query job when passed to a following + // [QueryAssets] API call. + QueryAssetsOutputConfig output_config = 9 + [(google.api.field_behavior) = OPTIONAL]; +} + +// QueryAssets response. +message QueryAssetsResponse { + // Reference to a query job. + string job_reference = 1; + + // The query response, which can be either an `error` or a valid `response`. + // + // If `done` == `false` and the query result is being saved in a output, the + // output_config field will be set. + // If `done` == `true`, exactly one of + // `error`, `query_result` or `output_config` will be set. + bool done = 2; + + oneof response { + // Error status. + google.rpc.Status error = 3; + + // Result of the query. + QueryResult query_result = 4; + + // Output configuration which indicates instead of being returned in API + // response on the fly, the query result will be saved in a specific output. + QueryAssetsOutputConfig output_config = 5; + } +} + +// Execution results of the query. +// +// The result is formatted as rows represented by BigQuery compatible [schema]. +// When pagination is necessary, it will contains the page token to retrieve +// the results of following pages. +message QueryResult { + // Each row hold a query result in the format of `Struct`. + repeated google.protobuf.Struct rows = 1; + + // Describes the format of the [rows]. + TableSchema schema = 2; + + // Token to retrieve the next page of the results. + string next_page_token = 3; + + // Total rows of the whole query results. + int64 total_rows = 4; +} + +// BigQuery Compatible table schema. +message TableSchema { + // Describes the fields in a table. + repeated TableFieldSchema fields = 1; +} + +// A field in TableSchema. +message TableFieldSchema { + // 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 128 characters. + string field = 1; + + // The field data type. Possible values include + // * STRING + // * BYTES + // * INTEGER + // * FLOAT + // * BOOLEAN + // * TIMESTAMP + // * DATE + // * TIME + // * DATETIME + // * GEOGRAPHY, + // * NUMERIC, + // * BIGNUMERIC, + // * RECORD + // (where RECORD indicates that the field contains a nested schema). + string type = 2; + + // The field mode. Possible values include NULLABLE, REQUIRED and + // REPEATED. The default value is NULLABLE. + string mode = 3; + + // Describes the nested schema fields if the type property is set + // to RECORD. + repeated TableFieldSchema fields = 4; +} + +// A request message for +// [AssetService.BatchGetEffectiveIamPolicies][google.cloud.asset.v1.AssetService.BatchGetEffectiveIamPolicies]. +message BatchGetEffectiveIamPoliciesRequest { + // Required. Only IAM policies on or below the scope will be returned. + // + // This can only be an organization number (such as "organizations/123"), a + // 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 + // ](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 + // ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). + string scope = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { child_type: "*" } + ]; + + // Required. The names refer to the [full_resource_names] + // (https://cloud.google.com/asset-inventory/docs/resource-name-format) + // of [searchable asset + // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). + // A maximum of 20 resources' effective policies can be retrieved in a batch. + repeated string names = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "*" } + ]; +} + +// A response message for +// [AssetService.BatchGetEffectiveIamPolicies][google.cloud.asset.v1.AssetService.BatchGetEffectiveIamPolicies]. +message BatchGetEffectiveIamPoliciesResponse { + // The effective IAM policies on one resource. + message EffectiveIamPolicy { + // The IAM policy and its attached resource. + message PolicyInfo { + // The full resource name the + // [policy][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo.policy] + // is directly attached to. + string attached_resource = 1; + + // The IAM policy that's directly attached to the + // [attached_resource][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo.attached_resource]. + google.iam.v1.Policy policy = 2; + } + + // The [full_resource_name] + // (https://cloud.google.com/asset-inventory/docs/resource-name-format) + // for which the + // [policies][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.policies] + // are computed. This is one of the + // [BatchGetEffectiveIamPoliciesRequest.names][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesRequest.names] + // the caller provides in the request. + string full_resource_name = 1; + + // The effective policies for the + // [full_resource_name][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.full_resource_name]. + // + // These policies include the policy set on the + // [full_resource_name][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.full_resource_name] + // and those set on its parents and ancestors up to the + // [BatchGetEffectiveIamPoliciesRequest.scope][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesRequest.scope]. + // Note that these policies are not filtered according to the resource type + // of the + // [full_resource_name][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.full_resource_name]. + // + // These policies are hierarchically ordered by + // [PolicyInfo.attached_resource][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo.attached_resource] + // starting from + // [full_resource_name][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.full_resource_name] + // itself to its parents and ancestors, such that policies[i]'s + // [PolicyInfo.attached_resource][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo.attached_resource] + // is the child of policies[i+1]'s + // [PolicyInfo.attached_resource][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo.attached_resource], + // if policies[i+1] exists. + repeated PolicyInfo policies = 2; + } + + // The effective policies for a batch of resources. Note that the results + // order is the same as the order of + // [BatchGetEffectiveIamPoliciesRequest.names][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesRequest.names]. + // When a resource does not have any effective IAM policies, its corresponding + // policy_result will contain empty + // [EffectiveIamPolicy.policies][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.policies]. + repeated EffectiveIamPolicy policy_results = 2; +} + // Asset content type. enum ContentType { // Unspecified content type. diff --git a/google/cloud/asset/v1/assets.proto b/google/cloud/asset/v1/assets.proto index 3d433b8f3..83a23693a 100644 --- a/google/cloud/asset/v1/assets.proto +++ b/google/cloud/asset/v1/assets.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,16 +18,14 @@ package google.cloud.asset.v1; import "google/api/resource.proto"; import "google/cloud/orgpolicy/v1/orgpolicy.proto"; +import "google/cloud/osconfig/v1/inventory.proto"; import "google/iam/v1/policy.proto"; import "google/identity/accesscontextmanager/v1/access_level.proto"; import "google/identity/accesscontextmanager/v1/access_policy.proto"; -import "google/cloud/osconfig/v1/inventory.proto"; import "google/identity/accesscontextmanager/v1/service_perimeter.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/code.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Asset.V1"; @@ -129,8 +127,8 @@ message Asset { // effectively policy is the union of both the policy set on this resource // and each policy set on all of the resource's ancestry resource levels in // the hierarchy. See - // [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for - // more information. + // [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) + // for more information. google.iam.v1.Policy iam_policy = 4; // A representation of an [organization @@ -152,7 +150,8 @@ message Asset { // Please also refer to the [service perimeter user // guide](https://cloud.google.com/vpc-service-controls/docs/overview). - google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeter = 9; + google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeter = + 9; } // A representation of runtime OS Inventory information. See [this @@ -160,9 +159,15 @@ message Asset { // for more information. google.cloud.osconfig.v1.Inventory os_inventory = 12; - // The related assets of the asset of one relationship type. - // One asset only represents one type of relationship. - RelatedAssets related_assets = 13; + // DEPRECATED. This field only presents for the purpose of + // backward-compatibility. The server will never generate responses with this + // field. + // The related assets of the asset of one relationship type. One asset + // only represents one type of relationship. + RelatedAssets related_assets = 13 [deprecated = true]; + + // One related asset of the current asset. + RelatedAsset related_asset = 15; // The ancestry path of an asset in Google Cloud [resource // hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), @@ -225,8 +230,13 @@ message Resource { string location = 8; } +// DEPRECATED. This message only presents for the purpose of +// backward-compatibility. The server will never populate this message in +// responses. // The detailed related assets with the `relationship_type`. message RelatedAssets { + option deprecated = true; + // The detailed relationship attributes. RelationshipAttributes relationship_attributes = 1; @@ -234,9 +244,14 @@ message RelatedAssets { repeated RelatedAsset assets = 2; } +// DEPRECATED. This message only presents for the purpose of +// backward-compatibility. The server will never populate this message in +// responses. // The relationship attributes which include `type`, `source_resource_type`, // `target_resource_type` and `action`. message RelationshipAttributes { + option deprecated = true; + // The unique identifier of the relationship type. Example: // `INSTANCE_TO_INSTANCEGROUP` string type = 4; @@ -251,7 +266,7 @@ message RelationshipAttributes { string action = 3; } -// An asset identify in Google Cloud which contains its name, type and +// An asset identifier in Google Cloud which contains its name, type and // ancestors. An asset can be any resource in the Google Cloud [resource // hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), // a resource outside the Google Cloud resource hierarchy (such as Google @@ -267,8 +282,8 @@ message RelatedAsset { // names](https://cloud.google.com/apis/design/resource_names#full_resource_name) // for more information. string asset = 1 [(google.api.resource_reference) = { - type: "cloudasset.googleapis.com/Asset" - }]; + type: "cloudasset.googleapis.com/Asset" + }]; // The type of the asset. Example: `compute.googleapis.com/Disk` // @@ -284,9 +299,14 @@ message RelatedAsset { // // Example: `["projects/123456789", "folders/5432", "organizations/1234"]` repeated string ancestors = 3; + + // The unique identifier of the relationship type. Example: + // `INSTANCE_TO_INSTANCEGROUP` + string relationship_type = 4; } // A result of Resource Search, containing information of a cloud resource. +// Next ID: 29 message ResourceSearchResult { // The full resource name of this resource. Example: // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. @@ -341,7 +361,7 @@ message ResourceSearchResult { string organization = 18; // The display name of this resource. This field is available only when the - // resource's proto contains it. + // resource's Protobuf contains it. // // To search against the `display_name`: // @@ -351,7 +371,7 @@ message ResourceSearchResult { // One or more paragraphs of text description of this resource. Maximum length // could be up to 1M bytes. This field is available only when the resource's - // proto contains it. + // Protobuf contains it. // // To search against the `description`: // @@ -360,7 +380,7 @@ message ResourceSearchResult { string description = 5; // Location can be `global`, regional like `us-east1`, or zonal like - // `us-west1-b`. This field is available only when the resource's proto + // `us-west1-b`. This field is available only when the resource's Protobuf // contains it. // // To search against the `location`: @@ -372,7 +392,7 @@ message ResourceSearchResult { // Labels associated with this resource. See [Labelling and grouping GCP // resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) // for more information. This field is available only when the resource's - // proto contains it. + // Protobuf contains it. // // To search against the `labels`: // @@ -387,7 +407,7 @@ message ResourceSearchResult { // type of annotations used to group GCP resources. See [Labelling GCP // resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) // for more information. This field is available only when the resource's - // proto contains it. + // Protobuf contains it. // // To search against the `network_tags`: // @@ -396,10 +416,11 @@ message ResourceSearchResult { repeated string network_tags = 8; // The Cloud KMS - // [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys?hl=en) + // [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys) // name or - // [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions?hl=en) - // name. This field is available only when the resource's proto contains it. + // [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions) + // name. This field is available only when the resource's Protobuf contains + // it. // // To search against the `kms_key`: // @@ -409,7 +430,7 @@ message ResourceSearchResult { // The create timestamp of this resource, at which the resource was created. // The granularity is in seconds. Timestamp.nanos will always be 0. This field - // is available only when the resource's proto contains it. + // is available only when the resource's Protobuf contains it. // // To search against `create_time`: // @@ -422,7 +443,7 @@ message ResourceSearchResult { // The last update timestamp of this resource, at which the resource was last // modified or deleted. The granularity is in seconds. Timestamp.nanos will - // always be 0. This field is available only when the resource's proto + // always be 0. This field is available only when the resource's Protobuf // contains it. // // To search against `update_time`: @@ -436,7 +457,8 @@ message ResourceSearchResult { // The state of this resource. Different resources types have different state // definitions that are mapped from various fields of different resource - // types. This field is available only when the resource's proto contains it. + // types. This field is available only when the resource's Protobuf contains + // it. // // Example: // If the resource is an instance provided by Compute Engine, @@ -511,6 +533,43 @@ message ResourceSearchResult { // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types). map relationships = 21; + // TagKey namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}. + // To search against the `tagKeys`: + // + // * use a field query. Example: + // - `tagKeys:"123456789/env*"` + // - `tagKeys="123456789/env"` + // - `tagKeys:"env"` + // + // * use a free text query. Example: + // - `env` + repeated string tag_keys = 23; + + // TagValue namespaced names, in the format of + // {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}. + // To search against the `tagValues`: + // + // * use a field query. Example: + // - `tagValues:"env"` + // - `tagValues:"env/prod"` + // - `tagValues:"123456789/env/prod*"` + // - `tagValues="123456789/env/prod"` + // + // * use a free text query. Example: + // - `prod` + repeated string tag_values = 25; + + // TagValue IDs, in the format of tagValues/{TAG_VALUE_ID}. + // To search against the `tagValueIds`: + // + // * use a field query. Example: + // - `tagValueIds:"456"` + // - `tagValueIds="tagValues/456"` + // + // * use a free text query. Example: + // - `456` + repeated string tag_value_ids = 26; + // The type of this resource's immediate parent, if there is one. // // To search against the `parent_asset_type`: @@ -798,8 +857,10 @@ message IamPolicyAnalysisResult { repeated Access accesses = 2; // Resource edges of the graph starting from the policy attached - // resource to any descendant resources. The [Edge.source_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.source_node] contains - // the full resource name of a parent resource and [Edge.target_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.target_node] + // resource to any descendant resources. The + // [Edge.source_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.source_node] + // contains the full resource name of a parent resource and + // [Edge.target_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.target_node] // contains the full resource name of a child resource. This field is // present only if the output_resource_edges option is enabled in request. repeated Edge resource_edges = 3; @@ -818,32 +879,41 @@ message IamPolicyAnalysisResult { repeated Identity identities = 1; // Group identity edges of the graph starting from the binding's - // group members to any node of the [identities][google.cloud.asset.v1.IamPolicyAnalysisResult.IdentityList.identities]. The [Edge.source_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.source_node] + // group members to any node of the + // [identities][google.cloud.asset.v1.IamPolicyAnalysisResult.IdentityList.identities]. + // The + // [Edge.source_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.source_node] // contains a group, such as `group:parent@google.com`. The - // [Edge.target_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.target_node] contains a member of the group, - // such as `group:child@google.com` or `user:foo@google.com`. - // This field is present only if the output_group_edges option is enabled in - // request. + // [Edge.target_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.target_node] + // contains a member of the group, such as `group:child@google.com` or + // `user:foo@google.com`. This field is present only if the + // output_group_edges option is enabled in request. repeated Edge group_edges = 2; } // The [full resource // name](https://cloud.google.com/asset-inventory/docs/resource-name-format) - // of the resource to which the [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] policy attaches. + // of the resource to which the + // [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] + // policy attaches. string attached_resource_full_name = 1; // The Cloud IAM policy binding under analysis. google.iam.v1.Binding iam_binding = 2; - // The access control lists derived from the [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] that match or - // potentially match resource and access selectors specified in the request. + // The access control lists derived from the + // [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] + // that match or potentially match resource and access selectors specified in + // the request. repeated AccessControlList access_control_lists = 3; - // The identity list derived from members of the [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] that match or - // potentially match identity selector specified in the request. + // The identity list derived from members of the + // [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] + // that match or potentially match identity selector specified in the request. IdentityList identity_list = 4; - // Represents whether all analyses on the [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] have successfully - // finished. + // Represents whether all analyses on the + // [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] + // have successfully finished. bool fully_explored = 5; } diff --git a/google/cloud/asset/v1/cloudasset_grpc_service_config.json b/google/cloud/asset/v1/cloudasset_grpc_service_config.json index 3d5fb8a91..cb3cd7228 100755 --- a/google/cloud/asset/v1/cloudasset_grpc_service_config.json +++ b/google/cloud/asset/v1/cloudasset_grpc_service_config.json @@ -14,6 +14,14 @@ "service": "google.cloud.asset.v1.AssetService", "method": "UpdateFeed" }, + { + "service": "google.cloud.asset.v1.AssetService", + "method": "CreateSavedQuery" + }, + { + "service": "google.cloud.asset.v1.AssetService", + "method": "UpdateSavedQuery" + }, { "service": "google.cloud.asset.v1.AssetService", "method": "AnalyzeIamPolicyLongrunning" @@ -42,6 +50,18 @@ { "service": "google.cloud.asset.v1.AssetService", "method": "DeleteFeed" + }, + { + "service": "google.cloud.asset.v1.AssetService", + "method": "GetSavedQuery" + }, + { + "service": "google.cloud.asset.v1.AssetService", + "method": "ListSavedQueries" + }, + { + "service": "google.cloud.asset.v1.AssetService", + "method": "DeleteSavedQuery" } ], "timeout": "60s", @@ -126,6 +146,23 @@ "UNAVAILABLE" ] } + }, + { + "name": [ + { + "service": "google.cloud.asset.v1.AssetService", + "method": "BatchGetEffectiveIamPolicies" + } + ], + "timeout": "300s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } } ] } diff --git a/google/cloud/asset/v1/cloudasset_v1.yaml b/google/cloud/asset/v1/cloudasset_v1.yaml index e4196fa9d..338af62a0 100644 --- a/google/cloud/asset/v1/cloudasset_v1.yaml +++ b/google/cloud/asset/v1/cloudasset_v1.yaml @@ -5,6 +5,7 @@ title: Cloud Asset API apis: - name: google.cloud.asset.v1.AssetService +- name: google.longrunning.Operations types: - name: google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata diff --git a/google/cloud/asset/v1p1beta1/BUILD.bazel b/google/cloud/asset/v1p1beta1/BUILD.bazel index 78e6d8750..7cc8aac78 100644 --- a/google/cloud/asset/v1p1beta1/BUILD.bazel +++ b/google/cloud/asset/v1p1beta1/BUILD.bazel @@ -62,6 +62,7 @@ java_gapic_library( ":asset_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":asset_java_proto", "//google/iam/v1:iam_java_proto", @@ -71,6 +72,7 @@ java_gapic_library( java_gapic_test( name = "asset_java_gapic_test_suite", test_classes = [ + "com.google.cloud.asset.v1p1beta1.AssetServiceClientHttpJsonTest", "com.google.cloud.asset.v1p1beta1.AssetServiceClientTest", ], runtime_deps = [":asset_java_gapic_test"], @@ -79,6 +81,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-asset-v1p1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":asset_java_gapic", ":asset_java_grpc", @@ -115,6 +119,7 @@ go_gapic_library( grpc_service_config = "cloudasset_grpc_service_config.json", importpath = "cloud.google.com/go/asset/apiv1p1beta1;asset", service_yaml = "cloudasset_v1p1beta1.yaml", + transport = "grpc+rest", deps = [ ":asset_go_proto", "//google/iam/v1:iam_go_proto", @@ -145,12 +150,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "asset_py_gapic", srcs = [":asset_proto"], grpc_service_config = "cloudasset_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "asset_py_gapic_test", + srcs = [ + "asset_py_gapic_pytest.py", + "asset_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":asset_py_gapic"], ) py_gapic_assembly_pkg( @@ -235,8 +255,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -254,7 +274,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "asset_ruby_gapic", - srcs = [":asset_proto_with_info",], + srcs = [":asset_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-asset-v1p1beta1"], deps = [ ":asset_ruby_grpc", @@ -299,6 +319,7 @@ csharp_gapic_library( srcs = [":asset_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudasset_grpc_service_config.json", + service_yaml = "cloudasset_v1p1beta1.yaml", deps = [ ":asset_csharp_grpc", ":asset_csharp_proto", diff --git a/google/cloud/asset/v1p1beta1/assets.proto b/google/cloud/asset/v1p1beta1/assets.proto index 549ea688b..c0ac1403a 100644 --- a/google/cloud/asset/v1p1beta1/assets.proto +++ b/google/cloud/asset/v1p1beta1/assets.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.asset.v1p1beta1; import "google/iam/v1/policy.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Asset.V1P1Beta1"; diff --git a/google/cloud/asset/v1p2beta1/BUILD.bazel b/google/cloud/asset/v1p2beta1/BUILD.bazel index c3c8dd13a..bc42348e5 100644 --- a/google/cloud/asset/v1p2beta1/BUILD.bazel +++ b/google/cloud/asset/v1p2beta1/BUILD.bazel @@ -69,6 +69,7 @@ java_gapic_library( ":asset_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":asset_java_proto", "//google/iam/v1:iam_java_proto", @@ -78,6 +79,7 @@ java_gapic_library( java_gapic_test( name = "asset_java_gapic_test_suite", test_classes = [ + "com.google.cloud.asset.v1p2beta1.AssetServiceClientHttpJsonTest", "com.google.cloud.asset.v1p2beta1.AssetServiceClientTest", ], runtime_deps = [":asset_java_gapic_test"], @@ -86,6 +88,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-asset-v1p2beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":asset_java_gapic", ":asset_java_grpc", @@ -123,6 +127,7 @@ go_gapic_library( grpc_service_config = "cloudasset_grpc_service_config.json", importpath = "cloud.google.com/go/asset/apiv1p2beta1;asset", service_yaml = "cloudasset_v1p2beta1.yaml", + transport = "grpc+rest", deps = [ ":asset_go_proto", "//google/iam/v1:iam_go_proto", @@ -158,12 +163,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "asset_py_gapic", srcs = [":asset_proto"], grpc_service_config = "cloudasset_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "asset_py_gapic_test", + srcs = [ + "asset_py_gapic_pytest.py", + "asset_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":asset_py_gapic"], ) py_gapic_assembly_pkg( @@ -248,8 +268,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -267,7 +287,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "asset_ruby_gapic", - srcs = [":asset_proto_with_info",], + srcs = [":asset_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-asset-v1p2beta1"], deps = [ ":asset_ruby_grpc", diff --git a/google/cloud/asset/v1p2beta1/asset_service.proto b/google/cloud/asset/v1p2beta1/asset_service.proto index a19ee75fa..92f285f86 100644 --- a/google/cloud/asset/v1p2beta1/asset_service.proto +++ b/google/cloud/asset/v1p2beta1/asset_service.proto @@ -22,10 +22,8 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/asset/v1p2beta1/assets.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.Asset.V1p2Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/asset/v1p2beta1;asset"; diff --git a/google/cloud/asset/v1p2beta1/assets.proto b/google/cloud/asset/v1p2beta1/assets.proto index 33d93e1c3..bc2a9c511 100644 --- a/google/cloud/asset/v1p2beta1/assets.proto +++ b/google/cloud/asset/v1p2beta1/assets.proto @@ -17,9 +17,7 @@ syntax = "proto3"; package google.cloud.asset.v1p2beta1; -import "google/api/annotations.proto"; import "google/iam/v1/policy.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/cloud/asset/v1p4beta1/BUILD.bazel b/google/cloud/asset/v1p4beta1/BUILD.bazel deleted file mode 100644 index cc33d2683..000000000 --- a/google/cloud/asset/v1p4beta1/BUILD.bazel +++ /dev/null @@ -1,332 +0,0 @@ -# This file was automatically generated by BuildFileGenerator - -# 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 = "asset_proto", - srcs = [ - "asset_service.proto", - "assets.proto", - ], - deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - "//google/api:field_behavior_proto", - "//google/iam/v1:policy_proto", - "//google/longrunning:operations_proto", - "//google/rpc:code_proto", - "@com_google_protobuf//:duration_proto", - ], -) - -proto_library_with_info( - name = "asset_proto_with_info", - deps = [ - ":asset_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_grpc_library", - "java_proto_library", -) - -java_proto_library( - name = "asset_java_proto", - deps = [":asset_proto"], -) - -java_grpc_library( - name = "asset_java_grpc", - srcs = [":asset_proto"], - deps = [":asset_java_proto"], -) - -java_gapic_library( - name = "asset_java_gapic", - srcs = [":asset_proto_with_info"], - gapic_yaml = "cloudasset_gapic.yaml", - grpc_service_config = "cloudasset_grpc_service_config.json", - test_deps = [ - ":asset_java_grpc", - "//google/iam/v1:iam_java_grpc", - ], - deps = [ - ":asset_java_proto", - "//google/iam/v1:iam_java_proto", - ], -) - -java_gapic_test( - name = "asset_java_gapic_test_suite", - test_classes = [ - "com.google.cloud.asset.v1p4beta1.AssetServiceClientTest", - ], - runtime_deps = [":asset_java_gapic_test"], -) - -# Open Source Packages -java_gapic_assembly_gradle_pkg( - name = "google-cloud-asset-v1p4beta1-java", - deps = [ - ":asset_java_gapic", - ":asset_java_grpc", - ":asset_java_proto", - ":asset_proto", - ], -) - -############################################################################## -# Go -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "go_test", -) - -go_proto_library( - name = "asset_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/cloud/asset/v1p4beta1", - protos = [":asset_proto"], - deps = [ - "//google/api:annotations_go_proto", - "//google/iam/v1:iam_go_proto", - "//google/longrunning:longrunning_go_proto", - "//google/rpc:code_go_proto", - ], -) - -go_gapic_library( - name = "asset_go_gapic", - srcs = [":asset_proto_with_info"], - grpc_service_config = "cloudasset_grpc_service_config.json", - importpath = "cloud.google.com/go/asset/apiv1p4beta1;asset", - service_yaml = "cloudasset_v1p4beta1.yaml", - deps = [ - ":asset_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", - ], -) - -go_test( - name = "asset_go_gapic_test", - srcs = [":asset_go_gapic_srcjar_test"], - embed = [":asset_go_gapic"], - importpath = "cloud.google.com/go/asset/apiv1p4beta1", -) - -# Open Source Packages -go_gapic_assembly_pkg( - name = "gapi-cloud-asset-v1p4beta1-go", - deps = [ - ":asset_go_gapic", - ":asset_go_gapic_srcjar-test.srcjar", - ":asset_go_proto", - ], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", -) - -py_gapic_library( - name = "asset_py_gapic", - srcs = [":asset_proto"], - grpc_service_config = "cloudasset_grpc_service_config.json", -) - -py_gapic_assembly_pkg( - name = "asset-v1p4beta1-py", - deps = [ - ":asset_py_gapic", - ], -) - -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", -) - -php_proto_library( - name = "asset_php_proto", - deps = [":asset_proto"], -) - -php_grpc_library( - name = "asset_php_grpc", - srcs = [":asset_proto"], - deps = [":asset_php_proto"], -) - -php_gapic_library( - name = "asset_php_gapic", - srcs = [":asset_proto_with_info"], - gapic_yaml = "cloudasset_gapic.yaml", - grpc_service_config = "cloudasset_grpc_service_config.json", - deps = [ - ":asset_php_grpc", - ":asset_php_proto", - ], -) - -# Open Source Packages -php_gapic_assembly_pkg( - name = "google-cloud-asset-v1p4beta1-php", - deps = [ - ":asset_php_gapic", - ":asset_php_grpc", - ":asset_php_proto", - ], -) - -############################################################################## -# Node.js -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", -) - -nodejs_gapic_library( - name = "asset_nodejs_gapic", - package_name = "@google-cloud/asset", - src = ":asset_proto_with_info", - extra_protoc_parameters = ["metadata"], - grpc_service_config = "cloudasset_grpc_service_config.json", - package = "google.cloud.asset.v1p4beta1", - service_yaml = "cloudasset_v1p4beta1.yaml", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "asset-v1p4beta1-nodejs", - deps = [ - ":asset_nodejs_gapic", - ":asset_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 = "asset_ruby_proto", - deps = [":asset_proto"], -) - -ruby_grpc_library( - name = "asset_ruby_grpc", - srcs = [":asset_proto"], - deps = [":asset_ruby_proto"], -) - -ruby_cloud_gapic_library( - name = "asset_ruby_gapic", - srcs = [":asset_proto_with_info",], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-asset-v1p4beta1"], - deps = [ - ":asset_ruby_grpc", - ":asset_ruby_proto", - ], -) - -# Open Source Packages -ruby_gapic_assembly_pkg( - name = "google-cloud-asset-v1p4beta1-ruby", - deps = [ - ":asset_ruby_gapic", - ":asset_ruby_grpc", - ":asset_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 = "asset_csharp_proto", - deps = [":asset_proto"], -) - -csharp_grpc_library( - name = "asset_csharp_grpc", - srcs = [":asset_proto"], - deps = [":asset_csharp_proto"], -) - -csharp_gapic_library( - name = "asset_csharp_gapic", - srcs = [":asset_proto_with_info"], - common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "cloudasset_grpc_service_config.json", - deps = [ - ":asset_csharp_grpc", - ":asset_csharp_proto", - ], -) - -# Open Source Packages -csharp_gapic_assembly_pkg( - name = "google-cloud-asset-v1p4beta1-csharp", - deps = [ - ":asset_csharp_gapic", - ":asset_csharp_grpc", - ":asset_csharp_proto", - ], -) - -############################################################################## -# C++ -############################################################################## -# Put your C++ rules here diff --git a/google/cloud/asset/v1p4beta1/asset_service.proto b/google/cloud/asset/v1p4beta1/asset_service.proto deleted file mode 100644 index db60941a5..000000000 --- a/google/cloud/asset/v1p4beta1/asset_service.proto +++ /dev/null @@ -1,343 +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.cloud.asset.v1p4beta1; - -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/cloud/asset/v1p4beta1/assets.proto"; -import "google/iam/v1/policy.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/duration.proto"; -import "google/api/client.proto"; - -option csharp_namespace = "Google.Cloud.Asset.V1P4Beta1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/asset/v1p4beta1;asset"; -option java_multiple_files = true; -option java_outer_classname = "AssetServiceProto"; -option java_package = "com.google.cloud.asset.v1p4beta1"; -option php_namespace = "Google\\Cloud\\Asset\\V1p4beta1"; - -// Asset service definition. -service AssetService { - option (google.api.default_host) = "cloudasset.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - - // Analyzes IAM policies based on the specified request. Returns - // a list of [IamPolicyAnalysisResult][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult] matching the request. - rpc AnalyzeIamPolicy(AnalyzeIamPolicyRequest) returns (AnalyzeIamPolicyResponse) { - option (google.api.http) = { - get: "/v1p4beta1/{analysis_query.parent=*/*}:analyzeIamPolicy" - }; - } - - // Exports IAM policy analysis based on the specified request. This API - // implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing you to keep - // track of the export. The metadata contains the request to help callers to - // map responses to requests. - rpc ExportIamPolicyAnalysis(ExportIamPolicyAnalysisRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1p4beta1/{analysis_query.parent=*/*}:exportIamPolicyAnalysis" - body: "*" - }; - option (google.longrunning.operation_info) = { - response_type: "google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisResponse" - metadata_type: "google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisRequest" - }; - } -} - -// IAM policy analysis query message. -message IamPolicyAnalysisQuery { - // Specifies the resource to analyze for access policies, which may be set - // directly on the resource, or on ancestors such as organizations, folders or - // projects. At least one of [ResourceSelector][google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.ResourceSelector], [IdentitySelector][google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.IdentitySelector] or - // [AccessSelector][google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.AccessSelector] must be specified in a request. - message ResourceSelector { - // Required. The [full resource - // name](https://cloud.google.com/apis/design/resource_names#full_resource_name) - // . - string full_resource_name = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Specifies an identity for which to determine resource access, based on - // roles assigned either directly to them or to the groups they belong to, - // directly or indirectly. - message IdentitySelector { - // Required. The identity appear in the form of members in - // [IAM policy - // binding](https://cloud.google.com/iam/reference/rest/v1/Binding). - string identity = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Specifies roles and/or permissions to analyze, to determine both the - // identities possessing them and the resources they control. If multiple - // values are specified, results will include identities and resources - // matching any of them. - message AccessSelector { - // Optional. The roles to appear in result. - repeated string roles = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The permissions to appear in result. - repeated string permissions = 2 [(google.api.field_behavior) = OPTIONAL]; - } - - // Required. The relative name of the root asset. Only resources and IAM policies within - // the parent will be analyzed. This can only be an organization number (such - // as "organizations/123") or a folder number (such as "folders/123"). - string parent = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. Specifies a resource for analysis. Leaving it empty means ANY. - ResourceSelector resource_selector = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Specifies an identity for analysis. Leaving it empty means ANY. - IdentitySelector identity_selector = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Specifies roles or permissions for analysis. Leaving it empty - // means ANY. - AccessSelector access_selector = 4 [(google.api.field_behavior) = OPTIONAL]; -} - -// A request message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy]. -message AnalyzeIamPolicyRequest { - // Contains request options. - message Options { - // Optional. If true, the identities section of the result will expand any - // Google groups appearing in an IAM policy binding. - // - // If [identity_selector][] is specified, the identity in the result will - // be determined by the selector, and this flag will have no effect. - // - // Default is false. - bool expand_groups = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the access section of result will expand any roles - // appearing in IAM policy bindings to include their permissions. - // - // If [access_selector][] is specified, the access section of the result - // will be determined by the selector, and this flag will have no effect. - // - // Default is false. - bool expand_roles = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the resource section of the result will expand any - // resource attached to an IAM policy to include resources lower in the - // resource hierarchy. - // - // For example, if the request analyzes for which resources user A has - // permission P, and the results include an IAM policy with P on a GCP - // folder, the results will also include resources in that folder with - // permission P. - // - // If [resource_selector][] is specified, the resource section of the result - // will be determined by the selector, and this flag will have no effect. - // Default is false. - bool expand_resources = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the result will output resource edges, starting - // from the policy attached resource, to any expanded resources. - // Default is false. - bool output_resource_edges = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the result will output group identity edges, starting - // from the binding's group members, to any expanded identities. - // Default is false. - bool output_group_edges = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the response will include access analysis from identities to - // resources via service account impersonation. This is a very expensive - // operation, because many derived queries will be executed. We highly - // recommend you use ExportIamPolicyAnalysis rpc instead. - // - // For example, if the request analyzes for which resources user A has - // permission P, and there's an IAM policy states user A has - // iam.serviceAccounts.getAccessToken permission to a service account SA, - // and there's another IAM policy states service account SA has permission P - // to a GCP folder F, then user A potentially has access to the GCP folder - // F. And those advanced analysis results will be included in - // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. - // - // Another example, if the request analyzes for who has - // permission P to a GCP folder F, and there's an IAM policy states user A - // has iam.serviceAccounts.actAs permission to a service account SA, and - // there's another IAM policy states service account SA has permission P to - // the GCP folder F, then user A potentially has access to the GCP folder - // F. And those advanced analysis results will be included in - // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. - // - // Default is false. - bool analyze_service_account_impersonation = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Amount of time executable has to complete. See JSON representation of - // [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json). - // - // If this field is set with a value less than the RPC deadline, and the - // execution of your query hasn't finished in the specified - // execution timeout, you will get a response with partial result. - // Otherwise, your query's execution will continue until the RPC deadline. - // If it's not finished until then, you will get a DEADLINE_EXCEEDED error. - // - // Default is empty. - google.protobuf.Duration execution_timeout = 7 [(google.api.field_behavior) = OPTIONAL]; - } - - // Required. The request query. - IamPolicyAnalysisQuery analysis_query = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The request options. - Options options = 2 [(google.api.field_behavior) = OPTIONAL]; -} - -// A response message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy]. -message AnalyzeIamPolicyResponse { - // An analysis message to group the query and results. - message IamPolicyAnalysis { - // The analysis query. - IamPolicyAnalysisQuery analysis_query = 1; - - // A list of [IamPolicyAnalysisResult][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult] that matches the analysis query, or - // empty if no result is found. - repeated IamPolicyAnalysisResult analysis_results = 2; - - // Represents whether all entries in the [analysis_results][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_results] have been - // fully explored to answer the query. - bool fully_explored = 3; - } - - // The main analysis that matches the original request. - IamPolicyAnalysis main_analysis = 1; - - // The service account impersonation analysis if - // [AnalyzeIamPolicyRequest.analyze_service_account_impersonation][] is - // enabled. - repeated IamPolicyAnalysis service_account_impersonation_analysis = 2; - - // Represents whether all entries in the [main_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.main_analysis] and - // [service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis] have been fully explored to - // answer the query in the request. - bool fully_explored = 3; - - // A list of non-critical errors happened during the request handling to - // explain why `fully_explored` is false, or empty if no error happened. - repeated IamPolicyAnalysisResult.AnalysisState non_critical_errors = 4; -} - -// Output configuration for export IAM policy analysis destination. -message IamPolicyAnalysisOutputConfig { - // A Cloud Storage location. - message GcsDestination { - // Required. The uri of the Cloud Storage object. It's the same uri that is used by - // gsutil. For example: "gs://bucket_name/object_name". See [Viewing and - // Editing Object - // Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) - // for more information. - string uri = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // IAM policy analysis export destination. - oneof destination { - // Destination on Cloud Storage. - GcsDestination gcs_destination = 1; - } -} - -// A request message for [AssetService.ExportIamPolicyAnalysis][google.cloud.asset.v1p4beta1.AssetService.ExportIamPolicyAnalysis]. -message ExportIamPolicyAnalysisRequest { - // Contains request options. - message Options { - // Optional. If true, the identities section of the result will expand any - // Google groups appearing in an IAM policy binding. - // - // If [identity_selector][] is specified, the identity in the result will - // be determined by the selector, and this flag will have no effect. - // - // Default is false. - bool expand_groups = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the access section of result will expand any roles - // appearing in IAM policy bindings to include their permissions. - // - // If [access_selector][] is specified, the access section of the result - // will be determined by the selector, and this flag will have no effect. - // - // Default is false. - bool expand_roles = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the resource section of the result will expand any - // resource attached to an IAM policy to include resources lower in the - // resource hierarchy. - // - // For example, if the request analyzes for which resources user A has - // permission P, and the results include an IAM policy with P on a GCP - // folder, the results will also include resources in that folder with - // permission P. - // - // If [resource_selector][] is specified, the resource section of the result - // will be determined by the selector, and this flag will have no effect. - // Default is false. - bool expand_resources = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the result will output resource edges, starting - // from the policy attached resource, to any expanded resources. - // Default is false. - bool output_resource_edges = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the result will output group identity edges, starting - // from the binding's group members, to any expanded identities. - // Default is false. - bool output_group_edges = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If true, the response will include access analysis from identities to - // resources via service account impersonation. This is a very expensive - // operation, because many derived queries will be executed. - // - // For example, if the request analyzes for which resources user A has - // permission P, and there's an IAM policy states user A has - // iam.serviceAccounts.getAccessToken permission to a service account SA, - // and there's another IAM policy states service account SA has permission P - // to a GCP folder F, then user A potentially has access to the GCP folder - // F. And those advanced analysis results will be included in - // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. - // - // Another example, if the request analyzes for who has - // permission P to a GCP folder F, and there's an IAM policy states user A - // has iam.serviceAccounts.actAs permission to a service account SA, and - // there's another IAM policy states service account SA has permission P to - // the GCP folder F, then user A potentially has access to the GCP folder - // F. And those advanced analysis results will be included in - // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. - // - // Default is false. - bool analyze_service_account_impersonation = 6 [(google.api.field_behavior) = OPTIONAL]; - } - - // Required. The request query. - IamPolicyAnalysisQuery analysis_query = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The request options. - Options options = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Output configuration indicating where the results will be output to. - IamPolicyAnalysisOutputConfig output_config = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// The export IAM policy analysis response. This message is returned by the -// [google.longrunning.Operations.GetOperation][] method in the returned -// [google.longrunning.Operation.response][] field. -message ExportIamPolicyAnalysisResponse { - // Output configuration indicating where the results were output to. - IamPolicyAnalysisOutputConfig output_config = 1; -} diff --git a/google/cloud/asset/v1p4beta1/assets.proto b/google/cloud/asset/v1p4beta1/assets.proto deleted file mode 100644 index 0d7c5e055..000000000 --- a/google/cloud/asset/v1p4beta1/assets.proto +++ /dev/null @@ -1,167 +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.cloud.asset.v1p4beta1; - -import "google/iam/v1/policy.proto"; -import "google/rpc/code.proto"; -import "google/api/annotations.proto"; - -option cc_enable_arenas = true; -option csharp_namespace = "Google.Cloud.Asset.V1P4Beta1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/asset/v1p4beta1;asset"; -option java_multiple_files = true; -option java_outer_classname = "AssetProto"; -option java_package = "com.google.cloud.asset.v1p4beta1"; -option php_namespace = "Google\\Cloud\\Asset\\V1p4beta1"; - -// IAM Policy analysis result, consisting of one IAM policy binding and derived -// access control lists. -message IamPolicyAnalysisResult { - // Represents analysis state of each node in the result graph or non-critical - // errors in the response. - message AnalysisState { - // The Google standard error code that best describes the state. - // For example: - // - OK means the node has been successfully explored; - // - PERMISSION_DENIED means an access denied error is encountered; - // - DEADLINE_EXCEEDED means the node hasn't been explored in time; - google.rpc.Code code = 1; - - // The human-readable description of the cause of failure. - string cause = 2; - } - - // A GCP resource that appears in an access control list. - message Resource { - // The [full resource name](https://aip.dev/122#full-resource-names). - string full_resource_name = 1; - - // The analysis state of this resource node. - AnalysisState analysis_state = 2; - } - - // A role or permission that appears in an access control list. - message Access { - oneof oneof_access { - // The role. - string role = 1; - - // The permission. - string permission = 2; - } - - // The analysis state of this access node. - AnalysisState analysis_state = 3; - } - - // A directional edge. - message Edge { - // The source node of the edge. - string source_node = 1; - - // The target node of the edge. - string target_node = 2; - } - - // An identity that appears in an access control list. - message Identity { - // The identity name in any form of members appear in - // [IAM policy - // binding](https://cloud.google.com/iam/reference/rest/v1/Binding), such - // as: - // - user:foo@google.com - // - group:group1@google.com - // - serviceAccount:s1@prj1.iam.gserviceaccount.com - // - projectOwner:some_project_id - // - domain:google.com - // - allUsers - // - etc. - string name = 1; - - // The analysis state of this identity node. - AnalysisState analysis_state = 2; - } - - // An access control list, derived from the above IAM policy binding, which - // contains a set of resources and accesses. May include one - // item from each set to compose an access control entry. - // - // NOTICE that there could be multiple access control lists for one IAM policy - // binding. The access control lists are created based on resource and access - // combinations. - // - // For example, assume we have the following cases in one IAM policy binding: - // - Permission P1 and P2 apply to resource R1 and R2; - // - Permission P3 applies to resource R2 and R3; - // - // This will result in the following access control lists: - // - AccessControlList 1: [R1, R2], [P1, P2] - // - AccessControlList 2: [R2, R3], [P3] - message AccessControlList { - // The resources that match one of the following conditions: - // - The resource_selector, if it is specified in request; - // - Otherwise, resources reachable from the policy attached resource. - repeated Resource resources = 1; - - // The accesses that match one of the following conditions: - // - The access_selector, if it is specified in request; - // - Otherwise, access specifiers reachable from the policy binding's role. - repeated Access accesses = 2; - - // Resource edges of the graph starting from the policy attached - // resource to any descendant resources. The [Edge.source_node][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.Edge.source_node] contains - // the full resource name of a parent resource and [Edge.target_node][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.Edge.target_node] - // contains the full resource name of a child resource. This field is - // present only if the output_resource_edges option is enabled in request. - repeated Edge resource_edges = 3; - } - - message IdentityList { - // Only the identities that match one of the following conditions will be - // presented: - // - The identity_selector, if it is specified in request; - // - Otherwise, identities reachable from the policy binding's members. - repeated Identity identities = 1; - - // Group identity edges of the graph starting from the binding's - // group members to any node of the [identities][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.IdentityList.identities]. The [Edge.source_node][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.Edge.source_node] - // contains a group, such as "group:parent@google.com". The - // [Edge.target_node][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.Edge.target_node] contains a member of the group, - // such as "group:child@google.com" or "user:foo@google.com". - // This field is present only if the output_group_edges option is enabled in - // request. - repeated Edge group_edges = 2; - } - - // The full name of the resource to which the [iam_binding][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.iam_binding] policy attaches. - string attached_resource_full_name = 1; - - // The Cloud IAM policy binding under analysis. - google.iam.v1.Binding iam_binding = 2; - - // The access control lists derived from the [iam_binding][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.iam_binding] that match or - // potentially match resource and access selectors specified in the request. - repeated AccessControlList access_control_lists = 3; - - // The identity list derived from members of the [iam_binding][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.iam_binding] that match or - // potentially match identity selector specified in the request. - IdentityList identity_list = 4; - - // Represents whether all nodes in the transitive closure of the - // [iam_binding][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.iam_binding] node have been explored. - bool fully_explored = 5; -} diff --git a/google/cloud/asset/v1p4beta1/cloudasset_gapic.yaml b/google/cloud/asset/v1p4beta1/cloudasset_gapic.yaml deleted file mode 100644 index 863c6e293..000000000 --- a/google/cloud/asset/v1p4beta1/cloudasset_gapic.yaml +++ /dev/null @@ -1,13 +0,0 @@ -type: com.google.api.codegen.ConfigProto -config_schema_version: 2.0.0 -# A list of API interface configurations. -interfaces: -# The fully qualified name of the API interface. -- name: google.cloud.asset.v1p4beta1.AssetService - methods: - - name: ExportIamPolicyAnalysis - long_running: - initial_poll_delay_millis: 500 - poll_delay_multiplier: 1.5 - max_poll_delay_millis: 5000 - total_poll_timeout_millis: 300000 diff --git a/google/cloud/asset/v1p4beta1/cloudasset_grpc_service_config.json b/google/cloud/asset/v1p4beta1/cloudasset_grpc_service_config.json deleted file mode 100644 index 95f62b468..000000000 --- a/google/cloud/asset/v1p4beta1/cloudasset_grpc_service_config.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.cloud.asset.v1p4beta1.AssetService", - "method": "ExportIamPolicyAnalysis" - } - ], - "timeout": "60s" - }, - { - "name": [ - { - "service": "google.cloud.asset.v1p4beta1.AssetService", - "method": "AnalyzeIamPolicy" - } - ], - "timeout": "300s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE" - ] - } - } - ] -} diff --git a/google/cloud/asset/v1p4beta1/cloudasset_v1p4beta1.yaml b/google/cloud/asset/v1p4beta1/cloudasset_v1p4beta1.yaml deleted file mode 100644 index fe6be3970..000000000 --- a/google/cloud/asset/v1p4beta1/cloudasset_v1p4beta1.yaml +++ /dev/null @@ -1,44 +0,0 @@ -type: google.api.Service -config_version: 3 -name: cloudasset.googleapis.com -title: Cloud Asset API - -apis: -- name: google.cloud.asset.v1p4beta1.AssetService - -documentation: - summary: The cloud asset API manages the history and inventory of cloud resources. - overview: |- - # Cloud Asset API - - The Cloud Asset API keeps a history of Google Cloud Platform (GCP) asset - metadata, and allows GCP users to download a dump of all asset metadata - for the resource types listed below within an organization or a project at - a given timestamp. - - Read more documents here: - https://cloud.google.com/asset-inventory/docs - -backend: - rules: - - selector: google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy - deadline: 600.0 - - selector: google.cloud.asset.v1p4beta1.AssetService.ExportIamPolicyAnalysis - deadline: 600.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 60.0 - -authentication: - rules: - - selector: google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.asset.v1p4beta1.AssetService.ExportIamPolicyAnalysis - 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 diff --git a/google/cloud/asset/v1p5beta1/BUILD.bazel b/google/cloud/asset/v1p5beta1/BUILD.bazel index 01ca61a38..64bbc1b6c 100644 --- a/google/cloud/asset/v1p5beta1/BUILD.bazel +++ b/google/cloud/asset/v1p5beta1/BUILD.bazel @@ -68,6 +68,7 @@ java_gapic_library( ":asset_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":asset_java_proto", "//google/iam/v1:iam_java_proto", @@ -77,6 +78,7 @@ java_gapic_library( java_gapic_test( name = "asset_java_gapic_test_suite", test_classes = [ + "com.google.cloud.asset.v1p5beta1.AssetServiceClientHttpJsonTest", "com.google.cloud.asset.v1p5beta1.AssetServiceClientTest", ], runtime_deps = [":asset_java_gapic_test"], @@ -85,6 +87,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-asset-v1p5beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":asset_java_gapic", ":asset_java_grpc", @@ -123,6 +127,7 @@ go_gapic_library( grpc_service_config = "cloudasset_grpc_service_config.json", importpath = "cloud.google.com/go/asset/apiv1p5beta1;asset", service_yaml = "cloudasset_v1p5beta1.yaml", + transport = "grpc+rest", deps = [ ":asset_go_proto", "//google/iam/v1:iam_go_proto", @@ -153,12 +158,32 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "asset_py_gapic", srcs = [":asset_proto"], grpc_service_config = "cloudasset_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/cloud/orgpolicy/v1:orgpolicy_py_original_proto", + "//google/iam/v1:iam_policy_py_proto", + "//google/identity/accesscontextmanager/v1:access_level_py_proto", + "//google/identity/accesscontextmanager/v1:access_policy_py_proto", + "//google/identity/accesscontextmanager/v1:accesscontextmanager_py_gapic", + "//google/identity/accesscontextmanager/v1:service_perimeter_py_proto", + ], +) + +py_test( + name = "asset_py_gapic_test", + srcs = [ + "asset_py_gapic_pytest.py", + "asset_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":asset_py_gapic"], ) py_gapic_assembly_pkg( @@ -241,8 +266,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -260,7 +285,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "asset_ruby_gapic", - srcs = [":asset_proto_with_info",], + srcs = [":asset_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-asset-v1p5beta1"], deps = [ ":asset_ruby_grpc", diff --git a/google/cloud/asset/v1p5beta1/assets.proto b/google/cloud/asset/v1p5beta1/assets.proto index b9d1e1991..7ad133a54 100644 --- a/google/cloud/asset/v1p5beta1/assets.proto +++ b/google/cloud/asset/v1p5beta1/assets.proto @@ -16,16 +16,13 @@ syntax = "proto3"; package google.cloud.asset.v1p5beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/orgpolicy/v1/orgpolicy.proto"; import "google/iam/v1/policy.proto"; import "google/identity/accesscontextmanager/v1/access_level.proto"; import "google/identity/accesscontextmanager/v1/access_policy.proto"; import "google/identity/accesscontextmanager/v1/service_perimeter.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Asset.V1p5Beta1"; diff --git a/google/cloud/asset/v1p7beta1/BUILD.bazel b/google/cloud/asset/v1p7beta1/BUILD.bazel index db84fe5b6..926cd0d75 100644 --- a/google/cloud/asset/v1p7beta1/BUILD.bazel +++ b/google/cloud/asset/v1p7beta1/BUILD.bazel @@ -98,6 +98,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-asset-v1p7beta1-java", + transport = "grpc+rest", deps = [ ":asset_java_gapic", ":asset_java_grpc", @@ -181,8 +182,20 @@ py_gapic_library( name = "asset_py_gapic", srcs = [":asset_proto"], grpc_service_config = "cloudasset_grpc_service_config.json", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "asset_py_gapic_test", +# srcs = [ +# "asset_py_gapic_pytest.py", +# "asset_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":asset_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "asset-v1p7beta1-py", @@ -266,8 +279,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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,7 +298,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "asset_ruby_gapic", - srcs = [":asset_proto_with_info",], + srcs = [":asset_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-asset-v1p7beta1"], deps = [ ":asset_ruby_grpc", diff --git a/google/cloud/asset/v1p7beta1/asset_service.proto b/google/cloud/asset/v1p7beta1/asset_service.proto index e9d7805d4..18fcff6c4 100644 --- a/google/cloud/asset/v1p7beta1/asset_service.proto +++ b/google/cloud/asset/v1p7beta1/asset_service.proto @@ -22,8 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/asset/v1p7beta1/assets.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.Asset.V1P7Beta1"; diff --git a/google/cloud/asset/v1p7beta1/assets.proto b/google/cloud/asset/v1p7beta1/assets.proto index 506bbea22..26ac6b205 100644 --- a/google/cloud/asset/v1p7beta1/assets.proto +++ b/google/cloud/asset/v1p7beta1/assets.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.asset.v1p7beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/orgpolicy/v1/orgpolicy.proto"; import "google/cloud/osconfig/v1/inventory.proto"; @@ -24,7 +23,6 @@ import "google/iam/v1/policy.proto"; import "google/identity/accesscontextmanager/v1/access_level.proto"; import "google/identity/accesscontextmanager/v1/access_policy.proto"; import "google/identity/accesscontextmanager/v1/service_perimeter.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/BUILD.bazel b/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/BUILD.bazel new file mode 100644 index 000000000..8cb928a88 --- /dev/null +++ b/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/BUILD.bazel @@ -0,0 +1,173 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "regulatory_intercept_ack_log_entry.proto", + ], + deps = [ + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/assuredworkloads/regulatoryintercept/logging/v1", + protos = [":logging_proto"], + deps = [ + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + ], +) + +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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/regulatory_intercept_ack_log_entry.proto b/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/regulatory_intercept_ack_log_entry.proto new file mode 100644 index 000000000..ade950941 --- /dev/null +++ b/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/regulatory_intercept_ack_log_entry.proto @@ -0,0 +1,32 @@ +// 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.cloud.assuredworkloads.regulatoryintercept.logging.v1; + +option go_package = "google.golang.org/genproto/googleapis/cloud/assuredworkloads/regulatoryintercept/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "RegulatoryInterceptAckLogEntryProto"; +option java_package = "com.google.cloud.assuredworkloads.regulatoryintercept.logging.v1"; + +message RegulatoryInterceptAckLogEntry { + // The id of the user that triggered the Regulatory Intercept. + string user_id = 1; + + // The id of the GCP resource associated with the Assured Workload applicable + // to the request. Must be of the format + // //cloudresourcemanager.googleapis.com/{type}/{id} + string assured_workload_resource_id = 2; +} diff --git a/google/cloud/assuredworkloads/v1/BUILD.bazel b/google/cloud/assuredworkloads/v1/BUILD.bazel index ffe56f208..775e3c92f 100644 --- a/google/cloud/assuredworkloads/v1/BUILD.bazel +++ b/google/cloud/assuredworkloads/v1/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":assuredworkloads_java_grpc", ], + transport = "grpc+rest", deps = [ ":assuredworkloads_java_proto", "//google/api:api_java_proto", @@ -85,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "assuredworkloads_java_gapic_test_suite", test_classes = [ + "com.google.cloud.assuredworkloads.v1.AssuredWorkloadsServiceClientHttpJsonTest", "com.google.cloud.assuredworkloads.v1.AssuredWorkloadsServiceClientTest", ], runtime_deps = [":assuredworkloads_java_gapic_test"], @@ -93,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-assuredworkloads-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":assuredworkloads_java_gapic", ":assuredworkloads_java_grpc", @@ -130,6 +134,7 @@ go_gapic_library( importpath = "cloud.google.com/go/assuredworkloads/apiv1;assuredworkloads", metadata = True, service_yaml = "assuredworkloads_v1.yaml", + transport = "grpc+rest", deps = [ ":assuredworkloads_go_proto", "//google/longrunning:longrunning_go_proto", @@ -164,12 +169,26 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "assuredworkloads_py_gapic", srcs = [":assuredworkloads_proto"], grpc_service_config = "assuredworkloads_grpc_service_config.json", + opt_args = ["warehouse-package-name=google-cloud-assured-workloads"], + service_yaml = "assuredworkloads_v1.yaml", + transport = "grpc", +) + +py_test( + name = "assuredworkloads_py_gapic_test", + srcs = [ + "assuredworkloads_py_gapic_pytest.py", + "assuredworkloads_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":assuredworkloads_py_gapic"], ) # Open Source Packages @@ -286,6 +305,7 @@ ruby_cloud_gapic_library( grpc_service_config = "assuredworkloads_grpc_service_config.json", ruby_cloud_description = "Assured Workloads for Government secures government workloads and accelerates the path to running compliant workloads on Google Cloud.", ruby_cloud_title = "Assured Workloads for Government V1", + service_yaml = "assuredworkloads_v1.yaml", deps = [ ":assuredworkloads_ruby_grpc", ":assuredworkloads_ruby_proto", @@ -329,6 +349,7 @@ csharp_gapic_library( srcs = [":assuredworkloads_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "assuredworkloads_grpc_service_config.json", + service_yaml = "assuredworkloads_v1.yaml", deps = [ ":assuredworkloads_csharp_grpc", ":assuredworkloads_csharp_proto", diff --git a/google/cloud/assuredworkloads/v1/assuredworkloads.proto b/google/cloud/assuredworkloads/v1/assuredworkloads.proto index 43cab1f99..9d4045e46 100644 --- a/google/cloud/assuredworkloads/v1/assuredworkloads.proto +++ b/google/cloud/assuredworkloads/v1/assuredworkloads.proto @@ -341,6 +341,9 @@ message Workload { // Assured Workloads For Canada Regions and Support controls CA_REGIONS_AND_SUPPORT = 9; + + // International Traffic in Arms Regulations + ITAR = 10; } // Key Access Justifications(KAJ) Enrollment State. diff --git a/google/cloud/assuredworkloads/v1beta1/BUILD.bazel b/google/cloud/assuredworkloads/v1beta1/BUILD.bazel index 26cb259ea..08dd4126b 100644 --- a/google/cloud/assuredworkloads/v1beta1/BUILD.bazel +++ b/google/cloud/assuredworkloads/v1beta1/BUILD.bazel @@ -21,7 +21,8 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "assuredworkloads_proto", srcs = [ - "assuredworkloads_v1beta1.proto", + "assuredworkloads.proto", + "assuredworkloads_service.proto", ], deps = [ "//google/api:annotations_proto", @@ -76,6 +77,7 @@ java_gapic_library( test_deps = [ ":assuredworkloads_java_grpc", ], + transport = "grpc+rest", deps = [ ":assuredworkloads_java_proto", "//google/api:api_java_proto", @@ -85,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "assuredworkloads_java_gapic_test_suite", test_classes = [ + "com.google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsServiceClientHttpJsonTest", "com.google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsServiceClientTest", ], runtime_deps = [":assuredworkloads_java_gapic_test"], @@ -93,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-assuredworkloads-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":assuredworkloads_java_gapic", ":assuredworkloads_java_grpc", @@ -130,6 +135,7 @@ go_gapic_library( importpath = "cloud.google.com/go/assuredworkloads/apiv1beta1;assuredworkloads", metadata = True, service_yaml = "assuredworkloads_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":assuredworkloads_go_proto", "//google/longrunning:longrunning_go_proto", @@ -164,12 +170,26 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "assuredworkloads_py_gapic", srcs = [":assuredworkloads_proto"], grpc_service_config = "assuredworkloads_grpc_service_config.json", + opt_args = ["warehouse-package-name=google-cloud-assured-workloads"], + service_yaml = "assuredworkloads_v1beta1.yaml", + transport = "grpc", +) + +py_test( + name = "assuredworkloads_py_gapic_test", + srcs = [ + "assuredworkloads_py_gapic_pytest.py", + "assuredworkloads_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":assuredworkloads_py_gapic"], ) # Open Source Packages @@ -286,6 +306,7 @@ ruby_cloud_gapic_library( grpc_service_config = "assuredworkloads_grpc_service_config.json", ruby_cloud_description = "Assured Workloads for Government secures government workloads and accelerates the path to running compliant workloads on Google Cloud.", ruby_cloud_title = "Assured Workloads for Government V1beta1", + service_yaml = "assuredworkloads_v1beta1.yaml", deps = [ ":assuredworkloads_ruby_grpc", ":assuredworkloads_ruby_proto", @@ -329,6 +350,7 @@ csharp_gapic_library( srcs = [":assuredworkloads_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "assuredworkloads_grpc_service_config.json", + service_yaml = "assuredworkloads_v1beta1.yaml", deps = [ ":assuredworkloads_csharp_grpc", ":assuredworkloads_csharp_proto", diff --git a/google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto b/google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto new file mode 100644 index 000000000..e6a83fae4 --- /dev/null +++ b/google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto @@ -0,0 +1,564 @@ +// 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.cloud.assuredworkloads.v1beta1; + +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"; + +option csharp_namespace = "Google.Cloud.AssuredWorkloads.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/assuredworkloads/v1beta1;assuredworkloads"; +option java_multiple_files = true; +option java_outer_classname = "AssuredworkloadsProto"; +option java_package = "com.google.cloud.assuredworkloads.v1beta1"; +option php_namespace = "Google\\Cloud\\AssuredWorkloads\\V1beta1"; +option ruby_package = "Google::Cloud::AssuredWorkloads::V1beta1"; +option (google.api.resource_definition) = { + type: "assuredworkloads.googleapis.com/Location" + pattern: "organizations/{organization}/locations/{location}" +}; + +// Request for creating a workload. +message CreateWorkloadRequest { + // Required. The resource name of the new Workload's parent. + // Must be of the form `organizations/{org_id}/locations/{location_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "assuredworkloads.googleapis.com/Workload" + } + ]; + + // Required. Assured Workload to create + Workload workload = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A identifier associated with the workload and underlying projects which + // allows for the break down of billing costs for a workload. The value + // provided for the identifier will add a label to the workload and contained + // projects with the identifier as the value. + string external_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for Updating a workload. +message UpdateWorkloadRequest { + // Required. The workload to update. + // The workload's `name` field is used to identify the workload to be updated. + // Format: + // organizations/{org_id}/locations/{location_id}/workloads/{workload_id} + Workload workload = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for restricting list of available resources in Workload environment. +message RestrictAllowedResourcesRequest { + // The type of restriction. + enum RestrictionType { + // Unknown restriction type. + RESTRICTION_TYPE_UNSPECIFIED = 0; + + // Allow the use all of all gcp products, irrespective of the compliance + // posture. This effectively removes gcp.restrictServiceUsage OrgPolicy + // on the AssuredWorkloads Folder. + ALLOW_ALL_GCP_RESOURCES = 1; + + // Based on Workload's compliance regime, allowed list changes. + // See - https://cloud.google.com/assured-workloads/docs/supported-products + // for the list of supported resources. + ALLOW_COMPLIANT_RESOURCES = 2; + } + + // Required. The resource name of the Workload. This is the workloads's + // relative path in the API, formatted as + // "organizations/{organization_id}/locations/{location_id}/workloads/{workload_id}". + // For example, + // "organizations/123/locations/us-east1/workloads/assured-workload-1". + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of restriction for using gcp products in the Workload environment. + RestrictionType restriction_type = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response for restricting the list of allowed resources. +message RestrictAllowedResourcesResponse { + +} + +// Request for deleting a Workload. +message DeleteWorkloadRequest { + // Required. The `name` field is used to identify the workload. + // Format: + // organizations/{org_id}/locations/{location_id}/workloads/{workload_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "assuredworkloads.googleapis.com/Workload" + } + ]; + + // Optional. The etag of the workload. + // If this is provided, it must match the server's etag. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for fetching a workload. +message GetWorkloadRequest { + // Required. The resource name of the Workload to fetch. This is the workloads's + // relative path in the API, formatted as + // "organizations/{organization_id}/locations/{location_id}/workloads/{workload_id}". + // For example, + // "organizations/123/locations/us-east1/workloads/assured-workload-1". + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "assuredworkloads.googleapis.com/Workload" + } + ]; +} + +// A request to analyze a hypothetical move of a source project or project-based +// workload to a target (destination) folder-based workload. +message AnalyzeWorkloadMoveRequest { + // The resource type to be moved to the destination workload. It can be either + // an existing project or a project-based workload. + oneof projectOrWorkloadResource { + // The source type is a project-based workload. Specify the workloads's + // relative resource name, formatted as: + // "organizations/{ORGANIZATION_ID}/locations/{LOCATION_ID}/workloads/{WORKLOAD_ID}" + // For example: + // "organizations/123/locations/us-east1/workloads/assured-workload-1" + string source = 1; + + // The source type is a project. Specify the project's relative resource + // name, formatted as either a project number or a project ID: + // "projects/{PROJECT_NUMBER}" or "projects/{PROJECT_ID}" + // For example: + // "projects/951040570662" when specifying a project number, or + // "projects/my-project-123" when specifying a project ID. + string project = 3; + } + + // Required. The resource ID of the folder-based destination workload. This workload is + // where the source project will hypothetically be moved to. Specify the + // workload's relative resource name, formatted as: + // "organizations/{ORGANIZATION_ID}/locations/{LOCATION_ID}/workloads/{WORKLOAD_ID}" + // For example: + // "organizations/123/locations/us-east1/workloads/assured-workload-2" + string target = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A response that includes the analysis of the hypothetical resource move. +message AnalyzeWorkloadMoveResponse { + // A list of blockers that should be addressed before moving the source + // project or project-based workload to the destination folder-based workload. + repeated string blockers = 1; +} + +// Request for fetching workloads in an organization. +message ListWorkloadsRequest { + // Required. Parent Resource to list workloads from. + // Must be of the form `organizations/{org_id}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "assuredworkloads.googleapis.com/Workload" + } + ]; + + // Page size. + int32 page_size = 2; + + // Page token returned from previous request. Page token contains context from + // previous request. Page token needs to be passed in the second and following + // requests. + string page_token = 3; + + // A custom filter for filtering by properties of a workload. At this time, + // only filtering by labels is supported. + string filter = 4; +} + +// Response of ListWorkloads endpoint. +message ListWorkloadsResponse { + // List of Workloads under a given parent. + repeated Workload workloads = 1; + + // The next page token. Return empty if reached the last page. + string next_page_token = 2; +} + +// An Workload object for managing highly regulated workloads of cloud +// customers. +message Workload { + option (google.api.resource) = { + type: "assuredworkloads.googleapis.com/Workload" + pattern: "organizations/{organization}/locations/{location}/workloads/{workload}" + }; + + // Represent the resources that are children of this Workload. + message ResourceInfo { + // The type of resource. + enum ResourceType { + // Unknown resource type. + RESOURCE_TYPE_UNSPECIFIED = 0; + + // Deprecated. Existing workloads will continue to support this, but new + // CreateWorkloadRequests should not specify this as an input value. + CONSUMER_PROJECT = 1 [deprecated = true]; + + // Consumer Folder. + CONSUMER_FOLDER = 4; + + // Consumer project containing encryption keys. + ENCRYPTION_KEYS_PROJECT = 2; + + // Keyring resource that hosts encryption keys. + KEYRING = 3; + } + + // Resource identifier. + // For a project this represents project_number. + int64 resource_id = 1; + + // Indicates the type of resource. + ResourceType resource_type = 2; + } + + // Supported Compliance Regimes. + enum ComplianceRegime { + // Unknown compliance regime. + COMPLIANCE_REGIME_UNSPECIFIED = 0; + + // Information protection as per DoD IL4 requirements. + IL4 = 1; + + // Criminal Justice Information Services (CJIS) Security policies. + CJIS = 2; + + // FedRAMP High data protection controls + FEDRAMP_HIGH = 3; + + // FedRAMP Moderate data protection controls + FEDRAMP_MODERATE = 4; + + // Assured Workloads For US Regions data protection controls + US_REGIONAL_ACCESS = 5; + + // Health Insurance Portability and Accountability Act controls + HIPAA = 6; + + // Health Information Trust Alliance controls + HITRUST = 7; + + // Assured Workloads For EU Regions and Support controls + EU_REGIONS_AND_SUPPORT = 8; + + // Assured Workloads For Canada Regions and Support controls + CA_REGIONS_AND_SUPPORT = 9; + + // International Traffic in Arms Regulations + ITAR = 10; + + // Assured Workloads for Australia Regions and Support controls + AU_REGIONS_AND_US_SUPPORT = 11; + } + + // Settings specific to the Key Management Service. + message KMSSettings { + option deprecated = true; + + // Required. Input only. Immutable. The time at which the Key Management Service will automatically create a + // new version of the crypto key and mark it as the primary. + google.protobuf.Timestamp next_rotation_time = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Input only. Immutable. [next_rotation_time] will be advanced by this period when the Key + // Management Service automatically rotates a key. Must be at least 24 hours + // and at most 876,000 hours. + google.protobuf.Duration rotation_period = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + } + + // Settings specific to resources needed for IL4. + message IL4Settings { + option deprecated = true; + + // Input only. Immutable. Settings used to create a CMEK crypto key. + KMSSettings kms_settings = 1 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + } + + // Settings specific to resources needed for CJIS. + message CJISSettings { + option deprecated = true; + + // Input only. Immutable. Settings used to create a CMEK crypto key. + KMSSettings kms_settings = 1 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + } + + // Settings specific to resources needed for FedRAMP High. + message FedrampHighSettings { + option deprecated = true; + + // Input only. Immutable. Settings used to create a CMEK crypto key. + KMSSettings kms_settings = 1 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + } + + // Settings specific to resources needed for FedRAMP Moderate. + message FedrampModerateSettings { + option deprecated = true; + + // Input only. Immutable. Settings used to create a CMEK crypto key. + KMSSettings kms_settings = 1 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + } + + // Represent the custom settings for the resources to be created. + message ResourceSettings { + // Resource identifier. + // For a project this represents project_id. If the project is already + // taken, the workload creation will fail. + // For KeyRing, this represents the keyring_id. + // For a folder, don't set this value as folder_id is assigned by Google. + string resource_id = 1; + + // Indicates the type of resource. This field should be specified to + // correspond the id to the right project type (CONSUMER_PROJECT or + // ENCRYPTION_KEYS_PROJECT) + ResourceInfo.ResourceType resource_type = 2; + + // User-assigned resource display name. + // If not empty it will be used to create a resource with the specified + // name. + string display_name = 3; + } + + // Key Access Justifications(KAJ) Enrollment State. + enum KajEnrollmentState { + // Default State for KAJ Enrollment. + KAJ_ENROLLMENT_STATE_UNSPECIFIED = 0; + + // Pending State for KAJ Enrollment. + KAJ_ENROLLMENT_STATE_PENDING = 1; + + // Complete State for KAJ Enrollment. + KAJ_ENROLLMENT_STATE_COMPLETE = 2; + } + + // Signed Access Approvals (SAA) enrollment response. + message SaaEnrollmentResponse { + // Setup state of SAA enrollment. + enum SetupState { + // Unspecified. + SETUP_STATE_UNSPECIFIED = 0; + + // SAA enrollment pending. + STATUS_PENDING = 1; + + // SAA enrollment comopleted. + STATUS_COMPLETE = 2; + } + + // Setup error of SAA enrollment. + enum SetupError { + // Unspecified. + SETUP_ERROR_UNSPECIFIED = 0; + + // Invalid states for all customers, to be redirected to AA UI for + // additional details. + ERROR_INVALID_BASE_SETUP = 1; + + // Returned when there is not an EKM key configured. + ERROR_MISSING_EXTERNAL_SIGNING_KEY = 2; + + // Returned when there are no enrolled services or the customer is + // enrolled in CAA only for a subset of services. + ERROR_NOT_ALL_SERVICES_ENROLLED = 3; + + // Returned when exception was encountered during evaluation of other + // criteria. + ERROR_SETUP_CHECK_FAILED = 4; + } + + // Indicates SAA enrollment status of a given workload. + optional SetupState setup_status = 1; + + // Indicates SAA enrollment setup error if any. + repeated SetupError setup_errors = 2; + } + + // Optional. The resource name of the workload. + // Format: + // organizations/{organization}/locations/{location}/workloads/{workload} + // + // Read-only. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The user-assigned display name of the Workload. + // When present it must be between 4 to 30 characters. + // Allowed characters are: lowercase and uppercase letters, numbers, + // hyphen, and spaces. + // + // Example: My Workload + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The resources associated with this workload. + // These resources will be created when creating the workload. + // If any of the projects already exist, the workload creation will fail. + // Always read only. + repeated ResourceInfo resources = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. Compliance Regime associated with this workload. + ComplianceRegime compliance_regime = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. Immutable. The Workload creation timestamp. + google.protobuf.Timestamp create_time = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. The billing account used for the resources which are + // direct children of workload. This billing account is initially associated + // with the resources created as part of Workload creation. + // After the initial creation of these resources, the customer can change + // the assigned billing account. + // The resource name has the form + // `billingAccounts/{billing_account_id}`. For example, + // `billingAccounts/012345-567890-ABCDEF`. + string billing_account = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Settings specific to the selected [compliance_regime] + oneof compliance_regime_settings { + // Input only. Immutable. Settings specific to resources needed for IL4. + IL4Settings il4_settings = 7 [ + deprecated = true, + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Input only. Immutable. Settings specific to resources needed for CJIS. + CJISSettings cjis_settings = 8 [ + deprecated = true, + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Input only. Immutable. Settings specific to resources needed for FedRAMP High. + FedrampHighSettings fedramp_high_settings = 11 [ + deprecated = true, + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Input only. Immutable. Settings specific to resources needed for FedRAMP Moderate. + FedrampModerateSettings fedramp_moderate_settings = 12 [ + deprecated = true, + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + } + + // Optional. ETag of the workload, it is calculated on the basis + // of the Workload contents. It will be used in Update & Delete operations. + string etag = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Labels applied to the workload. + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Input only. The parent resource for the resources managed by this Assured Workload. May + // be either empty or a folder resource which is a child of the + // Workload parent. If not specified all resources are created under the + // parent organization. + // Format: + // folders/{folder_id} + string provisioned_resources_parent = 13 [(google.api.field_behavior) = INPUT_ONLY]; + + // Input only. Settings used to create a CMEK crypto key. When set, a project with a KMS + // CMEK key is provisioned. + // This field is deprecated as of Feb 28, 2022. + // In order to create a Keyring, callers should specify, + // ENCRYPTION_KEYS_PROJECT or KEYRING in ResourceSettings.resource_type field. + KMSSettings kms_settings = 14 [ + deprecated = true, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Input only. Resource properties that are used to customize workload resources. + // These properties (such as custom project id) will be used to create + // workload resources if possible. This field is optional. + repeated ResourceSettings resource_settings = 15 [(google.api.field_behavior) = INPUT_ONLY]; + + // Output only. Represents the KAJ enrollment state of the given workload. + KajEnrollmentState kaj_enrollment_state = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Indicates the sovereignty status of the given workload. + // Currently meant to be used by Europe/Canada customers. + bool enable_sovereign_controls = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Represents the SAA enrollment response of the given workload. + // SAA enrollment response is queried during GetWorkload call. + // In failure cases, user friendly error message is shown in SAA details page. + SaaEnrollmentResponse saa_enrollment_response = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Urls for services which are compliant for this Assured Workload, but which + // are currently disallowed by the ResourceUsageRestriction org policy. + // Invoke RestrictAllowedResources endpoint to allow your project developers + // to use these services in their environment." + repeated string compliant_but_disallowed_services = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Operation metadata to give request details of CreateWorkload. +message CreateWorkloadOperationMetadata { + // Optional. Time when the operation was created. + google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The display name of the workload. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The parent of the workload. + string parent = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Compliance controls that should be applied to the resources managed by + // the workload. + Workload.ComplianceRegime compliance_regime = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Resource properties in the input that are used for creating/customizing + // workload resources. + repeated Workload.ResourceSettings resource_settings = 5 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/assuredworkloads/v1beta1/assuredworkloads_grpc_service_config.json b/google/cloud/assuredworkloads/v1beta1/assuredworkloads_grpc_service_config.json index d4c858a50..1658f4895 100644 --- a/google/cloud/assuredworkloads/v1beta1/assuredworkloads_grpc_service_config.json +++ b/google/cloud/assuredworkloads/v1beta1/assuredworkloads_grpc_service_config.json @@ -25,11 +25,11 @@ }, { "service": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService", - "method": "CheckWorkloadsAvailability" + "method": "DeleteWorkload" }, { "service": "google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService", - "method": "DeleteWorkload" + "method": "AnalyzeWorkloadMove" }, { "service": "google.longrunning.Operations", diff --git a/google/cloud/assuredworkloads/v1beta1/assuredworkloads_service.proto b/google/cloud/assuredworkloads/v1beta1/assuredworkloads_service.proto new file mode 100644 index 000000000..1af45f12a --- /dev/null +++ b/google/cloud/assuredworkloads/v1beta1/assuredworkloads_service.proto @@ -0,0 +1,100 @@ +// 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.cloud.assuredworkloads.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Google.Cloud.AssuredWorkloads.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/assuredworkloads/v1beta1;assuredworkloads"; +option java_multiple_files = true; +option java_outer_classname = "AssuredworkloadsServiceProto"; +option java_package = "com.google.cloud.assuredworkloads.v1beta1"; +option php_namespace = "Google\\Cloud\\AssuredWorkloads\\V1beta1"; +option ruby_package = "Google::Cloud::AssuredWorkloads::V1beta1"; + +// Service to manage AssuredWorkloads. +service AssuredWorkloadsService { + option (google.api.default_host) = "assuredworkloads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates Assured Workload. + rpc CreateWorkload(CreateWorkloadRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=organizations/*/locations/*}/workloads" + body: "workload" + }; + option (google.api.method_signature) = "parent,workload"; + option (google.longrunning.operation_info) = { + response_type: "Workload" + metadata_type: "CreateWorkloadOperationMetadata" + }; + } + + // Updates an existing workload. + // Currently allows updating of workload display_name and labels. + // For force updates don't set etag field in the Workload. + // Only one update operation per workload can be in progress. + rpc UpdateWorkload(UpdateWorkloadRequest) returns (Workload) { + option (google.api.method_signature) = "workload,update_mask"; + } + + // Restrict the list of resources allowed in the Workload environment. + // The current list of allowed products can be found at + // https://cloud.google.com/assured-workloads/docs/supported-products + // In addition to assuredworkloads.workload.update permission, the user should + // also have orgpolicy.policy.set permission on the folder resource + // to use this functionality. + rpc RestrictAllowedResources(RestrictAllowedResourcesRequest) returns (RestrictAllowedResourcesResponse) { + option (google.api.http) = { + post: "/v1beta1/{name=organizations/*/locations/*/workloads/*}:restrictAllowedResources" + body: "*" + }; + } + + // Deletes the workload. Make sure that workload's direct children are already + // in a deleted state, otherwise the request will fail with a + // FAILED_PRECONDITION error. + // In addition to assuredworkloads.workload.delete permission, the user should + // also have orgpolicy.policy.set permission on the deleted folder to remove + // Assured Workloads OrgPolicies. + rpc DeleteWorkload(DeleteWorkloadRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta1/{name=organizations/*/locations/*/workloads/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets Assured Workload associated with a CRM Node + rpc GetWorkload(GetWorkloadRequest) returns (Workload) { + option (google.api.method_signature) = "name"; + } + + // Analyze if the source Assured Workloads can be moved to the target Assured + // Workload + rpc AnalyzeWorkloadMove(AnalyzeWorkloadMoveRequest) returns (AnalyzeWorkloadMoveResponse) { + option (google.api.method_signature) = "project,target"; + } + + // Lists Assured Workloads under a CRM Node. + rpc ListWorkloads(ListWorkloadsRequest) returns (ListWorkloadsResponse) { + option (google.api.method_signature) = "parent"; + } +} diff --git a/google/cloud/assuredworkloads/v1beta1/assuredworkloads_v1beta1.proto b/google/cloud/assuredworkloads/v1beta1/assuredworkloads_v1beta1.proto deleted file mode 100644 index 2845b2ec0..000000000 --- a/google/cloud/assuredworkloads/v1beta1/assuredworkloads_v1beta1.proto +++ /dev/null @@ -1,554 +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 google.cloud.assuredworkloads.v1beta1; - -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/empty.proto"; -import "google/protobuf/field_mask.proto"; -import "google/protobuf/timestamp.proto"; - -option csharp_namespace = "Google.Cloud.AssuredWorkloads.V1Beta1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/assuredworkloads/v1beta1;assuredworkloads"; -option java_multiple_files = true; -option java_outer_classname = "AssuredworkloadsProto"; -option java_package = "com.google.cloud.assuredworkloads.v1beta1"; -option php_namespace = "Google\\Cloud\\AssuredWorkloads\\V1beta1"; -option ruby_package = "Google::Cloud::AssuredWorkloads::V1beta1"; -option (google.api.resource_definition) = { - type: "assuredworkloads.googleapis.com/Location" - pattern: "organizations/{organization}/locations/{location}" -}; - -// Service to manage AssuredWorkloads. -service AssuredWorkloadsService { - option (google.api.default_host) = "assuredworkloads.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform"; - - // Creates Assured Workload. - rpc CreateWorkload(CreateWorkloadRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1beta1/{parent=organizations/*/locations/*}/workloads" - body: "workload" - }; - option (google.api.method_signature) = "parent,workload"; - option (google.longrunning.operation_info) = { - response_type: "Workload" - metadata_type: "CreateWorkloadOperationMetadata" - }; - } - - // Updates an existing workload. - // Currently allows updating of workload display_name and labels. - // For force updates don't set etag field in the Workload. - // Only one update operation per workload can be in progress. - rpc UpdateWorkload(UpdateWorkloadRequest) returns (Workload) { - option (google.api.http) = { - patch: "/v1beta1/{workload.name=organizations/*/locations/*/workloads/*}" - body: "workload" - }; - option (google.api.method_signature) = "workload,update_mask"; - } - - // Deletes the workload. Make sure that workload's direct children are already - // in a deleted state, otherwise the request will fail with a - // FAILED_PRECONDITION error. - rpc DeleteWorkload(DeleteWorkloadRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta1/{name=organizations/*/locations/*/workloads/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Gets Assured Workload associated with a CRM Node - rpc GetWorkload(GetWorkloadRequest) returns (Workload) { - option (google.api.http) = { - get: "/v1beta1/{name=organizations/*/locations/*/workloads/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Lists Assured Workloads under a CRM Node. - rpc ListWorkloads(ListWorkloadsRequest) returns (ListWorkloadsResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=organizations/*/locations/*}/workloads" - }; - option (google.api.method_signature) = "parent"; - } -} - -// Request for creating a workload. -message CreateWorkloadRequest { - // Required. The resource name of the new Workload's parent. - // Must be of the form `organizations/{org_id}/locations/{location_id}`. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "assuredworkloads.googleapis.com/Workload" - } - ]; - - // Required. Assured Workload to create - Workload workload = 2 [(google.api.field_behavior) = REQUIRED]; - - // Optional. A identifier associated with the workload and underlying projects - // which allows for the break down of billing costs for a workload. The value - // provided for the identifier will add a label to the workload and contained - // projects with the identifier as the value. - string external_id = 3 [(google.api.field_behavior) = OPTIONAL]; -} - -// Request for Updating a workload. -message UpdateWorkloadRequest { - // Required. The workload to update. - // The workload’s `name` field is used to identify the workload to be updated. - // Format: - // organizations/{org_id}/locations/{location_id}/workloads/{workload_id} - Workload workload = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of fields to be updated. - google.protobuf.FieldMask update_mask = 2 - [(google.api.field_behavior) = REQUIRED]; -} - -// Request for deleting a Workload. -message DeleteWorkloadRequest { - // Required. The `name` field is used to identify the workload. - // Format: - // organizations/{org_id}/locations/{location_id}/workloads/{workload_id} - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "assuredworkloads.googleapis.com/Workload" - } - ]; - - // Optional. The etag of the workload. - // If this is provided, it must match the server's etag. - string etag = 2 [(google.api.field_behavior) = OPTIONAL]; -} - -// Request for fetching a workload. -message GetWorkloadRequest { - // Required. The resource name of the Workload to fetch. This is the - // workloads's relative path in the API, formatted as - // "organizations/{organization_id}/locations/{location_id}/workloads/{workload_id}". - // For example, - // "organizations/123/locations/us-east1/workloads/assured-workload-1". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "assuredworkloads.googleapis.com/Workload" - } - ]; -} - -// Request for fetching workloads in an organization. -message ListWorkloadsRequest { - // Required. Parent Resource to list workloads from. - // Must be of the form `organizations/{org_id}/locations/{location}`. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "assuredworkloads.googleapis.com/Workload" - } - ]; - - // Page size. - int32 page_size = 2; - - // Page token returned from previous request. Page token contains context from - // previous request. Page token needs to be passed in the second and following - // requests. - string page_token = 3; - - // A custom filter for filtering by properties of a workload. At this time, - // only filtering by labels is supported. - string filter = 4; -} - -// Response of ListWorkloads endpoint. -message ListWorkloadsResponse { - // List of Workloads under a given parent. - repeated Workload workloads = 1; - - // The next page token. Return empty if reached the last page. - string next_page_token = 2; -} - -// An Workload object for managing highly regulated workloads of cloud -// customers. -message Workload { - option (google.api.resource) = { - type: "assuredworkloads.googleapis.com/Workload" - pattern: "organizations/{organization}/locations/{location}/workloads/{workload}" - }; - - // Represent the resources that are children of this Workload. - message ResourceInfo { - // The type of resource. - enum ResourceType { - // Unknown resource type. - RESOURCE_TYPE_UNSPECIFIED = 0; - - // Deprecated. Existing workloads will continue to support this, but new - // CreateWorkloadRequests should not specify this as an input value. - CONSUMER_PROJECT = 1 [deprecated = true]; - - // Consumer Folder. - CONSUMER_FOLDER = 4; - - // Consumer project containing encryption keys. - ENCRYPTION_KEYS_PROJECT = 2; - - // Keyring resource that hosts encryption keys. - KEYRING = 3; - } - - // Resource identifier. - // For a project this represents project_number. - int64 resource_id = 1; - - // Indicates the type of resource. - ResourceType resource_type = 2; - } - - // Settings specific to the Key Management Service. - message KMSSettings { - // Required. Input only. Immutable. The time at which the Key Management - // Service will automatically create a new version of the crypto key and - // mark it as the primary. - google.protobuf.Timestamp next_rotation_time = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Required. Input only. Immutable. [next_rotation_time] will be advanced by - // this period when the Key Management Service automatically rotates a key. - // Must be at least 24 hours and at most 876,000 hours. - google.protobuf.Duration rotation_period = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - } - - // Settings specific to resources needed for IL4. - message IL4Settings { - option deprecated = true; - - // Required. Input only. Immutable. Settings used to create a CMEK crypto - // key. - KMSSettings kms_settings = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - } - - // Settings specific to resources needed for CJIS. - message CJISSettings { - option deprecated = true; - - // Required. Input only. Immutable. Settings used to create a CMEK crypto - // key. - KMSSettings kms_settings = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - } - - // Settings specific to resources needed for FedRAMP High. - message FedrampHighSettings { - option deprecated = true; - - // Required. Input only. Immutable. Settings used to create a CMEK crypto - // key. - KMSSettings kms_settings = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - } - - // Settings specific to resources needed for FedRAMP Moderate. - message FedrampModerateSettings { - option deprecated = true; - - // Required. Input only. Immutable. Settings used to create a CMEK crypto - // key. - KMSSettings kms_settings = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - } - - // Represent the custom settings for the resources to be created. - message ResourceSettings { - // Resource identifier. - // For a project this represents project_id. If the project is already - // taken, the workload creation will fail. - string resource_id = 1; - - // Indicates the type of resource. This field should be specified to - // correspond the id to the right project type (CONSUMER_PROJECT or - // ENCRYPTION_KEYS_PROJECT) - ResourceInfo.ResourceType resource_type = 2; - - // User-assigned resource display name. - // If not empty it will be used to create a resource with the specified - // name. - string display_name = 3; - } - - // Signed Access Approvals (SAA) enrollment response. - message SaaEnrollmentResponse { - // Setup state of SAA enrollment. - enum SetupState { - // Unspecified. - SETUP_STATE_UNSPECIFIED = 0; - // SAA enrollment pending. - STATUS_PENDING = 1; - // SAA enrollment comopleted. - STATUS_COMPLETE = 2; - } - - // Setup error of SAA enrollment. - enum SetupError { - // Unspecified. - SETUP_ERROR_UNSPECIFIED = 0; - // Invalid states for all customers, to be redirected to AA UI for - // additional details. - ERROR_INVALID_BASE_SETUP = 1; - // Returned when there is not an EKM key configured. - ERROR_MISSING_EXTERNAL_SIGNING_KEY = 2; - // Returned when there are no enrolled services or the customer is - // enrolled in CAA only for a subset of services. - ERROR_NOT_ALL_SERVICES_ENROLLED = 3; - // Returned when exception was encountered during evaluation of other - // criteria. - ERROR_SETUP_CHECK_FAILED = 4; - } - - // Indicates SAA enrollment status of a given workload. - optional SetupState setup_status = 1; - - // Indicates SAA enrollment setup error if any. - repeated SetupError setup_errors = 2; - } - - // Supported Compliance Regimes. - enum ComplianceRegime { - // Unknown compliance regime. - COMPLIANCE_REGIME_UNSPECIFIED = 0; - - // Information protection as per DoD IL4 requirements. - IL4 = 1; - - // Criminal Justice Information Services (CJIS) Security policies. - CJIS = 2; - - // FedRAMP High data protection controls - FEDRAMP_HIGH = 3; - - // FedRAMP Moderate data protection controls - FEDRAMP_MODERATE = 4; - - // Assured Workloads For US Regions data protection controls - US_REGIONAL_ACCESS = 5; - - // Health Insurance Portability and Accountability Act controls - HIPAA = 6; - - // Health Information Trust Alliance controls - HITRUST = 7; - - // Assured Workloads For EU Regions and Support controls - EU_REGIONS_AND_SUPPORT = 8; - - // Assured Workloads For Canada Regions and Support controls - CA_REGIONS_AND_SUPPORT = 9; - } - - // Key Access Justifications(KAJ) Enrollment State. - enum KajEnrollmentState { - // Default State for KAJ Enrollment. - KAJ_ENROLLMENT_STATE_UNSPECIFIED = 0; - - // Pending State for KAJ Enrollment. - KAJ_ENROLLMENT_STATE_PENDING = 1; - - // Complete State for KAJ Enrollment. - KAJ_ENROLLMENT_STATE_COMPLETE = 2; - } - - // Optional. The resource name of the workload. - // Format: - // organizations/{organization}/locations/{location}/workloads/{workload} - // - // Read-only. - string name = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The user-assigned display name of the Workload. - // When present it must be between 4 to 30 characters. - // Allowed characters are: lowercase and uppercase letters, numbers, - // hyphen, and spaces. - // - // Example: My Workload - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Output only. The resources associated with this workload. - // These resources will be created when creating the workload. - // If any of the projects already exist, the workload creation will fail. - // Always read only. - repeated ResourceInfo resources = 3 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. Immutable. Compliance Regime associated with this workload. - ComplianceRegime compliance_regime = 4 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Output only. Immutable. The Workload creation timestamp. - google.protobuf.Timestamp create_time = 5 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Input only. The billing account used for the resources which are - // direct children of workload. This billing account is initially associated - // with the resources created as part of Workload creation. - // After the initial creation of these resources, the customer can change - // the assigned billing account. - // The resource name has the form - // `billingAccounts/{billing_account_id}`. For example, - // `billingAccounts/012345-567890-ABCDEF`. - string billing_account = 6 [(google.api.field_behavior) = INPUT_ONLY]; - - // Settings specific to the selected [compliance_regime] - oneof compliance_regime_settings { - // Required. Input only. Immutable. Settings specific to resources needed - // for IL4. - IL4Settings il4_settings = 7 [ - deprecated = true, - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Required. Input only. Immutable. Settings specific to resources needed - // for CJIS. - CJISSettings cjis_settings = 8 [ - deprecated = true, - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Required. Input only. Immutable. Settings specific to resources needed - // for FedRAMP High. - FedrampHighSettings fedramp_high_settings = 11 [ - deprecated = true, - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Required. Input only. Immutable. Settings specific to resources needed - // for FedRAMP Moderate. - FedrampModerateSettings fedramp_moderate_settings = 12 [ - deprecated = true, - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE - ]; - } - - // Optional. ETag of the workload, it is calculated on the basis - // of the Workload contents. It will be used in Update & Delete operations. - string etag = 9 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Labels applied to the workload. - map labels = 10 [(google.api.field_behavior) = OPTIONAL]; - - // Input only. The parent resource for the resources managed by this Assured - // Workload. May be either empty or a folder resource which is a child of the - // Workload parent. If not specified all resources are created under the - // parent organization. - // Format: - // folders/{folder_id} - string provisioned_resources_parent = 13 - [(google.api.field_behavior) = INPUT_ONLY]; - - // Input only. Settings used to create a CMEK crypto key. When set a project - // with a KMS CMEK key is provisioned. This field is mandatory for a subset of - // Compliance Regimes. - KMSSettings kms_settings = 14 [(google.api.field_behavior) = INPUT_ONLY]; - - // Input only. Resource properties that are used to customize workload - // resources. These properties (such as custom project id) will be used to - // create workload resources if possible. This field is optional. - repeated ResourceSettings resource_settings = 15 - [(google.api.field_behavior) = INPUT_ONLY]; - - // Output only. Represents the KAJ enrollment state of the given workload. - KajEnrollmentState kaj_enrollment_state = 17 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. Indicates the sovereignty status of the given workload. - // Currently meant to be used by Europe/Canada customers. - bool enable_sovereign_controls = 18 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. Represents the SAA enrollment response of the given workload. - // SAA enrollment response is queried during GetWorkload call. - // In failure cases, user friendly error message is shown in SAA details page. - SaaEnrollmentResponse saa_enrollment_response = 20 - [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Operation metadata to give request details of CreateWorkload. -message CreateWorkloadOperationMetadata { - // Optional. Time when the operation was created. - google.protobuf.Timestamp create_time = 1 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The display name of the workload. - string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The parent of the workload. - string parent = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Compliance controls that should be applied to the resources - // managed by the workload. - Workload.ComplianceRegime compliance_regime = 4 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Resource properties in the input that are used for - // creating/customizing workload resources. - repeated Workload.ResourceSettings resource_settings = 5 - [(google.api.field_behavior) = OPTIONAL]; -} diff --git a/google/cloud/assuredworkloads/v1beta1/assuredworkloads_v1beta1.yaml b/google/cloud/assuredworkloads/v1beta1/assuredworkloads_v1beta1.yaml index d029df468..850fa4e1e 100644 --- a/google/cloud/assuredworkloads/v1beta1/assuredworkloads_v1beta1.yaml +++ b/google/cloud/assuredworkloads/v1beta1/assuredworkloads_v1beta1.yaml @@ -5,6 +5,7 @@ title: Assured Workloads API apis: - name: google.cloud.assuredworkloads.v1beta1.AssuredWorkloadsService +- name: google.longrunning.Operations types: - name: google.cloud.assuredworkloads.v1beta1.CreateWorkloadOperationMetadata diff --git a/google/cloud/audit/BUILD.bazel b/google/cloud/audit/BUILD.bazel index 66543cd58..712939592 100644 --- a/google/cloud/audit/BUILD.bazel +++ b/google/cloud/audit/BUILD.bazel @@ -14,8 +14,8 @@ proto_library( "audit_log.proto", ], deps = [ - "//google/rpc/context:attribute_context_proto", "//google/rpc:status_proto", + "//google/rpc/context:attribute_context_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:struct_proto", ], @@ -39,16 +39,17 @@ proto_library( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg" ) java_proto_library( name = "audit_java_proto", - deps = [":audit_proto", - ":bigquery_audit_metadata_proto", - ], + deps = [ + ":audit_proto", + ":bigquery_audit_metadata_proto", + ], ) java_grpc_library( @@ -62,9 +63,10 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-audit-java", + transport = "grpc+rest", deps = [ - ":audit_java_proto", ":audit_java_grpc", + ":audit_java_proto", ":audit_proto", ], ) @@ -83,8 +85,8 @@ go_proto_library( importpath = "google.golang.org/genproto/googleapis/cloud/audit", protos = [":audit_proto"], deps = [ - "//google/rpc/context:attribute_context_go_proto", "//google/rpc:status_go_proto", + "//google/rpc/context:attribute_context_go_proto", ], ) @@ -102,8 +104,8 @@ moved_proto_library( name = "audit_moved_proto", srcs = [":audit_proto"], deps = [ - "//google/rpc/context:attribute_context_proto", "//google/rpc:status_proto", + "//google/rpc/context:attribute_context_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:struct_proto", ], @@ -149,7 +151,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/automl/automl_v1.yaml b/google/cloud/automl/automl_v1.yaml deleted file mode 100644 index 7f890c92e..000000000 --- a/google/cloud/automl/automl_v1.yaml +++ /dev/null @@ -1,117 +0,0 @@ -type: google.api.Service -config_version: 3 -name: automl.googleapis.com -title: Cloud AutoML API - -apis: -- name: google.cloud.automl.v1.AutoMl -- name: google.cloud.automl.v1.PredictionService - -types: -- name: google.cloud.automl.v1.OperationMetadata -- name: google.cloud.automl.v1.BatchPredictResult - -documentation: - summary: |- - Train high-quality custom machine learning models with minimum effort and - machine learning expertise. - overview: |- - Cloud AutoML is a suite of machine learning products that enables developers - with limited machine learning expertise to train high-quality models - specific to their business needs, by leveraging Google’s state-of-the-art - transfer learning, and Neural Architecture Search technology. - -backend: - rules: - - selector: google.longrunning.Operations.ListOperations - deadline: 50.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 5.0 - - selector: google.longrunning.Operations.DeleteOperation - deadline: 5.0 - - selector: google.longrunning.Operations.CancelOperation - deadline: 5.0 - - selector: google.cloud.automl.v1.PredictionService.Predict - deadline: 60.0 - - selector: google.cloud.automl.v1.PredictionService.BatchPredict - deadline: 20.0 - - selector: google.cloud.automl.v1.AutoMl.CreateDataset - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.GetDataset - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.ListDatasets - deadline: 50.0 - - selector: google.cloud.automl.v1.AutoMl.UpdateDataset - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.DeleteDataset - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.ImportData - deadline: 20.0 - - selector: google.cloud.automl.v1.AutoMl.ExportData - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.GetAnnotationSpec - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.CreateModel - deadline: 20.0 - - selector: google.cloud.automl.v1.AutoMl.GetModel - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.UpdateModel - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.ListModels - deadline: 50.0 - - selector: google.cloud.automl.v1.AutoMl.DeleteModel - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.DeployModel - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.UndeployModel - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.ExportModel - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.GetModelEvaluation - deadline: 5.0 - - selector: google.cloud.automl.v1.AutoMl.ListModelEvaluations - deadline: 50.0 - - selector: google.iam.v1.IAMPolicy.SetIamPolicy - deadline: 5.0 - - selector: google.iam.v1.IAMPolicy.GetIamPolicy - deadline: 5.0 - - selector: google.iam.v1.IAMPolicy.TestIamPermissions - deadline: 5.0 - -http: - rules: - - selector: google.longrunning.Operations.ListOperations - get: '/v1/{name=projects/*/locations/*}/operations' - - - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=projects/*/locations/*/operations/*}' - - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1/{name=projects/*/locations/*/operations/*}' - - - selector: google.longrunning.Operations.CancelOperation - post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' - body: '*' - - - selector: google.iam.v1.IAMPolicy.SetIamPolicy - post: '/v1/{resource=projects/*/locations/*/datasets/*}:setIamPolicy' - body: '*' - additional_bindings: - - post: '/v1/{resource=projects/*/locations/*/models/*}:setIamPolicy' - body: '*' - - - selector: google.iam.v1.IAMPolicy.GetIamPolicy - get: '/v1/{resource=projects/*/locations/*/datasets/*}:getIamPolicy' - additional_bindings: - - get: '/v1/{resource=projects/*/locations/*/models/*}:getIamPolicy' - - - selector: google.iam.v1.IAMPolicy.TestIamPermissions - post: '/v1/{resource=projects/*/locations/*/**}:testIamPermissions' - body: '*' - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/automl/automl_v1beta1.yaml b/google/cloud/automl/automl_v1beta1.yaml deleted file mode 100644 index ce17fb353..000000000 --- a/google/cloud/automl/automl_v1beta1.yaml +++ /dev/null @@ -1,129 +0,0 @@ -type: google.api.Service -config_version: 3 -name: automl.googleapis.com -title: Cloud AutoML API - -apis: -- name: google.cloud.automl.v1beta1.AutoMl -- name: google.cloud.automl.v1beta1.PredictionService - -types: -- name: google.cloud.automl.v1beta1.OperationMetadata -- name: google.cloud.automl.v1beta1.BatchPredictResult - -documentation: - summary: |- - Train high-quality custom machine learning models with minimum effort and - machine learning expertise. - overview: |- - Cloud AutoML is a suite of machine learning products that enables developers - with limited machine learning expertise to train high-quality models - specific to their business needs, by leveraging Google’s state-of-the-art - transfer learning, and Neural Architecture Search technology. - -backend: - rules: - - selector: google.longrunning.Operations.ListOperations - deadline: 50.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 5.0 - - selector: google.longrunning.Operations.DeleteOperation - deadline: 5.0 - - selector: google.longrunning.Operations.CancelOperation - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.PredictionService.Predict - deadline: 60.0 - - selector: google.cloud.automl.v1beta1.PredictionService.BatchPredict - deadline: 20.0 - - selector: google.cloud.automl.v1beta1.AutoMl.CreateDataset - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.GetDataset - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ListDatasets - deadline: 50.0 - - selector: google.cloud.automl.v1beta1.AutoMl.UpdateDataset - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.DeleteDataset - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ImportData - deadline: 20.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ExportData - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.GetAnnotationSpec - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.GetTableSpec - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ListTableSpecs - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.UpdateTableSpec - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.GetColumnSpec - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ListColumnSpecs - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.UpdateColumnSpec - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.CreateModel - deadline: 20.0 - - selector: google.cloud.automl.v1beta1.AutoMl.GetModel - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ListModels - deadline: 50.0 - - selector: google.cloud.automl.v1beta1.AutoMl.DeleteModel - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.DeployModel - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.UndeployModel - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ExportModel - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ExportEvaluatedExamples - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.GetModelEvaluation - deadline: 5.0 - - selector: google.cloud.automl.v1beta1.AutoMl.ListModelEvaluations - deadline: 50.0 - - selector: google.iam.v1.IAMPolicy.SetIamPolicy - deadline: 5.0 - - selector: google.iam.v1.IAMPolicy.GetIamPolicy - deadline: 5.0 - - selector: google.iam.v1.IAMPolicy.TestIamPermissions - deadline: 5.0 - -http: - rules: - - selector: google.longrunning.Operations.ListOperations - get: '/v1beta1/{name=projects/*/locations/*}/operations' - - - selector: google.longrunning.Operations.GetOperation - get: '/v1beta1/{name=projects/*/locations/*/operations/*}' - - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1beta1/{name=projects/*/locations/*/operations/*}' - - - selector: google.longrunning.Operations.CancelOperation - post: '/v1beta1/{name=projects/*/locations/*/operations/*}:cancel' - body: '*' - - - selector: google.iam.v1.IAMPolicy.SetIamPolicy - post: '/v1beta1/{resource=projects/*/locations/*/datasets/*}:setIamPolicy' - body: '*' - additional_bindings: - - post: '/v1beta1/{resource=projects/*/locations/*/models/*}:setIamPolicy' - body: '*' - - - selector: google.iam.v1.IAMPolicy.GetIamPolicy - get: '/v1beta1/{resource=projects/*/locations/*/datasets/*}:getIamPolicy' - additional_bindings: - - get: '/v1beta1/{resource=projects/*/locations/*/models/*}:getIamPolicy' - - - selector: google.iam.v1.IAMPolicy.TestIamPermissions - post: '/v1beta1/{resource=projects/*/locations/*/**}:testIamPermissions' - body: '*' - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/automl/v1/BUILD.bazel b/google/cloud/automl/v1/BUILD.bazel index 1916c71f3..fc1ff6720 100644 --- a/google/cloud/automl/v1/BUILD.bazel +++ b/google/cloud/automl/v1/BUILD.bazel @@ -86,6 +86,7 @@ java_gapic_library( test_deps = [ ":automl_java_grpc", ], + transport = "grpc+rest", deps = [ ":automl_java_proto", ], @@ -94,7 +95,9 @@ java_gapic_library( java_gapic_test( name = "automl_java_gapic_test_suite", test_classes = [ + "com.google.cloud.automl.v1.AutoMlClientHttpJsonTest", "com.google.cloud.automl.v1.AutoMlClientTest", + "com.google.cloud.automl.v1.PredictionServiceClientHttpJsonTest", "com.google.cloud.automl.v1.PredictionServiceClientTest", ], runtime_deps = [":automl_java_gapic_test"], @@ -103,6 +106,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-automl-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":automl_java_gapic", ":automl_java_grpc", @@ -140,6 +145,7 @@ go_gapic_library( grpc_service_config = "automl_grpc_service_config.json", importpath = "cloud.google.com/go/automl/apiv1;automl", service_yaml = "automl_v1.yaml", + transport = "grpc+rest", deps = [ ":automl_go_proto", "//google/longrunning:longrunning_go_proto", @@ -175,12 +181,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "automl_py_gapic", srcs = [":automl_proto"], grpc_service_config = "automl_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "automl_py_gapic_test", + srcs = [ + "automl_py_gapic_pytest.py", + "automl_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":automl_py_gapic"], ) # Open Source Packages @@ -344,6 +362,7 @@ csharp_gapic_library( srcs = [":automl_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "automl_grpc_service_config.json", + service_yaml = "automl_v1.yaml", deps = [ ":automl_csharp_grpc", ":automl_csharp_proto", diff --git a/google/cloud/automl/v1/annotation_payload.proto b/google/cloud/automl/v1/annotation_payload.proto index e33102690..75ea55ff0 100644 --- a/google/cloud/automl/v1/annotation_payload.proto +++ b/google/cloud/automl/v1/annotation_payload.proto @@ -16,13 +16,11 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/cloud/automl/v1/classification.proto"; import "google/cloud/automl/v1/detection.proto"; import "google/cloud/automl/v1/text_extraction.proto"; import "google/cloud/automl/v1/text_sentiment.proto"; import "google/cloud/automl/v1/translation.proto"; -import "google/protobuf/any.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1;automl"; diff --git a/google/cloud/automl/v1/annotation_spec.proto b/google/cloud/automl/v1/annotation_spec.proto index d750e24d7..c479b3acb 100644 --- a/google/cloud/automl/v1/annotation_spec.proto +++ b/google/cloud/automl/v1/annotation_spec.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; diff --git a/google/cloud/automl/v1/classification.proto b/google/cloud/automl/v1/classification.proto index 48bea525f..b31e9192c 100644 --- a/google/cloud/automl/v1/classification.proto +++ b/google/cloud/automl/v1/classification.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AutoML.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1/data_items.proto b/google/cloud/automl/v1/data_items.proto index c0a60b24d..d48daed5f 100644 --- a/google/cloud/automl/v1/data_items.proto +++ b/google/cloud/automl/v1/data_items.proto @@ -16,13 +16,9 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/cloud/automl/v1/geometry.proto"; import "google/cloud/automl/v1/io.proto"; import "google/cloud/automl/v1/text_segment.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/struct.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1;automl"; diff --git a/google/cloud/automl/v1/dataset.proto b/google/cloud/automl/v1/dataset.proto index 776e3a387..2824f35e8 100644 --- a/google/cloud/automl/v1/dataset.proto +++ b/google/cloud/automl/v1/dataset.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/automl/v1/image.proto"; import "google/cloud/automl/v1/text.proto"; diff --git a/google/cloud/automl/v1/detection.proto b/google/cloud/automl/v1/detection.proto index d85728e7e..6c2d4ce0e 100644 --- a/google/cloud/automl/v1/detection.proto +++ b/google/cloud/automl/v1/detection.proto @@ -16,9 +16,7 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/cloud/automl/v1/geometry.proto"; -import "google/protobuf/duration.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1;automl"; diff --git a/google/cloud/automl/v1/geometry.proto b/google/cloud/automl/v1/geometry.proto index 95cd2e379..a524c0afb 100644 --- a/google/cloud/automl/v1/geometry.proto +++ b/google/cloud/automl/v1/geometry.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AutoML.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1/image.proto b/google/cloud/automl/v1/image.proto index 99be2da1e..c876e4442 100644 --- a/google/cloud/automl/v1/image.proto +++ b/google/cloud/automl/v1/image.proto @@ -16,12 +16,8 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/automl/v1/annotation_spec.proto"; import "google/cloud/automl/v1/classification.proto"; -import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1;automl"; diff --git a/google/cloud/automl/v1/io.proto b/google/cloud/automl/v1/io.proto index 0b713d696..69a080a4f 100644 --- a/google/cloud/automl/v1/io.proto +++ b/google/cloud/automl/v1/io.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; diff --git a/google/cloud/automl/v1/model.proto b/google/cloud/automl/v1/model.proto index 2bc3c3e74..05811f6ea 100644 --- a/google/cloud/automl/v1/model.proto +++ b/google/cloud/automl/v1/model.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/automl/v1/image.proto"; import "google/cloud/automl/v1/text.proto"; diff --git a/google/cloud/automl/v1/model_evaluation.proto b/google/cloud/automl/v1/model_evaluation.proto index 10fb2f540..7505bca3e 100644 --- a/google/cloud/automl/v1/model_evaluation.proto +++ b/google/cloud/automl/v1/model_evaluation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/automl/v1/classification.proto"; import "google/cloud/automl/v1/detection.proto"; diff --git a/google/cloud/automl/v1/operations.proto b/google/cloud/automl/v1/operations.proto index bd2256d02..ec5bfad62 100644 --- a/google/cloud/automl/v1/operations.proto +++ b/google/cloud/automl/v1/operations.proto @@ -16,14 +16,7 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; -import "google/cloud/automl/v1/dataset.proto"; import "google/cloud/automl/v1/io.proto"; -import "google/cloud/automl/v1/model.proto"; -import "google/cloud/automl/v1/model_evaluation.proto"; -import "google/cloud/automl/v1/prediction_service.proto"; -import "google/cloud/automl/v1/service.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; diff --git a/google/cloud/automl/v1/text.proto b/google/cloud/automl/v1/text.proto index d4eb764ff..966e3ca7e 100644 --- a/google/cloud/automl/v1/text.proto +++ b/google/cloud/automl/v1/text.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; import "google/cloud/automl/v1/classification.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; diff --git a/google/cloud/automl/v1/text_extraction.proto b/google/cloud/automl/v1/text_extraction.proto index e28fa4bb8..8b3530e22 100644 --- a/google/cloud/automl/v1/text_extraction.proto +++ b/google/cloud/automl/v1/text_extraction.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/cloud/automl/v1/text_segment.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; diff --git a/google/cloud/automl/v1/text_segment.proto b/google/cloud/automl/v1/text_segment.proto index c3c28b1d6..e710ccc9b 100644 --- a/google/cloud/automl/v1/text_segment.proto +++ b/google/cloud/automl/v1/text_segment.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.AutoML.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1/text_sentiment.proto b/google/cloud/automl/v1/text_sentiment.proto index 8541bfa17..6e1b3ed01 100644 --- a/google/cloud/automl/v1/text_sentiment.proto +++ b/google/cloud/automl/v1/text_sentiment.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/cloud/automl/v1/classification.proto"; option csharp_namespace = "Google.Cloud.AutoML.V1"; diff --git a/google/cloud/automl/v1/translation.proto b/google/cloud/automl/v1/translation.proto index aa0466727..cc794d608 100644 --- a/google/cloud/automl/v1/translation.proto +++ b/google/cloud/automl/v1/translation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/cloud/automl/v1/data_items.proto"; diff --git a/google/cloud/automl/v1beta1/BUILD.bazel b/google/cloud/automl/v1beta1/BUILD.bazel index 324f758cd..aabd387b0 100644 --- a/google/cloud/automl/v1beta1/BUILD.bazel +++ b/google/cloud/automl/v1beta1/BUILD.bazel @@ -95,6 +95,7 @@ java_gapic_library( test_deps = [ ":automl_java_grpc", ], + transport = "grpc+rest", deps = [ ":automl_java_proto", ], @@ -103,7 +104,9 @@ java_gapic_library( java_gapic_test( name = "automl_java_gapic_test_suite", test_classes = [ + "com.google.cloud.automl.v1beta1.AutoMlClientHttpJsonTest", "com.google.cloud.automl.v1beta1.AutoMlClientTest", + "com.google.cloud.automl.v1beta1.PredictionServiceClientHttpJsonTest", "com.google.cloud.automl.v1beta1.PredictionServiceClientTest", ], runtime_deps = [":automl_java_gapic_test"], @@ -112,6 +115,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-automl-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":automl_java_gapic", ":automl_java_grpc", @@ -149,6 +154,7 @@ go_gapic_library( grpc_service_config = "automl_grpc_service_config.json", importpath = "cloud.google.com/go/automl/apiv1beta1;automl", service_yaml = "automl_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":automl_go_proto", "//google/longrunning:longrunning_go_proto", @@ -184,12 +190,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "automl_py_gapic", srcs = [":automl_proto"], grpc_service_config = "automl_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "automl_py_gapic_test", + srcs = [ + "automl_py_gapic_pytest.py", + "automl_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":automl_py_gapic"], ) # Open Source Packages @@ -352,6 +370,7 @@ csharp_gapic_library( srcs = [":automl_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "automl_grpc_service_config.json", + service_yaml = "automl_v1beta1.yaml", deps = [ ":automl_csharp_grpc", ":automl_csharp_proto", diff --git a/google/cloud/automl/v1beta1/annotation_payload.proto b/google/cloud/automl/v1beta1/annotation_payload.proto index f62bb269e..b01aa2c20 100644 --- a/google/cloud/automl/v1beta1/annotation_payload.proto +++ b/google/cloud/automl/v1beta1/annotation_payload.proto @@ -22,8 +22,6 @@ import "google/cloud/automl/v1beta1/tables.proto"; import "google/cloud/automl/v1beta1/text_extraction.proto"; import "google/cloud/automl/v1beta1/text_sentiment.proto"; import "google/cloud/automl/v1beta1/translation.proto"; -import "google/protobuf/any.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/annotation_spec.proto b/google/cloud/automl/v1beta1/annotation_spec.proto index d9df07ee3..713c355b1 100644 --- a/google/cloud/automl/v1beta1/annotation_spec.proto +++ b/google/cloud/automl/v1beta1/annotation_spec.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/classification.proto b/google/cloud/automl/v1beta1/classification.proto index 0594d01e6..555de30ca 100644 --- a/google/cloud/automl/v1beta1/classification.proto +++ b/google/cloud/automl/v1beta1/classification.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; import "google/cloud/automl/v1beta1/temporal.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_outer_classname = "ClassificationProto"; diff --git a/google/cloud/automl/v1beta1/column_spec.proto b/google/cloud/automl/v1beta1/column_spec.proto index 03389b8a4..97c97d9f2 100644 --- a/google/cloud/automl/v1beta1/column_spec.proto +++ b/google/cloud/automl/v1beta1/column_spec.proto @@ -19,7 +19,6 @@ package google.cloud.automl.v1beta1; import "google/api/resource.proto"; import "google/cloud/automl/v1beta1/data_stats.proto"; import "google/cloud/automl/v1beta1/data_types.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/data_items.proto b/google/cloud/automl/v1beta1/data_items.proto index 9b9187ad3..7bc10a749 100644 --- a/google/cloud/automl/v1beta1/data_items.proto +++ b/google/cloud/automl/v1beta1/data_items.proto @@ -20,10 +20,7 @@ import "google/cloud/automl/v1beta1/geometry.proto"; import "google/cloud/automl/v1beta1/io.proto"; import "google/cloud/automl/v1beta1/temporal.proto"; import "google/cloud/automl/v1beta1/text_segment.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/data_stats.proto b/google/cloud/automl/v1beta1/data_stats.proto index c13a5d451..64229e65c 100644 --- a/google/cloud/automl/v1beta1/data_stats.proto +++ b/google/cloud/automl/v1beta1/data_stats.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/data_types.proto b/google/cloud/automl/v1beta1/data_types.proto index 6f77f56b9..d9ba570d6 100644 --- a/google/cloud/automl/v1beta1/data_types.proto +++ b/google/cloud/automl/v1beta1/data_types.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/dataset.proto b/google/cloud/automl/v1beta1/dataset.proto index 8d1b8d937..a26e29606 100644 --- a/google/cloud/automl/v1beta1/dataset.proto +++ b/google/cloud/automl/v1beta1/dataset.proto @@ -23,7 +23,6 @@ import "google/cloud/automl/v1beta1/text.proto"; import "google/cloud/automl/v1beta1/translation.proto"; import "google/cloud/automl/v1beta1/video.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/detection.proto b/google/cloud/automl/v1beta1/detection.proto index c5864e209..e651d9f24 100644 --- a/google/cloud/automl/v1beta1/detection.proto +++ b/google/cloud/automl/v1beta1/detection.proto @@ -18,7 +18,6 @@ package google.cloud.automl.v1beta1; import "google/cloud/automl/v1beta1/geometry.proto"; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/geometry.proto b/google/cloud/automl/v1beta1/geometry.proto index d5654aaca..68e0f5bdd 100644 --- a/google/cloud/automl/v1beta1/geometry.proto +++ b/google/cloud/automl/v1beta1/geometry.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/image.proto b/google/cloud/automl/v1beta1/image.proto index 960eaeb01..72f687119 100644 --- a/google/cloud/automl/v1beta1/image.proto +++ b/google/cloud/automl/v1beta1/image.proto @@ -16,11 +16,8 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; -import "google/api/resource.proto"; import "google/cloud/automl/v1beta1/annotation_spec.proto"; import "google/cloud/automl/v1beta1/classification.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/io.proto b/google/cloud/automl/v1beta1/io.proto index 3d8ab45fe..249ec4013 100644 --- a/google/cloud/automl/v1beta1/io.proto +++ b/google/cloud/automl/v1beta1/io.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/model.proto b/google/cloud/automl/v1beta1/model.proto index 2b2e8d73f..2aca21826 100644 --- a/google/cloud/automl/v1beta1/model.proto +++ b/google/cloud/automl/v1beta1/model.proto @@ -23,7 +23,6 @@ import "google/cloud/automl/v1beta1/text.proto"; import "google/cloud/automl/v1beta1/translation.proto"; import "google/cloud/automl/v1beta1/video.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/model_evaluation.proto b/google/cloud/automl/v1beta1/model_evaluation.proto index d5633fcdf..de0e89700 100644 --- a/google/cloud/automl/v1beta1/model_evaluation.proto +++ b/google/cloud/automl/v1beta1/model_evaluation.proto @@ -25,7 +25,6 @@ import "google/cloud/automl/v1beta1/text_extraction.proto"; import "google/cloud/automl/v1beta1/text_sentiment.proto"; import "google/cloud/automl/v1beta1/translation.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/operations.proto b/google/cloud/automl/v1beta1/operations.proto index cce3fedc5..399d75ce7 100644 --- a/google/cloud/automl/v1beta1/operations.proto +++ b/google/cloud/automl/v1beta1/operations.proto @@ -19,10 +19,8 @@ package google.cloud.automl.v1beta1; import "google/cloud/automl/v1beta1/io.proto"; import "google/cloud/automl/v1beta1/model.proto"; import "google/cloud/automl/v1beta1/model_evaluation.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/ranges.proto b/google/cloud/automl/v1beta1/ranges.proto index 89572bb05..7adcd61ba 100644 --- a/google/cloud/automl/v1beta1/ranges.proto +++ b/google/cloud/automl/v1beta1/ranges.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/regression.proto b/google/cloud/automl/v1beta1/regression.proto index 1286d3d80..d14b0f0ef 100644 --- a/google/cloud/automl/v1beta1/regression.proto +++ b/google/cloud/automl/v1beta1/regression.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_outer_classname = "RegressionProto"; diff --git a/google/cloud/automl/v1beta1/table_spec.proto b/google/cloud/automl/v1beta1/table_spec.proto index bc3fc7440..1e451a4c1 100644 --- a/google/cloud/automl/v1beta1/table_spec.proto +++ b/google/cloud/automl/v1beta1/table_spec.proto @@ -18,7 +18,6 @@ package google.cloud.automl.v1beta1; import "google/api/resource.proto"; import "google/cloud/automl/v1beta1/io.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/tables.proto b/google/cloud/automl/v1beta1/tables.proto index 5327f5e78..4db553468 100644 --- a/google/cloud/automl/v1beta1/tables.proto +++ b/google/cloud/automl/v1beta1/tables.proto @@ -25,7 +25,6 @@ import "google/cloud/automl/v1beta1/regression.proto"; import "google/cloud/automl/v1beta1/temporal.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/temporal.proto b/google/cloud/automl/v1beta1/temporal.proto index 76db8887c..c560acff9 100644 --- a/google/cloud/automl/v1beta1/temporal.proto +++ b/google/cloud/automl/v1beta1/temporal.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/text.proto b/google/cloud/automl/v1beta1/text.proto index 3319a094b..89cb6efe4 100644 --- a/google/cloud/automl/v1beta1/text.proto +++ b/google/cloud/automl/v1beta1/text.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; import "google/cloud/automl/v1beta1/classification.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/text_extraction.proto b/google/cloud/automl/v1beta1/text_extraction.proto index cfb0e0b37..0f004ad8c 100644 --- a/google/cloud/automl/v1beta1/text_extraction.proto +++ b/google/cloud/automl/v1beta1/text_extraction.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; import "google/cloud/automl/v1beta1/text_segment.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/text_segment.proto b/google/cloud/automl/v1beta1/text_segment.proto index 94b17d930..d2de26258 100644 --- a/google/cloud/automl/v1beta1/text_segment.proto +++ b/google/cloud/automl/v1beta1/text_segment.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/text_sentiment.proto b/google/cloud/automl/v1beta1/text_sentiment.proto index 5444c52b9..be68e12be 100644 --- a/google/cloud/automl/v1beta1/text_sentiment.proto +++ b/google/cloud/automl/v1beta1/text_sentiment.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; import "google/cloud/automl/v1beta1/classification.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_outer_classname = "TextSentimentProto"; diff --git a/google/cloud/automl/v1beta1/translation.proto b/google/cloud/automl/v1beta1/translation.proto index 8585bd410..cb8463f1a 100644 --- a/google/cloud/automl/v1beta1/translation.proto +++ b/google/cloud/automl/v1beta1/translation.proto @@ -18,7 +18,6 @@ package google.cloud.automl.v1beta1; import "google/api/field_behavior.proto"; import "google/cloud/automl/v1beta1/data_items.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/automl/v1beta1/video.proto b/google/cloud/automl/v1beta1/video.proto index 268ae2a8c..4e96edd50 100644 --- a/google/cloud/automl/v1beta1/video.proto +++ b/google/cloud/automl/v1beta1/video.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.automl.v1beta1; import "google/cloud/automl/v1beta1/classification.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl"; option java_multiple_files = true; diff --git a/google/cloud/baremetalsolution/BUILD.bazel b/google/cloud/baremetalsolution/BUILD.bazel new file mode 100644 index 000000000..23aade64f --- /dev/null +++ b/google/cloud/baremetalsolution/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-bare_metal_solution. + +# 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 baremetalsolution. +# 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 = "baremetalsolution_ruby_wrapper", + srcs = ["//google/cloud/baremetalsolution/v2:baremetalsolution_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=baremetalsolution.googleapis.com", + "ruby-cloud-api-shortname=baremetalsolution", + "ruby-cloud-gem-name=google-cloud-bare_metal_solution", + "ruby-cloud-product-url=https://cloud.google.com/bare-metal/", + "ruby-cloud-wrapper-of=v2:0.0", + ], + ruby_cloud_description = "Bare Metal Solution is a managed solution that provides purpose-built HPE or Atos bare-metal servers in regional extensions that are connected to Google Cloud by a managed, high-performance connection with a low-latency network fabric.", + ruby_cloud_title = "Bare Metal Solution", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-baremetalsolution-ruby", + deps = [ + ":baremetalsolution_ruby_wrapper", + ], +) diff --git a/google/cloud/baremetalsolution/v2/BUILD.bazel b/google/cloud/baremetalsolution/v2/BUILD.bazel index 48ec6596d..9b821662d 100644 --- a/google/cloud/baremetalsolution/v2/BUILD.bazel +++ b/google/cloud/baremetalsolution/v2/BUILD.bazel @@ -22,6 +22,11 @@ proto_library( name = "baremetalsolution_proto", srcs = [ "baremetalsolution.proto", + "instance.proto", + "lun.proto", + "network.proto", + "nfs_share.proto", + "volume.proto", ], deps = [ "//google/api:annotations_proto", @@ -75,6 +80,7 @@ java_gapic_library( test_deps = [ ":baremetalsolution_java_grpc", ], + transport = "grpc+rest", deps = [ ":baremetalsolution_java_proto", "//google/api:api_java_proto", @@ -84,6 +90,7 @@ java_gapic_library( java_gapic_test( name = "baremetalsolution_java_gapic_test_suite", test_classes = [ + "com.google.cloud.baremetalsolution.v2.BareMetalSolutionClientHttpJsonTest", "com.google.cloud.baremetalsolution.v2.BareMetalSolutionClientTest", ], runtime_deps = [":baremetalsolution_java_gapic_test"], @@ -92,6 +99,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-baremetalsolution-v2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":baremetalsolution_java_gapic", ":baremetalsolution_java_grpc", @@ -129,8 +138,10 @@ go_gapic_library( importpath = "cloud.google.com/go/baremetalsolution/apiv2;baremetalsolution", metadata = True, service_yaml = "baremetalsolution_v2.yaml", + transport = "grpc+rest", deps = [ ":baremetalsolution_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", @@ -162,12 +173,29 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "baremetalsolution_py_gapic", srcs = [":baremetalsolution_proto"], grpc_service_config = "baremetalsolution_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-bare-metal-solution", + "python-gapic-namespace=google.cloud", + "python-gapic-name=bare_metal_solution", + ], + transport = "grpc", +) + +py_test( + name = "baremetalsolution_py_gapic_test", + srcs = [ + "baremetalsolution_py_gapic_pytest.py", + "baremetalsolution_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":baremetalsolution_py_gapic"], ) # Open Source Packages @@ -232,7 +260,7 @@ load( nodejs_gapic_library( name = "baremetalsolution_nodejs_gapic", - package_name = "@google-cloud/baremetalsolution", + package_name = "@google-cloud/bare-metal-solution", src = ":baremetalsolution_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "baremetalsolution_grpc_service_config.json", @@ -274,8 +302,16 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "baremetalsolution_ruby_gapic", srcs = [":baremetalsolution_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-baremetalsolution-v2"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=baremetalsolution.googleapis.com", + "ruby-cloud-api-shortname=baremetalsolution", + "ruby-cloud-gem-name=google-cloud-bare_metal_solution-v2", + "ruby-cloud-product-url=https://cloud.google.com/bare-metal/", + ], grpc_service_config = "baremetalsolution_grpc_service_config.json", + ruby_cloud_description = "Bare Metal Solution is a managed solution that provides purpose-built HPE or Atos bare-metal servers in regional extensions that are connected to Google Cloud by a managed, high-performance connection with a low-latency network fabric.", + ruby_cloud_title = "Bare Metal Solution V2", + service_yaml = "baremetalsolution_v2.yaml", deps = [ ":baremetalsolution_ruby_grpc", ":baremetalsolution_ruby_proto", @@ -319,6 +355,7 @@ csharp_gapic_library( srcs = [":baremetalsolution_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "baremetalsolution_grpc_service_config.json", + service_yaml = "baremetalsolution_v2.yaml", deps = [ ":baremetalsolution_csharp_grpc", ":baremetalsolution_csharp_proto", diff --git a/google/cloud/baremetalsolution/v2/baremetalsolution.proto b/google/cloud/baremetalsolution/v2/baremetalsolution.proto index 5516eaadb..87e0f8d5b 100644 --- a/google/cloud/baremetalsolution/v2/baremetalsolution.proto +++ b/google/cloud/baremetalsolution/v2/baremetalsolution.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,19 +19,21 @@ package google.cloud.baremetalsolution.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/baremetalsolution/v2/instance.proto"; +import "google/cloud/baremetalsolution/v2/lun.proto"; +import "google/cloud/baremetalsolution/v2/network.proto"; +import "google/cloud/baremetalsolution/v2/nfs_share.proto"; +import "google/cloud/baremetalsolution/v2/volume.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.BaremetalSolution.V2"; +option csharp_namespace = "Google.Cloud.BareMetalSolution.V2"; option go_package = "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution"; option java_multiple_files = true; -option java_outer_classname = "BaremetalsolutionProto"; +option java_outer_classname = "BareMetalSolutionProto"; option java_package = "com.google.cloud.baremetalsolution.v2"; -option php_namespace = "Google\\Cloud\\BaremetalSolution\\V2"; -option ruby_package = "Google::Cloud::BaremetalSolution::V2"; +option php_namespace = "Google\\Cloud\\BareMetalSolution\\V2"; +option ruby_package = "Google::Cloud::BareMetalSolution::V2"; // Performs management operations on Bare Metal Solution servers. // @@ -61,6 +63,19 @@ service BareMetalSolution { option (google.api.method_signature) = "name"; } + // Update details of a single server. + rpc UpdateInstance(UpdateInstanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{instance.name=projects/*/locations/*/instances/*}" + body: "instance" + }; + option (google.api.method_signature) = "instance,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Instance" + metadata_type: "OperationMetadata" + }; + } + // Perform an ungraceful, hard reset on a server. Equivalent to shutting the // power off and then turning it back on. rpc ResetInstance(ResetInstanceRequest) returns (google.longrunning.Operation) { @@ -75,6 +90,45 @@ service BareMetalSolution { }; } + // Starts a server that was shutdown. + rpc StartInstance(StartInstanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/instances/*}:start" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "StartInstanceResponse" + metadata_type: "OperationMetadata" + }; + } + + // Stop a running server. + rpc StopInstance(StopInstanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/instances/*}:stop" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "StopInstanceResponse" + metadata_type: "OperationMetadata" + }; + } + + // Detach LUN from Instance. + rpc DetachLun(DetachLunRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{instance=projects/*/locations/*/instances/*}:detachLun" + body: "*" + }; + option (google.api.method_signature) = "instance,lun"; + option (google.longrunning.operation_info) = { + response_type: "Instance" + metadata_type: "OperationMetadata" + }; + } + // List storage volumes in a given project and location. rpc ListVolumes(ListVolumesRequest) returns (ListVolumesResponse) { option (google.api.http) = { @@ -104,110 +158,57 @@ service BareMetalSolution { }; } - // List network in a given project and location. - rpc ListNetworks(ListNetworksRequest) returns (ListNetworksResponse) { + // Emergency Volume resize. + rpc ResizeVolume(ResizeVolumeRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - get: "/v2/{parent=projects/*/locations/*}/networks" + post: "/v2/{volume=projects/*/locations/*/volumes/*}:resize" + body: "*" }; - option (google.api.method_signature) = "parent"; - } - - // Get details of a single network. - rpc GetNetwork(GetNetworkRequest) returns (Network) { - option (google.api.http) = { - get: "/v2/{name=projects/*/locations/*/networks/*}" + option (google.api.method_signature) = "volume,size_gib"; + option (google.longrunning.operation_info) = { + response_type: "Volume" + metadata_type: "OperationMetadata" }; - option (google.api.method_signature) = "name"; } - // List snapshot schedule policies in a given project and location. - rpc ListSnapshotSchedulePolicies(ListSnapshotSchedulePoliciesRequest) returns (ListSnapshotSchedulePoliciesResponse) { + // List network in a given project and location. + rpc ListNetworks(ListNetworksRequest) returns (ListNetworksResponse) { option (google.api.http) = { - get: "/v2/{parent=projects/*/locations/*}/snapshotSchedulePolicies" + get: "/v2/{parent=projects/*/locations/*}/networks" }; option (google.api.method_signature) = "parent"; } - // Get details of a single snapshot schedule policy. - rpc GetSnapshotSchedulePolicy(GetSnapshotSchedulePolicyRequest) returns (SnapshotSchedulePolicy) { - option (google.api.http) = { - get: "/v2/{name=projects/*/locations/*/snapshotSchedulePolicies/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Create a snapshot schedule policy in the specified project. - rpc CreateSnapshotSchedulePolicy(CreateSnapshotSchedulePolicyRequest) returns (SnapshotSchedulePolicy) { + // List all Networks (and used IPs for each Network) in the vendor account + // associated with the specified project. + rpc ListNetworkUsage(ListNetworkUsageRequest) returns (ListNetworkUsageResponse) { option (google.api.http) = { - post: "/v2/{parent=projects/*/locations/*}/snapshotSchedulePolicies" - body: "snapshot_schedule_policy" + get: "/v2/{location=projects/*/locations/*}/networks:listNetworkUsage" }; - option (google.api.method_signature) = "parent,snapshot_schedule_policy,snapshot_schedule_policy_id"; + option (google.api.method_signature) = "location"; } - // Update a snapshot schedule policy in the specified project. - rpc UpdateSnapshotSchedulePolicy(UpdateSnapshotSchedulePolicyRequest) returns (SnapshotSchedulePolicy) { - option (google.api.http) = { - patch: "/v2/{snapshot_schedule_policy.name=projects/*/locations/*/snapshotSchedulePolicies/*}" - body: "snapshot_schedule_policy" - }; - option (google.api.method_signature) = "snapshot_schedule_policy,update_mask"; - } - - // Delete a named snapshot schedule policy. - rpc DeleteSnapshotSchedulePolicy(DeleteSnapshotSchedulePolicyRequest) returns (google.protobuf.Empty) { + // Get details of a single network. + rpc GetNetwork(GetNetworkRequest) returns (Network) { option (google.api.http) = { - delete: "/v2/{name=projects/*/locations/*/snapshotSchedulePolicies/*}" + get: "/v2/{name=projects/*/locations/*/networks/*}" }; option (google.api.method_signature) = "name"; } - // Create a storage volume snapshot in a containing volume. - rpc CreateVolumeSnapshot(CreateVolumeSnapshotRequest) returns (VolumeSnapshot) { - option (google.api.http) = { - post: "/v2/{parent=projects/*/locations/*/volumes/*}/snapshots" - body: "volume_snapshot" - }; - option (google.api.method_signature) = "parent,volume_snapshot"; - } - - // Restore a storage volume snapshot to its containing volume. - rpc RestoreVolumeSnapshot(RestoreVolumeSnapshotRequest) returns (google.longrunning.Operation) { + // Update details of a single network. + rpc UpdateNetwork(UpdateNetworkRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v2/{volume_snapshot=projects/*/locations/*/volumes/*/snapshots/*}:restoreVolumeSnapshot" - body: "*" + patch: "/v2/{network.name=projects/*/locations/*/networks/*}" + body: "network" }; - option (google.api.method_signature) = "volume_snapshot"; + option (google.api.method_signature) = "network,update_mask"; option (google.longrunning.operation_info) = { - response_type: "VolumeSnapshot" + response_type: "Network" metadata_type: "OperationMetadata" }; } - // Deletes a storage volume snapshot for a given volume. - rpc DeleteVolumeSnapshot(DeleteVolumeSnapshotRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v2/{name=projects/*/locations/*/volumes/*/snapshots/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Get details of a single storage volume snapshot. - rpc GetVolumeSnapshot(GetVolumeSnapshotRequest) returns (VolumeSnapshot) { - option (google.api.http) = { - get: "/v2/{name=projects/*/locations/*/volumes/*/snapshots/*}" - }; - option (google.api.method_signature) = "name"; - } - - // List storage volume snapshots for given storage volume. - rpc ListVolumeSnapshots(ListVolumeSnapshotsRequest) returns (ListVolumeSnapshotsResponse) { - option (google.api.http) = { - get: "/v2/{parent=projects/*/locations/*/volumes/*}/snapshots" - }; - option (google.api.method_signature) = "parent"; - } - // Get details of a single storage logical unit number(LUN). rpc GetLun(GetLunRequest) returns (Lun) { option (google.api.http) = { @@ -223,566 +224,35 @@ service BareMetalSolution { }; option (google.api.method_signature) = "parent"; } -} - -// A storage volume. -message Volume { - option (google.api.resource) = { - type: "baremetalsolution.googleapis.com/Volume" - pattern: "projects/{project}/locations/{location}/volumes/{volume}" - }; - - // Details about snapshot space reservation and usage on the storage volume. - message SnapshotReservationDetail { - // The space on this storage volume reserved for snapshots, shown in GiB. - int64 reserved_space_gib = 1; - - // The percent of snapshot space on this storage volume actually being used - // by the snapshot copies. This value might be higher than 100% if the - // snapshot copies have overflowed into the data portion of the storage - // volume. - int32 reserved_space_used_percent = 2; - - // The amount, in GiB, of available space in this storage volume's reserved - // snapshot space. - int64 reserved_space_remaining_gib = 3; - } - - // The storage type for a volume. - enum StorageType { - // The storage type for this volume is unknown. - STORAGE_TYPE_UNSPECIFIED = 0; - - // The storage type for this volume is SSD. - SSD = 1; - - // This storage type for this volume is HDD. - HDD = 2; - } - - // The possible states for a storage volume. - enum State { - // The storage volume is in an unknown state. - STATE_UNSPECIFIED = 0; - - // The storage volume is being created. - CREATING = 1; - - // The storage volume is ready for use. - READY = 2; - - // The storage volume has been requested to be deleted. - DELETING = 3; - } - - // The kinds of auto delete behavior to use when snapshot reserved space is - // full. - enum SnapshotAutoDeleteBehavior { - // The unspecified behavior. - SNAPSHOT_AUTO_DELETE_BEHAVIOR_UNSPECIFIED = 0; - - // Don't delete any snapshots. This disables new snapshot creation, as - // long as the snapshot reserved space is full. - DISABLED = 1; - - // Delete the oldest snapshots first. - OLDEST_FIRST = 2; - - // Delete the newest snapshots first. - NEWEST_FIRST = 3; - } - - // Output only. The resource name of this `Volume`. - // Resource names are schemeless URIs that follow the conventions in - // https://cloud.google.com/apis/design/resource_names. - // Format: - // `projects/{project}/locations/{location}/volumes/{volume}` - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The storage type for this volume. - StorageType storage_type = 2; - - // The state of this storage volume. - State state = 3; - - // The requested size of this storage volume, in GiB. - int64 requested_size_gib = 4; - - // The current size of this storage volume, in GiB, including space reserved - // for snapshots. This size might be different than the requested size if the - // storage volume has been configured with auto grow or auto shrink. - int64 current_size_gib = 5; - - // The size, in GiB, that this storage volume has expanded as a result of an - // auto grow policy. In the absence of auto-grow, the value is 0. - int64 auto_grown_size_gib = 6; - - // The space remaining in the storage volume for new LUNs, in GiB, excluding - // space reserved for snapshots. - int64 remaining_space_gib = 7; - - // Details about snapshot space reservation and usage on the storage volume. - SnapshotReservationDetail snapshot_reservation_detail = 8; - - // The behavior to use when snapshot reserved space is full. - SnapshotAutoDeleteBehavior snapshot_auto_delete_behavior = 9; - - // The name of the snapshot schedule policy in use for this volume, if any. - string snapshot_schedule_policy = 10 [(google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/SnapshotSchedulePolicy" - }]; -} - -// Message for requesting a list of storage volumes. -message ListVolumesRequest { - // Required. Parent value for ListVolumesRequest. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Requested page size. The server might return fewer items than requested. - // If unspecified, server will pick an appropriate default. - int32 page_size = 2; - - // A token identifying a page of results from the server. - string page_token = 3; -} - -// Response message containing the list of storage volumes. -message ListVolumesResponse { - // The list of storage volumes. - repeated Volume volumes = 1; - - // A token identifying a page of results from the server. - string next_page_token = 2; - - // Locations that could not be reached. - repeated string unreachable = 3; -} - -// Message for requesting storage volume information. -message GetVolumeRequest { - // Required. Name of the resource. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Volume" - } - ]; -} - -// A storage volume logical unit number (LUN). -message Lun { - option (google.api.resource) = { - type: "baremetalsolution.googleapis.com/Lun" - pattern: "projects/{project}/locations/{location}/volumes/{volume}/luns/{lun}" - }; - - // The possible states for the LUN. - enum State { - // The LUN is in an unknown state. - STATE_UNSPECIFIED = 0; - - // The LUN is being created. - CREATING = 1; - - // The LUN is being updated. - UPDATING = 2; - - // The LUN is ready for use. - READY = 3; - - // The LUN has been requested to be deleted. - DELETING = 4; - } - - // Display the operating systems present for the LUN multiprotocol type. - enum MultiprotocolType { - // Server has no OS specified. - MULTIPROTOCOL_TYPE_UNSPECIFIED = 0; - - // Server with Linux OS. - LINUX = 1; - } - - // The storage types for a LUN. - enum StorageType { - // The storage type for this LUN is unknown. - STORAGE_TYPE_UNSPECIFIED = 0; - - // This storage type for this LUN is SSD. - SSD = 1; - - // This storage type for this LUN is HDD. - HDD = 2; - } - - // Output only. The name of the LUN. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The state of this storage volume. - State state = 2; - - // The size of this LUN, in gigabytes. - int64 size_gb = 3; - - // The LUN multiprotocol type ensures the characteristics of the LUN are - // optimized for each operating system. - MultiprotocolType multiprotocol_type = 4; - // Display the storage volume for this LUN. - string storage_volume = 5 [(google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Volume" - }]; - - // Display if this LUN can be shared between multiple physical servers. - bool shareable = 6; - - // Display if this LUN is a boot LUN. - bool boot_lun = 7; - - // The storage type for this LUN. - StorageType storage_type = 8; - - // The WWID for this LUN. - string wwid = 9; -} - -// A Network. -message Network { - option (google.api.resource) = { - type: "baremetalsolution.googleapis.com/Network" - pattern: "projects/{project}/locations/{location}/networks/{network}" - }; - - // Network type. - enum Type { - // Unspecified value. - TYPE_UNSPECIFIED = 0; - - // Client network, a network peered to a Google Cloud VPC. - CLIENT = 1; - - // Private network, a network local to the Bare Metal Solution environment. - PRIVATE = 2; - } - - // The possible states for this Network. - enum State { - // The Network is in an unknown state. - STATE_UNSPECIFIED = 0; - - // The Network is provisioning. - PROVISIONING = 1; - - // The Network has been provisioned. - PROVISIONED = 2; - } - - // Output only. The resource name of this `Network`. - // Resource names are schemeless URIs that follow the conventions in - // https://cloud.google.com/apis/design/resource_names. - // Format: - // `projects/{project}/locations/{location}/networks/{network}` - // This field will contain the same value as field "network", which will soon - // be deprecated. Please use this field to reference the name of the network - // resource. - string name = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Name of the network. - string network = 1; - - // The type of this network. - Type type = 2; - - // IP address configured. - string ip_address = 3; - - // List of physical interfaces. - repeated string mac_address = 4; - - // The Network state. - State state = 6; - - // The vlan id of the Network. - string vlan_id = 7; - - // The cidr of the Network. - string cidr = 8; - - // The vrf for the Network. - VRF vrf = 9; -} - -// A network VRF. -message VRF { - // QOS policy parameters. - message QosPolicy { - // The bandwidth permitted by the QOS policy, in gbps. - double bandwidth_gbps = 1; - } - - // VLAN attachment details. - message VlanAttachment { - // The peer vlan ID of the attachment. - int64 peer_vlan_id = 1; - - // The peer IP of the attachment. - string peer_ip = 2; - - // The router IP of the attachment. - string router_ip = 3; + // Get details of a single NFS share. + rpc GetNfsShare(GetNfsShareRequest) returns (NfsShare) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/nfsShares/*}" + }; + option (google.api.method_signature) = "name"; } - // The possible states for this VRF. - enum State { - // The unspecified state. - STATE_UNSPECIFIED = 0; - - // The vrf is provisioning. - PROVISIONING = 1; - - // The vrf is provisioned. - PROVISIONED = 2; + // List NFS shares. + rpc ListNfsShares(ListNfsSharesRequest) returns (ListNfsSharesResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/nfsShares" + }; + option (google.api.method_signature) = "parent"; } - // The name of the VRF. - string name = 1; - - // The possible state of VRF. - State state = 5; - - // The QOS policy applied to this VRF. - QosPolicy qos_policy = 6; - - // The list of VLAN attachments for the VRF. - repeated VlanAttachment vlan_attachments = 7; -} - -// Message for requesting a list of networks. -message ListNetworksRequest { - // Required. Parent value for ListNetworksRequest. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Requested page size. The server might return fewer items than requested. - // If unspecified, server will pick an appropriate default. - int32 page_size = 2; - - // A token identifying a page of results from the server. - string page_token = 3; -} - -// Response message containing the list of networks. -message ListNetworksResponse { - // The list of networks. - repeated Network networks = 1; - - // A token identifying a page of results from the server. - string next_page_token = 2; - - // Locations that could not be reached. - repeated string unreachable = 3; -} - -// Message for requesting network information. -message GetNetworkRequest { - // Required. Name of the resource. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Network" - } - ]; -} - -// Message for requesting snapshot schedule policy information. -message GetSnapshotSchedulePolicyRequest { - // Required. Name of the resource. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/SnapshotSchedulePolicy" - } - ]; -} - -// A server. -message Instance { - option (google.api.resource) = { - type: "baremetalsolution.googleapis.com/Instance" - pattern: "projects/{project}/locations/{location}/instances/{instance}" - }; - - // The possible states for this server. - enum State { - // The server is in an unknown state. - STATE_UNSPECIFIED = 0; - - // The server is being provisioned. - PROVISIONING = 1; - - // The server is running. - RUNNING = 2; - - // The server has been deleted. - DELETED = 3; + // Update details of a single NFS share. + rpc UpdateNfsShare(UpdateNfsShareRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{nfs_share.name=projects/*/locations/*/nfsShares/*}" + body: "nfs_share" + }; + option (google.api.method_signature) = "nfs_share,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "NfsShare" + metadata_type: "OperationMetadata" + }; } - - // Output only. The resource name of this `Instance`. - // Resource names are schemeless URIs that follow the conventions in - // https://cloud.google.com/apis/design/resource_names. - // Format: - // `projects/{project}/locations/{location}/instances/{instance}` - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Create a time stamp. - google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Update a time stamp. - google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The server type. - // [Available server - // types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations) - string machine_type = 4; - - // The state of the server. - State state = 5; - - // True if you enable hyperthreading for the server, otherwise false. - // The default value is false. - bool hyperthreading_enabled = 6; - - // Labels as key value pairs. - map labels = 7; - - // List of LUNs associated with this server. - repeated Lun luns = 8; - - // List of networks associated with this server. - repeated Network networks = 9; - - // True if the interactive serial console feature is enabled for the instance, - // false otherwise. - // The default value is false. - bool interactive_serial_console_enabled = 10; -} - -// Message for requesting the list of servers. -message ListInstancesRequest { - // Required. Parent value for ListInstancesRequest. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Requested page size. Server may return fewer items than requested. - // If unspecified, the server will pick an appropriate default. - int32 page_size = 2; - - // A token identifying a page of results from the server. - string page_token = 3; -} - -// Response message for the list of servers. -message ListInstancesResponse { - // The list of servers. - repeated Instance instances = 1; - - // A token identifying a page of results from the server. - string next_page_token = 2; - - // Locations that could not be reached. - repeated string unreachable = 3; -} - -// Message for requesting server information. -message GetInstanceRequest { - // Required. Name of the resource. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Instance" - } - ]; -} - -// Message requesting to reset a server. -message ResetInstanceRequest { - // Required. Name of the resource. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Instance" - } - ]; -} - -// Response message from resetting a server. -message ResetInstanceResponse { - -} - -// Message for requesting storage volume snapshot information. -message GetVolumeSnapshotRequest { - // Required. Name of the resource. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/VolumeSnapshot" - } - ]; -} - -// Message for requesting a list of storage volume snapshots. -message ListVolumeSnapshotsRequest { - // Required. Parent value for ListVolumesRequest. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Volume" - } - ]; - - // Requested page size. The server might return fewer items than requested. - // If unspecified, server will pick an appropriate default. - int32 page_size = 2; - - // A token identifying a page of results from the server. - string page_token = 3; -} - -// Response message containing the list of storage volume snapshots. -message ListVolumeSnapshotsResponse { - // The list of storage volumes. - repeated VolumeSnapshot volume_snapshots = 1; - - // A token identifying a page of results from the server. - string next_page_token = 2; - - // Locations that could not be reached. - repeated string unreachable = 3; -} - -// Message for deleting named Volume snapshot. -message DeleteVolumeSnapshotRequest { - // Required. The name of the snapshot to delete. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/VolumeSnapshot" - } - ]; } // Represents the metadata from a long-running operation. @@ -814,207 +284,7 @@ message OperationMetadata { string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Snapshot registered for a given storage volume. -message VolumeSnapshot { - option (google.api.resource) = { - type: "baremetalsolution.googleapis.com/VolumeSnapshot" - pattern: "projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}" - }; - - // Output only. The name of the storage volume snapshot. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The description of the storage volume snapshot. - string description = 2; - - // The size of the storage volume snapshot, in bytes. - int64 size_bytes = 3; - - // Optional. The creation time of the storage volume snapshot. - google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OPTIONAL]; - - // The storage volume this snapshot belongs to. - string storage_volume = 5 [(google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Volume" - }]; -} - -// A snapshot schedule policy. -message SnapshotSchedulePolicy { - option (google.api.resource) = { - type: "baremetalsolution.googleapis.com/SnapshotSchedulePolicy" - pattern: "projects/{project}/locations/{location}/snapshotSchedulePolicies/{snapshot_schedule_policy}" - }; - - // A snapshot schedule. - message Schedule { - // A crontab-like specification that the schedule uses to take - // snapshots. - string crontab_spec = 1; - - // The maximum number of snapshots to retain in this schedule. - int32 retention_count = 2; - - // A list of snapshot names created in this schedule. - string prefix = 3; - } - - // Output only. The name of the snapshot schedule policy. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The description of the snapshot schedule policy. - string description = 2; - - // The snapshot schedules contained in this policy. You can specify a maximum - // of 5 schedules. - repeated Schedule schedules = 3; -} - -// Message for requesting a list of snapshot schedule policies. -message ListSnapshotSchedulePoliciesRequest { - // Required. The parent project containing the Snapshot Schedule Policies. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // The maximum number of items to return. - int32 page_size = 2; - - // The next_page_token value returned from a previous List request, if any. - string page_token = 3; -} - -// Response message containing the list of snapshot schedule policies. -message ListSnapshotSchedulePoliciesResponse { - // The snapshot schedule policies registered in this project. - repeated SnapshotSchedulePolicy snapshot_schedule_policies = 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; -} - -// Message for creating a snapshot schedule policy in a project. -message CreateSnapshotSchedulePolicyRequest { - // Required. The parent project and location containing the SnapshotSchedulePolicy. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. The SnapshotSchedulePolicy to create. - SnapshotSchedulePolicy snapshot_schedule_policy = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. Snapshot policy ID - string snapshot_schedule_policy_id = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// Message for updating a snapshot schedule policy in a project. -message UpdateSnapshotSchedulePolicyRequest { - // Required. The snapshot schedule policy to update. - // - // The `name` field is used to identify the snapshot schedule policy to - // update. Format: - // projects/{project}/locations/global/snapshotSchedulePolicies/{policy} - SnapshotSchedulePolicy snapshot_schedule_policy = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of fields to update. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Message for deleting a snapshot schedule policy in a project. -message DeleteSnapshotSchedulePolicyRequest { - // Required. The name of the snapshot schedule policy to delete. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/SnapshotSchedulePolicy" - } - ]; -} - -// Message for updating a volume. -message UpdateVolumeRequest { - // Required. The volume to update. - // - // The `name` field is used to identify the volume to update. - // Format: projects/{project}/locations/{location}/volumes/{volume} - Volume volume = 1 [(google.api.field_behavior) = REQUIRED]; - - // The list of fields to update. - // The only currently supported fields are: - // `snapshot_auto_delete_behavior` - // `snapshot_schedule_policy_name` - google.protobuf.FieldMask update_mask = 2; -} - -// Message for requesting storage lun information. -message GetLunRequest { - // Required. Name of the resource. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Lun" - } - ]; -} - -// Message for requesting a list of storage volume luns. -message ListLunsRequest { - // Required. Parent value for ListLunsRequest. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Volume" - } - ]; - - // Requested page size. The server might return fewer items than requested. - // If unspecified, server will pick an appropriate default. - int32 page_size = 2; - - // A token identifying a page of results from the server. - string page_token = 3; -} - -// Response message containing the list of storage volume luns. -message ListLunsResponse { - // The list of luns. - repeated Lun luns = 1; - - // A token identifying a page of results from the server. - string next_page_token = 2; - - // Locations that could not be reached. - repeated string unreachable = 3; -} - -// Message for creating a volume snapshot. -message CreateVolumeSnapshotRequest { - // Required. The volume to snapshot. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/Volume" - } - ]; - - // Required. The volume snapshot to create. Only the description field may be specified. - VolumeSnapshot volume_snapshot = 2 [(google.api.field_behavior) = REQUIRED]; -} +// Response message from resetting a server. +message ResetInstanceResponse { -// Message for restoring a volume snapshot. -message RestoreVolumeSnapshotRequest { - // Required. Name of the resource. - string volume_snapshot = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "baremetalsolution.googleapis.com/VolumeSnapshot" - } - ]; } diff --git a/google/cloud/baremetalsolution/v2/baremetalsolution_v2.yaml b/google/cloud/baremetalsolution/v2/baremetalsolution_v2.yaml index 1e3b07f1e..2a489e279 100644 --- a/google/cloud/baremetalsolution/v2/baremetalsolution_v2.yaml +++ b/google/cloud/baremetalsolution/v2/baremetalsolution_v2.yaml @@ -5,6 +5,9 @@ title: Bare Metal Solution API apis: - name: google.cloud.baremetalsolution.v2.BareMetalSolution +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: - name: google.cloud.baremetalsolution.v2.OperationMetadata @@ -38,15 +41,6 @@ http: get: '/v2/{name=projects/*/locations/*}' - selector: google.cloud.location.Locations.ListLocations get: '/v2/{name=projects/*}/locations' - - selector: google.longrunning.Operations.CancelOperation - post: '/v2/{name=projects/*/locations/*/operations/*}:cancel' - body: '*' - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v2/{name=projects/*/locations/*/operations/*}' - - selector: google.longrunning.Operations.GetOperation - get: '/v2/{name=projects/*/locations/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v2/{name=projects/*/locations/*}/operations' authentication: rules: diff --git a/google/cloud/baremetalsolution/v2/instance.proto b/google/cloud/baremetalsolution/v2/instance.proto new file mode 100644 index 000000000..49105bd8c --- /dev/null +++ b/google/cloud/baremetalsolution/v2/instance.proto @@ -0,0 +1,288 @@ +// 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.cloud.baremetalsolution.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/baremetalsolution/v2/lun.proto"; +import "google/cloud/baremetalsolution/v2/network.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BareMetalSolution.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution"; +option java_multiple_files = true; +option java_outer_classname = "InstanceProto"; +option java_package = "com.google.cloud.baremetalsolution.v2"; +option php_namespace = "Google\\Cloud\\BareMetalSolution\\V2"; +option ruby_package = "Google::Cloud::BareMetalSolution::V2"; + +// A server. +message Instance { + option (google.api.resource) = { + type: "baremetalsolution.googleapis.com/Instance" + pattern: "projects/{project}/locations/{location}/instances/{instance}" + }; + + // The possible states for this server. + enum State { + // The server is in an unknown state. + STATE_UNSPECIFIED = 0; + + // The server is being provisioned. + PROVISIONING = 1; + + // The server is running. + RUNNING = 2; + + // The server has been deleted. + DELETED = 3; + } + + // Output only. The resource name of this `Instance`. + // Resource names are schemeless URIs that follow the conventions in + // https://cloud.google.com/apis/design/resource_names. + // Format: + // `projects/{project}/locations/{location}/instances/{instance}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // An identifier for the `Instance`, generated by the backend. + string id = 11; + + // Output only. Create a time stamp. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update a time stamp. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The server type. + // [Available server + // types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations) + string machine_type = 4; + + // The state of the server. + State state = 5; + + // True if you enable hyperthreading for the server, otherwise false. + // The default value is false. + bool hyperthreading_enabled = 6; + + // Labels as key value pairs. + map labels = 7; + + // List of LUNs associated with this server. + repeated Lun luns = 8; + + // List of networks associated with this server. + repeated Network networks = 9; + + // True if the interactive serial console feature is enabled for the instance, + // false otherwise. + // The default value is false. + bool interactive_serial_console_enabled = 10; + + // The OS image currently installed on the server. + string os_image = 12; + + // Immutable. Pod name. + // Pod is an independent part of infrastructure. + // Instance can be connected to the assets (networks, volumes) allocated + // in the same pod only. + string pod = 13 [(google.api.field_behavior) = IMMUTABLE]; + + // Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. + // Generally, the template name follows the syntax of + // "bond" or "nic". + string network_template = 14 [(google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/ServerNetworkTemplate" + }]; + + // List of logical interfaces for the instance. The number of logical + // interfaces will be the same as number of hardware bond/nic on the chosen + // network template. For the non-multivlan configurations (for eg, existing + // servers) that use existing default network template (bondaa-bondaa), both + // the Instance.networks field and the Instance.logical_interfaces fields will + // be filled to ensure backward compatibility. For the others, only + // Instance.logical_interfaces will be filled. + repeated LogicalInterface logical_interfaces = 15; +} + +// Message for requesting server information. +message GetInstanceRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Instance" + } + ]; +} + +// Message for requesting the list of servers. +message ListInstancesRequest { + // Required. Parent value for ListInstancesRequest. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Requested page size. Server may return fewer items than requested. + // If unspecified, the server will pick an appropriate default. + int32 page_size = 2; + + // A token identifying a page of results from the server. + string page_token = 3; + + // List filter. + string filter = 4; +} + +// Response message for the list of servers. +message ListInstancesResponse { + // The list of servers. + repeated Instance instances = 1; + + // A token identifying a page of results from the server. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message requesting to updating a server. +message UpdateInstanceRequest { + // Required. The server to update. + // + // The `name` field is used to identify the instance to update. + // Format: projects/{project}/locations/{location}/instances/{instance} + Instance instance = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. + // The currently supported fields are: + // `labels` + // `hyperthreading_enabled` + // `os_image` + google.protobuf.FieldMask update_mask = 2; +} + +// Message requesting to reset a server. +message ResetInstanceRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Instance" + } + ]; +} + +// Message requesting to start a server. +message StartInstanceRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Instance" + } + ]; +} + +// Message requesting to stop a server. +message StopInstanceRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Instance" + } + ]; +} + +// Message for detach specific LUN from an Instance. +message DetachLunRequest { + // Required. Name of the instance. + string instance = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Instance" + } + ]; + + // Required. Name of the Lun to detach. + string lun = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Lun" + } + ]; +} + +// Network template. +message ServerNetworkTemplate { + option (google.api.resource) = { + type: "baremetalsolution.googleapis.com/ServerNetworkTemplate" + pattern: "projects/{project}/locations/{location}/serverNetworkTemplate/{server_network_template}" + }; + + // Logical interface. + message LogicalInterface { + // Interface type. + enum InterfaceType { + // Unspecified value. + INTERFACE_TYPE_UNSPECIFIED = 0; + + // Bond interface type. + BOND = 1; + + // NIC interface type. + NIC = 2; + } + + // Interface name. + // This is not a globally unique identifier. + // Name is unique only inside the ServerNetworkTemplate. This is of syntax + // or + // and forms part of the network template name. + string name = 1; + + // Interface type. + InterfaceType type = 2; + + // If true, interface must have network connected. + bool required = 3; + } + + // Output only. Template's unique name. The full resource name follows the pattern: + // `projects/{project}/locations/{location}/serverNetworkTemplate/{server_network_template}` + // Generally, the {server_network_template} follows the syntax of + // "bond" or "nic". + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Instance types this template is applicable to. + repeated string applicable_instance_types = 2; + + // Logical interfaces. + repeated LogicalInterface logical_interfaces = 3; +} + +// Response message from starting a server. +message StartInstanceResponse {} + +// Response message from stopping a server. +message StopInstanceResponse {} diff --git a/google/cloud/baremetalsolution/v2/lun.proto b/google/cloud/baremetalsolution/v2/lun.proto new file mode 100644 index 000000000..c165a5030 --- /dev/null +++ b/google/cloud/baremetalsolution/v2/lun.proto @@ -0,0 +1,149 @@ +// 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.cloud.baremetalsolution.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.BareMetalSolution.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution"; +option java_multiple_files = true; +option java_outer_classname = "LunProto"; +option java_package = "com.google.cloud.baremetalsolution.v2"; +option php_namespace = "Google\\Cloud\\BareMetalSolution\\V2"; +option ruby_package = "Google::Cloud::BareMetalSolution::V2"; + +// A storage volume logical unit number (LUN). +message Lun { + option (google.api.resource) = { + type: "baremetalsolution.googleapis.com/Lun" + pattern: "projects/{project}/locations/{location}/volumes/{volume}/luns/{lun}" + }; + + // The possible states for the LUN. + enum State { + // The LUN is in an unknown state. + STATE_UNSPECIFIED = 0; + + // The LUN is being created. + CREATING = 1; + + // The LUN is being updated. + UPDATING = 2; + + // The LUN is ready for use. + READY = 3; + + // The LUN has been requested to be deleted. + DELETING = 4; + } + + // Display the operating systems present for the LUN multiprotocol type. + enum MultiprotocolType { + // Server has no OS specified. + MULTIPROTOCOL_TYPE_UNSPECIFIED = 0; + + // Server with Linux OS. + LINUX = 1; + } + + // The storage types for a LUN. + enum StorageType { + // The storage type for this LUN is unknown. + STORAGE_TYPE_UNSPECIFIED = 0; + + // This storage type for this LUN is SSD. + SSD = 1; + + // This storage type for this LUN is HDD. + HDD = 2; + } + + // Output only. The name of the LUN. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // An identifier for the LUN, generated by the backend. + string id = 10; + + // The state of this storage volume. + State state = 2; + + // The size of this LUN, in gigabytes. + int64 size_gb = 3; + + // The LUN multiprotocol type ensures the characteristics of the LUN are + // optimized for each operating system. + MultiprotocolType multiprotocol_type = 4; + + // Display the storage volume for this LUN. + string storage_volume = 5 [(google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Volume" + }]; + + // Display if this LUN can be shared between multiple physical servers. + bool shareable = 6; + + // Display if this LUN is a boot LUN. + bool boot_lun = 7; + + // The storage type for this LUN. + StorageType storage_type = 8; + + // The WWID for this LUN. + string wwid = 9; +} + +// Message for requesting storage lun information. +message GetLunRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Lun" + } + ]; +} + +// Message for requesting a list of storage volume luns. +message ListLunsRequest { + // Required. Parent value for ListLunsRequest. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Volume" + } + ]; + + // Requested page size. The server might return fewer items than requested. + // If unspecified, server will pick an appropriate default. + int32 page_size = 2; + + // A token identifying a page of results from the server. + string page_token = 3; +} + +// Response message containing the list of storage volume luns. +message ListLunsResponse { + // The list of luns. + repeated Lun luns = 1; + + // A token identifying a page of results from the server. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} diff --git a/google/cloud/baremetalsolution/v2/network.proto b/google/cloud/baremetalsolution/v2/network.proto new file mode 100644 index 000000000..3f240de01 --- /dev/null +++ b/google/cloud/baremetalsolution/v2/network.proto @@ -0,0 +1,284 @@ +// 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.cloud.baremetalsolution.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.BareMetalSolution.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution"; +option java_multiple_files = true; +option java_outer_classname = "NetworkProto"; +option java_package = "com.google.cloud.baremetalsolution.v2"; +option php_namespace = "Google\\Cloud\\BareMetalSolution\\V2"; +option ruby_package = "Google::Cloud::BareMetalSolution::V2"; + +// A Network. +message Network { + option (google.api.resource) = { + type: "baremetalsolution.googleapis.com/Network" + pattern: "projects/{project}/locations/{location}/networks/{network}" + }; + + // Network type. + enum Type { + // Unspecified value. + TYPE_UNSPECIFIED = 0; + + // Client network, a network peered to a Google Cloud VPC. + CLIENT = 1; + + // Private network, a network local to the Bare Metal Solution environment. + PRIVATE = 2; + } + + // The possible states for this Network. + enum State { + // The Network is in an unknown state. + STATE_UNSPECIFIED = 0; + + // The Network is provisioning. + PROVISIONING = 1; + + // The Network has been provisioned. + PROVISIONED = 2; + } + + // Output only. The resource name of this `Network`. + // Resource names are schemeless URIs that follow the conventions in + // https://cloud.google.com/apis/design/resource_names. + // Format: + // `projects/{project}/locations/{location}/networks/{network}` + string name = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // An identifier for the `Network`, generated by the backend. + string id = 10; + + // The type of this network. + Type type = 2; + + // IP address configured. + string ip_address = 3; + + // List of physical interfaces. + repeated string mac_address = 4; + + // The Network state. + State state = 6; + + // The vlan id of the Network. + string vlan_id = 7; + + // The cidr of the Network. + string cidr = 8; + + // The vrf for the Network. + VRF vrf = 9; + + // Labels as key value pairs. + map labels = 11; + + // IP range for reserved for services (e.g. NFS). + string services_cidr = 12; + + // List of IP address reservations in this network. + // When updating this field, an error will be generated if a reservation + // conflicts with an IP address already allocated to a physical server. + repeated NetworkAddressReservation reservations = 13; +} + +// A reservation of one or more addresses in a network. +message NetworkAddressReservation { + // The first address of this reservation block. + // Must be specified as a single IPv4 address, e.g. 10.1.2.2. + string start_address = 1; + + // The last address of this reservation block, inclusive. I.e., for cases when + // reservations are only single addresses, end_address and start_address will + // be the same. + // Must be specified as a single IPv4 address, e.g. 10.1.2.2. + string end_address = 2; + + // A note about this reservation, intended for human consumption. + string note = 3; +} + +// A network VRF. +message VRF { + // The possible states for this VRF. + enum State { + // The unspecified state. + STATE_UNSPECIFIED = 0; + + // The vrf is provisioning. + PROVISIONING = 1; + + // The vrf is provisioned. + PROVISIONED = 2; + } + + // QOS policy parameters. + message QosPolicy { + // The bandwidth permitted by the QOS policy, in gbps. + double bandwidth_gbps = 1; + } + + // VLAN attachment details. + message VlanAttachment { + // The peer vlan ID of the attachment. + int64 peer_vlan_id = 1; + + // The peer IP of the attachment. + string peer_ip = 2; + + // The router IP of the attachment. + string router_ip = 3; + } + + // The name of the VRF. + string name = 1; + + // The possible state of VRF. + State state = 5; + + // The QOS policy applied to this VRF. + QosPolicy qos_policy = 6; + + // The list of VLAN attachments for the VRF. + repeated VlanAttachment vlan_attachments = 7; +} + +// Each logical interface represents a logical abstraction of the underlying +// physical interface (for eg. bond, nic) of the instance. Each logical +// interface can effectively map to multiple network-IP pairs and still be +// mapped to one underlying physical interface. +message LogicalInterface { + // Each logical network interface is effectively a network and IP pair. + message LogicalNetworkInterface { + // Name of the network + string network = 1; + + // IP address in the network + string ip_address = 2; + + // Whether this interface is the default gateway for the instance. Only + // one interface can be the default gateway for the instance. + bool default_gateway = 3; + + // Type of network. + Network.Type network_type = 4; + + // An identifier for the `Network`, generated by the backend. + string id = 5; + } + + // List of logical network interfaces within a logical interface. + repeated LogicalNetworkInterface logical_network_interfaces = 1; + + // Interface name. This is of syntax or and + // forms part of the network template name. + string name = 2; + + // The index of the logical interface mapping to the index of the hardware + // bond or nic on the chosen network template. + int32 interface_index = 3; +} + +// Message for requesting network information. +message GetNetworkRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Network" + } + ]; +} + +// Message for requesting a list of networks. +message ListNetworksRequest { + // Required. Parent value for ListNetworksRequest. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Requested page size. The server might return fewer items than requested. + // If unspecified, server will pick an appropriate default. + int32 page_size = 2; + + // A token identifying a page of results from the server. + string page_token = 3; + + // List filter. + string filter = 4; +} + +// Response message containing the list of networks. +message ListNetworksResponse { + // The list of networks. + repeated Network networks = 1; + + // A token identifying a page of results from the server. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message requesting to updating a network. +message UpdateNetworkRequest { + // Required. The network to update. + // + // The `name` field is used to identify the instance to update. + // Format: projects/{project}/locations/{location}/networks/{network} + Network network = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. + // The only currently supported fields are: + // `labels`, `reservations` + google.protobuf.FieldMask update_mask = 2; +} + +// Network with all used IP addresses. +message NetworkUsage { + // Network. + Network network = 1; + + // All used IP addresses in this network. + repeated string used_ips = 2; +} + +// Request to get networks with IPs. +message ListNetworkUsageRequest { + // Required. Parent value (project and location). + string location = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// Response with Networks with IPs +message ListNetworkUsageResponse { + // Networks with IPs. + repeated NetworkUsage networks = 1; +} diff --git a/google/cloud/baremetalsolution/v2/nfs_share.proto b/google/cloud/baremetalsolution/v2/nfs_share.proto new file mode 100644 index 000000000..29d2a808d --- /dev/null +++ b/google/cloud/baremetalsolution/v2/nfs_share.proto @@ -0,0 +1,164 @@ +// 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.cloud.baremetalsolution.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.BareMetalSolution.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution"; +option java_multiple_files = true; +option java_outer_classname = "NfsShareProto"; +option java_package = "com.google.cloud.baremetalsolution.v2"; +option php_namespace = "Google\\Cloud\\BareMetalSolution\\V2"; +option ruby_package = "Google::Cloud::BareMetalSolution::V2"; + +// An NFS share. +message NfsShare { + option (google.api.resource) = { + type: "baremetalsolution.googleapis.com/NFSShare" + pattern: "projects/{project}/locations/{location}/nfsShares/{nfs_share}" + }; + + // The possible states for this NFS share. + enum State { + // The share is in an unknown state. + STATE_UNSPECIFIED = 0; + + // The share has been provisioned. + PROVISIONED = 1; + } + + // The possible mount permissions. + enum MountPermissions { + // Permissions were not specified. + MOUNT_PERMISSIONS_UNSPECIFIED = 0; + + // NFS share can be mount with read-only permissions. + READ = 1; + + // NFS share can be mount with read-write permissions. + READ_WRITE = 2; + } + + // Represents an 'access point' for the share. + message AllowedClient { + // The network the access point sits on. + string network = 1 [(google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Network" + }]; + + // The IP address of the share on this network. + string share_ip = 2; + + // The subnet of IP addresses permitted to access the share. + string allowed_clients_cidr = 3; + + // Mount permissions. + MountPermissions mount_permissions = 4; + + // Allow dev flag. Which controls whether to allow creation of devices. + bool allow_dev = 5; + + // Allow the setuid flag. + bool allow_suid = 6; + + // Disable root squashing, which is a feature of NFS. + // Root squash is a special mapping of the remote superuser (root) identity + // when using identity authentication. + bool no_root_squash = 7; + } + + // Output only. The name of the NFS share. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An identifier for the NFS share, generated by the backend. + string nfs_share_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The state of the NFS share. + State state = 3; + + // The volume containing the share. + string volume = 4 [(google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Volume" + }]; + + // List of allowed access points. + repeated AllowedClient allowed_clients = 5; + + // Labels as key value pairs. + map labels = 6; +} + +// Message for requesting NFS share information. +message GetNfsShareRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/NFSShare" + } + ]; +} + +// Message for requesting a list of NFS shares. +message ListNfsSharesRequest { + // Required. Parent value for ListNfsSharesRequest. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Requested page size. The server might return fewer items than requested. + // If unspecified, server will pick an appropriate default. + int32 page_size = 2; + + // A token identifying a page of results from the server. + string page_token = 3; + + // List filter. + string filter = 4; +} + +// Response message containing the list of NFS shares. +message ListNfsSharesResponse { + // The list of NFS shares. + repeated NfsShare nfs_shares = 1; + + // A token identifying a page of results from the server. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message requesting to updating a NFS share. +message UpdateNfsShareRequest { + // Required. The NFS share to update. + // + // The `name` field is used to identify the NFS share to update. + // Format: projects/{project}/locations/{location}/nfsShares/{nfs_share} + NfsShare nfs_share = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. + // The only currently supported fields are: + // `labels` + google.protobuf.FieldMask update_mask = 2; +} diff --git a/google/cloud/baremetalsolution/v2/volume.proto b/google/cloud/baremetalsolution/v2/volume.proto new file mode 100644 index 000000000..39d66f9ce --- /dev/null +++ b/google/cloud/baremetalsolution/v2/volume.proto @@ -0,0 +1,231 @@ +// 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.cloud.baremetalsolution.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.BareMetalSolution.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution"; +option java_multiple_files = true; +option java_outer_classname = "VolumeProto"; +option java_package = "com.google.cloud.baremetalsolution.v2"; +option php_namespace = "Google\\Cloud\\BareMetalSolution\\V2"; +option ruby_package = "Google::Cloud::BareMetalSolution::V2"; + +// A storage volume. +message Volume { + option (google.api.resource) = { + type: "baremetalsolution.googleapis.com/Volume" + pattern: "projects/{project}/locations/{location}/volumes/{volume}" + }; + + // The storage type for a volume. + enum StorageType { + // The storage type for this volume is unknown. + STORAGE_TYPE_UNSPECIFIED = 0; + + // The storage type for this volume is SSD. + SSD = 1; + + // This storage type for this volume is HDD. + HDD = 2; + } + + // The possible states for a storage volume. + enum State { + // The storage volume is in an unknown state. + STATE_UNSPECIFIED = 0; + + // The storage volume is being created. + CREATING = 1; + + // The storage volume is ready for use. + READY = 2; + + // The storage volume has been requested to be deleted. + DELETING = 3; + } + + // Details about snapshot space reservation and usage on the storage volume. + message SnapshotReservationDetail { + // The space on this storage volume reserved for snapshots, shown in GiB. + int64 reserved_space_gib = 1; + + // The percent of snapshot space on this storage volume actually being used + // by the snapshot copies. This value might be higher than 100% if the + // snapshot copies have overflowed into the data portion of the storage + // volume. + int32 reserved_space_used_percent = 2; + + // The amount, in GiB, of available space in this storage volume's reserved + // snapshot space. + int64 reserved_space_remaining_gib = 3; + + // Percent of the total Volume size reserved for snapshot copies. + // Enabling snapshots requires reserving 20% or more of + // the storage volume space for snapshots. Maximum reserved space for + // snapshots is 40%. + // Setting this field will effectively set snapshot_enabled to true. + int32 reserved_space_percent = 4; + } + + // The kinds of auto delete behavior to use when snapshot reserved space is + // full. + enum SnapshotAutoDeleteBehavior { + // The unspecified behavior. + SNAPSHOT_AUTO_DELETE_BEHAVIOR_UNSPECIFIED = 0; + + // Don't delete any snapshots. This disables new snapshot creation, as + // long as the snapshot reserved space is full. + DISABLED = 1; + + // Delete the oldest snapshots first. + OLDEST_FIRST = 2; + + // Delete the newest snapshots first. + NEWEST_FIRST = 3; + } + + // Output only. The resource name of this `Volume`. + // Resource names are schemeless URIs that follow the conventions in + // https://cloud.google.com/apis/design/resource_names. + // Format: + // `projects/{project}/locations/{location}/volumes/{volume}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // An identifier for the `Volume`, generated by the backend. + string id = 11; + + // The storage type for this volume. + StorageType storage_type = 2; + + // The state of this storage volume. + State state = 3; + + // The requested size of this storage volume, in GiB. + int64 requested_size_gib = 4; + + // The current size of this storage volume, in GiB, including space reserved + // for snapshots. This size might be different than the requested size if the + // storage volume has been configured with auto grow or auto shrink. + int64 current_size_gib = 5; + + // Additional emergency size that was requested for this Volume, in GiB. + // current_size_gib includes this value. + int64 emergency_size_gib = 14; + + // The size, in GiB, that this storage volume has expanded as a result of an + // auto grow policy. In the absence of auto-grow, the value is 0. + int64 auto_grown_size_gib = 6; + + // The space remaining in the storage volume for new LUNs, in GiB, excluding + // space reserved for snapshots. + int64 remaining_space_gib = 7; + + // Details about snapshot space reservation and usage on the storage volume. + SnapshotReservationDetail snapshot_reservation_detail = 8; + + // The behavior to use when snapshot reserved space is full. + SnapshotAutoDeleteBehavior snapshot_auto_delete_behavior = 9; + + // Labels as key value pairs. + map labels = 12; + + // Whether snapshots are enabled. + bool snapshot_enabled = 13; + + // Immutable. Pod name. + string pod = 15 [(google.api.field_behavior) = IMMUTABLE]; +} + +// Message for requesting storage volume information. +message GetVolumeRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Volume" + } + ]; +} + +// Message for requesting a list of storage volumes. +message ListVolumesRequest { + // Required. Parent value for ListVolumesRequest. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Requested page size. The server might return fewer items than requested. + // If unspecified, server will pick an appropriate default. + int32 page_size = 2; + + // A token identifying a page of results from the server. + string page_token = 3; + + // List filter. + string filter = 4; +} + +// Response message containing the list of storage volumes. +message ListVolumesResponse { + // The list of storage volumes. + repeated Volume volumes = 1; + + // A token identifying a page of results from the server. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for updating a volume. +message UpdateVolumeRequest { + // Required. The volume to update. + // + // The `name` field is used to identify the volume to update. + // Format: projects/{project}/locations/{location}/volumes/{volume} + Volume volume = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. + // The only currently supported fields are: + // `snapshot_auto_delete_behavior` + // `snapshot_schedule_policy_name` + // 'labels' + // 'snapshot_enabled' + // 'snapshot_reservation_detail.reserved_space_percent' + google.protobuf.FieldMask update_mask = 2; +} + +// Request for emergency resize Volume. +message ResizeVolumeRequest { + // Required. Volume to resize. + string volume = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "baremetalsolution.googleapis.com/Volume" + } + ]; + + // New Volume size, in GiB. + int64 size_gib = 2; +} diff --git a/google/cloud/batch/BUILD.bazel b/google/cloud/batch/BUILD.bazel new file mode 100644 index 000000000..ab30882b2 --- /dev/null +++ b/google/cloud/batch/BUILD.bazel @@ -0,0 +1,38 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-batch. + +# 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 batch. +# 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 = "batch_ruby_wrapper", + srcs = ["//google/cloud/batch/v1:batch_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=batch.googleapis.com", + "ruby-cloud-api-shortname=batch", + "ruby-cloud-gem-name=google-cloud-batch", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "Google Cloud Batch is a fully managed service used by scientists, VFX artists, developers to easily and efficiently run batch workloads on Google Cloud. This service manages provisioning of resources to satisfy the requirements of the batch jobs for a variety of workloads including ML, HPC, VFX rendering, transcoding, genomics and others.", + ruby_cloud_title = "Batch", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-batch-ruby", + deps = [ + ":batch_ruby_wrapper", + ], +) diff --git a/google/cloud/batch/v1/BUILD.bazel b/google/cloud/batch/v1/BUILD.bazel new file mode 100644 index 000000000..1286a10c9 --- /dev/null +++ b/google/cloud/batch/v1/BUILD.bazel @@ -0,0 +1,397 @@ +# 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 = "batch_proto", + srcs = [ + "batch.proto", + "job.proto", + "task.proto", + "volume.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//:duration_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "batch_proto_with_info", + deps = [ + ":batch_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "batch_java_proto", + deps = [":batch_proto"], +) + +java_grpc_library( + name = "batch_java_grpc", + srcs = [":batch_proto"], + deps = [":batch_java_proto"], +) + +java_gapic_library( + name = "batch_java_gapic", + srcs = [":batch_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "batch_v1_grpc_service_config.json", + service_yaml = "batch_v1.yaml", + test_deps = [ + ":batch_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":batch_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "batch_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.batch.v1.BatchServiceClientHttpJsonTest", + "com.google.cloud.batch.v1.BatchServiceClientTest", + ], + runtime_deps = [":batch_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-batch-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":batch_java_gapic", + ":batch_java_grpc", + ":batch_java_proto", + ":batch_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "batch_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/batch/v1", + protos = [":batch_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "batch_go_gapic", + srcs = [":batch_proto_with_info"], + grpc_service_config = "batch_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/batch/apiv1;batch", + metadata = True, + service_yaml = "batch_v1.yaml", + transport = "grpc+rest", + deps = [ + ":batch_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", + ], +) + +go_test( + name = "batch_go_gapic_test", + srcs = [":batch_go_gapic_srcjar_test"], + embed = [":batch_go_gapic"], + importpath = "cloud.google.com/go/batch/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-batch-v1-go", + deps = [ + ":batch_go_gapic", + ":batch_go_gapic_srcjar-metadata.srcjar", + ":batch_go_gapic_srcjar-test.srcjar", + ":batch_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "batch_py_gapic", + srcs = [":batch_proto"], + grpc_service_config = "batch_v1_grpc_service_config.json", + service_yaml = "batch_v1.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "batch_py_gapic_test", + srcs = [ + "batch_py_gapic_pytest.py", + "batch_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":batch_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "batch-v1-py", + deps = [ + ":batch_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "batch_php_proto", + deps = [":batch_proto"], +) + +php_grpc_library( + name = "batch_php_grpc", + srcs = [":batch_proto"], + deps = [":batch_php_proto"], +) + +php_gapic_library( + name = "batch_php_gapic", + srcs = [":batch_proto_with_info"], + grpc_service_config = "batch_v1_grpc_service_config.json", + service_yaml = "batch_v1.yaml", + deps = [ + ":batch_php_grpc", + ":batch_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-batch-v1-php", + deps = [ + ":batch_php_gapic", + ":batch_php_grpc", + ":batch_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "batch_nodejs_gapic", + package_name = "@google-cloud/batch", + src = ":batch_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "batch_v1_grpc_service_config.json", + package = "google.cloud.batch.v1", + service_yaml = "batch_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "batch-v1-nodejs", + deps = [ + ":batch_nodejs_gapic", + ":batch_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 = "batch_ruby_proto", + deps = [":batch_proto"], +) + +ruby_grpc_library( + name = "batch_ruby_grpc", + srcs = [":batch_proto"], + deps = [":batch_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "batch_ruby_gapic", + srcs = [":batch_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=batch.googleapis.com", + "ruby-cloud-api-shortname=batch", + "ruby-cloud-gem-name=google-cloud-batch-v1", + ], + grpc_service_config = "batch_v1_grpc_service_config.json", + ruby_cloud_description = "Google Cloud Batch is a fully managed service used by scientists, VFX artists, developers to easily and efficiently run batch workloads on Google Cloud. This service manages provisioning of resources to satisfy the requirements of the batch jobs for a variety of workloads including ML, HPC, VFX rendering, transcoding, genomics and others.", + ruby_cloud_title = "Batch V1", + service_yaml = "batch_v1.yaml", + deps = [ + ":batch_ruby_grpc", + ":batch_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-batch-v1-ruby", + deps = [ + ":batch_ruby_gapic", + ":batch_ruby_grpc", + ":batch_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 = "batch_csharp_proto", + deps = [":batch_proto"], +) + +csharp_grpc_library( + name = "batch_csharp_grpc", + srcs = [":batch_proto"], + deps = [":batch_csharp_proto"], +) + +csharp_gapic_library( + name = "batch_csharp_gapic", + srcs = [":batch_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "batch_v1_grpc_service_config.json", + service_yaml = "batch_v1.yaml", + deps = [ + ":batch_csharp_grpc", + ":batch_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-batch-v1-csharp", + deps = [ + ":batch_csharp_gapic", + ":batch_csharp_grpc", + ":batch_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "batch_cc_proto", + deps = [":batch_proto"], +) + +cc_grpc_library( + name = "batch_cc_grpc", + srcs = [":batch_proto"], + grpc_only = True, + deps = [":batch_cc_proto"], +) diff --git a/google/cloud/batch/v1/batch.proto b/google/cloud/batch/v1/batch.proto new file mode 100644 index 000000000..5dfe9cad7 --- /dev/null +++ b/google/cloud/batch/v1/batch.proto @@ -0,0 +1,272 @@ +// 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.cloud.batch.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/batch/v1/job.proto"; +import "google/cloud/batch/v1/task.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Batch.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1;batch"; +option java_multiple_files = true; +option java_outer_classname = "BatchProto"; +option java_package = "com.google.cloud.batch.v1"; +option objc_class_prefix = "GCB"; +option php_namespace = "Google\\Cloud\\Batch\\V1"; +option ruby_package = "Google::Cloud::Batch::V1"; + +// Google Batch Service. +// The service manages user submitted batch jobs and allocates Google Compute +// Engine VM instances to run the jobs. +service BatchService { + option (google.api.default_host) = "batch.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Create a Job. + rpc CreateJob(CreateJobRequest) returns (Job) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/jobs" + body: "job" + }; + option (google.api.method_signature) = "parent,job,job_id"; + } + + // Get a Job specified by its resource name. + rpc GetJob(GetJobRequest) returns (Job) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/jobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Delete a Job. + rpc DeleteJob(DeleteJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/jobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.batch.v1.OperationMetadata" + }; + } + + // List all Jobs for a project within a region. + rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/jobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Return a single Task. + rpc GetTask(GetTaskRequest) returns (Task) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/jobs/*/taskGroups/*/tasks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List Tasks associated with a job. + rpc ListTasks(ListTasksRequest) returns (ListTasksResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/jobs/*/taskGroups/*}/tasks" + }; + option (google.api.method_signature) = "parent"; + } +} + +// CreateJob Request. +message CreateJobRequest { + // Required. The parent resource name where the Job 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/Job" + } + ]; + + // ID used to uniquely identify the Job within its parent scope. + // This field should contain at most 63 characters. + // Only alphanumeric characters or '-' 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 job.name field in the request will be ignored and the created resource + // name of the Job will be "{parent}/jobs/{job_id}". + string job_id = 2; + + // Required. The Job to create. + Job job = 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 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_behavior) = OPTIONAL]; +} + +// GetJob Request. +message GetJobRequest { + // Required. Job name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "batch.googleapis.com/Job" + } + ]; +} + +// DeleteJob Request. +message DeleteJobRequest { + // Job name. + string name = 1; + + // 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 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_behavior) = OPTIONAL]; +} + +// ListJob Request. +message ListJobsRequest { + // Parent path. + string parent = 1; + + // List filter. + string filter = 4; + + // Page size. + int32 page_size = 2; + + // Page token. + string page_token = 3; +} + +// ListJob Response. +message ListJobsResponse { + // Jobs. + repeated Job jobs = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// ListTasks Request. +message ListTasksRequest { + // Required. Name of a TaskGroup from which Tasks are being requested. + // Pattern: + // "projects/{project}/locations/{location}/jobs/{job}/taskGroups/{task_group}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "batch.googleapis.com/TaskGroup" + } + ]; + + // Task filter, null filter matches all Tasks. + // Filter string should be of the format State=TaskStatus.State e.g. + // State=RUNNING + string filter = 2; + + // Page size. + int32 page_size = 3; + + // Page token. + string page_token = 4; +} + +// ListTasks Response. +message ListTasksResponse { + // Tasks. + repeated Task tasks = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for a single Task by name. +message GetTaskRequest { + // Required. Task name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "batch.googleapis.com/Task" + } + ]; +} + +// 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]; +} diff --git a/google/cloud/batch/v1/batch_v1.yaml b/google/cloud/batch/v1/batch_v1.yaml new file mode 100644 index 000000000..de3e4274b --- /dev/null +++ b/google/cloud/batch/v1/batch_v1.yaml @@ -0,0 +1,119 @@ +type: google.api.Service +config_version: 3 +name: batch.googleapis.com +title: Batch API + +apis: +- name: google.cloud.batch.v1.BatchService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.batch.v1.OperationMetadata + +documentation: + summary: An API to manage the running of batch jobs on Google Cloud Platform. + overview: '(== google/cloud/batch/doc/overview.md ==)' + 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. + +backend: + rules: + - selector: 'google.cloud.batch.v1.BatchService.*' + 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 + 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/*/jobs/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/tasks/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/nodes/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/jobs/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/tasks/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/nodes/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/jobs/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/tasks/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/nodes/*}: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.batch.v1.BatchService.*' + 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 diff --git a/google/cloud/batch/v1/batch_v1_grpc_service_config.json b/google/cloud/batch/v1/batch_v1_grpc_service_config.json new file mode 100644 index 000000000..718129c28 --- /dev/null +++ b/google/cloud/batch/v1/batch_v1_grpc_service_config.json @@ -0,0 +1,25 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.batch.v1.BatchService", "method": "ListJobs" }, + { "service": "google.cloud.batch.v1.BatchService", "method": "ListTasks" }, + { "service": "google.cloud.batch.v1.BatchService", "method": "GetJob" }, + { "service": "google.cloud.batch.v1.BatchService", "method": "GetTask" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.batch.v1.BatchService", "method": "CreateJob" }, + { "service": "google.cloud.batch.v1.BatchService", "method": "DeleteJob" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/batch/v1/job.proto b/google/cloud/batch/v1/job.proto new file mode 100644 index 000000000..9c746ebea --- /dev/null +++ b/google/cloud/batch/v1/job.proto @@ -0,0 +1,445 @@ +// 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.cloud.batch.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/batch/v1/task.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Batch.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1;batch"; +option java_multiple_files = true; +option java_outer_classname = "JobProto"; +option java_package = "com.google.cloud.batch.v1"; +option objc_class_prefix = "GCB"; +option php_namespace = "Google\\Cloud\\Batch\\V1"; +option ruby_package = "Google::Cloud::Batch::V1"; + +// The Cloud Batch Job description. +message Job { + option (google.api.resource) = { + type: "batch.googleapis.com/Job" + pattern: "projects/{project}/locations/{location}/jobs/{job}" + }; + + // Output only. Job name. + // For example: "projects/123456/locations/us-central1/jobs/job01". + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A system generated unique ID (in UUID4 format) for the Job. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Priority of the Job. + // The valid value range is [0, 100). + // A job with higher priority value is more likely to run earlier if all other + // requirements are satisfied. + int64 priority = 3; + + // Required. TaskGroups in the Job. Only one TaskGroup is supported now. + repeated TaskGroup task_groups = 4 [(google.api.field_behavior) = REQUIRED]; + + // Compute resource allocation for all TaskGroups in the Job. + AllocationPolicy allocation_policy = 7; + + // Labels for the Job. Labels could be user provided or system generated. + // For example, + // "labels": { + // "department": "finance", + // "environment": "test" + // } + // You can assign up to 64 labels. [Google Compute Engine label + // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) + // apply. + // Label names that start with "goog-" or "google-" are reserved. + map labels = 8; + + // Output only. Job status. It is read only for users. + JobStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the Job was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last time the Job was updated. + google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Log preservation policy for the Job. + LogsPolicy logs_policy = 13; + + // Notification configurations. + repeated JobNotification notifications = 14; +} + +// LogsPolicy describes how outputs from a Job's Tasks (stdout/stderr) will be +// preserved. +message LogsPolicy { + // The destination (if any) for logs. + enum Destination { + // Logs are not preserved. + DESTINATION_UNSPECIFIED = 0; + + // Logs are streamed to Cloud Logging. + CLOUD_LOGGING = 1; + + // Logs are saved to a file path. + PATH = 2; + } + + // Where logs should be saved. + Destination destination = 1; + + // The path to which logs are saved when the destination = PATH. This can be a + // local file path on the VM, or under the mount point of a Persistent Disk or + // Filestore, or a Cloud Storage path. + string logs_path = 2; +} + +// Job status. +message JobStatus { + // VM instance status. + message InstanceStatus { + // The Compute Engine machine type. + string machine_type = 1; + + // The VM instance provisioning model. + AllocationPolicy.ProvisioningModel provisioning_model = 2; + + // The max number of tasks can be assigned to this instance type. + int64 task_pack = 3; + } + + // Aggregated task status for a TaskGroup. + message TaskGroupStatus { + // Count of task in each state in the TaskGroup. + // The map key is task state name. + map counts = 1; + + // Status of instances allocated for the TaskGroup. + repeated InstanceStatus instances = 2; + } + + // Valid Job states. + enum State { + STATE_UNSPECIFIED = 0; + + // Job is admitted (validated and persisted) and waiting for resources. + QUEUED = 1; + + // Job is scheduled to run as soon as resource allocation is ready. + // The resource allocation may happen at a later time but with a high + // chance to succeed. + SCHEDULED = 2; + + // Resource allocation has been successful. At least one Task in the Job is + // RUNNING. + RUNNING = 3; + + // All Tasks in the Job have finished successfully. + SUCCEEDED = 4; + + // At least one Task in the Job has failed. + FAILED = 5; + + // The Job will be deleted, but has not been deleted yet. Typically this is + // because resources used by the Job are still being cleaned up. + DELETION_IN_PROGRESS = 6; + } + + // Job state + State state = 1; + + // Job status events + repeated StatusEvent status_events = 2; + + // Aggregated task status for each TaskGroup in the Job. + // The map key is TaskGroup ID. + map task_groups = 4; + + // The duration of time that the Job spent in status RUNNING. + google.protobuf.Duration run_duration = 5; +} + +// Notification configurations. +message JobNotification { + // Message details. + // Describe the attribute that a message should have. + // Without specified message attributes, no message will be sent by default. + message Message { + // The message type. + Type type = 1; + + // The new job state. + JobStatus.State new_job_state = 2; + + // The new task state. + TaskStatus.State new_task_state = 3; + } + + // The message type. + enum Type { + // Unspecified. + TYPE_UNSPECIFIED = 0; + + // Notify users that the job state has changed. + JOB_STATE_CHANGED = 1; + + // Notify users that the task state has changed. + TASK_STATE_CHANGED = 2; + } + + // The Pub/Sub topic where notifications like the job state changes + // will be published. This topic 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; + + // The attribute requirements of messages to be sent to this Pub/Sub topic. + // Without this field, no message will be sent. + Message message = 2; +} + +// A Job's resource allocation policy describes when, where, and how compute +// resources should be allocated for the Job. +message AllocationPolicy { + message LocationPolicy { + // A list of allowed location names represented by internal URLs. + // Each location can be a region or a zone. + // Only one region or multiple zones in one region is supported now. + // For example, + // ["regions/us-central1"] allow VMs in any zones in region us-central1. + // ["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. + // 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. + repeated string allowed_locations = 1; + } + + // A new persistent disk or a local ssd. + // A VM can only have one local SSD setting but multiple local SSD partitions. + // https://cloud.google.com/compute/docs/disks#pdspecs. + // https://cloud.google.com/compute/docs/disks#localssds. + message Disk { + // A data source from which a PD will be created. + oneof data_source { + // Name of a public or custom image used as the data source. + string image = 4; + + // Name of a snapshot used as the data source. + string snapshot = 5; + } + + // Disk type as shown in `gcloud compute disk-types list` + // For example, "pd-ssd", "pd-standard", "pd-balanced", "local-ssd". + string type = 1; + + // Disk size in GB. + // This field is ignored if `data_source` is `disk` or `image`. + // If `type` is `local-ssd`, size_gb should be a multiple of 375GB, + // otherwise, the final size will be the next greater multiple of 375 GB. + int64 size_gb = 2; + + // Local SSDs are available through both "SCSI" and "NVMe" interfaces. + // If not indicated, "NVMe" will be the default one for local ssds. + // We only support "SCSI" for persistent disks now. + string disk_interface = 6; + } + + // A new or an existing persistent disk or a local ssd attached to a VM + // instance. + message AttachedDisk { + oneof attached { + Disk new_disk = 1; + + // Name of an existing PD. + string existing_disk = 2; + } + + // Device name that the guest operating system will see. + // If not specified, this is default to the disk name. + string device_name = 3; + } + + // Accelerator describes Compute Engine accelerators to be attached to VMs. + message Accelerator { + // The accelerator type. For example, "nvidia-tesla-t4". + // See `gcloud compute accelerator-types list`. + string type = 1; + + // The number of accelerators of this type. + int64 count = 2; + + bool install_gpu_drivers = 3 [deprecated = true]; + } + + // InstancePolicy describes an instance type and resources attached to each VM + // created by this InstancePolicy. + message InstancePolicy { + // The Compute Engine machine type. + string machine_type = 2; + + // The minimum CPU platform. + // See + // `https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform`. + // Not yet implemented. + string min_cpu_platform = 3; + + // The provisioning model. + ProvisioningModel provisioning_model = 4; + + // The accelerators attached to each VM instance. + // Not yet implemented. + repeated Accelerator accelerators = 5; + + // Non-boot disks to be attached for each VM created by this InstancePolicy. + // New disks will be deleted when the attached VM is deleted. + repeated AttachedDisk disks = 6; + } + + // Either an InstancePolicy or an instance template. + message InstancePolicyOrTemplate { + oneof policy_template { + // InstancePolicy. + InstancePolicy policy = 1; + + // Name of an instance template used to create VMs. + // Named the field as 'instance_template' instead of 'template' to avoid + // c++ keyword conflict. + string instance_template = 2; + } + } + + // A network interface. + message NetworkInterface { + // The URL of the network resource. + string network = 1; + + // The URL of the Subnetwork resource. + string subnetwork = 2; + + // Default is false (with an external IP address). Required if + // no external public IP address is attached to the VM. If no external + // public IP address, additional configuration is required to allow the VM + // to access Google Services. See + // https://cloud.google.com/vpc/docs/configure-private-google-access and + // https://cloud.google.com/nat/docs/gce-example#create-nat for more + // information. + bool no_external_ip_address = 3; + } + + // NetworkPolicy describes VM instance network configurations. + message NetworkPolicy { + // Network configurations. + repeated NetworkInterface network_interfaces = 1; + } + + // Compute Engine VM instance provisioning model. + enum ProvisioningModel { + // Unspecified. + PROVISIONING_MODEL_UNSPECIFIED = 0; + + // Standard VM. + STANDARD = 1; + + // SPOT VM. + SPOT = 2; + + // Preemptible VM (PVM). + // + // Above SPOT VM is the preferable model for preemptible VM instances: the + // old preemptible VM model (indicated by this field) is the older model, + // and has been migrated to use the SPOT model as the underlying technology. + // This old model will still be supported. + PREEMPTIBLE = 3; + } + + // Location where compute resources should be allocated for the Job. + LocationPolicy location = 1; + + // Describe instances that can be created by this AllocationPolicy. + // Only instances[0] is supported now. + repeated InstancePolicyOrTemplate instances = 8; + + // Labels applied to all VM instances and other resources + // created by AllocationPolicy. + // Labels could be user provided or system generated. + // You can assign up to 64 labels. [Google Compute Engine label + // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) + // apply. + // Label names that start with "goog-" or "google-" are reserved. + map labels = 6; + + // The network policy. + NetworkPolicy network = 7; +} + +// A TaskGroup contains one or multiple Tasks that share the same +// Runnable but with different runtime parameters. +message TaskGroup { + option (google.api.resource) = { + type: "batch.googleapis.com/TaskGroup" + pattern: "projects/{project}/locations/{location}/jobs/{job}/taskGroups/{task_group}" + }; + + // Output only. TaskGroup name. + // The system generates this field based on parent Job name. + // For example: + // "projects/123456/locations/us-west1/jobs/job01/taskGroups/group01". + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Tasks in the group share the same task spec. + TaskSpec task_spec = 3 [(google.api.field_behavior) = REQUIRED]; + + // Number of Tasks in the TaskGroup. + // default is 1 + int64 task_count = 4; + + // Max number of tasks that can run in parallel. + // Default to min(task_count, 1000). + int64 parallelism = 5; + + // An array of environment variable mappings, which are passed to Tasks with + // matching indices. If task_environments is used then task_count should + // not be specified in the request (and will be ignored). Task count will be + // the length of task_environments. + // + // Tasks get a BATCH_TASK_INDEX and BATCH_TASK_COUNT environment variable, in + // addition to any environment variables set in task_environments, specifying + // the number of Tasks in the Task's parent TaskGroup, and the specific Task's + // index in the TaskGroup (0 through BATCH_TASK_COUNT - 1). + // + // task_environments supports up to 200 entries. + repeated Environment task_environments = 9; + + // Max number of tasks that can be run on a VM at the same time. + // If not specified, the system will decide a value based on available + // compute resources on a VM and task requirements. + int64 task_count_per_node = 10; + + // When true, Batch will populate a file with a list of all VMs assigned to + // the TaskGroup and set the BATCH_HOSTS_FILE environment variable to the path + // of that file. Defaults to false. + bool require_hosts_file = 11; + + // When true, Batch will configure SSH to allow passwordless login between + // VMs running the Batch tasks in the same TaskGroup. + bool permissive_ssh = 12; +} diff --git a/google/cloud/batch/v1/task.proto b/google/cloud/batch/v1/task.proto new file mode 100644 index 000000000..bc4dbfea3 --- /dev/null +++ b/google/cloud/batch/v1/task.proto @@ -0,0 +1,297 @@ +// 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.cloud.batch.v1; + +import "google/api/resource.proto"; +import "google/cloud/batch/v1/volume.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Batch.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1;batch"; +option java_multiple_files = true; +option java_outer_classname = "TaskProto"; +option java_package = "com.google.cloud.batch.v1"; +option objc_class_prefix = "GCB"; +option php_namespace = "Google\\Cloud\\Batch\\V1"; +option ruby_package = "Google::Cloud::Batch::V1"; + +// Compute resource requirements +message ComputeResource { + // The milliCPU count. + int64 cpu_milli = 1; + + // Memory in MiB. + int64 memory_mib = 2; + + // Extra boot disk size in MiB for each task. + int64 boot_disk_mib = 4; +} + +// Status event +message StatusEvent { + // Type of the event. + string type = 3; + + // Description of the event. + string description = 1; + + // The time this event occurred. + google.protobuf.Timestamp event_time = 2; + + // Task Execution + TaskExecution task_execution = 4; +} + +// 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. + int32 exit_code = 1; +} + +// Status of a task +message TaskStatus { + // Task states. + enum State { + // unknown state + STATE_UNSPECIFIED = 0; + + // The Task is created and waiting for resources. + PENDING = 1; + + // The Task is assigned to at least one VM. + ASSIGNED = 2; + + // The Task is running. + RUNNING = 3; + + // The Task has failed. + FAILED = 4; + + // The Task has succeeded. + SUCCEEDED = 5; + } + + // Task state + State state = 1; + + // Detailed info about why the state is reached. + repeated StatusEvent status_events = 2; +} + +// Runnable describes instructions for executing a specific script or container +// as part of a Task. +message Runnable { + // Container runnable. + message Container { + // The URI to pull the container image from. + string image_uri = 1; + + // Overrides the `CMD` specified in the container. If there is an ENTRYPOINT + // (either in the container image or with the entrypoint field below) then + // commands are appended as arguments to the ENTRYPOINT. + repeated string commands = 2; + + // Overrides the `ENTRYPOINT` specified in the container. + string entrypoint = 3; + + // Volumes to mount (bind mount) from the host machine files or directories + // into the container, formatted to match docker run's --volume option, + // e.g. /foo:/bar, or /foo:/bar:ro + repeated string volumes = 7; + + // Arbitrary additional options to include in the "docker run" command when + // running this container, e.g. "--network host". + string options = 8; + + // If set to true, external network access to and from container will be + // blocked. The container will use the default internal network + // 'goog-internal'. + bool block_external_network = 9; + + // Optional username for logging in to a docker registry. If username + // matches "projects/*/secrets/*/versions/*" then Batch will read the + // username from the Secret Manager. + string username = 10; + + // Optional password for logging in to a docker registry. If password + // matches "projects/*/secrets/*/versions/*" then Batch will read the + // password from the Secret Manager; + string password = 11; + } + + // Script runnable. + message Script { + oneof command { + // Script file path on the host VM. + string path = 1; + + // Shell script text. + string text = 2; + } + } + + // Barrier runnable blocks until all tasks in a taskgroup reach it. + message Barrier { + // Barriers are identified by their index in runnable list. + // Names are not required, but if present should be an identifier. + string name = 1; + } + + // The script or container to run. + oneof executable { + // Container runnable. + Container container = 1; + + // Script runnable. + Script script = 2; + + // Barrier runnable. + Barrier barrier = 6; + } + + // Normally, a non-zero exit status causes the Task to fail. This flag allows + // execution of other Runnables to continue instead. + bool ignore_exit_status = 3; + + // This flag allows a Runnable to continue running in the background while the + // Task executes subsequent Runnables. This is useful to provide services to + // other Runnables (or to provide debugging support tools like SSH servers). + bool background = 4; + + // By default, after a Runnable fails, no further Runnable are executed. This + // flag indicates that this Runnable must be run even if the Task has already + // failed. This is useful for Runnables that copy output files off of the VM + // or for debugging. + // + // The always_run flag does not override the Task's overall max_run_duration. + // If the max_run_duration has expired then no further Runnables will execute, + // not even always_run Runnables. + bool always_run = 5; + + // Environment variables for this Runnable (overrides variables set for the + // whole Task or TaskGroup). + Environment environment = 7; + + // Timeout for this Runnable. + google.protobuf.Duration timeout = 8; +} + +// Spec of a task +message TaskSpec { + // The sequence of scripts or containers to run for this Task. Each Task using + // this TaskSpec executes its list of runnables in order. The Task succeeds if + // all of its runnables either exit with a zero status or any that exit with a + // non-zero status have the ignore_exit_status flag. + // + // Background runnables are killed automatically (if they have not already + // exited) a short time after all foreground runnables have completed. Even + // though this is likely to result in a non-zero exit status for the + // background runnable, these automatic kills are not treated as Task + // failures. + repeated Runnable runnables = 8; + + // 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. + google.protobuf.Duration max_run_duration = 4; + + // Maximum number of retries on failures. + // The default, 0, which means never retry. + // The valid value range is [0, 10]. + int32 max_retry_count = 5; + + // Lifecycle management schema when any task in a task group is failed. + // The valid size of lifecycle policies are [0, 10]. + // For each lifecycle policy, when the condition is met, + // the action in that policy will execute. + // If there are multiple policies that the task execution result matches, + // we use the action from the first matched policy. If task execution result + // does not meet with any of the defined lifecycle policy, we consider it as + // the default policy. Default policy means if the exit code is 0, exit task. + // If task ends with non-zero exit code, retry the task with max_retry_count. + repeated LifecyclePolicy lifecycle_policies = 9; + + // Environment variables to set before running the Task. + // You can set up to 100 environments. + map environments = 6 [deprecated = true]; + + // Volumes to mount before running Tasks using this TaskSpec. + repeated Volume volumes = 7; + + // Environment variables to set before running the Task. + Environment environment = 10; +} + +// LifecyclePolicy describes how to deal with task failures +// based on different conditions. +message LifecyclePolicy { + // Conditions for actions to deal with task failures. + message ActionCondition { + // Exit codes of a task execution. + // If there are more than 1 exit codes, + // when task executes with any of the exit code in the list, + // the condition is met and the action will be executed. + repeated int32 exit_codes = 1; + } + + // Action on task failures based on different conditions. + enum Action { + // Action unspecified. + ACTION_UNSPECIFIED = 0; + + // Action that tasks in the group will be scheduled to re-execute. + RETRY_TASK = 1; + + // Action that tasks in the group will be stopped immediately. + FAIL_TASK = 2; + } + + // Action to execute when ActionCondition is true. + Action action = 1; + + // Conditions that decide why a task failure is dealt with a specific action. + ActionCondition action_condition = 2; +} + +// A Cloud Batch task. +message Task { + option (google.api.resource) = { + type: "batch.googleapis.com/Task" + pattern: "projects/{project}/locations/{location}/jobs/{job}/taskGroups/{task_group}/tasks/{task}" + }; + + // Task name. + // The name is generated from the parent TaskGroup name and 'id' field. + // For example: + // "projects/123456/locations/us-west1/jobs/job01/taskGroups/group01/tasks/task01". + string name = 1; + + // Task Status. + TaskStatus status = 2; +} + +// An Environment describes a collection of environment variables to set when +// executing Tasks. +message Environment { + // A map of environment variable names to values. + map variables = 1; +} diff --git a/google/cloud/batch/v1/volume.proto b/google/cloud/batch/v1/volume.proto new file mode 100644 index 000000000..45399ccc6 --- /dev/null +++ b/google/cloud/batch/v1/volume.proto @@ -0,0 +1,72 @@ +// 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.cloud.batch.v1; + +option csharp_namespace = "Google.Cloud.Batch.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1;batch"; +option java_multiple_files = true; +option java_outer_classname = "VolumeProto"; +option java_package = "com.google.cloud.batch.v1"; +option objc_class_prefix = "GCB"; +option php_namespace = "Google\\Cloud\\Batch\\V1"; +option ruby_package = "Google::Cloud::Batch::V1"; + +// Volume and mount parameters to be associated with a TaskSpec. A TaskSpec +// might describe zero, one, or multiple volumes to be mounted as part of the +// task. +message Volume { + // The source for the volume. + oneof source { + // An NFS source for the volume (could be a Filestore, for example). + NFS nfs = 1; + + // A Google Cloud Storage source for the volume. + GCS gcs = 3; + + // Device name of an attached disk + string device_name = 6; + } + + // Mount path for the volume, e.g. /mnt/share + string mount_path = 4; + + // Mount options + // For Google Cloud Storage, mount options are the global options supported by + // gcsfuse tool. Batch will use them to mount the volume with the following + // command: + // "gcsfuse [global options] bucket mountpoint". + // For PD, NFS, mount options are these supported by /etc/fstab. Batch will + // use Fstab to mount such volumes. + // https://help.ubuntu.com/community/Fstab + repeated string mount_options = 5; +} + +// Represents an NFS server and remote path: : +message NFS { + // URI of the NFS server, e.g. an IP address. + string server = 1; + + // Remote source path exported from NFS, e.g., "/share". + string remote_path = 2; +} + +// Represents a Google Cloud Storage volume source config. +message GCS { + // Remote path, either a bucket name or a subdirectory of a bucket, e.g.: + // bucket_name, bucket_name/subdirectory/ + string remote_path = 1; +} diff --git a/google/cloud/batch/v1alpha/BUILD.bazel b/google/cloud/batch/v1alpha/BUILD.bazel new file mode 100644 index 000000000..42e21ab66 --- /dev/null +++ b/google/cloud/batch/v1alpha/BUILD.bazel @@ -0,0 +1,397 @@ +# 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 = "batch_proto", + srcs = [ + "batch.proto", + "job.proto", + "task.proto", + "volume.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//:duration_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "batch_proto_with_info", + deps = [ + ":batch_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "batch_java_proto", + deps = [":batch_proto"], +) + +java_grpc_library( + name = "batch_java_grpc", + srcs = [":batch_proto"], + deps = [":batch_java_proto"], +) + +java_gapic_library( + name = "batch_java_gapic", + srcs = [":batch_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "batch_v1alpha_grpc_service_config.json", + service_yaml = "batch_v1alpha.yaml", + test_deps = [ + ":batch_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":batch_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "batch_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.batch.v1alpha.BatchServiceClientHttpJsonTest", + "com.google.cloud.batch.v1alpha.BatchServiceClientTest", + ], + runtime_deps = [":batch_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-batch-v1alpha-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":batch_java_gapic", + ":batch_java_grpc", + ":batch_java_proto", + ":batch_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "batch_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/batch/v1alpha", + protos = [":batch_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "batch_go_gapic", + srcs = [":batch_proto_with_info"], + grpc_service_config = "batch_v1alpha_grpc_service_config.json", + importpath = "cloud.google.com/go/batch/apiv1alpha;batch", + metadata = True, + service_yaml = "batch_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":batch_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", + ], +) + +go_test( + name = "batch_go_gapic_test", + srcs = [":batch_go_gapic_srcjar_test"], + embed = [":batch_go_gapic"], + importpath = "cloud.google.com/go/batch/apiv1alpha", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-batch-v1alpha-go", + deps = [ + ":batch_go_gapic", + ":batch_go_gapic_srcjar-metadata.srcjar", + ":batch_go_gapic_srcjar-test.srcjar", + ":batch_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "batch_py_gapic", + srcs = [":batch_proto"], + grpc_service_config = "batch_v1alpha_grpc_service_config.json", + service_yaml = "batch_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "batch_py_gapic_test", + srcs = [ + "batch_py_gapic_pytest.py", + "batch_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":batch_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "batch-v1alpha-py", + deps = [ + ":batch_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "batch_php_proto", + deps = [":batch_proto"], +) + +php_grpc_library( + name = "batch_php_grpc", + srcs = [":batch_proto"], + deps = [":batch_php_proto"], +) + +php_gapic_library( + name = "batch_php_gapic", + srcs = [":batch_proto_with_info"], + grpc_service_config = "batch_v1alpha_grpc_service_config.json", + service_yaml = "batch_v1alpha.yaml", + deps = [ + ":batch_php_grpc", + ":batch_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-batch-v1alpha-php", + deps = [ + ":batch_php_gapic", + ":batch_php_grpc", + ":batch_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "batch_nodejs_gapic", + package_name = "@google-cloud/batch", + src = ":batch_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "batch_v1alpha_grpc_service_config.json", + package = "google.cloud.batch.v1alpha", + service_yaml = "batch_v1alpha.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "batch-v1alpha-nodejs", + deps = [ + ":batch_nodejs_gapic", + ":batch_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 = "batch_ruby_proto", + deps = [":batch_proto"], +) + +ruby_grpc_library( + name = "batch_ruby_grpc", + srcs = [":batch_proto"], + deps = [":batch_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "batch_ruby_gapic", + srcs = [":batch_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=batch.googleapis.com", + "ruby-cloud-api-shortname=batch", + "ruby-cloud-gem-name=google-cloud-batch-v1alpha", + ], + grpc_service_config = "batch_v1alpha_grpc_service_config.json", + ruby_cloud_description = "Google Cloud Batch is a fully managed service used by scientists, VFX artists, developers to easily and efficiently run batch workloads on Google Cloud. This service manages provisioning of resources to satisfy the requirements of the batch jobs for a variety of workloads including ML, HPC, VFX rendering, transcoding, genomics and others.", + ruby_cloud_title = "Batch V1alpha", + service_yaml = "batch_v1alpha.yaml", + deps = [ + ":batch_ruby_grpc", + ":batch_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-batch-v1alpha-ruby", + deps = [ + ":batch_ruby_gapic", + ":batch_ruby_grpc", + ":batch_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 = "batch_csharp_proto", + deps = [":batch_proto"], +) + +csharp_grpc_library( + name = "batch_csharp_grpc", + srcs = [":batch_proto"], + deps = [":batch_csharp_proto"], +) + +csharp_gapic_library( + name = "batch_csharp_gapic", + srcs = [":batch_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "batch_v1alpha_grpc_service_config.json", + service_yaml = "batch_v1alpha.yaml", + deps = [ + ":batch_csharp_grpc", + ":batch_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-batch-v1alpha-csharp", + deps = [ + ":batch_csharp_gapic", + ":batch_csharp_grpc", + ":batch_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "batch_cc_proto", + deps = [":batch_proto"], +) + +cc_grpc_library( + name = "batch_cc_grpc", + srcs = [":batch_proto"], + grpc_only = True, + deps = [":batch_cc_proto"], +) diff --git a/google/cloud/batch/v1alpha/batch.proto b/google/cloud/batch/v1alpha/batch.proto new file mode 100644 index 000000000..97b3171ca --- /dev/null +++ b/google/cloud/batch/v1alpha/batch.proto @@ -0,0 +1,272 @@ +// 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.cloud.batch.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/batch/v1alpha/job.proto"; +import "google/cloud/batch/v1alpha/task.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Batch.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1alpha;batch"; +option java_multiple_files = true; +option java_outer_classname = "BatchProto"; +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"; + +// Google Batch Service. +// The service manages user submitted batch jobs and allocates Google Compute +// Engine VM instances to run the jobs. +service BatchService { + option (google.api.default_host) = "batch.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Create a Job. + rpc CreateJob(CreateJobRequest) returns (Job) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*}/jobs" + body: "job" + }; + option (google.api.method_signature) = "parent,job,job_id"; + } + + // Get a Job specified by its resource name. + rpc GetJob(GetJobRequest) returns (Job) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/jobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Delete a Job. + rpc DeleteJob(DeleteJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/jobs/*}" + }; + 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 Jobs for a project within a region. + rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/jobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Return a single Task. + rpc GetTask(GetTaskRequest) returns (Task) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/jobs/*/taskGroups/*/tasks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List Tasks associated with a job. + rpc ListTasks(ListTasksRequest) returns (ListTasksResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/jobs/*/taskGroups/*}/tasks" + }; + option (google.api.method_signature) = "parent"; + } +} + +// CreateJob Request. +message CreateJobRequest { + // Required. The parent resource name where the Job 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/Job" + } + ]; + + // ID used to uniquely identify the Job within its parent scope. + // This field should contain at most 63 characters. + // Only alphanumeric characters or '-' 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 job.name field in the request will be ignored and the created resource + // name of the Job will be "{parent}/jobs/{job_id}". + string job_id = 2; + + // Required. The Job to create. + Job job = 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 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_behavior) = OPTIONAL]; +} + +// GetJob Request. +message GetJobRequest { + // Required. Job name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "batch.googleapis.com/Job" + } + ]; +} + +// DeleteJob Request. +message DeleteJobRequest { + // Job name. + string name = 1; + + // 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 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_behavior) = OPTIONAL]; +} + +// ListJob Request. +message ListJobsRequest { + // Parent path. + string parent = 1; + + // List filter. + string filter = 4; + + // Page size. + int32 page_size = 2; + + // Page token. + string page_token = 3; +} + +// ListJob Response. +message ListJobsResponse { + // Jobs. + repeated Job jobs = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// ListTasks Request. +message ListTasksRequest { + // Required. Name of a TaskGroup from which Tasks are being requested. + // Pattern: + // "projects/{project}/locations/{location}/jobs/{job}/taskGroups/{task_group}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "batch.googleapis.com/TaskGroup" + } + ]; + + // Task filter, null filter matches all Tasks. + // Filter string should be of the format State=TaskStatus.State e.g. + // State=RUNNING + string filter = 2; + + // Page size. + int32 page_size = 3; + + // Page token. + string page_token = 4; +} + +// ListTasks Response. +message ListTasksResponse { + // Tasks. + repeated Task tasks = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for a single Task by name. +message GetTaskRequest { + // Required. Task name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "batch.googleapis.com/Task" + } + ]; +} + +// 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]; +} diff --git a/google/cloud/batch/v1alpha/batch_v1alpha.yaml b/google/cloud/batch/v1alpha/batch_v1alpha.yaml new file mode 100644 index 000000000..b021fc5a3 --- /dev/null +++ b/google/cloud/batch/v1alpha/batch_v1alpha.yaml @@ -0,0 +1,119 @@ +type: google.api.Service +config_version: 3 +name: batch.googleapis.com +title: Batch API + +apis: +- name: google.cloud.batch.v1alpha.BatchService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.batch.v1alpha.OperationMetadata + +documentation: + summary: An API to manage the running of batch jobs on Google Cloud Platform. + overview: '(== google/cloud/batch/doc/overview.md ==)' + 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. + +backend: + rules: + - selector: 'google.cloud.batch.v1alpha.BatchService.*' + 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 + get: '/v1alpha/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1alpha/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v1alpha/{resource=projects/*/locations/*/jobs/*}:getIamPolicy' + additional_bindings: + - get: '/v1alpha/{resource=projects/*/locations/*/tasks/*}:getIamPolicy' + - get: '/v1alpha/{resource=projects/*/locations/*/nodes/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1alpha/{resource=projects/*/locations/*/jobs/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1alpha/{resource=projects/*/locations/*/tasks/*}:setIamPolicy' + body: '*' + - post: '/v1alpha/{resource=projects/*/locations/*/nodes/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1alpha/{resource=projects/*/locations/*/jobs/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1alpha/{resource=projects/*/locations/*/tasks/*}:testIamPermissions' + body: '*' + - post: '/v1alpha/{resource=projects/*/locations/*/nodes/*}:testIamPermissions' + body: '*' + - 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.batch.v1alpha.BatchService.*' + 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 diff --git a/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json b/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json new file mode 100644 index 000000000..12e2097f4 --- /dev/null +++ b/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json @@ -0,0 +1,25 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "ListJobs" }, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "ListTasks" }, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "GetJob" }, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "GetTask" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CreateJob" }, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "DeleteJob" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/batch/v1alpha/job.proto b/google/cloud/batch/v1alpha/job.proto new file mode 100644 index 000000000..b313d2910 --- /dev/null +++ b/google/cloud/batch/v1alpha/job.proto @@ -0,0 +1,560 @@ +// 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.cloud.batch.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/batch/v1alpha/task.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Batch.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1alpha;batch"; +option java_multiple_files = true; +option java_outer_classname = "JobProto"; +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"; + +// The Cloud Batch Job description. +message Job { + option (google.api.resource) = { + type: "batch.googleapis.com/Job" + pattern: "projects/{project}/locations/{location}/jobs/{job}" + }; + + // The order that TaskGroups are scheduled relative to each other. + // + // Not yet implemented. + enum SchedulingPolicy { + // Unspecified. + SCHEDULING_POLICY_UNSPECIFIED = 0; + + // Run all TaskGroups as soon as possible. + AS_SOON_AS_POSSIBLE = 1; + } + + // Output only. Job name. + // For example: "projects/123456/locations/us-central1/jobs/job01". + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A system generated unique ID (in UUID4 format) for the Job. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Priority of the Job. + // The valid value range is [0, 100). + // A job with higher priority value is more likely to run earlier if all other + // requirements are satisfied. + int64 priority = 3; + + // Required. TaskGroups in the Job. Only one TaskGroup is supported now. + repeated TaskGroup task_groups = 4 [(google.api.field_behavior) = REQUIRED]; + + // Scheduling policy for TaskGroups in the job. + SchedulingPolicy scheduling_policy = 5; + + // At least one of the dependencies must be satisfied before the Job is + // scheduled to run. + // Only one JobDependency is supported now. + // Not yet implemented. + repeated JobDependency dependencies = 6; + + // Compute resource allocation for all TaskGroups in the Job. + AllocationPolicy allocation_policy = 7; + + // Labels for the Job. Labels could be user provided or system generated. + // For example, + // "labels": { + // "department": "finance", + // "environment": "test" + // } + // You can assign up to 64 labels. [Google Compute Engine label + // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) + // apply. + // Label names that start with "goog-" or "google-" are reserved. + map labels = 8; + + // Output only. Job status. It is read only for users. + JobStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Job notification. + JobNotification notification = 10 [deprecated = true]; + + // Output only. When the Job was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last time the Job was updated. + google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Log preservation policy for the Job. + LogsPolicy logs_policy = 13; + + // Notification configurations. + repeated JobNotification notifications = 14; +} + +// LogsPolicy describes how outputs from a Job's Tasks (stdout/stderr) will be +// preserved. +message LogsPolicy { + // The destination (if any) for logs. + enum Destination { + // Logs are not preserved. + DESTINATION_UNSPECIFIED = 0; + + // Logs are streamed to Cloud Logging. + CLOUD_LOGGING = 1; + + // Logs are saved to a file path. + PATH = 2; + } + + // Where logs should be saved. + Destination destination = 1; + + // The path to which logs are saved when the destination = PATH. This can be a + // local file path on the VM, or under the mount point of a Persistent Disk or + // Filestore, or a Cloud Storage path. + string logs_path = 2; +} + +// JobDependency describes the state of other Jobs that the start of this Job +// depends on. +// All dependent Jobs must have been submitted in the same region. +message JobDependency { + // Dependency type. + enum Type { + // Unspecified. + TYPE_UNSPECIFIED = 0; + + // The dependent Job has succeeded. + SUCCEEDED = 1; + + // The dependent Job has failed. + FAILED = 2; + + // SUCCEEDED or FAILED. + FINISHED = 3; + } + + // Each item maps a Job name to a Type. + // All items must be satisfied for the JobDependency to be satisfied (the AND + // operation). + // Once a condition for one item becomes true, it won't go back to false + // even the dependent Job state changes again. + map items = 1; +} + +// Job status. +message JobStatus { + // VM instance status. + message InstanceStatus { + // The Compute Engine machine type. + string machine_type = 1; + + // The VM instance provisioning model. + AllocationPolicy.ProvisioningModel provisioning_model = 2; + + // The max number of tasks can be assigned to this instance type. + int64 task_pack = 3; + } + + // Aggregated task status for a TaskGroup. + message TaskGroupStatus { + // Count of task in each state in the TaskGroup. + // The map key is task state name. + map counts = 1; + + // Status of instances allocated for the TaskGroup. + repeated InstanceStatus instances = 2; + } + + // Valid Job states. + enum State { + STATE_UNSPECIFIED = 0; + + // Job is admitted (validated and persisted) and waiting for resources. + QUEUED = 1; + + // Job is scheduled to run as soon as resource allocation is ready. + // The resource allocation may happen at a later time but with a high + // chance to succeed. + SCHEDULED = 2; + + // Resource allocation has been successful. At least one Task in the Job is + // RUNNING. + RUNNING = 3; + + // All Tasks in the Job have finished successfully. + SUCCEEDED = 4; + + // At least one Task in the Job has failed. + FAILED = 5; + + // The Job will be deleted, but has not been deleted yet. Typically this is + // because resources used by the Job are still being cleaned up. + DELETION_IN_PROGRESS = 6; + } + + // Job state + State state = 1; + + // Job status events + repeated StatusEvent status_events = 2; + + // Aggregated task status for each TaskGroup in the Job. + // The map key is TaskGroup ID. + map task_groups = 4; + + // The duration of time that the Job spent in status RUNNING. + google.protobuf.Duration run_duration = 5; +} + +// Notification configurations. +message JobNotification { + // Message details. + // Describe the attribute that a message should have. + // Without specified message attributes, no message will be sent by default. + message Message { + // The message type. + Type type = 1; + + // The new job state. + JobStatus.State new_job_state = 2; + + // The new task state. + TaskStatus.State new_task_state = 3; + } + + // The message type. + enum Type { + // Unspecified. + TYPE_UNSPECIFIED = 0; + + // Notify users that the job state has changed. + JOB_STATE_CHANGED = 1; + + // Notify users that the task state has changed. + TASK_STATE_CHANGED = 2; + } + + // The Pub/Sub topic where notifications like the job state changes + // will be published. This topic 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; + + // The attribute requirements of messages to be sent to this Pub/Sub topic. + // Without this field, no message will be sent. + Message message = 2; +} + +// A Job's resource allocation policy describes when, where, and how compute +// resources should be allocated for the Job. +message AllocationPolicy { + message LocationPolicy { + // A list of allowed location names represented by internal URLs. + // Each location can be a region or a zone. + // Only one region or multiple zones in one region is supported now. + // For example, + // ["regions/us-central1"] allow VMs in any zones in region us-central1. + // ["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. + // 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. + repeated string allowed_locations = 1; + + // A list of denied location names. + // + // Not yet implemented. + repeated string denied_locations = 2; + } + + // A new persistent disk or a local ssd. + // A VM can only have one local SSD setting but multiple local SSD partitions. + // https://cloud.google.com/compute/docs/disks#pdspecs. + // https://cloud.google.com/compute/docs/disks#localssds. + message Disk { + // A data source from which a PD will be created. + oneof data_source { + // Name of a public or custom image used as the data source. + string image = 4; + + // Name of a snapshot used as the data source. + string snapshot = 5; + } + + // Disk type as shown in `gcloud compute disk-types list` + // For example, "pd-ssd", "pd-standard", "pd-balanced", "local-ssd". + string type = 1; + + // Disk size in GB. + // This field is ignored if `data_source` is `disk` or `image`. + // If `type` is `local-ssd`, size_gb should be a multiple of 375GB, + // otherwise, the final size will be the next greater multiple of 375 GB. + int64 size_gb = 2; + + // Local SSDs are available through both "SCSI" and "NVMe" interfaces. + // If not indicated, "NVMe" will be the default one for local ssds. + // We only support "SCSI" for persistent disks now. + string disk_interface = 6; + } + + // A new or an existing persistent disk or a local ssd attached to a VM + // instance. + message AttachedDisk { + oneof attached { + Disk new_disk = 1; + + // Name of an existing PD. + string existing_disk = 2; + } + + // Device name that the guest operating system will see. + // If not specified, this is default to the disk name. + string device_name = 3; + } + + // Accelerator describes Compute Engine accelerators to be attached to VMs. + message Accelerator { + // The accelerator type. For example, "nvidia-tesla-t4". + // See `gcloud compute accelerator-types list`. + string type = 1; + + // The number of accelerators of this type. + int64 count = 2; + + bool install_gpu_drivers = 3 [deprecated = true]; + } + + // InstancePolicy describes an instance type and resources attached to each VM + // created by this InstancePolicy. + message InstancePolicy { + repeated string allowed_machine_types = 1 [deprecated = true]; + + // The Compute Engine machine type. + string machine_type = 2; + + // The minimum CPU platform. + // See + // `https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform`. + // Not yet implemented. + string min_cpu_platform = 3; + + // The provisioning model. + ProvisioningModel provisioning_model = 4; + + // The accelerators attached to each VM instance. + // Not yet implemented. + repeated Accelerator accelerators = 5; + + // Non-boot disks to be attached for each VM created by this InstancePolicy. + // New disks will be deleted when the attached VM is deleted. + repeated AttachedDisk disks = 6; + } + + // Either an InstancePolicy or an instance template. + message InstancePolicyOrTemplate { + oneof policy_template { + // InstancePolicy. + InstancePolicy policy = 1; + + // Name of an instance template used to create VMs. + // Named the field as 'instance_template' instead of 'template' to avoid + // c++ keyword conflict. + string instance_template = 2; + } + + bool install_gpu_drivers = 3; + } + + // A network interface. + message NetworkInterface { + // The URL of the network resource. + string network = 1; + + // The URL of the Subnetwork resource. + string subnetwork = 2; + + // Default is false (with an external IP address). Required if + // no external public IP address is attached to the VM. If no external + // public IP address, additional configuration is required to allow the VM + // to access Google Services. See + // https://cloud.google.com/vpc/docs/configure-private-google-access and + // https://cloud.google.com/nat/docs/gce-example#create-nat for more + // information. + bool no_external_ip_address = 3; + } + + // NetworkPolicy describes VM instance network configurations. + message NetworkPolicy { + // Network configurations. + repeated NetworkInterface network_interfaces = 1; + } + + // Compute Engine VM instance provisioning model. + enum ProvisioningModel { + // Unspecified. + PROVISIONING_MODEL_UNSPECIFIED = 0; + + // Standard VM. + STANDARD = 1; + + // SPOT VM. + SPOT = 2; + + // Preemptible VM (PVM). + // + // Above SPOT VM is the preferable model for preemptible VM instances: the + // old preemptible VM model (indicated by this field) is the older model, + // and has been migrated to use the SPOT model as the underlying technology. + // This old model will still be supported. + PREEMPTIBLE = 3; + } + + // Location where compute resources should be allocated for the Job. + LocationPolicy location = 1; + + // Create only instances allowed by this policy. + InstancePolicy instance = 2 [deprecated = true]; + + // Describe instances that can be created by this AllocationPolicy. + // Only instances[0] is supported now. + repeated InstancePolicyOrTemplate instances = 8; + + // Instance templates that are used to VMs. + // If specified, only instance_templates[0] is used. + repeated string instance_templates = 3 [deprecated = true]; + + // Create only instances in the listed provisiong models. + // Default to allow all. + // + // Currently only the first model of the provisioning_models list will be + // considered; specifying additional models (e.g., 2nd, 3rd, etc.) is a no-op. + repeated ProvisioningModel provisioning_models = 4 [deprecated = true]; + + // Email of the service account that VMs will run as. + string service_account_email = 5 [deprecated = true]; + + // Service account that VMs will run as. + // Not yet implemented. + ServiceAccount service_account = 9; + + // Labels applied to all VM instances and other resources + // created by AllocationPolicy. + // Labels could be user provided or system generated. + // You can assign up to 64 labels. [Google Compute Engine label + // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) + // apply. + // Label names that start with "goog-" or "google-" are reserved. + map labels = 6; + + // The network policy. + NetworkPolicy network = 7; +} + +// A TaskGroup contains one or multiple Tasks that share the same +// Runnable but with different runtime parameters. +message TaskGroup { + option (google.api.resource) = { + type: "batch.googleapis.com/TaskGroup" + pattern: "projects/{project}/locations/{location}/jobs/{job}/taskGroups/{task_group}" + }; + + // How Tasks in the TaskGroup should be scheduled relative to each other. + enum SchedulingPolicy { + // Unspecified. + SCHEDULING_POLICY_UNSPECIFIED = 0; + + // Run Tasks as soon as resources are available. + AS_SOON_AS_POSSIBLE = 1; + } + + // Output only. TaskGroup name. + // The system generates this field based on parent Job name. + // For example: + // "projects/123456/locations/us-west1/jobs/job01/taskGroups/group01". + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Tasks in the group share the same task spec. + TaskSpec task_spec = 3 [(google.api.field_behavior) = REQUIRED]; + + // Number of Tasks in the TaskGroup. + // default is 1 + int64 task_count = 4; + + // Max number of tasks that can run in parallel. + // Default to min(task_count, 1000). + int64 parallelism = 5; + + // Scheduling policy for Tasks in the TaskGroup. + SchedulingPolicy scheduling_policy = 6; + + // Compute resource allocation for the TaskGroup. + // If specified, it overrides resources in Job. + AllocationPolicy allocation_policy = 7; + + // Labels for the TaskGroup. + // Labels could be user provided or system generated. + // You can assign up to 64 labels. [Google Compute Engine label + // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) + // apply. + // Label names that start with "goog-" or "google-" are reserved. + map labels = 8; + + // An array of environment variable mappings, which are passed to Tasks with + // matching indices. If task_environments is used then task_count should + // not be specified in the request (and will be ignored). Task count will be + // the length of task_environments. + // + // Tasks get a BATCH_TASK_INDEX and BATCH_TASK_COUNT environment variable, in + // addition to any environment variables set in task_environments, specifying + // the number of Tasks in the Task's parent TaskGroup, and the specific Task's + // index in the TaskGroup (0 through BATCH_TASK_COUNT - 1). + // + // task_environments supports up to 200 entries. + repeated Environment task_environments = 9; + + // Max number of tasks that can be run on a VM at the same time. + // If not specified, the system will decide a value based on available + // compute resources on a VM and task requirements. + int64 task_count_per_node = 10; + + // When true, Batch will populate a file with a list of all VMs assigned to + // the TaskGroup and set the BATCH_HOSTS_FILE environment variable to the path + // of that file. Defaults to false. + bool require_hosts_file = 11; + + // When true, Batch will configure SSH to allow passwordless login between + // VMs running the Batch tasks in the same TaskGroup. + bool permissive_ssh = 12; +} + +// 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. + 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. + repeated string scopes = 2; +} diff --git a/google/cloud/batch/v1alpha/task.proto b/google/cloud/batch/v1alpha/task.proto new file mode 100644 index 000000000..6b69165bf --- /dev/null +++ b/google/cloud/batch/v1alpha/task.proto @@ -0,0 +1,322 @@ +// 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.cloud.batch.v1alpha; + +import "google/api/resource.proto"; +import "google/cloud/batch/v1alpha/volume.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Batch.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1alpha;batch"; +option java_multiple_files = true; +option java_outer_classname = "TaskProto"; +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"; + +// Compute resource requirements +message ComputeResource { + // The milliCPU count. + int64 cpu_milli = 1; + + // Memory in MiB. + int64 memory_mib = 2; + + // The GPU count. + // + // Not yet implemented. + int64 gpu_count = 3; + + // Extra boot disk size in MiB for each task. + int64 boot_disk_mib = 4; +} + +// Status event +message StatusEvent { + // Type of the event. + string type = 3; + + // Description of the event. + string description = 1; + + // The time this event occurred. + google.protobuf.Timestamp event_time = 2; + + // Task Execution + TaskExecution task_execution = 4; +} + +// 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. + int32 exit_code = 1; +} + +// Status of a task +message TaskStatus { + // Task states. + enum State { + // unknown state + STATE_UNSPECIFIED = 0; + + // The Task is created and waiting for resources. + PENDING = 1; + + // The Task is assigned to at least one VM. + ASSIGNED = 2; + + // The Task is running. + RUNNING = 3; + + // The Task has failed. + FAILED = 4; + + // The Task has succeeded. + SUCCEEDED = 5; + } + + // Task state + State state = 1; + + // Detailed info about why the state is reached. + repeated StatusEvent status_events = 2; +} + +// Runnable describes instructions for executing a specific script or container +// as part of a Task. +message Runnable { + // Container runnable. + message Container { + // The URI to pull the container image from. + string image_uri = 1; + + // Overrides the `CMD` specified in the container. If there is an ENTRYPOINT + // (either in the container image or with the entrypoint field below) then + // commands are appended as arguments to the ENTRYPOINT. + repeated string commands = 2; + + // Overrides the `ENTRYPOINT` specified in the container. + string entrypoint = 3; + + // Volumes to mount (bind mount) from the host machine files or directories + // into the container, formatted to match docker run's --volume option, + // e.g. /foo:/bar, or /foo:/bar:ro + repeated string volumes = 7; + + // Arbitrary additional options to include in the "docker run" command when + // running this container, e.g. "--network host". + string options = 8; + + // If set to true, external network access to and from container will be + // blocked. The container will use the default internal network + // 'goog-internal'. + bool block_external_network = 9; + + // Optional username for logging in to a docker registry. If username + // matches "projects/*/secrets/*/versions/*" then Batch will read the + // username from the Secret Manager. + string username = 10; + + // Optional password for logging in to a docker registry. If password + // matches "projects/*/secrets/*/versions/*" then Batch will read the + // password from the Secret Manager; + string password = 11; + } + + // Script runnable. + message Script { + oneof command { + // Script file path on the host VM. + string path = 1; + + // Shell script text. + string text = 2; + } + } + + // Barrier runnable blocks until all tasks in a taskgroup reach it. + message Barrier { + // Barriers are identified by their index in runnable list. + // Names are not required, but if present should be an identifier. + string name = 1; + } + + // The script or container to run. + oneof executable { + // Container runnable. + Container container = 1; + + // Script runnable. + Script script = 2; + + // Barrier runnable. + Barrier barrier = 6; + } + + // Normally, a non-zero exit status causes the Task to fail. This flag allows + // execution of other Runnables to continue instead. + bool ignore_exit_status = 3; + + // This flag allows a Runnable to continue running in the background while the + // Task executes subsequent Runnables. This is useful to provide services to + // other Runnables (or to provide debugging support tools like SSH servers). + bool background = 4; + + // By default, after a Runnable fails, no further Runnable are executed. This + // flag indicates that this Runnable must be run even if the Task has already + // failed. This is useful for Runnables that copy output files off of the VM + // or for debugging. + // + // The always_run flag does not override the Task's overall max_run_duration. + // If the max_run_duration has expired then no further Runnables will execute, + // not even always_run Runnables. + bool always_run = 5; + + // Environment variables for this Runnable (overrides variables set for the + // whole Task or TaskGroup). + Environment environment = 7; + + // Timeout for this Runnable. + google.protobuf.Duration timeout = 8; + + // Labels for this Runnable. + map labels = 9; +} + +// Spec of a task +message TaskSpec { + // The sequence of scripts or containers to run for this Task. Each Task using + // this TaskSpec executes its list of runnables in order. The Task succeeds if + // all of its runnables either exit with a zero status or any that exit with a + // non-zero status have the ignore_exit_status flag. + // + // Background runnables are killed automatically (if they have not already + // exited) a short time after all foreground runnables have completed. Even + // though this is likely to result in a non-zero exit status for the + // background runnable, these automatic kills are not treated as Task + // failures. + repeated Runnable runnables = 8; + + // 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. + google.protobuf.Duration max_run_duration = 4; + + // Maximum number of retries on failures. + // The default, 0, which means never retry. + // The valid value range is [0, 10]. + int32 max_retry_count = 5; + + // Lifecycle management schema when any task in a task group is failed. + // The valid size of lifecycle policies are [0, 10]. + // For each lifecycle policy, when the condition is met, + // the action in that policy will execute. + // If there are multiple policies that the task execution result matches, + // we use the action from the first matched policy. If task execution result + // does not meet with any of the defined lifecycle policy, we consider it as + // the default policy. Default policy means if the exit code is 0, exit task. + // If task ends with non-zero exit code, retry the task with max_retry_count. + repeated LifecyclePolicy lifecycle_policies = 9; + + // Environment variables to set before running the Task. + // You can set up to 100 environments. + map environments = 6 [deprecated = true]; + + // Volumes to mount before running Tasks using this TaskSpec. + repeated Volume volumes = 7; + + // Environment variables to set before running the Task. + Environment environment = 10; +} + +// LifecyclePolicy describes how to deal with task failures +// based on different conditions. +message LifecyclePolicy { + // Conditions for actions to deal with task failures. + message ActionCondition { + // Exit codes of a task execution. + // If there are more than 1 exit codes, + // when task executes with any of the exit code in the list, + // the condition is met and the action will be executed. + repeated int32 exit_codes = 1; + } + + // Action on task failures based on different conditions. + enum Action { + // Action unspecified. + ACTION_UNSPECIFIED = 0; + + // Action that tasks in the group will be scheduled to re-execute. + RETRY_TASK = 1; + + // Action that tasks in the group will be stopped immediately. + FAIL_TASK = 2; + } + + // Action to execute when ActionCondition is true. + Action action = 1; + + // Conditions that decide why a task failure is dealt with a specific action. + ActionCondition action_condition = 2; +} + +// A Cloud Batch task. +message Task { + option (google.api.resource) = { + type: "batch.googleapis.com/Task" + pattern: "projects/{project}/locations/{location}/jobs/{job}/taskGroups/{task_group}/tasks/{task}" + }; + + // Task name. + // The name is generated from the parent TaskGroup name and 'id' field. + // For example: + // "projects/123456/locations/us-west1/jobs/job01/taskGroups/group01/tasks/task01". + string name = 1; + + // Task Status. + TaskStatus status = 2; +} + +// An Environment describes a collection of environment variables to set when +// executing Tasks. +message Environment { + message KMSEnvMap { + // The name of the KMS key that will be used to decrypt the cipher text. + string key_name = 1; + + // The value of the cipherText response from the `encrypt` method. + string cipher_text = 2; + } + + // A map of environment variable names to values. + map variables = 1; + + // A map of environment variable names to Secret Manager secret names. + // The VM will access the named secrets to set the value of each environment + // variable. + map secret_variables = 2; + + // An encrypted JSON dictionary where the key/value pairs correspond to + // environment variable names and their values. + KMSEnvMap encrypted_variables = 3; +} diff --git a/google/cloud/batch/v1alpha/volume.proto b/google/cloud/batch/v1alpha/volume.proto new file mode 100644 index 000000000..b71a62bb8 --- /dev/null +++ b/google/cloud/batch/v1alpha/volume.proto @@ -0,0 +1,90 @@ +// 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.cloud.batch.v1alpha; + +option csharp_namespace = "Google.Cloud.Batch.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1alpha;batch"; +option java_multiple_files = true; +option java_outer_classname = "VolumeProto"; +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"; + +// Volume and mount parameters to be associated with a TaskSpec. A TaskSpec +// might describe zero, one, or multiple volumes to be mounted as part of the +// task. +message Volume { + // The source for the volume. + oneof source { + // An NFS source for the volume (could be a Filestore, for example). + NFS nfs = 1; + + // A persistent disk source for the volume. + PD pd = 2 [deprecated = true]; + + // A Google Cloud Storage source for the volume. + GCS gcs = 3; + + // Device name of an attached disk + string device_name = 6; + } + + // Mount path for the volume, e.g. /mnt/share + string mount_path = 4; + + // Mount options + // For Google Cloud Storage, mount options are the global options supported by + // gcsfuse tool. Batch will use them to mount the volume with the following + // command: + // "gcsfuse [global options] bucket mountpoint". + // For PD, NFS, mount options are these supported by /etc/fstab. Batch will + // use Fstab to mount such volumes. + // https://help.ubuntu.com/community/Fstab + repeated string mount_options = 5; +} + +// Represents an NFS server and remote path: : +message NFS { + // URI of the NFS server, e.g. an IP address. + string server = 1; + + // Remote source path exported from NFS, e.g., "/share". + string remote_path = 2; +} + +// Represents a GCP persistent disk +message PD { + // PD disk name, e.g. pd-1. + string disk = 1; + + // PD device name, e.g. persistent-disk-1. + string device = 2; + + // Whether this is an existing PD. Default is false. If false, i.e., new + // PD, we will format it into ext4 and mount to the given path. If true, i.e., + // existing PD, it should be in ext4 format and we will mount it to the given + // path. + bool existing = 3 [deprecated = true]; +} + +// Represents a Google Cloud Storage volume source config. +message GCS { + // Remote path, either a bucket name or a subdirectory of a bucket, e.g.: + // bucket_name, bucket_name/subdirectory/ + string remote_path = 1; +} diff --git a/google/cloud/beyondcorp/appconnections/BUILD.bazel b/google/cloud/beyondcorp/appconnections/BUILD.bazel new file mode 100644 index 000000000..b714492be --- /dev/null +++ b/google/cloud/beyondcorp/appconnections/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-beyond_corp-app_connections. + +# 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 appconnections. +# 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 = "appconnections_ruby_wrapper", + srcs = ["//google/cloud/beyondcorp/appconnections/v1:appconnections_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-gem-name=google-cloud-beyond_corp-app_connections", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp AppConnections", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-appconnections-ruby", + deps = [ + ":appconnections_ruby_wrapper", + ], +) diff --git a/google/cloud/beyondcorp/appconnections/v1/BUILD.bazel b/google/cloud/beyondcorp/appconnections/v1/BUILD.bazel new file mode 100644 index 000000000..0650f6871 --- /dev/null +++ b/google/cloud/beyondcorp/appconnections/v1/BUILD.bazel @@ -0,0 +1,343 @@ +# 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", + "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", + "go_test", + "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_grpc_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 = "appconnections_proto", + srcs = [ + "app_connections_service.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//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "appconnections_proto_with_info", + deps = [ + ":appconnections_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +java_proto_library( + name = "appconnections_java_proto", + deps = [":appconnections_proto"], +) + +java_grpc_library( + name = "appconnections_java_grpc", + srcs = [":appconnections_proto"], + deps = [":appconnections_java_proto"], +) + +java_gapic_library( + name = "appconnections_java_gapic", + srcs = [":appconnections_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "beyondcorp-appconnections_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + test_deps = [ + ":appconnections_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + deps = [ + ":appconnections_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "appconnections_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.beyondcorp.appconnections.v1.AppConnectionsServiceClientTest", + ], + runtime_deps = [":appconnections_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-beyondcorp-appconnections-v1-java", + include_samples = True, + deps = [ + ":appconnections_java_gapic", + ":appconnections_java_grpc", + ":appconnections_java_proto", + ":appconnections_proto", + ], +) + +go_proto_library( + name = "appconnections_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/beyondcorp/appconnections/v1", + protos = [":appconnections_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "appconnections_go_gapic", + srcs = [":appconnections_proto_with_info"], + grpc_service_config = "beyondcorp-appconnections_grpc_service_config.json", + importpath = "cloud.google.com/go/beyondcorp/appconnections/apiv1;appconnections", + metadata = True, + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appconnections_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", + ], +) + +go_test( + name = "appconnections_go_gapic_test", + srcs = [":appconnections_go_gapic_srcjar_test"], + embed = [":appconnections_go_gapic"], + importpath = "cloud.google.com/go/beyondcorp/appconnections/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-beyondcorp-appconnections-v1-go", + deps = [ + ":appconnections_go_gapic", + ":appconnections_go_gapic_srcjar-metadata.srcjar", + ":appconnections_go_gapic_srcjar-test.srcjar", + ":appconnections_go_proto", + ], +) + +py_gapic_library( + name = "appconnections_py_gapic", + srcs = [":appconnections_proto"], + grpc_service_config = "beyondcorp-appconnections_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-beyondcorp-appconnections", + "python-gapic-namespace=google.cloud", + "python-gapic-name=beyondcorp_appconnections", + ], + service_yaml = "beyondcorp_v1.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "appconnections_py_gapic_test", + srcs = [ + "appconnections_py_gapic_pytest.py", + "appconnections_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":appconnections_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "beyondcorp-appconnections-v1-py", + deps = [ + ":appconnections_py_gapic", + ], +) + +php_proto_library( + name = "appconnections_php_proto", + deps = [":appconnections_proto"], +) + +php_grpc_library( + name = "appconnections_php_grpc", + srcs = [":appconnections_proto"], + deps = [":appconnections_php_proto"], +) + +php_gapic_library( + name = "appconnections_php_gapic", + srcs = [":appconnections_proto_with_info"], + grpc_service_config = "beyondcorp-appconnections_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appconnections_php_grpc", + ":appconnections_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appconnections-v1-php", + deps = [ + ":appconnections_php_gapic", + ":appconnections_php_grpc", + ":appconnections_php_proto", + ], +) + +nodejs_gapic_library( + name = "appconnections_nodejs_gapic", + package_name = "@google-cloud/appconnections", + src = ":appconnections_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "beyondcorp-appconnections_grpc_service_config.json", + package = "google.cloud.beyondcorp.appconnections.v1", + service_yaml = "beyondcorp_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "beyondcorp-appconnections-v1-nodejs", + deps = [ + ":appconnections_nodejs_gapic", + ":appconnections_proto", + ], +) + +ruby_proto_library( + name = "appconnections_ruby_proto", + deps = [":appconnections_proto"], +) + +ruby_grpc_library( + name = "appconnections_ruby_grpc", + srcs = [":appconnections_proto"], + deps = [":appconnections_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "appconnections_ruby_gapic", + srcs = [":appconnections_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-beyond_corp-app_connections-v1", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-wrapper-gem-override=google-cloud-beyond_corp", + ], + grpc_service_config = "beyondcorp-appconnections_grpc_service_config.json", + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp AppConnections V1", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appconnections_ruby_grpc", + ":appconnections_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appconnections-v1-ruby", + deps = [ + ":appconnections_ruby_gapic", + ":appconnections_ruby_grpc", + ":appconnections_ruby_proto", + ], +) + +csharp_proto_library( + name = "appconnections_csharp_proto", + deps = [":appconnections_proto"], +) + +csharp_grpc_library( + name = "appconnections_csharp_grpc", + srcs = [":appconnections_proto"], + deps = [":appconnections_csharp_proto"], +) + +csharp_gapic_library( + name = "appconnections_csharp_gapic", + srcs = [":appconnections_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "beyondcorp-appconnections_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appconnections_csharp_grpc", + ":appconnections_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appconnections-v1-csharp", + deps = [ + ":appconnections_csharp_gapic", + ":appconnections_csharp_grpc", + ":appconnections_csharp_proto", + ], +) + +cc_proto_library( + name = "appconnections_cc_proto", + deps = [":appconnections_proto"], +) + +cc_grpc_library( + name = "appconnections_cc_grpc", + srcs = [":appconnections_proto"], + grpc_only = True, + deps = [":appconnections_cc_proto"], +) diff --git a/google/cloud/beyondcorp/appconnections/v1/app_connections_service.proto b/google/cloud/beyondcorp/appconnections/v1/app_connections_service.proto new file mode 100644 index 000000000..73f19ff7b --- /dev/null +++ b/google/cloud/beyondcorp/appconnections/v1/app_connections_service.proto @@ -0,0 +1,512 @@ +// 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.cloud.beyondcorp.appconnections.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/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BeyondCorp.AppConnections.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/beyondcorp/appconnections/v1;appconnections"; +option java_multiple_files = true; +option java_outer_classname = "AppConnectionsServiceProto"; +option java_package = "com.google.cloud.beyondcorp.appconnections.v1"; +option php_namespace = "Google\\Cloud\\BeyondCorp\\AppConnections\\V1"; +option ruby_package = "Google::Cloud::BeyondCorp::AppConnections::V1"; +option (google.api.resource_definition) = { + type: "beyondcorp.googleapis.com/AppConnector" + pattern: "projects/{project}/locations/{location}/appConnectors/{app_connector}" +}; +option (google.api.resource_definition) = { + type: "beyondcorp.googleapis.com/AppGateway" + pattern: "projects/{project}/locations/{location}/appGateways/{app_gateway}" +}; + +// ## API Overview +// +// The `beyondcorp.googleapis.com` service implements the Google Cloud +// BeyondCorp API. +// +// ## Data Model +// +// The AppConnectionsService exposes the following resources: +// +// * AppConnections, named as follows: +// `projects/{project_id}/locations/{location_id}/appConnections/{app_connection_id}`. +// +// The AppConnectionsService service provides methods to manage +// (create/read/update/delete) BeyondCorp AppConnections. +service AppConnectionsService { + option (google.api.default_host) = "beyondcorp.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists AppConnections in a given project and location. + rpc ListAppConnections(ListAppConnectionsRequest) + returns (ListAppConnectionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/appConnections" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single AppConnection. + rpc GetAppConnection(GetAppConnectionRequest) returns (AppConnection) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/appConnections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new AppConnection in a given project and location. + rpc CreateAppConnection(CreateAppConnectionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/appConnections" + body: "app_connection" + }; + option (google.api.method_signature) = + "parent,app_connection,app_connection_id"; + option (google.longrunning.operation_info) = { + response_type: "AppConnection" + metadata_type: "AppConnectionOperationMetadata" + }; + } + + // Updates the parameters of a single AppConnection. + rpc UpdateAppConnection(UpdateAppConnectionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{app_connection.name=projects/*/locations/*/appConnections/*}" + body: "app_connection" + }; + option (google.api.method_signature) = "app_connection,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AppConnection" + metadata_type: "AppConnectionOperationMetadata" + }; + } + + // Deletes a single AppConnection. + rpc DeleteAppConnection(DeleteAppConnectionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/appConnections/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "AppConnectionOperationMetadata" + }; + } + + // Resolves AppConnections details for a given AppConnector. + // An internal method called by a connector to find AppConnections to connect + // to. + rpc ResolveAppConnections(ResolveAppConnectionsRequest) + returns (ResolveAppConnectionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/appConnections:resolve" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for BeyondCorp.ListAppConnections. +message ListAppConnectionsRequest { + // Required. The resource name of the AppConnection location using the form: + // `projects/{project_id}/locations/{location_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/AppConnection" + } + ]; + + // Optional. The maximum number of items to return. + // If not specified, a default value of 50 will be used by the service. + // Regardless of the page_size value, the response may include a partial list + // and a caller should only rely on response's + // [next_page_token][BeyondCorp.ListAppConnectionsResponse.next_page_token] to + // determine if there are more instances left to be queried. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous + // ListAppConnectionsRequest, if any. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter specifying constraints of a list operation. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the ordering of results. See + // [Sorting + // order](https://cloud.google.com/apis/design/design_patterns#sorting_order) + // for more information. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for BeyondCorp.ListAppConnections. +message ListAppConnectionsResponse { + // A list of BeyondCorp AppConnections in the project. + repeated AppConnection app_connections = 1; + + // A token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // A list of locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for BeyondCorp.GetAppConnection. +message GetAppConnectionRequest { + // Required. BeyondCorp AppConnection name using the form: + // `projects/{project_id}/locations/{location_id}/appConnections/{app_connection_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppConnection" + } + ]; +} + +// Request message for BeyondCorp.CreateAppConnection. +message CreateAppConnectionRequest { + // Required. The resource project name of the AppConnection location using the + // form: `projects/{project_id}/locations/{location_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/AppConnection" + } + ]; + + // Optional. User-settable AppConnection resource ID. + // * Must start with a letter. + // * Must contain between 4-63 characters from `/[a-z][0-9]-/`. + // * Must end with a number or a letter. + string app_connection_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. A BeyondCorp AppConnection resource. + AppConnection app_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 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_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for BeyondCorp.UpdateAppConnection. +message UpdateAppConnectionRequest { + // Required. Mask of fields to update. At least one path must be supplied in + // this field. The elements of the repeated paths field may only include these + // fields from [BeyondCorp.AppConnection]: + // * `labels` + // * `display_name` + // * `application_endpoint` + // * `connectors` + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. AppConnection message with updated fields. Only supported fields + // specified in update_mask are updated. + AppConnection app_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 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 = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set as true, will create the resource if it is not found. + bool allow_missing = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for BeyondCorp.DeleteAppConnection. +message DeleteAppConnectionRequest { + // Required. BeyondCorp Connector name using the form: + // `projects/{project_id}/locations/{location_id}/appConnections/{app_connection_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppConnection" + } + ]; + + // 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 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 = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for BeyondCorp.ResolveAppConnections. +message ResolveAppConnectionsRequest { + // Required. The resource name of the AppConnection location using the form: + // `projects/{project_id}/locations/{location_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/AppConnection" + } + ]; + + // Required. BeyondCorp Connector name of the connector associated with those + // AppConnections using the form: + // `projects/{project_id}/locations/{location_id}/appConnectors/{app_connector_id}` + string app_connector_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppConnector" + } + ]; + + // Optional. The maximum number of items to return. + // If not specified, a default value of 50 will be used by the service. + // Regardless of the page_size value, the response may include a partial list + // and a caller should only rely on response's + // [next_page_token][BeyondCorp.ResolveAppConnectionsResponse.next_page_token] + // to determine if there are more instances left to be queried. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous + // ResolveAppConnectionsResponse, if any. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for BeyondCorp.ResolveAppConnections. +message ResolveAppConnectionsResponse { + // Details of the AppConnection. + message AppConnectionDetails { + // A BeyondCorp AppConnection in the project. + AppConnection app_connection = 1; + + // If type=GCP_REGIONAL_MIG, contains most recent VM instances, like + // `https://www.googleapis.com/compute/v1/projects/{project_id}/zones/{zone_id}/instances/{instance_id}`. + repeated string recent_mig_vms = 2; + } + + // A list of BeyondCorp AppConnections with details in the project. + repeated AppConnectionDetails app_connection_details = 1; + + // A token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // A list of locations that could not be reached. + repeated string unreachable = 3; +} + +// A BeyondCorp AppConnection resource represents a BeyondCorp protected +// AppConnection to a remote application. It creates all the necessary GCP +// components needed for creating a BeyondCorp protected AppConnection. Multiple +// connectors can be authorised for a single AppConnection. +message AppConnection { + option (google.api.resource) = { + type: "beyondcorp.googleapis.com/AppConnection" + pattern: "projects/{project}/locations/{location}/appConnections/{app_connection}" + }; + + // ApplicationEndpoint represents a remote application endpoint. + message ApplicationEndpoint { + // Required. Hostname or IP address of the remote application endpoint. + string host = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Port of the remote application endpoint. + int32 port = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Gateway represents a user facing component that serves as an entrance to + // enable connectivity. + message Gateway { + // Enum listing possible gateway hosting options. + enum Type { + // Default value. This value is unused. + TYPE_UNSPECIFIED = 0; + + // Gateway hosted in a GCP regional managed instance group. + GCP_REGIONAL_MIG = 1; + } + + // Required. The type of hosting used by the gateway. + Type type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server-defined URI for this resource. + string uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Ingress port reserved on the gateways for this + // AppConnection, if not specified or zero, the default port is 19443. + int32 ingress_port = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. AppGateway name in following format: + // `projects/{project_id}/locations/{location_id}/appgateways/{gateway_id}` + string app_gateway = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppGateway" + } + ]; + } + + // Enum containing list of all possible network connectivity options + // supported by BeyondCorp AppConnection. + enum Type { + // Default value. This value is unused. + TYPE_UNSPECIFIED = 0; + + // TCP Proxy based BeyondCorp AppConnection. API will default to this if + // unset. + TCP_PROXY = 1; + } + + // Represents the different states of a AppConnection. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // AppConnection is being created. + CREATING = 1; + + // AppConnection has been created. + CREATED = 2; + + // AppConnection's configuration is being updated. + UPDATING = 3; + + // AppConnection is being deleted. + DELETING = 4; + + // AppConnection is down and may be restored in the future. + // This happens when CCFE sends ProjectState = OFF. + DOWN = 5; + } + + // Required. Unique resource name of the AppConnection. + // The name is ignored when creating a AppConnection. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp when the resource was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when the resource was last modified. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Resource labels to represent user provided metadata. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An arbitrary user-provided name for the AppConnection. Cannot + // exceed 64 characters. + string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. A unique identifier for the instance generated by the + // system. + string uid = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The type of network connectivity used by the AppConnection. + Type type = 7 [(google.api.field_behavior) = REQUIRED]; + + // Required. Address of the remote application endpoint for the BeyondCorp + // AppConnection. + ApplicationEndpoint application_endpoint = 8 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. List of [google.cloud.beyondcorp.v1main.Connector.name] that are + // authorised to be associated with this AppConnection. + repeated string connectors = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The current state of the AppConnection. + State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Gateway used by the AppConnection. + Gateway gateway = 11 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message AppConnectionOperationMetadata { + // 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]; +} diff --git a/google/cloud/beyondcorp/appconnections/v1/beyondcorp-appconnections_grpc_service_config.json b/google/cloud/beyondcorp/appconnections/v1/beyondcorp-appconnections_grpc_service_config.json new file mode 100644 index 000000000..2df043bad --- /dev/null +++ b/google/cloud/beyondcorp/appconnections/v1/beyondcorp-appconnections_grpc_service_config.json @@ -0,0 +1,25 @@ + +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.beyondcorp.appconnections.v1", "method": "ListAppConnections" }, + { "service": "google.cloud.beyondcorp.appconnections.v1", "method": "GetAppConnection" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.beyondcorp.appconnections.v1", "method": "CreateAppConnection" }, + { "service": "google.cloud.beyondcorp.appconnections.v1", "method": "UpdateAppConnection" }, + { "service": "google.cloud.beyondcorp.appconnections.v1", "method": "DeleteAppConnection" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/beyondcorp/appconnections/v1/beyondcorp_v1.yaml b/google/cloud/beyondcorp/appconnections/v1/beyondcorp_v1.yaml new file mode 100644 index 000000000..3a4a72f65 --- /dev/null +++ b/google/cloud/beyondcorp/appconnections/v1/beyondcorp_v1.yaml @@ -0,0 +1,132 @@ +type: google.api.Service +config_version: 3 +name: beyondcorp.googleapis.com +title: BeyondCorp API + +apis: +- name: google.cloud.beyondcorp.appconnections.v1.AppConnectionsService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.beyondcorp.appconnections.v1.AppConnectionOperationMetadata + +documentation: + summary: |- + Beyondcorp Enterprise provides identity and context aware access controls + for enterprise resources and enables zero-trust access. Using the + Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem + connectivity using the App Connector hybrid connectivity solution. + 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. + +backend: + rules: + - selector: 'google.cloud.beyondcorp.appconnections.v1.AppConnectionsService.*' + 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 + 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/*/appConnections/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/appConnectors/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/appGateways/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientGateways/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}: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.beyondcorp.appconnections.v1.AppConnectionsService.*' + 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 diff --git a/google/cloud/beyondcorp/appconnectors/BUILD.bazel b/google/cloud/beyondcorp/appconnectors/BUILD.bazel new file mode 100644 index 000000000..ec8cd4b6e --- /dev/null +++ b/google/cloud/beyondcorp/appconnectors/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-beyond_corp-app_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 appconnectors. +# 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 = "appconnectors_ruby_wrapper", + srcs = ["//google/cloud/beyondcorp/appconnectors/v1:appconnectors_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-gem-name=google-cloud-beyond_corp-app_connectors", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp AppConnectors", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-appconnectors-ruby", + deps = [ + ":appconnectors_ruby_wrapper", + ], +) diff --git a/google/cloud/beyondcorp/appconnectors/v1/BUILD.bazel b/google/cloud/beyondcorp/appconnectors/v1/BUILD.bazel new file mode 100644 index 000000000..56581a16b --- /dev/null +++ b/google/cloud/beyondcorp/appconnectors/v1/BUILD.bazel @@ -0,0 +1,347 @@ +# 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", + "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", + "go_test", + "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_grpc_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 = "appconnectors_proto", + srcs = [ + "app_connector_instance_config.proto", + "app_connectors_service.proto", + "resource_info.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//:any_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "appconnectors_proto_with_info", + deps = [ + ":appconnectors_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +java_proto_library( + name = "appconnectors_java_proto", + deps = [":appconnectors_proto"], +) + +java_grpc_library( + name = "appconnectors_java_grpc", + srcs = [":appconnectors_proto"], + deps = [":appconnectors_java_proto"], +) + +java_gapic_library( + name = "appconnectors_java_gapic", + srcs = [":appconnectors_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "beyondcorp-appconnectors_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + test_deps = [ + ":appconnectors_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + deps = [ + ":appconnectors_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "appconnectors_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.beyondcorp.appconnectors.v1.AppConnectorsServiceClientTest", + ], + runtime_deps = [":appconnectors_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-beyondcorp-appconnectors-v1-java", + include_samples = True, + deps = [ + ":appconnectors_java_gapic", + ":appconnectors_java_grpc", + ":appconnectors_java_proto", + ":appconnectors_proto", + ], +) + +go_proto_library( + name = "appconnectors_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/beyondcorp/appconnectors/v1", + protos = [":appconnectors_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "appconnectors_go_gapic", + srcs = [":appconnectors_proto_with_info"], + grpc_service_config = "beyondcorp-appconnectors_grpc_service_config.json", + importpath = "cloud.google.com/go/beyondcorp/appconnectors/apiv1;appconnectors", + metadata = True, + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appconnectors_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:any_go_proto", + ], +) + +go_test( + name = "appconnectors_go_gapic_test", + srcs = [":appconnectors_go_gapic_srcjar_test"], + embed = [":appconnectors_go_gapic"], + importpath = "cloud.google.com/go/beyondcorp/appconnectors/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-beyondcorp-appconnectors-v1-go", + deps = [ + ":appconnectors_go_gapic", + ":appconnectors_go_gapic_srcjar-metadata.srcjar", + ":appconnectors_go_gapic_srcjar-test.srcjar", + ":appconnectors_go_proto", + ], +) + +py_gapic_library( + name = "appconnectors_py_gapic", + srcs = [":appconnectors_proto"], + grpc_service_config = "beyondcorp-appconnectors_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-beyondcorp-appconnectors", + "python-gapic-namespace=google.cloud", + "python-gapic-name=beyondcorp_appconnectors", + ], + service_yaml = "beyondcorp_v1.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "appconnectors_py_gapic_test", + srcs = [ + "appconnectors_py_gapic_pytest.py", + "appconnectors_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":appconnectors_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "beyondcorp-appconnectors-v1-py", + deps = [ + ":appconnectors_py_gapic", + ], +) + +php_proto_library( + name = "appconnectors_php_proto", + deps = [":appconnectors_proto"], +) + +php_grpc_library( + name = "appconnectors_php_grpc", + srcs = [":appconnectors_proto"], + deps = [":appconnectors_php_proto"], +) + +php_gapic_library( + name = "appconnectors_php_gapic", + srcs = [":appconnectors_proto_with_info"], + grpc_service_config = "beyondcorp-appconnectors_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appconnectors_php_grpc", + ":appconnectors_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appconnectors-v1-php", + deps = [ + ":appconnectors_php_gapic", + ":appconnectors_php_grpc", + ":appconnectors_php_proto", + ], +) + +nodejs_gapic_library( + name = "appconnectors_nodejs_gapic", + package_name = "@google-cloud/appconnectors", + src = ":appconnectors_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "beyondcorp-appconnectors_grpc_service_config.json", + package = "google.cloud.beyondcorp.appconnectors.v1", + service_yaml = "beyondcorp_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "beyondcorp-appconnectors-v1-nodejs", + deps = [ + ":appconnectors_nodejs_gapic", + ":appconnectors_proto", + ], +) + +ruby_proto_library( + name = "appconnectors_ruby_proto", + deps = [":appconnectors_proto"], +) + +ruby_grpc_library( + name = "appconnectors_ruby_grpc", + srcs = [":appconnectors_proto"], + deps = [":appconnectors_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "appconnectors_ruby_gapic", + srcs = [":appconnectors_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-beyond_corp-app_connectors-v1", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-wrapper-gem-override=google-cloud-beyond_corp", + ], + grpc_service_config = "beyondcorp-appconnectors_grpc_service_config.json", + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp AppConnectors V1", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appconnectors_ruby_grpc", + ":appconnectors_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appconnectors-v1-ruby", + deps = [ + ":appconnectors_ruby_gapic", + ":appconnectors_ruby_grpc", + ":appconnectors_ruby_proto", + ], +) + +csharp_proto_library( + name = "appconnectors_csharp_proto", + deps = [":appconnectors_proto"], +) + +csharp_grpc_library( + name = "appconnectors_csharp_grpc", + srcs = [":appconnectors_proto"], + deps = [":appconnectors_csharp_proto"], +) + +csharp_gapic_library( + name = "appconnectors_csharp_gapic", + srcs = [":appconnectors_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "beyondcorp-appconnectors_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appconnectors_csharp_grpc", + ":appconnectors_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appconnectors-v1-csharp", + deps = [ + ":appconnectors_csharp_gapic", + ":appconnectors_csharp_grpc", + ":appconnectors_csharp_proto", + ], +) + +cc_proto_library( + name = "appconnectors_cc_proto", + deps = [":appconnectors_proto"], +) + +cc_grpc_library( + name = "appconnectors_cc_grpc", + srcs = [":appconnectors_proto"], + grpc_only = True, + deps = [":appconnectors_cc_proto"], +) diff --git a/google/cloud/beyondcorp/appconnectors/v1/app_connector_instance_config.proto b/google/cloud/beyondcorp/appconnectors/v1/app_connector_instance_config.proto new file mode 100644 index 000000000..7e183063f --- /dev/null +++ b/google/cloud/beyondcorp/appconnectors/v1/app_connector_instance_config.proto @@ -0,0 +1,72 @@ +// 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.cloud.beyondcorp.appconnectors.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/any.proto"; + +option csharp_namespace = "Google.Cloud.BeyondCorp.AppConnectors.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/beyondcorp/appconnectors/v1;appconnectors"; +option java_multiple_files = true; +option java_outer_classname = "AppConnectorInstanceConfigProto"; +option java_package = "com.google.cloud.beyondcorp.appconnectors.v1"; +option php_namespace = "Google\\Cloud\\BeyondCorp\\AppConnectors\\V1"; +option ruby_package = "Google::Cloud::BeyondCorp::AppConnectors::V1"; + +// AppConnectorInstanceConfig defines the instance config of a AppConnector. +message AppConnectorInstanceConfig { + // Required. A monotonically increasing number generated and maintained + // by the API provider. Every time a config changes in the backend, the + // sequenceNumber should be bumped up to reflect the change. + int64 sequence_number = 1 [(google.api.field_behavior) = REQUIRED]; + + // The SLM instance agent configuration. + google.protobuf.Any instance_config = 2; + + // NotificationConfig defines the notification mechanism that the remote + // instance should subscribe to in order to receive notification. + NotificationConfig notification_config = 3; + + // ImageConfig defines the GCR images to run for the remote agent's control + // plane. + ImageConfig image_config = 4; +} + +// NotificationConfig defines the mechanisms to notify instance agent. +message NotificationConfig { + // The configuration for Pub/Sub messaging for the AppConnector. + message CloudPubSubNotificationConfig { + // The Pub/Sub subscription the AppConnector uses to receive notifications. + string pubsub_subscription = 1; + } + + oneof config { + // Cloud Pub/Sub Configuration to receive notifications. + CloudPubSubNotificationConfig pubsub_notification = 1; + } +} + +// ImageConfig defines the control plane images to run. +message ImageConfig { + // The initial image the remote agent will attempt to run for the control + // plane. + string target_image = 1; + + // The stable image that the remote agent will fallback to if the target image + // fails. + string stable_image = 2; +} diff --git a/google/cloud/beyondcorp/appconnectors/v1/app_connectors_service.proto b/google/cloud/beyondcorp/appconnectors/v1/app_connectors_service.proto new file mode 100644 index 000000000..d7d6d74f4 --- /dev/null +++ b/google/cloud/beyondcorp/appconnectors/v1/app_connectors_service.proto @@ -0,0 +1,435 @@ +// 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.cloud.beyondcorp.appconnectors.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/beyondcorp/appconnectors/v1/app_connector_instance_config.proto"; +import "google/cloud/beyondcorp/appconnectors/v1/resource_info.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BeyondCorp.AppConnectors.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/beyondcorp/appconnectors/v1;appconnectors"; +option java_multiple_files = true; +option java_outer_classname = "AppConnectorsServiceProto"; +option java_package = "com.google.cloud.beyondcorp.appconnectors.v1"; +option php_namespace = "Google\\Cloud\\BeyondCorp\\AppConnectors\\V1"; +option ruby_package = "Google::Cloud::BeyondCorp::AppConnectors::V1"; + +// ## API Overview +// +// The `beyondcorp.googleapis.com` service implements the Google Cloud +// BeyondCorp API. +// +// ## Data Model +// +// The AppConnectorsService exposes the following resource: +// +// * AppConnectors, named as follows: +// `projects/{project_id}/locations/{location_id}/appConnectors/{app_connector_id}`. +// +// The AppConnectorsService provides methods to manage +// (create/read/update/delete) BeyondCorp AppConnectors. +service AppConnectorsService { + option (google.api.default_host) = "beyondcorp.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists AppConnectors in a given project and location. + rpc ListAppConnectors(ListAppConnectorsRequest) + returns (ListAppConnectorsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/appConnectors" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single AppConnector. + rpc GetAppConnector(GetAppConnectorRequest) returns (AppConnector) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/appConnectors/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new AppConnector in a given project and location. + rpc CreateAppConnector(CreateAppConnectorRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/appConnectors" + body: "app_connector" + }; + option (google.api.method_signature) = + "parent,app_connector,app_connector_id"; + option (google.longrunning.operation_info) = { + response_type: "AppConnector" + metadata_type: "AppConnectorOperationMetadata" + }; + } + + // Updates the parameters of a single AppConnector. + rpc UpdateAppConnector(UpdateAppConnectorRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{app_connector.name=projects/*/locations/*/appConnectors/*}" + body: "app_connector" + }; + option (google.api.method_signature) = "app_connector,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AppConnector" + metadata_type: "AppConnectorOperationMetadata" + }; + } + + // Deletes a single AppConnector. + rpc DeleteAppConnector(DeleteAppConnectorRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/appConnectors/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "AppConnectorOperationMetadata" + }; + } + + // Report status for a given connector. + rpc ReportStatus(ReportStatusRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{app_connector=projects/*/locations/*/appConnectors/*}:reportStatus" + body: "*" + }; + option (google.api.method_signature) = "app_connector,resource_info"; + option (google.longrunning.operation_info) = { + response_type: "AppConnector" + metadata_type: "AppConnectorOperationMetadata" + }; + } +} + +// Request message for BeyondCorp.ListAppConnectors. +message ListAppConnectorsRequest { + // Required. The resource name of the AppConnector location using the form: + // `projects/{project_id}/locations/{location_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/AppConnector" + } + ]; + + // Optional. The maximum number of items to return. + // If not specified, a default value of 50 will be used by the service. + // Regardless of the page_size value, the response may include a partial list + // and a caller should only rely on response's + // [next_page_token][BeyondCorp.ListAppConnectorsResponse.next_page_token] to + // determine if there are more instances left to be queried. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous + // ListAppConnectorsRequest, if any. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter specifying constraints of a list operation. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the ordering of results. See + // [Sorting + // order](https://cloud.google.com/apis/design/design_patterns#sorting_order) + // for more information. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for BeyondCorp.ListAppConnectors. +message ListAppConnectorsResponse { + // A list of BeyondCorp AppConnectors in the project. + repeated AppConnector app_connectors = 1; + + // A token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // A list of locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for BeyondCorp.GetAppConnector. +message GetAppConnectorRequest { + // Required. BeyondCorp AppConnector name using the form: + // `projects/{project_id}/locations/{location_id}/appConnectors/{app_connector_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppConnector" + } + ]; +} + +// Request message for BeyondCorp.CreateAppConnector. +message CreateAppConnectorRequest { + // Required. The resource project name of the AppConnector location using the + // form: `projects/{project_id}/locations/{location_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/AppConnector" + } + ]; + + // Optional. User-settable AppConnector resource ID. + // + // * Must start with a letter. + // * Must contain between 4-63 characters from `/[a-z][0-9]-/`. + // * Must end with a number or a letter. + string app_connector_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. A BeyondCorp AppConnector resource. + AppConnector app_connector = 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 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_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for BeyondCorp.UpdateAppConnector. +message UpdateAppConnectorRequest { + // Required. Mask of fields to update. At least one path must be supplied in + // this field. The elements of the repeated paths field may only include these + // fields from [BeyondCorp.AppConnector]: + // * `labels` + // * `display_name` + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. AppConnector message with updated fields. Only supported fields + // specified in update_mask are updated. + AppConnector app_connector = 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 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 = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for BeyondCorp.DeleteAppConnector. +message DeleteAppConnectorRequest { + // Required. BeyondCorp AppConnector name using the form: + // `projects/{project_id}/locations/{location_id}/appConnectors/{app_connector_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppConnector" + } + ]; + + // 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 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 = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request report the connector status. +message ReportStatusRequest { + // Required. BeyondCorp Connector name using the form: + // `projects/{project_id}/locations/{location_id}/connectors/{connector}` + string app_connector = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppConnector" + } + ]; + + // Required. Resource info of the connector. + ResourceInfo resource_info = 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 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 = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// A BeyondCorp connector resource that represents an application facing +// component deployed proximal to and with direct access to the application +// instances. It is used to establish connectivity between the remote enterprise +// environment and GCP. It initiates connections to the applications and can +// proxy the data from users over the connection. +message AppConnector { + option (google.api.resource) = { + type: "beyondcorp.googleapis.com/AppConnector" + pattern: "projects/{project}/locations/{location}/appConnectors/{app_connector}" + }; + + // PrincipalInfo represents an Identity oneof. + message PrincipalInfo { + // ServiceAccount represents a GCP service account. + message ServiceAccount { + // Email address of the service account. + string email = 1; + } + + oneof type { + // A GCP service account. + ServiceAccount service_account = 1; + } + } + + // Represents the different states of a AppConnector. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // AppConnector is being created. + CREATING = 1; + + // AppConnector has been created. + CREATED = 2; + + // AppConnector's configuration is being updated. + UPDATING = 3; + + // AppConnector is being deleted. + DELETING = 4; + + // AppConnector is down and may be restored in the future. + // This happens when CCFE sends ProjectState = OFF. + DOWN = 5; + } + + // Required. Unique resource name of the AppConnector. + // The name is ignored when creating a AppConnector. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp when the resource was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when the resource was last modified. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Resource labels to represent user provided metadata. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An arbitrary user-provided name for the AppConnector. Cannot + // exceed 64 characters. + string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. A unique identifier for the instance generated by the + // system. + string uid = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the AppConnector. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Principal information about the Identity of the AppConnector. + PrincipalInfo principal_info = 8 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Resource info of the connector. + ResourceInfo resource_info = 11 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message AppConnectorOperationMetadata { + // 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]; +} diff --git a/google/cloud/beyondcorp/appconnectors/v1/beyondcorp-appconnectors_grpc_service_config.json b/google/cloud/beyondcorp/appconnectors/v1/beyondcorp-appconnectors_grpc_service_config.json new file mode 100644 index 000000000..4f48c9a29 --- /dev/null +++ b/google/cloud/beyondcorp/appconnectors/v1/beyondcorp-appconnectors_grpc_service_config.json @@ -0,0 +1,26 @@ + +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.beyondcorp.appconnectors.v1", "method": "ListAppConnectors" }, + { "service": "google.cloud.beyondcorp.appconnectors.v1", "method": "GetAppConnector" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.beyondcorp.appconnectors.v1", "method": "CreateAppConnector" }, + { "service": "google.cloud.beyondcorp.appconnectors.v1", "method": "UpdateAppConnector" }, + { "service": "google.cloud.beyondcorp.appconnectors.v1", "method": "DeleteAppConnector" }, + { "service": "google.cloud.beyondcorp.appconnectors.v1", "method": "ReportStatus" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/beyondcorp/appconnectors/v1/beyondcorp_v1.yaml b/google/cloud/beyondcorp/appconnectors/v1/beyondcorp_v1.yaml new file mode 100644 index 000000000..8920a34cf --- /dev/null +++ b/google/cloud/beyondcorp/appconnectors/v1/beyondcorp_v1.yaml @@ -0,0 +1,132 @@ +type: google.api.Service +config_version: 3 +name: beyondcorp.googleapis.com +title: BeyondCorp API + +apis: +- name: google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.beyondcorp.appconnectors.v1.AppConnectorOperationMetadata + +documentation: + summary: |- + Beyondcorp Enterprise provides identity and context aware access controls + for enterprise resources and enables zero-trust access. Using the + Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem + connectivity using the App Connector hybrid connectivity solution. + 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. + +backend: + rules: + - selector: 'google.cloud.beyondcorp.appconnectors.v1.AppConnectorsService.*' + 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 + 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/*/appConnections/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/appConnectors/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/appGateways/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientGateways/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}: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.beyondcorp.appconnectors.v1.AppConnectorsService.*' + 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 diff --git a/google/cloud/beyondcorp/appconnectors/v1/resource_info.proto b/google/cloud/beyondcorp/appconnectors/v1/resource_info.proto new file mode 100644 index 000000000..d7f26d53c --- /dev/null +++ b/google/cloud/beyondcorp/appconnectors/v1/resource_info.proto @@ -0,0 +1,76 @@ +// 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.cloud.beyondcorp.appconnectors.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BeyondCorp.AppConnectors.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/beyondcorp/appconnectors/v1;appconnectors"; +option java_multiple_files = true; +option java_outer_classname = "ResourceInfoProto"; +option java_package = "com.google.cloud.beyondcorp.appconnectors.v1"; +option php_namespace = "Google\\Cloud\\BeyondCorp\\AppConnectors\\V1"; +option ruby_package = "Google::Cloud::BeyondCorp::AppConnectors::V1"; + +// HealthStatus represents the health status. +enum HealthStatus { + // Health status is unknown: not initialized or failed to retrieve. + HEALTH_STATUS_UNSPECIFIED = 0; + + // The resource is healthy. + HEALTHY = 1; + + // The resource is unhealthy. + UNHEALTHY = 2; + + // The resource is unresponsive. + UNRESPONSIVE = 3; + + // Some sub-resources are UNHEALTHY. + DEGRADED = 4; +} + +// ResourceInfo represents the information/status of an app connector resource. +// Such as: +// - remote_agent +// - container +// - runtime +// - appgateway +// - appconnector +// - appconnection +// - tunnel +// - logagent +message ResourceInfo { + // Required. Unique Id for the resource. + string id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Overall health status. Overall status is derived based on the status of + // each sub level resources. + HealthStatus status = 2; + + // Specific details for the resource. This is for internal use only. + google.protobuf.Any resource = 3; + + // The timestamp to collect the info. It is suggested to be set by + // the topmost level resource only. + google.protobuf.Timestamp time = 4; + + // List of Info for the sub level resources. + repeated ResourceInfo sub = 5; +} diff --git a/google/cloud/beyondcorp/appgateways/BUILD.bazel b/google/cloud/beyondcorp/appgateways/BUILD.bazel new file mode 100644 index 000000000..643ccad8c --- /dev/null +++ b/google/cloud/beyondcorp/appgateways/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-beyond_corp-app_gateways. + +# 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 appgateways. +# 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 = "appgateways_ruby_wrapper", + srcs = ["//google/cloud/beyondcorp/appgateways/v1:appgateways_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-gem-name=google-cloud-beyond_corp-app_gateways", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp AppGateways", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-appgateways-ruby", + deps = [ + ":appgateways_ruby_wrapper", + ], +) diff --git a/google/cloud/beyondcorp/appgateways/v1/BUILD.bazel b/google/cloud/beyondcorp/appgateways/v1/BUILD.bazel new file mode 100644 index 000000000..600915049 --- /dev/null +++ b/google/cloud/beyondcorp/appgateways/v1/BUILD.bazel @@ -0,0 +1,342 @@ +# 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", + "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", + "go_test", + "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_grpc_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 = "appgateways_proto", + srcs = [ + "app_gateways_service.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//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "appgateways_proto_with_info", + deps = [ + ":appgateways_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +java_proto_library( + name = "appgateways_java_proto", + deps = [":appgateways_proto"], +) + +java_grpc_library( + name = "appgateways_java_grpc", + srcs = [":appgateways_proto"], + deps = [":appgateways_java_proto"], +) + +java_gapic_library( + name = "appgateways_java_gapic", + srcs = [":appgateways_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "beyondcorp-appgateways_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + test_deps = [ + ":appgateways_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + deps = [ + ":appgateways_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "appgateways_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.beyondcorp.appgateways.v1.AppGatewaysServiceClientTest", + ], + runtime_deps = [":appgateways_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-beyondcorp-appgateways-v1-java", + include_samples = True, + deps = [ + ":appgateways_java_gapic", + ":appgateways_java_grpc", + ":appgateways_java_proto", + ":appgateways_proto", + ], +) + +go_proto_library( + name = "appgateways_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/beyondcorp/appgateways/v1", + protos = [":appgateways_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "appgateways_go_gapic", + srcs = [":appgateways_proto_with_info"], + grpc_service_config = "beyondcorp-appgateways_grpc_service_config.json", + importpath = "cloud.google.com/go/beyondcorp/appgateways/apiv1;appgateways", + metadata = True, + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appgateways_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", + ], +) + +go_test( + name = "appgateways_go_gapic_test", + srcs = [":appgateways_go_gapic_srcjar_test"], + embed = [":appgateways_go_gapic"], + importpath = "cloud.google.com/go/beyondcorp/appgateways/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-beyondcorp-appgateways-v1-go", + deps = [ + ":appgateways_go_gapic", + ":appgateways_go_gapic_srcjar-metadata.srcjar", + ":appgateways_go_gapic_srcjar-test.srcjar", + ":appgateways_go_proto", + ], +) + +py_gapic_library( + name = "appgateways_py_gapic", + srcs = [":appgateways_proto"], + grpc_service_config = "beyondcorp-appgateways_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-beyondcorp-appgateways", + "python-gapic-namespace=google.cloud", + "python-gapic-name=beyondcorp_appgateways", + ], + service_yaml = "beyondcorp_v1.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "appgateways_py_gapic_test", + srcs = [ + "appgateways_py_gapic_pytest.py", + "appgateways_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":appgateways_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "beyondcorp-appgateways-v1-py", + deps = [ + ":appgateways_py_gapic", + ], +) + +php_proto_library( + name = "appgateways_php_proto", + deps = [":appgateways_proto"], +) + +php_grpc_library( + name = "appgateways_php_grpc", + srcs = [":appgateways_proto"], + deps = [":appgateways_php_proto"], +) + +php_gapic_library( + name = "appgateways_php_gapic", + srcs = [":appgateways_proto_with_info"], + grpc_service_config = "beyondcorp-appgateways_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appgateways_php_grpc", + ":appgateways_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appgateways-v1-php", + deps = [ + ":appgateways_php_gapic", + ":appgateways_php_grpc", + ":appgateways_php_proto", + ], +) + +nodejs_gapic_library( + name = "appgateways_nodejs_gapic", + package_name = "@google-cloud/appgateways", + src = ":appgateways_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "beyondcorp-appgateways_grpc_service_config.json", + package = "google.cloud.beyondcorp.appgateways.v1", + service_yaml = "beyondcorp_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "beyondcorp-appgateways-v1-nodejs", + deps = [ + ":appgateways_nodejs_gapic", + ":appgateways_proto", + ], +) + +ruby_proto_library( + name = "appgateways_ruby_proto", + deps = [":appgateways_proto"], +) + +ruby_grpc_library( + name = "appgateways_ruby_grpc", + srcs = [":appgateways_proto"], + deps = [":appgateways_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "appgateways_ruby_gapic", + srcs = [":appgateways_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-beyond_corp-app_gateways-v1", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-wrapper-gem-override=google-cloud-beyond_corp", + ], + grpc_service_config = "beyondcorp-appgateways_grpc_service_config.json", + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp AppGateways V1", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appgateways_ruby_grpc", + ":appgateways_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appgateways-v1-ruby", + deps = [ + ":appgateways_ruby_gapic", + ":appgateways_ruby_grpc", + ":appgateways_ruby_proto", + ], +) + +csharp_proto_library( + name = "appgateways_csharp_proto", + deps = [":appgateways_proto"], +) + +csharp_grpc_library( + name = "appgateways_csharp_grpc", + srcs = [":appgateways_proto"], + deps = [":appgateways_csharp_proto"], +) + +csharp_gapic_library( + name = "appgateways_csharp_gapic", + srcs = [":appgateways_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "beyondcorp-appgateways_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":appgateways_csharp_grpc", + ":appgateways_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-appgateways-v1-csharp", + deps = [ + ":appgateways_csharp_gapic", + ":appgateways_csharp_grpc", + ":appgateways_csharp_proto", + ], +) + +cc_proto_library( + name = "appgateways_cc_proto", + deps = [":appgateways_proto"], +) + +cc_grpc_library( + name = "appgateways_cc_grpc", + srcs = [":appgateways_proto"], + grpc_only = True, + deps = [":appgateways_cc_proto"], +) diff --git a/google/cloud/beyondcorp/appgateways/v1/app_gateways_service.proto b/google/cloud/beyondcorp/appgateways/v1/app_gateways_service.proto new file mode 100644 index 000000000..605a9354e --- /dev/null +++ b/google/cloud/beyondcorp/appgateways/v1/app_gateways_service.proto @@ -0,0 +1,356 @@ +// 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.cloud.beyondcorp.appgateways.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/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BeyondCorp.AppGateways.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/beyondcorp/appgateways/v1;appgateways"; +option java_multiple_files = true; +option java_outer_classname = "AppGatewaysServiceProto"; +option java_package = "com.google.cloud.beyondcorp.appgateways.v1"; +option php_namespace = "Google\\Cloud\\BeyondCorp\\AppGateways\\V1"; +option ruby_package = "Google::Cloud::BeyondCorp::AppGateways::V1"; + +// ## API Overview +// +// The `beyondcorp.googleapis.com` service implements the Google Cloud +// BeyondCorp API. +// +// ## Data Model +// +// The AppGatewaysService exposes the following resources: +// +// * AppGateways, named as follows: +// `projects/{project_id}/locations/{location_id}/appGateways/{app_gateway_id}`. +// +// The AppGatewaysService service provides methods to manage +// (create/read/update/delete) BeyondCorp AppGateways. +service AppGatewaysService { + option (google.api.default_host) = "beyondcorp.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists AppGateways in a given project and location. + rpc ListAppGateways(ListAppGatewaysRequest) + returns (ListAppGatewaysResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/appGateways" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single AppGateway. + rpc GetAppGateway(GetAppGatewayRequest) returns (AppGateway) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/appGateways/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new AppGateway in a given project and location. + rpc CreateAppGateway(CreateAppGatewayRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/appGateways" + body: "app_gateway" + }; + option (google.api.method_signature) = "parent,app_gateway,app_gateway_id"; + option (google.longrunning.operation_info) = { + response_type: "AppGateway" + metadata_type: "AppGatewayOperationMetadata" + }; + } + + // Deletes a single AppGateway. + rpc DeleteAppGateway(DeleteAppGatewayRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/appGateways/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "AppGatewayOperationMetadata" + }; + } +} + +// Request message for BeyondCorp.ListAppGateways. +message ListAppGatewaysRequest { + // Required. The resource name of the AppGateway location using the form: + // `projects/{project_id}/locations/{location_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/AppGateway" + } + ]; + + // Optional. The maximum number of items to return. + // If not specified, a default value of 50 will be used by the service. + // Regardless of the page_size value, the response may include a partial list + // and a caller should only rely on response's + // [next_page_token][BeyondCorp.ListAppGatewaysResponse.next_page_token] to + // determine if there are more instances left to be queried. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous + // ListAppGatewaysRequest, if any. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter specifying constraints of a list operation. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the ordering of results. See + // [Sorting + // order](https://cloud.google.com/apis/design/design_patterns#sorting_order) + // for more information. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for BeyondCorp.ListAppGateways. +message ListAppGatewaysResponse { + // A list of BeyondCorp AppGateways in the project. + repeated AppGateway app_gateways = 1; + + // A token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // A list of locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for BeyondCorp.GetAppGateway. +message GetAppGatewayRequest { + // Required. BeyondCorp AppGateway name using the form: + // `projects/{project_id}/locations/{location_id}/appGateways/{app_gateway_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppGateway" + } + ]; +} + +// Request message for BeyondCorp.CreateAppGateway. +message CreateAppGatewayRequest { + // Required. The resource project name of the AppGateway location using the + // form: `projects/{project_id}/locations/{location_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/AppGateway" + } + ]; + + // Optional. User-settable AppGateway resource ID. + // * Must start with a letter. + // * Must contain between 4-63 characters from `/[a-z][0-9]-/`. + // * Must end with a number or a letter. + string app_gateway_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. A BeyondCorp AppGateway resource. + AppGateway app_gateway = 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 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_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for BeyondCorp.DeleteAppGateway. +message DeleteAppGatewayRequest { + // Required. BeyondCorp AppGateway name using the form: + // `projects/{project_id}/locations/{location_id}/appGateways/{app_gateway_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/AppGateway" + } + ]; + + // 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 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 = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A BeyondCorp AppGateway resource represents a BeyondCorp protected AppGateway +// to a remote application. It creates all the necessary GCP components needed +// for creating a BeyondCorp protected AppGateway. Multiple connectors can be +// authorised for a single AppGateway. +message AppGateway { + option (google.api.resource) = { + type: "beyondcorp.googleapis.com/AppGateway" + pattern: "projects/{project}/locations/{location}/appGateways/{app_gateway}" + }; + + // Allocated connection of the AppGateway. + message AllocatedConnection { + // Required. The PSC uri of an allocated connection + string psc_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ingress port of an allocated connection + int32 ingress_port = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Enum containing list of all possible network connectivity options + // supported by BeyondCorp AppGateway. + enum Type { + // Default value. This value is unused. + TYPE_UNSPECIFIED = 0; + + // TCP Proxy based BeyondCorp Connection. API will default to this if unset. + TCP_PROXY = 1; + } + + // Represents the different states of an AppGateway. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // AppGateway is being created. + CREATING = 1; + + // AppGateway has been created. + CREATED = 2; + + // AppGateway's configuration is being updated. + UPDATING = 3; + + // AppGateway is being deleted. + DELETING = 4; + + // AppGateway is down and may be restored in the future. + // This happens when CCFE sends ProjectState = OFF. + DOWN = 5; + } + + // Enum containing list of all possible host types supported by BeyondCorp + // Connection. + enum HostType { + // Default value. This value is unused. + HOST_TYPE_UNSPECIFIED = 0; + + // AppGateway hosted in a GCP regional managed instance group. + GCP_REGIONAL_MIG = 1; + } + + // Required. Unique resource name of the AppGateway. + // The name is ignored when creating an AppGateway. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp when the resource was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when the resource was last modified. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Resource labels to represent user provided metadata. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An arbitrary user-provided name for the AppGateway. Cannot exceed + // 64 characters. + string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. A unique identifier for the instance generated by the + // system. + string uid = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The type of network connectivity used by the AppGateway. + Type type = 7 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The current state of the AppGateway. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined URI for this resource. + string uri = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of connections allocated for the Gateway + repeated AllocatedConnection allocated_connections = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The type of hosting used by the AppGateway. + HostType host_type = 11 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents the metadata of the long-running operation. +message AppGatewayOperationMetadata { + // 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]; +} diff --git a/google/cloud/beyondcorp/appgateways/v1/beyondcorp-appgateways_grpc_service_config.json b/google/cloud/beyondcorp/appgateways/v1/beyondcorp-appgateways_grpc_service_config.json new file mode 100644 index 000000000..8a05b1839 --- /dev/null +++ b/google/cloud/beyondcorp/appgateways/v1/beyondcorp-appgateways_grpc_service_config.json @@ -0,0 +1,23 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.beyondcorp.appgateways.v1", "method": "ListAppGateways" }, + { "service": "google.cloud.beyondcorp.appgateways.v1", "method": "GetAppGateway" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.beyondcorp.appgateways.v1", "method": "CreateAppGateway" }, + { "service": "google.cloud.beyondcorp.appgateways.v1", "method": "DeleteAppGateway" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/beyondcorp/appgateways/v1/beyondcorp_v1.yaml b/google/cloud/beyondcorp/appgateways/v1/beyondcorp_v1.yaml new file mode 100644 index 000000000..f8f243be1 --- /dev/null +++ b/google/cloud/beyondcorp/appgateways/v1/beyondcorp_v1.yaml @@ -0,0 +1,132 @@ +type: google.api.Service +config_version: 3 +name: beyondcorp.googleapis.com +title: BeyondCorp API + +apis: +- name: google.cloud.beyondcorp.appgateways.v1.AppGatewaysService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.beyondcorp.appgateways.v1.AppGatewayOperationMetadata + +documentation: + summary: |- + Beyondcorp Enterprise provides identity and context aware access controls + for enterprise resources and enables zero-trust access. Using the + Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem + connectivity using the App Connector hybrid connectivity solution. + 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. + +backend: + rules: + - selector: 'google.cloud.beyondcorp.appgateways.v1.AppGatewaysService.*' + 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 + 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/*/appConnections/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/appConnectors/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/appGateways/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientGateways/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}: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.beyondcorp.appgateways.v1.AppGatewaysService.*' + 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 diff --git a/google/cloud/beyondcorp/clientconnectorservices/BUILD.bazel b/google/cloud/beyondcorp/clientconnectorservices/BUILD.bazel new file mode 100644 index 000000000..8d48bb2e1 --- /dev/null +++ b/google/cloud/beyondcorp/clientconnectorservices/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-beyond_corp-client_connector_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 clientconnectorservices. +# 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 = "clientconnectorservices_ruby_wrapper", + srcs = ["//google/cloud/beyondcorp/clientconnectorservices/v1:clientconnectorservices_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-gem-name=google-cloud-beyond_corp-client_connector_services", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp ClientConnectorServices", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-clientconnectorservices-ruby", + deps = [ + ":clientconnectorservices_ruby_wrapper", + ], +) diff --git a/google/cloud/beyondcorp/clientconnectorservices/v1/BUILD.bazel b/google/cloud/beyondcorp/clientconnectorservices/v1/BUILD.bazel new file mode 100644 index 000000000..96628bb52 --- /dev/null +++ b/google/cloud/beyondcorp/clientconnectorservices/v1/BUILD.bazel @@ -0,0 +1,342 @@ +# 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", + "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", + "go_test", + "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_grpc_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 = "clientconnectorservices_proto", + srcs = [ + "client_connector_services_service.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//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "clientconnectorservices_proto_with_info", + deps = [ + ":clientconnectorservices_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +java_proto_library( + name = "clientconnectorservices_java_proto", + deps = [":clientconnectorservices_proto"], +) + +java_grpc_library( + name = "clientconnectorservices_java_grpc", + srcs = [":clientconnectorservices_proto"], + deps = [":clientconnectorservices_java_proto"], +) + +java_gapic_library( + name = "clientconnectorservices_java_gapic", + srcs = [":clientconnectorservices_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "beyondcorp-clientconnectorservices_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + test_deps = [ + ":clientconnectorservices_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + deps = [ + ":clientconnectorservices_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "clientconnectorservices_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesServiceClientTest", + ], + runtime_deps = [":clientconnectorservices_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-beyondcorp-clientconnectorservices-v1-java", + deps = [ + ":clientconnectorservices_java_gapic", + ":clientconnectorservices_java_grpc", + ":clientconnectorservices_java_proto", + ":clientconnectorservices_proto", + ], +) + +go_proto_library( + name = "clientconnectorservices_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/beyondcorp/clientconnectorservices/v1", + protos = [":clientconnectorservices_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "clientconnectorservices_go_gapic", + srcs = [":clientconnectorservices_proto_with_info"], + grpc_service_config = "beyondcorp-clientconnectorservices_grpc_service_config.json", + importpath = "cloud.google.com/go/beyondcorp/clientconnectorservices/apiv1;clientconnectorservices", + metadata = True, + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":clientconnectorservices_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", + ], +) + +go_test( + name = "clientconnectorservices_go_gapic_test", + srcs = [":clientconnectorservices_go_gapic_srcjar_test"], + embed = [":clientconnectorservices_go_gapic"], + importpath = "cloud.google.com/go/beyondcorp/clientconnectorservices/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-beyondcorp-clientconnectorservices-v1-go", + deps = [ + ":clientconnectorservices_go_gapic", + ":clientconnectorservices_go_gapic_srcjar-metadata.srcjar", + ":clientconnectorservices_go_gapic_srcjar-test.srcjar", + ":clientconnectorservices_go_proto", + ], +) + +py_gapic_library( + name = "clientconnectorservices_py_gapic", + srcs = [":clientconnectorservices_proto"], + grpc_service_config = "beyondcorp-clientconnectorservices_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-beyondcorp-clientconnectorservices", + "python-gapic-namespace=google.cloud", + "python-gapic-name=beyondcorp_clientconnectorservices", + ], + service_yaml = "beyondcorp_v1.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "clientconnectorservices_py_gapic_test", + srcs = [ + "clientconnectorservices_py_gapic_pytest.py", + "clientconnectorservices_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":clientconnectorservices_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "beyondcorp-clientconnectorservices-v1-py", + deps = [ + ":clientconnectorservices_py_gapic", + ], +) + +php_proto_library( + name = "clientconnectorservices_php_proto", + deps = [":clientconnectorservices_proto"], +) + +php_grpc_library( + name = "clientconnectorservices_php_grpc", + srcs = [":clientconnectorservices_proto"], + deps = [":clientconnectorservices_php_proto"], +) + +php_gapic_library( + name = "clientconnectorservices_php_gapic", + srcs = [":clientconnectorservices_proto_with_info"], + grpc_service_config = "beyondcorp-clientconnectorservices_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":clientconnectorservices_php_grpc", + ":clientconnectorservices_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-clientconnectorservices-v1-php", + deps = [ + ":clientconnectorservices_php_gapic", + ":clientconnectorservices_php_grpc", + ":clientconnectorservices_php_proto", + ], +) + +nodejs_gapic_library( + name = "clientconnectorservices_nodejs_gapic", + package_name = "@google-cloud/clientconnectorservices", + src = ":clientconnectorservices_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "beyondcorp-clientconnectorservices_grpc_service_config.json", + package = "google.cloud.beyondcorp.clientconnectorservices.v1", + service_yaml = "beyondcorp_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "beyondcorp-clientconnectorservices-v1-nodejs", + deps = [ + ":clientconnectorservices_nodejs_gapic", + ":clientconnectorservices_proto", + ], +) + +ruby_proto_library( + name = "clientconnectorservices_ruby_proto", + deps = [":clientconnectorservices_proto"], +) + +ruby_grpc_library( + name = "clientconnectorservices_ruby_grpc", + srcs = [":clientconnectorservices_proto"], + deps = [":clientconnectorservices_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "clientconnectorservices_ruby_gapic", + srcs = [":clientconnectorservices_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-beyond_corp-client_connector_services-v1", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-wrapper-gem-override=google-cloud-beyond_corp", + ], + grpc_service_config = "beyondcorp-clientconnectorservices_grpc_service_config.json", + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp ClientConnectorServices V1", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":clientconnectorservices_ruby_grpc", + ":clientconnectorservices_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-clientconnectorservices-v1-ruby", + deps = [ + ":clientconnectorservices_ruby_gapic", + ":clientconnectorservices_ruby_grpc", + ":clientconnectorservices_ruby_proto", + ], +) + +csharp_proto_library( + name = "clientconnectorservices_csharp_proto", + deps = [":clientconnectorservices_proto"], +) + +csharp_grpc_library( + name = "clientconnectorservices_csharp_grpc", + srcs = [":clientconnectorservices_proto"], + deps = [":clientconnectorservices_csharp_proto"], +) + +csharp_gapic_library( + name = "clientconnectorservices_csharp_gapic", + srcs = [":clientconnectorservices_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "beyondcorp-clientconnectorservices_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":clientconnectorservices_csharp_grpc", + ":clientconnectorservices_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-clientconnectorservices-v1-csharp", + deps = [ + ":clientconnectorservices_csharp_gapic", + ":clientconnectorservices_csharp_grpc", + ":clientconnectorservices_csharp_proto", + ], +) + +cc_proto_library( + name = "clientconnectorservices_cc_proto", + deps = [":clientconnectorservices_proto"], +) + +cc_grpc_library( + name = "clientconnectorservices_cc_grpc", + srcs = [":clientconnectorservices_proto"], + grpc_only = True, + deps = [":clientconnectorservices_cc_proto"], +) diff --git a/google/cloud/beyondcorp/clientconnectorservices/v1/beyondcorp-clientconnectorservices_grpc_service_config.json b/google/cloud/beyondcorp/clientconnectorservices/v1/beyondcorp-clientconnectorservices_grpc_service_config.json new file mode 100644 index 000000000..70e83f19d --- /dev/null +++ b/google/cloud/beyondcorp/clientconnectorservices/v1/beyondcorp-clientconnectorservices_grpc_service_config.json @@ -0,0 +1,25 @@ + +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.beyondcorp.clientconnectorservices.v1", "method": "ListClientConnectorServices" }, + { "service": "google.cloud.beyondcorp.clientconnectorservices.v1", "method": "GetClientConnectorService" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.beyondcorp.clientconnectorservices.v1", "method": "CreateClientConnectorService" }, + { "service": "google.cloud.beyondcorp.clientconnectorservices.v1", "method": "UpdateClientConnectorService" }, + { "service": "google.cloud.beyondcorp.clientconnectorservices.v1", "method": "DeleteClientConnectorService" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/beyondcorp/clientconnectorservices/v1/beyondcorp_v1.yaml b/google/cloud/beyondcorp/clientconnectorservices/v1/beyondcorp_v1.yaml new file mode 100644 index 000000000..50cca88a8 --- /dev/null +++ b/google/cloud/beyondcorp/clientconnectorservices/v1/beyondcorp_v1.yaml @@ -0,0 +1,132 @@ +type: google.api.Service +config_version: 3 +name: beyondcorp.googleapis.com +title: BeyondCorp API + +apis: +- name: google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServiceOperationMetadata + +documentation: + summary: |- + Beyondcorp Enterprise provides identity and context aware access controls + for enterprise resources and enables zero-trust access. Using the + Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem + connectivity using the App Connector hybrid connectivity solution. + 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. + +backend: + rules: + - selector: 'google.cloud.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService.*' + 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 + 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/*/appConnections/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/appConnectors/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/appGateways/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientGateways/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}: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.beyondcorp.clientconnectorservices.v1.ClientConnectorServicesService.*' + 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 diff --git a/google/cloud/beyondcorp/clientconnectorservices/v1/client_connector_services_service.proto b/google/cloud/beyondcorp/clientconnectorservices/v1/client_connector_services_service.proto new file mode 100644 index 000000000..fdfb27cdd --- /dev/null +++ b/google/cloud/beyondcorp/clientconnectorservices/v1/client_connector_services_service.proto @@ -0,0 +1,421 @@ +// 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.cloud.beyondcorp.clientconnectorservices.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/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BeyondCorp.ClientConnectorServices.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/beyondcorp/clientconnectorservices/v1;clientconnectorservices"; +option java_multiple_files = true; +option java_outer_classname = "ClientConnectorServicesServiceProto"; +option java_package = "com.google.cloud.beyondcorp.clientconnectorservices.v1"; +option php_namespace = "Google\\Cloud\\BeyondCorp\\ClientConnectorServices\\V1"; +option ruby_package = "Google::Cloud::BeyondCorp::ClientConnectorServices::V1"; + +// ## API Overview +// +// The `beyondcorp.googleapis.com` service implements the Google Cloud +// BeyondCorp API. +// +// ## Data Model +// +// The ClientConnectorServicesService exposes the following resources: +// +// * Client Connector Services, named as follows: +// `projects/{project_id}/locations/{location_id}/client_connector_services/{client_connector_service_id}`. +service ClientConnectorServicesService { + option (google.api.default_host) = "beyondcorp.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists ClientConnectorServices in a given project and location. + rpc ListClientConnectorServices(ListClientConnectorServicesRequest) + returns (ListClientConnectorServicesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/clientConnectorServices" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single ClientConnectorService. + rpc GetClientConnectorService(GetClientConnectorServiceRequest) + returns (ClientConnectorService) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/clientConnectorServices/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new ClientConnectorService in a given project and location. + rpc CreateClientConnectorService(CreateClientConnectorServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/clientConnectorServices" + body: "client_connector_service" + }; + option (google.api.method_signature) = + "parent,client_connector_service,client_connector_service_id"; + option (google.longrunning.operation_info) = { + response_type: "ClientConnectorService" + metadata_type: "ClientConnectorServiceOperationMetadata" + }; + } + + // Updates the parameters of a single ClientConnectorService. + rpc UpdateClientConnectorService(UpdateClientConnectorServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{client_connector_service.name=projects/*/locations/*/clientConnectorServices/*}" + body: "client_connector_service" + }; + option (google.api.method_signature) = + "client_connector_service,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "ClientConnectorService" + metadata_type: "ClientConnectorServiceOperationMetadata" + }; + } + + // Deletes a single ClientConnectorService. + rpc DeleteClientConnectorService(DeleteClientConnectorServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/clientConnectorServices/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "ClientConnectorServiceOperationMetadata" + }; + } +} + +// Message describing ClientConnectorService object. +message ClientConnectorService { + option (google.api.resource) = { + type: "beyondcorp.googleapis.com/ClientConnectorService" + pattern: "projects/{project}/locations/{location}/clientConnectorServices/{client_connector_service}" + }; + + // Settings of how to connect to the ClientGateway. + // One of the following options should be set. + message Ingress { + // The basic ingress config for ClientGateways. + message Config { + // The setting used to configure ClientGateways. + // It is adding routes to the client's routing table + // after the connection is established. + message DestinationRoute { + // Required. The network address of the subnet + // for which the packet is routed to the ClientGateway. + string address = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The network mask of the subnet + // for which the packet is routed to the ClientGateway. + string netmask = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // The protocol used to connect to the server. + enum TransportProtocol { + // Default value. This value is unused. + TRANSPORT_PROTOCOL_UNSPECIFIED = 0; + + // TCP protocol. + TCP = 1; + } + + // Required. Immutable. The transport protocol used between the client and + // the server. + TransportProtocol transport_protocol = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. The settings used to configure basic ClientGateways. + repeated DestinationRoute destination_routes = 2 + [(google.api.field_behavior) = REQUIRED]; + } + + oneof ingress_config { + // The basic ingress config for ClientGateways. + Config config = 1; + } + } + + // The details of the egress info. One of the following options should be set. + message Egress { + // The peered VPC owned by the consumer project. + message PeeredVpc { + // Required. The name of the peered VPC owned by the consumer project. + string network_vpc = 1 [(google.api.field_behavior) = REQUIRED]; + } + + oneof destination_type { + // A VPC from the consumer project. + PeeredVpc peered_vpc = 1; + } + } + + // Represents the different states of a ClientConnectorService. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // ClientConnectorService is being created. + CREATING = 1; + + // ClientConnectorService is being updated. + UPDATING = 2; + + // ClientConnectorService is being deleted. + DELETING = 3; + + // ClientConnectorService is running. + RUNNING = 4; + + // ClientConnectorService is down and may be restored in the future. + // This happens when CCFE sends ProjectState = OFF. + DOWN = 5; + + // ClientConnectorService encountered an error and is in an indeterministic + // state. + ERROR = 6; + } + + // Required. Name of resource. The name is ignored during creation. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. [Output only] Create time stamp. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Output only] Update time stamp. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. User-provided name. + // The display name should follow certain format. + // * Must be 6 to 30 characters in length. + // * Can only contain lowercase letters, numbers, and hyphens. + // * Must start with a letter. + string display_name = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The details of the ingress settings. + Ingress ingress = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. The details of the egress settings. + Egress egress = 7 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The operational state of the ClientConnectorService. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message for requesting list of ClientConnectorServices. +message ListClientConnectorServicesRequest { + // Required. Parent value for ListClientConnectorServicesRequest. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/ClientConnectorService" + } + ]; + + // 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 ClientConnectorServices. +message ListClientConnectorServicesResponse { + // The list of ClientConnectorService. + repeated ClientConnectorService client_connector_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; +} + +// Message for getting a ClientConnectorService. +message GetClientConnectorServiceRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/ClientConnectorService" + } + ]; +} + +// Message for creating a ClientConnectorService. +message CreateClientConnectorServiceRequest { + // Required. Value for parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/ClientConnectorService" + } + ]; + + // Optional. User-settable client connector service resource ID. + // * Must start with a letter. + // * Must contain between 4-63 characters from `/[a-z][0-9]-/`. + // * Must end with a number or a letter. + // + // A random system generated name will be assigned + // if not specified by the user. + string client_connector_service_id = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. The resource being created. + ClientConnectorService client_connector_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 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_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for updating a ClientConnectorService +message UpdateClientConnectorServiceRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // ClientConnectorService 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. + // + // Mutable fields: display_name. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated. + ClientConnectorService client_connector_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 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 = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set as true, will create the resource if it is not found. + bool allow_missing = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for deleting a ClientConnectorService. +message DeleteClientConnectorServiceRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/ClientConnectorService" + } + ]; + + // 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 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 = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message ClientConnectorServiceOperationMetadata { + // 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]; +} diff --git a/google/cloud/beyondcorp/clientgateways/BUILD.bazel b/google/cloud/beyondcorp/clientgateways/BUILD.bazel new file mode 100644 index 000000000..47b8b1216 --- /dev/null +++ b/google/cloud/beyondcorp/clientgateways/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-beyond_corp-client_gateways. + +# 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 clientgateways. +# 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 = "clientgateways_ruby_wrapper", + srcs = ["//google/cloud/beyondcorp/clientgateways/v1:clientgateways_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-gem-name=google-cloud-beyond_corp-client_gateways", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp ClientGateways", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-clientgateways-ruby", + deps = [ + ":clientgateways_ruby_wrapper", + ], +) diff --git a/google/cloud/beyondcorp/clientgateways/v1/BUILD.bazel b/google/cloud/beyondcorp/clientgateways/v1/BUILD.bazel new file mode 100644 index 000000000..18d06ae31 --- /dev/null +++ b/google/cloud/beyondcorp/clientgateways/v1/BUILD.bazel @@ -0,0 +1,342 @@ +# 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", + "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", + "go_test", + "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_grpc_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 = "clientgateways_proto", + srcs = [ + "client_gateways_service.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//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "clientgateways_proto_with_info", + deps = [ + ":clientgateways_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +java_proto_library( + name = "clientgateways_java_proto", + deps = [":clientgateways_proto"], +) + +java_grpc_library( + name = "clientgateways_java_grpc", + srcs = [":clientgateways_proto"], + deps = [":clientgateways_java_proto"], +) + +java_gapic_library( + name = "clientgateways_java_gapic", + srcs = [":clientgateways_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "beyondcorp-clientgateways_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + test_deps = [ + ":clientgateways_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + deps = [ + ":clientgateways_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "clientgateways_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysServiceClientTest", + ], + runtime_deps = [":clientgateways_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-beyondcorp-clientgateways-v1-java", + include_samples = True, + deps = [ + ":clientgateways_java_gapic", + ":clientgateways_java_grpc", + ":clientgateways_java_proto", + ":clientgateways_proto", + ], +) + +go_proto_library( + name = "clientgateways_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/beyondcorp/clientgateways/v1", + protos = [":clientgateways_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "clientgateways_go_gapic", + srcs = [":clientgateways_proto_with_info"], + grpc_service_config = "beyondcorp-clientgateways_grpc_service_config.json", + importpath = "cloud.google.com/go/beyondcorp/clientgateways/apiv1;clientgateways", + metadata = True, + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":clientgateways_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", + ], +) + +go_test( + name = "clientgateways_go_gapic_test", + srcs = [":clientgateways_go_gapic_srcjar_test"], + embed = [":clientgateways_go_gapic"], + importpath = "cloud.google.com/go/beyondcorp/clientgateways/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-beyondcorp-clientgateways-v1-go", + deps = [ + ":clientgateways_go_gapic", + ":clientgateways_go_gapic_srcjar-metadata.srcjar", + ":clientgateways_go_gapic_srcjar-test.srcjar", + ":clientgateways_go_proto", + ], +) + +py_gapic_library( + name = "clientgateways_py_gapic", + srcs = [":clientgateways_proto"], + grpc_service_config = "beyondcorp-clientgateways_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-beyondcorp-clientgateways", + "python-gapic-namespace=google.cloud", + "python-gapic-name=beyondcorp_clientgateways", + ], + service_yaml = "beyondcorp_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "clientgateways_py_gapic_test", + srcs = [ + "clientgateways_py_gapic_pytest.py", + "clientgateways_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":clientgateways_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "beyondcorp-clientgateways-v1-py", + deps = [ + ":clientgateways_py_gapic", + ], +) + +php_proto_library( + name = "clientgateways_php_proto", + deps = [":clientgateways_proto"], +) + +php_grpc_library( + name = "clientgateways_php_grpc", + srcs = [":clientgateways_proto"], + deps = [":clientgateways_php_proto"], +) + +php_gapic_library( + name = "clientgateways_php_gapic", + srcs = [":clientgateways_proto_with_info"], + grpc_service_config = "beyondcorp-clientgateways_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":clientgateways_php_grpc", + ":clientgateways_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-clientgateways-v1-php", + deps = [ + ":clientgateways_php_gapic", + ":clientgateways_php_grpc", + ":clientgateways_php_proto", + ], +) + +nodejs_gapic_library( + name = "clientgateways_nodejs_gapic", + package_name = "@google-cloud/clientgateways", + src = ":clientgateways_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "beyondcorp-clientgateways_grpc_service_config.json", + package = "google.cloud.beyondcorp.clientgateways.v1", + service_yaml = "beyondcorp_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "beyondcorp-clientgateways-v1-nodejs", + deps = [ + ":clientgateways_nodejs_gapic", + ":clientgateways_proto", + ], +) + +ruby_proto_library( + name = "clientgateways_ruby_proto", + deps = [":clientgateways_proto"], +) + +ruby_grpc_library( + name = "clientgateways_ruby_grpc", + srcs = [":clientgateways_proto"], + deps = [":clientgateways_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "clientgateways_ruby_gapic", + srcs = [":clientgateways_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-beyond_corp-client_gateways-v1", + "ruby-cloud-product-url=https://cloud.google.com/beyondcorp/", + "ruby-cloud-api-id=beyondcorp.googleapis.com", + "ruby-cloud-api-shortname=beyondcorp", + "ruby-cloud-wrapper-gem-override=google-cloud-beyond_corp", + ], + grpc_service_config = "beyondcorp-clientgateways_grpc_service_config.json", + ruby_cloud_description = "Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity using the App Connector hybrid connectivity solution.", + ruby_cloud_title = "BeyondCorp ClientGateways V1", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":clientgateways_ruby_grpc", + ":clientgateways_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-clientgateways-v1-ruby", + deps = [ + ":clientgateways_ruby_gapic", + ":clientgateways_ruby_grpc", + ":clientgateways_ruby_proto", + ], +) + +csharp_proto_library( + name = "clientgateways_csharp_proto", + deps = [":clientgateways_proto"], +) + +csharp_grpc_library( + name = "clientgateways_csharp_grpc", + srcs = [":clientgateways_proto"], + deps = [":clientgateways_csharp_proto"], +) + +csharp_gapic_library( + name = "clientgateways_csharp_gapic", + srcs = [":clientgateways_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "beyondcorp-clientgateways_grpc_service_config.json", + service_yaml = "beyondcorp_v1.yaml", + deps = [ + ":clientgateways_csharp_grpc", + ":clientgateways_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-beyondcorp-clientgateways-v1-csharp", + deps = [ + ":clientgateways_csharp_gapic", + ":clientgateways_csharp_grpc", + ":clientgateways_csharp_proto", + ], +) + +cc_proto_library( + name = "clientgateways_cc_proto", + deps = [":clientgateways_proto"], +) + +cc_grpc_library( + name = "clientgateways_cc_grpc", + srcs = [":clientgateways_proto"], + grpc_only = True, + deps = [":clientgateways_cc_proto"], +) diff --git a/google/cloud/beyondcorp/clientgateways/v1/beyondcorp-clientgateways_grpc_service_config.json b/google/cloud/beyondcorp/clientgateways/v1/beyondcorp-clientgateways_grpc_service_config.json new file mode 100644 index 000000000..4c11272e6 --- /dev/null +++ b/google/cloud/beyondcorp/clientgateways/v1/beyondcorp-clientgateways_grpc_service_config.json @@ -0,0 +1,23 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.beyondcorp.clientgateways.v1", "method": "ListClientGateways" }, + { "service": "google.cloud.beyondcorp.clientgateways.v1", "method": "GetClientGateway" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.beyondcorp.clientgateways.v1", "method": "CreateClientGateway" }, + { "service": "google.cloud.beyondcorp.clientgateways.v1", "method": "DeleteClientGateway" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/beyondcorp/clientgateways/v1/beyondcorp_v1.yaml b/google/cloud/beyondcorp/clientgateways/v1/beyondcorp_v1.yaml new file mode 100644 index 000000000..69e7c266f --- /dev/null +++ b/google/cloud/beyondcorp/clientgateways/v1/beyondcorp_v1.yaml @@ -0,0 +1,132 @@ +type: google.api.Service +config_version: 3 +name: beyondcorp.googleapis.com +title: BeyondCorp API + +apis: +- name: google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.beyondcorp.clientgateways.v1.ClientGatewayOperationMetadata + +documentation: + summary: |- + Beyondcorp Enterprise provides identity and context aware access controls + for enterprise resources and enables zero-trust access. Using the + Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem + connectivity using the App Connector hybrid connectivity solution. + 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. + +backend: + rules: + - selector: 'google.cloud.beyondcorp.clientgateways.v1.ClientGatewaysService.*' + 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 + 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/*/appConnections/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/appConnectors/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/appGateways/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientGateways/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/appConnections/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/appConnectors/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/appGateways/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientConnectorServices/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientGateways/*}: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.beyondcorp.clientgateways.v1.ClientGatewaysService.*' + 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 diff --git a/google/cloud/beyondcorp/clientgateways/v1/client_gateways_service.proto b/google/cloud/beyondcorp/clientgateways/v1/client_gateways_service.proto new file mode 100644 index 000000000..089fc73dd --- /dev/null +++ b/google/cloud/beyondcorp/clientgateways/v1/client_gateways_service.proto @@ -0,0 +1,296 @@ +// 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.cloud.beyondcorp.clientgateways.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/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BeyondCorp.ClientGateways.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/beyondcorp/clientgateways/v1;clientgateways"; +option java_multiple_files = true; +option java_outer_classname = "ClientGatewaysServiceProto"; +option java_package = "com.google.cloud.beyondcorp.clientgateways.v1"; +option php_namespace = "Google\\Cloud\\BeyondCorp\\ClientGateways\\V1"; +option ruby_package = "Google::Cloud::BeyondCorp::ClientGateways::V1"; + +// ## API Overview +// +// The `beyondcorp.googleapis.com` service implements the Google Cloud +// BeyondCorp API. +// +// ## Data Model +// +// The ClientGatewaysService exposes the following resources: +// +// * Client Gateways, named as follows: +// `projects/{project_id}/locations/{location_id}/clientGateways/{client_gateway_id}`. +service ClientGatewaysService { + option (google.api.default_host) = "beyondcorp.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists ClientGateways in a given project and location. + rpc ListClientGateways(ListClientGatewaysRequest) + returns (ListClientGatewaysResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/clientGateways" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single ClientGateway. + rpc GetClientGateway(GetClientGatewayRequest) returns (ClientGateway) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/clientGateways/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new ClientGateway in a given project and location. + rpc CreateClientGateway(CreateClientGatewayRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/clientGateways" + body: "client_gateway" + }; + option (google.api.method_signature) = + "parent,client_gateway,client_gateway_id"; + option (google.longrunning.operation_info) = { + response_type: "ClientGateway" + metadata_type: "ClientGatewayOperationMetadata" + }; + } + + // Deletes a single ClientGateway. + rpc DeleteClientGateway(DeleteClientGatewayRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/clientGateways/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "ClientGatewayOperationMetadata" + }; + } +} + +// Message describing ClientGateway object. +message ClientGateway { + option (google.api.resource) = { + type: "beyondcorp.googleapis.com/ClientGateway" + pattern: "projects/{project}/locations/{location}/clientGateways/{client_gateway}" + }; + + // Represents the different states of a gateway. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Gateway is being created. + CREATING = 1; + + // Gateway is being updated. + UPDATING = 2; + + // Gateway is being deleted. + DELETING = 3; + + // Gateway is running. + RUNNING = 4; + + // Gateway is down and may be restored in the future. + // This happens when CCFE sends ProjectState = OFF. + DOWN = 5; + + // ClientGateway encountered an error and is in indeterministic state. + ERROR = 6; + } + + // Required. name of resource. The name is ignored during creation. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. [Output only] Create time stamp. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Output only] Update time stamp. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The operational state of the gateway. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A unique identifier for the instance generated by the system. + string id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The client connector service name that the client gateway is + // associated to. Client Connector Services, named as follows: + // `projects/{project_id}/locations/{location_id}/client_connector_services/{client_connector_service_id}`. + string client_connector_service = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message for requesting list of ClientGateways. +message ListClientGatewaysRequest { + // Required. Parent value for ListClientGatewaysRequest. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/ClientGateway" + } + ]; + + // 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 ClientGateways. +message ListClientGatewaysResponse { + // The list of ClientGateway. + repeated ClientGateway client_gateways = 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 ClientGateway. +message GetClientGatewayRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/ClientGateway" + } + ]; +} + +// Message for creating a ClientGateway. +message CreateClientGatewayRequest { + // Required. Value for parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "beyondcorp.googleapis.com/ClientGateway" + } + ]; + + // Optional. User-settable client gateway resource ID. + // * Must start with a letter. + // * Must contain between 4-63 characters from `/[a-z][0-9]-/`. + // * Must end with a number or a letter. + string client_gateway_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The resource being created. + ClientGateway client_gateway = 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 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_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for deleting a ClientGateway +message DeleteClientGatewayRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "beyondcorp.googleapis.com/ClientGateway" + } + ]; + + // 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 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 = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validates request by executing a dry-run which would not + // alter the resource in any way. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message ClientGatewayOperationMetadata { + // 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/google/cloud/bigquery/analyticshub/v1/BUILD.bazel b/google/cloud/bigquery/analyticshub/v1/BUILD.bazel new file mode 100644 index 000000000..62e8b1826 --- /dev/null +++ b/google/cloud/bigquery/analyticshub/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. + +# 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 = "analyticshub_proto", + srcs = [ + "analyticshub.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//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "analyticshub_proto_with_info", + deps = [ + ":analyticshub_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "analyticshub_java_proto", + deps = [":analyticshub_proto"], +) + +java_grpc_library( + name = "analyticshub_java_grpc", + srcs = [":analyticshub_proto"], + deps = [":analyticshub_java_proto"], +) + +java_gapic_library( + name = "analyticshub_java_gapic", + srcs = [":analyticshub_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "analyticshub_v1_grpc_service_config.json", + service_yaml = "analyticshub_v1.yaml", + test_deps = [ + ":analyticshub_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":analyticshub_java_proto", + "//google/api:api_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "analyticshub_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.bigquery.analyticshub.v1.AnalyticsHubServiceClientHttpJsonTest", + "com.google.cloud.bigquery.analyticshub.v1.AnalyticsHubServiceClientTest", + ], + runtime_deps = [":analyticshub_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-bigquery-analyticshub-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":analyticshub_java_gapic", + ":analyticshub_java_grpc", + ":analyticshub_java_proto", + ":analyticshub_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "analyticshub_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/bigquery/analyticshub/v1", + protos = [":analyticshub_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_gapic_library( + name = "analyticshub_go_gapic", + srcs = [":analyticshub_proto_with_info"], + grpc_service_config = "analyticshub_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/bigquery/analyticshub/apiv1;analyticshub", + metadata = True, + rest_numeric_enums = True, + service_yaml = "analyticshub_v1.yaml", + transport = "grpc+rest", + deps = [ + ":analyticshub_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_test( + name = "analyticshub_go_gapic_test", + srcs = [":analyticshub_go_gapic_srcjar_test"], + embed = [":analyticshub_go_gapic"], + importpath = "cloud.google.com/go/bigquery/analyticshub/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-bigquery-analyticshub-v1-go", + deps = [ + ":analyticshub_go_gapic", + ":analyticshub_go_gapic_srcjar-metadata.srcjar", + ":analyticshub_go_gapic_srcjar-test.srcjar", + ":analyticshub_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "analyticshub_py_gapic", + srcs = [":analyticshub_proto"], + grpc_service_config = "analyticshub_v1_grpc_service_config.json", + service_yaml = "analyticshub_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "analyticshub_py_gapic_test", + srcs = [ + "analyticshub_py_gapic_pytest.py", + "analyticshub_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":analyticshub_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "bigquery-analyticshub-v1-py", + deps = [ + ":analyticshub_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "analyticshub_php_proto", + deps = [":analyticshub_proto"], +) + +php_grpc_library( + name = "analyticshub_php_grpc", + srcs = [":analyticshub_proto"], + deps = [":analyticshub_php_proto"], +) + +php_gapic_library( + name = "analyticshub_php_gapic", + srcs = [":analyticshub_proto_with_info"], + grpc_service_config = "analyticshub_v1_grpc_service_config.json", + service_yaml = "analyticshub_v1.yaml", + deps = [ + ":analyticshub_php_grpc", + ":analyticshub_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-bigquery-analyticshub-v1-php", + deps = [ + ":analyticshub_php_gapic", + ":analyticshub_php_grpc", + ":analyticshub_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "analyticshub_nodejs_gapic", + package_name = "@google-cloud/bigquery-analyticshub", + src = ":analyticshub_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "analyticshub_v1_grpc_service_config.json", + package = "google.cloud.bigquery.analyticshub.v1", + service_yaml = "analyticshub_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "bigquery-analyticshub-v1-nodejs", + deps = [ + ":analyticshub_nodejs_gapic", + ":analyticshub_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 = "analyticshub_ruby_proto", + deps = [":analyticshub_proto"], +) + +ruby_grpc_library( + name = "analyticshub_ruby_grpc", + srcs = [":analyticshub_proto"], + deps = [":analyticshub_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "analyticshub_ruby_gapic", + srcs = [":analyticshub_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-bigquery-analyticshub-v1", + ], + grpc_service_config = "analyticshub_v1_grpc_service_config.json", + service_yaml = "analyticshub_v1.yaml", + deps = [ + ":analyticshub_ruby_grpc", + ":analyticshub_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-bigquery-analyticshub-v1-ruby", + deps = [ + ":analyticshub_ruby_gapic", + ":analyticshub_ruby_grpc", + ":analyticshub_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 = "analyticshub_csharp_proto", + deps = [":analyticshub_proto"], +) + +csharp_grpc_library( + name = "analyticshub_csharp_grpc", + srcs = [":analyticshub_proto"], + deps = [":analyticshub_csharp_proto"], +) + +csharp_gapic_library( + name = "analyticshub_csharp_gapic", + srcs = [":analyticshub_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "analyticshub_v1_grpc_service_config.json", + service_yaml = "analyticshub_v1.yaml", + deps = [ + ":analyticshub_csharp_grpc", + ":analyticshub_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-bigquery-analyticshub-v1-csharp", + deps = [ + ":analyticshub_csharp_gapic", + ":analyticshub_csharp_grpc", + ":analyticshub_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "analyticshub_cc_proto", + deps = [":analyticshub_proto"], +) + +cc_grpc_library( + name = "analyticshub_cc_grpc", + srcs = [":analyticshub_proto"], + grpc_only = True, + deps = [":analyticshub_cc_proto"], +) diff --git a/google/cloud/bigquery/analyticshub/v1/analyticshub.proto b/google/cloud/bigquery/analyticshub/v1/analyticshub.proto new file mode 100644 index 000000000..7adf65844 --- /dev/null +++ b/google/cloud/bigquery/analyticshub/v1/analyticshub.proto @@ -0,0 +1,651 @@ +// 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.cloud.bigquery.analyticshub.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.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"; +import "google/protobuf/wrappers.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.AnalyticsHub.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/analyticshub/v1;analyticshub"; +option java_multiple_files = true; +option java_outer_classname = "AnalyticsHubProto"; +option java_package = "com.google.cloud.bigquery.analyticshub.v1"; +option php_namespace = "Google\\Cloud\\BigQuery\\AnalyticsHub\\V1"; +option ruby_package = "Google::Cloud::Bigquery::AnalyticsHub::V1"; +option (google.api.resource_definition) = { + type: "bigquery.googleapis.com/Dataset" + pattern: "projects/{project}/datasets/{dataset}" +}; + +// The `AnalyticsHubService` API facilitates data sharing within and across +// organizations. It allows data providers to publish listings that reference +// shared datasets. With Analytics Hub, users can discover and search for +// listings that they have access to. Subscribers can view and subscribe to +// listings. When you subscribe to a listing, Analytics Hub creates a linked +// dataset in your project. +service AnalyticsHubService { + option (google.api.default_host) = "analyticshub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists all data exchanges in a given project and location. + rpc ListDataExchanges(ListDataExchangesRequest) returns (ListDataExchangesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/dataExchanges" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists all data exchanges from projects in a given organization and + // location. + rpc ListOrgDataExchanges(ListOrgDataExchangesRequest) returns (ListOrgDataExchangesResponse) { + option (google.api.http) = { + get: "/v1/{organization=organizations/*/locations/*}/dataExchanges" + }; + option (google.api.method_signature) = "organization"; + } + + // Gets the details of a data exchange. + rpc GetDataExchange(GetDataExchangeRequest) returns (DataExchange) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dataExchanges/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new data exchange. + rpc CreateDataExchange(CreateDataExchangeRequest) returns (DataExchange) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/dataExchanges" + body: "data_exchange" + }; + option (google.api.method_signature) = "parent,data_exchange"; + } + + // Updates an existing data exchange. + rpc UpdateDataExchange(UpdateDataExchangeRequest) returns (DataExchange) { + option (google.api.http) = { + patch: "/v1/{data_exchange.name=projects/*/locations/*/dataExchanges/*}" + body: "data_exchange" + }; + option (google.api.method_signature) = "data_exchange,update_mask"; + } + + // Deletes an existing data exchange. + rpc DeleteDataExchange(DeleteDataExchangeRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/dataExchanges/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all listings in a given project and location. + rpc ListListings(ListListingsRequest) returns (ListListingsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/dataExchanges/*}/listings" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the details of a listing. + rpc GetListing(GetListingRequest) returns (Listing) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dataExchanges/*/listings/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new listing. + rpc CreateListing(CreateListingRequest) returns (Listing) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/dataExchanges/*}/listings" + body: "listing" + }; + option (google.api.method_signature) = "parent,listing"; + } + + // Updates an existing listing. + rpc UpdateListing(UpdateListingRequest) returns (Listing) { + option (google.api.http) = { + patch: "/v1/{listing.name=projects/*/locations/*/dataExchanges/*/listings/*}" + body: "listing" + }; + option (google.api.method_signature) = "listing,update_mask"; + } + + // Deletes a listing. + rpc DeleteListing(DeleteListingRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/dataExchanges/*/listings/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Subscribes to a listing. + // + // Currently, with Analytics Hub, you can create listings that + // reference only BigQuery datasets. + // Upon subscription to a listing for a BigQuery dataset, Analytics Hub + // creates a linked dataset in the subscriber's project. + rpc SubscribeListing(SubscribeListingRequest) returns (SubscribeListingResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/dataExchanges/*/listings/*}:subscribe" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Gets the IAM policy. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1/{resource=projects/*/locations/*/dataExchanges/*}:getIamPolicy" + body: "*" + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:getIamPolicy" + body: "*" + } + }; + } + + // Sets the IAM policy. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1/{resource=projects/*/locations/*/dataExchanges/*}:setIamPolicy" + body: "*" + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:setIamPolicy" + body: "*" + } + }; + } + + // Returns the permissions that a caller has. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v1/{resource=projects/*/locations/*/dataExchanges/*}:testIamPermissions" + body: "*" + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:testIamPermissions" + body: "*" + } + }; + } +} + +// 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. +message DataExchange { + option (google.api.resource) = { + type: "analyticshub.googleapis.com/DataExchange" + pattern: "projects/{project}/locations/{location}/dataExchanges/{data_exchange}" + }; + + // Output only. The resource name of the data exchange. + // e.g. `projects/myproject/locations/US/dataExchanges/123`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Human-readable display name of the data exchange. The display name must + // contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), + // spaces ( ), ampersands (&) and must not start or end with spaces. + // Default value is an empty string. + // Max length: 63 bytes. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Description of the data exchange. The description must not contain Unicode + // non-characters as well as C0 and C1 control codes except tabs (HT), + // new lines (LF), carriage returns (CR), and page breaks (FF). + // Default value is an empty string. + // Max length: 2000 bytes. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the primary point of contact of the data exchange. + // Max Length: 1000 bytes. + string primary_contact = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Documentation describing the data exchange. + string documentation = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Number of listings contained in the data exchange. + int32 listing_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Base64 encoded image representing the data exchange. Max Size: 3.0MiB + // Expected image dimensions are 512x512 pixels, however the API only + // performs validation on size of the encoded data. + // Note: For byte fields, the content of the fields are base64-encoded (which + // increases the size of the data by 33-36%) when using JSON on the wire. + bytes icon = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Contains details of the data provider. +message DataProvider { + // Optional. Name of the data provider. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the data provider. + // Max Length: 1000 bytes. + string primary_contact = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Contains details of the listing publisher. +message Publisher { + // Optional. Name of the listing publisher. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the listing publisher. + // Max Length: 1000 bytes. + string primary_contact = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Contains the reference that identifies a destination bigquery dataset. +message DestinationDatasetReference { + // 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]; + + // Required. The ID of the project containing this dataset. + string project_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Defines the destination bigquery dataset. +message DestinationDataset { + // Required. A reference that identifies the destination dataset. + DestinationDatasetReference dataset_reference = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A descriptive name for the dataset. + google.protobuf.StringValue friendly_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A user-friendly description of the dataset. + google.protobuf.StringValue description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 https://cloud.google.com/resource-manager/docs/creating-managing-labels + // for more information. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The geographic location where the dataset should reside. See + // https://cloud.google.com/bigquery/docs/locations for supported + // locations. + string location = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// A listing is what gets published into a data exchange that a subscriber can +// subscribe to. It contains a reference to the data source along with +// descriptive information that will help subscribers find and subscribe the +// data. +message Listing { + option (google.api.resource) = { + type: "analyticshub.googleapis.com/Listing" + pattern: "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}" + }; + + // A reference to a shared dataset. It is an existing BigQuery dataset with a + // collection of objects such as tables and views that you want to share + // with subscribers. + // When subscriber's subscribe to a listing, Analytics Hub creates a linked + // dataset in + // 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 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" + }]; + } + + // State of the listing. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Subscribable state. Users with dataexchange.listings.subscribe permission + // can subscribe to this listing. + ACTIVE = 1; + } + + // Listing categories. + enum Category { + CATEGORY_UNSPECIFIED = 0; + + CATEGORY_OTHERS = 1; + + CATEGORY_ADVERTISING_AND_MARKETING = 2; + + CATEGORY_COMMERCE = 3; + + CATEGORY_CLIMATE_AND_ENVIRONMENT = 4; + + CATEGORY_DEMOGRAPHICS = 5; + + CATEGORY_ECONOMICS = 6; + + CATEGORY_EDUCATION = 7; + + CATEGORY_ENERGY = 8; + + CATEGORY_FINANCIAL = 9; + + CATEGORY_GAMING = 10; + + CATEGORY_GEOSPATIAL = 11; + + CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE = 12; + + CATEGORY_MEDIA = 13; + + CATEGORY_PUBLIC_SECTOR = 14; + + CATEGORY_RETAIL = 15; + + CATEGORY_SPORTS = 16; + + CATEGORY_SCIENCE_AND_RESEARCH = 17; + + CATEGORY_TRANSPORTATION_AND_LOGISTICS = 18; + + CATEGORY_TRAVEL_AND_TOURISM = 19; + } + + // Listing source. + oneof source { + // Required. Shared dataset i.e. BigQuery dataset source. + BigQueryDatasetSource bigquery_dataset = 6 [(google.api.field_behavior) = REQUIRED]; + } + + // Output only. The resource name of the listing. + // e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Human-readable display name of the listing. The display name must contain + // only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces + // ( ), ampersands (&) and can't start or end with spaces. + // Default value is an empty string. + // Max length: 63 bytes. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Short description of the listing. The description must not contain + // Unicode non-characters and C0 and C1 control codes except tabs (HT), + // new lines (LF), carriage returns (CR), and page breaks (FF). + // Default value is an empty string. + // Max length: 2000 bytes. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the primary point of contact of the listing. + // Max Length: 1000 bytes. + string primary_contact = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Documentation describing the listing. + string documentation = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Current state of the listing. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Base64 encoded image representing the listing. Max Size: 3.0MiB + // Expected image dimensions are 512x512 pixels, however the API only + // performs validation on size of the encoded data. + // Note: For byte fields, the contents of the field are base64-encoded (which + // increases the size of the data by 33-36%) when using JSON on the wire. + bytes icon = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Details of the data provider who owns the source data. + DataProvider data_provider = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Categories of the listing. Up to two categories are allowed. + repeated Category categories = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Details of the publisher who owns the listing and who can share + // the source data. + Publisher publisher = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the request access of the listing. + // Subscribers can use this reference to request access. + // Max Length: 1000 bytes. + string request_access = 12 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for requesting the list of data exchanges. +message ListDataExchangesRequest { + // Required. The parent resource path of the data exchanges. + // e.g. `projects/myproject/locations/US`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // 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 = 2; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 3; +} + +// Message for response to the list of data exchanges. +message ListDataExchangesResponse { + // The list of data exchanges. + repeated DataExchange data_exchanges = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} + +// Message for requesting the list of data exchanges from projects in an +// organization and location. +message ListOrgDataExchangesRequest { + // Required. The organization resource path of the projects containing DataExchanges. + // e.g. `organizations/myorg/locations/US`. + string organization = 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. + int32 page_size = 2; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 3; +} + +// Message for response to listing data exchanges in an organization and +// location. +message ListOrgDataExchangesResponse { + // The list of data exchanges. + repeated DataExchange data_exchanges = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} + +// Message for getting a data exchange. +message GetDataExchangeRequest { + // Required. The resource name of the data exchange. + // e.g. `projects/myproject/locations/US/dataExchanges/123`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/DataExchange" + } + ]; +} + +// Message for creating a data exchange. +message CreateDataExchangeRequest { + // Required. The parent resource path of the data exchange. + // e.g. `projects/myproject/locations/US`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The ID of the data exchange. + // Must contain only Unicode letters, numbers (0-9), underscores (_). + // Should not use characters that require URL-escaping, or characters + // outside of ASCII, spaces. + // Max length: 100 bytes. + string data_exchange_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The data exchange to create. + DataExchange data_exchange = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for updating a data exchange. +message UpdateDataExchangeRequest { + // Required. Field mask specifies the fields to update in the data exchange + // resource. The fields specified in the + // `updateMask` are relative to the resource and are not a full request. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The data exchange to update. + DataExchange data_exchange = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for deleting a data exchange. +message DeleteDataExchangeRequest { + // Required. The full name of the data exchange resource that you want to delete. + // For example, `projects/myproject/locations/US/dataExchanges/123`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/DataExchange" + } + ]; +} + +// Message for requesting the list of listings. +message ListListingsRequest { + // Required. The parent resource path of the listing. + // e.g. `projects/myproject/locations/US/dataExchanges/123`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/DataExchange" + } + ]; + + // 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 = 2; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 3; +} + +// Message for response to the list of Listings. +message ListListingsResponse { + // The list of Listing. + repeated Listing listings = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} + +// Message for getting a listing. +message GetListingRequest { + // Required. The resource name of the listing. + // e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/Listing" + } + ]; +} + +// Message for creating a listing. +message CreateListingRequest { + // Required. The parent resource path of the listing. + // e.g. `projects/myproject/locations/US/dataExchanges/123`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/DataExchange" + } + ]; + + // Required. The ID of the listing to create. + // Must contain only Unicode letters, numbers (0-9), underscores (_). + // Should not use characters that require URL-escaping, or characters + // outside of ASCII, spaces. + // Max length: 100 bytes. + string listing_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The listing to create. + Listing listing = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for updating a Listing. +message UpdateListingRequest { + // Required. Field mask specifies the fields to update in the listing resource. The + // fields specified in the `updateMask` are relative to the resource and are + // not a full request. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The listing to update. + Listing listing = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for deleting a listing. +message DeleteListingRequest { + // Required. Resource name of the listing to delete. + // e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/Listing" + } + ]; +} + +// Message for subscribing to a listing. +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; + } + + // Required. Resource name of the listing that you want to subscribe to. + // e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/Listing" + } + ]; +} + +// Message for response when you subscribe to a listing. +message SubscribeListingResponse { + +} diff --git a/google/cloud/bigquery/analyticshub/v1/analyticshub_v1.yaml b/google/cloud/bigquery/analyticshub/v1/analyticshub_v1.yaml new file mode 100644 index 000000000..2b54e1e21 --- /dev/null +++ b/google/cloud/bigquery/analyticshub/v1/analyticshub_v1.yaml @@ -0,0 +1,23 @@ +type: google.api.Service +config_version: 3 +name: analyticshub.googleapis.com +title: Analytics Hub API + +apis: +- name: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService + +documentation: + summary: Exchange data and analytics assets securely and efficiently. + +backend: + rules: + - selector: 'google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.*' + deadline: 60.0 + +authentication: + rules: + - selector: 'google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/bigquery/analyticshub/v1/analyticshub_v1_grpc_service_config.json b/google/cloud/bigquery/analyticshub/v1/analyticshub_v1_grpc_service_config.json new file mode 100644 index 000000000..01f68a4df --- /dev/null +++ b/google/cloud/bigquery/analyticshub/v1/analyticshub_v1_grpc_service_config.json @@ -0,0 +1,22 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ] + } + } + ] +} diff --git a/google/cloud/bigquery/bigquery_v2.yaml b/google/cloud/bigquery/bigquery_v2.yaml deleted file mode 100644 index 75c9634a7..000000000 --- a/google/cloud/bigquery/bigquery_v2.yaml +++ /dev/null @@ -1,37 +0,0 @@ -type: google.api.Service -config_version: 2 -name: bigquery.googleapis.com -title: BigQuery API - -apis: -- name: google.cloud.bigquery.v2.ModelService - -documentation: - summary: 'A data platform for customers to create, manage, share and query data.' - -authentication: - rules: - - 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/bigquery.readonly, - 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/bigquery.readonly, - 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 diff --git a/google/cloud/bigquery/connection/v1/BUILD.bazel b/google/cloud/bigquery/connection/v1/BUILD.bazel index 4fab2a6f8..0172b2d06 100644 --- a/google/cloud/bigquery/connection/v1/BUILD.bazel +++ b/google/cloud/bigquery/connection/v1/BUILD.bazel @@ -67,6 +67,7 @@ java_gapic_library( ":connection_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":connection_java_proto", "//google/iam/v1:iam_java_proto", @@ -76,6 +77,7 @@ java_gapic_library( java_gapic_test( name = "connection_java_gapic_test_suite", test_classes = [ + "com.google.cloud.bigqueryconnection.v1.ConnectionServiceClientHttpJsonTest", "com.google.cloud.bigqueryconnection.v1.ConnectionServiceClientTest", ], runtime_deps = [":connection_java_gapic_test"], @@ -84,6 +86,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigquery-connection-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":connection_java_gapic", ":connection_java_grpc", @@ -120,6 +124,7 @@ go_gapic_library( grpc_service_config = "bigqueryconnection_grpc_service_config.json", importpath = "cloud.google.com/go/bigquery/connection/apiv1;connection", service_yaml = "bigqueryconnection_v1.yaml", + transport = "grpc+rest", deps = [ ":connection_go_proto", "//google/iam/v1:iam_go_proto", @@ -150,6 +155,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -160,6 +166,20 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=bigquery_connection", ], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "connection_py_gapic_test", + srcs = [ + "connection_py_gapic_pytest.py", + "connection_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":connection_py_gapic"], ) # Open Source Packages @@ -319,6 +339,7 @@ csharp_gapic_library( srcs = [":connection_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigqueryconnection_grpc_service_config.json", + service_yaml = "bigqueryconnection_v1.yaml", deps = [ ":connection_csharp_grpc", ":connection_csharp_proto", diff --git a/google/cloud/bigquery/connection/v1/connection.proto b/google/cloud/bigquery/connection/v1/connection.proto index 697b0b8f3..ee0dba14a 100644 --- a/google/cloud/bigquery/connection/v1/connection.proto +++ b/google/cloud/bigquery/connection/v1/connection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -24,7 +24,6 @@ import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; -import "google/protobuf/wrappers.proto"; option csharp_namespace = "Google.Cloud.BigQuery.Connection.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/connection/v1;connection"; @@ -234,8 +233,14 @@ message Connection { // Amazon Web Services (AWS) properties. AwsProperties aws = 8; + // Azure properties. + AzureProperties azure = 11; + // Cloud Spanner properties. CloudSpannerProperties cloud_spanner = 21; + + // Cloud Resource properties. + CloudResourceProperties cloud_resource = 22; } // Output only. The creation timestamp of the connection. @@ -273,6 +278,13 @@ message CloudSqlProperties { // Input only. Cloud SQL credential. CloudSqlCredential credential = 4 [(google.api.field_behavior) = INPUT_ONLY]; + + // Output only. The account ID of the service used for the purpose of this connection. + // + // When the connection is used in the context of an operation in + // BigQuery, this service account will serve as identity being used for + // connecting to the CloudSQL instance specified in this connection. + string service_account_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Credential info for the Cloud SQL. @@ -299,7 +311,8 @@ message AwsProperties { oneof authentication_method { // Authentication using Google owned AWS IAM user's access key to assume // into customer's AWS IAM Role. - AwsCrossAccountRole cross_account_role = 2; + // Deprecated, do not use. + AwsCrossAccountRole cross_account_role = 2 [deprecated = true]; // Authentication using Google owned service account to assume into // customer's AWS IAM Role. @@ -334,3 +347,47 @@ message AwsAccessRole { // This identity will be used to access the user's AWS IAM Role. string identity = 2; } + +// Container for connection properties specific to Azure. +message AzureProperties { + // Output only. The name of the Azure Active Directory Application. + string application = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The client id of the Azure Active Directory Application. + string client_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The object id of the Azure Active Directory Application. + string object_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The id of customer's directory that host the data. + string customer_tenant_id = 4; + + // The URL user will be redirected to after granting consent during connection + // setup. + string redirect_uri = 5; + + // The client id of the user's Azure Active Directory Application used for a + // federated connection. + string federated_application_client_id = 6; + + // Output only. A unique Google-owned and Google-generated identity for the Connection. + // This identity will be used to access the user's Azure Active Directory + // Application. + string identity = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Container for connection properties for delegation of access to GCP +// resources. +message CloudResourceProperties { + // Output only. The account ID of the service created for the purpose of this connection. + // + // The service account does not have any permissions associated with it + // when it is created. After creation, customers delegate permissions + // to the service account. When the connection is used in the context of an + // operation in BigQuery, the service account will be used to connect to the + // desired resources in GCP. + // + // The account ID is in the form of: + // @gcp-sa-bigquery-cloudresource.iam.gserviceaccount.com + string service_account_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/bigquery/connection/v1beta1/BUILD.bazel b/google/cloud/bigquery/connection/v1beta1/BUILD.bazel index 0eb9726b6..223595fac 100644 --- a/google/cloud/bigquery/connection/v1beta1/BUILD.bazel +++ b/google/cloud/bigquery/connection/v1beta1/BUILD.bazel @@ -66,6 +66,7 @@ java_gapic_library( ":connection_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":connection_java_proto", "//google/iam/v1:iam_java_proto", @@ -75,6 +76,7 @@ java_gapic_library( java_gapic_test( name = "connection_java_gapic_test_suite", test_classes = [ + "com.google.cloud.bigquery.connection.v1beta1.ConnectionServiceClientHttpJsonTest", "com.google.cloud.bigquery.connection.v1beta1.ConnectionServiceClientTest", ], runtime_deps = [":connection_java_gapic_test"], @@ -83,6 +85,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigquery-connection-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":connection_java_gapic", ":connection_java_grpc", @@ -119,6 +123,7 @@ go_gapic_library( grpc_service_config = "bigqueryconnection_grpc_service_config.json", importpath = "cloud.google.com/go/bigquery/connection/apiv1beta1;connection", service_yaml = "bigqueryconnection_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":connection_go_proto", "//google/iam/v1:iam_go_proto", @@ -155,6 +160,20 @@ py_gapic_library( name = "connection_py_gapic", srcs = [":connection_proto"], grpc_service_config = "bigqueryconnection_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "connection_py_gapic_test", + srcs = [ + "connection_py_gapic_pytest.py", + "connection_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":connection_py_gapic"], ) # Open Source Packages @@ -239,8 +258,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -258,7 +277,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "connection_ruby_gapic", - srcs = [":connection_proto_with_info",], + srcs = [":connection_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-connection-v1beta1"], deps = [ ":connection_ruby_grpc", @@ -303,6 +322,7 @@ csharp_gapic_library( srcs = [":connection_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigqueryconnection_grpc_service_config.json", + service_yaml = "bigqueryconnection_v1beta1.yaml", deps = [ ":connection_csharp_grpc", ":connection_csharp_proto", diff --git a/google/cloud/bigquery/connection/v1beta1/connection.proto b/google/cloud/bigquery/connection/v1beta1/connection.proto index e70f6f39e..eda714db7 100644 --- a/google/cloud/bigquery/connection/v1beta1/connection.proto +++ b/google/cloud/bigquery/connection/v1beta1/connection.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -105,7 +105,7 @@ service ConnectionService { // Sets the access control policy on the specified resource. Replaces any // existing policy. // - // Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and PERMISSION_DENIED + // Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors. rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { option (google.api.http) = { post: "/v1beta1/{resource=projects/*/locations/*/connections/*}:setIamPolicy" @@ -116,7 +116,7 @@ service ConnectionService { // 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. + // 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 @@ -295,6 +295,13 @@ message CloudSqlProperties { // Input only. Cloud SQL credential. CloudSqlCredential credential = 4 [(google.api.field_behavior) = INPUT_ONLY]; + + // Output only. The account ID of the service used for the purpose of this connection. + // + // When the connection is used in the context of an operation in + // BigQuery, this service account will serve as identity being used for + // connecting to the CloudSQL instance specified in this connection. + string service_account_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Credential info for the Cloud SQL. diff --git a/google/cloud/bigquery/dataexchange/BUILD.bazel b/google/cloud/bigquery/dataexchange/BUILD.bazel new file mode 100644 index 000000000..c2457cb72 --- /dev/null +++ b/google/cloud/bigquery/dataexchange/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-bigquery-data_exchange. + +# 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 analyticshub. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta1 in this case. +ruby_cloud_gapic_library( + name = "dataexchange_ruby_wrapper", + srcs = ["//google/cloud/bigquery/dataexchange/v1beta1:dataexchange_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=analyticshub.googleapis.com", + "ruby-cloud-api-shortname=analyticshub", + "ruby-cloud-gem-name=google-cloud-bigquery-data_exchange", + "ruby-cloud-product-url=https://cloud.google.com/analytics-hub/", + "ruby-cloud-wrapper-of=v1beta1:0.0", + ], + ruby_cloud_description = "Analytics Hub is a data exchange that allows you to efficiently and securely exchange data assets across organizations to address challenges of data reliability and cost. Curate a library of internal and external assets, including unique datasets like Google Trends, backed by the power of BigQuery.", + ruby_cloud_title = "Analytics Hub", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-dataexchange-ruby", + deps = [ + ":dataexchange_ruby_wrapper", + ], +) diff --git a/google/cloud/bigquery/dataexchange/v1beta1/BUILD.bazel b/google/cloud/bigquery/dataexchange/v1beta1/BUILD.bazel new file mode 100644 index 000000000..740422983 --- /dev/null +++ b/google/cloud/bigquery/dataexchange/v1beta1/BUILD.bazel @@ -0,0 +1,397 @@ +# 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 = "dataexchange_proto", + srcs = [ + "dataexchange.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//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "dataexchange_proto_with_info", + deps = [ + ":dataexchange_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "dataexchange_java_proto", + deps = [":dataexchange_proto"], +) + +java_grpc_library( + name = "dataexchange_java_grpc", + srcs = [":dataexchange_proto"], + deps = [":dataexchange_java_proto"], +) + +java_gapic_library( + name = "dataexchange_java_gapic", + srcs = [":dataexchange_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "analyticshub_v1beta1_grpc_service_config.json", + service_yaml = "analyticshub_v1beta1.yaml", + test_deps = [ + ":dataexchange_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":dataexchange_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "dataexchange_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubServiceClientHttpJsonTest", + "com.google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubServiceClientTest", + ], + runtime_deps = [":dataexchange_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-bigquery-dataexchange-v1beta1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":dataexchange_java_gapic", + ":dataexchange_java_grpc", + ":dataexchange_java_proto", + ":dataexchange_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "dataexchange_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/bigquery/dataexchange/v1beta1", + protos = [":dataexchange_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_gapic_library( + name = "dataexchange_go_gapic", + srcs = [":dataexchange_proto_with_info"], + grpc_service_config = "analyticshub_v1beta1_grpc_service_config.json", + importpath = "cloud.google.com/go/bigquery/dataexchange/apiv1beta1;dataexchange", + metadata = True, + service_yaml = "analyticshub_v1beta1.yaml", + transport = "grpc+rest", + deps = [ + ":dataexchange_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_test( + name = "dataexchange_go_gapic_test", + srcs = [":dataexchange_go_gapic_srcjar_test"], + embed = [":dataexchange_go_gapic"], + importpath = "cloud.google.com/go/bigquery/dataexchange/apiv1beta1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-bigquery-dataexchange-v1beta1-go", + deps = [ + ":dataexchange_go_gapic", + ":dataexchange_go_gapic_srcjar-metadata.srcjar", + ":dataexchange_go_gapic_srcjar-test.srcjar", + ":dataexchange_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "dataexchange_py_gapic", + srcs = [":dataexchange_proto"], + grpc_service_config = "analyticshub_v1beta1_grpc_service_config.json", + opt_args = [ + "python-gapic-name=bigquery_data_exchange", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-bigquery-data-exchange", + ], + service_yaml = "analyticshub_v1beta1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "dataexchange_py_gapic_test", + srcs = [ + "dataexchange_py_gapic_pytest.py", + "dataexchange_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dataexchange_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "bigquery-dataexchange-v1beta1-py", + deps = [ + ":dataexchange_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "dataexchange_php_proto", + deps = [":dataexchange_proto"], +) + +php_grpc_library( + name = "dataexchange_php_grpc", + srcs = [":dataexchange_proto"], + deps = [":dataexchange_php_proto"], +) + +php_gapic_library( + name = "dataexchange_php_gapic", + srcs = [":dataexchange_proto_with_info"], + grpc_service_config = "analyticshub_v1beta1_grpc_service_config.json", + service_yaml = "analyticshub_v1beta1.yaml", + deps = [ + ":dataexchange_php_grpc", + ":dataexchange_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-bigquery-dataexchange-v1beta1-php", + deps = [ + ":dataexchange_php_gapic", + ":dataexchange_php_grpc", + ":dataexchange_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "dataexchange_nodejs_gapic", + package_name = "@google-cloud/bigquery-data-exchange", + src = ":dataexchange_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "analyticshub_v1beta1_grpc_service_config.json", + package = "google.cloud.bigquery.dataexchange.v1beta1", + service_yaml = "analyticshub_v1beta1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "bigquery-dataexchange-v1beta1-nodejs", + deps = [ + ":dataexchange_nodejs_gapic", + ":dataexchange_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 = "dataexchange_ruby_proto", + deps = [":dataexchange_proto"], +) + +ruby_grpc_library( + name = "dataexchange_ruby_grpc", + srcs = [":dataexchange_proto"], + deps = [":dataexchange_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "dataexchange_ruby_gapic", + srcs = [":dataexchange_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=analyticshub.googleapis.com", + "ruby-cloud-api-shortname=analyticshub", + "ruby-cloud-gem-name=google-cloud-bigquery-data_exchange-v1beta1", + "ruby-cloud-product-url=https://cloud.google.com/analytics-hub/", + ], + grpc_service_config = "analyticshub_v1beta1_grpc_service_config.json", + ruby_cloud_description = "Analytics Hub is a data exchange that allows you to efficiently and securely exchange data assets across organizations to address challenges of data reliability and cost. Curate a library of internal and external assets, including unique datasets like Google Trends, backed by the power of BigQuery.", + ruby_cloud_title = "Analytics Hub V1beta1", + service_yaml = "analyticshub_v1beta1.yaml", + deps = [ + ":dataexchange_ruby_grpc", + ":dataexchange_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-bigquery-dataexchange-v1beta1-ruby", + deps = [ + ":dataexchange_ruby_gapic", + ":dataexchange_ruby_grpc", + ":dataexchange_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 = "dataexchange_csharp_proto", + deps = [":dataexchange_proto"], +) + +csharp_grpc_library( + name = "dataexchange_csharp_grpc", + srcs = [":dataexchange_proto"], + deps = [":dataexchange_csharp_proto"], +) + +csharp_gapic_library( + name = "dataexchange_csharp_gapic", + srcs = [":dataexchange_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "analyticshub_v1beta1_grpc_service_config.json", + service_yaml = "analyticshub_v1beta1.yaml", + deps = [ + ":dataexchange_csharp_grpc", + ":dataexchange_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-bigquery-dataexchange-v1beta1-csharp", + deps = [ + ":dataexchange_csharp_gapic", + ":dataexchange_csharp_grpc", + ":dataexchange_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "dataexchange_cc_proto", + deps = [":dataexchange_proto"], +) + +cc_grpc_library( + name = "dataexchange_cc_grpc", + srcs = [":dataexchange_proto"], + grpc_only = True, + deps = [":dataexchange_cc_proto"], +) diff --git a/google/cloud/bigquery/dataexchange/v1beta1/analyticshub_v1beta1.yaml b/google/cloud/bigquery/dataexchange/v1beta1/analyticshub_v1beta1.yaml new file mode 100644 index 000000000..a9c653f19 --- /dev/null +++ b/google/cloud/bigquery/dataexchange/v1beta1/analyticshub_v1beta1.yaml @@ -0,0 +1,51 @@ +type: google.api.Service +config_version: 3 +name: analyticshub.googleapis.com +title: Analytics Hub API + +apis: +- name: google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService +- name: google.cloud.location.Locations + +documentation: + summary: Exchange data and analytics assets securely and efficiently. + 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. + +backend: + rules: + - selector: 'google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.*' + deadline: 60.0 + - selector: google.cloud.location.Locations.GetLocation + deadline: 60.0 + - selector: google.cloud.location.Locations.ListLocations + deadline: 60.0 + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1beta1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1beta1/{name=projects/*}/locations' + +authentication: + rules: + - selector: 'google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/bigquery/dataexchange/v1beta1/analyticshub_v1beta1_grpc_service_config.json b/google/cloud/bigquery/dataexchange/v1beta1/analyticshub_v1beta1_grpc_service_config.json new file mode 100644 index 000000000..dc41a5463 --- /dev/null +++ b/google/cloud/bigquery/dataexchange/v1beta1/analyticshub_v1beta1_grpc_service_config.json @@ -0,0 +1,22 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.bigquery.dataexchange.v1beta1.AnalyticsHubService" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ] + } + } + ] +} diff --git a/google/cloud/bigquery/dataexchange/v1beta1/dataexchange.proto b/google/cloud/bigquery/dataexchange/v1beta1/dataexchange.proto new file mode 100644 index 000000000..f18a0e49e --- /dev/null +++ b/google/cloud/bigquery/dataexchange/v1beta1/dataexchange.proto @@ -0,0 +1,651 @@ +// 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.cloud.bigquery.dataexchange.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.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"; +import "google/protobuf/wrappers.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.DataExchange.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/dataexchange/v1beta1;dataexchange"; +option java_multiple_files = true; +option java_outer_classname = "DataExchangeProto"; +option java_package = "com.google.cloud.bigquery.dataexchange.v1beta1"; +option php_namespace = "Google\\Cloud\\BigQuery\\DataExchange\\V1beta1"; +option ruby_package = "Google::Cloud::Bigquery::DataExchange::V1beta1"; +option (google.api.resource_definition) = { + type: "bigquery.googleapis.com/Dataset" + pattern: "projects/{project}/datasets/{dataset}" +}; + +// The `AnalyticsHubService` API facilitates data sharing within and across +// organizations. It allows data providers to publish listings that reference +// shared datasets. With Analytics Hub, users can discover and search for +// listings that they have access to. Subscribers can view and subscribe to +// listings. When you subscribe to a listing, Analytics Hub creates a linked +// dataset in your project. +service AnalyticsHubService { + option (google.api.default_host) = "analyticshub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists all data exchanges in a given project and location. + rpc ListDataExchanges(ListDataExchangesRequest) returns (ListDataExchangesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/dataExchanges" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists all data exchanges from projects in a given organization and + // location. + rpc ListOrgDataExchanges(ListOrgDataExchangesRequest) returns (ListOrgDataExchangesResponse) { + option (google.api.http) = { + get: "/v1beta1/{organization=organizations/*/locations/*}/dataExchanges" + }; + option (google.api.method_signature) = "organization"; + } + + // Gets the details of a data exchange. + rpc GetDataExchange(GetDataExchangeRequest) returns (DataExchange) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/dataExchanges/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new data exchange. + rpc CreateDataExchange(CreateDataExchangeRequest) returns (DataExchange) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/dataExchanges" + body: "data_exchange" + }; + option (google.api.method_signature) = "parent,data_exchange"; + } + + // Updates an existing data exchange. + rpc UpdateDataExchange(UpdateDataExchangeRequest) returns (DataExchange) { + option (google.api.http) = { + patch: "/v1beta1/{data_exchange.name=projects/*/locations/*/dataExchanges/*}" + body: "data_exchange" + }; + option (google.api.method_signature) = "data_exchange,update_mask"; + } + + // Deletes an existing data exchange. + rpc DeleteDataExchange(DeleteDataExchangeRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/dataExchanges/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all listings in a given project and location. + rpc ListListings(ListListingsRequest) returns (ListListingsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/dataExchanges/*}/listings" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the details of a listing. + rpc GetListing(GetListingRequest) returns (Listing) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/dataExchanges/*/listings/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new listing. + rpc CreateListing(CreateListingRequest) returns (Listing) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/dataExchanges/*}/listings" + body: "listing" + }; + option (google.api.method_signature) = "parent,listing"; + } + + // Updates an existing listing. + rpc UpdateListing(UpdateListingRequest) returns (Listing) { + option (google.api.http) = { + patch: "/v1beta1/{listing.name=projects/*/locations/*/dataExchanges/*/listings/*}" + body: "listing" + }; + option (google.api.method_signature) = "listing,update_mask"; + } + + // Deletes a listing. + rpc DeleteListing(DeleteListingRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/dataExchanges/*/listings/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Subscribes to a listing. + // + // Currently, with Analytics Hub, you can create listings that + // reference only BigQuery datasets. + // Upon subscription to a listing for a BigQuery dataset, Analytics Hub + // creates a linked dataset in the subscriber's project. + rpc SubscribeListing(SubscribeListingRequest) returns (SubscribeListingResponse) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/dataExchanges/*/listings/*}:subscribe" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Gets the IAM policy. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*}:getIamPolicy" + body: "*" + additional_bindings { + post: "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:getIamPolicy" + body: "*" + } + }; + } + + // Sets the IAM policy. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*}:setIamPolicy" + body: "*" + additional_bindings { + post: "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:setIamPolicy" + body: "*" + } + }; + } + + // Returns the permissions that a caller has. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*}:testIamPermissions" + body: "*" + additional_bindings { + post: "/v1beta1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:testIamPermissions" + body: "*" + } + }; + } +} + +// 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. +message DataExchange { + option (google.api.resource) = { + type: "analyticshub.googleapis.com/DataExchange" + pattern: "projects/{project}/locations/{location}/dataExchanges/{data_exchange}" + }; + + // Output only. The resource name of the data exchange. + // e.g. `projects/myproject/locations/US/dataExchanges/123`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Human-readable display name of the data exchange. The display name must + // contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), + // spaces ( ), ampersands (&) and must not start or end with spaces. + // Default value is an empty string. + // Max length: 63 bytes. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Description of the data exchange. The description must not contain Unicode + // non-characters as well as C0 and C1 control codes except tabs (HT), + // new lines (LF), carriage returns (CR), and page breaks (FF). + // Default value is an empty string. + // Max length: 2000 bytes. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the primary point of contact of the data exchange. + // Max Length: 1000 bytes. + string primary_contact = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Documentation describing the data exchange. + string documentation = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Number of listings contained in the data exchange. + int32 listing_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Base64 encoded image representing the data exchange. Max Size: 3.0MiB + // Expected image dimensions are 512x512 pixels, however the API only + // performs validation on size of the encoded data. + // Note: For byte fields, the content of the fields are base64-encoded (which + // increases the size of the data by 33-36%) when using JSON on the wire. + bytes icon = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Contains details of the data provider. +message DataProvider { + // Optional. Name of the data provider. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the data provider. + // Max Length: 1000 bytes. + string primary_contact = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Contains details of the listing publisher. +message Publisher { + // Optional. Name of the listing publisher. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the listing publisher. + // Max Length: 1000 bytes. + string primary_contact = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Contains the reference that identifies a destination bigquery dataset. +message DestinationDatasetReference { + // 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]; + + // Required. The ID of the project containing this dataset. + string project_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Defines the destination bigquery dataset. +message DestinationDataset { + // Required. A reference that identifies the destination dataset. + DestinationDatasetReference dataset_reference = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A descriptive name for the dataset. + google.protobuf.StringValue friendly_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A user-friendly description of the dataset. + google.protobuf.StringValue description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 https://cloud.google.com/resource-manager/docs/creating-managing-labels + // for more information. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The geographic location where the dataset should reside. See + // https://cloud.google.com/bigquery/docs/locations for supported + // locations. + string location = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// A listing is what gets published into a data exchange that a subscriber can +// subscribe to. It contains a reference to the data source along with +// descriptive information that will help subscribers find and subscribe the +// data. +message Listing { + option (google.api.resource) = { + type: "analyticshub.googleapis.com/Listing" + pattern: "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}" + }; + + // A reference to a shared dataset. It is an existing BigQuery dataset with a + // collection of objects such as tables and views that you want to share + // with subscribers. + // When subscriber's subscribe to a listing, Analytics Hub creates a linked + // dataset in + // 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 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" + }]; + } + + // State of the listing. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Subscribable state. Users with dataexchange.listings.subscribe permission + // can subscribe to this listing. + ACTIVE = 1; + } + + // Listing categories. + enum Category { + CATEGORY_UNSPECIFIED = 0; + + CATEGORY_OTHERS = 1; + + CATEGORY_ADVERTISING_AND_MARKETING = 2; + + CATEGORY_COMMERCE = 3; + + CATEGORY_CLIMATE_AND_ENVIRONMENT = 4; + + CATEGORY_DEMOGRAPHICS = 5; + + CATEGORY_ECONOMICS = 6; + + CATEGORY_EDUCATION = 7; + + CATEGORY_ENERGY = 8; + + CATEGORY_FINANCIAL = 9; + + CATEGORY_GAMING = 10; + + CATEGORY_GEOSPATIAL = 11; + + CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE = 12; + + CATEGORY_MEDIA = 13; + + CATEGORY_PUBLIC_SECTOR = 14; + + CATEGORY_RETAIL = 15; + + CATEGORY_SPORTS = 16; + + CATEGORY_SCIENCE_AND_RESEARCH = 17; + + CATEGORY_TRANSPORTATION_AND_LOGISTICS = 18; + + CATEGORY_TRAVEL_AND_TOURISM = 19; + } + + // Listing source. + oneof source { + // Required. Shared dataset i.e. BigQuery dataset source. + BigQueryDatasetSource bigquery_dataset = 6 [(google.api.field_behavior) = REQUIRED]; + } + + // Output only. The resource name of the listing. + // e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Human-readable display name of the listing. The display name must contain + // only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces + // ( ), ampersands (&) and can't start or end with spaces. + // Default value is an empty string. + // Max length: 63 bytes. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Short description of the listing. The description must not contain + // Unicode non-characters and C0 and C1 control codes except tabs (HT), + // new lines (LF), carriage returns (CR), and page breaks (FF). + // Default value is an empty string. + // Max length: 2000 bytes. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the primary point of contact of the listing. + // Max Length: 1000 bytes. + string primary_contact = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Documentation describing the listing. + string documentation = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Current state of the listing. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Base64 encoded image representing the listing. Max Size: 3.0MiB + // Expected image dimensions are 512x512 pixels, however the API only + // performs validation on size of the encoded data. + // Note: For byte fields, the contents of the field are base64-encoded (which + // increases the size of the data by 33-36%) when using JSON on the wire. + bytes icon = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Details of the data provider who owns the source data. + DataProvider data_provider = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Categories of the listing. Up to two categories are allowed. + repeated Category categories = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Details of the publisher who owns the listing and who can share + // the source data. + Publisher publisher = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email or URL of the request access of the listing. + // Subscribers can use this reference to request access. + // Max Length: 1000 bytes. + string request_access = 12 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for requesting the list of data exchanges. +message ListDataExchangesRequest { + // Required. The parent resource path of the data exchanges. + // e.g. `projects/myproject/locations/US`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // 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 = 2; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 3; +} + +// Message for response to the list of data exchanges. +message ListDataExchangesResponse { + // The list of data exchanges. + repeated DataExchange data_exchanges = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} + +// Message for requesting the list of data exchanges from projects in an +// organization and location. +message ListOrgDataExchangesRequest { + // Required. The organization resource path of the projects containing DataExchanges. + // e.g. `organizations/myorg/locations/US`. + string organization = 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. + int32 page_size = 2; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 3; +} + +// Message for response to listing data exchanges in an organization and +// location. +message ListOrgDataExchangesResponse { + // The list of data exchanges. + repeated DataExchange data_exchanges = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} + +// Message for getting a data exchange. +message GetDataExchangeRequest { + // Required. The resource name of the data exchange. + // e.g. `projects/myproject/locations/US/dataExchanges/123`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/DataExchange" + } + ]; +} + +// Message for creating a data exchange. +message CreateDataExchangeRequest { + // Required. The parent resource path of the data exchange. + // e.g. `projects/myproject/locations/US`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The ID of the data exchange. + // Must contain only Unicode letters, numbers (0-9), underscores (_). + // Should not use characters that require URL-escaping, or characters + // outside of ASCII, spaces. + // Max length: 100 bytes. + string data_exchange_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The data exchange to create. + DataExchange data_exchange = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for updating a data exchange. +message UpdateDataExchangeRequest { + // Required. Field mask specifies the fields to update in the data exchange + // resource. The fields specified in the + // `updateMask` are relative to the resource and are not a full request. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The data exchange to update. + DataExchange data_exchange = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for deleting a data exchange. +message DeleteDataExchangeRequest { + // Required. The full name of the data exchange resource that you want to delete. + // For example, `projects/myproject/locations/US/dataExchanges/123`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/DataExchange" + } + ]; +} + +// Message for requesting the list of listings. +message ListListingsRequest { + // Required. The parent resource path of the listing. + // e.g. `projects/myproject/locations/US/dataExchanges/123`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/DataExchange" + } + ]; + + // 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 = 2; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 3; +} + +// Message for response to the list of Listings. +message ListListingsResponse { + // The list of Listing. + repeated Listing listings = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} + +// Message for getting a listing. +message GetListingRequest { + // Required. The resource name of the listing. + // e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/Listing" + } + ]; +} + +// Message for creating a listing. +message CreateListingRequest { + // Required. The parent resource path of the listing. + // e.g. `projects/myproject/locations/US/dataExchanges/123`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/DataExchange" + } + ]; + + // Required. The ID of the listing to create. + // Must contain only Unicode letters, numbers (0-9), underscores (_). + // Should not use characters that require URL-escaping, or characters + // outside of ASCII, spaces. + // Max length: 100 bytes. + string listing_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The listing to create. + Listing listing = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for updating a Listing. +message UpdateListingRequest { + // Required. Field mask specifies the fields to update in the listing resource. The + // fields specified in the `updateMask` are relative to the resource and are + // not a full request. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The listing to update. + Listing listing = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for deleting a listing. +message DeleteListingRequest { + // Required. Resource name of the listing to delete. + // e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/Listing" + } + ]; +} + +// Message for subscribing to a listing. +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; + } + + // Required. Resource name of the listing that you want to subscribe to. + // e.g. `projects/myproject/locations/US/dataExchanges/123/listings/456`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/Listing" + } + ]; +} + +// Message for response when you subscribe to a listing. +message SubscribeListingResponse { + +} diff --git a/google/cloud/bigquery/datapolicies/BUILD.bazel b/google/cloud/bigquery/datapolicies/BUILD.bazel new file mode 100644 index 000000000..5a01ce818 --- /dev/null +++ b/google/cloud/bigquery/datapolicies/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-bigquery-data_policies. + +# 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 bigquerydatapolicy. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta1 in this case. +ruby_cloud_gapic_library( + name = "bigquerydatapolicy_ruby_wrapper", + srcs = ["//google/cloud/bigquery/datapolicies/v1beta1:datapolicies_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-bigquery-data_policies", + "ruby-cloud-wrapper-of=v1beta1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/bigquery", + "ruby-cloud-api-id=bigquerydatapolicy.googleapis.com", + "ruby-cloud-api-shortname=bigquerydatapolicy", + ], + ruby_cloud_description = "The Data Policy Service provides APIs for managing the BigQuery label-policy bindings.", + ruby_cloud_title = "BigQuery Data Policy Service V1beta1", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-bigquery-datapolicies-ruby", + deps = [ + ":bigquerydatapolicy_ruby_wrapper", + ], +) diff --git a/google/cloud/bigquery/datapolicies/v1beta1/BUILD.bazel b/google/cloud/bigquery/datapolicies/v1beta1/BUILD.bazel new file mode 100644 index 000000000..e3eb78cd3 --- /dev/null +++ b/google/cloud/bigquery/datapolicies/v1beta1/BUILD.bazel @@ -0,0 +1,387 @@ +# 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 = "datapolicies_proto", + srcs = [ + "datapolicy.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//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + ], +) + +proto_library_with_info( + name = "datapolicies_proto_with_info", + deps = [ + ":datapolicies_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "datapolicies_java_proto", + deps = [":datapolicies_proto"], +) + +java_grpc_library( + name = "datapolicies_java_grpc", + srcs = [":datapolicies_proto"], + deps = [":datapolicies_java_proto"], +) + +java_gapic_library( + name = "datapolicies_java_gapic", + srcs = [":datapolicies_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "datapolicies_v1beta1_grpc_service_config.json", + service_yaml = "bigquerydatapolicy_v1beta1.yaml", + test_deps = [ + ":datapolicies_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":datapolicies_java_proto", + "//google/api:api_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "datapolicies_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.bigquery.datapolicies.v1beta1.DataPolicyServiceClientHttpJsonTest", + "com.google.cloud.bigquery.datapolicies.v1beta1.DataPolicyServiceClientTest", + ], + runtime_deps = [":datapolicies_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-bigquery-datapolicies-v1beta1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":datapolicies_java_gapic", + ":datapolicies_java_grpc", + ":datapolicies_java_proto", + ":datapolicies_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "datapolicies_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/bigquery/datapolicies/v1beta1", + protos = [":datapolicies_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_gapic_library( + name = "datapolicies_go_gapic", + srcs = [":datapolicies_proto_with_info"], + grpc_service_config = "datapolicies_v1beta1_grpc_service_config.json", + importpath = "cloud.google.com/go/bigquery/datapolicies/apiv1beta1;datapolicies", + metadata = True, + service_yaml = "bigquerydatapolicy_v1beta1.yaml", + transport = "grpc+rest", + deps = [ + ":datapolicies_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_test( + name = "datapolicies_go_gapic_test", + srcs = [":datapolicies_go_gapic_srcjar_test"], + embed = [":datapolicies_go_gapic"], + importpath = "cloud.google.com/go/bigquery/datapolicies/apiv1beta1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-bigquery-datapolicies-v1beta1-go", + deps = [ + ":datapolicies_go_gapic", + ":datapolicies_go_gapic_srcjar-metadata.srcjar", + ":datapolicies_go_gapic_srcjar-test.srcjar", + ":datapolicies_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "datapolicies_py_gapic", + srcs = [":datapolicies_proto"], + grpc_service_config = "datapolicies_v1beta1_grpc_service_config.json", + service_yaml = "bigquerydatapolicy_v1beta1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "datapolicies_py_gapic_test", + srcs = [ + "datapolicies_py_gapic_pytest.py", + "datapolicies_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datapolicies_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "bigquery-datapolicies-v1beta1-py", + deps = [ + ":datapolicies_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "datapolicies_php_proto", + deps = [":datapolicies_proto"], +) + +php_grpc_library( + name = "datapolicies_php_grpc", + srcs = [":datapolicies_proto"], + deps = [":datapolicies_php_proto"], +) + +php_gapic_library( + name = "datapolicies_php_gapic", + srcs = [":datapolicies_proto_with_info"], + grpc_service_config = "datapolicies_v1beta1_grpc_service_config.json", + service_yaml = "bigquerydatapolicy_v1beta1.yaml", + deps = [ + ":datapolicies_php_grpc", + ":datapolicies_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-bigquery-datapolicies-v1beta1-php", + deps = [ + ":datapolicies_php_gapic", + ":datapolicies_php_grpc", + ":datapolicies_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "datapolicies_nodejs_gapic", + package_name = "@google-cloud/bigquery-datapolicies", + src = ":datapolicies_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "datapolicies_v1beta1_grpc_service_config.json", + package = "google.cloud.bigquery.datapolicies.v1beta1", + service_yaml = "bigquerydatapolicy_v1beta1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "bigquery-datapolicies-v1beta1-nodejs", + deps = [ + ":datapolicies_nodejs_gapic", + ":datapolicies_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 = "datapolicies_ruby_proto", + deps = [":datapolicies_proto"], +) + +ruby_grpc_library( + name = "datapolicies_ruby_grpc", + srcs = [":datapolicies_proto"], + deps = [":datapolicies_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "datapolicies_ruby_gapic", + srcs = [":datapolicies_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=bigquerydatapolicy.googleapis.com", + "ruby-cloud-api-shortname=bigquerydatapolicy", + "ruby-cloud-gem-name=google-cloud-bigquery-data_policies-v1beta1", + "ruby-cloud-product-url=https://cloud.google.com/bigquery/docs", + ], + grpc_service_config = "datapolicies_v1beta1_grpc_service_config.json", + service_yaml = "bigquerydatapolicy_v1beta1.yaml", + ruby_cloud_description = "The Data Policy Service provides APIs for managing the BigQuery label-policy bindings.", + ruby_cloud_title = "BigQuery Data Policy Service V1beta1", + deps = [ + ":datapolicies_ruby_grpc", + ":datapolicies_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-bigquery-datapolicies-v1beta1-ruby", + deps = [ + ":datapolicies_ruby_gapic", + ":datapolicies_ruby_grpc", + ":datapolicies_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 = "datapolicies_csharp_proto", + deps = [":datapolicies_proto"], +) + +csharp_grpc_library( + name = "datapolicies_csharp_grpc", + srcs = [":datapolicies_proto"], + deps = [":datapolicies_csharp_proto"], +) + +csharp_gapic_library( + name = "datapolicies_csharp_gapic", + srcs = [":datapolicies_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "datapolicies_v1beta1_grpc_service_config.json", + service_yaml = "bigquerydatapolicy_v1beta1.yaml", + deps = [ + ":datapolicies_csharp_grpc", + ":datapolicies_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-bigquery-datapolicies-v1beta1-csharp", + deps = [ + ":datapolicies_csharp_gapic", + ":datapolicies_csharp_grpc", + ":datapolicies_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "datapolicies_cc_proto", + deps = [":datapolicies_proto"], +) + +cc_grpc_library( + name = "datapolicies_cc_grpc", + srcs = [":datapolicies_proto"], + grpc_only = True, + deps = [":datapolicies_cc_proto"], +) diff --git a/google/cloud/bigquery/datapolicies/v1beta1/bigquerydatapolicy_v1beta1.yaml b/google/cloud/bigquery/datapolicies/v1beta1/bigquerydatapolicy_v1beta1.yaml new file mode 100644 index 000000000..8511aaf32 --- /dev/null +++ b/google/cloud/bigquery/datapolicies/v1beta1/bigquerydatapolicy_v1beta1.yaml @@ -0,0 +1,23 @@ +type: google.api.Service +config_version: 3 +name: bigquerydatapolicy.googleapis.com +title: BigQuery Data Policy API + +apis: +- name: google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService + +documentation: + summary: Allows users to manage BigQuery data policies. + +backend: + rules: + - selector: 'google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.*' + deadline: 60.0 + +authentication: + rules: + - selector: 'google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/bigquery/datapolicies/v1beta1/datapolicies_v1beta1_grpc_service_config.json b/google/cloud/bigquery/datapolicies/v1beta1/datapolicies_v1beta1_grpc_service_config.json new file mode 100644 index 000000000..e0b4b68d1 --- /dev/null +++ b/google/cloud/bigquery/datapolicies/v1beta1/datapolicies_v1beta1_grpc_service_config.json @@ -0,0 +1,46 @@ +{ + "methodConfig": [{ + "name": [ + { + "service": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", + "method": "CreateDataPolicy" + }, + { + "service": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", + "method": "UpdateDataPolicy" + }, + { + "service": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", + "method": "DeleteDataPolicy" + }, + { + "service": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", + "method": "GetDataPolicy" + }, + { + "service": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", + "method": "ListDataPolicies" + }, + { + "service": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", + "method": "GetIamPolicy" + }, + { + "service": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", + "method": "SetIamPolicy" + }, + { + "service": "google.cloud.bigquery.datapolicies.v1beta1.DataPolicyService", + "method": "TestIamPermissions" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} \ No newline at end of file diff --git a/google/cloud/bigquery/datapolicies/v1beta1/datapolicy.proto b/google/cloud/bigquery/datapolicies/v1beta1/datapolicy.proto new file mode 100644 index 000000000..363f15c5c --- /dev/null +++ b/google/cloud/bigquery/datapolicies/v1beta1/datapolicy.proto @@ -0,0 +1,287 @@ +// 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.cloud.bigquery.datapolicies.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.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 csharp_namespace = "Google.Cloud.BigQuery.DataPolicies.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/datapolicies/v1beta1;datapolicies"; +option java_multiple_files = true; +option java_outer_classname = "DataPolicyProto"; +option java_package = "com.google.cloud.bigquery.datapolicies.v1beta1"; +option php_namespace = "Google\\Cloud\\BigQuery\\DataPolicies\\V1beta1"; +option ruby_package = "Google::Cloud::Bigquery::DataPolicies::V1beta1"; + +// Data Policy Service provides APIs for managing the label-policy bindings. +service DataPolicyService { + option (google.api.default_host) = "bigquerydatapolicy.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new data policy under a project with the given `dataPolicyId` + // (used as the display name), policy tag, and data policy type. + rpc CreateDataPolicy(CreateDataPolicyRequest) returns (DataPolicy) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/dataPolicies" + body: "data_policy" + }; + option (google.api.method_signature) = "parent,data_policy"; + } + + // Updates the metadata for an existing data policy. The target data policy + // can be specified by the resource name. + rpc UpdateDataPolicy(UpdateDataPolicyRequest) returns (DataPolicy) { + option (google.api.http) = { + patch: "/v1beta1/{data_policy.name=projects/*/locations/*/dataPolicies/*}" + body: "data_policy" + }; + option (google.api.method_signature) = "data_policy,update_mask"; + } + + // Deletes the data policy specified by its resource name. + rpc DeleteDataPolicy(DeleteDataPolicyRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/dataPolicies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets the data policy specified by its resource name. + rpc GetDataPolicy(GetDataPolicyRequest) returns (DataPolicy) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/dataPolicies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List all of the data policies in the specified parent project. + rpc ListDataPolicies(ListDataPoliciesRequest) returns (ListDataPoliciesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/dataPolicies" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the IAM policy for the specified data policy. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1beta1/{resource=projects/*/locations/*/dataPolicies/*}:getIamPolicy" + body: "*" + }; + } + + // Sets the IAM policy for the specified data policy. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1beta1/{resource=projects/*/locations/*/dataPolicies/*}:setIamPolicy" + body: "*" + }; + } + + // Returns the caller's permission on the specified data policy resource. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v1beta1/{resource=projects/*/locations/*/dataPolicies/*}:testIamPermissions" + body: "*" + }; + } +} + +// Request message for the CreateDataPolicy method. +message CreateDataPolicyRequest { + // Required. Resource name of the project that the data policy will belong to. The + // format is `projects/{project_number}/locations/{location_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "bigquerydatapolicy.googleapis.com/DataPolicy" + } + ]; + + // Required. The data policy to create. The `name` field does not need to be + // provided for the data policy creation. + DataPolicy data_policy = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for the UpdateDataPolicy method. +message UpdateDataPolicyRequest { + // Required. Update the data policy's metadata. + // + // The target data policy is determined by the `name` field. + // Other fields are updated to the specified values based on the field masks. + DataPolicy data_policy = 1 [(google.api.field_behavior) = REQUIRED]; + + // The update mask applies to the resource. For the `FieldMask` definition, + // see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + // If not set, defaults to all of the fields that are allowed to update. + // + // Updates to the `name` and `dataPolicyId` fields are not allowed. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for the DeleteDataPolicy method. +message DeleteDataPolicyRequest { + // Required. Resource name of the data policy to delete. Format is + // `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquerydatapolicy.googleapis.com/DataPolicy" + } + ]; +} + +// Request message for the GetDataPolicy method. +message GetDataPolicyRequest { + // Required. Resource name of the requested data policy. Format is + // `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquerydatapolicy.googleapis.com/DataPolicy" + } + ]; +} + +// Request message for the ListDataPolicies method. +message ListDataPoliciesRequest { + // Required. Resource name of the project for which to list data policies. Format is + // `projects/{project_number}/locations/{location_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "bigquerydatapolicy.googleapis.com/DataPolicy" + } + ]; + + // The maximum number of data policies to return. Must be a value between 1 + // and 1000. + // If not set, defaults to 50. + int32 page_size = 2; + + // The `nextPageToken` value returned from a previous list request, if any. If + // not set, defaults to an empty string. + string page_token = 3; +} + +// Response message for the ListDataPolicies method. +message ListDataPoliciesResponse { + // Data policies that belong to the requested project. + repeated DataPolicy data_policies = 1; + + // Token used to retrieve the next page of results, or empty if there are no + // more results. + string next_page_token = 2; +} + +// Represents the label-policy binding. +message DataPolicy { + option (google.api.resource) = { + type: "bigquerydatapolicy.googleapis.com/DataPolicy" + pattern: "projects/{project}/locations/{location}/dataPolicies/{data_policy}" + }; + + // A list of supported data policy types. + enum DataPolicyType { + // Default value for the data policy type. This should not be used. + DATA_POLICY_TYPE_UNSPECIFIED = 0; + + // Used to create a data policy for column-level security, without data + // masking. + COLUMN_LEVEL_SECURITY_POLICY = 3; + + // Used to create a data policy for data masking. + DATA_MASKING_POLICY = 2; + } + + // Label that is bound to this data policy. + oneof matching_label { + // Policy tag resource name, in the format of + // `projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{policyTag_id}`. + string policy_tag = 4; + } + + // The policy that is bound to this data policy. + oneof policy { + // The data masking policy that specifies the data masking rule to use. + DataMaskingPolicy data_masking_policy = 5; + } + + // Output only. Resource name of this data policy, in the format of + // `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Type of data policy. + DataPolicyType data_policy_type = 2; + + // User-assigned (human readable) ID of the data policy that needs to be + // unique within a project. Used as {data_policy_id} in part of the resource + // name. + string data_policy_id = 3; +} + +// The data masking policy that is used to specify data masking rule. +message DataMaskingPolicy { + // The available masking rules. Learn more here: + // https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options. + enum PredefinedExpression { + // Default, unspecified predefined expression. No masking will take place + // since no expression is specified. + PREDEFINED_EXPRESSION_UNSPECIFIED = 0; + + // Masking expression to replace data with SHA-256 hash. + SHA256 = 3; + + // Masking expression to replace data with NULLs. + ALWAYS_NULL = 5; + + // Masking expression to replace data with their default masking values. + // The default masking values for each type listed as below: + // + // * STRING: "" + // * BYTES: b'' + // * INTEGER: 0 + // * FLOAT: 0.0 + // * NUMERIC: 0 + // * BOOLEAN: FALSE + // * TIMESTAMP: 0001-01-01 00:00:00 UTC + // * DATE: 0001-01-01 + // * TIME: 00:00:00 + // * DATETIME: 0001-01-01T00:00:00 + // * GEOGRAPHY: POINT(0 0) + // * BIGNUMERIC: 0 + // * ARRAY: [] + // * STRUCT: NOT_APPLICABLE + // * JSON: NULL + DEFAULT_MASKING_VALUE = 7; + } + + // A masking expression to bind to the data masking rule. + oneof masking_expression { + // A predefined masking expression. + PredefinedExpression predefined_expression = 1; + } +} diff --git a/google/cloud/bigquery/datatransfer/v1/BUILD.bazel b/google/cloud/bigquery/datatransfer/v1/BUILD.bazel index f1c0a5a22..a12b66925 100644 --- a/google/cloud/bigquery/datatransfer/v1/BUILD.bazel +++ b/google/cloud/bigquery/datatransfer/v1/BUILD.bazel @@ -68,6 +68,7 @@ java_gapic_library( test_deps = [ ":datatransfer_java_grpc", ], + transport = "grpc+rest", deps = [ ":datatransfer_java_proto", ], @@ -76,6 +77,7 @@ java_gapic_library( java_gapic_test( name = "datatransfer_java_gapic_test_suite", test_classes = [ + "com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClientHttpJsonTest", "com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClientTest", ], runtime_deps = [":datatransfer_java_gapic_test"], @@ -84,6 +86,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigquery-datatransfer-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":datatransfer_java_gapic", ":datatransfer_java_grpc", @@ -120,6 +124,7 @@ go_gapic_library( grpc_service_config = "bigquerydatatransfer_grpc_service_config.json", importpath = "cloud.google.com/go/bigquery/datatransfer/apiv1;datatransfer", service_yaml = "bigquerydatatransfer_v1.yaml", + transport = "grpc+rest", deps = [ ":datatransfer_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -151,6 +156,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -161,6 +167,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=bigquery_datatransfer", ], + transport = "grpc", +) + +py_test( + name = "datatransfer_py_gapic_test", + srcs = [ + "datatransfer_py_gapic_pytest.py", + "datatransfer_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datatransfer_py_gapic"], ) py_gapic_assembly_pkg( @@ -319,6 +336,7 @@ csharp_gapic_library( srcs = [":datatransfer_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigquerydatatransfer_grpc_service_config.json", + service_yaml = "bigquerydatatransfer_v1.yaml", deps = [ ":datatransfer_csharp_grpc", ":datatransfer_csharp_proto", diff --git a/google/cloud/bigquery/datatransfer/v1/transfer.proto b/google/cloud/bigquery/datatransfer/v1/transfer.proto index 1928e0657..9092b4b9e 100644 --- a/google/cloud/bigquery/datatransfer/v1/transfer.proto +++ b/google/cloud/bigquery/datatransfer/v1/transfer.proto @@ -18,7 +18,6 @@ package google.cloud.bigquery.datatransfer.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; diff --git a/google/cloud/bigquery/logging/v1/BUILD.bazel b/google/cloud/bigquery/logging/v1/BUILD.bazel index 1b0812f56..c75f20eb5 100644 --- a/google/cloud/bigquery/logging/v1/BUILD.bazel +++ b/google/cloud/bigquery/logging/v1/BUILD.bazel @@ -66,8 +66,8 @@ go_proto_library( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", "py_gapic_library", - "py_gapic_assembly_pkg" ) py_gapic_library( @@ -78,6 +78,7 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=bigquery_logging", ], + transport = "grpc", ) # Open Source Packages @@ -117,7 +118,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/bigquery/migration/BUILD.bazel b/google/cloud/bigquery/migration/BUILD.bazel new file mode 100644 index 000000000..9a8aa74c1 --- /dev/null +++ b/google/cloud/bigquery/migration/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-bigquery-migration. + +# 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 bigquerymigration. +# 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 = "migration_ruby_wrapper", + srcs = ["//google/cloud/bigquery/migration/v2:migration_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-bigquery-migration", + "ruby-cloud-wrapper-of=v2:0.0", + "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_description = "The BigQuery Migration Service is a comprehensive solution for migrating your data warehouse to BigQuery.", + ruby_cloud_title = "BigQuery Migration", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-bigquery-migration-ruby", + deps = [ + ":migration_ruby_wrapper", + ], +) diff --git a/google/cloud/bigquery/migration/v2/BUILD.bazel b/google/cloud/bigquery/migration/v2/BUILD.bazel new file mode 100644 index 000000000..d21359ff7 --- /dev/null +++ b/google/cloud/bigquery/migration/v2/BUILD.bazel @@ -0,0 +1,392 @@ +# 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 = "migration_proto", + srcs = [ + "migration_entities.proto", + "migration_error_details.proto", + "migration_metrics.proto", + "migration_service.proto", + "translation_config.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:distribution_proto", + "//google/api:field_behavior_proto", + "//google/api:metric_proto", + "//google/api:resource_proto", + "//google/rpc:error_details_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "migration_proto_with_info", + deps = [ + ":migration_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "migration_java_proto", + deps = [":migration_proto"], +) + +java_grpc_library( + name = "migration_java_grpc", + srcs = [":migration_proto"], + deps = [":migration_java_proto"], +) + +java_gapic_library( + name = "migration_java_gapic", + srcs = [":migration_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "bigquerymigration_grpc_service_config.json", + service_yaml = "bigquerymigration_v2.yaml", + test_deps = [ + ":migration_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":migration_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "migration_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.bigquery.migration.v2.MigrationServiceClientHttpJsonTest", + "com.google.cloud.bigquery.migration.v2.MigrationServiceClientTest", + ], + runtime_deps = [":migration_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-bigquery-migration-v2-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":migration_java_gapic", + ":migration_java_grpc", + ":migration_java_proto", + ":migration_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "migration_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2", + protos = [":migration_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/api:distribution_go_proto", + "//google/api:metric_go_proto", + "//google/rpc:errdetails_go_proto", + ], +) + +go_gapic_library( + name = "migration_go_gapic", + srcs = [":migration_proto_with_info"], + grpc_service_config = "bigquerymigration_grpc_service_config.json", + importpath = "cloud.google.com/go/bigquery/migration/apiv2;migration", + metadata = True, + service_yaml = "bigquerymigration_v2.yaml", + transport = "grpc+rest", + deps = [ + ":migration_go_proto", + "//google/api:metric_go_proto", + ], +) + +go_test( + name = "migration_go_gapic_test", + srcs = [":migration_go_gapic_srcjar_test"], + embed = [":migration_go_gapic"], + importpath = "cloud.google.com/go/bigquery/migration/apiv2", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-bigquery-migration-v2-go", + deps = [ + ":migration_go_gapic", + ":migration_go_gapic_srcjar-metadata.srcjar", + ":migration_go_gapic_srcjar-test.srcjar", + ":migration_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "migration_py_gapic", + srcs = [":migration_proto"], + grpc_service_config = "bigquerymigration_grpc_service_config.json", + opt_args = [ + "python-gapic-name=bigquery_migration", + "python-gapic-namespace=google.cloud", + ], + transport = "grpc", +) + +py_test( + name = "migration_py_gapic_test", + srcs = [ + "migration_py_gapic_pytest.py", + "migration_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":migration_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "bigquery-migration-v2-py", + deps = [ + ":migration_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "migration_php_proto", + deps = [":migration_proto"], +) + +php_grpc_library( + name = "migration_php_grpc", + srcs = [":migration_proto"], + deps = [":migration_php_proto"], +) + +php_gapic_library( + name = "migration_php_gapic", + srcs = [":migration_proto_with_info"], + grpc_service_config = "bigquerymigration_grpc_service_config.json", + service_yaml = "bigquerymigration_v2.yaml", + deps = [ + ":migration_php_grpc", + ":migration_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-bigquery-migration-v2-php", + deps = [ + ":migration_php_gapic", + ":migration_php_grpc", + ":migration_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "migration_nodejs_gapic", + package_name = "@google-cloud/bigquery-migration", + src = ":migration_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "bigquerymigration_grpc_service_config.json", + package = "google.cloud.bigquery.migration.v2", + service_yaml = "bigquerymigration_v2.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "bigquery-migration-v2-nodejs", + deps = [ + ":migration_nodejs_gapic", + ":migration_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 = "migration_ruby_proto", + deps = [":migration_proto"], +) + +ruby_grpc_library( + name = "migration_ruby_grpc", + srcs = [":migration_proto"], + deps = [":migration_ruby_proto"], +) + +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", + ], + grpc_service_config = "bigquerymigration_grpc_service_config.json", + ruby_cloud_description = "The BigQuery Migration Service is a comprehensive solution for migrating your data warehouse to BigQuery.", + ruby_cloud_title = "BigQuery Migration V2", + deps = [ + ":migration_ruby_grpc", + ":migration_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-bigquery-migration-v2-ruby", + deps = [ + ":migration_ruby_gapic", + ":migration_ruby_grpc", + ":migration_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 = "migration_csharp_proto", + deps = [":migration_proto"], +) + +csharp_grpc_library( + name = "migration_csharp_grpc", + srcs = [":migration_proto"], + deps = [":migration_csharp_proto"], +) + +csharp_gapic_library( + name = "migration_csharp_gapic", + srcs = [":migration_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "bigquerymigration_grpc_service_config.json", + service_yaml = "bigquerymigration_v2.yaml", + deps = [ + ":migration_csharp_grpc", + ":migration_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-bigquery-migration-v2-csharp", + deps = [ + ":migration_csharp_gapic", + ":migration_csharp_grpc", + ":migration_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "migration_cc_proto", + deps = [":migration_proto"], +) + +cc_grpc_library( + name = "migration_cc_grpc", + srcs = [":migration_proto"], + grpc_only = True, + deps = [":migration_cc_proto"], +) diff --git a/google/cloud/bigquery/migration/v2/bigquerymigration_grpc_service_config.json b/google/cloud/bigquery/migration/v2/bigquerymigration_grpc_service_config.json new file mode 100644 index 000000000..cd849e76b --- /dev/null +++ b/google/cloud/bigquery/migration/v2/bigquerymigration_grpc_service_config.json @@ -0,0 +1,39 @@ +{ + "methodConfig": [{ + "name": [ + { + "service": "google.cloud.bigquery.migration.v2.MigrationService", + "method": "GetMigrationWorkflow" + }, + { + "service": "google.cloud.bigquery.migration.v2.MigrationService", + "method": "ListMigrationWorkflows" + }, + { + "service": "google.cloud.bigquery.migration.v2.MigrationService", + "method": "StartMigrationWorkflow" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.bigquery.migration.v2.MigrationService", + "method": "CreateMigrationWorkflow" + }, + { + "service": "google.cloud.bigquery.migration.v2.MigrationService", + "method": "DeleteMigrationWorkflow" + } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/bigquery/migration/v2/bigquerymigration_v2.yaml b/google/cloud/bigquery/migration/v2/bigquerymigration_v2.yaml new file mode 100644 index 000000000..0e9a06a67 --- /dev/null +++ b/google/cloud/bigquery/migration/v2/bigquerymigration_v2.yaml @@ -0,0 +1,24 @@ +type: google.api.Service +config_version: 3 +name: bigquerymigration.googleapis.com +title: BigQuery Migration API + +apis: +- name: google.cloud.bigquery.migration.v2.MigrationService + +documentation: + summary: |- + The migration service, exposing apis for migration jobs operations, and + agent management. + +backend: + rules: + - selector: 'google.cloud.bigquery.migration.v2.MigrationService.*' + deadline: 60.0 + +authentication: + rules: + - selector: 'google.cloud.bigquery.migration.v2.MigrationService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/bigquery/migration/v2/migration_entities.proto b/google/cloud/bigquery/migration/v2/migration_entities.proto new file mode 100644 index 000000000..7d77bae32 --- /dev/null +++ b/google/cloud/bigquery/migration/v2/migration_entities.proto @@ -0,0 +1,233 @@ +// 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.cloud.bigquery.migration.v2; + +import "google/api/field_behavior.proto"; +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/protobuf/timestamp.proto"; +import "google/rpc/error_details.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2;migration"; +option java_multiple_files = true; +option java_outer_classname = "MigrationEntitiesProto"; +option java_package = "com.google.cloud.bigquery.migration.v2"; +option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2"; + +// A migration workflow which specifies what needs to be done for an EDW +// migration. +message MigrationWorkflow { + option (google.api.resource) = { + type: "bigquerymigration.googleapis.com/MigrationWorkflow" + pattern: "projects/{project}/locations/{location}/workflows/{workflow}" + }; + + // Possible migration workflow states. + enum State { + // Workflow state is unspecified. + STATE_UNSPECIFIED = 0; + + // Workflow is in draft status, i.e. tasks are not yet eligible for + // execution. + DRAFT = 1; + + // Workflow is running (i.e. tasks are eligible for execution). + RUNNING = 2; + + // Workflow is paused. Tasks currently in progress may continue, but no + // further tasks will be scheduled. + PAUSED = 3; + + // Workflow is complete. There should not be any task in a non-terminal + // state, but if they are (e.g. forced termination), they will not be + // scheduled. + COMPLETED = 4; + } + + // Output only. Immutable. 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 + ]; + + // The display name of the workflow. This can be set to give a workflow + // a descriptive name. There is no guarantee or enforcement of uniqueness. + string display_name = 6; + + // The tasks in a workflow in a named map. The name (i.e. key) has no + // meaning and is merely a convenient way to address a specific task + // in a workflow. + map tasks = 2; + + // Output only. That status of the workflow. + State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Time when the workflow was created. + google.protobuf.Timestamp create_time = 4; + + // Time when the workflow was last updated. + google.protobuf.Timestamp last_update_time = 5; +} + +// A single task for a migration which has details about the configuration of +// the task. +message MigrationTask { + // Possible states of a migration task. + enum State { + // The state is unspecified. + STATE_UNSPECIFIED = 0; + + // The task is waiting for orchestration. + PENDING = 1; + + // The task is assigned to an orchestrator. + ORCHESTRATING = 2; + + // The task is running, i.e. its subtasks are ready for execution. + RUNNING = 3; + + // Tha task is paused. Assigned subtasks can continue, but no new subtasks + // will be scheduled. + PAUSED = 4; + + // The task finished successfully. + SUCCEEDED = 5; + + // The task finished unsuccessfully. + FAILED = 6; + } + + // The details of the task. + oneof task_details { + // Task configuration for Batch SQL Translation. + TranslationConfigDetails translation_config_details = 14; + } + + // Output only. Immutable. The unique identifier for the migration task. The + // ID is server-generated. + string id = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // The type of the task. This must be one of the supported task types: + // Translation_Teradata2BQ, Translation_Redshift2BQ, Translation_Bteq2BQ, + // Translation_Oracle2BQ, Translation_HiveQL2BQ, Translation_SparkSQL2BQ, + // Translation_Snowflake2BQ, Translation_Netezza2BQ, + // Translation_AzureSynapse2BQ, Translation_Vertica2BQ, + // Translation_SQLServer2BQ, Translation_Presto2BQ, Translation_MySQL2BQ. + string type = 2; + + // Output only. The current state of the task. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An explanation that may be populated when the task is in + // FAILED state. + google.rpc.ErrorInfo processing_error = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Time when the task was created. + google.protobuf.Timestamp create_time = 6; + + // Time when the task was last updated. + google.protobuf.Timestamp last_update_time = 7; +} + +// A subtask for a migration which carries details about the configuration of +// the subtask. The content of the details should not matter to the end user, +// but is a contract between the subtask creator and subtask worker. +message MigrationSubtask { + option (google.api.resource) = { + type: "bigquerymigration.googleapis.com/MigrationSubtask" + pattern: "projects/{project}/locations/{location}/workflows/{workflow}/subtasks/{subtask}" + }; + + // Possible states of a migration subtask. + enum State { + // The state is unspecified. + STATE_UNSPECIFIED = 0; + + // The subtask is ready, i.e. it is ready for execution. + ACTIVE = 1; + + // The subtask is running, i.e. it is assigned to a worker for execution. + RUNNING = 2; + + // The subtask finished successfully. + SUCCEEDED = 3; + + // The subtask finished unsuccessfully. + FAILED = 4; + + // The subtask is paused, i.e., it will not be scheduled. If it was already + // assigned,it might still finish but no new lease renewals will be granted. + PAUSED = 5; + } + + // Output only. Immutable. The resource name for the migration subtask. The ID + // is server-generated. + // + // Example: `projects/123/locations/us/workflows/345/subtasks/678` + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // The unique ID of the task to which this subtask belongs. + string task_id = 2; + + // The type of the Subtask. The migration service does not check whether this + // is a known type. It is up to the task creator (i.e. orchestrator or worker) + // to ensure it only creates subtasks for which there are compatible workers + // polling for Subtasks. + string type = 3; + + // Output only. The current state of the subtask. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An explanation that may be populated when the task is in + // FAILED state. + google.rpc.ErrorInfo processing_error = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Provides details to errors and issues encountered while + // processing the subtask. Presence of error details does not mean that the + // subtask failed. + repeated ResourceErrorDetail resource_error_details = 12 + [(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 = 13; + + // Time when the subtask was created. + google.protobuf.Timestamp create_time = 7; + + // Time when the subtask was last updated. + google.protobuf.Timestamp last_update_time = 8; + + // The metrics for the subtask. + repeated TimeSeries metrics = 11; +} diff --git a/google/cloud/bigquery/migration/v2/migration_error_details.proto b/google/cloud/bigquery/migration/v2/migration_error_details.proto new file mode 100644 index 000000000..199e2db61 --- /dev/null +++ b/google/cloud/bigquery/migration/v2/migration_error_details.proto @@ -0,0 +1,62 @@ +// 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.cloud.bigquery.migration.v2; + +import "google/api/field_behavior.proto"; +import "google/rpc/error_details.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2;migration"; +option java_multiple_files = true; +option java_outer_classname = "MigrationErrorDetailsProto"; +option java_package = "com.google.cloud.bigquery.migration.v2"; +option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2"; + +// Provides details for errors and the corresponding resources. +message ResourceErrorDetail { + // Required. Information about the resource where the error is located. + google.rpc.ResourceInfo resource_info = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The error details for the resource. + repeated ErrorDetail error_details = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. How many errors there are in total for the resource. Truncation can be + // indicated by having an `error_count` that is higher than the size of + // `error_details`. + int32 error_count = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Provides details for errors, e.g. issues that where encountered when +// processing a subtask. +message ErrorDetail { + // Optional. The exact location within the resource (if applicable). + ErrorLocation location = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Describes the cause of the error with structured detail. + google.rpc.ErrorInfo error_info = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Holds information about where the error is located. +message ErrorLocation { + // Optional. If applicable, denotes the line where the error occurred. A zero value + // means that there is no line information. + int32 line = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If applicable, denotes the column where the error occurred. A zero value + // means that there is no columns information. + int32 column = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/bigquery/migration/v2/migration_metrics.proto b/google/cloud/bigquery/migration/v2/migration_metrics.proto new file mode 100644 index 000000000..e52fead2f --- /dev/null +++ b/google/cloud/bigquery/migration/v2/migration_metrics.proto @@ -0,0 +1,111 @@ +// 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.cloud.bigquery.migration.v2; + +import "google/api/distribution.proto"; +import "google/api/field_behavior.proto"; +import "google/api/metric.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2;migration"; +option java_multiple_files = true; +option java_outer_classname = "MigrationMetricsProto"; +option java_package = "com.google.cloud.bigquery.migration.v2"; +option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2"; + +// The metrics object for a SubTask. +message TimeSeries { + // Required. The name of the metric. + // + // If the metric is not known by the service yet, it will be auto-created. + string metric = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The value type of the time series. + google.api.MetricDescriptor.ValueType value_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The metric kind of the time series. + // + // If present, it must be the same as the metric kind of the associated + // metric. If the associated metric's descriptor must be auto-created, then + // this field specifies the metric kind of the new descriptor and must be + // either `GAUGE` (the default) or `CUMULATIVE`. + google.api.MetricDescriptor.MetricKind metric_kind = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The data points of this time series. When listing time series, points are + // returned in reverse time order. + // + // When creating a time series, this field must contain exactly one point and + // the point's type must be the same as the value type of the associated + // metric. If the associated metric's descriptor must be auto-created, then + // the value type of the descriptor is determined by the point's type, which + // must be `BOOL`, `INT64`, `DOUBLE`, or `DISTRIBUTION`. + repeated Point points = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// A single data point in a time series. +message Point { + // The time interval to which the data point applies. For `GAUGE` metrics, + // the start time does not need to be supplied, but if it is supplied, it must + // equal the end time. For `DELTA` metrics, the start and end time should + // specify a non-zero interval, with subsequent points specifying contiguous + // and non-overlapping intervals. For `CUMULATIVE` metrics, the start and end + // time should 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. + TimeInterval interval = 1; + + // The value of the data point. + TypedValue value = 2; +} + +// A time interval extending just after a start time through an end time. +// If the start time is the same as the end time, then the interval +// represents a single point in time. +message TimeInterval { + // Optional. The beginning of the time interval. The default value + // for the start time is the end time. The start time must not be + // later than the end time. + google.protobuf.Timestamp start_time = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The end of the time interval. + google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A single strongly-typed value. +message TypedValue { + // The typed value field. + oneof value { + // A Boolean value: `true` or `false`. + bool bool_value = 1; + + // A 64-bit integer. Its range is approximately `+/-9.2x10^18`. + int64 int64_value = 2; + + // A 64-bit double-precision floating-point number. Its magnitude + // is approximately `+/-10^(+/-300)` and it has 16 significant digits of + // precision. + double double_value = 3; + + // A variable-length string value. + string string_value = 4; + + // A distribution value. + google.api.Distribution distribution_value = 5; + } +} diff --git a/google/cloud/bigquery/migration/v2/migration_service.proto b/google/cloud/bigquery/migration/v2/migration_service.proto new file mode 100644 index 000000000..3c1a89ec2 --- /dev/null +++ b/google/cloud/bigquery/migration/v2/migration_service.proto @@ -0,0 +1,245 @@ +// 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.cloud.bigquery.migration.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/migration/v2/migration_entities.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2;migration"; +option java_multiple_files = true; +option java_outer_classname = "MigrationServiceProto"; +option java_package = "com.google.cloud.bigquery.migration.v2"; +option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2"; + +// Service to handle EDW migrations. +service MigrationService { + option (google.api.default_host) = "bigquerymigration.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a migration workflow. + rpc CreateMigrationWorkflow(CreateMigrationWorkflowRequest) returns (MigrationWorkflow) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/workflows" + body: "migration_workflow" + }; + option (google.api.method_signature) = "parent,migration_workflow"; + } + + // Gets a previously created migration workflow. + rpc GetMigrationWorkflow(GetMigrationWorkflowRequest) returns (MigrationWorkflow) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/workflows/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists previously created migration workflow. + rpc ListMigrationWorkflows(ListMigrationWorkflowsRequest) returns (ListMigrationWorkflowsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/workflows" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a migration workflow by name. + rpc DeleteMigrationWorkflow(DeleteMigrationWorkflowRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/workflows/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Starts a previously created migration workflow. I.e., the state transitions + // from DRAFT to RUNNING. This is a no-op if the state is already RUNNING. + // An error will be signaled if the state is anything other than DRAFT or + // RUNNING. + rpc StartMigrationWorkflow(StartMigrationWorkflowRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/workflows/*}:start" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a previously created migration subtask. + rpc GetMigrationSubtask(GetMigrationSubtaskRequest) returns (MigrationSubtask) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/workflows/*/subtasks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists previously created migration subtasks. + rpc ListMigrationSubtasks(ListMigrationSubtasksRequest) returns (ListMigrationSubtasksResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*/workflows/*}/subtasks" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request to create a migration workflow resource. +message CreateMigrationWorkflowRequest { + // Required. The name of the project to which this migration workflow belongs. + // Example: `projects/foo/locations/bar` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The migration workflow to create. + MigrationWorkflow migration_workflow = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A request to get a previously created migration workflow. +message GetMigrationWorkflowRequest { + // Required. The unique identifier for the migration workflow. + // Example: `projects/123/locations/us/workflows/1234` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquerymigration.googleapis.com/MigrationWorkflow" + } + ]; + + // The list of fields to be retrieved. + google.protobuf.FieldMask read_mask = 2; +} + +// A request to list previously created migration workflows. +message ListMigrationWorkflowsRequest { + // Required. The project and location of the migration workflows to list. + // Example: `projects/123/locations/us` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The list of fields to be retrieved. + google.protobuf.FieldMask read_mask = 2; + + // The maximum number of migration workflows to return. The service may return + // fewer than this number. + int32 page_size = 3; + + // A page token, received from previous `ListMigrationWorkflows` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListMigrationWorkflows` + // must match the call that provided the page token. + string page_token = 4; +} + +// Response object for a `ListMigrationWorkflows` call. +message ListMigrationWorkflowsResponse { + // The migration workflows for the specified project / location. + repeated MigrationWorkflow migration_workflows = 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; +} + +// A request to delete a previously created migration workflow. +message DeleteMigrationWorkflowRequest { + // Required. The unique identifier for the migration workflow. + // Example: `projects/123/locations/us/workflows/1234` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquerymigration.googleapis.com/MigrationWorkflow" + } + ]; +} + +// A request to start a previously created migration workflow. +message StartMigrationWorkflowRequest { + // Required. The unique identifier for the migration workflow. + // Example: `projects/123/locations/us/workflows/1234` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquerymigration.googleapis.com/MigrationWorkflow" + } + ]; +} + +// A request to get a previously created migration subtasks. +message GetMigrationSubtaskRequest { + // Required. The unique identifier for the migration subtask. + // Example: `projects/123/locations/us/workflows/1234/subtasks/543` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquerymigration.googleapis.com/MigrationSubtask" + } + ]; + + // Optional. The list of fields to be retrieved. + google.protobuf.FieldMask read_mask = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to list previously created migration subtasks. +message ListMigrationSubtasksRequest { + // Required. The migration task of the subtasks to list. + // Example: `projects/123/locations/us/workflows/1234` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquerymigration.googleapis.com/MigrationWorkflow" + } + ]; + + // Optional. The list of fields to be retrieved. + google.protobuf.FieldMask read_mask = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of migration tasks to return. The service may return + // fewer than this number. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from previous `ListMigrationSubtasks` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListMigrationSubtasks` + // must match the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The filter to apply. This can be used to get the subtasks of a specific + // tasks in a workflow, e.g. `migration_task = "ab012"` where `"ab012"` is the + // task ID (not the name in the named map). + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for a `ListMigrationSubtasks` call. +message ListMigrationSubtasksResponse { + // The migration subtasks for the specified task. + repeated MigrationSubtask migration_subtasks = 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/google/cloud/bigquery/migration/v2/translation_config.proto b/google/cloud/bigquery/migration/v2/translation_config.proto new file mode 100644 index 000000000..994140d13 --- /dev/null +++ b/google/cloud/bigquery/migration/v2/translation_config.proto @@ -0,0 +1,257 @@ +// 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.cloud.bigquery.migration.v2; + +option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2;migration"; +option java_multiple_files = true; +option java_outer_classname = "TranslationConfigProto"; +option java_package = "com.google.cloud.bigquery.migration.v2"; +option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2"; + +// The translation config to capture necessary settings for a translation task +// and subtask. +message TranslationConfigDetails { + // The chosen path where the source for input files will be found. + oneof source_location { + // The Cloud Storage path for a directory of files to translate in a task. + string gcs_source_path = 1; + } + + // The chosen path where the destination for output files will be found. + oneof target_location { + // The Cloud Storage path to write back the corresponding input files to. + string gcs_target_path = 2; + } + + // The dialect of the input files. + Dialect source_dialect = 3; + + // The target dialect for the engine to translate the input to. + Dialect target_dialect = 4; + + // The mapping of full SQL object names from their current state to the + // desired output. + oneof output_name_mapping { + // The mapping of objects to their desired output names in list form. + ObjectNameMappingList name_mapping_list = 5; + } + + // The default source environment values for the translation. + SourceEnv source_env = 6; +} + +// The possible dialect options for translation. +message Dialect { + // The possible dialect options that this message represents. + oneof dialect_value { + // The BigQuery dialect + BigQueryDialect bigquery_dialect = 1; + + // The HiveQL dialect + HiveQLDialect hiveql_dialect = 2; + + // The Redshift dialect + RedshiftDialect redshift_dialect = 3; + + // The Teradata dialect + TeradataDialect teradata_dialect = 4; + + // The Oracle dialect + OracleDialect oracle_dialect = 5; + + // The SparkSQL dialect + SparkSQLDialect sparksql_dialect = 6; + + // The Snowflake dialect + SnowflakeDialect snowflake_dialect = 7; + + // The Netezza dialect + NetezzaDialect netezza_dialect = 8; + + // The Azure Synapse dialect + AzureSynapseDialect azure_synapse_dialect = 9; + + // The Vertica dialect + VerticaDialect vertica_dialect = 10; + + // The SQL Server dialect + SQLServerDialect sql_server_dialect = 11; + + // The Postgresql dialect + PostgresqlDialect postgresql_dialect = 12; + + // The Presto dialect + PrestoDialect presto_dialect = 13; + + // The MySQL dialect + MySQLDialect mysql_dialect = 14; + } +} + +// The dialect definition for BigQuery. +message BigQueryDialect {} + +// The dialect definition for HiveQL. +message HiveQLDialect {} + +// The dialect definition for Redshift. +message RedshiftDialect {} + +// The dialect definition for Teradata. +message TeradataDialect { + // The sub-dialect options for Teradata. + enum Mode { + // Unspecified mode. + MODE_UNSPECIFIED = 0; + + // Teradata SQL mode. + SQL = 1; + + // BTEQ mode (which includes SQL). + BTEQ = 2; + } + + // Which Teradata sub-dialect mode the user specifies. + Mode mode = 1; +} + +// The dialect definition for Oracle. +message OracleDialect {} + +// The dialect definition for SparkSQL. +message SparkSQLDialect {} + +// The dialect definition for Snowflake. +message SnowflakeDialect {} + +// The dialect definition for Netezza. +message NetezzaDialect {} + +// The dialect definition for Azure Synapse. +message AzureSynapseDialect {} + +// The dialect definition for Vertica. +message VerticaDialect {} + +// The dialect definition for SQL Server. +message SQLServerDialect {} + +// The dialect definition for Postgresql. +message PostgresqlDialect {} + +// The dialect definition for Presto. +message PrestoDialect {} + +// The dialect definition for MySQL. +message MySQLDialect {} + +// Represents a map of name mappings using a list of key:value proto messages of +// existing name to desired output name. +message ObjectNameMappingList { + // The elements of the object name map. + repeated ObjectNameMapping name_map = 1; +} + +// Represents a key-value pair of NameMappingKey to NameMappingValue to +// represent the mapping of SQL names from the input value to desired output. +message ObjectNameMapping { + // The name of the object in source that is being mapped. + NameMappingKey source = 1; + + // The desired target name of the object that is being mapped. + NameMappingValue target = 2; +} + +// The potential components of a full name mapping that will be mapped +// during translation in the source data warehouse. +message NameMappingKey { + // The type of the object that is being mapped. + enum Type { + // Unspecified name mapping type. + TYPE_UNSPECIFIED = 0; + + // The object being mapped is a database. + DATABASE = 1; + + // The object being mapped is a schema. + SCHEMA = 2; + + // The object being mapped is a relation. + RELATION = 3; + + // The object being mapped is an attribute. + ATTRIBUTE = 4; + + // The object being mapped is a relation alias. + RELATION_ALIAS = 5; + + // The object being mapped is a an attribute alias. + ATTRIBUTE_ALIAS = 6; + + // The object being mapped is a function. + FUNCTION = 7; + } + + // The type of object that is being mapped. + Type type = 1; + + // The database name (BigQuery project ID equivalent in the source data + // warehouse). + string database = 2; + + // The schema name (BigQuery dataset equivalent in the source data warehouse). + string schema = 3; + + // The relation name (BigQuery table or view equivalent in the source data + // warehouse). + string relation = 4; + + // The attribute name (BigQuery column equivalent in the source data + // warehouse). + string attribute = 5; +} + +// The potential components of a full name mapping that will be mapped +// during translation in the target data warehouse. +message NameMappingValue { + // The database name (BigQuery project ID equivalent in the target data + // warehouse). + string database = 1; + + // The schema name (BigQuery dataset equivalent in the target data warehouse). + string schema = 2; + + // The relation name (BigQuery table or view equivalent in the target data + // warehouse). + string relation = 3; + + // The attribute name (BigQuery column equivalent in the target data + // warehouse). + string attribute = 4; +} + +// Represents the default source environment values for the translation. +message SourceEnv { + // 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; +} diff --git a/google/cloud/bigquery/migration/v2alpha/BUILD.bazel b/google/cloud/bigquery/migration/v2alpha/BUILD.bazel index 6eb3b1e3c..60a6477ba 100644 --- a/google/cloud/bigquery/migration/v2alpha/BUILD.bazel +++ b/google/cloud/bigquery/migration/v2alpha/BUILD.bazel @@ -81,6 +81,7 @@ java_gapic_library( test_deps = [ ":migration_java_grpc", ], + transport = "grpc+rest", deps = [ ":migration_java_proto", ], @@ -89,6 +90,7 @@ java_gapic_library( java_gapic_test( name = "migration_java_gapic_test_suite", test_classes = [ + "com.google.cloud.bigquery.migration.v2alpha.MigrationServiceClientHttpJsonTest", "com.google.cloud.bigquery.migration.v2alpha.MigrationServiceClientTest", ], runtime_deps = [":migration_java_gapic_test"], @@ -97,6 +99,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigquery-migration-v2alpha-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":migration_java_gapic", ":migration_java_grpc", @@ -134,8 +138,9 @@ go_gapic_library( srcs = [":migration_proto_with_info"], grpc_service_config = "bigquerymigration_grpc_service_config.json", importpath = "cloud.google.com/go/bigquery/migration/apiv2alpha;migration", - service_yaml = "bigquerymigration_v2alpha.yaml", metadata = True, + service_yaml = "bigquerymigration_v2alpha.yaml", + transport = "grpc+rest", deps = [ ":migration_go_proto", ], @@ -153,8 +158,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-bigquery-migration-v2alpha-go", deps = [ ":migration_go_gapic", - ":migration_go_gapic_srcjar-test.srcjar", ":migration_go_gapic_srcjar-metadata.srcjar", + ":migration_go_gapic_srcjar-test.srcjar", ":migration_go_proto", ], ) @@ -166,6 +171,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -176,6 +182,17 @@ py_gapic_library( "python-gapic-name=bigquery_migration", "python-gapic-namespace=google.cloud", ], + transport = "grpc", +) + +py_test( + name = "migration_py_gapic_test", + srcs = [ + "migration_py_gapic_pytest.py", + "migration_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":migration_py_gapic"], ) # Open Source Packages @@ -240,7 +257,7 @@ load( nodejs_gapic_library( name = "migration_nodejs_gapic", - package_name = "@google-cloud/migration", + package_name = "@google-cloud/bigquery-migration", src = ":migration_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "bigquerymigration_grpc_service_config.json", @@ -262,8 +279,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) diff --git a/google/cloud/bigquery/migration/v2alpha/bigquerymigration_grpc_service_config.json b/google/cloud/bigquery/migration/v2alpha/bigquerymigration_grpc_service_config.json index 3c291f78c..84644c69c 100644 --- a/google/cloud/bigquery/migration/v2alpha/bigquerymigration_grpc_service_config.json +++ b/google/cloud/bigquery/migration/v2alpha/bigquerymigration_grpc_service_config.json @@ -43,5 +43,21 @@ } ], "timeout": "60s" + }, + { + "name": [ + { + "service": "google.cloud.bigquery.migration.v2alpha.SqlTranslationService", + "method": "Translate" + } + ], + "timeout": "30s", + "retryPolicy": { + "maxAttempts": 3, + "initialBackoff": "0.100s", + "maxBackoff": "1s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } }] } diff --git a/google/cloud/bigquery/migration/v2alpha/migration_service.proto b/google/cloud/bigquery/migration/v2alpha/migration_service.proto index b5e9014b3..9a184a1e4 100644 --- a/google/cloud/bigquery/migration/v2alpha/migration_service.proto +++ b/google/cloud/bigquery/migration/v2alpha/migration_service.proto @@ -25,7 +25,6 @@ import "google/cloud/bigquery/migration/v2alpha/migration_error_details.proto"; import "google/cloud/bigquery/migration/v2alpha/migration_metrics.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; -import "google/rpc/error_details.proto"; option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2alpha;migration"; diff --git a/google/cloud/bigquery/reservation/v1/BUILD.bazel b/google/cloud/bigquery/reservation/v1/BUILD.bazel index a4bd58d48..2de491ffd 100644 --- a/google/cloud/bigquery/reservation/v1/BUILD.bazel +++ b/google/cloud/bigquery/reservation/v1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":reservation_java_grpc", ], + transport = "grpc+rest", deps = [ ":reservation_java_proto", "//google/api:api_java_proto", @@ -84,6 +85,7 @@ java_gapic_library( java_gapic_test( name = "reservation_java_gapic_test_suite", test_classes = [ + "com.google.cloud.bigquery.reservation.v1.ReservationServiceClientHttpJsonTest", "com.google.cloud.bigquery.reservation.v1.ReservationServiceClientTest", ], runtime_deps = [":reservation_java_gapic_test"], @@ -92,6 +94,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigquery-reservation-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":reservation_java_gapic", ":reservation_java_grpc", @@ -129,6 +133,7 @@ go_gapic_library( importpath = "cloud.google.com/go/bigquery/reservation/apiv1;reservation", metadata = True, service_yaml = "bigqueryreservation_v1.yaml", + transport = "grpc+rest", deps = [ ":reservation_go_proto", ], @@ -159,6 +164,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -169,6 +175,17 @@ py_gapic_library( "python-gapic-name=bigquery_reservation", "python-gapic-namespace=google.cloud", ], + transport = "grpc", +) + +py_test( + name = "reservation_py_gapic_test", + srcs = [ + "reservation_py_gapic_pytest.py", + "reservation_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":reservation_py_gapic"], ) # Open Source Packages @@ -328,6 +345,7 @@ csharp_gapic_library( srcs = [":reservation_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigqueryreservation_grpc_service_config.json", + service_yaml = "bigqueryreservation_v1.yaml", deps = [ ":reservation_csharp_grpc", ":reservation_csharp_proto", diff --git a/google/cloud/bigquery/reservation/v1/reservation.proto b/google/cloud/bigquery/reservation/v1/reservation.proto index d631978f7..7276c30b5 100644 --- a/google/cloud/bigquery/reservation/v1/reservation.proto +++ b/google/cloud/bigquery/reservation/v1/reservation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -154,7 +154,7 @@ service ReservationService { // // For example, in order to downgrade from 10000 slots to 8000, you might // split a 10000 capacity commitment into commitments of 2000 and 8000. Then, - // you would change the plan of the first one to `FLEX` and then delete it. + // you delete the first one after the commitment end time passes. rpc SplitCapacityCommitment(SplitCapacityCommitmentRequest) returns (SplitCapacityCommitmentResponse) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/capacityCommitments/*}:split" @@ -271,8 +271,8 @@ service ReservationService { option (google.api.method_signature) = "name"; } - // Deprecated: Looks up assignments for a specified resource for a particular region. - // If the request is about a project: + // Deprecated: Looks up assignments for a specified resource for a particular + // region. If the request is about a project: // // 1. Assignments created on the project will be returned if they exist. // 2. Otherwise assignments created on the closest ancestor will be @@ -342,6 +342,17 @@ service ReservationService { option (google.api.method_signature) = "name,destination_id"; } + // Updates an existing assignment. + // + // Only the `priority` field can be updated. + rpc UpdateAssignment(UpdateAssignmentRequest) returns (Assignment) { + option (google.api.http) = { + patch: "/v1/{assignment.name=projects/*/locations/*/reservations/*/assignments/*}" + body: "assignment" + }; + option (google.api.method_signature) = "assignment,update_mask"; + } + // Retrieves a BI reservation. rpc GetBiReservation(GetBiReservationRequest) returns (BiReservation) { option (google.api.http) = { @@ -376,6 +387,9 @@ message Reservation { // The resource name of the reservation, e.g., // `projects/*/locations/*/reservations/team1-prod`. + // The reservation_id must only contain lower case alphanumeric characters or + // dashes. It must start with a letter and must not end with a dash. Its + // maximum length is 64 characters. string name = 1; // Minimum slots available to this reservation. A slot is a unit of @@ -384,10 +398,14 @@ message Reservation { // Queries using this reservation might use more slots during runtime if // ignore_idle_slots is set to false. // - // If the new reservation's slot capacity exceed the parent's slot capacity or - // if total slot capacity of the new reservation and its siblings exceeds the - // parent's slot capacity, the request will fail with + // If the new reservation's slot capacity exceeds the project's slot capacity + // or if total slot capacity of the new reservation and its siblings exceeds + // the project's slot capacity, the request will fail with // `google.rpc.Code.RESOURCE_EXHAUSTED`. + // + // NOTE: for reservations in US or EU multi-regions, slot capacity constraints + // are checked separately for default and auxiliary regions. See + // multi_region_auxiliary flag for more details. int64 slot_capacity = 2; // If false, any query or pipeline job using this reservation will use idle @@ -396,11 +414,26 @@ message Reservation { // capacity specified in the slot_capacity field at most. bool ignore_idle_slots = 4; + // Maximum number of queries that are allowed to run concurrently in this + // reservation. This is a soft limit due to asynchronous nature of the system + // and various optimizations for small queries. + // Default value is 0 which means that concurrency will be automatically set + // based on the reservation size. + int64 concurrency = 16; + // Output only. Creation time of the reservation. google.protobuf.Timestamp creation_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Last update time of the reservation. google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Applicable only for reservations located within one of the BigQuery + // multi-regions (US or EU). + // + // If set to true, this reservation is placed in the organization's + // secondary region which is designated for disaster recovery purposes. + // If false, this reservation is placed in the organization's default region. + bool multi_region_auxiliary = 14; } // Capacity commitment is a way to purchase compute capacity for BigQuery jobs @@ -455,11 +488,11 @@ message CapacityCommitment { STATE_UNSPECIFIED = 0; // Capacity commitment is pending provisioning. Pending capacity commitment - // does not contribute to the parent's slot_capacity. + // does not contribute to the project's slot_capacity. PENDING = 1; // Once slots are provisioned, capacity commitment becomes active. - // slot_count is added to the parent's slot_capacity. + // slot_count is added to the project's slot_capacity. ACTIVE = 2; // Capacity commitment is failed to be activated by the backend. @@ -468,6 +501,9 @@ message CapacityCommitment { // Output only. The resource name of the capacity commitment, e.g., // `projects/myproject/locations/US/capacityCommitments/123` + // The commitment_id must only contain lower case alphanumeric characters or + // dashes. It must start with a letter and must not end + // with a dash. Its maximum length is 64 characters. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Number of slots in this commitment. @@ -494,6 +530,14 @@ message CapacityCommitment { // passes. Once the plan is changed, committed period is extended according to // commitment plan. Only applicable for ANNUAL and TRIAL commitments. CommitmentPlan renewal_plan = 8; + + // Applicable only for commitments located within one of the BigQuery + // multi-regions (US or EU). + // + // If set to true, this commitment is placed in the organization's + // secondary region which is designated for disaster recovery purposes. + // If false, this commitment is placed in the organization's default region. + bool multi_region_auxiliary = 10; } // The request for [ReservationService.CreateReservation][google.cloud.bigquery.reservation.v1.ReservationService.CreateReservation]. @@ -507,8 +551,9 @@ message CreateReservationRequest { } ]; - // The reservation ID. This field must only contain lower case alphanumeric - // characters or dash. Max length is 64 characters. + // The reservation ID. It must only contain lower case alphanumeric + // characters or dashes. It must start with a letter and must not end + // with a dash. Its maximum length is 64 characters. string reservation_id = 2; // Definition of the new reservation to create. @@ -596,8 +641,8 @@ message CreateCapacityCommitmentRequest { // The optional capacity commitment ID. Capacity commitment name will be // generated automatically if this field is empty. - // This field must only contain lower case alphanumeric characters or dash. - // Max length is 64 characters. + // This field must only contain lower case alphanumeric characters or dashes. + // The first and last character cannot be a dash. Max length is 64 characters. // NOTE: this ID won't be kept if the capacity commitment is split or merged. string capacity_commitment_id = 5; } @@ -708,7 +753,7 @@ message MergeCapacityCommitmentsRequest { repeated string capacity_commitment_ids = 2; } -// A Assignment allows a project to submit jobs +// An assignment allows a project to submit jobs // of a certain type using slots from the specified reservation. message Assignment { option (google.api.resource) = { @@ -750,6 +795,8 @@ message Assignment { // Output only. Name of the resource. E.g.: // `projects/myproject/locations/US/reservations/team1-prod/assignments/123`. + // The assignment_id must only contain lower case alphanumeric characters or + // dashes and the max length is 64 characters. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // The resource which will use the reservation. E.g. @@ -781,7 +828,7 @@ message CreateAssignmentRequest { // The optional assignment ID. Assignment name will be generated automatically // if this field is empty. - // This field must only contain lower case alphanumeric characters or dash. + // This field must only contain lower case alphanumeric characters or dashes. // Max length is 64 characters. string assignment_id = 4; } @@ -942,6 +989,28 @@ message MoveAssignmentRequest { }]; } +// The request for [ReservationService.UpdateAssignment][google.cloud.bigquery.reservation.v1.ReservationService.UpdateAssignment]. +message UpdateAssignmentRequest { + // Content of the assignment to update. + Assignment assignment = 1; + + // Standard field mask for the set of fields to be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Fully qualified reference to BigQuery table. +// Internally stored as google.cloud.bi.v1.BqTableReference. +message TableReference { + // The assigned project ID of the project. + string project_id = 1; + + // The ID of the dataset in the above project. + string dataset_id = 2; + + // The ID of the table in the above dataset. + string table_id = 3; +} + // Represents a BI Reservation. message BiReservation { option (google.api.resource) = { @@ -959,6 +1028,9 @@ message BiReservation { // Size of a reservation, in bytes. int64 size = 4; + + // Preferred tables to use BI capacity for. + repeated TableReference preferred_tables = 5; } // A request to get a singleton BI reservation. diff --git a/google/cloud/bigquery/reservation/v1beta1/BUILD.bazel b/google/cloud/bigquery/reservation/v1beta1/BUILD.bazel index ee12f2d6e..898e3b7a4 100644 --- a/google/cloud/bigquery/reservation/v1beta1/BUILD.bazel +++ b/google/cloud/bigquery/reservation/v1beta1/BUILD.bazel @@ -154,12 +154,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "reservation_py_gapic", srcs = [":reservation_proto"], grpc_service_config = "bigqueryreservation_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "reservation_py_gapic_test", + srcs = [ + "reservation_py_gapic_pytest.py", + "reservation_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":reservation_py_gapic"], ) # Open Source Packages @@ -244,8 +256,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -263,7 +275,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "reservation_ruby_gapic", - srcs = [":reservation_proto_with_info",], + srcs = [":reservation_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-reservation-v1beta1"], deps = [ ":reservation_ruby_grpc", @@ -308,6 +320,7 @@ csharp_gapic_library( srcs = [":reservation_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigqueryreservation_grpc_service_config.json", + service_yaml = "bigqueryreservation_v1beta1.yaml", deps = [ ":reservation_csharp_grpc", ":reservation_csharp_proto", diff --git a/google/cloud/bigquery/reservation/v1beta1/reservation.proto b/google/cloud/bigquery/reservation/v1beta1/reservation.proto index 39b09dd68..73de4d542 100644 --- a/google/cloud/bigquery/reservation/v1beta1/reservation.proto +++ b/google/cloud/bigquery/reservation/v1beta1/reservation.proto @@ -30,6 +30,7 @@ option java_multiple_files = true; option java_package = "com.google.cloud.bigquery.reservation.v1beta1"; option php_namespace = "Google\\Cloud\\BigQuery\\Reservation\\V1beta1"; +// Deprecated: Please use the v1 api instead. // This API allows users to manage their flat-rate BigQuery reservations. // // A reservation provides computational resource guarantees, in the form of @@ -46,6 +47,7 @@ option php_namespace = "Google\\Cloud\\BigQuery\\Reservation\\V1beta1"; // location, e.g.: // `projects/myproject/locations/US/capacityCommitments/id`. service ReservationService { + option deprecated = true; option (google.api.default_host) = "bigqueryreservation.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/bigquery," diff --git a/google/cloud/bigquery/storage/v1/BUILD.bazel b/google/cloud/bigquery/storage/v1/BUILD.bazel index 2750eed09..0aa0a2f96 100644 --- a/google/cloud/bigquery/storage/v1/BUILD.bazel +++ b/google/cloud/bigquery/storage/v1/BUILD.bazel @@ -10,6 +10,7 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "storage_proto", srcs = [ + "annotations.proto", "arrow.proto", "avro.proto", "protobuf.proto", @@ -161,6 +162,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=bigquery_storage", ], + transport = "grpc", +) + +py_test( + name = "storage_py_gapic_test", + srcs = [ + "storage_py_gapic_pytest.py", + "storage_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":storage_py_gapic"], ) py_gapic_assembly_pkg( @@ -319,6 +331,7 @@ csharp_gapic_library( srcs = [":storage_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigquerystorage_grpc_service_config.json", + service_yaml = "bigquerystorage_v1.yaml", deps = [ ":storage_csharp_grpc", ":storage_csharp_proto", diff --git a/google/cloud/bigquery/storage/v1/annotations.proto b/google/cloud/bigquery/storage/v1/annotations.proto new file mode 100644 index 000000000..1627fd12a --- /dev/null +++ b/google/cloud/bigquery/storage/v1/annotations.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; + +package google.cloud.bigquery.storage.v1; + +import "google/protobuf/descriptor.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Storage.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1;storage"; +option java_package = "com.google.cloud.bigquery.storage.v1"; +option java_multiple_files = true; +option java_outer_classname = "AnnotationsProto"; +option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1"; + +extend google.protobuf.FieldOptions { + // Setting the column_name extension allows users to reference + // bigquery column independently of the field name in the protocol buffer + // message. + // + // The intended use of this annotation is to reference a destination column + // named using characters unavailable for protobuf field names (e.g. unicode + // characters). + // + // More details about BigQuery naming limitations can be found here: + // https://cloud.google.com/bigquery/docs/schemas#column_names + // + // This extension is currently experimental. + optional string column_name = 454943157; +} diff --git a/google/cloud/bigquery/storage/v1/arrow.proto b/google/cloud/bigquery/storage/v1/arrow.proto index 514b77e61..6d3f6080b 100644 --- a/google/cloud/bigquery/storage/v1/arrow.proto +++ b/google/cloud/bigquery/storage/v1/arrow.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -39,8 +39,9 @@ message ArrowRecordBatch { // IPC-serialized Arrow RecordBatch. bytes serialized_record_batch = 1; - // The count of rows in `serialized_record_batch`. - int64 row_count = 2; + // [Deprecated] The count of rows in `serialized_record_batch`. + // Please use the format-independent ReadRowsResponse.row_count instead. + int64 row_count = 2 [deprecated = true]; } // Contains options specific to Arrow Serialization. diff --git a/google/cloud/bigquery/storage/v1/avro.proto b/google/cloud/bigquery/storage/v1/avro.proto index dee4a6ed2..e1ecb667b 100644 --- a/google/cloud/bigquery/storage/v1/avro.proto +++ b/google/cloud/bigquery/storage/v1/avro.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -35,6 +35,22 @@ message AvroRows { // Binary serialized rows in a block. bytes serialized_binary_rows = 1; - // The count of rows in the returning block. - int64 row_count = 2; + // [Deprecated] The count of rows in the returning block. + // Please use the format-independent ReadRowsResponse.row_count instead. + int64 row_count = 2 [deprecated = true]; +} + +// Contains options specific to Avro Serialization. +message AvroSerializationOptions { + // Enable displayName attribute in Avro schema. + // + // The Avro specification requires field names to be alphanumeric. By + // default, in cases when column names do not conform to these requirements + // (e.g. non-ascii unicode codepoints) and Avro is requested as an output + // format, the CreateReadSession call will fail. + // + // Setting this field to true, populates avro field names with a placeholder + // value and populates a "displayName" attribute for every avro field with the + // original column name. + bool enable_display_name_attribute = 1; } diff --git a/google/cloud/bigquery/storage/v1/bigquerystorage_grpc_service_config.json b/google/cloud/bigquery/storage/v1/bigquerystorage_grpc_service_config.json index 5253af032..039f0b337 100644 --- a/google/cloud/bigquery/storage/v1/bigquerystorage_grpc_service_config.json +++ b/google/cloud/bigquery/storage/v1/bigquerystorage_grpc_service_config.json @@ -5,10 +5,6 @@ { "service": "google.cloud.bigquery.storage.v1.BigQueryRead", "method": "CreateReadSession" - }, - { - "service": "google.cloud.bigquery.storage.v1.BigQueryRead", - "method": "SplitReadStream" } ], "timeout": "600s", @@ -38,12 +34,44 @@ "UNAVAILABLE" ] } - }, { + }, + { + "name": [ + { + "service": "google.cloud.bigquery.storage.v1.BigQueryRead", + "method": "SplitReadStream" + } + ], + "timeout": "600s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ] + } + }, + { "name": [ { "service": "google.cloud.bigquery.storage.v1.BigQueryWrite", - "method": "CreateWriteStream" - }, + "method": "AppendRows" + } + ], + "timeout": "86400s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } + }, + { + "name": [ { "service": "google.cloud.bigquery.storage.v1.BigQueryWrite", "method": "BatchCommitWriteStreams" @@ -75,16 +103,18 @@ "name": [ { "service": "google.cloud.bigquery.storage.v1.BigQueryWrite", - "method": "AppendRows" + "method": "CreateWriteStream" } ], - "timeout": "86400s", + "timeout": "1200s", "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "60s", + "initialBackoff": "10s", + "maxBackoff": "120s", "backoffMultiplier": 1.3, "retryableStatusCodes": [ - "UNAVAILABLE" + "DEADLINE_EXCEEDED", + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" ] } } diff --git a/google/cloud/bigquery/storage/v1/bigquerystorage_v1.yaml b/google/cloud/bigquery/storage/v1/bigquerystorage_v1.yaml index 1c35a13dc..ff3d78ed9 100644 --- a/google/cloud/bigquery/storage/v1/bigquerystorage_v1.yaml +++ b/google/cloud/bigquery/storage/v1/bigquerystorage_v1.yaml @@ -15,18 +15,10 @@ backend: deadline: 21600.0 - selector: google.cloud.bigquery.storage.v1.BigQueryRead.SplitReadStream deadline: 120.0 - - selector: google.cloud.bigquery.storage.v1.BigQueryWrite.CreateWriteStram - deadline: 120.0 - - selector: google.cloud.bigquery.storage.v1.BigQueryWrite.FinalizeWriteStream - deadline: 120.0 - - selector: google.cloud.bigquery.storage.v1.BigQueryWrite.BatchCommitWriteStreams - deadline: 120.0 - - selector: google.cloud.bigquery.storage.v1.BigQueryWrite.GetWriteStream - deadline: 120.0 - - selector: google.cloud.bigquery.storage.v1.BigQueryWrite.FlushRows + - selector: 'google.cloud.bigquery.storage.v1.BigQueryWrite.*' deadline: 120.0 - - selector: google.cloud.bigquery.storage.v1.BigQueryWrite.AppendRows - deadline: 86400.0 + - selector: google.cloud.bigquery.storage.v1.BigQueryWrite.CreateWriteStream + deadline: 600.0 authentication: rules: diff --git a/google/cloud/bigquery/storage/v1/protobuf.proto b/google/cloud/bigquery/storage/v1/protobuf.proto index f987467dd..b3754acf7 100644 --- a/google/cloud/bigquery/storage/v1/protobuf.proto +++ b/google/cloud/bigquery/storage/v1/protobuf.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/bigquery/storage/v1/storage.proto b/google/cloud/bigquery/storage/v1/storage.proto index ab5a46cf1..a49e1a389 100644 --- a/google/cloud/bigquery/storage/v1/storage.proto +++ b/google/cloud/bigquery/storage/v1/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -47,7 +47,6 @@ service BigQueryRead { option (google.api.default_host) = "bigquerystorage.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/bigquery," - "https://www.googleapis.com/auth/bigquery.readonly," "https://www.googleapis.com/auth/cloud-platform"; // Creates a new read session. A read session divides the contents of a @@ -168,6 +167,13 @@ service BigQueryWrite { // * For PENDING streams, data is not made visible until the stream itself is // finalized (via the `FinalizeWriteStream` rpc), and the stream is explicitly // committed via the `BatchCommitWriteStreams` rpc. + // + // Note: For users coding against the gRPC api directly, it may be + // necessary to supply the x-goog-request-params system parameter + // with `write_stream=`. + // + // More information about system parameters: + // https://cloud.google.com/apis/docs/system-parameters rpc AppendRows(stream AppendRowsRequest) returns (stream AppendRowsResponse) { option (google.api.http) = { post: "/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}" @@ -242,12 +248,24 @@ message CreateReadSessionRequest { // Max initial number of streams. If unset or zero, the server will // provide a value of streams so as to produce reasonable throughput. Must be // non-negative. The number of streams may be lower than the requested number, - // depending on the amount parallelism that is reasonable for the table. Error - // will be returned if the max count is greater than the current system - // max limit of 1,000. + // depending on the amount parallelism that is reasonable for the table. + // There is a default system max limit of 1,000. // - // Streams must be read starting from offset 0. + // This must be greater than or equal to preferred_min_stream_count. + // Typically, clients should either leave this unset to let the system to + // determine an upper bound OR set this a size for the maximum "units of work" + // it can gracefully handle. int32 max_stream_count = 3; + + // The minimum preferred stream count. This parameter can be used to inform + // the service that there is a desired lower bound on the number of streams. + // This is typically a target parallelism of the client (e.g. a Spark + // cluster with N-workers would set this to a low multiple of N to ensure + // good cluster utilization). + // + // The system will make a best effort to provide at least this number of + // streams, but in some cases might provide less. + int32 preferred_min_stream_count = 4; } // Request message for `ReadRows`. @@ -323,7 +341,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 { @@ -387,6 +405,9 @@ message CreateWriteStreamRequest { // Due to the nature of AppendRows being a bidirectional streaming RPC, certain // parts of the AppendRowsRequest need only be specified for the first request // sent each time the gRPC network connection is opened/reopened. +// +// The size of a single AppendRowsRequest must be less than 10 MB in size. +// Requests larger than this return an error, typically `INVALID_ARGUMENT`. message AppendRowsRequest { // ProtoData contains the data rows and schema when constructing append // requests. @@ -409,10 +430,12 @@ message AppendRowsRequest { // request. // // For explicitly created write streams, the format is: - // `projects/{project}/datasets/{dataset}/tables/{table}/streams/{id}` + // + // * `projects/{project}/datasets/{dataset}/tables/{table}/streams/{id}` // // For the special default stream, the format is: - // `projects/{project}/datasets/{dataset}/tables/{table}/_default`. + // + // * `projects/{project}/datasets/{dataset}/tables/{table}/streams/_default`. string write_stream = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -480,6 +503,15 @@ message AppendRowsResponse { // use it to input new type of message. It will be empty when no schema // updates have occurred. TableSchema updated_schema = 3; + + // If a request failed due to corrupted rows, no rows in the batch will be + // appended. The API will return row level error info, so that the caller can + // remove the bad rows and retry the request. + repeated RowError row_errors = 4; + + // The target of the append operation. Matches the write_stream in the + // corresponding request. + string write_stream = 5; } // Request message for `GetWriteStreamRequest`. @@ -492,6 +524,10 @@ message GetWriteStreamRequest { type: "bigquerystorage.googleapis.com/WriteStream" } ]; + + // Indicates whether to get full or partial view of the WriteStream. If + // not set, view returned will be basic. + WriteStreamView view = 3; } // Request message for `BatchCommitWriteStreams`. @@ -499,7 +535,10 @@ message BatchCommitWriteStreamsRequest { // Required. Parent table that all the streams should belong to, in the form of // `projects/{project}/datasets/{dataset}/tables/{table}`. string parent = 1 [ - (google.api.field_behavior) = REQUIRED + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquery.googleapis.com/Table" + } ]; // Required. The group of streams that will be committed atomically. @@ -594,6 +633,12 @@ message StorageError { // There is a schema mismatch and it is caused by user schema has extra // field than bigquery schema. SCHEMA_MISMATCH_EXTRA_FIELDS = 7; + + // Offset already exists. + OFFSET_ALREADY_EXISTS = 8; + + // Offset out of range. + OFFSET_OUT_OF_RANGE = 9; } // BigQuery Storage specific error code. @@ -605,3 +650,24 @@ message StorageError { // Message that describes the error. string error_message = 3; } + +// The message that presents row level error info in a request. +message RowError { + // Error code for `RowError`. + enum RowErrorCode { + // Default error. + ROW_ERROR_CODE_UNSPECIFIED = 0; + + // One or more fields in the row has errors. + FIELDS_ERROR = 1; + } + + // Index of the malformed row in the request. + int64 index = 1; + + // Structured error reason for a row error. + RowErrorCode code = 2; + + // Description of the issue encountered when processing the row. + string message = 3; +} diff --git a/google/cloud/bigquery/storage/v1/stream.proto b/google/cloud/bigquery/storage/v1/stream.proto index 0b0bc1ad0..fe71adfa6 100644 --- a/google/cloud/bigquery/storage/v1/stream.proto +++ b/google/cloud/bigquery/storage/v1/stream.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -32,6 +32,7 @@ option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1"; // Data format for input or output data. enum DataFormat { + // Data format is unspecified. DATA_FORMAT_UNSPECIFIED = 0; // Avro is a standard open source row based file format. @@ -58,10 +59,53 @@ message ReadSession { // Options dictating how we read a table. message TableReadOptions { - // Names of the fields in the table that should be read. If empty, all - // fields will be read. If the specified field is a nested field, all - // the sub-fields in the field will be selected. The output field order is - // unrelated to the order of fields in selected_fields. + // Optional. The names of the fields in the table to be returned. If no + // field names are specified, then all fields in the table are returned. + // + // Nested fields -- the child elements of a STRUCT field -- can be selected + // individually using their fully-qualified names, and will be returned as + // record fields containing only the selected nested fields. If a STRUCT + // field is specified in the selected fields list, all of the child elements + // will be returned. + // + // As an example, consider a table with the following schema: + // + // { + // "name": "struct_field", + // "type": "RECORD", + // "mode": "NULLABLE", + // "fields": [ + // { + // "name": "string_field1", + // "type": "STRING", + // . "mode": "NULLABLE" + // }, + // { + // "name": "string_field2", + // "type": "STRING", + // "mode": "NULLABLE" + // } + // ] + // } + // + // Specifying "struct_field" in the selected fields list will result in a + // read session schema with the following logical structure: + // + // struct_field { + // string_field1 + // string_field2 + // } + // + // Specifying "struct_field.string_field1" in the selected fields list will + // result in a read session schema with the following logical structure: + // + // struct_field { + // string_field1 + // } + // + // The order of the fields in the read session schema is derived from the + // table schema and does not correspond to the order in which the fields are + // specified in this list. repeated string selected_fields = 1; // SQL text filtering statement, similar to a WHERE clause in a query. @@ -79,6 +123,9 @@ message ReadSession { oneof output_format_serialization_options { // Optional. Options specific to the Apache Arrow output format. ArrowSerializationOptions arrow_serialization_options = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Options specific to the Apache Avro output format + AvroSerializationOptions avro_serialization_options = 4 [(google.api.field_behavior) = OPTIONAL]; } } @@ -91,7 +138,7 @@ message ReadSession { // automatically assigned and currently cannot be specified or updated. google.protobuf.Timestamp expire_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Immutable. Data format of the output data. + // Immutable. Data format of the output data. DATA_FORMAT_UNSPECIFIED not supported. DataFormat data_format = 3 [(google.api.field_behavior) = IMMUTABLE]; // The schema for the read. If read_options.selected_fields is set, the @@ -132,6 +179,14 @@ message ReadSession { // all streams are completely consumed. This estimate is based on // metadata from the table which might be incomplete or stale. int64 estimated_total_bytes_scanned = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. ID set by client to annotate a session identity. This does not need + // to be strictly unique, but instead the same ID should be used to group + // logically connected sessions (e.g. All using the same ID for all sessions + // needed to complete a Spark SQL query is reasonable). + // + // Maximum length is 256 bytes. + string trace_id = 13 [(google.api.field_behavior) = OPTIONAL]; } // Information about a single stream that gets data out of the storage system. @@ -148,6 +203,23 @@ message ReadStream { string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// WriteStreamView is a view enum that controls what details about a write +// stream should be returned. +enum WriteStreamView { + // The default / unset value. + WRITE_STREAM_VIEW_UNSPECIFIED = 0; + + // The BASIC projection returns basic metadata about a write stream. The + // basic view does not include schema information. This is the default view + // returned by GetWriteStream. + BASIC = 1; + + // The FULL projection returns all available write stream metadata, including + // the schema. CreateWriteStream returns the full projection of write stream + // metadata. + FULL = 2; +} + // Information about a single stream that gets data inside the storage system. message WriteStream { option (google.api.resource) = { @@ -206,4 +278,9 @@ message WriteStream { // Immutable. Mode of the stream. WriteMode write_mode = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The geographic location where the stream's dataset resides. See + // https://cloud.google.com/bigquery/docs/locations for supported + // locations. + string location = 8 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/google/cloud/bigquery/storage/v1/table.proto b/google/cloud/bigquery/storage/v1/table.proto index a8c6f844d..fa4f840c5 100644 --- a/google/cloud/bigquery/storage/v1/table.proto +++ b/google/cloud/bigquery/storage/v1/table.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -25,7 +25,9 @@ option java_outer_classname = "TableProto"; option java_package = "com.google.cloud.bigquery.storage.v1"; option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1"; -// Schema of a table. +// Schema of a table. This schema is a subset of +// google.cloud.bigquery.v2.TableSchema containing information necessary to +// generate valid message to write to BigQuery. message TableSchema { // Describes the fields in a table. repeated TableFieldSchema fields = 1; diff --git a/google/cloud/bigquery/storage/v1beta1/BUILD.bazel b/google/cloud/bigquery/storage/v1beta1/BUILD.bazel index d53101f9d..2f4a9acc7 100644 --- a/google/cloud/bigquery/storage/v1beta1/BUILD.bazel +++ b/google/cloud/bigquery/storage/v1beta1/BUILD.bazel @@ -83,6 +83,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigquery-storage-v1beta1-java", + transport = "grpc+rest", deps = [ ":storage_java_gapic", ":storage_java_grpc", @@ -147,12 +148,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "storage_py_gapic", srcs = [":storage_proto"], grpc_service_config = "bigquerystorage_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "storage_py_gapic_test", + srcs = [ + "storage_py_gapic_pytest.py", + "storage_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":storage_py_gapic"], ) py_gapic_assembly_pkg( @@ -237,8 +250,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -256,7 +269,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "storage_ruby_gapic", - srcs = [":storage_proto_with_info",], + srcs = [":storage_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-bigquery-storage-v1beta1"], deps = [ ":storage_ruby_grpc", @@ -301,6 +314,7 @@ csharp_gapic_library( srcs = [":storage_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigquerystorage_grpc_service_config.json", + service_yaml = "bigquerystorage_v1beta1.yaml", deps = [ ":storage_csharp_grpc", ":storage_csharp_proto", diff --git a/google/cloud/bigquery/storage/v1beta1/storage.proto b/google/cloud/bigquery/storage/v1beta1/storage.proto index 81e77c73a..0d311418a 100644 --- a/google/cloud/bigquery/storage/v1beta1/storage.proto +++ b/google/cloud/bigquery/storage/v1beta1/storage.proto @@ -37,7 +37,6 @@ service BigQueryStorage { option (google.api.default_host) = "bigquerystorage.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/bigquery," - "https://www.googleapis.com/auth/bigquery.readonly," "https://www.googleapis.com/auth/cloud-platform"; // Creates a new read session. A read session divides the contents of a diff --git a/google/cloud/bigquery/storage/v1beta1/table_reference.proto b/google/cloud/bigquery/storage/v1beta1/table_reference.proto index 4269392f6..22c940c0e 100644 --- a/google/cloud/bigquery/storage/v1beta1/table_reference.proto +++ b/google/cloud/bigquery/storage/v1beta1/table_reference.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.bigquery.storage.v1beta1; -import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1;storage"; diff --git a/google/cloud/bigquery/storage/v1beta2/BUILD.bazel b/google/cloud/bigquery/storage/v1beta2/BUILD.bazel index bdc2a0cf7..111f9531c 100644 --- a/google/cloud/bigquery/storage/v1beta2/BUILD.bazel +++ b/google/cloud/bigquery/storage/v1beta2/BUILD.bazel @@ -85,6 +85,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigquery-storage-v1beta2-java", + include_samples = True, deps = [ ":storage_java_gapic", ":storage_java_grpc", @@ -161,6 +162,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=bigquery_storage", ], + transport = "grpc", +) + +py_test( + name = "storage_py_gapic_test", + srcs = [ + "storage_py_gapic_pytest.py", + "storage_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":storage_py_gapic"], ) py_gapic_assembly_pkg( @@ -307,6 +319,7 @@ csharp_gapic_library( srcs = [":storage_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigquerystorage_grpc_service_config.json", + service_yaml = "bigquerystorage_v1beta2.yaml", deps = [ ":storage_csharp_grpc", ":storage_csharp_proto", diff --git a/google/cloud/bigquery/storage/v1beta2/storage.proto b/google/cloud/bigquery/storage/v1beta2/storage.proto index 32d931013..f7d2c341c 100644 --- a/google/cloud/bigquery/storage/v1beta2/storage.proto +++ b/google/cloud/bigquery/storage/v1beta2/storage.proto @@ -44,7 +44,6 @@ service BigQueryRead { option (google.api.default_host) = "bigquerystorage.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/bigquery," - "https://www.googleapis.com/auth/bigquery.readonly," "https://www.googleapis.com/auth/cloud-platform"; // Creates a new read session. A read session divides the contents of a diff --git a/google/cloud/bigquery/v2/BUILD.bazel b/google/cloud/bigquery/v2/BUILD.bazel index fb79a3f26..bba90ceb0 100644 --- a/google/cloud/bigquery/v2/BUILD.bazel +++ b/google/cloud/bigquery/v2/BUILD.bazel @@ -66,6 +66,7 @@ java_gapic_library( test_deps = [ ":bigquery_java_grpc", ], + transport = "grpc+rest", deps = [ ":bigquery_java_proto", ], @@ -74,6 +75,7 @@ java_gapic_library( java_gapic_test( name = "bigquery_java_gapic_test_suite", test_classes = [ + "com.google.cloud.bigquery.v2.ModelServiceClientHttpJsonTest", "com.google.cloud.bigquery.v2.ModelServiceClientTest", ], runtime_deps = [":bigquery_java_gapic_test"], @@ -82,6 +84,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-bigquery-v2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":bigquery_java_gapic", ":bigquery_java_grpc", @@ -117,6 +121,7 @@ go_gapic_library( grpc_service_config = "bigquery_grpc_service_config.json", importpath = "cloud.google.com/go/bigquery/apiv2;bigquery", service_yaml = "bigquery_v2.yaml", + transport = "grpc+rest", deps = [ ":bigquery_go_proto", ], @@ -152,6 +157,18 @@ py_gapic_library( name = "bigquery_py_gapic", srcs = [":bigquery_proto"], grpc_service_config = "bigquery_grpc_service_config.json", + opt_args = ["autogen-snippets=False"], + transport = "grpc", +) + +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"], ) py_gapic_assembly_pkg( @@ -238,8 +255,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -257,7 +274,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "bigquery_ruby_gapic", - srcs = [":bigquery_proto_with_info",], + srcs = [":bigquery_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-bigquery-v2"], deps = [ ":bigquery_ruby_grpc", @@ -302,6 +319,7 @@ csharp_gapic_library( srcs = [":bigquery_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "bigquery_grpc_service_config.json", + service_yaml = "bigquery_v2.yaml", deps = [ ":bigquery_csharp_grpc", ":bigquery_csharp_proto", diff --git a/google/cloud/bigquery/v2/encryption_config.proto b/google/cloud/bigquery/v2/encryption_config.proto index f241eb5f9..d5d61f2c4 100644 --- a/google/cloud/bigquery/v2/encryption_config.proto +++ b/google/cloud/bigquery/v2/encryption_config.proto @@ -18,7 +18,6 @@ package google.cloud.bigquery.v2; import "google/api/field_behavior.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/v2;bigquery"; option java_outer_classname = "EncryptionConfigProto"; diff --git a/google/cloud/bigquery/v2/model_reference.proto b/google/cloud/bigquery/v2/model_reference.proto index d0b6039d3..6a447e95d 100644 --- a/google/cloud/bigquery/v2/model_reference.proto +++ b/google/cloud/bigquery/v2/model_reference.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.bigquery.v2; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/v2;bigquery"; option java_outer_classname = "ModelReferenceProto"; diff --git a/google/cloud/bigquery/v2/standard_sql.proto b/google/cloud/bigquery/v2/standard_sql.proto index 321290c71..f3cf2addd 100644 --- a/google/cloud/bigquery/v2/standard_sql.proto +++ b/google/cloud/bigquery/v2/standard_sql.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.bigquery.v2; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/v2;bigquery"; option java_outer_classname = "StandardSqlProto"; diff --git a/google/cloud/bigquery/v2/table_reference.proto b/google/cloud/bigquery/v2/table_reference.proto index ae99460e9..0ccd7d4f7 100644 --- a/google/cloud/bigquery/v2/table_reference.proto +++ b/google/cloud/bigquery/v2/table_reference.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.bigquery.v2; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/v2;bigquery"; option java_outer_classname = "TableReferenceProto"; diff --git a/google/cloud/bigquerymigration/v2alpha/bigquerymigration_grpc_service_config.json b/google/cloud/bigquerymigration/v2alpha/bigquerymigration_grpc_service_config.json deleted file mode 100644 index 84644c69c..000000000 --- a/google/cloud/bigquerymigration/v2alpha/bigquerymigration_grpc_service_config.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "methodConfig": [{ - "name": [ - { - "service": "google.cloud.bigquery.migration.v2alpha.MigrationService", - "method": "GetMigrationWorkflow" - }, - { - "service": "google.cloud.bigquery.migration.v2alpha.MigrationService", - "method": "ListMigrationWorkflows" - }, - { - "service": "google.cloud.bigquery.migration.v2alpha.MigrationService", - "method": "StartMigrationWorkflow" - }, - { - "service": "google.cloud.bigquery.migration.v2alpha.MigrationService", - "method": "GetMigrationSubtask" - }, - { - "service": "google.cloud.bigquery.migration.v2alpha.MigrationService", - "method": "ListMigrationSubtasks" - } - ], - "timeout": "120s", - "retryPolicy": { - "maxAttempts": 5, - "initialBackoff": "1s", - "maxBackoff": "10s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": ["UNAVAILABLE"] - } - }, - { - "name": [ - { - "service": "google.cloud.bigquery.migration.v2alpha.MigrationService", - "method": "CreateMigrationWorkflow" - }, - { - "service": "google.cloud.bigquery.migration.v2alpha.MigrationService", - "method": "DeleteMigrationWorkflow" - } - ], - "timeout": "60s" - }, - { - "name": [ - { - "service": "google.cloud.bigquery.migration.v2alpha.SqlTranslationService", - "method": "Translate" - } - ], - "timeout": "30s", - "retryPolicy": { - "maxAttempts": 3, - "initialBackoff": "0.100s", - "maxBackoff": "1s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": ["UNAVAILABLE"] - } - }] -} diff --git a/google/cloud/billing/budgets/v1/BUILD.bazel b/google/cloud/billing/budgets/v1/BUILD.bazel index 36c3acfc8..29a111c5f 100644 --- a/google/cloud/billing/budgets/v1/BUILD.bazel +++ b/google/cloud/billing/budgets/v1/BUILD.bazel @@ -30,17 +30,18 @@ load( "java_proto_library", "nodejs_gapic_assembly_pkg", "nodejs_gapic_library", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_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", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", ) # This is an API workspace, having public visibility by default makes perfect sense. @@ -91,6 +92,7 @@ java_gapic_library( test_deps = [ ":budgets_java_grpc", ], + transport = "grpc+rest", deps = [ ":budgets_java_proto", ], @@ -99,6 +101,7 @@ java_gapic_library( java_gapic_test( name = "budgets_java_gapic_test_suite", test_classes = [ + "com.google.cloud.billing.budgets.v1.BudgetServiceClientHttpJsonTest", "com.google.cloud.billing.budgets.v1.BudgetServiceClientTest", ], runtime_deps = [":budgets_java_gapic_test"], @@ -107,6 +110,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-billing-budgets-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":budgets_java_gapic", ":budgets_java_grpc", @@ -134,6 +139,7 @@ go_gapic_library( importpath = "cloud.google.com/go/billing/budgets/apiv1;budgets", metadata = True, service_yaml = "billingbudgets.yaml", + transport = "grpc+rest", deps = [ ":budgets_go_proto", ], @@ -161,6 +167,17 @@ py_gapic_library( name = "budgets_py_gapic", srcs = [":budgets_proto"], grpc_service_config = "billingbudgets_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "budgets_py_gapic_test", + srcs = [ + "budgets_py_gapic_pytest.py", + "budgets_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":budgets_py_gapic"], ) # Open Source Packages @@ -278,6 +295,7 @@ csharp_gapic_library( srcs = [":budgets_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "billingbudgets_grpc_service_config.json", + service_yaml = "billingbudgets.yaml", deps = [ ":budgets_csharp_grpc", ":budgets_csharp_proto", diff --git a/google/cloud/billing/budgets/v1beta1/BUILD.bazel b/google/cloud/billing/budgets/v1beta1/BUILD.bazel index 2c90a2fa3..dba748446 100644 --- a/google/cloud/billing/budgets/v1beta1/BUILD.bazel +++ b/google/cloud/billing/budgets/v1beta1/BUILD.bazel @@ -91,6 +91,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-billing-budgets-v1beta1-java", + include_samples = True, deps = [ ":budgets_java_gapic", ":budgets_java_grpc", @@ -159,12 +160,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "budgets_py_gapic", srcs = [":budgets_proto"], grpc_service_config = "billingbudgets_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "budgets_py_gapic_test", + srcs = [ + "budgets_py_gapic_pytest.py", + "budgets_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":budgets_py_gapic"], ) # Open Source Packages @@ -323,6 +336,7 @@ csharp_gapic_library( srcs = [":budgets_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "billingbudgets_grpc_service_config.json", + service_yaml = "billingbudgets.yaml", deps = [ ":budgets_csharp_grpc", ":budgets_csharp_proto", diff --git a/google/cloud/billing/budgets/v1beta1/budget_model.proto b/google/cloud/billing/budgets/v1beta1/budget_model.proto index 8d68393d4..c269c8194 100644 --- a/google/cloud/billing/budgets/v1beta1/budget_model.proto +++ b/google/cloud/billing/budgets/v1beta1/budget_model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -46,9 +46,9 @@ message Budget { // Validation: <= 60 chars. string display_name = 2; - // Optional. Filters that define which resources are used to compute the - // actual spend against the budget amount, such as projects, services, and the - // budget's time period, as well as other filters. + // Optional. Filters that define which resources are used to compute the actual spend + // against the budget amount, such as projects, services, and the budget's + // time period, as well as other filters. Filter budget_filter = 3 [(google.api.field_behavior) = OPTIONAL]; // Required. Budgeted amount. @@ -56,11 +56,13 @@ message Budget { // Optional. Rules that trigger alerts (notifications of thresholds // being crossed) when spend exceeds the specified percentages of the budget. - repeated ThresholdRule threshold_rules = 5 - [(google.api.field_behavior) = OPTIONAL]; + // + // Optional for `pubsubTopic` notifications. + // + // Required if using email notifications. + repeated ThresholdRule threshold_rules = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Rules to apply to notifications sent based on budget spend and - // thresholds. + // Optional. Rules to apply to notifications sent based on budget spend and thresholds. AllUpdatesRule all_updates_rule = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. Etag to validate that the object is unchanged for a @@ -82,31 +84,45 @@ message BudgetAmount { // Use the last period's actual spend as the budget for the present period. // LastPeriodAmount can only be set when the budget's time period is a - // [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period]. - // It cannot be set in combination with + // [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period]. It cannot be set in combination with // [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period]. LastPeriodAmount last_period_amount = 2; } } -// Describes a budget amount targeted to the last -// [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period] +// Describes a budget amount targeted to the last [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period] // spend. At this time, the amount is automatically 100% of the last calendar // period's spend; that is, there are no other options yet. // Future configuration options will be described here (for example, configuring // a percentage of last period's spend). // LastPeriodAmount cannot be set for a budget configured with -// a -// [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period]. -message LastPeriodAmount {} - -// ThresholdRule contains a definition of a threshold which triggers -// an alert (a notification of a threshold being crossed) to be sent when -// spend goes above the specified amount. -// Alerts are automatically e-mailed to users with the Billing Account -// Administrator role or the Billing Account User role. -// The thresholds here have no effect on notifications sent to anything -// configured under `Budget.all_updates_rule`. +// a [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period]. +message LastPeriodAmount { + +} + +// ThresholdRule contains the definition of a threshold. Threshold rules define +// the triggering events used to generate a budget notification email. When a +// threshold is crossed (spend exceeds the specified percentages of the +// budget), budget alert emails are sent to the email recipients you specify +// in the +// [NotificationsRule](#notificationsrule). +// +// Threshold rules also affect the fields included in the +// [JSON data +// object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) +// sent to a Pub/Sub topic. +// +// Threshold rules are _required_ if using email notifications. +// +// Threshold rules are _optional_ if only setting a +// [`pubsubTopic` NotificationsRule](#NotificationsRule), +// unless you want your JSON data object to include data about the thresholds +// you set. +// +// For more information, see +// [set budget threshold rules and +// actions](https://cloud.google.com/billing/docs/how-to/budgets#budget-actions). message ThresholdRule { // The type of basis used to determine if spend has passed the threshold. enum Basis { @@ -119,8 +135,7 @@ message ThresholdRule { // Use forecasted spend for the period as the basis for comparison against // the threshold. // FORECASTED_SPEND can only be set when the budget's time period is a - // [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period]. - // It cannot be set in combination with + // [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period]. It cannot be set in combination with // [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period]. FORECASTED_SPEND = 2; } @@ -138,10 +153,10 @@ message ThresholdRule { // AllUpdatesRule defines notifications that are sent based on budget spend // and thresholds. message AllUpdatesRule { - // Optional. The name of the Pub/Sub topic where budget related messages will - // be published, in the form `projects/{project_id}/topics/{topic_id}`. - // Updates are sent at regular intervals to the topic. The topic needs to be - // created before the budget is created; see + // Optional. The name of the Pub/Sub topic where budget related messages will be + // published, in the form `projects/{project_id}/topics/{topic_id}`. Updates + // are sent at regular intervals to the topic. + // The topic needs to be created before the budget is created; see // https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications // for more details. // Caller is expected to have @@ -151,31 +166,26 @@ message AllUpdatesRule { // for more details on Pub/Sub roles and permissions. string pubsub_topic = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Required when - // [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic] - // is set. The schema version of the notification sent to - // [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic]. - // Only "1.0" is accepted. It represents the JSON schema as defined in + // Optional. Required when [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic] is set. The schema version of + // the notification sent to [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic]. Only "1.0" is + // accepted. It represents the JSON schema as defined in // https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format. string schema_version = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Targets to send notifications to when a threshold is exceeded. - // This is in addition to default recipients who have billing account IAM - // roles. The value is the full REST resource name of a monitoring - // notification channel with the form + // Optional. Targets to send notifications to when a threshold is exceeded. This is in + // addition to default recipients who have billing account IAM roles. + // The value is the full REST resource name of a monitoring notification + // channel with the form // `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 // channels are allowed. See // https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients // for more details. - repeated string monitoring_notification_channels = 3 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. When set to true, disables default notifications sent when a - // threshold is exceeded. Default notifications are sent to those with Billing - // Account Administrator and Billing Account User IAM roles for the target - // account. - bool disable_default_iam_recipients = 4 - [(google.api.field_behavior) = OPTIONAL]; + repeated string monitoring_notification_channels = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When set to true, disables default notifications sent when a threshold is + // exceeded. Default notifications are sent to those with Billing Account + // Administrator and Billing Account User IAM roles for the target account. + bool disable_default_iam_recipients = 4 [(google.api.field_behavior) = OPTIONAL]; } // A filter for a budget, limiting the scope of the cost to calculate. @@ -210,21 +220,18 @@ message Filter { // Only zero or one project can be specified currently. repeated string projects = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If - // [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.Filter.credit_types_treatment] - // is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be - // subtracted from gross cost to determine the spend for threshold - // calculations. See [a list of acceptable credit type + // Optional. If [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.Filter.credit_types_treatment] is INCLUDE_SPECIFIED_CREDITS, this is + // a list of credit types to be subtracted from gross cost to determine the + // spend for threshold calculations. See + // [a list of acceptable credit type // values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). // - // If - // [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.Filter.credit_types_treatment] - // is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. + // If [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.Filter.credit_types_treatment] is **not** INCLUDE_SPECIFIED_CREDITS, + // this field must be empty. repeated string credit_types = 7 [(google.api.field_behavior) = OPTIONAL]; // Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`. - CreditTypesTreatment credit_types_treatment = 4 - [(google.api.field_behavior) = OPTIONAL]; + CreditTypesTreatment credit_types_treatment = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. A set of services of the form `services/{service_id}`, // specifying that usage from only this set of services should be @@ -234,24 +241,28 @@ message Filter { // https://cloud.google.com/billing/v1/how-tos/catalog-api. repeated string services = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, - // specifying that usage from only this set of subaccounts should be included - // in the budget. If a subaccount is set to the name of the parent account, + // Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, specifying + // that usage from only this set of subaccounts should be included in the + // budget. If a subaccount is set to the name of the parent account, // usage from the parent account will be included. If omitted, the // report will include usage from the parent account and all // subaccounts, if they exist. repeated string subaccounts = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A single label and value pair specifying that usage from only - // this set of labeled resources should be included in the budget. Currently, - // multiple entries or multiple values per entry are not allowed. If omitted, - // the report will include all labeled and unlabeled usage. - map labels = 6 - [(google.api.field_behavior) = OPTIONAL]; + // Optional. A single label and value pair specifying that usage from only this set of + // labeled resources should be included in the budget. If omitted, the + // report will include all labeled and unlabeled usage. + // + // An object containing a single `"key": value` pair. Example: `{ "name": + // "wrench" }`. + // + // _Currently, multiple entries or multiple values per entry are not + // allowed._ + map labels = 6 [(google.api.field_behavior) = OPTIONAL]; // Multiple options to choose the budget's time period, specifying that only // usage that occurs during this time period should be included in the budget. - // If not set, the `usage_period` defaults to CalendarPeriod.MONTH. + // If not set, the usage_period defaults to CalendarPeriod.MONTH. oneof usage_period { // Optional. Specifies to track usage for recurring calendar period. // For example, assume that CalendarPeriod.QUARTER is set. The budget will @@ -261,8 +272,8 @@ message Filter { // so on. CalendarPeriod calendar_period = 8 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Specifies to track usage from any start date (required) to any - // end date (optional). This time period is static, it does not recur. + // Optional. Specifies to track usage from any start date (required) to any end date + // (optional). This time period is static, it does not recur. CustomPeriod custom_period = 9 [(google.api.field_behavior) = OPTIONAL]; } } @@ -272,9 +283,9 @@ message CustomPeriod { // Required. The start date must be after January 1, 2017. google.type.Date start_date = 1 [(google.api.field_behavior) = REQUIRED]; - // Optional. The end date of the time period. Budgets with elapsed end date - // won't be processed. If unset, specifies to track all usage incurred since - // the start_date. + // Optional. The end date of the time period. Budgets with elapsed end date won't be + // processed. If unset, specifies to track all usage + // incurred since the start_date. google.type.Date end_date = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -283,6 +294,8 @@ message CustomPeriod { // `CalendarPeriod`". All calendar times begin at 12 AM US and Canadian // Pacific Time (UTC-8). enum CalendarPeriod { + // Calendar period is unset. This is the default if the budget is for a + // custom time period (CustomPeriod). CALENDAR_PERIOD_UNSPECIFIED = 0; // A month. Month starts on the first day of each month, such as January 1, diff --git a/google/cloud/billing/budgets/v1beta1/budget_service.proto b/google/cloud/billing/budgets/v1beta1/budget_service.proto index d97934704..e38c0aa35 100644 --- a/google/cloud/billing/budgets/v1beta1/budget_service.proto +++ b/google/cloud/billing/budgets/v1beta1/budget_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -37,7 +37,7 @@ service BudgetService { "https://www.googleapis.com/auth/cloud-platform"; // Creates a new budget. See - // Quotas and limits + // [Quotas and limits](https://cloud.google.com/billing/quotas) // for more information on the limits of the number of budgets you can create. rpc CreateBudget(CreateBudgetRequest) returns (Budget) { option (google.api.http) = { @@ -117,8 +117,7 @@ message UpdateBudgetRequest { // updated. See // https://developers.google.com/protocol-buffers/docs/proto3#default for more // details about default values. - google.protobuf.FieldMask update_mask = 2 - [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for GetBudget diff --git a/google/cloud/billing/v1/BUILD.bazel b/google/cloud/billing/v1/BUILD.bazel index 14fa78321..027152bb5 100644 --- a/google/cloud/billing/v1/BUILD.bazel +++ b/google/cloud/billing/v1/BUILD.bazel @@ -67,6 +67,7 @@ java_gapic_library( ":billing_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":billing_java_proto", "//google/iam/v1:iam_java_proto", @@ -76,7 +77,9 @@ java_gapic_library( java_gapic_test( name = "billing_java_gapic_test_suite", test_classes = [ + "com.google.cloud.billing.v1.CloudBillingClientHttpJsonTest", "com.google.cloud.billing.v1.CloudBillingClientTest", + "com.google.cloud.billing.v1.CloudCatalogClientHttpJsonTest", "com.google.cloud.billing.v1.CloudCatalogClientTest", ], runtime_deps = [":billing_java_gapic_test"], @@ -85,6 +88,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-billing-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":billing_java_gapic", ":billing_java_grpc", @@ -122,6 +127,7 @@ go_gapic_library( grpc_service_config = "cloud_billing_grpc_service_config.json", importpath = "cloud.google.com/go/billing/apiv1;billing", service_yaml = "cloudbilling.yaml", + transport = "grpc+rest", deps = [ ":billing_go_proto", "//google/iam/v1:iam_go_proto", @@ -152,12 +158,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "billing_py_gapic", srcs = [":billing_proto"], grpc_service_config = "cloud_billing_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "billing_py_gapic_test", + srcs = [ + "billing_py_gapic_pytest.py", + "billing_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":billing_py_gapic"], ) # Open Source Packages @@ -316,6 +337,7 @@ csharp_gapic_library( srcs = [":billing_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloud_billing_grpc_service_config.json", + service_yaml = "cloudbilling.yaml", deps = [ ":billing_csharp_grpc", ":billing_csharp_proto", diff --git a/google/cloud/binaryauthorization/v1/BUILD.bazel b/google/cloud/binaryauthorization/v1/BUILD.bazel index 839562826..f131c0649 100644 --- a/google/cloud/binaryauthorization/v1/BUILD.bazel +++ b/google/cloud/binaryauthorization/v1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":binaryauthorization_java_grpc", ], + transport = "grpc+rest", deps = [ ":binaryauthorization_java_proto", "//google/api:api_java_proto", @@ -85,8 +86,11 @@ java_gapic_library( java_gapic_test( name = "binaryauthorization_java_gapic_test_suite", test_classes = [ + "com.google.protos.google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1ClientHttpJsonTest", "com.google.protos.google.cloud.binaryauthorization.v1.BinauthzManagementServiceV1ClientTest", + "com.google.protos.google.cloud.binaryauthorization.v1.SystemPolicyV1ClientHttpJsonTest", "com.google.protos.google.cloud.binaryauthorization.v1.SystemPolicyV1ClientTest", + "com.google.protos.google.cloud.binaryauthorization.v1.ValidationHelperV1ClientHttpJsonTest", "com.google.protos.google.cloud.binaryauthorization.v1.ValidationHelperV1ClientTest", ], runtime_deps = [":binaryauthorization_java_gapic_test"], @@ -95,6 +99,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-binaryauthorization-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":binaryauthorization_java_gapic", ":binaryauthorization_java_grpc", @@ -130,8 +136,9 @@ go_gapic_library( srcs = [":binaryauthorization_proto_with_info"], grpc_service_config = "binaryauthorization_grpc_service_config.json", importpath = "cloud.google.com/go/binaryauthorization/apiv1;binaryauthorization", - service_yaml = "binaryauthorization_v1.yaml", metadata = True, + service_yaml = "binaryauthorization_v1.yaml", + transport = "grpc+rest", deps = [ ":binaryauthorization_go_proto", ], @@ -149,8 +156,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-binaryauthorization-v1-go", deps = [ ":binaryauthorization_go_gapic", - ":binaryauthorization_go_gapic_srcjar-test.srcjar", ":binaryauthorization_go_gapic_srcjar-metadata.srcjar", + ":binaryauthorization_go_gapic_srcjar-test.srcjar", ":binaryauthorization_go_proto", ], ) @@ -162,12 +169,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "binaryauthorization_py_gapic", srcs = [":binaryauthorization_proto"], grpc_service_config = "binaryauthorization_grpc_service_config.json", + transport = "grpc", + deps = [ + "//grafeas/v1:grafeas_py_proto", + ], +) + +py_test( + name = "binaryauthorization_py_gapic_test", + srcs = [ + "binaryauthorization_py_gapic_pytest.py", + "binaryauthorization_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":binaryauthorization_py_gapic"], ) # Open Source Packages @@ -255,8 +277,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -331,6 +353,7 @@ csharp_gapic_library( srcs = [":binaryauthorization_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "binaryauthorization_grpc_service_config.json", + service_yaml = "binaryauthorization_v1.yaml", deps = [ ":binaryauthorization_csharp_grpc", ":binaryauthorization_csharp_proto", diff --git a/google/cloud/binaryauthorization/v1/binaryauthorization_v1.yaml b/google/cloud/binaryauthorization/v1/binaryauthorization_v1.yaml index 42d357731..66dcdeb2c 100644 --- a/google/cloud/binaryauthorization/v1/binaryauthorization_v1.yaml +++ b/google/cloud/binaryauthorization/v1/binaryauthorization_v1.yaml @@ -11,7 +11,8 @@ apis: documentation: summary: |- The management interface for Binary Authorization, a system providing - policy control for images deployed to Kubernetes Engine clusters. + policy control for images deployed to Kubernetes Engine clusters, Anthos + clusters on VMware, and Cloud Run. rules: - selector: google.iam.v1.IAMPolicy.GetIamPolicy description: |- diff --git a/google/cloud/binaryauthorization/v1/resources.proto b/google/cloud/binaryauthorization/v1/resources.proto index 9d72a9f0d..5df7f58bd 100644 --- a/google/cloud/binaryauthorization/v1/resources.proto +++ b/google/cloud/binaryauthorization/v1/resources.proto @@ -19,7 +19,6 @@ package google.cloud.binaryauthorization.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.BinaryAuthorization.V1"; diff --git a/google/cloud/binaryauthorization/v1beta1/BUILD.bazel b/google/cloud/binaryauthorization/v1beta1/BUILD.bazel index 23dd381a1..f48d4ed6b 100644 --- a/google/cloud/binaryauthorization/v1beta1/BUILD.bazel +++ b/google/cloud/binaryauthorization/v1beta1/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":binaryauthorization_java_grpc", ], + transport = "grpc+rest", deps = [ ":binaryauthorization_java_proto", ], @@ -81,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "binaryauthorization_java_gapic_test_suite", test_classes = [ + "com.google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1ClientHttpJsonTest", "com.google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1ClientTest", ], runtime_deps = [":binaryauthorization_java_gapic_test"], @@ -89,6 +91,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-binaryauthorization-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":binaryauthorization_java_gapic", ":binaryauthorization_java_grpc", @@ -125,6 +129,7 @@ go_gapic_library( importpath = "cloud.google.com/go/binaryauthorization/apiv1beta1;binaryauthorization", metadata = True, service_yaml = "binaryauthorization_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":binaryauthorization_go_proto", ], @@ -155,12 +160,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "binaryauthorization_py_gapic", srcs = [":binaryauthorization_proto"], grpc_service_config = "binaryauthorization_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "binaryauthorization_py_gapic_test", + srcs = [ + "binaryauthorization_py_gapic_pytest.py", + "binaryauthorization_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":binaryauthorization_py_gapic"], ) # Open Source Packages @@ -321,6 +338,7 @@ csharp_gapic_library( srcs = [":binaryauthorization_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "binaryauthorization_grpc_service_config.json", + service_yaml = "binaryauthorization_v1beta1.yaml", deps = [ ":binaryauthorization_csharp_grpc", ":binaryauthorization_csharp_proto", diff --git a/google/cloud/binaryauthorization/v1beta1/binaryauthorization_v1beta1.yaml b/google/cloud/binaryauthorization/v1beta1/binaryauthorization_v1beta1.yaml index bfdab20d3..e1334f167 100644 --- a/google/cloud/binaryauthorization/v1beta1/binaryauthorization_v1beta1.yaml +++ b/google/cloud/binaryauthorization/v1beta1/binaryauthorization_v1beta1.yaml @@ -10,7 +10,8 @@ apis: documentation: summary: |- The management interface for Binary Authorization, a system providing - policy control for images deployed to Kubernetes Engine clusters. + policy control for images deployed to Kubernetes Engine clusters, Anthos + clusters on VMware, and Cloud Run. rules: - selector: google.iam.v1.IAMPolicy.GetIamPolicy description: |- diff --git a/google/cloud/binaryauthorization/v1beta1/continuous_validation_logging.proto b/google/cloud/binaryauthorization/v1beta1/continuous_validation_logging.proto index 4f7bfdd8c..1666b5189 100644 --- a/google/cloud/binaryauthorization/v1beta1/continuous_validation_logging.proto +++ b/google/cloud/binaryauthorization/v1beta1/continuous_validation_logging.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -31,6 +31,15 @@ option ruby_package = "Google::Cloud::BinaryAuthorization::V1beta1"; message ContinuousValidationEvent { // An auditing event for one Pod. message ContinuousValidationPodEvent { + // Audit time policy conformance verdict. + enum PolicyConformanceVerdict { + // We should always have a verdict. This is an error. + POLICY_CONFORMANCE_VERDICT_UNSPECIFIED = 0; + + // The pod violates the policy. + VIOLATES_POLICY = 1; + } + // Container image with auditing details. message ImageDetails { // Result of the audit. @@ -55,14 +64,8 @@ message ContinuousValidationEvent { string description = 3; } - // Audit time policy conformance verdict. - enum PolicyConformanceVerdict { - // We should always have a verdict. This is an error. - POLICY_CONFORMANCE_VERDICT_UNSPECIFIED = 0; - - // The pod violates the policy. - VIOLATES_POLICY = 1; - } + // The k8s namespace of the Pod. + string pod_namespace = 7; // The name of the Pod. string pod = 1; diff --git a/google/cloud/binaryauthorization/v1beta1/resources.proto b/google/cloud/binaryauthorization/v1beta1/resources.proto index 3e5b638ff..28c18f99a 100644 --- a/google/cloud/binaryauthorization/v1beta1/resources.proto +++ b/google/cloud/binaryauthorization/v1beta1/resources.proto @@ -19,7 +19,6 @@ package google.cloud.binaryauthorization.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.BinaryAuthorization.V1Beta1"; diff --git a/google/cloud/certificatemanager/BUILD.bazel b/google/cloud/certificatemanager/BUILD.bazel new file mode 100644 index 000000000..a1df191d7 --- /dev/null +++ b/google/cloud/certificatemanager/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-certificate_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 certificatemanager. +# 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 = "certificatemanager_ruby_wrapper", + srcs = ["//google/cloud/certificatemanager/v1:certificatemanager_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-certificate_manager", + "ruby-cloud-wrapper-of=v1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/certificate-manager", + "ruby-cloud-api-id=certificatemanager.googleapis.com", + "ruby-cloud-api-shortname=certificatemanager", + ], + ruby_cloud_description = "Certificate Manager lets you acquire and manage Transport Layer Security (TLS) (SSL) certificates for use with classic external HTTP(S) load balancers in Google Cloud.", + ruby_cloud_title = "Certificate Manager", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-certificatemanager-ruby", + deps = [ + ":certificatemanager_ruby_wrapper", + ], +) diff --git a/google/cloud/certificatemanager/logging/v1/BUILD.bazel b/google/cloud/certificatemanager/logging/v1/BUILD.bazel new file mode 100644 index 000000000..995388978 --- /dev/null +++ b/google/cloud/certificatemanager/logging/v1/BUILD.bazel @@ -0,0 +1,175 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "logs.proto", + ], + deps = [ + "@com_google_protobuf//:timestamp_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/certificatemanager/logging/v1", + protos = [":logging_proto"], + deps = [ + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/certificatemanager/logging/v1/logs.proto b/google/cloud/certificatemanager/logging/v1/logs.proto new file mode 100644 index 000000000..625027755 --- /dev/null +++ b/google/cloud/certificatemanager/logging/v1/logs.proto @@ -0,0 +1,57 @@ +// 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.cloud.certificatemanager.logging.v1; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CertificateManager.Logging.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/certificatemanager/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "LogsProto"; +option java_package = "com.google.cloud.certificatemanager.logging.v1"; +option php_namespace = "Google\\Cloud\\CertificateManager\\Logging\\V1"; +option ruby_package = "Google::Cloud::CertificateManager::Logging::V1"; + +// Log message which notifies about expired or close to +// expiry certificates. +message CertificatesExpiry { + // Expiration state of the certificate. + enum State { + // Unspecified state, should never be reported. + STATE_UNSPECIFIED = 0; + + // Certificate will expire soon. + CLOSE_TO_EXPIRY = 1; + + // Certificate is expired. + EXPIRED = 2; + } + + // Number of reported certificates. + int64 count = 1; + + // Names of reported certificates. If there are too many, the list is sampled. + repeated string certificates = 2; + + // State of reported certificates. + State state = 3; + + // Approximated expire time of reported certificates. + // Multiple certificates with close expire time are batched together in a + // single log, so the timestamp is not precise. + google.protobuf.Timestamp expire_time = 4; +} diff --git a/google/cloud/certificatemanager/v1/BUILD.bazel b/google/cloud/certificatemanager/v1/BUILD.bazel new file mode 100644 index 000000000..5a5bf8f49 --- /dev/null +++ b/google/cloud/certificatemanager/v1/BUILD.bazel @@ -0,0 +1,392 @@ +# 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 = "certificatemanager_proto", + srcs = [ + "certificate_manager.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//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "certificatemanager_proto_with_info", + deps = [ + ":certificatemanager_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "certificatemanager_java_proto", + deps = [":certificatemanager_proto"], +) + +java_grpc_library( + name = "certificatemanager_java_grpc", + srcs = [":certificatemanager_proto"], + deps = [":certificatemanager_java_proto"], +) + +java_gapic_library( + name = "certificatemanager_java_gapic", + srcs = [":certificatemanager_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "certificatemanager_grpc_service_config.json", + service_yaml = "certificatemanager_v1.yaml", + test_deps = [ + ":certificatemanager_java_grpc", + "//google/cloud/location:location_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":certificatemanager_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "certificatemanager_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.certificatemanager.v1.CertificateManagerClientHttpJsonTest", + "com.google.cloud.certificatemanager.v1.CertificateManagerClientTest", + ], + runtime_deps = [":certificatemanager_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-certificatemanager-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":certificatemanager_java_gapic", + ":certificatemanager_java_grpc", + ":certificatemanager_java_proto", + ":certificatemanager_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "certificatemanager_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/certificatemanager/v1", + protos = [":certificatemanager_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "certificatemanager_go_gapic", + srcs = [":certificatemanager_proto_with_info"], + grpc_service_config = "certificatemanager_grpc_service_config.json", + importpath = "cloud.google.com/go/certificatemanager/apiv1;certificatemanager", + metadata = True, + service_yaml = "certificatemanager_v1.yaml", + transport = "grpc+rest", + deps = [ + ":certificatemanager_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", + ], +) + +go_test( + name = "certificatemanager_go_gapic_test", + srcs = [":certificatemanager_go_gapic_srcjar_test"], + embed = [":certificatemanager_go_gapic"], + importpath = "cloud.google.com/go/certificatemanager/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-certificatemanager-v1-go", + deps = [ + ":certificatemanager_go_gapic", + ":certificatemanager_go_gapic_srcjar-metadata.srcjar", + ":certificatemanager_go_gapic_srcjar-test.srcjar", + ":certificatemanager_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "certificatemanager_py_gapic", + srcs = [":certificatemanager_proto"], + grpc_service_config = "certificatemanager_grpc_service_config.json", + opt_args = [ + "python-gapic-name=certificate_manager", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-certificate-manager", + ], + service_yaml = "certificatemanager_v1.yaml", + transport = "grpc", +) + +py_test( + name = "certificatemanager_py_gapic_test", + srcs = [ + "certificatemanager_py_gapic_pytest.py", + "certificatemanager_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":certificatemanager_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "certificatemanager-v1-py", + deps = [ + ":certificatemanager_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "certificatemanager_php_proto", + deps = [":certificatemanager_proto"], +) + +php_grpc_library( + name = "certificatemanager_php_grpc", + srcs = [":certificatemanager_proto"], + deps = [":certificatemanager_php_proto"], +) + +php_gapic_library( + name = "certificatemanager_php_gapic", + srcs = [":certificatemanager_proto_with_info"], + grpc_service_config = "certificatemanager_grpc_service_config.json", + service_yaml = "certificatemanager_v1.yaml", + deps = [ + ":certificatemanager_php_grpc", + ":certificatemanager_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-certificatemanager-v1-php", + deps = [ + ":certificatemanager_php_gapic", + ":certificatemanager_php_grpc", + ":certificatemanager_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "certificatemanager_nodejs_gapic", + package_name = "@google-cloud/certificate-manager", + src = ":certificatemanager_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "certificatemanager_grpc_service_config.json", + package = "google.cloud.certificatemanager.v1", + service_yaml = "certificatemanager_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "certificatemanager-v1-nodejs", + deps = [ + ":certificatemanager_nodejs_gapic", + ":certificatemanager_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 = "certificatemanager_ruby_proto", + deps = [":certificatemanager_proto"], +) + +ruby_grpc_library( + name = "certificatemanager_ruby_grpc", + srcs = [":certificatemanager_proto"], + deps = [":certificatemanager_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "certificatemanager_ruby_gapic", + srcs = [":certificatemanager_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=certificatemanager.googleapis.com", + "ruby-cloud-api-shortname=certificatemanager", + "ruby-cloud-gem-name=google-cloud-certificate_manager-v1", + "ruby-cloud-product-url=https://cloud.google.com/certificate-manager", + ], + grpc_service_config = "certificatemanager_grpc_service_config.json", + ruby_cloud_description = "Certificate Manager lets you acquire and manage Transport Layer Security (TLS) (SSL) certificates for use with classic external HTTP(S) load balancers in Google Cloud.", + ruby_cloud_title = "Certificate Manager V1", + service_yaml = "certificatemanager_v1.yaml", + deps = [ + ":certificatemanager_ruby_grpc", + ":certificatemanager_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-certificatemanager-v1-ruby", + deps = [ + ":certificatemanager_ruby_gapic", + ":certificatemanager_ruby_grpc", + ":certificatemanager_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 = "certificatemanager_csharp_proto", + deps = [":certificatemanager_proto"], +) + +csharp_grpc_library( + name = "certificatemanager_csharp_grpc", + srcs = [":certificatemanager_proto"], + deps = [":certificatemanager_csharp_proto"], +) + +csharp_gapic_library( + name = "certificatemanager_csharp_gapic", + srcs = [":certificatemanager_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "certificatemanager_grpc_service_config.json", + service_yaml = "certificatemanager_v1.yaml", + deps = [ + ":certificatemanager_csharp_grpc", + ":certificatemanager_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-certificatemanager-v1-csharp", + deps = [ + ":certificatemanager_csharp_gapic", + ":certificatemanager_csharp_grpc", + ":certificatemanager_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "certificatemanager_cc_proto", + deps = [":certificatemanager_proto"], +) + +cc_grpc_library( + name = "certificatemanager_cc_grpc", + srcs = [":certificatemanager_proto"], + grpc_only = True, + deps = [":certificatemanager_cc_proto"], +) diff --git a/google/cloud/certificatemanager/v1/certificate_manager.proto b/google/cloud/certificatemanager/v1/certificate_manager.proto new file mode 100644 index 000000000..2b221da44 --- /dev/null +++ b/google/cloud/certificatemanager/v1/certificate_manager.proto @@ -0,0 +1,1061 @@ +// 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.cloud.certificatemanager.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/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CertificateManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/certificatemanager/v1;certificatemanager"; +option java_multiple_files = true; +option java_outer_classname = "CertificateManagerProto"; +option java_package = "com.google.cloud.certificatemanager.v1"; +option php_namespace = "Google\\Cloud\\CertificateManager\\V1"; +option ruby_package = "Google::Cloud::CertificateManager::V1"; + +// API Overview +// +// Certificates Manager API allows customers to see and manage all their TLS +// certificates. +// +// Certificates Manager API service provides methods to manage certificates, +// group them into collections, and create serving configuration that can be +// easily applied to other Cloud resources e.g. Target Proxies. +// +// Data Model +// +// The Certificates Manager service exposes the following resources: +// +// * `Certificate` which describes a single TLS certificate. +// * `CertificateMap` which describes a collection of certificates that can be +// attached to a target resource. +// * `CertificateMapEntry` which describes a single configuration entry that +// consists of a SNI and a group of certificates. It's a subresource of +// CertificateMap. +// +// Certificate, CertificateMap and CertificateMapEntry IDs +// have to match "^[a-z0-9-]{1,63}$" regexp, which means that +// - only lower case letters, digits, and hyphen are allowed +// - length of the resource ID has to be in [1,63] range. +// +// Provides methods to manage Cloud Certificate Manager entities. +service CertificateManager { + option (google.api.default_host) = "certificatemanager.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Lists Certificates in a given project and location. + rpc ListCertificates(ListCertificatesRequest) returns (ListCertificatesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/certificates" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Certificate. + rpc GetCertificate(GetCertificateRequest) returns (Certificate) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/certificates/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Certificate in a given project and location. + rpc CreateCertificate(CreateCertificateRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/certificates" + body: "certificate" + }; + option (google.api.method_signature) = "parent,certificate,certificate_id"; + option (google.longrunning.operation_info) = { + response_type: "Certificate" + metadata_type: "OperationMetadata" + }; + } + + // Updates a Certificate. + rpc UpdateCertificate(UpdateCertificateRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{certificate.name=projects/*/locations/*/certificates/*}" + body: "certificate" + }; + option (google.api.method_signature) = "certificate,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Certificate" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single Certificate. + rpc DeleteCertificate(DeleteCertificateRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/certificates/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists CertificateMaps in a given project and location. + rpc ListCertificateMaps(ListCertificateMapsRequest) returns (ListCertificateMapsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/certificateMaps" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single CertificateMap. + rpc GetCertificateMap(GetCertificateMapRequest) returns (CertificateMap) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/certificateMaps/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new CertificateMap in a given project and location. + rpc CreateCertificateMap(CreateCertificateMapRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/certificateMaps" + body: "certificate_map" + }; + option (google.api.method_signature) = "parent,certificate_map,certificate_map_id"; + option (google.longrunning.operation_info) = { + response_type: "CertificateMap" + metadata_type: "OperationMetadata" + }; + } + + // Updates a CertificateMap. + rpc UpdateCertificateMap(UpdateCertificateMapRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{certificate_map.name=projects/*/locations/*/certificateMaps/*}" + body: "certificate_map" + }; + option (google.api.method_signature) = "certificate_map,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "CertificateMap" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single CertificateMap. A Certificate Map can't be deleted + // if it contains Certificate Map Entries. Remove all the entries from + // the map before calling this method. + rpc DeleteCertificateMap(DeleteCertificateMapRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/certificateMaps/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists CertificateMapEntries in a given project and location. + rpc ListCertificateMapEntries(ListCertificateMapEntriesRequest) returns (ListCertificateMapEntriesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/certificateMaps/*}/certificateMapEntries" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single CertificateMapEntry. + rpc GetCertificateMapEntry(GetCertificateMapEntryRequest) returns (CertificateMapEntry) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new CertificateMapEntry in a given project and location. + rpc CreateCertificateMapEntry(CreateCertificateMapEntryRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/certificateMaps/*}/certificateMapEntries" + body: "certificate_map_entry" + }; + option (google.api.method_signature) = "parent,certificate_map_entry,certificate_map_entry_id"; + option (google.longrunning.operation_info) = { + response_type: "CertificateMapEntry" + metadata_type: "OperationMetadata" + }; + } + + // Updates a CertificateMapEntry. + rpc UpdateCertificateMapEntry(UpdateCertificateMapEntryRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{certificate_map_entry.name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" + body: "certificate_map_entry" + }; + option (google.api.method_signature) = "certificate_map_entry,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "CertificateMapEntry" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single CertificateMapEntry. + rpc DeleteCertificateMapEntry(DeleteCertificateMapEntryRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists DnsAuthorizations in a given project and location. + rpc ListDnsAuthorizations(ListDnsAuthorizationsRequest) returns (ListDnsAuthorizationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/dnsAuthorizations" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single DnsAuthorization. + rpc GetDnsAuthorization(GetDnsAuthorizationRequest) returns (DnsAuthorization) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dnsAuthorizations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new DnsAuthorization in a given project and location. + rpc CreateDnsAuthorization(CreateDnsAuthorizationRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/dnsAuthorizations" + body: "dns_authorization" + }; + option (google.api.method_signature) = "parent,dns_authorization,dns_authorization_id"; + option (google.longrunning.operation_info) = { + response_type: "DnsAuthorization" + metadata_type: "OperationMetadata" + }; + } + + // Updates a DnsAuthorization. + rpc UpdateDnsAuthorization(UpdateDnsAuthorizationRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{dns_authorization.name=projects/*/locations/*/dnsAuthorizations/*}" + body: "dns_authorization" + }; + option (google.api.method_signature) = "dns_authorization,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "DnsAuthorization" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single DnsAuthorization. + rpc DeleteDnsAuthorization(DeleteDnsAuthorizationRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/dnsAuthorizations/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// Request for the `ListCertificates` method. +message ListCertificatesRequest { + // Required. The project and location from which the certificate 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 certificates to return per call. + int32 page_size = 2; + + // The value returned by the last `ListCertificatesResponse`. Indicates that + // this is a continuation of a prior `ListCertificates` call, and that the + // system should return the next page of data. + string page_token = 3; + + // Filter expression to restrict the Certificates returned. + string filter = 4; + + // 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". + string order_by = 5; +} + +// Response for the `ListCertificates` method. +message ListCertificatesResponse { + // A list of certificates for the parent resource. + repeated Certificate certificates = 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; + + // A list of locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for the `GetCertificate` method. +message GetCertificateRequest { + // Required. A name of the certificate to describe. Must be in the format + // `projects/*/locations/*/certificates/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/Certificate" + } + ]; +} + +// Request for the `CreateCertificate` method. +message CreateCertificateRequest { + // Required. The parent resource of the certificate. 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 certificate. + string certificate_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the certificate to create. + Certificate certificate = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateCertificate` method. +message UpdateCertificateRequest { + // Required. A definition of the certificate to update. + Certificate certificate = 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 `DeleteCertificate` method. +message DeleteCertificateRequest { + // Required. A name of the certificate to delete. Must be in the format + // `projects/*/locations/*/certificates/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/Certificate" + } + ]; +} + +// Request for the `ListCertificateMaps` method. +message ListCertificateMapsRequest { + // Required. The project and location from which the certificate maps 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 certificate maps to return per call. + int32 page_size = 2; + + // The value returned by the last `ListCertificateMapsResponse`. Indicates + // that this is a continuation of a prior `ListCertificateMaps` call, and that + // the system should return the next page of data. + string page_token = 3; + + // Filter expression to restrict the Certificates Maps returned. + string filter = 4; + + // 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". + string order_by = 5; +} + +// Response for the `ListCertificateMaps` method. +message ListCertificateMapsResponse { + // A list of certificate maps for the parent resource. + repeated CertificateMap certificate_maps = 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 `GetCertificateMap` method. +message GetCertificateMapRequest { + // Required. A name of the certificate map to describe. Must be in the format + // `projects/*/locations/*/certificateMaps/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMap" + } + ]; +} + +// Request for the `CreateCertificateMap` method. +message CreateCertificateMapRequest { + // Required. The parent resource of the certificate map. 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 certificate map. + string certificate_map_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the certificate map to create. + CertificateMap certificate_map = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateCertificateMap` method. +message UpdateCertificateMapRequest { + // Required. A definition of the certificate map to update. + CertificateMap certificate_map = 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 `DeleteCertificateMap` method. +message DeleteCertificateMapRequest { + // Required. A name of the certificate map to delete. Must be in the format + // `projects/*/locations/*/certificateMaps/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMap" + } + ]; +} + +// Request for the `ListCertificateMapEntries` method. +message ListCertificateMapEntriesRequest { + // Required. The project, location and certificate map from which the certificate map + // entries should be listed, specified in the format + // `projects/*/locations/*/certificateMaps/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMap" + } + ]; + + // Maximum number of certificate map entries to return. The service may return + // fewer than this value. + // If unspecified, at most 50 certificate map entries will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // The value returned by the last `ListCertificateMapEntriesResponse`. + // Indicates that this is a continuation of a prior + // `ListCertificateMapEntries` call, and that the system should return the + // next page of data. + string page_token = 3; + + // Filter expression to restrict the returned Certificate Map Entries. + string filter = 4; + + // 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". + string order_by = 5; +} + +// Response for the `ListCertificateMapEntries` method. +message ListCertificateMapEntriesResponse { + // A list of certificate map entries for the parent resource. + repeated CertificateMapEntry certificate_map_entries = 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 `GetCertificateMapEntry` method. +message GetCertificateMapEntryRequest { + // Required. A name of the certificate map entry to describe. Must be in the + // format `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMapEntry" + } + ]; +} + +// Request for the `CreateCertificateMapEntry` method. +message CreateCertificateMapEntryRequest { + // Required. The parent resource of the certificate map entry. Must be in the + // format `projects/*/locations/*/certificateMaps/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMap" + } + ]; + + // Required. A user-provided name of the certificate map entry. + string certificate_map_entry_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the certificate map entry to create. + CertificateMapEntry certificate_map_entry = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateCertificateMapEntry` method. +message UpdateCertificateMapEntryRequest { + // Required. A definition of the certificate map entry to create map entry. + CertificateMapEntry certificate_map_entry = 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 `DeleteCertificateMapEntry` method. +message DeleteCertificateMapEntryRequest { + // Required. A name of the certificate map entry to delete. Must be in the format + // `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMapEntry" + } + ]; +} + +// Request for the `ListDnsAuthorizations` method. +message ListDnsAuthorizationsRequest { + // Required. The project and location from which the dns authorizations 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 dns authorizations to return per call. + int32 page_size = 2; + + // The value returned by the last `ListDnsAuthorizationsResponse`. Indicates + // that this is a continuation of a prior `ListDnsAuthorizations` call, and + // that the system should return the next page of data. + string page_token = 3; + + // Filter expression to restrict the Dns Authorizations returned. + string filter = 4; + + // 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". + string order_by = 5; +} + +// Response for the `ListDnsAuthorizations` method. +message ListDnsAuthorizationsResponse { + // A list of dns authorizations for the parent resource. + repeated DnsAuthorization dns_authorizations = 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 `GetDnsAuthorization` method. +message GetDnsAuthorizationRequest { + // Required. A name of the dns authorization to describe. Must be in the format + // `projects/*/locations/*/dnsAuthorizations/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/DnsAuthorization" + } + ]; +} + +// Request for the `CreateDnsAuthorization` method. +message CreateDnsAuthorizationRequest { + // Required. The parent resource of the dns authorization. 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 dns authorization. + string dns_authorization_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the dns authorization to create. + DnsAuthorization dns_authorization = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateDnsAuthorization` method. +message UpdateDnsAuthorizationRequest { + // Required. A definition of the dns authorization to update. + DnsAuthorization dns_authorization = 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 `DeleteDnsAuthorization` method. +message DeleteDnsAuthorizationRequest { + // Required. A name of the dns authorization to delete. Must be in the format + // `projects/*/locations/*/dnsAuthorizations/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/DnsAuthorization" + } + ]; +} + +// Represents the metadata of the long-running operation. Output only. +message OperationMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // Server-defined resource path for the target of the operation. + string target = 3; + + // Name of the verb executed by the operation. + string verb = 4; + + // Human-readable status of the operation, if any. + string status_message = 5; + + // 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; + + // API version used to start the operation. + string api_version = 7; +} + +// Defines TLS certificate. +message Certificate { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/Certificate" + pattern: "projects/{project}/locations/{location}/certificates/{certificate}" + }; + + // Certificate data for a SelfManaged Certificate. + // SelfManaged Certificates are uploaded by the user. Updating such + // certificates before they expire remains the user's responsibility. + message SelfManagedCertificate { + // Input only. The PEM-encoded certificate chain. + // Leaf certificate comes first, followed by intermediate ones if any. + string pem_certificate = 1 [(google.api.field_behavior) = INPUT_ONLY]; + + // Input only. The PEM-encoded private key of the leaf certificate. + string pem_private_key = 2 [(google.api.field_behavior) = INPUT_ONLY]; + } + + // Configuration and state of a Managed Certificate. + // Certificate Manager provisions and renews Managed Certificates + // automatically, for as long as it's authorized to do so. + message ManagedCertificate { + enum State { + STATE_UNSPECIFIED = 0; + + // Certificate Manager attempts to provision or renew the certificate. + // If the process takes longer than expected, consult the + // `provisioning_issue` field. + PROVISIONING = 1; + + // Multiple certificate provisioning attempts failed and Certificate + // Manager gave up. To try again, delete and create a new managed + // Certificate resource. + // For details see the `provisioning_issue` field. + FAILED = 2; + + // The certificate management is working, and a certificate has been + // provisioned. + ACTIVE = 3; + } + + // Information about issues with provisioning a Managed Certificate. + message ProvisioningIssue { + enum Reason { + REASON_UNSPECIFIED = 0; + + // Certificate provisioning failed due to an issue with one or more of + // the domains on the certificate. + // For details of which domains failed, consult the + // `authorization_attempt_info` field. + AUTHORIZATION_ISSUE = 1; + + // Exceeded Certificate Authority quotas or internal rate limits of the + // system. Provisioning may take longer to complete. + RATE_LIMITED = 2; + } + + // Reason for provisioning failures. + Reason reason = 1; + + // Human readable explanation about the issue. Provided to help address + // the configuration issues. + // Not guaranteed to be stable. For programmatic access use Reason enum. + string details = 2; + } + + // State of the latest attempt to authorize a domain for certificate + // issuance. + message AuthorizationAttemptInfo { + enum State { + STATE_UNSPECIFIED = 0; + + // Certificate provisioning for this domain is under way. GCP will + // attempt to authorize the domain. + AUTHORIZING = 1; + + // A managed certificate can be provisioned, no issues for this domain. + AUTHORIZED = 6; + + // Attempt to authorize the domain failed. This prevents the Managed + // Certificate from being issued. + // See `failure_reason` and `details` fields for more information. + FAILED = 7; + } + + enum FailureReason { + FAILURE_REASON_UNSPECIFIED = 0; + + // There was a problem with the user's DNS or load balancer + // configuration for this domain. + CONFIG = 1; + + // Certificate issuance forbidden by an explicit CAA record for the + // domain or a failure to check CAA records for the domain. + CAA = 2; + + // Reached a CA or internal rate-limit for the domain, + // e.g. for certificates per top-level private domain. + RATE_LIMITED = 3; + } + + // Domain name of the authorization attempt. + string domain = 1; + + // State of the domain for managed certificate issuance. + State state = 2; + + // Output only. Reason for failure of the authorization attempt for the domain. + FailureReason failure_reason = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Human readable explanation for reaching the state. Provided to help + // address the configuration issues. + // Not guaranteed to be stable. For programmatic access use Reason enum. + string details = 4; + } + + // Immutable. The domains for which a managed SSL certificate will be generated. + // Wildcard domains are only supported with DNS challenge resolution. + repeated string domains = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Authorizations that will be used for performing domain authorization. + repeated string dns_authorizations = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/DnsAuthorization" + } + ]; + + // Output only. State of the managed certificate resource. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Information about issues with provisioning a Managed Certificate. + ProvisioningIssue provisioning_issue = 3; + + // Output only. Detailed state of the latest authorization attempt for each domain + // specified for managed certificate resource. + repeated AuthorizationAttemptInfo authorization_attempt_info = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Certificate scope. + enum Scope { + // Certificates with default scope are served from core Google data centers. + // If unsure, choose this option. + DEFAULT = 0; + + // Certificates with scope EDGE_CACHE are special-purposed certificates, + // served from non-core Google data centers. + EDGE_CACHE = 1; + } + + // A user-defined name of the certificate. Certificate names must be unique + // globally and match pattern `projects/*/locations/*/certificates/*`. + string name = 1; + + // One or more paragraphs of text description of a certificate. + string description = 8; + + // Output only. The creation timestamp of a Certificate. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp of a Certificate. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a Certificate. + map labels = 4; + + oneof type { + // If set, defines data of a self-managed certificate. + SelfManagedCertificate self_managed = 5; + + // If set, contains configuration and state of a managed certificate. + ManagedCertificate managed = 11; + } + + // Output only. The list of Subject Alternative Names of dnsName type defined in the + // certificate (see RFC 5280 4.2.1.6). + // Managed certificates that haven't been provisioned yet have this field + // populated with a value of the managed.domains field. + repeated string san_dnsnames = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The PEM-encoded certificate chain. + string pem_certificate = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The expiry timestamp of a Certificate. + google.protobuf.Timestamp expire_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The scope of the certificate. + Scope scope = 12 [(google.api.field_behavior) = IMMUTABLE]; +} + +// Defines a collection of certificate configurations. +message CertificateMap { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/CertificateMap" + pattern: "projects/{project}/locations/{location}/certificateMaps/{certificate_map}" + }; + + // Describes a Target Proxy which uses this Certificate Map. + message GclbTarget { + // Defines IP configuration where this Certificate Map is serving. + message IpConfig { + // An external IP address. + string ip_address = 1; + + // Ports. + repeated uint32 ports = 3; + } + + // A Target Proxy to which this map is attached to. + oneof target_proxy { + // This field returns the resource name in the following format: + // `//compute.googleapis.com/projects/*/global/targetHttpsProxies/*`. + string target_https_proxy = 1; + + // This field returns the resource name in the following format: + // `//compute.googleapis.com/projects/*/global/targetSslProxies/*`. + string target_ssl_proxy = 3; + } + + // IP configurations for this Target Proxy where the + // Certificate Map is serving. + repeated IpConfig ip_configs = 2; + } + + // A user-defined name of the Certificate Map. Certificate Map names must be + // unique globally and match pattern + // `projects/*/locations/*/certificateMaps/*`. + string name = 1; + + // One or more paragraphs of text description of a certificate map. + string description = 5; + + // Output only. The creation timestamp of a Certificate Map. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update timestamp of a Certificate Map. + google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a Certificate Map. + map labels = 3; + + // Output only. A list of GCLB targets which use this Certificate Map. + repeated GclbTarget gclb_targets = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines a certificate map entry. +message CertificateMapEntry { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/CertificateMapEntry" + pattern: "projects/{project}/locations/{location}/certificateMaps/{certificate_map}/certificateMapEntries/{certificate_map_entry}" + }; + + // Defines predefined cases other than SNI-hostname match when this + // configuration should be applied. + enum Matcher { + // A matcher has't been recognized. + MATCHER_UNSPECIFIED = 0; + + // A primary certificate that is served when SNI wasn't specified in the + // request or SNI couldn't be found in the map. + PRIMARY = 1; + } + + // A user-defined name of the Certificate Map Entry. Certificate Map Entry + // names must be unique globally and match pattern + // `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`. + string name = 1; + + // One or more paragraphs of text description of a certificate map entry. + string description = 9; + + // Output only. The creation timestamp of a Certificate Map Entry. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update timestamp of a Certificate Map Entry. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a Certificate Map Entry. + map labels = 4; + + oneof match { + // A Hostname (FQDN, e.g. `example.com`) or a wildcard hostname expression + // (`*.example.com`) for a set of hostnames with common suffix. Used as + // Server Name Indication (SNI) for selecting a proper certificate. + string hostname = 5; + + // A predefined matcher for particular cases, other than SNI selection. + Matcher matcher = 10; + } + + // A set of Certificates defines for the given `hostname`. There can be + // defined up to fifteen certificates in each Certificate Map Entry. Each + // certificate must match pattern `projects/*/locations/*/certificates/*`. + repeated string certificates = 7 [(google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/Certificate" + }]; + + // Output only. A serving state of this Certificate Map Entry. + ServingState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A DnsAuthorization resource describes a way to perform domain authorization +// for certificate issuance. +message DnsAuthorization { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/DnsAuthorization" + pattern: "projects/{project}/locations/{location}/dnsAuthorizations/{dns_authorization}" + }; + + // The structure describing the DNS Resource Record that needs to be added + // to DNS configuration for the authorization to be usable by + // certificate. + message DnsResourceRecord { + // Output only. Fully qualified name of the DNS Resource Record. + // e.g. `_acme-challenge.example.com` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the DNS Resource Record. + // Currently always set to "CNAME". + string type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Data of the DNS Resource Record. + string data = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // A user-defined name of the dns authorization. DnsAuthorization names must + // be unique globally and match pattern + // `projects/*/locations/*/dnsAuthorizations/*`. + string name = 1; + + // Output only. The creation timestamp of a DnsAuthorization. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp of a DnsAuthorization. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a DnsAuthorization. + map labels = 4; + + // One or more paragraphs of text description of a DnsAuthorization. + string description = 5; + + // Required. Immutable. A domain which is being authorized. A DnsAuthorization resource covers a + // single domain and its wildcard, e.g. authorization for `example.com` can + // be used to issue certificates for `example.com` and `*.example.com`. + string domain = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. DNS Resource Record that needs to be added to DNS configuration. + DnsResourceRecord dns_resource_record = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines set of serving states associated with a resource. +enum ServingState { + // The status is undefined. + SERVING_STATE_UNSPECIFIED = 0; + + // The configuration is serving. + ACTIVE = 1; + + // Update is in progress. Some frontends may serve this configuration. + PENDING = 2; +} diff --git a/google/cloud/certificatemanager/v1/certificatemanager_grpc_service_config.json b/google/cloud/certificatemanager/v1/certificatemanager_grpc_service_config.json new file mode 100644 index 000000000..bf34ddb0d --- /dev/null +++ b/google/cloud/certificatemanager/v1/certificatemanager_grpc_service_config.json @@ -0,0 +1,54 @@ +{ + "methodConfig": [ + { + "name": [ + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "ListCertificates" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "GetCertificate" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "CreateCertificate" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "UpdateCertificate" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "DeleteCertificate" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "ListCertificateMaps" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "GetCertificateMap" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "CreateCertificateMap" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "UpdateCertificateMap" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "DeleteCertificateMap" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "ListCertificateMapEntries" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "GetCertificateMapEntry" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "CreateCertificateMapEntry" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "UpdateCertificateMapEntry" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "DeleteCertificateMapEntry" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "ListDnsAuthorizations" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "GetDnsAuthorization" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "CreateDnsAuthorization" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "UpdateDnsAuthorization" }, + { "service": "google.cloud.certificatemanager.v1.CertificateManager", "method": "DeleteDnsAuthorization" }, + { "service": "google.longrunning.Operations", "method": "ListOperations" }, + { "service": "google.longrunning.Operations", "method": "CancelOperation" }, + { "service": "google.longrunning.Operations", "method": "DeleteOperation" }, + { "service": "google.cloud.location.Locations", "method": "GetLocation" }, + { "service": "google.cloud.location.Locations", "method": "ListLocations" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.longrunning.Operations", "method": "GetOperation" } + ], + "timeout": "5s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "0.200s", + "maxBackoff": "3s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + } + ] +} diff --git a/google/cloud/certificatemanager/v1/certificatemanager_v1.yaml b/google/cloud/certificatemanager/v1/certificatemanager_v1.yaml new file mode 100644 index 000000000..17731a66f --- /dev/null +++ b/google/cloud/certificatemanager/v1/certificatemanager_v1.yaml @@ -0,0 +1,68 @@ +type: google.api.Service +config_version: 3 +name: certificatemanager.googleapis.com +title: Certificate Manager API + +apis: +- name: google.cloud.certificatemanager.v1.CertificateManager +- name: google.cloud.location.Locations +- name: google.longrunning.Operations + +types: +- name: google.cloud.certificatemanager.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. + +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 + 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.certificatemanager.v1.CertificateManager.*' + 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/google/cloud/channel/v1/BUILD.bazel b/google/cloud/channel/v1/BUILD.bazel index dbc6ada2c..83043102c 100644 --- a/google/cloud/channel/v1/BUILD.bazel +++ b/google/cloud/channel/v1/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -28,6 +28,7 @@ proto_library( "offers.proto", "operations.proto", "products.proto", + "repricing.proto", "service.proto", "subscriber_event.proto", ], @@ -37,13 +38,14 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/type:date_proto", + "//google/type:decimal_proto", "//google/type:money_proto", "//google/type:postal_address_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", - "@com_google_protobuf//:wrappers_proto", ], ) @@ -81,18 +83,24 @@ java_grpc_library( java_gapic_library( name = "channel_java_gapic", srcs = [":channel_proto_with_info"], + gapic_yaml = None, grpc_service_config = "cloudchannel_grpc_service_config.json", + service_yaml = "cloudchannel_v1.yaml", test_deps = [ ":channel_java_grpc", ], + transport = "grpc+rest", deps = [ ":channel_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "channel_java_gapic_test_suite", test_classes = [ + "com.google.cloud.channel.v1.CloudChannelServiceClientHttpJsonTest", + "com.google.cloud.channel.v1.CloudChannelServiceClientTest", ], runtime_deps = [":channel_java_gapic_test"], ) @@ -100,6 +108,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-channel-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":channel_java_gapic", ":channel_java_grpc", @@ -127,6 +137,8 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/type:date_go_proto", + "//google/type:decimal_go_proto", "//google/type:money_go_proto", "//google/type:postaladdress_go_proto", ], @@ -137,7 +149,9 @@ go_gapic_library( srcs = [":channel_proto_with_info"], grpc_service_config = "cloudchannel_grpc_service_config.json", importpath = "cloud.google.com/go/channel/apiv1;channel", + metadata = True, service_yaml = "cloudchannel_v1.yaml", + transport = "grpc+rest", deps = [ ":channel_go_proto", "//google/longrunning:longrunning_go_proto", @@ -159,6 +173,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-channel-v1-go", deps = [ ":channel_go_gapic", + ":channel_go_gapic_srcjar-metadata.srcjar", ":channel_go_gapic_srcjar-test.srcjar", ":channel_go_proto", ], @@ -171,12 +186,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "channel_py_gapic", srcs = [":channel_proto"], grpc_service_config = "cloudchannel_grpc_service_config.json", + service_yaml = "cloudchannel_v1.yaml", + transport = "grpc", +) + +py_test( + name = "channel_py_gapic_test", + srcs = [ + "channel_py_gapic_pytest.py", + "channel_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":channel_py_gapic"], ) # Open Source Packages @@ -284,11 +312,11 @@ ruby_cloud_gapic_library( name = "channel_ruby_gapic", srcs = [":channel_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-channel-v1", - "ruby-cloud-env-prefix=CHANNEL", - "ruby-cloud-product-url=https://cloud.google.com/channel", "ruby-cloud-api-id=cloudchannel.googleapis.com", "ruby-cloud-api-shortname=cloudchannel", + "ruby-cloud-env-prefix=CHANNEL", + "ruby-cloud-gem-name=google-cloud-channel-v1", + "ruby-cloud-product-url=https://cloud.google.com/channel", ], grpc_service_config = "cloudchannel_grpc_service_config.json", ruby_cloud_description = "You can use Channel Services to manage your relationships with your partners and your customers. Channel Services include a console and APIs to view and provision links between distributors and resellers, customers and entitlements.", @@ -336,6 +364,7 @@ csharp_gapic_library( srcs = [":channel_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudchannel_grpc_service_config.json", + service_yaml = "cloudchannel_v1.yaml", deps = [ ":channel_csharp_grpc", ":channel_csharp_proto", diff --git a/google/cloud/channel/v1/channel_partner_links.proto b/google/cloud/channel/v1/channel_partner_links.proto index 87b05c854..fb301586e 100644 --- a/google/cloud/channel/v1/channel_partner_links.proto +++ b/google/cloud/channel/v1/channel_partner_links.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.channel.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/channel/v1/common.proto"; diff --git a/google/cloud/channel/v1/cloudchannel_v1.yaml b/google/cloud/channel/v1/cloudchannel_v1.yaml index 84697af0d..e4138f5bf 100644 --- a/google/cloud/channel/v1/cloudchannel_v1.yaml +++ b/google/cloud/channel/v1/cloudchannel_v1.yaml @@ -5,6 +5,7 @@ title: Cloud Channel API apis: - name: google.cloud.channel.v1.CloudChannelService +- name: google.longrunning.Operations types: - name: google.cloud.channel.v1.CustomerEvent diff --git a/google/cloud/channel/v1/common.proto b/google/cloud/channel/v1/common.proto index 94548abe2..175d044e6 100644 --- a/google/cloud/channel/v1/common.proto +++ b/google/cloud/channel/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.channel.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/any.proto"; diff --git a/google/cloud/channel/v1/customers.proto b/google/cloud/channel/v1/customers.proto index bd0b80f5b..e34432f2e 100644 --- a/google/cloud/channel/v1/customers.proto +++ b/google/cloud/channel/v1/customers.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.channel.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/channel/v1/common.proto"; diff --git a/google/cloud/channel/v1/entitlements.proto b/google/cloud/channel/v1/entitlements.proto index 271e4b000..35da23938 100644 --- a/google/cloud/channel/v1/entitlements.proto +++ b/google/cloud/channel/v1/entitlements.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,14 +16,12 @@ syntax = "proto3"; package google.cloud.channel.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/channel/v1/common.proto"; import "google/cloud/channel/v1/offers.proto"; import "google/cloud/channel/v1/products.proto"; import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/channel/v1;channel"; option java_multiple_files = true; @@ -106,7 +104,8 @@ message Entitlement { // Optional. This purchase order (PO) information is for resellers to use for their // company tracking usage. If a purchaseOrderId value is given, it appears in // the API responses and shows up in the invoice. The property accepts up to - // 80 plain text characters. + // 80 plain text characters. This is only supported for Google Workspace + // entitlements. string purchase_order_id = 19 [(google.api.field_behavior) = OPTIONAL]; // Output only. Settings for trial offers. @@ -153,8 +152,9 @@ message AssociationInfo { // Service provisioned for an entitlement. message ProvisionedService { - // Output only. Provisioning ID of the entitlement. For Google Workspace, this would be the - // underlying Subscription ID. + // Output only. Provisioning ID of the entitlement. For Google Workspace, this is the + // underlying Subscription ID. For Google Cloud Platform, this is the + // Billing Account ID of the billing subaccount." string provisioning_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The product pertaining to the provisioning resource as specified in the diff --git a/google/cloud/channel/v1/offers.proto b/google/cloud/channel/v1/offers.proto index 42c8c16f4..615e3d932 100644 --- a/google/cloud/channel/v1/offers.proto +++ b/google/cloud/channel/v1/offers.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.channel.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/channel/v1/common.proto"; diff --git a/google/cloud/channel/v1/operations.proto b/google/cloud/channel/v1/operations.proto index 72e332164..ad432919b 100644 --- a/google/cloud/channel/v1/operations.proto +++ b/google/cloud/channel/v1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.channel.v1; -import "google/api/annotations.proto"; - option go_package = "google.golang.org/genproto/googleapis/cloud/channel/v1;channel"; option java_multiple_files = true; option java_outer_classname = "OperationsProto"; diff --git a/google/cloud/channel/v1/products.proto b/google/cloud/channel/v1/products.proto index 6be7c0bbf..8dc39767a 100644 --- a/google/cloud/channel/v1/products.proto +++ b/google/cloud/channel/v1/products.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.channel.v1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/channel/v1;channel"; diff --git a/google/cloud/channel/v1/repricing.proto b/google/cloud/channel/v1/repricing.proto new file mode 100644 index 000000000..7cc2f2607 --- /dev/null +++ b/google/cloud/channel/v1/repricing.proto @@ -0,0 +1,149 @@ +// 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.cloud.channel.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; +import "google/type/decimal.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/channel/v1;channel"; +option java_multiple_files = true; +option java_outer_classname = "RepricingProto"; +option java_package = "com.google.cloud.channel.v1"; + +// Specifies the different costs that the modified bill can be based on. +enum RebillingBasis { + // Not used. + REBILLING_BASIS_UNSPECIFIED = 0; + + // Use the list cost, also known as the MSRP. + COST_AT_LIST = 1; + + // Pass through all discounts except the Reseller Program Discount. If this is + // the default cost base and no adjustments are specified, the output cost + // will be exactly what the customer would see if they viewed the bill in the + // Google Cloud Console. + DIRECT_CUSTOMER_COST = 2; +} + +// Configuration for how a reseller will reprice a Customer. +message CustomerRepricingConfig { + option (google.api.resource) = { + type: "cloudchannel.googleapis.com/CustomerRepricingConfig" + pattern: "accounts/{account}/customers/{customer}/customerRepricingConfigs/{customer_repricing_config}" + }; + + // Output only. Resource name of the CustomerRepricingConfig. + // Format: + // accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The configuration for bill modifications made by a reseller before + // sending it to customers. + RepricingConfig repricing_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp of an update to the repricing rule. If `update_time` is after + // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] then it indicates this was set + // mid-month. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for how a distributor will rebill a channel partner +// (also known as a distributor-authorized reseller). +message ChannelPartnerRepricingConfig { + option (google.api.resource) = { + type: "cloudchannel.googleapis.com/ChannelPartnerRepricingConfig" + pattern: "accounts/{account}/channelPartnerLinks/{channel_partner}/channelPartnerRepricingConfigs/{channel_partner_repricing_config}" + }; + + // Output only. Resource name of the ChannelPartnerRepricingConfig. + // Format: + // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}/channelPartnerRepricingConfigs/{id}. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The configuration for bill modifications made by a reseller before + // sending it to ChannelPartner. + RepricingConfig repricing_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp of an update to the repricing rule. If `update_time` is after + // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] then it indicates this was set + // mid-month. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for repricing a Google bill over a period of time. +message RepricingConfig { + // Applies the repricing configuration at the entitlement level. + message EntitlementGranularity { + // Resource name of the entitlement. + // Format: + // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} + string entitlement = 1 [(google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/Entitlement" + }]; + } + + // Applies the repricing configuration at the channel partner level. + // The channel partner value is derived from the resource name. Takes an + // empty json object. + message ChannelPartnerGranularity { + + } + + // Required. Defines the granularity for repricing. + oneof granularity { + // Applies the repricing configuration at the entitlement level. This is + // the only supported value for CustomerRepricingConfig. + EntitlementGranularity entitlement_granularity = 4; + + // Applies the repricing configuration at the channel partner level. + // This is the only supported value for ChannelPartnerRepricingConfig. + ChannelPartnerGranularity channel_partner_granularity = 5; + } + + // Required. The YearMonth when these adjustments activate. The Day field needs to be + // "0" since we only accept YearMonth repricing boundaries. + google.type.Date effective_invoice_month = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Information about the adjustment. + RepricingAdjustment adjustment = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The [RebillingBasis][google.cloud.channel.v1.RebillingBasis] to use for this bill. Specifies the relative cost + // based on repricing costs you will apply. + RebillingBasis rebilling_basis = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// A type that represents the various adjustments you can apply to a bill. +message RepricingAdjustment { + // A oneof that represents the different types for this adjustment. + oneof adjustment { + // Flat markup or markdown on an entire bill. + PercentageAdjustment percentage_adjustment = 2; + } +} + +// An adjustment that applies a flat markup or markdown to an entire bill. +message PercentageAdjustment { + // The percentage of the bill to adjust. + // For example: + // Mark down by 1% => "-1.00" + // Mark up by 1% => "1.00" + // Pass-Through => "0.00" + google.type.Decimal percentage = 2; +} diff --git a/google/cloud/channel/v1/service.proto b/google/cloud/channel/v1/service.proto index cf10b165a..7a6b3f0e4 100644 --- a/google/cloud/channel/v1/service.proto +++ b/google/cloud/channel/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -26,6 +26,7 @@ import "google/cloud/channel/v1/customers.proto"; import "google/cloud/channel/v1/entitlements.proto"; import "google/cloud/channel/v1/offers.proto"; import "google/cloud/channel/v1/products.proto"; +import "google/cloud/channel/v1/repricing.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -791,6 +792,308 @@ service CloudChannelService { }; } + // Gets information about how a Reseller modifies their bill before sending + // it to a Customer. + // + // Possible Error Codes: + // + // * PERMISSION_DENIED: If the account making the request and the account + // being queried are different. + // * NOT_FOUND: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] was not found. + // * INTERNAL: Any non-user error related to technical issues in the + // backend. In this case, contact Cloud Channel support. + // + // Return Value: + // If successful, the [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] resource, otherwise returns + // an error. + rpc GetCustomerRepricingConfig(GetCustomerRepricingConfigRequest) returns (CustomerRepricingConfig) { + option (google.api.http) = { + get: "/v1/{name=accounts/*/customers/*/customerRepricingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists information about how a Reseller modifies their bill before sending + // it to a Customer. + // + // Possible Error Codes: + // + // * PERMISSION_DENIED: If the account making the request and the account + // being queried are different. + // * NOT_FOUND: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] specified does not exist or is + // not associated with the given account. + // * INTERNAL: Any non-user error related to technical issues in the + // backend. In this case, contact Cloud Channel support. + // + // Return Value: + // If successful, the [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] resources. The + // data for each resource is displayed in the ascending order of: + // * customer ID + // * [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement] + // * [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] + // * [CustomerRepricingConfig.update_time][google.cloud.channel.v1.CustomerRepricingConfig.update_time] + // + // If unsuccessful, returns an error. + rpc ListCustomerRepricingConfigs(ListCustomerRepricingConfigsRequest) returns (ListCustomerRepricingConfigsResponse) { + option (google.api.http) = { + get: "/v1/{parent=accounts/*/customers/*}/customerRepricingConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a CustomerRepricingConfig. Call this method to set modifications + // for a specific customer's bill. You can only create configs if the + // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is a + // future month. If needed, you can create a config for the current month, + // with some restrictions. + // + // When creating a config for a future month, make sure there are no existing + // configs for that + // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]. + // + // The following restrictions are for creating configs in the current month. + // + // * This functionality is reserved for recovering from an erroneous config, + // and should not be used for regular business cases. + // * The new config will not modify exports used with other configs. + // Changes to the config may be immediate, but may take up to 24 hours. + // * There is a limit of ten configs for any + // [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement] + // or [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]. + // * The contained [CustomerRepricingConfig.repricing_config][google.cloud.channel.v1.CustomerRepricingConfig.repricing_config] vaule must be + // different from the value used in the current config for a + // [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement]. + // + // Possible Error Codes: + // + // * PERMISSION_DENIED: If the account making the request and the account + // being queried are different. + // * INVALID_ARGUMENT: Missing or invalid required parameters in the + // request. Also displays if the updated config is for the current month or + // past months. + // * NOT_FOUND: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] specified does not exist or is + // not associated with the given account. + // * INTERNAL: Any non-user error related to technical issues in the + // backend. In this case, contact Cloud Channel support. + // + // Return Value: + // If successful, the updated [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] resource, otherwise + // returns an error. + rpc CreateCustomerRepricingConfig(CreateCustomerRepricingConfigRequest) returns (CustomerRepricingConfig) { + option (google.api.http) = { + post: "/v1/{parent=accounts/*/customers/*}/customerRepricingConfigs" + body: "customer_repricing_config" + }; + option (google.api.method_signature) = "parent,customer_repricing_config"; + } + + // Updates a CustomerRepricingConfig. Call this method to set modifications + // for a specific customer's bill. This method overwrites the existing + // CustomerRepricingConfig. + // + // You can only update configs if the + // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is a + // future month. To make changes to configs for the current month, use + // [CreateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateCustomerRepricingConfig], taking note of its restrictions. You + // cannot update the [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]. + // + // When updating a config in the future: + // + // * This config must already exist. + // + // Possible Error Codes: + // + // * PERMISSION_DENIED: If the account making the request and the account + // being queried are different. + // * INVALID_ARGUMENT: Missing or invalid required parameters in the + // request. Also displays if the updated config is for the current month or + // past months. + // * NOT_FOUND: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] specified does not exist or is + // not associated with the given account. + // * INTERNAL: Any non-user error related to technical issues in the + // backend. In this case, contact Cloud Channel support. + // + // Return Value: + // If successful, the updated [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] resource, otherwise + // returns an error. + rpc UpdateCustomerRepricingConfig(UpdateCustomerRepricingConfigRequest) returns (CustomerRepricingConfig) { + option (google.api.http) = { + patch: "/v1/{customer_repricing_config.name=accounts/*/customers/*/customerRepricingConfigs/*}" + body: "customer_repricing_config" + }; + option (google.api.method_signature) = "customer_repricing_config"; + } + + // Deletes the given [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] permanently. You can only + // delete configs if their [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is set + // to a date after the current month. + // + // Possible error codes: + // + // * PERMISSION_DENIED: The account making the request does not own + // this customer. + // * INVALID_ARGUMENT: Required request parameters are missing or invalid. + // * FAILED_PRECONDITION: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] is active or in the + // past. + // * NOT_FOUND: No [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] found for the name in the + // request. + rpc DeleteCustomerRepricingConfig(DeleteCustomerRepricingConfigRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=accounts/*/customers/*/customerRepricingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets information about how a Distributor modifies their bill before sending + // it to a ChannelPartner. + // + // Possible Error Codes: + // + // * PERMISSION_DENIED: If the account making the request and the account + // being queried are different. + // * NOT_FOUND: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] was not found. + // * INTERNAL: Any non-user error related to technical issues in the + // backend. In this case, contact Cloud Channel support. + // + // Return Value: + // If successful, the [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] resource, otherwise + // returns an error. + rpc GetChannelPartnerRepricingConfig(GetChannelPartnerRepricingConfigRequest) returns (ChannelPartnerRepricingConfig) { + option (google.api.http) = { + get: "/v1/{name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists information about how a Reseller modifies their bill before sending + // it to a ChannelPartner. + // + // Possible Error Codes: + // + // * PERMISSION_DENIED: If the account making the request and the account + // being queried are different. + // * NOT_FOUND: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] specified does not exist + // or is not associated with the given account. + // * INTERNAL: Any non-user error related to technical issues in the + // backend. In this case, contact Cloud Channel support. + // + // Return Value: + // If successful, the [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] resources. + // The data for each resource is displayed in the ascending order of: + // * channel partner ID + // * [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] + // * [ChannelPartnerRepricingConfig.update_time][google.cloud.channel.v1.ChannelPartnerRepricingConfig.update_time] + // + // If unsuccessful, returns an error. + rpc ListChannelPartnerRepricingConfigs(ListChannelPartnerRepricingConfigsRequest) returns (ListChannelPartnerRepricingConfigsResponse) { + option (google.api.http) = { + get: "/v1/{parent=accounts/*/channelPartnerLinks/*}/channelPartnerRepricingConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a ChannelPartnerRepricingConfig. Call this method to set + // modifications for a specific ChannelPartner's bill. You can only create + // configs if the [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is a future + // month. If needed, you can create a config for the current month, with some + // restrictions. + // + // When creating a config for a future month, make sure there are no existing + // configs for that + // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]. + // + // The following restrictions are for creating configs in the current month. + // + // * This functionality is reserved for recovering from an erroneous config, + // and should not be used for regular business cases. + // * The new config will not modify exports used with other configs. + // Changes to the config may be immediate, but may take up to 24 hours. + // * There is a limit of ten configs for any ChannelPartner or + // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]. + // * The contained [ChannelPartnerRepricingConfig.repricing_config][google.cloud.channel.v1.ChannelPartnerRepricingConfig.repricing_config] vaule + // must be different from the value used in the current config for a + // ChannelPartner. + // + // Possible Error Codes: + // + // * PERMISSION_DENIED: If the account making the request and the account + // being queried are different. + // * INVALID_ARGUMENT: Missing or invalid required parameters in the + // request. Also displays if the updated config is for the current month or + // past months. + // * NOT_FOUND: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] specified does not exist + // or is not associated with the given account. + // * INTERNAL: Any non-user error related to technical issues in the + // backend. In this case, contact Cloud Channel support. + // + // Return Value: + // If successful, the updated [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] resource, + // otherwise returns an error. + rpc CreateChannelPartnerRepricingConfig(CreateChannelPartnerRepricingConfigRequest) returns (ChannelPartnerRepricingConfig) { + option (google.api.http) = { + post: "/v1/{parent=accounts/*/channelPartnerLinks/*}/channelPartnerRepricingConfigs" + body: "channel_partner_repricing_config" + }; + option (google.api.method_signature) = "parent,channel_partner_repricing_config"; + } + + // Updates a ChannelPartnerRepricingConfig. Call this method to set + // modifications for a specific ChannelPartner's bill. This method overwrites + // the existing CustomerRepricingConfig. + // + // You can only update configs if the + // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is a + // future month. To make changes to configs for the current month, use + // [CreateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerRepricingConfig], taking note of its restrictions. + // You cannot update the [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]. + // + // When updating a config in the future: + // + // * This config must already exist. + // + // Possible Error Codes: + // + // * PERMISSION_DENIED: If the account making the request and the account + // being queried are different. + // * INVALID_ARGUMENT: Missing or invalid required parameters in the + // request. Also displays if the updated config is for the current month or + // past months. + // * NOT_FOUND: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] specified does not exist + // or is not associated with the given account. + // * INTERNAL: Any non-user error related to technical issues in the + // backend. In this case, contact Cloud Channel support. + // + // Return Value: + // If successful, the updated [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] resource, + // otherwise returns an error. + rpc UpdateChannelPartnerRepricingConfig(UpdateChannelPartnerRepricingConfigRequest) returns (ChannelPartnerRepricingConfig) { + option (google.api.http) = { + patch: "/v1/{channel_partner_repricing_config.name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}" + body: "channel_partner_repricing_config" + }; + option (google.api.method_signature) = "channel_partner_repricing_config"; + } + + // Deletes the given [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] permanently. You can + // only delete configs if their [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is + // set to a date after the current month. + // + // Possible error codes: + // + // * PERMISSION_DENIED: The account making the request does not own + // this customer. + // * INVALID_ARGUMENT: Required request parameters are missing or invalid. + // * FAILED_PRECONDITION: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] is active or + // in the past. + // * NOT_FOUND: No [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] found for the name in the + // request. + rpc DeleteChannelPartnerRepricingConfig(DeleteChannelPartnerRepricingConfigRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + // Returns the requested [Offer][google.cloud.channel.v1.Offer] resource. // // Possible error codes: @@ -999,6 +1302,11 @@ message ListCustomersRequest { // [ListCustomersResponse.next_page_token][google.cloud.channel.v1.ListCustomersResponse.next_page_token] of the previous // [CloudChannelService.ListCustomers][google.cloud.channel.v1.CloudChannelService.ListCustomers] call. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filters applied to the [CloudChannelService.ListCustomers] results. See + // https://cloud.google.com/channel/docs/concepts/google-cloud/filter-customers + // for more information. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } // Response message for [CloudChannelService.ListCustomers][google.cloud.channel.v1.CloudChannelService.ListCustomers]. @@ -1354,6 +1662,196 @@ message UpdateChannelPartnerLinkRequest { google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED]; } +// Request message for [CloudChannelService.GetCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.GetCustomerRepricingConfig]. +message GetCustomerRepricingConfigRequest { + // Required. The resource name of the CustomerRepricingConfig. + // Format: + // accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/CustomerRepricingConfig" + } + ]; +} + +// Request message for [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs]. +message ListCustomerRepricingConfigsRequest { + // Required. The resource name of the customer. + // Parent uses the format: accounts/{account_id}/customers/{customer_id}. + // Supports accounts/{account_id}/customers/- to retrieve configs for all + // customers. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/Customer" + } + ]; + + // Optional. The maximum number of repricing configs to return. The service may return + // fewer than this value. If unspecified, returns a maximum of 50 rules. The + // maximum value is 100; values above 100 will be coerced to 100. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results beyond the first page. + // Obtained through + // [ListCustomerRepricingConfigsResponse.next_page_token][google.cloud.channel.v1.ListCustomerRepricingConfigsResponse.next_page_token] of the previous + // [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs] call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter for [CloudChannelService.ListCustomerRepricingConfigs] + // results (customer only). You can use this filter when you support + // a BatchGet-like query. + // To use the filter, you must set `parent=accounts/{account_id}/customers/-`. + // + // Example: customer = accounts/account_id/customers/c1 OR + // customer = accounts/account_id/customers/c2. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs]. +message ListCustomerRepricingConfigsResponse { + // The repricing configs for this channel partner. + repeated CustomerRepricingConfig customer_repricing_configs = 1; + + // A token to retrieve the next page of results. + // Pass to [ListCustomerRepricingConfigsRequest.page_token][google.cloud.channel.v1.ListCustomerRepricingConfigsRequest.page_token] to obtain that + // page. + string next_page_token = 2; +} + +// Request message for [CloudChannelService.CreateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateCustomerRepricingConfig]. +message CreateCustomerRepricingConfigRequest { + // Required. The resource name of the customer that will receive this repricing config. + // Parent uses the format: accounts/{account_id}/customers/{customer_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/Customer" + } + ]; + + // Required. The CustomerRepricingConfig object to update. + CustomerRepricingConfig customer_repricing_config = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [CloudChannelService.UpdateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.UpdateCustomerRepricingConfig]. +message UpdateCustomerRepricingConfigRequest { + // Required. The CustomerRepricingConfig object to update. + CustomerRepricingConfig customer_repricing_config = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [CloudChannelService.DeleteCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.DeleteCustomerRepricingConfig]. +message DeleteCustomerRepricingConfigRequest { + // Required. The resource name of the customer repricing config rule to delete. + // Format: + // accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/CustomerRepricingConfig" + } + ]; +} + +// Request message for [CloudChannelService.GetChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.GetChannelPartnerRepricingConfig] +message GetChannelPartnerRepricingConfigRequest { + // Required. The resource name of the ChannelPartnerRepricingConfig + // Format: + // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}/channelPartnerRepricingConfigs/{id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/ChannelPartnerRepricingConfig" + } + ]; +} + +// Request message for +// [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs]. +message ListChannelPartnerRepricingConfigsRequest { + // Required. The resource name of the account's [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]. + // Parent uses the format: + // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}. + // Supports accounts/{account_id}/channelPartnerLinks/- to retrieve configs + // for all channel partners. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/ChannelPartnerLink" + } + ]; + + // Optional. The maximum number of repricing configs to return. The service may return + // fewer than this value. If unspecified, returns a maximum of 50 rules. The + // maximum value is 100; values above 100 will be coerced to 100. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results beyond the first page. + // Obtained through + // [ListChannelPartnerRepricingConfigsResponse.next_page_token][google.cloud.channel.v1.ListChannelPartnerRepricingConfigsResponse.next_page_token] of the + // previous [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs] call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter for [CloudChannelService.ListChannelPartnerRepricingConfigs] + // results (channel_partner_link only). You can use this filter when you + // support a BatchGet-like query. + // To use the filter, you must set + // `parent=accounts/{account_id}/channelPartnerLinks/-`. + // + // Example: `channel_partner_link = + // accounts/account_id/channelPartnerLinks/c1` OR `channel_partner_link = + // accounts/account_id/channelPartnerLinks/c2`. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs]. +message ListChannelPartnerRepricingConfigsResponse { + // The repricing configs for this channel partner. + repeated ChannelPartnerRepricingConfig channel_partner_repricing_configs = 1; + + // A token to retrieve the next page of results. + // Pass to [ListChannelPartnerRepricingConfigsRequest.page_token][google.cloud.channel.v1.ListChannelPartnerRepricingConfigsRequest.page_token] to obtain + // that page. + string next_page_token = 2; +} + +// Request message for +// [CloudChannelService.CreateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerRepricingConfig]. +message CreateChannelPartnerRepricingConfigRequest { + // Required. The resource name of the ChannelPartner that will receive the repricing + // config. Parent uses the format: + // accounts/{account_id}/channelPartnerLinks/{channel_partner_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/ChannelPartnerLink" + } + ]; + + // Required. The ChannelPartnerRepricingConfig object to update. + ChannelPartnerRepricingConfig channel_partner_repricing_config = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [CloudChannelService.UpdateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.UpdateChannelPartnerRepricingConfig]. +message UpdateChannelPartnerRepricingConfigRequest { + // Required. The ChannelPartnerRepricingConfig object to update. + ChannelPartnerRepricingConfig channel_partner_repricing_config = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteChannelPartnerRepricingConfig. +message DeleteChannelPartnerRepricingConfigRequest { + // Required. The resource name of the channel partner repricing config rule to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudchannel.googleapis.com/ChannelPartnerRepricingConfig" + } + ]; +} + // Request message for [CloudChannelService.CreateEntitlement][google.cloud.channel.v1.CloudChannelService.CreateEntitlement] message CreateEntitlementRequest { // Required. The resource name of the reseller's customer account in which to create the diff --git a/google/cloud/channel/v1/subscriber_event.proto b/google/cloud/channel/v1/subscriber_event.proto index df7f07aa0..3c67216ed 100644 --- a/google/cloud/channel/v1/subscriber_event.proto +++ b/google/cloud/channel/v1/subscriber_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.channel.v1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/channel/v1;channel"; @@ -106,15 +105,15 @@ message EntitlementEvent { } // Represents information which resellers will get as part of notification from -// Cloud Pub/Sub. +// Pub/Sub. message SubscriberEvent { // Specifies the Pub/Sub event provided to the partners. // This is a required field. oneof event { - // Customer event send as part of Pub/Sub event to partners. + // Customer event sent as part of Pub/Sub event to partners. CustomerEvent customer_event = 1; - // Entitlement event send as part of Pub/Sub event to partners. + // Entitlement event sent as part of Pub/Sub event to partners. EntitlementEvent entitlement_event = 2; } } diff --git a/google/cloud/clouddms/v1/BUILD.bazel b/google/cloud/clouddms/v1/BUILD.bazel index 380004828..c20f7bb9b 100644 --- a/google/cloud/clouddms/v1/BUILD.bazel +++ b/google/cloud/clouddms/v1/BUILD.bazel @@ -92,6 +92,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-clouddms-v1-java", + include_samples = True, deps = [ ":clouddms_java_gapic", ":clouddms_java_grpc", @@ -164,13 +165,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "clouddms_py_gapic", srcs = [":clouddms_proto"], grpc_service_config = "library_grpc_service_config.json", - opt_args = ["warehouse-package-name=google-cloud-dms"] + opt_args = ["warehouse-package-name=google-cloud-dms"], + transport = "grpc", +) + +py_test( + name = "clouddms_py_gapic_test", + srcs = [ + "clouddms_py_gapic_pytest.py", + "clouddms_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":clouddms_py_gapic"], ) # Open Source Packages @@ -332,6 +345,7 @@ csharp_gapic_library( srcs = [":clouddms_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "library_grpc_service_config.json", + service_yaml = "datamigration_v1.yaml", deps = [ ":clouddms_csharp_grpc", ":clouddms_csharp_proto", diff --git a/google/cloud/clouddms/v1/clouddms_resources.proto b/google/cloud/clouddms/v1/clouddms_resources.proto index 1032e18ab..dd7731a6e 100644 --- a/google/cloud/clouddms/v1/clouddms_resources.proto +++ b/google/cloud/clouddms/v1/clouddms_resources.proto @@ -22,7 +22,6 @@ import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.CloudDms.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/clouddms/v1;clouddms"; diff --git a/google/cloud/cloudsetup/logging/v1/BUILD.bazel b/google/cloud/cloudsetup/logging/v1/BUILD.bazel new file mode 100644 index 000000000..4459693e3 --- /dev/null +++ b/google/cloud/cloudsetup/logging/v1/BUILD.bazel @@ -0,0 +1,180 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "complete_deployment.proto", + ], + deps = [ + "//google/api:resource_proto", + "//google/rpc:status_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/cloudsetup/logging/v1", + protos = [":logging_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/rpc:status_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "//google/api:resource_proto", + "//google/rpc:status_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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/cloudsetup/logging/v1/complete_deployment.proto b/google/cloud/cloudsetup/logging/v1/complete_deployment.proto new file mode 100644 index 000000000..4b8ee1fe7 --- /dev/null +++ b/google/cloud/cloudsetup/logging/v1/complete_deployment.proto @@ -0,0 +1,88 @@ +// 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.cloud.cloudsetup.logging.v1; + +import "google/api/resource.proto"; +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/cloudsetup/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "CompleteDeploymentProto"; +option java_package = "com.google.cloud.cloudsetup.logging.v1"; +option csharp_namespace = "Google.Cloud.CloudSetup.Logging.V1"; +option php_namespace = "Google\\Cloud\\CloudSetup\\Logging\\V1"; +option ruby_package = "Google::Cloud::CloudSetup::Logging::V1"; + +// JSON payload for the Cloud Logging event: +// `organizations/[organizationId]/logs/cloudsetup.googleapis.com%2Fcomplete_deployment`. +// This event gets emitted upon completion of a config deployment as part of the +// Cloud Setup Checklist. +// +// The deployment can fail even if it returns a +// `config.googleapis.com/Deployment`. The state of that message will be +// `FAILED`. Hence, if there is a `value` present, the `state` can still be, +// `FAILED`. The message for the error or failure will be on the `error` or the +// `value` if the Operation results in an error or if the `state` of the +// Deployment is `FAILED`, respectively. +message CompleteDeploymentEvent { + // State of the completed deployment. + enum State { + // The zero value. It is applied when `state` is unset. Do not use. + STATE_UNSPECIFIED = 0; + + // Indicates that a Deployment value was present when the config deployment + // finished and the State was anything other than FAILED. + SUCCEEDED = 1; + + // Indicates that the Operation result was an error or the Deployment + // `state` was FAILED. + FAILED = 2; + } + + oneof result { + // Result of the Deployment recorded upon completion. + CompleteDeploymentResult value = 1; + + // Result of the Deployment if the `Operation` results in an error. + google.rpc.Status error = 2; + } + + // The `state` of this deployment completion event. + State state = 3; + + // Flag to indicate if deployment is preview only. + bool preview_only = 4; +} + +// This message is used when the CompleteDeploymentEvent has a value. +message CompleteDeploymentResult { + // This is the Deployment that completed. + // Format is projects/{project}/locations/{location}/deployments/{name}. + string deployment = 1 [(google.api.resource_reference) = { + type: "config.googleapis.com/Deployment" + }]; + + // This is the Preview that completed. + // Format is projects/{project}/locations/{location}/previews/{preview} + string preview = 3 [ + (google.api.resource_reference) = { type: "config.googleapis.com/Preview" } + ]; + + // The message that is returned when a deployment completes. This **can** be + // an error message if the `Deployment` `state` is `FAILED`. + string message = 2; +} diff --git a/google/cloud/commerce/consumer/procurement/v1alpha1/BUILD.bazel b/google/cloud/commerce/consumer/procurement/v1alpha1/BUILD.bazel new file mode 100644 index 000000000..748ccc977 --- /dev/null +++ b/google/cloud/commerce/consumer/procurement/v1alpha1/BUILD.bazel @@ -0,0 +1,378 @@ +# 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 = "procurement_proto", + srcs = [ + "order.proto", + "procurement_service.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//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "procurement_proto_with_info", + deps = [ + ":procurement_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "procurement_java_proto", + deps = [":procurement_proto"], +) + +java_grpc_library( + name = "procurement_java_grpc", + srcs = [":procurement_proto"], + deps = [":procurement_java_proto"], +) + +java_gapic_library( + name = "procurement_java_gapic", + srcs = [":procurement_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", + test_deps = [ + ":procurement_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":procurement_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "procurement_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementServiceClientHttpJsonTest", + "com.google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementServiceClientTest", + ], + runtime_deps = [":procurement_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-consumer-procurement-v1alpha1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":procurement_java_gapic", + ":procurement_java_grpc", + ":procurement_java_proto", + ":procurement_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "procurement_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/commerce/consumer/procurement/v1alpha1", + protos = [":procurement_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "procurement_go_gapic", + srcs = [":procurement_proto_with_info"], + grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + importpath = "cloud.google.com/go/commerce/consumer/procurement/apiv1alpha1;procurement", + metadata = True, + service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", + transport = "grpc+rest", + deps = [ + ":procurement_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", + ], +) + +go_test( + name = "procurement_go_gapic_test", + srcs = [":procurement_go_gapic_srcjar_test"], + embed = [":procurement_go_gapic"], + importpath = "cloud.google.com/go/commerce/consumer/procurement/apiv1alpha1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-consumer-procurement-v1alpha1-go", + deps = [ + ":procurement_go_gapic", + ":procurement_go_gapic_srcjar-metadata.srcjar", + ":procurement_go_gapic_srcjar-test.srcjar", + ":procurement_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "procurement_py_gapic", + srcs = [":procurement_proto"], + grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", + transport = "grpc", +) + +py_test( + name = "procurement_py_gapic_test", + srcs = [ + "procurement_py_gapic_pytest.py", + "procurement_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":procurement_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "consumer-procurement-v1alpha1-py", + deps = [ + ":procurement_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "procurement_php_proto", + deps = [":procurement_proto"], +) + +php_grpc_library( + name = "procurement_php_grpc", + srcs = [":procurement_proto"], + deps = [":procurement_php_proto"], +) + +php_gapic_library( + name = "procurement_php_gapic", + srcs = [":procurement_proto_with_info"], + grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", + deps = [ + ":procurement_php_grpc", + ":procurement_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-consumer-procurement-v1alpha1-php", + deps = [ + ":procurement_php_gapic", + ":procurement_php_grpc", + ":procurement_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "procurement_nodejs_gapic", + package_name = "@google-cloud/procurement", + src = ":procurement_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + package = "google.cloud.commerce.consumer.procurement.v1alpha1", + service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "consumer-procurement-v1alpha1-nodejs", + deps = [ + ":procurement_nodejs_gapic", + ":procurement_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 = "procurement_ruby_proto", + deps = [":procurement_proto"], +) + +ruby_grpc_library( + name = "procurement_ruby_grpc", + srcs = [":procurement_proto"], + deps = [":procurement_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "procurement_ruby_gapic", + srcs = [":procurement_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-consumer-procurement-v1alpha1", + ], + grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", + deps = [ + ":procurement_ruby_grpc", + ":procurement_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-consumer-procurement-v1alpha1-ruby", + deps = [ + ":procurement_ruby_gapic", + ":procurement_ruby_grpc", + ":procurement_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 = "procurement_csharp_proto", + deps = [":procurement_proto"], +) + +csharp_grpc_library( + name = "procurement_csharp_grpc", + srcs = [":procurement_proto"], + deps = [":procurement_csharp_proto"], +) + +csharp_gapic_library( + name = "procurement_csharp_gapic", + srcs = [":procurement_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", + deps = [ + ":procurement_csharp_grpc", + ":procurement_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-consumer-procurement-v1alpha1-csharp", + deps = [ + ":procurement_csharp_gapic", + ":procurement_csharp_grpc", + ":procurement_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "procurement_cc_proto", + deps = [":procurement_proto"], +) + +cc_grpc_library( + name = "procurement_cc_grpc", + srcs = [":procurement_proto"], + grpc_only = True, + deps = [":procurement_cc_proto"], +) diff --git a/google/cloud/commerce/consumer/procurement/v1alpha1/cloudcommerceconsumerprocurement_v1alpha1.yaml b/google/cloud/commerce/consumer/procurement/v1alpha1/cloudcommerceconsumerprocurement_v1alpha1.yaml new file mode 100644 index 000000000..144fd6c3d --- /dev/null +++ b/google/cloud/commerce/consumer/procurement/v1alpha1/cloudcommerceconsumerprocurement_v1alpha1.yaml @@ -0,0 +1,30 @@ +type: google.api.Service +config_version: 3 +name: cloudcommerceconsumerprocurement.googleapis.com +title: Cloud Commerce Consumer Procurement API + +apis: +- name: google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService +- name: google.longrunning.Operations + +types: +- name: google.cloud.commerce.consumer.procurement.v1alpha1.PlaceOrderMetadata + +documentation: + summary: Enables consumers to procure products served by Cloud Marketplace platform + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v1alpha1/{name=billingAccounts/*/orders/*/operations/*}' + +authentication: + rules: + - selector: 'google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.*' + 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 diff --git a/google/cloud/commerce/consumer/procurement/v1alpha1/commerceconsumerprocurement_grpc_service_config.json b/google/cloud/commerce/consumer/procurement/v1alpha1/commerceconsumerprocurement_grpc_service_config.json new file mode 100644 index 000000000..20d7ea196 --- /dev/null +++ b/google/cloud/commerce/consumer/procurement/v1alpha1/commerceconsumerprocurement_grpc_service_config.json @@ -0,0 +1,33 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService", + "method": "GetOrder" + }, + { + "service": "google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService", + "method": "ListOrders" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService", + "method": "PlaceOrder" + } + ], + "timeout": "60s" + } + ] +} diff --git a/google/cloud/commerce/consumer/procurement/v1alpha1/order.proto b/google/cloud/commerce/consumer/procurement/v1alpha1/order.proto new file mode 100644 index 000000000..2e6a69a4b --- /dev/null +++ b/google/cloud/commerce/consumer/procurement/v1alpha1/order.proto @@ -0,0 +1,254 @@ +// 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.cloud.commerce.consumer.procurement.v1alpha1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/commerce/consumer/procurement/v1alpha1;procurement"; +option java_multiple_files = true; +option java_package = "com.google.cloud.commerce.consumer.procurement.v1alpha1"; +option (google.api.resource_definition) = { + type: "commerceoffercatalog.googleapis.com/Offer" + pattern: "services/{service}/standardOffers/{offer}" + pattern: "billingAccounts/{consumer_billing_account}/offers/{offer}" +}; + +// Represents a purchase made by a customer on Cloud Marketplace. +// Creating an order makes sure that both the Google backend systems +// as well as external service provider's systems (if needed) allow use of +// purchased products and ensures the appropriate billing events occur. +// +// An Order can be made against one Product with multiple add-ons (optional) or +// one Quote which might reference multiple products. +// +// Customers typically choose a price plan for each Product purchased when +// they create an order and can change their plan later, if the product allows. +message Order { + option (google.api.resource) = { + type: "cloudcommerceconsumerprocurement.googleapis.com/Order" + pattern: "billingAccounts/{billing_account}/orders/{order}" + }; + + // Output only. The resource name of the order. + // Has the form + // `billingAccounts/{billing_account}/orders/{order}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-specified name of the order. + // Must be unique within a billing account. + string display_name = 10 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The items being purchased. + repeated LineItem line_items = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Line items that were cancelled. + repeated LineItem cancelled_line_items = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The creation timestamp. + google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp. + google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The weak etag of the order. + string etag = 11; +} + +// A single item within an order. +message LineItem { + // Output only. Line item ID. + string line_item_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Current state and information of this item. It tells what, + // e.g. which offer, is currently effective. + LineItemInfo line_item_info = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A change made on the item which is pending and not yet + // effective. Absence of this field indicates the line item is not undergoing + // a change. + LineItemChange pending_change = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Changes made on the item that are not pending anymore which might be + // because they already took effect, were reverted by the customer, or were + // rejected by the partner. No more operations are allowed on these changes. + repeated LineItemChange change_history = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A change made on a line item. +message LineItemChange { + // Output only. Change ID. + // All changes made within one order update operation have the same change_id. + string change_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Type of the change to make. + LineItemChangeType change_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Line item info before the change. + LineItemInfo old_line_item_info = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Line item info after the change. + LineItemInfo new_line_item_info = 4; + + // Output only. State of the change. + LineItemChangeState change_state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Provider-supplied message explaining the LineItemChange's + // state. Mainly used to communicate progress and ETA for provisioning in the + // case of `PENDING_APPROVAL`, and to explain why the change request was + // denied or canceled in the case of `REJECTED` and `CANCELED` states. + string state_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Predefined enum types for why this line item change is in current state. + // For example, a line item change's state could be + // `LINE_ITEM_CHANGE_STATE_COMPLETED` because of end-of-term expiration, + // immediate cancellation initiated by the user, or system-initiated + // cancellation. + LineItemChangeStateReasonType change_state_reason_type = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A time at which the change became or will become (in case of + // pending change) effective. + google.protobuf.Timestamp change_effective_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when change was initiated. + google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when change was updated, e.g. approved/rejected by + // partners or cancelled by the user. + google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Line item information. +message LineItemInfo { + // Optional. The name of the offer can have either of these formats: + // 'billingAccounts/{billing_account}/offers/{offer}', + // or 'services/{service}/standardOffers/{offer}'. + string offer = 13 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "commerceoffercatalog.googleapis.com/Offer" + } + ]; + + // Optional. User-provided parameters. + repeated Parameter parameters = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Information about the subscription created, if applicable. + Subscription subscription = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// User-provided Parameters. +message Parameter { + message Value { + // The kind of value. + oneof kind { + // Represents an int64 value. + int64 int64_value = 3; + + // Represents a string value. + string string_value = 4; + + // Represents a double value. + double double_value = 5; + } + } + + // Name of the parameter. + string name = 1; + + // Value of parameter. + Value value = 2; +} + +// Type of a line item change. +enum LineItemChangeType { + // Sentinel value. Do not use. + LINE_ITEM_CHANGE_TYPE_UNSPECIFIED = 0; + + // The change is to create a new line item. + LINE_ITEM_CHANGE_TYPE_CREATE = 1; + + // The change is to update an existing line item. + LINE_ITEM_CHANGE_TYPE_UPDATE = 2; + + // The change is to cancel an existing line item. + LINE_ITEM_CHANGE_TYPE_CANCEL = 3; + + // The change is to revert a cancellation. + LINE_ITEM_CHANGE_TYPE_REVERT_CANCELLATION = 4; +} + +// State of a change. +enum LineItemChangeState { + // Sentinel value. Do not use. + LINE_ITEM_CHANGE_STATE_UNSPECIFIED = 0; + + // Change is in this state when a change is initiated and waiting for + // partner approval. + LINE_ITEM_CHANGE_STATE_PENDING_APPROVAL = 1; + + // Change is in this state after it's approved by the partner or auto-approved + // but before it takes effect. The change can be overwritten + // or cancelled depending on the new line item info property (pending Private + // Offer change cannot be cancelled and can only be overwritten by another + // Private Offer). + LINE_ITEM_CHANGE_STATE_APPROVED = 2; + + // Change is in this state after it's been activated. + LINE_ITEM_CHANGE_STATE_COMPLETED = 3; + + // Change is in this state if it was rejected by the partner. + LINE_ITEM_CHANGE_STATE_REJECTED = 4; + + // Change is in this state if it was abandoned by the user. + LINE_ITEM_CHANGE_STATE_ABANDONED = 5; + + // Change is in this state if it's currently being provisioned downstream. The + // change can't be overwritten or cancelled when it's in this state. + LINE_ITEM_CHANGE_STATE_ACTIVATING = 6; +} + +// Predefined types for line item change state reason. +enum LineItemChangeStateReasonType { + // Default value, indicating there's no predefined type for change state + // reason. + LINE_ITEM_CHANGE_STATE_REASON_TYPE_UNSPECIFIED = 0; + + // Change is in current state due to term expiration. + LINE_ITEM_CHANGE_STATE_REASON_TYPE_EXPIRED = 1; + + // Change is in current state due to user-initiated cancellation. + LINE_ITEM_CHANGE_STATE_REASON_TYPE_USER_CANCELLED = 2; + + // Change is in current state due to system-initiated cancellation. + LINE_ITEM_CHANGE_STATE_REASON_TYPE_SYSTEM_CANCELLED = 3; +} + +// Subscription information. +message Subscription { + // The timestamp when the subscription begins, if applicable. + google.protobuf.Timestamp start_time = 3; + + // The timestamp when the subscription ends, if applicable. + google.protobuf.Timestamp end_time = 1; + + // Whether auto renewal is enabled by user choice on current subscription. + // This field indicates order/subscription status after pending plan change is + // cancelled or rejected. + bool auto_renewal_enabled = 2; +} diff --git a/google/cloud/commerce/consumer/procurement/v1alpha1/procurement_service.proto b/google/cloud/commerce/consumer/procurement/v1alpha1/procurement_service.proto new file mode 100644 index 000000000..0e4a071ab --- /dev/null +++ b/google/cloud/commerce/consumer/procurement/v1alpha1/procurement_service.proto @@ -0,0 +1,154 @@ +// 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.cloud.commerce.consumer.procurement.v1alpha1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/commerce/consumer/procurement/v1alpha1/order.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/commerce/consumer/procurement/v1alpha1;procurement"; +option java_multiple_files = true; +option java_package = "com.google.cloud.commerce.consumer.procurement.v1alpha1"; + +// ConsumerProcurementService allows customers to make purchases of products +// served by the Cloud Commerce platform. +// +// +// When purchases are made, the +// [ConsumerProcurementService][google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService] programs the appropriate backends, including +// both Google's own infrastructure, as well as third-party systems, and to +// enable billing setup for charging for the procured item. +// +service ConsumerProcurementService { + option (google.api.default_host) = "cloudcommerceconsumerprocurement.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new [Order][google.cloud.commerce.consumer.procurement.v1alpha1.Order]. + // + // The returned long-running operation is in-progress until the backend + // completes the creation of the resource. Once completed, the order is + // in [OrderState.ORDER_STATE_ACTIVE][google.cloud.commerce.consumer.procurement.v1alpha1.OrderState.ORDER_STATE_ACTIVE]. In case of failure, the + // order resource will be removed. + rpc PlaceOrder(PlaceOrderRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha1/{parent=billingAccounts/*}/orders:place" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "Order" + metadata_type: "PlaceOrderMetadata" + }; + } + + // Returns the requested [Order][google.cloud.commerce.consumer.procurement.v1alpha1.Order] resource. + rpc GetOrder(GetOrderRequest) returns (Order) { + option (google.api.http) = { + get: "/v1alpha1/{name=billingAccounts/*/orders/*}" + }; + } + + // Lists [Order][google.cloud.commerce.consumer.procurement.v1alpha1.Order] resources that the user has access to, within the + // scope of the parent resource. + rpc ListOrders(ListOrdersRequest) returns (ListOrdersResponse) { + option (google.api.http) = { + get: "/v1alpha1/{parent=billingAccounts/*}/orders" + }; + } +} + +// Request message for [ConsumerProcurementService.PlaceOrder][google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.PlaceOrder]. +message PlaceOrderRequest { + // Required. The resource name of the parent resource. + // This field has the form `billingAccounts/{billing-account-id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudbilling.googleapis.com/BillingAccount" + } + ]; + + // Required. The user-specified name of the order being placed. + // Must be unique within a billing account. + string display_name = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Places order for offer. Required when an offer-based order is being placed. + repeated LineItemInfo line_item_info = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A unique identifier for this request. + // The server will ignore subsequent requests that provide a duplicate request + // ID for at least 120 minutes after the first request. + // + // The request ID must be a valid + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). + string request_id = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message stored in the metadata field of the Operation returned by +// [ConsumerProcurementService.PlaceOrder][google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.PlaceOrder]. +message PlaceOrderMetadata { + +} + +// Request message for [ConsumerProcurementService.GetOrder][google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.GetOrder] +message GetOrderRequest { + // Required. The name of the order to retrieve. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [ConsumerProcurementService.ListOrders][google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.ListOrders]. +message ListOrdersRequest { + // Required. The parent resource to query for orders. + // This field has the form `billingAccounts/{billing-account-id}`. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of entries requested. + // The default page size is 25 and the maximum page size is 200. + int32 page_size = 2; + + // The token for fetching the next page. + string page_token = 3; + + // Filter that you can use to limit the list request. + // + // A query string that can match a selected set of attributes + // with string values. For example, `display_name=abc`. + // Supported query attributes are + // + // * `display_name` + // + // If the query contains special characters other than letters, + // underscore, or digits, the phrase must be quoted with double quotes. For + // example, `display_name="foo:bar"`, where the display name needs to be + // quoted because it contains special character colon. + // + // Queries can be combined with `OR`, and `NOT` to form more complex queries. + // You can also group them to force a desired evaluation order. + // For example, `display_name=abc OR display_name=def`. + string filter = 4; +} + +// Response message for [ConsumerProcurementService.ListOrders][google.cloud.commerce.consumer.procurement.v1alpha1.ConsumerProcurementService.ListOrders]. +message ListOrdersResponse { + // The list of orders in this response. + repeated Order orders = 1; + + // The token for fetching the next page. + string next_page_token = 2; +} diff --git a/google/cloud/common/BUILD.bazel b/google/cloud/common/BUILD.bazel index 860f46421..155fec6e1 100644 --- a/google/cloud/common/BUILD.bazel +++ b/google/cloud/common/BUILD.bazel @@ -63,7 +63,6 @@ go_proto_library( ], ) - ############################################################################## # PHP ############################################################################## @@ -91,11 +90,18 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_proto_library", ) py_gapic_library( name = "common_py_gapic", srcs = [":common_proto"], + transport = "grpc", +) + +py_proto_library( + name = "common_py_proto", + deps = [":common_proto"], ) # Open Source Packages diff --git a/google/cloud/compute/BUILD.bazel b/google/cloud/compute/BUILD.bazel index 33a48dc30..1e1eb47e1 100644 --- a/google/cloud/compute/BUILD.bazel +++ b/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:0.0", + "ruby-cloud-wrapper-of=v1:1.7", "ruby-cloud-product-url=https://cloud.google.com/compute/", "ruby-cloud-api-id=compute.googleapis.com", "ruby-cloud-api-shortname=compute", diff --git a/google/cloud/compute/v1/BUILD.bazel b/google/cloud/compute/v1/BUILD.bazel index 608e75b4d..6f166bf3e 100644 --- a/google/cloud/compute/v1/BUILD.bazel +++ b/google/cloud/compute/v1/BUILD.bazel @@ -42,6 +42,7 @@ _SERVICE_IGNORELIST = [ proto_from_disco( name = "compute_gen", src = "compute.v1.json", + previous_proto = "compute.proto", enums_as_strings = True, message_ignorelist = _MESSAGE_IGNORE_LIST, service_ignorelist = _SERVICE_IGNORELIST, @@ -50,6 +51,7 @@ proto_from_disco( grpc_service_config_from_disco( name = "compute_grpc_service_config_gen", src = "compute.v1.json", + previous_proto = "compute.proto", message_ignorelist = _MESSAGE_IGNORE_LIST, service_ignorelist = _SERVICE_IGNORELIST, ) @@ -57,6 +59,7 @@ grpc_service_config_from_disco( gapic_yaml_from_disco( name = "compute_gapic_gen", src = "compute.v1.json", + previous_proto = "compute.proto", message_ignorelist = _MESSAGE_IGNORE_LIST, service_ignorelist = _SERVICE_IGNORELIST, ) @@ -224,6 +227,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -233,9 +237,20 @@ py_gapic_library( ], opt_args = [ "transport=rest", + "autogen-snippets=False", ], ) +py_test( + name = "compute_py_gapic_test", + srcs = [ + "compute_py_gapic_pytest.py", + "compute_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":compute_py_gapic"], +) + # Open Source Packages py_gapic_assembly_pkg( name = "compute-v1-py", @@ -378,6 +393,7 @@ csharp_gapic_library( srcs = [":compute_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = ":compute_grpc_service_config.json", + transport = "rest", deps = [ ":compute_csharp_grpc", ":compute_csharp_proto", diff --git a/google/cloud/compute/v1/compute.proto b/google/cloud/compute/v1/compute.proto index dc4c200b2..2e8c66642 100644 --- a/google/cloud/compute/v1/compute.proto +++ b/google/cloud/compute/v1/compute.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -14,7 +14,7 @@ // Generated by the disco-to-proto3-converter. DO NOT EDIT! // Source Discovery file: compute.v1.json -// Source file revision: 20211004 +// Source file revision: 20220831 // API name: compute // API version: v1 @@ -206,12 +206,18 @@ message AccessConfig { // A value indicating that the enum field is not set. UNDEFINED_NETWORK_TIER = 0; + // Public internet quality with fixed bandwidth. + FIXED_STANDARD = 310464328; + // High quality, Google-grade network tier, support for all networking products. PREMIUM = 399530551; // Public internet quality, only limited support for other networking products. STANDARD = 484642493; + // (Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured. + STANDARD_OVERRIDES_FIXED_STANDARD = 465847234; + } // The type of configuration. The default and only option is ONE_TO_ONE_NAT. @@ -225,10 +231,10 @@ message AccessConfig { } - // [Output Only] The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically. + // The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically. optional string external_ipv6 = 532703707; - // [Output Only] The prefix length of the external IPv6 range. + // The prefix length of the external IPv6 range. optional int32 external_ipv6_prefix_length = 425672143; // [Output Only] Type of the resource. Always compute#accessConfig for access configs. @@ -244,10 +250,10 @@ 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. + // 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. optional string public_ptr_domain_name = 316599167; - // Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. + // 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. optional bool set_public_ptr = 523870229; // The type of configuration. The default and only option is ONE_TO_ONE_NAT. @@ -300,6 +306,56 @@ message AddAssociationFirewallPolicyRequest { } +// A request message for NetworkFirewallPolicies.AddAssociation. See the method description for details. +message AddAssociationNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + FirewallPolicyAssociation firewall_policy_association_resource = 259546170 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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. + optional bool replace_existing_association = 209541240; + + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 RegionNetworkFirewallPolicies.AddAssociation. See the method description for details. +message AddAssociationRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + FirewallPolicyAssociation firewall_policy_association_resource = 259546170 [(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 scoping this request. + string region = 138946292 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "region" + ]; + + // 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. + optional bool replace_existing_association = 209541240; + + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 TargetPools.AddHealthCheck. See the method description for details. message AddHealthCheckTargetPoolRequest { // Project ID for this request. @@ -507,6 +563,62 @@ message AddRuleFirewallPolicyRequest { } +// A request message for NetworkFirewallPolicies.AddRule. See the method description for details. +message AddRuleNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + FirewallPolicyRule firewall_policy_rule_resource = 250523523 [(google.api.field_behavior) = REQUIRED]; + + // When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority. + optional int32 max_priority = 329635359; + + // When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority. + optional int32 min_priority = 267190513; + + // 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; + +} + +// A request message for RegionNetworkFirewallPolicies.AddRule. See the method description for details. +message AddRuleRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + FirewallPolicyRule firewall_policy_rule_resource = 250523523 [(google.api.field_behavior) = REQUIRED]; + + // When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority. + optional int32 max_priority = 329635359; + + // When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority. + optional int32 min_priority = 267190513; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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 SecurityPolicies.AddRule. See the method description for details. message AddRuleSecurityPolicyRequest { // Project ID for this request. @@ -521,6 +633,9 @@ message AddRuleSecurityPolicyRequest { // The body resource for this request SecurityPolicyRule security_policy_rule_resource = 402693443 [(google.api.field_behavior) = REQUIRED]; + // If true, the request will not be committed. + optional bool validate_only = 242744629; + } // A request message for BackendBuckets.AddSignedUrlKey. See the method description for details. @@ -596,15 +711,21 @@ message Address { // A value indicating that the enum field is not set. UNDEFINED_NETWORK_TIER = 0; + // Public internet quality with fixed bandwidth. + FIXED_STANDARD = 310464328; + // High quality, Google-grade network tier, support for all networking products. PREMIUM = 399530551; // Public internet quality, only limited support for other networking products. STANDARD = 484642493; + // (Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured. + STANDARD_OVERRIDES_FIXED_STANDARD = 465847234; + } - // 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 . - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect* configuration. These addresses are regional resources. Not currently available publicly. - `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. + // 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. enum Purpose { // A value indicating that the enum field is not set. UNDEFINED_PURPOSE = 0; @@ -615,7 +736,7 @@ message Address { // VM internal/alias IP, Internal LB service IP, etc. GCE_ENDPOINT = 230515243; - // A regional internal IP address range reserved for the VLAN attachment that is used in IPsec-encrypted 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. + // 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. IPSEC_INTERCONNECT = 340437251; // External IP automatically reserved for Cloud NAT. @@ -624,6 +745,9 @@ message Address { // 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 PRIVATE_SERVICE_CONNECT = 48134724; + // A regional internal IP address range reserved for Serverless. + SERVERLESS = 270492508; + // A private network IP address that can be shared by multiple Internal Load Balancer forwarding rules. SHARED_LOADBALANCER_VIP = 294447572; @@ -684,7 +808,7 @@ message Address { // The prefix length if the resource represents an IP range. optional int32 prefix_length = 453565747; - // 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 . - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect* configuration. These addresses are regional resources. Not currently available publicly. - `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. + // 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. // Check the Purpose enum for the list of possible values. optional string purpose = 316407070; @@ -768,14 +892,20 @@ message AdvancedMachineFeatures { // Whether to enable nested virtualization or not (default is false). optional bool enable_nested_virtualization = 16639365; + // Whether to enable UEFI networking for instance creation. + optional bool enable_uefi_networking = 334485668; + // 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. optional int32 threads_per_core = 352611671; + // 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. + optional int32 visible_core_count = 193198684; + } // A request message for AcceleratorTypes.AggregatedList. See the method description for details. message AggregatedListAcceleratorTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -800,7 +930,7 @@ message AggregatedListAcceleratorTypesRequest { // A request message for Addresses.AggregatedList. See the method description for details. message AggregatedListAddressesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -825,7 +955,7 @@ message AggregatedListAddressesRequest { // A request message for Autoscalers.AggregatedList. See the method description for details. message AggregatedListAutoscalersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -850,7 +980,7 @@ message AggregatedListAutoscalersRequest { // A request message for BackendServices.AggregatedList. See the method description for details. message AggregatedListBackendServicesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -875,7 +1005,7 @@ message AggregatedListBackendServicesRequest { // A request message for DiskTypes.AggregatedList. See the method description for details. message AggregatedListDiskTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -900,7 +1030,7 @@ message AggregatedListDiskTypesRequest { // A request message for Disks.AggregatedList. See the method description for details. message AggregatedListDisksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -925,7 +1055,7 @@ message AggregatedListDisksRequest { // A request message for ForwardingRules.AggregatedList. See the method description for details. message AggregatedListForwardingRulesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -950,7 +1080,7 @@ message AggregatedListForwardingRulesRequest { // A request message for GlobalOperations.AggregatedList. See the method description for details. message AggregatedListGlobalOperationsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -975,7 +1105,7 @@ message AggregatedListGlobalOperationsRequest { // A request message for HealthChecks.AggregatedList. See the method description for details. message AggregatedListHealthChecksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1000,7 +1130,7 @@ message AggregatedListHealthChecksRequest { // A request message for InstanceGroupManagers.AggregatedList. See the method description for details. message AggregatedListInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1025,7 +1155,7 @@ message AggregatedListInstanceGroupManagersRequest { // A request message for InstanceGroups.AggregatedList. See the method description for details. message AggregatedListInstanceGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1050,7 +1180,7 @@ message AggregatedListInstanceGroupsRequest { // A request message for Instances.AggregatedList. See the method description for details. message AggregatedListInstancesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1075,7 +1205,7 @@ message AggregatedListInstancesRequest { // A request message for InterconnectAttachments.AggregatedList. See the method description for details. message AggregatedListInterconnectAttachmentsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1100,7 +1230,7 @@ message AggregatedListInterconnectAttachmentsRequest { // A request message for MachineTypes.AggregatedList. See the method description for details. message AggregatedListMachineTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1123,9 +1253,34 @@ message AggregatedListMachineTypesRequest { } +// A request message for NetworkEdgeSecurityServices.AggregatedList. See the method description for details. +message AggregatedListNetworkEdgeSecurityServicesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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; + + // 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. + optional bool return_partial_success = 517198390; + +} + // A request message for NetworkEndpointGroups.AggregatedList. See the method description for details. message AggregatedListNetworkEndpointGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1150,7 +1305,7 @@ message AggregatedListNetworkEndpointGroupsRequest { // A request message for NodeGroups.AggregatedList. See the method description for details. message AggregatedListNodeGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1175,7 +1330,7 @@ message AggregatedListNodeGroupsRequest { // A request message for NodeTemplates.AggregatedList. See the method description for details. message AggregatedListNodeTemplatesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1200,7 +1355,7 @@ message AggregatedListNodeTemplatesRequest { // A request message for NodeTypes.AggregatedList. See the method description for details. message AggregatedListNodeTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1225,7 +1380,7 @@ message AggregatedListNodeTypesRequest { // A request message for PacketMirrorings.AggregatedList. See the method description for details. message AggregatedListPacketMirroringsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1250,7 +1405,7 @@ message AggregatedListPacketMirroringsRequest { // A request message for PublicDelegatedPrefixes.AggregatedList. See the method description for details. message AggregatedListPublicDelegatedPrefixesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1275,7 +1430,7 @@ message AggregatedListPublicDelegatedPrefixesRequest { // A request message for RegionCommitments.AggregatedList. See the method description for details. message AggregatedListRegionCommitmentsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1300,7 +1455,7 @@ message AggregatedListRegionCommitmentsRequest { // A request message for Reservations.AggregatedList. See the method description for details. message AggregatedListReservationsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1325,7 +1480,7 @@ message AggregatedListReservationsRequest { // A request message for ResourcePolicies.AggregatedList. See the method description for details. message AggregatedListResourcePoliciesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1350,7 +1505,7 @@ message AggregatedListResourcePoliciesRequest { // A request message for Routers.AggregatedList. See the method description for details. message AggregatedListRoutersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1373,9 +1528,34 @@ message AggregatedListRoutersRequest { } +// A request message for SecurityPolicies.AggregatedList. See the method description for details. +message AggregatedListSecurityPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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; + + // 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. + optional bool return_partial_success = 517198390; + +} + // A request message for ServiceAttachments.AggregatedList. See the method description for details. message AggregatedListServiceAttachmentsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1400,7 +1580,32 @@ message AggregatedListServiceAttachmentsRequest { // A request message for SslCertificates.AggregatedList. See the method description for details. message AggregatedListSslCertificatesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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; + + // 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. + optional bool return_partial_success = 517198390; + +} + +// A request message for SslPolicies.AggregatedList. See the method description for details. +message AggregatedListSslPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1425,7 +1630,7 @@ message AggregatedListSslCertificatesRequest { // A request message for Subnetworks.AggregatedList. See the method description for details. message AggregatedListSubnetworksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1450,7 +1655,7 @@ message AggregatedListSubnetworksRequest { // A request message for TargetHttpProxies.AggregatedList. See the method description for details. message AggregatedListTargetHttpProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1475,7 +1680,7 @@ message AggregatedListTargetHttpProxiesRequest { // A request message for TargetHttpsProxies.AggregatedList. See the method description for details. message AggregatedListTargetHttpsProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1500,7 +1705,7 @@ message AggregatedListTargetHttpsProxiesRequest { // A request message for TargetInstances.AggregatedList. See the method description for details. message AggregatedListTargetInstancesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1525,7 +1730,7 @@ message AggregatedListTargetInstancesRequest { // A request message for TargetPools.AggregatedList. See the method description for details. message AggregatedListTargetPoolsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1550,7 +1755,7 @@ message AggregatedListTargetPoolsRequest { // A request message for TargetVpnGateways.AggregatedList. See the method description for details. message AggregatedListTargetVpnGatewaysRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1575,7 +1780,7 @@ message AggregatedListTargetVpnGatewaysRequest { // A request message for UrlMaps.AggregatedList. See the method description for details. message AggregatedListUrlMapsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1600,7 +1805,7 @@ message AggregatedListUrlMapsRequest { // A request message for VpnGateways.AggregatedList. See the method description for details. message AggregatedListVpnGatewaysRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1625,7 +1830,7 @@ message AggregatedListVpnGatewaysRequest { // A request message for VpnTunnels.AggregatedList. See the method description for details. message AggregatedListVpnTunnelsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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. @@ -1699,8 +1904,11 @@ message AllocationSpecificSKUAllocationReservedInstanceProperties { } -// This reservation type allows to pre allocate specific instance configuration. Next ID: 5 +// This reservation type allows to pre allocate specific instance configuration. Next ID: 6 message AllocationSpecificSKUReservation { + // [Output Only] Indicates how many instances are actually usable currently. + optional int64 assured_count = 281197645; + // Specifies the number of resources that are allocated. optional int64 count = 94851343; @@ -1840,7 +2048,23 @@ message AttachNetworkEndpointsNetworkEndpointGroupRequest { // An instance-attached disk resource. message AttachedDisk { - // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. + // [Output Only] The architecture of the attached disk. 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; + + } + + // 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. enum Interface { // A value indicating that the enum field is not set. UNDEFINED_INTERFACE = 0; @@ -1875,6 +2099,10 @@ message AttachedDisk { } + // [Output Only] The architecture of the attached disk. Valid values are ARM64 or X86_64. + // Check the Architecture enum for the list of possible values. + optional string architecture = 302803283; + // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). optional bool auto_delete = 464761403; @@ -1890,6 +2118,9 @@ message AttachedDisk { // The size of the disk in GB. optional int64 disk_size_gb = 316263735; + // [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. + optional bool force_attach = 142758425; + // 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. repeated GuestOsFeature guest_os_features = 79294545; @@ -1899,7 +2130,7 @@ message AttachedDisk { // [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. optional AttachedDiskInitializeParams initialize_params = 17697045; - // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. + // 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. // Check the Interface enum for the list of possible values. optional string interface = 502623545; @@ -1916,7 +2147,7 @@ message AttachedDisk { // [Output Only] shielded vm initial state stored on disk optional InitialStateConfig shielded_instance_initial_state = 192356867; - // 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, not the URL for the disk. + // 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. optional string source = 177235995; // Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. @@ -1925,8 +2156,24 @@ message AttachedDisk { } -// [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. +// [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. message AttachedDiskInitializeParams { + // The architecture of the attached disk. 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; + + } + // Specifies which action to take on instance update with this disk. Default is to use the existing disk. enum OnUpdateAction { // A value indicating that the enum field is not set. @@ -1943,6 +2190,10 @@ message AttachedDiskInitializeParams { } + // The architecture of the attached disk. Valid values are arm64 or x86_64. + // Check the Architecture enum for the list of possible values. + optional string architecture = 302803283; + // An optional description. Provide this property when creating the disk. optional string description = 422937596; @@ -1958,6 +2209,9 @@ message AttachedDiskInitializeParams { // Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. map labels = 500195327; + // A list of publicly visible licenses. Reserved for Google's use. + repeated string licenses = 337642578; + // Specifies which action to take on instance update with this disk. Default is to use the existing disk. // Check the OnUpdateAction enum for the list of possible values. optional string on_update_action = 202451980; @@ -1965,6 +2219,9 @@ 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; + // 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. + map resource_manager_tags = 377671164; + // 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. repeated string resource_policies = 22220385; @@ -2402,7 +2659,7 @@ message AutoscalingPolicyScalingSchedule { // 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. optional string schedule = 375820951; - // The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of “UTC” if left empty. + // The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of ���UTC��� if left empty. optional string time_zone = 36848094; } @@ -2459,19 +2716,36 @@ message Backend { // 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. optional float max_rate_per_instance = 17599579; - // Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. + // 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; } // 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. message BackendBucket { + // Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header. + enum CompressionMode { + // A value indicating that the enum field is not set. + UNDEFINED_COMPRESSION_MODE = 0; + + // Automatically uses the best compression based on the Accept-Encoding header sent by the client. + AUTOMATIC = 165298699; + + // Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients. + DISABLED = 516696700; + + } + // Cloud Storage bucket name. optional string bucket_name = 283610048; // Cloud CDN configuration for this BackendBucket. optional BackendBucketCdnPolicy cdn_policy = 213976452; + // Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header. + // Check the CompressionMode enum for the list of possible values. + optional string compression_mode = 95520988; + // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 30525366; @@ -2481,6 +2755,9 @@ message BackendBucket { // An optional textual description of the resource; provided by the client when the resource is created. optional string description = 422937596; + // [Output Only] The resource URL for the edge security policy associated with this backend bucket. + optional string edge_security_policy = 41036943; + // If true, enable Cloud CDN for this BackendBucket. optional bool enable_cdn = 282942321; @@ -2521,11 +2798,14 @@ message BackendBucketCdnPolicy { // 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. repeated BackendBucketCdnPolicyBypassCacheOnRequestHeader bypass_cache_on_request_headers = 486203082; + // The CacheKeyPolicy for this CdnPolicy. + optional BackendBucketCdnPolicyCacheKeyPolicy cache_key_policy = 159263727; + // 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. // Check the CacheMode enum for the list of possible values. optional string cache_mode = 28877888; - // 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 86400s (1 day). + // 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). optional int32 client_ttl = 29034360; // 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. @@ -2561,6 +2841,16 @@ message BackendBucketCdnPolicyBypassCacheOnRequestHeader { } +// Message containing what to include in the cache key for a request for Cloud CDN. +message BackendBucketCdnPolicyCacheKeyPolicy { + // Allows HTTP request headers (by name) to be used in the cache key. + repeated string include_http_headers = 2489606; + + // 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. + repeated string query_string_whitelist = 52456496; + +} + // Specify CDN TTLs for response error codes. message BackendBucketCdnPolicyNegativeCachingPolicy { // 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. @@ -2595,6 +2885,19 @@ message BackendBucketList { // 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. message BackendService { + // Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header. + enum CompressionMode { + // A value indicating that the enum field is not set. + UNDEFINED_COMPRESSION_MODE = 0; + + // Automatically uses the best compression based on the Accept-Encoding header sent by the client. + AUTOMATIC = 165298699; + + // Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients. + DISABLED = 516696700; + + } + // 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. enum LoadBalancingScheme { // A value indicating that the enum field is not set. @@ -2603,6 +2906,9 @@ message BackendService { // Signifies that this will be used for external HTTP(S), SSL Proxy, TCP Proxy, or Network Load Balancing EXTERNAL = 35607499; + // Signifies that this will be used for External Managed HTTP(S) Load Balancing. + EXTERNAL_MANAGED = 512006923; + // Signifies that this will be used for Internal TCP/UDP Load Balancing. INTERNAL = 279295677; @@ -2616,7 +2922,7 @@ message BackendService { } - // 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. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only the default ROUND_ROBIN policy is 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. + // 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. 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. enum LocalityLbPolicy { // A value indicating that the enum field is not set. UNDEFINED_LOCALITY_LB_POLICY = 0; @@ -2667,9 +2973,12 @@ message BackendService { // UDP. UDP = 83873; + // If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules. + UNSPECIFIED = 526786327; + } - // Type of session affinity to use. The default is NONE. For a detailed description of session affinity options, see: [Session affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). 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 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). enum SessionAffinity { // A value indicating that the enum field is not set. UNDEFINED_SESSION_AFFINITY = 0; @@ -2700,7 +3009,7 @@ message BackendService { } - // Lifetime of cookies in seconds. This setting is applicable to external and internal HTTP(S) 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 one day (86,400). 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. + // Lifetime of cookies in seconds. This setting is applicable to external and internal HTTP(S) 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. optional int32 affinity_cookie_ttl_sec = 369996954; // The list of backends that serve this BackendService. @@ -2711,9 +3020,16 @@ message BackendService { optional CircuitBreakers circuit_breakers = 421340061; + // Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header. + // Check the CompressionMode enum for the list of possible values. + optional string compression_mode = 95520988; + optional ConnectionDraining connection_draining = 461096747; - // 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. 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. + // Connection Tracking configuration for this BackendService. Connection tracking policy settings are only available for Network Load Balancing and Internal TCP/UDP Load Balancing. + optional BackendServiceConnectionTrackingPolicy connection_tracking_policy = 143994969; + + // 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. optional ConsistentHashLoadBalancerSettings consistent_hash = 905883; // [Output Only] Creation timestamp in RFC3339 text format. @@ -2728,10 +3044,13 @@ message BackendService { // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; + // [Output Only] The resource URL for the edge security policy associated with this backend service. + optional string edge_security_policy = 41036943; + // If true, enables Cloud CDN for the backend service of an external HTTP(S) load balancer. optional bool enable_c_d_n = 250733499; - // Requires at least one backend instance group to be defined as a backup (failover) backend. 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](/network/networklb-failover-overview). + // Requires at least one backend instance group to be defined as a backup (failover) backend. 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). optional BackendServiceFailoverPolicy failover_policy = 105658655; // 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. @@ -2753,7 +3072,10 @@ message BackendService { // Check the LoadBalancingScheme enum for the list of possible values. optional string load_balancing_scheme = 363890244; - // 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. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only the default ROUND_ROBIN policy is 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. + // A list of locality load balancing policies to be used in order of preference. Either the policy or the customPolicy field should be set. Overrides any value set in the localityLbPolicy field. localityLbPolicies is only supported when the BackendService is referenced by a URL Map that is referenced by a target gRPC proxy that has the validateForProxyless field set to true. + repeated BackendServiceLocalityLoadBalancingPolicyConfig locality_lb_policies = 140982557; + + // 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. 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. // Check the LocalityLbPolicy enum for the list of possible values. optional string locality_lb_policy = 131431487; @@ -2788,19 +3110,22 @@ message BackendService { // [Output Only] The resource URL for the security policy associated with this backend service. optional string security_policy = 171082513; - // This field specifies the security policy that applies to this backend service. 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. + // 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. optional SecuritySettings security_settings = 478649922; // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; - // Type of session affinity to use. The default is NONE. For a detailed description of session affinity options, see: [Session affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). 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. + // 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; + + // 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; optional Subsetting subsetting = 450283536; - // 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. + // 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. optional int32 timeout_sec = 79994995; } @@ -2860,7 +3185,7 @@ message BackendServiceCdnPolicy { // Check the CacheMode enum for the list of possible values. optional string cache_mode = 28877888; - // 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 86400s (1 day). + // 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). optional int32 client_ttl = 29034360; // 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. @@ -2906,15 +3231,59 @@ message BackendServiceCdnPolicyNegativeCachingPolicy { } -// 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](/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). +// Connection Tracking configuration for this BackendService. +message BackendServiceConnectionTrackingPolicy { + // 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). + enum ConnectionPersistenceOnUnhealthyBackends { + // A value indicating that the enum field is not set. + UNDEFINED_CONNECTION_PERSISTENCE_ON_UNHEALTHY_BACKENDS = 0; + + ALWAYS_PERSIST = 38400900; + + DEFAULT_FOR_PROTOCOL = 145265356; + + NEVER_PERSIST = 138646241; + + } + + // 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). + enum TrackingMode { + // A value indicating that the enum field is not set. + UNDEFINED_TRACKING_MODE = 0; + + INVALID_TRACKING_MODE = 49234371; + + PER_CONNECTION = 85162848; + + PER_SESSION = 182099252; + + } + + // 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). + // Check the ConnectionPersistenceOnUnhealthyBackends enum for the list of possible values. + optional string connection_persistence_on_unhealthy_backends = 152439033; + + // Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly. + optional bool enable_strong_affinity = 24539924; + + // Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - 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 Network Load Balancer the default is 60 seconds. This option is not available publicly. + optional int32 idle_timeout_sec = 24977544; + + // 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). + // Check the TrackingMode enum for the list of possible values. + optional string tracking_mode = 127757867; + +} + +// 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). 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). message BackendServiceFailoverPolicy { // This can be set to true only if the protocol is TCP. The default is false. optional bool disable_connection_drain_on_failover = 182150753; - // 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 TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-overview). The default is false. + // 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 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). The default is false. optional bool drop_traffic_if_unhealthy = 112289428; - // 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](/network/networklb-failover-overview). + // 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). optional float failover_ratio = 212667006; } @@ -2970,9 +3339,62 @@ message BackendServiceList { } +// Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user. +message BackendServiceLocalityLoadBalancingPolicyConfig { + optional BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy custom_policy = 4818368; + + optional BackendServiceLocalityLoadBalancingPolicyConfigPolicy policy = 91071794; + +} + +// The configuration for a custom policy implemented by the user and deployed with the client. +message BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy { + // An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation. + optional string data = 3076010; + + // Identifies the custom policy. The value should match the type the custom implementation is registered with on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (e.g. myorg.CustomLbPolicy). The maximum length is 256 characters. Note that specifying the same custom policy more than once for a backend is not a valid configuration and will be rejected. + optional string name = 3373707; + +} + +// The configuration for a built-in load balancing policy. +message BackendServiceLocalityLoadBalancingPolicyConfigPolicy { + // The name of a locality load balancer policy to be used. The value should be one of the predefined ones as supported by localityLbPolicy, although at the moment only ROUND_ROBIN is supported. This field should only be populated when the customPolicy field is not used. Note that specifying the same policy more than once for a backend is not a valid configuration and will be rejected. + enum Name { + // A value indicating that the enum field is not set. + UNDEFINED_NAME = 0; + + INVALID_LB_POLICY = 323318707; + + // An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. + LEAST_REQUEST = 46604921; + + // 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 + MAGLEV = 119180266; + + // 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. + ORIGINAL_DESTINATION = 166297216; + + // The load balancer selects a random healthy host. + RANDOM = 262527171; + + // 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. + RING_HASH = 432795069; + + // This is a simple policy in which each healthy backend is selected in round robin order. This is the default. + ROUND_ROBIN = 153895801; + + } + + // The name of a locality load balancer policy to be used. The value should be one of the predefined ones as supported by localityLbPolicy, although at the moment only ROUND_ROBIN is supported. This field should only be populated when the customPolicy field is not used. Note that specifying the same policy more than once for a backend is not a valid configuration and will be rejected. + // Check the Name enum for the list of possible values. + optional string name = 3373707; + +} + // The available logging options for the load balancer traffic served by this backend service. message BackendServiceLogConfig { - // This field denotes whether to enable logging for the load balancer traffic served by this backend service. + // Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false. optional bool enable = 311764355; // 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. @@ -2996,18 +3418,226 @@ message BackendServicesScopedList { } -// Associates `members` with a `role`. +// +message BfdPacket { + // 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 + enum Diagnostic { + // A value indicating that the enum field is not set. + UNDEFINED_DIAGNOSTIC = 0; + + ADMINISTRATIVELY_DOWN = 121685798; + + CONCATENATED_PATH_DOWN = 26186892; + + CONTROL_DETECTION_TIME_EXPIRED = 135478383; + + DIAGNOSTIC_UNSPECIFIED = 58720895; + + ECHO_FUNCTION_FAILED = 220687466; + + FORWARDING_PLANE_RESET = 19715882; + + NEIGHBOR_SIGNALED_SESSION_DOWN = 374226742; + + NO_DIAGNOSTIC = 222503141; + + PATH_DOWN = 290605180; + + REVERSE_CONCATENATED_PATH_DOWN = 479337129; + + } + + // The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880 + enum State { + // A value indicating that the enum field is not set. + UNDEFINED_STATE = 0; + + ADMIN_DOWN = 128544690; + + DOWN = 2104482; + + INIT = 2252048; + + STATE_UNSPECIFIED = 470755401; + + UP = 2715; + + } + + // The Authentication Present bit of the BFD packet. This is specified in section 4.1 of RFC5880 + optional bool authentication_present = 105974260; + + // The Control Plane Independent bit of the BFD packet. This is specified in section 4.1 of RFC5880 + optional bool control_plane_independent = 62363573; + + // The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880 + optional bool demand = 275180107; + + // 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 + // Check the Diagnostic enum for the list of possible values. + optional string diagnostic = 62708647; + + // The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880 + optional bool final = 97436022; + + // The length of the BFD Control packet in bytes. This is specified in section 4.1 of RFC5880 + optional uint32 length = 504249062; + + // The Required Min Echo RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880 + optional uint32 min_echo_rx_interval_ms = 97286868; + + // The Required Min RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880 + optional uint32 min_rx_interval_ms = 463399028; + + // The Desired Min TX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880 + optional uint32 min_tx_interval_ms = 526023602; + + // The detection time multiplier of the BFD packet. This is specified in section 4.1 of RFC5880 + optional uint32 multiplier = 191331777; + + // The multipoint bit of the BFD packet. This is specified in section 4.1 of RFC5880 + optional bool multipoint = 191421431; + + // The My Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880 + optional uint32 my_discriminator = 76663113; + + // The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880 + optional bool poll = 3446719; + + // The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880 + // Check the State enum for the list of possible values. + optional string state = 109757585; + + // The version number of the BFD protocol, as specified in section 4.1 of RFC5880. + optional uint32 version = 351608024; + + // The Your Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880 + optional uint32 your_discriminator = 515634064; + +} + +// Next free: 15 +message BfdStatus { + // 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. + enum BfdSessionInitializationMode { + // A value indicating that the enum field is not set. + UNDEFINED_BFD_SESSION_INITIALIZATION_MODE = 0; + + ACTIVE = 314733318; + + DISABLED = 516696700; + + PASSIVE = 462813959; + + } + + // 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 + enum LocalDiagnostic { + // A value indicating that the enum field is not set. + UNDEFINED_LOCAL_DIAGNOSTIC = 0; + + ADMINISTRATIVELY_DOWN = 121685798; + + CONCATENATED_PATH_DOWN = 26186892; + + CONTROL_DETECTION_TIME_EXPIRED = 135478383; + + DIAGNOSTIC_UNSPECIFIED = 58720895; + + ECHO_FUNCTION_FAILED = 220687466; + + FORWARDING_PLANE_RESET = 19715882; + + NEIGHBOR_SIGNALED_SESSION_DOWN = 374226742; + + NO_DIAGNOSTIC = 222503141; + + PATH_DOWN = 290605180; + + REVERSE_CONCATENATED_PATH_DOWN = 479337129; + + } + + // The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880 + enum LocalState { + // A value indicating that the enum field is not set. + UNDEFINED_LOCAL_STATE = 0; + + ADMIN_DOWN = 128544690; + + DOWN = 2104482; + + INIT = 2252048; + + STATE_UNSPECIFIED = 470755401; + + UP = 2715; + + } + + // 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. + // Check the BfdSessionInitializationMode enum for the list of possible values. + optional string bfd_session_initialization_mode = 218156954; + + // Unix timestamp of the most recent config update. + optional int64 config_update_timestamp_micros = 457195569; + + // Control packet counts for the current BFD session. + optional BfdStatusPacketCounts control_packet_counts = 132573561; + + // Inter-packet time interval statistics for control packets. + repeated PacketIntervals control_packet_intervals = 500806649; + + // 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 + // Check the LocalDiagnostic enum for the list of possible values. + optional string local_diagnostic = 463737083; + + // The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880 + // Check the LocalState enum for the list of possible values. + optional string local_state = 149195453; + + // Negotiated transmit interval for control packets. + optional uint32 negotiated_local_control_tx_interval_ms = 21768340; + + // The most recent Rx control packet for this BFD session. + optional BfdPacket rx_packet = 505069729; + + // The most recent Tx control packet for this BFD session. + optional BfdPacket tx_packet = 111386275; + + // Session uptime in milliseconds. Value will be 0 if session is not up. + optional int64 uptime_ms = 125398365; + +} + +// +message BfdStatusPacketCounts { + // Number of packets received since the beginning of the current BFD session. + optional uint32 num_rx = 39375263; + + // Number of packets received that were rejected because of errors since the beginning of the current BFD session. + optional uint32 num_rx_rejected = 281007902; + + // Number of packets received that were successfully processed since the beginning of the current BFD session. + optional uint32 num_rx_successful = 455361850; + + // Number of packets transmitted since the beginning of the current BFD session. + optional uint32 num_tx = 39375325; + +} + +// Associates `members`, or principals, with a `role`. message Binding { // This is deprecated and has no effect. Do not use. optional string binding_id = 441088277; - // 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 members 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). + // 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). optional Expr condition = 212430107; - // Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. + // 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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. repeated string members = 412010777; - // Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + // Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. optional string role = 3506294; } @@ -3042,7 +3672,7 @@ message BulkInsertInstanceResource { // The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided. optional InstanceProperties instance_properties = 215355165; - // Policy for chosing target zone. + // Policy for chosing target zone. For more information, see Create VMs in bulk . optional LocationPolicy location_policy = 465689852; // 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. @@ -3102,6 +3732,12 @@ message CacheKeyPolicy { // If true, requests to different hosts will be cached separately. optional bool include_host = 486867679; + // Allows HTTP request headers (by name) to be used in the cache key. + repeated string include_http_headers = 2489606; + + // 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. + repeated string include_named_cookies = 87316530; + // If true, http and https requests will be cached separately. optional bool include_protocol = 303507535; @@ -3118,19 +3754,19 @@ message CacheKeyPolicy { // Settings controlling the volume of requests, connections and retries to this backend service. message CircuitBreakers { - // 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. + // 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. optional int32 max_connections = 110652154; - // 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. + // 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. optional int32 max_pending_requests = 375558887; // The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. optional int32 max_requests = 28097599; - // 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. + // 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. optional int32 max_requests_per_connection = 361630528; - // 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. + // 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. optional int32 max_retries = 55546219; } @@ -3148,6 +3784,50 @@ message CloneRulesFirewallPolicyRequest { } +// A request message for NetworkFirewallPolicies.CloneRules. See the method description for details. +message CloneRulesNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(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 firewall policy from which to copy rules. + optional string source_firewall_policy = 25013549; + +} + +// A request message for RegionNetworkFirewallPolicies.CloneRules. See the method description for details. +message CloneRulesRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(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 scoping 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; + + // The firewall policy from which to copy rules. + optional string source_firewall_policy = 25013549; + +} + // 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. message Commitment { // 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. @@ -3183,6 +3863,8 @@ message Commitment { ACTIVE = 314733318; + CANCELLED = 41957681; + CREATING = 455564985; EXPIRED = 482489093; @@ -3200,6 +3882,8 @@ message Commitment { COMPUTE_OPTIMIZED = 158349023; + COMPUTE_OPTIMIZED_C2D = 383246453; + GENERAL_PURPOSE = 299793543; GENERAL_PURPOSE_E2 = 301911877; @@ -3208,12 +3892,19 @@ message Commitment { GENERAL_PURPOSE_N2D = 232471400; + GENERAL_PURPOSE_T2D = 232477166; + MEMORY_OPTIMIZED = 281753417; + MEMORY_OPTIMIZED_M3 = 276301372; + TYPE_UNSPECIFIED = 437714322; } + // 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. + optional bool auto_renew = 495520765; + // 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. // Check the Category enum for the list of possible values. optional string category = 50511102; @@ -3236,6 +3927,9 @@ message Commitment { // The license specification required as part of a license commitment. optional LicenseResourceCommitment license_resource = 437955148; + // List of source commitments to be merged into a new commitment. + repeated string merge_source_commitments = 188093761; + // 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; @@ -3255,6 +3949,9 @@ message Commitment { // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; + // Source commitment to be splitted into a new commitment. + optional string split_source_commitment = 402611156; + // [Output Only] Commitment start time in RFC3339 text format. optional string start_timestamp = 83645817; @@ -3331,15 +4028,94 @@ message CommitmentsScopedList { // This is deprecated and has no effect. Do not use. message Condition { // This is deprecated and has no effect. Do not use. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NO_ATTR + enum Iam { + // A value indicating that the enum field is not set. + UNDEFINED_IAM = 0; + + // This is deprecated and has no effect. Do not use. + APPROVER = 357258949; + + // This is deprecated and has no effect. Do not use. + ATTRIBUTION = 232465503; + + // This is deprecated and has no effect. Do not use. + AUTHORITY = 504108835; + + // This is deprecated and has no effect. Do not use. + CREDENTIALS_TYPE = 348222141; + + // This is deprecated and has no effect. Do not use. + CREDS_ASSERTION = 332343272; + + // This is deprecated and has no effect. Do not use. + JUSTIFICATION_TYPE = 206147719; + + // This is deprecated and has no effect. Do not use. + SECURITY_REALM = 526269616; + + } + + // This is deprecated and has no effect. Do not use. + enum Op { + // A value indicating that the enum field is not set. + UNDEFINED_OP = 0; + + // This is deprecated and has no effect. Do not use. + DISCHARGED = 266338274; + + // This is deprecated and has no effect. Do not use. + EQUALS = 442201023; + + // This is deprecated and has no effect. Do not use. + IN = 2341; + + // This is deprecated and has no effect. Do not use. + NOT_EQUALS = 19718859; + + // This is deprecated and has no effect. Do not use. + NOT_IN = 161144369; + + // This is deprecated and has no effect. Do not use. + NO_OP = 74481951; + + } + + // This is deprecated and has no effect. Do not use. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NO_ATTR + enum Sys { + // A value indicating that the enum field is not set. + UNDEFINED_SYS = 0; + + // This is deprecated and has no effect. Do not use. + IP = 2343; + + // This is deprecated and has no effect. Do not use. + NAME = 2388619; + + // This is deprecated and has no effect. Do not use. + REGION = 266017524; + + // This is deprecated and has no effect. Do not use. + SERVICE = 17781397; + + } + + // This is deprecated and has no effect. Do not use. + // Check the Iam enum for the list of possible values. optional string iam = 104021; // This is deprecated and has no effect. Do not use. + // Check the Op enum for the list of possible values. optional string op = 3553; // This is deprecated and has no effect. Do not use. optional string svc = 114272; // This is deprecated and has no effect. Do not use. + // Check the Sys enum for the list of possible values. optional string sys = 114381; // This is deprecated and has no effect. Do not use. @@ -3363,7 +4139,7 @@ message ConnectionDraining { // This message defines settings for a consistent hash style load balancer. message ConsistentHashLoadBalancerSettings { - // 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. + // 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. optional ConsistentHashLoadBalancerSettingsHttpCookie http_cookie = 6673915; // The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. @@ -3387,9 +4163,9 @@ message ConsistentHashLoadBalancerSettingsHttpCookie { } -// The specification for allowing client side cross-origin requests. Please see W3C Recommendation for Cross Origin Resource Sharing +// 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. message CorsPolicy { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This translates to the Access-Control-Allow-Credentials header. Default is false. + // 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. optional bool allow_credentials = 481263366; // Specifies the content for the Access-Control-Allow-Headers header. @@ -3398,19 +4174,19 @@ message CorsPolicy { // Specifies the content for the Access-Control-Allow-Methods header. repeated string allow_methods = 205405372; - // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar please see github.com/google/re2/wiki/Syntax An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + // 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. repeated string allow_origin_regexes = 215385810; - // Specifies the list of origins that will be allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + // 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, specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. + // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. optional bool disabled = 270940796; // Specifies the content for the Access-Control-Expose-Headers header. repeated string expose_headers = 247604747; - // Specifies how long results of a preflight request can be cached in seconds. This translates to the Access-Control-Max-Age header. + // Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. optional int32 max_age = 307559332; } @@ -3470,7 +4246,7 @@ message CreateSnapshotDiskRequest { // Name of the persistent disk to snapshot. string disk = 3083677 [(google.api.field_behavior) = REQUIRED]; - // [Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process. Currently only supported on Windows instances using the Volume Shadow Copy Service (VSS). + // [Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process. optional bool guest_flush = 385550813; // Project ID for this request. @@ -3834,7 +4610,7 @@ message DeleteGlobalPublicDelegatedPrefixeRequest { // Name of the PublicDelegatedPrefix resource to delete. string public_delegated_prefix = 204238440 [(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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -4057,6 +4833,44 @@ message DeleteLicenseRequest { } +// A request message for MachineImages.Delete. See the method description for details. +message DeleteMachineImageRequest { + // The name of the machine image to delete. + string machine_image = 69189475 [(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; + +} + +// A request message for NetworkEdgeSecurityServices.Delete. See the method description for details. +message DeleteNetworkEdgeSecurityServiceRequest { + // Name of the network edge security service to delete. + string network_edge_security_service = 157011879 [(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 scoping 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 NetworkEndpointGroups.Delete. See the method description for details. message DeleteNetworkEndpointGroupRequest { // The name of the network endpoint group to delete. It should comply with RFC1035. @@ -4079,6 +4893,22 @@ message DeleteNetworkEndpointGroupRequest { } +// A request message for NetworkFirewallPolicies.Delete. See the method description for details. +message DeleteNetworkFirewallPolicyRequest { + // Name of the firewall policy to delete. + string firewall_policy = 498173265 [(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; + +} + // A request message for Networks.Delete. See the method description for details. message DeleteNetworkRequest { // Name of the network to delete. @@ -4241,7 +5071,7 @@ message DeletePublicAdvertisedPrefixeRequest { // Name of the PublicAdvertisedPrefix resource to delete. string public_advertised_prefix = 101874590 [(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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -4263,7 +5093,7 @@ message DeletePublicDelegatedPrefixeRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -4422,6 +5252,28 @@ message DeleteRegionNetworkEndpointGroupRequest { } +// A request message for RegionNetworkFirewallPolicies.Delete. See the method description for details. +message DeleteRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to delete. + string firewall_policy = 498173265 [(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 scoping 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 RegionNotificationEndpoints.Delete. See the method description for details. message DeleteRegionNotificationEndpointRequest { // Name of the NotificationEndpoint resource to delete. @@ -4439,7 +5291,7 @@ message DeleteRegionNotificationEndpointRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -4461,6 +5313,28 @@ message DeleteRegionOperationRequest { message DeleteRegionOperationResponse { } +// A request message for RegionSecurityPolicies.Delete. See the method description for details. +message DeleteRegionSecurityPolicyRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // Name of the security policy to delete. + string security_policy = 171082513 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionSslCertificates.Delete. See the method description for details. message DeleteRegionSslCertificateRequest { // Project ID for this request. @@ -4475,7 +5349,7 @@ message DeleteRegionSslCertificateRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 SslCertificate resource to delete. @@ -4483,6 +5357,28 @@ message DeleteRegionSslCertificateRequest { } +// A request message for RegionSslPolicies.Delete. See the method description for details. +message DeleteRegionSslPolicyRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035. + string ssl_policy = 295190213 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionTargetHttpProxies.Delete. See the method description for details. message DeleteRegionTargetHttpProxyRequest { // Project ID for this request. @@ -4519,7 +5415,7 @@ message DeleteRegionTargetHttpsProxyRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 TargetHttpsProxy resource to delete. @@ -4527,6 +5423,28 @@ message DeleteRegionTargetHttpsProxyRequest { } +// A request message for RegionTargetTcpProxies.Delete. See the method description for details. +message DeleteRegionTargetTcpProxyRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // Name of the TargetTcpProxy resource to delete. + string target_tcp_proxy = 503065442 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionUrlMaps.Delete. See the method description for details. message DeleteRegionUrlMapRequest { // Project ID for this request. @@ -4661,7 +5579,7 @@ message DeleteServiceAttachmentRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 ServiceAttachment resource to delete. @@ -4731,7 +5649,7 @@ message DeleteSslCertificateRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 SslCertificate resource to delete. @@ -4785,7 +5703,7 @@ message DeleteTargetGrpcProxyRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 TargetGrpcProxy resource to delete. @@ -5164,6 +6082,22 @@ message DisableXpnResourceProjectRequest { // 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. message Disk { + // The architecture of the disk. 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 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. enum Status { // A value indicating that the enum field is not set. @@ -5186,6 +6120,10 @@ message Disk { } + // The architecture of the disk. 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; @@ -5231,6 +6169,9 @@ message Disk { // Internal use only. optional string options = 361137822; + // Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload. + optional DiskParams params = 78313862; + // 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. optional int64 physical_block_size_bytes = 420007943; @@ -5399,6 +6340,13 @@ message DiskMoveRequest { } +// Additional disk params. +message DiskParams { + // 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. + map resource_manager_tags = 377671164; + +} + // 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. message DiskType { // [Output Only] Creation timestamp in RFC3339 text format. @@ -5611,11 +6559,37 @@ message Error { } +// +message ErrorDetails { + optional ErrorInfo error_info = 25251973; + + optional Help help = 3198785; + + optional LocalizedMessage localized_message = 404537155; + +} + +// 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" } } +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. + 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-Z0-9_]+/. + optional string reason = 138777156; + +} + // message Errors { // [Output Only] The error type identifier for this error. optional string code = 3059181; + // [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. + repeated ErrorDetails error_details = 274653963; + // [Output Only] Indicates the field in the request that caused the error. This property is optional. optional string location = 290430901; @@ -5834,7 +6808,7 @@ message FileContentBuffer { // 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. message Firewall { - // Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS` traffic, you cannot specify the destinationRanges field, and for `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags fields. + // 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. enum Direction { // A value indicating that the enum field is not set. UNDEFINED_DIRECTION = 0; @@ -5862,7 +6836,7 @@ message Firewall { // 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. repeated string destination_ranges = 305699879; - // Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS` traffic, you cannot specify the destinationRanges field, and for `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags fields. + // 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. // Check the Direction enum for the list of possible values. optional string direction = 111150975; @@ -5878,7 +6852,7 @@ message Firewall { // This field denotes the logging options for a particular firewall rule. If logging is enabled, logs will be exported to Cloud Logging. optional FirewallLogConfig log_config = 351299741; - // 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. + // 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. optional string name = 3373707; // 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 @@ -5972,7 +6946,7 @@ message FirewallPolicy { // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; - // 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 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. + // 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. optional string display_name = 4473832; // 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. @@ -5984,12 +6958,15 @@ message FirewallPolicy { // [Output only] Type of the resource. Always compute#firewallPolicyfor firewall policies optional string kind = 3292052; - // [Output Only] Name of the resource. It is a numeric ID allocated by GCP which uniquely identifies the Firewall Policy. + // Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by GCP which uniquely identifies the Organization Firewall Policy. optional string name = 3373707; - // [Output Only] The parent of the firewall policy. + // [Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies. optional string parent = 78317738; + // [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. + optional string region = 138946292; + // [Output Only] Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples. optional int32 rule_tuple_count = 388342037; @@ -6002,7 +6979,7 @@ message FirewallPolicy { // [Output Only] Server-defined URL for this resource with the resource id. optional string self_link_with_id = 44520962; - // User-provided name of the Organization firewall plicy. The name should be unique in the organization in which the firewall policy is created. 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. + // 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. optional string short_name = 492051566; } @@ -6083,12 +7060,18 @@ message FirewallPolicyRule { // 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. optional int32 priority = 445151652; + // An optional name for the rule. This field is not a unique identifier and can be updated. + optional string rule_name = 55286254; + // [Output Only] Calculation of the complexity of a single firewall policy rule. optional int32 rule_tuple_count = 388342037; // 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. repeated string target_resources = 528230647; + // 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. + repeated FirewallPolicyRuleSecureTag target_secure_tags = 468132403; + // A list of service accounts indicating the sets of instances that are applied with this rule. repeated string target_service_accounts = 457639710; @@ -6105,6 +7088,9 @@ message FirewallPolicyRuleMatcher { // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. repeated string src_ip_ranges = 432128083; + // 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. + repeated FirewallPolicyRuleSecureTag src_secure_tags = 508791302; + } // @@ -6117,6 +7103,28 @@ message FirewallPolicyRuleMatcherLayer4Config { } +// +message FirewallPolicyRuleSecureTag { + // [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. + enum State { + // A value indicating that the enum field is not set. + UNDEFINED_STATE = 0; + + EFFECTIVE = 244201863; + + INEFFECTIVE = 304458242; + + } + + // Name of the secure tag, created with TagManager's TagValue API. + optional string name = 3373707; + + // [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. + // Check the State enum for the list of possible values. + optional string state = 109757585; + +} + // Encapsulates numeric value that can be either absolute or relative. message FixedOrPercent { // [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. @@ -6143,6 +7151,8 @@ message ForwardingRule { ICMP = 2241597; + L3_DEFAULT = 48151369; + SCTP = 2539724; TCP = 82881; @@ -6151,7 +7161,7 @@ message ForwardingRule { } - // The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for an external global forwarding rule. + // The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. enum IpVersion { // A value indicating that the enum field is not set. UNDEFINED_IP_VERSION = 0; @@ -6171,6 +7181,8 @@ message ForwardingRule { EXTERNAL = 35607499; + EXTERNAL_MANAGED = 512006923; + INTERNAL = 279295677; INTERNAL_MANAGED = 37350397; @@ -6186,12 +7198,18 @@ message ForwardingRule { // A value indicating that the enum field is not set. UNDEFINED_NETWORK_TIER = 0; + // Public internet quality with fixed bandwidth. + FIXED_STANDARD = 310464328; + // High quality, Google-grade network tier, support for all networking products. PREMIUM = 399530551; // Public internet quality, only limited support for other networking products. STANDARD = 484642493; + // (Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured. + STANDARD_OVERRIDES_FIXED_STANDARD = 465847234; + } // @@ -6205,6 +7223,9 @@ message ForwardingRule { // The connection has been closed by the producer and will not serve traffic going forward. CLOSED = 380163436; + // The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic. + NEEDS_ATTENTION = 344491452; + // The connection is pending acceptance by the producer. PENDING = 35394935; @@ -6215,7 +7236,7 @@ message ForwardingRule { } - // IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full 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 loadBalancingScheme and the forwarding rule's target 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). Must be set to `0.0.0.0` when the target is targetGrpcProxy that has validateForProxyless field set to true. For Private Service Connect forwarding rules that forward traffic to Google APIs, IP address must be provided. + // 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` * 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. optional string I_p_address = 42976943; // 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). @@ -6243,7 +7264,7 @@ message ForwardingRule { // [Output Only] The unique identifier for the resource. This identifier is defined by the server. optional uint64 id = 3355; - // The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for an external global forwarding rule. + // 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; @@ -6276,6 +7297,9 @@ message ForwardingRule { // Check the NetworkTier enum for the list of possible values. optional string network_tier = 517397843; + // 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. + optional bool no_automate_dns_zone = 64546991; + // This field can be used only if: - Load balancing scheme is one of EXTERNAL, INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or SCTP. Packets addressed to ports in the specified range will be forwarded to target or backend_service. You can only use one of ports, port_range, or allPorts. The three are mutually exclusive. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding target have constraints on the acceptable ports. For more information, see [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications). @pattern: \\d+(?:-\\d+)? optional string port_range = 217518079; @@ -6295,7 +7319,7 @@ message ForwardingRule { // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; - // Service Directory resources to register this forwarding rule with. Currently, only supports a single Service Directory resource. It is only supported for internal load balancing. + // Service Directory resources to register this forwarding rule with. Currently, only supports a single Service Directory resource. repeated ForwardingRuleServiceDirectoryRegistration service_directory_registrations = 223549694; // 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. @@ -6456,6 +7480,35 @@ message GetAssociationFirewallPolicyRequest { } +// A request message for NetworkFirewallPolicies.GetAssociation. See the method description for details. +message GetAssociationNetworkFirewallPolicyRequest { + // Name of the firewall policy to which the queried association belongs. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The name of the association to get from the firewall policy. + optional string name = 3373707; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for RegionNetworkFirewallPolicies.GetAssociation. See the method description for details. +message GetAssociationRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to which the queried association belongs. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The name of the association to get from the firewall policy. + optional string name = 3373707; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the region scoping this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Autoscalers.Get. See the method description for details. message GetAutoscalerRequest { // Name of the autoscaler to return. @@ -6551,6 +7604,19 @@ message GetEffectiveFirewallsNetworkRequest { } +// A request message for RegionNetworkFirewallPolicies.GetEffectiveFirewalls. See the method description for details. +message GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest { + // Network reference + string network = 232872494 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the region scoping this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for ExternalVpnGateways.Get. See the method description for details. message GetExternalVpnGatewayRequest { // Name of the externalVpnGateway to return. @@ -6739,6 +7805,19 @@ message GetHealthTargetPoolRequest { } +// A request message for BackendServices.GetIamPolicy. See the method description for details. +message GetIamPolicyBackendServiceRequest { + // 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]; + +} + // A request message for Disks.GetIamPolicy. See the method description for details. message GetIamPolicyDiskRequest { // Requested IAM Policy version. @@ -6820,6 +7899,32 @@ message GetIamPolicyLicenseRequest { } +// A request message for MachineImages.GetIamPolicy. See the method description for details. +message GetIamPolicyMachineImageRequest { + // 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]; + +} + +// A request message for NetworkFirewallPolicies.GetIamPolicy. See the method description for details. +message GetIamPolicyNetworkFirewallPolicyRequest { + // 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]; + +} + // A request message for NodeGroups.GetIamPolicy. See the method description for details. message GetIamPolicyNodeGroupRequest { // Requested IAM Policy version. @@ -6852,6 +7957,22 @@ message GetIamPolicyNodeTemplateRequest { } +// A request message for RegionBackendServices.GetIamPolicy. See the method description for details. +message GetIamPolicyRegionBackendServiceRequest { + // 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 RegionDisks.GetIamPolicy. See the method description for details. message GetIamPolicyRegionDiskRequest { // Requested IAM Policy version. @@ -6868,6 +7989,22 @@ message GetIamPolicyRegionDiskRequest { } +// A request message for RegionNetworkFirewallPolicies.GetIamPolicy. See the method description for details. +message GetIamPolicyRegionNetworkFirewallPolicyRequest { + // 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 Reservations.GetIamPolicy. See the method description for details. message GetIamPolicyReservationRequest { // Requested IAM Policy version. @@ -7070,6 +8207,16 @@ message GetLicenseRequest { } +// A request message for MachineImages.Get. See the method description for details. +message GetMachineImageRequest { + // The name of the machine image. + string machine_image = 69189475 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for MachineTypes.Get. See the method description for details. message GetMachineTypeRequest { // Name of the machine type to return. @@ -7085,7 +8232,7 @@ message GetMachineTypeRequest { // A request message for Routers.GetNatMappingInfo. See the method description for details. message GetNatMappingInfoRoutersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -7111,6 +8258,19 @@ message GetNatMappingInfoRoutersRequest { } +// A request message for NetworkEdgeSecurityServices.Get. See the method description for details. +message GetNetworkEdgeSecurityServiceRequest { + // Name of the network edge security service to get. + string network_edge_security_service = 157011879 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the region scoping this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for NetworkEndpointGroups.Get. See the method description for details. message GetNetworkEndpointGroupRequest { // The name of the network endpoint group. It should comply with RFC1035. @@ -7124,6 +8284,16 @@ message GetNetworkEndpointGroupRequest { } +// A request message for NetworkFirewallPolicies.Get. See the method description for details. +message GetNetworkFirewallPolicyRequest { + // Name of the firewall policy to get. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Networks.Get. See the method description for details. message GetNetworkRequest { // Name of the network to return. @@ -7346,6 +8516,19 @@ message GetRegionNetworkEndpointGroupRequest { } +// A request message for RegionNetworkFirewallPolicies.Get. See the method description for details. +message GetRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to get. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the region scoping this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionNotificationEndpoints.Get. See the method description for details. message GetRegionNotificationEndpointRequest { // Name of the NotificationEndpoint resource to return. @@ -7385,6 +8568,19 @@ message GetRegionRequest { } +// A request message for RegionSecurityPolicies.Get. See the method description for details. +message GetRegionSecurityPolicyRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the region scoping this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + + // Name of the security policy to get. + string security_policy = 171082513 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionSslCertificates.Get. See the method description for details. message GetRegionSslCertificateRequest { // Project ID for this request. @@ -7398,6 +8594,19 @@ message GetRegionSslCertificateRequest { } +// A request message for RegionSslPolicies.Get. See the method description for details. +message GetRegionSslPolicyRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the region scoping this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + + // Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035. + string ssl_policy = 295190213 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionTargetHttpProxies.Get. See the method description for details. message GetRegionTargetHttpProxyRequest { // Project ID for this request. @@ -7424,6 +8633,19 @@ message GetRegionTargetHttpsProxyRequest { } +// A request message for RegionTargetTcpProxies.Get. See the method description for details. +message GetRegionTargetTcpProxyRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the region scoping this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + + // Name of the TargetTcpProxy resource to return. + string target_tcp_proxy = 503065442 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionUrlMaps.Get. See the method description for details. message GetRegionUrlMapRequest { // Project ID for this request. @@ -7509,6 +8731,35 @@ message GetRuleFirewallPolicyRequest { } +// A request message for NetworkFirewallPolicies.GetRule. See the method description for details. +message GetRuleNetworkFirewallPolicyRequest { + // Name of the firewall policy to which the queried rule belongs. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The priority of the rule to get from the firewall policy. + optional int32 priority = 445151652; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for RegionNetworkFirewallPolicies.GetRule. See the method description for details. +message GetRuleRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to which the queried rule belongs. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The priority of the rule to get from the firewall policy. + optional int32 priority = 445151652; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the region scoping this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for SecurityPolicies.GetRule. See the method description for details. message GetRuleSecurityPolicyRequest { // The priority of the rule to get from the security policy. @@ -7780,7 +9031,7 @@ message GetXpnHostProjectRequest { // A request message for Projects.GetXpnResources. See the method description for details. message GetXpnResourcesProjectsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -7858,7 +9109,7 @@ message GlobalSetLabelsRequest { // 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. optional string label_fingerprint = 178124825; - // A list of labels to apply for this resource. Each label key & value must 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 example, "webserver-frontend": "images". A label value can also be empty (e.g. "my-label": ""). + // 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": ""). map labels = 500195327; } @@ -7919,7 +9170,7 @@ message GuestAttributesValue { // Guest OS features. message GuestOsFeature { - // The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. + // 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_SNP_CAPABLE For more information, see Enabling guest operating system features. enum Type { // A value indicating that the enum field is not set. UNDEFINED_TYPE = 0; @@ -7942,7 +9193,7 @@ message GuestOsFeature { } - // The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. + // 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_SNP_CAPABLE For more information, see Enabling guest operating system features. // Check the Type enum for the list of possible values. optional string type = 3575610; @@ -8112,7 +9363,7 @@ message HTTPSHealthCheck { // Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/v1/healthChecks) * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.HealthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview. message HealthCheck { - // Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of the protocol-specific health check field must be specified, which must match type field. + // 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. enum Type { // A value indicating that the enum field is not set. UNDEFINED_TYPE = 0; @@ -8178,7 +9429,7 @@ message HealthCheck { // 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. optional int32 timeout_sec = 79994995; - // Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of the protocol-specific health check field must be specified, which must match type field. + // 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. // Check the Type enum for the list of possible values. optional string type = 3575610; @@ -8436,12 +9687,29 @@ message HealthStatusForNetworkEndpoint { } +// 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. +message Help { + // URL(s) pointing to additional information on handling the current error. + repeated HelpLink links = 102977465; + +} + +// Describes a URL link. +message HelpLink { + // Describes what the link offers. + optional string description = 422937596; + + // The URL of the link. + optional string url = 116079; + +} + // UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. message HostRule { // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; - // 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 must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. repeated string hosts = 99467211; // The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. @@ -8451,25 +9719,25 @@ message HostRule { // Specification for how requests are aborted as part of fault injection. message HttpFaultAbort { - // The HTTP status code used to abort the request. The value must be between 200 and 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. + // 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. optional uint32 http_status = 468949897; - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. The value must be between 0.0 and 100.0 inclusive. + // 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. optional double percentage = 151909018; } -// Specifies the delay introduced by Loadbalancer before forwarding the request to the backend service as part of fault injection. +// Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. message HttpFaultDelay { // Specifies the value of the fixed delay interval. optional Duration fixed_delay = 317037816; - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. The value must be between 0.0 and 100.0 inclusive. + // 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. optional double percentage = 151909018; } -// 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 Loadbalancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the Loadbalancer for a percentage of requests. +// 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. message HttpFaultInjection { // The specification for how client requests are aborted as part of fault injection. optional HttpFaultAbort abort = 92611376; @@ -8481,16 +9749,16 @@ message HttpFaultInjection { // The request and response header transformations that take effect before the request is passed along to the selected backendService. message HttpHeaderAction { - // Headers to add to a matching request prior to forwarding the request to the backendService. + // Headers to add to a matching request before forwarding the request to the backendService. repeated HttpHeaderOption request_headers_to_add = 72111974; - // A list of header names for headers that need to be removed from the request prior to forwarding the request to the backendService. + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. repeated string request_headers_to_remove = 218425247; - // Headers to add the response prior to sending the response back to the client. + // Headers to add the response before sending the response back to the client. repeated HttpHeaderOption response_headers_to_add = 32136052; - // A list of header names for headers that need to be removed from the response prior to sending the response back to the client. + // A list of header names for headers that need to be removed from the response before sending the response back to the client. repeated string response_headers_to_remove = 75415761; } @@ -8500,10 +9768,10 @@ message HttpHeaderMatch { // The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. optional string exact_match = 457641093; - // 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 target gRPC proxy that has 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. + // 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`. optional string header_name = 110223613; - // If set to false, the headerMatch is considered a match if the match criteria above are met. If set to true, the headerMatch is considered a match if the match criteria above are NOT met. The default setting is false. + // 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. optional bool invert_match = 501130268; // 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. @@ -8512,10 +9780,10 @@ message HttpHeaderMatch { // 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. optional bool present_match = 67435841; - // 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. Note that rangeMatch is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. + // 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. optional Int64RangeMatch range_match = 97244227; - // The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: github.com/google/re2/wiki/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. Note that regexMatch only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. + // 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. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. optional string regex_match = 107387853; // 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. @@ -8531,30 +9799,30 @@ message HttpHeaderOption { // The value of the header to add. optional string header_value = 203094335; - // 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. + // 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. optional bool replace = 20755124; } // HttpRouteRuleMatch criteria for a request's query parameter. message HttpQueryParameterMatch { - // 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. + // 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. optional string exact_match = 457641093; // 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. optional string name = 3373707; - // 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. + // 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. optional bool present_match = 67435841; - // The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For the regular expression grammar, please see github.com/google/re2/wiki/Syntax Only one of presentMatch, exactMatch or regexMatch must be set. Note that regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. + // 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. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. optional string regex_match = 107387853; } // Specifies settings for an HTTP redirect. message HttpRedirectAction { - // 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 will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method will be retained. + // 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. enum RedirectResponseCode { // A value indicating that the enum field is not set. UNDEFINED_REDIRECT_RESPONSE_CODE = 0; @@ -8576,23 +9844,23 @@ message HttpRedirectAction { } - // The host that will be used in the redirect response instead of the one that was supplied in the request. The value must be between 1 and 255 characters. + // 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. optional string host_redirect = 107417747; - // 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 will remain the same as that of the request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. + // 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. optional bool https_redirect = 170260656; - // The path that will be 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 will be used for the redirect. The value must be between 1 and 1024 characters. + // 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. optional string path_redirect = 272342710; - // 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 will be used for the redirect. The value must be between 1 and 1024 characters. + // 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. optional string prefix_redirect = 446184169; - // 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 will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method will be retained. + // 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. // Check the RedirectResponseCode enum for the list of possible values. optional string redirect_response_code = 436710408; - // If set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. + // 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. optional bool strip_query = 52284641; } @@ -8602,95 +9870,111 @@ message HttpRetryPolicy { // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. optional uint32 num_retries = 251680141; - // Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, will use the largest timeout among all backend services associated with the route. + // 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. optional Duration per_try_timeout = 280041147; - // Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: Retry will be attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all, 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 will be attempted on failures connecting to the instance or endpoint, for example due to connection timeouts. - retriable-4xx: A retry will be attempted if the instance or endpoint responds with a retriable 4xx response code. Currently the only retriable error supported is 409. - refused-stream: A retry will be 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 will be attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: A retry will be attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: A retry will be attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: A retry will be attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: A retry will be attempted if the gRPC status code in the response header is set to unavailable. + // 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 repeated string retry_conditions = 28815535; } // message HttpRouteAction { - // The specification for allowing client side cross-origin requests. Please see W3C Recommendation for Cross Origin Resource Sharing Not supported when the URL map is bound to target gRPC proxy. + // 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. optional CorsPolicy cors_policy = 398943748; - // 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 Loadbalancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the Loadbalancer for a percentage of requests. For the requests impacted by fault injection, timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy. + // 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 global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features. optional HttpFaultInjection fault_injection_policy = 412781079; - // 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 (i.e. end-of-stream), the duration in this field 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, will use the largest maxStreamDuration 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. + // 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. optional Duration max_stream_duration = 61428376; - // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. optional RequestMirrorPolicy request_mirror_policy = 220196866; - // Specifies the retry policy associated with this route. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // Specifies the retry policy associated with this route. optional HttpRetryPolicy retry_policy = 56799913; - // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. If not specified, will use the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. optional Duration timeout = 296701281; - // The spec to modify the URL of the request, prior to forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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 external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. optional UrlRewrite url_rewrite = 273333948; - // 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. Once a backendService 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. + // 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. repeated WeightedBackendService weighted_backend_services = 337028049; } -// An HttpRouteRule specifies how to match an HTTP request and the corresponding routing action that load balancing proxies will perform. +// The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. message HttpRouteRule { // The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. optional string description = 422937596; - // Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction specified here are applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction Note that headerAction is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. optional HttpHeaderAction header_action = 328077352; // 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. repeated HttpRouteRuleMatch match_rules = 376200701; - // For routeRules within a given pathMatcher, priority determines the order in which load balancer will interpret 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 between 0 and 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. + // 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. optional int32 priority = 445151652; - // In response to a matching matchRule, the load balancer performs advanced routing actions like URL rewrites, header transformations, etc. prior to 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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a routeRule's routeAction. + // 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 external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction. optional HttpRouteAction route_action = 424563948; - // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is additionally specified, advanced routing actions like URL Rewrites, etc. take effect prior to sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendService s. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. + // 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. optional string service = 373540533; - // 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 target gRPC proxy. + // 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. optional HttpRedirectAction url_redirect = 405147820; } // HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. message HttpRouteRuleMatch { - // 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 between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. + // 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. optional string full_path_match = 214598875; // Specifies a list of header match criteria, all of which must match corresponding headers in the request. repeated HttpHeaderMatch header_matches = 361903489; - // 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 target gRPC proxy. + // 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. optional bool ignore_case = 464324989; - // Opaque filter criteria used by Loadbalancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to Loadbalancer, 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 metadataFilters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here will be applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. repeated MetadataFilter metadata_filters = 464725739; - // For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. + // 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. optional string prefix_match = 257898968; - // 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 target gRPC proxy. + // 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. repeated HttpQueryParameterMatch query_parameter_matches = 286231270; - // 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 regular expression grammar please see github.com/google/re2/wiki/Syntax Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Note that regexMatch only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. + // 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. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. optional string regex_match = 107387853; } // Represents an Image resource. You can use images to create boot disks for your VM instances. For more information, read Images. message Image { - // The type of the image used to create this disk. The default and only value is RAW + // The architecture of the image. 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; + + } + + // The type of the image used to create this disk. The default and only valid value is RAW. enum SourceType { // A value indicating that the enum field is not set. UNDEFINED_SOURCE_TYPE = 0; @@ -8718,6 +10002,10 @@ message Image { } + // The architecture of the image. Valid values are ARM64 or X86_64. + // Check the Architecture enum for the list of possible values. + optional string architecture = 302803283; + // Size of the image tar.gz archive stored in Google Cloud Storage (in bytes). optional int64 archive_size_bytes = 381093450; @@ -8736,7 +10024,7 @@ message Image { // The name of the image family to which this image belongs. You can create disks by specifying 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. optional string family = 328751972; - // 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. + // 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. repeated GuestOsFeature guest_os_features = 79294545; // [Output Only] The unique identifier for the resource. This identifier is defined by the server. @@ -8802,7 +10090,7 @@ message Image { // [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. optional string source_snapshot_id = 98962258; - // The type of the image used to create this disk. The default and only value is RAW + // The type of the image used to create this disk. The default and only valid value is RAW. // Check the SourceType enum for the list of possible values. optional string source_type = 452245726; @@ -8984,8 +10272,8 @@ message InsertFirewallPolicyRequest { // 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. string parent_id = 459714768 [ - (google.api.field_behavior) = REQUIRED, - (google.cloud.operation_request_field) = "parent_id" + (google.cloud.operation_request_field) = "parent_id", + (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). @@ -9090,7 +10378,7 @@ message InsertGlobalPublicDelegatedPrefixeRequest { // The body resource for this request PublicDelegatedPrefix public_delegated_prefix_resource = 47594501 [(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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -9191,6 +10479,9 @@ message InsertInstanceRequest { // 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 optional string source_instance_template = 332423616; + // 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 + optional string source_machine_image = 21769791; + // The name of the zone for this request. string zone = 3744684 [ (google.api.field_behavior) = REQUIRED, @@ -9272,6 +10563,50 @@ message InsertLicenseRequest { } +// A request message for MachineImages.Insert. See the method description for details. +message InsertMachineImageRequest { + // The body resource for this request + MachineImage machine_image_resource = 60740970 [(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; + + // Required. Source instance that is used to create the machine image from. + optional string source_instance = 396315705; + +} + +// A request message for NetworkEdgeSecurityServices.Insert. See the method description for details. +message InsertNetworkEdgeSecurityServiceRequest { + // The body resource for this request + NetworkEdgeSecurityService network_edge_security_service_resource = 477548966 [(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 scoping 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; + + // If true, the request will not be committed. + optional bool validate_only = 242744629; + +} + // A request message for NetworkEndpointGroups.Insert. See the method description for details. message InsertNetworkEndpointGroupRequest { // The body resource for this request @@ -9294,6 +10629,22 @@ message InsertNetworkEndpointGroupRequest { } +// A request message for NetworkFirewallPolicies.Insert. See the method description for details. +message InsertNetworkFirewallPolicyRequest { + // The body resource for this request + FirewallPolicy firewall_policy_resource = 495049532 [(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; + +} + // A request message for Networks.Insert. See the method description for details. message InsertNetworkRequest { // The body resource for this request @@ -9390,7 +10741,7 @@ message InsertPublicAdvertisedPrefixeRequest { // The body resource for this request PublicAdvertisedPrefix public_advertised_prefix_resource = 233614223 [(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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -9412,7 +10763,7 @@ message InsertPublicDelegatedPrefixeRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -9596,6 +10947,28 @@ message InsertRegionNetworkEndpointGroupRequest { } +// A request message for RegionNetworkFirewallPolicies.Insert. See the method description for details. +message InsertRegionNetworkFirewallPolicyRequest { + // The body resource for this request + FirewallPolicy firewall_policy_resource = 495049532 [(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 scoping 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 RegionNotificationEndpoints.Insert. See the method description for details. message InsertRegionNotificationEndpointRequest { // The body resource for this request @@ -9613,11 +10986,36 @@ message InsertRegionNotificationEndpointRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 RegionSecurityPolicies.Insert. See the method description for details. +message InsertRegionSecurityPolicyRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // The body resource for this request + SecurityPolicy security_policy_resource = 216159612 [(google.api.field_behavior) = REQUIRED]; + + // If true, the request will not be committed. + optional bool validate_only = 242744629; + +} + // A request message for RegionSslCertificates.Insert. See the method description for details. message InsertRegionSslCertificateRequest { // Project ID for this request. @@ -9632,7 +11030,7 @@ message InsertRegionSslCertificateRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 @@ -9640,6 +11038,28 @@ message InsertRegionSslCertificateRequest { } +// A request message for RegionSslPolicies.Insert. See the method description for details. +message InsertRegionSslPolicyRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // The body resource for this request + SslPolicy ssl_policy_resource = 274891848 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionTargetHttpProxies.Insert. See the method description for details. message InsertRegionTargetHttpProxyRequest { // Project ID for this request. @@ -9676,7 +11096,7 @@ message InsertRegionTargetHttpsProxyRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 @@ -9684,6 +11104,28 @@ message InsertRegionTargetHttpsProxyRequest { } +// A request message for RegionTargetTcpProxies.Insert. See the method description for details. +message InsertRegionTargetTcpProxyRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // The body resource for this request + TargetTcpProxy target_tcp_proxy_resource = 145913931 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionUrlMaps.Insert. See the method description for details. message InsertRegionUrlMapRequest { // Project ID for this request. @@ -9802,6 +11244,9 @@ message InsertSecurityPolicyRequest { // The body resource for this request SecurityPolicy security_policy_resource = 216159612 [(google.api.field_behavior) = REQUIRED]; + // If true, the request will not be committed. + optional bool validate_only = 242744629; + } // A request message for ServiceAttachments.Insert. See the method description for details. @@ -9818,7 +11263,7 @@ message InsertServiceAttachmentRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 @@ -9826,6 +11271,22 @@ message InsertServiceAttachmentRequest { } +// A request message for Snapshots.Insert. See the method description for details. +message InsertSnapshotRequest { + // 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 + Snapshot snapshot_resource = 481319977 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for SslCertificates.Insert. See the method description for details. message InsertSslCertificateRequest { // Project ID for this request. @@ -9834,7 +11295,7 @@ message InsertSslCertificateRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 @@ -9888,7 +11349,7 @@ message InsertTargetGrpcProxyRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 @@ -10088,6 +11549,22 @@ message InsertVpnTunnelRequest { // Represents an Instance resource. An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. message Instance { + // KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. + enum KeyRevocationActionType { + // A value indicating that the enum field is not set. + UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0; + + // Default value. This value is unused. + KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106; + + // Indicates user chose no operation. + NONE = 2402104; + + // Indicates user chose to opt for VM shutdown on key revocation. + STOP = 2555906; + + } + // The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default. enum PrivateIpv6GoogleAccess { // A value indicating that the enum field is not set. @@ -10179,6 +11656,10 @@ message Instance { // [Output Only] The unique identifier for the resource. This identifier is defined by the server. optional uint64 id = 3355; + // KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. + // Check the KeyRevocationActionType enum for the list of possible values. + optional string key_revocation_action_type = 235941474; + // [Output Only] Type of the resource. Always compute#instance for instances. optional string kind = 3292052; @@ -10212,6 +11693,11 @@ message Instance { // 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. repeated NetworkInterface network_interfaces = 52735243; + optional NetworkPerformanceConfig network_performance_config = 398330850; + + // Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload. + optional InstanceParams params = 78313862; + // The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default. // Check the PrivateIpv6GoogleAccess enum for the list of possible values. optional string private_ipv6_google_access = 48277006; @@ -10238,6 +11724,12 @@ message Instance { optional ShieldedInstanceIntegrityPolicy shielded_instance_integrity_policy = 163696919; + // Source machine image + optional string source_machine_image = 21769791; + + // Source machine image encryption key when creating an instance from a machine image. + optional CustomerEncryptionKey source_machine_image_encryption_key = 192839075; + // [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity. optional bool start_restricted = 123693144; @@ -10281,6 +11773,32 @@ message InstanceAggregatedList { } +// +message InstanceConsumptionData { + // Resources consumed by the instance. + optional InstanceConsumptionInfo consumption_info = 146354898; + + // Server-defined URL for the instance. + optional string instance = 18257045; + +} + +// +message InstanceConsumptionInfo { + // The number of virtual CPUs that are available to the instance. + optional int32 guest_cpus = 393356754; + + // The amount of local SSD storage available to the instance, defined in GiB. + optional int32 local_ssd_gb = 329237578; + + // The amount of physical memory available to the instance, defined in MiB. + optional int32 memory_mb = 116001171; + + // The minimal guaranteed number of virtual CPUs that are reserved. + optional int32 min_node_cpus = 317231675; + +} + // 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. message InstanceGroup { // [Output Only] The creation timestamp for this instance group in RFC3339 text format. @@ -10301,7 +11819,7 @@ message InstanceGroup { // The name of the instance group. The name must be 1-63 characters long, and comply with RFC1035. optional string name = 3373707; - // 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: "http", port: 80},{name: "http", port: 8080}] Named ports apply to all instances in this instance group. + // 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. repeated NamedPort named_ports = 427598732; // [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). @@ -10467,6 +11985,18 @@ message InstanceGroupManagerActionsSummary { // [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted. optional int32 restarting = 372312947; + // [Output Only] The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed. + optional int32 resuming = 201100714; + + // [Output Only] The number of instances in the managed instance group that are scheduled to be started or are currently being started. + optional int32 starting = 243064896; + + // [Output Only] The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped. + optional int32 stopping = 105035892; + + // [Output Only] The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended. + optional int32 suspending = 29113894; + // [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. optional int32 verifying = 451612873; @@ -10547,17 +12077,17 @@ message InstanceGroupManagerStatus { // 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 config 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. + // [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 configs on the instance. + // [Output Only] Status of per-instance configurations on the instance. optional InstanceGroupManagerStatusStatefulPerInstanceConfigs per_instance_configs = 526265001; } // message InstanceGroupManagerStatusStatefulPerInstanceConfigs { - // A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs. + // 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. optional bool all_effective = 516540553; } @@ -10571,7 +12101,67 @@ message InstanceGroupManagerStatusVersionTarget { // message InstanceGroupManagerUpdatePolicy { - // 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. + // 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NONE + // PROACTIVE + enum InstanceRedistributionType { + // A value indicating that the enum field is not set. + UNDEFINED_INSTANCE_REDISTRIBUTION_TYPE = 0; + + } + + // 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NONE + // REFRESH + // REPLACE + // RESTART + enum MinimalAction { + // A value indicating that the enum field is not set. + UNDEFINED_MINIMAL_ACTION = 0; + + } + + // Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NONE + // REFRESH + // REPLACE + // RESTART + enum MostDisruptiveAllowedAction { + // A value indicating that the enum field is not set. + UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0; + + } + + // What action should be used to replace instances. See minimal_action.REPLACE + enum ReplacementMethod { + // A value indicating that the enum field is not set. + UNDEFINED_REPLACEMENT_METHOD = 0; + + // Instances will be recreated (with the same name) + RECREATE = 522644719; + + // Default option: instances will be deleted and created (with a new name) + SUBSTITUTE = 280924314; + + } + + // The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls). + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // PROACTIVE + enum Type { + // A value indicating that the enum field is not set. + UNDEFINED_TYPE = 0; + + // No action is being proactively performed in order to bring this IGM to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field). + OPPORTUNISTIC = 429530089; + + } + + // 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. + // Check the InstanceRedistributionType enum for the list of possible values. optional string instance_redistribution_type = 292630424; // 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. @@ -10580,13 +12170,20 @@ message InstanceGroupManagerUpdatePolicy { // 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. optional FixedOrPercent max_unavailable = 404940277; - // Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action. + // 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. + // Check the MinimalAction enum for the list of possible values. optional string minimal_action = 270567060; + // Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, 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. + // Check the MostDisruptiveAllowedAction enum for the list of possible values. + optional string most_disruptive_allowed_action = 66103053; + // What action should be used to replace instances. See minimal_action.REPLACE + // Check the ReplacementMethod enum for the list of possible values. optional string replacement_method = 505931694; // The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls). + // Check the Type enum for the list of possible values. optional string type = 3575610; } @@ -10613,16 +12210,42 @@ message InstanceGroupManagersAbandonInstancesRequest { // InstanceGroupManagers.applyUpdatesToInstances message InstanceGroupManagersApplyUpdatesRequest { - // 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. + // 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. - 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NONE + // REFRESH + // REPLACE + // RESTART + enum MinimalAction { + // A value indicating that the enum field is not set. + UNDEFINED_MINIMAL_ACTION = 0; + + } + + // 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. - 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NONE + // REFRESH + // REPLACE + // RESTART + enum MostDisruptiveAllowedAction { + // A value indicating that the enum field is not set. + UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0; + + } + + // 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. optional bool all_instances = 403676512; // 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]. repeated string instances = 29097598; // 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. - 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. + // Check the MinimalAction enum for the list of possible values. optional string minimal_action = 270567060; // 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. - 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. + // Check the MostDisruptiveAllowedAction enum for the list of possible values. optional string most_disruptive_allowed_action = 66103053; } @@ -10686,7 +12309,7 @@ message InstanceGroupManagersListPerInstanceConfigsResp { // InstanceGroupManagers.patchPerInstanceConfigs message InstanceGroupManagersPatchPerInstanceConfigsReq { - // The list of per-instance configs to insert or patch on this managed instance group. + // The list of per-instance configurations to insert or patch on this managed instance group. repeated PerInstanceConfig per_instance_configs = 526265001; } @@ -10727,7 +12350,7 @@ message InstanceGroupManagersSetTargetPoolsRequest { // InstanceGroupManagers.updatePerInstanceConfigs message InstanceGroupManagersUpdatePerInstanceConfigsReq { - // The list of per-instance configs to insert or patch on this managed instance group. + // The list of per-instance configurations to insert or patch on this managed instance group. repeated PerInstanceConfig per_instance_configs = 526265001; } @@ -10897,6 +12520,18 @@ message InstanceManagedByIgmErrorInstanceActionDetails { // The managed instance group is restarting this instance. RESTARTING = 320534387; + // The managed instance group is resuming this instance. + RESUMING = 446856618; + + // The managed instance group is starting this instance. + STARTING = 488820800; + + // The managed instance group is stopping this instance. + STOPPING = 350791796; + + // The managed instance group is suspending this instance. + SUSPENDING = 514206246; + // 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). VERIFYING = 16982185; @@ -10934,9 +12569,32 @@ message InstanceMoveRequest { } +// Additional instance params. +message InstanceParams { + // 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. + map resource_manager_tags = 377671164; + +} + // message InstanceProperties { - // The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. + // KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. + enum KeyRevocationActionType { + // A value indicating that the enum field is not set. + UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0; + + // Default value. This value is unused. + KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106; + + // Indicates user chose no operation. + NONE = 2402104; + + // Indicates user chose to opt for VM shutdown on key revocation. + STOP = 2555906; + + } + + // 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. enum PrivateIpv6GoogleAccess { // A value indicating that the enum field is not set. UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0; @@ -10952,13 +12610,13 @@ message InstanceProperties { } - // Controls for advanced machine-related behavior features. + // Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. optional AdvancedMachineFeatures advanced_machine_features = 409646002; // 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. optional bool can_ip_forward = 467731324; - // Specifies the Confidential Instance options. + // Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. optional ConfidentialInstanceConfig confidential_instance_config = 490637685; // An optional text description for the instances that are created from these properties. @@ -10970,6 +12628,10 @@ message InstanceProperties { // A list of guest accelerator cards' type and count to use for instances created from these properties. repeated AcceleratorConfig guest_accelerators = 463595119; + // KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. + // Check the KeyRevocationActionType enum for the list of possible values. + optional string key_revocation_action_type = 235941474; + // Labels to apply to instances that are created from these properties. map labels = 500195327; @@ -10985,14 +12647,20 @@ message InstanceProperties { // An array of network access configurations for this interface. repeated NetworkInterface network_interfaces = 52735243; - // 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. + optional NetworkPerformanceConfig network_performance_config = 398330850; + + // 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. // Check the PrivateIpv6GoogleAccess enum for the list of possible values. optional string private_ipv6_google_access = 48277006; - // Specifies the reservations that instances can consume from. + // Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. optional ReservationAffinity reservation_affinity = 157850683; - // Resource policies (names, not ULRs) applied to instances created from these properties. + // 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. + map resource_manager_tags = 377671164; + + // Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. repeated string resource_policies = 22220385; // Specifies the scheduling options for the instances that are created from these properties. @@ -11001,6 +12669,7 @@ message InstanceProperties { // 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. repeated ServiceAccount service_accounts = 277537328; + // Note that for MachineImage, this is not supported yet. optional ShieldedInstanceConfig shielded_instance_config = 12862901; // 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. @@ -11138,13 +12807,17 @@ message InstancesGetEffectiveFirewallsResponse { // message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { - // [Output Only] The type of the firewall policy. + // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. enum Type { // A value indicating that the enum field is not set. UNDEFINED_TYPE = 0; HIERARCHY = 69902869; + NETWORK = 413984270; + + NETWORK_REGIONAL = 190804272; + UNSPECIFIED = 526786327; } @@ -11161,7 +12834,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. + // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. // Check the Type enum for the list of possible values. optional string type = 3575610; @@ -11431,12 +13104,12 @@ message InterconnectAttachment { } - // 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 *IPsec-encrypted Cloud Interconnect*, the VLAN attachment must be created with this option. Not currently available publicly. + // 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. enum Encryption { // A value indicating that the enum field is not set. UNDEFINED_ENCRYPTION = 0; - // 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 IPsec-encrypted Cloud Interconnect, the interconnect attachment must be created with this option. + // 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. IPSEC = 69882282; // 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. @@ -11457,6 +13130,19 @@ message InterconnectAttachment { } + // 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. + enum StackType { + // A value indicating that the enum field is not set. + UNDEFINED_STACK_TYPE = 0; + + // The interconnect attachment can have both IPv4 and IPv6 addresses. + IPV4_IPV6 = 22197249; + + // The interconnect attachment will only be assigned IPv4 addresses. + IPV4_ONLY = 22373798; + + } + // [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. enum State { // A value indicating that the enum field is not set. @@ -11507,19 +13193,34 @@ message InterconnectAttachment { // Check the Bandwidth enum for the list of possible values. optional string bandwidth = 181715121; + // This field is not available. + repeated string candidate_ipv6_subnets = 70682522; + // 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. repeated string candidate_subnets = 237842938; // [Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment. optional string cloud_router_ip_address = 287392776; + // [Output Only] IPv6 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment. + optional string cloud_router_ipv6_address = 451922376; + + // This field is not available. + optional string cloud_router_ipv6_interface_id = 521282701; + // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 30525366; // [Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment. optional string customer_router_ip_address = 332475761; - // [Output Only] Dataplane version for this InterconnectAttachment. + // [Output Only] IPv6 address + prefix length to be configured on the customer router subinterface for this interconnect attachment. + optional string customer_router_ipv6_address = 290127089; + + // This field is not available. + optional string customer_router_ipv6_interface_id = 380994308; + + // [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. optional int32 dataplane_version = 34920075; // An optional description of this resource. @@ -11529,7 +13230,7 @@ message InterconnectAttachment { // Check the EdgeAvailabilityDomain enum for the list of possible values. optional string edge_availability_domain = 71289510; - // 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 *IPsec-encrypted Cloud Interconnect*, the VLAN attachment must be created with this option. Not currently available publicly. + // 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. // Check the Encryption enum for the list of possible values. optional string encryption = 97980291; @@ -11582,6 +13283,10 @@ message InterconnectAttachment { // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; + // 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. + // Check the StackType enum for the list of possible values. + optional string stack_type = 425908881; + // [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. // Check the State enum for the list of possible values. optional string state = 109757585; @@ -12220,7 +13925,7 @@ message LicensesListResponse { // A request message for AcceleratorTypes.List. See the method description for details. message ListAcceleratorTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12245,7 +13950,7 @@ message ListAcceleratorTypesRequest { // A request message for Addresses.List. See the method description for details. message ListAddressesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12277,7 +13982,7 @@ message ListAssociationsFirewallPolicyRequest { // A request message for Autoscalers.List. See the method description for details. message ListAutoscalersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12300,9 +14005,34 @@ message ListAutoscalersRequest { } +// A request message for RegionSslPolicies.ListAvailableFeatures. See the method description for details. +message ListAvailableFeaturesRegionSslPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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]; + + // 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. + optional bool return_partial_success = 517198390; + +} + // A request message for SslPolicies.ListAvailableFeatures. See the method description for details. message ListAvailableFeaturesSslPoliciesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12324,7 +14054,7 @@ message ListAvailableFeaturesSslPoliciesRequest { // A request message for BackendBuckets.List. See the method description for details. message ListBackendBucketsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12346,7 +14076,7 @@ message ListBackendBucketsRequest { // A request message for BackendServices.List. See the method description for details. message ListBackendServicesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12368,7 +14098,7 @@ message ListBackendServicesRequest { // A request message for DiskTypes.List. See the method description for details. message ListDiskTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12393,7 +14123,7 @@ message ListDiskTypesRequest { // A request message for Disks.List. See the method description for details. message ListDisksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12418,7 +14148,7 @@ message ListDisksRequest { // A request message for InstanceGroupManagers.ListErrors. See the method description for details. message ListErrorsInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // 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}. @@ -12446,7 +14176,7 @@ message ListErrorsInstanceGroupManagersRequest { // A request message for RegionInstanceGroupManagers.ListErrors. See the method description for details. message ListErrorsRegionInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // 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}. @@ -12474,7 +14204,7 @@ message ListErrorsRegionInstanceGroupManagersRequest { // A request message for ExternalVpnGateways.List. See the method description for details. message ListExternalVpnGatewaysRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12496,7 +14226,7 @@ message ListExternalVpnGatewaysRequest { // A request message for FirewallPolicies.List. See the method description for details. message ListFirewallPoliciesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12518,7 +14248,7 @@ message ListFirewallPoliciesRequest { // A request message for Firewalls.List. See the method description for details. message ListFirewallsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12540,7 +14270,7 @@ message ListFirewallsRequest { // A request message for ForwardingRules.List. See the method description for details. message ListForwardingRulesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12565,7 +14295,7 @@ message ListForwardingRulesRequest { // A request message for GlobalAddresses.List. See the method description for details. message ListGlobalAddressesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12587,7 +14317,7 @@ message ListGlobalAddressesRequest { // A request message for GlobalForwardingRules.List. See the method description for details. message ListGlobalForwardingRulesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12609,7 +14339,7 @@ message ListGlobalForwardingRulesRequest { // A request message for GlobalNetworkEndpointGroups.List. See the method description for details. message ListGlobalNetworkEndpointGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12631,7 +14361,7 @@ message ListGlobalNetworkEndpointGroupsRequest { // A request message for GlobalOperations.List. See the method description for details. message ListGlobalOperationsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12653,7 +14383,7 @@ message ListGlobalOperationsRequest { // A request message for GlobalOrganizationOperations.List. See the method description for details. message ListGlobalOrganizationOperationsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12675,7 +14405,7 @@ message ListGlobalOrganizationOperationsRequest { // A request message for GlobalPublicDelegatedPrefixes.List. See the method description for details. message ListGlobalPublicDelegatedPrefixesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12697,7 +14427,7 @@ message ListGlobalPublicDelegatedPrefixesRequest { // A request message for HealthChecks.List. See the method description for details. message ListHealthChecksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12719,7 +14449,7 @@ message ListHealthChecksRequest { // A request message for Images.List. See the method description for details. message ListImagesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12741,7 +14471,7 @@ message ListImagesRequest { // A request message for InstanceGroupManagers.List. See the method description for details. message ListInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12766,7 +14496,7 @@ message ListInstanceGroupManagersRequest { // A request message for InstanceGroups.List. See the method description for details. message ListInstanceGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12791,7 +14521,7 @@ message ListInstanceGroupsRequest { // A request message for InstanceTemplates.List. See the method description for details. message ListInstanceTemplatesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12813,7 +14543,7 @@ message ListInstanceTemplatesRequest { // A request message for InstanceGroups.ListInstances. See the method description for details. message ListInstancesInstanceGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // The name of the instance group from which you want to generate a list of included instances. @@ -12844,7 +14574,7 @@ message ListInstancesInstanceGroupsRequest { // A request message for RegionInstanceGroups.ListInstances. See the method description for details. message ListInstancesRegionInstanceGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // Name of the regional instance group for which we want to list the instances. @@ -12875,7 +14605,7 @@ message ListInstancesRegionInstanceGroupsRequest { // A request message for Instances.List. See the method description for details. message ListInstancesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12900,7 +14630,7 @@ message ListInstancesRequest { // A request message for InterconnectAttachments.List. See the method description for details. message ListInterconnectAttachmentsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12925,7 +14655,7 @@ message ListInterconnectAttachmentsRequest { // A request message for InterconnectLocations.List. See the method description for details. message ListInterconnectLocationsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12947,7 +14677,7 @@ message ListInterconnectLocationsRequest { // A request message for Interconnects.List. See the method description for details. message ListInterconnectsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12969,7 +14699,29 @@ message ListInterconnectsRequest { // A request message for Licenses.List. See the method description for details. message ListLicensesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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. + optional bool return_partial_success = 517198390; + +} + +// A request message for MachineImages.List. See the method description for details. +message ListMachineImagesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -12991,7 +14743,7 @@ message ListLicensesRequest { // A request message for MachineTypes.List. See the method description for details. message ListMachineTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13016,7 +14768,7 @@ message ListMachineTypesRequest { // A request message for InstanceGroupManagers.ListManagedInstances. See the method description for details. message ListManagedInstancesInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // The name of the managed instance group. @@ -13044,7 +14796,7 @@ message ListManagedInstancesInstanceGroupManagersRequest { // A request message for RegionInstanceGroupManagers.ListManagedInstances. See the method description for details. message ListManagedInstancesRegionInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // The name of the managed instance group. @@ -13072,7 +14824,7 @@ message ListManagedInstancesRegionInstanceGroupManagersRequest { // A request message for NetworkEndpointGroups.List. See the method description for details. message ListNetworkEndpointGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13097,7 +14849,7 @@ message ListNetworkEndpointGroupsRequest { // A request message for GlobalNetworkEndpointGroups.ListNetworkEndpoints. See the method description for details. message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13122,7 +14874,7 @@ message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest { // A request message for NetworkEndpointGroups.ListNetworkEndpoints. See the method description for details. message ListNetworkEndpointsNetworkEndpointGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13151,9 +14903,31 @@ message ListNetworkEndpointsNetworkEndpointGroupsRequest { } +// A request message for NetworkFirewallPolicies.List. See the method description for details. +message ListNetworkFirewallPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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. + optional bool return_partial_success = 517198390; + +} + // A request message for Networks.List. See the method description for details. message ListNetworksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13175,7 +14949,7 @@ message ListNetworksRequest { // A request message for NodeGroups.List. See the method description for details. message ListNodeGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13200,7 +14974,7 @@ message ListNodeGroupsRequest { // A request message for NodeTemplates.List. See the method description for details. message ListNodeTemplatesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13225,7 +14999,7 @@ message ListNodeTemplatesRequest { // A request message for NodeTypes.List. See the method description for details. message ListNodeTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13250,7 +15024,7 @@ message ListNodeTypesRequest { // A request message for NodeGroups.ListNodes. See the method description for details. message ListNodesNodeGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13278,7 +15052,7 @@ message ListNodesNodeGroupsRequest { // A request message for PacketMirrorings.List. See the method description for details. message ListPacketMirroringsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13320,7 +15094,7 @@ message ListPeeringRoutesNetworksRequest { // Check the Direction enum for the list of possible values. optional string direction = 111150975; - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13351,7 +15125,7 @@ message ListPeeringRoutesNetworksRequest { // A request message for InstanceGroupManagers.ListPerInstanceConfigs. See the method description for details. message ListPerInstanceConfigsInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // The name of the managed instance group. It should conform to RFC1035. @@ -13379,7 +15153,7 @@ message ListPerInstanceConfigsInstanceGroupManagersRequest { // A request message for RegionInstanceGroupManagers.ListPerInstanceConfigs. See the method description for details. message ListPerInstanceConfigsRegionInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // The name of the managed instance group. It should conform to RFC1035. @@ -13407,7 +15181,7 @@ message ListPerInstanceConfigsRegionInstanceGroupManagersRequest { // A request message for SecurityPolicies.ListPreconfiguredExpressionSets. See the method description for details. message ListPreconfiguredExpressionSetsSecurityPoliciesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13429,7 +15203,7 @@ message ListPreconfiguredExpressionSetsSecurityPoliciesRequest { // A request message for PublicAdvertisedPrefixes.List. See the method description for details. message ListPublicAdvertisedPrefixesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13451,7 +15225,7 @@ message ListPublicAdvertisedPrefixesRequest { // A request message for PublicDelegatedPrefixes.List. See the method description for details. message ListPublicDelegatedPrefixesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13476,7 +15250,7 @@ message ListPublicDelegatedPrefixesRequest { // A request message for Instances.ListReferrers. See the method description for details. message ListReferrersInstancesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. optional string filter = 336120696; // Name of the target instance scoping this request, or '-' if the request should span over all instances in the container. @@ -13504,7 +15278,7 @@ message ListReferrersInstancesRequest { // A request message for RegionAutoscalers.List. See the method description for details. message ListRegionAutoscalersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13529,7 +15303,7 @@ message ListRegionAutoscalersRequest { // A request message for RegionBackendServices.List. See the method description for details. message ListRegionBackendServicesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13554,7 +15328,7 @@ message ListRegionBackendServicesRequest { // A request message for RegionCommitments.List. See the method description for details. message ListRegionCommitmentsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13579,7 +15353,7 @@ message ListRegionCommitmentsRequest { // A request message for RegionDiskTypes.List. See the method description for details. message ListRegionDiskTypesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13604,7 +15378,7 @@ message ListRegionDiskTypesRequest { // A request message for RegionDisks.List. See the method description for details. message ListRegionDisksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13629,7 +15403,7 @@ message ListRegionDisksRequest { // A request message for RegionHealthCheckServices.List. See the method description for details. message ListRegionHealthCheckServicesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13654,7 +15428,7 @@ message ListRegionHealthCheckServicesRequest { // A request message for RegionHealthChecks.List. See the method description for details. message ListRegionHealthChecksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13679,7 +15453,7 @@ message ListRegionHealthChecksRequest { // A request message for RegionInstanceGroupManagers.List. See the method description for details. message ListRegionInstanceGroupManagersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13704,7 +15478,7 @@ message ListRegionInstanceGroupManagersRequest { // A request message for RegionInstanceGroups.List. See the method description for details. message ListRegionInstanceGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13729,7 +15503,7 @@ message ListRegionInstanceGroupsRequest { // A request message for RegionNetworkEndpointGroups.List. See the method description for details. message ListRegionNetworkEndpointGroupsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13752,9 +15526,9 @@ message ListRegionNetworkEndpointGroupsRequest { } -// A request message for RegionNotificationEndpoints.List. See the method description for details. -message ListRegionNotificationEndpointsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionNetworkFirewallPolicies.List. See the method description for details. +message ListRegionNetworkFirewallPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13777,9 +15551,9 @@ message ListRegionNotificationEndpointsRequest { } -// A request message for RegionOperations.List. See the method description for details. -message ListRegionOperationsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionNotificationEndpoints.List. See the method description for details. +message ListRegionNotificationEndpointsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13794,7 +15568,7 @@ message ListRegionOperationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Name of the region for this request. + // 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. @@ -13802,9 +15576,9 @@ message ListRegionOperationsRequest { } -// A request message for RegionSslCertificates.List. See the method description for details. -message ListRegionSslCertificatesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionOperations.List. See the method description for details. +message ListRegionOperationsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13819,7 +15593,7 @@ message ListRegionSslCertificatesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Name of the region scoping this request. + // 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. @@ -13827,9 +15601,9 @@ message ListRegionSslCertificatesRequest { } -// A request message for RegionTargetHttpProxies.List. See the method description for details. -message ListRegionTargetHttpProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionSecurityPolicies.List. See the method description for details. +message ListRegionSecurityPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13852,9 +15626,9 @@ message ListRegionTargetHttpProxiesRequest { } -// A request message for RegionTargetHttpsProxies.List. See the method description for details. -message ListRegionTargetHttpsProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionSslCertificates.List. See the method description for details. +message ListRegionSslCertificatesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13877,9 +15651,9 @@ message ListRegionTargetHttpsProxiesRequest { } -// A request message for RegionUrlMaps.List. See the method description for details. -message ListRegionUrlMapsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionSslPolicies.List. See the method description for details. +message ListRegionSslPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13902,9 +15676,9 @@ message ListRegionUrlMapsRequest { } -// A request message for Regions.List. See the method description for details. -message ListRegionsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionTargetHttpProxies.List. See the method description for details. +message ListRegionTargetHttpProxiesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13919,14 +15693,17 @@ message ListRegionsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + // 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. optional bool return_partial_success = 517198390; } -// A request message for Reservations.List. See the method description for details. -message ListReservationsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionTargetHttpsProxies.List. See the method description for details. +message ListRegionTargetHttpsProxiesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13941,17 +15718,17 @@ message ListReservationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + // 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. optional bool return_partial_success = 517198390; - // Name of the zone for this request. - string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; - } -// A request message for ResourcePolicies.List. See the method description for details. -message ListResourcePoliciesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionTargetTcpProxies.List. See the method description for details. +message ListRegionTargetTcpProxiesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13966,7 +15743,7 @@ message ListResourcePoliciesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Name of the region for this request. + // 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. @@ -13974,9 +15751,9 @@ message ListResourcePoliciesRequest { } -// A request message for Routers.List. See the method description for details. -message ListRoutersRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for RegionUrlMaps.List. See the method description for details. +message ListRegionUrlMapsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -13991,7 +15768,7 @@ message ListRoutersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Name of the region for this request. + // 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. @@ -13999,9 +15776,9 @@ message ListRoutersRequest { } -// A request message for Routes.List. See the method description for details. -message ListRoutesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for Regions.List. See the method description for details. +message ListRegionsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14021,9 +15798,9 @@ message ListRoutesRequest { } -// A request message for SecurityPolicies.List. See the method description for details. -message ListSecurityPoliciesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for Reservations.List. See the method description for details. +message ListReservationsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14041,11 +15818,14 @@ message ListSecurityPoliciesRequest { // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. optional bool return_partial_success = 517198390; + // Name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + } -// A request message for ServiceAttachments.List. See the method description for details. -message ListServiceAttachmentsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for ResourcePolicies.List. See the method description for details. +message ListResourcePoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14060,7 +15840,7 @@ message ListServiceAttachmentsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Name of the region of this request. + // 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. @@ -14068,9 +15848,9 @@ message ListServiceAttachmentsRequest { } -// A request message for Snapshots.List. See the method description for details. -message ListSnapshotsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for Routers.List. See the method description for details. +message ListRoutersRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14085,14 +15865,17 @@ message ListSnapshotsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + // 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. optional bool return_partial_success = 517198390; } -// A request message for SslCertificates.List. See the method description for details. -message ListSslCertificatesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for Routes.List. See the method description for details. +message ListRoutesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14112,9 +15895,9 @@ message ListSslCertificatesRequest { } -// A request message for SslPolicies.List. See the method description for details. -message ListSslPoliciesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for SecurityPolicies.List. See the method description for details. +message ListSecurityPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14134,9 +15917,9 @@ message ListSslPoliciesRequest { } -// A request message for Subnetworks.List. See the method description for details. -message ListSubnetworksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for ServiceAttachments.List. See the method description for details. +message ListServiceAttachmentsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14151,7 +15934,7 @@ message ListSubnetworksRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Name of the region scoping this request. + // 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. @@ -14159,9 +15942,9 @@ message ListSubnetworksRequest { } -// A request message for TargetGrpcProxies.List. See the method description for details. -message ListTargetGrpcProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for Snapshots.List. See the method description for details. +message ListSnapshotsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14181,9 +15964,9 @@ message ListTargetGrpcProxiesRequest { } -// A request message for TargetHttpProxies.List. See the method description for details. -message ListTargetHttpProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for SslCertificates.List. See the method description for details. +message ListSslCertificatesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14203,9 +15986,9 @@ message ListTargetHttpProxiesRequest { } -// A request message for TargetHttpsProxies.List. See the method description for details. -message ListTargetHttpsProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for SslPolicies.List. See the method description for details. +message ListSslPoliciesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14225,9 +16008,9 @@ message ListTargetHttpsProxiesRequest { } -// A request message for TargetInstances.List. See the method description for details. -message ListTargetInstancesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for Subnetworks.List. See the method description for details. +message ListSubnetworksRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14242,17 +16025,17 @@ message ListTargetInstancesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + // 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. optional bool return_partial_success = 517198390; - // Name of the zone scoping this request. - string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; - } -// A request message for TargetPools.List. See the method description for details. -message ListTargetPoolsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for TargetGrpcProxies.List. See the method description for details. +message ListTargetGrpcProxiesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14267,17 +16050,14 @@ message ListTargetPoolsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // 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. optional bool return_partial_success = 517198390; } -// A request message for TargetSslProxies.List. See the method description for details. -message ListTargetSslProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for TargetHttpProxies.List. See the method description for details. +message ListTargetHttpProxiesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14297,9 +16077,9 @@ message ListTargetSslProxiesRequest { } -// A request message for TargetTcpProxies.List. See the method description for details. -message ListTargetTcpProxiesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for TargetHttpsProxies.List. See the method description for details. +message ListTargetHttpsProxiesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14319,9 +16099,9 @@ message ListTargetTcpProxiesRequest { } -// A request message for TargetVpnGateways.List. See the method description for details. -message ListTargetVpnGatewaysRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for TargetInstances.List. See the method description for details. +message ListTargetInstancesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14336,17 +16116,17 @@ message ListTargetVpnGatewaysRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // 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. optional bool return_partial_success = 517198390; + // Name of the zone scoping this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + } -// A request message for UrlMaps.List. See the method description for details. -message ListUrlMapsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for TargetPools.List. See the method description for details. +message ListTargetPoolsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14361,14 +16141,17 @@ message ListUrlMapsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + // 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. optional bool return_partial_success = 517198390; } -// A request message for Subnetworks.ListUsable. See the method description for details. -message ListUsableSubnetworksRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for TargetSslProxies.List. See the method description for details. +message ListTargetSslProxiesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14388,9 +16171,9 @@ message ListUsableSubnetworksRequest { } -// A request message for VpnGateways.List. See the method description for details. -message ListVpnGatewaysRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for TargetTcpProxies.List. See the method description for details. +message ListTargetTcpProxiesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14405,17 +16188,108 @@ message ListVpnGatewaysRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // 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. optional bool return_partial_success = 517198390; } -// A request message for VpnTunnels.List. See the method description for details. -message ListVpnTunnelsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` +// A request message for TargetVpnGateways.List. See the method description for details. +message ListTargetVpnGatewaysRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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]; + + // 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. + optional bool return_partial_success = 517198390; + +} + +// A request message for UrlMaps.List. See the method description for details. +message ListUrlMapsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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. + optional bool return_partial_success = 517198390; + +} + +// A request message for Subnetworks.ListUsable. See the method description for details. +message ListUsableSubnetworksRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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. + optional bool return_partial_success = 517198390; + +} + +// A request message for VpnGateways.List. See the method description for details. +message ListVpnGatewaysRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. + 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]; + + // 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. + optional bool return_partial_success = 517198390; + +} + +// A request message for VpnTunnels.List. See the method description for details. +message ListVpnTunnelsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14440,7 +16314,7 @@ message ListVpnTunnelsRequest { // A request message for Projects.ListXpnHosts. See the method description for details. message ListXpnHostsProjectsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14465,7 +16339,7 @@ message ListXpnHostsProjectsRequest { // A request message for ZoneOperations.List. See the method description for details. message ListZoneOperationsRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14490,7 +16364,7 @@ message ListZoneOperationsRequest { // A request message for Zones.List. See the method description for details. message ListZonesRequest { - // A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison 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`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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 `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. 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`) @@ -14523,16 +16397,46 @@ message LocalDisk { } +// Provides a localized error message that is safe to return to the user which can be attached to an RPC error. +message LocalizedMessage { + // 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" + optional string locale = 513150554; + + // The localized error message in the above locale. + optional string message = 418054151; + +} + // Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region). message LocationPolicy { + // Strategy for distributing VMs across zones in a region. + enum TargetShape { + // A value indicating that the enum field is not set. + UNDEFINED_TARGET_SHAPE = 0; + + // 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. + ANY = 64972; + + // 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. + ANY_SINGLE_ZONE = 61100880; + + // 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. + BALANCED = 468409608; + + } + // 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. map locations = 413423454; + // Strategy for distributing VMs across zones in a region. + // Check the TargetShape enum for the list of possible values. + optional string target_shape = 338621299; + } // message LocationPolicyLocation { - // Preference for a given location: ALLOW or DENY. + // Preference for a given location. Set to either ALLOW or DENY. enum Preference { // A value indicating that the enum field is not set. UNDEFINED_PREFERENCE = 0; @@ -14548,12 +16452,22 @@ message LocationPolicyLocation { } - // Preference for a given location: ALLOW or DENY. + // Constraints that the caller requires on the result distribution in this zone. + optional LocationPolicyLocationConstraints constraints = 3909174; + + // Preference for a given location. Set to either ALLOW or DENY. // Check the Preference enum for the list of possible values. optional string preference = 150781147; } +// Per-zone constraints on location policy for this zone. +message LocationPolicyLocationConstraints { + // Maximum number of items that are allowed to be placed in this zone. The value must be non-negative. + optional int32 max_count = 287620724; + +} + // This is deprecated and has no effect. Do not use. message LogConfig { // This is deprecated and has no effect. Do not use. @@ -14638,6 +16552,101 @@ message LogConfigDataAccessOptions { } +// 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. +message MachineImage { + // [Output Only] The status of the machine image. One of the following values: INVALID, CREATING, READY, DELETING, and UPLOADING. + enum Status { + // A value indicating that the enum field is not set. + UNDEFINED_STATUS = 0; + + CREATING = 455564985; + + DELETING = 528602024; + + INVALID = 530283991; + + READY = 77848963; + + UPLOADING = 267603489; + + } + + // [Output Only] The creation timestamp for this machine image 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; + + // [Input Only] Whether to attempt an application consistent machine image by informing the OS to prepare for the snapshot process. + optional bool guest_flush = 385550813; + + // [Output Only] A unique identifier for this machine image. The server defines this identifier. + optional uint64 id = 3355; + + // [Output Only] Properties of source instance + optional InstanceProperties instance_properties = 215355165; + + // [Output Only] The resource type, which is always compute#machineImage for machine image. + optional string kind = 3292052; + + // 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. + optional CustomerEncryptionKey machine_image_encryption_key = 528089087; + + // 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] Reserved for future use. + optional bool satisfies_pzs = 480964267; + + // An array of Machine Image specific properties for disks attached to the source instance + repeated SavedDisk saved_disks = 397424318; + + // [Output Only] The URL for this machine image. The server defines this URL. + optional string self_link = 456214797; + + // [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. + repeated SourceDiskEncryptionKey source_disk_encryption_keys = 370408498; + + // 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 + optional string source_instance = 396315705; + + // [Output Only] DEPRECATED: Please use instance_properties instead for source instance related properties. New properties will not be added to this field. + optional SourceInstanceProperties source_instance_properties = 475195641; + + // [Output Only] The status of the machine image. One of the following values: INVALID, CREATING, READY, DELETING, and UPLOADING. + // Check the Status enum for the list of possible values. + optional string status = 181260274; + + // The regional or multi-regional Cloud Storage bucket location where the machine image is stored. + repeated string storage_locations = 328005274; + + // [Output Only] Total size of the storage used by the machine image. + optional int64 total_storage_bytes = 81855468; + +} + +// A list of machine images. +message MachineImageList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of MachineImage resources. + repeated MachineImage items = 100526016; + + // [Output Only] The resource type, which is always compute#machineImagesListResponse for machine image lists. + 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; + +} + // 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. message MachineType { // [Output Only] A list of accelerator configurations assigned to this machine type. @@ -14749,7 +16758,10 @@ message MachineTypesScopedList { // A Managed Instance resource. message ManagedInstance { - // [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. + // [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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // STOPPING + // SUSPENDING enum CurrentAction { // A value indicating that the enum field is not set. UNDEFINED_CURRENT_ACTION = 0; @@ -14778,12 +16790,21 @@ message ManagedInstance { // The managed instance group is restarting this instance. RESTARTING = 320534387; + // The managed instance group is resuming this instance. + RESUMING = 446856618; + + // The managed instance group is starting this instance. + STARTING = 488820800; + // 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). VERIFYING = 16982185; } // [Output Only] The status of the instance. This field is empty when the instance does not exist. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // STOPPING + // SUSPENDING enum InstanceStatus { // A value indicating that the enum field is not set. UNDEFINED_INSTANCE_STATUS = 0; @@ -14806,13 +16827,11 @@ message ManagedInstance { // The instance has stopped successfully. STOPPED = 444276141; - // The instance is currently stopping (either being deleted or killed). STOPPING = 350791796; // The instance has suspended. SUSPENDED = 51223995; - // The instance is suspending. SUSPENDING = 514206246; // The instance has stopped (either by explicit action or underlying failure). @@ -14914,9 +16933,9 @@ message Metadata { } -// Opaque filter criteria used by loadbalancers to restrict routing configuration to a limited set of loadbalancing proxies. Proxies and sidecars involved in loadbalancing would typically present metadata to the loadbalancers which 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 loadbalancing involves Envoys, they will only receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. +// 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. message MetadataFilter { - // Specifies how individual filterLabel matches within the list of filterLabels contribute towards 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. + // 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. enum FilterMatchCriteria { // A value indicating that the enum field is not set. UNDEFINED_FILTER_MATCH_CRITERIA = 0; @@ -14935,13 +16954,13 @@ message MetadataFilter { // 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. repeated MetadataFilterLabelMatch filter_labels = 307903142; - // Specifies how individual filterLabel matches within the list of filterLabels contribute towards 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. + // 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. // Check the FilterMatchCriteria enum for the list of possible values. optional string filter_match_criteria = 239970368; } -// MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the loadbalancer. +// MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. message MetadataFilterLabelMatch { // Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. optional string name = 3373707; @@ -15011,6 +17030,17 @@ message NamedPort { // Represents a VPC Network resource. Networks connect resources to each other and to the internet. For more information, read Virtual Private Cloud (VPC) Network. message Network { + // 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. + enum NetworkFirewallPolicyEnforcementOrder { + // A value indicating that the enum field is not set. + UNDEFINED_NETWORK_FIREWALL_POLICY_ENFORCEMENT_ORDER = 0; + + AFTER_CLASSIC_FIREWALL = 154582608; + + BEFORE_CLASSIC_FIREWALL = 338458349; + + } + // 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. optional string I_pv4_range = 59234358; @@ -15023,21 +17053,34 @@ message Network { // An optional description of this resource. Provide this field when you create the resource. optional string description = 422937596; + // Enable ULA internal ipv6 on this network. Enabling this feature will assign a /48 from google defined ULA prefix fd20::/20. . + optional bool enable_ula_internal_ipv6 = 423757720; + + // [Output Only] URL of the firewall policy the network is associated with. + optional string firewall_policy = 498173265; + // [Output Only] The gateway address for default routing out of the network, selected by GCP. optional string gateway_i_pv4 = 178678877; // [Output Only] The unique identifier for the resource. This identifier is defined by the server. optional uint64 id = 3355; + // 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. . + optional string internal_ipv6_range = 277456807; + // [Output Only] Type of the resource. Always compute#network for networks. optional string kind = 3292052; - // Maximum Transmission Unit in bytes. The minimum value for this field is 1460 and the maximum value is 1500 bytes. If unspecified, defaults to 1460. + // 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. optional int32 mtu = 108462; // 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. optional string name = 3373707; + // 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. + // Check the NetworkFirewallPolicyEnforcementOrder enum for the list of possible values. + optional string network_firewall_policy_enforcement_order = 6504784; + // [Output Only] A list of network peerings for the resource. repeated NetworkPeering peerings = 69883187; @@ -15047,11 +17090,85 @@ message Network { // [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] Server-defined fully-qualified URLs for all subnetworks in this VPC network. repeated string subnetworks = 415853125; } +// Represents a Google Cloud Armor network edge security service resource. +message NetworkEdgeSecurityService { + // [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; + + // 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. + optional string fingerprint = 234678500; + + // [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#networkEdgeSecurityService for NetworkEdgeSecurityServices + optional string kind = 3292052; + + // 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 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 region = 138946292; + + // The resource URL for the network edge security service associated with this network edge security service. + optional string security_policy = 171082513; + + // [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; + +} + +// +message NetworkEdgeSecurityServiceAggregatedList { + optional string etag = 3123477; + + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of NetworkEdgeSecurityServicesScopedList resources. + map items = 100526016; + + // [Output Only] Type of resource. Always compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security Services. + 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 NetworkEdgeSecurityServicesScopedList { + // A list of NetworkEdgeSecurityServices contained in this scope. + repeated NetworkEdgeSecurityService network_edge_security_services = 35530156; + + // Informational warning which replaces the list of security policies when the list is empty. + optional Warning warning = 50704284; + +} + // The network endpoint. message NetworkEndpoint { // Metadata defined as annotations on the network endpoint. @@ -15073,7 +17190,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, see Setting up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs, or Setting up external HTTP(S) Load Balancing with serverless NEGs. message NetworkEndpointGroup { - // Type of network endpoints in this network endpoint group. Can be one of 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. enum NetworkEndpointType { // A value indicating that the enum field is not set. UNDEFINED_NETWORK_ENDPOINT_TYPE = 0; @@ -15093,6 +17210,9 @@ message NetworkEndpointGroup { // 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. NON_GCP_PRIVATE_IP_PORT = 336447968; + // 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 + PRIVATE_SERVICE_CONNECT = 48134724; + // The network endpoint is handled by specified serverless infrastructure. SERVERLESS = 270492508; @@ -15131,10 +17251,13 @@ 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_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. // Check the NetworkEndpointType enum for the list of possible values. optional string network_endpoint_type = 118301523; + // 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" + optional string psc_target_service = 269132134; + // [Output Only] The URL of the region where the network endpoint group is located. optional string region = 138946292; @@ -15182,7 +17305,7 @@ message NetworkEndpointGroupAppEngine { // Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". optional string service = 373540533; - // 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 "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. + // 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 "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. optional string url_mask = 103352252; // Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". @@ -15195,7 +17318,7 @@ message NetworkEndpointGroupCloudFunction { // A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". optional string function = 307196888; - // 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 "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. + // 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 "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. optional string url_mask = 103352252; } @@ -15208,7 +17331,7 @@ message NetworkEndpointGroupCloudRun { // 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". optional string tag = 114586; - // A template to parse service and tag 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 ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. + // A template to parse and 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 ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. optional string url_mask = 103352252; } @@ -15319,7 +17442,9 @@ message NetworkInterface { // This network interface can have external IPv6. EXTERNAL = 35607499; - // IPv6 access type not set. Means this network interface hasn't been turned on IPv6 yet. + // This network interface can have internal IPv6. + INTERNAL = 279295677; + UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613; } @@ -15364,6 +17489,9 @@ message NetworkInterface { // 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. optional string fingerprint = 234678500; + // The prefix length of the primary internal IPv6 range. + optional int32 internal_ipv6_prefix_length = 203833757; + // 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. repeated AccessConfig ipv6_access_configs = 483472110; @@ -15371,16 +17499,16 @@ message NetworkInterface { // Check the Ipv6AccessType enum for the list of possible values. optional string ipv6_access_type = 504658653; - // [Output Only] An IPv6 internal network address for this network interface. + // An IPv6 internal network address for this network interface. optional string ipv6_address = 341563804; // [Output Only] Type of the resource. Always compute#networkInterface for network interfaces. optional string kind = 3292052; - // [Output Only] The name of the network interface, which is generated by the server. For network devices, these are eth0, eth1, etc. + // [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. optional string name = 3373707; - // URL of the 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 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 + // 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 optional string network = 232872494; // 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. @@ -15426,6 +17554,19 @@ message NetworkList { // 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. message NetworkPeering { + // Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY. + enum StackType { + // A value indicating that the enum field is not set. + UNDEFINED_STACK_TYPE = 0; + + // 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. + IPV4_IPV6 = 22197249; + + // This Peering will only allow IPv4 traffic and routes to be exchanged, even if the matching peering is IPV4_IPV6. + IPV4_ONLY = 22373798; + + } + // [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network. enum State { // A value indicating that the enum field is not set. @@ -15445,13 +17586,13 @@ message NetworkPeering { // 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. optional bool exchange_subnet_routes = 26322256; - // Whether to export the custom routes to peer network. + // Whether to export the custom routes to peer network. The default value is false. optional bool export_custom_routes = 60281485; // 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. optional bool export_subnet_routes_with_public_ip = 97940834; - // Whether to import the custom routes from peer network. + // Whether to import the custom routes from peer network. The default value is false. optional bool import_custom_routes = 197982398; // 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. @@ -15466,6 +17607,10 @@ message NetworkPeering { // Maximum Transmission Unit in bytes. optional int32 peer_mtu = 69584721; + // Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY. + // Check the StackType enum for the list of possible values. + optional string stack_type = 425908881; + // [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network. // Check the State enum for the list of possible values. optional string state = 109757585; @@ -15475,6 +17620,25 @@ message NetworkPeering { } +// +message NetworkPerformanceConfig { + // + enum TotalEgressBandwidthTier { + // A value indicating that the enum field is not set. + UNDEFINED_TOTAL_EGRESS_BANDWIDTH_TIER = 0; + + DEFAULT = 115302945; + + TIER_1 = 326919444; + + } + + // + // Check the TotalEgressBandwidthTier enum for the list of possible values. + optional string total_egress_bandwidth_tier = 130109439; + +} + // 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. message NetworkRoutingConfig { // 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. @@ -15636,6 +17800,9 @@ message NodeGroup { // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; + // Share-settings for the node group + optional ShareSettings share_settings = 266668163; + // [Output Only] The total number of nodes in the node group. optional int32 size = 3530753; @@ -15772,6 +17939,9 @@ message NodeGroupNode { // Accelerators for this node. repeated AcceleratorConfig accelerators = 269577064; + // Node resources that are reserved by all instances. + optional InstanceConsumptionInfo consumed_resources = 334527118; + // CPU overcommit. // Check the CpuOvercommitType enum for the list of possible values. optional string cpu_overcommit_type = 247727959; @@ -15779,6 +17949,9 @@ message NodeGroupNode { // Local disk configurations. repeated LocalDisk disks = 95594102; + // Instance data that shows consumed resources on the node. + repeated InstanceConsumptionData instance_consumption_data = 84715576; + // Instances scheduled on this node. repeated string instances = 29097598; @@ -15801,6 +17974,9 @@ message NodeGroupNode { // Check the Status enum for the list of possible values. optional string status = 181260274; + // Total amount of available resources on the node. + optional InstanceConsumptionInfo total_resources = 97406698; + } // @@ -16356,6 +18532,64 @@ message OutlierDetection { } +// Next free: 7 +message PacketIntervals { + // From how long ago in the past these intervals were observed. + enum Duration { + // A value indicating that the enum field is not set. + UNDEFINED_DURATION = 0; + + DURATION_UNSPECIFIED = 529071340; + + HOUR = 2223588; + + // From BfdSession object creation time. + MAX = 76100; + + MINUTE = 126786068; + + } + + // The type of packets for which inter-packet intervals were computed. + enum Type { + // A value indicating that the enum field is not set. + UNDEFINED_TYPE = 0; + + // Only applies to Echo packets. This shows the intervals between sending and receiving the same packet. + LOOPBACK = 356174219; + + // Intervals between received packets. + RECEIVE = 189660867; + + // Intervals between transmitted packets. + TRANSMIT = 452903600; + + TYPE_UNSPECIFIED = 437714322; + + } + + // Average observed inter-packet interval in milliseconds. + optional int64 avg_ms = 204811827; + + // From how long ago in the past these intervals were observed. + // Check the Duration enum for the list of possible values. + optional string duration = 155471252; + + // Maximum observed inter-packet interval in milliseconds. + optional int64 max_ms = 529474145; + + // Minimum observed inter-packet interval in milliseconds. + optional int64 min_ms = 536564403; + + // Number of inter-packet intervals from which these statistics were derived. + optional int64 num_intervals = 186329813; + + // The type of packets for which inter-packet intervals were computed. + // Check the Type enum for the list of possible values. + optional string type = 3575610; + +} + // 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. message PacketMirroring { // 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. @@ -16704,7 +18938,7 @@ message PatchGlobalPublicDelegatedPrefixeRequest { // The body resource for this request PublicDelegatedPrefix public_delegated_prefix_resource = 47594501 [(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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -16816,6 +19050,55 @@ message PatchInterconnectRequest { } +// A request message for NetworkEdgeSecurityServices.Patch. See the method description for details. +message PatchNetworkEdgeSecurityServiceRequest { + // Name of the network edge security service to update. + string network_edge_security_service = 157011879 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + NetworkEdgeSecurityService network_edge_security_service_resource = 477548966 [(google.api.field_behavior) = REQUIRED]; + + optional string paths = 106438894; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // Indicates fields to be updated as part of this request. + optional string update_mask = 500079778; + +} + +// A request message for NetworkFirewallPolicies.Patch. See the method description for details. +message PatchNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + FirewallPolicy firewall_policy_resource = 495049532 [(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; + +} + // A request message for Networks.Patch. See the method description for details. message PatchNetworkRequest { // Name of the network to update. @@ -16949,7 +19232,7 @@ message PatchPublicAdvertisedPrefixeRequest { // The body resource for this request PublicAdvertisedPrefix public_advertised_prefix_resource = 233614223 [(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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -16974,7 +19257,7 @@ message PatchPublicDelegatedPrefixeRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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; } @@ -17104,6 +19387,106 @@ message PatchRegionInstanceGroupManagerRequest { } +// A request message for RegionNetworkFirewallPolicies.Patch. See the method description for details. +message PatchRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + FirewallPolicy firewall_policy_resource = 495049532 [(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 scoping 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 RegionSecurityPolicies.Patch. See the method description for details. +message PatchRegionSecurityPolicyRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // Name of the security policy to update. + string security_policy = 171082513 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + SecurityPolicy security_policy_resource = 216159612 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for RegionSslPolicies.Patch. See the method description for details. +message PatchRegionSslPolicyRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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; + + // Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035. + string ssl_policy = 295190213 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + SslPolicy ssl_policy_resource = 274891848 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for RegionTargetHttpsProxies.Patch. See the method description for details. +message PatchRegionTargetHttpsProxyRequest { + // 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; + + // Name of the TargetHttpsProxy resource to patch. + string target_https_proxy = 52336748 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + TargetHttpsProxy target_https_proxy_resource = 433657473 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionUrlMaps.Patch. See the method description for details. message PatchRegionUrlMapRequest { // Project ID for this request. @@ -17170,6 +19553,56 @@ message PatchRuleFirewallPolicyRequest { } +// A request message for NetworkFirewallPolicies.PatchRule. See the method description for details. +message PatchRuleNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + FirewallPolicyRule firewall_policy_rule_resource = 250523523 [(google.api.field_behavior) = REQUIRED]; + + // The priority of the rule to patch. + optional int32 priority = 445151652; + + // 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; + +} + +// A request message for RegionNetworkFirewallPolicies.PatchRule. See the method description for details. +message PatchRuleRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + FirewallPolicyRule firewall_policy_rule_resource = 250523523 [(google.api.field_behavior) = REQUIRED]; + + // The priority of the rule to patch. + optional int32 priority = 445151652; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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 SecurityPolicies.PatchRule. See the method description for details. message PatchRuleSecurityPolicyRequest { // The priority of the rule to patch. @@ -17187,6 +19620,9 @@ message PatchRuleSecurityPolicyRequest { // The body resource for this request SecurityPolicyRule security_policy_rule_resource = 402693443 [(google.api.field_behavior) = REQUIRED]; + // If true, the request will not be committed. + optional bool validate_only = 242744629; + } // A request message for SecurityPolicies.Patch. See the method description for details. @@ -17222,7 +19658,7 @@ message PatchServiceAttachmentRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number. @@ -17288,7 +19724,7 @@ message PatchTargetGrpcProxyRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 TargetGrpcProxy resource to patch. @@ -17307,7 +19743,7 @@ message PatchTargetHttpProxyRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 TargetHttpProxy resource to patch. @@ -17326,7 +19762,7 @@ message PatchTargetHttpsProxyRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 TargetHttpsProxy resource to patch. @@ -17356,21 +19792,21 @@ 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 will be used. +// 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 like URL rewrites, header transformations, etc. prior to 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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a pathMatcher'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. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) 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 will be 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 additionally specified, advanced routing actions like URL Rewrites, etc. take effect prior to 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. 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 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 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, defaultService or defaultRouteAction must not be set. 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. optional string description = 422937596; - // Specifies changes to request and response headers that need to take effect for the selected backendService. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap Note that headerAction is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. optional HttpHeaderAction header_action = 328077352; // The name to which this PathMatcher is referred by the HostRule. @@ -17389,71 +19825,70 @@ message PathRule { // 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. repeated string paths = 106438894; - // In response to a matching path, the load balancer performs advanced routing actions like URL rewrites, header transformations, etc. prior to 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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a pathRule's routeAction. + // 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 external HTTP(S) load balancers only support the urlRewrite action within a path rule's routeAction. optional HttpRouteAction route_action = 424563948; - // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is additionally specified, advanced routing actions like URL Rewrites, etc. take effect prior to sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendService s. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. + // 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. optional string service = 373540533; - // 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 target gRPC proxy. + // 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. optional HttpRedirectAction url_redirect = 405147820; } // message PerInstanceConfig { - // The status of applying this per-instance config on the corresponding managed instance. + // The status of applying this per-instance configuration on the corresponding managed instance. enum Status { // A value indicating that the enum field is not set. UNDEFINED_STATUS = 0; - // The per-instance config is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH. + // The per-instance configuration is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH. APPLYING = 352003508; - // The per-instance config deletion is being applied on the instance, 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. DELETING = 528602024; - // The per-instance config is effective on the instance, meaning that all disks, ips and metadata specified in this config are attached or set on the instance. + // 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. EFFECTIVE = 244201863; - // *[Default]* The default status, when no per-instance config exists. + // *[Default]* The default status, when no per-instance configuration exists. NONE = 2402104; - // The per-instance config is set on an instance but not been applied yet. + // The per-instance configuration is set on an instance but not been applied yet. UNAPPLIED = 483935140; - // The per-instance config has been deleted, but the deletion is not yet applied. + // The per-instance configuration has been deleted, but the deletion is not yet applied. UNAPPLIED_DELETION = 313956873; } - // 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 config or the field needs to be unset. + // 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. optional string fingerprint = 234678500; - // The name of a per-instance config and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance config 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 config for a VM instance that either doesn't exist or is not part of the group will result in an error. + // 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. optional string name = 3373707; // The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy. optional PreservedState preserved_state = 2634026; - // The status of applying this per-instance config on the corresponding managed instance. + // The status of applying this per-instance configuration on the corresponding managed instance. // Check the Status enum for the list of possible values. optional string status = 181260274; } -// 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` to a single `role`. Members 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/). +// 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. repeated AuditConfig audit_configs = 328080653; - // Associates a list of `members` to 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 member. + // 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`. repeated Binding bindings = 403251854; // `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. optional string etag = 3123477; - // This is deprecated and has no effect. Do not use. optional bool iam_owned = 450566203; // This is deprecated and has no effect. Do not use. @@ -17543,12 +19978,18 @@ message Project { // A value indicating that the enum field is not set. UNDEFINED_DEFAULT_NETWORK_TIER = 0; + // Public internet quality with fixed bandwidth. + FIXED_STANDARD = 310464328; + // High quality, Google-grade network tier, support for all networking products. PREMIUM = 399530551; // Public internet quality, only limited support for other networking products. STANDARD = 484642493; + // (Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured. + STANDARD_OVERRIDES_FIXED_STANDARD = 465847234; + } // [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. @@ -17646,12 +20087,18 @@ message ProjectsSetDefaultNetworkTierRequest { // A value indicating that the enum field is not set. UNDEFINED_NETWORK_TIER = 0; + // Public internet quality with fixed bandwidth. + FIXED_STANDARD = 310464328; + // High quality, Google-grade network tier, support for all networking products. PREMIUM = 399530551; // Public internet quality, only limited support for other networking products. STANDARD = 484642493; + // (Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured. + STANDARD_OVERRIDES_FIXED_STANDARD = 465847234; + } // Default network tier to be set. @@ -17662,23 +20109,30 @@ message ProjectsSetDefaultNetworkTierRequest { // 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. message PublicAdvertisedPrefix { - // The status of the public advertised prefix. + // 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. enum Status { // A value indicating that the enum field is not set. UNDEFINED_STATUS = 0; + // RPKI validation is complete. INITIAL = 518841124; + // The prefix is fully configured. PREFIX_CONFIGURATION_COMPLETE = 480889551; + // The prefix is being configured. PREFIX_CONFIGURATION_IN_PROGRESS = 378550961; + // The prefix is being removed. PREFIX_REMOVAL_IN_PROGRESS = 284375783; + // User has configured the PTR. PTR_CONFIGURED = 513497167; + // Reverse DNS lookup failed. REVERSE_DNS_LOOKUP_FAILED = 295755183; + // Reverse DNS lookup is successful. VALIDATED = 66197998; } @@ -17716,7 +20170,7 @@ message PublicAdvertisedPrefix { // [Output Only] The shared secret to be used for reverse DNS verification. optional string shared_secret = 381932490; - // The status of the public advertised prefix. + // 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. // Check the Status enum for the list of possible values. optional string status = 181260274; @@ -17765,17 +20219,21 @@ message PublicAdvertisedPrefixPublicDelegatedPrefix { // 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. message PublicDelegatedPrefix { - // [Output Only] The status of the public delegated prefix. + // [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. UNDEFINED_STATUS = 0; + // The public delegated prefix is active. ANNOUNCED = 365103355; + // The public delegated prefix is being deprovsioned. DELETING = 528602024; + // The public delegated prefix is being initialized and addresses cannot be created yet. INITIALIZING = 306588749; + // The public delegated prefix is currently withdrawn but ready to be announced. READY_TO_ANNOUNCE = 64641265; } @@ -17816,7 +20274,7 @@ message PublicDelegatedPrefix { // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; - // [Output Only] The status of the public delegated prefix. + // [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. // Check the Status enum for the list of possible values. optional string status = 181260274; @@ -17957,6 +20415,8 @@ message Quota { COMMITTED_LOCAL_SSD_TOTAL_GB = 308393480; + COMMITTED_M3_CPUS = 585985; + COMMITTED_MEMORY_OPTIMIZED_CPUS = 489057886; COMMITTED_N2A_CPUS = 40064304; @@ -17965,6 +20425,8 @@ message Quota { COMMITTED_N2_CPUS = 322589603; + COMMITTED_NVIDIA_A100_80GB_GPUS = 464326565; + COMMITTED_NVIDIA_A100_GPUS = 375799445; COMMITTED_NVIDIA_K80_GPUS = 3857188; @@ -17977,6 +20439,8 @@ message Quota { COMMITTED_NVIDIA_V100_GPUS = 219562; + COMMITTED_T2A_CPUS = 296378986; + COMMITTED_T2D_CPUS = 382266439; // Guest CPUs @@ -17988,6 +20452,8 @@ message Quota { E2_CPUS = 481995837; + EXTERNAL_MANAGED_FORWARDING_RULES = 150790089; + EXTERNAL_NETWORK_LB_FORWARDING_RULES = 374298265; EXTERNAL_PROTOCOL_FORWARDING_RULES = 63478888; @@ -17998,6 +20464,8 @@ message Quota { FORWARDING_RULES = 432668949; + GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES = 327611949; + GLOBAL_INTERNAL_ADDRESSES = 42738332; GPUS_ALL_REGIONS = 39387177; @@ -18040,6 +20508,8 @@ message Quota { M2_CPUS = 65832517; + M3_CPUS = 94461668; + MACHINE_IMAGES = 446986640; N2A_CPUS = 265855917; @@ -18058,6 +20528,8 @@ message Quota { NODE_TEMPLATES = 474896668; + NVIDIA_A100_80GB_GPUS = 286389320; + NVIDIA_A100_GPUS = 504872978; NVIDIA_K80_GPUS = 163886599; @@ -18084,6 +20556,8 @@ message Quota { PREEMPTIBLE_LOCAL_SSD_GB = 260819336; + PREEMPTIBLE_NVIDIA_A100_80GB_GPUS = 151942410; + PREEMPTIBLE_NVIDIA_A100_GPUS = 68832784; PREEMPTIBLE_NVIDIA_K80_GPUS = 374960201; @@ -18147,6 +20621,8 @@ message Quota { SUBNETWORKS = 421330469; + T2A_CPUS = 522170599; + T2D_CPUS = 71187140; TARGET_HTTPS_PROXIES = 219522506; @@ -18444,14 +20920,14 @@ message RegionInstanceGroupManagerList { // RegionInstanceGroupManagers.patchPerInstanceConfigs message RegionInstanceGroupManagerPatchInstanceConfigReq { - // The list of per-instance configs to insert or patch on this managed instance group. + // The list of per-instance configurations to insert or patch on this managed instance group. repeated PerInstanceConfig per_instance_configs = 526265001; } // RegionInstanceGroupManagers.updatePerInstanceConfigs message RegionInstanceGroupManagerUpdateInstanceConfigReq { - // The list of per-instance configs to insert or patch on this managed instance group. + // The list of per-instance configurations to insert or patch on this managed instance group. repeated PerInstanceConfig per_instance_configs = 526265001; } @@ -18465,16 +20941,42 @@ message RegionInstanceGroupManagersAbandonInstancesRequest { // RegionInstanceGroupManagers.applyUpdatesToInstances message RegionInstanceGroupManagersApplyUpdatesRequest { - // 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. + // 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. - 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NONE + // REFRESH + // REPLACE + // RESTART + enum MinimalAction { + // A value indicating that the enum field is not set. + UNDEFINED_MINIMAL_ACTION = 0; + + } + + // 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. - 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // NONE + // REFRESH + // REPLACE + // RESTART + enum MostDisruptiveAllowedAction { + // A value indicating that the enum field is not set. + UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0; + + } + + // 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. optional bool all_instances = 403676512; // 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]. repeated string instances = 29097598; // 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. - 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. + // Check the MinimalAction enum for the list of possible values. optional string minimal_action = 270567060; // 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. - 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. + // Check the MostDisruptiveAllowedAction enum for the list of possible values. optional string most_disruptive_allowed_action = 66103053; } @@ -18631,6 +21133,48 @@ message RegionList { } +// +message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse { + // Effective firewalls from firewall policy. + repeated RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy firewall_policys = 410985794; + + // Effective firewalls on the network. + repeated Firewall firewalls = 272245619; + +} + +// +message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { + // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. + enum Type { + // A value indicating that the enum field is not set. + UNDEFINED_TYPE = 0; + + HIERARCHY = 69902869; + + NETWORK = 413984270; + + NETWORK_REGIONAL = 190804272; + + UNSPECIFIED = 526786327; + + } + + // [Output Only] The display name of the firewall policy. + optional string display_name = 4473832; + + // [Output Only] The name of the firewall policy. + optional string name = 3373707; + + // 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. + // Check the Type enum for the list of possible values. + optional string type = 3575610; + +} + // message RegionSetLabelsRequest { // 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. @@ -18656,7 +21200,7 @@ message RegionSetPolicyRequest { // message RegionTargetHttpsProxiesSetSslCertificatesRequest { - // New set of SslCertificate resources to associate with this TargetHttpsProxy resource. Currently exactly one SslCertificate resource must be specified. + // New set of SslCertificate resources to associate with this TargetHttpsProxy resource. repeated string ssl_certificates = 366006543; } @@ -18681,6 +21225,50 @@ message RemoveAssociationFirewallPolicyRequest { } +// A request message for NetworkFirewallPolicies.RemoveAssociation. See the method description for details. +message RemoveAssociationNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // Name for the attachment that will be removed. + optional string name = 3373707; + + // 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; + +} + +// A request message for RegionNetworkFirewallPolicies.RemoveAssociation. See the method description for details. +message RemoveAssociationRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // Name for the association that will be removed. + optional string name = 3373707; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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 TargetPools.RemoveHealthCheck. See the method description for details. message RemoveHealthCheckTargetPoolRequest { // Project ID for this request. @@ -18863,6 +21451,50 @@ message RemoveRuleFirewallPolicyRequest { } +// A request message for NetworkFirewallPolicies.RemoveRule. See the method description for details. +message RemoveRuleNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The priority of the rule to remove from the firewall policy. + optional int32 priority = 445151652; + + // 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; + +} + +// A request message for RegionNetworkFirewallPolicies.RemoveRule. See the method description for details. +message RemoveRuleRegionNetworkFirewallPolicyRequest { + // Name of the firewall policy to update. + string firewall_policy = 498173265 [(google.api.field_behavior) = REQUIRED]; + + // The priority of the rule to remove from the firewall policy. + optional int32 priority = 445151652; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region scoping 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 SecurityPolicies.RemoveRule. See the method description for details. message RemoveRuleSecurityPolicyRequest { // The priority of the rule to remove from the security policy. @@ -18879,9 +21511,9 @@ message RemoveRuleSecurityPolicyRequest { } -// A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host / authority header is suffixed with -shadow. +// 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. message RequestMirrorPolicy { - // The full or partial URL to the BackendService resource being mirrored to. + // 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. optional string backend_service = 306946058; } @@ -18933,6 +21565,9 @@ message Reservation { // [Output Only] Server-defined fully-qualified URL for this resource. optional string self_link = 456214797; + // Share-settings for shared-reservation + optional ShareSettings share_settings = 266668163; + // Reservation for instances with specific machine shapes. optional AllocationSpecificSKUReservation specific_reservation = 404901951; @@ -19328,7 +21963,7 @@ message ResourcePolicyAggregatedList { // Time window specified for daily operations. message ResourcePolicyDailyCycle { - // Defines a schedule with units measured in months. The value determines how many months pass between the start of each cycle. + // Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. optional int32 days_in_cycle = 369790004; // [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. @@ -19352,14 +21987,14 @@ message ResourcePolicyGroupPlacementPolicy { } - // The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network + // 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. optional int32 availability_domain_count = 12453432; // Specifies network collocation // Check the Collocation enum for the list of possible values. optional string collocation = 511156533; - // Number of vms in this placement group + // 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. optional int32 vm_count = 261463431; } @@ -19551,8 +22186,49 @@ message ResourcePolicyWeeklyCycleDayOfWeek { } +// A request message for Instances.Resume. See the method description for details. +message ResumeInstanceRequest { + // Name of the instance resource to resume. + string instance = 18257045 [(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" + ]; + +} + // 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. message Route { + // [Output only] The status of the route. + enum RouteStatus { + // A value indicating that the enum field is not set. + UNDEFINED_ROUTE_STATUS = 0; + + // This route is processed and active. + ACTIVE = 314733318; + + // The route is dropped due to the VPC exceeding the dynamic route limit. For dynamic route limit, please refer to the Learned route example + DROPPED = 496235424; + + // This route is processed but inactive due to failure from the backend. The backend may have rejected the route + INACTIVE = 270421099; + + // This route is being processed internally. The status will change once processed. + PENDING = 35394935; + + } + // [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 enum RouteType { // A value indicating that the enum field is not set. @@ -19616,6 +22292,10 @@ message Route { // 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. optional uint32 priority = 445151652; + // [Output only] The status of the route. + // Check the RouteStatus enum for the list of possible values. + optional string route_status = 418162344; + // [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 // Check the RouteType enum for the list of possible values. optional string route_type = 375888752; @@ -19693,7 +22373,7 @@ message Router { // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; - // Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments). Not currently available publicly. + // Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments). optional bool encrypted_interconnect_router = 297996575; // [Output Only] The unique identifier for the resource. This identifier is defined by the server. @@ -19867,12 +22547,18 @@ 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. + optional bool enable_ipv6 = 181467939; + // 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. optional string ip_address = 406272220; + // IPv6 address of the interface inside Google Cloud Platform. + optional string ipv6_nexthop_address = 27968211; + // [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. // Check the ManagementType enum for the list of possible values. optional string management_type = 173703606; @@ -19886,6 +22572,9 @@ message RouterBgpPeer { // IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. optional string peer_ip_address = 207735769; + // IPv6 address of the BGP interface outside Google Cloud Platform. + optional string peer_ipv6_nexthop_address = 491486608; + // 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. optional string router_appliance_instance = 468312989; @@ -19893,7 +22582,7 @@ message RouterBgpPeer { // message RouterBgpPeerBfd { - // 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 PASSIVE. + // 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. enum SessionInitializationMode { // A value indicating that the enum field is not set. UNDEFINED_SESSION_INITIALIZATION_MODE = 0; @@ -19915,7 +22604,7 @@ message RouterBgpPeerBfd { // 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. optional uint32 multiplier = 191331777; - // 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 PASSIVE. + // 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. // Check the SessionInitializationMode enum for the list of possible values. optional string session_initialization_mode = 105957049; @@ -19987,6 +22676,19 @@ message RouterList { // 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. message RouterNat { + // + enum EndpointTypes { + // A value indicating that the enum field is not set. + UNDEFINED_ENDPOINT_TYPES = 0; + + // This is used for Secure Web Gateway endpoints. + ENDPOINT_TYPE_SWG = 159344456; + + // This is the default. + ENDPOINT_TYPE_VM = 57095474; + + } + // 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. enum NatIpAllocateOption { // A value indicating that the enum field is not set. @@ -20019,14 +22721,24 @@ message RouterNat { // 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. repeated string drain_nat_ips = 504078535; + // 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. + optional bool enable_dynamic_port_allocation = 532106402; + optional bool enable_endpoint_independent_mapping = 259441819; + // 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 + // Check the EndpointTypes enum for the list of possible values. + repeated string endpoint_types = 502633807; + // Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. optional int32 icmp_idle_timeout_sec = 3647562; // Configure logging on this NAT. optional RouterNatLogConfig log_config = 351299741; + // 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. + optional int32 max_ports_per_vm = 250062049; + // 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. optional int32 min_ports_per_vm = 186193587; @@ -20099,7 +22811,7 @@ message RouterNatRule { // An optional description of this rule. optional string description = 422937596; - // 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 == '/projects/my-project/global/hub/hub-1'" + // 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 == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" optional string match = 103668165; // 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. @@ -20182,6 +22894,8 @@ message RouterStatusBgpPeerStatus { // Routes that were advertised to the remote BGP peer repeated Route advertised_routes = 333393068; + optional BfdStatus bfd_status = 395631729; + // IP address of the local BGP interface. optional string ip_address = 406272220; @@ -20200,7 +22914,7 @@ message RouterStatusBgpPeerStatus { // [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. optional string router_appliance_instance = 468312989; - // BGP state as specified in RFC1771. + // The state of the BGP session. For a list of possible values for this field, see BGP session states. optional string state = 109757585; // Status of the BGP peer: {UP, DOWN} @@ -20393,6 +23107,156 @@ message SSLHealthCheck { } +// DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource. +message SavedAttachedDisk { + // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. + enum Interface { + // A value indicating that the enum field is not set. + UNDEFINED_INTERFACE = 0; + + NVME = 2408800; + + SCSI = 2539686; + + } + + // The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY. + enum Mode { + // A value indicating that the enum field is not set. + UNDEFINED_MODE = 0; + + // Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time. + READ_ONLY = 91950261; + + // *[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. + READ_WRITE = 173607894; + + } + + // [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. + enum StorageBytesStatus { + // A value indicating that the enum field is not set. + UNDEFINED_STORAGE_BYTES_STATUS = 0; + + UPDATING = 494614342; + + UP_TO_DATE = 101306702; + + } + + // Specifies the type of the attached disk, either SCRATCH or PERSISTENT. + enum Type { + // A value indicating that the enum field is not set. + UNDEFINED_TYPE = 0; + + PERSISTENT = 460683927; + + SCRATCH = 496778970; + + } + + // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). + optional bool auto_delete = 464761403; + + // Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. + optional bool boot = 3029746; + + // Specifies the name of the disk attached to the source instance. + optional string device_name = 67541716; + + // The encryption key for the disk. + optional CustomerEncryptionKey disk_encryption_key = 271660677; + + // The size of the disk in base-2 GB. + optional int64 disk_size_gb = 316263735; + + // [Output Only] URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd + optional string disk_type = 93009052; + + // 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. + repeated GuestOsFeature guest_os_features = 79294545; + + // Specifies zero-based index of the disk that is attached to the source instance. + optional int32 index = 100346066; + + // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. + // Check the Interface enum for the list of possible values. + optional string interface = 502623545; + + // [Output Only] Type of the resource. Always compute#attachedDisk for attached disks. + optional string kind = 3292052; + + // [Output Only] Any valid publicly visible licenses. + repeated string licenses = 337642578; + + // The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY. + // Check the Mode enum for the list of possible values. + optional string mode = 3357091; + + // Specifies a URL of the disk attached to the source instance. + optional string source = 177235995; + + // [Output Only] A size of the storage used by the disk's snapshot by this machine image. + optional int64 storage_bytes = 424631719; + + // [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. + // Check the StorageBytesStatus enum for the list of possible values. + optional string storage_bytes_status = 490739082; + + // Specifies the type of the attached disk, either SCRATCH or PERSISTENT. + // Check the Type enum for the list of possible values. + optional string type = 3575610; + +} + +// An instance-attached disk resource. +message SavedDisk { + // [Output Only] The architecture of the attached disk. + 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] 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. + enum StorageBytesStatus { + // A value indicating that the enum field is not set. + UNDEFINED_STORAGE_BYTES_STATUS = 0; + + UPDATING = 494614342; + + UP_TO_DATE = 101306702; + + } + + // [Output Only] The architecture of the attached disk. + // Check the Architecture enum for the list of possible values. + optional string architecture = 302803283; + + // [Output Only] Type of the resource. Always compute#savedDisk for attached disks. + optional string kind = 3292052; + + // Specifies a URL of the disk attached to the source instance. + optional string source_disk = 451753793; + + // [Output Only] Size of the individual disk snapshot used by this machine image. + optional int64 storage_bytes = 424631719; + + // [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. + // Check the StorageBytesStatus enum for the list of possible values. + optional string storage_bytes_status = 490739082; + +} + // message ScalingScheduleStatus { // [Output Only] The current state of a scaling schedule. @@ -20426,9 +23290,25 @@ message ScalingScheduleStatus { } -// Sets the scheduling options for an Instance. NextID: 21 +// Sets the scheduling options for an Instance. message Scheduling { - // 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 Setting Instance Scheduling Options. + // Specifies the termination action for the instance. + enum InstanceTerminationAction { + // A value indicating that the enum field is not set. + UNDEFINED_INSTANCE_TERMINATION_ACTION = 0; + + // Delete the VM. + DELETE = 402225579; + + // Default value. This value is unused. + INSTANCE_TERMINATION_ACTION_UNSPECIFIED = 92954803; + + // Stop the VM without storing in-memory content. default action. + STOP = 2555906; + + } + + // 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. enum OnHostMaintenance { // A value indicating that the enum field is not set. UNDEFINED_ON_HOST_MAINTENANCE = 0; @@ -20441,9 +23321,26 @@ message Scheduling { } + // Specifies the provisioning model of the instance. + enum ProvisioningModel { + // A value indicating that the enum field is not set. + UNDEFINED_PROVISIONING_MODEL = 0; + + // Heavily discounted, no guaranteed runtime. + SPOT = 2552066; + + // Standard provisioning with user controlled runtime, no discounts. + STANDARD = 484642493; + + } + // 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. optional bool automatic_restart = 350821371; + // Specifies the termination action for the instance. + // Check the InstanceTerminationAction enum for the list of possible values. + optional string instance_termination_action = 107380667; + // 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. optional string location_hint = 350519505; @@ -20453,13 +23350,17 @@ message Scheduling { // A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. repeated SchedulingNodeAffinity node_affinities = 461799971; - // 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 Setting Instance Scheduling Options. + // 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. // Check the OnHostMaintenance enum for the list of possible values. optional string on_host_maintenance = 64616796; // 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. optional bool preemptible = 324203169; + // Specifies the provisioning model of the instance. + // Check the ProvisioningModel enum for the list of possible values. + optional string provisioning_model = 494423; + } // Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. @@ -20508,12 +23409,49 @@ message Screenshot { } +// +message SecurityPoliciesAggregatedList { + optional string etag = 3123477; + + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of SecurityPoliciesScopedList resources. + map items = 100526016; + + // [Output Only] Type of resource. Always compute#securityPolicyAggregatedList for lists of Security Policies. + 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 SecurityPoliciesListPreconfiguredExpressionSetsResponse { optional SecurityPoliciesWafConfig preconfigured_expression_sets = 536200826; } +// +message SecurityPoliciesScopedList { + // A list of SecurityPolicies contained in this scope. + repeated SecurityPolicy security_policies = 127783791; + + // Informational warning which replaces the list of security policies when the list is empty. + optional Warning warning = 50704284; + +} + // message SecurityPoliciesWafConfig { optional PreconfiguredWafSet waf_rules = 74899924; @@ -20522,6 +23460,19 @@ message SecurityPoliciesWafConfig { // 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. message SecurityPolicy { + // 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. This field can be set only at resource creation time. + enum Type { + // A value indicating that the enum field is not set. + UNDEFINED_TYPE = 0; + + CLOUD_ARMOR = 260640373; + + CLOUD_ARMOR_EDGE = 250728775; + + CLOUD_ARMOR_NETWORK = 488527428; + + } + optional SecurityPolicyAdaptiveProtectionConfig adaptive_protection_config = 150240735; optional SecurityPolicyAdvancedOptionsConfig advanced_options_config = 449276352; @@ -20529,6 +23480,8 @@ message SecurityPolicy { // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 30525366; + optional SecurityPolicyDdosProtectionConfig ddos_protection_config = 50315853; + // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; @@ -20544,12 +23497,21 @@ message SecurityPolicy { // 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; + optional SecurityPolicyRecaptchaOptionsConfig recaptcha_options_config = 519006811; + + // [Output Only] URL of the region where the regional security policy resides. This field is not applicable to global security policies. + optional string region = 138946292; + // 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 security policy, a default rule with action "allow" will be added. repeated SecurityPolicyRule rules = 108873975; // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; + // 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. This field can be set only at resource creation time. + // Check the Type enum for the list of possible values. + optional string type = 3575610; + } // Configuration options for Cloud Armor Adaptive Protection (CAAP). @@ -20605,6 +23567,9 @@ message SecurityPolicyAdvancedOptionsConfig { } + // Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD. + optional SecurityPolicyAdvancedOptionsConfigJsonCustomConfig json_custom_config = 111570105; + // // Check the JsonParsing enum for the list of possible values. optional string json_parsing = 282493529; @@ -20615,6 +23580,32 @@ message SecurityPolicyAdvancedOptionsConfig { } +// +message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { + // 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. + repeated string content_types = 17428787; + +} + +// +message SecurityPolicyDdosProtectionConfig { + // + enum DdosProtection { + // A value indicating that the enum field is not set. + UNDEFINED_DDOS_PROTECTION = 0; + + ADVANCED = 63789090; + + STANDARD = 484642493; + + } + + // + // Check the DdosProtection enum for the list of possible values. + optional string ddos_protection = 275173268; + +} + // message SecurityPolicyList { // [Output Only] Unique identifier for the resource; defined by the server. @@ -20634,6 +23625,13 @@ message SecurityPolicyList { } +// +message SecurityPolicyRecaptchaOptionsConfig { + // 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. + optional string redirect_site_key = 447677034; + +} + // message SecurityPolicyReference { optional string security_policy = 171082513; @@ -20642,12 +23640,15 @@ message SecurityPolicyReference { // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). message SecurityPolicyRule { - // The Action to perform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502. + // The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values 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. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. optional string action = 187661878; // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; + // Optional, additional actions that are performed on headers. + optional SecurityPolicyRuleHttpHeaderAction header_action = 328077352; + // [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules optional string kind = 3292052; @@ -20660,6 +23661,29 @@ message SecurityPolicyRule { // 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. optional int32 priority = 445151652; + // Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + optional SecurityPolicyRuleRateLimitOptions rate_limit_options = 67544315; + + // Parameters defining the redirect action. Cannot be specified for any other actions. + optional SecurityPolicyRuleRedirectOptions redirect_options = 163285307; + +} + +// +message SecurityPolicyRuleHttpHeaderAction { + // The list of request headers to add or overwrite if they're already present. + repeated SecurityPolicyRuleHttpHeaderActionHttpHeaderOption request_headers_to_adds = 87987661; + +} + +// +message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption { + // The name of the header to set. + optional string header_name = 110223613; + + // The value to set the named header to. + optional string header_value = 203094335; + } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. @@ -20693,6 +23717,84 @@ message SecurityPolicyRuleMatcherConfig { } +// +message SecurityPolicyRuleRateLimitOptions { + // 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 this field 'enforce_on_key' 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 "enforce_on_key_name". 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 "enforce_on_key_name". 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. + enum EnforceOnKey { + // A value indicating that the enum field is not set. + UNDEFINED_ENFORCE_ON_KEY = 0; + + ALL = 64897; + + HTTP_COOKIE = 494981627; + + HTTP_HEADER = 91597348; + + IP = 2343; + + XFF_IP = 438707118; + + } + + // 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. + optional int32 ban_duration_sec = 42896726; + + // 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'. + optional SecurityPolicyRuleRateLimitOptionsThreshold ban_threshold = 501208123; + + // Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. + optional string conform_action = 517612367; + + // 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 this field 'enforce_on_key' 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 "enforce_on_key_name". 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 "enforce_on_key_name". 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. + // Check the EnforceOnKey enum for the list of possible values. + optional string enforce_on_key = 416648956; + + // 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. + optional string enforce_on_key_name = 132555246; + + // 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. + optional string exceed_action = 167159073; + + // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. + optional SecurityPolicyRuleRedirectOptions exceed_redirect_options = 473646694; + + // Threshold at which to begin ratelimiting. + optional SecurityPolicyRuleRateLimitOptionsThreshold rate_limit_threshold = 315875208; + +} + +// +message SecurityPolicyRuleRateLimitOptionsThreshold { + // Number of HTTP(S) requests for calculating the threshold. + optional int32 count = 94851343; + + // Interval over which the threshold is computed. + optional int32 interval_sec = 41084375; + +} + +// +message SecurityPolicyRuleRedirectOptions { + // Type of the redirect action. + enum Type { + // A value indicating that the enum field is not set. + UNDEFINED_TYPE = 0; + + EXTERNAL_302 = 395733761; + + GOOGLE_RECAPTCHA = 518803009; + + } + + // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. + optional string target = 192835985; + + // Type of the redirect action. + // Check the Type enum for the list of possible values. + optional string type = 3575610; + +} + // The authentication and authorization settings for a BackendService. message SecuritySettings { // 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. Note: This field currently has no impact. @@ -20806,6 +23908,9 @@ message ServiceAttachment { // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; + // 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. + repeated string domain_names = 6450189; + // 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. optional bool enable_proxy_protocol = 363791237; @@ -20879,6 +23984,9 @@ message ServiceAttachmentConnectedEndpoint { // The connection has been closed by the producer. CLOSED = 380163436; + // The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic. + NEEDS_ATTENTION = 344491452; + // The connection is pending acceptance by the producer. PENDING = 35394935; @@ -21009,6 +24117,44 @@ message SetBackupTargetPoolRequest { } +// A request message for TargetHttpsProxies.SetCertificateMap. See the method description for details. +message SetCertificateMapTargetHttpsProxyRequest { + // 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 + TargetHttpsProxiesSetCertificateMapRequest target_https_proxies_set_certificate_map_request_resource = 467639099 [(google.api.field_behavior) = REQUIRED]; + + // Name of the TargetHttpsProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035. + string target_https_proxy = 52336748 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for TargetSslProxies.SetCertificateMap. See the method description for details. +message SetCertificateMapTargetSslProxyRequest { + // 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 + TargetSslProxiesSetCertificateMapRequest target_ssl_proxies_set_certificate_map_request_resource = 343984954 [(google.api.field_behavior) = REQUIRED]; + + // Name of the TargetSslProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035. + string target_ssl_proxy = 338795853 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Projects.SetCommonInstanceMetadata. See the method description for details. message SetCommonInstanceMetadataProjectRequest { // The body resource for this request @@ -21094,6 +24240,57 @@ message SetDiskAutoDeleteInstanceRequest { } +// A request message for BackendBuckets.SetEdgeSecurityPolicy. See the method description for details. +message SetEdgeSecurityPolicyBackendBucketRequest { + // Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035. + string backend_bucket = 91714037 [(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 body resource for this request + SecurityPolicyReference security_policy_reference_resource = 204135024 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for BackendServices.SetEdgeSecurityPolicy. See the method description for details. +message SetEdgeSecurityPolicyBackendServiceRequest { + // Name of the BackendService resource to which the edge security policy should be set. The name should conform to RFC1035. + string backend_service = 306946058 [(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 body resource for this request + SecurityPolicyReference security_policy_reference_resource = 204135024 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for BackendServices.SetIamPolicy. See the method description for details. +message SetIamPolicyBackendServiceRequest { + // The body resource for this request + GlobalSetPolicyRequest global_set_policy_request_resource = 337048498 [(google.api.field_behavior) = REQUIRED]; + + // 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]; + +} + // A request message for Disks.SetIamPolicy. See the method description for details. message SetIamPolicyDiskRequest { // Project ID for this request. @@ -21175,6 +24372,32 @@ message SetIamPolicyLicenseRequest { } +// A request message for MachineImages.SetIamPolicy. See the method description for details. +message SetIamPolicyMachineImageRequest { + // The body resource for this request + GlobalSetPolicyRequest global_set_policy_request_resource = 337048498 [(google.api.field_behavior) = REQUIRED]; + + // 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]; + +} + +// A request message for NetworkFirewallPolicies.SetIamPolicy. See the method description for details. +message SetIamPolicyNetworkFirewallPolicyRequest { + // The body resource for this request + GlobalSetPolicyRequest global_set_policy_request_resource = 337048498 [(google.api.field_behavior) = REQUIRED]; + + // 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]; + +} + // A request message for NodeGroups.SetIamPolicy. See the method description for details. message SetIamPolicyNodeGroupRequest { // Project ID for this request. @@ -21207,6 +24430,22 @@ message SetIamPolicyNodeTemplateRequest { } +// A request message for RegionBackendServices.SetIamPolicy. See the method description for details. +message SetIamPolicyRegionBackendServiceRequest { + // 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 RegionDisks.SetIamPolicy. See the method description for details. message SetIamPolicyRegionDiskRequest { // Project ID for this request. @@ -21223,6 +24462,22 @@ message SetIamPolicyRegionDiskRequest { } +// A request message for RegionNetworkFirewallPolicies.SetIamPolicy. See the method description for details. +message SetIamPolicyRegionNetworkFirewallPolicyRequest { + // 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 Reservations.SetIamPolicy. See the method description for details. message SetIamPolicyReservationRequest { // Project ID for this request. @@ -21350,6 +24605,31 @@ message SetInstanceTemplateRegionInstanceGroupManagerRequest { } +// A request message for Addresses.SetLabels. See the method description for details. +message SetLabelsAddressRequest { + // 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 Disks.SetLabels. See the method description for details. message SetLabelsDiskRequest { // Project ID for this request. @@ -21416,6 +24696,22 @@ message SetLabelsForwardingRuleRequest { } +// A request message for GlobalAddresses.SetLabels. See the method description for details. +message SetLabelsGlobalAddressRequest { + // The body resource for this request + GlobalSetLabelsRequest global_set_labels_request_resource = 319917189 [(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 or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for GlobalForwardingRules.SetLabels. See the method description for details. message SetLabelsGlobalForwardingRuleRequest { // The body resource for this request @@ -21473,6 +24769,47 @@ message SetLabelsInstanceRequest { } +// A request message for InterconnectAttachments.SetLabels. See the method description for details. +message SetLabelsInterconnectAttachmentRequest { + // 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 Interconnects.SetLabels. See the method description for details. +message SetLabelsInterconnectRequest { + // The body resource for this request + GlobalSetLabelsRequest global_set_labels_request_resource = 319917189 [(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 or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionDisks.SetLabels. See the method description for details. message SetLabelsRegionDiskRequest { // Project ID for this request. @@ -21498,6 +24835,22 @@ message SetLabelsRegionDiskRequest { } +// A request message for SecurityPolicies.SetLabels. See the method description for details. +message SetLabelsSecurityPolicyRequest { + // The body resource for this request + GlobalSetLabelsRequest global_set_labels_request_resource = 319917189 [(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 or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Snapshots.SetLabels. See the method description for details. message SetLabelsSnapshotRequest { // The body resource for this request @@ -21514,6 +24867,31 @@ message SetLabelsSnapshotRequest { } +// A request message for TargetVpnGateways.SetLabels. See the method description for details. +message SetLabelsTargetVpnGatewayRequest { + // 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 VpnGateways.SetLabels. See the method description for details. message SetLabelsVpnGatewayRequest { // Project ID for this request. @@ -21539,6 +24917,31 @@ message SetLabelsVpnGatewayRequest { } +// A request message for VpnTunnels.SetLabels. See the method description for details. +message SetLabelsVpnTunnelRequest { + // 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 Instances.SetMachineResources. See the method description for details. message SetMachineResourcesInstanceRequest { // Name of the instance scoping this request. @@ -21907,7 +25310,7 @@ message SetSslCertificatesRegionTargetHttpsProxyRequest { // The body resource for this request RegionTargetHttpsProxiesSetSslCertificatesRequest region_target_https_proxies_set_ssl_certificates_request_resource = 390693383 [(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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 TargetHttpsProxy resource to set an SslCertificates resource for. @@ -22149,7 +25552,7 @@ message SetUrlMapRegionTargetHttpsProxyRequest { (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). end_interface: MixerMutationRequestBuilder + // An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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 TargetHttpsProxy to set a URL map for. @@ -22214,6 +25617,43 @@ message SetUsageExportBucketProjectRequest { } +// The share setting for reservations and sole tenancy node groups. +message ShareSettings { + // Type of sharing for this shared-reservation + enum ShareType { + // A value indicating that the enum field is not set. + UNDEFINED_SHARE_TYPE = 0; + + // Default value. + LOCAL = 72607563; + + // Shared-reservation is open to entire Organization + ORGANIZATION = 274978099; + + // Default value. This value is unused. + SHARE_TYPE_UNSPECIFIED = 494771730; + + // Shared-reservation is open to specific projects + SPECIFIC_PROJECTS = 347838695; + + } + + // A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. + map project_map = 134212406; + + // Type of sharing for this shared-reservation + // Check the ShareType enum for the list of possible values. + optional string share_type = 359533466; + +} + +// Config for each project in the share settings. +message ShareSettingsProjectConfig { + // The project ID, should be same as the key of this project config in the parent map. + optional string project_id = 177513473; + +} + // A set of Shielded Instance options. message ShieldedInstanceConfig { // Defines whether the instance has integrity monitoring enabled. Enabled by default. @@ -22288,6 +25728,33 @@ message SimulateMaintenanceEventInstanceRequest { // 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. message Snapshot { + // [Output Only] The architecture of the 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; + + } + + // Indicates the type of the snapshot. + enum SnapshotType { + // A value indicating that the enum field is not set. + UNDEFINED_SNAPSHOT_TYPE = 0; + + ARCHIVE = 506752162; + + STANDARD = 484642493; + + } + // [Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING. enum Status { // A value indicating that the enum field is not set. @@ -22321,12 +25788,19 @@ message Snapshot { } + // [Output Only] The architecture of the snapshot. Valid values are ARM64 or X86_64. + // Check the Architecture enum for the list of possible values. + optional string architecture = 302803283; + // [Output Only] Set to true if snapshots are automatically created by applying resource policy on the target disk. optional bool auto_created = 463922264; // 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. optional string chain_name = 68644169; + // [Output Only] Size in bytes of the snapshot at creation time. + optional int64 creation_size_bytes = 125400077; + // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 30525366; @@ -22372,6 +25846,10 @@ message Snapshot { // 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. optional CustomerEncryptionKey snapshot_encryption_key = 43334526; + // Indicates the type of the snapshot. + // Check the SnapshotType enum for the list of possible values. + optional string snapshot_type = 124349653; + // The source disk used to create this snapshot. optional string source_disk = 451753793; @@ -22381,6 +25859,12 @@ 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; + // [Output Only] URL of the resource policy which created this scheduled snapshot. + optional string source_snapshot_schedule_policy = 235756291; + + // [Output Only] ID of the resource policy which created this scheduled snapshot. + optional string source_snapshot_schedule_policy_id = 70489047; + // [Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING. // Check the Status enum for the list of possible values. optional string status = 181260274; @@ -22419,6 +25903,16 @@ message SnapshotList { } +// +message SourceDiskEncryptionKey { + // The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. + optional CustomerEncryptionKey disk_encryption_key = 271660677; + + // 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 + optional string source_disk = 451753793; + +} + // A specification of the parameters to use when creating the instance template from a source instance. message SourceInstanceParams { // Attached disks configuration. If not provided, defaults are applied: 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. @@ -22426,6 +25920,69 @@ message SourceInstanceParams { } +// DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field. +message SourceInstanceProperties { + // KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. + enum KeyRevocationActionType { + // A value indicating that the enum field is not set. + UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0; + + // Default value. This value is unused. + KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106; + + // Indicates user chose no operation. + NONE = 2402104; + + // Indicates user chose to opt for VM shutdown on key revocation. + STOP = 2555906; + + } + + // 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. + optional bool can_ip_forward = 467731324; + + // Whether the instance created from this machine image should be protected against deletion. + optional bool deletion_protection = 458014698; + + // An optional text description for the instances that are created from this machine image. + optional string description = 422937596; + + // An array of disks that are associated with the instances that are created from this machine image. + repeated SavedAttachedDisk disks = 95594102; + + // A list of guest accelerator cards' type and count to use for instances created from this machine image. + repeated AcceleratorConfig guest_accelerators = 463595119; + + // KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. + // Check the KeyRevocationActionType enum for the list of possible values. + optional string key_revocation_action_type = 235941474; + + // Labels to apply to instances that are created from this machine image. + map labels = 500195327; + + // The machine type to use for instances that are created from this machine image. + optional string machine_type = 227711026; + + // 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. + optional Metadata metadata = 86866735; + + // 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. + optional string min_cpu_platform = 242912759; + + // An array of network access configurations for this interface. + repeated NetworkInterface network_interfaces = 52735243; + + // Specifies the scheduling options for the instances that are created from this machine image. + optional Scheduling scheduling = 386688404; + + // 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. + repeated ServiceAccount service_accounts = 277537328; + + // 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. + optional Tags tags = 3552281; + +} + // 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 sslCertificates are used by: - external HTTPS load balancers - SSL proxy load balancers The regionSslCertificates are used by internal HTTPS 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. message SslCertificate { // (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. @@ -22593,6 +26150,33 @@ message SslCertificatesScopedList { } +// +message SslPoliciesAggregatedList { + optional string etag = 3123477; + + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of SslPoliciesScopedList resources. + map items = 100526016; + + // [Output Only] Type of resource. Always compute#sslPolicyAggregatedList for lists of SSL Policies. + 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 SslPoliciesList { // [Output Only] Unique identifier for the resource; defined by the server. @@ -22621,6 +26205,16 @@ message SslPoliciesListAvailableFeaturesResponse { } +// +message SslPoliciesScopedList { + // A list of SslPolicies contained in this scope. + repeated SslPolicy ssl_policies = 209941027; + + // Informational warning which replaces the list of SSL policies when the list is empty. + optional Warning warning = 50704284; + +} + // Represents an SSL Policy resource. Use SSL policies to control the SSL features, such as versions and cipher suites, offered by an HTTPS or SSL Proxy load balancer. For more information, read SSL Policy Concepts. message SslPolicy { // 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. @@ -22690,6 +26284,9 @@ message SslPolicy { // Check the Profile enum for the list of possible values. optional string profile = 227445161; + // [Output Only] URL of the region where the regional SSL policy resides. This field is not applicable to global SSL policies. + optional string region = 138946292; + // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; @@ -22808,20 +26405,22 @@ message StopInstanceRequest { // 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. If the ipv6_type is EXTERNAL then this subnet cannot enable direct path. + // 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. enum Ipv6AccessType { // A value indicating that the enum field is not set. UNDEFINED_IPV6_ACCESS_TYPE = 0; - // VMs on this subnet will be assigned IPv6 addresses that are accesible via the Internet, as well as the VPC network. + // VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network. EXTERNAL = 35607499; - // IPv6 access type not set. Means this subnet hasn't been turned on IPv6 yet. + // VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network. + INTERNAL = 279295677; + UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613; } - // The private IPv6 google access type for the VMs in this subnet. This is an expanded field of enablePrivateV6Access. If both fields are set, privateIpv6GoogleAccess will take priority. This field can be both set at resource creation time and updated using patch. + // This field is for internal use. This field can be both set at resource creation time and updated using patch. enum PrivateIpv6GoogleAccess { // A value indicating that the enum field is not set. UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0; @@ -22854,6 +26453,9 @@ message Subnetwork { // Subnetworks created for Private Service Connect in the producer network. PRIVATE_SERVICE_CONNECT = 48134724; + // Subnetwork used for Regional Internal/External HTTP(S) Load Balancing. + REGIONAL_MANAGED_PROXY = 153049966; + } // The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. 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. @@ -22869,7 +26471,7 @@ message Subnetwork { } - // The stack type for this subnet 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 resource creation time and updated using patch. + // 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. enum StackType { // A value indicating that the enum field is not set. UNDEFINED_STACK_TYPE = 0; @@ -22903,10 +26505,10 @@ message Subnetwork { // An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time. optional string description = 422937596; - // 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 to disable flow logging. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER. + // 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 with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER. optional bool enable_flow_logs = 151544420; - // [Output Only] The range of external IPv6 addresses that are owned by this subnetwork. + // [Output Only] The external IPv6 address range that is assigned to this subnetwork. optional string external_ipv6_prefix = 139299190; // 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. @@ -22918,14 +26520,17 @@ message Subnetwork { // [Output Only] The unique identifier for the resource. This identifier is defined by the server. optional uint64 id = 3355; + // [Output Only] The internal IPv6 address range that is assigned to this subnetwork. + optional string internal_ipv6_prefix = 506270056; + // 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. optional string ip_cidr_range = 98117322; - // 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. If the ipv6_type is EXTERNAL then this subnet cannot enable direct path. + // 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. // Check the Ipv6AccessType enum for the list of possible values. optional string ipv6_access_type = 504658653; - // [Output Only] The range of internal IPv6 addresses that are owned by this subnetwork. + // [Output Only] This field is for internal use. optional string ipv6_cidr_range = 273141258; // [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources. @@ -22943,7 +26548,7 @@ message Subnetwork { // 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. optional bool private_ip_google_access = 421491790; - // The private IPv6 google access type for the VMs in this subnet. This is an expanded field of enablePrivateV6Access. If both fields are set, privateIpv6GoogleAccess will take priority. This field can be both set at resource creation time and updated using patch. + // This field is for internal use. This field can be both set at resource creation time and updated using patch. // Check the PrivateIpv6GoogleAccess enum for the list of possible values. optional string private_ipv6_google_access = 48277006; @@ -22964,7 +26569,7 @@ message Subnetwork { // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; - // The stack type for this subnet 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 resource creation time and updated using patch. + // 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. // Check the StackType enum for the list of possible values. optional string stack_type = 425908881; @@ -23059,13 +26664,13 @@ message SubnetworkLogConfig { // Check the AggregationInterval enum for the list of possible values. optional string aggregation_interval = 174919042; - // 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 to disable flow logging. + // 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. optional bool enable = 311764355; - // Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged. + // 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. optional string filter_expr = 183374428; - // 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, which means half of all collected logs are reported. + // 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. optional float flow_sampling = 530150360; // 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. @@ -23131,6 +26736,28 @@ message Subsetting { } +// A request message for Instances.Suspend. See the method description for details. +message SuspendInstanceRequest { + // Name of the instance resource to suspend. + string instance = 18257045 [(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 Networks.SwitchToCustomMode. See the method description for details. message SwitchToCustomModeNetworkRequest { // Name of the network to be updated. @@ -23362,6 +26989,13 @@ message TargetHttpsProxiesScopedList { } +// +message TargetHttpsProxiesSetCertificateMapRequest { + // URL of the Certificate Map to associate with this TargetHttpsProxy. + optional string certificate_map = 156463796; + +} + // message TargetHttpsProxiesSetQuicOverrideRequest { // QUIC policy for the TargetHttpsProxy resource. @@ -23414,6 +27048,9 @@ message TargetHttpsProxy { // 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. optional string authorization_policy = 33945528; + // 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. + optional string certificate_map = 156463796; + // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 30525366; @@ -23508,7 +27145,7 @@ message TargetHttpsProxyList { // 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. message TargetInstance { - // NAT option controlling how IPs are NAT'ed to the instance. Currently only NO_NAT (default value) is supported. + // 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. enum NatPolicy { // A value indicating that the enum field is not set. UNDEFINED_NAT_POLICY = 0; @@ -23536,7 +27173,7 @@ message TargetInstance { // 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; - // NAT option controlling how IPs are NAT'ed to the instance. Currently only NO_NAT (default value) is supported. + // 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. // Check the NatPolicy enum for the list of possible values. optional string nat_policy = 509780496; @@ -23787,6 +27424,13 @@ message TargetSslProxiesSetBackendServiceRequest { } +// +message TargetSslProxiesSetCertificateMapRequest { + // URL of the Certificate Map to associate with this TargetSslProxy. + optional string certificate_map = 156463796; + +} + // message TargetSslProxiesSetProxyHeaderRequest { // The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed. @@ -23826,6 +27470,9 @@ message TargetSslProxy { } + // 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. + optional string certificate_map = 156463796; + // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 30525366; @@ -23942,6 +27589,9 @@ message TargetTcpProxy { // Check the ProxyHeader enum for the list of possible values. optional string proxy_header = 160374142; + // [Output Only] URL of the region where the regional TCP proxy resides. This field is not applicable to global TCP proxy. + optional string region = 138946292; + // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; @@ -24084,7 +27734,7 @@ message TargetVpnGatewaysScopedList { // message TestFailure { - // The actual output URL evaluated by load balancer containing the scheme, host, path and query parameters. + // The actual output URL evaluated by a load balancer containing the scheme, host, path and query parameters. optional string actual_output_url = 287075458; // Actual HTTP status code for rule with `urlRedirect` calculated by load balancer @@ -24093,7 +27743,7 @@ message TestFailure { // BackendService or BackendBucket returned by load balancer. optional string actual_service = 440379652; - // The expected output URL evaluated by load balancer containing the scheme, host, path and query parameters. + // The expected output URL evaluated by a load balancer containing the scheme, host, path and query parameters. optional string expected_output_url = 433967384; // Expected HTTP status code for rule with `urlRedirect` calculated by load balancer @@ -24220,6 +27870,19 @@ message TestIamPermissionsLicenseRequest { } +// A request message for MachineImages.TestIamPermissions. See the method description for details. +message TestIamPermissionsMachineImageRequest { + // 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]; + +} + // A request message for NetworkEndpointGroups.TestIamPermissions. See the method description for details. message TestIamPermissionsNetworkEndpointGroupRequest { // Project ID for this request. @@ -24236,6 +27899,19 @@ message TestIamPermissionsNetworkEndpointGroupRequest { } +// A request message for NetworkFirewallPolicies.TestIamPermissions. See the method description for details. +message TestIamPermissionsNetworkFirewallPolicyRequest { + // 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]; + +} + // A request message for NodeGroups.TestIamPermissions. See the method description for details. message TestIamPermissionsNodeGroupRequest { // Project ID for this request. @@ -24300,6 +27976,22 @@ message TestIamPermissionsRegionDiskRequest { } +// A request message for RegionNetworkFirewallPolicies.TestIamPermissions. See the method description for details. +message TestIamPermissionsRegionNetworkFirewallPolicyRequest { + // 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 Reservations.TestIamPermissions. See the method description for details. message TestIamPermissionsReservationRequest { // Project ID for this request. @@ -24571,6 +28263,30 @@ message UpdateHealthCheckRequest { // A request message for Instances.Update. See the method description for details. message UpdateInstanceRequest { + // 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // INVALID + // NO_EFFECT + // REFRESH + // RESTART + enum MinimalAction { + // A value indicating that the enum field is not set. + UNDEFINED_MINIMAL_ACTION = 0; + + } + + // 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. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // INVALID + // NO_EFFECT + // REFRESH + // RESTART + enum MostDisruptiveAllowedAction { + // A value indicating that the enum field is not set. + UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0; + + } + // Name of the instance resource to update. string instance = 18257045 [(google.api.field_behavior) = REQUIRED]; @@ -24578,9 +28294,11 @@ message UpdateInstanceRequest { Instance instance_resource = 215988344 [(google.api.field_behavior) = REQUIRED]; // 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. + // Check the MinimalAction enum for the list of possible values. optional string minimal_action = 270567060; // 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. + // Check the MostDisruptiveAllowedAction enum for the list of possible values. optional string most_disruptive_allowed_action = 66103053; // Project ID for this request. @@ -24747,6 +28465,36 @@ message UpdateRegionBackendServiceRequest { } +// A request message for RegionCommitments.Update. See the method description for details. +message UpdateRegionCommitmentRequest { + // Name of the commitment for which auto renew is being updated. + string commitment = 482134805 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + Commitment commitment_resource = 244240888 [(google.api.field_behavior) = REQUIRED]; + + optional string paths = 106438894; + + // 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; + + // update_mask indicates fields to be updated as part of this request. + optional string update_mask = 500079778; + +} + // A request message for RegionHealthChecks.Update. See the method description for details. message UpdateRegionHealthCheckRequest { // Name of the HealthCheck resource to update. @@ -24797,6 +28545,36 @@ message UpdateRegionUrlMapRequest { } +// A request message for Reservations.Update. See the method description for details. +message UpdateReservationRequest { + optional string paths = 106438894; + + // 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 reservation to update. + string reservation = 47530956 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + Reservation reservation_resource = 285030177 [(google.api.field_behavior) = REQUIRED]; + + // Update_mask indicates fields to be updated as part of this request. + optional string update_mask = 500079778; + + // 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 Routers.Update. See the method description for details. message UpdateRouterRequest { // Project ID for this request. @@ -24866,30 +28644,30 @@ message UpdateUrlMapRequest { } -// Represents a URL Map resource. Google 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 GCP load balancers and Traffic Director. * urlMaps are used by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used by internal HTTP(S) load balancers. For a list of supported URL map features by 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 host names 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. +// 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 external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used by internal HTTP(S) 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. message UrlMap { // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 30525366; - // defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions like URL rewrites, header transformations, etc. prior to 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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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 external HTTP(S) 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 additionally specified, advanced routing actions like URL Rewrites, etc. take effect prior to 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 target gRPC proxy that has 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. 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. 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 target gRPC proxy. + // 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. optional HttpRedirectAction default_url_redirect = 359503338; // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; - // 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 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. + // 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. optional string fingerprint = 234678500; - // 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. Note that headerAction is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. optional HttpHeaderAction header_action = 328077352; - // The list of HostRules to use against the URL. + // The list of host rules to use against the URL. repeated HostRule host_rules = 311804832; // [Output Only] The unique identifier for the resource. This identifier is defined by the server. @@ -24910,7 +28688,7 @@ message UrlMap { // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; - // The list of expected URL mapping tests. Request to update this UrlMap will succeed only if all of the test cases pass. You can specify a maximum of 100 tests per UrlMap. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. repeated UrlMapTest tests = 110251553; } @@ -24948,7 +28726,7 @@ message UrlMapTest { // Description of this test case. optional string description = 422937596; - // The expected output URL evaluated by 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 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. + // 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. optional string expected_output_url = 433967384; // 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. @@ -24963,7 +28741,7 @@ message UrlMapTest { // Path portion of the URL. optional string path = 3433509; - // Expected BackendService or BackendBucket resource the given URL should be mapped to. service cannot be set if expectedRedirectResponseCode is set. + // Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. optional string service = 373540533; } @@ -25029,6 +28807,26 @@ message UrlMapsScopedList { // message UrlMapsValidateRequest { + // + enum LoadBalancingSchemes { + // A value indicating that the enum field is not set. + UNDEFINED_LOAD_BALANCING_SCHEMES = 0; + + // Signifies that this will be used for Classic L7 External Load Balancing. + EXTERNAL = 35607499; + + // Signifies that this will be used for Envoy-based L7 External Load Balancing. + EXTERNAL_MANAGED = 512006923; + + // If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inferrence is not possible, EXTERNAL will be used as the default type. + LOAD_BALANCING_SCHEME_UNSPECIFIED = 526507452; + + } + + // Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load Balancer. Other load balancer types are not supported. 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. + // Check the LoadBalancingSchemes enum for the list of possible values. + repeated string load_balancing_schemes = 6308527; + // Content of the UrlMap to be validated. optional UrlMap resource = 195806222; @@ -25042,25 +28840,108 @@ message UrlMapsValidateResponse { // The spec for modifying the path before sending the request to the matched backend service. message UrlRewrite { - // Prior to forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be between 1 and 255 characters. + // 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. optional string host_rewrite = 159819253; - // Prior to forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be between 1 and 1024 characters. + // 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. optional string path_prefix_rewrite = 41186361; } // Subnetwork which the current user has compute.subnetworks.use permission on. message UsableSubnetwork { + // 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. + enum Ipv6AccessType { + // A value indicating that the enum field is not set. + UNDEFINED_IPV6_ACCESS_TYPE = 0; + + // VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network. + EXTERNAL = 35607499; + + // VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network. + INTERNAL = 279295677; + + } + + // The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER. + enum Purpose { + // A value indicating that the enum field is not set. + UNDEFINED_PURPOSE = 0; + + // Subnet reserved for Internal HTTP(S) Load Balancing. + INTERNAL_HTTPS_LOAD_BALANCER = 248748889; + + // Regular user created or automatically created subnet. + PRIVATE = 403485027; + + // Regular user created or automatically created subnet. + PRIVATE_RFC_1918 = 254902107; + + // Subnetworks created for Private Service Connect in the producer network. + PRIVATE_SERVICE_CONNECT = 48134724; + + // Subnetwork used for Regional Internal/External HTTP(S) Load Balancing. + REGIONAL_MANAGED_PROXY = 153049966; + + } + + // The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. 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. + enum Role { + // A value indicating that the enum field is not set. + UNDEFINED_ROLE = 0; + + // The ACTIVE subnet that is currently used. + ACTIVE = 314733318; + + // The BACKUP subnet that could be promoted to ACTIVE. + BACKUP = 341010882; + + } + + // 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. + enum StackType { + // A value indicating that the enum field is not set. + UNDEFINED_STACK_TYPE = 0; + + // New VMs in this subnet can have both IPv4 and IPv6 addresses. + IPV4_IPV6 = 22197249; + + // New VMs in this subnet will only be assigned IPv4 addresses. + IPV4_ONLY = 22373798; + + } + + // [Output Only] The external IPv6 address range that is assigned to this subnetwork. + optional string external_ipv6_prefix = 139299190; + + // [Output Only] The internal IPv6 address range that is assigned to this subnetwork. + optional string internal_ipv6_prefix = 506270056; + // The range of internal addresses that are owned by this subnetwork. optional string ip_cidr_range = 98117322; + // 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. + // Check the Ipv6AccessType enum for the list of possible values. + optional string ipv6_access_type = 504658653; + // Network URL. optional string network = 232872494; + // The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER. + // Check the Purpose enum for the list of possible values. + optional string purpose = 316407070; + + // The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. 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. + // Check the Role enum for the list of possible values. + optional string role = 3506294; + // Secondary IP ranges. repeated UsableSubnetworkSecondaryRange secondary_ip_ranges = 136658915; + // 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. + // Check the StackType enum for the list of possible values. + optional string stack_type = 425908881; + // Subnetwork URL. optional string subnetwork = 307827694; @@ -25160,6 +29041,9 @@ message VmEndpointNatMappingsInterfaceNatMappings { // 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. optional int32 num_total_nat_ports = 299904384; + // Information about mappings provided by rules in this NAT. + repeated VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings rule_mappings = 486192968; + // 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". optional string source_alias_ip_range = 440340952; @@ -25168,6 +29052,25 @@ message VmEndpointNatMappingsInterfaceNatMappings { } +// Contains information of NAT Mappings provided by a NAT Rule. +message VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings { + // 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"]. + repeated string drain_nat_ip_port_ranges = 395440577; + + // 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"]. + repeated string nat_ip_port_ranges = 531830810; + + // 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. + optional int32 num_total_drain_nat_ports = 335532793; + + // 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. + optional int32 num_total_nat_ports = 299904384; + + // Rule number of the NAT Rule. + optional int32 rule_number = 535211500; + +} + // Contains a list of VmEndpointNatMappings. message VmEndpointNatMappingsList { // [Output Only] The unique identifier for the resource. This identifier is defined by the server. @@ -25192,6 +29095,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 stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. + enum StackType { + // A value indicating that the enum field is not set. + UNDEFINED_STACK_TYPE = 0; + + // Enable VPN gateway with both IPv4 and IPv6 protocols. + IPV4_IPV6 = 22197249; + + // Enable VPN gateway with only IPv4 protocol. + IPV4_ONLY = 22373798; + + } + // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 30525366; @@ -25222,6 +29138,10 @@ message VpnGateway { // [Output Only] Server-defined URL for the resource. optional string self_link = 456214797; + // The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. + // Check the StackType enum for the list of possible values. + optional string stack_type = 425908881; + // The list of VPN interfaces associated with this VPN gateway. repeated VpnGatewayVpnGatewayInterface vpn_interfaces = 91842181; @@ -25349,10 +29269,10 @@ message VpnGatewayVpnGatewayInterface { // [Output Only] Numeric identifier for this VPN interface associated with the VPN gateway. optional uint32 id = 3355; - // 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 IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. + // 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. optional string interconnect_attachment = 308135284; - // [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 IPsec-encrypted Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address. + // [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; } @@ -25634,6 +29554,9 @@ message Warning { // 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; @@ -25646,6 +29569,9 @@ message Warning { // 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; @@ -25730,6 +29656,9 @@ message Warnings { // 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; @@ -25742,6 +29671,9 @@ message Warnings { // 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; @@ -25795,15 +29727,15 @@ message Warnings { } -// In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple BackendServices. The volume of traffic for each BackendService is proportional to the weight specified in each WeightedBackendService +// 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 message WeightedBackendService { - // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the loadbalancer applies any relevant headerActions specified as part of this backendServiceWeight. + // 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. optional string backend_service = 306946058; - // 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. Note that headerAction is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. + // 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. optional HttpHeaderAction header_action = 328077352; - // Specifies the fraction of traffic sent to backendService, 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 backendService, subsequent requests will be sent to the same backendService as determined by the BackendService's session affinity policy. The value must be between 0 and 1000 + // 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. optional uint32 weight = 282149496; } @@ -26037,6 +29969,16 @@ service Addresses { option (google.api.method_signature) = "project,region"; } + // Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsAddressRequest) returns (Operation) { + option (google.api.http) = { + body: "region_set_labels_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/addresses/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,region,resource,region_set_labels_request_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + } // The Autoscalers API. @@ -26186,6 +30128,16 @@ service BackendBuckets { option (google.cloud.operation_service) = "GlobalOperations"; } + // Sets the edge security policy for the specified backend bucket. + rpc SetEdgeSecurityPolicy(SetEdgeSecurityPolicyBackendBucketRequest) returns (Operation) { + option (google.api.http) = { + body: "security_policy_reference_resource" + post: "/compute/v1/projects/{project}/global/backendBuckets/{backend_bucket}/setEdgeSecurityPolicy" + }; + option (google.api.method_signature) = "project,backend_bucket,security_policy_reference_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + // Updates the specified BackendBucket resource with the data included in the request. rpc Update(UpdateBackendBucketRequest) returns (Operation) { option (google.api.http) = { @@ -26260,6 +30212,14 @@ service BackendServices { option (google.api.method_signature) = "project,backend_service,resource_group_reference_resource"; } + // Gets the access control policy for a resource. May be empty if no such policy or resource exists. + rpc GetIamPolicy(GetIamPolicyBackendServiceRequest) returns (Policy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/backendServices/{resource}/getIamPolicy" + }; + option (google.api.method_signature) = "project,resource"; + } + // Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview . rpc Insert(InsertBackendServiceRequest) returns (Operation) { option (google.api.http) = { @@ -26288,6 +30248,25 @@ service BackendServices { option (google.cloud.operation_service) = "GlobalOperations"; } + // Sets the edge security policy for the specified backend service. + rpc SetEdgeSecurityPolicy(SetEdgeSecurityPolicyBackendServiceRequest) returns (Operation) { + option (google.api.http) = { + body: "security_policy_reference_resource" + post: "/compute/v1/projects/{project}/global/backendServices/{backend_service}/setEdgeSecurityPolicy" + }; + option (google.api.method_signature) = "project,backend_service,security_policy_reference_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Sets the access control policy on the specified resource. Replaces any existing policy. + rpc SetIamPolicy(SetIamPolicyBackendServiceRequest) returns (Policy) { + option (google.api.http) = { + body: "global_set_policy_request_resource" + post: "/compute/v1/projects/{project}/global/backendServices/{resource}/setIamPolicy" + }; + option (google.api.method_signature) = "project,resource,global_set_policy_request_resource"; + } + // Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview rpc SetSecurityPolicy(SetSecurityPolicyBackendServiceRequest) returns (Operation) { option (google.api.http) = { @@ -26373,7 +30352,7 @@ service Disks { option (google.api.method_signature) = "project"; } - // Creates a snapshot of a specified persistent disk. + // 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. rpc CreateSnapshot(CreateSnapshotDiskRequest) returns (Operation) { option (google.api.http) = { body: "snapshot_resource" @@ -26907,6 +30886,16 @@ service GlobalAddresses { option (google.api.method_signature) = "project"; } + // Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsGlobalAddressRequest) returns (Operation) { + option (google.api.http) = { + body: "global_set_labels_request_resource" + post: "/compute/v1/projects/{project}/global/addresses/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,resource,global_set_labels_request_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + } // The GlobalForwardingRules API. @@ -27444,7 +31433,7 @@ service InstanceGroupManagers { option (google.cloud.operation_service) = "ZoneOperations"; } - // Creates instances with per-instance configs 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. + // 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. rpc CreateInstances(CreateInstancesInstanceGroupManagerRequest) returns (Operation) { option (google.api.http) = { body: "instance_group_managers_create_instances_request_resource" @@ -27473,7 +31462,7 @@ service InstanceGroupManagers { option (google.cloud.operation_service) = "ZoneOperations"; } - // Deletes selected per-instance configs for the managed instance group. + // Deletes selected per-instance configurations for the managed instance group. rpc DeletePerInstanceConfigs(DeletePerInstanceConfigsInstanceGroupManagerRequest) returns (Operation) { option (google.api.http) = { body: "instance_group_managers_delete_per_instance_configs_req_resource" @@ -27517,7 +31506,7 @@ service InstanceGroupManagers { option (google.api.method_signature) = "project,zone,instance_group_manager"; } - // 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. + // 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 in the alpha and beta API and only if the group's `listManagedInstancesResults` field is set to `PAGINATED`. rpc ListManagedInstances(ListManagedInstancesInstanceGroupManagersRequest) returns (InstanceGroupManagersListManagedInstancesResponse) { option (google.api.http) = { post: "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listManagedInstances" @@ -27525,7 +31514,7 @@ service InstanceGroupManagers { option (google.api.method_signature) = "project,zone,instance_group_manager"; } - // Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported. + // Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported. rpc ListPerInstanceConfigs(ListPerInstanceConfigsInstanceGroupManagersRequest) returns (InstanceGroupManagersListPerInstanceConfigsResp) { option (google.api.http) = { post: "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listPerInstanceConfigs" @@ -27543,7 +31532,7 @@ service InstanceGroupManagers { option (google.cloud.operation_service) = "ZoneOperations"; } - // Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch. + // 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. rpc PatchPerInstanceConfigs(PatchPerInstanceConfigsInstanceGroupManagerRequest) returns (Operation) { option (google.api.http) = { body: "instance_group_managers_patch_per_instance_configs_req_resource" @@ -27592,7 +31581,7 @@ service InstanceGroupManagers { option (google.cloud.operation_service) = "ZoneOperations"; } - // Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch. + // 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. rpc UpdatePerInstanceConfigs(UpdatePerInstanceConfigsInstanceGroupManagerRequest) returns (Operation) { option (google.api.http) = { body: "instance_group_managers_update_per_instance_configs_req_resource" @@ -27666,7 +31655,7 @@ service InstanceGroups { option (google.api.method_signature) = "project,zone"; } - // Lists the instances in the specified instance group. The orderBy query parameter is not supported. + // 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. rpc ListInstances(ListInstancesInstanceGroupsRequest) returns (InstanceGroupsListInstances) { option (google.api.http) = { body: "instance_groups_list_instances_request_resource" @@ -27816,7 +31805,7 @@ service Instances { option (google.cloud.operation_service) = "ZoneOperations"; } - // Creates multiple instances. Count specifies the number of instances to create. + // Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs. rpc BulkInsert(BulkInsertInstanceRequest) returns (Operation) { option (google.api.http) = { body: "bulk_insert_instance_resource_resource" @@ -27945,7 +31934,7 @@ service Instances { option (google.cloud.operation_service) = "ZoneOperations"; } - // 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. + // 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. rpc Reset(ResetInstanceRequest) returns (Operation) { option (google.api.http) = { post: "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/reset" @@ -27954,6 +31943,15 @@ service Instances { option (google.cloud.operation_service) = "ZoneOperations"; } + // Resumes an instance that was suspended using the instances().suspend method. + rpc Resume(ResumeInstanceRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/resume" + }; + option (google.api.method_signature) = "project,zone,instance"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + // Sends diagnostic interrupt to the instance. rpc SendDiagnosticInterrupt(SendDiagnosticInterruptInstanceRequest) returns (SendDiagnosticInterruptInstanceResponse) { option (google.api.http) = { @@ -28039,7 +32037,7 @@ service Instances { option (google.cloud.operation_service) = "ZoneOperations"; } - // 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. + // 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. rpc SetScheduling(SetSchedulingInstanceRequest) returns (Operation) { option (google.api.http) = { body: "scheduling_resource" @@ -28079,7 +32077,7 @@ service Instances { option (google.cloud.operation_service) = "ZoneOperations"; } - // Simulates a maintenance event on the instance. + // Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event. rpc SimulateMaintenanceEvent(SimulateMaintenanceEventInstanceRequest) returns (Operation) { option (google.api.http) = { post: "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent" @@ -28116,6 +32114,15 @@ service Instances { option (google.cloud.operation_service) = "ZoneOperations"; } + // 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. + rpc Suspend(SuspendInstanceRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/suspend" + }; + option (google.api.method_signature) = "project,zone,instance"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + // Returns permissions that a caller has on the specified resource. rpc TestIamPermissions(TestIamPermissionsInstanceRequest) returns (TestPermissionsResponse) { option (google.api.http) = { @@ -28239,6 +32246,16 @@ service InterconnectAttachments { option (google.cloud.operation_service) = "RegionOperations"; } + // Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsInterconnectAttachmentRequest) returns (Operation) { + option (google.api.http) = { + body: "region_set_labels_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,region,resource,region_set_labels_request_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + } // The InterconnectLocations API. @@ -28331,6 +32348,16 @@ service Interconnects { option (google.cloud.operation_service) = "GlobalOperations"; } + // Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsInterconnectRequest) returns (Operation) { + option (google.api.http) = { + body: "global_set_labels_request_resource" + post: "/compute/v1/projects/{project}/global/interconnects/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,resource,global_set_labels_request_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + } // The LicenseCodes API. @@ -28434,6 +32461,78 @@ service Licenses { } +// The MachineImages API. +service MachineImages { + 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 machine image. Deleting a machine image is permanent and cannot be undone. + rpc Delete(DeleteMachineImageRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/global/machineImages/{machine_image}" + }; + option (google.api.method_signature) = "project,machine_image"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Returns the specified machine image. Gets a list of available machine images by making a list() request. + rpc Get(GetMachineImageRequest) returns (MachineImage) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/machineImages/{machine_image}" + }; + option (google.api.method_signature) = "project,machine_image"; + } + + // Gets the access control policy for a resource. May be empty if no such policy or resource exists. + rpc GetIamPolicy(GetIamPolicyMachineImageRequest) returns (Policy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/machineImages/{resource}/getIamPolicy" + }; + option (google.api.method_signature) = "project,resource"; + } + + // 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. + rpc Insert(InsertMachineImageRequest) returns (Operation) { + option (google.api.http) = { + body: "machine_image_resource" + post: "/compute/v1/projects/{project}/global/machineImages" + }; + option (google.api.method_signature) = "project,machine_image_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Retrieves a list of machine images that are contained within the specified project. + rpc List(ListMachineImagesRequest) returns (MachineImageList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/machineImages" + }; + option (google.api.method_signature) = "project"; + } + + // Sets the access control policy on the specified resource. Replaces any existing policy. + rpc SetIamPolicy(SetIamPolicyMachineImageRequest) returns (Policy) { + option (google.api.http) = { + body: "global_set_policy_request_resource" + post: "/compute/v1/projects/{project}/global/machineImages/{resource}/setIamPolicy" + }; + option (google.api.method_signature) = "project,resource,global_set_policy_request_resource"; + } + + // Returns permissions that a caller has on the specified resource. + rpc TestIamPermissions(TestIamPermissionsMachineImageRequest) returns (TestPermissionsResponse) { + option (google.api.http) = { + body: "test_permissions_request_resource" + post: "/compute/v1/projects/{project}/global/machineImages/{resource}/testIamPermissions" + }; + option (google.api.method_signature) = "project,resource,test_permissions_request_resource"; + } + +} + // The MachineTypes API. service MachineTypes { option (google.api.default_host) = @@ -28470,6 +32569,62 @@ service MachineTypes { } +// The NetworkEdgeSecurityServices API. +service NetworkEdgeSecurityServices { + 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 the list of all NetworkEdgeSecurityService resources available to the specified project. + rpc AggregatedList(AggregatedListNetworkEdgeSecurityServicesRequest) returns (NetworkEdgeSecurityServiceAggregatedList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/aggregated/networkEdgeSecurityServices" + }; + option (google.api.method_signature) = "project"; + } + + // Deletes the specified service. + rpc Delete(DeleteNetworkEdgeSecurityServiceRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/regions/{region}/networkEdgeSecurityServices/{network_edge_security_service}" + }; + option (google.api.method_signature) = "project,region,network_edge_security_service"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Gets a specified NetworkEdgeSecurityService. + rpc Get(GetNetworkEdgeSecurityServiceRequest) returns (NetworkEdgeSecurityService) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/networkEdgeSecurityServices/{network_edge_security_service}" + }; + option (google.api.method_signature) = "project,region,network_edge_security_service"; + } + + // Creates a new service in the specified project using the data included in the request. + rpc Insert(InsertNetworkEdgeSecurityServiceRequest) returns (Operation) { + option (google.api.http) = { + body: "network_edge_security_service_resource" + post: "/compute/v1/projects/{project}/regions/{region}/networkEdgeSecurityServices" + }; + option (google.api.method_signature) = "project,region,network_edge_security_service_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Patches the specified policy with the data included in the request. + rpc Patch(PatchNetworkEdgeSecurityServiceRequest) returns (Operation) { + option (google.api.http) = { + body: "network_edge_security_service_resource" + patch: "/compute/v1/projects/{project}/regions/{region}/networkEdgeSecurityServices/{network_edge_security_service}" + }; + option (google.api.method_signature) = "project,region,network_edge_security_service,network_edge_security_service_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + +} + // The NetworkEndpointGroups API. service NetworkEndpointGroups { option (google.api.default_host) = @@ -28562,6 +32717,161 @@ service NetworkEndpointGroups { } +// The NetworkFirewallPolicies API. +service NetworkFirewallPolicies { + 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"; + + // Inserts an association for the specified firewall policy. + rpc AddAssociation(AddAssociationNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_association_resource" + post: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addAssociation" + }; + option (google.api.method_signature) = "project,firewall_policy,firewall_policy_association_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Inserts a rule into a firewall policy. + rpc AddRule(AddRuleNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_rule_resource" + post: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addRule" + }; + option (google.api.method_signature) = "project,firewall_policy,firewall_policy_rule_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Copies rules to the specified firewall policy. + rpc CloneRules(CloneRulesNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/cloneRules" + }; + option (google.api.method_signature) = "project,firewall_policy"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Deletes the specified policy. + rpc Delete(DeleteNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" + }; + option (google.api.method_signature) = "project,firewall_policy"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Returns the specified network firewall policy. + rpc Get(GetNetworkFirewallPolicyRequest) returns (FirewallPolicy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" + }; + option (google.api.method_signature) = "project,firewall_policy"; + } + + // Gets an association with the specified name. + rpc GetAssociation(GetAssociationNetworkFirewallPolicyRequest) returns (FirewallPolicyAssociation) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getAssociation" + }; + option (google.api.method_signature) = "project,firewall_policy"; + } + + // Gets the access control policy for a resource. May be empty if no such policy or resource exists. + rpc GetIamPolicy(GetIamPolicyNetworkFirewallPolicyRequest) returns (Policy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/firewallPolicies/{resource}/getIamPolicy" + }; + option (google.api.method_signature) = "project,resource"; + } + + // Gets a rule of the specified priority. + rpc GetRule(GetRuleNetworkFirewallPolicyRequest) returns (FirewallPolicyRule) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getRule" + }; + option (google.api.method_signature) = "project,firewall_policy"; + } + + // Creates a new policy in the specified project using the data included in the request. + rpc Insert(InsertNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_resource" + post: "/compute/v1/projects/{project}/global/firewallPolicies" + }; + option (google.api.method_signature) = "project,firewall_policy_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Lists all the policies that have been configured for the specified project. + rpc List(ListNetworkFirewallPoliciesRequest) returns (FirewallPolicyList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/global/firewallPolicies" + }; + option (google.api.method_signature) = "project"; + } + + // Patches the specified policy with the data included in the request. + rpc Patch(PatchNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_resource" + patch: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" + }; + option (google.api.method_signature) = "project,firewall_policy,firewall_policy_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Patches a rule of the specified priority. + rpc PatchRule(PatchRuleNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_rule_resource" + post: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchRule" + }; + option (google.api.method_signature) = "project,firewall_policy,firewall_policy_rule_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Removes an association for the specified firewall policy. + rpc RemoveAssociation(RemoveAssociationNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeAssociation" + }; + option (google.api.method_signature) = "project,firewall_policy"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Deletes a rule of the specified priority. + rpc RemoveRule(RemoveRuleNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeRule" + }; + option (google.api.method_signature) = "project,firewall_policy"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + + // Sets the access control policy on the specified resource. Replaces any existing policy. + rpc SetIamPolicy(SetIamPolicyNetworkFirewallPolicyRequest) returns (Policy) { + option (google.api.http) = { + body: "global_set_policy_request_resource" + post: "/compute/v1/projects/{project}/global/firewallPolicies/{resource}/setIamPolicy" + }; + option (google.api.method_signature) = "project,resource,global_set_policy_request_resource"; + } + + // Returns permissions that a caller has on the specified resource. + rpc TestIamPermissions(TestIamPermissionsNetworkFirewallPolicyRequest) returns (TestPermissionsResponse) { + option (google.api.http) = { + body: "test_permissions_request_resource" + post: "/compute/v1/projects/{project}/global/firewallPolicies/{resource}/testIamPermissions" + }; + option (google.api.method_signature) = "project,resource,test_permissions_request_resource"; + } + +} + // The Networks API. service Networks { option (google.api.default_host) = @@ -29037,7 +33347,7 @@ service Projects { option (google.cloud.operation_service) = "GlobalOperations"; } - // Returns the specified Project resource. + // 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. rpc Get(GetProjectRequest) returns (Project) { option (google.api.http) = { get: "/compute/v1/projects/{project}" @@ -29080,7 +33390,7 @@ service Projects { option (google.cloud.operation_service) = "GlobalOperations"; } - // Moves an instance and its attached persistent disks from one zone to another. + // 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). rpc MoveInstance(MoveInstanceProjectRequest) returns (Operation) { option (google.api.http) = { body: "instance_move_request_resource" @@ -29343,6 +33653,14 @@ service RegionBackendServices { option (google.api.method_signature) = "project,region,backend_service,resource_group_reference_resource"; } + // Gets the access control policy for a resource. May be empty if no such policy or resource exists. + rpc GetIamPolicy(GetIamPolicyRegionBackendServiceRequest) returns (Policy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy" + }; + option (google.api.method_signature) = "project,region,resource"; + } + // Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview. rpc Insert(InsertRegionBackendServiceRequest) returns (Operation) { option (google.api.http) = { @@ -29371,6 +33689,15 @@ service RegionBackendServices { option (google.cloud.operation_service) = "RegionOperations"; } + // Sets the access control policy on the specified resource. Replaces any existing policy. + rpc SetIamPolicy(SetIamPolicyRegionBackendServiceRequest) returns (Policy) { + option (google.api.http) = { + body: "region_set_policy_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy" + }; + option (google.api.method_signature) = "project,region,resource,region_set_policy_request_resource"; + } + // Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview . rpc Update(UpdateRegionBackendServiceRequest) returns (Operation) { option (google.api.http) = { @@ -29426,6 +33753,16 @@ service RegionCommitments { option (google.api.method_signature) = "project,region"; } + // 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. + rpc Update(UpdateRegionCommitmentRequest) returns (Operation) { + option (google.api.http) = { + body: "commitment_resource" + patch: "/compute/v1/projects/{project}/regions/{region}/commitments/{commitment}" + }; + option (google.api.method_signature) = "project,region,commitment,commitment_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + } // The RegionDiskTypes API. @@ -29475,7 +33812,7 @@ service RegionDisks { option (google.cloud.operation_service) = "RegionOperations"; } - // Creates a snapshot of this regional disk. + // 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. rpc CreateSnapshot(CreateSnapshotRegionDiskRequest) returns (Operation) { option (google.api.http) = { body: "snapshot_resource" @@ -29729,7 +34066,7 @@ service RegionInstanceGroupManagers { option (google.cloud.operation_service) = "RegionOperations"; } - // Creates instances with per-instance configs 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. + // 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. rpc CreateInstances(CreateInstancesRegionInstanceGroupManagerRequest) returns (Operation) { option (google.api.http) = { body: "region_instance_group_managers_create_instances_request_resource" @@ -29758,7 +34095,7 @@ service RegionInstanceGroupManagers { option (google.cloud.operation_service) = "RegionOperations"; } - // Deletes selected per-instance configs for the managed instance group. + // Deletes selected per-instance configurations for the managed instance group. rpc DeletePerInstanceConfigs(DeletePerInstanceConfigsRegionInstanceGroupManagerRequest) returns (Operation) { option (google.api.http) = { body: "region_instance_group_manager_delete_instance_config_req_resource" @@ -29802,7 +34139,7 @@ service RegionInstanceGroupManagers { option (google.api.method_signature) = "project,region,instance_group_manager"; } - // 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. + // 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 in the alpha and beta API and only if the group's `listManagedInstancesResults` field is set to `PAGINATED`. rpc ListManagedInstances(ListManagedInstancesRegionInstanceGroupManagersRequest) returns (RegionInstanceGroupManagersListInstancesResponse) { option (google.api.http) = { post: "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/listManagedInstances" @@ -29810,7 +34147,7 @@ service RegionInstanceGroupManagers { option (google.api.method_signature) = "project,region,instance_group_manager"; } - // Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported. + // Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported. rpc ListPerInstanceConfigs(ListPerInstanceConfigsRegionInstanceGroupManagersRequest) returns (RegionInstanceGroupManagersListInstanceConfigsResp) { option (google.api.http) = { post: "/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/listPerInstanceConfigs" @@ -29828,7 +34165,7 @@ service RegionInstanceGroupManagers { option (google.cloud.operation_service) = "RegionOperations"; } - // Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch. + // 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. rpc PatchPerInstanceConfigs(PatchPerInstanceConfigsRegionInstanceGroupManagerRequest) returns (Operation) { option (google.api.http) = { body: "region_instance_group_manager_patch_instance_config_req_resource" @@ -29877,7 +34214,7 @@ service RegionInstanceGroupManagers { option (google.cloud.operation_service) = "RegionOperations"; } - // Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch. + // 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. rpc UpdatePerInstanceConfigs(UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest) returns (Operation) { option (google.api.http) = { body: "region_instance_group_manager_update_instance_config_req_resource" @@ -30002,6 +34339,169 @@ service RegionNetworkEndpointGroups { } +// The RegionNetworkFirewallPolicies API. +service RegionNetworkFirewallPolicies { + 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"; + + // Inserts an association for the specified network firewall policy. + rpc AddAssociation(AddAssociationRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_association_resource" + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/addAssociation" + }; + option (google.api.method_signature) = "project,region,firewall_policy,firewall_policy_association_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Inserts a rule into a network firewall policy. + rpc AddRule(AddRuleRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_rule_resource" + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/addRule" + }; + option (google.api.method_signature) = "project,region,firewall_policy,firewall_policy_rule_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Copies rules to the specified network firewall policy. + rpc CloneRules(CloneRulesRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/cloneRules" + }; + option (google.api.method_signature) = "project,region,firewall_policy"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Deletes the specified network firewall policy. + rpc Delete(DeleteRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}" + }; + option (google.api.method_signature) = "project,region,firewall_policy"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Returns the specified network firewall policy. + rpc Get(GetRegionNetworkFirewallPolicyRequest) returns (FirewallPolicy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}" + }; + option (google.api.method_signature) = "project,region,firewall_policy"; + } + + // Gets an association with the specified name. + rpc GetAssociation(GetAssociationRegionNetworkFirewallPolicyRequest) returns (FirewallPolicyAssociation) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/getAssociation" + }; + option (google.api.method_signature) = "project,region,firewall_policy"; + } + + // Returns the effective firewalls on a given network. + rpc GetEffectiveFirewalls(GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest) returns (RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls" + }; + option (google.api.method_signature) = "project,region,network"; + } + + // Gets the access control policy for a resource. May be empty if no such policy or resource exists. + rpc GetIamPolicy(GetIamPolicyRegionNetworkFirewallPolicyRequest) returns (Policy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy" + }; + option (google.api.method_signature) = "project,region,resource"; + } + + // Gets a rule of the specified priority. + rpc GetRule(GetRuleRegionNetworkFirewallPolicyRequest) returns (FirewallPolicyRule) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/getRule" + }; + option (google.api.method_signature) = "project,region,firewall_policy"; + } + + // Creates a new network firewall policy in the specified project and region. + rpc Insert(InsertRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_resource" + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies" + }; + option (google.api.method_signature) = "project,region,firewall_policy_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Lists all the network firewall policies that have been configured for the specified project in the given region. + rpc List(ListRegionNetworkFirewallPoliciesRequest) returns (FirewallPolicyList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies" + }; + option (google.api.method_signature) = "project,region"; + } + + // Patches the specified network firewall policy. + rpc Patch(PatchRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_resource" + patch: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}" + }; + option (google.api.method_signature) = "project,region,firewall_policy,firewall_policy_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Patches a rule of the specified priority. + rpc PatchRule(PatchRuleRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "firewall_policy_rule_resource" + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/patchRule" + }; + option (google.api.method_signature) = "project,region,firewall_policy,firewall_policy_rule_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Removes an association for the specified network firewall policy. + rpc RemoveAssociation(RemoveAssociationRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/removeAssociation" + }; + option (google.api.method_signature) = "project,region,firewall_policy"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Deletes a rule of the specified priority. + rpc RemoveRule(RemoveRuleRegionNetworkFirewallPolicyRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/removeRule" + }; + option (google.api.method_signature) = "project,region,firewall_policy"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Sets the access control policy on the specified resource. Replaces any existing policy. + rpc SetIamPolicy(SetIamPolicyRegionNetworkFirewallPolicyRequest) returns (Policy) { + option (google.api.http) = { + body: "region_set_policy_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy" + }; + option (google.api.method_signature) = "project,region,resource,region_set_policy_request_resource"; + } + + // Returns permissions that a caller has on the specified resource. + rpc TestIamPermissions(TestIamPermissionsRegionNetworkFirewallPolicyRequest) returns (TestPermissionsResponse) { + option (google.api.http) = { + body: "test_permissions_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions" + }; + option (google.api.method_signature) = "project,region,resource,test_permissions_request_resource"; + } + +} + // The RegionNotificationEndpoints API. service RegionNotificationEndpoints { option (google.api.default_host) = @@ -30092,6 +34592,62 @@ service RegionOperations { } +// The RegionSecurityPolicies API. +service RegionSecurityPolicies { + 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 policy. + rpc Delete(DeleteRegionSecurityPolicyRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/regions/{region}/securityPolicies/{security_policy}" + }; + option (google.api.method_signature) = "project,region,security_policy"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // List all of the ordered rules present in a single specified policy. + rpc Get(GetRegionSecurityPolicyRequest) returns (SecurityPolicy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/securityPolicies/{security_policy}" + }; + option (google.api.method_signature) = "project,region,security_policy"; + } + + // Creates a new policy in the specified project using the data included in the request. + rpc Insert(InsertRegionSecurityPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "security_policy_resource" + post: "/compute/v1/projects/{project}/regions/{region}/securityPolicies" + }; + option (google.api.method_signature) = "project,region,security_policy_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // List all the policies that have been configured for the specified project and region. + rpc List(ListRegionSecurityPoliciesRequest) returns (SecurityPolicyList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/securityPolicies" + }; + option (google.api.method_signature) = "project,region"; + } + + // Patches the specified policy with the data included in the request. + rpc Patch(PatchRegionSecurityPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "security_policy_resource" + patch: "/compute/v1/projects/{project}/regions/{region}/securityPolicies/{security_policy}" + }; + option (google.api.method_signature) = "project,region,security_policy,security_policy_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + +} + // The RegionSslCertificates API. service RegionSslCertificates { option (google.api.default_host) = @@ -30138,6 +34694,70 @@ service RegionSslCertificates { } +// The RegionSslPolicies API. +service RegionSslPolicies { + 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 SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources. + rpc Delete(DeleteRegionSslPolicyRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}" + }; + option (google.api.method_signature) = "project,region,ssl_policy"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Lists all of the ordered rules present in a single specified policy. + rpc Get(GetRegionSslPolicyRequest) returns (SslPolicy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}" + }; + option (google.api.method_signature) = "project,region,ssl_policy"; + } + + // Creates a new policy in the specified project and region using the data included in the request. + rpc Insert(InsertRegionSslPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "ssl_policy_resource" + post: "/compute/v1/projects/{project}/regions/{region}/sslPolicies" + }; + option (google.api.method_signature) = "project,region,ssl_policy_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Lists all the SSL policies that have been configured for the specified project and region. + rpc List(ListRegionSslPoliciesRequest) returns (SslPoliciesList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/sslPolicies" + }; + option (google.api.method_signature) = "project,region"; + } + + // Lists all features that can be specified in the SSL policy when using custom profile. + rpc ListAvailableFeatures(ListAvailableFeaturesRegionSslPoliciesRequest) returns (SslPoliciesListAvailableFeaturesResponse) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures" + }; + option (google.api.method_signature) = "project,region"; + } + + // Patches the specified SSL policy with the data included in the request. + rpc Patch(PatchRegionSslPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "ssl_policy_resource" + patch: "/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}" + }; + option (google.api.method_signature) = "project,region,ssl_policy,ssl_policy_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + +} + // The RegionTargetHttpProxies API. service RegionTargetHttpProxies { option (google.api.default_host) = @@ -30238,6 +34858,16 @@ service RegionTargetHttpsProxies { option (google.api.method_signature) = "project,region"; } + // 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. + rpc Patch(PatchRegionTargetHttpsProxyRequest) returns (Operation) { + option (google.api.http) = { + body: "target_https_proxy_resource" + patch: "/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}" + }; + option (google.api.method_signature) = "project,region,target_https_proxy,target_https_proxy_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + // Replaces SslCertificates for TargetHttpsProxy. rpc SetSslCertificates(SetSslCertificatesRegionTargetHttpsProxyRequest) returns (Operation) { option (google.api.http) = { @@ -30260,6 +34890,52 @@ service RegionTargetHttpsProxies { } +// The RegionTargetTcpProxies API. +service RegionTargetTcpProxies { + 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 TargetTcpProxy resource. + rpc Delete(DeleteRegionTargetTcpProxyRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/regions/{region}/targetTcpProxies/{target_tcp_proxy}" + }; + option (google.api.method_signature) = "project,region,target_tcp_proxy"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Returns the specified TargetTcpProxy resource. + rpc Get(GetRegionTargetTcpProxyRequest) returns (TargetTcpProxy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/targetTcpProxies/{target_tcp_proxy}" + }; + option (google.api.method_signature) = "project,region,target_tcp_proxy"; + } + + // Creates a TargetTcpProxy resource in the specified project and region using the data included in the request. + rpc Insert(InsertRegionTargetTcpProxyRequest) returns (Operation) { + option (google.api.http) = { + body: "target_tcp_proxy_resource" + post: "/compute/v1/projects/{project}/regions/{region}/targetTcpProxies" + }; + option (google.api.method_signature) = "project,region,target_tcp_proxy_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Retrieves a list of TargetTcpProxy resources available to the specified project in a given region. + rpc List(ListRegionTargetTcpProxiesRequest) returns (TargetTcpProxyList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/targetTcpProxies" + }; + option (google.api.method_signature) = "project,region"; + } + +} + // The RegionUrlMaps API. service RegionUrlMaps { option (google.api.default_host) = @@ -30345,7 +35021,7 @@ service Regions { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Returns the specified Region resource. Gets a list of available regions by making a list() request. + // Returns the specified Region resource. Gets a list of available regions by making a list() request. 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. rpc Get(GetRegionRequest) returns (Region) { option (google.api.http) = { get: "/compute/v1/projects/{project}/regions/{region}" @@ -30353,7 +35029,7 @@ service Regions { option (google.api.method_signature) = "project,region"; } - // Retrieves the list of region resources available to the specified project. + // 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. rpc List(ListRegionsRequest) returns (RegionList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/regions" @@ -30451,6 +35127,16 @@ service Reservations { option (google.api.method_signature) = "project,zone,resource,test_permissions_request_resource"; } + // Update share settings of the reservation. + rpc Update(UpdateReservationRequest) returns (Operation) { + option (google.api.http) = { + body: "reservation_resource" + patch: "/compute/v1/projects/{project}/zones/{zone}/reservations/{reservation}" + }; + option (google.api.method_signature) = "project,zone,reservation,reservation_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + } // The ResourcePolicies API. @@ -30697,6 +35383,14 @@ service SecurityPolicies { option (google.cloud.operation_service) = "GlobalOperations"; } + // Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project. + rpc AggregatedList(AggregatedListSecurityPoliciesRequest) returns (SecurityPoliciesAggregatedList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/aggregated/securityPolicies" + }; + option (google.api.method_signature) = "project"; + } + // Deletes the specified policy. rpc Delete(DeleteSecurityPolicyRequest) returns (Operation) { option (google.api.http) = { @@ -30777,6 +35471,16 @@ service SecurityPolicies { option (google.cloud.operation_service) = "GlobalOperations"; } + // Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsSecurityPolicyRequest) returns (Operation) { + option (google.api.http) = { + body: "global_set_labels_request_resource" + post: "/compute/v1/projects/{project}/global/securityPolicies/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,resource,global_set_labels_request_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + } // The ServiceAttachments API. @@ -30903,6 +35607,16 @@ service Snapshots { option (google.api.method_signature) = "project,resource"; } + // 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. + rpc Insert(InsertSnapshotRequest) returns (Operation) { + option (google.api.http) = { + body: "snapshot_resource" + post: "/compute/v1/projects/{project}/global/snapshots" + }; + option (google.api.method_signature) = "project,snapshot_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + // Retrieves the list of Snapshot resources contained within the specified project. rpc List(ListSnapshotsRequest) returns (SnapshotList) { option (google.api.http) = { @@ -31004,6 +35718,14 @@ 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. + rpc AggregatedList(AggregatedListSslPoliciesRequest) returns (SslPoliciesAggregatedList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/aggregated/sslPolicies" + }; + option (google.api.method_signature) = "project"; + } + // 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. rpc Delete(DeleteSslPolicyRequest) returns (Operation) { option (google.api.http) = { @@ -31369,6 +36091,16 @@ service TargetHttpsProxies { option (google.cloud.operation_service) = "GlobalOperations"; } + // Changes the Certificate Map for TargetHttpsProxy. + rpc SetCertificateMap(SetCertificateMapTargetHttpsProxyRequest) returns (Operation) { + option (google.api.http) = { + body: "target_https_proxies_set_certificate_map_request_resource" + post: "/compute/v1/projects/{project}/global/targetHttpsProxies/{target_https_proxy}/setCertificateMap" + }; + option (google.api.method_signature) = "project,target_https_proxy,target_https_proxies_set_certificate_map_request_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + // Sets the QUIC override policy for TargetHttpsProxy. rpc SetQuicOverride(SetQuicOverrideTargetHttpsProxyRequest) returns (Operation) { option (google.api.http) = { @@ -31632,6 +36364,16 @@ service TargetSslProxies { option (google.cloud.operation_service) = "GlobalOperations"; } + // Changes the Certificate Map for TargetSslProxy. + rpc SetCertificateMap(SetCertificateMapTargetSslProxyRequest) returns (Operation) { + option (google.api.http) = { + body: "target_ssl_proxies_set_certificate_map_request_resource" + post: "/compute/v1/projects/{project}/global/targetSslProxies/{target_ssl_proxy}/setCertificateMap" + }; + option (google.api.method_signature) = "project,target_ssl_proxy,target_ssl_proxies_set_certificate_map_request_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + // Changes the ProxyHeaderType for TargetSslProxy. rpc SetProxyHeader(SetProxyHeaderTargetSslProxyRequest) returns (Operation) { option (google.api.http) = { @@ -31782,6 +36524,16 @@ service TargetVpnGateways { option (google.api.method_signature) = "project,region"; } + // Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsTargetVpnGatewayRequest) returns (Operation) { + option (google.api.http) = { + body: "region_set_labels_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,region,resource,region_set_labels_request_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + } // The UrlMaps API. @@ -32010,6 +36762,16 @@ service VpnTunnels { option (google.api.method_signature) = "project,region"; } + // Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsVpnTunnelRequest) returns (Operation) { + option (google.api.http) = { + body: "region_set_labels_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,region,resource,region_set_labels_request_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + } // The ZoneOperations API. diff --git a/google/cloud/compute/v1/compute.v1.json b/google/cloud/compute/v1/compute.v1.json index 8ca2c2b54..16d4c49c1 100644 --- a/google/cloud/compute/v1/compute.v1.json +++ b/google/cloud/compute/v1/compute.v1.json @@ -1,28650 +1,32263 @@ { - "version": "v1", + "title": "Compute Engine API", "ownerName": "Google", - "description": "Creates and runs virtual machines on Google Cloud Platform. ", - "revision": "20211004", - "resources": { - "networks": { - "methods": { - "updatePeering": { - "request": { - "$ref": "NetworksUpdatePeeringRequest" - }, - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/networks/{network}/updatePeering", - "parameters": { - "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])?))", - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request." - }, - "network": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the network resource which the updated peering is belonging to." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "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.", - "httpMethod": "PATCH", - "parameterOrder": [ - "project", - "network" + "batchPath": "batch/compute/v1", + "schemas": { + "InstanceProperties": { + "properties": { + "privateIpv6GoogleAccess": { + "type": "string", + "enum": [ + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", + "INHERIT_FROM_SUBNETWORK" ], - "id": "compute.networks.updatePeering", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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." ], - "flatPath": "projects/{project}/global/networks/{network}/updatePeering" + "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." }, - "switchToCustomMode": { - "parameters": { - "project": { - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "network": { - "required": true, - "description": "Name of the network to be updated.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "network" - ], - "id": "compute.networks.switchToCustomMode", - "path": "projects/{project}/global/networks/{network}/switchToCustomMode", - "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode", - "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.", - "httpMethod": "POST", - "response": { - "$ref": "Operation" + "guestAccelerators": { + "description": "A list of guest accelerator cards' type and count to use for instances created from these properties.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" } }, - "patch": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/networks/{network}", - "id": "compute.networks.patch", - "httpMethod": "PATCH", - "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.", - "path": "projects/{project}/global/networks/{network}", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "network" - ], - "request": { - "$ref": "Network" - }, - "parameters": { - "network": { - "type": "string", - "required": true, - "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" - }, - "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, - "description": "Project ID for this request.", - "type": "string" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } + "confidentialInstanceConfig": { + "$ref": "ConfidentialInstanceConfig", + "description": "Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet." + }, + "labels": { + "type": "object", + "description": "Labels to apply to instances that are created from these properties.", + "additionalProperties": { + "type": "string" } }, - "delete": { - "id": "compute.networks.delete", - "httpMethod": "DELETE", - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "network": { - "type": "string", - "required": true, - "description": "Name of the network to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "type": "string" - } + "canIpForward": { + "type": "boolean", + "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." + }, + "resourceManagerTags": { + "type": "object", + "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.", + "additionalProperties": { + "type": "string" + } + }, + "scheduling": { + "$ref": "Scheduling", + "description": "Specifies the scheduling options for the instances that are created from these properties." + }, + "shieldedInstanceConfig": { + "$ref": "ShieldedInstanceConfig", + "description": "Note that for MachineImage, this is not supported yet." + }, + "machineType": { + "description": "The machine type to use for instances that are created from these properties.", + "annotations": { + "required": [ + "compute.instanceTemplates.insert" + ] }, - "flatPath": "projects/{project}/global/networks/{network}", - "parameterOrder": [ - "project", - "network" + "type": "string" + }, + "advancedMachineFeatures": { + "$ref": "AdvancedMachineFeatures", + "description": "Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet." + }, + "keyRevocationActionType": { + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." ], - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/networks/{network}", - "description": "Deletes the specified network.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string", + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" ] }, - "removePeering": { - "parameterOrder": [ - "project", - "network" - ], - "request": { - "$ref": "NetworksRemovePeeringRequest" + "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" + }, + "tags": { + "$ref": "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." + }, + "networkInterfaces": { + "description": "An array of network access configurations for this interface.", + "items": { + "$ref": "NetworkInterface" }, - "response": { - "$ref": "Operation" + "type": "array" + }, + "networkPerformanceConfig": { + "$ref": "NetworkPerformanceConfig", + "description": "Note that for MachineImage, this is not supported yet." + }, + "description": { + "description": "An optional text description for the instances that are created from these properties.", + "type": "string" + }, + "reservationAffinity": { + "description": "Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet.", + "$ref": "ReservationAffinity" + }, + "disks": { + "items": { + "$ref": "AttachedDisk" }, - "httpMethod": "POST", - "flatPath": "projects/{project}/global/networks/{network}/removePeering", - "id": "compute.networks.removePeering", - "description": "Removes a peering from the specified network.", - "path": "projects/{project}/global/networks/{network}/removePeering", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "network": { - "required": true, - "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}", - "type": "string", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." - } + "description": "An array of disks that are associated with the instances that are created from these properties.", + "type": "array" + }, + "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" + }, + "resourcePolicies": { + "type": "array", + "description": "Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet.", + "items": { + "type": "string" } }, - "list": { - "path": "projects/{project}/global/networks", - "httpMethod": "GET", - "flatPath": "projects/{project}/global/networks", - "id": "compute.networks.list", - "parameterOrder": [ - "project" - ], - "parameters": { - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "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" - }, - "maxResults": { - "default": "500", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "type": "integer", - "minimum": "0" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - } - }, - "response": { - "$ref": "NetworkList" + "serviceAccounts": { + "type": "array", + "items": { + "$ref": "ServiceAccount" }, - "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." + "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." + } + }, + "id": "InstanceProperties", + "type": "object" + }, + "LicenseResourceCommitment": { + "type": "object", + "id": "LicenseResourceCommitment", + "properties": { + "coresPerLicense": { + "type": "string", + "description": "Specifies the core range of the instance for which this license applies." }, - "insert": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "amount": { + "description": "The number of licenses purchased.", + "type": "string", + "format": "int64" + }, + "license": { + "description": "Any applicable license URI.", + "type": "string" + } + }, + "description": "Commitment for a particular license resource." + }, + "RouterInterface": { + "id": "RouterInterface", + "properties": { + "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" + }, + "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", + "enum": [ + "MANAGED_BY_ATTACHMENT", + "MANAGED_BY_USER" ], - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "Network" - }, - "httpMethod": "POST", - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "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." + ] + }, + "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" + }, + "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 virtual machine instance.", + "type": "string" + }, + "name": { + "type": "string", + "annotations": { + "required": [ + "compute.routers.insert" + ] }, - "flatPath": "projects/{project}/global/networks", - "id": "compute.networks.insert", - "parameterOrder": [ - "project" + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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." + }, + "privateIpAddress": { + "type": "string", + "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." + }, + "ipRange": { + "type": "string", + "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." + }, + "linkedVpnTunnel": { + "type": "string", + "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 virtual machine instance." + } + }, + "type": "object" + }, + "SSLHealthCheck": { + "properties": { + "portName": { + "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "type": "string" + }, + "proxyHeader": { + "enum": [ + "NONE", + "PROXY_V1" ], - "path": "projects/{project}/global/networks", - "description": "Creates a network in the specified project using the data included in the request." + "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": [ + "", + "" + ] }, - "listPeeringRoutes": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "port": { + "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "format": "int32", + "type": "integer" + }, + "portSpecification": { + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" ], - "description": "Lists the peering routes exchanged over peering connection.", - "path": "projects/{project}/global/networks/{network}/listPeeringRoutes", - "parameters": { - "peeringName": { - "type": "string", - "description": "The response will show routes exchanged over the given peering connection.", - "location": "query" - }, - "maxResults": { - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "type": "integer", - "location": "query", - "default": "500" - }, - "region": { - "type": "string", - "location": "query", - "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "network": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "Name of the network for this request." - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "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" - }, - "direction": { - "location": "query", + "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields.", + "type": "string", + "enumDescriptions": [ + "The port number in port is used for health checking.", + "The portName is used for health checking.", + "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + ] + }, + "response": { + "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.", + "type": "string" + }, + "request": { + "description": "The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.", + "type": "string" + } + }, + "id": "SSLHealthCheck", + "type": "object" + }, + "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" + } + }, + "id": "SubnetworksExpandIpCidrRangeRequest" + }, + "RouteList": { + "properties": { + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#routeList" + }, + "items": { + "items": { + "$ref": "Route" + }, + "description": "A list of Route resources.", + "type": "array" + }, + "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": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" + }, + "message": { "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + }, + "code": { "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" ], - "description": "The direction of the exchanged routes.", + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "enumDescriptions": [ - "For routes exported from peer network.", - "For routes exported from local network." - ] - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" } }, - "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes", - "id": "compute.networks.listPeeringRoutes", - "parameterOrder": [ - "project", - "network" - ], - "httpMethod": "GET", - "response": { - "$ref": "ExchangedPeeringRoutesList" + "type": "object" + } + }, + "id": "RouteList", + "type": "object", + "description": "Contains a list of Route resources." + }, + "NodeTemplateNodeTypeFlexibility": { + "id": "NodeTemplateNodeTypeFlexibility", + "type": "object", + "properties": { + "localSsd": { + "type": "string" + }, + "cpus": { + "type": "string" + }, + "memory": { + "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" } + } + } + }, + "VpnGatewayStatusHighAvailabilityRequirementState": { + "properties": { + "state": { + "enum": [ + "CONNECTION_REDUNDANCY_MET", + "CONNECTION_REDUNDANCY_NOT_MET" + ], + "description": "Indicates the high availability requirement state for the VPN connection. Valid values are CONNECTION_REDUNDANCY_MET, CONNECTION_REDUNDANCY_NOT_MET.", + "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" + ], + "type": "string" }, - "addPeering": { - "response": { - "$ref": "Operation" - }, - "id": "compute.networks.addPeering", - "path": "projects/{project}/global/networks/{network}/addPeering", - "request": { - "$ref": "NetworksAddPeeringRequest" - }, - "flatPath": "projects/{project}/global/networks/{network}/addPeering", - "parameterOrder": [ - "project", - "network" + "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", + "enum": [ + "INCOMPLETE_TUNNELS_COVERAGE" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enumDescriptions": [ + "" + ] + } + }, + "description": "Describes the high availability requirement state for the VPN connection between this Cloud VPN gateway and a peer gateway.", + "type": "object", + "id": "VpnGatewayStatusHighAvailabilityRequirementState" + }, + "Scheduling": { + "description": "Sets the scheduling options for an Instance.", + "type": "object", + "properties": { + "minNodeCpus": { + "type": "integer", + "format": "int32", + "description": "The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node." + }, + "provisioningModel": { + "type": "string", + "enum": [ + "SPOT", + "STANDARD" ], - "httpMethod": "POST", - "description": "Adds a peering to the specified network.", - "parameters": { - "network": { - "type": "string", - "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 - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - } + "enumDescriptions": [ + "Heavily discounted, no guaranteed runtime.", + "Standard provisioning with user controlled runtime, no discounts." + ], + "description": "Specifies the provisioning model of the instance." }, - "get": { - "id": "compute.networks.get", - "flatPath": "projects/{project}/global/networks/{network}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "instanceTerminationAction": { + "enumDescriptions": [ + "Delete the VM.", + "Default value. This value is unused.", + "Stop the VM without storing in-memory content. default action." ], - "parameterOrder": [ - "project", - "network" + "description": "Specifies the termination action for the instance.", + "enum": [ + "DELETE", + "INSTANCE_TERMINATION_ACTION_UNSPECIFIED", + "STOP" ], - "httpMethod": "GET", - "response": { - "$ref": "Network" - }, - "parameters": { - "network": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the network to return.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path" - } - }, - "path": "projects/{project}/global/networks/{network}", - "description": "Returns the specified network. Gets a list of available networks by making a list() request." + "type": "string" }, - "getEffectiveFirewalls": { - "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", - "id": "compute.networks.getEffectiveFirewalls", - "response": { - "$ref": "NetworksGetEffectiveFirewallsResponse" - }, - "parameters": { - "network": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "Name of the network for this request.", - "required": true, - "location": "path" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "required": true - } - }, - "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", - "description": "Returns the effective firewalls on a given network.", - "parameterOrder": [ - "project", - "network" + "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" + }, + "automaticRestart": { + "type": "boolean", + "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." + }, + "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" + }, + "onHostMaintenance": { + "enum": [ + "MIGRATE", + "TERMINATE" ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string", + "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.", + "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." ] + }, + "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" + } } - } + }, + "id": "Scheduling" }, - "nodeTemplates": { - "methods": { - "delete": { - "response": { - "$ref": "Operation" + "CommitmentAggregatedList": { + "id": "CommitmentAggregatedList", + "type": "object", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "httpMethod": "DELETE", - "id": "compute.nodeTemplates.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "region", - "nodeTemplate" - ], - "parameters": { - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "The name of the region for this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", + "type": "array" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of commitments.", + "$ref": "CommitmentsScopedList" + }, + "description": "A list of CommitmentsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#commitmentAggregatedList", + "description": "[Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.", + "type": "string" + }, + "warning": { + "type": "object", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "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}", - "type": "string", - "location": "path", - "required": true + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } }, - "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])?))", + "code": { "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } }, - "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "description": "Deletes the specified NodeTemplate resource." + "description": "[Output Only] Informational warning message." }, - "aggregatedList": { - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "NodeTemplateAggregatedList" - }, - "parameters": { - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "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" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "project": { - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "maxResults": { - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500", - "format": "uint32", - "location": "query" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - } - }, - "flatPath": "projects/{project}/aggregated/nodeTemplates", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/aggregated/nodeTemplates", - "description": "Retrieves an aggregated list of node templates.", - "id": "compute.nodeTemplates.aggregatedList" + "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" + } + } + }, + "AcceleratorType": { + "properties": { + "kind": { + "default": "compute#acceleratorType", + "description": "[Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.", + "type": "string" }, - "testIamPermissions": { - "response": { - "$ref": "TestPermissionsResponse" - }, - "httpMethod": "POST", - "request": { - "$ref": "TestPermissionsRequest" + "name": { + "type": "string", + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "maximumCardsPerInstance": { + "format": "int32", + "type": "integer", + "description": "[Output Only] Maximum number of accelerator cards allowed per instance." + }, + "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" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined, fully qualified URL for this resource." + }, + "description": { + "description": "[Output Only] An optional textual description of the resource.", + "type": "string" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this accelerator type." + } + }, + "type": "object", + "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.", + "id": "AcceleratorType" + }, + "InstanceGroupManagerAggregatedList": { + "id": "InstanceGroupManagerAggregatedList", + "properties": { + "items": { + "additionalProperties": { + "description": "[Output Only] The name of the scope that contains this set of managed instance groups.", + "$ref": "InstanceGroupManagersScopedList" }, - "parameters": { - "resource": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "type": "string", - "required": true + "type": "object", + "description": "A list of InstanceGroupManagersScopedList resources." + }, + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerAggregatedList for an aggregated list of managed instance groups.", + "type": "string", + "default": "compute#instanceGroupManagerAggregatedList" + }, + "warning": { + "properties": { + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the region for this request.", + "code": { "type": "string", - "location": "path", - "required": true + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "description": "Project ID for this request." + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" } }, - "id": "compute.nodeTemplates.testIamPermissions", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource." + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "list": { - "response": { - "$ref": "NodeTemplateList" + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "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" + }, + "unreachables": { + "type": "array", + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "region" - ], - "flatPath": "projects/{project}/regions/{region}/nodeTemplates", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "description": "Retrieves a list of node templates available to the specified project.", - "path": "projects/{project}/regions/{region}/nodeTemplates", - "id": "compute.nodeTemplates.list", - "parameters": { - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." - }, - "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" - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "required": true, - "description": "The name of the region for this request." - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "maxResults": { - "location": "query", - "type": "integer", - "format": "uint32", - "minimum": "0", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - } + "description": "[Output Only] Unreachable resources." + } + }, + "type": "object" + }, + "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. ", + "properties": { + "kind": { + "default": "compute#license", + "description": "[Output Only] Type of resource. Always compute#license for licenses.", + "type": "string" + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "chargesUseFee": { + "type": "boolean", + "description": "[Output Only] Deprecated. This field no longer reflects whether a license charges a usage fee." + }, + "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" + }, + "licenseCode": { + "description": "[Output Only] The unique code used to attach this license to images, snapshots, and disks.", + "format": "uint64", + "type": "string" + }, + "resourceRequirements": { + "$ref": "LicenseResourceRequirements" + }, + "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])?", + "type": "string", + "annotations": { + "required": [ + "compute.images.insert" + ] } }, - "setIamPolicy": { - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "description": "Project ID for this request." + "id": { + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + } + }, + "type": "object" + }, + "TargetVpnGatewayAggregatedList": { + "properties": { + "items": { + "type": "object", + "description": "A list of TargetVpnGateway resources.", + "additionalProperties": { + "$ref": "TargetVpnGatewaysScopedList", + "description": "[Output Only] Name of the scope containing this set of target VPN gateways." + } + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", + "type": "string", + "default": "compute#targetVpnGatewayAggregatedList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "type": "array" }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "description": "The name of the region for this request.", + "code": { "type": "string", - "required": true + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "resource": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true, - "description": "Name or id of the resource for this request." + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" } + } + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "request": { - "$ref": "RegionSetPolicyRequest" + "type": "array" + } + }, + "id": "TargetVpnGatewayAggregatedList", + "type": "object" + }, + "HealthCheckLogConfig": { + "id": "HealthCheckLogConfig", + "description": "Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver.", + "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" + } + }, + "type": "object" + }, + "InstanceGroupsRemoveInstancesRequest": { + "id": "InstanceGroupsRemoveInstancesRequest", + "type": "object", + "properties": { + "instances": { + "items": { + "$ref": "InstanceReference" }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "httpMethod": "POST", - "id": "compute.nodeTemplates.setIamPolicy", - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", - "response": { - "$ref": "Policy" - }, - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." - }, - "getIamPolicy": { - "parameters": { - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the region for this request.", - "location": "path", - "required": true - }, - "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])?))", - "type": "string", - "description": "Project ID for this request.", - "required": true, - "location": "path" - }, - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - } - }, - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "Policy" - }, - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", - "id": "compute.nodeTemplates.getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", - "parameterOrder": [ - "project", - "region", - "resource" - ] - }, - "insert": { - "id": "compute.nodeTemplates.insert", - "response": { - "$ref": "Operation" - }, - "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.", - "path": "projects/{project}/regions/{region}/nodeTemplates", - "parameterOrder": [ - "project", - "region" - ], - "flatPath": "projects/{project}/regions/{region}/nodeTemplates", - "parameters": { - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "The name of the region for this request." - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string" - } - }, - "request": { - "$ref": "NodeTemplate" - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "get": { - "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.", - "response": { - "$ref": "NodeTemplate" - }, - "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "id": "compute.nodeTemplates.get", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "parameters": { - "nodeTemplate": { - "required": true, - "description": "Name of the node template to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path" - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the region for this request.", - "type": "string", - "location": "path", - "required": true - } - }, - "httpMethod": "GET", - "parameterOrder": [ - "project", - "region", - "nodeTemplate" - ] + "type": "array", + "description": "The list of instances to remove from the instance group." } } }, - "resourcePolicies": { - "methods": { - "setIamPolicy": { - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "parameters": { - "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}", - "required": true, - "location": "path", + "TargetHttpsProxiesScopedList": { + "id": "TargetHttpsProxiesScopedList", + "type": "object", + "properties": { + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "The name of the region for this request.", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string" }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } - }, - "id": "compute.resourcePolicies.setIamPolicy", - "httpMethod": "POST", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + } }, - "testIamPermissions": { - "parameterOrder": [ - "project", - "region", - "resource" - ], - "description": "Returns permissions that a caller has on the specified resource.", - "httpMethod": "POST", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, - "id": "compute.resourcePolicies.testIamPermissions", - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", - "parameters": { - "region": { - "location": "path", - "type": "string", - "description": "The name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "resource": { - "required": true, - "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}", - "type": "string", - "location": "path" - } + "targetHttpsProxies": { + "type": "array", + "description": "A list of TargetHttpsProxies contained in this scope.", + "items": { + "$ref": "TargetHttpsProxy" } + } + } + }, + "VpnGatewayVpnGatewayInterface": { + "description": "A VPN gateway interface.", + "properties": { + "id": { + "description": "[Output Only] Numeric identifier for this VPN interface associated with the VPN gateway.", + "type": "integer", + "format": "uint32" }, - "getIamPolicy": { - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "optionsRequestedPolicyVersion": { - "location": "query", - "description": "Requested IAM Policy version.", - "type": "integer", - "format": "int32" - }, - "resource": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request." - }, - "region": { - "location": "path", - "description": "The name of the region for this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "id": "compute.resourcePolicies.getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "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" }, - "insert": { - "httpMethod": "POST", - "parameters": { - "region": { - "required": true, - "type": "string", - "location": "path", - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } - }, - "flatPath": "projects/{project}/regions/{region}/resourcePolicies", - "request": { - "$ref": "ResourcePolicy" - }, - "description": "Creates a new resource policy.", - "response": { - "$ref": "Operation" - }, - "id": "compute.resourcePolicies.insert", - "path": "projects/{project}/regions/{region}/resourcePolicies", - "parameterOrder": [ - "project", - "region" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "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" + } + }, + "id": "VpnGatewayVpnGatewayInterface", + "type": "object" + }, + "RouterStatusResponse": { + "id": "RouterStatusResponse", + "properties": { + "kind": { + "default": "compute#routerStatusResponse", + "description": "Type of resource.", + "type": "string" }, - "get": { - "parameterOrder": [ - "project", - "region", - "resourcePolicy" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "description": "Retrieves all information of the specified resource policy.", - "id": "compute.resourcePolicies.get", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "response": { - "$ref": "ResourcePolicy" - }, - "httpMethod": "GET", - "parameters": { - "resourcePolicy": { - "type": "string", - "required": true, - "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" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path" - }, - "region": { - "type": "string", - "required": true, - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path" - } - } + "result": { + "$ref": "RouterStatus" + } + }, + "type": "object" + }, + "BackendServiceCdnPolicyNegativeCachingPolicy": { + "id": "BackendServiceCdnPolicyNegativeCachingPolicy", + "properties": { + "code": { + "type": "integer", + "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.", + "format": "int32" }, - "delete": { - "id": "compute.resourcePolicies.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified resource policy.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "parameterOrder": [ - "project", - "region", - "resourcePolicy" - ], - "httpMethod": "DELETE", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "response": { - "$ref": "Operation" - }, - "parameters": { - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path", - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - }, - "resourcePolicy": { - "description": "Name of the resource policy to delete.", - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - } + "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.", + "format": "int32", + "type": "integer" + } + }, + "description": "Specify CDN TTLs for response error codes.", + "type": "object" + }, + "InstanceGroupManagerActionsSummary": { + "properties": { + "creating": { + "type": "integer", + "format": "int32", + "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." }, - "list": { - "flatPath": "projects/{project}/regions/{region}/resourcePolicies", - "httpMethod": "GET", - "path": "projects/{project}/regions/{region}/resourcePolicies", - "description": "A list all the resource policies that have been configured for the specified project in specified region.", - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "ResourcePolicyList" + "stopping": { + "format": "int32", + "type": "integer", + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped." + }, + "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": { + "format": "int32", + "type": "integer", + "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." + }, + "starting": { + "format": "int32", + "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" + }, + "restarting": { + "format": "int32", + "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" + }, + "recreating": { + "type": "integer", + "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.", + "format": "int32" + }, + "abandoning": { + "format": "int32", + "type": "integer", + "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." + }, + "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" + }, + "none": { + "type": "integer", + "format": "int32", + "description": "[Output Only] The number of instances in the managed instance group that are running and have no scheduled actions." + }, + "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.", + "format": "int32", + "type": "integer" + }, + "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" + }, + "suspending": { + "format": "int32", + "type": "integer", + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended." + } + }, + "id": "InstanceGroupManagerActionsSummary", + "type": "object" + }, + "Reference": { + "id": "Reference", + "description": "Represents a reference to a resource.", + "properties": { + "target": { + "type": "string", + "description": "URL of the resource to which this reference points." + }, + "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" + }, + "kind": { + "type": "string", + "default": "compute#reference", + "description": "[Output Only] Type of the resource. Always compute#reference for references." + } + }, + "type": "object" + }, + "CommitmentList": { + "properties": { + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#commitmentList for lists of commitments.", + "default": "compute#commitmentList" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "description": "A list of Commitment resources.", + "items": { + "$ref": "Commitment" }, - "id": "compute.resourcePolicies.list", - "parameters": { - "pageToken": { - "location": "query", + "type": "array" + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "location": "query", - "default": "500", - "type": "integer", - "format": "uint32", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "region": { - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "location": "path" + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + } }, - "aggregatedList": { - "path": "projects/{project}/aggregated/resourcePolicies", - "response": { - "$ref": "ResourcePolicyAggregatedList" - }, - "description": "Retrieves an aggregated list of resource policies.", - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "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.", - "type": "boolean", - "location": "query" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "includeAllScopes": { - "location": "query", - "type": "boolean", - "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." - }, - "maxResults": { - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "minimum": "0", - "type": "integer", - "default": "500" - } - }, - "flatPath": "projects/{project}/aggregated/resourcePolicies", - "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" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + } + }, + "description": "Contains a list of Commitment resources.", + "id": "CommitmentList", + "type": "object" + }, + "HealthStatus": { + "id": "HealthStatus", + "type": "object", + "properties": { + "ipAddress": { + "type": "string", + "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." + }, + "forwardingRuleIp": { + "description": "A forwarding rule IP address assigned to this instance.", + "type": "string" + }, + "healthState": { + "enum": [ + "HEALTHY", + "UNHEALTHY" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enumDescriptions": [ + "", + "" ], - "id": "compute.resourcePolicies.aggregatedList", - "httpMethod": "GET" + "description": "Health state of the instance.", + "type": "string" + }, + "instance": { + "type": "string", + "description": "URL of the instance resource." + }, + "annotations": { + "type": "object", + "description": "Metadata defined as annotations for network endpoint.", + "additionalProperties": { + "type": "string" + } + }, + "port": { + "description": "The named port of the instance group, not necessarily the port that is health-checked.", + "type": "integer", + "format": "int32" + }, + "forwardingRule": { + "description": "URL of the forwarding rule associated with the health status of the instance.", + "type": "string" + }, + "weightError": { + "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." + ], + "type": "string", + "enum": [ + "INVALID_WEIGHT", + "MISSING_WEIGHT", + "UNAVAILABLE_WEIGHT", + "WEIGHT_NONE" + ] + }, + "weight": { + "type": "string" } } }, - "healthChecks": { - "methods": { - "aggregatedList": { - "parameters": { - "maxResults": { - "minimum": "0", - "format": "uint32", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "type": "integer" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "project": { - "description": "Name of the project scoping this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "includeAllScopes": { - "type": "boolean", - "location": "query", - "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." - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - } - }, - "flatPath": "projects/{project}/aggregated/healthChecks", - "httpMethod": "GET", - "parameterOrder": [ - "project" + "HTTPHealthCheck": { + "properties": { + "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": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.", - "id": "compute.healthChecks.aggregatedList", - "path": "projects/{project}/aggregated/healthChecks", - "response": { - "$ref": "HealthChecksAggregatedList" - }, - "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" ] }, - "insert": { - "id": "compute.healthChecks.insert", - "parameterOrder": [ - "project" - ], - "httpMethod": "POST", - "request": { - "$ref": "HealthCheck" - }, - "description": "Creates a HealthCheck resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/healthChecks", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/healthChecks", - "parameters": { - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - } + "host": { + "type": "string", + "description": "The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used." }, - "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "portName": { + "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "type": "string" + }, + "requestPath": { + "type": "string", + "description": "The request path of the HTTP health check request. The default value is /." + }, + "portSpecification": { + "enumDescriptions": [ + "The port number in port is used for health checking.", + "The portName is used for health checking.", + "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." ], - "parameterOrder": [ - "project", - "healthCheck" + "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" ], - "path": "projects/{project}/global/healthChecks/{healthCheck}", - "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", - "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", - "response": { - "$ref": "HealthCheck" - }, - "id": "compute.healthChecks.get", - "httpMethod": "GET", - "parameters": { - "healthCheck": { - "required": true, - "location": "path", - "description": "Name of the HealthCheck resource to return.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "required": true - } - } + "type": "string" }, - "list": { - "id": "compute.healthChecks.list", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/global/healthChecks", - "parameters": { - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "maxResults": { - "location": "query", - "type": "integer", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - } - }, - "httpMethod": "GET", - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "HealthCheckList" - }, - "path": "projects/{project}/global/healthChecks", - "description": "Retrieves the list of HealthCheck resources available to the specified project." + "port": { + "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.", + "format": "int32", + "type": "integer" }, - "patch": { - "parameters": { - "healthCheck": { - "location": "path", - "description": "Name of the HealthCheck resource to patch.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - } - }, - "path": "projects/{project}/global/healthChecks/{healthCheck}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", - "response": { - "$ref": "Operation" - }, - "id": "compute.healthChecks.patch", - "request": { - "$ref": "HealthCheck" - }, - "parameterOrder": [ - "project", - "healthCheck" - ], - "httpMethod": "PATCH", - "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." + "response": { + "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "type": "string" + } + }, + "type": "object", + "id": "HTTPHealthCheck" + }, + "RegionDisksResizeRequest": { + "properties": { + "sizeGb": { + "type": "string", + "format": "int64", + "description": "The new size of the regional persistent disk, which is specified in GB." + } + }, + "id": "RegionDisksResizeRequest", + "type": "object" + }, + "InterconnectCircuitInfo": { + "description": "Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only.", + "id": "InterconnectCircuitInfo", + "type": "object", + "properties": { + "googleCircuitId": { + "description": "Google-assigned unique ID for this circuit. Assigned at circuit turn-up.", + "type": "string" }, - "update": { - "request": { - "$ref": "HealthCheck" - }, - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." - }, - "healthCheck": { - "required": true, - "type": "string", - "location": "path", - "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}" - } + "customerDemarcId": { + "description": "Customer-side demarc ID for this circuit.", + "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" + } + } + }, + "SecuritySettings": { + "type": "object", + "description": "The authentication and authorization settings for a BackendService.", + "id": "SecuritySettings", + "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. Note: This field currently has no impact.", + "type": "string" + }, + "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). Note: This field currently has no impact.", + "items": { + "type": "string" }, - "description": "Updates a HealthCheck resource in the specified project using the data included in the request.", - "response": { - "$ref": "Operation" + "type": "array" + } + } + }, + "InstancesAddResourcePoliciesRequest": { + "type": "object", + "properties": { + "resourcePolicies": { + "type": "array", + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "healthCheck" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "PUT", - "path": "projects/{project}/global/healthChecks/{healthCheck}", - "id": "compute.healthChecks.update", - "flatPath": "projects/{project}/global/healthChecks/{healthCheck}" + "description": "Resource policies to be added to this instance." + } + }, + "id": "InstancesAddResourcePoliciesRequest" + }, + "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" }, - "delete": { - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/healthChecks/{healthCheck}", - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "required": true + "nextPageToken": { + "type": "string", + "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." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "healthCheck": { - "description": "Name of the HealthCheck resource to delete.", + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. 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" } }, - "description": "Deletes the specified HealthCheck resource.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", - "httpMethod": "DELETE", - "id": "compute.healthChecks.delete", - "parameterOrder": [ - "project", - "healthCheck" - ] + "type": "object" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "type": "array", + "description": "A list of NetworkEndpointWithHealthStatus resources.", + "items": { + "$ref": "NetworkEndpointWithHealthStatus" + } } } }, - "regionNetworkEndpointGroups": { - "methods": { - "delete": { - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "parameters": { - "region": { + "SecurityPoliciesScopedList": { + "id": "SecurityPoliciesScopedList", + "properties": { + "securityPolicies": { + "type": "array", + "description": "A list of SecurityPolicies contained in this scope.", + "items": { + "$ref": "SecurityPolicy" + } + }, + "warning": { + "description": "Informational warning which replaces the list of security policies when the list is empty.", + "type": "object", + "properties": { + "message": { "type": "string", - "required": true, - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." }, - "networkEndpointGroup": { - "required": true, - "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", - "location": "path", + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string" }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "data": { + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } - }, - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "DELETE", - "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.", - "response": { - "$ref": "Operation" - }, - "id": "compute.regionNetworkEndpointGroups.delete", - "parameterOrder": [ - "project", - "region", - "networkEndpointGroup" + } + } + }, + "type": "object" + }, + "PublicDelegatedPrefixPublicDelegatedSubPrefix": { + "type": "object", + "description": "Represents a sub PublicDelegatedPrefix.", + "id": "PublicDelegatedPrefixPublicDelegatedSubPrefix", + "properties": { + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "name": { + "description": "The name of the sub public delegated prefix.", + "type": "string" + }, + "isAddress": { + "type": "boolean", + "description": "Whether the sub prefix is delegated to create Address resources in the delegatee project." + }, + "status": { + "enum": [ + "ACTIVE", + "INACTIVE" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "[Output Only] The status of the sub public delegated prefix.", + "type": "string", + "enumDescriptions": [ + "", + "" ] }, - "list": { - "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "NetworkEndpointGroupList" - }, - "parameters": { - "project": { - "location": "path", - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "maxResults": { - "location": "query", - "minimum": "0", - "default": "500", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "region": { - "location": "path", - "required": true, - "type": "string", - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035." - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "httpMethod": "GET", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", - "path": "projects/{project}/regions/{region}/networkEndpointGroups", - "id": "compute.regionNetworkEndpointGroups.list" + "region": { + "type": "string", + "description": "[Output Only] The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global." }, - "insert": { - "parameterOrder": [ - "project", - "region" - ], - "id": "compute.regionNetworkEndpointGroups.insert", - "path": "projects/{project}/regions/{region}/networkEndpointGroups", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", - "request": { - "$ref": "NetworkEndpointGroup" - }, - "parameters": { - "region": { - "type": "string", - "location": "path", - "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups" + "delegateeProject": { + "description": "Name of the project scoping this PublicDelegatedSubPrefix.", + "type": "string" }, - "get": { - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "parameterOrder": [ - "project", - "region", - "networkEndpointGroup" - ], - "parameters": { - "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", - "required": true, - "location": "path", - "type": "string" - }, - "networkEndpointGroup": { - "type": "string", - "location": "path", - "description": "The name of the network endpoint group. It should comply with RFC1035.", - "required": true - }, - "project": { - "required": true, - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - } - }, - "id": "compute.regionNetworkEndpointGroups.get", - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", - "httpMethod": "GET", - "response": { - "$ref": "NetworkEndpointGroup" - } + "ipCidrRange": { + "description": "The IPv4 address range, in CIDR format, represented by this sub public delegated prefix.", + "type": "string" } } }, - "imageFamilyViews": { - "methods": { - "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "family": { + "SslCertificateAggregatedList": { + "id": "SslCertificateAggregatedList", + "type": "object", + "properties": { + "items": { + "description": "A list of SslCertificatesScopedList resources.", + "type": "object", + "additionalProperties": { + "$ref": "SslCertificatesScopedList", + "description": "Name of the scope containing this set of SslCertificates." + } + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#sslCertificateAggregatedList for lists of SSL Certificates.", + "default": "compute#sslCertificateAggregatedList", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "unreachables": { + "type": "array", + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" + } + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "Name of the image family to search for.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", + "message": { "type": "string", - "description": "The name of the zone for this request." + "description": "[Output Only] A human-readable description of the warning code." } - }, - "response": { - "$ref": "ImageFamilyView" - }, - "flatPath": "projects/{project}/zones/{zone}/imageFamilyViews/{family}", - "path": "projects/{project}/zones/{zone}/imageFamilyViews/{family}", - "id": "compute.imageFamilyViews.get", - "httpMethod": "GET", - "parameterOrder": [ - "project", - "zone", - "family" - ], - "description": "Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone." + } } } }, - "projects": { - "methods": { - "getXpnHost": { - "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.", - "response": { - "$ref": "Project" - }, - "path": "projects/{project}/getXpnHost", - "flatPath": "projects/{project}/getXpnHost", - "httpMethod": "GET", - "parameters": { - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string" - } - }, - "id": "compute.projects.getXpnHost", - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "Int64RangeMatch": { + "id": "Int64RangeMatch", + "type": "object", + "description": "HttpRouteRuleMatch criteria for field values that must stay within the specified integer range.", + "properties": { + "rangeStart": { + "description": "The start of the range (inclusive) in signed long integer format.", + "format": "int64", + "type": "string" }, - "disableXpnHost": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "rangeEnd": { + "format": "int64", + "type": "string", + "description": "The end of the range (exclusive) in signed long integer format." + } + } + }, + "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.", + "properties": { + "filterMatchCriteria": { + "enum": [ + "MATCH_ALL", + "MATCH_ANY", + "NOT_SET" ], - "parameterOrder": [ - "project" + "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. ", + "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." ], - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "location": "path", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "httpMethod": "POST", - "path": "projects/{project}/disableXpnHost", - "response": { - "$ref": "Operation" - }, - "id": "compute.projects.disableXpnHost", - "description": "Disable this project as a shared VPC host project.", - "flatPath": "projects/{project}/disableXpnHost" + "type": "string" }, - "setCommonInstanceMetadata": { - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/setCommonInstanceMetadata", - "parameterOrder": [ - "project" - ], - "httpMethod": "POST", - "id": "compute.projects.setCommonInstanceMetadata", - "parameters": { - "project": { - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } + "filterLabels": { + "items": { + "$ref": "MetadataFilterLabelMatch" }, - "description": "Sets metadata common to all instances within the specified project using the data included in the request.", - "flatPath": "projects/{project}/setCommonInstanceMetadata", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "request": { - "$ref": "Metadata" - } + "type": "array", + "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": "object", + "id": "MetadataFilter" + }, + "AccessConfig": { + "type": "object", + "description": "An access configuration attached to an instance's network interface. Only one access config per instance is supported.", + "id": "AccessConfig", + "properties": { + "externalIpv6": { + "type": "string", + "description": "The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically." }, - "get": { - "httpMethod": "GET", - "description": "Returns the specified Project resource.", - "response": { - "$ref": "Project" - }, - "parameters": { - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path" - } - }, - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}", - "id": "compute.projects.get" + "natIP": { + "type": "string", + "description": "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." }, - "getXpnResources": { - "parameters": { - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "maxResults": { - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500", - "type": "integer", - "location": "query" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "response": { - "$ref": "ProjectsGetXpnResources" - }, - "flatPath": "projects/{project}/getXpnResources", - "id": "compute.projects.getXpnResources", - "parameterOrder": [ - "project" + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#accessConfig for access configs.", + "default": "compute#accessConfig" + }, + "networkTier": { + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" ], - "path": "projects/{project}/getXpnResources", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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." ], - "httpMethod": "GET", - "description": "Gets service resources (a.k.a service project) associated with this host project." + "type": "string", + "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." }, - "disableXpnResource": { - "description": "Disable a service resource (also known as service project) associated with this host project.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": { + "enumDescriptions": [ + "", + "" ], - "flatPath": "projects/{project}/disableXpnResource", - "id": "compute.projects.disableXpnResource", - "httpMethod": "POST", - "parameterOrder": [ - "project" + "type": "string", + "enum": [ + "DIRECT_IPV6", + "ONE_TO_ONE_NAT" ], - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "ProjectsDisableXpnResourceRequest" - }, - "path": "projects/{project}/disableXpnResource", - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "description": "Project ID for this request." - } - } + "default": "ONE_TO_ONE_NAT", + "description": "The type of configuration. The default and only option is ONE_TO_ONE_NAT." }, - "moveInstance": { - "path": "projects/{project}/moveInstance", - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "InstanceMoveRequest" - }, - "parameters": { - "project": { - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } - }, - "description": "Moves an instance and its attached persistent disks from one zone to another.", - "id": "compute.projects.moveInstance", - "httpMethod": "POST", - "flatPath": "projects/{project}/moveInstance", - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "name": { + "description": "The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access.", + "type": "string" }, - "enableXpnResource": { - "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.", - "flatPath": "projects/{project}/enableXpnResource", - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST", - "request": { - "$ref": "ProjectsEnableXpnResourceRequest" - }, - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "path": "projects/{project}/enableXpnResource", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.projects.enableXpnResource" + "publicPtrDomainName": { + "type": "string", + "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." }, - "setDefaultNetworkTier": { - "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.", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - } - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/setDefaultNetworkTier", - "id": "compute.projects.setDefaultNetworkTier", - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "ProjectsSetDefaultNetworkTierRequest" - }, - "path": "projects/{project}/setDefaultNetworkTier" + "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" }, - "moveDisk": { - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/moveDisk", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "path": "projects/{project}/moveDisk", - "description": "Moves a persistent disk from one zone to another.", - "request": { - "$ref": "DiskMoveRequest" - }, - "id": "compute.projects.moveDisk", - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST" + "externalIpv6PrefixLength": { + "format": "int32", + "description": "The prefix length of the external IPv6 range.", + "type": "integer" + } + } + }, + "ZoneSetPolicyRequest": { + "properties": { + "bindings": { + "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "type": "array", + "items": { + "$ref": "Binding" + } }, - "setUsageExportBucket": { - "id": "compute.projects.setUsageExportBucket", - "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.", - "flatPath": "projects/{project}/setUsageExportBucket", - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/setUsageExportBucket", - "httpMethod": "POST", - "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" - ], - "request": { - "$ref": "UsageExportLocation" - }, - "parameterOrder": [ - "project" - ], - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "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", - "type": "string", - "description": "Project ID for this request.", - "required": true - } + "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" + }, + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "type": "string", + "format": "byte" + } + }, + "type": "object", + "id": "ZoneSetPolicyRequest" + }, + "RouterNatSubnetworkToNat": { + "type": "object", + "properties": { + "sourceIpRangesToNat": { + "type": "array", + "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]", + "items": { + "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." + ], + "type": "string", + "enum": [ + "ALL_IP_RANGES", + "LIST_OF_SECONDARY_IP_RANGES", + "PRIMARY_IP_RANGE" + ] } }, - "listXpnHosts": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/listXpnHosts", - "description": "Lists all shared VPC host projects visible to the user in an organization.", - "flatPath": "projects/{project}/listXpnHosts", - "response": { - "$ref": "XpnHostList" - }, - "parameters": { - "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" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "minimum": "0", - "format": "uint32", - "default": "500", - "type": "integer" - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - } - }, - "parameterOrder": [ - "project" - ], - "httpMethod": "POST", - "request": { - "$ref": "ProjectsListXpnHostsRequest" + "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.", + "items": { + "type": "string" }, - "id": "compute.projects.listXpnHosts" + "type": "array" }, - "enableXpnHost": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project" - ], - "httpMethod": "POST", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/enableXpnHost", - "description": "Enable this project as a shared VPC host project.", - "path": "projects/{project}/enableXpnHost", - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true - } - }, - "id": "compute.projects.enableXpnHost" + "name": { + "type": "string", + "description": "URL for the subnetwork resource that will use NAT." } - } + }, + "id": "RouterNatSubnetworkToNat", + "description": "Defines the IP ranges that want to use NAT for a subnetwork." }, - "targetTcpProxies": { - "methods": { - "setBackendService": { - "request": { - "$ref": "TargetTcpProxiesSetBackendServiceRequest" - }, - "description": "Changes the BackendService for TargetTcpProxy.", - "httpMethod": "POST", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "targetTcpProxy" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "NetworkList": { + "id": "NetworkList", + "description": "Contains a list of networks.", + "properties": { + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "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])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string", - "location": "path" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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": "array" }, - "targetTcpProxy": { - "type": "string", - "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" } + } + }, + "items": { + "type": "array", + "items": { + "$ref": "Network" }, - "id": "compute.targetTcpProxies.setBackendService" + "description": "A list of Network resources." }, - "list": { - "flatPath": "projects/{project}/global/targetTcpProxies", - "parameterOrder": [ - "project" - ], - "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.", - "path": "projects/{project}/global/targetTcpProxies", - "parameters": { - "project": { - "location": "path", - "type": "string", - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "kind": { + "default": "compute#networkList", + "description": "[Output Only] Type of resource. Always compute#networkList for lists of networks.", + "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": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + } + }, + "type": "object" + }, + "ResourcePolicyList": { + "type": "object", + "properties": { + "warning": { + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "location": "query", - "minimum": "0", - "default": "500", - "type": "integer", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string" } }, - "id": "compute.targetTcpProxies.list", - "response": { - "$ref": "TargetTcpProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET" + "type": "object", + "description": "[Output Only] Informational warning message." }, - "delete": { - "response": { - "$ref": "Operation" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "description": "[Output Only] A list of ResourcePolicy resources.", + "items": { + "$ref": "ResourcePolicy" }, - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "array" + }, + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "kind": { + "type": "string", + "default": "compute#resourcePolicyList", + "description": "[Output Only] Type of resource.Always compute#resourcePoliciesList for listsof resourcePolicies" + }, + "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" + } + }, + "id": "ResourcePolicyList" + }, + "SecurityPoliciesWafConfig": { + "type": "object", + "properties": { + "wafRules": { + "$ref": "PreconfiguredWafSet" + } + }, + "id": "SecurityPoliciesWafConfig" + }, + "NetworkRoutingConfig": { + "properties": { + "routingMode": { + "enumDescriptions": [ + "", + "" ], - "parameters": { - "targetTcpProxy": { - "location": "path", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the TargetTcpProxy resource to delete." - }, - "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", - "type": "string", - "description": "Project ID for this request.", - "required": true - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } + "type": "string", + "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.", + "enum": [ + "GLOBAL", + "REGIONAL" + ] + } + }, + "type": "object", + "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.", + "id": "NetworkRoutingConfig" + }, + "TargetPoolsRemoveHealthCheckRequest": { + "properties": { + "healthChecks": { + "type": "array", + "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 ", + "items": { + "$ref": "HealthCheckReference" + } + } + }, + "type": "object", + "id": "TargetPoolsRemoveHealthCheckRequest" + }, + "DiskParams": { + "description": "Additional disk params.", + "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.", + "additionalProperties": { + "type": "string" }, - "httpMethod": "DELETE", - "parameterOrder": [ - "project", - "targetTcpProxy" - ], - "description": "Deletes the specified TargetTcpProxy resource.", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", - "id": "compute.targetTcpProxies.delete" + "type": "object" + } + }, + "id": "DiskParams", + "type": "object" + }, + "BackendService": { + "id": "BackendService", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" }, - "insert": { - "path": "projects/{project}/global/targetTcpProxies", - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - } - }, - "httpMethod": "POST", - "flatPath": "projects/{project}/global/targetTcpProxies", - "request": { - "$ref": "TargetTcpProxy" - }, - "parameterOrder": [ - "project" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "sessionAffinity": { + "type": "string", + "enum": [ + "CLIENT_IP", + "CLIENT_IP_NO_DESTINATION", + "CLIENT_IP_PORT_PROTO", + "CLIENT_IP_PROTO", + "GENERATED_COOKIE", + "HEADER_FIELD", + "HTTP_COOKIE", + "NONE" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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).", + "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." + ] + }, + "enableCDN": { + "type": "boolean", + "description": "If true, enables Cloud CDN for the backend service of an external HTTP(S) load balancer." + }, + "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" + }, + "loadBalancingScheme": { + "enumDescriptions": [ + "Signifies that this will be used for external HTTP(S), SSL Proxy, TCP Proxy, or Network Load Balancing", + "Signifies that this will be used for External Managed HTTP(S) Load Balancing.", + "Signifies that this will be used for Internal TCP/UDP Load Balancing.", + "Signifies that this will be used for Internal HTTP(S) Load Balancing.", + "Signifies that this will be used by Traffic Director.", + "" ], - "response": { - "$ref": "Operation" - }, - "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.", - "id": "compute.targetTcpProxies.insert" + "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", + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "INTERNAL", + "INTERNAL_MANAGED", + "INTERNAL_SELF_MANAGED", + "INVALID_LOAD_BALANCING_SCHEME" + ] }, - "setProxyHeader": { - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", - "description": "Changes the ProxyHeaderType for TargetTcpProxy.", - "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" + }, + "maxStreamDuration": { + "$ref": "Duration", + "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." + }, + "subsetting": { + "$ref": "Subsetting" + }, + "edgeSecurityPolicy": { + "type": "string", + "description": "[Output Only] The resource URL for the edge security policy associated with this backend service." + }, + "compressionMode": { + "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", + "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": "TargetTcpProxiesSetProxyHeaderRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "project", - "targetTcpProxy" + "enum": [ + "AUTOMATIC", + "DISABLED" ], - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", - "id": "compute.targetTcpProxies.setProxyHeader", - "response": { - "$ref": "Operation" + "type": "string" + }, + "customResponseHeaders": { + "type": "array", + "items": { + "type": "string" }, - "parameters": { - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "targetTcpProxy": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.", - "location": "path", - "required": true - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - } + "description": "Headers that the load balancer adds to proxied responses. See [Creating custom headers](https://cloud.google.com/load-balancing/docs/custom-headers)." }, - "get": { - "parameterOrder": [ - "project", - "targetTcpProxy" + "affinityCookieTtlSec": { + "format": "int32", + "description": "Lifetime of cookies in seconds. This setting is applicable to external and internal HTTP(S) 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" + }, + "timeoutSec": { + "format": "int32", + "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" + }, + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "connectionTrackingPolicy": { + "description": "Connection Tracking configuration for this BackendService. Connection tracking policy settings are only available for Network Load Balancing and Internal TCP/UDP Load Balancing.", + "$ref": "BackendServiceConnectionTrackingPolicy" + }, + "protocol": { + "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." ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "GRPC", + "HTTP", + "HTTP2", + "HTTPS", + "SSL", + "TCP", + "UDP", + "UNSPECIFIED" ], - "response": { - "$ref": "TargetTcpProxy" + "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" + }, + "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.", + "items": { + "type": "string" }, - "id": "compute.targetTcpProxies.get", - "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.", - "parameters": { - "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}", - "type": "string", - "location": "path", - "required": true - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - } + "type": "array" + }, + "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" + }, + "fingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "circuitBreakers": { + "$ref": "CircuitBreakers" + }, + "failoverPolicy": { + "$ref": "BackendServiceFailoverPolicy", + "description": "Requires at least one backend instance group to be defined as a backup (failover) backend. 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)." + }, + "backends": { + "type": "array", + "items": { + "$ref": "Backend" }, - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", - "httpMethod": "GET" - } - } - }, - "disks": { - "methods": { - "get": { - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": "The list of backends that serve this BackendService." + }, + "port": { + "format": "int32", + "type": "integer", + "description": "Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80. For Internal TCP/UDP Load Balancing and Network Load Balancing, omit port." + }, + "network": { + "type": "string", + "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." + }, + "outlierDetection": { + "$ref": "OutlierDetection", + "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled. 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. 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." + }, + "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. 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.", + "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." ], - "parameterOrder": [ - "project", - "zone", - "disk" + "enum": [ + "INVALID_LB_POLICY", + "LEAST_REQUEST", + "MAGLEV", + "ORIGINAL_DESTINATION", + "RANDOM", + "RING_HASH", + "ROUND_ROBIN" ], - "id": "compute.disks.get", - "parameters": { - "disk": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "type": "string", - "description": "Name of the persistent disk to return." - }, - "zone": { - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "The name of the zone for this request." - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - } - }, - "response": { - "$ref": "Disk" - }, - "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.", - "path": "projects/{project}/zones/{zone}/disks/{disk}" + "type": "string" }, - "testIamPermissions": { - "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions", - "parameters": { - "zone": { - "location": "path", - "required": true, - "description": "The name of the zone for this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "resource": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "description": "Name or id of the resource for this request.", - "required": true, - "location": "path" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "description": "Project ID for this request." - } + "connectionDraining": { + "$ref": "ConnectionDraining" + }, + "localityLbPolicies": { + "description": "A list of locality load balancing policies to be used in order of preference. Either the policy or the customPolicy field should be set. Overrides any value set in the localityLbPolicy field. localityLbPolicies is only supported when the BackendService is referenced by a URL Map that is referenced by a target gRPC proxy that has the validateForProxyless field set to true.", + "type": "array", + "items": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig" + } + }, + "kind": { + "default": "compute#backendService", + "type": "string", + "description": "[Output Only] Type of resource. Always compute#backendService for backend services." + }, + "cdnPolicy": { + "$ref": "BackendServiceCdnPolicy", + "description": "Cloud CDN configuration for this BackendService. Only available for specified load balancer types." + }, + "serviceBindings": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "httpMethod": "POST", - "description": "Returns permissions that a caller has on the specified resource.", - "response": { - "$ref": "TestPermissionsResponse" + "type": "array", + "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." + }, + "logConfig": { + "$ref": "BackendServiceLogConfig", + "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." + }, + "consistentHash": { + "$ref": "ConsistentHashLoadBalancerSettings", + "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. " + }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this backend service.", + "type": "string" + }, + "portName": { + "type": "string", + "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 TCP/UDP Load Balancing and Network Load Balancing, omit port_name." + }, + "iap": { + "description": "The configurations for Identity-Aware Proxy on this resource. Not available for Internal TCP/UDP Load Balancing and Network Load Balancing.", + "$ref": "BackendServiceIAP" + }, + "customRequestHeaders": { + "type": "array", + "description": "Headers that the load balancer adds to proxied requests. See [Creating custom headers](https://cloud.google.com/load-balancing/docs/custom-headers).", + "items": { + "type": "string" + } + } + }, + "type": "object", + "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." + }, + "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.", + "properties": { + "auditLogConfigs": { + "items": { + "$ref": "AuditLogConfig" }, - "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions", - "id": "compute.disks.testIamPermissions", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "request": { - "$ref": "TestPermissionsRequest" + "type": "array", + "description": "The configuration for logging of each type of permission." + }, + "exemptedMembers": { + "type": "array", + "description": "This is deprecated and has no effect. Do not use.", + "items": { + "type": "string" } }, - "resize": { - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "description": "Resizes the specified persistent disk. You can only increase the size of the disk.", - "request": { - "$ref": "DisksResizeRequest" + "service": { + "type": "string", + "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." + } + }, + "id": "AuditConfig", + "type": "object" + }, + "CommitmentsScopedList": { + "properties": { + "commitments": { + "items": { + "$ref": "Commitment" }, - "id": "compute.disks.resize", - "parameters": { - "disk": { - "type": "string", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "The name of the persistent disk." + "type": "array", + "description": "[Output Only] A list of commitments contained in this scope." + }, + "warning": { + "type": "object", + "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "message": { "type": "string", - "description": "The name of the zone for this request.", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "required": true, - "location": "path", - "description": "Project ID for this request.", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." } }, - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/resize", - "path": "projects/{project}/zones/{zone}/disks/{disk}/resize" + "description": "[Output Only] Informational warning which replaces the list of commitments when the list is empty." + } + }, + "type": "object", + "id": "CommitmentsScopedList" + }, + "FixedOrPercent": { + "properties": { + "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" }, - "list": { - "path": "projects/{project}/zones/{zone}/disks", - "response": { - "$ref": "DiskList" + "percent": { + "format": "int32", + "type": "integer", + "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%." + }, + "fixed": { + "format": "int32", + "description": "Specifies a fixed number of VM instances. This must be a positive integer.", + "type": "integer" + } + }, + "id": "FixedOrPercent", + "type": "object", + "description": "Encapsulates numeric value that can be either absolute or relative." + }, + "Router": { + "type": "object", + "properties": { + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "RouterInterface" }, - "parameterOrder": [ - "project", - "zone" - ], - "description": "Retrieves a list of persistent disks contained within the specified zone.", - "id": "compute.disks.list", - "flatPath": "projects/{project}/zones/{zone}/disks", - "parameters": { - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "maxResults": { - "type": "integer", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500", - "format": "uint32" - }, - "zone": { - "description": "The name of the zone for this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "type": "string" - } + "description": "Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both." + }, + "name": { + "type": "string", + "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", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET" + "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." }, - "getIamPolicy": { - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "Policy" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "kind": { + "default": "compute#router", + "description": "[Output Only] Type of resource. Always compute#router for routers.", + "type": "string" + }, + "bgpPeers": { + "type": "array", + "items": { + "$ref": "RouterBgpPeer" }, - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "httpMethod": "GET", - "id": "compute.disks.getIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "type": "integer", - "location": "query" - }, - "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" - }, - "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", - "description": "Project ID for this request." - }, - "resource": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true, - "description": "Name or id of the resource for this request." - } - } + "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." }, - "setLabels": { - "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", - "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", - "request": { - "$ref": "ZoneSetLabelsRequest" + "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": { + "annotations": { + "required": [ + "compute.routers.insert", + "compute.routers.update" + ] }, - "parameterOrder": [ - "project", - "zone", - "resource" + "type": "string", + "description": "URI of the network to which this router belongs." + }, + "nats": { + "type": "array", + "description": "A list of NAT services created in this router.", + "items": { + "$ref": "RouterNat" + } + }, + "encryptedInterconnectRouter": { + "type": "boolean", + "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments)." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "bgp": { + "$ref": "RouterBgp", + "description": "BGP information specific to this router." + } + }, + "id": "Router", + "description": "Represents a Cloud Router resource. For more information about Cloud Router, read the Cloud Router overview." + }, + "AutoscalingPolicyCpuUtilization": { + "type": "object", + "description": "CPU utilization policy.", + "id": "AutoscalingPolicyCpuUtilization", + "properties": { + "predictiveMethod": { + "type": "string", + "enum": [ + "NONE", + "OPTIMIZE_AVAILABILITY" ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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." ], - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true - }, - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - } - }, - "response": { - "$ref": "Operation" - }, - "id": "compute.disks.setLabels" + "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." }, - "addResourcePolicies": { - "request": { - "$ref": "DisksAddResourcePoliciesRequest" - }, - "httpMethod": "POST", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone", - "disk" + "utilizationTarget": { + "type": "number", + "format": "double", + "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." + } + } + }, + "UsableSubnetwork": { + "type": "object", + "id": "UsableSubnetwork", + "properties": { + "purpose": { + "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "enumDescriptions": [ + "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Regular user created or automatically created subnet.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." ], - "parameters": { - "zone": { - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request." - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "description": "Project ID for this request." - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "disk": { - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "The disk name for this request.", - "type": "string" - } - }, - "id": "compute.disks.addResourcePolicies", - "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", - "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.", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "createSnapshot": { - "description": "Creates a snapshot of a specified persistent disk.", - "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", - "parameters": { - "disk": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the persistent disk to snapshot.", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request.", - "location": "path" - }, - "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" - }, - "guestFlush": { - "type": "boolean", - "description": "[Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process. Currently only supported on Windows instances using the Volume Shadow Copy Service (VSS).", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "zone", - "disk" + "enum": [ + "INTERNAL_HTTPS_LOAD_BALANCER", + "PRIVATE", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" ], - "request": { - "$ref": "Snapshot" - }, - "id": "compute.disks.createSnapshot" + "type": "string" }, - "aggregatedList": { - "response": { - "$ref": "DiskAggregatedList" - }, - "path": "projects/{project}/aggregated/disks", - "id": "compute.disks.aggregatedList", - "description": "Retrieves an aggregated list of persistent disks.", - "flatPath": "projects/{project}/aggregated/disks", - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "subnetwork": { + "type": "string", + "description": "Subnetwork URL." + }, + "role": { + "type": "string", + "description": "The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. 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.", + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." ], - "httpMethod": "GET", - "parameters": { - "maxResults": { - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500", - "location": "query", - "format": "uint32" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "includeAllScopes": { - "type": "boolean", - "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" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } + "enum": [ + "ACTIVE", + "BACKUP" + ] + }, + "externalIpv6Prefix": { + "description": "[Output Only] The external IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, + "ipCidrRange": { + "type": "string", + "description": "The range of internal addresses that are owned by this subnetwork." + }, + "secondaryIpRanges": { + "description": "Secondary IP ranges.", + "type": "array", + "items": { + "$ref": "UsableSubnetworkSecondaryRange" } }, - "delete": { - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "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])?))", - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request." - }, - "disk": { - "description": "Name of the persistent disk to delete.", - "required": true, - "location": "path", - "type": "string" - }, - "zone": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "location": "path", - "required": true - } - }, - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", - "path": "projects/{project}/zones/{zone}/disks/{disk}", - "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.", - "id": "compute.disks.delete", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "DELETE" + "network": { + "description": "Network URL.", + "type": "string" }, - "removeResourcePolicies": { - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies", - "id": "compute.disks.removeResourcePolicies", - "parameterOrder": [ - "project", - "zone", - "disk" + "ipv6AccessType": { + "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": "Removes resource policies from a disk.", - "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies", - "httpMethod": "POST", - "request": { - "$ref": "DisksRemoveResourcePoliciesRequest" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "EXTERNAL", + "INTERNAL" ], - "parameters": { - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path", - "type": "string", - "description": "The name of the zone for this request." - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "disk": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true, - "description": "The disk name for this request." - } - }, - "response": { - "$ref": "Operation" - } + "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." }, - "setIamPolicy": { - "request": { - "$ref": "ZoneSetPolicyRequest" - }, - "parameters": { - "zone": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "The name of the zone for this request." - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request.", - "location": "path" - }, - "resource": { - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "location": "path" - } - }, - "id": "compute.disks.setIamPolicy", - "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "zone", - "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.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" ], - "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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": "Policy" + "type": "string" + }, + "internalIpv6Prefix": { + "type": "string", + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork." + } + }, + "description": "Subnetwork which the current user has compute.subnetworks.use permission on." + }, + "InstanceGroupManagerList": { + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups.", + "default": "compute#instanceGroupManagerList", + "type": "string" + }, + "items": { + "description": "A list of InstanceGroupManager resources.", + "type": "array", + "items": { + "$ref": "InstanceGroupManager" } }, - "insert": { - "flatPath": "projects/{project}/zones/{zone}/disks", - "response": { - "$ref": "Operation" - }, - "id": "compute.disks.insert", - "parameterOrder": [ - "project", - "zone" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/zones/{zone}/disks", - "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.", - "parameters": { - "sourceImage": { - "type": "string", - "description": "Source image to restore onto a disk. This field is optional.", - "location": "query" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path", + "code": { "type": "string", - "description": "The name of the zone for this request." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } } - }, - "httpMethod": "POST", - "request": { - "$ref": "Disk" } + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "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" } - } + }, + "type": "object", + "description": "[Output Only] A list of managed instance groups.", + "id": "InstanceGroupManagerList" }, - "sslCertificates": { - "methods": { - "aggregatedList": { - "httpMethod": "GET", - "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/aggregated/sslCertificates", - "path": "projects/{project}/aggregated/sslCertificates", - "id": "compute.sslCertificates.aggregatedList", - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SslCertificateAggregatedList" + "HealthChecksScopedList": { + "id": "HealthChecksScopedList", + "properties": { + "healthChecks": { + "description": "A list of HealthChecks contained in this scope.", + "items": { + "$ref": "HealthCheck" }, - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "description": "Name of the project scoping this request." - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "includeAllScopes": { - "location": "query", - "type": "boolean", - "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." - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + "type": "array" + }, + "warning": { + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string" }, - "maxResults": { - "default": "500", - "location": "query", - "minimum": "0", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer" + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } }, - "filter": { + "message": { "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "description": "[Output Only] A human-readable description of the warning code." } + }, + "description": "Informational warning which replaces the list of backend services when the list is empty." + } + }, + "type": "object" + }, + "TargetPoolInstanceHealth": { + "type": "object", + "id": "TargetPoolInstanceHealth", + "properties": { + "healthStatus": { + "type": "array", + "items": { + "$ref": "HealthStatus" } }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetPoolInstanceHealth when checking the health of an instance.", + "type": "string", + "default": "compute#targetPoolInstanceHealth" + } + } + }, + "Disk": { + "properties": { + "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.", + "format": "int64", + "type": "string" + }, + "architecture": { + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "httpMethod": "DELETE", - "path": "projects/{project}/global/sslCertificates/{sslCertificate}", - "description": "Deletes the specified SslCertificate resource.", - "parameters": { - "sslCertificate": { - "type": "string", - "location": "path", - "required": true, - "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}" - }, - "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])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - } + "description": "The architecture of the disk. Valid values are ARM64 or X86_64.", + "type": "string", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ] + }, + "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" + }, + "locationHint": { + "type": "string", + "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." + }, + "sourceImageId": { + "type": "string", + "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." + }, + "lastAttachTimestamp": { + "type": "string", + "description": "[Output Only] Last attach timestamp in RFC3339 text format." + }, + "licenseCodes": { + "items": { + "format": "int64", + "type": "string" }, - "parameterOrder": [ - "project", - "sslCertificate" - ], - "id": "compute.sslCertificates.delete", - "response": { - "$ref": "Operation" + "description": "Integer license codes indicating which licenses are attached to this disk.", + "type": "array" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "params": { + "$ref": "DiskParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." + }, + "sourceSnapshot": { + "type": "string", + "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 " + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined fully-qualified URL for this resource." + }, + "name": { + "type": "string", + "annotations": { + "required": [ + "compute.disks.insert" + ] }, - "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}" + "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])?" }, - "insert": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/sslCertificates", - "id": "compute.sslCertificates.insert", - "path": "projects/{project}/global/sslCertificates", - "parameters": { - "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])?))", - "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request." - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", - "type": "string" - } + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "sourceDisk": { + "type": "string", + "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 " + }, + "guestOsFeatures": { + "type": "array", + "items": { + "$ref": "GuestOsFeature" }, - "description": "Creates a SslCertificate resource in the specified project using the data included in the request.", - "parameterOrder": [ - "project" - ], - "httpMethod": "POST", - "request": { - "$ref": "SslCertificate" + "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." + }, + "resourcePolicies": { + "description": "Resource policies applied to this disk for automatic snapshot creations.", + "items": { + "type": "string" }, - "response": { - "$ref": "Operation" + "type": "array" + }, + "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.", + "format": "byte", + "type": "string" + }, + "sourceImage": { + "type": "string", + "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 " + }, + "replicaZones": { + "description": "URLs of the zones where the disk should be replicated to. Only applicable for regional resources.", + "type": "array", + "items": { + "type": "string" } }, - "list": { - "id": "compute.sslCertificates.list", - "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.", - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "maxResults": { - "type": "integer", - "minimum": "0", - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query" - }, - "project": { - "type": "string", - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - } - }, - "response": { - "$ref": "SslCertificateList" - }, - "path": "projects/{project}/global/sslCertificates", - "httpMethod": "GET", - "flatPath": "projects/{project}/global/sslCertificates", - "parameterOrder": [ - "project" - ] + "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" }, - "get": { - "parameters": { - "sslCertificate": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "location": "path", - "description": "Name of the SslCertificate resource to return." - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "kind": { + "description": "[Output Only] Type of the resource. Always compute#disk for disks.", + "default": "compute#disk", + "type": "string" + }, + "diskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "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." + }, + "users": { + "items": { + "type": "string" }, - "response": { - "$ref": "SslCertificate" + "description": "[Output Only] Links to the users of the disk (attached instances) in form: projects/project/zones/zone/instances/instance", + "type": "array" + }, + "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" + }, + "satisfiesPzs": { + "type": "boolean", + "description": "[Output Only] Reserved for future use." + }, + "licenses": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "sslCertificate" + "type": "array", + "description": "A list of publicly visible licenses. Reserved for Google's use." + }, + "sizeGb": { + "format": "int64", + "type": "string", + "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 1 to 65536, inclusive." + }, + "status": { + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "RESTORING" ], - "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", - "id": "compute.sslCertificates.get", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enumDescriptions": [ + "Disk is provisioning", + "Disk is deleting.", + "Disk creation failed.", + "Disk is ready for use.", + "Source data is being copied into the disk." ], - "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.", - "httpMethod": "GET", - "path": "projects/{project}/global/sslCertificates/{sslCertificate}" + "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" + }, + "provisionedIops": { + "format": "int64", + "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" + }, + "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" + }, + "lastDetachTimestamp": { + "description": "[Output Only] Last detach timestamp in RFC3339 text format.", + "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" + }, + "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" + }, + "labels": { + "type": "object", + "description": "Labels to apply to this disk. These can be later modified by the setLabels method.", + "additionalProperties": { + "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" + }, + "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" + } + }, + "id": "Disk", + "type": "object", + "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." + }, + "TargetSslProxiesSetSslCertificatesRequest": { + "id": "TargetSslProxiesSetSslCertificatesRequest", + "properties": { + "sslCertificates": { + "type": "array", + "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.", + "items": { + "type": "string" + } + } + }, + "type": "object" + }, + "InstanceGroupManagersDeletePerInstanceConfigsReq": { + "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" + } + } + }, + "description": "InstanceGroupManagers.deletePerInstanceConfigs", + "type": "object", + "id": "InstanceGroupManagersDeletePerInstanceConfigsReq" + }, + "ProjectsListXpnHostsRequest": { + "type": "object", + "id": "ProjectsListXpnHostsRequest", + "properties": { + "organization": { + "type": "string", + "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." } } }, - "externalVpnGateways": { - "methods": { - "testIamPermissions": { - "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions", - "response": { - "$ref": "TestPermissionsResponse" + "RegionUrlMapsValidateRequest": { + "type": "object", + "properties": { + "resource": { + "$ref": "UrlMap", + "description": "Content of the UrlMap to be validated." + } + }, + "id": "RegionUrlMapsValidateRequest" + }, + "SecurityPolicyAdaptiveProtectionConfig": { + "type": "object", + "id": "SecurityPolicyAdaptiveProtectionConfig", + "properties": { + "layer7DdosDefenseConfig": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", + "description": "If set to true, enables Cloud Armor Machine Learning." + } + }, + "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP)." + }, + "InstanceGroupManagersListErrorsResponse": { + "id": "InstanceGroupManagersListErrorsResponse", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "InstanceManagedByIgmError" }, - "description": "Returns permissions that a caller has on the specified resource.", - "id": "compute.externalVpnGateways.testIamPermissions", - "parameterOrder": [ - "project", - "resource" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "resource": { - "description": "Name or id of the resource for this request.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - } - } + "description": "[Output Only] The list of errors of the managed instance group." }, - "delete": { - "description": "Deletes the specified externalVpnGateway.", - "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", - "parameterOrder": [ - "project", - "externalVpnGateway" - ], - "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + } + }, + "type": "object" + }, + "LogConfigDataAccessOptions": { + "properties": { + "logMode": { + "enum": [ + "LOG_FAIL_CLOSED", + "LOG_MODE_UNSPECIFIED" ], - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "externalVpnGateway": { - "description": "Name of the externalVpnGateways to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "required": true - }, - "project": { - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true - } - }, - "httpMethod": "DELETE", - "response": { - "$ref": "Operation" - }, - "id": "compute.externalVpnGateways.delete" - }, - "get": { - "response": { - "$ref": "ExternalVpnGateway" - }, - "parameters": { - "project": { - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "externalVpnGateway": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "Name of the externalVpnGateway to return.", - "location": "path", - "type": "string" - } - }, - "httpMethod": "GET", - "parameterOrder": [ - "project", - "externalVpnGateway" + "type": "string", + "enumDescriptions": [ + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use." ], - "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.", - "id": "compute.externalVpnGateways.get", - "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", - "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "description": "This is deprecated and has no effect. Do not use." + } + }, + "description": "This is deprecated and has no effect. Do not use.", + "type": "object", + "id": "LogConfigDataAccessOptions" + }, + "UrlMapsAggregatedList": { + "properties": { + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#urlMapsAggregatedList" }, - "setLabels": { - "id": "compute.externalVpnGateways.setLabels", - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels", - "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.", - "parameters": { - "resource": { - "required": true, - "type": "string", - "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" - }, - "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", - "type": "string", - "required": true, - "description": "Project ID for this request." - } - }, - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/setLabels", - "parameterOrder": [ - "project", - "resource" - ], - "httpMethod": "POST" + "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" }, - "list": { - "id": "compute.externalVpnGateways.list", - "parameterOrder": [ - "project" - ], - "description": "Retrieves the list of ExternalVpnGateway available to the specified project.", - "path": "projects/{project}/global/externalVpnGateways", - "httpMethod": "GET", - "parameters": { - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "maxResults": { - "default": "500", - "format": "uint32", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "location": "query" + "warning": { + "properties": { + "data": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "ExternalVpnGatewayList" - }, - "flatPath": "projects/{project}/global/externalVpnGateways" + "type": "object", + "description": "[Output Only] Informational warning message." }, - "insert": { - "id": "compute.externalVpnGateways.insert", - "httpMethod": "POST", - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "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])?))", - "type": "string", - "required": true, - "description": "Project ID for this request.", - "location": "path" - } - }, - "path": "projects/{project}/global/externalVpnGateways", - "response": { - "$ref": "Operation" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "items": { + "description": "A list of UrlMapsScopedList resources.", + "additionalProperties": { + "$ref": "UrlMapsScopedList", + "description": "Name of the scope containing this set of UrlMaps." }, - "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "object" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + } + }, + "type": "object", + "id": "UrlMapsAggregatedList" + }, + "TargetSslProxy": { + "type": "object", + "id": "TargetSslProxy", + "description": "Represents a Target SSL Proxy resource. A target SSL proxy is a component of a SSL Proxy load balancer. Global forwarding rules reference a target SSL proxy, and the target proxy then references an external backend service. For more information, read Using Target Proxies.", + "properties": { + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "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.", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "ExternalVpnGateway" - }, - "parameterOrder": [ - "project" + "enum": [ + "NONE", + "PROXY_V1" ], - "flatPath": "projects/{project}/global/externalVpnGateways" + "type": "string" + }, + "id": { + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "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" + }, + "kind": { + "type": "string", + "default": "compute#targetSslProxy", + "description": "[Output Only] Type of the resource. Always compute#targetSslProxy for target SSL proxies." + }, + "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.", + "type": "string" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "service": { + "type": "string", + "description": "URL to the BackendService resource." + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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." } } }, - "addresses": { - "methods": { - "get": { - "description": "Returns the specified address resource.", - "parameterOrder": [ - "project", - "region", - "address" + "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.", + "id": "BackendServiceCdnPolicyBypassCacheOnRequestHeader", + "type": "object", + "properties": { + "headerName": { + "type": "string", + "description": "The header field name to match on when bypassing cache. Values are case-insensitive." + } + } + }, + "UrlMapReference": { + "properties": { + "urlMap": { + "type": "string" + } + }, + "type": "object", + "id": "UrlMapReference" + }, + "TargetTcpProxiesSetProxyHeaderRequest": { + "properties": { + "proxyHeader": { + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "Address" - }, - "parameters": { - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "address": { - "location": "path", - "required": true, - "type": "string", - "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}" - }, - "region": { - "location": "path", - "type": "string", - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - } + "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", + "enum": [ + "NONE", + "PROXY_V1" + ] + } + }, + "type": "object", + "id": "TargetTcpProxiesSetProxyHeaderRequest" + }, + "PacketMirroringFilter": { + "type": "object", + "properties": { + "IPProtocols": { + "type": "array", + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/regions/{region}/addresses/{address}", - "flatPath": "projects/{project}/regions/{region}/addresses/{address}", - "httpMethod": "GET", - "id": "compute.addresses.get" + "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 traffic is mirrored." }, - "list": { - "flatPath": "projects/{project}/regions/{region}/addresses", - "path": "projects/{project}/regions/{region}/addresses", - "httpMethod": "GET", - "description": "Retrieves a list of addresses contained within the specified 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" + "cidrRanges": { + "type": "array", + "description": "IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored.", + "items": { + "type": "string" + } + }, + "direction": { + "enum": [ + "BOTH", + "EGRESS", + "INGRESS" ], - "parameters": { - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "maxResults": { - "minimum": "0", - "type": "integer", - "location": "query", - "default": "500", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "project": { - "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "region": { - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "Name of the region for this request." - } - }, - "parameterOrder": [ - "project", - "region" - ], - "id": "compute.addresses.list" + "type": "string", + "description": "Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH.", + "enumDescriptions": [ + "Default, both directions are mirrored.", + "Only egress traffic is mirrored.", + "Only ingress traffic is mirrored." + ] + } + }, + "id": "PacketMirroringFilter" + }, + "InstanceGroupsListInstances": { + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." }, - "aggregatedList": { - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "response": { - "$ref": "AddressAggregatedList" - }, - "path": "projects/{project}/aggregated/addresses", - "id": "compute.addresses.aggregatedList", - "parameters": { - "project": { + "items": { + "type": "array", + "description": "A list of InstanceWithNamedPorts resources.", + "items": { + "$ref": "InstanceWithNamedPorts" + } + }, + "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" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "required": true - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "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" - }, - "maxResults": { - "type": "integer", - "format": "uint32", - "location": "query", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500" - }, - "includeAllScopes": { - "location": "query", - "type": "boolean", - "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." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "location": "query", + "message": { "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + "description": "[Output Only] A human-readable description of the warning code." }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "description": "Retrieves an aggregated list of addresses.", - "flatPath": "projects/{project}/aggregated/addresses" + "type": "object" }, - "insert": { - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/regions/{region}/addresses", - "request": { - "$ref": "Address" - }, - "httpMethod": "POST", - "id": "compute.addresses.insert", - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "nextPageToken": { + "type": "string", + "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": "object", + "id": "InstanceGroupsListInstances" + }, + "InstancesScopedList": { + "type": "object", + "id": "InstancesScopedList", + "properties": { + "warning": { + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string" }, - "region": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "location": "path" + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", + "message": { "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "description": "[Output Only] A human-readable description of the warning code." } }, - "path": "projects/{project}/regions/{region}/addresses", - "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." + "description": "[Output Only] Informational warning which replaces the list of instances when the list is empty." }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified address resource.", - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - }, - "region": { - "required": true, - "type": "string", - "location": "path", - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "address": { - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the address resource to delete.", - "required": true - } - }, - "response": { - "$ref": "Operation" + "instances": { + "type": "array", + "items": { + "$ref": "Instance" }, - "id": "compute.addresses.delete", - "flatPath": "projects/{project}/regions/{region}/addresses/{address}", - "parameterOrder": [ - "project", - "region", - "address" - ], - "path": "projects/{project}/regions/{region}/addresses/{address}", - "httpMethod": "DELETE" + "description": "[Output Only] A list of instances contained in this scope." } } }, - "snapshots": { - "methods": { - "delete": { - "parameterOrder": [ - "project", - "snapshot" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/global/snapshots/{snapshot}", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/global/snapshots/{snapshot}", - "id": "compute.snapshots.delete", - "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.", - "parameters": { - "snapshot": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "description": "Name of the Snapshot resource to delete.", - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string" - } + "PublicDelegatedPrefixList": { + "id": "PublicDelegatedPrefixList", + "properties": { + "items": { + "description": "A list of PublicDelegatedPrefix resources.", + "items": { + "$ref": "PublicDelegatedPrefix" }, - "httpMethod": "DELETE" + "type": "array" }, - "setLabels": { - "httpMethod": "POST", - "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels", - "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "resource" - ], - "path": "projects/{project}/global/snapshots/{resource}/setLabels", - "id": "compute.snapshots.setLabels", - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "resource": { - "location": "path", - "required": true, - "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}", - "type": "string" - } - } + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "list": { - "response": { - "$ref": "SnapshotList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "flatPath": "projects/{project}/global/snapshots", - "parameters": { - "project": { + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "default": "compute#publicDelegatedPrefixList", + "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixList for public delegated prefixes.", + "type": "string" + }, + "warning": { + "properties": { + "message": { "type": "string", - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "maxResults": { - "minimum": "0", - "default": "500", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." }, - "pageToken": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - } - }, - "id": "compute.snapshots.list", - "parameterOrder": [ - "project" - ], - "description": "Retrieves the list of Snapshot resources contained within the specified project.", - "path": "projects/{project}/global/snapshots" - }, - "setIamPolicy": { - "id": "compute.snapshots.setIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "resource" - ], - "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy", - "parameters": { - "resource": { - "location": "path", - "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}", - "required": true, - "type": "string" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" + "data": { + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } }, - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "response": { - "$ref": "Policy" - }, - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy", - "httpMethod": "POST" + "type": "object", + "description": "[Output Only] Informational warning message." }, - "testIamPermissions": { - "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions", - "id": "compute.snapshots.testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, - "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions", - "response": { - "$ref": "TestPermissionsResponse" - }, - "parameterOrder": [ - "project", - "resource" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + } + }, + "type": "object" + }, + "BackendBucket": { + "type": "object", + "id": "BackendBucket", + "properties": { + "id": { + "format": "uint64", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#backendBucket" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "bucketName": { + "description": "Cloud Storage bucket name.", + "type": "string" + }, + "compressionMode": { + "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." ], - "httpMethod": "POST", - "parameters": { - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "resource": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true, - "description": "Name or id of the resource for this request." - } - }, - "description": "Returns permissions that a caller has on the specified resource.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", + "type": "string", + "enum": [ + "AUTOMATIC", + "DISABLED" ] }, - "getIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "project", - "resource" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy", - "httpMethod": "GET", - "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true, - "location": "path" - }, - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "type": "integer", - "location": "query" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path" - } - }, - "id": "compute.snapshots.getIamPolicy", - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." }, - "get": { - "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "parameterOrder": [ - "project", - "snapshot" - ], - "response": { - "$ref": "Snapshot" - }, - "parameters": { - "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])?))", - "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request." - }, - "snapshot": { - "required": true, - "type": "string", - "location": "path", - "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}" - } + "cdnPolicy": { + "description": "Cloud CDN configuration for this BackendBucket.", + "$ref": "BackendBucketCdnPolicy" + }, + "edgeSecurityPolicy": { + "type": "string", + "description": "[Output Only] The resource URL for the edge security policy associated with this backend bucket." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "customResponseHeaders": { + "items": { + "type": "string" }, - "flatPath": "projects/{project}/global/snapshots/{snapshot}", - "id": "compute.snapshots.get", - "path": "projects/{project}/global/snapshots/{snapshot}" + "type": "array", + "description": "Headers that the HTTP/S load balancer should add to proxied responses." + }, + "enableCdn": { + "description": "If true, enable Cloud CDN for this BackendBucket.", + "type": "boolean" + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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": "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." + }, + "PacketMirroringForwardingRuleInfo": { + "type": "object", + "properties": { + "canonicalUrl": { + "type": "string", + "description": "[Output Only] Unique identifier for the forwarding rule; defined by the server." + }, + "url": { + "description": "Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic.", + "type": "string" + } + }, + "id": "PacketMirroringForwardingRuleInfo" + }, + "InstanceManagedByIgmErrorManagedInstanceError": { + "id": "InstanceManagedByIgmErrorManagedInstanceError", + "type": "object", + "properties": { + "message": { + "description": "[Output Only] Error message.", + "type": "string" + }, + "code": { + "type": "string", + "description": "[Output Only] Error code." } } }, - "subnetworks": { - "methods": { - "get": { - "response": { - "$ref": "Subnetwork" - }, - "id": "compute.subnetworks.get", - "parameterOrder": [ - "project", - "region", - "subnetwork" - ], - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "subnetwork": { + "AutoscalerAggregatedList": { + "id": "AutoscalerAggregatedList", + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#autoscalerAggregatedList for aggregated lists of autoscalers.", + "default": "compute#autoscalerAggregatedList" + }, + "warning": { + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "required": true, - "location": "path", - "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}" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true, - "description": "Project ID for this request." + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" }, - "region": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "type": "string", - "required": true + "data": { + "type": "array", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } }, - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request." + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "setIamPolicy": { - "response": { - "$ref": "Policy" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "type": "object", + "description": "A list of AutoscalersScopedList resources.", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of autoscalers.", + "$ref": "AutoscalersScopedList" + } + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "unreachables": { + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "type": "array" + } + }, + "type": "object" + }, + "SubnetworkLogConfig": { + "description": "The available logging options for this subnetwork.", + "properties": { + "filterExpr": { + "type": "string", + "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." + }, + "metadata": { + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "parameterOrder": [ - "project", - "region", - "resource" + "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.", + "enum": [ + "CUSTOM_METADATA", + "EXCLUDE_ALL_METADATA", + "INCLUDE_ALL_METADATA" + ] + }, + "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.", + "format": "float", + "type": "number" + }, + "enable": { + "type": "boolean", + "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." + }, + "aggregationInterval": { + "enum": [ + "INTERVAL_10_MIN", + "INTERVAL_15_MIN", + "INTERVAL_1_MIN", + "INTERVAL_30_SEC", + "INTERVAL_5_MIN", + "INTERVAL_5_SEC" ], - "httpMethod": "POST", - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", - "id": "compute.subnetworks.setIamPolicy", - "request": { - "$ref": "RegionSetPolicyRequest" + "type": "string", + "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.", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "metadataFields": { + "type": "array", + "items": { + "type": "string" }, - "parameters": { - "region": { - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "The name of the region for this request." - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "resource": { - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "required": true - } - } + "description": "Can only be specified if VPC flow logs for this subnetwork is enabled and \"metadata\" was set to CUSTOM_METADATA." + } + }, + "id": "SubnetworkLogConfig", + "type": "object" + }, + "InstanceGroupManagerVersion": { + "properties": { + "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" }, - "getIamPolicy": { - "id": "compute.subnetworks.getIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "Policy" - }, - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", - "httpMethod": "GET", - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", - "parameters": { - "resource": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "required": true, - "location": "path", + "targetSize": { + "$ref": "FixedOrPercent", + "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." + }, + "name": { + "type": "string", + "description": "Name of the version. Unique among all versions in the scope of this managed instance group." + } + }, + "id": "InstanceGroupManagerVersion", + "type": "object" + }, + "ResourcePoliciesScopedList": { + "properties": { + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of resourcePolicies when the list is empty.", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string" }, - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "format": "int32", - "type": "integer" + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + } }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "message": { "type": "string", - "location": "path", - "description": "The name of the region for this request." + "description": "[Output Only] A human-readable description of the warning code." } + } + }, + "resourcePolicies": { + "description": "A list of resourcePolicies contained in this scope.", + "items": { + "$ref": "ResourcePolicy" }, - "parameterOrder": [ - "project", - "region", - "resource" + "type": "array" + } + }, + "id": "ResourcePoliciesScopedList", + "type": "object" + }, + "DeprecationStatus": { + "type": "object", + "id": "DeprecationStatus", + "description": "Deprecation status for a public resource.", + "properties": { + "deleted": { + "type": "string", + "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." + }, + "deprecated": { + "type": "string", + "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." + }, + "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", + "enum": [ + "ACTIVE", + "DELETED", + "DEPRECATED", + "OBSOLETE" + ], + "enumDescriptions": [ + "", + "", + "", + "" ] }, - "testIamPermissions": { - "httpMethod": "POST", - "parameters": { - "region": { - "required": true, - "description": "The name of the region for this request.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "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" + }, + "replacement": { + "type": "string", + "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." + } + } + }, + "InstanceGroupManagersSetInstanceTemplateRequest": { + "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" + } + }, + "type": "object", + "id": "InstanceGroupManagersSetInstanceTemplateRequest" + }, + "MachineType": { + "properties": { + "kind": { + "type": "string", + "default": "compute#machineType", + "description": "[Output Only] The type of the resource. Always compute#machineType for machine types." + }, + "zone": { + "type": "string", + "description": "[Output Only] The name of the zone where the machine type resides, such as us-central1-a." + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "guestCpus": { + "type": "integer", + "description": "[Output Only] The number of virtual CPUs that are available to the instance.", + "format": "int32" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "imageSpaceGb": { + "description": "[Deprecated] This property is deprecated and will never be populated with any relevant values.", + "format": "int32", + "type": "integer" + }, + "isSharedCpu": { + "description": "[Output Only] Whether this machine type has a shared CPU. See Shared-core machine types for more information.", + "type": "boolean" + }, + "deprecated": { + "description": "[Output Only] The deprecation status associated with this machine type. Only applicable if the machine type is unavailable.", + "$ref": "DeprecationStatus" + }, + "maximumPersistentDisksSizeGb": { + "description": "[Output Only] Maximum total persistent disks size (GB) allowed.", + "type": "string", + "format": "int64" + }, + "description": { + "type": "string", + "description": "[Output Only] An optional textual description of the resource." + }, + "accelerators": { + "description": "[Output Only] A list of accelerator configurations assigned to this machine type.", + "items": { + "properties": { + "guestAcceleratorType": { + "description": "The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.", + "type": "string" + }, + "guestAcceleratorCount": { + "type": "integer", + "format": "int32", + "description": "Number of accelerator cards exposed to the guest." + } }, - "project": { - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "type": "object" + }, + "type": "array" + }, + "maximumPersistentDisks": { + "type": "integer", + "format": "int32", + "description": "[Output Only] Maximum persistent disks allowed." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "memoryMb": { + "type": "integer", + "description": "[Output Only] The amount of physical memory available to the instance, defined in MB.", + "format": "int32" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "scratchDisks": { + "type": "array", + "items": { + "properties": { + "diskGb": { + "format": "int32", + "type": "integer", + "description": "Size of the scratch disk, defined in GB." + } }, - "resource": { - "required": true, - "location": "path", - "type": "string", - "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}" - } + "type": "object" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" + "description": "[Output Only] A list of extended scratch disks assigned to the instance." + } + }, + "type": "object", + "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." + }, + "Rule": { + "type": "object", + "id": "Rule", + "properties": { + "notIns": { + "items": { + "type": "string" }, - "id": "compute.subnetworks.testIamPermissions", - "response": { - "$ref": "TestPermissionsResponse" - } + "type": "array", + "description": "This is deprecated and has no effect. Do not use." }, - "insert": { - "path": "projects/{project}/regions/{region}/subnetworks", - "parameterOrder": [ - "project", - "region" - ], - "flatPath": "projects/{project}/regions/{region}/subnetworks", - "description": "Creates a subnetwork in the specified project using the data included in the request.", - "id": "compute.subnetworks.insert", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "description": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string" + }, + "conditions": { + "type": "array", + "items": { + "$ref": "Condition" }, - "parameters": { - "region": { - "description": "Name of the region scoping this request.", - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - }, - "project": { - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } + "description": "This is deprecated and has no effect. Do not use." + }, + "logConfigs": { + "items": { + "$ref": "LogConfig" }, - "request": { - "$ref": "Subnetwork" + "description": "This is deprecated and has no effect. Do not use.", + "type": "array" + }, + "permissions": { + "type": "array", + "description": "This is deprecated and has no effect. Do not use.", + "items": { + "type": "string" } }, - "setPrivateIpGoogleAccess": { - "httpMethod": "POST", - "parameters": { - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true - }, - "subnetwork": { - "description": "Name of the Subnetwork resource.", - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - } + "ins": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "region", - "subnetwork" + "description": "This is deprecated and has no effect. Do not use.", + "type": "array" + }, + "action": { + "description": "This is deprecated and has no effect. Do not use.", + "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": "Operation" + "type": "string", + "enum": [ + "ALLOW", + "ALLOW_WITH_LOG", + "DENY", + "DENY_WITH_LOG", + "LOG", + "NO_ACTION" + ] + } + }, + "description": "This is deprecated and has no effect. Do not use." + }, + "NetworksGetEffectiveFirewallsResponse": { + "properties": { + "firewallPolicys": { + "items": { + "$ref": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy" }, - "request": { - "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest" + "type": "array", + "description": "Effective firewalls from firewall policy." + }, + "firewalls": { + "type": "array", + "items": { + "$ref": "Firewall" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", - "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.", - "id": "compute.subnetworks.setPrivateIpGoogleAccess" + "description": "Effective firewalls on the network." + } + }, + "type": "object", + "id": "NetworksGetEffectiveFirewallsResponse" + }, + "UrlMapTest": { + "type": "object", + "id": "UrlMapTest", + "description": "Message for the expected URL mappings.", + "properties": { + "description": { + "description": "Description of this test case.", + "type": "string" }, - "patch": { - "id": "compute.subnetworks.patch", - "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.", - "httpMethod": "PATCH", - "request": { - "$ref": "Subnetwork" + "headers": { + "description": "HTTP headers for this request. If headers contains a host header, then host must also match the header value.", + "items": { + "$ref": "UrlMapTestHeader" }, - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "parameters": { - "region": { - "required": true, - "type": "string", - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "subnetwork": { - "type": "string", - "required": true, - "description": "Name of the Subnetwork resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "drainTimeoutSeconds": { - "type": "integer", - "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.", - "format": "int32", - "location": "query" - }, - "project": { - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "region", - "subnetwork" - ] + "type": "array" }, - "listUsable": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "UsableSubnetworksAggregatedList" - }, - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "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" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "maxResults": { - "type": "integer", - "default": "500", - "minimum": "0", - "format": "uint32", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "description": "Project ID for this request." - } - }, - "flatPath": "projects/{project}/aggregated/subnetworks/listUsable", - "description": "Retrieves an aggregated list of all usable subnetworks in the project.", - "httpMethod": "GET", - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/aggregated/subnetworks/listUsable", - "id": "compute.subnetworks.listUsable" + "path": { + "description": "Path portion of the URL.", + "type": "string" }, - "expandIpCidrRange": { - "description": "Expands the IP CIDR range of the subnetwork to a specified value.", - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "region", - "subnetwork" - ], - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "request": { - "$ref": "SubnetworksExpandIpCidrRangeRequest" - }, - "httpMethod": "POST", - "id": "compute.subnetworks.expandIpCidrRange", - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "region": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request." - }, - "subnetwork": { - "type": "string", - "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}", - "required": true, - "location": "path" - } - } + "host": { + "description": "Host portion of the URL. If headers contains a host header, then host must also match the header value.", + "type": "string" }, - "delete": { - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "DELETE", - "parameters": { - "subnetwork": { - "description": "Name of the Subnetwork resource to delete.", - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "location": "path" - }, - "region": { - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request." - } - }, - "id": "compute.subnetworks.delete", - "description": "Deletes the specified subnetwork.", - "parameterOrder": [ - "project", - "region", - "subnetwork" - ] + "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" }, - "list": { - "parameterOrder": [ - "project", - "region" - ], - "path": "projects/{project}/regions/{region}/subnetworks", - "id": "compute.subnetworks.list", - "parameters": { - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "Name of the region scoping this request." - }, - "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])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "maxResults": { - "format": "uint32", - "minimum": "0", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/regions/{region}/subnetworks", - "httpMethod": "GET", - "response": { - "$ref": "SubnetworkList" - }, - "description": "Retrieves a list of subnetworks available to the specified project." + "expectedRedirectResponseCode": { + "format": "int32", + "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" }, - "aggregatedList": { - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "project": { - "location": "path", - "required": true, - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "maxResults": { - "type": "integer", - "location": "query", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500" - }, - "includeAllScopes": { - "type": "boolean", - "location": "query", - "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." - } - }, - "httpMethod": "GET", - "id": "compute.subnetworks.aggregatedList", - "flatPath": "projects/{project}/aggregated/subnetworks", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/aggregated/subnetworks", - "response": { - "$ref": "SubnetworkAggregatedList" - }, - "description": "Retrieves an aggregated list of subnetworks." + "service": { + "type": "string", + "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set." } } }, - "regionInstanceGroups": { - "methods": { - "get": { - "parameterOrder": [ - "project", - "region", - "instanceGroup" - ], - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", - "id": "compute.regionInstanceGroups.get", - "response": { - "$ref": "InstanceGroup" + "InstanceGroupManagerStatusStateful": { + "type": "object", + "properties": { + "perInstanceConfigs": { + "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", + "description": "[Output Only] Status of per-instance configurations on the instance." + }, + "hasStatefulConfig": { + "type": "boolean", + "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." + } + }, + "id": "InstanceGroupManagerStatusStateful" + }, + "TargetHttpsProxiesSetCertificateMapRequest": { + "properties": { + "certificateMap": { + "type": "string", + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy." + } + }, + "id": "TargetHttpsProxiesSetCertificateMapRequest", + "type": "object" + }, + "OutlierDetection": { + "properties": { + "enforcingSuccessRate": { + "format": "int32", + "description": "The percentage chance that a host will be actually 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.", + "type": "integer" + }, + "consecutiveErrors": { + "description": "Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5.", + "format": "int32", + "type": "integer" + }, + "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 * success_rate_stdev_factor). 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.", + "type": "integer", + "format": "int32" + }, + "interval": { + "description": "Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.", + "$ref": "Duration" + }, + "baseEjectionTime": { + "$ref": "Duration", + "description": "The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s." + }, + "enforcingConsecutiveErrors": { + "type": "integer", + "description": "The percentage chance that a host will be actually 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.", + "format": "int32" + }, + "maxEjectionPercent": { + "format": "int32", + "description": "Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.", + "type": "integer" + }, + "successRateMinimumHosts": { + "description": "The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.", + "format": "int32", + "type": "integer" + }, + "enforcingConsecutiveGatewayFailure": { + "format": "int32", + "type": "integer", + "description": "The percentage chance that a host will be actually 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." + }, + "successRateRequestVolume": { + "format": "int32", + "type": "integer", + "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host 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 host. Defaults to 100." + }, + "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" + } + }, + "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service.", + "id": "OutlierDetection", + "type": "object" + }, + "CacheKeyPolicy": { + "type": "object", + "description": "Message containing what to include in the cache key for a request for Cloud CDN.", + "id": "CacheKeyPolicy", + "properties": { + "includeHost": { + "type": "boolean", + "description": "If true, requests to different hosts will be cached separately." + }, + "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.", + "items": { + "type": "string" }, - "description": "Returns the specified instance group resource.", - "httpMethod": "GET", - "parameters": { - "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", - "type": "string", - "required": true, - "description": "Project ID for this request." - }, - "region": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the region scoping this request." - }, - "instanceGroup": { - "location": "path", - "description": "Name of the instance group resource to return.", - "type": "string", - "required": true - } + "type": "array" + }, + "queryStringWhitelist": { + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "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" }, - "setNamedPorts": { - "request": { - "$ref": "RegionInstanceGroupsSetNamedPortsRequest" + "includeNamedCookies": { + "type": "array", + "items": { + "type": "string" }, - "httpMethod": "POST", - "id": "compute.regionInstanceGroups.setNamedPorts", - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", - "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.", - "parameters": { - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - }, - "instanceGroup": { - "type": "string", - "location": "path", - "required": true, - "description": "The name of the regional instance group where the named ports are updated." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "type": "string", - "required": true - } + "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." + }, + "includeHttpHeaders": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "region", - "instanceGroup" - ], - "response": { - "$ref": "Operation" - } + "description": "Allows HTTP request headers (by name) to be used in the cache key.", + "type": "array" }, - "list": { - "path": "projects/{project}/regions/{region}/instanceGroups", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "region": { - "required": true, - "type": "string", - "description": "Name of the region scoping this request.", - "location": "path" - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "maxResults": { - "default": "500", - "format": "uint32", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "minimum": "0" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "RegionInstanceGroupList" - }, - "flatPath": "projects/{project}/regions/{region}/instanceGroups", - "id": "compute.regionInstanceGroups.list", - "httpMethod": "GET", - "description": "Retrieves the list of instance group resources contained within the specified region." + "includeProtocol": { + "type": "boolean", + "description": "If true, http and https requests will be cached separately." }, - "listInstances": { - "id": "compute.regionInstanceGroups.listInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "POST", - "request": { - "$ref": "RegionInstanceGroupsListInstancesRequest" - }, - "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.", - "response": { - "$ref": "RegionInstanceGroupsListInstances" - }, - "parameterOrder": [ - "project", - "region", - "instanceGroup" - ], - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", - "parameters": { - "region": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the region scoping this request." - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true - }, - "instanceGroup": { - "location": "path", - "description": "Name of the regional instance group for which we want to list the instances.", - "required": true, - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "maxResults": { - "default": "500", - "type": "integer", - "format": "uint32", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - } - }, - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances" + "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" } } }, - "instanceGroupManagers": { - "methods": { - "recreateInstances": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "id": "compute.instanceGroupManagers.recreateInstances", - "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.", - "request": { - "$ref": "InstanceGroupManagersRecreateInstancesRequest" - }, - "parameters": { - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "type": "string", - "location": "path", - "required": true - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "instanceGroupManager": { - "type": "string", - "required": true, - "description": "The name of the managed instance group.", - "location": "path" - }, - "project": { - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - } - }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances" + "AdvancedMachineFeatures": { + "id": "AdvancedMachineFeatures", + "type": "object", + "properties": { + "enableNestedVirtualization": { + "type": "boolean", + "description": "Whether to enable nested virtualization or not (default is false)." }, - "setTargetPools": { - "parameters": { - "instanceGroupManager": { - "required": true, - "type": "string", - "description": "The name of the managed instance group.", - "location": "path" - }, - "zone": { - "required": true, - "type": "string", - "location": "path", - "description": "The name of the zone where the managed instance group is located." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "id": "compute.instanceGroupManagers.setTargetPools", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "httpMethod": "POST", - "request": { - "$ref": "InstanceGroupManagersSetTargetPoolsRequest" - }, - "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.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", - "response": { - "$ref": "Operation" - } + "enableUefiNetworking": { + "description": "Whether to enable UEFI networking for instance creation.", + "type": "boolean" }, - "listPerInstanceConfigs": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "response": { - "$ref": "InstanceGroupManagersListPerInstanceConfigsResp" - }, - "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "httpMethod": "POST", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "parameters": { - "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])?))", - "description": "Project ID for this request.", - "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.", - "type": "string", - "location": "query" - }, - "zone": { - "required": true, - "location": "path", - "type": "string", - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035." - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = 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`)", - "type": "integer", - "default": "500", - "location": "query", - "minimum": "0", - "format": "uint32" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "instanceGroupManager": { - "location": "path", - "type": "string", - "description": "The name of the managed instance group. It should conform to RFC1035.", - "required": true - } - }, - "id": "compute.instanceGroupManagers.listPerInstanceConfigs" + "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.", + "format": "int32", + "type": "integer" }, - "abandonInstances": { - "request": { - "$ref": "InstanceGroupManagersAbandonInstancesRequest" - }, - "httpMethod": "POST", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "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.", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path" - }, - "zone": { - "type": "string", - "location": "path", - "required": true, - "description": "The name of the zone where the managed instance group is located." - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "instanceGroupManager": { - "required": true, - "location": "path", - "description": "The name of the managed instance group.", - "type": "string" - } - }, - "id": "compute.instanceGroupManagers.abandonInstances" + "visibleCoreCount": { + "type": "integer", + "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.", + "format": "int32" + } + }, + "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)." + }, + "InterconnectDiagnostics": { + "properties": { + "macAddress": { + "description": "The MAC address of the Interconnect's bundle interface.", + "type": "string" }, - "patchPerInstanceConfigs": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.instanceGroupManagers.patchPerInstanceConfigs", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "zone": { - "required": true, - "location": "path", - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "type": "string" - }, - "instanceGroupManager": { - "type": "string", - "description": "The name of the managed instance group. It should conform to RFC1035.", - "required": true, - "location": "path" - }, - "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])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string", - "location": "path" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "httpMethod": "POST", - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", - "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", - "request": { - "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq" + "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": { - "httpMethod": "GET", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "id": "compute.instanceGroupManagers.get", - "response": { - "$ref": "InstanceGroupManager" + "links": { + "type": "array", + "items": { + "$ref": "InterconnectDiagnosticsLinkStatus" }, - "description": "Returns all of the details about the specified managed instance group. Gets a list of available managed instance groups by making a list() request.", - "parameters": { - "instanceGroupManager": { - "location": "path", - "type": "string", - "required": true, - "description": "The name of the managed instance group." - }, - "zone": { - "required": true, - "type": "string", - "location": "path", - "description": "The name of the zone where the managed instance group is located." - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - } + "description": "A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect." + } + }, + "id": "InterconnectDiagnostics", + "type": "object", + "description": "Diagnostics information about interconnect, contains detailed and current technical information about Google's side of the connection." + }, + "InstancesSetMachineResourcesRequest": { + "properties": { + "guestAccelerators": { + "description": "A list of the type and count of accelerator cards attached to the instance.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" } + } + }, + "id": "InstancesSetMachineResourcesRequest", + "type": "object" + }, + "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", + "id": "SecurityPolicyRule", + "properties": { + "redirectOptions": { + "$ref": "SecurityPolicyRuleRedirectOptions", + "description": "Parameters defining the redirect action. Cannot be specified for any other actions." }, - "patch": { - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "instanceGroupManager": { - "location": "path", - "required": true, - "type": "string", - "description": "The name of the instance group manager." - }, - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - }, - "zone": { - "required": true, - "location": "path", - "description": "The name of the zone where you want to create the managed instance group.", - "type": "string" - } - }, - "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.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.instanceGroupManagers.patch", - "httpMethod": "PATCH", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "request": { - "$ref": "InstanceGroupManager" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ] + "headerAction": { + "description": "Optional, additional actions that are performed on headers.", + "$ref": "SecurityPolicyRuleHttpHeaderAction" }, - "setInstanceTemplate": { - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "id": "compute.instanceGroupManagers.setInstanceTemplate", - "request": { - "$ref": "InstanceGroupManagersSetInstanceTemplateRequest" - }, - "parameters": { - "zone": { - "location": "path", - "required": true, - "type": "string", - "description": "The name of the zone where the managed instance group is located." - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "required": true - }, - "instanceGroupManager": { - "required": true, - "type": "string", - "description": "The name of the managed instance group.", - "location": "path" - } - }, - "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.", - "response": { - "$ref": "Operation" + "match": { + "$ref": "SecurityPolicyRuleMatcher", + "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced." + }, + "rateLimitOptions": { + "description": "Must be specified if the action is \"rate_based_ban\" or \"throttle\". Cannot be specified for any other actions.", + "$ref": "SecurityPolicyRuleRateLimitOptions" + }, + "priority": { + "format": "int32", + "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" + }, + "action": { + "type": "string", + "description": "The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values 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. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. " + }, + "kind": { + "type": "string", + "default": "compute#securityPolicyRule", + "description": "[Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "preview": { + "type": "boolean", + "description": "If set to true, the specified action is not enforced." + } + } + }, + "RegionInstanceGroupManagerDeleteInstanceConfigReq": { + "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" } + } + }, + "type": "object", + "description": "RegionInstanceGroupManagers.deletePerInstanceConfigs", + "id": "RegionInstanceGroupManagerDeleteInstanceConfigReq" + }, + "InterconnectAttachment": { + "properties": { + "adminEnabled": { + "type": "boolean", + "description": "Determines whether this Attachment will carry packets. Not present for PARTNER_PROVIDER." }, - "updatePerInstanceConfigs": { - "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "request": { - "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "required": true, - "type": "string", - "location": "path" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "zone": { - "required": true, - "location": "path", - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "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])?))", - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request." - } - }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "httpMethod": "POST", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." + "customerRouterIpAddress": { + "description": "[Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.", + "type": "string" }, - "createInstances": { - "id": "compute.instanceGroupManagers.createInstances", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" + "customerRouterIpv6Address": { + "type": "string", + "description": "[Output Only] IPv6 address + prefix length to be configured on the customer router subinterface for this interconnect attachment." + }, + "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" + }, + "cloudRouterIpAddress": { + "type": "string", + "description": "[Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "cloudRouterIpv6Address": { + "type": "string", + "description": "[Output Only] IPv6 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment." + }, + "interconnect": { + "type": "string", + "description": "URL of the underlying Interconnect object that this attachment's traffic will traverse through." + }, + "partnerMetadata": { + "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED.", + "$ref": "InterconnectAttachmentPartnerMetadata" + }, + "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", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "vlanTag8021q": { + "format": "int32", + "type": "integer", + "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. Only specified at creation time." + }, + "edgeAvailabilityDomain": { + "enumDescriptions": [ + "", + "", + "" ], - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "AVAILABILITY_DOMAIN_1", + "AVAILABILITY_DOMAIN_2", + "AVAILABILITY_DOMAIN_ANY" ], - "parameters": { - "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" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "required": true, - "type": "string", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." - } - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST", - "request": { - "$ref": "InstanceGroupManagersCreateInstancesRequest" - }, - "description": "Creates instances with per-instance configs 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." + "type": "string", + "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." }, - "resize": { - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "mtu": { + "type": "integer", + "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.", + "format": "int32" + }, + "region": { + "type": "string", + "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." + }, + "bandwidth": { + "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" ], - "id": "compute.instanceGroupManagers.resize", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", - "httpMethod": "POST", - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "instanceGroupManager": { - "required": true, - "location": "path", - "type": "string", - "description": "The name of the managed instance group." - }, - "project": { - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "zone": { - "location": "path", - "type": "string", - "description": "The name of the zone where the managed instance group is located.", - "required": true - }, - "size": { - "location": "query", - "required": true, - "format": "int32", - "type": "integer", - "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." - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager", - "size" + "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", + "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" + ] + }, + "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" + }, + "partnerAsn": { + "type": "string", + "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.", + "format": "int64" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "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. ", + "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": "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.", - "response": { - "$ref": "Operation" + "type": "string", + "enum": [ + "OS_ACTIVE", + "OS_UNPROVISIONED" + ] + }, + "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. Not currently available publicly. ", + "type": "array", + "items": { + "type": "string" } }, - "listErrors": { - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "parameters": { - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "format": "uint32", - "default": "500", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "location": "query" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "required": true - }, - "instanceGroupManager": { - "location": "path", - "required": true, - "type": "string", - "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}." - }, - "zone": { - "type": "string", - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "required": true, - "location": "path" - }, - "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" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - } - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "satisfiesPzs": { + "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present.", + "type": "boolean" + }, + "cloudRouterIpv6InterfaceId": { + "description": "This field is not available.", + "type": "string" + }, + "candidateSubnets": { + "type": "array", + "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.", + "items": { + "type": "string" + } + }, + "description": { + "description": "An optional description of this resource.", + "type": "string" + }, + "kind": { + "default": "compute#interconnectAttachment", + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments." + }, + "pairingKey": { + "type": "string", + "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of an PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"" + }, + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "customerRouterIpv6InterfaceId": { + "description": "This field is not available.", + "type": "string" + }, + "dataplaneVersion": { + "format": "int32", + "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" + }, + "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. ", + "enum": [ + "ACTIVE", + "DEFUNCT", + "PARTNER_REQUEST_RECEIVED", + "PENDING_CUSTOMER", + "PENDING_PARTNER", + "STATE_UNSPECIFIED", + "UNPROVISIONED" ], - "response": { - "$ref": "InstanceGroupManagersListErrorsResponse" - }, - "id": "compute.instanceGroupManagers.listErrors", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors", - "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors" + "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." + ] }, - "deletePerInstanceConfigs": { - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" + "candidateIpv6Subnets": { + "description": "This field is not available.", + "type": "array", + "items": { + "type": "string" + } + }, + "stackType": { + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" ], - "request": { - "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq" - }, - "response": { - "$ref": "Operation" - }, - "description": "Deletes selected per-instance configs for the managed instance group.", - "parameters": { - "zone": { - "location": "path", - "type": "string", - "required": true, - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035." - }, - "instanceGroupManager": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the managed instance group. It should conform to RFC1035." - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - } - }, - "httpMethod": "POST", - "id": "compute.instanceGroupManagers.deletePerInstanceConfigs", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string", + "enumDescriptions": [ + "The interconnect attachment can have both IPv4 and IPv6 addresses.", + "The interconnect attachment will only be assigned IPv4 addresses." ], - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs" + "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." }, - "applyUpdatesToInstances": { - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST", - "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.", - "id": "compute.instanceGroupManagers.applyUpdatesToInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "encryption": { + "enum": [ + "IPSEC", + "NONE" ], - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "request": { - "$ref": "InstanceGroupManagersApplyUpdatesRequest" - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "parameters": { - "zone": { - "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "instanceGroupManager": { - "location": "path", - "type": "string", - "description": "The name of the managed instance group, should conform to RFC1035.", - "required": true - } - } - }, - "aggregatedList": { - "description": "Retrieves the list of managed instance groups and groups them by zone.", - "parameters": { - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "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" - }, - "maxResults": { - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "default": "500", - "format": "uint32", - "location": "query" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "includeAllScopes": { - "type": "boolean", - "location": "query", - "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." - }, - "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])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/aggregated/instanceGroupManagers", - "response": { - "$ref": "InstanceGroupManagerAggregatedList" - }, - "httpMethod": "GET", - "path": "projects/{project}/aggregated/instanceGroupManagers", - "id": "compute.instanceGroupManagers.aggregatedList", - "parameterOrder": [ - "project" + "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." ] }, - "deleteInstances": { - "request": { - "$ref": "InstanceGroupManagersDeleteInstancesRequest" - }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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.", + "type": "string" + }, + "type": { + "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." ], - "id": "compute.instanceGroupManagers.deleteInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "type": "string", - "location": "path", - "required": true, - "description": "The name of the managed instance group." - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "required": true - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "zone": { - "required": true, - "description": "The name of the zone where the managed instance group is located.", - "type": "string", - "location": "path" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" + "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. ", + "enum": [ + "DEDICATED", + "PARTNER", + "PARTNER_PROVIDER" + ] + } + }, + "type": "object", + "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.", + "id": "InterconnectAttachment" + }, + "LocationPolicyLocation": { + "type": "object", + "id": "LocationPolicyLocation", + "properties": { + "preference": { + "description": "Preference for a given location. Set to either ALLOW or DENY.", + "type": "string", + "enum": [ + "ALLOW", + "DENY", + "PREFERENCE_UNSPECIFIED" ], - "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.", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances" + "enumDescriptions": [ + "Location is allowed for use.", + "Location is prohibited.", + "Default value, unused." + ] }, - "insert": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "constraints": { + "$ref": "LocationPolicyLocationConstraints", + "description": "Constraints that the caller requires on the result distribution in this zone." + } + } + }, + "AllocationSpecificSKUReservation": { + "properties": { + "instanceProperties": { + "description": "The instance properties for the reservation.", + "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties" + }, + "inUseCount": { + "type": "string", + "description": "[Output Only] Indicates how many instances are in use.", + "format": "int64" + }, + "assuredCount": { + "description": "[Output Only] Indicates how many instances are actually usable currently.", + "type": "string", + "format": "int64" + }, + "count": { + "type": "string", + "format": "int64", + "description": "Specifies the number of resources that are allocated." + } + }, + "id": "AllocationSpecificSKUReservation", + "type": "object", + "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 6" + }, + "PublicAdvertisedPrefix": { + "properties": { + "fingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "status": { + "type": "string", + "enum": [ + "INITIAL", + "PREFIX_CONFIGURATION_COMPLETE", + "PREFIX_CONFIGURATION_IN_PROGRESS", + "PREFIX_REMOVAL_IN_PROGRESS", + "PTR_CONFIGURED", + "REVERSE_DNS_LOOKUP_FAILED", + "VALIDATED" ], - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "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])?))", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "required": true, - "location": "path", - "description": "The name of the zone where you want to create the managed instance group.", - "type": "string" - } - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", - "id": "compute.instanceGroupManagers.insert", - "response": { - "$ref": "Operation" + "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. ", + "enumDescriptions": [ + "RPKI validation is complete.", + "The prefix is fully configured.", + "The prefix is being configured.", + "The prefix is being removed.", + "User has configured the PTR.", + "Reverse DNS lookup failed.", + "Reverse DNS lookup is successful." + ] + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "ipCidrRange": { + "description": "The IPv4 address range, in CIDR format, represented by this public advertised prefix.", + "type": "string" + }, + "publicDelegatedPrefixs": { + "description": "[Output Only] The list of public delegated prefixes that exist for this public advertised prefix.", + "type": "array", + "items": { + "$ref": "PublicAdvertisedPrefixPublicDelegatedPrefix" + } + }, + "sharedSecret": { + "type": "string", + "description": "[Output Only] The shared secret to be used for reverse DNS verification." + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "format": "uint64" + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "annotations": { + "required": [ + "compute.publicAdvertisedPrefixes.insert" + ] }, - "httpMethod": "POST", - "parameterOrder": [ - "project", - "zone" - ], - "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.", - "request": { - "$ref": "InstanceGroupManager" + "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." + }, + "dnsVerificationIp": { + "description": "The IPv4 address to be used for reverse DNS verification.", + "type": "string" + }, + "kind": { + "default": "compute#publicAdvertisedPrefix", + "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + } + }, + "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", + "id": "PublicAdvertisedPrefix" + }, + "DiskTypeList": { + "id": "DiskTypeList", + "description": "Contains a list of disk types.", + "type": "object", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "items": { + "$ref": "DiskType" }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers" + "description": "A list of DiskType resources.", + "type": "array" }, - "delete": { - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "type": "string", + "default": "compute#diskTypeList", + "description": "[Output Only] Type of resource. Always compute#diskTypeList for disk types." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "warning": { + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "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])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "type": "string", - "location": "path", - "required": true + "data": { + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "instanceGroupManager": { - "location": "path", - "description": "The name of the managed instance group to delete.", + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "required": true + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." } }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "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.", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.instanceGroupManagers.delete", - "httpMethod": "DELETE" - }, - "listManagedInstances": { - "httpMethod": "POST", - "parameters": { - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "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" + "type": "object", + "description": "[Output Only] Informational warning message." + } + } + }, + "SecurityPolicyRecaptchaOptionsConfig": { + "id": "SecurityPolicyRecaptchaOptionsConfig", + "properties": { + "redirectSiteKey": { + "type": "string", + "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." + } + }, + "type": "object" + }, + "UrlMapList": { + "type": "object", + "description": "Contains a list of UrlMap resources.", + "properties": { + "warning": { + "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "filter": { - "location": "query", + "message": { "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "description": "[Output Only] A human-readable description of the warning code." }, - "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", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "Project ID for this request.", - "required": true - }, - "maxResults": { - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "location": "query", - "minimum": "0", - "default": "500" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "required": true, - "location": "path", - "type": "string" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "required": true, - "location": "path", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "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", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "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.", - "response": { - "$ref": "InstanceGroupManagersListManagedInstancesResponse" - }, - "id": "compute.instanceGroupManagers.listManagedInstances", - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "type": "object", + "description": "[Output Only] Informational warning message." }, - "list": { - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "orderBy": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "items": { + "description": "A list of UrlMap resources.", + "type": "array", + "items": { + "$ref": "UrlMap" + } + }, + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "description": "Type of resource.", + "default": "compute#urlMapList", + "type": "string" + } + }, + "id": "UrlMapList" + }, + "NodeGroupMaintenanceWindow": { + "type": "object", + "description": "Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window.", + "id": "NodeGroupMaintenanceWindow", + "properties": { + "startTime": { + "type": "string", + "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." + }, + "maintenanceDuration": { + "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", + "$ref": "Duration" + } + } + }, + "SslPoliciesList": { + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#sslPoliciesList for lists of sslPolicies.", + "default": "compute#sslPoliciesList" + }, + "warning": { + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "maxResults": { - "minimum": "0", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "format": "uint32", - "default": "500" + "data": { + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "zone": { - "required": true, + "message": { "type": "string", - "description": "The name of the zone where the managed instance group is located.", - "location": "path" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." } }, - "id": "compute.instanceGroupManagers.list", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", - "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers", - "httpMethod": "GET", - "response": { - "$ref": "InstanceGroupManagerList" - }, - "parameterOrder": [ - "project", - "zone" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "type": "object", + "description": "[Output Only] Informational warning message." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "array", + "description": "A list of SslPolicy resources.", + "items": { + "$ref": "SslPolicy" + } } - } + }, + "type": "object", + "id": "SslPoliciesList" }, - "serviceAttachments": { - "methods": { - "patch": { - "id": "compute.serviceAttachments.patch", - "httpMethod": "PATCH", - "request": { - "$ref": "ServiceAttachment" + "FirewallPolicyAssociation": { + "properties": { + "firewallPolicyId": { + "description": "[Output Only] The firewall policy ID of the association.", + "type": "string" + }, + "attachmentTarget": { + "type": "string", + "description": "The target that the firewall policy is attached to." + }, + "name": { + "type": "string", + "description": "The name for an association." + }, + "displayName": { + "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy of the association.", + "type": "string" + }, + "shortName": { + "description": "[Output Only] The short name of the firewall policy of the association.", + "type": "string" + } + }, + "id": "FirewallPolicyAssociation", + "type": "object" + }, + "SecurityPolicyRuleHttpHeaderAction": { + "id": "SecurityPolicyRuleHttpHeaderAction", + "properties": { + "requestHeadersToAdds": { + "items": { + "$ref": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "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.", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "parameterOrder": [ - "project", - "region", - "serviceAttachment" - ], - "parameters": { - "region": { - "required": true, - "location": "path", - "type": "string", - "description": "The region scoping this request and should conform to RFC1035." - }, - "serviceAttachment": { - "type": "string", - "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.", - "required": true, - "location": "path" + "type": "array", + "description": "The list of request headers to add or overwrite if they're already present." + } + }, + "type": "object" + }, + "ReservationList": { + "type": "object", + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", + "code": { "type": "string", - "location": "query" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" } - }, - "response": { - "$ref": "Operation" } }, - "aggregatedList": { - "id": "compute.serviceAttachments.aggregatedList", - "parameters": { - "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" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Name of the project scoping this request.", - "location": "path" - }, - "maxResults": { - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "includeAllScopes": { - "location": "query", - "type": "boolean", - "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." - } - }, - "path": "projects/{project}/aggregated/serviceAttachments", - "httpMethod": "GET", - "flatPath": "projects/{project}/aggregated/serviceAttachments", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project" - ], - "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project.", - "response": { - "$ref": "ServiceAttachmentAggregatedList" + "kind": { + "type": "string", + "description": "[Output Only] Type of resource.Always compute#reservationsList for listsof reservations", + "default": "compute#reservationList" + }, + "items": { + "type": "array", + "description": "[Output Only] A list of Allocation resources.", + "items": { + "$ref": "Reservation" } + } + }, + "id": "ReservationList" + }, + "BackendServiceFailoverPolicy": { + "id": "BackendServiceFailoverPolicy", + "properties": { + "failoverRatio": { + "format": "float", + "type": "number", + "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)." }, - "list": { - "response": { - "$ref": "ServiceAttachmentList" - }, - "description": "Lists the ServiceAttachments for a project in the given scope.", - "parameterOrder": [ - "project", - "region" - ], - "id": "compute.serviceAttachments.list", - "parameters": { - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "maxResults": { - "type": "integer", - "location": "query", - "minimum": "0", - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "Name of the region of this request.", - "location": "path" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - } - }, - "httpMethod": "GET", - "path": "projects/{project}/regions/{region}/serviceAttachments", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/regions/{region}/serviceAttachments" + "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 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). The default is false.", + "type": "boolean" }, - "get": { - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "parameters": { - "serviceAttachment": { - "required": true, - "location": "path", - "type": "string", - "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}" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "region": { - "description": "Name of the region of this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "parameterOrder": [ - "project", - "region", - "serviceAttachment" - ], - "description": "Returns the specified ServiceAttachment resource in the given scope.", - "response": { - "$ref": "ServiceAttachment" - }, - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "httpMethod": "GET", - "id": "compute.serviceAttachments.get", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "disableConnectionDrainOnFailover": { + "type": "boolean", + "description": "This can be set to true only if the protocol is TCP. The default is false." + } + }, + "type": "object", + "description": "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). 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)." + }, + "NodeGroupAggregatedList": { + "id": "NodeGroupAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#nodeGroupAggregatedList for aggregated lists of node groups.", + "type": "string", + "default": "compute#nodeGroupAggregatedList" }, - "testIamPermissions": { - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.serviceAttachments.testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.", - "response": { - "$ref": "TestPermissionsResponse" - }, - "httpMethod": "POST", - "parameters": { - "region": { - "type": "string", - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" }, - "resource": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "location": "path", + "message": { "type": "string", - "required": true + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } } }, - "setIamPolicy": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", - "parameters": { - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the region for this request.", - "required": true, - "location": "path", - "type": "string" - }, - "resource": { - "required": true, - "description": "Name or id of the resource for this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path" - } - }, - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "id": "compute.serviceAttachments.setIamPolicy", - "response": { - "$ref": "Policy" + "unreachables": { + "items": { + "type": "string" }, - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "type": "array", + "description": "[Output Only] Unreachable resources." }, - "insert": { - "flatPath": "projects/{project}/regions/{region}/serviceAttachments", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "id": "compute.serviceAttachments.insert", - "path": "projects/{project}/regions/{region}/serviceAttachments", - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$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" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of node groups.", + "$ref": "NodeGroupsScopedList" }, - "httpMethod": "POST", - "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.", - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "region": { - "type": "string", - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true - } + "description": "A list of NodeGroupsScopedList resources.", + "type": "object" + } + } + }, + "PacketMirroringMirroredResourceInfo": { + "id": "PacketMirroringMirroredResourceInfo", + "properties": { + "subnetworks": { + "type": "array", + "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.", + "items": { + "$ref": "PacketMirroringMirroredResourceInfoSubnetInfo" } }, - "delete": { - "parameters": { - "region": { - "location": "path", - "required": true, - "description": "Name of the region of this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "serviceAttachment": { - "type": "string", - "required": true, - "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" - }, - "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", - "description": "Project ID for this request." - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - } - }, - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "DELETE", - "description": "Deletes the specified ServiceAttachment in the given scope", - "parameterOrder": [ - "project", - "region", - "serviceAttachment" - ], - "id": "compute.serviceAttachments.delete", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}" + "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" + } }, - "getIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameters": { - "region": { - "type": "string", - "location": "path", - "required": true, - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "resource": { - "location": "path", - "required": true, - "description": "Name or id of the resource for this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "optionsRequestedPolicyVersion": { - "format": "int32", - "type": "integer", - "description": "Requested IAM Policy version.", - "location": "query" - }, - "project": { - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - } + "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.", + "items": { + "$ref": "PacketMirroringMirroredResourceInfoInstanceInfo" }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", - "httpMethod": "GET", - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "id": "compute.serviceAttachments.getIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "type": "array" + } + }, + "type": "object" + }, + "LogConfig": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "object", + "id": "LogConfig", + "properties": { + "dataAccess": { + "description": "This is deprecated and has no effect. Do not use.", + "$ref": "LogConfigDataAccessOptions" + }, + "counter": { + "description": "This is deprecated and has no effect. Do not use.", + "$ref": "LogConfigCounterOptions" + }, + "cloudAudit": { + "description": "This is deprecated and has no effect. Do not use.", + "$ref": "LogConfigCloudAuditOptions" } } }, - "targetInstances": { - "methods": { - "delete": { - "httpMethod": "DELETE", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true - }, - "zone": { - "description": "Name of the zone scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "required": true - }, - "targetInstance": { - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "description": "Name of the TargetInstance resource to delete." - } - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone", - "targetInstance" - ], - "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", - "id": "compute.targetInstances.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", - "description": "Deletes the specified TargetInstance resource." + "HealthCheck": { + "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/v1/healthChecks) * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.HealthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", + "properties": { + "http2HealthCheck": { + "$ref": "HTTP2HealthCheck" }, - "get": { - "id": "compute.targetInstances.get", - "httpMethod": "GET", - "parameterOrder": [ - "project", - "zone", - "targetInstance" + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "region": { + "description": "[Output Only] Region where the health check resides. Not applicable to global health checks.", + "type": "string" + }, + "type": { + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" ], - "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", - "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.", - "parameters": { - "targetInstance": { - "type": "string", - "location": "path", - "required": true, - "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}" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "zone": { - "description": "Name of the zone scoping this request.", - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "flatPath": "projects/{project}/zones/{zone}/targetInstances/{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": "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", + "enum": [ + "GRPC", + "HTTP", + "HTTP2", + "HTTPS", + "INVALID", + "SSL", + "TCP" ] }, - "insert": { - "parameterOrder": [ - "project", - "zone" + "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.", + "format": "int32", + "type": "integer" + }, + "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" + }, + "httpsHealthCheck": { + "$ref": "HTTPSHealthCheck" + }, + "grpcHealthCheck": { + "$ref": "GRPCHealthCheck" + }, + "unhealthyThreshold": { + "format": "int32", + "type": "integer", + "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in 3339 text format." + }, + "kind": { + "description": "Type of the resource.", + "type": "string", + "default": "compute#healthCheck" + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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." + }, + "httpHealthCheck": { + "$ref": "HTTPHealthCheck" + }, + "sslHealthCheck": { + "$ref": "SSLHealthCheck" + }, + "checkIntervalSec": { + "format": "int32", + "type": "integer", + "description": "How often (in seconds) to send a health check. The default value is 5 seconds." + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "logConfig": { + "$ref": "HealthCheckLogConfig", + "description": "Configure logging on this health check." + }, + "tcpHealthCheck": { + "$ref": "TCPHealthCheck" + } + }, + "type": "object", + "id": "HealthCheck" + }, + "InterconnectAttachmentPrivateInfo": { + "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.", + "format": "uint32", + "type": "integer" + } + }, + "description": "Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED.", + "id": "InterconnectAttachmentPrivateInfo" + }, + "LogConfigCounterOptionsCustomField": { + "type": "object", + "description": "This is deprecated and has no effect. Do not use.", + "id": "LogConfigCounterOptionsCustomField", + "properties": { + "value": { + "type": "string", + "description": "This is deprecated and has no effect. Do not use." + }, + "name": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string" + } + } + }, + "HTTPSHealthCheck": { + "type": "object", + "id": "HTTPSHealthCheck", + "properties": { + "portSpecification": { + "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields.", + "type": "string", + "enumDescriptions": [ + "The port number in port is used for health checking.", + "The portName is used for health checking.", + "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." ], - "request": { - "$ref": "TargetInstance" - }, - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/zones/{zone}/targetInstances", - "flatPath": "projects/{project}/zones/{zone}/targetInstances", - "parameters": { - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "zone": { - "description": "Name of the zone scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path", - "type": "string" - } - }, - "httpMethod": "POST", - "id": "compute.targetInstances.insert", - "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" ] }, - "aggregatedList": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.targetInstances.aggregatedList", - "flatPath": "projects/{project}/aggregated/targetInstances", - "description": "Retrieves an aggregated list of target instances.", - "parameterOrder": [ - "project" - ], - "httpMethod": "GET", - "parameters": { - "includeAllScopes": { - "location": "query", - "type": "boolean", - "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." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "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`)", - "location": "query", - "format": "uint32", - "type": "integer", - "minimum": "0", - "default": "500" - }, - "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" - } - }, - "path": "projects/{project}/aggregated/targetInstances", - "response": { - "$ref": "TargetInstanceAggregatedList" - } + "requestPath": { + "type": "string", + "description": "The request path of the HTTPS health check request. The default value is /." }, - "list": { - "id": "compute.targetInstances.list", - "response": { - "$ref": "TargetInstanceList" - }, - "parameters": { - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "type": "integer", - "location": "query", - "format": "uint32", - "minimum": "0" - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "type": "string" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "zone": { - "description": "Name of the zone scoping this request.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - } - }, - "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.", - "path": "projects/{project}/zones/{zone}/targetInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "zone" + "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": [ + "", + "" ], - "httpMethod": "GET", - "flatPath": "projects/{project}/zones/{zone}/targetInstances" + "enum": [ + "NONE", + "PROXY_V1" + ] + }, + "response": { + "type": "string", + "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII." + }, + "port": { + "type": "integer", + "format": "int32", + "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535." + }, + "portName": { + "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "type": "string" + }, + "host": { + "type": "string", + "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used." } } }, - "regionDiskTypes": { - "methods": { - "get": { - "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.", - "response": { - "$ref": "DiskType" - }, - "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "diskType": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the disk type to return.", - "type": "string" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "type": "string" - }, - "region": { - "type": "string", - "location": "path", - "description": "The name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "path": "projects/{project}/regions/{region}/diskTypes/{diskType}", - "httpMethod": "GET", - "parameterOrder": [ - "project", - "region", - "diskType" - ], - "id": "compute.regionDiskTypes.get" + "DisksResizeRequest": { + "properties": { + "sizeGb": { + "type": "string", + "format": "int64", + "description": "The new size of the persistent disk, which is specified in GB." + } + }, + "type": "object", + "id": "DisksResizeRequest" + }, + "InstanceGroupManagersSetTargetPoolsRequest": { + "type": "object", + "id": "InstanceGroupManagersSetTargetPoolsRequest", + "properties": { + "fingerprint": { + "type": "string", + "format": "byte", + "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." }, - "list": { - "parameterOrder": [ - "project", - "region" - ], - "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.", - "flatPath": "projects/{project}/regions/{region}/diskTypes", - "response": { - "$ref": "RegionDiskTypeList" - }, - "path": "projects/{project}/regions/{region}/diskTypes", - "id": "compute.regionDiskTypes.list", - "httpMethod": "GET", - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "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])?))", - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true - }, - "maxResults": { - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "format": "uint32", - "type": "integer", - "default": "500" - }, - "region": { - "type": "string", - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - } + "targetPools": { + "type": "array", + "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.", + "items": { + "type": "string" } } } }, - "firewalls": { - "methods": { - "list": { - "parameterOrder": [ - "project" + "RouteAsPath": { + "properties": { + "pathSegmentType": { + "enumDescriptions": [ + "", + "", + "", + "" ], - "response": { - "$ref": "FirewallList" + "type": "string", + "enum": [ + "AS_CONFED_SEQUENCE", + "AS_CONFED_SET", + "AS_SEQUENCE", + "AS_SET" + ], + "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 " + }, + "asLists": { + "items": { + "format": "uint32", + "type": "integer" }, - "description": "Retrieves the list of firewall rules available to the specified project.", - "id": "compute.firewalls.list", - "httpMethod": "GET", - "flatPath": "projects/{project}/global/firewalls", - "path": "projects/{project}/global/firewalls", - "parameters": { - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" + "description": "[Output Only] The AS numbers of the AS Path.", + "type": "array" + } + }, + "id": "RouteAsPath", + "type": "object" + }, + "GRPCHealthCheck": { + "id": "GRPCHealthCheck", + "type": "object", + "properties": { + "portName": { + "type": "string", + "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035." + }, + "port": { + "type": "integer", + "description": "The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535.", + "format": "int32" + }, + "portSpecification": { + "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields.", + "type": "string", + "enumDescriptions": [ + "The port number in port is used for health checking.", + "The portName is used for health checking.", + "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + ], + "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" + } + } + }, + "SslCertificateList": { + "description": "Contains a list of SslCertificate resources.", + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "type": "array", + "items": { + "$ref": "SslCertificate" + }, + "description": "A list of SslCertificate resources." + }, + "kind": { + "default": "compute#sslCertificateList", + "type": "string", + "description": "Type of resource." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" }, - "orderBy": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "maxResults": { - "location": "query", - "minimum": "0", - "default": "500", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + } + }, + "id": "SslCertificateList", + "type": "object" + }, + "VpnGatewayAggregatedList": { + "type": "object", + "id": "VpnGatewayAggregatedList", + "properties": { + "unreachables": { + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "type": "array", + "description": "[Output Only] Unreachable resources." }, - "update": { - "parameters": { - "requestId": { + "items": { + "type": "object", + "description": "A list of VpnGateway resources.", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of VPN gateways.", + "$ref": "VpnGatewaysScopedList" + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "properties": { + "message": { "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" + "description": "[Output Only] A human-readable description of the warning code." }, - "firewall": { - "description": "Name of the firewall rule to update.", - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" }, - "project": { - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + } } }, - "httpMethod": "PUT", - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/firewalls/{firewall}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "request": { - "$ref": "Firewall" - }, - "id": "compute.firewalls.update", - "parameterOrder": [ - "project", - "firewall" - ], - "flatPath": "projects/{project}/global/firewalls/{firewall}", - "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." + "type": "object", + "description": "[Output Only] Informational warning message." }, - "get": { - "flatPath": "projects/{project}/global/firewalls/{firewall}", - "description": "Returns the specified firewall.", - "httpMethod": "GET", - "id": "compute.firewalls.get", - "response": { - "$ref": "Firewall" - }, - "parameterOrder": [ - "project", - "firewall" - ], - "path": "projects/{project}/global/firewalls/{firewall}", - "parameters": { - "project": { - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." - }, - "firewall": { - "type": "string", - "location": "path", - "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}", - "required": true - } + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", + "type": "string", + "default": "compute#vpnGatewayAggregatedList" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "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" + } + } + }, + "Image": { + "type": "object", + "description": "Represents an Image resource. You can use images to create boot disks for your VM instances. For more information, read Images.", + "properties": { + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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": "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." }, - "insert": { - "parameterOrder": [ - "project" + "sourceType": { + "enum": [ + "RAW" ], - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/firewalls", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "The type of the image used to create this disk. The default and only valid value is RAW.", + "enumDescriptions": [ + "" ], - "httpMethod": "POST", - "request": { - "$ref": "Firewall" - }, - "description": "Creates a firewall rule in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/firewalls", - "id": "compute.firewalls.insert", - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - } + "default": "RAW", + "type": "string" + }, + "shieldedInstanceInitialState": { + "description": "Set the secure boot keys of shielded instance.", + "$ref": "InitialStateConfig" + }, + "sourceDiskId": { + "type": "string", + "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." + }, + "deprecated": { + "description": "The deprecation status associated with this image.", + "$ref": "DeprecationStatus" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "diskSizeGb": { + "type": "string", + "format": "int64", + "description": "Size of the image when restored onto a persistent disk (in GB)." + }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "storageLocations": { + "type": "array", + "description": "Cloud Storage bucket storage location of the image (regional or multi-regional).", + "items": { + "type": "string" } }, - "patch": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/firewalls/{firewall}", - "id": "compute.firewalls.patch", - "path": "projects/{project}/global/firewalls/{firewall}", - "parameters": { - "requestId": { - "location": "query", + "rawDisk": { + "type": "object", + "description": "The parameters of the raw disk image.", + "properties": { + "containerType": { "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "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.", + "enum": [ + "TAR" + ], + "enumDescriptions": [ + "" + ] }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "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" }, - "firewall": { + "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.", "type": "string", - "required": true, - "location": "path", - "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}" + "pattern": "[a-f0-9]{40}" } - }, - "httpMethod": "PATCH", - "parameterOrder": [ - "project", - "firewall" - ], - "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.", - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "Firewall" } }, - "delete": { - "description": "Deletes the specified firewall.", - "flatPath": "projects/{project}/global/firewalls/{firewall}", - "path": "projects/{project}/global/firewalls/{firewall}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "family": { + "description": "The name of the image family to which this image belongs. You can create disks by specifying 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" + }, + "archiveSizeBytes": { + "description": "Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).", + "format": "int64", + "type": "string" + }, + "sourceSnapshot": { + "type": "string", + "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 " + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" }, - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "firewall": { - "description": "Name of the firewall rule to delete.", - "type": "string", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "httpMethod": "DELETE", - "id": "compute.firewalls.delete", - "parameterOrder": [ - "project", - "firewall" - ] - } - } - }, - "reservations": { - "methods": { - "testIamPermissions": { - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", - "response": { - "$ref": "TestPermissionsResponse" - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "id": "compute.reservations.testIamPermissions", - "parameters": { - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "required": true, - "location": "path", - "type": "string" - }, - "resource": { - "type": "string", - "description": "Name or id of the resource for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path" - }, - "project": { - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - } + "description": "Labels to apply to this image. These can be later modified by the setLabels method." }, - "aggregatedList": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "id": "compute.reservations.aggregatedList", - "path": "projects/{project}/aggregated/reservations", - "description": "Retrieves an aggregated list of reservations.", - "response": { - "$ref": "ReservationAggregatedList" - }, - "parameterOrder": [ - "project" - ], - "parameters": { - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "default": "500", - "minimum": "0", - "format": "uint32", - "type": "integer" - }, - "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" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "project": { - "required": true, - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - } - }, - "flatPath": "projects/{project}/aggregated/reservations" + "sourceImage": { + "type": "string", + "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 " }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "id": "compute.reservations.list", - "parameters": { - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." - }, - "maxResults": { - "type": "integer", - "minimum": "0", - "location": "query", - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "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.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - } - }, - "flatPath": "projects/{project}/zones/{zone}/reservations", - "path": "projects/{project}/zones/{zone}/reservations", - "parameterOrder": [ - "project", - "zone" - ], - "description": "A list of all the reservations that have been configured for the specified project in specified zone.", - "response": { - "$ref": "ReservationList" - } + "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" }, - "setIamPolicy": { - "request": { - "$ref": "ZoneSetPolicyRequest" - }, - "parameters": { - "project": { - "location": "path", - "type": "string", - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "resource": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name or id of the resource for this request.", - "type": "string" - }, - "zone": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "type": "string", - "location": "path" - } + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "sourceDisk": { + "type": "string", + "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 " + }, + "sourceSnapshotId": { + "type": "string", + "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." + }, + "sourceImageId": { + "type": "string", + "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." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#image for images.", + "default": "compute#image" + }, + "guestOsFeatures": { + "items": { + "$ref": "GuestOsFeature" }, - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", - "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.", - "httpMethod": "POST", - "response": { - "$ref": "Policy" + "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" + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "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" + }, + "licenses": { + "items": { + "type": "string" }, - "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", - "parameterOrder": [ - "project", - "zone", - "resource" + "description": "Any applicable license URI.", + "type": "array" + }, + "architecture": { + "type": "string", + "description": "The architecture of the image. Valid values are ARM64 or X86_64.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" ], - "id": "compute.reservations.setIamPolicy" + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ] }, - "resize": { - "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", - "id": "compute.reservations.resize", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "zone", - "reservation" + "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": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "imageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "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." + }, + "labelFingerprint": { + "format": "byte", + "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" + }, + "status": { + "enum": [ + "DELETING", + "FAILED", + "PENDING", + "READY" ], - "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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.", + "enumDescriptions": [ + "Image is deleting.", + "Image creation failed due to an error.", + "Image hasn't been created as yet.", + "Image has been successfully created." ], - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "required": true - }, - "reservation": { - "type": "string", - "required": true, - "description": "Name of the reservation to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string", - "location": "path", - "description": "Name of the zone for this request." - } - }, - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", - "request": { - "$ref": "ReservationsResizeRequest" + "type": "string" + }, + "licenseCodes": { + "type": "array", + "description": "Integer license codes indicating which licenses are attached to this image.", + "items": { + "type": "string", + "format": "int64" + } + } + }, + "id": "Image" + }, + "BackendServiceGroupHealth": { + "id": "BackendServiceGroupHealth", + "type": "object", + "properties": { + "healthStatus": { + "items": { + "$ref": "HealthStatus" }, - "response": { - "$ref": "Operation" + "description": "Health state of the backend instances or endpoints in requested instance or network endpoint group, determined based on configured health checks.", + "type": "array" + }, + "annotations": { + "description": "Metadata defined as annotations on the network endpoint group.", + "type": "object", + "additionalProperties": { + "type": "string" } }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.reservations.getIamPolicy", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "parameters": { - "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}", - "required": true, - "type": "string", - "location": "path" - }, - "optionsRequestedPolicyVersion": { - "type": "integer", - "description": "Requested IAM Policy version.", - "location": "query", - "format": "int32" - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "type": "string", - "location": "path", - "required": true - }, - "project": { - "required": true, - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", - "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", - "response": { - "$ref": "Policy" + "kind": { + "type": "string", + "default": "compute#backendServiceGroupHealth", + "description": "[Output Only] Type of resource. Always compute#backendServiceGroupHealth for the health of backend services." + } + } + }, + "ProjectsGetXpnResources": { + "id": "ProjectsGetXpnResources", + "properties": { + "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" + }, + "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" + }, + "resources": { + "description": "Service resources (a.k.a service projects) attached to this project as their shared VPC host.", + "type": "array", + "items": { + "$ref": "XpnResourceId" } + } + }, + "type": "object" + }, + "RouterBgpPeer": { + "properties": { + "ipAddress": { + "description": "IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.", + "type": "string" }, - "insert": { - "httpMethod": "POST", - "description": "Creates a new reservation. For more information, read Reserving zonal resources.", - "request": { - "$ref": "Reservation" + "interfaceName": { + "type": "string", + "description": "Name of the interface the BGP peer is associated with." + }, + "advertisedIpRanges": { + "items": { + "$ref": "RouterAdvertisedIpRange" }, - "parameterOrder": [ - "project", - "zone" + "type": "array", + "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." + }, + "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": [ + "", + "" ], - "path": "projects/{project}/zones/{zone}/reservations", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/zones/{zone}/reservations", - "id": "compute.reservations.insert", - "parameters": { - "zone": { - "type": "string", - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "FALSE", + "TRUE" ] }, - "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true, - "description": "Project ID for this request." - }, - "reservation": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the reservation to retrieve.", - "location": "path" - }, - "zone": { - "required": true, - "location": "path", - "description": "Name of the zone for this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "response": { - "$ref": "Reservation" - }, - "id": "compute.reservations.get", - "httpMethod": "GET", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", - "parameterOrder": [ - "project", - "zone", - "reservation" - ], - "path": "projects/{project}/zones/{zone}/reservations/{reservation}", - "description": "Retrieves information about the specified reservation." + "peerIpAddress": { + "description": "IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported.", + "type": "string" }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "required": true, - "description": "Name of the zone for this request.", - "location": "path" - }, - "reservation": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "location": "path", - "description": "Name of the reservation to delete.", - "required": true - }, - "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])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true - } - }, - "parameterOrder": [ - "project", - "zone", - "reservation" - ], - "response": { - "$ref": "Operation" - }, - "id": "compute.reservations.delete", - "description": "Deletes the specified reservation.", - "httpMethod": "DELETE", - "path": "projects/{project}/zones/{zone}/reservations/{reservation}", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}" - } - } - }, - "publicDelegatedPrefixes": { - "methods": { - "insert": { - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "description": "Project ID for this request." - }, - "region": { - "location": "path", - "required": true, - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - } - }, - "request": { - "$ref": "PublicDelegatedPrefix" - }, - "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.", - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "id": "compute.publicDelegatedPrefixes.insert" + "routerApplianceInstance": { + "type": "string", + "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." }, - "list": { - "response": { - "$ref": "PublicDelegatedPrefixList" - }, - "httpMethod": "GET", - "parameterOrder": [ - "project", - "region" - ], - "description": "Lists the PublicDelegatedPrefixes for a project in the given region.", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", - "id": "compute.publicDelegatedPrefixes.list", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", - "parameters": { - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "location": "query", - "type": "integer", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "default": "500" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "required": true - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "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" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - } - } + "ipv6NexthopAddress": { + "description": "IPv6 address of the interface inside Google Cloud Platform.", + "type": "string" }, - "patch": { - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.publicDelegatedPrefixes.patch", - "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.", - "parameterOrder": [ - "project", - "region", - "publicDelegatedPrefix" - ], - "request": { - "$ref": "PublicDelegatedPrefix" - }, - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "parameters": { - "publicDelegatedPrefix": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string", - "description": "Name of the PublicDelegatedPrefix resource to patch." - }, - "project": { - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - }, - "region": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string", - "description": "Name of the region for this request." - } - }, - "httpMethod": "PATCH" + "enableIpv6": { + "type": "boolean", + "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default." }, - "delete": { - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "id": "compute.publicDelegatedPrefixes.delete", - "description": "Deletes the specified PublicDelegatedPrefix in the given region.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "DELETE", - "parameterOrder": [ - "project", - "region", - "publicDelegatedPrefix" + "managementType": { + "enum": [ + "MANAGED_BY_ATTACHMENT", + "MANAGED_BY_USER" ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true, - "location": "path" - }, - "publicDelegatedPrefix": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string", - "description": "Name of the PublicDelegatedPrefix resource to delete." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", - "type": "string", - "location": "query" - }, - "region": { - "location": "path", - "description": "Name of the region of this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } + "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." + ] + }, + "bfd": { + "description": "BFD configuration for the BGP peering.", + "$ref": "RouterBgpPeerBfd" + }, + "peerAsn": { + "description": "Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value.", + "type": "integer", + "annotations": { + "required": [ + "compute.routers.insert" + ] }, - "response": { - "$ref": "Operation" + "format": "uint32" + }, + "advertisedGroups": { + "items": { + "enum": [ + "ALL_SUBNETS" + ], + "enumDescriptions": [ + "Advertise all available subnets (including peer VPC subnets)." + ], + "type": "string" }, - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}" + "description": "User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. 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" }, - "get": { - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "GET", - "description": "Returns the specified PublicDelegatedPrefix resource in the given region.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "advertiseMode": { + "type": "string", + "description": "User-specified flag to indicate which mode to use for advertisement.", + "enumDescriptions": [ + "", + "" ], - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "response": { - "$ref": "PublicDelegatedPrefix" - }, - "id": "compute.publicDelegatedPrefixes.get", - "parameters": { - "publicDelegatedPrefix": { - "required": true, - "type": "string", - "description": "Name of the PublicDelegatedPrefix resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - }, - "region": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "Name of the region of this request.", - "required": true - } - }, - "parameterOrder": [ - "project", - "region", - "publicDelegatedPrefix" + "enum": [ + "CUSTOM", + "DEFAULT" ] }, - "aggregatedList": { - "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes", - "parameters": { - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "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.", - "type": "boolean", - "location": "query" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "maxResults": { - "default": "500", - "minimum": "0", - "location": "query", - "format": "uint32", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "project": { - "location": "path", - "description": "Name of the project scoping this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "response": { - "$ref": "PublicDelegatedPrefixAggregatedList" + "advertisedRoutePriority": { + "type": "integer", + "format": "uint32", + "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." + }, + "name": { + "annotations": { + "required": [ + "compute.routers.insert" + ] }, - "path": "projects/{project}/aggregated/publicDelegatedPrefixes", - "id": "compute.publicDelegatedPrefixes.aggregatedList", - "httpMethod": "GET", - "parameterOrder": [ - "project" - ] + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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." + }, + "peerIpv6NexthopAddress": { + "description": "IPv6 address of the BGP interface outside Google Cloud Platform.", + "type": "string" } - } + }, + "type": "object", + "id": "RouterBgpPeer" }, - "images": { - "methods": { - "list": { - "response": { - "$ref": "ImageList" - }, - "flatPath": "projects/{project}/global/images", - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/global/images", - "parameters": { - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "maxResults": { - "location": "query", - "type": "integer", - "minimum": "0", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500" - } - }, - "id": "compute.images.list", - "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.", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "HttpFaultDelay": { + "description": "Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection.", + "id": "HttpFaultDelay", + "type": "object", + "properties": { + "fixedDelay": { + "description": "Specifies the value of the fixed delay interval.", + "$ref": "Duration" }, - "getIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameters": { - "optionsRequestedPolicyVersion": { - "location": "query", - "type": "integer", - "format": "int32", - "description": "Requested IAM Policy version." - }, - "resource": { - "required": true, - "type": "string", - "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" - }, - "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", - "description": "Project ID for this request." - } - }, - "parameterOrder": [ - "project", - "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.", + "format": "double", + "type": "number" + } + } + }, + "Quota": { + "type": "object", + "description": "A quotas entry.", + "properties": { + "metric": { + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Guest CPUs", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "The total number of snapshots allowed for a single project.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": "[Output Only] Name of the quota metric.", + "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_K80_GPUS", + "COMMITTED_NVIDIA_P100_GPUS", + "COMMITTED_NVIDIA_P4_GPUS", + "COMMITTED_NVIDIA_T4_GPUS", + "COMMITTED_NVIDIA_V100_GPUS", + "COMMITTED_T2A_CPUS", + "COMMITTED_T2D_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_FORWARDING_RULES", + "GLOBAL_INTERNAL_ADDRESSES", + "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_ENDPOINT_GROUPS", + "NETWORK_FIREWALL_POLICIES", + "NODE_GROUPS", + "NODE_TEMPLATES", + "NVIDIA_A100_80GB_GPUS", + "NVIDIA_A100_GPUS", + "NVIDIA_K80_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_K80_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", + "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", + "PSC_INTERNAL_LB_FORWARDING_RULES", + "PUBLIC_ADVERTISED_PREFIXES", + "PUBLIC_DELEGATED_PREFIXES", + "REGIONAL_AUTOSCALERS", + "REGIONAL_INSTANCE_GROUP_MANAGERS", + "RESERVATIONS", + "RESOURCE_POLICIES", + "ROUTERS", + "ROUTES", + "SECURITY_POLICIES", + "SECURITY_POLICIES_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", + "SUBNETWORKS", + "T2A_CPUS", + "T2D_CPUS", + "TARGET_HTTPS_PROXIES", + "TARGET_HTTP_PROXIES", + "TARGET_INSTANCES", + "TARGET_POOLS", + "TARGET_SSL_PROXIES", + "TARGET_TCP_PROXIES", + "TARGET_VPN_GATEWAYS", + "URL_MAPS", + "VPN_GATEWAYS", + "VPN_TUNNELS", + "XPN_SERVICE_PROJECTS" ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "path": "projects/{project}/global/images/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/images/{resource}/getIamPolicy", - "id": "compute.images.getIamPolicy", - "httpMethod": "GET" + "type": "string" }, - "setIamPolicy": { - "flatPath": "projects/{project}/global/images/{resource}/setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "parameterOrder": [ - "project", - "resource" + "usage": { + "description": "[Output Only] Current usage of this metric.", + "type": "number", + "format": "double" + }, + "limit": { + "type": "number", + "format": "double", + "description": "[Output Only] Quota limit for this metric." + }, + "owner": { + "description": "[Output Only] Owning resource. This is the resource on which this quota is applied.", + "type": "string" + } + }, + "id": "Quota" + }, + "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", + "id": "NetworkPeering", + "properties": { + "importCustomRoutes": { + "description": "Whether to import the custom routes from peer network. The default value is false.", + "type": "boolean" + }, + "exportCustomRoutes": { + "type": "boolean", + "description": "Whether to export the custom routes to peer network. The default value is false." + }, + "name": { + "type": "string", + "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." + }, + "exchangeSubnetRoutes": { + "type": "boolean", + "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." + }, + "exportSubnetRoutesWithPublicIp": { + "type": "boolean", + "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." + }, + "peerMtu": { + "format": "int32", + "description": "Maximum Transmission Unit in bytes.", + "type": "integer" + }, + "stackType": { + "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." ], - "httpMethod": "POST", - "response": { - "$ref": "Policy" - }, - "id": "compute.images.setIamPolicy", - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" ], - "path": "projects/{project}/global/images/{resource}/setIamPolicy", - "parameters": { - "resource": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "type": "string", - "required": true - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - } - } + "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." }, - "getFromFamily": { - "path": "projects/{project}/global/images/family/{family}", - "description": "Returns the latest image that is part of an image family and is not deprecated.", - "httpMethod": "GET", - "response": { - "$ref": "Image" - }, - "parameters": { - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "family": { - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the image family to search for." - } - }, - "parameterOrder": [ - "project", - "family" + "importSubnetRoutesWithPublicIp": { + "type": "boolean", + "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." + }, + "state": { + "enum": [ + "ACTIVE", + "INACTIVE" ], - "id": "compute.images.getFromFamily", - "flatPath": "projects/{project}/global/images/family/{family}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string", + "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.", + "enumDescriptions": [ + "Matching configuration exists on the peer.", + "There is no matching configuration on the peer, including the case when peer does not exist." ] }, - "deprecate": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/global/images/{image}/deprecate", - "request": { - "$ref": "DeprecationStatus" - }, - "parameters": { - "image": { - "required": true, - "description": "Image name.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "location": "path" - } - }, - "id": "compute.images.deprecate", - "httpMethod": "POST", - "description": "Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead.", - "parameterOrder": [ - "project", - "image" - ], - "response": { - "$ref": "Operation" + "autoCreateRoutes": { + "type": "boolean", + "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." + }, + "network": { + "type": "string", + "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." + }, + "stateDetails": { + "type": "string", + "description": "[Output Only] Details about the current state of the peering." + } + } + }, + "NodeTemplatesScopedList": { + "properties": { + "nodeTemplates": { + "description": "[Output Only] A list of node templates contained in this scope.", + "items": { + "$ref": "NodeTemplate" }, - "flatPath": "projects/{project}/global/images/{image}/deprecate" + "type": "array" }, - "insert": { - "parameters": { - "requestId": { - "location": "query", + "warning": { + "properties": { + "message": { "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "type": "array" }, - "forceCreate": { - "description": "Force image creation if true.", - "location": "query", - "type": "boolean" - } - }, - "id": "compute.images.insert", - "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" - ], - "path": "projects/{project}/global/images", - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST", - "flatPath": "projects/{project}/global/images", - "request": { - "$ref": "Image" - }, - "description": "Creates an image in the specified project using the data included in the request." - }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/images/{image}", - "id": "compute.images.delete", - "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" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", + "code": { "type": "string", - "required": true + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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", - "image" - ], - "path": "projects/{project}/global/images/{image}", - "response": { - "$ref": "Operation" - }, - "description": "Deletes the specified image." + "type": "object", + "description": "[Output Only] An informational warning that appears when the node templates list is empty." + } + }, + "type": "object", + "id": "NodeTemplatesScopedList" + }, + "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", + "id": "ConsistentHashLoadBalancerSettingsHttpCookie", + "properties": { + "path": { + "description": "Path to set for the cookie.", + "type": "string" }, - "get": { - "parameterOrder": [ - "project", - "image" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/global/images/{image}", - "description": "Returns the specified image. Gets a list of available images by making a list() request.", - "flatPath": "projects/{project}/global/images/{image}", - "parameters": { - "image": { - "description": "Name of the image resource to return.", - "location": "path", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - } - }, - "id": "compute.images.get", - "httpMethod": "GET", - "response": { - "$ref": "Image" - } + "ttl": { + "description": "Lifetime of the cookie.", + "$ref": "Duration" }, - "testIamPermissions": { - "id": "compute.images.testIamPermissions", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/global/images/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.", - "response": { - "$ref": "TestPermissionsResponse" - }, - "flatPath": "projects/{project}/global/images/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "resource" - ], - "parameters": { - "resource": { - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name or id of the resource for this request.", - "location": "path", + "name": { + "description": "Name of the cookie.", + "type": "string" + } + } + }, + "ReservationsScopedList": { + "type": "object", + "id": "ReservationsScopedList", + "properties": { + "warning": { + "description": "Informational warning which replaces the list of reservations when the list is empty.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "project": { - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - } - } - }, - "patch": { - "flatPath": "projects/{project}/global/images/{image}", - "parameters": { - "requestId": { - "location": "query", + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "image": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "description": "Name of the image resource to patch.", - "type": "string" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "description": "Project ID for this request." + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } } }, - "parameterOrder": [ - "project", - "image" - ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "PATCH", - "path": "projects/{project}/global/images/{image}", - "request": { - "$ref": "Image" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.images.patch", - "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status." + "type": "object" }, - "setLabels": { - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "flatPath": "projects/{project}/global/images/{resource}/setLabels", - "path": "projects/{project}/global/images/{resource}/setLabels", - "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "resource" - ], - "parameters": { - "resource": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "description": "Name or id of the resource for this request.", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "httpMethod": "POST", - "id": "compute.images.setLabels" + "reservations": { + "type": "array", + "description": "A list of reservations contained in this scope.", + "items": { + "$ref": "Reservation" + } } } }, - "regionAutoscalers": { - "methods": { - "delete": { - "id": "compute.regionAutoscalers.delete", - "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "httpMethod": "DELETE", - "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "region", - "autoscaler" - ], - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "Name of the region scoping this request." - }, - "autoscaler": { - "description": "Name of the autoscaler to delete.", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - } - }, - "description": "Deletes the specified autoscaler." + "InstanceGroupManagerAutoHealingPolicy": { + "type": "object", + "id": "InstanceGroupManagerAutoHealingPolicy", + "properties": { + "initialDelaySec": { + "type": "integer", + "format": "int32", + "description": "The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600]." }, - "update": { - "description": "Updates an autoscaler in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "response": { - "$ref": "Operation" - }, - "id": "compute.regionAutoscalers.update", - "parameterOrder": [ - "project", - "region" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/autoscalers", - "parameters": { - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "Name of the region scoping this request." - }, - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "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}", - "type": "string", - "location": "query" - } + "healthCheck": { + "description": "The URL for the health check that signals autohealing.", + "type": "string" + } + } + }, + "Tags": { + "id": "Tags", + "type": "object", + "properties": { + "items": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.", + "items": { + "type": "string" }, - "httpMethod": "PUT", - "request": { - "$ref": "Autoscaler" - } + "type": "array" }, - "list": { - "response": { - "$ref": "RegionAutoscalerList" + "fingerprint": { + "type": "string", + "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.", + "format": "byte" + } + }, + "description": "A set of instance tags." + }, + "ShieldedInstanceIdentityEntry": { + "properties": { + "ekPub": { + "description": "A PEM-encoded public key.", + "type": "string" + }, + "ekCert": { + "type": "string", + "description": "A PEM-encoded X.509 certificate. This field can be empty." + } + }, + "id": "ShieldedInstanceIdentityEntry", + "description": "A Shielded Instance Identity Entry.", + "type": "object" + }, + "RegionInstanceGroupManagersDeleteInstancesRequest": { + "id": "RegionInstanceGroupManagersDeleteInstancesRequest", + "properties": { + "skipInstancesOnValidationError": { + "type": "boolean", + "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." + }, + "instances": { + "type": "array", + "items": { + "type": "string" }, - "path": "projects/{project}/regions/{region}/autoscalers", - "id": "compute.regionAutoscalers.list", - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "type": "string", - "location": "path", - "required": true - }, - "maxResults": { - "type": "integer", - "minimum": "0", - "location": "query", - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "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" - } - }, - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "description": "Retrieves a list of autoscalers contained within the specified region.", - "parameterOrder": [ - "project", - "region" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET" + "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": "object" + }, + "TargetHttpProxy": { + "id": "TargetHttpProxy", + "type": "object", + "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 GCP HTTP load balancers. * targetHttpProxies are used by external HTTP load balancers and Traffic Director. * regionTargetHttpProxies are used by internal HTTP 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.", + "properties": { + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." }, - "insert": { - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "description": "Creates an autoscaler in the specified project using the data included in the request.", - "path": "projects/{project}/regions/{region}/autoscalers", - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "required": true, - "description": "Name of the region scoping this request.", - "location": "path" - }, - "project": { - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "urlMap": { + "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService.", + "type": "string" + }, + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the regional Target HTTP Proxy resides. This field is not applicable to global Target HTTP Proxies." + }, + "fingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "proxyBind": { + "type": "boolean", + "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." + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" + }, + "kind": { + "default": "compute#targetHttpProxy", + "type": "string", + "description": "[Output Only] Type of resource. Always compute#targetHttpProxy for target HTTP proxies." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + } + } + }, + "ConsistentHashLoadBalancerSettings": { + "description": "This message defines settings for a consistent hash style load balancer.", + "type": "object", + "id": "ConsistentHashLoadBalancerSettings", + "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" + }, + "minimumRingSize": { + "format": "int64", + "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" + }, + "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" + } + } + }, + "LocationPolicy": { + "id": "LocationPolicy", + "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": { + "enum": [ + "ANY", + "ANY_SINGLE_ZONE", + "BALANCED" ], - "request": { - "$ref": "Autoscaler" - }, - "id": "compute.regionAutoscalers.insert", - "httpMethod": "POST", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "region" + "type": "string", + "description": "Strategy for distributing VMs across zones in a region.", + "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." ] + } + }, + "description": "Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).", + "type": "object" + }, + "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": { + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" }, - "patch": { - "request": { - "$ref": "Autoscaler" - }, - "parameterOrder": [ - "project", - "region" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "PATCH", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "path": "projects/{project}/regions/{region}/autoscalers", - "response": { - "$ref": "Operation" + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "unhealthyThreshold": { + "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", + "format": "int32", + "type": "integer" + }, + "checkIntervalSec": { + "type": "integer", + "format": "int32", + "description": "How often (in seconds) to send a health check. The default value is 5 seconds." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "port": { + "format": "int32", + "description": "The TCP port number for the HTTPS health check request. The default value is 443.", + "type": "integer" + }, + "requestPath": { + "type": "string", + "description": "The request path of the HTTPS health check request. The default value is \"/\"." + }, + "kind": { + "description": "Type of the resource.", + "type": "string", + "default": "compute#httpsHealthCheck" + }, + "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" + }, + "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" + }, + "healthyThreshold": { + "format": "int32", + "type": "integer", + "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2." + }, + "timeoutSec": { + "type": "integer", + "format": "int32", + "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." + } + } + }, + "TargetReference": { + "id": "TargetReference", + "type": "object", + "properties": { + "target": { + "type": "string" + } + } + }, + "TargetTcpProxiesSetBackendServiceRequest": { + "type": "object", + "properties": { + "service": { + "description": "The URL of the new BackendService resource for the targetTcpProxy.", + "type": "string" + } + }, + "id": "TargetTcpProxiesSetBackendServiceRequest" + }, + "InstanceGroupManagerStatusVersionTarget": { + "properties": { + "isReached": { + "type": "boolean", + "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." + } + }, + "id": "InstanceGroupManagerStatusVersionTarget", + "type": "object" + }, + "TargetPoolsRemoveInstanceRequest": { + "properties": { + "instances": { + "type": "array", + "items": { + "$ref": "InstanceReference" }, - "id": "compute.regionAutoscalers.patch", - "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.", - "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" - }, - "region": { - "required": true, - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." - } - } + "description": "URLs of the instances to be removed from target pool." + } + }, + "type": "object", + "id": "TargetPoolsRemoveInstanceRequest" + }, + "GuestAttributesEntry": { + "type": "object", + "properties": { + "namespace": { + "type": "string", + "description": "Namespace for the guest attribute entry." }, - "get": { - "response": { - "$ref": "Autoscaler" + "value": { + "type": "string", + "description": "Value for the guest attribute entry." + }, + "key": { + "type": "string", + "description": "Key for the guest attribute entry." + } + }, + "description": "A guest attributes namespace/key/value entry.", + "id": "GuestAttributesEntry" + }, + "VpnGatewaysGetStatusResponse": { + "properties": { + "result": { + "$ref": "VpnGatewayStatus" + } + }, + "type": "object", + "id": "VpnGatewaysGetStatusResponse" + }, + "InterconnectList": { + "description": "Response to the list request, and contains a list of interconnects.", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "Interconnect" }, - "id": "compute.regionAutoscalers.get", - "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "description": "Returns the specified autoscaler.", - "parameters": { - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" + "description": "A list of Interconnect resources." + }, + "warning": { + "properties": { + "code": { + "type": "string", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "region": { - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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": { + "message": { "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the autoscaler to return." + "description": "[Output Only] A human-readable description of the warning code." } }, - "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "region", - "autoscaler" - ] + "description": "[Output Only] Informational warning message.", + "type": "object" + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#interconnectList for lists of interconnects.", + "default": "compute#interconnectList", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "nextPageToken": { + "type": "string", + "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." } - } + }, + "id": "InterconnectList", + "type": "object" }, - "targetHttpProxies": { - "methods": { - "aggregatedList": { - "id": "compute.targetHttpProxies.aggregatedList", - "flatPath": "projects/{project}/aggregated/targetHttpProxies", - "path": "projects/{project}/aggregated/targetHttpProxies", - "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.", - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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" + }, + "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.", + "enumDescriptions": [ + "", + "" ], - "httpMethod": "GET", - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "description": "Name of the project scoping this request." - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "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": { - "type": "integer", - "location": "query", - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0" - } - }, - "response": { - "$ref": "TargetHttpProxyAggregatedList" - } - }, - "get": { - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "parameters": { - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to return.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - } - }, - "id": "compute.targetHttpProxies.get", - "response": { - "$ref": "TargetHttpProxy" - }, - "httpMethod": "GET", - "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.", - "parameterOrder": [ - "project", - "targetHttpProxy" - ], - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string", + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" ] }, - "delete": { - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "mode": { + "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." ], - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "parameterOrder": [ - "project", - "targetHttpProxy" + "enum": [ + "READ_ONLY", + "READ_WRITE" ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "targetHttpProxy": { + "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" + } + }, + "id": "PreservedStatePreservedDisk" + }, + "OperationsScopedList": { + "properties": { + "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.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "required": true, - "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" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } - }, - "id": "compute.targetHttpProxies.delete", - "description": "Deletes the specified TargetHttpProxy resource." - }, - "setUrlMap": { - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "httpMethod": "POST", - "id": "compute.targetHttpProxies.setUrlMap", - "description": "Changes the URL map for TargetHttpProxy.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "type": "string" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "targetHttpProxy": { + "message": { "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "description": "Name of the TargetHttpProxy to set a URL map for." + "description": "[Output Only] A human-readable description of the warning code." }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + } } - }, - "parameterOrder": [ - "project", - "targetHttpProxy" - ], - "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "request": { - "$ref": "UrlMapReference" } }, - "insert": { - "parameterOrder": [ - "project" - ], - "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.", - "request": { - "$ref": "TargetHttpProxy" - }, - "id": "compute.targetHttpProxies.insert", - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } - }, - "flatPath": "projects/{project}/global/targetHttpProxies", - "response": { + "operations": { + "description": "[Output Only] A list of operations contained in this scope.", + "type": "array", + "items": { "$ref": "Operation" + } + } + }, + "type": "object", + "id": "OperationsScopedList" + }, + "TargetPoolAggregatedList": { + "properties": { + "items": { + "additionalProperties": { + "description": "Name of the scope containing this set of target pools.", + "$ref": "TargetPoolsScopedList" }, - "httpMethod": "POST", - "path": "projects/{project}/global/targetHttpProxies", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "description": "A list of TargetPool resources.", + "type": "object" }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/global/targetHttpProxies", - "id": "compute.targetHttpProxies.list", - "httpMethod": "GET", - "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.", - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/global/targetHttpProxies", - "parameters": { - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "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" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "filter": { + "warning": { + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "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", - "type": "integer", - "minimum": "0", - "location": "query", - "format": "uint32" + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "response": { - "$ref": "TargetHttpProxyList" - } + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "patch": { - "httpMethod": "PATCH", - "response": { - "$ref": "Operation" - }, - "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.", - "parameters": { - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to patch.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true - } + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetPoolAggregatedList for aggregated lists of target pools.", + "type": "string", + "default": "compute#targetPoolAggregatedList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "unreachables": { + "items": { + "type": "string" }, - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "request": { - "$ref": "TargetHttpProxy" + "description": "[Output Only] Unreachable resources.", + "type": "array" + } + }, + "type": "object", + "id": "TargetPoolAggregatedList" + }, + "DisksRemoveResourcePoliciesRequest": { + "type": "object", + "properties": { + "resourcePolicies": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "targetHttpProxy" + "description": "Resource policies to be removed from this disk.", + "type": "array" + } + }, + "id": "DisksRemoveResourcePoliciesRequest" + }, + "FirewallLogConfig": { + "description": "The available logging options for a firewall rule.", + "properties": { + "enable": { + "type": "boolean", + "description": "This field denotes whether to enable logging for a particular firewall rule." + }, + "metadata": { + "enum": [ + "EXCLUDE_ALL_METADATA", + "INCLUDE_ALL_METADATA" ], - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "id": "compute.targetHttpProxies.patch", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "enumDescriptions": [ + "", + "" + ], + "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" } - } + }, + "type": "object", + "id": "FirewallLogConfig" }, - "globalNetworkEndpointGroups": { - "methods": { - "listNetworkEndpoints": { - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "parameters": { - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "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])?))", - "required": true, - "description": "Project ID for this request.", - "type": "string", - "location": "path" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "format": "uint32", - "minimum": "0", - "location": "query", - "type": "integer" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "networkEndpointGroup": { - "type": "string", - "location": "path", - "required": true, - "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." - } - }, - "httpMethod": "POST", - "parameterOrder": [ - "project", - "networkEndpointGroup" - ], - "description": "Lists the network endpoints in the specified network endpoint group.", - "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "NetworkEndpointGroupsListNetworkEndpoints" - } + "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.", + "properties": { + "location": { + "type": "string", + "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file." }, - "insert": { - "request": { - "$ref": "NetworkEndpointGroup" - }, - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}/global/networkEndpointGroups", - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "path": "projects/{project}/global/networkEndpointGroups", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "id": "compute.globalNetworkEndpointGroups.insert" + "expression": { + "description": "Textual representation of an expression in Common Expression Language syntax.", + "type": "string" }, - "list": { - "description": "Retrieves the list of network endpoint groups that are located in the specified project.", - "path": "projects/{project}/global/networkEndpointGroups", - "response": { - "$ref": "NetworkEndpointGroupList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "flatPath": "projects/{project}/global/networkEndpointGroups", - "parameterOrder": [ - "project" - ], - "id": "compute.globalNetworkEndpointGroups.list", - "parameters": { - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "project": { - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "maxResults": { - "location": "query", - "default": "500", - "minimum": "0", - "type": "integer", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "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" }, - "detachNetworkEndpoints": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "parameterOrder": [ - "project", - "networkEndpointGroup" - ], - "response": { - "$ref": "Operation" + "description": { + "type": "string", + "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": "object" + }, + "CorsPolicy": { + "type": "object", + "properties": { + "allowHeaders": { + "items": { + "type": "string" }, - "request": { - "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest" + "description": "Specifies the content for the Access-Control-Allow-Headers header.", + "type": "array" + }, + "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": { + "type": "boolean", + "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." + }, + "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.", + "format": "int32", + "type": "integer" + }, + "allowOriginRegexes": { + "type": "array", + "items": { + "type": "string" }, - "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "type": "string" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "networkEndpointGroup": { - "required": true, - "location": "path", - "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", - "type": "string" - } + "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." + }, + "allowOrigins": { + "type": "array", + "items": { + "type": "string" }, - "description": "Detach the network endpoint from the specified network endpoint group.", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints" + "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." }, - "delete": { - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "networkEndpointGroup": { - "type": "string", - "location": "path", - "required": true, - "description": "The name of the network endpoint group to delete. It should comply with RFC1035." - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "exposeHeaders": { + "items": { + "type": "string" }, - "response": { - "$ref": "Operation" + "description": "Specifies the content for the Access-Control-Expose-Headers header.", + "type": "array" + }, + "allowMethods": { + "type": "array", + "items": { + "type": "string" }, - "httpMethod": "DELETE", - "parameterOrder": [ - "project", - "networkEndpointGroup" - ], - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.globalNetworkEndpointGroups.delete", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", - "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it." + "description": "Specifies the content for the Access-Control-Allow-Methods header." + } + }, + "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.", + "id": "CorsPolicy" + }, + "TargetInstance": { + "type": "object", + "properties": { + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" }, - "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", - "id": "compute.globalNetworkEndpointGroups.get", - "parameterOrder": [ - "project", - "networkEndpointGroup" + "instance": { + "type": "string", + "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 " + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "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.", + "enum": [ + "NO_NAT" ], - "response": { - "$ref": "NetworkEndpointGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enumDescriptions": [ + "No NAT performed." ], - "httpMethod": "GET", - "parameters": { - "project": { - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "networkEndpointGroup": { - "required": true, - "location": "path", - "type": "string", - "description": "The name of the network endpoint group. It should comply with RFC1035." - } - }, - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}" + "type": "string" }, - "attachNetworkEndpoints": { - "response": { - "$ref": "Operation" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "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" + }, + "kind": { + "type": "string", + "default": "compute#targetInstance", + "description": "[Output Only] The type of the resource. Always compute#targetInstance for target instances." + }, + "zone": { + "type": "string", + "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." + } + }, + "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.", + "id": "TargetInstance" + }, + "NetworksRemovePeeringRequest": { + "properties": { + "name": { + "type": "string", + "description": "Name of the peering, which should conform to RFC1035." + } + }, + "type": "object", + "id": "NetworksRemovePeeringRequest" + }, + "FirewallPoliciesListAssociationsResponse": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "default": "compute#firewallPoliciesListAssociationsResponse", + "description": "[Output Only] Type of firewallPolicy associations. Always compute#FirewallPoliciesListAssociations for lists of firewallPolicy associations." + }, + "associations": { + "items": { + "$ref": "FirewallPolicyAssociation" }, - "description": "Attach a network endpoint to the specified network endpoint group.", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "networkEndpointGroup" + "type": "array", + "description": "A list of associations." + } + }, + "id": "FirewallPoliciesListAssociationsResponse" + }, + "CacheInvalidationRule": { + "properties": { + "path": { + "type": "string" + }, + "host": { + "type": "string", + "description": "If set, this invalidation rule will only apply to requests with a Host header matching host." + } + }, + "id": "CacheInvalidationRule", + "type": "object" + }, + "NetworkPerformanceConfig": { + "type": "object", + "properties": { + "totalEgressBandwidthTier": { + "type": "string", + "enum": [ + "DEFAULT", + "TIER_1" ], - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", - "location": "path", - "type": "string", - "required": true - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "request": { - "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest" - }, - "httpMethod": "POST", - "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" + "enumDescriptions": [ + "", + "" + ] } - } + }, + "id": "NetworkPerformanceConfig" }, - "regionInstances": { - "methods": { - "bulkInsert": { - "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert", - "path": "projects/{project}/regions/{region}/instances/bulkInsert", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "HealthStatusForNetworkEndpoint": { + "properties": { + "backendService": { + "description": "URL of the backend service associated with the health state of the network endpoint.", + "$ref": "BackendServiceReference" + }, + "healthState": { + "enum": [ + "DRAINING", + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" ], - "parameterOrder": [ - "project", - "region" + "description": "Health state of the network endpoint determined based on the health checks configured.", + "enumDescriptions": [ + "", + "", + "", + "" ], - "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "region": { - "location": "path", - "type": "string", - "required": true, - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "project": { - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - } - }, - "response": { - "$ref": "Operation" - }, - "id": "compute.regionInstances.bulkInsert", - "request": { - "$ref": "BulkInsertInstanceResource" - }, - "httpMethod": "POST" + "type": "string" + }, + "healthCheckService": { + "$ref": "HealthCheckServiceReference", + "description": "URL of the health check service associated with the health state of the network endpoint." + }, + "healthCheck": { + "description": "URL of the health check associated with the health state of the network endpoint.", + "$ref": "HealthCheckReference" + }, + "forwardingRule": { + "description": "URL of the forwarding rule associated with the health state of the network endpoint.", + "$ref": "ForwardingRuleReference" } - } + }, + "type": "object", + "id": "HealthStatusForNetworkEndpoint" }, - "regionDisks": { - "methods": { - "resize": { - "id": "compute.regionDisks.resize", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "region": { - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request." - }, - "disk": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "location": "path", - "description": "Name of the regional persistent disk." - }, - "project": { - "type": "string", - "required": true, - "location": "path", - "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])?))" - } - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "request": { - "$ref": "RegionDisksResizeRequest" - }, - "parameterOrder": [ - "project", - "region", - "disk" - ], - "response": { - "$ref": "Operation" - }, - "description": "Resizes the specified regional persistent disk.", - "path": "projects/{project}/regions/{region}/disks/{disk}/resize", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize" + "SubnetworksSetPrivateIpGoogleAccessRequest": { + "type": "object", + "properties": { + "privateIpGoogleAccess": { + "type": "boolean" + } + }, + "id": "SubnetworksSetPrivateIpGoogleAccessRequest" + }, + "NetworkEdgeSecurityService": { + "description": "Represents a Google Cloud Armor network edge security service resource.", + "id": "NetworkEdgeSecurityService", + "type": "object", + "properties": { + "region": { + "type": "string", + "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." }, - "testIamPermissions": { - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", - "parameters": { - "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])?))", - "required": true, - "description": "Project ID for this request.", + "name": { + "type": "string", + "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])?" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource with the resource id." + }, + "kind": { + "description": "[Output only] Type of the resource. Always compute#networkEdgeSecurityService for NetworkEdgeSecurityServices", + "default": "compute#networkEdgeSecurityService", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "fingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "securityPolicy": { + "description": "The resource URL for the network edge security service associated with this network edge security service.", + "type": "string" + } + } + }, + "ExchangedPeeringRoutesList": { + "id": "ExchangedPeeringRoutesList", + "type": "object", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "message": { "type": "string", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." }, - "resource": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "code": { "type": "string", - "location": "path", - "description": "Name or id of the resource for this request." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } + } + }, + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "default": "compute#exchangedPeeringRoutesList", + "type": "string", + "description": "[Output Only] Type of resource. Always compute#exchangedPeeringRoutesList for exchanged peering routes lists." + }, + "items": { + "items": { + "$ref": "ExchangedPeeringRoute" }, - "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", - "parameterOrder": [ - "project", - "region", - "resource" + "description": "A list of ExchangedPeeringRoute resources.", + "type": "array" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + } + } + }, + "AttachedDiskInitializeParams": { + "id": "AttachedDiskInitializeParams", + "type": "object", + "properties": { + "onUpdateAction": { + "enum": [ + "RECREATE_DISK", + "RECREATE_DISK_IF_SOURCE_CHANGED", + "USE_EXISTING_DISK" ], - "description": "Returns permissions that a caller has on the specified resource.", - "response": { - "$ref": "TestPermissionsResponse" + "type": "string", + "description": "Specifies which action to take on instance update with this disk. Default is to use the existing disk.", + "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." + ] + }, + "sourceImageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates 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." + }, + "diskSizeGb": { + "type": "string", + "format": "int64", + "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." + }, + "description": { + "type": "string", + "description": "An optional description. Provide this property when creating the disk." + }, + "sourceSnapshot": { + "type": "string", + "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." + }, + "provisionedIops": { + "format": "int64", + "type": "string", + "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." + }, + "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.", + "additionalProperties": { + "type": "string" }, - "request": { - "$ref": "TestPermissionsRequest" + "type": "object" + }, + "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" + }, + "sourceSnapshotEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "The customer-supplied encryption key of the source snapshot." + }, + "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" + }, + "labels": { + "additionalProperties": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "POST", - "id": "compute.regionDisks.testIamPermissions" + "type": "object", + "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." }, - "setIamPolicy": { - "parameterOrder": [ - "project", - "region", - "resource" + "architecture": { + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", - "parameters": { - "region": { - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "The name of the region for this request." - }, - "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])?))", - "type": "string", - "description": "Project ID for this request.", - "required": true, - "location": "path" - }, - "resource": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string", - "description": "Name or id of the resource for this request." - } - }, - "id": "compute.regionDisks.setIamPolicy", - "response": { - "$ref": "Policy" + "type": "string", + "description": "The architecture of the attached disk. Valid values are arm64 or x86_64." + }, + "resourcePolicies": { + "items": { + "type": "string" }, - "request": { - "$ref": "RegionSetPolicyRequest" + "type": "array", + "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." + }, + "licenses": { + "items": { + "type": "string" }, - "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", - "httpMethod": "POST" + "description": "A list of publicly visible licenses. Reserved for Google's use.", + "type": "array" }, - "list": { - "parameterOrder": [ - "project", - "region" - ], - "flatPath": "projects/{project}/regions/{region}/disks", - "description": "Retrieves the list of persistent disks contained within the specified region.", - "id": "compute.regionDisks.list", - "path": "projects/{project}/regions/{region}/disks", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "DiskList" + "diskType": { + "type": "string", + "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 define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL." + } + }, + "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." + }, + "InstanceGroupManager": { + "id": "InstanceGroupManager", + "type": "object", + "properties": { + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this managed instance group in RFC3339 text format.", + "type": "string" + }, + "status": { + "$ref": "InstanceGroupManagerStatus", + "description": "[Output Only] The status of this managed instance group." + }, + "versions": { + "items": { + "$ref": "InstanceGroupManagerVersion" }, - "httpMethod": "GET", - "parameters": { - "project": { - "required": true, - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "maxResults": { - "format": "uint32", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "minimum": "0", - "default": "500" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "region": { - "location": "path", - "description": "Name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - } + "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" + }, + "selfLink": { + "description": "[Output Only] The URL for this managed instance group. The server defines this URL.", + "type": "string" + }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier." + }, + "namedPorts": { + "description": "Named ports configured for the Instance Groups complementary to this Instance Group Manager.", + "type": "array", + "items": { + "$ref": "NamedPort" } }, - "insert": { - "path": "projects/{project}/regions/{region}/disks", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "flatPath": "projects/{project}/regions/{region}/disks", - "parameterOrder": [ - "project", - "region" - ], - "id": "compute.regionDisks.insert", - "response": { - "$ref": "Operation" - }, - "parameters": { - "sourceImage": { - "location": "query", - "type": "string", - "description": "Source image to restore onto a disk. This field is optional." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "region": { - "description": "Name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "required": true - } - }, - "request": { - "$ref": "Disk" + "name": { + "annotations": { + "required": [ + "compute.instanceGroupManagers.insert", + "compute.regionInstanceGroupManagers.insert" + ] }, - "description": "Creates a persistent regional disk in the specified project using the data included in the request." + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the managed instance group. The name must be 1-63 characters long, and comply with RFC1035." }, - "setLabels": { - "request": { - "$ref": "RegionSetLabelsRequest" + "description": { + "type": "string", + "description": "An optional description of this resource." + }, + "fingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "region": { + "type": "string", + "description": "[Output Only] The URL of the region where the managed instance group resides (for regional resources)." + }, + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.", + "type": "string", + "default": "compute#instanceGroupManager" + }, + "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" + }, + "distributionPolicy": { + "description": "Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.", + "$ref": "DistributionPolicy" + }, + "autoHealingPolicies": { + "items": { + "$ref": "InstanceGroupManagerAutoHealingPolicy" }, - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "id": "compute.regionDisks.setLabels", - "parameters": { - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "The region for this request.", - "location": "path" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "description": "Sets the labels on the target regional disk.", - "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels", - "response": { - "$ref": "Operation" + "type": "array", + "description": "The autohealing policy for this managed instance group. You can specify only one value." + }, + "targetPools": { + "type": "array", + "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.", + "items": { + "type": "string" } }, - "addResourcePolicies": { - "parameters": { - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path", - "type": "string", - "description": "The name of the region for this request." - }, - "disk": { - "type": "string", - "location": "path", - "required": true, - "description": "The disk name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } - }, - "request": { - "$ref": "RegionDisksAddResourcePoliciesRequest" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", - "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", - "parameterOrder": [ - "project", - "region", - "disk" - ], - "response": { - "$ref": "Operation" + "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" + ] }, - "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.", - "httpMethod": "POST", - "id": "compute.regionDisks.addResourcePolicies" + "format": "int32", + "type": "integer" }, - "removeResourcePolicies": { - "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", - "description": "Removes resource policies from a regional disk.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", - "parameterOrder": [ - "project", - "region", - "disk" - ], - "id": "compute.regionDisks.removeResourcePolicies", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "request": { - "$ref": "RegionDisksRemoveResourcePoliciesRequest" + "instanceGroup": { + "type": "string", + "description": "[Output Only] The URL of the Instance Group resource." + }, + "statefulPolicy": { + "description": "Stateful configuration for this Instanced Group Manager", + "$ref": "StatefulPolicy" + }, + "baseInstanceName": { + "type": "string", + "pattern": "[a-z][-a-z0-9]{0,57}", + "annotations": { + "required": [ + "compute.instanceGroupManagers.insert" + ] }, - "response": { - "$ref": "Operation" + "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." + }, + "updatePolicy": { + "description": "The update policy for this managed instance group.", + "$ref": "InstanceGroupManagerUpdatePolicy" + }, + "zone": { + "type": "string", + "description": "[Output Only] The URL of a zone where the managed instance group is located (for zonal resources)." + }, + "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" + } + }, + "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." + }, + "InterconnectAttachmentsScopedList": { + "id": "InterconnectAttachmentsScopedList", + "properties": { + "interconnectAttachments": { + "type": "array", + "items": { + "$ref": "InterconnectAttachment" }, - "parameters": { - "disk": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "The disk name for this request.", - "required": true, - "location": "path" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path" + "description": "A list of interconnect attachments contained in this scope." + }, + "warning": { + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "type": "array" }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "location": "query" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "region": { - "required": true, + "message": { "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the region for this request.", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." } + }, + "type": "object" + } + }, + "type": "object" + }, + "TestFailure": { + "id": "TestFailure", + "type": "object", + "properties": { + "expectedRedirectResponseCode": { + "type": "integer", + "format": "int32", + "description": "Expected HTTP status code for rule with `urlRedirect` calculated by load balancer" + }, + "headers": { + "type": "array", + "description": "HTTP headers of the request.", + "items": { + "$ref": "UrlMapTestHeader" } }, - "get": { - "description": "Returns a specified regional persistent disk.", - "path": "projects/{project}/regions/{region}/disks/{disk}", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "actualService": { + "type": "string", + "description": "BackendService or BackendBucket returned by load balancer." + }, + "expectedService": { + "type": "string", + "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to." + }, + "expectedOutputUrl": { + "type": "string", + "description": "The expected output URL evaluated by a load balancer containing the scheme, host, path and query parameters." + }, + "actualRedirectResponseCode": { + "type": "integer", + "format": "int32", + "description": "Actual HTTP status code for rule with `urlRedirect` calculated by load balancer" + }, + "host": { + "description": "Host portion of the URL.", + "type": "string" + }, + "actualOutputUrl": { + "type": "string", + "description": "The actual output URL evaluated by a load balancer containing the scheme, host, path and query parameters." + }, + "path": { + "type": "string", + "description": "Path portion including query parameters in the URL." + } + } + }, + "TargetVpnGateway": { + "type": "object", + "id": "TargetVpnGateway", + "properties": { + "kind": { + "type": "string", + "default": "compute#targetVpnGateway", + "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways." + }, + "status": { + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY" ], - "httpMethod": "GET", - "response": { - "$ref": "Disk" - }, - "parameters": { - "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])?))", - "required": true, - "location": "path", - "type": "string", - "description": "Project ID for this request." - }, - "disk": { - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the regional persistent disk to return.", - "type": "string" - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "Name of the region for this request.", - "type": "string" - } - }, - "id": "compute.regionDisks.get", - "parameterOrder": [ - "project", - "region", - "disk" + "description": "[Output Only] The status of the VPN gateway, which can be one of the following: CREATING, READY, FAILED, or DELETING.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ] }, - "getIamPolicy": { - "parameters": { - "optionsRequestedPolicyVersion": { - "format": "int32", - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer" - }, - "resource": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "description": "Name or id of the resource for this request.", - "location": "path" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "required": true - }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "description": "The name of the region for this request." - } - }, - "response": { - "$ref": "Policy" + "name": { + "annotations": { + "required": [ + "compute.targetVpnGateways.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.regionDisks.getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", - "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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." }, - "delete": { - "id": "compute.regionDisks.delete", - "path": "projects/{project}/regions/{region}/disks/{disk}", - "response": { - "$ref": "Operation" + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "network": { + "annotations": { + "required": [ + "compute.targetVpnGateways.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "disk" - ], - "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.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/regions/{region}/disks/{disk}", - "parameters": { - "disk": { - "description": "Name of the regional persistent disk to delete.", - "required": true, - "type": "string", - "location": "path" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "region": { - "location": "path", - "description": "Name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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])?))", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path" - } + "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created.", + "type": "string" + }, + "tunnels": { + "type": "array", + "items": { + "type": "string" }, - "httpMethod": "DELETE" + "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." }, - "createSnapshot": { - "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", - "parameterOrder": [ - "project", - "region", - "disk" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.regionDisks.createSnapshot", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", - "request": { - "$ref": "Snapshot" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "type": "string", + "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." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "forwardingRules": { + "items": { + "type": "string" }, - "httpMethod": "POST", - "description": "Creates a snapshot of this regional disk.", - "response": { - "$ref": "Operation" - }, - "parameters": { - "region": { - "description": "Name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "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" + }, + "id": { + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + } + }, + "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." + }, + "RegionInstanceGroupList": { + "properties": { + "warning": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "project": { + "code": { "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "disk": { - "location": "path", - "type": "string", - "description": "Name of the regional persistent disk to snapshot.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" } - } + }, + "description": "[Output Only] Informational warning message." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "kind": { + "default": "compute#regionInstanceGroupList", + "type": "string", + "description": "The resource type." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "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" + }, + "items": { + "type": "array", + "items": { + "$ref": "InstanceGroup" + }, + "description": "A list of InstanceGroup resources." } - } + }, + "type": "object", + "description": "Contains a list of InstanceGroup resources.", + "id": "RegionInstanceGroupList" }, - "globalPublicDelegatedPrefixes": { - "methods": { - "insert": { - "parameterOrder": [ - "project" + "InstanceConsumptionData": { + "type": "object", + "properties": { + "consumptionInfo": { + "description": "Resources consumed by the instance.", + "$ref": "InstanceConsumptionInfo" + }, + "instance": { + "type": "string", + "description": "Server-defined URL for the instance." + } + }, + "id": "InstanceConsumptionData" + }, + "TargetHttpsProxiesSetQuicOverrideRequest": { + "type": "object", + "id": "TargetHttpsProxiesSetQuicOverrideRequest", + "properties": { + "quicOverride": { + "enum": [ + "DISABLE", + "ENABLE", + "NONE" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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." ], - "flatPath": "projects/{project}/global/publicDelegatedPrefixes", - "id": "compute.globalPublicDelegatedPrefixes.insert", - "request": { - "$ref": "PublicDelegatedPrefix" - }, - "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - }, - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." - } + "type": "string", + "description": "QUIC policy for the TargetHttpsProxy resource." + } + } + }, + "TargetHttpsProxiesSetSslCertificatesRequest": { + "id": "TargetHttpsProxiesSetSslCertificatesRequest", + "type": "object", + "properties": { + "sslCertificates": { + "items": { + "type": "string" }, - "httpMethod": "POST", - "path": "projects/{project}/global/publicDelegatedPrefixes", - "response": { - "$ref": "Operation" - } + "type": "array", + "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." + } + } + }, + "InstanceGroupManagerUpdatePolicy": { + "id": "InstanceGroupManagerUpdatePolicy", + "properties": { + "maxUnavailable": { + "$ref": "FixedOrPercent", + "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." }, - "patch": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "publicDelegatedPrefix" + "mostDisruptiveAllowedAction": { + "type": "string", + "enumDescriptions": [ + "Do not perform any action.", + "Updates applied in runtime, instances will not be disrupted.", + "Old instances will be deleted. New instances will be created from the target template.", + "Every instance will be restarted." ], - "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "id": "compute.globalPublicDelegatedPrefixes.patch", - "parameters": { - "publicDelegatedPrefix": { - "required": true, - "type": "string", - "description": "Name of the PublicDelegatedPrefix resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - } - }, - "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.", - "request": { - "$ref": "PublicDelegatedPrefix" - }, - "httpMethod": "PATCH" + "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, 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.", + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ] }, - "list": { - "parameterOrder": [ - "project" + "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" + }, + "replacementMethod": { + "enumDescriptions": [ + "Instances will be recreated (with the same name)", + "Default option: instances will be deleted and created (with a new name)" ], - "parameters": { - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "format": "uint32", - "type": "integer", - "location": "query", - "minimum": "0", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - } - }, - "httpMethod": "GET", - "path": "projects/{project}/global/publicDelegatedPrefixes", - "description": "Lists the global PublicDelegatedPrefixes for a project.", - "flatPath": "projects/{project}/global/publicDelegatedPrefixes", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "RECREATE", + "SUBSTITUTE" ], - "id": "compute.globalPublicDelegatedPrefixes.list", - "response": { - "$ref": "PublicDelegatedPrefixList" - } + "description": "What action should be used to replace instances. See minimal_action.REPLACE", + "type": "string" }, - "get": { - "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "parameters": { - "publicDelegatedPrefix": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "description": "Name of the PublicDelegatedPrefix resource to return.", - "required": true, - "location": "path" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - } - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "minimalAction": { + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" ], - "parameterOrder": [ - "project", - "publicDelegatedPrefix" + "type": "string", + "enumDescriptions": [ + "Do not perform any action.", + "Updates applied in runtime, instances will not be disrupted.", + "Old instances will be deleted. New instances will be created from the target template.", + "Every instance will be restarted." ], - "id": "compute.globalPublicDelegatedPrefixes.get", - "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "response": { - "$ref": "PublicDelegatedPrefix" - }, - "description": "Returns the specified global PublicDelegatedPrefix resource." + "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. " }, - "delete": { - "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "id": "compute.globalPublicDelegatedPrefixes.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": { + "description": "The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).", + "enumDescriptions": [ + "No action is being proactively performed in order to bring this IGM to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field).", + "This IGM will actively converge to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field)." ], - "parameterOrder": [ - "project", - "publicDelegatedPrefix" + "enum": [ + "OPPORTUNISTIC", + "PROACTIVE" ], - "parameters": { - "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}", - "type": "string", - "location": "path", - "required": true - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - }, - "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])?))", - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request." - } - }, - "description": "Deletes the specified global PublicDelegatedPrefix.", - "response": { - "$ref": "Operation" - }, - "httpMethod": "DELETE" + "type": "string" + }, + "instanceRedistributionType": { + "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." + ], + "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", + "enum": [ + "NONE", + "PROACTIVE" + ] } - } + }, + "type": "object" }, - "packetMirrorings": { - "methods": { - "delete": { - "httpMethod": "DELETE", - "description": "Deletes the specified PacketMirroring resource.", - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true, - "description": "Project ID for this request." - }, - "packetMirroring": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string", - "location": "path", - "description": "Name of the PacketMirroring resource to delete." - } - }, - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "parameterOrder": [ - "project", - "region", - "packetMirroring" + "SecurityPolicyAdvancedOptionsConfig": { + "properties": { + "logLevel": { + "type": "string", + "enum": [ + "NORMAL", + "VERBOSE" ], - "id": "compute.packetMirrorings.delete", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enumDescriptions": [ + "", + "" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "jsonCustomConfig": { + "$ref": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "description": "Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD." + }, + "jsonParsing": { + "type": "string", + "enum": [ + "DISABLED", + "STANDARD" ], - "id": "compute.packetMirrorings.testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, - "parameters": { - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "resource": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "type": "string", - "required": true, - "description": "Name or id of the resource for this request." - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the region for this request.", - "type": "string", - "location": "path", - "required": true - } + "enumDescriptions": [ + "", + "" + ] + } + }, + "type": "object", + "id": "SecurityPolicyAdvancedOptionsConfig" + }, + "NetworkEndpointGroupsDetachEndpointsRequest": { + "type": "object", + "id": "NetworkEndpointGroupsDetachEndpointsRequest", + "properties": { + "networkEndpoints": { + "items": { + "$ref": "NetworkEndpoint" }, - "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", - "response": { - "$ref": "TestPermissionsResponse" + "description": "The list of network endpoints to be detached.", + "type": "array" + } + } + }, + "ForwardingRuleAggregatedList": { + "properties": { + "items": { + "description": "A list of ForwardingRulesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of addresses.", + "$ref": "ForwardingRulesScopedList" } }, - "patch": { - "id": "compute.packetMirrorings.patch", - "parameterOrder": [ - "project", - "region", - "packetMirroring" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "region": { - "location": "path", - "description": "Name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - }, - "requestId": { + "warning": { + "properties": { + "code": { "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "packetMirroring": { - "required": true, - "description": "Name of the PacketMirroring resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - } - }, - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "request": { - "$ref": "PacketMirroring" - }, - "httpMethod": "PATCH", - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "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.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "aggregatedList": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "path": "projects/{project}/aggregated/packetMirrorings", - "flatPath": "projects/{project}/aggregated/packetMirrorings", - "id": "compute.packetMirrorings.aggregatedList", - "parameters": { - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "location": "query", - "minimum": "0", - "type": "integer", - "format": "uint32" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "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])?))", - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request." + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + } }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "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.", - "type": "boolean", - "location": "query" } }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "PacketMirroringAggregatedList" - }, - "description": "Retrieves an aggregated list of packetMirrorings." + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "list": { - "parameterOrder": [ - "project", - "region" - ], - "flatPath": "projects/{project}/regions/{region}/packetMirrorings", - "id": "compute.packetMirrorings.list", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "PacketMirroringList" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "httpMethod": "GET", - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", + "type": "array" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#forwardingRuleAggregatedList for lists of forwarding rules.", + "default": "compute#forwardingRuleAggregatedList" + } + }, + "type": "object", + "id": "ForwardingRuleAggregatedList" + }, + "TargetInstanceList": { + "description": "Contains a list of TargetInstance resources.", + "type": "object", + "id": "TargetInstanceList", + "properties": { + "warning": { + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "location": "path" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "maxResults": { - "type": "integer", - "location": "query", - "minimum": "0", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" }, - "filter": { - "location": "query", + "message": { "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "description": "[Output Only] A human-readable description of the warning code." } }, - "path": "projects/{project}/regions/{region}/packetMirrorings", - "description": "Retrieves a list of PacketMirroring resources available to the specified project and region." + "type": "object", + "description": "[Output Only] Informational warning message." }, - "get": { - "response": { - "$ref": "PacketMirroring" - }, - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "id": "compute.packetMirrorings.get", - "parameterOrder": [ - "project", - "region", - "packetMirroring" - ], - "description": "Returns the specified PacketMirroring resource.", - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "parameters": { - "region": { - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "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])?))", - "required": true, - "location": "path", - "type": "string", - "description": "Project ID for this request." - }, - "packetMirroring": { - "type": "string", - "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}", - "required": true, - "location": "path" - } - } + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." }, - "insert": { - "httpMethod": "POST", - "path": "projects/{project}/regions/{region}/packetMirrorings", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true - }, - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "description": "Name of the region for this request.", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must 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" - ], - "flatPath": "projects/{project}/regions/{region}/packetMirrorings", - "request": { - "$ref": "PacketMirroring" - }, - "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.", - "response": { - "$ref": "Operation" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "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" + }, + "items": { + "type": "array", + "items": { + "$ref": "TargetInstance" }, - "id": "compute.packetMirrorings.insert" + "description": "A list of TargetInstance resources." + }, + "kind": { + "description": "Type of resource.", + "default": "compute#targetInstanceList", + "type": "string" } } }, - "globalOperations": { - "methods": { - "wait": { - "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`. ", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "operation" - ], - "path": "projects/{project}/global/operations/{operation}/wait", - "id": "compute.globalOperations.wait", - "parameters": { - "operation": { - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "description": "Name of the Operations resource to return." - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path" - } - }, - "flatPath": "projects/{project}/global/operations/{operation}/wait", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "Operation" - } + "Zone": { + "type": "object", + "id": "Zone", + "properties": { + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string" }, - "delete": { - "flatPath": "projects/{project}/global/operations/{operation}", - "parameterOrder": [ - "project", - "operation" - ], - "id": "compute.globalOperations.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "operation": { - "type": "string", - "location": "path", - "required": true, - "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}" - }, - "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])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true - } - }, - "path": "projects/{project}/global/operations/{operation}", - "httpMethod": "DELETE", - "description": "Deletes the specified Operations resource." + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." }, - "aggregatedList": { - "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.", - "path": "projects/{project}/aggregated/operations", - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}/aggregated/operations", - "parameters": { - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "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", - "type": "integer", - "location": "query", - "minimum": "0", - "format": "uint32" - }, - "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" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "required": true - }, - "includeAllScopes": { - "type": "boolean", - "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" - } - }, - "httpMethod": "GET", - "id": "compute.globalOperations.aggregatedList" + "region": { + "type": "string", + "description": "[Output Only] Full URL reference to the region which hosts the zone." }, - "list": { - "id": "compute.globalOperations.list", - "description": "Retrieves a list of Operation resources contained within the specified project.", - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "OperationList" - }, - "path": "projects/{project}/global/operations", - "parameters": { - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "type": "integer", - "default": "500", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "format": "uint32" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - } + "availableCpuPlatforms": { + "items": { + "type": "string" }, - "flatPath": "projects/{project}/global/operations", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET" + "type": "array", + "description": "[Output Only] Available cpu/platform selections for the zone." }, - "get": { - "path": "projects/{project}/global/operations/{operation}", - "flatPath": "projects/{project}/global/operations/{operation}", - "id": "compute.globalOperations.get", - "description": "Retrieves the specified Operations resource.", - "parameters": { - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string" - }, - "operation": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the Operations resource to return.", - "type": "string", - "location": "path", - "required": true - } - }, - "parameterOrder": [ - "project", - "operation" + "kind": { + "default": "compute#zone", + "description": "[Output Only] Type of the resource. Always compute#zone for zones.", + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "status": { + "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": [ + "DOWN", + "UP" ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "GET" + "description": "[Output Only] Status of the zone, either UP or DOWN." + }, + "description": { + "description": "[Output Only] Textual description of the resource.", + "type": "string" + }, + "supportsPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this zone." + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" } - } + }, + "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." }, - "interconnectLocations": { - "methods": { - "get": { - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "TargetTcpProxy": { + "id": "TargetTcpProxy", + "description": "Represents a Target TCP Proxy resource. A target TCP proxy is a component of a TCP Proxy load balancer. Global forwarding rules reference target TCP proxy, and the target proxy then references an external backend service. For more information, read TCP Proxy Load Balancing overview.", + "properties": { + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the regional TCP proxy resides. This field is not applicable to global TCP proxy." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "proxyHeader": { + "enum": [ + "NONE", + "PROXY_V1" ], - "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}", - "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}", - "parameters": { - "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])?))", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path" - }, - "interconnectLocation": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the interconnect location to return.", - "location": "path" - } - }, - "parameterOrder": [ - "project", - "interconnectLocation" + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "InterconnectLocation" - }, - "id": "compute.interconnectLocations.get", - "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request." + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE." }, - "list": { - "flatPath": "projects/{project}/global/interconnectLocations", - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InterconnectLocationList" + "service": { + "description": "URL to the BackendService resource.", + "type": "string" + }, + "proxyBind": { + "type": "boolean", + "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." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.", + "default": "compute#targetTcpProxy" + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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." + }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + } + }, + "type": "object" + }, + "RouterStatusNatStatusNatRuleStatus": { + "id": "RouterStatusNatStatusNatRuleStatus", + "properties": { + "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" + }, + "activeNatIps": { + "description": "A list of active IPs for NAT. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.interconnectLocations.list", - "httpMethod": "GET", - "path": "projects/{project}/global/interconnectLocations", - "parameters": { - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "minimum": "0", - "type": "integer", - "default": "500" - } + "type": "array" + }, + "numVmEndpointsWithNatMappings": { + "format": "int32", + "type": "integer", + "description": "Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule." + }, + "ruleNumber": { + "type": "integer", + "description": "Rule number of the rule.", + "format": "int32" + }, + "drainNatIps": { + "items": { + "type": "string" }, - "description": "Retrieves the list of interconnect locations available to the specified project." + "description": "A list of IPs for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "type": "array" } - } + }, + "type": "object", + "description": "Status of a NAT Rule contained in this NAT." }, - "regionTargetHttpsProxies": { - "methods": { - "list": { - "path": "projects/{project}/regions/{region}/targetHttpsProxies", - "id": "compute.regionTargetHttpsProxies.list", - "httpMethod": "GET", - "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.", - "response": { - "$ref": "TargetHttpsProxyList" - }, - "parameterOrder": [ - "project", - "region" - ], - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "region": { - "description": "Name of the region scoping this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "maxResults": { - "type": "integer", - "default": "500", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "format": "uint32" - } - } + "SslPolicy": { + "type": "object", + "id": "SslPolicy", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" }, - "setUrlMap": { - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "minTlsVersion": { + "enum": [ + "TLS_1_0", + "TLS_1_1", + "TLS_1_2" ], - "response": { - "$ref": "Operation" + "type": "string", + "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.", + "enumDescriptions": [ + "TLS 1.0", + "TLS 1.1", + "TLS 1.2" + ] + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "customFeatures": { + "items": { + "type": "string" }, - "parameters": { - "region": { - "type": "string", - "required": true, - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", - "type": "string" - }, - "targetHttpsProxy": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the TargetHttpsProxy to set a URL map for.", - "type": "string", - "required": true, - "location": "path" + "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" + }, + "kind": { + "type": "string", + "description": "[Output only] Type of the resource. Always compute#sslPolicyfor SSL policies.", + "default": "compute#sslPolicy" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "fingerprint": { + "format": "byte", + "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" + }, + "warnings": { + "type": "array", + "items": { + "properties": { + "data": { + "type": "array", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + }, + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string" + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } }, - "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])?))", - "type": "string", - "description": "Project ID for this request.", - "required": true, - "location": "path" - } - }, - "id": "compute.regionTargetHttpsProxies.setUrlMap", - "description": "Changes the URL map for TargetHttpsProxy.", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", - "request": { - "$ref": "UrlMapReference" + "type": "object" }, - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" - ], - "httpMethod": "POST" + "description": "[Output Only] If potential misconfigurations are detected for this SSL policy, this field will be populated with warning messages." }, - "get": { - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" + "enabledFeatures": { + "type": "array", + "description": "[Output Only] The list of features enabled in the SSL policy.", + "items": { + "type": "string" + } + }, + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the regional SSL policy resides. This field is not applicable to global SSL policies." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "profile": { + "type": "string", + "enum": [ + "COMPATIBLE", + "CUSTOM", + "MODERN", + "RESTRICTED" ], - "response": { - "$ref": "TargetHttpsProxy" - }, - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to return.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path" - }, - "region": { - "location": "path", - "description": "Name of the region scoping this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "id": "compute.regionTargetHttpsProxies.get", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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." ], - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "GET" + "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." }, - "insert": { - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "TargetHttpsProxy" + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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.", + "type": "string" + } + }, + "description": "Represents an SSL Policy resource. Use SSL policies to control the SSL features, such as versions and cipher suites, offered by an HTTPS or SSL Proxy load balancer. For more information, read SSL Policy Concepts." + }, + "TargetGrpcProxy": { + "properties": { + "urlMap": { + "type": "string", + "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." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL with id for the resource.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "name": { + "annotations": { + "required": [ + "compute.targetGrpcProxies.insert" + ] }, - "response": { - "$ref": "Operation" + "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", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" + }, + "validateForProxyless": { + "type": "boolean", + "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" + }, + "kind": { + "default": "compute#targetGrpcProxy", + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies." + }, + "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.", + "format": "byte", + "type": "string" + } + }, + "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.", + "id": "TargetGrpcProxy", + "type": "object" + }, + "ResourcePolicyInstanceSchedulePolicySchedule": { + "type": "object", + "id": "ResourcePolicyInstanceSchedulePolicySchedule", + "description": "Schedule for an instance operation.", + "properties": { + "schedule": { + "type": "string", + "description": "Specifies the frequency for the operation, using the unix-cron format." + } + } + }, + "InstancesStartWithEncryptionKeyRequest": { + "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.", + "items": { + "$ref": "CustomerEncryptionKeyProtectedDisk" }, - "path": "projects/{project}/regions/{region}/targetHttpsProxies", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", + "type": "array" + } + }, + "type": "object", + "id": "InstancesStartWithEncryptionKeyRequest" + }, + "ErrorInfo": { + "id": "ErrorInfo", + "type": "object", + "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\" } }", + "properties": { + "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.", + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "domain": { + "type": "string", + "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\"." + }, + "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-Z0-9_]+/.", + "type": "string" + } + } + }, + "ManagedInstanceLastAttempt": { + "properties": { + "errors": { + "type": "object", + "properties": { + "errors": { + "items": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional." + }, + "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" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + } + } + } + }, + "code": { + "type": "string", + "description": "[Output Only] The error type identifier for this error." + }, + "message": { + "type": "string", + "description": "[Output Only] An optional, human-readable error message." + } + } + }, + "description": "[Output Only] The array of errors encountered while processing this operation.", + "type": "array" + } + }, + "description": "[Output Only] Encountered errors during the last attempt to create or delete the instance." + } + }, + "id": "ManagedInstanceLastAttempt", + "type": "object" + }, + "ImageList": { + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "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])?))", - "description": "Project ID for this request.", - "location": "path", + "message": { "type": "string", - "required": true + "description": "[Output Only] A human-readable description of the warning code." }, - "region": { - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "Name of the region scoping this request." + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "id": "compute.regionTargetHttpsProxies.insert", - "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." + "type": "object" }, - "delete": { - "response": { - "$ref": "Operation" + "nextPageToken": { + "type": "string", + "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." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "array", + "items": { + "$ref": "Image" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "A list of Image resources." + }, + "kind": { + "description": "Type of resource.", + "type": "string", + "default": "compute#imageList" + } + }, + "type": "object", + "id": "ImageList", + "description": "Contains a list of images." + }, + "ImageFamilyView": { + "type": "object", + "properties": { + "image": { + "$ref": "Image", + "description": "The latest image that is part of the specified image family in the requested location, and that is not deprecated." + } + }, + "id": "ImageFamilyView" + }, + "RegionInstanceGroupManagersAbandonInstancesRequest": { + "type": "object", + "id": "RegionInstanceGroupManagersAbandonInstancesRequest", + "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" + } + } + } + }, + "HttpRedirectAction": { + "id": "HttpRedirectAction", + "description": "Specifies settings for an HTTP redirect.", + "type": "object", + "properties": { + "redirectResponseCode": { + "enum": [ + "FOUND", + "MOVED_PERMANENTLY_DEFAULT", + "PERMANENT_REDIRECT", + "SEE_OTHER", + "TEMPORARY_REDIRECT" ], - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "description": "Deletes the specified TargetHttpsProxy resource.", - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" + "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." ], - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "DELETE", - "id": "compute.regionTargetHttpsProxies.delete", - "parameters": { - "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}", - "required": true, - "type": "string", - "location": "path" - }, - "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", - "type": "string", - "required": true, - "description": "Project ID for this request." - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "location": "path", - "type": "string", - "required": true - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", + "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. " }, - "setSslCertificates": { - "request": { - "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest" + "prefixRedirect": { + "type": "string", + "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." + }, + "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" + }, + "hostRedirect": { + "type": "string", + "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." + }, + "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" + }, + "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" + } + } + }, + "InitialStateConfig": { + "id": "InitialStateConfig", + "type": "object", + "properties": { + "pk": { + "description": "The Platform Key (PK).", + "$ref": "FileContentBuffer" + }, + "keks": { + "items": { + "$ref": "FileContentBuffer" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" - ], - "description": "Replaces SslCertificates for TargetHttpsProxy.", - "httpMethod": "POST", - "id": "compute.regionTargetHttpsProxies.setSslCertificates", - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - }, - "targetHttpsProxy": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "type": "string", - "required": true, - "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for." - }, - "region": { - "required": true, - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } + "description": "The Key Exchange Key (KEK).", + "type": "array" + }, + "dbs": { + "description": "The Key Database (db).", + "items": { + "$ref": "FileContentBuffer" }, - "response": { - "$ref": "Operation" + "type": "array" + }, + "dbxs": { + "items": { + "$ref": "FileContentBuffer" + }, + "type": "array", + "description": "The forbidden key database (dbx)." + } + }, + "description": "Initial State for shielded instance, these are public keys which are safe to store in public" + }, + "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 external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used by internal HTTP(S) 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", + "id": "UrlMap", + "properties": { + "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" + }, + "pathMatchers": { + "type": "array", + "description": "The list of named PathMatchers to use against the URL.", + "items": { + "$ref": "PathMatcher" + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "hostRules": { + "type": "array", + "description": "The list of host rules to use against the URL.", + "items": { + "$ref": "HostRule" } + }, + "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.", + "format": "byte", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "kind": { + "default": "compute#urlMap", + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#urlMaps for url maps." + }, + "name": { + "type": "string", + "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])?" + }, + "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 external HTTP(S) 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" + }, + "defaultService": { + "type": "string", + "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." + }, + "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" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "region": { + "type": "string", + "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." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "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.", + "items": { + "$ref": "UrlMapTest" + }, + "type": "array" } } }, - "forwardingRules": { - "methods": { - "get": { - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "response": { - "$ref": "ForwardingRule" + "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig": { + "properties": { + "contentTypes": { + "type": "array", + "items": { + "type": "string" }, - "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 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." + } + }, + "id": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "type": "object" + }, + "AutoscalingPolicyScalingSchedule": { + "properties": { + "durationSec": { + "format": "int32", + "type": "integer", + "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." + }, + "minRequiredReplicas": { + "description": "The minimum number of VM instances that the autoscaler will recommend in time intervals starting according to schedule. This field is required.", + "format": "int32", + "type": "integer" + }, + "description": { + "description": "A description of a scaling schedule.", + "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: http://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of “UTC” if left empty.", + "type": "string" + }, + "schedule": { + "type": "string", + "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." + }, + "disabled": { + "type": "boolean", + "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." + } + }, + "id": "AutoscalingPolicyScalingSchedule", + "type": "object", + "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." + }, + "WafExpressionSetExpression": { + "type": "object", + "id": "WafExpressionSetExpression", + "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" + } + } + }, + "FirewallPolicyRule": { + "properties": { + "action": { + "description": "The Action to perform when the client connection triggers the rule. Can currently be either \"allow\" or \"deny()\" where valid values for status are 403, 404, and 502.", + "type": "string" + }, + "direction": { + "enum": [ + "EGRESS", + "INGRESS" ], - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "type": "string" - }, - "forwardingRule": { - "description": "Name of the ForwardingRule resource to return.", - "type": "string", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "region": { - "required": true, - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - } - }, - "httpMethod": "GET", - "parameterOrder": [ - "project", - "region", - "forwardingRule" + "description": "The direction in which this rule applies.", + "enumDescriptions": [ + "", + "" ], - "id": "compute.forwardingRules.get", - "description": "Returns the specified ForwardingRule resource.", - "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}" + "type": "string" }, - "list": { - "parameters": { - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "region": { - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "Name of the region scoping this request." - }, - "maxResults": { - "format": "uint32", - "default": "500", - "minimum": "0", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - } + "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" + }, + "kind": { + "type": "string", + "default": "compute#firewallPolicyRule", + "description": "[Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules" + }, + "targetResources": { + "items": { + "type": "string" }, - "httpMethod": "GET", - "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/forwardingRules", - "id": "compute.forwardingRules.list", - "path": "projects/{project}/regions/{region}/forwardingRules", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "ForwardingRuleList" + "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" + }, + "ruleTupleCount": { + "type": "integer", + "format": "int32", + "description": "[Output Only] Calculation of the complexity of a single firewall policy rule." + }, + "targetServiceAccounts": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "region" - ] + "type": "array", + "description": "A list of service accounts indicating the sets of instances that are applied with this rule." }, - "insert": { - "request": { - "$ref": "ForwardingRule" + "targetSecureTags": { + "items": { + "$ref": "FirewallPolicyRuleSecureTag" }, - "flatPath": "projects/{project}/regions/{region}/forwardingRules", - "parameterOrder": [ - "project", - "region" - ], - "path": "projects/{project}/regions/{region}/forwardingRules", - "id": "compute.forwardingRules.insert", - "parameters": { - "project": { - "description": "Project ID for this request.", - "required": true, + "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" + }, + "ruleName": { + "description": "An optional name for the rule. This field is not a unique identifier and can be updated.", + "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.", + "format": "int32", + "type": "integer" + }, + "disabled": { + "type": "boolean", + "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." + }, + "match": { + "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.", + "$ref": "FirewallPolicyRuleMatcher" + }, + "description": { + "type": "string", + "description": "An optional description for this resource." + } + }, + "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" + }, + "ServiceAttachmentList": { + "type": "object", + "id": "ServiceAttachmentList", + "properties": { + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." }, - "requestId": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "region": { - "description": "Name of the region scoping this request.", - "type": "string", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "type": "array" } }, - "httpMethod": "POST", - "response": { - "$ref": "Operation" - }, - "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "type": "object" }, - "setTarget": { - "httpMethod": "POST", - "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.", - "parameterOrder": [ - "project", - "region", - "forwardingRule" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "required": true - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "region": { - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - }, - "forwardingRule": { - "location": "path", - "description": "Name of the ForwardingRule resource in which target is to be set.", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - }, - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", - "id": "compute.forwardingRules.setTarget", - "request": { - "$ref": "TargetReference" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", - "response": { - "$ref": "Operation" - } + "nextPageToken": { + "type": "string", + "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." }, - "setLabels": { - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", - "response": { - "$ref": "Operation" - }, - "id": "compute.forwardingRules.setLabels", - "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", - "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.", - "parameters": { - "project": { - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "required": true, - "description": "Name or id of the resource for this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path" - }, - "region": { - "type": "string", - "required": true, - "description": "The region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path" - } + "kind": { + "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", + "type": "string", + "default": "compute#serviceAttachmentList" + }, + "items": { + "type": "array", + "items": { + "$ref": "ServiceAttachment" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetLabelsRequest" + "description": "A list of ServiceAttachment resources." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + } + } + }, + "VpnTunnelAggregatedList": { + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "type": "object", + "description": "A list of VpnTunnelsScopedList resources.", + "additionalProperties": { + "$ref": "VpnTunnelsScopedList", + "description": "Name of the scope containing this set of VPN tunnels." } }, - "patch": { - "response": { - "$ref": "Operation" - }, - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "required": true, - "description": "Name of the region scoping this request." - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "forwardingRule": { - "description": "Name of the ForwardingRule resource to patch.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true - } - }, - "request": { - "$ref": "ForwardingRule" - }, - "parameterOrder": [ - "project", - "region", - "forwardingRule" - ], - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "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.", - "httpMethod": "PATCH", - "id": "compute.forwardingRules.patch", - "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}" + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "type": "string", + "default": "compute#vpnTunnelAggregatedList" }, - "aggregatedList": { - "path": "projects/{project}/aggregated/forwardingRules", - "description": "Retrieves an aggregated list of forwarding rules.", - "flatPath": "projects/{project}/aggregated/forwardingRules", - "httpMethod": "GET", - "parameterOrder": [ - "project" - ], - "parameters": { - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "type": "integer", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "minimum": "0", - "default": "500" - }, - "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])?))", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "type": "string" + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "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.", - "type": "boolean", - "location": "query" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "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.", - "type": "boolean", - "location": "query" } - }, - "response": { - "$ref": "ForwardingRuleAggregatedList" - }, - "id": "compute.forwardingRules.aggregatedList", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + } }, - "delete": { - "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "region", - "forwardingRule" - ], - "response": { - "$ref": "Operation" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "httpMethod": "DELETE", - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource to delete.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - }, - "project": { - "type": "string", - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" + "type": "array" + } + }, + "type": "object", + "id": "VpnTunnelAggregatedList" + }, + "BackendServiceAggregatedList": { + "properties": { + "warning": { + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "query" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "message": { "type": "string", - "description": "Name of the region scoping this request.", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." } }, - "id": "compute.forwardingRules.delete", - "description": "Deletes the specified ForwardingRule resource." + "type": "object", + "description": "[Output Only] Informational warning message." + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "type": "object", + "description": "A list of BackendServicesScopedList resources.", + "additionalProperties": { + "$ref": "BackendServicesScopedList", + "description": "Name of the scope containing this set of BackendServices." + } + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "kind": { + "default": "compute#backendServiceAggregatedList", + "type": "string", + "description": "Type of 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" } - } + }, + "type": "object", + "description": "Contains a list of BackendServicesScopedList.", + "id": "BackendServiceAggregatedList" }, - "targetSslProxies": { - "methods": { - "insert": { - "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.", - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}/global/targetSslProxies", - "id": "compute.targetSslProxies.insert", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "type": "string" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } + "ForwardingRuleReference": { + "type": "object", + "properties": { + "forwardingRule": { + "type": "string" + } + }, + "id": "ForwardingRuleReference" + }, + "ServiceAccount": { + "type": "object", + "properties": { + "scopes": { + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "path": "projects/{project}/global/targetSslProxies", - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "TargetSslProxy" - } - }, - "setBackendService": { - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "parameters": { - "targetSslProxy": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", - "id": "compute.targetSslProxies.setBackendService", - "response": { - "$ref": "Operation" - }, - "description": "Changes the BackendService for TargetSslProxy.", - "request": { - "$ref": "TargetSslProxiesSetBackendServiceRequest" - } + "type": "array", + "description": "The list of scopes to be made available for this service account." }, - "setSslPolicy": { - "httpMethod": "POST", - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", - "id": "compute.targetSslProxies.setSslPolicy", - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "location": "path", - "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.", - "type": "string", - "required": true - } - }, - "request": { - "$ref": "SslPolicyReference" - }, - "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 SSL proxy load balancer. They do not affect the connection between the load balancer and the backends.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy" + "email": { + "description": "Email address of the service account.", + "type": "string" + } + }, + "id": "ServiceAccount", + "description": "A service account." + }, + "SubnetworkSecondaryRange": { + "properties": { + "ipCidrRange": { + "type": "string", + "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." }, - "delete": { - "parameters": { - "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])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string", - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource to delete.", - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - }, - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "httpMethod": "DELETE", - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "description": "Deletes the specified TargetSslProxy resource.", - "id": "compute.targetSslProxies.delete" + "rangeName": { + "type": "string", + "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": "object", + "description": "Represents a secondary IP range of a subnetwork.", + "id": "SubnetworkSecondaryRange" + }, + "OperationAggregatedList": { + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." }, - "setSslCertificates": { - "description": "Changes SslCertificates for TargetSslProxy.", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.targetSslProxies.setSslCertificates", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", - "response": { - "$ref": "Operation" - }, - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "type": "string", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "targetSslProxy": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.", - "location": "path", - "required": true, - "type": "string" - } - }, - "request": { - "$ref": "TargetSslProxiesSetSslCertificatesRequest" + "unreachables": { + "type": "array", + "items": { + "type": "string" }, - "httpMethod": "POST", - "parameterOrder": [ - "project", - "targetSslProxy" - ] + "description": "[Output Only] Unreachable resources." }, - "get": { - "id": "compute.targetSslProxies.get", - "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. Gets a list of available target SSL proxies by making a list() request.", - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "parameters": { - "targetSslProxy": { - "type": "string", - "description": "Name of the TargetSslProxy resource to return.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "response": { - "$ref": "TargetSslProxy" - }, - "httpMethod": "GET" + "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" }, - "setProxyHeader": { - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", - "request": { - "$ref": "TargetSslProxiesSetProxyHeaderRequest" - }, - "response": { - "$ref": "Operation" - }, - "description": "Changes the ProxyHeaderType for TargetSslProxy.", - "id": "compute.targetSslProxies.setProxyHeader", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", - "parameters": { - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "message": { "type": "string", - "description": "Project ID for this request." + "description": "[Output Only] A human-readable description of the warning code." }, - "requestId": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "targetSslProxy": { - "location": "path", - "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "httpMethod": "POST" + } }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "maxResults": { - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "type": "integer", - "location": "query" - }, - "project": { - "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - } - }, - "response": { - "$ref": "TargetSslProxyList" - }, - "description": "Retrieves the list of TargetSslProxy resources available to the specified project.", - "path": "projects/{project}/global/targetSslProxies", - "id": "compute.targetSslProxies.list", - "httpMethod": "GET", - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}/global/targetSslProxies" + "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" + } + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "kind": { + "default": "compute#operationAggregatedList", + "type": "string", + "description": "[Output Only] Type of resource. Always `compute#operationAggregatedList` for aggregated lists of operations." } - } + }, + "type": "object", + "id": "OperationAggregatedList" }, - "targetHttpsProxies": { - "methods": { - "aggregatedList": { - "response": { - "$ref": "TargetHttpsProxyAggregatedList" - }, - "parameters": { - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "maxResults": { - "default": "500", - "minimum": "0", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "type": "integer" - }, - "includeAllScopes": { - "type": "boolean", - "location": "query", - "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." - }, - "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])?))", - "type": "string", - "required": true, - "location": "path", - "description": "Name of the project scoping this request." - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - } - }, - "id": "compute.targetHttpsProxies.aggregatedList", - "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.", - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/aggregated/targetHttpsProxies", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "flatPath": "projects/{project}/aggregated/targetHttpsProxies" + "FirewallPolicy": { + "description": "Represents a Firewall Policy resource.", + "id": "FirewallPolicy", + "properties": { + "ruleTupleCount": { + "type": "integer", + "format": "int32", + "description": "[Output Only] Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples." }, - "setUrlMap": { - "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", - "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", - "id": "compute.targetHttpsProxies.setUrlMap", - "response": { - "$ref": "Operation" + "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" + } + }, + "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])?", + "type": "string" + }, + "associations": { + "description": "A list of associations that belong to this firewall policy.", + "items": { + "$ref": "FirewallPolicyAssociation" }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "request": { - "$ref": "UrlMapReference" - }, - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "targetHttpsProxy": { - "location": "path", - "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "required": true, - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - } - }, - "description": "Changes the URL map for TargetHttpsProxy.", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "type": "array" }, - "get": { - "id": "compute.targetHttpsProxies.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])?))", - "type": "string", - "location": "path", - "required": true - }, - "targetHttpsProxy": { - "location": "path", - "required": true, - "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}", - "type": "string" - } + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "shortName": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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." + }, + "name": { + "type": "string", + "description": "Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by GCP which uniquely identifies the Organization Firewall Policy." + }, + "parent": { + "type": "string", + "description": "[Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies." + }, + "fingerprint": { + "format": "byte", + "type": "string", + "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." + }, + "region": { + "type": "string", + "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." + }, + "kind": { + "type": "string", + "description": "[Output only] Type of the resource. Always compute#firewallPolicyfor firewall policies", + "default": "compute#firewallPolicy" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, + "TargetSslProxiesSetCertificateMapRequest": { + "type": "object", + "properties": { + "certificateMap": { + "type": "string", + "description": "URL of the Certificate Map to associate with this TargetSslProxy." + } + }, + "id": "TargetSslProxiesSetCertificateMapRequest" + }, + "BackendServiceIAP": { + "type": "object", + "description": "Identity-Aware Proxy", + "id": "BackendServiceIAP", + "properties": { + "oauth2ClientSecretSha256": { + "description": "[Output Only] SHA256 hash value for the field oauth2_client_secret above.", + "type": "string" + }, + "enabled": { + "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.", + "type": "boolean" + }, + "oauth2ClientId": { + "description": "OAuth2 client ID to use for the authentication flow.", + "type": "string" + }, + "oauth2ClientSecret": { + "type": "string", + "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" + } + } + }, + "VpnTunnel": { + "description": "Represents a Cloud VPN Tunnel resource. For more information about VPN, read the the Cloud VPN Overview.", + "id": "VpnTunnel", + "properties": { + "peerIp": { + "type": "string", + "description": "IP address of the peer VPN gateway. Only IPv4 is supported." + }, + "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" + }, + "peerGcpGateway": { + "description": "URL of the peer side HA GCP 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 GCP VPN gateway.", + "type": "string" + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "default": "compute#vpnTunnel", + "type": "string" + }, + "peerExternalGateway": { + "type": "string", + "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." + }, + "peerExternalGatewayInterface": { + "format": "int32", + "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.", + "type": "integer" + }, + "detailedStatus": { + "description": "[Output Only] Detailed status message for the VPN tunnel.", + "type": "string" + }, + "vpnGatewayInterface": { + "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated.", + "type": "integer", + "format": "int32" + }, + "remoteTrafficSelector": { + "type": "array", + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "response": { - "$ref": "TargetHttpsProxy" + "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." + }, + "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.", + "items": { + "type": "string" }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "GET", - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request." + "type": "array" }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.targetHttpsProxies.list", - "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.", - "httpMethod": "GET", - "parameters": { - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "maxResults": { - "location": "query", - "format": "uint32", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "required": true - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - } + "sharedSecretHash": { + "type": "string", + "description": "Hash of the shared secret." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "sharedSecret": { + "type": "string", + "description": "Shared secret used to set the secure session between the Cloud VPN gateway and the peer VPN gateway." + }, + "router": { + "type": "string", + "description": "URL of the router resource to be used for dynamic routing." + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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.", + "annotations": { + "required": [ + "compute.vpnTunnels.insert" + ] }, - "flatPath": "projects/{project}/global/targetHttpsProxies", - "parameterOrder": [ - "project" + "type": "string" + }, + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "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" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "status": { + "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." ], - "path": "projects/{project}/global/targetHttpsProxies", - "response": { - "$ref": "TargetHttpsProxyList" + "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. ", + "enum": [ + "ALLOCATING_RESOURCES", + "AUTHORIZATION_ERROR", + "DEPROVISIONING", + "ESTABLISHED", + "FAILED", + "FIRST_HANDSHAKE", + "NEGOTIATION_FAILURE", + "NETWORK_ERROR", + "NO_INCOMING_PACKETS", + "PROVISIONING", + "REJECTED", + "STOPPED", + "WAITING_FOR_FULL_CONFIG" + ] + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "vpnGateway": { + "type": "string", + "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." + }, + "ikeVersion": { + "format": "int32", + "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" + } + }, + "type": "object" + }, + "BackendBucketCdnPolicy": { + "properties": { + "signedUrlKeyNames": { + "description": "[Output Only] Names of the keys for signing request URLs.", + "type": "array", + "items": { + "type": "string" } }, - "setSslPolicy": { - "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.", - "id": "compute.targetHttpsProxies.setSslPolicy", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "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])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "required": true - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "targetHttpsProxy": { - "location": "path", - "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.", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "request": { - "$ref": "SslPolicyReference" - }, - "httpMethod": "POST" + "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" }, - "insert": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.targetHttpsProxies.insert", - "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.", - "request": { - "$ref": "TargetHttpsProxy" - }, - "parameterOrder": [ - "project" + "serveWhileStale": { + "type": "integer", + "format": "int32", + "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." + }, + "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).", + "format": "int32", + "type": "integer" + }, + "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." ], - "flatPath": "projects/{project}/global/targetHttpsProxies", - "path": "projects/{project}/global/targetHttpsProxies", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - } - }, - "response": { - "$ref": "Operation" + "enum": [ + "CACHE_ALL_STATIC", + "FORCE_CACHE_ALL", + "INVALID_CACHE_MODE", + "USE_ORIGIN_HEADERS" + ] + }, + "negativeCachingPolicy": { + "items": { + "$ref": "BackendBucketCdnPolicyNegativeCachingPolicy" }, - "httpMethod": "POST" + "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" }, - "delete": { - "description": "Deletes the specified TargetHttpsProxy resource.", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "cacheKeyPolicy": { + "description": "The CacheKeyPolicy for this CdnPolicy.", + "$ref": "BackendBucketCdnPolicyCacheKeyPolicy" + }, + "maxTtl": { + "format": "int32", + "type": "integer", + "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." + }, + "bypassCacheOnRequestHeaders": { + "items": { + "$ref": "BackendBucketCdnPolicyBypassCacheOnRequestHeader" }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "parameters": { - "targetHttpsProxy": { - "location": "path", - "required": true, - "description": "Name of the TargetHttpsProxy resource to delete.", + "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" + }, + "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" + }, + "requestCoalescing": { + "type": "boolean", + "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin." + }, + "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" + } + }, + "id": "BackendBucketCdnPolicy", + "type": "object", + "description": "Message containing Cloud CDN configuration for a backend bucket." + }, + "ForwardingRuleList": { + "id": "ForwardingRuleList", + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "id": "compute.targetHttpsProxies.delete", - "httpMethod": "DELETE" - }, - "setSslCertificates": { - "description": "Replaces SslCertificates for TargetHttpsProxy.", - "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", - "response": { - "$ref": "Operation" - }, - "id": "compute.targetHttpsProxies.setSslCertificates", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "request": { - "$ref": "TargetHttpsProxiesSetSslCertificatesRequest" - }, - "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "parameters": { - "targetHttpsProxy": { - "required": true, - "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}", - "type": "string", - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string" - } - } - }, - "setQuicOverride": { - "parameters": { - "targetHttpsProxy": { - "location": "path", - "type": "string", - "required": true, - "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035." - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "requestId": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the QUIC override policy for TargetHttpsProxy.", - "id": "compute.targetHttpsProxies.setQuicOverride", - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", - "request": { - "$ref": "TargetHttpsProxiesSetQuicOverrideRequest" - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", - "response": { - "$ref": "Operation" - } + "type": "object" }, - "patch": { - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", - "type": "string", - "location": "query" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "targetHttpsProxy": { - "type": "string", - "required": true, - "location": "path", - "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}" - } - }, - "request": { - "$ref": "TargetHttpsProxy" - }, - "id": "compute.targetHttpsProxies.patch", - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "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.", - "response": { - "$ref": "Operation" + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "array", + "description": "A list of ForwardingRule resources.", + "items": { + "$ref": "ForwardingRule" } + }, + "kind": { + "default": "compute#forwardingRuleList", + "type": "string", + "description": "Type of resource." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" } - } + }, + "description": "Contains a list of ForwardingRule resources.", + "type": "object" }, - "regionUrlMaps": { - "methods": { - "validate": { - "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.", - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", - "parameters": { - "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", - "description": "Project ID for this request.", - "required": true, - "type": "string" - }, - "urlMap": { - "type": "string", - "location": "path", - "required": true, - "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}" - }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "location": "path", - "type": "string" - } - }, - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.regionUrlMaps.validate", - "response": { - "$ref": "UrlMapsValidateResponse" - }, - "request": { - "$ref": "RegionUrlMapsValidateRequest" + "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": { + "targetTags": { + "type": "array", + "items": { + "type": "string" }, - "httpMethod": "POST" + "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." }, - "list": { - "id": "compute.regionUrlMaps.list", - "response": { - "$ref": "UrlMapList" + "destinationRanges": { + "type": "array", + "items": { + "type": "string" }, - "path": "projects/{project}/regions/{region}/urlMaps", - "flatPath": "projects/{project}/regions/{region}/urlMaps", - "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.", - "httpMethod": "GET", - "parameters": { - "maxResults": { - "default": "500", - "format": "uint32", - "location": "query", - "minimum": "0", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "required": true - } + "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." + }, + "sourceTags": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "region" + "type": "array", + "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." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "direction": { + "type": "string", + "enumDescriptions": [ + "Indicates that firewall should apply to outgoing traffic.", + "Indicates that firewall should apply to incoming traffic." ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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.", + "enum": [ + "EGRESS", + "INGRESS" ] }, - "update": { - "request": { - "$ref": "UrlMap" + "kind": { + "default": "compute#firewall", + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#firewall for firewall rules." + }, + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "sourceServiceAccounts": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "response": { - "$ref": "Operation" + "type": "array", + "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." + }, + "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.", + "annotations": { + "required": [ + "compute.firewalls.insert", + "compute.firewalls.patch" + ] }, - "parameters": { - "project": { - "description": "Project ID for this request.", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - }, - "urlMap": { - "required": true, - "description": "Name of the UrlMap resource to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path" - }, - "requestId": { - "type": "string", - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", - "location": "query" + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "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" + }, + "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.", + "items": { + "type": "object", + "properties": { + "ports": { + "type": "array", + "items": { + "type": "string" + }, + "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\"]." + }, + "IPProtocol": { + "type": "string", + "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." + } } }, - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "id": "compute.regionUrlMaps.update", - "description": "Updates the specified UrlMap resource with the data included in the request.", - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}" + "type": "array" }, - "get": { - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "response": { - "$ref": "UrlMap" + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this field when you create the resource." + }, + "disabled": { + "type": "boolean", + "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." + }, + "sourceRanges": { + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "parameters": { - "urlMap": { - "location": "path", - "required": true, - "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}", - "type": "string" - }, - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "region": { - "required": true, - "description": "Name of the region scoping this request.", - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "type": "array", + "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." + }, + "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" + }, + "allowed": { + "items": { + "type": "object", + "properties": { + "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" + } + }, + "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" + } } }, - "httpMethod": "GET", - "id": "compute.regionUrlMaps.get" + "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" }, - "patch": { - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "id": "compute.regionUrlMaps.patch", - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "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.", - "request": { - "$ref": "UrlMap" + "targetServiceAccounts": { + "type": "array", + "items": { + "type": "string" }, - "parameters": { - "region": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string", - "description": "Name of the region scoping this request." - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true, - "location": "path" - }, - "requestId": { - "type": "string", - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", - "location": "query" - }, - "urlMap": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "description": "Name of the UrlMap resource to patch.", - "required": true - } - }, - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "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." }, - "insert": { - "flatPath": "projects/{project}/regions/{region}/urlMaps", - "id": "compute.regionUrlMaps.insert", - "parameters": { - "requestId": { - "location": "query", - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", - "type": "string" - }, - "region": { - "required": true, - "type": "string", - "location": "path", - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - } - }, - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/urlMaps", - "description": "Creates a UrlMap resource in the specified project using the data included in the request.", - "request": { - "$ref": "UrlMap" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "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" + } + } + }, + "AutoscalersScopedList": { + "properties": { + "autoscalers": { + "type": "array", + "description": "[Output Only] A list of autoscalers contained in this scope.", + "items": { + "$ref": "Autoscaler" } }, - "delete": { - "parameters": { - "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])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to delete.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" + "warning": { + "description": "[Output Only] Informational warning which replaces the list of autoscalers when the list is empty.", + "type": "object", + "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "requestId": { - "location": "query", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "required": true, + "message": { "type": "string", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." } - }, - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "description": "Deletes the specified UrlMap resource.", - "id": "compute.regionUrlMaps.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "DELETE" + } + } + }, + "type": "object", + "id": "AutoscalersScopedList" + }, + "InstanceGroupsSetNamedPortsRequest": { + "type": "object", + "id": "InstanceGroupsSetNamedPortsRequest", + "properties": { + "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" + }, + "namedPorts": { + "description": "The list of named ports to set for this instance group.", + "type": "array", + "items": { + "$ref": "NamedPort" + } } } }, - "diskTypes": { - "methods": { - "get": { - "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}", - "parameterOrder": [ - "project", - "zone", - "diskType" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "project": { - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." + "TargetTcpProxyList": { + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "warning": { + "properties": { + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "diskType": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "Name of the disk type to return." + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "zone": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "required": true, - "description": "The name of the zone for this request." + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" } }, - "id": "compute.diskTypes.get", - "httpMethod": "GET", - "response": { - "$ref": "DiskType" - }, - "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.", - "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}" + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "aggregatedList": { - "flatPath": "projects/{project}/aggregated/diskTypes", - "httpMethod": "GET", - "id": "compute.diskTypes.aggregatedList", - "parameterOrder": [ - "project" - ], - "description": "Retrieves an aggregated list of disk types.", - "path": "projects/{project}/aggregated/diskTypes", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "DiskTypeAggregatedList" - }, - "parameters": { - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "maxResults": { - "minimum": "0", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "includeAllScopes": { - "location": "query", - "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.", - "type": "boolean" - }, - "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])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": 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" }, - "list": { - "path": "projects/{project}/zones/{zone}/diskTypes", - "parameterOrder": [ - "project", - "zone" - ], - "httpMethod": "GET", - "parameters": { - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "type": "string", - "required": true, - "location": "path" - }, - "maxResults": { - "default": "500", - "format": "uint32", - "type": "integer", - "location": "query", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." - } + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#targetTcpProxyList" + }, + "items": { + "type": "array", + "items": { + "$ref": "TargetTcpProxy" }, - "description": "Retrieves a list of disk types available to the specified project.", - "id": "compute.diskTypes.list", - "flatPath": "projects/{project}/zones/{zone}/diskTypes", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "DiskTypeList" + "description": "A list of TargetTcpProxy resources." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + } + }, + "id": "TargetTcpProxyList", + "type": "object", + "description": "Contains a list of TargetTcpProxy resources." + }, + "RoutersPreviewResponse": { + "id": "RoutersPreviewResponse", + "type": "object", + "properties": { + "resource": { + "description": "Preview of given router.", + "$ref": "Router" + } + } + }, + "PathRule": { + "type": "object", + "description": "A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL.", + "id": "PathRule", + "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" + }, + "paths": { + "type": "array", + "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": { + "type": "string" } + }, + "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" + }, + "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 external HTTP(S) load balancers only support the urlRewrite action within a path rule's routeAction.", + "$ref": "HttpRouteAction" } } }, - "globalForwardingRules": { - "methods": { - "setLabels": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { + "properties": { + "ruleVisibility": { + "enumDescriptions": [ + "", + "" ], - "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "resource" + "enum": [ + "PREMIUM", + "STANDARD" ], - "parameters": { - "resource": { - "type": "string", - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true - }, - "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])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true - } - }, - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "id": "compute.globalForwardingRules.setLabels", - "flatPath": "projects/{project}/global/forwardingRules/{resource}/setLabels", - "path": "projects/{project}/global/forwardingRules/{resource}/setLabels", - "httpMethod": "POST" + "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules.", + "type": "string" }, - "get": { - "id": "compute.globalForwardingRules.get", - "response": { - "$ref": "ForwardingRule" - }, - "httpMethod": "GET", - "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", - "parameterOrder": [ - "project", - "forwardingRule" - ], - "parameters": { - "project": { - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - }, - "forwardingRule": { - "type": "string", - "required": true, - "location": "path", - "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}" - } - }, - "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/global/forwardingRules/{forwardingRule}" + "enable": { + "type": "boolean", + "description": "If set to true, enables CAAP for L7 DDoS detection." + } + }, + "type": "object", + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", + "description": "Configuration options for L7 DDoS detection." + }, + "BulkInsertInstanceResource": { + "type": "object", + "properties": { + "minCount": { + "type": "string", + "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.", + "format": "int64" }, - "insert": { - "request": { - "$ref": "ForwardingRule" - }, - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - } - }, - "flatPath": "projects/{project}/global/forwardingRules", - "path": "projects/{project}/global/forwardingRules", - "id": "compute.globalForwardingRules.insert", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project" - ], - "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.", - "httpMethod": "POST" + "instanceProperties": { + "description": "The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided.", + "$ref": "InstanceProperties" }, - "list": { - "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.", - "flatPath": "projects/{project}/global/forwardingRules", - "response": { - "$ref": "ForwardingRuleList" - }, - "path": "projects/{project}/global/forwardingRules", - "id": "compute.globalForwardingRules.list", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "parameters": { - "project": { - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "default": "500", - "type": "integer", - "location": "query", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0" - } - }, - "parameterOrder": [ - "project" - ] + "locationPolicy": { + "description": "Policy for chosing target zone. For more information, see Create VMs in bulk .", + "$ref": "LocationPolicy" }, - "patch": { - "id": "compute.globalForwardingRules.patch", - "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.", - "parameters": { - "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])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "forwardingRule": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the ForwardingRule resource to patch.", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "request": { - "$ref": "ForwardingRule" - }, - "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", - "path": "projects/{project}/global/forwardingRules/{forwardingRule}", - "httpMethod": "PATCH", - "parameterOrder": [ - "project", - "forwardingRule" - ], - "response": { - "$ref": "Operation" + "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" + }, + "count": { + "type": "string", + "format": "int64", + "description": "The maximum number of instances to create." + }, + "perInstanceProperties": { + "type": "object", + "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.", + "additionalProperties": { + "$ref": "BulkInsertInstanceResourcePerInstanceProperties" } }, - "setTarget": { - "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", - "id": "compute.globalForwardingRules.setTarget", - "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.", - "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "forwardingRule" + "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" + } + }, + "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.", + "id": "BulkInsertInstanceResource" + }, + "ProjectsSetDefaultNetworkTierRequest": { + "type": "object", + "properties": { + "networkTier": { + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" ], - "request": { - "$ref": "TargetReference" - }, - "httpMethod": "POST", - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "forwardingRule": { - "required": true, - "location": "path", - "description": "Name of the ForwardingRule resource in which target is to be set.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string", + "description": "Default network tier to be set.", + "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." ] + } + }, + "id": "ProjectsSetDefaultNetworkTierRequest" + }, + "NodeGroupAutoscalingPolicy": { + "id": "NodeGroupAutoscalingPolicy", + "properties": { + "maxNodes": { + "type": "integer", + "format": "int32", + "description": "The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100." }, - "delete": { - "parameterOrder": [ - "project", - "forwardingRule" + "mode": { + "type": "string", + "enumDescriptions": [ + "", + "Autoscaling is disabled.", + "Autocaling is fully enabled.", + "Autoscaling will only scale out and will not remove nodes." ], - "id": "compute.globalForwardingRules.delete", - "path": "projects/{project}/global/forwardingRules/{forwardingRule}", - "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", - "response": { - "$ref": "Operation" - }, - "description": "Deletes the specified GlobalForwardingRule resource.", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "forwardingRule": { - "type": "string", - "required": true, - "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" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - } - }, - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes.", + "enum": [ + "MODE_UNSPECIFIED", + "OFF", + "ON", + "ONLY_SCALE_OUT" ] + }, + "minNodes": { + "description": "The minimum number of nodes that the group should have.", + "format": "int32", + "type": "integer" } - } + }, + "type": "object" }, - "globalAddresses": { - "methods": { - "insert": { - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "Address" + "SslCertificateSelfManagedSslCertificate": { + "properties": { + "privateKey": { + "description": "A write-only private key in PEM format. Only insert requests will include this field.", + "type": "string" + }, + "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" + } + }, + "id": "SslCertificateSelfManagedSslCertificate", + "description": "Configuration and status of a self-managed SSL certificate.", + "type": "object" + }, + "TargetPool": { + "properties": { + "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.", + "items": { + "type": "string" }, - "parameterOrder": [ - "project" + "type": "array" + }, + "region": { + "description": "[Output Only] URL of the region where the target pool resides.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "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" + }, + "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" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "kind": { + "description": "[Output Only] Type of the resource. Always compute#targetPool for target pools.", + "type": "string", + "default": "compute#targetPool" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "sessionAffinity": { + "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." ], - "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" ], - "path": "projects/{project}/global/addresses", - "flatPath": "projects/{project}/global/addresses", - "httpMethod": "POST", - "id": "compute.globalAddresses.insert", - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "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])?))", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path" - } + "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." + }, + "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": "Represents a Target Pool resource. Target pools are used for network TCP/UDP load balancing. 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", + "id": "TargetPool" + }, + "UrlMapsValidateResponse": { + "id": "UrlMapsValidateResponse", + "properties": { + "result": { + "$ref": "UrlMapValidationResult" + } + }, + "type": "object" + }, + "PublicDelegatedPrefix": { + "type": "object", + "id": "PublicDelegatedPrefix", + "properties": { + "parentPrefix": { + "type": "string", + "description": "The URL of parent prefix. Either PublicAdvertisedPrefix or PublicDelegatedPrefix." + }, + "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" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "name": { + "annotations": { + "required": [ + "compute.publicDelegatedPrefixes.insert" + ] }, - "description": "Creates an address resource in the specified project by using the data included in the request." + "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" }, - "get": { - "path": "projects/{project}/global/addresses/{address}", - "httpMethod": "GET", - "id": "compute.globalAddresses.get", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "address" + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "status": { + "enumDescriptions": [ + "The public delegated prefix is active.", + "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": "Returns the specified address resource. Gets a list of available addresses by making a list() request.", - "parameters": { - "project": { - "description": "Project ID for this request.", + "enum": [ + "ANNOUNCED", + "DELETING", + "INITIALIZING", + "READY_TO_ANNOUNCE" + ], + "type": "string", + "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. " + }, + "publicDelegatedSubPrefixs": { + "items": { + "$ref": "PublicDelegatedPrefixPublicDelegatedSubPrefix" + }, + "type": "array", + "description": "The list of sub public delegated prefixes that exist for this public delegated prefix." + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "format": "uint64" + }, + "ipCidrRange": { + "type": "string", + "description": "The IPv4 address range, in CIDR format, represented by this public delegated prefix." + }, + "isLiveMigration": { + "type": "boolean", + "description": "If true, the prefix will be live migrated." + }, + "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.", + "format": "byte", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "kind": { + "default": "compute#publicDelegatedPrefix", + "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefix for public delegated prefixes.", + "type": "string" + } + }, + "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." + }, + "TargetHttpProxiesScopedList": { + "type": "object", + "id": "TargetHttpProxiesScopedList", + "properties": { + "targetHttpProxies": { + "type": "array", + "description": "A list of TargetHttpProxies contained in this scope.", + "items": { + "$ref": "TargetHttpProxy" + } + }, + "warning": { + "type": "object", + "properties": { + "message": { "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true + "description": "[Output Only] A human-readable description of the warning code." }, - "address": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the address resource to return." + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "data": { + "type": "array", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } }, - "response": { - "$ref": "Address" + "description": "Informational warning which replaces the list of backend services when the list is empty." + } + } + }, + "InterconnectAttachmentList": { + "description": "Response to the list request, and contains a list of interconnect attachments.", + "type": "object", + "id": "InterconnectAttachmentList", + "properties": { + "items": { + "items": { + "$ref": "InterconnectAttachment" }, - "flatPath": "projects/{project}/global/addresses/{address}" + "type": "array", + "description": "A list of InterconnectAttachment resources." }, - "list": { - "response": { - "$ref": "AddressList" - }, - "flatPath": "projects/{project}/global/addresses", - "parameters": { - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentList for lists of interconnect attachments.", + "default": "compute#interconnectAttachmentList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string" - }, - "maxResults": { - "location": "query", - "format": "uint32", - "type": "integer", - "minimum": "0", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" } }, - "httpMethod": "GET", - "id": "compute.globalAddresses.list", - "path": "projects/{project}/global/addresses", - "parameterOrder": [ - "project" - ], - "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." + "description": "[Output Only] Informational warning message." + } + } + }, + "NodeTypeList": { + "description": "Contains a list of node types.", + "type": "object", + "id": "NodeTypeList", + "properties": { + "kind": { + "type": "string", + "default": "compute#nodeTypeList", + "description": "[Output Only] Type of resource.Always compute#nodeTypeList for lists of node types." }, - "delete": { - "description": "Deletes the specified address resource.", - "parameters": { - "address": { + "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" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "message": { "type": "string", - "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}", - "required": true, - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." }, - "requestId": { - "location": "query", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + } } - }, - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/addresses/{address}", - "parameterOrder": [ - "project", - "address" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/addresses/{address}", - "httpMethod": "DELETE", - "id": "compute.globalAddresses.delete" + } } } }, - "targetGrpcProxies": { - "methods": { - "get": { - "id": "compute.targetGrpcProxies.get", - "response": { - "$ref": "TargetGrpcProxy" + "RouterList": { + "description": "Contains a list of Router resources.", + "id": "RouterList", + "type": "object", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "Router" }, - "description": "Returns the specified TargetGrpcProxy resource in the given scope.", - "parameterOrder": [ - "project", - "targetGrpcProxy" - ], - "httpMethod": "GET", - "parameters": { - "project": { + "description": "A list of Router resources." + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#router for routers.", + "type": "string", + "default": "compute#routerList" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "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": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "description": "Project ID for this request." + "description": "[Output Only] A human-readable description of the warning code." }, - "targetGrpcProxy": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "code": { "type": "string", - "description": "Name of the TargetGrpcProxy resource to return." - } - }, - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "delete": { - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "description": "Deletes the specified TargetGrpcProxy in the given scope", - "httpMethod": "DELETE", - "parameters": { - "targetGrpcProxy": { - "required": true, - "description": "Name of the TargetGrpcProxy resource to delete.", - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." + "data": { + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } - }, - "id": "compute.targetGrpcProxies.delete", - "parameterOrder": [ - "project", - "targetGrpcProxy" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + } + } + } + }, + "UsableSubnetworkSecondaryRange": { + "id": "UsableSubnetworkSecondaryRange", + "type": "object", + "description": "Secondary IP range of a usable subnetwork.", + "properties": { + "rangeName": { + "type": "string", + "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." }, - "insert": { - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", - "type": "string", - "location": "query" - }, - "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", - "type": "string", - "description": "Project ID for this request.", - "required": true - } - }, - "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.", - "id": "compute.targetGrpcProxies.insert", - "httpMethod": "POST", - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/global/targetGrpcProxies", - "flatPath": "projects/{project}/global/targetGrpcProxies", - "request": { - "$ref": "TargetGrpcProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "ipCidrRange": { + "description": "The range of IP addresses belonging to this subnetwork secondary range.", + "type": "string" + } + } + }, + "InstancesGetEffectiveFirewallsResponse": { + "properties": { + "firewallPolicys": { + "type": "array", + "description": "Effective firewalls from firewall policies.", + "items": { + "$ref": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + } }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "id": "compute.targetGrpcProxies.list", - "path": "projects/{project}/global/targetGrpcProxies", - "flatPath": "projects/{project}/global/targetGrpcProxies", - "response": { - "$ref": "TargetGrpcProxyList" + "firewalls": { + "items": { + "$ref": "Firewall" }, - "description": "Lists the TargetGrpcProxies for a project in the given scope.", - "parameterOrder": [ - "project" - ], - "parameters": { - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "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" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "type": "integer", - "minimum": "0", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "location": "query" - } + "type": "array", + "description": "Effective firewalls on the instance." + } + }, + "id": "InstancesGetEffectiveFirewallsResponse", + "type": "object" + }, + "SslPoliciesScopedList": { + "type": "object", + "properties": { + "sslPolicies": { + "type": "array", + "description": "A list of SslPolicies contained in this scope.", + "items": { + "$ref": "SslPolicy" } }, - "patch": { - "parameterOrder": [ - "project", - "targetGrpcProxy" - ], - "id": "compute.targetGrpcProxies.patch", - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "request": { - "$ref": "TargetGrpcProxy" - }, - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "response": { - "$ref": "Operation" - }, - "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.", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" + "warning": { + "description": "Informational warning which replaces the list of SSL policies when the list is empty.", + "type": "object", + "properties": { + "code": { + "type": "string", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "targetGrpcProxy": { - "description": "Name of the TargetGrpcProxy resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "project": { + "message": { "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "description": "Project ID for this request." + "description": "[Output Only] A human-readable description of the warning code." } } } - } + }, + "id": "SslPoliciesScopedList" }, - "licenses": { - "methods": { - "list": { - "parameters": { - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "maxResults": { - "minimum": "0", - "type": "integer", - "location": "query", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "project": { - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - } - }, - "flatPath": "projects/{project}/global/licenses", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.licenses.list", - "httpMethod": "GET", - "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. ", - "response": { - "$ref": "LicensesListResponse" + "SslPoliciesAggregatedList": { + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/global/licenses" + "type": "array" }, - "insert": { - "flatPath": "projects/{project}/global/licenses", - "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. ", - "parameters": { - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "warning": { + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "type": "array" }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "message": { "type": "string", - "location": "query" + "description": "[Output Only] A human-readable description of the warning code." + }, + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "type": "string" } }, - "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" - ], - "id": "compute.licenses.insert", - "request": { - "$ref": "License" - }, - "httpMethod": "POST", - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/global/licenses" + "type": "object", + "description": "[Output Only] Informational warning message." }, - "delete": { - "parameterOrder": [ - "project", - "license" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "kind": { + "type": "string", + "default": "compute#sslPoliciesAggregatedList", + "description": "[Output Only] Type of resource. Always compute#sslPolicyAggregatedList for lists of SSL Policies." + }, + "items": { + "description": "A list of SslPoliciesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of SSL policies.", + "$ref": "SslPoliciesScopedList" + } + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "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" + }, + "etag": { + "type": "string" + } + }, + "id": "SslPoliciesAggregatedList", + "type": "object" + }, + "Project": { + "properties": { + "name": { + "description": "The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.", + "type": "string" + }, + "quotas": { + "items": { + "$ref": "Quota" }, - "description": "Deletes the specified license. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "parameters": { - "license": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the license resource to delete.", - "location": "path" - }, - "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])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } + "type": "array", + "description": "[Output Only] Quotas assigned to this project." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource." + }, + "enabledFeatures": { + "items": { + "type": "string" }, - "flatPath": "projects/{project}/global/licenses/{license}", - "id": "compute.licenses.delete", - "path": "projects/{project}/global/licenses/{license}" + "type": "array", + "description": "Restricted features enabled for use on this project." }, - "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "xpnProjectStatus": { + "enum": [ + "HOST", + "UNSPECIFIED_XPN_PROJECT_STATUS" ], - "parameters": { - "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])?))", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "type": "string" - }, - "license": { - "required": true, - "description": "Name of the License resource to return.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - }, - "parameterOrder": [ - "project", - "license" + "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": [ + "", + "" + ] + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "usageExportLocation": { + "$ref": "UsageExportLocation", + "description": "The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored." + }, + "defaultServiceAccount": { + "type": "string", + "description": "[Output Only] Default service account used by VMs running in this project." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#project for projects.", + "default": "compute#project" + }, + "defaultNetworkTier": { + "type": "string", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" ], - "path": "projects/{project}/global/licenses/{license}", - "response": { - "$ref": "License" - }, - "httpMethod": "GET", - "flatPath": "projects/{project}/global/licenses/{license}", - "description": "Returns the specified License resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "id": "compute.licenses.get" + "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.", + "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." + ] }, - "testIamPermissions": { - "request": { - "$ref": "TestPermissionsRequest" - }, - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "resource": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "required": true, - "location": "path" - } + "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" + }, + "commonInstanceMetadata": { + "$ref": "Metadata", + "description": "Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information." + } + }, + "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", + "id": "Project" + }, + "Binding": { + "id": "Binding", + "type": "object", + "properties": { + "condition": { + "$ref": "Expr", + "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)." + }, + "bindingId": { + "type": "string", + "description": "This is deprecated and has no effect. Do not use." + }, + "role": { + "type": "string", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`." + }, + "members": { + "type": "array", + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. " + } + }, + "description": "Associates `members`, or principals, with a `role`." + }, + "Backend": { + "id": "Backend", + "description": "Message containing information of one individual backend.", + "properties": { + "balancingMode": { + "enumDescriptions": [ + "Balance based on the number of simultaneous connections.", + "Balance based on requests per second (RPS).", + "Balance based on the backend utilization." ], - "id": "compute.licenses.testIamPermissions", - "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. ", - "parameterOrder": [ - "project", - "resource" + "enum": [ + "CONNECTION", + "RATE", + "UTILIZATION" ], - "response": { - "$ref": "TestPermissionsResponse" - }, - "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions", - "httpMethod": "POST", - "path": "projects/{project}/global/licenses/{resource}/testIamPermissions" + "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" }, - "setIamPolicy": { - "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. ", - "parameterOrder": [ - "project", - "resource" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Policy" - }, - "id": "compute.licenses.setIamPolicy", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "required": true - }, - "resource": { - "description": "Name or id of the resource for this request.", - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - }, - "httpMethod": "POST", - "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy", - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "path": "projects/{project}/global/licenses/{resource}/setIamPolicy" + "maxRatePerInstance": { + "type": "number", + "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.", + "format": "float" }, - "getIamPolicy": { - "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. ", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "project": { - "required": true, - "location": "path", + "maxConnectionsPerInstance": { + "type": "integer", + "format": "int32", + "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." + }, + "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" + }, + "maxConnections": { + "format": "int32", + "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" + }, + "maxRatePerEndpoint": { + "format": "float", + "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" + }, + "maxRate": { + "type": "integer", + "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.", + "format": "int32" + }, + "maxConnectionsPerEndpoint": { + "type": "integer", + "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.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "capacityScaler": { + "format": "float", + "type": "number", + "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." + }, + "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" + }, + "failover": { + "type": "boolean", + "description": "This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService." + } + }, + "type": "object" + }, + "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.", + "id": "DiskType", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "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" + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "validDiskSize": { + "description": "[Output Only] An optional textual description of the valid disk size, such as \"10GB-10TB\".", + "type": "string" + }, + "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" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "defaultDiskSizeGb": { + "description": "[Output Only] Server-defined default disk size in GB.", + "type": "string", + "format": "int64" + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "type": "string" + }, + "kind": { + "description": "[Output Only] Type of the resource. Always compute#diskType for disk types.", + "default": "compute#diskType", + "type": "string" + }, + "deprecated": { + "description": "[Output Only] The deprecation status associated with this disk type.", + "$ref": "DeprecationStatus" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, + "SecurityPolicyList": { + "properties": { + "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" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#securityPolicyList for listsof securityPolicies", + "default": "compute#securityPolicyList" + }, + "warning": { + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "optionsRequestedPolicyVersion": { - "location": "query", - "type": "integer", - "format": "int32", - "description": "Requested IAM Policy version." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "resource": { - "required": true, - "location": "path", - "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}", + "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\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "type": "array" } }, - "parameterOrder": [ - "project", - "resource" - ], - "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy", - "response": { - "$ref": "Policy" + "description": "[Output Only] Informational warning message." + }, + "items": { + "type": "array", + "items": { + "$ref": "SecurityPolicy" }, - "httpMethod": "GET", - "id": "compute.licenses.getIamPolicy", - "path": "projects/{project}/global/licenses/{resource}/getIamPolicy" + "description": "A list of SecurityPolicy resources." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" } - } + }, + "type": "object", + "id": "SecurityPolicyList" }, - "machineTypes": { - "methods": { - "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "project": { - "required": true, - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "machineType": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the machine type to return.", - "type": "string", - "location": "path", - "required": true - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "The name of the zone for this request.", - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}", - "id": "compute.machineTypes.get", - "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", - "response": { - "$ref": "MachineType" - }, - "httpMethod": "GET", - "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.", - "parameterOrder": [ - "project", - "zone", - "machineType" - ] + "HostRule": { + "properties": { + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." }, - "list": { - "description": "Retrieves a list of machine types available to the specified project.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/zones/{zone}/machineTypes", - "httpMethod": "GET", - "flatPath": "projects/{project}/zones/{zone}/machineTypes", - "parameterOrder": [ - "project", - "zone" - ], - "id": "compute.machineTypes.list", - "parameters": { - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "zone": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "location": "path" - }, - "maxResults": { - "location": "query", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "format": "uint32", - "minimum": "0" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "project": { - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "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" - } + "hosts": { + "items": { + "type": "string" }, - "response": { - "$ref": "MachineTypeList" + "type": "array", + "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." + }, + "pathMatcher": { + "type": "string", + "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." + } + }, + "description": "UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", + "type": "object", + "id": "HostRule" + }, + "BackendServiceCdnPolicy": { + "description": "Message containing Cloud CDN configuration for a backend service.", + "properties": { + "negativeCachingPolicy": { + "type": "array", + "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.", + "items": { + "$ref": "BackendServiceCdnPolicyNegativeCachingPolicy" } }, - "aggregatedList": { - "httpMethod": "GET", - "parameterOrder": [ - "project" - ], - "id": "compute.machineTypes.aggregatedList", - "description": "Retrieves an aggregated list of machine types.", - "response": { - "$ref": "MachineTypeAggregatedList" - }, - "parameters": { - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "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.", - "type": "boolean", - "location": "query" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "maxResults": { - "type": "integer", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "default": "500", - "format": "uint32" - } + "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.", + "format": "int32", + "type": "integer" + }, + "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" + }, + "signedUrlKeyNames": { + "items": { + "type": "string" }, - "flatPath": "projects/{project}/aggregated/machineTypes", - "path": "projects/{project}/aggregated/machineTypes", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": "[Output Only] Names of the keys for signing request URLs.", + "type": "array" + }, + "cacheMode": { + "type": "string", + "enum": [ + "CACHE_ALL_STATIC", + "FORCE_CACHE_ALL", + "INVALID_CACHE_MODE", + "USE_ORIGIN_HEADERS" + ], + "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.", + "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." ] + }, + "signedUrlCacheMaxAgeSec": { + "format": "int64", + "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" + }, + "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" + }, + "requestCoalescing": { + "type": "boolean", + "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin." + }, + "maxTtl": { + "type": "integer", + "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.", + "format": "int32" + }, + "bypassCacheOnRequestHeaders": { + "items": { + "$ref": "BackendServiceCdnPolicyBypassCacheOnRequestHeader" + }, + "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" + }, + "cacheKeyPolicy": { + "$ref": "CacheKeyPolicy", + "description": "The CacheKeyPolicy for this CdnPolicy." + }, + "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" + } + }, + "id": "BackendServiceCdnPolicy", + "type": "object" + }, + "InstanceGroupManagersPatchPerInstanceConfigsReq": { + "properties": { + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } + } + }, + "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", + "description": "InstanceGroupManagers.patchPerInstanceConfigs", + "type": "object" + }, + "ReservationsResizeRequest": { + "type": "object", + "id": "ReservationsResizeRequest", + "properties": { + "specificSkuCount": { + "type": "string", + "format": "int64", + "description": "Number of allocated resources can be resized with minimum = 1 and maximum = 1000." } } }, - "httpsHealthChecks": { - "methods": { - "get": { - "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.", - "id": "compute.httpsHealthChecks.get", - "response": { - "$ref": "HttpsHealthCheck" - }, - "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "parameters": { - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true - }, - "httpsHealthCheck": { - "description": "Name of the HttpsHealthCheck resource to return.", - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } + "BackendServiceReference": { + "properties": { + "backendService": { + "type": "string" + } + }, + "type": "object", + "id": "BackendServiceReference" + }, + "InstanceParams": { + "description": "Additional instance params.", + "id": "InstanceParams", + "type": "object", + "properties": { + "resourceManagerTags": { + "type": "object", + "additionalProperties": { + "type": "string" }, - "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "parameterOrder": [ - "project", - "httpsHealthCheck" - ] + "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." + } + } + }, + "HttpRouteRule": { + "properties": { + "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" }, - "update": { - "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.", - "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "parameters": { - "httpsHealthCheck": { - "required": true, - "type": "string", - "location": "path", - "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}" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "response": { - "$ref": "Operation" + "priority": { + "format": "int32", + "type": "integer", + "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." + }, + "matchRules": { + "items": { + "$ref": "HttpRouteRuleMatch" }, - "id": "compute.httpsHealthChecks.update", - "httpMethod": "PUT", - "parameterOrder": [ - "project", - "httpsHealthCheck" - ], - "request": { - "$ref": "HttpsHealthCheck" + "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" + }, + "urlRedirect": { + "$ref": "HttpRedirectAction", + "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." + }, + "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" + }, + "routeAction": { + "$ref": "HttpRouteAction", + "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 external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction." + }, + "description": { + "type": "string", + "description": "The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters." + } + }, + "description": "The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform.", + "id": "HttpRouteRule", + "type": "object" + }, + "PublicDelegatedPrefixAggregatedList": { + "id": "PublicDelegatedPrefixAggregatedList", + "type": "object", + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this 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" + }, + "items": { + "type": "object", + "additionalProperties": { + "$ref": "PublicDelegatedPrefixesScopedList", + "description": "[Output Only] Name of the scope containing this set of PublicDelegatedPrefixes." }, - "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}" + "description": "A list of PublicDelegatedPrefixesScopedList resources." }, - "patch": { - "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.", - "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, + "kind": { + "default": "compute#publicDelegatedPrefixAggregatedList", + "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixAggregatedList for aggregated lists of public delegated prefixes.", + "type": "string" + }, + "warning": { + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "httpsHealthCheck": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the HttpsHealthCheck resource to patch.", - "type": "string", - "location": "path" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "code": { "type": "string", - "location": "query" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." } }, - "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "parameterOrder": [ - "project", - "httpsHealthCheck" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "HttpsHealthCheck" + "description": "[Output Only] Informational warning message.", + "type": "object" + }, + "unreachables": { + "type": "array", + "items": { + "type": "string" }, - "id": "compute.httpsHealthChecks.patch" + "description": "[Output Only] Unreachable resources." }, - "delete": { - "id": "compute.httpsHealthChecks.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "DELETE", - "parameters": { - "project": { - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "httpsHealthCheck": { - "required": true, - "description": "Name of the HttpsHealthCheck resource to delete.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + } + } + }, + "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": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#region for regions.", + "default": "compute#region" + }, + "zones": { + "description": "[Output Only] A list of zones available in this region, in the form of resource URLs.", + "items": { + "type": "string" }, - "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "parameterOrder": [ - "project", - "httpsHealthCheck" - ], - "description": "Deletes the specified HttpsHealthCheck resource.", - "response": { - "$ref": "Operation" - } + "type": "array" }, - "insert": { - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path" - } + "quotas": { + "description": "[Output Only] Quotas assigned to this region.", + "items": { + "$ref": "Quota" }, - "httpMethod": "POST", - "parameterOrder": [ - "project" + "type": "array" + }, + "supportsPzs": { + "type": "boolean", + "description": "[Output Only] Reserved for future use." + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this region." + }, + "description": { + "type": "string", + "description": "[Output Only] Textual description of the resource." + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the resource." + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "status": { + "enumDescriptions": [ + "", + "" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "[Output Only] Status of the region, either UP or DOWN.", + "enum": [ + "DOWN", + "UP" ], - "flatPath": "projects/{project}/global/httpsHealthChecks", - "request": { - "$ref": "HttpsHealthCheck" - }, - "path": "projects/{project}/global/httpsHealthChecks", - "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.", - "id": "compute.httpsHealthChecks.insert", - "response": { - "$ref": "Operation" - } + "type": "string" }, - "list": { - "path": "projects/{project}/global/httpsHealthChecks", - "parameters": { - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + } + } + }, + "DisksScopedList": { + "id": "DisksScopedList", + "type": "object", + "properties": { + "warning": { + "description": "[Output Only] Informational warning which replaces the list of disks when the list is empty.", + "type": "object", + "properties": { + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path" - }, - "maxResults": { - "minimum": "0", - "default": "500", - "type": "integer", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32" - }, - "orderBy": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." } + } + }, + "disks": { + "items": { + "$ref": "Disk" }, - "response": { - "$ref": "HttpsHealthCheckList" - }, - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/global/httpsHealthChecks", - "id": "compute.httpsHealthChecks.list", - "httpMethod": "GET", - "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project." + "description": "[Output Only] A list of disks contained in this scope.", + "type": "array" } } }, - "licenseCodes": { - "methods": { - "testIamPermissions": { - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "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. ", - "parameters": { - "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])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true - }, - "resource": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name or id of the resource for this request." - } - }, - "httpMethod": "POST", - "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", - "response": { - "$ref": "TestPermissionsResponse" + "RoutersScopedList": { + "id": "RoutersScopedList", + "properties": { + "routers": { + "description": "A list of routers contained in this scope.", + "items": { + "$ref": "Router" }, - "id": "compute.licenseCodes.testIamPermissions", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions" + "type": "array" }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "LicenseCode" - }, - "path": "projects/{project}/global/licenseCodes/{licenseCode}", - "id": "compute.licenseCodes.get", - "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. ", - "parameters": { - "licenseCode": { - "pattern": "[0-9]{0,61}?", - "required": true, - "location": "path", - "type": "string", - "description": "Number corresponding to the License code resource to return." + "warning": { + "description": "Informational warning which replaces the list of routers when the list is empty.", + "type": "object", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" }, - "project": { - "description": "Project ID for this request.", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } - }, - "parameterOrder": [ - "project", - "licenseCode" - ], - "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}" + } } - } + }, + "type": "object" }, - "instanceTemplates": { - "methods": { - "get": { - "parameterOrder": [ - "project", - "instanceTemplate" - ], - "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", - "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.", - "id": "compute.instanceTemplates.get", - "parameters": { - "instanceTemplate": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "UsableSubnetworksAggregatedList": { + "type": "object", + "properties": { + "warning": { + "properties": { + "message": { "type": "string", - "description": "The name of the instance template.", - "required": true, - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } + }, + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "description": "Project ID for this request." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." } }, - "httpMethod": "GET", - "response": { - "$ref": "InstanceTemplate" - }, - "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "delete": { - "id": "compute.instanceTemplates.delete", - "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "instanceTemplate": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true, - "description": "The name of the instance template to delete." - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - } - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "instanceTemplate" - ], - "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.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", - "httpMethod": "DELETE" + "kind": { + "default": "compute#usableSubnetworksAggregatedList", + "type": "string", + "description": "[Output Only] Type of resource. Always compute#usableSubnetworksAggregatedList for aggregated lists of usable subnetworks." }, - "testIamPermissions": { - "response": { - "$ref": "TestPermissionsResponse" - }, - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions", - "httpMethod": "POST", - "request": { - "$ref": "TestPermissionsRequest" - }, - "parameters": { - "project": { - "type": "string", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "resource": { - "type": "string", - "location": "path", - "required": true, - "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}" - } + "items": { + "type": "array", + "description": "[Output] A list of usable subnetwork URLs.", + "items": { + "$ref": "UsableSubnetwork" + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + } + }, + "id": "UsableSubnetworksAggregatedList" + }, + "InterconnectDiagnosticsLinkStatus": { + "properties": { + "googleDemarc": { + "type": "string", + "description": "The Demarc address assigned by Google and provided in the LoA." + }, + "receivingOpticalPower": { + "$ref": "InterconnectDiagnosticsLinkOpticalPower", + "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level." + }, + "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", + "items": { + "$ref": "InterconnectDiagnosticsARPEntry" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "array" + }, + "transmittingOpticalPower": { + "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the transmitted light level.", + "$ref": "InterconnectDiagnosticsLinkOpticalPower" + }, + "circuitId": { + "description": "The unique ID for this link assigned during turn up by Google.", + "type": "string" + }, + "lacpStatus": { + "$ref": "InterconnectDiagnosticsLinkLACPStatus" + } + }, + "id": "InterconnectDiagnosticsLinkStatus", + "type": "object" + }, + "ReservationAffinity": { + "id": "ReservationAffinity", + "description": "Specifies the reservations that this instance can consume from.", + "properties": { + "consumeReservationType": { + "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.", + "" ], - "id": "compute.instanceTemplates.testIamPermissions", - "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions", - "parameterOrder": [ - "project", - "resource" + "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", + "enum": [ + "ANY_RESERVATION", + "NO_RESERVATION", + "SPECIFIC_RESERVATION", + "UNSPECIFIED" ] }, - "setIamPolicy": { - "httpMethod": "POST", - "parameterOrder": [ - "project", - "resource" - ], - "flatPath": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", - "id": "compute.instanceTemplates.setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "parameters": { - "resource": { - "location": "path", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request." - }, - "project": { - "location": "path", - "type": "string", - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "key": { + "type": "string", + "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." + }, + "values": { + "type": "array", + "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.", + "items": { + "type": "string" + } + } + }, + "type": "object" + }, + "ResourcePolicySnapshotSchedulePolicyRetentionPolicy": { + "type": "object", + "description": "Policy for retention of scheduled snapshots.", + "id": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", + "properties": { + "onSourceDiskDelete": { + "enumDescriptions": [ + "", + "", + "" ], - "response": { - "$ref": "Policy" - }, - "request": { - "$ref": "GlobalSetPolicyRequest" + "description": "Specifies the behavior to apply to scheduled snapshots when the source disk is deleted.", + "type": "string", + "enum": [ + "APPLY_RETENTION_POLICY", + "KEEP_AUTO_SNAPSHOTS", + "UNSPECIFIED_ON_SOURCE_DISK_DELETE" + ] + }, + "maxRetentionDays": { + "description": "Maximum age of the snapshot that is allowed to be kept.", + "type": "integer", + "format": "int32" + } + } + }, + "NotificationEndpointGrpcSettings": { + "id": "NotificationEndpointGrpcSettings", + "type": "object", + "description": "Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint.", + "properties": { + "endpoint": { + "description": "Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name.", + "type": "string" + }, + "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" + }, + "retryDurationSec": { + "format": "uint32", + "type": "integer", + "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." + }, + "resendInterval": { + "$ref": "Duration", + "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." + } + } + }, + "InstanceConsumptionInfo": { + "type": "object", + "id": "InstanceConsumptionInfo", + "properties": { + "guestCpus": { + "description": "The number of virtual CPUs that are available to the instance.", + "format": "int32", + "type": "integer" + }, + "minNodeCpus": { + "type": "integer", + "description": "The minimal guaranteed number of virtual CPUs that are reserved.", + "format": "int32" + }, + "memoryMb": { + "description": "The amount of physical memory available to the instance, defined in MiB.", + "type": "integer", + "format": "int32" + }, + "localSsdGb": { + "format": "int32", + "description": "The amount of local SSD storage available to the instance, defined in GiB.", + "type": "integer" + } + } + }, + "NetworkEndpoint": { + "properties": { + "instance": { + "description": "The name for a specific VM instance that the IP address belongs to. This is required for network endpoints of type GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint group. The name must be 1-63 characters long, and comply with RFC1035.", + "type": "string" + }, + "ipAddress": { + "type": "string", + "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." + }, + "annotations": { + "type": "object", + "description": "Metadata defined as annotations on the network endpoint.", + "additionalProperties": { + "type": "string" } }, - "getIamPolicy": { - "parameterOrder": [ - "project", - "resource" - ], - "httpMethod": "GET", - "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy", - "response": { - "$ref": "Policy" - }, - "id": "compute.instanceTemplates.getIamPolicy", - "parameters": { - "resource": { - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "description": "Name or id of the resource for this request." - }, - "project": { - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "optionsRequestedPolicyVersion": { - "type": "integer", - "location": "query", - "description": "Requested IAM Policy version.", - "format": "int32" - } - }, - "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.", - "flatPath": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy" + "port": { + "description": "Optional port number of network endpoint. If not specified, the defaultPort for the network endpoint group will be used.", + "format": "int32", + "type": "integer" }, - "list": { - "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.", - "id": "compute.instanceTemplates.list", - "response": { - "$ref": "InstanceTemplateList" - }, - "parameters": { - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "default": "500", - "type": "integer", - "format": "uint32", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "fqdn": { + "type": "string", + "description": "Optional fully qualified domain name of network endpoint. This can only be specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT." + } + }, + "description": "The network endpoint.", + "type": "object", + "id": "NetworkEndpoint" + }, + "AutoscalerList": { + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "default": "compute#autoscalerList", + "type": "string", + "description": "[Output Only] Type of resource. Always compute#autoscalerList for lists of autoscalers." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "project": { - "required": true, - "location": "path", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "flatPath": "projects/{project}/global/instanceTemplates", - "parameterOrder": [ - "project" - ], - "httpMethod": "GET", - "path": "projects/{project}/global/instanceTemplates" + "type": "object" }, - "insert": { - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/instanceTemplates", - "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.", - "httpMethod": "POST", - "id": "compute.instanceTemplates.insert", - "flatPath": "projects/{project}/global/instanceTemplates", - "parameterOrder": [ - "project" - ], - "parameters": { - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } - }, - "request": { - "$ref": "InstanceTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "items": { + "description": "A list of Autoscaler resources.", + "type": "array", + "items": { + "$ref": "Autoscaler" + } + }, + "nextPageToken": { + "type": "string", + "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." } - } + }, + "description": "Contains a list of Autoscaler resources.", + "type": "object", + "id": "AutoscalerList" }, - "nodeGroups": { - "methods": { - "delete": { - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the NodeGroup resource to delete.", - "required": true - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "The name of the zone for this request.", - "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])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path", - "type": "string" - } - }, - "id": "compute.nodeGroups.delete", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "description": "Deletes the specified NodeGroup resource.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "DELETE" + "NamedPort": { + "properties": { + "port": { + "description": "The port number, which can be a value between 1 and 65535.", + "type": "integer", + "format": "int32" }, - "insert": { - "flatPath": "projects/{project}/zones/{zone}/nodeGroups", - "parameters": { - "initialNodeCount": { - "format": "int32", - "location": "query", - "type": "integer", - "description": "Initial count of nodes in the node group.", - "required": true - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "zone": { - "location": "path", - "description": "The name of the zone for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path" - } + "name": { + "description": "The name for this named port. The name must be 1-63 characters long, and comply with RFC1035.", + "type": "string" + } + }, + "description": "The named port. For example: \u003c\"http\", 80\u003e.", + "type": "object", + "id": "NamedPort" + }, + "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings": { + "properties": { + "drainNatIpPortRanges": { + "items": { + "type": "string" }, - "request": { - "$ref": "NodeGroup" + "type": "array", + "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\"]." + }, + "ruleNumber": { + "format": "int32", + "description": "Rule number of the NAT Rule.", + "type": "integer" + }, + "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" + }, + "natIpPortRanges": { + "type": "array", + "items": { + "type": "string" }, - "id": "compute.nodeGroups.insert", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "zone", - "initialNodeCount" - ], - "response": { - "$ref": "Operation" + "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\"]." + }, + "numTotalNatPorts": { + "type": "integer", + "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.", + "format": "int32" + } + }, + "type": "object", + "id": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings", + "description": "Contains information of NAT Mappings provided by a NAT Rule." + }, + "StatefulPolicyPreservedState": { + "id": "StatefulPolicyPreservedState", + "type": "object", + "properties": { + "disks": { + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateDiskDevice" }, - "path": "projects/{project}/zones/{zone}/nodeGroups", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + } + }, + "description": "Configuration of preserved resources." + }, + "ExchangedPeeringRoute": { + "type": "object", + "properties": { + "destRange": { + "description": "The destination range of the route.", + "type": "string" + }, + "type": { + "description": "The type of the peering route.", + "enum": [ + "DYNAMIC_PEERING_ROUTE", + "STATIC_PEERING_ROUTE", + "SUBNET_PEERING_ROUTE" ], - "description": "Creates a NodeGroup resource in the specified project using the data included in the request." + "type": "string", + "enumDescriptions": [ + "For routes exported from local network.", + "The peering route.", + "The peering route corresponding to subnetwork range." + ] }, - "testIamPermissions": { - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", - "parameterOrder": [ - "project", - "zone", - "resource" + "priority": { + "type": "integer", + "format": "uint32", + "description": "The priority of the peering route." + }, + "nextHopRegion": { + "type": "string", + "description": "The region of peering route next hop, only applies to dynamic routes." + }, + "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" + } + }, + "id": "ExchangedPeeringRoute" + }, + "ResourcePolicyInstanceSchedulePolicy": { + "properties": { + "startTime": { + "type": "string", + "description": "The start time of the schedule. The timestamp is an RFC3339 string." + }, + "expirationTime": { + "description": "The expiration time of the schedule. The timestamp is an RFC3339 string.", + "type": "string" + }, + "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: http://en.wikipedia.org/wiki/Tz_database.", + "type": "string" + }, + "vmStartSchedule": { + "$ref": "ResourcePolicyInstanceSchedulePolicySchedule", + "description": "Specifies the schedule for starting instances." + }, + "vmStopSchedule": { + "$ref": "ResourcePolicyInstanceSchedulePolicySchedule", + "description": "Specifies the schedule for stopping instances." + } + }, + "description": "An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance.", + "type": "object", + "id": "ResourcePolicyInstanceSchedulePolicy" + }, + "RegionInstanceGroupManagersSetTargetPoolsRequest": { + "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": { + "format": "byte", + "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" + } + }, + "type": "object", + "id": "RegionInstanceGroupManagersSetTargetPoolsRequest" + }, + "VpnGatewayStatusTunnel": { + "description": "Contains some information about a VPN tunnel.", + "id": "VpnGatewayStatusTunnel", + "type": "object", + "properties": { + "localGatewayInterface": { + "type": "integer", + "description": "The VPN gateway interface this VPN tunnel is associated with.", + "format": "uint32" + }, + "peerGatewayInterface": { + "type": "integer", + "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or GCP VPN gateway.", + "format": "uint32" + }, + "tunnelUrl": { + "type": "string", + "description": "URL reference to the VPN tunnel." + } + } + }, + "InterconnectsGetDiagnosticsResponse": { + "type": "object", + "id": "InterconnectsGetDiagnosticsResponse", + "description": "Response for the InterconnectsGetDiagnosticsRequest.", + "properties": { + "result": { + "$ref": "InterconnectDiagnostics" + } + } + }, + "Screenshot": { + "description": "An instance's screenshot.", + "id": "Screenshot", + "properties": { + "contents": { + "description": "[Output Only] The Base64-encoded screenshot data.", + "type": "string" + }, + "kind": { + "default": "compute#screenshot", + "description": "[Output Only] Type of the resource. Always compute#screenshot for the screenshots.", + "type": "string" + } + }, + "type": "object" + }, + "SecurityPolicyRuleRedirectOptions": { + "type": "object", + "id": "SecurityPolicyRuleRedirectOptions", + "properties": { + "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" + }, + "type": { + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "TestPermissionsResponse" - }, - "description": "Returns permissions that a caller has on the specified resource.", - "id": "compute.nodeGroups.testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, - "parameters": { - "zone": { - "description": "The name of the zone for this request.", - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "resource": { - "location": "path", - "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}", - "required": true, - "type": "string" - } - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string", + "enum": [ + "EXTERNAL_302", + "GOOGLE_RECAPTCHA" ], - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions" + "description": "Type of the redirect action." + } + } + }, + "WafExpressionSet": { + "type": "object", + "id": "WafExpressionSet", + "properties": { + "expressions": { + "type": "array", + "description": "List of available expressions.", + "items": { + "$ref": "WafExpressionSetExpression" + } }, - "deleteNodes": { - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "NodeGroupsDeleteNodesRequest" + "id": { + "description": "Google specified expression set ID. The format should be: - E.g. XSS-20170329 required", + "type": "string" + }, + "aliases": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "description": "Deletes specified nodes from the node group.", - "parameters": { - "nodeGroup": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the NodeGroup resource whose nodes will be deleted.", - "location": "path", - "type": "string", - "required": true + "type": "array", + "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." + } + } + }, + "AddressList": { + "type": "object", + "description": "Contains a list of addresses.", + "id": "AddressList", + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "kind": { + "default": "compute#addressList", + "description": "[Output Only] Type of resource. Always compute#addressList for lists of addresses.", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "description": "A list of Address resources.", + "type": "array", + "items": { + "$ref": "Address" + } + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "warning": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "message": { "type": "string", - "description": "Project ID for this request." - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." }, - "zone": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "code": { "type": "string", - "required": true, - "description": "The name of the zone for this request." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." } }, - "id": "compute.nodeGroups.deleteNodes" - }, - "addNodes": { - "request": { - "$ref": "NodeGroupsAddNodesRequest" - }, - "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "description": "[Output Only] Informational warning message." + } + } + }, + "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" + } + } + }, + "id": "TargetPoolsAddInstanceRequest" + }, + "ServiceAttachmentsScopedList": { + "type": "object", + "properties": { + "warning": { + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "location": "path", - "required": true + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" }, - "project": { - "location": "path", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", - "description": "Adds specified number of nodes to the node group.", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "id": "compute.nodeGroups.addNodes" + "description": "Informational warning which replaces the list of service attachments when the list is empty.", + "type": "object" }, - "getIamPolicy": { - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", - "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.", - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true - }, - "optionsRequestedPolicyVersion": { - "location": "query", - "type": "integer", - "format": "int32", - "description": "Requested IAM Policy version." - }, - "resource": { - "type": "string", - "description": "Name or id of the resource for this request.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "zone": { - "description": "The name of the zone for this request.", - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "response": { - "$ref": "Policy" - }, - "httpMethod": "GET", - "id": "compute.nodeGroups.getIamPolicy" + "serviceAttachments": { + "description": "A list of ServiceAttachments contained in this scope.", + "type": "array", + "items": { + "$ref": "ServiceAttachment" + } + } + }, + "id": "ServiceAttachmentsScopedList" + }, + "SnapshotList": { + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." }, - "listNodes": { - "description": "Lists nodes in the node group.", - "response": { - "$ref": "NodeGroupsListNodes" - }, - "id": "compute.nodeGroups.listNodes", - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", - "parameters": { - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token 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": { + "properties": { + "data": { + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "project": { + "message": { "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - }, - "maxResults": { - "minimum": "0", - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "location": "query" + "description": "[Output Only] A human-readable description of the warning code." }, - "nodeGroup": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the NodeGroup resource whose nodes you want to list.", - "location": "path", - "required": true, + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "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.", - "type": "string", - "location": "query" - }, - "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": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "The name of the zone for this request.", - "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "POST" + "type": "object", + "description": "[Output Only] Informational warning message." }, - "get": { - "httpMethod": "GET", - "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.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#snapshotList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "description": "A list of Snapshot resources.", + "type": "array", + "items": { + "$ref": "Snapshot" + } + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + } + }, + "description": "Contains a list of Snapshot resources.", + "type": "object", + "id": "SnapshotList" + }, + "StatefulPolicyPreservedStateDiskDevice": { + "id": "StatefulPolicyPreservedStateDiskDevice", + "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.", + "enumDescriptions": [ + "", + "" ], - "parameterOrder": [ - "project", - "zone", - "nodeGroup" + "type": "string", + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ] + } + }, + "type": "object" + }, + "VpnGateway": { + "id": "VpnGateway", + "properties": { + "stackType": { + "enumDescriptions": [ + "Enable VPN gateway with both IPv4 and IPv6 protocols.", + "Enable VPN gateway with only IPv4 protocol." ], - "parameters": { - "nodeGroup": { - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the node group to return." - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request.", - "location": "path" - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string", - "description": "The name of the zone for this request." - } + "type": "string", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used." + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "vpnInterfaces": { + "type": "array", + "items": { + "$ref": "VpnGatewayVpnGatewayInterface" }, - "id": "compute.nodeGroups.get", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "response": { - "$ref": "NodeGroup" + "description": "The list of VPN interfaces associated with this VPN gateway." + }, + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "network": { + "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created.", + "type": "string", + "annotations": { + "required": [ + "compute.vpnGateways.insert" + ] } }, - "setNodeTemplate": { - "request": { - "$ref": "NodeGroupsSetNodeTemplateRequest" + "kind": { + "type": "string", + "default": "compute#vpnGateway", + "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways." + }, + "region": { + "description": "[Output Only] URL of the region where the VPN gateway resides.", + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "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 an VpnGateway.", + "type": "string", + "format": "byte" + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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.", + "annotations": { + "required": [ + "compute.vpnGateways.insert" + ] }, - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "zone": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "The name of the zone for this request.", - "type": "string" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "nodeGroup": { - "type": "string", - "location": "path", - "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}", - "required": true - } + "type": "string" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", - "response": { - "$ref": "Operation" + "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", + "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 ." + }, + "RouterNatRuleAction": { + "type": "object", + "id": "RouterNatRuleAction", + "properties": { + "sourceNatDrainIps": { + "items": { + "type": "string" }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.nodeGroups.setNodeTemplate", - "description": "Updates the node template of the node group.", - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ] + "type": "array", + "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." }, - "aggregatedList": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "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", - "format": "uint32", - "minimum": "0", - "type": "integer", - "location": "query" - }, - "includeAllScopes": { - "type": "boolean", - "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" - }, - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - } - }, - "path": "projects/{project}/aggregated/nodeGroups", - "response": { - "$ref": "NodeGroupAggregatedList" + "sourceNatActiveIps": { + "items": { + "type": "string" }, - "id": "compute.nodeGroups.aggregatedList", - "httpMethod": "GET", - "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.", - "flatPath": "projects/{project}/aggregated/nodeGroups", - "parameterOrder": [ - "project" - ] + "type": "array", + "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." + } + } + }, + "AutoscalingPolicyLoadBalancingUtilization": { + "id": "AutoscalingPolicyLoadBalancingUtilization", + "type": "object", + "description": "Configuration parameters of autoscaling based on load balancing.", + "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" + } + } + }, + "GuestAttributes": { + "description": "A guest attributes entry.", + "type": "object", + "id": "GuestAttributes", + "properties": { + "queryValue": { + "description": "[Output Only] The value of the requested queried path.", + "$ref": "GuestAttributesValue" }, - "list": { - "flatPath": "projects/{project}/zones/{zone}/nodeGroups", - "httpMethod": "GET", - "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" - ], - "id": "compute.nodeGroups.list", - "path": "projects/{project}/zones/{zone}/nodeGroups", - "parameters": { - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "maxResults": { - "format": "uint32", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500", - "type": "integer" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "zone": { - "type": "string", - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - } + "queryPath": { + "description": "The path to be queried. This can be the default namespace ('') or a nested namespace ('\\/') or a specified key ('\\/\\').", + "type": "string" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#guestAttributes for guest attributes entry.", + "default": "compute#guestAttributes" + }, + "variableKey": { + "type": "string", + "description": "The key to search for." + }, + "variableValue": { + "type": "string", + "description": "[Output Only] The value found for the requested key." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + } + }, + "HttpRouteRuleMatch": { + "type": "object", + "properties": { + "fullPathMatch": { + "type": "string", + "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." + }, + "queryParameterMatches": { + "items": { + "$ref": "HttpQueryParameterMatch" }, - "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group." + "type": "array", + "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." }, - "setIamPolicy": { - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "id": "compute.nodeGroups.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])?))", - "type": "string", - "location": "path", - "required": true - }, - "resource": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "description": "Name or id of the resource for this request." - }, - "zone": { - "description": "The name of the zone for this request.", - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - } + "metadataFilters": { + "items": { + "$ref": "MetadataFilter" }, - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", - "request": { - "$ref": "ZoneSetPolicyRequest" + "type": "array", + "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." + }, + "prefixMatch": { + "type": "string", + "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." + }, + "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. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "type": "string" + }, + "ignoreCase": { + "type": "boolean", + "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." + }, + "headerMatches": { + "type": "array", + "items": { + "$ref": "HttpHeaderMatch" }, - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Policy" + "description": "Specifies a list of header match criteria, all of which must match corresponding headers in the request." + } + }, + "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." + }, + "NetworkEndpointGroupAppEngine": { + "properties": { + "service": { + "type": "string", + "description": "Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: \"default\", \"my-service\"." + }, + "version": { + "type": "string", + "description": "Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: \"v1\", \"v2\"." + }, + "urlMask": { + "description": "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" + } + }, + "id": "NetworkEndpointGroupAppEngine", + "type": "object", + "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." + }, + "VmEndpointNatMappingsInterfaceNatMappings": { + "description": "Contain information of Nat mapping for an interface of this endpoint.", + "id": "VmEndpointNatMappingsInterfaceNatMappings", + "type": "object", + "properties": { + "numTotalDrainNatPorts": { + "type": "integer", + "format": "int32", + "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." + }, + "natIpPortRanges": { + "type": "array", + "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\"].", + "items": { + "type": "string" } }, - "patch": { - "httpMethod": "PATCH", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "request": { - "$ref": "NodeGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true - }, - "nodeGroup": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the NodeGroup resource to update." - }, - "zone": { - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request." - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "response": { - "$ref": "Operation" + "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" + } + }, + "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" + }, + "sourceAliasIpRange": { + "type": "string", + "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\"." + }, + "sourceVirtualIp": { + "description": "Primary IP of the VM for this NIC.", + "type": "string" + }, + "ruleMappings": { + "items": { + "$ref": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings" }, - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "description": "Updates the specified node group.", - "id": "compute.nodeGroups.patch" + "type": "array", + "description": "Information about mappings provided by rules in this NAT." } } }, - "regionHealthCheckServices": { - "methods": { - "list": { - "flatPath": "projects/{project}/regions/{region}/healthCheckServices", - "parameters": { - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", + "ResourcePolicySnapshotSchedulePolicy": { + "type": "object", + "properties": { + "schedule": { + "$ref": "ResourcePolicySnapshotSchedulePolicySchedule", + "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." + }, + "retentionPolicy": { + "$ref": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", + "description": "Retention policy applied to snapshots created by this resource policy." + }, + "snapshotProperties": { + "$ref": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", + "description": "Properties with which snapshots are created such as labels, encryption keys." + } + }, + "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.", + "id": "ResourcePolicySnapshotSchedulePolicy" + }, + "HttpFaultAbort": { + "description": "Specification for how requests are aborted as part of fault injection.", + "type": "object", + "properties": { + "httpStatus": { + "format": "uint32", + "type": "integer", + "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." + }, + "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" + } + }, + "id": "HttpFaultAbort" + }, + "PacketMirroringList": { + "id": "PacketMirroringList", + "type": "object", + "description": "Contains a list of PacketMirroring resources.", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "default": "compute#packetMirroringList", + "type": "string", + "description": "[Output Only] Type of resource. Always compute#packetMirroring for packetMirrorings." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "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" + }, + "items": { + "items": { + "$ref": "PacketMirroring" + }, + "description": "A list of PacketMirroring resources.", + "type": "array" + }, + "warning": { + "type": "object", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "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", - "format": "uint32", - "minimum": "0", - "type": "integer", - "location": "query" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "region": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "code": { "type": "string", - "description": "Name of the region scoping this request." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } }, - "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.", - "path": "projects/{project}/regions/{region}/healthCheckServices", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "HealthCheckServicesList" - }, - "parameterOrder": [ - "project", - "region" - ], - "id": "compute.regionHealthCheckServices.list", - "httpMethod": "GET" - }, - "patch": { - "request": { - "$ref": "HealthCheckService" - }, - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "region": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "healthCheckService": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035." - } - }, - "id": "compute.regionHealthCheckServices.patch", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "parameterOrder": [ - "project", - "region", - "healthCheckService" - ], - "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.", - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "httpMethod": "PATCH", - "response": { - "$ref": "Operation" - } + "description": "[Output Only] Informational warning message." + } + } + }, + "PacketMirroring": { + "type": "object", + "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.", + "id": "PacketMirroring", + "properties": { + "kind": { + "type": "string", + "default": "compute#packetMirroring", + "description": "[Output Only] Type of the resource. Always compute#packetMirroring for packet mirrorings." }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified regional HealthCheckService.", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "parameterOrder": [ - "project", - "region", - "healthCheckService" - ], - "id": "compute.regionHealthCheckServices.delete", - "response": { - "$ref": "Operation" - }, - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true - }, - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "required": true, - "location": "path" - }, - "healthCheckService": { - "required": true, - "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "httpMethod": "DELETE" + "region": { + "type": "string", + "description": "[Output Only] URI of the region where the packetMirroring resides." }, - "get": { - "parameterOrder": [ - "project", - "region", - "healthCheckService" - ], - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "id": "compute.regionHealthCheckServices.get", - "response": { - "$ref": "HealthCheckService" - }, - "description": "Returns the specified regional HealthCheckService resource.", - "parameters": { - "region": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "healthCheckService": { - "type": "string", - "location": "path", - "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.", - "required": true - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - } + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.packetMirrorings.insert" + ] }, - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}" + "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" }, - "insert": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "region" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "enable": { + "enumDescriptions": [ + "", + "" ], - "flatPath": "projects/{project}/regions/{region}/healthCheckServices", - "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.", - "request": { - "$ref": "HealthCheckService" - }, - "id": "compute.regionHealthCheckServices.insert", - "httpMethod": "POST", - "path": "projects/{project}/regions/{region}/healthCheckServices", - "response": { - "$ref": "Operation" + "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", + "enum": [ + "FALSE", + "TRUE" + ] + }, + "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" + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "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" + ] }, - "parameters": { - "project": { - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "Name of the region scoping this request." - } - } + "$ref": "PacketMirroringNetworkInfo" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "collectorIlb": { + "$ref": "PacketMirroringForwardingRuleInfo", + "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." + }, + "priority": { + "type": "integer", + "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.", + "format": "uint32" } } }, - "httpHealthChecks": { - "methods": { - "list": { - "flatPath": "projects/{project}/global/httpHealthChecks", - "parameterOrder": [ - "project" + "NetworkEndpointGroupsListEndpointsRequest": { + "id": "NetworkEndpointGroupsListEndpointsRequest", + "type": "object", + "properties": { + "healthStatus": { + "enum": [ + "SHOW", + "SKIP" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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.", + "enumDescriptions": [ + "Show the health status for each network endpoint. Impacts latency of the call.", + "Health status for network endpoints will not be provided." ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + } + } + }, + "TargetHttpsProxyList": { + "id": "TargetHttpsProxyList", + "type": "object", + "description": "Contains a list of TargetHttpsProxy resources.", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "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.", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "required": true, - "location": "path" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "maxResults": { - "type": "integer", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "default": "500", - "format": "uint32" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "orderBy": { + "message": { "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" + "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.", - "type": "string", - "location": "query" + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + } } }, - "path": "projects/{project}/global/httpHealthChecks", - "httpMethod": "GET", - "id": "compute.httpHealthChecks.list", - "response": { - "$ref": "HttpHealthCheckList" + "type": "object" + }, + "kind": { + "type": "string", + "description": "Type of resource. Always compute#targetHttpsProxyList for lists of target HTTPS proxies.", + "default": "compute#targetHttpsProxyList" + }, + "items": { + "type": "array", + "items": { + "$ref": "TargetHttpsProxy" }, - "description": "Retrieves the list of HttpHealthCheck resources available to the specified project." + "description": "A list of TargetHttpsProxy resources." }, - "get": { - "httpMethod": "GET", - "id": "compute.httpHealthChecks.get", - "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "parameterOrder": [ - "project", - "httpHealthCheck" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + } + } + }, + "BackendServiceLocalityLoadBalancingPolicyConfigPolicy": { + "description": "The configuration for a built-in load balancing policy.", + "properties": { + "name": { + "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." ], - "parameters": { - "httpHealthCheck": { - "type": "string", - "location": "path", - "required": true, - "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}" - }, - "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])?))", - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request." - } - }, - "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.", - "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" ], - "response": { - "$ref": "HttpHealthCheck" - } + "description": "The name of a locality load balancer policy to be used. The value should be one of the predefined ones as supported by localityLbPolicy, although at the moment only ROUND_ROBIN is supported. This field should only be populated when the customPolicy field is not used. Note that specifying the same policy more than once for a backend is not a valid configuration and will be rejected." + } + }, + "type": "object", + "id": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" + }, + "PacketMirroringMirroredResourceInfoSubnetInfo": { + "id": "PacketMirroringMirroredResourceInfoSubnetInfo", + "properties": { + "url": { + "type": "string", + "description": "Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored." }, - "insert": { - "response": { - "$ref": "Operation" + "canonicalUrl": { + "type": "string", + "description": "[Output Only] Unique identifier for the subnetwork; defined by the server." + } + }, + "type": "object" + }, + "BackendServiceList": { + "id": "BackendServiceList", + "description": "Contains a list of BackendService resources.", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "BackendService" }, - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" + "description": "A list of BackendService resources." + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#backendServiceList for lists of backend services.", + "default": "compute#backendServiceList", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { + "code": { "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "description": "Project ID for this request." - } - }, - "httpMethod": "POST", - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "HttpHealthCheck" - }, - "flatPath": "projects/{project}/global/httpHealthChecks", - "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.", - "path": "projects/{project}/global/httpHealthChecks", - "id": "compute.httpHealthChecks.insert", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "DELETE", - "parameterOrder": [ - "project", - "httpHealthCheck" - ], - "description": "Deletes the specified HttpHealthCheck resource.", - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "id": "compute.httpHealthChecks.delete", - "parameters": { - "httpHealthCheck": { - "location": "path", - "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}", - "type": "string", - "required": true - }, - "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])?))", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path" + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}" + "type": "object" + } + }, + "type": "object" + }, + "WeightedBackendService": { + "properties": { + "weight": { + "format": "uint32", + "type": "integer", + "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." }, - "patch": { - "parameterOrder": [ - "project", - "httpHealthCheck" + "headerAction": { + "$ref": "HttpHeaderAction", + "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." + }, + "backendService": { + "type": "string", + "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." + } + }, + "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" + }, + "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.", + "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" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersApplyUpdatesRequest": { + "type": "object", + "id": "RegionInstanceGroupManagersApplyUpdatesRequest", + "description": "RegionInstanceGroupManagers.applyUpdatesToInstances", + "properties": { + "minimalAction": { + "enumDescriptions": [ + "Do not perform any action.", + "Updates applied in runtime, instances will not be disrupted.", + "Old instances will be deleted. New instances will be created from the target template.", + "Every instance will be restarted." ], - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string", + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "httpHealthCheck": { - "required": true, - "type": "string", - "location": "path", - "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}" - } - }, - "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "httpMethod": "PATCH", - "request": { - "$ref": "HttpHealthCheck" + "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. - 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." + }, + "instances": { + "items": { + "type": "string" }, - "id": "compute.httpHealthChecks.patch", - "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." + "type": "array", + "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]." }, - "update": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "httpHealthCheck" + "mostDisruptiveAllowedAction": { + "type": "string", + "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. - 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.", + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" ], - "id": "compute.httpHealthChecks.update", - "httpMethod": "PUT", - "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.", - "response": { - "$ref": "Operation" - }, - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "httpHealthCheck": { - "location": "path", - "type": "string", - "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}", - "required": true - } - }, - "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "request": { - "$ref": "HttpHealthCheck" - } + "enumDescriptions": [ + "Do not perform any action.", + "Updates applied in runtime, instances will not be disrupted.", + "Old instances will be deleted. New instances will be created from the target template.", + "Every instance will be restarted." + ] + }, + "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" } } }, - "regionInstanceGroupManagers": { - "methods": { - "setTargetPools": { - "id": "compute.regionInstanceGroupManagers.setTargetPools", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", - "parameters": { - "instanceGroupManager": { - "location": "path", - "required": true, - "description": "Name of the managed instance group.", - "type": "string" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "region": { - "required": true, - "type": "string", - "location": "path", - "description": "Name of the region scoping this request." - } + "InstancesSetMinCpuPlatformRequest": { + "properties": { + "minCpuPlatform": { + "description": "Minimum cpu/platform this instance should be started at.", + "type": "string" + } + }, + "type": "object", + "id": "InstancesSetMinCpuPlatformRequest" + }, + "NodeType": { + "id": "NodeType", + "type": "object", + "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.", + "properties": { + "description": { + "description": "[Output Only] An optional textual description of the resource.", + "type": "string" + }, + "memoryMb": { + "format": "int32", + "description": "[Output Only] The amount of physical memory available to the node type, defined in MB.", + "type": "integer" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this node type." + }, + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "cpuPlatform": { + "description": "[Output Only] The CPU platform used by this node type.", + "type": "string" + }, + "zone": { + "description": "[Output Only] The name of the zone where the node type resides, such as us-central1-a.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "description": "[Output Only] The type of the resource. Always compute#nodeType for node types.", + "default": "compute#nodeType", + "type": "string" + }, + "guestCpus": { + "type": "integer", + "description": "[Output Only] The number of virtual CPUs that are available to the node type.", + "format": "int32" + }, + "localSsdGb": { + "type": "integer", + "format": "int32", + "description": "[Output Only] Local SSD available to the node type, defined in GB." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + } + } + }, + "FirewallPolicyRuleMatcher": { + "properties": { + "srcSecureTags": { + "items": { + "$ref": "FirewallPolicyRuleSecureTag" }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.", - "response": { - "$ref": "Operation" + "type": "array", + "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." + }, + "srcIpRanges": { + "items": { + "type": "string" }, - "request": { - "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest" + "description": "CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.", + "type": "array" + }, + "destIpRanges": { + "type": "array", + "items": { + "type": "string" }, - "httpMethod": "POST" + "description": "CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000." }, - "applyUpdatesToInstances": { - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "description": "Apply updates to selected instances the managed instance group.", - "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "parameters": { - "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path", - "type": "string", - "required": true - }, - "instanceGroupManager": { - "type": "string", - "required": true, - "description": "The name of the managed instance group, should conform to RFC1035.", - "location": "path" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "layer4Configs": { + "items": { + "$ref": "FirewallPolicyRuleMatcherLayer4Config" }, - "response": { - "$ref": "Operation" + "description": "Pairs of IP protocols and ports that the rule should match.", + "type": "array" + } + }, + "id": "FirewallPolicyRuleMatcher", + "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", + "type": "object" + }, + "RouterStatus": { + "id": "RouterStatus", + "properties": { + "bgpPeerStatus": { + "type": "array", + "items": { + "$ref": "RouterStatusBgpPeerStatus" + } + }, + "network": { + "type": "string", + "description": "URI of the network to which this router belongs." + }, + "natStatus": { + "items": { + "$ref": "RouterStatusNatStatus" }, - "httpMethod": "POST", - "request": { - "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest" + "type": "array" + }, + "bestRoutes": { + "description": "Best routes for this router's network.", + "type": "array", + "items": { + "$ref": "Route" + } + }, + "bestRoutesForRouter": { + "items": { + "$ref": "Route" + }, + "type": "array", + "description": "Best routes learned by this router." + } + }, + "type": "object" + }, + "MachineTypesScopedList": { + "type": "object", + "properties": { + "machineTypes": { + "items": { + "$ref": "MachineType" }, - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances" + "description": "[Output Only] A list of machine types contained in this scope.", + "type": "array" }, - "list": { - "parameters": { - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "warning": { + "type": "object", + "properties": { + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "maxResults": { - "default": "500", - "type": "integer", - "minimum": "0", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "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])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string" - }, - "region": { + "code": { "type": "string", - "required": true, - "location": "path", - "description": "Name of the region scoping this request." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "RegionInstanceGroupManagerList" - }, - "httpMethod": "GET", - "description": "Retrieves the list of managed instance groups that are contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", - "id": "compute.regionInstanceGroupManagers.list", - "path": "projects/{project}/regions/{region}/instanceGroupManagers", - "parameterOrder": [ - "project", - "region" - ] + "description": "[Output Only] An informational warning that appears when the machine types list is empty." + } + }, + "id": "MachineTypesScopedList" + }, + "BfdStatusPacketCounts": { + "properties": { + "numRxSuccessful": { + "format": "uint32", + "description": "Number of packets received that were successfully processed since the beginning of the current BFD session.", + "type": "integer" }, - "abandonInstances": { - "httpMethod": "POST", - "request": { - "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest" - }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "required": true - }, - "requestId": { + "numRxRejected": { + "description": "Number of packets received that were rejected because of errors since the beginning of the current BFD session.", + "type": "integer", + "format": "uint32" + }, + "numTx": { + "format": "uint32", + "type": "integer", + "description": "Number of packets transmitted since the beginning of the current BFD session." + }, + "numRx": { + "format": "uint32", + "description": "Number of packets received since the beginning of the current BFD session.", + "type": "integer" + } + }, + "type": "object", + "id": "BfdStatusPacketCounts" + }, + "AcceleratorTypeList": { + "id": "AcceleratorTypeList", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "kind": { + "type": "string", + "default": "compute#acceleratorTypeList", + "description": "[Output Only] Type of resource. Always compute#acceleratorTypeList for lists of accelerator types." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "description": "[Output Only] A human-readable description of the warning code." }, - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "required": true + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "type": "string", - "description": "Name of the region scoping this request.", - "required": true, - "location": "path" + "data": { + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "response": { - "$ref": "Operation" - }, - "id": "compute.regionInstanceGroupManagers.abandonInstances", - "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.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ] + "type": "object" }, - "createInstances": { - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", - "id": "compute.regionInstanceGroupManagers.createInstances", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "parameters": { - "region": { - "type": "string", - "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.", - "required": true, - "location": "path" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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)." - }, - "instanceGroupManager": { - "required": true, - "location": "path", - "type": "string", - "description": "The name of the managed instance group. It should conform to RFC1035." - } + "items": { + "type": "array", + "items": { + "$ref": "AcceleratorType" }, - "request": { - "$ref": "RegionInstanceGroupManagersCreateInstancesRequest" + "description": "A list of AcceleratorType resources." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + }, + "description": "Contains a list of accelerator types.", + "type": "object" + }, + "RouterStatusNatStatus": { + "description": "Status of a NAT contained in this router.", + "id": "RouterStatusNatStatus", + "properties": { + "drainUserAllocatedNatIps": { + "items": { + "type": "string" }, - "description": "Creates instances with per-instance configs 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.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "type": "array", + "description": "A list of IPs user-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"]." }, - "listPerInstanceConfigs": { - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp" + "drainAutoAllocatedNatIps": { + "description": "A list of IPs auto-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "httpMethod": "POST", - "parameters": { - "maxResults": { - "default": "500", - "location": "query", - "format": "uint32", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path", - "type": "string", - "required": true - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "project": { - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "instanceGroupManager": { - "required": true, - "location": "path", - "description": "The name of the managed instance group. It should conform to RFC1035.", - "type": "string" - } + "type": "array" + }, + "ruleStatus": { + "description": "Status of rules in this NAT.", + "items": { + "$ref": "RouterStatusNatStatusNatRuleStatus" }, - "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs" + "type": "array" }, - "setInstanceTemplate": { - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "type": "string", - "required": true - }, - "region": { - "description": "Name of the region scoping this request.", - "type": "string", - "location": "path", - "required": true - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "numVmEndpointsWithNatMappings": { + "description": "Number of VM endpoints (i.e., Nics) that can use NAT.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Unique name of this NAT.", + "type": "string" + }, + "minExtraNatIpsNeeded": { + "format": "int32", + "type": "integer", + "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." + }, + "userAllocatedNatIpResources": { + "type": "array", + "description": "A list of fully qualified URLs of reserved IP address resources.", + "items": { + "type": "string" + } + }, + "autoAllocatedNatIps": { + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "id": "compute.regionInstanceGroupManagers.setInstanceTemplate", - "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.", - "request": { - "$ref": "RegionInstanceGroupManagersSetTemplateRequest" + "description": "A list of IPs auto-allocated for NAT. Example: [\"1.1.1.1\", \"129.2.16.89\"]", + "type": "array" + }, + "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" + } + } + }, + "type": "object" + }, + "StatefulPolicy": { + "id": "StatefulPolicy", + "type": "object", + "properties": { + "preservedState": { + "$ref": "StatefulPolicyPreservedState" + } + } + }, + "VpnGatewayStatusVpnConnection": { + "properties": { + "tunnels": { + "items": { + "$ref": "VpnGatewayStatusTunnel" }, - "response": { - "$ref": "Operation" + "description": "List of VPN tunnels that are in this VPN connection.", + "type": "array" + }, + "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" + }, + "state": { + "$ref": "VpnGatewayStatusHighAvailabilityRequirementState", + "description": "HighAvailabilityRequirementState for the VPN connection." + }, + "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" + } + }, + "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 a external VPN gateway or GCP VPN gateway.", + "type": "object" + }, + "AutoscalingPolicy": { + "id": "AutoscalingPolicy", + "description": "Cloud Autoscaler policy.", + "properties": { + "loadBalancingUtilization": { + "description": "Configuration parameters of autoscaling based on load balancer.", + "$ref": "AutoscalingPolicyLoadBalancingUtilization" + }, + "customMetricUtilizations": { + "type": "array", + "items": { + "$ref": "AutoscalingPolicyCustomMetricUtilization" }, - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "httpMethod": "POST" + "description": "Configuration parameters of autoscaling based on a custom metric." }, - "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", - "httpMethod": "POST", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "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" + }, + "maxNumReplicas": { + "type": "integer", + "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.", + "format": "int32" + }, + "mode": { + "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." ], - "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "location": "path", - "description": "The name of the managed instance group. It should conform to RFC1035.", - "required": true, - "type": "string" - }, - "region": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the region scoping this request, should conform to RFC1035." - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string" - } - }, - "request": { - "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "Defines operating mode for this policy.", + "type": "string", + "enum": [ + "OFF", + "ON", + "ONLY_SCALE_OUT", + "ONLY_UP" ] }, - "get": { - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "scaleInControl": { + "$ref": "AutoscalingPolicyScaleInControl" + }, + "minNumReplicas": { + "type": "integer", + "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.", + "format": "int32" + }, + "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" + } + }, + "coolDownPeriodSec": { + "format": "int32", + "description": "The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.", + "type": "integer" + } + }, + "type": "object" + }, + "AutoscalerStatusDetails": { + "type": "object", + "id": "AutoscalerStatusDetails", + "properties": { + "message": { + "type": "string", + "description": "The status message." + }, + "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.", + "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." ], - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "description": "Returns all of the details about the specified managed instance group.", - "id": "compute.regionInstanceGroupManagers.get", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "GET", - "parameters": { - "region": { - "required": true, - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "instanceGroupManager": { - "location": "path", - "required": true, - "description": "Name of the managed instance group to return.", - "type": "string" - } - }, - "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" ], - "response": { - "$ref": "InstanceGroupManager" - } + "type": "string" + } + } + }, + "ServiceAttachment": { + "properties": { + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", + "default": "compute#serviceAttachment" }, - "updatePerInstanceConfigs": { - "request": { - "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq" + "connectedEndpoints": { + "description": "[Output Only] An array of connections for all the consumers connected to this service attachment.", + "items": { + "$ref": "ServiceAttachmentConnectedEndpoint" }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", - "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", - "response": { - "$ref": "Operation" + "type": "array" + }, + "enableProxyProtocol": { + "type": "boolean", + "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." + }, + "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" + }, + "fingerprint": { + "type": "string", + "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.", + "format": "byte" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "consumerRejectLists": { + "items": { + "type": "string" }, - "parameters": { - "instanceGroupManager": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the managed instance group. It should conform to RFC1035." - }, - "region": { - "type": "string", - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path", - "required": true - }, - "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])?))", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "type": "string" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } + "description": "Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.", + "type": "array" + }, + "producerForwardingRule": { + "type": "string", + "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment." + }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier." + }, + "natSubnets": { + "items": { + "type": "string" }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + }, + "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.", + "enum": [ + "ACCEPT_AUTOMATIC", + "ACCEPT_MANUAL", + "CONNECTION_PREFERENCE_UNSPECIFIED" ], - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "type": "string", + "enumDescriptions": [ + "", + "", + "" ] }, - "delete": { - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "description": "Deletes the specified managed instance group and all of the instances in that group.", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "response": { - "$ref": "Operation" + "consumerAcceptLists": { + "type": "array", + "items": { + "$ref": "ServiceAttachmentConsumerProjectLimit" }, - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "instanceGroupManager": { - "type": "string", - "description": "Name of the managed instance group to delete.", - "location": "path", - "required": true - }, - "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])?))", - "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request." - }, - "region": { - "required": true, - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string" - } + "description": "Projects that are allowed to connect to this service attachment." + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.serviceAttachments.insert" + ] }, - "id": "compute.regionInstanceGroupManagers.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "httpMethod": "DELETE" + "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" }, - "patch": { - "response": { - "$ref": "Operation" + "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" + } + }, + "pscServiceAttachmentId": { + "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment.", + "$ref": "Uint128" + }, + "targetService": { + "type": "string", + "description": "The URL of a service serving the endpoint identified by this service attachment." + } + }, + "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. next tag = 20", + "type": "object", + "id": "ServiceAttachment" + }, + "InterconnectAttachmentPartnerMetadata": { + "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": { + "type": "string", + "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." + }, + "portalUrl": { + "type": "string", + "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." + } + }, + "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" + }, + "HttpsHealthCheckList": { + "properties": { + "items": { + "items": { + "$ref": "HttpsHealthCheck" }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "parameters": { - "instanceGroupManager": { - "type": "string", - "description": "The name of the instance group manager.", - "location": "path", - "required": true - }, - "region": { - "location": "path", - "description": "Name of the region scoping this request.", + "type": "array", + "description": "A list of HttpsHealthCheck resources." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "required": true + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "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).", - "type": "string", - "location": "query" + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } } }, - "id": "compute.regionInstanceGroupManagers.patch", - "request": { - "$ref": "InstanceGroupManager" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "PATCH", - "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.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}" + "type": "object" }, - "recreateInstances": { - "httpMethod": "POST", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", - "parameters": { - "region": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the region scoping this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "location": "path", - "description": "Name of the managed instance group.", + "kind": { + "default": "compute#httpsHealthCheckList", + "type": "string", + "description": "Type of resource." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "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": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + } + }, + "id": "HttpsHealthCheckList", + "type": "object", + "description": "Contains a list of HttpsHealthCheck resources." + }, + "PublicAdvertisedPrefixList": { + "properties": { + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", + "default": "compute#publicAdvertisedPrefixList" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "type": "array", + "description": "A list of PublicAdvertisedPrefix resources.", + "items": { + "$ref": "PublicAdvertisedPrefix" + } + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "warning": { + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "required": true + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" } }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "RegionInstanceGroupManagersRecreateRequest" + "description": "[Output Only] Informational warning message." + } + }, + "type": "object", + "id": "PublicAdvertisedPrefixList" + }, + "SourceInstanceParams": { + "properties": { + "diskConfigs": { + "type": "array", + "description": "Attached disks configuration. If not provided, defaults are applied: 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.", + "items": { + "$ref": "DiskInstantiationConfig" + } + } + }, + "type": "object", + "id": "SourceInstanceParams", + "description": "A specification of the parameters to use when creating the instance template from a source instance." + }, + "NetworkEndpointGroupsScopedList": { + "id": "NetworkEndpointGroupsScopedList", + "type": "object", + "properties": { + "networkEndpointGroups": { + "items": { + "$ref": "NetworkEndpointGroup" }, - "id": "compute.regionInstanceGroupManagers.recreateInstances", - "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.", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances" + "description": "[Output Only] The list of network endpoint groups that are contained in this scope.", + "type": "array" }, - "deleteInstances": { - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", - "httpMethod": "POST", - "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.", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "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])?))", - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request." - }, - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", - "required": true, + "warning": { + "description": "[Output Only] An informational warning that replaces the list of network endpoint groups when the list is empty.", + "type": "object", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "region": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "Name of the region scoping this request.", - "required": true, - "location": "path" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } } + } + } + } + }, + "NodeGroupsSetNodeTemplateRequest": { + "properties": { + "nodeTemplate": { + "description": "Full or partial URL of the node template resource to be updated for this node group.", + "type": "string" + } + }, + "type": "object", + "id": "NodeGroupsSetNodeTemplateRequest" + }, + "GuestAttributesValue": { + "id": "GuestAttributesValue", + "type": "object", + "description": "Array of guest attribute namespace/key/value tuples.", + "properties": { + "items": { + "items": { + "$ref": "GuestAttributesEntry" }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "array" + } + } + }, + "InstanceGroupManagersApplyUpdatesRequest": { + "properties": { + "mostDisruptiveAllowedAction": { + "enumDescriptions": [ + "Do not perform any action.", + "Updates applied in runtime, instances will not be disrupted.", + "Old instances will be deleted. New instances will be created from the target template.", + "Every instance will be restarted." ], - "id": "compute.regionInstanceGroupManagers.deleteInstances", - "request": { - "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest" - } + "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. - 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", + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ] }, - "listErrors": { - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", - "response": { - "$ref": "RegionInstanceGroupManagersListErrorsResponse" + "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" + }, + "instances": { + "type": "array", + "items": { + "type": "string" }, - "id": "compute.regionInstanceGroupManagers.listErrors", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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]." + }, + "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. - 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.", + "enumDescriptions": [ + "Do not perform any action.", + "Updates applied in runtime, instances will not be disrupted.", + "Old instances will be deleted. New instances will be created from the target template.", + "Every instance will be restarted." ], - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "required": true - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" + "type": "string" + } + }, + "type": "object", + "description": "InstanceGroupManagers.applyUpdatesToInstances", + "id": "InstanceGroupManagersApplyUpdatesRequest" + }, + "SslCertificatesScopedList": { + "properties": { + "sslCertificates": { + "type": "array", + "items": { + "$ref": "SslCertificate" + }, + "description": "List of SslCertificates contained in this scope." + }, + "warning": { + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + } }, - "pageToken": { + "code": { "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "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}.", - "required": true, - "location": "path", - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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. This should conform to RFC1035.", + "message": { "type": "string", - "location": "path", - "required": true - }, - "maxResults": { - "minimum": "0", - "location": "query", - "default": "500", - "type": "integer", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + "description": "[Output Only] A human-readable description of the warning code." } }, - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", - "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.", - "httpMethod": "GET" - }, - "listManagedInstances": { - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "response": { - "$ref": "RegionInstanceGroupManagersListInstancesResponse" - }, - "parameters": { - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "maxResults": { - "location": "query", - "type": "integer", - "default": "500", - "format": "uint32", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "region": { - "required": true, - "type": "string", - "description": "Name of the region scoping this request.", - "location": "path" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "type": "string", - "required": true - } - }, - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "id": "compute.regionInstanceGroupManagers.listManagedInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "object", + "description": "Informational warning which replaces the list of backend services when the list is empty." + } + }, + "id": "SslCertificatesScopedList", + "type": "object" + }, + "SecurityPolicyDdosProtectionConfig": { + "properties": { + "ddosProtection": { + "type": "string", + "enum": [ + "ADVANCED", + "STANDARD" ], - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "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." + "enumDescriptions": [ + "", + "" + ] + } + }, + "type": "object", + "id": "SecurityPolicyDdosProtectionConfig" + }, + "RouterAggregatedList": { + "type": "object", + "id": "RouterAggregatedList", + "description": "Contains a list of routers.", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "insert": { - "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.", - "httpMethod": "POST", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers", - "id": "compute.regionInstanceGroupManagers.insert", - "request": { - "$ref": "InstanceGroupManager" - }, - "parameters": { - "project": { - "required": true, - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "region": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the region scoping this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "unreachables": { + "type": "array", + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" } }, - "resize": { - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", - "id": "compute.regionInstanceGroupManagers.resize", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "items": { + "additionalProperties": { + "description": "Name of the scope containing this set of routers.", + "$ref": "RoutersScopedList" }, - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", - "parameters": { - "size": { - "location": "query", - "description": "Number of instances that should exist in this instance group manager.", - "required": true, - "type": "integer", - "format": "int32", - "minimum": "0" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "description": "A list of Router resources.", + "type": "object" + }, + "kind": { + "description": "Type of resource.", + "type": "string", + "default": "compute#routerAggregatedList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string" }, - "instanceGroupManager": { - "location": "path", - "type": "string", - "description": "Name of the managed instance group.", - "required": true - }, - "region": { - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string", - "required": true - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" - } - }, - "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.", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region", - "instanceGroupManager", - "size" - ] - }, - "deletePerInstanceConfigs": { - "request": { - "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq" - }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "type": "string", - "location": "path", - "required": true - }, - "region": { - "required": true, - "type": "string", - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path" }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", - "response": { - "$ref": "Operation" - }, - "description": "Deletes selected per-instance configs for the managed instance group.", - "httpMethod": "POST" + "type": "object" } } }, - "firewallPolicies": { - "methods": { - "getAssociation": { - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation", - "response": { - "$ref": "FirewallPolicyAssociation" - }, - "description": "Gets an association with the specified name.", - "id": "compute.firewallPolicies.getAssociation", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation", - "parameters": { - "firewallPolicy": { - "type": "string", - "description": "Name of the firewall policy to which the queried rule belongs.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "required": true, - "location": "path" - }, - "name": { - "location": "query", - "description": "The name of the association to get from the firewall policy.", - "type": "string" - } + "PreconfiguredWafSet": { + "type": "object", + "id": "PreconfiguredWafSet", + "properties": { + "expressionSets": { + "type": "array", + "items": { + "$ref": "WafExpressionSet" }, - "httpMethod": "GET", - "parameterOrder": [ - "firewallPolicy" - ] + "description": "List of entities that are currently supported for WAF rules." + } + } + }, + "LicenseCodeLicenseAlias": { + "id": "LicenseCodeLicenseAlias", + "type": "object", + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] URL of license corresponding to this License Code." }, - "testIamPermissions": { - "parameters": { - "resource": { - "required": true, - "location": "path", - "description": "Name or id of the resource for this request.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "type": "string" - } - }, - "flatPath": "locations/global/firewallPolicies/{resource}/testIamPermissions", - "path": "locations/global/firewallPolicies/{resource}/testIamPermissions", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "TestPermissionsResponse" - }, - "description": "Returns permissions that a caller has on the specified resource.", - "request": { - "$ref": "TestPermissionsRequest" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.firewallPolicies.testIamPermissions", - "httpMethod": "POST" + "description": { + "type": "string", + "description": "[Output Only] Description of this License Code." + } + } + }, + "ZoneSetLabelsRequest": { + "properties": { + "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" }, - "removeAssociation": { - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation", - "id": "compute.firewallPolicies.removeAssociation", - "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation", - "description": "Removes an association for the specified firewall policy.", - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "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).", - "type": "string", - "location": "query" - }, - "firewallPolicy": { - "required": true, - "location": "path", - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "type": "string" - } - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "labels": { + "description": "The labels to set for this resource.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "id": "ZoneSetLabelsRequest", + "type": "object" + }, + "RouterBgpPeerBfd": { + "type": "object", + "properties": { + "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.", + "format": "uint32", + "type": "integer" }, - "getRule": { - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getRule", - "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule", - "description": "Gets a rule of the specified priority.", - "httpMethod": "GET", - "id": "compute.firewallPolicies.getRule", - "response": { - "$ref": "FirewallPolicyRule" - }, - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried rule belongs.", - "type": "string", - "location": "path", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "required": true - }, - "priority": { - "type": "integer", - "format": "int32", - "location": "query", - "description": "The priority of the rule to get from the firewall policy." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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" + }, + "multiplier": { + "format": "uint32", + "type": "integer", + "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." + }, + "sessionInitializationMode": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "PASSIVE" ], - "parameterOrder": [ - "firewallPolicy" + "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.", + "enumDescriptions": [ + "", + "", + "" ] + } + }, + "id": "RouterBgpPeerBfd" + }, + "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.", + "properties": { + "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" }, - "patchRule": { - "id": "compute.firewallPolicies.patchRule", - "response": { - "$ref": "Operation" - }, - "description": "Patches a rule of the specified priority.", - "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule", - "httpMethod": "POST", - "parameterOrder": [ - "firewallPolicy" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "priority": { - "location": "query", - "type": "integer", - "description": "The priority of the rule to patch.", - "format": "int32" + "seconds": { + "type": "string", + "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", + "format": "int64" + } + }, + "id": "Duration", + "type": "object" + }, + "VpnGatewayList": { + "description": "Contains a list of VpnGateway resources.", + "id": "VpnGatewayList", + "properties": { + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "type": "array" }, - "firewallPolicy": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "description": "Name of the firewall policy to update.", - "location": "path", - "required": true, - "pattern": "(firewallPolicies/)?[0-9]{0,20}" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } - }, - "request": { - "$ref": "FirewallPolicyRule" - }, - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchRule" - }, - "getIamPolicy": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.firewallPolicies.getIamPolicy", - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "httpMethod": "GET", - "parameters": { - "resource": { - "required": true, + "message": { "type": "string", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "description": "Name or id of the resource for this request." - }, - "optionsRequestedPolicyVersion": { - "type": "integer", - "description": "Requested IAM Policy version.", - "location": "query", - "format": "int32" + "description": "[Output Only] A human-readable description of the warning code." } - }, - "response": { - "$ref": "Policy" - }, - "flatPath": "locations/global/firewallPolicies/{resource}/getIamPolicy", - "parameterOrder": [ - "resource" - ], - "path": "locations/global/firewallPolicies/{resource}/getIamPolicy" + } }, - "move": { - "parameterOrder": [ - "firewallPolicy", - "parentId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/move", - "description": "Moves the specified firewall policy.", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "type": "string", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "required": true, - "location": "path" - }, - "parentId": { - "type": "string", - "description": "The new parent of the firewall policy.", - "location": "query", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "path": "locations/global/firewallPolicies/{firewallPolicy}/move", - "id": "compute.firewallPolicies.move" + "items": { + "description": "A list of VpnGateway resources.", + "type": "array", + "items": { + "$ref": "VpnGateway" + } }, - "setIamPolicy": { - "response": { - "$ref": "Policy" - }, - "httpMethod": "POST", - "request": { - "$ref": "GlobalOrganizationSetPolicyRequest" - }, - "parameters": { - "resource": { - "description": "Name or id of the resource for this request.", - "type": "string", - "required": true, - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path" - } - }, - "id": "compute.firewallPolicies.setIamPolicy", - "parameterOrder": [ - "resource" - ], - "path": "locations/global/firewallPolicies/{resource}/setIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "locations/global/firewallPolicies/{resource}/setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "kind": { + "type": "string", + "default": "compute#vpnGatewayList", + "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways." }, - "delete": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "firewallPolicy" - ], - "httpMethod": "DELETE", - "id": "compute.firewallPolicies.delete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + }, + "type": "object" + }, + "TargetSslProxiesSetProxyHeaderRequest": { + "type": "object", + "properties": { + "proxyHeader": { + "enumDescriptions": [ + "", + "" ], - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "firewallPolicy": { - "type": "string", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "description": "Name of the firewall policy to delete.", - "required": true - } + "type": "string", + "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", + "enum": [ + "NONE", + "PROXY_V1" + ] + } + }, + "id": "TargetSslProxiesSetProxyHeaderRequest" + }, + "NetworkEndpointGroupsAttachEndpointsRequest": { + "type": "object", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "items": { + "$ref": "NetworkEndpoint" }, - "description": "Deletes the specified policy.", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", - "path": "locations/global/firewallPolicies/{firewallPolicy}" + "type": "array" + } + }, + "id": "NetworkEndpointGroupsAttachEndpointsRequest" + }, + "ScalingScheduleStatus": { + "id": "ScalingScheduleStatus", + "properties": { + "lastStartTime": { + "type": "string", + "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." }, - "cloneRules": { - "parameterOrder": [ - "firewallPolicy" + "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" + }, + "state": { + "description": "[Output Only] The current state of a scaling schedule.", + "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." ], - "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "required": true, - "location": "path", - "description": "Name of the firewall policy to update.", + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "OBSOLETE", + "READY" + ] + } + }, + "type": "object" + }, + "NetworkEdgeSecurityServicesScopedList": { + "type": "object", + "properties": { + "warning": { + "description": "Informational warning which replaces the list of security policies when the list is empty.", + "properties": { + "code": { "type": "string", - "pattern": "(firewallPolicies/)?[0-9]{0,20}" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "sourceFirewallPolicy": { - "location": "query", - "type": "string", - "description": "The firewall policy from which to copy rules." + "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).", - "type": "string", - "location": "query" + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "description": "Copies rules to the specified firewall policy.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.firewallPolicies.cloneRules", - "response": { - "$ref": "Operation" + "type": "object" + }, + "networkEdgeSecurityServices": { + "type": "array", + "description": "A list of NetworkEdgeSecurityServices contained in this scope.", + "items": { + "$ref": "NetworkEdgeSecurityService" } + } + }, + "id": "NetworkEdgeSecurityServicesScopedList" + }, + "HttpQueryParameterMatch": { + "id": "HttpQueryParameterMatch", + "properties": { + "exactMatch": { + "type": "string", + "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. " }, - "get": { - "path": "locations/global/firewallPolicies/{firewallPolicy}", - "parameters": { - "firewallPolicy": { - "location": "path", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "required": true, - "description": "Name of the firewall policy to get.", - "type": "string" - } - }, - "response": { - "$ref": "FirewallPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "name": { + "type": "string", + "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." + }, + "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. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", + "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" + } + }, + "type": "object", + "description": "HttpRouteRuleMatch criteria for a request's query parameter." + }, + "InterconnectLocationRegionInfo": { + "description": "Information about any potential InterconnectAttachments between an Interconnect at a specific InterconnectLocation, and a specific Cloud Region.", + "type": "object", + "properties": { + "locationPresence": { + "description": "Identifies the network presence of this location.", + "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." ], - "parameterOrder": [ - "firewallPolicy" + "enum": [ + "GLOBAL", + "LOCAL_REGION", + "LP_GLOBAL", + "LP_LOCAL_REGION" ], - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", - "description": "Returns the specified firewall policy.", - "httpMethod": "GET", - "id": "compute.firewallPolicies.get" + "type": "string" }, - "list": { - "response": { - "$ref": "FirewallPolicyList" - }, - "description": "Lists all the policies that have been configured for the specified folder or organization.", - "flatPath": "locations/global/firewallPolicies", - "path": "locations/global/firewallPolicies", - "parameters": { - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "default": "500", - "type": "integer", - "location": "query", - "minimum": "0" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "parentId": { - "location": "query", - "description": "Parent ID for this request.", - "type": "string" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - } - }, - "id": "compute.firewallPolicies.list", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET" + "region": { + "description": "URL for the region of this location.", + "type": "string" }, - "addAssociation": { - "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "FirewallPolicyAssociation" - }, - "id": "compute.firewallPolicies.addAssociation", - "description": "Inserts an association for the specified firewall policy.", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "description": "Name of the firewall policy to update.", - "type": "string", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true - }, - "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.", - "type": "boolean", - "location": "query" - } - }, - "httpMethod": "POST" + "expectedRttMs": { + "format": "int64", + "description": "Expected round-trip time in milliseconds, from this InterconnectLocation to a VM in this region.", + "type": "string" + } + }, + "id": "InterconnectLocationRegionInfo" + }, + "RegionInstanceGroupsListInstancesRequest": { + "type": "object", + "properties": { + "portName": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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." }, - "removeRule": { - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", - "id": "compute.firewallPolicies.removeRule", - "httpMethod": "POST", - "parameterOrder": [ - "firewallPolicy" - ], - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "firewallPolicy": { - "type": "string", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "description": "Name of the firewall policy to update.", - "location": "path", - "required": true - }, - "priority": { - "description": "The priority of the rule to remove from the firewall policy.", - "location": "query", - "type": "integer", - "format": "int32" - } - }, - "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "instanceState": { + "type": "string", + "description": "Instances in which state should be returned. Valid options are: 'ALL', 'RUNNING'. By default, it lists all instances.", + "enum": [ + "ALL", + "RUNNING" ], - "description": "Deletes a rule of the specified priority.", - "response": { - "$ref": "Operation" - } + "enumDescriptions": [ + "Matches any status of the instances, running, non-running and others.", + "Instance is in RUNNING state if it is running." + ] + } + }, + "id": "RegionInstanceGroupsListInstancesRequest" + }, + "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption": { + "type": "object", + "properties": { + "headerName": { + "type": "string", + "description": "The name of the header to set." }, - "addRule": { - "id": "compute.firewallPolicies.addRule", - "parameterOrder": [ - "firewallPolicy" - ], - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addRule", - "response": { - "$ref": "Operation" - }, - "description": "Inserts a rule into a firewall policy.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "request": { - "$ref": "FirewallPolicyRule" - }, - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "required": true, + "headerValue": { + "description": "The value to set the named header to.", + "type": "string" + } + }, + "id": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption" + }, + "DiskTypeAggregatedList": { + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#diskTypeAggregatedList.", + "type": "string", + "default": "compute#diskTypeAggregatedList" + }, + "warning": { + "type": "object", + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "requestId": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "description": "[Output Only] A human-readable description of the warning code." } }, - "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule" + "description": "[Output Only] Informational warning message." }, - "patch": { - "path": "locations/global/firewallPolicies/{firewallPolicy}", - "parameterOrder": [ - "firewallPolicy" - ], - "id": "compute.firewallPolicies.patch", - "request": { - "$ref": "FirewallPolicy" + "unreachables": { + "type": "array", + "items": { + "type": "string" }, - "description": "Patches the specified policy with the data included in the request.", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "firewallPolicy": { - "location": "path", - "description": "Name of the firewall policy to update.", - "required": true, - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "type": "string" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } + "description": "[Output Only] Unreachable resources." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "DiskTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of disk types." }, - "response": { - "$ref": "Operation" + "type": "object", + "description": "A list of DiskTypesScopedList resources." + }, + "nextPageToken": { + "type": "string", + "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": "object", + "id": "DiskTypeAggregatedList" + }, + "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.", + "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": { + "$ref": "HttpFaultAbort", + "description": "The specification for how client requests are aborted as part of fault injection." + } + }, + "id": "HttpFaultInjection", + "type": "object" + }, + "InstanceGroupsAddInstancesRequest": { + "type": "object", + "id": "InstanceGroupsAddInstancesRequest", + "properties": { + "instances": { + "type": "array", + "description": "The list of instances to add to the instance group.", + "items": { + "$ref": "InstanceReference" + } + } + } + }, + "TargetHttpProxyAggregatedList": { + "type": "object", + "properties": { + "items": { + "type": "object", + "description": "A list of TargetHttpProxiesScopedList resources.", + "additionalProperties": { + "description": "Name of the scope containing this set of TargetHttpProxies.", + "$ref": "TargetHttpProxiesScopedList" } }, - "listAssociations": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "FirewallPoliciesListAssociationsResponse" - }, - "httpMethod": "GET", - "path": "locations/global/firewallPolicies/listAssociations", - "id": "compute.firewallPolicies.listAssociations", - "description": "Lists associations of a specified target, i.e., organization or folder.", - "flatPath": "locations/global/firewallPolicies/listAssociations", - "parameters": { - "targetResource": { - "location": "query", - "type": "string", - "description": "The target resource to list associations. It is an organization, or a folder." - } + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" } }, - "insert": { - "parameterOrder": [ - "parentId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "locations/global/firewallPolicies", - "id": "compute.firewallPolicies.insert", - "description": "Creates a new policy in the specified project using the data included in the request.", - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "parentId": { - "location": "query", - "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.", - "type": "string", - "required": true - } - }, - "request": { - "$ref": "FirewallPolicy" - }, - "flatPath": "locations/global/firewallPolicies", - "httpMethod": "POST" + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "type": "string", + "default": "compute#targetHttpProxyAggregatedList", + "description": "[Output Only] Type of resource. Always compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." } - } + }, + "id": "TargetHttpProxyAggregatedList" }, - "globalOrganizationOperations": { - "methods": { - "delete": { - "path": "locations/global/operations/{operation}", - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "RouterNatLogConfig": { + "description": "Configuration of logging on a NAT.", + "id": "RouterNatLogConfig", + "properties": { + "enable": { + "description": "Indicates whether or not to export logs. This is false by default.", + "type": "boolean" + }, + "filter": { + "enumDescriptions": [ + "Export logs for all (successful and unsuccessful) connections.", + "Export logs for connection failures only.", + "Export logs for successful connections only." ], - "description": "Deletes the specified Operations resource.", - "parameterOrder": [ - "operation" + "enum": [ + "ALL", + "ERRORS_ONLY", + "TRANSLATIONS_ONLY" ], - "parameters": { - "parentId": { - "location": "query", - "description": "Parent ID for this request.", - "type": "string" - }, - "operation": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the Operations resource to delete.", - "type": "string" - } + "type": "string", + "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": "object" + }, + "MachineImageList": { + "description": "A list of machine images.", + "type": "object", + "properties": { + "items": { + "items": { + "$ref": "MachineImage" }, - "flatPath": "locations/global/operations/{operation}", - "id": "compute.globalOrganizationOperations.delete" + "description": "A list of MachineImage resources.", + "type": "array" }, - "get": { - "parameterOrder": [ - "operation" - ], - "parameters": { - "parentId": { - "description": "Parent ID for this request.", - "location": "query", + "nextPageToken": { + "type": "string", + "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." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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": "array" + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "operation": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the Operations resource to return.", - "type": "string", - "location": "path" - } - }, - "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.", - "response": { - "$ref": "Operation" - }, - "path": "locations/global/operations/{operation}", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.globalOrganizationOperations.get", - "flatPath": "locations/global/operations/{operation}" + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + } + } }, - "list": { - "description": "Retrieves a list of Operation resources contained within the specified organization.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "kind": { + "type": "string", + "description": "[Output Only] The resource type, which is always compute#machineImagesListResponse for machine image lists.", + "default": "compute#machineImageList" + } + }, + "id": "MachineImageList" + }, + "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "type": "object", + "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", + "properties": { + "displayName": { + "description": "[Output Only] The display name of the firewall policy.", + "type": "string" + }, + "rules": { + "description": "The rules that apply to the network.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "type": "array" + }, + "name": { + "type": "string", + "description": "[Output Only] The name of the firewall policy." + }, + "type": { + "enumDescriptions": [ + "", + "", + "", + "" ], - "flatPath": "locations/global/operations", - "parameters": { - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", + "enum": [ + "HIERARCHY", + "NETWORK", + "NETWORK_REGIONAL", + "UNSPECIFIED" + ], + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", + "type": "string" + } + } + }, + "InstanceGroupManagersCreateInstancesRequest": { + "id": "InstanceGroupManagersCreateInstancesRequest", + "properties": { + "instances": { + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + }, + "description": "[Required] List of specifications of per-instance configs." + } + }, + "description": "InstanceGroupManagers.createInstances", + "type": "object" + }, + "GlobalNetworkEndpointGroupsDetachEndpointsRequest": { + "type": "object", + "properties": { + "networkEndpoints": { + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array", + "description": "The list of network endpoints to be detached." + } + }, + "id": "GlobalNetworkEndpointGroupsDetachEndpointsRequest" + }, + "PacketMirroringsScopedList": { + "type": "object", + "id": "PacketMirroringsScopedList", + "properties": { + "warning": { + "description": "Informational warning which replaces the list of packetMirrorings when the list is empty.", + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string" }, - "parentId": { - "location": "query", - "type": "string", - "description": "Parent ID for this request." + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "message": { "type": "string", - "location": "query" - }, - "maxResults": { - "format": "uint32", - "type": "integer", - "default": "500", - "location": "query", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "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" + "description": "[Output Only] A human-readable description of the warning code." } + } + }, + "packetMirrorings": { + "description": "A list of packetMirrorings contained in this scope.", + "items": { + "$ref": "PacketMirroring" }, - "id": "compute.globalOrganizationOperations.list", - "path": "locations/global/operations", - "response": { - "$ref": "OperationList" + "type": "array" + } + } + }, + "GlobalSetLabelsRequest": { + "properties": { + "labelFingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "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\": \"\").", + "additionalProperties": { + "type": "string" }, - "httpMethod": "GET" + "type": "object" + } + }, + "type": "object", + "id": "GlobalSetLabelsRequest" + }, + "PublicAdvertisedPrefixPublicDelegatedPrefix": { + "id": "PublicAdvertisedPrefixPublicDelegatedPrefix", + "type": "object", + "description": "Represents a CIDR range which can be used to assign addresses.", + "properties": { + "ipRange": { + "type": "string", + "description": "The IP address range of the public delegated prefix" + }, + "region": { + "type": "string", + "description": "The region of the public delegated prefix if it is regional. If absent, the prefix is global." + }, + "name": { + "description": "The name of the public delegated prefix", + "type": "string" + }, + "status": { + "type": "string", + "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." + }, + "project": { + "description": "The project number of the public delegated prefix", + "type": "string" } } }, - "securityPolicies": { - "methods": { - "list": { - "flatPath": "projects/{project}/global/securityPolicies", - "id": "compute.securityPolicies.list", - "response": { - "$ref": "SecurityPolicyList" + "ExternalVpnGatewayList": { + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#externalVpnGatewayList for lists of externalVpnGateways.", + "type": "string", + "default": "compute#externalVpnGatewayList" + }, + "items": { + "description": "A list of ExternalVpnGateway resources.", + "items": { + "$ref": "ExternalVpnGateway" }, - "parameters": { - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "location": "query", - "type": "integer", - "default": "500", - "format": "uint32" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" + "type": "array" + }, + "warning": { + "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "project": { + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" } }, - "httpMethod": "GET", - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/global/securityPolicies", - "description": "List all the policies that have been configured for the specified project.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "getRule": { - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", - "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.", - "parameters": { - "priority": { - "type": "integer", - "location": "query", - "description": "The priority of the rule to get from the security policy.", - "format": "int32" - }, - "securityPolicy": { - "location": "path", - "description": "Name of the security policy to which the queried rule belongs.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." - } - }, - "id": "compute.securityPolicies.getRule", - "httpMethod": "GET", - "parameterOrder": [ - "project", - "securityPolicy" - ], - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", - "response": { - "$ref": "SecurityPolicyRule" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "etag": { + "type": "string" + } + }, + "description": "Response to the list request, and contains a list of externalVpnGateways.", + "type": "object", + "id": "ExternalVpnGatewayList" + }, + "SecurityPoliciesAggregatedList": { + "id": "SecurityPoliciesAggregatedList", + "type": "object", + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "type": "object", + "description": "A list of SecurityPoliciesScopedList resources.", + "additionalProperties": { + "$ref": "SecurityPoliciesScopedList", + "description": "Name of the scope containing this set of security policies." } }, - "listPreconfiguredExpressionSets": { - "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.", - "parameterOrder": [ - "project" - ], - "parameters": { - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "description": "Project ID for this request." - }, - "orderBy": { + "kind": { + "type": "string", + "default": "compute#securityPoliciesAggregatedList", + "description": "[Output Only] Type of resource. Always compute#securityPolicyAggregatedList for lists of Security Policies." + }, + "unreachables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "[Output Only] Unreachable resources." + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." }, - "maxResults": { - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500", - "type": "integer", - "location": "query" + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } + } + } + } + }, + "ConnectionDraining": { + "description": "Message containing connection draining configuration.", + "type": "object", + "properties": { + "drainingTimeoutSec": { + "type": "integer", + "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.", + "format": "int32" + } + }, + "id": "ConnectionDraining" + }, + "SslCertificate": { + "type": "object", + "properties": { + "subjectAlternativeNames": { + "items": { + "type": "string" }, - "id": "compute.securityPolicies.listPreconfiguredExpressionSets", - "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "array", + "description": "[Output Only] Domains associated with the certificate via Subject Alternative Name." + }, + "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" + }, + "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.", + "format": "uint64", + "type": "string" + }, + "selfManaged": { + "description": "Configuration and status of a self-managed SSL certificate.", + "$ref": "SslCertificateSelfManagedSslCertificate" + }, + "certificate": { + "type": "string", + "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." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "expireTime": { + "description": "[Output Only] Expire time of the certificate. RFC3339", + "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" + }, + "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" + }, + "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.", + "enumDescriptions": [ + "Google-managed SSLCertificate.", + "Certificate uploaded by user.", + "" ], - "response": { - "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse" + "type": "string", + "enum": [ + "MANAGED", + "SELF_MANAGED", + "TYPE_UNSPECIFIED" + ] + }, + "kind": { + "description": "[Output Only] Type of the resource. Always compute#sslCertificate for SSL certificates.", + "default": "compute#sslCertificate", + "type": "string" + } + }, + "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 sslCertificates are used by: - external HTTPS load balancers - SSL proxy load balancers The regionSslCertificates are used by internal HTTPS 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." + }, + "BackendServiceLocalityLoadBalancingPolicyConfig": { + "type": "object", + "description": "Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfig", + "properties": { + "customPolicy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" + }, + "policy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" + } + } + }, + "RegionInstanceGroupsSetNamedPortsRequest": { + "id": "RegionInstanceGroupsSetNamedPortsRequest", + "properties": { + "namedPorts": { + "description": "The list of named ports to set for this instance group.", + "items": { + "$ref": "NamedPort" }, - "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets" + "type": "array" }, - "insert": { - "httpMethod": "POST", - "flatPath": "projects/{project}/global/securityPolicies", - "response": { - "$ref": "Operation" + "fingerprint": { + "type": "string", + "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.", + "format": "byte" + } + }, + "type": "object" + }, + "Network": { + "type": "object", + "id": "Network", + "properties": { + "IPv4Range": { + "type": "string", + "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", + "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." + }, + "peerings": { + "items": { + "$ref": "NetworkPeering" }, - "id": "compute.securityPolicies.insert", - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "SecurityPolicy" + "description": "[Output Only] A list of network peerings for the resource.", + "type": "array" + }, + "description": { + "description": "An optional description of this resource. Provide this field when you create the resource.", + "type": "string" + }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "name": { + "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" - ], - "path": "projects/{project}/global/securityPolicies", - "description": "Creates a new policy in the specified project using the data included in the request.", - "parameters": { - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } + "type": "string", + "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." + }, + "firewallPolicy": { + "description": "[Output Only] URL of the firewall policy the network is associated with.", + "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" + }, + "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" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "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" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "subnetworks": { + "description": "[Output Only] Server-defined fully-qualified URLs for all subnetworks in this VPC network.", + "type": "array", + "items": { + "type": "string" } }, - "patchRule": { - "id": "compute.securityPolicies.patchRule", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "gatewayIPv4": { + "type": "string", + "description": "[Output Only] The gateway address for default routing out of the network, selected by GCP.", + "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}" + }, + "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.", + "enumDescriptions": [ + "", + "" ], - "description": "Patches a rule at the specified priority.", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", - "parameterOrder": [ - "project", - "securityPolicy" + "enum": [ + "AFTER_CLASSIC_FIREWALL", + "BEFORE_CLASSIC_FIREWALL" ], - "parameters": { - "priority": { - "format": "int32", - "location": "query", - "type": "integer", - "description": "The priority of the rule to patch." - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", + "type": "string" + }, + "mtu": { + "type": "integer", + "format": "int32", + "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." + }, + "internalIpv6Range": { + "type": "string", + "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. ." + }, + "kind": { + "default": "compute#network", + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#network for networks." + } + }, + "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." + }, + "ResourcePolicyDailyCycle": { + "properties": { + "daysInCycle": { + "description": "Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle.", + "format": "int32", + "type": "integer" + }, + "startTime": { + "type": "string", + "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." + }, + "duration": { + "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", + "type": "string" + } + }, + "type": "object", + "id": "ResourcePolicyDailyCycle", + "description": "Time window specified for daily operations." + }, + "SecurityPolicyRuleRateLimitOptionsThreshold": { + "id": "SecurityPolicyRuleRateLimitOptionsThreshold", + "properties": { + "intervalSec": { + "description": "Interval over which the threshold is computed.", + "format": "int32", + "type": "integer" + }, + "count": { + "format": "int32", + "type": "integer", + "description": "Number of HTTP(S) requests for calculating the threshold." + } + }, + "type": "object" + }, + "SecurityPoliciesListPreconfiguredExpressionSetsResponse": { + "type": "object", + "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse", + "properties": { + "preconfiguredExpressionSets": { + "$ref": "SecurityPoliciesWafConfig" + } + } + }, + "InstanceGroupAggregatedList": { + "type": "object", + "properties": { + "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" + } + }, + "warning": { + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "required": true + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "securityPolicy": { - "required": true, - "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}", + "message": { "type": "string", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." + }, + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", - "httpMethod": "POST", - "request": { - "$ref": "SecurityPolicyRule" - }, - "response": { - "$ref": "Operation" + "description": "[Output Only] Informational warning message.", + "type": "object" + }, + "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" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" } }, - "addRule": { - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", - "description": "Inserts a rule into a security policy.", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", - "request": { - "$ref": "SecurityPolicyRule" - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "securityPolicy": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the security policy to update.", - "location": "path", - "type": "string" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "description": "Project ID for this request." - } - }, - "parameterOrder": [ - "project", - "securityPolicy" - ], - "id": "compute.securityPolicies.addRule", - "response": { - "$ref": "Operation" - } + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." }, - "removeRule": { - "id": "compute.securityPolicies.removeRule", - "parameterOrder": [ - "project", - "securityPolicy" - ], - "response": { - "$ref": "Operation" - }, - "description": "Deletes a rule at the specified priority.", - "parameters": { - "priority": { - "type": "integer", - "description": "The priority of the rule to remove from the security policy.", - "format": "int32", - "location": "query" - }, - "securityPolicy": { - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "description": "Name of the security policy to update." - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true - } - }, - "httpMethod": "POST", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "delete": { - "response": { - "$ref": "Operation" - }, - "httpMethod": "DELETE", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "securityPolicy" - ], - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", - "id": "compute.securityPolicies.delete", - "parameters": { - "securityPolicy": { - "description": "Name of the security policy to delete.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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])?))", - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request." - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "description": "Deletes the specified policy." + "kind": { + "default": "compute#instanceGroupAggregatedList", + "type": "string", + "description": "[Output Only] The resource type, which is always compute#instanceGroupAggregatedList for aggregated lists of instance groups." + } + }, + "id": "InstanceGroupAggregatedList" + }, + "HttpHeaderOption": { + "id": "HttpHeaderOption", + "type": "object", + "properties": { + "headerName": { + "description": "The name of the header.", + "type": "string" }, - "patch": { - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", - "parameters": { - "securityPolicy": { - "required": true, - "type": "string", - "description": "Name of the security policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", - "parameterOrder": [ - "project", - "securityPolicy" - ], - "description": "Patches the specified policy with the data included in the request. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", - "request": { - "$ref": "SecurityPolicy" - }, - "id": "compute.securityPolicies.patch", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + }, + "headerValue": { + "description": "The value of the header to add.", + "type": "string" + } + }, + "description": "Specification determining how headers are added to requests or responses." + }, + "UrlMapTestHeader": { + "type": "object", + "properties": { + "value": { + "description": "Header value.", + "type": "string" + }, + "name": { + "type": "string", + "description": "Header name." + } + }, + "id": "UrlMapTestHeader", + "description": "HTTP headers used in UrlMapTests." + }, + "BackendServiceConnectionTrackingPolicy": { + "id": "BackendServiceConnectionTrackingPolicy", + "type": "object", + "description": "Connection Tracking configuration for this BackendService.", + "properties": { + "idleTimeoutSec": { + "description": "Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - 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 Network Load Balancer the default is 60 seconds. This option is not available publicly.", + "type": "integer", + "format": "int32" + }, + "enableStrongAffinity": { + "description": "Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly.", + "type": "boolean" + }, + "connectionPersistenceOnUnhealthyBackends": { + "type": "string", + "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).", + "enumDescriptions": [ + "", + "", + "" ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "PATCH" + "enum": [ + "ALWAYS_PERSIST", + "DEFAULT_FOR_PROTOCOL", + "NEVER_PERSIST" + ] }, - "get": { - "parameterOrder": [ - "project", - "securityPolicy" + "trackingMode": { + "enumDescriptions": [ + "", + "", + "" ], - "id": "compute.securityPolicies.get", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", - "response": { - "$ref": "SecurityPolicy" - }, - "parameters": { - "securityPolicy": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the security policy to get.", - "location": "path", - "type": "string", - "required": true - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - } - }, - "description": "List all of the ordered rules present in a single specified policy.", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "INVALID_TRACKING_MODE", + "PER_CONNECTION", + "PER_SESSION" ], - "httpMethod": "GET" + "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" } } }, - "backendBuckets": { - "methods": { - "deleteSignedUrlKey": { - "id": "compute.backendBuckets.deleteSignedUrlKey", - "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", - "parameterOrder": [ - "project", - "backendBucket", - "keyName" - ], - "description": "Deletes a key for validating requests with signed URLs for this backend bucket.", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "PacketIntervals": { + "type": "object", + "id": "PacketIntervals", + "properties": { + "type": { + "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.", + "" ], - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "location": "path", - "required": true, - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "backendBucket": { - "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.", - "required": true, - "type": "string", - "location": "path" - }, - "keyName": { - "location": "query", - "description": "The name of the Signed URL Key to delete.", - "type": "string", - "required": true - } - }, - "httpMethod": "POST" + "description": "The type of packets for which inter-packet intervals were computed.", + "type": "string", + "enum": [ + "LOOPBACK", + "RECEIVE", + "TRANSMIT", + "TYPE_UNSPECIFIED" + ] }, - "patch": { - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "backendBucket" - ], - "httpMethod": "PATCH", - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "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.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "numIntervals": { + "format": "int64", + "type": "string", + "description": "Number of inter-packet intervals from which these statistics were derived." + }, + "avgMs": { + "format": "int64", + "description": "Average observed inter-packet interval in milliseconds.", + "type": "string" + }, + "minMs": { + "type": "string", + "description": "Minimum observed inter-packet interval in milliseconds.", + "format": "int64" + }, + "duration": { + "description": "From how long ago in the past these intervals were observed.", + "type": "string", + "enum": [ + "DURATION_UNSPECIFIED", + "HOUR", + "MAX", + "MINUTE" ], - "request": { - "$ref": "BackendBucket" - }, - "id": "compute.backendBuckets.patch", - "parameters": { - "backendBucket": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the BackendBucket resource to patch.", - "type": "string", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "location": "path" - } + "enumDescriptions": [ + "", + "", + "From BfdSession object creation time.", + "" + ] + }, + "maxMs": { + "format": "int64", + "description": "Maximum observed inter-packet interval in milliseconds.", + "type": "string" + } + }, + "description": "Next free: 7" + }, + "CircuitBreakers": { + "description": "Settings controlling the volume of requests, connections and retries to this backend service.", + "type": "object", + "properties": { + "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" + }, + "maxRequestsPerConnection": { + "format": "int32", + "type": "integer", + "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." + }, + "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" + }, + "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" + }, + "maxPendingRequests": { + "format": "int32", + "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" + } + }, + "id": "CircuitBreakers" + }, + "NetworksAddPeeringRequest": { + "type": "object", + "properties": { + "name": { + "description": "Name of the peering, which should conform to RFC1035.", + "type": "string", + "annotations": { + "required": [ + "compute.networks.addPeering" + ] } }, - "delete": { - "httpMethod": "DELETE", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "backendBucket": { + "networkPeering": { + "$ref": "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." + }, + "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": { + "type": "boolean", + "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." + } + }, + "id": "NetworksAddPeeringRequest" + }, + "TargetPoolList": { + "id": "TargetPoolList", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetPoolList for lists of target pools.", + "type": "string", + "default": "compute#targetPoolList" + }, + "warning": { + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "required": true, - "location": "path", - "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}" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "project": { - "required": true, + "message": { "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "description": "[Output Only] A human-readable description of the warning code." } }, - "parameterOrder": [ - "project", - "backendBucket" - ], - "id": "compute.backendBuckets.delete", - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "description": "Deletes the specified BackendBucket resource." + "description": "[Output Only] Informational warning message." }, - "get": { - "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "parameterOrder": [ - "project", - "backendBucket" - ], - "httpMethod": "GET", - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "BackendBucket" - }, - "id": "compute.backendBuckets.get", - "parameters": { - "backendBucket": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string", - "description": "Name of the BackendBucket resource to return." - }, - "project": { - "location": "path", - "required": true, - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "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" + }, + "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" } }, - "update": { - "description": "Updates the specified BackendBucket resource with the data included in the request.", - "parameterOrder": [ - "project", - "backendBucket" - ], - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + } + }, + "description": "Contains a list of TargetPool resources.", + "type": "object" + }, + "Address": { + "properties": { + "status": { + "enum": [ + "IN_USE", + "RESERVED", + "RESERVING" ], - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "backendBucket": { - "type": "string", - "location": "path", - "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}", - "required": true - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - } - }, - "request": { - "$ref": "BackendBucket" - }, - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "id": "compute.backendBuckets.update", - "response": { - "$ref": "Operation" - } + "type": "string", + "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.", + "enumDescriptions": [ + "Address is being used by another resource and is not available.", + "Address is reserved and available to use.", + "Address is being reserved." + ] }, - "addSignedUrlKey": { - "description": "Adds a key for validating requests with signed URLs for this backend bucket.", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "region": { + "type": "string", + "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.*" + }, + "kind": { + "type": "string", + "default": "compute#address", + "description": "[Output Only] Type of the resource. Always compute#address for addresses." + }, + "network": { + "type": "string", + "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." + }, + "ipVersion": { + "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.", + "enumDescriptions": [ + "", + "", + "" ], - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "backendBucket": { - "location": "path", - "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.", - "type": "string", - "required": true - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", - "httpMethod": "POST", - "id": "compute.backendBuckets.addSignedUrlKey", - "parameterOrder": [ - "project", - "backendBucket" + "type": "string", + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_VERSION" + ] + }, + "id": { + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "addressType": { + "enumDescriptions": [ + "A publicly visible external IP address.", + "A private network IP address, for use with an Instance or Internal Load Balancer forwarding rule.", + "" ], - "request": { - "$ref": "SignedUrlKey" - } + "type": "string", + "description": "The type of address to reserve, either INTERNAL or EXTERNAL. If unspecified, defaults to EXTERNAL.", + "enum": [ + "EXTERNAL", + "INTERNAL", + "UNSPECIFIED_TYPE" + ] }, - "insert": { - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/backendBuckets", - "description": "Creates a BackendBucket resource in the specified project using the data included in the request.", - "request": { - "$ref": "BackendBucket" - }, - "httpMethod": "POST", - "flatPath": "projects/{project}/global/backendBuckets", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "networkTier": { + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" ], - "parameterOrder": [ - "project" + "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." ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "location": "path" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "id": "compute.backendBuckets.insert" + "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." }, - "list": { - "parameters": { - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "type": "integer", - "minimum": "0", - "location": "query" - }, - "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])?))", - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request." - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - } + "users": { + "description": "[Output Only] The URLs of the resources that are using this address.", + "items": { + "type": "string" }, - "path": "projects/{project}/global/backendBuckets", - "description": "Retrieves the list of BackendBucket resources available to the specified project.", - "parameterOrder": [ - "project" + "type": "array" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "prefixLength": { + "format": "int32", + "type": "integer", + "description": "The prefix length if the resource represents an IP range." + }, + "address": { + "type": "string", + "description": "The static IP address represented by this resource." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this field when you create the resource.", + "type": "string" + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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.", + "type": "string", + "annotations": { + "required": [ + "compute.addresses.insert" + ] + } + }, + "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" + }, + "purpose": { + "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." ], - "response": { - "$ref": "BackendBucketList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "DNS_RESOLVER", + "GCE_ENDPOINT", + "IPSEC_INTERCONNECT", + "NAT_AUTO", + "PRIVATE_SERVICE_CONNECT", + "SERVERLESS", + "SHARED_LOADBALANCER_VIP", + "VPC_PEERING" ], - "id": "compute.backendBuckets.list", - "httpMethod": "GET", - "flatPath": "projects/{project}/global/backendBuckets" + "type": "string", + "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": "object", + "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.", + "id": "Address" + }, + "MetadataFilterLabelMatch": { + "type": "object", + "description": "MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer.", + "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" + }, + "value": { + "type": "string", + "description": "The value of the label must match the specified value. value can have a maximum length of 1024 characters." + } + }, + "id": "MetadataFilterLabelMatch" + }, + "ShieldedInstanceIntegrityPolicy": { + "type": "object", + "id": "ShieldedInstanceIntegrityPolicy", + "description": "The policy describes the baseline against which Instance boot integrity is measured.", + "properties": { + "updateAutoLearnPolicy": { + "description": "Updates the integrity policy baseline using the measurements from the VM instance's most recent boot.", + "type": "boolean" } } }, - "nodeTypes": { - "methods": { - "get": { - "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", - "response": { - "$ref": "NodeType" + "NodeGroupsAddNodesRequest": { + "properties": { + "additionalNodeCount": { + "type": "integer", + "description": "Count of additional nodes to be added to the node group.", + "format": "int32" + } + }, + "type": "object", + "id": "NodeGroupsAddNodesRequest" + }, + "MachineTypeAggregatedList": { + "properties": { + "items": { + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of machine types.", + "$ref": "MachineTypesScopedList" }, - "id": "compute.nodeTypes.get", - "description": "Returns the specified node type. Gets a list of available node types by making a list() request.", - "parameters": { - "nodeType": { - "type": "string", - "location": "path", - "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}", - "required": true - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path", - "type": "string", - "description": "The name of the zone for this request." - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true - } + "description": "A list of MachineTypesScopedList resources." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "zone", - "nodeType" - ], - "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}" + "type": "array" }, - "list": { - "id": "compute.nodeTypes.list", - "flatPath": "projects/{project}/zones/{zone}/nodeTypes", - "parameters": { - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "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" + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#machineTypeAggregatedList for aggregated lists of machine types.", + "type": "string", + "default": "compute#machineTypeAggregatedList" + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "required": true, - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path" - }, - "pageToken": { - "location": "query", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "maxResults": { - "minimum": "0", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "format": "uint32", - "location": "query" - }, - "project": { - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - } - }, - "path": "projects/{project}/zones/{zone}/nodeTypes", - "description": "Retrieves a list of node types available to the specified project.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "response": { - "$ref": "NodeTypeList" - }, - "parameterOrder": [ - "project", - "zone" - ] - }, - "aggregatedList": { - "path": "projects/{project}/aggregated/nodeTypes", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/aggregated/nodeTypes", - "response": { - "$ref": "NodeTypeAggregatedList" - }, - "id": "compute.nodeTypes.aggregatedList", - "httpMethod": "GET", - "description": "Retrieves an aggregated list of node types.", - "parameters": { - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "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`)", - "minimum": "0", - "default": "500", - "type": "integer", - "format": "uint32", - "location": "query" - }, - "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" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" + "data": { + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } + } + } + }, + "type": "object", + "id": "MachineTypeAggregatedList" + }, + "RegionDisksAddResourcePoliciesRequest": { + "type": "object", + "properties": { + "resourcePolicies": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project" - ] + "type": "array", + "description": "Resource policies to be added to this disk." } - } + }, + "id": "RegionDisksAddResourcePoliciesRequest" }, - "regionNotificationEndpoints": { - "methods": { - "delete": { - "parameters": { - "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])?))", - "type": "string", - "description": "Project ID for this request.", - "required": true, - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", - "type": "string" - }, - "region": { - "required": true, - "type": "string", - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "notificationEndpoint": { - "required": true, - "description": "Name of the NotificationEndpoint resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - } + "Instance": { + "type": "object", + "id": "Instance", + "properties": { + "startRestricted": { + "description": "[Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.", + "type": "boolean" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "cpuPlatform": { + "type": "string", + "description": "[Output Only] The CPU platform used by this instance." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "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.", + "items": { + "$ref": "NetworkInterface" }, - "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", - "description": "Deletes the specified NotificationEndpoint in the given region", - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "array" + }, + "scheduling": { + "$ref": "Scheduling", + "description": "Sets the scheduling options for this instance." + }, + "canIpForward": { + "type": "boolean", + "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 ." + }, + "shieldedInstanceIntegrityPolicy": { + "$ref": "ShieldedInstanceIntegrityPolicy" + }, + "confidentialInstanceConfig": { + "$ref": "ConfidentialInstanceConfig" + }, + "metadata": { + "description": "The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.", + "$ref": "Metadata" + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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", + "annotations": { + "required": [ + "compute.instances.insert" + ] + } + }, + "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" + }, + "advancedMachineFeatures": { + "description": "Controls for advanced machine-related behavior features.", + "$ref": "AdvancedMachineFeatures" + }, + "sourceMachineImage": { + "type": "string", + "description": "Source machine image" + }, + "shieldedInstanceConfig": { + "$ref": "ShieldedInstanceConfig" + }, + "privateIpv6GoogleAccess": { + "enum": [ + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", + "INHERIT_FROM_SUBNETWORK" ], - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", - "parameterOrder": [ - "project", - "region", - "notificationEndpoint" + "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." ], - "response": { - "$ref": "Operation" - }, - "id": "compute.regionNotificationEndpoints.delete" + "type": "string", + "description": "The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default." }, - "insert": { - "id": "compute.regionNotificationEndpoints.insert", - "httpMethod": "POST", - "path": "projects/{project}/regions/{region}/notificationEndpoints", - "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "NotificationEndpoint" + "minCpuPlatform": { + "type": "string", + "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\"." + }, + "networkPerformanceConfig": { + "$ref": "NetworkPerformanceConfig" + }, + "disks": { + "type": "array", + "items": { + "$ref": "AttachedDisk" }, - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "region": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - } + "description": "Array of disks associated with this instance. Persistent disks must be created before you can assign them." + }, + "labels": { + "description": "Labels to apply to this instance. These can be later modified by the setLabels method.", + "additionalProperties": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "type": "object" }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "NotificationEndpoint" + "params": { + "$ref": "InstanceParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." + }, + "tags": { + "$ref": "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." + }, + "serviceAccounts": { + "items": { + "$ref": "ServiceAccount" }, - "parameterOrder": [ - "project", - "region", - "notificationEndpoint" + "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" + }, + "lastStopTimestamp": { + "type": "string", + "description": "[Output Only] Last stop timestamp in RFC3339 text format." + }, + "reservationAffinity": { + "description": "Specifies the reservations that this instance can consume from.", + "$ref": "ReservationAffinity" + }, + "fingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "statusMessage": { + "description": "[Output Only] An optional, human-readable explanation of the status.", + "type": "string" + }, + "satisfiesPzs": { + "type": "boolean", + "description": "[Output Only] Reserved for future use." + }, + "labelFingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "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" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "keyRevocationActionType": { + "type": "string", + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" ], - "description": "Returns the specified NotificationEndpoint resource in the given region.", - "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "required": true - }, - "region": { - "location": "path", - "type": "string", - "description": "Name of the region scoping this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "notificationEndpoint": { - "type": "string", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the NotificationEndpoint resource to return." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." ], - "id": "compute.regionNotificationEndpoints.get", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}" + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified." }, - "list": { - "parameters": { - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "maxResults": { - "location": "query", - "type": "integer", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "format": "uint32" - } + "deletionProtection": { + "description": "Whether the resource should be protected against deletion.", + "type": "boolean" + }, + "lastSuspendedTimestamp": { + "description": "[Output Only] Last suspended timestamp in RFC3339 text format.", + "type": "string" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "kind": { + "default": "compute#instance", + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#instance for instances." + }, + "resourcePolicies": { + "type": "array", + "items": { + "type": "string" }, - "id": "compute.regionNotificationEndpoints.list", - "description": "Lists the NotificationEndpoints for a project in the given region.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": "Resource policies applied to this instance." + }, + "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.", + "enum": [ + "DEPROVISIONING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" ], - "response": { - "$ref": "NotificationEndpointList" - }, - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", - "httpMethod": "GET", - "parameterOrder": [ - "project", - "region" + "enumDescriptions": [ + "The Nanny 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)." ], - "path": "projects/{project}/regions/{region}/notificationEndpoints" + "type": "string" + }, + "lastStartTimestamp": { + "description": "[Output Only] Last start timestamp in RFC3339 text format.", + "type": "string" + }, + "displayDevice": { + "description": "Enables display device for the instance.", + "$ref": "DisplayDevice" + }, + "machineType": { + "type": "string", + "annotations": { + "required": [ + "compute.instances.insert" + ] + }, + "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." + }, + "guestAccelerators": { + "type": "array", + "description": "A list of the type and count of accelerator cards attached to the instance.", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "sourceMachineImageEncryptionKey": { + "description": "Source machine image encryption key when creating an instance from a machine image.", + "$ref": "CustomerEncryptionKey" } - } + }, + "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." }, - "autoscalers": { - "methods": { - "patch": { - "parameterOrder": [ - "project", - "zone" - ], - "path": "projects/{project}/zones/{zone}/autoscalers", - "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.", - "id": "compute.autoscalers.patch", - "flatPath": "projects/{project}/zones/{zone}/autoscalers", - "httpMethod": "PATCH", - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "zone": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "Name of the zone for this request.", - "type": "string" - }, - "autoscaler": { - "location": "query", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the autoscaler to patch.", - "type": "string" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path" - } - }, - "request": { - "$ref": "Autoscaler" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "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" }, - "get": { - "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", - "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", - "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.", - "response": { - "$ref": "Autoscaler" - }, - "httpMethod": "GET", - "parameters": { - "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", - "type": "string", - "required": true, - "description": "Project ID for this request." - }, - "autoscaler": { - "location": "path", - "description": "Name of the autoscaler to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "Name of the zone for this request.", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "id": "compute.autoscalers.get", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "zone", - "autoscaler" - ] + "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" + } + }, + "id": "UrlRewrite" + }, + "LicenseResourceRequirements": { + "type": "object", + "properties": { + "minGuestCpuCount": { + "type": "integer", + "description": "Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start.", + "format": "int32" }, - "update": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/zones/{zone}/autoscalers", - "httpMethod": "PUT", - "path": "projects/{project}/zones/{zone}/autoscalers", - "parameterOrder": [ - "project", - "zone" - ], - "parameters": { - "zone": { - "description": "Name of the zone for this request.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "minMemoryMb": { + "format": "int32", + "description": "Minimum memory required to use the Instance. Enforced at Instance creation and Instance start.", + "type": "integer" + } + }, + "id": "LicenseResourceRequirements" + }, + "ForwardingRulesScopedList": { + "properties": { + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of forwarding rules when the list is empty.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "autoscaler": { - "location": "query", + "code": { "type": "string", - "description": "Name of the autoscaler to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } - }, - "id": "compute.autoscalers.update", - "request": { - "$ref": "Autoscaler" - }, - "description": "Updates an autoscaler in the specified project using the data included in the request.", - "response": { - "$ref": "Operation" } }, - "insert": { - "flatPath": "projects/{project}/zones/{zone}/autoscalers", - "httpMethod": "POST", - "path": "projects/{project}/zones/{zone}/autoscalers", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "project": { - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "Name of the zone for this request.", - "required": true, - "location": "path" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "response": { - "$ref": "Operation" + "forwardingRules": { + "items": { + "$ref": "ForwardingRule" }, - "description": "Creates an autoscaler in the specified project using the data included in the request.", - "request": { - "$ref": "Autoscaler" + "type": "array", + "description": "A list of forwarding rules contained in this scope." + } + }, + "type": "object", + "id": "ForwardingRulesScopedList" + }, + "InstancesRemoveResourcePoliciesRequest": { + "type": "object", + "id": "InstancesRemoveResourcePoliciesRequest", + "properties": { + "resourcePolicies": { + "type": "array", + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "zone" - ], - "id": "compute.autoscalers.insert" + "description": "Resource policies to be removed from this instance." + } + } + }, + "DisplayDevice": { + "id": "DisplayDevice", + "type": "object", + "properties": { + "enableDisplay": { + "description": "Defines whether the instance has Display enabled.", + "type": "boolean" + } + }, + "description": "A set of Display Device options" + }, + "RegionInstanceGroupsListInstances": { + "type": "object", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "aggregatedList": { - "id": "compute.autoscalers.aggregatedList", - "flatPath": "projects/{project}/aggregated/autoscalers", - "response": { - "$ref": "AutoscalerAggregatedList" + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "description": "A list of InstanceWithNamedPorts resources.", + "items": { + "$ref": "InstanceWithNamedPorts" }, - "description": "Retrieves an aggregated list of autoscalers.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "type": "array" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "type": "string", + "default": "compute#regionInstanceGroupsListInstances", + "description": "The resource type." + }, + "warning": { + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string" }, - "maxResults": { - "minimum": "0", - "format": "uint32", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "default": "500" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "includeAllScopes": { - "type": "boolean", - "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" - }, - "project": { - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" } }, - "parameterOrder": [ - "project" - ], - "httpMethod": "GET", - "path": "projects/{project}/aggregated/autoscalers" - }, - "list": { - "parameterOrder": [ - "project", - "zone" - ], - "httpMethod": "GET", - "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.", - "id": "compute.autoscalers.list", - "parameters": { - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "format": "uint32", - "location": "query", - "default": "500", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer" - }, - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" + "type": "object", + "description": "[Output Only] Informational warning message." + } + }, + "id": "RegionInstanceGroupsListInstances" + }, + "RegionAutoscalerList": { + "description": "Contains a list of autoscalers.", + "properties": { + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "type": "array", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "zone": { - "description": "Name of the zone for this request.", - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - } - }, - "flatPath": "projects/{project}/zones/{zone}/autoscalers", - "path": "projects/{project}/zones/{zone}/autoscalers" - }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", - "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", - "parameterOrder": [ - "project", - "zone", - "autoscaler" - ], - "parameters": { - "zone": { - "type": "string", - "description": "Name of the zone for this request.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "autoscaler": { - "required": true, - "description": "Name of the autoscaler to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string" }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "httpMethod": "DELETE", - "response": { - "$ref": "Operation" - }, - "id": "compute.autoscalers.delete", - "description": "Deletes the specified autoscaler." - } - } - }, - "sslPolicies": { - "methods": { - "listAvailableFeatures": { - "description": "Lists all features that can be specified in the SSL policy when using custom profile.", - "parameters": { - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "maxResults": { - "type": "integer", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "format": "uint32", - "default": "500" - }, - "project": { - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "pageToken": { + "message": { "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" + "description": "[Output Only] A human-readable description of the warning code." } - }, - "parameterOrder": [ - "project" - ], - "httpMethod": "GET", - "id": "compute.sslPolicies.listAvailableFeatures", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "SslPoliciesListAvailableFeaturesResponse" - }, - "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures", - "path": "projects/{project}/global/sslPolicies/listAvailableFeatures" + } }, - "insert": { - "path": "projects/{project}/global/sslPolicies", - "httpMethod": "POST", - "id": "compute.sslPolicies.insert", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "SslPolicy" - }, - "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.", - "parameters": { - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "flatPath": "projects/{project}/global/sslPolicies" + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." }, - "list": { - "response": { - "$ref": "SslPoliciesList" - }, - "path": "projects/{project}/global/sslPolicies", - "httpMethod": "GET", - "id": "compute.sslPolicies.list", - "flatPath": "projects/{project}/global/sslPolicies", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project" - ], - "description": "Lists all the SSL policies that have been configured for the specified project.", - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "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" - }, - "maxResults": { - "location": "query", - "default": "500", - "type": "integer", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - } - } + "nextPageToken": { + "type": "string", + "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." }, - "patch": { - "request": { - "$ref": "SslPolicy" - }, - "httpMethod": "PATCH", - "parameters": { - "sslPolicy": { - "type": "string", - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", - "required": true, - "location": "path" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "parameterOrder": [ - "project", - "sslPolicy" - ], - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", - "description": "Patches the specified SSL policy with the data included in the request.", - "id": "compute.sslPolicies.patch", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#regionAutoscalerList" }, - "get": { - "parameterOrder": [ - "project", - "sslPolicy" - ], - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "description": "Lists all of the ordered rules present in a single specified policy.", - "parameters": { - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", - "required": true, - "location": "path", - "type": "string" - }, - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true - } - }, - "id": "compute.sslPolicies.get", - "response": { - "$ref": "SslPolicy" - }, - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "items": { + "type": "array", + "description": "A list of Autoscaler resources.", + "items": { + "$ref": "Autoscaler" + } }, - "delete": { - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "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.", - "parameters": { - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." - }, - "sslPolicy": { - "type": "string", - "location": "path", - "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - } - }, - "id": "compute.sslPolicies.delete", - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", - "httpMethod": "DELETE", - "parameterOrder": [ - "project", - "sslPolicy" - ] + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" } - } + }, + "id": "RegionAutoscalerList", + "type": "object" }, - "regionHealthChecks": { - "methods": { - "get": { - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "required": true - }, - "healthCheck": { - "required": true, - "type": "string", - "location": "path", - "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}" - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "required": true, - "location": "path", - "description": "Name of the region scoping this request." - } - }, - "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", - "parameterOrder": [ - "project", - "region", - "healthCheck" + "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.", + "properties": { + "maxScaledInReplicas": { + "$ref": "FixedOrPercent", + "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." + }, + "timeWindowSec": { + "format": "int32", + "type": "integer", + "description": "How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above." + } + }, + "type": "object", + "id": "AutoscalingPolicyScaleInControl" + }, + "Operation": { + "id": "Operation", + "properties": { + "progress": { + "type": "integer", + "format": "int32", + "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." + }, + "insertTime": { + "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the operation. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "status": { + "enum": [ + "DONE", + "PENDING", + "RUNNING" ], - "response": { - "$ref": "HealthCheck" - }, - "httpMethod": "GET", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "id": "compute.regionHealthChecks.get", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string", + "description": "[Output Only] The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`.", + "enumDescriptions": [ + "", + "", + "" ] }, - "patch": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "httpMethod": "PATCH", - "parameters": { - "healthCheck": { - "location": "path", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the HealthCheck resource to patch." - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "required": true, - "description": "Name of the region scoping this request." - } - }, - "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.", - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "request": { - "$ref": "HealthCheck" - }, - "id": "compute.regionHealthChecks.patch", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "region", - "healthCheck" - ] + "operationGroupId": { + "type": "string", + "description": "[Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request." }, - "list": { - "description": "Retrieves the list of HealthCheck resources available to the specified project.", - "parameters": { - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "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])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "region": { - "description": "Name of the region scoping this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path" - }, - "maxResults": { - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "format": "uint32", - "minimum": "0", - "type": "integer" + "creationTimestamp": { + "type": "string", + "description": "[Deprecated] This field is deprecated." + }, + "httpErrorMessage": { + "type": "string", + "description": "[Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`." + }, + "error": { + "description": "[Output Only] If errors are generated during processing of the operation, this field will be populated.", + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "errorDetails": { + "items": { + "type": "object", + "properties": { + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "errorInfo": { + "$ref": "ErrorInfo" + } + } + }, + "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" + }, + "location": { + "type": "string", + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional." + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + }, + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + } + } + }, + "description": "[Output Only] The array of errors encountered while processing this operation." } - }, - "httpMethod": "GET", - "id": "compute.regionHealthChecks.list", - "response": { - "$ref": "HealthCheckList" - }, - "path": "projects/{project}/regions/{region}/healthChecks", - "parameterOrder": [ - "project", - "region" - ], - "flatPath": "projects/{project}/regions/{region}/healthChecks", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + } }, - "update": { - "id": "compute.regionHealthChecks.update", - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "request": { - "$ref": "HealthCheck" - }, - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "description": "Updates a HealthCheck resource in the specified project using the data included in the request.", - "parameters": { - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "region": { - "type": "string", - "required": true, - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "healthCheck": { - "location": "path", - "description": "Name of the HealthCheck resource to update.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true + "endTime": { + "description": "[Output Only] The time that this operation was completed. This value is in RFC3339 text format.", + "type": "string" + }, + "clientOperationId": { + "description": "[Output Only] The value of `requestId` if you provided it in the request. Not present otherwise.", + "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" + }, + "kind": { + "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", + "default": "compute#operation", + "type": "string" + }, + "startTime": { + "type": "string", + "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format." + }, + "name": { + "description": "[Output Only] Name of the operation.", + "type": "string" + }, + "region": { + "type": "string", + "description": "[Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations." + }, + "statusMessage": { + "type": "string", + "description": "[Output Only] An optional textual description of the current status of the operation." + }, + "description": { + "type": "string", + "description": "[Output Only] A textual description of the operation, which is set when the operation is created." + }, + "httpErrorStatusCode": { + "type": "integer", + "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.", + "format": "int32" + }, + "zone": { + "description": "[Output Only] The URL of the zone where the operation resides. Only applicable when performing per-zone operations.", + "type": "string" + }, + "operationType": { + "description": "[Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.", + "type": "string" + }, + "targetId": { + "format": "uint64", + "description": "[Output Only] The unique target ID, which identifies a specific incarnation of the target resource.", + "type": "string" + }, + "user": { + "description": "[Output Only] User who requested the operation, for example: `user@example.com`.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "warnings": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } + }, + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string", + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } } }, - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "response": { - "$ref": "Operation" + "type": "array", + "description": "[Output Only] If warning messages are generated during processing of the operation, this field will be populated." + } + }, + "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 `zonalOperations` resource. For more information, read Global, Regional, and Zonal Resources.", + "type": "object" + }, + "UsageExportLocation": { + "id": "UsageExportLocation", + "description": "The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix.", + "properties": { + "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" + }, + "bucketName": { + "type": "string", + "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": "object" + }, + "PreservedState": { + "description": "Preserved state for a given instance.", + "id": "PreservedState", + "type": "object", + "properties": { + "metadata": { + "type": "object", + "description": "Preserved metadata defined for this instance.", + "additionalProperties": { + "type": "string" + } + }, + "disks": { + "description": "Preserved disks defined for this instance. This map is keyed with the device names of the disks.", + "type": "object", + "additionalProperties": { + "$ref": "PreservedStatePreservedDisk" + } + } + } + }, + "RegionInstanceGroupManagerPatchInstanceConfigReq": { + "properties": { + "perInstanceConfigs": { + "type": "array", + "items": { + "$ref": "PerInstanceConfig" }, - "parameterOrder": [ - "project", - "region", - "healthCheck" + "description": "The list of per-instance configurations to insert or patch on this managed instance group." + } + }, + "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", + "description": "RegionInstanceGroupManagers.patchPerInstanceConfigs", + "type": "object" + }, + "BulkInsertInstanceResourcePerInstanceProperties": { + "properties": { + "name": { + "type": "string", + "description": "This field is only temporary. It will be removed. Do not use it." + } + }, + "type": "object", + "description": "Per-instance properties to be set on individual instances. To be extended in the future.", + "id": "BulkInsertInstanceResourcePerInstanceProperties" + }, + "SignedUrlKey": { + "id": "SignedUrlKey", + "description": "Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs", + "type": "object", + "properties": { + "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" + }, + "keyName": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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." + } + } + }, + "BfdStatus": { + "properties": { + "localDiagnostic": { + "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" + ], + "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": { - "path": "projects/{project}/regions/{region}/healthChecks", - "parameters": { - "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])?))", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string" - } - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "rxPacket": { + "$ref": "BfdPacket", + "description": "The most recent Rx control packet for this BFD session." + }, + "bfdSessionInitializationMode": { + "enum": [ + "ACTIVE", + "DISABLED", + "PASSIVE" ], - "request": { - "$ref": "HealthCheck" - }, - "parameterOrder": [ - "project", - "region" + "enumDescriptions": [ + "", + "", + "" ], - "id": "compute.regionHealthChecks.insert", - "flatPath": "projects/{project}/regions/{region}/healthChecks", - "description": "Creates a HealthCheck resource in the specified project using the data included in the request.", - "httpMethod": "POST" + "type": "string", + "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." }, - "delete": { - "description": "Deletes the specified HealthCheck resource.", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "controlPacketIntervals": { + "description": "Inter-packet time interval statistics for control packets.", + "type": "array", + "items": { + "$ref": "PacketIntervals" + } + }, + "configUpdateTimestampMicros": { + "description": "Unix timestamp of the most recent config update.", + "type": "string", + "format": "int64" + }, + "localState": { + "description": "The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "id": "compute.regionHealthChecks.delete", - "parameterOrder": [ - "project", - "region", - "healthCheck" + "enum": [ + "ADMIN_DOWN", + "DOWN", + "INIT", + "STATE_UNSPECIFIED", + "UP" ], - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "httpMethod": "DELETE", - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "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])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true - }, - "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" - }, - "region": { - "location": "path", - "description": "Name of the region scoping this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - } - } + "type": "string" + }, + "controlPacketCounts": { + "description": "Control packet counts for the current BFD session.", + "$ref": "BfdStatusPacketCounts" + }, + "uptimeMs": { + "format": "int64", + "type": "string", + "description": "Session uptime in milliseconds. Value will be 0 if session is not up." + }, + "negotiatedLocalControlTxIntervalMs": { + "description": "Negotiated transmit interval for control packets.", + "format": "uint32", + "type": "integer" + }, + "txPacket": { + "$ref": "BfdPacket", + "description": "The most recent Tx control packet for this BFD session." } - } + }, + "type": "object", + "description": "Next free: 15", + "id": "BfdStatus" }, - "interconnectAttachments": { - "methods": { - "delete": { - "id": "compute.interconnectAttachments.delete", - "httpMethod": "DELETE", - "parameterOrder": [ - "project", - "region", - "interconnectAttachment" - ], - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "interconnectAttachment": { + "HealthCheckList": { + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "kind": { + "default": "compute#healthCheckList", + "description": "Type of resource.", + "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": { + "properties": { + "message": { "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the interconnect attachment to delete.", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." }, - "region": { - "location": "path", - "type": "string", - "description": "Name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "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])?))", + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request." + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } }, - "description": "Deletes the specified interconnect attachment." + "type": "object", + "description": "[Output Only] Informational warning message." }, - "get": { - "parameterOrder": [ - "project", - "region", - "interconnectAttachment" - ], - "id": "compute.interconnectAttachments.get", - "httpMethod": "GET", - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "description": "Returns the specified interconnect attachment.", - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - }, - "interconnectAttachment": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string", - "description": "Name of the interconnect attachment to return." - }, - "region": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request." - } + "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" + } + } + }, + "type": "object", + "id": "HealthCheckList", + "description": "Contains a list of HealthCheck resources." + }, + "AllocationSpecificSKUAllocationReservedInstanceProperties": { + "description": "Properties of the SKU instances being reserved. Next ID: 9", + "type": "object", + "id": "AllocationSpecificSKUAllocationReservedInstanceProperties", + "properties": { + "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" + }, + "machineType": { + "type": "string", + "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." + }, + "guestAccelerators": { + "description": "Specifies accelerator type and count.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "minCpuPlatform": { + "type": "string", + "description": "Minimum cpu platform the reservation." + }, + "localSsds": { + "description": "Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.", + "items": { + "$ref": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk" }, - "response": { - "$ref": "InterconnectAttachment" + "type": "array" + } + } + }, + "ManagedInstanceVersion": { + "properties": { + "name": { + "type": "string", + "description": "[Output Only] Name of the version." + }, + "instanceTemplate": { + "description": "[Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.", + "type": "string" + } + }, + "type": "object", + "id": "ManagedInstanceVersion" + }, + "BackendBucketCdnPolicyCacheKeyPolicy": { + "id": "BackendBucketCdnPolicyCacheKeyPolicy", + "description": "Message containing what to include in the cache key for a request for Cloud CDN.", + "properties": { + "queryStringWhitelist": { + "items": { + "type": "string" }, - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "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" }, - "aggregatedList": { - "id": "compute.interconnectAttachments.aggregatedList", - "httpMethod": "GET", - "path": "projects/{project}/aggregated/interconnectAttachments", - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "includeHttpHeaders": { + "items": { + "type": "string" + }, + "description": "Allows HTTP request headers (by name) to be used in the cache key.", + "type": "array" + } + }, + "type": "object" + }, + "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "type": "object", + "properties": { + "shortName": { + "type": "string", + "description": "[Output Only] The short name of the firewall policy." + }, + "type": { + "enum": [ + "HIERARCHY", + "NETWORK", + "NETWORK_REGIONAL", + "UNSPECIFIED" ], - "response": { - "$ref": "InterconnectAttachmentAggregatedList" + "type": "string", + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "rules": { + "type": "array", + "items": { + "$ref": "FirewallPolicyRule" }, - "parameters": { - "filter": { - "location": "query", + "description": "The rules that apply to the network." + }, + "displayName": { + "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", + "type": "string" + }, + "name": { + "description": "[Output Only] The name of the firewall policy.", + "type": "string" + } + }, + "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + }, + "SubnetworksScopedList": { + "id": "SubnetworksScopedList", + "properties": { + "subnetworks": { + "type": "array", + "items": { + "$ref": "Subnetwork" + }, + "description": "A list of subnetworks contained in this scope." + }, + "warning": { + "description": "An informational warning that appears when the list of addresses is empty.", + "type": "object", + "properties": { + "code": { "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { + "message": { "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "location": "query", - "default": "500", - "type": "integer", - "format": "uint32" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "includeAllScopes": { - "location": "query", - "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.", - "type": "boolean" + "description": "[Output Only] A human-readable description of the warning code." }, - "pageToken": { + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + } + } + } + }, + "type": "object" + }, + "PublicDelegatedPrefixesScopedList": { + "id": "PublicDelegatedPrefixesScopedList", + "properties": { + "warning": { + "description": "[Output Only] Informational warning which replaces the list of public delegated prefixes when the list is empty.", + "type": "object", + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "orderBy": { - "location": "query", + "message": { "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + "description": "[Output Only] A human-readable description of the warning code." + }, + "data": { + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } - }, - "flatPath": "projects/{project}/aggregated/interconnectAttachments", - "description": "Retrieves an aggregated list of interconnect attachments." + } }, - "patch": { - "request": { - "$ref": "InterconnectAttachment" - }, - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "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.", - "response": { - "$ref": "Operation" + "publicDelegatedPrefixes": { + "items": { + "$ref": "PublicDelegatedPrefix" }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "id": "compute.interconnectAttachments.patch", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "region", - "interconnectAttachment" - ], - "httpMethod": "PATCH", - "parameters": { - "region": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "Name of the region scoping this request.", - "type": "string" - }, - "interconnectAttachment": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name of the interconnect attachment to patch." - }, - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - } - } + "type": "array", + "description": "[Output Only] A list of PublicDelegatedPrefixes contained in this scope." + } + }, + "type": "object" + }, + "Uint128": { + "id": "Uint128", + "properties": { + "high": { + "type": "string", + "format": "uint64" }, - "list": { - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "low": { + "type": "string", + "format": "uint64" + } + }, + "type": "object" + }, + "HTTP2HealthCheck": { + "type": "object", + "id": "HTTP2HealthCheck", + "properties": { + "portName": { + "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "type": "string" + }, + "port": { + "type": "integer", + "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "format": "int32" + }, + "requestPath": { + "type": "string", + "description": "The request path of the HTTP/2 health check request. The default value is /." + }, + "response": { + "type": "string", + "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII." + }, + "proxyHeader": { + "enum": [ + "NONE", + "PROXY_V1" ], - "response": { - "$ref": "InterconnectAttachmentList" - }, - "parameters": { - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "project": { - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "region": { - "description": "Name of the region for this request.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - }, - "maxResults": { - "default": "500", - "location": "query", - "type": "integer", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32" - } - }, - "id": "compute.interconnectAttachments.list", - "httpMethod": "GET", - "description": "Retrieves the list of interconnect attachments contained within the specified region.", - "parameterOrder": [ - "project", - "region" + "type": "string", + "enumDescriptions": [ + "", + "" ], - "path": "projects/{project}/regions/{region}/interconnectAttachments" + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE." }, - "insert": { - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "host": { + "type": "string", + "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used." + }, + "portSpecification": { + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" ], - "parameterOrder": [ - "project", - "region" + "enumDescriptions": [ + "The port number in port is used for health checking.", + "The portName is used for health checking.", + "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." ], - "path": "projects/{project}/regions/{region}/interconnectAttachments", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", - "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.", - "request": { - "$ref": "InterconnectAttachment" - }, - "id": "compute.interconnectAttachments.insert", - "parameters": { - "region": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "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])?))", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "type": "boolean", - "location": "query" - } - }, - "httpMethod": "POST" + "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields.", + "type": "string" } } }, - "vpnGateways": { - "methods": { - "list": { - "id": "compute.vpnGateways.list", - "flatPath": "projects/{project}/regions/{region}/vpnGateways", - "parameterOrder": [ - "project", - "region" + "LocalizedMessage": { + "type": "object", + "id": "LocalizedMessage", + "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" + }, + "message": { + "type": "string", + "description": "The localized error message in the above locale." + } + }, + "description": "Provides a localized error message that is safe to return to the user which can be attached to an RPC error." + }, + "FileContentBuffer": { + "id": "FileContentBuffer", + "properties": { + "fileType": { + "type": "string", + "description": "The file type of source file.", + "enumDescriptions": [ + "", + "", + "" ], - "path": "projects/{project}/regions/{region}/vpnGateways", - "description": "Retrieves a list of VPN gateways available to the specified project and region.", - "httpMethod": "GET", - "response": { - "$ref": "VpnGatewayList" - }, - "parameters": { - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "region": { - "type": "string", - "required": true, - "description": "Name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "maxResults": { - "default": "500", - "location": "query", - "minimum": "0", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "BIN", + "UNDEFINED", + "X509" ] }, - "delete": { - "parameterOrder": [ - "project", - "region", - "vpnGateway" - ], - "httpMethod": "DELETE", - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "required": true, - "location": "path", - "type": "string" - }, - "vpnGateway": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the VPN gateway to delete.", - "required": true, - "location": "path" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - } - }, - "description": "Deletes the specified VPN gateway.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "response": { - "$ref": "Operation" - }, - "id": "compute.vpnGateways.delete", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}" + "content": { + "type": "string", + "description": "The raw content in the secure keys file.", + "format": "byte" + } + }, + "type": "object" + }, + "ResourcePolicyHourlyCycle": { + "id": "ResourcePolicyHourlyCycle", + "properties": { + "hoursInCycle": { + "description": "Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle.", + "format": "int32", + "type": "integer" }, - "getStatus": { - "parameters": { - "project": { - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "vpnGateway": { - "required": true, - "type": "string", - "description": "Name of the VPN gateway to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "region": { - "location": "path", - "description": "Name of the region for this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", - "id": "compute.vpnGateways.getStatus", - "httpMethod": "GET", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", - "parameterOrder": [ - "project", - "region", - "vpnGateway" - ], - "description": "Returns the status for the specified VPN gateway.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "VpnGatewaysGetStatusResponse" - } + "duration": { + "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.", + "type": "string" }, - "insert": { - "description": "Creates a VPN gateway in the specified project and region using the data included in the request.", - "id": "compute.vpnGateways.insert", - "httpMethod": "POST", - "flatPath": "projects/{project}/regions/{region}/vpnGateways", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path" - }, - "region": { - "location": "path", - "description": "Name of the region for this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + } + }, + "description": "Time window specified for hourly operations.", + "type": "object" + }, + "SecurityPolicyRuleRateLimitOptions": { + "type": "object", + "id": "SecurityPolicyRuleRateLimitOptions", + "properties": { + "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" + }, + "conformAction": { + "description": "Action to take for requests that are under the configured rate limit threshold. Valid option is \"allow\" only.", + "type": "string" + }, + "rateLimitThreshold": { + "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", + "description": "Threshold at which to begin ratelimiting." + }, + "exceedAction": { + "type": "string", + "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." + }, + "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.", + "format": "int32", + "type": "integer" + }, + "exceedRedirectOptions": { + "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.", + "$ref": "SecurityPolicyRuleRedirectOptions" + }, + "banThreshold": { + "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", + "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'." + }, + "enforceOnKey": { + "type": "string", + "enum": [ + "ALL", + "HTTP_COOKIE", + "HTTP_HEADER", + "IP", + "XFF_IP" ], - "request": { - "$ref": "VpnGateway" - }, - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/regions/{region}/vpnGateways", - "parameterOrder": [ - "project", - "region" + "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 this field 'enforce_on_key' 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 \"enforce_on_key_name\". 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 \"enforce_on_key_name\". 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. ", + "enumDescriptions": [ + "", + "", + "", + "", + "" ] + } + } + }, + "ManagedInstance": { + "properties": { + "preservedStateFromPolicy": { + "$ref": "PreservedState", + "description": "[Output Only] Preserved state generated based on stateful policy for this instance." }, - "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "id": { + "type": "string", + "description": "[Output only] The unique identifier for this resource. This field is empty when instance does not exist.", + "format": "uint64" + }, + "instanceHealth": { + "type": "array", + "description": "[Output Only] Health state of the instance per health-check.", + "items": { + "$ref": "ManagedInstanceInstanceHealth" + } + }, + "lastAttempt": { + "description": "[Output Only] Information about the last attempt to create or delete the instance.", + "$ref": "ManagedInstanceLastAttempt" + }, + "currentAction": { + "enum": [ + "ABANDONING", + "CREATING", + "CREATING_WITHOUT_RETRIES", + "DELETING", + "NONE", + "RECREATING", + "REFRESHING", + "RESTARTING", + "RESUMING", + "STARTING", + "STOPPING", + "SUSPENDING", + "VERIFYING" ], - "parameterOrder": [ - "project", - "region", - "vpnGateway" + "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": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.", - "response": { - "$ref": "VpnGateway" - }, - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "parameters": { - "region": { - "description": "Name of the region for this request.", - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true - }, - "vpnGateway": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "type": "string", - "required": true, - "description": "Name of the VPN gateway to return." - } - }, - "id": "compute.vpnGateways.get", - "httpMethod": "GET", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}" + "type": "string", + "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. " }, - "aggregatedList": { - "id": "compute.vpnGateways.aggregatedList", - "httpMethod": "GET", - "response": { - "$ref": "VpnGatewayAggregatedList" - }, - "parameters": { - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "type": "integer", - "minimum": "0", - "default": "500" - }, - "includeAllScopes": { - "type": "boolean", - "location": "query", - "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." - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - } - }, - "parameterOrder": [ - "project" + "instance": { + "type": "string", + "description": "[Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created." + }, + "preservedStateFromConfig": { + "description": "[Output Only] Preserved state applied from per-instance config for this instance.", + "$ref": "PreservedState" + }, + "instanceStatus": { + "description": "[Output Only] The status of the instance. This field is empty when the instance does not exist.", + "type": "string", + "enumDescriptions": [ + "The Nanny 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": "Retrieves an aggregated list of VPN gateways.", - "flatPath": "projects/{project}/aggregated/vpnGateways", - "path": "projects/{project}/aggregated/vpnGateways", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "DEPROVISIONING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" ] }, - "setLabels": { - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", - "id": "compute.vpnGateways.setLabels", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Operation" + "version": { + "description": "[Output Only] Intended version of this instance.", + "$ref": "ManagedInstanceVersion" + } + }, + "type": "object", + "description": "A Managed Instance resource.", + "id": "ManagedInstance" + }, + "PacketMirroringAggregatedList": { + "properties": { + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "httpMethod": "POST", - "parameters": { - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path" - }, - "region": { - "description": "The region for this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "type": "array" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "default": "compute#packetMirroringAggregatedList", + "description": "Type of resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } }, - "resource": { - "required": true, + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "location": "path" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" } }, - "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "type": "object" }, - "testIamPermissions": { - "id": "compute.vpnGateways.testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", - "response": { - "$ref": "TestPermissionsResponse" - }, - "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" + "items": { + "additionalProperties": { + "$ref": "PacketMirroringsScopedList", + "description": "Name of the scope containing this set of packetMirrorings." }, - "parameterOrder": [ - "project", - "region", - "resource" + "description": "A list of PacketMirroring resources.", + "type": "object" + } + }, + "id": "PacketMirroringAggregatedList", + "description": "Contains a list of packetMirrorings.", + "type": "object" + }, + "InstanceGroupsListInstancesRequest": { + "properties": { + "instanceState": { + "enum": [ + "ALL", + "RUNNING" ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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": "Returns permissions that a caller has on the specified resource.", - "parameters": { - "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])?))", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path" - }, - "resource": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string", - "location": "path", - "description": "Name or id of the resource for this request." - }, - "region": { - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the region for this request.", - "location": "path" - } - } + "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": "object", + "id": "InstanceGroupsListInstancesRequest" + }, + "ServiceAttachmentConsumerProjectLimit": { + "type": "object", + "id": "ServiceAttachmentConsumerProjectLimit", + "properties": { + "projectIdOrNum": { + "description": "The project id or number for the project to set the limit for.", + "type": "string" + }, + "connectionLimit": { + "description": "The value of the limit to set.", + "format": "uint32", + "type": "integer" } } }, - "regionTargetHttpProxies": { - "methods": { - "insert": { - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "description": "Name of the region scoping this request." - }, - "project": { - "required": true, - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "ResourcePolicyWeeklyCycleDayOfWeek": { + "properties": { + "duration": { + "type": "string", + "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario." + }, + "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" + }, + "day": { + "enum": [ + "FRIDAY", + "INVALID", + "MONDAY", + "SATURDAY", + "SUNDAY", + "THURSDAY", + "TUESDAY", + "WEDNESDAY" ], - "response": { - "$ref": "Operation" + "type": "string", + "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.", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "id": "ResourcePolicyWeeklyCycleDayOfWeek", + "type": "object" + }, + "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].", + "items": { + "type": "string" }, - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", - "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.", - "path": "projects/{project}/regions/{region}/targetHttpProxies", - "request": { - "$ref": "TargetHttpProxy" + "type": "array" + } + } + }, + "NotificationEndpointList": { + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "NotificationEndpoint" }, - "id": "compute.regionTargetHttpProxies.insert", - "httpMethod": "POST" + "description": "A list of NotificationEndpoint resources." }, - "delete": { - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "description": "Deletes the specified TargetHttpProxy resource.", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "region": { - "location": "path", - "description": "Name of the region scoping this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "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}", - "type": "string", - "location": "path", - "required": true - } - }, - "id": "compute.regionTargetHttpProxies.delete", - "parameterOrder": [ - "project", - "region", - "targetHttpProxy" - ], - "httpMethod": "DELETE" + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." }, - "get": { - "response": { - "$ref": "TargetHttpProxy" - }, - "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "Name of the region scoping this request.", - "location": "path", - "required": true + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "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])?))", + "code": { "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true - }, - "targetHttpProxy": { - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the TargetHttpProxy resource to return." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } + } + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "default": "compute#notificationEndpointList", + "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", + "type": "string" + } + }, + "id": "NotificationEndpointList", + "type": "object" + }, + "RegionInstanceGroupManagersCreateInstancesRequest": { + "properties": { + "instances": { + "items": { + "$ref": "PerInstanceConfig" }, - "id": "compute.regionTargetHttpProxies.get", - "parameterOrder": [ - "project", - "region", - "targetHttpProxy" - ], - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET" + "description": "[Required] List of specifications of per-instance configs.", + "type": "array" + } + }, + "type": "object", + "description": "RegionInstanceGroupManagers.createInstances", + "id": "RegionInstanceGroupManagersCreateInstancesRequest" + }, + "SecurityPolicy": { + "properties": { + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." }, - "list": { - "parameterOrder": [ - "project", - "region" + "fingerprint": { + "type": "string", + "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.", + "format": "byte" + }, + "adaptiveProtectionConfig": { + "$ref": "SecurityPolicyAdaptiveProtectionConfig" + }, + "kind": { + "type": "string", + "default": "compute#securityPolicy", + "description": "[Output only] Type of the resource. Always compute#securityPolicyfor security policies" + }, + "ddosProtectionConfig": { + "$ref": "SecurityPolicyDdosProtectionConfig" + }, + "recaptchaOptionsConfig": { + "$ref": "SecurityPolicyRecaptchaOptionsConfig" + }, + "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. This field can be set only at resource creation time.", + "type": "string", + "enum": [ + "CLOUD_ARMOR", + "CLOUD_ARMOR_EDGE", + "CLOUD_ARMOR_NETWORK" ], - "parameters": { - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "maxResults": { - "type": "integer", - "default": "500", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "format": "uint32" - } - }, - "id": "compute.regionTargetHttpProxies.list", - "path": "projects/{project}/regions/{region}/targetHttpProxies", - "response": { - "$ref": "TargetHttpProxyList" - }, - "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.", - "httpMethod": "GET", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enumDescriptions": [ + "", + "", + "" ] }, - "setUrlMap": { - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "description": "Changes the URL map for TargetHttpProxy.", - "request": { - "$ref": "UrlMapReference" - }, - "id": "compute.regionTargetHttpProxies.setUrlMap", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "region", - "targetHttpProxy" - ], - "parameters": { - "region": { - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request." - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the TargetHttpProxy to set a URL map for.", - "location": "path" - } + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "advancedOptionsConfig": { + "$ref": "SecurityPolicyAdvancedOptionsConfig" + }, + "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" + }, + "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 security policy, a default rule with action \"allow\" will be added.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRule" } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" } - } + }, + "type": "object", + "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." }, - "regionSslCertificates": { - "methods": { - "delete": { - "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", - "description": "Deletes the specified SslCertificate resource in the region.", - "httpMethod": "DELETE", - "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", - "parameterOrder": [ - "project", - "region", - "sslCertificate" + "SavedAttachedDisk": { + "id": "SavedAttachedDisk", + "properties": { + "storageBytes": { + "type": "string", + "description": "[Output Only] A size of the storage used by the disk's snapshot by this machine image.", + "format": "int64" + }, + "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": { + "$ref": "CustomerEncryptionKey", + "description": "The encryption key for the disk." + }, + "interface": { + "enumDescriptions": [ + "", + "" ], - "id": "compute.regionSslCertificates.delete", - "parameters": { - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "required": true, - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - }, - "sslCertificate": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the SslCertificate resource to delete." - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "type": "string" - } - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.", + "type": "string", + "enum": [ + "NVME", + "SCSI" ] }, - "get": { - "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "mode": { + "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." ], - "id": "compute.regionSslCertificates.get", - "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.", - "parameterOrder": [ - "project", - "region", - "sslCertificate" + "description": "The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY.", + "enum": [ + "READ_ONLY", + "READ_WRITE" ], - "httpMethod": "GET", - "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", - "response": { - "$ref": "SslCertificate" - }, - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "location": "path", - "type": "string", - "required": true - }, - "sslCertificate": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "type": "string", - "description": "Name of the SslCertificate resource to return." - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path", - "description": "Project ID for this request." - } - } + "type": "string" }, - "list": { - "path": "projects/{project}/regions/{region}/sslCertificates", - "response": { - "$ref": "SslCertificateList" + "source": { + "type": "string", + "description": "Specifies a URL of the disk attached to the source instance." + }, + "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" + }, + "index": { + "format": "int32", + "description": "Specifies zero-based index of the disk that is attached to the source instance.", + "type": "integer" + }, + "diskType": { + "type": "string", + "description": "[Output Only] URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd" + }, + "licenses": { + "type": "array", + "items": { + "type": "string" }, - "flatPath": "projects/{project}/regions/{region}/sslCertificates", - "parameterOrder": [ - "project", - "region" + "description": "[Output Only] Any valid publicly visible licenses." + }, + "diskSizeGb": { + "type": "string", + "format": "int64", + "description": "The size of the disk in base-2 GB." + }, + "deviceName": { + "type": "string", + "description": "Specifies the name of the disk attached to the source instance." + }, + "type": { + "type": "string", + "description": "Specifies the type of the attached disk, either SCRATCH or PERSISTENT.", + "enumDescriptions": [ + "", + "" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "PERSISTENT", + "SCRATCH" + ] + }, + "storageBytesStatus": { + "enum": [ + "UPDATING", + "UP_TO_DATE" ], - "parameters": { - "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])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path", - "type": "string" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "type": "string", - "location": "path", - "required": true - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "maxResults": { - "minimum": "0", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "type": "integer", - "default": "500" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - } - }, - "httpMethod": "GET", - "id": "compute.regionSslCertificates.list", - "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region." + "type": "string", + "enumDescriptions": [ + "", + "" + ], + "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." }, - "insert": { - "request": { - "$ref": "SslCertificate" - }, - "response": { - "$ref": "Operation" + "kind": { + "type": "string", + "default": "compute#savedAttachedDisk", + "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks." + } + }, + "description": "DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource.", + "type": "object" + }, + "NetworksUpdatePeeringRequest": { + "type": "object", + "properties": { + "networkPeering": { + "$ref": "NetworkPeering" + } + }, + "id": "NetworksUpdatePeeringRequest" + }, + "InstanceTemplateList": { + "id": "InstanceTemplateList", + "description": "A list of instance templates.", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "items": { + "type": "array", + "items": { + "$ref": "InstanceTemplate" }, - "parameters": { - "region": { - "description": "Name of the region scoping this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string" - }, - "project": { - "location": "path", - "required": true, + "description": "A list of InstanceTemplate resources." + }, + "kind": { + "default": "compute#instanceTemplateList", + "type": "string", + "description": "[Output Only] The resource type, which is always compute#instanceTemplatesListResponse for instance template lists." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "warning": { + "type": "object", + "properties": { + "code": { "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", + "message": { "type": "string", - "location": "query" + "description": "[Output Only] A human-readable description of the warning code." + }, + "data": { + "type": "array", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } }, - "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": "[Output Only] Informational warning message." + } + }, + "type": "object" + }, + "ResourcePolicyWeeklyCycle": { + "description": "Time window specified for weekly operations.", + "properties": { + "dayOfWeeks": { + "items": { + "$ref": "ResourcePolicyWeeklyCycleDayOfWeek" + }, + "type": "array", + "description": "Up to 7 intervals/windows, one for each day of the week." + } + }, + "id": "ResourcePolicyWeeklyCycle", + "type": "object" + }, + "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.", + "properties": { + "logType": { + "type": "string", + "enum": [ + "ADMIN_READ", + "DATA_READ", + "DATA_WRITE", + "LOG_TYPE_UNSPECIFIED" ], - "id": "compute.regionSslCertificates.insert", - "parameterOrder": [ - "project", - "region" + "enumDescriptions": [ + "Admin reads. Example: CloudIAM getIamPolicy", + "Data reads. Example: CloudSQL Users list", + "Data writes. Example: CloudSQL Users create", + "Default case. Should never be this." ], - "path": "projects/{project}/regions/{region}/sslCertificates", - "flatPath": "projects/{project}/regions/{region}/sslCertificates", - "httpMethod": "POST" + "description": "The log type that this config enables." + }, + "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": { + "type": "boolean", + "description": "This is deprecated and has no effect. Do not use." } - } + }, + "type": "object", + "id": "AuditLogConfig" }, - "regionOperations": { - "methods": { - "list": { - "httpMethod": "GET", - "parameterOrder": [ - "project", - "region" - ], - "path": "projects/{project}/regions/{region}/operations", - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "region": { - "location": "path", - "required": true, - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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", - "location": "query", - "format": "uint32", - "type": "integer", - "minimum": "0" - }, - "project": { - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - } + "PacketMirroringMirroredResourceInfoInstanceInfo": { + "properties": { + "canonicalUrl": { + "description": "[Output Only] Unique identifier for the instance; defined by the server.", + "type": "string" + }, + "url": { + "description": "Resource URL to the virtual machine instance which is being mirrored.", + "type": "string" + } + }, + "type": "object", + "id": "PacketMirroringMirroredResourceInfoInstanceInfo" + }, + "TestPermissionsResponse": { + "type": "object", + "properties": { + "permissions": { + "items": { + "type": "string" }, - "response": { - "$ref": "OperationList" + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + "type": "array" + } + }, + "id": "TestPermissionsResponse" + }, + "CustomerEncryptionKeyProtectedDisk": { + "properties": { + "diskEncryptionKey": { + "description": "Decrypts data associated with the disk with a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + }, + "source": { + "type": "string", + "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": "object", + "id": "CustomerEncryptionKeyProtectedDisk" + }, + "NetworkEndpointWithHealthStatus": { + "id": "NetworkEndpointWithHealthStatus", + "properties": { + "networkEndpoint": { + "$ref": "NetworkEndpoint", + "description": "[Output only] The network endpoint;" + }, + "healths": { + "type": "array", + "items": { + "$ref": "HealthStatusForNetworkEndpoint" }, - "id": "compute.regionOperations.list", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": "[Output only] The health status of network endpoint;" + } + }, + "type": "object" + }, + "AttachedDisk": { + "type": "object", + "id": "AttachedDisk", + "description": "An instance-attached disk resource.", + "properties": { + "licenses": { + "description": "[Output Only] Any valid publicly visible licenses.", + "type": "array", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks.", + "default": "compute#attachedDisk" + }, + "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" + }, + "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.", + "enum": [ + "NVME", + "SCSI" ], - "description": "Retrieves a list of Operation resources contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/operations" + "enumDescriptions": [ + "", + "" + ], + "type": "string" }, - "wait": { - "httpMethod": "POST", - "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`. ", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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" + }, + "type": { + "type": "string", + "enumDescriptions": [ + "", + "" ], - "parameters": { - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "operation": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "location": "path", - "description": "Name of the Operations resource to return." - }, - "region": { - "location": "path", - "type": "string", - "description": "Name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait", - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/regions/{region}/operations/{operation}/wait", - "id": "compute.regionOperations.wait", - "parameterOrder": [ - "project", - "region", - "operation" + "description": "Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.", + "enum": [ + "PERSISTENT", + "SCRATCH" ] }, - "get": { - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/regions/{region}/operations/{operation}", - "id": "compute.regionOperations.get", - "flatPath": "projects/{project}/regions/{region}/operations/{operation}", - "description": "Retrieves the specified region-specific Operations resource.", - "parameters": { - "operation": { - "required": true, - "description": "Name of the Operations resource to return.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path" - }, - "region": { - "description": "Name of the region for this request.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "project": { - "location": "path", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - } - }, - "httpMethod": "GET", - "parameterOrder": [ - "project", - "region", - "operation" + "deviceName": { + "type": "string", + "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." + }, + "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.", + "enum": [ + "READ_ONLY", + "READ_WRITE" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "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." + ], + "type": "string" }, - "delete": { - "flatPath": "projects/{project}/regions/{region}/operations/{operation}", - "parameters": { - "region": { - "type": "string", - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path" - }, - "project": { - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "operation": { - "type": "string", - "required": true, - "location": "path", - "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}" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + } + }, + "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" + }, + "diskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "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." + }, + "autoDelete": { + "type": "boolean", + "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance)." + }, + "initializeParams": { + "$ref": "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 property is mutually exclusive with the source property; you can only define one or the other, but not both." + }, + "index": { + "type": "integer", + "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.", + "format": "int32" + }, + "diskSizeGb": { + "description": "The size of the disk in GB.", + "format": "int64", + "type": "string" + }, + "shieldedInstanceInitialState": { + "description": "[Output Only] shielded vm initial state stored on disk", + "$ref": "InitialStateConfig" + }, + "architecture": { + "type": "string", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" ], - "httpMethod": "DELETE", - "description": "Deletes the specified region-specific Operations resource.", - "parameterOrder": [ - "project", - "region", - "operation" + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "id": "compute.regionOperations.delete", - "path": "projects/{project}/regions/{region}/operations/{operation}" + "description": "[Output Only] The architecture of the attached disk. Valid values are ARM64 or X86_64." } } }, - "targetVpnGateways": { - "methods": { - "aggregatedList": { - "response": { - "$ref": "TargetVpnGatewayAggregatedList" - }, - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}/aggregated/targetVpnGateways", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" + "NodeGroupList": { + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "type": "object", + "properties": { + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "code": { "type": "string", - "location": "query" - }, - "includeAllScopes": { - "location": "query", - "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.", - "type": "boolean" - }, - "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" - }, - "maxResults": { - "format": "uint32", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "location": "query", - "default": "500" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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.", - "required": true, + "message": { "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." } }, - "path": "projects/{project}/aggregated/targetVpnGateways", - "id": "compute.targetVpnGateways.aggregatedList", - "httpMethod": "GET", - "description": "Retrieves an aggregated list of target VPN gateways." + "description": "[Output Only] Informational warning message." }, - "delete": { - "response": { - "$ref": "Operation" - }, - "description": "Deletes the specified target VPN gateway.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "default": "compute#nodeGroupList", + "description": "[Output Only] Type of resource.Always compute#nodeGroupList for lists of node groups.", + "type": "string" + } + }, + "type": "object", + "description": "Contains a list of nodeGroups.", + "id": "NodeGroupList" + }, + "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { + "properties": { + "interface": { + "enumDescriptions": [ + "", + "" ], - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", - "httpMethod": "DELETE", - "parameters": { - "region": { - "description": "Name of the region for this request.", - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "targetVpnGateway": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the target VPN gateway to delete.", - "location": "path", - "type": "string" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "id": "compute.targetVpnGateways.delete", - "parameterOrder": [ - "project", - "region", - "targetVpnGateway" + "type": "string", + "enum": [ + "NVME", + "SCSI" ], - "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}" + "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." }, - "get": { - "parameterOrder": [ - "project", - "region", - "targetVpnGateway" - ], - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", - "parameters": { - "targetVpnGateway": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the target VPN gateway to return.", - "required": true, - "location": "path", - "type": "string" - }, - "region": { - "location": "path", - "description": "Name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "project": { - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "httpMethod": "GET", - "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", - "response": { - "$ref": "TargetVpnGateway" - }, - "id": "compute.targetVpnGateways.get", - "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "diskSizeGb": { + "type": "string", + "format": "int64", + "description": "Specifies the size of the disk in base-2 GB." + } + }, + "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", + "type": "object" + }, + "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus": { + "id": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus", + "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": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "lastRunStartTime": { + "description": "[Output Only] The last time the schedule successfully ran. The timestamp is an RFC3339 string.", + "type": "string" + } + }, + "type": "object" + }, + "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.", + "id": "InterconnectLocation", + "properties": { + "continent": { + "type": "string", + "enum": [ + "AFRICA", + "ASIA_PAC", + "C_AFRICA", + "C_ASIA_PAC", + "C_EUROPE", + "C_NORTH_AMERICA", + "C_SOUTH_AMERICA", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" ], - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", - "parameters": { - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "description": "Name of the region for this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "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])?))", - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request." - } - }, - "id": "compute.targetVpnGateways.insert", - "parameterOrder": [ - "project", - "region" + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.", - "path": "projects/{project}/regions/{region}/targetVpnGateways", - "httpMethod": "POST", - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "TargetVpnGateway" - } + "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA " }, - "list": { - "path": "projects/{project}/regions/{region}/targetVpnGateways", - "response": { - "$ref": "TargetVpnGatewayList" + "facilityProvider": { + "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the resource." + }, + "city": { + "type": "string", + "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\"." + }, + "description": { + "type": "string", + "description": "[Output Only] An optional description of the resource." + }, + "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.", + "format": "uint64", + "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" + }, + "regionInfos": { + "items": { + "$ref": "InterconnectLocationRegionInfo" }, - "id": "compute.targetVpnGateways.list", - "parameterOrder": [ - "project", - "region" + "type": "array", + "description": "[Output Only] A list of InterconnectLocation.RegionInfo objects, that describe parameters pertaining to the relation between this InterconnectLocation and various Google Cloud regions." + }, + "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. ", + "enumDescriptions": [ + "The InterconnectLocation is available for provisioning new Interconnects.", + "The InterconnectLocation is closed for provisioning new Interconnects." ], - "httpMethod": "GET", - "parameters": { - "maxResults": { - "default": "500", - "format": "uint32", - "type": "integer", - "minimum": "0", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "region": { - "location": "path", - "description": "Name of the region for this request.", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - } - }, - "description": "Retrieves a list of target VPN gateways available to the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string", + "enum": [ + "AVAILABLE", + "CLOSED" ] + }, + "address": { + "type": "string", + "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character." + }, + "peeringdbFacilityId": { + "type": "string", + "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb)." + }, + "supportsPzs": { + "description": "[Output Only] Set to true for locations that support physical zone separation. Defaults to false if the field is not present.", + "type": "boolean" + }, + "facilityProviderFacilityId": { + "type": "string", + "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1)." + }, + "kind": { + "type": "string", + "default": "compute#interconnectLocation", + "description": "[Output Only] Type of the resource. Always compute#interconnectLocation for interconnect locations." } - } + }, + "type": "object" }, - "instances": { - "methods": { - "bulkInsert": { - "response": { - "$ref": "Operation" - }, - "parameters": { - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - }, - "zone": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request." - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert", - "httpMethod": "POST", - "request": { - "$ref": "BulkInsertInstanceResource" - }, - "description": "Creates multiple instances. Count specifies the number of instances to create.", - "parameterOrder": [ - "project", - "zone" - ], - "path": "projects/{project}/zones/{zone}/instances/bulkInsert", - "id": "compute.instances.bulkInsert" + "ServiceAttachmentAggregatedList": { + "type": "object", + "properties": { + "kind": { + "default": "compute#serviceAttachmentAggregatedList", + "type": "string", + "description": "Type of resource." }, - "insert": { - "parameters": { - "project": { - "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "sourceInstanceTemplate": { - "location": "query", - "type": "string", - "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 " - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "zone": { - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request." - } - }, - "id": "compute.instances.insert", - "path": "projects/{project}/zones/{zone}/instances", - "request": { - "$ref": "Instance" - }, - "description": "Creates an instance resource in the specified project using the data included in the request.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone" - ], - "flatPath": "projects/{project}/zones/{zone}/instances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST" + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." }, - "getScreenshot": { - "parameters": { - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "The name of the zone for this request.", - "required": true - }, - "instance": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name of the instance scoping this request.", - "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])?))", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path" - } - }, - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "description": "Returns the screenshot from the specified instance.", - "response": { - "$ref": "Screenshot" - }, - "id": "compute.instances.getScreenshot", - "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot" + "items": { + "description": "A list of ServiceAttachmentsScopedList resources.", + "type": "object", + "additionalProperties": { + "$ref": "ServiceAttachmentsScopedList", + "description": "Name of the scope containing this set of ServiceAttachments." + } }, - "reset": { - "response": { - "$ref": "Operation" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "id": "compute.instances.reset", - "parameters": { - "instance": { + "type": "array" + }, + "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.", + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name of the instance scoping this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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.", - "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "data": { + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" } }, - "parameterOrder": [ - "project", - "zone", - "instance" + "type": "object" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + } + }, + "description": "Contains a list of ServiceAttachmentsScopedList.", + "id": "ServiceAttachmentAggregatedList" + }, + "SslCertificateManagedSslCertificate": { + "description": "Configuration and status of a managed SSL certificate.", + "id": "SslCertificateManagedSslCertificate", + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "[Output only] Status of the managed certificate resource.", + "enum": [ + "ACTIVE", + "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED", + "PROVISIONING", + "PROVISIONING_FAILED", + "PROVISIONING_FAILED_PERMANENTLY", + "RENEWAL_FAILED" ], - "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.", - "path": "projects/{project}/zones/{zone}/instances/{instance}/reset", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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." ] }, - "setServiceAccount": { - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", - "id": "compute.instances.setServiceAccount", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "parameters": { - "instance": { - "description": "Name of the instance resource to start.", - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "requestId": { + "domains": { + "type": "array", + "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).", + "items": { + "type": "string" + } + }, + "domainStatus": { + "description": "[Output only] Detailed statuses of the domains specified for managed certificate resource.", + "additionalProperties": { + "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." + ], + "type": "string", + "enum": [ + "ACTIVE", + "DOMAIN_STATUS_UNSPECIFIED", + "FAILED_CAA_CHECKING", + "FAILED_CAA_FORBIDDEN", + "FAILED_NOT_VISIBLE", + "FAILED_RATE_LIMITED", + "PROVISIONING" + ] + }, + "type": "object" + } + } + }, + "InstanceGroup": { + "type": "object", + "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.", + "properties": { + "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])?", + "type": "string", + "annotations": { + "required": [ + "compute.instanceGroups.insert" + ] + } + }, + "region": { + "description": "[Output Only] The URL of the region where the instance group is located (for regional resources).", + "type": "string" + }, + "size": { + "description": "[Output Only] The total number of instances in the instance group.", + "type": "integer", + "format": "int32" + }, + "namedPorts": { + "type": "array", + "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. ", + "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": { + "type": "string", + "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.", + "format": "byte" + }, + "kind": { + "type": "string", + "default": "compute#instanceGroup", + "description": "[Output Only] The resource type, which is always compute#instanceGroup for instance groups." + }, + "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" + }, + "zone": { + "description": "[Output Only] The URL of the zone where the instance group is located (for zonal resources).", + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this instance group in RFC3339 text format.", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] A unique identifier for this instance group, generated by the server.", + "format": "uint64" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] The URL for this instance group. The server generates this URL." + } + } + }, + "InstanceGroupManagersScopedList": { + "type": "object", + "id": "InstanceGroupManagersScopedList", + "properties": { + "warning": { + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + } }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "description": "The name of the zone for this request.", + "message": { "type": "string", - "required": true + "description": "[Output Only] A human-readable description of the warning code." } }, - "request": { - "$ref": "InstancesSetServiceAccountRequest" + "type": "object", + "description": "[Output Only] The warning that replaces the list of managed instance groups when the list is empty." + }, + "instanceGroupManagers": { + "items": { + "$ref": "InstanceGroupManager" }, - "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "response": { - "$ref": "Operation" - } + "description": "[Output Only] The list of managed instance groups that are contained in the specified project and zone.", + "type": "array" + } + } + }, + "InstancesSetLabelsRequest": { + "id": "InstancesSetLabelsRequest", + "type": "object", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" }, - "update": { - "request": { - "$ref": "Instance" + "labelFingerprint": { + "type": "string", + "format": "byte", + "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." + } + } + }, + "SourceInstanceProperties": { + "type": "object", + "description": "DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field.", + "id": "SourceInstanceProperties", + "properties": { + "guestAccelerators": { + "items": { + "$ref": "AcceleratorConfig" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "type": "array", + "description": "A list of guest accelerator cards' type and count to use for instances created from this machine image." + }, + "canIpForward": { + "type": "boolean", + "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." + }, + "serviceAccounts": { + "type": "array", + "items": { + "$ref": "ServiceAccount" }, - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", - "id": "compute.instances.update", - "path": "projects/{project}/zones/{zone}/instances/{instance}", - "parameters": { - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string", - "description": "The name of the zone for this request." - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "instance": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the instance resource to update.", - "required": true, - "type": "string" - }, - "minimalAction": { - "location": "query", - "enumDescriptions": [ - "", - "No changes can be made to the instance.", - "The instance will not restart.", - "The instance will restart." - ], - "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.", - "enum": [ - "INVALID", - "NO_EFFECT", - "REFRESH", - "RESTART" - ], - "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])?))", - "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request." - }, - "mostDisruptiveAllowedAction": { - "location": "query", - "enumDescriptions": [ - "", - "No changes can be made to the instance.", - "The instance will not restart.", - "The instance will restart." - ], - "type": "string", - "enum": [ - "INVALID", - "NO_EFFECT", - "REFRESH", - "RESTART" - ], - "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." - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "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.", - "httpMethod": "PUT" + "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." }, - "setDiskAutoDelete": { - "parameterOrder": [ - "project", - "zone", - "instance", - "autoDelete", - "deviceName" - ], - "id": "compute.instances.setDiskAutoDelete", - "parameters": { - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "The name of the zone for this request.", - "type": "string" - }, - "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.", - "location": "query", - "type": "string", - "pattern": "\\w[\\w.-]{0,254}", - "required": true - }, - "autoDelete": { - "location": "query", - "required": true, - "description": "Whether to auto-delete the disk when the instance is deleted.", - "type": "boolean" - }, - "instance": { - "type": "string", - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } - }, - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", - "description": "Sets the auto-delete flag for a disk attached to an instance.", - "response": { - "$ref": "Operation" + "metadata": { + "$ref": "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." + }, + "description": { + "type": "string", + "description": "An optional text description for the instances that are created from this machine image." + }, + "disks": { + "description": "An array of disks that are associated with the instances that are created from this machine image.", + "type": "array", + "items": { + "$ref": "SavedAttachedDisk" + } + }, + "deletionProtection": { + "type": "boolean", + "description": "Whether the instance created from this machine image should be protected against deletion." + }, + "machineType": { + "type": "string", + "description": "The machine type to use for instances that are created from this machine image." + }, + "networkInterfaces": { + "description": "An array of network access configurations for this interface.", + "items": { + "$ref": "NetworkInterface" }, - "httpMethod": "POST", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "type": "array" }, - "startWithEncryptionKey": { - "response": { - "$ref": "Operation" + "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" + }, + "minCpuPlatform": { + "type": "string", + "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." + }, + "scheduling": { + "$ref": "Scheduling", + "description": "Specifies the scheduling options for the instances that are created from this machine image." + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" }, - "parameterOrder": [ - "project", - "zone", - "instance" + "description": "Labels to apply to instances that are created from this machine image." + }, + "keyRevocationActionType": { + "type": "string", + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" ], - "httpMethod": "POST", - "id": "compute.instances.startWithEncryptionKey", - "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey", - "parameters": { - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "required": true, + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." + ] + } + } + }, + "NodeGroupsScopedList": { + "properties": { + "warning": { + "type": "object", + "properties": { + "message": { "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "instance": { - "location": "path", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "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}", - "required": true + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } }, - "request": { - "$ref": "InstancesStartWithEncryptionKeyRequest" - }, - "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey" + "description": "[Output Only] An informational warning that appears when the nodeGroup list is empty." }, - "addResourcePolicies": { - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", - "response": { - "$ref": "Operation" + "nodeGroups": { + "items": { + "$ref": "NodeGroup" }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "array", + "description": "[Output Only] A list of node groups contained in this scope." + } + }, + "type": "object", + "id": "NodeGroupsScopedList" + }, + "HealthCheckServiceReference": { + "id": "HealthCheckServiceReference", + "type": "object", + "properties": { + "healthCheckService": { + "type": "string" + } + }, + "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 " + }, + "ConfidentialInstanceConfig": { + "id": "ConfidentialInstanceConfig", + "type": "object", + "properties": { + "enableConfidentialCompute": { + "description": "Defines whether the instance should have confidential compute enabled.", + "type": "boolean" + } + }, + "description": "A set of Confidential Instance options." + }, + "TargetPoolsAddHealthCheckRequest": { + "type": "object", + "id": "TargetPoolsAddHealthCheckRequest", + "properties": { + "healthChecks": { + "description": "The HttpHealthCheck to add to the target pool.", + "type": "array", + "items": { + "$ref": "HealthCheckReference" + } + } + } + }, + "ResourcePolicyGroupPlacementPolicy": { + "type": "object", + "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality", + "properties": { + "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" + }, + "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.", + "format": "int32", + "type": "integer" + }, + "collocation": { + "type": "string", + "description": "Specifies network collocation", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "InstancesAddResourcePoliciesRequest" - }, - "parameters": { - "instance": { + "enum": [ + "COLLOCATED", + "UNSPECIFIED_COLLOCATION" + ] + } + }, + "id": "ResourcePolicyGroupPlacementPolicy" + }, + "TargetPoolsScopedList": { + "type": "object", + "properties": { + "targetPools": { + "description": "A list of target pools contained in this scope.", + "type": "array", + "items": { + "$ref": "TargetPool" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "properties": { + "code": { "type": "string", - "description": "The instance name for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true - }, - "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])?))", - "description": "Project ID for this request.", - "required": true, - "location": "path", - "type": "string" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "zone": { - "required": true, - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "message": { "type": "string", - "location": "path" + "description": "[Output Only] A human-readable description of the warning code." } - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", - "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.", - "id": "compute.instances.addResourcePolicies", - "parameterOrder": [ - "project", - "zone", - "instance" + } + } + }, + "id": "TargetPoolsScopedList" + }, + "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.", + "properties": { + "deviceName": { + "description": "Specifies the device name of the disk to which the configurations apply to.", + "type": "string" + }, + "instantiateFrom": { + "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": "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. ", + "enum": [ + "ATTACH_READ_ONLY", + "BLANK", + "CUSTOM_IMAGE", + "DEFAULT", + "DO_NOT_INCLUDE", + "SOURCE_IMAGE", + "SOURCE_IMAGE_FAMILY" ] }, - "setScheduling": { - "parameters": { - "project": { - "required": true, - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "instance": { + "customImage": { + "description": "The custom source image to be used to restore this disk when instantiating this instance template.", + "type": "string" + }, + "autoDelete": { + "type": "boolean", + "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": "object" + }, + "InstanceList": { + "id": "InstanceList", + "type": "object", + "description": "Contains a list of instances.", + "properties": { + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "required": true, - "location": "path", - "description": "Instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "zone": { - "description": "The name of the zone for this request.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." } + } + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#instanceList for lists of Instance resources.", + "type": "string", + "default": "compute#instanceList" + }, + "items": { + "type": "array", + "items": { + "$ref": "Instance" }, - "request": { - "$ref": "Scheduling" + "description": "A list of Instance resources." + }, + "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": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + } + } + }, + "VpnGatewayStatus": { + "id": "VpnGatewayStatus", + "type": "object", + "properties": { + "vpnConnections": { + "description": "List of VPN connection for this VpnGateway.", + "items": { + "$ref": "VpnGatewayStatusVpnConnection" }, - "response": { - "$ref": "Operation" + "type": "array" + } + } + }, + "RegionInstanceGroupManagersListInstancesResponse": { + "properties": { + "managedInstances": { + "items": { + "$ref": "ManagedInstance" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", - "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.", - "id": "compute.instances.setScheduling", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", - "httpMethod": "POST", - "parameterOrder": [ - "project", - "zone", - "instance" - ] + "description": "A list of managed instances.", + "type": "array" }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "nextPageToken": { + "type": "string", + "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": "object", + "id": "RegionInstanceGroupManagersListInstancesResponse" + }, + "TargetHttpProxyList": { + "type": "object", + "id": "TargetHttpProxyList", + "description": "A list of TargetHttpProxy resources.", + "properties": { + "warning": { + "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "zone": { + "code": { "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "The name of the zone for this request." + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "instance": { - "location": "path", - "description": "Name of the instance resource to delete.", + "message": { "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true + "description": "[Output Only] A human-readable description of the warning code." } }, - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", - "id": "compute.instances.delete", - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}", - "description": "Deletes the specified Instance resource. For more information, see Deleting an instance.", - "httpMethod": "DELETE" + "type": "object", + "description": "[Output Only] Informational warning message." }, - "getEffectiveFirewalls": { - "parameters": { - "project": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true - }, - "zone": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "location": "path" - }, - "networkInterface": { - "description": "The name of the network interface to get the effective firewalls.", - "type": "string", - "required": true, - "location": "query" - }, - "instance": { - "location": "path", - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "required": true - } + "kind": { + "type": "string", + "default": "compute#targetHttpProxyList", + "description": "Type of resource. Always compute#targetHttpProxyList for lists of target HTTP proxies." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "items": { + "type": "array", + "description": "A list of TargetHttpProxy resources.", + "items": { + "$ref": "TargetHttpProxy" + } + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + } + } + }, + "NodeGroupNode": { + "id": "NodeGroupNode", + "type": "object", + "properties": { + "instances": { + "description": "Instances scheduled on this node.", + "items": { + "type": "string" }, - "httpMethod": "GET", - "parameterOrder": [ - "project", - "zone", - "instance", - "networkInterface" - ], - "id": "compute.instances.getEffectiveFirewalls", - "description": "Returns effective firewalls applied to an interface of the instance.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "array" + }, + "cpuOvercommitType": { + "description": "CPU overcommit.", + "type": "string", + "enum": [ + "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", + "ENABLED", + "NONE" ], - "response": { - "$ref": "InstancesGetEffectiveFirewallsResponse" - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls" + "enumDescriptions": [ + "", + "", + "" + ] }, - "listReferrers": { - "httpMethod": "GET", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/referrers", - "response": { - "$ref": "InstanceListReferrers" - }, - "id": "compute.instances.listReferrers", - "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.", - "parameterOrder": [ - "project", - "zone", - "instance" + "serverBinding": { + "$ref": "ServerBinding", + "description": "Binding properties for the physical server." + }, + "status": { + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "parameters": { - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "maxResults": { - "minimum": "0", - "default": "500", - "location": "query", - "format": "uint32", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "zone": { - "type": "string", - "description": "The name of the zone for this request.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." - }, - "instance": { - "required": true, - "type": "string", - "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.", - "location": "path", - "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - } + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY", + "REPAIRING" + ] + }, + "nodeType": { + "description": "The type of this node.", + "type": "string" + }, + "serverId": { + "type": "string", + "description": "Server ID associated with this node." + }, + "name": { + "type": "string", + "description": "The name of the node." + }, + "consumedResources": { + "description": "Node resources that are reserved by all instances.", + "$ref": "InstanceConsumptionInfo" + }, + "totalResources": { + "description": "Total amount of available resources on the node.", + "$ref": "InstanceConsumptionInfo" + }, + "accelerators": { + "type": "array", + "items": { + "$ref": "AcceleratorConfig" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers" + "description": "Accelerators for this node." }, - "getSerialPortOutput": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "SerialPortOutput" + "disks": { + "type": "array", + "items": { + "$ref": "LocalDisk" }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort", - "parameters": { - "port": { - "format": "int32", - "type": "integer", - "maximum": "4", - "description": "Specifies which COM or serial port to retrieve data from.", - "default": "1", - "minimum": "1", - "location": "query" - }, - "zone": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "description": "The name of the zone for this request." - }, - "start": { - "location": "query", - "format": "int64", - "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.", - "type": "string" - }, - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." + "description": "Local disk configurations." + }, + "instanceConsumptionData": { + "description": "Instance data that shows consumed resources on the node.", + "type": "array", + "items": { + "$ref": "InstanceConsumptionData" + } + }, + "satisfiesPzs": { + "type": "boolean", + "description": "[Output Only] Reserved for future use." + } + } + }, + "Metadata": { + "description": "A metadata key/value entry.", + "properties": { + "items": { + "type": "array", + "items": { + "properties": { + "key": { + "pattern": "[a-zA-Z0-9-_]{1,128}", + "annotations": { + "required": [ + "compute.instances.insert", + "compute.projects.setCommonInstanceMetadata" + ] + }, + "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.", + "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).", + "type": "string", + "annotations": { + "required": [ + "compute.instances.insert", + "compute.projects.setCommonInstanceMetadata" + ] + } + } }, - "instance": { - "location": "path", - "description": "Name of the instance for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" - } + "description": "Metadata", + "type": "object" }, - "id": "compute.instances.getSerialPortOutput", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/serialPort", - "parameterOrder": [ - "project", - "zone", - "instance" + "description": "Array of key/value pairs. The total size of all keys and values must be less than 512 KB." + }, + "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.", + "format": "byte", + "type": "string" + } + }, + "type": "object", + "id": "Metadata" + }, + "XpnResourceId": { + "description": "Service resource (a.k.a service project) ID.", + "type": "object", + "id": "XpnResourceId", + "properties": { + "type": { + "enumDescriptions": [ + "", + "" ], - "description": "Returns the last 1 MB of serial port output from the specified instance.", - "httpMethod": "GET" + "description": "The type of the service resource.", + "type": "string", + "enum": [ + "PROJECT", + "XPN_RESOURCE_TYPE_UNSPECIFIED" + ] }, - "detachDisk": { - "description": "Detaches a disk from an instance.", - "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", - "parameterOrder": [ - "project", - "zone", - "instance", - "deviceName" + "id": { + "type": "string", + "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)." + } + } + }, + "InterconnectDiagnosticsLinkLACPStatus": { + "type": "object", + "id": "InterconnectDiagnosticsLinkLACPStatus", + "properties": { + "neighborSystemId": { + "description": "System ID of the port on the neighbor's side of the LACP exchange.", + "type": "string" + }, + "state": { + "enum": [ + "ACTIVE", + "DETACHED" ], - "response": { - "$ref": "Operation" - }, - "id": "compute.instances.detachDisk", - "parameters": { - "deviceName": { - "type": "string", - "location": "query", - "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.", - "required": true - }, - "instance": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Instance name for this request.", - "location": "path", - "type": "string", - "required": true - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "zone": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "description": "The name of the zone for this request." - }, - "project": { - "required": true, - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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." ], - "httpMethod": "POST" + "type": "string", + "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. " }, - "get": { - "response": { - "$ref": "Instance" - }, - "parameters": { - "project": { - "description": "Project ID for this request.", - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "instance": { - "location": "path", - "required": true, - "description": "Name of the instance resource to return.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "zone": { - "description": "The name of the zone for this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "googleSystemId": { + "description": "System ID of the port on Google's side of the LACP exchange.", + "type": "string" + } + } + }, + "AuthorizationLoggingOptions": { + "properties": { + "permissionType": { + "description": "This is deprecated and has no effect. Do not use.", + "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." ], - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", - "id": "compute.instances.get", - "httpMethod": "GET", - "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.", - "parameterOrder": [ - "project", - "zone", - "instance" - ] + "enum": [ + "ADMIN_READ", + "ADMIN_WRITE", + "DATA_READ", + "DATA_WRITE", + "PERMISSION_TYPE_UNSPECIFIED" + ], + "type": "string" + } + }, + "description": "This is deprecated and has no effect. Do not use.", + "id": "AuthorizationLoggingOptions", + "type": "object" + }, + "ServiceAttachmentConnectedEndpoint": { + "type": "object", + "id": "ServiceAttachmentConnectedEndpoint", + "properties": { + "endpoint": { + "type": "string", + "description": "The url of a connected endpoint." }, - "removeResourcePolicies": { - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", - "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", - "response": { - "$ref": "Operation" - }, - "description": "Removes resource policies from an instance.", - "request": { - "$ref": "InstancesRemoveResourcePoliciesRequest" - }, - "parameters": { - "instance": { - "location": "path", - "type": "string", - "description": "The instance name for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "required": true, - "location": "path", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "required": true - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + "status": { + "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.", + "" ], - "id": "compute.instances.removeResourcePolicies", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string", + "description": "The status of a connected endpoint to this service attachment.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" ] }, - "getGuestAttributes": { - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", + "pscConnectionId": { + "description": "The PSC connection id of the connected endpoint.", + "type": "string", + "format": "uint64" + } + }, + "description": "[Output Only] A connection connected to this service attachment." + }, + "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" + } + }, + "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs" + }, + "BackendBucketList": { + "id": "BackendBucketList", + "type": "object", + "properties": { + "kind": { + "default": "compute#backendBucketList", + "type": "string", + "description": "Type of resource." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "zone": { - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "type": "string" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + } }, - "queryPath": { - "description": "Specifies the guest attributes path to be queried.", + "message": { "type": "string", - "location": "query" - }, - "variableKey": { - "location": "query", - "description": "Specifies the key for the guest attributes entry.", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." } - }, - "description": "Returns the specified guest attributes entry.", - "id": "compute.instances.getGuestAttributes", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes", - "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "GuestAttributes" } }, - "updateShieldedInstanceConfig": { - "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", - "httpMethod": "PATCH", - "id": "compute.instances.updateShieldedInstanceConfig", - "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.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", - "parameters": { - "instance": { - "required": true, - "location": "path", - "type": "string", - "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}" - }, - "project": { - "location": "path", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "zone": { - "description": "The name of the zone for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "ShieldedInstanceConfig" - } + "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" }, - "getShieldedInstanceIdentity": { - "parameters": { - "instance": { - "type": "string", - "required": true, - "location": "path", - "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}" + "items": { + "type": "array", + "description": "A list of BackendBucket resources.", + "items": { + "$ref": "BackendBucket" + } + } + }, + "description": "Contains a list of BackendBucket resources." + }, + "FirewallList": { + "id": "FirewallList", + "description": "Contains a list of firewalls.", + "properties": { + "warning": { + "type": "object", + "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "project": { - "description": "Project ID for this request.", + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "zone": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "location": "path", - "required": true - } - }, - "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", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity", - "id": "compute.instances.getShieldedInstanceIdentity", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "ShieldedInstanceIdentity" - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity", - "httpMethod": "GET" - }, - "updateAccessConfig": { - "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", - "request": { - "$ref": "AccessConfig" - }, - "httpMethod": "POST", - "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.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", - "response": { - "$ref": "Operation" - }, - "id": "compute.instances.updateAccessConfig", - "parameterOrder": [ - "project", - "zone", - "instance", - "networkInterface" - ], - "parameters": { - "networkInterface": { - "description": "The name of the network interface where the access config is attached.", - "required": true, - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" - }, - "instance": { - "type": "string", - "location": "path", - "required": true, - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "The name of the zone for this request.", - "required": true, - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "description": "[Output Only] Informational warning message." }, - "list": { - "path": "projects/{project}/zones/{zone}/instances", - "id": "compute.instances.list", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "InstanceList" + "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" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#firewallList for lists of firewalls.", + "default": "compute#firewallList" + }, + "items": { + "description": "A list of Firewall resources.", + "type": "array", + "items": { + "$ref": "Firewall" + } + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + }, + "type": "object" + }, + "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": { + "type": "array", + "items": { + "$ref": "HelpLink" }, - "description": "Retrieves the list of instances contained within the specified zone.", - "parameterOrder": [ - "project", - "zone" - ], - "httpMethod": "GET", - "parameters": { - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "type": "string", - "required": true, - "location": "path" - }, - "maxResults": { - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "format": "uint32", - "default": "500", - "type": "integer" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "project": { - "location": "path", - "description": "Project ID for this request.", + "description": "URL(s) pointing to additional information on handling the current error." + } + } + }, + "TargetSslProxiesSetBackendServiceRequest": { + "properties": { + "service": { + "type": "string", + "description": "The URL of the new BackendService resource for the targetSslProxy." + } + }, + "type": "object", + "id": "TargetSslProxiesSetBackendServiceRequest" + }, + "NetworkEndpointGroupCloudFunction": { + "type": "object", + "id": "NetworkEndpointGroupCloudFunction", + "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" + }, + "urlMask": { + "description": "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" + } + }, + "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." + }, + "RegionDiskTypeList": { + "id": "RegionDiskTypeList", + "properties": { + "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.", + "properties": { + "message": { "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "description": "[Output Only] A human-readable description of the warning code." }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "filter": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "flatPath": "projects/{project}/zones/{zone}/instances" + "type": "object" }, - "testIamPermissions": { - "response": { - "$ref": "TestPermissionsResponse" - }, - "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] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#regionDiskTypeList for region disk types.", + "default": "compute#regionDiskTypeList" + } + }, + "type": "object" + }, + "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", + "id": "Commitment", + "properties": { + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "splitSourceCommitment": { + "type": "string", + "description": "Source commitment to be splitted into a new commitment." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "plan": { + "enum": [ + "INVALID", + "THIRTY_SIX_MONTH", + "TWELVE_MONTH" ], - "description": "Returns permissions that a caller has on the specified resource.", - "parameterOrder": [ - "project", - "zone", - "resource" + "type": "string", + "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).", + "enumDescriptions": [ + "", + "", + "" + ] + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "CANCELLED", + "CREATING", + "EXPIRED", + "NOT_YET_ACTIVE" ], - "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions", - "parameters": { - "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}", - "type": "string", - "location": "path", - "required": true - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." - }, - "zone": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "The name of the zone for this request.", - "location": "path" - } + "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.", + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "endTimestamp": { + "description": "[Output Only] Commitment end time in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "resources": { + "description": "A list of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.", + "items": { + "$ref": "ResourceCommitment" }, - "id": "compute.instances.testIamPermissions" + "type": "array" }, - "setShieldedInstanceIntegrityPolicy": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + }, + "kind": { + "default": "compute#commitment", + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#commitment for commitments." + }, + "region": { + "description": "[Output Only] URL of the region where this commitment may be used.", + "type": "string" + }, + "licenseResource": { + "description": "The license specification required as part of a license commitment.", + "$ref": "LicenseResourceCommitment" + }, + "reservations": { + "description": "List of reservations in this commitment.", + "type": "array", + "items": { + "$ref": "Reservation" + } + }, + "mergeSourceCommitments": { + "type": "array", + "description": "List of source commitments to be merged into a new commitment.", + "items": { + "type": "string" + } + }, + "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": [ + "", + "", + "" ], - "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.", - "httpMethod": "PATCH", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", - "parameterOrder": [ - "project", - "zone", - "instance" + "enum": [ + "CATEGORY_UNSPECIFIED", + "LICENSE", + "MACHINE" + ] + }, + "statusMessage": { + "type": "string", + "description": "[Output Only] An optional, human-readable explanation of the status." + }, + "name": { + "type": "string", + "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])?" + }, + "startTimestamp": { + "type": "string", + "description": "[Output Only] Commitment start time in RFC3339 text format." + }, + "type": { + "enum": [ + "ACCELERATOR_OPTIMIZED", + "COMPUTE_OPTIMIZED", + "COMPUTE_OPTIMIZED_C2D", + "GENERAL_PURPOSE", + "GENERAL_PURPOSE_E2", + "GENERAL_PURPOSE_N2", + "GENERAL_PURPOSE_N2D", + "GENERAL_PURPOSE_T2D", + "MEMORY_OPTIMIZED", + "MEMORY_OPTIMIZED_M3", + "TYPE_UNSPECIFIED" ], - "id": "compute.instances.setShieldedInstanceIntegrityPolicy", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", - "parameters": { - "project": { - "type": "string", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "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.", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + } + }, + "ZoneList": { + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "zone": { - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "The name of the zone for this request." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "instance": { + "message": { "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name or id of the instance scoping this request." + "description": "[Output Only] A human-readable description of the warning code." } + } + }, + "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" + }, + "kind": { + "default": "compute#zoneList", + "description": "Type of resource.", + "type": "string" + }, + "items": { + "description": "A list of Zone resources.", + "items": { + "$ref": "Zone" }, - "response": { - "$ref": "Operation" + "type": "array" + } + }, + "description": "Contains a list of zone resources.", + "id": "ZoneList", + "type": "object" + }, + "InstancesSetServiceAccountRequest": { + "id": "InstancesSetServiceAccountRequest", + "type": "object", + "properties": { + "scopes": { + "type": "array", + "items": { + "type": "string" }, - "request": { - "$ref": "ShieldedInstanceIntegrityPolicy" - } + "description": "The list of scopes to be made available for this service account." }, - "setMachineResources": { - "parameters": { - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request.", - "required": true, - "type": "string", - "location": "path" - }, - "instance": { - "description": "Name of the instance scoping this request.", - "location": "path", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "required": true - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } + "email": { + "description": "Email address of the service account.", + "type": "string" + } + } + }, + "RegionInstanceGroupManagerUpdateInstanceConfigReq": { + "type": "object", + "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", + "description": "RegionInstanceGroupManagers.updatePerInstanceConfigs", + "properties": { + "perInstanceConfigs": { + "items": { + "$ref": "PerInstanceConfig" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesSetMachineResourcesRequest" + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", + "type": "array" + } + } + }, + "RegionDisksRemoveResourcePoliciesRequest": { + "properties": { + "resourcePolicies": { + "items": { + "type": "string" }, - "response": { - "$ref": "Operation" + "type": "array", + "description": "Resource policies to be removed from this disk." + } + }, + "id": "RegionDisksRemoveResourcePoliciesRequest", + "type": "object" + }, + "InstanceGroupManagerStatus": { + "id": "InstanceGroupManagerStatus", + "properties": { + "isStable": { + "type": "boolean", + "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." + }, + "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": { + "$ref": "InstanceGroupManagerStatusStateful", + "description": "[Output Only] Stateful status of the given Instance Group Manager." + }, + "autoscaler": { + "type": "string", + "description": "[Output Only] The URL of the Autoscaler that targets this instance group manager." + } + }, + "type": "object" + }, + "TargetGrpcProxyList": { + "properties": { + "items": { + "description": "A list of TargetGrpcProxy resources.", + "items": { + "$ref": "TargetGrpcProxy" }, - "id": "compute.instances.setMachineResources", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", - "httpMethod": "POST", - "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources" + "type": "array" }, - "aggregatedList": { - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}/aggregated/instances", - "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.", - "parameters": { - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "includeAllScopes": { - "location": "query", - "type": "boolean", - "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." - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "maxResults": { - "format": "uint32", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500", - "type": "integer" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies.", + "default": "compute#targetGrpcProxyList" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "warning": { + "type": "object", + "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "message": { "type": "string", - "location": "query" + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string" } }, - "httpMethod": "GET", - "id": "compute.instances.aggregatedList", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "InstanceAggregatedList" + "description": "[Output Only] Informational warning message." + } + }, + "type": "object", + "id": "TargetGrpcProxyList" + }, + "DistributionPolicyZoneConfiguration": { + "type": "object", + "id": "DistributionPolicyZoneConfiguration", + "properties": { + "zone": { + "annotations": { + "required": [ + "compute.regionInstanceGroupManagers.insert" + ] }, - "path": "projects/{project}/aggregated/instances" - }, - "deleteAccessConfig": { - "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", - "response": { - "$ref": "Operation" + "type": "string", + "description": "The URL of the zone. The zone must exist in the region where the managed instance group is located." + } + } + }, + "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { + "properties": { + "networkEndpoints": { + "type": "array", + "items": { + "$ref": "NetworkEndpoint" }, - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "accessConfig": { - "description": "The name of the access config to delete.", - "type": "string", - "location": "query", - "required": true - }, - "instance": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "The instance name for this request.", - "location": "path", - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "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])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "required": true - }, - "networkInterface": { - "type": "string", - "description": "The name of the network interface.", - "required": true, - "location": "query" - }, - "zone": { - "type": "string", - "description": "The name of the zone for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path" - } - }, - "description": "Deletes an access config from an instance's network interface.", - "parameterOrder": [ - "project", - "zone", - "instance", - "accessConfig", - "networkInterface" - ], - "id": "compute.instances.deleteAccessConfig" + "description": "The list of network endpoints to be attached." + } + }, + "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", + "type": "object" + }, + "InstancesSetMachineTypeRequest": { + "id": "InstancesSetMachineTypeRequest", + "properties": { + "machineType": { + "type": "string", + "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": "object" + }, + "InstanceTemplate": { + "id": "InstanceTemplate", + "type": "object", + "properties": { + "id": { + "format": "uint64", + "description": "[Output Only] A unique identifier for this instance template. The server defines this identifier.", + "type": "string" }, - "simulateMaintenanceEvent": { - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", - "parameters": { - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "type": "string" - }, - "instance": { - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the instance scoping this request." - }, - "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" - ], - "id": "compute.instances.simulateMaintenanceEvent", - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST", - "description": "Simulates a maintenance event on the instance.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent" + "sourceInstanceParams": { + "$ref": "SourceInstanceParams", + "description": "The source instance params to use to create this instance template." }, - "setTags": { - "httpMethod": "POST", - "request": { - "$ref": "Tags" - }, - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags", - "response": { - "$ref": "Operation" + "kind": { + "default": "compute#instanceTemplate", + "type": "string", + "description": "[Output Only] The resource type, which is always compute#instanceTemplate for instance templates." + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "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" + }, + "name": { + "type": "string", + "annotations": { + "required": [ + "compute.instanceTemplates.insert" + ] }, - "description": "Sets network tags for the specified instance to the data included in the request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.instances.setTags", - "parameters": { - "zone": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "description": "The name of the zone for this request." - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "instance": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "type": "string", - "description": "Name of the instance scoping this request." - }, - "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])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string" - } + "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])?" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] The creation timestamp for this instance template in RFC3339 text format." + }, + "properties": { + "description": "The instance properties for this instance template.", + "$ref": "InstanceProperties" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] The URL for this instance template. The server defines this URL." + } + }, + "description": "Represents an Instance Template resource. You can use instance templates to create VM instances and managed instance groups. For more information, read Instance Templates." + }, + "InterconnectAttachmentAggregatedList": { + "type": "object", + "id": "InterconnectAttachmentAggregatedList", + "properties": { + "items": { + "description": "A list of InterconnectAttachmentsScopedList resources.", + "additionalProperties": { + "description": "Name of the scope containing this set of interconnect attachments.", + "$ref": "InterconnectAttachmentsScopedList" }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags" + "type": "object" }, - "addAccessConfig": { - "response": { - "$ref": "Operation" + "unreachables": { + "type": "array", + "items": { + "type": "string" }, - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig", - "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig", - "description": "Adds an access config to an instance's network interface.", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.instances.addAccessConfig", - "parameters": { - "networkInterface": { - "location": "query", - "type": "string", - "description": "The name of the network interface to add to this instance.", - "required": true + "description": "[Output Only] Unreachable resources." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentAggregatedList for aggregated lists of interconnect attachments.", + "default": "compute#interconnectAttachmentAggregatedList" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "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": { + "properties": { + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } }, - "requestId": { - "location": "query", + "code": { "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "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", - "description": "Project ID for this request.", - "required": true, - "type": "string" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "instance": { + "message": { "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "The instance name for this request.", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." } }, - "parameterOrder": [ - "project", - "zone", - "instance", - "networkInterface" + "type": "object", + "description": "[Output Only] Informational warning message." + } + } + }, + "Condition": { + "properties": { + "iam": { + "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." ], - "request": { - "$ref": "AccessConfig" - } - }, - "setDeletionProtection": { - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", - "parameterOrder": [ - "project", - "zone", - "resource" + "description": "This is deprecated and has no effect. Do not use.", + "enum": [ + "APPROVER", + "ATTRIBUTION", + "AUTHORITY", + "CREDENTIALS_TYPE", + "CREDS_ASSERTION", + "JUSTIFICATION_TYPE", + "NO_ATTR", + "SECURITY_REALM" ], - "id": "compute.instances.setDeletionProtection", - "parameters": { - "deletionProtection": { - "default": "true", - "location": "query", - "description": "Whether the resource should be protected against deletion.", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "resource": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "description": "Name or id of the resource for this request." - } - }, - "description": "Sets deletion protection on the instance.", - "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "type": "string" }, - "setIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameters": { - "zone": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "The name of the zone for this request.", - "location": "path" - }, - "resource": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name or id of the resource for this request.", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "svc": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "zone", - "resource" + "description": "This is deprecated and has no effect. Do not use." + }, + "sys": { + "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." ], - "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "IP", + "NAME", + "NO_ATTR", + "REGION", + "SERVICE" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "request": { - "$ref": "ZoneSetPolicyRequest" - }, - "id": "compute.instances.setIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", - "httpMethod": "POST" + "description": "This is deprecated and has no effect. Do not use.", + "type": "string" }, - "stop": { - "path": "projects/{project}/zones/{zone}/instances/{instance}/stop", - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/stop", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.instances.stop", - "parameterOrder": [ - "project", - "zone", - "instance" + "op": { + "type": "string", + "description": "This is deprecated and has no effect. Do not use.", + "enum": [ + "DISCHARGED", + "EQUALS", + "IN", + "NOT_EQUALS", + "NOT_IN", + "NO_OP" ], - "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.", - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "required": true - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string" - }, - "instance": { - "type": "string", - "description": "Name of the instance resource to stop.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - }, - "response": { - "$ref": "Operation" + "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." + ] + } + }, + "type": "object", + "description": "This is deprecated and has no effect. Do not use.", + "id": "Condition" + }, + "MachineTypeList": { + "description": "Contains a list of machine types.", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#machineTypeList for lists of machine types.", + "default": "compute#machineTypeList" + }, + "items": { + "type": "array", + "description": "A list of MachineType resources.", + "items": { + "$ref": "MachineType" } }, - "updateNetworkInterface": { - "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.instances.updateNetworkInterface", - "request": { - "$ref": "NetworkInterface" - }, - "parameters": { - "instance": { - "type": "string", - "required": true, - "description": "The instance name for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "location": "path", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" }, - "zone": { - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request." + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array" }, - "networkInterface": { - "description": "The name of the network interface to update.", - "type": "string", - "required": true, - "location": "query" + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" } - }, - "httpMethod": "PATCH", - "parameterOrder": [ - "project", - "zone", - "instance", - "networkInterface" - ], - "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.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", - "response": { - "$ref": "Operation" + } + } + }, + "id": "MachineTypeList" + }, + "UrlMapsScopedList": { + "properties": { + "urlMaps": { + "description": "A list of UrlMaps contained in this scope.", + "type": "array", + "items": { + "$ref": "UrlMap" } }, - "setMinCpuPlatform": { - "httpMethod": "POST", - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "description": "Project ID for this request." - }, - "instance": { - "location": "path", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the instance scoping this request." + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } }, - "requestId": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." } }, - "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.", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", - "id": "compute.instances.setMinCpuPlatform", - "request": { - "$ref": "InstancesSetMinCpuPlatformRequest" - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", - "parameterOrder": [ - "project", - "zone", - "instance" - ] - }, - "updateDisplayDevice": { - "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", - "id": "compute.instances.updateDisplayDevice", - "response": { - "$ref": "Operation" - }, - "parameters": { - "zone": { - "description": "The name of the zone for this request.", - "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" + "type": "object" + } + }, + "type": "object", + "id": "UrlMapsScopedList" + }, + "VpnGatewaysScopedList": { + "type": "object", + "properties": { + "warning": { + "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "properties": { + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" }, - "instance": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string", - "description": "Name of the instance scoping this request." + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + } }, - "project": { - "description": "Project ID for this request.", + "message": { "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "description": "[Output Only] A human-readable description of the warning code." } }, - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "DisplayDevice" - }, - "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.", - "httpMethod": "PATCH" + "type": "object" }, - "attachDisk": { - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "AttachedDisk" - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", - "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.", - "httpMethod": "POST", - "response": { - "$ref": "Operation" + "vpnGateways": { + "items": { + "$ref": "VpnGateway" }, - "id": "compute.instances.attachDisk", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "array", + "description": "[Output Only] A list of VPN gateways contained in this scope." + } + }, + "id": "VpnGatewaysScopedList" + }, + "ServerBinding": { + "type": "object", + "id": "ServerBinding", + "properties": { + "type": { + "enumDescriptions": [ + "Node may associate with any physical server over its lifetime.", + "Node may associate with minimal physical servers over its lifetime.", + "" ], - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", - "parameters": { - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path" - }, - "instance": { - "location": "path", - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "zone": { - "required": true, - "description": "The name of the zone for this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path" - }, - "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.", - "type": "boolean", - "location": "query" - } - } + "type": "string", + "enum": [ + "RESTART_NODE_ON_ANY_SERVER", + "RESTART_NODE_ON_MINIMAL_SERVERS", + "SERVER_BINDING_TYPE_UNSPECIFIED" + ] + } + } + }, + "HttpHealthCheckList": { + "id": "HttpHealthCheckList", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." }, - "start": { - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start", - "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.", - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/start", - "id": "compute.instances.start", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "The name of the zone for this request.", - "type": "string", - "location": "path" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "instance": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name of the instance resource to start.", - "type": "string" - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string" - } - }, - "httpMethod": "POST" + "kind": { + "default": "compute#httpHealthCheckList", + "description": "Type of resource.", + "type": "string" }, - "setMetadata": { - "description": "Sets metadata for the specified instance to the data included in the request.", - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" + "warning": { + "properties": { + "data": { + "type": "array", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "instance": { - "description": "Name of the instance scoping this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string" } }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "id": "compute.instances.setMetadata", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", - "request": { - "$ref": "Metadata" - }, - "response": { - "$ref": "Operation" + "description": "[Output Only] Informational warning message.", + "type": "object" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "items": { + "$ref": "HttpHealthCheck" }, - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "description": "A list of HttpHealthCheck resources.", + "type": "array" }, - "setLabels": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + }, + "type": "object", + "description": "Contains a list of HttpHealthCheck resources." + }, + "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 .", + "id": "HttpHealthCheck", + "properties": { + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "healthyThreshold": { + "type": "integer", + "format": "int32", + "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2." + }, + "requestPath": { + "type": "string", + "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "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" + }, + "checkIntervalSec": { + "format": "int32", + "type": "integer", + "description": "How often (in seconds) to send a health check. The default value is 5 seconds." + }, + "unhealthyThreshold": { + "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string", + "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])?" + }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "timeoutSec": { + "format": "int32", + "type": "integer", + "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." + }, + "kind": { + "description": "[Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP health checks.", + "default": "compute#httpHealthCheck", + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer", + "description": "The TCP port number for the HTTP health check request. The default value is 80." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + } + }, + "type": "object" + }, + "Autoscaler": { + "id": "Autoscaler", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "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.", + "items": { + "$ref": "AutoscalerStatusDetails" }, - "id": "compute.instances.setLabels", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.", - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "required": true - } + "type": "array" + }, + "zone": { + "description": "[Output Only] URL of the zone where the instance group resides (for autoscalers living in zonal scope).", + "type": "string" + }, + "recommendedSize": { + "format": "int32", + "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" + }, + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "target": { + "type": "string", + "description": "URL of the managed instance group that this autoscaler will scale. This field is required when creating an autoscaler." + }, + "region": { + "description": "[Output Only] URL of the region where the instance group resides (for autoscalers living in regional scope).", + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "scalingScheduleStatus": { + "description": "[Output Only] Status information of existing scaling schedules.", + "additionalProperties": { + "$ref": "ScalingScheduleStatus" }, - "request": { - "$ref": "InstancesSetLabelsRequest" - } + "type": "object" }, - "sendDiagnosticInterrupt": { - "parameters": { - "instance": { - "required": true, - "location": "path", - "type": "string", - "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}" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true - }, - "zone": { - "description": "The name of the zone for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "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", + "annotations": { + "required": [ + "compute.autoscalers.insert" + ] }, - "id": "compute.instances.sendDiagnosticInterrupt", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sends diagnostic interrupt to the instance.", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt" + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" }, - "setMachineType": { - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", - "description": "Changes the machine type for a stopped instance to the machine type specified in the request.", - "parameterOrder": [ - "project", - "zone", - "instance" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "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" + }, + "kind": { + "description": "[Output Only] Type of the resource. Always compute#autoscaler for autoscalers.", + "default": "compute#autoscaler", + "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.", + "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" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string", + "enum": [ + "ACTIVE", + "DELETING", + "ERROR", + "PENDING" + ] + } + }, + "type": "object", + "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." + }, + "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 Platform 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", + "id": "ForwardingRule", + "properties": { + "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" + }, + "serviceLabel": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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." + }, + "noAutomateDnsZone": { + "type": "boolean", + "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." + }, + "IPProtocol": { + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" ], - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", - "response": { - "$ref": "Operation" + "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).", + "enum": [ + "AH", + "ESP", + "ICMP", + "L3_DEFAULT", + "SCTP", + "TCP", + "UDP" + ] + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "kind": { + "description": "[Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.", + "default": "compute#forwardingRule", + "type": "string" + }, + "metadataFilters": { + "type": "array", + "items": { + "$ref": "MetadataFilter" }, - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "instance": { - "type": "string", - "required": true, - "description": "Name of the instance scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "description": "The name of the zone for this request.", - "required": true - }, - "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", - "description": "Project ID for this request." - } - }, - "id": "compute.instances.setMachineType", - "request": { - "$ref": "InstancesSetMachineTypeRequest" - } + "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." }, - "getIamPolicy": { - "httpMethod": "GET", - "response": { - "$ref": "Policy" - }, - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", - "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.instances.getIamPolicy", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "parameters": { - "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])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true - }, - "zone": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "type": "string", - "description": "The name of the zone for this request." - }, - "optionsRequestedPolicyVersion": { - "format": "int32", - "location": "query", - "type": "integer", - "description": "Requested IAM Policy version." - }, - "resource": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "type": "string", - "description": "Name or id of the resource for this request.", - "required": true - } - }, - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." - } - } - }, - "interconnects": { - "methods": { - "delete": { - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "interconnect": { - "type": "string", - "description": "Name of the interconnect to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": 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])?))", - "type": "string", - "location": "path", - "required": true - } + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" }, - "httpMethod": "DELETE", - "id": "compute.interconnects.delete", - "parameterOrder": [ - "project", - "interconnect" + "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." + }, + "allowGlobalAccess": { + "type": "boolean", + "description": "This field is used along with the backend_service field for internal load balancing or with the target field for internal TargetInstance. If the field is set to TRUE, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer." + }, + "labelFingerprint": { + "type": "string", + "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.", + "format": "byte" + }, + "name": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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." + }, + "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" + }, + "subnetwork": { + "description": "This field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule, used in internal load balancing and network load balancing 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" + }, + "allPorts": { + "description": "This field is used along with the backend_service field for Internal TCP/UDP Load Balancing or Network Load Balancing, or with the target field for internal and external TargetInstance. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. For TCP, UDP and SCTP traffic, packets addressed to any ports will be forwarded to the target or backendService.", + "type": "boolean" + }, + "ipVersion": { + "type": "string", + "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Deletes the specified interconnect.", - "path": "projects/{project}/global/interconnects/{interconnect}", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/global/interconnects/{interconnect}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_VERSION" ] }, - "patch": { - "path": "projects/{project}/global/interconnects/{interconnect}", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "interconnect": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true, - "description": "Name of the interconnect to update." - }, - "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])?))", - "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request." - } - }, - "flatPath": "projects/{project}/global/interconnects/{interconnect}", - "httpMethod": "PATCH", - "response": { - "$ref": "Operation" - }, - "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.", - "id": "compute.interconnects.patch", - "parameterOrder": [ - "project", - "interconnect" + "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` * 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" + }, + "ports": { + "description": "The ports field is only supported when the forwarding rule references a backend_service directly. Only packets addressed to the [specified list of ports]((https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications)) are forwarded to backends. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. You can specify a list of up to five ports, which can be non-contiguous. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. @pattern: \\\\d+(?:-\\\\d+)?", + "type": "array", + "items": { + "type": "string" + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "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.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" ], - "request": { - "$ref": "Interconnect" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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." ] }, - "insert": { - "request": { - "$ref": "Interconnect" - }, - "parameters": { - "project": { - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } - }, - "id": "compute.interconnects.insert", - "description": "Creates a Interconnect in the specified project using the data included in the request.", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/global/interconnects", - "path": "projects/{project}/global/interconnects", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "serviceDirectoryRegistrations": { + "description": "Service Directory resources to register this forwarding rule with. Currently, only supports a single Service Directory resource.", + "type": "array", + "items": { + "$ref": "ForwardingRuleServiceDirectoryRegistration" + } + }, + "portRange": { + "description": "This field can be used only if: - Load balancing scheme is one of EXTERNAL, INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or SCTP. Packets addressed to ports in the specified range will be forwarded to target or backend_service. You can only use one of ports, port_range, or allPorts. The three are mutually exclusive. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding target have constraints on the acceptable ports. For more information, see [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications). @pattern: \\\\d+(?:-\\\\d+)?", + "type": "string" + }, + "backendService": { + "type": "string", + "description": "Identifies the backend service to which the forwarding rule sends traffic. Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must be omitted for all other load balancer types." + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "pscConnectionStatus": { + "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.", + "" ], - "parameterOrder": [ - "project" + "type": "string", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" ] }, - "list": { - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "required": true - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "maxResults": { - "default": "500", - "format": "uint32", - "minimum": "0", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query" - } - }, - "description": "Retrieves the list of interconnect available to the specified project.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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.", + "format": "byte", + "type": "string" + }, + "loadBalancingScheme": { + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" ], - "path": "projects/{project}/global/interconnects", - "flatPath": "projects/{project}/global/interconnects", - "httpMethod": "GET", - "id": "compute.interconnects.list", - "response": { - "$ref": "InterconnectList" - }, - "parameterOrder": [ - "project" + "type": "string", + "description": "Specifies the forwarding rule type. For more information about forwarding rules, refer to Forwarding rule concepts.", + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "INTERNAL", + "INTERNAL_MANAGED", + "INTERNAL_SELF_MANAGED", + "INVALID" ] }, - "get": { - "response": { - "$ref": "Interconnect" + "pscConnectionId": { + "type": "string", + "description": "[Output Only] The PSC connection id of the PSC Forwarding Rule.", + "format": "uint64" + }, + "serviceName": { + "type": "string", + "description": "[Output Only] The internal fully qualified service name for this Forwarding Rule. This field is only used for internal load balancing." + }, + "target": { + "type": "string" + }, + "network": { + "description": "This field is not used for external load balancing. For Internal TCP/UDP Load Balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not 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" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + } + } + }, + "HttpRetryPolicy": { + "description": "The retry policy associates with HttpRouteRule", + "id": "HttpRetryPolicy", + "properties": { + "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" + }, + "retryConditions": { + "items": { + "type": "string" }, - "path": "projects/{project}/global/interconnects/{interconnect}", - "id": "compute.interconnects.get", - "parameterOrder": [ - "project", - "interconnect" + "type": "array", + "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 " + }, + "numRetries": { + "format": "uint32", + "type": "integer", + "description": "Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1." + } + }, + "type": "object" + }, + "SslPolicyReference": { + "type": "object", + "properties": { + "sslPolicy": { + "type": "string", + "description": "URL of the SSL policy resource. Set this to empty string to clear any existing SSL policy associated with the target proxy resource." + } + }, + "id": "SslPolicyReference" + }, + "AcceleratorConfig": { + "type": "object", + "id": "AcceleratorConfig", + "description": "A specification of the type and number of accelerator cards attached to the instance.", + "properties": { + "acceleratorCount": { + "type": "integer", + "format": "int32", + "description": "The number of the guest accelerator cards exposed to this instance." + }, + "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" + } + } + }, + "SavedDisk": { + "type": "object", + "properties": { + "kind": { + "default": "compute#savedDisk", + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#savedDisk for attached disks." + }, + "storageBytes": { + "description": "[Output Only] Size of the individual disk snapshot used by this machine image.", + "format": "int64", + "type": "string" + }, + "storageBytesStatus": { + "enumDescriptions": [ + "", + "" ], - "flatPath": "projects/{project}/global/interconnects/{interconnect}", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "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.", + "enum": [ + "UPDATING", + "UP_TO_DATE" ], - "parameters": { - "interconnect": { - "type": "string", - "location": "path", - "required": true, - "description": "Name of the interconnect to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - } - }, - "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request." + "type": "string" }, - "getDiagnostics": { - "response": { - "$ref": "InterconnectsGetDiagnosticsResponse" - }, - "id": "compute.interconnects.getDiagnostics", - "parameters": { - "interconnect": { - "required": true, - "description": "Name of the interconnect resource to query.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "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])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "sourceDisk": { + "type": "string", + "description": "Specifies a URL of the disk attached to the source instance." + }, + "architecture": { + "type": "string", + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "httpMethod": "GET", - "parameterOrder": [ - "project", - "interconnect" + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" ], - "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", - "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", - "description": "Returns the interconnectDiagnostics for the specified interconnect." + "description": "[Output Only] The architecture of the attached disk." } - } + }, + "id": "SavedDisk", + "description": "An instance-attached disk resource." }, - "targetPools": { - "methods": { - "list": { - "flatPath": "projects/{project}/regions/{region}/targetPools", - "path": "projects/{project}/regions/{region}/targetPools", - "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.", - "parameters": { - "maxResults": { - "format": "uint32", - "type": "integer", - "default": "500", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0" - }, - "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" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string", - "location": "query" - }, - "pageToken": { + "InstanceGroupsScopedList": { + "id": "InstanceGroupsScopedList", + "properties": { + "warning": { + "description": "[Output Only] An informational warning that replaces the list of instance groups when the list is empty.", + "type": "object", + "properties": { + "code": { "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "message": { "type": "string", - "description": "Name of the region scoping this request.", - "location": "path" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." + "data": { + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } - }, - "parameterOrder": [ - "project", - "region" - ], - "httpMethod": "GET", - "id": "compute.targetPools.list", - "response": { - "$ref": "TargetPoolList" } }, - "addHealthCheck": { - "request": { - "$ref": "TargetPoolsAddHealthCheckRequest" + "instanceGroups": { + "type": "array", + "items": { + "$ref": "InstanceGroup" }, - "parameterOrder": [ - "project", - "region", - "targetPool" + "description": "[Output Only] The list of instance groups that are contained in this scope." + } + }, + "type": "object" + }, + "DistributionPolicy": { + "type": "object", + "properties": { + "targetShape": { + "description": "The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).", + "enum": [ + "ANY", + "BALANCED", + "EVEN" ], - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "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 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." + ], + "type": "string" + }, + "zones": { + "description": "Zones where the regional managed instance group will create and manage its instances.", + "type": "array", + "items": { + "$ref": "DistributionPolicyZoneConfiguration" + } + } + }, + "id": "DistributionPolicy" + }, + "InstanceListReferrers": { + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "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" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } }, - "region": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "message": { "type": "string", - "location": "path", - "description": "Name of the region scoping this request." - }, - "targetPool": { - "description": "Name of the target pool to add a health check to.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "httpMethod": "POST", - "description": "Adds health check URLs to a target pool.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.targetPools.addHealthCheck", - "response": { - "$ref": "Operation" + "type": "object" + }, + "items": { + "items": { + "$ref": "Reference" }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck" + "type": "array", + "description": "A list of Reference resources." }, - "insert": { - "id": "compute.targetPools.insert", - "httpMethod": "POST", - "path": "projects/{project}/regions/{region}/targetPools", - "flatPath": "projects/{project}/regions/{region}/targetPools", - "request": { - "$ref": "TargetPool" + "kind": { + "description": "[Output Only] Type of resource. Always compute#instanceListReferrers for lists of Instance referrers.", + "default": "compute#instanceListReferrers", + "type": "string" + } + }, + "id": "InstanceListReferrers", + "type": "object", + "description": "Contains a list of instance referrers." + }, + "MachineImage": { + "type": "object", + "id": "MachineImage", + "properties": { + "name": { + "annotations": { + "required": [ + "compute.machineImages.insert" + ] }, - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "location": "path", - "required": true, - "description": "Name of the region scoping this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" + }, + "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" + }, + "kind": { + "default": "compute#machineImage", + "type": "string", + "description": "[Output Only] The resource type, which is always compute#machineImage for machine image." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] The creation timestamp for this machine image in RFC3339 text format." + }, + "storageLocations": { + "type": "array", + "items": { + "type": "string" }, - "response": { - "$ref": "Operation" + "description": "The regional or multi-regional Cloud Storage bucket location where the machine image is stored." + }, + "instanceProperties": { + "$ref": "InstanceProperties", + "description": "[Output Only] Properties of source instance" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] The URL for this machine image. The server defines this URL." + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "sourceDiskEncryptionKeys": { + "items": { + "$ref": "SourceDiskEncryptionKey" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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" + }, + "machineImageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "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." + }, + "savedDisks": { + "type": "array", + "description": "An array of Machine Image specific properties for disks attached to the source instance", + "items": { + "$ref": "SavedDisk" + } + }, + "totalStorageBytes": { + "type": "string", + "format": "int64", + "description": "[Output Only] Total size of the storage used by the machine image." + }, + "sourceInstanceProperties": { + "$ref": "SourceInstanceProperties", + "description": "[Output Only] DEPRECATED: Please use instance_properties instead for source instance related properties. New properties will not be added to this field." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "guestFlush": { + "description": "[Input Only] Whether to attempt an application consistent machine image by informing the OS to prepare for the snapshot process.", + "type": "boolean" + }, + "id": { + "description": "[Output Only] A unique identifier for this machine image. The server defines this identifier.", + "type": "string", + "format": "uint64" + }, + "status": { + "description": "[Output Only] The status of the machine image. One of the following values: INVALID, CREATING, READY, DELETING, and UPLOADING.", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "parameterOrder": [ - "project", - "region" + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY", + "UPLOADING" ], - "description": "Creates a target pool in the specified project and region using the data included in the request." + "type": "string" + } + }, + "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." + }, + "NetworkInterface": { + "type": "object", + "description": "A network interface resource attached to an instance.", + "properties": { + "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" }, - "getHealth": { - "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", - "parameterOrder": [ - "project", - "region", - "targetPool" + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#networkInterface for network interfaces.", + "default": "compute#networkInterface" + }, + "networkIP": { + "type": "string", + "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." + }, + "ipv6Address": { + "type": "string", + "description": "An IPv6 internal network address for this network interface." + }, + "stackType": { + "enumDescriptions": [ + "The network interface can have both IPv4 and IPv6 addresses.", + "The network interface will be assigned IPv4 address." ], - "response": { - "$ref": "TargetPoolInstanceHealth" - }, - "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" ], - "id": "compute.targetPools.getHealth", - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "required": true, - "location": "path", - "type": "string" - }, - "targetPool": { - "required": true, - "description": "Name of the TargetPool resource to which the queried instance belongs.", - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - }, - "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", - "description": "Project ID for this request." - } - }, - "request": { - "$ref": "InstanceReference" - }, - "httpMethod": "POST" + "type": "string", + "description": "The stack type for this network interface 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 instance creation and update network interface operations." }, - "aggregatedList": { - "httpMethod": "GET", - "description": "Retrieves an aggregated list of target pools.", - "path": "projects/{project}/aggregated/targetPools", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "ipv6AccessType": { + "type": "string", + "enumDescriptions": [ + "This network interface can have external IPv6.", + "This network interface can have internal IPv6." ], - "flatPath": "projects/{project}/aggregated/targetPools", - "id": "compute.targetPools.aggregatedList", - "response": { - "$ref": "TargetPoolAggregatedList" + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "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." + }, + "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" + }, + "internalIpv6PrefixLength": { + "format": "int32", + "type": "integer", + "description": "The prefix length of the primary internal IPv6 range." + }, + "network": { + "type": "string", + "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 " + }, + "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.", + "items": { + "$ref": "AccessConfig" }, - "parameterOrder": [ - "project" + "type": "array" + }, + "nicType": { + "description": "The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.", + "enumDescriptions": [ + "GVNIC", + "No type specified.", + "VIRTIO" ], - "parameters": { - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "required": true - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "includeAllScopes": { - "type": "boolean", - "location": "query", - "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." - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "format": "uint32", - "type": "integer", - "default": "500", - "location": "query", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - } - } - }, - "get": { - "response": { - "$ref": "TargetPool" - }, - "flatPath": "projects/{project}/regions/{region}/targetPools/{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. Gets a list of available target pools by making a list() request.", - "id": "compute.targetPools.get", - "parameterOrder": [ - "project", - "region", - "targetPool" + "enum": [ + "GVNIC", + "UNSPECIFIED_NIC_TYPE", + "VIRTIO_NET" ], - "httpMethod": "GET", - "parameters": { - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "required": true - }, - "targetPool": { - "required": true, - "type": "string", - "description": "Name of the TargetPool resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}" + "type": "string" }, - "removeHealthCheck": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes health check URL from a target pool.", - "request": { - "$ref": "TargetPoolsRemoveHealthCheckRequest" - }, - "parameters": { - "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", - "type": "string", - "required": true - }, - "region": { - "required": true, - "description": "Name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - } + "aliasIpRanges": { + "items": { + "$ref": "AliasIpRange" }, - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", - "id": "compute.targetPools.removeHealthCheck" + "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" }, - "removeInstance": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "description": "Removes instance URL from a target pool.", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", - "request": { - "$ref": "TargetPoolsRemoveInstanceRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "id": "compute.targetPools.removeInstance", - "parameters": { - "region": { - "type": "string", - "location": "path", - "description": "Name of the region scoping this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "targetPool": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name of the TargetPool resource to remove instances from.", - "type": "string" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "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])?))", - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request." - } - } + "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" }, - "addInstance": { - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", - "description": "Adds an instance to a target pool.", - "id": "compute.targetPools.addInstance", - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "TargetPoolsAddInstanceRequest" - }, - "parameters": { - "project": { - "location": "path", - "required": true, - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "targetPool": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the TargetPool resource to add instances to.", - "type": "string", - "location": "path" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "region": { - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "required": true - } + "fingerprint": { + "type": "string", + "format": "byte", + "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." + }, + "ipv6AccessConfigs": { + "type": "array", + "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.", + "items": { + "$ref": "AccessConfig" } + } + }, + "id": "NetworkInterface" + }, + "SerialPortOutput": { + "type": "object", + "properties": { + "contents": { + "description": "[Output Only] The contents of the console output.", + "type": "string" }, - "setBackup": { - "request": { - "$ref": "TargetReference" - }, - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "description": "Changes a backup target pool's configurations.", - "id": "compute.targetPools.setBackup", - "response": { - "$ref": "Operation" + "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" + }, + "kind": { + "default": "compute#serialPortOutput", + "description": "[Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "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" + } + }, + "description": "An instance serial console output.", + "id": "SerialPortOutput" + }, + "SubnetworkList": { + "properties": { + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "items": { + "$ref": "Subnetwork" }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", - "parameters": { - "failoverRatio": { - "format": "float", - "description": "New failoverRatio value for the target pool.", - "location": "query", - "type": "number" + "description": "A list of Subnetwork resources.", + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. 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" }, - "targetPool": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the TargetPool resource to set a backup pool for.", - "type": "string", - "required": true, - "location": "path" - }, - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "region": { - "location": "path", - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "required": true + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } } }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "response": { - "$ref": "Operation" - }, - "id": "compute.targetPools.delete", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", - "description": "Deletes the specified target pool.", - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request.", - "required": true - }, - "targetPool": { - "location": "path", - "description": "Name of the TargetPool resource to delete.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true - }, - "region": { - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - } - }, - "httpMethod": "DELETE" + "kind": { + "description": "[Output Only] Type of resource. Always compute#subnetworkList for lists of subnetworks.", + "type": "string", + "default": "compute#subnetworkList" + }, + "nextPageToken": { + "type": "string", + "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": "object", + "description": "Contains a list of Subnetwork resources.", + "id": "SubnetworkList" }, - "publicAdvertisedPrefixes": { - "methods": { - "insert": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.publicAdvertisedPrefixes.insert", - "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", - "parameters": { - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" - } - }, - "path": "projects/{project}/global/publicAdvertisedPrefixes", - "request": { - "$ref": "PublicAdvertisedPrefix" + "InstanceReference": { + "id": "InstanceReference", + "properties": { + "instance": { + "type": "string", + "description": "The URL for a specific instance. @required compute.instancegroups.addInstances/removeInstances" + } + }, + "type": "object" + }, + "InstanceGroupManagersListManagedInstancesResponse": { + "type": "object", + "id": "InstanceGroupManagersListManagedInstancesResponse", + "properties": { + "managedInstances": { + "type": "array", + "items": { + "$ref": "ManagedInstance" }, - "httpMethod": "POST" + "description": "[Output Only] The list of instances in the managed instance group." }, - "delete": { - "id": "compute.publicAdvertisedPrefixes.delete", - "description": "Deletes the specified PublicAdvertisedPrefix", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "parameters": { - "publicAdvertisedPrefix": { - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the PublicAdvertisedPrefix resource to delete.", - "type": "string" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true - } - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "DELETE" + "nextPageToken": { + "type": "string", + "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." + } + } + }, + "GlobalOrganizationSetPolicyRequest": { + "id": "GlobalOrganizationSetPolicyRequest", + "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" }, - "get": { - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "parameters": { - "publicAdvertisedPrefix": { - "location": "path", - "type": "string", - "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}", - "required": true - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "description": "Returns the specified PublicAdvertisedPrefix resource.", - "response": { - "$ref": "PublicAdvertisedPrefix" - }, - "id": "compute.publicAdvertisedPrefixes.get" + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "format": "byte", + "type": "string" }, - "patch": { - "id": "compute.publicAdvertisedPrefixes.patch", - "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.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "parameters": { - "publicAdvertisedPrefix": { - "required": true, + "bindings": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "type": "array", + "items": { + "$ref": "Binding" + } + } + }, + "type": "object" + }, + "LogConfigCounterOptions": { + "type": "object", + "properties": { + "customFields": { + "type": "array", + "description": "This is deprecated and has no effect. Do not use.", + "items": { + "$ref": "LogConfigCounterOptionsCustomField" + } + }, + "metric": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string" + }, + "field": { + "type": "string", + "description": "This is deprecated and has no effect. Do not use." + } + }, + "description": "This is deprecated and has no effect. Do not use.", + "id": "LogConfigCounterOptions" + }, + "XpnHostList": { + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "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": { + "type": "object", + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "Name of the PublicAdvertisedPrefix resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "requestId": { + "message": { "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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" + "description": "[Output Only] A human-readable description of the warning code." } }, - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "response": { - "$ref": "Operation" + "description": "[Output Only] Informational warning message." + }, + "kind": { + "default": "compute#xpnHostList", + "description": "[Output Only] Type of resource. Always compute#xpnHostList for lists of shared VPC hosts.", + "type": "string" + }, + "items": { + "items": { + "$ref": "Project" }, - "httpMethod": "PATCH", - "request": { - "$ref": "PublicAdvertisedPrefix" + "description": "[Output Only] A list of shared VPC host project URLs.", + "type": "array" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + } + }, + "id": "XpnHostList", + "type": "object" + }, + "NetworkEndpointGroupList": { + "id": "NetworkEndpointGroupList", + "type": "object", + "properties": { + "items": { + "items": { + "$ref": "NetworkEndpointGroup" }, - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}" + "description": "A list of NetworkEndpointGroup resources.", + "type": "array" }, - "list": { - "parameters": { - "maxResults": { - "type": "integer", - "default": "500", - "minimum": "0", - "location": "query", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "filter": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupList for network endpoint group lists.", + "default": "compute#networkEndpointGroupList", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "project": { - "description": "Project ID for this request.", + "message": { "type": "string", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" + "description": "[Output Only] A human-readable description of the warning code." }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources 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": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + } } - }, - "response": { - "$ref": "PublicAdvertisedPrefixList" - }, - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/global/publicAdvertisedPrefixes", - "httpMethod": "GET", - "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.", - "id": "compute.publicAdvertisedPrefixes.list", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes" + } + }, + "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" } } }, - "acceleratorTypes": { - "methods": { - "list": { - "id": "compute.acceleratorTypes.list", - "parameterOrder": [ - "project", - "zone" - ], - "httpMethod": "GET", - "description": "Retrieves a list of accelerator types that are available to the specified project.", - "parameters": { - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "maxResults": { - "location": "query", - "format": "uint32", - "type": "integer", - "default": "500", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "zone": { - "location": "path", - "required": true, - "type": "string", - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - } + "DisksAddResourcePoliciesRequest": { + "properties": { + "resourcePolicies": { + "type": "array", + "items": { + "type": "string" }, - "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes", - "path": "projects/{project}/zones/{zone}/acceleratorTypes", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "AcceleratorTypeList" - } + "description": "Full or relative path to the resource policy to be added to this disk. You can only specify one resource policy." + } + }, + "id": "DisksAddResourcePoliciesRequest", + "type": "object" + }, + "HealthChecksAggregatedList": { + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." }, - "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.acceleratorTypes.get", - "description": "Returns the specified accelerator type.", - "response": { - "$ref": "AcceleratorType" + "unreachables": { + "items": { + "type": "string" }, - "httpMethod": "GET", - "parameterOrder": [ - "project", - "zone", - "acceleratorType" - ], - "parameters": { - "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", - "description": "Project ID for this request.", - "required": true, + "type": "array", + "description": "[Output Only] Unreachable resources." + }, + "warning": { + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "required": true, - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the zone for this request." + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } }, - "acceleratorType": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "description": "Name of the accelerator type to return.", - "required": true, - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } }, - "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}", - "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}" + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "aggregatedList": { - "id": "compute.acceleratorTypes.aggregatedList", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project" + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "kind": { + "default": "compute#healthChecksAggregatedList", + "description": "Type of resource.", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "description": "A list of HealthChecksScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of HealthChecks.", + "$ref": "HealthChecksScopedList" + } + } + }, + "type": "object", + "id": "HealthChecksAggregatedList" + }, + "InstanceManagedByIgmErrorInstanceActionDetails": { + "properties": { + "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" + }, + "action": { + "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)." ], - "path": "projects/{project}/aggregated/acceleratorTypes", - "description": "Retrieves an aggregated list of accelerator types.", - "parameters": { - "maxResults": { - "minimum": "0", - "location": "query", - "type": "integer", - "default": "500", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "description": "[Output Only] Action that managed instance group was executing on the instance when the error occurred. Possible values:", + "type": "string", + "enum": [ + "ABANDONING", + "CREATING", + "CREATING_WITHOUT_RETRIES", + "DELETING", + "NONE", + "RECREATING", + "REFRESHING", + "RESTARTING", + "RESUMING", + "STARTING", + "STOPPING", + "SUSPENDING", + "VERIFYING" + ] + }, + "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" + } + }, + "type": "object", + "id": "InstanceManagedByIgmErrorInstanceActionDetails" + }, + "NodeTypeAggregatedList": { + "properties": { + "items": { + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of node types.", + "$ref": "NodeTypesScopedList" + }, + "description": "A list of NodeTypesScopedList resources.", + "type": "object" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource.Always compute#nodeTypeAggregatedList for aggregated lists of node types.", + "default": "compute#nodeTypeAggregatedList" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "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" + }, + "unreachables": { + "type": "array", + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" + } + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string" }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "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" + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "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", - "type": "string", - "description": "Project ID for this request.", - "required": true } - }, - "flatPath": "projects/{project}/aggregated/acceleratorTypes", - "httpMethod": "GET", - "response": { - "$ref": "AcceleratorTypeAggregatedList" } } + }, + "id": "NodeTypeAggregatedList", + "type": "object" + }, + "PacketMirroringNetworkInfo": { + "type": "object", + "id": "PacketMirroringNetworkInfo", + "properties": { + "url": { + "type": "string", + "description": "URL of the network resource." + }, + "canonicalUrl": { + "type": "string", + "description": "[Output Only] Unique identifier for the network; defined by the server." + } } }, - "routers": { - "methods": { - "get": { - "response": { - "$ref": "Router" + "LocationPolicyLocationConstraints": { + "description": "Per-zone constraints on location policy for this zone.", + "type": "object", + "id": "LocationPolicyLocationConstraints", + "properties": { + "maxCount": { + "format": "int32", + "description": "Maximum number of items that are allowed to be placed in this zone. The value must be non-negative.", + "type": "integer" + } + } + }, + "AcceleratorTypeAggregatedList": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#acceleratorTypeAggregatedList for aggregated lists of accelerator types.", + "default": "compute#acceleratorTypeAggregatedList" + }, + "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" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "id": "compute.routers.get", - "parameters": { - "router": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "description": "Name of the Router resource to return.", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", + "type": "array" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "region": { - "description": "Name of the region for this request.", + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array" + }, + "message": { "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "description": "[Output Only] A human-readable description of the warning code." } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.", - "parameterOrder": [ - "project", - "region", - "router" - ], - "path": "projects/{project}/regions/{region}/routers/{router}" + } }, - "list": { - "description": "Retrieves a list of Router resources available to the specified project.", - "flatPath": "projects/{project}/regions/{region}/routers", - "response": { - "$ref": "RouterList" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "AcceleratorTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of accelerator types." }, - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "required": true, - "location": "path" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "maxResults": { - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "format": "uint32", - "minimum": "0", - "default": "500" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "description": "A list of AcceleratorTypesScopedList resources.", + "type": "object" + } + }, + "id": "AcceleratorTypeAggregatedList" + }, + "UrlMapsValidateRequest": { + "type": "object", + "properties": { + "loadBalancingSchemes": { + "items": { + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "LOAD_BALANCING_SCHEME_UNSPECIFIED" + ], + "enumDescriptions": [ + "Signifies that this will be used for Classic L7 External Load Balancing.", + "Signifies that this will be used for Envoy-based L7 External Load Balancing.", + "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inferrence is not possible, EXTERNAL will be used as the default type." + ], + "type": "string" }, - "path": "projects/{project}/regions/{region}/routers", - "id": "compute.routers.list", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load Balancer. Other load balancer types are not supported. 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" }, - "getNatMappingInfo": { - "description": "Retrieves runtime Nat mapping information of VM endpoints.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", - "response": { - "$ref": "VmEndpointNatMappingsList" + "resource": { + "description": "Content of the UrlMap to be validated.", + "$ref": "UrlMap" + } + }, + "id": "UrlMapsValidateRequest" + }, + "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 ", + "properties": { + "healthCheck": { + "type": "string" + } + }, + "id": "HealthCheckReference", + "type": "object" + }, + "HttpRouteAction": { + "id": "HttpRouteAction", + "type": "object", + "properties": { + "urlRewrite": { + "$ref": "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 external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." + }, + "requestMirrorPolicy": { + "$ref": "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." + }, + "maxStreamDuration": { + "$ref": "Duration", + "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." + }, + "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 global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.", + "$ref": "HttpFaultInjection" + }, + "weightedBackendServices": { + "items": { + "$ref": "WeightedBackendService" }, - "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", - "parameters": { - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request.", - "type": "string" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "router": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "type": "string", - "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints." + "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" + }, + "timeout": { + "$ref": "Duration", + "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." + }, + "retryPolicy": { + "$ref": "HttpRetryPolicy", + "description": "Specifies the retry policy associated with this route." + }, + "corsPolicy": { + "$ref": "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." + } + } + }, + "RegionInstanceGroupManagerList": { + "type": "object", + "id": "RegionInstanceGroupManagerList", + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "type": "string", + "default": "compute#regionInstanceGroupManagerList", + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups that exist in th regional scope." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path", - "description": "Name of the region for this request.", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "maxResults": { - "format": "uint32", - "location": "query", - "type": "integer", - "default": "500", - "minimum": "0", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "filter": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." } - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.routers.getNatMappingInfo", - "parameterOrder": [ - "project", - "region", - "router" - ] + } }, - "insert": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "Name of the region for this request.", - "required": true, - "location": "path" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "response": { - "$ref": "Operation" + "items": { + "type": "array", + "items": { + "$ref": "InstanceGroupManager" }, - "path": "projects/{project}/regions/{region}/routers", - "flatPath": "projects/{project}/regions/{region}/routers", - "request": { - "$ref": "Router" + "description": "A list of InstanceGroupManager resources." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + }, + "description": "Contains a list of managed instance groups." + }, + "NetworkEndpointGroup": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "annotations": { + "description": "Metadata defined as annotations on the network endpoint group.", + "additionalProperties": { + "type": "string" }, - "parameterOrder": [ - "project", - "region" - ], - "httpMethod": "POST", - "id": "compute.routers.insert", - "description": "Creates a Router resource in the specified project and region using the data included in the request." + "type": "object" }, - "patch": { - "path": "projects/{project}/regions/{region}/routers/{router}", - "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" + }, + "networkEndpointType": { + "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." ], - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "response": { - "$ref": "Operation" - }, - "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.", - "parameters": { - "region": { - "location": "path", - "description": "Name of the region for this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "project": { - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "router": { - "location": "path", - "required": true, - "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}", - "type": "string" - } - }, - "request": { - "$ref": "Router" - }, - "id": "compute.routers.patch", - "httpMethod": "PATCH", - "parameterOrder": [ - "project", - "region", - "router" + "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.", + "enum": [ + "GCE_VM_IP", + "GCE_VM_IP_PORT", + "INTERNET_FQDN_PORT", + "INTERNET_IP_PORT", + "NON_GCP_PRIVATE_IP_PORT", + "PRIVATE_SERVICE_CONNECT", + "SERVERLESS" ] }, - "update": { - "request": { - "$ref": "Router" - }, - "response": { - "$ref": "Operation" - }, - "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.", - "parameterOrder": [ - "project", - "region", - "router" - ], - "path": "projects/{project}/regions/{region}/routers/{router}", - "id": "compute.routers.update", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "parameters": { - "router": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the Router resource to update.", - "required": true, - "location": "path", + "network": { + "type": "string", + "description": "The URL of the network to which all network endpoints in the NEG belong. Uses \"default\" project network if unspecified." + }, + "region": { + "description": "[Output Only] The URL of the region where the network endpoint group is located.", + "type": "string" + }, + "kind": { + "type": "string", + "default": "compute#networkEndpointGroup", + "description": "[Output Only] Type of the resource. Always compute#networkEndpointGroup for network endpoint group." + }, + "cloudFunction": { + "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set.", + "$ref": "NetworkEndpointGroupCloudFunction" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "cloudRun": { + "$ref": "NetworkEndpointGroupCloudRun", + "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set." + }, + "appEngine": { + "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set.", + "$ref": "NetworkEndpointGroupAppEngine" + }, + "size": { + "format": "int32", + "description": "[Output only] Number of network endpoints in the network endpoint group.", + "type": "integer" + }, + "id": { + "type": "string", + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "defaultPort": { + "type": "integer", + "description": "The default port used if the port number is not specified in the network endpoint.", + "format": "int32" + }, + "pscTargetService": { + "type": "string", + "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\"" + }, + "zone": { + "type": "string", + "description": "[Output Only] The URL of the zone where the network endpoint group is located." + }, + "subnetwork": { + "type": "string", + "description": "Optional URL of the subnetwork to which all network endpoints in the NEG belong." + }, + "name": { + "type": "string", + "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." + } + }, + "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, see Setting up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs, or Setting up external HTTP(S) Load Balancing with serverless NEGs." + }, + "TargetInstanceAggregatedList": { + "type": "object", + "properties": { + "kind": { + "default": "compute#targetInstanceAggregatedList", + "type": "string", + "description": "Type of resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "project": { - "required": true, - "type": "string", - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "data": { + "type": "array", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "requestId": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "region": { - "description": "Name of the region for this request.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } + } + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of target instances.", + "$ref": "TargetInstancesScopedList" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "PUT" + "description": "A list of TargetInstance resources." }, - "aggregatedList": { - "httpMethod": "GET", - "path": "projects/{project}/aggregated/routers", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "RouterAggregatedList" + "unreachables": { + "items": { + "type": "string" }, - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}/aggregated/routers", - "description": "Retrieves an aggregated list of routers.", - "id": "compute.routers.aggregatedList", - "parameters": { - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "includeAllScopes": { - "location": "query", - "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.", - "type": "boolean" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "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])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "type": "string" - }, - "maxResults": { - "type": "integer", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0", - "default": "500", - "location": "query" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - } + "description": "[Output Only] Unreachable resources.", + "type": "array" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + } + }, + "id": "TargetInstanceAggregatedList" + }, + "PathMatcher": { + "type": "object", + "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.", + "properties": { + "routeRules": { + "type": "array", + "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.", + "items": { + "$ref": "HttpRouteRule" } }, - "getRouterStatus": { - "parameters": { - "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", - "type": "string", - "required": true, - "description": "Project ID for this request." - }, - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "description": "Name of the region for this request." - }, - "router": { - "description": "Name of the Router resource to query.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "httpMethod": "GET", - "description": "Retrieves runtime information of the specified router.", - "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", - "parameterOrder": [ - "project", - "region", - "router" - ], - "response": { - "$ref": "RouterStatusResponse" - }, - "id": "compute.routers.getRouterStatus" + "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" }, - "delete": { - "httpMethod": "DELETE", - "path": "projects/{project}/regions/{region}/routers/{router}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "required": true, - "description": "Project ID for this request.", - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "router": { - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "description": "Name of the Router resource to delete.", - "location": "path" - }, - "region": { - "location": "path", - "description": "Name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "id": "compute.routers.delete", - "description": "Deletes the specified Router resource.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}" + "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 external HTTP(S) load balancers only support the urlRewrite action within a path matcher's defaultRouteAction.", + "$ref": "HttpRouteAction" }, - "preview": { - "response": { - "$ref": "RoutersPreviewResponse" - }, - "parameters": { - "region": { - "location": "path", - "required": true, - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - }, - "router": { - "location": "path", - "required": true, - "description": "Name of the Router resource to query.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - }, - "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview", - "httpMethod": "POST", - "request": { - "$ref": "Router" + "name": { + "description": "The name to which this PathMatcher is referred by the HostRule.", + "type": "string" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "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" + } + }, + "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" + }, + "headerAction": { + "$ref": "HttpHeaderAction", + "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." + } + }, + "id": "PathMatcher" + }, + "FirewallPolicyRuleMatcherLayer4Config": { + "id": "FirewallPolicyRuleMatcherLayer4Config", + "type": "object", + "properties": { + "ipProtocol": { + "type": "string", + "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." + }, + "ports": { + "items": { + "type": "string" }, - "id": "compute.routers.preview", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "region", - "router" - ], - "path": "projects/{project}/regions/{region}/routers/{router}/preview", - "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router." + "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" } } }, - "networkEndpointGroups": { - "methods": { - "detachNetworkEndpoints": { - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "request": { - "$ref": "NetworkEndpointGroupsDetachEndpointsRequest" - }, - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "parameters": { - "networkEndpointGroup": { - "type": "string", - "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", - "location": "path", - "required": true - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "zone": { - "location": "path", - "required": true, - "type": "string", - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035." - }, - "project": { - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "description": "Project ID for this request." - } - }, - "description": "Detach a list of network endpoints from the specified network endpoint group.", - "httpMethod": "POST", - "id": "compute.networkEndpointGroups.detachNetworkEndpoints", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ] + "SourceDiskEncryptionKey": { + "properties": { + "diskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key." }, - "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ], - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{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.", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", - "id": "compute.networkEndpointGroups.delete", - "parameters": { - "zone": { - "required": true, - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "type": "string" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "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" + } + }, + "id": "SourceDiskEncryptionKey", + "type": "object" + }, + "TargetVpnGatewayList": { + "type": "object", + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", + "default": "compute#targetVpnGatewayList", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "warning": { + "properties": { + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string" }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string", - "description": "Project ID for this request." + "data": { + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "networkEndpointGroup": { + "message": { "type": "string", - "location": "path", - "required": true, - "description": "The name of the network endpoint group to delete. It should comply with RFC1035." + "description": "[Output Only] A human-readable description of the warning code." } + }, + "type": "object", + "description": "[Output Only] Informational warning message." + }, + "items": { + "type": "array", + "description": "A list of TargetVpnGateway resources.", + "items": { + "$ref": "TargetVpnGateway" } }, - "aggregatedList": { - "id": "compute.networkEndpointGroups.aggregatedList", - "parameterOrder": [ - "project" - ], - "flatPath": "projects/{project}/aggregated/networkEndpointGroups", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "NetworkEndpointGroupAggregatedList" - }, - "path": "projects/{project}/aggregated/networkEndpointGroups", - "description": "Retrieves the list of network endpoint groups and sorts them by zone.", - "parameters": { - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "description": "Project ID for this request." - }, - "maxResults": { - "default": "500", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "minimum": "0", - "format": "uint32" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "includeAllScopes": { - "type": "boolean", - "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" - } + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + } + }, + "id": "TargetVpnGatewayList", + "description": "Contains a list of TargetVpnGateway resources." + }, + "TargetHttpsProxy": { + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "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" + }, + "fingerprint": { + "format": "byte", + "type": "string", + "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." + }, + "id": { + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "urlMap": { + "type": "string", + "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 " + }, + "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" } }, - "listNetworkEndpoints": { - "request": { - "$ref": "NetworkEndpointGroupsListEndpointsRequest" - }, - "id": "compute.networkEndpointGroups.listNetworkEndpoints", - "description": "Lists the network endpoints in the specified network endpoint group.", - "response": { - "$ref": "NetworkEndpointGroupsListNetworkEndpoints" - }, - "parameters": { - "zone": { - "type": "string", - "required": true, - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path" - }, - "returnPartialSuccess": { - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "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" - }, - "maxResults": { - "type": "integer", - "format": "uint32", - "location": "query", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0" - }, - "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", - "type": "string", - "required": true - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "project": { - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "description": "Project ID for this request." - } - }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" + "name": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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." + }, + "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. If left blank, communications are not encrypted. Note: This field currently has no impact.", + "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" + }, + "kind": { + "default": "compute#targetHttpsProxy", + "description": "[Output Only] Type of resource. Always compute#targetHttpsProxy for target HTTPS proxies.", + "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" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "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.", + "type": "string" + }, + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the regional TargetHttpsProxy resides. This field is not applicable to global TargetHttpsProxies." + }, + "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. ", + "enum": [ + "DISABLE", + "ENABLE", + "NONE" ], - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints" + "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." + ] }, - "get": { - "parameters": { - "networkEndpointGroup": { - "location": "path", - "description": "The name of the network endpoint group. It should comply with RFC1035.", - "required": true, - "type": "string" + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + } + }, + "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. * targetHttpsProxies are used by external HTTPS load balancers. * regionTargetHttpsProxies are used by internal HTTPS 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" + }, + "ResourcePolicyAggregatedList": { + "id": "ResourcePolicyAggregatedList", + "description": "Contains a list of resourcePolicies.", + "type": "object", + "properties": { + "warning": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "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", - "description": "Project ID for this request.", + "code": { "type": "string", - "required": true + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "zone": { - "required": true, - "location": "path", + "message": { "type": "string", - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035." + "description": "[Output Only] A human-readable description of the warning code." } }, - "response": { - "$ref": "NetworkEndpointGroup" + "description": "[Output Only] Informational warning message." + }, + "items": { + "description": "A list of ResourcePolicy resources.", + "additionalProperties": { + "$ref": "ResourcePoliciesScopedList", + "description": "Name of the scope containing this set of resourcePolicies." }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", - "id": "compute.networkEndpointGroups.get", - "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. Gets a list of available network endpoint groups by making a list() request.", - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ], - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "GET" + "type": "object" }, - "list": { - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.networkEndpointGroups.list", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups", - "parameterOrder": [ - "project", - "zone" - ], - "parameters": { - "filter": { - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "unreachables": { + "items": { + "type": "string" + }, + "description": "[Output Only] Unreachable resources.", + "type": "array" + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#resourcePolicyAggregatedList" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "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" + } + } + }, + "NetworkEdgeSecurityServiceAggregatedList": { + "properties": { + "items": { + "description": "A list of NetworkEdgeSecurityServicesScopedList resources.", + "type": "object", + "additionalProperties": { + "$ref": "NetworkEdgeSecurityServicesScopedList", + "description": "Name of the scope containing this set of security policies." + } + }, + "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.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string" }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "description": "Project ID for this request." - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "location": "query", - "default": "500", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "minimum": "0" + "data": { + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "type": "string", - "required": true + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" } - }, - "response": { - "$ref": "NetworkEndpointGroupList" - }, - "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.", - "httpMethod": "GET" + } }, - "attachNetworkEndpoints": { - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ], - "description": "Attach a list of network endpoints to the specified network endpoint group.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "id": "compute.networkEndpointGroups.attachNetworkEndpoints", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "parameters": { - "zone": { - "type": "string", - "location": "path", - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "required": true - }, - "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])?))", - "required": true, - "location": "path", - "type": "string", - "description": "Project ID for this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "networkEndpointGroup": { - "type": "string", - "location": "path", - "required": true, - "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035." - } - }, - "request": { - "$ref": "NetworkEndpointGroupsAttachEndpointsRequest" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security Services.", + "default": "compute#networkEdgeSecurityServiceAggregatedList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "etag": { + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object", + "id": "NetworkEdgeSecurityServiceAggregatedList" + }, + "InstanceManagedByIgmError": { + "type": "object", + "properties": { + "error": { + "$ref": "InstanceManagedByIgmErrorManagedInstanceError", + "description": "[Output Only] Contents of the error." + }, + "timestamp": { + "type": "string", + "description": "[Output Only] The time that this error occurred. This value is in RFC3339 text format." + }, + "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" + } + }, + "id": "InstanceManagedByIgmError" + }, + "LocalDisk": { + "properties": { + "diskCount": { + "type": "integer", + "format": "int32", + "description": "Specifies the number of such disks." + }, + "diskSizeGb": { + "type": "integer", + "description": "Specifies the size of the disk in base-2 GB.", + "format": "int32" + }, + "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" + } + }, + "type": "object", + "id": "LocalDisk" + }, + "NodeTemplateList": { + "id": "NodeTemplateList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "array", + "items": { + "$ref": "NodeTemplate" }, - "httpMethod": "POST" + "description": "A list of NodeTemplate resources." }, - "testIamPermissions": { - "parameters": { - "zone": { - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "The name of the zone for this request." + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "properties": { + "data": { + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "resource": { - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "message": { "type": "string", - "description": "Name or id of the resource for this request." + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request.", - "required": true + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "type": "string" } }, - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", - "httpMethod": "POST", - "response": { - "$ref": "TestPermissionsResponse" - }, - "id": "compute.networkEndpointGroups.testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions" + "type": "object", + "description": "[Output Only] Informational warning message." }, - "insert": { - "parameterOrder": [ - "project", - "zone" - ], - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", - "response": { - "$ref": "Operation" - }, - "id": "compute.networkEndpointGroups.insert", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups", - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", - "parameters": { - "zone": { - "required": true, - "location": "path", - "type": "string", - "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035." - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request.", - "required": true - } + "kind": { + "type": "string", + "default": "compute#nodeTemplateList", + "description": "[Output Only] Type of resource.Always compute#nodeTemplateList for lists of node templates." + } + }, + "description": "Contains a list of node templates." + }, + "RegionInstanceGroupManagersRecreateRequest": { + "type": "object", + "id": "RegionInstanceGroupManagersRecreateRequest", + "properties": { + "instances": { + "type": "array", + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "request": { - "$ref": "NetworkEndpointGroup" - } + "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]." } } }, - "regionBackendServices": { - "methods": { - "list": { - "httpMethod": "GET", - "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.", - "response": { - "$ref": "BackendServiceList" - }, - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "region": { - "location": "path", - "required": true, - "description": "Name of the region scoping this request.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true - }, - "maxResults": { - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "pageToken": { - "location": "query", - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/regions/{region}/backendServices", - "id": "compute.regionBackendServices.list", - "path": "projects/{project}/regions/{region}/backendServices" + "PerInstanceConfig": { + "id": "PerInstanceConfig", + "properties": { + "preservedState": { + "description": "The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy.", + "$ref": "PreservedState" }, - "insert": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "status": { + "enum": [ + "APPLYING", + "DELETING", + "EFFECTIVE", + "NONE", + "UNAPPLIED", + "UNAPPLIED_DELETION" ], - "flatPath": "projects/{project}/regions/{region}/backendServices", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "region": { - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request.", - "required": true - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "parameterOrder": [ - "project", - "region" + "description": "The status of applying this per-instance configuration on the corresponding managed instance.", + "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" - }, - "request": { - "$ref": "BackendService" - }, - "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview.", - "path": "projects/{project}/regions/{region}/backendServices", - "httpMethod": "POST", - "id": "compute.regionBackendServices.insert" + "type": "string" }, - "get": { - "parameterOrder": [ - "project", - "region", - "backendService" - ], - "response": { - "$ref": "BackendService" - }, - "parameters": { - "project": { - "required": true, - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "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.", + "format": "byte", + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "InterconnectLocationList": { + "id": "InterconnectLocationList", + "type": "object", + "description": "Response to the list request, and contains a list of interconnect locations.", + "properties": { + "warning": { + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array" }, - "region": { + "message": { "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "description": "Name of the region scoping this request.", - "required": true + "description": "[Output Only] A human-readable description of the warning code." }, - "backendService": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "code": { "type": "string", - "description": "Name of the BackendService resource to return." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.regionBackendServices.get", - "description": "Returns the specified regional BackendService resource." + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "update": { - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "request": { - "$ref": "BackendService" + "items": { + "description": "A list of InterconnectLocation resources.", + "items": { + "$ref": "InterconnectLocation" }, - "httpMethod": "PUT", - "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview .", - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "parameterOrder": [ - "project", - "region", - "backendService" + "type": "array" + }, + "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" + }, + "kind": { + "type": "string", + "default": "compute#interconnectLocationList", + "description": "[Output Only] Type of resource. Always compute#interconnectLocationList for lists of interconnect locations." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + } + } + }, + "Subnetwork": { + "type": "object", + "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.", + "id": "Subnetwork", + "properties": { + "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" + }, + "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" + }, + "privateIpGoogleAccess": { + "type": "boolean", + "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." + }, + "role": { + "enum": [ + "ACTIVE", + "BACKUP" ], - "id": "compute.regionBackendServices.update", - "parameters": { - "region": { - "required": true, - "location": "path", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region scoping this request." - }, - "backendService": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string", - "required": true, - "location": "path", - "description": "Name of the BackendService resource to update." - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string", + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." + ], + "description": "The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. 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." + }, + "externalIpv6Prefix": { + "type": "string", + "description": "[Output Only] The external IPv6 address range that is assigned to this subnetwork." + }, + "gatewayAddress": { + "type": "string", + "description": "[Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "internalIpv6Prefix": { + "type": "string", + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork." + }, + "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" + }, + "ipv6CidrRange": { + "description": "[Output Only] This field is for internal use.", + "type": "string" + }, + "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.", + "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." + ], + "type": "string", + "enum": [ + "EXTERNAL", + "INTERNAL" ] }, - "patch": { - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "request": { - "$ref": "BackendService" - }, - "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.", - "id": "compute.regionBackendServices.patch", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "network": { + "type": "string", + "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." + }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "purpose": { + "type": "string", + "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "enumDescriptions": [ + "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Regular user created or automatically created subnet.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." ], - "parameterOrder": [ - "project", - "region", - "backendService" + "enum": [ + "INTERNAL_HTTPS_LOAD_BALANCER", + "PRIVATE", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ] + }, + "enableFlowLogs": { + "type": "boolean", + "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 with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER." + }, + "description": { + "type": "string", + "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." + }, + "privateIpv6GoogleAccess": { + "enum": [ + "DISABLE_GOOGLE_ACCESS", + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" ], - "parameters": { - "region": { - "type": "string", - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path" - }, - "backendService": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the BackendService resource to patch.", - "type": "string", - "required": true - }, - "project": { - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request." - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string" - } + "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": "This field is for internal use. This field can be both set at resource creation time and updated using patch." + }, + "secondaryIpRanges": { + "items": { + "$ref": "SubnetworkSecondaryRange" }, - "httpMethod": "PATCH", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}" + "type": "array", + "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." }, - "delete": { - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "httpMethod": "DELETE", - "id": "compute.regionBackendServices.delete", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "region": { + "description": "URL of the region where the Subnetwork resides. This field can be set only at resource creation time.", + "type": "string" + }, + "kind": { + "type": "string", + "default": "compute#subnetwork", + "description": "[Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources." + }, + "name": { + "type": "string", + "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])?" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "stackType": { + "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" - }, - "description": "Deletes the specified regional BackendService resource.", - "parameterOrder": [ - "project", - "region", - "backendService" + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" ], - "parameters": { - "backendService": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the BackendService resource to delete.", - "type": "string", - "required": true - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." - }, - "region": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string", - "description": "Name of the region scoping this request." - } - } + "type": "string", + "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." }, - "getHealth": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", - "description": "Gets the most recent health check results for this regional BackendService.", - "request": { - "$ref": "ResourceGroupReference" - }, - "response": { - "$ref": "BackendServiceGroupHealth" - }, - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region", - "backendService" + "state": { + "type": "string", + "enumDescriptions": [ + "Subnetwork is being drained.", + "Subnetwork is ready for use." ], - "parameters": { - "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" - }, - "backendService": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string", - "description": "Name of the BackendService resource for which to get health." - }, - "region": { - "required": true, - "type": "string", - "location": "path", - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - } - }, - "id": "compute.regionBackendServices.getHealth", - "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth" + "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", + "enum": [ + "DRAINING", + "READY" + ] } } }, - "instanceGroups": { - "methods": { - "delete": { - "httpMethod": "DELETE", - "response": { - "$ref": "Operation" + "ProjectsEnableXpnResourceRequest": { + "properties": { + "xpnResource": { + "$ref": "XpnResourceId", + "description": "Service resource (a.k.a service project) ID." + } + }, + "id": "ProjectsEnableXpnResourceRequest", + "type": "object" + }, + "VmEndpointNatMappings": { + "properties": { + "interfaceNatMappings": { + "type": "array", + "items": { + "$ref": "VmEndpointNatMappingsInterfaceNatMappings" + } + }, + "instanceName": { + "type": "string", + "description": "Name of the VM instance which the endpoint belongs to" + } + }, + "type": "object", + "id": "VmEndpointNatMappings", + "description": "Contain information of Nat mapping for a VM endpoint (i.e., NIC)." + }, + "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" + }, + "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" + } + }, + "id": "InstanceMoveRequest" + }, + "ReservationAggregatedList": { + "type": "object", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "kind": { + "default": "compute#reservationAggregatedList", + "description": "Type of resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "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.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "project": { - "type": "string", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "zone": { + "type": "array" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "type": "object", + "additionalProperties": { + "$ref": "ReservationsScopedList", + "description": "Name of the scope containing this set of reservations." + }, + "description": "A list of Allocation resources." + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "The name of the zone where the instance group is located.", - "required": true, - "location": "path" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } }, - "instanceGroup": { + "message": { "type": "string", - "location": "path", - "required": true, - "description": "The name of the instance group to delete." + "description": "[Output Only] A human-readable description of the warning code." } - }, - "id": "compute.instanceGroups.delete", - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}" + } + } + }, + "id": "ReservationAggregatedList", + "description": "Contains a list of reservations." + }, + "ExternalVpnGatewayInterface": { + "id": "ExternalVpnGatewayInterface", + "type": "object", + "description": "The interface for the external VPN gateway.", + "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 ", + "format": "uint32", + "type": "integer" }, - "aggregatedList": { - "path": "projects/{project}/aggregated/instanceGroups", - "parameterOrder": [ - "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" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "type": "boolean", - "location": "query", - "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." - }, - "maxResults": { - "minimum": "0", - "default": "500", - "format": "uint32", - "type": "integer", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - } - }, - "flatPath": "projects/{project}/aggregated/instanceGroups", - "response": { - "$ref": "InstanceGroupAggregatedList" + "ipAddress": { + "type": "string", + "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." + } + } + }, + "RouterNat": { + "properties": { + "endpointTypes": { + "items": { + "enum": [ + "ENDPOINT_TYPE_SWG", + "ENDPOINT_TYPE_VM" + ], + "enumDescriptions": [ + "This is used for Secure Web Gateway endpoints.", + "This is the default." + ], + "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 instance groups and sorts them by zone.", - "id": "compute.instanceGroups.aggregatedList" + "type": "array", + "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" }, - "listInstances": { - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", - "request": { - "$ref": "InstanceGroupsListInstancesRequest" - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", - "id": "compute.instanceGroups.listInstances", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "httpMethod": "POST", - "parameters": { - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "instanceGroup": { - "location": "path", - "required": true, - "description": "The name of the instance group from which you want to generate a list of included instances.", - "type": "string" - }, - "maxResults": { - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "location": "query", - "minimum": "0", - "type": "integer" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "location": "path", - "type": "string", - "required": true - } + "drainNatIps": { + "items": { + "type": "string" }, - "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.", - "response": { - "$ref": "InstanceGroupsListInstances" - } + "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" }, - "get": { - "id": "compute.instanceGroups.get", - "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.", - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameters": { - "zone": { - "location": "path", - "required": true, - "type": "string", - "description": "The name of the zone where the instance group is located." - }, - "instanceGroup": { - "required": true, - "location": "path", - "description": "The name of the instance group.", - "type": "string" - }, - "project": { - "location": "path", - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", - "response": { - "$ref": "InstanceGroup" - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}" + "udpIdleTimeoutSec": { + "description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set.", + "format": "int32", + "type": "integer" }, - "removeInstances": { - "httpMethod": "POST", - "parameters": { - "instanceGroup": { - "location": "path", - "type": "string", - "required": true, - "description": "The name of the instance group where the specified instances will be removed." - }, - "zone": { - "location": "path", - "type": "string", - "description": "The name of the zone where the instance group is located.", - "required": true - }, - "project": { - "description": "Project ID for this request.", - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - } + "tcpTimeWaitTimeoutSec": { + "description": "Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set.", + "type": "integer", + "format": "int32" + }, + "tcpEstablishedIdleTimeoutSec": { + "type": "integer", + "format": "int32", + "description": "Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set." + }, + "enableEndpointIndependentMapping": { + "type": "boolean" + }, + "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.", + "format": "int32", + "type": "integer" + }, + "tcpTransitoryIdleTimeoutSec": { + "description": "Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.", + "format": "int32", + "type": "integer" + }, + "rules": { + "type": "array", + "items": { + "$ref": "RouterNatRule" }, - "parameterOrder": [ - "project", - "zone", - "instanceGroup" + "description": "A list of rules associated with this NAT." + }, + "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 or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region.", + "type": "string", + "enum": [ + "ALL_SUBNETWORKS_ALL_IP_RANGES", + "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", + "LIST_OF_SUBNETWORKS" ], - "response": { - "$ref": "Operation" - }, - "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.", - "id": "compute.instanceGroups.removeInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances", - "request": { - "$ref": "InstanceGroupsRemoveInstancesRequest" + "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)" + ] + }, + "icmpIdleTimeoutSec": { + "description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.", + "format": "int32", + "type": "integer" + }, + "logConfig": { + "description": "Configure logging on this NAT.", + "$ref": "RouterNatLogConfig" + }, + "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" + }, + "maxPortsPerVm": { + "type": "integer", + "format": "int32", + "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." + }, + "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.", + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "array" + }, + "natIpAllocateOption": { + "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." ], - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances" + "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", + "enum": [ + "AUTO_ONLY", + "MANUAL_ONLY" + ] }, - "insert": { - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "zone": { - "description": "The name of the zone where you want to create the instance group.", - "required": true, - "location": "path", - "type": "string" - }, - "project": { - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path" - } - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroups", - "request": { - "$ref": "InstanceGroup" - }, - "path": "projects/{project}/zones/{zone}/instanceGroups", - "httpMethod": "POST", - "description": "Creates an instance group in the specified project using the parameters that are included in the request.", - "response": { - "$ref": "Operation" + "subnetworks": { + "items": { + "$ref": "RouterNatSubnetworkToNat" }, - "parameterOrder": [ - "project", - "zone" + "type": "array", + "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." + }, + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035." + } + }, + "type": "object", + "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.", + "id": "RouterNat" + }, + "TCPHealthCheck": { + "type": "object", + "id": "TCPHealthCheck", + "properties": { + "response": { + "type": "string", + "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII." + }, + "request": { + "type": "string", + "description": "The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII." + }, + "portSpecification": { + "enumDescriptions": [ + "The port number in port is used for health checking.", + "The portName is used for health checking.", + "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" ], - "id": "compute.instanceGroups.insert" + "type": "string", + "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields." }, - "addInstances": { - "id": "compute.instanceGroups.addInstances", - "httpMethod": "POST", - "request": { - "$ref": "InstanceGroupsAddInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "proxyHeader": { + "type": "string", + "enum": [ + "NONE", + "PROXY_V1" ], - "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.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", - "parameterOrder": [ - "project", - "zone", - "instanceGroup" + "enumDescriptions": [ + "", + "" ], - "parameters": { - "zone": { - "type": "string", - "location": "path", - "required": true, - "description": "The name of the zone where the instance group is located." - }, - "instanceGroup": { - "required": true, - "description": "The name of the instance group where you are adding instances.", - "type": "string", - "location": "path" - }, - "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])?))", - "required": true, - "description": "Project ID for this request.", - "type": "string", - "location": "path" - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances" + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE." }, - "setNamedPorts": { - "description": "Sets the named ports for the specified instance group.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "instanceGroup": { - "description": "The name of the instance group where the named ports are updated.", - "required": true, + "portName": { + "type": "string", + "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence." + }, + "port": { + "format": "int32", + "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.", + "type": "integer" + } + } + }, + "BackendBucketCdnPolicyNegativeCachingPolicy": { + "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" + } + }, + "description": "Specify CDN TTLs for response error codes.", + "id": "BackendBucketCdnPolicyNegativeCachingPolicy" + }, + "NodeTemplateAggregatedList": { + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "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" + } + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "message": { "type": "string", - "location": "path" + "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])?))", - "required": true, - "location": "path", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "type": "array" }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "required": true, - "type": "string", - "location": "path" - } - }, - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts", - "id": "compute.instanceGroups.setNamedPorts", - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts", - "httpMethod": "POST", - "request": { - "$ref": "InstanceGroupsSetNamedPortsRequest" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "list": { - "flatPath": "projects/{project}/zones/{zone}/instanceGroups", - "parameterOrder": [ - "project", - "zone" - ], - "httpMethod": "GET", - "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.", - "response": { - "$ref": "InstanceGroupList" - }, - "path": "projects/{project}/zones/{zone}/instanceGroups", - "id": "compute.instanceGroups.list", - "parameters": { - "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" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path" - }, - "zone": { - "type": "string", - "location": "path", - "required": true, - "description": "The name of the zone where the instance group is located." - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "maxResults": { - "type": "integer", - "minimum": "0", - "location": "query", - "default": "500", - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" } + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource.Always compute#nodeTemplateAggregatedList for aggregated lists of node templates.", + "default": "compute#nodeTemplateAggregatedList" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "type": "array" + }, + "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": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." } - } + }, + "type": "object", + "id": "NodeTemplateAggregatedList" }, - "urlMaps": { - "methods": { - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.urlMaps.list", - "parameterOrder": [ - "project" - ], - "parameters": { - "orderBy": { - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "maxResults": { - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "format": "uint32", - "type": "integer" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/global/urlMaps", - "description": "Retrieves the list of UrlMap resources available to the specified project.", - "flatPath": "projects/{project}/global/urlMaps", - "response": { - "$ref": "UrlMapList" - }, - "httpMethod": "GET" + "SecurityPolicyReference": { + "properties": { + "securityPolicy": { + "type": "string" + } + }, + "id": "SecurityPolicyReference", + "type": "object" + }, + "ResourceCommitment": { + "description": "Commitment for a particular resource (a Commitment is composed of one or more of these).", + "properties": { + "acceleratorType": { + "description": "Name of the accelerator type resource. Applicable only when the type is ACCELERATOR.", + "type": "string" }, - "aggregatedList": { - "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.", - "parameters": { - "project": { - "location": "path", - "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Name of the project scoping this request." - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "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.", - "type": "boolean", - "location": "query" - }, - "maxResults": { - "format": "uint32", - "minimum": "0", - "default": "500", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query" - } - }, - "id": "compute.urlMaps.aggregatedList", - "flatPath": "projects/{project}/aggregated/urlMaps", - "parameterOrder": [ - "project" - ], - "path": "projects/{project}/aggregated/urlMaps", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": { + "type": "string", + "enum": [ + "ACCELERATOR", + "LOCAL_SSD", + "MEMORY", + "UNSPECIFIED", + "VCPU" ], - "response": { - "$ref": "UrlMapsAggregatedList" - }, - "httpMethod": "GET" + "description": "Type of resource for which this commitment applies. Possible values are VCPU and MEMORY", + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] }, - "patch": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "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.", + "format": "int64", + "type": "string" + } + }, + "type": "object", + "id": "ResourceCommitment" + }, + "RegionList": { + "description": "Contains a list of region resources.", + "type": "object", + "properties": { + "warning": { + "properties": { + "message": { "type": "string", - "location": "query" + "description": "[Output Only] A human-readable description of the warning code." }, - "urlMap": { + "code": { "type": "string", - "location": "path", - "description": "Name of the UrlMap resource to patch.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + } } }, - "request": { - "$ref": "UrlMap" - }, - "httpMethod": "PATCH", - "id": "compute.urlMaps.patch", - "response": { - "$ref": "Operation" + "type": "object", + "description": "[Output Only] Informational warning message." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "items": { + "$ref": "Region" }, - "path": "projects/{project}/global/urlMaps/{urlMap}", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "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.", - "parameterOrder": [ - "project", - "urlMap" - ] + "type": "array", + "description": "A list of Region resources." }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "kind": { + "default": "compute#regionList", + "description": "[Output Only] Type of resource. Always compute#regionList for lists of regions.", + "type": "string" + } + }, + "id": "RegionList" + }, + "InterconnectDiagnosticsARPEntry": { + "type": "object", + "description": "Describing the ARP neighbor entries seen on this link", + "properties": { + "ipAddress": { + "description": "The IP address of this ARP neighbor.", + "type": "string" + }, + "macAddress": { + "type": "string", + "description": "The MAC address of this ARP neighbor." + } + }, + "id": "InterconnectDiagnosticsARPEntry" + }, + "HttpHeaderAction": { + "type": "object", + "id": "HttpHeaderAction", + "description": "The request and response header transformations that take effect before the request is passed along to the selected backendService.", + "properties": { + "requestHeadersToRemove": { + "type": "array", + "description": "A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.", + "items": { + "type": "string" + } + }, + "requestHeadersToAdd": { + "description": "Headers to add to a matching request before forwarding the request to the backendService.", + "items": { + "$ref": "HttpHeaderOption" }, - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string" - }, - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "urlMap": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "location": "path", - "description": "Name of the UrlMap resource to delete.", - "type": "string" - } + "type": "array" + }, + "responseHeadersToRemove": { + "type": "array", + "items": { + "type": "string" }, - "parameterOrder": [ - "project", - "urlMap" - ], - "description": "Deletes the specified UrlMap resource.", - "id": "compute.urlMaps.delete", - "path": "projects/{project}/global/urlMaps/{urlMap}" + "description": "A list of header names for headers that need to be removed from the response before sending the response back to the client." }, - "update": { - "response": { - "$ref": "Operation" + "responseHeadersToAdd": { + "description": "Headers to add the response before sending the response back to the client.", + "items": { + "$ref": "HttpHeaderOption" }, - "httpMethod": "PUT", - "id": "compute.urlMaps.update", - "description": "Updates the specified UrlMap resource with the data included in the request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "requestId": { - "type": "string", - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "urlMap": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the UrlMap resource to update.", - "type": "string", - "location": "path" - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "required": true - } - }, - "request": { - "$ref": "UrlMap" - }, - "path": "projects/{project}/global/urlMaps/{urlMap}", - "parameterOrder": [ - "project", - "urlMap" - ], - "flatPath": "projects/{project}/global/urlMaps/{urlMap}" + "type": "array" + } + } + }, + "DiskMoveRequest": { + "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.urlMaps.get", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "response": { - "$ref": "UrlMap" - }, - "parameters": { - "urlMap": { - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the UrlMap resource to return.", - "location": "path" - }, - "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])?))", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "type": "string" - } - }, - "httpMethod": "GET", - "path": "projects/{project}/global/urlMaps/{urlMap}", - "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", - "parameterOrder": [ - "project", - "urlMap" - ] + "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" + } + }, + "type": "object", + "id": "DiskMoveRequest" + }, + "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.", + "id": "NetworkEndpointGroupCloudRun", + "type": "object", + "properties": { + "urlMask": { + "description": "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" }, - "validate": { - "response": { - "$ref": "UrlMapsValidateResponse" - }, - "id": "compute.urlMaps.validate", - "parameters": { - "urlMap": { - "description": "Name of the UrlMap resource to be validated as.", - "location": "path", + "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" + }, + "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" + } + } + }, + "InstanceGroupList": { + "properties": { + "kind": { + "default": "compute#instanceGroupList", + "type": "string", + "description": "[Output Only] The resource type, which is always compute#instanceGroupList for instance group lists." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this 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" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "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])?))", - "required": true, - "location": "path", - "description": "Project ID for this request.", + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate", - "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.", - "path": "projects/{project}/global/urlMaps/{urlMap}/validate", - "parameterOrder": [ - "project", - "urlMap" - ], - "httpMethod": "POST", - "request": { - "$ref": "UrlMapsValidateRequest" } }, - "invalidateCache": { - "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "urlMap": { - "type": "string", - "description": "Name of the UrlMap scoping this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path" - } - }, - "request": { - "$ref": "CacheInvalidationRule" - }, - "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).", - "parameterOrder": [ - "project", - "urlMap" - ], - "httpMethod": "POST", - "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", - "response": { - "$ref": "Operation" + "items": { + "items": { + "$ref": "InstanceGroup" }, - "id": "compute.urlMaps.invalidateCache" + "description": "A list of InstanceGroup resources.", + "type": "array" + } + }, + "type": "object", + "description": "A list of InstanceGroup resources.", + "id": "InstanceGroupList" + }, + "HelpLink": { + "id": "HelpLink", + "type": "object", + "properties": { + "url": { + "description": "The URL of the link.", + "type": "string" }, - "insert": { - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "Operation" - }, - "httpMethod": "POST", - "id": "compute.urlMaps.insert", - "path": "projects/{project}/global/urlMaps", - "parameters": { - "project": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "description": "Project ID for this request.", - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "projects/{project}/global/urlMaps", - "request": { - "$ref": "UrlMap" - }, - "description": "Creates a UrlMap resource in the specified project using the data included in the request." + "description": { + "type": "string", + "description": "Describes what the link offers." } - } + }, + "description": "Describes a URL link." }, - "zoneOperations": { - "methods": { - "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "project", - "zone", - "operation" + "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.", + "properties": { + "status": { + "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." ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY", + "UPDATING" ], - "id": "compute.zoneOperations.delete", - "path": "projects/{project}/zones/{zone}/operations/{operation}", - "parameters": { - "project": { - "description": "Project ID for this request.", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "location": "path" - }, - "zone": { - "type": "string", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the zone for this request." - }, - "operation": { - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string", - "description": "Name of the Operations resource to delete." - } - }, - "description": "Deletes the specified zone-specific Operations resource.", - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}" + "description": "[Output Only] The status of the reservation." }, - "get": { - "parameterOrder": [ - "project", - "zone", - "operation" - ], - "description": "Retrieves the specified zone-specific Operations resource.", - "path": "projects/{project}/zones/{zone}/operations/{operation}", - "httpMethod": "GET", - "parameters": { - "zone": { - "required": true, - "location": "path", - "type": "string", - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "operation": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "description": "Name of the Operations resource to return.", - "location": "path", - "type": "string", - "required": true - }, - "project": { - "location": "path", - "type": "string", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", - "response": { - "$ref": "Operation" - }, - "id": "compute.zoneOperations.get", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "commitment": { + "type": "string", + "description": "[Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment." }, - "wait": { - "httpMethod": "POST", - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait", - "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`. ", - "response": { - "$ref": "Operation" + "satisfiesPzs": { + "type": "boolean", + "description": "[Output Only] Reserved for future use." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "kind": { + "description": "[Output Only] Type of the resource. Always compute#reservations for reservations.", + "type": "string", + "default": "compute#reservation" + }, + "specificReservation": { + "$ref": "AllocationSpecificSKUReservation", + "description": "Reservation for instances with specific machine shapes." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined fully-qualified URL for this resource." + }, + "name": { + "annotations": { + "required": [ + "compute.instances.insert" + ] }, - "parameters": { - "project": { - "location": "path", + "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])?", + "type": "string" + }, + "specificReservationRequired": { + "type": "boolean", + "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." + }, + "zone": { + "type": "string", + "description": "Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment." + }, + "shareSettings": { + "description": "Share-settings for shared-reservation", + "$ref": "ShareSettings" + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + } + }, + "id": "Reservation", + "type": "object" + }, + "FirewallPolicyList": { + "type": "object", + "id": "FirewallPolicyList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#firewallPolicyList for listsof FirewallPolicies", + "type": "string", + "default": "compute#firewallPolicyList" + }, + "items": { + "type": "array", + "description": "A list of FirewallPolicy resources.", + "items": { + "$ref": "FirewallPolicy" + } + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "message": { "type": "string", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." + "description": "[Output Only] A human-readable description of the warning code." }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "description": "Name of the zone for this request.", - "location": "path", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } }, - "operation": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "Name of the Operations resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "id": "compute.zoneOperations.wait", - "parameterOrder": [ - "project", - "zone", - "operation" - ], - "path": "projects/{project}/zones/{zone}/operations/{operation}/wait", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "type": "object" + } + } + }, + "DiskList": { + "properties": { + "nextPageToken": { + "type": "string", + "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." }, - "list": { - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "zone": { - "location": "path", - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the zone for request." - }, - "maxResults": { - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "format": "uint32", - "location": "query", - "default": "500", - "minimum": "0" + "items": { + "items": { + "$ref": "Disk" + }, + "type": "array", + "description": "A list of Disk resources." + }, + "warning": { + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "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])?))", - "required": true, - "description": "Project ID for this request.", - "location": "path", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "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.", - "type": "string", - "location": "query" - }, - "returnPartialSuccess": { - "location": "query", - "type": "boolean", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "filter": { + "message": { "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "description": "[Output Only] A human-readable description of the warning code." } }, - "httpMethod": "GET", - "description": "Retrieves a list of Operation resources contained within the specified zone.", - "parameterOrder": [ - "project", - "zone" + "type": "object", + "description": "[Output Only] Informational warning message." + }, + "kind": { + "default": "compute#diskList", + "type": "string", + "description": "[Output Only] Type of resource. Always compute#diskList for lists of disks." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + }, + "type": "object", + "description": "A list of Disk resources.", + "id": "DiskList" + }, + "ResourcePolicyResourceStatus": { + "type": "object", + "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.", + "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" + } + }, + "id": "ResourcePolicyResourceStatus" + }, + "BfdPacket": { + "type": "object", + "properties": { + "multipoint": { + "description": "The multipoint bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "yourDiscriminator": { + "format": "uint32", + "type": "integer", + "description": "The Your Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880" + }, + "controlPlaneIndependent": { + "description": "The Control Plane Independent 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" + }, + "authenticationPresent": { + "description": "The Authentication Present bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "poll": { + "type": "boolean", + "description": "The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880" + }, + "demand": { + "description": "The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "minRxIntervalMs": { + "type": "integer", + "description": "The Required Min RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", + "format": "uint32" + }, + "state": { + "enum": [ + "ADMIN_DOWN", + "DOWN", + "INIT", + "STATE_UNSPECIFIED", + "UP" ], - "flatPath": "projects/{project}/zones/{zone}/operations", - "response": { - "$ref": "OperationList" - }, - "id": "compute.zoneOperations.list", - "path": "projects/{project}/zones/{zone}/operations", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string", + "description": "The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880" + }, + "diagnostic": { + "type": "string", + "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", + "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" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ] + }, + "minTxIntervalMs": { + "type": "integer", + "format": "uint32", + "description": "The Desired Min TX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880" + }, + "length": { + "type": "integer", + "format": "uint32", + "description": "The length of the BFD Control packet in bytes. This is specified in section 4.1 of RFC5880" + }, + "version": { + "format": "uint32", + "description": "The version number of the BFD protocol, as specified in section 4.1 of RFC5880.", + "type": "integer" + }, + "minEchoRxIntervalMs": { + "type": "integer", + "description": "The Required Min Echo RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", + "format": "uint32" + }, + "myDiscriminator": { + "type": "integer", + "description": "The My Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880", + "format": "uint32" + }, + "multiplier": { + "type": "integer", + "format": "uint32", + "description": "The detection time multiplier of the BFD packet. This is specified in section 4.1 of RFC5880" } - } + }, + "id": "BfdPacket" }, - "regions": { - "methods": { - "list": { - "description": "Retrieves the list of region resources available to the specified project.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "GuestOsFeature": { + "properties": { + "type": { + "type": "string", + "enum": [ + "FEATURE_TYPE_UNSPECIFIED", + "GVNIC", + "MULTI_IP_SUBNET", + "SECURE_BOOT", + "SEV_CAPABLE", + "UEFI_COMPATIBLE", + "VIRTIO_SCSI_MULTIQUEUE", + "WINDOWS" ], - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "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])?))", - "required": true, - "location": "path", - "description": "Project ID for this request.", - "type": "string" - }, - "pageToken": { + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "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_SNP_CAPABLE For more information, see Enabling guest operating system features." + } + }, + "type": "object", + "id": "GuestOsFeature", + "description": "Guest OS features." + }, + "BackendServicesScopedList": { + "id": "BackendServicesScopedList", + "properties": { + "warning": { + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "default": "500", - "format": "uint32", - "location": "query", - "minimum": "0" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "type": "array" }, - "orderBy": { + "message": { "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + "description": "[Output Only] A human-readable description of the warning code." } }, - "response": { - "$ref": "RegionList" - }, - "path": "projects/{project}/regions", - "flatPath": "projects/{project}/regions", - "id": "compute.regions.list", - "parameterOrder": [ - "project" - ], - "httpMethod": "GET" + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "type": "object" }, - "get": { - "parameters": { - "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}", - "type": "string", - "required": true, - "location": "path" - }, - "project": { - "description": "Project ID for this request.", - "type": "string", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "response": { - "$ref": "Region" + "backendServices": { + "items": { + "$ref": "BackendService" }, - "flatPath": "projects/{project}/regions/{region}", - "path": "projects/{project}/regions/{region}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "parameterOrder": [ - "project", - "region" - ], - "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.", - "id": "compute.regions.get", - "httpMethod": "GET" + "description": "A list of BackendServices contained in this scope.", + "type": "array" } - } + }, + "type": "object" }, - "backendServices": { - "methods": { - "addSignedUrlKey": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", - "response": { - "$ref": "Operation" - }, - "id": "compute.backendServices.addSignedUrlKey", - "description": "Adds a key for validating requests with signed URLs for this backend service.", - "request": { - "$ref": "SignedUrlKey" - }, - "parameters": { - "project": { - "location": "path", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "description": "Project ID for this request." - }, - "backendService": { - "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", - "location": "path", - "type": "string", - "required": true - }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - } - }, - "flatPath": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", - "parameterOrder": [ - "project", - "backendService" - ] + "HealthCheckService": { + "id": "HealthCheckService", + "type": "object", + "properties": { + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" }, - "setSecurityPolicy": { - "request": { - "$ref": "SecurityPolicyReference" - }, - "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", - "httpMethod": "POST", - "id": "compute.backendServices.setSecurityPolicy", - "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview", - "parameterOrder": [ - "project", - "backendService" - ], - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "type": "string", - "location": "query" - }, - "project": { - "type": "string", - "required": true, - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path" - }, - "backendService": { - "location": "path", - "required": true, - "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", - "type": "string" - } - }, - "response": { - "$ref": "Operation" - }, - "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." }, - "get": { - "description": "Returns the specified BackendService resource. Gets a list of available backend services.", - "parameterOrder": [ - "project", - "backendService" - ], - "parameters": { - "backendService": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the BackendService resource to return.", - "location": "path" - }, - "project": { - "type": "string", - "location": "path", - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "flatPath": "projects/{project}/global/backendServices/{backendService}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "BackendService" - }, - "path": "projects/{project}/global/backendServices/{backendService}", - "id": "compute.backendServices.get", - "httpMethod": "GET" + "region": { + "type": "string", + "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." }, - "patch": { - "flatPath": "projects/{project}/global/backendServices/{backendService}", - "parameterOrder": [ - "project", - "backendService" - ], - "id": "compute.backendServices.patch", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "PATCH", - "request": { - "$ref": "BackendService" - }, - "parameters": { - "backendService": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the BackendService resource to patch.", - "location": "path" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string", - "description": "Project ID for this request." - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/global/backendServices/{backendService}", - "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.", - "response": { - "$ref": "Operation" + "name": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "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." + }, + "kind": { + "description": "[Output only] Type of the resource. Always compute#healthCheckServicefor health check services.", + "default": "compute#healthCheckService", + "type": "string" + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "fingerprint": { + "format": "byte", + "type": "string", + "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." + }, + "notificationEndpoints": { + "type": "array", + "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.", + "items": { + "type": "string" } }, - "getHealth": { - "httpMethod": "POST", - "path": "projects/{project}/global/backendServices/{backendService}/getHealth", - "flatPath": "projects/{project}/global/backendServices/{backendService}/getHealth", - "request": { - "$ref": "ResourceGroupReference" - }, - "id": "compute.backendServices.getHealth", - "response": { - "$ref": "BackendServiceGroupHealth" - }, - "description": "Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "networkEndpointGroups": { + "type": "array", + "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.", + "items": { + "type": "string" + } + }, + "healthStatusAggregationPolicy": { + "type": "string", + "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. .", + "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." ], - "parameters": { - "backendService": { - "location": "path", - "type": "string", - "required": true, - "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}" - }, - "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])?))", - "required": true, - "type": "string", - "location": "path" - } - }, - "parameterOrder": [ - "project", - "backendService" + "enum": [ + "AND", + "NO_AGGREGATION" ] }, - "update": { - "id": "compute.backendServices.update", - "httpMethod": "PUT", - "parameterOrder": [ - "project", - "backendService" - ], - "request": { - "$ref": "BackendService" + "healthChecks": { + "items": { + "type": "string" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10. 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 NEGs.", + "type": "array" + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + } + }, + "description": "Represents a Health-Check as a Service resource." + }, + "InstanceAggregatedList": { + "id": "InstanceAggregatedList", + "properties": { + "items": { + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of instances.", + "$ref": "InstancesScopedList" }, - "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.", - "parameters": { - "backendService": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "An object that contains a list of instances scoped by zone." + }, + "warning": { + "properties": { + "message": { "type": "string", - "location": "path", - "required": true, - "description": "Name of the BackendService resource to update." + "description": "[Output Only] A human-readable description of the warning code." }, - "project": { - "description": "Project ID for this request.", - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "type": "string" + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "code": { + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "type": "string", - "location": "query" + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } }, - "path": "projects/{project}/global/backendServices/{backendService}", - "flatPath": "projects/{project}/global/backendServices/{backendService}" + "type": "object", + "description": "[Output Only] Informational warning message." }, - "insert": { - "id": "compute.backendServices.insert", - "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview .", - "flatPath": "projects/{project}/global/backendServices", - "request": { - "$ref": "BackendService" + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#instanceAggregatedList for aggregated lists of Instance resources.", + "default": "compute#instanceAggregatedList" + }, + "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" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "unreachables": { + "items": { + "type": "string" }, - "response": { - "$ref": "Operation" + "description": "[Output Only] Unreachable resources.", + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersListErrorsResponse": { + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "type": "array", + "items": { + "$ref": "InstanceManagedByIgmError" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameterOrder": [ - "project" - ], - "path": "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])?))", - "type": "string", - "required": true, - "location": "path" + "description": "[Output Only] The list of errors of the managed instance group." + } + }, + "type": "object", + "id": "RegionInstanceGroupManagersListErrorsResponse" + }, + "ResourcePolicySnapshotSchedulePolicySchedule": { + "id": "ResourcePolicySnapshotSchedulePolicySchedule", + "description": "A schedule for disks where the schedueled operations are performed.", + "type": "object", + "properties": { + "dailySchedule": { + "$ref": "ResourcePolicyDailyCycle" + }, + "weeklySchedule": { + "$ref": "ResourcePolicyWeeklyCycle" + }, + "hourlySchedule": { + "$ref": "ResourcePolicyHourlyCycle" + } + } + }, + "VpnTunnelList": { + "description": "Contains a list of VpnTunnel resources.", + "id": "VpnTunnelList", + "properties": { + "items": { + "items": { + "$ref": "VpnTunnel" + }, + "description": "A list of VpnTunnel resources.", + "type": "array" + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. 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" - } - } - }, - "deleteSignedUrlKey": { - "id": "compute.backendServices.deleteSignedUrlKey", - "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", - "parameters": { - "keyName": { - "required": true, - "location": "query", - "type": "string", - "description": "The name of the Signed URL Key to delete." }, - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "location": "path", - "description": "Project ID for this request.", - "required": true, - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "backendService": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "required": true, - "location": "path", - "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035." + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } + } + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "default": "compute#vpnTunnelList" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this 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" + } + }, + "type": "object" + }, + "RegionSetLabelsRequest": { + "id": "RegionSetLabelsRequest", + "properties": { + "labelFingerprint": { + "type": "string", + "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.", + "format": "byte" + }, + "labels": { + "additionalProperties": { + "type": "string" }, - "parameterOrder": [ - "project", - "backendService", - "keyName" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" + "description": "The labels to set for this resource.", + "type": "object" + } + }, + "type": "object" + }, + "ShieldedInstanceIdentity": { + "properties": { + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#shieldedInstanceIdentity for shielded Instance identity entry.", + "default": "compute#shieldedInstanceIdentity" + }, + "encryptionKey": { + "description": "An Endorsement Key (EK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM.", + "$ref": "ShieldedInstanceIdentityEntry" + }, + "signingKey": { + "description": "An Attestation Key (AK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM.", + "$ref": "ShieldedInstanceIdentityEntry" + } + }, + "type": "object", + "id": "ShieldedInstanceIdentity", + "description": "A Shielded Instance Identity." + }, + "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. ", + "id": "LicenseCode", + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "type": "string", + "description": "[Output Only] Description of this License Code." + }, + "transferable": { + "type": "boolean", + "description": "[Output Only] If true, the license will remain attached when creating images or snapshots from disks. Otherwise, the license is not transferred." + }, + "licenseAlias": { + "items": { + "$ref": "LicenseCodeLicenseAlias" }, - "flatPath": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", - "description": "Deletes a key for validating requests with signed URLs for this backend service." + "type": "array", + "description": "[Output Only] URL and description aliases of Licenses with the same License Code." }, - "aggregatedList": { - "parameterOrder": [ - "project" + "state": { + "enum": [ + "DISABLED", + "ENABLED", + "RESTRICTED", + "STATE_UNSPECIFIED", + "TERMINATED" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": "[Output Only] Current state of this License Code.", + "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." ], - "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.", - "id": "compute.backendServices.aggregatedList", - "parameters": { - "maxResults": { - "format": "uint32", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query", - "minimum": "0", - "default": "500", - "type": "integer" - }, - "project": { - "description": "Name of the project scoping this request.", - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string", - "location": "query" - }, - "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" - }, - "includeAllScopes": { - "location": "query", - "type": "boolean", - "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." - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - } - }, - "httpMethod": "GET", - "path": "projects/{project}/aggregated/backendServices", - "flatPath": "projects/{project}/aggregated/backendServices", - "response": { - "$ref": "BackendServiceAggregatedList" + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "id": { + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "name": { + "pattern": "[0-9]{0,20}?", + "description": "[Output Only] Name of the resource. The name is 1-20 characters long and must be a valid 64 bit integer.", + "type": "string", + "annotations": { + "required": [ + "compute.licenses.insert" + ] } }, - "list": { - "description": "Retrieves the list of BackendService resources available to the specified project.", - "httpMethod": "GET", - "id": "compute.backendServices.list", - "parameterOrder": [ - "project" - ], - "parameters": { - "maxResults": { - "minimum": "0", - "location": "query", - "format": "uint32", - "type": "integer", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "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" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "type": "string", - "location": "path", - "description": "Project ID for this request." - }, - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" + "kind": { + "description": "[Output Only] Type of resource. Always compute#licenseCode for licenses.", + "default": "compute#licenseCode", + "type": "string" + } + }, + "type": "object" + }, + "AliasIpRange": { + "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" + } + }, + "description": "An alias IP range attached to an instance's network interface.", + "id": "AliasIpRange" + }, + "Route": { + "id": "Route", + "type": "object", + "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.", + "properties": { + "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" + }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "destRange": { + "type": "string", + "annotations": { + "required": [ + "compute.routes.insert" + ] + }, + "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported." + }, + "warnings": { + "items": { + "properties": { + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + }, + "code": { + "type": "string", + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - } + "type": "object" }, - "response": { - "$ref": "BackendServiceList" + "description": "[Output Only] If potential misconfigurations are detected for this route, this field will be populated with warning messages.", + "type": "array" + }, + "network": { + "description": "Fully-qualified URL of the network that this route applies to.", + "type": "string", + "annotations": { + "required": [ + "compute.routes.insert" + ] + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of this resource. Always compute#routes for Route resources.", + "default": "compute#route" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "nextHopNetwork": { + "type": "string", + "description": "The URL of the local network if it should handle matching packets." + }, + "priority": { + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "flatPath": "projects/{project}/global/backendServices", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "format": "uint32", + "type": "integer", + "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." + }, + "nextHopPeering": { + "type": "string", + "description": "[Output Only] The network peering name that should handle matching packets, which should conform to RFC1035." + }, + "routeStatus": { + "type": "string", + "description": "[Output only] The status of the route.", + "enum": [ + "ACTIVE", + "DROPPED", + "INACTIVE", + "PENDING" ], - "path": "projects/{project}/global/backendServices" + "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." + ] }, - "delete": { - "id": "compute.backendServices.delete", - "response": { - "$ref": "Operation" + "nextHopVpnTunnel": { + "type": "string", + "description": "The URL to a VpnTunnel that should handle matching packets." + }, + "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" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined fully-qualified URL for this resource." + }, + "tags": { + "description": "A list of instance tags to which this route applies.", + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "parameterOrder": [ - "project", - "backendService" + "items": { + "type": "string" + }, + "type": "array" + }, + "routeType": { + "enumDescriptions": [ + "", + "", + "", + "" ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "BGP", + "STATIC", + "SUBNET", + "TRANSIT" ], - "parameters": { - "requestId": { - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string", - "location": "path" - }, - "backendService": { - "type": "string", - "required": true, - "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" - } + "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" + }, + "name": { + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "path": "projects/{project}/global/backendServices/{backendService}", - "flatPath": "projects/{project}/global/backendServices/{backendService}", - "description": "Deletes the specified BackendService resource." + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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." + }, + "asPaths": { + "items": { + "$ref": "RouteAsPath" + }, + "type": "array", + "description": "[Output Only] AS path." + }, + "nextHopIlb": { + "type": "string", + "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 " + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this field when you create the resource." + }, + "nextHopIp": { + "description": "The network IP address of an instance that should handle matching packets. Only IPv4 is supported.", + "type": "string" } } }, - "regionCommitments": { - "methods": { - "insert": { - "response": { - "$ref": "Operation" - }, - "request": { - "$ref": "Commitment" + "ProjectsDisableXpnResourceRequest": { + "properties": { + "xpnResource": { + "$ref": "XpnResourceId", + "description": "Service resource (a.k.a service project) ID." + } + }, + "id": "ProjectsDisableXpnResourceRequest", + "type": "object" + }, + "TargetSslProxyList": { + "type": "object", + "description": "Contains a list of TargetSslProxy resources.", + "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "items": { + "type": "array", + "items": { + "$ref": "TargetSslProxy" }, - "parameters": { - "project": { - "required": true, - "location": "path", - "type": "string", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request." + "description": "A list of TargetSslProxy resources." + }, + "kind": { + "default": "compute#targetSslProxyList", + "description": "Type of resource.", + "type": "string" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "warning": { + "type": "object", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" }, - "requestId": { - "location": "query", + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "location": "path", - "type": "string", - "description": "Name of the region for this request." + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "type": "array" } }, - "id": "compute.regionCommitments.insert", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "httpMethod": "POST", - "parameterOrder": [ - "project", - "region" - ], - "path": "projects/{project}/regions/{region}/commitments", - "flatPath": "projects/{project}/regions/{region}/commitments", - "description": "Creates a commitment in the specified project using the data included in the request." + "description": "[Output Only] Informational warning message." }, - "list": { - "flatPath": "projects/{project}/regions/{region}/commitments", - "parameterOrder": [ - "project", - "region" - ], - "id": "compute.regionCommitments.list", - "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.", - "response": { - "$ref": "CommitmentList" - }, - "httpMethod": "GET", - "parameters": { - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "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" - }, - "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])?))", - "required": true, - "location": "path", - "type": "string", - "description": "Project ID for this request." - }, - "region": { - "location": "path", - "type": "string", - "description": "Name of the region for this request.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + }, + "id": "TargetSslProxyList" + }, + "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.", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", + "default": "compute#notificationEndpoint", + "type": "string" + }, + "name": { + "type": "string", + "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])?" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "grpcSettings": { + "$ref": "NotificationEndpointGrpcSettings", + "description": "Settings of the gRPC notification endpoint including the endpoint URL and the retry duration." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "id": { + "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", + "format": "uint64", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "type": "string", + "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." + } + }, + "id": "NotificationEndpoint", + "type": "object" + }, + "TargetHttpsProxyAggregatedList": { + "properties": { + "warning": { + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, - "filter": { + "message": { "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" + "description": "[Output Only] A human-readable description of the warning code." }, - "pageToken": { - "location": "query", + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "type": "integer", - "format": "uint32", - "minimum": "0", - "location": "query" + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "path": "projects/{project}/regions/{region}/commitments" + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "get": { - "path": "projects/{project}/regions/{region}/commitments/{commitment}", - "response": { - "$ref": "Commitment" - }, - "parameterOrder": [ - "project", - "region", - "commitment" - ], - "httpMethod": "GET", - "id": "compute.regionCommitments.get", - "parameters": { - "region": { - "type": "string", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "location": "path" - }, - "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, - "description": "Project ID for this request.", - "type": "string" - }, - "commitment": { - "description": "Name of the commitment to return.", - "location": "path", - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" - } - }, - "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.", - "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies.", + "type": "string", + "default": "compute#targetHttpsProxyAggregatedList" }, - "aggregatedList": { - "parameterOrder": [ - "project" - ], - "httpMethod": "GET", - "flatPath": "projects/{project}/aggregated/commitments", - "response": { - "$ref": "CommitmentAggregatedList" + "items": { + "description": "A list of TargetHttpsProxiesScopedList resources.", + "additionalProperties": { + "description": "Name of the scope containing this set of TargetHttpsProxies.", + "$ref": "TargetHttpsProxiesScopedList" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "path": "projects/{project}/aggregated/commitments", - "description": "Retrieves an aggregated list of commitments by region.", - "parameters": { - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "maxResults": { - "location": "query", - "format": "uint32", - "type": "integer", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "minimum": "0" - }, - "filter": { - "type": "string", - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```" - }, - "returnPartialSuccess": { - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean" - }, - "includeAllScopes": { - "location": "query", - "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.", - "type": "boolean" - }, - "project": { - "type": "string", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } + "type": "object" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + }, + "id": "TargetHttpsProxyAggregatedList", + "type": "object" + }, + "InstanceGroupManagersDeleteInstancesRequest": { + "id": "InstanceGroupManagersDeleteInstancesRequest", + "type": "object", + "properties": { + "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" + }, + "instances": { + "items": { + "type": "string" }, - "id": "compute.regionCommitments.aggregatedList" + "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" } } }, - "zones": { - "methods": { - "list": { - "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.", - "flatPath": "projects/{project}/zones", - "parameterOrder": [ - "project" - ], - "httpMethod": "GET", - "id": "compute.zones.list", - "response": { - "$ref": "ZoneList" + "SslPoliciesListAvailableFeaturesResponse": { + "id": "SslPoliciesListAvailableFeaturesResponse", + "type": "object", + "properties": { + "features": { + "items": { + "type": "string" }, - "path": "projects/{project}/zones", - "parameters": { - "maxResults": { - "minimum": "0", - "type": "integer", - "format": "uint32", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "location": "query" - }, - "filter": { - "location": "query", - "type": "string", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = 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" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "type": "string", - "location": "query" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - } - } + "type": "array" + } + } + }, + "RouterAdvertisedIpRange": { + "description": "Description-tagged IP ranges for the router to advertise.", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "The IP range to advertise. The value must be a CIDR-formatted string." }, - "get": { - "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.", - "httpMethod": "GET", - "flatPath": "projects/{project}/zones/{zone}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "Zone" - }, - "id": "compute.zones.get", - "parameters": { - "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])?))", - "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request." - }, - "zone": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the zone resource to return.", - "type": "string", - "location": "path" - } + "description": { + "description": "User-specified description for the IP range.", + "type": "string" + } + }, + "id": "RouterAdvertisedIpRange" + }, + "GlobalSetPolicyRequest": { + "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" + }, + "etag": { + "type": "string", + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "format": "byte" + }, + "bindings": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "items": { + "$ref": "Binding" }, - "path": "projects/{project}/zones/{zone}", - "parameterOrder": [ - "project", - "zone" - ] + "type": "array" } - } + }, + "type": "object", + "id": "GlobalSetPolicyRequest" }, - "vpnTunnels": { - "methods": { - "get": { - "id": "compute.vpnTunnels.get", - "parameters": { - "project": { - "location": "path", - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, + "AddressesScopedList": { + "properties": { + "warning": { + "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "region": { - "description": "Name of the region for this request.", - "location": "path", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "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}", + "code": { "type": "string", - "required": true, - "location": "path" + "description": "[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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } }, - "response": { - "$ref": "VpnTunnel" - }, - "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "parameterOrder": [ - "project", - "region", - "vpnTunnel" - ], - "httpMethod": "GET" + "type": "object" }, - "list": { - "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.vpnTunnels.list", - "path": "projects/{project}/regions/{region}/vpnTunnels", - "parameterOrder": [ - "project", - "region" - ], - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "pageToken": { - "type": "string", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query" - }, - "project": { - "required": true, - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "location": "path", - "type": "string" - }, - "orderBy": { - "type": "string", - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "returnPartialSuccess": { - "type": "boolean", - "location": "query", - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." - }, - "region": { - "required": true, - "description": "Name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "maxResults": { - "type": "integer", - "default": "500", - "minimum": "0", - "format": "uint32", - "location": "query", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" - } + "addresses": { + "description": "[Output Only] A list of addresses contained in this scope.", + "items": { + "$ref": "Address" }, - "flatPath": "projects/{project}/regions/{region}/vpnTunnels", - "response": { - "$ref": "VpnTunnelList" + "type": "array" + } + }, + "id": "AddressesScopedList", + "type": "object" + }, + "ResourceGroupReference": { + "properties": { + "group": { + "type": "string", + "description": "A URI referencing one of the instance groups or network endpoint groups listed in the backend service." + } + }, + "type": "object", + "id": "ResourceGroupReference" + }, + "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.", + "id": "BackendBucketCdnPolicyBypassCacheOnRequestHeader", + "type": "object", + "properties": { + "headerName": { + "type": "string", + "description": "The header field name to match on when bypassing cache. Values are case-insensitive." + } + } + }, + "RegionSetPolicyRequest": { + "type": "object", + "id": "RegionSetPolicyRequest", + "properties": { + "policy": { + "$ref": "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." + }, + "etag": { + "format": "byte", + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "type": "string" + }, + "bindings": { + "type": "array", + "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "items": { + "$ref": "Binding" } + } + } + }, + "InterconnectDiagnosticsLinkOpticalPower": { + "properties": { + "value": { + "type": "number", + "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.", + "format": "float" }, - "delete": { - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "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. ", + "enum": [ + "HIGH_ALARM", + "HIGH_WARNING", + "LOW_ALARM", + "LOW_WARNING", + "OK" ], - "parameterOrder": [ - "project", - "region", - "vpnTunnel" + "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." ], - "description": "Deletes the specified VpnTunnel resource.", - "parameters": { - "project": { - "type": "string", - "required": true, - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - }, - "requestId": { - "location": "query", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } + }, + "id": "InterconnectDiagnosticsLinkOpticalPower", + "type": "object" + }, + "DiskTypesScopedList": { + "id": "DiskTypesScopedList", + "properties": { + "diskTypes": { + "description": "[Output Only] A list of disk types contained in this scope.", + "items": { + "$ref": "DiskType" + }, + "type": "array" + }, + "warning": { + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "region": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "location": "path", - "required": true + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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": "array" }, - "vpnTunnel": { + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "location": "path", - "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}", - "required": true + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ] } }, - "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "id": "compute.vpnTunnels.delete", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "response": { - "$ref": "Operation" - } + "type": "object", + "description": "[Output Only] Informational warning which replaces the list of disk types when the list is empty." + } + }, + "type": "object" + }, + "VmEndpointNatMappingsList": { + "id": "VmEndpointNatMappingsList", + "type": "object", + "description": "Contains a list of VmEndpointNatMappings.", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." }, - "insert": { - "path": "projects/{project}/regions/{region}/vpnTunnels", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels", - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "VpnTunnel" - }, - "id": "compute.vpnTunnels.insert", - "response": { - "$ref": "Operation" - }, - "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.", - "httpMethod": "POST", - "parameters": { - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "required": true, - "type": "string" - }, - "region": { - "required": true, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "Name of the region for this request.", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] + "kind": { + "default": "compute#vmEndpointNatMappingsList", + "type": "string", + "description": "[Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for lists of Nat mappings of VM endpoints." }, - "aggregatedList": { - "parameters": { - "includeAllScopes": { - "type": "boolean", - "location": "query", - "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." - }, - "orderBy": { - "location": "query", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "type": "string" - }, - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "type": "boolean", - "location": "query" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." - }, - "maxResults": { - "minimum": "0", - "location": "query", - "default": "500", - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "type": "integer", - "format": "uint32" - }, - "project": { - "type": "string", - "description": "Project ID for this request.", - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" - } - }, - "path": "projects/{project}/aggregated/vpnTunnels", - "response": { - "$ref": "VpnTunnelAggregatedList" - }, - "description": "Retrieves an aggregated list of VPN tunnels.", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "projects/{project}/aggregated/vpnTunnels", - "parameterOrder": [ - "project" - ], - "httpMethod": "GET", - "id": "compute.vpnTunnels.aggregatedList" - } - } - }, - "routes": { - "methods": { - "insert": { - "httpMethod": "POST", - "path": "projects/{project}/global/routes", - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Route" - }, - "flatPath": "projects/{project}/global/routes", - "description": "Creates a Route resource in the specified project using the data included in the request.", - "parameters": { - "requestId": { - "location": "query", - "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." - }, - "project": { - "required": true, - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "description": "Project ID for this request.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "response": { - "$ref": "Operation" - }, - "id": "compute.routes.insert" + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." }, - "get": { - "parameters": { - "route": { - "type": "string", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "description": "Name of the Route resource to return." - }, - "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])?))", - "type": "string", - "location": "path", - "required": true, - "description": "Project ID for this request." - } - }, - "id": "compute.routes.get", - "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.", - "path": "projects/{project}/global/routes/{route}", - "httpMethod": "GET", - "flatPath": "projects/{project}/global/routes/{route}", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "response": { - "$ref": "Route" - }, - "parameterOrder": [ - "project", - "route" - ] + "nextPageToken": { + "type": "string", + "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." }, - "delete": { - "description": "Deletes the specified Route resource.", - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "id": "compute.routes.delete", - "response": { - "$ref": "Operation" - }, - "flatPath": "projects/{project}/global/routes/{route}", - "path": "projects/{project}/global/routes/{route}", - "parameters": { - "requestId": { - "location": "query", + "warning": { + "properties": { + "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_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.", - "required": true, - "type": "string", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + }, + "type": "object" + }, + "type": "array" }, - "route": { - "description": "Name of the Route resource to delete.", - "required": true, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "type": "string" + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." } }, - "parameterOrder": [ - "project", - "route" - ] + "type": "object", + "description": "[Output Only] Informational warning message." }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "id": "compute.routes.list", - "response": { - "$ref": "RouteList" - }, - "flatPath": "projects/{project}/global/routes", - "parameters": { - "filter": { - "location": "query", - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = 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, - "description": "Project ID for this request.", - "type": "string" - }, - "orderBy": { - "location": "query", - "type": "string", - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." - }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "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`)", - "minimum": "0", - "default": "500", - "location": "query", - "format": "uint32", - "type": "integer" - }, - "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" - } + "result": { + "items": { + "$ref": "VmEndpointNatMappings" }, - "path": "projects/{project}/global/routes", - "description": "Retrieves the list of Route resources available to the specified project.", - "httpMethod": "GET", - "parameterOrder": [ - "project" - ] + "type": "array", + "description": "[Output Only] A list of Nat mapping information of VM endpoints." } } - } - }, - "discoveryVersion": "v1", - "title": "Compute Engine API", - "batchPath": "batch/compute/v1", - "mtlsRootUrl": "https://compute.mtls.googleapis.com/", - "basePath": "/compute/v1/", - "baseUrl": "https://compute.googleapis.com/compute/v1/", - "documentationLink": "https://cloud.google.com/compute/", - "parameters": { - "prettyPrint": { - "type": "boolean", - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true" - }, - "upload_protocol": { - "type": "string", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "location": "query" - }, - "$.xgafv": { - "type": "string", - "location": "query", - "description": "V1 error format.", - "enum": [ - "1", - "2" - ], - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ] - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "type": "string", - "location": "query", - "description": "Selector specifying which fields to include in a partial response." - }, - "alt": { - "location": "query", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "enumDescriptions": [ - "Responses with Content-Type of application/json", - "Media download with context-dependent Content-Type", - "Responses with Content-Type of application/x-protobuf" - ], - "description": "Data format for response.", - "default": "json" - }, - "oauth_token": { - "type": "string", - "description": "OAuth 2.0 token for the current user.", - "location": "query" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "key": { - "location": "query", - "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." - }, - "userIp": { - "location": "query", - "description": "Legacy name for parameter that has been superseded by `quotaUser`.", - "type": "string" - }, - "access_token": { - "location": "query", - "type": "string", - "description": "OAuth access token." }, - "quotaUser": { - "location": "query", - "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." - } - }, - "protocol": "rest", - "kind": "discovery#restDescription", - "rootUrl": "https://compute.googleapis.com/", - "auth": { - "oauth2": { - "scopes": { - "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/compute": { - "description": "View and manage your Google Compute Engine resources" - }, - "https://www.googleapis.com/auth/devstorage.read_write": { - "description": "Manage your data in Cloud Storage and see the email address of your Google Account" + "Policy": { + "properties": { + "version": { + "format": "int32", + "type": "integer", + "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)." }, - "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." + "rules": { + "type": "array", + "description": "This is deprecated and has no effect. Do not use.", + "items": { + "$ref": "Rule" + } }, - "https://www.googleapis.com/auth/devstorage.read_only": { - "description": "View your data in Google Cloud Storage" - } - } - } - }, - "id": "compute:v1", - "name": "compute", - "schemas": { - "InstanceGroupManagersSetTargetPoolsRequest": { - "id": "InstanceGroupManagersSetTargetPoolsRequest", - "properties": { - "targetPools": { + "auditConfigs": { "items": { - "type": "string" + "$ref": "AuditConfig" }, "type": "array", - "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." + "description": "Specifies cloud audit logging configuration for this policy." }, - "fingerprint": { - "type": "string", + "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.", "format": "byte", - "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" + }, + "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`.", + "items": { + "$ref": "Binding" + }, + "type": "array" } }, - "type": "object" + "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", + "id": "Policy" }, - "RegionInstanceGroupManagersDeleteInstancesRequest": { + "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": { + "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse", "type": "object", "properties": { - "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" - }, - "instances": { + "firewallPolicys": { + "description": "Effective firewalls from firewall policy.", "type": "array", - "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].", "items": { - "type": "string" + "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" } + }, + "firewalls": { + "items": { + "$ref": "Firewall" + }, + "type": "array", + "description": "Effective firewalls on the network." } - }, - "id": "RegionInstanceGroupManagersDeleteInstancesRequest" + } }, - "LogConfig": { + "ManagedInstanceInstanceHealth": { "type": "object", + "id": "ManagedInstanceInstanceHealth", "properties": { - "counter": { - "description": "This is deprecated and has no effect. Do not use.", - "$ref": "LogConfigCounterOptions" - }, - "cloudAudit": { - "$ref": "LogConfigCloudAuditOptions", - "description": "This is deprecated and has no effect. Do not use." + "healthCheck": { + "type": "string", + "description": "[Output Only] The URL for the health check that verifies whether the instance is healthy." }, - "dataAccess": { - "description": "This is deprecated and has no effect. Do not use.", - "$ref": "LogConfigDataAccessOptions" - } - }, - "description": "This is deprecated and has no effect. Do not use.", - "id": "LogConfig" - }, - "ZoneSetLabelsRequest": { - "type": "object", - "properties": { - "labels": { - "description": "The labels to set for this resource.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "type": "string", - "format": "byte", - "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." - } - }, - "id": "ZoneSetLabelsRequest" - }, - "BulkInsertInstanceResourcePerInstanceProperties": { - "properties": { - "name": { - "description": "This field is only temporary. It will be removed. Do not use it.", - "type": "string" - } - }, - "type": "object", - "id": "BulkInsertInstanceResourcePerInstanceProperties", - "description": "Per-instance properties to be set on individual instances. To be extended in the future." - }, - "HealthCheckServiceReference": { - "type": "object", - "properties": { - "healthCheckService": { - "type": "string" - } - }, - "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 " - }, - "NetworkPeering": { - "id": "NetworkPeering", - "type": "object", - "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.", - "properties": { - "name": { - "type": "string", - "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." - }, - "autoCreateRoutes": { - "type": "boolean", - "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." - }, - "state": { - "type": "string", + "detailedHealthState": { + "description": "[Output Only] The current detailed instance health state.", "enum": [ - "ACTIVE", - "INACTIVE" + "DRAINING", + "HEALTHY", + "TIMEOUT", + "UNHEALTHY", + "UNKNOWN" ], - "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.", "enumDescriptions": [ - "Matching configuration exists on the peer.", - "There is no matching configuration on the peer, including the case when peer does not exist." - ] - }, - "exportSubnetRoutesWithPublicIp": { - "type": "boolean", - "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." - }, - "exportCustomRoutes": { - "description": "Whether to export the custom routes to peer network.", - "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" - }, - "exchangeSubnetRoutes": { - "type": "boolean", - "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." - }, - "importCustomRoutes": { - "description": "Whether to import the custom routes from peer network.", - "type": "boolean" - }, - "network": { - "type": "string", - "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." - }, - "stateDetails": { - "type": "string", - "description": "[Output Only] Details about the current state of the peering." - }, - "peerMtu": { - "format": "int32", - "type": "integer", - "description": "Maximum Transmission Unit in bytes." - } - } - }, - "ShieldedInstanceIdentityEntry": { - "type": "object", - "id": "ShieldedInstanceIdentityEntry", - "description": "A Shielded Instance Identity Entry.", - "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" - } - } - }, - "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.", + "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." + ], "type": "string" } } }, - "RouterInterface": { - "type": "object", + "LicensesListResponse": { "properties": { - "managementType": { - "type": "string", - "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. ", - "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." - ], - "enum": [ - "MANAGED_BY_ATTACHMENT", - "MANAGED_BY_USER" - ] - }, - "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 virtual machine instance.", + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", "type": "string" }, - "redundantInterface": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "privateIpAddress": { - "type": "string", - "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." - }, - "ipRange": { - "type": "string", - "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." - }, - "name": { - "type": "string", - "annotations": { - "required": [ - "compute.routers.insert" - ] - }, - "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])?" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + } + }, + "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + } + } }, - "subnetwork": { + "id": { "type": "string", - "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." + "description": "[Output Only] Unique identifier for the resource; defined by the server." }, - "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 virtual machine instance.", - "type": "string" - } - }, - "id": "RouterInterface" - }, - "TestPermissionsResponse": { - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + "items": { + "description": "A list of License resources.", "items": { - "type": "string" + "$ref": "License" }, "type": "array" - } - }, - "id": "TestPermissionsResponse", - "type": "object" - }, - "HttpHeaderMatch": { - "properties": { - "invertMatch": { - "description": "If set to false, the headerMatch is considered a match if the match criteria above are met. If set to true, the headerMatch is considered a match if the match criteria above are NOT met. The default setting is false.", - "type": "boolean" - }, - "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" - }, - "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" - }, - "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 target gRPC proxy that has 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" - }, - "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. Note that rangeMatch is not supported for Loadbalancers that have their 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" - }, - "regexMatch": { + "nextPageToken": { "type": "string", - "description": "The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: github.com/google/re2/wiki/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. Note that regexMatch only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED." + "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." } }, - "id": "HttpHeaderMatch", - "type": "object", - "description": "matchRule criteria for request header matches." - }, - "SignedUrlKey": { "type": "object", - "id": "SignedUrlKey", - "properties": { - "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" - }, - "keyName": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "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." - } - }, - "description": "Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs" + "id": "LicensesListResponse" }, - "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "SchedulingNodeAffinity": { "properties": { - "type": { - "type": "string", - "enum": [ - "HIERARCHY", - "UNSPECIFIED" - ], - "description": "[Output Only] The type of the firewall policy.", + "operator": { "enumDescriptions": [ - "", + "Requires Compute Engine to seek for matched nodes.", + "Requires Compute Engine to avoid certain nodes.", "" + ], + "description": "Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity.", + "type": "string", + "enum": [ + "IN", + "NOT_IN", + "OPERATOR_UNSPECIFIED" ] }, - "rules": { + "values": { "type": "array", - "description": "The rules that apply to the network.", + "description": "Corresponds to the label values of Node resource.", "items": { - "$ref": "FirewallPolicyRule" + "type": "string" } }, - "shortName": { - "type": "string", - "description": "[Output Only] The short name of the firewall policy." - }, - "displayName": { - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", + "key": { + "description": "Corresponds to the label key of Node resource.", "type": "string" - }, - "name": { - "type": "string", - "description": "[Output Only] The name of the firewall policy." } }, - "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", - "type": "object" - }, - "SubnetworksExpandIpCidrRangeRequest": { - "id": "SubnetworksExpandIpCidrRangeRequest", "type": "object", + "id": "SchedulingNodeAffinity", + "description": "Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled." + }, + "RegionInstanceGroupManagersSetTemplateRequest": { + "id": "RegionInstanceGroupManagersSetTemplateRequest", "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.", + "instanceTemplate": { + "description": "URL of the InstanceTemplate resource from which all new instances will be created.", "type": "string" } - } + }, + "type": "object" }, - "TargetInstanceList": { - "type": "object", - "id": "TargetInstanceList", - "description": "Contains a list of TargetInstance resources.", + "NodeGroupsListNodes": { "properties": { + "nextPageToken": { + "type": "string", + "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." + }, + "kind": { + "default": "compute#nodeGroupsListNodes", + "description": "[Output Only] The resource type, which is always compute.nodeGroupsListNodes for the list of nodes in the specified node group.", + "type": "string" + }, "items": { + "type": "array", "items": { - "$ref": "TargetInstance" + "$ref": "NodeGroupNode" }, - "type": "array", - "description": "A list of TargetInstance resources." - }, - "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": "A list of Node resources." }, "selfLink": { "description": "[Output Only] Server-defined URL for this resource.", @@ -28653,21 +32266,21 @@ "warning": { "properties": { "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", "items": { "type": "object", "properties": { "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" }, "key": { "type": "string", "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." } } - } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, "code": { "enumDescriptions": [ @@ -28679,10 +32292,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -28697,7 +32312,6 @@ "When undeclared properties in the schema are present", "A given scope cannot be reached." ], - "type": "string", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -28707,10 +32321,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -28725,7 +32341,8 @@ "UNDECLARED_PROPERTIES", "UNREACHABLE" ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string" }, "message": { "description": "[Output Only] A human-readable description of the warning code.", @@ -28738,334 +32355,117 @@ "id": { "type": "string", "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "default": "compute#targetInstanceList", - "description": "Type of resource.", - "type": "string" } - } + }, + "type": "object", + "id": "NodeGroupsListNodes" }, - "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.", + "CustomerEncryptionKey": { + "type": "object", "properties": { - "googleReferenceId": { - "type": "string", - "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." - }, - "mtu": { - "type": "integer", - "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.", - "format": "int32" - }, - "operationalStatus": { - "enum": [ - "OS_ACTIVE", - "OS_UNPROVISIONED" - ], - "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. ", - "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." - ], + "sha256": { + "description": "[Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.", "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" + "rawKey": { + "type": "string", + "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=\" " }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "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" }, - "state": { - "enum": [ - "ACTIVE", - "DEFUNCT", - "PARTNER_REQUEST_RECEIVED", - "PENDING_CUSTOMER", - "PENDING_PARTNER", - "STATE_UNSPECIFIED", - "UNPROVISIONED" - ], - "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. ", - "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." - ], + "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" }, - "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.", + "kmsKeyName": { "type": "string", - "enum": [ - "AVAILABILITY_DOMAIN_1", - "AVAILABILITY_DOMAIN_2", - "AVAILABILITY_DOMAIN_ANY" - ], - "enumDescriptions": [ - "", - "", - "" - ] + "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 " + } + }, + "id": "CustomerEncryptionKey" + }, + "HttpHeaderMatch": { + "type": "object", + "properties": { + "presentMatch": { + "type": "boolean", + "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." }, - "interconnect": { + "regexMatch": { "type": "string", - "description": "URL of the underlying Interconnect object that this attachment's traffic will traverse through." - }, - "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" + "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. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED." }, - "description": { - "description": "An optional description of this resource.", - "type": "string" + "headerName": { + "type": "string", + "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`." }, - "cloudRouterIpAddress": { - "description": "[Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.", - "type": "string" + "rangeMatch": { + "$ref": "Int64RangeMatch", + "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." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "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" }, - "customerRouterIpAddress": { + "exactMatch": { "type": "string", - "description": "[Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "dataplaneVersion": { - "format": "int32", - "description": "[Output Only] Dataplane version for this InterconnectAttachment.", - "type": "integer" + "description": "The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set." }, - "satisfiesPzs": { - "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present.", - "type": "boolean" + "invertMatch": { + "type": "boolean", + "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. " }, - "candidateSubnets": { - "items": { - "type": "string" - }, - "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" - }, - "type": { - "enumDescriptions": [ - "Attachment to a dedicated interconnect.", - "Attachment to a partner interconnect, created by the customer.", - "Attachment to a partner interconnect, created by the partner." - ], - "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. ", - "enum": [ - "DEDICATED", - "PARTNER", - "PARTNER_PROVIDER" - ], - "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 ", - "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" - ], - "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" - ], - "type": "string" - }, - "pairingKey": { - "type": "string", - "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of an PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"" - }, - "name": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "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." - }, - "vlanTag8021q": { - "type": "integer", - "format": "int32", - "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. Only specified at creation time." - }, - "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 *IPsec-encrypted Cloud Interconnect*, the VLAN attachment must be created with this option. Not currently available publicly. ", - "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 IPsec-encrypted 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." - ], - "enum": [ - "IPSEC", - "NONE" - ] - }, - "adminEnabled": { - "type": "boolean", - "description": "Determines whether this Attachment will carry packets. Not present for PARTNER_PROVIDER." - }, - "privateInterconnectInfo": { - "$ref": "InterconnectAttachmentPrivateInfo", - "description": "[Output Only] Information specific to an InterconnectAttachment. This property is populated if the interconnect that this is attached to is of type DEDICATED." - }, - "partnerAsn": { - "format": "int64", - "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" - }, - "partnerMetadata": { - "$ref": "InterconnectAttachmentPartnerMetadata", - "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED." - }, - "ipsecInternalAddresses": { - "items": { - "type": "string" - }, - "type": "array", - "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. Not currently available publicly. " - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.", - "default": "compute#interconnectAttachment", + "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" } }, - "type": "object", - "id": "InterconnectAttachment" - }, - "AcceleratorType": { - "type": "object", - "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.", - "properties": { - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "kind": { - "description": "[Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.", - "default": "compute#acceleratorType", - "type": "string" - }, - "zone": { - "type": "string", - "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." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined, fully qualified URL for this resource." - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this accelerator type." - }, - "description": { - "type": "string", - "description": "[Output Only] An optional textual description of the resource." - }, - "maximumCardsPerInstance": { - "format": "int32", - "type": "integer", - "description": "[Output Only] Maximum number of accelerator cards allowed per instance." - } - } + "id": "HttpHeaderMatch", + "description": "matchRule criteria for request header matches." }, - "XpnHostList": { - "id": "XpnHostList", - "type": "object", + "AddressAggregatedList": { "properties": { - "items": { - "items": { - "$ref": "Project" - }, - "description": "[Output Only] A list of shared VPC host project URLs.", - "type": "array" - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#xpnHostList for lists of shared VPC hosts.", - "default": "compute#xpnHostList" - }, "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "nextPageToken": { - "type": "string", - "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." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "warning": { "description": "[Output Only] Informational warning message.", + "type": "object", "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - }, - "type": "array" - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, "code": { + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", "enumDescriptions": [ "Warning about failed cleanup of transient changes made by a failed operation.", "A link to a deprecated resource was created.", @@ -29075,10 +32475,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -29093,135 +32495,222 @@ "When undeclared properties in the schema are present", "A given scope cannot be reached." ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "type": "string" + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + }, + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " } + } + }, + "kind": { + "description": "[Output Only] Type of resource. Always compute#addressAggregatedList for aggregated lists of addresses.", + "default": "compute#addressAggregatedList", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "items": { + "type": "object", + "description": "A list of AddressesScopedList resources.", + "additionalProperties": { + "$ref": "AddressesScopedList", + "description": "[Output Only] Name of the scope containing this set of addresses." + } + }, + "nextPageToken": { + "type": "string", + "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." + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" }, - "type": "object" + "type": "array" } - } + }, + "id": "AddressAggregatedList", + "type": "object" }, - "ResourcePolicyWeeklyCycleDayOfWeek": { - "id": "ResourcePolicyWeeklyCycleDayOfWeek", + "Interconnect": { "type": "object", + "id": "Interconnect", "properties": { - "startTime": { + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "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" + }, + "operationalStatus": { "type": "string", - "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." + "enum": [ + "OS_ACTIVE", + "OS_UNPROVISIONED" + ], + "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. ", + "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." + ] }, - "duration": { + "id": { + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "name": { "type": "string", - "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario." + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.interconnects.insert" + ] + }, + "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." }, - "day": { + "linkType": { "type": "string", "enum": [ - "FRIDAY", - "INVALID", - "MONDAY", - "SATURDAY", - "SUNDAY", - "THURSDAY", - "TUESDAY", - "WEDNESDAY" + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR" ], "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" ], - "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." - } - } - }, - "HttpQueryParameterMatch": { - "id": "HttpQueryParameterMatch", - "type": "object", - "description": "HttpRouteRuleMatch criteria for a request's query parameter.", - "properties": { - "exactMatch": { - "type": "string", - "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." + "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." }, - "name": { + "customerName": { + "description": "Customer name, to put in the Letter of Authorization as the party authorized to request a crossconnect.", + "type": "string" + }, + "nocContactEmail": { "type": "string", - "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." + "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 Stackdriver logs alerting and Cloud Notifications." }, - "regexMatch": { - "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For the regular expression grammar, please see github.com/google/re2/wiki/Syntax Only one of presentMatch, exactMatch or regexMatch must be set. Note that regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "provisionedLinkCount": { + "description": "[Output Only] Number of links actually provisioned in this interconnect.", + "format": "int32", + "type": "integer" + }, + "requestedLinkCount": { + "type": "integer", + "description": "Target number of physical links in the link bundle, as requested by the customer.", + "format": "int32" + }, + "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" }, - "presentMatch": { + "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" + }, + "interconnectType": { + "type": "string", + "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.", + "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." + ], + "enum": [ + "DEDICATED", + "IT_PRIVATE", + "PARTNER" + ] + }, + "googleReferenceId": { + "type": "string", + "description": "[Output Only] Google reference ID to be used when raising support tickets with Google or otherwise to debug backend connectivity issues." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + }, + "circuitInfos": { + "description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.", + "items": { + "$ref": "InterconnectCircuitInfo" + }, + "type": "array" + }, + "satisfiesPzs": { "type": "boolean", - "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." - } - } - }, - "InstanceList": { - "id": "InstanceList", - "description": "Contains a list of instances.", - "type": "object", - "properties": { + "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present." + }, "kind": { - "description": "[Output Only] Type of resource. Always compute#instanceList for lists of Instance resources.", "type": "string", - "default": "compute#instanceList" + "description": "[Output Only] Type of the resource. Always compute#interconnect for interconnects.", + "default": "compute#interconnect" }, - "id": { + "location": { "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "description": "URL of the InterconnectLocation object that represents where this connection is to be provisioned." + }, + "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. ", + "enum": [ + "ACTIVE", + "UNPROVISIONED" + ], + "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." + ], + "type": "string" + }, + "expectedOutages": { + "items": { + "$ref": "InterconnectOutageNotification" + }, + "type": "array", + "description": "[Output Only] A list of outages expected for this Interconnect." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." }, + "interconnectAttachments": { + "description": "[Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the GCP network and your on-premises network. For more information, read the Dedicated Interconnect Overview." + }, + "TargetVpnGatewaysScopedList": { + "properties": { "warning": { + "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "type": "object", "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " - }, "code": { - "description": "[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": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -29231,10 +32720,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -29259,10 +32750,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -29276,53 +32769,357 @@ "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." - ] + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - } - }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "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" - }, - "items": { - "description": "A list of Instance resources.", + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } + } + }, + "targetVpnGateways": { "items": { - "$ref": "Instance" + "$ref": "TargetVpnGateway" }, - "type": "array" + "type": "array", + "description": "[Output Only] A list of target VPN gateways contained in this scope." + } + }, + "type": "object", + "id": "TargetVpnGatewaysScopedList" + }, + "SecurityPolicyRuleMatcher": { + "type": "object", + "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", + "properties": { + "versionedExpr": { + "enum": [ + "SRC_IPS_V1" + ], + "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.", + "enumDescriptions": [ + "Matches the source IP address of a request to the IP ranges supplied in config." + ], + "type": "string" }, - "selfLink": { + "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" + }, + "expr": { + "$ref": "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." + } + }, + "id": "SecurityPolicyRuleMatcher" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": { + "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy", + "type": "object", + "properties": { + "data": { "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "description": "An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation." + }, + "name": { + "description": "Identifies the custom policy. The value should match the type the custom implementation is registered with on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (e.g. myorg.CustomLbPolicy). The maximum length is 256 characters. Note that specifying the same custom policy more than once for a backend is not a valid configuration and will be rejected.", + "type": "string" } - } + }, + "description": "The configuration for a custom policy implemented by the user and deployed with the client." }, - "ProjectsEnableXpnResourceRequest": { + "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { "properties": { - "xpnResource": { - "$ref": "XpnResourceId", - "description": "Service resource (a.k.a service project) ID." + "rules": { + "items": { + "$ref": "FirewallPolicyRule" + }, + "description": "The rules that apply to the network.", + "type": "array" + }, + "type": { + "enum": [ + "HIERARCHY", + "NETWORK", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "description": "[Output Only] The type of the firewall policy.", + "type": "string" + }, + "shortName": { + "description": "[Output Only] The short name of the firewall policy.", + "type": "string" + }, + "displayName": { + "type": "string", + "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy." + }, + "name": { + "type": "string", + "description": "[Output Only] The name of the firewall policy." } }, "type": "object", - "id": "ProjectsEnableXpnResourceRequest" + "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy" }, - "ResourcePolicyAggregatedList": { + "LogConfigCloudAuditOptions": { + "type": "object", + "id": "LogConfigCloudAuditOptions", + "description": "This is deprecated and has no effect. Do not use.", + "properties": { + "logName": { + "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" + ], + "description": "This is deprecated and has no effect. Do not use." + }, + "authorizationLoggingOptions": { + "description": "This is deprecated and has no effect. Do not use.", + "$ref": "AuthorizationLoggingOptions" + } + } + }, + "Snapshot": { + "type": "object", + "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.", + "id": "Snapshot", + "properties": { + "architecture": { + "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" + ], + "description": "[Output Only] The architecture of the snapshot. Valid values are ARM64 or X86_64." + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "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" + }, + "sourceSnapshotSchedulePolicy": { + "description": "[Output Only] URL of the resource policy which created this scheduled snapshot.", + "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" + }, + "sourceDisk": { + "type": "string", + "description": "The source disk used to create this snapshot." + }, + "diskSizeGb": { + "type": "string", + "format": "int64", + "description": "[Output Only] Size of the source disk, specified in GB." + }, + "status": { + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "UPLOADING" + ], + "type": "string", + "description": "[Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING.", + "enumDescriptions": [ + "Snapshot creation is in progress.", + "Snapshot is currently being deleted.", + "Snapshot creation failed.", + "Snapshot has been created successfully.", + "Snapshot is being uploaded." + ] + }, + "snapshotEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "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." + }, + "licenses": { + "items": { + "type": "string" + }, + "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" + }, + "sourceDiskId": { + "type": "string", + "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." + }, + "id": { + "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "snapshotType": { + "type": "string", + "enumDescriptions": [ + "", + "" + ], + "enum": [ + "ARCHIVE", + "STANDARD" + ], + "description": "Indicates the type of the snapshot." + }, + "name": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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.", + "annotations": { + "required": [ + "compute.snapshots.insert" + ] + } + }, + "kind": { + "type": "string", + "default": "compute#snapshot", + "description": "[Output Only] Type of the resource. Always compute#snapshot for Snapshot resources." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "licenseCodes": { + "type": "array", + "description": "[Output Only] Integer license codes indicating which licenses are attached to this snapshot.", + "items": { + "type": "string", + "format": "int64" + } + }, + "storageLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Cloud Storage bucket storage location of the snapshot (regional or multi-regional)." + }, + "locationHint": { + "type": "string", + "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." + }, + "creationSizeBytes": { + "type": "string", + "format": "int64", + "description": "[Output Only] Size in bytes of the snapshot at creation time." + }, + "downloadBytes": { + "format": "int64", + "description": "[Output Only] Number of bytes downloaded to restore a snapshot to a disk.", + "type": "string" + }, + "sourceDiskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "sourceSnapshotSchedulePolicyId": { + "description": "[Output Only] ID of the resource policy which created this scheduled snapshot.", + "type": "string" + }, + "storageBytes": { + "format": "int64", + "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" + }, + "storageBytesStatus": { + "enum": [ + "UPDATING", + "UP_TO_DATE" + ], + "type": "string", + "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.", + "enumDescriptions": [ + "", + "" + ] + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty." + }, + "autoCreated": { + "description": "[Output Only] Set to true if snapshots are automatically created by applying resource policy on the target disk.", + "type": "boolean" + } + } + }, + "TargetInstancesScopedList": { "type": "object", - "description": "Contains a list of resourcePolicies.", - "id": "ResourcePolicyAggregatedList", "properties": { "warning": { "properties": { - "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": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + } + } + } }, "code": { "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", @@ -29335,10 +33132,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -29353,7 +33152,6 @@ "When undeclared properties in the schema are present", "A given scope cannot be reached." ], - "type": "string", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -29363,10 +33161,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -29380,433 +33180,291 @@ "SINGLE_INSTANCE_PROPERTY_TEMPLATE", "UNDECLARED_PROPERTIES", "UNREACHABLE" - ] + ], + "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." } }, - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of addresses when the list is empty.", "type": "object" }, - "etag": { - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "unreachables": { - "type": "array", - "description": "[Output Only] Unreachable resources.", + "targetInstances": { "items": { - "type": "string" - } - }, - "kind": { - "type": "string", - "description": "Type of resource.", - "default": "compute#resourcePolicyAggregatedList" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "$ref": "TargetInstance" + }, + "type": "array", + "description": "A list of target instances contained in this scope." + } + }, + "id": "TargetInstancesScopedList" + }, + "ShieldedInstanceConfig": { + "type": "object", + "description": "A set of Shielded Instance options.", + "properties": { + "enableSecureBoot": { + "type": "boolean", + "description": "Defines whether the instance has Secure Boot enabled. Disabled by default." }, - "items": { - "type": "object", - "description": "A list of ResourcePolicy resources.", - "additionalProperties": { - "$ref": "ResourcePoliciesScopedList", - "description": "Name of the scope containing this set of resourcePolicies." - } + "enableIntegrityMonitoring": { + "type": "boolean", + "description": "Defines whether the instance has integrity monitoring enabled. Enabled by default." }, - "nextPageToken": { - "type": "string", - "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." + "enableVtpm": { + "type": "boolean", + "description": "Defines whether the instance has the vTPM enabled. Enabled by default." } - } + }, + "id": "ShieldedInstanceConfig" }, - "RouterBgpPeer": { + "NodeTemplate": { + "id": "NodeTemplate", "properties": { - "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" + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." }, - "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.", + "disks": { "items": { - "$ref": "RouterAdvertisedIpRange" + "$ref": "LocalDisk" }, "type": "array" }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, "name": { - "annotations": { - "required": [ - "compute.routers.insert" - ] - }, "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." + "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." }, - "enable": { - "enum": [ - "FALSE", - "TRUE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string", - "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." + "accelerators": { + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" }, - "ipAddress": { + "nodeType": { "type": "string", - "description": "IP address of the interface inside Google Cloud Platform. Only IPv4 is supported." + "description": "The node type to use for nodes group that are created from this template." }, - "peerAsn": { - "type": "integer", - "description": "Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value.", - "annotations": { - "required": [ - "compute.routers.insert" - ] - }, - "format": "uint32" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "peerIpAddress": { - "description": "IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported.", + "region": { + "description": "[Output Only] The name of the region where the node template resides, such as us-central1.", "type": "string" }, - "managementType": { + "status": { "type": "string", + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY" + ], "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." + "Resources are being allocated.", + "The node template is currently being deleted.", + "Invalid status.", + "The node template is ready." ], - "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. ", - "enum": [ - "MANAGED_BY_ATTACHMENT", - "MANAGED_BY_USER" - ] + "description": "[Output Only] The status of the node template. One of the following values: CREATING, READY, and DELETING." }, - "advertiseMode": { + "nodeAffinityLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "description": "Labels to use for node affinity, which will be used in instance scheduling." + }, + "nodeTypeFlexibility": { + "description": "The flexible properties of the desired node type. Node groups that use this node template will create nodes of a type that matches these properties. This field is mutually exclusive with the node_type property; you can only define one or the other, but not both.", + "$ref": "NodeTemplateNodeTypeFlexibility" + }, + "statusMessage": { "type": "string", - "description": "User-specified flag to indicate which mode to use for advertisement.", + "description": "[Output Only] An optional, human-readable explanation of the status." + }, + "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" + }, + "kind": { + "description": "[Output Only] The type of the resource. Always compute#nodeTemplate for node templates.", + "default": "compute#nodeTemplate", + "type": "string" + }, + "cpuOvercommitType": { "enum": [ - "CUSTOM", - "DEFAULT" + "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", + "ENABLED", + "NONE" ], + "type": "string", "enumDescriptions": [ + "", "", "" - ] - }, - "advertisedGroups": { - "description": "User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. 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.", + ], + "description": "CPU overcommit." + } + }, + "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" + }, + "InterconnectOutageNotification": { + "id": "InterconnectOutageNotification", + "description": "Description of a planned outage on this Interconnect.", + "type": "object", + "properties": { + "affectedCircuits": { "type": "array", "items": { - "type": "string", - "enum": [ - "ALL_SUBNETS" - ], - "enumDescriptions": [ - "Advertise all available subnets (including peer VPC subnets)." - ] - } - }, - "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" - }, - "bfd": { - "$ref": "RouterBgpPeerBfd", - "description": "BFD configuration for the BGP peering." - }, - "interfaceName": { - "type": "string", - "description": "Name of the interface the BGP peer is associated with." - } - }, - "id": "RouterBgpPeer", - "type": "object" - }, - "Operation": { - "properties": { - "region": { - "description": "[Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.", - "type": "string" - }, - "startTime": { - "type": "string", - "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format." - }, - "creationTimestamp": { - "type": "string", - "description": "[Deprecated] This field is deprecated." - }, - "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.", - "format": "int32", - "type": "integer" - }, - "kind": { - "default": "compute#operation", - "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", - "type": "string" + "type": "string" + }, + "description": "If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected." }, "description": { - "description": "[Output Only] A textual description of the operation, which is set when the operation is created.", - "type": "string" - }, - "httpErrorStatusCode": { - "format": "int32", - "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" - }, - "insertTime": { - "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", - "type": "string" - }, - "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": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "type": "array" - }, - "message": { - "type": "string", - "description": "[Output Only] A human-readable description of the warning code." - }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "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" - }, - "name": { "type": "string", - "description": "[Output Only] Name of the operation." - }, - "error": { - "type": "object", - "properties": { - "errors": { - "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "[Output Only] The error type identifier for this error." - }, - "message": { - "type": "string", - "description": "[Output Only] An optional, human-readable error message." - }, - "location": { - "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", - "type": "string" - } - } - }, - "type": "array", - "description": "[Output Only] The array of errors encountered while processing this operation." - } - }, - "description": "[Output Only] If errors are generated during processing of the operation, this field will be populated." + "description": "A description about the purpose of the outage." }, - "operationGroupId": { + "endTime": { + "format": "int64", "type": "string", - "description": "[Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request." + "description": "Scheduled end time for the outage (milliseconds since Unix epoch)." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "state": { + "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": "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.", + "enum": [ + "ACTIVE", + "CANCELLED", + "COMPLETED", + "NS_ACTIVE", + "NS_CANCELED" + ], "type": "string" }, - "id": { + "startTime": { + "description": "Scheduled start time for the outage (milliseconds since Unix epoch).", "type": "string", - "description": "[Output Only] The unique identifier for the operation. This identifier is defined by the server.", - "format": "uint64" - }, - "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" + "format": "int64" }, - "targetId": { - "description": "[Output Only] The unique target ID, which identifies a specific incarnation of the target resource.", + "source": { + "enum": [ + "GOOGLE", + "NSRC_GOOGLE" + ], + "enumDescriptions": [ + "This notification was generated by Google.", + "[Deprecated] This notification was generated by Google." + ], "type": "string", - "format": "uint64" + "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." }, - "status": { + "issueType": { "enumDescriptions": [ - "", - "", - "" - ], - "enum": [ - "DONE", - "PENDING", - "RUNNING" + "[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." ], "type": "string", - "description": "[Output Only] The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`." - }, - "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com`.", - "type": "string" + "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.", + "enum": [ + "IT_OUTAGE", + "IT_PARTIAL_OUTAGE", + "OUTAGE", + "PARTIAL_OUTAGE" + ] }, - "endTime": { + "name": { "type": "string", - "description": "[Output Only] The time that this operation was completed. This value is in RFC3339 text format." - }, - "zone": { - "description": "[Output Only] The URL of the zone where the operation resides. Only applicable when performing per-zone operations.", + "description": "Unique identifier for this outage notification." + } + } + }, + "RouterNatRule": { + "type": "object", + "properties": { + "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 == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'\"", "type": "string" }, - "statusMessage": { - "description": "[Output Only] An optional textual description of the current status of the operation.", + "description": { + "description": "An optional description of this rule.", "type": "string" }, - "httpErrorMessage": { - "description": "[Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`.", - "type": "string" + "ruleNumber": { + "format": "uint32", + "type": "integer", + "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." + }, + "action": { + "$ref": "RouterNatRuleAction", + "description": "The action to be enforced for traffic that matches this rule." } }, - "type": "object", - "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 `zonalOperations` resource. For more information, read Global, Regional, and Zonal Resources." + "id": "RouterNatRule" }, - "PublicAdvertisedPrefixList": { + "NodeGroupsDeleteNodesRequest": { + "id": "NodeGroupsDeleteNodesRequest", "type": "object", "properties": { - "kind": { - "default": "compute#publicAdvertisedPrefixList", - "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", - "type": "string" - }, - "nextPageToken": { - "type": "string", - "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." + "nodes": { + "description": "Names of the nodes to delete.", + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "HealthCheckServicesList": { + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "HealthCheckService" + }, + "description": "A list of HealthCheckService resources." }, "warning": { "type": "object", + "description": "[Output Only] Informational warning message.", "properties": { - "message": { - "type": "string", - "description": "[Output Only] A human-readable description of the warning code." - }, "data": { - "type": "array", "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", "items": { "properties": { "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." }, "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" } }, "type": "object" - } + }, + "type": "array" }, "code": { "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", @@ -29820,10 +33478,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -29847,10 +33507,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -29865,266 +33527,266 @@ "UNDECLARED_PROPERTIES", "UNREACHABLE" ] + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." } - }, - "description": "[Output Only] Informational warning message." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + } }, - "items": { - "type": "array", - "items": { - "$ref": "PublicAdvertisedPrefix" - }, - "description": "A list of PublicAdvertisedPrefix resources." + "kind": { + "description": "[Output Only] Type of the resource. Always compute#healthCheckServicesList for lists of HealthCheckServices.", + "type": "string", + "default": "compute#healthCheckServicesList" }, "selfLink": { "description": "[Output Only] Server-defined URL for this resource.", "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" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" } }, - "id": "PublicAdvertisedPrefixList" + "type": "object", + "id": "HealthCheckServicesList" }, - "RegionDisksRemoveResourcePoliciesRequest": { + "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.", "properties": { - "resourcePolicies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Resource policies to be removed from this disk." + "serviceDirectoryRegion": { + "type": "string", + "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." + }, + "service": { + "description": "Service Directory service to register the forwarding rule under.", + "type": "string" + }, + "namespace": { + "type": "string", + "description": "Service Directory namespace to register the forwarding rule under." } }, - "id": "RegionDisksRemoveResourcePoliciesRequest", "type": "object" }, - "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", + "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.", "properties": { - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", - "default": "compute#notificationEndpoint" - }, "creationTimestamp": { "type": "string", "description": "[Output Only] Creation timestamp in RFC3339 text format." }, - "name": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#externalVpnGateway for externalVpnGateways.", "type": "string", - "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])?" + "default": "compute#externalVpnGateway" }, - "id": { - "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", + "name": { + "annotations": { + "required": [ + "compute.externalVpnGateways.insert" + ] + }, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string", - "format": "uint64" + "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." }, - "region": { + "redundancyType": { + "description": "Indicates the user-supplied redundancy type of this external VPN gateway.", + "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." + ], "type": "string", - "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." + "enum": [ + "FOUR_IPS_REDUNDANCY", + "SINGLE_IP_INTERNALLY_REDUNDANT", + "TWO_IPS_REDUNDANCY" + ] }, - "grpcSettings": { - "description": "Settings of the gRPC notification endpoint including the endpoint URL and the retry duration.", - "$ref": "NotificationEndpointGrpcSettings" + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "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." }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "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" }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "ExternalVpnGatewayInterface" + }, + "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." } }, - "id": "NotificationEndpoint" + "type": "object" }, - "PublicAdvertisedPrefix": { - "type": "object", - "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.", + "FirewallPolicyRuleSecureTag": { + "id": "FirewallPolicyRuleSecureTag", "properties": { - "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.", - "format": "byte", - "type": "string" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "status": { + "state": { "enum": [ - "INITIAL", - "PREFIX_CONFIGURATION_COMPLETE", - "PREFIX_CONFIGURATION_IN_PROGRESS", - "PREFIX_REMOVAL_IN_PROGRESS", - "PTR_CONFIGURED", - "REVERSE_DNS_LOOKUP_FAILED", - "VALIDATED" + "EFFECTIVE", + "INEFFECTIVE" ], - "description": "The status of the public advertised prefix.", - "type": "string", "enumDescriptions": [ - "", - "", - "", - "", - "", "", "" - ] - }, - "publicDelegatedPrefixs": { - "description": "[Output Only] The list of public delegated prefixes that exist for this public advertised prefix.", - "items": { - "$ref": "PublicAdvertisedPrefixPublicDelegatedPrefix" - }, - "type": "array" - }, - "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this public advertised prefix.", + ], + "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" }, "name": { - "annotations": { - "required": [ - "compute.publicAdvertisedPrefixes.insert" - ] - }, - "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", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + "pattern": "tagValues/[0-9]+", + "description": "Name of the secure tag, created with TagManager's TagValue API." + } + }, + "type": "object" + }, + "NodeGroup": { + "properties": { + "zone": { + "description": "[Output Only] The name of the zone where the node group resides, such as us-central1-a.", + "type": "string" }, - "dnsVerificationIp": { - "description": "The IPv4 address to be used for reverse DNS verification.", + "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" }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", + "fingerprint": { "type": "string", - "default": "compute#publicAdvertisedPrefix" + "format": "byte" }, - "id": { + "creationTimestamp": { "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier." - }, - "sharedSecret": { - "description": "[Output Only] The shared secret to be used for reverse DNS verification.", - "type": "string" + "description": "[Output Only] Creation timestamp in RFC3339 text format." }, - "description": { + "kind": { + "description": "[Output Only] The type of the resource. Always compute#nodeGroup for node group.", "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - } - } - }, - "InstanceGroupsAddInstancesRequest": { - "type": "object", - "id": "InstanceGroupsAddInstancesRequest", - "properties": { - "instances": { - "items": { - "$ref": "InstanceReference" - }, - "type": "array", - "description": "The list of instances to add to the instance group." - } - } - }, - "TargetSslProxy": { - "type": "object", - "description": "Represents a Target SSL Proxy resource. A target SSL proxy is a component of a SSL Proxy load balancer. Global forwarding rules reference a target SSL proxy, and the target proxy then references an external backend service. For more information, read Using Target Proxies.", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "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", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "service": { - "description": "URL to the BackendService resource.", - "type": "string" + "default": "compute#nodeGroup" }, - "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.", + "status": { "enum": [ - "NONE", - "PROXY_V1" + "CREATING", + "DELETING", + "INVALID", + "READY" ], "enumDescriptions": [ + "", + "", "", "" ], "type": "string" }, - "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" + "maintenanceWindow": { + "$ref": "NodeGroupMaintenanceWindow" }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#targetSslProxy for target SSL proxies.", - "default": "compute#targetSslProxy", - "type": "string" + "maintenancePolicy": { + "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." + ], + "enum": [ + "DEFAULT", + "MAINTENANCE_POLICY_UNSPECIFIED", + "MIGRATE_WITHIN_NODE_GROUP", + "RESTART_IN_PLACE" + ], + "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." }, "description": { "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" }, - "sslCertificates": { - "items": { - "type": "string" - }, - "type": "array", - "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." - } - }, - "id": "TargetSslProxy" - }, - "NetworkEndpointGroupsListNetworkEndpoints": { - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "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" }, - "nextPageToken": { - "type": "string", - "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." + "size": { + "description": "[Output Only] The total number of nodes in the node group.", + "format": "int32", + "type": "integer" }, - "kind": { - "default": "compute#networkEndpointGroupsListNetworkEndpoints", - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupsListNetworkEndpoints for the list of network endpoints in the specified network endpoint group.", + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "id": { + "format": "uint64", + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." + }, + "autoscalingPolicy": { + "$ref": "NodeGroupAutoscalingPolicy", + "description": "Specifies how autoscaling should behave." + }, + "shareSettings": { + "description": "Share-settings for the node group", + "$ref": "ShareSettings" + }, + "nodeTemplate": { + "description": "URL of the node template to create the node group from.", + "type": "string" + } + }, + "id": "NodeGroup", + "type": "object", + "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." + }, + "DiskAggregatedList": { + "properties": { "items": { - "description": "A list of NetworkEndpointWithHealthStatus resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of disks.", + "$ref": "DisksScopedList" + }, + "description": "A list of DisksScopedList resources." + }, + "unreachables": { "type": "array", + "description": "[Output Only] Unreachable resources.", "items": { - "$ref": "NetworkEndpointWithHealthStatus" + "type": "string" } }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, "warning": { - "type": "object", "properties": { "code": { "enum": [ @@ -30136,10 +33798,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -30154,7 +33818,6 @@ "UNDECLARED_PROPERTIES", "UNREACHABLE" ], - "type": "string", "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "enumDescriptions": [ "Warning about failed cleanup of transient changes made by a failed operation.", @@ -30165,10 +33828,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -30182,7 +33847,8 @@ "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." - ] + ], + "type": "string" }, "message": { "description": "[Output Only] A human-readable description of the warning code.", @@ -30190,113 +33856,52 @@ }, "data": { "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", "items": { - "type": "object", "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, "value": { "type": "string", "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" } - } - }, - "type": "array" + }, + "type": "object" + } } }, - "description": "[Output Only] Informational warning message." - } - }, - "id": "NetworkEndpointGroupsListNetworkEndpoints", - "type": "object" - }, - "InstanceGroupManagerActionsSummary": { - "type": "object", - "properties": { - "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.", - "format": "int32", - "type": "integer" - }, - "restarting": { - "format": "int32", - "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" - }, - "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" - }, - "refreshing": { - "type": "integer", - "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.", - "format": "int32" - }, - "creatingWithoutRetries": { - "format": "int32", - "type": "integer", - "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." - }, - "verifying": { - "format": "int32", - "type": "integer", - "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." + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "deleting": { - "type": "integer", - "format": "int32", - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted." + "kind": { + "type": "string", + "default": "compute#diskAggregatedList", + "description": "[Output Only] Type of resource. Always compute#diskAggregatedList for aggregated lists of persistent disks." }, - "none": { - "type": "integer", - "format": "int32", - "description": "[Output Only] The number of instances in the managed instance group that are running and have no scheduled actions." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "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" - } - }, - "id": "InstanceGroupManagerActionsSummary" - }, - "RegionInstanceGroupManagerUpdateInstanceConfigReq": { - "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", - "description": "RegionInstanceGroupManagers.updatePerInstanceConfigs", - "properties": { - "perInstanceConfigs": { - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - }, - "description": "The list of per-instance configs to insert or patch on this managed instance group." + "nextPageToken": { + "type": "string", + "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." } }, + "id": "DiskAggregatedList", "type": "object" }, - "InstanceGroupList": { + "InstanceGroupManagersListPerInstanceConfigsResp": { "type": "object", - "description": "A list of InstanceGroup resources.", - "id": "InstanceGroupList", "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "default": "compute#instanceGroupList", - "description": "[Output Only] The resource type, which is always compute#instanceGroupList for instance group lists.", - "type": "string" - }, "warning": { + "description": "[Output Only] Informational warning message.", "properties": { + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + }, "code": { "enum": [ "CLEANUP_FAILED", @@ -30307,10 +33912,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -30325,6 +33932,7 @@ "UNDECLARED_PROPERTIES", "UNREACHABLE" ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "enumDescriptions": [ "Warning about failed cleanup of transient changes made by a failed operation.", "A link to a deprecated resource was created.", @@ -30334,10 +33942,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -30352,97 +33962,61 @@ "When undeclared properties in the schema are present", "A given scope cannot be reached." ], - "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." - }, - "message": { - "type": "string", - "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", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", "items": { + "type": "object", "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, "key": { "type": "string", "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" } - }, - "type": "object" + } } } }, - "type": "object", - "description": "[Output Only] Informational warning message." + "type": "object" + }, + "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" }, "items": { - "description": "A list of InstanceGroup resources.", + "description": "[Output Only] The list of PerInstanceConfig.", "type": "array", "items": { - "$ref": "InstanceGroup" + "$ref": "PerInstanceConfig" } - }, - "nextPageToken": { - "type": "string", - "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." } - } + }, + "id": "InstanceGroupManagersListPerInstanceConfigsResp" }, - "HealthChecksAggregatedList": { - "id": "HealthChecksAggregatedList", + "RegionInstanceGroupManagersListInstanceConfigsResp": { + "id": "RegionInstanceGroupManagersListInstanceConfigsResp", "type": "object", "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "type": "string", - "description": "Type of resource.", - "default": "compute#healthChecksAggregatedList" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "items": { "items": { - "type": "string" + "$ref": "PerInstanceConfig" }, + "description": "[Output Only] The list of PerInstanceConfig.", "type": "array" }, + "nextPageToken": { + "type": "string", + "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." + }, "warning": { - "type": "object", + "description": "[Output Only] Informational warning message.", "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " - }, "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "enumDescriptions": [ "Warning about failed cleanup of transient changes made by a failed operation.", "A link to a deprecated resource was created.", @@ -30452,10 +34026,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -30470,6 +34046,7 @@ "When undeclared properties in the schema are present", "A given scope cannot be reached." ], + "type": "string", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -30479,10 +34056,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -30497,213 +34076,279 @@ "UNDECLARED_PROPERTIES", "UNREACHABLE" ], - "type": "string" + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + }, + "data": { + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array" } }, - "description": "[Output Only] Informational warning message." - }, - "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" + "type": "object" } } }, - "Subnetwork": { + "RegionTargetHttpsProxiesSetSslCertificatesRequest": { + "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", "properties": { - "enableFlowLogs": { - "type": "boolean", - "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 to disable flow logging. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.", - "type": "string", - "default": "compute#subnetwork" - }, - "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. If the ipv6_type is EXTERNAL then this subnet cannot enable direct path.", + "sslCertificates": { + "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Subsetting": { + "properties": { + "policy": { "enum": [ - "EXTERNAL", - "UNSPECIFIED_IPV6_ACCESS_TYPE" + "CONSISTENT_HASH_SUBSETTING", + "NONE" ], - "type": "string", - "enumDescriptions": [ - "VMs on this subnet will be assigned IPv6 addresses that are accesible via the Internet, as well as the VPC network.", - "IPv6 access type not set. Means this subnet hasn't been turned on IPv6 yet." - ] - }, - "fingerprint": { - "type": "string", - "format": "byte", - "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." - }, - "stackType": { - "description": "The stack type for this subnet 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 resource creation time and updated using patch.", "enumDescriptions": [ - "New VMs in this subnet can have both IPv4 and IPv6 addresses.", - "New VMs in this subnet will only be assigned IPv4 addresses.", - "" + "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." ], + "type": "string" + } + }, + "id": "Subsetting", + "type": "object", + "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." + }, + "ResourcePolicy": { + "type": "object", + "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.", + "properties": { + "id": { "type": "string", - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY", - "UNSPECIFIED_STACK_TYPE" - ] - }, - "externalIpv6Prefix": { - "type": "string", - "description": "[Output Only] The range of external IPv6 addresses that are owned by this subnetwork." + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" }, - "ipCidrRange": { - "type": "string", - "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." + "instanceSchedulePolicy": { + "$ref": "ResourcePolicyInstanceSchedulePolicy", + "description": "Resource policy for scheduling instance operations." }, - "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" + "groupPlacementPolicy": { + "description": "Resource policy for instances for placement configuration.", + "$ref": "ResourcePolicyGroupPlacementPolicy" }, - "selfLink": { + "status": { "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "purpose": { + "description": "[Output Only] The status of resource policy creation.", "enum": [ - "INTERNAL_HTTPS_LOAD_BALANCER", - "PRIVATE", - "PRIVATE_RFC_1918", - "PRIVATE_SERVICE_CONNECT" + "CREATING", + "DELETING", + "EXPIRED", + "INVALID", + "READY" ], - "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", - "type": "string", "enumDescriptions": [ - "Subnet reserved for Internal HTTP(S) Load Balancing.", - "Regular user created or automatically created subnet.", - "Regular user created or automatically created subnet.", - "Subnetworks created for Private Service Connect in the producer network." + "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." ] }, - "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" - }, - "secondaryIpRanges": { - "type": "array", - "items": { - "$ref": "SubnetworkSecondaryRange" - }, - "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." - }, - "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" - }, - "privateIpv6GoogleAccess": { - "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." - ], - "enum": [ - "DISABLE_GOOGLE_ACCESS", - "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - ], - "description": "The private IPv6 google access type for the VMs in this subnet. This is an expanded field of enablePrivateV6Access. If both fields are set, privateIpv6GoogleAccess will take priority. This field can be both set at resource creation time and updated using patch." - }, "region": { - "description": "URL of the region where the Subnetwork resides. This field can be set only at resource creation time.", "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" }, - "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. 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.", - "enumDescriptions": [ - "The ACTIVE subnet that is currently used.", - "The BACKUP subnet that could be promoted to ACTIVE." - ], - "type": "string", - "enum": [ - "ACTIVE", - "BACKUP" - ] + "resourceStatus": { + "description": "[Output Only] The system status of the resource policy.", + "$ref": "ResourcePolicyResourceStatus" }, - "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", - "enum": [ - "DRAINING", - "READY" - ], - "type": "string", - "enumDescriptions": [ - "Subnetwork is being drained.", - "Subnetwork is ready for use." - ] + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "gatewayAddress": { - "description": "[Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.", + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", "type": "string" }, - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "ipv6CidrRange": { - "description": "[Output Only] The range of internal IPv6 addresses that are owned by this subnetwork.", + "kind": { + "default": "compute#resourcePolicy", + "description": "[Output Only] Type of the resource. Always compute#resource_policies for resource policies.", "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" + "name": { + "type": "string", + "annotations": { + "required": [ + "compute.instances.insert" + ] + }, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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." + }, + "snapshotSchedulePolicy": { + "$ref": "ResourcePolicySnapshotSchedulePolicy", + "description": "Resource policy for persistent disks for creating snapshots." } }, - "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.", - "id": "Subnetwork", - "type": "object" + "id": "ResourcePolicy" }, - "GuestAttributesEntry": { - "description": "A guest attributes namespace/key/value entry.", + "InstanceGroupManagersUpdatePerInstanceConfigsReq": { + "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", "type": "object", - "id": "GuestAttributesEntry", + "description": "InstanceGroupManagers.updatePerInstanceConfigs", "properties": { - "value": { - "type": "string", - "description": "Value for the guest attribute entry." + "perInstanceConfigs": { + "items": { + "$ref": "PerInstanceConfig" + }, + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", + "type": "array" + } + } + }, + "ShareSettings": { + "properties": { + "projectMap": { + "type": "object", + "additionalProperties": { + "$ref": "ShareSettingsProjectConfig" + }, + "description": "A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS." }, - "namespace": { - "description": "Namespace for the guest attribute entry.", + "shareType": { + "enum": [ + "LOCAL", + "ORGANIZATION", + "SHARE_TYPE_UNSPECIFIED", + "SPECIFIC_PROJECTS" + ], + "enumDescriptions": [ + "Default value.", + "Shared-reservation is open to entire Organization", + "Default value. This value is unused.", + "Shared-reservation is open to specific projects" + ], + "description": "Type of sharing for this shared-reservation", "type": "string" - }, - "key": { - "description": "Key for the guest attribute entry.", + } + }, + "description": "The share setting for reservations and sole tenancy node groups.", + "id": "ShareSettings", + "type": "object" + }, + "ResourcePolicySnapshotSchedulePolicySnapshotProperties": { + "properties": { + "chainName": { + "description": "Chain name that the snapshot is created in.", "type": "string" + }, + "guestFlush": { + "type": "boolean", + "description": "Indication to perform a 'guest aware' snapshot." + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty." + }, + "storageLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional)." } - } + }, + "id": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", + "type": "object", + "description": "Specified snapshot properties for scheduled snapshots created by this policy." }, - "NodeTypeList": { - "description": "Contains a list of node types.", + "VpnTunnelsScopedList": { + "type": "object", + "id": "VpnTunnelsScopedList", "properties": { + "vpnTunnels": { + "description": "A list of VPN tunnels contained in this scope.", + "items": { + "$ref": "VpnTunnel" + }, + "type": "array" + }, "warning": { "type": "object", "properties": { + "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": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" + } + }, "code": { + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "description": "[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": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -30713,10 +34358,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -30731,7 +34378,107 @@ "UNDECLARED_PROPERTIES", "UNREACHABLE" ], + "type": "string" + } + }, + "description": "Informational warning which replaces the list of addresses when the list is empty." + } + } + }, + "InstanceWithNamedPorts": { + "properties": { + "status": { + "enumDescriptions": [ + "The Nanny 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": "[Output Only] The status of the instance.", + "enum": [ + "DEPROVISIONING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" + ], + "type": "string" + }, + "instance": { + "type": "string", + "description": "[Output Only] The URL of the instance." + }, + "namedPorts": { + "type": "array", + "description": "[Output Only] The named ports that belong to this instance group.", + "items": { + "$ref": "NamedPort" + } + } + }, + "id": "InstanceWithNamedPorts", + "type": "object" + }, + "ShareSettingsProjectConfig": { + "description": "Config for each project in the share settings.", + "id": "ShareSettingsProjectConfig", + "type": "object", + "properties": { + "projectId": { + "description": "The project ID, should be same as the key of this project config in the parent map.", + "type": "string" + } + } + }, + "NodeTypesScopedList": { + "type": "object", + "id": "NodeTypesScopedList", + "properties": { + "nodeTypes": { + "description": "[Output Only] A list of node types contained in this scope.", + "items": { + "$ref": "NodeType" + }, + "type": "array" + }, + "warning": { + "type": "object", + "properties": { + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" + } + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, + "code": { "type": "string", + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "enumDescriptions": [ "Warning about failed cleanup of transient changes made by a failed operation.", "A link to a deprecated resource was created.", @@ -30741,10 +34488,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -30759,158 +34508,161 @@ "When undeclared properties in the schema are present", "A given scope cannot be reached." ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." - }, - "message": { - "type": "string", - "description": "[Output Only] A human-readable description of the warning code." - }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - } + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] } }, - "description": "[Output Only] Informational warning message." + "description": "[Output Only] An informational warning that appears when the node types list is empty." + } + } + }, + "RouterStatusBgpPeerStatus": { + "properties": { + "status": { + "description": "Status of the BGP peer: {UP, DOWN}", + "enum": [ + "DOWN", + "UNKNOWN", + "UP" + ], + "type": "string", + "enumDescriptions": [ + "", + "", + "" + ] }, - "items": { + "peerIpAddress": { + "type": "string", + "description": "IP address of the remote BGP interface." + }, + "advertisedRoutes": { "items": { - "$ref": "NodeType" + "$ref": "Route" }, - "description": "A list of NodeType resources.", - "type": "array" + "type": "array", + "description": "Routes that were advertised to the remote BGP peer" }, - "selfLink": { + "ipAddress": { + "description": "IP address of the local BGP interface.", + "type": "string" + }, + "uptimeSeconds": { "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "description": "Time this session has been up, in seconds. Format: 145" }, - "kind": { - "default": "compute#nodeTypeList", + "state": { "type": "string", - "description": "[Output Only] Type of resource.Always compute#nodeTypeList for lists of node types." + "description": "The state of the BGP session. For a list of possible values for this field, see BGP session states." }, - "nextPageToken": { + "bfdStatus": { + "$ref": "BfdStatus" + }, + "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" + }, + "uptime": { "type": "string", - "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." + "description": "Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds" }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "name": { + "description": "Name of this BGP peer. Unique within the Routers resource.", "type": "string" - } - }, - "id": "NodeTypeList", - "type": "object" - }, - "RegionInstanceGroupManagersRecreateRequest": { - "properties": { - "instances": { - "type": "array", - "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].", - "items": { - "type": "string" - } + }, + "numLearnedRoutes": { + "description": "Number of routes learned from the remote BGP Peer.", + "format": "uint32", + "type": "integer" } }, "type": "object", - "id": "RegionInstanceGroupManagersRecreateRequest" + "id": "RouterStatusBgpPeerStatus" }, - "SslPolicyReference": { - "id": "SslPolicyReference", + "BackendServiceLogConfig": { + "id": "BackendServiceLogConfig", + "description": "The available logging options for the load balancer traffic served by this backend service.", "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" + "sampleRate": { + "format": "float", + "type": "number", + "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." + }, + "enable": { + "type": "boolean", + "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false." } }, "type": "object" }, - "Rule": { - "type": "object", - "id": "Rule", + "InstanceGroupManagersAbandonInstancesRequest": { + "id": "InstanceGroupManagersAbandonInstancesRequest", "properties": { - "logConfigs": { - "items": { - "$ref": "LogConfig" - }, - "description": "This is deprecated and has no effect. Do not use.", - "type": "array" - }, - "conditions": { - "items": { - "$ref": "Condition" - }, - "type": "array", - "description": "This is deprecated and has no effect. Do not use." - }, - "permissions": { - "items": { - "type": "string" - }, - "description": "This is deprecated and has no effect. Do not use.", - "type": "array" - }, - "description": { - "type": "string", - "description": "This is deprecated and has no effect. Do not use." - }, - "notIns": { - "description": "This is deprecated and has no effect. Do not use.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ins": { + "instances": { "items": { "type": "string" }, - "description": "This is deprecated and has no effect. Do not use.", + "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" - }, - "action": { - "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." - ], - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "ALLOW", - "ALLOW_WITH_LOG", - "DENY", - "DENY_WITH_LOG", - "LOG", - "NO_ACTION" - ], - "type": "string" } }, - "description": "This is deprecated and has no effect. Do not use." + "type": "object" }, - "HttpsHealthCheckList": { - "description": "Contains a list of HttpsHealthCheck resources.", + "OperationList": { "type": "object", + "description": "Contains a list of Operation resources.", "properties": { "warning": { "properties": { + "data": { + "type": "array", + "items": { + "properties": { + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + }, + "type": "object" + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + }, "code": { - "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "enumDescriptions": [ "Warning about failed cleanup of transient changes made by a failed operation.", "A link to a deprecated resource was created.", @@ -30920,10 +34672,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -30947,10 +34701,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -30964,305 +34720,87 @@ "SINGLE_INSTANCE_PROPERTY_TEMPLATE", "UNDECLARED_PROPERTIES", "UNREACHABLE" - ] + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string" }, "message": { "description": "[Output Only] A human-readable description of the warning code.", "type": "string" - }, - "data": { - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "kind": { - "type": "string", - "description": "Type of resource.", - "default": "compute#httpsHealthCheckList" + "description": "[Output Only] Informational warning message.", + "type": "object" }, - "id": { + "selfLink": { "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "description": "[Output Only] Server-defined URL for this resource." }, "items": { - "description": "A list of HttpsHealthCheck resources.", + "type": "array", "items": { - "$ref": "HttpsHealthCheck" + "$ref": "Operation" }, - "type": "array" + "description": "[Output Only] A list of Operation resources." }, "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" + "type": "string", + "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." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "type": "string" + }, + "kind": { + "type": "string", + "default": "compute#operationList", + "description": "[Output Only] Type of resource. Always `compute#operations` for Operations resource." } }, - "id": "HttpsHealthCheckList" + "id": "OperationList" }, - "UrlMapValidationResult": { - "type": "object", + "TestPermissionsRequest": { + "id": "TestPermissionsRequest", "properties": { - "testPassed": { - "type": "boolean", - "description": "If successfully loaded, this field indicates whether the test passed. If false, 'testFailures's indicate the reason of failure." - }, - "loadErrors": { - "type": "array", - "items": { - "type": "string" - } - }, - "loadSucceeded": { - "description": "Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' indicates the reasons.", - "type": "boolean" - }, - "testFailures": { - "type": "array", - "items": { - "$ref": "TestFailure" - } - } - }, - "description": "Message representing the validation result for a UrlMap.", - "id": "UrlMapValidationResult" - }, - "AuthorizationLoggingOptions": { - "type": "object", - "id": "AuthorizationLoggingOptions", - "properties": { - "permissionType": { - "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." - ], - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "ADMIN_READ", - "ADMIN_WRITE", - "DATA_READ", - "DATA_WRITE", - "PERMISSION_TYPE_UNSPECIFIED" - ], - "type": "string" - } - }, - "description": "This is deprecated and has no effect. Do not use." - }, - "PreconfiguredWafSet": { - "properties": { - "expressionSets": { - "description": "List of entities that are currently supported for WAF rules.", - "items": { - "$ref": "WafExpressionSet" - }, - "type": "array" - } - }, - "type": "object", - "id": "PreconfiguredWafSet" - }, - "RouterNat": { - "properties": { - "natIps": { + "permissions": { + "description": "The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.", "type": "array", - "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.", "items": { "type": "string" } - }, - "subnetworks": { - "items": { - "$ref": "RouterNatSubnetworkToNat" - }, - "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" - }, - "enableEndpointIndependentMapping": { - "type": "boolean" - }, - "tcpEstablishedIdleTimeoutSec": { - "format": "int32", - "type": "integer", - "description": "Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set." - }, - "udpIdleTimeoutSec": { - "type": "integer", - "format": "int32", - "description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set." - }, - "rules": { - "type": "array", - "description": "A list of rules associated with this NAT.", - "items": { - "$ref": "RouterNatRule" - } - }, - "logConfig": { - "description": "Configure logging on this NAT.", - "$ref": "RouterNatLogConfig" - }, - "icmpIdleTimeoutSec": { - "type": "integer", - "format": "int32", - "description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set." - }, - "drainNatIps": { - "type": "array", - "items": { - "type": "string" - }, - "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." - }, - "sourceSubnetworkIpRangesToNat": { - "enum": [ - "ALL_SUBNETWORKS_ALL_IP_RANGES", - "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", - "LIST_OF_SUBNETWORKS" - ], - "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": "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 or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region." - }, - "name": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "description": "Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035." - }, - "minPortsPerVm": { - "format": "int32", - "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" - }, - "natIpAllocateOption": { - "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." - ], - "enum": [ - "AUTO_ONLY", - "MANUAL_ONLY" - ], - "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" - }, - "tcpTransitoryIdleTimeoutSec": { - "format": "int32", - "description": "Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.", - "type": "integer" - }, - "tcpTimeWaitTimeoutSec": { - "description": "Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set.", - "format": "int32", - "type": "integer" } }, - "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.", - "id": "RouterNat", "type": "object" }, - "Screenshot": { + "AcceleratorTypesScopedList": { "type": "object", "properties": { - "contents": { - "description": "[Output Only] The Base64-encoded screenshot data.", - "type": "string" - }, - "kind": { - "default": "compute#screenshot", - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#screenshot for the screenshots." - } - }, - "id": "Screenshot", - "description": "An instance's screenshot." - }, - "Policy": { - "properties": { - "etag": { - "format": "byte", - "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" - }, - "rules": { - "items": { - "$ref": "Rule" - }, - "type": "array", - "description": "This is deprecated and has no effect. Do not use." - }, - "auditConfigs": { - "type": "array", - "description": "Specifies cloud audit logging configuration for this policy.", - "items": { - "$ref": "AuditConfig" - } - }, - "bindings": { - "type": "array", - "items": { - "$ref": "Binding" - }, - "description": "Associates a list of `members` to 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 member." - }, - "iamOwned": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "boolean" - }, - "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" - } - }, - "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` to a single `role`. Members 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/).", - "id": "Policy", - "type": "object" - }, - "NodeGroupsScopedList": { - "id": "NodeGroupsScopedList", - "properties": { - "nodeGroups": { - "type": "array", - "description": "[Output Only] A list of node groups contained in this scope.", - "items": { - "$ref": "NodeGroup" - } - }, "warning": { - "type": "object", - "description": "[Output Only] An informational warning that appears when the nodeGroup list is empty.", + "description": "[Output Only] An informational warning that appears when the accelerator types list is empty.", "properties": { "message": { - "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + }, + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " }, "code": { + "type": "string", "description": "[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": [ "CLEANUP_FAILED", @@ -31273,10 +34811,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -31300,10 +34840,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -31317,92 +34859,74 @@ "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + ] } - } - } - }, - "type": "object" - }, - "TargetPoolInstanceHealth": { - "type": "object", - "properties": { - "healthStatus": { - "items": { - "$ref": "HealthStatus" }, - "type": "array" + "type": "object" }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetPoolInstanceHealth when checking the health of an instance.", - "type": "string", - "default": "compute#targetPoolInstanceHealth" + "acceleratorTypes": { + "type": "array", + "description": "[Output Only] A list of accelerator types contained in this scope.", + "items": { + "$ref": "AcceleratorType" + } } }, - "id": "TargetPoolInstanceHealth" + "id": "AcceleratorTypesScopedList" }, - "NetworkEndpoint": { + "SubnetworkAggregatedList": { "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.", + "kind": { + "default": "compute#subnetworkAggregatedList", + "description": "[Output Only] Type of resource. Always compute#subnetworkAggregatedList for aggregated lists of subnetworks.", "type": "string" }, - "fqdn": { - "type": "string", - "description": "Optional fully qualified domain name of network endpoint. This can only be specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT." - }, - "port": { - "description": "Optional port number of network endpoint. If not specified, the defaultPort for the network endpoint group will be used.", - "type": "integer", - "format": "int32" - }, - "instance": { - "type": "string", - "description": "The name for a specific VM instance that the IP address belongs to. This is required for network endpoints of type GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint group. The name must be 1-63 characters long, and comply with RFC1035." - }, - "annotations": { - "description": "Metadata defined as annotations on the network endpoint.", + "items": { + "type": "object", "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "description": "The network endpoint.", - "type": "object", - "id": "NetworkEndpoint" - }, - "AddressesScopedList": { - "type": "object", - "id": "AddressesScopedList", - "properties": { - "addresses": { - "items": { - "$ref": "Address" + "description": "Name of the scope containing this set of Subnetworks.", + "$ref": "SubnetworksScopedList" }, + "description": "A list of SubnetworksScopedList resources." + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", "type": "array", - "description": "[Output Only] A list of addresses contained in this scope." + "items": { + "type": "string" + } + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "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": { "properties": { + "data": { + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + }, + "key": { + "type": "string", + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." + } + } + }, + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, "code": { "enumDescriptions": [ "Warning about failed cleanup of transient changes made by a failed operation.", @@ -31413,10 +34937,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -31431,7 +34957,6 @@ "When undeclared properties in the schema are present", "A given scope cannot be reached." ], - "type": "string", "description": "[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": [ "CLEANUP_FAILED", @@ -31442,10 +34967,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -31459,156 +34986,61 @@ "SINGLE_INSTANCE_PROPERTY_TEMPLATE", "UNDECLARED_PROPERTIES", "UNREACHABLE" - ] - }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + ], "type": "string" } }, - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", - "type": "object" - } - } - }, - "BulkInsertInstanceResource": { - "type": "object", - "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.", - "id": "BulkInsertInstanceResource", - "properties": { - "instanceProperties": { - "$ref": "InstanceProperties", - "description": "The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided." - }, - "locationPolicy": { - "$ref": "LocationPolicy", - "description": "Policy for chosing target zone." - }, - "minCount": { - "type": "string", - "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.", - "format": "int64" - }, - "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" - }, - "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" - } - }, - "count": { - "type": "string", - "format": "int64", - "description": "The maximum number of instances to create." + "description": "[Output Only] Informational warning message." }, - "namePattern": { + "id": { "type": "string", - "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." + "description": "[Output Only] Unique identifier for the resource; defined by the server." } - } - }, - "StatefulPolicy": { + }, "type": "object", - "id": "StatefulPolicy", - "properties": { - "preservedState": { - "$ref": "StatefulPolicyPreservedState" - } - } + "id": "SubnetworkAggregatedList" }, - "SecurityPolicyRule": { - "type": "object", + "NetworkEndpointGroupAggregatedList": { "properties": { - "preview": { - "description": "If set to true, the specified action is not enforced.", - "type": "boolean" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "action": { + "nextPageToken": { "type": "string", - "description": "The Action to perform when the client connection triggers the rule. Can currently be either \"allow\" or \"deny()\" where valid values for status are 403, 404, and 502." - }, - "priority": { - "format": "int32", - "type": "integer", - "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." + "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." }, "kind": { - "description": "[Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules", + "default": "compute#networkEndpointGroupAggregatedList", "type": "string", - "default": "compute#securityPolicyRule" + "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupAggregatedList for aggregated lists of network endpoint groups." + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "match": { - "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.", - "$ref": "SecurityPolicyRuleMatcher" - } - }, - "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)." - }, - "ReservationAggregatedList": { - "type": "object", - "properties": { "items": { - "description": "A list of Allocation resources.", "additionalProperties": { - "description": "Name of the scope containing this set of reservations.", - "$ref": "ReservationsScopedList" + "description": "The name of the scope that contains this set of network endpoint groups.", + "$ref": "NetworkEndpointGroupsScopedList" }, + "description": "A list of NetworkEndpointGroupsScopedList resources.", "type": "object" }, - "kind": { - "description": "Type of resource.", - "default": "compute#reservationAggregatedList", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this 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" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, "warning": { "type": "object", + "description": "[Output Only] Informational warning message.", "properties": { "code": { + "type": "string", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -31618,10 +35050,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -31636,8 +35070,6 @@ "UNDECLARED_PROPERTIES", "UNREACHABLE" ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", "enumDescriptions": [ "Warning about failed cleanup of transient changes made by a failed operation.", "A link to a deprecated resource was created.", @@ -31647,10 +35079,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -31664,15 +35098,17 @@ "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." - ] + ], + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." }, "message": { "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", "items": { - "type": "object", "properties": { "key": { "type": "string", @@ -31682,28291 +35118,32355 @@ "type": "string", "description": "[Output Only] A warning data value corresponding to the key." } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + }, + "type": "object" + } } - }, - "description": "[Output Only] Informational warning message." + } } }, - "description": "Contains a list of reservations.", - "id": "ReservationAggregatedList" + "id": "NetworkEndpointGroupAggregatedList", + "type": "object" }, - "RouterStatus": { + "AutoscalingPolicyCustomMetricUtilization": { "properties": { - "network": { + "utilizationTargetType": { + "enum": [ + "DELTA_PER_MINUTE", + "DELTA_PER_SECOND", + "GAUGE" + ], + "description": "Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE.", "type": "string", - "description": "URI of the network to which this router belongs." - }, - "bestRoutes": { - "items": { - "$ref": "Route" - }, - "type": "array", - "description": "Best routes for this router's network." - }, - "bestRoutesForRouter": { - "description": "Best routes learned by this router.", - "type": "array", - "items": { - "$ref": "Route" - } + "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." + ] }, - "bgpPeerStatus": { - "items": { - "$ref": "RouterStatusBgpPeerStatus" - }, - "type": "array" + "utilizationTarget": { + "type": "number", + "format": "double", + "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." }, - "natStatus": { - "items": { - "$ref": "RouterStatusNatStatus" - }, - "type": "array" - } - }, - "id": "RouterStatus", - "type": "object" - }, - "ForwardingRuleReference": { - "type": "object", - "properties": { - "forwardingRule": { - "type": "string" - } - }, - "id": "ForwardingRuleReference" - }, - "RegionInstanceGroupsSetNamedPortsRequest": { - "id": "RegionInstanceGroupsSetNamedPortsRequest", - "properties": { - "fingerprint": { + "metric": { "type": "string", - "format": "byte", - "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." - }, - "namedPorts": { - "items": { - "$ref": "NamedPort" - }, - "description": "The list of named ports to set for this instance group.", - "type": "array" - } - }, - "type": "object" - }, - "ZoneSetPolicyRequest": { - "type": "object", - "properties": { - "bindings": { - "items": { - "$ref": "Binding" - }, - "type": "array", - "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings." + "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." }, - "policy": { - "$ref": "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." + "singleInstanceAssignment": { + "format": "double", + "type": "number", + "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." }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "format": "byte", + "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" } }, - "id": "ZoneSetPolicyRequest" + "id": "AutoscalingPolicyCustomMetricUtilization", + "description": "Custom utilization metric policy.", + "type": "object" }, - "CommitmentsScopedList": { - "id": "CommitmentsScopedList", + "RouterBgp": { "properties": { - "warning": { - "properties": { - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" - }, - "message": { - "type": "string", - "description": "[Output Only] A human-readable description of the warning code." - }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "type": "string" - } - }, - "description": "[Output Only] Informational warning which replaces the list of commitments when the list is empty.", - "type": "object" + "asn": { + "type": "integer", + "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.", + "format": "uint32" }, - "commitments": { + "keepaliveInterval": { + "format": "uint32", + "type": "integer", + "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." + }, + "advertisedGroups": { "items": { - "$ref": "Commitment" + "type": "string", + "enumDescriptions": [ + "Advertise all available subnets (including peer VPC subnets)." + ], + "enum": [ + "ALL_SUBNETS" + ] }, "type": "array", - "description": "[Output Only] A list of commitments contained in this scope." - } - }, - "type": "object" - }, - "BackendServiceFailoverPolicy": { - "description": "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](/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).", - "properties": { - "disableConnectionDrainOnFailover": { - "description": "This can be set to true only if the protocol is TCP. The default is false.", - "type": "boolean" + "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." }, - "failoverRatio": { - "type": "number", - "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](/network/networklb-failover-overview).", - "format": "float" + "advertisedIpRanges": { + "type": "array", + "items": { + "$ref": "RouterAdvertisedIpRange" + }, + "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." }, - "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 TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-overview). The default is false.", - "type": "boolean" + "advertiseMode": { + "enum": [ + "CUSTOM", + "DEFAULT" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string", + "description": "User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM." } }, "type": "object", - "id": "BackendServiceFailoverPolicy" + "id": "RouterBgp" }, - "AuditLogConfig": { + "UrlMapValidationResult": { "type": "object", - "id": "AuditLogConfig", + "id": "UrlMapValidationResult", "properties": { - "logType": { - "type": "string", - "description": "The log type that this config enables.", - "enum": [ - "ADMIN_READ", - "DATA_READ", - "DATA_WRITE", - "LOG_TYPE_UNSPECIFIED" - ], - "enumDescriptions": [ - "Admin reads. Example: CloudIAM getIamPolicy", - "Data reads. Example: CloudSQL Users list", - "Data writes. Example: CloudSQL Users create", - "Default case. Should never be this." - ] - }, - "ignoreChildExemptions": { - "type": "boolean", - "description": "This is deprecated and has no effect. Do not use." + "loadSucceeded": { + "description": "Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' indicates the reasons.", + "type": "boolean" }, - "exemptedMembers": { + "loadErrors": { "items": { "type": "string" }, - "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", + "type": "array" + }, + "testPassed": { + "description": "If successfully loaded, this field indicates whether the test passed. If false, 'testFailures's indicate the reason of failure.", + "type": "boolean" + }, + "testFailures": { + "items": { + "$ref": "TestFailure" + }, "type": "array" } }, - "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." + "description": "Message representing the validation result for a UrlMap." + } + }, + "parameters": { + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" }, - "CustomerEncryptionKey": { - "type": "object", - "properties": { - "rsaEncryptedKey": { - "type": "string", - "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 " + "key": { + "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.", + "type": "string", + "location": "query" + }, + "alt": { + "description": "Data format for response.", + "type": "string", + "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" + ], + "default": "json", + "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" + }, + "userIp": { + "location": "query", + "type": "string", + "description": "Legacy name for parameter that has been superseded by `quotaUser`." + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "uploadType": { + "location": "query", + "type": "string", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "type": "boolean", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "location": "query" + }, + "$.xgafv": { + "location": "query", + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "enum": [ + "1", + "2" + ] + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + } + }, + "protocol": "rest", + "servicePath": "compute/v1/", + "version": "v1", + "rootUrl": "https://compute.googleapis.com/", + "auth": { + "oauth2": { + "scopes": { + "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" }, - "sha256": { - "type": "string", - "description": "[Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource." + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" }, - "kmsKeyName": { - "type": "string", - "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 " + "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." }, - "rawKey": { - "type": "string", - "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=\" " + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" }, - "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" - } - }, - "id": "CustomerEncryptionKey" - }, - "MetadataFilterLabelMatch": { - "properties": { - "value": { - "type": "string", - "description": "The value of the label must match the specified value. value can have a maximum length of 1024 characters." + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" }, - "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" + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Cloud Storage and see the email address of your Google Account" } - }, - "description": "MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the loadbalancer.", - "id": "MetadataFilterLabelMatch", - "type": "object" - }, - "ImageList": { - "description": "Contains a list of images.", - "properties": { - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { + } + } + }, + "icons": { + "x32": "https://www.google.com/images/icons/product/compute_engine-32.png", + "x16": "https://www.google.com/images/icons/product/compute_engine-16.png" + }, + "discoveryVersion": "v1", + "revision": "20220831", + "ownerDomain": "google.com", + "basePath": "/compute/v1/", + "kind": "discovery#restDescription", + "description": "Creates and runs virtual machines on Google Cloud Platform. ", + "resources": { + "httpHealthChecks": { + "methods": { + "patch": { + "id": "compute.httpHealthChecks.patch", + "request": { + "$ref": "HttpHealthCheck" + }, + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "message": { + "httpHealthCheck": { + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path", + "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}" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - } + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" } - } - }, - "items": { - "description": "A list of Image resources.", - "items": { - "$ref": "Image" }, - "type": "array" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - }, - "type": "object", - "id": "ImageList" - }, - "Route": { - "type": "object", - "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.", - "id": "Route", - "properties": { - "nextHopVpnTunnel": { - "description": "The URL to a VpnTunnel that should handle matching packets.", - "type": "string" - }, - "nextHopIlb": { - "type": "string", - "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 " - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "network": { - "description": "Fully-qualified URL of the network that this route applies to.", - "annotations": { - "required": [ - "compute.routes.insert" - ] - }, - "type": "string" - }, - "priority": { - "format": "uint32", - "annotations": { - "required": [ - "compute.routes.insert" - ] + "response": { + "$ref": "Operation" }, - "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.", - "type": "integer" - }, - "nextHopGateway": { - "type": "string", - "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" - }, - "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", - "enumDescriptions": [ - "", - "", - "", - "" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "enum": [ - "BGP", - "STATIC", - "SUBNET", - "TRANSIT" + "httpMethod": "PATCH", + "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "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.", + "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "parameterOrder": [ + "project", + "httpHealthCheck" ] }, - "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" - }, - "nextHopPeering": { - "type": "string", - "description": "[Output Only] The network peering name that should handle matching packets, which should conform to RFC1035." - }, - "name": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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.", - "annotations": { - "required": [ - "compute.routes.insert" - ] + "update": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "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": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + } }, - "type": "string" - }, - "nextHopIp": { - "description": "The network IP address of an instance that should handle matching packets. Only IPv4 is supported.", - "type": "string" - }, - "tags": { - "description": "A list of instance tags to which this route applies.", - "items": { - "type": "string" + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "response": { + "$ref": "Operation" }, - "type": "array", - "annotations": { - "required": [ - "compute.routes.insert" - ] - } - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "warnings": { - "description": "[Output Only] If potential misconfigurations are detected for this route, this field will be populated with warning messages.", - "items": { - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } - } - } + "request": { + "$ref": "HttpHealthCheck" }, - "type": "array" - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" + "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.", + "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "PUT", + "id": "compute.httpHealthChecks.update" }, - "destRange": { - "type": "string", - "annotations": { - "required": [ - "compute.routes.insert" - ] + "delete": { + "id": "compute.httpHealthChecks.delete", + "response": { + "$ref": "Operation" }, - "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported." - }, - "nextHopNetwork": { - "description": "The URL of the local network if it should handle matching packets.", - "type": "string" - }, - "asPaths": { - "description": "[Output Only] AS path.", - "items": { - "$ref": "RouteAsPath" + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified HttpHealthCheck resource.", + "parameters": { + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "httpHealthCheck": { + "location": "path", + "description": "Name of the HttpHealthCheck resource to delete.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + } }, - "type": "array" - }, - "kind": { - "default": "compute#route", - "description": "[Output Only] Type of this resource. Always compute#routes for Route resources.", - "type": "string" + "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}" }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - } - } - }, - "GuestAttributesValue": { - "description": "Array of guest attribute namespace/key/value tuples.", - "id": "GuestAttributesValue", - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "GuestAttributesEntry" - } - } - } - }, - "InstanceGroupManagersPatchPerInstanceConfigsReq": { - "properties": { - "perInstanceConfigs": { - "items": { - "$ref": "PerInstanceConfig" + "insert": { + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "HttpHealthCheck" }, - "description": "The list of per-instance configs to insert or patch on this managed instance group.", - "type": "array" - } - }, - "type": "object", - "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", - "description": "InstanceGroupManagers.patchPerInstanceConfigs" - }, - "SslCertificateList": { - "description": "Contains a list of SslCertificate resources.", - "type": "object", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "kind": { - "default": "compute#sslCertificateList", - "description": "Type of resource.", - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "SslCertificate" + "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } }, - "description": "A list of SslCertificate resources." + "path": "projects/{project}/global/httpHealthChecks", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.httpHealthChecks.insert", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/httpHealthChecks" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - } + "list": { + "flatPath": "projects/{project}/global/httpHealthChecks", + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "filter": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "type": "integer", + "minimum": "0", + "location": "query", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", "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" - } - }, - "id": "SslCertificateList" - }, - "AccessConfig": { - "properties": { - "externalIpv6": { - "type": "string", - "description": "[Output Only] The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically." - }, - "externalIpv6PrefixLength": { - "format": "int32", - "description": "[Output Only] The prefix length of the external IPv6 range.", - "type": "integer" - }, - "name": { - "type": "string", - "description": "The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access." - }, - "networkTier": { - "type": "string", - "enumDescriptions": [ - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products." - ], - "enum": [ - "PREMIUM", - "STANDARD" + }, + "id": "compute.httpHealthChecks.list", + "parameterOrder": [ + "project" ], - "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." - }, - "setPublicPtr": { - "type": "boolean", - "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." + "response": { + "$ref": "HttpHealthCheckList" + }, + "path": "projects/{project}/global/httpHealthChecks", + "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.", + "httpMethod": "GET" }, - "type": { - "enumDescriptions": [ - "", - "" + "get": { + "parameterOrder": [ + "project", + "httpHealthCheck" ], - "type": "string", - "enum": [ - "DIRECT_IPV6", - "ONE_TO_ONE_NAT" + "response": { + "$ref": "HttpHealthCheck" + }, + "id": "compute.httpHealthChecks.get", + "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "The type of configuration. The default and only option is ONE_TO_ONE_NAT.", - "default": "ONE_TO_ONE_NAT" - }, - "natIP": { - "type": "string", - "description": "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." - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#accessConfig for access configs.", - "default": "compute#accessConfig", - "type": "string" - }, - "publicPtrDomainName": { - "description": "The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled.", - "type": "string" - } - }, - "type": "object", - "id": "AccessConfig", - "description": "An access configuration attached to an instance's network interface. Only one access config per instance is supported." - }, - "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.", - "id": "ForwardingRuleServiceDirectoryRegistration", - "properties": { - "serviceDirectoryRegion": { - "type": "string", - "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." - }, - "namespace": { - "type": "string", - "description": "Service Directory namespace to register the forwarding rule under." - }, - "service": { - "description": "Service Directory service to register the forwarding rule under.", - "type": "string" + "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.", + "httpMethod": "GET", + "parameters": { + "httpHealthCheck": { + "description": "Name of the HttpHealthCheck resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path" + }, + "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])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true + } + }, + "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}" } - }, - "type": "object" + } }, - "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.", - "properties": { - "routingConfig": { - "$ref": "NetworkRoutingConfig", - "description": "The network-level routing configuration for this network. Used by Cloud Router to determine what type of network-wide routing behavior to enforce." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#network for networks.", - "type": "string", - "default": "compute#network" - }, - "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.", - "type": "string", - "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}" - }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "autoCreateSubnetworks": { - "type": "boolean", - "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." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "gatewayIPv4": { - "description": "[Output Only] The gateway address for default routing out of the network, selected by GCP.", - "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", - "type": "string" - }, - "mtu": { - "format": "int32", - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1460 and the maximum value is 1500 bytes. If unspecified, defaults to 1460.", - "type": "integer" - }, - "peerings": { - "type": "array", - "description": "[Output Only] A list of network peerings for the resource.", - "items": { - "$ref": "NetworkPeering" - } - }, - "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" - ] + "nodeTemplates": { + "methods": { + "list": { + "parameters": { + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "project": { + "required": true, + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "region": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "maxResults": { + "minimum": "0", + "location": "query", + "type": "integer", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + } }, - "type": "string" - }, - "subnetworks": { - "description": "[Output Only] Server-defined fully-qualified URLs for all subnetworks in this VPC network.", - "items": { - "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 a list of node templates available to the specified project.", + "id": "compute.nodeTemplates.list", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates", + "response": { + "$ref": "NodeTemplateList" }, - "type": "array" - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - } - }, - "id": "Network", - "type": "object" - }, - "VpnGatewayAggregatedList": { - "id": "VpnGatewayAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", - "default": "compute#vpnGatewayAggregatedList", - "type": "string" + "path": "projects/{project}/regions/{region}/nodeTemplates", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region" + ] }, - "items": { - "additionalProperties": { - "$ref": "VpnGatewaysScopedList", - "description": "[Output Only] Name of the scope containing this set of VPN gateways." + "getIamPolicy": { + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "Policy" }, - "description": "A list of VpnGateway resources.", - "type": "object" - }, - "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" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "warning": { - "type": "object", - "properties": { - "message": { + "id": "compute.nodeTemplates.getIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "region": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "optionsRequestedPolicyVersion": { + "format": "int32", + "location": "query", + "type": "integer", + "description": "Requested IAM Policy version." + }, + "resource": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name or id of the resource for this request.", + "type": "string" } }, - "description": "[Output Only] Informational warning message." - } - } - }, - "RegionInstanceGroupManagersSetTemplateRequest": { - "type": "object", - "id": "RegionInstanceGroupManagersSetTemplateRequest", - "properties": { - "instanceTemplate": { - "type": "string", - "description": "URL of the InstanceTemplate resource from which all new instances will be created." - } - } - }, - "RegionInstanceGroupsListInstances": { - "id": "RegionInstanceGroupsListInstances", - "type": "object", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "items": { - "items": { - "$ref": "InstanceWithNamedPorts" - }, - "description": "A list of InstanceWithNamedPorts resources.", - "type": "array" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "kind": { - "description": "The resource type.", - "type": "string", - "default": "compute#regionInstanceGroupsListInstances" - }, - "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" + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", + "parameters": { + "project": { + "location": "path", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true }, - "message": { + "resource": { + "location": "path", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Name or id of the resource for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" }, - "data": { - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "region": { + "description": "The name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" } }, - "type": "object" - } - } - }, - "RegionInstanceGroupManagersListErrorsResponse": { - "properties": { - "items": { - "items": { - "$ref": "InstanceManagedByIgmError" + "id": "compute.nodeTemplates.setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" }, - "description": "[Output Only] The list of errors of the managed instance group.", - "type": "array" - }, - "nextPageToken": { - "type": "string", - "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." - } - }, - "id": "RegionInstanceGroupManagersListErrorsResponse", - "type": "object" - }, - "FirewallPolicyRule": { - "properties": { - "description": { - "type": "string", - "description": "An optional description for this resource." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + } }, - "direction": { - "description": "The direction in which this rule applies.", - "enumDescriptions": [ - "", - "" + "aggregatedList": { + "description": "Retrieves an aggregated list of node templates.", + "flatPath": "projects/{project}/aggregated/nodeTemplates", + "id": "compute.nodeTemplates.aggregatedList", + "parameterOrder": [ + "project" ], - "enum": [ - "EGRESS", - "INGRESS" + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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" - }, - "priority": { - "type": "integer", - "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.", - "format": "int32" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "type": "string", - "description": "[Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules", - "default": "compute#firewallPolicyRule" - }, - "action": { - "description": "The Action to perform when the client connection triggers the rule. Can currently be either \"allow\" or \"deny()\" where valid values for status are 403, 404, and 502.", - "type": "string" - }, - "match": { - "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.", - "$ref": "FirewallPolicyRuleMatcher" - }, - "ruleTupleCount": { - "format": "int32", - "type": "integer", - "description": "[Output Only] Calculation of the complexity of a single firewall policy rule." - }, - "targetServiceAccounts": { - "items": { - "type": "string" + "path": "projects/{project}/aggregated/nodeTemplates", + "response": { + "$ref": "NodeTemplateAggregatedList" }, - "type": "array", - "description": "A list of service accounts indicating the sets of instances that are applied with this rule." - }, - "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" - } - }, - "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" - }, - "HttpFaultAbort": { - "description": "Specification for how requests are aborted as part of fault injection.", - "type": "object", - "id": "HttpFaultAbort", - "properties": { - "httpStatus": { - "format": "uint32", - "description": "The HTTP status code used to abort the request. The value must be between 200 and 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" + "parameters": { + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "location": "query", + "format": "uint32", + "type": "integer" + }, + "includeAllScopes": { + "type": "boolean", + "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" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + } + } }, - "percentage": { - "description": "The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. The value must be between 0.0 and 100.0 inclusive.", - "type": "number", - "format": "double" - } - } - }, - "LocationPolicyLocation": { - "id": "LocationPolicyLocation", - "properties": { - "preference": { - "enumDescriptions": [ - "Location is allowed for use.", - "Location is prohibited.", - "Default value, unused." + "insert": { + "parameterOrder": [ + "project", + "region" ], - "description": "Preference for a given location: ALLOW or DENY.", - "type": "string", - "enum": [ - "ALLOW", - "DENY", - "PREFERENCE_UNSPECIFIED" - ] - } - }, - "type": "object" - }, - "UsableSubnetworkSecondaryRange": { - "properties": { - "ipCidrRange": { - "description": "The range of IP addresses belonging to this subnetwork secondary range.", - "type": "string" - }, - "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" - } - }, - "id": "UsableSubnetworkSecondaryRange", - "description": "Secondary IP range of a usable subnetwork.", - "type": "object" - }, - "InstanceTemplateList": { - "id": "InstanceTemplateList", - "description": "A list of instance templates.", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "warning": { - "type": "object", - "properties": { - "code": { + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates", + "path": "projects/{project}/regions/{region}/nodeTemplates", + "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "NodeTemplate" + }, + "parameters": { + "region": { + "location": "path", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the region for this request.", + "required": true }, - "message": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - } + "project": { + "description": "Project ID for this request.", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" } }, - "description": "[Output Only] Informational warning message." - }, - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceTemplatesListResponse for instance template lists.", - "type": "string", - "default": "compute#instanceTemplateList" - }, - "items": { - "items": { - "$ref": "InstanceTemplate" + "response": { + "$ref": "Operation" }, - "description": "A list of InstanceTemplate resources.", - "type": "array" - }, - "nextPageToken": { - "type": "string", - "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." + "id": "compute.nodeTemplates.insert" }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - } - }, - "type": "object" - }, - "VpnTunnelAggregatedList": { - "id": "VpnTunnelAggregatedList", - "properties": { - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "items": { - "description": "A list of VpnTunnelsScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of VPN tunnels.", - "$ref": "VpnTunnelsScopedList" + "testIamPermissions": { + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.", + "response": { + "$ref": "TestPermissionsResponse" + }, + "httpMethod": "POST", + "id": "compute.nodeTemplates.testIamPermissions", + "parameters": { + "project": { + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true + }, + "resource": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "location": "path" + }, + "region": { + "location": "path", + "type": "string", + "description": "The name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } } }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "nodeTemplate" + ], + "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "id": "compute.nodeTemplates.delete", + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "warning": { - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "parameters": { + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, "type": "string" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - } + "nodeTemplate": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the NodeTemplate resource to delete.", + "type": "string", + "location": "path", + "required": true }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "The name of the region for this request." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" } }, - "description": "[Output Only] Informational warning message." - }, - "kind": { - "type": "string", - "default": "compute#vpnTunnelAggregatedList", - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels." + "description": "Deletes the specified NodeTemplate resource." }, - "nextPageToken": { - "type": "string", - "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": "object" - }, - "RegionInstanceGroupManagerPatchInstanceConfigReq": { - "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", - "type": "object", - "description": "RegionInstanceGroupManagers.patchPerInstanceConfigs", - "properties": { - "perInstanceConfigs": { - "type": "array", - "description": "The list of per-instance configs to insert or patch on this managed instance group.", - "items": { - "$ref": "PerInstanceConfig" - } - } - } - }, - "NodeTemplateAggregatedList": { - "id": "NodeTemplateAggregatedList", - "type": "object", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "description": "A list of NodeTemplatesScopedList resources.", - "type": "object", - "additionalProperties": { - "$ref": "NodeTemplatesScopedList", - "description": "[Output Only] Name of the scope containing this set of node templates." - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - }, - "nextPageToken": { - "type": "string", - "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." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource.Always compute#nodeTemplateAggregatedList for aggregated lists of node templates.", - "default": "compute#nodeTemplateAggregatedList" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "response": { + "$ref": "NodeTemplate" + }, + "httpMethod": "GET", + "parameters": { + "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])?))", + "description": "Project ID for this request.", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "path", + "required": true }, - "message": { + "region": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true, + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" }, - "data": { - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "nodeTemplate": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "location": "path", + "type": "string", + "description": "Name of the node template to return." } - } - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "nodeTemplate" + ], + "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.nodeTemplates.get" } } }, - "UrlRewrite": { - "description": "The spec for modifying the path before sending the request to the matched backend service.", - "type": "object", - "properties": { - "hostRewrite": { - "description": "Prior to forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be between 1 and 255 characters.", - "type": "string" - }, - "pathPrefixRewrite": { - "description": "Prior to forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be between 1 and 1024 characters.", - "type": "string" - } - }, - "id": "UrlRewrite" - }, - "SubnetworkLogConfig": { - "type": "object", - "id": "SubnetworkLogConfig", - "description": "The available logging options for this subnetwork.", - "properties": { - "enable": { - "type": "boolean", - "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 to disable flow logging." - }, - "filterExpr": { - "description": "Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.", - "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" - } - }, - "aggregationInterval": { - "type": "string", - "enum": [ - "INTERVAL_10_MIN", - "INTERVAL_15_MIN", - "INTERVAL_1_MIN", - "INTERVAL_30_SEC", - "INTERVAL_5_MIN", - "INTERVAL_5_SEC" + "instanceGroupManagers": { + "methods": { + "deletePerInstanceConfigs": { + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "request": { + "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq" + }, + "description": "Deletes selected per-instance configurations for the managed instance group.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" + "id": "compute.instanceGroupManagers.deletePerInstanceConfigs", + "parameters": { + "zone": { + "location": "path", + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "type": "string", + "required": true + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" + }, + "instanceGroupManager": { + "location": "path", + "required": true, + "type": "string", + "description": "The name of the managed instance group. It should conform to RFC1035." + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." + "httpMethod": "POST" }, - "metadata": { - "enumDescriptions": [ - "", - "", - "" + "setInstanceTemplate": { + "response": { + "$ref": "Operation" + }, + "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.", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" ], - "type": "string", - "enum": [ - "CUSTOM_METADATA", - "EXCLUDE_ALL_METADATA", - "INCLUDE_ALL_METADATA" + "id": "compute.instanceGroupManagers.setInstanceTemplate", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "httpMethod": "POST", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." - }, - "flowSampling": { - "format": "float", - "type": "number", - "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, which means half of all collected logs are reported." - } - } - }, - "LocationPolicy": { - "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" - } - } - }, - "type": "object", - "description": "Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).", - "id": "LocationPolicy" - }, - "FirewallPolicyRuleMatcherLayer4Config": { - "id": "FirewallPolicyRuleMatcherLayer4Config", - "type": "object", - "properties": { - "ports": { - "type": "array", - "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\"].", - "items": { - "type": "string" - } - }, - "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" - } - } - }, - "AddressAggregatedList": { - "id": "AddressAggregatedList", - "properties": { - "unreachables": { - "type": "array", - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "location": "path", + "required": true, + "type": "string", + "description": "The name of the zone where the managed instance group is located." + }, + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "required": true, + "type": "string", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + } + }, + "request": { + "$ref": "InstanceGroupManagersSetInstanceTemplateRequest" } }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#addressAggregatedList for aggregated lists of addresses.", - "default": "compute#addressAggregatedList" - }, - "warning": { - "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "type": "array" + "listManagedInstances": { + "httpMethod": "POST", + "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 in the alpha and beta API and only if the group's `listManagedInstancesResults` field is set to `PAGINATED`.", + "parameters": { + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" }, - "message": { + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path" }, - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "instanceGroupManager": { + "type": "string", + "location": "path", + "description": "The name of the managed instance group.", + "required": true + }, + "maxResults": { + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "format": "uint32", + "type": "integer", + "default": "500" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "items": { - "type": "object", - "additionalProperties": { - "$ref": "AddressesScopedList", - "description": "[Output Only] Name of the scope containing this set of addresses." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.instanceGroupManagers.listManagedInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "response": { + "$ref": "InstanceGroupManagersListManagedInstancesResponse" }, - "description": "A list of AddressesScopedList resources." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "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" - } - }, - "type": "object" - }, - "VpnTunnel": { - "id": "VpnTunnel", - "properties": { - "vpnGatewayInterface": { - "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated.", - "format": "int32", - "type": "integer" - }, - "vpnGateway": { - "type": "string", - "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." + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ] }, - "peerIp": { - "type": "string", - "description": "IP address of the peer VPN gateway. Only IPv4 is supported." - }, - "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" - }, - "sharedSecretHash": { - "type": "string", - "description": "Hash of the shared secret." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", - "default": "compute#vpnTunnel" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "ikeVersion": { - "type": "integer", - "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.", - "format": "int32" - }, - "router": { - "type": "string", - "description": "URL of the router resource to be used for dynamic routing." - }, - "name": { - "type": "string", - "annotations": { - "required": [ - "compute.vpnTunnels.insert" - ] + "aggregatedList": { + "parameterOrder": [ + "project" + ], + "description": "Retrieves the list of managed instance groups and groups them by zone.", + "path": "projects/{project}/aggregated/instanceGroupManagers", + "parameters": { + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "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" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "minimum": "0", + "location": "query", + "default": "500" + }, + "includeAllScopes": { + "type": "boolean", + "location": "query", + "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." + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + } }, - "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])?" - }, - "detailedStatus": { - "type": "string", - "description": "[Output Only] Detailed status message for the VPN tunnel." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "peerGcpGateway": { - "type": "string", - "description": "URL of the peer side HA GCP 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 GCP VPN gateway." - }, - "targetVpnGateway": { - "type": "string", - "description": "URL of the Target VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created." - }, - "sharedSecret": { - "description": "Shared secret used to set the secure session between the Cloud VPN gateway and the peer VPN gateway.", - "type": "string" - }, - "remoteTrafficSelector": { - "type": "array", - "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.", - "items": { - "type": "string" - } - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "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" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/aggregated/instanceGroupManagers", + "response": { + "$ref": "InstanceGroupManagerAggregatedList" + }, + "id": "compute.instanceGroupManagers.aggregatedList", + "httpMethod": "GET" }, - "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. ", - "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." + "listErrors": { + "id": "compute.instanceGroupManagers.listErrors", + "response": { + "$ref": "InstanceGroupManagersListErrorsResponse" + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" ], - "enum": [ - "ALLOCATING_RESOURCES", - "AUTHORIZATION_ERROR", - "DEPROVISIONING", - "ESTABLISHED", - "FAILED", - "FIRST_HANDSHAKE", - "NEGOTIATION_FAILURE", - "NETWORK_ERROR", - "NO_INCOMING_PACKETS", - "PROVISIONING", - "REJECTED", - "STOPPED", - "WAITING_FOR_FULL_CONFIG" + "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": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string" + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "parameters": { + "maxResults": { + "minimum": "0", + "format": "uint32", + "type": "integer", + "location": "query", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "instanceGroupManager": { + "type": "string", + "required": true, + "location": "path", + "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}." + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "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" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "zone": { + "type": "string", + "location": "path", + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "required": true + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + } + }, + "httpMethod": "GET" }, - "localTrafficSelector": { - "type": "array", - "items": { - "type": "string" + "patch": { + "request": { + "$ref": "InstanceGroupManager" }, - "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." - } - }, - "description": "Represents a Cloud VPN Tunnel resource. For more information about VPN, read the the Cloud VPN Overview.", - "type": "object" - }, - "DisksRemoveResourcePoliciesRequest": { - "properties": { - "resourcePolicies": { - "items": { - "type": "string" + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "PATCH", + "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.", + "response": { + "$ref": "Operation" }, - "type": "array", - "description": "Resource policies to be removed from this disk." - } - }, - "id": "DisksRemoveResourcePoliciesRequest", - "type": "object" - }, - "GlobalSetPolicyRequest": { - "id": "GlobalSetPolicyRequest", - "properties": { - "bindings": { - "items": { - "$ref": "Binding" + "parameters": { + "instanceGroupManager": { + "location": "path", + "required": true, + "description": "The name of the instance group manager.", + "type": "string" + }, + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "zone": { + "description": "The name of the zone where you want to create the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } }, - "type": "array", - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings." - }, - "policy": { - "$ref": "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." - }, - "etag": { - "format": "byte", - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "type": "string" - } - }, - "type": "object" - }, - "AcceleratorTypeList": { - "type": "object", - "id": "AcceleratorTypeList", - "description": "Contains a list of accelerator types.", - "properties": { - "items": { - "description": "A list of AcceleratorType resources.", - "type": "array", - "items": { - "$ref": "AcceleratorType" - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "kind": { - "type": "string", - "default": "compute#acceleratorTypeList", - "description": "[Output Only] Type of resource. Always compute#acceleratorTypeList for lists of accelerator types." - }, - "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" + ], + "id": "compute.instanceGroupManagers.patch", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}" }, - "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.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "listPerInstanceConfigs": { + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", + "id": "compute.instanceGroupManagers.listPerInstanceConfigs", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "InstanceGroupManagersListPerInstanceConfigsResp" + }, + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "parameters": { + "instanceGroupManager": { + "location": "path", + "type": "string", + "description": "The name of the managed instance group. It should conform to RFC1035.", + "required": true + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "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])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true + }, + "maxResults": { + "type": "integer", + "minimum": "0", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "default": "500" + }, + "zone": { + "location": "path", + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "required": true, "type": "string" }, - "message": { + "pageToken": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - } + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" } - } - } - } - }, - "InterconnectAttachmentsScopedList": { - "type": "object", - "id": "InterconnectAttachmentsScopedList", - "properties": { - "interconnectAttachments": { - "items": { - "$ref": "InterconnectAttachment" }, - "description": "A list of interconnect attachments contained in this scope.", - "type": "array" + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ] }, - "warning": { - "properties": { - "code": { + "resize": { + "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.", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", + "id": "compute.instanceGroupManagers.resize", + "parameters": { + "zone": { + "description": "The name of the zone where the managed instance group is located.", "type": "string", - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "path", + "required": true }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "size": { + "location": "query", + "type": "integer", + "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.", + "required": true, + "format": "int32" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "instanceGroupManager": { + "location": "path", + "required": true, + "description": "The name of the managed instance group.", "type": "string" } }, - "description": "Informational warning which replaces the list of addresses when the list is empty.", - "type": "object" - } - } - }, - "HTTPHealthCheck": { - "properties": { - "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.", - "enumDescriptions": [ - "", - "" - ], - "type": "string", - "enum": [ - "NONE", - "PROXY_V1" - ] - }, - "response": { - "type": "string", - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII." - }, - "portName": { - "type": "string", - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence." - }, - "portSpecification": { - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ], - "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "size" ], - "type": "string", - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields." - }, - "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /.", - "type": "string" - }, - "host": { - "type": "string", - "description": "The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used." - }, - "port": { - "type": "integer", - "format": "int32", - "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535." - } - }, - "id": "HTTPHealthCheck", - "type": "object" - }, - "TargetTcpProxyList": { - "type": "object", - "description": "Contains a list of TargetTcpProxy resources.", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "items": { - "description": "A list of TargetTcpProxy resources.", - "items": { - "$ref": "TargetTcpProxy" - }, - "type": "array" - }, - "kind": { - "description": "Type of resource.", - "default": "compute#targetTcpProxyList", - "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" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + } }, - "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.", + "insert": { + "path": "projects/{project}/zones/{zone}/instanceGroupManagers", + "parameters": { + "zone": { + "required": true, "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "location": "path", + "description": "The name of the zone where you want to create the managed instance group." }, - "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).", + "type": "string", + "location": "query" }, - "data": { - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" } - } - } - }, - "id": "TargetTcpProxyList" - }, - "Interconnect": { - "type": "object", - "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the GCP network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", - "id": "Interconnect", - "properties": { - "circuitInfos": { - "items": { - "$ref": "InterconnectCircuitInfo" }, - "description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.", - "type": "array" - }, - "customerName": { - "description": "Customer name, to put in the Letter of Authorization as the party authorized to request a crossconnect.", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "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" - }, - "provisionedLinkCount": { - "format": "int32", - "description": "[Output Only] Number of links actually provisioned in this interconnect.", - "type": "integer" - }, - "interconnectAttachments": { - "type": "array", - "items": { - "type": "string" + "id": "compute.instanceGroupManagers.insert", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", + "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.", + "request": { + "$ref": "InstanceGroupManager" }, - "description": "[Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "requestedLinkCount": { - "type": "integer", - "description": "Target number of physical links in the link bundle, as requested by the customer.", - "format": "int32" - }, - "satisfiesPzs": { - "type": "boolean", - "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present." - }, - "name": { - "annotations": { - "required": [ - "compute.interconnects.insert" - ] + "response": { + "$ref": "Operation" }, - "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", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "nocContactEmail": { - "type": "string", - "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 Stackdriver logs alerting and Cloud Notifications." - }, - "peerIpAddress": { - "type": "string", - "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." - }, - "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.", - "enum": [ - "LINK_TYPE_ETHERNET_100G_LR", - "LINK_TYPE_ETHERNET_10G_LR" - ], - "type": "string", - "enumDescriptions": [ - "100G Ethernet, LR Optics.", - "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" + "parameterOrder": [ + "project", + "zone" ] }, - "state": { - "type": "string", - "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. ", - "enum": [ - "ACTIVE", - "UNPROVISIONED" + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "project", + "zone" ], - "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." - ] - }, - "googleReferenceId": { - "type": "string", - "description": "[Output Only] Google reference ID to be used when raising support tickets with Google or otherwise to debug backend connectivity issues." - }, - "googleIpAddress": { - "type": "string", - "description": "[Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests." - }, - "expectedOutages": { - "type": "array", - "items": { - "$ref": "InterconnectOutageNotification" + "id": "compute.instanceGroupManagers.list", + "parameters": { + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "type": "integer", + "default": "500", + "minimum": "0" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "required": true, + "location": "path", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path", + "type": "string" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + } }, - "description": "[Output Only] A list of outages expected for this Interconnect." - }, - "operationalStatus": { - "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." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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. ", - "enum": [ - "OS_ACTIVE", - "OS_UNPROVISIONED" - ] - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#interconnect for interconnects.", - "default": "compute#interconnect", - "type": "string" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "location": { - "description": "URL of the InterconnectLocation object that represents where this connection is to be provisioned.", - "type": "string" + "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers", + "response": { + "$ref": "InstanceGroupManagerList" + } }, - "interconnectType": { - "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." + "setTargetPools": { + "id": "compute.instanceGroupManagers.setTargetPools", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "httpMethod": "POST", + "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.", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" ], - "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.", - "enum": [ - "DEDICATED", - "IT_PRIVATE", - "PARTNER" + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string" - } - } - }, - "InstanceGroupAggregatedList": { - "type": "object", - "properties": { - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "parameters": { + "requestId": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "message": { + "zone": { + "location": "path", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true, + "description": "The name of the zone where the managed instance group is located." }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "type": "array" + "instanceGroupManager": { + "location": "path", + "description": "The name of the managed instance group.", + "type": "string", + "required": true + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string", + "description": "Project ID for this request." } }, - "type": "object" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "kind": { - "type": "string", - "default": "compute#instanceGroupAggregatedList", - "description": "[Output Only] The resource type, which is always compute#instanceGroupAggregatedList for aggregated lists of instance groups." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "request": { + "$ref": "InstanceGroupManagersSetTargetPoolsRequest" + } }, - "items": { - "type": "object", - "additionalProperties": { - "$ref": "InstanceGroupsScopedList", - "description": "The name of the scope that contains this set of instance groups." + "deleteInstances": { + "response": { + "$ref": "Operation" }, - "description": "A list of InstanceGroupsScopedList resources." - }, - "unreachables": { - "items": { - "type": "string" + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "type": "string", + "location": "path", + "required": true + }, + "instanceGroupManager": { + "type": "string", + "description": "The name of the managed instance group.", + "required": true, + "location": "path" + } }, - "description": "[Output Only] Unreachable resources.", - "type": "array" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - }, - "id": "InstanceGroupAggregatedList" - }, - "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.", - "properties": { - "customRequestHeaders": { - "items": { - "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.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "id": "compute.instanceGroupManagers.deleteInstances", + "request": { + "$ref": "InstanceGroupManagersDeleteInstancesRequest" }, - "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" - }, - "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" - } - }, - "circuitBreakers": { - "$ref": "CircuitBreakers" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "httpMethod": "POST" }, - "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", - "enum": [ - "EXTERNAL", - "INTERNAL", - "INTERNAL_MANAGED", - "INTERNAL_SELF_MANAGED", - "INVALID_LOAD_BALANCING_SCHEME" + "createInstances": { + "request": { + "$ref": "InstanceGroupManagersCreateInstancesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enumDescriptions": [ - "Signifies that this will be used for external HTTP(S), SSL Proxy, TCP Proxy, or Network Load Balancing", - "Signifies that this will be used for Internal TCP/UDP Load Balancing.", - "Signifies that this will be used for Internal HTTP(S) Load Balancing.", - "Signifies that this will be used by Traffic Director.", - "" - ] - }, - "enableCDN": { - "description": "If true, enables Cloud CDN for the backend service of an external HTTP(S) load balancer.", - "type": "boolean" - }, - "connectionDraining": { - "$ref": "ConnectionDraining" - }, - "subsetting": { - "$ref": "Subsetting" - }, - "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 TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-overview).", - "$ref": "BackendServiceFailoverPolicy" - }, - "timeoutSec": { - "format": "int32", - "type": "integer", - "description": "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." + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "id": "compute.instanceGroupManagers.createInstances", + "response": { + "$ref": "Operation" + }, + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "The name of the managed instance group. It should conform to RFC1035.", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "required": true, + "type": "string", + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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" + }, + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } + }, + "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.", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances" }, - "localityLbPolicy": { - "enum": [ - "INVALID_LB_POLICY", - "LEAST_REQUEST", - "MAGLEV", - "ORIGINAL_DESTINATION", - "RANDOM", - "RING_HASH", - "ROUND_ROBIN" + "abandonInstances": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "InstanceGroupManagersAbandonInstancesRequest" + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "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.", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" ], - "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. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only the default ROUND_ROBIN policy is 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" - }, - "customResponseHeaders": { - "items": { - "type": "string" + "parameters": { + "project": { + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "instanceGroupManager": { + "required": true, + "description": "The name of the managed instance group.", + "location": "path", + "type": "string" + }, + "zone": { + "type": "string", + "location": "path", + "description": "The name of the zone where the managed instance group is located.", + "required": true + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } }, - "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" - }, - "outlierDetection": { - "$ref": "OutlierDetection", - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled. 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. 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." + "id": "compute.instanceGroupManagers.abandonInstances" }, - "sessionAffinity": { - "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." + "get": { + "parameters": { + "zone": { + "type": "string", + "description": "The name of the zone where the managed instance group is located.", + "required": true, + "location": "path" + }, + "project": { + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "instanceGroupManager": { + "location": "path", + "required": true, + "description": "The name of the managed instance group.", + "type": "string" + } + }, + "id": "compute.instanceGroupManagers.get", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "Type of session affinity to use. The default is NONE. For a detailed description of session affinity options, see: [Session affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). 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.", - "enum": [ - "CLIENT_IP", - "CLIENT_IP_NO_DESTINATION", - "CLIENT_IP_PORT_PROTO", - "CLIENT_IP_PROTO", - "GENERATED_COOKIE", - "HEADER_FIELD", - "HTTP_COOKIE", - "NONE" - ] - }, - "port": { - "format": "int32", - "description": "Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80. For Internal TCP/UDP Load Balancing and Network Load Balancing, omit port.", - "type": "integer" - }, - "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" - }, - "consistentHash": { - "$ref": "ConsistentHashLoadBalancerSettings", - "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. 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." + "description": "Returns all of the details about the specified managed instance group. Gets a list of available managed instance groups by making a list() request.", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "response": { + "$ref": "InstanceGroupManager" + } }, - "backends": { - "items": { - "$ref": "Backend" + "recreateInstances": { + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "response": { + "$ref": "Operation" }, - "type": "array", - "description": "The list of backends that serve this BackendService." - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "region": { - "type": "string", - "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." - }, - "affinityCookieTtlSec": { - "format": "int32", - "type": "integer", - "description": "Lifetime of cookies in seconds. This setting is applicable to external and internal HTTP(S) 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 one day (86,400). 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." + "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.", + "parameters": { + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "type": "string", + "required": true, + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "instanceGroupManager": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the managed instance group." + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "InstanceGroupManagersRecreateInstancesRequest" + }, + "id": "compute.instanceGroupManagers.recreateInstances", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances" }, - "protocol": { - "enumDescriptions": [ - "gRPC (available for Traffic Director).", - "", - "HTTP/2 with SSL.", - "", - "TCP proxying with SSL.", - "TCP proxying or TCP pass-through.", - "UDP." + "updatePerInstanceConfigs": { + "httpMethod": "POST", + "request": { + "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq" + }, + "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.", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" ], - "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.", - "enum": [ - "GRPC", - "HTTP", - "HTTP2", - "HTTPS", - "SSL", - "TCP", - "UDP" + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string" - }, - "cdnPolicy": { - "$ref": "BackendServiceCdnPolicy", - "description": "Cloud CDN configuration for this BackendService. Only available for specified load balancer types." - }, - "network": { - "type": "string", - "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." - }, - "securitySettings": { - "$ref": "SecuritySettings", - "description": "This field specifies the security policy that applies to this backend service. 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. " - }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this backend service.", - "type": "string" - }, - "iap": { - "description": "The configurations for Identity-Aware Proxy on this resource. Not available for Internal TCP/UDP Load Balancing and Network Load Balancing.", - "$ref": "BackendServiceIAP" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "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" - }, - "portName": { - "type": "string", - "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 TCP/UDP Load Balancing and Network Load Balancing, omit port_name." - }, - "kind": { - "default": "compute#backendService", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#backendService for backend services." - }, - "fingerprint": { - "type": "string", - "format": "byte", - "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." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - } - }, - "type": "object" - }, - "NodeGroupsListNodes": { - "type": "object", - "id": "NodeGroupsListNodes", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "type": "object", - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - } + "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", + "parameters": { + "zone": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035." }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "requestId": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "instanceGroupManager": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the managed instance group. It should conform to RFC1035." + }, + "project": { + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" } - }, - "description": "[Output Only] Informational warning message." - }, - "items": { - "description": "A list of Node resources.", - "type": "array", - "items": { - "$ref": "NodeGroupNode" } }, - "kind": { - "description": "[Output Only] The resource type, which is always compute.nodeGroupsListNodes for the list of nodes in the specified node group.", - "type": "string", - "default": "compute#nodeGroupsListNodes" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - } - } - }, - "ZoneList": { - "id": "ZoneList", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "items": { - "description": "A list of Zone resources.", - "items": { - "$ref": "Zone" + "patchPerInstanceConfigs": { + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "default": "compute#zoneList", - "type": "string", - "description": "Type of resource." + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "request": { + "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq" + }, + "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.", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "id": "compute.instanceGroupManagers.patchPerInstanceConfigs", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string", + "location": "path" + }, + "instanceGroupManager": { + "required": true, + "location": "path", + "type": "string", + "description": "The name of the managed instance group. It should conform to RFC1035." + }, + "zone": { + "location": "path", + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "type": "string", + "required": true + } + } }, - "warning": { - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "applyUpdatesToInstances": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.instanceGroupManagers.applyUpdatesToInstances", + "request": { + "$ref": "InstanceGroupManagersApplyUpdatesRequest" + }, + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "httpMethod": "POST", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.", + "location": "path", + "required": true, "type": "string" }, - "code": { + "instanceGroupManager": { + "required": true, "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "data": { - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "location": "path", + "description": "The name of the managed instance group, should conform to RFC1035." } }, - "type": "object", - "description": "[Output Only] Informational warning message." - } - }, - "description": "Contains a list of zone resources.", - "type": "object" - }, - "Image": { - "type": "object", - "description": "Represents an Image resource. You can use images to create boot disks for your VM instances. For more information, read Images.", - "properties": { - "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" - }, - "sourceSnapshotId": { - "type": "string", - "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." - }, - "family": { - "description": "The name of the image family to which this image belongs. You can create disks by specifying 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" - }, - "labels": { - "additionalProperties": { - "type": "string" + "response": { + "$ref": "Operation" }, - "description": "Labels to apply to this image. These can be later modified by the setLabels method.", - "type": "object" - }, - "id": { - "format": "uint64", - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "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" - }, - "kind": { - "default": "compute#image", - "description": "[Output Only] Type of the resource. Always compute#image for images.", - "type": "string" + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", + "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions." }, - "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.", - "items": { - "$ref": "GuestOsFeature" + "delete": { + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "shieldedInstanceInitialState": { - "description": "Set the secure boot keys of shielded instance.", - "$ref": "InitialStateConfig" - }, - "sourceDisk": { - "type": "string", - "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 " - }, - "rawDisk": { - "type": "object", - "properties": { - "sha1Checksum": { - "pattern": "[a-f0-9]{40}", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "required": true, + "location": "path", "type": "string", - "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." + "description": "The name of the managed instance group to delete." }, - "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 ", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "containerType": { + "zone": { + "required": true, "type": "string", - "enumDescriptions": [ - "" - ], - "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.", - "enum": [ - "TAR" - ] + "location": "path", + "description": "The name of the zone where the managed instance group is located." + }, + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path" } }, - "description": "The parameters of the raw disk image." - }, - "licenses": { - "description": "Any applicable license URI.", - "items": { - "type": "string" + "id": "compute.instanceGroupManagers.delete", + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "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." + } + } + }, + "regionInstanceGroupManagers": { + "methods": { + "setTargetPools": { + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "id": "compute.regionInstanceGroupManagers.setTargetPools", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "location": "path", + "required": true, + "type": "string", + "description": "Name of the managed instance group." + }, + "region": { + "description": "Name of the region scoping this request.", + "required": true, + "type": "string", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "required": true, + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + } }, - "type": "array" - }, - "diskSizeGb": { - "format": "int64", - "description": "Size of the image when restored onto a persistent disk (in GB).", - "type": "string" - }, - "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" + "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.", + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest" + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "licenseCodes": { - "description": "Integer license codes indicating which licenses are attached to this image.", - "type": "array", - "items": { - "type": "string", - "format": "int64" - } - }, - "sourceSnapshot": { - "type": "string", - "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 " - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "labelFingerprint": { - "format": "byte", - "type": "string", - "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." - }, - "status": { - "enumDescriptions": [ - "Image is deleting.", - "Image creation failed due to an error.", - "Image hasn't been created as yet.", - "Image has been successfully created." + "listManagedInstances": { + "httpMethod": "POST", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "response": { + "$ref": "RegionInstanceGroupManagersListInstancesResponse" + }, + "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 in the alpha and beta API and only if the group's `listManagedInstancesResults` field is set to `PAGINATED`.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string", - "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.", - "enum": [ - "DELETING", - "FAILED", - "PENDING", - "READY" - ] - }, - "storageLocations": { - "description": "Cloud Storage bucket storage location of the image (regional or multi-regional).", - "items": { - "type": "string" + "id": "compute.regionInstanceGroupManagers.listManagedInstances", + "parameters": { + "instanceGroupManager": { + "type": "string", + "location": "path", + "description": "The name of the managed instance group.", + "required": true + }, + "region": { + "required": true, + "description": "Name of the region scoping this request.", + "location": "path", + "type": "string" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "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])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "type": "string" + }, + "maxResults": { + "minimum": "0", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "type": "integer", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + } }, - "type": "array" - }, - "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" - }, - "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" - }, - "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" - }, - "deprecated": { - "description": "The deprecation status associated with this image.", - "$ref": "DeprecationStatus" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ] }, - "name": { - "annotations": { - "required": [ - "compute.images.insert" - ] + "applyUpdatesToInstances": { + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", + "httpMethod": "POST", + "parameters": { + "project": { + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request." + }, + "region": { + "type": "string", + "required": true, + "description": "Name of the region scoping this request, should conform to RFC1035.", + "location": "path" + }, + "instanceGroupManager": { + "type": "string", + "location": "path", + "required": true, + "description": "The name of the managed instance group, should conform to RFC1035." + } }, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "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": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "sourceType": { - "enumDescriptions": [ - "" + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "The type of the image used to create this disk. The default and only value is RAW", - "type": "string", - "enum": [ - "RAW" + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" ], - "default": "RAW" - }, - "archiveSizeBytes": { - "description": "Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).", - "format": "int64", - "type": "string" - }, - "sourceSnapshotEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key." - } - }, - "id": "Image" - }, - "RegionSetLabelsRequest": { - "properties": { - "labelFingerprint": { - "type": "string", - "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.", - "format": "byte" - }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" + "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances", + "request": { + "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest" }, - "description": "The labels to set for this resource." - } - }, - "type": "object", - "id": "RegionSetLabelsRequest" - }, - "NetworksAddPeeringRequest": { - "id": "NetworksAddPeeringRequest", - "type": "object", - "properties": { - "peerNetwork": { - "type": "string", - "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." - }, - "autoCreateRoutes": { - "type": "boolean", - "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." - }, - "networkPeering": { - "$ref": "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." - }, - "name": { - "description": "Name of the peering, which should conform to RFC1035.", - "type": "string", - "annotations": { - "required": [ - "compute.networks.addPeering" - ] - } - } - } - }, - "VmEndpointNatMappingsInterfaceNatMappings": { - "id": "VmEndpointNatMappingsInterfaceNatMappings", - "properties": { - "numTotalNatPorts": { - "type": "integer", - "format": "int32", - "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." - }, - "numTotalDrainNatPorts": { - "format": "int32", - "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" - }, - "sourceVirtualIp": { - "type": "string", - "description": "Primary IP of the VM for this NIC." - }, - "natIpPortRanges": { - "type": "array", - "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\"].", - "items": { - "type": "string" - } - }, - "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" - }, - "drainNatIpPortRanges": { - "items": { - "type": "string" + "response": { + "$ref": "Operation" }, - "type": "array", - "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": "object", - "description": "Contain information of Nat mapping for an interface of this endpoint." - }, - "InstancesAddResourcePoliciesRequest": { - "properties": { - "resourcePolicies": { - "description": "Resource policies to be added to this instance.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "type": "object", - "id": "InstancesAddResourcePoliciesRequest" - }, - "RouterStatusBgpPeerStatus": { - "properties": { - "state": { - "description": "BGP state as specified in RFC1771.", - "type": "string" - }, - "uptime": { - "type": "string", - "description": "Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds" - }, - "uptimeSeconds": { - "type": "string", - "description": "Time this session has been up, in seconds. Format: 145" + "description": "Apply updates to selected instances the managed instance group." }, - "status": { - "enum": [ - "DOWN", - "UNKNOWN", - "UP" - ], - "enumDescriptions": [ - "", - "", - "" + "insert": { + "parameters": { + "region": { + "required": true, + "type": "string", + "location": "path", + "description": "Name of the region scoping this request." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request." + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", + "request": { + "$ref": "InstanceGroupManager" + }, + "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.", + "response": { + "$ref": "Operation" + }, + "id": "compute.regionInstanceGroupManagers.insert", + "parameterOrder": [ + "project", + "region" ], - "description": "Status of the BGP peer: {UP, DOWN}", - "type": "string" - }, - "linkedVpnTunnel": { - "type": "string", - "description": "URL of the VPN tunnel that this BGP peer controls." - }, - "name": { - "description": "Name of this BGP peer. Unique within the Routers resource.", - "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" - }, - "numLearnedRoutes": { - "description": "Number of routes learned from the remote BGP Peer.", - "format": "uint32", - "type": "integer" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "advertisedRoutes": { - "description": "Routes that were advertised to the remote BGP peer", - "items": { - "$ref": "Route" + "listErrors": { + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "response": { + "$ref": "RegionInstanceGroupManagersListErrorsResponse" }, - "type": "array" - }, - "peerIpAddress": { - "description": "IP address of the remote BGP interface.", - "type": "string" - }, - "ipAddress": { - "type": "string", - "description": "IP address of the local BGP interface." - } - }, - "id": "RouterStatusBgpPeerStatus", - "type": "object" - }, - "BackendServiceList": { - "properties": { - "warning": { - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "maxResults": { + "format": "uint32", + "type": "integer", + "minimum": "0", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "region": { + "location": "path", + "description": "Name of the region scoping this request. This should conform to RFC1035.", + "type": "string", + "required": true + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "instanceGroupManager": { + "required": true, + "type": "string", + "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" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "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" - }, - "items": { - "description": "A list of BackendService resources.", - "type": "array", - "items": { - "$ref": "BackendService" - } - }, - "kind": { - "type": "string", - "default": "compute#backendServiceList", - "description": "[Output Only] Type of resource. Always compute#backendServiceList for lists of backend services." + "id": "compute.regionInstanceGroupManagers.listErrors", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "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." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - } - }, - "description": "Contains a list of BackendService resources.", - "id": "BackendServiceList", - "type": "object" - }, - "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" - }, - "destinationZone": { - "type": "string", - "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 " - } - } - }, - "RegionInstanceGroupManagersSetTargetPoolsRequest": { - "properties": { - "fingerprint": { - "format": "byte", - "type": "string", - "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." - }, - "targetPools": { - "items": { - "type": "string" - }, - "type": "array", - "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": "object", - "id": "RegionInstanceGroupManagersSetTargetPoolsRequest" - }, - "AcceleratorConfig": { - "type": "object", - "id": "AcceleratorConfig", - "properties": { - "acceleratorType": { - "type": "string", - "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." - }, - "acceleratorCount": { - "format": "int32", - "type": "integer", - "description": "The number of the guest accelerator cards exposed to this instance." - } - }, - "description": "A specification of the type and number of accelerator cards attached to the instance." - }, - "NodeGroupList": { - "description": "Contains a list of nodeGroups.", - "type": "object", - "id": "NodeGroupList", - "properties": { - "kind": { - "default": "compute#nodeGroupList", - "type": "string", - "description": "[Output Only] Type of resource.Always compute#nodeGroupList for lists of node groups." - }, - "nextPageToken": { - "type": "string", - "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." - }, - "items": { - "type": "array", - "items": { - "$ref": "NodeGroup" - }, - "description": "A list of NodeGroup resources." - }, - "warning": { - "type": "object", - "properties": { - "data": { - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "list": { + "httpMethod": "GET", + "parameters": { + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "region": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "required": true, + "description": "Name of the region scoping this request.", + "location": "path" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "maxResults": { + "format": "uint32", + "default": "500", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "type": "integer" } }, - "description": "[Output Only] Informational warning message." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", + "parameterOrder": [ + "project", + "region" + ], + "path": "projects/{project}/regions/{region}/instanceGroupManagers", + "description": "Retrieves the list of managed instance groups that are contained within the specified region.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "RegionInstanceGroupManagerList" + }, + "id": "compute.regionInstanceGroupManagers.list" }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - } - }, - "InstanceGroupManagersUpdatePerInstanceConfigsReq": { - "type": "object", - "description": "InstanceGroupManagers.updatePerInstanceConfigs", - "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", - "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", - "items": { - "$ref": "PerInstanceConfig" + "setInstanceTemplate": { + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.setInstanceTemplate", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" }, - "type": "array" - } - } - }, - "MachineTypeList": { - "description": "Contains a list of machine types.", - "type": "object", - "properties": { - "items": { - "items": { - "$ref": "MachineType" + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "request": { + "$ref": "RegionInstanceGroupManagersSetTemplateRequest" }, - "type": "array", - "description": "A list of MachineType resources." - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#machineTypeList for lists of machine types.", - "type": "string", - "default": "compute#machineTypeList" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "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": { - "properties": { - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "instanceGroupManager": { + "location": "path", + "type": "string", + "description": "The name of the managed instance group.", + "required": true }, - "message": { + "region": { + "location": "path", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Name of the region scoping this request.", + "required": true } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - }, - "id": "MachineTypeList" - }, - "UrlMapsAggregatedList": { - "id": "UrlMapsAggregatedList", - "properties": { - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "type": "string", - "default": "compute#urlMapsAggregatedList", - "description": "Type of resource." - }, - "items": { - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of UrlMaps.", - "$ref": "UrlMapsScopedList" - }, - "description": "A list of UrlMapsScopedList resources." - }, - "nextPageToken": { - "type": "string", - "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." + "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected." }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "recreateInstances": { + "id": "compute.regionInstanceGroupManagers.recreateInstances", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "parameters": { + "instanceGroupManager": { + "location": "path", + "type": "string", + "required": true, + "description": "Name of the managed instance group." }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "requestId": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. 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": { + "region": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Name of the region scoping this request.", + "location": "path", + "required": true + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true } - } - }, - "unreachables": { - "items": { - "type": "string" }, - "type": "array", - "description": "[Output Only] Unreachable resources." - } - }, - "type": "object" - }, - "SecurityPoliciesListPreconfiguredExpressionSetsResponse": { - "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse", - "properties": { - "preconfiguredExpressionSets": { - "$ref": "SecurityPoliciesWafConfig" - } - }, - "type": "object" - }, - "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. next tag = 20", - "properties": { - "region": { - "type": "string", - "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." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "targetService": { - "description": "The URL of a service serving the endpoint identified by this service attachment.", - "type": "string" - }, - "connectedEndpoints": { - "items": { - "$ref": "ServiceAttachmentConnectedEndpoint" + "request": { + "$ref": "RegionInstanceGroupManagersRecreateRequest" }, - "type": "array", - "description": "[Output Only] An array of connections for all the consumers connected to this service attachment." - }, - "producerForwardingRule": { - "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.", - "type": "string" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "name": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.serviceAttachments.insert" - ] + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "httpMethod": "POST", + "response": { + "$ref": "Operation" }, - "type": "string", - "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." - }, - "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" - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", - "default": "compute#serviceAttachment", - "type": "string" + "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." }, - "consumerRejectLists": { - "items": { - "type": "string" + "patch": { + "request": { + "$ref": "InstanceGroupManager" }, - "type": "array", - "description": "Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number." - }, - "fingerprint": { - "type": "string", - "format": "byte", - "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." - }, - "natSubnets": { - "type": "array", - "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.", - "items": { - "type": "string" - } - }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "consumerAcceptLists": { - "type": "array", - "description": "Projects that are allowed to connect to this service attachment.", - "items": { - "$ref": "ServiceAttachmentConsumerProjectLimit" + "id": "compute.regionInstanceGroupManagers.patch", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "instanceGroupManager": { + "location": "path", + "type": "string", + "description": "The name of the instance group manager.", + "required": true + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "type": "string" + }, + "region": { + "type": "string", + "location": "path", + "required": true, + "description": "Name of the region scoping this request." + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "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.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "PATCH", + "response": { + "$ref": "Operation" } }, - "connectionPreference": { - "enum": [ - "ACCEPT_AUTOMATIC", - "ACCEPT_MANUAL", - "CONNECTION_PREFERENCE_UNSPECIFIED" + "delete": { + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "DELETE", + "description": "Deletes the specified managed instance group and all of the instances in that group.", + "id": "compute.regionInstanceGroupManagers.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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": [ - "", - "", - "" - ] - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "pscServiceAttachmentId": { - "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment.", - "$ref": "Uint128" - } - }, - "id": "ServiceAttachment", - "type": "object" - }, - "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.", - "properties": { - "headerName": { - "description": "The header field name to match on when bypassing cache. Values are case-insensitive.", - "type": "string" - } - }, - "type": "object" - }, - "CorsPolicy": { - "properties": { - "allowOriginRegexes": { - "type": "array", - "items": { - "type": "string" + "parameters": { + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "instanceGroupManager": { + "type": "string", + "required": true, + "description": "Name of the managed instance group to delete.", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } }, - "description": "Specifies the regualar expression patterns that match allowed origins. For regular expression grammar please see github.com/google/re2/wiki/Syntax An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes." - }, - "allowMethods": { - "type": "array", - "items": { - "type": "string" + "response": { + "$ref": "Operation" }, - "description": "Specifies the content for the Access-Control-Allow-Methods header." + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ] }, - "allowHeaders": { - "type": "array", - "items": { - "type": "string" + "updatePerInstanceConfigs": { + "request": { + "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq" }, - "description": "Specifies the content for the Access-Control-Allow-Headers header." - }, - "maxAge": { - "description": "Specifies how long results of a preflight request can be cached in seconds. This 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 translates to the Access-Control-Allow-Credentials header. Default is false.", - "type": "boolean" - }, - "allowOrigins": { - "items": { - "type": "string" + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "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.", + "httpMethod": "POST", + "parameters": { + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "region": { + "type": "string", + "required": true, + "location": "path", + "description": "Name of the region scoping this request, should conform to RFC1035." + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "instanceGroupManager": { + "type": "string", + "location": "path", + "required": true, + "description": "The name of the managed instance group. It should conform to RFC1035." + } }, - "type": "array", - "description": "Specifies the list of origins that will be allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes." - }, - "exposeHeaders": { - "description": "Specifies the content for the Access-Control-Expose-Headers header.", - "type": "array", - "items": { - "type": "string" - } - }, - "disabled": { - "description": "If true, specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.", - "type": "boolean" - } - }, - "type": "object", - "id": "CorsPolicy", - "description": "The specification for allowing client side cross-origin requests. Please see W3C Recommendation for Cross Origin Resource Sharing" - }, - "SslCertificate": { - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#sslCertificate for SSL certificates.", - "default": "compute#sslCertificate", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "expireTime": { - "type": "string", - "description": "[Output Only] Expire time of the certificate. RFC3339" - }, - "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" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "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" - }, - "subjectAlternativeNames": { - "description": "[Output Only] Domains associated with the certificate via Subject Alternative Name.", - "items": { - "type": "string" + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "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" - }, - "selfManaged": { - "$ref": "SslCertificateSelfManagedSslCertificate", - "description": "Configuration and status of a self-managed SSL certificate." - }, - "selfLink": { - "type": "string", - "description": "[Output only] Server-defined URL for the resource." - }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "type": { - "type": "string", - "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.", - "enum": [ - "MANAGED", - "SELF_MANAGED", - "TYPE_UNSPECIFIED" + "deleteInstances": { + "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.", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" ], - "enumDescriptions": [ - "Google-managed SSLCertificate.", - "Certificate uploaded by user.", - "" - ] - } - }, - "type": "object", - "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 sslCertificates are used by: - external HTTPS load balancers - SSL proxy load balancers The regionSslCertificates are used by internal HTTPS 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." - }, - "LicensesListResponse": { - "properties": { - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "required": true, + "location": "path" }, - "message": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "data": { - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "region": { + "required": true, + "type": "string", + "description": "Name of the region scoping this request.", + "location": "path" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "description": "Project ID for this request." } - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "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" - }, - "items": { - "description": "A list of License resources.", - "type": "array", - "items": { - "$ref": "License" - } - } - }, - "type": "object", - "id": "LicensesListResponse" - }, - "VmEndpointNatMappings": { - "id": "VmEndpointNatMappings", - "properties": { - "instanceName": { - "type": "string", - "description": "Name of the VM instance which the endpoint belongs to" + }, + "request": { + "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.regionInstanceGroupManagers.deleteInstances" }, - "interfaceNatMappings": { - "type": "array", - "items": { - "$ref": "VmEndpointNatMappingsInterfaceNatMappings" + "resize": { + "parameters": { + "region": { + "description": "Name of the region scoping this request.", + "type": "string", + "location": "path", + "required": true + }, + "project": { + "type": "string", + "required": true, + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "size": { + "description": "Number of instances that should exist in this instance group manager.", + "minimum": "0", + "location": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "type": "string", + "required": true, + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "id": "compute.regionInstanceGroupManagers.resize", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager", + "size" + ], + "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.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", + "httpMethod": "POST", + "response": { + "$ref": "Operation" } - } - }, - "description": "Contain information of Nat mapping for a VM endpoint (i.e., NIC).", - "type": "object" - }, - "Metadata": { - "description": "A metadata key/value entry.", - "type": "object", - "id": "Metadata", - "properties": { - "kind": { - "type": "string", - "default": "compute#metadata", - "description": "[Output Only] Type of the resource. Always compute#metadata for metadata." }, - "fingerprint": { - "type": "string", - "format": "byte", - "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." - }, - "items": { - "items": { - "properties": { - "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" - }, - "key": { - "annotations": { - "required": [ - "compute.instances.insert", - "compute.projects.setCommonInstanceMetadata" - ] - }, - "type": "string", - "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}" - } + "deletePerInstanceConfigs": { + "request": { + "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "location": "path", + "description": "The name of the managed instance group. It should conform to RFC1035.", + "type": "string", + "required": true }, - "description": "Metadata", - "type": "object" + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "region": { + "type": "string", + "location": "path", + "description": "Name of the region scoping this request, should conform to RFC1035.", + "required": true + } }, - "description": "Array of key/value pairs. The total size of all keys and values must be less than 512 KB.", - "type": "array" - } - } - }, - "BackendBucketCdnPolicyBypassCacheOnRequestHeader": { - "id": "BackendBucketCdnPolicyBypassCacheOnRequestHeader", - "properties": { - "headerName": { - "type": "string", - "description": "The header field name to match on when bypassing cache. Values are case-insensitive." - } - }, - "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" - }, - "HealthCheckLogConfig": { - "description": "Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver.", - "type": "object", - "id": "HealthCheckLogConfig", - "properties": { - "enable": { - "type": "boolean", - "description": "Indicates whether or not to export logs. This is false by default, which means no health check logging will be done." - } - } - }, - "BackendBucketList": { - "type": "object", - "id": "BackendBucketList", - "description": "Contains a list of BackendBucket resources.", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "httpMethod": "POST", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "description": "Deletes selected per-instance configurations for the managed instance group.", + "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "items": { - "items": { - "$ref": "BackendBucket" + "get": { + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "id": "compute.regionInstanceGroupManagers.get", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{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.", + "response": { + "$ref": "InstanceGroupManager" }, - "type": "array", - "description": "A list of BackendBucket resources." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this 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" + "parameters": { + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "location": "path", + "required": true + }, + "instanceGroupManager": { + "required": true, + "description": "Name of the managed instance group to return.", + "location": "path", + "type": "string" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + } }, - "kind": { - "type": "string", - "description": "Type of resource.", - "default": "compute#backendBucketList" + "abandonInstances": { + "id": "compute.regionInstanceGroupManagers.abandonInstances", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "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.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "location": "path", + "description": "Name of the managed instance group.", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "type": "string", + "required": true, + "location": "path", + "description": "Name of the region scoping this request." + }, + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + } + }, + "request": { + "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - }, - "type": "object" - } + "createInstances": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "RegionInstanceGroupManagersCreateInstancesRequest" + }, + "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.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "id": "compute.regionInstanceGroupManagers.createInstances", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "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" }, - "message": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" } } - } - } - }, - "SecurityPolicyRuleMatcher": { - "type": "object", - "id": "SecurityPolicyRuleMatcher", - "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", - "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.", - "$ref": "Expr" }, - "config": { - "$ref": "SecurityPolicyRuleMatcherConfig", - "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." + "listPerInstanceConfigs": { + "response": { + "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "instanceGroupManager": { + "required": true, + "description": "The name of the managed instance group. It should conform to RFC1035.", + "type": "string", + "location": "path" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "type": "integer", + "location": "query", + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0" + }, + "region": { + "type": "string", + "location": "path", + "required": true, + "description": "Name of the region scoping this request, should conform to RFC1035." + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + } + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs" }, - "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.", - "enumDescriptions": [ - "Matches the source IP address of a request to the IP ranges supplied in config." + "patchPerInstanceConfigs": { + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "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.", + "httpMethod": "POST", + "parameters": { + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request, should conform to RFC1035.", + "required": true, + "location": "path" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "required": true, + "location": "path", + "type": "string" + } + }, + "request": { + "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq" + }, + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" ], - "type": "string", - "enum": [ - "SRC_IPS_V1" + "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ] } } }, - "CircuitBreakers": { - "description": "Settings controlling the volume of requests, connections and retries to this backend service.", - "type": "object", - "properties": { - "maxRequestsPerConnection": { - "description": "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" - }, - "maxPendingRequests": { - "description": "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" - }, - "maxRequests": { - "format": "int32", - "description": "The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit.", - "type": "integer" - }, - "maxConnections": { - "description": "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.", - "format": "int32", - "type": "integer" - }, - "maxRetries": { - "type": "integer", - "description": "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.", - "format": "int32" - } - }, - "id": "CircuitBreakers" - }, - "AutoscalerStatusDetails": { - "properties": { - "type": { - "type": "string", - "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" - ], - "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." + "publicAdvertisedPrefixes": { + "methods": { + "patch": { + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" ], - "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." - }, - "message": { - "type": "string", - "description": "The status message." - } - }, - "id": "AutoscalerStatusDetails", - "type": "object" - }, - "ServiceAttachmentConsumerProjectLimit": { - "id": "ServiceAttachmentConsumerProjectLimit", - "properties": { - "projectIdOrNum": { - "type": "string", - "description": "The project id or number for the project to set the limit for." - }, - "connectionLimit": { - "format": "uint32", - "description": "The value of the limit to set.", - "type": "integer" - } - }, - "type": "object" - }, - "RouterStatusResponse": { - "properties": { - "result": { - "$ref": "RouterStatus" - }, - "kind": { - "default": "compute#routerStatusResponse", - "description": "Type of resource.", - "type": "string" - } - }, - "type": "object", - "id": "RouterStatusResponse" - }, - "AutoscalingPolicyScalingSchedule": { - "type": "object", - "id": "AutoscalingPolicyScalingSchedule", - "properties": { - "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: http://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of “UTC” if left empty.", - "type": "string" - }, - "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" - }, - "schedule": { - "type": "string", - "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." - }, - "description": { - "type": "string", - "description": "A description of a scaling schedule." - }, - "durationSec": { - "type": "integer", - "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.", - "format": "int32" + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "response": { + "$ref": "Operation" + }, + "parameters": { + "publicAdvertisedPrefix": { + "description": "Name of the PublicAdvertisedPrefix resource to patch.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "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.", + "request": { + "$ref": "PublicAdvertisedPrefix" + }, + "httpMethod": "PATCH", + "id": "compute.publicAdvertisedPrefixes.patch", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "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" - } - }, - "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." - }, - "DisksResizeRequest": { - "type": "object", - "id": "DisksResizeRequest", - "properties": { - "sizeGb": { - "type": "string", - "description": "The new size of the persistent disk, which is specified in GB.", - "format": "int64" - } - } - }, - "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.", - "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" - } - }, - "id": "ResourcePolicyResourceStatus", - "type": "object" - }, - "FirewallPolicyList": { - "properties": { - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "list": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "filter": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" }, - "data": { - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "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" + }, + "maxResults": { + "default": "500", + "minimum": "0", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "location": "query" + }, + "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", + "description": "Project ID for this request.", + "type": "string", + "required": true } }, - "type": "object" - }, - "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" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#firewallPolicyList for listsof FirewallPolicies", - "default": "compute#firewallPolicyList" - }, - "items": { - "description": "A list of FirewallPolicy resources.", - "items": { - "$ref": "FirewallPolicy" + "description": "Lists the PublicAdvertisedPrefixes for a project.", + "id": "compute.publicAdvertisedPrefixes.list", + "response": { + "$ref": "PublicAdvertisedPrefixList" }, - "type": "array" - } - }, - "type": "object", - "id": "FirewallPolicyList" - }, - "TargetHttpProxyAggregatedList": { - "type": "object", - "id": "TargetHttpProxyAggregatedList", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "unreachables": { - "type": "array", - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - } - }, - "kind": { - "type": "string", - "default": "compute#targetHttpProxyAggregatedList", - "description": "[Output Only] Type of resource. Always compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies." + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/global/publicAdvertisedPrefixes" }, - "items": { - "type": "object", - "additionalProperties": { - "$ref": "TargetHttpProxiesScopedList", - "description": "Name of the scope containing this set of TargetHttpProxies." + "insert": { + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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])?))", + "type": "string", + "required": true, + "location": "path", + "description": "Project ID for this request." + } }, - "description": "A list of TargetHttpProxiesScopedList resources." - }, - "nextPageToken": { - "type": "string", - "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." - } - } - }, - "RegionUrlMapsValidateRequest": { - "properties": { - "resource": { - "$ref": "UrlMap", - "description": "Content of the UrlMap to be validated." - } - }, - "id": "RegionUrlMapsValidateRequest", - "type": "object" - }, - "ProjectsSetDefaultNetworkTierRequest": { - "properties": { - "networkTier": { - "description": "Default network tier to be set.", - "enumDescriptions": [ - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products." + "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.", + "httpMethod": "POST", + "id": "compute.publicAdvertisedPrefixes.insert", + "path": "projects/{project}/global/publicAdvertisedPrefixes", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "enum": [ - "PREMIUM", - "STANDARD" - ] - } - }, - "id": "ProjectsSetDefaultNetworkTierRequest", - "type": "object" - }, - "NamedPort": { - "type": "object", - "id": "NamedPort", - "properties": { - "port": { - "format": "int32", - "type": "integer", - "description": "The port number, which can be a value between 1 and 65535." + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "PublicAdvertisedPrefix" + }, + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes" }, - "name": { - "description": "The name for this named port. The name must be 1-63 characters long, and comply with RFC1035.", - "type": "string" - } - }, - "description": "The named port. For example: \u003c\"http\", 80\u003e." - }, - "ReservationAffinity": { - "type": "object", - "description": "Specifies the reservations that this instance can consume from.", - "properties": { - "consumeReservationType": { - "type": "string", - "enum": [ - "ANY_RESERVATION", - "NO_RESERVATION", - "SPECIFIC_RESERVATION", - "UNSPECIFIED" + "get": { + "id": "compute.publicAdvertisedPrefixes.get", + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" ], - "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.", - "" + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "description": "Returns the specified PublicAdvertisedPrefix resource.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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." - }, - "values": { - "type": "array", - "items": { - "type": "string" + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "httpMethod": "GET", + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "publicAdvertisedPrefix": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "description": "Name of the PublicAdvertisedPrefix resource to return." + } }, - "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." - }, - "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" - } - }, - "id": "ReservationAffinity" - }, - "NodeTypesScopedList": { - "type": "object", - "id": "NodeTypesScopedList", - "properties": { - "nodeTypes": { - "type": "array", - "description": "[Output Only] A list of node types contained in this scope.", - "items": { - "$ref": "NodeType" + "response": { + "$ref": "PublicAdvertisedPrefix" } }, - "warning": { - "properties": { - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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.publicAdvertisedPrefixes.delete", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "requestId": { "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "message": { + "publicAdvertisedPrefix": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Name of the PublicAdvertisedPrefix resource to delete.", + "location": "path", + "required": true }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "type": "string", + "required": true, + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" } }, - "description": "[Output Only] An informational warning that appears when the node types list is empty.", - "type": "object" - } - } - }, - "AllocationSpecificSKUAllocationReservedInstanceProperties": { - "type": "object", - "id": "AllocationSpecificSKUAllocationReservedInstanceProperties", - "description": "Properties of the SKU instances being reserved. Next ID: 9", - "properties": { - "guestAccelerators": { - "items": { - "$ref": "AcceleratorConfig" + "description": "Deletes the specified PublicAdvertisedPrefix", + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "response": { + "$ref": "Operation" }, - "description": "Specifies accelerator type and count.", - "type": "array" - }, - "locationHint": { - "type": "string", - "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." - }, - "localSsds": { - "type": "array", - "description": "Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.", - "items": { - "$ref": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk" - } - }, - "machineType": { - "type": "string", - "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." - }, - "minCpuPlatform": { - "description": "Minimum cpu platform the reservation.", - "type": "string" + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ] } } }, - "TargetPoolsScopedList": { - "type": "object", - "id": "TargetPoolsScopedList", - "properties": { - "targetPools": { - "items": { - "$ref": "TargetPool" + "resourcePolicies": { + "methods": { + "delete": { + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.resourcePolicies.delete", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "response": { + "$ref": "Operation" }, - "description": "A list of target pools contained in this scope.", - "type": "array" - }, - "warning": { - "type": "object", - "properties": { - "message": { + "parameterOrder": [ + "project", + "region", + "resourcePolicy" + ], + "parameters": { + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request.", + "location": "path", + "type": "string" + }, + "requestId": { + "location": "query", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "resourcePolicy": { + "required": true, "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the resource policy to delete.", + "location": "path" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - }, - "type": "array" + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true } }, - "description": "Informational warning which replaces the list of addresses when the list is empty." - } - } - }, - "Condition": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "sys": { - "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." - ], - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "IP", - "NAME", - "NO_ATTR", - "REGION", - "SERVICE" - ], - "type": "string" + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "description": "Deletes the specified resource policy." }, - "iam": { - "enum": [ - "APPROVER", - "ATTRIBUTION", - "AUTHORITY", - "CREDENTIALS_TYPE", - "CREDS_ASSERTION", - "JUSTIFICATION_TYPE", - "NO_ATTR", - "SECURITY_REALM" - ], - "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": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "op": { - "enum": [ - "DISCHARGED", - "EQUALS", - "IN", - "NOT_EQUALS", - "NOT_IN", - "NO_OP" + "parameterOrder": [ + "project", + "region" ], - "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." - ] - }, - "svc": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "description": "This is deprecated and has no effect. Do not use.", - "type": "array" - } - }, - "id": "Condition" - }, - "NodeTemplatesScopedList": { - "type": "object", - "id": "NodeTemplatesScopedList", - "properties": { - "warning": { - "properties": { - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "id": "compute.resourcePolicies.insert", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - } + "region": { + "description": "Name of the region for this request.", + "type": "string", + "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" + "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", + "description": "Project ID for this request.", + "type": "string", + "required": true } }, - "type": "object", - "description": "[Output Only] An informational warning that appears when the node templates list is empty." - }, - "nodeTemplates": { - "items": { - "$ref": "NodeTemplate" - }, - "type": "array", - "description": "[Output Only] A list of node templates contained in this scope." - } - } - }, - "InstanceProperties": { - "type": "object", - "properties": { - "shieldedInstanceConfig": { - "$ref": "ShieldedInstanceConfig" - }, - "metadata": { - "$ref": "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." - }, - "networkInterfaces": { - "items": { - "$ref": "NetworkInterface" - }, - "type": "array", - "description": "An array of network access configurations for this interface." - }, - "guestAccelerators": { - "items": { - "$ref": "AcceleratorConfig" - }, - "description": "A list of guest accelerator cards' type and count to use for instances created from these properties.", - "type": "array" - }, - "resourcePolicies": { - "items": { - "type": "string" + "response": { + "$ref": "Operation" }, - "description": "Resource policies (names, not ULRs) applied to instances created from these properties.", - "type": "array" - }, - "reservationAffinity": { - "$ref": "ReservationAffinity", - "description": "Specifies the reservations that instances can consume from." - }, - "serviceAccounts": { - "items": { - "$ref": "ServiceAccount" + "flatPath": "projects/{project}/regions/{region}/resourcePolicies", + "request": { + "$ref": "ResourcePolicy" }, - "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" - }, - "scheduling": { - "$ref": "Scheduling", - "description": "Specifies the scheduling options for the instances that are created from these properties." - }, - "confidentialInstanceConfig": { - "description": "Specifies the Confidential Instance options.", - "$ref": "ConfidentialInstanceConfig" + "path": "projects/{project}/regions/{region}/resourcePolicies", + "description": "Creates a new resource policy.", + "httpMethod": "POST" }, - "privateIpv6GoogleAccess": { - "description": "The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default.", - "type": "string", - "enum": [ - "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", - "INHERIT_FROM_SUBNETWORK" - ], - "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." - ] - }, - "machineType": { - "type": "string", - "description": "The machine type to use for instances that are created from these properties.", - "annotations": { - "required": [ - "compute.instanceTemplates.insert" - ] - } - }, - "advancedMachineFeatures": { - "description": "Controls for advanced machine-related behavior features.", - "$ref": "AdvancedMachineFeatures" - }, - "disks": { - "type": "array", - "description": "An array of disks that are associated with the instances that are created from these properties.", - "items": { - "$ref": "AttachedDisk" - } - }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" + "aggregatedList": { + "description": "Retrieves an aggregated list of resource policies.", + "id": "compute.resourcePolicies.aggregatedList", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/aggregated/resourcePolicies", + "parameters": { + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "maxResults": { + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "default": "500", + "format": "uint32", + "location": "query" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "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])?))", + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request." + } }, - "description": "Labels to apply to instances that are created from these properties." - }, - "minCpuPlatform": { - "type": "string", - "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." - }, - "canIpForward": { - "type": "boolean", - "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." - }, - "tags": { - "$ref": "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." - }, - "description": { - "description": "An optional text description for the instances that are created from these properties.", - "type": "string" - } - }, - "id": "InstanceProperties" - }, - "FirewallPolicy": { - "id": "FirewallPolicy", - "properties": { - "associations": { - "description": "A list of associations that belong to this firewall policy.", - "type": "array", - "items": { - "$ref": "FirewallPolicyAssociation" - } - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "selfLinkWithId": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource with the resource id." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "name": { - "type": "string", - "description": "[Output Only] Name of the resource. It is a numeric ID allocated by GCP which uniquely identifies the Firewall Policy." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "parent": { - "type": "string", - "description": "[Output Only] The parent of the firewall policy." - }, - "kind": { - "default": "compute#firewallPolicy", - "type": "string", - "description": "[Output only] Type of the resource. Always compute#firewallPolicyfor firewall policies" - }, - "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" + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/aggregated/resourcePolicies", + "response": { + "$ref": "ResourcePolicyAggregatedList" } }, - "shortName": { - "type": "string", - "description": "User-provided name of the Organization firewall plicy. The name should be unique in the organization in which the firewall policy is created. 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])?" - }, - "fingerprint": { - "type": "string", - "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.", - "format": "byte" - }, - "ruleTupleCount": { - "format": "int32", - "description": "[Output Only] Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.", - "type": "integer" - }, - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "displayName": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "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 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." - } - }, - "type": "object", - "description": "Represents a Firewall Policy resource." - }, - "ExternalVpnGatewayInterface": { - "type": "object", - "id": "ExternalVpnGatewayInterface", - "description": "The interface for the external VPN gateway.", - "properties": { - "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" - }, - "id": { - "format": "uint32", - "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" - } - } - }, - "ServiceAccount": { - "type": "object", - "properties": { - "email": { - "description": "Email address of the service account.", - "type": "string" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" + "testIamPermissions": { + "parameters": { + "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])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "location": "path" + }, + "resource": { + "required": true, + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request." + } }, - "description": "The list of scopes to be made available for this service account." - } - }, - "description": "A service account.", - "id": "ServiceAccount" - }, - "TargetReference": { - "properties": { - "target": { - "type": "string" - } - }, - "id": "TargetReference", - "type": "object" - }, - "InterconnectDiagnosticsLinkStatus": { - "id": "InterconnectDiagnosticsLinkStatus", - "properties": { - "googleDemarc": { - "description": "The Demarc address assigned by Google and provided in the LoA.", - "type": "string" - }, - "transmittingOpticalPower": { - "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the transmitted light level.", - "$ref": "InterconnectDiagnosticsLinkOpticalPower" - }, - "receivingOpticalPower": { - "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level.", - "$ref": "InterconnectDiagnosticsLinkOpticalPower" - }, - "circuitId": { - "description": "The unique ID for this link assigned during turn up by Google.", - "type": "string" - }, - "arpCaches": { - "type": "array", - "items": { - "$ref": "InterconnectDiagnosticsARPEntry" + "request": { + "$ref": "TestPermissionsRequest" }, - "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" - }, - "lacpStatus": { - "$ref": "InterconnectDiagnosticsLinkLACPStatus" - } - }, - "type": "object" - }, - "RegionInstanceGroupManagersApplyUpdatesRequest": { - "id": "RegionInstanceGroupManagersApplyUpdatesRequest", - "description": "RegionInstanceGroupManagers.applyUpdatesToInstances", - "properties": { - "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" - }, - "minimalAction": { - "enumDescriptions": [ - "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." - ], - "type": "string", - "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. - 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.", - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ] - }, - "mostDisruptiveAllowedAction": { - "type": "string", - "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. - 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.", - "enumDescriptions": [ - "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", + "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" - ] - }, - "instances": { - "items": { - "type": "string" + "id": "compute.resourcePolicies.testIamPermissions", + "response": { + "$ref": "TestPermissionsResponse" }, - "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" - } - }, - "type": "object" - }, - "InstanceGroupManagerStatusStatefulPerInstanceConfigs": { - "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "type": "object", - "properties": { - "allEffective": { - "description": "A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", - "type": "boolean" - } - } - }, - "NodeTemplateList": { - "id": "NodeTemplateList", - "description": "Contains a list of node templates.", - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "httpMethod": "POST", + "description": "Returns permissions that a caller has on the specified resource." }, - "items": { - "description": "A list of NodeTemplate resources.", - "items": { - "$ref": "NodeTemplate" + "list": { + "id": "compute.resourcePolicies.list", + "path": "projects/{project}/regions/{region}/resourcePolicies", + "parameterOrder": [ + "project", + "region" + ], + "httpMethod": "GET", + "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.", + "response": { + "$ref": "ResourcePolicyList" }, - "type": "array" - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource.Always compute#nodeTemplateList for lists of node templates.", - "default": "compute#nodeTemplateList" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "warning": { - "properties": { - "code": { + "flatPath": "projects/{project}/regions/{region}/resourcePolicies", + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "required": true, + "description": "Name of the region for this request." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "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`)", + "minimum": "0", + "format": "uint32", + "location": "query", + "type": "integer", + "default": "500" }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" - } - }, - "type": "object", - "description": "[Output Only] Informational warning message." - } - }, - "type": "object" - }, - "InterconnectList": { - "properties": { - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "pageToken": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" }, - "data": { - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" }, - "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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "type": "string", - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" } } }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#interconnectList for lists of interconnects.", - "default": "compute#interconnectList", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "items": { - "items": { - "$ref": "Interconnect" + "get": { + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "resourcePolicy": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the resource policy to retrieve." + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "type": "string", + "location": "path", + "required": true, + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } }, - "description": "A list of Interconnect resources.", - "type": "array" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "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": "Response to the list request, and contains a list of interconnects.", - "type": "object", - "id": "InterconnectList" - }, - "InstancesRemoveResourcePoliciesRequest": { - "id": "InstancesRemoveResourcePoliciesRequest", - "type": "object", - "properties": { - "resourcePolicies": { - "items": { - "type": "string" + "response": { + "$ref": "ResourcePolicy" }, - "description": "Resource policies to be removed from this instance.", - "type": "array" - } - } - }, - "TargetVpnGateway": { - "id": "TargetVpnGateway", - "type": "object", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "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" + "description": "Retrieves all information of the specified resource policy.", + "id": "compute.resourcePolicies.get", + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "parameterOrder": [ + "project", + "region", + "resourcePolicy" + ] }, - "network": { - "type": "string", - "annotations": { - "required": [ - "compute.targetVpnGateways.insert" - ] + "setIamPolicy": { + "response": { + "$ref": "Policy" }, - "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "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.", - "items": { - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "RegionSetPolicyRequest" }, - "type": "array" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "name": { - "type": "string", - "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" - ] - } - }, - "status": { - "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY" + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "parameterOrder": [ + "project", + "region", + "resource" ], - "description": "[Output Only] The status of the VPN gateway, which can be one of the following: CREATING, READY, FAILED, or DELETING.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" - ] - }, - "tunnels": { - "type": "array", - "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.", - "items": { - "type": "string" - } + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.resourcePolicies.setIamPolicy", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path" + }, + "region": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string", + "description": "The name of the region for this request." + }, + "resource": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name or id of the resource for this request.", + "required": true + } + }, + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy" }, - "region": { - "type": "string", - "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." + "getIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "id": "compute.resourcePolicies.getIamPolicy", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "resource": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "required": true, + "type": "string", + "location": "path" + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "optionsRequestedPolicyVersion": { + "location": "query", + "format": "int32", + "description": "Requested IAM Policy version.", + "type": "integer" + }, + "region": { + "description": "The name of the region for this request.", + "type": "string", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "httpMethod": "GET", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy" } - }, - "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." + } }, - "NetworkInterface": { - "properties": { - "queueCount": { - "type": "integer", - "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.", - "format": "int32" - }, - "ipv6AccessType": { - "enumDescriptions": [ - "This network interface can have external IPv6.", - "IPv6 access type not set. Means this network interface hasn't been turned on IPv6 yet." - ], - "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.", - "enum": [ - "EXTERNAL", - "UNSPECIFIED_IPV6_ACCESS_TYPE" + "targetGrpcProxies": { + "methods": { + "insert": { + "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string" - }, - "ipv6Address": { - "type": "string", - "description": "[Output Only] An IPv6 internal network address for this network interface." - }, - "stackType": { - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY", - "UNSPECIFIED_STACK_TYPE" + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "TargetGrpcProxy" + }, + "parameterOrder": [ + "project" ], - "type": "string", - "description": "The stack type for this network interface 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 instance creation and update network interface operations.", - "enumDescriptions": [ - "The network interface can have both IPv4 and IPv6 addresses.", - "The network interface will be assigned IPv4 address.", - "" - ] - }, - "network": { - "description": "URL of the 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 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" - }, - "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" - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#networkInterface for network interfaces.", - "default": "compute#networkInterface" - }, - "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.", - "items": { - "$ref": "AccessConfig" + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path" + } }, - "type": "array" - }, - "accessConfigs": { - "type": "array", - "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.", - "items": { - "$ref": "AccessConfig" - } + "path": "projects/{project}/global/targetGrpcProxies", + "flatPath": "projects/{project}/global/targetGrpcProxies", + "id": "compute.targetGrpcProxies.insert", + "httpMethod": "POST" }, - "aliasIpRanges": { - "items": { - "$ref": "AliasIpRange" + "patch": { + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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.", + "required": true, + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } }, - "type": "array", - "description": "An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks." - }, - "name": { - "description": "[Output Only] The name of the network interface, which is generated by the server. For network devices, these are eth0, eth1, etc.", - "type": "string" - }, - "subnetwork": { - "type": "string", - "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 " - }, - "nicType": { - "enum": [ - "GVNIC", - "UNSPECIFIED_NIC_TYPE", - "VIRTIO_NET" + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "id": "compute.targetGrpcProxies.patch", + "parameterOrder": [ + "project", + "targetGrpcProxy" ], - "type": "string", - "enumDescriptions": [ - "GVNIC", - "No type specified.", - "VIRTIO" + "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.", + "request": { + "$ref": "TargetGrpcProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet." - }, - "fingerprint": { - "format": "byte", - "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" - } - }, - "type": "object", - "id": "NetworkInterface", - "description": "A network interface resource attached to an instance." - }, - "PacketMirroringForwardingRuleInfo": { - "properties": { - "url": { - "type": "string", - "description": "Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic." + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "httpMethod": "PATCH" }, - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the forwarding rule; defined by the server.", - "type": "string" - } - }, - "type": "object", - "id": "PacketMirroringForwardingRuleInfo" - }, - "SslCertificateManagedSslCertificate": { - "type": "object", - "properties": { - "domainStatus": { - "description": "[Output only] Detailed statuses of the domains specified for managed certificate resource.", - "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" - ] + "get": { + "id": "compute.targetGrpcProxies.get", + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "response": { + "$ref": "TargetGrpcProxy" }, - "type": "object" - }, - "status": { - "type": "string", - "enum": [ - "ACTIVE", - "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED", - "PROVISIONING", - "PROVISIONING_FAILED", - "PROVISIONING_FAILED_PERMANENTLY", - "RENEWAL_FAILED" + "description": "Returns the specified TargetGrpcProxy resource in the given scope.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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." + "httpMethod": "GET", + "parameterOrder": [ + "project", + "targetGrpcProxy" ], - "description": "[Output only] Status of the managed certificate resource." - }, - "domains": { - "items": { - "type": "string" - }, - "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" - } - }, - "id": "SslCertificateManagedSslCertificate", - "description": "Configuration and status of a managed SSL certificate." - }, - "RouterStatusNatStatus": { - "properties": { - "userAllocatedNatIps": { - "items": { - "type": "string" - }, - "type": "array", - "description": "A list of IPs user-allocated for NAT. They will be raw IP strings like \"179.12.26.133\"." - }, - "drainUserAllocatedNatIps": { - "items": { - "type": "string" - }, - "type": "array", - "description": "A list of IPs user-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"]." - }, - "name": { - "type": "string", - "description": "Unique name of this NAT." - }, - "userAllocatedNatIpResources": { - "items": { - "type": "string" - }, - "description": "A list of fully qualified URLs of reserved IP address resources.", - "type": "array" - }, - "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" - }, - "ruleStatus": { - "type": "array", - "description": "Status of rules in this NAT.", - "items": { - "$ref": "RouterStatusNatStatusNatRuleStatus" + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[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}", + "type": "string", + "required": true, + "location": "path" + } } }, - "drainAutoAllocatedNatIps": { - "items": { - "type": "string" - }, - "type": "array", - "description": "A list of IPs auto-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"]." - }, - "numVmEndpointsWithNatMappings": { - "type": "integer", - "description": "Number of VM endpoints (i.e., Nics) that can use NAT.", - "format": "int32" - }, - "autoAllocatedNatIps": { - "items": { - "type": "string" + "list": { + "httpMethod": "GET", + "response": { + "$ref": "TargetGrpcProxyList" }, - "description": "A list of IPs auto-allocated for NAT. Example: [\"1.1.1.1\", \"129.2.16.89\"]", - "type": "array" - } - }, - "description": "Status of a NAT contained in this router.", - "id": "RouterStatusNatStatus", - "type": "object" - }, - "SecurityPolicyList": { - "type": "object", - "properties": { - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "description": "Lists the TargetGrpcProxies for a project in the given scope.", + "parameters": { + "maxResults": { + "minimum": "0", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "default": "500", + "type": "integer" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", "type": "string" }, - "code": { + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "orderBy": { "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "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])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" } }, - "type": "object" - }, - "items": { - "type": "array", - "description": "A list of SecurityPolicy resources.", - "items": { - "$ref": "SecurityPolicy" - } - }, - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/global/targetGrpcProxies", + "path": "projects/{project}/global/targetGrpcProxies", + "id": "compute.targetGrpcProxies.list", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#securityPolicyList for listsof securityPolicies", - "type": "string", - "default": "compute#securityPolicyList" - } - }, - "id": "SecurityPolicyList" - }, - "LogConfigCloudAuditOptions": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "LogConfigCloudAuditOptions", - "properties": { - "logName": { - "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." + "delete": { + "parameterOrder": [ + "project", + "targetGrpcProxy" ], - "enum": [ - "ADMIN_ACTIVITY", - "DATA_ACCESS", - "UNSPECIFIED_LOG_NAME" + "id": "compute.targetGrpcProxies.delete", + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true + }, + "targetGrpcProxy": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetGrpcProxy resource to delete.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "description": "This is deprecated and has no effect. Do not use." - }, - "authorizationLoggingOptions": { - "$ref": "AuthorizationLoggingOptions", - "description": "This is deprecated and has no effect. Do not use." - } - }, - "type": "object" - }, - "NodeGroupMaintenanceWindow": { - "description": "Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window.", - "type": "object", - "id": "NodeGroupMaintenanceWindow", - "properties": { - "maintenanceDuration": { - "$ref": "Duration", - "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario." - }, - "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" + "description": "Deletes the specified TargetGrpcProxy in the given scope", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "httpMethod": "DELETE", + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}" } } }, - "DiskTypeList": { - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "DiskType" + "nodeTypes": { + "methods": { + "get": { + "response": { + "$ref": "NodeType" }, - "description": "A list of DiskType resources." - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#diskTypeList for disk types.", - "default": "compute#diskTypeList", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "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": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.nodeTypes.get", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "zone", + "nodeType" + ], + "parameters": { + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "The name of the zone for this request.", + "required": true + }, + "nodeType": { + "description": "Name of the node type to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true + }, + "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", + "type": "string", + "required": true, + "description": "Project ID for this request." + } + }, + "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", + "description": "Returns the specified node type. Gets a list of available node types by making a list() request.", + "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "aggregatedList": { + "httpMethod": "GET", + "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.", + "id": "compute.nodeTypes.aggregatedList", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/aggregated/nodeTypes", + "flatPath": "projects/{project}/aggregated/nodeTypes", + "response": { + "$ref": "NodeTypeAggregatedList" + }, + "parameters": { + "maxResults": { + "format": "uint32", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "location": "query", + "minimum": "0" + }, + "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])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path", "type": "string" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - } + "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" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "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" + }, + "filter": { + "location": "query", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." } } - } - }, - "type": "object", - "description": "Contains a list of disk types.", - "id": "DiskTypeList" - }, - "UrlMapReference": { - "properties": { - "urlMap": { - "type": "string" - } - }, - "id": "UrlMapReference", - "type": "object" - }, - "ServiceAttachmentAggregatedList": { - "id": "ServiceAttachmentAggregatedList", - "type": "object", - "properties": { - "kind": { - "type": "string", - "default": "compute#serviceAttachmentAggregatedList", - "description": "Type of resource." }, - "unreachables": { - "items": { - "type": "string" + "list": { + "parameterOrder": [ + "project", + "zone" + ], + "flatPath": "projects/{project}/zones/{zone}/nodeTypes", + "httpMethod": "GET", + "response": { + "$ref": "NodeTypeList" }, - "type": "array", - "description": "[Output Only] Unreachable resources." - }, - "items": { - "type": "object", - "description": "A list of ServiceAttachmentsScopedList resources.", - "additionalProperties": { - "description": "Name of the scope containing this set of ServiceAttachments.", - "$ref": "ServiceAttachmentsScopedList" - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "data": { - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/zones/{zone}/nodeTypes", + "id": "compute.nodeTypes.list", + "parameters": { + "zone": { + "required": true, + "description": "The name of the zone for this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" }, - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - } - } - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "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": "Contains a list of ServiceAttachmentsScopedList." - }, - "TargetHttpsProxiesScopedList": { - "properties": { - "targetHttpsProxies": { - "type": "array", - "items": { - "$ref": "TargetHttpsProxy" - }, - "description": "A list of TargetHttpsProxies contained in this scope." - }, - "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "type": "object", - "properties": { - "message": { + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "type": "integer", + "default": "500", + "format": "uint32", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", "type": "string" }, - "data": { - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." } - } - } - }, - "id": "TargetHttpsProxiesScopedList", - "type": "object" - }, - "VpnGatewayStatusVpnConnection": { - "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be a external VPN gateway or GCP VPN gateway.", - "properties": { - "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" - }, - "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" - }, - "state": { - "$ref": "VpnGatewayStatusHighAvailabilityRequirementState", - "description": "HighAvailabilityRequirementState for the VPN connection." - }, - "tunnels": { - "items": { - "$ref": "VpnGatewayStatusTunnel" }, - "description": "List of VPN tunnels that are in this VPN connection.", - "type": "array" + "description": "Retrieves a list of node types available to the specified project." } - }, - "id": "VpnGatewayStatusVpnConnection", - "type": "object" + } }, - "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" - }, - "state": { - "description": "[Output Only] The current state of a scaling schedule.", - "type": "string", - "enum": [ - "ACTIVE", - "DISABLED", - "OBSOLETE", - "READY" + "targetVpnGateways": { + "methods": { + "insert": { + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", + "path": "projects/{project}/regions/{region}/targetVpnGateways", + "parameterOrder": [ + "project", + "region" ], - "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." - ] - }, - "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" - } - }, - "id": "ScalingScheduleStatus" - }, - "PathRule": { - "properties": { - "routeAction": { - "description": "In response to a matching path, the load balancer performs advanced routing actions like URL rewrites, header transformations, etc. prior to 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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a pathRule's routeAction.", - "$ref": "HttpRouteAction" - }, - "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": { - "type": "string" + "parameters": { + "region": { + "location": "path", + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } }, - "type": "array" - }, - "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 target gRPC proxy.", - "$ref": "HttpRedirectAction" - }, - "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 additionally specified, advanced routing actions like URL Rewrites, etc. take effect prior to sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendService s. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", - "type": "string" - } - }, - "id": "PathRule", - "type": "object", - "description": "A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL." - }, - "InstancesSetServiceAccountRequest": { - "id": "InstancesSetServiceAccountRequest", - "type": "object", - "properties": { - "scopes": { - "items": { - "type": "string" + "response": { + "$ref": "Operation" }, - "type": "array", - "description": "The list of scopes to be made available for this service account." - }, - "email": { - "type": "string", - "description": "Email address of the service account." - } - } - }, - "ServiceAttachmentList": { - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", - "default": "compute#serviceAttachmentList" - }, - "items": { - "type": "array", - "items": { - "$ref": "ServiceAttachment" + "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "TargetVpnGateway" }, - "description": "A list of ServiceAttachment resources." + "httpMethod": "POST", + "id": "compute.targetVpnGateways.insert" }, - "warning": { - "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "aggregatedList": { + "httpMethod": "GET", + "id": "compute.targetVpnGateways.aggregatedList", + "description": "Retrieves an aggregated list of target VPN gateways.", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/aggregated/targetVpnGateways", + "response": { + "$ref": "TargetVpnGatewayAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources 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": { + "project": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" }, - "code": { + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "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.", + "type": "boolean", + "location": "query" + }, + "maxResults": { + "minimum": "0", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "default": "500", + "location": "query" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + } + }, + "flatPath": "projects/{project}/aggregated/targetVpnGateways" + }, + "get": { + "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "parameterOrder": [ + "project", + "region", + "targetVpnGateway" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.targetVpnGateways.get", + "httpMethod": "GET", + "parameters": { + "targetVpnGateway": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "location": "path", + "description": "Name of the target VPN gateway to return." + }, + "region": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request.", + "type": "string" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - } - }, - "type": "object", - "id": "ServiceAttachmentList" - }, - "BackendServiceCdnPolicyNegativeCachingPolicy": { - "properties": { - "ttl": { - "type": "integer", - "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.", - "format": "int32" - }, - "code": { - "type": "integer", - "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.", - "format": "int32" - } - }, - "id": "BackendServiceCdnPolicyNegativeCachingPolicy", - "type": "object", - "description": "Specify CDN TTLs for response error codes." - }, - "RouterBgpPeerBfd": { - "properties": { - "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" - }, - "sessionInitializationMode": { - "type": "string", - "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 PASSIVE.", - "enumDescriptions": [ - "", - "", - "" - ], - "enum": [ - "ACTIVE", - "DISABLED", - "PASSIVE" - ] - }, - "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" - }, - "minReceiveInterval": { - "type": "integer", - "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.", - "format": "uint32" - } - }, - "id": "RouterBgpPeerBfd", - "type": "object" - }, - "NetworkEndpointGroupAggregatedList": { - "properties": { - "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" - }, - "kind": { - "type": "string", - "default": "compute#networkEndpointGroupAggregatedList", - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupAggregatedList for aggregated lists of network endpoint groups." + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.", + "response": { + "$ref": "TargetVpnGateway" + } }, - "warning": { - "type": "object", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "list": { + "parameters": { + "pageToken": { + "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.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", "type": "string" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "description": "Name of the region for this request." + }, + "maxResults": { + "format": "uint32", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "default": "500", + "location": "query" + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "project": { + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" } }, - "description": "[Output Only] Informational warning message." - }, - "items": { - "description": "A list of NetworkEndpointGroupsScopedList resources.", - "additionalProperties": { - "description": "The name of the scope that contains this set of network endpoint groups.", - "$ref": "NetworkEndpointGroupsScopedList" + "response": { + "$ref": "TargetVpnGatewayList" }, - "type": "object" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "httpMethod": "GET", + "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.", + "path": "projects/{project}/regions/{region}/targetVpnGateways", + "id": "compute.targetVpnGateways.list", + "parameterOrder": [ + "project", + "region" + ], + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "setLabels": { + "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "httpMethod": "POST", + "parameters": { + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "type": "string" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "region": { + "required": true, + "type": "string", + "location": "path", + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "resource": { + "type": "string", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request." + } + }, + "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.targetVpnGateways.setLabels", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels" }, - "unreachables": { - "type": "array", - "items": { - "type": "string" + "delete": { + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request." + }, + "targetVpnGateway": { + "location": "path", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the target VPN gateway to delete." + }, + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + } }, - "description": "[Output Only] Unreachable resources." + "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "targetVpnGateway" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.targetVpnGateways.delete", + "description": "Deletes the specified target VPN gateway." } - }, - "type": "object", - "id": "NetworkEndpointGroupAggregatedList" + } }, - "HTTP2HealthCheck": { - "properties": { - "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields.", - "type": "string", - "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "regions": { + "methods": { + "get": { + "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request. 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.", + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "type": "string" + }, + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the region resource to return.", + "type": "string" + } + }, + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" + "response": { + "$ref": "Region" + }, + "path": "projects/{project}/regions/{region}", + "id": "compute.regions.get", + "flatPath": "projects/{project}/regions/{region}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "port": { - "type": "integer", - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", - "format": "int32" - }, - "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", - "type": "string" - }, - "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", - "type": "string" - }, - "proxyHeader": { - "type": "string", - "enum": [ - "NONE", - "PROXY_V1" + "list": { + "flatPath": "projects/{project}/regions", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enumDescriptions": [ - "", - "" + "parameterOrder": [ + "project" ], - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE." - }, - "host": { - "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", - "type": "string" - }, - "requestPath": { - "description": "The request path of the HTTP/2 health check request. The default value is /.", - "type": "string" - } - }, - "type": "object", - "id": "HTTP2HealthCheck" - }, - "SecurityPolicyAdaptiveProtectionConfig": { - "id": "SecurityPolicyAdaptiveProtectionConfig", - "type": "object", - "properties": { - "layer7DdosDefenseConfig": { - "description": "If set to true, enables Cloud Armor Machine Learning.", - "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig" + "parameters": { + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "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])?))", + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "maxResults": { + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "type": "integer", + "default": "500", + "format": "uint32" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + } + }, + "response": { + "$ref": "RegionList" + }, + "path": "projects/{project}/regions", + "id": "compute.regions.list", + "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.", + "httpMethod": "GET" } - }, - "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP)." + } }, - "RegionInstanceGroupsListInstancesRequest": { - "id": "RegionInstanceGroupsListInstancesRequest", - "type": "object", - "properties": { - "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" - }, - "instanceState": { - "description": "Instances in which state should be returned. Valid options are: 'ALL', 'RUNNING'. By default, it lists all instances.", - "enum": [ - "ALL", - "RUNNING" - ], - "type": "string", - "enumDescriptions": [ - "Matches any status of the instances, running, non-running and others.", - "Instance is in RUNNING state if it is running." - ] - } - } - }, - "FirewallPolicyAssociation": { - "type": "object", - "id": "FirewallPolicyAssociation", - "properties": { - "shortName": { - "type": "string", - "description": "[Output Only] The short name of the firewall policy of the association." - }, - "name": { - "type": "string", - "description": "The name for an association." - }, - "displayName": { - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy of the association.", - "type": "string" - }, - "attachmentTarget": { - "type": "string", - "description": "The target that the firewall policy is attached to." - }, - "firewallPolicyId": { - "description": "[Output Only] The firewall policy ID of the association.", - "type": "string" - } - } - }, - "GlobalOrganizationSetPolicyRequest": { - "properties": { - "etag": { - "type": "string", - "format": "byte", - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag." - }, - "bindings": { - "type": "array", - "items": { - "$ref": "Binding" - }, - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings." - }, - "policy": { - "$ref": "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." - } - }, - "id": "GlobalOrganizationSetPolicyRequest", - "type": "object" - }, - "GuestOsFeature": { - "description": "Guest OS features.", - "properties": { - "type": { - "description": "The ID of a supported feature. Read Enabling guest operating system features to see a list of available options.", - "enum": [ - "FEATURE_TYPE_UNSPECIFIED", - "GVNIC", - "MULTI_IP_SUBNET", - "SECURE_BOOT", - "SEV_CAPABLE", - "UEFI_COMPATIBLE", - "VIRTIO_SCSI_MULTIQUEUE", - "WINDOWS" + "regionBackendServices": { + "methods": { + "getHealth": { + "description": "Gets the most recent health check results for this regional BackendService.", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region", + "backendService" ], - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" - ] - } - }, - "type": "object", - "id": "GuestOsFeature" - }, - "TargetVpnGatewayAggregatedList": { - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of target VPN gateways.", - "$ref": "TargetVpnGatewaysScopedList" + "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", + "response": { + "$ref": "BackendServiceGroupHealth" }, - "description": "A list of TargetVpnGateway resources." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", - "default": "compute#targetVpnGatewayAggregatedList", - "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": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "parameters": { + "backendService": { + "location": "path", + "type": "string", + "description": "Name of the BackendService resource for which to get health.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" }, - "message": { + "region": { + "description": "Name of the region scoping this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "project": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" } + }, + "id": "compute.regionBackendServices.getHealth", + "request": { + "$ref": "ResourceGroupReference" } }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "id": "TargetVpnGatewayAggregatedList" - }, - "PublicDelegatedPrefixList": { - "properties": { - "warning": { - "properties": { - "data": { - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "delete": { + "id": "compute.regionBackendServices.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "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" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "backendService": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "Name of the BackendService resource to delete." + }, + "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])?))", + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string" } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "default": "compute#publicDelegatedPrefixList", - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixList for public delegated prefixes." - }, - "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" + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified regional BackendService resource.", + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "path": "projects/{project}/regions/{region}/backendServices/{backendService}" }, - "items": { - "description": "A list of PublicDelegatedPrefix resources.", - "items": { - "$ref": "PublicDelegatedPrefix" + "list": { + "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.", + "id": "compute.regionBackendServices.list", + "response": { + "$ref": "BackendServiceList" }, - "type": "array" - } - }, - "id": "PublicDelegatedPrefixList", - "type": "object" - }, - "NodeTemplate": { - "properties": { - "accelerators": { - "items": { - "$ref": "AcceleratorConfig" + "flatPath": "projects/{project}/regions/{region}/backendServices", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "description": "Name of the region scoping this request." + }, + "project": { + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "maxResults": { + "minimum": "0", + "default": "500", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query" + } }, - "type": "array" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "serverBinding": { - "$ref": "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." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/backendServices" }, - "disks": { - "type": "array", - "items": { - "$ref": "LocalDisk" + "getIamPolicy": { + "id": "compute.regionBackendServices.getIamPolicy", + "path": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "parameters": { + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path", + "description": "Name or id of the resource for this request.", + "required": true + }, + "region": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "The name of the region for this request.", + "required": true + }, + "optionsRequestedPolicyVersion": { + "format": "int32", + "location": "query", + "description": "Requested IAM Policy version.", + "type": "integer" + } + }, + "httpMethod": "GET", + "response": { + "$ref": "Policy" } }, - "statusMessage": { - "type": "string", - "description": "[Output Only] An optional, human-readable explanation of the status." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "name": { - "type": "string", - "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." - }, - "kind": { - "type": "string", - "default": "compute#nodeTemplate", - "description": "[Output Only] The type of the resource. Always compute#nodeTemplate for node templates." - }, - "nodeType": { - "type": "string", - "description": "The node type to use for nodes group that are created from this template." - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "nodeTypeFlexibility": { - "$ref": "NodeTemplateNodeTypeFlexibility", - "description": "The flexible properties of the desired node type. Node groups that use this node template will create nodes of a type that matches these properties. This field is mutually exclusive with the node_type property; you can only define one or the other, but not both." - }, - "region": { - "description": "[Output Only] The name of the region where the node template resides, such as us-central1.", - "type": "string" + "update": { + "request": { + "$ref": "BackendService" + }, + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "parameters": { + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "region": { + "location": "path", + "description": "Name of the region scoping this request.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "backendService": { + "type": "string", + "description": "Name of the BackendService resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "httpMethod": "PUT", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", + "id": "compute.regionBackendServices.update", + "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview ." }, - "nodeAffinityLabels": { - "description": "Labels to use for node affinity, which will be used in instance scheduling.", - "type": "object", - "additionalProperties": { - "type": "string" + "patch": { + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "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.", + "id": "compute.regionBackendServices.patch", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "PATCH", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", + "parameters": { + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "description": "Name of the region scoping this request." + }, + "backendService": { + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name of the BackendService resource to patch." + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": "BackendService" } }, - "cpuOvercommitType": { - "type": "string", - "enum": [ - "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", - "ENABLED", - "NONE" + "insert": { + "path": "projects/{project}/regions/{region}/backendServices", + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "description": "Name of the region scoping this request.", + "required": true + }, + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "BackendService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "CPU overcommit.", - "enumDescriptions": [ - "", - "", - "" - ] + "httpMethod": "POST", + "id": "compute.regionBackendServices.insert", + "parameterOrder": [ + "project", + "region" + ], + "flatPath": "projects/{project}/regions/{region}/backendServices", + "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview." }, - "status": { - "description": "[Output Only] The status of the node template. One of the following values: CREATING, READY, and DELETING.", - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY" + "get": { + "id": "compute.regionBackendServices.get", + "response": { + "$ref": "BackendService" + }, + "parameterOrder": [ + "project", + "region", + "backendService" ], - "enumDescriptions": [ - "Resources are being allocated.", - "The node template is currently being deleted.", - "Invalid status.", - "The node template is ready." + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string" - } - }, - "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" - }, - "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", - "id": "InterconnectCircuitInfo", - "properties": { - "googleCircuitId": { - "type": "string", - "description": "Google-assigned unique ID for this circuit. Assigned at circuit turn-up." - }, - "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" + "description": "Returns the specified regional BackendService resource.", + "httpMethod": "GET", + "parameters": { + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true + }, + "backendService": { + "type": "string", + "required": true, + "description": "Name of the BackendService resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } + }, + "path": "projects/{project}/regions/{region}/backendServices/{backendService}" }, - "customerDemarcId": { - "description": "Customer-side demarc ID for this circuit.", - "type": "string" + "setIamPolicy": { + "response": { + "$ref": "Policy" + }, + "id": "compute.regionBackendServices.setIamPolicy", + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region", + "resource" + ], + "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", + "path": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "type": "string", + "description": "The name of the region for this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "resource": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name or id of the resource for this request.", + "location": "path" + } + } } } }, - "ForwardingRuleList": { - "id": "ForwardingRuleList", - "type": "object", - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "description": "Type of resource.", - "default": "compute#forwardingRuleList", - "type": "string" - }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "networks": { + "methods": { + "addPeering": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds a peering to the specified network.", + "path": "projects/{project}/global/networks/{network}/addPeering", + "parameterOrder": [ + "project", + "network" + ], + "httpMethod": "POST", + "id": "compute.networks.addPeering", + "flatPath": "projects/{project}/global/networks/{network}/addPeering", + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "NetworksAddPeeringRequest" + }, + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - }, - "type": "object" - } + "network": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "Name of the network resource to add peering to." }, - "message": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." } } }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "items": { - "$ref": "ForwardingRule" + "updatePeering": { + "path": "projects/{project}/global/networks/{network}/updatePeering", + "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.", + "id": "compute.networks.updatePeering", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "network" + ], + "httpMethod": "PATCH", + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "network": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the network resource which the updated peering is belonging to.", + "required": true, + "type": "string", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "required": true + } }, - "description": "A list of ForwardingRule resources.", - "type": "array" - } - }, - "description": "Contains a list of ForwardingRule resources." - }, - "HttpRouteAction": { - "properties": { - "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 Loadbalancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the Loadbalancer for a percentage of requests. For the requests impacted by fault injection, timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy.", - "$ref": "HttpFaultInjection" - }, - "retryPolicy": { - "description": "Specifies the retry policy associated with this route. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "HttpRetryPolicy" - }, - "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. Once a backendService 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" - } - }, - "requestMirrorPolicy": { - "description": "Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "RequestMirrorPolicy" - }, - "urlRewrite": { - "description": "The spec to modify the URL of the request, prior to forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "UrlRewrite" - }, - "timeout": { - "$ref": "Duration", - "description": "Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. If not specified, will use the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true." - }, - "corsPolicy": { - "$ref": "CorsPolicy", - "description": "The specification for allowing client side cross-origin requests. Please see W3C Recommendation for Cross Origin Resource Sharing Not supported when the URL map is bound to target gRPC proxy." - }, - "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 (i.e. end-of-stream), the duration in this field 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, will use the largest maxStreamDuration 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" - } - }, - "type": "object", - "id": "HttpRouteAction" - }, - "TargetSslProxiesSetSslCertificatesRequest": { - "properties": { - "sslCertificates": { - "items": { - "type": "string" + "request": { + "$ref": "NetworksUpdatePeeringRequest" }, - "type": "array", - "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." - } - }, - "id": "TargetSslProxiesSetSslCertificatesRequest", - "type": "object" - }, - "PacketMirroring": { - "type": "object", - "properties": { - "filter": { - "$ref": "PacketMirroringFilter", - "description": "Filter for mirrored traffic. If unspecified, all traffic is mirrored." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "collectorIlb": { - "$ref": "PacketMirroringForwardingRuleInfo", - "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." - }, - "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.", - "$ref": "PacketMirroringNetworkInfo", - "annotations": { - "required": [ - "compute.packetMirrorings.insert" - ] - } + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/networks/{network}/updatePeering" }, - "region": { - "type": "string", - "description": "[Output Only] URI of the region where the packetMirroring resides." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "kind": { - "default": "compute#packetMirroring", - "description": "[Output Only] Type of the resource. Always compute#packetMirroring for packet mirrorings.", - "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" - ] + "removePeering": { + "parameters": { + "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])?))", + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "network": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the network resource to remove peering from.", + "location": "path", + "required": true, + "type": "string" + } }, - "type": "string" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "mirroredResources": { - "$ref": "PacketMirroringMirroredResourceInfo", - "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." - }, - "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" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." + "description": "Removes a peering from the specified network.", + "path": "projects/{project}/global/networks/{network}/removePeering", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/networks/{network}/removePeering", + "request": { + "$ref": "NetworksRemovePeeringRequest" + }, + "parameterOrder": [ + "project", + "network" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "id": "compute.networks.removePeering" }, - "enable": { - "enumDescriptions": [ - "", - "" + "get": { + "response": { + "$ref": "Network" + }, + "parameterOrder": [ + "project", + "network" ], - "type": "string", - "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.", - "enum": [ - "FALSE", - "TRUE" - ] - } - }, - "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." - }, - "AutoscalerAggregatedList": { - "type": "object", - "id": "AutoscalerAggregatedList", - "properties": { - "unreachables": { - "type": "array", - "items": { - "type": "string" + "id": "compute.networks.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/global/networks/{network}", + "description": "Returns the specified network. Gets a list of available networks by making a list() request.", + "parameters": { + "network": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "location": "path", + "description": "Name of the network to return." + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "description": "Project ID for this request." + } }, - "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder" - }, - "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": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#autoscalerAggregatedList for aggregated lists of autoscalers.", - "default": "compute#autoscalerAggregatedList" + "flatPath": "projects/{project}/global/networks/{network}", + "httpMethod": "GET" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { + "switchToCustomMode": { + "parameterOrder": [ + "project", + "network" + ], + "id": "compute.networks.switchToCustomMode", + "path": "projects/{project}/global/networks/{network}/switchToCustomMode", + "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "parameters": { + "network": { + "required": true, + "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}", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" + "location": "path" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "requestId": { "type": "string", - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" } }, - "type": "object" - }, - "items": { - "type": "object", - "description": "A list of AutoscalersScopedList resources.", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of autoscalers.", - "$ref": "AutoscalersScopedList" - } - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - } - } - }, - "InstanceMoveRequest": { - "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" - }, - "destinationZone": { - "type": "string", - "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 " - } - }, - "id": "InstanceMoveRequest", - "type": "object" - }, - "ExchangedPeeringRoutesList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "description": "A list of ExchangedPeeringRoute resources.", - "items": { - "$ref": "ExchangedPeeringRoute" - } - }, - "nextPageToken": { - "type": "string", - "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." + "response": { + "$ref": "Operation" + }, + "description": "Switches the network mode from auto subnet mode to custom subnet mode." }, - "warning": { - "properties": { - "message": { + "list": { + "id": "compute.networks.list", + "response": { + "$ref": "NetworkList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/global/networks", + "parameters": { + "orderBy": { + "location": "query", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "query" }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "maxResults": { + "format": "uint32", + "location": "query", + "type": "integer", + "minimum": "0", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "project": { + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "kind": { - "default": "compute#exchangedPeeringRoutesList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#exchangedPeeringRoutesList for exchanged peering routes lists." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - }, - "id": "ExchangedPeeringRoutesList" - }, - "NetworkEndpointGroupCloudFunction": { - "properties": { - "function": { - "type": "string", - "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\"." + "flatPath": "projects/{project}/global/networks", + "description": "Retrieves the list of networks available to the specified project.", + "httpMethod": "GET", + "parameterOrder": [ + "project" + ] }, - "urlMask": { - "description": "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 \"/\". The URL mask will parse them to { function = \"function1\" } and { function = \"function2\" } respectively.", - "type": "string" - } - }, - "type": "object", - "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." - }, - "RouteAsPath": { - "id": "RouteAsPath", - "type": "object", - "properties": { - "asLists": { - "items": { - "type": "integer", - "format": "uint32" + "delete": { + "description": "Deletes the specified network.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/networks/{network}", + "response": { + "$ref": "Operation" }, - "description": "[Output Only] The AS numbers of the AS Path.", - "type": "array" + "httpMethod": "DELETE", + "id": "compute.networks.delete", + "parameters": { + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "network": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "location": "path", + "description": "Name of the network to delete." + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } + }, + "path": "projects/{project}/global/networks/{network}", + "parameterOrder": [ + "project", + "network" + ] }, - "pathSegmentType": { - "type": "string", - "enum": [ - "AS_CONFED_SEQUENCE", - "AS_CONFED_SET", - "AS_SEQUENCE", - "AS_SET" + "listPeeringRoutes": { + "parameterOrder": [ + "project", + "network" ], - "enumDescriptions": [ - "", - "", - "", - "" + "path": "projects/{project}/global/networks/{network}/listPeeringRoutes", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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 " - } - } - }, - "Scheduling": { - "id": "Scheduling", - "description": "Sets the scheduling options for an Instance. NextID: 21", - "properties": { - "preemptible": { - "type": "boolean", - "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." - }, - "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" - }, - "minNodeCpus": { - "format": "int32", - "type": "integer", - "description": "The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node." - }, - "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" - }, - "nodeAffinities": { - "items": { - "$ref": "SchedulingNodeAffinity" - }, - "description": "A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity.", - "type": "array" - }, - "onHostMaintenance": { - "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." - ], - "type": "string", - "enum": [ - "MIGRATE", - "TERMINATE" - ], - "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 Setting Instance Scheduling Options." - } - }, - "type": "object" - }, - "LicenseCodeLicenseAlias": { - "properties": { - "selfLink": { - "description": "[Output Only] URL of license corresponding to this License Code.", - "type": "string" - }, - "description": { - "type": "string", - "description": "[Output Only] Description of this License Code." - } - }, - "type": "object", - "id": "LicenseCodeLicenseAlias" - }, - "TargetPoolsAddHealthCheckRequest": { - "properties": { - "healthChecks": { - "items": { - "$ref": "HealthCheckReference" + "parameters": { + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "direction": { + "description": "The direction of the exchanged routes.", + "type": "string", + "enum": [ + "INCOMING", + "OUTGOING" + ], + "location": "query", + "enumDescriptions": [ + "For routes exported from peer network.", + "For routes exported from local network." + ] + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "region": { + "type": "string", + "location": "query", + "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region." + }, + "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", + "description": "Project ID for this request.", + "type": "string", + "required": true + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "network": { + "description": "Name of the network for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true + }, + "maxResults": { + "minimum": "0", + "format": "uint32", + "location": "query", + "default": "500", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "peeringName": { + "description": "The response will show routes exchanged over the given peering connection.", + "location": "query", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + } }, - "type": "array", - "description": "The HttpHealthCheck to add to the target pool." - } - }, - "id": "TargetPoolsAddHealthCheckRequest", - "type": "object" - }, - "NetworksGetEffectiveFirewallsResponse": { - "id": "NetworksGetEffectiveFirewallsResponse", - "type": "object", - "properties": { - "firewalls": { - "description": "Effective firewalls on the network.", - "items": { - "$ref": "Firewall" + "response": { + "$ref": "ExchangedPeeringRoutesList" }, - "type": "array" + "description": "Lists the peering routes exchanged over peering connection.", + "id": "compute.networks.listPeeringRoutes", + "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes" }, - "firewallPolicys": { - "items": { - "$ref": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + "getEffectiveFirewalls": { + "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", + "parameters": { + "network": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "Name of the network for this request.", + "type": "string", + "required": true + }, + "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])?))", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path" + } }, - "type": "array", - "description": "Effective firewalls from firewall policy." - } - } - }, - "InstanceGroupsRemoveInstancesRequest": { - "properties": { - "instances": { - "type": "array", - "description": "The list of instances to remove from the instance group.", - "items": { - "$ref": "InstanceReference" - } - } - }, - "id": "InstanceGroupsRemoveInstancesRequest", - "type": "object" - }, - "RouterNatRuleAction": { - "type": "object", - "id": "RouterNatRuleAction", - "properties": { - "sourceNatDrainIps": { - "type": "array", - "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.", - "items": { - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", + "id": "compute.networks.getEffectiveFirewalls", + "description": "Returns the effective firewalls on a given network.", + "parameterOrder": [ + "project", + "network" + ], + "httpMethod": "GET", + "response": { + "$ref": "NetworksGetEffectiveFirewallsResponse" } }, - "sourceNatActiveIps": { - "type": "array", - "items": { - "type": "string" + "insert": { + "httpMethod": "POST", + "id": "compute.networks.insert", + "request": { + "$ref": "Network" }, - "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." - } - } - }, - "CacheKeyPolicy": { - "type": "object", - "properties": { - "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.", - "items": { - "type": "string" + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "includeProtocol": { - "description": "If true, http and https requests will be cached separately.", - "type": "boolean" - }, - "queryStringBlacklist": { - "type": "array", - "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.", - "items": { - "type": "string" - } - }, - "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" - } - }, - "id": "CacheKeyPolicy", - "description": "Message containing what to include in the cache key for a request for Cloud CDN." - }, - "NotificationEndpointGrpcSettings": { - "id": "NotificationEndpointGrpcSettings", - "properties": { - "endpoint": { - "type": "string", - "description": "Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name." - }, - "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" - }, - "payloadName": { - "type": "string", - "description": "Optional. If specified, this field is used to populate the \"name\" field in gRPC requests." - }, - "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.", - "$ref": "Duration" - }, - "retryDurationSec": { - "format": "uint32", - "type": "integer", - "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": "object", - "description": "Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint." - }, - "TCPHealthCheck": { - "type": "object", - "properties": { - "portSpecification": { - "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "parameterOrder": [ + "project" ], - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" + "flatPath": "projects/{project}/global/networks", + "parameters": { + "project": { + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "path": "projects/{project}/global/networks", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields." + "description": "Creates a network in the specified project using the data included in the request." }, - "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.", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NONE", - "PROXY_V1" + "patch": { + "parameterOrder": [ + "project", + "network" ], - "type": "string" - }, - "request": { - "type": "string", - "description": "The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII." - }, - "port": { - "format": "int32", - "type": "integer", - "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535." - }, - "response": { - "type": "string", - "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII." - }, - "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", - "type": "string" - } - }, - "id": "TCPHealthCheck" - }, - "PublicDelegatedPrefixesScopedList": { - "properties": { - "warning": { - "properties": { - "data": { - "type": "array", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "response": { + "$ref": "Operation" + }, + "parameters": { + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "network": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the network to update.", + "location": "path", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "required": true }, - "message": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" } }, - "description": "[Output Only] Informational warning which replaces the list of public delegated prefixes when the list is empty.", - "type": "object" - }, - "publicDelegatedPrefixes": { - "items": { - "$ref": "PublicDelegatedPrefix" + "httpMethod": "PATCH", + "path": "projects/{project}/global/networks/{network}", + "id": "compute.networks.patch", + "request": { + "$ref": "Network" }, - "type": "array", - "description": "[Output Only] A list of PublicDelegatedPrefixes contained in this scope." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/networks/{network}", + "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode." } - }, - "id": "PublicDelegatedPrefixesScopedList", - "type": "object" + } }, - "SubnetworksScopedList": { - "id": "SubnetworksScopedList", - "type": "object", - "properties": { - "warning": { - "type": "object", - "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "regionInstanceGroups": { + "methods": { + "list": { + "parameterOrder": [ + "project", + "region" + ], + "id": "compute.regionInstanceGroups.list", + "description": "Retrieves the list of instance group resources contained within the specified region.", + "response": { + "$ref": "RegionInstanceGroupList" + }, + "parameters": { + "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" }, - "message": { + "orderBy": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." }, - "code": { + "region": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "path", + "description": "Name of the region scoping this request.", + "required": true + }, + "maxResults": { + "minimum": "0", + "default": "500", + "format": "uint32", + "location": "query", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." } }, - "description": "An informational warning that appears when the list of addresses is empty." - }, - "subnetworks": { - "description": "A list of subnetworks contained in this scope.", - "items": { - "$ref": "Subnetwork" - }, - "type": "array" - } - } - }, - "InstancesSetLabelsRequest": { - "id": "InstancesSetLabelsRequest", - "type": "object", - "properties": { - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "path": "projects/{project}/regions/{region}/instanceGroups", + "httpMethod": "GET", + "flatPath": "projects/{project}/regions/{region}/instanceGroups", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "labelFingerprint": { - "type": "string", - "format": "byte", - "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." - } - } - }, - "ResourcePolicyGroupPlacementPolicy": { - "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality", - "properties": { - "collocation": { - "description": "Specifies network collocation", - "enumDescriptions": [ - "", - "" + "listInstances": { + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", + "id": "compute.regionInstanceGroups.listInstances", + "parameterOrder": [ + "project", + "region", + "instanceGroup" ], - "type": "string", - "enum": [ - "COLLOCATED", - "UNSPECIFIED_COLLOCATION" + "parameters": { + "instanceGroup": { + "description": "Name of the regional instance group for which we want to list the instances.", + "type": "string", + "required": true, + "location": "path" + }, + "maxResults": { + "minimum": "0", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "location": "query", + "format": "uint32" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "location": "path", + "required": true + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + } + }, + "response": { + "$ref": "RegionInstanceGroupsListInstances" + }, + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", + "httpMethod": "POST", + "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.", + "request": { + "$ref": "RegionInstanceGroupsListInstancesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "vmCount": { - "type": "integer", - "format": "int32", - "description": "Number of vms in this placement group" - }, - "availabilityDomainCount": { - "type": "integer", - "description": "The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network", - "format": "int32" - } - }, - "id": "ResourcePolicyGroupPlacementPolicy", - "type": "object" - }, - "ForwardingRuleAggregatedList": { - "type": "object", - "properties": { - "unreachables": { - "type": "array", - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - } - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this 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" - }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "setNamedPorts": { + "id": "compute.regionInstanceGroups.setNamedPorts", + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", + "request": { + "$ref": "RegionInstanceGroupsSetNamedPortsRequest" + }, + "httpMethod": "POST", + "description": "Sets the named ports for the specified regional instance group.", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "type": "array", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string" }, - "code": { + "instanceGroup": { + "description": "The name of the regional instance group where the named ports are updated.", + "location": "path", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "required": true + }, + "region": { + "location": "path", + "type": "string", + "required": true, + "description": "Name of the region scoping this request." } - } - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#forwardingRuleAggregatedList for lists of forwarding rules.", - "type": "string", - "default": "compute#forwardingRuleAggregatedList" - }, - "items": { - "additionalProperties": { - "description": "Name of the scope containing this set of addresses.", - "$ref": "ForwardingRulesScopedList" }, - "type": "object", - "description": "A list of ForwardingRulesScopedList resources." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - } - }, - "id": "ForwardingRuleAggregatedList" - }, - "AutoscalingPolicyLoadBalancingUtilization": { - "properties": { - "utilizationTarget": { - "format": "double", - "type": "number", - "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." - } - }, - "description": "Configuration parameters of autoscaling based on load balancing.", - "id": "AutoscalingPolicyLoadBalancingUtilization", - "type": "object" - }, - "PacketMirroringMirroredResourceInfoSubnetInfo": { - "id": "PacketMirroringMirroredResourceInfoSubnetInfo", - "properties": { - "canonicalUrl": { - "type": "string", - "description": "[Output Only] Unique identifier for the subnetwork; defined by the server." - }, - "url": { - "description": "Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored.", - "type": "string" - } - }, - "type": "object" - }, - "NodeTypeAggregatedList": { - "id": "NodeTypeAggregatedList", - "type": "object", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" + "parameterOrder": [ + "project", + "region", + "instanceGroup" + ], + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "nextPageToken": { - "type": "string", - "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." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "warning": { - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { + "httpMethod": "GET", + "parameters": { + "region": { + "location": "path", + "required": true, + "description": "Name of the region scoping this request.", + "type": "string" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "instanceGroup": { + "type": "string", + "description": "Name of the instance group resource to return.", + "location": "path", + "required": true }, - "message": { + "project": { + "required": true, + "description": "Project ID for this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" } }, - "description": "[Output Only] Informational warning message." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "type": "object", - "description": "A list of NodeTypesScopedList resources.", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of node types.", - "$ref": "NodeTypesScopedList" + "parameterOrder": [ + "project", + "region", + "instanceGroup" + ], + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", + "id": "compute.regionInstanceGroups.get", + "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.", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", + "response": { + "$ref": "InstanceGroup" } - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource.Always compute#nodeTypeAggregatedList for aggregated lists of node types.", - "default": "compute#nodeTypeAggregatedList" } } }, - "ResourcePolicyList": { - "properties": { - "etag": { - "type": "string" + "targetHttpsProxies": { + "methods": { + "get": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.targetHttpsProxies.get", + "httpMethod": "GET", + "response": { + "$ref": "TargetHttpsProxy" + }, + "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.", + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "targetHttpsProxy": { + "location": "path", + "description": "Name of the TargetHttpsProxy resource to return.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "flatPath": "projects/{project}/global/targetHttpsProxies/{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" + "setQuicOverride": { + "httpMethod": "POST", + "parameters": { + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.", + "required": true, + "location": "path", + "type": "string" + }, + "project": { + "type": "string", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the QUIC override policy for TargetHttpsProxy.", + "request": { + "$ref": "TargetHttpsProxiesSetQuicOverrideRequest" + }, + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", + "id": "compute.targetHttpsProxies.setQuicOverride", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride" }, - "warning": { - "properties": { - "code": { + "list": { + "flatPath": "projects/{project}/global/targetHttpsProxies", + "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.", + "response": { + "$ref": "TargetHttpsProxyList" + }, + "httpMethod": "GET", + "parameters": { + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "query" }, - "data": { - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" }, - "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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "maxResults": { + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "format": "uint32", + "type": "integer", + "minimum": "0" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "items": { - "description": "[Output Only] A list of ResourcePolicy resources.", - "type": "array", - "items": { - "$ref": "ResourcePolicy" - } - }, - "kind": { - "default": "compute#resourcePolicyList", - "type": "string", - "description": "[Output Only] Type of resource.Always compute#resourcePoliciesList for listsof resourcePolicies" - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - }, - "type": "object", - "id": "ResourcePolicyList" - }, - "FirewallLogConfig": { - "description": "The available logging options for a firewall rule.", - "type": "object", - "properties": { - "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": [ - "", - "" + "id": "compute.targetHttpsProxies.list", + "parameterOrder": [ + "project" ], - "enum": [ - "EXCLUDE_ALL_METADATA", - "INCLUDE_ALL_METADATA" + "path": "projects/{project}/global/targetHttpsProxies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "enable": { - "type": "boolean", - "description": "This field denotes whether to enable logging for a particular firewall rule." - } - }, - "id": "FirewallLogConfig" - }, - "TargetGrpcProxy": { - "type": "object", - "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.", - "properties": { - "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" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "fingerprint": { - "type": "string", - "format": "byte", - "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." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies.", - "default": "compute#targetGrpcProxy" - }, - "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", - "annotations": { - "required": [ - "compute.targetGrpcProxies.insert" - ] + "setCertificateMap": { + "httpMethod": "POST", + "request": { + "$ref": "TargetHttpsProxiesSetCertificateMapRequest" }, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "selfLinkWithId": { - "type": "string", - "description": "[Output Only] Server-defined URL with id for the resource." - }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "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" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - } - }, - "id": "TargetGrpcProxy" - }, - "ServiceAttachmentConnectedEndpoint": { - "type": "object", - "description": "[Output Only] A connection connected to this service attachment.", - "properties": { - "status": { - "enumDescriptions": [ - "The connection has been accepted by the producer.", - "The connection has been closed by the producer.", - "The connection is pending acceptance by the producer.", - "The consumer is still connected but not using the connection.", - "" + "parameters": { + "project": { + "type": "string", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "targetHttpsProxy": { + "type": "string", + "description": "Name of the TargetHttpsProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "required": true, + "location": "path" + } + }, + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "description": "Changes the Certificate Map for TargetHttpsProxy.", + "parameterOrder": [ + "project", + "targetHttpsProxy" ], - "description": "The status of a connected endpoint to this service attachment.", - "type": "string", - "enum": [ - "ACCEPTED", - "CLOSED", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" + "id": "compute.targetHttpsProxies.setCertificateMap", + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ] }, - "endpoint": { - "type": "string", - "description": "The url of a connected endpoint." - }, - "pscConnectionId": { - "type": "string", - "format": "uint64", - "description": "The PSC connection id of the connected endpoint." - } - }, - "id": "ServiceAttachmentConnectedEndpoint" - }, - "NotificationEndpointList": { - "type": "object", - "id": "NotificationEndpointList", - "properties": { - "items": { - "items": { - "$ref": "NotificationEndpoint" + "setSslCertificates": { + "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } }, - "type": "array", - "description": "A list of NotificationEndpoint resources." - }, - "kind": { - "default": "compute#notificationEndpointList", - "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "description": "Replaces SslCertificates for TargetHttpsProxy.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "TargetHttpsProxiesSetSslCertificatesRequest" + }, + "id": "compute.targetHttpsProxies.setSslCertificates", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + } }, - "warning": { - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "setSslPolicy": { + "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.", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", + "id": "compute.targetHttpsProxies.setSslPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "SslPolicyReference" + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", + "response": { + "$ref": "Operation" + }, + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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" + } + } + }, + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "targetHttpsProxy": { + "location": "path", + "required": true, + "description": "Name of the TargetHttpsProxy resource to delete.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" }, - "data": { - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "type": "string", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." }, - "code": { + "requestId": { + "location": "query", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." } }, - "description": "[Output Only] Informational warning message." - }, - "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" - } - } - }, - "HttpFaultInjection": { - "properties": { - "delay": { - "$ref": "HttpFaultDelay", - "description": "The specification for how client requests are delayed as part of fault injection, before being sent to a backend service." - }, - "abort": { - "description": "The specification for how client requests are aborted as part of fault injection.", - "$ref": "HttpFaultAbort" - } - }, - "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 Loadbalancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the Loadbalancer for a percentage of requests.", - "type": "object" - }, - "InterconnectLocationList": { - "description": "Response to the list request, and contains a list of interconnect locations.", - "type": "object", - "id": "InterconnectLocationList", - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "id": "compute.targetHttpsProxies.delete", + "description": "Deletes the specified TargetHttpsProxy resource.", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "DELETE" }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "insert": { + "request": { + "$ref": "TargetHttpsProxy" + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "id": "compute.targetHttpsProxies.insert", + "path": "projects/{project}/global/targetHttpsProxies", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request." + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "flatPath": "projects/{project}/global/targetHttpsProxies", + "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." }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "patch": { + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "response": { + "$ref": "Operation" + }, + "id": "compute.targetHttpsProxies.patch", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" }, - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "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}", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "required": true, + "location": "path" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string", + "description": "Project ID for this request." } - } - }, - "kind": { - "default": "compute#interconnectLocationList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#interconnectLocationList for lists of interconnect locations." - }, - "items": { - "type": "array", - "description": "A list of InterconnectLocation resources.", - "items": { - "$ref": "InterconnectLocation" - } - } - } - }, - "RouterList": { - "properties": { - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "items": { - "items": { - "$ref": "Router" }, - "type": "array", - "description": "A list of Router resources." - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#router for routers.", - "default": "compute#routerList", - "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": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "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.", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "request": { + "$ref": "TargetHttpsProxy" + }, + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "aggregatedList": { + "flatPath": "projects/{project}/aggregated/targetHttpsProxies", + "response": { + "$ref": "TargetHttpsProxyAggregatedList" + }, + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "id": "compute.targetHttpsProxies.aggregatedList", + "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.", + "path": "projects/{project}/aggregated/targetHttpsProxies", + "parameters": { + "includeAllScopes": { + "type": "boolean", + "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" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "format": "uint32", + "minimum": "0", + "default": "500" + }, + "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])?))", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "path", + "required": true, + "description": "Name of the project scoping this request." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources 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": { - "type": "array", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" } - } - } - }, - "description": "Contains a list of Router resources.", - "id": "RouterList", - "type": "object" - }, - "InstanceGroupManagersDeleteInstancesRequest": { - "type": "object", - "id": "InstanceGroupManagersDeleteInstancesRequest", - "properties": { - "instances": { - "type": "array", - "items": { - "type": "string" }, - "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]." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "skipInstancesOnValidationError": { - "type": "boolean", - "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." + "setUrlMap": { + "request": { + "$ref": "UrlMapReference" + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string" + }, + "targetHttpsProxy": { + "required": true, + "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + } + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.targetHttpsProxies.setUrlMap", + "description": "Changes the URL map for TargetHttpsProxy.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "httpMethod": "POST" } } }, - "DisplayDevice": { - "type": "object", - "properties": { - "enableDisplay": { - "description": "Defines whether the instance has Display enabled.", - "type": "boolean" - } - }, - "id": "DisplayDevice", - "description": "A set of Display Device options" - }, - "UsableSubnetwork": { - "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", - "type": "object", - "properties": { - "ipCidrRange": { - "description": "The range of internal addresses that are owned by this subnetwork.", - "type": "string" - }, - "secondaryIpRanges": { - "items": { - "$ref": "UsableSubnetworkSecondaryRange" + "regionDiskTypes": { + "methods": { + "list": { + "response": { + "$ref": "RegionDiskTypeList" }, - "description": "Secondary IP ranges.", - "type": "array" - }, - "network": { - "description": "Network URL.", - "type": "string" - }, - "subnetwork": { - "description": "Subnetwork URL.", - "type": "string" - } - }, - "id": "UsableSubnetwork" - }, - "XpnResourceId": { - "description": "Service resource (a.k.a service project) ID.", - "properties": { - "type": { - "enumDescriptions": [ - "", - "" + "id": "compute.regionDiskTypes.list", + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "PROJECT", - "XPN_RESOURCE_TYPE_UNSPECIFIED" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "The type of the service resource.", - "type": "string" - }, - "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" - } - }, - "type": "object", - "id": "XpnResourceId" - }, - "VpnGatewayStatus": { - "id": "VpnGatewayStatus", - "type": "object", - "properties": { - "vpnConnections": { - "items": { - "$ref": "VpnGatewayStatusVpnConnection" - }, - "description": "List of VPN connection for this VpnGateway.", - "type": "array" - } - } - }, - "SubnetworkSecondaryRange": { - "properties": { - "rangeName": { - "type": "string", - "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." - }, - "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" - } - }, - "description": "Represents a secondary IP range of a subnetwork.", - "type": "object", - "id": "SubnetworkSecondaryRange" - }, - "BackendServiceGroupHealth": { - "id": "BackendServiceGroupHealth", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#backendServiceGroupHealth for the health of backend services.", - "type": "string", - "default": "compute#backendServiceGroupHealth" - }, - "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" + "description": "Retrieves a list of regional disk types available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/diskTypes", + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/diskTypes", + "parameters": { + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "maxResults": { + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "region": { + "location": "path", + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + } } }, - "annotations": { - "description": "Metadata defined as annotations on the network endpoint group.", - "additionalProperties": { - "type": "string" + "get": { + "response": { + "$ref": "DiskType" }, - "type": "object" - } - }, - "type": "object" - }, - "OperationList": { - "description": "Contains a list of Operation resources.", - "type": "object", - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "kind": { - "type": "string", - "default": "compute#operationList", - "description": "[Output Only] Type of resource. Always `compute#operations` for Operations resource." - }, - "items": { - "type": "array", - "description": "[Output Only] A list of Operation resources.", - "items": { - "$ref": "Operation" - } - }, - "warning": { - "properties": { - "message": { + "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", + "httpMethod": "GET", + "id": "compute.regionDiskTypes.get", + "path": "projects/{project}/regions/{region}/diskTypes/{diskType}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "region", + "diskType" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "diskType": { + "description": "Name of the disk type to return.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "region": { + "location": "path", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "The name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - } - }, - "id": "OperationList" - }, - "Int64RangeMatch": { - "properties": { - "rangeStart": { - "description": "The start of the range (inclusive) in signed long integer format.", - "format": "int64", - "type": "string" - }, - "rangeEnd": { - "format": "int64", - "type": "string", - "description": "The end of the range (exclusive) in signed long integer format." - } - }, - "type": "object", - "id": "Int64RangeMatch", - "description": "HttpRouteRuleMatch criteria for field values that must stay within the specified integer range." - }, - "ConsistentHashLoadBalancerSettings": { - "properties": { - "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" - }, - "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.", - "$ref": "ConsistentHashLoadBalancerSettingsHttpCookie" - }, - "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" - } - }, - "description": "This message defines settings for a consistent hash style load balancer.", - "id": "ConsistentHashLoadBalancerSettings", - "type": "object" - }, - "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus": { - "type": "object", - "properties": { - "nextRunStartTime": { - "type": "string", - "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." - }, - "lastRunStartTime": { - "type": "string", - "description": "[Output Only] The last time the schedule successfully ran. The timestamp is an RFC3339 string." - } - }, - "id": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus" - }, - "InstanceGroupManagersListManagedInstancesResponse": { - "type": "object", - "id": "InstanceGroupManagersListManagedInstancesResponse", - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "managedInstances": { - "items": { - "$ref": "ManagedInstance" - }, - "type": "array", - "description": "[Output Only] The list of instances in the managed instance group." - } - } - }, - "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.", - "format": "int32", - "type": "integer" - } - }, - "id": "AutoscalingPolicyScaleInControl" - }, - "RegionDisksResizeRequest": { - "type": "object", - "properties": { - "sizeGb": { - "format": "int64", - "type": "string", - "description": "The new size of the regional persistent disk, which is specified in GB." - } - }, - "id": "RegionDisksResizeRequest" - }, - "ProjectsListXpnHostsRequest": { - "type": "object", - "id": "ProjectsListXpnHostsRequest", - "properties": { - "organization": { - "type": "string", - "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." + "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request." } } }, - "DiskList": { - "description": "A list of Disk resources.", - "type": "object", - "id": "DiskList", - "properties": { - "items": { - "type": "array", - "description": "A list of Disk resources.", - "items": { - "$ref": "Disk" - } - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "kind": { - "default": "compute#diskList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#diskList for lists of disks." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - } + "regionInstances": { + "methods": { + "bulkInsert": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "The name of the region for this request.", + "location": "path", + "type": "string" }, - "code": { - "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "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])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "type": "string" }, - "message": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query" } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "nextPageToken": { - "type": "string", - "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." + "parameterOrder": [ + "project", + "region" + ], + "path": "projects/{project}/regions/{region}/instances/bulkInsert", + "httpMethod": "POST", + "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.", + "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert", + "request": { + "$ref": "BulkInsertInstanceResource" + }, + "id": "compute.regionInstances.bulkInsert", + "response": { + "$ref": "Operation" + } } } }, - "CustomerEncryptionKeyProtectedDisk": { - "properties": { - "diskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Decrypts data associated with the disk with a customer-supplied encryption key." - }, - "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" - } - }, - "type": "object", - "id": "CustomerEncryptionKeyProtectedDisk" - }, - "AllocationSpecificSKUReservation": { - "type": "object", - "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 5", - "id": "AllocationSpecificSKUReservation", - "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" + "interconnectAttachments": { + "methods": { + "list": { + "httpMethod": "GET", + "description": "Retrieves the list of interconnect attachments contained within the specified region.", + "response": { + "$ref": "InterconnectAttachmentList" + }, + "path": "projects/{project}/regions/{region}/interconnectAttachments", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.interconnectAttachments.list", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "type": "integer", + "location": "query", + "format": "uint32", + "minimum": "0" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "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" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string", + "description": "Name of the region for this request." + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + } + } }, - "inUseCount": { - "format": "int64", - "description": "[Output Only] Indicates how many instances are in use.", - "type": "string" - } - } - }, - "RegionInstanceGroupManagerDeleteInstanceConfigReq": { - "type": "object", - "properties": { - "names": { - "description": "The list of instance names for which we want to delete per-instance configs on this managed instance group.", - "items": { - "type": "string" + "insert": { + "id": "compute.interconnectAttachments.insert", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "InterconnectAttachment" }, - "type": "array" - } - }, - "id": "RegionInstanceGroupManagerDeleteInstanceConfigReq", - "description": "RegionInstanceGroupManagers.deletePerInstanceConfigs" - }, - "NodeGroupsAddNodesRequest": { - "id": "NodeGroupsAddNodesRequest", - "properties": { - "additionalNodeCount": { - "type": "integer", - "description": "Count of additional nodes to be added to the node group.", - "format": "int32" - } - }, - "type": "object" - }, - "AutoscalersScopedList": { - "properties": { - "warning": { - "properties": { - "code": { + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", + "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.", + "parameters": { + "requestId": { "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "region": { + "type": "string", + "description": "Name of the region for this request.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "validateOnly": { + "location": "query", + "type": "boolean", + "description": "If true, the request will not be committed." + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request." } }, - "type": "object", - "description": "[Output Only] Informational warning which replaces the list of autoscalers when the list is empty." - }, - "autoscalers": { - "items": { - "$ref": "Autoscaler" + "response": { + "$ref": "Operation" }, - "description": "[Output Only] A list of autoscalers contained in this scope.", - "type": "array" - } - }, - "id": "AutoscalersScopedList", - "type": "object" - }, - "InstanceManagedByIgmErrorInstanceActionDetails": { - "properties": { - "version": { - "$ref": "ManagedInstanceVersion", - "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." + "path": "projects/{project}/regions/{region}/interconnectAttachments" }, - "action": { - "description": "[Output Only] Action that managed instance group was executing on the instance when the error occurred. Possible values:", - "type": "string", - "enum": [ - "ABANDONING", - "CREATING", - "CREATING_WITHOUT_RETRIES", - "DELETING", - "NONE", - "RECREATING", - "REFRESHING", - "RESTARTING", - "VERIFYING" + "get": { + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "response": { + "$ref": "InterconnectAttachment" + }, + "description": "Returns the specified interconnect attachment.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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 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)." + "httpMethod": "GET", + "id": "compute.interconnectAttachments.get", + "parameters": { + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "region": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request.", + "required": true + }, + "interconnectAttachment": { + "required": true, + "description": "Name of the interconnect attachment to return.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" ] }, - "instance": { - "type": "string", - "description": "[Output Only] The URL of the instance. The URL can be set even if the instance has not yet been created." - } - }, - "id": "InstanceManagedByIgmErrorInstanceActionDetails", - "type": "object" - }, - "BackendServiceReference": { - "properties": { - "backendService": { - "type": "string" - } - }, - "type": "object", - "id": "BackendServiceReference" - }, - "SecurityPolicyRuleMatcherConfig": { - "id": "SecurityPolicyRuleMatcherConfig", - "type": "object", - "properties": { - "srcIpRanges": { - "description": "CIDR IP address range. Maximum number of src_ip_ranges allowed is 10.", - "items": { - "type": "string" + "aggregatedList": { + "parameterOrder": [ + "project" + ], + "parameters": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request." + }, + "maxResults": { + "format": "uint32", + "default": "500", + "location": "query", + "type": "integer", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + } }, - "type": "array" - } - } - }, - "ExternalVpnGateway": { - "type": "object", - "properties": { - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "id": { - "format": "uint64", - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "labelFingerprint": { - "type": "string", - "format": "byte", - "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." - }, - "name": { - "annotations": { - "required": [ - "compute.externalVpnGateways.insert" - ] + "httpMethod": "GET", + "flatPath": "projects/{project}/aggregated/interconnectAttachments", + "response": { + "$ref": "InterconnectAttachmentAggregatedList" }, - "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" - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#externalVpnGateway for externalVpnGateways.", - "default": "compute#externalVpnGateway" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." + "path": "projects/{project}/aggregated/interconnectAttachments", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.interconnectAttachments.aggregatedList", + "description": "Retrieves an aggregated list of interconnect attachments." }, - "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.", - "items": { - "$ref": "ExternalVpnGatewayInterface" + "setLabels": { + "id": "compute.interconnectAttachments.setLabels", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", + "httpMethod": "POST", + "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.", + "request": { + "$ref": "RegionSetLabelsRequest" }, - "type": "array" + "parameters": { + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true + }, + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "location": "path" + } + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels" }, - "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.", - "additionalProperties": { - "type": "string" + "delete": { + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "description": "Deletes the specified interconnect attachment.", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "parameters": { + "interconnectAttachment": { + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the interconnect attachment to delete.", + "required": true + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "description": "Name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } }, - "type": "object" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.interconnectAttachments.delete", + "httpMethod": "DELETE", + "response": { + "$ref": "Operation" + } }, - "redundancyType": { - "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." + "patch": { + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "Indicates the user-supplied redundancy type of this external VPN gateway.", - "type": "string", - "enum": [ - "FOUR_IPS_REDUNDANCY", - "SINGLE_IP_INTERNALLY_REDUNDANT", - "TWO_IPS_REDUNDANCY" - ] - } - }, - "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.", - "id": "ExternalVpnGateway" - }, - "RequestMirrorPolicy": { - "description": "A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host / authority header is suffixed with -shadow.", - "type": "object", - "id": "RequestMirrorPolicy", - "properties": { - "backendService": { - "description": "The full or partial URL to the BackendService resource being mirrored to.", - "type": "string" - } - } - }, - "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": { - "requestHeadersToAdd": { - "type": "array", - "description": "Headers to add to a matching request prior to forwarding the request to the backendService.", - "items": { - "$ref": "HttpHeaderOption" - } - }, - "requestHeadersToRemove": { - "type": "array", - "description": "A list of header names for headers that need to be removed from the request prior to forwarding the request to the backendService.", - "items": { - "type": "string" - } - }, - "responseHeadersToAdd": { - "description": "Headers to add the response prior to sending the response back to the client.", - "items": { - "$ref": "HttpHeaderOption" + "httpMethod": "PATCH", + "request": { + "$ref": "InterconnectAttachment" }, - "type": "array" - }, - "responseHeadersToRemove": { - "items": { - "type": "string" + "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.", + "parameters": { + "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": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string" + }, + "interconnectAttachment": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path", + "required": true, + "description": "Name of the interconnect attachment to patch." + } }, - "description": "A list of header names for headers that need to be removed from the response prior to sending the response back to the client.", - "type": "array" + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.interconnectAttachments.patch", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}" } } }, - "Region": { - "type": "object", - "description": "Represents a Region resource. A region is a geographical area where a resource is located. For more information, read Regions and Zones.", - "properties": { - "deprecated": { - "description": "[Output Only] The deprecation status associated with this region.", - "$ref": "DeprecationStatus" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "quotas": { - "items": { - "$ref": "Quota" - }, - "description": "[Output Only] Quotas assigned to this region.", - "type": "array" - }, - "status": { - "enum": [ - "DOWN", - "UP" + "backendBuckets": { + "methods": { + "setEdgeSecurityPolicy": { + "id": "compute.backendBuckets.setEdgeSecurityPolicy", + "parameterOrder": [ + "project", + "backendBucket" ], - "enumDescriptions": [ - "", - "" + "request": { + "$ref": "SecurityPolicyReference" + }, + "path": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "description": "[Output Only] Status of the region, either UP or DOWN." - }, - "name": { - "description": "[Output Only] Name of the resource.", - "type": "string" - }, - "description": { - "description": "[Output Only] Textual description of the resource.", - "type": "string" - }, - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "zones": { - "items": { - "type": "string" + "response": { + "$ref": "Operation" }, - "type": "array", - "description": "[Output Only] A list of zones available in this region, in the form of resource URLs." - }, - "supportsPzs": { - "type": "boolean", - "description": "[Output Only] Reserved for future use." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "kind": { - "type": "string", - "default": "compute#region", - "description": "[Output Only] Type of the resource. Always compute#region for regions." - } - }, - "id": "Region" - }, - "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.", - "id": "DiskType", - "type": "object", - "properties": { - "validDiskSize": { - "type": "string", - "description": "[Output Only] An optional textual description of the valid disk size, such as \"10GB-10TB\"." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this disk type." - }, - "description": { - "type": "string", - "description": "[Output Only] An optional description of this resource." - }, - "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" - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#diskType for disk types.", - "type": "string", - "default": "compute#diskType" - }, - "defaultDiskSizeGb": { - "type": "string", - "format": "int64", - "description": "[Output Only] Server-defined default disk size in GB." - }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "[Output Only] Name of the resource." - }, - "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" + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", + "httpMethod": "POST", + "parameters": { + "backendBucket": { + "location": "path", + "type": "string", + "required": true, + "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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", + "description": "Project ID for this request." + } + }, + "description": "Sets the edge security policy for the specified backend bucket." }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - } - } - }, - "InterconnectDiagnosticsLinkOpticalPower": { - "properties": { - "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. ", - "enum": [ - "HIGH_ALARM", - "HIGH_WARNING", - "LOW_ALARM", - "LOW_WARNING", - "OK" + "list": { + "description": "Retrieves the list of BackendBucket resources available to the specified project.", + "parameterOrder": [ + "project" ], - "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." - ] - }, - "value": { - "type": "number", - "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.", - "format": "float" - } - }, - "type": "object", - "id": "InterconnectDiagnosticsLinkOpticalPower" - }, - "FirewallPolicyRuleMatcher": { - "id": "FirewallPolicyRuleMatcher", - "properties": { - "layer4Configs": { - "type": "array", - "description": "Pairs of IP protocols and ports that the rule should match.", - "items": { - "$ref": "FirewallPolicyRuleMatcherLayer4Config" - } - }, - "destIpRanges": { - "description": "CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.", - "items": { - "type": "string" + "httpMethod": "GET", + "response": { + "$ref": "BackendBucketList" }, - "type": "array" - }, - "srcIpRanges": { - "items": { - "type": "string" + "path": "projects/{project}/global/backendBuckets", + "id": "compute.backendBuckets.list", + "parameters": { + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "location": "query", + "default": "500", + "type": "integer", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + } }, - "type": "array", - "description": "CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000." - } - }, - "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", - "type": "object" - }, - "NodeGroupAutoscalingPolicy": { - "id": "NodeGroupAutoscalingPolicy", - "properties": { - "mode": { - "type": "string", - "enum": [ - "MODE_UNSPECIFIED", - "OFF", - "ON", - "ONLY_SCALE_OUT" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes.", - "enumDescriptions": [ - "", - "Autoscaling is disabled.", - "Autocaling is fully enabled.", - "Autoscaling will only scale out and will not remove nodes." - ] - }, - "minNodes": { - "format": "int32", - "type": "integer", - "description": "The minimum number of nodes that the group should have." - }, - "maxNodes": { - "type": "integer", - "description": "The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100.", - "format": "int32" - } - }, - "type": "object" - }, - "NodeGroupNode": { - "properties": { - "name": { - "type": "string", - "description": "The name of the node." + "flatPath": "projects/{project}/global/backendBuckets" }, - "cpuOvercommitType": { - "enum": [ - "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", - "ENABLED", - "NONE" + "delete": { + "description": "Deletes the specified BackendBucket resource.", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "backendBucket": { + "location": "path", + "type": "string", + "description": "Name of the BackendBucket resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "response": { + "$ref": "Operation" + }, + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "backendBucket" ], - "enumDescriptions": [ - "", - "", - "" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "CPU overcommit.", - "type": "string" + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "id": "compute.backendBuckets.delete" }, - "status": { - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "" + "insert": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY", - "REPAIRING" - ] - }, - "nodeType": { - "type": "string", - "description": "The type of this node." - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "instances": { - "description": "Instances scheduled on this node.", - "type": "array", - "items": { - "type": "string" - } - }, - "disks": { - "type": "array", - "items": { - "$ref": "LocalDisk" + "path": "projects/{project}/global/backendBuckets", + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + } }, - "description": "Local disk configurations." - }, - "serverBinding": { - "$ref": "ServerBinding", - "description": "Binding properties for the physical server." - }, - "serverId": { - "description": "Server ID associated with this node.", - "type": "string" - }, - "accelerators": { - "type": "array", - "items": { - "$ref": "AcceleratorConfig" + "flatPath": "projects/{project}/global/backendBuckets", + "parameterOrder": [ + "project" + ], + "id": "compute.backendBuckets.insert", + "httpMethod": "POST", + "request": { + "$ref": "BackendBucket" }, - "description": "Accelerators for this node." - } - }, - "type": "object", - "id": "NodeGroupNode" - }, - "TargetHttpsProxiesSetQuicOverrideRequest": { - "type": "object", - "properties": { - "quicOverride": { - "enum": [ - "DISABLE", - "ENABLE", - "NONE" + "response": { + "$ref": "Operation" + }, + "description": "Creates a BackendBucket resource in the specified project using the data included in the request." + }, + "get": { + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "httpMethod": "GET", + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "parameterOrder": [ + "project", + "backendBucket" ], - "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." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string", - "description": "QUIC policy for the TargetHttpsProxy resource." - } - }, - "id": "TargetHttpsProxiesSetQuicOverrideRequest" - }, - "ForwardingRule": { - "type": "object", - "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 Platform 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.", - "properties": { - "subnetwork": { - "description": "This field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule, used in internal load balancing and network load balancing 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" - }, - "networkTier": { - "type": "string", - "enum": [ - "PREMIUM", - "STANDARD" - ], - "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.", - "enumDescriptions": [ - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products." - ] + "parameters": { + "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])?))", + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "backendBucket": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the BackendBucket resource to return.", + "location": "path" + } + }, + "response": { + "$ref": "BackendBucket" + }, + "id": "compute.backendBuckets.get", + "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request." }, - "loadBalancingScheme": { - "description": "Specifies the forwarding rule type. For more information about forwarding rules, refer to Forwarding rule concepts.", - "enumDescriptions": [ - "", - "", - "", - "", - "" + "addSignedUrlKey": { + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "parameters": { + "project": { + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "backendBucket": { + "required": true, + "type": "string", + "location": "path", + "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035." + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "description": "Adds a key for validating requests with signed URLs for this backend bucket.", + "id": "compute.backendBuckets.addSignedUrlKey", + "parameterOrder": [ + "project", + "backendBucket" ], - "enum": [ - "EXTERNAL", - "INTERNAL", - "INTERNAL_MANAGED", - "INTERNAL_SELF_MANAGED", - "INVALID" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string" - }, - "ports": { - "description": "The ports field is only supported when the forwarding rule references a backend_service directly. Only packets addressed to the [specified list of ports]((https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications)) are forwarded to backends. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. You can specify a list of up to five ports, which can be non-contiguous. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. @pattern: \\\\d+(?:-\\\\d+)?", - "items": { - "type": "string" + "request": { + "$ref": "SignedUrlKey" }, - "type": "array" - }, - "region": { - "type": "string", - "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." + "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey" }, - "ipVersion": { - "enumDescriptions": [ - "", - "", - "" + "update": { + "request": { + "$ref": "BackendBucket" + }, + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "id": "compute.backendBuckets.update", + "parameters": { + "backendBucket": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the BackendBucket resource to update.", + "type": "string", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "parameterOrder": [ + "project", + "backendBucket" ], - "type": "string", - "enum": [ - "IPV4", - "IPV6", - "UNSPECIFIED_VERSION" + "description": "Updates the specified BackendBucket resource with the data included in the request.", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for an external global forwarding rule." - }, - "allowGlobalAccess": { - "description": "This field is used along with the backend_service field for internal load balancing or with the target field for internal TargetInstance. If the field is set to TRUE, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.", - "type": "boolean" - }, - "target": { - "type": "string" + "httpMethod": "PUT" }, - "serviceDirectoryRegistrations": { - "description": "Service Directory resources to register this forwarding rule with. Currently, only supports a single Service Directory resource. It is only supported for internal load balancing.", - "items": { - "$ref": "ForwardingRuleServiceDirectoryRegistration" + "patch": { + "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.", + "request": { + "$ref": "BackendBucket" }, - "type": "array" - }, - "network": { - "description": "This field is not used for external load balancing. For Internal TCP/UDP Load Balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not 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" - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.", - "default": "compute#forwardingRule", - "type": "string" - }, - "IPAddress": { - "description": "IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full 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 loadBalancingScheme and the forwarding rule's target 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). Must be set to `0.0.0.0` when the target is targetGrpcProxy that has validateForProxyless field set to true. For Private Service Connect forwarding rules that forward traffic to Google APIs, IP address must be provided.", - "type": "string" - }, - "IPProtocol": { - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string" + }, + "backendBucket": { + "required": true, + "type": "string", + "location": "path", + "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}" + } + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "AH", - "ESP", - "ICMP", - "SCTP", - "TCP", - "UDP" + "id": "compute.backendBuckets.patch", + "parameterOrder": [ + "project", + "backendBucket" ], - "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" - }, - "metadataFilters": { - "type": "array", - "items": { - "$ref": "MetadataFilter" - }, - "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." + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "httpMethod": "PATCH" }, - "pscConnectionStatus": { - "enum": [ - "ACCEPTED", - "CLOSED", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" + "deleteSignedUrlKey": { + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", + "id": "compute.backendBuckets.deleteSignedUrlKey", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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 is pending acceptance by the producer.", - "The connection has been rejected by the producer.", - "" + "parameterOrder": [ + "project", + "backendBucket", + "keyName" ], - "type": "string" - }, - "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.", - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "backendService": { - "description": "Identifies the backend service to which the forwarding rule sends traffic. Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must be omitted for all other load balancer types.", - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "pscConnectionId": { - "format": "uint64", - "type": "string", - "description": "[Output Only] The PSC connection id of the PSC Forwarding Rule." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "labels": { - "additionalProperties": { - "type": "string" + "httpMethod": "POST", + "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", + "parameters": { + "backendBucket": { + "type": "string", + "location": "path", + "required": true, + "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "keyName": { + "required": true, + "type": "string", + "location": "query", + "description": "The name of the Signed URL Key to delete." + }, + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + } }, - "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" - }, - "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. 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" - }, - "fingerprint": { - "format": "byte", - "type": "string", - "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." - }, - "allPorts": { - "type": "boolean", - "description": "This field is used along with the backend_service field for Internal TCP/UDP Load Balancing or Network Load Balancing, or with the target field for internal and external TargetInstance. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. For TCP, UDP and SCTP traffic, packets addressed to any ports will be forwarded to the target or backendService." - }, - "labelFingerprint": { - "type": "string", - "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.", - "format": "byte" - }, - "serviceName": { - "type": "string", - "description": "[Output Only] The internal fully qualified service name for this Forwarding Rule. This field is only used for internal load balancing." - }, - "portRange": { - "description": "This field can be used only if: - Load balancing scheme is one of EXTERNAL, INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or SCTP. Packets addressed to ports in the specified range will be forwarded to target or backend_service. You can only use one of ports, port_range, or allPorts. The three are mutually exclusive. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding target have constraints on the acceptable ports. For more information, see [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications). @pattern: \\\\d+(?:-\\\\d+)?", - "type": "string" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "isMirroringCollector": { - "type": "boolean", - "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." + "description": "Deletes a key for validating requests with signed URLs for this backend bucket.", + "response": { + "$ref": "Operation" + } } } }, - "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", - "id": "InterconnectLocation", - "properties": { - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "peeringdbFacilityId": { - "type": "string", - "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb)." - }, - "city": { - "type": "string", - "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\"." - }, - "continent": { - "type": "string", - "enum": [ - "AFRICA", - "ASIA_PAC", - "C_AFRICA", - "C_ASIA_PAC", - "C_EUROPE", - "C_NORTH_AMERICA", - "C_SOUTH_AMERICA", - "EUROPE", - "NORTH_AMERICA", - "SOUTH_AMERICA" + "regionTargetTcpProxies": { + "methods": { + "get": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "id": "compute.regionTargetTcpProxies.get", + "description": "Returns the specified TargetTcpProxy resource.", + "httpMethod": "GET", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" ], - "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA " - }, - "facilityProvider": { - "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", - "type": "string" - }, - "facilityProviderFacilityId": { - "type": "string", - "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1)." - }, - "availabilityZone": { - "type": "string", - "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\"." + "response": { + "$ref": "TargetTcpProxy" + }, + "parameters": { + "targetTcpProxy": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name of the TargetTcpProxy resource to return.", + "location": "path", + "required": true + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true + }, + "region": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "Name of the region scoping this request." + } + } }, - "status": { - "type": "string", - "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. ", - "enumDescriptions": [ - "The InterconnectLocation is available for provisioning new Interconnects.", - "The InterconnectLocation is closed for provisioning new Interconnects." + "delete": { + "description": "Deletes the specified TargetTcpProxy resource.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "AVAILABLE", - "CLOSED" - ] - }, - "regionInfos": { - "type": "array", - "items": { - "$ref": "InterconnectLocationRegionInfo" + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "targetTcpProxy": { + "location": "path", + "description": "Name of the TargetTcpProxy resource to delete.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "region": { + "required": true, + "description": "Name of the region scoping this request.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } }, - "description": "[Output Only] A list of InterconnectLocation.RegionInfo objects, that describe parameters pertaining to the relation between this InterconnectLocation and various Google Cloud regions." - }, - "supportsPzs": { - "description": "[Output Only] Set to true for locations that support physical zone separation. Defaults to false if the field is not present.", - "type": "boolean" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "name": { - "description": "[Output Only] Name of the resource.", - "type": "string" - }, - "description": { - "description": "[Output Only] An optional description of the resource.", - "type": "string" + "id": "compute.regionTargetTcpProxies.delete", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}" }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#interconnectLocation for interconnect locations.", - "default": "compute#interconnectLocation" - }, - "address": { - "type": "string", - "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character." - } - } - }, - "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 .", - "properties": { - "unhealthyThreshold": { - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", - "format": "int32", - "type": "integer" - }, - "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters.", - "type": "string" - }, - "timeoutSec": { - "format": "int32", - "type": "integer", - "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." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "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": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "host": { - "type": "string", - "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." - }, - "checkIntervalSec": { - "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", - "format": "int32", - "type": "integer" - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP health checks.", - "type": "string", - "default": "compute#httpHealthCheck" - }, - "port": { - "description": "The TCP port number for the HTTP health check request. The default value is 80.", - "format": "int32", - "type": "integer" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "name": { - "type": "string", - "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])?" - } - }, - "id": "HttpHealthCheck", - "type": "object" - }, - "BackendBucketCdnPolicyNegativeCachingPolicy": { - "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.", - "format": "int32", - "type": "integer" - }, - "ttl": { - "format": "int32", - "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" - } - }, - "description": "Specify CDN TTLs for response error codes.", - "id": "BackendBucketCdnPolicyNegativeCachingPolicy" - }, - "NetworkEndpointGroupsScopedList": { - "properties": { - "warning": { - "type": "object", - "properties": { - "data": { - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "insert": { + "description": "Creates a TargetTcpProxy resource in the specified project and region using the data included in the request.", + "parameterOrder": [ + "project", + "region" + ], + "id": "compute.regionTargetTcpProxies.insert", + "httpMethod": "POST", + "path": "projects/{project}/regions/{region}/targetTcpProxies", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" }, - "message": { + "requestId": { + "location": "query", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string" + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "description": "Name of the region scoping this request.", + "required": true } }, - "description": "[Output Only] An informational warning that replaces the list of network endpoint groups when the list is empty." - }, - "networkEndpointGroups": { - "description": "[Output Only] The list of network endpoint groups that are contained in this scope.", - "type": "array", - "items": { - "$ref": "NetworkEndpointGroup" + "request": { + "$ref": "TargetTcpProxy" } - } - }, - "id": "NetworkEndpointGroupsScopedList", - "type": "object" - }, - "InitialStateConfig": { - "properties": { - "dbxs": { - "items": { - "$ref": "FileContentBuffer" - }, - "type": "array", - "description": "The forbidden key database (dbx)." }, - "keks": { - "description": "The Key Exchange Key (KEK).", - "items": { - "$ref": "FileContentBuffer" + "list": { + "id": "compute.regionTargetTcpProxies.list", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region" + ], + "path": "projects/{project}/regions/{region}/targetTcpProxies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "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" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "description": "Name of the region scoping this request.", + "type": "string" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "maxResults": { + "format": "uint32", + "default": "500", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "minimum": "0" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } }, - "type": "array" - }, - "pk": { - "description": "The Platform Key (PK).", - "$ref": "FileContentBuffer" - }, - "dbs": { - "type": "array", - "items": { - "$ref": "FileContentBuffer" + "description": "Retrieves a list of TargetTcpProxy resources available to the specified project in a given region.", + "response": { + "$ref": "TargetTcpProxyList" }, - "description": "The Key Database (db)." + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies" } - }, - "id": "InitialStateConfig", - "type": "object", - "description": "Initial State for shielded instance, these are public keys which are safe to store in public" + } }, - "InterconnectAttachmentAggregatedList": { - "type": "object", - "id": "InterconnectAttachmentAggregatedList", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "type": "array", - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" + "instances": { + "methods": { + "getScreenshot": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", + "httpMethod": "GET", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", + "description": "Returns the screenshot from the specified instance.", + "id": "compute.instances.getScreenshot", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Screenshot" + }, + "parameters": { + "zone": { + "description": "The name of the zone for this request.", + "type": "string", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "instance": { + "location": "path", + "description": "Name of the instance scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + } } }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "setServiceAccount": { + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the instance resource to start.", + "location": "path", + "type": "string" }, - "code": { + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string", - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "The name of the zone for this request." + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true } - } - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "items": { - "type": "object", - "description": "A list of InterconnectAttachmentsScopedList resources.", - "additionalProperties": { - "$ref": "InterconnectAttachmentsScopedList", - "description": "Name of the scope containing this set of interconnect attachments." - } - }, - "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" - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentAggregatedList for aggregated lists of interconnect attachments.", - "type": "string", - "default": "compute#interconnectAttachmentAggregatedList" - } - } - }, - "TargetInstance": { - "type": "object", - "id": "TargetInstance", - "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "id": { - "format": "uint64", - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "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" - }, - "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": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.", + "httpMethod": "POST", + "request": { + "$ref": "InstancesSetServiceAccountRequest" + }, + "id": "compute.instances.setServiceAccount", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "natPolicy": { - "enum": [ - "NO_NAT" + "delete": { + "parameterOrder": [ + "project", + "zone", + "instance" ], - "description": "NAT option controlling how IPs are NAT'ed to the instance. Currently only NO_NAT (default value) is supported.", - "enumDescriptions": [ - "No NAT performed." + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string" - }, - "name": { - "type": "string", - "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])?" - }, - "zone": { - "type": "string", - "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." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "kind": { - "default": "compute#targetInstance", - "description": "[Output Only] The type of the resource. Always compute#targetInstance for target instances.", - "type": "string" - } - }, - "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." - }, - "GuestAttributes": { - "description": "A guest attributes entry.", - "properties": { - "variableKey": { - "description": "The key to search for.", - "type": "string" - }, - "queryValue": { - "$ref": "GuestAttributesValue", - "description": "[Output Only] The value of the requested queried path." - }, - "queryPath": { - "type": "string", - "description": "The path to be queried. This can be the default namespace ('') or a nested namespace ('\\/') or a specified key ('\\/\\')." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "type": "string", - "default": "compute#guestAttributes", - "description": "[Output Only] Type of the resource. Always compute#guestAttributes for guest attributes entry." - }, - "variableValue": { - "type": "string", - "description": "[Output Only] The value found for the requested key." - } - }, - "id": "GuestAttributes", - "type": "object" - }, - "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.", - "properties": { - "nanos": { - "type": "integer", - "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.", - "format": "int32" - }, - "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" - } - }, - "id": "Duration", - "type": "object" - }, - "ForwardingRulesScopedList": { - "id": "ForwardingRulesScopedList", - "properties": { - "forwardingRules": { - "description": "A list of forwarding rules contained in this scope.", - "type": "array", - "items": { - "$ref": "ForwardingRule" + "httpMethod": "DELETE", + "description": "Deletes the specified Instance resource. For more information, see Deleting an instance.", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "instance": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the instance resource to delete.", + "location": "path", + "required": true + }, + "zone": { + "location": "path", + "description": "The name of the zone for this request.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "id": "compute.instances.delete", + "path": "projects/{project}/zones/{zone}/instances/{instance}", + "response": { + "$ref": "Operation" } }, - "warning": { - "properties": { - "message": { + "attachDisk": { + "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.", + "parameters": { + "zone": { + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request." }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "The instance name for this request.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "forceAttach": { + "location": "query", + "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.", + "type": "boolean" } }, - "description": "Informational warning which replaces the list of forwarding rules when the list is empty.", - "type": "object" - } - }, - "type": "object" - }, - "ProjectsDisableXpnResourceRequest": { - "type": "object", - "id": "ProjectsDisableXpnResourceRequest", - "properties": { - "xpnResource": { - "$ref": "XpnResourceId", - "description": "Service resource (a.k.a service project) ID." - } - } - }, - "AttachedDisk": { - "properties": { - "licenses": { - "items": { - "type": "string" + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "AttachedDisk" }, - "type": "array", - "description": "[Output Only] Any valid publicly visible licenses." - }, - "diskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "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." - }, - "initializeParams": { - "$ref": "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 property is mutually exclusive with the source property; you can only define one or the other, but not both." - }, - "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" - }, - "source": { - "type": "string", - "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, not the URL for the disk." - }, - "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" - } + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", + "id": "compute.instances.attachDisk", + "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "type": { - "enumDescriptions": [ - "", - "" + "setMinCpuPlatform": { + "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.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "instance" ], - "enum": [ - "PERSISTENT", - "SCRATCH" + "request": { + "$ref": "InstancesSetMinCpuPlatformRequest" + }, + "id": "compute.instances.setMinCpuPlatform", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", + "parameters": { + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "instance": { + "required": true, + "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}", + "type": "string", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "description": "Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT." - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks.", - "type": "string", - "default": "compute#attachedDisk" + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform" }, - "mode": { - "enum": [ - "READ_ONLY", - "READ_WRITE" + "getSerialPortOutput": { + "parameterOrder": [ + "project", + "zone", + "instance" ], - "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." + "httpMethod": "GET", + "description": "Returns the last 1 MB of serial port output from the specified instance.", + "parameters": { + "port": { + "maximum": "4", + "description": "Specifies which COM or serial port to retrieve data from.", + "default": "1", + "minimum": "1", + "location": "query", + "format": "int32", + "type": "integer" + }, + "zone": { + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "The name of the zone for this request." + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request." + }, + "start": { + "location": "query", + "format": "int64", + "type": "string", + "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." + }, + "instance": { + "description": "Name of the instance for this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + } + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/serialPort", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string", - "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." - }, - "shieldedInstanceInitialState": { - "$ref": "InitialStateConfig", - "description": "[Output Only] shielded vm initial state stored on disk" - }, - "deviceName": { - "type": "string", - "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." - }, - "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" - }, - "diskSizeGb": { - "format": "int64", - "type": "string", - "description": "The size of the disk in GB." + "response": { + "$ref": "SerialPortOutput" + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort", + "id": "compute.instances.getSerialPortOutput" }, - "interface": { - "enumDescriptions": [ - "", - "" + "removeResourcePolicies": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", + "httpMethod": "POST", + "description": "Removes resource policies from an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", + "parameterOrder": [ + "project", + "zone", + "instance" ], - "type": "string", - "enum": [ - "NVME", - "SCSI" + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "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", + "description": "Project ID for this request.", + "type": "string", + "required": true + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "The name of the zone for this request.", + "type": "string", + "required": true + }, + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "The instance name for this request.", + "type": "string", + "location": "path", + "required": true + } + }, + "id": "compute.instances.removeResourcePolicies", + "request": { + "$ref": "InstancesRemoveResourcePoliciesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance." - }, - "index": { - "format": "int32", - "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" - } - }, - "type": "object", - "id": "AttachedDisk", - "description": "An instance-attached disk resource." - }, - "SnapshotList": { - "description": "Contains a list of Snapshot resources.", - "id": "SnapshotList", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "type": "string", - "description": "Type of resource.", - "default": "compute#snapshotList" + "response": { + "$ref": "Operation" + } }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "aggregatedList": { + "parameters": { + "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", + "description": "Project ID for this request.", + "required": true, + "type": "string" }, - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "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" + }, + "includeAllScopes": { + "type": "boolean", + "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" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", "type": "string" + }, + "maxResults": { + "type": "integer", + "format": "uint32", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "default": "500" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." } }, - "type": "object" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "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" - }, - "items": { - "items": { - "$ref": "Snapshot" + "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.", + "id": "compute.instances.aggregatedList", + "response": { + "$ref": "InstanceAggregatedList" }, - "description": "A list of Snapshot resources.", - "type": "array" - } - } - }, - "HealthStatus": { - "type": "object", - "id": "HealthStatus", - "properties": { - "ipAddress": { - "type": "string", - "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." - }, - "healthState": { - "description": "Health state of the instance.", - "enumDescriptions": [ - "", - "" + "httpMethod": "GET", + "path": "projects/{project}/aggregated/instances", + "flatPath": "projects/{project}/aggregated/instances", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string", - "enum": [ - "HEALTHY", - "UNHEALTHY" + "parameterOrder": [ + "project" ] }, - "port": { - "format": "int32", - "type": "integer", - "description": "The named port of the instance group, not necessarily the port that is health-checked." - }, - "instance": { - "type": "string", - "description": "URL of the instance resource." - }, - "annotations": { - "type": "object", - "description": "Metadata defined as annotations for network endpoint.", - "additionalProperties": { - "type": "string" - } - }, - "forwardingRule": { - "type": "string", - "description": "URL of the forwarding rule associated with the health status of the instance." - }, - "forwardingRuleIp": { - "description": "A forwarding rule IP address assigned to this instance.", - "type": "string" - }, - "weightError": { - "enum": [ - "INVALID_WEIGHT", - "MISSING_WEIGHT", - "UNAVAILABLE_WEIGHT", - "WEIGHT_NONE" + "addResourcePolicies": { + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", + "id": "compute.instances.addResourcePolicies", + "request": { + "$ref": "InstancesAddResourcePoliciesRequest" + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." + "httpMethod": "POST", + "parameterOrder": [ + "project", + "zone", + "instance" ], - "type": "string" - }, - "weight": { - "type": "string" - } - } - }, - "TargetPoolAggregatedList": { - "properties": { - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" + "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.", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path", + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "type": "string", + "location": "path", + "required": true + }, + "instance": { + "required": true, + "location": "path", + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + "deleteAccessConfig": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", + "description": "Deletes an access config from an instance's network interface.", + "parameters": { + "accessConfig": { + "type": "string", + "description": "The name of the access config to delete.", + "location": "query", + "required": true + }, + "networkInterface": { + "type": "string", + "required": true, + "location": "query", + "description": "The name of the network interface." + }, + "instance": { + "location": "path", + "description": "The instance name for this request.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "zone": { + "description": "The name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "required": true + } + }, + "id": "compute.instances.deleteAccessConfig", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "accessConfig", + "networkInterface" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig" }, - "warning": { - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "update": { + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "code": { + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "The name of the zone for this request.", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "required": true + }, + "mostDisruptiveAllowedAction": { + "location": "query", "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." + "", + "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", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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" + ], + "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.", + "type": "string" }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "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.", + "enum": [ + "INVALID", + "NO_EFFECT", + "REFRESH", + "RESTART" + ], + "enumDescriptions": [ + "", + "No changes can be made to the instance.", + "The instance will not restart.", + "The instance will restart." + ], + "location": "query", + "type": "string" + }, + "project": { + "type": "string", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the instance resource to update.", + "type": "string", + "location": "path" } }, - "description": "[Output Only] Informational warning message." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "kind": { - "default": "compute#targetPoolAggregatedList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#targetPoolAggregatedList for aggregated lists of target pools." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "items": { - "type": "object", - "description": "A list of TargetPool resources.", - "additionalProperties": { - "description": "Name of the scope containing this set of target pools.", - "$ref": "TargetPoolsScopedList" - } - } - }, - "id": "TargetPoolAggregatedList", - "type": "object" - }, - "NodeGroupAggregatedList": { - "properties": { - "unreachables": { - "type": "array", - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - } + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "httpMethod": "PUT", + "id": "compute.instances.update", + "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.", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}", + "request": { + "$ref": "Instance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "message": { + "testIamPermissions": { + "parameters": { + "resource": { + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "type": "string" + }, + "project": { + "location": "path", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true }, - "code": { + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] - }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - } + "description": "The name of the zone for this request.", + "location": "path", + "required": true } - } - }, - "kind": { - "description": "[Output Only] Type of resource.Always compute#nodeGroupAggregatedList for aggregated lists of node groups.", - "default": "compute#nodeGroupAggregatedList", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "items": { - "type": "object", - "description": "A list of NodeGroupsScopedList resources.", - "additionalProperties": { - "$ref": "NodeGroupsScopedList", - "description": "[Output Only] Name of the scope containing this set of node groups." - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "nextPageToken": { - "type": "string", - "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." - } - }, - "id": "NodeGroupAggregatedList", - "type": "object" - }, - "NodeGroupsSetNodeTemplateRequest": { - "properties": { - "nodeTemplate": { - "type": "string", - "description": "Full or partial URL of the node template resource to be updated for this node group." - } - }, - "id": "NodeGroupsSetNodeTemplateRequest", - "type": "object" - }, - "NetworkRoutingConfig": { - "id": "NetworkRoutingConfig", - "type": "object", - "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.", - "properties": { - "routingMode": { - "enumDescriptions": [ - "", - "" - ], - "type": "string", - "enum": [ - "GLOBAL", - "REGIONAL" - ], - "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." - } - } - }, - "InterconnectLocationRegionInfo": { - "properties": { - "locationPresence": { - "description": "Identifies the network presence of this location.", - "enum": [ - "GLOBAL", - "LOCAL_REGION", - "LP_GLOBAL", - "LP_LOCAL_REGION" - ], - "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." + }, + "request": { + "$ref": "TestPermissionsRequest" + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.instances.testIamPermissions", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string" - }, - "expectedRttMs": { - "format": "int64", - "type": "string", - "description": "Expected round-trip time in milliseconds, from this InterconnectLocation to a VM in this region." - }, - "region": { - "description": "URL for the region of this location.", - "type": "string" - } - }, - "id": "InterconnectLocationRegionInfo", - "description": "Information about any potential InterconnectAttachments between an Interconnect at a specific InterconnectLocation, and a specific Cloud Region.", - "type": "object" - }, - "InterconnectsGetDiagnosticsResponse": { - "type": "object", - "description": "Response for the InterconnectsGetDiagnosticsRequest.", - "properties": { - "result": { - "$ref": "InterconnectDiagnostics" - } - }, - "id": "InterconnectsGetDiagnosticsResponse" - }, - "ReservationsResizeRequest": { - "type": "object", - "id": "ReservationsResizeRequest", - "properties": { - "specificSkuCount": { - "description": "Number of allocated resources can be resized with minimum = 1 and maximum = 1000.", - "type": "string", - "format": "int64" - } - } - }, - "LocalDisk": { - "type": "object", - "id": "LocalDisk", - "properties": { - "diskSizeGb": { - "format": "int32", - "type": "integer", - "description": "Specifies the size of the disk in base-2 GB." - }, - "diskCount": { - "description": "Specifies the number of such disks.", - "type": "integer", - "format": "int32" - }, - "diskType": { - "type": "string", - "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." - } - } - }, - "TargetTcpProxiesSetBackendServiceRequest": { - "id": "TargetTcpProxiesSetBackendServiceRequest", - "type": "object", - "properties": { - "service": { - "description": "The URL of the new BackendService resource for the targetTcpProxy.", - "type": "string" - } - } - }, - "SubnetworkList": { - "id": "SubnetworkList", - "description": "Contains a list of Subnetwork resources.", - "type": "object", - "properties": { - "nextPageToken": { - "type": "string", - "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." + "description": "Returns permissions that a caller has on the specified resource.", + "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions", + "response": { + "$ref": "TestPermissionsResponse" + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ] }, - "warning": { - "type": "object", - "properties": { - "message": { + "addAccessConfig": { + "response": { + "$ref": "Operation" + }, + "parameters": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string" + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "location": "path", + "type": "string", + "required": true }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request." + }, + "networkInterface": { + "description": "The name of the network interface to add to this instance.", + "type": "string", + "required": true, + "location": "query" + }, + "instance": { + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "The instance name for this request." } }, - "description": "[Output Only] Informational warning message." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#subnetworkList for lists of subnetworks.", - "default": "compute#subnetworkList" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "items": { - "$ref": "Subnetwork" + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig", + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig", + "request": { + "$ref": "AccessConfig" }, - "type": "array", - "description": "A list of Subnetwork resources." - } - } - }, - "InstanceReference": { - "type": "object", - "id": "InstanceReference", - "properties": { - "instance": { - "type": "string", - "description": "The URL for a specific instance. @required compute.instancegroups.addInstances/removeInstances" - } - } - }, - "TargetTcpProxy": { - "id": "TargetTcpProxy", - "properties": { - "service": { - "type": "string", - "description": "URL to the BackendService resource." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "id": { - "format": "uint64", - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "proxyBind": { - "type": "boolean", - "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." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "description": "Adds an access config to an instance's network interface.", + "httpMethod": "POST", + "id": "compute.instances.addAccessConfig" }, - "proxyHeader": { - "type": "string", - "enumDescriptions": [ - "", - "" + "insert": { + "httpMethod": "POST", + "request": { + "$ref": "Instance" + }, + "path": "projects/{project}/zones/{zone}/instances", + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "NONE", - "PROXY_V1" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE." - }, - "kind": { - "default": "compute#targetTcpProxy", - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies." - } - }, - "description": "Represents a Target TCP Proxy resource. A target TCP proxy is a component of a TCP Proxy load balancer. Global forwarding rules reference target TCP proxy, and the target proxy then references an external backend service. For more information, read TCP Proxy Load Balancing overview.", - "type": "object" - }, - "Disk": { - "id": "Disk", - "type": "object", - "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.", - "properties": { - "resourcePolicies": { - "type": "array", - "description": "Resource policies applied to this disk for automatic snapshot creations.", - "items": { - "type": "string" + "parameters": { + "sourceInstanceTemplate": { + "type": "string", + "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" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true + }, + "sourceMachineImage": { + "location": "query", + "type": "string", + "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 " + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "zone": { + "location": "path", + "description": "The name of the zone for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true + } + }, + "id": "compute.instances.insert", + "flatPath": "projects/{project}/zones/{zone}/instances", + "description": "Creates an instance resource in the specified project using the data included in the request.", + "response": { + "$ref": "Operation" } }, - "sourceSnapshot": { - "type": "string", - "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 " - }, - "sourceDiskId": { - "type": "string", - "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." - }, - "status": { - "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY", - "RESTORING" + "bulkInsert": { + "parameterOrder": [ + "project", + "zone" ], - "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." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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. " - }, - "sizeGb": { - "type": "string", - "format": "int64", - "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 1 to 65536, inclusive." - }, - "users": { - "items": { - "type": "string" + "request": { + "$ref": "BulkInsertInstanceResource" }, - "type": "array", - "description": "[Output Only] Links to the users of the disk (attached instances) in form: projects/project/zones/zone/instances/instance" - }, - "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" - }, - "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" - }, - "licenses": { - "description": "A list of publicly visible licenses. Reserved for Google's use.", - "items": { - "type": "string" + "parameters": { + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "type": "string", + "required": true, + "location": "path" + } }, - "type": "array" - }, - "type": { - "type": "string", - "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." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#disk for disks.", - "default": "compute#disk" - }, - "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.", - "items": { - "$ref": "GuestOsFeature" + "httpMethod": "POST", + "description": "Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs.", + "path": "projects/{project}/zones/{zone}/instances/bulkInsert", + "id": "compute.instances.bulkInsert", + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "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" - }, - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "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])?` 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", - "annotations": { - "required": [ - "compute.disks.insert" - ] - } - }, - "labelFingerprint": { - "type": "string", - "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.", - "format": "byte" - }, - "sourceStorageObject": { - "type": "string", - "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." - }, - "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" - }, - "labels": { - "description": "Labels to apply to this disk. These can be later modified by the setLabels method.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sourceSnapshotEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key." - }, - "provisionedIops": { - "format": "int64", - "type": "string", - "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." - }, - "lastDetachTimestamp": { - "type": "string", - "description": "[Output Only] Last detach timestamp in RFC3339 text format." - }, - "diskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "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." - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "physicalBlockSizeBytes": { - "type": "string", - "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.", - "format": "int64" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "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" - }, - "options": { - "type": "string", - "description": "Internal use only." + "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert" }, - "replicaZones": { - "description": "URLs of the zones where the disk should be replicated to. Only applicable for regional resources.", - "items": { - "type": "string" + "updateShieldedInstanceConfig": { + "parameters": { + "instance": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "Name or id of the instance scoping this request." + }, + "zone": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "required": true + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } }, - "type": "array" - }, - "lastAttachTimestamp": { - "type": "string", - "description": "[Output Only] Last attach timestamp in RFC3339 text format." - }, - "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" - }, - "licenseCodes": { - "type": "array", - "description": "Integer license codes indicating which licenses are attached to this disk.", - "items": { - "format": "int64", - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", + "httpMethod": "PATCH", + "response": { + "$ref": "Operation" + }, + "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": "compute.instances.updateShieldedInstanceConfig", + "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", + "request": { + "$ref": "ShieldedInstanceConfig" } - } - } - }, - "VpnGatewayVpnGatewayInterface": { - "id": "VpnGatewayVpnGatewayInterface", - "type": "object", - "description": "A VPN gateway interface.", - "properties": { - "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 IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. ", - "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 IPsec-encrypted Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", - "type": "string" }, - "id": { - "type": "integer", - "format": "uint32", - "description": "[Output Only] Numeric identifier for this VPN interface associated with the VPN gateway." - } - } - }, - "UrlMapList": { - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "setShieldedInstanceIntegrityPolicy": { + "id": "compute.instances.setShieldedInstanceIntegrityPolicy", + "parameters": { + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name or id of the instance scoping this request.", + "type": "string", + "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).", + "type": "string", + "location": "query" }, - "code": { + "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])?))", + "required": true, "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "path", + "description": "Project ID for this request." + }, + "zone": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "The name of the zone for this request.", + "type": "string" } - } - }, - "items": { - "type": "array", - "items": { - "$ref": "UrlMap" }, - "description": "A list of UrlMap resources." - }, - "kind": { - "type": "string", - "default": "compute#urlMapList", - "description": "Type of 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" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - }, - "description": "Contains a list of UrlMap resources.", - "id": "UrlMapList", - "type": "object" - }, - "VpnTunnelsScopedList": { - "type": "object", - "properties": { - "vpnTunnels": { - "description": "A list of VPN tunnels contained in this scope.", - "items": { - "$ref": "VpnTunnel" + "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "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.", + "response": { + "$ref": "Operation" }, - "type": "array" + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "ShieldedInstanceIntegrityPolicy" + }, + "httpMethod": "PATCH", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy" }, - "warning": { - "type": "object", - "properties": { - "code": { + "simulateMaintenanceEvent": { + "parameters": { + "instance": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "description": "Name of the instance scoping this request." }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "location": "path", + "type": "string", + "required": true }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true } }, - "description": "Informational warning which replaces the list of addresses when the list is empty." - } - }, - "id": "VpnTunnelsScopedList" - }, - "SchedulingNodeAffinity": { - "type": "object", - "properties": { - "operator": { - "type": "string", - "enumDescriptions": [ - "Requires Compute Engine to seek for matched nodes.", - "Requires Compute Engine to avoid certain nodes.", - "" + "id": "compute.instances.simulateMaintenanceEvent", + "parameterOrder": [ + "project", + "zone", + "instance" ], - "description": "Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity.", - "enum": [ - "IN", - "NOT_IN", - "OPERATOR_UNSPECIFIED" - ] - }, - "key": { - "description": "Corresponds to the label key of Node resource.", - "type": "string" - }, - "values": { - "description": "Corresponds to the label values of Node resource.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "description": "Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.", - "id": "SchedulingNodeAffinity" - }, - "RoutersPreviewResponse": { - "type": "object", - "id": "RoutersPreviewResponse", - "properties": { - "resource": { - "$ref": "Router", - "description": "Preview of given router." - } - } - }, - "HealthCheckReference": { - "type": "object", - "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 ", - "properties": { - "healthCheck": { - "type": "string" - } - }, - "id": "HealthCheckReference" - }, - "BackendServicesScopedList": { - "id": "BackendServicesScopedList", - "type": "object", - "properties": { - "backendServices": { - "type": "array", - "items": { - "$ref": "BackendService" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" }, - "description": "A list of BackendServices contained in this scope." + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "httpMethod": "POST", + "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "description": "Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event." }, - "warning": { - "type": "object", - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "properties": { - "message": { + "setScheduling": { + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "parameters": { + "instance": { + "description": "Instance name for this request.", + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - } + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "zone": { + "description": "The name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" + }, + "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])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path", "type": "string" } - } - } - } - }, - "MetadataFilter": { - "properties": { - "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.", - "items": { - "$ref": "MetadataFilterLabelMatch" }, - "type": "array" - }, - "filterMatchCriteria": { - "enum": [ - "MATCH_ALL", - "MATCH_ANY", - "NOT_SET" + "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "request": { + "$ref": "Scheduling" + }, + "id": "compute.instances.setScheduling", + "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.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "Specifies how individual filterLabel matches within the list of filterLabels contribute towards 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. ", - "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." + "parameterOrder": [ + "project", + "zone", + "instance" ], - "type": "string" - } - }, - "type": "object", - "description": "Opaque filter criteria used by loadbalancers to restrict routing configuration to a limited set of loadbalancing proxies. Proxies and sidecars involved in loadbalancing would typically present metadata to the loadbalancers which 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 loadbalancing involves Envoys, they will only receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers.", - "id": "MetadataFilter" - }, - "InstanceManagedByIgmError": { - "id": "InstanceManagedByIgmError", - "type": "object", - "properties": { - "error": { - "description": "[Output Only] Contents of the error.", - "$ref": "InstanceManagedByIgmErrorManagedInstanceError" - }, - "instanceActionDetails": { - "$ref": "InstanceManagedByIgmErrorInstanceActionDetails", - "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." - }, - "timestamp": { - "type": "string", - "description": "[Output Only] The time that this error occurred. This value is in RFC3339 text format." - } - } - }, - "AuditConfig": { - "type": "object", - "id": "AuditConfig", - "properties": { - "auditLogConfigs": { - "items": { - "$ref": "AuditLogConfig" + "response": { + "$ref": "Operation" }, - "type": "array", - "description": "The configuration for logging of each type of permission." + "httpMethod": "POST" }, - "exemptedMembers": { - "type": "array", - "items": { - "type": "string" + "updateNetworkInterface": { + "response": { + "$ref": "Operation" }, - "description": "This is deprecated and has no effect. Do not use." - }, - "service": { - "type": "string", - "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." - } - }, - "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." - }, - "UrlMapsValidateRequest": { - "id": "UrlMapsValidateRequest", - "type": "object", - "properties": { - "resource": { - "description": "Content of the UrlMap to be validated.", - "$ref": "UrlMap" - } - } - }, - "RouteList": { - "id": "RouteList", - "type": "object", - "properties": { - "warning": { - "properties": { - "message": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", + "httpMethod": "PATCH", + "id": "compute.instances.updateNetworkInterface", + "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.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "instance": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path", + "description": "The instance name for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "description": "The name of the zone for this request." }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "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", + "description": "Project ID for this request.", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "required": true + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "networkInterface": { + "location": "query", + "required": true, + "type": "string", + "description": "The name of the network interface to update." } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "items": { - "description": "A list of Route resources.", - "type": "array", - "items": { - "$ref": "Route" - } - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "kind": { - "description": "Type of resource.", - "default": "compute#routeList", - "type": "string" + "request": { + "$ref": "NetworkInterface" + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" + ] }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - }, - "description": "Contains a list of Route resources." - }, - "ResourcePolicySnapshotSchedulePolicyRetentionPolicy": { - "description": "Policy for retention of scheduled snapshots.", - "type": "object", - "id": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", - "properties": { - "maxRetentionDays": { - "type": "integer", - "description": "Maximum age of the snapshot that is allowed to be kept.", - "format": "int32" + "updateDisplayDevice": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", + "id": "compute.instances.updateDisplayDevice", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "httpMethod": "PATCH", + "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.", + "request": { + "$ref": "DisplayDevice" + }, + "parameters": { + "zone": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "location": "path" + }, + "instance": { + "type": "string", + "required": true, + "description": "Name of the instance scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "onSourceDiskDelete": { - "enum": [ - "APPLY_RETENTION_POLICY", - "KEEP_AUTO_SNAPSHOTS", - "UNSPECIFIED_ON_SOURCE_DISK_DELETE" + "startWithEncryptionKey": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey", + "parameterOrder": [ + "project", + "zone", + "instance" ], - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "id": "compute.instances.startWithEncryptionKey", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "required": true + }, + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string", + "description": "Name of the instance resource to start." + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "zone": { + "type": "string", + "required": true, + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "request": { + "$ref": "InstancesStartWithEncryptionKeyRequest" + }, + "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "Specifies the behavior to apply to scheduled snapshots when the source disk is deleted." - } - } - }, - "BackendBucketCdnPolicy": { - "description": "Message containing Cloud CDN configuration for a backend bucket.", - "properties": { - "negativeCachingPolicy": { - "items": { - "$ref": "BackendBucketCdnPolicyNegativeCachingPolicy" + "httpMethod": "POST", + "response": { + "$ref": "Operation" }, - "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" + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey" }, - "clientTtl": { - "format": "int32", - "type": "integer", - "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 86400s (1 day)." - }, - "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.", - "format": "int32", - "type": "integer" - }, - "bypassCacheOnRequestHeaders": { - "items": { - "$ref": "BackendBucketCdnPolicyBypassCacheOnRequestHeader" + "get": { + "parameters": { + "instance": { + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the instance resource to return." + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "type": "string" + } }, - "type": "array", - "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." - }, - "negativeCaching": { - "type": "boolean", - "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." - }, - "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" - }, - "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" - }, - "signedUrlKeyNames": { - "type": "array", - "description": "[Output Only] Names of the keys for signing request URLs.", - "items": { - "type": "string" - } - }, - "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" - }, - "defaultTtl": { - "type": "integer", - "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.", - "format": "int32" - }, - "cacheMode": { - "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." + "id": "compute.instances.get", + "httpMethod": "GET", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", + "parameterOrder": [ + "project", + "zone", + "instance" ], - "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.", - "enum": [ - "CACHE_ALL_STATIC", - "FORCE_CACHE_ALL", - "INVALID_CACHE_MODE", - "USE_ORIGIN_HEADERS" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string" - } - }, - "type": "object", - "id": "BackendBucketCdnPolicy" - }, - "InterconnectDiagnosticsARPEntry": { - "properties": { - "ipAddress": { - "type": "string", - "description": "The IP address of this ARP neighbor." - }, - "macAddress": { - "type": "string", - "description": "The MAC address of this ARP neighbor." - } - }, - "type": "object", - "id": "InterconnectDiagnosticsARPEntry", - "description": "Describing the ARP neighbor entries seen on this link" - }, - "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" - } - } - }, - "AttachedDiskInitializeParams": { - "id": "AttachedDiskInitializeParams", - "type": "object", - "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.", - "properties": { - "sourceSnapshot": { - "type": "string", - "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." - }, - "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" + "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.", + "path": "projects/{project}/zones/{zone}/instances/{instance}", + "response": { + "$ref": "Instance" } }, - "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 define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL.", - "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.", - "items": { - "type": "string" + "setDiskAutoDelete": { + "httpMethod": "POST", + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "sourceImage": { - "type": "string", - "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." - }, - "sourceImageEncryptionKey": { - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates 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" - }, - "onUpdateAction": { - "type": "string", - "enum": [ - "RECREATE_DISK", - "RECREATE_DISK_IF_SOURCE_CHANGED", - "USE_EXISTING_DISK" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." + "id": "compute.instances.setDiskAutoDelete", + "parameterOrder": [ + "project", + "zone", + "instance", + "autoDelete", + "deviceName" ], - "description": "Specifies which action to take on instance update with this disk. Default is to use the existing disk." - }, - "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" - }, - "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" - }, - "provisionedIops": { - "type": "string", - "format": "int64", - "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." - }, - "diskSizeGb": { - "format": "int64", - "type": "string", - "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." - } - } - }, - "SecurityPolicy": { - "properties": { - "advancedOptionsConfig": { - "$ref": "SecurityPolicyAdvancedOptionsConfig" - }, - "id": { - "format": "uint64", - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "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 security policy, a default rule with action \"allow\" will be added.", - "items": { - "$ref": "SecurityPolicyRule" + "parameters": { + "zone": { + "required": true, + "location": "path", + "type": "string", + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "instance": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "The instance name for this request.", + "type": "string", + "required": true + }, + "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", + "description": "Project ID for this request.", + "required": true, + "type": "string" + }, + "deviceName": { + "type": "string", + "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.", + "location": "query", + "pattern": "\\w[\\w.-]{0,254}", + "required": true + }, + "autoDelete": { + "description": "Whether to auto-delete the disk when the instance is deleted.", + "type": "boolean", + "required": true, + "location": "query" + } }, - "type": "array" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "kind": { - "type": "string", - "description": "[Output only] Type of the resource. Always compute#securityPolicyfor security policies", - "default": "compute#securityPolicy" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "type": "string", - "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])?" - }, - "fingerprint": { - "type": "string", - "format": "byte", - "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." + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", + "description": "Sets the auto-delete flag for a disk attached to an instance.", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete" }, - "adaptiveProtectionConfig": { - "$ref": "SecurityPolicyAdaptiveProtectionConfig" - } - }, - "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", - "id": "SecurityPolicy" - }, - "VpnGatewaysScopedList": { - "id": "VpnGatewaysScopedList", - "properties": { - "warning": { - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", - "type": "object", - "properties": { - "message": { + "sendDiagnosticInterrupt": { + "description": "Sends diagnostic interrupt to the instance.", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "instance": { + "location": "path", + "description": "Name of the instance scoping this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "zone": { "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "The name of the zone for this request.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" } - } + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.instances.sendDiagnosticInterrupt", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", + "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt" }, - "vpnGateways": { - "description": "[Output Only] A list of VPN gateways contained in this scope.", - "items": { - "$ref": "VpnGateway" + "reset": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/reset", + "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.", + "response": { + "$ref": "Operation" }, - "type": "array" - } - }, - "type": "object" - }, - "ManagedInstanceLastAttempt": { - "id": "ManagedInstanceLastAttempt", - "properties": { - "errors": { - "type": "object", - "description": "[Output Only] Encountered errors during the last attempt to create or delete the instance.", - "properties": { - "errors": { - "items": { - "properties": { - "message": { - "description": "[Output Only] An optional, human-readable error message.", - "type": "string" - }, - "code": { - "type": "string", - "description": "[Output Only] The error type identifier for this error." - }, - "location": { - "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", - "type": "string" - } - }, - "type": "object" - }, - "description": "[Output Only] The array of errors encountered while processing this operation.", - "type": "array" + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.instances.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}", + "type": "string", + "location": "path", + "required": true + }, + "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])?))", + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "zone": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "The name of the zone for this request." } } - } - }, - "type": "object" - }, - "CommitmentAggregatedList": { - "id": "CommitmentAggregatedList", - "type": "object", - "properties": { - "unreachables": { - "items": { - "type": "string" - }, - "type": "array", - "description": "[Output Only] Unreachable resources." - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.", - "default": "compute#commitmentAggregatedList", - "type": "string" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "items": { - "type": "object", - "description": "A list of CommitmentsScopedList resources.", - "additionalProperties": { - "$ref": "CommitmentsScopedList", - "description": "[Output Only] Name of the scope containing this set of commitments." - } }, - "warning": { - "properties": { - "code": { - "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "setIamPolicy": { + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", + "response": { + "$ref": "Policy" + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", + "id": "compute.instances.setIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "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.", + "parameters": { + "resource": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "type": "string" }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "required": true, + "location": "path" }, - "message": { + "project": { + "description": "Project ID for this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - } - }, - "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", - "id": "LicenseCode", - "properties": { - "description": { - "description": "[Output Only] Description of this License Code.", - "type": "string" + "httpMethod": "POST" }, - "state": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "RESTRICTED", - "STATE_UNSPECIFIED", - "TERMINATED" + "getIamPolicy": { + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", + "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", + "id": "compute.instances.getIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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", + "resource" ], - "description": "[Output Only] Current state of this License Code." - }, - "name": { - "annotations": { - "required": [ - "compute.licenses.insert" - ] + "response": { + "$ref": "Policy" }, - "pattern": "[0-9]{0,20}?", - "description": "[Output Only] Name of the resource. The name is 1-20 characters long and must be a valid 64 bit integer.", - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "licenseAlias": { - "type": "array", - "items": { - "$ref": "LicenseCodeLicenseAlias" + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "location": "query", + "description": "Requested IAM Policy version.", + "type": "integer", + "format": "int32" + }, + "zone": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request." + }, + "resource": { + "description": "Name or id of the resource for this request.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" + } }, - "description": "[Output Only] URL and description aliases of Licenses with the same License Code." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#licenseCode for licenses.", - "default": "compute#licenseCode" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "transferable": { - "type": "boolean", - "description": "[Output Only] If true, the license will remain attached when creating images or snapshots from disks. Otherwise, the license is not transferred." - } - } - }, - "InterconnectOutageNotification": { - "description": "Description of a planned outage on this Interconnect.", - "properties": { - "endTime": { - "format": "int64", - "type": "string", - "description": "Scheduled end time for the outage (milliseconds since Unix epoch)." + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "source": { - "type": "string", - "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.", - "enum": [ - "GOOGLE", - "NSRC_GOOGLE" + "setMachineType": { + "id": "compute.instances.setMachineType", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enumDescriptions": [ - "This notification was generated by Google.", - "[Deprecated] This notification was generated by Google." - ] - }, - "name": { - "description": "Unique identifier for this outage notification.", - "type": "string" - }, - "description": { - "type": "string", - "description": "A description about the purpose of the outage." - }, - "affectedCircuits": { - "items": { - "type": "string" + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "description": "Changes the machine type for a stopped instance to the machine type specified in the request.", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "instance": { + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the instance scoping this request." + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "location": "path" + }, + "zone": { + "description": "The name of the zone for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path" + } }, - "description": "If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected.", - "type": "array" - }, - "startTime": { - "description": "Scheduled start time for the outage (milliseconds since Unix epoch).", - "format": "int64", - "type": "string" + "request": { + "$ref": "InstancesSetMachineTypeRequest" + }, + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", + "httpMethod": "POST" }, - "issueType": { - "enum": [ - "IT_OUTAGE", - "IT_PARTIAL_OUTAGE", - "OUTAGE", - "PARTIAL_OUTAGE" + "setDeletionProtection": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." + "parameters": { + "deletionProtection": { + "description": "Whether the resource should be protected against deletion.", + "type": "boolean", + "location": "query", + "default": "true" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "resource": { + "type": "string", + "location": "path", + "required": true, + "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}" + }, + "zone": { + "required": true, + "type": "string", + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true + } + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", + "id": "compute.instances.setDeletionProtection", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "resource" ], - "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" + "description": "Sets deletion protection on the instance.", + "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection" }, - "state": { - "type": "string", - "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.", - "enum": [ - "ACTIVE", - "CANCELLED", - "COMPLETED", - "NS_ACTIVE", - "NS_CANCELED" - ], - "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." - ] - } - }, - "id": "InterconnectOutageNotification", - "type": "object" - }, - "TargetSslProxiesSetProxyHeaderRequest": { - "properties": { - "proxyHeader": { - "enum": [ - "NONE", - "PROXY_V1" - ], - "type": "string", - "enumDescriptions": [ - "", - "" + "start": { + "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.", + "path": "projects/{project}/zones/{zone}/instances/{instance}/start", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start", + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "required": true, + "type": "string", + "location": "path" + }, + "instance": { + "location": "path", + "required": true, + "description": "Name of the instance resource to start.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed." - } - }, - "type": "object", - "id": "TargetSslProxiesSetProxyHeaderRequest" - }, - "MachineTypeAggregatedList": { - "type": "object", - "id": "MachineTypeAggregatedList", - "properties": { - "items": { - "additionalProperties": { - "$ref": "MachineTypesScopedList", - "description": "[Output Only] Name of the scope containing this set of machine types." + "response": { + "$ref": "Operation" }, - "type": "object", - "description": "A list of MachineTypesScopedList resources." + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "httpMethod": "POST", + "id": "compute.instances.start" }, - "warning": { - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "stop": { + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "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.", + "parameters": { + "zone": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "type": "string", + "location": "path" }, - "code": { + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the instance resource to stop.", "type": "string", - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "required": true, + "location": "path" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "kind": { - "default": "compute#machineTypeAggregatedList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#machineTypeAggregatedList for aggregated lists of machine types." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "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" - } - } - }, - "VpnGatewaysGetStatusResponse": { - "type": "object", - "id": "VpnGatewaysGetStatusResponse", - "properties": { - "result": { - "$ref": "VpnGatewayStatus" - } - } - }, - "ResourcePolicyInstanceSchedulePolicySchedule": { - "id": "ResourcePolicyInstanceSchedulePolicySchedule", - "type": "object", - "properties": { - "schedule": { - "description": "Specifies the frequency for the operation, using the unix-cron format.", - "type": "string" - } - }, - "description": "Schedule for an instance operation." - }, - "VmEndpointNatMappingsList": { - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "httpMethod": "POST", + "id": "compute.instances.stop", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/stop", + "path": "projects/{project}/zones/{zone}/instances/{instance}/stop" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "listReferrers": { + "httpMethod": "GET", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "id": "compute.instances.listReferrers", + "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers", + "response": { + "$ref": "InstanceListReferrers" + }, + "parameters": { + "filter": { "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "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`)", + "type": "integer", + "minimum": "0", + "format": "uint32", + "location": "query", + "default": "500" }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "instance": { + "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string", + "location": "path", + "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container." + }, + "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])?))", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "zone": { + "required": true, + "location": "path", + "type": "string", + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" } }, - "type": "object" - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "kind": { - "default": "compute#vmEndpointNatMappingsList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for lists of Nat mappings of VM endpoints." - }, - "nextPageToken": { - "type": "string", - "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." + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/referrers", + "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.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "result": { - "type": "array", - "items": { - "$ref": "VmEndpointNatMappings" - }, - "description": "[Output Only] A list of Nat mapping information of VM endpoints." - } - }, - "description": "Contains a list of VmEndpointNatMappings.", - "id": "VmEndpointNatMappingsList", - "type": "object" - }, - "TargetPoolsRemoveHealthCheckRequest": { - "properties": { - "healthChecks": { - "items": { - "$ref": "HealthCheckReference" + "list": { + "parameterOrder": [ + "project", + "zone" + ], + "path": "projects/{project}/zones/{zone}/instances", + "response": { + "$ref": "InstanceList" }, - "type": "array", - "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": "object", - "id": "TargetPoolsRemoveHealthCheckRequest" - }, - "AdvancedMachineFeatures": { - "properties": { - "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.", - "format": "int32", - "type": "integer" - }, - "enableNestedVirtualization": { - "description": "Whether to enable nested virtualization or not (default is false).", - "type": "boolean" - } - }, - "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", - "id": "AdvancedMachineFeatures" - }, - "TargetSslProxyList": { - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "kind": { - "description": "Type of resource.", - "type": "string", - "default": "compute#targetSslProxyList" - }, - "warning": { - "properties": { - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "type": "string" + "parameters": { + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." }, - "message": { + "project": { + "location": "path", + "description": "Project ID for this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "minimum": "0", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "location": "query", + "default": "500" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "zone": { + "location": "path", + "type": "string", + "required": true, + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" } }, - "type": "object", - "description": "[Output Only] Informational warning message." + "httpMethod": "GET", + "flatPath": "projects/{project}/zones/{zone}/instances", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.instances.list", + "description": "Retrieves the list of instances contained within the specified zone." }, - "items": { - "items": { - "$ref": "TargetSslProxy" + "detachDisk": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", + "parameterOrder": [ + "project", + "zone", + "instance", + "deviceName" + ], + "httpMethod": "POST", + "response": { + "$ref": "Operation" }, - "description": "A list of TargetSslProxy resources.", - "type": "array" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "id": "compute.instances.detachDisk", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", + "description": "Detaches a disk from an instance.", + "parameters": { + "deviceName": { + "required": true, + "location": "query", + "type": "string", + "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names." + }, + "zone": { + "location": "path", + "description": "The name of the zone for this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "instance": { + "type": "string", + "description": "Instance name for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + } + } }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - } - }, - "type": "object", - "description": "Contains a list of TargetSslProxy resources.", - "id": "TargetSslProxyList" - }, - "SubnetworksSetPrivateIpGoogleAccessRequest": { - "id": "SubnetworksSetPrivateIpGoogleAccessRequest", - "properties": { - "privateIpGoogleAccess": { - "type": "boolean" - } - }, - "type": "object" - }, - "NetworkEndpointGroupsDetachEndpointsRequest": { - "type": "object", - "properties": { - "networkEndpoints": { - "items": { - "$ref": "NetworkEndpoint" - }, - "type": "array", - "description": "The list of network endpoints to be detached." - } - }, - "id": "NetworkEndpointGroupsDetachEndpointsRequest" - }, - "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 between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified.", - "type": "string" - }, - "queryParameterMatches": { - "items": { - "$ref": "HttpQueryParameterMatch" + "setLabels": { + "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.", + "httpMethod": "POST", + "response": { + "$ref": "Operation" }, - "type": "array", - "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 target gRPC proxy." - }, - "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 target gRPC proxy.", - "type": "boolean" - }, - "headerMatches": { - "description": "Specifies a list of header match criteria, all of which must match corresponding headers in the request.", - "type": "array", - "items": { - "$ref": "HttpHeaderMatch" - } - }, - "fullPathMatch": { - "type": "string", - "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 between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified." - }, - "metadataFilters": { - "description": "Opaque filter criteria used by Loadbalancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to Loadbalancer, 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 metadataFilters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here will be applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true.", - "type": "array", - "items": { - "$ref": "MetadataFilter" - } - }, - "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 regular expression grammar please see github.com/google/re2/wiki/Syntax Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Note that regexMatch only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED.", - "type": "string" - } - } - }, - "NetworkEndpointGroupCloudRun": { - "properties": { - "urlMask": { - "type": "string", - "description": "A template to parse service and tag 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 \".domain.com/\". The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" } and { service=\"bar2\", tag=\"foo2\" } respectively." - }, - "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" - }, - "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" - } - }, - "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" - }, - "RegionSetPolicyRequest": { - "properties": { - "policy": { - "$ref": "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." - }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "type": "string", - "format": "byte" - }, - "bindings": { - "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", - "items": { - "$ref": "Binding" + "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "InstancesSetLabelsRequest" }, - "type": "array" - } - }, - "type": "object", - "id": "RegionSetPolicyRequest" - }, - "ResourcePolicyHourlyCycle": { - "id": "ResourcePolicyHourlyCycle", - "description": "Time window specified for hourly operations.", - "type": "object", - "properties": { - "hoursInCycle": { - "format": "int32", - "description": "Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle.", - "type": "integer" - }, - "duration": { - "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.", - "type": "string" - }, - "startTime": { - "type": "string", - "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." - } - } - }, - "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.", - "properties": { - "customResponseHeaders": { - "description": "Headers that the HTTP/S load balancer should add to proxied responses.", - "items": { - "type": "string" + "id": "compute.instances.setLabels", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "zone": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "description": "The name of the zone for this request." + }, + "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])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "instance": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the instance scoping this request." + } }, - "type": "array" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "id": { - "format": "uint64", - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "enableCdn": { - "description": "If true, enable Cloud CDN for this BackendBucket.", - "type": "boolean" - }, - "description": { - "description": "An optional textual description of the resource; provided by the client when the resource is created.", - "type": "string" - }, - "bucketName": { - "description": "Cloud Storage bucket name.", - "type": "string" + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels" }, - "kind": { - "type": "string", - "default": "compute#backendBucket", - "description": "Type of the resource." - }, - "cdnPolicy": { - "description": "Cloud CDN configuration for this BackendBucket.", - "$ref": "BackendBucketCdnPolicy" - } - }, - "id": "BackendBucket", - "type": "object" - }, - "UsableSubnetworksAggregatedList": { - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "UsableSubnetwork" + "getGuestAttributes": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes", + "response": { + "$ref": "GuestAttributes" }, - "description": "[Output] A list of usable subnetwork URLs." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#usableSubnetworksAggregatedList for aggregated lists of usable subnetworks.", - "default": "compute#usableSubnetworksAggregatedList" - }, - "warning": { - "properties": { - "code": { + "description": "Returns the specified guest attributes entry.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "description": "Name of the instance scoping this request.", + "type": "string" + }, + "variableKey": { + "description": "Specifies the key for the guest attributes entry.", "type": "string", - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "query" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "type": "array" + "queryPath": { + "location": "query", + "type": "string", + "description": "Specifies the guest attributes path to be queried." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "description": "The name of the zone for this request.", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path", "type": "string" } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "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" - } - }, - "id": "UsableSubnetworksAggregatedList", - "type": "object" - }, - "WeightedBackendService": { - "id": "WeightedBackendService", - "properties": { - "backendService": { - "description": "The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the loadbalancer applies any relevant headerActions specified as part of this backendServiceWeight.", - "type": "string" - }, - "headerAction": { - "$ref": "HttpHeaderAction", - "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. Note that headerAction is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true." - }, - "weight": { - "type": "integer", - "description": "Specifies the fraction of traffic sent to backendService, 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 backendService, subsequent requests will be sent to the same backendService as determined by the BackendService's session affinity policy. The value must be between 0 and 1000", - "format": "uint32" - } - }, - "type": "object", - "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 BackendServices. The volume of traffic for each BackendService is proportional to the weight specified in each WeightedBackendService" - }, - "Router": { - "description": "Represents a Cloud Router resource. For more information about Cloud Router, read the Cloud Router overview.", - "type": "object", - "properties": { - "bgp": { - "$ref": "RouterBgp", - "description": "BGP information specific to this router." - }, - "nats": { - "items": { - "$ref": "RouterNat" - }, - "description": "A list of NAT services created in this router.", - "type": "array" - }, - "encryptedInterconnectRouter": { - "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments). Not currently available publicly. ", - "type": "boolean" + "id": "compute.instances.getGuestAttributes", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "zone", + "instance" + ] }, - "interfaces": { - "type": "array", - "items": { - "$ref": "RouterInterface" + "updateAccessConfig": { + "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" + ], + "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.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", + "request": { + "$ref": "AccessConfig" }, - "description": "Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both." - }, - "network": { - "description": "URI of the network to which this router belongs.", - "annotations": { - "required": [ - "compute.routers.insert", - "compute.routers.update" - ] + "response": { + "$ref": "Operation" }, - "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", - "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" + ], + "id": "compute.instances.updateAccessConfig", + "parameters": { + "instance": { + "description": "The instance name for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true + }, + "networkInterface": { + "location": "query", + "description": "The name of the network interface where the access config is attached.", + "type": "string", + "required": true + }, + "zone": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request." + } } }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "bgpPeers": { - "type": "array", - "items": { - "$ref": "RouterBgpPeer" + "setMetadata": { + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "instance": { + "description": "Name of the instance scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "description": "The name of the zone for this request." + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true + } }, - "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." - }, - "kind": { - "type": "string", - "default": "compute#router", - "description": "[Output Only] Type of resource. Always compute#router for routers." + "id": "compute.instances.setMetadata", + "description": "Sets metadata for the specified instance to the data included in the request.", + "request": { + "$ref": "Metadata" + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ] }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "region": { - "type": "string", - "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." - } - }, - "id": "Router" - }, - "Address": { - "id": "Address", - "type": "object", - "properties": { - "networkTier": { - "enum": [ - "PREMIUM", - "STANDARD" + "setMachineResources": { + "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.", + "request": { + "$ref": "InstancesSetMachineResourcesRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameters": { + "project": { + "location": "path", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "zone": { + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request." + }, + "instance": { + "description": "Name of the instance scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path" + } + }, + "httpMethod": "POST", + "id": "compute.instances.setMachineResources", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "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.", - "enumDescriptions": [ - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products." + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", + "parameterOrder": [ + "project", + "zone", + "instance" ] }, - "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" - }, - "ipVersion": { - "enum": [ - "IPV4", - "IPV6", - "UNSPECIFIED_VERSION" + "getShieldedInstanceIdentity": { + "response": { + "$ref": "ShieldedInstanceIdentity" + }, + "parameters": { + "zone": { + "required": true, + "location": "path", + "type": "string", + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "instance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "description": "Name or id of the instance scoping this request.", + "location": "path" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request." + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" ], - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address." - }, - "kind": { - "type": "string", - "default": "compute#address", - "description": "[Output Only] Type of the resource. Always compute#address for addresses." + "description": "Returns the Shielded Instance Identity of an instance", + "id": "compute.instances.getShieldedInstanceIdentity", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity", + "httpMethod": "GET", + "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity" }, - "status": { - "enum": [ - "IN_USE", - "RESERVED", - "RESERVING" + "getEffectiveFirewalls": { + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "The name of the zone for this request.", + "required": true + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string" + }, + "networkInterface": { + "description": "The name of the network interface to get the effective firewalls.", + "required": true, + "type": "string", + "location": "query" + } + }, + "id": "compute.instances.getEffectiveFirewalls", + "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls", + "description": "Returns effective firewalls applied to an interface of the instance.", + "response": { + "$ref": "InstancesGetEffectiveFirewallsResponse" + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" ], - "enumDescriptions": [ - "Address is being used by another resource and is not available.", - "Address is reserved and available to use.", - "Address is being reserved." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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" - }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "users": { - "description": "[Output Only] The URLs of the resources that are using this address.", - "type": "array", - "items": { - "type": "string" - } - }, - "network": { - "type": "string", - "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." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "httpMethod": "GET", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls" }, - "name": { - "annotations": { - "required": [ - "compute.addresses.insert" - ] + "setTags": { + "request": { + "$ref": "Tags" }, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "address": { - "description": "The static IP address represented by this resource.", - "type": "string" - }, - "addressType": { - "enum": [ - "EXTERNAL", - "INTERNAL", - "UNSPECIFIED_TYPE" + "httpMethod": "POST", + "id": "compute.instances.setTags", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "description": "Sets network tags for the specified instance to the data included in the request.", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "The type of address to reserve, either INTERNAL or EXTERNAL. If unspecified, defaults to EXTERNAL.", - "enumDescriptions": [ - "A publicly visible external IP address.", - "A private network IP address, for use with an Instance or Internal Load Balancer forwarding rule.", - "" + "parameterOrder": [ + "project", + "zone", + "instance" ], - "type": "string" - }, - "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" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" + "parameters": { + "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])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "type": "string" + }, + "instance": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the instance scoping this request." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "zone": { + "required": true, + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + } + } }, - "purpose": { - "type": "string", - "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 . - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect* configuration. These addresses are regional resources. Not currently available publicly. - `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. ", - "enum": [ - "DNS_RESOLVER", - "GCE_ENDPOINT", - "IPSEC_INTERCONNECT", - "NAT_AUTO", - "PRIVATE_SERVICE_CONNECT", - "SHARED_LOADBALANCER_VIP", - "VPC_PEERING" + "suspend": { + "response": { + "$ref": "Operation" + }, + "id": "compute.instances.suspend", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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 IPsec-encrypted 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 private network IP address that can be shared by multiple Internal Load Balancer forwarding rules.", - "IP range for peer networks." + "path": "projects/{project}/zones/{zone}/instances/{instance}/suspend", + "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.", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "The name of the zone for this request.", + "type": "string", + "location": "path" + }, + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "instance": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the instance resource to suspend.", + "type": "string", + "location": "path" + } + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/suspend", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "zone", + "instance" ] }, - "prefixLength": { - "format": "int32", - "description": "The prefix length if the resource represents an IP range.", - "type": "integer" + "resume": { + "id": "compute.instances.resume", + "parameters": { + "zone": { + "description": "The name of the zone for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true + }, + "instance": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the instance resource to resume.", + "location": "path", + "type": "string" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + } + }, + "description": "Resumes an instance that was suspended using the instances().suspend method.", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/resume", + "path": "projects/{project}/zones/{zone}/instances/{instance}/resume", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } - }, - "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." + } }, - "PacketMirroringMirroredResourceInfo": { - "id": "PacketMirroringMirroredResourceInfo", - "properties": { - "tags": { - "items": { - "type": "string" + "regionTargetHttpsProxies": { + "methods": { + "patch": { + "parameters": { + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to patch.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "Name of the region for this request.", + "type": "string", + "required": true + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "required": true + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } }, - "type": "array", - "description": "A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored." - }, - "instances": { - "items": { - "$ref": "PacketMirroringMirroredResourceInfoInstanceInfo" + "request": { + "$ref": "TargetHttpsProxy" }, - "type": "array", - "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." - }, - "subnetworks": { - "type": "array", - "items": { - "$ref": "PacketMirroringMirroredResourceInfoSubnetInfo" + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "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.", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "response": { + "$ref": "Operation" }, - "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": "object" - }, - "ResourceCommitment": { - "description": "Commitment for a particular resource (a Commitment is composed of one or more of these).", - "type": "object", - "properties": { - "amount": { - "type": "string", - "format": "int64", - "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": { - "type": "string", - "description": "Type of resource for which this commitment applies. Possible values are VCPU and MEMORY", - "enumDescriptions": [ - "", - "", - "", - "", - "" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ACCELERATOR", - "LOCAL_SSD", - "MEMORY", - "UNSPECIFIED", - "VCPU" - ] - }, - "acceleratorType": { - "description": "Name of the accelerator type resource. Applicable only when the type is ACCELERATOR.", - "type": "string" - } - }, - "id": "ResourceCommitment" - }, - "UrlMapTestHeader": { - "id": "UrlMapTestHeader", - "properties": { - "name": { - "description": "Header name.", - "type": "string" - }, - "value": { - "description": "Header value.", - "type": "string" - } - }, - "type": "object", - "description": "HTTP headers used in UrlMapTests." - }, - "HealthCheck": { - "type": "object", - "properties": { - "http2HealthCheck": { - "$ref": "HTTP2HealthCheck" - }, - "region": { - "description": "[Output Only] Region where the health check resides. Not applicable to global health checks.", - "type": "string" - }, - "sslHealthCheck": { - "$ref": "SSLHealthCheck" + "httpMethod": "PATCH", + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" + ], + "id": "compute.regionTargetHttpsProxies.patch" }, - "httpHealthCheck": { - "$ref": "HTTPHealthCheck" - }, - "logConfig": { - "$ref": "HealthCheckLogConfig", - "description": "Configure logging on this health check." - }, - "tcpHealthCheck": { - "$ref": "TCPHealthCheck" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "type": { - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" + "setSslCertificates": { + "request": { + "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest" + }, + "id": "compute.regionTargetHttpsProxies.setSslCertificates", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" ], - "enum": [ - "GRPC", - "HTTP", - "HTTP2", - "HTTPS", - "INVALID", - "SSL", - "TCP" + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "location": "path", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "targetHttpsProxy": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.", + "location": "path" + }, + "region": { + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of the protocol-specific health check field must be specified, which must match type field." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "grpcHealthCheck": { - "$ref": "GRPCHealthCheck" - }, - "checkIntervalSec": { - "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", - "type": "integer", - "format": "int32" - }, - "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" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in 3339 text format.", - "type": "string" - }, - "httpsHealthCheck": { - "$ref": "HTTPSHealthCheck" - }, - "unhealthyThreshold": { - "format": "int32", - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", - "type": "integer" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "healthyThreshold": { - "type": "integer", - "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", - "format": "int32" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "kind": { - "type": "string", - "default": "compute#healthCheck", - "description": "Type of the resource." - } - }, - "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/v1/healthChecks) * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.HealthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", - "id": "HealthCheck" - }, - "ShieldedInstanceConfig": { - "type": "object", - "description": "A set of Shielded Instance options.", - "id": "ShieldedInstanceConfig", - "properties": { - "enableVtpm": { - "description": "Defines whether the instance has the vTPM enabled. Enabled by default.", - "type": "boolean" - }, - "enableSecureBoot": { - "type": "boolean", - "description": "Defines whether the instance has Secure Boot enabled. Disabled by default." + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "description": "Replaces SslCertificates for TargetHttpsProxy.", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates" }, - "enableIntegrityMonitoring": { - "type": "boolean", - "description": "Defines whether the instance has integrity monitoring enabled. Enabled by default." - } - } - }, - "Backend": { - "type": "object", - "properties": { - "balancingMode": { - "type": "string", - "enum": [ - "CONNECTION", - "RATE", - "UTILIZATION" + "list": { + "path": "projects/{project}/regions/{region}/targetHttpsProxies", + "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enumDescriptions": [ - "Balance based on the number of simultaneous connections.", - "Balance based on requests per second (RPS).", - "Balance based on the backend utilization." + "response": { + "$ref": "TargetHttpsProxyList" + }, + "id": "compute.regionTargetHttpsProxies.list", + "parameterOrder": [ + "project", + "region" ], - "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." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "maxRatePerInstance": { - "format": "float", - "type": "number", - "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." - }, - "capacityScaler": { - "type": "number", - "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.", - "format": "float" - }, - "failover": { - "type": "boolean", - "description": "This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService." - }, - "maxRatePerEndpoint": { - "format": "float", - "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" - }, - "maxConnectionsPerInstance": { - "format": "int32", - "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" - }, - "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" - }, - "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" - }, - "maxConnections": { - "type": "integer", - "format": "int32", - "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." - }, - "maxConnectionsPerEndpoint": { - "type": "integer", - "format": "int32", - "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." - }, - "maxUtilization": { - "format": "float", - "type": "number", - "description": "Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode." - } - }, - "description": "Message containing information of one individual backend.", - "id": "Backend" - }, - "TargetPoolsAddInstanceRequest": { - "id": "TargetPoolsAddInstanceRequest", - "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 ", - "items": { - "$ref": "InstanceReference" + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", + "parameters": { + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "maxResults": { + "type": "integer", + "location": "query", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "default": "500" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "region": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "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])?))", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + } }, - "type": "array" - } - }, - "type": "object" - }, - "VpnGateway": { - "properties": { - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", - "default": "compute#vpnGateway" + "httpMethod": "GET" }, - "labels": { - "additionalProperties": { - "type": "string" + "insert": { + "path": "projects/{project}/regions/{region}/targetHttpsProxies", + "parameters": { + "project": { + "type": "string", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "region": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "Name of the region scoping this request.", + "required": true + } }, - "type": "object", - "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." - }, - "name": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string", - "annotations": { - "required": [ - "compute.vpnGateways.insert" - ] + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", + "id": "compute.regionTargetHttpsProxies.insert", + "request": { + "$ref": "TargetHttpsProxy" }, - "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." - }, - "labelFingerprint": { - "type": "string", - "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 an VpnGateway.", - "format": "byte" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "network": { - "annotations": { - "required": [ - "compute.vpnGateways.insert" - ] + "parameterOrder": [ + "project", + "region" + ], + "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.", + "response": { + "$ref": "Operation" }, - "type": "string", - "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created." - }, - "vpnInterfaces": { - "description": "The list of VPN interfaces associated with this VPN gateway.", - "type": "array", - "items": { - "$ref": "VpnGatewayVpnGatewayInterface" - } - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "region": { - "type": "string", - "description": "[Output Only] URL of the region where the VPN gateway resides." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - } - }, - "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 .", - "id": "VpnGateway", - "type": "object" - }, - "ManagedInstanceVersion": { - "id": "ManagedInstanceVersion", - "properties": { - "name": { - "type": "string", - "description": "[Output Only] Name of the version." + "httpMethod": "POST" }, - "instanceTemplate": { - "type": "string", - "description": "[Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }." - } - }, - "type": "object" - }, - "MachineTypesScopedList": { - "properties": { - "warning": { - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "delete": { + "id": "compute.regionTargetHttpsProxies.delete", + "response": { + "$ref": "Operation" + }, + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" + ], + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "parameters": { + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path", + "required": true }, - "message": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "required": true + }, + "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}", + "required": true, + "location": "path", "type": "string" } }, - "description": "[Output Only] An informational warning that appears when the machine types list is empty.", - "type": "object" + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "description": "Deletes the specified TargetHttpsProxy resource.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "machineTypes": { - "description": "[Output Only] A list of machine types contained in this scope.", - "items": { - "$ref": "MachineType" - }, - "type": "array" - } - }, - "id": "MachineTypesScopedList", - "type": "object" - }, - "ConfidentialInstanceConfig": { - "properties": { - "enableConfidentialCompute": { - "description": "Defines whether the instance should have confidential compute enabled.", - "type": "boolean" - } - }, - "type": "object", - "id": "ConfidentialInstanceConfig", - "description": "A set of Confidential Instance options." - }, - "PublicDelegatedPrefixPublicDelegatedSubPrefix": { - "properties": { - "ipCidrRange": { - "type": "string", - "description": "The IPv4 address range, in CIDR format, represented by this sub public delegated prefix." - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "name": { - "type": "string", - "description": "The name of the sub public delegated prefix." - }, - "region": { - "type": "string", - "description": "[Output Only] The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global." - }, - "status": { - "description": "[Output Only] The status of the sub public delegated prefix.", - "enumDescriptions": [ - "", - "" + "setUrlMap": { + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" ], - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE" - ] - }, - "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" - } - }, - "type": "object", - "id": "PublicDelegatedPrefixPublicDelegatedSubPrefix", - "description": "Represents a sub PublicDelegatedPrefix." - }, - "Zone": { - "id": "Zone", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "supportsPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "availableCpuPlatforms": { - "items": { - "type": "string" + "id": "compute.regionTargetHttpsProxies.setUrlMap", + "response": { + "$ref": "Operation" }, - "description": "[Output Only] Available cpu/platform selections for the zone.", - "type": "array" - }, - "region": { - "type": "string", - "description": "[Output Only] Full URL reference to the region which hosts the zone." - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#zone for zones.", - "default": "compute#zone", - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this zone." - }, - "name": { - "description": "[Output Only] Name of the resource.", - "type": "string" - }, - "description": { - "type": "string", - "description": "[Output Only] Textual description of the resource." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "status": { - "enumDescriptions": [ - "", - "" - ], - "type": "string", - "enum": [ - "DOWN", - "UP" + "description": "Changes the URL map for TargetHttpsProxy.", + "request": { + "$ref": "UrlMapReference" + }, + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "[Output Only] Status of the zone, either UP or DOWN." - } - }, - "type": "object", - "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." - }, - "SslPoliciesList": { - "id": "SslPoliciesList", - "type": "object", - "properties": { - "warning": { - "properties": { - "message": { + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "parameters": { + "project": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request." }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "requestId": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" + "targetHttpsProxy": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetHttpsProxy to set a URL map for.", + "location": "path" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "description": "Name of the region scoping this request.", + "location": "path" } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "kind": { - "type": "string", - "default": "compute#sslPoliciesList", - "description": "[Output Only] Type of the resource. Always compute#sslPoliciesList for lists of sslPolicies." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "httpMethod": "POST" }, - "items": { - "items": { - "$ref": "SslPolicy" + "get": { + "response": { + "$ref": "TargetHttpsProxy" }, - "type": "array", - "description": "A list of SslPolicy resources." + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" + ], + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "id": "compute.regionTargetHttpsProxies.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "parameters": { + "region": { + "description": "Name of the region scoping this request.", + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "targetHttpsProxy": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the TargetHttpsProxy resource to return.", + "required": true + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + } } } }, - "InstanceGroupManagersCreateInstancesRequest": { - "properties": { - "instances": { - "items": { - "$ref": "PerInstanceConfig" - }, - "description": "[Required] List of specifications of per-instance configs.", - "type": "array" - } - }, - "description": "InstanceGroupManagers.createInstances", - "type": "object", - "id": "InstanceGroupManagersCreateInstancesRequest" - }, - "RegionInstanceGroupManagerList": { - "properties": { - "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" - }, - "items": { - "items": { - "$ref": "InstanceGroupManager" - }, - "type": "array", - "description": "A list of InstanceGroupManager resources." - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "sslPolicies": { + "methods": { + "aggregatedList": { + "parameters": { + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "format": "uint32", + "type": "integer", + "location": "query" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", "type": "string" }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "includeAllScopes": { + "type": "boolean", + "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" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "filter": { "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." } - } - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "kind": { - "type": "string", - "default": "compute#regionInstanceGroupManagerList", - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups that exist in th regional scope." - } - }, - "description": "Contains a list of managed instance groups.", - "id": "RegionInstanceGroupManagerList", - "type": "object" - }, - "HealthCheckService": { - "id": "HealthCheckService", - "description": "Represents a Health-Check as a Service resource.", - "type": "object", - "properties": { - "notificationEndpoints": { - "type": "array", - "items": { - "type": "string" }, - "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." - }, - "region": { - "type": "string", - "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." - }, - "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. .", - "enum": [ - "AND", - "NO_AGGREGATION" + "response": { + "$ref": "SslPoliciesAggregatedList" + }, + "id": "compute.sslPolicies.aggregatedList", + "description": "Retrieves the list of all SslPolicy resources, regional and global, available to the specified project.", + "httpMethod": "GET", + "flatPath": "projects/{project}/aggregated/sslPolicies", + "path": "projects/{project}/aggregated/sslPolicies", + "parameterOrder": [ + "project" ], - "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." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "healthChecks": { - "type": "array", - "items": { - "type": "string" + "insert": { + "flatPath": "projects/{project}/global/sslPolicies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.", + "request": { + "$ref": "SslPolicy" }, - "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10. 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 NEGs." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "networkEndpointGroups": { - "items": { - "type": "string" + "response": { + "$ref": "Operation" }, - "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.", - "type": "array" - }, - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "kind": { - "type": "string", - "description": "[Output only] Type of the resource. Always compute#healthCheckServicefor health check services.", - "default": "compute#healthCheckService" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "type": "string", - "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])?" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - } - } - }, - "SSLHealthCheck": { - "id": "SSLHealthCheck", - "properties": { - "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", - "format": "int32", - "type": "integer" - }, - "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.", - "enumDescriptions": [ - "", - "" - ], - "type": "string", - "enum": [ - "NONE", - "PROXY_V1" + "path": "projects/{project}/global/sslPolicies", + "id": "compute.sslPolicies.insert", + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "parameterOrder": [ + "project" ] }, - "portSpecification": { - "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "list": { + "description": "Lists all the SSL policies that have been configured for the specified project.", + "id": "compute.sslPolicies.list", + "httpMethod": "GET", + "parameters": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "format": "uint32", + "type": "integer", + "location": "query" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + } + }, + "flatPath": "projects/{project}/global/sslPolicies", + "parameterOrder": [ + "project" ], - "type": "string", - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields." - }, - "portName": { - "type": "string", - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence." - }, - "request": { - "description": "The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.", - "type": "string" + "path": "projects/{project}/global/sslPolicies", + "response": { + "$ref": "SslPoliciesList" + } }, - "response": { - "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.", - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "id": "Tags", - "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])?", - "items": { - "type": "string" + "patch": { + "httpMethod": "PATCH", + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "fingerprint": { - "format": "byte", - "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" - } - }, - "type": "object", - "description": "A set of instance tags." - }, - "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" - } - }, - "id": "InstanceGroupManagerStatusVersionTarget" - }, - "AutoscalerList": { - "id": "AutoscalerList", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "Autoscaler" + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "parameterOrder": [ + "project", + "sslPolicy" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "request": { + "$ref": "SslPolicy" }, - "description": "A list of Autoscaler resources." - }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" + "parameters": { + "sslPolicy": { + "type": "string", + "location": "path", + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "required": true }, - "message": { + "project": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - } + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." } - } - }, - "kind": { - "default": "compute#autoscalerList", - "description": "[Output Only] Type of resource. Always compute#autoscalerList for lists of autoscalers.", - "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" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "id": "compute.sslPolicies.patch", + "description": "Patches the specified SSL policy with the data included in the request." }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - }, - "description": "Contains a list of Autoscaler resources.", - "type": "object" - }, - "InstanceGroupManagerUpdatePolicy": { - "properties": { - "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. ", - "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." + "listAvailableFeatures": { + "description": "Lists all features that can be specified in the SSL policy when using custom profile.", + "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures", + "parameters": { + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "location": "query", + "default": "500", + "type": "integer", + "format": "uint32" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + } + }, + "id": "compute.sslPolicies.listAvailableFeatures", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "NONE", - "PROACTIVE" + "parameterOrder": [ + "project" ], - "type": "string" - }, - "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" + "response": { + "$ref": "SslPoliciesListAvailableFeaturesResponse" + }, + "httpMethod": "GET", + "path": "projects/{project}/global/sslPolicies/listAvailableFeatures" }, - "type": { - "type": "string", - "enumDescriptions": [ - "No action is being proactively performed in order to bring this IGM to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field).", - "This IGM will actively converge to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field)." + "get": { + "id": "compute.sslPolicies.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).", - "enum": [ - "OPPORTUNISTIC", - "PROACTIVE" - ] - }, - "minimalAction": { - "type": "string", - "description": "Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.", - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "parameters": { + "sslPolicy": { + "type": "string", + "location": "path", + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "required": true + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "parameterOrder": [ + "project", + "sslPolicy" ], - "enumDescriptions": [ - "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." - ] + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "httpMethod": "GET", + "response": { + "$ref": "SslPolicy" + }, + "description": "Lists all of the ordered rules present in a single specified policy." }, - "replacementMethod": { - "enumDescriptions": [ - "Instances will be recreated (with the same name)", - "Default option: instances will be deleted and created (with a new name)" + "delete": { + "response": { + "$ref": "Operation" + }, + "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.", + "id": "compute.sslPolicies.delete", + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "parameterOrder": [ + "project", + "sslPolicy" ], - "description": "What action should be used to replace instances. See minimal_action.REPLACE", - "type": "string", - "enum": [ - "RECREATE", - "SUBSTITUTE" - ] + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "location": "path", + "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", + "required": true, + "type": "string" + } + } } - }, - "id": "InstanceGroupManagerUpdatePolicy", - "type": "object" + } }, - "HttpRedirectAction": { - "properties": { - "pathRedirect": { - "type": "string", - "description": "The path that will be 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 will be used for the redirect. The value must be between 1 and 1024 characters." - }, - "redirectResponseCode": { - "type": "string", - "enum": [ - "FOUND", - "MOVED_PERMANENTLY_DEFAULT", - "PERMANENT_REDIRECT", - "SEE_OTHER", - "TEMPORARY_REDIRECT" + "machineImages": { + "methods": { + "setIamPolicy": { + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "parameterOrder": [ + "project", + "resource" ], - "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 will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method will be retained. ", - "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." - ] - }, - "hostRedirect": { - "description": "The host that will be used in the redirect response instead of the one that was supplied in the request. The value must be between 1 and 255 characters.", - "type": "string" - }, - "stripQuery": { - "type": "boolean", - "description": "If set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false." - }, - "prefixRedirect": { - "type": "string", - "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 will be used for the redirect. The value must be between 1 and 1024 characters." - }, - "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 will remain the same as that of the request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false.", - "type": "boolean" - } - }, - "id": "HttpRedirectAction", - "description": "Specifies settings for an HTTP redirect.", - "type": "object" - }, - "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 GCP HTTP load balancers. * targetHttpProxies are used by external HTTP load balancers and Traffic Director. * regionTargetHttpProxies are used by internal HTTP 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.", - "id": "TargetHttpProxy", - "properties": { - "fingerprint": { - "type": "string", - "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.", - "format": "byte" - }, - "urlMap": { - "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService.", - "type": "string" - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetHttpProxy for target HTTP proxies.", - "default": "compute#targetHttpProxy", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "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" - }, - "proxyBind": { - "type": "boolean", - "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." - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "name": { - "type": "string", - "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])?" - }, - "region": { - "type": "string", - "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": "object" - }, - "HttpRouteRule": { - "id": "HttpRouteRule", - "description": "An HttpRouteRule specifies how to match an HTTP request and the corresponding routing action that load balancing proxies will perform.", - "properties": { - "headerAction": { - "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction specified here are applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction Note that headerAction is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "HttpHeaderAction" - }, - "priority": { - "description": "For routeRules within a given pathMatcher, priority determines the order in which load balancer will interpret 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 between 0 and 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.", - "format": "int32", - "type": "integer" - }, - "service": { - "type": "string", - "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is additionally specified, advanced routing actions like URL Rewrites, etc. take effect prior to sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendService s. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set." - }, - "matchRules": { - "items": { - "$ref": "HttpRouteRuleMatch" - }, - "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" - }, - "urlRedirect": { - "$ref": "HttpRedirectAction", - "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 target gRPC proxy." - }, - "description": { - "description": "The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.", - "type": "string" - }, - "routeAction": { - "description": "In response to a matching matchRule, the load balancer performs advanced routing actions like URL rewrites, header transformations, etc. prior to 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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a routeRule's routeAction.", - "$ref": "HttpRouteAction" - } - }, - "type": "object" - }, - "RegionDiskTypeList": { - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "kind": { - "default": "compute#regionDiskTypeList", - "description": "[Output Only] Type of resource. Always compute#regionDiskTypeList for region disk types.", - "type": "string" - }, - "items": { - "description": "A list of DiskType resources.", - "items": { - "$ref": "DiskType" + "response": { + "$ref": "Policy" }, - "type": "array" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "data": { - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" - }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "type": "string" + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/machineImages/{resource}/setIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/machineImages/{resource}/setIamPolicy", + "id": "compute.machineImages.setIamPolicy", + "parameters": { + "resource": { + "description": "Name or id of the resource for this request.", + "required": true, + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" }, - "message": { + "project": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true } } - } - }, - "id": "RegionDiskTypeList", - "type": "object" - }, - "SecurityPoliciesWafConfig": { - "type": "object", - "id": "SecurityPoliciesWafConfig", - "properties": { - "wafRules": { - "$ref": "PreconfiguredWafSet" - } - } - }, - "PerInstanceConfig": { - "properties": { - "fingerprint": { - "type": "string", - "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 config or the field needs to be unset.", - "format": "byte" }, - "status": { - "type": "string", - "description": "The status of applying this per-instance config on the corresponding managed instance.", - "enumDescriptions": [ - "The per-instance config is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance config deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance config is effective on the instance, meaning that all disks, ips and metadata specified in this config are attached or set on the instance.", - "*[Default]* The default status, when no per-instance config exists.", - "The per-instance config is set on an instance but not been applied yet.", - "The per-instance config has been deleted, but the deletion is not yet applied." + "get": { + "parameterOrder": [ + "project", + "machineImage" ], - "enum": [ - "APPLYING", - "DELETING", - "EFFECTIVE", - "NONE", - "UNAPPLIED", - "UNAPPLIED_DELETION" - ] - }, - "name": { - "description": "The name of a per-instance config and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance config 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 config for a VM instance that either doesn't exist or is not part of the group will result in an error.", - "type": "string" - }, - "preservedState": { - "$ref": "PreservedState", - "description": "The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy." - } - }, - "id": "PerInstanceConfig", - "type": "object" - }, - "InterconnectDiagnostics": { - "id": "InterconnectDiagnostics", - "description": "Diagnostics information about interconnect, contains detailed and current technical information about Google's side of the connection.", - "type": "object", - "properties": { - "links": { - "items": { - "$ref": "InterconnectDiagnosticsLinkStatus" + "response": { + "$ref": "MachineImage" }, - "description": "A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect.", - "type": "array" - }, - "macAddress": { - "description": "The MAC address of the Interconnect's bundle interface.", - "type": "string" - }, - "arpCaches": { - "items": { - "$ref": "InterconnectDiagnosticsARPEntry" + "parameters": { + "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])?))", + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "machineImage": { + "location": "path", + "description": "The name of the machine image.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + } }, - "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" - } - } - }, - "NodeTemplateNodeTypeFlexibility": { - "properties": { - "memory": { - "type": "string" - }, - "localSsd": { - "type": "string" + "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "flatPath": "projects/{project}/global/machineImages/{machineImage}", + "id": "compute.machineImages.get", + "path": "projects/{project}/global/machineImages/{machineImage}" }, - "cpus": { - "type": "string" - } - }, - "id": "NodeTemplateNodeTypeFlexibility", - "type": "object" - }, - "TargetInstancesScopedList": { - "properties": { - "targetInstances": { - "items": { - "$ref": "TargetInstance" + "delete": { + "id": "compute.machineImages.delete", + "response": { + "$ref": "Operation" }, - "description": "A list of target instances contained in this scope.", - "type": "array" - }, - "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "DELETE", + "flatPath": "projects/{project}/global/machineImages/{machineImage}", + "parameterOrder": [ + "project", + "machineImage" + ], + "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.", + "path": "projects/{project}/global/machineImages/{machineImage}", + "parameters": { + "machineImage": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "description": "The name of the machine image to delete." }, - "message": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "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])?))", + "required": true, + "type": "string", + "location": "path", + "description": "Project ID for this request." } + } + }, + "testIamPermissions": { + "path": "projects/{project}/global/machineImages/{resource}/testIamPermissions", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/machineImages/{resource}/testIamPermissions", + "response": { + "$ref": "TestPermissionsResponse" }, - "type": "object" - } - }, - "type": "object", - "id": "TargetInstancesScopedList" - }, - "UrlMapsScopedList": { - "properties": { - "warning": { - "type": "object", - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "parameterOrder": [ + "project", + "resource" + ], + "id": "compute.machineImages.testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "resource": { + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name or id of the resource for this request.", + "type": "string", + "required": true + }, + "project": { + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true + } + }, + "description": "Returns permissions that a caller has on the specified resource." + }, + "insert": { + "request": { + "$ref": "MachineImage" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/global/machineImages", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "sourceInstance": { + "location": "query", + "type": "string", + "description": "Required. Source instance that is used to create the machine image from." }, - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { + "required": true, "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." } - } - }, - "urlMaps": { - "description": "A list of UrlMaps contained in this scope.", - "items": { - "$ref": "UrlMap" }, - "type": "array" - } - }, - "type": "object", - "id": "UrlMapsScopedList" - }, - "SecuritySettings": { - "id": "SecuritySettings", - "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. Note: This field currently has no impact.", - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.machineImages.insert", + "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.", + "httpMethod": "POST", + "path": "projects/{project}/global/machineImages" }, - "subjectAltNames": { - "items": { - "type": "string" + "list": { + "flatPath": "projects/{project}/global/machineImages", + "path": "projects/{project}/global/machineImages", + "parameters": { + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "minimum": "0", + "location": "query", + "format": "uint32" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + } }, - "type": "array", - "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). Note: This field currently has no impact." - } - }, - "type": "object", - "description": "The authentication and authorization settings for a BackendService." - }, - "InstanceGroupManagerStatusStateful": { - "properties": { - "hasStatefulConfig": { - "type": "boolean", - "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 config 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." - }, - "perInstanceConfigs": { - "description": "[Output Only] Status of per-instance configs on the instance.", - "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs" - } - }, - "id": "InstanceGroupManagerStatusStateful", - "type": "object" - }, - "InstanceGroupManagersRecreateInstancesRequest": { - "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].", - "items": { - "type": "string" + "id": "compute.machineImages.list", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project" + ], + "description": "Retrieves a list of machine images that are contained within the specified project.", + "response": { + "$ref": "MachineImageList" }, - "type": "array" - } - }, - "id": "InstanceGroupManagersRecreateInstancesRequest", - "type": "object" - }, - "ExchangedPeeringRoute": { - "id": "ExchangedPeeringRoute", - "type": "object", - "properties": { - "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" - }, - "destRange": { - "description": "The destination range of the route.", - "type": "string" + "httpMethod": "GET" }, - "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." + "getIamPolicy": { + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "DYNAMIC_PEERING_ROUTE", - "STATIC_PEERING_ROUTE", - "SUBNET_PEERING_ROUTE" - ] - }, - "priority": { - "type": "integer", - "format": "uint32", - "description": "The priority of the peering route." - }, - "nextHopRegion": { - "description": "The region of peering route next hop, only applies to dynamic routes.", - "type": "string" + "parameters": { + "optionsRequestedPolicyVersion": { + "type": "integer", + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query" + }, + "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, + "description": "Project ID for this request.", + "type": "string" + }, + "resource": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name or id of the resource for this request.", + "location": "path" + } + }, + "httpMethod": "GET", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/global/machineImages/{resource}/getIamPolicy", + "path": "projects/{project}/global/machineImages/{resource}/getIamPolicy", + "id": "compute.machineImages.getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." } } }, - "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": { - "labels": { - "description": "Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.", - "additionalProperties": { - "type": "string" + "targetSslProxies": { + "methods": { + "get": { + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "id": "compute.targetSslProxies.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.", + "parameters": { + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "targetSslProxy": { + "required": true, + "type": "string", + "location": "path", + "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}" + } }, - "type": "object" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "autoCreated": { - "type": "boolean", - "description": "[Output Only] Set to true if snapshots are automatically created by applying resource policy on the target disk." + "response": { + "$ref": "TargetSslProxy" + }, + "httpMethod": "GET" }, - "storageBytesStatus": { - "enumDescriptions": [ - "", - "" + "delete": { + "id": "compute.targetSslProxies.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "enum": [ - "UPDATING", - "UP_TO_DATE" + "httpMethod": "DELETE", + "response": { + "$ref": "Operation" + }, + "parameters": { + "targetSslProxy": { + "location": "path", + "description": "Name of the TargetSslProxy resource to delete.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } + }, + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "parameterOrder": [ + "project", + "targetSslProxy" ], - "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." - }, - "downloadBytes": { - "type": "string", - "description": "[Output Only] Number of bytes downloaded to restore a snapshot to a disk.", - "format": "int64" - }, - "sourceDisk": { - "description": "The source disk used to create this snapshot.", - "type": "string" - }, - "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" - }, - "kind": { - "default": "compute#snapshot", - "description": "[Output Only] Type of the resource. Always compute#snapshot for Snapshot resources.", - "type": "string" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." + "description": "Deletes the specified TargetSslProxy resource.", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}" }, - "storageLocations": { - "description": "Cloud Storage bucket storage location of the snapshot (regional or multi-regional).", - "items": { - "type": "string" + "setSslPolicy": { + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "targetSslProxy": { + "type": "string", + "location": "path", + "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.", + "required": true + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } }, - "type": "array" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "licenses": { - "type": "array", - "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).", - "items": { - "type": "string" + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.targetSslProxies.setSslPolicy", + "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 SSL proxy load balancer. They do not affect the connection between the load balancer and the backends.", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "httpMethod": "POST", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "SslPolicyReference" } }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "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" - }, - "diskSizeGb": { - "type": "string", - "description": "[Output Only] Size of the source disk, specified in GB.", - "format": "int64" - }, - "status": { - "type": "string", - "description": "[Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING.", - "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY", - "UPLOADING" + "setProxyHeader": { + "description": "Changes the ProxyHeaderType for TargetSslProxy.", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", + "parameterOrder": [ + "project", + "targetSslProxy" ], - "enumDescriptions": [ - "Snapshot creation is in progress.", - "Snapshot is currently being deleted.", - "Snapshot creation failed.", - "Snapshot has been created successfully.", - "Snapshot is being uploaded." - ] - }, - "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" - }, - "licenseCodes": { - "type": "array", - "description": "[Output Only] Integer license codes indicating which licenses are attached to this snapshot.", - "items": { - "type": "string", - "format": "int64" + "httpMethod": "POST", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", + "request": { + "$ref": "TargetSslProxiesSetProxyHeaderRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "targetSslProxy": { + "location": "path", + "type": "string", + "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}", + "required": true + }, + "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])?))", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "id": "compute.targetSslProxies.setProxyHeader", + "response": { + "$ref": "Operation" } }, - "sourceDiskId": { - "type": "string", - "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." - }, - "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" - }, - "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" - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "labelFingerprint": { - "format": "byte", - "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" - } - }, - "id": "Snapshot" - }, - "PacketMirroringList": { - "description": "Contains a list of PacketMirroring resources.", - "id": "PacketMirroringList", - "type": "object", - "properties": { - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { - "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "setSslCertificates": { + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "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}", "type": "string", - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "required": true, + "location": "path" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - } + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" } - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "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" - }, - "items": { - "description": "A list of PacketMirroring resources.", - "items": { - "$ref": "PacketMirroring" }, - "type": "array" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "request": { + "$ref": "TargetSslProxiesSetSslCertificatesRequest" + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.targetSslProxies.setSslCertificates", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "description": "Changes SslCertificates for TargetSslProxy.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates" }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#packetMirroring for packetMirrorings.", - "type": "string", - "default": "compute#packetMirroringList" - } - } - }, - "InstanceGroupsScopedList": { - "properties": { - "warning": { - "description": "[Output Only] An informational warning that replaces the list of instance groups when the list is empty.", - "type": "object", - "properties": { - "message": { + "setBackendService": { + "request": { + "$ref": "TargetSslProxiesSetBackendServiceRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "id": "compute.targetSslProxies.setBackendService", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.", + "location": "path" }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "httpMethod": "POST", + "description": "Changes the BackendService for TargetSslProxy.", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService" + }, + "insert": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/targetSslProxies", + "flatPath": "projects/{project}/global/targetSslProxies", + "parameterOrder": [ + "project" + ], + "id": "compute.targetSslProxies.insert", + "request": { + "$ref": "TargetSslProxy" + }, + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "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])?))", + "description": "Project ID for this request.", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "location": "path", + "required": true } + }, + "httpMethod": "POST", + "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.", + "response": { + "$ref": "Operation" } }, - "instanceGroups": { - "type": "array", - "description": "[Output Only] The list of instance groups that are contained in this scope.", - "items": { - "$ref": "InstanceGroup" - } - } - }, - "id": "InstanceGroupsScopedList", - "type": "object" - }, - "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", - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ], - "enumDescriptions": [ - "", - "" - ] - } - }, - "id": "StatefulPolicyPreservedStateDiskDevice" - }, - "DistributionPolicyZoneConfiguration": { - "id": "DistributionPolicyZoneConfiguration", - "properties": { - "zone": { - "annotations": { - "required": [ - "compute.regionInstanceGroupManagers.insert" - ] + "list": { + "response": { + "$ref": "TargetSslProxyList" }, - "description": "The URL of the zone. The zone must exist in the region where the managed instance group is located.", - "type": "string" - } - }, - "type": "object" - }, - "SecurityPolicyReference": { - "id": "SecurityPolicyReference", - "type": "object", - "properties": { - "securityPolicy": { - "type": "string" - } - } - }, - "ServiceAttachmentsScopedList": { - "id": "ServiceAttachmentsScopedList", - "type": "object", - "properties": { - "warning": { - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "flatPath": "projects/{project}/global/targetSslProxies", + "parameters": { + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer", + "default": "500" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "Project ID for this request." }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" }, - "message": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "pageToken": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" } }, - "type": "object", - "description": "Informational warning which replaces the list of service attachments when the list is empty." + "id": "compute.targetSslProxies.list", + "description": "Retrieves the list of TargetSslProxy resources available to the specified project.", + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/global/targetSslProxies" }, - "serviceAttachments": { - "items": { - "$ref": "ServiceAttachment" + "setCertificateMap": { + "httpMethod": "POST", + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "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", + "type": "string", + "required": true + } }, - "description": "A list of ServiceAttachments contained in this scope.", - "type": "array" + "response": { + "$ref": "Operation" + }, + "description": "Changes the Certificate Map for TargetSslProxy.", + "id": "compute.targetSslProxies.setCertificateMap", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "request": { + "$ref": "TargetSslProxiesSetCertificateMapRequest" + }, + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, - "InstanceGroupManagersListPerInstanceConfigsResp": { - "id": "InstanceGroupManagersListPerInstanceConfigsResp", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "PerInstanceConfig" + "licenses": { + "methods": { + "setIamPolicy": { + "response": { + "$ref": "Policy" }, - "description": "[Output Only] The list of 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": { - "properties": { - "message": { + "parameters": { + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Project ID for this request.", + "required": true }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - } } }, - "type": "object", - "description": "[Output Only] Informational warning message." - } - }, - "type": "object" - }, - "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { - "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be attached.", - "items": { - "$ref": "NetworkEndpoint" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" }, - "type": "array" - } - }, - "type": "object" - }, - "InstanceManagedByIgmErrorManagedInstanceError": { - "id": "InstanceManagedByIgmErrorManagedInstanceError", - "properties": { - "message": { - "type": "string", - "description": "[Output Only] Error message." + "parameterOrder": [ + "project", + "resource" + ], + "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. ", + "path": "projects/{project}/global/licenses/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.licenses.setIamPolicy", + "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy" }, - "code": { - "description": "[Output Only] Error code.", - "type": "string" - } - }, - "type": "object" - }, - "OperationsScopedList": { - "properties": { - "operations": { - "description": "[Output Only] A list of operations contained in this scope.", - "type": "array", - "items": { - "$ref": "Operation" - } + "get": { + "flatPath": "projects/{project}/global/licenses/{license}", + "id": "compute.licenses.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "response": { + "$ref": "License" + }, + "parameterOrder": [ + "project", + "license" + ], + "parameters": { + "license": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the License resource to return.", + "location": "path", + "required": true + }, + "project": { + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "path": "projects/{project}/global/licenses/{license}", + "description": "Returns the specified License resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of operations when the list is empty.", - "type": "object", - "properties": { - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string" + "getIamPolicy": { + "response": { + "$ref": "Policy" + }, + "path": "projects/{project}/global/licenses/{resource}/getIamPolicy", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" }, - "message": { + "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])?))", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path", + "description": "Project ID for this request.", + "required": true }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "resource": { + "description": "Name or id of the resource for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "location": "path" } - } - } - }, - "type": "object", - "id": "OperationsScopedList" - }, - "RouterNatLogConfig": { - "id": "RouterNatLogConfig", - "properties": { - "enable": { - "type": "boolean", - "description": "Indicates whether or not to export logs. This is false by default." + }, + "httpMethod": "GET", + "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy", + "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. ", + "parameterOrder": [ + "project", + "resource" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.licenses.getIamPolicy" }, - "filter": { - "enum": [ - "ALL", - "ERRORS_ONLY", - "TRANSLATIONS_ONLY" + "testIamPermissions": { + "parameters": { + "project": { + "location": "path", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "resource": { + "type": "string", + "required": true, + "location": "path", + "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}" + } + }, + "parameterOrder": [ + "project", + "resource" ], - "enumDescriptions": [ - "Export logs for all (successful and unsuccessful) connections.", - "Export logs for connection failures only.", - "Export logs for successful connections only." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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" - } - }, - "type": "object", - "description": "Configuration of logging on a NAT." - }, - "DisksAddResourcePoliciesRequest": { - "id": "DisksAddResourcePoliciesRequest", - "type": "object", - "properties": { - "resourcePolicies": { - "items": { - "type": "string" + "request": { + "$ref": "TestPermissionsRequest" }, - "description": "Full or relative path to the resource policy to be added to this disk. You can only specify one resource policy.", - "type": "array" - } - } - }, - "RouterAggregatedList": { - "properties": { - "kind": { - "type": "string", - "default": "compute#routerAggregatedList", - "description": "Type of resource." - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - }, - "items": { - "type": "object", - "additionalProperties": { - "$ref": "RoutersScopedList", - "description": "Name of the scope containing this set of routers." + "id": "compute.licenses.testIamPermissions", + "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. ", + "path": "projects/{project}/global/licenses/{resource}/testIamPermissions", + "response": { + "$ref": "TestPermissionsResponse" }, - "description": "A list of Router resources." + "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions", + "httpMethod": "POST" }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "delete": { + "id": "compute.licenses.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "license" + ], + "description": "Deletes the specified license. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "type": "array" + "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])?))", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path" }, - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "license": { "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the license resource to delete.", + "required": true } - } - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - }, - "id": "RouterAggregatedList", - "type": "object", - "description": "Contains a list of routers." - }, - "Reference": { - "description": "Represents a reference to a resource.", - "properties": { - "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" - }, - "target": { - "type": "string", - "description": "URL of the resource to which this reference points." - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#reference for references.", - "default": "compute#reference", - "type": "string" - } - }, - "id": "Reference", - "type": "object" - }, - "DisksScopedList": { - "id": "DisksScopedList", - "properties": { - "disks": { - "description": "[Output Only] A list of disks contained in this scope.", - "items": { - "$ref": "Disk" }, - "type": "array" + "path": "projects/{project}/global/licenses/{license}", + "httpMethod": "DELETE", + "flatPath": "projects/{project}/global/licenses/{license}" }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning which replaces the list of disks when the list is empty.", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "list": { + "id": "compute.licenses.list", + "flatPath": "projects/{project}/global/licenses", + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "path": "projects/{project}/global/licenses", + "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. ", + "parameters": { + "pageToken": { + "description": "Specifies a page token 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": { - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "location": "path" }, - "message": { + "maxResults": { + "type": "integer", + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "location": "query" + }, + "filter": { + "location": "query", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." } + }, + "response": { + "$ref": "LicensesListResponse" } - } - }, - "type": "object" - }, - "SslCertificateAggregatedList": { - "properties": { - "nextPageToken": { - "type": "string", - "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." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { + "parameterOrder": [ + "project" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "query" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, "type": "string" - }, - "data": { - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" }, - "type": "array" - }, - "items": { - "type": "object", - "description": "A list of SslCertificatesScopedList resources.", - "additionalProperties": { - "$ref": "SslCertificatesScopedList", - "description": "Name of the scope containing this set of SslCertificates." - } - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "default": "compute#sslCertificateAggregatedList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#sslCertificateAggregatedList for lists of SSL Certificates." - } - }, - "id": "SslCertificateAggregatedList", - "type": "object" - }, - "PacketMirroringNetworkInfo": { - "id": "PacketMirroringNetworkInfo", - "type": "object", - "properties": { - "canonicalUrl": { - "type": "string", - "description": "[Output Only] Unique identifier for the network; defined by the server." - }, - "url": { - "type": "string", - "description": "URL of the network resource." + "flatPath": "projects/{project}/global/licenses", + "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" + ], + "id": "compute.licenses.insert", + "httpMethod": "POST", + "request": { + "$ref": "License" + }, + "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. ", + "path": "projects/{project}/global/licenses" } } }, - "Subsetting": { - "id": "Subsetting", - "properties": { - "policy": { - "type": "string", - "enum": [ - "CONSISTENT_HASH_SUBSETTING", - "NONE" + "interconnects": { + "methods": { + "delete": { + "id": "compute.interconnects.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." - ] - } - }, - "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" - }, - "ExternalVpnGatewayList": { - "type": "object", - "properties": { - "etag": { - "type": "string" - }, - "kind": { - "type": "string", - "default": "compute#externalVpnGatewayList", - "description": "[Output Only] Type of resource. Always compute#externalVpnGatewayList for lists of externalVpnGateways." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "description": "A list of ExternalVpnGateway resources.", - "items": { - "$ref": "ExternalVpnGateway" + "parameterOrder": [ + "project", + "interconnect" + ], + "httpMethod": "DELETE", + "path": "projects/{project}/global/interconnects/{interconnect}", + "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "interconnect": { + "description": "Name of the interconnect to delete.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } }, - "type": "array" + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified interconnect." }, - "warning": { - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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.interconnects.list", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/global/interconnects", + "path": "projects/{project}/global/interconnects", + "parameterOrder": [ + "project" + ], + "description": "Retrieves the list of interconnect available to the specified project.", + "parameters": { + "maxResults": { + "format": "uint32", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "default": "500", + "type": "integer" + }, + "pageToken": { + "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.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." }, - "message": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "orderBy": { + "location": "query", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." } }, - "type": "object", - "description": "[Output Only] Informational warning message." - }, - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - } - }, - "description": "Response to the list request, and contains a list of externalVpnGateways.", - "id": "ExternalVpnGatewayList" - }, - "RouterNatRule": { - "type": "object", - "properties": { - "ruleNumber": { - "type": "integer", - "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.", - "format": "uint32" - }, - "action": { - "$ref": "RouterNatRuleAction", - "description": "The action to be enforced for traffic that matches this rule." - }, - "description": { - "type": "string", - "description": "An optional description of this rule." + "httpMethod": "GET", + "response": { + "$ref": "InterconnectList" + } }, - "match": { - "type": "string", - "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 == '/projects/my-project/global/hub/hub-1'\"" - } - }, - "id": "RouterNatRule" - }, - "InstancesGetEffectiveFirewallsResponse": { - "id": "InstancesGetEffectiveFirewallsResponse", - "properties": { - "firewallPolicys": { - "description": "Effective firewalls from firewall policies.", - "type": "array", - "items": { - "$ref": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" - } - }, - "firewalls": { - "items": { - "$ref": "Firewall" + "getDiagnostics": { + "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.", + "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "interconnect" + ], + "response": { + "$ref": "InterconnectsGetDiagnosticsResponse" }, - "type": "array", - "description": "Effective firewalls on the instance." - } - }, - "type": "object" - }, - "TargetVpnGatewayList": { - "id": "TargetVpnGatewayList", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "type": "object", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string" - }, - "data": { - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "parameters": { + "project": { + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." }, - "message": { + "interconnect": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Name of the interconnect resource to query.", + "required": true } }, - "description": "[Output Only] Informational warning message." - }, - "kind": { - "default": "compute#targetVpnGatewayList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways." + "id": "compute.interconnects.getDiagnostics", + "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics" }, - "items": { - "type": "array", - "items": { - "$ref": "TargetVpnGateway" + "get": { + "path": "projects/{project}/global/interconnects/{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.", + "parameterOrder": [ + "project", + "interconnect" + ], + "response": { + "$ref": "Interconnect" }, - "description": "A list of TargetVpnGateway resources." - }, - "nextPageToken": { - "type": "string", - "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." + "parameters": { + "project": { + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "interconnect": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the interconnect to return.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "id": "compute.interconnects.get", + "httpMethod": "GET" }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - } - }, - "description": "Contains a list of TargetVpnGateway resources.", - "type": "object" - }, - "DiskTypesScopedList": { - "properties": { - "warning": { - "description": "[Output Only] Informational warning which replaces the list of disk types when the list is empty.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "setLabels": { + "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.", + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "resource": { + "location": "path", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "type": "array" + "required": true, + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request." } }, - "type": "object" - }, - "diskTypes": { - "type": "array", - "description": "[Output Only] A list of disk types contained in this scope.", - "items": { - "$ref": "DiskType" - } - } - }, - "id": "DiskTypesScopedList", - "type": "object" - }, - "PacketMirroringFilter": { - "properties": { - "direction": { - "type": "string", - "description": "Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH.", - "enumDescriptions": [ - "Default, both directions are mirrored.", - "Only egress traffic is mirrored.", - "Only ingress traffic is mirrored." + "id": "compute.interconnects.setLabels", + "path": "projects/{project}/global/interconnects/{resource}/setLabels", + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "BOTH", - "EGRESS", - "INGRESS" - ] - }, - "cidrRanges": { - "type": "array", - "description": "IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored.", - "items": { - "type": "string" + "flatPath": "projects/{project}/global/interconnects/{resource}/setLabels", + "request": { + "$ref": "GlobalSetLabelsRequest" } }, - "IPProtocols": { - "items": { - "type": "string" + "insert": { + "flatPath": "projects/{project}/global/interconnects", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.interconnects.insert", + "parameters": { + "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])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } }, - "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 traffic is mirrored.", - "type": "array" - } - }, - "type": "object", - "id": "PacketMirroringFilter" - }, - "NetworkEndpointGroupList": { - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "default": "compute#networkEndpointGroupList", - "type": "string", - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupList for network endpoint group lists." - }, - "items": { - "type": "array", - "description": "A list of NetworkEndpointGroup resources.", - "items": { - "$ref": "NetworkEndpointGroup" - } + "path": "projects/{project}/global/interconnects", + "request": { + "$ref": "Interconnect" + }, + "parameterOrder": [ + "project" + ], + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "description": "Creates a Interconnect in the specified project using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "patch": { + "id": "compute.interconnects.patch", + "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "parameterOrder": [ + "project", + "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.", + "request": { + "$ref": "Interconnect" + }, + "httpMethod": "PATCH", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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.", + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - }, - "type": "object" - } + "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}", + "required": true, + "type": "string", + "location": "path" } }, - "type": "object" + "path": "projects/{project}/global/interconnects/{interconnect}" } - }, - "id": "NetworkEndpointGroupList", - "type": "object" + } }, - "ResourcePolicySnapshotSchedulePolicySnapshotProperties": { - "type": "object", - "description": "Specified snapshot properties for scheduled snapshots created by this policy.", - "id": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", - "properties": { - "labels": { - "additionalProperties": { - "type": "string" + "addresses": { + "methods": { + "setLabels": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.addresses.setLabels", + "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" }, - "type": "object", - "description": "Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty." - }, - "guestFlush": { - "type": "boolean", - "description": "Indication to perform a 'guest aware' snapshot." - }, - "chainName": { - "type": "string", - "description": "Chain name that the snapshot is created in." - }, - "storageLocations": { - "type": "array", - "items": { - "type": "string" + "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.", + "response": { + "$ref": "Operation" }, - "description": "Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional)." - } - } - }, - "NodeGroupsDeleteNodesRequest": { - "id": "NodeGroupsDeleteNodesRequest", - "type": "object", - "properties": { - "nodes": { - "type": "array", - "description": "Names of the nodes to delete.", - "items": { - "type": "string" + "path": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "Name or id of the resource for this request.", + "required": true + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "region": { + "required": true, + "description": "The region for this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } } - } - } - }, - "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": { - "healthyThreshold": { - "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", - "format": "int32", - "type": "integer" - }, - "requestPath": { - "type": "string", - "description": "The request path of the HTTPS health check request. The default value is \"/\"." - }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "checkIntervalSec": { - "type": "integer", - "format": "int32", - "description": "How often (in seconds) to send a health check. The default value is 5 seconds." - }, - "kind": { - "default": "compute#httpsHealthCheck", - "description": "Type of the resource.", - "type": "string" - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "port": { - "description": "The TCP port number for the HTTPS health check request. The default value is 443.", - "type": "integer", - "format": "int32" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "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" - }, - "unhealthyThreshold": { - "format": "int32", - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", - "type": "integer" - }, - "timeoutSec": { - "format": "int32", - "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" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - } - }, - "id": "HttpsHealthCheck" - }, - "RegionTargetHttpsProxiesSetSslCertificatesRequest": { - "properties": { - "sslCertificates": { - "items": { - "type": "string" + "insert": { + "flatPath": "projects/{project}/regions/{region}/addresses", + "path": "projects/{project}/regions/{region}/addresses", + "httpMethod": "POST", + "request": { + "$ref": "Address" }, - "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource. Currently exactly one SslCertificate resource must be specified.", - "type": "array" - } - }, - "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", - "type": "object" - }, - "RegionInstanceGroupManagersAbandonInstancesRequest": { - "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" - } - } - }, - "id": "RegionInstanceGroupManagersAbandonInstancesRequest", - "type": "object" - }, - "TargetPoolList": { - "description": "Contains a list of TargetPool resources.", - "properties": { - "items": { - "type": "array", - "description": "A list of TargetPool resources.", - "items": { - "$ref": "TargetPool" + "description": "Creates an address resource in the specified project by using the data included in the request.", + "parameters": { + "region": { + "type": "string", + "description": "Name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "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])?))", + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "parameterOrder": [ + "project", + "region" + ], + "id": "compute.addresses.insert", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" } }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "aggregatedList": { + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/aggregated/addresses", + "parameters": { + "maxResults": { + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "format": "uint32", + "default": "500", + "minimum": "0" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "orderBy": { + "location": "query", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "type": "array" + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "project": { + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" } }, - "type": "object" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "default": "compute#targetPoolList", - "description": "[Output Only] Type of resource. Always compute#targetPoolList for lists of target pools.", - "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" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - } - }, - "type": "object", - "id": "TargetPoolList" - }, - "ReservationList": { - "type": "object", - "id": "ReservationList", - "properties": { - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "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" - }, - "kind": { - "default": "compute#reservationList", - "description": "[Output Only] Type of resource.Always compute#reservationsList for listsof reservations", - "type": "string" - }, - "items": { - "description": "[Output Only] A list of Allocation resources.", - "items": { - "$ref": "Reservation" + "path": "projects/{project}/aggregated/addresses", + "httpMethod": "GET", + "id": "compute.addresses.aggregatedList", + "response": { + "$ref": "AddressAggregatedList" }, - "type": "array" + "description": "Retrieves an aggregated list of addresses.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "warning": { - "type": "object", - "properties": { - "message": { + "delete": { + "id": "compute.addresses.delete", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "address": { + "location": "path", + "description": "Name of the address resource to delete.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true }, - "code": { + "region": { + "required": true, + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "query" } }, - "description": "[Output Only] Informational warning message." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - } - }, - "OperationAggregatedList": { - "id": "OperationAggregatedList", - "type": "object", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "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" + "parameterOrder": [ + "project", + "region", + "address" + ], + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/regions/{region}/addresses/{address}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "DELETE", + "description": "Deletes the specified address resource.", + "flatPath": "projects/{project}/regions/{region}/addresses/{address}" }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - } - }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "get": { + "response": { + "$ref": "Address" + }, + "flatPath": "projects/{project}/regions/{region}/addresses/{address}", + "description": "Returns the specified address resource.", + "id": "compute.addresses.get", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "region", + "address" + ], + "path": "projects/{project}/regions/{region}/addresses/{address}", + "parameters": { + "region": { + "description": "Name of the region for this request.", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "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.", + "address": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "location": "path", + "description": "Name of the address resource to return.", + "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])?))", + "required": true, + "location": "path", + "description": "Project ID for this request.", "type": "string" } } }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" + "list": { + "id": "compute.addresses.list", + "httpMethod": "GET", + "flatPath": "projects/{project}/regions/{region}/addresses", + "parameterOrder": [ + "project", + "region" + ], + "description": "Retrieves a list of addresses contained within the specified region.", + "path": "projects/{project}/regions/{region}/addresses", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "AddressList" }, - "type": "array" - }, - "items": { - "type": "object", - "description": "[Output Only] A map of scoped operation lists.", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of operations.", - "$ref": "OperationsScopedList" + "parameters": { + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "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.", + "type": "string", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "minimum": "0", + "location": "query", + "type": "integer", + "default": "500" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "region": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "Name of the region for this request.", + "required": true + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "description": "Project ID for this request." + } } - }, - "kind": { - "description": "[Output Only] Type of resource. Always `compute#operationAggregatedList` for aggregated lists of operations.", - "type": "string", - "default": "compute#operationAggregatedList" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" } } }, - "TargetVpnGatewaysScopedList": { - "id": "TargetVpnGatewaysScopedList", - "properties": { - "warning": { - "properties": { - "data": { - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "regionAutoscalers": { + "methods": { + "delete": { + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string" + "region": { + "description": "Name of the region scoping this request.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "autoscaler": { + "type": "string", + "description": "Name of the autoscaler to delete.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" } }, - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", - "type": "object" + "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "autoscaler" + ], + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified autoscaler.", + "id": "compute.regionAutoscalers.delete" }, - "targetVpnGateways": { - "description": "[Output Only] A list of target VPN gateways contained in this scope.", - "type": "array", - "items": { - "$ref": "TargetVpnGateway" - } - } - }, - "type": "object" - }, - "TargetGrpcProxyList": { - "id": "TargetGrpcProxyList", - "type": "object", - "properties": { - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "get": { + "description": "Returns the specified autoscaler.", + "httpMethod": "GET", + "response": { + "$ref": "Autoscaler" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "region", + "autoscaler" + ], + "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "parameters": { + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" + "autoscaler": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the autoscaler to return." }, - "code": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "required": true, + "description": "Name of the region scoping this request." } }, - "type": "object" + "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "id": "compute.regionAutoscalers.get" }, - "items": { - "description": "A list of TargetGrpcProxy resources.", - "items": { - "$ref": "TargetGrpcProxy" + "list": { + "httpMethod": "GET", + "response": { + "$ref": "RegionAutoscalerList" }, - "type": "array" - }, - "kind": { - "default": "compute#targetGrpcProxyList", - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies." + "id": "compute.regionAutoscalers.list", + "parameters": { + "project": { + "location": "path", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "type": "integer", + "location": "query", + "minimum": "0" + }, + "region": { + "description": "Name of the region scoping this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "path": "projects/{project}/regions/{region}/autoscalers", + "description": "Retrieves a list of autoscalers contained within the specified region.", + "parameterOrder": [ + "project", + "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" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - } - }, - "SslPoliciesListAvailableFeaturesResponse": { - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" + "patch": { + "path": "projects/{project}/regions/{region}/autoscalers", + "parameterOrder": [ + "project", + "region" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "Autoscaler" + }, + "id": "compute.regionAutoscalers.patch", + "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.", + "parameters": { + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "autoscaler": { + "location": "query", + "description": "Name of the autoscaler to patch.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "region": { + "location": "path", + "type": "string", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true + } + }, + "httpMethod": "PATCH", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "response": { + "$ref": "Operation" } - } - }, - "type": "object", - "id": "SslPoliciesListAvailableFeaturesResponse" - }, - "NetworkEndpointGroup": { - "properties": { - "zone": { - "type": "string", - "description": "[Output Only] The URL of the zone where the network endpoint group is located." - }, - "cloudFunction": { - "$ref": "NetworkEndpointGroupCloudFunction", - "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set." }, - "annotations": { - "additionalProperties": { - "type": "string" + "update": { + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "region": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "Name of the region scoping this request." + }, + "autoscaler": { + "location": "query", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name of the autoscaler to update." + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } }, - "type": "object", - "description": "Metadata defined as annotations on the network endpoint group." - }, - "subnetwork": { - "description": "Optional URL of the subnetwork to which all network endpoints in the NEG belong.", - "type": "string" - }, - "cloudRun": { - "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set.", - "$ref": "NetworkEndpointGroupCloudRun" - }, - "size": { - "type": "integer", - "format": "int32", - "description": "[Output only] Number of network endpoints in the network endpoint group." - }, - "network": { - "type": "string", - "description": "The URL of the network to which all network endpoints in the NEG belong. Uses \"default\" project network if unspecified." - }, - "id": { - "format": "uint64", - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "appEngine": { - "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set.", - "$ref": "NetworkEndpointGroupAppEngine" - }, - "defaultPort": { - "format": "int32", - "type": "integer", - "description": "The default port used if the port number is not specified in the network endpoint." - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#networkEndpointGroup for network endpoint group.", - "default": "compute#networkEndpointGroup" - }, - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "region": { - "type": "string", - "description": "[Output Only] The URL of the region where the network endpoint group is located." - }, - "networkEndpointType": { - "type": "string", - "enum": [ - "GCE_VM_IP", - "GCE_VM_IP_PORT", - "INTERNET_FQDN_PORT", - "INTERNET_IP_PORT", - "NON_GCP_PRIVATE_IP_PORT", - "SERVERLESS" + "request": { + "$ref": "Autoscaler" + }, + "path": "projects/{project}/regions/{region}/autoscalers", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "PUT", + "description": "Updates an autoscaler in the specified project using the data included in the request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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 handled by specified serverless infrastructure." + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region" ], - "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT." - } - }, - "type": "object", - "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, see Setting up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs, or Setting up external HTTP(S) Load Balancing with serverless NEGs.", - "id": "NetworkEndpointGroup" - }, - "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { - "type": "object", - "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy", - "properties": { - "name": { - "type": "string", - "description": "[Output Only] The name of the firewall policy." - }, - "rules": { - "type": "array", - "description": "The rules that apply to the network.", - "items": { - "$ref": "FirewallPolicyRule" - } - }, - "displayName": { - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", - "type": "string" - }, - "shortName": { - "type": "string", - "description": "[Output Only] The short name of the firewall policy." + "id": "compute.regionAutoscalers.update" }, - "type": { - "enumDescriptions": [ - "", - "", - "" + "insert": { + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "request": { + "$ref": "Autoscaler" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "[Output Only] The type of the firewall policy.", - "type": "string", - "enum": [ - "HIERARCHY", - "NETWORK", - "UNSPECIFIED" - ] + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "path": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "POST", + "description": "Creates an autoscaler in the specified project using the data included in the request.", + "parameterOrder": [ + "project", + "region" + ], + "id": "compute.regionAutoscalers.insert", + "response": { + "$ref": "Operation" + } } } }, - "CacheInvalidationRule": { - "id": "CacheInvalidationRule", - "properties": { - "path": { - "type": "string" - }, - "host": { - "type": "string", - "description": "If set, this invalidation rule will only apply to requests with a Host header matching host." - } - }, - "type": "object" - }, - "TargetHttpsProxyAggregatedList": { - "properties": { - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "unreachables": { - "type": "array", - "description": "[Output Only] Unreachable resources.", - "items": { - "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" - }, - "kind": { - "type": "string", - "default": "compute#targetHttpsProxyAggregatedList", - "description": "[Output Only] Type of resource. Always compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "backendServices": { + "methods": { + "setIamPolicy": { + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "parameters": { + "resource": { + "required": true, + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." - }, - "data": { - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "location": "path", + "required": true, + "description": "Project ID for this request." } }, - "type": "object" - }, - "items": { - "additionalProperties": { - "$ref": "TargetHttpsProxiesScopedList", - "description": "Name of the scope containing this set of TargetHttpsProxies." + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/backendServices/{resource}/setIamPolicy", + "response": { + "$ref": "Policy" }, - "description": "A list of TargetHttpsProxiesScopedList resources.", - "type": "object" - } - }, - "id": "TargetHttpsProxyAggregatedList", - "type": "object" - }, - "License": { - "properties": { - "licenseCode": { - "description": "[Output Only] The unique code used to attach this license to images, snapshots, and disks.", - "format": "uint64", - "type": "string" - }, - "transferable": { - "type": "boolean", - "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." - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "resourceRequirements": { - "$ref": "LicenseResourceRequirements" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "type": "string", - "description": "An optional textual description of the resource; provided by the client when the resource is created." - }, - "kind": { - "default": "compute#license", - "description": "[Output Only] Type of resource. Always compute#license for licenses.", - "type": "string" + "httpMethod": "POST", + "path": "projects/{project}/global/backendServices/{resource}/setIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.backendServices.setIamPolicy" }, - "name": { - "annotations": { - "required": [ - "compute.images.insert" - ] + "setEdgeSecurityPolicy": { + "path": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy", + "description": "Sets the edge security policy for the specified backend service.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.backendServices.setEdgeSecurityPolicy", + "parameters": { + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "backendService": { + "type": "string", + "required": true, + "description": "Name of the BackendService resource to which the edge security policy should be set. The name should conform to RFC1035.", + "location": "path" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } }, - "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])?", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "chargesUseFee": { - "type": "boolean", - "description": "[Output Only] Deprecated. This field no longer reflects whether a license charges a usage fee." - } - }, - "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. ", - "id": "License", - "type": "object" - }, - "InstanceGroupManagersScopedList": { - "id": "InstanceGroupManagersScopedList", - "properties": { - "instanceGroupManagers": { - "items": { - "$ref": "InstanceGroupManager" + "httpMethod": "POST", + "response": { + "$ref": "Operation" }, - "description": "[Output Only] The list of managed instance groups that are contained in the specified project and zone.", - "type": "array" - }, - "warning": { - "properties": { - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "type": "string" - }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "flatPath": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "parameterOrder": [ + "project", + "backendService" + ] + }, + "insert": { + "parameterOrder": [ + "project" + ], + "httpMethod": "POST", + "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview .", + "flatPath": "projects/{project}/global/backendServices", + "path": "projects/{project}/global/backendServices", + "id": "compute.backendServices.insert", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true }, - "message": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" } }, - "type": "object", - "description": "[Output Only] The warning that replaces the list of managed instance groups when the list is empty." - } - }, - "type": "object" - }, - "Instance": { - "id": "Instance", - "type": "object", - "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.", - "properties": { - "lastStopTimestamp": { - "type": "string", - "description": "[Output Only] Last stop timestamp in RFC3339 text format." - }, - "serviceAccounts": { - "items": { - "$ref": "ServiceAccount" - }, - "type": "array", - "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." - }, - "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" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "confidentialInstanceConfig": { - "$ref": "ConfidentialInstanceConfig" - }, - "deletionProtection": { - "type": "boolean", - "description": "Whether the resource should be protected against deletion." - }, - "scheduling": { - "$ref": "Scheduling", - "description": "Sets the scheduling options for this instance." - }, - "zone": { - "type": "string", - "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." - }, - "guestAccelerators": { - "description": "A list of the type and count of accelerator cards attached to the instance.", - "items": { - "$ref": "AcceleratorConfig" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "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.", - "format": "byte", - "type": "string" - }, - "cpuPlatform": { - "type": "string", - "description": "[Output Only] The CPU platform used by this instance." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "displayDevice": { - "$ref": "DisplayDevice", - "description": "Enables display device for the instance." + "request": { + "$ref": "BackendService" + } }, - "disks": { - "items": { - "$ref": "AttachedDisk" + "getHealth": { + "path": "projects/{project}/global/backendServices/{backendService}/getHealth", + "description": "Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "backendService": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the BackendService resource to which the queried instance belongs.", + "required": true, + "location": "path", + "type": "string" + } }, - "description": "Array of disks associated with this instance. Persistent disks must be created before you can assign them.", - "type": "array" - }, - "advancedMachineFeatures": { - "$ref": "AdvancedMachineFeatures", - "description": "Controls for advanced machine-related behavior features." - }, - "metadata": { - "description": "The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.", - "$ref": "Metadata" - }, - "shieldedInstanceIntegrityPolicy": { - "$ref": "ShieldedInstanceIntegrityPolicy" - }, - "reservationAffinity": { - "description": "Specifies the reservations that this instance can consume from.", - "$ref": "ReservationAffinity" - }, - "statusMessage": { - "type": "string", - "description": "[Output Only] An optional, human-readable explanation of the status." - }, - "resourcePolicies": { - "items": { - "type": "string" + "parameterOrder": [ + "project", + "backendService" + ], + "httpMethod": "POST", + "response": { + "$ref": "BackendServiceGroupHealth" }, - "description": "Resource policies applied to this instance.", - "type": "array" - }, - "tags": { - "$ref": "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." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#instance for instances.", - "default": "compute#instance" - }, - "hostname": { - "type": "string", - "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." - }, - "name": { - "annotations": { - "required": [ - "compute.instances.insert" - ] + "flatPath": "projects/{project}/global/backendServices/{backendService}/getHealth", + "id": "compute.backendServices.getHealth", + "request": { + "$ref": "ResourceGroupReference" }, - "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])?", - "type": "string" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "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. 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 Nanny 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)." + "getIamPolicy": { + "flatPath": "projects/{project}/global/backendServices/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "path": "projects/{project}/global/backendServices/{resource}/getIamPolicy", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" + "response": { + "$ref": "Policy" + }, + "id": "compute.backendServices.getIamPolicy", + "parameters": { + "resource": { + "required": true, + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "format": "int32", + "type": "integer" + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "parameterOrder": [ + "project", + "resource" ] }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" + "delete": { + "path": "projects/{project}/global/backendServices/{backendService}", + "description": "Deletes the specified BackendService resource.", + "response": { + "$ref": "Operation" }, - "description": "Labels to apply to this instance. These can be later modified by the setLabels method." - }, - "startRestricted": { - "type": "boolean", - "description": "[Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity." - }, - "lastSuspendedTimestamp": { - "description": "[Output Only] Last suspended timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "lastStartTimestamp": { - "description": "[Output Only] Last start timestamp in RFC3339 text format.", - "type": "string" - }, - "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" - } - }, - "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." + "httpMethod": "DELETE", + "parameters": { + "backendService": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path", + "description": "Name of the BackendService resource to delete." + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "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])?))", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path" + } + }, + "flatPath": "projects/{project}/global/backendServices/{backendService}", + "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" + "id": "compute.backendServices.delete", + "parameterOrder": [ + "project", + "backendService" ] }, - "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.", - "format": "byte", - "type": "string" - }, - "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.", - "annotations": { - "required": [ - "compute.instances.insert" - ] + "get": { + "parameters": { + "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])?))", + "type": "string", + "required": true, + "location": "path", + "description": "Project ID for this request." + }, + "backendService": { + "description": "Name of the BackendService resource to return.", + "location": "path", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } }, - "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" - }, - "shieldedInstanceConfig": { - "$ref": "ShieldedInstanceConfig" - } - } - }, - "ConsistentHashLoadBalancerSettingsHttpCookie": { - "description": "The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash.", - "properties": { - "path": { - "type": "string", - "description": "Path to set for the cookie." - }, - "name": { - "description": "Name of the cookie.", - "type": "string" + "response": { + "$ref": "BackendService" + }, + "parameterOrder": [ + "project", + "backendService" + ], + "description": "Returns the specified BackendService resource. Gets a list of available backend services.", + "path": "projects/{project}/global/backendServices/{backendService}", + "id": "compute.backendServices.get", + "flatPath": "projects/{project}/global/backendServices/{backendService}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET" }, - "ttl": { - "$ref": "Duration", - "description": "Lifetime of the cookie." - } - }, - "id": "ConsistentHashLoadBalancerSettingsHttpCookie", - "type": "object" - }, - "InstanceGroupsListInstancesRequest": { - "type": "object", - "properties": { - "instanceState": { - "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." + "addSignedUrlKey": { + "response": { + "$ref": "Operation" + }, + "id": "compute.backendServices.addSignedUrlKey", + "request": { + "$ref": "SignedUrlKey" + }, + "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request." + }, + "backendService": { + "location": "path", + "type": "string", + "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "required": true + } + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ALL", - "RUNNING" + "flatPath": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", + "parameterOrder": [ + "project", + "backendService" ], - "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." - } - }, - "id": "InstanceGroupsListInstancesRequest" - }, - "ResourcePolicyInstanceSchedulePolicy": { - "description": "An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance.", - "properties": { - "vmStopSchedule": { - "description": "Specifies the schedule for stopping instances.", - "$ref": "ResourcePolicyInstanceSchedulePolicySchedule" + "description": "Adds a key for validating requests with signed URLs for this backend service." }, - "timeZone": { - "type": "string", - "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: http://en.wikipedia.org/wiki/Tz_database." - }, - "expirationTime": { - "description": "The expiration time of the schedule. The timestamp is an RFC3339 string.", - "type": "string" - }, - "vmStartSchedule": { - "description": "Specifies the schedule for starting instances.", - "$ref": "ResourcePolicyInstanceSchedulePolicySchedule" - }, - "startTime": { - "type": "string", - "description": "The start time of the schedule. The timestamp is an RFC3339 string." - } - }, - "type": "object", - "id": "ResourcePolicyInstanceSchedulePolicy" - }, - "PreservedStatePreservedDisk": { - "type": "object", - "id": "PreservedStatePreservedDisk", - "properties": { - "autoDelete": { - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ], - "type": "string", - "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.", - "enumDescriptions": [ - "", - "" - ] - }, - "mode": { - "enum": [ - "READ_ONLY", - "READ_WRITE" + "setSecurityPolicy": { + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "SecurityPolicyReference" + }, + "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", + "parameterOrder": [ + "project", + "backendService" ], - "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." + "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." - }, - "source": { - "type": "string", - "description": "The URL of the disk resource that is stateful and should be attached to the VM instance." - } - } - }, - "NodeType": { - "id": "NodeType", - "properties": { - "description": { - "description": "[Output Only] An optional textual description of the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "zone": { - "type": "string", - "description": "[Output Only] The name of the zone where the node type resides, such as us-central1-a." - }, - "guestCpus": { - "type": "integer", - "description": "[Output Only] The number of virtual CPUs that are available to the node type.", - "format": "int32" - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this node type." - }, - "memoryMb": { - "format": "int32", - "type": "integer", - "description": "[Output Only] The amount of physical memory available to the node type, defined in MB." - }, - "kind": { - "description": "[Output Only] The type of the resource. Always compute#nodeType for node types.", - "type": "string", - "default": "compute#nodeType" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "localSsdGb": { - "description": "[Output Only] Local SSD available to the node type, defined in GB.", - "format": "int32", - "type": "integer" - }, - "cpuPlatform": { - "type": "string", - "description": "[Output Only] The CPU platform used by this node type." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - } - }, - "type": "object", - "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." - }, - "ResourcePoliciesScopedList": { - "id": "ResourcePoliciesScopedList", - "type": "object", - "properties": { - "resourcePolicies": { - "items": { - "$ref": "ResourcePolicy" + "httpMethod": "POST", + "parameters": { + "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])?))", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "backendService": { + "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", + "type": "string", + "required": true, + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } }, - "description": "A list of resourcePolicies contained in this scope.", - "type": "array" + "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview", + "id": "compute.backendServices.setSecurityPolicy" }, - "warning": { - "type": "object", - "properties": { - "code": { + "list": { + "response": { + "$ref": "BackendServiceList" + }, + "path": "projects/{project}/global/backendServices", + "description": "Retrieves the list of BackendService resources available to the specified project.", + "parameters": { + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "query" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "location": "query", + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "type": "integer" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", "type": "string" }, - "data": { - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "project": { + "type": "string", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." } }, - "description": "Informational warning which replaces the list of resourcePolicies when the list is empty." - } - } - }, - "DiskTypeAggregatedList": { - "type": "object", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "id": "compute.backendServices.list", + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/global/backendServices", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "unreachables": { - "items": { - "type": "string" + "update": { + "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.", + "response": { + "$ref": "Operation" }, - "description": "[Output Only] Unreachable resources.", - "type": "array" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "flatPath": "projects/{project}/global/backendServices/{backendService}", + "id": "compute.backendServices.update", + "parameters": { + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "backendService": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the BackendService resource to update." + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "request": { + "$ref": "BackendService" + }, + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/backendServices/{backendService}" }, - "items": { - "type": "object", - "additionalProperties": { - "$ref": "DiskTypesScopedList", - "description": "[Output Only] Name of the scope containing this set of disk types." + "deleteSignedUrlKey": { + "parameterOrder": [ + "project", + "backendService", + "keyName" + ], + "flatPath": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", + "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", + "parameters": { + "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])?))", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "keyName": { + "type": "string", + "description": "The name of the Signed URL Key to delete.", + "required": true, + "location": "query" + }, + "backendService": { + "location": "path", + "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "required": true, + "type": "string" + } }, - "description": "A list of DiskTypesScopedList resources." + "id": "compute.backendServices.deleteSignedUrlKey", + "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 service.", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + } }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - }, - "type": "object" - } + "aggregatedList": { + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/aggregated/backendServices", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "parameters": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "pageToken": { "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." }, - "message": { + "includeAllScopes": { + "type": "boolean", + "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" + }, + "project": { + "location": "path", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "maxResults": { + "location": "query", + "minimum": "0", + "format": "uint32", + "type": "integer", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" } }, - "type": "object" + "path": "projects/{project}/aggregated/backendServices", + "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.", + "id": "compute.backendServices.aggregatedList", + "response": { + "$ref": "BackendServiceAggregatedList" + } }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#diskTypeAggregatedList.", - "default": "compute#diskTypeAggregatedList" - } - }, - "id": "DiskTypeAggregatedList" - }, - "LicenseResourceRequirements": { - "properties": { - "minMemoryMb": { - "description": "Minimum memory required to use the Instance. Enforced at Instance creation and Instance start.", - "format": "int32", - "type": "integer" - }, - "minGuestCpuCount": { - "type": "integer", - "description": "Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start.", - "format": "int32" - } - }, - "id": "LicenseResourceRequirements", - "type": "object" - }, - "SslCertificateSelfManagedSslCertificate": { - "description": "Configuration and status of a self-managed SSL certificate.", - "id": "SslCertificateSelfManagedSslCertificate", - "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": { - "type": "string", - "description": "A write-only private key in PEM format. Only insert requests will include this field." - } - }, - "type": "object" - }, - "FixedOrPercent": { - "id": "FixedOrPercent", - "properties": { - "fixed": { - "format": "int32", - "description": "Specifies a fixed number of VM instances. This must be a positive integer.", - "type": "integer" - }, - "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. ", - "format": "int32", - "type": "integer" - }, - "percent": { - "type": "integer", - "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%.", - "format": "int32" - } - }, - "type": "object", - "description": "Encapsulates numeric value that can be either absolute or relative." - }, - "RegionInstanceGroupManagersListInstancesResponse": { - "type": "object", - "id": "RegionInstanceGroupManagersListInstancesResponse", - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "managedInstances": { - "type": "array", - "description": "A list of managed instances.", - "items": { - "$ref": "ManagedInstance" - } - } - } - }, - "InstanceGroupManagersAbandonInstancesRequest": { - "id": "InstanceGroupManagersAbandonInstancesRequest", - "type": "object", - "properties": { - "instances": { - "type": "array", - "items": { - "type": "string" + "patch": { + "parameters": { + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true + }, + "backendService": { + "type": "string", + "required": true, + "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" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } }, - "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]." - } - } - }, - "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { - "type": "object", - "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", - "properties": { - "enable": { - "description": "If set to true, enables CAAP for L7 DDoS detection.", - "type": "boolean" - }, - "ruleVisibility": { - "enum": [ - "PREMIUM", - "STANDARD" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "enumDescriptions": [ - "", - "" + "parameterOrder": [ + "project", + "backendService" ], - "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules." - } - }, - "description": "Configuration options for L7 DDoS detection." - }, - "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.", - "items": { - "type": "string" + "flatPath": "projects/{project}/global/backendServices/{backendService}", + "path": "projects/{project}/global/backendServices/{backendService}", + "response": { + "$ref": "Operation" }, - "type": "array" + "id": "compute.backendServices.patch", + "request": { + "$ref": "BackendService" + }, + "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.", + "httpMethod": "PATCH" } } }, - "SslCertificatesScopedList": { - "id": "SslCertificatesScopedList", - "properties": { - "sslCertificates": { - "items": { - "$ref": "SslCertificate" - }, - "description": "List of SslCertificates contained in this scope.", - "type": "array" - }, - "warning": { - "properties": { - "message": { + "externalVpnGateways": { + "methods": { + "list": { + "parameterOrder": [ + "project" + ], + "httpMethod": "GET", + "id": "compute.externalVpnGateways.list", + "parameters": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "format": "uint32", + "minimum": "0", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "pageToken": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" }, - "code": { + "project": { + "description": "Project ID for this request.", + "location": "path", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true }, - "data": { - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" } }, - "type": "object", - "description": "Informational warning which replaces the list of backend services when the list is empty." - } - }, - "type": "object" - }, - "ResourcePolicySnapshotSchedulePolicySchedule": { - "properties": { - "dailySchedule": { - "$ref": "ResourcePolicyDailyCycle" - }, - "weeklySchedule": { - "$ref": "ResourcePolicyWeeklyCycle" + "response": { + "$ref": "ExternalVpnGatewayList" + }, + "flatPath": "projects/{project}/global/externalVpnGateways", + "description": "Retrieves the list of ExternalVpnGateway available to the specified project.", + "path": "projects/{project}/global/externalVpnGateways", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "hourlySchedule": { - "$ref": "ResourcePolicyHourlyCycle" - } - }, - "type": "object", - "description": "A schedule for disks where the schedueled operations are performed.", - "id": "ResourcePolicySnapshotSchedulePolicySchedule" - }, - "RegionDisksAddResourcePoliciesRequest": { - "type": "object", - "properties": { - "resourcePolicies": { - "items": { - "type": "string" + "setLabels": { + "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels", + "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.", + "response": { + "$ref": "Operation" }, - "description": "Resource policies to be added to this disk.", - "type": "array" - } - }, - "id": "RegionDisksAddResourcePoliciesRequest" - }, - "StatefulPolicyPreservedState": { - "description": "Configuration of preserved resources.", - "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.", - "additionalProperties": { - "$ref": "StatefulPolicyPreservedStateDiskDevice" + "request": { + "$ref": "GlobalSetLabelsRequest" }, - "type": "object" - } - }, - "id": "StatefulPolicyPreservedState", - "type": "object" - }, - "InstancesSetMachineResourcesRequest": { - "type": "object", - "properties": { - "guestAccelerators": { - "type": "array", - "description": "A list of the type and count of accelerator cards attached to the instance.", - "items": { - "$ref": "AcceleratorConfig" - } - } - }, - "id": "InstancesSetMachineResourcesRequest" - }, - "DiskInstantiationConfig": { - "description": "A specification of the desired way to instantiate a disk in the instance template when its created from a source instance.", - "properties": { - "instantiateFrom": { - "enum": [ - "ATTACH_READ_ONLY", - "BLANK", - "CUSTOM_IMAGE", - "DEFAULT", - "DO_NOT_INCLUDE", - "SOURCE_IMAGE", - "SOURCE_IMAGE_FAMILY" + "parameterOrder": [ + "project", + "resource" ], - "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." + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "type": "string" + }, + "resource": { + "required": true, + "description": "Name or id of the resource for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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. " - }, - "deviceName": { - "description": "Specifies the device name of the disk to which the configurations apply to.", - "type": "string" - }, - "customImage": { - "type": "string", - "description": "The custom source image to be used to restore this disk when instantiating this instance template." + "id": "compute.externalVpnGateways.setLabels", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/setLabels" }, - "autoDelete": { - "type": "boolean", - "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": "object", - "id": "DiskInstantiationConfig" - }, - "ServerBinding": { - "type": "object", - "id": "ServerBinding", - "properties": { - "type": { - "type": "string", - "enum": [ - "RESTART_NODE_ON_ANY_SERVER", - "RESTART_NODE_ON_MINIMAL_SERVERS", - "SERVER_BINDING_TYPE_UNSPECIFIED" + "get": { + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "externalVpnGateway": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the externalVpnGateway to return.", + "required": true + } + }, + "parameterOrder": [ + "project", + "externalVpnGateway" ], - "enumDescriptions": [ - "Node may associate with any physical server over its lifetime.", - "Node may associate with minimal physical servers over its lifetime.", - "" - ] - } - } - }, - "HealthCheckServicesList": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "id": "compute.externalVpnGateways.get", + "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.", + "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", + "httpMethod": "GET", + "response": { + "$ref": "ExternalVpnGateway" + } }, - "items": { - "description": "A list of HealthCheckService resources.", - "items": { - "$ref": "HealthCheckService" + "insert": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/externalVpnGateways", + "parameterOrder": [ + "project" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } }, - "type": "array" - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#healthCheckServicesList for lists of HealthCheckServices.", - "type": "string", - "default": "compute#healthCheckServicesList" - }, - "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": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "flatPath": "projects/{project}/global/externalVpnGateways", + "response": { + "$ref": "Operation" + }, + "id": "compute.externalVpnGateways.insert", + "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.", + "request": { + "$ref": "ExternalVpnGateway" + }, + "httpMethod": "POST" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "testIamPermissions": { + "response": { + "$ref": "TestPermissionsResponse" + }, + "description": "Returns permissions that a caller has on the specified resource.", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions", + "parameters": { + "project": { + "required": true, + "location": "path", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "type": "array" + "resource": { + "description": "Name or id of the resource for this request.", + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "id": "compute.externalVpnGateways.testIamPermissions" + }, + "delete": { + "parameterOrder": [ + "project", + "externalVpnGateway" + ], + "httpMethod": "DELETE", + "id": "compute.externalVpnGateways.delete", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", + "description": "Deletes the specified externalVpnGateway.", + "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", + "parameters": { + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "project": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" + }, + "externalVpnGateway": { + "required": true, + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the externalVpnGateways to delete." } } } - }, - "id": "HealthCheckServicesList" - }, - "InstanceGroupManagerAutoHealingPolicy": { - "properties": { - "healthCheck": { - "description": "The URL for the health check that signals autohealing.", - "type": "string" - }, - "initialDelaySec": { - "format": "int32", - "description": "The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].", - "type": "integer" - } - }, - "id": "InstanceGroupManagerAutoHealingPolicy", - "type": "object" - }, - "RouterAdvertisedIpRange": { - "type": "object", - "id": "RouterAdvertisedIpRange", - "properties": { - "range": { - "description": "The IP range to advertise. The value must be a CIDR-formatted string.", - "type": "string" - }, - "description": { - "description": "User-specified description for the IP range.", - "type": "string" - } - }, - "description": "Description-tagged IP ranges for the router to advertise." - }, - "ShieldedInstanceIntegrityPolicy": { - "description": "The policy describes the baseline against which Instance boot integrity is measured.", - "properties": { - "updateAutoLearnPolicy": { - "description": "Updates the integrity policy baseline using the measurements from the VM instance's most recent boot.", - "type": "boolean" - } - }, - "id": "ShieldedInstanceIntegrityPolicy", - "type": "object" + } }, - "InstanceAggregatedList": { - "properties": { - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "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": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "additionalProperties": { - "$ref": "InstancesScopedList", - "description": "[Output Only] Name of the scope containing this set of instances." + "autoscalers": { + "methods": { + "get": { + "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.", + "parameterOrder": [ + "project", + "zone", + "autoscaler" + ], + "httpMethod": "GET", + "response": { + "$ref": "Autoscaler" }, - "description": "An object that contains a list of instances scoped by zone.", - "type": "object" - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#instanceAggregatedList for aggregated lists of Instance resources.", - "default": "compute#instanceAggregatedList", - "type": "string" + "parameters": { + "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])?))", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "autoscaler": { + "required": true, + "type": "string", + "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" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + } + }, + "id": "compute.autoscalers.get" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "aggregatedList": { + "description": "Retrieves an aggregated list of autoscalers.", + "parameters": { + "pageToken": { + "location": "query", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "default": "500", + "type": "integer", + "location": "query", + "format": "uint32", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", "type": "string" }, - "data": { - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "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.", + "type": "boolean", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "required": true } }, - "type": "object" + "path": "projects/{project}/aggregated/autoscalers", + "flatPath": "projects/{project}/aggregated/autoscalers", + "httpMethod": "GET", + "response": { + "$ref": "AutoscalerAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.autoscalers.aggregatedList", + "parameterOrder": [ + "project" + ] }, - "unreachables": { - "type": "array", - "items": { - "type": "string" + "update": { + "response": { + "$ref": "Operation" }, - "description": "[Output Only] Unreachable resources." - } - }, - "id": "InstanceAggregatedList", - "type": "object" - }, - "RegionInstanceGroupList": { - "id": "RegionInstanceGroupList", - "type": "object", - "description": "Contains a list of InstanceGroup resources.", - "properties": { - "items": { - "description": "A list of InstanceGroup resources.", - "items": { - "$ref": "InstanceGroup" + "flatPath": "projects/{project}/zones/{zone}/autoscalers", + "request": { + "$ref": "Autoscaler" }, - "type": "array" - }, - "warning": { - "properties": { - "code": { - "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "id": "compute.autoscalers.update", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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.", + "autoscaler": { + "description": "Name of the autoscaler to update.", + "location": "query", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string" }, - "data": { - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "zone": { + "required": true, + "type": "string", + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "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])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path" } }, - "type": "object", - "description": "[Output Only] Informational warning message." + "httpMethod": "PUT", + "path": "projects/{project}/zones/{zone}/autoscalers", + "description": "Updates an autoscaler in the specified project using the data included in the request.", + "parameterOrder": [ + "project", + "zone" + ] }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "kind": { - "type": "string", - "default": "compute#regionInstanceGroupList", - "description": "The resource type." - }, - "nextPageToken": { - "type": "string", - "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." - } - } - }, - "NetworksRemovePeeringRequest": { - "id": "NetworksRemovePeeringRequest", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the peering, which should conform to RFC1035." - } - } - }, - "InstanceGroupManagersListErrorsResponse": { - "id": "InstanceGroupManagersListErrorsResponse", - "properties": { - "nextPageToken": { - "type": "string", - "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." - }, - "items": { - "type": "array", - "items": { - "$ref": "InstanceManagedByIgmError" - }, - "description": "[Output Only] The list of errors of the managed instance group." - } - }, - "type": "object" - }, - "InstanceGroupManager": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", - "format": "uint64" - }, - "currentActions": { - "$ref": "InstanceGroupManagerActionsSummary", - "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." - }, - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.", - "type": "string", - "default": "compute#instanceGroupManager" - }, - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this managed instance group in RFC3339 text format.", - "type": "string" - }, - "autoHealingPolicies": { - "description": "The autohealing policy for this managed instance group. You can specify only one value.", - "items": { - "$ref": "InstanceGroupManagerAutoHealingPolicy" + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "description": "Deletes the specified autoscaler.", + "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "parameters": { + "autoscaler": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the autoscaler to delete.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the zone for this request." + }, + "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])?))", + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } }, - "type": "array" - }, - "region": { - "description": "[Output Only] The URL of the region where the managed instance group resides (for regional resources).", - "type": "string" - }, - "namedPorts": { - "type": "array", - "items": { - "$ref": "NamedPort" + "id": "compute.autoscalers.delete", + "parameterOrder": [ + "project", + "zone", + "autoscaler" + ], + "response": { + "$ref": "Operation" }, - "description": "Named ports configured for the Instance Groups complementary to this Instance Group Manager." + "httpMethod": "DELETE" }, - "versions": { - "items": { - "$ref": "InstanceGroupManagerVersion" + "insert": { + "path": "projects/{project}/zones/{zone}/autoscalers", + "flatPath": "projects/{project}/zones/{zone}/autoscalers", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } }, - "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" - }, - "targetPools": { - "items": { - "type": "string" + "httpMethod": "POST", + "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.", + "response": { + "$ref": "Operation" }, - "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" - }, - "statefulPolicy": { - "$ref": "StatefulPolicy", - "description": "Stateful configuration for this Instanced Group Manager" - }, - "distributionPolicy": { - "description": "Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.", - "$ref": "DistributionPolicy" - }, - "updatePolicy": { - "description": "The update policy for this managed instance group.", - "$ref": "InstanceGroupManagerUpdatePolicy" + "id": "compute.autoscalers.insert", + "request": { + "$ref": "Autoscaler" + } }, - "name": { - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert", - "compute.regionInstanceGroupManagers.insert" - ] + "list": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "AutoscalerList" }, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "description": "The name of the managed instance group. The name must be 1-63 characters long, and comply with RFC1035.", - "type": "string" - }, - "instanceTemplate": { - "type": "string", - "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." - }, - "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" - }, - "instanceGroup": { - "description": "[Output Only] The URL of the Instance Group resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] The URL for this managed instance group. The server defines this URL.", - "type": "string" - }, - "status": { - "$ref": "InstanceGroupManagerStatus", - "description": "[Output Only] The status of this managed instance group." - }, - "baseInstanceName": { - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert" - ] + "flatPath": "projects/{project}/zones/{zone}/autoscalers", + "parameterOrder": [ + "project", + "zone" + ], + "httpMethod": "GET", + "id": "compute.autoscalers.list", + "description": "Retrieves a list of autoscalers contained within the specified zone.", + "parameters": { + "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" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "project": { + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "location": "query", + "format": "uint32", + "minimum": "0" + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string", + "location": "path", + "description": "Name of the zone for this request." + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + } }, - "pattern": "[a-z][-a-z0-9]{0,57}", - "type": "string", - "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." - }, - "targetSize": { - "format": "int32", - "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.", - "type": "integer", - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert", - "compute.regionInstanceGroupManagers.insert" - ] - } - }, - "zone": { - "description": "[Output Only] The URL of a zone where the managed instance group is located (for zonal resources).", - "type": "string" + "path": "projects/{project}/zones/{zone}/autoscalers" }, - "description": { - "description": "An optional description of this resource.", - "type": "string" - } - }, - "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." - }, - "RouterBgp": { - "type": "object", - "properties": { - "advertiseMode": { - "enumDescriptions": [ - "", - "" + "patch": { + "id": "compute.autoscalers.patch", + "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.", + "flatPath": "projects/{project}/zones/{zone}/autoscalers", + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "CUSTOM", - "DEFAULT" + "response": { + "$ref": "Operation" + }, + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "description": "User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM." - }, - "asn": { - "format": "uint32", - "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" - }, - "keepaliveInterval": { - "type": "integer", - "format": "uint32", - "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." - }, - "advertisedGroups": { - "type": "array", - "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.", - "items": { - "enum": [ - "ALL_SUBNETS" - ], - "type": "string", - "enumDescriptions": [ - "Advertise all available subnets (including peer VPC subnets)." - ] - } - }, - "advertisedIpRanges": { - "items": { - "$ref": "RouterAdvertisedIpRange" + "path": "projects/{project}/zones/{zone}/autoscalers", + "parameters": { + "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", + "type": "string", + "description": "Project ID for this request.", + "required": true + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "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" + }, + "zone": { + "description": "Name of the zone for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path" + } }, - "type": "array", - "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." - } - }, - "id": "RouterBgp" - }, - "Expr": { - "id": "Expr", - "type": "object", - "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.", - "properties": { - "title": { - "type": "string", - "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." - }, - "description": { - "type": "string", - "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI." - }, - "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" - }, - "expression": { - "type": "string", - "description": "Textual representation of an expression in Common Expression Language syntax." + "request": { + "$ref": "Autoscaler" + } } } }, - "MachineType": { - "id": "MachineType", - "properties": { - "memoryMb": { - "format": "int32", - "description": "[Output Only] The amount of physical memory available to the instance, defined in MB.", - "type": "integer" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "maximumPersistentDisks": { - "format": "int32", - "description": "[Output Only] Maximum persistent disks allowed.", - "type": "integer" - }, - "accelerators": { - "items": { - "properties": { - "guestAcceleratorType": { - "description": "The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.", - "type": "string" - }, - "guestAcceleratorCount": { - "format": "int32", - "type": "integer", - "description": "Number of accelerator cards exposed to the guest." - } + "targetPools": { + "methods": { + "delete": { + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "parameters": { + "region": { + "description": "Name of the region scoping this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] A list of accelerator configurations assigned to this machine type." - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "kind": { - "type": "string", - "default": "compute#machineType", - "description": "[Output Only] The type of the resource. Always compute#machineType for machine types." - }, - "isSharedCpu": { - "description": "[Output Only] Whether this machine type has a shared CPU. See Shared-core machine types for more information.", - "type": "boolean" - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "scratchDisks": { - "items": { - "type": "object", - "properties": { - "diskGb": { - "type": "integer", - "description": "Size of the scratch disk, defined in GB.", - "format": "int32" - } + "targetPool": { + "description": "Name of the TargetPool resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "type": "string" } }, - "description": "[Output Only] A list of extended scratch disks assigned to the instance.", - "type": "array" - }, - "guestCpus": { - "format": "int32", - "description": "[Output Only] The number of virtual CPUs that are available to the instance.", - "type": "integer" - }, - "description": { - "description": "[Output Only] An optional textual description of the resource.", - "type": "string" + "httpMethod": "DELETE", + "description": "Deletes the specified target pool.", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "id": "compute.targetPools.delete" }, - "maximumPersistentDisksSizeGb": { - "description": "[Output Only] Maximum total persistent disks size (GB) allowed.", - "type": "string", - "format": "int64" - }, - "imageSpaceGb": { - "format": "int32", - "description": "[Deprecated] This property is deprecated and will never be populated with any relevant values.", - "type": "integer" - }, - "zone": { - "description": "[Output Only] The name of the zone where the machine type resides, such as us-central1-a.", - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this machine type. Only applicable if the machine type is unavailable." - } - }, - "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" - }, - "InstanceGroupManagersDeletePerInstanceConfigsReq": { - "id": "InstanceGroupManagersDeletePerInstanceConfigsReq", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" + "getHealth": { + "parameters": { + "project": { + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true + }, + "region": { + "location": "path", + "required": true, + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "targetPool": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetPool resource to which the queried instance belongs.", + "location": "path", + "required": true + } }, - "description": "The list of instance names for which we want to delete per-instance configs on this managed instance group." - } - }, - "type": "object", - "description": "InstanceGroupManagers.deletePerInstanceConfigs" - }, - "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.", - "enum": [ - "LOG_FAIL_CLOSED", - "LOG_MODE_UNSPECIFIED" + "response": { + "$ref": "TargetPoolInstanceHealth" + }, + "parameterOrder": [ + "project", + "region", + "targetPool" ], - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string" - } - } - }, - "RoutersScopedList": { - "id": "RoutersScopedList", - "type": "object", - "properties": { - "routers": { - "items": { - "$ref": "Router" + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", + "id": "compute.targetPools.getHealth", + "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.", + "request": { + "$ref": "InstanceReference" }, - "description": "A list of routers contained in this scope.", - "type": "array" + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", + "httpMethod": "POST" }, - "warning": { - "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - } + "insert": { + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "description": "Name of the region scoping this request.", + "location": "path" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "type": "string" + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." } }, - "type": "object", - "description": "Informational warning which replaces the list of routers when the list is empty." - } - } - }, - "InstancesSetMachineTypeRequest": { - "properties": { - "machineType": { - "type": "string", - "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": "object", - "id": "InstancesSetMachineTypeRequest" - }, - "TargetInstanceAggregatedList": { - "properties": { - "items": { - "description": "A list of TargetInstance resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of target instances.", - "$ref": "TargetInstancesScopedList" - } - }, - "kind": { - "type": "string", - "description": "Type of resource.", - "default": "compute#targetInstanceAggregatedList" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "TargetPool" + }, + "flatPath": "projects/{project}/regions/{region}/targetPools", + "response": { + "$ref": "Operation" + }, + "id": "compute.targetPools.insert", + "path": "projects/{project}/regions/{region}/targetPools", + "description": "Creates a target pool in the specified project and region using the data included in the request.", + "parameterOrder": [ + "project", + "region" + ], + "httpMethod": "POST" }, - "warning": { - "type": "object", - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "addInstance": { + "request": { + "$ref": "TargetPoolsAddInstanceRequest" + }, + "parameters": { + "region": { "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true }, - "message": { + "project": { + "description": "Project ID for this request.", + "location": "path", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - } + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "targetPool": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name of the TargetPool resource to add instances to." } }, - "description": "[Output Only] Informational warning message." - }, - "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" - }, - "unreachables": { - "items": { - "type": "string" + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "response": { + "$ref": "Operation" }, - "type": "array", - "description": "[Output Only] Unreachable resources." + "httpMethod": "POST", + "description": "Adds an instance to a target pool.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.targetPools.addInstance" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - }, - "type": "object", - "id": "TargetInstanceAggregatedList" - }, - "DiskAggregatedList": { - "type": "object", - "id": "DiskAggregatedList", - "properties": { - "warning": { - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "removeInstance": { + "id": "compute.targetPools.removeInstance", + "request": { + "$ref": "TargetPoolsRemoveInstanceRequest" + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path", "type": "string" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "path", + "required": true }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - } + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true } }, - "description": "[Output Only] Informational warning message." - }, - "nextPageToken": { - "type": "string", - "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." + "description": "Removes instance URL from a target pool." }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "items": { - "additionalProperties": { - "$ref": "DisksScopedList", - "description": "[Output Only] Name of the scope containing this set of disks." - }, - "description": "A list of DisksScopedList resources.", - "type": "object" - }, - "unreachables": { - "items": { - "type": "string" + "addHealthCheck": { + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetPoolsAddHealthCheckRequest" }, - "description": "[Output Only] Unreachable resources.", - "type": "array" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#diskAggregatedList for aggregated lists of persistent disks.", - "type": "string", - "default": "compute#diskAggregatedList" - } - } - }, - "VpnGatewayStatusTunnel": { - "properties": { - "tunnelUrl": { - "description": "URL reference to the VPN tunnel.", - "type": "string" - }, - "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 GCP VPN gateway.", - "type": "integer", - "format": "uint32" - } - }, - "id": "VpnGatewayStatusTunnel", - "type": "object", - "description": "Contains some information about a VPN tunnel." - }, - "HostRule": { - "properties": { - "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" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "hosts": { - "items": { - "type": "string" + "parameters": { + "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", + "type": "string", + "description": "Project ID for this request.", + "required": true + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "location": "path", + "description": "Name of the region scoping this request." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "targetPool": { + "description": "Name of the target pool to add a health check to.", + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } }, - "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 must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true.", - "type": "array" - } - }, - "id": "HostRule", - "description": "UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", - "type": "object" - }, - "AutoscalingPolicy": { - "description": "Cloud Autoscaler policy.", - "type": "object", - "properties": { - "mode": { - "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." - ], - "type": "string", - "enum": [ - "OFF", - "ON", - "ONLY_SCALE_OUT", - "ONLY_UP" - ], - "description": "Defines operating mode for this policy." - }, - "coolDownPeriodSec": { - "type": "integer", - "description": "The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.", - "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.", - "format": "int32", - "type": "integer" - }, - "customMetricUtilizations": { - "description": "Configuration parameters of autoscaling based on a custom metric.", - "type": "array", - "items": { - "$ref": "AutoscalingPolicyCustomMetricUtilization" - } - }, - "scaleInControl": { - "$ref": "AutoscalingPolicyScaleInControl" - }, - "scalingSchedules": { - "type": "object", - "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.", - "additionalProperties": { - "$ref": "AutoscalingPolicyScalingSchedule" - } - }, - "loadBalancingUtilization": { - "$ref": "AutoscalingPolicyLoadBalancingUtilization", - "description": "Configuration parameters of autoscaling based on load balancer." - }, - "minNumReplicas": { - "format": "int32", - "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" - }, - "cpuUtilization": { - "$ref": "AutoscalingPolicyCpuUtilization", - "description": "Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group." - } - }, - "id": "AutoscalingPolicy" - }, - "GlobalNetworkEndpointGroupsDetachEndpointsRequest": { - "id": "GlobalNetworkEndpointGroupsDetachEndpointsRequest", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be detached.", - "type": "array", - "items": { - "$ref": "NetworkEndpoint" - } - } - }, - "type": "object" - }, - "PacketMirroringMirroredResourceInfoInstanceInfo": { - "properties": { - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the instance; defined by the server.", - "type": "string" - }, - "url": { - "type": "string", - "description": "Resource URL to the virtual machine instance which is being mirrored." - } - }, - "id": "PacketMirroringMirroredResourceInfoInstanceInfo", - "type": "object" - }, - "GRPCHealthCheck": { - "type": "object", - "properties": { - "grpcServiceName": { - "type": "string", - "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." - }, - "port": { - "type": "integer", - "format": "int32", - "description": "The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535." - }, - "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035.", - "type": "string" - }, - "portSpecification": { - "type": "string", - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ], - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields.", - "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + "id": "compute.targetPools.addHealthCheck", + "response": { + "$ref": "Operation" + }, + "description": "Adds health check URLs to a target pool.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ] - } - }, - "id": "GRPCHealthCheck" - }, - "ReservationsScopedList": { - "type": "object", - "properties": { - "reservations": { - "description": "A list of reservations contained in this scope.", - "type": "array", - "items": { - "$ref": "Reservation" - } }, - "warning": { - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "aggregatedList": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "minimum": "0", + "default": "500", + "location": "query" + }, + "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" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", "type": "string" }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "filter": { + "location": "query", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." }, - "data": { - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "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.", + "type": "boolean", + "location": "query" } }, - "description": "Informational warning which replaces the list of reservations when the list is empty.", - "type": "object" - } - }, - "id": "ReservationsScopedList" - }, - "TestFailure": { - "id": "TestFailure", - "properties": { - "host": { - "type": "string", - "description": "Host portion of the URL." - }, - "path": { - "type": "string", - "description": "Path portion including query parameters in the URL." - }, - "actualService": { - "type": "string", - "description": "BackendService or BackendBucket returned by load balancer." - }, - "actualOutputUrl": { - "description": "The actual output URL evaluated by load balancer containing the scheme, host, path and query parameters.", - "type": "string" - }, - "headers": { - "items": { - "$ref": "UrlMapTestHeader" + "id": "compute.targetPools.aggregatedList", + "path": "projects/{project}/aggregated/targetPools", + "response": { + "$ref": "TargetPoolAggregatedList" }, - "description": "HTTP headers of the request.", - "type": "array" - }, - "expectedRedirectResponseCode": { - "description": "Expected HTTP status code for rule with `urlRedirect` calculated by load balancer", - "type": "integer", - "format": "int32" - }, - "expectedOutputUrl": { - "type": "string", - "description": "The expected output URL evaluated by load balancer containing the scheme, host, path and query parameters." - }, - "expectedService": { - "type": "string", - "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to." - }, - "actualRedirectResponseCode": { - "type": "integer", - "format": "int32", - "description": "Actual HTTP status code for rule with `urlRedirect` calculated by load balancer" - } - }, - "type": "object" - }, - "TargetPool": { - "properties": { - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "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" + "description": "Retrieves an aggregated list of target pools.", + "httpMethod": "GET", + "flatPath": "projects/{project}/aggregated/targetPools", + "parameterOrder": [ + "project" + ] }, - "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.", - "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." - ], - "enum": [ - "CLIENT_IP", - "CLIENT_IP_NO_DESTINATION", - "CLIENT_IP_PORT_PROTO", - "CLIENT_IP_PROTO", - "GENERATED_COOKIE", - "HEADER_FIELD", - "HTTP_COOKIE", - "NONE" + "removeHealthCheck": { + "parameterOrder": [ + "project", + "region", + "targetPool" ], - "type": "string" - }, - "region": { - "type": "string", - "description": "[Output Only] URL of the region where the target pool resides." - }, - "failoverRatio": { - "format": "float", - "type": "number", - "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." - }, - "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" - } - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "kind": { - "default": "compute#targetPool", - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#targetPool for target pools." - }, - "instances": { - "items": { - "type": "string" + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "httpMethod": "POST", + "description": "Removes health check URL from a target pool.", + "response": { + "$ref": "Operation" }, - "type": "array", - "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." + "parameters": { + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "targetPool": { + "location": "path", + "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}", + "type": "string", + "required": true + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "id": "compute.targetPools.removeHealthCheck", + "request": { + "$ref": "TargetPoolsRemoveHealthCheckRequest" + }, + "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.", - "type": "string" - } - }, - "description": "Represents a Target Pool resource. Target pools are used for network TCP/UDP load balancing. 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", - "id": "TargetPool" - }, - "HttpHeaderOption": { - "id": "HttpHeaderOption", - "type": "object", - "description": "Specification determining how headers are added to requests or responses.", - "properties": { - "replace": { - "type": "boolean", - "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." - }, - "headerValue": { - "type": "string", - "description": "The value of the header to add." - }, - "headerName": { - "description": "The name of the header.", - "type": "string" - } - } - }, - "NodeGroup": { - "type": "object", - "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.", - "properties": { - "status": { - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY" + "get": { + "parameters": { + "region": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request." + }, + "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])?))", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path" + }, + "targetPool": { + "required": true, + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetPool resource to return." + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" ], - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.", + "httpMethod": "GET", + "response": { + "$ref": "TargetPool" + }, + "id": "compute.targetPools.get", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "size": { - "format": "int32", - "type": "integer", - "description": "[Output Only] The total number of nodes in the node group." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "fingerprint": { - "type": "string", - "format": "byte" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "maintenancePolicy": { - "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." + "setBackup": { + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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.", - "enum": [ - "DEFAULT", - "MAINTENANCE_POLICY_UNSPECIFIED", - "MIGRATE_WITHIN_NODE_GROUP", - "RESTART_IN_PLACE" + "description": "Changes a backup target pool's configurations.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "targetPool" ], - "type": "string" - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "autoscalingPolicy": { - "description": "Specifies how autoscaling should behave.", - "$ref": "NodeGroupAutoscalingPolicy" - }, - "zone": { - "type": "string", - "description": "[Output Only] The name of the zone where the node group resides, such as us-central1-a." - }, - "locationHint": { - "type": "string", - "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." - }, - "kind": { - "type": "string", - "description": "[Output Only] The type of the resource. Always compute#nodeGroup for node group.", - "default": "compute#nodeGroup" - }, - "nodeTemplate": { - "type": "string", - "description": "URL of the node template to create the node group from." - }, - "name": { - "type": "string", - "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." + "id": "compute.targetPools.setBackup", + "request": { + "$ref": "TargetReference" + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", + "parameters": { + "targetPool": { + "location": "path", + "required": true, + "description": "Name of the TargetPool resource to set a backup pool for.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "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, + "description": "Project ID for this request.", + "type": "string" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "location": "path" + }, + "failoverRatio": { + "location": "query", + "description": "New failoverRatio value for the target pool.", + "format": "float", + "type": "number" + } + }, + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup" }, - "maintenanceWindow": { - "$ref": "NodeGroupMaintenanceWindow" + "list": { + "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.", + "id": "compute.targetPools.list", + "flatPath": "projects/{project}/regions/{region}/targetPools", + "httpMethod": "GET", + "parameters": { + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "region": { + "required": true, + "description": "Name of the region scoping this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "format": "uint32", + "type": "integer", + "default": "500", + "location": "query" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + } + }, + "response": { + "$ref": "TargetPoolList" + }, + "path": "projects/{project}/regions/{region}/targetPools", + "parameterOrder": [ + "project", + "region" + ] } } }, - "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { - "properties": { - "diskSizeGb": { - "description": "Specifies the size of the disk in base-2 GB.", - "type": "string", - "format": "int64" + "regionHealthCheckServices": { + "methods": { + "list": { + "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.", + "parameters": { + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "region": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "required": true + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "maxResults": { + "location": "query", + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "type": "integer" + } + }, + "flatPath": "projects/{project}/regions/{region}/healthCheckServices", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/healthCheckServices", + "id": "compute.regionHealthCheckServices.list", + "response": { + "$ref": "HealthCheckServicesList" + }, + "parameterOrder": [ + "project", + "region" + ] }, - "interface": { - "type": "string", - "enum": [ - "NVME", - "SCSI" + "insert": { + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "required": true, + "description": "Name of the region scoping this request." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true + } + }, + "request": { + "$ref": "HealthCheckService" + }, + "path": "projects/{project}/regions/{region}/healthCheckServices", + "id": "compute.regionHealthCheckServices.insert", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enumDescriptions": [ - "", - "" + "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.", + "parameterOrder": [ + "project", + "region" ], - "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." - } - }, - "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", - "type": "object" - }, - "Project": { - "properties": { - "description": { - "description": "An optional textual description of the resource.", - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "kind": { - "default": "compute#project", - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#project for projects." - }, - "usageExportLocation": { - "description": "The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored.", - "$ref": "UsageExportLocation" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "commonInstanceMetadata": { - "$ref": "Metadata", - "description": "Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information." - }, - "id": { - "type": "string", - "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.", - "format": "uint64" + "response": { + "$ref": "Operation" + } }, - "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.", - "enumDescriptions": [ - "", - "" + "get": { + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "parameters": { + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "description": "Name of the region scoping this request." + }, + "healthCheckService": { + "type": "string", + "location": "path", + "required": true, + "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035." + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "description": "Returns the specified regional HealthCheckService resource.", + "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": [ - "HOST", - "UNSPECIFIED_XPN_PROJECT_STATUS" + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region", + "healthCheckService" ], - "type": "string" + "id": "compute.regionHealthCheckServices.get" }, - "enabledFeatures": { - "description": "Restricted features enabled for use on this project.", - "items": { - "type": "string" + "delete": { + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "description": "Deletes the specified regional HealthCheckService.", + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "quotas": { - "type": "array", - "description": "[Output Only] Quotas assigned to this project.", - "items": { - "$ref": "Quota" - } - }, - "defaultNetworkTier": { - "enum": [ - "PREMIUM", - "STANDARD" + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "id": "compute.regionHealthCheckServices.delete", + "parameterOrder": [ + "project", + "region", + "healthCheckService" ], - "type": "string", - "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.", - "enumDescriptions": [ - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products." + "parameters": { + "healthCheckService": { + "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.", + "required": true, + "location": "path", + "type": "string" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "region": { + "type": "string", + "required": true, + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ] }, - "name": { - "description": "The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.", - "type": "string" - }, - "defaultServiceAccount": { - "description": "[Output Only] Default service account used by VMs running in this project.", - "type": "string" - } - }, - "type": "object", - "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." - }, - "PublicDelegatedPrefix": { - "id": "PublicDelegatedPrefix", - "type": "object", - "properties": { - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "status": { - "enum": [ - "ANNOUNCED", - "DELETING", - "INITIALIZING", - "READY_TO_ANNOUNCE" + "patch": { + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "id": "compute.regionHealthCheckServices.patch", + "httpMethod": "PATCH", + "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.", + "request": { + "$ref": "HealthCheckService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "[Output Only] The status of the public delegated prefix.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" - ] - }, - "parentPrefix": { - "description": "The URL of parent prefix. Either PublicAdvertisedPrefix or PublicDelegatedPrefix.", - "type": "string" - }, - "region": { - "type": "string", - "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." - }, - "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this public delegated prefix.", - "type": "string" - }, - "name": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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", - "annotations": { - "required": [ - "compute.publicDelegatedPrefixes.insert" - ] + "parameterOrder": [ + "project", + "region", + "healthCheckService" + ], + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "parameters": { + "region": { + "location": "path", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "healthCheckService": { + "location": "path", + "type": "string", + "required": true, + "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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])?))", + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request." + } } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "format": "uint64", - "type": "string" - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefix for public delegated prefixes.", - "default": "compute#publicDelegatedPrefix" - }, - "isLiveMigration": { - "type": "boolean", - "description": "If true, the prefix will be live migrated." - }, - "fingerprint": { - "type": "string", - "format": "byte", - "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." - }, - "publicDelegatedSubPrefixs": { - "items": { - "$ref": "PublicDelegatedPrefixPublicDelegatedSubPrefix" - }, - "type": "array", - "description": "The list of sub public delegated prefixes that exist for this public delegated prefix." } - }, - "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." + } }, - "InstanceGroupManagersApplyUpdatesRequest": { - "id": "InstanceGroupManagersApplyUpdatesRequest", - "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" - } - }, - "allInstances": { - "type": "boolean", - "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." - }, - "mostDisruptiveAllowedAction": { - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" + "sslCertificates": { + "methods": { + "insert": { + "parameterOrder": [ + "project" ], - "enumDescriptions": [ - "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "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. - 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." + "description": "Creates a SslCertificate resource in the specified project using the data included in the request.", + "flatPath": "projects/{project}/global/sslCertificates", + "httpMethod": "POST", + "path": "projects/{project}/global/sslCertificates", + "id": "compute.sslCertificates.insert", + "request": { + "$ref": "SslCertificate" + }, + "parameters": { + "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])?))", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + } }, - "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. - 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.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "get": { + "response": { + "$ref": "SslCertificate" + }, + "httpMethod": "GET", + "id": "compute.sslCertificates.get", + "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" - ] - } - }, - "type": "object", - "description": "InstanceGroupManagers.applyUpdatesToInstances" - }, - "BackendServiceLogConfig": { - "description": "The available logging options for the load balancer traffic served by this backend service.", - "id": "BackendServiceLogConfig", - "properties": { - "sampleRate": { - "format": "float", - "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" - }, - "enable": { - "type": "boolean", - "description": "This field denotes whether to enable logging for the load balancer traffic served by this backend service." - } - }, - "type": "object" - }, - "DistributionPolicy": { - "properties": { - "zones": { - "items": { - "$ref": "DistributionPolicyZoneConfiguration" + "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.", + "parameters": { + "sslCertificate": { + "location": "path", + "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}", + "type": "string", + "required": true + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true + } }, - "description": "Zones where the regional managed instance group will create and manage its instances.", - "type": "array" + "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", + "parameterOrder": [ + "project", + "sslCertificate" + ], + "path": "projects/{project}/global/sslCertificates/{sslCertificate}" }, - "targetShape": { - "enum": [ - "ANY", - "BALANCED", - "EVEN" + "list": { + "parameterOrder": [ + "project" ], - "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 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." + "description": "Retrieves the list of SslCertificate resources available to the specified project.", + "path": "projects/{project}/global/sslCertificates", + "httpMethod": "GET", + "id": "compute.sslCertificates.list", + "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": "The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType)." - } - }, - "id": "DistributionPolicy", - "type": "object" - }, - "VpnTunnelList": { - "description": "Contains a list of VpnTunnel resources.", - "properties": { - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", - "default": "compute#vpnTunnelList" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "parameters": { + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "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])?))", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "type": "integer", + "minimum": "0", + "format": "uint32", + "location": "query" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + } + }, + "flatPath": "projects/{project}/global/sslCertificates" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - }, - "type": "object" - } + "delete": { + "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", + "id": "compute.sslCertificates.delete", + "parameterOrder": [ + "project", + "sslCertificate" + ], + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/global/sslCertificates/{sslCertificate}", + "description": "Deletes the specified SslCertificate resource.", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "required": true }, - "message": { + "requestId": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "sslCertificate": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the SslCertificate resource to delete.", + "location": "path", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "required": true } }, - "type": "object" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "DELETE" }, - "items": { - "description": "A list of VpnTunnel resources.", - "items": { - "$ref": "VpnTunnel" + "aggregatedList": { + "httpMethod": "GET", + "path": "projects/{project}/aggregated/sslCertificates", + "parameterOrder": [ + "project" + ], + "id": "compute.sslCertificates.aggregatedList", + "parameters": { + "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" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "project": { + "description": "Name of the project scoping this request.", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "maxResults": { + "format": "uint32", + "location": "query", + "type": "integer", + "minimum": "0", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + } }, - "type": "array" + "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.", + "flatPath": "projects/{project}/aggregated/sslCertificates", + "response": { + "$ref": "SslCertificateAggregatedList" + } } - }, - "type": "object", - "id": "VpnTunnelList" + } }, - "SecurityPolicyAdvancedOptionsConfig": { - "type": "object", - "properties": { - "logLevel": { - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NORMAL", - "VERBOSE" - ] - }, - "jsonParsing": { - "type": "string", - "enum": [ - "DISABLED", - "STANDARD" + "nodeGroups": { + "methods": { + "setIamPolicy": { + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" ], - "enumDescriptions": [ - "", - "" - ] - } - }, - "id": "SecurityPolicyAdvancedOptionsConfig" - }, - "Binding": { - "properties": { - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", - "type": "array", - "items": { - "type": "string" + "httpMethod": "POST", + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "id": "compute.nodeGroups.setIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "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" + }, + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "resource": { + "type": "string", + "required": true, + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } } }, - "bindingId": { - "type": "string", - "description": "This is deprecated and has no effect. Do not use." - }, - "role": { - "description": "Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", - "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 members 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" - } - }, - "type": "object", - "id": "Binding", - "description": "Associates `members` with a `role`." - }, - "ResourcePolicyDailyCycle": { - "properties": { - "daysInCycle": { - "type": "integer", - "description": "Defines a schedule with units measured in months. The value determines how many months pass between the start of each cycle.", - "format": "int32" - }, - "duration": { - "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", - "type": "string" - }, - "startTime": { - "type": "string", - "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": "object", - "description": "Time window specified for daily operations.", - "id": "ResourcePolicyDailyCycle" - }, - "InstanceListReferrers": { - "type": "object", - "description": "Contains a list of instance referrers.", - "id": "InstanceListReferrers", - "properties": { - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "insert": { + "path": "projects/{project}/zones/{zone}/nodeGroups", + "description": "Creates a NodeGroup resource in the specified project using the data included in the request.", + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.nodeGroups.insert", + "request": { + "$ref": "NodeGroup" + }, + "parameterOrder": [ + "project", + "zone", + "initialNodeCount" + ], + "parameters": { + "initialNodeCount": { + "location": "query", + "format": "int32", + "required": true, + "description": "Initial count of nodes in the node group.", + "type": "integer" }, - "code": { + "zone": { + "required": true, "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "path", + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "type": "string" } } }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#instanceListReferrers for lists of Instance referrers.", - "default": "compute#instanceListReferrers" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "type": "array", - "description": "A list of Reference resources.", - "items": { - "$ref": "Reference" - } - }, - "nextPageToken": { - "type": "string", - "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." - } - } - }, - "AcceleratorTypeAggregatedList": { - "id": "AcceleratorTypeAggregatedList", - "type": "object", - "properties": { - "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": { - "type": "object", - "properties": { - "data": { - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "listNodes": { + "id": "compute.nodeGroups.listNodes", + "description": "Lists nodes in the node group.", + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", + "parameters": { + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." }, - "message": { + "zone": { + "description": "The name of the zone for this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "maxResults": { + "location": "query", + "default": "500", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "required": true, "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "nodeGroup": { + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the NodeGroup resource whose nodes you want to list." } }, - "description": "[Output Only] Informational warning message." - }, - "items": { - "description": "A list of AcceleratorTypesScopedList resources.", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of accelerator types.", - "$ref": "AcceleratorTypesScopedList" - }, - "type": "object" - }, - "unreachables": { - "items": { - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", + "response": { + "$ref": "NodeGroupsListNodes" }, - "description": "[Output Only] Unreachable resources.", - "type": "array" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#acceleratorTypeAggregatedList for aggregated lists of accelerator types.", - "type": "string", - "default": "compute#acceleratorTypeAggregatedList" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - } - }, - "HealthCheckList": { - "id": "HealthCheckList", - "description": "Contains a list of HealthCheck resources.", - "type": "object", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "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" - }, - "kind": { - "description": "Type of resource.", - "default": "compute#healthCheckList", - "type": "string" - }, - "items": { - "description": "A list of HealthCheck resources.", - "type": "array", - "items": { - "$ref": "HealthCheck" - } + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ] }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "delete": { + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "zone": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "required": true }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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.", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "nodeGroup": { + "location": "path", + "required": true, + "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}", + "type": "string" } - } - } - } - }, - "InstanceGroupManagerAggregatedList": { - "properties": { - "warning": { - "type": "object", - "properties": { - "message": { + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "DELETE", + "description": "Deletes the specified NodeGroup resource.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "id": "compute.nodeGroups.delete", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}" + }, + "aggregatedList": { + "parameters": { + "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.", + "type": "boolean", + "location": "query" + }, + "pageToken": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - } + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "orderBy": { + "location": "query", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "minimum": "0", + "type": "integer", + "location": "query", + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" } }, - "description": "[Output Only] Informational warning message." - }, - "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" - }, - "items": { - "additionalProperties": { - "description": "[Output Only] The name of the scope that contains this set of managed instance groups.", - "$ref": "InstanceGroupManagersScopedList" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.nodeGroups.aggregatedList", + "flatPath": "projects/{project}/aggregated/nodeGroups", + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NodeGroupAggregatedList" }, - "type": "object", - "description": "A list of InstanceGroupManagersScopedList resources." - }, - "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": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "id": "InstanceGroupManagerAggregatedList", - "type": "object" - }, - "BackendServiceCdnPolicy": { - "properties": { - "cacheKeyPolicy": { - "$ref": "CacheKeyPolicy", - "description": "The CacheKeyPolicy for this CdnPolicy." + "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.", + "path": "projects/{project}/aggregated/nodeGroups", + "httpMethod": "GET" }, - "signedUrlKeyNames": { - "description": "[Output Only] Names of the keys for signing request URLs.", - "items": { - "type": "string" + "patch": { + "httpMethod": "PATCH", + "description": "Updates the specified node group.", + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "request": { + "$ref": "NodeGroup" }, - "type": "array" - }, - "negativeCaching": { - "type": "boolean", - "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." - }, - "defaultTtl": { - "format": "int32", - "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" - }, - "serveWhileStale": { - "format": "int32", - "type": "integer", - "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." - }, - "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" - } - }, - "signedUrlCacheMaxAgeSec": { - "format": "int64", - "type": "string", - "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." - }, - "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 86400s (1 day).", - "type": "integer", - "format": "int32" - }, - "cacheMode": { - "type": "string", - "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.", - "enum": [ - "CACHE_ALL_STATIC", - "FORCE_CACHE_ALL", - "INVALID_CACHE_MODE", - "USE_ORIGIN_HEADERS" + "response": { + "$ref": "Operation" + }, + "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource to update.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + }, + "zone": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "type": "string", + "required": true + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + } + }, + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "id": "compute.nodeGroups.patch", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." - ] + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}" }, - "negativeCachingPolicy": { - "type": "array", - "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.", - "items": { - "$ref": "BackendServiceCdnPolicyNegativeCachingPolicy" + "get": { + "id": "compute.nodeGroups.get", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "zone", + "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.", + "response": { + "$ref": "NodeGroup" + }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "parameters": { + "nodeGroup": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the node group to return.", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "required": true + } } }, - "requestCoalescing": { - "type": "boolean", - "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin." - } - }, - "type": "object", - "id": "BackendServiceCdnPolicy", - "description": "Message containing Cloud CDN configuration for a backend service." - }, - "NetworkEndpointWithHealthStatus": { - "properties": { - "networkEndpoint": { - "$ref": "NetworkEndpoint", - "description": "[Output only] The network endpoint;" - }, - "healths": { - "description": "[Output only] The health status of network endpoint;", - "items": { - "$ref": "HealthStatusForNetworkEndpoint" + "setNodeTemplate": { + "request": { + "$ref": "NodeGroupsSetNodeTemplateRequest" }, - "type": "array" - } - }, - "id": "NetworkEndpointWithHealthStatus", - "type": "object" - }, - "SerialPortOutput": { - "type": "object", - "id": "SerialPortOutput", - "description": "An instance serial console output.", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.", - "default": "compute#serialPortOutput" - }, - "contents": { - "type": "string", - "description": "[Output Only] The contents of the console output." - }, - "start": { - "type": "string", - "format": "int64", - "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." - }, - "next": { - "format": "int64", - "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" - } - } - }, - "ResourcePolicySnapshotSchedulePolicy": { - "type": "object", - "id": "ResourcePolicySnapshotSchedulePolicy", - "properties": { - "retentionPolicy": { - "$ref": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", - "description": "Retention policy applied to snapshots created by this resource policy." - }, - "snapshotProperties": { - "description": "Properties with which snapshots are created such as labels, encryption keys.", - "$ref": "ResourcePolicySnapshotSchedulePolicySnapshotProperties" - }, - "schedule": { - "$ref": "ResourcePolicySnapshotSchedulePolicySchedule", - "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." - } - }, - "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." - }, - "HealthStatusForNetworkEndpoint": { - "type": "object", - "id": "HealthStatusForNetworkEndpoint", - "properties": { - "forwardingRule": { - "$ref": "ForwardingRuleReference", - "description": "URL of the forwarding rule associated with the health state of the network endpoint." - }, - "backendService": { - "$ref": "BackendServiceReference", - "description": "URL of the backend service associated with the health state of the network endpoint." - }, - "healthCheck": { - "$ref": "HealthCheckReference", - "description": "URL of the health check associated with the health state of the network endpoint." - }, - "healthCheckService": { - "description": "URL of the health check service associated with the health state of the network endpoint.", - "$ref": "HealthCheckServiceReference" - }, - "healthState": { - "enumDescriptions": [ - "", - "", - "", - "" + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", + "parameterOrder": [ + "project", + "zone", + "nodeGroup" ], - "enum": [ - "DRAINING", - "HEALTHY", - "UNHEALTHY", - "UNKNOWN" + "parameters": { + "zone": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "The name of the zone for this request." + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "nodeGroup": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "required": true, + "description": "Name of the NodeGroup resource to update." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", + "id": "compute.nodeGroups.setNodeTemplate", + "response": { + "$ref": "Operation" + }, + "description": "Updates the node template of the node group.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "description": "Health state of the network endpoint determined based on the health checks configured." - } - } - }, - "Quota": { - "type": "object", - "description": "A quotas entry.", - "properties": { - "owner": { - "type": "string", - "description": "[Output Only] Owning resource. This is the resource on which this quota is applied." + "httpMethod": "POST" }, - "metric": { - "type": "string", - "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_MEMORY_OPTIMIZED_CPUS", - "COMMITTED_N2A_CPUS", - "COMMITTED_N2D_CPUS", - "COMMITTED_N2_CPUS", - "COMMITTED_NVIDIA_A100_GPUS", - "COMMITTED_NVIDIA_K80_GPUS", - "COMMITTED_NVIDIA_P100_GPUS", - "COMMITTED_NVIDIA_P4_GPUS", - "COMMITTED_NVIDIA_T4_GPUS", - "COMMITTED_NVIDIA_V100_GPUS", - "COMMITTED_T2D_CPUS", - "CPUS", - "CPUS_ALL_REGIONS", - "DISKS_TOTAL_GB", - "E2_CPUS", - "EXTERNAL_NETWORK_LB_FORWARDING_RULES", - "EXTERNAL_PROTOCOL_FORWARDING_RULES", - "EXTERNAL_VPN_GATEWAYS", - "FIREWALLS", - "FORWARDING_RULES", - "GLOBAL_INTERNAL_ADDRESSES", - "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", - "MACHINE_IMAGES", - "N2A_CPUS", - "N2D_CPUS", - "N2_CPUS", - "NETWORKS", - "NETWORK_ENDPOINT_GROUPS", - "NETWORK_FIREWALL_POLICIES", - "NODE_GROUPS", - "NODE_TEMPLATES", - "NVIDIA_A100_GPUS", - "NVIDIA_K80_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_GPUS", - "PREEMPTIBLE_NVIDIA_K80_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", - "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", - "PSC_INTERNAL_LB_FORWARDING_RULES", - "PUBLIC_ADVERTISED_PREFIXES", - "PUBLIC_DELEGATED_PREFIXES", - "REGIONAL_AUTOSCALERS", - "REGIONAL_INSTANCE_GROUP_MANAGERS", - "RESERVATIONS", - "RESOURCE_POLICIES", - "ROUTERS", - "ROUTES", - "SECURITY_POLICIES", - "SECURITY_POLICIES_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", - "SUBNETWORKS", - "T2D_CPUS", - "TARGET_HTTPS_PROXIES", - "TARGET_HTTP_PROXIES", - "TARGET_INSTANCES", - "TARGET_POOLS", - "TARGET_SSL_PROXIES", - "TARGET_TCP_PROXIES", - "TARGET_VPN_GATEWAYS", - "URL_MAPS", - "VPN_GATEWAYS", - "VPN_TUNNELS", - "XPN_SERVICE_PROJECTS" + "deleteNodes": { + "request": { + "$ref": "NodeGroupsDeleteNodesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes specified nodes from the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", + "id": "compute.nodeGroups.deleteNodes", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true + }, + "nodeGroup": { + "type": "string", + "required": true, + "description": "Name of the NodeGroup resource whose nodes will be deleted.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "zone": { + "type": "string", + "required": true, + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "httpMethod": "POST" + }, + "testIamPermissions": { + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "TestPermissionsResponse" + }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", + "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": "compute.nodeGroups.testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "parameters": { + "zone": { + "location": "path", + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "resource": { + "description": "Name or id of the resource for this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + } + } + }, + "addNodes": { + "response": { + "$ref": "Operation" + }, + "id": "compute.nodeGroups.addNodes", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", + "httpMethod": "POST", + "request": { + "$ref": "NodeGroupsAddNodesRequest" + }, + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the NodeGroup resource.", + "location": "path" + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "zone": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "location": "path", + "type": "string" + } + }, + "description": "Adds specified number of nodes to the node group.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "getIamPolicy": { + "id": "compute.nodeGroups.getIamPolicy", + "httpMethod": "GET", + "response": { + "$ref": "Policy" + }, + "parameters": { + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "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": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "type": "string", + "required": true + }, + "optionsRequestedPolicyVersion": { + "type": "integer", + "format": "int32", + "description": "Requested IAM Policy version.", + "location": "query" + } + }, + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" + ] + }, + "list": { + "httpMethod": "GET", + "path": "projects/{project}/zones/{zone}/nodeGroups", + "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.", + "id": "compute.nodeGroups.list", + "response": { + "$ref": "NodeGroupList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/zones/{zone}/nodeGroups", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "zone": { + "required": true, + "type": "string", + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "maxResults": { + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "default": "500", + "type": "integer", + "format": "uint32" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + } + } + } + } + }, + "firewalls": { + "methods": { + "update": { + "parameterOrder": [ + "project", + "firewall" + ], + "flatPath": "projects/{project}/global/firewalls/{firewall}", + "path": "projects/{project}/global/firewalls/{firewall}", + "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.", + "id": "compute.firewalls.update", + "httpMethod": "PUT", + "parameters": { + "firewall": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the firewall rule to update.", + "required": true, + "location": "path", + "type": "string" + }, + "project": { + "location": "path", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "Firewall" + } + }, + "delete": { + "parameterOrder": [ + "project", + "firewall" + ], + "flatPath": "projects/{project}/global/firewalls/{firewall}", + "httpMethod": "DELETE", + "parameters": { + "firewall": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the firewall rule to delete.", + "required": true, + "type": "string" + }, + "project": { + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "path": "projects/{project}/global/firewalls/{firewall}", + "description": "Deletes the specified firewall.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.firewalls.delete" + }, + "insert": { + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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", + "description": "Project ID for this request.", + "required": true, + "type": "string" + } + }, + "id": "compute.firewalls.insert", + "path": "projects/{project}/global/firewalls", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/firewalls", + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "Firewall" + }, + "parameterOrder": [ + "project" + ], + "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." + }, + "get": { + "parameters": { + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "firewall": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the firewall rule to return.", + "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 firewall.", + "response": { + "$ref": "Firewall" + }, + "parameterOrder": [ + "project", + "firewall" + ], + "path": "projects/{project}/global/firewalls/{firewall}", + "flatPath": "projects/{project}/global/firewalls/{firewall}", + "httpMethod": "GET", + "id": "compute.firewalls.get" + }, + "list": { + "httpMethod": "GET", + "id": "compute.firewalls.list", + "flatPath": "projects/{project}/global/firewalls", + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "FirewallList" + }, + "description": "Retrieves the list of firewall rules available to the specified project.", + "path": "projects/{project}/global/firewalls", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "maxResults": { + "location": "query", + "type": "integer", + "minimum": "0", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + } + } + }, + "patch": { + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "location": "path" + }, + "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", + "type": "string", + "required": true + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "Firewall" + }, + "flatPath": "projects/{project}/global/firewalls/{firewall}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.firewalls.patch", + "httpMethod": "PATCH", + "path": "projects/{project}/global/firewalls/{firewall}", + "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." + } + } + }, + "regionNetworkEndpointGroups": { + "methods": { + "list": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/networkEndpointGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "format": "uint32", + "type": "integer", + "location": "query", + "minimum": "0" + }, + "region": { + "required": true, + "location": "path", + "type": "string", + "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035." + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + } + }, + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", + "parameterOrder": [ + "project", + "region" + ], + "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.", + "response": { + "$ref": "NetworkEndpointGroupList" + }, + "id": "compute.regionNetworkEndpointGroups.list" + }, + "insert": { + "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.", + "type": "string", + "required": true, + "location": "path" + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", + "request": { + "$ref": "NetworkEndpointGroup" + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups", + "id": "compute.regionNetworkEndpointGroups.insert", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST" + }, + "delete": { + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "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.", + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "id": "compute.regionNetworkEndpointGroups.delete", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" + }, + "networkEndpointGroup": { + "location": "path", + "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "type": "string", + "required": true + }, + "region": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035." + } + }, + "response": { + "$ref": "Operation" + } + }, + "get": { + "httpMethod": "GET", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "parameters": { + "networkEndpointGroup": { + "location": "path", + "required": true, + "type": "string", + "description": "The name of the network endpoint group. It should comply with RFC1035." + }, + "region": { + "required": true, + "location": "path", + "type": "string", + "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035." + }, + "project": { + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "id": "compute.regionNetworkEndpointGroups.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "NetworkEndpointGroup" + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request." + } + } + }, + "firewallPolicies": { + "methods": { + "addAssociation": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.firewallPolicies.addAssociation", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation", + "parameterOrder": [ + "firewallPolicy" + ], + "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation", + "description": "Inserts an association for the specified firewall policy.", + "httpMethod": "POST", + "request": { + "$ref": "FirewallPolicyAssociation" + }, + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "firewallPolicy": { + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "type": "string", + "required": true, + "description": "Name of the firewall policy to update.", + "location": "path" + }, + "replaceExistingAssociation": { + "location": "query", + "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.", + "type": "boolean" + } + } + }, + "delete": { + "parameterOrder": [ + "firewallPolicy" + ], + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified policy.", + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "firewallPolicy": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "description": "Name of the firewall policy to delete." + } + }, + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", + "path": "locations/global/firewallPolicies/{firewallPolicy}", + "id": "compute.firewallPolicies.delete" + }, + "addRule": { + "parameters": { + "firewallPolicy": { + "required": true, + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "type": "string", + "description": "Name of the firewall policy to update." + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule", + "request": { + "$ref": "FirewallPolicyRule" + }, + "description": "Inserts a rule into a firewall policy.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "firewallPolicy" + ], + "id": "compute.firewallPolicies.addRule", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addRule" + }, + "cloneRules": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules", + "description": "Copies rules to the specified firewall policy.", + "id": "compute.firewallPolicies.cloneRules", + "response": { + "$ref": "Operation" + }, + "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules", + "parameterOrder": [ + "firewallPolicy" + ], + "httpMethod": "POST", + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "firewallPolicy": { + "location": "path", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "required": true, + "description": "Name of the firewall policy to update.", + "type": "string" + }, + "sourceFirewallPolicy": { + "type": "string", + "description": "The firewall policy from which to copy rules.", + "location": "query" + } + } + }, + "insert": { + "flatPath": "locations/global/firewallPolicies", + "path": "locations/global/firewallPolicies", + "description": "Creates a new policy in the specified project using the data included in the request.", + "request": { + "$ref": "FirewallPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "id": "compute.firewallPolicies.insert", + "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": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + } + }, + "move": { + "id": "compute.firewallPolicies.move", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/move", + "path": "locations/global/firewallPolicies/{firewallPolicy}/move", + "parameterOrder": [ + "firewallPolicy" + ], + "httpMethod": "POST", + "description": "Moves the specified firewall policy.", + "parameters": { + "firewallPolicy": { + "required": true, + "description": "Name of the firewall policy to update.", + "location": "path", + "type": "string", + "pattern": "(firewallPolicies/)?[0-9]{0,20}" + }, + "parentId": { + "type": "string", + "description": "The new parent of the firewall policy.", + "location": "query" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "response": { + "$ref": "Operation" + } + }, + "testIamPermissions": { + "parameters": { + "resource": { + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string", + "description": "Name or id of the resource for this request." + } + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "resource" + ], + "id": "compute.firewallPolicies.testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.", + "request": { + "$ref": "TestPermissionsRequest" + }, + "flatPath": "locations/global/firewallPolicies/{resource}/testIamPermissions", + "path": "locations/global/firewallPolicies/{resource}/testIamPermissions" + }, + "removeRule": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", + "description": "Deletes a rule of the specified priority.", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "firewallPolicy" + ], + "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", + "id": "compute.firewallPolicies.removeRule", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "firewallPolicy": { + "type": "string", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "description": "Name of the firewall policy to update.", + "required": true + }, + "priority": { + "location": "query", + "description": "The priority of the rule to remove from the firewall policy.", + "type": "integer", + "format": "int32" + } + } + }, + "getAssociation": { + "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation", + "id": "compute.firewallPolicies.getAssociation", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation", + "parameterOrder": [ + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "type": "string", + "location": "path", + "description": "Name of the firewall policy to which the queried rule belongs.", + "required": true, + "pattern": "(firewallPolicies/)?[0-9]{0,20}" + }, + "name": { + "description": "The name of the association to get from the firewall policy.", + "location": "query", + "type": "string" + } + }, + "response": { + "$ref": "FirewallPolicyAssociation" + }, + "httpMethod": "GET", + "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." + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "FirewallPolicyList" + }, + "flatPath": "locations/global/firewallPolicies", + "id": "compute.firewallPolicies.list", + "path": "locations/global/firewallPolicies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "pageToken": { + "description": "Specifies a page token 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" + }, + "maxResults": { + "type": "integer", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "format": "uint32", + "minimum": "0" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + } + }, + "description": "Lists all the policies that have been configured for the specified folder or organization." + }, + "getRule": { + "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "location": "path", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "required": true, + "type": "string" + }, + "priority": { + "format": "int32", + "location": "query", + "type": "integer", + "description": "The priority of the rule to get from the firewall policy." + } + }, + "id": "compute.firewallPolicies.getRule", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getRule", + "response": { + "$ref": "FirewallPolicyRule" + }, + "httpMethod": "GET", + "description": "Gets a rule of the specified priority.", + "parameterOrder": [ + "firewallPolicy" + ] + }, + "removeAssociation": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation", + "id": "compute.firewallPolicies.removeAssociation", + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "parameterOrder": [ + "firewallPolicy" + ], + "description": "Removes an association for the specified firewall policy.", + "parameters": { + "name": { + "description": "Name for the attachment that will be removed.", + "location": "query", + "type": "string" + }, + "firewallPolicy": { + "type": "string", + "location": "path", + "required": true, + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "description": "Name of the firewall policy to update." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation" + }, + "getIamPolicy": { + "path": "locations/global/firewallPolicies/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "type": "integer", + "location": "query", + "format": "int32" + }, + "resource": { + "location": "path", + "required": true, + "type": "string", + "description": "Name or id of the resource for this request.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}" + } + }, + "httpMethod": "GET", + "parameterOrder": [ + "resource" + ], + "flatPath": "locations/global/firewallPolicies/{resource}/getIamPolicy", + "id": "compute.firewallPolicies.getIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "Policy" + } + }, + "setIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "required": true, + "location": "path", + "description": "Name or id of the resource for this request.", + "type": "string", + "pattern": "(firewallPolicies/)?[0-9]{0,20}" + } + }, + "id": "compute.firewallPolicies.setIamPolicy", + "flatPath": "locations/global/firewallPolicies/{resource}/setIamPolicy", + "path": "locations/global/firewallPolicies/{resource}/setIamPolicy", + "httpMethod": "POST", + "request": { + "$ref": "GlobalOrganizationSetPolicyRequest" + }, + "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." + }, + "get": { + "description": "Returns the specified firewall policy.", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", + "parameters": { + "firewallPolicy": { + "type": "string", + "location": "path", + "required": true, + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "description": "Name of the firewall policy to get." + } + }, + "path": "locations/global/firewallPolicies/{firewallPolicy}", + "response": { + "$ref": "FirewallPolicy" + }, + "httpMethod": "GET", + "parameterOrder": [ + "firewallPolicy" + ], + "id": "compute.firewallPolicies.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified policy with the data included in the request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "firewallPolicy" + ], + "httpMethod": "PATCH", + "response": { + "$ref": "Operation" + }, + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", + "id": "compute.firewallPolicies.patch", + "request": { + "$ref": "FirewallPolicy" + }, + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "type": "string", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "path": "locations/global/firewallPolicies/{firewallPolicy}" + }, + "patchRule": { + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "type": "string", + "required": true + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "priority": { + "type": "integer", + "format": "int32", + "location": "query", + "description": "The priority of the rule to patch." + } + }, + "request": { + "$ref": "FirewallPolicyRule" + }, + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchRule", + "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "id": "compute.firewallPolicies.patchRule", + "description": "Patches a rule of the specified priority.", + "parameterOrder": [ + "firewallPolicy" + ], + "response": { + "$ref": "Operation" + } + }, + "listAssociations": { + "flatPath": "locations/global/firewallPolicies/listAssociations", + "httpMethod": "GET", + "id": "compute.firewallPolicies.listAssociations", + "parameters": { + "targetResource": { + "type": "string", + "location": "query", + "description": "The target resource to list associations. It is an organization, or a folder." + } + }, + "path": "locations/global/firewallPolicies/listAssociations", + "response": { + "$ref": "FirewallPoliciesListAssociationsResponse" + }, + "description": "Lists associations of a specified target, i.e., organization or folder.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "acceleratorTypes": { + "methods": { + "get": { + "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}", + "parameterOrder": [ + "project", + "zone", + "acceleratorType" + ], + "id": "compute.acceleratorTypes.get", + "parameters": { + "zone": { + "location": "path", + "description": "The name of the zone for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true + }, + "acceleratorType": { + "description": "Name of the accelerator type to return.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path" + } + }, + "description": "Returns the specified accelerator type.", + "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "response": { + "$ref": "AcceleratorType" + } + }, + "aggregatedList": { + "parameterOrder": [ + "project" + ], + "httpMethod": "GET", + "response": { + "$ref": "AcceleratorTypeAggregatedList" + }, + "parameters": { + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "maxResults": { + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "type": "integer", + "format": "uint32", + "location": "query" + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "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" + }, + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "required": true + } + }, + "description": "Retrieves an aggregated list of accelerator types.", + "path": "projects/{project}/aggregated/acceleratorTypes", + "id": "compute.acceleratorTypes.aggregatedList", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/aggregated/acceleratorTypes" + }, + "list": { + "id": "compute.acceleratorTypes.list", + "parameters": { + "zone": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "description": "The name of the zone for this request." + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "maxResults": { + "format": "uint32", + "location": "query", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "minimum": "0" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "AcceleratorTypeList" + }, + "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes", + "httpMethod": "GET", + "description": "Retrieves a list of accelerator types that are available to the specified project.", + "parameterOrder": [ + "project", + "zone" + ], + "path": "projects/{project}/zones/{zone}/acceleratorTypes" + } + } + }, + "routes": { + "methods": { + "list": { + "parameterOrder": [ + "project" + ], + "parameters": { + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "maxResults": { + "location": "query", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "type": "integer" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "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.", + "type": "boolean", + "location": "query" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true + } + }, + "httpMethod": "GET", + "description": "Retrieves the list of Route resources available to the specified project.", + "response": { + "$ref": "RouteList" + }, + "path": "projects/{project}/global/routes", + "flatPath": "projects/{project}/global/routes", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.routes.list" + }, + "get": { + "id": "compute.routes.get", + "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.", + "flatPath": "projects/{project}/global/routes/{route}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "route" + ], + "path": "projects/{project}/global/routes/{route}", + "httpMethod": "GET", + "response": { + "$ref": "Route" + }, + "parameters": { + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "route": { + "required": true, + "type": "string", + "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" + } + } + }, + "insert": { + "path": "projects/{project}/global/routes", + "httpMethod": "POST", + "request": { + "$ref": "Route" + }, + "response": { + "$ref": "Operation" + }, + "description": "Creates a Route resource in the specified project using the data included in the request.", + "id": "compute.routes.insert", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/routes", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "parameterOrder": [ + "project" + ] + }, + "delete": { + "id": "compute.routes.delete", + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "route" + ], + "flatPath": "projects/{project}/global/routes/{route}", + "description": "Deletes the specified Route resource.", + "path": "projects/{project}/global/routes/{route}", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "route": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the Route resource to delete.", + "type": "string", + "required": true + } + }, + "response": { + "$ref": "Operation" + } + } + } + }, + "globalOperations": { + "methods": { + "wait": { + "id": "compute.globalOperations.wait", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "operation" + ], + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true + }, + "operation": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "location": "path", + "description": "Name of the Operations resource to return." + } + }, + "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`. ", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/operations/{operation}/wait", + "path": "projects/{project}/global/operations/{operation}/wait" + }, + "aggregatedList": { + "parameterOrder": [ + "project" + ], + "httpMethod": "GET", + "flatPath": "projects/{project}/aggregated/operations", + "path": "projects/{project}/aggregated/operations", + "description": "Retrieves an aggregated list of all operations.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.globalOperations.aggregatedList", + "parameters": { + "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.", + "type": "boolean", + "location": "query" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "maxResults": { + "default": "500", + "type": "integer", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "location": "query" + }, + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + } + }, + "response": { + "$ref": "OperationAggregatedList" + } + }, + "list": { + "path": "projects/{project}/global/operations", + "response": { + "$ref": "OperationList" + }, + "flatPath": "projects/{project}/global/operations", + "parameterOrder": [ + "project" + ], + "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.", + "id": "compute.globalOperations.list", + "httpMethod": "GET", + "parameters": { + "maxResults": { + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "default": "500", + "location": "query", + "format": "uint32" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + } + } + }, + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/operations/{operation}", + "parameters": { + "operation": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path", + "description": "Name of the Operations resource to delete." + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "flatPath": "projects/{project}/global/operations/{operation}", + "parameterOrder": [ + "project", + "operation" + ], + "id": "compute.globalOperations.delete", + "description": "Deletes the specified Operations resource.", + "httpMethod": "DELETE" + }, + "get": { + "parameterOrder": [ + "project", + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/operations/{operation}", + "description": "Retrieves the specified Operations resource.", + "id": "compute.globalOperations.get", + "path": "projects/{project}/global/operations/{operation}", + "parameters": { + "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", + "type": "string", + "description": "Project ID for this request.", + "required": true + }, + "operation": { + "location": "path", + "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}", + "type": "string", + "required": true + } + }, + "httpMethod": "GET" + } + } + }, + "networkEdgeSecurityServices": { + "methods": { + "delete": { + "httpMethod": "DELETE", + "parameters": { + "region": { + "required": true, + "description": "Name of the region scoping this request.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "networkEdgeSecurityService": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the network edge security service to delete." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified service.", + "id": "compute.networkEdgeSecurityServices.delete", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}" + }, + "patch": { + "httpMethod": "PATCH", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "request": { + "$ref": "NetworkEdgeSecurityService" + }, + "description": "Patches the specified policy with the data included in the request.", + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "id": "compute.networkEdgeSecurityServices.patch", + "response": { + "$ref": "Operation" + }, + "parameters": { + "paths": { + "type": "string", + "location": "query", + "repeated": true + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "location": "query", + "type": "string", + "format": "google-fieldmask", + "description": "Indicates fields to be updated as part of this request." + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "networkEdgeSecurityService": { + "location": "path", + "required": true, + "description": "Name of the network edge security service to update.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "aggregatedList": { + "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices", + "path": "projects/{project}/aggregated/networkEdgeSecurityServices", + "id": "compute.networkEdgeSecurityServices.aggregatedList", + "parameters": { + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string", + "description": "Name of the project scoping this request." + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "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" + }, + "maxResults": { + "format": "uint32", + "type": "integer", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "default": "500" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "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" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + } + }, + "response": { + "$ref": "NetworkEdgeSecurityServiceAggregatedList" + }, + "parameterOrder": [ + "project" + ] + }, + "get": { + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "GET", + "id": "compute.networkEdgeSecurityServices.get", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "description": "Gets a specified 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" + ], + "parameters": { + "networkEdgeSecurityService": { + "location": "path", + "description": "Name of the network edge security service to get.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "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])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path" + }, + "region": { + "required": true, + "description": "Name of the region scoping this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + } + }, + "insert": { + "description": "Creates a new service in the specified project using the data included in the request.", + "parameterOrder": [ + "project", + "region" + ], + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices", + "parameters": { + "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])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "validateOnly": { + "type": "boolean", + "description": "If true, the request will not be committed.", + "location": "query" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "location": "path" + } + }, + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices", + "httpMethod": "POST", + "id": "compute.networkEdgeSecurityServices.insert", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "NetworkEdgeSecurityService" + } + } + } + }, + "targetHttpProxies": { + "methods": { + "get": { + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.", + "httpMethod": "GET", + "response": { + "$ref": "TargetHttpProxy" + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "parameters": { + "targetHttpProxy": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetHttpProxy resource to return.", + "required": true + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "id": "compute.targetHttpProxies.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}" + }, + "list": { + "response": { + "$ref": "TargetHttpProxyList" + }, + "path": "projects/{project}/global/targetHttpProxies", + "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.", + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/global/targetHttpProxies", + "parameters": { + "maxResults": { + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "default": "500", + "type": "integer", + "minimum": "0" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "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", + "description": "Project ID for this request.", + "required": true, + "type": "string" + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + } + }, + "id": "compute.targetHttpProxies.list", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "id": "compute.targetHttpProxies.patch", + "parameters": { + "targetHttpProxy": { + "type": "string", + "location": "path", + "required": true, + "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}" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "required": true, + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "TargetHttpProxy" + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "PATCH", + "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.", + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}" + }, + "aggregatedList": { + "parameterOrder": [ + "project" + ], + "httpMethod": "GET", + "path": "projects/{project}/aggregated/targetHttpProxies", + "parameters": { + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path", + "description": "Name of the project scoping this request." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "type": "integer", + "location": "query", + "minimum": "0", + "default": "500" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "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" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + } + }, + "id": "compute.targetHttpProxies.aggregatedList", + "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.", + "response": { + "$ref": "TargetHttpProxyAggregatedList" + }, + "flatPath": "projects/{project}/aggregated/targetHttpProxies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "httpMethod": "POST", + "flatPath": "projects/{project}/global/targetHttpProxies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "TargetHttpProxy" + }, + "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.", + "path": "projects/{project}/global/targetHttpProxies", + "response": { + "$ref": "Operation" + }, + "id": "compute.targetHttpProxies.insert" + }, + "delete": { + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "response": { + "$ref": "Operation" + }, + "httpMethod": "DELETE", + "parameters": { + "targetHttpProxy": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the TargetHttpProxy resource to delete.", + "type": "string" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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", + "type": "string", + "required": true, + "description": "Project ID for this request." + } + }, + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.targetHttpProxies.delete", + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "description": "Deletes the specified TargetHttpProxy resource." + }, + "setUrlMap": { + "httpMethod": "POST", + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "request": { + "$ref": "UrlMapReference" + }, + "parameters": { + "targetHttpProxy": { + "required": true, + "location": "path", + "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}", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "id": "compute.targetHttpProxies.setUrlMap", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the URL map for TargetHttpProxy.", + "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap" + } + } + }, + "globalForwardingRules": { + "methods": { + "delete": { + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "forwardingRule": { + "description": "Name of the ForwardingRule resource to delete.", + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "forwardingRule" + ], + "id": "compute.globalForwardingRules.delete", + "httpMethod": "DELETE", + "description": "Deletes the specified GlobalForwardingRule resource.", + "path": "projects/{project}/global/forwardingRules/{forwardingRule}" + }, + "get": { + "httpMethod": "GET", + "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", + "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.", + "parameters": { + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "forwardingRule": { + "required": true, + "location": "path", + "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}", + "type": "string" + } + }, + "id": "compute.globalForwardingRules.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "forwardingRule" + ], + "response": { + "$ref": "ForwardingRule" + }, + "path": "projects/{project}/global/forwardingRules/{forwardingRule}" + }, + "insert": { + "parameterOrder": [ + "project" + ], + "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.", + "httpMethod": "POST", + "id": "compute.globalForwardingRules.insert", + "request": { + "$ref": "ForwardingRule" + }, + "flatPath": "projects/{project}/global/forwardingRules", + "path": "projects/{project}/global/forwardingRules", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string", + "location": "path" + } + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "parameters": { + "maxResults": { + "format": "uint32", + "minimum": "0", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "type": "integer" + }, + "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", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + } + }, + "flatPath": "projects/{project}/global/forwardingRules", + "httpMethod": "GET", + "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.", + "id": "compute.globalForwardingRules.list", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/global/forwardingRules", + "response": { + "$ref": "ForwardingRuleList" + } + }, + "setLabels": { + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "parameterOrder": [ + "project", + "resource" + ], + "id": "compute.globalForwardingRules.setLabels", + "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation.", + "parameters": { + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "location": "path", + "type": "string", + "description": "Name or id of the resource for this request." + } + }, + "flatPath": "projects/{project}/global/forwardingRules/{resource}/setLabels", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/forwardingRules/{resource}/setLabels" + }, + "setTarget": { + "parameters": { + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "forwardingRule": { + "type": "string", + "required": true, + "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" + } + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "forwardingRule" + ], + "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", + "request": { + "$ref": "TargetReference" + }, + "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.", + "httpMethod": "POST", + "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", + "id": "compute.globalForwardingRules.setTarget", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "patch": { + "request": { + "$ref": "ForwardingRule" + }, + "id": "compute.globalForwardingRules.patch", + "httpMethod": "PATCH", + "path": "projects/{project}/global/forwardingRules/{forwardingRule}", + "parameterOrder": [ + "project", + "forwardingRule" + ], + "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.", + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "forwardingRule": { + "description": "Name of the ForwardingRule resource to patch.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + } + }, + "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "licenseCodes": { + "methods": { + "testIamPermissions": { + "response": { + "$ref": "TestPermissionsResponse" + }, + "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. ", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "type": "string", + "required": true, + "location": "path" + } + }, + "request": { + "$ref": "TestPermissionsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.licenseCodes.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", + "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions" + }, + "get": { + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.licenseCodes.get", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "licenseCode": { + "location": "path", + "type": "string", + "description": "Number corresponding to the License code resource to return.", + "pattern": "[0-9]{0,61}?", + "required": true + } + }, + "parameterOrder": [ + "project", + "licenseCode" + ], + "path": "projects/{project}/global/licenseCodes/{licenseCode}", + "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. ", + "response": { + "$ref": "LicenseCode" + }, + "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}" + } + } + }, + "targetInstances": { + "methods": { + "list": { + "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.", + "path": "projects/{project}/zones/{zone}/targetInstances", + "parameters": { + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "zone": { + "required": true, + "type": "string", + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "type": "integer", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "default": "500", + "minimum": "0" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/zones/{zone}/targetInstances", + "id": "compute.targetInstances.list", + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "TargetInstanceList" + }, + "httpMethod": "GET" + }, + "aggregatedList": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.targetInstances.aggregatedList", + "parameters": { + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "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" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "maxResults": { + "default": "500", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "type": "integer", + "location": "query" + }, + "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])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "response": { + "$ref": "TargetInstanceAggregatedList" + }, + "httpMethod": "GET", + "path": "projects/{project}/aggregated/targetInstances", + "description": "Retrieves an aggregated list of target instances.", + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/aggregated/targetInstances" + }, + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true + }, + "zone": { + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the zone scoping this request.", + "type": "string" + }, + "targetInstance": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetInstance resource to delete.", + "required": true, + "location": "path", + "type": "string" + } + }, + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetInstance resource.", + "id": "compute.targetInstances.delete", + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}" + }, + "insert": { + "request": { + "$ref": "TargetInstance" + }, + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "required": true, + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + } + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/targetInstances", + "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.", + "path": "projects/{project}/zones/{zone}/targetInstances", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "zone" + ], + "id": "compute.targetInstances.insert" + }, + "get": { + "id": "compute.targetInstances.get", + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "response": { + "$ref": "TargetInstance" + }, + "parameters": { + "zone": { + "required": true, + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string" + }, + "targetInstance": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the TargetInstance resource to return." + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request." + } + } + }, + "vpnTunnels": { + "methods": { + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "vpnTunnel": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the VpnTunnel resource to delete.", + "type": "string", + "location": "path" + }, + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "region": { + "type": "string", + "required": true, + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "response": { + "$ref": "Operation" + }, + "id": "compute.vpnTunnels.delete", + "parameterOrder": [ + "project", + "region", + "vpnTunnel" + ], + "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "description": "Deletes the specified VpnTunnel resource.", + "httpMethod": "DELETE" + }, + "get": { + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "id": "compute.vpnTunnels.get", + "parameters": { + "region": { + "required": true, + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string" + }, + "vpnTunnel": { + "description": "Name of the VpnTunnel resource to return.", + "type": "string", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true + } + }, + "parameterOrder": [ + "project", + "region", + "vpnTunnel" + ], + "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.", + "response": { + "$ref": "VpnTunnel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET" + }, + "setLabels": { + "id": "compute.vpnTunnels.setLabels", + "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "resource": { + "required": true, + "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}", + "type": "string", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "description": "The region for this request.", + "required": true + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "insert": { + "parameters": { + "region": { + "location": "path", + "description": "Name of the region for this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region" + ], + "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels", + "id": "compute.vpnTunnels.insert", + "request": { + "$ref": "VpnTunnel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/vpnTunnels" + }, + "aggregatedList": { + "flatPath": "projects/{project}/aggregated/vpnTunnels", + "httpMethod": "GET", + "description": "Retrieves an aggregated list of VPN tunnels.", + "parameters": { + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "format": "uint32", + "minimum": "0", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "default": "500" + }, + "includeAllScopes": { + "type": "boolean", + "location": "query", + "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." + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + } + }, + "response": { + "$ref": "VpnTunnelAggregatedList" + }, + "id": "compute.vpnTunnels.aggregatedList", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/aggregated/vpnTunnels", + "parameterOrder": [ + "project" + ] + }, + "list": { + "parameterOrder": [ + "project", + "region" + ], + "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.vpnTunnels.list", + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/vpnTunnels", + "parameters": { + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "location": "path" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "maxResults": { + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + } + }, + "response": { + "$ref": "VpnTunnelList" + }, + "flatPath": "projects/{project}/regions/{region}/vpnTunnels" + } + } + }, + "projects": { + "methods": { + "getXpnResources": { + "description": "Gets service resources (a.k.a service project) associated with this host project.", + "flatPath": "projects/{project}/getXpnResources", + "response": { + "$ref": "ProjectsGetXpnResources" + }, + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "maxResults": { + "format": "uint32", + "minimum": "0", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "default": "500" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "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])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true + } + }, + "id": "compute.projects.getXpnResources", + "path": "projects/{project}/getXpnResources" + }, + "setDefaultNetworkTier": { + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/setDefaultNetworkTier", + "id": "compute.projects.setDefaultNetworkTier", + "request": { + "$ref": "ProjectsSetDefaultNetworkTierRequest" + }, + "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.", + "path": "projects/{project}/setDefaultNetworkTier", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.projects.get", + "httpMethod": "GET", + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "flatPath": "projects/{project}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}", + "response": { + "$ref": "Project" + }, + "parameterOrder": [ + "project" + ], + "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." + }, + "listXpnHosts": { + "parameters": { + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "maxResults": { + "default": "500", + "location": "query", + "format": "uint32", + "minimum": "0", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + } + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/listXpnHosts", + "description": "Lists all shared VPC host projects visible to the user in an organization.", + "id": "compute.projects.listXpnHosts", + "request": { + "$ref": "ProjectsListXpnHostsRequest" + }, + "flatPath": "projects/{project}/listXpnHosts", + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "XpnHostList" + } + }, + "enableXpnHost": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/enableXpnHost", + "parameterOrder": [ + "project" + ], + "description": "Enable this project as a shared VPC host project.", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/enableXpnHost", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "id": "compute.projects.enableXpnHost" + }, + "disableXpnHost": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "flatPath": "projects/{project}/disableXpnHost", + "path": "projects/{project}/disableXpnHost", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path", + "type": "string" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "id": "compute.projects.disableXpnHost", + "description": "Disable this project as a shared VPC host project." + }, + "moveInstance": { + "httpMethod": "POST", + "parameters": { + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string" + } + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.projects.moveInstance", + "parameterOrder": [ + "project" + ], + "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).", + "flatPath": "projects/{project}/moveInstance", + "path": "projects/{project}/moveInstance", + "request": { + "$ref": "InstanceMoveRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setUsageExportBucket": { + "flatPath": "projects/{project}/setUsageExportBucket", + "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" + ], + "path": "projects/{project}/setUsageExportBucket", + "request": { + "$ref": "UsageExportLocation" + }, + "id": "compute.projects.setUsageExportBucket", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "parameterOrder": [ + "project" + ], + "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." + }, + "getXpnHost": { + "id": "compute.projects.getXpnHost", + "httpMethod": "GET", + "response": { + "$ref": "Project" + }, + "parameters": { + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "parameterOrder": [ + "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.", + "flatPath": "projects/{project}/getXpnHost", + "path": "projects/{project}/getXpnHost" + }, + "enableXpnResource": { + "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.", + "path": "projects/{project}/enableXpnResource", + "httpMethod": "POST", + "flatPath": "projects/{project}/enableXpnResource", + "id": "compute.projects.enableXpnResource", + "request": { + "$ref": "ProjectsEnableXpnResourceRequest" + }, + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "moveDisk": { + "flatPath": "projects/{project}/moveDisk", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } + }, + "path": "projects/{project}/moveDisk", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "DiskMoveRequest" + }, + "description": "Moves a persistent disk from one zone to another.", + "parameterOrder": [ + "project" + ], + "id": "compute.projects.moveDisk" + }, + "disableXpnResource": { + "request": { + "$ref": "ProjectsDisableXpnResourceRequest" + }, + "parameterOrder": [ + "project" + ], + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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", + "description": "Project ID for this request.", + "required": true, + "type": "string" + } + }, + "id": "compute.projects.disableXpnResource", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/disableXpnResource", + "httpMethod": "POST", + "flatPath": "projects/{project}/disableXpnResource", + "response": { + "$ref": "Operation" + }, + "description": "Disable a service resource (also known as service project) associated with this host project." + }, + "setCommonInstanceMetadata": { + "flatPath": "projects/{project}/setCommonInstanceMetadata", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } + }, + "path": "projects/{project}/setCommonInstanceMetadata", + "id": "compute.projects.setCommonInstanceMetadata", + "httpMethod": "POST", + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Metadata" + }, + "description": "Sets metadata common to all instances within the specified project using the data included in the request.", + "response": { + "$ref": "Operation" + } + } + } + }, + "packetMirrorings": { + "methods": { + "insert": { + "path": "projects/{project}/regions/{region}/packetMirrorings", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "PacketMirroring" + }, + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "region": { + "type": "string", + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true + } + }, + "flatPath": "projects/{project}/regions/{region}/packetMirrorings", + "httpMethod": "POST", + "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.", + "response": { + "$ref": "Operation" + }, + "id": "compute.packetMirrorings.insert", + "parameterOrder": [ + "project", + "region" + ] + }, + "aggregatedList": { + "response": { + "$ref": "PacketMirroringAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/aggregated/packetMirrorings", + "description": "Retrieves an aggregated list of packetMirrorings.", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "required": true + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "type": "integer", + "minimum": "0", + "location": "query", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "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.", + "type": "boolean", + "location": "query" + } + }, + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "id": "compute.packetMirrorings.aggregatedList", + "flatPath": "projects/{project}/aggregated/packetMirrorings" + }, + "list": { + "response": { + "$ref": "PacketMirroringList" + }, + "parameters": { + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "maxResults": { + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "minimum": "0", + "location": "query", + "default": "500" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "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" + }, + "region": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request.", + "location": "path" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + } + }, + "id": "compute.packetMirrorings.list", + "httpMethod": "GET", + "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.", + "parameterOrder": [ + "project", + "region" + ], + "path": "projects/{project}/regions/{region}/packetMirrorings", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/packetMirrorings" + }, + "testIamPermissions": { + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "resource": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "region": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "The name of the region for this request.", + "required": true + } + }, + "id": "compute.packetMirrorings.testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", + "httpMethod": "POST", + "response": { + "$ref": "TestPermissionsResponse" + }, + "request": { + "$ref": "TestPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified resource." + }, + "get": { + "parameterOrder": [ + "project", + "region", + "packetMirroring" + ], + "response": { + "$ref": "PacketMirroring" + }, + "description": "Returns the specified PacketMirroring resource.", + "id": "compute.packetMirrorings.get", + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "parameters": { + "packetMirroring": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the PacketMirroring resource to return.", + "type": "string" + }, + "region": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "Name of the region for this request." + }, + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}" + }, + "delete": { + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region", + "packetMirroring" + ], + "description": "Deletes the specified PacketMirroring resource.", + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string", + "description": "Name of the region for this request." + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "packetMirroring": { + "required": true, + "type": "string", + "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" + } + }, + "id": "compute.packetMirrorings.delete", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}" + }, + "patch": { + "response": { + "$ref": "Operation" + }, + "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.", + "request": { + "$ref": "PacketMirroring" + }, + "parameterOrder": [ + "project", + "region", + "packetMirroring" + ], + "httpMethod": "PATCH", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "parameters": { + "region": { + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request." + }, + "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])?))", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "packetMirroring": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "location": "path", + "description": "Name of the PacketMirroring resource to patch.", + "type": "string" + } + }, + "id": "compute.packetMirrorings.patch", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}" + } + } + }, + "regionSslCertificates": { + "methods": { + "insert": { + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region" + ], + "id": "compute.regionSslCertificates.insert", + "request": { + "$ref": "SslCertificate" + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/sslCertificates", + "parameters": { + "project": { + "location": "path", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request", + "path": "projects/{project}/regions/{region}/sslCertificates" + }, + "get": { + "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "httpMethod": "GET", + "parameters": { + "project": { + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "sslCertificate": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the SslCertificate resource to return.", + "type": "string" + }, + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "location": "path", + "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 SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.", + "id": "compute.regionSslCertificates.get", + "response": { + "$ref": "SslCertificate" + }, + "parameterOrder": [ + "project", + "region", + "sslCertificate" + ] + }, + "delete": { + "description": "Deletes the specified SslCertificate resource in the region.", + "parameterOrder": [ + "project", + "region", + "sslCertificate" + ], + "id": "compute.regionSslCertificates.delete", + "httpMethod": "DELETE", + "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "sslCertificate": { + "required": true, + "type": "string", + "location": "path", + "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}" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path", + "required": true, + "description": "Name of the region scoping this request." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + } + }, + "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "response": { + "$ref": "Operation" + } + }, + "list": { + "httpMethod": "GET", + "parameters": { + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "type": "integer", + "location": "query", + "default": "500", + "format": "uint32" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "Name of the region scoping this request.", + "location": "path", + "required": true + } + }, + "path": "projects/{project}/regions/{region}/sslCertificates", + "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.", + "parameterOrder": [ + "project", + "region" + ], + "id": "compute.regionSslCertificates.list", + "flatPath": "projects/{project}/regions/{region}/sslCertificates" + } + } + }, + "interconnectLocations": { + "methods": { + "get": { + "response": { + "$ref": "InterconnectLocation" + }, + "id": "compute.interconnectLocations.get", + "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}", + "httpMethod": "GET", + "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}", + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "interconnectLocation": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the interconnect location to return.", + "location": "path", + "required": true + } + }, + "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.", + "parameterOrder": [ + "project", + "interconnectLocation" + ] + }, + "list": { + "description": "Retrieves the list of interconnect locations available to the specified project.", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.interconnectLocations.list", + "flatPath": "projects/{project}/global/interconnectLocations", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/global/interconnectLocations", + "parameters": { + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "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`)", + "format": "uint32", + "default": "500", + "type": "integer", + "location": "query", + "minimum": "0" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + } + }, + "response": { + "$ref": "InterconnectLocationList" + } + } + } + }, + "targetTcpProxies": { + "methods": { + "setBackendService": { + "id": "compute.targetTcpProxies.setBackendService", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", + "request": { + "$ref": "TargetTcpProxiesSetBackendServiceRequest" + }, + "response": { + "$ref": "Operation" + }, + "description": "Changes the BackendService for TargetTcpProxy.", + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "httpMethod": "POST", + "parameters": { + "targetTcpProxy": { + "location": "path", + "required": true, + "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}", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "required": true + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "parameterOrder": [ + "project" + ], + "id": "compute.targetTcpProxies.list", + "response": { + "$ref": "TargetTcpProxyList" + }, + "httpMethod": "GET", + "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.", + "parameters": { + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + } + }, + "path": "projects/{project}/global/targetTcpProxies", + "flatPath": "projects/{project}/global/targetTcpProxies" + }, + "setProxyHeader": { + "httpMethod": "POST", + "description": "Changes the ProxyHeaderType for TargetTcpProxy.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", + "id": "compute.targetTcpProxies.setProxyHeader", + "parameters": { + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "required": true + }, + "targetTcpProxy": { + "location": "path", + "required": true, + "type": "string", + "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}" + } + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "request": { + "$ref": "TargetTcpProxiesSetProxyHeaderRequest" + }, + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader" + }, + "delete": { + "httpMethod": "DELETE", + "description": "Deletes the specified TargetTcpProxy resource.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.targetTcpProxies.delete", + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "targetTcpProxy": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name of the TargetTcpProxy resource to delete.", + "required": true + } + }, + "response": { + "$ref": "Operation" + } + }, + "insert": { + "request": { + "$ref": "TargetTcpProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.", + "parameters": { + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "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", + "description": "Project ID for this request." + } + }, + "httpMethod": "POST", + "id": "compute.targetTcpProxies.insert", + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/global/targetTcpProxies", + "path": "projects/{project}/global/targetTcpProxies" + }, + "get": { + "parameters": { + "targetTcpProxy": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "description": "Name of the TargetTcpProxy resource to return." + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + } + }, + "httpMethod": "GET", + "id": "compute.targetTcpProxies.get", + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "TargetTcpProxy" + }, + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "reservations": { + "methods": { + "getIamPolicy": { + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "format": "int32", + "type": "integer", + "description": "Requested IAM Policy version.", + "location": "query" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "zone": { + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "The name of the zone for this request." + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string", + "required": true + } + }, + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", + "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", + "httpMethod": "GET", + "response": { + "$ref": "Policy" + }, + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "id": "compute.reservations.getIamPolicy" + }, + "setIamPolicy": { + "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "description": "The name of the zone for this request." + } + }, + "response": { + "$ref": "Policy" + }, + "httpMethod": "POST", + "id": "compute.reservations.setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "response": { + "$ref": "ReservationList" + }, + "id": "compute.reservations.list", + "httpMethod": "GET", + "description": "A list of all the reservations that have been configured for the specified project in specified zone.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/zones/{zone}/reservations", + "path": "projects/{project}/zones/{zone}/reservations", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "minimum": "0", + "format": "uint32", + "default": "500", + "type": "integer", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "required": true + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "zone" + ] + }, + "delete": { + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified reservation.", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "zone", + "reservation" + ], + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", + "httpMethod": "DELETE", + "id": "compute.reservations.delete", + "parameters": { + "reservation": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the reservation to delete.", + "location": "path", + "type": "string", + "required": true + }, + "project": { + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request." + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string", + "description": "Name of the zone for this request." + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + } + }, + "insert": { + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "zone": { + "description": "Name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" + } + }, + "flatPath": "projects/{project}/zones/{zone}/reservations", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "Reservation" + }, + "description": "Creates a new reservation. For more information, read Reserving zonal resources.", + "id": "compute.reservations.insert", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone" + ], + "path": "projects/{project}/zones/{zone}/reservations" + }, + "aggregatedList": { + "description": "Retrieves an aggregated list of reservations.", + "id": "compute.reservations.aggregatedList", + "path": "projects/{project}/aggregated/reservations", + "response": { + "$ref": "ReservationAggregatedList" + }, + "flatPath": "projects/{project}/aggregated/reservations", + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "maxResults": { + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "type": "integer", + "location": "query" + }, + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "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])?))", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + } + } + }, + "get": { + "httpMethod": "GET", + "id": "compute.reservations.get", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", + "parameters": { + "reservation": { + "description": "Name of the reservation to retrieve.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "zone": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the zone for this request." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "zone", + "reservation" + ], + "description": "Retrieves information about the specified reservation.", + "response": { + "$ref": "Reservation" + } + }, + "testIamPermissions": { + "request": { + "$ref": "TestPermissionsRequest" + }, + "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", + "id": "compute.reservations.testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "TestPermissionsResponse" + }, + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", + "parameters": { + "project": { + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "type": "string", + "required": true, + "location": "path" + }, + "resource": { + "required": true, + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + } + }, + "update": { + "parameterOrder": [ + "project", + "zone", + "reservation" + ], + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "request": { + "$ref": "Reservation" + }, + "description": "Update share settings of the reservation.", + "httpMethod": "PATCH", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "description": "Name of the zone for this request." + }, + "reservation": { + "required": true, + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the reservation to update." + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "updateMask": { + "type": "string", + "format": "google-fieldmask", + "location": "query", + "description": "Update_mask indicates fields to be updated as part of this request." + }, + "paths": { + "repeated": true, + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.reservations.update", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "resize": { + "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.", + "request": { + "$ref": "ReservationsResizeRequest" + }, + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", + "response": { + "$ref": "Operation" + }, + "id": "compute.reservations.resize", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", + "parameterOrder": [ + "project", + "zone", + "reservation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "reservation": { + "required": true, + "type": "string", + "location": "path", + "description": "Name of the reservation to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "zone": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the zone for this request.", + "type": "string", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "httpMethod": "POST" + } + } + }, + "regionHealthChecks": { + "methods": { + "patch": { + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "httpMethod": "PATCH", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "request": { + "$ref": "HealthCheck" + }, + "parameterOrder": [ + "project", + "region", + "healthCheck" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "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.", + "parameters": { + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "location": "path" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "location": "path", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "healthCheck": { + "description": "Name of the HealthCheck resource to patch.", + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "id": "compute.regionHealthChecks.patch" + }, + "delete": { + "parameterOrder": [ + "project", + "region", + "healthCheck" + ], + "parameters": { + "healthCheck": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the HealthCheck resource to delete.", + "location": "path" + }, + "region": { + "required": true, + "location": "path", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true + } + }, + "httpMethod": "DELETE", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.regionHealthChecks.delete", + "description": "Deletes the specified HealthCheck resource.", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}" + }, + "get": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "HealthCheck" + }, + "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", + "httpMethod": "GET", + "id": "compute.regionHealthChecks.get", + "parameterOrder": [ + "project", + "region", + "healthCheck" + ], + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "parameters": { + "healthCheck": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "Name of the HealthCheck resource to return.", + "required": true + }, + "project": { + "type": "string", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "region": { + "description": "Name of the region scoping this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + } + }, + "insert": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/healthChecks", + "httpMethod": "POST", + "request": { + "$ref": "HealthCheck" + }, + "parameterOrder": [ + "project", + "region" + ], + "path": "projects/{project}/regions/{region}/healthChecks", + "response": { + "$ref": "Operation" + }, + "id": "compute.regionHealthChecks.insert", + "description": "Creates a HealthCheck resource in the specified project using the data included in the request.", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "region": { + "required": true, + "description": "Name of the region scoping this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path" + } + } + }, + "list": { + "flatPath": "projects/{project}/regions/{region}/healthChecks", + "parameters": { + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "region": { + "location": "path", + "description": "Name of the region scoping this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "maxResults": { + "minimum": "0", + "type": "integer", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "default": "500" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + } + }, + "id": "compute.regionHealthChecks.list", + "httpMethod": "GET", + "response": { + "$ref": "HealthCheckList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/healthChecks", + "description": "Retrieves the list of HealthCheck resources available to the specified project.", + "parameterOrder": [ + "project", + "region" + ] + }, + "update": { + "parameters": { + "region": { + "required": true, + "type": "string", + "location": "path", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "healthCheck": { + "required": true, + "type": "string", + "location": "path", + "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}" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "region", + "healthCheck" + ], + "description": "Updates a HealthCheck resource in the specified project using the data included in the request.", + "httpMethod": "PUT", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "HealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.regionHealthChecks.update" + } + } + }, + "zoneOperations": { + "methods": { + "delete": { + "path": "projects/{project}/zones/{zone}/operations/{operation}", + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", + "parameters": { + "project": { + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request." + }, + "zone": { + "type": "string", + "location": "path", + "description": "Name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "operation": { + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the Operations resource to delete." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified zone-specific Operations resource.", + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "id": "compute.zoneOperations.delete", + "httpMethod": "DELETE" + }, + "get": { + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "path": "projects/{project}/zones/{zone}/operations/{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.", + "httpMethod": "GET", + "id": "compute.zoneOperations.get", + "parameters": { + "operation": { + "type": "string", + "required": true, + "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" + }, + "zone": { + "required": true, + "description": "Name of the zone for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } + }, + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}" + }, + "wait": { + "parameters": { + "zone": { + "type": "string", + "description": "Name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "operation": { + "location": "path", + "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}", + "type": "string", + "required": true + }, + "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])?))", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait", + "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`. ", + "id": "compute.zoneOperations.wait", + "path": "projects/{project}/zones/{zone}/operations/{operation}/wait", + "httpMethod": "POST" + }, + "list": { + "path": "projects/{project}/zones/{zone}/operations", + "httpMethod": "GET", + "id": "compute.zoneOperations.list", + "parameters": { + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "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`)", + "format": "uint32", + "location": "query", + "default": "500", + "minimum": "0", + "type": "integer" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "zone": { + "description": "Name of the zone for request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + } + }, + "description": "Retrieves a list of Operation resources contained within the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/operations", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "OperationList" + }, + "parameterOrder": [ + "project", + "zone" + ] + } + } + }, + "machineTypes": { + "methods": { + "get": { + "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.", + "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", + "parameters": { + "zone": { + "location": "path", + "required": true, + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "machineType": { + "type": "string", + "location": "path", + "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}", + "required": true + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + } + }, + "id": "compute.machineTypes.get", + "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}", + "parameterOrder": [ + "project", + "zone", + "machineType" + ], + "response": { + "$ref": "MachineType" + }, + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "zone" + ], + "description": "Retrieves a list of machine types available to the specified project.", + "response": { + "$ref": "MachineTypeList" + }, + "httpMethod": "GET", + "id": "compute.machineTypes.list", + "parameters": { + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request.", + "location": "path", + "required": true, + "type": "string" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "minimum": "0", + "type": "integer", + "default": "500", + "format": "uint32" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + } + }, + "flatPath": "projects/{project}/zones/{zone}/machineTypes", + "path": "projects/{project}/zones/{zone}/machineTypes" + }, + "aggregatedList": { + "parameters": { + "includeAllScopes": { + "type": "boolean", + "location": "query", + "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." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32", + "default": "500" + }, + "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])?))", + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + } + }, + "path": "projects/{project}/aggregated/machineTypes", + "response": { + "$ref": "MachineTypeAggregatedList" + }, + "httpMethod": "GET", + "description": "Retrieves an aggregated list of machine types.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/aggregated/machineTypes", + "id": "compute.machineTypes.aggregatedList" + } + } + }, + "publicDelegatedPrefixes": { + "methods": { + "aggregatedList": { + "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.", + "id": "compute.publicDelegatedPrefixes.aggregatedList", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/aggregated/publicDelegatedPrefixes", + "response": { + "$ref": "PublicDelegatedPrefixAggregatedList" + }, + "httpMethod": "GET", + "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes", + "parameters": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "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.", + "type": "boolean", + "location": "query" + }, + "project": { + "description": "Name of the project scoping this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "minimum": "0", + "location": "query", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "type": "integer" + } + } + }, + "delete": { + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "publicDelegatedPrefix": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the PublicDelegatedPrefix resource to delete.", + "type": "string", + "location": "path", + "required": true + }, + "region": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "Name of the region of this request." + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } + }, + "id": "compute.publicDelegatedPrefixes.delete", + "description": "Deletes the specified PublicDelegatedPrefix in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "DELETE", + "response": { + "$ref": "Operation" + } + }, + "list": { + "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.", + "parameterOrder": [ + "project", + "region" + ], + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "response": { + "$ref": "PublicDelegatedPrefixList" + }, + "id": "compute.publicDelegatedPrefixes.list", + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "region": { + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "Name of the region of this request." + }, + "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", + "description": "Project ID for this request." + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "maxResults": { + "format": "uint32", + "minimum": "0", + "default": "500", + "location": "query", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + } + }, + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "httpMethod": "GET" + }, + "get": { + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "parameters": { + "publicDelegatedPrefix": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the PublicDelegatedPrefix resource to return.", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region of this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "description": "Returns the specified PublicDelegatedPrefix resource in the given region.", + "response": { + "$ref": "PublicDelegatedPrefix" + }, + "id": "compute.publicDelegatedPrefixes.get" + }, + "patch": { + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true + }, + "publicDelegatedPrefix": { + "type": "string", + "description": "Name of the PublicDelegatedPrefix resource to patch.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "location": "path" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } + }, + "request": { + "$ref": "PublicDelegatedPrefix" + }, + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "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.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "httpMethod": "PATCH", + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "id": "compute.publicDelegatedPrefixes.patch" + }, + "insert": { + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "id": "compute.publicDelegatedPrefixes.insert", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.", + "request": { + "$ref": "PublicDelegatedPrefix" + }, + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request." + }, + "region": { + "location": "path", + "required": true, + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region" + ] + } + } + }, + "globalNetworkEndpointGroups": { + "methods": { + "attachNetworkEndpoints": { + "parameters": { + "networkEndpointGroup": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "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])?))", + "type": "string", + "required": true, + "location": "path", + "description": "Project ID for this request." + } + }, + "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "response": { + "$ref": "Operation" + }, + "description": "Attach a network endpoint to the specified network endpoint group.", + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "request": { + "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST" + }, + "get": { + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", + "response": { + "$ref": "NetworkEndpointGroup" + }, + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "id": "compute.globalNetworkEndpointGroups.get", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group. It should comply with RFC1035.", + "type": "string", + "required": true, + "location": "path" + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + } + }, + "listNetworkEndpoints": { + "response": { + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + }, + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "description": "Lists the network endpoints in the specified network endpoint group.", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints", + "parameters": { + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "maxResults": { + "location": "query", + "minimum": "0", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "type": "integer" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "networkEndpointGroup": { + "type": "string", + "location": "path", + "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.", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "httpMethod": "POST", + "path": "projects/{project}/global/networkEndpointGroups", + "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", + "request": { + "$ref": "NetworkEndpointGroup" + }, + "flatPath": "projects/{project}/global/networkEndpointGroups", + "response": { + "$ref": "Operation" + }, + "id": "compute.globalNetworkEndpointGroups.insert", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.", + "response": { + "$ref": "Operation" + }, + "id": "compute.globalNetworkEndpointGroups.delete", + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "DELETE", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "type": "string", + "required": true, + "location": "path" + } + } + }, + "detachNetworkEndpoints": { + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "parameters": { + "networkEndpointGroup": { + "required": true, + "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", + "location": "path", + "type": "string" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints", + "request": { + "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest" + }, + "httpMethod": "POST", + "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.", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints" + }, + "list": { + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "maxResults": { + "default": "500", + "minimum": "0", + "type": "integer", + "format": "uint32", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + } + }, + "description": "Retrieves the list of network endpoint groups that are located in the specified project.", + "response": { + "$ref": "NetworkEndpointGroupList" + }, + "parameterOrder": [ + "project" + ], + "id": "compute.globalNetworkEndpointGroups.list", + "flatPath": "projects/{project}/global/networkEndpointGroups", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/global/networkEndpointGroups" + } + } + }, + "globalAddresses": { + "methods": { + "setLabels": { + "parameters": { + "resource": { + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "required": true, + "type": "string", + "location": "path" + }, + "project": { + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" + } + }, + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "id": "compute.globalAddresses.setLabels", + "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "resource" + ], + "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/addresses/{resource}/setLabels", + "response": { + "$ref": "Operation" + } + }, + "delete": { + "description": "Deletes the specified address resource.", + "parameters": { + "address": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "required": true, + "description": "Name of the address resource to delete." + }, + "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", + "type": "string", + "description": "Project ID for this request.", + "required": true + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "address" + ], + "httpMethod": "DELETE", + "path": "projects/{project}/global/addresses/{address}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.globalAddresses.delete", + "flatPath": "projects/{project}/global/addresses/{address}" + }, + "get": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/global/addresses/{address}", + "response": { + "$ref": "Address" + }, + "parameters": { + "address": { + "type": "string", + "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 + }, + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "id": "compute.globalAddresses.get", + "parameterOrder": [ + "project", + "address" + ], + "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.", + "httpMethod": "GET", + "path": "projects/{project}/global/addresses/{address}" + }, + "list": { + "response": { + "$ref": "AddressList" + }, + "httpMethod": "GET", + "flatPath": "projects/{project}/global/addresses", + "id": "compute.globalAddresses.list", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/global/addresses", + "description": "Retrieves a list of global addresses.", + "parameters": { + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "location": "query", + "format": "uint32", + "type": "integer", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0" + }, + "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])?))", + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "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" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + } + } + }, + "insert": { + "description": "Creates an address resource in the specified project by using the data included in the request.", + "id": "compute.globalAddresses.insert", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project" + ], + "parameters": { + "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])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "Address" + }, + "flatPath": "projects/{project}/global/addresses", + "httpMethod": "POST", + "path": "projects/{project}/global/addresses" + } + } + }, + "serviceAttachments": { + "methods": { + "insert": { + "parameterOrder": [ + "project", + "region" + ], + "httpMethod": "POST", + "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.", + "request": { + "$ref": "ServiceAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/serviceAttachments", + "id": "compute.serviceAttachments.insert", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "region": { + "type": "string", + "required": true, + "location": "path", + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "response": { + "$ref": "Operation" + } + }, + "patch": { + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "request": { + "$ref": "ServiceAttachment" + }, + "parameters": { + "region": { + "type": "string", + "description": "The region scoping this request and should conform to RFC1035.", + "required": true, + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "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])?))", + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "serviceAttachment": { + "required": true, + "type": "string", + "location": "path", + "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." + } + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.serviceAttachments.patch", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "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." + }, + "delete": { + "id": "compute.serviceAttachments.delete", + "httpMethod": "DELETE", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "description": "Deletes the specified ServiceAttachment in the given scope", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "region": { + "required": true, + "type": "string", + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "serviceAttachment": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "required": true, + "description": "Name of the ServiceAttachment resource to delete." + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "response": { + "$ref": "Operation" + } + }, + "setIamPolicy": { + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "parameters": { + "region": { + "type": "string", + "location": "path", + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true + }, + "resource": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "type": "string", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "id": "compute.serviceAttachments.setIamPolicy", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region", + "resource" + ], + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy" + }, + "getIamPolicy": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", + "id": "compute.serviceAttachments.getIamPolicy", + "httpMethod": "GET", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "resource": { + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name or id of the resource for this request." + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the region for this request.", + "required": true, + "location": "path", + "type": "string" + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" + }, + "optionsRequestedPolicyVersion": { + "type": "integer", + "location": "query", + "format": "int32", + "description": "Requested IAM Policy version." + } + }, + "response": { + "$ref": "Policy" + } + }, + "testIamPermissions": { + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "POST", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", + "id": "compute.serviceAttachments.testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true + }, + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the region for this request.", + "type": "string", + "location": "path" + }, + "resource": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string" + } + } + }, + "get": { + "httpMethod": "GET", + "description": "Returns the specified ServiceAttachment resource in the given scope.", + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "id": "compute.serviceAttachments.get", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "required": true + }, + "serviceAttachment": { + "description": "Name of the ServiceAttachment resource to return.", + "type": "string", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "region": { + "description": "Name of the region of this request.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "ServiceAttachment" + } + }, + "list": { + "response": { + "$ref": "ServiceAttachmentList" + }, + "id": "compute.serviceAttachments.list", + "parameterOrder": [ + "project", + "region" + ], + "httpMethod": "GET", + "parameters": { + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "type": "integer", + "minimum": "0", + "location": "query" + }, + "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" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "region": { + "location": "path", + "description": "Name of the region of this request.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "description": "Lists the ServiceAttachments for a project in the given scope.", + "path": "projects/{project}/regions/{region}/serviceAttachments", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "aggregatedList": { + "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project.", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "maxResults": { + "minimum": "0", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "format": "uint32", + "type": "integer" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "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])?))", + "required": true, + "type": "string", + "description": "Name of the project scoping this request.", + "location": "path" + }, + "includeAllScopes": { + "type": "boolean", + "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" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + } + }, + "flatPath": "projects/{project}/aggregated/serviceAttachments", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "ServiceAttachmentAggregatedList" + }, + "path": "projects/{project}/aggregated/serviceAttachments", + "id": "compute.serviceAttachments.aggregatedList" + } + } + }, + "regionNotificationEndpoints": { + "methods": { + "insert": { + "id": "compute.regionNotificationEndpoints.insert", + "request": { + "$ref": "NotificationEndpoint" + }, + "response": { + "$ref": "Operation" + }, + "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.", + "parameters": { + "region": { + "required": true, + "location": "path", + "description": "Name of the region scoping this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "required": true + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } + }, + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", + "path": "projects/{project}/regions/{region}/notificationEndpoints", + "parameterOrder": [ + "project", + "region" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST" + }, + "delete": { + "id": "compute.regionNotificationEndpoints.delete", + "description": "Deletes the specified NotificationEndpoint in the given region", + "parameterOrder": [ + "project", + "region", + "notificationEndpoint" + ], + "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "response": { + "$ref": "Operation" + }, + "parameters": { + "region": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "Name of the region scoping this request." + }, + "notificationEndpoint": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "description": "Name of the NotificationEndpoint resource to delete.", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path" + } + }, + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.regionNotificationEndpoints.get", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "response": { + "$ref": "NotificationEndpoint" + }, + "parameterOrder": [ + "project", + "region", + "notificationEndpoint" + ], + "description": "Returns the specified NotificationEndpoint resource in the given region.", + "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "parameters": { + "project": { + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "notificationEndpoint": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the NotificationEndpoint resource to return.", + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET" + }, + "list": { + "id": "compute.regionNotificationEndpoints.list", + "parameterOrder": [ + "project", + "region" + ], + "description": "Lists the NotificationEndpoints for a project in the given region.", + "httpMethod": "GET", + "response": { + "$ref": "NotificationEndpointList" + }, + "path": "projects/{project}/regions/{region}/notificationEndpoints", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + } + } + } + } + }, + "imageFamilyViews": { + "methods": { + "get": { + "parameters": { + "family": { + "description": "Name of the image family to search for.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "The name of the zone for this request.", + "location": "path", + "type": "string" + } + }, + "flatPath": "projects/{project}/zones/{zone}/imageFamilyViews/{family}", + "description": "Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.imageFamilyViews.get", + "response": { + "$ref": "ImageFamilyView" + }, + "httpMethod": "GET", + "parameterOrder": [ + "project", + "zone", + "family" + ], + "path": "projects/{project}/zones/{zone}/imageFamilyViews/{family}" + } + } + }, + "zones": { + "methods": { + "list": { + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/zones", + "httpMethod": "GET", + "description": "Retrieves the list of Zone resources available to the specified project.", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + } + }, + "flatPath": "projects/{project}/zones", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "ZoneList" + }, + "id": "compute.zones.list" + }, + "get": { + "path": "projects/{project}/zones/{zone}", + "flatPath": "projects/{project}/zones/{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. Gets a list of available zones by making a list() request.", + "parameters": { + "project": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "zone": { + "description": "Name of the zone resource to return.", + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "httpMethod": "GET", + "id": "compute.zones.get", + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "Zone" + } + } + } + }, + "diskTypes": { + "methods": { + "get": { + "httpMethod": "GET", + "parameters": { + "diskType": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the disk type to return.", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true + } + }, + "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.", + "parameterOrder": [ + "project", + "zone", + "diskType" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}", + "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}", + "response": { + "$ref": "DiskType" + }, + "id": "compute.diskTypes.get" + }, + "aggregatedList": { + "id": "compute.diskTypes.aggregatedList", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/aggregated/diskTypes", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "maxResults": { + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "minimum": "0", + "format": "uint32", + "default": "500" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "includeAllScopes": { + "type": "boolean", + "location": "query", + "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." + }, + "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" + }, + "project": { + "location": "path", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + } + }, + "flatPath": "projects/{project}/aggregated/diskTypes", + "description": "Retrieves an aggregated list of disk types.", + "httpMethod": "GET", + "response": { + "$ref": "DiskTypeAggregatedList" + } + }, + "list": { + "description": "Retrieves a list of disk types available to the specified project.", + "response": { + "$ref": "DiskTypeList" + }, + "path": "projects/{project}/zones/{zone}/diskTypes", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string" + }, + "zone": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "The name of the zone for this request." + }, + "maxResults": { + "location": "query", + "default": "500", + "minimum": "0", + "format": "uint32", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + } + }, + "id": "compute.diskTypes.list", + "flatPath": "projects/{project}/zones/{zone}/diskTypes", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "zone" + ] + } + } + }, + "regionTargetHttpProxies": { + "methods": { + "get": { + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "targetHttpProxy": { + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetHttpProxy resource to return." + }, + "region": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "Name of the region scoping this request." + } + }, + "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", + "response": { + "$ref": "TargetHttpProxy" + }, + "id": "compute.regionTargetHttpProxies.get", + "parameterOrder": [ + "project", + "region", + "targetHttpProxy" + ], + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}" + }, + "insert": { + "id": "compute.regionTargetHttpProxies.insert", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string", + "description": "Name of the region scoping this request." + } + }, + "parameterOrder": [ + "project", + "region" + ], + "path": "projects/{project}/regions/{region}/targetHttpProxies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.", + "request": { + "$ref": "TargetHttpProxy" + } + }, + "setUrlMap": { + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "region": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "targetHttpProxy": { + "location": "path", + "type": "string", + "description": "Name of the TargetHttpProxy to set a URL map for.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "id": "compute.regionTargetHttpProxies.setUrlMap", + "request": { + "$ref": "UrlMapReference" + }, + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "httpMethod": "POST", + "description": "Changes the URL map for TargetHttpProxy.", + "parameterOrder": [ + "project", + "region", + "targetHttpProxy" + ] + }, + "list": { + "path": "projects/{project}/regions/{region}/targetHttpProxies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "type": "string", + "description": "Name of the region scoping this request." + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "format": "uint32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "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.", + "type": "string", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.", + "response": { + "$ref": "TargetHttpProxyList" + }, + "id": "compute.regionTargetHttpProxies.list", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", + "httpMethod": "GET" + }, + "delete": { + "description": "Deletes the specified TargetHttpProxy resource.", + "parameterOrder": [ + "project", + "region", + "targetHttpProxy" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "DELETE", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "parameters": { + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "type": "string" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "targetHttpProxy": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the TargetHttpProxy resource to delete.", + "location": "path", + "type": "string" + } + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.regionTargetHttpProxies.delete" + } + } + }, + "regionOperations": { + "methods": { + "wait": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "POST", + "id": "compute.regionOperations.wait", + "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait", + "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`. ", + "path": "projects/{project}/regions/{region}/operations/{operation}/wait", + "parameterOrder": [ + "project", + "region", + "operation" + ], + "parameters": { + "operation": { + "description": "Name of the Operations resource to return.", + "location": "path", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "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", + "description": "Project ID for this request." + }, + "region": { + "type": "string", + "required": true, + "location": "path", + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "response": { + "$ref": "Operation" + } + }, + "delete": { + "id": "compute.regionOperations.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/operations/{operation}", + "path": "projects/{project}/regions/{region}/operations/{operation}", + "description": "Deletes the specified region-specific Operations resource.", + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "operation" + ], + "parameters": { + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "description": "Name of the region for this request." + }, + "operation": { + "type": "string", + "required": true, + "description": "Name of the Operations resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string", + "description": "Project ID for this request." + } + } + }, + "list": { + "flatPath": "projects/{project}/regions/{region}/operations", + "response": { + "$ref": "OperationList" + }, + "path": "projects/{project}/regions/{region}/operations", + "httpMethod": "GET", + "description": "Retrieves a list of Operation resources contained within the specified region.", + "id": "compute.regionOperations.list", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "format": "uint32", + "default": "500", + "minimum": "0" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "description": "Name of the region for this request.", + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "get": { + "path": "projects/{project}/regions/{region}/operations/{operation}", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region", + "operation" + ], + "description": "Retrieves the specified region-specific Operations resource.", + "response": { + "$ref": "Operation" + }, + "parameters": { + "operation": { + "required": true, + "description": "Name of the Operations resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "description": "Name of the region for this request." + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/operations/{operation}", + "id": "compute.regionOperations.get" + } + } + }, + "images": { + "methods": { + "insert": { + "parameterOrder": [ + "project" + ], + "parameters": { + "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])?))", + "type": "string", + "required": true, + "location": "path", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "forceCreate": { + "type": "boolean", + "description": "Force image creation if true.", + "location": "query" + } + }, + "id": "compute.images.insert", + "path": "projects/{project}/global/images", + "request": { + "$ref": "Image" + }, + "description": "Creates an image in the specified project using the data included in the request.", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/images", + "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" + ], + "response": { + "$ref": "Operation" + } + }, + "deprecate": { + "id": "compute.images.deprecate", + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "type": "string" + }, + "image": { + "required": true, + "type": "string", + "description": "Image name.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "description": "Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead.", + "request": { + "$ref": "DeprecationStatus" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/images/{image}/deprecate", + "path": "projects/{project}/global/images/{image}/deprecate", + "parameterOrder": [ + "project", + "image" + ], + "httpMethod": "POST" + }, + "list": { + "flatPath": "projects/{project}/global/images", + "response": { + "$ref": "ImageList" + }, + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "default": "500", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + } + }, + "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.", + "path": "projects/{project}/global/images", + "id": "compute.images.list", + "parameterOrder": [ + "project" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "parameters": { + "resource": { + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request." + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true + } + }, + "request": { + "$ref": "TestPermissionsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.images.testIamPermissions", + "httpMethod": "POST", + "path": "projects/{project}/global/images/{resource}/testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/images/{resource}/testIamPermissions", + "response": { + "$ref": "TestPermissionsResponse" + } + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/images/{resource}/getIamPolicy", + "id": "compute.images.getIamPolicy", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "type": "integer", + "location": "query", + "format": "int32" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + }, + "project": { + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "path": "projects/{project}/global/images/{resource}/getIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "response": { + "$ref": "Policy" + } + }, + "setIamPolicy": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "project", + "resource" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "id": "compute.images.setIamPolicy", + "path": "projects/{project}/global/images/{resource}/setIamPolicy", + "parameters": { + "resource": { + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string", + "required": true + }, + "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])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string", + "location": "path" + } + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/global/images/{resource}/setIamPolicy" + }, + "patch": { + "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.", + "httpMethod": "PATCH", + "path": "projects/{project}/global/images/{image}", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "image": { + "description": "Name of the image resource to patch.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + } + }, + "flatPath": "projects/{project}/global/images/{image}", + "request": { + "$ref": "Image" + }, + "id": "compute.images.patch", + "parameterOrder": [ + "project", + "image" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "path": "projects/{project}/global/images/{image}", + "parameterOrder": [ + "project", + "image" + ], + "description": "Deletes the specified image.", + "httpMethod": "DELETE", + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "type": "string", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "image": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "description": "Name of the image resource to delete." + } + }, + "id": "compute.images.delete", + "flatPath": "projects/{project}/global/images/{image}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + } + }, + "getFromFamily": { + "description": "Returns the latest image that is part of an image family and is not deprecated.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "Image" + }, + "path": "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": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + } + }, + "id": "compute.images.getFromFamily", + "parameterOrder": [ + "project", + "family" + ], + "flatPath": "projects/{project}/global/images/family/{family}" + }, + "setLabels": { + "path": "projects/{project}/global/images/{resource}/setLabels", + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/images/{resource}/setLabels", + "httpMethod": "POST", + "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.", + "response": { + "$ref": "Operation" + }, + "id": "compute.images.setLabels", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "project": { + "location": "path", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + } + }, + "request": { + "$ref": "GlobalSetLabelsRequest" + } + }, + "get": { + "id": "compute.images.get", + "parameterOrder": [ + "project", + "image" + ], + "path": "projects/{project}/global/images/{image}", + "parameters": { + "image": { + "location": "path", + "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}", + "required": true, + "type": "string" + }, + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "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. Gets a list of available images by making a list() request.", + "flatPath": "projects/{project}/global/images/{image}", + "httpMethod": "GET", + "response": { + "$ref": "Image" + } + } + } + }, + "healthChecks": { + "methods": { + "aggregatedList": { + "id": "compute.healthChecks.aggregatedList", + "path": "projects/{project}/aggregated/healthChecks", + "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/aggregated/healthChecks", + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "HealthChecksAggregatedList" + }, + "httpMethod": "GET", + "parameters": { + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "format": "uint32", + "type": "integer", + "location": "query" + }, + "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])?))", + "required": true, + "location": "path", + "type": "string", + "description": "Name of the project scoping this request." + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "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.", + "type": "boolean", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + } + } + }, + "get": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "HealthCheck" + }, + "path": "projects/{project}/global/healthChecks/{healthCheck}", + "httpMethod": "GET", + "id": "compute.healthChecks.get", + "parameters": { + "project": { + "required": true, + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "healthCheck": { + "location": "path", + "required": true, + "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}", + "type": "string" + } + }, + "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", + "parameterOrder": [ + "project", + "healthCheck" + ], + "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request." + }, + "patch": { + "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.", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", + "id": "compute.healthChecks.patch", + "request": { + "$ref": "HealthCheck" + }, + "path": "projects/{project}/global/healthChecks/{healthCheck}", + "httpMethod": "PATCH", + "parameterOrder": [ + "project", + "healthCheck" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "healthCheck": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string", + "location": "path", + "description": "Name of the HealthCheck resource to patch." + } + } + }, + "delete": { + "description": "Deletes the specified HealthCheck resource.", + "parameterOrder": [ + "project", + "healthCheck" + ], + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" + }, + "healthCheck": { + "required": true, + "description": "Name of the HealthCheck resource to delete.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/global/healthChecks/{healthCheck}", + "httpMethod": "DELETE", + "id": "compute.healthChecks.delete", + "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "path": "projects/{project}/global/healthChecks", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "description": "Retrieves the list of HealthCheck resources available to the specified project.", + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "location": "query", + "type": "integer", + "format": "uint32", + "default": "500", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + } + }, + "response": { + "$ref": "HealthCheckList" + }, + "id": "compute.healthChecks.list", + "flatPath": "projects/{project}/global/healthChecks", + "parameterOrder": [ + "project" + ] + }, + "update": { + "httpMethod": "PUT", + "description": "Updates a HealthCheck resource in the specified project using the data included in the request.", + "path": "projects/{project}/global/healthChecks/{healthCheck}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", + "request": { + "$ref": "HealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "healthCheck" + ], + "parameters": { + "healthCheck": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "description": "Name of the HealthCheck resource to update.", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path" + } + }, + "id": "compute.healthChecks.update" + }, + "insert": { + "path": "projects/{project}/global/healthChecks", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request." + } + }, + "request": { + "$ref": "HealthCheck" + }, + "parameterOrder": [ + "project" + ], + "flatPath": "projects/{project}/global/healthChecks", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.healthChecks.insert", + "description": "Creates a HealthCheck resource in the specified project using the data included in the request.", + "response": { + "$ref": "Operation" + } + } + } + }, + "regionSecurityPolicies": { + "methods": { + "get": { + "response": { + "$ref": "SecurityPolicy" + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "id": "compute.regionSecurityPolicies.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" + }, + "securityPolicy": { + "type": "string", + "location": "path", + "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}", + "required": true + }, + "region": { + "location": "path", + "required": true, + "description": "Name of the region scoping this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "description": "List all of the ordered rules present in a single specified policy." + }, + "patch": { + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "description": "Patches the specified policy with the data included in the request.", + "id": "compute.regionSecurityPolicies.patch", + "parameters": { + "region": { + "required": true, + "description": "Name of the region scoping this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string", + "description": "Project ID for this request." + }, + "securityPolicy": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path", + "required": true, + "description": "Name of the security policy to update." + } + }, + "request": { + "$ref": "SecurityPolicy" + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "PATCH", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}" + }, + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "region": { + "required": true, + "location": "path", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "securityPolicy": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path", + "required": true, + "description": "Name of the security policy to delete." + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "DELETE", + "id": "compute.regionSecurityPolicies.delete", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "description": "Deletes the specified policy.", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}" + }, + "insert": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.regionSecurityPolicies.insert", + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/regions/{region}/securityPolicies", + "parameters": { + "project": { + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "type": "string", + "description": "Name of the region scoping this request." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "validateOnly": { + "type": "boolean", + "description": "If true, the request will not be committed.", + "location": "query" + } + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/securityPolicies", + "description": "Creates a new policy in the specified project using the data included in the request." + }, + "list": { + "id": "compute.regionSecurityPolicies.list", + "path": "projects/{project}/regions/{region}/securityPolicies", + "httpMethod": "GET", + "parameters": { + "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" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path", + "required": true, + "description": "Name of the region scoping this request." + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "maxResults": { + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "type": "integer", + "location": "query" + } + }, + "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.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies", + "response": { + "$ref": "SecurityPolicyList" + }, + "parameterOrder": [ + "project", + "region" + ] + } + } + }, + "disks": { + "methods": { + "list": { + "id": "compute.disks.list", + "parameterOrder": [ + "project", + "zone" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/zones/{zone}/disks", + "flatPath": "projects/{project}/zones/{zone}/disks", + "httpMethod": "GET", + "response": { + "$ref": "DiskList" + }, + "description": "Retrieves a list of persistent disks contained within the specified zone.", + "parameters": { + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "The name of the zone for this request.", + "required": true + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query" + }, + "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" + }, + "maxResults": { + "default": "500", + "type": "integer", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "location": "query" + } + } + }, + "get": { + "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.", + "parameters": { + "zone": { + "description": "The name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" + }, + "disk": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the persistent disk to return.", + "location": "path" + }, + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } + }, + "httpMethod": "GET", + "response": { + "$ref": "Disk" + }, + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", + "path": "projects/{project}/zones/{zone}/disks/{disk}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "id": "compute.disks.get" + }, + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "disk": { + "location": "path", + "type": "string", + "required": true, + "description": "Name of the persistent disk to delete." + }, + "project": { + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "zone": { + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "description": "The name of the zone for this request." + } + }, + "id": "compute.disks.delete", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/zones/{zone}/disks/{disk}", + "httpMethod": "DELETE", + "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.", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", + "parameterOrder": [ + "project", + "zone", + "disk" + ] + }, + "insert": { + "httpMethod": "POST", + "request": { + "$ref": "Disk" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.disks.insert", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/zones/{zone}/disks", + "parameterOrder": [ + "project", + "zone" + ], + "flatPath": "projects/{project}/zones/{zone}/disks", + "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.", + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" + }, + "sourceImage": { + "location": "query", + "type": "string", + "description": "Source image to restore onto a disk. This field is optional." + }, + "zone": { + "required": true, + "type": "string", + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + } + }, + "setIamPolicy": { + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", + "parameters": { + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string", + "location": "path", + "description": "The name of the zone for this request." + }, + "resource": { + "description": "Name or id of the resource for this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + } + }, + "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", + "id": "compute.disks.setIamPolicy", + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST" + }, + "addResourcePolicies": { + "response": { + "$ref": "Operation" + }, + "id": "compute.disks.addResourcePolicies", + "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.", + "parameters": { + "zone": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "The name of the zone for this request.", + "location": "path" + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "disk": { + "type": "string", + "description": "The disk name for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", + "request": { + "$ref": "DisksAddResourcePoliciesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "request": { + "$ref": "TestPermissionsRequest" + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "id": "compute.disks.testIamPermissions", + "response": { + "$ref": "TestPermissionsResponse" + }, + "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions", + "parameters": { + "zone": { + "description": "The name of the zone for this request.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "resource": { + "required": true, + "description": "Name or id of the resource for this request.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "description": "Returns permissions that a caller has on the specified resource.", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions" + }, + "createSnapshot": { + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "location": "path", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "guestFlush": { + "type": "boolean", + "description": "[Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process.", + "location": "query" + }, + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "required": true, + "description": "The name of the zone for this request." + }, + "disk": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "description": "Name of the persistent disk to snapshot." + } + }, + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "id": "compute.disks.createSnapshot", + "httpMethod": "POST", + "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "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.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "aggregatedList": { + "httpMethod": "GET", + "response": { + "$ref": "DiskAggregatedList" + }, + "flatPath": "projects/{project}/aggregated/disks", + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "required": true + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "type": "integer", + "location": "query", + "minimum": "0", + "format": "uint32" + } + }, + "id": "compute.disks.aggregatedList", + "description": "Retrieves an aggregated list of persistent disks.", + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/aggregated/disks" + }, + "getIamPolicy": { + "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" + }, + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "zone": { + "description": "The name of the zone for this request.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "location": "path", + "description": "Name or id of the resource for this request." + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "id": "compute.disks.getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET" + }, + "setLabels": { + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", + "httpMethod": "POST", + "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.", + "id": "compute.disks.setLabels", + "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "location": "path", + "type": "string" + }, + "resource": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name or id of the resource for this request.", + "location": "path" + } + }, + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "ZoneSetLabelsRequest" + } + }, + "removeResourcePolicies": { + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "id": "compute.disks.removeResourcePolicies", + "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies", + "description": "Removes resource policies from a disk.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "zone": { + "type": "string", + "location": "path", + "description": "The name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "disk": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "The disk name for this request.", + "type": "string", + "required": true + }, + "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", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "httpMethod": "POST", + "request": { + "$ref": "DisksRemoveResourcePoliciesRequest" + } + }, + "resize": { + "parameters": { + "zone": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string", + "description": "The name of the zone for this request." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "disk": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "The name of the persistent disk.", + "required": true + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path" + } + }, + "description": "Resizes the specified persistent disk. You can only increase the size of the disk.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/resize", + "path": "projects/{project}/zones/{zone}/disks/{disk}/resize", + "request": { + "$ref": "DisksResizeRequest" + }, + "httpMethod": "POST", + "id": "compute.disks.resize", + "response": { + "$ref": "Operation" + } + } + } + }, + "regionCommitments": { + "methods": { + "aggregatedList": { + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/aggregated/commitments", + "httpMethod": "GET", + "response": { + "$ref": "CommitmentAggregatedList" + }, + "description": "Retrieves an aggregated list of commitments by region.", + "parameters": { + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "minimum": "0", + "format": "uint32", + "type": "integer", + "default": "500" + }, + "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" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "type": "boolean", + "location": "query", + "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." + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + } + }, + "path": "projects/{project}/aggregated/commitments", + "id": "compute.regionCommitments.aggregatedList" + }, + "get": { + "path": "projects/{project}/regions/{region}/commitments/{commitment}", + "parameterOrder": [ + "project", + "region", + "commitment" + ], + "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", + "response": { + "$ref": "Commitment" + }, + "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.", + "parameters": { + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "region": { + "required": true, + "type": "string", + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "commitment": { + "location": "path", + "description": "Name of the commitment to return.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + } + }, + "id": "compute.regionCommitments.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET" + }, + "update": { + "parameterOrder": [ + "project", + "region", + "commitment" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.regionCommitments.update", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "PATCH", + "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.", + "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string" + }, + "commitment": { + "location": "path", + "description": "Name of the commitment for which auto renew is being updated.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "region": { + "description": "Name of the region for this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "updateMask": { + "type": "string", + "location": "query", + "format": "google-fieldmask", + "description": "update_mask indicates fields to be updated as part of this request." + }, + "paths": { + "location": "query", + "type": "string", + "repeated": true + } + }, + "request": { + "$ref": "Commitment" + }, + "path": "projects/{project}/regions/{region}/commitments/{commitment}" + }, + "list": { + "flatPath": "projects/{project}/regions/{region}/commitments", + "parameterOrder": [ + "project", + "region" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.regionCommitments.list", + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "description": "Name of the region for this request.", + "required": true + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "minimum": "0", + "format": "uint32", + "default": "500" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + } + }, + "httpMethod": "GET", + "response": { + "$ref": "CommitmentList" + }, + "description": "Retrieves a list of commitments contained within the specified region.", + "path": "projects/{project}/regions/{region}/commitments" + }, + "insert": { + "parameters": { + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "type": "string", + "location": "path", + "required": true, + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "path": "projects/{project}/regions/{region}/commitments", + "description": "Creates a commitment in the specified project using the data included in the request.", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.regionCommitments.insert", + "request": { + "$ref": "Commitment" + }, + "parameterOrder": [ + "project", + "region" + ], + "flatPath": "projects/{project}/regions/{region}/commitments", + "response": { + "$ref": "Operation" + } + } + } + }, + "instanceTemplates": { + "methods": { + "insert": { + "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.", + "flatPath": "projects/{project}/global/instanceTemplates", + "path": "projects/{project}/global/instanceTemplates", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.instanceTemplates.insert", + "parameterOrder": [ + "project" + ], + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "InstanceTemplate" + } + }, + "get": { + "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", + "httpMethod": "GET", + "parameters": { + "instanceTemplate": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "The name of the instance template.", + "required": true + }, + "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])?))", + "description": "Project ID for this request.", + "type": "string", + "required": true, + "location": "path" + } + }, + "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.", + "response": { + "$ref": "InstanceTemplate" + }, + "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", + "parameterOrder": [ + "project", + "instanceTemplate" + ], + "id": "compute.instanceTemplates.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy", + "id": "compute.instanceTemplates.getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "response": { + "$ref": "Policy" + }, + "parameters": { + "optionsRequestedPolicyVersion": { + "format": "int32", + "description": "Requested IAM Policy version.", + "type": "integer", + "location": "query" + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string", + "required": true + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "parameterOrder": [ + "project", + "resource" + ] + }, + "list": { + "flatPath": "projects/{project}/global/instanceTemplates", + "response": { + "$ref": "InstanceTemplateList" + }, + "id": "compute.instanceTemplates.list", + "description": "Retrieves a list of instance templates that are contained within the specified project.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "default": "500", + "minimum": "0", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + } + }, + "path": "projects/{project}/global/instanceTemplates" + }, + "testIamPermissions": { + "response": { + "$ref": "TestPermissionsResponse" + }, + "parameterOrder": [ + "project", + "resource" + ], + "description": "Returns permissions that a caller has on the specified resource.", + "parameters": { + "resource": { + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "required": true, + "description": "Name or id of the resource for this request." + }, + "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])?))", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path" + } + }, + "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.instanceTemplates.testIamPermissions", + "httpMethod": "POST", + "flatPath": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions" + }, + "delete": { + "parameterOrder": [ + "project", + "instanceTemplate" + ], + "id": "compute.instanceTemplates.delete", + "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "instanceTemplate": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "The name of the instance template to delete." + }, + "project": { + "location": "path", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "httpMethod": "DELETE", + "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.", + "response": { + "$ref": "Operation" + } + }, + "setIamPolicy": { + "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.instanceTemplates.setIamPolicy", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "resource": { + "required": true, + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "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.", + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", + "request": { + "$ref": "GlobalSetPolicyRequest" + } + } + } + }, + "globalPublicDelegatedPrefixes": { + "methods": { + "get": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "description": "Returns the specified global PublicDelegatedPrefix resource.", + "parameters": { + "publicDelegatedPrefix": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the PublicDelegatedPrefix resource to return.", + "location": "path" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true + } + }, + "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "id": "compute.globalPublicDelegatedPrefixes.get", + "response": { + "$ref": "PublicDelegatedPrefix" + }, + "parameterOrder": [ + "project", + "publicDelegatedPrefix" + ], + "httpMethod": "GET" + }, + "list": { + "id": "compute.globalPublicDelegatedPrefixes.list", + "parameters": { + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "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])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "maxResults": { + "type": "integer", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "format": "uint32", + "location": "query" + } + }, + "description": "Lists the global PublicDelegatedPrefixes for a project.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project" + ], + "httpMethod": "GET", + "flatPath": "projects/{project}/global/publicDelegatedPrefixes", + "path": "projects/{project}/global/publicDelegatedPrefixes", + "response": { + "$ref": "PublicDelegatedPrefixList" + } + }, + "insert": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/publicDelegatedPrefixes", + "httpMethod": "POST", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/global/publicDelegatedPrefixes", + "id": "compute.globalPublicDelegatedPrefixes.insert", + "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "request": { + "$ref": "PublicDelegatedPrefix" + }, + "response": { + "$ref": "Operation" + } + }, + "delete": { + "httpMethod": "DELETE", + "description": "Deletes the specified global PublicDelegatedPrefix.", + "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.globalPublicDelegatedPrefixes.delete", + "parameterOrder": [ + "project", + "publicDelegatedPrefix" + ], + "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "parameters": { + "publicDelegatedPrefix": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string", + "location": "path", + "description": "Name of the PublicDelegatedPrefix resource to delete." + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + } + }, + "patch": { + "response": { + "$ref": "Operation" + }, + "id": "compute.globalPublicDelegatedPrefixes.patch", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "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])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true + }, + "publicDelegatedPrefix": { + "type": "string", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the PublicDelegatedPrefix resource to patch." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "parameterOrder": [ + "project", + "publicDelegatedPrefix" + ], + "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.", + "httpMethod": "PATCH", + "request": { + "$ref": "PublicDelegatedPrefix" + } + } + } + }, + "securityPolicies": { + "methods": { + "addRule": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "SecurityPolicyRule" + }, + "parameterOrder": [ + "project", + "securityPolicy" + ], + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", + "response": { + "$ref": "Operation" + }, + "description": "Inserts a rule into a security policy.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "id": "compute.securityPolicies.addRule", + "parameters": { + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path" + }, + "validateOnly": { + "location": "query", + "type": "boolean", + "description": "If true, the request will not be committed." + }, + "securityPolicy": { + "required": true, + "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", + "type": "string" + } + } + }, + "aggregatedList": { + "response": { + "$ref": "SecurityPoliciesAggregatedList" + }, + "flatPath": "projects/{project}/aggregated/securityPolicies", + "id": "compute.securityPolicies.aggregatedList", + "description": "Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project.", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/aggregated/securityPolicies", + "parameters": { + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "type": "string", + "location": "path", + "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])?))", + "required": true + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "minimum": "0", + "default": "500", + "format": "uint32" + }, + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "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" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET" + }, + "list": { + "path": "projects/{project}/global/securityPolicies", + "response": { + "$ref": "SecurityPolicyList" + }, + "id": "compute.securityPolicies.list", + "description": "List all the policies that have been configured for the specified project.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "type": "integer", + "format": "uint32", + "location": "query", + "minimum": "0", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + } + }, + "flatPath": "projects/{project}/global/securityPolicies", + "httpMethod": "GET" + }, + "get": { + "parameterOrder": [ + "project", + "securityPolicy" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "SecurityPolicy" + }, + "id": "compute.securityPolicies.get", + "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": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "description": "Name of the security policy to get.", + "type": "string" + } + }, + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "description": "List all of the ordered rules present in a single specified policy." + }, + "listPreconfiguredExpressionSets": { + "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", + "parameters": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "project": { + "location": "path", + "required": true, + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "filter": { + "type": "string", + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "default": "500", + "location": "query", + "type": "integer", + "minimum": "0", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + } + }, + "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", + "parameterOrder": [ + "project" + ], + "id": "compute.securityPolicies.listPreconfiguredExpressionSets", + "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.", + "httpMethod": "GET", + "response": { + "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse" + } + }, + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified policy.", + "id": "compute.securityPolicies.delete", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "parameters": { + "securityPolicy": { + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the security policy to delete." + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + } + }, + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}" + }, + "getRule": { + "parameters": { + "securityPolicy": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the security policy to which the queried rule belongs." + }, + "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])?))", + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string" + }, + "priority": { + "description": "The priority of the rule to get from the security policy.", + "location": "query", + "type": "integer", + "format": "int32" + } + }, + "id": "compute.securityPolicies.getRule", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", + "description": "Gets a rule at the specified priority.", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "response": { + "$ref": "SecurityPolicyRule" + }, + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "SecurityPolicy" + }, + "flatPath": "projects/{project}/global/securityPolicies", + "description": "Creates a new policy in the specified project using the data included in the request.", + "parameters": { + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + }, + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.securityPolicies.insert", + "path": "projects/{project}/global/securityPolicies" + }, + "patch": { + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "PATCH", + "description": "Patches the specified policy with the data included in the request. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", + "parameters": { + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "securityPolicy": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the security policy to update.", + "type": "string", + "location": "path" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "request": { + "$ref": "SecurityPolicy" + }, + "id": "compute.securityPolicies.patch", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "path": "projects/{project}/global/securityPolicies/{securityPolicy}" + }, + "patchRule": { + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "SecurityPolicyRule" + }, + "id": "compute.securityPolicies.patchRule", + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "securityPolicy": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "description": "Name of the security policy to update." + }, + "validateOnly": { + "location": "query", + "type": "boolean", + "description": "If true, the request will not be committed." + }, + "priority": { + "format": "int32", + "location": "query", + "type": "integer", + "description": "The priority of the rule to patch." + } + }, + "description": "Patches a rule at the specified priority.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule" + }, + "removeRule": { + "parameterOrder": [ + "project", + "securityPolicy" + ], + "id": "compute.securityPolicies.removeRule", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes a rule at the specified priority.", + "response": { + "$ref": "Operation" + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", + "parameters": { + "securityPolicy": { + "type": "string", + "required": true, + "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" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to remove from the security policy.", + "format": "int32", + "location": "query", + "type": "integer" + } + } + }, + "setLabels": { + "path": "projects/{project}/global/securityPolicies/{resource}/setLabels", + "id": "compute.securityPolicies.setLabels", + "flatPath": "projects/{project}/global/securityPolicies/{resource}/setLabels", + "parameters": { + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "resource": { + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "required": true + } + }, + "httpMethod": "POST", + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "resource" + ] + } + } + }, + "globalOrganizationOperations": { + "methods": { + "list": { + "path": "locations/global/operations", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "locations/global/operations", + "httpMethod": "GET", + "id": "compute.globalOrganizationOperations.list", + "parameters": { + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "parentId": { + "type": "string", + "location": "query", + "description": "Parent ID for this request." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "type": "integer", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "format": "uint32", + "location": "query" + } + }, + "description": "Retrieves a list of Operation resources contained within the specified organization.", + "response": { + "$ref": "OperationList" + } + }, + "get": { + "response": { + "$ref": "Operation" + }, + "path": "locations/global/operations/{operation}", + "httpMethod": "GET", + "parameterOrder": [ + "operation" + ], + "parameters": { + "operation": { + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name of the Operations resource to return." + }, + "parentId": { + "description": "Parent ID for this request.", + "type": "string", + "location": "query" + } + }, + "id": "compute.globalOrganizationOperations.get", + "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.", + "flatPath": "locations/global/operations/{operation}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "parameters": { + "parentId": { + "description": "Parent ID for this request.", + "location": "query", + "type": "string" + }, + "operation": { + "description": "Name of the Operations resource to delete.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + } + }, + "parameterOrder": [ + "operation" + ], + "httpMethod": "DELETE", + "description": "Deletes the specified Operations resource.", + "path": "locations/global/operations/{operation}", + "flatPath": "locations/global/operations/{operation}", + "id": "compute.globalOrganizationOperations.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "regionSslPolicies": { + "methods": { + "list": { + "parameterOrder": [ + "project", + "region" + ], + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "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" + }, + "maxResults": { + "type": "integer", + "location": "query", + "format": "uint32", + "minimum": "0", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "region": { + "location": "path", + "description": "Name of the region scoping this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "id": "compute.regionSslPolicies.list", + "path": "projects/{project}/regions/{region}/sslPolicies", + "response": { + "$ref": "SslPoliciesList" + }, + "description": "Lists all the SSL policies that have been configured for the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "httpMethod": "PATCH", + "response": { + "$ref": "Operation" + }, + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "required": true, + "location": "path", + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "id": "compute.regionSslPolicies.patch", + "request": { + "$ref": "SslPolicy" + }, + "description": "Patches the specified SSL policy with the data included in the request.", + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}" + }, + "listAvailableFeatures": { + "httpMethod": "GET", + "parameters": { + "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", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "maxResults": { + "format": "uint32", + "minimum": "0", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "type": "integer" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "description": "Lists all features that can be specified in the SSL policy when using custom profile.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "SslPoliciesListAvailableFeaturesResponse" + }, + "id": "compute.regionSslPolicies.listAvailableFeatures", + "parameterOrder": [ + "project", + "region" + ], + "flatPath": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures" + }, + "get": { + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "id": "compute.regionSslPolicies.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "type": "string", + "required": true, + "location": "path" + }, + "region": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "type": "string" + } + }, + "httpMethod": "GET", + "description": "Lists all of the ordered rules present in a single specified policy.", + "response": { + "$ref": "SslPolicy" + }, + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ] + }, + "delete": { + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.regionSslPolicies.delete", + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "httpMethod": "DELETE", + "parameters": { + "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])?))", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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.", + "required": true, + "type": "string", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "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." + }, + "insert": { + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "required": true, + "location": "path" + } + }, + "request": { + "$ref": "SslPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region" + ], + "id": "compute.regionSslPolicies.insert", + "description": "Creates a new policy in the specified project and region using the data included in the request.", + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/regions/{region}/sslPolicies" + } + } + }, + "regionDisks": { + "methods": { + "delete": { + "id": "compute.regionDisks.delete", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "path": "projects/{project}/regions/{region}/disks/{disk}", + "response": { + "$ref": "Operation" + }, + "httpMethod": "DELETE", + "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.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", + "parameters": { + "region": { + "location": "path", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request." + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" + }, + "disk": { + "location": "path", + "required": true, + "description": "Name of the regional persistent disk to delete.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "id": "compute.regionDisks.getIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "type": "string", + "description": "The name of the region for this request." + }, + "optionsRequestedPolicyVersion": { + "location": "query", + "description": "Requested IAM Policy version.", + "format": "int32", + "type": "integer" + }, + "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", + "type": "string", + "required": true + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + } + }, + "response": { + "$ref": "Policy" + } + }, + "get": { + "description": "Returns a specified regional persistent disk.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/disks/{disk}", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", + "id": "compute.regionDisks.get", + "parameters": { + "disk": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the regional persistent disk to return.", + "type": "string" + }, + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path", + "description": "Name of the region for this request." + } + }, + "response": { + "$ref": "Disk" + } + }, + "testIamPermissions": { + "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "region": { + "required": true, + "description": "The name of the region for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string", + "required": true + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true + } + }, + "id": "compute.regionDisks.testIamPermissions", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "TestPermissionsResponse" + }, + "description": "Returns permissions that a caller has on the specified resource." + }, + "setIamPolicy": { + "parameters": { + "region": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "resource": { + "required": true, + "location": "path", + "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}", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.regionDisks.setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", + "httpMethod": "POST" + }, + "removeResourcePolicies": { + "description": "Removes resource policies from a regional disk.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "id": "compute.regionDisks.removeResourcePolicies", + "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", + "request": { + "$ref": "RegionDisksRemoveResourcePoliciesRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "description": "The name of the region for this request.", + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "disk": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "The disk name for this request.", + "type": "string", + "required": true, + "location": "path" + } + }, + "httpMethod": "POST" + }, + "setLabels": { + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "resource": { + "required": true, + "type": "string", + "location": "path", + "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}" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "type": "string", + "description": "The region for this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.regionDisks.setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "description": "Sets the labels on the target regional disk.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST" + }, + "createSnapshot": { + "request": { + "$ref": "Snapshot" + }, + "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", + "httpMethod": "POST", + "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.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.regionDisks.createSnapshot", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "region": { + "location": "path", + "description": "Name of the region for this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "disk": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name of the regional persistent disk to snapshot.", + "required": true + } + } + }, + "list": { + "httpMethod": "GET", + "parameters": { + "maxResults": { + "default": "500", + "type": "integer", + "location": "query", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "required": true + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request.", + "required": true, + "location": "path" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "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" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.regionDisks.list", + "response": { + "$ref": "DiskList" + }, + "parameterOrder": [ + "project", + "region" + ], + "path": "projects/{project}/regions/{region}/disks", + "description": "Retrieves the list of persistent disks contained within the specified region.", + "flatPath": "projects/{project}/regions/{region}/disks" + }, + "resize": { + "parameterOrder": [ + "project", + "region", + "disk" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.regionDisks.resize", + "description": "Resizes the specified regional persistent disk.", + "parameters": { + "project": { + "required": true, + "type": "string", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "region": { + "type": "string", + "description": "Name of the region for this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "disk": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "location": "path", + "description": "Name of the regional persistent disk.", + "required": true + } + }, + "path": "projects/{project}/regions/{region}/disks/{disk}/resize", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize", + "httpMethod": "POST", + "request": { + "$ref": "RegionDisksResizeRequest" + } + }, + "insert": { + "path": "projects/{project}/regions/{region}/disks", + "parameterOrder": [ + "project", + "region" + ], + "flatPath": "projects/{project}/regions/{region}/disks", + "response": { + "$ref": "Operation" + }, + "description": "Creates a persistent regional disk in the specified project using the data included in the request.", + "parameters": { + "sourceImage": { + "location": "query", + "type": "string", + "description": "Source image to restore onto a disk. This field is optional." + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "required": true + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path", + "description": "Name of the region for this request.", + "required": true + } + }, + "request": { + "$ref": "Disk" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.regionDisks.insert", + "httpMethod": "POST" + }, + "addResourcePolicies": { + "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", + "id": "compute.regionDisks.addResourcePolicies", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "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.", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", + "parameters": { + "disk": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "The disk name for this request." + }, + "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])?))", + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "required": true + }, + "region": { + "location": "path", + "required": true, + "description": "The name of the region for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "request": { + "$ref": "RegionDisksAddResourcePoliciesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "regionUrlMaps": { + "methods": { + "validate": { + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "RegionUrlMapsValidateRequest" + }, + "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.", + "id": "compute.regionUrlMaps.validate", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", + "response": { + "$ref": "UrlMapsValidateResponse" + }, + "httpMethod": "POST", + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true + }, + "region": { + "required": true, + "type": "string", + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "urlMap": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the UrlMap resource to be validated as.", + "type": "string", + "location": "path" + } + }, + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate" + }, + "get": { + "id": "compute.regionUrlMaps.get", + "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "response": { + "$ref": "UrlMap" + }, + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "parameters": { + "region": { + "required": true, + "type": "string", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "urlMap": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the UrlMap resource to return.", + "location": "path", + "type": "string" + } + }, + "httpMethod": "GET" + }, + "update": { + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "request": { + "$ref": "UrlMap" + }, + "parameters": { + "urlMap": { + "description": "Name of the UrlMap resource to update.", + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency." + }, + "region": { + "description": "Name of the region scoping this request.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "project": { + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true + } + }, + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "id": "compute.regionUrlMaps.update", + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "PUT", + "description": "Updates the specified UrlMap resource with the data included in the request." + }, + "insert": { + "request": { + "$ref": "UrlMap" + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/urlMaps", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/urlMaps", + "response": { + "$ref": "Operation" + }, + "parameters": { + "project": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" + }, + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "type": "string", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "location": "query" + } + }, + "id": "compute.regionUrlMaps.insert", + "parameterOrder": [ + "project", + "region" + ], + "description": "Creates a UrlMap resource in the specified project using the data included in the request." + }, + "list": { + "id": "compute.regionUrlMaps.list", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/urlMaps", + "httpMethod": "GET", + "response": { + "$ref": "UrlMapList" + }, + "parameters": { + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "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" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "maxResults": { + "default": "500", + "format": "uint32", + "minimum": "0", + "location": "query", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + } + }, + "flatPath": "projects/{project}/regions/{region}/urlMaps", + "parameterOrder": [ + "project", + "region" + ], + "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region." + }, + "delete": { + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified UrlMap resource.", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency." + }, + "urlMap": { + "type": "string", + "required": true, + "description": "Name of the UrlMap resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "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, + "description": "Project ID for this request.", + "type": "string" + }, + "region": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "Name of the region scoping this request." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.regionUrlMaps.delete" + }, + "patch": { + "parameters": { + "urlMap": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the UrlMap resource to patch.", + "location": "path", + "type": "string", + "required": true + }, + "region": { + "location": "path", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency." + }, + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "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.", + "httpMethod": "PATCH", + "response": { + "$ref": "Operation" + }, + "id": "compute.regionUrlMaps.patch", + "request": { + "$ref": "UrlMap" + } + } + } + }, + "regionNetworkFirewallPolicies": { + "methods": { + "testIamPermissions": { + "id": "compute.regionNetworkFirewallPolicies.testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.", + "httpMethod": "POST", + "request": { + "$ref": "TestPermissionsRequest" + }, + "parameterOrder": [ + "project", + "region", + "resource" ], - "description": "[Output Only] Name of the quota metric.", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Guest CPUs", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "The total number of snapshots allowed for a single project.", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "parameters": { + "project": { + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "resource": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "description": "Name or id of the resource for this request.", + "location": "path" + }, + "region": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the region for this request." + } + }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", + "response": { + "$ref": "TestPermissionsResponse" + } + }, + "addRule": { + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "id": "compute.regionNetworkFirewallPolicies.addRule", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", + "description": "Inserts a rule into a network firewall policy.", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", + "request": { + "$ref": "FirewallPolicyRule" + }, + "parameters": { + "firewallPolicy": { + "type": "string", + "location": "path", + "required": true, + "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}" + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "maxPriority": { + "format": "int32", + "location": "query", + "type": "integer", + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority." + }, + "minPriority": { + "format": "int32", + "location": "query", + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", + "type": "integer" + }, + "region": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "location": "path" + } + } + }, + "get": { + "description": "Returns the specified network firewall policy.", + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "httpMethod": "GET", + "parameters": { + "project": { + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" + }, + "region": { + "location": "path", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "firewallPolicy": { + "location": "path", + "description": "Name of the firewall policy to get.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "response": { + "$ref": "FirewallPolicy" + }, + "id": "compute.regionNetworkFirewallPolicies.get", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}" + }, + "getRule": { + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", + "response": { + "$ref": "FirewallPolicyRule" + }, + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "type": "string", + "location": "path", + "required": true + }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string" + }, + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + } + }, + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "httpMethod": "GET", + "description": "Gets a rule of the specified priority.", + "id": "compute.regionNetworkFirewallPolicies.getRule" + }, + "getIamPolicy": { + "response": { + "$ref": "Policy" + }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.regionNetworkFirewallPolicies.getIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "type": "integer", + "format": "int32", + "location": "query" + }, + "resource": { + "location": "path", + "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}", + "type": "string", + "required": true + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + } + }, + "list": { + "parameters": { + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "type": "integer", + "minimum": "0" + }, + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "project": { + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string", + "description": "Name of the region scoping this request." + } + }, + "flatPath": "projects/{project}/regions/{region}/firewallPolicies", + "id": "compute.regionNetworkFirewallPolicies.list", + "parameterOrder": [ + "project", + "region" + ], + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/firewallPolicies", + "description": "Lists all the network firewall policies that have been configured for the specified project in the given region.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "FirewallPolicyList" + } + }, + "getAssociation": { + "parameters": { + "name": { + "type": "string", + "location": "query", + "description": "The name of the association to get from the firewall policy." + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path", + "required": true + }, + "firewallPolicy": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the firewall policy to which the queried association belongs.", + "required": true, + "type": "string", + "location": "path" + }, + "region": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "description": "Name of the region scoping this request." + } + }, + "response": { + "$ref": "FirewallPolicyAssociation" + }, + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", + "id": "compute.regionNetworkFirewallPolicies.getAssociation", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "description": "Gets an association with the specified name.", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", + "httpMethod": "GET" + }, + "patch": { + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicy" + }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "parameters": { + "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", + "description": "Project ID for this request.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "required": true, + "type": "string" + }, + "firewallPolicy": { + "required": true, + "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", + "type": "string" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "response": { + "$ref": "Operation" + }, + "description": "Patches the specified network firewall policy.", + "id": "compute.regionNetworkFirewallPolicies.patch", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "cloneRules": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "description": "Copies rules to the specified network firewall policy.", + "httpMethod": "POST", + "id": "compute.regionNetworkFirewallPolicies.cloneRules", + "parameters": { + "sourceFirewallPolicy": { + "type": "string", + "location": "query", + "description": "The firewall policy from which to copy rules." + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "firewallPolicy": { + "type": "string", + "required": true, + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "location": "path", + "type": "string", + "required": true + } + }, + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules" + }, + "delete": { + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified network firewall policy.", + "parameters": { + "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])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "Name of the firewall policy to delete." + }, + "region": { + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "required": true + } + }, + "httpMethod": "DELETE", + "id": "compute.regionNetworkFirewallPolicies.delete", + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ] }, - "usage": { - "description": "[Output Only] Current usage of this metric.", - "format": "double", - "type": "number" + "setIamPolicy": { + "parameterOrder": [ + "project", + "region", + "resource" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "parameters": { + "region": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the region for this request." + }, + "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", + "description": "Project ID for this request." + }, + "resource": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "Name or id of the resource for this request." + } + }, + "httpMethod": "POST", + "id": "compute.regionNetworkFirewallPolicies.setIamPolicy", + "response": { + "$ref": "Policy" + }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "limit": { - "format": "double", - "type": "number", - "description": "[Output Only] Quota limit for this metric." - } - }, - "id": "Quota" - }, - "AutoscalingPolicyCustomMetricUtilization": { - "type": "object", - "properties": { - "singleInstanceAssignment": { - "format": "double", - "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" + "patchRule": { + "httpMethod": "POST", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", + "id": "compute.regionNetworkFirewallPolicies.patchRule", + "description": "Patches a rule of the specified priority.", + "request": { + "$ref": "FirewallPolicyRule" + }, + "parameters": { + "priority": { + "description": "The priority of the rule to patch.", + "type": "integer", + "location": "query", + "format": "int32" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "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}", + "type": "string", + "required": true, + "location": "path" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "region": { + "required": true, + "location": "path", + "type": "string", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule" }, - "filter": { - "type": "string", - "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." + "removeAssociation": { + "response": { + "$ref": "Operation" + }, + "parameters": { + "name": { + "type": "string", + "description": "Name for the association that will be removed.", + "location": "query" + }, + "firewallPolicy": { + "required": true, + "description": "Name of the firewall policy to update.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + } + }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", + "id": "compute.regionNetworkFirewallPolicies.removeAssociation", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", + "description": "Removes an association for the specified network firewall policy.", + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST" }, - "utilizationTarget": { - "type": "number", - "format": "double", - "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." + "addAssociation": { + "request": { + "$ref": "FirewallPolicyAssociation" + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.regionNetworkFirewallPolicies.addAssociation", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", + "httpMethod": "POST", + "description": "Inserts an association for the specified network firewall policy.", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "replaceExistingAssociation": { + "location": "query", + "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.", + "type": "boolean" + }, + "region": { + "location": "path", + "required": true, + "description": "Name of the region scoping this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the firewall policy to update." + } + }, + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "metric": { - "type": "string", - "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." + "getEffectiveFirewalls": { + "parameters": { + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "required": true, + "location": "path" + }, + "network": { + "type": "string", + "required": true, + "location": "query", + "description": "Network reference" + }, + "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])?))", + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true + } + }, + "httpMethod": "GET", + "parameterOrder": [ + "project", + "region", + "network" + ], + "description": "Returns the effective firewalls on a given network.", + "id": "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls", + "response": { + "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse" + }, + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls" }, - "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", - "enum": [ - "DELTA_PER_MINUTE", - "DELTA_PER_SECOND", - "GAUGE" + "removeRule": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", + "id": "compute.regionNetworkFirewallPolicies.removeRule", + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true + }, + "firewallPolicy": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the firewall policy to update.", + "location": "path", + "required": true + }, + "priority": { + "location": "query", + "description": "The priority of the rule to remove from the firewall policy.", + "type": "integer", + "format": "int32" + } + }, + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", + "description": "Deletes a rule of the specified priority.", + "response": { + "$ref": "Operation" + } + }, + "insert": { + "path": "projects/{project}/regions/{region}/firewallPolicies", + "description": "Creates a new network firewall policy in the specified project and region.", + "request": { + "$ref": "FirewallPolicy" + }, + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/regions/{region}/firewallPolicies", + "parameters": { + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "region": { + "description": "Name of the region scoping this request.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "httpMethod": "POST", + "parameterOrder": [ + "project", + "region" + ], + "id": "compute.regionNetworkFirewallPolicies.insert", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "instanceGroups": { + "methods": { + "delete": { + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "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.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "httpMethod": "DELETE", + "parameters": { + "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])?))", + "type": "string", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "zone": { + "type": "string", + "location": "path", + "required": true, + "description": "The name of the zone where the instance group is located." + }, + "instanceGroup": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the instance group to delete." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "response": { + "$ref": "Operation" + }, + "id": "compute.instanceGroups.delete" + }, + "aggregatedList": { + "parameters": { + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "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.", + "type": "string", + "location": "query" + }, + "maxResults": { + "location": "query", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "minimum": "0", + "default": "500" + }, + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + } + }, + "flatPath": "projects/{project}/aggregated/instanceGroups", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/aggregated/instanceGroups", + "description": "Retrieves the list of instance groups and sorts them by zone.", + "httpMethod": "GET", + "response": { + "$ref": "InstanceGroupAggregatedList" + }, + "id": "compute.instanceGroups.aggregatedList", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - } - }, - "description": "Custom utilization metric policy.", - "id": "AutoscalingPolicyCustomMetricUtilization" - }, - "BackendServiceIAP": { - "properties": { - "oauth2ClientSecret": { - "type": "string", - "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" - }, - "oauth2ClientId": { - "type": "string", - "description": "OAuth2 client ID to use for the authentication flow." }, - "oauth2ClientSecretSha256": { - "type": "string", - "description": "[Output Only] SHA256 hash value for the field oauth2_client_secret above." - }, - "enabled": { - "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.", - "type": "boolean" - } - }, - "id": "BackendServiceIAP", - "type": "object", - "description": "Identity-Aware Proxy" - }, - "RegionAutoscalerList": { - "properties": { - "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": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "zone" + ], + "description": "Creates an instance group in the specified project using the parameters that are included in the request.", + "httpMethod": "POST", + "request": { + "$ref": "InstanceGroup" + }, + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "description": "The name of the zone where you want to create the instance group.", + "location": "path", + "required": true + } + }, + "flatPath": "projects/{project}/zones/{zone}/instanceGroups", + "path": "projects/{project}/zones/{zone}/instanceGroups", + "response": { + "$ref": "Operation" + }, + "id": "compute.instanceGroups.insert" }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "list": { + "id": "compute.instanceGroups.list", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "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.", + "path": "projects/{project}/zones/{zone}/instanceGroups", + "response": { + "$ref": "InstanceGroupList" + }, + "flatPath": "projects/{project}/zones/{zone}/instanceGroups", + "parameters": { + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "zone": { + "location": "path", + "required": true, + "type": "string", + "description": "The name of the zone where the instance group is located." + }, + "maxResults": { + "default": "500", + "location": "query", + "type": "integer", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32" + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + } + }, + "parameterOrder": [ + "project", + "zone" + ] }, - "items": { - "type": "array", - "description": "A list of Autoscaler resources.", - "items": { - "$ref": "Autoscaler" + "addInstances": { + "httpMethod": "POST", + "id": "compute.instanceGroups.addInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", + "parameters": { + "instanceGroup": { + "description": "The name of the instance group where you are adding instances.", + "location": "path", + "type": "string", + "required": true + }, + "zone": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the zone where the instance group is located." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[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": "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.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", + "request": { + "$ref": "InstanceGroupsAddInstancesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" } }, - "kind": { - "default": "compute#regionAutoscalerList", - "description": "Type of resource.", - "type": "string" - }, - "warning": { - "properties": { - "message": { + "removeInstances": { + "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.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances", + "response": { + "$ref": "Operation" + }, + "parameters": { + "instanceGroup": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "The name of the instance group where the specified instances will be removed.", + "location": "path", + "required": true }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "location": "path", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "required": true, + "description": "The name of the zone where the instance group is located." }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true } }, - "type": "object", - "description": "[Output Only] Informational warning message." + "httpMethod": "POST", + "request": { + "$ref": "InstanceGroupsRemoveInstancesRequest" + }, + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances", + "id": "compute.instanceGroups.removeInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - } - }, - "description": "Contains a list of autoscalers.", - "id": "RegionAutoscalerList", - "type": "object" - }, - "VpnGatewayStatusHighAvailabilityRequirementState": { - "properties": { - "unsatisfiedReason": { - "enum": [ - "INCOMPLETE_TUNNELS_COVERAGE" + "setNamedPorts": { + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "enumDescriptions": [ - "" + "httpMethod": "POST", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts", + "parameterOrder": [ + "project", + "zone", + "instanceGroup" ], - "description": "Indicates the reason why the VPN connection does not meet the high availability redundancy criteria/requirement. Valid values is INCOMPLETE_TUNNELS_COVERAGE." + "request": { + "$ref": "InstanceGroupsSetNamedPortsRequest" + }, + "description": "Sets the named ports for the specified instance group.", + "id": "compute.instanceGroups.setNamedPorts", + "parameters": { + "project": { + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "instanceGroup": { + "location": "path", + "required": true, + "type": "string", + "description": "The name of the instance group where the named ports are updated." + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "type": "string", + "location": "path", + "required": true + } + } }, - "state": { - "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" + "get": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "Indicates the high availability requirement state for the VPN connection. Valid values are CONNECTION_REDUNDANCY_MET, CONNECTION_REDUNDANCY_NOT_MET.", - "enum": [ - "CONNECTION_REDUNDANCY_MET", - "CONNECTION_REDUNDANCY_NOT_MET" + "response": { + "$ref": "InstanceGroup" + }, + "httpMethod": "GET", + "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.", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "id": "compute.instanceGroups.get", + "parameterOrder": [ + "project", + "zone", + "instanceGroup" ], - "type": "string" - } - }, - "type": "object", - "description": "Describes the high availability requirement state for the VPN connection between this Cloud VPN gateway and a peer gateway.", - "id": "VpnGatewayStatusHighAvailabilityRequirementState" - }, - "InstanceGroupManagerStatus": { - "type": "object", - "properties": { - "isStable": { - "type": "boolean", - "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." - }, - "versionTarget": { - "$ref": "InstanceGroupManagerStatusVersionTarget", - "description": "[Output Only] A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager." - }, - "stateful": { - "description": "[Output Only] Stateful status of the given Instance Group Manager.", - "$ref": "InstanceGroupManagerStatusStateful" + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "parameters": { + "instanceGroup": { + "type": "string", + "description": "The name of the instance group.", + "location": "path", + "required": true + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "location": "path", + "type": "string", + "required": true + } + } }, - "autoscaler": { - "description": "[Output Only] The URL of the Autoscaler that targets this instance group manager.", - "type": "string" - } - }, - "id": "InstanceGroupManagerStatus" - }, - "UrlMapsValidateResponse": { - "type": "object", - "id": "UrlMapsValidateResponse", - "properties": { - "result": { - "$ref": "UrlMapValidationResult" - } - } - }, - "RegionInstanceGroupManagersCreateInstancesRequest": { - "properties": { - "instances": { - "type": "array", - "description": "[Required] List of specifications of per-instance configs.", - "items": { - "$ref": "PerInstanceConfig" + "listInstances": { + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "zone": { + "description": "The name of the zone where the instance group is located.", + "required": true, + "location": "path", + "type": "string" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "instanceGroup": { + "location": "path", + "required": true, + "description": "The name of the instance group from which you want to generate a list of included instances.", + "type": "string" + }, + "maxResults": { + "format": "uint32", + "minimum": "0", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "location": "query" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "location": "path" + }, + "pageToken": { + "description": "Specifies a page token 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": "compute.instanceGroups.listInstances", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", + "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.", + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "request": { + "$ref": "InstanceGroupsListInstancesRequest" + }, + "httpMethod": "POST", + "response": { + "$ref": "InstanceGroupsListInstances" } } - }, - "type": "object", - "description": "RegionInstanceGroupManagers.createInstances", - "id": "RegionInstanceGroupManagersCreateInstancesRequest" + } }, - "PacketMirroringsScopedList": { - "properties": { - "packetMirrorings": { - "description": "A list of packetMirrorings contained in this scope.", - "items": { - "$ref": "PacketMirroring" - }, - "type": "array" - }, - "warning": { - "type": "object", - "description": "Informational warning which replaces the list of packetMirrorings when the list is empty.", - "properties": { - "message": { + "forwardingRules": { + "methods": { + "aggregatedList": { + "flatPath": "projects/{project}/aggregated/forwardingRules", + "id": "compute.forwardingRules.aggregatedList", + "description": "Retrieves an aggregated list of forwarding rules.", + "path": "projects/{project}/aggregated/forwardingRules", + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "maxResults": { + "type": "integer", + "format": "uint32", + "location": "query", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - } + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "includeAllScopes": { + "type": "boolean", + "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" + }, + "orderBy": { + "location": "query", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" } - } - } - }, - "type": "object", - "id": "PacketMirroringsScopedList" - }, - "UrlMapTest": { - "description": "Message for the expected URL mappings.", - "type": "object", - "properties": { - "service": { - "type": "string", - "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to. service cannot be set if expectedRedirectResponseCode is set." - }, - "description": { - "type": "string", - "description": "Description of this test case." - }, - "host": { - "description": "Host portion of the URL. If headers contains a host header, then host must also match the header value.", - "type": "string" - }, - "expectedOutputUrl": { - "description": "The expected output URL evaluated by 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 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" - }, - "path": { - "type": "string", - "description": "Path portion of the URL." - }, - "headers": { - "type": "array", - "items": { - "$ref": "UrlMapTestHeader" }, - "description": "HTTP headers for this request. If headers contains a host header, then host must also match the header value." - }, - "expectedRedirectResponseCode": { - "type": "integer", - "format": "int32", - "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." - } - }, - "id": "UrlMapTest" - }, - "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", - "id": "Reservation", - "properties": { - "commitment": { - "type": "string", - "description": "[Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment." - }, - "zone": { - "type": "string", - "description": "Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "status": { - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY", - "UPDATING" - ], - "type": "string", - "description": "[Output Only] The status of the reservation.", - "enumDescriptions": [ - "Resources are being allocated for the reservation.", - "Reservation is currently being deleted.", - "", - "Reservation has allocated all its resources.", - "Reservation is currently being resized." + "response": { + "$ref": "ForwardingRuleAggregatedList" + }, + "parameterOrder": [ + "project" ] }, - "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.", - "annotations": { - "required": [ - "compute.instances.insert" - ] + "setTarget": { + "id": "compute.forwardingRules.setTarget", + "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", + "response": { + "$ref": "Operation" }, - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "specificReservation": { - "description": "Reservation for instances with specific machine shapes.", - "$ref": "AllocationSpecificSKUReservation" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "specificReservationRequired": { - "type": "boolean", - "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." - }, - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#reservations for reservations.", - "default": "compute#reservation", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - } - } - }, - "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 will be used.", - "id": "PathMatcher", - "properties": { - "pathRules": { - "type": "array", - "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.", - "items": { - "$ref": "PathRule" - } - }, - "headerAction": { - "$ref": "HttpHeaderAction", - "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap Note that headerAction is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true." - }, - "defaultRouteAction": { - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions like URL rewrites, header transformations, etc. prior to 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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a pathMatcher's defaultRouteAction.", - "$ref": "HttpRouteAction" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "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 target gRPC proxy.", - "$ref": "HttpRedirectAction" - }, - "routeRules": { - "type": "array", - "items": { - "$ref": "HttpRouteRule" + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "location": "path", + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "forwardingRule": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string", + "description": "Name of the ForwardingRule resource in which target is to be set." + }, + "region": { + "location": "path", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request." + } }, - "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." - }, - "name": { - "type": "string", - "description": "The name to which this PathMatcher is referred by the HostRule." - }, - "defaultService": { - "description": "The full or partial URL to the BackendService resource. This will be 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 additionally specified, advanced routing actions like URL Rewrites, etc. take effect prior to 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" - } - }, - "type": "object" - }, - "NetworkEndpointGroupAppEngine": { - "type": "object", - "properties": { - "urlMask": { - "description": "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 \"-dot-appname.appspot.com/\". The URL mask will parse them to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.", - "type": "string" - }, - "version": { - "type": "string", - "description": "Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: \"v1\", \"v2\"." - }, - "service": { - "type": "string", - "description": "Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: \"default\", \"my-service\"." - } - }, - "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.", - "id": "NetworkEndpointGroupAppEngine" - }, - "InterconnectAttachmentPrivateInfo": { - "type": "object", - "properties": { - "tag8021q": { - "type": "integer", - "format": "uint32", - "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." - } - }, - "id": "InterconnectAttachmentPrivateInfo", - "description": "Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED." - }, - "AddressList": { - "description": "Contains a list of addresses.", - "id": "AddressList", - "type": "object", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "description": "A list of Address resources.", - "type": "array", - "items": { - "$ref": "Address" + "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "TargetReference" } }, - "warning": { - "type": "object", - "properties": { - "message": { + "list": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.forwardingRules.list", + "path": "projects/{project}/regions/{region}/forwardingRules", + "response": { + "$ref": "ForwardingRuleList" + }, + "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.", + "parameters": { + "maxResults": { + "type": "integer", + "minimum": "0", + "location": "query", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32" + }, + "project": { + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path", + "description": "Name of the region scoping this request.", + "required": true }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + } + }, + "httpMethod": "GET", + "flatPath": "projects/{project}/regions/{region}/forwardingRules", + "parameterOrder": [ + "project", + "region" + ] + }, + "get": { + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "id": "compute.forwardingRules.get", + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "required": true, + "description": "Name of the region scoping this request.", + "location": "path" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "forwardingRule": { + "description": "Name of the ForwardingRule resource to return.", + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" } }, - "description": "[Output Only] Informational warning message." - }, - "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" - }, - "kind": { - "type": "string", - "default": "compute#addressList", - "description": "[Output Only] Type of resource. Always compute#addressList for lists of addresses." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - } - } - }, - "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", - "id": "Autoscaler", - "properties": { - "id": { - "type": "string", - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server." - }, - "zone": { - "description": "[Output Only] URL of the zone where the instance group resides (for autoscalers living in zonal scope).", - "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" - }, - "kind": { - "default": "compute#autoscaler", - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#autoscaler for autoscalers." - }, - "name": { - "annotations": { - "required": [ - "compute.autoscalers.insert" - ] + "description": "Returns the specified ForwardingRule resource.", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "response": { + "$ref": "ForwardingRule" }, - "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" - }, - "status": { - "enum": [ - "ACTIVE", - "DELETING", - "ERROR", - "PENDING" - ], - "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" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "region": { - "type": "string", - "description": "[Output Only] URL of the region where the instance group resides (for autoscalers living in regional scope)." - }, - "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" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "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" - }, - "statusDetails": { - "items": { - "$ref": "AutoscalerStatusDetails" + "patch": { + "parameters": { + "forwardingRule": { + "required": true, + "description": "Name of the ForwardingRule resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, + "region": { + "location": "path", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request." + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } }, - "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" - }, - "scalingScheduleStatus": { - "additionalProperties": { - "$ref": "ScalingScheduleStatus" + "response": { + "$ref": "Operation" }, - "type": "object", - "description": "[Output Only] Status information of existing scaling schedules." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - } - } - }, - "TargetHttpsProxy": { - "type": "object", - "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. * targetHttpsProxies are used by external HTTPS load balancers. * regionTargetHttpsProxies are used by internal HTTPS 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.", - "id": "TargetHttpsProxy", - "properties": { - "sslCertificates": { - "items": { - "type": "string" + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "id": "compute.forwardingRules.patch", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "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.", + "httpMethod": "PATCH", + "request": { + "$ref": "ForwardingRule" }, - "type": "array", - "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." - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#targetHttpsProxy for target HTTPS proxies.", - "default": "compute#targetHttpsProxy" - }, - "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" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "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" + "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}" }, - "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", - "enum": [ - "DISABLE", - "ENABLE", - "NONE" + "insert": { + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "region": { + "location": "path", + "type": "string", + "required": true, + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + } + }, + "path": "projects/{project}/regions/{region}/forwardingRules", + "parameterOrder": [ + "project", + "region" ], - "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." - ] - }, - "name": { - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "serverTlsPolicy": { - "type": "string", - "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. If left blank, communications are not encrypted. Note: This field currently has no impact." - }, - "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.", - "format": "byte", - "type": "string" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "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" - }, - "urlMap": { - "type": "string", - "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 " - }, - "region": { - "type": "string", - "description": "[Output Only] URL of the region where the regional TargetHttpsProxy resides. This field is not applicable to global TargetHttpsProxies." - } - } - }, - "InstanceGroup": { - "id": "InstanceGroup", - "properties": { - "selfLink": { - "description": "[Output Only] The URL for this instance group. The server generates this URL.", - "type": "string" - }, - "network": { - "type": "string", - "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)." - }, - "region": { - "type": "string", - "description": "[Output Only] The URL of the region where the instance group is located (for regional resources)." - }, - "kind": { - "type": "string", - "description": "[Output Only] The resource type, which is always compute#instanceGroup for instance groups.", - "default": "compute#instanceGroup" - }, - "name": { - "description": "The name of the instance group. The name must be 1-63 characters long, and comply with RFC1035.", - "annotations": { - "required": [ - "compute.instanceGroups.insert" - ] + "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.", + "id": "compute.forwardingRules.insert", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/forwardingRules", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" }, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "zone": { - "type": "string", - "description": "[Output Only] The URL of the zone where the instance group is located (for zonal resources)." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] The creation timestamp for this instance group in RFC3339 text format." - }, - "size": { - "type": "integer", - "format": "int32", - "description": "[Output Only] The total number of instances in the instance group." - }, - "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" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "id": { - "type": "string", - "description": "[Output Only] A unique identifier for this instance group, generated by the server.", - "format": "uint64" + "request": { + "$ref": "ForwardingRule" + } }, - "namedPorts": { - "items": { - "$ref": "NamedPort" + "setLabels": { + "httpMethod": "POST", + "response": { + "$ref": "Operation" }, - "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: \"http\", port: 80},{name: \"http\", port: 8080}] Named ports apply to all instances in this instance group. ", - "type": "array" - }, - "fingerprint": { - "type": "string", - "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.", - "format": "byte" - } - }, - "type": "object", - "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." - }, - "WafExpressionSet": { - "id": "WafExpressionSet", - "properties": { - "expressions": { - "type": "array", - "description": "List of available expressions.", - "items": { - "$ref": "WafExpressionSetExpression" + "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", + "id": "compute.forwardingRules.setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "resource": { + "type": "string", + "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}", + "required": true, + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "required": true, + "location": "path", + "type": "string", + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } } }, - "aliases": { - "type": "array", - "items": { - "type": "string" + "delete": { + "httpMethod": "DELETE", + "id": "compute.forwardingRules.delete", + "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "response": { + "$ref": "Operation" }, - "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." - }, - "id": { - "description": "Google specified expression set ID. The format should be: - E.g. XSS-20170329 required", - "type": "string" - } - }, - "type": "object" - }, - "NetworkList": { - "properties": { - "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.", + "description": "Deletes the specified ForwardingRule resource.", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "location": "path", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the ForwardingRule resource to delete.", + "required": true }, - "data": { - "type": "array", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "region": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "Name of the region scoping this request." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", "type": "string" } - } - }, - "nextPageToken": { - "type": "string", - "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." - }, - "kind": { - "default": "compute#networkList", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#networkList for lists of networks." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "items": { - "$ref": "Network" }, - "type": "array", - "description": "A list of Network resources." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - }, - "description": "Contains a list of networks.", - "id": "NetworkList", - "type": "object" - }, - "InstancesSetMinCpuPlatformRequest": { - "type": "object", - "id": "InstancesSetMinCpuPlatformRequest", - "properties": { - "minCpuPlatform": { - "type": "string", - "description": "Minimum cpu/platform this instance should be started at." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, - "LogConfigCounterOptions": { - "description": "This is deprecated and has no effect. Do not use.", - "properties": { - "customFields": { - "items": { - "$ref": "LogConfigCounterOptionsCustomField" + "snapshots": { + "methods": { + "getIamPolicy": { + "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "format": "int32", + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer" + }, + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "resource": { + "required": true, + "type": "string", + "location": "path", + "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}" + } }, - "type": "array", - "description": "This is deprecated and has no effect. Do not use." - }, - "field": { - "type": "string", - "description": "This is deprecated and has no effect. Do not use." - }, - "metric": { - "type": "string", - "description": "This is deprecated and has no effect. Do not use." - } - }, - "id": "LogConfigCounterOptions", - "type": "object" - }, - "ConnectionDraining": { - "description": "Message containing connection draining configuration.", - "type": "object", - "id": "ConnectionDraining", - "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.", - "format": "int32", - "type": "integer" - } - } - }, - "PublicAdvertisedPrefixPublicDelegatedPrefix": { - "type": "object", - "properties": { - "ipRange": { - "description": "The IP address range of the public delegated prefix", - "type": "string" - }, - "name": { - "type": "string", - "description": "The name of the public delegated prefix" - }, - "project": { - "type": "string", - "description": "The project number of the public delegated prefix" - }, - "region": { - "type": "string", - "description": "The region of the public delegated prefix if it is regional. If absent, the prefix is global." + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy", + "id": "compute.snapshots.getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "response": { + "$ref": "Policy" + }, + "httpMethod": "GET" }, - "status": { - "type": "string", - "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." - } - }, - "id": "PublicAdvertisedPrefixPublicDelegatedPrefix", - "description": "Represents a CIDR range which can be used to assign addresses." - }, - "InstanceTemplate": { - "properties": { - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" + "setIamPolicy": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "id": "compute.snapshots.setIamPolicy", + "response": { + "$ref": "Policy" + }, + "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy", + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy", + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "parameters": { + "resource": { + "location": "path", + "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}", + "type": "string", + "required": true + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + } + }, + "parameterOrder": [ + "project", + "resource" + ] }, - "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" + "insert": { + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path" + } + }, + "flatPath": "projects/{project}/global/snapshots", + "path": "projects/{project}/global/snapshots", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "Snapshot" + }, + "id": "compute.snapshots.insert", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project" + ], + "httpMethod": "POST", + "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." }, - "id": { - "description": "[Output Only] A unique identifier for this instance template. The server defines this identifier.", - "type": "string", - "format": "uint64" + "setLabels": { + "parameterOrder": [ + "project", + "resource" + ], + "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels", + "path": "projects/{project}/global/snapshots/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "resource": { + "location": "path", + "type": "string", + "required": true, + "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}" + } + }, + "id": "compute.snapshots.setLabels" }, - "properties": { - "description": "The instance properties for this instance template.", - "$ref": "InstanceProperties" + "delete": { + "path": "projects/{project}/global/snapshots/{snapshot}", + "parameters": { + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "snapshot": { + "description": "Name of the Snapshot resource to delete.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "snapshot" + ], + "id": "compute.snapshots.delete", + "httpMethod": "DELETE", + "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.", + "flatPath": "projects/{project}/global/snapshots/{snapshot}" }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] The creation timestamp for this instance template in RFC3339 text format." + "get": { + "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.", + "parameterOrder": [ + "project", + "snapshot" + ], + "parameters": { + "snapshot": { + "type": "string", + "description": "Name of the Snapshot resource to return.", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + } + }, + "id": "compute.snapshots.get", + "flatPath": "projects/{project}/global/snapshots/{snapshot}", + "httpMethod": "GET", + "path": "projects/{project}/global/snapshots/{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" + ] }, - "name": { - "type": "string", - "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" - ] + "list": { + "description": "Retrieves the list of Snapshot resources contained within the specified project.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project" + ], + "httpMethod": "GET", + "response": { + "$ref": "SnapshotList" + }, + "flatPath": "projects/{project}/global/snapshots", + "id": "compute.snapshots.list", + "path": "projects/{project}/global/snapshots", + "parameters": { + "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" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "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])?))", + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request." + }, + "maxResults": { + "minimum": "0", + "type": "integer", + "format": "uint32", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + } } }, - "selfLink": { - "type": "string", - "description": "[Output Only] The URL for this instance template. The server defines this URL." - }, - "kind": { - "default": "compute#instanceTemplate", - "description": "[Output Only] The resource type, which is always compute#instanceTemplate for instance templates.", - "type": "string" - }, - "sourceInstanceParams": { - "description": "The source instance params to use to create this instance template.", - "$ref": "SourceInstanceParams" - } - }, - "type": "object", - "id": "InstanceTemplate", - "description": "Represents an Instance Template resource. You can use instance templates to create VM instances and managed instance groups. For more information, read Instance Templates." - }, - "HealthChecksScopedList": { - "type": "object", - "properties": { - "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "type": "object", - "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - } - }, - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "testIamPermissions": { + "parameters": { + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "resource": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string" + } + }, + "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions", + "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.", + "id": "compute.snapshots.testIamPermissions", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "parameterOrder": [ + "project", + "resource" + ], + "response": { + "$ref": "TestPermissionsResponse" + }, + "httpMethod": "POST" + } + } + }, + "urlMaps": { + "methods": { + "update": { + "description": "Updates the specified UrlMap resource with the data included in the request.", + "id": "compute.urlMaps.update", + "parameters": { + "project": { + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "urlMap": { + "location": "path", + "required": true, "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "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}" } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "UrlMap" + }, + "path": "projects/{project}/global/urlMaps/{urlMap}", + "parameterOrder": [ + "project", + "urlMap" + ], + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "PUT", + "response": { + "$ref": "Operation" } }, - "healthChecks": { - "type": "array", - "description": "A list of HealthChecks contained in this scope.", - "items": { - "$ref": "HealthCheck" + "patch": { + "parameters": { + "urlMap": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the UrlMap resource to patch.", + "type": "string", + "location": "path" + }, + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "path": "projects/{project}/global/urlMaps/{urlMap}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "urlMap" + ], + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "request": { + "$ref": "UrlMap" + }, + "httpMethod": "PATCH", + "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.", + "id": "compute.urlMaps.patch", + "response": { + "$ref": "Operation" } - } - }, - "id": "HealthChecksScopedList" - }, - "PacketMirroringAggregatedList": { - "properties": { - "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" }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "list": { + "flatPath": "projects/{project}/global/urlMaps", + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "UrlMapList" + }, + "path": "projects/{project}/global/urlMaps", + "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.", + "id": "compute.urlMaps.list", + "parameters": { + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "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, + "description": "Project ID for this request.", + "type": "string" + }, + "maxResults": { + "type": "integer", + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "minimum": "0", + "format": "uint32" + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + } + }, + "httpMethod": "GET" }, - "kind": { - "type": "string", - "default": "compute#packetMirroringAggregatedList", - "description": "Type of resource." + "insert": { + "httpMethod": "POST", + "description": "Creates a UrlMap resource in the specified project using the data included in the request.", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/urlMaps", + "parameters": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string", + "location": "path" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "id": "compute.urlMaps.insert", + "path": "projects/{project}/global/urlMaps", + "request": { + "$ref": "UrlMap" + }, + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "unreachables": { - "items": { - "type": "string" + "get": { + "httpMethod": "GET", + "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", + "parameterOrder": [ + "project", + "urlMap" + ], + "path": "projects/{project}/global/urlMaps/{urlMap}", + "id": "compute.urlMaps.get", + "parameters": { + "project": { + "required": true, + "type": "string", + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "urlMap": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the UrlMap resource to return.", + "type": "string", + "location": "path" + } }, - "type": "array", - "description": "[Output Only] Unreachable resources." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "UrlMap" + }, + "flatPath": "projects/{project}/global/urlMaps/{urlMap}" }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "message": { + "delete": { + "parameterOrder": [ + "project", + "urlMap" + ], + "description": "Deletes the specified UrlMap resource.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.urlMaps.delete", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "path": "projects/{project}/global/urlMaps/{urlMap}", + "response": { + "$ref": "Operation" + }, + "httpMethod": "DELETE", + "parameters": { + "urlMap": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "description": "Name of the UrlMap resource to delete." }, - "data": { - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "project": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "type": "string" }, - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" } } }, - "items": { - "additionalProperties": { - "description": "Name of the scope containing this set of packetMirrorings.", - "$ref": "PacketMirroringsScopedList" + "validate": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate", + "id": "compute.urlMaps.validate", + "parameters": { + "project": { + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true + }, + "urlMap": { + "location": "path", + "description": "Name of the UrlMap resource to be validated as.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true + } }, - "description": "A list of PacketMirroring resources.", - "type": "object" + "httpMethod": "POST", + "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.", + "path": "projects/{project}/global/urlMaps/{urlMap}/validate", + "request": { + "$ref": "UrlMapsValidateRequest" + }, + "response": { + "$ref": "UrlMapsValidateResponse" + }, + "parameterOrder": [ + "project", + "urlMap" + ] }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - } - }, - "id": "PacketMirroringAggregatedList", - "type": "object", - "description": "Contains a list of packetMirrorings." - }, - "WafExpressionSetExpression": { - "type": "object", - "id": "WafExpressionSetExpression", - "properties": { - "id": { - "type": "string", - "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" + "invalidateCache": { + "parameterOrder": [ + "project", + "urlMap" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.urlMaps.invalidateCache", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "urlMap": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the UrlMap scoping this request.", + "location": "path", + "type": "string", + "required": true + } + }, + "httpMethod": "POST", + "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", + "request": { + "$ref": "CacheInvalidationRule" + }, + "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)." + }, + "aggregatedList": { + "response": { + "$ref": "UrlMapsAggregatedList" + }, + "flatPath": "projects/{project}/aggregated/urlMaps", + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "id": "compute.urlMaps.aggregatedList", + "parameters": { + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "includeAllScopes": { + "location": "query", + "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.", + "type": "boolean" + }, + "maxResults": { + "location": "query", + "minimum": "0", + "type": "integer", + "format": "uint32", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500" + }, + "project": { + "location": "path", + "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])?))", + "required": true, + "type": "string" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + } + }, + "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.", + "path": "projects/{project}/aggregated/urlMaps", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] } } }, - "ImageFamilyView": { - "id": "ImageFamilyView", - "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" - } - }, - "type": "object" - }, - "TargetTcpProxiesSetProxyHeaderRequest": { - "id": "TargetTcpProxiesSetProxyHeaderRequest", - "type": "object", - "properties": { - "proxyHeader": { - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NONE", - "PROXY_V1" + "routers": { + "methods": { + "preview": { + "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview", + "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.", + "httpMethod": "POST", + "id": "compute.routers.preview", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", - "type": "string" - } - } - }, - "BackendServiceAggregatedList": { - "type": "object", - "properties": { - "unreachables": { - "type": "array", - "items": { - "type": "string" + "response": { + "$ref": "RoutersPreviewResponse" }, - "description": "[Output Only] Unreachable resources." - }, - "kind": { - "default": "compute#backendServiceAggregatedList", - "description": "Type of resource.", - "type": "string" - }, - "items": { - "type": "object", - "description": "A list of BackendServicesScopedList resources.", - "additionalProperties": { - "description": "Name of the scope containing this set of BackendServices.", - "$ref": "BackendServicesScopedList" - } - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "nextPageToken": { - "type": "string", - "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." + "request": { + "$ref": "Router" + }, + "parameters": { + "router": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the Router resource to query.", + "required": true + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "region": { + "description": "Name of the region for this request.", + "type": "string", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/preview", + "parameterOrder": [ + "project", + "region", + "router" + ] }, - "warning": { - "type": "object", - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "patch": { + "id": "compute.routers.patch", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "project": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "region": { + "required": true, + "description": "Name of the region for this request.", + "location": "path", "type": "string", - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "router": { + "location": "path", + "required": true, + "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}", + "type": "string" } }, - "description": "[Output Only] Informational warning message." - } - }, - "description": "Contains a list of BackendServicesScopedList.", - "id": "BackendServiceAggregatedList" - }, - "GlobalSetLabelsRequest": { - "id": "GlobalSetLabelsRequest", - "properties": { - "labels": { - "additionalProperties": { - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "PATCH", + "path": "projects/{project}/regions/{region}/routers/{router}", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "request": { + "$ref": "Router" }, - "type": "object", - "description": "A list of labels to apply for this resource. Each label key & value must 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 example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\")." - }, - "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" - } - }, - "type": "object" - }, - "UsageExportLocation": { - "type": "object", - "id": "UsageExportLocation", - "properties": { - "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" - }, - "bucketName": { - "type": "string", - "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." - } - }, - "description": "The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix." - }, - "AliasIpRange": { - "type": "object", - "id": "AliasIpRange", - "properties": { - "ipCidrRange": { - "type": "string", - "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)." - }, - "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" - } - }, - "description": "An alias IP range attached to an instance's network interface." - }, - "CommitmentList": { - "type": "object", - "properties": { - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "type": "array", - "description": "A list of Commitment resources.", - "items": { - "$ref": "Commitment" + "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.", + "parameterOrder": [ + "project", + "region", + "router" + ], + "response": { + "$ref": "Operation" } }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#commitmentList for lists of commitments.", - "default": "compute#commitmentList", - "type": "string" - }, - "warning": { - "type": "object", - "properties": { - "data": { - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" - }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "id": "compute.routers.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "Name of the region for this request.", + "location": "path", "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "router": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the Router resource to delete.", + "type": "string", + "location": "path" + }, + "project": { + "location": "path", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." } }, - "description": "[Output Only] Informational warning message." + "parameterOrder": [ + "project", + "region", + "router" + ], + "httpMethod": "DELETE", + "path": "projects/{project}/regions/{region}/routers/{router}", + "description": "Deletes the specified Router resource." }, - "nextPageToken": { - "type": "string", - "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." - } - }, - "id": "CommitmentList", - "description": "Contains a list of Commitment resources." - }, - "FirewallList": { - "type": "object", - "properties": { - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "getRouterStatus": { + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", + "id": "compute.routers.getRouterStatus", + "description": "Retrieves runtime information of the specified router.", + "response": { + "$ref": "RouterStatusResponse" + }, + "parameters": { + "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])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path", + "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "router": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "required": true, + "description": "Name of the Router resource to query." }, - "message": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "description": "Name of the region for this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true } }, - "type": "object" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#firewallList for lists of firewalls.", - "type": "string", - "default": "compute#firewallList" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "items": { - "items": { - "$ref": "Firewall" - }, - "type": "array", - "description": "A list of Firewall resources." - } - }, - "id": "FirewallList", - "description": "Contains a list of firewalls." - }, - "ManagedInstance": { - "properties": { - "id": { - "format": "uint64", - "description": "[Output only] The unique identifier for this resource. This field is empty when instance does not exist.", - "type": "string" - }, - "instance": { - "type": "string", - "description": "[Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created." - }, - "preservedStateFromPolicy": { - "description": "[Output Only] Preserved state generated based on stateful policy for this instance.", - "$ref": "PreservedState" - }, - "lastAttempt": { - "description": "[Output Only] Information about the last attempt to create or delete the instance.", - "$ref": "ManagedInstanceLastAttempt" - }, - "version": { - "description": "[Output Only] Intended version of this instance.", - "$ref": "ManagedInstanceVersion" - }, - "preservedStateFromConfig": { - "$ref": "PreservedState", - "description": "[Output Only] Preserved state applied from per-instance config for this instance." - }, - "instanceStatus": { - "enumDescriptions": [ - "The Nanny 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)." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string", - "description": "[Output Only] The status of the instance. This field is empty when the instance does not exist.", - "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", + "parameterOrder": [ + "project", + "region", + "router" ] }, - "instanceHealth": { - "type": "array", - "description": "[Output Only] Health state of the instance per health-check.", - "items": { - "$ref": "ManagedInstanceInstanceHealth" - } - }, - "currentAction": { - "enum": [ - "ABANDONING", - "CREATING", - "CREATING_WITHOUT_RETRIES", - "DELETING", - "NONE", - "RECREATING", - "REFRESHING", - "RESTARTING", - "VERIFYING" + "get": { + "response": { + "$ref": "Router" + }, + "id": "compute.routers.get", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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 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)." + "parameterOrder": [ + "project", + "region", + "router" ], - "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. " - } - }, - "description": "A Managed Instance resource.", - "id": "ManagedInstance", - "type": "object" - }, - "PublicDelegatedPrefixAggregatedList": { - "properties": { - "unreachables": { - "items": { - "type": "string" - }, - "description": "[Output Only] Unreachable resources.", - "type": "array" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "warning": { - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "parameters": { + "router": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "description": "Name of the Router resource to return.", + "location": "path" }, - "message": { + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "path" }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "region": { + "description": "Name of the region for this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" } }, - "description": "[Output Only] Informational warning message." - }, - "kind": { - "type": "string", - "default": "compute#publicDelegatedPrefixAggregatedList", - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixAggregatedList for aggregated lists of public delegated prefixes." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/routers/{router}", + "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request." }, - "items": { - "additionalProperties": { - "$ref": "PublicDelegatedPrefixesScopedList", - "description": "[Output Only] Name of the scope containing this set of PublicDelegatedPrefixes." + "insert": { + "description": "Creates a Router resource in the specified project and region using the data included in the request.", + "response": { + "$ref": "Operation" }, - "description": "A list of PublicDelegatedPrefixesScopedList resources.", - "type": "object" - } - }, - "type": "object", - "id": "PublicDelegatedPrefixAggregatedList" - }, - "Uint128": { - "id": "Uint128", - "type": "object", - "properties": { - "high": { - "format": "uint64", - "type": "string" - }, - "low": { - "format": "uint64", - "type": "string" - } - } - }, - "FileContentBuffer": { - "properties": { - "fileType": { - "enum": [ - "BIN", - "UNDEFINED", - "X509" + "request": { + "$ref": "Router" + }, + "id": "compute.routers.insert", + "parameters": { + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "description": "Name of the region for this request." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "description": "The file type of source file.", - "enumDescriptions": [ - "", - "", - "" + "flatPath": "projects/{project}/regions/{region}/routers", + "path": "projects/{project}/regions/{region}/routers", + "parameterOrder": [ + "project", + "region" ], - "type": "string" - }, - "content": { - "description": "The raw content in the secure keys file.", - "type": "string", - "format": "byte" - } - }, - "id": "FileContentBuffer", - "type": "object" - }, - "ResourcePolicyWeeklyCycle": { - "type": "object", - "description": "Time window specified for weekly operations.", - "id": "ResourcePolicyWeeklyCycle", - "properties": { - "dayOfWeeks": { - "type": "array", - "description": "Up to 7 intervals/windows, one for each day of the week.", - "items": { - "$ref": "ResourcePolicyWeeklyCycleDayOfWeek" - } - } - } - }, - "ShieldedInstanceIdentity": { - "description": "A Shielded Instance Identity.", - "properties": { - "signingKey": { - "description": "An Attestation Key (AK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM.", - "$ref": "ShieldedInstanceIdentityEntry" - }, - "kind": { - "type": "string", - "description": "[Output Only] Type of the resource. Always compute#shieldedInstanceIdentity for shielded Instance identity entry.", - "default": "compute#shieldedInstanceIdentity" + "httpMethod": "POST" }, - "encryptionKey": { - "description": "An Endorsement Key (EK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM.", - "$ref": "ShieldedInstanceIdentityEntry" - } - }, - "type": "object", - "id": "ShieldedInstanceIdentity" - }, - "TargetPoolsRemoveInstanceRequest": { - "properties": { - "instances": { - "type": "array", - "items": { - "$ref": "InstanceReference" + "getNatMappingInfo": { + "response": { + "$ref": "VmEndpointNatMappingsList" }, - "description": "URLs of the instances to be removed from target pool." - } - }, - "id": "TargetPoolsRemoveInstanceRequest", - "type": "object" - }, - "HTTPSHealthCheck": { - "id": "HTTPSHealthCheck", - "properties": { - "response": { - "type": "string", - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII." - }, - "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", - "type": "integer", - "format": "int32" + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", + "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", + "parameters": { + "region": { + "description": "Name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" + }, + "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}", + "required": true, + "type": "string", + "location": "path" + }, + "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" + }, + "orderBy": { + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "maxResults": { + "default": "500", + "location": "query", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "type": "integer" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + } + }, + "httpMethod": "GET", + "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.", + "parameterOrder": [ + "project", + "region", + "router" + ], + "id": "compute.routers.getNatMappingInfo" }, - "proxyHeader": { - "enumDescriptions": [ - "", - "" + "list": { + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "default": "500", + "type": "integer", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "minimum": "0" + }, + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request.", + "location": "path", + "required": true + }, + "project": { + "location": "path", + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } + }, + "parameterOrder": [ + "project", + "region" ], - "type": "string", - "enum": [ - "NONE", - "PROXY_V1" + "id": "compute.routers.list", + "description": "Retrieves a list of Router resources available to the specified project.", + "path": "projects/{project}/regions/{region}/routers", + "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": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE." - }, - "host": { - "type": "string", - "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used." - }, - "requestPath": { - "description": "The request path of the HTTPS health check request. The default value is /.", - "type": "string" + "flatPath": "projects/{project}/regions/{region}/routers", + "httpMethod": "GET" }, - "portSpecification": { - "type": "string", - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" + "update": { + "httpMethod": "PUT", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "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.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "parameterOrder": [ + "project", + "region", + "router" ], - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields." - }, - "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", - "type": "string" - } - }, - "type": "object" - }, - "SourceInstanceParams": { - "type": "object", - "properties": { - "diskConfigs": { - "description": "Attached disks configuration. If not provided, defaults are applied: 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.", - "items": { - "$ref": "DiskInstantiationConfig" - }, - "type": "array" - } - }, - "description": "A specification of the parameters to use when creating the instance template from a source instance.", - "id": "SourceInstanceParams" - }, - "InterconnectAttachmentList": { - "id": "InterconnectAttachmentList", - "properties": { - "warning": { - "type": "object", - "properties": { - "message": { + "id": "compute.routers.update", + "parameters": { + "region": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request.", + "location": "path", + "required": true }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - } + "router": { + "type": "string", + "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 }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" + "project": { + "required": true, + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." } }, - "description": "[Output Only] Informational warning message." - }, - "items": { - "type": "array", - "description": "A list of InterconnectAttachment resources.", - "items": { - "$ref": "InterconnectAttachment" + "request": { + "$ref": "Router" + }, + "path": "projects/{project}/regions/{region}/routers/{router}", + "response": { + "$ref": "Operation" } }, - "nextPageToken": { - "type": "string", - "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." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentList for lists of interconnect attachments.", - "default": "compute#interconnectAttachmentList", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - } - }, - "description": "Response to the list request, and contains a list of interconnect attachments.", - "type": "object" - }, - "AutoscalingPolicyCpuUtilization": { - "type": "object", - "id": "AutoscalingPolicyCpuUtilization", - "properties": { - "predictiveMethod": { - "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." - ], - "type": "string", - "enum": [ - "NONE", - "OPTIMIZE_AVAILABILITY" + "aggregatedList": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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." - }, - "utilizationTarget": { - "type": "number", - "format": "double", - "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." - } - }, - "description": "CPU utilization policy." - }, - "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" - } - } - } - }, - "InstancesScopedList": { - "id": "InstancesScopedList", - "properties": { - "warning": { - "properties": { - "message": { + "parameters": { + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - } + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "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" + }, + "maxResults": { + "format": "uint32", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "type": "integer", + "default": "500" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path", + "description": "Project ID for this request." + }, + "includeAllScopes": { + "type": "boolean", + "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" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", "type": "string" } }, - "type": "object", - "description": "[Output Only] Informational warning which replaces the list of instances when the list is empty." - }, - "instances": { - "description": "[Output Only] A list of instances contained in this scope.", - "type": "array", - "items": { - "$ref": "Instance" - } - } - }, - "type": "object" - }, - "HttpFaultDelay": { - "id": "HttpFaultDelay", - "description": "Specifies the delay introduced by Loadbalancer 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": { - "format": "double", - "type": "number", - "description": "The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. The value must be between 0.0 and 100.0 inclusive." + "response": { + "$ref": "RouterAggregatedList" + }, + "flatPath": "projects/{project}/aggregated/routers", + "id": "compute.routers.aggregatedList", + "parameterOrder": [ + "project" + ], + "path": "projects/{project}/aggregated/routers", + "httpMethod": "GET", + "description": "Retrieves an aggregated list of routers." } } }, - "InstanceWithNamedPorts": { - "type": "object", - "id": "InstanceWithNamedPorts", - "properties": { - "namedPorts": { - "type": "array", - "description": "[Output Only] The named ports that belong to this instance group.", - "items": { - "$ref": "NamedPort" - } - }, - "instance": { - "type": "string", - "description": "[Output Only] The URL of the instance." + "vpnGateways": { + "methods": { + "testIamPermissions": { + "response": { + "$ref": "TestPermissionsResponse" + }, + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "region": { + "required": true, + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path" + }, + "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}", + "type": "string", + "location": "path", + "required": true + }, + "project": { + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + } + }, + "id": "compute.vpnGateways.testIamPermissions", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "httpMethod": "POST", + "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions" }, - "status": { - "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" + "getStatus": { + "parameterOrder": [ + "project", + "region", + "vpnGateway" ], - "type": "string", - "description": "[Output Only] The status of the instance.", - "enumDescriptions": [ - "The Nanny 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)." + "httpMethod": "GET", + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", + "parameters": { + "project": { + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "vpnGateway": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the VPN gateway to return.", + "required": true, + "type": "string", + "location": "path" + }, + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region for this request.", + "required": true, + "location": "path" + } + }, + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", + "id": "compute.vpnGateways.getStatus", + "response": { + "$ref": "VpnGatewaysGetStatusResponse" + }, + "description": "Returns the status for the specified VPN gateway.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "ManagedInstanceInstanceHealth": { - "type": "object", - "id": "ManagedInstanceInstanceHealth", - "properties": { - "detailedHealthState": { - "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." + }, + "get": { + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "parameterOrder": [ + "project", + "region", + "vpnGateway" ], - "enum": [ - "DRAINING", - "HEALTHY", - "TIMEOUT", - "UNHEALTHY", - "UNKNOWN" + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "httpMethod": "GET", + "response": { + "$ref": "VpnGateway" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string", - "description": "[Output Only] The current detailed instance health state." - }, - "healthCheck": { - "type": "string", - "description": "[Output Only] The URL for the health check that verifies whether the instance is healthy." - } - } - }, - "TargetHttpProxyList": { - "id": "TargetHttpProxyList", - "properties": { - "kind": { - "description": "Type of resource. Always compute#targetHttpProxyList for lists of target HTTP proxies.", - "default": "compute#targetHttpProxyList", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "warning": { - "properties": { - "message": { + "parameters": { + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Name of the region for this request." }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "type": "string" + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "vpnGateway": { + "description": "Name of the VPN gateway to return.", + "type": "string", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" } }, - "description": "[Output Only] Informational warning message.", - "type": "object" + "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.", + "id": "compute.vpnGateways.get" }, - "items": { - "items": { - "$ref": "TargetHttpProxy" + "delete": { + "response": { + "$ref": "Operation" }, - "description": "A list of TargetHttpProxy resources.", - "type": "array" - }, - "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" - } - }, - "type": "object", - "description": "A list of TargetHttpProxy resources." - }, - "NetworksUpdatePeeringRequest": { - "properties": { - "networkPeering": { - "$ref": "NetworkPeering" - } - }, - "id": "NetworksUpdatePeeringRequest", - "type": "object" - }, - "InstanceGroupManagerList": { - "properties": { - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "parameters": { + "region": { + "type": "string", + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - } - } + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "vpnGateway": { + "description": "Name of the VPN gateway to delete.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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])?))", + "required": true, + "type": "string", + "location": "path", + "description": "Project ID for this request." } - } - }, - "items": { - "description": "A list of InstanceGroupManager resources.", - "type": "array", - "items": { - "$ref": "InstanceGroupManager" - } - }, - "kind": { - "type": "string", - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups.", - "default": "compute#instanceGroupManagerList" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - }, - "description": "[Output Only] A list of managed instance groups.", - "id": "InstanceGroupManagerList", - "type": "object" - }, - "InstanceGroupsListInstances": { - "properties": { - "kind": { - "type": "string", - "default": "compute#instanceGroupsListInstances", - "description": "[Output Only] The resource type, which is always compute#instanceGroupsListInstances for the list of instances in the specified instance 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" - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "items": { - "type": "array", - "items": { - "$ref": "InstanceWithNamedPorts" }, - "description": "A list of InstanceWithNamedPorts resources." + "id": "compute.vpnGateways.delete", + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "region", + "vpnGateway" + ], + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "description": "Deletes the specified VPN gateway.", + "httpMethod": "DELETE" }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "aggregatedList": { + "response": { + "$ref": "VpnGatewayAggregatedList" + }, + "parameterOrder": [ + "project" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "maxResults": { + "default": "500", + "format": "uint32", + "type": "integer", + "minimum": "0", + "location": "query", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "project": { + "required": true, + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "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.", + "type": "boolean", + "location": "query" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + } + }, + "id": "compute.vpnGateways.aggregatedList", + "path": "projects/{project}/aggregated/vpnGateways", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "projects/{project}/aggregated/vpnGateways", + "description": "Retrieves an aggregated list of VPN gateways." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" + "insert": { + "flatPath": "projects/{project}/regions/{region}/vpnGateways", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "region": { + "description": "Name of the region for this request.", + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true }, - "data": { - "type": "array", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - } - }, - "type": "object" - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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).", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ] + "location": "query" } - } - } - }, - "id": "InstanceGroupsListInstances", - "type": "object" - }, - "HttpHealthCheckList": { - "id": "HttpHealthCheckList", - "description": "Contains a list of HttpHealthCheck resources.", - "type": "object", - "properties": { - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "request": { + "$ref": "VpnGateway" + }, + "description": "Creates a VPN gateway in the specified project and region using the data included in the request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "path": "projects/{project}/regions/{region}/vpnGateways", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "id": "compute.vpnGateways.insert" }, - "warning": { - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "setLabels": { + "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "id": "compute.vpnGateways.setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "region": { + "required": true, + "description": "The region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "data": { - "items": { - "type": "object", - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array" + "project": { + "description": "Project ID for this request.", + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "resource": { + "description": "Name or id of the resource for this request.", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "nextPageToken": { - "type": "string", - "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." - }, - "items": { - "items": { - "$ref": "HttpHealthCheck" + "httpMethod": "POST", + "response": { + "$ref": "Operation" }, - "description": "A list of HttpHealthCheck resources.", - "type": "array" - }, - "kind": { - "description": "Type of resource.", - "default": "compute#httpHealthCheckList", - "type": "string" + "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels" }, - "id": { - "type": "string", - "description": "[Output Only] Unique identifier for the resource; defined by the server." + "list": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.vpnGateways.list", + "path": "projects/{project}/regions/{region}/vpnGateways", + "parameterOrder": [ + "project", + "region" + ], + "flatPath": "projects/{project}/regions/{region}/vpnGateways", + "httpMethod": "GET", + "parameters": { + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "type": "string", + "location": "query" + }, + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "default": "500", + "minimum": "0", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true + }, + "region": { + "type": "string", + "required": true, + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + } + }, + "response": { + "$ref": "VpnGatewayList" + }, + "description": "Retrieves a list of VPN gateways available to the specified project and region." } } }, - "NetworkEndpointGroupsListEndpointsRequest": { - "properties": { - "healthStatus": { - "enum": [ - "SHOW", - "SKIP" + "networkEndpointGroups": { + "methods": { + "insert": { + "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", + "id": "compute.networkEndpointGroups.insert", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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" ], - "type": "string", - "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": "object", - "id": "NetworkEndpointGroupsListEndpointsRequest" - }, - "FirewallPoliciesListAssociationsResponse": { - "properties": { - "associations": { - "description": "A list of associations.", - "items": { - "$ref": "FirewallPolicyAssociation" + "path": "projects/{project}/zones/{zone}/networkEndpointGroups", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "required": true, + "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.", + "location": "path" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[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": "array" - }, - "kind": { - "default": "compute#firewallPoliciesListAssociationsResponse", - "description": "[Output Only] Type of firewallPolicy associations. Always compute#FirewallPoliciesListAssociations for lists of firewallPolicy associations.", - "type": "string" - } - }, - "type": "object", - "id": "FirewallPoliciesListAssociationsResponse" - }, - "InterconnectAttachmentPartnerMetadata": { - "type": "object", - "properties": { - "partnerName": { - "type": "string", - "description": "Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values." - }, - "interconnectName": { - "type": "string", - "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." - }, - "portalUrl": { - "type": "string", - "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." - } - }, - "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." - }, - "TargetHttpsProxyList": { - "description": "Contains a list of TargetHttpsProxy resources.", - "properties": { - "items": { - "description": "A list of TargetHttpsProxy resources.", - "type": "array", - "items": { - "$ref": "TargetHttpsProxy" + "httpMethod": "POST", + "request": { + "$ref": "NetworkEndpointGroup" } }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "delete": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" + ], + "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.", + "httpMethod": "DELETE", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "parameters": { + "networkEndpointGroup": { + "location": "path", + "type": "string", + "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "required": true + }, + "zone": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035." + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "id": "compute.networkEndpointGroups.delete" }, - "warning": { - "type": "object", - "description": "[Output Only] Informational warning message.", - "properties": { - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "type": "array" + "list": { + "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.", + "parameters": { + "project": { + "description": "Project ID for this request.", + "type": "string", + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" }, - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "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": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "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" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "minimum": "0", + "type": "integer", + "location": "query", + "default": "500" + }, + "zone": { + "location": "path", + "type": "string", + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "required": true + } + }, + "httpMethod": "GET", + "id": "compute.networkEndpointGroups.list", + "parameterOrder": [ + "project", + "zone" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "NetworkEndpointGroupList" + }, + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups" + }, + "aggregatedList": { + "description": "Retrieves the list of network endpoint groups and sorts them by zone.", + "id": "compute.networkEndpointGroups.aggregatedList", + "path": "projects/{project}/aggregated/networkEndpointGroups", + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "GET", + "response": { + "$ref": "NetworkEndpointGroupAggregatedList" + }, + "parameters": { + "includeAllScopes": { + "location": "query", + "type": "boolean", + "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." + }, + "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])?))", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "required": true, + "description": "Project ID for this request.", + "location": "path" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", "type": "string" } - } - }, - "kind": { - "type": "string", - "description": "Type of resource. Always compute#targetHttpsProxyList for lists of target HTTPS proxies.", - "default": "compute#targetHttpsProxyList" + }, + "flatPath": "projects/{project}/aggregated/networkEndpointGroups" }, - "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" - } - }, - "type": "object", - "id": "TargetHttpsProxyList" - }, - "TargetHttpProxiesScopedList": { - "type": "object", - "properties": { - "warning": { - "properties": { - "code": { + "listNetworkEndpoints": { + "httpMethod": "POST", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "parameters": { + "maxResults": { + "location": "query", + "format": "uint32", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0" + }, + "filter": { + "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.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "properties": { - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - }, - "type": "object" - } + "zone": { + "required": true, + "location": "path", + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "type": "string" }, - "message": { + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean", + "location": "query" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "location": "query" + }, + "networkEndpointGroup": { + "type": "string", + "location": "path", + "required": true, + "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." + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." } }, - "type": "object", - "description": "Informational warning which replaces the list of backend services when the list is empty." - }, - "targetHttpProxies": { - "items": { - "$ref": "TargetHttpProxy" + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "request": { + "$ref": "NetworkEndpointGroupsListEndpointsRequest" }, - "description": "A list of TargetHttpProxies contained in this scope.", - "type": "array" - } - }, - "id": "TargetHttpProxiesScopedList" - }, - "LicenseResourceCommitment": { - "properties": { - "license": { - "description": "Any applicable license URI.", - "type": "string" - }, - "amount": { - "format": "int64", - "description": "The number of licenses purchased.", - "type": "string" - }, - "coresPerLicense": { - "type": "string", - "description": "Specifies the core range of the instance for which this license applies." - } - }, - "type": "object", - "description": "Commitment for a particular license resource.", - "id": "LicenseResourceCommitment" - }, - "RouterStatusNatStatusNatRuleStatus": { - "id": "RouterStatusNatStatusNatRuleStatus", - "properties": { - "drainNatIps": { - "items": { - "type": "string" + "response": { + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" }, - "description": "A list of IPs for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", - "type": "array" - }, - "minExtraIpsNeeded": { - "type": "integer", - "format": "int32", - "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." - }, - "numVmEndpointsWithNatMappings": { - "type": "integer", - "format": "int32", - "description": "Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule." - }, - "activeNatIps": { - "description": "A list of active IPs for NAT. Example: [\"1.1.1.1\", \"179.12.26.133\"].", - "type": "array", - "items": { - "type": "string" - } - }, - "ruleNumber": { - "description": "Rule number of the rule.", - "type": "integer", - "format": "int32" - } - }, - "description": "Status of a NAT Rule contained in this NAT.", - "type": "object" - }, - "LogConfigCounterOptionsCustomField": { - "id": "LogConfigCounterOptionsCustomField", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "This is deprecated and has no effect. Do not use." - }, - "value": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - } - }, - "description": "This is deprecated and has no effect. Do not use." - }, - "RouterNatSubnetworkToNat": { - "type": "object", - "id": "RouterNatSubnetworkToNat", - "properties": { - "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" - } - }, - "name": { - "description": "URL for the subnetwork resource that will use NAT.", - "type": "string" + "id": "compute.networkEndpointGroups.listNetworkEndpoints", + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" + ], + "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." }, - "sourceIpRangesToNat": { - "items": { - "type": "string", - "enum": [ - "ALL_IP_RANGES", - "LIST_OF_SECONDARY_IP_RANGES", - "PRIMARY_IP_RANGE" - ], - "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." - ] + "testIamPermissions": { + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "id": "compute.networkEndpointGroups.testIamPermissions", + "parameters": { + "zone": { + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "The name of the zone for this request." + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name or id of the resource for this request.", + "required": true, + "type": "string", + "location": "path" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path" + } }, - "type": "array", - "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]" - } - }, - "description": "Defines the IP ranges that want to use NAT for a subnetwork." - }, - "VpnGatewayList": { - "description": "Contains a list of VpnGateway resources.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "VpnGateway" + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" }, - "description": "A list of VpnGateway resources." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "kind": { - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", - "type": "string", - "default": "compute#vpnGatewayList" - }, - "nextPageToken": { - "type": "string", - "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." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "POST", + "response": { + "$ref": "TestPermissionsResponse" + }, + "description": "Returns permissions that a caller has on the specified resource.", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions" }, - "warning": { - "properties": { - "message": { + "attachNetworkEndpoints": { + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "request": { + "$ref": "NetworkEndpointGroupsAttachEndpointsRequest" + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" + ], + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "id": "compute.networkEndpointGroups.attachNetworkEndpoints", + "description": "Attach a list of network endpoints to the specified network endpoint group.", + "parameters": { + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true }, - "data": { - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - }, - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "networkEndpointGroup": { + "required": true, + "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "type": "string", + "location": "path" }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "zone": { + "required": true, "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "location": "path" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + } + }, + "get": { + "response": { + "$ref": "NetworkEndpointGroup" + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" + ], + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "GET", + "parameters": { + "zone": { + "location": "path", + "type": "string", + "required": true, + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035." + }, + "networkEndpointGroup": { + "location": "path", + "required": true, + "description": "The name of the network endpoint group. It should comply with RFC1035.", + "type": "string" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string" } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - } - }, - "type": "object", - "id": "VpnGatewayList" - }, - "DeprecationStatus": { - "description": "Deprecation status for a public resource.", - "properties": { - "obsolete": { - "type": "string", - "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." + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "id": "compute.networkEndpointGroups.get", + "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "state": { - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + "detachNetworkEndpoints": { + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", + "type": "string", + "location": "path", + "required": true + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request.", + "location": "path" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "location": "path", + "required": true, + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035." + } + }, + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" ], - "enum": [ - "ACTIVE", - "DELETED", - "DEPRECATED", - "OBSOLETE" + "request": { + "$ref": "NetworkEndpointGroupsDetachEndpointsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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." - }, - "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" - }, - "deleted": { - "type": "string", - "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": "object", - "id": "DeprecationStatus" - }, - "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" + "httpMethod": "POST", + "description": "Detach a list of network endpoints from the specified network endpoint group.", + "id": "compute.networkEndpointGroups.detachNetworkEndpoints" } - }, - "id": "ResourceGroupReference" + } }, - "UrlMap": { - "type": "object", - "description": "Represents a URL Map resource. Google 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 GCP load balancers and Traffic Director. * urlMaps are used by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used by internal HTTP(S) load balancers. For a list of supported URL map features by 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 host names 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.", - "properties": { - "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 target gRPC proxy.", - "$ref": "HttpRedirectAction" - }, - "pathMatchers": { - "type": "array", - "items": { - "$ref": "PathMatcher" + "subnetworks": { + "methods": { + "setPrivateIpGoogleAccess": { + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "description": "Name of the region scoping this request.", + "type": "string", + "location": "path", + "required": true + }, + "subnetwork": { + "description": "Name of the Subnetwork resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string", + "location": "path" + }, + "project": { + "type": "string", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + } }, - "description": "The list of named PathMatchers to use against the URL." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "defaultRouteAction": { - "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions like URL rewrites, header transformations, etc. prior to 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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "HttpRouteAction" - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "fingerprint": { - "type": "string", - "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 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.", - "format": "byte" - }, - "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 additionally specified, advanced routing actions like URL Rewrites, etc. take effect prior to 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 target gRPC proxy that has validateForProxyless field set to true.", - "type": "string" - }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#urlMaps for url maps.", - "type": "string", - "default": "compute#urlMap" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "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" - }, - "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" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "hostRules": { - "items": { - "$ref": "HostRule" + "request": { + "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest" }, - "type": "array", - "description": "The list of HostRules to use against the URL." - }, - "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. Note that headerAction is not supported for Loadbalancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "HttpHeaderAction" - }, - "tests": { - "items": { - "$ref": "UrlMapTest" + "response": { + "$ref": "Operation" }, - "type": "array", - "description": "The list of expected URL mapping tests. Request to update this UrlMap will succeed only if all of the test cases pass. You can specify a maximum of 100 tests per UrlMap. Not supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true." - } - }, - "id": "UrlMap" - }, - "Commitment": { - "id": "Commitment", - "properties": { - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "type": { - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" + "parameterOrder": [ + "project", + "region", + "subnetwork" ], - "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.", - "enum": [ - "ACCELERATOR_OPTIMIZED", - "COMPUTE_OPTIMIZED", - "GENERAL_PURPOSE", - "GENERAL_PURPOSE_E2", - "GENERAL_PURPOSE_N2", - "GENERAL_PURPOSE_N2D", - "MEMORY_OPTIMIZED", - "TYPE_UNSPECIFIED" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string" + "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.", + "id": "compute.subnetworks.setPrivateIpGoogleAccess", + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", + "httpMethod": "POST" }, - "reservations": { - "type": "array", - "items": { - "$ref": "Reservation" + "setIamPolicy": { + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", + "id": "compute.subnetworks.setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" }, - "description": "List of reservations in this commitment." - }, - "kind": { - "type": "string", - "default": "compute#commitment", - "description": "[Output Only] Type of the resource. Always compute#commitment for commitments." - }, - "name": { - "type": "string", - "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])?" - }, - "resources": { - "description": "A list of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.", - "items": { - "$ref": "ResourceCommitment" + "parameters": { + "resource": { + "location": "path", + "description": "Name or id of the resource for this request.", + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "project": { + "description": "Project ID for this request.", + "type": "string", + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "region": { + "type": "string", + "location": "path", + "required": true, + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + } }, - "type": "array" - }, - "endTimestamp": { - "type": "string", - "description": "[Output Only] Commitment end time in RFC3339 text format." - }, - "licenseResource": { - "$ref": "LicenseResourceCommitment", - "description": "The license specification required as part of a license commitment." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "statusMessage": { - "description": "[Output Only] An optional, human-readable explanation of the status.", - "type": "string" + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "httpMethod": "POST", + "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." }, - "startTimestamp": { - "description": "[Output Only] Commitment start time in RFC3339 text format.", - "type": "string" + "delete": { + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "description": "Deletes the specified subnetwork.", + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path", + "required": true + }, + "subnetwork": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name of the Subnetwork resource to delete.", + "location": "path", + "type": "string" + } + }, + "response": { + "$ref": "Operation" + }, + "id": "compute.subnetworks.delete", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "DELETE", + "parameterOrder": [ + "project", + "region", + "subnetwork" + ] }, - "plan": { - "type": "string", - "enum": [ - "INVALID", - "THIRTY_SIX_MONTH", - "TWELVE_MONTH" + "listUsable": { + "parameters": { + "filter": { + "location": "query", + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "minimum": "0", + "default": "500", + "format": "uint32", + "location": "query", + "type": "integer" + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "returnPartialSuccess": { + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "type": "boolean" + }, + "project": { + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enumDescriptions": [ - "", - "", - "" + "httpMethod": "GET", + "path": "projects/{project}/aggregated/subnetworks/listUsable", + "response": { + "$ref": "UsableSubnetworksAggregatedList" + }, + "flatPath": "projects/{project}/aggregated/subnetworks/listUsable", + "parameterOrder": [ + "project" ], - "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)." + "id": "compute.subnetworks.listUsable", + "description": "Retrieves an aggregated list of all usable subnetworks in the project." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "testIamPermissions": { + "parameterOrder": [ + "project", + "region", + "resource" + ], + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", + "response": { + "$ref": "TestPermissionsResponse" + }, + "id": "compute.subnetworks.testIamPermissions", + "httpMethod": "POST", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified resource.", + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "The name of the region for this request.", + "type": "string", + "location": "path" + }, + "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])?))", + "required": true, + "location": "path", + "description": "Project ID for this request.", + "type": "string" + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string", + "required": true, + "description": "Name or id of the resource for this request.", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "status": { - "enum": [ - "ACTIVE", - "CREATING", - "EXPIRED", - "NOT_YET_ACTIVE" + "getIamPolicy": { + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", + "httpMethod": "GET", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "parameters": { + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "description": "The name of the region for this request.", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path" + }, + "optionsRequestedPolicyVersion": { + "format": "int32", + "description": "Requested IAM Policy version.", + "type": "integer", + "location": "query" + }, + "resource": { + "required": true, + "description": "Name or id of the resource for this request.", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path" + } + }, + "id": "compute.subnetworks.getIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" ], - "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": [ - "", - "", - "", - "" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "region": { - "type": "string", - "description": "[Output Only] URL of the region where this commitment may be used." - }, - "category": { - "type": "string", - "enum": [ - "CATEGORY_UNSPECIFIED", - "LICENSE", - "MACHINE" + "get": { + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "parameterOrder": [ + "project", + "region", + "subnetwork" ], - "enumDescriptions": [ - "", - "", - "" + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "id": "compute.subnetworks.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "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." - } - }, - "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" - }, - "Firewall": { - "type": "object", - "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.", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#firewall for firewall rules.", - "type": "string", - "default": "compute#firewall" - }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "sourceRanges": { - "items": { - "type": "string" + "httpMethod": "GET", + "parameters": { + "subnetwork": { + "description": "Name of the Subnetwork resource to return.", + "required": true, + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + }, + "region": { + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "description": "Name of the region scoping this request.", + "location": "path" + }, + "project": { + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "description": "Project ID for this request." + } }, - "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" + "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.", + "response": { + "$ref": "Subnetwork" + } }, - "targetServiceAccounts": { - "items": { - "type": "string" + "insert": { + "request": { + "$ref": "Subnetwork" }, - "type": "array", - "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." - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for the resource." - }, - "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.", - "items": { - "properties": { - "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\"].", - "items": { - "type": "string" - }, - "type": "array" - }, - "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" - } + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "path": "projects/{project}/regions/{region}/subnetworks", + "parameters": { + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "type": "string" }, - "type": "object" + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "region": { + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "required": true, + "description": "Name of the region scoping this request.", + "location": "path" + } }, - "type": "array" + "flatPath": "projects/{project}/regions/{region}/subnetworks", + "description": "Creates a subnetwork in the specified project using the data included in the request.", + "id": "compute.subnetworks.insert" }, - "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.", - "type": "string", - "annotations": { - "required": [ - "compute.firewalls.insert", - "compute.firewalls.patch" - ] + "patch": { + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "request": { + "$ref": "Subnetwork" }, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" - }, - "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.", - "items": { - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "denied": { - "type": "array", - "items": { - "type": "object", - "properties": { - "IPProtocol": { - "type": "string", - "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." - }, - "ports": { - "type": "array", - "items": { - "type": "string" - }, - "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\"]." - } + "httpMethod": "PATCH", + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "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.", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "region": { + "required": true, + "type": "string", + "location": "path", + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "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])?))", + "type": "string", + "description": "Project ID for this request.", + "location": "path", + "required": true + }, + "drainTimeoutSeconds": { + "location": "query", + "format": "int32", + "type": "integer", + "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." + }, + "subnetwork": { + "location": "path", + "type": "string", + "description": "Name of the Subnetwork resource to patch.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" } }, - "description": "The list of DENY rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a denied connection." - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "id": { - "format": "uint64", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "id": "compute.subnetworks.patch" }, - "direction": { - "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS` traffic, you cannot specify the destinationRanges field, and for `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags fields.", - "enumDescriptions": [ - "Indicates that firewall should apply to outgoing traffic.", - "Indicates that firewall should apply to incoming traffic." + "expandIpCidrRange": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "type": "string", - "enum": [ - "EGRESS", - "INGRESS" - ] - }, - "destinationRanges": { - "items": { - "type": "string" + "response": { + "$ref": "Operation" }, - "type": "array", - "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." - }, - "sourceTags": { - "type": "array", - "items": { - "type": "string" + "id": "compute.subnetworks.expandIpCidrRange", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", + "request": { + "$ref": "SubnetworksExpandIpCidrRangeRequest" }, - "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." - }, - "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" - }, - "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" - } - }, - "disabled": { - "type": "boolean", - "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." - }, - "logConfig": { - "$ref": "FirewallLogConfig", - "description": "This field denotes the logging options for a particular firewall rule. If logging is enabled, logs will be exported to Cloud Logging." - }, - "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`.", - "format": "int32", - "type": "integer" - } - }, - "id": "Firewall" - }, - "PreservedState": { - "id": "PreservedState", - "properties": { - "metadata": { - "additionalProperties": { - "type": "string" + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", + "parameters": { + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "subnetwork": { + "required": true, + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the Subnetwork resource to update." + }, + "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", + "description": "Project ID for this request.", + "required": true, + "type": "string" + }, + "region": { + "required": true, + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + } }, - "description": "Preserved metadata defined for this instance.", - "type": "object" + "httpMethod": "POST", + "description": "Expands the IP CIDR range of the subnetwork to a specified value.", + "parameterOrder": [ + "project", + "region", + "subnetwork" + ] }, - "disks": { - "description": "Preserved disks defined for this instance. This map is keyed with the device names of the disks.", - "additionalProperties": { - "$ref": "PreservedStatePreservedDisk" + "aggregatedList": { + "response": { + "$ref": "SubnetworkAggregatedList" }, - "type": "object" - } - }, - "description": "Preserved state for a given instance.", - "type": "object" - }, - "AcceleratorTypesScopedList": { - "id": "AcceleratorTypesScopedList", - "properties": { - "warning": { - "properties": { - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "httpMethod": "GET", + "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.", + "parameters": { + "pageToken": { + "type": "string", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query" + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "returnPartialSuccess": { + "location": "query", + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "maxResults": { + "default": "500", + "location": "query", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "type": "integer", + "format": "uint32" + }, + "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, + "description": "Project ID for this request.", "type": "string" }, - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], + "includeAllScopes": { + "type": "boolean", + "location": "query", + "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." + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "type": "string" + } + }, + "path": "projects/{project}/aggregated/subnetworks", + "flatPath": "projects/{project}/aggregated/subnetworks", + "id": "compute.subnetworks.aggregatedList", + "parameterOrder": [ + "project" + ] + }, + "list": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "path": "projects/{project}/regions/{region}/subnetworks", + "httpMethod": "GET", + "description": "Retrieves a list of subnetworks available to the specified project.", + "id": "compute.subnetworks.list", + "flatPath": "projects/{project}/regions/{region}/subnetworks", + "parameters": { + "filter": { + "type": "string", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query" + }, + "region": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string", + "location": "path", + "description": "Name of the region scoping this request." + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, + "maxResults": { + "default": "500", + "type": "integer", + "format": "uint32", + "location": "query", + "minimum": "0", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)" + }, + "returnPartialSuccess": { + "type": "boolean", + "location": "query", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false." + }, + "project": { + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "location": "path" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - } - } + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" } }, - "description": "[Output Only] An informational warning that appears when the accelerator types list is empty.", - "type": "object" - }, - "acceleratorTypes": { - "description": "[Output Only] A list of accelerator types contained in this scope.", - "type": "array", - "items": { - "$ref": "AcceleratorType" - } - } - }, - "type": "object" - }, - "HttpRetryPolicy": { - "description": "The retry policy associates with HttpRouteRule", - "properties": { - "retryConditions": { - "description": "Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: Retry will be attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all, 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 will be attempted on failures connecting to the instance or endpoint, for example due to connection timeouts. - retriable-4xx: A retry will be attempted if the instance or endpoint responds with a retriable 4xx response code. Currently the only retriable error supported is 409. - refused-stream: A retry will be 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 will be attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: A retry will be attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: A retry will be attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: A retry will be attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: A retry will be attempted if the gRPC status code in the response header is set to unavailable. ", - "type": "array", - "items": { - "type": "string" + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "SubnetworkList" } - }, - "perTryTimeout": { - "$ref": "Duration", - "description": "Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, will use the largest timeout among all backend services associated with the route." - }, - "numRetries": { - "type": "integer", - "format": "uint32", - "description": "Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1." } - }, - "type": "object", - "id": "HttpRetryPolicy" + } }, - "InstancesStartWithEncryptionKeyRequest": { - "id": "InstancesStartWithEncryptionKeyRequest", - "properties": { - "disks": { - "items": { - "$ref": "CustomerEncryptionKeyProtectedDisk" + "networkFirewallPolicies": { + "methods": { + "addAssociation": { + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", + "id": "compute.networkFirewallPolicies.addAssociation", + "response": { + "$ref": "Operation" }, - "type": "array", - "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": "object" - }, - "OutlierDetection": { - "properties": { - "maxEjectionPercent": { - "type": "integer", - "description": "Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.", - "format": "int32" - }, - "baseEjectionTime": { - "description": "The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.", - "$ref": "Duration" - }, - "consecutiveErrors": { - "type": "integer", - "format": "int32", - "description": "Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5." - }, - "enforcingConsecutiveErrors": { - "type": "integer", - "format": "int32", - "description": "The percentage chance that a host will be actually 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." - }, - "successRateRequestVolume": { - "format": "int32", - "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host 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 host. Defaults to 100.", - "type": "integer" - }, - "enforcingConsecutiveGatewayFailure": { - "description": "The percentage chance that a host will be actually 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.", - "format": "int32", - "type": "integer" - }, - "interval": { - "description": "Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.", - "$ref": "Duration" - }, - "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 * success_rate_stdev_factor). 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.", - "format": "int32", - "type": "integer" - }, - "consecutiveGatewayFailure": { - "format": "int32", - "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" - }, - "successRateMinimumHosts": { - "type": "integer", - "description": "The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.", - "format": "int32" - }, - "enforcingSuccessRate": { - "type": "integer", - "description": "The percentage chance that a host will be actually 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.", - "format": "int32" - } - }, - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service.", - "type": "object", - "id": "OutlierDetection" - }, - "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", - "id": "ResourcePolicy", - "properties": { - "description": { - "type": "string" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "resourceStatus": { - "$ref": "ResourcePolicyResourceStatus", - "description": "[Output Only] The system status of the resource policy." - }, - "snapshotSchedulePolicy": { - "$ref": "ResourcePolicySnapshotSchedulePolicy", - "description": "Resource policy for persistent disks for creating snapshots." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "httpMethod": "POST", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "parameters": { + "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.", + "type": "boolean", + "location": "query" + }, + "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, + "description": "Project ID for this request.", + "type": "string" + }, + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "firewallPolicy": { + "location": "path", + "description": "Name of the firewall policy to update.", + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", + "request": { + "$ref": "FirewallPolicyAssociation" + }, + "description": "Inserts an association for the specified firewall policy." }, - "instanceSchedulePolicy": { - "description": "Resource policy for scheduling instance operations.", - "$ref": "ResourcePolicyInstanceSchedulePolicy" + "getRule": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "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", + "type": "string", + "description": "Project ID for this request.", + "required": true + }, + "firewallPolicy": { + "location": "path", + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the firewall policy to which the queried rule belongs.", + "required": true + }, + "priority": { + "format": "int32", + "type": "integer", + "location": "query", + "description": "The priority of the rule to get from the firewall policy." + } + }, + "httpMethod": "GET", + "id": "compute.networkFirewallPolicies.getRule", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", + "response": { + "$ref": "FirewallPolicyRule" + }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", + "description": "Gets a rule of the specified priority." }, - "kind": { - "description": "[Output Only] Type of the resource. Always compute#resource_policies for resource policies.", - "type": "string", - "default": "compute#resourcePolicy" + "getAssociation": { + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "response": { + "$ref": "FirewallPolicyAssociation" + }, + "description": "Gets an association with the specified name.", + "id": "compute.networkFirewallPolicies.getAssociation", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "location": "query", + "description": "The name of the association to get from the firewall policy.", + "type": "string" + }, + "firewallPolicy": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the firewall policy to which the queried association belongs.", + "location": "path" + }, + "project": { + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "description": "Project ID for this request.", + "type": "string" + } + } }, - "name": { - "type": "string", - "annotations": { - "required": [ - "compute.instances.insert" - ] + "get": { + "description": "Returns the specified network firewall policy.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "firewallPolicy": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "type": "string", + "description": "Name of the firewall policy to get." + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + } }, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "response": { + "$ref": "FirewallPolicy" + }, + "httpMethod": "GET", + "id": "compute.networkFirewallPolicies.get", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}" }, - "status": { - "enum": [ - "CREATING", - "DELETING", - "EXPIRED", - "INVALID", - "READY" + "delete": { + "parameterOrder": [ + "project", + "firewallPolicy" ], - "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." + "description": "Deletes the specified policy.", + "id": "compute.networkFirewallPolicies.delete", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string" + }, + "firewallPolicy": { + "description": "Name of the firewall policy to delete.", + "required": true, + "type": "string", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" + } + }, + "httpMethod": "DELETE", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ] }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" - }, - "region": { - "type": "string" - }, - "groupPlacementPolicy": { - "description": "Resource policy for instances for placement configuration.", - "$ref": "ResourcePolicyGroupPlacementPolicy" - } - } - }, - "InstanceGroupManagerVersion": { - "id": "InstanceGroupManagerVersion", - "properties": { - "instanceTemplate": { - "type": "string", - "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." - }, - "targetSize": { - "$ref": "FixedOrPercent", - "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." - }, - "name": { - "description": "Name of the version. Unique among all versions in the scope of this managed instance group.", - "type": "string" - } - }, - "type": "object" - }, - "RegionList": { - "type": "object", - "description": "Contains a list of region resources.", - "id": "RegionList", - "properties": { - "kind": { - "type": "string", - "description": "[Output Only] Type of resource. Always compute#regionList for lists of regions.", - "default": "compute#regionList" - }, - "items": { - "description": "A list of Region resources.", - "type": "array", - "items": { - "$ref": "Region" - } - }, - "selfLink": { - "type": "string", - "description": "[Output Only] Server-defined URL for this resource." + "removeAssociation": { + "httpMethod": "POST", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", + "description": "Removes an association for the specified firewall policy.", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "id": "compute.networkFirewallPolicies.removeAssociation", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", + "parameters": { + "project": { + "location": "path", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "firewallPolicy": { + "type": "string", + "required": true, + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the firewall policy to update." + }, + "name": { + "location": "query", + "type": "string", + "description": "Name for the attachment that will be removed." + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "warning": { - "description": "[Output Only] Informational warning message.", - "properties": { - "code": { - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "cloneRules": { + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", + "id": "compute.networkFirewallPolicies.cloneRules", + "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "description": "Copies rules to the specified firewall policy.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "sourceFirewallPolicy": { + "description": "The firewall policy from which to copy rules.", + "location": "query", + "type": "string" + }, + "firewallPolicy": { + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string", - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "description": "Name of the firewall policy to update." + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - }, - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } " + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true, + "type": "string" + } + } + }, + "patch": { + "parameters": { + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. 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": { + "firewallPolicy": { + "location": "path", + "required": true, + "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}", + "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", + "description": "Project ID for this request.", "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "required": true } }, - "type": "object" - }, - "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" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - } - } - }, - "TargetSslProxiesSetBackendServiceRequest": { - "properties": { - "service": { - "type": "string", - "description": "The URL of the new BackendService resource for the targetSslProxy." - } - }, - "id": "TargetSslProxiesSetBackendServiceRequest", - "type": "object" - }, - "ProjectsGetXpnResources": { - "type": "object", - "properties": { - "resources": { - "items": { - "$ref": "XpnResourceId" + "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.", + "id": "compute.networkFirewallPolicies.patch", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "response": { + "$ref": "Operation" }, - "description": "Service resources (a.k.a service projects) attached to this project as their shared VPC host.", - "type": "array" - }, - "kind": { - "default": "compute#projectsGetXpnResources", - "type": "string", - "description": "[Output Only] Type of resource. Always compute#projectsGetXpnResources for lists of service resources (a.k.a service projects)" - }, - "nextPageToken": { - "type": "string", - "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." - } - }, - "id": "ProjectsGetXpnResources" - }, - "SubnetworkAggregatedList": { - "properties": { - "items": { - "additionalProperties": { - "$ref": "SubnetworksScopedList", - "description": "Name of the scope containing this set of Subnetworks." + "request": { + "$ref": "FirewallPolicy" }, - "description": "A list of SubnetworksScopedList resources.", - "type": "object" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "httpMethod": "PATCH", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}" }, - "kind": { - "default": "compute#subnetworkAggregatedList", - "description": "[Output Only] Type of resource. Always compute#subnetworkAggregatedList for aggregated lists of subnetworks.", - "type": "string" + "getIamPolicy": { + "id": "compute.networkFirewallPolicies.getIamPolicy", + "response": { + "$ref": "Policy" + }, + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "parameterOrder": [ + "project", + "resource" + ], + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", + "httpMethod": "GET", + "path": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "type": "integer", + "format": "int32", + "description": "Requested IAM Policy version.", + "location": "query" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "location": "path" + }, + "resource": { + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "description": "Name or id of the resource for this request.", + "location": "path", + "type": "string" + } + } }, - "warning": { - "properties": { - "code": { - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "addRule": { + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicyRule" + }, + "httpMethod": "POST", + "description": "Inserts a rule into a firewall policy.", + "parameters": { + "firewallPolicy": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response." + "location": "path", + "description": "Name of the firewall policy to update." }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "type": "string" }, - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "type": "string", - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding)." - } - }, - "type": "object" - } + "maxPriority": { + "type": "integer", + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", + "format": "int32", + "location": "query" + }, + "minPriority": { + "type": "integer", + "location": "query", + "format": "int32", + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority." + }, + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." } }, - "description": "[Output Only] Informational warning message.", - "type": "object" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" + "id": "compute.networkFirewallPolicies.addRule", + "response": { + "$ref": "Operation" }, - "type": "array" + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule" }, - "nextPageToken": { - "type": "string", - "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": "object", - "id": "SubnetworkAggregatedList" - }, - "InterconnectDiagnosticsLinkLACPStatus": { - "id": "InterconnectDiagnosticsLinkLACPStatus", - "type": "object", - "properties": { - "neighborSystemId": { - "description": "System ID of the port on the neighbor's side of the LACP exchange.", - "type": "string" + "patchRule": { + "description": "Patches a rule of the specified priority.", + "httpMethod": "POST", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", + "response": { + "$ref": "Operation" + }, + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", + "request": { + "$ref": "FirewallPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "id": "compute.networkFirewallPolicies.patchRule", + "parameters": { + "priority": { + "type": "integer", + "description": "The priority of the rule to patch.", + "format": "int32", + "location": "query" + }, + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + }, + "firewallPolicy": { + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the firewall policy to update.", + "type": "string", + "required": true + }, + "project": { + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request.", + "required": true + } + } }, - "googleSystemId": { - "type": "string", - "description": "System ID of the port on Google's side of the LACP exchange." + "removeRule": { + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", + "description": "Deletes a rule of the specified priority.", + "id": "compute.networkFirewallPolicies.removeRule", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "parameters": { + "project": { + "location": "path", + "description": "Project ID for this request.", + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))" + }, + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "firewallPolicy": { + "location": "path", + "required": true, + "type": "string", + "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}" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + } }, - "state": { - "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." + "list": { + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "type": "string", - "enum": [ - "ACTIVE", - "DETACHED" + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results." + }, + "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" + }, + "filter": { + "location": "query", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string" + }, + "project": { + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "required": true, + "description": "Project ID for this request." + }, + "orderBy": { + "location": "query", + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query", + "default": "500", + "format": "uint32", + "minimum": "0", + "type": "integer" + } + }, + "parameterOrder": [ + "project" ], - "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. " - } - } - }, - "RegionInstanceGroupManagersListInstanceConfigsResp": { - "type": "object", - "id": "RegionInstanceGroupManagersListInstanceConfigsResp", - "properties": { - "items": { - "description": "[Output Only] The list of PerInstanceConfig.", - "items": { - "$ref": "PerInstanceConfig" + "path": "projects/{project}/global/firewallPolicies", + "id": "compute.networkFirewallPolicies.list", + "response": { + "$ref": "FirewallPolicyList" }, - "type": "array" + "flatPath": "projects/{project}/global/firewallPolicies", + "description": "Lists all the policies that have been configured for the specified 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" + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", + "id": "compute.networkFirewallPolicies.setIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "parameters": { + "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])?))", + "required": true, + "type": "string", + "location": "path", + "description": "Project ID for this request." + }, + "resource": { + "location": "path", + "type": "string", + "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}", + "required": true + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "path": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", + "httpMethod": "POST" }, - "warning": { - "type": "object", - "properties": { - "data": { - "type": "array", - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "[Output Only] A warning data value corresponding to the key." - }, - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - } - } - } + "insert": { + "path": "projects/{project}/global/firewallPolicies", + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "projects/{project}/global/firewallPolicies", + "description": "Creates a new policy in the specified project using the data included in the request.", + "id": "compute.networkFirewallPolicies.insert", + "parameters": { + "requestId": { + "type": "string", + "location": "query", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." }, - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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": { + "location": "path", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string" + } + }, + "response": { + "$ref": "Operation" + }, + "request": { + "$ref": "FirewallPolicy" + }, + "parameterOrder": [ + "project" + ] + }, + "testIamPermissions": { + "response": { + "$ref": "TestPermissionsResponse" + }, + "id": "compute.networkFirewallPolicies.testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "httpMethod": "POST", + "path": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", + "parameters": { + "project": { + "required": true, + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", "type": "string" }, - "message": { + "resource": { "type": "string", - "description": "[Output Only] A human-readable description of the warning code." + "description": "Name or id of the resource for this request.", + "location": "path", + "required": true, + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}" } }, - "description": "[Output Only] Informational warning message." - } - } - }, - "NetworkEndpointGroupsAttachEndpointsRequest": { - "type": "object", - "properties": { - "networkEndpoints": { - "type": "array", - "description": "The list of network endpoints to be attached.", - "items": { - "$ref": "NetworkEndpoint" + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" } } - }, - "id": "NetworkEndpointGroupsAttachEndpointsRequest" + } }, - "SslPolicy": { - "id": "SslPolicy", - "description": "Represents an SSL Policy resource. Use SSL policies to control the SSL features, such as versions and cipher suites, offered by an HTTPS or SSL Proxy load balancer. For more information, read SSL Policy Concepts.", - "type": "object", - "properties": { - "kind": { - "description": "[Output only] Type of the resource. Always compute#sslPolicyfor SSL policies.", - "type": "string", - "default": "compute#sslPolicy" - }, - "creationTimestamp": { - "type": "string", - "description": "[Output Only] Creation timestamp in RFC3339 text format." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "description": { - "type": "string", - "description": "An optional description of this resource. Provide this property when you create the resource." - }, - "warnings": { - "type": "array", - "description": "[Output Only] If potential misconfigurations are detected for this SSL policy, this field will be populated with warning messages.", - "items": { - "properties": { - "code": { - "type": "string", - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "When deploying a deployment with a exceedingly large number of resources", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "LARGE_DEPLOYMENT_WARNING", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_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\" } ", - "items": { - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP 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" - }, - "type": "array" - } + "httpsHealthChecks": { + "methods": { + "update": { + "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.", + "id": "compute.httpsHealthChecks.update", + "parameterOrder": [ + "project", + "httpsHealthCheck" + ], + "httpMethod": "PUT", + "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "parameters": { + "httpsHealthCheck": { + "required": true, + "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}", + "type": "string", + "location": "path" }, - "type": "object" - } + "project": { + "required": true, + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "type": "string", + "description": "Project ID for this request." + }, + "requestId": { + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "request": { + "$ref": "HttpsHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "profile": { - "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." + "delete": { + "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "response": { + "$ref": "Operation" + }, + "description": "Deletes the specified HttpsHealthCheck resource.", + "id": "compute.httpsHealthChecks.delete", + "parameterOrder": [ + "project", + "httpsHealthCheck" ], - "enum": [ - "COMPATIBLE", - "CUSTOM", - "MODERN", - "RESTRICTED" + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "location": "path", + "type": "string" + }, + "httpsHealthCheck": { + "required": true, + "type": "string", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "description": "Name of the HttpsHealthCheck resource to delete.", + "location": "path" + }, + "requestId": { + "location": "query", + "type": "string", + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000)." + } + }, + "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "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" - }, - "id": { - "type": "string", - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64" + "httpMethod": "DELETE" }, - "minTlsVersion": { - "type": "string", - "enumDescriptions": [ - "TLS 1.0", - "TLS 1.1", - "TLS 1.2" + "insert": { + "response": { + "$ref": "Operation" + }, + "path": "projects/{project}/global/httpsHealthChecks", + "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.", + "request": { + "$ref": "HttpsHealthCheck" + }, + "id": "compute.httpsHealthChecks.insert", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "TLS_1_0", - "TLS_1_1", - "TLS_1_2" + "httpMethod": "POST", + "flatPath": "projects/{project}/global/httpsHealthChecks", + "parameterOrder": [ + "project" ], - "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." - }, - "fingerprint": { - "type": "string", - "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.", - "format": "byte" + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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": { + "type": "string", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "description": "Project ID for this request." + } + } }, - "customFeatures": { - "items": { - "type": "string" + "patch": { + "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "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.", + "id": "compute.httpsHealthChecks.patch", + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "type": "string", + "location": "query" + }, + "httpsHealthCheck": { + "required": true, + "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", + "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])?))", + "description": "Project ID for this request.", + "required": true, + "location": "path", + "type": "string" + } }, - "type": "array", - "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." + "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "httpMethod": "PATCH", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "project", + "httpsHealthCheck" + ], + "request": { + "$ref": "HttpsHealthCheck" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "name": { - "type": "string", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "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." + "get": { + "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.", + "response": { + "$ref": "HttpsHealthCheck" + }, + "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "parameters": { + "httpsHealthCheck": { + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "description": "Name of the HttpsHealthCheck resource to return.", + "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])?))", + "type": "string", + "location": "path", + "required": true, + "description": "Project ID for this request." + } + }, + "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "httpMethod": "GET", + "id": "compute.httpsHealthChecks.get", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "parameterOrder": [ + "project", + "httpsHealthCheck" + ] }, - "enabledFeatures": { - "type": "array", - "items": { - "type": "string" + "list": { + "response": { + "$ref": "HttpsHealthCheckList" }, - "description": "[Output Only] The list of features enabled in the SSL policy." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "id": "compute.httpsHealthChecks.list", + "parameterOrder": [ + "project" + ], + "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.", + "httpMethod": "GET", + "flatPath": "projects/{project}/global/httpsHealthChecks", + "path": "projects/{project}/global/httpsHealthChecks", + "parameters": { + "project": { + "required": true, + "location": "path", + "type": "string", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "description": "Project ID for this request." + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported." + }, + "pageToken": { + "location": "query", + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "type": "string", + "location": "query" + }, + "returnPartialSuccess": { + "type": "boolean", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query" + }, + "maxResults": { + "minimum": "0", + "default": "500", + "format": "uint32", + "type": "integer", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "location": "query" + } + } } } } }, - "servicePath": "compute/v1/", - "icons": { - "x32": "https://www.google.com/images/icons/product/compute_engine-32.png", - "x16": "https://www.google.com/images/icons/product/compute_engine-16.png" - }, - "ownerDomain": "google.com" -} \ No newline at end of file + "documentationLink": "https://cloud.google.com/compute/", + "id": "compute:v1", + "name": "compute", + "mtlsRootUrl": "https://compute.mtls.googleapis.com/", + "baseUrl": "https://compute.googleapis.com/compute/v1/" +} diff --git a/google/cloud/compute/v1/compute_gapic.yaml b/google/cloud/compute/v1/compute_gapic.yaml index 9d968e667..aa1cc85a2 100755 --- a/google/cloud/compute/v1/compute_gapic.yaml +++ b/google/cloud/compute/v1/compute_gapic.yaml @@ -1,4 +1,4 @@ -# Copyright 2021 Google LLC +# 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. @@ -14,7 +14,7 @@ # Generated by the disco-to-proto3-converter. DO NOT EDIT! # Source Discovery file: compute.v1.json -# Source file revision: 20211004 +# Source file revision: 20220831 # API name: compute # API version: v1 @@ -38,6 +38,12 @@ interfaces: 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.Autoscalers methods: - name: Delete @@ -96,6 +102,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - name: SetEdgeSecurityPolicy + 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 @@ -134,6 +146,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - name: SetEdgeSecurityPolicy + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: SetSecurityPolicy long_running: initial_poll_delay_millis: 500 @@ -344,6 +362,12 @@ interfaces: 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.GlobalForwardingRules methods: - name: Delete @@ -674,6 +698,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - name: Resume + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: SetDeletionProtection long_running: initial_poll_delay_millis: 500 @@ -764,6 +794,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - name: Suspend + 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 @@ -814,6 +850,12 @@ interfaces: 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.Interconnects methods: - name: Delete @@ -834,6 +876,12 @@ interfaces: 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.Licenses methods: - name: Delete @@ -848,6 +896,40 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.MachineImages + 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: google.cloud.compute.v1.NetworkEdgeSecurityServices + 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: 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.NetworkEndpointGroups methods: - name: AttachNetworkEndpoints @@ -874,6 +956,62 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.NetworkFirewallPolicies + methods: + - name: AddAssociation + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: AddRule + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: CloneRules + 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: Patch + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: PatchRule + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: RemoveAssociation + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: RemoveRule + 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.Networks methods: - name: AddPeering @@ -1146,6 +1284,12 @@ interfaces: 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.RegionDisks methods: - name: AddResourcePolicies @@ -1352,6 +1496,62 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.RegionNetworkFirewallPolicies + methods: + - name: AddAssociation + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: AddRule + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: CloneRules + 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: Patch + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: PatchRule + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: RemoveAssociation + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: RemoveRule + 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.RegionNotificationEndpoints methods: - name: Delete @@ -1366,6 +1566,26 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.RegionSecurityPolicies + 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: 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.RegionSslCertificates methods: - name: Delete @@ -1380,6 +1600,26 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.RegionSslPolicies + 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: 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.RegionTargetHttpProxies methods: - name: Delete @@ -1414,6 +1654,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - 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: SetSslCertificates long_running: initial_poll_delay_millis: 500 @@ -1426,6 +1672,20 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.RegionTargetTcpProxies + 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: google.cloud.compute.v1.RegionUrlMaps methods: - name: Delete @@ -1472,6 +1732,12 @@ interfaces: 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.ResourcePolicies methods: - name: Delete @@ -1564,6 +1830,12 @@ interfaces: 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.ServiceAttachments methods: - name: Delete @@ -1592,6 +1864,12 @@ interfaces: 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 @@ -1730,6 +2008,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - name: SetCertificateMap + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: SetQuicOverride long_running: initial_poll_delay_millis: 500 @@ -1832,6 +2116,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - name: SetCertificateMap + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: SetProxyHeader long_running: initial_poll_delay_millis: 500 @@ -1890,6 +2180,12 @@ interfaces: 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.UrlMaps methods: - name: Delete @@ -1956,3 +2252,9 @@ interfaces: 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 diff --git a/google/cloud/compute/v1/compute_grpc_service_config.json b/google/cloud/compute/v1/compute_grpc_service_config.json index 5f7ec9d39..c81563533 100755 --- a/google/cloud/compute/v1/compute_grpc_service_config.json +++ b/google/cloud/compute/v1/compute_grpc_service_config.json @@ -39,6 +39,9 @@ }, { "service" : "google.cloud.compute.v1.BackendServices", "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.BackendServices", + "method" : "GetIamPolicy" }, { "service" : "google.cloud.compute.v1.BackendServices", "method" : "List" @@ -261,6 +264,15 @@ }, { "service" : "google.cloud.compute.v1.Licenses", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.MachineImages", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.MachineImages", + "method" : "GetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.MachineImages", + "method" : "List" }, { "service" : "google.cloud.compute.v1.MachineTypes", "method" : "AggregatedList" @@ -270,6 +282,12 @@ }, { "service" : "google.cloud.compute.v1.MachineTypes", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.NetworkEdgeSecurityServices", + "method" : "AggregatedList" + }, { + "service" : "google.cloud.compute.v1.NetworkEdgeSecurityServices", + "method" : "Get" }, { "service" : "google.cloud.compute.v1.NetworkEndpointGroups", "method" : "AggregatedList" @@ -279,6 +297,21 @@ }, { "service" : "google.cloud.compute.v1.NetworkEndpointGroups", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "GetAssociation" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "GetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "GetRule" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "List" }, { "service" : "google.cloud.compute.v1.Networks", "method" : "Get" @@ -366,6 +399,9 @@ }, { "service" : "google.cloud.compute.v1.RegionBackendServices", "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.RegionBackendServices", + "method" : "GetIamPolicy" }, { "service" : "google.cloud.compute.v1.RegionBackendServices", "method" : "List" @@ -426,6 +462,24 @@ }, { "service" : "google.cloud.compute.v1.RegionNetworkEndpointGroups", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "GetAssociation" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "GetEffectiveFirewalls" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "GetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "GetRule" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "List" }, { "service" : "google.cloud.compute.v1.RegionNotificationEndpoints", "method" : "Get" @@ -438,12 +492,27 @@ }, { "service" : "google.cloud.compute.v1.RegionOperations", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.RegionSecurityPolicies", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.RegionSecurityPolicies", + "method" : "List" }, { "service" : "google.cloud.compute.v1.RegionSslCertificates", "method" : "Get" }, { "service" : "google.cloud.compute.v1.RegionSslCertificates", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.RegionSslPolicies", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.RegionSslPolicies", + "method" : "List" + }, { + "service" : "google.cloud.compute.v1.RegionSslPolicies", + "method" : "ListAvailableFeatures" }, { "service" : "google.cloud.compute.v1.RegionTargetHttpProxies", "method" : "Get" @@ -456,6 +525,12 @@ }, { "service" : "google.cloud.compute.v1.RegionTargetHttpsProxies", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.RegionTargetTcpProxies", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.RegionTargetTcpProxies", + "method" : "List" }, { "service" : "google.cloud.compute.v1.RegionUrlMaps", "method" : "Get" @@ -513,6 +588,9 @@ }, { "service" : "google.cloud.compute.v1.Routes", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.SecurityPolicies", + "method" : "AggregatedList" }, { "service" : "google.cloud.compute.v1.SecurityPolicies", "method" : "Get" @@ -555,6 +633,9 @@ }, { "service" : "google.cloud.compute.v1.SslCertificates", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.SslPolicies", + "method" : "AggregatedList" }, { "service" : "google.cloud.compute.v1.SslPolicies", "method" : "Get" @@ -699,6 +780,9 @@ }, { "service" : "google.cloud.compute.v1.Addresses", "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.Addresses", + "method" : "SetLabels" }, { "service" : "google.cloud.compute.v1.Autoscalers", "method" : "Delete" @@ -726,6 +810,9 @@ }, { "service" : "google.cloud.compute.v1.BackendBuckets", "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.BackendBuckets", + "method" : "SetEdgeSecurityPolicy" }, { "service" : "google.cloud.compute.v1.BackendBuckets", "method" : "Update" @@ -747,6 +834,12 @@ }, { "service" : "google.cloud.compute.v1.BackendServices", "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.BackendServices", + "method" : "SetEdgeSecurityPolicy" + }, { + "service" : "google.cloud.compute.v1.BackendServices", + "method" : "SetIamPolicy" }, { "service" : "google.cloud.compute.v1.BackendServices", "method" : "SetSecurityPolicy" @@ -861,6 +954,9 @@ }, { "service" : "google.cloud.compute.v1.GlobalAddresses", "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.GlobalAddresses", + "method" : "SetLabels" }, { "service" : "google.cloud.compute.v1.GlobalForwardingRules", "method" : "Delete" @@ -1050,6 +1146,9 @@ }, { "service" : "google.cloud.compute.v1.Instances", "method" : "Reset" + }, { + "service" : "google.cloud.compute.v1.Instances", + "method" : "Resume" }, { "service" : "google.cloud.compute.v1.Instances", "method" : "SendDiagnosticInterrupt" @@ -1101,6 +1200,9 @@ }, { "service" : "google.cloud.compute.v1.Instances", "method" : "Stop" + }, { + "service" : "google.cloud.compute.v1.Instances", + "method" : "Suspend" }, { "service" : "google.cloud.compute.v1.Instances", "method" : "TestIamPermissions" @@ -1128,6 +1230,9 @@ }, { "service" : "google.cloud.compute.v1.InterconnectAttachments", "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.InterconnectAttachments", + "method" : "SetLabels" }, { "service" : "google.cloud.compute.v1.Interconnects", "method" : "Delete" @@ -1137,6 +1242,9 @@ }, { "service" : "google.cloud.compute.v1.Interconnects", "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.Interconnects", + "method" : "SetLabels" }, { "service" : "google.cloud.compute.v1.LicenseCodes", "method" : "TestIamPermissions" @@ -1152,6 +1260,27 @@ }, { "service" : "google.cloud.compute.v1.Licenses", "method" : "TestIamPermissions" + }, { + "service" : "google.cloud.compute.v1.MachineImages", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.MachineImages", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.MachineImages", + "method" : "SetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.MachineImages", + "method" : "TestIamPermissions" + }, { + "service" : "google.cloud.compute.v1.NetworkEdgeSecurityServices", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.NetworkEdgeSecurityServices", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.NetworkEdgeSecurityServices", + "method" : "Patch" }, { "service" : "google.cloud.compute.v1.NetworkEndpointGroups", "method" : "AttachNetworkEndpoints" @@ -1170,6 +1299,39 @@ }, { "service" : "google.cloud.compute.v1.NetworkEndpointGroups", "method" : "TestIamPermissions" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "AddAssociation" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "AddRule" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "CloneRules" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "PatchRule" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "RemoveAssociation" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "RemoveRule" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "SetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.NetworkFirewallPolicies", + "method" : "TestIamPermissions" }, { "service" : "google.cloud.compute.v1.Networks", "method" : "AddPeering" @@ -1314,12 +1476,18 @@ }, { "service" : "google.cloud.compute.v1.RegionBackendServices", "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.RegionBackendServices", + "method" : "SetIamPolicy" }, { "service" : "google.cloud.compute.v1.RegionBackendServices", "method" : "Update" }, { "service" : "google.cloud.compute.v1.RegionCommitments", "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.RegionCommitments", + "method" : "Update" }, { "service" : "google.cloud.compute.v1.RegionDisks", "method" : "AddResourcePolicies" @@ -1431,6 +1599,39 @@ }, { "service" : "google.cloud.compute.v1.RegionNetworkEndpointGroups", "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "AddAssociation" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "AddRule" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "CloneRules" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "PatchRule" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "RemoveAssociation" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "RemoveRule" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "SetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.RegionNetworkFirewallPolicies", + "method" : "TestIamPermissions" }, { "service" : "google.cloud.compute.v1.RegionNotificationEndpoints", "method" : "Delete" @@ -1443,12 +1644,30 @@ }, { "service" : "google.cloud.compute.v1.RegionOperations", "method" : "Wait" + }, { + "service" : "google.cloud.compute.v1.RegionSecurityPolicies", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.RegionSecurityPolicies", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.RegionSecurityPolicies", + "method" : "Patch" }, { "service" : "google.cloud.compute.v1.RegionSslCertificates", "method" : "Delete" }, { "service" : "google.cloud.compute.v1.RegionSslCertificates", "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.RegionSslPolicies", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.RegionSslPolicies", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.RegionSslPolicies", + "method" : "Patch" }, { "service" : "google.cloud.compute.v1.RegionTargetHttpProxies", "method" : "Delete" @@ -1464,12 +1683,21 @@ }, { "service" : "google.cloud.compute.v1.RegionTargetHttpsProxies", "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.RegionTargetHttpsProxies", + "method" : "Patch" }, { "service" : "google.cloud.compute.v1.RegionTargetHttpsProxies", "method" : "SetSslCertificates" }, { "service" : "google.cloud.compute.v1.RegionTargetHttpsProxies", "method" : "SetUrlMap" + }, { + "service" : "google.cloud.compute.v1.RegionTargetTcpProxies", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.RegionTargetTcpProxies", + "method" : "Insert" }, { "service" : "google.cloud.compute.v1.RegionUrlMaps", "method" : "Delete" @@ -1500,6 +1728,9 @@ }, { "service" : "google.cloud.compute.v1.Reservations", "method" : "TestIamPermissions" + }, { + "service" : "google.cloud.compute.v1.Reservations", + "method" : "Update" }, { "service" : "google.cloud.compute.v1.ResourcePolicies", "method" : "Delete" @@ -1551,6 +1782,9 @@ }, { "service" : "google.cloud.compute.v1.SecurityPolicies", "method" : "RemoveRule" + }, { + "service" : "google.cloud.compute.v1.SecurityPolicies", + "method" : "SetLabels" }, { "service" : "google.cloud.compute.v1.ServiceAttachments", "method" : "Delete" @@ -1569,6 +1803,9 @@ }, { "service" : "google.cloud.compute.v1.Snapshots", "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.Snapshots", + "method" : "Insert" }, { "service" : "google.cloud.compute.v1.Snapshots", "method" : "SetIamPolicy" @@ -1644,6 +1881,9 @@ }, { "service" : "google.cloud.compute.v1.TargetHttpsProxies", "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.TargetHttpsProxies", + "method" : "SetCertificateMap" }, { "service" : "google.cloud.compute.v1.TargetHttpsProxies", "method" : "SetQuicOverride" @@ -1695,6 +1935,9 @@ }, { "service" : "google.cloud.compute.v1.TargetSslProxies", "method" : "SetBackendService" + }, { + "service" : "google.cloud.compute.v1.TargetSslProxies", + "method" : "SetCertificateMap" }, { "service" : "google.cloud.compute.v1.TargetSslProxies", "method" : "SetProxyHeader" @@ -1722,6 +1965,9 @@ }, { "service" : "google.cloud.compute.v1.TargetVpnGateways", "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.TargetVpnGateways", + "method" : "SetLabels" }, { "service" : "google.cloud.compute.v1.UrlMaps", "method" : "Delete" @@ -1758,6 +2004,9 @@ }, { "service" : "google.cloud.compute.v1.VpnTunnels", "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.VpnTunnels", + "method" : "SetLabels" }, { "service" : "google.cloud.compute.v1.ZoneOperations", "method" : "Delete" diff --git a/google/cloud/connectors/v1/BUILD.bazel b/google/cloud/connectors/v1/BUILD.bazel new file mode 100644 index 000000000..c86271f9b --- /dev/null +++ b/google/cloud/connectors/v1/BUILD.bazel @@ -0,0 +1,399 @@ +# 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 = "connectors_proto", + srcs = [ + "authconfig.proto", + "common.proto", + "connection.proto", + "connector.proto", + "connector_version.proto", + "connectors_service.proto", + "destination_config.proto", + "provider.proto", + "runtime.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//:field_mask_proto", + "@com_google_protobuf//:struct_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "connectors_proto_with_info", + deps = [ + ":connectors_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "connectors_java_proto", + deps = [":connectors_proto"], +) + +java_grpc_library( + name = "connectors_java_grpc", + srcs = [":connectors_proto"], + deps = [":connectors_java_proto"], +) + +java_gapic_library( + name = "connectors_java_gapic", + srcs = [":connectors_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "connectors_grpc_service_config.json", + service_yaml = "connectors_v1.yaml", + test_deps = [ + ":connectors_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":connectors_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "connectors_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.connectors.v1.ConnectorsClientHttpJsonTest", + "com.google.cloud.connectors.v1.ConnectorsClientTest", + ], + runtime_deps = [":connectors_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-connectors-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":connectors_java_gapic", + ":connectors_java_grpc", + ":connectors_java_proto", + ":connectors_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "connectors_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/connectors/v1", + protos = [":connectors_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "connectors_go_gapic", + srcs = [":connectors_proto_with_info"], + grpc_service_config = "connectors_grpc_service_config.json", + importpath = "cloud.google.com/go/connectors/apiv1;connectors", + metadata = True, + service_yaml = "connectors_v1.yaml", + transport = "grpc+rest", + deps = [ + ":connectors_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:struct_go_proto", + ], +) + +go_test( + name = "connectors_go_gapic_test", + srcs = [":connectors_go_gapic_srcjar_test"], + embed = [":connectors_go_gapic"], + importpath = "cloud.google.com/go/connectors/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-connectors-v1-go", + deps = [ + ":connectors_go_gapic", + ":connectors_go_gapic_srcjar-metadata.srcjar", + ":connectors_go_gapic_srcjar-test.srcjar", + ":connectors_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "connectors_py_gapic", + srcs = [":connectors_proto"], + grpc_service_config = "connectors_grpc_service_config.json", + service_yaml = "connectors_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "connectors_py_gapic_test", + srcs = [ + "connectors_py_gapic_pytest.py", + "connectors_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":connectors_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "connectors-v1-py", + deps = [ + ":connectors_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "connectors_php_proto", + deps = [":connectors_proto"], +) + +php_grpc_library( + name = "connectors_php_grpc", + srcs = [":connectors_proto"], + deps = [":connectors_php_proto"], +) + +php_gapic_library( + name = "connectors_php_gapic", + srcs = [":connectors_proto_with_info"], + grpc_service_config = "connectors_grpc_service_config.json", + service_yaml = "connectors_v1.yaml", + deps = [ + ":connectors_php_grpc", + ":connectors_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-connectors-v1-php", + deps = [ + ":connectors_php_gapic", + ":connectors_php_grpc", + ":connectors_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "connectors_nodejs_gapic", + package_name = "@google-cloud/connectors", + src = ":connectors_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "connectors_grpc_service_config.json", + package = "google.cloud.connectors.v1", + service_yaml = "connectors_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "connectors-v1-nodejs", + deps = [ + ":connectors_nodejs_gapic", + ":connectors_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 = "connectors_ruby_proto", + deps = [":connectors_proto"], +) + +ruby_grpc_library( + name = "connectors_ruby_grpc", + srcs = [":connectors_proto"], + deps = [":connectors_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "connectors_ruby_gapic", + srcs = [":connectors_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-connectors-v1", + ], + grpc_service_config = "connectors_grpc_service_config.json", + service_yaml = "connectors_v1.yaml", + deps = [ + ":connectors_ruby_grpc", + ":connectors_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-connectors-v1-ruby", + deps = [ + ":connectors_ruby_gapic", + ":connectors_ruby_grpc", + ":connectors_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 = "connectors_csharp_proto", + deps = [":connectors_proto"], +) + +csharp_grpc_library( + name = "connectors_csharp_grpc", + srcs = [":connectors_proto"], + deps = [":connectors_csharp_proto"], +) + +csharp_gapic_library( + name = "connectors_csharp_gapic", + srcs = [":connectors_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "connectors_grpc_service_config.json", + service_yaml = "connectors_v1.yaml", + deps = [ + ":connectors_csharp_grpc", + ":connectors_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-connectors-v1-csharp", + deps = [ + ":connectors_csharp_gapic", + ":connectors_csharp_grpc", + ":connectors_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "connectors_cc_proto", + deps = [":connectors_proto"], +) + +cc_grpc_library( + name = "connectors_cc_grpc", + srcs = [":connectors_proto"], + grpc_only = True, + deps = [":connectors_cc_proto"], +) diff --git a/google/cloud/connectors/v1/authconfig.proto b/google/cloud/connectors/v1/authconfig.proto new file mode 100644 index 000000000..dd2b6baaf --- /dev/null +++ b/google/cloud/connectors/v1/authconfig.proto @@ -0,0 +1,140 @@ +// 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.cloud.connectors.v1; + +import "google/cloud/connectors/v1/common.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; +option java_outer_classname = "AuthConfigProto"; +option java_package = "com.google.cloud.connectors.v1"; + +// AuthConfig defines details of a authentication type. +message AuthConfig { + // Parameters to support Username and Password Authentication. + message UserPassword { + // Username. + string username = 1; + + // Secret version reference containing the password. + Secret password = 2; + } + + // Parameters to support JSON Web Token (JWT) Profile for Oauth 2.0 + // Authorization Grant based authentication. + // See https://tools.ietf.org/html/rfc7523 for more details. + message Oauth2JwtBearer { + // JWT claims used for the jwt-bearer authorization grant. + message JwtClaims { + // Value for the "iss" claim. + string issuer = 1; + + // Value for the "sub" claim. + string subject = 2; + + // Value for the "aud" claim. + string audience = 3; + } + + // Secret version reference containing a PKCS#8 PEM-encoded private + // key associated with the Client Certificate. This private key will be + // used to sign JWTs used for the jwt-bearer authorization grant. + // Specified in the form as: `projects/*/secrets/*/versions/*`. + Secret client_key = 1; + + // JwtClaims providers fields to generate the token. + JwtClaims jwt_claims = 2; + } + + // Parameters to support Oauth 2.0 Client Credentials Grant Authentication. + // See https://tools.ietf.org/html/rfc6749#section-1.3.4 for more details. + message Oauth2ClientCredentials { + // The client identifier. + string client_id = 1; + + // Secret version reference containing the client secret. + Secret client_secret = 2; + } + + // Parameters to support Ssh public key Authentication. + message SshPublicKey { + // The user account used to authenticate. + string username = 1; + + // This is an optional field used in case client has enabled multi-factor + // authentication + Secret password = 2; + + // SSH Client Cert. It should contain both public and private key. + Secret ssh_client_cert = 3; + + // Format of SSH Client cert. + string cert_type = 4; + + // Password (passphrase) for ssh client certificate if it has one. + Secret ssh_client_cert_pass = 5; + } + + // The type of authentication configured. + AuthType auth_type = 1; + + // Supported auth types. + oneof type { + // UserPassword. + UserPassword user_password = 2; + + // Oauth2JwtBearer. + Oauth2JwtBearer oauth2_jwt_bearer = 3; + + // Oauth2ClientCredentials. + Oauth2ClientCredentials oauth2_client_credentials = 4; + + // SSH Public Key. + SshPublicKey ssh_public_key = 6; + } + + // List containing additional auth configs. + repeated ConfigVariable additional_variables = 5; +} + +// AuthConfigTemplate defines required field over an authentication type. +message AuthConfigTemplate { + // The type of authentication configured. + AuthType auth_type = 1; + + // Config variables to describe an `AuthConfig` for a `Connection`. + repeated ConfigVariableTemplate config_variable_templates = 2; +} + +// AuthType defines different authentication types. +enum AuthType { + // Authentication type not specified. + AUTH_TYPE_UNSPECIFIED = 0; + + // Username and Password Authentication. + USER_PASSWORD = 1; + + // JSON Web Token (JWT) Profile for Oauth 2.0 + // Authorization Grant based authentication + OAUTH2_JWT_BEARER = 2; + + // Oauth 2.0 Client Credentials Grant Authentication + OAUTH2_CLIENT_CREDENTIALS = 3; + + // SSH Public Key Authentication + SSH_PUBLIC_KEY = 4; +} diff --git a/google/cloud/connectors/v1/common.proto b/google/cloud/connectors/v1/common.proto new file mode 100644 index 000000000..a70ca493e --- /dev/null +++ b/google/cloud/connectors/v1/common.proto @@ -0,0 +1,258 @@ +// 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.cloud.connectors.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; +option java_outer_classname = "CommonProto"; +option java_package = "com.google.cloud.connectors.v1"; + +// 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]; +} + +// ConfigVariableTemplate provides metadata about a `ConfigVariable` that is +// used in a Connection. +message ConfigVariableTemplate { + // ValueType indicates the data type of the value. + enum ValueType { + // Value type is not specified. + VALUE_TYPE_UNSPECIFIED = 0; + + // Value type is string. + STRING = 1; + + // Value type is integer. + INT = 2; + + // Value type is boolean. + BOOL = 3; + + // Value type is secret. + SECRET = 4; + + // Value type is enum. + ENUM = 5; + + // Value type is authorization code. + AUTHORIZATION_CODE = 6; + } + + // Indicates the state of the config variable. + enum State { + // Status is unspecified. + STATE_UNSPECIFIED = 0; + + // Config variable is active + ACTIVE = 1; + + // Config variable is deprecated. + DEPRECATED = 2; + } + + // Key of the config variable. + string key = 1; + + // Type of the parameter: string, int, bool etc. + // consider custom type for the benefit for the validation. + ValueType value_type = 2; + + // Display name of the parameter. + string display_name = 3; + + // Description. + string description = 4; + + // Regular expression in RE2 syntax used for validating the `value` of a + // `ConfigVariable`. + string validation_regex = 5; + + // Flag represents that this `ConfigVariable` must be provided for a + // connection. + bool required = 6; + + // Role grant configuration for the config variable. + RoleGrant role_grant = 7; + + // Enum options. To be populated if `ValueType` is `ENUM` + repeated EnumOption enum_options = 8; + + // Authorization code link options. To be populated if `ValueType` is + // `AUTHORIZATION_CODE` + AuthorizationCodeLink authorization_code_link = 9; + + // State of the config variable. + State state = 10; +} + +// Secret provides a reference to entries in Secret Manager. +message Secret { + // The resource name of the secret version in the format, + // format as: `projects/*/secrets/*/versions/*`. + string secret_version = 1; +} + +// EnumOption definition +message EnumOption { + // Id of the option. + string id = 1; + + // Display name of the option. + string display_name = 2; +} + +// ConfigVariable represents a configuration variable present in a Connection. +// or AuthConfig. +message ConfigVariable { + // Key of the config variable. + string key = 1; + + // Value type of the config variable. + oneof value { + // Value is an integer + int64 int_value = 2; + + // Value is a bool. + bool bool_value = 3; + + // Value is a string. + string string_value = 4; + + // Value is a secret. + Secret secret_value = 5; + } +} + +// This configuration defines all the Cloud IAM roles that needs to be granted +// to a particular GCP resource for the selected prinicpal like service +// account. These configurations will let UI display to customers what +// IAM roles need to be granted by them. Or these configurations can be used +// by the UI to render a 'grant' button to do the same on behalf of the user. +message RoleGrant { + // Supported Principal values. + enum Principal { + // Value type is not specified. + PRINCIPAL_UNSPECIFIED = 0; + + // Service Account used for Connector workload identity + // This is either the default service account if unspecified or Service + // Account provided by Customers through BYOSA. + CONNECTOR_SA = 1; + } + + // Resource definition + message Resource { + // Resource Type definition. + enum Type { + // Value type is not specified. + TYPE_UNSPECIFIED = 0; + + // GCP Project Resource. + GCP_PROJECT = 1; + + // Any GCP Resource which is identified uniquely by IAM. + GCP_RESOURCE = 2; + + // GCP Secret Resource. + GCP_SECRETMANAGER_SECRET = 3; + + // GCP Secret Version Resource. + GCP_SECRETMANAGER_SECRET_VERSION = 4; + } + + // Different types of resource supported. + Type type = 1; + + // Template to uniquely represent a GCP resource in a format IAM expects + // This is a template that can have references to other values provided in + // the config variable template. + string path_template = 3; + } + + // Prinicipal/Identity for whom the role need to assigned. + Principal principal = 1; + + // List of roles that need to be granted. + repeated string roles = 2; + + // Resource on which the roles needs to be granted for the principal. + Resource resource = 3; + + // Template that UI can use to provide helper text to customers. + string helper_text_template = 4; +} + +// This configuration captures the details required to render an authorization +// link for the OAuth Authorization Code Flow. +message AuthorizationCodeLink { + // The base URI the user must click to trigger the authorization code login + // flow. + string uri = 1; + + // The scopes for which the user will authorize GCP Connectors on the + // connector data source. + repeated string scopes = 2; + + // The client ID assigned to the GCP Connectors OAuth app for the connector + // data source. + string client_id = 3; + + // Whether to enable PKCE for the auth code flow. + bool enable_pkce = 4; +} + +// LaunchStage is a enum to indicate launch stage: +// PREVIEW, GA, DEPRECATED. +enum LaunchStage { + // LAUNCH_STAGE_UNSPECIFIED. + LAUNCH_STAGE_UNSPECIFIED = 0; + + // PREVIEW. + PREVIEW = 1; + + // GA. + GA = 2; + + // DEPRECATED. + DEPRECATED = 3; +} diff --git a/google/cloud/connectors/v1/connection.proto b/google/cloud/connectors/v1/connection.proto new file mode 100644 index 000000000..c0ce7ceaa --- /dev/null +++ b/google/cloud/connectors/v1/connection.proto @@ -0,0 +1,596 @@ +// 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.cloud.connectors.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/connectors/v1/authconfig.proto"; +import "google/cloud/connectors/v1/common.proto"; +import "google/cloud/connectors/v1/destination_config.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; +option java_outer_classname = "ConnectionProto"; +option java_package = "com.google.cloud.connectors.v1"; + +// Connection represents an instance of connector. +message Connection { + option (google.api.resource) = { + type: "connectors.googleapis.com/Connection" + pattern: "projects/{project}/locations/{location}/connections/{connection}" + }; + + // Output only. Resource name of the Connection. + // Format: projects/{project}/locations/{location}/connections/{connection} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Created time. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Updated time. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Resource labels to represent user-provided metadata. + // Refer to cloud documentation on labels for more details. + // https://cloud.google.com/compute/docs/labeling-resources + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Description of the resource. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Connector version on which the connection is created. + // The format is: + // projects/*/locations/*/providers/*/connectors/*/versions/* + // Only global location is supported for ConnectorVersion resource. + string connector_version = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/ConnectorVersion" + } + ]; + + // Output only. Current status of the connection. + ConnectionStatus status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Configuration for configuring the connection with an external system. + repeated ConfigVariable config_variables = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration for establishing the connection's authentication with an + // external system. + AuthConfig auth_config = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration that indicates whether or not the Connection can be edited. + LockConfig lock_config = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration of the Connector's destination. Only accepted for Connectors + // that accepts user defined destination(s). + repeated DestinationConfig destination_configs = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. GCR location where the runtime image is stored. + // formatted like: gcr.io/{bucketName}/{imageName} + string image_location = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Service account needed for runtime plane to access GCP resources. + string service_account = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The name of the Service Directory service name. Used for + // Private Harpoon to resolve the ILB address. + // e.g. + // "projects/cloud-connectors-e2e-testing/locations/us-central1/namespaces/istio-system/services/istio-ingressgateway-connectors" + string service_directory = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. GCR location where the envoy image is stored. + // formatted like: gcr.io/{bucketName}/{imageName} + string envoy_image_location = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Suspended indicates if a user has suspended a connection or not. + bool suspended = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration for the connection. + NodeConfig node_config = 19 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for the connection. +message NodeConfig { + // Minimum number of nodes in the runtime nodes. + int32 min_node_count = 1; + + // Maximum number of nodes in the runtime nodes. + int32 max_node_count = 2; +} + +// Metadata of connection schema. +message ConnectionSchemaMetadata { + // Output only. List of entity names. + repeated string entities = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of actions. + repeated string actions = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Schema of a runtime entity. +message RuntimeEntitySchema { + // Metadata of an entity field. + message Field { + // Name of the Field. + string field = 1; + + // A brief description of the Field. + string description = 2; + + // The data type of the Field. + DataType data_type = 3; + + // The following boolean field specifies if the current Field acts + // as a primary key or id if the parent is of type entity. + bool key = 4; + + // Specifies if the Field is readonly. + bool readonly = 5; + + // Specifies whether a null value is allowed. + bool nullable = 6; + + // The following field specifies the default value of the Field provided + // by the external system if a value is not provided. + google.protobuf.Value default_value = 7; + + // The following map contains fields that are not explicitly mentioned + // above,this give connectors the flexibility to add new metadata + // fields. + google.protobuf.Struct additional_details = 8; + } + + // Output only. Name of the entity. + string entity = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of fields in the entity. + repeated Field fields = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Schema of a runtime action. +message RuntimeActionSchema { + // Metadata of an input parameter. + message InputParameter { + // Name of the Parameter. + string parameter = 1; + + // A brief description of the Parameter. + string description = 2; + + // The data type of the Parameter. + DataType data_type = 3; + + // Specifies whether a null value is allowed. + bool nullable = 4; + + // The following field specifies the default value of the Parameter + // provided by the external system if a value is not provided. + google.protobuf.Value default_value = 5; + } + + // Metadata of result field. + message ResultMetadata { + // Name of the result field. + string field = 1; + + // A brief description of the field. + string description = 2; + + // The data type of the field. + DataType data_type = 3; + } + + // Output only. Name of the action. + string action = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of input parameter metadata for the action. + repeated InputParameter input_parameters = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of result field metadata. + repeated ResultMetadata result_metadata = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Determines whether or no a connection is locked. If locked, a reason must be +// specified. +message LockConfig { + // Indicates whether or not the connection is locked. + bool locked = 1; + + // Describes why a connection is locked. + string reason = 2; +} + +// Request message for ConnectorsService.ListConnections +message ListConnectionsRequest { + // Required. Parent resource of the Connection, of the form: + // `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "connectors.googleapis.com/Connection" + } + ]; + + // Page size. + int32 page_size = 2; + + // Page token. + string page_token = 3; + + // Filter. + string filter = 4; + + // Order by parameters. + string order_by = 5; + + // Specifies which fields of the Connection are returned in the response. + // Defaults to `BASIC` view. + ConnectionView view = 6; +} + +// Response message for ConnectorsService.ListConnections +message ListConnectionsResponse { + // Connections. + repeated Connection connections = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for ConnectorsService.GetConnection +message GetConnectionRequest { + // Required. Resource name of the form: + // `projects/*/locations/*/connections/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Connection" + } + ]; + + // Specifies which fields of the Connection are returned in the response. + // Defaults to `BASIC` view. + ConnectionView view = 2; +} + +// Request message for ConnectorsService.CreateConnection +message CreateConnectionRequest { + // Required. Parent resource of the Connection, of the form: + // `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "connectors.googleapis.com/Connection" + } + ]; + + // Required. Identifier to assign to the Connection. Must be unique within scope of + // the parent resource. + string connection_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Connection resource. + Connection connection = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ConnectorsService.UpdateConnection +message UpdateConnectionRequest { + // Required. Connection resource. + Connection connection = 1 [(google.api.field_behavior) = REQUIRED]; + + // 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 = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ConnectorsService.DeleteConnection. +message DeleteConnectionRequest { + // Required. Resource name of the form: + // `projects/*/locations/*/connections/*` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Connection" + } + ]; +} + +// Request message for ConnectorsService.GetConnectionSchemaMetadata. +message GetConnectionSchemaMetadataRequest { + // Required. Connection name + // Format: + // projects/{project}/locations/{location}/connections/{connection}/connectionSchemaMetadata + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Connection" + } + ]; +} + +// Request message for ConnectorsService.ListRuntimeEntitySchemas. +// For filter, only entity field is supported with literal equality operator. +// Accepted filter example: entity="Order" +// Wildcards are not supported in the filter currently. +message ListRuntimeEntitySchemasRequest { + // Required. Parent resource of RuntimeEntitySchema + // Format: + // projects/{project}/locations/{location}/connections/{connection} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Connection" + } + ]; + + // Page size. + int32 page_size = 2; + + // Page token. + string page_token = 3; + + // Required. Filter + // Format: + // entity="{entityId}" + // Only entity field is supported with literal equality operator. + // Accepted filter example: entity="Order" + // Wildcards are not supported in the filter currently. + string filter = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for ConnectorsService.ListRuntimeEntitySchemas. +message ListRuntimeEntitySchemasResponse { + // Runtime entity schemas. + repeated RuntimeEntitySchema runtime_entity_schemas = 1; + + // Next page token. + string next_page_token = 2; +} + +// Request message for ConnectorsService.ListRuntimeActionSchemas. +// For filter, only action field is supported with literal equality operator. +// Accepted filter example: action="approveOrder" +// Wildcards are not supported in the filter currently. +message ListRuntimeActionSchemasRequest { + // Required. Parent resource of RuntimeActionSchema + // Format: + // projects/{project}/locations/{location}/connections/{connection} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Connection" + } + ]; + + // Page size. + int32 page_size = 2; + + // Page token. + string page_token = 3; + + // Required. Filter + // Format: + // action="{actionId}" + // Only action field is supported with literal equality operator. + // Accepted filter example: action="CancelOrder" + // Wildcards are not supported in the filter currently. + string filter = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for ConnectorsService.ListRuntimeActionSchemas. +message ListRuntimeActionSchemasResponse { + // Runtime action schemas. + repeated RuntimeActionSchema runtime_action_schemas = 1; + + // Next page token. + string next_page_token = 2; +} + +// ConnectionStatus indicates the state of the connection. +message ConnectionStatus { + // All the possible Connection State. + enum State { + // Connection does not have a state yet. + STATE_UNSPECIFIED = 0; + + // Connection is being created. + CREATING = 1; + + // Connection is running and ready for requests. + ACTIVE = 2; + + // Connection is stopped. + INACTIVE = 3; + + // Connection is being deleted. + DELETING = 4; + + // Connection is being updated. + UPDATING = 5; + + // Connection is not running due to an error. + ERROR = 6; + } + + // State. + State state = 1; + + // Description. + string description = 2; + + // Status provides detailed information for the state. + string status = 3; +} + +// All possible data types of a entity or action field. +enum DataType { + // Data type is not specified. + DATA_TYPE_UNSPECIFIED = 0; + + // DEPRECATED! Use DATA_TYPE_INTEGER. + DATA_TYPE_INT = 1 [deprecated = true]; + + // Short integer(int16) data type. + DATA_TYPE_SMALLINT = 2; + + // Double data type. + DATA_TYPE_DOUBLE = 3; + + // Date data type. + DATA_TYPE_DATE = 4; + + // DEPRECATED! Use DATA_TYPE_TIMESTAMP. + DATA_TYPE_DATETIME = 5 [deprecated = true]; + + // Time data type. + DATA_TYPE_TIME = 6; + + // DEPRECATED! Use DATA_TYPE_VARCHAR. + DATA_TYPE_STRING = 7 [deprecated = true]; + + // DEPRECATED! Use DATA_TYPE_BIGINT. + DATA_TYPE_LONG = 8 [deprecated = true]; + + // Boolean data type. + DATA_TYPE_BOOLEAN = 9; + + // Decimal data type. + DATA_TYPE_DECIMAL = 10; + + // DEPRECATED! Use DATA_TYPE_VARCHAR. + DATA_TYPE_UUID = 11 [deprecated = true]; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_BLOB = 12; + + // Bit data type. + DATA_TYPE_BIT = 13; + + // Small integer(int8) data type. + DATA_TYPE_TINYINT = 14; + + // Integer(int32) data type. + DATA_TYPE_INTEGER = 15; + + // Long integer(int64) data type. + DATA_TYPE_BIGINT = 16; + + // Float data type. + DATA_TYPE_FLOAT = 17; + + // Real data type. + DATA_TYPE_REAL = 18; + + // Numeric data type. + DATA_TYPE_NUMERIC = 19; + + // Char data type. + DATA_TYPE_CHAR = 20; + + // Varchar data type. + DATA_TYPE_VARCHAR = 21; + + // Longvarchar data type. + DATA_TYPE_LONGVARCHAR = 22; + + // Timestamp data type. + DATA_TYPE_TIMESTAMP = 23; + + // Nchar data type. + DATA_TYPE_NCHAR = 24; + + // Nvarchar data type. + DATA_TYPE_NVARCHAR = 25; + + // Longnvarchar data type. + DATA_TYPE_LONGNVARCHAR = 26; + + // Null data type. + DATA_TYPE_NULL = 27; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_OTHER = 28; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_JAVA_OBJECT = 29; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_DISTINCT = 30; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_STRUCT = 31; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_ARRAY = 32; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_CLOB = 33; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_REF = 34; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_DATALINK = 35; + + // UNSUPPORTED! Row id data type. + DATA_TYPE_ROWID = 36; + + // UNSUPPORTED! Binary data type. + DATA_TYPE_BINARY = 37; + + // UNSUPPORTED! Variable binary data type. + DATA_TYPE_VARBINARY = 38; + + // UNSUPPORTED! Long variable binary data type. + DATA_TYPE_LONGVARBINARY = 39; + + // UNSUPPORTED! NCLOB data type. + DATA_TYPE_NCLOB = 40; + + // UNSUPPORTED! SQL XML data type is not supported. + DATA_TYPE_SQLXML = 41; + + // UNSUPPORTED! Cursor reference type is not supported. + DATA_TYPE_REF_CURSOR = 42; + + // UNSUPPORTED! Use TIME or TIMESTAMP instead. + DATA_TYPE_TIME_WITH_TIMEZONE = 43; + + // UNSUPPORTED! Use TIMESTAMP instead. + DATA_TYPE_TIMESTAMP_WITH_TIMEZONE = 44; +} + +// Enum to control which fields should be included in the response. +enum ConnectionView { + // CONNECTION_UNSPECIFIED. + CONNECTION_VIEW_UNSPECIFIED = 0; + + // Do not include runtime required configs. + BASIC = 1; + + // Include runtime required configs. + FULL = 2; +} diff --git a/google/cloud/connectors/v1/connector.proto b/google/cloud/connectors/v1/connector.proto new file mode 100644 index 000000000..67380ed42 --- /dev/null +++ b/google/cloud/connectors/v1/connector.proto @@ -0,0 +1,114 @@ +// 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.cloud.connectors.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/connectors/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; +option java_outer_classname = "ConnectorProto"; +option java_package = "com.google.cloud.connectors.v1"; + +// Connectors indicates a specific connector type, e.x. Salesforce, SAP etc. +message Connector { + option (google.api.resource) = { + type: "connectors.googleapis.com/Connector" + pattern: "projects/{project}/locations/{location}/providers/{provider}/connectors/{connector}" + }; + + // Output only. Resource name of the Connector. + // Format: + // projects/{project}/locations/{location}/providers/{provider}/connectors/{connector} + // Only global location is supported for Connector resource. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Created time. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Updated time. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Resource labels to represent user-provided metadata. + // Refer to cloud documentation on labels for more details. + // https://cloud.google.com/compute/docs/labeling-resources + map labels = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Link to documentation page. + string documentation_uri = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Link to external page. + string external_uri = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Description of the resource. + string description = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cloud storage location of icons etc consumed by UI. + string web_assets_location = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Display name. + string display_name = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Flag to mark the version indicating the launch stage. + LaunchStage launch_stage = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for Connectors.GetConnector. +message GetConnectorRequest { + // Required. Resource name of the form: + // `projects/*/locations/*/providers/*/connectors/*` + // Only global location is supported for Connector resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Connector" + } + ]; +} + +// Request message for Connectors.ListConnectors. +message ListConnectorsRequest { + // Required. Parent resource of the connectors, of the form: + // `projects/*/locations/*/providers/*` + // Only global location is supported for Connector resource. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Provider" + } + ]; + + // Page size. + int32 page_size = 2; + + // Page token. + string page_token = 3; +} + +// Response message for Connectors.ListConnectors. +message ListConnectorsResponse { + // A list of connectors. + repeated Connector connectors = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} diff --git a/google/cloud/connectors/v1/connector_version.proto b/google/cloud/connectors/v1/connector_version.proto new file mode 100644 index 000000000..0db4ce1b2 --- /dev/null +++ b/google/cloud/connectors/v1/connector_version.proto @@ -0,0 +1,213 @@ +// 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.cloud.connectors.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/connectors/v1/authconfig.proto"; +import "google/cloud/connectors/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; +option java_outer_classname = "ConnectorVersionProto"; +option java_package = "com.google.cloud.connectors.v1"; + +// ConnectorVersion indicates a specific version of a connector. +message ConnectorVersion { + option (google.api.resource) = { + type: "connectors.googleapis.com/ConnectorVersion" + pattern: "projects/{project}/locations/{location}/providers/{provider}/connectors/{connector}/versions/{version}" + }; + + // Output only. Resource name of the Version. + // Format: + // projects/{project}/locations/{location}/providers/{provider}/connectors/{connector}/versions/{version} + // Only global location is supported for Connector resource. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Created time. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Updated time. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Resource labels to represent user-provided metadata. + // Refer to cloud documentation on labels for more details. + // https://cloud.google.com/compute/docs/labeling-resources + map labels = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Flag to mark the version indicating the launch stage. + LaunchStage launch_stage = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ReleaseVersion of the connector, for example: "1.0.1-alpha". + string release_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of auth configs supported by the Connector Version. + repeated AuthConfigTemplate auth_config_templates = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of config variables needed to create a connection. + repeated ConfigVariableTemplate config_variable_templates = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about the runtime features supported by the Connector. + SupportedRuntimeFeatures supported_runtime_features = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Display name. + string display_name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Configuration for Egress Control. + EgressControlConfig egress_control_config = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Role grant configurations for this connector version. + repeated RoleGrant role_grants = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Role grant configuration for this config variable. It will be DEPRECATED + // soon. + RoleGrant role_grant = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for Connectors.GetConnectorVersion. +message GetConnectorVersionRequest { + // Required. Resource name of the form: + // `projects/*/locations/*/providers/*/connectors/*/versions/*` + // Only global location is supported for ConnectorVersion resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/ConnectorVersion" + } + ]; + + // Specifies which fields of the ConnectorVersion are returned in the + // response. Defaults to `CUSTOMER` view. + ConnectorVersionView view = 2; +} + +// Request message for Connectors.ListConnectorVersions. +message ListConnectorVersionsRequest { + // Required. Parent resource of the connectors, of the form: + // `projects/*/locations/*/providers/*/connectors/*` + // Only global location is supported for ConnectorVersion resource. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Connector" + } + ]; + + // Page size. + int32 page_size = 2; + + // Page token. + string page_token = 3; + + // Specifies which fields of the ConnectorVersion are returned in the + // response. Defaults to `BASIC` view. + ConnectorVersionView view = 4; +} + +// Response message for Connectors.ListConnectorVersions. +message ListConnectorVersionsResponse { + // A list of connector versions. + repeated ConnectorVersion connector_versions = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Supported runtime features of a connector version. This is passed to the +// management layer to add a new connector version by the connector developer. +// Details about how this proto is passed to the management layer is covered in +// this doc - go/runtime-manifest. +message SupportedRuntimeFeatures { + // Specifies if the connector supports entity apis like 'createEntity'. + bool entity_apis = 1; + + // Specifies if the connector supports action apis like 'executeAction'. + bool action_apis = 2; + + // Specifies if the connector supports 'ExecuteSqlQuery' operation. + bool sql_query = 3; +} + +// Egress control config for connector runtime. These configurations define the +// rules to identify which outbound domains/hosts needs to be whitelisted. It +// may be a static information for a particular connector version or it is +// derived from the configurations provided by the customer in Connection +// resource. +message EgressControlConfig { + oneof oneof_backends { + // Static Comma separated backends which are common for all Connection + // resources. Supported formats for each backend are host:port or just + // host (host can be ip address or domain name). + string backends = 1; + + // Extractions Rules to extract the backends from customer provided + // configuration. + ExtractionRules extraction_rules = 2; + } +} + +// Extraction Rules to identity the backends from customer provided +// configuration in Connection resource. +message ExtractionRules { + // Collection of Extraction Rule. + repeated ExtractionRule extraction_rule = 1; +} + +// Extraction Rule. +message ExtractionRule { + // Source to extract the backend from. + message Source { + // Type of the source. + SourceType source_type = 1; + + // Field identifier. For example config vaiable name. + string field_id = 2; + } + + // Supported Source types for extraction. + enum SourceType { + // Default SOURCE. + SOURCE_TYPE_UNSPECIFIED = 0; + + // Config Variable source type. + CONFIG_VARIABLE = 1; + } + + // Source on which the rule is applied. + Source source = 1; + + // Regex used to extract backend details from source. If empty, whole source + // value will be used. + string extraction_regex = 2; +} + +// Enum to control which fields should be included in the response. +enum ConnectorVersionView { + // CONNECTOR_VERSION_VIEW_UNSPECIFIED. + CONNECTOR_VERSION_VIEW_UNSPECIFIED = 0; + + // Do not include role grant configs. + CONNECTOR_VERSION_VIEW_BASIC = 1; + + // Include role grant configs. + CONNECTOR_VERSION_VIEW_FULL = 2; +} diff --git a/google/cloud/connectors/v1/connectors_grpc_service_config.json b/google/cloud/connectors/v1/connectors_grpc_service_config.json new file mode 100644 index 000000000..c8b447649 --- /dev/null +++ b/google/cloud/connectors/v1/connectors_grpc_service_config.json @@ -0,0 +1,87 @@ +{ + "methodConfig": [{ + "name": [ + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "ListConnections" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "GetConnection" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "ListProviders" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "GetProvider" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "ListConnectors" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "GetConnector" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "ListConnectorVersions" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "GetConnectorVersion" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "ListProviders" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "GetProvider" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "GetConnectionSchemaMetadata" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "ListRuntimeEntitySchemas" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "ListRuntimeActionSchemas" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "GetRuntimeConfig" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "CreateConnection" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "UpdateConnection" + }, + { + "service": "google.cloud.connectors.v1.Connectors", + "method": "DeleteConnection" + } + ], + "timeout": "60s" + }] +} \ No newline at end of file diff --git a/google/cloud/connectors/v1/connectors_service.proto b/google/cloud/connectors/v1/connectors_service.proto new file mode 100644 index 000000000..9e3deb3ce --- /dev/null +++ b/google/cloud/connectors/v1/connectors_service.proto @@ -0,0 +1,173 @@ +// 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.cloud.connectors.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/connectors/v1/connection.proto"; +import "google/cloud/connectors/v1/connector.proto"; +import "google/cloud/connectors/v1/connector_version.proto"; +import "google/cloud/connectors/v1/provider.proto"; +import "google/cloud/connectors/v1/runtime.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; +option java_outer_classname = "ConnectorsServiceProto"; +option java_package = "com.google.cloud.connectors.v1"; + +// Connectors is the interface for managing Connectors. +service Connectors { + option (google.api.default_host) = "connectors.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" + }; + } + + // Lists Providers in a given project and location. + rpc ListProviders(ListProvidersRequest) returns (ListProvidersResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/providers" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a provider. + rpc GetProvider(GetProviderRequest) returns (Provider) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/providers/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Connectors in a given project and location. + rpc ListConnectors(ListConnectorsRequest) returns (ListConnectorsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/providers/*}/connectors" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Connector. + rpc GetConnector(GetConnectorRequest) returns (Connector) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/providers/*/connectors/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Connector Versions in a given project and location. + rpc ListConnectorVersions(ListConnectorVersionsRequest) returns (ListConnectorVersionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/providers/*/connectors/*}/versions" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single connector version. + rpc GetConnectorVersion(GetConnectorVersionRequest) returns (ConnectorVersion) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/providers/*/connectors/*/versions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets schema metadata of a connection. + // SchemaMetadata is a singleton resource for each connection. + rpc GetConnectionSchemaMetadata(GetConnectionSchemaMetadataRequest) returns (ConnectionSchemaMetadata) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/connections/*/connectionSchemaMetadata}" + }; + option (google.api.method_signature) = "name"; + } + + // List schema of a runtime entities filtered by entity name. + rpc ListRuntimeEntitySchemas(ListRuntimeEntitySchemasRequest) returns (ListRuntimeEntitySchemasResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/connections/*}/runtimeEntitySchemas" + }; + option (google.api.method_signature) = "parent"; + } + + // List schema of a runtime actions filtered by action name. + rpc ListRuntimeActionSchemas(ListRuntimeActionSchemasRequest) returns (ListRuntimeActionSchemasResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/connections/*}/runtimeActionSchemas" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the runtimeConfig of a location. + // RuntimeConfig is a singleton resource for each location. + rpc GetRuntimeConfig(GetRuntimeConfigRequest) returns (RuntimeConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/runtimeConfig}" + }; + option (google.api.method_signature) = "name"; + } +} diff --git a/google/cloud/connectors/v1/connectors_v1.yaml b/google/cloud/connectors/v1/connectors_v1.yaml new file mode 100644 index 000000000..83b2c9474 --- /dev/null +++ b/google/cloud/connectors/v1/connectors_v1.yaml @@ -0,0 +1,115 @@ +type: google.api.Service +config_version: 3 +name: connectors.googleapis.com +title: Connectors API + +apis: +- name: google.cloud.connectors.v1.Connectors +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.connectors.v1.OperationMetadata + +documentation: + summary: |- + Enables users to create and manage connections to Google Cloud services + and third-party business applications using the Connectors interface. + 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. + +backend: + rules: + - selector: 'google.cloud.connectors.v1.Connectors.*' + 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 + 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/*/connections/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/providers/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/connections/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/providers/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/connections/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/providers/*}: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.connectors.v1.Connectors.*' + 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 diff --git a/google/cloud/connectors/v1/destination_config.proto b/google/cloud/connectors/v1/destination_config.proto new file mode 100644 index 000000000..79c0d92f0 --- /dev/null +++ b/google/cloud/connectors/v1/destination_config.proto @@ -0,0 +1,43 @@ +// 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.cloud.connectors.v1; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; + +// Define the Connectors target endpoint. +message DestinationConfig { + // The key is the destination identifier that is supported by the Connector. + string key = 1; + + // The destinations for the key. + repeated Destination destinations = 2; +} + +message Destination { + oneof destination { + // PSC service attachments. + // Format: projects/*/regions/*/serviceAttachments/* + string service_attachment = 1; + + // For publicly routable host. + string host = 2; + } + + // The port is the target port number that is accepted by the destination. + int32 port = 3; +} diff --git a/google/cloud/connectors/v1/provider.proto b/google/cloud/connectors/v1/provider.proto new file mode 100644 index 000000000..08ea21cfa --- /dev/null +++ b/google/cloud/connectors/v1/provider.proto @@ -0,0 +1,113 @@ +// 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.cloud.connectors.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/connectors/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; +option java_outer_classname = "ProviderProto"; +option java_package = "com.google.cloud.connectors.v1"; + +// Provider indicates the owner who provides the connectors. +message Provider { + option (google.api.resource) = { + type: "connectors.googleapis.com/Provider" + pattern: "projects/{project}/locations/{location}/providers/{provider}" + }; + + // Output only. Resource name of the Provider. + // Format: projects/{project}/locations/{location}/providers/{provider} + // Only global location is supported for Provider resource. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Created time. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Updated time. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Resource labels to represent user-provided metadata. + // Refer to cloud documentation on labels for more details. + // https://cloud.google.com/compute/docs/labeling-resources + map labels = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Link to documentation page. + string documentation_uri = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Link to external page. + string external_uri = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Description of the resource. + string description = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cloud storage location of icons etc consumed by UI. + string web_assets_location = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Display name. + string display_name = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Flag to mark the version indicating the launch stage. + LaunchStage launch_stage = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for Connectors.GetProvider. +message GetProviderRequest { + // Required. Resource name of the form: + // `projects/*/locations/*/providers/*` + // Only global location is supported for Provider resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/Provider" + } + ]; +} + +// Request message for Connectors.ListProviders. +message ListProvidersRequest { + // Required. Parent resource of the API, of the form: + // `projects/*/locations/*` + // Only global location is supported for Provider resource. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "connectors.googleapis.com/Provider" + } + ]; + + // Page size. + int32 page_size = 2; + + // Page token. + string page_token = 3; +} + +// Response message for Connectors.ListProviders. +message ListProvidersResponse { + // A list of providers. + repeated Provider providers = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} diff --git a/google/cloud/connectors/v1/runtime.proto b/google/cloud/connectors/v1/runtime.proto new file mode 100644 index 000000000..1a7a615d4 --- /dev/null +++ b/google/cloud/connectors/v1/runtime.proto @@ -0,0 +1,108 @@ +// 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.cloud.connectors.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors"; +option java_multiple_files = true; +option java_outer_classname = "RuntimeProto"; +option java_package = "com.google.cloud.connectors.v1"; + +// Request message for Connectors.GetRuntimeConfig. +message GetRuntimeConfigRequest { + // Required. Resource name of the form: + // `projects/*/locations/*/runtimeConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "connectors.googleapis.com/RuntimeConfig" + } + ]; +} + +// RuntimeConfig is the singleton resource of each location. +// It includes generic resource configs consumed by control plane and runtime +// plane like: pub/sub topic/subscription resource name, Cloud Storage location +// storing schema etc. +message RuntimeConfig { + option (google.api.resource) = { + type: "connectors.googleapis.com/RuntimeConfig" + pattern: "projects/{project}/locations/{location}/runtimeConfig" + }; + + // State of the location. + enum State { + // STATE_UNSPECIFIED. + STATE_UNSPECIFIED = 0; + + // INACTIVE. + INACTIVE = 1 [deprecated = true]; + + // ACTIVATING. + ACTIVATING = 2 [deprecated = true]; + + // ACTIVE. + ACTIVE = 3; + + // CREATING. + CREATING = 4; + + // DELETING. + DELETING = 5; + + // UPDATING. + UPDATING = 6; + } + + // Output only. location_id of the runtime location. E.g. "us-west1". + string location_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Pub/Sub topic for connd to send message. + // E.g. projects/{project-id}/topics/{topic-id} + string connd_topic = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Pub/Sub subscription for connd to receive message. + // E.g. projects/{project-id}/subscriptions/{topic-id} + string connd_subscription = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Pub/Sub topic for control plne to send message. + // communication. + // E.g. projects/{project-id}/topics/{topic-id} + string control_plane_topic = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Pub/Sub subscription for control plane to receive message. + // E.g. projects/{project-id}/subscriptions/{topic-id} + string control_plane_subscription = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The endpoint of the connectors runtime ingress. + string runtime_endpoint = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The state of the location. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Cloud Storage bucket that stores connector's schema reports. + string schema_gcs_bucket = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the Service Directory service name. + string service_directory = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the runtimeConfig resource. + // Format: projects/{project}/locations/{location}/runtimeConfig + string name = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/contactcenterinsights/v1/BUILD.bazel b/google/cloud/contactcenterinsights/v1/BUILD.bazel index 7c943da93..a194b6191 100644 --- a/google/cloud/contactcenterinsights/v1/BUILD.bazel +++ b/google/cloud/contactcenterinsights/v1/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":contactcenterinsights_java_grpc", ], + transport = "grpc+rest", deps = [ ":contactcenterinsights_java_proto", ], @@ -84,6 +85,7 @@ java_gapic_library( java_gapic_test( name = "contactcenterinsights_java_gapic_test_suite", test_classes = [ + "com.google.cloud.contactcenterinsights.v1.ContactCenterInsightsClientHttpJsonTest", "com.google.cloud.contactcenterinsights.v1.ContactCenterInsightsClientTest", ], runtime_deps = [":contactcenterinsights_java_gapic_test"], @@ -92,6 +94,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-contactcenterinsights-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":contactcenterinsights_java_gapic", ":contactcenterinsights_java_grpc", @@ -130,6 +134,7 @@ go_gapic_library( importpath = "cloud.google.com/go/contactcenterinsights/apiv1;contactcenterinsights", metadata = True, service_yaml = "contactcenterinsights_v1.yaml", + transport = "grpc+rest", deps = [ ":contactcenterinsights_go_proto", "//google/longrunning:longrunning_go_proto", @@ -164,6 +169,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -175,6 +181,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=contact_center_insights", ], + transport = "grpc", +) + +py_test( + name = "contactcenterinsights_py_gapic_test", + srcs = [ + "contactcenterinsights_py_gapic_pytest.py", + "contactcenterinsights_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":contactcenterinsights_py_gapic"], ) # Open Source Packages @@ -333,6 +350,7 @@ csharp_gapic_library( srcs = [":contactcenterinsights_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "contactcenterinsights_grpc_service_config.json", + service_yaml = "contactcenterinsights_v1.yaml", deps = [ ":contactcenterinsights_csharp_grpc", ":contactcenterinsights_csharp_proto", diff --git a/google/cloud/contactcenterinsights/v1/contact_center_insights.proto b/google/cloud/contactcenterinsights/v1/contact_center_insights.proto index 8f7e7b9f9..c5956b93f 100644 --- a/google/cloud/contactcenterinsights/v1/contact_center_insights.proto +++ b/google/cloud/contactcenterinsights/v1/contact_center_insights.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/contactcenterinsights/v1/contactcenterinsights_v1.yaml b/google/cloud/contactcenterinsights/v1/contactcenterinsights_v1.yaml index e1d41770f..61af22367 100644 --- a/google/cloud/contactcenterinsights/v1/contactcenterinsights_v1.yaml +++ b/google/cloud/contactcenterinsights/v1/contactcenterinsights_v1.yaml @@ -5,6 +5,7 @@ title: Contact Center AI Insights API apis: - name: google.cloud.contactcenterinsights.v1.ContactCenterInsights +- name: google.longrunning.Operations types: - name: google.cloud.contactcenterinsights.v1.CreateAnalysisOperationMetadata diff --git a/google/cloud/contactcenterinsights/v1/resources.proto b/google/cloud/contactcenterinsights/v1/resources.proto index 1ac8c4c2f..bac8515aa 100644 --- a/google/cloud/contactcenterinsights/v1/resources.proto +++ b/google/cloud/contactcenterinsights/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -957,9 +957,9 @@ message ArticleSuggestionData { // that it originates from. map metadata = 4; - // Name of the query record. + // The name of the answer record. // Format: - // projects/{project}/locations/{location}/queryRecords/{query_record} + // projects/{project}/locations/{location}/answerRecords/{answer_record} string query_record = 5; // The knowledge document that this answer was extracted from. @@ -985,9 +985,9 @@ message FaqAnswerData { // it originates from. map metadata = 4; - // Name of the query record. + // The name of the answer record. // Format: - // projects/{project}/locations/{location}/queryRecords/{query_record}. + // projects/{project}/locations/{location}/answerRecords/{answer_record} string query_record = 5; // The knowledge document that this answer was extracted from. @@ -1010,9 +1010,9 @@ message SmartReplyData { // which it originates. map metadata = 3; - // Name of the query record. + // The name of the answer record. // Format: - // projects/{project}/locations/{location}/queryRecords/{query_record} + // projects/{project}/locations/{location}/answerRecords/{answer_record} string query_record = 4; } @@ -1030,9 +1030,9 @@ message SmartComposeSuggestionData { // document from which it originates. map metadata = 3; - // Name of the query record. + // The name of the answer record. // Format: - // projects/{project}/locations/{location}/queryRecords/{query_record} + // projects/{project}/locations/{location}/answerRecords/{answer_record} string query_record = 4; } diff --git a/google/cloud/contentwarehouse/v1/BUILD.bazel b/google/cloud/contentwarehouse/v1/BUILD.bazel new file mode 100644 index 000000000..2b9ad8ce0 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/BUILD.bazel @@ -0,0 +1,419 @@ +# 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 = "contentwarehouse_proto", + srcs = [ + "async_document_service_request.proto", + "common.proto", + "document.proto", + "document_link_service.proto", + "document_schema.proto", + "document_schema_service.proto", + "document_service.proto", + "document_service_request.proto", + "filters.proto", + "histogram.proto", + "rule_engine.proto", + "ruleset_service.proto", + "ruleset_service_request.proto", + "synonymset.proto", + "synonymset_service.proto", + "synonymset_service_request.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/cloud/documentai/v1:documentai_proto", + "//google/iam/v1:policy_proto", + "//google/type:datetime_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", + ], +) + +proto_library_with_info( + name = "contentwarehouse_proto_with_info", + deps = [ + ":contentwarehouse_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "contentwarehouse_java_proto", + deps = [":contentwarehouse_proto"], +) + +java_grpc_library( + name = "contentwarehouse_java_grpc", + srcs = [":contentwarehouse_proto"], + deps = [":contentwarehouse_java_proto"], +) + +java_gapic_library( + name = "contentwarehouse_java_gapic", + srcs = [":contentwarehouse_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "contentwarehouse_grpc_service_config.json", + service_yaml = "contentwarehouse_v1.yaml", + test_deps = [ + ":contentwarehouse_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":contentwarehouse_java_proto", + "//google/api:api_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +# TODO(b/246642734): Re-enable the failed json tests +java_gapic_test( + name = "contentwarehouse_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.contentwarehouse.v1.DocumentLinkServiceClientHttpJsonTest", + "com.google.cloud.contentwarehouse.v1.DocumentLinkServiceClientTest", +# "com.google.cloud.contentwarehouse.v1.DocumentSchemaServiceClientHttpJsonTest", + "com.google.cloud.contentwarehouse.v1.DocumentSchemaServiceClientTest", +# "com.google.cloud.contentwarehouse.v1.DocumentServiceClientHttpJsonTest", + "com.google.cloud.contentwarehouse.v1.DocumentServiceClientTest", +# "com.google.cloud.contentwarehouse.v1.RuleSetServiceClientHttpJsonTest", + "com.google.cloud.contentwarehouse.v1.RuleSetServiceClientTest", +# "com.google.cloud.contentwarehouse.v1.SynonymSetServiceClientHttpJsonTest", + "com.google.cloud.contentwarehouse.v1.SynonymSetServiceClientTest", + ], + runtime_deps = [":contentwarehouse_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-contentwarehouse-v1-java", + transport = "grpc+rest", + deps = [ + ":contentwarehouse_java_gapic", + ":contentwarehouse_java_grpc", + ":contentwarehouse_java_proto", + ":contentwarehouse_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "contentwarehouse_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1", + protos = [":contentwarehouse_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/cloud/documentai/v1:documentai_go_proto", + "//google/iam/v1:iam_go_proto", + "//google/type:datetime_go_proto", + "//google/type:interval_go_proto", + ], +) + +go_gapic_library( + name = "contentwarehouse_go_gapic", + srcs = [":contentwarehouse_proto_with_info"], + grpc_service_config = "contentwarehouse_grpc_service_config.json", + importpath = "cloud.google.com/go/contentwarehouse/apiv1;contentwarehouse", + metadata = True, + service_yaml = "contentwarehouse_v1.yaml", + transport = "grpc+rest", + rest_numeric_enums = True, + deps = [ + ":contentwarehouse_go_proto", + "//google/iam/v1:iam_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +go_test( + name = "contentwarehouse_go_gapic_test", + srcs = [":contentwarehouse_go_gapic_srcjar_test"], + embed = [":contentwarehouse_go_gapic"], + importpath = "cloud.google.com/go/contentwarehouse/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-contentwarehouse-v1-go", + deps = [ + ":contentwarehouse_go_gapic", + ":contentwarehouse_go_gapic_srcjar-test.srcjar", + ":contentwarehouse_go_gapic_srcjar-metadata.srcjar", + ":contentwarehouse_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "contentwarehouse_py_gapic", + srcs = [":contentwarehouse_proto"], + grpc_service_config = "contentwarehouse_grpc_service_config.json", + service_yaml = "contentwarehouse_v1.yaml", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +# TODO(b/246640328): Test fails due to a dependency on docai at runtime +# py_test( +# name = "contentwarehouse_py_gapic_test", +# srcs = [ +# "contentwarehouse_py_gapic_pytest.py", +# "contentwarehouse_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [ +# ":contentwarehouse_py_gapic", +# ], +#) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "contentwarehouse-v1-py", + deps = [ + ":contentwarehouse_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "contentwarehouse_php_proto", + deps = [":contentwarehouse_proto"], +) + +php_grpc_library( + name = "contentwarehouse_php_grpc", + srcs = [":contentwarehouse_proto"], + deps = [":contentwarehouse_php_proto"], +) + +php_gapic_library( + name = "contentwarehouse_php_gapic", + srcs = [":contentwarehouse_proto_with_info"], + grpc_service_config = "contentwarehouse_grpc_service_config.json", + service_yaml = "contentwarehouse_v1.yaml", + deps = [ + ":contentwarehouse_php_grpc", + ":contentwarehouse_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-contentwarehouse-v1-php", + deps = [ + ":contentwarehouse_php_gapic", + ":contentwarehouse_php_grpc", + ":contentwarehouse_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "contentwarehouse_nodejs_gapic", + package_name = "@google-cloud/contentwarehouse", + src = ":contentwarehouse_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "contentwarehouse_grpc_service_config.json", + package = "google.cloud.contentwarehouse.v1", + service_yaml = "contentwarehouse_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "contentwarehouse-v1-nodejs", + deps = [ + ":contentwarehouse_nodejs_gapic", + ":contentwarehouse_proto", + # Cross-API dependency requires adding this explicitly to pack protos + "//google/cloud/documentai/v1:documentai_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 = "contentwarehouse_ruby_proto", + deps = [":contentwarehouse_proto"], +) + +ruby_grpc_library( + name = "contentwarehouse_ruby_grpc", + srcs = [":contentwarehouse_proto"], + deps = [":contentwarehouse_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "contentwarehouse_ruby_gapic", + srcs = [":contentwarehouse_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-contentwarehouse-v1", + ], + grpc_service_config = "contentwarehouse_grpc_service_config.json", + service_yaml = "contentwarehouse_v1.yaml", + deps = [ + ":contentwarehouse_ruby_grpc", + ":contentwarehouse_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-contentwarehouse-v1-ruby", + deps = [ + ":contentwarehouse_ruby_gapic", + ":contentwarehouse_ruby_grpc", + ":contentwarehouse_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 = "contentwarehouse_csharp_proto", + deps = [":contentwarehouse_proto"], +) + +csharp_grpc_library( + name = "contentwarehouse_csharp_grpc", + srcs = [":contentwarehouse_proto"], + deps = [":contentwarehouse_csharp_proto"], +) + +csharp_gapic_library( + name = "contentwarehouse_csharp_gapic", + srcs = [":contentwarehouse_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "contentwarehouse_grpc_service_config.json", + service_yaml = "contentwarehouse_v1.yaml", + deps = [ + ":contentwarehouse_csharp_grpc", + ":contentwarehouse_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-contentwarehouse-v1-csharp", + deps = [ + ":contentwarehouse_csharp_gapic", + ":contentwarehouse_csharp_grpc", + ":contentwarehouse_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "contentwarehouse_cc_proto", + deps = [":contentwarehouse_proto"], +) + +cc_grpc_library( + name = "contentwarehouse_cc_grpc", + srcs = [":contentwarehouse_proto"], + grpc_only = True, + deps = [":contentwarehouse_cc_proto"], +) diff --git a/google/cloud/contentwarehouse/v1/async_document_service_request.proto b/google/cloud/contentwarehouse/v1/async_document_service_request.proto new file mode 100644 index 000000000..368ddf3f8 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/async_document_service_request.proto @@ -0,0 +1,35 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "AsyncDocumentServiceRequestProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// Metadata object for CreateDocument request (currently empty). +message CreateDocumentMetadata { + +} + +// Metadata object for UpdateDocument request (currently empty). +message UpdateDocumentMetadata { + +} diff --git a/google/cloud/contentwarehouse/v1/common.proto b/google/cloud/contentwarehouse/v1/common.proto new file mode 100644 index 000000000..9be7e86a3 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/common.proto @@ -0,0 +1,140 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "CommonProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; +option (google.api.resource_definition) = { + type: "contentwarehouse.googleapis.com/Location" + pattern: "projects/{project}/locations/{location}" +}; + +// Meta information is used to improve the performance of the service. +message RequestMetadata { + // Provides user unique identification and groups information. + UserInfo user_info = 1; +} + +// Additional information returned to client, such as debugging information. +message ResponseMetadata { + // A unique id associated with this call. This id is logged for tracking + // purpose. + string request_id = 1; +} + +message UserInfo { + // A unique user identification string, as determined by the client. + // The maximum number of allowed characters is 255. + // Allowed characters include numbers 0 to 9, uppercase and lowercase letters, + // and restricted special symbols (:, @, +, -, _, ~) + // The format is "user:xxxx@example.com"; + string id = 1; + + // The unique group identifications which the user is belong to. + // The format is "group:yyyy@example.com"; + repeated string group_ids = 2; +} + +// Options for Update operations. +message UpdateOptions { + // Type for update. + UpdateType update_type = 1; + + // Field mask for merging Document fields. + // For the `FieldMask` definition, + // see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + google.protobuf.FieldMask update_mask = 2; + + // Options for merging. + MergeFieldsOptions merge_fields_options = 3; +} + +// Options for merging updated fields. +message MergeFieldsOptions { + // When merging message fields, the default behavior is to merge + // the content of two message fields together. If you instead want to use + // the field from the source message to replace the corresponding field in + // the destination message, set this flag to true. When this flag is set, + // specified submessage fields that are missing in source will be cleared in + // destination. + optional bool replace_message_fields = 1; + + // When merging repeated fields, the default behavior is to append + // entries from the source repeated field to the destination repeated field. + // If you instead want to keep only the entries from the source repeated + // field, set this flag to true. + // + // If you want to replace a repeated field within a message field on the + // destination message, you must set both replace_repeated_fields and + // replace_message_fields to true, otherwise the repeated fields will be + // appended. + optional bool replace_repeated_fields = 2; +} + +// Update type of the requests. +enum UpdateType { + // Defaults to full replace behavior, ie. FULL_REPLACE. + UPDATE_TYPE_UNSPECIFIED = 0; + + // Fully replace all the fields. Any field masks will be ignored. + UPDATE_TYPE_REPLACE = 1; + + // Merge the fields into the existing entities. + UPDATE_TYPE_MERGE = 2; + + // Inserts the properties by names. + UPDATE_TYPE_INSERT_PROPERTIES_BY_NAMES = 3; + + // Replace the properties by names. + UPDATE_TYPE_REPLACE_PROPERTIES_BY_NAMES = 4; + + // Delete the properties by names. + UPDATE_TYPE_DELETE_PROPERTIES_BY_NAMES = 5; +} + +// Type of database used by the customer +enum DatabaseType { + // This value is required by protobuf best practices + DB_UNKNOWN = 0; + + // Internal Spanner + DB_INFRA_SPANNER = 1; + + // Cloud Sql with a Postgres Sql instance + DB_CLOUD_SQL_POSTGRES = 2; +} + +// Access Control Mode. +enum AccessControlMode { + // This value is required by protobuf best practices + ACL_MODE_UNKNOWN = 0; + + // Universal Access: No document level access control. + ACL_MODE_UNIVERSAL_ACCESS = 1; + + // Document level access control with customer own Identity Service. + ACL_MODE_DOCUMENT_LEVEL_ACCESS_CONTROL_BYOID = 2; + + // Document level access control using Google Cloud Identity. + ACL_MODE_DOCUMENT_LEVEL_ACCESS_CONTROL_GCI = 3; +} diff --git a/google/cloud/contentwarehouse/v1/contentwarehouse_grpc_service_config.json b/google/cloud/contentwarehouse/v1/contentwarehouse_grpc_service_config.json new file mode 100644 index 000000000..23c003b67 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/contentwarehouse_grpc_service_config.json @@ -0,0 +1,53 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.contentwarehouse.v1.DocumentSchemaService", "method": "GetDocumentSchema" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentSchemaService", "method": "ListDocumentSchemas" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentService", "method": "GetDocument" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentService", "method": "FetchAcl" }, + { "service": "google.cloud.contentwarehouse.v1.RuleSetService", "method": "GetRuleSet" }, + { "service": "google.cloud.contentwarehouse.v1.RuleSetService", "method": "ListRuleSets" }, + { "service": "google.cloud.contentwarehouse.v1.SynonymSetService", "method": "GetSynonymSet" }, + { "service": "google.cloud.contentwarehouse.v1.SynonymSetService", "method": "ListSynonymSets" }, + { "service": "google.longrunning.Operations", "method": "GetOperation" }, + { "service": "google.longrunning.Operations", "method": "ListOperations" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.contentwarehouse.v1.DocumentSchemaService", "method": "CreateDocumentSchema" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentSchemaService", "method": "UpdateDocumentSchema" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentSchemaService", "method": "DeleteDocumentSchema" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentService", "method": "DeleteDocument" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentService", "method": "DeleteRawDocument" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentService", "method": "SetAcl" }, + { "service": "google.cloud.contentwarehouse.v1.RuleSetService", "method": "CreateRuleSet" }, + { "service": "google.cloud.contentwarehouse.v1.RuleSetService", "method": "DeleteRuleSet" }, + { "service": "google.cloud.contentwarehouse.v1.RuleSetService", "method": "UpdateRuleSet" }, + { "service": "google.cloud.contentwarehouse.v1.SynonymSetService", "method": "CreateSynonymSet" }, + { "service": "google.cloud.contentwarehouse.v1.SynonymSetService", "method": "DeleteSynonymSet" }, + { "service": "google.cloud.contentwarehouse.v1.SynonymSetService", "method": "UpdateSynonymSet" } + ], + "timeout": "60s" + }, + { + "name": [ + { "service": "google.cloud.contentwarehouse.v1.DocumentService", "method": "CreateDocument" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentService", "method": "UpdateDocument" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentService", "method": "SearchDocuments" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentLinkService", "method": "ListLinkedSources" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentLinkService", "method": "ListLinkedTargets" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentLinkService", "method": "CreateDocumentLink" }, + { "service": "google.cloud.contentwarehouse.v1.DocumentLinkService", "method": "DeleteDocumentLink" } + ], + "timeout": "180s" + }] +} diff --git a/google/cloud/contentwarehouse/v1/contentwarehouse_v1.yaml b/google/cloud/contentwarehouse/v1/contentwarehouse_v1.yaml new file mode 100644 index 000000000..e1120e991 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/contentwarehouse_v1.yaml @@ -0,0 +1,43 @@ +type: google.api.Service +config_version: 3 +name: contentwarehouse.googleapis.com +title: contentwarehouse API + +apis: +- name: google.cloud.contentwarehouse.v1.DocumentLinkService +- name: google.cloud.contentwarehouse.v1.DocumentSchemaService +- name: google.cloud.contentwarehouse.v1.DocumentService +- name: google.cloud.contentwarehouse.v1.RuleSetService +- name: google.cloud.contentwarehouse.v1.SynonymSetService +- name: google.longrunning.Operations + +types: +- name: google.cloud.contentwarehouse.v1.CreateDocumentMetadata +- name: google.cloud.contentwarehouse.v1.UpdateDocumentMetadata + +authentication: + rules: + - selector: 'google.cloud.contentwarehouse.v1.DocumentLinkService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.contentwarehouse.v1.DocumentSchemaService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.contentwarehouse.v1.DocumentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.contentwarehouse.v1.RuleSetService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.contentwarehouse.v1.SynonymSetService.*' + 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 diff --git a/google/cloud/contentwarehouse/v1/document.proto b/google/cloud/contentwarehouse/v1/document.proto new file mode 100644 index 000000000..bd19863df --- /dev/null +++ b/google/cloud/contentwarehouse/v1/document.proto @@ -0,0 +1,322 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/documentai/v1/document.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/datetime.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "DocumentProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// Defines the structure for content warehouse document proto. +// +// Next ID: 20 +message Document { + option (google.api.resource) = { + type: "contentwarehouse.googleapis.com/Document" + pattern: "projects/{project}/locations/{location}/documents/{document}" + pattern: "projects/{project}/locations/{location}/documents/referenceId/{reference_id}" + }; + + // The resource name of the document. + // Format: + // projects/{project_number}/locations/{location}/documents/{document_id}. + // + // The name is ignored when creating a document. + string name = 1; + + // The reference ID set by customers. Must be unique per project and location. + string reference_id = 11; + + // Required. Display name of the document given by the user. This name will be displayed + // in the UI. + // Customer can populate this field with the name of the document. This + // differs from the 'title' field as 'title' is optional and stores the top + // heading in the document. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Title that describes the document. + // This is usually present in the top section of the document, and is a + // mandatory field for the question-answering feature. + string title = 18; + + // Uri to display the document, for example, in the UI. + string display_uri = 17; + + // The Document schema name. + // Format: + // projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id}. + string document_schema_name = 3 [(google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/DocumentSchema" + }]; + + oneof structured_content { + // Other document format, such as PPTX, XLXS + string plain_text = 15; + + // Document AI format to save the structured content, including OCR. + google.cloud.documentai.v1.Document cloud_ai_document = 4; + } + + // A path linked to structured content file. + string structured_content_uri = 16; + + // Raw document file. + oneof raw_document { + // Raw document file in Cloud Storage path. + string raw_document_path = 5; + + // Raw document content. + bytes inline_raw_document = 6; + } + + // List of values that are user supplied metadata. + repeated Property properties = 7; + + // Output only. The time when the document is last updated. + google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the document is created. + google.protobuf.Timestamp create_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // This is used when DocAI was not used to load the document and parsing/ + // extracting is needed for the inline_raw_document. For example, if + // inline_raw_document is the byte representation of a PDF file, then + // this should be set to: RAW_DOCUMENT_FILE_TYPE_PDF. + RawDocumentFileType raw_document_file_type = 10; + + // If true, makes the document visible to asynchronous policies and rules. + bool async_enabled = 12; + + // If true, text extraction will not be performed. + bool text_extraction_disabled = 19; + + // The user who creates the document. + string creator = 13; + + // The user who lastly updates the document. + string updater = 14; +} + +// References to the documents. +message DocumentReference { + // Required. Name of the referenced document. + string document_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + } + ]; + + // display_name of the referenced document; this name does not need to be + // consistent to the display_name in the Document proto, depending on the ACL + // constraint. + string display_name = 2; + + // Stores the subset of the referenced document's content. + // This is useful to allow user peek the information of the referenced + // document. + string snippet = 3; + + // The document type of the document being referenced. + bool document_is_folder = 4; + + // Output only. The time when the document is last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the document is created. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the document is deleted. + google.protobuf.Timestamp delete_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Property of a document. +message Property { + // Required. Must match the name of a PropertyDefinition in the DocumentSchema. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Type of the property. + // Must match the property_options type of the matching PropertyDefinition. + // Value of the Property parsed into a specific data type. + // Specific type value(s) obtained from Document AIs Property.mention_text + // field. + oneof values { + // Integer property values. + IntegerArray integer_values = 2; + + // Float property values. + FloatArray float_values = 3; + + // String/text property values. + TextArray text_values = 4; + + // Enum property values. + EnumArray enum_values = 5; + + // Nested structured data property values. + PropertyArray property_values = 6; + + // Date time property values. + // It is not supported by CMEK compliant deployment. + DateTimeArray date_time_values = 7; + + // Map property values. + MapProperty map_property = 8; + + // Timestamp property values. + // It is not supported by CMEK compliant deployment. + TimestampArray timestamp_values = 9; + + // Boolean property values. + // It is not supported by CMEK compliant deployment. + BooleanArray boolean_values = 10; + } +} + +// Integer values. +message IntegerArray { + // List of integer values. + repeated int32 values = 1; +} + +// Float values. +message FloatArray { + // List of float values. + repeated float values = 1; +} + +// String/text values. +message TextArray { + // List of text values. + repeated string values = 1; +} + +// Enum values. +message EnumArray { + // List of enum values. + repeated string values = 1; +} + +// DateTime values. +message DateTimeArray { + // List of datetime values. + // Both OffsetDateTime and ZonedDateTime are supported. + repeated google.type.DateTime values = 1; +} + +// Timestamp values. +message TimestampArray { + // List of timestamp values. + repeated TimestampValue values = 1; +} + +// Boolean values. +message BooleanArray { + // List of bool values. + repeated bool values = 1; +} + +// Timestamp value type. +message TimestampValue { + oneof value { + // Timestamp value + google.protobuf.Timestamp timestamp_value = 1; + + // The string must represent a valid instant in UTC and is parsed using + // java.time.format.DateTimeFormatter.ISO_INSTANT. + // e.g. "2013-09-29T18:46:19Z" + string text_value = 2; + } +} + +// Property values. +message PropertyArray { + // List of property values. + repeated Property properties = 1; +} + +// Map property value. +// Represents a structured entries of key value pairs, consisting of field names +// which map to dynamically typed values. +message MapProperty { + // Unordered map of dynamically typed values. + map fields = 1; +} + +// `Value` represents a dynamically typed value which can be either be +// a float, a integer, a string, or a datetime value. A producer of value is +// expected to set one of these variants. Absence of any variant indicates an +// error. +message Value { + // The kind of value. + oneof kind { + // Represents a float value. + float float_value = 1; + + // Represents a integer value. + int32 int_value = 2; + + // Represents a string value. + string string_value = 3; + + // Represents an enum value. + EnumValue enum_value = 4; + + // Represents a datetime value. + google.type.DateTime datetime_value = 5; + + // Represents a timestamp value. + TimestampValue timestamp_value = 6; + + // Represents a boolean value. + bool boolean_value = 7; + } +} + +// Represents the string value of the enum field. +message EnumValue { + // String value of the enum field. This must match defined set of enums + // in document schema using EnumTypeOptions. + string value = 1; +} + +// When a raw document is supplied, this indicates the file format +enum RawDocumentFileType { + // No raw document specified or it is non-parsable + RAW_DOCUMENT_FILE_TYPE_UNSPECIFIED = 0; + + // Adobe PDF format + RAW_DOCUMENT_FILE_TYPE_PDF = 1; + + // Microsoft Word format + RAW_DOCUMENT_FILE_TYPE_DOCX = 2; + + // Microsoft Excel format + RAW_DOCUMENT_FILE_TYPE_XLSX = 3; + + // Microsoft Powerpoint format + RAW_DOCUMENT_FILE_TYPE_PPTX = 4; + + // UTF-8 encoded text format + RAW_DOCUMENT_FILE_TYPE_TEXT = 5; +} diff --git a/google/cloud/contentwarehouse/v1/document_link_service.proto b/google/cloud/contentwarehouse/v1/document_link_service.proto new file mode 100644 index 000000000..a5a14d8dc --- /dev/null +++ b/google/cloud/contentwarehouse/v1/document_link_service.proto @@ -0,0 +1,227 @@ +// 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.cloud.contentwarehouse.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/contentwarehouse/v1/common.proto"; +import "google/cloud/contentwarehouse/v1/document.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "DocumentLinkServiceProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// This service lets you manage document-links. +// Document-Links are treated as sub-resources under source documents. +service DocumentLinkService { + option (google.api.default_host) = "contentwarehouse.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Return all target document-links from the document. + rpc ListLinkedTargets(ListLinkedTargetsRequest) returns (ListLinkedTargetsResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/documents/*}/linkedTargets" + body: "*" + }; + option (google.api.method_signature) = "parent"; + } + + // Return all source document-links from the document. + rpc ListLinkedSources(ListLinkedSourcesRequest) returns (ListLinkedSourcesResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/documents/*}/linkedSources" + body: "*" + }; + option (google.api.method_signature) = "parent"; + } + + // Create a link between a source document and a target document. + rpc CreateDocumentLink(CreateDocumentLinkRequest) returns (DocumentLink) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/documents/*}/documentLinks" + body: "*" + }; + option (google.api.method_signature) = "parent,document_link"; + } + + // Remove the link between the source and target documents. + rpc DeleteDocumentLink(DeleteDocumentLinkRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/documents/*/documentLinks/*}:delete" + body: "*" + }; + option (google.api.method_signature) = "name"; + } +} + +// Response message for DocumentLinkService.ListLinkedTargets. +message ListLinkedTargetsResponse { + // Target document-links. + repeated DocumentLink document_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 DocumentLinkService.ListLinkedTargets. +message ListLinkedTargetsRequest { + // Required. The name of the document, for which all target links are returned. + // Format: + // projects/{project_number}/locations/{location}/documents/{target_document_id}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + } + ]; + + // The meta information collected about the document creator, used to enforce + // access control for the service. + RequestMetadata request_metadata = 2; +} + +// Response message for DocumentLinkService.ListLinkedSources. +message ListLinkedSourcesResponse { + // Source document-links. + repeated DocumentLink document_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; +} + +// Response message for DocumentLinkService.ListLinkedSources. +message ListLinkedSourcesRequest { + // Required. The name of the document, for which all source links are returned. + // Format: + // projects/{project_number}/locations/{location}/documents/{source_document_id}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + } + ]; + + // The maximum number of document-links to return. The service may return + // fewer than this value. + // + // If unspecified, at most 50 document-links will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 3; + + // A page token, received from a previous `ListLinkedSources` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListLinkedSources` + // must match the call that provided the page token. + string page_token = 4; + + // The meta information collected about the document creator, used to enforce + // access control for the service. + RequestMetadata request_metadata = 2; +} + +// A document-link between source and target document. +message DocumentLink { + option (google.api.resource) = { + type: "contentwarehouse.googleapis.com/DocumentLink" + pattern: "projects/{project}/locations/{location}/documents/{document}/documentLinks/{document_link}" + }; + + // The state of a document-link. + enum State { + // Unknown state of documentlink. + STATE_UNSPECIFIED = 0; + + // The documentlink has both source and target documents detected. + ACTIVE = 1; + + // Target document is deleted, and mark the documentlink as soft-deleted. + SOFT_DELETED = 2; + } + + // Name of this document-link. + // It is required that the parent derived form the name to be consistent with + // the source document reference. Otherwise an exception will be thrown. + // Format: + // projects/{project_number}/locations/{location}/documents/{source_document_id}/documentLinks/{document_link_id}. + string name = 1; + + // Document references of the source document. + DocumentReference source_document_reference = 2; + + // Document references of the target document. + DocumentReference target_document_reference = 3; + + // Description of this document-link. + string description = 4; + + // Output only. The time when the documentLink is last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the documentLink is created. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The state of the documentlink. If target node has been deleted, the + // link is marked as invalid. Removing a source node will result in removal + // of all associated links. + State state = 7; +} + +// Request message for DocumentLinkService.CreateDocumentLink. +message CreateDocumentLinkRequest { + // Required. Parent of the document-link to be created. + // parent of document-link should be a document. + // Format: + // projects/{project_number}/locations/{location}/documents/{source_document_id}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + } + ]; + + // Required. Document links associated with the source documents (source_document_id). + DocumentLink document_link = 2 [(google.api.field_behavior) = REQUIRED]; + + // The meta information collected about the document creator, used to enforce + // access control for the service. + RequestMetadata request_metadata = 3; +} + +// Request message for DocumentLinkService.DeleteDocumentLink. +message DeleteDocumentLinkRequest { + // Required. The name of the document-link to be deleted. + // Format: + // projects/{project_number}/locations/{location}/documents/{source_document_id}/documentLinks/{document_link_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/DocumentLink" + } + ]; + + // The meta information collected about the document creator, used to enforce + // access control for the service. + RequestMetadata request_metadata = 2; +} diff --git a/google/cloud/contentwarehouse/v1/document_schema.proto b/google/cloud/contentwarehouse/v1/document_schema.proto new file mode 100644 index 000000000..58f9ac55e --- /dev/null +++ b/google/cloud/contentwarehouse/v1/document_schema.proto @@ -0,0 +1,172 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "DocumentSchemaProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// A document schema used to define document structure. +message DocumentSchema { + option (google.api.resource) = { + type: "contentwarehouse.googleapis.com/DocumentSchema" + pattern: "projects/{project}/locations/{location}/documentSchemas/{document_schema}" + }; + + // The resource name of the document schema. + // Format: + // projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id}. + // + // The name is ignored when creating a document schema. + string name = 1; + + // Required. Name of the schema given by the user. Must be unique per customer. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Document details. + repeated PropertyDefinition property_definitions = 3; + + // Document Type, true refers the document is a folder, otherwise it is + // a typical document. + bool document_is_folder = 4; + + // Output only. The time when the document schema is last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the document schema is created. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Schema description. + string description = 7; +} + +// Defines the metadata for a schema property. +// +// Next ID: 18 +message PropertyDefinition { + // Required. The name of the metadata property. + // Must be unique within a document schema and is case insensitive. + // Names must be non-blank, start with a letter, and can contain alphanumeric + // characters and: /, :, -, _, and . + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // The display-name for the property, used for front-end. + string display_name = 12; + + // Whether the property can have multiple values. + bool is_repeatable = 2; + + // Whether the property can be filtered. If this is a sub-property, all the + // parent properties must be marked filterable. + bool is_filterable = 3; + + // Indicates that the property should be included in a global search. + bool is_searchable = 4; + + // Whether the property is user supplied metadata. + bool is_metadata = 5; + + // Whether the property is mandatory. + // Default is 'false', i.e. populating property value can be skipped. + // If 'true' then user must populate the value for this property. + bool is_required = 14; + + // Type of the property. + oneof value_type_options { + // Integer property. + IntegerTypeOptions integer_type_options = 7; + + // Float property. + FloatTypeOptions float_type_options = 8; + + // Text/string property. + TextTypeOptions text_type_options = 9; + + // Nested structured data property. + PropertyTypeOptions property_type_options = 10; + + // Enum/categorical property. + EnumTypeOptions enum_type_options = 11; + + // Date time property. + // It is not supported by CMEK compliant deployment. + DateTimeTypeOptions date_time_type_options = 13; + + // Map property. + MapTypeOptions map_type_options = 15; + + // Timestamp property. + // It is not supported by CMEK compliant deployment. + TimestampTypeOptions timestamp_type_options = 16; + + // Boolean property. + // It is not supported by CMEK compliant deployment. + BooleanTypeOptions boolean_type_options = 17; + } +} + +// Configurations for an integer property. +message IntegerTypeOptions { + +} + +// Configurations for a float property. +message FloatTypeOptions { + +} + +// Configurations for a text property. +message TextTypeOptions { + +} + +// Configurations for a date time property. +message DateTimeTypeOptions { + +} + +// Configurations for a Map property. +message MapTypeOptions { + +} + +// Configurations for a timestamp property. +message TimestampTypeOptions { + +} + +// Configurations for a boolean property. +message BooleanTypeOptions { + +} + +// Configurations for a nested structured data property. +message PropertyTypeOptions { + // Required. List of property definitions. + repeated PropertyDefinition property_definitions = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Configurations for an enum/categorical property. +message EnumTypeOptions { + // Required. List of possible enum values. + repeated string possible_values = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/contentwarehouse/v1/document_schema_service.proto b/google/cloud/contentwarehouse/v1/document_schema_service.proto new file mode 100644 index 000000000..62d0bfa3e --- /dev/null +++ b/google/cloud/contentwarehouse/v1/document_schema_service.proto @@ -0,0 +1,168 @@ +// 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.cloud.contentwarehouse.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/contentwarehouse/v1/document_schema.proto"; +import "google/protobuf/empty.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "DocumentSchemaServiceProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +service DocumentSchemaService { + option (google.api.default_host) = "contentwarehouse.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a document schema. + rpc CreateDocumentSchema(CreateDocumentSchemaRequest) returns (DocumentSchema) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/documentSchemas" + body: "document_schema" + }; + option (google.api.method_signature) = "parent,document_schema"; + } + + // Updates a Document Schema. Returns INVALID_ARGUMENT if the name of the + // Document Schema is non-empty and does not equal the existing name. + // Supports only appending new properties and updating existing properties + // will result into INVALID_ARGUMENT. + rpc UpdateDocumentSchema(UpdateDocumentSchemaRequest) returns (DocumentSchema) { + option (google.api.http) = { + patch: "/v1/{name=projects/*/locations/*/documentSchemas/*}" + body: "*" + }; + option (google.api.method_signature) = "document_schema"; + } + + // Gets a document schema. Returns NOT_FOUND if the document schema does not + // exist. + rpc GetDocumentSchema(GetDocumentSchemaRequest) returns (DocumentSchema) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/documentSchemas/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a document schema. Returns NOT_FOUND if the document schema does + // not exist. + rpc DeleteDocumentSchema(DeleteDocumentSchemaRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/documentSchemas/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists document schemas. + rpc ListDocumentSchemas(ListDocumentSchemasRequest) returns (ListDocumentSchemasResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/documentSchemas" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for DocumentSchemaService.CreateDocumentSchema. +message CreateDocumentSchemaRequest { + // Required. The parent name. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // Required. The document schema to create. + DocumentSchema document_schema = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DocumentSchemaService.GetDocumentSchema. +message GetDocumentSchemaRequest { + // Required. The name of the document schema to retrieve. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/DocumentSchema" + } + ]; +} + +// Request message for DocumentSchemaService.UpdateDocumentSchema. +message UpdateDocumentSchemaRequest { + // Required. The name of the document schema to update. + // Format: + // projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/DocumentSchema" + } + ]; + + // Required. The document schema to update with. + DocumentSchema document_schema = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DocumentSchemaService.DeleteDocumentSchema. +message DeleteDocumentSchemaRequest { + // Required. The name of the document schema to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/DocumentSchema" + } + ]; +} + +// Request message for DocumentSchemaService.ListDocumentSchemas. +message ListDocumentSchemasRequest { + // Required. The parent, which owns this collection of document schemas. + // Format: projects/{project_number}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // The maximum number of document schemas to return. The service may return + // fewer than this value. + // If unspecified, at most 50 document schemas 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 `ListDocumentSchemas` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListDocumentSchemas` + // must match the call that provided the page token. + string page_token = 3; +} + +// Response message for DocumentSchemaService.ListDocumentSchemas. +message ListDocumentSchemasResponse { + // The document schemas from the specified parent. + repeated DocumentSchema document_schemas = 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/google/cloud/contentwarehouse/v1/document_service.proto b/google/cloud/contentwarehouse/v1/document_service.proto new file mode 100644 index 000000000..c844fe1b8 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/document_service.proto @@ -0,0 +1,245 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/resource.proto"; +import "google/cloud/contentwarehouse/v1/common.proto"; +import "google/cloud/contentwarehouse/v1/document.proto"; +import "google/cloud/contentwarehouse/v1/document_service_request.proto"; +import "google/cloud/contentwarehouse/v1/histogram.proto"; +import "google/cloud/contentwarehouse/v1/rule_engine.proto"; +import "google/iam/v1/policy.proto"; +import "google/protobuf/empty.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "DocumentServiceProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +service DocumentService { + option (google.api.default_host) = "contentwarehouse.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a document. + rpc CreateDocument(CreateDocumentRequest) returns (CreateDocumentResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/documents" + body: "*" + }; + option (google.api.method_signature) = "parent,document"; + } + + // Gets a document. Returns NOT_FOUND if the document does not exist. + rpc GetDocument(GetDocumentRequest) returns (Document) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/documents/*}:get" + body: "*" + additional_bindings { + post: "/v1/{name=projects/*/locations/*/documents/referenceId/*}:get" + body: "*" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a document. Returns INVALID_ARGUMENT if the name of the document + // is non-empty and does not equal the existing name. + rpc UpdateDocument(UpdateDocumentRequest) returns (UpdateDocumentResponse) { + option (google.api.http) = { + patch: "/v1/{name=projects/*/locations/*/documents/*}" + body: "*" + additional_bindings { + patch: "/v1/{name=projects/*/locations/*/documents/referenceId/*}" + body: "*" + } + }; + option (google.api.method_signature) = "document"; + } + + // Deletes a document. Returns NOT_FOUND if the document does not exist. + rpc DeleteDocument(DeleteDocumentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/documents/*}:delete" + body: "*" + additional_bindings { + post: "/v1/{name=projects/*/locations/*/documents/referenceId/*}:delete" + body: "*" + } + }; + option (google.api.method_signature) = "name"; + } + + // Searches for documents using provided [SearchDocumentsRequest][google.cloud.contentwarehouse.v1.SearchDocumentsRequest]. + // This call only returns documents that the caller has permission to search + // against. + rpc SearchDocuments(SearchDocumentsRequest) returns (SearchDocumentsResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/documents:search" + body: "*" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the access control policy for a resource. Returns NOT_FOUND error if + // the resource does not exist. Returns an empty policy if the resource exists + // but does not have a policy set. + rpc FetchAcl(FetchAclRequest) returns (FetchAclResponse) { + option (google.api.http) = { + post: "/v1/{resource=projects/*/locations/*/documents/*}:fetchAcl" + body: "*" + additional_bindings { + post: "/v1/{resource=projects/*}:fetchAcl" + body: "*" + } + }; + option (google.api.method_signature) = "resource"; + } + + // Sets the access control policy for a resource. Replaces any existing + // policy. + rpc SetAcl(SetAclRequest) returns (SetAclResponse) { + option (google.api.http) = { + post: "/v1/{resource=projects/*/locations/*/documents/*}:setAcl" + body: "*" + additional_bindings { + post: "/v1/{resource=projects/*}:setAcl" + body: "*" + } + }; + option (google.api.method_signature) = "resource,policy"; + } +} + +// Response message for DocumentService.CreateDocument. +message CreateDocumentResponse { + // Document created after executing create request. + Document document = 1; + + // Output from Rule Engine recording the rule evaluator and action executor's + // output. + // + // Refer format in: google/cloud/contentwarehouse/v1/rule_engine.proto + RuleEngineOutput rule_engine_output = 2; + + // Additional information for the API invocation, such as the request tracking + // id. + ResponseMetadata metadata = 3; +} + +// Response message for DocumentService.UpdateDocument. +message UpdateDocumentResponse { + // Updated document after executing update request. + Document document = 1; + + // Output from Rule Engine recording the rule evaluator and action executor's + // output. + // + // Refer format in: google/cloud/contentwarehouse/v1/rule_engine.proto + RuleEngineOutput rule_engine_output = 2; + + // Additional information for the API invocation, such as the request tracking + // id. + ResponseMetadata metadata = 3; +} + +// Additional result info for the question-answering feature. +message QAResult { + // A text span in the search text snippet that represents a highlighted + // section (answer context, highly relevant sentence, etc.). + message Highlight { + // Start index of the highlight. + int32 start_index = 1; + + // End index of the highlight, exclusive. + int32 end_index = 2; + } + + // Highlighted sections in the snippet. + repeated Highlight highlights = 1; + + // The calibrated confidence score for this document, in the range + // [0., 1.]. This represents the confidence level for whether the returned + // document and snippet answers the user's query. + float confidence_score = 2; +} + +// Response message for DocumentService.SearchDocuments. +message SearchDocumentsResponse { + // Document entry with metadata inside [SearchDocumentsResponse][google.cloud.contentwarehouse.v1.SearchDocumentsResponse] + message MatchingDocument { + // Document that matches the specified [SearchDocumentsRequest][google.cloud.contentwarehouse.v1.SearchDocumentsRequest]. + // This document only contains indexed metadata information. + Document document = 1; + + // Contains snippets of text from the document full raw text that most + // closely match a search query's keywords, if available. All HTML tags in + // the original fields are stripped when returned in this field, and + // matching query keywords are enclosed in HTML bold tags. + // + // If the question-answering feature is enabled, this field will instead + // contain a snippet that answers the user's natural-language query. No HTML + // bold tags will be present, and highlights in the answer snippet can be + // found in [QAResult.highlights][google.cloud.contentwarehouse.v1.QAResult.highlights]. + string search_text_snippet = 2; + + // Experimental. + // Additional result info if the question-answering feature is enabled. + QAResult qa_result = 3; + } + + // The document entities that match the specified [SearchDocumentsRequest][google.cloud.contentwarehouse.v1.SearchDocumentsRequest]. + repeated MatchingDocument matching_documents = 1; + + // The token that specifies the starting position of the next page of results. + // This field is empty if there are no more results. + string next_page_token = 2; + + // The total number of matched documents which is available only if the client + // set [SearchDocumentsRequest.require_total_size][google.cloud.contentwarehouse.v1.SearchDocumentsRequest.require_total_size] to `true`. Otherwise, the + // value will be `-1`. + int32 total_size = 3; + + // Additional information for the API invocation, such as the request tracking + // id. + ResponseMetadata metadata = 4; + + // The histogram results that match with the specified + // [SearchDocumentsRequest.histogram_queries][google.cloud.contentwarehouse.v1.SearchDocumentsRequest.histogram_queries]. + repeated HistogramQueryResult histogram_query_results = 6; +} + +// Response message for DocumentService.FetchAcl. +message FetchAclResponse { + // The IAM policy. + google.iam.v1.Policy policy = 1; + + // Additional information for the API invocation, such as the request tracking + // id. + ResponseMetadata metadata = 2; +} + +// Response message for DocumentService.SetAcl. +message SetAclResponse { + // The policy will be attached to a resource (e.g. projecct, document). + google.iam.v1.Policy policy = 1; + + // Additional information for the API invocation, such as the request tracking + // id. + ResponseMetadata metadata = 2; +} diff --git a/google/cloud/contentwarehouse/v1/document_service_request.proto b/google/cloud/contentwarehouse/v1/document_service_request.proto new file mode 100644 index 000000000..f6782c320 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/document_service_request.proto @@ -0,0 +1,278 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/contentwarehouse/v1/common.proto"; +import "google/cloud/contentwarehouse/v1/document.proto"; +import "google/cloud/contentwarehouse/v1/filters.proto"; +import "google/cloud/contentwarehouse/v1/histogram.proto"; +import "google/iam/v1/policy.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "DocumentServiceRequestProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// Request Option for processing Cloud AI Document in CW Document. +message CloudAIDocumentOption { + // Whether to convert all the entities to properties. + bool enable_entities_conversions = 1; + + // If set, only selected entities will be converted to properties. + map customized_entities_properties_conversions = 2; +} + +// Request message for DocumentService.CreateDocument. +message CreateDocumentRequest { + // Required. The parent name. + // Format: projects/{project_number}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // Required. The document to create. + Document document = 2 [(google.api.field_behavior) = REQUIRED]; + + // The meta information collected about the end user, used to enforce access + // control for the service. + RequestMetadata request_metadata = 3; + + // Default document policy during creation. Conditions defined in the policy + // will be ignored. + google.iam.v1.Policy policy = 4; + + // Request Option for processing Cloud AI Document in CW Document. + CloudAIDocumentOption cloud_ai_document_option = 5; + + // Field mask for creating Document fields. If mask path is empty, + // it means all fields are masked. + // For the `FieldMask` definition, + // see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + google.protobuf.FieldMask create_mask = 6; +} + +// Request message for DocumentService.GetDocument. +// +// Next ID: 4 +message GetDocumentRequest { + // Required. The name of the document to retrieve. + // Format: + // projects/{project_number}/locations/{location}/documents/{document_id} or + // projects/{project_number}/locations/{location}/documents/referenceId/{reference_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + } + ]; + + // The meta information collected about the end user, used to enforce access + // control for the service. + RequestMetadata request_metadata = 2; +} + +// Request message for DocumentService.UpdateDocument. +message UpdateDocumentRequest { + // Required. The name of the document to update. + // Format: + // projects/{project_number}/locations/{location}/documents/{document_id} + // or + // projects/{project_number}/locations/{location}/documents/referenceId/{reference_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + } + ]; + + // Required. The document to update. + Document document = 2 [(google.api.field_behavior) = REQUIRED]; + + // The meta information collected about the end user, used to enforce access + // control for the service. + RequestMetadata request_metadata = 3; + + // Request Option for processing Cloud AI Document in CW Document. + CloudAIDocumentOption cloud_ai_document_option = 5; + + // Options for the update operation. + UpdateOptions update_options = 6; +} + +// Request message for DocumentService.DeleteDocument. +message DeleteDocumentRequest { + // Required. The name of the document to delete. + // Format: + // projects/{project_number}/locations/{location}/documents/{document_id} + // or + // projects/{project_number}/locations/{location}/documents/referenceId/{reference_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + } + ]; + + // The meta information collected about the end user, used to enforce access + // control for the service. + RequestMetadata request_metadata = 2; +} + +message SearchDocumentsRequest { + // Required. The parent, which owns this collection of documents. + // Format: projects/{project_number}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // The meta information collected about the end user, used to enforce access + // control and improve the search quality of the service. + RequestMetadata request_metadata = 3; + + // Query used to search against documents (keyword, filters, etc.). + DocumentQuery document_query = 4; + + // An integer that specifies the current offset (that is, starting result + // location, amongst the documents deemed by the API as relevant) in search + // results. This field is only considered if [page_token][google.cloud.contentwarehouse.v1.SearchDocumentsRequest.page_token] is unset. + // + // The maximum allowed value is 5000. Otherwise an error is thrown. + // + // For example, 0 means to return results starting from the first matching + // document, and 10 means to return from the 11th document. This can be used + // for pagination, (for example, pageSize = 10 and offset = 10 means to return + // from the second page). + int32 offset = 5; + + // A limit on the number of documents returned in the search results. + // Increasing this value above the default value of 10 can increase search + // response time. The value can be between 1 and 100. + int32 page_size = 6; + + // The token specifying the current offset within search results. + // See [SearchDocumentsResponse.next_page_token][google.cloud.contentwarehouse.v1.SearchDocumentsResponse.next_page_token] for an explanation of how + // to obtain the next set of query results. + string page_token = 7; + + // The criteria determining how search results are sorted. For non-empty + // query, default is `"relevance desc"`. For empty query, default is + // `"upload_date desc"`. + // + // Supported options are: + // + // * `"relevance desc"`: By relevance descending, as determined by the API + // algorithms. + // * `"upload_date desc"`: By upload date descending. + // * `"upload_date"`: By upload date ascending. + // * `"update_date desc"`: By last updated date descending. + // * `"update_date"`: By last updated date ascending. + string order_by = 8; + + // An expression specifying a histogram request against matching + // documents. Expression syntax is an aggregation function call with + // histogram facets and other options. + // + // The following aggregation functions are supported: + // + // * `count(string_histogram_facet)`: Count the number of matching entities + // for each distinct attribute value. + // + // Data types: + // + // * Histogram facet (aka filterable properties): Facet names with format + // <schema id>.<facet>. Facets will have the + // format of: [a-zA-Z][a-zA-Z0-9_:/-.]. If the facet is a child + // facet, then the parent hierarchy needs to be specified separated by + // dots in the prefix after the schema id. Thus, the format for a multi- + // level facet is: <schema id>.<parent facet name>. + // <child facet name>. Example: + // schema123.root_parent_facet.middle_facet.child_facet + // * DocumentSchemaId: (with no schema id prefix) to get + // histograms for each document type (returns the schema id path, e.g. + // projects/12345/locations/us-west/documentSchemas/abc123). + // + // Example expression: + // + // * Document type counts: + // count('DocumentSchemaId') + // + // * For schema id, abc123, get the counts for MORTGAGE_TYPE: + // count('abc123.MORTGAGE_TYPE') + repeated HistogramQuery histogram_queries = 9; + + // Optional. Controls if the search document request requires the return of a total size + // of matched documents. See [SearchDocumentsResponse.total_size][google.cloud.contentwarehouse.v1.SearchDocumentsResponse.total_size]. + // + // Enabling this flag may adversely impact performance. + // + // Defaults to false. + bool require_total_size = 10; + + // Experimental, do not use. + // The limit on the number of documents returned for the question-answering + // feature. To enable the question-answering feature, set + // [DocumentQuery].[is_nl_query][] to true. + int32 qa_size_limit = 11; +} + +// Request message for DocumentService.FetchAcl +message FetchAclRequest { + // Required. REQUIRED: The resource for which the policy is being requested. + // Format for document: + // projects/{project_number}/locations/{location}/documents/{document_id}. + // Format for project: projects/{project_number}. + string resource = 1 [(google.api.field_behavior) = REQUIRED]; + + // The meta information collected about the end user, used to enforce access + // control for the service. + RequestMetadata request_metadata = 2; + + // For Get Project ACL only. Authorization check for end user will be ignored + // when project_owner=true. + bool project_owner = 3; +} + +// Request message for DocumentService.SetAcl. +message SetAclRequest { + // Required. REQUIRED: The resource for which the policy is being requested. + // Format for document: + // projects/{project_number}/locations/{location}/documents/{document_id}. + // Format for project: projects/{project_number}. + string resource = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. REQUIRED: The complete policy to be applied to the `resource`. The size of + // the policy is limited to a few 10s of KB. + google.iam.v1.Policy policy = 2 [(google.api.field_behavior) = REQUIRED]; + + // The meta information collected about the end user, used to enforce access + // control for the service. + RequestMetadata request_metadata = 3; + + // For Set Project ACL only. Authorization check for end user will be ignored + // when project_owner=true. + bool project_owner = 4; +} diff --git a/google/cloud/contentwarehouse/v1/filters.proto b/google/cloud/contentwarehouse/v1/filters.proto new file mode 100644 index 000000000..7a6654b77 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/filters.proto @@ -0,0 +1,207 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/resource.proto"; +import "google/type/interval.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "FiltersProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// NEXT_ID: 13 +message DocumentQuery { + // The query string that matches against the full text of the document and + // the searchable properties. + // The maximum number of allowed characters is 255. + string query = 1; + + // Experimental, do not use. + // If the query is a natural language question. False by default. If true, + // then the question-answering feature will be used instead of search, and + // `result_count` in [SearchDocumentsRequest][google.cloud.contentwarehouse.v1.SearchDocumentsRequest] must be set. In addition, all + // other input fields related to search (pagination, histograms, etc.) will be + // ignored. + bool is_nl_query = 12; + + // This filter specifies a structured syntax to match against the + // [PropertyDefinition].[is_filterable][] marked as `true`. The syntax for + // this expression is a subset of SQL syntax. + // + // Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the left + // of the operator is a property name and the right of the operator is a + // number or a quoted string. You must escape backslash (\\) and quote (\") + // characters. Supported functions are `LOWER([property_name])` to perform a + // case insensitive match and `EMPTY([property_name])` to filter on the + // existence of a key. + // + // Boolean expressions (AND/OR/NOT) are supported up to 3 levels of nesting + // (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100 + // comparisons or functions are allowed in the expression. The expression must + // be < 6000 bytes in length. + // + // Sample Query: + // `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND + // driving_years > 10` + string custom_property_filter = 4 [deprecated = true]; + + // Documents created/updated within a range specified by this filter are + // searched against. + repeated TimeFilter time_filters = 5; + + // This filter specifies the exact document schema + // [Document.document_schema_name][google.cloud.contentwarehouse.v1.Document.document_schema_name] of the documents to search against. + // + // If a value isn't specified, documents within the search results are + // associated with any schema. If multiple values are specified, documents + // within the search results may be associated with any of the specified + // schemas. + // + // At most 20 document schema names are allowed. + repeated string document_schema_names = 6; + + // This filter specifies a structured syntax to match against the + // [PropertyDefinition.is_filterable][google.cloud.contentwarehouse.v1.PropertyDefinition.is_filterable] marked as `true`. The relationship + // between the PropertyFilters is OR. + repeated PropertyFilter property_filter = 7; + + // This filter specifies the types of files to return: ALL, FOLDER, or FILE. + // If FOLDER or FILE is specified, then only either folders or files will be + // returned, respectively. If ALL is specified, both folders and files will be + // returned. + // + // If no value is specified, ALL files will be returned. + FileTypeFilter file_type_filter = 8; + + // Search all the documents under this specified folder. + // Format: + // projects/{project_number}/locations/{location}/documents/{document_id}. + string folder_name_filter = 9; + + // For custom synonyms. + // Customers provide the synonyms based on context. One customer can provide + // multiple set of synonyms based on different context. The search query will + // be expanded based on the custom synonyms of the query context set. + // By default, no custom synonyms wll be applied if no query context is + // provided. + // It is not supported for CMEK compliant deployment. + repeated string query_context = 10; + + // The exact creator(s) of the documents to search against. + // + // If a value isn't specified, documents within the search results are + // associated with any creator. If multiple values are specified, documents + // within the search results may be associated with any of the specified + // creators. + repeated string document_creator_filter = 11; +} + +// Filter on create timestamp or update timestamp of documents. +message TimeFilter { + // Time field used in TimeFilter. + enum TimeField { + // Default value. + TIME_FIELD_UNSPECIFIED = 0; + + // Earliest document create time. + CREATE_TIME = 1; + + // Latest document update time. + UPDATE_TIME = 2; + } + + google.type.Interval time_range = 1; + + // Specifies which time field to filter documents on. + // + // Defaults to [TimeField.UPLOAD_TIME][]. + TimeField time_field = 2; +} + +message PropertyFilter { + // The Document schema name [Document.document_schema_name][google.cloud.contentwarehouse.v1.Document.document_schema_name]. + // Format: + // projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id}. + string document_schema_name = 1 [(google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/DocumentSchema" + }]; + + // The filter condition. + // The syntax for this expression is a subset of SQL syntax. + // + // Supported operators are: `=`, `!=`, `<`, `<=`, `>`, `>=`, and `~~` where + // the left of the operator is a property name and the right of the operator + // is a number or a quoted string. You must escape backslash (\\) and quote + // (\") characters. + // + // `~~` is the LIKE operator. The right of the operator must be a string. The + // only supported property data type for LIKE is text_values. It provides + // semantic search functionality by parsing, stemming and doing synonyms + // expansion against the input query. It matches if the property contains + // semantic similar content to the query. It is not regex matching or wildcard + // matching. For example, "property.company ~~ \"google\"" will match records + // whose property `property.compnay` have values like "Google Inc.", "Google + // LLC" or "Google Company". + // + // Supported functions are `LOWER([property_name])` to perform a + // case insensitive match and `EMPTY([property_name])` to filter on the + // existence of a key. + // + // Boolean expressions (AND/OR/NOT) are supported up to 3 levels of nesting + // (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100 + // comparisons or functions are allowed in the expression. The expression must + // be < 6000 bytes in length. + // + // Only properties that are marked filterable are allowed + // ([PropertyDefinition.is_filterable][google.cloud.contentwarehouse.v1.PropertyDefinition.is_filterable]). Property names do not need to be + // prefixed by the document schema id (as is the case with histograms), + // however property names will need to be prefixed by its parent hierarchy, if + // any. For example: top_property_name.sub_property_name. + // + // Sample Query: + // `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND + // driving_years > 10` + // + // + // CMEK compliant deployment only supports: + // + // * Operators: `=`, `<`, `<=`, `>`, and `>=`. + // * Boolean expressions: AND and OR. + string condition = 2; +} + +// Filter for the specific types of documents returned. +message FileTypeFilter { + // Representation of the types of files. + enum FileType { + // Default document type. If set, disables the filter. + FILE_TYPE_UNSPECIFIED = 0; + + // Returns all document types, including folders. + ALL = 1; + + // Returns only folders. + FOLDER = 2; + + // Returns only non-folder documents. + DOCUMENT = 3; + } + + // The type of files to return. + FileType file_type = 1; +} diff --git a/google/cloud/contentwarehouse/v1/histogram.proto b/google/cloud/contentwarehouse/v1/histogram.proto new file mode 100644 index 000000000..ce25e7a8c --- /dev/null +++ b/google/cloud/contentwarehouse/v1/histogram.proto @@ -0,0 +1,102 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "HistogramProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// The histogram request. +message HistogramQuery { + // An expression specifies a histogram request against matching documents for + // searches. + // + // See [SearchDocumentsRequest.histogram_queries][google.cloud.contentwarehouse.v1.SearchDocumentsRequest.histogram_queries] for details about syntax. + string histogram_query = 1; + + // Controls if the histogram query requires the return of a precise count. + // Enable this flag may adversely impact performance. + // + // Defaults to true. + bool require_precise_result_size = 2; + + // Optional. Filter the result of histogram query by the property names. It only works + // with histogram query count('FilterableProperties'). + // It is an optional. It will perform histogram on all the property names for + // all the document schemas. Setting this field will have a better + // performance. + HistogramQueryPropertyNameFilter filters = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +message HistogramQueryPropertyNameFilter { + // The result of the histogram query count('FilterableProperties') using + // HISTOGRAM_YAXIS_DOCUMENT will be: + // invoice_id: 2 + // address: 1 + // payment_method: 2 + // line_item_description: 1 + enum HistogramYAxis { + // Count the documents per property name. + HISTOGRAM_YAXIS_DOCUMENT = 0; + + // Count the properties per property name. + HISTOGRAM_YAXIS_PROPERTY = 1; + } + + // This filter specifies the exact document schema(s) + // [Document.document_schema_name][google.cloud.contentwarehouse.v1.Document.document_schema_name] to run histogram query against. + // It is optional. It will perform histogram for property names for all the + // document schemas if it is not set. + // + // At most 10 document schema names are allowed. + // Format: + // projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id}. + repeated string document_schemas = 1 [(google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/DocumentSchema" + }]; + + // It is optional. It will perform histogram for all the property names if it + // is not set. + // The properties need to be defined with the is_filterable flag set to + // true and the name of the property should be in the format: + // "schemaId.propertyName". The property needs to be defined in the schema. + // Example: the schema id is abc. Then the name of property for property + // MORTGAGE_TYPE will be "abc.MORTGAGE_TYPE". + repeated string property_names = 2; + + // By default, the y_axis is HISTOGRAM_YAXIS_DOCUMENT if this field is not + // set. + HistogramYAxis y_axis = 3; +} + +// Histogram result that matches [HistogramQuery][google.cloud.contentwarehouse.v1.HistogramQuery] specified in searches. +message HistogramQueryResult { + // Requested histogram expression. + string histogram_query = 1; + + // A map from the values of the facet associated with distinct values to the + // number of matching entries with corresponding value. + // + // The key format is: + // + // * (for string histogram) string values stored in the field. + map histogram = 2; +} diff --git a/google/cloud/contentwarehouse/v1/rule_engine.proto b/google/cloud/contentwarehouse/v1/rule_engine.proto new file mode 100644 index 000000000..81c7f36c7 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/rule_engine.proto @@ -0,0 +1,436 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/iam/v1/policy.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "RuleEngineProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// Represents a set of rules from a single customer. +// Next id: 9 +message RuleSet { + option (google.api.resource) = { + type: "contentwarehouse.googleapis.com/RuleSet" + pattern: "projects/{project}/locations/{location}/ruleSets/{rule_set}" + }; + + // The resource name of the rule set. Managed internally. + // Format: + // projects/{project_number}/locations/{location}/ruleSet/{rule_set_id}. + // + // The name is ignored when creating a rule set. + string name = 6; + + // Short description of the rule-set. + string description = 1; + + // Source of the rules i.e., customer name. + string source = 2; + + // List of rules given by the customer. + repeated Rule rules = 3; + + // Records the user defined time after which the rule-set will become active. + google.protobuf.Timestamp start_time = 4; + + oneof expiration { + // The timestamp after which RuleSet will not be executed by Policy Engine. + google.protobuf.Timestamp expire_time = 5; + + // Input only. The TTL (time to live) of the RuleSet. + // + // If it is set, [expire_time][google.cloud.contentwarehouse.v1.RuleSet.expire_time] is set as current timestamp plus [ttl][google.cloud.contentwarehouse.v1.RuleSet.ttl]. + // The derived [expire_time][google.cloud.contentwarehouse.v1.RuleSet.expire_time] is returned in the output and [ttl][google.cloud.contentwarehouse.v1.RuleSet.ttl] is left + // blank when retrieving the [RuleSet][google.cloud.contentwarehouse.v1.RuleSet]. + // + // If it is set, the RuleSet is not available for execution after current + // timestamp plus [ttl][google.cloud.contentwarehouse.v1.RuleSet.ttl]. However, the RuleSet can still be retrieved by + // [RuleSetService.GetRuleSet][google.cloud.contentwarehouse.v1.RuleSetService.GetRuleSet] and [RuleSetService.ListRuleSets][google.cloud.contentwarehouse.v1.RuleSetService.ListRuleSets]. + google.protobuf.Duration ttl = 7 [(google.api.field_behavior) = INPUT_ONLY]; + } + + // The schedule with which the Ruleset is applied. + // + // The presence of this field means that the ruleset is asynchronous. + Schedule schedule = 8; +} + +// Represents the rule for a content warehouse trigger. +message Rule { + enum TriggerType { + UNKNOWN = 0; + + // Trigger for create document action. + ON_CREATE = 1; + + // Trigger for read document action. + ON_READ = 2; + + // Trigger for search document action. + ON_SEARCH = 3; + + // Trigger for update document action. + ON_UPDATE = 4; + + // Trigger for delete document action. + ON_DELETE = 5; + + // Trigger for asynchronous document actions. + ASYNC = 6; + } + + // Short description of the rule and its context. + string description = 1; + + // ID of the rule. It has to be unique across all the examples. + // This is managed internally. + string rule_id = 2; + + // Identifies the trigger type for running the policy. + TriggerType trigger_type = 3; + + // Represents the conditional expression to be evaluated. + // Expression should evaluate to a boolean result. + // When the condition is true actions are executed. + // Example: user_role = "hsbc_role_1" AND doc.salary > 20000 + string condition = 4; + + // List of actions that are executed when the rule is satisfied. + repeated Action actions = 5; + + // Priority of the rule for execution sequence preference. + float priority = 6; + + // Indicates if the policy is currently in use or not. + bool enabled = 7; +} + +// Represents the action triggered by Rule Engine when the rule is true. +message Action { + // ID of the action. Managed internally. + string action_id = 1; + + oneof action { + // Action triggering access control operations. + AccessControlAction access_control = 2; + + // Action triggering data validation operations. + DataValidationAction data_validation = 3; + + // Action triggering data update operations. + DataUpdateAction data_update = 4; + + // Action triggering create document link operation. + AddToFolderAction add_to_folder = 5; + + // Action publish to Pub/Sub operation. + PublishAction publish_to_pub_sub = 6; + + // Action performing context evaluation operation. + ContextEvaluationAction context_evaluation_action = 7; + + // Action process expired data. + ExpiredDataHandlingAction expired_data_handling_action = 8; + + // Action removing a document from a folder. + RemoveFromFolderAction remove_from_folder_action = 9; + + // Action deleting the document. + DeleteDocumentAction delete_document_action = 10; + } +} + +// Represents the action responsible for access control list management +// operations. +message AccessControlAction { + // Type of ACL modification operation. + enum OperationType { + UNKNOWN = 0; + + // Adds newly given policy bindings in the existing bindings list. + ADD_POLICY_BINDING = 1; + + // Removes newly given policy bindings from the existing bindings list. + REMOVE_POLICY_BINDING = 2; + + // Replaces existing policy bindings with the given policy binding list + REPLACE_POLICY_BINDING = 3; + } + + // Identifies the type of operation. + OperationType operation_type = 1; + + // Represents the new policy from which bindings are added, removed or + // replaced based on the type of the operation. the policy is limited to a few + // 10s of KB. + google.iam.v1.Policy policy = 2; +} + +// Represents the action responsible for data validation operations. +message DataValidationAction { + // Map of (K, V) -> (field, string condition to be evaluated on the field) + // E.g., ("age", "age > 18 && age < 60") entry triggers validation of field + // age with the given condition. Map entries will be ANDed during validation. + map conditions = 1; +} + +// Represents the action responsible for properties update operations. +message DataUpdateAction { + // Map of (K, V) -> (valid name of the field, new value of the field) + // E.g., ("age", "60") entry triggers update of field age with a value of 60. + // If the field is not present then new entry is added. + // During update action execution, value strings will be casted to + // appropriate types. + map entries = 1; +} + +// Represents the folder schema and corresponding condition. +message FolderSchemaCondition { + // Name of the folder schema consisting of the properties to be evaluated. + // Format: + // projects/{project_number}/locations/{location}/documentSchemas/{document_id}. + string folder_schema = 1 [(google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/DocumentSchema" + }]; + + // The filter condition. + // The syntax for this expression is a subset of SQL syntax. + // + // Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the left + // of the operator is a property name and the right of the operator is a + // number or a quoted string. You must escape backslash (\\) and quote (\") + // characters. Supported functions are `LOWER([property_name])` to perform a + // case insensitive match and `EMPTY([property_name])` to filter on the + // existence of a key. + // + // Boolean expressions (AND/OR/NOT) are supported up to 3 levels of nesting + // (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100 + // comparisons or functions are allowed in the expression. The expression must + // be < 6000 bytes in length. + // Example: "DOC.SSN = FOLDER.ssn" + // In the above example, SSN property from the document under + // process is evaluated against folders' ssn property. + // The document under process will be added under the folder if the condition + // is evaluated as true. + // Note: FOLDER prefix is used to refer to target folder's properties. + // DOC prefix is used to refer to properties in the under process document. + string condition = 2; +} + +// Represents the action responsible for adding document under a folder. +message AddToFolderAction { + // Names of the folder under which new document is to be added. + // Format: + // projects/{project_number}/locations/{location}/documents/{document_id}. + repeated string folders = 1 [(google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + }]; + + // If the folders info is not available then populate FolderSchemaConditions + // for finding matching folders dynamically. + // Filter conditions used to derive specific folders dynamically. + repeated FolderSchemaCondition folder_schema_conditions = 2; +} + +// Represents the action responsible for remove a document from a specific +// folder. +message RemoveFromFolderAction { + // Condition of the action to be executed. + string condition = 1; + + // Name of the folder under which new document is to be added. + // Format: + // projects/{project_number}/locations/{location}/documents/{document_id}. + string folder = 2 [(google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + }]; +} + +// Represents the action responsible for publishing messages to a Pub/Sub topic. +message PublishAction { + // The topic id in the Pub/Sub service for which messages will be published + // to. + string topic_id = 1; + + // Messages to be published. + repeated string messages = 2; +} + +// Represents the action responsible for performing context evaluation. +message ContextEvaluationAction { + // User Cloud Function for context evaluation. + message CloudFunctionInfo { + // Url of the Cloud Function. The Cloud Function needs to live inside + // consumer project. + string cloud_function = 3; + } + + // Settings of user's webhook. + message Webhook { + // URL string for receiving a POST request every time webhook is triggered. + string uri = 8; + } + + // Settings of service directory for webhook under VPCSC. + message WebhookWithServiceDirectory { + // The service directory service resource name. + string service = 9; + + // Detailed webhook settings. + Webhook webhook = 10; + } + + // Filter condition for the documents to be included in the evaluation. + string condition = 1; + + // Name of the variables input for the context evaluation. + repeated string variable_names = 2; + + oneof ContextEvaluationMethod { + // User Cloud Function for the context evaluation. + CloudFunctionInfo cloud_function_info = 4; + + // User's webhook address for the context evaluation. + Webhook webhook = 6; + + // User's webhook address integrated with service-directory. + WebhookWithServiceDirectory webhook_with_service_directory = 7; + } + + // Optional. cloud Pub/Sub topic-id. If specified, information of the + // updated documents will be published to this topic. + string topic_id = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the action responsible for handling expired data. +message ExpiredDataHandlingAction { + // Filter condition for the documents to be included in the evaluation. + string condition = 1; + + // Expired data handling will publish errors to the Pub/Sub using topic-id + // provided. + string topic_id = 2; +} + +// Represents the action responsible for deleting the document. +message DeleteDocumentAction { + // Boolean field to select between hard vs soft delete options. + // Set 'true' for 'hard delete' and 'false' for 'soft delete'. + bool enable_hard_delete = 1; +} + +// Records the output of Rule Engine including rule evaluation and actions +// result. +message RuleEngineOutput { + // Name of the document against which the rules and actions were evaluated. + string document_name = 3; + + // Output from Rule Evaluator containing matched, unmatched and invalid rules. + RuleEvaluatorOutput rule_evaluator_output = 1; + + // Output from Action Executor containing rule and corresponding actions + // execution result. + ActionExecutorOutput action_executor_output = 2; +} + +// Represents the output of the Rule Evaluator. +message RuleEvaluatorOutput { + // List of rules fetched from database for the given request trigger type. + repeated Rule triggered_rules = 1; + + // A subset of triggered rules that are evaluated true for a given request. + repeated Rule matched_rules = 2; + + // A subset of triggered rules that failed the validation check(s) after + // parsing. + repeated InvalidRule invalid_rules = 3; +} + +// A triggered rule that failed the validation check(s) after parsing. +message InvalidRule { + // Triggered rule. + Rule rule = 1; + + // Validation error on a parsed expression. + string error = 2; +} + +// Represents the output of the Action Executor. +message ActionExecutorOutput { + // List of rule and corresponding actions result. + repeated RuleActionsPair rule_actions_pairs = 1; +} + +// Represents a rule and outputs of associated actions. +message RuleActionsPair { + // Represents the rule. + Rule rule = 1; + + // Outputs of executing the actions associated with the above rule. + repeated ActionOutput action_outputs = 2; +} + +// Represents the result of executing an action. +message ActionOutput { + // Represents execution state of the action. + enum State { + UNKNOWN = 0; + + // State indicating action executed successfully. + ACTION_SUCCEEDED = 1; + + // State indicating action failed. + ACTION_FAILED = 2; + + // State indicating action timed out. + ACTION_TIMED_OUT = 3; + + // State indicating action is pending. + ACTION_PENDING = 4; + } + + // ID of the action. + string action_id = 1; + + // State of an action. + State action_state = 2; + + // Action execution output message. + string output_message = 3; +} + +// Represents the schedule with which asynchronous RuleSets are applied. +enum Schedule { + // Unspecified schedule. + SCHEDULE_UNSPECIFIED = 0; + + // Policy should be applied every calendar day at 00:00 PST. + SCHEDULE_DAILY = 1; + + // Policy should be applied every Sunday at 00:00 PST. + SCHEDULE_WEEKLY = 2; + + // Policy should be applied the 1st of every calendar month at 00:00 PST. + SCHEDULE_MONTHLY = 3; +} diff --git a/google/cloud/contentwarehouse/v1/ruleset_service.proto b/google/cloud/contentwarehouse/v1/ruleset_service.proto new file mode 100644 index 000000000..cb398c0b4 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/ruleset_service.proto @@ -0,0 +1,85 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/contentwarehouse/v1/rule_engine.proto"; +import "google/cloud/contentwarehouse/v1/ruleset_service_request.proto"; +import "google/protobuf/empty.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "RuleSetServiceProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +service RuleSetService { + option (google.api.default_host) = "contentwarehouse.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a ruleset. + rpc CreateRuleSet(CreateRuleSetRequest) returns (RuleSet) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/ruleSets" + body: "rule_set" + }; + option (google.api.method_signature) = "parent,rule_set"; + } + + // Gets a ruleset. Returns NOT_FOUND if the ruleset does not exist. + rpc GetRuleSet(GetRuleSetRequest) returns (RuleSet) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/ruleSets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a ruleset. Returns INVALID_ARGUMENT if the name of the ruleset + // is non-empty and does not equal the existing name. + rpc UpdateRuleSet(UpdateRuleSetRequest) returns (RuleSet) { + option (google.api.http) = { + patch: "/v1/{name=projects/*/locations/*/ruleSets/*}" + body: "*" + }; + option (google.api.method_signature) = "rule_set"; + } + + // Deletes a ruleset. Returns NOT_FOUND if the document does not exist. + rpc DeleteRuleSet(DeleteRuleSetRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/ruleSets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists rulesets. + rpc ListRuleSets(ListRuleSetsRequest) returns (ListRuleSetsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/ruleSets" + }; + option (google.api.method_signature) = "parent"; + } + + // Runs asynchronous RuleSets. + rpc ProcessAsyncRuleSets(ProcessAsyncRuleSetsRequest) returns (ProcessAsyncRuleSetsResponse) { + option (google.api.http) = { + post: "/v1/{location=projects/*/locations/*}:processAsyncRuleSets" + body: "*" + }; + option (google.api.method_signature) = "location"; + } +} diff --git a/google/cloud/contentwarehouse/v1/ruleset_service_request.proto b/google/cloud/contentwarehouse/v1/ruleset_service_request.proto new file mode 100644 index 000000000..cd482e077 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/ruleset_service_request.proto @@ -0,0 +1,155 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/contentwarehouse/v1/rule_engine.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "RuleSetServiceRequestProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// Request message for RuleSetService.CreateRuleSet. +message CreateRuleSetRequest { + // Required. The parent name. + // Format: projects/{project_number}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // Required. The rule set to create. + RuleSet rule_set = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for RuleSetService.GetRuleSet. +message GetRuleSetRequest { + // Required. The name of the rule set to retrieve. + // Format: + // projects/{project_number}/locations/{location}/ruleSets/{rule_set_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/RuleSet" + } + ]; +} + +// Request message for RuleSetService.UpdateRuleSet. +message UpdateRuleSetRequest { + // Required. The name of the rule set to update. + // Format: + // projects/{project_number}/locations/{location}/ruleSets/{rule_set_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/RuleSet" + } + ]; + + // Required. The rule set to update. + RuleSet rule_set = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for RuleSetService.DeleteRuleSet. +message DeleteRuleSetRequest { + // Required. The name of the rule set to delete. + // Format: + // projects/{project_number}/locations/{location}/ruleSets/{rule_set_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/RuleSet" + } + ]; +} + +// Request message for RuleSetService.ListRuleSets. +message ListRuleSetsRequest { + // Required. The parent, which owns this collection of document. + // Format: projects/{project_number}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // The maximum number of rule sets to return. The service may return + // fewer than this value. + // If unspecified, at most 50 rule sets 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 `ListRuleSets` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListRuleSets` + // must match the call that provided the page token. + string page_token = 3; +} + +// Response message for RuleSetService.ListRuleSets. +message ListRuleSetsResponse { + // The rule sets from the specified parent. + repeated RuleSet rule_sets = 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 RuleSetService.ProcessAsyncRuleSets. +message ProcessAsyncRuleSetsRequest { + // Required. The Location under which all async rules are stored. + string location = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // Required. The frequency category of async rules to process. + Schedule schedule = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Timestamp to override inferred execution time. + google.protobuf.Timestamp execution_time = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Document name filter to process only a subset of Documents. + repeated string document_names = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Document" + } + ]; +} + +// Response message for RuleSetService.ProcessAsyncRuleSets. +message ProcessAsyncRuleSetsResponse { + // True if the processing of asynchronous policies was entirely + // successful. + bool success = 1; + + // Contains the errors encountered during the processing of asynchronous + // policies. + repeated RuleEngineOutput errors = 2; +} diff --git a/google/cloud/contentwarehouse/v1/synonymset.proto b/google/cloud/contentwarehouse/v1/synonymset.proto new file mode 100644 index 000000000..d4f23e057 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/synonymset.proto @@ -0,0 +1,58 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "SynonymSetProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// Represents a list of synonyms for a given context. +// For example a context "sales" could contain: +// Synonym 1: sale, invoice, bill, order +// Synonym 2: money, credit, finance, payment +// Synonym 3: shipping, freight, transport +// Each SynonymSets should be disjoint +message SynonymSet { + option (google.api.resource) = { + type: "contentwarehouse.googleapis.com/SynonymSet" + pattern: "projects/{project}/locations/{location}/synonymSets/{context}" + }; + + // Represents a list of words given by the customer + // All these words are synonyms of each other. + message Synonym { + // For example: sale, invoice, bill, order + repeated string words = 1; + } + + // The resource name of the SynonymSet + // This is mandatory for google.api.resource. + // Format: + // projects/{project_number}/locations/{location}/synonymSets/{context}. + string name = 1; + + // This is a freeform field. Example contexts can be "sales," "engineering," + // "real estate," "accounting," etc. + // The context can be supplied during search requests. + string context = 2; + + // List of Synonyms for the context. + repeated Synonym synonyms = 3; +} diff --git a/google/cloud/contentwarehouse/v1/synonymset_service.proto b/google/cloud/contentwarehouse/v1/synonymset_service.proto new file mode 100644 index 000000000..3ee1f6e56 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/synonymset_service.proto @@ -0,0 +1,83 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/contentwarehouse/v1/synonymset.proto"; +import "google/cloud/contentwarehouse/v1/synonymset_service_request.proto"; +import "google/protobuf/empty.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "SynonymSetServiceProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// A Service that manage/custom customer specified SynonymSets. +service SynonymSetService { + option (google.api.default_host) = "contentwarehouse.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a SynonymSet for a single context. + // Throws an ALREADY_EXISTS exception if a synonymset already exists + // for the context. + rpc CreateSynonymSet(CreateSynonymSetRequest) returns (SynonymSet) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/synonymSets" + body: "synonym_set" + }; + option (google.api.method_signature) = "parent,synonym_set"; + } + + // Gets a SynonymSet for a particular context. + // Throws a NOT_FOUND exception if the Synonymset + // does not exist + rpc GetSynonymSet(GetSynonymSetRequest) returns (SynonymSet) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/synonymSets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Remove the existing SynonymSet for the context and replaces it + // with a new one. + // Throws a NOT_FOUND exception if the SynonymSet is not found. + rpc UpdateSynonymSet(UpdateSynonymSetRequest) returns (SynonymSet) { + option (google.api.http) = { + patch: "/v1/{name=projects/*/locations/*/synonymSets/*}" + body: "synonym_set" + }; + option (google.api.method_signature) = "synonym_set"; + } + + // Deletes a SynonymSet for a given context. + // Throws a NOT_FOUND exception if the SynonymSet is not found. + rpc DeleteSynonymSet(DeleteSynonymSetRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/synonymSets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns all SynonymSets (for all contexts) for the specified location. + rpc ListSynonymSets(ListSynonymSetsRequest) returns (ListSynonymSetsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/synonymSets" + }; + option (google.api.method_signature) = "parent"; + } +} diff --git a/google/cloud/contentwarehouse/v1/synonymset_service_request.proto b/google/cloud/contentwarehouse/v1/synonymset_service_request.proto new file mode 100644 index 000000000..8d1955456 --- /dev/null +++ b/google/cloud/contentwarehouse/v1/synonymset_service_request.proto @@ -0,0 +1,122 @@ +// 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.cloud.contentwarehouse.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/contentwarehouse/v1/synonymset.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; +option java_multiple_files = true; +option java_outer_classname = "SynonymSetServiceRequestProto"; +option java_package = "com.google.cloud.contentwarehouse.v1"; + +// Request message for SynonymSetService.CreateSynonymSet. +message CreateSynonymSetRequest { + // Required. The parent name. + // Format: projects/{project_number}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // Required. The synonymSet to be created for a context + SynonymSet synonym_set = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for SynonymSetService.GetSynonymSet. +// Will return synonymSet for a certain context. +message GetSynonymSetRequest { + // Required. The name of the synonymSet to retrieve + // Format: + // projects/{project_number}/locations/{location}/synonymSets/{context}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/SynonymSet" + } + ]; +} + +// Request message for SynonymSetService.ListSynonymSets. +// Will return all synonymSets belonging to the customer project. +message ListSynonymSetsRequest { + // Required. The parent name. + // Format: projects/{project_number}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/Location" + } + ]; + + // The maximum number of synonymSets to return. The service may return + // fewer than this value. + // If unspecified, at most 50 rule sets 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 `ListSynonymSets` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListSynonymSets` + // must match the call that provided the page token. + string page_token = 3; +} + +// Response message for SynonymSetService.ListSynonymSets. +message ListSynonymSetsResponse { + // The synonymSets from the specified parent. + repeated SynonymSet synonym_sets = 1; + + // A page token, received from a previous `ListSynonymSets` call. + // Provide this to retrieve the subsequent page. + string next_page_token = 2; +} + +// Request message for SynonymSetService.UpdateSynonymSet. +// Removes the SynonymSet for the specified context and replaces +// it with the SynonymSet in this request. +message UpdateSynonymSetRequest { + // Required. The name of the synonymSet to update + // Format: + // projects/{project_number}/locations/{location}/synonymSets/{context}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/SynonymSet" + } + ]; + + // Required. The synonymSet to be updated for the customer + SynonymSet synonym_set = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for SynonymSetService.DeleteSynonymSet. +message DeleteSynonymSetRequest { + // Required. The name of the synonymSet to delete + // Format: + // projects/{project_number}/locations/{location}/synonymSets/{context}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contentwarehouse.googleapis.com/SynonymSet" + } + ]; +} diff --git a/google/cloud/datacatalog/v1/BUILD.bazel b/google/cloud/datacatalog/v1/BUILD.bazel index 649c9f30e..4d7f5d6e6 100644 --- a/google/cloud/datacatalog/v1/BUILD.bazel +++ b/google/cloud/datacatalog/v1/BUILD.bazel @@ -25,7 +25,9 @@ proto_library( "common.proto", "data_source.proto", "datacatalog.proto", + "dataplex_spec.proto", "gcs_fileset_spec.proto", + "physical_schema.proto", "policytagmanager.proto", "policytagmanagerserialization.proto", "schema.proto", @@ -87,6 +89,7 @@ java_gapic_library( ":datacatalog_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":datacatalog_java_proto", "//google/iam/v1:iam_java_proto", @@ -96,8 +99,11 @@ java_gapic_library( java_gapic_test( name = "datacatalog_java_gapic_test_suite", test_classes = [ + "com.google.cloud.datacatalog.v1.DataCatalogClientHttpJsonTest", "com.google.cloud.datacatalog.v1.DataCatalogClientTest", + "com.google.cloud.datacatalog.v1.PolicyTagManagerClientHttpJsonTest", "com.google.cloud.datacatalog.v1.PolicyTagManagerClientTest", + "com.google.cloud.datacatalog.v1.PolicyTagManagerSerializationClientHttpJsonTest", "com.google.cloud.datacatalog.v1.PolicyTagManagerSerializationClientTest", ], runtime_deps = [":datacatalog_java_gapic_test"], @@ -106,6 +112,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-datacatalog-v1-java", + include_samples = True, deps = [ ":datacatalog_java_gapic", ":datacatalog_java_grpc", @@ -143,6 +150,7 @@ go_gapic_library( importpath = "cloud.google.com/go/datacatalog/apiv1;datacatalog", metadata = True, service_yaml = "datacatalog_v1.yaml", + transport = "grpc+rest", deps = [ ":datacatalog_go_proto", "//google/iam/v1:iam_go_proto", @@ -174,12 +182,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "datacatalog_py_gapic", srcs = [":datacatalog_proto"], grpc_service_config = "datacatalog_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "datacatalog_py_gapic_test", + srcs = [ + "datacatalog_py_gapic_pytest.py", + "datacatalog_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datacatalog_py_gapic"], ) # Open Source Packages @@ -339,6 +362,7 @@ csharp_gapic_library( srcs = [":datacatalog_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "datacatalog_grpc_service_config.json", + service_yaml = "datacatalog_v1.yaml", deps = [ ":datacatalog_csharp_grpc", ":datacatalog_csharp_proto", diff --git a/google/cloud/datacatalog/v1/bigquery.proto b/google/cloud/datacatalog/v1/bigquery.proto index 8fff4ebd4..f9ce23464 100644 --- a/google/cloud/datacatalog/v1/bigquery.proto +++ b/google/cloud/datacatalog/v1/bigquery.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.datacatalog.v1; -import "google/api/field_behavior.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.DataCatalog.V1"; diff --git a/google/cloud/datacatalog/v1/common.proto b/google/cloud/datacatalog/v1/common.proto index 2856643d1..7a6bef5f2 100644 --- a/google/cloud/datacatalog/v1/common.proto +++ b/google/cloud/datacatalog/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -26,6 +26,15 @@ option java_package = "com.google.cloud.datacatalog.v1"; option php_namespace = "Google\\Cloud\\DataCatalog\\V1"; option ruby_package = "Google::Cloud::DataCatalog::V1"; +// Entry metadata relevant only to the user and private to them. +message PersonalDetails { + // True if the entry is starred by the user; false otherwise. + bool starred = 1; + + // Set if the entry is starred; unset otherwise. + google.protobuf.Timestamp star_time = 2; +} + // This enum lists all the systems that Data Catalog integrates with. enum IntegratedSystem { // Default unknown system. @@ -39,4 +48,7 @@ enum IntegratedSystem { // Dataproc Metastore. DATAPROC_METASTORE = 3; + + // Dataplex. + DATAPLEX = 4; } diff --git a/google/cloud/datacatalog/v1/data_source.proto b/google/cloud/datacatalog/v1/data_source.proto index 3abec0929..a73ff09c7 100644 --- a/google/cloud/datacatalog/v1/data_source.proto +++ b/google/cloud/datacatalog/v1/data_source.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -48,4 +48,40 @@ message DataSource { // // `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}` string resource = 2; + + // Output only. Data Catalog entry name, if applicable. + string source_entry = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + oneof properties { + // Detailed properties of the underlying storage. + StorageProperties storage_properties = 4; + } +} + +// Details the properties of the underlying storage. +message StorageProperties { + // Patterns to identify a set of files for this fileset. + // + // Examples of a valid `file_pattern`: + // + // * `gs://bucket_name/dir/*`: matches all files in the `bucket_name/dir` + // directory + // * `gs://bucket_name/dir/**`: matches all files in the `bucket_name/dir` + // and all subdirectories recursively + // * `gs://bucket_name/file*`: matches files prefixed by `file` in + // `bucket_name` + // * `gs://bucket_name/??.txt`: matches files with two characters followed by + // `.txt` in `bucket_name` + // * `gs://bucket_name/[aeiou].txt`: matches files that contain a single + // vowel character followed by `.txt` in + // `bucket_name` + // * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ... + // or `m` followed by `.txt` in `bucket_name` + // * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match + // the `a/*/b` pattern, such as `a/c/b`, `a/d/b` + // * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt` + repeated string file_pattern = 1; + + // File type in MIME format, for example, `text/plain`. + string file_type = 2; } diff --git a/google/cloud/datacatalog/v1/datacatalog.proto b/google/cloud/datacatalog/v1/datacatalog.proto index 2b2ebb2e3..7c33ca947 100644 --- a/google/cloud/datacatalog/v1/datacatalog.proto +++ b/google/cloud/datacatalog/v1/datacatalog.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -23,6 +23,7 @@ import "google/api/resource.proto"; import "google/cloud/datacatalog/v1/bigquery.proto"; import "google/cloud/datacatalog/v1/common.proto"; import "google/cloud/datacatalog/v1/data_source.proto"; +import "google/cloud/datacatalog/v1/dataplex_spec.proto"; import "google/cloud/datacatalog/v1/gcs_fileset_spec.proto"; import "google/cloud/datacatalog/v1/schema.proto"; import "google/cloud/datacatalog/v1/search.proto"; @@ -34,7 +35,6 @@ import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; -import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.DataCatalog.V1"; @@ -237,6 +237,30 @@ service DataCatalog { option (google.api.method_signature) = "parent"; } + // Modifies entry overview, part of the business context of an + // [Entry][google.cloud.datacatalog.v1.Entry]. + // + // To call this method, you must have the `datacatalog.entries.updateOverview` + // IAM permission on the corresponding project. + rpc ModifyEntryOverview(ModifyEntryOverviewRequest) returns (EntryOverview) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryOverview" + body: "*" + }; + } + + // Modifies contacts, part of the business context of an + // [Entry][google.cloud.datacatalog.v1.Entry]. + // + // To call this method, you must have the `datacatalog.entries.updateContacts` + // IAM permission on the corresponding project. + rpc ModifyEntryContacts(ModifyEntryContactsRequest) returns (Contacts) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryContacts" + body: "*" + }; + } + // Creates a tag template. // // You must enable the Data Catalog API in the project identified by the @@ -406,6 +430,8 @@ service DataCatalog { } // Lists tags assigned to an [Entry][google.cloud.datacatalog.v1.Entry]. + // The [columns][google.cloud.datacatalog.v1.Tag.column] in the response are + // lowercased. rpc ListTags(ListTagsRequest) returns (ListTagsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags" @@ -416,6 +442,26 @@ service DataCatalog { option (google.api.method_signature) = "parent"; } + // Marks an [Entry][google.cloud.datacatalog.v1.Entry] as starred by + // the current user. Starring information is private to each user. + rpc StarEntry(StarEntryRequest) returns (StarEntryResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:star" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Marks an [Entry][google.cloud.datacatalog.v1.Entry] as NOT starred by + // the current user. Starring information is private to each user. + rpc UnstarEntry(UnstarEntryRequest) returns (UnstarEntryResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:unstar" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + // Sets an access control policy for a resource. Replaces any existing // policy. // @@ -549,16 +595,17 @@ message SearchCatalogRequest { // value of this parameter. repeated string restricted_locations = 16 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If `true`, include [public tag - // templates][google.cloud.datacatalog.v1.TagTemplate.is_publicly_readable] - // in the search results. By default, they are included only if you have - // explicit permissions on them to view them. For example, if you are the - // owner. + // Optional. If `true`, search only among starred entries. // - // Other scope fields, for example, `include_org_ids`, - // still restrict the returned public tag templates and at least one of - // them is required. - bool include_public_tag_templates = 19 [(google.api.field_behavior) = OPTIONAL]; + // By default, all results are returned, starred or not. + bool starred_only = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field is deprecated. The search mechanism for public and private tag + // templates is the same. + bool include_public_tag_templates = 19 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL + ]; } // Required. The scope of this search request. @@ -605,6 +652,7 @@ message SearchCatalogRequest { // // * `relevance` that can only be descending // * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default + // * `default` that can only be descending // // If this parameter is omitted, it defaults to the descending `relevance`. string order_by = 5; @@ -707,7 +755,7 @@ message ListEntryGroupsRequest { string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "datacatalog.googleapis.com/EntryGroup" + child_type: "datacatalog.googleapis.com/EntryGroup" } ]; @@ -1017,6 +1065,10 @@ message Entry { // Specification that applies to a user-defined function or procedure. Valid // only for entries with the `ROUTINE` type. RoutineSpec routine_spec = 28; + + // Specification that applies to a fileset resource. Valid only + // for entries with the `FILESET` type. + FilesetSpec fileset_spec = 33; } // Display name of an entry. @@ -1037,6 +1089,9 @@ message Entry { // Default value is an empty string. string description = 4; + // Business Context of the entry. Not supported for BigQuery datasets + BusinessContext business_context = 37; + // Schema of the entry. An entry might not have any schema attached to it. Schema schema = 5; @@ -1060,6 +1115,9 @@ message Entry { // Output only. Physical location of the entry. DataSource data_source = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Additional information related to the entry. Private to the current user. + PersonalDetails personal_details = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Specification that applies to a table resource. Valid only @@ -1079,6 +1137,18 @@ message DatabaseTableSpec { // Type of this table. TableType type = 1; + + // Fields specific to a Dataplex table and present only in the Dataplex table + // entries. + DataplexTableSpec dataplex_table = 2; +} + +// Specification that applies to a fileset. Valid only for entries with the +// 'FILESET' type. +message FilesetSpec { + // Fields specific to a Dataplex fileset and present only in the Dataplex + // fileset entries. + DataplexFilesetSpec dataplex_fileset = 1; } // Specification that applies to a data source connection. Valid only for @@ -1091,6 +1161,18 @@ message DataSourceConnectionSpec { // Specification that applies to a routine. Valid only for // entries with the `ROUTINE` type. message RoutineSpec { + // The fine-grained type of the routine. + enum RoutineType { + // Unspecified type. + ROUTINE_TYPE_UNSPECIFIED = 0; + + // Non-builtin permanent scalar function. + SCALAR_FUNCTION = 1; + + // Stored procedure. + PROCEDURE = 2; + } + // Input or output argument of a function or stored procedure. message Argument { // The input or output mode of the argument. @@ -1120,18 +1202,6 @@ message RoutineSpec { string type = 3; } - // The fine-grained type of the routine. - enum RoutineType { - // Unspecified type. - ROUTINE_TYPE_UNSPECIFIED = 0; - - // Non-builtin permanent scalar function. - SCALAR_FUNCTION = 1; - - // Stored procedure. - PROCEDURE = 2; - } - // The type of the routine. RoutineType routine_type = 1; @@ -1159,6 +1229,43 @@ message RoutineSpec { } } +// Business Context of the entry. +message BusinessContext { + // Entry overview fields for rich text descriptions of entries. + EntryOverview entry_overview = 1; + + // Contact people for the entry. + Contacts contacts = 2; +} + +// Entry overview fields for rich text descriptions of entries. +message EntryOverview { + // Entry overview with support for rich text. + // + // The overview must only contain Unicode characters, and should be + // formatted using HTML. + // The maximum length is 10 MiB as this value holds HTML descriptions + // including encoded images. The maximum length of the text without images + // is 100 KiB. + string overview = 1; +} + +// Contact people for the entry. +message Contacts { + // A contact person for the entry. + message Person { + // Designation of the person, for example, Data Steward. + string designation = 1; + + // Email of the person in the format of `john.doe@xyz`, + // ``, or `John Doe`. + string email = 2; + } + + // The list of contact people for the entry. + repeated Person people = 1; +} + // Entry group metadata. // // An `EntryGroup` resource represents a logical grouping of zero or more @@ -1237,9 +1344,7 @@ message UpdateTagTemplateRequest { // request body, their values are emptied. // // Note: Updating the `is_publicly_readable` field may require up to 12 - // hours to take effect in search results. Additionally, it also requires - // the `tagTemplates.getIamPolicy` and `tagTemplates.setIamPolicy` - // permissions. + // hours to take effect in search results. google.protobuf.FieldMask update_mask = 2; } @@ -1273,7 +1378,7 @@ message CreateTagRequest { string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "datacatalog.googleapis.com/Tag" + child_type: "datacatalog.googleapis.com/Tag" } ]; @@ -1488,6 +1593,74 @@ message ListEntriesResponse { string next_page_token = 2; } +// Request message for +// [StarEntry][google.cloud.datacatalog.v1.DataCatalog.StarEntry]. +message StarEntryRequest { + // Required. The name of the entry to mark as starred. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datacatalog.googleapis.com/Entry" + } + ]; +} + +// Response message for +// [StarEntry][google.cloud.datacatalog.v1.DataCatalog.StarEntry]. +// Empty for now +message StarEntryResponse { + +} + +// Request message for +// [UnstarEntry][google.cloud.datacatalog.v1.DataCatalog.UnstarEntry]. +message UnstarEntryRequest { + // Required. The name of the entry to mark as **not** starred. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datacatalog.googleapis.com/Entry" + } + ]; +} + +// Response message for +// [UnstarEntry][google.cloud.datacatalog.v1.DataCatalog.UnstarEntry]. +// Empty for now +message UnstarEntryResponse { + +} + +// Request message for +// [ModifyEntryOverview][google.cloud.datacatalog.v1.DataCatalog.ModifyEntryOverview]. +message ModifyEntryOverviewRequest { + // Required. The full resource name of the entry. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datacatalog.googleapis.com/Entry" + } + ]; + + // Required. The new value for the Entry Overview. + EntryOverview entry_overview = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [ModifyEntryContacts][google.cloud.datacatalog.v1.DataCatalog.ModifyEntryContacts]. +message ModifyEntryContactsRequest { + // Required. The full resource name of the entry. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datacatalog.googleapis.com/Entry" + } + ]; + + // Required. The new value for the Contacts. + Contacts contacts = 2 [(google.api.field_behavior) = REQUIRED]; +} + // The enum field that lists all the types of entry resources in Data // Catalog. For example, a BigQuery table entry has the `TABLE` type. enum EntryType { @@ -1524,6 +1697,12 @@ enum EntryType { // Output only. Routine, for example, a BigQuery routine. ROUTINE = 9; + // A Dataplex lake. + LAKE = 10; + + // A Dataplex zone. + ZONE = 11; + // A service, for example, a Dataproc Metastore service. SERVICE = 14; } diff --git a/google/cloud/datacatalog/v1/dataplex_spec.proto b/google/cloud/datacatalog/v1/dataplex_spec.proto new file mode 100644 index 000000000..0cdba3e1f --- /dev/null +++ b/google/cloud/datacatalog/v1/dataplex_spec.proto @@ -0,0 +1,90 @@ +// 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.cloud.datacatalog.v1; + +import "google/cloud/datacatalog/v1/common.proto"; +import "google/cloud/datacatalog/v1/physical_schema.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.DataCatalog.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1;datacatalog"; +option java_multiple_files = true; +option java_outer_classname = "DataplexSpecProto"; +option java_package = "com.google.cloud.datacatalog.v1"; +option php_namespace = "Google\\Cloud\\DataCatalog\\V1"; +option ruby_package = "Google::Cloud::DataCatalog::V1"; + +// Common Dataplex fields. +message DataplexSpec { + // Fully qualified resource name of an asset in Dataplex, to which the + // underlying data source (Cloud Storage bucket or BigQuery dataset) of the + // entity is attached. + string asset = 1; + + // Format of the data. + PhysicalSchema data_format = 2; + + // Compression format of the data, e.g., zip, gzip etc. + string compression_format = 3; + + // Project ID of the underlying Cloud Storage or BigQuery data. Note that + // this may not be the same project as the correspondingly Dataplex lake / + // zone / asset. + string project_id = 4; +} + +// Entry specyfication for a Dataplex fileset. +message DataplexFilesetSpec { + // Common Dataplex fields. + DataplexSpec dataplex_spec = 1; +} + +// Entry specification for a Dataplex table. +message DataplexTableSpec { + // List of external tables registered by Dataplex in other systems based on + // the same underlying data. + // + // External tables allow to query this data in those systems. + repeated DataplexExternalTable external_tables = 1; + + // Common Dataplex fields. + DataplexSpec dataplex_spec = 2; + + // Indicates if the table schema is managed by the user or not. + bool user_managed = 3; +} + +// External table registered by Dataplex. +// Dataplex publishes data discovered from an asset into multiple other systems +// (BigQuery, DPMS) in form of tables. We call them "external tables". External +// tables are also synced into the Data Catalog. +// This message contains pointers to +// those external tables (fully qualified name, resource name et cetera) within +// the Data Catalog. +message DataplexExternalTable { + // Service in which the external table is registered. + IntegratedSystem system = 1; + + // Fully qualified name (FQN) of the external table. + string fully_qualified_name = 28; + + // Google Cloud resource name of the external table. + string google_cloud_resource = 3; + + // Name of the Data Catalog entry representing the external table. + string data_catalog_entry = 4; +} diff --git a/google/cloud/datacatalog/v1/gcs_fileset_spec.proto b/google/cloud/datacatalog/v1/gcs_fileset_spec.proto index 67627b45c..82a165309 100644 --- a/google/cloud/datacatalog/v1/gcs_fileset_spec.proto +++ b/google/cloud/datacatalog/v1/gcs_fileset_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/datacatalog/v1/physical_schema.proto b/google/cloud/datacatalog/v1/physical_schema.proto new file mode 100644 index 000000000..414e95ca7 --- /dev/null +++ b/google/cloud/datacatalog/v1/physical_schema.proto @@ -0,0 +1,83 @@ +// 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.cloud.datacatalog.v1; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.DataCatalog.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1;datacatalog"; +option java_multiple_files = true; +option java_outer_classname = "PhysicalSchemaProto"; +option java_package = "com.google.cloud.datacatalog.v1"; +option php_namespace = "Google\\Cloud\\DataCatalog\\V1"; +option ruby_package = "Google::Cloud::DataCatalog::V1"; + +// Native schema used by a resource represented as an entry. Used by query +// engines for deserializing and parsing source data. +message PhysicalSchema { + // Schema in Avro JSON format. + message AvroSchema { + // JSON source of the Avro schema. + string text = 1; + } + + // Schema in Thrift format. + message ThriftSchema { + // Thrift IDL source of the schema. + string text = 1; + } + + // Schema in protocol buffer format. + message ProtobufSchema { + // Protocol buffer source of the schema. + string text = 1; + } + + // Marks a Parquet-encoded data source. + message ParquetSchema { + + } + + // Marks an ORC-encoded data source. + message OrcSchema { + + } + + // Marks a CSV-encoded data source. + message CsvSchema { + + } + + oneof schema { + // Schema in Avro JSON format. + AvroSchema avro = 1; + + // Schema in Thrift format. + ThriftSchema thrift = 2; + + // Schema in protocol buffer format. + ProtobufSchema protobuf = 3; + + // Marks a Parquet-encoded data source. + ParquetSchema parquet = 4; + + // Marks an ORC-encoded data source. + OrcSchema orc = 5; + + // Marks a CSV-encoded data source. + CsvSchema csv = 6; + } +} diff --git a/google/cloud/datacatalog/v1/policytagmanager.proto b/google/cloud/datacatalog/v1/policytagmanager.proto index 7cabb8748..be4159884 100644 --- a/google/cloud/datacatalog/v1/policytagmanager.proto +++ b/google/cloud/datacatalog/v1/policytagmanager.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -229,6 +229,8 @@ message Taxonomy { // The name can't start or end with spaces, must contain only Unicode letters, // numbers, underscores, dashes, and spaces, and be at most 200 bytes long // when encoded in UTF-8. + // + // The taxonomy display name must be unique within an organization. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. Description of this taxonomy. If not set, defaults to empty. diff --git a/google/cloud/datacatalog/v1/policytagmanagerserialization.proto b/google/cloud/datacatalog/v1/policytagmanagerserialization.proto index 834acd0aa..a4fe4d8b9 100644 --- a/google/cloud/datacatalog/v1/policytagmanagerserialization.proto +++ b/google/cloud/datacatalog/v1/policytagmanagerserialization.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,11 +17,10 @@ syntax = "proto3"; package google.cloud.datacatalog.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/datacatalog/v1/policytagmanager.proto"; -import "google/iam/v1/policy.proto"; -import "google/api/client.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.DataCatalog.V1"; diff --git a/google/cloud/datacatalog/v1/schema.proto b/google/cloud/datacatalog/v1/schema.proto index bafc5d038..b33caac48 100644 --- a/google/cloud/datacatalog/v1/schema.proto +++ b/google/cloud/datacatalog/v1/schema.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/datacatalog/v1/search.proto b/google/cloud/datacatalog/v1/search.proto index 2194c6f85..88c06a46c 100644 --- a/google/cloud/datacatalog/v1/search.proto +++ b/google/cloud/datacatalog/v1/search.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/datacatalog/v1/table_spec.proto b/google/cloud/datacatalog/v1/table_spec.proto index c8da40420..cbf7ad3e9 100644 --- a/google/cloud/datacatalog/v1/table_spec.proto +++ b/google/cloud/datacatalog/v1/table_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/datacatalog/v1/tags.proto b/google/cloud/datacatalog/v1/tags.proto index eab54abba..dedfd2f61 100644 --- a/google/cloud/datacatalog/v1/tags.proto +++ b/google/cloud/datacatalog/v1/tags.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -159,33 +159,12 @@ message TagTemplate { // The maximum length is 200 characters. string display_name = 2; - // Indicates whether this is a public tag template. + // Indicates whether tags created with this template are public. Public tags + // do not require tag template access to appear in + // [ListTags][google.cloud.datacatalog.v1.ListTags] API response. // - // Every user has view access to a *public* tag template by default. - // This means that: - // - // * Every user can use this tag template to tag an entry. - // * If an entry is tagged using the tag template, the tag is always - // shown in the response to ``ListTags`` called on the entry. - // * To get the template using the GetTagTemplate method, you - // need view access either on the project or the organization the tag - // template resides in but no other permission is needed. - // * Operations on the tag template other than viewing (for example, - // editing IAM policies) follow standard IAM structures. - // - // Tags created with a public tag template are referred to as public tags. - // - // You can search for a public tag by value with a - // simple search query instead of using a ``tag:`` predicate. - // - // Public tag templates may not appear in search results depending on scope, - // see: - // [include_public_tag_templates][google.cloud.datacatalog.v1.SearchCatalogRequest.Scope.include_public_tag_templates] - // - // Note: If an [IAM domain - // restriction](https://cloud.google.com/resource-manager/docs/organization-policy/restricting-domains) - // is configured in the tag template's location, the public access will not be - // enabled but the simple search for tag values will still work. + // Additionally, you can search for a public tag by value with a + // simple search query in addition to using a ``tag:`` predicate. bool is_publicly_readable = 5; // Required. Map of tag template field IDs to the settings for the field. @@ -247,6 +226,26 @@ message TagTemplateField { } message FieldType { + enum PrimitiveType { + // The default invalid value for a type. + PRIMITIVE_TYPE_UNSPECIFIED = 0; + + // A double precision number. + DOUBLE = 1; + + // An UTF-8 string. + STRING = 2; + + // A boolean value. + BOOL = 3; + + // A timestamp. + TIMESTAMP = 4; + + // A Richtext description. + RICHTEXT = 5; + } + message EnumType { message EnumValue { // Required. The display name of the enum value. Must not be an empty string. @@ -269,26 +268,6 @@ message FieldType { repeated EnumValue allowed_values = 1; } - enum PrimitiveType { - // The default invalid value for a type. - PRIMITIVE_TYPE_UNSPECIFIED = 0; - - // A double precision number. - DOUBLE = 1; - - // An UTF-8 string. - STRING = 2; - - // A boolean value. - BOOL = 3; - - // A timestamp. - TIMESTAMP = 4; - - // A Richtext description. - RICHTEXT = 5; - } - // Required. oneof type_decl { // Primitive types, such as string, boolean, etc. diff --git a/google/cloud/datacatalog/v1/timestamps.proto b/google/cloud/datacatalog/v1/timestamps.proto index 2311caf5f..fe96d7d3f 100644 --- a/google/cloud/datacatalog/v1/timestamps.proto +++ b/google/cloud/datacatalog/v1/timestamps.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/datacatalog/v1/usage.proto b/google/cloud/datacatalog/v1/usage.proto index aa36d37d5..781004267 100644 --- a/google/cloud/datacatalog/v1/usage.proto +++ b/google/cloud/datacatalog/v1/usage.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/datacatalog/v1beta1/BUILD.bazel b/google/cloud/datacatalog/v1beta1/BUILD.bazel index 29c7dbff7..661981304 100644 --- a/google/cloud/datacatalog/v1beta1/BUILD.bazel +++ b/google/cloud/datacatalog/v1beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( ":datacatalog_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":datacatalog_java_proto", "//google/iam/v1:iam_java_proto", @@ -85,8 +86,11 @@ java_gapic_test( name = "datacatalog_java_gapic_test_suite", test_classes = [ "com.google.cloud.datacatalog.v1beta1.DataCatalogClientTest", + "com.google.cloud.datacatalog.v1beta1.DataCatalogClientHttpJsonTest", "com.google.cloud.datacatalog.v1beta1.PolicyTagManagerClientTest", + "com.google.cloud.datacatalog.v1beta1.PolicyTagManagerClientHttpJsonTest", "com.google.cloud.datacatalog.v1beta1.PolicyTagManagerSerializationClientTest", + "com.google.cloud.datacatalog.v1beta1.PolicyTagManagerSerializationClientHttpJsonTest", ], runtime_deps = [":datacatalog_java_gapic_test"], ) @@ -94,6 +98,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-datacatalog-v1beta1-java", + include_samples = True, deps = [ ":datacatalog_java_gapic", ":datacatalog_java_grpc", @@ -130,6 +135,7 @@ go_gapic_library( grpc_service_config = "datacatalog_grpc_service_config.json", importpath = "cloud.google.com/go/datacatalog/apiv1beta1;datacatalog", service_yaml = "datacatalog_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":datacatalog_go_proto", "//google/iam/v1:iam_go_proto", @@ -160,12 +166,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "datacatalog_py_gapic", srcs = [":datacatalog_proto"], grpc_service_config = "datacatalog_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "datacatalog_py_gapic_test", + srcs = [ + "datacatalog_py_gapic_pytest.py", + "datacatalog_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datacatalog_py_gapic"], ) # Open Source Packages @@ -252,8 +273,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -271,7 +292,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "datacatalog_ruby_gapic", - srcs = [":datacatalog_proto_with_info",], + srcs = [":datacatalog_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-datacatalog-v1beta1"], deps = [ ":datacatalog_ruby_grpc", @@ -316,6 +337,7 @@ csharp_gapic_library( srcs = [":datacatalog_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "datacatalog_grpc_service_config.json", + service_yaml = "datacatalog_v1beta1.yaml", deps = [ ":datacatalog_csharp_grpc", ":datacatalog_csharp_proto", diff --git a/google/cloud/datacatalog/v1beta1/datacatalog.proto b/google/cloud/datacatalog/v1beta1/datacatalog.proto index 038e2203f..5f265d5bf 100644 --- a/google/cloud/datacatalog/v1beta1/datacatalog.proto +++ b/google/cloud/datacatalog/v1beta1/datacatalog.proto @@ -595,7 +595,7 @@ message ListEntryGroupsRequest { string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "datacatalog.googleapis.com/EntryGroup" + child_type: "datacatalog.googleapis.com/EntryGroup" } ]; @@ -955,7 +955,7 @@ message CreateTagRequest { string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "datacatalog.googleapis.com/Tag" + child_type: "datacatalog.googleapis.com/Tag" } ]; diff --git a/google/cloud/datacatalog/v1beta1/search.proto b/google/cloud/datacatalog/v1beta1/search.proto index c1f41412d..afaa643d7 100644 --- a/google/cloud/datacatalog/v1beta1/search.proto +++ b/google/cloud/datacatalog/v1beta1/search.proto @@ -16,9 +16,7 @@ syntax = "proto3"; package google.cloud.datacatalog.v1beta1; -import "google/api/field_behavior.proto"; import "google/cloud/datacatalog/v1beta1/common.proto"; -import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.DataCatalog.V1Beta1"; diff --git a/google/cloud/dataform/BUILD.bazel b/google/cloud/dataform/BUILD.bazel new file mode 100644 index 000000000..a87c57fec --- /dev/null +++ b/google/cloud/dataform/BUILD.bazel @@ -0,0 +1 @@ +exports_files(glob(["*.yaml"])) diff --git a/google/cloud/dataform/v1alpha2/BUILD.bazel b/google/cloud/dataform/v1alpha2/BUILD.bazel new file mode 100644 index 000000000..fc58e6efd --- /dev/null +++ b/google/cloud/dataform/v1alpha2/BUILD.bazel @@ -0,0 +1,383 @@ +# 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 = "dataform_proto", + srcs = [ + "dataform.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//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + ], +) + +proto_library_with_info( + name = "dataform_proto_with_info", + deps = [ + ":dataform_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "dataform_java_proto", + deps = [":dataform_proto"], +) + +java_grpc_library( + name = "dataform_java_grpc", + srcs = [":dataform_proto"], + deps = [":dataform_java_proto"], +) + +java_gapic_library( + name = "dataform_java_gapic", + srcs = [":dataform_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1alpha2.yaml", + test_deps = [ + ":dataform_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":dataform_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "dataform_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.dataform.v1alpha2.DataformClientHttpJsonTest", + "com.google.cloud.dataform.v1alpha2.DataformClientTest", + ], + runtime_deps = [":dataform_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-dataform-v1alpha2-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":dataform_java_gapic", + ":dataform_java_grpc", + ":dataform_java_proto", + ":dataform_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "dataform_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/dataform/v1alpha2", + protos = [":dataform_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/type:interval_go_proto", + ], +) + +go_gapic_library( + name = "dataform_go_gapic", + srcs = [":dataform_proto_with_info"], + grpc_service_config = "dataform_grpc_service_config.json", + importpath = "cloud.google.com/go/dataform/apiv1alpha2;dataform", + metadata = True, + service_yaml = "dataform_v1alpha2.yaml", + transport = "grpc+rest", + deps = [ + ":dataform_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_test( + name = "dataform_go_gapic_test", + srcs = [":dataform_go_gapic_srcjar_test"], + embed = [":dataform_go_gapic"], + importpath = "cloud.google.com/go/dataform/apiv1alpha2", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-dataform-v1alpha2-go", + deps = [ + ":dataform_go_gapic", + ":dataform_go_gapic_srcjar-metadata.srcjar", + ":dataform_go_gapic_srcjar-test.srcjar", + ":dataform_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", +) + +py_gapic_library( + name = "dataform_py_gapic", + srcs = [":dataform_proto"], + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1alpha2.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ] +) + +py_test( + name = "dataform_py_gapic_test", + srcs = [ + "dataform_py_gapic_pytest.py", + "dataform_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dataform_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "dataform-v1alpha2-py", + deps = [ + ":dataform_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "dataform_php_proto", + deps = [":dataform_proto"], +) + +php_grpc_library( + name = "dataform_php_grpc", + srcs = [":dataform_proto"], + deps = [":dataform_php_proto"], +) + +php_gapic_library( + name = "dataform_php_gapic", + srcs = [":dataform_proto_with_info"], + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1alpha2.yaml", + deps = [ + ":dataform_php_grpc", + ":dataform_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-dataform-v1alpha2-php", + deps = [ + ":dataform_php_gapic", + ":dataform_php_grpc", + ":dataform_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "dataform_nodejs_gapic", + package_name = "@google-cloud/dataform", + src = ":dataform_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "dataform_grpc_service_config.json", + package = "google.cloud.dataform.v1alpha2", + service_yaml = "dataform_v1alpha2.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "dataform-v1alpha2-nodejs", + deps = [ + ":dataform_nodejs_gapic", + ":dataform_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 = "dataform_ruby_proto", + deps = [":dataform_proto"], +) + +ruby_grpc_library( + name = "dataform_ruby_grpc", + srcs = [":dataform_proto"], + deps = [":dataform_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "dataform_ruby_gapic", + srcs = [":dataform_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-dataform-v1alpha2"], + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1alpha2.yaml", + deps = [ + ":dataform_ruby_grpc", + ":dataform_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-dataform-v1alpha2-ruby", + deps = [ + ":dataform_ruby_gapic", + ":dataform_ruby_grpc", + ":dataform_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 = "dataform_csharp_proto", + deps = [":dataform_proto"], +) + +csharp_grpc_library( + name = "dataform_csharp_grpc", + srcs = [":dataform_proto"], + deps = [":dataform_csharp_proto"], +) + +csharp_gapic_library( + name = "dataform_csharp_gapic", + srcs = [":dataform_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1alpha2.yaml", + deps = [ + ":dataform_csharp_grpc", + ":dataform_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-dataform-v1alpha2-csharp", + deps = [ + ":dataform_csharp_gapic", + ":dataform_csharp_grpc", + ":dataform_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "dataform_cc_proto", + deps = [":dataform_proto"], +) + +cc_grpc_library( + name = "dataform_cc_grpc", + srcs = [":dataform_proto"], + grpc_only = True, + deps = [":dataform_cc_proto"], +) diff --git a/google/cloud/dataform/v1alpha2/dataform.proto b/google/cloud/dataform/v1alpha2/dataform.proto new file mode 100644 index 000000000..771acdb48 --- /dev/null +++ b/google/cloud/dataform/v1alpha2/dataform.proto @@ -0,0 +1,1628 @@ +// 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.cloud.dataform.v1alpha2; + +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/type/interval.proto"; + +option csharp_namespace = "Google.Cloud.Dataform.V1Alpha2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/dataform/v1alpha2;dataform"; +option java_multiple_files = true; +option java_outer_classname = "DataformProto"; +option java_package = "com.google.cloud.dataform.v1alpha2"; +option php_namespace = "Google\\Cloud\\Dataform\\V1alpha2"; +option ruby_package = "Google::Cloud::Dataform::V1alpha2"; +option (google.api.resource_definition) = { + type: "secretmanager.googleapis.com/SecretVersion" + pattern: "projects/{project}/secrets/{secret}/versions/{version}" +}; + +// Dataform is a service to develop, create, document, test, and update curated +// tables in BigQuery. +service Dataform { + option (google.api.default_host) = "dataform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Lists Repositories in a given project and location. + rpc ListRepositories(ListRepositoriesRequest) returns (ListRepositoriesResponse) { + option (google.api.http) = { + get: "/v1alpha2/{parent=projects/*/locations/*}/repositories" + }; + option (google.api.method_signature) = "parent"; + } + + // Fetches a single Repository. + rpc GetRepository(GetRepositoryRequest) returns (Repository) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Repository in a given project and location. + rpc CreateRepository(CreateRepositoryRequest) returns (Repository) { + option (google.api.http) = { + post: "/v1alpha2/{parent=projects/*/locations/*}/repositories" + body: "repository" + }; + option (google.api.method_signature) = "parent,repository,repository_id"; + } + + // Updates a single Repository. + rpc UpdateRepository(UpdateRepositoryRequest) returns (Repository) { + option (google.api.http) = { + patch: "/v1alpha2/{repository.name=projects/*/locations/*/repositories/*}" + body: "repository" + }; + option (google.api.method_signature) = "repository,update_mask"; + } + + // Deletes a single Repository. + rpc DeleteRepository(DeleteRepositoryRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha2/{name=projects/*/locations/*/repositories/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Fetches a Repository's remote branches. + rpc FetchRemoteBranches(FetchRemoteBranchesRequest) returns (FetchRemoteBranchesResponse) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*}:fetchRemoteBranches" + }; + } + + // Lists Workspaces in a given Repository. + rpc ListWorkspaces(ListWorkspacesRequest) returns (ListWorkspacesResponse) { + option (google.api.http) = { + get: "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/workspaces" + }; + option (google.api.method_signature) = "parent"; + } + + // Fetches a single Workspace. + rpc GetWorkspace(GetWorkspaceRequest) returns (Workspace) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Workspace in a given Repository. + rpc CreateWorkspace(CreateWorkspaceRequest) returns (Workspace) { + option (google.api.http) = { + post: "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/workspaces" + body: "workspace" + }; + option (google.api.method_signature) = "parent,workspace,workspace_id"; + } + + // Deletes a single Workspace. + rpc DeleteWorkspace(DeleteWorkspaceRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Installs dependency NPM packages (inside a Workspace). + rpc InstallNpmPackages(InstallNpmPackagesRequest) returns (InstallNpmPackagesResponse) { + option (google.api.http) = { + post: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:installNpmPackages" + body: "*" + }; + } + + // Pulls Git commits from the Repository's remote into a Workspace. + rpc PullGitCommits(PullGitCommitsRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:pull" + body: "*" + }; + } + + // Pushes Git commits from a Workspace to the Repository's remote. + rpc PushGitCommits(PushGitCommitsRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:push" + body: "*" + }; + } + + // Fetches Git statuses for the files in a Workspace. + rpc FetchFileGitStatuses(FetchFileGitStatusesRequest) returns (FetchFileGitStatusesResponse) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileGitStatuses" + }; + } + + // Fetches Git ahead/behind against a remote branch. + rpc FetchGitAheadBehind(FetchGitAheadBehindRequest) returns (FetchGitAheadBehindResponse) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchGitAheadBehind" + }; + } + + // Applies a Git commit for uncommitted files in a Workspace. + rpc CommitWorkspaceChanges(CommitWorkspaceChangesRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:commit" + body: "*" + }; + } + + // Performs a Git reset for uncommitted files in a Workspace. + rpc ResetWorkspaceChanges(ResetWorkspaceChangesRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workspaces/*}:reset" + body: "*" + }; + } + + // Fetches Git diff for an uncommitted file in a Workspace. + rpc FetchFileDiff(FetchFileDiffRequest) returns (FetchFileDiffResponse) { + option (google.api.http) = { + get: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileDiff" + }; + } + + // Returns the contents of a given Workspace directory. + rpc QueryDirectoryContents(QueryDirectoryContentsRequest) returns (QueryDirectoryContentsResponse) { + option (google.api.http) = { + get: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:queryDirectoryContents" + }; + } + + // Creates a directory inside a Workspace. + rpc MakeDirectory(MakeDirectoryRequest) returns (MakeDirectoryResponse) { + option (google.api.http) = { + post: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:makeDirectory" + body: "*" + }; + } + + // Deletes a directory (inside a Workspace) and all of its contents. + rpc RemoveDirectory(RemoveDirectoryRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeDirectory" + body: "*" + }; + } + + // Moves a directory (inside a Workspace), and all of its contents, to a new + // location. + rpc MoveDirectory(MoveDirectoryRequest) returns (MoveDirectoryResponse) { + option (google.api.http) = { + post: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveDirectory" + body: "*" + }; + } + + // Returns the contents of a file (inside a Workspace). + rpc ReadFile(ReadFileRequest) returns (ReadFileResponse) { + option (google.api.http) = { + get: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:readFile" + }; + } + + // Deletes a file (inside a Workspace). + rpc RemoveFile(RemoveFileRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeFile" + body: "*" + }; + } + + // Moves a file (inside a Workspace) to a new location. + rpc MoveFile(MoveFileRequest) returns (MoveFileResponse) { + option (google.api.http) = { + post: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveFile" + body: "*" + }; + } + + // Writes to a file (inside a Workspace). + rpc WriteFile(WriteFileRequest) returns (WriteFileResponse) { + option (google.api.http) = { + post: "/v1alpha2/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:writeFile" + body: "*" + }; + } + + // Lists CompilationResults in a given Repository. + rpc ListCompilationResults(ListCompilationResultsRequest) returns (ListCompilationResultsResponse) { + option (google.api.http) = { + get: "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/compilationResults" + }; + option (google.api.method_signature) = "parent"; + } + + // Fetches a single CompilationResult. + rpc GetCompilationResult(GetCompilationResultRequest) returns (CompilationResult) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*/compilationResults/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new CompilationResult in a given project and location. + rpc CreateCompilationResult(CreateCompilationResultRequest) returns (CompilationResult) { + option (google.api.http) = { + post: "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/compilationResults" + body: "compilation_result" + }; + option (google.api.method_signature) = "parent,compilation_result"; + } + + // Returns CompilationResultActions in a given CompilationResult. + rpc QueryCompilationResultActions(QueryCompilationResultActionsRequest) returns (QueryCompilationResultActionsResponse) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*/compilationResults/*}:query" + }; + } + + // Lists WorkflowInvocations in a given Repository. + rpc ListWorkflowInvocations(ListWorkflowInvocationsRequest) returns (ListWorkflowInvocationsResponse) { + option (google.api.http) = { + get: "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/workflowInvocations" + }; + option (google.api.method_signature) = "parent"; + } + + // Fetches a single WorkflowInvocation. + rpc GetWorkflowInvocation(GetWorkflowInvocationRequest) returns (WorkflowInvocation) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new WorkflowInvocation in a given Repository. + rpc CreateWorkflowInvocation(CreateWorkflowInvocationRequest) returns (WorkflowInvocation) { + option (google.api.http) = { + post: "/v1alpha2/{parent=projects/*/locations/*/repositories/*}/workflowInvocations" + body: "workflow_invocation" + }; + option (google.api.method_signature) = "parent,workflow_invocation"; + } + + // Deletes a single WorkflowInvocation. + rpc DeleteWorkflowInvocation(DeleteWorkflowInvocationRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Requests cancellation of a running WorkflowInvocation. + rpc CancelWorkflowInvocation(CancelWorkflowInvocationRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:cancel" + body: "*" + }; + } + + // Returns WorkflowInvocationActions in a given WorkflowInvocation. + rpc QueryWorkflowInvocationActions(QueryWorkflowInvocationActionsRequest) returns (QueryWorkflowInvocationActionsResponse) { + option (google.api.http) = { + get: "/v1alpha2/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:query" + }; + } +} + +// Represents a Dataform Git repository. +message Repository { + option (google.api.resource) = { + type: "dataform.googleapis.com/Repository" + pattern: "projects/{project}/locations/{location}/repositories/{repository}" + }; + + // Controls Git remote configuration for a repository. + message GitRemoteSettings { + // Indicates the status of a Git authentication token. + enum TokenStatus { + // Default value. This value is unused. + TOKEN_STATUS_UNSPECIFIED = 0; + + // The token could not be found in Secret Manager (or the Dataform + // Service Account did not have permission to access it). + NOT_FOUND = 1; + + // The token could not be used to authenticate against the Git remote. + INVALID = 2; + + // The token was used successfully to authenticate against the Git remote. + VALID = 3; + } + + // Required. The Git remote's URL. + string url = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Git remote's default branch name. + string default_branch = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the Secret Manager secret version to use as an + // authentication token for Git operations. Must be in the format + // `projects/*/secrets/*/versions/*`. + string authentication_token_secret_version = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Output only. Indicates the status of the Git access token. + TokenStatus token_status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The repository's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. If set, configures this repository to be linked to a Git remote. + GitRemoteSettings git_remote_settings = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListRepositories` request message. +message ListRepositoriesRequest { + // Required. The location in which to list repositories. Must be in the format + // `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Maximum number of repositories to return. The server may return fewer + // items than requested. If unspecified, the server will pick an appropriate + // default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListRepositories` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListRepositories` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field only supports ordering by `name`. If unspecified, the server + // will choose the ordering. If specified, the default order is ascending for + // the `name` field. + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter for the returned list. + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListRepositories` response message. +message ListRepositoriesResponse { + // List of repositories. + repeated Repository repositories = 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; + + // Locations which could not be reached. + repeated string unreachable = 3; +} + +// `GetRepository` request message. +message GetRepositoryRequest { + // Required. The repository's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; +} + +// `CreateRepository` request message. +message CreateRepositoryRequest { + // Required. The location in which to create the repository. 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. The repository to create. + Repository repository = 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. + string repository_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `UpdateRepository` request message. +message UpdateRepositoryRequest { + // Optional. Specifies the fields to be updated in the repository. If left unset, + // all fields will be updated. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The repository to update. + Repository repository = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `DeleteRepository` request message. +message DeleteRepositoryRequest { + // Required. The repository's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // If set to true, any child resources of this repository will also be + // deleted. (Otherwise, the request will only succeed if the repository has no + // child resources.) + bool force = 2; +} + +// `FetchRemoteBranches` request message. +message FetchRemoteBranchesRequest { + // Required. The repository's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; +} + +// `FetchRemoteBranches` response message. +message FetchRemoteBranchesResponse { + // The remote repository's branch names. + repeated string branches = 1; +} + +// Represents a Dataform Git workspace. +message Workspace { + option (google.api.resource) = { + type: "dataform.googleapis.com/Workspace" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/workspaces/{workspace}" + }; + + // Output only. The workspace's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `ListWorkspaces` request message. +message ListWorkspacesRequest { + // Required. The repository in which to list workspaces. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Optional. Maximum number of workspaces to return. The server may return fewer + // items than requested. If unspecified, the server will pick an appropriate + // default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListWorkspaces` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListWorkspaces` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field only supports ordering by `name`. If unspecified, the server + // will choose the ordering. If specified, the default order is ascending for + // the `name` field. + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter for the returned list. + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListWorkspaces` response message. +message ListWorkspacesResponse { + // List of workspaces. + repeated Workspace workspaces = 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; + + // Locations which could not be reached. + repeated string unreachable = 3; +} + +// `GetWorkspace` request message. +message GetWorkspaceRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; +} + +// `CreateWorkspace` request message. +message CreateWorkspaceRequest { + // Required. The repository in which to create the workspace. Must be in the format + // `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Required. The workspace to create. + Workspace workspace = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the workspace, which will become the final component of + // the workspace's resource name. + string workspace_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `DeleteWorkspace` request message. +message DeleteWorkspaceRequest { + // Required. The workspace resource's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; +} + +// Represents the author of a Git commit. +message CommitAuthor { + // Required. The commit author's name. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The commit author's email address. + string email_address = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `PullGitCommits` request message. +message PullGitCommitsRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. The name of the branch in the Git remote from which to pull commits. + // If left unset, the repository's default branch name will be used. + string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The author of any merge commit which may be created as a result of merging + // fetched Git commits into this workspace. + CommitAuthor author = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `PushGitCommits` request message. +message PushGitCommitsRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. The name of the branch in the Git remote to which commits should be pushed. + // If left unset, the repository's default branch name will be used. + string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// `FetchFileGitStatuses` request message. +message FetchFileGitStatusesRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; +} + +// `FetchFileGitStatuses` response message. +message FetchFileGitStatusesResponse { + // Represents the Git state of a file with uncommitted changes. + message UncommittedFileChange { + // Indicates the status of an uncommitted file change. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The file has been newly added. + ADDED = 1; + + // The file has been deleted. + DELETED = 2; + + // The file has been modified. + MODIFIED = 3; + + // The file contains merge conflicts. + HAS_CONFLICTS = 4; + } + + // The file's full path including filename, relative to the workspace root. + string path = 1; + + // Indicates the status of the file. + State state = 2; + } + + // A list of all files which have uncommitted Git changes. There will only be + // a single entry for any given file. + repeated UncommittedFileChange uncommitted_file_changes = 1; +} + +// `FetchGitAheadBehind` request message. +message FetchGitAheadBehindRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. The name of the branch in the Git remote against which this workspace + // should be compared. If left unset, the repository's default branch name + // will be used. + string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// `FetchGitAheadBehind` response message. +message FetchGitAheadBehindResponse { + // The number of commits in the remote branch that are not in the workspace. + int32 commits_ahead = 1; + + // The number of commits in the workspace that are not in the remote branch. + int32 commits_behind = 2; +} + +// `CommitWorkspaceChanges` request message. +message CommitWorkspaceChangesRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The commit's author. + CommitAuthor author = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The commit's message. + string commit_message = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Full file paths to commit including filename, rooted at workspace root. If + // left empty, all files will be committed. + repeated string paths = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ResetWorkspaceChanges` request message. +message ResetWorkspaceChangesRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. Full file paths to reset back to their committed state including filename, + // rooted at workspace root. If left empty, all files will be reset. + repeated string paths = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, untracked files will be deleted. + bool clean = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `FetchFileDiff` request message. +message FetchFileDiffRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file's full path including filename, relative to the workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `FetchFileDiff` response message. +message FetchFileDiffResponse { + // The raw formatted Git diff for the file. + string formatted_diff = 1; +} + +// `QueryDirectoryContents` request message. +message QueryDirectoryContentsRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. The directory's full path including directory name, relative to the + // workspace root. If left unset, the workspace root is used. + string path = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of paths to return. The server may return fewer + // items than requested. If unspecified, the server will pick an appropriate + // default. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `QueryDirectoryContents` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `QueryDirectoryContents` must match the call that provided the page + // token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// `QueryDirectoryContents` response message. +message QueryDirectoryContentsResponse { + // Represents a single entry in a workspace directory. + message DirectoryEntry { + oneof entry { + // A file in the directory. + string file = 1; + + // A child directory in the directory. + string directory = 2; + } + } + + // List of entries in the directory. + repeated DirectoryEntry directory_entries = 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; +} + +// `MakeDirectory` request message. +message MakeDirectoryRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The directory's full path including directory name, relative to the + // workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `MakeDirectory` response message. +message MakeDirectoryResponse { + +} + +// `RemoveDirectory` request message. +message RemoveDirectoryRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The directory's full path including directory name, relative to the + // workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `MoveDirectory` request message. +message MoveDirectoryRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The directory's full path including directory name, relative to the + // workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The new path for the directory including directory name, rooted at + // workspace root. + string new_path = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `MoveDirectory` response message. +message MoveDirectoryResponse { + +} + +// `ReadFile` request message. +message ReadFileRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file's full path including filename, relative to the workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `ReadFile` response message. +message ReadFileResponse { + // The file's contents. + bytes file_contents = 1; +} + +// `RemoveFile` request message. +message RemoveFileRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file's full path including filename, relative to the workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `MoveFile` request message. +message MoveFileRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file's full path including filename, relative to the workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The file's new path including filename, relative to the workspace root. + string new_path = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `MoveFile` response message. +message MoveFileResponse { + +} + +// `WriteFile` request message. +message WriteFileRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file. + string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The file's contents. + bytes contents = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `WriteFile` response message. +message WriteFileResponse { + +} + +// `InstallNpmPackages` request message. +message InstallNpmPackagesRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; +} + +// `InstallNpmPackages` response message. +message InstallNpmPackagesResponse { + +} + +// Represents the result of compiling a Dataform project. +message CompilationResult { + option (google.api.resource) = { + type: "dataform.googleapis.com/CompilationResult" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}" + }; + + // Configures various aspects of Dataform code compilation. + message CodeCompilationConfig { + // Optional. The default database (Google Cloud project ID). + string default_database = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default schema (BigQuery dataset ID). + string default_schema = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default BigQuery location to use. Defaults to "US". + // See the BigQuery docs for a full list of locations: + // https://cloud.google.com/bigquery/docs/locations. + string default_location = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default schema (BigQuery dataset ID) for assertions. + string assertion_schema = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined variables that are made available to project code during + // compilation. + map vars = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The suffix that should be appended to all database (Google Cloud project + // ID) names. + string database_suffix = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The suffix that should be appended to all schema (BigQuery dataset ID) + // names. + string schema_suffix = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The prefix that should be prepended to all table names. + string table_prefix = 7 [(google.api.field_behavior) = OPTIONAL]; + } + + // An error encountered when attempting to compile a Dataform project. + message CompilationError { + // Output only. The error's top level message. + string message = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The error's full stack trace. + string stack = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The path of the file where this error occurred, if available, relative to + // the project root. + string path = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The identifier of the action where this error occurred, if available. + Target action_target = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The compilation result's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + oneof source { + // Immutable. Git commit/tag/branch name at which the repository should be compiled. + // Must exist in the remote repository. + // Examples: + // - a commit SHA: `12ade345` + // - a tag: `tag1` + // - a branch name: `branch1` + string git_commitish = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The name of the workspace to compile. Must be in the format + // `projects/*/locations/*/repositories/*/workspaces/*`. + string workspace = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + } + + // Immutable. If set, fields of `code_compilation_overrides` override the default + // compilation settings that are specified in dataform.json. + CodeCompilationConfig code_compilation_config = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The version of `@dataform/core` that was used for compilation. + string dataform_core_version = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Errors encountered during project compilation. + repeated CompilationError compilation_errors = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `ListCompilationResults` request message. +message ListCompilationResultsRequest { + // Required. The repository in which to list compilation results. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Optional. Maximum number of compilation results to return. The server may return + // fewer items than requested. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListCompilationResults` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCompilationResults` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListCompilationResults` response message. +message ListCompilationResultsResponse { + // List of compilation results. + repeated CompilationResult compilation_results = 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; + + // Locations which could not be reached. + repeated string unreachable = 3; +} + +// `GetCompilationResult` request message. +message GetCompilationResultRequest { + // Required. The compilation result's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/CompilationResult" + } + ]; +} + +// `CreateCompilationResult` request message. +message CreateCompilationResultRequest { + // Required. The repository in which to create the compilation result. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Required. The compilation result to create. + CompilationResult compilation_result = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents an action identifier. If the action writes output, the output +// will be written to the referenced database object. +message Target { + // The action's database (Google Cloud project ID) . + string database = 1; + + // The action's schema (BigQuery dataset ID), within `database`. + string schema = 2; + + // The action's name, within `database` and `schema`. + string name = 3; +} + +// Describes a relation and its columns. +message RelationDescriptor { + // Describes a column. + message ColumnDescriptor { + // The identifier for the column. Each entry in `path` represents one level + // of nesting. + repeated string path = 1; + + // A textual description of the column. + string description = 2; + + // A list of BigQuery policy tags that will be applied to the column. + repeated string bigquery_policy_tags = 3; + } + + // A text description of the relation. + string description = 1; + + // A list of descriptions of columns within the relation. + repeated ColumnDescriptor columns = 2; + + // A set of BigQuery labels that should be applied to the relation. + map bigquery_labels = 3; +} + +// Represents a single Dataform action in a compilation result. +message CompilationResultAction { + // Represents a database relation. + message Relation { + // Indicates the type of this relation. + enum RelationType { + // Default value. This value is unused. + RELATION_TYPE_UNSPECIFIED = 0; + + // The relation is a table. + TABLE = 1; + + // The relation is a view. + VIEW = 2; + + // The relation is an incrementalized table. + INCREMENTAL_TABLE = 3; + + // The relation is a materialized view. + MATERIALIZED_VIEW = 4; + } + + // Contains settings for relations of type `INCREMENTAL_TABLE`. + message IncrementalTableConfig { + // The SELECT query which returns rows which should be inserted into the + // relation if it already exists and is not being refreshed. + string incremental_select_query = 1; + + // Whether this table should be protected from being refreshed. + bool refresh_disabled = 2; + + // A set of columns or SQL expressions used to define row uniqueness. + // If any duplicates are discovered (as defined by `unique_key_parts`), + // only the newly selected rows (as defined by `incremental_select_query`) + // will be included in the relation. + repeated string unique_key_parts = 3; + + // A SQL expression conditional used to limit the set of existing rows + // considered for a merge operation (see `unique_key_parts` for more + // information). + string update_partition_filter = 4; + + // SQL statements to be executed before inserting new rows into the + // relation. + repeated string incremental_pre_operations = 5; + + // SQL statements to be executed after inserting new rows into the + // relation. + repeated string incremental_post_operations = 6; + } + + // A list of actions that this action depends on. + repeated Target dependency_targets = 1; + + // Whether this action is disabled (i.e. should not be run). + bool disabled = 2; + + // Arbitrary, user-defined tags on this action. + repeated string tags = 3; + + // Descriptor for the relation and its columns. + RelationDescriptor relation_descriptor = 4; + + // The type of this relation. + RelationType relation_type = 5; + + // The SELECT query which returns rows which this relation should contain. + string select_query = 6; + + // SQL statements to be executed before creating the relation. + repeated string pre_operations = 7; + + // SQL statements to be executed after creating the relation. + repeated string post_operations = 8; + + // Configures `INCREMENTAL_TABLE` settings for this relation. Only set if + // `relation_type` is `INCREMENTAL_TABLE`. + IncrementalTableConfig incremental_table_config = 9; + + // The SQL expression used to partition the relation. + string partition_expression = 10; + + // A list of columns or SQL expressions used to cluster the table. + repeated string cluster_expressions = 11; + + // Sets the partition expiration in days. + int32 partition_expiration_days = 12; + + // Specifies whether queries on this table must include a predicate filter + // that filters on the partitioning column. + bool require_partition_filter = 13; + + // Additional options that will be provided as key/value pairs into the + // options clause of a create table/view statement. See + // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language + // for more information on which options are supported. + map additional_options = 14; + } + + // Represents a list of arbitrary database operations. + message Operations { + // A list of actions that this action depends on. + repeated Target dependency_targets = 1; + + // Whether this action is disabled (i.e. should not be run). + bool disabled = 2; + + // Arbitrary, user-defined tags on this action. + repeated string tags = 3; + + // Descriptor for any output relation and its columns. Only set if + // `has_output` is true. + RelationDescriptor relation_descriptor = 6; + + // A list of arbitrary SQL statements that will be executed without + // alteration. + repeated string queries = 4; + + // Whether these operations produce an output relation. + bool has_output = 5; + } + + // Represents an assertion upon a SQL query which is required return zero + // rows. + message Assertion { + // A list of actions that this action depends on. + repeated Target dependency_targets = 1; + + // The parent action of this assertion. Only set if this assertion was + // automatically generated. + Target parent_action = 5; + + // Whether this action is disabled (i.e. should not be run). + bool disabled = 2; + + // Arbitrary, user-defined tags on this action. + repeated string tags = 3; + + // The SELECT query which must return zero rows in order for this assertion + // to succeed. + string select_query = 4; + + // Descriptor for the assertion's automatically-generated view and its + // columns. + RelationDescriptor relation_descriptor = 6; + } + + // Represents a relation which is not managed by Dataform but which may be + // referenced by Dataform actions. + message Declaration { + // Descriptor for the relation and its columns. Used as documentation only, + // i.e. values here will result in no changes to the relation's metadata. + RelationDescriptor relation_descriptor = 1; + } + + // This action's identifier. Unique within the compilation result. + Target target = 1; + + // The action's identifier if the project had been compiled without any + // overrides configured. Unique within the compilation result. + Target canonical_target = 2; + + // The full path including filename in which this action is located, relative + // to the workspace root. + string file_path = 3; + + oneof compiled_object { + // The database relation created/updated by this action. + Relation relation = 4; + + // The database operations executed by this action. + Operations operations = 5; + + // The assertion executed by this action. + Assertion assertion = 6; + + // The declaration declared by this action. + Declaration declaration = 7; + } +} + +// `QueryCompilationResultActions` request message. +message QueryCompilationResultActionsRequest { + // Required. The compilation result's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/CompilationResult" + } + ]; + + // Optional. Maximum number of compilation results to return. The server may return + // fewer items than requested. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `QueryCompilationResultActions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `QueryCompilationResultActions` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional filter for the returned list. Filtering is only currently + // supported on the `file_path` field. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// `QueryCompilationResultActions` response message. +message QueryCompilationResultActionsResponse { + // List of compilation result actions. + repeated CompilationResultAction compilation_result_actions = 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 single invocation of a compilation result. +message WorkflowInvocation { + option (google.api.resource) = { + type: "dataform.googleapis.com/WorkflowInvocation" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}" + }; + + // Includes various configuration options for this workflow invocation. + // If both `included_targets` and `included_tags` are unset, all actions + // will be included. + message InvocationConfig { + // Immutable. The set of action identifiers to include. + repeated Target included_targets = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The set of tags to include. + repeated string included_tags = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. When set to true, transitive dependencies of included actions will be + // executed. + bool transitive_dependencies_included = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. When set to true, transitive dependents of included actions will be + // executed. + bool transitive_dependents_included = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. When set to true, any incremental tables will be fully refreshed. + bool fully_refresh_incremental_tables_enabled = 5 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Represents the current state of a workflow invocation. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The workflow invocation is currently running. + RUNNING = 1; + + // The workflow invocation succeeded. A terminal state. + SUCCEEDED = 2; + + // The workflow invocation was cancelled. A terminal state. + CANCELLED = 3; + + // The workflow invocation failed. A terminal state. + FAILED = 4; + + // The workflow invocation is being cancelled, but some actions are still + // running. + CANCELING = 5; + } + + // Output only. The workflow invocation's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The name of the compilation result to compile. Must be in the format + // `projects/*/locations/*/repositories/*/compilationResults/*`. + string compilation_result = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/CompilationResult" + } + ]; + + // Immutable. If left unset, a default InvocationConfig will be used. + InvocationConfig invocation_config = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. This workflow invocation's current state. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This workflow invocation's timing details. + google.type.Interval invocation_timing = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `ListWorkflowInvocations` request message. +message ListWorkflowInvocationsRequest { + // Required. The parent resource of the WorkflowInvocation type. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Optional. Maximum number of workflow invocations to return. The server may return + // fewer items than requested. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListWorkflowInvocations` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListWorkflowInvocations` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListWorkflowInvocations` response message. +message ListWorkflowInvocationsResponse { + // List of workflow invocations. + repeated WorkflowInvocation workflow_invocations = 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; + + // Locations which could not be reached. + repeated string unreachable = 3; +} + +// `GetWorkflowInvocation` request message. +message GetWorkflowInvocationRequest { + // Required. The workflow invocation resource's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/WorkflowInvocation" + } + ]; +} + +// `CreateWorkflowInvocation` request message. +message CreateWorkflowInvocationRequest { + // Required. The parent resource of the WorkflowInvocation type. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Required. The workflow invocation resource to create. + WorkflowInvocation workflow_invocation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `DeleteWorkflowInvocation` request message. +message DeleteWorkflowInvocationRequest { + // Required. The workflow invocation resource's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/WorkflowInvocation" + } + ]; +} + +// `CancelWorkflowInvocation` request message. +message CancelWorkflowInvocationRequest { + // Required. The workflow invocation resource's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/WorkflowInvocation" + } + ]; +} + +// Represents a single action in a workflow invocation. +message WorkflowInvocationAction { + // Represents the current state of an workflow invocation action. + enum State { + // The action has not yet been considered for invocation. + PENDING = 0; + + // The action is currently running. + RUNNING = 1; + + // Execution of the action was skipped because upstream dependencies did not + // all complete successfully. A terminal state. + SKIPPED = 2; + + // Execution of the action was disabled as per the configuration of the + // corresponding compilation result action. A terminal state. + DISABLED = 3; + + // The action succeeded. A terminal state. + SUCCEEDED = 4; + + // The action was cancelled. A terminal state. + CANCELLED = 5; + + // The action failed. A terminal state. + FAILED = 6; + } + + // Represents a workflow action that will run against BigQuery. + message BigQueryAction { + // Output only. The generated BigQuery SQL script that will be executed. + string sql_script = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. This action's identifier. Unique within the workflow invocation. + Target target = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The action's identifier if the project had been compiled without any + // overrides configured. Unique within the compilation result. + Target canonical_target = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This action's current state. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If and only if action's state is FAILED a failure reason is set. + string failure_reason = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This action's timing details. + // `start_time` will be set if the action is in [RUNNING, SUCCEEDED, + // CANCELLED, FAILED] state. + // `end_time` will be set if the action is in [SUCCEEDED, CANCELLED, FAILED] + // state. + google.type.Interval invocation_timing = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The workflow action's bigquery action details. + BigQueryAction bigquery_action = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `QueryWorkflowInvocationActions` request message. +message QueryWorkflowInvocationActionsRequest { + // Required. The workflow invocation's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/WorkflowInvocation" + } + ]; + + // Optional. Maximum number of workflow invocations to return. The server may return + // fewer items than requested. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `QueryWorkflowInvocationActions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `QueryWorkflowInvocationActions` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `QueryWorkflowInvocationActions` response message. +message QueryWorkflowInvocationActionsResponse { + // List of workflow invocation actions. + repeated WorkflowInvocationAction workflow_invocation_actions = 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/google/cloud/dataform/v1alpha2/dataform_grpc_service_config.json b/google/cloud/dataform/v1alpha2/dataform_grpc_service_config.json new file mode 100644 index 000000000..db9335540 --- /dev/null +++ b/google/cloud/dataform/v1alpha2/dataform_grpc_service_config.json @@ -0,0 +1,26 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "ListRepositories" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "GetRepository" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "ListWorkspaces" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "GetWorkspace" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "ListCompilationResults" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "GetCompilationResult" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "CreateCompilationResult" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "QueryCompilationResultActions" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "CreateWorkflowInvocation" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "CancelWorkflowInvocation" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "ListWorkflowInvocations" }, + { "service": "google.cloud.dataform.v1alpha2.DataformService", "method": "GetWorkflowInvocation" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/google/cloud/dataform/v1alpha2/dataform_v1alpha2.yaml b/google/cloud/dataform/v1alpha2/dataform_v1alpha2.yaml new file mode 100644 index 000000000..269406b55 --- /dev/null +++ b/google/cloud/dataform/v1alpha2/dataform_v1alpha2.yaml @@ -0,0 +1,95 @@ +type: google.api.Service +config_version: 3 +name: dataform.googleapis.com +title: Dataform API + +apis: +- name: google.cloud.dataform.v1alpha2.Dataform +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy + +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. + +backend: + rules: + - selector: 'google.cloud.dataform.v1alpha2.Dataform.*' + 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 + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1alpha2/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1alpha2/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v1alpha2/{resource=projects/*/locations/*/repositories/*}:getIamPolicy' + additional_bindings: + - get: '/v1alpha2/{resource=projects/*/locations/*/repositories/*/workspaces/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1alpha2/{resource=projects/*/locations/*/repositories/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1alpha2/{resource=projects/*/locations/*/repositories/*/workspaces/*}:setIamPolicy' + body: '*' + - post: '/v1alpha2/{resource=projects/*/locations/*/repositories/*/compilationResults/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1alpha2/{resource=projects/*/locations/*/repositories/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1alpha2/{resource=projects/*/locations/*/repositories/*/workspaces/*}:testIamPermissions' + body: '*' + +authentication: + rules: + - selector: 'google.cloud.dataform.v1alpha2.Dataform.*' + 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 diff --git a/google/cloud/dataform/v1beta1/BUILD.bazel b/google/cloud/dataform/v1beta1/BUILD.bazel new file mode 100644 index 000000000..991266415 --- /dev/null +++ b/google/cloud/dataform/v1beta1/BUILD.bazel @@ -0,0 +1,370 @@ +# 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 = "dataform_proto", + srcs = [ + "dataform.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//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + ], +) + +proto_library_with_info( + name = "dataform_proto_with_info", + deps = [ + ":dataform_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "dataform_java_proto", + deps = [":dataform_proto"], +) + +java_grpc_library( + name = "dataform_java_grpc", + srcs = [":dataform_proto"], + deps = [":dataform_java_proto"], +) + +java_gapic_library( + name = "dataform_java_gapic", + srcs = [":dataform_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1beta1.yaml", + test_deps = [ + ":dataform_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":dataform_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "dataform_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.dataform.v1beta1.DataformClientHttpJsonTest", + "com.google.cloud.dataform.v1beta1.DataformClientTest", + ], + runtime_deps = [":dataform_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-dataform-v1beta1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":dataform_java_gapic", + ":dataform_java_grpc", + ":dataform_java_proto", + ":dataform_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "dataform_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/dataform/v1beta1", + protos = [":dataform_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/type:interval_go_proto", + ], +) + +go_gapic_library( + name = "dataform_go_gapic", + srcs = [":dataform_proto_with_info"], + grpc_service_config = "dataform_grpc_service_config.json", + importpath = "cloud.google.com/go/dataform/apiv1beta1;dataform", + metadata = True, + service_yaml = "dataform_v1beta1.yaml", + transport = "grpc+rest", + deps = [ + ":dataform_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_test( + name = "dataform_go_gapic_test", + srcs = [":dataform_go_gapic_srcjar_test"], + embed = [":dataform_go_gapic"], + importpath = "cloud.google.com/go/dataform/apiv1beta1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-dataform-v1beta1-go", + deps = [ + ":dataform_go_gapic", + ":dataform_go_gapic_srcjar-metadata.srcjar", + ":dataform_go_gapic_srcjar-test.srcjar", + ":dataform_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", +) + +py_gapic_library( + name = "dataform_py_gapic", + srcs = [":dataform_proto"], + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1beta1.yaml", + transport = "grpc", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "dataform-v1beta1-py", + deps = [ + ":dataform_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "dataform_php_proto", + deps = [":dataform_proto"], +) + +php_grpc_library( + name = "dataform_php_grpc", + srcs = [":dataform_proto"], + deps = [":dataform_php_proto"], +) + +php_gapic_library( + name = "dataform_php_gapic", + srcs = [":dataform_proto_with_info"], + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1beta1.yaml", + deps = [ + ":dataform_php_grpc", + ":dataform_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-dataform-v1beta1-php", + deps = [ + ":dataform_php_gapic", + ":dataform_php_grpc", + ":dataform_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "dataform_nodejs_gapic", + package_name = "@google-cloud/dataform", + src = ":dataform_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "dataform_grpc_service_config.json", + package = "google.cloud.dataform.v1beta1", + service_yaml = "dataform_v1beta1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "dataform-v1beta1-nodejs", + deps = [ + ":dataform_nodejs_gapic", + ":dataform_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 = "dataform_ruby_proto", + deps = [":dataform_proto"], +) + +ruby_grpc_library( + name = "dataform_ruby_grpc", + srcs = [":dataform_proto"], + deps = [":dataform_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "dataform_ruby_gapic", + srcs = [":dataform_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-dataform-v1beta1"], + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1beta1.yaml", + deps = [ + ":dataform_ruby_grpc", + ":dataform_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-dataform-v1beta1-ruby", + deps = [ + ":dataform_ruby_gapic", + ":dataform_ruby_grpc", + ":dataform_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 = "dataform_csharp_proto", + deps = [":dataform_proto"], +) + +csharp_grpc_library( + name = "dataform_csharp_grpc", + srcs = [":dataform_proto"], + deps = [":dataform_csharp_proto"], +) + +csharp_gapic_library( + name = "dataform_csharp_gapic", + srcs = [":dataform_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "dataform_grpc_service_config.json", + service_yaml = "dataform_v1beta1.yaml", + deps = [ + ":dataform_csharp_grpc", + ":dataform_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-dataform-v1beta1-csharp", + deps = [ + ":dataform_csharp_gapic", + ":dataform_csharp_grpc", + ":dataform_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "dataform_cc_proto", + deps = [":dataform_proto"], +) + +cc_grpc_library( + name = "dataform_cc_grpc", + srcs = [":dataform_proto"], + grpc_only = True, + deps = [":dataform_cc_proto"], +) diff --git a/google/cloud/dataform/v1beta1/dataform.proto b/google/cloud/dataform/v1beta1/dataform.proto new file mode 100644 index 000000000..57d43c3e0 --- /dev/null +++ b/google/cloud/dataform/v1beta1/dataform.proto @@ -0,0 +1,1629 @@ +// 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.cloud.dataform.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/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/type/interval.proto"; + +option csharp_namespace = "Google.Cloud.Dataform.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/dataform/v1beta1;dataform"; +option java_multiple_files = true; +option java_outer_classname = "DataformProto"; +option java_package = "com.google.cloud.dataform.v1beta1"; +option php_namespace = "Google\\Cloud\\Dataform\\V1beta1"; +option ruby_package = "Google::Cloud::Dataform::V1beta1"; +option (google.api.resource_definition) = { + type: "secretmanager.googleapis.com/SecretVersion" + pattern: "projects/{project}/secrets/{secret}/versions/{version}" +}; + +// Dataform is a service to develop, create, document, test, and update curated +// tables in BigQuery. +service Dataform { + option (google.api.default_host) = "dataform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Lists Repositories in a given project and location. + rpc ListRepositories(ListRepositoriesRequest) returns (ListRepositoriesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/repositories" + }; + option (google.api.method_signature) = "parent"; + } + + // Fetches a single Repository. + rpc GetRepository(GetRepositoryRequest) returns (Repository) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Repository in a given project and location. + rpc CreateRepository(CreateRepositoryRequest) returns (Repository) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/repositories" + body: "repository" + }; + option (google.api.method_signature) = "parent,repository,repository_id"; + } + + // Updates a single Repository. + rpc UpdateRepository(UpdateRepositoryRequest) returns (Repository) { + option (google.api.http) = { + patch: "/v1beta1/{repository.name=projects/*/locations/*/repositories/*}" + body: "repository" + }; + option (google.api.method_signature) = "repository,update_mask"; + } + + // Deletes a single Repository. + rpc DeleteRepository(DeleteRepositoryRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/repositories/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Fetches a Repository's remote branches. + rpc FetchRemoteBranches(FetchRemoteBranchesRequest) returns (FetchRemoteBranchesResponse) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*}:fetchRemoteBranches" + }; + } + + // Lists Workspaces in a given Repository. + rpc ListWorkspaces(ListWorkspacesRequest) returns (ListWorkspacesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workspaces" + }; + option (google.api.method_signature) = "parent"; + } + + // Fetches a single Workspace. + rpc GetWorkspace(GetWorkspaceRequest) returns (Workspace) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Workspace in a given Repository. + rpc CreateWorkspace(CreateWorkspaceRequest) returns (Workspace) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workspaces" + body: "workspace" + }; + option (google.api.method_signature) = "parent,workspace,workspace_id"; + } + + // Deletes a single Workspace. + rpc DeleteWorkspace(DeleteWorkspaceRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Installs dependency NPM packages (inside a Workspace). + rpc InstallNpmPackages(InstallNpmPackagesRequest) returns (InstallNpmPackagesResponse) { + option (google.api.http) = { + post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:installNpmPackages" + body: "*" + }; + } + + // Pulls Git commits from the Repository's remote into a Workspace. + rpc PullGitCommits(PullGitCommitsRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:pull" + body: "*" + }; + } + + // Pushes Git commits from a Workspace to the Repository's remote. + rpc PushGitCommits(PushGitCommitsRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:push" + body: "*" + }; + } + + // Fetches Git statuses for the files in a Workspace. + rpc FetchFileGitStatuses(FetchFileGitStatusesRequest) returns (FetchFileGitStatusesResponse) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileGitStatuses" + }; + } + + // Fetches Git ahead/behind against a remote branch. + rpc FetchGitAheadBehind(FetchGitAheadBehindRequest) returns (FetchGitAheadBehindResponse) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchGitAheadBehind" + }; + } + + // Applies a Git commit for uncommitted files in a Workspace. + rpc CommitWorkspaceChanges(CommitWorkspaceChangesRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:commit" + body: "*" + }; + } + + // Performs a Git reset for uncommitted files in a Workspace. + rpc ResetWorkspaceChanges(ResetWorkspaceChangesRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:reset" + body: "*" + }; + } + + // Fetches Git diff for an uncommitted file in a Workspace. + rpc FetchFileDiff(FetchFileDiffRequest) returns (FetchFileDiffResponse) { + option (google.api.http) = { + get: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileDiff" + }; + } + + // Returns the contents of a given Workspace directory. + rpc QueryDirectoryContents(QueryDirectoryContentsRequest) returns (QueryDirectoryContentsResponse) { + option (google.api.http) = { + get: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:queryDirectoryContents" + }; + } + + // Creates a directory inside a Workspace. + rpc MakeDirectory(MakeDirectoryRequest) returns (MakeDirectoryResponse) { + option (google.api.http) = { + post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:makeDirectory" + body: "*" + }; + } + + // Deletes a directory (inside a Workspace) and all of its contents. + rpc RemoveDirectory(RemoveDirectoryRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeDirectory" + body: "*" + }; + } + + // Moves a directory (inside a Workspace), and all of its contents, to a new + // location. + rpc MoveDirectory(MoveDirectoryRequest) returns (MoveDirectoryResponse) { + option (google.api.http) = { + post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveDirectory" + body: "*" + }; + } + + // Returns the contents of a file (inside a Workspace). + rpc ReadFile(ReadFileRequest) returns (ReadFileResponse) { + option (google.api.http) = { + get: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:readFile" + }; + } + + // Deletes a file (inside a Workspace). + rpc RemoveFile(RemoveFileRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeFile" + body: "*" + }; + } + + // Moves a file (inside a Workspace) to a new location. + rpc MoveFile(MoveFileRequest) returns (MoveFileResponse) { + option (google.api.http) = { + post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveFile" + body: "*" + }; + } + + // Writes to a file (inside a Workspace). + rpc WriteFile(WriteFileRequest) returns (WriteFileResponse) { + option (google.api.http) = { + post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:writeFile" + body: "*" + }; + } + + // Lists CompilationResults in a given Repository. + rpc ListCompilationResults(ListCompilationResultsRequest) returns (ListCompilationResultsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/compilationResults" + }; + option (google.api.method_signature) = "parent"; + } + + // Fetches a single CompilationResult. + rpc GetCompilationResult(GetCompilationResultRequest) returns (CompilationResult) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*/compilationResults/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new CompilationResult in a given project and location. + rpc CreateCompilationResult(CreateCompilationResultRequest) returns (CompilationResult) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/compilationResults" + body: "compilation_result" + }; + option (google.api.method_signature) = "parent,compilation_result"; + } + + // Returns CompilationResultActions in a given CompilationResult. + rpc QueryCompilationResultActions(QueryCompilationResultActionsRequest) returns (QueryCompilationResultActionsResponse) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*/compilationResults/*}:query" + }; + } + + // Lists WorkflowInvocations in a given Repository. + rpc ListWorkflowInvocations(ListWorkflowInvocationsRequest) returns (ListWorkflowInvocationsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowInvocations" + }; + option (google.api.method_signature) = "parent"; + } + + // Fetches a single WorkflowInvocation. + rpc GetWorkflowInvocation(GetWorkflowInvocationRequest) returns (WorkflowInvocation) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new WorkflowInvocation in a given Repository. + rpc CreateWorkflowInvocation(CreateWorkflowInvocationRequest) returns (WorkflowInvocation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowInvocations" + body: "workflow_invocation" + }; + option (google.api.method_signature) = "parent,workflow_invocation"; + } + + // Deletes a single WorkflowInvocation. + rpc DeleteWorkflowInvocation(DeleteWorkflowInvocationRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Requests cancellation of a running WorkflowInvocation. + rpc CancelWorkflowInvocation(CancelWorkflowInvocationRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:cancel" + body: "*" + }; + } + + // Returns WorkflowInvocationActions in a given WorkflowInvocation. + rpc QueryWorkflowInvocationActions(QueryWorkflowInvocationActionsRequest) returns (QueryWorkflowInvocationActionsResponse) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:query" + }; + } +} + +// Represents a Dataform Git repository. +message Repository { + option (google.api.resource) = { + type: "dataform.googleapis.com/Repository" + pattern: "projects/{project}/locations/{location}/repositories/{repository}" + }; + + // Controls Git remote configuration for a repository. + message GitRemoteSettings { + // Indicates the status of a Git authentication token. + enum TokenStatus { + // Default value. This value is unused. + TOKEN_STATUS_UNSPECIFIED = 0; + + // The token could not be found in Secret Manager (or the Dataform + // Service Account did not have permission to access it). + NOT_FOUND = 1; + + // The token could not be used to authenticate against the Git remote. + INVALID = 2; + + // The token was used successfully to authenticate against the Git remote. + VALID = 3; + } + + // Required. The Git remote's URL. + string url = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Git remote's default branch name. + string default_branch = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the Secret Manager secret version to use as an + // authentication token for Git operations. Must be in the format + // `projects/*/secrets/*/versions/*`. + string authentication_token_secret_version = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Output only. Indicates the status of the Git access token. + TokenStatus token_status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The repository's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. If set, configures this repository to be linked to a Git remote. + GitRemoteSettings git_remote_settings = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListRepositories` request message. +message ListRepositoriesRequest { + // Required. The location in which to list repositories. Must be in the format + // `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Maximum number of repositories to return. The server may return fewer + // items than requested. If unspecified, the server will pick an appropriate + // default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListRepositories` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListRepositories` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field only supports ordering by `name`. If unspecified, the server + // will choose the ordering. If specified, the default order is ascending for + // the `name` field. + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter for the returned list. + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListRepositories` response message. +message ListRepositoriesResponse { + // List of repositories. + repeated Repository repositories = 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; + + // Locations which could not be reached. + repeated string unreachable = 3; +} + +// `GetRepository` request message. +message GetRepositoryRequest { + // Required. The repository's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; +} + +// `CreateRepository` request message. +message CreateRepositoryRequest { + // Required. The location in which to create the repository. 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. The repository to create. + Repository repository = 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. + string repository_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `UpdateRepository` request message. +message UpdateRepositoryRequest { + // Optional. Specifies the fields to be updated in the repository. If left unset, + // all fields will be updated. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The repository to update. + Repository repository = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `DeleteRepository` request message. +message DeleteRepositoryRequest { + // Required. The repository's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // If set to true, any child resources of this repository will also be + // deleted. (Otherwise, the request will only succeed if the repository has no + // child resources.) + bool force = 2; +} + +// `FetchRemoteBranches` request message. +message FetchRemoteBranchesRequest { + // Required. The repository's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; +} + +// `FetchRemoteBranches` response message. +message FetchRemoteBranchesResponse { + // The remote repository's branch names. + repeated string branches = 1; +} + +// Represents a Dataform Git workspace. +message Workspace { + option (google.api.resource) = { + type: "dataform.googleapis.com/Workspace" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/workspaces/{workspace}" + }; + + // Output only. The workspace's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `ListWorkspaces` request message. +message ListWorkspacesRequest { + // Required. The repository in which to list workspaces. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Optional. Maximum number of workspaces to return. The server may return fewer + // items than requested. If unspecified, the server will pick an appropriate + // default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListWorkspaces` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListWorkspaces` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field only supports ordering by `name`. If unspecified, the server + // will choose the ordering. If specified, the default order is ascending for + // the `name` field. + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter for the returned list. + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListWorkspaces` response message. +message ListWorkspacesResponse { + // List of workspaces. + repeated Workspace workspaces = 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; + + // Locations which could not be reached. + repeated string unreachable = 3; +} + +// `GetWorkspace` request message. +message GetWorkspaceRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; +} + +// `CreateWorkspace` request message. +message CreateWorkspaceRequest { + // Required. The repository in which to create the workspace. Must be in the format + // `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Required. The workspace to create. + Workspace workspace = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the workspace, which will become the final component of + // the workspace's resource name. + string workspace_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `DeleteWorkspace` request message. +message DeleteWorkspaceRequest { + // Required. The workspace resource's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; +} + +// Represents the author of a Git commit. +message CommitAuthor { + // Required. The commit author's name. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The commit author's email address. + string email_address = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `PullGitCommits` request message. +message PullGitCommitsRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. The name of the branch in the Git remote from which to pull commits. + // If left unset, the repository's default branch name will be used. + string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The author of any merge commit which may be created as a result of merging + // fetched Git commits into this workspace. + CommitAuthor author = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `PushGitCommits` request message. +message PushGitCommitsRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. The name of the branch in the Git remote to which commits should be pushed. + // If left unset, the repository's default branch name will be used. + string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// `FetchFileGitStatuses` request message. +message FetchFileGitStatusesRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; +} + +// `FetchFileGitStatuses` response message. +message FetchFileGitStatusesResponse { + // Represents the Git state of a file with uncommitted changes. + message UncommittedFileChange { + // Indicates the status of an uncommitted file change. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The file has been newly added. + ADDED = 1; + + // The file has been deleted. + DELETED = 2; + + // The file has been modified. + MODIFIED = 3; + + // The file contains merge conflicts. + HAS_CONFLICTS = 4; + } + + // The file's full path including filename, relative to the workspace root. + string path = 1; + + // Indicates the status of the file. + State state = 2; + } + + // A list of all files which have uncommitted Git changes. There will only be + // a single entry for any given file. + repeated UncommittedFileChange uncommitted_file_changes = 1; +} + +// `FetchGitAheadBehind` request message. +message FetchGitAheadBehindRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. The name of the branch in the Git remote against which this workspace + // should be compared. If left unset, the repository's default branch name + // will be used. + string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// `FetchGitAheadBehind` response message. +message FetchGitAheadBehindResponse { + // The number of commits in the remote branch that are not in the workspace. + int32 commits_ahead = 1; + + // The number of commits in the workspace that are not in the remote branch. + int32 commits_behind = 2; +} + +// `CommitWorkspaceChanges` request message. +message CommitWorkspaceChangesRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The commit's author. + CommitAuthor author = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The commit's message. + string commit_message = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Full file paths to commit including filename, rooted at workspace root. If + // left empty, all files will be committed. + repeated string paths = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ResetWorkspaceChanges` request message. +message ResetWorkspaceChangesRequest { + // Required. The workspace's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. Full file paths to reset back to their committed state including filename, + // rooted at workspace root. If left empty, all files will be reset. + repeated string paths = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, untracked files will be deleted. + bool clean = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `FetchFileDiff` request message. +message FetchFileDiffRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file's full path including filename, relative to the workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `FetchFileDiff` response message. +message FetchFileDiffResponse { + // The raw formatted Git diff for the file. + string formatted_diff = 1; +} + +// `QueryDirectoryContents` request message. +message QueryDirectoryContentsRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Optional. The directory's full path including directory name, relative to the + // workspace root. If left unset, the workspace root is used. + string path = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of paths to return. The server may return fewer + // items than requested. If unspecified, the server will pick an appropriate + // default. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `QueryDirectoryContents` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `QueryDirectoryContents` must match the call that provided the page + // token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// `QueryDirectoryContents` response message. +message QueryDirectoryContentsResponse { + // Represents a single entry in a workspace directory. + message DirectoryEntry { + oneof entry { + // A file in the directory. + string file = 1; + + // A child directory in the directory. + string directory = 2; + } + } + + // List of entries in the directory. + repeated DirectoryEntry directory_entries = 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; +} + +// `MakeDirectory` request message. +message MakeDirectoryRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The directory's full path including directory name, relative to the + // workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `MakeDirectory` response message. +message MakeDirectoryResponse { + +} + +// `RemoveDirectory` request message. +message RemoveDirectoryRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The directory's full path including directory name, relative to the + // workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `MoveDirectory` request message. +message MoveDirectoryRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The directory's full path including directory name, relative to the + // workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The new path for the directory including directory name, rooted at + // workspace root. + string new_path = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `MoveDirectory` response message. +message MoveDirectoryResponse { + +} + +// `ReadFile` request message. +message ReadFileRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file's full path including filename, relative to the workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `ReadFile` response message. +message ReadFileResponse { + // The file's contents. + bytes file_contents = 1; +} + +// `RemoveFile` request message. +message RemoveFileRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file's full path including filename, relative to the workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `MoveFile` request message. +message MoveFileRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file's full path including filename, relative to the workspace root. + string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The file's new path including filename, relative to the workspace root. + string new_path = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `MoveFile` response message. +message MoveFileResponse { + +} + +// `WriteFile` request message. +message WriteFileRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + + // Required. The file. + string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The file's contents. + bytes contents = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `WriteFile` response message. +message WriteFileResponse { + +} + +// `InstallNpmPackages` request message. +message InstallNpmPackagesRequest { + // Required. The workspace's name. + string workspace = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; +} + +// `InstallNpmPackages` response message. +message InstallNpmPackagesResponse { + +} + +// Represents the result of compiling a Dataform project. +message CompilationResult { + option (google.api.resource) = { + type: "dataform.googleapis.com/CompilationResult" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}" + }; + + // Configures various aspects of Dataform code compilation. + message CodeCompilationConfig { + // Optional. The default database (Google Cloud project ID). + string default_database = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default schema (BigQuery dataset ID). + string default_schema = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default BigQuery location to use. Defaults to "US". + // See the BigQuery docs for a full list of locations: + // https://cloud.google.com/bigquery/docs/locations. + string default_location = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default schema (BigQuery dataset ID) for assertions. + string assertion_schema = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined variables that are made available to project code during + // compilation. + map vars = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The suffix that should be appended to all database (Google Cloud project + // ID) names. + string database_suffix = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The suffix that should be appended to all schema (BigQuery dataset ID) + // names. + string schema_suffix = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The prefix that should be prepended to all table names. + string table_prefix = 7 [(google.api.field_behavior) = OPTIONAL]; + } + + // An error encountered when attempting to compile a Dataform project. + message CompilationError { + // Output only. The error's top level message. + string message = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The error's full stack trace. + string stack = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The path of the file where this error occurred, if available, relative to + // the project root. + string path = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The identifier of the action where this error occurred, if available. + Target action_target = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The compilation result's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + oneof source { + // Immutable. Git commit/tag/branch name at which the repository should be compiled. + // Must exist in the remote repository. + // Examples: + // - a commit SHA: `12ade345` + // - a tag: `tag1` + // - a branch name: `branch1` + string git_commitish = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The name of the workspace to compile. Must be in the format + // `projects/*/locations/*/repositories/*/workspaces/*`. + string workspace = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Workspace" + } + ]; + } + + // Immutable. If set, fields of `code_compilation_overrides` override the default + // compilation settings that are specified in dataform.json. + CodeCompilationConfig code_compilation_config = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The version of `@dataform/core` that was used for compilation. + string dataform_core_version = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Errors encountered during project compilation. + repeated CompilationError compilation_errors = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `ListCompilationResults` request message. +message ListCompilationResultsRequest { + // Required. The repository in which to list compilation results. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Optional. Maximum number of compilation results to return. The server may return + // fewer items than requested. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListCompilationResults` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCompilationResults` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListCompilationResults` response message. +message ListCompilationResultsResponse { + // List of compilation results. + repeated CompilationResult compilation_results = 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; + + // Locations which could not be reached. + repeated string unreachable = 3; +} + +// `GetCompilationResult` request message. +message GetCompilationResultRequest { + // Required. The compilation result's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/CompilationResult" + } + ]; +} + +// `CreateCompilationResult` request message. +message CreateCompilationResultRequest { + // Required. The repository in which to create the compilation result. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Required. The compilation result to create. + CompilationResult compilation_result = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents an action identifier. If the action writes output, the output +// will be written to the referenced database object. +message Target { + // The action's database (Google Cloud project ID) . + string database = 1; + + // The action's schema (BigQuery dataset ID), within `database`. + string schema = 2; + + // The action's name, within `database` and `schema`. + string name = 3; +} + +// Describes a relation and its columns. +message RelationDescriptor { + // Describes a column. + message ColumnDescriptor { + // The identifier for the column. Each entry in `path` represents one level + // of nesting. + repeated string path = 1; + + // A textual description of the column. + string description = 2; + + // A list of BigQuery policy tags that will be applied to the column. + repeated string bigquery_policy_tags = 3; + } + + // A text description of the relation. + string description = 1; + + // A list of descriptions of columns within the relation. + repeated ColumnDescriptor columns = 2; + + // A set of BigQuery labels that should be applied to the relation. + map bigquery_labels = 3; +} + +// Represents a single Dataform action in a compilation result. +message CompilationResultAction { + // Represents a database relation. + message Relation { + // Indicates the type of this relation. + enum RelationType { + // Default value. This value is unused. + RELATION_TYPE_UNSPECIFIED = 0; + + // The relation is a table. + TABLE = 1; + + // The relation is a view. + VIEW = 2; + + // The relation is an incrementalized table. + INCREMENTAL_TABLE = 3; + + // The relation is a materialized view. + MATERIALIZED_VIEW = 4; + } + + // Contains settings for relations of type `INCREMENTAL_TABLE`. + message IncrementalTableConfig { + // The SELECT query which returns rows which should be inserted into the + // relation if it already exists and is not being refreshed. + string incremental_select_query = 1; + + // Whether this table should be protected from being refreshed. + bool refresh_disabled = 2; + + // A set of columns or SQL expressions used to define row uniqueness. + // If any duplicates are discovered (as defined by `unique_key_parts`), + // only the newly selected rows (as defined by `incremental_select_query`) + // will be included in the relation. + repeated string unique_key_parts = 3; + + // A SQL expression conditional used to limit the set of existing rows + // considered for a merge operation (see `unique_key_parts` for more + // information). + string update_partition_filter = 4; + + // SQL statements to be executed before inserting new rows into the + // relation. + repeated string incremental_pre_operations = 5; + + // SQL statements to be executed after inserting new rows into the + // relation. + repeated string incremental_post_operations = 6; + } + + // A list of actions that this action depends on. + repeated Target dependency_targets = 1; + + // Whether this action is disabled (i.e. should not be run). + bool disabled = 2; + + // Arbitrary, user-defined tags on this action. + repeated string tags = 3; + + // Descriptor for the relation and its columns. + RelationDescriptor relation_descriptor = 4; + + // The type of this relation. + RelationType relation_type = 5; + + // The SELECT query which returns rows which this relation should contain. + string select_query = 6; + + // SQL statements to be executed before creating the relation. + repeated string pre_operations = 7; + + // SQL statements to be executed after creating the relation. + repeated string post_operations = 8; + + // Configures `INCREMENTAL_TABLE` settings for this relation. Only set if + // `relation_type` is `INCREMENTAL_TABLE`. + IncrementalTableConfig incremental_table_config = 9; + + // The SQL expression used to partition the relation. + string partition_expression = 10; + + // A list of columns or SQL expressions used to cluster the table. + repeated string cluster_expressions = 11; + + // Sets the partition expiration in days. + int32 partition_expiration_days = 12; + + // Specifies whether queries on this table must include a predicate filter + // that filters on the partitioning column. + bool require_partition_filter = 13; + + // Additional options that will be provided as key/value pairs into the + // options clause of a create table/view statement. See + // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language + // for more information on which options are supported. + map additional_options = 14; + } + + // Represents a list of arbitrary database operations. + message Operations { + // A list of actions that this action depends on. + repeated Target dependency_targets = 1; + + // Whether this action is disabled (i.e. should not be run). + bool disabled = 2; + + // Arbitrary, user-defined tags on this action. + repeated string tags = 3; + + // Descriptor for any output relation and its columns. Only set if + // `has_output` is true. + RelationDescriptor relation_descriptor = 6; + + // A list of arbitrary SQL statements that will be executed without + // alteration. + repeated string queries = 4; + + // Whether these operations produce an output relation. + bool has_output = 5; + } + + // Represents an assertion upon a SQL query which is required return zero + // rows. + message Assertion { + // A list of actions that this action depends on. + repeated Target dependency_targets = 1; + + // The parent action of this assertion. Only set if this assertion was + // automatically generated. + Target parent_action = 5; + + // Whether this action is disabled (i.e. should not be run). + bool disabled = 2; + + // Arbitrary, user-defined tags on this action. + repeated string tags = 3; + + // The SELECT query which must return zero rows in order for this assertion + // to succeed. + string select_query = 4; + + // Descriptor for the assertion's automatically-generated view and its + // columns. + RelationDescriptor relation_descriptor = 6; + } + + // Represents a relation which is not managed by Dataform but which may be + // referenced by Dataform actions. + message Declaration { + // Descriptor for the relation and its columns. Used as documentation only, + // i.e. values here will result in no changes to the relation's metadata. + RelationDescriptor relation_descriptor = 1; + } + + // This action's identifier. Unique within the compilation result. + Target target = 1; + + // The action's identifier if the project had been compiled without any + // overrides configured. Unique within the compilation result. + Target canonical_target = 2; + + // The full path including filename in which this action is located, relative + // to the workspace root. + string file_path = 3; + + oneof compiled_object { + // The database relation created/updated by this action. + Relation relation = 4; + + // The database operations executed by this action. + Operations operations = 5; + + // The assertion executed by this action. + Assertion assertion = 6; + + // The declaration declared by this action. + Declaration declaration = 7; + } +} + +// `QueryCompilationResultActions` request message. +message QueryCompilationResultActionsRequest { + // Required. The compilation result's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/CompilationResult" + } + ]; + + // Optional. Maximum number of compilation results to return. The server may return + // fewer items than requested. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `QueryCompilationResultActions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `QueryCompilationResultActions` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional filter for the returned list. Filtering is only currently + // supported on the `file_path` field. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// `QueryCompilationResultActions` response message. +message QueryCompilationResultActionsResponse { + // List of compilation result actions. + repeated CompilationResultAction compilation_result_actions = 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 single invocation of a compilation result. +message WorkflowInvocation { + option (google.api.resource) = { + type: "dataform.googleapis.com/WorkflowInvocation" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}" + }; + + // Includes various configuration options for this workflow invocation. + // If both `included_targets` and `included_tags` are unset, all actions + // will be included. + message InvocationConfig { + // Immutable. The set of action identifiers to include. + repeated Target included_targets = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The set of tags to include. + repeated string included_tags = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. When set to true, transitive dependencies of included actions will be + // executed. + bool transitive_dependencies_included = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. When set to true, transitive dependents of included actions will be + // executed. + bool transitive_dependents_included = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. When set to true, any incremental tables will be fully refreshed. + bool fully_refresh_incremental_tables_enabled = 5 [(google.api.field_behavior) = IMMUTABLE]; + } + + // Represents the current state of a workflow invocation. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The workflow invocation is currently running. + RUNNING = 1; + + // The workflow invocation succeeded. A terminal state. + SUCCEEDED = 2; + + // The workflow invocation was cancelled. A terminal state. + CANCELLED = 3; + + // The workflow invocation failed. A terminal state. + FAILED = 4; + + // The workflow invocation is being cancelled, but some actions are still + // running. + CANCELING = 5; + } + + // Output only. The workflow invocation's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The name of the compilation result to compile. Must be in the format + // `projects/*/locations/*/repositories/*/compilationResults/*`. + string compilation_result = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/CompilationResult" + } + ]; + + // Immutable. If left unset, a default InvocationConfig will be used. + InvocationConfig invocation_config = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. This workflow invocation's current state. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This workflow invocation's timing details. + google.type.Interval invocation_timing = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `ListWorkflowInvocations` request message. +message ListWorkflowInvocationsRequest { + // Required. The parent resource of the WorkflowInvocation type. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Optional. Maximum number of workflow invocations to return. The server may return + // fewer items than requested. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListWorkflowInvocations` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListWorkflowInvocations` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `ListWorkflowInvocations` response message. +message ListWorkflowInvocationsResponse { + // List of workflow invocations. + repeated WorkflowInvocation workflow_invocations = 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; + + // Locations which could not be reached. + repeated string unreachable = 3; +} + +// `GetWorkflowInvocation` request message. +message GetWorkflowInvocationRequest { + // Required. The workflow invocation resource's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/WorkflowInvocation" + } + ]; +} + +// `CreateWorkflowInvocation` request message. +message CreateWorkflowInvocationRequest { + // Required. The repository in which to create the workflow invocation. Must be in the + // format `projects/*/locations/*/repositories/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/Repository" + } + ]; + + // Required. The workflow invocation resource to create. + WorkflowInvocation workflow_invocation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `DeleteWorkflowInvocation` request message. +message DeleteWorkflowInvocationRequest { + // Required. The workflow invocation resource's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/WorkflowInvocation" + } + ]; +} + +// `CancelWorkflowInvocation` request message. +message CancelWorkflowInvocationRequest { + // Required. The workflow invocation resource's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/WorkflowInvocation" + } + ]; +} + +// Represents a single action in a workflow invocation. +message WorkflowInvocationAction { + // Represents the current state of an workflow invocation action. + enum State { + // The action has not yet been considered for invocation. + PENDING = 0; + + // The action is currently running. + RUNNING = 1; + + // Execution of the action was skipped because upstream dependencies did not + // all complete successfully. A terminal state. + SKIPPED = 2; + + // Execution of the action was disabled as per the configuration of the + // corresponding compilation result action. A terminal state. + DISABLED = 3; + + // The action succeeded. A terminal state. + SUCCEEDED = 4; + + // The action was cancelled. A terminal state. + CANCELLED = 5; + + // The action failed. A terminal state. + FAILED = 6; + } + + // Represents a workflow action that will run against BigQuery. + message BigQueryAction { + // Output only. The generated BigQuery SQL script that will be executed. + string sql_script = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. This action's identifier. Unique within the workflow invocation. + Target target = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The action's identifier if the project had been compiled without any + // overrides configured. Unique within the compilation result. + Target canonical_target = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This action's current state. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If and only if action's state is FAILED a failure reason is set. + string failure_reason = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This action's timing details. + // `start_time` will be set if the action is in [RUNNING, SUCCEEDED, + // CANCELLED, FAILED] state. + // `end_time` will be set if the action is in [SUCCEEDED, CANCELLED, FAILED] + // state. + google.type.Interval invocation_timing = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The workflow action's bigquery action details. + BigQueryAction bigquery_action = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `QueryWorkflowInvocationActions` request message. +message QueryWorkflowInvocationActionsRequest { + // Required. The workflow invocation's name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataform.googleapis.com/WorkflowInvocation" + } + ]; + + // Optional. Maximum number of workflow invocations to return. The server may return + // fewer items than requested. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `QueryWorkflowInvocationActions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `QueryWorkflowInvocationActions` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// `QueryWorkflowInvocationActions` response message. +message QueryWorkflowInvocationActionsResponse { + // List of workflow invocation actions. + repeated WorkflowInvocationAction workflow_invocation_actions = 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/google/cloud/dataform/v1beta1/dataform_grpc_service_config.json b/google/cloud/dataform/v1beta1/dataform_grpc_service_config.json new file mode 100644 index 000000000..959bf4c18 --- /dev/null +++ b/google/cloud/dataform/v1beta1/dataform_grpc_service_config.json @@ -0,0 +1,26 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "ListRepositories" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "GetRepository" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "ListWorkspaces" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "GetWorkspace" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "ListCompilationResults" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "GetCompilationResult" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "CreateCompilationResult" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "QueryCompilationResultActions" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "CreateWorkflowInvocation" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "CancelWorkflowInvocation" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "ListWorkflowInvocations" }, + { "service": "google.cloud.dataform.v1beta1.DataformService", "method": "GetWorkflowInvocation" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/google/cloud/dataform/v1beta1/dataform_v1beta1.yaml b/google/cloud/dataform/v1beta1/dataform_v1beta1.yaml new file mode 100644 index 000000000..b3a2a999f --- /dev/null +++ b/google/cloud/dataform/v1beta1/dataform_v1beta1.yaml @@ -0,0 +1,77 @@ +type: google.api.Service +config_version: 3 +name: dataform.googleapis.com +title: Dataform API + +apis: +- name: google.cloud.dataform.v1beta1.Dataform +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy + +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. + +backend: + rules: + - selector: 'google.cloud.dataform.v1beta1.Dataform.*' + 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 + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1beta1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1beta1/{name=projects/*}/locations' + +authentication: + rules: + - selector: 'google.cloud.dataform.v1beta1.Dataform.*' + 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 diff --git a/google/cloud/datafusion/v1/BUILD.bazel b/google/cloud/datafusion/v1/BUILD.bazel index 70b255b5d..433cba82b 100644 --- a/google/cloud/datafusion/v1/BUILD.bazel +++ b/google/cloud/datafusion/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":datafusion_java_grpc", ], + transport = "grpc+rest", deps = [ ":datafusion_java_proto", ], @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "datafusion_java_gapic_test_suite", test_classes = [ + "com.google.cloud.datafusion.v1.DataFusionClientHttpJsonTest", "com.google.cloud.datafusion.v1.DataFusionClientTest", ], runtime_deps = [":datafusion_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-datafusion-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":datafusion_java_gapic", ":datafusion_java_grpc", @@ -125,6 +129,7 @@ go_gapic_library( importpath = "cloud.google.com/go/datafusion/apiv1;datafusion", metadata = True, service_yaml = "datafusion_v1.yaml", + transport = "grpc+rest", deps = [ ":datafusion_go_proto", "//google/longrunning:longrunning_go_proto", @@ -158,6 +163,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -169,6 +175,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=data_fusion", ], + transport = "grpc", +) + +py_test( + name = "datafusion_py_gapic_test", + srcs = [ + "datafusion_py_gapic_pytest.py", + "datafusion_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datafusion_py_gapic"], ) # Open Source Packages @@ -327,6 +344,7 @@ csharp_gapic_library( srcs = [":datafusion_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "datafusion_grpc_service_config.json", + service_yaml = "datafusion_v1.yaml", deps = [ ":datafusion_csharp_grpc", ":datafusion_csharp_proto", diff --git a/google/cloud/datafusion/v1beta1/BUILD.bazel b/google/cloud/datafusion/v1beta1/BUILD.bazel index c3eb88692..6a24bd0bf 100644 --- a/google/cloud/datafusion/v1beta1/BUILD.bazel +++ b/google/cloud/datafusion/v1beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( ":datafusion_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":datafusion_java_proto", "//google/iam/v1:iam_java_proto", @@ -84,6 +85,7 @@ java_gapic_library( java_gapic_test( name = "datafusion_java_gapic_test_suite", test_classes = [ + "com.google.cloud.datafusion.v1beta1.DataFusionClientHttpJsonTest", "com.google.cloud.datafusion.v1beta1.DataFusionClientTest", ], runtime_deps = [":datafusion_java_gapic_test"], @@ -92,6 +94,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-datafusion-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":datafusion_java_gapic", ":datafusion_java_grpc", @@ -131,6 +135,7 @@ go_gapic_library( importpath = "cloud.google.com/go/datafusion/apiv1beta1;datafusion", metadata = True, service_yaml = "datafusion_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":datafusion_go_proto", "//google/iam/v1:iam_go_proto", @@ -165,12 +170,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "datafusion_py_gapic", srcs = [":datafusion_proto"], grpc_service_config = "datafusion_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "datafusion_py_gapic_test", + srcs = [ + "datafusion_py_gapic_pytest.py", + "datafusion_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datafusion_py_gapic"], ) # Open Source Packages @@ -329,6 +349,7 @@ csharp_gapic_library( srcs = [":datafusion_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "datafusion_grpc_service_config.json", + service_yaml = "datafusion_v1beta1.yaml", deps = [ ":datafusion_csharp_grpc", ":datafusion_csharp_proto", diff --git a/google/cloud/datalabeling/v1beta1/BUILD.bazel b/google/cloud/datalabeling/v1beta1/BUILD.bazel index f12943857..a9e495a49 100644 --- a/google/cloud/datalabeling/v1beta1/BUILD.bazel +++ b/google/cloud/datalabeling/v1beta1/BUILD.bazel @@ -91,6 +91,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-datalabeling-v1beta1-java", + include_samples = True, deps = [ ":datalabeling_java_gapic", ":datalabeling_java_grpc", @@ -161,12 +162,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "datalabeling_py_gapic", srcs = [":datalabeling_proto"], grpc_service_config = "datalabeling_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "datalabeling_py_gapic_test", + srcs = [ + "datalabeling_py_gapic_pytest.py", + "datalabeling_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datalabeling_py_gapic"], ) py_gapic_assembly_pkg( @@ -326,6 +339,7 @@ csharp_gapic_library( srcs = [":datalabeling_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "datalabeling_grpc_service_config.json", + service_yaml = "datalabeling_v1beta1.yaml", deps = [ ":datalabeling_csharp_grpc", ":datalabeling_csharp_proto", diff --git a/google/cloud/datalabeling/v1beta1/annotation.proto b/google/cloud/datalabeling/v1beta1/annotation.proto index 7d629b259..d62cbfd13 100644 --- a/google/cloud/datalabeling/v1beta1/annotation.proto +++ b/google/cloud/datalabeling/v1beta1/annotation.proto @@ -17,8 +17,6 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; -import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto"; import "google/protobuf/duration.proto"; diff --git a/google/cloud/datalabeling/v1beta1/annotation_spec_set.proto b/google/cloud/datalabeling/v1beta1/annotation_spec_set.proto index eb9b04b87..7670ae6a9 100644 --- a/google/cloud/datalabeling/v1beta1/annotation_spec_set.proto +++ b/google/cloud/datalabeling/v1beta1/annotation_spec_set.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; option csharp_namespace = "Google.Cloud.DataLabeling.V1Beta1"; diff --git a/google/cloud/datalabeling/v1beta1/data_payloads.proto b/google/cloud/datalabeling/v1beta1/data_payloads.proto index 4aebde406..a9ca0fc93 100644 --- a/google/cloud/datalabeling/v1beta1/data_payloads.proto +++ b/google/cloud/datalabeling/v1beta1/data_payloads.proto @@ -17,9 +17,7 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; import "google/protobuf/duration.proto"; -import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.DataLabeling.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling"; diff --git a/google/cloud/datalabeling/v1beta1/dataset.proto b/google/cloud/datalabeling/v1beta1/dataset.proto index cf21b1903..557279fa7 100644 --- a/google/cloud/datalabeling/v1beta1/dataset.proto +++ b/google/cloud/datalabeling/v1beta1/dataset.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/annotation.proto"; import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto"; diff --git a/google/cloud/datalabeling/v1beta1/evaluation.proto b/google/cloud/datalabeling/v1beta1/evaluation.proto index 18d3719c4..950fa82cf 100644 --- a/google/cloud/datalabeling/v1beta1/evaluation.proto +++ b/google/cloud/datalabeling/v1beta1/evaluation.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/annotation.proto"; import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto"; diff --git a/google/cloud/datalabeling/v1beta1/evaluation_job.proto b/google/cloud/datalabeling/v1beta1/evaluation_job.proto index 6f54ad195..d40f8f201 100644 --- a/google/cloud/datalabeling/v1beta1/evaluation_job.proto +++ b/google/cloud/datalabeling/v1beta1/evaluation_job.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/dataset.proto"; import "google/cloud/datalabeling/v1beta1/evaluation.proto"; diff --git a/google/cloud/datalabeling/v1beta1/human_annotation_config.proto b/google/cloud/datalabeling/v1beta1/human_annotation_config.proto index a05bd30f5..9cc2424be 100644 --- a/google/cloud/datalabeling/v1beta1/human_annotation_config.proto +++ b/google/cloud/datalabeling/v1beta1/human_annotation_config.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; diff --git a/google/cloud/datalabeling/v1beta1/instruction.proto b/google/cloud/datalabeling/v1beta1/instruction.proto index 15bf69588..9b19d32fd 100644 --- a/google/cloud/datalabeling/v1beta1/instruction.proto +++ b/google/cloud/datalabeling/v1beta1/instruction.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/dataset.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/cloud/datalabeling/v1beta1/operations.proto b/google/cloud/datalabeling/v1beta1/operations.proto index 49df6d220..02d596fc9 100644 --- a/google/cloud/datalabeling/v1beta1/operations.proto +++ b/google/cloud/datalabeling/v1beta1/operations.proto @@ -17,8 +17,6 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; -import "google/api/annotations.proto"; -import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/dataset.proto"; import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/cloud/dataplex/BUILD.bazel b/google/cloud/dataplex/BUILD.bazel new file mode 100644 index 000000000..a0a049f6c --- /dev/null +++ b/google/cloud/dataplex/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-dataplex. + +# 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 dataplex. +# 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 = "dataplex_ruby_wrapper", + srcs = ["//google/cloud/dataplex/v1:dataplex_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-dataplex", + "ruby-cloud-wrapper-of=v1:0.2", + "ruby-cloud-product-url=https://cloud.google.com/dataplex/", + "ruby-cloud-api-id=dataplex.googleapis.com", + "ruby-cloud-api-shortname=dataplex", + ], + ruby_cloud_description = "Dataplex is an intelligent data fabric that provides a way to centrally manage, monitor, and govern your data across data lakes, data warehouses and data marts, and make this data securely accessible to a variety of analytics and data science tools.", + ruby_cloud_title = "Dataplex", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-dataplex-ruby", + deps = [ + ":dataplex_ruby_wrapper", + ], +) diff --git a/google/cloud/dataplex/v1/BUILD.bazel b/google/cloud/dataplex/v1/BUILD.bazel index c8ec17499..6d03ee6fc 100644 --- a/google/cloud/dataplex/v1/BUILD.bazel +++ b/google/cloud/dataplex/v1/BUILD.bazel @@ -21,6 +21,8 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "dataplex_proto", srcs = [ + "analyze.proto", + "content.proto", "logs.proto", "metadata.proto", "resources.proto", @@ -32,6 +34,8 @@ proto_library( "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_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", @@ -45,6 +49,8 @@ proto_library_with_info( deps = [ ":dataplex_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ], ) @@ -79,17 +85,26 @@ java_gapic_library( service_yaml = "dataplex_v1.yaml", test_deps = [ ":dataplex_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":dataplex_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ], ) java_gapic_test( name = "dataplex_java_gapic_test_suite", test_classes = [ + "com.google.cloud.dataplex.v1.ContentServiceClientHttpJsonTest", + "com.google.cloud.dataplex.v1.ContentServiceClientTest", + "com.google.cloud.dataplex.v1.DataplexServiceClientHttpJsonTest", "com.google.cloud.dataplex.v1.DataplexServiceClientTest", + "com.google.cloud.dataplex.v1.MetadataServiceClientHttpJsonTest", "com.google.cloud.dataplex.v1.MetadataServiceClientTest", ], runtime_deps = [":dataplex_java_gapic_test"], @@ -98,6 +113,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-dataplex-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":dataplex_java_gapic", ":dataplex_java_grpc", @@ -124,6 +141,7 @@ go_proto_library( protos = [":dataplex_proto"], deps = [ "//google/api:annotations_go_proto", + "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", ], ) @@ -133,13 +151,16 @@ go_gapic_library( srcs = [":dataplex_proto_with_info"], grpc_service_config = "dataplex_grpc_service_config.json", importpath = "cloud.google.com/go/dataplex/apiv1;dataplex", - service_yaml = "dataplex_v1.yaml", metadata = True, + service_yaml = "dataplex_v1.yaml", + transport = "grpc+rest", deps = [ ":dataplex_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_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", ], ) @@ -156,8 +177,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-dataplex-v1-go", deps = [ ":dataplex_go_gapic", - ":dataplex_go_gapic_srcjar-test.srcjar", ":dataplex_go_gapic_srcjar-metadata.srcjar", + ":dataplex_go_gapic_srcjar-test.srcjar", ":dataplex_go_proto", ], ) @@ -169,12 +190,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "dataplex_py_gapic", srcs = [":dataplex_proto"], grpc_service_config = "dataplex_grpc_service_config.json", + service_yaml = "dataplex_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "dataplex_py_gapic_test", + srcs = [ + "dataplex_py_gapic_pytest.py", + "dataplex_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dataplex_py_gapic"], ) # Open Source Packages @@ -245,6 +282,8 @@ nodejs_gapic_library( grpc_service_config = "dataplex_grpc_service_config.json", package = "google.cloud.dataplex.v1", service_yaml = "dataplex_v1.yaml", + # Content service defines IAM RPCs, force override mixins to remove IAM + mixins = "google.cloud.location.Locations;google.longrunning.Operations", deps = [], ) @@ -261,8 +300,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -282,9 +321,15 @@ ruby_cloud_gapic_library( name = "dataplex_ruby_gapic", srcs = [":dataplex_proto_with_info"], extra_protoc_parameters = [ + "ruby-cloud-api-id=dataplex.googleapis.com", + "ruby-cloud-api-shortname=dataplex", "ruby-cloud-gem-name=google-cloud-dataplex-v1", + "ruby-cloud-product-url=https://cloud.google.com/dataplex/", ], grpc_service_config = "dataplex_grpc_service_config.json", + ruby_cloud_description = "Dataplex is an intelligent data fabric that provides a way to centrally manage, monitor, and govern your data across data lakes, data warehouses and data marts, and make this data securely accessible to a variety of analytics and data science tools.", + ruby_cloud_title = "Dataplex V1", + service_yaml = "dataplex_v1.yaml", deps = [ ":dataplex_ruby_grpc", ":dataplex_ruby_proto", @@ -328,6 +373,7 @@ csharp_gapic_library( srcs = [":dataplex_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dataplex_grpc_service_config.json", + service_yaml = "dataplex_v1.yaml", deps = [ ":dataplex_csharp_grpc", ":dataplex_csharp_proto", diff --git a/google/cloud/dataplex/v1/analyze.proto b/google/cloud/dataplex/v1/analyze.proto new file mode 100644 index 000000000..6f987fafa --- /dev/null +++ b/google/cloud/dataplex/v1/analyze.proto @@ -0,0 +1,264 @@ +// 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.cloud.dataplex.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/dataplex/v1/resources.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/dataplex/v1;dataplex"; +option java_multiple_files = true; +option java_outer_classname = "AnalyzeProto"; +option java_package = "com.google.cloud.dataplex.v1"; + +// Environment represents a user-visible compute infrastructure for analytics +// within a lake. +message Environment { + option (google.api.resource) = { + type: "dataplex.googleapis.com/Environment" + pattern: "projects/{project}/locations/{location}/lakes/{lake}/environments/{environment}" + }; + + // Configuration for the underlying infrastructure used to run workloads. + message InfrastructureSpec { + // Compute resources associated with the analyze interactive workloads. + message ComputeResources { + // Optional. Size in GB of the disk. Default is 100 GB. + int32 disk_size_gb = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Total number of nodes in the sessions created for this environment. + int32 node_count = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Max configurable nodes. + // If max_node_count > node_count, then auto-scaling is enabled. + int32 max_node_count = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Software Runtime Configuration to run Analyze. + message OsImageRuntime { + // Required. Dataplex Image version. + string image_version = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. List of Java jars to be included in the runtime environment. + // Valid input includes Cloud Storage URIs to Jar binaries. + // For example, gs://bucket-name/my/path/to/file.jar + repeated string java_libraries = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of python packages to be installed. + // Valid formats include Cloud Storage URI to a PIP installable library. + // For example, gs://bucket-name/my/path/to/lib.tar.gz + repeated string python_packages = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Spark properties to provide configuration for use in sessions created + // for this environment. The properties to set on daemon config files. + // Property keys are specified in `prefix:property` format. + // The prefix must be "spark". + map properties = 4 [(google.api.field_behavior) = OPTIONAL]; + } + + // Hardware config + oneof resources { + // Optional. Compute resources needed for analyze interactive workloads. + ComputeResources compute = 50 [(google.api.field_behavior) = OPTIONAL]; + } + + // Software config + oneof runtime { + // Required. Software Runtime Configuration for analyze interactive workloads. + OsImageRuntime os_image = 100 [(google.api.field_behavior) = REQUIRED]; + } + } + + message SessionSpec { + // Optional. The idle time configuration of the session. The session will be + // auto-terminated at the end of this period. + google.protobuf.Duration max_idle_duration = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If True, this causes sessions to be pre-created and available for faster + // startup to enable interactive exploration use-cases. This defaults to + // False to avoid additional billed charges. + // These can only be set to True for the environment with name set to + // "default", and with default configuration. + bool enable_fast_startup = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + message SessionStatus { + // Output only. Queries over sessions to mark whether the environment is currently + // active or not + bool active = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + message Endpoints { + // Output only. URI to serve notebook APIs + string notebooks = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URI to serve SQL APIs + string sql = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The relative resource name of the environment, of the form: + // projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id} + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Environment" + } + ]; + + // Optional. User friendly display name. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. System generated globally unique ID for the environment. This ID will be + // different if the environment is deleted and re-created with the same name. + string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Environment creation time. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the environment was last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. User defined labels for the environment. + map labels = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Description of the environment. + string description = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Current state of the environment. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Infrastructure specification for the Environment. + InfrastructureSpec infrastructure_spec = 100 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Configuration for sessions created for this environment. + SessionSpec session_spec = 101 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Status of sessions created for this environment. + SessionStatus session_status = 102 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URI Endpoints to access sessions associated with the Environment. + Endpoints endpoints = 200 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Content represents a user-visible notebook or a sql script +message Content { + option (google.api.resource) = { + type: "dataplex.googleapis.com/Content" + pattern: "projects/{project}/locations/{location}/lakes/{lake}/content/{content}" + }; + + // Configuration for the Sql Script content. + message SqlScript { + // Query Engine Type of the SQL Script. + enum QueryEngine { + // Value was unspecified. + QUERY_ENGINE_UNSPECIFIED = 0; + + // Spark SQL Query. + SPARK = 2; + } + + // Required. Query Engine to be used for the Sql Query. + QueryEngine engine = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Configuration for Notebook content. + message Notebook { + // Kernel Type of the Jupyter notebook. + enum KernelType { + // Kernel Type unspecified. + KERNEL_TYPE_UNSPECIFIED = 0; + + // Python 3 Kernel. + PYTHON3 = 1; + } + + // Required. Kernel Type of the notebook. + KernelType kernel_type = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Output only. The relative resource name of the content, of the form: + // projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id} + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Content" + } + ]; + + // Output only. System generated globally unique ID for the content. This ID will be + // different if the content is deleted and re-created with the same name. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The path for the Content file, represented as directory structure. + // Unique within a lake. + // Limited to alphanumerics, hyphens, underscores, dots and slashes. + string path = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Content creation time. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the content was last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. User defined labels for the content. + map labels = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Description of the content. + string description = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Only returned in `GetContent` requests and not in `ListContent` request. + oneof data { + // Required. Content data in string format. + string data_text = 9 [(google.api.field_behavior) = REQUIRED]; + } + + oneof content { + // Sql Script related configurations. + SqlScript sql_script = 100; + + // Notebook related configurations. + Notebook notebook = 101; + } +} + +// Represents an active analyze session running for a user. +message Session { + option (google.api.resource) = { + type: "dataplex.googleapis.com/Session" + pattern: "projects/{project}/locations/{location}/lakes/{lake}/environments/{environment}/sessions/{session}" + }; + + // Output only. The relative resource name of the content, of the form: + // projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}/sessions/{session_id} + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Session" + } + ]; + + // Output only. Email of user running the session. + string user_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Session start time. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/dataplex/v1/content.proto b/google/cloud/dataplex/v1/content.proto new file mode 100644 index 000000000..cd335a58c --- /dev/null +++ b/google/cloud/dataplex/v1/content.proto @@ -0,0 +1,268 @@ +// 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.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/analyze.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 go_package = "google.golang.org/genproto/googleapis/cloud/dataplex/v1;dataplex"; +option java_multiple_files = true; +option java_outer_classname = "ContentProto"; +option java_package = "com.google.cloud.dataplex.v1"; + +// ContentService manages Notebook and SQL Scripts for Dataplex. +service ContentService { + option (google.api.default_host) = "dataplex.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Create a content. + rpc CreateContent(CreateContentRequest) returns (Content) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/lakes/*}/contentitems" + body: "content" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/lakes/*}/content" + body: "content" + } + }; + option (google.api.method_signature) = "parent,content"; + } + + // Update a content. Only supports full resource update. + rpc UpdateContent(UpdateContentRequest) returns (Content) { + option (google.api.http) = { + patch: "/v1/{content.name=projects/*/locations/*/lakes/*/contentitems/**}" + body: "content" + additional_bindings { + patch: "/v1/{content.name=projects/*/locations/*/lakes/*/content/**}" + body: "content" + } + }; + option (google.api.method_signature) = "content,update_mask"; + } + + // Delete a content. + rpc DeleteContent(DeleteContentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/lakes/*/contentitems/**}" + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/lakes/*/content/**}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Get a content resource. + rpc GetContent(GetContentRequest) returns (Content) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/lakes/*/contentitems/**}" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/lakes/*/content/**}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets the access control policy for a contentitem resource. A `NOT_FOUND` + // error is returned if the resource does not exist. An empty policy is + // returned if the resource exists but does not have a policy set on it. + // + // Caller must have Google IAM `dataplex.content.getIamPolicy` permission + // on the resource. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + get: "/v1/{resource=projects/*/locations/*/lakes/*/contentitems/**}:getIamPolicy" + additional_bindings { + get: "/v1/{resource=projects/*/locations/*/lakes/*/content/**}:getIamPolicy" + } + }; + option (google.api.method_signature) = "resource"; + } + + // Sets the access control policy on the specified contentitem resource. + // Replaces any existing policy. + // + // Caller must have Google IAM `dataplex.content.setIamPolicy` permission + // on the resource. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1/{resource=projects/*/locations/*/lakes/*/contentitems/**}:setIamPolicy" + body: "*" + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/lakes/*/content/**}:setIamPolicy" + body: "*" + } + }; + } + + // Returns the caller's permissions on a resource. + // If the resource does not exist, an empty set of + // permissions is returned (a `NOT_FOUND` error is not returned). + // + // A caller is not required to have Google IAM permission to make this + // request. + // + // 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: "/v1/{resource=projects/*/locations/*/lakes/*/contentitems/**}:testIamPermissions" + body: "*" + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/lakes/*/content/**}:testIamPermissions" + body: "*" + } + }; + } + + // List content. + rpc ListContent(ListContentRequest) returns (ListContentResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/lakes/*}/contentitems" + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/lakes/*}/content" + } + }; + option (google.api.method_signature) = "parent"; + } +} + +// Create content request. +message CreateContentRequest { + // Required. The resource name of the parent lake: + // projects/{project_id}/locations/{location_id}/lakes/{lake_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Lake" + } + ]; + + // Required. Content resource. + Content content = 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]; +} + +// Update content request. +message UpdateContentRequest { + // Required. Mask of fields to update. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Update description. + // Only fields specified in `update_mask` are updated. + Content content = 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]; +} + +// Delete content request. +message DeleteContentRequest { + // Required. The resource name of the content: + // projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Content" + } + ]; +} + +// List content request. Returns the BASIC Content view. +message ListContentRequest { + // Required. The resource name of the parent lake: + // projects/{project_id}/locations/{location_id}/lakes/{lake_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Lake" + } + ]; + + // Optional. Maximum number of content to return. The service may return fewer than + // this value. If unspecified, at most 10 content 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 `ListContent` call. Provide this + // to retrieve the subsequent page. When paginating, all other parameters + // provided to `ListContent` 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 + // type = "NOTEBOOK" + // type = "SQL_SCRIPT" + // + // These restrictions can be coinjoined with AND, OR and NOT conjunctions. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// List content response. +message ListContentResponse { + // Content under the given parent lake. + repeated Content content = 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; +} + +// Get content request. +message GetContentRequest { + // Specifies whether the request should return the full or the partial + // representation. + enum ContentView { + // Content view not specified. Defaults to BASIC. + // The API will default to the BASIC view. + CONTENT_VIEW_UNSPECIFIED = 0; + + // Will not return the `data_text` field. + BASIC = 1; + + // Returns the complete proto. + FULL = 2; + } + + // Required. The resource name of the content: + // projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Content" + } + ]; + + // Optional. Specify content view to make a partial request. + ContentView view = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/dataplex/v1/dataplex_grpc_service_config.json b/google/cloud/dataplex/v1/dataplex_grpc_service_config.json index f50e51877..e13dcdf6d 100644 --- a/google/cloud/dataplex/v1/dataplex_grpc_service_config.json +++ b/google/cloud/dataplex/v1/dataplex_grpc_service_config.json @@ -21,6 +21,10 @@ { "service": "google.cloud.dataplex.v1.DataplexService", "method": "GetJob" + }, + { + "service": "google.cloud.dataplex.v1.DataplexService", + "method": "GetEnvironment" } ], "timeout": "60s", @@ -65,6 +69,10 @@ { "service": "google.cloud.dataplex.v1.DataplexService", "method": "ListJobs" + }, + { + "service": "google.cloud.dataplex.v1.DataplexService", + "method": "ListEnvironments" } ], "timeout": "60s", @@ -116,6 +124,46 @@ "retryableStatusCodes": ["UNAVAILABLE"] } }, + { + "name": [ + { + "service": "google.cloud.dataplex.v1.ContentService", + "method": "GetContent" + }, + { + "service": "google.cloud.dataplex.v1.ContentService", + "method": "GetIamPolicy" + }, + { + "service": "google.cloud.dataplex.v1.ContentService", + "method": "TestIamPermissions" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.dataplex.v1.ContentService", + "method": "ListContent" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, { "name": [ { @@ -169,6 +217,18 @@ { "service": "google.cloud.dataplex.v1.DataplexService", "method": "CancelJob" + }, + { + "service": "google.cloud.dataplex.v1.DataplexService", + "method": "CreateEnvironment" + }, + { + "service": "google.cloud.dataplex.v1.DataplexService", + "method": "UpdateEnvironment" + }, + { + "service": "google.cloud.dataplex.v1.DataplexService", + "method": "DeleteEnvironment" } ], "timeout": "60s" @@ -201,6 +261,27 @@ } ], "timeout": "60s" + }, + { + "name": [ + { + "service": "google.cloud.dataplex.v1.ContentService", + "method": "CreateContent" + }, + { + "service": "google.cloud.dataplex.v1.ContentService", + "method": "DeleteContent" + }, + { + "service": "google.cloud.dataplex.v1.ContentService", + "method": "UpdateContent" + }, + { + "service": "google.cloud.dataplex.v1.ContentService", + "method": "SetIamPolicy" + } + ], + "timeout": "60s" } ] } diff --git a/google/cloud/dataplex/v1/dataplex_v1.yaml b/google/cloud/dataplex/v1/dataplex_v1.yaml index 411822930..8e5c6cbf9 100644 --- a/google/cloud/dataplex/v1/dataplex_v1.yaml +++ b/google/cloud/dataplex/v1/dataplex_v1.yaml @@ -4,8 +4,12 @@ name: dataplex.googleapis.com title: Cloud Dataplex API apis: +- name: google.cloud.dataplex.v1.ContentService - name: google.cloud.dataplex.v1.DataplexService - name: google.cloud.dataplex.v1.MetadataService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: - name: google.cloud.dataplex.v1.DiscoveryEvent @@ -47,6 +51,8 @@ documentation: backend: rules: + - selector: 'google.cloud.dataplex.v1.ContentService.*' + deadline: 60.0 - selector: 'google.cloud.dataplex.v1.DataplexService.*' deadline: 60.0 - selector: 'google.cloud.dataplex.v1.MetadataService.*' @@ -73,7 +79,6 @@ http: - get: '/v1/{resource=projects/*/locations/*/lakes/*/zones/*/assets/*}:getIamPolicy' - get: '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy' - get: '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy' - - get: '/v1/{resource=projects/*/locations/*/lakes/*/content/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1/{resource=projects/*/locations/*/lakes/*}:setIamPolicy' body: '*' @@ -86,8 +91,6 @@ http: body: '*' - post: '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy' body: '*' - - post: '/v1/{resource=projects/*/locations/*/lakes/*/content/*}:setIamPolicy' - body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1/{resource=projects/*/locations/*/lakes/*}:testIamPermissions' body: '*' @@ -100,8 +103,6 @@ http: body: '*' - post: '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions' body: '*' - - post: '/v1/{resource=projects/*/locations/*/lakes/*/content/*}:testIamPermissions' - body: '*' - selector: google.longrunning.Operations.CancelOperation post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' body: '*' @@ -114,6 +115,10 @@ http: authentication: rules: + - selector: 'google.cloud.dataplex.v1.ContentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.dataplex.v1.DataplexService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/dataplex/v1/logs.proto b/google/cloud/dataplex/v1/logs.proto index 7539b3530..51e48e46e 100644 --- a/google/cloud/dataplex/v1/logs.proto +++ b/google/cloud/dataplex/v1/logs.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dataplex.v1; -import "google/api/annotations.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; @@ -97,6 +96,10 @@ message DiscoveryEvent { // The type of the containing entity resource. EntityType type = 3; + + // The locations of the data items (e.g., a Cloud Storage objects) sampled + // for metadata inference. + repeated string sampled_data_locations = 4; } // Details about the action. diff --git a/google/cloud/dataplex/v1/metadata.proto b/google/cloud/dataplex/v1/metadata.proto index 5320013ec..290d94066 100644 --- a/google/cloud/dataplex/v1/metadata.proto +++ b/google/cloud/dataplex/v1/metadata.proto @@ -21,7 +21,6 @@ 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 = "google.golang.org/genproto/googleapis/cloud/dataplex/v1;dataplex"; @@ -35,6 +34,31 @@ service MetadataService { option (google.api.default_host) = "dataplex.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + // Create a metadata entity. + rpc CreateEntity(CreateEntityRequest) returns (Entity) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/entities" + body: "entity" + }; + option (google.api.method_signature) = "parent,entity"; + } + + // Update a metadata entity. Only supports full resource update. + rpc UpdateEntity(UpdateEntityRequest) returns (Entity) { + option (google.api.http) = { + put: "/v1/{entity.name=projects/*/locations/*/lakes/*/zones/*/entities/*}" + body: "entity" + }; + } + + // Delete a metadata entity. + rpc DeleteEntity(DeleteEntityRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*}" + }; + option (google.api.method_signature) = "name"; + } + // Get a metadata entity. rpc GetEntity(GetEntityRequest) returns (Entity) { option (google.api.http) = { @@ -51,6 +75,23 @@ service MetadataService { option (google.api.method_signature) = "parent"; } + // Create a metadata partition. + rpc CreatePartition(CreatePartitionRequest) returns (Partition) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/entities/*}/partitions" + body: "partition" + }; + option (google.api.method_signature) = "parent,partition"; + } + + // Delete a metadata partition. + rpc DeletePartition(DeletePartitionRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*/partitions/**}" + }; + option (google.api.method_signature) = "name"; + } + // Get a metadata partition of an entity. rpc GetPartition(GetPartitionRequest) returns (Partition) { option (google.api.http) = { @@ -68,11 +109,60 @@ service MetadataService { } } +// Create a metadata entity request. +message CreateEntityRequest { + // Required. The resource name of the parent zone: + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Zone" + } + ]; + + // Required. Entity resource. + Entity entity = 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 a metadata entity request. +// The exiting entity will be fully replaced by the entity in the request. +// The entity ID is mutable. To modify the ID, use the current entity ID in the +// request URL and specify the new ID in the request body. +message UpdateEntityRequest { + // Required. Update description. + Entity entity = 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]; +} + +// Delete a metadata entity request. +message DeleteEntityRequest { + // Required. The resource name of the entity: + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Entity" + } + ]; + + // Required. The etag associated with the entity, which can be retrieved with a + // [GetEntity][] request. + string etag = 2 [(google.api.field_behavior) = REQUIRED]; +} + // List metadata entities request. message ListEntitiesRequest { // Entity views. enum EntityView { - // The default unset value. The API will default to the FULL view. + // The default unset value. Return both table and fileset entities + // if unspecified. ENTITY_VIEW_UNSPECIFIED = 0; // Only list table entities. @@ -95,8 +185,8 @@ message ListEntitiesRequest { EntityView view = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. Maximum number of entities to return. The service may return fewer than - // this value. If unspecified, at most 10 entities will be returned. The - // maximum value is 1000; values above 1000 are set to 1000. + // this value. If unspecified, 100 entities will be returned by default. The + // maximum value is 500; larger values will will be truncated to 500. int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Page token received from a previous `ListEntities` call. Provide @@ -105,7 +195,14 @@ message ListEntitiesRequest { // page token. string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Filter request by name prefix. + // Optional. The following filter parameters can be added to the URL to limit the + // entities returned by the API: + // + // - Entity ID: ?filter="id=entityID" + // - Asset ID: ?filter="asset=assetID" + // - Data path ?filter="data_path=gs://my-bucket" + // - Is HIVE compatible: ?filter="hive_compatible=true" + // - Is BigQuery compatible: ?filter="bigquery_compatible=true" string filter = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -132,7 +229,7 @@ message GetEntityRequest { // Include basic information and schema. SCHEMA = 2; - // Include everything. + // Include everything. Currently, this is the same as the SCHEMA view. FULL = 4; } @@ -162,8 +259,8 @@ message ListPartitionsRequest { ]; // Optional. Maximum number of partitions to return. The service may return fewer than - // this value. If unspecified, at most 10 partitions will be returned. The - // maximum value is 1000; values above 1000 will be coerced to 1000. + // this value. If unspecified, 100 partitions will be returned by default. The + // maximum page size is 500; larger values will will be truncated to 500. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Page token received from a previous `ListPartitions` call. Provide @@ -172,10 +269,68 @@ message ListPartitionsRequest { // page token. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Filter request. + // Optional. Filter the partitions returned to the caller using a key value pair + // expression. Supported operators and syntax: + // + // - logic operators: AND, OR + // - comparison operators: <, >, >=, <= ,=, != + // - LIKE operators: + // - The right hand of a LIKE operator supports "." and + // "*" for wildcard searches, for example "value1 LIKE ".*oo.*" + // - parenthetical grouping: ( ) + // + // Sample filter expression: `?filter="key1 < value1 OR key2 > value2" + // + // **Notes:** + // + // - Keys to the left of operators are case insensitive. + // - Partition results are sorted first by creation time, then by + // lexicographic order. + // - Up to 20 key value filter pairs are allowed, but due to performance + // considerations, only the first 10 will be used as a filter. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } +// Create metadata partition request. +message CreatePartitionRequest { + // Required. The resource name of the parent zone: + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Entity" + } + ]; + + // Required. Partition resource. + Partition partition = 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]; +} + +// Delete metadata partition request. +message DeletePartitionRequest { + // Required. The resource name of the partition. + // format: + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}/partitions/{partition_value_path}`. + // The {partition_value_path} segment consists of an ordered sequence of + // partition values separated by "/". All values must be provided. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Partition" + } + ]; + + // Optional. The etag associated with the partition. + string etag = 2 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL + ]; +} + // List metadata partitions response. message ListPartitionsResponse { // Partitions under the specified parent entity. @@ -189,7 +344,9 @@ message ListPartitionsResponse { // Get metadata partition request. message GetPartitionRequest { // Required. The resource name of the partition: - // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}/partitions/{partition_id}`. + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}/partitions/{partition_value_path}`. + // The {partition_value_path} segment consists of an ordered sequence of + // partition values separated by "/". All values must be provided. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -246,10 +403,11 @@ message Entity { } ]; - // Optional. User friendly display name. + // Optional. Display name must be shorter than or equal to 256 characters. string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. User friendly longer description text. + // Optional. User friendly longer description text. Must be shorter than or equal to + // 1024 characters. string description = 3 [(google.api.field_behavior) = OPTIONAL]; // Output only. The time when the entity was created. @@ -261,18 +419,27 @@ message Entity { // Required. A user-provided entity ID. It is mutable, and will be used as the // published table name. Specifying a new ID in an update entity // request will override the existing value. + // The ID must contain only letters (a-z, A-Z), numbers (0-9), and + // underscores. Must begin with a letter and consist of 256 or fewer + // characters. string id = 7 [(google.api.field_behavior) = REQUIRED]; - // Optional. The etag for this entity. - // Required for update requests. It must match the server's etag. + // Optional. The etag associated with the entity, which can be retrieved with a + // [GetEntity][] request. Required for update and delete requests. string etag = 8 [(google.api.field_behavior) = OPTIONAL]; - // Required. The type of entity. - Type type = 10 [(google.api.field_behavior) = REQUIRED]; + // Required. Immutable. The type of entity. + Type type = 10 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; - // Required. The name of the asset associated with the storage location containing the - // entity data. - string asset = 11 [(google.api.field_behavior) = REQUIRED]; + // Required. Immutable. The ID of the asset associated with the storage location containing the + // entity data. The entity must be with in the same zone with the asset. + string asset = 11 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; // Required. Immutable. The storage path of the entity data. // For Cloud Storage data, this is the fully-qualified path to the entity, @@ -292,8 +459,11 @@ message Entity { // Output only. The name of the associated Data Catalog entry. string catalog_entry = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. Identifies the storage system of the entity data. - StorageSystem system = 15 [(google.api.field_behavior) = REQUIRED]; + // Required. Immutable. Identifies the storage system of the entity data. + StorageSystem system = 15 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; // Required. Identifies the storage format of the entity data. // It does not apply to entities with data stored in BigQuery. @@ -315,9 +485,11 @@ message Partition { pattern: "projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity}/partitions/{partition}" }; - // Output only. The resource name of the partition, of the form: - // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}/partitions/{partition_id}`. - // {partition_id} is a generated unique ID. + // Output only. Partition values used in the HTTP URL must be + // double encoded. For example, `url_encode(url_encode(value))` can be used + // to encode "US:CA/CA#Sunnyvale so that the request URL ends + // with "/partitions/US%253ACA/CA%2523Sunnyvale". + // The name field in the response retains the encoded format. string name = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -334,14 +506,17 @@ message Partition { // Required. Immutable. The location of the entity data within the partition, for example, // `gs://bucket/path/to/entity/key1=value1/key2=value2`. + // Or `projects//datasets//tables/` string location = 3 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; // Optional. The etag for this partition. - // Required for update requests. It must match the server's etag. - string etag = 4 [(google.api.field_behavior) = OPTIONAL]; + string etag = 4 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL + ]; } // Schema information describing the structure and layout of the data. @@ -415,10 +590,13 @@ message Schema { // Represents a column field within a table schema. message SchemaField { - // Required. The name of the field. + // Required. The name of the field. Must contain only letters, numbers and + // underscores, with a maximum length of 767 characters, + // and must begin with a letter or underscore. string name = 1 [(google.api.field_behavior) = REQUIRED]; - // Optional. User friendly field description. + // Optional. User friendly field description. Must be less than or equal to 1024 + // characters. string description = 2 [(google.api.field_behavior) = OPTIONAL]; // Required. The type of field. @@ -431,13 +609,21 @@ message Schema { repeated SchemaField fields = 10 [(google.api.field_behavior) = OPTIONAL]; } - // Represents a key field within the entity's partition structure. + // Represents a key field within the entity's partition structure. You could + // have up to 20 partition fields, but only the first 10 partitions have the + // filtering ability due to performance consideration. **Note:** + // Partition fields are immutable. message PartitionField { - // Required. The name of the field. + // Required. Partition field name must consist of letters, numbers, and underscores + // only, with a maximum of length of 256 characters, + // and must begin with a letter or underscore.. string name = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The type of field. - Type type = 2 [(google.api.field_behavior) = REQUIRED]; + // Required. Immutable. The type of field. + Type type = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; } // The structure of paths within the entity, which represent partitions. @@ -451,11 +637,23 @@ message Schema { HIVE_COMPATIBLE = 1; } - // Required. Whether the schema is user-managed or managed by the service. User-managed - // schemas are not automatically updated by discovery jobs. + // Required. Set to `true` if user-managed or `false` if managed by Dataplex. The + // default is `false` (managed by Dataplex). + // + // - Set to `false`to enable Dataplex discovery to update the schema. + // including new data discovery, schema inference, and schema evolution. + // Users retain the ability to input and edit the schema. Dataplex + // treats schema input by the user as though produced + // by a previous Dataplex discovery operation, and it will + // evolve the schema and take action based on that treatment. + // + // - Set to `true` to fully manage the entity + // schema. This setting guarantees that Dataplex will not + // change schema fields. bool user_managed = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. The sequence of fields describing data in table entities. + // **Note:** BigQuery SchemaFields are immutable. repeated SchemaField fields = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The sequence of fields describing the partition structure in entities. @@ -470,24 +668,27 @@ message Schema { message StorageFormat { // Describes CSV and similar semi-structured data formats. message CsvOptions { - // Optional. The character encoding of the data. The default is UTF-8. + // Optional. The character encoding of the data. Accepts "US-ASCII", "UTF-8", and + // "ISO-8859-1". Defaults to UTF-8 if unspecified. string encoding = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. The number of rows to interpret as header rows that should be skipped - // when reading data rows. + // when reading data rows. Defaults to 0. int32 header_rows = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The delimiter used to separate values. Defaults to ','. string delimiter = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The character used to quote column values. Defaults to empty, - // implying unquoted data. + // Optional. The character used to quote column values. Accepts '"' + // (double quotation mark) or ''' (single quotation mark). Defaults to + // '"' (double quotation mark) if unspecified. string quote = 4 [(google.api.field_behavior) = OPTIONAL]; } // Describes JSON data format. message JsonOptions { - // Optional. The character encoding of the data. The default is UTF-8. + // Optional. The character encoding of the data. Accepts "US-ASCII", "UTF-8" and + // "ISO-8859-1". Defaults to UTF-8 if not specified. string encoding = 1 [(google.api.field_behavior) = OPTIONAL]; } @@ -514,7 +715,7 @@ message StorageFormat { // Image data formats (such as jpg and png). IMAGE = 200; - // Audio data formats (such as mp3 and wav). + // Audio data formats (such as mp3, and wav). AUDIO = 201; // Video data formats (such as mp4 and mpg). @@ -546,15 +747,27 @@ message StorageFormat { } // Output only. The data format associated with the stored data, which represents - // content type values. + // content type values. The value is inferred from mime type. Format format = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. The compression type associated with the stored data. // If unspecified, the data is uncompressed. CompressionFormat compression_format = 2 [(google.api.field_behavior) = OPTIONAL]; - // Required. The mime type descriptor for the data. This field is valid for formats - // other than `UNKNOWN` and `MIXED`. + // Required. The mime type descriptor for the data. Must match the pattern + // {type}/{subtype}. Supported values: + // + // - application/x-parquet + // - application/x-avro + // - application/x-orc + // - application/x-tfrecord + // - application/json + // - application/{subtypes} + // - text/csv + // - text/ + // - image/{image subtype} + // - video/{video subtype} + // - audio/{audio subtype} string mime_type = 3 [(google.api.field_behavior) = REQUIRED]; // Additional format-specific options. diff --git a/google/cloud/dataplex/v1/resources.proto b/google/cloud/dataplex/v1/resources.proto index 5c71a9bb5..e07caac23 100644 --- a/google/cloud/dataplex/v1/resources.proto +++ b/google/cloud/dataplex/v1/resources.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dataplex.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; @@ -258,7 +257,7 @@ message Zone { } // Output only. The relative resource name of the zone, of the form: - // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}` + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`. string name = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -634,13 +633,6 @@ message Asset { // being managed within a lake. For example: // `projects/{project_number}/buckets/{bucket_id}` // `projects/{project_number}/datasets/{dataset_id}` - // If the creation policy indicates ATTACH behavior, then an existing - // resource must be provided. - // If the policy indicates CREATE behavior, new resource will be created - // with the given name.However if it is empty, then the resource will be - // created using {asset_id}-{UUID} template for name. - // The location of the referenced resource must always match that of the - // asset. string name = 1 [(google.api.field_behavior) = IMMUTABLE]; // Required. Immutable. Type of resource. diff --git a/google/cloud/dataplex/v1/service.proto b/google/cloud/dataplex/v1/service.proto index 401cb9a83..f7995c07b 100644 --- a/google/cloud/dataplex/v1/service.proto +++ b/google/cloud/dataplex/v1/service.proto @@ -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/dataplex/v1/analyze.proto"; import "google/cloud/dataplex/v1/resources.proto"; import "google/cloud/dataplex/v1/tasks.proto"; import "google/longrunning/operations.proto"; @@ -34,9 +35,9 @@ option java_package = "com.google.cloud.dataplex.v1"; // Dataplex service provides data lakes as a service. The primary resources // offered by this service are Lakes, Zones and Assets which collectively allow -// a data adminstrator 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. +// 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 DataplexService { option (google.api.default_host) = "dataplex.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; @@ -308,12 +309,75 @@ service DataplexService { }; option (google.api.method_signature) = "name"; } + + // Create an environment resource. + rpc CreateEnvironment(CreateEnvironmentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/lakes/*}/environments" + body: "environment" + }; + option (google.api.method_signature) = "parent,environment,environment_id"; + option (google.longrunning.operation_info) = { + response_type: "Environment" + metadata_type: "OperationMetadata" + }; + } + + // Update the environment resource. + rpc UpdateEnvironment(UpdateEnvironmentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{environment.name=projects/*/locations/*/lakes/*/environments/*}" + body: "environment" + }; + option (google.api.method_signature) = "environment,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Environment" + metadata_type: "OperationMetadata" + }; + } + + // Delete the environment resource. All the child resources must have been + // deleted before environment deletion can be initiated. + rpc DeleteEnvironment(DeleteEnvironmentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/lakes/*/environments/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists environments under the given lake. + rpc ListEnvironments(ListEnvironmentsRequest) returns (ListEnvironmentsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/lakes/*}/environments" + }; + option (google.api.method_signature) = "parent"; + } + + // Get environment resource. + rpc GetEnvironment(GetEnvironmentRequest) returns (Environment) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/lakes/*/environments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists session resources in an environment. + rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/lakes/*/environments/*}/sessions" + }; + option (google.api.method_signature) = "parent"; + } } // Create lake request. message CreateLakeRequest { // Required. The resource name of the lake location, of the form: - // `projects/{project_number}/locations/{location_id}` + // projects/{project_number}/locations/{location_id} // where `location_id` refers to a GCP region. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -357,7 +421,7 @@ message UpdateLakeRequest { // Delete lake request. message DeleteLakeRequest { // Required. The resource name of the lake: - // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}` + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -411,7 +475,7 @@ message ListLakesResponse { // List lake actions request. message ListLakeActionsRequest { // Required. The resource name of the parent lake: - // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}` + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -585,7 +649,7 @@ message GetZoneRequest { // Create asset request. message CreateAssetRequest { // Required. The resource name of the parent zone: - // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}` + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -830,7 +894,7 @@ message ListTasksResponse { // Get task request. message GetTaskRequest { // Required. The resource name of the task: - // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{tasks_id}` + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{tasks_id}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -895,3 +959,151 @@ message CancelJobRequest { } ]; } + +// Create environment request. +message CreateEnvironmentRequest { + // Required. The resource name of the parent lake: + // `projects/{project_id}/locations/{location_id}/lakes/{lake_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Lake" + } + ]; + + // Required. Environment identifier. + // * Must contain only lowercase letters, numbers and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the lake. + string environment_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Environment resource. + Environment environment = 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 environment request. +message UpdateEnvironmentRequest { + // Required. Mask of fields to update. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Update description. + // Only fields specified in `update_mask` are updated. + Environment environment = 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]; +} + +// Delete environment request. +message DeleteEnvironmentRequest { + // Required. The resource name of the environment: + // `projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Environment" + } + ]; +} + +// List environments request. +message ListEnvironmentsRequest { + // Required. The resource name of the parent lake: + // `projects/{project_id}/locations/{location_id}/lakes/{lake_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Lake" + } + ]; + + // Optional. Maximum number of environments to return. The service may return fewer than + // this value. If unspecified, at most 10 environments 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 `ListEnvironments` call. Provide this + // to retrieve the subsequent page. When paginating, all other parameters + // provided to `ListEnvironments` 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 environments response. +message ListEnvironmentsResponse { + // Environments under the given parent lake. + repeated Environment environments = 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; +} + +// Get environment request. +message GetEnvironmentRequest { + // Required. The resource name of the environment: + // `projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Environment" + } + ]; +} + +// List sessions request. +message ListSessionsRequest { + // Required. The resource name of the parent environment: + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/Environment" + } + ]; + + // Optional. Maximum number of sessions to return. The service may return fewer than + // this value. If unspecified, at most 10 sessions 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 `ListSessions` call. Provide this to + // retrieve the subsequent page. When paginating, all other parameters + // provided to `ListSessions` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter request. The following `mode` filter is supported to return only the + // sessions belonging to the requester when the mode is USER and return + // sessions of all the users when the mode is ADMIN. When no filter is sent + // default to USER mode. + // NOTE: When the mode is ADMIN, the requester should have + // `dataplex.environments.listAllSessions` permission to list all sessions, + // in absence of the permission, the request fails. + // + // mode = ADMIN | USER + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// List sessions response. +message ListSessionsResponse { + // Sessions under a given environment. + repeated Session sessions = 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; +} diff --git a/google/cloud/dataplex/v1/tasks.proto b/google/cloud/dataplex/v1/tasks.proto index c716944c6..8ca33dac1 100644 --- a/google/cloud/dataplex/v1/tasks.proto +++ b/google/cloud/dataplex/v1/tasks.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dataplex.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dataplex/v1/resources.proto"; @@ -40,23 +39,28 @@ message Task { // Batch compute resources associated with the task. message BatchComputeResources { // Optional. Total number of job executors. + // Executor Count should be between 2 and 100. [Default=2] int32 executors_count = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. Max configurable executors. // If max_executors_count > executors_count, then auto-scaling is enabled. + // Max Executor Count should be between 2 and 1000. [Default=1000] int32 max_executors_count = 2 [(google.api.field_behavior) = OPTIONAL]; } // Container Image Runtime Configuration used with Batch execution. message ContainerImageRuntime { + // Optional. Container image to use. + string image = 1 [(google.api.field_behavior) = OPTIONAL]; + // Optional. A list of Java JARS to add to the classpath. // Valid input includes Cloud Storage URIs to Jar binaries. - // For example, `gs://bucket-name/my/path/to/file.jar`. + // For example, gs://bucket-name/my/path/to/file.jar repeated string java_jars = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A list of python packages to be installed. // Valid formats include Cloud Storage URI to a PIP installable library. - // For example, `gs://bucket-name/my/path/to/lib.tar.gz`. + // For example, gs://bucket-name/my/path/to/lib.tar.gz repeated string python_packages = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Override to common configuration of open source components installed on @@ -138,7 +142,7 @@ message Task { // Set to zero to never attempt to retry a failed task. int32 max_retries = 7 [(google.api.field_behavior) = OPTIONAL]; - // Trigger only applies for `RECURRING` tasks. + // Trigger only applies for RECURRING tasks. oneof trigger { // Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running // tasks periodically. @@ -173,8 +177,17 @@ message Task { // used. string service_account = 5 [(google.api.field_behavior) = REQUIRED]; + // Optional. The project in which jobs are run. By default, the project containing the + // Lake is used. If a project is provided, the + // [ExecutionSpec.service_account][google.cloud.dataplex.v1.Task.ExecutionSpec.service_account] must belong to this project. + string project = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The maximum duration after which the job execution is expired. google.protobuf.Duration max_job_execution_lifetime = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Cloud KMS key to use for encryption, of the form: + // `projects/{project_number}/locations/{location_id}/keyRings/{key-ring-name}/cryptoKeys/{key-name}`. + string kms_key = 9 [(google.api.field_behavior) = OPTIONAL]; } // User-specified config for running a Spark task. @@ -225,6 +238,15 @@ message Task { InfrastructureSpec infrastructure_spec = 6 [(google.api.field_behavior) = OPTIONAL]; } + // Status of the task execution (e.g. Jobs). + message ExecutionStatus { + // Output only. Last update time of the status. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. latest job execution + Job latest_job = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Output only. The relative resource name of the task, of the form: // projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ // tasks/{task_id}. @@ -263,6 +285,9 @@ message Task { // Required. Spec related to how a task is executed. ExecutionSpec execution_spec = 101 [(google.api.field_behavior) = REQUIRED]; + // Output only. Status of the latest task executions. + ExecutionStatus execution_status = 201 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Task template specific user-specified config. oneof config { // Config related to running custom Spark tasks. diff --git a/google/cloud/dataproc/BUILD.bazel b/google/cloud/dataproc/BUILD.bazel index 2691942f2..192ecee57 100644 --- a/google/cloud/dataproc/BUILD.bazel +++ b/google/cloud/dataproc/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-dataproc", "ruby-cloud-env-prefix=DATAPROC", - "ruby-cloud-wrapper-of=v1:0.7;v1beta2:0.6", + "ruby-cloud-wrapper-of=v1:0.7", "ruby-cloud-product-url=https://cloud.google.com/dataproc", "ruby-cloud-api-id=dataproc.googleapis.com", "ruby-cloud-api-shortname=dataproc", diff --git a/google/cloud/dataproc/dataproc.yaml b/google/cloud/dataproc/dataproc.yaml deleted file mode 100644 index 4d1ca2d03..000000000 --- a/google/cloud/dataproc/dataproc.yaml +++ /dev/null @@ -1,127 +0,0 @@ -type: google.api.Service -config_version: 2 -name: dataproc.googleapis.com -title: Cloud Dataproc API - -apis: -- name: google.cloud.dataproc.v1.AutoscalingPolicyService -- name: google.cloud.dataproc.v1.ClusterController -- name: google.cloud.dataproc.v1.JobController -- name: google.cloud.dataproc.v1.WorkflowTemplateService - -types: -- name: google.cloud.dataproc.v1.ClusterOperationMetadata -- name: google.cloud.dataproc.v1.DiagnoseClusterResults -- name: google.cloud.dataproc.v1.WorkflowMetadata - -documentation: - summary: 'Manages Hadoop-based clusters and jobs on Google Cloud Platform.' - 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. - - - 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: '/v1/{resource=projects/*/regions/*/clusters/*}:getIamPolicy' - body: '*' - additional_bindings: - - post: '/v1/{resource=projects/*/regions/*/jobs/*}:getIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/operations/*}:getIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/workflowTemplates/*}:getIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/locations/*/workflowTemplates/*}:getIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/autoscalingPolicies/*}:getIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/locations/*/autoscalingPolicies/*}:getIamPolicy' - body: '*' - - get: '/v1/{resource=projects/*/regions/*/clusters/*}:getIamPolicy' - - get: '/v1/{resource=projects/*/regions/*/jobs/*}:getIamPolicy' - - get: '/v1/{resource=projects/*/regions/*/operations/*}:getIamPolicy' - - get: '/v1/{resource=projects/*/regions/*/workflowTemplates/*}:getIamPolicy' - - get: '/v1/{resource=projects/*/regions/*/autoscalingPolicies/*}:getIamPolicy' - - get: '/v1/{resource=projects/*/locations/*/workflowTemplates/*}:getIamPolicy' - - get: '/v1/{resource=projects/*/locations/*/autoscalingPolicies/*}:getIamPolicy' - - selector: google.iam.v1.IAMPolicy.SetIamPolicy - post: '/v1/{resource=projects/*/regions/*/clusters/*}:setIamPolicy' - body: '*' - additional_bindings: - - post: '/v1/{resource=projects/*/regions/*/jobs/*}:setIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/operations/*}:setIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/workflowTemplates/*}:setIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/locations/*/workflowTemplates/*}:setIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/autoscalingPolicies/*}:setIamPolicy' - body: '*' - - post: '/v1/{resource=projects/*/locations/*/autoscalingPolicies/*}:setIamPolicy' - body: '*' - - selector: google.iam.v1.IAMPolicy.TestIamPermissions - post: '/v1/{resource=projects/*/regions/*/clusters/*}:testIamPermissions' - body: '*' - additional_bindings: - - post: '/v1/{resource=projects/*/regions/*/jobs/*}:testIamPermissions' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/operations/*}:testIamPermissions' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/workflowTemplates/*}:testIamPermissions' - body: '*' - - post: '/v1/{resource=projects/*/locations/*/workflowTemplates/*}:testIamPermissions' - body: '*' - - post: '/v1/{resource=projects/*/regions/*/autoscalingPolicies/*}:testIamPermissions' - body: '*' - - post: '/v1/{resource=projects/*/locations/*/autoscalingPolicies/*}:testIamPermissions' - body: '*' - - selector: google.longrunning.Operations.CancelOperation - post: '/v1/{name=projects/*/regions/*/operations/*}:cancel' - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1/{name=projects/*/regions/*/operations/*}' - - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=projects/*/regions/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v1/{name=projects/*/regions/*/operations}' - -authentication: - rules: - - selector: 'google.cloud.dataproc.v1.ClusterController.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.dataproc.v1.JobController.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.dataproc.v1.WorkflowTemplateService.*' - 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 diff --git a/google/cloud/dataproc/v1/BUILD.bazel b/google/cloud/dataproc/v1/BUILD.bazel index ffd5ce7f8..5eeb45672 100644 --- a/google/cloud/dataproc/v1/BUILD.bazel +++ b/google/cloud/dataproc/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":dataproc_java_grpc", ], + transport = "grpc+rest", deps = [ ":dataproc_java_proto", ], @@ -81,9 +82,13 @@ java_gapic_test( name = "dataproc_java_gapic_test_suite", test_classes = [ # Add AutoscalingPolicyService to gapic yaml + "com.google.cloud.dataproc.v1.AutoscalingPolicyServiceClientHttpJsonTest", "com.google.cloud.dataproc.v1.AutoscalingPolicyServiceClientTest", + "com.google.cloud.dataproc.v1.ClusterControllerClientHttpJsonTest", "com.google.cloud.dataproc.v1.ClusterControllerClientTest", + "com.google.cloud.dataproc.v1.JobControllerClientHttpJsonTest", "com.google.cloud.dataproc.v1.JobControllerClientTest", + "com.google.cloud.dataproc.v1.WorkflowTemplateServiceClientHttpJsonTest", "com.google.cloud.dataproc.v1.WorkflowTemplateServiceClientTest", ], runtime_deps = [":dataproc_java_gapic_test"], @@ -92,6 +97,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-dataproc-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":dataproc_java_gapic", ":dataproc_java_grpc", @@ -128,6 +135,7 @@ go_gapic_library( grpc_service_config = "dataproc_grpc_service_config.json", importpath = "cloud.google.com/go/dataproc/apiv1;dataproc", service_yaml = "dataproc_v1.yaml", + transport = "grpc+rest", deps = [ ":dataproc_go_proto", "//google/longrunning:longrunning_go_proto", @@ -161,12 +169,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "dataproc_py_gapic", srcs = [":dataproc_proto"], grpc_service_config = "dataproc_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "dataproc_py_gapic_test", + srcs = [ + "dataproc_py_gapic_pytest.py", + "dataproc_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dataproc_py_gapic"], ) py_gapic_assembly_pkg( @@ -327,6 +347,7 @@ csharp_gapic_library( srcs = [":dataproc_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dataproc_grpc_service_config.json", + service_yaml = "dataproc_v1.yaml", deps = [ ":dataproc_csharp_grpc", ":dataproc_csharp_proto", diff --git a/google/cloud/dataproc/v1/autoscaling_policies.proto b/google/cloud/dataproc/v1/autoscaling_policies.proto index 94b225a47..18b2f7df3 100644 --- a/google/cloud/dataproc/v1/autoscaling_policies.proto +++ b/google/cloud/dataproc/v1/autoscaling_policies.proto @@ -153,8 +153,10 @@ message AutoscalingPolicy { // Basic algorithm for autoscaling. message BasicAutoscalingAlgorithm { - // Required. YARN autoscaling configuration. - BasicYarnAutoscalingConfig yarn_config = 1 [(google.api.field_behavior) = REQUIRED]; + oneof config { + // Required. YARN autoscaling configuration. + BasicYarnAutoscalingConfig yarn_config = 1 [(google.api.field_behavior) = REQUIRED]; + } // Optional. Duration between scaling events. A scaling period starts after // the update operation from the previous event has completed. diff --git a/google/cloud/dataproc/v1/clusters.proto b/google/cloud/dataproc/v1/clusters.proto index 0bb1aaef1..9550278b9 100644 --- a/google/cloud/dataproc/v1/clusters.proto +++ b/google/cloud/dataproc/v1/clusters.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -167,6 +167,15 @@ message Cluster { // when clusters are updated. ClusterConfig config = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The virtual cluster config, used when creating a Dataproc cluster that + // does not directly control the underlying compute resources, for example, + // when creating a [Dataproc-on-GKE + // cluster](https://cloud.google.com/dataproc/docs/concepts/jobs/dataproc-gke#create-a-dataproc-on-gke-cluster). + // Note that Dataproc may set default values, and values may change when + // clusters are updated. Exactly one of config or virtualClusterConfig must be + // specified. + VirtualClusterConfig virtual_cluster_config = 10 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The labels to associate with this cluster. // Label **keys** must contain 1 to 63 characters, and must conform to // [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). @@ -276,32 +285,43 @@ message ClusterConfig { // Optional. Metastore configuration. MetastoreConfig metastore_config = 20 [(google.api.field_behavior) = OPTIONAL]; - // Optional. BETA. The Kubernetes Engine config for Dataproc clusters deployed to - // Kubernetes. Setting this is considered mutually exclusive with Compute - // Engine-based options such as `gce_cluster_config`, `master_config`, - // `worker_config`, `secondary_worker_config`, and `autoscaling_config`. - GkeClusterConfig gke_cluster_config = 21 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The config for Dataproc metrics. + DataprocMetricConfig dataproc_metric_config = 23 [(google.api.field_behavior) = OPTIONAL]; } -// The GKE config for this cluster. -message GkeClusterConfig { - // A full, namespace-isolated deployment target for an existing GKE cluster. - message NamespacedGkeDeploymentTarget { - // Optional. The target GKE cluster to deploy to. - // Format: 'projects/{project}/locations/{location}/clusters/{cluster_id}' - string target_gke_cluster = 1 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { - type: "container.googleapis.com/Cluster" - } - ]; - - // Optional. A namespace within the GKE cluster to deploy into. - string cluster_namespace = 2 [(google.api.field_behavior) = OPTIONAL]; +// Dataproc cluster config for a cluster that does not directly control the +// underlying compute resources, such as a [Dataproc-on-GKE +// cluster](https://cloud.google.com/dataproc/docs/concepts/jobs/dataproc-gke#create-a-dataproc-on-gke-cluster). +message VirtualClusterConfig { + // Optional. A Storage bucket used to stage job + // dependencies, config files, and job driver console output. + // If you do not specify a staging bucket, Cloud + // Dataproc will determine a Cloud Storage location (US, + // ASIA, or EU) for your cluster's staging bucket according to the + // Compute Engine zone where your cluster is deployed, and then create + // and manage this project-level, per-location bucket (see + // [Dataproc staging and temp + // buckets](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). + // **This field requires a Cloud Storage bucket name, not a `gs://...` URI to + // a Cloud Storage bucket.** + string staging_bucket = 1 [(google.api.field_behavior) = OPTIONAL]; + + oneof infrastructure_config { + // Required. The configuration for running the Dataproc cluster on Kubernetes. + KubernetesClusterConfig kubernetes_cluster_config = 6 [(google.api.field_behavior) = REQUIRED]; } - // Optional. A target for the deployment. - NamespacedGkeDeploymentTarget namespaced_gke_deployment_target = 1 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Configuration of auxiliary services used by this cluster. + AuxiliaryServicesConfig auxiliary_services_config = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Auxiliary services configuration for a Cluster. +message AuxiliaryServicesConfig { + // Optional. The Hive Metastore configuration for this workload. + MetastoreConfig metastore_config = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Spark History Server configuration for the workload. + SparkHistoryServerConfig spark_history_server_config = 2 [(google.api.field_behavior) = OPTIONAL]; } // Endpoint config for this cluster @@ -660,8 +680,8 @@ message DiskConfig { // Optional. Interface type of local SSDs (default is "scsi"). // Valid values: "scsi" (Small Computer System Interface), // "nvme" (Non-Volatile Memory Express). - // See [SSD Interface - // types](https://cloud.google.com/compute/docs/disks/local-ssd#performance). + // See [local SSD + // performance](https://cloud.google.com/compute/docs/disks/local-ssd#performance). string local_ssd_interface = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -692,6 +712,10 @@ message ClusterStatus { CREATING = 1; // The cluster is currently running and healthy. It is ready for use. + // + // **Note:** The cluster state changes from "creating" to "running" status + // after the master node(s), first two primary worker nodes (and the last + // primary worker node if primary workers > 2) are running. RUNNING = 2; // The cluster encountered an error. It is not ready for use. @@ -921,6 +945,82 @@ message MetastoreConfig { ]; } + +// Dataproc metric config. +message DataprocMetricConfig { + // A source for the collection of Dataproc OSS metrics (see [available OSS + // metrics] + // (https://cloud.google.com//dataproc/docs/guides/monitoring#available_oss_metrics)). + enum MetricSource { + // Required unspecified metric source. + METRIC_SOURCE_UNSPECIFIED = 0; + + // Default monitoring agent metrics. If this source is enabled, + // Dataproc enables the monitoring agent in Compute Engine, + // and collects default monitoring agent metrics, which are published + // with an `agent.googleapis.com` prefix. + MONITORING_AGENT_DEFAULTS = 1; + + // HDFS metric source. + HDFS = 2; + + // Spark metric source. + SPARK = 3; + + // YARN metric source. + YARN = 4; + + // Spark History Server metric source. + SPARK_HISTORY_SERVER = 5; + + // Hiveserver2 metric source. + HIVESERVER2 = 6; + } + + // A Dataproc OSS metric. + message Metric { + // Required. Default metrics are collected unless `metricOverrides` are + // specified for the metric source (see [Available OSS metrics] + // (https://cloud.google.com/dataproc/docs/guides/monitoring#available_oss_metrics) + // for more information). + MetricSource metric_source = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specify one or more [available OSS metrics] + // (https://cloud.google.com/dataproc/docs/guides/monitoring#available_oss_metrics) + // to collect for the metric course (for the `SPARK` metric source, any + // [Spark metric] + // (https://spark.apache.org/docs/latest/monitoring.html#metrics) can be + // specified). + // + // Provide metrics in the following format: + // METRIC_SOURCE:INSTANCE:GROUP:METRIC + // Use camelcase as appropriate. + // + // Examples: + // + // ``` + // yarn:ResourceManager:QueueMetrics:AppsCompleted + // spark:driver:DAGScheduler:job.allJobs + // sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.committed + // hiveserver2:JVM:Memory:NonHeapMemoryUsage.used + // ``` + // + // Notes: + // + // * Only the specified overridden metrics will be collected for the + // metric source. For example, if one or more `spark:executive` metrics + // are listed as metric overrides, other `SPARK` metrics will not be + // collected. The collection of the default metrics for other OSS metric + // sources is unaffected. For example, if both `SPARK` andd `YARN` metric + // sources are enabled, and overrides are provided for Spark metrics only, + // all default YARN metrics will be collected. + repeated string metric_overrides = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Metrics sources to enable. + repeated Metric metrics = 1 [(google.api.field_behavior) = REQUIRED]; +} + // Contains cluster daemon metrics, such as HDFS and YARN stats. // // **Beta Feature**: This report is available for testing purposes only. It may diff --git a/google/cloud/dataproc/v1/shared.proto b/google/cloud/dataproc/v1/shared.proto index f574fe01b..187969157 100644 --- a/google/cloud/dataproc/v1/shared.proto +++ b/google/cloud/dataproc/v1/shared.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -108,6 +108,179 @@ message RuntimeInfo { string diagnostic_output_uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// The cluster's GKE config. +message GkeClusterConfig { + // Optional. A target GKE cluster to deploy to. It must be in the same project and + // region as the Dataproc cluster (the GKE cluster can be zonal or regional). + // Format: 'projects/{project}/locations/{location}/clusters/{cluster_id}' + string gke_cluster_target = 2 [ + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. GKE NodePools where workloads will be scheduled. At least one node pool + // must be assigned the 'default' role. Each role can be given to only a + // single NodePoolTarget. All NodePools must have the same location settings. + // If a nodePoolTarget is not specified, Dataproc constructs a default + // nodePoolTarget. + repeated GkeNodePoolTarget node_pool_target = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The configuration for running the Dataproc cluster on Kubernetes. +message KubernetesClusterConfig { + // Optional. A namespace within the Kubernetes cluster to deploy into. If this namespace + // does not exist, it is created. If it exists, Dataproc + // verifies that another Dataproc VirtualCluster is not installed + // into it. If not specified, the name of the Dataproc Cluster is used. + string kubernetes_namespace = 1 [(google.api.field_behavior) = OPTIONAL]; + + oneof config { + // Required. The configuration for running the Dataproc cluster on GKE. + GkeClusterConfig gke_cluster_config = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Optional. The software configuration for this Dataproc cluster running on Kubernetes. + KubernetesSoftwareConfig kubernetes_software_config = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The software configuration for this Dataproc cluster running on Kubernetes. +message KubernetesSoftwareConfig { + // The components that should be installed in this Dataproc cluster. The key + // must be a string from the KubernetesComponent enumeration. The value is + // the version of the software to be installed. + // At least one entry must be specified. + map component_version = 1; + + // The properties to set on daemon config files. + // + // Property keys are specified in `prefix:property` format, for example + // `spark:spark.kubernetes.container.image`. The following are supported + // prefixes and their mappings: + // + // * spark: `spark-defaults.conf` + // + // For more information, see [Cluster + // properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties). + map properties = 2; +} + +// GKE NodePools that Dataproc workloads run on. +message GkeNodePoolTarget { + // `Role` specifies whose tasks will run on the NodePool. The roles can be + // specific to workloads. Exactly one GkeNodePoolTarget within the + // VirtualCluster must have 'default' role, which is used to run all workloads + // that are not associated with a NodePool. + enum Role { + // Role is unspecified. + ROLE_UNSPECIFIED = 0; + + // Any roles that are not directly assigned to a NodePool run on the + // `default` role's NodePool. + DEFAULT = 1; + + // Run controllers and webhooks. + CONTROLLER = 2; + + // Run spark driver. + SPARK_DRIVER = 3; + + // Run spark executors. + SPARK_EXECUTOR = 4; + } + + // Required. The target GKE NodePool. + // Format: + // 'projects/{project}/locations/{location}/clusters/{cluster}/nodePools/{node_pool}' + string node_pool = 1 [ + (google.api.field_behavior) = REQUIRED + ]; + + // Required. The types of role for a GKE NodePool + repeated Role roles = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The configuration for the GKE NodePool. + // + // If specified, Dataproc attempts to create a NodePool with the + // specified shape. If one with the same name already exists, it is + // verified against all specified fields. If a field differs, the + // virtual cluster creation will fail. + // + // If omitted, any NodePool with the specified name is used. If a + // NodePool with the specified name does not exist, Dataproc create a NodePool + // with default values. + GkeNodePoolConfig node_pool_config = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The configuration of a GKE NodePool used by a [Dataproc-on-GKE +// cluster](https://cloud.google.com/dataproc/docs/concepts/jobs/dataproc-gke#create-a-dataproc-on-gke-cluster). +message GkeNodePoolConfig { + // Parameters that describe cluster nodes. + message GkeNodeConfig { + // Optional. The name of a Compute Engine [machine + // type](https://cloud.google.com/compute/docs/machine-types). + string machine_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether the nodes are created as [preemptible VM + // instances](https://cloud.google.com/compute/docs/instances/preemptible). + bool preemptible = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of local SSD disks to attach to the node, which is limited by + // the maximum number of disks allowable per zone (see [Adding Local + // SSDs](https://cloud.google.com/compute/docs/disks/local-ssd)). + int32 local_ssd_count = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of [hardware + // accelerators](https://cloud.google.com/compute/docs/gpus) to attach to + // each node. + repeated GkeNodePoolAcceleratorConfig accelerators = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Minimum CPU + // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) + // to be used by this instance. The instance may be scheduled on the + // specified or a newer CPU platform. Specify the friendly names of CPU + // platforms, such as "Intel Haswell"` or Intel Sandy Bridge". + string min_cpu_platform = 13 [(google.api.field_behavior) = OPTIONAL]; + } + + // A GkeNodeConfigAcceleratorConfig represents a Hardware Accelerator request + // for a NodePool. + message GkeNodePoolAcceleratorConfig { + // The number of accelerator cards exposed to an instance. + int64 accelerator_count = 1; + + // The accelerator type resource namename (see GPUs on Compute Engine). + string accelerator_type = 2; + } + + // GkeNodePoolAutoscaling contains information the cluster autoscaler needs to + // adjust the size of the node pool to the current cluster usage. + message GkeNodePoolAutoscalingConfig { + // The minimum number of nodes in the NodePool. Must be >= 0 and <= + // max_node_count. + int32 min_node_count = 2; + + // The maximum number of nodes in the NodePool. Must be >= min_node_count. + // **Note:** Quota must be sufficient to scale up the cluster. + int32 max_node_count = 3; + } + + // Optional. The node pool configuration. + GkeNodeConfig config = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The list of Compute Engine + // [zones](https://cloud.google.com/compute/docs/zones#available) where + // NodePool's nodes will be located. + // + // **Note:** Currently, only one zone may be specified. + // + // If a location is not specified during NodePool creation, Dataproc will + // choose a location. + repeated string locations = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The autoscaler configuration for this NodePool. The autoscaler is enabled + // only when a valid configuration is present. + GkeNodePoolAutoscalingConfig autoscaling = 4 [(google.api.field_behavior) = OPTIONAL]; +} + // Cluster components that can be activated. enum Component { // Unspecified component. Specifying this will cause Cluster creation to fail. diff --git a/google/cloud/dataqna/BUILD.bazel b/google/cloud/dataqna/BUILD.bazel index ee1a7024b..fa1e01625 100644 --- a/google/cloud/dataqna/BUILD.bazel +++ b/google/cloud/dataqna/BUILD.bazel @@ -25,7 +25,6 @@ ruby_cloud_gapic_library( "ruby-cloud-wrapper-of=v1alpha:0.0", "ruby-cloud-path-override=data_qn_a=dataqna", "ruby-cloud-namespace-override=Dataqna=DataQnA", - "ruby-cloud-product-url=https://cloud.google.com/bigquery/docs/dataqna/", "ruby-cloud-api-id=dataqna.googleapis.com", "ruby-cloud-api-shortname=dataqna", ], diff --git a/google/cloud/dataqna/v1alpha/BUILD.bazel b/google/cloud/dataqna/v1alpha/BUILD.bazel index d3c67abd5..a3a958f5e 100644 --- a/google/cloud/dataqna/v1alpha/BUILD.bazel +++ b/google/cloud/dataqna/v1alpha/BUILD.bazel @@ -77,6 +77,7 @@ java_gapic_library( test_deps = [ ":dataqna_java_grpc", ], + transport = "grpc+rest", deps = [ ":dataqna_java_proto", ], @@ -85,7 +86,9 @@ java_gapic_library( java_gapic_test( name = "dataqna_java_gapic_test_suite", test_classes = [ + "com.google.cloud.dataqna.v1alpha.AutoSuggestionServiceClientHttpJsonTest", "com.google.cloud.dataqna.v1alpha.AutoSuggestionServiceClientTest", + "com.google.cloud.dataqna.v1alpha.QuestionServiceClientHttpJsonTest", "com.google.cloud.dataqna.v1alpha.QuestionServiceClientTest", ], runtime_deps = [":dataqna_java_gapic_test"], @@ -94,6 +97,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-dataqna-v1alpha-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":dataqna_java_gapic", ":dataqna_java_grpc", @@ -130,6 +135,7 @@ go_gapic_library( grpc_service_config = "dataqna_grpc_service_config.json", importpath = "cloud.google.com/go/dataqna/apiv1alpha;dataqna", service_yaml = "dataqna_v1alpha.yaml", + transport = "grpc+rest", deps = [ ":dataqna_go_proto", ], @@ -159,12 +165,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "dataqna_py_gapic", srcs = [":dataqna_proto"], grpc_service_config = "dataqna_grpc_service_config.json", + transport = "grpc+rest", +) + +py_test( + name = "dataqna_py_gapic_test", + srcs = [ + "dataqna_py_gapic_pytest.py", + "dataqna_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dataqna_py_gapic"], ) py_gapic_assembly_pkg( @@ -323,6 +341,7 @@ csharp_gapic_library( srcs = [":dataqna_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dataqna_grpc_service_config.json", + service_yaml = "dataqna_v1alpha.yaml", deps = [ ":dataqna_csharp_grpc", ":dataqna_csharp_proto", diff --git a/google/cloud/datastream/BUILD.bazel b/google/cloud/datastream/BUILD.bazel index b82218727..12be00e08 100644 --- a/google/cloud/datastream/BUILD.bazel +++ b/google/cloud/datastream/BUILD.bazel @@ -15,13 +15,13 @@ load( # Generates a Ruby wrapper client for datastream. # Ruby wrapper clients are versionless, but are generated from source protos -# for a particular service version, v1alpha1 in this case. +# for a particular service version, v1 in this case. ruby_cloud_gapic_library( name = "datastream_ruby_wrapper", - srcs = ["//google/cloud/datastream/v1alpha1:datastream_proto_with_info"], + srcs = ["//google/cloud/datastream/v1:datastream_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-datastream", - "ruby-cloud-wrapper-of=v1alpha1:0.0", + "ruby-cloud-wrapper-of=v1:0.0", "ruby-cloud-product-url=https://cloud.google.com/datastream/", "ruby-cloud-api-id=datastream.googleapis.com", "ruby-cloud-api-shortname=datastream", diff --git a/google/cloud/datastream/v1/BUILD.bazel b/google/cloud/datastream/v1/BUILD.bazel new file mode 100644 index 000000000..f6d66982e --- /dev/null +++ b/google/cloud/datastream/v1/BUILD.bazel @@ -0,0 +1,397 @@ +# 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 = "datastream_proto", + srcs = [ + "datastream.proto", + "datastream_resources.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//:duration_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "datastream_proto_with_info", + deps = [ + ":datastream_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "datastream_java_proto", + deps = [":datastream_proto"], +) + +java_grpc_library( + name = "datastream_java_grpc", + srcs = [":datastream_proto"], + deps = [":datastream_java_proto"], +) + +java_gapic_library( + name = "datastream_java_gapic", + srcs = [":datastream_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "datastream_grpc_service_config.json", + service_yaml = "datastream_v1.yaml", + test_deps = [ + ":datastream_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":datastream_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "datastream_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.datastream.v1.DatastreamClientHttpJsonTest", + "com.google.cloud.datastream.v1.DatastreamClientTest", + ], + runtime_deps = [":datastream_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-datastream-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":datastream_java_gapic", + ":datastream_java_grpc", + ":datastream_java_proto", + ":datastream_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "datastream_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/datastream/v1", + protos = [":datastream_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "datastream_go_gapic", + srcs = [":datastream_proto_with_info"], + grpc_service_config = "datastream_grpc_service_config.json", + importpath = "cloud.google.com/go/datastream/apiv1;datastream", + metadata = True, + service_yaml = "datastream_v1.yaml", + transport = "grpc+rest", + deps = [ + ":datastream_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", + ], +) + +go_test( + name = "datastream_go_gapic_test", + srcs = [":datastream_go_gapic_srcjar_test"], + embed = [":datastream_go_gapic"], + importpath = "cloud.google.com/go/datastream/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-datastream-v1-go", + deps = [ + ":datastream_go_gapic", + ":datastream_go_gapic_srcjar-metadata.srcjar", + ":datastream_go_gapic_srcjar-test.srcjar", + ":datastream_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "datastream_py_gapic", + srcs = [":datastream_proto"], + grpc_service_config = "datastream_grpc_service_config.json", + service_yaml = "datastream_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "datastream_py_gapic_test", + srcs = [ + "datastream_py_gapic_pytest.py", + "datastream_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datastream_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "datastream-v1-py", + deps = [ + ":datastream_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "datastream_php_proto", + deps = [":datastream_proto"], +) + +php_grpc_library( + name = "datastream_php_grpc", + srcs = [":datastream_proto"], + deps = [":datastream_php_proto"], +) + +php_gapic_library( + name = "datastream_php_gapic", + srcs = [":datastream_proto_with_info"], + grpc_service_config = "datastream_grpc_service_config.json", + service_yaml = "datastream_v1.yaml", + deps = [ + ":datastream_php_grpc", + ":datastream_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-datastream-v1-php", + deps = [ + ":datastream_php_gapic", + ":datastream_php_grpc", + ":datastream_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "datastream_nodejs_gapic", + package_name = "@google-cloud/datastream", + src = ":datastream_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "datastream_grpc_service_config.json", + package = "google.cloud.datastream.v1", + service_yaml = "datastream_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "datastream-v1-nodejs", + deps = [ + ":datastream_nodejs_gapic", + ":datastream_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 = "datastream_ruby_proto", + deps = [":datastream_proto"], +) + +ruby_grpc_library( + name = "datastream_ruby_grpc", + srcs = [":datastream_proto"], + deps = [":datastream_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "datastream_ruby_gapic", + srcs = [":datastream_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=datastream.googleapis.com", + "ruby-cloud-api-shortname=datastream", + "ruby-cloud-gem-name=google-cloud-datastream-v1", + "ruby-cloud-product-url=https://cloud.google.com/datastream/", + ], + grpc_service_config = "datastream_grpc_service_config.json", + ruby_cloud_description = "Datastream is a serverless and easy-to-use change data capture (CDC) and replication service. It allows you to synchronize data across heterogeneous databases and applications reliably, and with minimal latency and downtime.", + ruby_cloud_title = "Datastream V1", + service_yaml = "datastream_v1.yaml", + deps = [ + ":datastream_ruby_grpc", + ":datastream_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-datastream-v1-ruby", + deps = [ + ":datastream_ruby_gapic", + ":datastream_ruby_grpc", + ":datastream_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 = "datastream_csharp_proto", + deps = [":datastream_proto"], +) + +csharp_grpc_library( + name = "datastream_csharp_grpc", + srcs = [":datastream_proto"], + deps = [":datastream_csharp_proto"], +) + +csharp_gapic_library( + name = "datastream_csharp_gapic", + srcs = [":datastream_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "datastream_grpc_service_config.json", + service_yaml = "datastream_v1.yaml", + deps = [ + ":datastream_csharp_grpc", + ":datastream_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-datastream-v1-csharp", + deps = [ + ":datastream_csharp_gapic", + ":datastream_csharp_grpc", + ":datastream_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "datastream_cc_proto", + deps = [":datastream_proto"], +) + +cc_grpc_library( + name = "datastream_cc_grpc", + srcs = [":datastream_proto"], + grpc_only = True, + deps = [":datastream_cc_proto"], +) diff --git a/google/cloud/datastream/v1/datastream.proto b/google/cloud/datastream/v1/datastream.proto new file mode 100644 index 000000000..a29633912 --- /dev/null +++ b/google/cloud/datastream/v1/datastream.proto @@ -0,0 +1,1042 @@ +// 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.cloud.datastream.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/datastream/v1/datastream_resources.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Datastream.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/datastream/v1;datastream"; +option java_multiple_files = true; +option java_outer_classname = "DatastreamProto"; +option java_package = "com.google.cloud.datastream.v1"; +option php_namespace = "Google\\Cloud\\Datastream\\V1"; +option ruby_package = "Google::Cloud::Datastream::V1"; + +// Datastream service +service Datastream { + option (google.api.default_host) = "datastream.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Use this method to list connection profiles created in a project and + // location. + rpc ListConnectionProfiles(ListConnectionProfilesRequest) returns (ListConnectionProfilesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/connectionProfiles" + }; + option (google.api.method_signature) = "parent"; + } + + // Use this method to get details about a connection profile. + rpc GetConnectionProfile(GetConnectionProfileRequest) returns (ConnectionProfile) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/connectionProfiles/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Use this method to create a connection profile in a project and location. + rpc CreateConnectionProfile(CreateConnectionProfileRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/connectionProfiles" + body: "connection_profile" + }; + option (google.api.method_signature) = "parent,connection_profile,connection_profile_id"; + option (google.longrunning.operation_info) = { + response_type: "ConnectionProfile" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to update the parameters of a connection profile. + rpc UpdateConnectionProfile(UpdateConnectionProfileRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{connection_profile.name=projects/*/locations/*/connectionProfiles/*}" + body: "connection_profile" + }; + option (google.api.method_signature) = "connection_profile,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "ConnectionProfile" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to delete a connection profile. + rpc DeleteConnectionProfile(DeleteConnectionProfileRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/connectionProfiles/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to discover a connection profile. + // The discover API call exposes the data objects and metadata belonging to + // the profile. Typically, a request returns children data objects of a + // parent data object that's optionally supplied in the request. + rpc DiscoverConnectionProfile(DiscoverConnectionProfileRequest) returns (DiscoverConnectionProfileResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/connectionProfiles:discover" + body: "*" + }; + } + + // Use this method to list streams in a project and location. + rpc ListStreams(ListStreamsRequest) returns (ListStreamsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/streams" + }; + option (google.api.method_signature) = "parent"; + } + + // Use this method to get details about a stream. + rpc GetStream(GetStreamRequest) returns (Stream) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/streams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Use this method to create a stream. + rpc CreateStream(CreateStreamRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/streams" + body: "stream" + }; + option (google.api.method_signature) = "parent,stream,stream_id"; + option (google.longrunning.operation_info) = { + response_type: "Stream" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to update the configuration of a stream. + rpc UpdateStream(UpdateStreamRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{stream.name=projects/*/locations/*/streams/*}" + body: "stream" + }; + option (google.api.method_signature) = "stream,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Stream" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to delete a stream. + rpc DeleteStream(DeleteStreamRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/streams/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to get details about a stream object. + rpc GetStreamObject(GetStreamObjectRequest) returns (StreamObject) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/streams/*/objects/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Use this method to look up a stream object by its source object identifier. + rpc LookupStreamObject(LookupStreamObjectRequest) returns (StreamObject) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/streams/*}/objects:lookup" + body: "*" + }; + } + + // Use this method to list the objects of a specific stream. + rpc ListStreamObjects(ListStreamObjectsRequest) returns (ListStreamObjectsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/streams/*}/objects" + }; + option (google.api.method_signature) = "parent"; + } + + // Use this method to start a backfill job for the specified stream object. + rpc StartBackfillJob(StartBackfillJobRequest) returns (StartBackfillJobResponse) { + option (google.api.http) = { + post: "/v1/{object=projects/*/locations/*/streams/*/objects/*}:startBackfillJob" + body: "*" + }; + option (google.api.method_signature) = "object"; + } + + // Use this method to stop a backfill job for the specified stream object. + rpc StopBackfillJob(StopBackfillJobRequest) returns (StopBackfillJobResponse) { + option (google.api.http) = { + post: "/v1/{object=projects/*/locations/*/streams/*/objects/*}:stopBackfillJob" + body: "*" + }; + option (google.api.method_signature) = "object"; + } + + // The FetchStaticIps API call exposes the static IP addresses used by + // Datastream. + rpc FetchStaticIps(FetchStaticIpsRequest) returns (FetchStaticIpsResponse) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*}:fetchStaticIps" + }; + option (google.api.method_signature) = "name"; + } + + // Use this method to create a private connectivity configuration. + rpc CreatePrivateConnection(CreatePrivateConnectionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/privateConnections" + body: "private_connection" + }; + option (google.api.method_signature) = "parent,private_connection,private_connection_id"; + option (google.longrunning.operation_info) = { + response_type: "PrivateConnection" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to get details about a private connectivity configuration. + rpc GetPrivateConnection(GetPrivateConnectionRequest) returns (PrivateConnection) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/privateConnections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Use this method to list private connectivity configurations in a project + // and location. + rpc ListPrivateConnections(ListPrivateConnectionsRequest) returns (ListPrivateConnectionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/privateConnections" + }; + option (google.api.method_signature) = "parent"; + } + + // Use this method to delete a private connectivity configuration. + rpc DeletePrivateConnection(DeletePrivateConnectionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/privateConnections/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to create a route for a private connectivity configuration + // in a project and location. + rpc CreateRoute(CreateRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/privateConnections/*}/routes" + body: "route" + }; + option (google.api.method_signature) = "parent,route,route_id"; + option (google.longrunning.operation_info) = { + response_type: "Route" + metadata_type: "OperationMetadata" + }; + } + + // Use this method to get details about a route. + rpc GetRoute(GetRouteRequest) returns (Route) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/privateConnections/*/routes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Use this method to list routes created for a private connectivity + // configuration in a project and location. + rpc ListRoutes(ListRoutesRequest) returns (ListRoutesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/privateConnections/*}/routes" + }; + option (google.api.method_signature) = "parent"; + } + + // Use this method to delete a route. + rpc DeleteRoute(DeleteRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/privateConnections/*/routes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// Request message for 'discover' ConnectionProfile request. +message DiscoverConnectionProfileRequest { + // Required. The parent resource of the connection profile type. Must be in the + // format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/ConnectionProfile" + } + ]; + + // The connection profile on which to run discover. + oneof target { + // An ad-hoc connection profile configuration. + ConnectionProfile connection_profile = 200; + + // A reference to an existing connection profile. + string connection_profile_name = 201; + } + + // The depth of the retrieved hierarchy of data objects. + oneof hierarchy { + // Whether to retrieve the full hierarchy of data objects (TRUE) or only the + // current level (FALSE). + bool full_hierarchy = 3; + + // The number of hierarchy levels below the current level to be retrieved. + int32 hierarchy_depth = 4; + } + + // The data object to populate with child data objects and metadata. + oneof data_object { + // Oracle RDBMS to enrich with child data objects and metadata. + OracleRdbms oracle_rdbms = 100; + + // MySQL RDBMS to enrich with child data objects and metadata. + MysqlRdbms mysql_rdbms = 101; + + // PostgreSQL RDBMS to enrich with child data objects and metadata. + PostgresqlRdbms postgresql_rdbms = 102; + } +} + +// Response from a discover request. +message DiscoverConnectionProfileResponse { + // The data object that has been enriched by the discover API call. + oneof data_object { + // Enriched Oracle RDBMS object. + OracleRdbms oracle_rdbms = 100; + + // Enriched MySQL RDBMS object. + MysqlRdbms mysql_rdbms = 101; + + // Enriched PostgreSQL RDBMS object. + PostgresqlRdbms postgresql_rdbms = 102; + } +} + +// Request message for 'FetchStaticIps' request. +message FetchStaticIpsRequest { + // Required. The resource name for the location for which static IPs should be returned. + // Must be in the format `projects/*/locations/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Maximum number of Ips to return, will likely not be specified. + int32 page_size = 2; + + // A page token, received from a previous `ListStaticIps` call. + // will likely not be specified. + string page_token = 3; +} + +// Response message for a 'FetchStaticIps' response. +message FetchStaticIpsResponse { + // list of static ips by account + repeated string static_ips = 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 listing connection profiles. +message ListConnectionProfilesRequest { + // Required. The parent that owns the collection of connection profiles. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/ConnectionProfile" + } + ]; + + // Maximum number of connection profiles to return. + // If unspecified, at most 50 connection profiles will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // Page token received from a previous `ListConnectionProfiles` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListConnectionProfiles` + // must match the call that provided the page token. + string page_token = 3; + + // Filter request. + string filter = 4; + + // Order by fields for the result. + string order_by = 5; +} + +// Response message for listing connection profiles. +message ListConnectionProfilesResponse { + // List of connection profiles. + repeated ConnectionProfile connection_profiles = 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; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for getting a connection profile. +message GetConnectionProfileRequest { + // Required. The name of the connection profile resource to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/ConnectionProfile" + } + ]; +} + +// Request message for creating a connection profile. +message CreateConnectionProfileRequest { + // Required. The parent that owns the collection of ConnectionProfiles. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/ConnectionProfile" + } + ]; + + // Required. The connection profile identifier. + string connection_profile_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The connection profile resource to create. + ConnectionProfile connection_profile = 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]; + + // Optional. Only validate the connection profile, but don't create any resources. + // The default is false. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Create the connection profile without validating it. + bool force = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Connection profile update message. +message UpdateConnectionProfileRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // ConnectionProfile 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) = OPTIONAL]; + + // Required. The connection profile to update. + ConnectionProfile connection_profile = 2 [(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 = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Only validate the connection profile, but don't update any resources. + // The default is false. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Update the connection profile without validating it. + bool force = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for deleting a connection profile. +message DeleteConnectionProfileRequest { + // Required. The name of the connection profile resource to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/ConnectionProfile" + } + ]; + + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server will know to ignore + // the request if it has already been completed. The server will guarantee + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating 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 message for listing streams. +message ListStreamsRequest { + // Required. The parent that owns the collection of streams. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/Stream" + } + ]; + + // Maximum number of streams to return. + // If unspecified, at most 50 streams will be returned. The maximum + // value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // Page token received from a previous `ListStreams` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListStreams` + // must match the call that provided the page token. + string page_token = 3; + + // Filter request. + string filter = 4; + + // Order by fields for the result. + string order_by = 5; +} + +// Response message for listing streams. +message ListStreamsResponse { + // List of streams + repeated Stream streams = 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; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for getting a stream. +message GetStreamRequest { + // Required. The name of the stream resource to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/Stream" + } + ]; +} + +// Request message for creating a stream. +message CreateStreamRequest { + // Required. The parent that owns the collection of streams. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/Stream" + } + ]; + + // Required. The stream identifier. + string stream_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The stream resource to create. + Stream stream = 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]; + + // Optional. Only validate the stream, but don't create any resources. + // The default is false. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Create the stream without validating it. + bool force = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for updating a stream. +message UpdateStreamRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // stream 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) = OPTIONAL]; + + // Required. The stream resource to update. + Stream stream = 2 [(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 = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Only validate the stream with the changes, without actually updating it. + // The default is false. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Update the stream without validating it. + bool force = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for deleting a stream. +message DeleteStreamRequest { + // Required. The name of the stream resource to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/Stream" + } + ]; + + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server will know to ignore + // the request if it has already been completed. The server will guarantee + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating 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 fetching a specific stream object. +message GetStreamObjectRequest { + // Required. The name of the stream object resource to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/StreamObject" + } + ]; +} + +// Request for looking up a specific stream object by its source object +// identifier. +message LookupStreamObjectRequest { + // Required. The parent stream that owns the collection of objects. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/Stream" + } + ]; + + // Required. The source object identifier which maps to the stream object. + SourceObjectIdentifier source_object_identifier = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for manually initiating a backfill job for a specific stream object. +message StartBackfillJobRequest { + // Required. The name of the stream object resource to start a backfill job for. + string object = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/StreamObject" + } + ]; +} + +// Response for manually initiating a backfill job for a specific stream object. +message StartBackfillJobResponse { + // The stream object resource a backfill job was started for. + StreamObject object = 1; +} + +// Request for manually stopping a running backfill job for a specific stream +// object. +message StopBackfillJobRequest { + // Required. The name of the stream object resource to stop the backfill job for. + string object = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/StreamObject" + } + ]; +} + +// Response for manually stop a backfill job for a specific stream object. +message StopBackfillJobResponse { + // The stream object resource the backfill job was stopped for. + StreamObject object = 1; +} + +// Request for listing all objects for a specific stream. +message ListStreamObjectsRequest { + // Required. The parent stream that owns the collection of objects. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/StreamObject" + } + ]; + + // Maximum number of objects to return. Default is 50. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // Page token received from a previous `ListStreamObjectsRequest` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListStreamObjectsRequest` must match the call that provided the page + // token. + string page_token = 3; +} + +// Response containing the objects for a stream. +message ListStreamObjectsResponse { + // List of stream objects. + repeated StreamObject stream_objects = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + string next_page_token = 2; +} + +// 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. Results of executed validations if there are any. + ValidationResult validation_result = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request for creating a private connection. +message CreatePrivateConnectionRequest { + // Required. The parent that owns the collection of PrivateConnections. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/PrivateConnection" + } + ]; + + // Required. The private connectivity identifier. + string private_connection_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Private Connectivity resource to create. + PrivateConnection private_connection = 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 for listing private connections. +message ListPrivateConnectionsRequest { + // Required. The parent that owns the collection of private connectivity configurations. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/PrivateConnection" + } + ]; + + // Maximum number of private connectivity configurations to return. + // If unspecified, at most 50 private connectivity configurations that will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2; + + // Page token received from a previous `ListPrivateConnections` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListPrivateConnections` must match the call that provided the page + // token. + string page_token = 3; + + // Filter request. + string filter = 4; + + // Order by fields for the result. + string order_by = 5; +} + +// Response containing a list of private connection configurations. +message ListPrivateConnectionsResponse { + // List of private connectivity configurations. + repeated PrivateConnection private_connections = 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; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request to delete a private connection. +message DeletePrivateConnectionRequest { + // Required. The name of the private connectivity configuration to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/PrivateConnection" + } + ]; + + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server will know to ignore + // the request if it has already been completed. The server will guarantee + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating 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 routes that belong to this PrivateConnection will + // also be deleted. + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request to get a private connection configuration. +message GetPrivateConnectionRequest { + // Required. The name of the private connectivity configuration to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/PrivateConnection" + } + ]; +} + +// Route creation request. +message CreateRouteRequest { + // Required. The parent that owns the collection of Routes. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/Route" + } + ]; + + // Required. The Route identifier. + string route_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Route resource to create. + Route route = 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]; +} + +// Route list request. +message ListRoutesRequest { + // Required. The parent that owns the collection of Routess. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "datastream.googleapis.com/Route" + } + ]; + + // Maximum number of Routes to return. The service may return + // fewer than this value. If unspecified, at most 50 Routes + // will be returned. The maximum value is 1000; values above 1000 will be + // coerced to 1000. + int32 page_size = 2; + + // Page token received from a previous `ListRoutes` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListRoutes` must match the call that provided the page + // token. + string page_token = 3; + + // Filter request. + string filter = 4; + + // Order by fields for the result. + string order_by = 5; +} + +// Route list response. +message ListRoutesResponse { + // List of Routes. + repeated Route routes = 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; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Route deletion request. +message DeleteRouteRequest { + // Required. The name of the Route resource to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/Route" + } + ]; + + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server will know to ignore + // the request if it has already been completed. The server will guarantee + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating 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]; +} + +// Route get request. +message GetRouteRequest { + // Required. The name of the Route resource to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/Route" + } + ]; +} diff --git a/google/cloud/datastream/v1/datastream_grpc_service_config.json b/google/cloud/datastream/v1/datastream_grpc_service_config.json new file mode 100644 index 000000000..e0ea93ed3 --- /dev/null +++ b/google/cloud/datastream/v1/datastream_grpc_service_config.json @@ -0,0 +1,29 @@ +{ + "methodConfig": [{ + "name": [{ "service": "google.cloud.datastream.v1.Datastream" }], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.datastream.v1.Datastream", "method": "CreateConnectionProfile" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "UpdateConnectionProfile" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "GenerateConnectionProfileReport" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "DeleteConnectionProfile" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "CreateStream" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "UpdateStream" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "DeleteStream" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "CreatePrivateConnection" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "DeletePrivateConnection" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "CreateRoute" }, + { "service": "google.cloud.datastream.v1.Datastream", "method": "DeleteRoute" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/datastream/v1/datastream_resources.proto b/google/cloud/datastream/v1/datastream_resources.proto new file mode 100644 index 000000000..58a2c7bdf --- /dev/null +++ b/google/cloud/datastream/v1/datastream_resources.proto @@ -0,0 +1,1023 @@ +// 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.cloud.datastream.v1; + +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.Cloud.Datastream.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/datastream/v1;datastream"; +option java_multiple_files = true; +option java_outer_classname = "DatastreamResourcesProto"; +option java_package = "com.google.cloud.datastream.v1"; +option php_namespace = "Google\\Cloud\\Datastream\\V1"; +option ruby_package = "Google::Cloud::Datastream::V1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Networks" + pattern: "projects/{project}/global/networks/{network}" +}; + +// Oracle database profile. +message OracleProfile { + // Required. Hostname for the Oracle connection. + string hostname = 1 [(google.api.field_behavior) = REQUIRED]; + + // Port for the Oracle connection, default value is 1521. + int32 port = 2; + + // Required. Username for the Oracle connection. + string username = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Password for the Oracle connection. + string password = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Database for the Oracle connection. + string database_service = 5 [(google.api.field_behavior) = REQUIRED]; + + // Connection string attributes + map connection_attributes = 6; +} + +// MySQL database profile. +message MysqlProfile { + // Required. Hostname for the MySQL connection. + string hostname = 1 [(google.api.field_behavior) = REQUIRED]; + + // Port for the MySQL connection, default value is 3306. + int32 port = 2; + + // Required. Username for the MySQL connection. + string username = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Input only. Password for the MySQL connection. + string password = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // SSL configuration for the MySQL connection. + MysqlSslConfig ssl_config = 5; +} + +// PostgreSQL database profile. +message PostgresqlProfile { + // Required. Hostname for the PostgreSQL connection. + string hostname = 1 [(google.api.field_behavior) = REQUIRED]; + + // Port for the PostgreSQL connection, default value is 5432. + int32 port = 2; + + // Required. Username for the PostgreSQL connection. + string username = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Password for the PostgreSQL connection. + string password = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Database for the PostgreSQL connection. + string database = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Cloud Storage bucket profile. +message GcsProfile { + // Required. The Cloud Storage bucket name. + string bucket = 1 [(google.api.field_behavior) = REQUIRED]; + + // The root path inside the Cloud Storage bucket. + string root_path = 2; +} + +// BigQuery warehouse profile. +message BigQueryProfile { + +} + +// Static IP address connectivity. +message StaticServiceIpConnectivity { + +} + +// Forward SSH Tunnel connectivity. +message ForwardSshTunnelConnectivity { + // Required. Hostname for the SSH tunnel. + string hostname = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Username for the SSH tunnel. + string username = 2 [(google.api.field_behavior) = REQUIRED]; + + // Port for the SSH tunnel, default value is 22. + int32 port = 3; + + oneof authentication_method { + // Input only. SSH password. + string password = 100 [(google.api.field_behavior) = INPUT_ONLY]; + + // Input only. SSH private key. + string private_key = 101 [(google.api.field_behavior) = INPUT_ONLY]; + } +} + +// The VPC Peering configuration is used to create VPC peering between +// Datastream and the consumer's VPC. +message VpcPeeringConfig { + // Required. Fully qualified name of the VPC that Datastream will peer to. + // Format: `projects/{project}/global/{networks}/{name}` + string vpc = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/Networks" + } + ]; + + // Required. A free subnet for peering. (CIDR of /29) + string subnet = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The PrivateConnection resource is used to establish private connectivity +// between Datastream and a customer's network. +message PrivateConnection { + option (google.api.resource) = { + type: "datastream.googleapis.com/PrivateConnection" + pattern: "projects/{project}/locations/{location}/privateConnections/{private_connection}" + }; + + // Private Connection state. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // The private connection is in creation state - creating resources. + CREATING = 1; + + // The private connection has been created with all of its resources. + CREATED = 2; + + // The private connection creation has failed. + FAILED = 3; + + // The private connection is being deleted. + DELETING = 4; + + // Delete request has failed, resource is in invalid state. + FAILED_TO_DELETE = 5; + } + + // Output only. The resource's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The create time of the resource. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update time of the resource. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Labels. + map labels = 4; + + // Required. Display name. + string display_name = 5 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The state of the Private Connection. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. In case of error, the details of the error in a user-friendly format. + Error error = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // VPC Peering Config. + VpcPeeringConfig vpc_peering_config = 100; +} + +// Private Connectivity +message PrivateConnectivity { + // Required. A reference to a private connection resource. + // Format: `projects/{project}/locations/{location}/privateConnections/{name}` + string private_connection = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/PrivateConnection" + } + ]; +} + +// The route resource is the child of the private connection resource, +// used for defining a route for a private connection. +message Route { + option (google.api.resource) = { + type: "datastream.googleapis.com/Route" + pattern: "projects/{project}/locations/{location}/privateConnections/{private_connection}/routes/{route}" + }; + + // Output only. The resource's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The create time of the resource. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update time of the resource. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Labels. + map labels = 4; + + // Required. Display name. + string display_name = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Destination address for connection + string destination_address = 6 [(google.api.field_behavior) = REQUIRED]; + + // Destination port for connection + int32 destination_port = 7; +} + +// MySQL SSL configuration information. +message MysqlSslConfig { + // Input only. PEM-encoded private key associated with the Client Certificate. + // If this field is used then the 'client_certificate' and the + // 'ca_certificate' fields are mandatory. + string client_key = 1 [(google.api.field_behavior) = INPUT_ONLY]; + + // Output only. Indicates whether the client_key field is set. + bool client_key_set = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Input only. PEM-encoded certificate that will be used by the replica to + // authenticate against the source database server. If this field is used + // then the 'client_key' and the 'ca_certificate' fields are mandatory. + string client_certificate = 3 [(google.api.field_behavior) = INPUT_ONLY]; + + // Output only. Indicates whether the client_certificate field is set. + bool client_certificate_set = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Input only. PEM-encoded certificate of the CA that signed the source database + // server's certificate. + string ca_certificate = 5 [(google.api.field_behavior) = INPUT_ONLY]; + + // Output only. Indicates whether the ca_certificate field is set. + bool ca_certificate_set = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A set of reusable connection configurations to be used as a source or +// destination for a stream. +message ConnectionProfile { + option (google.api.resource) = { + type: "datastream.googleapis.com/ConnectionProfile" + pattern: "projects/{project}/locations/{location}/connectionProfiles/{connection_profile}" + }; + + // Output only. The resource's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The create time of the resource. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update time of the resource. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Labels. + map labels = 4; + + // Required. Display name. + string display_name = 5 [(google.api.field_behavior) = REQUIRED]; + + // Connection configuration for the ConnectionProfile. + oneof profile { + // Oracle ConnectionProfile configuration. + OracleProfile oracle_profile = 100; + + // Cloud Storage ConnectionProfile configuration. + GcsProfile gcs_profile = 101; + + // MySQL ConnectionProfile configuration. + MysqlProfile mysql_profile = 102; + + // BigQuery Connection Profile configuration. + BigQueryProfile bigquery_profile = 103; + + // PostgreSQL Connection Profile configuration. + PostgresqlProfile postgresql_profile = 104; + } + + // Connectivity options used to establish a connection to the profile. + oneof connectivity { + // Static Service IP connectivity. + StaticServiceIpConnectivity static_service_ip_connectivity = 200; + + // Forward SSH tunnel connectivity. + ForwardSshTunnelConnectivity forward_ssh_connectivity = 201; + + // Private connectivity. + PrivateConnectivity private_connectivity = 202; + } +} + +// Oracle Column. +message OracleColumn { + // Column name. + string column = 1; + + // The Oracle data type. + string data_type = 2; + + // Column length. + int32 length = 3; + + // Column precision. + int32 precision = 4; + + // Column scale. + int32 scale = 5; + + // Column encoding. + string encoding = 6; + + // Whether or not the column represents a primary key. + bool primary_key = 7; + + // Whether or not the column can accept a null value. + bool nullable = 8; + + // The ordinal position of the column in the table. + int32 ordinal_position = 9; +} + +// Oracle table. +message OracleTable { + // Table name. + string table = 1; + + // Oracle columns in the schema. + // When unspecified as part of include/exclude objects, includes/excludes + // everything. + repeated OracleColumn oracle_columns = 2; +} + +// Oracle schema. +message OracleSchema { + // Schema name. + string schema = 1; + + // Tables in the schema. + repeated OracleTable oracle_tables = 2; +} + +// Oracle database structure. +message OracleRdbms { + // Oracle schemas/databases in the database server. + repeated OracleSchema oracle_schemas = 1; +} + +// Oracle data source configuration +message OracleSourceConfig { + // Configuration to drop large object values. + message DropLargeObjects { + + } + + // Configuration to stream large object values. + message StreamLargeObjects { + + } + + // Oracle objects to include in the stream. + OracleRdbms include_objects = 1; + + // Oracle objects to exclude from the stream. + OracleRdbms exclude_objects = 2; + + // Maximum number of concurrent CDC tasks. The number should be non negative. + // If not set (or set to 0), the system's default value will be used. + int32 max_concurrent_cdc_tasks = 3; + + // The configuration for handle Oracle large objects. + oneof large_objects_handling { + // Drop large object values. + DropLargeObjects drop_large_objects = 100; + + // Stream large object values. + StreamLargeObjects stream_large_objects = 102; + } +} + +// PostgreSQL Column. +message PostgresqlColumn { + // Column name. + string column = 1; + + // The PostgreSQL data type. + string data_type = 2; + + // Column length. + int32 length = 3; + + // Column precision. + int32 precision = 4; + + // Column scale. + int32 scale = 5; + + // Whether or not the column represents a primary key. + bool primary_key = 7; + + // Whether or not the column can accept a null value. + bool nullable = 8; + + // The ordinal position of the column in the table. + int32 ordinal_position = 9; +} + +// PostgreSQL table. +message PostgresqlTable { + // Table name. + string table = 1; + + // PostgreSQL columns in the schema. + // When unspecified as part of include/exclude objects, + // includes/excludes everything. + repeated PostgresqlColumn postgresql_columns = 2; +} + +// PostgreSQL schema. +message PostgresqlSchema { + // Schema name. + string schema = 1; + + // Tables in the schema. + repeated PostgresqlTable postgresql_tables = 2; +} + +// PostgreSQL database structure. +message PostgresqlRdbms { + // PostgreSQL schemas in the database server. + repeated PostgresqlSchema postgresql_schemas = 1; +} + +// PostgreSQL data source configuration +message PostgresqlSourceConfig { + // PostgreSQL objects to include in the stream. + PostgresqlRdbms include_objects = 1; + + // PostgreSQL objects to exclude from the stream. + PostgresqlRdbms exclude_objects = 2; + + // Required. The name of the logical replication slot that's configured with the + // pgoutput plugin. + string replication_slot = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the publication that includes the set of all tables that are + // defined in the stream's include_objects. + string publication = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// MySQL Column. +message MysqlColumn { + // Column name. + string column = 1; + + // The MySQL data type. Full data types list can be found here: + // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + string data_type = 2; + + // Column length. + int32 length = 3; + + // Column collation. + string collation = 4; + + // Whether or not the column represents a primary key. + bool primary_key = 5; + + // Whether or not the column can accept a null value. + bool nullable = 6; + + // The ordinal position of the column in the table. + int32 ordinal_position = 7; +} + +// MySQL table. +message MysqlTable { + // Table name. + string table = 1; + + // MySQL columns in the database. + // When unspecified as part of include/exclude objects, includes/excludes + // everything. + repeated MysqlColumn mysql_columns = 2; +} + +// MySQL database. +message MysqlDatabase { + // Database name. + string database = 1; + + // Tables in the database. + repeated MysqlTable mysql_tables = 2; +} + +// MySQL database structure +message MysqlRdbms { + // Mysql databases on the server + repeated MysqlDatabase mysql_databases = 1; +} + +// MySQL source configuration +message MysqlSourceConfig { + // MySQL objects to retrieve from the source. + MysqlRdbms include_objects = 1; + + // MySQL objects to exclude from the stream. + MysqlRdbms exclude_objects = 2; + + // Maximum number of concurrent CDC tasks. The number should be non negative. + // If not set (or set to 0), the system's default value will be used. + int32 max_concurrent_cdc_tasks = 3; +} + +// The configuration of the stream source. +message SourceConfig { + // Required. Source connection profile resoource. + // Format: `projects/{project}/locations/{location}/connectionProfiles/{name}` + string source_connection_profile = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/ConnectionProfile" + } + ]; + + // Stream configuration that is specific to the data source type. + oneof source_stream_config { + // Oracle data source configuration. + OracleSourceConfig oracle_source_config = 100; + + // MySQL data source configuration. + MysqlSourceConfig mysql_source_config = 101; + + // PostgreSQL data source configuration. + PostgresqlSourceConfig postgresql_source_config = 102; + } +} + +// AVRO file format configuration. +message AvroFileFormat { + +} + +// JSON file format configuration. +message JsonFileFormat { + // Schema file format. + enum SchemaFileFormat { + // Unspecified schema file format. + SCHEMA_FILE_FORMAT_UNSPECIFIED = 0; + + // Do not attach schema file. + NO_SCHEMA_FILE = 1; + + // Avro schema format. + AVRO_SCHEMA_FILE = 2; + } + + // Json file compression. + enum JsonCompression { + // Unspecified json file compression. + JSON_COMPRESSION_UNSPECIFIED = 0; + + // Do not compress JSON file. + NO_COMPRESSION = 1; + + // Gzip compression. + GZIP = 2; + } + + // The schema file format along JSON data files. + SchemaFileFormat schema_file_format = 1; + + // Compression of the loaded JSON file. + JsonCompression compression = 2; +} + +// Google Cloud Storage destination configuration +message GcsDestinationConfig { + // Path inside the Cloud Storage bucket to write data to. + string path = 1; + + // The maximum file size to be saved in the bucket. + int32 file_rotation_mb = 2; + + // The maximum duration for which new events are added before a file is + // closed and a new file is created. + google.protobuf.Duration file_rotation_interval = 3; + + // File Format that the data should be written in. + oneof file_format { + // AVRO file format configuration. + AvroFileFormat avro_file_format = 100; + + // JSON file format configuration. + JsonFileFormat json_file_format = 101; + } +} + +message BigQueryDestinationConfig { + // A single target dataset to which all data will be streamed. + message SingleTargetDataset { + string dataset_id = 1; + } + + // Destination datasets are created so that hierarchy of the destination data + // objects matches the source hierarchy. + message SourceHierarchyDatasets { + // Dataset template used for dynamic dataset creation. + message DatasetTemplate { + // Required. The geographic location where the dataset should reside. See + // https://cloud.google.com/bigquery/docs/locations for supported + // locations. + string location = 1 [(google.api.field_behavior) = REQUIRED]; + + // If supplied, every created dataset will have its name prefixed by the + // provided value. The prefix and name will be separated by an underscore. + // i.e. _. + string dataset_id_prefix = 2; + + // 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. + // i.e. + // projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. + // See https://cloud.google.com/bigquery/docs/customer-managed-encryption + // for more information. + string kms_key_name = 3; + } + + DatasetTemplate dataset_template = 2; + } + + // Target dataset(s) configuration. + oneof dataset_config { + // Single destination dataset. + SingleTargetDataset single_target_dataset = 201; + + // Source hierarchy datasets. + SourceHierarchyDatasets source_hierarchy_datasets = 202; + } + + // The guaranteed data freshness (in seconds) when querying tables created by + // the stream. Editing this field will only affect new tables created in the + // future, but existing tables will not be impacted. Lower values mean that + // queries will return fresher data, but may result in higher cost. + google.protobuf.Duration data_freshness = 300; +} + +// The configuration of the stream destination. +message DestinationConfig { + // Required. Destination connection profile resource. + // Format: `projects/{project}/locations/{location}/connectionProfiles/{name}` + string destination_connection_profile = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datastream.googleapis.com/ConnectionProfile" + } + ]; + + // Stream configuration that is specific to the data destination type. + oneof destination_stream_config { + // A configuration for how data should be loaded to Cloud Storage. + GcsDestinationConfig gcs_destination_config = 100; + + // BigQuery destination configuration. + BigQueryDestinationConfig bigquery_destination_config = 101; + } +} + +// A resource representing streaming data from a source to a destination. +message Stream { + option (google.api.resource) = { + type: "datastream.googleapis.com/Stream" + pattern: "projects/{project}/locations/{location}/streams/{stream}" + }; + + // Stream state. + enum State { + // Unspecified stream state. + STATE_UNSPECIFIED = 0; + + // The stream has been created but has not yet started streaming data. + NOT_STARTED = 1; + + // The stream is running. + RUNNING = 2; + + // The stream is paused. + PAUSED = 3; + + // The stream is in maintenance mode. + // + // Updates are rejected on the resource in this state. + MAINTENANCE = 4; + + // The stream is experiencing an error that is preventing data from being + // streamed. + FAILED = 5; + + // The stream has experienced a terminal failure. + FAILED_PERMANENTLY = 6; + + // The stream is starting, but not yet running. + STARTING = 7; + + // The Stream is no longer reading new events, but still writing events in + // the buffer. + DRAINING = 8; + } + + // Backfill strategy to automatically backfill the Stream's objects. + // Specific objects can be excluded. + message BackfillAllStrategy { + // List of objects to exclude. + oneof excluded_objects { + // Oracle data source objects to avoid backfilling. + OracleRdbms oracle_excluded_objects = 1; + + // MySQL data source objects to avoid backfilling. + MysqlRdbms mysql_excluded_objects = 2; + + // PostgreSQL data source objects to avoid backfilling. + PostgresqlRdbms postgresql_excluded_objects = 3; + } + } + + // Backfill strategy to disable automatic backfill for the Stream's objects. + message BackfillNoneStrategy { + + } + + // Output only. The stream's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The creation time of the stream. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update time of the stream. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Labels. + map labels = 4; + + // Required. Display name. + string display_name = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Source connection profile configuration. + SourceConfig source_config = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. Destination connection profile configuration. + DestinationConfig destination_config = 7 [(google.api.field_behavior) = REQUIRED]; + + // The state of the stream. + State state = 8; + + // Stream backfill strategy. + oneof backfill_strategy { + // Automatically backfill objects included in the stream source + // configuration. Specific objects can be excluded. + BackfillAllStrategy backfill_all = 101; + + // Do not automatically backfill any objects. + BackfillNoneStrategy backfill_none = 102; + } + + // Output only. Errors on the Stream. + repeated Error errors = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. A reference to a KMS encryption key. + // If provided, it will be used to encrypt the data. + // If left blank, data will be encrypted using an internal Stream-specific + // encryption key provisioned through KMS. + optional string customer_managed_encryption_key = 10 [(google.api.field_behavior) = IMMUTABLE]; +} + +// A specific stream object (e.g a specific DB table). +message StreamObject { + option (google.api.resource) = { + type: "datastream.googleapis.com/StreamObject" + pattern: "projects/{project}/locations/{location}/streams/{stream}/objects/{object}" + }; + + // Output only. The object resource's name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The creation time of the object. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update time of the object. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Display name. + string display_name = 5 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Active errors on the object. + repeated Error errors = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The latest backfill job that was initiated for the stream object. + BackfillJob backfill_job = 7; + + // The object identifier in the data source. + SourceObjectIdentifier source_object = 8; +} + +// Represents an identifier of an object in the data source. +message SourceObjectIdentifier { + // Oracle data source object identifier. + message OracleObjectIdentifier { + // Required. The schema name. + string schema = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table name. + string table = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // PostgreSQL data source object identifier. + message PostgresqlObjectIdentifier { + // Required. The schema name. + string schema = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table name. + string table = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Mysql data source object identifier. + message MysqlObjectIdentifier { + // Required. The database name. + string database = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table name. + string table = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // The identifier for an object in the data source. + oneof source_identifier { + // Oracle data source object identifier. + OracleObjectIdentifier oracle_identifier = 1; + + // Mysql data source object identifier. + MysqlObjectIdentifier mysql_identifier = 2; + + // PostgreSQL data source object identifier. + PostgresqlObjectIdentifier postgresql_identifier = 3; + } +} + +// Represents a backfill job on a specific stream object. +message BackfillJob { + // State of the stream object's backfill job. + enum State { + // Default value. + STATE_UNSPECIFIED = 0; + + // Backfill job was never started for the stream object (stream has backfill + // strategy defined as manual or object was explicitly excluded from + // automatic backfill). + NOT_STARTED = 1; + + // Backfill job will start pending available resources. + PENDING = 2; + + // Backfill job is running. + ACTIVE = 3; + + // Backfill job stopped (next job run will start from beginning). + STOPPED = 4; + + // Backfill job failed (due to an error). + FAILED = 5; + + // Backfill completed successfully. + COMPLETED = 6; + + // Backfill job failed since the table structure is currently unsupported + // for backfill. + UNSUPPORTED = 7; + } + + // Triggering reason for a backfill job. + enum Trigger { + // Default value. + TRIGGER_UNSPECIFIED = 0; + + // Object backfill job was triggered automatically according to the stream's + // backfill strategy. + AUTOMATIC = 1; + + // Object backfill job was triggered manually using the dedicated API. + MANUAL = 2; + } + + // Backfill job state. + State state = 1; + + // Backfill job's triggering reason. + Trigger trigger = 2; + + // Output only. Backfill job's start time. + google.protobuf.Timestamp last_start_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Backfill job's end time. + google.protobuf.Timestamp last_end_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Errors which caused the backfill job to fail. + repeated Error errors = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represent a user-facing Error. +message Error { + // A title that explains the reason for the error. + string reason = 1; + + // A unique identifier for this specific error, + // allowing it to be traced throughout the system in logs and API responses. + string error_uuid = 2; + + // A message containing more information about the error that occurred. + string message = 3; + + // The time when the error occurred. + google.protobuf.Timestamp error_time = 4; + + // Additional information about the error. + map details = 5; +} + +// Contains the current validation results. +message ValidationResult { + // A list of validations (includes both executed as well as not executed + // validations). + repeated Validation validations = 1; +} + +// A validation to perform on a stream. +message Validation { + // Validation execution state. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // Validation did not execute. + NOT_EXECUTED = 1; + + // Validation failed. + FAILED = 2; + + // Validation passed. + PASSED = 3; + } + + // A short description of the validation. + string description = 1; + + // Validation execution status. + State state = 2; + + // Messages reflecting the validation results. + repeated ValidationMessage message = 3; + + // A custom code identifying this validation. + string code = 4; +} + +// Represent user-facing validation result message. +message ValidationMessage { + // Validation message level. + enum Level { + // Unspecified level. + LEVEL_UNSPECIFIED = 0; + + // Potentially cause issues with the Stream. + WARNING = 1; + + // Definitely cause issues with the Stream. + ERROR = 2; + } + + // The result of the validation. + string message = 1; + + // Message severity level (warning or error). + Level level = 2; + + // Additional metadata related to the result. + map metadata = 3; + + // A custom code identifying this specific message. + string code = 4; +} diff --git a/google/cloud/datastream/v1/datastream_v1.yaml b/google/cloud/datastream/v1/datastream_v1.yaml new file mode 100644 index 000000000..d0c01450b --- /dev/null +++ b/google/cloud/datastream/v1/datastream_v1.yaml @@ -0,0 +1,73 @@ +type: google.api.Service +config_version: 3 +name: datastream.googleapis.com +title: Datastream API + +apis: +- name: google.cloud.datastream.v1.Datastream +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.datastream.v1.Error +- name: google.cloud.datastream.v1.OperationMetadata +- name: google.cloud.datastream.v1.ValidationResult + +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. + +backend: + rules: + - selector: 'google.cloud.datastream.v1.Datastream.*' + deadline: 60.0 + - selector: google.cloud.datastream.v1.Datastream.DiscoverConnectionProfile + deadline: 120.0 + - selector: google.cloud.datastream.v1.Datastream.StartBackfillJob + deadline: 120.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 + 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.datastream.v1.Datastream.*' + 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/google/cloud/datastream/v1alpha1/BUILD.bazel b/google/cloud/datastream/v1alpha1/BUILD.bazel index d4da41cc4..6a8165f6e 100644 --- a/google/cloud/datastream/v1alpha1/BUILD.bazel +++ b/google/cloud/datastream/v1alpha1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":datastream_java_grpc", ], + transport = "grpc+rest", deps = [ ":datastream_java_proto", ], @@ -82,6 +83,7 @@ java_gapic_library( java_gapic_test( name = "datastream_java_gapic_test_suite", test_classes = [ + "com.google.cloud.datastream.v1alpha1.DatastreamClientHttpJsonTest", "com.google.cloud.datastream.v1alpha1.DatastreamClientTest", ], runtime_deps = [":datastream_java_gapic_test"], @@ -90,6 +92,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-datastream-v1alpha1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":datastream_java_gapic", ":datastream_java_grpc", @@ -125,13 +129,14 @@ go_gapic_library( srcs = [":datastream_proto_with_info"], grpc_service_config = "datastream_grpc_service_config.json", importpath = "cloud.google.com/go/datastream/apiv1alpha1;datastream", - service_yaml = "datastream_v1alpha1.yaml", metadata = True, + service_yaml = "datastream_v1alpha1.yaml", + transport = "grpc+rest", deps = [ ":datastream_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_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", ], ) @@ -148,8 +153,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-datastream-v1alpha1-go", deps = [ ":datastream_go_gapic", - ":datastream_go_gapic_srcjar-test.srcjar", ":datastream_go_gapic_srcjar-metadata.srcjar", + ":datastream_go_gapic_srcjar-test.srcjar", ":datastream_go_proto", ], ) @@ -161,12 +166,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "datastream_py_gapic", srcs = [":datastream_proto"], grpc_service_config = "datastream_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "datastream_py_gapic_test", + srcs = [ + "datastream_py_gapic_pytest.py", + "datastream_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datastream_py_gapic"], ) # Open Source Packages @@ -253,8 +270,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -325,6 +342,7 @@ csharp_gapic_library( srcs = [":datastream_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "datastream_grpc_service_config.json", + service_yaml = "datastream_v1alpha1.yaml", deps = [ ":datastream_csharp_grpc", ":datastream_csharp_proto", diff --git a/google/cloud/datastream/v1alpha1/datastream_resources.proto b/google/cloud/datastream/v1alpha1/datastream_resources.proto index 73320b912..b2a9ba3fc 100644 --- a/google/cloud/datastream/v1alpha1/datastream_resources.proto +++ b/google/cloud/datastream/v1alpha1/datastream_resources.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/datastream/v1alpha1;datastream"; option java_multiple_files = true; diff --git a/google/cloud/deploy/v1/BUILD.bazel b/google/cloud/deploy/v1/BUILD.bazel index b5dda8fc2..764bfb000 100644 --- a/google/cloud/deploy/v1/BUILD.bazel +++ b/google/cloud/deploy/v1/BUILD.bazel @@ -22,6 +22,13 @@ proto_library( name = "deploy_proto", srcs = [ "cloud_deploy.proto", + "deliverypipeline_notification_payload.proto", + "jobrun_notification_payload.proto", + "log_enums.proto", + "release_notification_payload.proto", + "release_render_payload.proto", + "rollout_notification_payload.proto", + "target_notification_payload.proto", ], deps = [ "//google/api:annotations_proto", @@ -30,6 +37,7 @@ proto_library( "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/type:date_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], @@ -40,6 +48,8 @@ proto_library_with_info( deps = [ ":deploy_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ], ) @@ -71,19 +81,26 @@ java_gapic_library( srcs = [":deploy_proto_with_info"], gapic_yaml = None, grpc_service_config = "clouddeploy_grpc_service_config.json", + rest_numeric_enums = False, service_yaml = "clouddeploy_v1.yaml", test_deps = [ ":deploy_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":deploy_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ], ) java_gapic_test( name = "deploy_java_gapic_test_suite", test_classes = [ + "com.google.cloud.deploy.v1.CloudDeployClientHttpJsonTest", "com.google.cloud.deploy.v1.CloudDeployClientTest", ], runtime_deps = [":deploy_java_gapic_test"], @@ -92,6 +109,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-deploy-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":deploy_java_gapic", ":deploy_java_grpc", @@ -128,13 +147,18 @@ go_gapic_library( srcs = [":deploy_proto_with_info"], grpc_service_config = "clouddeploy_grpc_service_config.json", importpath = "cloud.google.com/go/deploy/apiv1;deploy", - service_yaml = "clouddeploy_v1.yaml", metadata = True, + rest_numeric_enums = False, + service_yaml = "clouddeploy_v1.yaml", + transport = "grpc+rest", deps = [ ":deploy_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_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", ], ) @@ -150,8 +174,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-deploy-v1-go", deps = [ ":deploy_go_gapic", - ":deploy_go_gapic_srcjar-test.srcjar", ":deploy_go_gapic_srcjar-metadata.srcjar", + ":deploy_go_gapic_srcjar-test.srcjar", ":deploy_go_proto", ], ) @@ -163,12 +187,29 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "deploy_py_gapic", srcs = [":deploy_proto"], grpc_service_config = "clouddeploy_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "clouddeploy_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "deploy_py_gapic_test", + srcs = [ + "deploy_py_gapic_pytest.py", + "deploy_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":deploy_py_gapic"], ) # Open Source Packages @@ -205,6 +246,7 @@ php_gapic_library( name = "deploy_php_gapic", srcs = [":deploy_proto_with_info"], grpc_service_config = "clouddeploy_grpc_service_config.json", + rest_numeric_enums = False, service_yaml = "clouddeploy_v1.yaml", deps = [ ":deploy_php_grpc", @@ -238,6 +280,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "clouddeploy_grpc_service_config.json", package = "google.cloud.deploy.v1", + rest_numeric_enums = False, service_yaml = "clouddeploy_v1.yaml", deps = [], ) @@ -255,8 +298,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -276,15 +319,17 @@ ruby_cloud_gapic_library( name = "deploy_ruby_gapic", srcs = [":deploy_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-deploy-v1", - "ruby-cloud-product-url=https://cloud.google.com/deploy/", "ruby-cloud-api-id=clouddeploy.googleapis.com", "ruby-cloud-api-shortname=clouddeploy", + "ruby-cloud-gem-name=google-cloud-deploy-v1", + "ruby-cloud-product-url=https://cloud.google.com/deploy/", "ruby-cloud-yard-strict=false", ], grpc_service_config = "clouddeploy_grpc_service_config.json", + rest_numeric_enums = False, ruby_cloud_description = "Google Cloud Deploy is a managed service that automates delivery of your applications to a series of target environments in a defined promotion sequence.", ruby_cloud_title = "Google Cloud Deploy V1", + service_yaml = "clouddeploy_v1.yaml", deps = [ ":deploy_ruby_grpc", ":deploy_ruby_proto", @@ -328,6 +373,8 @@ csharp_gapic_library( srcs = [":deploy_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "clouddeploy_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "clouddeploy_v1.yaml", deps = [ ":deploy_csharp_grpc", ":deploy_csharp_proto", diff --git a/google/cloud/deploy/v1/cloud_deploy.proto b/google/cloud/deploy/v1/cloud_deploy.proto index ebdfb8891..69f8d5222 100644 --- a/google/cloud/deploy/v1/cloud_deploy.proto +++ b/google/cloud/deploy/v1/cloud_deploy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,6 +21,7 @@ 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/type/date.proto"; @@ -45,6 +46,10 @@ option (google.api.resource_definition) = { type: "cloudbuild.googleapis.com/WorkerPool" pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}" }; +option (google.api.resource_definition) = { + type: "gkehub.googleapis.com/Membership" + pattern: "projects/{project}/locations/{location}/memberships/{membership}" +}; // CloudDeploy service creates and manages Continuous Delivery operations // on Google Cloud Platform via Skaffold (https://skaffold.dev). @@ -189,6 +194,15 @@ service CloudDeploy { }; } + // Abandons a Release in the Delivery Pipeline. + rpc AbandonRelease(AbandonReleaseRequest) returns (AbandonReleaseResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*}:abandon" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + // Approves a Rollout. rpc ApproveRollout(ApproveRolloutRequest) returns (ApproveRolloutResponse) { option (google.api.http) = { @@ -227,6 +241,31 @@ service CloudDeploy { }; } + // Retries the specified Job in a Rollout. + rpc RetryJob(RetryJobRequest) returns (RetryJobResponse) { + option (google.api.http) = { + post: "/v1/{rollout=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:retryJob" + body: "*" + }; + option (google.api.method_signature) = "rollout,phase_id,job_id"; + } + + // Lists JobRuns in a given project and location. + rpc ListJobRuns(ListJobRunsRequest) returns (ListJobRunsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}/jobRuns" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single JobRun. + rpc GetJobRun(GetJobRunRequest) returns (JobRun) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*/jobRuns/*}" + }; + option (google.api.method_signature) = "name"; + } + // Gets the configuration for a location. rpc GetConfig(GetConfigRequest) returns (Config) { option (google.api.http) = { @@ -257,17 +296,21 @@ message DeliveryPipeline { string description = 3; // User annotations. These attributes can only be set and used by the - // user, and not by Google Cloud Deploy. See - // https://google.aip.dev/128#annotations for more details such as format and - // size limitations. + // user, and not by Google Cloud Deploy. map annotations = 4; // Labels are attributes that can be set and used by both the // user and by Google Cloud Deploy. Labels must meet the following - // constraints: Each resource is limited to 64 labels. Keys must conform to - // the regexp: `[a-zA-Z][a-zA-Z0-9_-]{0,62}`. Values must conform to the - // regexp: `[a-zA-Z0-9_-]{0,63}`. Both keys and values are additionally - // constrained to be <= 128 bytes in size. + // 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; // Output only. Time at which the pipeline was created. @@ -290,6 +333,10 @@ message DeliveryPipeline { // 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; + + // When suspended, no new releases or rollouts can be created, + // but in-progress ones will complete. + bool suspended = 12; } // SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`. @@ -304,14 +351,33 @@ message Stage { // The target_id to which this stage points. This field refers exclusively to // the last segment of a target name. For example, this field would just be // `my-target` (rather than - // `projects/project/deliveryPipelines/pipeline/targets/my-target`). The - // parent `DeliveryPipeline` of the `Target` is inferred to be the parent - // `DeliveryPipeline` of the `Release` in which this `Stage` lives. + // `projects/project/locations/location/targets/my-target`). The location of + // the `Target` is inferred to be the same as the location of the + // `DeliveryPipeline` that contains this `Stage`. string target_id = 1; // Skaffold profiles to use when rendering the manifest for this stage's // `Target`. repeated string profiles = 2; + + // Optional. The strategy to use for a `Rollout` to this stage. + Strategy strategy = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Strategy contains deployment strategy information. +message Strategy { + // Deployment strategy details. + oneof deployment_strategy { + // Standard deployment strategy executes a single deploy and allows + // verifying the deployment. + Standard standard = 1; + } +} + +// Standard represents the standard deployment strategy. +message Standard { + // Whether to verify a deployment. + bool verify = 1; } // PipelineReadyCondition contains information around the status of the @@ -376,7 +442,7 @@ message ListDeliveryPipelinesRequest { // the call that provided the page token. string page_token = 3; - // Filter builds to be returned. See https://google.aip.dev/160 for more + // Filter pipelines to be returned. See https://google.aip.dev/160 for more // details. string filter = 4; @@ -537,8 +603,8 @@ message Target { pattern: "projects/{project}/locations/{location}/targets/{target}" }; - // Optional. Name of the `Target`. Format is projects/{project}/locations/{location}/ - // deliveryPipelines/{deliveryPipeline}/targets/[a-z][a-z0-9\-]{0,62}. + // Optional. Name of the `Target`. Format is + // projects/{project}/locations/{location}/targets/[a-z][a-z0-9\-]{0,62}. string name = 1 [(google.api.field_behavior) = OPTIONAL]; // Output only. Resource id of the `Target`. @@ -558,10 +624,16 @@ message Target { // Optional. Labels are attributes that can be set and used by both the // user and by Google Cloud Deploy. Labels must meet the following - // constraints: Each resource is limited to 64 labels. Keys must conform to - // the regexp: `[a-zA-Z][a-zA-Z0-9_-]{0,62}`. Values must conform to the - // regexp: `[a-zA-Z0-9_-]{0,63}`. Both keys and values are additionally - // constrained to be <= 128 bytes in size. + // 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 = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether or not the `Target` requires approval. @@ -578,6 +650,12 @@ message Target { oneof deployment_target { // Information specifying a GKE Cluster. GkeCluster gke = 15; + + // Information specifying an Anthos Cluster. + AnthosCluster anthos_cluster = 17; + + // Information specifying a Cloud Run deployment target. + CloudRunLocation run = 18; } // Optional. This checksum is computed by the server based on the value of other @@ -607,6 +685,9 @@ message ExecutionConfig { // Use for deploying and deployment hooks. DEPLOY = 2; + + // Use for deployment verification. + VERIFY = 3; } // Required. Usages when this configuration should be applied. @@ -620,6 +701,33 @@ message ExecutionConfig { // Optional. Use private Cloud Build pool. PrivatePool private_pool = 3 [(google.api.field_behavior) = OPTIONAL]; } + + // Optional. The resource name of the `WorkerPool`, with the format + // `projects/{project}/locations/{location}/workerPools/{worker_pool}`. + // If this optional field is unspecified, the default Cloud Build pool will be + // used. + string worker_pool = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/WorkerPool" + } + ]; + + // Optional. Google service account to use for execution. If unspecified, + // the project execution service account + // (-compute@developer.gserviceaccount.com) is used. + string service_account = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Cloud Storage location in which to store execution outputs. This can + // either be a bucket ("gs://my-bucket") or a path within a bucket + // ("gs://my-bucket/my-dir"). + // If unspecified, a default bucket located in the same region will be used. + string artifact_storage = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Execution timeout for a Cloud Build Execution. This must be between 10m and + // 24h in seconds format. + // If unspecified, a default timeout of 1h is used. + google.protobuf.Duration execution_timeout = 7 [(google.api.field_behavior) = OPTIONAL]; } // Execution using the default Cloud Build pool. @@ -666,6 +774,38 @@ message GkeCluster { string cluster = 1 [(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 control plane + // endpoint is used. The default IP address is the private IP address for + // clusters with private control-plane endpoints and the public IP address + // otherwise. + // + // Only specify this option when `cluster` is a [private GKE + // cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept). + bool internal_ip = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Information specifying an Anthos Cluster. +message AnthosCluster { + // 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" + }]; +} + +// Information specifying where to deploy a Cloud Run Service. +message CloudRunLocation { + // Required. The location for the Cloud Run Service. Format must be + // `projects/{project}/locations/{location}`. + string location = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; } // The request object for `ListTargets`. @@ -691,7 +831,7 @@ message ListTargetsRequest { // the call that provided the page token. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Filter builds to be returned. See https://google.aip.dev/160 for more + // Optional. Filter targets to be returned. See https://google.aip.dev/160 for more // details. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; @@ -848,6 +988,21 @@ message Release { pattern: "projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}" }; + // Valid states of the render operation. + enum RenderState { + // The render state is unspecified. + RENDER_STATE_UNSPECIFIED = 0; + + // All rendering operations have completed successfully. + SUCCEEDED = 1; + + // All rendering operations have completed, and one or more have failed. + FAILED = 2; + + // Rendering has started and is not complete. + IN_PROGRESS = 3; + } + // Details of rendering for a single target. message TargetRender { // Valid states of the render operation. @@ -865,6 +1020,21 @@ message Release { IN_PROGRESS = 3; } + // Well-known rendering failures. + enum FailureCause { + // No reason for failure is specified. + FAILURE_CAUSE_UNSPECIFIED = 0; + + // Cloud Build is not available, either because it is not enabled or + // because Google Cloud Deploy has insufficient permissions. See [required + // permission](/deploy/docs/cloud-deploy-service-account#required_permissions). + CLOUD_BUILD_UNAVAILABLE = 1; + + // The render operation did not complete successfully; check Cloud Build + // logs. + EXECUTION_FAILED = 2; + } + // Output only. The resource name of the Cloud Build `Build` object that is used to // render the manifest for this target. Format is // `projects/{project}/locations/{location}/builds/{build}`. @@ -877,21 +1047,13 @@ message Release { // Output only. Current state of the render operation for this Target. TargetRenderState rendering_state = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Valid states of the render operation. - enum RenderState { - // The render state is unspecified. - RENDER_STATE_UNSPECIFIED = 0; - - // All rendering operations have completed successfully. - SUCCEEDED = 1; - // All rendering operations have completed, and one or more have failed. - FAILED = 2; + // Output only. Reason this render failed. This will always be unspecified while the + // render in progress. + FailureCause failure_cause = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Rendering has started and is not complete. - IN_PROGRESS = 3; + // Output only. Additional information about the render failure, if available. + string failure_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Optional. Name of the `Release`. Format is projects/{project}/ @@ -913,12 +1075,21 @@ message Release { // Labels are attributes that can be set and used by both the // user and by Google Cloud Deploy. Labels must meet the following - // constraints: Each resource is limited to 64 labels. Keys must conform to - // the regexp: `[a-zA-Z][a-zA-Z0-9_-]{0,62}`. Values must conform to the - // regexp: `[a-zA-Z0-9_-]{0,63}`. Both keys and values are additionally - // constrained to be <= 128 bytes in size. + // 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; + // Output only. Indicates whether this is an abandoned release. + bool abandoned = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Time at which the `Release` was created. google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -940,7 +1111,7 @@ message Release { // Output only. Snapshot of the parent pipeline taken at release creation time. DeliveryPipeline delivery_pipeline_snapshot = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Snapshot of the parent pipeline's targets taken at release creation time. + // Output only. Snapshot of the targets taken at release creation time. repeated Target target_snapshots = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Current state of the render operation. @@ -1015,7 +1186,7 @@ message ListReleasesRequest { // the call that provided the page token. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Filter builds to be returned. See https://google.aip.dev/160 for more + // Optional. Filter releases to be returned. See https://google.aip.dev/160 for more // details. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; @@ -1141,6 +1312,33 @@ message Rollout { PENDING_RELEASE = 7; } + // Well-known rollout failures. + enum FailureCause { + // No reason for failure is specified. + FAILURE_CAUSE_UNSPECIFIED = 0; + + // Cloud Build is not available, either because it is not enabled or because + // Cloud Deploy has insufficient permissions. See [required + // permission](/deploy/docs/cloud-deploy-service-account#required_permissions). + CLOUD_BUILD_UNAVAILABLE = 1; + + // The deploy operation did not complete successfully; check Cloud Build + // logs. + EXECUTION_FAILED = 2; + + // Deployment did not complete within the alloted time. + DEADLINE_EXCEEDED = 3; + + // Release is in a failed state. + RELEASE_FAILED = 4; + + // Release is abandoned. + RELEASE_ABANDONED = 5; + + // No skaffold verify configuration was found. + VERIFICATION_CONFIG_NOT_FOUND = 6; + } + // Optional. Name of the `Rollout`. Format is projects/{project}/ // locations/{location}/deliveryPipelines/{deliveryPipeline}/ // releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}. @@ -1161,10 +1359,16 @@ message Rollout { // Labels are attributes that can be set and used by both the // user and by Google Cloud Deploy. Labels must meet the following - // constraints: Each resource is limited to 64 labels. Keys must conform to - // the regexp: `[a-zA-Z][a-zA-Z0-9_-]{0,62}`. Values must conform to the - // regexp: `[a-zA-Z0-9_-]{0,63}`. Both keys and values are additionally - // constrained to be <= 128 bytes in size. + // 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; // Output only. Time at which the `Rollout` was created. @@ -1191,7 +1395,7 @@ message Rollout { // Output only. Current state of the `Rollout`. State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Reason the build failed. Empty if the build succeeded. + // Output only. Additional information about the rollout failure, if available. string failure_reason = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The resource name of the Cloud Build `Build` object that is used to deploy @@ -1208,6 +1412,149 @@ message Rollout { // fields, and may be sent on update and delete requests to ensure the // client has an up-to-date value before proceeding. string etag = 16; + + // Output only. The reason this rollout failed. This will always be unspecified while the + // rollout is in progress. + FailureCause deploy_failure_cause = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The phases that represent the workflows of this `Rollout`. + repeated Phase phases = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata contains information about the rollout. + Metadata metadata = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Metadata includes information associated with a `Rollout`. +message Metadata { + // Output only. The name of the Cloud Run Service that is associated with a `Rollout`. + CloudRunMetadata cloud_run = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// DeployJobRunMetadata surfaces information associated with a `DeployJobRun` to +// the user. +message DeployJobRunMetadata { + // Output only. The name of the Cloud Run Service that is associated with a `DeployJobRun`. + CloudRunMetadata cloud_run = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// CloudRunMetadata contains information from a Cloud Run deployment. +message CloudRunMetadata { + // Output only. The name of the Cloud Run Service that is associated with a `Rollout`. + // Format is projects/{project}/locations/{location}/services/{service}. + string service = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Cloud Run Service urls that are associated with a `Rollout`. + repeated string service_urls = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Cloud Run Revision id associated with a `Rollout`. + string revision = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Phase represents a collection of jobs that are logically grouped together +// for a `Rollout`. +message Phase { + // Valid states of a Phase. + enum State { + // The Phase has an unspecified state. + STATE_UNSPECIFIED = 0; + + // The Phase is waiting for an earlier Phase(s) to complete. + PENDING = 1; + + // The Phase is in progress. + IN_PROGRESS = 2; + + // The Phase has succeeded. + SUCCEEDED = 3; + + // The Phase has failed. + FAILED = 4; + + // The Phase was aborted. + ABORTED = 5; + } + + // Output only. The ID of the Phase. + string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Current state of the Phase. + State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The job composition of this Phase. + oneof jobs { + // Output only. Deployment job composition. + DeploymentJobs deployment_jobs = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// Deployment job composition. +message DeploymentJobs { + // Output only. The deploy Job. This is the first job run in the phase. + Job deploy_job = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The verify Job. Runs after a deploy if the deploy succeeds. + Job verify_job = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Job represents an operation for a `Rollout`. +message Job { + // Valid states of a Job. + enum State { + // The Job has an unspecified state. + STATE_UNSPECIFIED = 0; + + // The Job is waiting for an earlier Phase(s) or Job(s) to complete. + PENDING = 1; + + // The Job is disabled. + DISABLED = 2; + + // The Job is in progress. + IN_PROGRESS = 3; + + // The Job succeeded. + SUCCEEDED = 4; + + // The Job failed. + FAILED = 5; + + // The Job was aborted. + ABORTED = 6; + } + + // Output only. The ID of the Job. + string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the Job. + State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the `JobRun` responsible for the most recent invocation of this + // Job. + string job_run = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/JobRun" + } + ]; + + // The type of Job. + oneof job_type { + // Output only. A deploy Job. + DeployJob deploy_job = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A verify Job. + VerifyJob verify_job = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// A deploy Job. +message DeployJob { + +} + +// A verify Job. +message VerifyJob { + } // ListRolloutsRequest is the request object used by `ListRollouts`. @@ -1232,7 +1579,7 @@ message ListRolloutsRequest { // the call that provided the page token. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Filter builds to be returned. See https://google.aip.dev/160 for more + // Optional. Filter rollouts to be returned. See https://google.aip.dev/160 for more // details. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; @@ -1351,6 +1698,255 @@ message ApproveRolloutResponse { } +// RetryJobRequest is the request object used by `RetryJob`. +message RetryJobRequest { + // Required. Name of the Rollout. Format is + // projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ + // releases/{release}/rollouts/{rollout}. + string rollout = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/Rollout" + } + ]; + + // Required. The phase ID the Job to retry belongs to. + string phase_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The job ID for the Job to retry. + string job_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The response object from 'RetryJob'. +message RetryJobResponse { + +} + +// The request object used by `AbandonRelease`. +message AbandonReleaseRequest { + // Required. Name of the Release. Format is + // projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ + // releases/{release}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/Release" + } + ]; +} + +// The response object for `AbandonRelease`. +message AbandonReleaseResponse { + +} + +// A `JobRun` resource in the Google Cloud Deploy API. +// +// A `JobRun` contains information of a single `Rollout` job evaluation. +message JobRun { + option (google.api.resource) = { + type: "clouddeploy.googleapis.com/JobRun" + pattern: "projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}/jobRuns/{job_run}" + }; + + // Valid states of a `JobRun`. + enum State { + // The `JobRun` has an unspecified state. + STATE_UNSPECIFIED = 0; + + // The `JobRun` is in progress. + IN_PROGRESS = 1; + + // The `JobRun` has succeeded. + SUCCEEDED = 2; + + // The `JobRun` has failed. + FAILED = 3; + } + + // Optional. Name of the `JobRun`. Format is projects/{project}/locations/{location}/ + // deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/ + // {rollouts}/jobRuns/{uuid}. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Unique identifier of the `JobRun`. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ID of the `Rollout` phase this `JobRun` belongs in. + string phase_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ID of the `Rollout` job this `JobRun` corresponds to. + string job_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time at which the `JobRun` was created. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time at which the `JobRun` was started. + google.protobuf.Timestamp start_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time at which the `JobRun` ended. + google.protobuf.Timestamp end_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the `JobRun`. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The `JobRun` type and the information for that type. + oneof job_run { + // Output only. Information specific to a deploy `JobRun`. + DeployJobRun deploy_job_run = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information specific to a verify `JobRun`. + VerifyJobRun verify_job_run = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. 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 = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// DeployJobRun contains information specific to a deploy `JobRun`. +message DeployJobRun { + // Well-known deploy failures. + enum FailureCause { + // No reason for failure is specified. + FAILURE_CAUSE_UNSPECIFIED = 0; + + // Cloud Build is not available, either because it is not enabled or because + // Google Cloud Deploy has insufficient permissions. See [Required + // permission](/deploy/docs/cloud-deploy-service-account#required_permissions). + CLOUD_BUILD_UNAVAILABLE = 1; + + // The deploy operation did not complete successfully; check Cloud Build + // logs. + EXECUTION_FAILED = 2; + + // The deploy build did not complete within the alloted time. + DEADLINE_EXCEEDED = 3; + } + + // Output only. The resource name of the Cloud Build `Build` object that is used to deploy. + // Format is projects/{project}/locations/{location}/builds/{build}. + string build = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/Build" + } + ]; + + // Output only. The reason the deploy failed. This will always be unspecified while the + // deploy is in progress or if it succeeded. + FailureCause failure_cause = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Additional information about the deploy failure, if available. + string failure_message = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata containing information about the deploy job run. + DeployJobRunMetadata metadata = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// VerifyJobRun contains information specific to a verify `JobRun`. +message VerifyJobRun { + // Well-known verify failures. + enum FailureCause { + // No reason for failure is specified. + FAILURE_CAUSE_UNSPECIFIED = 0; + + // Cloud Build is not available, either because it is not enabled or because + // Google Cloud Deploy has insufficient permissions. See [required + // permission](/deploy/docs/cloud-deploy-service-account#required_permissions). + CLOUD_BUILD_UNAVAILABLE = 1; + + // The verify operation did not complete successfully; check Cloud Build + // logs. + EXECUTION_FAILED = 2; + + // The verify build did not complete within the alloted time. + DEADLINE_EXCEEDED = 3; + + // No Skaffold verify configuration was found. + VERIFICATION_CONFIG_NOT_FOUND = 4; + } + + // Output only. The resource name of the Cloud Build `Build` object that is used to verify. + // Format is projects/{project}/locations/{location}/builds/{build}. + string build = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/Build" + } + ]; + + // Output only. URI of a directory containing the verify artifacts. This contains the + // Skaffold event log. + string artifact_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. File path of the Skaffold event log relative to the artifact URI. + string event_log_path = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The reason the verify failed. This will always be unspecified while the + // verify is in progress or if it succeeded. + FailureCause failure_cause = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Additional information about the verify failure, if available. + string failure_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// ListJobRunsRequest is the request object used by `ListJobRuns`. +message ListJobRunsRequest { + // Required. The `Rollout` which owns this collection of `JobRun` objects. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/Rollout" + } + ]; + + // Optional. The maximum number of `JobRun` objects to return. The service may return + // fewer than this value. If unspecified, at most 50 `JobRun` objects will be + // returned. The maximum value is 1000; values above 1000 will be set to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListJobRuns` call. Provide this + // to retrieve the subsequent page. + // + // When paginating, all other provided parameters match the call that provided + // the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter results to be returned. See https://google.aip.dev/160 for more + // details. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Field to sort by. See https://google.aip.dev/132#ordering for more details. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// ListJobRunsResponse is the response object returned by `ListJobRuns`. +message ListJobRunsResponse { + // The `JobRun` objects. + repeated JobRun job_runs = 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; + + // Locations that could not be reached + repeated string unreachable = 3; +} + +// GetJobRunRequest is the request object used by `GetJobRun`. +message GetJobRunRequest { + // Required. Name of the `JobRun`. Format must be + // projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/JobRun" + } + ]; +} + // Service-wide configuration. message Config { option (google.api.resource) = { diff --git a/google/cloud/deploy/v1/clouddeploy_grpc_service_config.json b/google/cloud/deploy/v1/clouddeploy_grpc_service_config.json index e3885a717..53711d436 100644 --- a/google/cloud/deploy/v1/clouddeploy_grpc_service_config.json +++ b/google/cloud/deploy/v1/clouddeploy_grpc_service_config.json @@ -34,6 +34,14 @@ "service": "google.cloud.deploy.v1.CloudDeploy", "method": "GetRollout" }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "ListJobRuns" + }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "GetJobRun" + }, { "service": "google.cloud.deploy.v1.CloudDeploy", "method": "GetConfig" @@ -77,6 +85,10 @@ "service": "google.cloud.deploy.v1.CloudDeploy", "method": "CreateRelease" }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "AbandonRelease" + }, { "service": "google.cloud.deploy.v1.CloudDeploy", "method": "ApproveRollout" @@ -84,6 +96,10 @@ { "service": "google.cloud.deploy.v1.CloudDeploy", "method": "CreateRollout" + }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "RetryJob" } ], "timeout": "60s" diff --git a/google/cloud/deploy/v1/clouddeploy_v1.yaml b/google/cloud/deploy/v1/clouddeploy_v1.yaml index a30d2b5da..4140f7327 100644 --- a/google/cloud/deploy/v1/clouddeploy_v1.yaml +++ b/google/cloud/deploy/v1/clouddeploy_v1.yaml @@ -5,9 +5,18 @@ title: Google Cloud Deploy API apis: - name: google.cloud.deploy.v1.CloudDeploy +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: +- name: google.cloud.deploy.v1.DeliveryPipelineNotificationEvent +- name: google.cloud.deploy.v1.JobRunNotificationEvent - name: google.cloud.deploy.v1.OperationMetadata +- name: google.cloud.deploy.v1.ReleaseNotificationEvent +- name: google.cloud.deploy.v1.ReleaseRenderEvent +- name: google.cloud.deploy.v1.RolloutNotificationEvent +- name: google.cloud.deploy.v1.TargetNotificationEvent documentation: rules: diff --git a/google/cloud/deploy/v1/deliverypipeline_notification_payload.proto b/google/cloud/deploy/v1/deliverypipeline_notification_payload.proto new file mode 100644 index 000000000..5fff2d087 --- /dev/null +++ b/google/cloud/deploy/v1/deliverypipeline_notification_payload.proto @@ -0,0 +1,38 @@ +// 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.cloud.deploy.v1; + +import "google/cloud/deploy/v1/log_enums.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy"; +option java_multiple_files = true; +option java_outer_classname = "DeliveryPipelineNotificationPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/deliverypipeline_notification" +// Platform Log event that describes the failure to send delivery pipeline +// status change Pub/Sub notification. +message DeliveryPipelineNotificationEvent { + // Debug message for when a notification fails to send. + string message = 1; + + // The name of the `Delivery Pipeline`. + string delivery_pipeline = 2; + + // Type of this notification, e.g. for a Pub/Sub failure. + Type type = 3; +} diff --git a/google/cloud/deploy/v1/jobrun_notification_payload.proto b/google/cloud/deploy/v1/jobrun_notification_payload.proto new file mode 100644 index 000000000..f1e80d6b3 --- /dev/null +++ b/google/cloud/deploy/v1/jobrun_notification_payload.proto @@ -0,0 +1,50 @@ +// 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.cloud.deploy.v1; + +import "google/cloud/deploy/v1/log_enums.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy"; +option java_multiple_files = true; +option java_outer_classname = "JobRunNotificationPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/jobrun_notification" +// Platform Log event that describes the failure to send JobRun resource update +// Pub/Sub notification. +message JobRunNotificationEvent { + // Debug message for when a notification fails to send. + string message = 1; + + // The name of the `JobRun`. + string job_run = 2; + + // Unique identifier of the `DeliveryPipeline`. + string pipeline_uid = 3; + + // Unique identifier of the `Release`. + string release_uid = 4; + + // Unique identifier of the `Rollout`. + string rollout_uid = 5; + + // ID of the `Target`. + string target_id = 6; + + // Type of this notification, e.g. for a Pub/Sub failure. + Type type = 7; +} diff --git a/google/cloud/deploy/v1/log_enums.proto b/google/cloud/deploy/v1/log_enums.proto new file mode 100644 index 000000000..cd6a32ea4 --- /dev/null +++ b/google/cloud/deploy/v1/log_enums.proto @@ -0,0 +1,34 @@ +// 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.cloud.deploy.v1; + +option go_package = "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy"; +option java_multiple_files = true; +option java_outer_classname = "LogEnumsProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Type indicates the type of the log entry and can be used as a filter. +enum Type { + // Type is unspecified. + TYPE_UNSPECIFIED = 0; + + // A Pub/Sub notification failed to be sent. + TYPE_PUBSUB_NOTIFICATION_FAILURE = 1; + + // Release render status changed notification. + TYPE_RENDER_STATUES_CHANGE = 2; +} diff --git a/google/cloud/deploy/v1/release_notification_payload.proto b/google/cloud/deploy/v1/release_notification_payload.proto new file mode 100644 index 000000000..0383b8e56 --- /dev/null +++ b/google/cloud/deploy/v1/release_notification_payload.proto @@ -0,0 +1,38 @@ +// 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.cloud.deploy.v1; + +import "google/cloud/deploy/v1/log_enums.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy"; +option java_multiple_files = true; +option java_outer_classname = "ReleaseNotificationPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/release_notification" +// Platform Log event that describes the failure to send release status change +// Pub/Sub notification. +message ReleaseNotificationEvent { + // Debug message for when a notification fails to send. + string message = 1; + + // The name of the `Release`. + string release = 2; + + // Type of this notification, e.g. for a Pub/Sub failure. + Type type = 3; +} diff --git a/google/cloud/deploy/v1/release_render_payload.proto b/google/cloud/deploy/v1/release_render_payload.proto new file mode 100644 index 000000000..414e72ded --- /dev/null +++ b/google/cloud/deploy/v1/release_render_payload.proto @@ -0,0 +1,33 @@ +// 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.cloud.deploy.v1; + +option go_package = "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy"; +option java_multiple_files = true; +option java_outer_classname = "ReleaseRenderPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/release_render" +// Platform Log event that describes the render status change. +message ReleaseRenderEvent { + // Debug message for when a render transition occurs. Provides further + // details as rendering progresses through render states. + string message = 1; + + // The name of the `Release`. + string release = 2; +} diff --git a/google/cloud/deploy/v1/rollout_notification_payload.proto b/google/cloud/deploy/v1/rollout_notification_payload.proto new file mode 100644 index 000000000..10f6864f9 --- /dev/null +++ b/google/cloud/deploy/v1/rollout_notification_payload.proto @@ -0,0 +1,47 @@ +// 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.cloud.deploy.v1; + +import "google/cloud/deploy/v1/log_enums.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy"; +option java_multiple_files = true; +option java_outer_classname = "RolloutNotificationPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/rollout_notification" +// Platform Log event that describes the failure to send rollout status change +// Pub/Sub notification. +message RolloutNotificationEvent { + // Debug message for when a notification fails to send. + string message = 1; + + // Unique identifier of the `DeliveryPipeline`. + string pipeline_uid = 2; + + // Unique identifier of the `Release`. + string release_uid = 3; + + // The name of the `Rollout`. + string rollout = 4; + + // Type of this notification, e.g. for a Pub/Sub failure. + Type type = 5; + + // ID of the `Target` that the rollout is deployed to. + string target_id = 6; +} diff --git a/google/cloud/deploy/v1/target_notification_payload.proto b/google/cloud/deploy/v1/target_notification_payload.proto new file mode 100644 index 000000000..d121cdb8d --- /dev/null +++ b/google/cloud/deploy/v1/target_notification_payload.proto @@ -0,0 +1,38 @@ +// 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.cloud.deploy.v1; + +import "google/cloud/deploy/v1/log_enums.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/deploy/v1;deploy"; +option java_multiple_files = true; +option java_outer_classname = "TargetNotificationPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/target_notification" +// Platform Log event that describes the failure to send target status change +// Pub/Sub notification. +message TargetNotificationEvent { + // Debug message for when a notification fails to send. + string message = 1; + + // The name of the `Target`. + string target = 2; + + // Type of this notification, e.g. for a Pub/Sub failure. + Type type = 3; +} diff --git a/google/cloud/dialogflow/BUILD.bazel b/google/cloud/dialogflow/BUILD.bazel index f3b4be444..fd677c894 100644 --- a/google/cloud/dialogflow/BUILD.bazel +++ b/google/cloud/dialogflow/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-dialogflow", "ruby-cloud-env-prefix=DIALOGFLOW", - "ruby-cloud-wrapper-of=v2:0.8", + "ruby-cloud-wrapper-of=v2:0.15", "ruby-cloud-product-url=https://cloud.google.com/dialogflow", "ruby-cloud-api-id=dialogflow.googleapis.com", "ruby-cloud-api-shortname=dialogflow", diff --git a/google/cloud/dialogflow/cx/v3/BUILD.bazel b/google/cloud/dialogflow/cx/v3/BUILD.bazel index eb1d35808..54fc7a832 100644 --- a/google/cloud/dialogflow/cx/v3/BUILD.bazel +++ b/google/cloud/dialogflow/cx/v3/BUILD.bazel @@ -64,6 +64,7 @@ proto_library_with_info( deps = [ ":cx_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -98,31 +99,50 @@ java_gapic_library( service_yaml = "dialogflow_v3.yaml", test_deps = [ ":cx_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":cx_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "cx_java_gapic_test_suite", test_classes = [ + "com.google.cloud.dialogflow.cx.v3.AgentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.AgentsClientTest", + "com.google.cloud.dialogflow.cx.v3.ChangelogsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.ChangelogsClientTest", + "com.google.cloud.dialogflow.cx.v3.DeploymentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.DeploymentsClientTest", + "com.google.cloud.dialogflow.cx.v3.EntityTypesClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.EntityTypesClientTest", + "com.google.cloud.dialogflow.cx.v3.EnvironmentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.EnvironmentsClientTest", + "com.google.cloud.dialogflow.cx.v3.ExperimentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.ExperimentsClientTest", + "com.google.cloud.dialogflow.cx.v3.FlowsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.FlowsClientTest", + "com.google.cloud.dialogflow.cx.v3.IntentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.IntentsClientTest", + "com.google.cloud.dialogflow.cx.v3.PagesClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.PagesClientTest", + "com.google.cloud.dialogflow.cx.v3.SecuritySettingsServiceClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.SecuritySettingsServiceClientTest", + "com.google.cloud.dialogflow.cx.v3.SessionEntityTypesClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.SessionEntityTypesClientTest", + "com.google.cloud.dialogflow.cx.v3.SessionsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.SessionsClientTest", + "com.google.cloud.dialogflow.cx.v3.TestCasesClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.TestCasesClientTest", + "com.google.cloud.dialogflow.cx.v3.TransitionRouteGroupsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.TransitionRouteGroupsClientTest", + "com.google.cloud.dialogflow.cx.v3.VersionsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.VersionsClientTest", + "com.google.cloud.dialogflow.cx.v3.WebhooksClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3.WebhooksClientTest", ], runtime_deps = [":cx_java_gapic_test"], @@ -131,6 +151,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-dialogflow-cx-v3-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":cx_java_gapic", ":cx_java_grpc", @@ -170,8 +192,10 @@ go_gapic_library( importpath = "cloud.google.com/go/dialogflow/cx/apiv3;cx", metadata = True, service_yaml = "dialogflow_v3.yaml", + transport = "grpc+rest", deps = [ ":cx_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", @@ -215,8 +239,21 @@ py_gapic_library( "python-gapic-name=dialogflowcx", "python-gapic-namespace=google.cloud", ], + service_yaml = "dialogflow_v3.yaml", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "cx_py_gapic_test", +# srcs = [ +# "cx_py_gapic_pytest.py", +# "cx_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":cx_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "dialogflow-cx-v3-py", @@ -286,6 +323,7 @@ nodejs_gapic_library( package = "google.cloud.dialogflow.cx.v3", service_yaml = "dialogflow_v3.yaml", deps = [], + mixins = "google.longrunning.Operations;google.cloud.location.Locations", ) nodejs_gapic_assembly_pkg( @@ -332,6 +370,7 @@ ruby_cloud_gapic_library( grpc_service_config = "dialogflow_grpc_service_config.json", ruby_cloud_description = "Dialogflow is an end-to-end, build-once deploy-everywhere development suite for creating conversational interfaces for websites, mobile applications, popular messaging platforms, and IoT devices. You can use it to build interfaces (such as chatbots and conversational IVR) that enable natural and rich interactions between your users and your business. This client is for Dialogflow CX, providing an advanced agent type suitable for large or very complex agents.", ruby_cloud_title = "Dialogflow CX V3", + service_yaml = "dialogflow_v3.yaml", deps = [ ":cx_ruby_grpc", ":cx_ruby_proto", @@ -375,6 +414,7 @@ csharp_gapic_library( srcs = [":cx_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dialogflow_grpc_service_config.json", + service_yaml = "dialogflow_v3.yaml", deps = [ ":cx_csharp_grpc", ":cx_csharp_proto", diff --git a/google/cloud/dialogflow/cx/v3/advanced_settings.proto b/google/cloud/dialogflow/cx/v3/advanced_settings.proto index 6fba53ce9..4cb0fefcd 100644 --- a/google/cloud/dialogflow/cx/v3/advanced_settings.proto +++ b/google/cloud/dialogflow/cx/v3/advanced_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/protobuf/duration.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3"; @@ -31,7 +28,13 @@ option ruby_package = "Google::Cloud::Dialogflow::CX::V3"; // Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. // Settings exposed at lower level overrides the settings exposed at higher -// level. +// level. Overriding occurs at the sub-setting level. For example, the +// playback_interruption_settings at fulfillment level only overrides the +// playback_interruption_settings at the agent level, leaving other settings +// at the agent level unchanged. +// +// DTMF settings does not override each other. DTMF settings set at different +// levels define DTMF detections running in parallel. // // Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. message AdvancedSettings { diff --git a/google/cloud/dialogflow/cx/v3/agent.proto b/google/cloud/dialogflow/cx/v3/agent.proto index 8c41dcd22..0c4fb140b 100644 --- a/google/cloud/dialogflow/cx/v3/agent.proto +++ b/google/cloud/dialogflow/cx/v3/agent.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/cx/v3/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3/flow.proto"; -import "google/cloud/dialogflow/cx/v3/security_settings.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -250,6 +249,10 @@ message Agent { // requests. bool enable_spell_correction = 20; + // 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; + // Hierarchical advanced settings for this agent. The settings exposed at the // lower level overrides the settings exposed at the higher level. AdvancedSettings advanced_settings = 22; @@ -336,6 +339,15 @@ message DeleteAgentRequest { // The request message for [Agents.ExportAgent][google.cloud.dialogflow.cx.v3.Agents.ExportAgent]. message ExportAgentRequest { + // Data format of the exported agent. + enum DataFormat { + // Unspecified format. + DATA_FORMAT_UNSPECIFIED = 0; + + // Agent content will be exported as raw bytes. + BLOB = 1; + } + // Required. The name of the agent to export. // Format: `projects//locations//agents/`. string name = 1 [ @@ -349,8 +361,17 @@ message ExportAgentRequest { // export the agent to. The format of this URI must be // `gs:///`. // If left unspecified, the serialized agent is returned inline. + // + // Dialogflow performs a write operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have write permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The data format of the exported agent. If not specified, `BLOB` is assumed. + DataFormat data_format = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Environment name. If not set, draft environment is assumed. // Format: `projects//locations//agents//environments/`. @@ -406,6 +427,12 @@ message RestoreAgentRequest { // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI // to restore agent from. The format of this URI must be // `gs:///`. + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2; // Uncompressed raw byte content for agent. diff --git a/google/cloud/dialogflow/cx/v3/audio_config.proto b/google/cloud/dialogflow/cx/v3/audio_config.proto index d2551ff83..3c1d37165 100644 --- a/google/cloud/dialogflow/cx/v3/audio_config.proto +++ b/google/cloud/dialogflow/cx/v3/audio_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,11 +16,9 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3; -import "google/api/annotations.proto"; 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.Dialogflow.Cx.V3"; @@ -30,6 +28,10 @@ option java_outer_classname = "AudioConfigProto"; option java_package = "com.google.cloud.dialogflow.cx.v3"; option objc_class_prefix = "DF"; option ruby_package = "Google::Cloud::Dialogflow::CX::V3"; +option (google.api.resource_definition) = { + type: "automl.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/models/{model}" +}; // Audio encoding of the audio content sent in the conversational query request. // Refer to the diff --git a/google/cloud/dialogflow/cx/v3/changelog.proto b/google/cloud/dialogflow/cx/v3/changelog.proto index 997de1bb6..583055fdc 100644 --- a/google/cloud/dialogflow/cx/v3/changelog.proto +++ b/google/cloud/dialogflow/cx/v3/changelog.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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"; import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/dialogflow/cx/v3/deployment.proto b/google/cloud/dialogflow/cx/v3/deployment.proto index 022f6df39..f5831cc64 100644 --- a/google/cloud/dialogflow/cx/v3/deployment.proto +++ b/google/cloud/dialogflow/cx/v3/deployment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,8 +20,6 @@ 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 cc_enable_arenas = true; diff --git a/google/cloud/dialogflow/cx/v3/dialogflow_v3.yaml b/google/cloud/dialogflow/cx/v3/dialogflow_v3.yaml index 7edef2b89..793c453df 100644 --- a/google/cloud/dialogflow/cx/v3/dialogflow_v3.yaml +++ b/google/cloud/dialogflow/cx/v3/dialogflow_v3.yaml @@ -20,6 +20,8 @@ apis: - name: google.cloud.dialogflow.cx.v3.TransitionRouteGroups - name: google.cloud.dialogflow.cx.v3.Versions - name: google.cloud.dialogflow.cx.v3.Webhooks +- name: google.cloud.location.Locations +- name: google.longrunning.Operations types: - name: google.cloud.dialogflow.cx.v3.BatchRunTestCasesMetadata @@ -118,6 +120,8 @@ backend: deadline: 60.0 - selector: 'google.longrunning.Operations.*' deadline: 60.0 + - selector: google.longrunning.Operations.ListOperations + deadline: 180.0 http: rules: diff --git a/google/cloud/dialogflow/cx/v3/entity_type.proto b/google/cloud/dialogflow/cx/v3/entity_type.proto index a987bd4f9..92c689e39 100644 --- a/google/cloud/dialogflow/cx/v3/entity_type.proto +++ b/google/cloud/dialogflow/cx/v3/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/cx/v3/environment.proto b/google/cloud/dialogflow/cx/v3/environment.proto index e4e74864f..38cb107f2 100644 --- a/google/cloud/dialogflow/cx/v3/environment.proto +++ b/google/cloud/dialogflow/cx/v3/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -208,6 +208,15 @@ message Environment { bool enable_predeployment_run = 3; } + // Configuration for webhooks. + message WebhookConfig { + // The list of webhooks to override for the agent environment. The webhook + // must exist in the agent. You can override fields in + // [`generic_web_service`][google.cloud.dialogflow.cx.v3.Webhook.generic_web_service] and + // [`service_directory`][google.cloud.dialogflow.cx.v3.Webhook.service_directory]. + repeated Webhook webhook_overrides = 1; + } + // The name of the environment. // Format: `projects//locations//agents//environments/`. @@ -232,6 +241,9 @@ message Environment { // The test cases config for continuous tests of this environment. TestCasesConfig test_cases_config = 7; + + // The webhook configuration for this environment. + WebhookConfig webhook_config = 10; } // The request message for [Environments.ListEnvironments][google.cloud.dialogflow.cx.v3.Environments.ListEnvironments]. diff --git a/google/cloud/dialogflow/cx/v3/experiment.proto b/google/cloud/dialogflow/cx/v3/experiment.proto index 203aa005e..6b5216dd5 100644 --- a/google/cloud/dialogflow/cx/v3/experiment.proto +++ b/google/cloud/dialogflow/cx/v3/experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/cx/v3/flow.proto b/google/cloud/dialogflow/cx/v3/flow.proto index 98be51c4f..b95320bc8 100644 --- a/google/cloud/dialogflow/cx/v3/flow.proto +++ b/google/cloud/dialogflow/cx/v3/flow.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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/v3/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3/page.proto"; import "google/cloud/dialogflow/cx/v3/validation_message.proto"; import "google/longrunning/operations.proto"; @@ -275,7 +274,7 @@ message Flow { // // TransitionRoutes are evalauted in the following order: // - // * TransitionRoutes with intent specified.. + // * TransitionRoutes with intent specified. // * TransitionRoutes with only condition specified. // // TransitionRoutes with intent specified are inherited by pages in the flow. @@ -560,6 +559,12 @@ message ImportFlowRequest { // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI // to import flow from. The format of this URI must be // `gs:///`. + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string flow_uri = 2; // Uncompressed raw byte content for flow. @@ -596,6 +601,12 @@ message ExportFlowRequest { // export the flow to. The format of this URI must be // `gs:///`. // If left unspecified, the serialized flow is returned inline. + // + // Dialogflow performs a write operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have write permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string flow_uri = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to export flows referenced by the specified flow. diff --git a/google/cloud/dialogflow/cx/v3/fulfillment.proto b/google/cloud/dialogflow/cx/v3/fulfillment.proto index 6e81155ad..e21ede58d 100644 --- a/google/cloud/dialogflow/cx/v3/fulfillment.proto +++ b/google/cloud/dialogflow/cx/v3/fulfillment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,7 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3; -import "google/api/annotations.proto"; import "google/api/resource.proto"; -import "google/cloud/dialogflow/cx/v3/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3/response_message.proto"; import "google/protobuf/struct.proto"; @@ -108,7 +106,11 @@ message Fulfillment { // that have slow webhooks. bool return_partial_responses = 8; - // The tag used by the webhook to identify which fulfillment is being called. + // The value of this field will be populated in the [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] + // `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is + // called. + // The tag is typically used by the webhook service to identify which + // fulfillment is being called, but it could be used for other purposes. // This field is required if `webhook` is specified. string tag = 3; diff --git a/google/cloud/dialogflow/cx/v3/intent.proto b/google/cloud/dialogflow/cx/v3/intent.proto index 48bc0f894..051602884 100644 --- a/google/cloud/dialogflow/cx/v3/intent.proto +++ b/google/cloud/dialogflow/cx/v3/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,10 +20,8 @@ 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 cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3"; diff --git a/google/cloud/dialogflow/cx/v3/page.proto b/google/cloud/dialogflow/cx/v3/page.proto index 694e4b6d4..e9753b144 100644 --- a/google/cloud/dialogflow/cx/v3/page.proto +++ b/google/cloud/dialogflow/cx/v3/page.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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/v3/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3/fulfillment.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -126,7 +125,7 @@ message Page { // ID>/flows//pages/`. string name = 1; - // Required. The human-readable name of the page, unique within the agent. + // Required. The human-readable name of the page, unique within the flow. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; // The fulfillment to call when the session is entering the page. diff --git a/google/cloud/dialogflow/cx/v3/response_message.proto b/google/cloud/dialogflow/cx/v3/response_message.proto index 6c0f10b0c..72a235714 100644 --- a/google/cloud/dialogflow/cx/v3/response_message.proto +++ b/google/cloud/dialogflow/cx/v3/response_message.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/struct.proto"; diff --git a/google/cloud/dialogflow/cx/v3/security_settings.proto b/google/cloud/dialogflow/cx/v3/security_settings.proto index 190b6610f..ae8bd1694 100644 --- a/google/cloud/dialogflow/cx/v3/security_settings.proto +++ b/google/cloud/dialogflow/cx/v3/security_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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"; @@ -214,6 +213,41 @@ message SecuritySettings { DIALOGFLOW_HISTORY = 1; } + // Settings for exporting audio. + message AudioExportSettings { + // File format for exported audio file. Currently only in telephony + // recordings. + enum AudioFormat { + // Unspecified. Do not use. + AUDIO_FORMAT_UNSPECIFIED = 0; + + // G.711 mu-law PCM with 8kHz sample rate. + MULAW = 1; + + // MP3 file format. + MP3 = 2; + + // OGG Vorbis. + OGG = 3; + } + + // Cloud Storage bucket to export audio record to. You need to grant + // `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Storage Object + // Admin` role in this bucket. + string gcs_bucket = 1; + + // Filename pattern for exported audio. + string audio_export_pattern = 2; + + // Enable audio redaction if it is true. + bool enable_audio_redaction = 3; + + // File format for exported audio file. Currently only in telephony + // recordings. + AudioFormat audio_format = 4; + } + // Settings for exporting conversations to // [Insights](https://cloud.google.com/contact-center/insights/docs). message InsightsExportSettings { @@ -303,6 +337,21 @@ message SecuritySettings { // List of types of data to remove when retention settings triggers purge. repeated PurgeDataType purge_data_types = 8; + // Controls audio export settings for post-conversation analytics when + // ingesting audio to conversations via [Participants.AnalyzeContent][] or + // [Participants.StreamingAnalyzeContent][]. + // + // If [retention_strategy][google.cloud.dialogflow.cx.v3.SecuritySettings.retention_strategy] is set to REMOVE_AFTER_CONVERSATION or + // [audio_export_settings.gcs_bucket][] is empty, audio export is disabled. + // + // If audio export is enabled, audio is recorded and saved to + // [audio_export_settings.gcs_bucket][], subject to retention policy of + // [audio_export_settings.gcs_bucket][]. + // + // This setting won't effect audio input for implicit sessions via + // [Sessions.DetectIntent][google.cloud.dialogflow.cx.v3.Sessions.DetectIntent] or [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3.Sessions.StreamingDetectIntent]. + AudioExportSettings audio_export_settings = 12; + // Controls conversation exporting settings to Insights after conversation is // completed. // diff --git a/google/cloud/dialogflow/cx/v3/session.proto b/google/cloud/dialogflow/cx/v3/session.proto index 0ef952f22..6b408e9b2 100644 --- a/google/cloud/dialogflow/cx/v3/session.proto +++ b/google/cloud/dialogflow/cx/v3/session.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,9 +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/dialogflow/cx/v3/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3/audio_config.proto"; -import "google/cloud/dialogflow/cx/v3/flow.proto"; import "google/cloud/dialogflow/cx/v3/intent.proto"; import "google/cloud/dialogflow/cx/v3/page.proto"; import "google/cloud/dialogflow/cx/v3/response_message.proto"; @@ -440,16 +438,14 @@ message QueryParameters { // map, associative array, symbol table, dictionary, or JSON object // composed of a collection of (MapKey, MapValue) pairs: // - // - MapKey type: string - // - MapKey value: parameter name - // - MapValue type: - // - If parameter's entity type is a composite entity: map - // - Else: depending on parameter value type, could be one of string, - // number, boolean, null, list or map - // - MapValue value: - // - If parameter's entity type is a composite entity: - // map from composite entity property names to property values - // - Else: parameter value + // * MapKey type: string + // * MapKey value: parameter name + // * MapValue type: If parameter's entity type is a composite entity then use + // map, otherwise, depending on the parameter value type, it could be one of + // string, number, boolean, null, list or map. + // * MapValue value: If parameter's entity type is a composite entity then use + // map from composite entity property names to property values, otherwise, + // use parameter value. google.protobuf.Struct parameters = 5; // The unique identifier of the [page][google.cloud.dialogflow.cx.v3.Page] to override the [current @@ -575,16 +571,14 @@ message QueryResult { // map, associative array, symbol table, dictionary, or JSON object // composed of a collection of (MapKey, MapValue) pairs: // - // - MapKey type: string - // - MapKey value: parameter name - // - MapValue type: - // - If parameter's entity type is a composite entity: map - // - Else: depending on parameter value type, could be one of string, - // number, boolean, null, list or map - // - MapValue value: - // - If parameter's entity type is a composite entity: - // map from composite entity property names to property values - // - Else: parameter value + // * MapKey type: string + // * MapKey value: parameter name + // * MapValue type: If parameter's entity type is a composite entity then use + // map, otherwise, depending on the parameter value type, it could be one of + // string, number, boolean, null, list or map. + // * MapValue value: If parameter's entity type is a composite entity then use + // map from composite entity property names to property values, otherwise, + // use parameter value. google.protobuf.Struct parameters = 3; // The list of rich messages returned to the client. Responses vary from @@ -623,8 +617,22 @@ message QueryResult { Match match = 15; // The free-form diagnostic info. For example, this field could contain - // webhook call latency. The string keys of the Struct's fields map can change - // without notice. + // webhook call latency. The fields of this data can change without notice, + // so you should not write code that depends on its structure. + // + // One of the fields is called "Alternative Matched Intents", which may + // aid with debugging. The following describes these intent results: + // + // - The list is empty if no intent was matched to end-user input. + // - Only intents that are referenced in the currently active flow are + // included. + // - The matched intent is included. + // - Other intents that could have matched end-user input, but did not match + // because they are referenced by intent routes that are out of + // [scope](https://cloud.google.com/dialogflow/cx/docs/concept/handler#scope), + // are included. + // - Other intents referenced by intent routes in scope that matched end-user + // input, but had a lower confidence score. google.protobuf.Struct diagnostic_info = 10; // The sentiment analyss result, which depends on @@ -728,16 +736,14 @@ message Match { // map, associative array, symbol table, dictionary, or JSON object // composed of a collection of (MapKey, MapValue) pairs: // - // - MapKey type: string - // - MapKey value: parameter name - // - MapValue type: - // - If parameter's entity type is a composite entity: map - // - Else: depending on parameter value type, could be one of string, - // number, boolean, null, list or map - // - MapValue value: - // - If parameter's entity type is a composite entity: - // map from composite entity property names to property values - // - Else: parameter value + // * MapKey type: string + // * MapKey value: parameter name + // * MapValue type: If parameter's entity type is a composite entity then use + // map, otherwise, depending on the parameter value type, it could be one of + // string, number, boolean, null, list or map. + // * MapValue value: If parameter's entity type is a composite entity then use + // map from composite entity property names to property values, otherwise, + // use parameter value. google.protobuf.Struct parameters = 2; // Final text input which was matched during MatchIntent. This value can be diff --git a/google/cloud/dialogflow/cx/v3/session_entity_type.proto b/google/cloud/dialogflow/cx/v3/session_entity_type.proto index f9d298c48..cf9f1a410 100644 --- a/google/cloud/dialogflow/cx/v3/session_entity_type.proto +++ b/google/cloud/dialogflow/cx/v3/session_entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/cx/v3/test_case.proto b/google/cloud/dialogflow/cx/v3/test_case.proto index 3f698e19b..b2ecf59d2 100644 --- a/google/cloud/dialogflow/cx/v3/test_case.proto +++ b/google/cloud/dialogflow/cx/v3/test_case.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -139,7 +139,7 @@ service TestCases { } // Imports the test cases from a Cloud Storage bucket or a local file. It - // always creates new test cases and won't overwite any existing ones. The + // always creates new test cases and won't overwrite any existing ones. The // provided ID in the imported test case is neglected. // // This method is a [long-running @@ -270,12 +270,29 @@ message TestConfig { // Session parameters to be compared when calculating differences. repeated string tracking_parameters = 1; - // Flow name. If not set, default start flow is assumed. + // Flow name to start the test case with. // Format: `projects//locations//agents//flows/`. + // + // Only one of `flow` and `page` should be set to indicate the starting point + // of the test case. If both are set, `page` takes precedence over `flow`. If + // neither is set, the test case will start with start page on the default + // start flow. string flow = 2 [(google.api.resource_reference) = { type: "dialogflow.googleapis.com/Flow" }]; + + // The [page][google.cloud.dialogflow.cx.v3.Page] to start the test case with. + // Format: `projects//locations//agents//flows//pages/`. + // + // Only one of `flow` and `page` should be set to indicate the starting point + // of the test case. If both are set, `page` takes precedence over `flow`. If + // neither is set, the test case will start with start page on the default + // start flow. + string page = 3 [(google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Page" + }]; } // One interaction between a human and virtual agent. The human provides some @@ -744,6 +761,12 @@ message ImportTestCasesRequest { // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI // to import test cases from. The format of this URI must be // `gs:///`. + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string gcs_uri = 2; // Uncompressed raw byte content for test cases. @@ -806,6 +829,12 @@ message ExportTestCasesRequest { // export the test cases to. The format of this URI must be // `gs:///`. If unspecified, the serialized test // cases is returned inline. + // + // Dialogflow performs a write operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have write permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string gcs_uri = 2; } diff --git a/google/cloud/dialogflow/cx/v3/transition_route_group.proto b/google/cloud/dialogflow/cx/v3/transition_route_group.proto index 382254d96..1502af0c7 100644 --- a/google/cloud/dialogflow/cx/v3/transition_route_group.proto +++ b/google/cloud/dialogflow/cx/v3/transition_route_group.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -111,7 +111,7 @@ message TransitionRouteGroup { string name = 1; // Required. The human-readable name of the transition route group, unique within - // the [Agent][google.cloud.dialogflow.cx.v3.Agent]. The display name can be no longer than 30 characters. + // the flow. The display name can be no longer than 30 characters. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; // Transition routes associated with the [TransitionRouteGroup][google.cloud.dialogflow.cx.v3.TransitionRouteGroup]. diff --git a/google/cloud/dialogflow/cx/v3/validation_message.proto b/google/cloud/dialogflow/cx/v3/validation_message.proto index 1263b4eea..fc7f25171 100644 --- a/google/cloud/dialogflow/cx/v3/validation_message.proto +++ b/google/cloud/dialogflow/cx/v3/validation_message.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3; -import "google/api/annotations.proto"; -import "google/protobuf/struct.proto"; - option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3"; option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3;cx"; diff --git a/google/cloud/dialogflow/cx/v3/version.proto b/google/cloud/dialogflow/cx/v3/version.proto index 326c4850c..636503d6c 100644 --- a/google/cloud/dialogflow/cx/v3/version.proto +++ b/google/cloud/dialogflow/cx/v3/version.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,12 +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/dialogflow/cx/v3/entity_type.proto"; import "google/cloud/dialogflow/cx/v3/flow.proto"; -import "google/cloud/dialogflow/cx/v3/intent.proto"; -import "google/cloud/dialogflow/cx/v3/page.proto"; -import "google/cloud/dialogflow/cx/v3/transition_route_group.proto"; -import "google/cloud/dialogflow/cx/v3/webhook.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; diff --git a/google/cloud/dialogflow/cx/v3/webhook.proto b/google/cloud/dialogflow/cx/v3/webhook.proto index b2d7f3618..7974131d7 100644 --- a/google/cloud/dialogflow/cx/v3/webhook.proto +++ b/google/cloud/dialogflow/cx/v3/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -121,10 +121,12 @@ message Webhook { // N.B. Make sure the HTTPS server certificates are signed with "subject alt // name". For instance a certificate can be self-signed using the following // command, + // ``` // openssl x509 -req -days 200 -in example.com.csr \ // -signkey example.com.key \ // -out example.com.crt \ // -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") + // ``` repeated bytes allowed_ca_certs = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -271,11 +273,17 @@ message DeleteWebhookRequest { // The request message for a webhook call. The request is sent as a JSON object // and the field names will be presented in camel cases. +// +// You may see undocumented fields in an actual request. These fields are used +// internally by Dialogflow and should be ignored. message WebhookRequest { // Represents fulfillment information communicated to the webhook. message FulfillmentInfo { - // Always present. The tag used to identify which fulfillment is being - // called. + // Always present. + // The value of the [Fulfillment.tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag] field will be populated in this + // field by Dialogflow when the associated webhook is called. + // The tag is typically used by the webhook service to identify which + // fulfillment is being called, but it could be used for other purposes. string tag = 1; } diff --git a/google/cloud/dialogflow/cx/v3beta1/BUILD.bazel b/google/cloud/dialogflow/cx/v3beta1/BUILD.bazel index 6632c6e4b..de13e9b88 100644 --- a/google/cloud/dialogflow/cx/v3beta1/BUILD.bazel +++ b/google/cloud/dialogflow/cx/v3beta1/BUILD.bazel @@ -64,6 +64,7 @@ proto_library_with_info( deps = [ ":cx_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -98,31 +99,50 @@ java_gapic_library( service_yaml = "dialogflow_v3beta1.yaml", test_deps = [ ":cx_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":cx_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "cx_java_gapic_test_suite", test_classes = [ + "com.google.cloud.dialogflow.cx.v3beta1.AgentsClientHttpJsonTest", "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.DeploymentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.DeploymentsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.EntityTypesClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.EntityTypesClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.EnvironmentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.EnvironmentsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.ExperimentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.ExperimentsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.FlowsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.FlowsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.IntentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.IntentsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.PagesClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.PagesClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.SecuritySettingsServiceClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.SecuritySettingsServiceClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.SessionEntityTypesClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.SessionEntityTypesClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.SessionsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.SessionsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.TestCasesClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.TestCasesClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroupsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.VersionsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.VersionsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.WebhooksClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.WebhooksClientTest", ], runtime_deps = [":cx_java_gapic_test"], @@ -131,6 +151,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-dialogflow-cx-v3beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":cx_java_gapic", ":cx_java_grpc", @@ -170,8 +192,10 @@ go_gapic_library( importpath = "cloud.google.com/go/dialogflow/cx/apiv3beta1;cx", metadata = True, service_yaml = "dialogflow_v3beta1.yaml", + transport = "grpc+rest", deps = [ ":cx_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", @@ -215,8 +239,21 @@ py_gapic_library( "python-gapic-name=dialogflowcx", "python-gapic-namespace=google.cloud", ], + service_yaml = "dialogflow_v3beta1.yaml", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "cx_py_gapic_test", +# srcs = [ +# "cx_py_gapic_pytest.py", +# "cx_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":cx_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "dialogflow-cx-v3beta1-py", @@ -286,6 +323,7 @@ nodejs_gapic_library( package = "google.cloud.dialogflow.cx.v3beta1", service_yaml = "dialogflow_v3beta1.yaml", deps = [], + mixins = "google.longrunning.Operations;google.cloud.location.Locations", ) nodejs_gapic_assembly_pkg( @@ -332,6 +370,7 @@ ruby_cloud_gapic_library( grpc_service_config = "dialogflow_grpc_service_config.json", ruby_cloud_description = "Dialogflow is an end-to-end, build-once deploy-everywhere development suite for creating conversational interfaces for websites, mobile applications, popular messaging platforms, and IoT devices. You can use it to build interfaces (such as chatbots and conversational IVR) that enable natural and rich interactions between your users and your business. This client is for Dialogflow CX, providing an advanced agent type suitable for large or very complex agents.", ruby_cloud_title = "Dialogflow CX V3beta1", + service_yaml = "dialogflow_v3beta1.yaml", deps = [ ":cx_ruby_grpc", ":cx_ruby_proto", @@ -375,6 +414,7 @@ csharp_gapic_library( srcs = [":cx_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dialogflow_grpc_service_config.json", + service_yaml = "dialogflow_v3beta1.yaml", deps = [ ":cx_csharp_grpc", ":cx_csharp_proto", diff --git a/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto b/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto index 2f895d1c0..a828f6662 100644 --- a/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto +++ b/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3beta1; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/protobuf/duration.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1"; @@ -31,7 +28,13 @@ option ruby_package = "Google::Cloud::Dialogflow::CX::V3beta1"; // Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. // Settings exposed at lower level overrides the settings exposed at higher -// level. +// level. Overriding occurs at the sub-setting level. For example, the +// playback_interruption_settings at fulfillment level only overrides the +// playback_interruption_settings at the agent level, leaving other settings +// at the agent level unchanged. +// +// DTMF settings does not override each other. DTMF settings set at different +// levels define DTMF detections running in parallel. // // Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. message AdvancedSettings { diff --git a/google/cloud/dialogflow/cx/v3beta1/agent.proto b/google/cloud/dialogflow/cx/v3beta1/agent.proto index 0322519c6..fd8e2fb08 100644 --- a/google/cloud/dialogflow/cx/v3beta1/agent.proto +++ b/google/cloud/dialogflow/cx/v3beta1/agent.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ 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/flow.proto"; -import "google/cloud/dialogflow/cx/v3beta1/security_settings.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -250,6 +249,10 @@ message Agent { // requests. bool enable_spell_correction = 20; + // 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; + // Hierarchical advanced settings for this agent. The settings exposed at the // lower level overrides the settings exposed at the higher level. AdvancedSettings advanced_settings = 22; @@ -336,6 +339,15 @@ message DeleteAgentRequest { // The request message for [Agents.ExportAgent][google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent]. message ExportAgentRequest { + // Data format of the exported agent. + enum DataFormat { + // Unspecified format. + DATA_FORMAT_UNSPECIFIED = 0; + + // Agent content will be exported as raw bytes. + BLOB = 1; + } + // Required. The name of the agent to export. // Format: `projects//locations//agents/`. string name = 1 [ @@ -349,8 +361,17 @@ message ExportAgentRequest { // export the agent to. The format of this URI must be // `gs:///`. // If left unspecified, the serialized agent is returned inline. + // + // Dialogflow performs a write operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have write permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The data format of the exported agent. If not specified, `BLOB` is assumed. + DataFormat data_format = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Environment name. If not set, draft environment is assumed. // Format: `projects//locations//agents//environments/`. @@ -406,6 +427,12 @@ message RestoreAgentRequest { // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI // to restore agent from. The format of this URI must be // `gs:///`. + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2; // Uncompressed raw byte content for agent. diff --git a/google/cloud/dialogflow/cx/v3beta1/audio_config.proto b/google/cloud/dialogflow/cx/v3beta1/audio_config.proto index cd30c9867..40b6fca84 100644 --- a/google/cloud/dialogflow/cx/v3beta1/audio_config.proto +++ b/google/cloud/dialogflow/cx/v3beta1/audio_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,11 +16,9 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3beta1; -import "google/api/annotations.proto"; 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.Dialogflow.Cx.V3Beta1"; @@ -30,6 +28,10 @@ option java_outer_classname = "AudioConfigProto"; option java_package = "com.google.cloud.dialogflow.cx.v3beta1"; option objc_class_prefix = "DF"; option ruby_package = "Google::Cloud::Dialogflow::CX::V3beta1"; +option (google.api.resource_definition) = { + type: "automl.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/models/{model}" +}; // Audio encoding of the audio content sent in the conversational query request. // Refer to the diff --git a/google/cloud/dialogflow/cx/v3beta1/changelog.proto b/google/cloud/dialogflow/cx/v3beta1/changelog.proto index 55a75a861..5ce64bbdc 100644 --- a/google/cloud/dialogflow/cx/v3beta1/changelog.proto +++ b/google/cloud/dialogflow/cx/v3beta1/changelog.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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"; import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/dialogflow/cx/v3beta1/deployment.proto b/google/cloud/dialogflow/cx/v3beta1/deployment.proto index fefff1e60..4b218e337 100644 --- a/google/cloud/dialogflow/cx/v3beta1/deployment.proto +++ b/google/cloud/dialogflow/cx/v3beta1/deployment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,8 +20,6 @@ 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 cc_enable_arenas = true; diff --git a/google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml b/google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml index 374f822cf..e18a71c10 100644 --- a/google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml +++ b/google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml @@ -20,6 +20,8 @@ apis: - name: google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroups - name: google.cloud.dialogflow.cx.v3beta1.Versions - name: google.cloud.dialogflow.cx.v3beta1.Webhooks +- name: google.cloud.location.Locations +- name: google.longrunning.Operations types: - name: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesMetadata @@ -118,6 +120,8 @@ backend: deadline: 60.0 - selector: 'google.longrunning.Operations.*' deadline: 60.0 + - selector: google.longrunning.Operations.ListOperations + deadline: 180.0 http: rules: diff --git a/google/cloud/dialogflow/cx/v3beta1/entity_type.proto b/google/cloud/dialogflow/cx/v3beta1/entity_type.proto index fce78ba93..7cf8033de 100644 --- a/google/cloud/dialogflow/cx/v3beta1/entity_type.proto +++ b/google/cloud/dialogflow/cx/v3beta1/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/cx/v3beta1/environment.proto b/google/cloud/dialogflow/cx/v3beta1/environment.proto index a53460eae..6dc9385b4 100644 --- a/google/cloud/dialogflow/cx/v3beta1/environment.proto +++ b/google/cloud/dialogflow/cx/v3beta1/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -208,6 +208,15 @@ message Environment { bool enable_predeployment_run = 3; } + // Configuration for webhooks. + message WebhookConfig { + // The list of webhooks to override for the agent environment. The webhook + // must exist in the agent. You can override fields in + // [`generic_web_service`][google.cloud.dialogflow.cx.v3beta1.Webhook.generic_web_service] and + // [`service_directory`][google.cloud.dialogflow.cx.v3beta1.Webhook.service_directory]. + repeated Webhook webhook_overrides = 1; + } + // The name of the environment. // Format: `projects//locations//agents//environments/`. @@ -232,6 +241,9 @@ message Environment { // The test cases config for continuous tests of this environment. TestCasesConfig test_cases_config = 7; + + // The webhook configuration for this environment. + WebhookConfig webhook_config = 10; } // The request message for [Environments.ListEnvironments][google.cloud.dialogflow.cx.v3beta1.Environments.ListEnvironments]. diff --git a/google/cloud/dialogflow/cx/v3beta1/experiment.proto b/google/cloud/dialogflow/cx/v3beta1/experiment.proto index fce46f553..633bdfbf3 100644 --- a/google/cloud/dialogflow/cx/v3beta1/experiment.proto +++ b/google/cloud/dialogflow/cx/v3beta1/experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/cx/v3beta1/flow.proto b/google/cloud/dialogflow/cx/v3beta1/flow.proto index 1d8e6c88c..d881418cc 100644 --- a/google/cloud/dialogflow/cx/v3beta1/flow.proto +++ b/google/cloud/dialogflow/cx/v3beta1/flow.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3beta1/page.proto"; import "google/cloud/dialogflow/cx/v3beta1/validation_message.proto"; import "google/longrunning/operations.proto"; @@ -275,7 +274,7 @@ message Flow { // // TransitionRoutes are evalauted in the following order: // - // * TransitionRoutes with intent specified.. + // * TransitionRoutes with intent specified. // * TransitionRoutes with only condition specified. // // TransitionRoutes with intent specified are inherited by pages in the flow. @@ -560,6 +559,12 @@ message ImportFlowRequest { // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI // to import flow from. The format of this URI must be // `gs:///`. + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string flow_uri = 2; // Uncompressed raw byte content for flow. @@ -596,6 +601,12 @@ message ExportFlowRequest { // export the flow to. The format of this URI must be // `gs:///`. // If left unspecified, the serialized flow is returned inline. + // + // Dialogflow performs a write operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have write permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string flow_uri = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to export flows referenced by the specified flow. diff --git a/google/cloud/dialogflow/cx/v3beta1/fulfillment.proto b/google/cloud/dialogflow/cx/v3beta1/fulfillment.proto index 2c5cb541c..5741e33ad 100644 --- a/google/cloud/dialogflow/cx/v3beta1/fulfillment.proto +++ b/google/cloud/dialogflow/cx/v3beta1/fulfillment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,7 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; -import "google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3beta1/response_message.proto"; import "google/protobuf/struct.proto"; @@ -108,7 +106,11 @@ message Fulfillment { // that have slow webhooks. bool return_partial_responses = 8; - // The tag used by the webhook to identify which fulfillment is being called. + // The value of this field will be populated in the [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] + // `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is + // called. + // The tag is typically used by the webhook service to identify which + // fulfillment is being called, but it could be used for other purposes. // This field is required if `webhook` is specified. string tag = 3; diff --git a/google/cloud/dialogflow/cx/v3beta1/intent.proto b/google/cloud/dialogflow/cx/v3beta1/intent.proto index 5d69f8231..86505c30b 100644 --- a/google/cloud/dialogflow/cx/v3beta1/intent.proto +++ b/google/cloud/dialogflow/cx/v3beta1/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,10 +20,8 @@ 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 cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1"; diff --git a/google/cloud/dialogflow/cx/v3beta1/page.proto b/google/cloud/dialogflow/cx/v3beta1/page.proto index 6b4085971..a3ca8239c 100644 --- a/google/cloud/dialogflow/cx/v3beta1/page.proto +++ b/google/cloud/dialogflow/cx/v3beta1/page.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3beta1/fulfillment.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -114,7 +113,7 @@ message Page { // ID>/flows//pages/`. string name = 1; - // Required. The human-readable name of the page, unique within the agent. + // Required. The human-readable name of the page, unique within the flow. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; // The fulfillment to call when the session is entering the page. diff --git a/google/cloud/dialogflow/cx/v3beta1/response_message.proto b/google/cloud/dialogflow/cx/v3beta1/response_message.proto index 14535834d..b7a69da6b 100644 --- a/google/cloud/dialogflow/cx/v3beta1/response_message.proto +++ b/google/cloud/dialogflow/cx/v3beta1/response_message.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3beta1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/struct.proto"; diff --git a/google/cloud/dialogflow/cx/v3beta1/security_settings.proto b/google/cloud/dialogflow/cx/v3beta1/security_settings.proto index 9aebe74fd..366c6292c 100644 --- a/google/cloud/dialogflow/cx/v3beta1/security_settings.proto +++ b/google/cloud/dialogflow/cx/v3beta1/security_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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"; @@ -214,6 +213,41 @@ message SecuritySettings { DIALOGFLOW_HISTORY = 1; } + // Settings for exporting audio. + message AudioExportSettings { + // File format for exported audio file. Currently only in telephony + // recordings. + enum AudioFormat { + // Unspecified. Do not use. + AUDIO_FORMAT_UNSPECIFIED = 0; + + // G.711 mu-law PCM with 8kHz sample rate. + MULAW = 1; + + // MP3 file format. + MP3 = 2; + + // OGG Vorbis. + OGG = 3; + } + + // Cloud Storage bucket to export audio record to. You need to grant + // `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Storage Object + // Admin` role in this bucket. + string gcs_bucket = 1; + + // Filename pattern for exported audio. + string audio_export_pattern = 2; + + // Enable audio redaction if it is true. + bool enable_audio_redaction = 3; + + // File format for exported audio file. Currently only in telephony + // recordings. + AudioFormat audio_format = 4; + } + // Settings for exporting conversations to // [Insights](https://cloud.google.com/contact-center/insights/docs). message InsightsExportSettings { @@ -303,6 +337,21 @@ message SecuritySettings { // List of types of data to remove when retention settings triggers purge. repeated PurgeDataType purge_data_types = 8; + // Controls audio export settings for post-conversation analytics when + // ingesting audio to conversations via [Participants.AnalyzeContent][] or + // [Participants.StreamingAnalyzeContent][]. + // + // If [retention_strategy][google.cloud.dialogflow.cx.v3beta1.SecuritySettings.retention_strategy] is set to REMOVE_AFTER_CONVERSATION or + // [audio_export_settings.gcs_bucket][] is empty, audio export is disabled. + // + // If audio export is enabled, audio is recorded and saved to + // [audio_export_settings.gcs_bucket][], subject to retention policy of + // [audio_export_settings.gcs_bucket][]. + // + // This setting won't effect audio input for implicit sessions via + // [Sessions.DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent] or [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent]. + AudioExportSettings audio_export_settings = 12; + // Controls conversation exporting settings to Insights after conversation is // completed. // diff --git a/google/cloud/dialogflow/cx/v3beta1/session.proto b/google/cloud/dialogflow/cx/v3beta1/session.proto index e566ebf19..2fff5e205 100644 --- a/google/cloud/dialogflow/cx/v3beta1/session.proto +++ b/google/cloud/dialogflow/cx/v3beta1/session.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,9 +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/dialogflow/cx/v3beta1/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3beta1/audio_config.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/response_message.proto"; @@ -440,16 +438,14 @@ message QueryParameters { // map, associative array, symbol table, dictionary, or JSON object // composed of a collection of (MapKey, MapValue) pairs: // - // - MapKey type: string - // - MapKey value: parameter name - // - MapValue type: - // - If parameter's entity type is a composite entity: map - // - Else: depending on parameter value type, could be one of string, - // number, boolean, null, list or map - // - MapValue value: - // - If parameter's entity type is a composite entity: - // map from composite entity property names to property values - // - Else: parameter value + // * MapKey type: string + // * MapKey value: parameter name + // * MapValue type: If parameter's entity type is a composite entity then use + // map, otherwise, depending on the parameter value type, it could be one of + // string, number, boolean, null, list or map. + // * MapValue value: If parameter's entity type is a composite entity then use + // map from composite entity property names to property values, otherwise, + // use parameter value. google.protobuf.Struct parameters = 5; // The unique identifier of the [page][google.cloud.dialogflow.cx.v3beta1.Page] to override the [current @@ -575,16 +571,14 @@ message QueryResult { // map, associative array, symbol table, dictionary, or JSON object // composed of a collection of (MapKey, MapValue) pairs: // - // - MapKey type: string - // - MapKey value: parameter name - // - MapValue type: - // - If parameter's entity type is a composite entity: map - // - Else: depending on parameter value type, could be one of string, - // number, boolean, null, list or map - // - MapValue value: - // - If parameter's entity type is a composite entity: - // map from composite entity property names to property values - // - Else: parameter value + // * MapKey type: string + // * MapKey value: parameter name + // * MapValue type: If parameter's entity type is a composite entity then use + // map, otherwise, depending on the parameter value type, it could be one of + // string, number, boolean, null, list or map. + // * MapValue value: If parameter's entity type is a composite entity then use + // map from composite entity property names to property values, otherwise, + // use parameter value. google.protobuf.Struct parameters = 3; // The list of rich messages returned to the client. Responses vary from @@ -623,8 +617,22 @@ message QueryResult { Match match = 15; // The free-form diagnostic info. For example, this field could contain - // webhook call latency. The string keys of the Struct's fields map can change - // without notice. + // webhook call latency. The fields of this data can change without notice, + // so you should not write code that depends on its structure. + // + // One of the fields is called "Alternative Matched Intents", which may + // aid with debugging. The following describes these intent results: + // + // - The list is empty if no intent was matched to end-user input. + // - Only intents that are referenced in the currently active flow are + // included. + // - The matched intent is included. + // - Other intents that could have matched end-user input, but did not match + // because they are referenced by intent routes that are out of + // [scope](https://cloud.google.com/dialogflow/cx/docs/concept/handler#scope), + // are included. + // - Other intents referenced by intent routes in scope that matched end-user + // input, but had a lower confidence score. google.protobuf.Struct diagnostic_info = 10; // The sentiment analyss result, which depends on @@ -728,16 +736,14 @@ message Match { // map, associative array, symbol table, dictionary, or JSON object // composed of a collection of (MapKey, MapValue) pairs: // - // - MapKey type: string - // - MapKey value: parameter name - // - MapValue type: - // - If parameter's entity type is a composite entity: map - // - Else: depending on parameter value type, could be one of string, - // number, boolean, null, list or map - // - MapValue value: - // - If parameter's entity type is a composite entity: - // map from composite entity property names to property values - // - Else: parameter value + // * MapKey type: string + // * MapKey value: parameter name + // * MapValue type: If parameter's entity type is a composite entity then use + // map, otherwise, depending on the parameter value type, it could be one of + // string, number, boolean, null, list or map. + // * MapValue value: If parameter's entity type is a composite entity then use + // map from composite entity property names to property values, otherwise, + // use parameter value. google.protobuf.Struct parameters = 2; // Final text input which was matched during MatchIntent. This value can be diff --git a/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto b/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto index d0f1f5241..dfb87f030 100644 --- a/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto +++ b/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/cx/v3beta1/test_case.proto b/google/cloud/dialogflow/cx/v3beta1/test_case.proto index d71656a2d..5aa19fb2d 100644 --- a/google/cloud/dialogflow/cx/v3beta1/test_case.proto +++ b/google/cloud/dialogflow/cx/v3beta1/test_case.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -139,7 +139,7 @@ service TestCases { } // Imports the test cases from a Cloud Storage bucket or a local file. It - // always creates new test cases and won't overwite any existing ones. The + // always creates new test cases and won't overwrite any existing ones. The // provided ID in the imported test case is neglected. // // This method is a [long-running @@ -270,12 +270,29 @@ message TestConfig { // Session parameters to be compared when calculating differences. repeated string tracking_parameters = 1; - // Flow name. If not set, default start flow is assumed. + // Flow name to start the test case with. // Format: `projects//locations//agents//flows/`. + // + // Only one of `flow` and `page` should be set to indicate the starting point + // of the test case. If both are set, `page` takes precedence over `flow`. If + // neither is set, the test case will start with start page on the default + // start flow. string flow = 2 [(google.api.resource_reference) = { type: "dialogflow.googleapis.com/Flow" }]; + + // The [page][google.cloud.dialogflow.cx.v3beta1.Page] to start the test case with. + // Format: `projects//locations//agents//flows//pages/`. + // + // Only one of `flow` and `page` should be set to indicate the starting point + // of the test case. If both are set, `page` takes precedence over `flow`. If + // neither is set, the test case will start with start page on the default + // start flow. + string page = 3 [(google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Page" + }]; } // One interaction between a human and virtual agent. The human provides some @@ -744,6 +761,12 @@ message ImportTestCasesRequest { // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI // to import test cases from. The format of this URI must be // `gs:///`. + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string gcs_uri = 2; // Uncompressed raw byte content for test cases. @@ -806,6 +829,12 @@ message ExportTestCasesRequest { // export the test cases to. The format of this URI must be // `gs:///`. If unspecified, the serialized test // cases is returned inline. + // + // Dialogflow performs a write operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have write permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string gcs_uri = 2; } diff --git a/google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto b/google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto index fd3406f4b..f7252b2ba 100644 --- a/google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto +++ b/google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -111,7 +111,7 @@ message TransitionRouteGroup { string name = 1; // Required. The human-readable name of the transition route group, unique within - // the [Agent][google.cloud.dialogflow.cx.v3beta1.Agent]. The display name can be no longer than 30 characters. + // the flow. The display name can be no longer than 30 characters. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; // Transition routes associated with the [TransitionRouteGroup][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]. diff --git a/google/cloud/dialogflow/cx/v3beta1/validation_message.proto b/google/cloud/dialogflow/cx/v3beta1/validation_message.proto index d2875bdfa..5e6a26eab 100644 --- a/google/cloud/dialogflow/cx/v3beta1/validation_message.proto +++ b/google/cloud/dialogflow/cx/v3beta1/validation_message.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3beta1; -import "google/api/annotations.proto"; -import "google/protobuf/struct.proto"; - option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3beta1;cx"; diff --git a/google/cloud/dialogflow/cx/v3beta1/version.proto b/google/cloud/dialogflow/cx/v3beta1/version.proto index 8fd47f5ff..6fed1db06 100644 --- a/google/cloud/dialogflow/cx/v3beta1/version.proto +++ b/google/cloud/dialogflow/cx/v3beta1/version.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,12 +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/dialogflow/cx/v3beta1/entity_type.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/transition_route_group.proto"; -import "google/cloud/dialogflow/cx/v3beta1/webhook.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; diff --git a/google/cloud/dialogflow/cx/v3beta1/webhook.proto b/google/cloud/dialogflow/cx/v3beta1/webhook.proto index 662a0458a..3cddccda5 100644 --- a/google/cloud/dialogflow/cx/v3beta1/webhook.proto +++ b/google/cloud/dialogflow/cx/v3beta1/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -121,10 +121,12 @@ message Webhook { // N.B. Make sure the HTTPS server certificates are signed with "subject alt // name". For instance a certificate can be self-signed using the following // command, + // ``` // openssl x509 -req -days 200 -in example.com.csr \ // -signkey example.com.key \ // -out example.com.crt \ // -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") + // ``` repeated bytes allowed_ca_certs = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -271,11 +273,17 @@ message DeleteWebhookRequest { // The request message for a webhook call. The request is sent as a JSON object // and the field names will be presented in camel cases. +// +// You may see undocumented fields in an actual request. These fields are used +// internally by Dialogflow and should be ignored. message WebhookRequest { // Represents fulfillment information communicated to the webhook. message FulfillmentInfo { - // Always present. The tag used to identify which fulfillment is being - // called. + // Always present. + // The value of the [Fulfillment.tag][google.cloud.dialogflow.cx.v3beta1.Fulfillment.tag] field will be populated in this + // field by Dialogflow when the associated webhook is called. + // The tag is typically used by the webhook service to identify which + // fulfillment is being called, but it could be used for other purposes. string tag = 1; } diff --git a/google/cloud/dialogflow/v2/BUILD.bazel b/google/cloud/dialogflow/v2/BUILD.bazel index 038528d61..fd7b4905f 100644 --- a/google/cloud/dialogflow/v2/BUILD.bazel +++ b/google/cloud/dialogflow/v2/BUILD.bazel @@ -26,7 +26,9 @@ proto_library( "audio_config.proto", "context.proto", "conversation.proto", + "conversation_dataset.proto", "conversation_event.proto", + "conversation_model.proto", "conversation_profile.proto", "document.proto", "entity_type.proto", @@ -51,7 +53,6 @@ proto_library( "//google/longrunning:operations_proto", "//google/rpc:status_proto", "//google/type:latlng_proto", - "@com_google_protobuf//:any_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -65,6 +66,7 @@ proto_library_with_info( deps = [ ":dialogflow_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -99,30 +101,52 @@ java_gapic_library( service_yaml = "dialogflow_v2.yaml", test_deps = [ ":dialogflow_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":dialogflow_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "dialogflow_java_gapic_test_suite", test_classes = [ + "com.google.cloud.dialogflow.v2.AgentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.AgentsClientTest", + "com.google.cloud.dialogflow.v2.AnswerRecordsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.AnswerRecordsClientTest", + "com.google.cloud.dialogflow.v2.ContextsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.ContextsClientTest", + "com.google.cloud.dialogflow.v2.ConversationDatasetsClientHttpJsonTest", + "com.google.cloud.dialogflow.v2.ConversationDatasetsClientTest", + "com.google.cloud.dialogflow.v2.ConversationModelsClientHttpJsonTest", + "com.google.cloud.dialogflow.v2.ConversationModelsClientTest", + "com.google.cloud.dialogflow.v2.ConversationProfilesClientHttpJsonTest", "com.google.cloud.dialogflow.v2.ConversationProfilesClientTest", + "com.google.cloud.dialogflow.v2.ConversationsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.ConversationsClientTest", + "com.google.cloud.dialogflow.v2.DocumentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.DocumentsClientTest", + "com.google.cloud.dialogflow.v2.EntityTypesClientHttpJsonTest", "com.google.cloud.dialogflow.v2.EntityTypesClientTest", + "com.google.cloud.dialogflow.v2.EnvironmentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.EnvironmentsClientTest", + "com.google.cloud.dialogflow.v2.FulfillmentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.FulfillmentsClientTest", + "com.google.cloud.dialogflow.v2.IntentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.IntentsClientTest", + "com.google.cloud.dialogflow.v2.KnowledgeBasesClientHttpJsonTest", "com.google.cloud.dialogflow.v2.KnowledgeBasesClientTest", + "com.google.cloud.dialogflow.v2.ParticipantsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.ParticipantsClientTest", + "com.google.cloud.dialogflow.v2.SessionEntityTypesClientHttpJsonTest", "com.google.cloud.dialogflow.v2.SessionEntityTypesClientTest", + "com.google.cloud.dialogflow.v2.SessionsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.SessionsClientTest", + "com.google.cloud.dialogflow.v2.VersionsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.VersionsClientTest", ], runtime_deps = [":dialogflow_java_gapic_test"], @@ -131,6 +155,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-dialogflow-v2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":dialogflow_java_gapic", ":dialogflow_java_grpc", @@ -170,12 +196,13 @@ go_gapic_library( importpath = "cloud.google.com/go/dialogflow/apiv2;dialogflow", metadata = True, service_yaml = "dialogflow_v2.yaml", + transport = "grpc+rest", deps = [ ":dialogflow_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:any_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", "@io_bazel_rules_go//proto/wkt:struct_go_proto", ], @@ -206,12 +233,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "dialogflow_py_gapic", srcs = [":dialogflow_proto"], grpc_service_config = "dialogflow_grpc_service_config.json", + service_yaml = "dialogflow_v2.yaml", + transport = "grpc", +) + +py_test( + name = "dialogflow_py_gapic_test", + srcs = [ + "dialogflow_py_gapic_pytest.py", + "dialogflow_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dialogflow_py_gapic"], ) # Open Source Packages @@ -284,6 +324,7 @@ nodejs_gapic_library( package = "google.cloud.dialogflow.v2", service_yaml = "dialogflow_v2.yaml", deps = [], + mixins = "google.longrunning.Operations;google.cloud.location.Locations", ) nodejs_gapic_assembly_pkg( @@ -329,6 +370,7 @@ ruby_cloud_gapic_library( grpc_service_config = "dialogflow_grpc_service_config.json", ruby_cloud_description = "Dialogflow is an end-to-end, build-once deploy-everywhere development suite for creating conversational interfaces for websites, mobile applications, popular messaging platforms, and IoT devices. You can use it to build interfaces (such as chatbots and conversational IVR) that enable natural and rich interactions between your users and your business. This client is for Dialogflow ES, providing the standard agent type suitable for small and simple agents.", ruby_cloud_title = "Dialogflow V2", + service_yaml = "dialogflow_v2.yaml", deps = [ ":dialogflow_ruby_grpc", ":dialogflow_ruby_proto", @@ -372,6 +414,7 @@ csharp_gapic_library( srcs = [":dialogflow_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dialogflow_grpc_service_config.json", + service_yaml = "dialogflow_v2.yaml", deps = [ ":dialogflow_csharp_grpc", ":dialogflow_csharp_proto", diff --git a/google/cloud/dialogflow/v2/agent.proto b/google/cloud/dialogflow/v2/agent.proto index 8f7a4bbb0..fa16a4c2a 100644 --- a/google/cloud/dialogflow/v2/agent.proto +++ b/google/cloud/dialogflow/v2/agent.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -461,6 +461,12 @@ message ExportAgentRequest { // URI to export the agent to. // The format of this URI must be `gs:///`. // If left unspecified, the serialized agent is returned inline. + // + // Dialogflow performs a write operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have write permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -492,6 +498,12 @@ message ImportAgentRequest { oneof agent { // The URI to a Google Cloud Storage file containing the agent to import. // Note: The URI must start with "gs://". + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2; // Zip compressed raw byte content for agent. @@ -514,6 +526,12 @@ message RestoreAgentRequest { oneof agent { // The URI to a Google Cloud Storage file containing the agent to restore. // Note: The URI must start with "gs://". + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2; // Zip compressed raw byte content for agent. diff --git a/google/cloud/dialogflow/v2/answer_record.proto b/google/cloud/dialogflow/v2/answer_record.proto index 78aba347c..14ab41e15 100644 --- a/google/cloud/dialogflow/v2/answer_record.proto +++ b/google/cloud/dialogflow/v2/answer_record.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2/participant.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -128,13 +127,16 @@ message ListAnswerRecordsRequest { } ]; - // Required. Filters to restrict results to specific answer records. - // Filter on answer record type. Currently predicates on `type` is supported, - // valid values are `ARTICLE_ANSWER`, `FAQ_ANSWER`. + // Optional. Filters to restrict results to specific answer records. + // + // Marked deprecated as it hasn't been, and isn't currently, supported. // // For more information about filtering, see // [API Filtering](https://aip.dev/160). - string filter = 2 [(google.api.field_behavior) = REQUIRED]; + string filter = 2 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL + ]; // Optional. The maximum number of records to return in a single page. // The server may return fewer records than this. If unspecified, we use 10. diff --git a/google/cloud/dialogflow/v2/audio_config.proto b/google/cloud/dialogflow/v2/audio_config.proto index f43742ce7..98258ee23 100644 --- a/google/cloud/dialogflow/v2/audio_config.proto +++ b/google/cloud/dialogflow/v2/audio_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,11 +16,9 @@ syntax = "proto3"; package google.cloud.dialogflow.v2; -import "google/api/annotations.proto"; 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.Dialogflow.V2"; @@ -29,6 +27,14 @@ option java_multiple_files = true; option java_outer_classname = "AudioConfigProto"; option java_package = "com.google.cloud.dialogflow.v2"; option objc_class_prefix = "DF"; +option (google.api.resource_definition) = { + type: "automl.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/models/{model}" +}; +option (google.api.resource_definition) = { + type: "speech.googleapis.com/PhraseSet" + pattern: "projects/{project}/locations/{location}/phraseSets/{phrase_set}" +}; // Audio encoding of the audio content sent in the conversational query request. // Refer to the diff --git a/google/cloud/dialogflow/v2/context.proto b/google/cloud/dialogflow/v2/context.proto index cc6fc3252..53dc7874d 100644 --- a/google/cloud/dialogflow/v2/context.proto +++ b/google/cloud/dialogflow/v2/context.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2/conversation.proto b/google/cloud/dialogflow/v2/conversation.proto index 915f1d7b2..6266354ae 100644 --- a/google/cloud/dialogflow/v2/conversation.proto +++ b/google/cloud/dialogflow/v2/conversation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,10 +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/dialogflow/v2/audio_config.proto"; -import "google/cloud/dialogflow/v2/conversation_profile.proto"; import "google/cloud/dialogflow/v2/participant.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/dialogflow/v2/conversation_dataset.proto b/google/cloud/dialogflow/v2/conversation_dataset.proto new file mode 100644 index 000000000..cc35e1c84 --- /dev/null +++ b/google/cloud/dialogflow/v2/conversation_dataset.proto @@ -0,0 +1,315 @@ +// 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.cloud.dialogflow.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/dialogflow/v2/gcs.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Dialogflow.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow"; +option java_multiple_files = true; +option java_outer_classname = "ConversationDatasetProto"; +option java_package = "com.google.cloud.dialogflow.v2"; +option objc_class_prefix = "DF"; + +// Conversation datasets. +// +// Conversation datasets contain raw conversation files and their +// customizable metadata that can be used for model training. +service ConversationDatasets { + 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"; + + // Creates a new conversation dataset. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [CreateConversationDatasetOperationMetadata][google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata] + // - `response`: [ConversationDataset][google.cloud.dialogflow.v2.ConversationDataset] + rpc CreateConversationDataset(CreateConversationDatasetRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/conversationDatasets" + body: "conversation_dataset" + }; + option (google.api.method_signature) = "parent,conversation_dataset"; + option (google.longrunning.operation_info) = { + response_type: "ConversationDataset" + metadata_type: "CreateConversationDatasetOperationMetadata" + }; + } + + // Retrieves the specified conversation dataset. + rpc GetConversationDataset(GetConversationDatasetRequest) returns (ConversationDataset) { + option (google.api.http) = { + get: "/v2/{name=projects/*/conversationDatasets/*}" + additional_bindings { + get: "/v2/{name=projects/*/locations/*/conversationDatasets/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Returns the list of all conversation datasets in the specified + // project and location. + rpc ListConversationDatasets(ListConversationDatasetsRequest) returns (ListConversationDatasetsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*}/conversationDatasets" + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/conversationDatasets" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes the specified conversation dataset. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [DeleteConversationDatasetOperationMetadata][google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata] + // - `response`: An [Empty + // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + rpc DeleteConversationDataset(DeleteConversationDatasetRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/conversationDatasets/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteConversationDatasetOperationMetadata" + }; + } + + // Import data into the specified conversation dataset. Note that it + // is not allowed to import data to a conversation dataset that + // already has data in it. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [ImportConversationDataOperationMetadata][google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata] + // - `response`: [ImportConversationDataOperationResponse][google.cloud.dialogflow.v2.ImportConversationDataOperationResponse] + rpc ImportConversationData(ImportConversationDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/conversationDatasets/*}:importConversationData" + body: "*" + additional_bindings { + post: "/v2/{name=projects/*/locations/*/conversationDatasets/*}:importConversationData" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "ImportConversationDataOperationResponse" + metadata_type: "ImportConversationDataOperationMetadata" + }; + } +} + +// Represents metadata of a conversation. +message ConversationInfo { + // Optional. The language code of the conversation data within this dataset. See + // https://cloud.google.com/apis/design/standard_fields for more information. + // Supports all UTF-8 languages. + string language_code = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the configuration of importing a set of conversation files in +// Google Cloud Storage. +message InputConfig { + // Required. Where the data is from. + oneof source { + // The Cloud Storage URI has the form gs:////agent*.json. Wildcards are allowed and will be expanded into all + // matched JSON files, which will be read as one conversation per file. + GcsSources gcs_source = 1; + } +} + +// Represents a conversation dataset that a user imports raw data into. +// The data inside ConversationDataset can not be changed after +// ImportConversationData finishes (and calling ImportConversationData on a +// dataset that already has data is not allowed). +message ConversationDataset { + option (google.api.resource) = { + type: "dialogflow.googleapis.com/ConversationDataset" + pattern: "projects/{project}/locations/{location}/conversationDatasets/{conversation_dataset}" + }; + + // Output only. ConversationDataset resource name. Format: + // `projects//locations//conversationDatasets/` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the dataset. Maximum of 64 bytes. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the dataset. Maximum of 10000 bytes. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Creation time of this dataset. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Input configurations set during conversation data import. + InputConfig input_config = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata set during conversation data import. + ConversationInfo conversation_info = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of conversations this conversation dataset contains. + int64 conversation_count = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The request message for +// [ConversationDatasets.CreateConversationDataset][google.cloud.dialogflow.v2.ConversationDatasets.CreateConversationDataset]. +message CreateConversationDatasetRequest { + // Required. The project to create conversation dataset for. Format: + // `projects//locations/` + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The conversation dataset to create. + ConversationDataset conversation_dataset = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for +// [ConversationDatasets.GetConversationDataset][google.cloud.dialogflow.v2.ConversationDatasets.GetConversationDataset]. +message GetConversationDatasetRequest { + // Required. The conversation dataset to retrieve. Format: + // `projects//locations//conversationDatasets/` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/ConversationDataset" + } + ]; +} + +// The request message for +// [ConversationDatasets.ListConversationDatasets][google.cloud.dialogflow.v2.ConversationDatasets.ListConversationDatasets]. +message ListConversationDatasetsRequest { + // Required. The project and location name to list all conversation datasets for. + // Format: `projects//locations/` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dialogflow.googleapis.com/ConversationDataset" + } + ]; + + // Optional. Maximum number of conversation datasets to return in a single + // page. By default 100 and at most 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous list request. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for +// [ConversationDatasets.ListConversationDatasets][google.cloud.dialogflow.v2.ConversationDatasets.ListConversationDatasets]. +message ListConversationDatasetsResponse { + // The list of datasets to return. + repeated ConversationDataset conversation_datasets = 1; + + // The token to use to retrieve the next page of results, or empty if there + // are no more results in the list. + string next_page_token = 2; +} + +// The request message for +// [ConversationDatasets.DeleteConversationDataset][google.cloud.dialogflow.v2.ConversationDatasets.DeleteConversationDataset]. +message DeleteConversationDatasetRequest { + // Required. The conversation dataset to delete. Format: + // `projects//locations//conversationDatasets/` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/ConversationDataset" + } + ]; +} + +// The request message for [ConversationDatasets.ImportConversationData][google.cloud.dialogflow.v2.ConversationDatasets.ImportConversationData]. +message ImportConversationDataRequest { + // Required. Dataset resource name. Format: + // `projects//locations//conversationDatasets/` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/ConversationDataset" + } + ]; + + // Required. Configuration describing where to import data from. + InputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata for a [ConversationDatasets.ImportConversationData][google.cloud.dialogflow.v2.ConversationDatasets.ImportConversationData] operation. +message ImportConversationDataOperationMetadata { + // The resource name of the imported conversation dataset. Format: + // `projects//locations//conversationDatasets/` + string conversation_dataset = 1 [(google.api.resource_reference) = { + type: "dialogflow.googleapis.com/ConversationDataset" + }]; + + // Partial failures are failures that don't fail the whole long running + // operation, e.g. single files that couldn't be read. + repeated google.rpc.Status partial_failures = 2; + + // Timestamp when import conversation data request was created. The time is + // measured on server side. + google.protobuf.Timestamp create_time = 3; +} + +// Response used for [ConversationDatasets.ImportConversationData][google.cloud.dialogflow.v2.ConversationDatasets.ImportConversationData] long +// running operation. +message ImportConversationDataOperationResponse { + // The resource name of the imported conversation dataset. Format: + // `projects//locations//conversationDatasets/` + string conversation_dataset = 1 [(google.api.resource_reference) = { + type: "dialogflow.googleapis.com/ConversationDataset" + }]; + + // Number of conversations imported successfully. + int32 import_count = 3; +} + +// Metadata for [ConversationDatasets][CreateConversationDataset]. +message CreateConversationDatasetOperationMetadata { + +} + +// Metadata for [ConversationDatasets][DeleteConversationDataset]. +message DeleteConversationDatasetOperationMetadata { + +} diff --git a/google/cloud/dialogflow/v2/conversation_event.proto b/google/cloud/dialogflow/v2/conversation_event.proto index ae852c1e6..6c45e895f 100644 --- a/google/cloud/dialogflow/v2/conversation_event.proto +++ b/google/cloud/dialogflow/v2/conversation_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2; -import "google/api/annotations.proto"; import "google/cloud/dialogflow/v2/participant.proto"; import "google/rpc/status.proto"; diff --git a/google/cloud/dialogflow/v2/conversation_model.proto b/google/cloud/dialogflow/v2/conversation_model.proto new file mode 100644 index 000000000..065290df5 --- /dev/null +++ b/google/cloud/dialogflow/v2/conversation_model.proto @@ -0,0 +1,653 @@ +// 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.cloud.dialogflow.v2; + +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/timestamp.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Dialogflow.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow"; +option java_multiple_files = true; +option java_outer_classname = "ConversationModelProto"; +option java_package = "com.google.cloud.dialogflow.v2"; +option objc_class_prefix = "DF"; + +// Manages a collection of models for human agent assistant. +service ConversationModels { + 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"; + + // Creates a model. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [CreateConversationModelOperationMetadata][google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata] + // - `response`: [ConversationModel][google.cloud.dialogflow.v2.ConversationModel] + rpc CreateConversationModel(CreateConversationModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*}/conversationModels" + body: "conversation_model" + additional_bindings { + post: "/v2/{parent=projects/*/locations/*}/conversationModels" + body: "conversation_model" + } + }; + option (google.api.method_signature) = "parent,conversation_model"; + option (google.longrunning.operation_info) = { + response_type: "ConversationModel" + metadata_type: "CreateConversationModelOperationMetadata" + }; + } + + // Gets conversation model. + rpc GetConversationModel(GetConversationModelRequest) returns (ConversationModel) { + option (google.api.http) = { + get: "/v2/{name=projects/*/conversationModels/*}" + additional_bindings { + get: "/v2/{name=projects/*/locations/*/conversationModels/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists conversation models. + rpc ListConversationModels(ListConversationModelsRequest) returns (ListConversationModelsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*}/conversationModels" + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/conversationModels" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a model. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [DeleteConversationModelOperationMetadata][google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata] + // - `response`: An [Empty + // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + rpc DeleteConversationModel(DeleteConversationModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/conversationModels/*}" + additional_bindings { + delete: "/v2/{name=projects/*/locations/*/conversationModels/*}" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteConversationModelOperationMetadata" + }; + } + + // Deploys a model. If a model is already deployed, deploying it + // has no effect. A model can only serve prediction requests after it gets + // deployed. For article suggestion, custom model will not be used unless + // it is deployed. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [DeployConversationModelOperationMetadata][google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata] + // - `response`: An [Empty + // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + rpc DeployConversationModel(DeployConversationModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/conversationModels/*}:deploy" + body: "*" + additional_bindings { + post: "/v2/{name=projects/*/locations/*/conversationModels/*}:deploy" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeployConversationModelOperationMetadata" + }; + } + + // Undeploys a model. If the model is not deployed this method has no effect. + // If the model is currently being used: + // - For article suggestion, article suggestion will fallback to the default + // model if model is undeployed. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [UndeployConversationModelOperationMetadata][google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata] + // - `response`: An [Empty + // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + rpc UndeployConversationModel(UndeployConversationModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/conversationModels/*}:undeploy" + body: "*" + additional_bindings { + post: "/v2/{name=projects/*/locations/*/conversationModels/*}:undeploy" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "UndeployConversationModelOperationMetadata" + }; + } + + // Gets an evaluation of conversation model. + rpc GetConversationModelEvaluation(GetConversationModelEvaluationRequest) returns (ConversationModelEvaluation) { + option (google.api.http) = { + get: "/v2/{name=projects/*/conversationModels/*/evaluations/*}" + additional_bindings { + get: "/v2/{name=projects/*/locations/*/conversationModels/*/evaluations/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists evaluations of a conversation model. + rpc ListConversationModelEvaluations(ListConversationModelEvaluationsRequest) returns (ListConversationModelEvaluationsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/conversationModels/*}/evaluations" + additional_bindings { + get: "/v2/{parent=projects/*/locations/*/conversationModels/*}/evaluations" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Creates evaluation of a conversation model. + rpc CreateConversationModelEvaluation(CreateConversationModelEvaluationRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*/conversationModels/*}/evaluations" + body: "*" + }; + option (google.api.method_signature) = "parent,conversation_model_evaluation"; + option (google.longrunning.operation_info) = { + response_type: "ConversationModelEvaluation" + metadata_type: "CreateConversationModelEvaluationOperationMetadata" + }; + } +} + +// Represents a conversation model. +message ConversationModel { + option (google.api.resource) = { + type: "dialogflow.googleapis.com/ConversationModel" + pattern: "projects/{project}/locations/{location}/conversationModels/{conversation_model}" + pattern: "projects/{project}/conversationModels/{conversation_model}" + }; + + // State of the model. + enum State { + // Should not be used, an un-set enum has this value by default. + STATE_UNSPECIFIED = 0; + + // Model being created. + CREATING = 1; + + // Model is not deployed but ready to deploy. + UNDEPLOYED = 2; + + // Model is deploying. + DEPLOYING = 3; + + // Model is deployed and ready to use. + DEPLOYED = 4; + + // Model is undeploying. + UNDEPLOYING = 5; + + // Model is deleting. + DELETING = 6; + + // Model is in error state. Not ready to deploy and use. + FAILED = 7; + + // Model is being created but the training has not started, + // The model may remain in this state until there is enough capacity to + // start training. + PENDING = 8; + } + + // Model type. + enum ModelType { + // ModelType unspecified. + MODEL_TYPE_UNSPECIFIED = 0; + + // ModelType smart reply dual encoder model. + SMART_REPLY_DUAL_ENCODER_MODEL = 2; + + // ModelType smart reply bert model. + SMART_REPLY_BERT_MODEL = 6; + } + + // ConversationModel resource name. Format: + // `projects//conversationModels/` + string name = 1; + + // Required. The display name of the model. At most 64 bytes long. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Creation time of this model. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Datasets used to create model. + repeated InputDataset datasets = 4 [(google.api.field_behavior) = REQUIRED]; + + // Output only. State of the model. A model can only serve prediction requests + // after it gets deployed. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Language code for the conversation model. If not specified, the language + // is en-US. Language at ConversationModel should be set for all non en-us + // languages. + // This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + // language tag. Example: "en-US". + string language_code = 19; + + // Required. + // The model metadata that is specific to the problem type. + // Must match the metadata type of the dataset used to train the model. + oneof model_metadata { + // Metadata for article suggestion models. + ArticleSuggestionModelMetadata article_suggestion_model_metadata = 8; + + // Metadata for smart reply models. + SmartReplyModelMetadata smart_reply_model_metadata = 9; + } +} + +// Represents evaluation result of a conversation model. +message ConversationModelEvaluation { + option (google.api.resource) = { + type: "dialogflow.googleapis.com/ConversationModelEvaluation" + pattern: "projects/{project}/conversationModels/{conversation_model}/evaluations/{evaluation}" + pattern: "projects/{project}/locations/{location}/conversationModels/{conversation_model}/evaluations/{evaluation}" + }; + + // The resource name of the evaluation. Format: + // `projects//conversationModels//evaluations/` + string name = 1; + + // Optional. The display name of the model evaluation. At most 64 bytes long. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The configuration of the evaluation task. + EvaluationConfig evaluation_config = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Creation time of this model. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Metrics details. + oneof metrics { + // Output only. Only available when model is for smart reply. + SmartReplyMetrics smart_reply_metrics = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// The configuration for model evaluation. +message EvaluationConfig { + // Smart reply specific configuration for evaluation job. + message SmartReplyConfig { + // The allowlist document resource name. + // Format: `projects//knowledgeBases//documents/`. Only used for smart reply model. + string allowlist_document = 1 [(google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Document" + }]; + + // Required. The model to be evaluated can return multiple results with confidence + // score on each query. These results will be sorted by the descending order + // of the scores and we only keep the first max_result_count results as the + // final results to evaluate. + int32 max_result_count = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Smart compose specific configuration for evaluation job. + message SmartComposeConfig { + // The allowlist document resource name. + // Format: `projects//knowledgeBases//documents/`. Only used for smart compose model. + string allowlist_document = 1 [(google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Document" + }]; + + // Required. The model to be evaluated can return multiple results with confidence + // score on each query. These results will be sorted by the descending order + // of the scores and we only keep the first max_result_count results as the + // final results to evaluate. + int32 max_result_count = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Datasets used for evaluation. + repeated InputDataset datasets = 3 [(google.api.field_behavior) = REQUIRED]; + + // Specific configurations for different models in order to do evaluation. + oneof model_specific_config { + // Configuration for smart reply model evalution. + SmartReplyConfig smart_reply_config = 2; + + // Configuration for smart compose model evalution. + SmartComposeConfig smart_compose_config = 4; + } +} + +// InputDataset used to create model or do evaluation. +// NextID:5 +message InputDataset { + // Required. ConversationDataset resource name. Format: + // `projects//locations//conversationDatasets/` + string dataset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/ConversationDataset" + } + ]; +} + +// Metadata for article suggestion models. +message ArticleSuggestionModelMetadata { + // Optional. Type of the article suggestion model. If not provided, model_type is used. + ConversationModel.ModelType training_model_type = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata for smart reply models. +message SmartReplyModelMetadata { + // Optional. Type of the smart reply model. If not provided, model_type is used. + ConversationModel.ModelType training_model_type = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// The evaluation metrics for smart reply model. +message SmartReplyMetrics { + // Evaluation metrics when retrieving `n` smart replies with the model. + message TopNMetrics { + // Number of retrieved smart replies. For example, when `n` is 3, this + // evaluation contains metrics for when Dialogflow retrieves 3 smart replies + // with the model. + int32 n = 1; + + // Defined as `number of queries whose top n smart replies have at least one + // similar (token match similarity above the defined threshold) reply as the + // real reply` divided by `number of queries with at least one smart reply`. + // Value ranges from 0.0 to 1.0 inclusive. + float recall = 2; + } + + // Percentage of target participant messages in the evaluation dataset for + // which similar messages have appeared at least once in the allowlist. Should + // be [0, 1]. + float allowlist_coverage = 1; + + // Metrics of top n smart replies, sorted by [TopNMetric.n][]. + repeated TopNMetrics top_n_metrics = 2; + + // Total number of conversations used to generate this metric. + int64 conversation_count = 3; +} + +// The request message for +// [ConversationModels.CreateConversationModel][google.cloud.dialogflow.v2.ConversationModels.CreateConversationModel] +message CreateConversationModelRequest { + // The project to create conversation model for. Format: + // `projects/` + string parent = 1; + + // Required. The conversation model to create. + ConversationModel conversation_model = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for +// [ConversationModels.GetConversationModel][google.cloud.dialogflow.v2.ConversationModels.GetConversationModel] +message GetConversationModelRequest { + // Required. The conversation model to retrieve. Format: + // `projects//conversationModels/` + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for +// [ConversationModels.ListConversationModels][google.cloud.dialogflow.v2.ConversationModels.ListConversationModels] +message ListConversationModelsRequest { + // Required. The project to list all conversation models for. + // Format: `projects/` + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Maximum number of conversation models to return in a single + // page. By default 100 and at most 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous list request. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for +// [ConversationModels.ListConversationModels][google.cloud.dialogflow.v2.ConversationModels.ListConversationModels] +message ListConversationModelsResponse { + // The list of models to return. + repeated ConversationModel conversation_models = 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; +} + +// The request message for +// [ConversationModels.DeleteConversationModel][google.cloud.dialogflow.v2.ConversationModels.DeleteConversationModel] +message DeleteConversationModelRequest { + // Required. The conversation model to delete. Format: + // `projects//conversationModels/` + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for +// [ConversationModels.DeployConversationModel][google.cloud.dialogflow.v2.ConversationModels.DeployConversationModel] +message DeployConversationModelRequest { + // Required. The conversation model to deploy. Format: + // `projects//conversationModels/` + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for +// [ConversationModels.UndeployConversationModel][google.cloud.dialogflow.v2.ConversationModels.UndeployConversationModel] +message UndeployConversationModelRequest { + // Required. The conversation model to undeploy. Format: + // `projects//conversationModels/` + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for +// [ConversationModels.GetConversationModelEvaluation][google.cloud.dialogflow.v2.ConversationModels.GetConversationModelEvaluation] +message GetConversationModelEvaluationRequest { + // Required. The conversation model evaluation resource name. Format: + // `projects//conversationModels//evaluations/` + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for +// [ConversationModels.ListConversationModelEvaluations][google.cloud.dialogflow.v2.ConversationModels.ListConversationModelEvaluations] +message ListConversationModelEvaluationsRequest { + // Required. The conversation model resource name. Format: + // `projects//conversationModels/` + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Maximum number of evaluations to return in a + // single page. By default 100 and at most 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous list request. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for +// [ConversationModels.ListConversationModelEvaluations][google.cloud.dialogflow.v2.ConversationModels.ListConversationModelEvaluations] +message ListConversationModelEvaluationsResponse { + // The list of evaluations to return. + repeated ConversationModelEvaluation conversation_model_evaluations = 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; +} + +// The request message for +// [ConversationModels.CreateConversationModelEvaluation][google.cloud.dialogflow.v2.ConversationModels.CreateConversationModelEvaluation] +message CreateConversationModelEvaluationRequest { + // Required. The conversation model resource name. Format: + // `projects//locations//conversationModels/` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dialogflow.googleapis.com/ConversationModelEvaluation" + } + ]; + + // Required. The conversation model evaluation to be created. + ConversationModelEvaluation conversation_model_evaluation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata for a [ConversationModels.CreateConversationModel][google.cloud.dialogflow.v2.ConversationModels.CreateConversationModel] operation. +message CreateConversationModelOperationMetadata { + // State of CreateConversationModel operation. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is submitted, but training has not started yet. + // The model may remain in this state until there is enough capacity to + // start training. + PENDING = 1; + + // The training has succeeded. + SUCCEEDED = 2; + + // The training has succeeded. + FAILED = 3; + + // The training has been cancelled. + CANCELLED = 4; + + // The training is in cancelling state. + CANCELLING = 5; + + // Custom model is training. + TRAINING = 6; + } + + // The resource name of the conversation model. Format: + // `projects//conversationModels/` + string conversation_model = 1; + + // State of CreateConversationModel operation. + State state = 2; + + // Timestamp when the request to create conversation model is submitted. The + // time is measured on server side. + google.protobuf.Timestamp create_time = 3; +} + +// Metadata for a [ConversationModels.DeployConversationModel][google.cloud.dialogflow.v2.ConversationModels.DeployConversationModel] operation. +message DeployConversationModelOperationMetadata { + // The resource name of the conversation model. Format: + // `projects//conversationModels/` + string conversation_model = 1; + + // Timestamp when request to deploy conversation model was submitted. The time + // is measured on server side. + google.protobuf.Timestamp create_time = 3; +} + +// Metadata for a [ConversationModels.UndeployConversationModel][google.cloud.dialogflow.v2.ConversationModels.UndeployConversationModel] operation. +message UndeployConversationModelOperationMetadata { + // The resource name of the conversation model. Format: + // `projects//conversationModels/` + string conversation_model = 1; + + // Timestamp when the request to undeploy conversation model was submitted. + // The time is measured on server side. + google.protobuf.Timestamp create_time = 3; +} + +// Metadata for a [ConversationModels.DeleteConversationModel][google.cloud.dialogflow.v2.ConversationModels.DeleteConversationModel] operation. +message DeleteConversationModelOperationMetadata { + // The resource name of the conversation model. Format: + // `projects//conversationModels/` + string conversation_model = 1; + + // Timestamp when delete conversation model request was created. The time is + // measured on server side. + google.protobuf.Timestamp create_time = 3; +} + +// Metadata for a +// [ConversationModels.CreateConversationModelEvaluation][google.cloud.dialogflow.v2.ConversationModels.CreateConversationModelEvaluation] +// operation. +message CreateConversationModelEvaluationOperationMetadata { + // State of CreateConversationModel operation. + enum State { + // Operation status not specified. + STATE_UNSPECIFIED = 0; + + // The operation is being prepared. + INITIALIZING = 1; + + // The operation is running. + RUNNING = 2; + + // The operation is cancelled. + CANCELLED = 3; + + // The operation has succeeded. + SUCCEEDED = 4; + + // The operation has failed. + FAILED = 5; + } + + // The resource name of the conversation model. Format: + // `projects//locations//conversationModels//evaluations/` + string conversation_model_evaluation = 1; + + // The resource name of the conversation model. Format: + // `projects//locations//conversationModels/` + string conversation_model = 4; + + // State of CreateConversationModel operation. + State state = 2; + + // Timestamp when the request to create conversation model was submitted. The + // time is measured on server side. + google.protobuf.Timestamp create_time = 3; +} diff --git a/google/cloud/dialogflow/v2/conversation_profile.proto b/google/cloud/dialogflow/v2/conversation_profile.proto index 0bbd12fcf..56cc8e47e 100644 --- a/google/cloud/dialogflow/v2/conversation_profile.proto +++ b/google/cloud/dialogflow/v2/conversation_profile.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -23,7 +23,6 @@ import "google/api/resource.proto"; import "google/cloud/dialogflow/v2/audio_config.proto"; import "google/cloud/dialogflow/v2/participant.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/timestamp.proto"; @@ -39,10 +38,6 @@ option (google.api.resource_definition) = { type: "dialogflow.googleapis.com/CXSecuritySettings" pattern: "projects/{project}/locations/{location}/securitySettings/{security_settings}" }; -option (google.api.resource_definition) = { - type: "dialogflow.googleapis.com/ConversationModel" - pattern: "projects/{project}/locations/{location}/conversationModels/{conversation_model}" -}; // Service for managing [ConversationProfiles][google.cloud.dialogflow.v2.ConversationProfile]. service ConversationProfiles { @@ -117,6 +112,63 @@ service ConversationProfiles { }; option (google.api.method_signature) = "name"; } + + // Adds or updates a suggestion feature in a conversation profile. + // If the conversation profile contains the type of suggestion feature for + // the participant role, it will update it. Otherwise it will insert the + // suggestion feature. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [SetSuggestionFeatureConfigOperationMetadata][google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata] + // - `response`: [ConversationProfile][google.cloud.dialogflow.v2.ConversationProfile] + // + // If a long running operation to add or update suggestion feature + // config for the same conversation profile, participant role and suggestion + // feature type exists, please cancel the existing long running operation + // before sending such request, otherwise the request will be rejected. + rpc SetSuggestionFeatureConfig(SetSuggestionFeatureConfigRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{conversation_profile=projects/*/conversationProfiles/*}:setSuggestionFeatureConfig" + body: "*" + additional_bindings { + post: "/v2/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:setSuggestionFeatureConfig" + body: "*" + } + }; + option (google.api.method_signature) = "conversation_profile"; + option (google.longrunning.operation_info) = { + response_type: "ConversationProfile" + metadata_type: "SetSuggestionFeatureConfigOperationMetadata" + }; + } + + // Clears a suggestion feature from a conversation profile for the given + // participant role. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [ClearSuggestionFeatureConfigOperationMetadata][google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata] + // - `response`: [ConversationProfile][google.cloud.dialogflow.v2.ConversationProfile] + rpc ClearSuggestionFeatureConfig(ClearSuggestionFeatureConfigRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{conversation_profile=projects/*/conversationProfiles/*}:clearSuggestionFeatureConfig" + body: "*" + additional_bindings { + post: "/v2/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:clearSuggestionFeatureConfig" + body: "*" + } + }; + option (google.api.method_signature) = "conversation_profile"; + option (google.longrunning.operation_info) = { + response_type: "ConversationProfile" + metadata_type: "ClearSuggestionFeatureConfigOperationMetadata" + }; + } } // Defines the services to connect to incoming Dialogflow conversations. @@ -463,7 +515,8 @@ message HumanAgentAssistantConfig { // Custom conversation models used in agent assist feature. // - // Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. + // Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, + // CONVERSATION_SUMMARIZATION. message ConversationModelConfig { // Conversation model resource name. Format: `projects//conversationModels/`. @@ -582,11 +635,15 @@ message NotificationConfig { // [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] as // serialized [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. // - // Notification works for phone calls, if this topic either is in the same - // project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service // Agent` role in the topic project. // + // For chat integration to receive notification, make sure API caller has been + // granted the `Dialogflow Service Agent` role for the topic. + // // Format: `projects//locations//topics/`. string topic = 1; @@ -625,3 +682,72 @@ message SuggestionFeature { // Type of Human Agent Assistant API feature to request. Type type = 1; } + +// The request message for +// [ConversationProfiles.SetSuggestionFeature][]. +message SetSuggestionFeatureConfigRequest { + // Required. The Conversation Profile to add or update the suggestion feature + // config. Format: `projects//locations//conversationProfiles/`. + string conversation_profile = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The participant role to add or update the suggestion feature + // config. Only HUMAN_AGENT or END_USER can be used. + Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The suggestion feature config to add or update. + HumanAgentAssistantConfig.SuggestionFeatureConfig suggestion_feature_config = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for [ConversationProfiles.ClearFeature][]. +message ClearSuggestionFeatureConfigRequest { + // Required. The Conversation Profile to add or update the suggestion feature + // config. Format: `projects//locations//conversationProfiles/`. + string conversation_profile = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The participant role to remove the suggestion feature + // config. Only HUMAN_AGENT or END_USER can be used. + Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the suggestion feature to remove. + SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata for a [ConversationProfile.SetSuggestionFeatureConfig][] +// operation. +message SetSuggestionFeatureConfigOperationMetadata { + // The resource name of the conversation profile. Format: + // `projects//locations//conversationProfiles/` + string conversation_profile = 1; + + // Required. The participant role to add or update the suggestion feature + // config. Only HUMAN_AGENT or END_USER can be used. + Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the suggestion feature to add or update. + SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Timestamp whe the request was created. The time is measured on server side. + google.protobuf.Timestamp create_time = 4; +} + +// Metadata for a [ConversationProfile.ClearSuggestionFeatureConfig][] +// operation. +message ClearSuggestionFeatureConfigOperationMetadata { + // The resource name of the conversation profile. Format: + // `projects//locations//conversationProfiles/` + string conversation_profile = 1; + + // Required. The participant role to remove the suggestion feature + // config. Only HUMAN_AGENT or END_USER can be used. + Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the suggestion feature to remove. + SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Timestamp whe the request was created. The time is measured on server side. + google.protobuf.Timestamp create_time = 4; +} diff --git a/google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json b/google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json index 8b6668420..f704b3a68 100755 --- a/google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json +++ b/google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json @@ -11,12 +11,18 @@ { "service": "google.cloud.dialogflow.v2.Contexts" }, + { + "service": "google.cloud.dialogflow.v2.ConversationDatasets" + }, { "service": "google.cloud.dialogflow.v2.ConversationProfiles" }, { "service": "google.cloud.dialogflow.v2.Conversations" }, + { + "service": "google.cloud.dialogflow.v2.ConversationModels" + }, { "service": "google.cloud.dialogflow.v2.Documents" }, diff --git a/google/cloud/dialogflow/v2/dialogflow_v2.yaml b/google/cloud/dialogflow/v2/dialogflow_v2.yaml index 4cbbb64fc..8c5fb07fa 100644 --- a/google/cloud/dialogflow/v2/dialogflow_v2.yaml +++ b/google/cloud/dialogflow/v2/dialogflow_v2.yaml @@ -7,6 +7,8 @@ apis: - name: google.cloud.dialogflow.v2.Agents - name: google.cloud.dialogflow.v2.AnswerRecords - name: google.cloud.dialogflow.v2.Contexts +- name: google.cloud.dialogflow.v2.ConversationDatasets +- name: google.cloud.dialogflow.v2.ConversationModels - name: google.cloud.dialogflow.v2.ConversationProfiles - name: google.cloud.dialogflow.v2.Conversations - name: google.cloud.dialogflow.v2.Documents @@ -19,16 +21,30 @@ apis: - name: google.cloud.dialogflow.v2.SessionEntityTypes - name: google.cloud.dialogflow.v2.Sessions - name: google.cloud.dialogflow.v2.Versions +- name: google.cloud.location.Locations +- name: google.longrunning.Operations types: - name: google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse - name: google.cloud.dialogflow.v2.BatchUpdateIntentsResponse +- name: google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata - name: google.cloud.dialogflow.v2.ConversationEvent +- name: google.cloud.dialogflow.v2.ConversationModel +- name: google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata +- name: google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata +- name: google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata +- name: google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata +- name: google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata +- name: google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata - name: google.cloud.dialogflow.v2.ExportAgentResponse - name: google.cloud.dialogflow.v2.HumanAgentAssistantEvent +- name: google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata +- name: google.cloud.dialogflow.v2.ImportConversationDataOperationResponse - name: google.cloud.dialogflow.v2.ImportDocumentsResponse - name: google.cloud.dialogflow.v2.KnowledgeOperationMetadata - name: google.cloud.dialogflow.v2.OriginalDetectIntentRequest +- name: google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata +- name: google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata - name: google.cloud.dialogflow.v2.WebhookRequest - name: google.cloud.dialogflow.v2.WebhookResponse @@ -68,6 +84,10 @@ backend: deadline: 60.0 - selector: 'google.cloud.dialogflow.v2.Contexts.*' deadline: 60.0 + - selector: 'google.cloud.dialogflow.v2.ConversationDatasets.*' + deadline: 60.0 + - selector: 'google.cloud.dialogflow.v2.ConversationModels.*' + deadline: 60.0 - selector: 'google.cloud.dialogflow.v2.ConversationProfiles.*' deadline: 60.0 - selector: 'google.cloud.dialogflow.v2.Conversations.*' @@ -104,6 +124,8 @@ backend: deadline: 60.0 - selector: 'google.longrunning.Operations.*' deadline: 60.0 + - selector: google.longrunning.Operations.ListOperations + deadline: 180.0 http: rules: @@ -146,6 +168,16 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/dialogflow + - selector: 'google.cloud.dialogflow.v2.ConversationDatasets.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow + - selector: 'google.cloud.dialogflow.v2.ConversationModels.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow - selector: 'google.cloud.dialogflow.v2.ConversationProfiles.*' oauth: canonical_scopes: |- diff --git a/google/cloud/dialogflow/v2/document.proto b/google/cloud/dialogflow/v2/document.proto index f8103652f..124162194 100644 --- a/google/cloud/dialogflow/v2/document.proto +++ b/google/cloud/dialogflow/v2/document.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -270,6 +270,9 @@ message Document { // The entire document content as a whole can be used for query results. // Only for Contact Center Solutions on Dialogflow. ARTICLE_SUGGESTION = 3; + + // The document contains agent-facing Smart Reply entries. + AGENT_FACING_SMART_REPLY = 4; } // The status of a reload attempt. @@ -283,6 +286,27 @@ message Document { google.rpc.Status status = 2; } + // Possible states of the document + enum State { + // The document state is unspecified. + STATE_UNSPECIFIED = 0; + + // The document creation is in progress. + CREATING = 1; + + // The document is active and ready to use. + ACTIVE = 2; + + // The document updation is in progress. + UPDATING = 3; + + // The document is reloading. + RELOADING = 4; + + // The document deletion is in progress. + DELETING = 5; + } + // Optional. The document resource name. // The name must be empty when creating a document. // Format: `projects//locations/ metadata = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The current state of the document. + State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for [Documents.GetDocument][google.cloud.dialogflow.v2.Documents.GetDocument]. @@ -572,6 +599,12 @@ message ExportDocumentRequest { bool smart_messaging_partial_update = 5; } +// Metadata related to the Export Data Operations (e.g. ExportDocument). +message ExportOperationMetadata { + // Cloud Storage file path of the exported data. + GcsDestination exported_gcs_destination = 1; +} + // Metadata in google::longrunning::Operation for Knowledge operations. message KnowledgeOperationMetadata { // States of the operation. @@ -594,4 +627,10 @@ message KnowledgeOperationMetadata { // The name of the knowledge base interacted with during the operation. string knowledge_base = 3; + + // Additional metadata for the Knowledge operation. + oneof operation_metadata { + // Metadata for the Export Data Operation such as the destination of export. + ExportOperationMetadata export_operation_metadata = 4; + } } diff --git a/google/cloud/dialogflow/v2/entity_type.proto b/google/cloud/dialogflow/v2/entity_type.proto index 7128dafb7..acb5b94f2 100644 --- a/google/cloud/dialogflow/v2/entity_type.proto +++ b/google/cloud/dialogflow/v2/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2/environment.proto b/google/cloud/dialogflow/v2/environment.proto index a25e70509..f368db3ec 100644 --- a/google/cloud/dialogflow/v2/environment.proto +++ b/google/cloud/dialogflow/v2/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2/fulfillment.proto b/google/cloud/dialogflow/v2/fulfillment.proto index b4fe186bf..b1103fe41 100644 --- a/google/cloud/dialogflow/v2/fulfillment.proto +++ b/google/cloud/dialogflow/v2/fulfillment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -81,8 +81,10 @@ message Fulfillment { // Represents configuration for a generic web service. // Dialogflow supports two mechanisms for authentications: + // // - Basic authentication with username and password. // - Authentication with additional authentication headers. + // // More information could be found at: // https://cloud.google.com/dialogflow/docs/fulfillment-configure. message GenericWebService { @@ -127,6 +129,7 @@ message Fulfillment { // Required. The unique identifier of the fulfillment. // Supported formats: + // // - `projects//agent/fulfillment` // - `projects//locations//agent/fulfillment` // diff --git a/google/cloud/dialogflow/v2/gcs.proto b/google/cloud/dialogflow/v2/gcs.proto index 007a573e9..6ac9886df 100644 --- a/google/cloud/dialogflow/v2/gcs.proto +++ b/google/cloud/dialogflow/v2/gcs.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/dialogflow/v2/human_agent_assistant_event.proto b/google/cloud/dialogflow/v2/human_agent_assistant_event.proto index f8031975c..0bae8f683 100644 --- a/google/cloud/dialogflow/v2/human_agent_assistant_event.proto +++ b/google/cloud/dialogflow/v2/human_agent_assistant_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2; -import "google/api/annotations.proto"; import "google/cloud/dialogflow/v2/participant.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/dialogflow/v2/intent.proto b/google/cloud/dialogflow/v2/intent.proto index 86f029f35..e28e0d312 100644 --- a/google/cloud/dialogflow/v2/intent.proto +++ b/google/cloud/dialogflow/v2/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,10 +20,8 @@ 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/v2/audio_config.proto"; import "google/cloud/dialogflow/v2/context.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"; diff --git a/google/cloud/dialogflow/v2/knowledge_base.proto b/google/cloud/dialogflow/v2/knowledge_base.proto index 14647757e..4f047e2ec 100644 --- a/google/cloud/dialogflow/v2/knowledge_base.proto +++ b/google/cloud/dialogflow/v2/knowledge_base.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2/participant.proto b/google/cloud/dialogflow/v2/participant.proto index c7f7caca1..35b6106e3 100644 --- a/google/cloud/dialogflow/v2/participant.proto +++ b/google/cloud/dialogflow/v2/participant.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,10 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2/audio_config.proto"; -import "google/cloud/dialogflow/v2/gcs.proto"; import "google/cloud/dialogflow/v2/session.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; @@ -355,6 +352,14 @@ message AnalyzeContentRequest { // Parameters for a human assist query. AssistQueryParameters assist_query_params = 14; + // Additional parameters to be put into Dialogflow CX session parameters. To + // remove a parameter from the session, clients should explicitly set the + // parameter value to null. + // + // Note: this field should only be used if you are connecting to a Dialogflow + // CX agent. + google.protobuf.Struct cx_parameters = 18; + // A unique identifier for this request. Restricted to 36 ASCII characters. // A random UUID is recommended. // This request is only idempotent if a `request_id` is provided. @@ -399,11 +404,21 @@ message AnalyzeContentResponse { // The suggestions for most recent human agent. The order is the same as // [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] of // [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + // + // Note that any failure of Agent Assist features will not lead to the overall + // failure of an AnalyzeContent API call. Instead, the features will + // fail silently with the error field set in the corresponding + // SuggestionResult. repeated SuggestionResult human_agent_suggestion_results = 6; // The suggestions for end user. The order is the same as // [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] of // [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + // + // Same as human_agent_suggestion_results, any failure of Agent Assist + // features will not lead to the overall failure of an AnalyzeContent API + // call. Instead, the features will fail silently with the error field set in + // the corresponding SuggestionResult. repeated SuggestionResult end_user_suggestion_results = 7; // Indicates the parameters of DTMF. diff --git a/google/cloud/dialogflow/v2/session.proto b/google/cloud/dialogflow/v2/session.proto index 6c4bf790b..107e02060 100644 --- a/google/cloud/dialogflow/v2/session.proto +++ b/google/cloud/dialogflow/v2/session.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2/audio_config.proto"; import "google/cloud/dialogflow/v2/context.proto"; -import "google/cloud/dialogflow/v2/gcs.proto"; import "google/cloud/dialogflow/v2/intent.proto"; import "google/cloud/dialogflow/v2/session_entity_type.proto"; import "google/protobuf/duration.proto"; @@ -257,7 +256,8 @@ message QueryInput { // Instructs the speech recognizer how to process the speech audio. InputAudioConfig audio_config = 1; - // The natural language text to be processed. + // The natural language text to be processed. Text length must not exceed + // 256 character for virtual agent interactions. TextInput text = 2; // The event to be processed. @@ -325,7 +325,8 @@ message QueryResult { bool all_required_params_present = 5; // Indicates whether the conversational query triggers a cancellation for slot - // filling. + // filling. For more information, see the [cancel slot filling + // documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel). bool cancels_slot_filling = 21; // The text to be pronounced to the user or shown on the screen. @@ -609,10 +610,13 @@ message StreamingRecognitionResult { string language_code = 10; } +// ============================================================================ +// Auxiliary proto messages. +// // Represents the natural language text to be processed. message TextInput { // Required. The UTF-8 encoded natural language text to be processed. - // Text length must not exceed 256 characters. + // Text length must not exceed 256 characters for virtual agent interactions. string text = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The language of this conversational query. See [Language @@ -653,6 +657,11 @@ message EventInput { // Support](https://cloud.google.com/dialogflow/docs/reference/language) // for a list of the currently supported language codes. Note that queries in // the same session do not necessarily need to specify the same language. + // + // This field is ignored when used in the context of a + // [WebhookResponse.followup_event_input][google.cloud.dialogflow.v2.WebhookResponse.followup_event_input] field, + // because the language was already defined in the originating detect + // intent request. string language_code = 3 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/cloud/dialogflow/v2/session_entity_type.proto b/google/cloud/dialogflow/v2/session_entity_type.proto index 44efa7793..00cceba1c 100644 --- a/google/cloud/dialogflow/v2/session_entity_type.proto +++ b/google/cloud/dialogflow/v2/session_entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2/validation_result.proto b/google/cloud/dialogflow/v2/validation_result.proto index 5b8d27806..a4c77a999 100644 --- a/google/cloud/dialogflow/v2/validation_result.proto +++ b/google/cloud/dialogflow/v2/validation_result.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2; -import "google/api/annotations.proto"; - option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.V2"; option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2;dialogflow"; diff --git a/google/cloud/dialogflow/v2/version.proto b/google/cloud/dialogflow/v2/version.proto index 8e8c0011c..8244c547b 100644 --- a/google/cloud/dialogflow/v2/version.proto +++ b/google/cloud/dialogflow/v2/version.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2/webhook.proto b/google/cloud/dialogflow/v2/webhook.proto index dace21ba0..a672ff715 100644 --- a/google/cloud/dialogflow/v2/webhook.proto +++ b/google/cloud/dialogflow/v2/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2; -import "google/api/annotations.proto"; import "google/cloud/dialogflow/v2/context.proto"; import "google/cloud/dialogflow/v2/intent.proto"; import "google/cloud/dialogflow/v2/session.proto"; diff --git a/google/cloud/dialogflow/v2beta1/BUILD.bazel b/google/cloud/dialogflow/v2beta1/BUILD.bazel index 958065639..9cfa1a410 100644 --- a/google/cloud/dialogflow/v2beta1/BUILD.bazel +++ b/google/cloud/dialogflow/v2beta1/BUILD.bazel @@ -51,7 +51,6 @@ proto_library( "//google/longrunning:operations_proto", "//google/rpc:status_proto", "//google/type:latlng_proto", - "@com_google_protobuf//:any_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -65,6 +64,7 @@ proto_library_with_info( deps = [ ":dialogflow_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -99,30 +99,48 @@ java_gapic_library( service_yaml = "dialogflow_v2beta1.yaml", test_deps = [ ":dialogflow_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":dialogflow_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "dialogflow_java_gapic_test_suite", test_classes = [ + "com.google.cloud.dialogflow.v2beta1.AgentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.AgentsClientTest", + "com.google.cloud.dialogflow.v2beta1.AnswerRecordsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.AnswerRecordsClientTest", + "com.google.cloud.dialogflow.v2beta1.ContextsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.ContextsClientTest", + "com.google.cloud.dialogflow.v2beta1.ConversationProfilesClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.ConversationProfilesClientTest", + "com.google.cloud.dialogflow.v2beta1.ConversationsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.ConversationsClientTest", + "com.google.cloud.dialogflow.v2beta1.DocumentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.DocumentsClientTest", + "com.google.cloud.dialogflow.v2beta1.EntityTypesClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.EntityTypesClientTest", + "com.google.cloud.dialogflow.v2beta1.EnvironmentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.EnvironmentsClientTest", + "com.google.cloud.dialogflow.v2beta1.FulfillmentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.FulfillmentsClientTest", + "com.google.cloud.dialogflow.v2beta1.IntentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.IntentsClientTest", + "com.google.cloud.dialogflow.v2beta1.KnowledgeBasesClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.KnowledgeBasesClientTest", + "com.google.cloud.dialogflow.v2beta1.ParticipantsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.ParticipantsClientTest", + "com.google.cloud.dialogflow.v2beta1.SessionEntityTypesClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.SessionEntityTypesClientTest", + "com.google.cloud.dialogflow.v2beta1.SessionsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.SessionsClientTest", + "com.google.cloud.dialogflow.v2beta1.VersionsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.VersionsClientTest", ], runtime_deps = [":dialogflow_java_gapic_test"], @@ -131,6 +149,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-dialogflow-v2beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":dialogflow_java_gapic", ":dialogflow_java_grpc", @@ -170,12 +190,13 @@ go_gapic_library( importpath = "cloud.google.com/go/dialogflow/apiv2beta1;dialogflow", metadata = True, service_yaml = "dialogflow_v2beta1.yaml", + transport = "grpc+rest", deps = [ ":dialogflow_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:any_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", "@io_bazel_rules_go//proto/wkt:struct_go_proto", ], @@ -206,12 +227,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "dialogflow_py_gapic", srcs = [":dialogflow_proto"], grpc_service_config = "dialogflow_grpc_service_config.json", + service_yaml = "dialogflow_v2beta1.yaml", + transport = "grpc", +) + +py_test( + name = "dialogflow_py_gapic_test", + srcs = [ + "dialogflow_py_gapic_pytest.py", + "dialogflow_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dialogflow_py_gapic"], ) # Open Source Packages @@ -284,6 +318,7 @@ nodejs_gapic_library( package = "google.cloud.dialogflow.v2beta1", service_yaml = "dialogflow_v2beta1.yaml", deps = [], + mixins = "google.longrunning.Operations;google.cloud.location.Locations", ) nodejs_gapic_assembly_pkg( @@ -329,6 +364,7 @@ ruby_cloud_gapic_library( grpc_service_config = "dialogflow_grpc_service_config.json", ruby_cloud_description = "Dialogflow is an end-to-end, build-once deploy-everywhere development suite for creating conversational interfaces for websites, mobile applications, popular messaging platforms, and IoT devices. You can use it to build interfaces (such as chatbots and conversational IVR) that enable natural and rich interactions between your users and your business. This client is for Dialogflow ES, providing the standard agent type suitable for small and simple agents.", ruby_cloud_title = "Dialogflow V2beta1", + service_yaml = "dialogflow_v2beta1.yaml", deps = [ ":dialogflow_ruby_grpc", ":dialogflow_ruby_proto", @@ -372,6 +408,7 @@ csharp_gapic_library( srcs = [":dialogflow_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dialogflow_grpc_service_config.json", + service_yaml = "dialogflow_v2beta1.yaml", deps = [ ":dialogflow_csharp_grpc", ":dialogflow_csharp_proto", diff --git a/google/cloud/dialogflow/v2beta1/agent.proto b/google/cloud/dialogflow/v2beta1/agent.proto index 657503803..95b3933a6 100644 --- a/google/cloud/dialogflow/v2beta1/agent.proto +++ b/google/cloud/dialogflow/v2beta1/agent.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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/v2beta1/environment.proto"; import "google/cloud/dialogflow/v2beta1/validation_result.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; @@ -478,6 +477,12 @@ message ExportAgentRequest { // URI to export the agent to. // The format of this URI must be `gs:///`. // If left unspecified, the serialized agent is returned inline. + // + // Dialogflow performs a write operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have write permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2; } @@ -510,6 +515,12 @@ message ImportAgentRequest { oneof agent { // The URI to a Google Cloud Storage file containing the agent to import. // Note: The URI must start with "gs://". + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2; // Zip compressed raw byte content for agent. @@ -533,6 +544,12 @@ message RestoreAgentRequest { oneof agent { // The URI to a Google Cloud Storage file containing the agent to restore. // Note: The URI must start with "gs://". + // + // Dialogflow performs a read operation for the Cloud Storage object + // on the caller's behalf, so your request authentication must + // have read permissions for the object. For more information, see + // [Dialogflow access + // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). string agent_uri = 2; // Zip compressed raw byte content for agent. diff --git a/google/cloud/dialogflow/v2beta1/answer_record.proto b/google/cloud/dialogflow/v2beta1/answer_record.proto index a5e02a635..1193f90c6 100644 --- a/google/cloud/dialogflow/v2beta1/answer_record.proto +++ b/google/cloud/dialogflow/v2beta1/answer_record.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2beta1/participant.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -281,6 +280,15 @@ message ListAnswerRecordsRequest { child_type: "dialogflow.googleapis.com/AnswerRecord" }]; + // Optional. Filters to restrict results to specific answer records. + // + // For more information about filtering, see + // [API Filtering](https://aip.dev/160). + string filter = 2 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL + ]; + // Optional. The maximum number of records to return in a single page. // The server may return fewer records than this. If unspecified, we use 10. // The maximum is 100. diff --git a/google/cloud/dialogflow/v2beta1/audio_config.proto b/google/cloud/dialogflow/v2beta1/audio_config.proto index e0820f558..c72899df7 100644 --- a/google/cloud/dialogflow/v2beta1/audio_config.proto +++ b/google/cloud/dialogflow/v2beta1/audio_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,12 +16,9 @@ syntax = "proto3"; package google.cloud.dialogflow.v2beta1; -import "google/api/annotations.proto"; 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"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.V2beta1"; @@ -30,6 +27,10 @@ option java_multiple_files = true; option java_outer_classname = "AudioConfigProto"; option java_package = "com.google.cloud.dialogflow.v2beta1"; option objc_class_prefix = "DF"; +option (google.api.resource_definition) = { + type: "automl.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/models/{model}" +}; // Audio encoding of the audio content sent in the conversational query request. // Refer to the diff --git a/google/cloud/dialogflow/v2beta1/context.proto b/google/cloud/dialogflow/v2beta1/context.proto index c18e411a2..a8e8c21f9 100644 --- a/google/cloud/dialogflow/v2beta1/context.proto +++ b/google/cloud/dialogflow/v2beta1/context.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2beta1/conversation.proto b/google/cloud/dialogflow/v2beta1/conversation.proto index 6dc8ca9b9..d044b4be0 100644 --- a/google/cloud/dialogflow/v2beta1/conversation.proto +++ b/google/cloud/dialogflow/v2beta1/conversation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,16 +20,8 @@ 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/v2beta1/audio_config.proto"; -import "google/cloud/dialogflow/v2beta1/conversation_profile.proto"; -import "google/cloud/dialogflow/v2beta1/gcs.proto"; import "google/cloud/dialogflow/v2beta1/participant.proto"; -import "google/cloud/dialogflow/v2beta1/session.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.V2beta1"; diff --git a/google/cloud/dialogflow/v2beta1/conversation_event.proto b/google/cloud/dialogflow/v2beta1/conversation_event.proto index 95815c79a..7f47dcee0 100644 --- a/google/cloud/dialogflow/v2beta1/conversation_event.proto +++ b/google/cloud/dialogflow/v2beta1/conversation_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2beta1; -import "google/api/annotations.proto"; import "google/cloud/dialogflow/v2beta1/participant.proto"; import "google/rpc/status.proto"; @@ -44,6 +43,10 @@ message ConversationEvent { // is terminated, or a conversation is closed via the API. CONVERSATION_FINISHED = 2; + // An existing conversation has received notification from Dialogflow that + // human intervention is required. + HUMAN_INTERVENTION_NEEDED = 3; + // An existing conversation has received a new message, either from API or // telephony. It is configured in // [ConversationProfile.new_message_event_notification_config][google.cloud.dialogflow.v2beta1.ConversationProfile.new_message_event_notification_config] diff --git a/google/cloud/dialogflow/v2beta1/conversation_profile.proto b/google/cloud/dialogflow/v2beta1/conversation_profile.proto index df4b3e200..0c1f55296 100644 --- a/google/cloud/dialogflow/v2beta1/conversation_profile.proto +++ b/google/cloud/dialogflow/v2beta1/conversation_profile.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,10 +21,8 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2beta1/audio_config.proto"; -import "google/cloud/dialogflow/v2beta1/document.proto"; import "google/cloud/dialogflow/v2beta1/participant.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/timestamp.proto"; @@ -118,6 +116,63 @@ service ConversationProfiles { }; option (google.api.method_signature) = "name"; } + + // Adds or updates a suggestion feature in a conversation profile. + // If the conversation profile contains the type of suggestion feature for + // the participant role, it will update it. Otherwise it will insert the + // suggestion feature. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [SetSuggestionFeatureConfigOperationMetadata][google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata] + // - `response`: [ConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfile] + // + // If a long running operation to add or update suggestion feature + // config for the same conversation profile, participant role and suggestion + // feature type exists, please cancel the existing long running operation + // before sending such request, otherwise the request will be rejected. + rpc SetSuggestionFeatureConfig(SetSuggestionFeatureConfigRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta1/{conversation_profile=projects/*/conversationProfiles/*}:setSuggestionFeatureConfig" + body: "*" + additional_bindings { + post: "/v2beta1/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:setSuggestionFeatureConfig" + body: "*" + } + }; + option (google.api.method_signature) = "conversation_profile"; + option (google.longrunning.operation_info) = { + response_type: "ConversationProfile" + metadata_type: "SetSuggestionFeatureConfigOperationMetadata" + }; + } + + // Clears a suggestion feature from a conversation profile for the given + // participant role. + // + // This method is a [long-running + // operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + // The returned `Operation` type has the following method-specific fields: + // + // - `metadata`: [ClearSuggestionFeatureConfigOperationMetadata][google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata] + // - `response`: [ConversationProfile][google.cloud.dialogflow.v2beta1.ConversationProfile] + rpc ClearSuggestionFeatureConfig(ClearSuggestionFeatureConfigRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta1/{conversation_profile=projects/*/conversationProfiles/*}:clearSuggestionFeatureConfig" + body: "*" + additional_bindings { + post: "/v2beta1/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:clearSuggestionFeatureConfig" + body: "*" + } + }; + option (google.api.method_signature) = "conversation_profile"; + option (google.longrunning.operation_info) = { + response_type: "ConversationProfile" + metadata_type: "ClearSuggestionFeatureConfigOperationMetadata" + }; + } } // Defines the services to connect to incoming Dialogflow conversations. @@ -382,7 +437,8 @@ message HumanAgentAssistantConfig { // Custom conversation models used in agent assist feature. // - // Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. + // Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, + // CONVERSATION_SUMMARIZATION. message ConversationModelConfig { // Conversation model resource name. Format: `projects//conversationModels/`. @@ -501,11 +557,15 @@ message NotificationConfig { // [CONVERSATION_STARTED][google.cloud.dialogflow.v2beta1.ConversationEvent.Type.CONVERSATION_STARTED] as // serialized [ConversationEvent][google.cloud.dialogflow.v2beta1.ConversationEvent] protos. // - // Notification works for phone calls, if this topic either is in the same - // project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service // Agent` role in the topic project. // + // For chat integration to receive notification, make sure API caller has been + // granted the `Dialogflow Service Agent` role for the topic. + // // Format: `projects//locations//topics/`. string topic = 1; @@ -604,3 +664,72 @@ message DeleteConversationProfileRequest { } ]; } + +// The request message for +// [ConversationProfiles.SetSuggestionFeature][]. +message SetSuggestionFeatureConfigRequest { + // Required. The Conversation Profile to add or update the suggestion feature + // config. Format: `projects//locations//conversationProfiles/`. + string conversation_profile = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The participant role to add or update the suggestion feature + // config. Only HUMAN_AGENT or END_USER can be used. + Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The suggestion feature config to add or update. + HumanAgentAssistantConfig.SuggestionFeatureConfig suggestion_feature_config = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for [ConversationProfiles.ClearFeature][]. +message ClearSuggestionFeatureConfigRequest { + // Required. The Conversation Profile to add or update the suggestion feature + // config. Format: `projects//locations//conversationProfiles/`. + string conversation_profile = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The participant role to remove the suggestion feature + // config. Only HUMAN_AGENT or END_USER can be used. + Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the suggestion feature to remove. + SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata for a [ConversationProfile.SetSuggestionFeatureConfig][] +// operation. +message SetSuggestionFeatureConfigOperationMetadata { + // The resource name of the conversation profile. Format: + // `projects//locations//conversationProfiles/` + string conversation_profile = 1; + + // Required. The participant role to add or update the suggestion feature + // config. Only HUMAN_AGENT or END_USER can be used. + Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the suggestion feature to add or update. + SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Timestamp whe the request was created. The time is measured on server side. + google.protobuf.Timestamp create_time = 4; +} + +// Metadata for a [ConversationProfile.ClearSuggestionFeatureConfig][] +// operation. +message ClearSuggestionFeatureConfigOperationMetadata { + // The resource name of the conversation profile. Format: + // `projects//locations//conversationProfiles/` + string conversation_profile = 1; + + // Required. The participant role to remove the suggestion feature + // config. Only HUMAN_AGENT or END_USER can be used. + Participant.Role participant_role = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the suggestion feature to remove. + SuggestionFeature.Type suggestion_feature_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Timestamp whe the request was created. The time is measured on server side. + google.protobuf.Timestamp create_time = 4; +} diff --git a/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json b/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json index 1df61e61b..d03c5bd8d 100755 --- a/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json +++ b/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json @@ -26,6 +26,9 @@ { "service": "google.cloud.dialogflow.aam.v2beta1.AamTasks" }, + { + "service": "google.cloud.dialogflow.aam.v2beta1.AamTopicClusters" + }, { "service": "google.cloud.dialogflow.aam.v2beta1.AamTrainingRuns" }, diff --git a/google/cloud/dialogflow/v2beta1/dialogflow_v2beta1.yaml b/google/cloud/dialogflow/v2beta1/dialogflow_v2beta1.yaml index 3687ff1d7..88c78ec5d 100644 --- a/google/cloud/dialogflow/v2beta1/dialogflow_v2beta1.yaml +++ b/google/cloud/dialogflow/v2beta1/dialogflow_v2beta1.yaml @@ -19,16 +19,20 @@ apis: - name: google.cloud.dialogflow.v2beta1.SessionEntityTypes - name: google.cloud.dialogflow.v2beta1.Sessions - name: google.cloud.dialogflow.v2beta1.Versions +- name: google.cloud.location.Locations +- name: google.longrunning.Operations types: - name: google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse - name: google.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse +- name: google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata - name: google.cloud.dialogflow.v2beta1.ConversationEvent - name: google.cloud.dialogflow.v2beta1.ExportAgentResponse - name: google.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent - name: google.cloud.dialogflow.v2beta1.ImportDocumentsResponse - name: google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata - name: google.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest +- name: google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata - name: google.cloud.dialogflow.v2beta1.WebhookRequest - name: google.cloud.dialogflow.v2beta1.WebhookResponse @@ -88,6 +92,8 @@ backend: deadline: 60.0 - selector: google.cloud.dialogflow.v2beta1.Participants.AnalyzeContent deadline: 220.0 + - selector: google.cloud.dialogflow.v2beta1.Participants.StreamingAnalyzeContent + deadline: 220.0 - selector: 'google.cloud.dialogflow.v2beta1.SessionEntityTypes.*' deadline: 60.0 - selector: google.cloud.dialogflow.v2beta1.Sessions.DetectIntent @@ -102,6 +108,8 @@ backend: deadline: 60.0 - selector: 'google.longrunning.Operations.*' deadline: 60.0 + - selector: google.longrunning.Operations.ListOperations + deadline: 180.0 http: rules: diff --git a/google/cloud/dialogflow/v2beta1/document.proto b/google/cloud/dialogflow/v2beta1/document.proto index 38adc2a14..9ecdb5fb5 100644 --- a/google/cloud/dialogflow/v2beta1/document.proto +++ b/google/cloud/dialogflow/v2beta1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2beta1/gcs.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -247,6 +246,8 @@ message Document { // The knowledge type of document content. enum KnowledgeType { + option allow_alias = true; + // The type is unspecified or arbitrary. KNOWLEDGE_TYPE_UNSPECIFIED = 0; @@ -267,6 +268,9 @@ message Document { // Only for Contact Center Solutions on Dialogflow. ARTICLE_SUGGESTION = 3; + // The document contains agent-facing Smart Reply entries. + AGENT_FACING_SMART_REPLY = 4; + // The legacy enum for agent-facing smart reply feature. SMART_REPLY = 4; } @@ -282,6 +286,27 @@ message Document { google.rpc.Status status = 2; } + // Possible states of the document + enum State { + // The document state is unspecified. + STATE_UNSPECIFIED = 0; + + // The document creation is in progress. + CREATING = 1; + + // The document is active and ready to use. + ACTIVE = 2; + + // The document updation is in progress. + UPDATING = 3; + + // The document is reloading. + RELOADING = 4; + + // The document deletion is in progress. + DELETING = 5; + } + // Optional. The document resource name. // The name must be empty when creating a document. // Format: `projects//locations/ metadata = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The current state of the document. + State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for [Documents.GetDocument][google.cloud.dialogflow.v2beta1.Documents.GetDocument]. @@ -521,6 +549,12 @@ message UpdateDocumentRequest { google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; } +// Metadata related to the Export Data Operations (e.g. ExportDocument). +message ExportOperationMetadata { + // Cloud Storage file path of the exported data. + GcsDestination exported_gcs_destination = 1; +} + // Metadata in google::longrunning::Operation for Knowledge operations. message KnowledgeOperationMetadata { // States of the operation. @@ -543,6 +577,12 @@ message KnowledgeOperationMetadata { // The name of the knowledge base interacted with during the operation. string knowledge_base = 3; + + // Additional metadata for the Knowledge operation. + oneof operation_metadata { + // Metadata for the Export Data Operation such as the destination of export. + ExportOperationMetadata export_operation_metadata = 4; + } } // Request message for [Documents.ReloadDocument][google.cloud.dialogflow.v2beta1.Documents.ReloadDocument]. diff --git a/google/cloud/dialogflow/v2beta1/entity_type.proto b/google/cloud/dialogflow/v2beta1/entity_type.proto index 3a51bb6d2..7bffded54 100644 --- a/google/cloud/dialogflow/v2beta1/entity_type.proto +++ b/google/cloud/dialogflow/v2beta1/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2beta1/environment.proto b/google/cloud/dialogflow/v2beta1/environment.proto index 5e80f180c..dd95cab9a 100644 --- a/google/cloud/dialogflow/v2beta1/environment.proto +++ b/google/cloud/dialogflow/v2beta1/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2beta1/fulfillment.proto b/google/cloud/dialogflow/v2beta1/fulfillment.proto index d24667560..8efe32af2 100644 --- a/google/cloud/dialogflow/v2beta1/fulfillment.proto +++ b/google/cloud/dialogflow/v2beta1/fulfillment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -81,8 +81,10 @@ message Fulfillment { // Represents configuration for a generic web service. // Dialogflow supports two mechanisms for authentications: + // // - Basic authentication with username and password. // - Authentication with additional authentication headers. + // // More information could be found at: // https://cloud.google.com/dialogflow/docs/fulfillment-configure. message GenericWebService { @@ -127,6 +129,7 @@ message Fulfillment { // Required. The unique identifier of the fulfillment. // Supported formats: + // // - `projects//agent/fulfillment` // - `projects//locations//agent/fulfillment` // @@ -155,6 +158,7 @@ message Fulfillment { message GetFulfillmentRequest { // Required. The name of the fulfillment. // Supported formats: + // // - `projects//agent/fulfillment` // - `projects//locations//agent/fulfillment` string name = 1 [ diff --git a/google/cloud/dialogflow/v2beta1/gcs.proto b/google/cloud/dialogflow/v2beta1/gcs.proto index 35302fb01..debb5786c 100644 --- a/google/cloud/dialogflow/v2beta1/gcs.proto +++ b/google/cloud/dialogflow/v2beta1/gcs.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2beta1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; option cc_enable_arenas = true; @@ -44,3 +43,13 @@ message GcsSource { // Whether a prefix or name is used depends on the use case. string uri = 1; } + +// Google Cloud Storage location for the output. +message GcsDestination { + // Required. The Google Cloud Storage URIs for the output. A URI is of the + // form: + // gs://bucket/object-prefix-or-name + // Whether a prefix or name is used depends on the use case. The requesting + // user must have "write-permission" to the bucket. + string uri = 1; +} diff --git a/google/cloud/dialogflow/v2beta1/human_agent_assistant_event.proto b/google/cloud/dialogflow/v2beta1/human_agent_assistant_event.proto index ea40d0302..9716f74e5 100644 --- a/google/cloud/dialogflow/v2beta1/human_agent_assistant_event.proto +++ b/google/cloud/dialogflow/v2beta1/human_agent_assistant_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2beta1; -import "google/api/annotations.proto"; import "google/cloud/dialogflow/v2beta1/participant.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/dialogflow/v2beta1/intent.proto b/google/cloud/dialogflow/v2beta1/intent.proto index ba4333ac4..99e9cafd7 100644 --- a/google/cloud/dialogflow/v2beta1/intent.proto +++ b/google/cloud/dialogflow/v2beta1/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,10 +20,8 @@ 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/v2beta1/audio_config.proto"; import "google/cloud/dialogflow/v2beta1/context.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"; @@ -229,10 +227,10 @@ message Intent { // Templates are not annotated with entity types, but they can contain // @-prefixed entity type names as substrings. - // Template mode has been deprecated. Example mode is the only supported - // way to create new training phrases. If you have existing training - // phrases that you've created in template mode, those will continue to - // work. + // Note: Template mode has been deprecated. Example mode is the only + // supported way to create new training phrases. If you have existing + // training phrases in template mode, they will be removed during training + // and it can cause a drop in agent performance. TEMPLATE = 2 [deprecated = true]; } diff --git a/google/cloud/dialogflow/v2beta1/knowledge_base.proto b/google/cloud/dialogflow/v2beta1/knowledge_base.proto index fe50073bc..cf5c21dde 100644 --- a/google/cloud/dialogflow/v2beta1/knowledge_base.proto +++ b/google/cloud/dialogflow/v2beta1/knowledge_base.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2beta1/participant.proto b/google/cloud/dialogflow/v2beta1/participant.proto index e833810a0..1d3489fe1 100644 --- a/google/cloud/dialogflow/v2beta1/participant.proto +++ b/google/cloud/dialogflow/v2beta1/participant.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,10 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2beta1/audio_config.proto"; -import "google/cloud/dialogflow/v2beta1/gcs.proto"; import "google/cloud/dialogflow/v2beta1/session.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; @@ -109,9 +106,28 @@ service Participants { } }; option (google.api.method_signature) = "participant,text_input"; + option (google.api.method_signature) = "participant,audio_input"; option (google.api.method_signature) = "participant,event_input"; } + // Adds a text (e.g., chat) or audio (e.g., phone recording) message from a + // participant into the conversation. + // Note: This method is only available through the gRPC API (not REST). + // + // The top-level message sent to the client by the server is + // `StreamingAnalyzeContentResponse`. Multiple response messages can be + // returned in order. The first one or more messages contain the + // `recognition_result` field. Each result represents a more complete + // transcript of what the user said. The next message contains the + // `reply_text` field, and potentially the `reply_audio` and/or the + // `automated_agent_reply` fields. + // + // Note: Always use agent versions for production traffic + // sent to virtual agents. See [Versions and + // environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + rpc StreamingAnalyzeContent(stream StreamingAnalyzeContentRequest) returns (stream StreamingAnalyzeContentResponse) { + } + // Gets suggested articles for a participant based on specific historical // messages. // @@ -393,6 +409,18 @@ message UpdateParticipantRequest { google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } +// Represents the natural language speech audio to be processed. +message AudioInput { + // Required. Instructs the speech recognizer how to process the speech audio. + InputAudioConfig config = 1; + + // Required. The natural language speech audio to be processed. + // A single request can contain up to 1 minute of speech audio data. + // The transcribed text cannot contain more than 256 bytes for virtual agent + // interactions. + bytes audio = 2; +} + // Represents the natural language speech audio to be played to the end user. message OutputAudio { // Required. Instructs the speech synthesizer how to generate the speech @@ -529,6 +557,9 @@ message AnalyzeContentRequest { // The natural language text to be processed. TextInput text_input = 6; + // The natural language speech audio to be processed. + AudioInput audio_input = 7; + // An input event to send to Dialogflow. EventInput event_input = 8; } @@ -546,6 +577,30 @@ message AnalyzeContentRequest { // Parameters for a human assist query. AssistQueryParameters assist_query_params = 14; + // Additional parameters to be put into Dialogflow CX session parameters. To + // remove a parameter from the session, clients should explicitly set the + // parameter value to null. + // + // Note: this field should only be used if you are connecting to a Dialogflow + // CX agent. + google.protobuf.Struct cx_parameters = 18; + + // The unique identifier of the CX page to override the `current_page` in the + // session. + // Format: `projects//locations//agents//flows//pages/`. + // + // If `cx_current_page` is specified, the previous state of the session will + // be ignored by Dialogflow CX, including the [previous + // page][QueryResult.current_page] and the [previous session + // parameters][QueryResult.parameters]. In most cases, `cx_current_page` and + // `cx_parameters` should be configured together to direct a session to a + // specific state. + // + // Note: this field should only be used if you are connecting to a Dialogflow + // CX agent. + string cx_current_page = 20; + // Optional. The send time of the message from end user or human agent's // perspective. It is used for identifying the same message under one // participant. @@ -606,17 +661,220 @@ message AnalyzeContentResponse { // The suggestions for most recent human agent. The order is the same as // [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] of // [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.human_agent_suggestion_config]. + // + // Note that any failure of Agent Assist features will not lead to the overall + // failure of an AnalyzeContent API call. Instead, the features will + // fail silently with the error field set in the corresponding + // SuggestionResult. repeated SuggestionResult human_agent_suggestion_results = 6; // The suggestions for end user. The order is the same as // [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] of // [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.end_user_suggestion_config]. + // + // Same as human_agent_suggestion_results, any failure of Agent Assist + // features will not lead to the overall failure of an AnalyzeContent API + // call. Instead, the features will fail silently with the error field set in + // the corresponding SuggestionResult. repeated SuggestionResult end_user_suggestion_results = 7; // Indicates the parameters of DTMF. DtmfParameters dtmf_parameters = 9; } +// Defines the language used in the input text. +message InputTextConfig { + // Required. The language of this conversational query. See [Language + // Support](https://cloud.google.com/dialogflow/docs/reference/language) + // for a list of the currently supported language codes. + string language_code = 1; +} + +// The top-level message sent by the client to the +// [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2beta1.Participants.StreamingAnalyzeContent] method. +// +// Multiple request messages should be sent in order: +// +// 1. The first message must contain +// [participant][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.participant], +// [config][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.config] and optionally +// [query_params][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.query_params]. If you want +// to receive an audio response, it should also contain +// [reply_audio_config][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.reply_audio_config]. +// The message must not contain +// [input][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.input]. +// +// 2. If [config][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.config] in the first message +// was set to [audio_config][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.audio_config], +// all subsequent messages must contain +// [input_audio][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.input_audio] to continue +// with Speech recognition. +// If you decide to rather analyze text input after you already started +// Speech recognition, please send a message with +// [StreamingAnalyzeContentRequest.input_text][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.input_text]. +// +// However, note that: +// +// * Dialogflow will bill you for the audio so far. +// * Dialogflow discards all Speech recognition results in favor of the +// text input. +// +// 3. If [StreamingAnalyzeContentRequest.config][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.config] in the first message was set +// to [StreamingAnalyzeContentRequest.text_config][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.text_config], then the second message +// must contain only [input_text][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.input_text]. +// Moreover, you must not send more than two messages. +// +// After you sent all input, you must half-close or abort the request stream. +message StreamingAnalyzeContentRequest { + // Required. The name of the participant this text comes from. + // Format: `projects//locations//conversations//participants/`. + string participant = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Participant" + } + ]; + + // Required. The input config. + oneof config { + // Instructs the speech recognizer how to process the speech audio. + InputAudioConfig audio_config = 2; + + // The natural language text to be processed. + InputTextConfig text_config = 3; + } + + // Speech synthesis configuration. + // The speech synthesis settings for a virtual agent that may be configured + // for the associated conversation profile are not used when calling + // StreamingAnalyzeContent. If this configuration is not supplied, speech + // synthesis is disabled. + OutputAudioConfig reply_audio_config = 4; + + // Required. The input. + oneof input { + // The input audio content to be recognized. Must be sent if `audio_config` + // is set in the first message. The complete audio over all streaming + // messages must not exceed 1 minute. + bytes input_audio = 5; + + // The UTF-8 encoded natural language text to be processed. Must be sent if + // `text_config` is set in the first message. Text length must not exceed + // 256 bytes for virtual agent interactions. The `input_text` field can be + // only sent once. + string input_text = 6; + + // The DTMF digits used to invoke intent and fill in parameter value. + // + // This input is ignored if the previous response indicated that DTMF input + // is not accepted. + TelephonyDtmfEvents input_dtmf = 9; + } + + // Parameters for a Dialogflow virtual-agent query. + QueryParameters query_params = 7; + + // Parameters for a human assist query. + AssistQueryParameters assist_query_params = 8; + + // Additional parameters to be put into Dialogflow CX session parameters. To + // remove a parameter from the session, clients should explicitly set the + // parameter value to null. + // + // Note: this field should only be used if you are connecting to a Dialogflow + // CX agent. + google.protobuf.Struct cx_parameters = 13; + + // The unique identifier of the CX page to override the `current_page` in the + // session. + // Format: `projects//locations//agents//flows//pages/`. + // + // If `cx_current_page` is specified, the previous state of the session will + // be ignored by Dialogflow CX, including the [previous + // page][QueryResult.current_page] and the [previous session + // parameters][QueryResult.parameters]. In most cases, `cx_current_page` and + // `cx_parameters` should be configured together to direct a session to a + // specific state. + // + // Note: this field should only be used if you are connecting to a Dialogflow + // CX agent. + string cx_current_page = 15; + + // Enable partial virtual agent responses. If this flag is not enabled, + // response stream still contains only one final response even if some + // `Fulfillment`s in Dialogflow virtual agent have been configured to return + // partial responses. + bool enable_partial_automated_agent_reply = 12; +} + +// The top-level message returned from the `StreamingAnalyzeContent` method. +// +// Multiple response messages can be returned in order: +// +// 1. If the input was set to streaming audio, the first one or more messages +// contain `recognition_result`. Each `recognition_result` represents a more +// complete transcript of what the user said. The last `recognition_result` +// has `is_final` set to `true`. +// +// 2. In virtual agent stage: if `enable_partial_automated_agent_reply` is +// true, the following N (currently 1 <= N <= 4) messages +// contain `automated_agent_reply` and optionally `reply_audio` +// returned by the virtual agent. The first (N-1) +// `automated_agent_reply`s will have `automated_agent_reply_type` set to +// `PARTIAL`. The last `automated_agent_reply` has +// `automated_agent_reply_type` set to `FINAL`. +// If `enable_partial_automated_agent_reply` is not enabled, response stream +// only contains the final reply. +// +// In human assist stage: the following N (N >= 1) messages contain +// `human_agent_suggestion_results`, `end_user_suggestion_results` or +// `message`. +message StreamingAnalyzeContentResponse { + // The result of speech recognition. + StreamingRecognitionResult recognition_result = 1; + + // Optional. The output text content. + // This field is set if an automated agent responded with a text for the user. + string reply_text = 2; + + // Optional. The audio data bytes encoded as specified in the request. + // This field is set if: + // + // - The `reply_audio_config` field is specified in the request. + // - The automated agent, which this output comes from, responded with audio. + // In such case, the `reply_audio.config` field contains settings used to + // synthesize the speech. + // + // In some scenarios, multiple output audio fields may be present in the + // response structure. In these cases, only the top-most-level audio output + // has content. + OutputAudio reply_audio = 3; + + // Optional. Only set if a Dialogflow automated agent has responded. + // Note that: [AutomatedAgentReply.detect_intent_response.output_audio][] + // and [AutomatedAgentReply.detect_intent_response.output_audio_config][] + // are always empty, use [reply_audio][google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse.reply_audio] instead. + AutomatedAgentReply automated_agent_reply = 4; + + // Output only. Message analyzed by CCAI. + Message message = 6; + + // The suggestions for most recent human agent. The order is the same as + // [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] of + // [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.human_agent_suggestion_config]. + repeated SuggestionResult human_agent_suggestion_results = 7; + + // The suggestions for end user. The order is the same as + // [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] of + // [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.end_user_suggestion_config]. + repeated SuggestionResult end_user_suggestion_results = 8; + + // Indicates the parameters of DTMF. + DtmfParameters dtmf_parameters = 10; +} + // Represents a part of a message possibly annotated with an entity. The part // can be an entity or purely a part of the message between two entities or // message start/end. @@ -1096,6 +1354,33 @@ message ResponseMessage { } + // Represents an audio message that is composed of both segments + // synthesized from the Dialogflow agent prompts and ones hosted externally + // at the specified URIs. + message MixedAudio { + // Represents one segment of audio. + message Segment { + // Content of the segment. + oneof content { + // Raw audio synthesized from the Dialogflow agent's response using + // the output config specified in the request. + bytes audio = 1; + + // Client-specific URI that points to an audio clip accessible to the + // client. + string uri = 2; + } + + // Whether the playback of this segment can be interrupted by the end + // user's speech and the client should then start the next Dialogflow + // request. + bool allow_playback_interruption = 3; + } + + // Segments this audio response is composed of. + repeated Segment segments = 1; + } + // Represents the signal that telles the client to transfer the phone call // connected to the agent to a third-party endpoint. message TelephonyTransferCall { @@ -1125,6 +1410,10 @@ message ResponseMessage { // ended. EndInteraction end_interaction = 4; + // An audio response message composed of both the synthesized Dialogflow + // agent responses and the audios hosted in places known to the client. + MixedAudio mixed_audio = 5; + // A signal that the client should transfer the phone call connected to // this agent to a third-party endpoint. TelephonyTransferCall telephony_transfer_call = 6; diff --git a/google/cloud/dialogflow/v2beta1/session.proto b/google/cloud/dialogflow/v2beta1/session.proto index ac4ff4316..ac64e7127 100644 --- a/google/cloud/dialogflow/v2beta1/session.proto +++ b/google/cloud/dialogflow/v2beta1/session.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -23,7 +23,6 @@ import "google/api/resource.proto"; import "google/cloud/dialogflow/v2beta1/agent.proto"; import "google/cloud/dialogflow/v2beta1/audio_config.proto"; import "google/cloud/dialogflow/v2beta1/context.proto"; -import "google/cloud/dialogflow/v2beta1/gcs.proto"; import "google/cloud/dialogflow/v2beta1/intent.proto"; import "google/cloud/dialogflow/v2beta1/session_entity_type.proto"; import "google/protobuf/duration.proto"; @@ -357,7 +356,8 @@ message QueryResult { bool all_required_params_present = 5; // Indicates whether the conversational query triggers a cancellation for slot - // filling. + // filling. For more information, see the [cancel slot filling + // documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel). bool cancels_slot_filling = 21; // The text to be pronounced to the user or shown on the screen. @@ -754,7 +754,7 @@ message StreamingRecognitionResult { // Represents the natural language text to be processed. message TextInput { // Required. The UTF-8 encoded natural language text to be processed. - // Text length must not exceed 256 characters. + // Text length must not exceed 256 characters for virtual agent interactions. string text = 1; // Required. The language of this conversational query. See [Language @@ -795,6 +795,11 @@ message EventInput { // Support](https://cloud.google.com/dialogflow/docs/reference/language) // for a list of the currently supported language codes. Note that queries in // the same session do not necessarily need to specify the same language. + // + // This field is ignored when used in the context of a + // [WebhookResponse.followup_event_input][google.cloud.dialogflow.v2beta1.WebhookResponse.followup_event_input] field, + // because the language was already defined in the originating detect + // intent request. string language_code = 3; } diff --git a/google/cloud/dialogflow/v2beta1/session_entity_type.proto b/google/cloud/dialogflow/v2beta1/session_entity_type.proto index c38902b31..4b1c5873d 100644 --- a/google/cloud/dialogflow/v2beta1/session_entity_type.proto +++ b/google/cloud/dialogflow/v2beta1/session_entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2beta1/validation_result.proto b/google/cloud/dialogflow/v2beta1/validation_result.proto index 2daeaf329..d3882b9fa 100644 --- a/google/cloud/dialogflow/v2beta1/validation_result.proto +++ b/google/cloud/dialogflow/v2beta1/validation_result.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2beta1; -import "google/api/annotations.proto"; - option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.V2beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1;dialogflow"; diff --git a/google/cloud/dialogflow/v2beta1/version.proto b/google/cloud/dialogflow/v2beta1/version.proto index e3752610e..58b4b5bbf 100644 --- a/google/cloud/dialogflow/v2beta1/version.proto +++ b/google/cloud/dialogflow/v2beta1/version.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/dialogflow/v2beta1/webhook.proto b/google/cloud/dialogflow/v2beta1/webhook.proto index 293e55101..a566c5ccc 100644 --- a/google/cloud/dialogflow/v2beta1/webhook.proto +++ b/google/cloud/dialogflow/v2beta1/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.dialogflow.v2beta1; -import "google/api/annotations.proto"; import "google/cloud/dialogflow/v2beta1/context.proto"; import "google/cloud/dialogflow/v2beta1/intent.proto"; import "google/cloud/dialogflow/v2beta1/session.proto"; diff --git a/google/cloud/discoveryengine/v1beta/BUILD.bazel b/google/cloud/discoveryengine/v1beta/BUILD.bazel new file mode 100644 index 000000000..bcf89d20b --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/BUILD.bazel @@ -0,0 +1,406 @@ +# 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 = "discoveryengine_proto", + srcs = [ + "common.proto", + "document.proto", + "document_service.proto", + "import_config.proto", + "recommendation_service.proto", + "user_event.proto", + "user_event_service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:httpbody_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "//google/rpc:status_proto", + "//google/type:date_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:struct_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "discoveryengine_proto_with_info", + deps = [ + ":discoveryengine_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "discoveryengine_java_proto", + deps = [":discoveryengine_proto"], +) + +java_grpc_library( + name = "discoveryengine_java_grpc", + srcs = [":discoveryengine_proto"], + deps = [":discoveryengine_java_proto"], +) + +java_gapic_library( + name = "discoveryengine_java_gapic", + srcs = [":discoveryengine_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "discoveryengine_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "discoveryengine_v1beta.yaml", + test_deps = [ + ":discoveryengine_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":discoveryengine_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "discoveryengine_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.discoveryengine.v1beta.DocumentServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.DocumentServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.RecommendationServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.RecommendationServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.UserEventServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.UserEventServiceClientTest", + ], + runtime_deps = [":discoveryengine_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-discoveryengine-v1beta-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":discoveryengine_java_gapic", + ":discoveryengine_java_grpc", + ":discoveryengine_java_proto", + ":discoveryengine_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "discoveryengine_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta", + protos = [":discoveryengine_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/api:httpbody_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/rpc:status_go_proto", + "//google/type:date_go_proto", + ], +) + +go_gapic_library( + name = "discoveryengine_go_gapic", + srcs = [":discoveryengine_proto_with_info"], + grpc_service_config = "discoveryengine_grpc_service_config.json", + importpath = "cloud.google.com/go/discoveryengine/apiv1beta;discoveryengine", + metadata = True, + rest_numeric_enums = True, + service_yaml = "discoveryengine_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":discoveryengine_go_proto", + "//google/api:httpbody_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", + ], +) + +go_test( + name = "discoveryengine_go_gapic_test", + srcs = [":discoveryengine_go_gapic_srcjar_test"], + embed = [":discoveryengine_go_gapic"], + importpath = "cloud.google.com/go/discoveryengine/apiv1beta", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-discoveryengine-v1beta-go", + deps = [ + ":discoveryengine_go_gapic", + ":discoveryengine_go_gapic_srcjar-metadata.srcjar", + ":discoveryengine_go_gapic_srcjar-test.srcjar", + ":discoveryengine_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "discoveryengine_py_gapic", + srcs = [":discoveryengine_proto"], + grpc_service_config = "discoveryengine_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "discoveryengine_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "discoveryengine_py_gapic_test", + srcs = [ + "discoveryengine_py_gapic_pytest.py", + "discoveryengine_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":discoveryengine_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "discoveryengine-v1beta-py", + deps = [ + ":discoveryengine_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "discoveryengine_php_proto", + deps = [":discoveryengine_proto"], +) + +php_grpc_library( + name = "discoveryengine_php_grpc", + srcs = [":discoveryengine_proto"], + deps = [":discoveryengine_php_proto"], +) + +php_gapic_library( + name = "discoveryengine_php_gapic", + srcs = [":discoveryengine_proto_with_info"], + grpc_service_config = "discoveryengine_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "discoveryengine_v1beta.yaml", + deps = [ + ":discoveryengine_php_grpc", + ":discoveryengine_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-discoveryengine-v1beta-php", + deps = [ + ":discoveryengine_php_gapic", + ":discoveryengine_php_grpc", + ":discoveryengine_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "discoveryengine_nodejs_gapic", + package_name = "@google-cloud/discoveryengine", + src = ":discoveryengine_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "discoveryengine_grpc_service_config.json", + package = "google.cloud.discoveryengine.v1beta", + rest_numeric_enums = False, + service_yaml = "discoveryengine_v1beta.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "discoveryengine-v1beta-nodejs", + deps = [ + ":discoveryengine_nodejs_gapic", + ":discoveryengine_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 = "discoveryengine_ruby_proto", + deps = [":discoveryengine_proto"], +) + +ruby_grpc_library( + name = "discoveryengine_ruby_grpc", + srcs = [":discoveryengine_proto"], + deps = [":discoveryengine_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "discoveryengine_ruby_gapic", + srcs = [":discoveryengine_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-discoveryengine-v1beta"], + grpc_service_config = "discoveryengine_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "discoveryengine_v1beta.yaml", + deps = [ + ":discoveryengine_ruby_grpc", + ":discoveryengine_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-discoveryengine-v1beta-ruby", + deps = [ + ":discoveryengine_ruby_gapic", + ":discoveryengine_ruby_grpc", + ":discoveryengine_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 = "discoveryengine_csharp_proto", + deps = [":discoveryengine_proto"], +) + +csharp_grpc_library( + name = "discoveryengine_csharp_grpc", + srcs = [":discoveryengine_proto"], + deps = [":discoveryengine_csharp_proto"], +) + +csharp_gapic_library( + name = "discoveryengine_csharp_gapic", + srcs = [":discoveryengine_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "discoveryengine_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "discoveryengine_v1beta.yaml", + deps = [ + ":discoveryengine_csharp_grpc", + ":discoveryengine_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-discoveryengine-v1beta-csharp", + deps = [ + ":discoveryengine_csharp_gapic", + ":discoveryengine_csharp_grpc", + ":discoveryengine_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "discoveryengine_cc_proto", + deps = [":discoveryengine_proto"], +) + +cc_grpc_library( + name = "discoveryengine_cc_grpc", + srcs = [":discoveryengine_proto"], + grpc_only = True, + deps = [":discoveryengine_cc_proto"], +) diff --git a/google/cloud/discoveryengine/v1beta/common.proto b/google/cloud/discoveryengine/v1beta/common.proto new file mode 100644 index 000000000..0d5e187b1 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/common.proto @@ -0,0 +1,93 @@ +// 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.cloud.discoveryengine.v1beta; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta;discoveryengine"; +option java_multiple_files = true; +option java_outer_classname = "CommonProto"; +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"; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/Branch" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}" +}; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/DataStore" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}" +}; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/ServingConfig" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/servingConfigs/{serving_config}" +}; + +// A custom attribute that is not explicitly modeled in a resource, e.g. +// [UserEvent][google.cloud.discoveryengine.v1beta.UserEvent]. +message CustomAttribute { + // The textual values of this custom attribute. For example, `["yellow", + // "green"]` when the key is "color". + // + // Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is + // returned. + // + // Exactly one of + // [text][google.cloud.discoveryengine.v1beta.CustomAttribute.text] or + // [numbers][google.cloud.discoveryengine.v1beta.CustomAttribute.numbers] + // should be set. Otherwise, an INVALID_ARGUMENT error is returned. + repeated string text = 1; + + // The numerical values of this custom attribute. For example, `[2.3, 15.4]` + // when the key is "lengths_cm". + // + // Exactly one of + // [text][google.cloud.discoveryengine.v1beta.CustomAttribute.text] or + // [numbers][google.cloud.discoveryengine.v1beta.CustomAttribute.numbers] + // should be set. Otherwise, an INVALID_ARGUMENT error is returned. + repeated double numbers = 2; +} + +// Information of an end user. +message UserInfo { + // Highly recommended for logged-in users. Unique identifier for logged-in + // user, such as a user name. Don't set for anonymous users. + // + // Always use a hashed value for this ID. + // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded + // model quality. + // + // 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_id = 1; + + // User agent as included in the HTTP header. Required for getting + // [SearchResponse.sponsored_results][]. + // + // The field must be a UTF-8 encoded string with a length limit of 1,000 + // characters. Otherwise, an INVALID_ARGUMENT error is returned. + // + // This should not be set when using the client side event reporting with + // GTM or JavaScript tag in + // [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent] + // or if [direct_user_request][] is set. + string user_agent = 2; +} diff --git a/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json b/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json new file mode 100644 index 000000000..087d1eae9 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json @@ -0,0 +1,52 @@ +{ + "methodConfig": [ + { + "name": [ + { "service": "google.cloud.discoveryengine.v1beta.RecommendationService" } + ], + "timeout": "5s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "5s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.discoveryengine.v1beta.DocumentService" }, + { "service": "google.cloud.discoveryengine.v1beta.UserEventService" } + ], + "timeout": "30s", + "retryPolicy": { + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.discoveryengine.v1beta.DocumentService", + "method": "ImportDocuments" + }, + { + "service": "google.cloud.discoveryengine.v1beta.UserEventService", + "method": "ImportUserEvents" + }, + { + "service": "google.longrunning.Operations", + "method": "ListOperations" + } + ], + "timeout": "300s", + "retryPolicy": { + "initialBackoff": "1s", + "maxBackoff": "30s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + } + ] +} diff --git a/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml b/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml new file mode 100644 index 000000000..b9e293c27 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml @@ -0,0 +1,71 @@ +type: google.api.Service +config_version: 3 +name: discoveryengine.googleapis.com +title: Discovery Engine API + +apis: +- name: google.cloud.discoveryengine.v1beta.DocumentService +- name: google.cloud.discoveryengine.v1beta.RecommendationService +- name: google.cloud.discoveryengine.v1beta.UserEventService +- name: google.longrunning.Operations + +types: +- name: google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata +- name: google.cloud.discoveryengine.v1beta.ImportDocumentsResponse +- name: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata +- name: google.cloud.discoveryengine.v1beta.ImportUserEventsResponse + +documentation: + summary: Discovery Engine API. + +backend: + rules: + - selector: 'google.cloud.discoveryengine.v1beta.DocumentService.*' + deadline: 30.0 + - selector: google.cloud.discoveryengine.v1beta.DocumentService.ImportDocuments + deadline: 300.0 + - selector: google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent + deadline: 30.0 + - selector: google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents + deadline: 300.0 + - selector: google.cloud.discoveryengine.v1beta.UserEventService.WriteUserEvent + deadline: 30.0 + - selector: google.longrunning.Operations.ListOperations + deadline: 300.0 + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/operations/*}' + additional_bindings: + - get: '/v1beta/{name=projects/*/locations/*/dataStores/*/operations/*}' + - get: '/v1beta/{name=projects/*/locations/*/operations/*}' + - get: '/v1beta/{name=projects/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1beta/{name=projects/*/locations/*/dataStores/*}/operations' + additional_bindings: + - get: '/v1beta/{name=projects/*/locations/*}/operations' + - get: '/v1beta/{name=projects/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.discoveryengine.v1beta.DocumentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1beta.RecommendationService.Recommend + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1beta.UserEventService.*' + 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 + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/discoveryengine/v1beta/document.proto b/google/cloud/discoveryengine/v1beta/document.proto new file mode 100644 index 000000000..38c000233 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/document.proto @@ -0,0 +1,77 @@ +// 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.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta;discoveryengine"; +option java_multiple_files = true; +option java_outer_classname = "DocumentProto"; +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"; + +// Document captures all raw metadata information of items to be recommended or +// searched. +message Document { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Document" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}" + }; + + // Data representation. One of + // [struct_data][google.cloud.discoveryengine.v1beta.Document.struct_data] or + // [json_data][google.cloud.discoveryengine.v1beta.Document.json_data] should + // be provided otherwise an INVALID_ARGUMENT error is thrown. + oneof data { + // The structured JSON data for the document. It should conform to the + // registered [schema][] or an INVALID_ARGUMENT error is thrown. + google.protobuf.Struct struct_data = 4; + + // The JSON string representation of the document. It should conform to the + // registered [schema][] or an INVALID_ARGUMENT error is thrown. + string json_data = 5; + } + + // Immutable. The full resource name of the document. + // Format: + // `projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document_id}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The identifier of the document. + // + // Id should conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) + // standard with a length limit of 63 characters. + string id = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The identifier of the schema located in the same data store. + string schema_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // The identifier of the parent document. Currently supports at most two level + // document hierarchy. + // + // Id should conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) + // standard with a length limit of 63 characters. + string parent_document_id = 7; +} diff --git a/google/cloud/discoveryengine/v1beta/document_service.proto b/google/cloud/discoveryengine/v1beta/document_service.proto new file mode 100644 index 000000000..780802941 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/document_service.proto @@ -0,0 +1,261 @@ +// 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.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/document.proto"; +import "google/cloud/discoveryengine/v1beta/import_config.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta;discoveryengine"; +option java_multiple_files = true; +option java_outer_classname = "DocumentServiceProto"; +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 ingesting +// [Document][google.cloud.discoveryengine.v1beta.Document] information of the +// customer's website. +service DocumentService { + 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.v1beta.Document]. + rpc GetDocument(GetDocumentRequest) returns (Document) { + option (google.api.http) = { + get: "/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a list of [Document][google.cloud.discoveryengine.v1beta.Document]s. + rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a [Document][google.cloud.discoveryengine.v1beta.Document]. + rpc CreateDocument(CreateDocumentRequest) returns (Document) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents" + body: "document" + }; + option (google.api.method_signature) = "parent,document,document_id"; + } + + // Updates a [Document][google.cloud.discoveryengine.v1beta.Document]. + rpc UpdateDocument(UpdateDocumentRequest) returns (Document) { + option (google.api.http) = { + patch: "/v1beta/{document.name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" + body: "document" + }; + } + + // Deletes a [Document][google.cloud.discoveryengine.v1beta.Document]. + rpc DeleteDocument(DeleteDocumentRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Bulk import of multiple + // [Document][google.cloud.discoveryengine.v1beta.Document]s. Request + // processing may be synchronous. Non-existing items will be created. + // + // Note: It is possible for a subset of the + // [Document][google.cloud.discoveryengine.v1beta.Document]s to be + // successfully updated. + rpc ImportDocuments(ImportDocumentsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/documents:import" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.ImportDocumentsResponse" + metadata_type: "google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata" + }; + } +} + +// Request message for +// [DocumentService.GetDocument][google.cloud.discoveryengine.v1beta.DocumentService.GetDocument] +// method. +message GetDocumentRequest { + // Required. Full resource name of + // [Document][google.cloud.discoveryengine.v1beta.Document], such as + // `projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}`. + // + // If the caller does not have permission to access the + // [Document][google.cloud.discoveryengine.v1beta.Document], regardless of + // whether or not it exists, a PERMISSION_DENIED error is returned. + // + // If the requested [Document][google.cloud.discoveryengine.v1beta.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" + } + ]; +} + +// Request message for +// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments] +// method. +message ListDocumentsRequest { + // Required. The parent branch resource name, such as + // `projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}`. + // Use `default_branch` as the branch ID, to list documents under the default + // branch. + // + // If the caller does not have permission to list [Documents][]s under this + // branch, regardless of whether or not this branch exists, a + // PERMISSION_DENIED error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Branch" + } + ]; + + // 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. + // + // If this field is negative, an INVALID_ARGUMENT error is returned. + int32 page_size = 2; + + // A page token + // [ListDocumentsResponse.next_page_token][google.cloud.discoveryengine.v1beta.ListDocumentsResponse.next_page_token], + // received from a previous + // [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments] + // must match the call that provided the page token. Otherwise, an + // INVALID_ARGUMENT error is returned. + string page_token = 3; +} + +// Response message for +// [DocumentService.ListDocuments][google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments] +// method. +message ListDocumentsResponse { + // The [Document][google.cloud.discoveryengine.v1beta.Document]s. + repeated Document documents = 1; + + // A token that can be sent as + // [ListDocumentsRequest.page_token][google.cloud.discoveryengine.v1beta.ListDocumentsRequest.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 +// [DocumentService.CreateDocument][google.cloud.discoveryengine.v1beta.DocumentService.CreateDocument] +// method. +message CreateDocumentRequest { + // Required. The parent resource name, such as + // `projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Branch" + } + ]; + + // Required. The [Document][google.cloud.discoveryengine.v1beta.Document] to + // create. + 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.name][google.cloud.discoveryengine.v1beta.Document.name]. + // + // If the caller does not have permission to create the + // [Document][google.cloud.discoveryengine.v1beta.Document], regardless of + // whether or not it exists, a PERMISSION_DENIED error is returned. + // + // This field must be unique among all + // [Document][google.cloud.discoveryengine.v1beta.Document]s with the same + // [parent][google.cloud.discoveryengine.v1beta.CreateDocumentRequest.parent]. + // Otherwise, an ALREADY_EXISTS error is returned. + // + // This field must conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) + // standard with a length limit of 63 characters. Otherwise, an + // INVALID_ARGUMENT error is returned. + string document_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [DocumentService.UpdateDocument][google.cloud.discoveryengine.v1beta.DocumentService.UpdateDocument] +// method. +message UpdateDocumentRequest { + // Required. The document to update/create. + // + // If the caller does not have permission to update the + // [Document][google.cloud.discoveryengine.v1beta.Document], regardless of + // whether or not it exists, a PERMISSION_DENIED error is returned. + // + // If the [Document][google.cloud.discoveryengine.v1beta.Document] to update + // does not exist and + // [allow_missing][google.cloud.discoveryengine.v1beta.UpdateDocumentRequest.allow_missing] + // is not set, a NOT_FOUND error is returned. + Document document = 1 [(google.api.field_behavior) = REQUIRED]; + + // 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. + bool allow_missing = 2; +} + +// Request message for +// [DocumentService.DeleteDocument][google.cloud.discoveryengine.v1beta.DocumentService.DeleteDocument] +// method. +message DeleteDocumentRequest { + // Required. Full resource name of + // [Document][google.cloud.discoveryengine.v1beta.Document], such as + // `projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}`. + // + // If the caller does not have permission to delete the + // [Document][google.cloud.discoveryengine.v1beta.Document], regardless of + // whether or not it exists, a PERMISSION_DENIED error is returned. + // + // If the [Document][google.cloud.discoveryengine.v1beta.Document] to delete + // 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" + } + ]; +} diff --git a/google/cloud/discoveryengine/v1beta/import_config.proto b/google/cloud/discoveryengine/v1beta/import_config.proto new file mode 100644 index 000000000..4ed571e38 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/import_config.proto @@ -0,0 +1,265 @@ +// 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.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/document.proto"; +import "google/cloud/discoveryengine/v1beta/user_event.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/type/date.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta;discoveryengine"; +option java_multiple_files = true; +option java_outer_classname = "ImportConfigProto"; +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"; + +// Google Cloud Storage location for input content. +// format. +message GcsSource { + // Required. Google Cloud Storage URIs to input files. 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`. A request can + // contain at most 100 files, and each file can be up to 2 GB. + repeated string input_uris = 1 [(google.api.field_behavior) = REQUIRED]; + + // The schema to use when parsing the data from the source. + // + // Supported values for imports: + // + // * `user_event` (default): One JSON + // [UserEvent][google.cloud.discoveryengine.v1beta.UserEvent] per line. + // + // * `document` (default): One JSON + // [Document][google.cloud.discoveryengine.v1beta.Document] per line. Each + // document must + // have a valid + // [Document.id][google.cloud.discoveryengine.v1beta.Document.id]. + string data_schema = 2; +} + +// BigQuery source import data from. +message BigQuerySource { + // BigQuery table partition info. Leave this empty if the BigQuery table + // is not partitioned. + oneof partition { + // BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. + google.type.Date partition_date = 5; + } + + // The project ID (can be project # or ID) that the BigQuery 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 BigQuery data set to copy the data from with a length limit + // of 1,024 characters. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The BigQuery table to copy the data from with a length limit of + // 1,024 characters. + string table_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 + // BigQuery export to a specific Cloud Storage directory. + string gcs_staging_dir = 4; + + // The schema to use when parsing the data from the source. + // + // Supported values for imports: + // + // * `user_event` (default): One JSON + // [UserEvent][google.cloud.discoveryengine.v1beta.UserEvent] per line. + // + // * `document` (default): One JSON + // [Document][google.cloud.discoveryengine.v1beta.Document] per line. Each + // document must have a valid [document.id][]. + string data_schema = 6; +} + +// Configuration of destination for Import related errors. +message ImportErrorConfig { + // Required. Errors destination. + oneof destination { + // Google Cloud Storage prefix for import errors. This must be an empty, + // existing Cloud Storage directory. Import errors will be 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 the ImportUserEvents request. +message ImportUserEventsRequest { + // The inline source for the input config for ImportUserEvents method. + message InlineSource { + // Required. A list of user events to import. Recommended max of 10k items. + repeated UserEvent user_events = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // The desired input source of the user event data. + oneof source { + // Required. The Inline source for the input content for UserEvents. + InlineSource inline_source = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Google Cloud Storage location for the input content. + GcsSource gcs_source = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. BigQuery input source. + BigQuerySource bigquery_source = 4 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Parent DataStore resource name, of the form + // `projects/{project}/locations/{location}/dataStores/{data_store}` + 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. Cannot be set + // for inline user event imports. + ImportErrorConfig errors_config = 5; +} + +// Response of the ImportUserEventsRequest. 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 ImportUserEventsResponse { + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 1; + + // Echoes the destination for the complete errors if this field was set in + // the request. + ImportErrorConfig errors_config = 2; + + // Count of user events imported with complete existing Documents. + int64 joined_events_count = 3; + + // Count of user events imported, but with Document information not found + // in the existing Branch. + int64 unjoined_events_count = 4; +} + +// Metadata related to the progress of the Import operation. This will be +// returned by the google.longrunning.Operation.metadata field. +message ImportUserEventsMetadata { + // 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 processed successfully. + int64 success_count = 3; + + // Count of entries that encountered errors while processing. + int64 failure_count = 4; +} + +// Metadata related to the progress of the ImportDocuments operation. This will +// be returned by the google.longrunning.Operation.metadata field. +message ImportDocumentsMetadata { + // 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 processed successfully. + int64 success_count = 3; + + // Count of entries that encountered errors while processing. + int64 failure_count = 4; +} + +// Request message for Import methods. +message ImportDocumentsRequest { + // The inline source for the input config for ImportDocuments method. + message InlineSource { + // Required. A list of documents to update/create. Each document must have a + // valid [Document.id][google.cloud.discoveryengine.v1beta.Document.id]. + // Recommended max of 100 items. + repeated Document documents = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Indicates how imported documents are reconciled with the existing documents + // created or imported before. + enum ReconciliationMode { + // Defaults to INCREMENTAL. + RECONCILIATION_MODE_UNSPECIFIED = 0; + + // Inserts new documents or updates existing documents. + INCREMENTAL = 1; + + // Calculates diff and replaces the entire document dataset. Existing + // documents may be deleted if they are not present in the source location. + FULL = 2; + } + + // Required. The source of the input. + oneof source { + // The Inline source for the input content for documents. + InlineSource inline_source = 2; + + // Google Cloud Storage location for the input content. + GcsSource gcs_source = 3; + + // BigQuery input source. + BigQuerySource bigquery_source = 4; + } + + // Required. The parent branch resource name, such as + // `projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}`. + // Requires create/update permission. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Branch" + } + ]; + + // The desired location of errors incurred during the Import. + ImportErrorConfig errors_config = 5; + + // The mode of reconciliation between existing documents and the documents to + // be imported. Defaults to + // [ReconciliationMode.INCREMENTAL][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL]. + ReconciliationMode reconciliation_mode = 6; +} + +// Response of the +// [ImportDocumentsRequest][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest]. +// If the long running operation is done, then this message is returned by the +// google.longrunning.Operations.response field if the operation was successful. +message ImportDocumentsResponse { + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 1; + + // Echoes the destination for the complete errors in the request if set. + ImportErrorConfig errors_config = 2; +} diff --git a/google/cloud/discoveryengine/v1beta/recommendation_service.proto b/google/cloud/discoveryengine/v1beta/recommendation_service.proto new file mode 100644 index 000000000..8efe0df37 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/recommendation_service.proto @@ -0,0 +1,182 @@ +// 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.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/document.proto"; +import "google/cloud/discoveryengine/v1beta/user_event.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta;discoveryengine"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationServiceProto"; +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 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: "/v1beta/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:recommend" + body: "*" + }; + } +} + +// Request message for Recommend method. +message RecommendRequest { + // Required. Full resource name of the format: + // projects/*/locations/global/dataStores/*/servingConfigs/* + // + // Before you can request recommendations from your model, you must create at + // least one serving config for it. + 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.v1beta.UserEvent.user_pseudo_id] + // or + // [UserEvent.user_info.user_id][google.cloud.discoveryengine.v1beta.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.v1beta.UserEvent.user_pseudo_id] + // to a random unique ID and leave + // [UserEvent.user_info.user_id][google.cloud.discoveryengine.v1beta.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 will + // choose a reasonable default. The maximum allowed value is 100. Values + // above 100 will be coerced 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 your filter blocks all results, the API will return generic + // (unfiltered) popular Documents. If you only want results strictly matching + // 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 Documents with storageStatus of + // "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. + // 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 will be returned in + // [RecommendResponse.results.document][RecommendationResult.document]. + // * `returnScore`: Boolean. If set to true, the recommendation 'score' + // corresponding to each returned Document will be set in + // [RecommendResponse.results.metadata][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 + // 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. + map params = 6; +} + +// 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.v1beta.RecommendRequest.params]. + Document document = 2; + + // Additional Document metadata / annotations. + // + // Possible values: + // + // * `score`: Recommendation score in double value. Is set if + // `returnScore` is set to true in + // [RecommendRequest.params][google.cloud.discoveryengine.v1beta.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.v1beta.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.v1beta.RecommendRequest.validate_only] + // was set. + bool validate_only = 4; +} diff --git a/google/cloud/discoveryengine/v1beta/user_event.proto b/google/cloud/discoveryengine/v1beta/user_event.proto new file mode 100644 index 000000000..6a10cdbb4 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/user_event.proto @@ -0,0 +1,447 @@ +// 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.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/cloud/discoveryengine/v1beta/common.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta;discoveryengine"; +option java_multiple_files = true; +option java_outer_classname = "UserEventProto"; +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"; + +// UserEvent captures all metadata information DiscoveryEngine API needs to know +// about how end users interact with customers' website. +message UserEvent { + // Required. User event type. Allowed values are: + // + // Generic values: + // * `search`: Search for Documents. + // * `view-item`: Detailed page view of a Document. + // * `view-item-list`: View of a panel or ordered list of Documents. + // * `view-home-page`: View of the home page. + // * `view-category-page`: View of a category page, e.g. Home > Men > Jeans + // + // Retail-related values: + // * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping + // * `purchase`: Purchase an item(s) + // + // Media-related values: + // * `media-play`: Start/resume watching a video, playing a song, etc. + // * `media-complete`: Finished or stopped midway through a video, song, etc. + string event_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. A unique identifier for tracking visitors. + // + // For example, this could be implemented with an HTTP cookie, which should be + // able to uniquely identify a visitor on a single device. This unique + // identifier should not change if the visitor log in/out of the website. + // + // Do not set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded model + // quality. + // + // The field must be a UTF-8 encoded string with a length limit of 128 + // characters. Otherwise, an INVALID_ARGUMENT error is returned. + // + // The field should not contain PII or user-data. We recommend to use Google + // Analytics [Client + // ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) + // for this field. + string user_pseudo_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Only required for + // [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents] + // method. Timestamp of when the user event happened. + google.protobuf.Timestamp event_time = 3; + + // Information about the end user. + UserInfo user_info = 4; + + // Should set to true if the request is made directly from the end user, in + // which case the + // [UserEvent.user_info.user_agent][google.cloud.discoveryengine.v1beta.UserInfo.user_agent] + // can be populated from the HTTP request. + // + // This flag should be set only if the API request is made directly from the + // end user such as a mobile app (and not if a gateway or a server is + // processing and pushing the user events). + // + // This should not be set when using the JavaScript tag in + // [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent]. + bool direct_user_request = 5; + + // A unique identifier for tracking a visitor session with a length limit of + // 128 bytes. A session is an aggregation of an end user behavior in a time + // span. + // + // A general guideline to populate the sesion_id: + // 1. If user has no activity for 30 min, a new session_id should be assigned. + // 2. The session_id should be unique across users, suggest use uuid or add + // [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id] + // as prefix. + string session_id = 6; + + // Page metadata such as categories and other critical information for certain + // event types such as `view-category-page`. + PageInfo page_info = 7; + + // Token to attribute an API response to user action(s) to trigger the event. + // + // Highly recommended for user events that are the result of + // [PredictionService.Predict][]. This field enables accurate attribution of + // recommendation model performance. + // + // The value must be one of: + // + // * [PredictResponse.attribution_token][] for events that are the result of + // [PredictionService.Predict][]. + // * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1beta.SearchResponse.attribution_token] for events that are the result of + // [SearchService.Search][]. + // * [CompleteQueryResponse.attribution_token][] for events that are the + // result of [SearchService.CompleteQuery][]. + // + // 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 [PredictResponse.attribution_token][] as a URL + // parameter to product K's page. When recording events on product K's page, + // log the [PredictResponse.attribution_token][] to this field. + string attribution_token = 8; + + // The filter syntax consists of an expression language for constructing a + // predicate from one or more fields of the documents being filtered. + // + // One example is for `search` events, the associated + // [SearchService.SearchRequest][] may contain a filter expression in + // [SearchService.SearchRequest.filter][] conforming to + // https://google.aip.dev/160#filtering. + // + // Similarly, for `view-item-list` events that are generated from a + // [PredictionService.PredictRequest][], this field may be populated directly + // from [PredictionService.PredictRequest.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. + string filter = 9; + + // List of Documents associated with this user event. + // + // This field is optional except for the following event types: + // + // * `view-item` + // * `add-to-cart` + // * `purchase` + // * `media-play` + // * `media-complete` + // + // In a `search` event, this field represents the documents returned to the + // end user on the current page (the end user may have not finished browsing + // the whole page yet). When a new page is returned to the end user, after + // pagination/filtering/ordering even for the same query, a new `search` event + // with different + // [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents] + // is desired. + repeated DocumentInfo documents = 10; + + // Panel metadata associated with this user event. + PanelInfo panel = 11; + + // Search API details related to the event. + // + // This field should be set for `search` event. + SearchInfo search_info = 12; + + // CompleteQuery API details related to the event. + // + // This field should be set for `search` event when autocomplete function is + // enabled and the user clicks a suggestion for search. + CompletionInfo completion_info = 13; + + // The transaction metadata (if any) associated with this user event. + TransactionInfo transaction_info = 14; + + // 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. + repeated string tag_ids = 15; + + // The promotion IDs if this is an event associated with promotions. + // Currently, this field is restricted to at most one ID. + repeated string promotion_ids = 16; + + // Extra user event features to include in the recommendation model. + // These attributes must NOT contain data that needs to be parsed or processed + // further, e.g. JSON or other encodings. + // + // If you provide custom attributes for ingested user events, also include + // them in the user events that you associate with prediction requests. Custom + // attribute formatting must be consistent between imported events and events + // provided with prediction requests. This lets the DiscoveryEngine API use + // those custom attributes when training models and serving predictions, which + // helps improve recommendation quality. + // + // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT + // error is returned: + // + // * The key must be a UTF-8 encoded string with a length limit of 5,000 + // characters. + // * For text attributes, at most 400 values are allowed. Empty values are not + // allowed. Each value must be a UTF-8 encoded string with a length limit of + // 256 characters. + // * For number attributes, at most 400 values are allowed. + // + // For product recommendations, an example of extra user information is + // traffic_channel, which is how a user arrives at the site. Users can arrive + // at the site by coming to the site directly, coming through Google + // search, or in other ways. + map attributes = 17; + + // Media-specific info. + MediaInfo media_info = 18; +} + +// Detailed page information. +message PageInfo { + // A unique ID of a web page view. + // + // This should be kept the same for all user events triggered from the same + // pageview. For example, an item detail page view could trigger multiple + // events as the user is browsing the page. The `pageViewId` property should + // be kept the same for all these events so that they can be grouped together + // properly. + // + // When using the client side event reporting with JavaScript pixel and Google + // Tag Manager, this value is filled in automatically. + string pageview_id = 1; + + // 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 + // other character(s). + // + // Category pages include special pages such as sales or promotions. For + // instance, a special sale page may have the category hierarchy: + // "pageCategory" : "Sales > 2017 Black Friday Deals". + // + // Required for `view-category-page` events. Other event types should not set + // this field. Otherwise, an INVALID_ARGUMENT error is returned. + string page_category = 2; + + // Complete URL (window.location.href) of the user's current page. + // + // When using the client side event reporting with JavaScript pixel and Google + // Tag Manager, this value is filled in automatically. Maximum length 5,000 + // characters. + string uri = 3; + + // The referrer URL of the current page. + // + // When using the client side event reporting with JavaScript pixel and Google + // Tag Manager, this value is filled in automatically. However, some browser + // privacy restrictions may cause this field to be empty. + string referrer_uri = 4; +} + +// Detailed search information. +message SearchInfo { + // The user's search query. + // + // See + // [SearchRequest.query][google.cloud.discoveryengine.v1beta.SearchRequest.query] + // for definition. + // + // The value must be a UTF-8 encoded string with a length limit of 5,000 + // characters. Otherwise, an INVALID_ARGUMENT error is returned. + // + // At least one of + // [search_query][google.cloud.discoveryengine.v1beta.SearchInfo.search_query] + // or [page_categories][] is required for `search` events. Other event types + // should not set this field. Otherwise, an INVALID_ARGUMENT error is + // returned. + string search_query = 1; + + // The order in which products are returned, if applicable. + // + // See + // [SearchRequest.order_by][google.cloud.discoveryengine.v1beta.SearchRequest.order_by] + // for definition and syntax. + // + // The value must be a UTF-8 encoded string with a length limit of 1,000 + // characters. Otherwise, an INVALID_ARGUMENT error is returned. + // + // This can only be set for `search` events. Other event types should not set + // this field. Otherwise, an INVALID_ARGUMENT error is returned. + string order_by = 2; + + // An integer that specifies the current offset for pagination (the 0-indexed + // starting location, amongst the products deemed by the API as relevant). + // + // See + // [SearchRequest.offset][google.cloud.discoveryengine.v1beta.SearchRequest.offset] + // for definition. + // + // If this field is negative, an INVALID_ARGUMENT is returned. + // + // This can only be set for `search` events. Other event types should not set + // this field. Otherwise, an INVALID_ARGUMENT error is returned. + optional int32 offset = 3; +} + +// Detailed completion information including completion attribution token and +// clicked completion info. +message CompletionInfo { + // End user selected [CompleteQueryResponse.CompletionResult.suggestion][]. + string selected_suggestion = 1; + + // End user selected [CompleteQueryResponse.CompletionResult.suggestion][] + // position, starting from 0. + int32 selected_position = 2; +} + +// A transaction represents the entire purchase transaction. +message TransactionInfo { + // Required. Total non-zero value associated with the transaction. This value + // may include shipping, tax, or other adjustments to the total value that you + // want to include. + optional float value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Currency code. Use three-character ISO-4217 code. + string currency = 2 [(google.api.field_behavior) = REQUIRED]; + + // The transaction ID with a length limit of 128 characters. + string transaction_id = 3; + + // All the taxes associated with the transaction. + optional float tax = 4; + + // All the costs associated with the products. These can be manufacturing + // costs, shipping expenses not borne by the end user, or any other costs, + // such that: + // + // * Profit = + // [value][google.cloud.discoveryengine.v1beta.TransactionInfo.value] - + // [tax][google.cloud.discoveryengine.v1beta.TransactionInfo.tax] - + // [cost][google.cloud.discoveryengine.v1beta.TransactionInfo.cost] + optional float cost = 5; + + // The total discount(s) value applied to this transaction. + // This figure should be excluded from + // [TransactionInfo.value][google.cloud.discoveryengine.v1beta.TransactionInfo.value] + // + // For example, if a user paid + // [TransactionInfo.value][google.cloud.discoveryengine.v1beta.TransactionInfo.value] + // amount, then nominal (pre-discount) value of the transaction is the sum of + // [TransactionInfo.value][google.cloud.discoveryengine.v1beta.TransactionInfo.value] + // and + // [TransactionInfo.discount_value][google.cloud.discoveryengine.v1beta.TransactionInfo.discount_value] + // + // This means that profit is calculated the same way, regardless of the + // discount value, and that + // [TransactionInfo.discount_value][google.cloud.discoveryengine.v1beta.TransactionInfo.discount_value] + // can be larger than + // [TransactionInfo.value][google.cloud.discoveryengine.v1beta.TransactionInfo.value]: + // + // * Profit = + // [value][google.cloud.discoveryengine.v1beta.TransactionInfo.value] - + // [tax][google.cloud.discoveryengine.v1beta.TransactionInfo.tax] - + // [cost][google.cloud.discoveryengine.v1beta.TransactionInfo.cost] + optional float discount_value = 6; +} + +// Detailed document information associated with a user event. +message DocumentInfo { + // A required descriptor of the associated Document. + // + // * If [id][google.cloud.discoveryengine.v1beta.DocumentInfo.id] is + // specified, then the default values for , , and + // are used when annotating with the stored Document. + // + // * If [name][google.cloud.discoveryengine.v1beta.DocumentInfo.name] is + // specified, then the provided values (default values allowed) for + // , , and are used when annotating with + // the stored Document. + oneof document_descriptor { + // Required. The Document resource ID. + string id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Document resource full name, of the form: + // projects//locations//dataStores//branches//documents/ + string name = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // 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 + // are involved in a `add-to-cart` event. + // + // Required for events of the following event types: + // * `add-to-cart` + // * `purchase` + optional int32 quantity = 3; + + // The promotion IDs associated with this Document. + // Currently, this field is restricted to at most one ID. + repeated string promotion_ids = 4; +} + +// Detailed panel information associated with a user event. +message PanelInfo { + // The panel ID. + string panel_id = 2; + + // The display name of the panel. + string display_name = 3; + + // The ordered position of the panel, if shown to the user with other panels. + // If set, then + // [total_panels][google.cloud.discoveryengine.v1beta.PanelInfo.total_panels] + // must also be set. + optional int32 panel_position = 4; + + // The total number of panels, including this one, shown to the user. + // Must be set if + // [panel_position][google.cloud.discoveryengine.v1beta.PanelInfo.panel_position] + // is set. + optional int32 total_panels = 5; +} + +// Media-specific user event information. +message MediaInfo { + // The media progress time in seconds, if applicable. + // For example, if the end user has finished 90 seconds of a playback video, + // then [MediaInfo.media_progress_duration.seconds][Duration.seconds] should + // be set to 90. + google.protobuf.Duration media_progress_duration = 1; + + // Media progress should be computed using only the media_progress_duration + // relative to the media total length. + // + // This value must be between [0, 1.0] inclusive. + // + // If this is not a playback or the progress cannot be computed (e.g. ongoing + // livestream), this field should be unset. + optional float media_progress_percentage = 2; +} diff --git a/google/cloud/discoveryengine/v1beta/user_event_service.proto b/google/cloud/discoveryengine/v1beta/user_event_service.proto new file mode 100644 index 000000000..219005564 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/user_event_service.proto @@ -0,0 +1,122 @@ +// 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.cloud.discoveryengine.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/httpbody.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/import_config.proto"; +import "google/cloud/discoveryengine/v1beta/user_event.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/discoveryengine/v1beta;discoveryengine"; +option java_multiple_files = true; +option java_outer_classname = "UserEventServiceProto"; +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 ingesting end user actions on a website to Discovery Engine API. +service UserEventService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Writes a single user event. + rpc WriteUserEvent(WriteUserEventRequest) returns (UserEvent) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/userEvents:write" + body: "user_event" + }; + } + + // Writes a single user event from the browser. This uses a GET request to + // due to browser restriction of POST-ing to a 3rd party domain. + // + // This method is used only by the Discovery Engine API JavaScript pixel and + // Google Tag Manager. Users should not call this method directly. + rpc CollectUserEvent(CollectUserEventRequest) returns (google.api.HttpBody) { + option (google.api.http) = { + get: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/userEvents:collect" + }; + } + + // Bulk import of User events. Request processing might be + // synchronous. Events that already exist are skipped. + // Use this method for backfilling historical user events. + // + // Operation.response is of type ImportResponse. Note that it is + // possible for a subset of the items to be successfully inserted. + // Operation.metadata is of type ImportMetadata. + rpc ImportUserEvents(ImportUserEventsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/userEvents:import" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.ImportUserEventsResponse" + metadata_type: "google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata" + }; + } +} + +// Request message for WriteUserEvent method. +message WriteUserEventRequest { + // Required. The parent DataStore resource name, such as + // `projects/{project}/locations/{location}/dataStores/{data_store}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Required. User event to write. + optional UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for CollectUserEvent method. +message CollectUserEventRequest { + // Required. The parent DataStore resource name, such as + // `projects/{project}/locations/{location}/dataStores/{data_store}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Required. URL encoded UserEvent proto with a length limit of 2,000,000 + // characters. + string user_event = 2 [(google.api.field_behavior) = REQUIRED]; + + // The URL including cgi-parameters but excluding the hash fragment with a + // length limit of 5,000 characters. This is often more useful than the + // referer URL, because many browsers only send the domain for 3rd party + // requests. + optional string uri = 3; + + // The event timestamp in milliseconds. This prevents browser caching of + // otherwise identical get requests. The name is abbreviated to reduce the + // payload bytes. + optional int64 ets = 4; +} diff --git a/google/cloud/documentai/v1/BUILD.bazel b/google/cloud/documentai/v1/BUILD.bazel index 3555c6531..801ad2fe0 100644 --- a/google/cloud/documentai/v1/BUILD.bazel +++ b/google/cloud/documentai/v1/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -21,16 +21,21 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "documentai_proto", srcs = [ + "barcode.proto", "document.proto", "document_io.proto", "document_processor_service.proto", + "document_schema.proto", "geometry.proto", "operation_metadata.proto", + "processor.proto", + "processor_type.proto", ], deps = [ "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:launch_stage_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", @@ -49,6 +54,7 @@ proto_library_with_info( deps = [ ":documentai_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -78,18 +84,25 @@ java_grpc_library( java_gapic_library( name = "documentai_java_gapic", srcs = [":documentai_proto_with_info"], + gapic_yaml = None, grpc_service_config = "documentai_v1_grpc_service_config.json", + service_yaml = "documentai_v1.yaml", test_deps = [ ":documentai_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":documentai_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "documentai_java_gapic_test_suite", test_classes = [ + "com.google.cloud.documentai.v1.DocumentProcessorServiceClientHttpJsonTest", "com.google.cloud.documentai.v1.DocumentProcessorServiceClientTest", ], runtime_deps = [":documentai_java_gapic_test"], @@ -98,6 +111,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-documentai-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":documentai_java_gapic", ":documentai_java_grpc", @@ -124,6 +139,7 @@ go_proto_library( protos = [":documentai_proto"], deps = [ "//google/api:annotations_go_proto", + "//google/api:api_go_proto", "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", "//google/type:color_go_proto", @@ -139,9 +155,12 @@ go_gapic_library( srcs = [":documentai_proto_with_info"], grpc_service_config = "documentai_v1_grpc_service_config.json", importpath = "cloud.google.com/go/documentai/apiv1;documentai", + metadata = True, service_yaml = "documentai_v1.yaml", + transport = "grpc+rest", deps = [ ":documentai_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", @@ -160,6 +179,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-documentai-v1-go", deps = [ ":documentai_go_gapic", + ":documentai_go_gapic_srcjar-metadata.srcjar", ":documentai_go_gapic_srcjar-test.srcjar", ":documentai_go_proto", ], @@ -172,15 +192,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "documentai_py_gapic", srcs = [":documentai_proto"], grpc_service_config = "documentai_v1_grpc_service_config.json", - opt_args = [ - "autogen-snippets" - ] + opt_args = ["autogen-snippets"], + service_yaml = "documentai_v1.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "documentai_py_gapic_test", + srcs = [ + "documentai_py_gapic_pytest.py", + "documentai_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":documentai_py_gapic"], ) # Open Source Packages @@ -288,16 +321,17 @@ ruby_cloud_gapic_library( name = "documentai_ruby_gapic", srcs = [":documentai_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-document_ai-v1", - "ruby-cloud-env-prefix=DOCUMENT_AI", - "ruby-cloud-product-url=https://cloud.google.com/document-ai/", "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", ruby_cloud_description = "Document AI uses machine learning on a single cloud-based platform to automatically classify, extract, and enrich data within your documents to unlock insights.", ruby_cloud_title = "Document AI V1", + service_yaml = "documentai_v1.yaml", deps = [ ":documentai_ruby_grpc", ":documentai_ruby_proto", @@ -341,6 +375,7 @@ csharp_gapic_library( srcs = [":documentai_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "documentai_v1_grpc_service_config.json", + service_yaml = "documentai_v1.yaml", deps = [ ":documentai_csharp_grpc", ":documentai_csharp_proto", diff --git a/google/cloud/documentai/v1/barcode.proto b/google/cloud/documentai/v1/barcode.proto new file mode 100644 index 000000000..28e588d6c --- /dev/null +++ b/google/cloud/documentai/v1/barcode.proto @@ -0,0 +1,67 @@ +// 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.cloud.documentai.v1; + +option csharp_namespace = "Google.Cloud.DocumentAI.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai"; +option java_multiple_files = true; +option java_outer_classname = "BarcodeProto"; +option java_package = "com.google.cloud.documentai.v1"; +option php_namespace = "Google\\Cloud\\DocumentAI\\V1"; +option ruby_package = "Google::Cloud::DocumentAI::V1"; + +// Encodes the detailed information of a barcode. +message Barcode { + // Format of a barcode. + // The supported formats are: + // CODE_128: Code 128 type. + // CODE_39: Code 39 type. + // CODE_93: Code 93 type. + // CODABAR: Codabar type. + // DATA_MATRIX: 2D Data Matrix type. + // ITF: ITF type. + // EAN_13: EAN-13 type. + // EAN_8: EAN-8 type. + // QR_CODE: 2D QR code type. + // UPC_A: UPC-A type. + // UPC_E: UPC-E type. + // PDF417: PDF417 type. + // AZTEC: 2D Aztec code type. + // DATABAR: GS1 DataBar code type. + string format = 1; + + // Value format describes the format of the value that a barcode + // encodes. + // The supported formats are: + // CONTACT_INFO: Contact information. + // EMAIL: Email address. + // ISBN: ISBN identifier. + // PHONE: Phone number. + // PRODUCT: Product. + // SMS: SMS message. + // TEXT: Text string. + // URL: URL address. + // WIFI: Wifi information. + // GEO: Geo-localization. + // CALENDAR_EVENT: Calendar event. + // DRIVER_LICENSE: Driver's license. + string value_format = 2; + + // Raw value encoded in the barcode. + // For example, 'MEBKM:TITLE:Google;URL:https://www.google.com;;'. + string raw_value = 3; +} diff --git a/google/cloud/documentai/v1/document.proto b/google/cloud/documentai/v1/document.proto index 467a44921..d8bbf6b57 100644 --- a/google/cloud/documentai/v1/document.proto +++ b/google/cloud/documentai/v1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.documentai.v1; import "google/api/field_behavior.proto"; +import "google/cloud/documentai/v1/barcode.proto"; import "google/cloud/documentai/v1/geometry.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -25,7 +26,6 @@ import "google/type/date.proto"; import "google/type/datetime.proto"; import "google/type/money.proto"; import "google/type/postal_address.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai"; @@ -35,11 +35,10 @@ option java_package = "com.google.cloud.documentai.v1"; option php_namespace = "Google\\Cloud\\DocumentAI\\V1"; option ruby_package = "Google::Cloud::DocumentAI::V1"; -// Document represents the canonical document resource in Document Understanding -// AI. -// It is an interchange format that provides insights into documents and allows -// for collaboration between users and Document Understanding AI to iterate and -// optimize for quality. +// Document represents the canonical document resource in Document AI. It is an +// interchange format that provides insights into documents and allows for +// collaboration between users and Document AI to iterate and optimize for +// quality. message Document { // For a large document, sharding may be performed to produce several // document shards. Each document shard contains this field to detail which @@ -254,6 +253,15 @@ message Document { Provenance provenance = 4; } + // A detected symbol. + message Symbol { + // [Layout][google.cloud.documentai.v1.Document.Page.Layout] for [Symbol][google.cloud.documentai.v1.Document.Page.Symbol]. + Layout layout = 1; + + // A list of detected languages together with confidence. + repeated DetectedLanguage detected_languages = 2; + } + // Detected non-text visual elements e.g. checkbox, signature etc. on the // page. message VisualElement { @@ -325,15 +333,34 @@ message Document { // - "filled_checkbox" string value_type = 5; + // Created for Labeling UI to export key text. + // If corrections were made to the text identified by the + // `field_name.text_anchor`, this field will contain the correction. + string corrected_key_text = 6; + + // Created for Labeling UI to export value text. + // If corrections were made to the text identified by the + // `field_value.text_anchor`, this field will contain the correction. + string corrected_value_text = 7; + // The history of this annotation. Provenance provenance = 8; } + // A detected barcode. + message DetectedBarcode { + // [Layout][google.cloud.documentai.v1.Document.Page.Layout] for [DetectedBarcode][google.cloud.documentai.v1.Document.Page.DetectedBarcode]. + Layout layout = 1; + + // Detailed barcode information of the [DetectedBarcode][google.cloud.documentai.v1.Document.Page.DetectedBarcode]. + Barcode barcode = 2; + } + // Detected language for a structural component. message DetectedLanguage { // 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. + // https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. string language_code = 1; // Confidence of detected language. Range [0, 1]. @@ -389,17 +416,26 @@ message Document { // A list of visually detected form fields on the page. repeated FormField form_fields = 11; + // A list of visually detected symbols on the page. + repeated Symbol symbols = 12; + + // A list of detected barcodes. + repeated DetectedBarcode detected_barcodes = 15; + // The history of this page. Provenance provenance = 16; } - // A phrase in the text that is a known entity type, such as a person, an - // organization, or location. + // An entity that could be a phrase in the text or a property that belongs to + // the document. It is a known entity type, such as a person, an organization, + // or location. message Entity { // Parsed and normalized entity value. message NormalizedValue { - // Structured entity value. Must match entity type defined in schema if - // known. If this field is present, the 'text' field is still populated. + // An optional structured entity value. + // Must match entity type defined in schema if + // known. If this field is present, the `text` field could also be + // populated. oneof structured_value { // Money value. See also: // https://github.com/googleapis/googleapis/blob/master/google/type/money.proto @@ -420,26 +456,36 @@ message Document { // Boolean value. Can be used for entities with binary values, or for // checkboxes. bool boolean_value = 6; + + // Integer value. + int32 integer_value = 7; + + // Float value. + float float_value = 8; } - // Required. Normalized entity value stored as a string. This field is populated for - // supported document type (e.g. Invoice). For some entity types, one of - // respective 'structured_value' fields may also be populated. + // Optional. An optional field to store a normalized string. + // For some entity types, one of respective `structured_value` fields may + // also be populated. Also not all the types of `structured_value` will be + // normalized. For example, some processors may not generate float + // or int normalized text by default. // + // Below are sample formats mapped to structured values. // - Money/Currency type (`money_value`) is in the ISO 4217 text format. // - Date type (`date_value`) is in the ISO 8601 text format. // - Datetime type (`datetime_value`) is in the ISO 8601 text format. - string text = 1 [(google.api.field_behavior) = REQUIRED]; + string text = 1 [(google.api.field_behavior) = OPTIONAL]; } // Optional. Provenance of the entity. // Text anchor indexing into the [Document.text][google.cloud.documentai.v1.Document.text]. TextAnchor text_anchor = 1 [(google.api.field_behavior) = OPTIONAL]; - // Entity type from a schema e.g. `Address`. - string type = 2; + // Required. Entity type from a schema e.g. `Address`. + string type = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. + // Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity + // is not present in the document, this field will be empty. string mention_text = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Deprecated. Use `id` field instead. @@ -503,7 +549,8 @@ message Document { repeated TextSegment text_segments = 1; // Contains the content of the text span so that users do - // not have to look it up in the text_segments. + // not have to look it up in the text_segments. It is always + // populated for formFields. string content = 2; } @@ -569,15 +616,14 @@ message Document { // Structure to identify provenance relationships between annotations in // different revisions. message Provenance { - // Structure for referencing parent provenances. When an element replaces - // one of more other elements parent references identify the elements that - // are replaced. + // The parent element the current element is based on. Used for + // referencing/aligning, removal and replacement operations. message Parent { - // The index of the [Document.revisions] identifying the parent revision. + // The index of the index into current revision's parent_ids list. int32 revision = 1; - // The index of the parent revisions corresponding collection of items - // (eg. list of entities, properties within entities, etc.) + // The index of the parent item in the corresponding item list (eg. list + // of entities, properties within entities, etc.) in the parent revision. int32 index = 3; // The id of the parent provenance. @@ -586,19 +632,20 @@ message Document { // If a processor or agent does an explicit operation on existing elements. enum OperationType { - // Operation type unspecified. + // Operation type unspecified. If no operation is specified a provenance + // entry is simply used to match against a `parent`. OPERATION_TYPE_UNSPECIFIED = 0; - // Add an element. Implicit if no `parents` are set for the provenance. + // Add an element. ADD = 1; - // The element is removed. No `parents` should be set. + // Remove an element identified by `parent`. REMOVE = 2; - // Explicitly replaces the element(s) identified by `parents`. + // Replace an element identified by `parent`. REPLACE = 3; - // Element is requested for human review. + // Request human review for the element identified by `parent`. EVAL_REQUESTED = 4; // Element is reviewed and approved at human review, confidence will be @@ -652,7 +699,12 @@ message Document { // The revisions that this revision is based on. This can include one or // more parent (when documents are merged.) This field represents the // index into the `revisions` field. - repeated int32 parent = 2; + repeated int32 parent = 2 [deprecated = true]; + + // The revisions that this revision is based on. Must include all the ids + // that have anything to do with this revision - eg. there are + // `provenance.parent.revision` fields that index into this field. + repeated string parent_ids = 7; // The time that the revision was created. google.protobuf.Timestamp create_time = 3; @@ -700,7 +752,7 @@ message Document { // Optional. UTF-8 encoded text in reading order from the document. string text = 4 [(google.api.field_behavior) = OPTIONAL]; - // Styles for the [Document.text][google.cloud.documentai.v1.Document.text]. + // Placeholder. Styles for the [Document.text][google.cloud.documentai.v1.Document.text]. repeated Style text_styles = 5; // Visual page layout for the [Document][google.cloud.documentai.v1.Document]. @@ -710,12 +762,12 @@ message Document { // entities in this list may cross shard boundaries. repeated Entity entities = 7; - // Relationship among [Document.entities][google.cloud.documentai.v1.Document.entities]. + // Placeholder. Relationship among [Document.entities][google.cloud.documentai.v1.Document.entities]. repeated EntityRelation entity_relations = 8; - // A list of text corrections made to [Document.text]. This is usually - // used for annotating corrections to OCR mistakes. Text changes for a given - // revision may not overlap with each other. + // Placeholder. A list of text corrections made to [Document.text]. This is + // usually used for annotating corrections to OCR mistakes. Text changes for + // a given revision may not overlap with each other. repeated TextChange text_changes = 14; // Information about the sharding if this document is sharded part of a larger @@ -725,6 +777,6 @@ message Document { // Any error that occurred while processing this document. google.rpc.Status error = 10; - // Revision history of this document. + // Placeholder. Revision history of this document. repeated Revision revisions = 13; } diff --git a/google/cloud/documentai/v1/document_io.proto b/google/cloud/documentai/v1/document_io.proto index 1bd020eef..17630a035 100644 --- a/google/cloud/documentai/v1/document_io.proto +++ b/google/cloud/documentai/v1/document_io.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.documentai.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.DocumentAI.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai"; option java_multiple_files = true; diff --git a/google/cloud/documentai/v1/document_processor_service.proto b/google/cloud/documentai/v1/document_processor_service.proto index 65f0e6d96..9c944f259 100644 --- a/google/cloud/documentai/v1/document_processor_service.proto +++ b/google/cloud/documentai/v1/document_processor_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,10 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/documentai/v1/document.proto"; import "google/cloud/documentai/v1/document_io.proto"; +import "google/cloud/documentai/v1/document_schema.proto"; import "google/cloud/documentai/v1/operation_metadata.proto"; +import "google/cloud/documentai/v1/processor.proto"; +import "google/cloud/documentai/v1/processor_type.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -35,18 +38,14 @@ option java_outer_classname = "DocumentAiProcessorService"; option java_package = "com.google.cloud.documentai.v1"; option php_namespace = "Google\\Cloud\\DocumentAI\\V1"; option ruby_package = "Google::Cloud::DocumentAI::V1"; -option (google.api.resource_definition) = { - type: "documentai.googleapis.com/Location" - pattern: "projects/{project}/locations/{location}" -}; -option (google.api.resource_definition) = { - type: "documentai.googleapis.com/Processor" - pattern: "projects/{project}/locations/{location}/processors/{processor}" -}; option (google.api.resource_definition) = { type: "documentai.googleapis.com/HumanReviewConfig" pattern: "projects/{project}/locations/{location}/processors/{processor}/humanReviewConfig" }; +option (google.api.resource_definition) = { + type: "documentai.googleapis.com/Location" + pattern: "projects/{project}/locations/{location}" +}; // Service to call Cloud DocumentAI to process documents according to the // processor's definition. Processors are built using state-of-the-art Google @@ -61,6 +60,10 @@ service DocumentProcessorService { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/processors/*}:process" body: "*" + additional_bindings { + post: "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}:process" + body: "*" + } }; option (google.api.method_signature) = "name"; } @@ -71,6 +74,10 @@ service DocumentProcessorService { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/processors/*}:batchProcess" body: "*" + additional_bindings { + post: "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}:batchProcess" + body: "*" + } }; option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { @@ -79,6 +86,155 @@ service DocumentProcessorService { }; } + // Fetches processor types. Note that we do not use ListProcessorTypes here + // because it is not paginated. + rpc FetchProcessorTypes(FetchProcessorTypesRequest) returns (FetchProcessorTypesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}:fetchProcessorTypes" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists the processor types that exist. + rpc ListProcessorTypes(ListProcessorTypesRequest) returns (ListProcessorTypesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/processorTypes" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists all processors which belong to this project. + rpc ListProcessors(ListProcessorsRequest) returns (ListProcessorsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/processors" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a processor detail. + rpc GetProcessor(GetProcessorRequest) returns (Processor) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/processors/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a processor version detail. + rpc GetProcessorVersion(GetProcessorVersionRequest) returns (ProcessorVersion) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all versions of a processor. + rpc ListProcessorVersions(ListProcessorVersionsRequest) returns (ListProcessorVersionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/processors/*}/processorVersions" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes the processor version, all artifacts under the processor version + // will be deleted. + rpc DeleteProcessorVersion(DeleteProcessorVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteProcessorVersionMetadata" + }; + } + + // Deploys the processor version. + rpc DeployProcessorVersion(DeployProcessorVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}:deploy" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "DeployProcessorVersionResponse" + metadata_type: "DeployProcessorVersionMetadata" + }; + } + + // Undeploys the processor version. + rpc UndeployProcessorVersion(UndeployProcessorVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/processors/*/processorVersions/*}:undeploy" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "UndeployProcessorVersionResponse" + metadata_type: "UndeployProcessorVersionMetadata" + }; + } + + // Creates a processor from the type processor that the user chose. + // The processor will be at "ENABLED" state by default after its creation. + rpc CreateProcessor(CreateProcessorRequest) returns (Processor) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/processors" + body: "processor" + }; + option (google.api.method_signature) = "parent,processor"; + } + + // Deletes the processor, unloads all deployed model artifacts if it was + // enabled and then deletes all artifacts associated with this processor. + rpc DeleteProcessor(DeleteProcessorRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/processors/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteProcessorMetadata" + }; + } + + // Enables a processor + rpc EnableProcessor(EnableProcessorRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/processors/*}:enable" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "EnableProcessorResponse" + metadata_type: "EnableProcessorMetadata" + }; + } + + // Disables a processor + rpc DisableProcessor(DisableProcessorRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/processors/*}:disable" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "DisableProcessorResponse" + metadata_type: "DisableProcessorMetadata" + }; + } + + // Set the default (active) version of a [Processor][google.cloud.documentai.v1.Processor] that will be used in + // [ProcessDocument][google.cloud.documentai.v1.DocumentProcessorService.ProcessDocument] and + // [BatchProcessDocuments][google.cloud.documentai.v1.DocumentProcessorService.BatchProcessDocuments]. + rpc SetDefaultProcessorVersion(SetDefaultProcessorVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{processor=projects/*/locations/*/processors/*}:setDefaultProcessorVersion" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "SetDefaultProcessorVersionResponse" + metadata_type: "SetDefaultProcessorVersionMetadata" + }; + } + // Send a document for Human Review. The input document should be processed by // the specified processor. rpc ReviewDocument(ReviewDocumentRequest) returns (google.longrunning.Operation) { @@ -105,17 +261,25 @@ message ProcessRequest { RawDocument raw_document = 5; } - // Required. The processor resource name. + // Required. The resource name of the [Processor][google.cloud.documentai.v1.Processor] or + // [ProcessorVersion][google.cloud.documentai.v1.ProcessorVersion] + // to use for processing. If a [Processor][google.cloud.documentai.v1.Processor] is specified, the server will use + // its [default version][google.cloud.documentai.v1.Processor.default_processor_version]. Format: + // `projects/{project}/locations/{location}/processors/{processor}`, or + // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "documentai.googleapis.com/Processor" + type: "*" } ]; // Whether Human Review feature should be skipped for this request. Default to // false. bool skip_human_review = 3; + + // Specifies which fields to include in ProcessResponse's document. + google.protobuf.FieldMask field_mask = 6; } // The status of human review on a processed document. @@ -166,11 +330,15 @@ message ProcessResponse { // Request message for batch process document method. message BatchProcessRequest { - // Required. The processor resource name. + // Required. The resource name of [Processor][google.cloud.documentai.v1.Processor] or + // [ProcessorVersion][google.cloud.documentai.v1.ProcessorVersion]. + // Format: `projects/{project}/locations/{location}/processors/{processor}`, + // or + // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "documentai.googleapis.com/Processor" + type: "*" } ]; @@ -200,10 +368,10 @@ message BatchProcessMetadata { // document during the process. string input_gcs_source = 1; - // The status of the processing of the document. + // The status processing the document. google.rpc.Status status = 2; - // The output_gcs_destination (in the request as 'output_gcs_destination') + // The output_gcs_destination (in the request as `output_gcs_destination`) // of the processed document if it was successful, otherwise empty. string output_gcs_destination = 3; @@ -252,10 +420,315 @@ message BatchProcessMetadata { repeated IndividualProcessStatus individual_process_statuses = 5; } +// Request message for fetch processor types. +message FetchProcessorTypesRequest { + // Required. The project of processor type to list. + // The available processor types may depend on the allow-listing on projects. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "documentai.googleapis.com/ProcessorType" + } + ]; +} + +// Response message for fetch processor types. +message FetchProcessorTypesResponse { + // The list of processor types. + repeated ProcessorType processor_types = 1; +} + +// Request message for list processor types. +message ListProcessorTypesRequest { + // Required. The location of processor type to list. + // The available processor types may depend on the allow-listing on projects. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "documentai.googleapis.com/ProcessorType" + } + ]; + + // The maximum number of processor types to return. + // If unspecified, at most 100 processor types will be returned. + // The maximum value is 500; values above 500 will be coerced to 500. + int32 page_size = 2; + + // Used to retrieve the next page of results, empty if at the end of the list. + string page_token = 3; +} + +// Response message for list processor types. +message ListProcessorTypesResponse { + // The processor types. + repeated ProcessorType processor_types = 1; + + // Points to the next page, otherwise empty. + string next_page_token = 2; +} + +// Request message for list all processors belongs to a project. +message ListProcessorsRequest { + // Required. The parent (project and location) which owns this collection of Processors. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "documentai.googleapis.com/Processor" + } + ]; + + // The maximum number of processors to return. + // If unspecified, at most 50 processors will be returned. + // The maximum value is 100; values above 100 will be coerced to 100. + int32 page_size = 2; + + // We will return the processors sorted by creation time. The page token + // will point to the next processor. + string page_token = 3; +} + +// Response message for list processors. +message ListProcessorsResponse { + // The list of processors. + repeated Processor processors = 1; + + // Points to the next processor, otherwise empty. + string next_page_token = 2; +} + +// Request message for get processor. +message GetProcessorRequest { + // Required. The processor resource name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/Processor" + } + ]; +} + +// Request message for get processor version. +message GetProcessorVersionRequest { + // Required. The processor resource name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// Request message for list all processor versions belongs to a processor. +message ListProcessorVersionsRequest { + // Required. The parent (project, location and processor) to list all versions. + // Format: `projects/{project}/locations/{location}/processors/{processor}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "documentai.googleapis.com/ProcessorVersion" + } + ]; + + // The maximum number of processor versions to return. + // If unspecified, at most 10 processor versions will be returned. + // The maximum value is 20; values above 20 will be coerced to 20. + int32 page_size = 2; + + // We will return the processor versions sorted by creation time. The page + // token will point to the next processor version. + string page_token = 3; +} + +// Response message for list processors. +message ListProcessorVersionsResponse { + // The list of processors. + repeated ProcessorVersion processor_versions = 1; + + // Points to the next processor, otherwise empty. + string next_page_token = 2; +} + +// Request message for the delete processor version method. +message DeleteProcessorVersionRequest { + // Required. The processor version resource name to be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// The long running operation metadata for delete processor version method. +message DeleteProcessorVersionMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 1; +} + +// Request message for the deploy processor version method. +message DeployProcessorVersionRequest { + // Required. The processor version resource name to be deployed. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// Response message for the deploy processor version method. +message DeployProcessorVersionResponse { + +} + +// The long running operation metadata for deploy processor version method. +message DeployProcessorVersionMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 1; +} + +// Request message for the undeploy processor version method. +message UndeployProcessorVersionRequest { + // Required. The processor version resource name to be undeployed. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// Response message for the undeploy processor version method. +message UndeployProcessorVersionResponse { + +} + +// The long running operation metadata for the undeploy processor version +// method. +message UndeployProcessorVersionMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 1; +} + +// Request message for create a processor. Notice this request is sent to +// a regionalized backend service, and if the processor type is not available +// on that region, the creation will fail. +message CreateProcessorRequest { + // Required. The parent (project and location) under which to create the processor. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "documentai.googleapis.com/Processor" + } + ]; + + // Required. The processor to be created, requires [processor_type] and [display_name] + // to be set. Also, the processor is under CMEK if CMEK fields are set. + Processor processor = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the delete processor method. +message DeleteProcessorRequest { + // Required. The processor resource name to be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/Processor" + } + ]; +} + +// The long running operation metadata for delete processor method. +message DeleteProcessorMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 5; +} + +// Request message for the enable processor method. +message EnableProcessorRequest { + // Required. The processor resource name to be enabled. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/Processor" + } + ]; +} + +// Response message for the enable processor method. +// Intentionally empty proto for adding fields in future. +message EnableProcessorResponse { + +} + +// The long running operation metadata for enable processor method. +message EnableProcessorMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 5; +} + +// Request message for the disable processor method. +message DisableProcessorRequest { + // Required. The processor resource name to be disabled. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/Processor" + } + ]; +} + +// Response message for the disable processor method. +// Intentionally empty proto for adding fields in future. +message DisableProcessorResponse { + +} + +// The long running operation metadata for disable processor method. +message DisableProcessorMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 5; +} + +// Request message for the set default processor version method. +message SetDefaultProcessorVersionRequest { + // Required. The resource name of the [Processor][google.cloud.documentai.v1.Processor] to change default version. + string processor = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/Processor" + } + ]; + + // Required. The resource name of child [ProcessorVersion][google.cloud.documentai.v1.ProcessorVersion] to use as default. + // Format: + // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{version}` + string default_processor_version = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// Response message for set default processor version method. +message SetDefaultProcessorVersionResponse { + +} + +// The long running operation metadata for set default processor version +// method. +message SetDefaultProcessorVersionMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 1; +} + // Request message for review document method. message ReviewDocumentRequest { - reserved 2; - // The priority level of the human review task. enum Priority { // The default priority level. @@ -286,16 +759,41 @@ message ReviewDocumentRequest { // The priority of the human review task. Priority priority = 5; + + // The document schema of the human review task. + DocumentSchema document_schema = 6; } // Response message for review document method. message ReviewDocumentResponse { - // The Cloud Storage uri for the human reviewed document. + // Possible states of the review operation. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // The review operation is rejected by the reviewer. + REJECTED = 1; + + // The review operation is succeeded. + SUCCEEDED = 2; + } + + // The Cloud Storage uri for the human reviewed document if the review is + // succeeded. string gcs_destination = 1; + + // The state of the review operation. + State state = 2; + + // The reason why the review is rejected by reviewer. + string rejection_reason = 3; } // The long running operation metadata for review document method. message ReviewDocumentOperationMetadata { // The basic metadata of the long running operation. CommonOperationMetadata common_metadata = 5; + + // The Crowd Compute question ID. + string question_id = 6; } diff --git a/google/cloud/documentai/v1/document_schema.proto b/google/cloud/documentai/v1/document_schema.proto new file mode 100644 index 000000000..24bd42285 --- /dev/null +++ b/google/cloud/documentai/v1/document_schema.proto @@ -0,0 +1,140 @@ +// 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.cloud.documentai.v1; + +option csharp_namespace = "Google.Cloud.DocumentAI.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai"; +option java_multiple_files = true; +option java_outer_classname = "DocumentAiDocumentSchema"; +option java_package = "com.google.cloud.documentai.v1"; +option php_namespace = "Google\\Cloud\\DocumentAI\\V1"; +option ruby_package = "Google::Cloud::DocumentAI::V1"; + +// The schema defines the output of the processed document by a processor. +message DocumentSchema { + // EntityType is the wrapper of a label of the corresponding model with + // detailed attributes and limitations for entity-based processors. Multiple + // types can also compose a dependency tree to represent nested types. + message EntityType { + // Defines the a list of enum values. + message EnumValues { + // The individual values that this enum values type can include. + repeated string values = 1; + } + + // Defines properties that can be part of the entity type. + message Property { + // Types of occurrences of the entity type in the document. Note: this + // represents the number of instances of an entity types, not number of + // mentions of a given entity instance. + enum OccurrenceType { + // Unspecified occurrence type. + OCCURRENCE_TYPE_UNSPECIFIED = 0; + + // There will be zero or one instance of this entity type. + OPTIONAL_ONCE = 1; + + // The entity type will appear zero or multiple times. + OPTIONAL_MULTIPLE = 2; + + // The entity type will only appear exactly once. + REQUIRED_ONCE = 3; + + // The entity type will appear once or more times. + REQUIRED_MULTIPLE = 4; + } + + // The name of the property. Follows the same guidelines as the + // EntityType name. + string name = 1; + + // A reference to the value type of the property. This type is subject + // to the same conventions as the `Entity.base_types` field. + string value_type = 2; + + // Occurrence type limits the number of instances an entity type appears + // in the document. + OccurrenceType occurrence_type = 3; + } + + oneof value_source { + // If specified, lists all the possible values for this entity. This + // should not be more than a handful of values. If the number of values + // is >10 or could change frequently use the `EntityType.value_ontology` + // field and specify a list of all possible values in a value ontology + // file. + EnumValues enum_values = 14; + } + + // User defined name for the type. + string display_name = 13; + + // Name of the type. It must be unique within the schema file and + // cannot be a 'Common Type'. Besides that we use the following naming + // conventions: + // - *use snake_casing* + // - name matching is case-insensitive + // - Maximum 64 characters. + // - Must start with a letter. + // - Allowed characters: ASCII letters `[a-z0-9_-]`. (For backward + // compatibility internal infrastructure and tooling can handle any ascii + // character) + // - The '/' is sometimes used to denote a property of a type. For example + // line_item/amount. This convention is deprecated, but will still be + // honored for backward compatibility. + string name = 1; + + // The entity type that this type is derived from. For now, one and only + // one should be set. + repeated string base_types = 2; + + // Describing the nested structure, or composition of an entity. + repeated Property properties = 6; + } + + // Metadata for global schema behavior. + message Metadata { + // If true, a `document` entity type can be applied to subdocument ( + // splitting). Otherwise, it can only be applied to the entire document + // (classification). + bool document_splitter = 1; + + // If true, on a given page, there can be multiple `document` annotations + // covering it. + bool document_allow_multiple_labels = 2; + + // If set, all the nested entities must be prefixed with the parents. + bool prefixed_naming_on_properties = 6; + + // If set, we will skip the naming format validation in the schema. So the + // string values in `DocumentSchema.EntityType.name` and + // `DocumentSchema.EntityType.Property.name` will not be checked. + bool skip_naming_validation = 7; + } + + // Display name to show to users. + string display_name = 1; + + // Description of the schema. + string description = 2; + + // Entity types of the schema. + repeated EntityType entity_types = 3; + + // Metadata of the schema. + Metadata metadata = 4; +} diff --git a/google/cloud/documentai/v1/documentai_v1.yaml b/google/cloud/documentai/v1/documentai_v1.yaml index 1950f300d..46cecb29b 100644 --- a/google/cloud/documentai/v1/documentai_v1.yaml +++ b/google/cloud/documentai/v1/documentai_v1.yaml @@ -5,12 +5,26 @@ title: Cloud Document AI API apis: - name: google.cloud.documentai.v1.DocumentProcessorService +- name: google.cloud.location.Locations +- name: google.longrunning.Operations types: - name: google.cloud.documentai.v1.BatchProcessMetadata - name: google.cloud.documentai.v1.BatchProcessResponse +- name: google.cloud.documentai.v1.DeleteProcessorMetadata +- name: google.cloud.documentai.v1.DeleteProcessorVersionMetadata +- name: google.cloud.documentai.v1.DeployProcessorVersionMetadata +- name: google.cloud.documentai.v1.DeployProcessorVersionResponse +- name: google.cloud.documentai.v1.DisableProcessorMetadata +- name: google.cloud.documentai.v1.DisableProcessorResponse +- name: google.cloud.documentai.v1.EnableProcessorMetadata +- name: google.cloud.documentai.v1.EnableProcessorResponse - name: google.cloud.documentai.v1.ReviewDocumentOperationMetadata - name: google.cloud.documentai.v1.ReviewDocumentResponse +- name: google.cloud.documentai.v1.SetDefaultProcessorVersionMetadata +- name: google.cloud.documentai.v1.SetDefaultProcessorVersionResponse +- name: google.cloud.documentai.v1.UndeployProcessorVersionMetadata +- name: google.cloud.documentai.v1.UndeployProcessorVersionResponse documentation: summary: |- diff --git a/google/cloud/documentai/v1/geometry.proto b/google/cloud/documentai/v1/geometry.proto index 19ced5073..7471ef012 100644 --- a/google/cloud/documentai/v1/geometry.proto +++ b/google/cloud/documentai/v1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.documentai.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.DocumentAI.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai"; option java_multiple_files = true; diff --git a/google/cloud/documentai/v1/operation_metadata.proto b/google/cloud/documentai/v1/operation_metadata.proto index 503451bf2..5698b0a4f 100644 --- a/google/cloud/documentai/v1/operation_metadata.proto +++ b/google/cloud/documentai/v1/operation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.documentai.v1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai"; @@ -56,6 +55,9 @@ message CommonOperationMetadata { // A message providing more details about the current state of processing. string state_message = 2; + // A related resource to this operation. + string resource = 5; + // The creation time of the operation. google.protobuf.Timestamp create_time = 3; diff --git a/google/cloud/documentai/v1/processor.proto b/google/cloud/documentai/v1/processor.proto new file mode 100644 index 000000000..b7eb95ef3 --- /dev/null +++ b/google/cloud/documentai/v1/processor.proto @@ -0,0 +1,185 @@ +// 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.cloud.documentai.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DocumentAI.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai"; +option java_multiple_files = true; +option java_outer_classname = "DocumentAiProcessor"; +option java_package = "com.google.cloud.documentai.v1"; +option php_namespace = "Google\\Cloud\\DocumentAI\\V1"; +option ruby_package = "Google::Cloud::DocumentAI::V1"; + +// A processor version is an implementation of a processor. Each processor +// can have multiple versions, pre-trained by Google internally or up-trained +// by the customer. At a time, a processor can only have one default version +// version. So the processor's behavior (when processing documents) is defined +// by a default version +message ProcessorVersion { + option (google.api.resource) = { + type: "documentai.googleapis.com/ProcessorVersion" + pattern: "projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}" + }; + + // Information about the upcoming deprecation of this processor version. + message DeprecationInfo { + // The time at which this processor version will be deprecated. + google.protobuf.Timestamp deprecation_time = 1; + + // If set, the processor version that will be used as a replacement. + string replacement_processor_version = 2 [(google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + }]; + } + + // The possible states of the processor version. + enum State { + // The processor version is in an unspecified state. + STATE_UNSPECIFIED = 0; + + // The processor version is deployed and can be used for processing. + DEPLOYED = 1; + + // The processor version is being deployed. + DEPLOYING = 2; + + // The processor version is not deployed and cannot be used for processing. + UNDEPLOYED = 3; + + // The processor version is being undeployed. + UNDEPLOYING = 4; + + // The processor version is being created. + CREATING = 5; + + // The processor version is being deleted. + DELETING = 6; + + // The processor version failed and is in an indeterminate state. + FAILED = 7; + } + + // The resource name of the processor version. + // Format: + // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}` + string name = 1; + + // The display name of the processor version. + string display_name = 2; + + // The state of the processor version. + State state = 6; + + // The time the processor version was created. + google.protobuf.Timestamp create_time = 7; + + // The KMS key name used for encryption. + string kms_key_name = 9; + + // The KMS key version with which data is encrypted. + string kms_key_version_name = 10; + + // Denotes that this ProcessorVersion is managed by google. + bool google_managed = 11; + + // If set, information about the eventual deprecation of this version. + DeprecationInfo deprecation_info = 13; +} + +// The first-class citizen for Document AI. Each processor defines how to +// extract structural information from a document. +message Processor { + option (google.api.resource) = { + type: "documentai.googleapis.com/Processor" + pattern: "projects/{project}/locations/{location}/processors/{processor}" + }; + + // The possible states of the processor. + enum State { + // The processor is in an unspecified state. + STATE_UNSPECIFIED = 0; + + // The processor is enabled, i.e., has an enabled version which can + // currently serve processing requests and all the feature dependencies have + // been successfully initialized. + ENABLED = 1; + + // The processor is disabled. + DISABLED = 2; + + // The processor is being enabled, will become ENABLED if successful. + ENABLING = 3; + + // The processor is being disabled, will become DISABLED if successful. + DISABLING = 4; + + // The processor is being created, will become either ENABLED (for + // successful creation) or FAILED (for failed ones). + // Once a processor is in this state, it can then be used for document + // processing, but the feature dependencies of the processor might not be + // fully created yet. + CREATING = 5; + + // The processor failed during creation or initialization of feature + // dependencies. The user should delete the processor and recreate one as + // all the functionalities of the processor are disabled. + FAILED = 6; + + // The processor is being deleted, will be removed if successful. + DELETING = 7; + } + + // Output only. Immutable. The resource name of the processor. + // Format: `projects/{project}/locations/{location}/processors/{processor}` + string name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // The processor type, e.g., OCR_PROCESSOR, INVOICE_PROCESSOR, etc. + // To get a list of processors types, see + // [FetchProcessorTypes][google.cloud.documentai.v1.DocumentProcessorService.FetchProcessorTypes]. + string type = 2; + + // The display name of the processor. + string display_name = 3; + + // Output only. The state of the processor. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The default processor version. + string default_processor_version = 9 [(google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + }]; + + // Output only. Immutable. The http endpoint that can be called to invoke processing. + string process_endpoint = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // The time the processor was created. + google.protobuf.Timestamp create_time = 7; + + // The KMS key used for encryption/decryption in CMEK scenarios. + // See https://cloud.google.com/security-key-management. + string kms_key_name = 8; +} diff --git a/google/cloud/documentai/v1/processor_type.proto b/google/cloud/documentai/v1/processor_type.proto new file mode 100644 index 000000000..dd5ef4700 --- /dev/null +++ b/google/cloud/documentai/v1/processor_type.proto @@ -0,0 +1,63 @@ +// 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.cloud.documentai.v1; + +import "google/api/launch_stage.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DocumentAI.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1;documentai"; +option java_multiple_files = true; +option java_outer_classname = "DocumentAiProcessorType"; +option java_package = "com.google.cloud.documentai.v1"; +option php_namespace = "Google\\Cloud\\DocumentAI\\V1"; +option ruby_package = "Google::Cloud::DocumentAI::V1"; + +// A processor type is responsible for performing a certain document +// understanding task on a certain type of document. +message ProcessorType { + option (google.api.resource) = { + type: "documentai.googleapis.com/ProcessorType" + pattern: "projects/{project}/locations/{location}/processorTypes/{processor_type}" + }; + + // The location information about where the processor is available. + message LocationInfo { + // The location id, currently must be one of [us, eu]. + string location_id = 1; + } + + // The resource name of the processor type. + // Format: projects/{project}/processorTypes/{processor_type} + string name = 1; + + // The type of the processor, e.g., "invoice_parsing". + string type = 2; + + // The processor category, used by UI to group processor types. + string category = 3; + + // The locations in which this processor is available. + repeated LocationInfo available_locations = 4; + + // Whether the processor type allows creation. If true, users can create a + // processor of this processor type. Otherwise, users need to request access. + bool allow_creation = 6; + + // Launch stage of the processor type + google.api.LaunchStage launch_stage = 8; +} diff --git a/google/cloud/documentai/v1beta1/BUILD.bazel b/google/cloud/documentai/v1beta1/BUILD.bazel index 105381a46..cd46265e1 100644 --- a/google/cloud/documentai/v1beta1/BUILD.bazel +++ b/google/cloud/documentai/v1beta1/BUILD.bazel @@ -90,6 +90,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-documentai-v1beta1-java", + include_samples = True, deps = [ ":documentai_java_gapic", ":documentai_java_grpc", @@ -160,12 +161,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "documentai_py_gapic", srcs = [":documentai_proto"], grpc_service_config = "documentai_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "documentai_py_gapic_test", + srcs = [ + "documentai_py_gapic_pytest.py", + "documentai_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":documentai_py_gapic"], ) # Open Source Packages @@ -230,8 +243,8 @@ load( nodejs_gapic_library( name = "documentai_nodejs_gapic", - src = ":documentai_proto_with_info", package_name = "@google-cloud/documentai", + src = ":documentai_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "documentai_grpc_service_config.json", package = "google.cloud.documentai.v1beta1", @@ -252,8 +265,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -271,7 +284,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "documentai_ruby_gapic", - srcs = [":documentai_proto_with_info",], + srcs = [":documentai_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-documentai-v1beta1"], deps = [ ":documentai_ruby_grpc", @@ -316,6 +329,7 @@ csharp_gapic_library( srcs = [":documentai_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "documentai_grpc_service_config.json", + service_yaml = "//google/cloud/documentai:documentai_v1beta1.yaml", deps = [ ":documentai_csharp_grpc", ":documentai_csharp_proto", diff --git a/google/cloud/documentai/v1beta1/document.proto b/google/cloud/documentai/v1beta1/document.proto index 2c47f6f22..aa95ecc29 100644 --- a/google/cloud/documentai/v1beta1/document.proto +++ b/google/cloud/documentai/v1beta1/document.proto @@ -17,7 +17,7 @@ syntax = "proto3"; package google.cloud.documentai.v1beta1; -import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; import "google/cloud/documentai/v1beta1/geometry.proto"; import "google/rpc/status.proto"; import "google/type/color.proto"; @@ -351,8 +351,8 @@ message Document { // [Document.text][google.cloud.documentai.v1beta1.Document.text]. TextAnchor text_anchor = 1; - // Entity type from a schema e.g. `Address`. - string type = 2; + // Required. Entity type from a schema e.g. `Address`. + string type = 2 [(google.api.field_behavior) = REQUIRED]; // Text value in the document e.g. `1600 Amphitheatre Pkwy`. string mention_text = 3; diff --git a/google/cloud/documentai/v1beta1/geometry.proto b/google/cloud/documentai/v1beta1/geometry.proto index 631c179c3..5772db745 100644 --- a/google/cloud/documentai/v1beta1/geometry.proto +++ b/google/cloud/documentai/v1beta1/geometry.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.documentai.v1beta1; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta1;documentai"; diff --git a/google/cloud/documentai/v1beta2/BUILD.bazel b/google/cloud/documentai/v1beta2/BUILD.bazel index 8307a01ee..69029a54e 100644 --- a/google/cloud/documentai/v1beta2/BUILD.bazel +++ b/google/cloud/documentai/v1beta2/BUILD.bazel @@ -90,6 +90,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-documentai-v1beta2-java", + include_samples = True, deps = [ ":documentai_java_gapic", ":documentai_java_grpc", @@ -160,12 +161,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "documentai_py_gapic", srcs = [":documentai_proto"], grpc_service_config = "documentai_v1beta2_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "documentai_py_gapic_test", + srcs = [ + "documentai_py_gapic_pytest.py", + "documentai_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":documentai_py_gapic"], ) # Open Source Packages @@ -251,8 +264,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -270,7 +283,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "documentai_ruby_gapic", - srcs = [":documentai_proto_with_info",], + srcs = [":documentai_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-documentai-v1beta2"], deps = [ ":documentai_ruby_grpc", @@ -315,6 +328,7 @@ csharp_gapic_library( srcs = [":documentai_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "documentai_v1beta2_grpc_service_config.json", + service_yaml = "documentai_v1beta2.yaml", deps = [ ":documentai_csharp_grpc", ":documentai_csharp_proto", diff --git a/google/cloud/documentai/v1beta2/document.proto b/google/cloud/documentai/v1beta2/document.proto index bb3b58bad..a7255d7c1 100644 --- a/google/cloud/documentai/v1beta2/document.proto +++ b/google/cloud/documentai/v1beta2/document.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/cloud/documentai/v1beta2/geometry.proto"; import "google/rpc/status.proto"; import "google/type/color.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta2"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta2;documentai"; @@ -368,8 +367,8 @@ message Document { // Text anchor indexing into the [Document.text][google.cloud.documentai.v1beta2.Document.text]. TextAnchor text_anchor = 1; - // Entity type from a schema e.g. `Address`. - string type = 2; + // Required. Entity type from a schema e.g. `Address`. + string type = 2 [(google.api.field_behavior) = REQUIRED]; // Text value in the document e.g. `1600 Amphitheatre Pkwy`. string mention_text = 3; @@ -387,10 +386,6 @@ message Document { // Optional. Canonical id. This will be a unique value in the entity list // for this document. string id = 7 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Temporary field to store the bounding poly for short-term POCs. Used by - // the frontend only. Do not use before you talk to ybo@ and lukasr@. - BoundingPoly bounding_poly_for_demo_frontend = 8 [(google.api.field_behavior) = OPTIONAL]; } // Relationship between [Entities][google.cloud.documentai.v1beta2.Document.Entity]. @@ -421,6 +416,10 @@ message Document { // The text segments from the [Document.text][google.cloud.documentai.v1beta2.Document.text]. repeated TextSegment text_segments = 1; + + // Contains the content of the text span so that users do + // not have to look it up in the text_segments. + string content = 2; } // Referencing elements in [Document.pages][google.cloud.documentai.v1beta2.Document.pages]. diff --git a/google/cloud/documentai/v1beta2/geometry.proto b/google/cloud/documentai/v1beta2/geometry.proto index 6aff4db8c..8c97cb995 100644 --- a/google/cloud/documentai/v1beta2/geometry.proto +++ b/google/cloud/documentai/v1beta2/geometry.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.documentai.v1beta2; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta2"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta2;documentai"; diff --git a/google/cloud/documentai/v1beta3/BUILD.bazel b/google/cloud/documentai/v1beta3/BUILD.bazel index b6718e4fa..970cc901e 100644 --- a/google/cloud/documentai/v1beta3/BUILD.bazel +++ b/google/cloud/documentai/v1beta3/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -21,18 +21,21 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "documentai_proto", srcs = [ + "barcode.proto", "document.proto", "document_io.proto", "document_processor_service.proto", + "document_schema.proto", "geometry.proto", + "operation_metadata.proto", "processor.proto", "processor_type.proto", - "operation_metadata.proto", ], deps = [ "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:launch_stage_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", @@ -51,6 +54,7 @@ proto_library_with_info( deps = [ ":documentai_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -80,18 +84,25 @@ java_grpc_library( java_gapic_library( name = "documentai_java_gapic", srcs = [":documentai_proto_with_info"], + gapic_yaml = None, grpc_service_config = "documentai_v1beta3_grpc_service_config.json", + service_yaml = "documentai_v1beta3.yaml", test_deps = [ ":documentai_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":documentai_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "documentai_java_gapic_test_suite", test_classes = [ + "com.google.cloud.documentai.v1beta3.DocumentProcessorServiceClientHttpJsonTest", "com.google.cloud.documentai.v1beta3.DocumentProcessorServiceClientTest", ], runtime_deps = [":documentai_java_gapic_test"], @@ -100,6 +111,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-documentai-v1beta3-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":documentai_java_gapic", ":documentai_java_grpc", @@ -126,6 +139,7 @@ go_proto_library( protos = [":documentai_proto"], deps = [ "//google/api:annotations_go_proto", + "//google/api:api_go_proto", "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", "//google/type:color_go_proto", @@ -141,9 +155,12 @@ go_gapic_library( srcs = [":documentai_proto_with_info"], grpc_service_config = "documentai_v1beta3_grpc_service_config.json", importpath = "cloud.google.com/go/documentai/apiv1beta3;documentai", + metadata = True, service_yaml = "documentai_v1beta3.yaml", + transport = "grpc+rest", deps = [ ":documentai_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", @@ -162,6 +179,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-documentai-v1beta3-go", deps = [ ":documentai_go_gapic", + ":documentai_go_gapic_srcjar-metadata.srcjar", ":documentai_go_gapic_srcjar-test.srcjar", ":documentai_go_proto", ], @@ -174,15 +192,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "documentai_py_gapic", srcs = [":documentai_proto"], grpc_service_config = "documentai_v1beta3_grpc_service_config.json", - opt_args = [ - "autogen-snippets" - ] + opt_args = ["autogen-snippets"], + service_yaml = "documentai_v1beta3.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "documentai_py_gapic_test", + srcs = [ + "documentai_py_gapic_pytest.py", + "documentai_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":documentai_py_gapic"], ) # Open Source Packages @@ -219,6 +250,7 @@ php_gapic_library( name = "documentai_php_gapic", srcs = [":documentai_proto_with_info"], grpc_service_config = "documentai_v1beta3_grpc_service_config.json", + service_yaml = "documentai_v1beta3.yaml", deps = [ ":documentai_php_grpc", ":documentai_php_proto", @@ -289,16 +321,17 @@ ruby_cloud_gapic_library( name = "documentai_ruby_gapic", srcs = [":documentai_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-document_ai-v1beta3", - "ruby-cloud-env-prefix=DOCUMENT_AI", - "ruby-cloud-product-url=https://cloud.google.com/document-ai/", "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", ruby_cloud_description = "Document AI uses machine learning on a single cloud-based platform to automatically classify, extract, and enrich data within your documents to unlock insights.", ruby_cloud_title = "Document AI V1beta3", + service_yaml = "documentai_v1beta3.yaml", deps = [ ":documentai_ruby_grpc", ":documentai_ruby_proto", @@ -342,6 +375,7 @@ csharp_gapic_library( srcs = [":documentai_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "documentai_v1beta3_grpc_service_config.json", + service_yaml = "documentai_v1beta3.yaml", deps = [ ":documentai_csharp_grpc", ":documentai_csharp_proto", @@ -361,4 +395,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "documentai_cc_proto", + deps = [":documentai_proto"], +) + +cc_grpc_library( + name = "documentai_cc_grpc", + srcs = [":documentai_proto"], + grpc_only = True, + deps = [":documentai_cc_proto"], +) diff --git a/google/cloud/documentai/v1beta3/barcode.proto b/google/cloud/documentai/v1beta3/barcode.proto new file mode 100644 index 000000000..7c7050a86 --- /dev/null +++ b/google/cloud/documentai/v1beta3/barcode.proto @@ -0,0 +1,67 @@ +// 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.cloud.documentai.v1beta3; + +option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta3"; +option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai"; +option java_multiple_files = true; +option java_outer_classname = "BarcodeProto"; +option java_package = "com.google.cloud.documentai.v1beta3"; +option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta3"; +option ruby_package = "Google::Cloud::DocumentAI::V1beta3"; + +// Encodes the detailed information of a barcode. +message Barcode { + // Format of a barcode. + // The supported formats are: + // CODE_128: Code 128 type. + // CODE_39: Code 39 type. + // CODE_93: Code 93 type. + // CODABAR: Codabar type. + // DATA_MATRIX: 2D Data Matrix type. + // ITF: ITF type. + // EAN_13: EAN-13 type. + // EAN_8: EAN-8 type. + // QR_CODE: 2D QR code type. + // UPC_A: UPC-A type. + // UPC_E: UPC-E type. + // PDF417: PDF417 type. + // AZTEC: 2D Aztec code type. + // DATABAR: GS1 DataBar code type. + string format = 1; + + // Value format describes the format of the value that a barcode + // encodes. + // The supported formats are: + // CONTACT_INFO: Contact information. + // EMAIL: Email address. + // ISBN: ISBN identifier. + // PHONE: Phone number. + // PRODUCT: Product. + // SMS: SMS message. + // TEXT: Text string. + // URL: URL address. + // WIFI: Wifi information. + // GEO: Geo-localization. + // CALENDAR_EVENT: Calendar event. + // DRIVER_LICENSE: Driver's license. + string value_format = 2; + + // Raw value encoded in the barcode. + // For example, 'MEBKM:TITLE:Google;URL:https://www.google.com;;'. + string raw_value = 3; +} diff --git a/google/cloud/documentai/v1beta3/document.proto b/google/cloud/documentai/v1beta3/document.proto index abba3ae19..809a64ea4 100644 --- a/google/cloud/documentai/v1beta3/document.proto +++ b/google/cloud/documentai/v1beta3/document.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.documentai.v1beta3; import "google/api/field_behavior.proto"; +import "google/cloud/documentai/v1beta3/barcode.proto"; import "google/cloud/documentai/v1beta3/geometry.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -25,7 +26,6 @@ import "google/type/date.proto"; import "google/type/datetime.proto"; import "google/type/money.proto"; import "google/type/postal_address.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai"; @@ -35,11 +35,10 @@ option java_package = "com.google.cloud.documentai.v1beta3"; option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta3"; option ruby_package = "Google::Cloud::DocumentAI::V1beta3"; -// Document represents the canonical document resource in Document Understanding -// AI. -// It is an interchange format that provides insights into documents and allows -// for collaboration between users and Document Understanding AI to iterate and -// optimize for quality. +// Document represents the canonical document resource in Document AI. It is an +// interchange format that provides insights into documents and allows for +// collaboration between users and Document AI to iterate and optimize for +// quality. message Document { // For a large document, sharding may be performed to produce several // document shards. Each document shard contains this field to detail which @@ -254,6 +253,15 @@ message Document { Provenance provenance = 4; } + // A detected symbol. + message Symbol { + // [Layout][google.cloud.documentai.v1beta3.Document.Page.Layout] for [Symbol][google.cloud.documentai.v1beta3.Document.Page.Symbol]. + Layout layout = 1; + + // A list of detected languages together with confidence. + repeated DetectedLanguage detected_languages = 2; + } + // Detected non-text visual elements e.g. checkbox, signature etc. on the // page. message VisualElement { @@ -325,15 +333,34 @@ message Document { // - "filled_checkbox" string value_type = 5; + // Created for Labeling UI to export key text. + // If corrections were made to the text identified by the + // `field_name.text_anchor`, this field will contain the correction. + string corrected_key_text = 6; + + // Created for Labeling UI to export value text. + // If corrections were made to the text identified by the + // `field_value.text_anchor`, this field will contain the correction. + string corrected_value_text = 7; + // The history of this annotation. Provenance provenance = 8; } + // A detected barcode. + message DetectedBarcode { + // [Layout][google.cloud.documentai.v1beta3.Document.Page.Layout] for [DetectedBarcode][google.cloud.documentai.v1beta3.Document.Page.DetectedBarcode]. + Layout layout = 1; + + // Detailed barcode information of the [DetectedBarcode][google.cloud.documentai.v1beta3.Document.Page.DetectedBarcode]. + Barcode barcode = 2; + } + // Detected language for a structural component. message DetectedLanguage { // 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. + // https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. string language_code = 1; // Confidence of detected language. Range [0, 1]. @@ -389,17 +416,26 @@ message Document { // A list of visually detected form fields on the page. repeated FormField form_fields = 11; + // A list of visually detected symbols on the page. + repeated Symbol symbols = 12; + + // A list of detected barcodes. + repeated DetectedBarcode detected_barcodes = 15; + // The history of this page. Provenance provenance = 16; } - // A phrase in the text that is a known entity type, such as a person, an - // organization, or location. + // An entity that could be a phrase in the text or a property that belongs to + // the document. It is a known entity type, such as a person, an organization, + // or location. message Entity { // Parsed and normalized entity value. message NormalizedValue { - // Structured entity value. Must match entity type defined in schema if - // known. If this field is present, the 'text' field is still populated. + // An optional structured entity value. + // Must match entity type defined in schema if + // known. If this field is present, the `text` field could also be + // populated. oneof structured_value { // Money value. See also: // https://github.com/googleapis/googleapis/blob/master/google/type/money.proto @@ -420,26 +456,36 @@ message Document { // Boolean value. Can be used for entities with binary values, or for // checkboxes. bool boolean_value = 6; + + // Integer value. + int32 integer_value = 7; + + // Float value. + float float_value = 8; } - // Required. Normalized entity value stored as a string. This field is populated for - // supported document type (e.g. Invoice). For some entity types, one of - // respective 'structured_value' fields may also be populated. + // Optional. An optional field to store a normalized string. + // For some entity types, one of respective `structured_value` fields may + // also be populated. Also not all the types of `structured_value` will be + // normalized. For example, some processors may not generate float + // or int normalized text by default. // + // Below are sample formats mapped to structured values. // - Money/Currency type (`money_value`) is in the ISO 4217 text format. // - Date type (`date_value`) is in the ISO 8601 text format. // - Datetime type (`datetime_value`) is in the ISO 8601 text format. - string text = 1 [(google.api.field_behavior) = REQUIRED]; + string text = 1 [(google.api.field_behavior) = OPTIONAL]; } // Optional. Provenance of the entity. // Text anchor indexing into the [Document.text][google.cloud.documentai.v1beta3.Document.text]. TextAnchor text_anchor = 1 [(google.api.field_behavior) = OPTIONAL]; - // Entity type from a schema e.g. `Address`. - string type = 2; + // Required. Entity type from a schema e.g. `Address`. + string type = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. + // Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity + // is not present in the document, this field will be empty. string mention_text = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Deprecated. Use `id` field instead. @@ -503,7 +549,8 @@ message Document { repeated TextSegment text_segments = 1; // Contains the content of the text span so that users do - // not have to look it up in the text_segments. + // not have to look it up in the text_segments. It is always + // populated for formFields. string content = 2; } @@ -569,15 +616,14 @@ message Document { // Structure to identify provenance relationships between annotations in // different revisions. message Provenance { - // Structure for referencing parent provenances. When an element replaces - // one of more other elements parent references identify the elements that - // are replaced. + // The parent element the current element is based on. Used for + // referencing/aligning, removal and replacement operations. message Parent { - // The index of the [Document.revisions] identifying the parent revision. + // The index of the index into current revision's parent_ids list. int32 revision = 1; - // The index of the parent revisions corresponding collection of items - // (eg. list of entities, properties within entities, etc.) + // The index of the parent item in the corresponding item list (eg. list + // of entities, properties within entities, etc.) in the parent revision. int32 index = 3; // The id of the parent provenance. @@ -586,19 +632,20 @@ message Document { // If a processor or agent does an explicit operation on existing elements. enum OperationType { - // Operation type unspecified. + // Operation type unspecified. If no operation is specified a provenance + // entry is simply used to match against a `parent`. OPERATION_TYPE_UNSPECIFIED = 0; - // Add an element. Implicit if no `parents` are set for the provenance. + // Add an element. ADD = 1; - // The element is removed. No `parents` should be set. + // Remove an element identified by `parent`. REMOVE = 2; - // Explicitly replaces the element(s) identified by `parents`. + // Replace an element identified by `parent`. REPLACE = 3; - // Element is requested for human review. + // Request human review for the element identified by `parent`. EVAL_REQUESTED = 4; // Element is reviewed and approved at human review, confidence will be @@ -652,7 +699,12 @@ message Document { // The revisions that this revision is based on. This can include one or // more parent (when documents are merged.) This field represents the // index into the `revisions` field. - repeated int32 parent = 2; + repeated int32 parent = 2 [deprecated = true]; + + // The revisions that this revision is based on. Must include all the ids + // that have anything to do with this revision - eg. there are + // `provenance.parent.revision` fields that index into this field. + repeated string parent_ids = 7; // The time that the revision was created. google.protobuf.Timestamp create_time = 3; @@ -700,7 +752,7 @@ message Document { // Optional. UTF-8 encoded text in reading order from the document. string text = 4 [(google.api.field_behavior) = OPTIONAL]; - // Styles for the [Document.text][google.cloud.documentai.v1beta3.Document.text]. + // Placeholder. Styles for the [Document.text][google.cloud.documentai.v1beta3.Document.text]. repeated Style text_styles = 5; // Visual page layout for the [Document][google.cloud.documentai.v1beta3.Document]. @@ -710,12 +762,12 @@ message Document { // entities in this list may cross shard boundaries. repeated Entity entities = 7; - // Relationship among [Document.entities][google.cloud.documentai.v1beta3.Document.entities]. + // Placeholder. Relationship among [Document.entities][google.cloud.documentai.v1beta3.Document.entities]. repeated EntityRelation entity_relations = 8; - // A list of text corrections made to [Document.text]. This is usually - // used for annotating corrections to OCR mistakes. Text changes for a given - // revision may not overlap with each other. + // Placeholder. A list of text corrections made to [Document.text]. This is + // usually used for annotating corrections to OCR mistakes. Text changes for + // a given revision may not overlap with each other. repeated TextChange text_changes = 14; // Information about the sharding if this document is sharded part of a larger @@ -725,6 +777,6 @@ message Document { // Any error that occurred while processing this document. google.rpc.Status error = 10; - // Revision history of this document. + // Placeholder. Revision history of this document. repeated Revision revisions = 13; } diff --git a/google/cloud/documentai/v1beta3/document_io.proto b/google/cloud/documentai/v1beta3/document_io.proto index d364d4aba..a0d410c8c 100644 --- a/google/cloud/documentai/v1beta3/document_io.proto +++ b/google/cloud/documentai/v1beta3/document_io.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.documentai.v1beta3; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai"; option java_multiple_files = true; diff --git a/google/cloud/documentai/v1beta3/document_processor_service.proto b/google/cloud/documentai/v1beta3/document_processor_service.proto index e76a03164..952db5904 100644 --- a/google/cloud/documentai/v1beta3/document_processor_service.proto +++ b/google/cloud/documentai/v1beta3/document_processor_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,6 +22,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/documentai/v1beta3/document.proto"; import "google/cloud/documentai/v1beta3/document_io.proto"; +import "google/cloud/documentai/v1beta3/document_schema.proto"; import "google/cloud/documentai/v1beta3/operation_metadata.proto"; import "google/cloud/documentai/v1beta3/processor.proto"; import "google/cloud/documentai/v1beta3/processor_type.proto"; @@ -37,19 +38,14 @@ option java_outer_classname = "DocumentAiProcessorService"; option java_package = "com.google.cloud.documentai.v1beta3"; option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta3"; option ruby_package = "Google::Cloud::DocumentAI::V1beta3"; - -// (-- aip.dev/not-precedent: This is needed because we have references to -// these resources in our public API, but the resource management is not -// part of the public API (UI access only). So we have to define -// these resource here to avoid any "unable to find resources" error. --) -option (google.api.resource_definition) = { - type: "documentai.googleapis.com/Location" - pattern: "projects/{project}/locations/{location}" -}; option (google.api.resource_definition) = { type: "documentai.googleapis.com/HumanReviewConfig" pattern: "projects/{project}/locations/{location}/processors/{processor}/humanReviewConfig" }; +option (google.api.resource_definition) = { + type: "documentai.googleapis.com/Location" + pattern: "projects/{project}/locations/{location}" +}; // Service to call Cloud DocumentAI to process documents according to the // processor's definition. Processors are built using state-of-the-art Google @@ -64,6 +60,10 @@ service DocumentProcessorService { option (google.api.http) = { post: "/v1beta3/{name=projects/*/locations/*/processors/*}:process" body: "*" + additional_bindings { + post: "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}:process" + body: "*" + } }; option (google.api.method_signature) = "name"; } @@ -74,6 +74,10 @@ service DocumentProcessorService { option (google.api.http) = { post: "/v1beta3/{name=projects/*/locations/*/processors/*}:batchProcess" body: "*" + additional_bindings { + post: "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}:batchProcess" + body: "*" + } }; option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { @@ -82,7 +86,8 @@ service DocumentProcessorService { }; } - // Fetches processor types. + // Fetches processor types. Note that we do not use ListProcessorTypes here + // because it is not paginated. rpc FetchProcessorTypes(FetchProcessorTypesRequest) returns (FetchProcessorTypesResponse) { option (google.api.http) = { get: "/v1beta3/{parent=projects/*/locations/*}:fetchProcessorTypes" @@ -90,6 +95,14 @@ service DocumentProcessorService { option (google.api.method_signature) = "parent"; } + // Lists the processor types that exist. + rpc ListProcessorTypes(ListProcessorTypesRequest) returns (ListProcessorTypesResponse) { + option (google.api.http) = { + get: "/v1beta3/{parent=projects/*/locations/*}/processorTypes" + }; + option (google.api.method_signature) = "parent"; + } + // Lists all processors which belong to this project. rpc ListProcessors(ListProcessorsRequest) returns (ListProcessorsResponse) { option (google.api.http) = { @@ -98,6 +111,69 @@ service DocumentProcessorService { option (google.api.method_signature) = "parent"; } + // Gets a processor detail. + rpc GetProcessor(GetProcessorRequest) returns (Processor) { + option (google.api.http) = { + get: "/v1beta3/{name=projects/*/locations/*/processors/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a processor version detail. + rpc GetProcessorVersion(GetProcessorVersionRequest) returns (ProcessorVersion) { + option (google.api.http) = { + get: "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all versions of a processor. + rpc ListProcessorVersions(ListProcessorVersionsRequest) returns (ListProcessorVersionsResponse) { + option (google.api.http) = { + get: "/v1beta3/{parent=projects/*/locations/*/processors/*}/processorVersions" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes the processor version, all artifacts under the processor version + // will be deleted. + rpc DeleteProcessorVersion(DeleteProcessorVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteProcessorVersionMetadata" + }; + } + + // Deploys the processor version. + rpc DeployProcessorVersion(DeployProcessorVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}:deploy" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "DeployProcessorVersionResponse" + metadata_type: "DeployProcessorVersionMetadata" + }; + } + + // Undeploys the processor version. + rpc UndeployProcessorVersion(UndeployProcessorVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta3/{name=projects/*/locations/*/processors/*/processorVersions/*}:undeploy" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "UndeployProcessorVersionResponse" + metadata_type: "UndeployProcessorVersionMetadata" + }; + } + // Creates a processor from the type processor that the user chose. // The processor will be at "ENABLED" state by default after its creation. rpc CreateProcessor(CreateProcessorRequest) returns (Processor) { @@ -145,6 +221,20 @@ service DocumentProcessorService { }; } + // Set the default (active) version of a [Processor][google.cloud.documentai.v1beta3.Processor] that will be used in + // [ProcessDocument][google.cloud.documentai.v1beta3.DocumentProcessorService.ProcessDocument] and + // [BatchProcessDocuments][google.cloud.documentai.v1beta3.DocumentProcessorService.BatchProcessDocuments]. + rpc SetDefaultProcessorVersion(SetDefaultProcessorVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta3/{processor=projects/*/locations/*/processors/*}:setDefaultProcessorVersion" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "SetDefaultProcessorVersionResponse" + metadata_type: "SetDefaultProcessorVersionMetadata" + }; + } + // Send a document for Human Review. The input document should be processed by // the specified processor. rpc ReviewDocument(ReviewDocumentRequest) returns (google.longrunning.Operation) { @@ -171,11 +261,16 @@ message ProcessRequest { RawDocument raw_document = 5; } - // Required. The processor resource name. + // Required. The resource name of the [Processor][google.cloud.documentai.v1beta3.Processor] or + // [ProcessorVersion][google.cloud.documentai.v1beta3.ProcessorVersion] + // to use for processing. If a [Processor][google.cloud.documentai.v1beta3.Processor] is specified, the server will use + // its [default version][google.cloud.documentai.v1beta3.Processor.default_processor_version]. Format: + // `projects/{project}/locations/{location}/processors/{processor}`, or + // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "documentai.googleapis.com/Processor" + type: "*" } ]; @@ -185,6 +280,9 @@ message ProcessRequest { // Whether Human Review feature should be skipped for this request. Default to // false. bool skip_human_review = 3; + + // Specifies which fields to include in ProcessResponse's document. + google.protobuf.FieldMask field_mask = 6; } // The status of human review on a processed document. @@ -262,11 +360,15 @@ message BatchProcessRequest { string gcs_destination = 1; } - // Required. The processor resource name. + // Required. The resource name of [Processor][google.cloud.documentai.v1beta3.Processor] or + // [ProcessorVersion][google.cloud.documentai.v1beta3.ProcessorVersion]. + // Format: `projects/{project}/locations/{location}/processors/{processor}`, + // or + // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "documentai.googleapis.com/Processor" + type: "*" } ]; @@ -302,10 +404,10 @@ message BatchProcessMetadata { // document during the process. string input_gcs_source = 1; - // The status of the processing of the document. + // The status processing the document. google.rpc.Status status = 2; - // The output_gcs_destination (in the request as 'output_gcs_destination') + // The output_gcs_destination (in the request as `output_gcs_destination`) // of the processed document if it was successful, otherwise empty. string output_gcs_destination = 3; @@ -363,7 +465,8 @@ message BatchProcessMetadata { // Request message for fetch processor types. message FetchProcessorTypesRequest { // Required. The project of processor type to list. - // Format: projects/{project}/locations/{location} + // The available processor types may depend on the allow-listing on projects. + // Format: `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -378,10 +481,40 @@ message FetchProcessorTypesResponse { repeated ProcessorType processor_types = 1; } +// Request message for list processor types. +message ListProcessorTypesRequest { + // Required. The location of processor type to list. + // The available processor types may depend on the allow-listing on projects. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "documentai.googleapis.com/ProcessorType" + } + ]; + + // The maximum number of processor types to return. + // If unspecified, at most 100 processor types will be returned. + // The maximum value is 500; values above 500 will be coerced to 500. + int32 page_size = 2; + + // Used to retrieve the next page of results, empty if at the end of the list. + string page_token = 3; +} + +// Response message for list processor types. +message ListProcessorTypesResponse { + // The processor types. + repeated ProcessorType processor_types = 1; + + // Points to the next page, otherwise empty. + string next_page_token = 2; +} + // Request message for list all processors belongs to a project. message ListProcessorsRequest { // Required. The parent (project and location) which owns this collection of Processors. - // Format: projects/{project}/locations/{location} + // Format: `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -408,12 +541,126 @@ message ListProcessorsResponse { string next_page_token = 2; } +// Request message for get processor. +message GetProcessorRequest { + // Required. The processor resource name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/Processor" + } + ]; +} + +// Request message for get processor version. +message GetProcessorVersionRequest { + // Required. The processor resource name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// Request message for list all processor versions belongs to a processor. +message ListProcessorVersionsRequest { + // Required. The parent (project, location and processor) to list all versions. + // Format: `projects/{project}/locations/{location}/processors/{processor}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "documentai.googleapis.com/ProcessorVersion" + } + ]; + + // The maximum number of processor versions to return. + // If unspecified, at most 10 processor versions will be returned. + // The maximum value is 20; values above 20 will be coerced to 20. + int32 page_size = 2; + + // We will return the processor versions sorted by creation time. The page + // token will point to the next processor version. + string page_token = 3; +} + +// Response message for list processors. +message ListProcessorVersionsResponse { + // The list of processors. + repeated ProcessorVersion processor_versions = 1; + + // Points to the next processor, otherwise empty. + string next_page_token = 2; +} + +// Request message for the delete processor version method. +message DeleteProcessorVersionRequest { + // Required. The processor version resource name to be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// The long running operation metadata for delete processor version method. +message DeleteProcessorVersionMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 1; +} + +// Request message for the deploy processor version method. +message DeployProcessorVersionRequest { + // Required. The processor version resource name to be deployed. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// Response message for the deploy processor version method. +message DeployProcessorVersionResponse { + +} + +// The long running operation metadata for deploy processor version method. +message DeployProcessorVersionMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 1; +} + +// Request message for the undeploy processor version method. +message UndeployProcessorVersionRequest { + // Required. The processor version resource name to be undeployed. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// Response message for the undeploy processor version method. +message UndeployProcessorVersionResponse { + +} + +// The long running operation metadata for the undeploy processor version +// method. +message UndeployProcessorVersionMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 1; +} + // Request message for create a processor. Notice this request is sent to // a regionalized backend service, and if the processor type is not available // on that region, the creation will fail. message CreateProcessorRequest { // Required. The parent (project and location) under which to create the processor. - // Format: projects/{project}/locations/{location} + // Format: `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -455,6 +702,7 @@ message EnableProcessorRequest { } // Response message for the enable processor method. +// Intentionally empty proto for adding fields in future. message EnableProcessorResponse { } @@ -477,6 +725,7 @@ message DisableProcessorRequest { } // Response message for the disable processor method. +// Intentionally empty proto for adding fields in future. message DisableProcessorResponse { } @@ -487,8 +736,40 @@ message DisableProcessorMetadata { CommonOperationMetadata common_metadata = 5; } +// Request message for the set default processor version method. +message SetDefaultProcessorVersionRequest { + // Required. The resource name of the [Processor][google.cloud.documentai.v1beta3.Processor] to change default version. + string processor = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/Processor" + } + ]; + + // Required. The resource name of child [ProcessorVersion][google.cloud.documentai.v1beta3.ProcessorVersion] to use as default. + // Format: + // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{version}` + string default_processor_version = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + } + ]; +} + +// Response message for set default processor version method. +message SetDefaultProcessorVersionResponse { + +} + +// The long running operation metadata for set default processor version +// method. +message SetDefaultProcessorVersionMetadata { + // The basic metadata of the long running operation. + CommonOperationMetadata common_metadata = 1; +} + // Request message for review document method. -// Next Id: 6. message ReviewDocumentRequest { // The priority level of the human review task. enum Priority { @@ -523,12 +804,34 @@ message ReviewDocumentRequest { // The priority of the human review task. Priority priority = 5; + + // The document schema of the human review task. + DocumentSchema document_schema = 6; } // Response message for review document method. message ReviewDocumentResponse { - // The Cloud Storage uri for the human reviewed document. + // Possible states of the review operation. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // The review operation is rejected by the reviewer. + REJECTED = 1; + + // The review operation is succeeded. + SUCCEEDED = 2; + } + + // The Cloud Storage uri for the human reviewed document if the review is + // succeeded. string gcs_destination = 1; + + // The state of the review operation. + State state = 2; + + // The reason why the review is rejected by reviewer. + string rejection_reason = 3; } // The long running operation metadata for review document method. @@ -569,4 +872,7 @@ message ReviewDocumentOperationMetadata { // The basic metadata of the long running operation. CommonOperationMetadata common_metadata = 5; + + // The Crowd Compute question ID. + string question_id = 6; } diff --git a/google/cloud/documentai/v1beta3/document_schema.proto b/google/cloud/documentai/v1beta3/document_schema.proto new file mode 100644 index 000000000..214e56864 --- /dev/null +++ b/google/cloud/documentai/v1beta3/document_schema.proto @@ -0,0 +1,140 @@ +// 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.cloud.documentai.v1beta3; + +option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta3"; +option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai"; +option java_multiple_files = true; +option java_outer_classname = "DocumentAiDocumentSchema"; +option java_package = "com.google.cloud.documentai.v1beta3"; +option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta3"; +option ruby_package = "Google::Cloud::DocumentAI::V1beta3"; + +// The schema defines the output of the processed document by a processor. +message DocumentSchema { + // EntityType is the wrapper of a label of the corresponding model with + // detailed attributes and limitations for entity-based processors. Multiple + // types can also compose a dependency tree to represent nested types. + message EntityType { + // Defines the a list of enum values. + message EnumValues { + // The individual values that this enum values type can include. + repeated string values = 1; + } + + // Defines properties that can be part of the entity type. + message Property { + // Types of occurrences of the entity type in the document. Note: this + // represents the number of instances of an entity types, not number of + // mentions of a given entity instance. + enum OccurrenceType { + // Unspecified occurrence type. + OCCURRENCE_TYPE_UNSPECIFIED = 0; + + // There will be zero or one instance of this entity type. + OPTIONAL_ONCE = 1; + + // The entity type will appear zero or multiple times. + OPTIONAL_MULTIPLE = 2; + + // The entity type will only appear exactly once. + REQUIRED_ONCE = 3; + + // The entity type will appear once or more times. + REQUIRED_MULTIPLE = 4; + } + + // The name of the property. Follows the same guidelines as the + // EntityType name. + string name = 1; + + // A reference to the value type of the property. This type is subject + // to the same conventions as the `Entity.base_types` field. + string value_type = 2; + + // Occurrence type limits the number of instances an entity type appears + // in the document. + OccurrenceType occurrence_type = 3; + } + + oneof value_source { + // If specified, lists all the possible values for this entity. This + // should not be more than a handful of values. If the number of values + // is >10 or could change frequently use the `EntityType.value_ontology` + // field and specify a list of all possible values in a value ontology + // file. + EnumValues enum_values = 14; + } + + // User defined name for the type. + string display_name = 13; + + // Name of the type. It must be unique within the schema file and + // cannot be a 'Common Type'. Besides that we use the following naming + // conventions: + // - *use snake_casing* + // - name matching is case-insensitive + // - Maximum 64 characters. + // - Must start with a letter. + // - Allowed characters: ASCII letters `[a-z0-9_-]`. (For backward + // compatibility internal infrastructure and tooling can handle any ascii + // character) + // - The '/' is sometimes used to denote a property of a type. For example + // line_item/amount. This convention is deprecated, but will still be + // honored for backward compatibility. + string name = 1; + + // The entity type that this type is derived from. For now, one and only + // one should be set. + repeated string base_types = 2; + + // Describing the nested structure, or composition of an entity. + repeated Property properties = 6; + } + + // Metadata for global schema behavior. + message Metadata { + // If true, a `document` entity type can be applied to subdocument ( + // splitting). Otherwise, it can only be applied to the entire document + // (classification). + bool document_splitter = 1; + + // If true, on a given page, there can be multiple `document` annotations + // covering it. + bool document_allow_multiple_labels = 2; + + // If set, all the nested entities must be prefixed with the parents. + bool prefixed_naming_on_properties = 6; + + // If set, we will skip the naming format validation in the schema. So the + // string values in `DocumentSchema.EntityType.name` and + // `DocumentSchema.EntityType.Property.name` will not be checked. + bool skip_naming_validation = 7; + } + + // Display name to show to users. + string display_name = 1; + + // Description of the schema. + string description = 2; + + // Entity types of the schema. + repeated EntityType entity_types = 3; + + // Metadata of the schema. + Metadata metadata = 4; +} diff --git a/google/cloud/documentai/v1beta3/documentai_v1beta3.yaml b/google/cloud/documentai/v1beta3/documentai_v1beta3.yaml index 3b359434e..d38e3cda8 100644 --- a/google/cloud/documentai/v1beta3/documentai_v1beta3.yaml +++ b/google/cloud/documentai/v1beta3/documentai_v1beta3.yaml @@ -5,28 +5,61 @@ title: Cloud Document AI API apis: - name: google.cloud.documentai.v1beta3.DocumentProcessorService +- name: google.cloud.location.Locations +- name: google.longrunning.Operations types: - name: google.cloud.documentai.v1beta3.BatchProcessMetadata - name: google.cloud.documentai.v1beta3.BatchProcessResponse - name: google.cloud.documentai.v1beta3.DeleteProcessorMetadata +- name: google.cloud.documentai.v1beta3.DeleteProcessorVersionMetadata +- name: google.cloud.documentai.v1beta3.DeployProcessorVersionMetadata +- name: google.cloud.documentai.v1beta3.DeployProcessorVersionResponse - name: google.cloud.documentai.v1beta3.DisableProcessorMetadata - name: google.cloud.documentai.v1beta3.DisableProcessorResponse - name: google.cloud.documentai.v1beta3.EnableProcessorMetadata - name: google.cloud.documentai.v1beta3.EnableProcessorResponse - name: google.cloud.documentai.v1beta3.ReviewDocumentOperationMetadata - name: google.cloud.documentai.v1beta3.ReviewDocumentResponse +- name: google.cloud.documentai.v1beta3.SetDefaultProcessorVersionMetadata +- name: google.cloud.documentai.v1beta3.SetDefaultProcessorVersionResponse +- name: google.cloud.documentai.v1beta3.UndeployProcessorVersionMetadata +- name: google.cloud.documentai.v1beta3.UndeployProcessorVersionResponse documentation: summary: |- Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML. + 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. -backend: +http: rules: - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 + - selector: google.cloud.location.Locations.GetLocation + get: '/v1beta3/{name=projects/*/locations/*}' + additional_bindings: + - get: '/uiv1beta3/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1beta3/{name=projects/*}/locations' + additional_bindings: + - get: '/uiv1beta3/{name=projects/*}/locations' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1beta3/{name=projects/*/locations/*/operations/*}:cancel' + additional_bindings: + - post: '/uiv1beta3/{name=projects/*/locations/*/operations/*}:cancel' + - selector: google.longrunning.Operations.GetOperation + get: '/v1beta3/{name=projects/*/locations/*/operations/*}' + additional_bindings: + - get: '/uiv1beta3/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1beta3/{name=projects/*/locations/*/operations}' + additional_bindings: + - get: '/uiv1beta3/{name=projects/*/locations/*/operations}' authentication: rules: @@ -34,6 +67,14 @@ authentication: 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: |- diff --git a/google/cloud/documentai/v1beta3/geometry.proto b/google/cloud/documentai/v1beta3/geometry.proto index 91cd956ea..c42e0cb7a 100644 --- a/google/cloud/documentai/v1beta3/geometry.proto +++ b/google/cloud/documentai/v1beta3/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.documentai.v1beta3; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai"; option java_multiple_files = true; diff --git a/google/cloud/documentai/v1beta3/operation_metadata.proto b/google/cloud/documentai/v1beta3/operation_metadata.proto index 1d8624e8f..cd573a823 100644 --- a/google/cloud/documentai/v1beta3/operation_metadata.proto +++ b/google/cloud/documentai/v1beta3/operation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.documentai.v1beta3; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai"; @@ -56,6 +55,9 @@ message CommonOperationMetadata { // A message providing more details about the current state of processing. string state_message = 2; + // A related resource to this operation. + string resource = 5; + // The creation time of the operation. google.protobuf.Timestamp create_time = 3; diff --git a/google/cloud/documentai/v1beta3/processor.proto b/google/cloud/documentai/v1beta3/processor.proto index 61cd14a26..b7019bf4d 100644 --- a/google/cloud/documentai/v1beta3/processor.proto +++ b/google/cloud/documentai/v1beta3/processor.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,9 +18,7 @@ package google.cloud.documentai.v1beta3; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/documentai/v1beta3/document_io.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai"; @@ -30,8 +28,84 @@ option java_package = "com.google.cloud.documentai.v1beta3"; option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta3"; option ruby_package = "Google::Cloud::DocumentAI::V1beta3"; -// The first-class citizen for DocumentAI. Each processor defines how to extract -// structural information from a document. +// A processor version is an implementation of a processor. Each processor +// can have multiple versions, pre-trained by Google internally or up-trained +// by the customer. At a time, a processor can only have one default version +// version. So the processor's behavior (when processing documents) is defined +// by a default version +message ProcessorVersion { + option (google.api.resource) = { + type: "documentai.googleapis.com/ProcessorVersion" + pattern: "projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}" + }; + + // Information about the upcoming deprecation of this processor version. + message DeprecationInfo { + // The time at which this processor version will be deprecated. + google.protobuf.Timestamp deprecation_time = 1; + + // If set, the processor version that will be used as a replacement. + string replacement_processor_version = 2 [(google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + }]; + } + + // The possible states of the processor version. + enum State { + // The processor version is in an unspecified state. + STATE_UNSPECIFIED = 0; + + // The processor version is deployed and can be used for processing. + DEPLOYED = 1; + + // The processor version is being deployed. + DEPLOYING = 2; + + // The processor version is not deployed and cannot be used for processing. + UNDEPLOYED = 3; + + // The processor version is being undeployed. + UNDEPLOYING = 4; + + // The processor version is being created. + CREATING = 5; + + // The processor version is being deleted. + DELETING = 6; + + // The processor version failed and is in an indeterminate state. + FAILED = 7; + } + + // The resource name of the processor version. + // Format: + // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}` + string name = 1; + + // The display name of the processor version. + string display_name = 2; + + // The state of the processor version. + State state = 6; + + // The time the processor version was created. + google.protobuf.Timestamp create_time = 7; + + // The KMS key name used for encryption. + string kms_key_name = 9; + + // The KMS key version with which data is encrypted. + string kms_key_version_name = 10; + + // Denotes that this ProcessorVersion is managed by google. + bool google_managed = 11; + + // If set, information about the eventual deprecation of this version. + DeprecationInfo deprecation_info = 13; +} + +// The first-class citizen for Document AI. Each processor defines how to +// extract structural information from a document. message Processor { option (google.api.resource) = { type: "documentai.googleapis.com/Processor" @@ -43,7 +117,9 @@ message Processor { // The processor is in an unspecified state. STATE_UNSPECIFIED = 0; - // The processor is enabled. + // The processor is enabled, i.e., has an enabled version which can + // currently serve processing requests and all the feature dependencies have + // been successfully initialized. ENABLED = 1; // The processor is disabled. @@ -55,10 +131,16 @@ message Processor { // The processor is being disabled, will become DISABLED if successful. DISABLING = 4; - // The processor is being created. + // The processor is being created, will become either ENABLED (for + // successful creation) or FAILED (for failed ones). + // Once a processor is in this state, it can then be used for document + // processing, but the feature dependencies of the processor might not be + // fully created yet. CREATING = 5; - // The processor failed during creation. + // The processor failed during creation or initialization of feature + // dependencies. The user should delete the processor and recreate one as + // all the functionalities of the processor are disabled. FAILED = 6; // The processor is being deleted, will be removed if successful. @@ -66,13 +148,15 @@ message Processor { } // Output only. Immutable. The resource name of the processor. - // Format: projects/{project}/locations/{location}/processors/{processor} + // Format: `projects/{project}/locations/{location}/processors/{processor}` string name = 1 [ (google.api.field_behavior) = IMMUTABLE, (google.api.field_behavior) = OUTPUT_ONLY ]; - // The processor type. + // The processor type, e.g., OCR_PROCESSOR, INVOICE_PROCESSOR, etc. + // To get a list of processors types, see + // [FetchProcessorTypes][google.cloud.documentai.v1beta3.DocumentProcessorService.FetchProcessorTypes]. string type = 2; // The display name of the processor. @@ -82,7 +166,9 @@ message Processor { State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // The default processor version. - string default_processor_version = 9; + string default_processor_version = 9 [(google.api.resource_reference) = { + type: "documentai.googleapis.com/ProcessorVersion" + }]; // Output only. Immutable. The http endpoint that can be called to invoke processing. string process_endpoint = 6 [ diff --git a/google/cloud/documentai/v1beta3/processor_type.proto b/google/cloud/documentai/v1beta3/processor_type.proto index 4bd4c16ab..a2799e301 100644 --- a/google/cloud/documentai/v1beta3/processor_type.proto +++ b/google/cloud/documentai/v1beta3/processor_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,8 @@ syntax = "proto3"; package google.cloud.documentai.v1beta3; +import "google/api/launch_stage.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/cloud/documentai/v1beta3;documentai"; @@ -37,24 +37,27 @@ message ProcessorType { // The location information about where the processor is available. message LocationInfo { - // The location id. + // The location id, currently must be one of [us, eu]. string location_id = 1; } // The resource name of the processor type. + // Format: projects/{project}/processorTypes/{processor_type} string name = 1; - // The type of the processor. + // The type of the processor, e.g., "invoice_parsing". string type = 2; - // The processor category. + // The processor category, used by UI to group processor types. string category = 3; // The locations in which this processor is available. repeated LocationInfo available_locations = 4; - // Whether the processor type allows creation. If yes, user can create a - // processor of this processor type. Otherwise, user needs to require for - // whitelisting. + // Whether the processor type allows creation. If true, users can create a + // processor of this processor type. Otherwise, users need to request access. bool allow_creation = 6; + + // Launch stage of the processor type + google.api.LaunchStage launch_stage = 8; } diff --git a/google/cloud/domains/BUILD.bazel b/google/cloud/domains/BUILD.bazel index d25eca13e..052bd18a9 100644 --- a/google/cloud/domains/BUILD.bazel +++ b/google/cloud/domains/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-domains", "ruby-cloud-env-prefix=DOMAINS", - "ruby-cloud-wrapper-of=v1beta1:0.0", + "ruby-cloud-wrapper-of=v1:0.0;v1beta1:0.0", "ruby-cloud-product-url=https://cloud.google.com/domains", "ruby-cloud-api-id=domains.googleapis.com", "ruby-cloud-api-shortname=domains", diff --git a/google/cloud/domains/v1/BUILD.bazel b/google/cloud/domains/v1/BUILD.bazel index 43cefe4bd..92ac5e3e9 100644 --- a/google/cloud/domains/v1/BUILD.bazel +++ b/google/cloud/domains/v1/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":domains_java_grpc", ], + transport = "grpc+rest", deps = [ ":domains_java_proto", "//google/api:api_java_proto", @@ -86,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "domains_java_gapic_test_suite", test_classes = [ + "com.google.cloud.domains.v1.DomainsClientHttpJsonTest", "com.google.cloud.domains.v1.DomainsClientTest", ], runtime_deps = [":domains_java_gapic_test"], @@ -94,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-domains-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":domains_java_gapic", ":domains_java_grpc", @@ -133,6 +137,7 @@ go_gapic_library( importpath = "cloud.google.com/go/domains/apiv1;domains", metadata = True, service_yaml = "domains_v1.yaml", + transport = "grpc+rest", deps = [ ":domains_go_proto", "//google/longrunning:longrunning_go_proto", @@ -166,12 +171,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "domains_py_gapic", srcs = [":domains_proto"], grpc_service_config = "domains_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "domains_py_gapic_test", + srcs = [ + "domains_py_gapic_pytest.py", + "domains_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":domains_py_gapic"], ) # Open Source Packages @@ -331,6 +348,7 @@ csharp_gapic_library( srcs = [":domains_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "domains_grpc_service_config.json", + service_yaml = "domains_v1.yaml", deps = [ ":domains_csharp_grpc", ":domains_csharp_proto", diff --git a/google/cloud/domains/v1alpha2/BUILD.bazel b/google/cloud/domains/v1alpha2/BUILD.bazel index f332f4485..9281a7eae 100644 --- a/google/cloud/domains/v1alpha2/BUILD.bazel +++ b/google/cloud/domains/v1alpha2/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":domains_java_grpc", ], + transport = "grpc+rest", deps = [ ":domains_java_proto", "//google/api:api_java_proto", @@ -86,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "domains_java_gapic_test_suite", test_classes = [ + "com.google.cloud.domains.v1alpha2.DomainsClientHttpJsonTest", "com.google.cloud.domains.v1alpha2.DomainsClientTest", ], runtime_deps = [":domains_java_gapic_test"], @@ -94,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-domains-v1alpha2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":domains_java_gapic", ":domains_java_grpc", @@ -133,6 +137,7 @@ go_gapic_library( importpath = "cloud.google.com/go/domains/apiv1alpha2;domains", metadata = True, service_yaml = "domains_v1alpha2.yaml", + transport = "grpc+rest", deps = [ ":domains_go_proto", "//google/longrunning:longrunning_go_proto", @@ -166,12 +171,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "domains_py_gapic", srcs = [":domains_proto"], grpc_service_config = "domains_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "domains_py_gapic_test", + srcs = [ + "domains_py_gapic_pytest.py", + "domains_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":domains_py_gapic"], ) # Open Source Packages @@ -331,6 +348,7 @@ csharp_gapic_library( srcs = [":domains_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "domains_grpc_service_config.json", + service_yaml = "domains_v1alpha2.yaml", deps = [ ":domains_csharp_grpc", ":domains_csharp_proto", diff --git a/google/cloud/domains/v1beta1/BUILD.bazel b/google/cloud/domains/v1beta1/BUILD.bazel index d66d0ac1a..af58f8dd3 100644 --- a/google/cloud/domains/v1beta1/BUILD.bazel +++ b/google/cloud/domains/v1beta1/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":domains_java_grpc", ], + transport = "grpc+rest", deps = [ ":domains_java_proto", "//google/api:api_java_proto", @@ -86,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "domains_java_gapic_test_suite", test_classes = [ + "com.google.cloud.domains.v1beta1.DomainsClientHttpJsonTest", "com.google.cloud.domains.v1beta1.DomainsClientTest", ], runtime_deps = [":domains_java_gapic_test"], @@ -94,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-domains-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":domains_java_gapic", ":domains_java_grpc", @@ -133,6 +137,7 @@ go_gapic_library( importpath = "cloud.google.com/go/domains/apiv1beta1;domains", metadata = True, service_yaml = "domains_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":domains_go_proto", "//google/longrunning:longrunning_go_proto", @@ -166,12 +171,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "domains_py_gapic", srcs = [":domains_proto"], grpc_service_config = "domains_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "domains_py_gapic_test", + srcs = [ + "domains_py_gapic_pytest.py", + "domains_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":domains_py_gapic"], ) # Open Source Packages @@ -331,6 +348,7 @@ csharp_gapic_library( srcs = [":domains_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "domains_grpc_service_config.json", + service_yaml = "domains_v1beta1.yaml", deps = [ ":domains_csharp_grpc", ":domains_csharp_proto", diff --git a/google/cloud/edgecontainer/v1/BUILD.bazel b/google/cloud/edgecontainer/v1/BUILD.bazel new file mode 100644 index 000000000..ead93b6d4 --- /dev/null +++ b/google/cloud/edgecontainer/v1/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. + +# 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 = "edgecontainer_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/longrunning:operations_proto", + "//google/rpc:status_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "edgecontainer_proto_with_info", + deps = [ + ":edgecontainer_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "edgecontainer_java_proto", + deps = [":edgecontainer_proto"], +) + +java_grpc_library( + name = "edgecontainer_java_grpc", + srcs = [":edgecontainer_proto"], + deps = [":edgecontainer_java_proto"], +) + +java_gapic_library( + name = "edgecontainer_java_gapic", + srcs = [":edgecontainer_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "edgecontainer_grpc_service_config.json", + service_yaml = None, + test_deps = [ + ":edgecontainer_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":edgecontainer_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "edgecontainer_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.edgecontainer.v1.EdgeContainerClientHttpJsonTest", + "com.google.cloud.edgecontainer.v1.EdgeContainerClientTest", + ], + runtime_deps = [":edgecontainer_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-edgecontainer-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":edgecontainer_java_gapic", + ":edgecontainer_java_grpc", + ":edgecontainer_java_proto", + ":edgecontainer_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "edgecontainer_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/edgecontainer/v1", + protos = [":edgecontainer_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/rpc:status_go_proto", + ], +) + +go_gapic_library( + name = "edgecontainer_go_gapic", + srcs = [":edgecontainer_proto_with_info"], + grpc_service_config = "edgecontainer_grpc_service_config.json", + importpath = "cloud.google.com/go/edgecontainer/apiv1;edgecontainer", + metadata = True, + service_yaml = None, + transport = "grpc+rest", + deps = [ + ":edgecontainer_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", + ], +) + +go_test( + name = "edgecontainer_go_gapic_test", + srcs = [":edgecontainer_go_gapic_srcjar_test"], + embed = [":edgecontainer_go_gapic"], + importpath = "cloud.google.com/go/edgecontainer/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-edgecontainer-v1-go", + deps = [ + ":edgecontainer_go_gapic", + ":edgecontainer_go_gapic_srcjar-metadata.srcjar", + ":edgecontainer_go_gapic_srcjar-test.srcjar", + ":edgecontainer_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "edgecontainer_py_gapic", + srcs = [":edgecontainer_proto"], + grpc_service_config = "edgecontainer_grpc_service_config.json", + service_yaml = None, + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "edgecontainer_py_gapic_test", + srcs = [ + "edgecontainer_py_gapic_pytest.py", + "edgecontainer_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":edgecontainer_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "edgecontainer-v1-py", + deps = [ + ":edgecontainer_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "edgecontainer_php_proto", + deps = [":edgecontainer_proto"], +) + +php_grpc_library( + name = "edgecontainer_php_grpc", + srcs = [":edgecontainer_proto"], + deps = [":edgecontainer_php_proto"], +) + +php_gapic_library( + name = "edgecontainer_php_gapic", + srcs = [":edgecontainer_proto_with_info"], + grpc_service_config = "edgecontainer_grpc_service_config.json", + service_yaml = None, + deps = [ + ":edgecontainer_php_grpc", + ":edgecontainer_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-edgecontainer-v1-php", + deps = [ + ":edgecontainer_php_gapic", + ":edgecontainer_php_grpc", + ":edgecontainer_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "edgecontainer_nodejs_gapic", + package_name = "@google-cloud/edgecontainer", + src = ":edgecontainer_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "edgecontainer_grpc_service_config.json", + package = "google.cloud.edgecontainer.v1", + service_yaml = None, + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "edgecontainer-v1-nodejs", + deps = [ + ":edgecontainer_nodejs_gapic", + ":edgecontainer_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 = "edgecontainer_ruby_proto", + deps = [":edgecontainer_proto"], +) + +ruby_grpc_library( + name = "edgecontainer_ruby_grpc", + srcs = [":edgecontainer_proto"], + deps = [":edgecontainer_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "edgecontainer_ruby_gapic", + srcs = [":edgecontainer_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-edgecontainer-v1"], + grpc_service_config = "edgecontainer_grpc_service_config.json", + service_yaml = None, + deps = [ + ":edgecontainer_ruby_grpc", + ":edgecontainer_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-edgecontainer-v1-ruby", + deps = [ + ":edgecontainer_ruby_gapic", + ":edgecontainer_ruby_grpc", + ":edgecontainer_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 = "edgecontainer_csharp_proto", + deps = [":edgecontainer_proto"], +) + +csharp_grpc_library( + name = "edgecontainer_csharp_grpc", + srcs = [":edgecontainer_proto"], + deps = [":edgecontainer_csharp_proto"], +) + +csharp_gapic_library( + name = "edgecontainer_csharp_gapic", + srcs = [":edgecontainer_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "edgecontainer_grpc_service_config.json", + service_yaml = None, + deps = [ + ":edgecontainer_csharp_grpc", + ":edgecontainer_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-edgecontainer-v1-csharp", + deps = [ + ":edgecontainer_csharp_gapic", + ":edgecontainer_csharp_grpc", + ":edgecontainer_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "edgecontainer_cc_proto", + deps = [":edgecontainer_proto"], +) + +cc_grpc_library( + name = "edgecontainer_cc_grpc", + srcs = [":edgecontainer_proto"], + grpc_only = True, + deps = [":edgecontainer_cc_proto"], +) diff --git a/google/cloud/edgecontainer/v1/edgecontainer_grpc_service_config.json b/google/cloud/edgecontainer/v1/edgecontainer_grpc_service_config.json new file mode 100644 index 000000000..6a702f359 --- /dev/null +++ b/google/cloud/edgecontainer/v1/edgecontainer_grpc_service_config.json @@ -0,0 +1,36 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "ListClusters" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GetCluster" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "ListNodePools" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GetNodePool" }, + { "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" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "CreateCluster" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "UpdateCluster" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "DeleteCluster" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "CreateNodePool" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "UpdateNodePool" }, + { "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" } + ], + "timeout": "60s" + }] +} \ No newline at end of file diff --git a/google/cloud/edgecontainer/v1/edgecontainer_v1.yaml b/google/cloud/edgecontainer/v1/edgecontainer_v1.yaml new file mode 100644 index 000000000..1a98c93ba --- /dev/null +++ b/google/cloud/edgecontainer/v1/edgecontainer_v1.yaml @@ -0,0 +1,67 @@ +type: google.api.Service +config_version: 3 +name: edgecontainer.googleapis.com +title: Distributed Cloud Edge Container API + +apis: +- name: google.cloud.edgecontainer.v1.EdgeContainer +- name: google.cloud.location.Locations +- name: google.longrunning.Operations + +types: +- name: google.cloud.edgecontainer.v1.LocationMetadata +- name: google.cloud.edgecontainer.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. + +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 + 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.edgecontainer.v1.EdgeContainer.*' + 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/google/cloud/edgecontainer/v1/resources.proto b/google/cloud/edgecontainer/v1/resources.proto new file mode 100644 index 000000000..74560de25 --- /dev/null +++ b/google/cloud/edgecontainer/v1/resources.proto @@ -0,0 +1,449 @@ +// 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.cloud.edgecontainer.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/edgecontainer/v1;edgecontainer"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.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}" +}; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" +}; + +// Represents the accessibility state of a customer-managed KMS key used for +// CMEK integration. +enum KmsKeyState { + // Unspecified. + KMS_KEY_STATE_UNSPECIFIED = 0; + + // The key is available for use, and dependent resources should be accessible. + KMS_KEY_STATE_KEY_AVAILABLE = 1; + + // The key is unavailable for an unspecified reason. Dependent resources may + // be inaccessible. + KMS_KEY_STATE_KEY_UNAVAILABLE = 2; +} + +// A Google Distributed Cloud Edge Kubernetes cluster. +message Cluster { + option (google.api.resource) = { + type: "edgecontainer.googleapis.com/Cluster" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}" + }; + + // Required. The resource name of the cluster. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/Cluster" + } + ]; + + // 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]; + + // Labels associated with this resource. + map labels = 4; + + // Optional. Fleet configuration. + Fleet fleet = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Cluster-wide networking configuration. + ClusterNetworking networking = 7 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. RBAC policy that will be applied and managed by GEC. + Authorization authorization = 9 [ + (google.api.field_behavior) = REQUIRED, + (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. + 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 PEM-encoded public certificate of the cluster's CA. + 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]; + + // 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]; +} + +// 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]; +} + +// Fleet related configuration. +// +// Fleets are a Google Cloud concept for logically organizing clusters, +// 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. + // + // 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. + // + // Membership names are formatted as + // `projects//locations/global/membership/`. + string membership = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A user principal for an RBAC policy. +message ClusterUser { + // Required. An active Google username. + string username = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// 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. + ClusterUser admin_users = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A set of Kubernetes nodes in a cluster with common configuration and +// specification. +message NodePool { + option (google.api.resource) = { + type: "edgecontainer.googleapis.com/NodePool" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}/nodePools/{node_pool}" + }; + + // Configuration for CMEK support for edge machine local disk encryption. + message LocalDiskEncryption { + // Immutable. The Cloud KMS CryptoKey e.g. + // projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} + // to use for protecting node local 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 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) = { + 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]; + } + + // Required. The resource name of the node pool. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/NodePool" + } + ]; + + // Output only. The time when the node pool was created. + 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]; + + // Labels associated with this resource. + map labels = 4; + + // Name of the Google Distributed Cloud Edge zone where this node pool will be + // created. For example: `us-central1-edge-customer-a`. + string node_location = 8; + + // Required. The number of nodes in the pool. + int32 node_count = 6 [(google.api.field_behavior) = REQUIRED]; + + // Only machines matching this filter will be allowed to join the node pool. + // The filtering language accepts strings like "name=", and is + // 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]; + + // Output only. The lowest release version among all worker nodes. + string node_version = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A Google Distributed Cloud Edge machine capable of acting as a Kubernetes +// node. +message Machine { + option (google.api.resource) = { + type: "edgecontainer.googleapis.com/Machine" + pattern: "projects/{project}/locations/{location}/machines/{machine}" + }; + + // Required. The resource name of the machine. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/Machine" + } + ]; + + // Output only. The time when the node pool was created. + 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]; + + // Labels associated with this resource. + map labels = 4; + + // Canonical resource name of the node that this machine is responsible for + // 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. + string hosted_node = 5; + + // The Google Distributed Cloud Edge zone of this machine. + string zone = 6; + + // Output only. The software version of the machine. + string version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A VPN connection . +message VpnConnection { + option (google.api.resource) = { + type: "edgecontainer.googleapis.com/VpnConnection" + pattern: "projects/{project}/locations/{location}/vpnConnections/{vpn_connection}" + }; + + // Project detail of the VPC network. + message VpcProject { + // The project of the VPC to connect to. If not specified, it is the same as + // the cluster project. + string project_id = 1; + + // 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|. Must be + // set if |project_id| is set. + string service_account = 2; + } + + // The created connection details. + message Details { + // The Cloud Router info. + message CloudRouter { + // The created Cloud Router name. + string name = 1; + } + + // The Cloud VPN info. + message CloudVpn { + // The created Cloud VPN gateway name. + string gateway = 1; + } + + // The current connection state. + enum State { + // Unknown. + STATE_UNSPECIFIED = 0; + + // Connected. + STATE_CONNECTED = 1; + + // Still connecting. + STATE_CONNECTING = 2; + + // Error occurred. + STATE_ERROR = 3; + } + + // The state of this connection. + State state = 1; + + // The error message. This is only populated when state=ERROR. + string error = 2; + + // The Cloud Router info. + CloudRouter cloud_router = 3; + + // Each connection has multiple Cloud VPN gateways. + repeated CloudVpn cloud_vpns = 4; + } + + // Routing mode. + enum BgpRoutingMode { + // Unknown. + BGP_ROUTING_MODE_UNSPECIFIED = 0; + + // Regional mode. + REGIONAL = 1; + + // Global mode. + GLOBAL = 2; + } + + // Required. The resource name of VPN connection + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/VpnConnection" + } + ]; + + // Output only. The time when the VPN connection was created. + 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]; + + // Labels associated with this resource. + map labels = 4; + + // NAT gateway IP, or WAN IP address. If a customer has multiple NAT IPs, the + // customer needs to configure NAT such that only one external IP maps to the + // GMEC Anthos cluster. This is empty if NAT is not used. + string nat_gateway_ip = 5; + + // Dynamic routing mode of the VPC network, `regional` or `global`. + BgpRoutingMode bgp_routing_mode = 6 [deprecated = true]; + + // 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" + }]; + + // The network ID of VPC to connect to. + string vpc = 8; + + // Project detail of the VPC network. Required if VPC is in a different + // project than the cluster project. + VpcProject vpc_project = 11; + + // 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; + + // 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]. +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. + map available_zones = 1; +} + +// A Google Distributed Cloud Edge zone where edge machines are located. +message ZoneMetadata { + // Quota for resources in this zone. + repeated Quota quota = 1; +} + +// Represents quota for Edge Container resources. +message Quota { + // Name of the quota metric. + string metric = 1; + + // Quota limit for this metric. + double limit = 2; + + // Current usage of this metric. + double usage = 3; +} + +// Maintenance policy configuration. +message MaintenancePolicy { + // Specifies the maintenance window in which maintenance may be performed. + MaintenanceWindow window = 1; +} + +// Maintenance window configuration +message MaintenanceWindow { + // Configuration of a recurring maintenance window. + RecurringTimeWindow recurring_window = 1; +} + +// Represents an arbitrary window of time that recurs. +message RecurringTimeWindow { + // The window of the first recurrence. + TimeWindow window = 1; + + // An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how + // this window recurs. They go on for the span of time between the start and + // end time. + string recurrence = 2; +} + +// Represents an arbitrary window of time. +message TimeWindow { + // The time that the window first starts. + google.protobuf.Timestamp start_time = 1; + + // The time that the window ends. The end time must take place after the + // start time. + google.protobuf.Timestamp end_time = 2; +} diff --git a/google/cloud/edgecontainer/v1/service.proto b/google/cloud/edgecontainer/v1/service.proto new file mode 100644 index 000000000..947ec4b54 --- /dev/null +++ b/google/cloud/edgecontainer/v1/service.proto @@ -0,0 +1,593 @@ +// 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.cloud.edgecontainer.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/edgecontainer/v1/resources.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/edgecontainer/v1;edgecontainer"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.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"; + + // Lists 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"; + } + + // Gets details 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 parameters 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" + }; + } + + // Generates an access token for a Cluster. + rpc GenerateAccessToken(GenerateAccessTokenRequest) returns (GenerateAccessTokenResponse) { + option (google.api.http) = { + get: "/v1/{cluster=projects/*/locations/*/clusters/*}:generateAccessToken" + }; + option (google.api.method_signature) = "cluster"; + } + + // Lists NodePools in a given project and location. + rpc ListNodePools(ListNodePoolsRequest) returns (ListNodePoolsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/clusters/*}/nodePools" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single NodePool. + rpc GetNodePool(GetNodePoolRequest) returns (NodePool) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new NodePool in a given project and location. + rpc CreateNodePool(CreateNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/clusters/*}/nodePools" + body: "node_pool" + }; + option (google.api.method_signature) = "parent,node_pool,node_pool_id"; + option (google.longrunning.operation_info) = { + response_type: "NodePool" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of a single NodePool. + rpc UpdateNodePool(UpdateNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{node_pool.name=projects/*/locations/*/clusters/*/nodePools/*}" + body: "node_pool" + }; + option (google.api.method_signature) = "node_pool,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "NodePool" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single NodePool. + rpc DeleteNodePool(DeleteNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists Machines in a given project and location. + rpc ListMachines(ListMachinesRequest) returns (ListMachinesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/machines" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Machine. + rpc GetMachine(GetMachineRequest) returns (Machine) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/machines/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists VPN connections in a given project and location. + rpc ListVpnConnections(ListVpnConnectionsRequest) returns (ListVpnConnectionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/vpnConnections" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single VPN connection. + rpc GetVpnConnection(GetVpnConnectionRequest) returns (VpnConnection) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/vpnConnections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new VPN connection in a given project and location. + 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.longrunning.operation_info) = { + response_type: "VpnConnection" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single VPN connection. + rpc DeleteVpnConnection(DeleteVpnConnectionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/vpnConnections/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// Long-running operation metadata for Edge Container API methods. +message OperationMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // Server-defined resource path for the target of the operation. + string target = 3; + + // The verb executed by the operation. + string verb = 4; + + // Human-readable status of the operation, if any. + string status_message = 5; + + // 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; + + // API version used to start the operation. + string api_version = 7; +} + +// Lists clusters in a location. +message ListClustersRequest { + // Required. The parent location, which owns this collection of clusters. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "edgecontainer.googleapis.com/Cluster" + } + ]; + + // The maximum number of resources to list. + int32 page_size = 2; + + // A page token received from previous list request. + // A page token received from previous list request. + string page_token = 3; + + // Only resources matching this filter will be listed. + string filter = 4; + + // Specifies the order in which resources will be listed. + string order_by = 5; +} + +// List of clusters in a location. +message ListClustersResponse { + // Clusters in the location. + repeated Cluster clusters = 1; + + // A token to retrieve next page of results. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Gets a cluster. +message GetClusterRequest { + // Required. The resource name of the cluster. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/Cluster" + } + ]; +} + +// Creates a cluster. +message CreateClusterRequest { + // Required. The parent location where this cluster will be created. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "edgecontainer.googleapis.com/Cluster" + } + ]; + + // Required. A client-specified unique identifier for the cluster. + string cluster_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The cluster to create. + Cluster cluster = 3 [(google.api.field_behavior) = REQUIRED]; + + // 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; +} + +// Updates a cluster. +message UpdateClusterRequest { + // 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. If the + // user does not provide a mask then all fields will be overwritten. + google.protobuf.FieldMask update_mask = 1; + + // The updated cluster. + Cluster cluster = 2; + + // 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 = 3; +} + +// Deletes a cluster. +message DeleteClusterRequest { + // Required. The resource name of the cluster. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/Cluster" + } + ]; + + // 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 = 2; +} + +// Generates an access token for a cluster. +message GenerateAccessTokenRequest { + // 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 access token for a cluster. +message GenerateAccessTokenResponse { + // Output only. Access token to authenticate to k8s api-server. + 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]; +} + +// Lists node pools in a cluster. +message ListNodePoolsRequest { + // Required. The parent cluster, which owns this collection of node pools. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "edgecontainer.googleapis.com/NodePool" + } + ]; + + // The maximum number of resources to list. + int32 page_size = 2; + + // A page token received from previous list request. + string page_token = 3; + + // Only resources matching this filter will be listed. + string filter = 4; + + // Specifies the order in which resources will be listed. + string order_by = 5; +} + +// List of node pools in a cluster. +message ListNodePoolsResponse { + // Node pools in the cluster. + repeated NodePool node_pools = 1; + + // A token to retrieve next page of results. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Gets a node pool. +message GetNodePoolRequest { + // Required. The resource name of the node pool. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/NodePool" + } + ]; +} + +// Creates a node pool. +message CreateNodePoolRequest { + // Required. The parent cluster where this node pool will be created. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "edgecontainer.googleapis.com/NodePool" + } + ]; + + // Required. A client-specified unique identifier for the node pool. + string node_pool_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The node pool to create. + NodePool node_pool = 3 [(google.api.field_behavior) = REQUIRED]; + + // 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; +} + +// Updates a node pool. +message UpdateNodePoolRequest { + // Field mask is used to specify the fields to be overwritten in the + // NodePool 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; + + // The updated node pool. + NodePool node_pool = 2; + + // 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 = 3; +} + +// Deletes a node pool. +message DeleteNodePoolRequest { + // Required. The resource name of the node pool. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/NodePool" + } + ]; + + // 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 = 2; +} + +// Lists machines in a site. +message ListMachinesRequest { + // Required. The parent site, which owns this collection of machines. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "edgecontainer.googleapis.com/Machine" + } + ]; + + // The maximum number of resources to list. + int32 page_size = 2; + + // A page token received from previous list request. + string page_token = 3; + + // Only resources matching this filter will be listed. + string filter = 4; + + // Specifies the order in which resources will be listed. + string order_by = 5; +} + +// List of machines in a site. +message ListMachinesResponse { + // Machines in the site. + repeated Machine machines = 1; + + // A token to retrieve next page of results. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Gets a machine. +message GetMachineRequest { + // Required. The resource name of the machine. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/Machine" + } + ]; +} + +// Lists VPN connections. +message ListVpnConnectionsRequest { + // Required. The parent location, which owns this collection of VPN connections. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "edgecontainer.googleapis.com/VpnConnection" + } + ]; + + // The maximum number of resources to list. + int32 page_size = 2; + + // A page token received from previous list request. + string page_token = 3; + + // Only resources matching this filter will be listed. + string filter = 4; + + // Specifies the order in which resources will be listed. + string order_by = 5; +} + +// List of VPN connections in a location. +message ListVpnConnectionsResponse { + // VpnConnections in the location. + repeated VpnConnection vpn_connections = 1; + + // A token to retrieve next page of results. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Gets a VPN connection. +message GetVpnConnectionRequest { + // Required. The resource name of the vpn connection. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/VpnConnection" + } + ]; +} + +// Creates a VPN connection. +message CreateVpnConnectionRequest { + // Required. The parent location where this vpn connection will be created. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "edgecontainer.googleapis.com/VpnConnection" + } + ]; + + // Required. The VPN connection identifier. + string vpn_connection_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The VPN connection to create. + VpnConnection vpn_connection = 3 [(google.api.field_behavior) = REQUIRED]; + + // 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 vpn connection. +message DeleteVpnConnectionRequest { + // Required. The resource name of the vpn connection. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/VpnConnection" + } + ]; + + // 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 = 2; +} diff --git a/google/cloud/enterpriseknowledgegraph/v1/BUILD.bazel b/google/cloud/enterpriseknowledgegraph/v1/BUILD.bazel new file mode 100644 index 000000000..0b95f51fc --- /dev/null +++ b/google/cloud/enterpriseknowledgegraph/v1/BUILD.bazel @@ -0,0 +1,153 @@ +# 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", + "cc_grpc_library", + "cc_proto_library", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", + "proto_library_with_info", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "enterpriseknowledgegraph_proto", + srcs = [ + "job_state.proto", + "operation_metadata.proto", + "service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//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//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "enterpriseknowledgegraph_proto_with_info", + deps = [ + ":enterpriseknowledgegraph_proto", + "//google/cloud:common_resources_proto", + ], +) + +java_proto_library( + name = "enterpriseknowledgegraph_java_proto", + deps = [ + ":enterpriseknowledgegraph_proto", + ], +) + +java_grpc_library( + name = "enterpriseknowledgegraph_java_grpc", + srcs = [":enterpriseknowledgegraph_proto"], + deps = [":enterpriseknowledgegraph_java_proto"], +) + +java_gapic_library( + name = "enterpriseknowledgegraph_java_gapic", + srcs = [":enterpriseknowledgegraph_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "enterpriseknowledgegraph_grpc_service_config.json", + service_yaml = "enterpriseknowledgegraph_v1.yaml", + test_deps = [ + ":enterpriseknowledgegraph_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":enterpriseknowledgegraph_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "enterpriseknowledgegraph_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphServiceClientHttpJsonTest", + "com.google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphServiceClientTest", + ], + runtime_deps = [":enterpriseknowledgegraph_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-enterpriseknowledgegraph-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":enterpriseknowledgegraph_java_gapic", + ":enterpriseknowledgegraph_java_grpc", + ":enterpriseknowledgegraph_java_proto", + ":enterpriseknowledgegraph_proto", + ], +) + +py_gapic_library( + name = "enterpriseknowledgegraph_py_gapic", + srcs = [ + ":enterpriseknowledgegraph_proto", + ], + grpc_service_config = "enterpriseknowledgegraph_grpc_service_config.json", + service_yaml = "enterpriseknowledgegraph_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "enterpriseknowledgegraph_py_gapic_test", + srcs = [ + "enterpriseknowledgegraph_py_gapic_pytest.py", + "enterpriseknowledgegraph_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [ + ":enterpriseknowledgegraph_py_gapic", + ], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "enterpriseknowledgegraph-v1-py", + deps = [ + ":enterpriseknowledgegraph_py_gapic", + ], +) + +cc_proto_library( + name = "enterpriseknowledgegraph_cc_proto", + deps = [":enterpriseknowledgegraph_proto"], +) + +cc_grpc_library( + name = "enterpriseknowledgegraph_cc_grpc", + srcs = [":enterpriseknowledgegraph_proto"], + grpc_only = True, + deps = [":enterpriseknowledgegraph_cc_proto"], +) diff --git a/google/cloud/enterpriseknowledgegraph/v1/enterpriseknowledgegraph_grpc_service_config.json b/google/cloud/enterpriseknowledgegraph/v1/enterpriseknowledgegraph_grpc_service_config.json new file mode 100644 index 000000000..f57437dd6 --- /dev/null +++ b/google/cloud/enterpriseknowledgegraph/v1/enterpriseknowledgegraph_grpc_service_config.json @@ -0,0 +1,24 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService", "method": "ListEntityReconciliationJobs" }, + { "service": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService", "method": "GetEntityReconciliationJob" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService", "method": "CreateEntityReconciliationJob" }, + { "service": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService", "method": "DeleteEntityReconciliationJob" }, + { "service": "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService", "method": "CancelEntityReconciliationJob" } + ], + "timeout": "60s" + }] +} \ No newline at end of file diff --git a/google/cloud/enterpriseknowledgegraph/v1/enterpriseknowledgegraph_v1.yaml b/google/cloud/enterpriseknowledgegraph/v1/enterpriseknowledgegraph_v1.yaml new file mode 100644 index 000000000..fb26c3abc --- /dev/null +++ b/google/cloud/enterpriseknowledgegraph/v1/enterpriseknowledgegraph_v1.yaml @@ -0,0 +1,18 @@ +type: google.api.Service +config_version: 3 +name: enterpriseknowledgegraph.googleapis.com +title: Enterprise Knowledge Graph API + +apis: +- name: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService +- name: google.longrunning.Operations + +types: +- name: google.cloud.enterpriseknowledgegraph.v1.DeleteOperationMetadata + +authentication: + rules: + - selector: 'google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/enterpriseknowledgegraph/v1/job_state.proto b/google/cloud/enterpriseknowledgegraph/v1/job_state.proto new file mode 100644 index 000000000..b4ee4b750 --- /dev/null +++ b/google/cloud/enterpriseknowledgegraph/v1/job_state.proto @@ -0,0 +1,55 @@ +// 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.cloud.enterpriseknowledgegraph.v1; + +option go_package = "google.golang.org/genproto/googleapis/cloud/enterpriseknowledgegraph/v1;enterpriseknowledgegraph"; +option java_multiple_files = true; +option java_outer_classname = "JobStateProto"; +option java_package = "com.google.cloud.enterpriseknowledgegraph.v1"; + +// Describes the state of a job. +enum JobState { + // The job state is unspecified. + JOB_STATE_UNSPECIFIED = 0; + + // The service is preparing to run the job. + JOB_STATE_PENDING = 9; + + // The job is in progress. + JOB_STATE_RUNNING = 1; + + // The job completed successfully. + JOB_STATE_SUCCEEDED = 2; + + // The job failed. + JOB_STATE_FAILED = 3; + + // The job has been cancelled. + JOB_STATE_CANCELLED = 4; + + // Entity Recon API: The knowledge extraction job is running. + JOB_STATE_KNOWLEDGE_EXTRACTION = 5; + + // Entity Recon API: The preprocessing job is running. + JOB_STATE_RECON_PREPROCESSING = 6; + + // Entity Recon API: The clustering job is running. + JOB_STATE_CLUSTERING = 7; + + // Entity Recon API: The exporting clusters job is running. + JOB_STATE_EXPORTING_CLUSTERS = 8; +} diff --git a/google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto b/google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto new file mode 100644 index 000000000..8e57a2a96 --- /dev/null +++ b/google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto @@ -0,0 +1,60 @@ +// 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.cloud.enterpriseknowledgegraph.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/enterpriseknowledgegraph/v1;enterpriseknowledgegraph"; +option java_multiple_files = true; +option java_outer_classname = "OperationMetadataProto"; +option java_package = "com.google.cloud.enterpriseknowledgegraph.v1"; + +// The common metadata for long running operations. +message CommonOperationMetadata { + // State of the longrunning operation. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // Operation is still running. + RUNNING = 1; + + // Operation is being cancelled. + CANCELLING = 2; + + // Operation succeeded. + SUCCEEDED = 3; + + // Operation failed. + FAILED = 4; + + // Operation is cancelled. + CANCELLED = 5; + + // Operation is pending not running yet. + PENDING = 6; + } + + // The state of the operation. + State state = 1; + + // The creation time of the operation. + google.protobuf.Timestamp create_time = 2; + + // The last update time of the operation. + google.protobuf.Timestamp update_time = 3; +} diff --git a/google/cloud/enterpriseknowledgegraph/v1/service.proto b/google/cloud/enterpriseknowledgegraph/v1/service.proto new file mode 100644 index 000000000..8ab1ae4c6 --- /dev/null +++ b/google/cloud/enterpriseknowledgegraph/v1/service.proto @@ -0,0 +1,358 @@ +// 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.cloud.enterpriseknowledgegraph.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/enterpriseknowledgegraph/v1/job_state.proto"; +import "google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/enterpriseknowledgegraph/v1;enterpriseknowledgegraph"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.google.cloud.enterpriseknowledgegraph.v1"; +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}" +}; +option (google.api.resource_definition) = { + type: "enterpriseknowledgegraph.googleapis.com/Location" + pattern: "projects/{project}/locations/{location}" +}; + +// APIs for enterprise knowledge graph product. +service EnterpriseKnowledgeGraphService { + option (google.api.default_host) = "enterpriseknowledgegraph.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a EntityReconciliationJob. A EntityReconciliationJob once created + // will right away be attempted to start. + rpc CreateEntityReconciliationJob(CreateEntityReconciliationJobRequest) + returns (EntityReconciliationJob) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/entityReconciliationJobs" + body: "entity_reconciliation_job" + }; + option (google.api.method_signature) = "parent,entity_reconciliation_job"; + } + + // Gets a EntityReconciliationJob. + rpc GetEntityReconciliationJob(GetEntityReconciliationJobRequest) + returns (EntityReconciliationJob) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/entityReconciliationJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Entity Reconciliation Jobs. + rpc ListEntityReconciliationJobs(ListEntityReconciliationJobsRequest) + returns (ListEntityReconciliationJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/entityReconciliationJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Cancels a EntityReconciliationJob. Success of cancellation is not + // guaranteed. + rpc CancelEntityReconciliationJob(CancelEntityReconciliationJobRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/entityReconciliationJobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a EntityReconciliationJob. + // It only deletes the job when the job state is in FAILED, SUCCEEDED, and + // CANCELLED. + rpc DeleteEntityReconciliationJob(DeleteEntityReconciliationJobRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/entityReconciliationJobs/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// The desired input location and metadata. +message InputConfig { + // The type of entities we will support. Currently, we only support people, + // establishment, property, and product types. If the type is + // unspecified, it will be generic type. + enum EntityType { + // The default value. + ENTITY_TYPE_UNSPECIFIED = 0; + + // People entity. + PEOPLE = 1 [deprecated = true]; + + // Establishment entity. + ESTABLISHMENT = 2 [deprecated = true]; + + // Property entity. e.g. real estate property. + PROPERTY = 3 [deprecated = true]; + + // Product entity. + PRODUCT = 4; + + // Organization entity. + ORGANIZATION = 5; + + // Local Business entity. + LOCAL_BUSINESS = 6; + + // Person entity. + PERSON = 7; + } + + // Set of input BigQuery tables. + repeated BigQueryInputConfig bigquery_input_configs = 1; + + // Entity type + EntityType entity_type = 2; + + // Optional. Provide the bigquery table containing the previous results if + // cluster ID stability is desired. Format is + // “projects/*/datasets/*/tables/*". + string previous_result_bigquery_table = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" } + ]; +} + +// The input config for BigQuery tables. +message BigQueryInputConfig { + // Required. Format is “projects/*/datasets/*/tables/*”. + string bigquery_table = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" } + ]; + + // Required. Schema mapping file + string gcs_uri = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The desired output location and metadata. +message OutputConfig { + // Format is “projects/*/datasets/*”. + string bigquery_dataset = 1 [(google.api.resource_reference) = { + type: "bigquery.googleapis.com/Dataset" + }]; +} + +// Recon configs +message ReconConfig { + // Options for experimental changes on entity clustering behavior. + message Options { + // If true, separate clusters by their geographic region (from geocoding). + // Uses the following entity features: + // - schema.org/addressLocality + // - schema.org/addressRegion + // - schema.org/addressCountry + // Warning: processing will no longer be regionalized! + bool enable_geocoding_separation = 100; + } + + // Model Configs + message ModelConfig { + // Model name. Refer to external documentation for valid names. + // If unspecified, it defaults to the one mentioned in the documentation. + string model_name = 1; + + // Model version tag. Refer to external documentation for valid tags. + // If unspecified, it defaults to the one mentioned in the documentation. + string version_tag = 2; + } + + // Choice of clustering algorithm. Default is ConnectedComponentsConfig. + oneof clustering_config { + // Configs for connected components. + ConnectedComponentsConfig connected_components_config = 1; + + // Configs for affinity clustering. + AffinityClusteringConfig affinity_clustering_config = 2; + } + + // Extra options that affect entity clustering behavior. + Options options = 3; + + // Model Configs + ModelConfig model_config = 4; +} + +// Options for connected components. +message ConnectedComponentsConfig { + // Threshold used for connected components. Default value is 0.85. + float weight_threshold = 1; +} + +// Options for affinity clustering. +message AffinityClusteringConfig { + // Number of iterations to perform. Default value is 1. + int64 compression_round_count = 1; +} + +// Details of operations that perform deletes of any entities. +message DeleteOperationMetadata { + // The common part of the operation metadata. + CommonOperationMetadata common_metadata = 1; +} + +// Request message for CreateEntityReconciliationJob. +message CreateEntityReconciliationJobRequest { + // Required. The resource name of the Location to create the + // EntityReconciliationJob in. Format: + // `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "enterpriseknowledgegraph.googleapis.com/Location" + } + ]; + + // Required. The EntityReconciliationJob to create. + EntityReconciliationJob entity_reconciliation_job = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for GetEntityReconciliationJob. +message GetEntityReconciliationJobRequest { + // Required. The name of the EntityReconciliationJob resource. + // Format: + // `projects/{project}/locations/{location}/entityReconciliationJobs/{entity_reconciliation_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "enterpriseknowledgegraph.googleapis.com/EntityReconciliationJob" + } + ]; +} + +// Request message for +// [EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs]. +message ListEntityReconciliationJobsRequest { + // Required. The name of the EntityReconciliationJob's parent resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "enterpriseknowledgegraph.googleapis.com/Location" + } + ]; + + // An expression for filtering the results of the request. For field names + // both snake_case and camelCase are supported. + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + string page_token = 4; +} + +// Response message for +// [EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs]. +message ListEntityReconciliationJobsResponse { + // A list of EntityReconciliationJobs that matches the specified filter in the + // request. + repeated EntityReconciliationJob entity_reconciliation_jobs = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + +// Request message for CancelEntityReconciliationJob. +message CancelEntityReconciliationJobRequest { + // Required. The name of the EntityReconciliationJob resource. + // Format: + // `projects/{project}/locations/{location}/entityReconciliationJobs/{entity_reconciliation_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "enterpriseknowledgegraph.googleapis.com/EntityReconciliationJob" + } + ]; +} + +// Request message for DeleteEntityReconciliationJob. +message DeleteEntityReconciliationJobRequest { + // Required. The name of the EntityReconciliationJob resource. + // Format: + // `projects/{project}/locations/{location}/entityReconciliationJobs/{entity_reconciliation_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "enterpriseknowledgegraph.googleapis.com/EntityReconciliationJob" + } + ]; +} + +// Entity reconciliation job message. +message EntityReconciliationJob { + option (google.api.resource) = { + type: "enterpriseknowledgegraph.googleapis.com/EntityReconciliationJob" + pattern: "projects/{project}/locations/{location}/entityReconciliationJobs/{entity_reconciliation_job}" + }; + + // Output only. Resource name of the EntityReconciliationJob. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Information about the input BigQuery tables. + InputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The desired output location. + OutputConfig output_config = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The detailed state of the job. + JobState state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when the job's state is JOB_STATE_FAILED or + // JOB_STATE_CANCELLED. + google.rpc.Status error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the EntityReconciliationJob was created. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the EntityReconciliationJob entered any of the + // following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, + // `JOB_STATE_CANCELLED`. + google.protobuf.Timestamp end_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the EntityReconciliationJob was most recently + // updated. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Recon configs to adjust the clustering behavior. + ReconConfig recon_config = 9 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/essentialcontacts/v1/BUILD.bazel b/google/cloud/essentialcontacts/v1/BUILD.bazel index 54b95e0b4..05bf9592d 100644 --- a/google/cloud/essentialcontacts/v1/BUILD.bazel +++ b/google/cloud/essentialcontacts/v1/BUILD.bazel @@ -30,17 +30,18 @@ load( "java_proto_library", "nodejs_gapic_assembly_pkg", "nodejs_gapic_library", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_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", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", ) # This is an API workspace, having public visibility by default makes perfect sense. @@ -89,6 +90,7 @@ java_gapic_library( test_deps = [ ":essentialcontacts_java_grpc", ], + transport = "grpc+rest", deps = [ ":essentialcontacts_java_proto", ], @@ -97,6 +99,7 @@ java_gapic_library( java_gapic_test( name = "essentialcontacts_java_gapic_test_suite", test_classes = [ + "com.google.cloud.essentialcontacts.v1.EssentialContactsServiceClientHttpJsonTest", "com.google.cloud.essentialcontacts.v1.EssentialContactsServiceClientTest", ], runtime_deps = [":essentialcontacts_java_gapic_test"], @@ -105,6 +108,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-essentialcontacts-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":essentialcontacts_java_gapic", ":essentialcontacts_java_grpc", @@ -130,6 +135,7 @@ go_gapic_library( importpath = "cloud.google.com/go/essentialcontacts/apiv1;essentialcontacts", metadata = True, service_yaml = "essentialcontacts_v1.yaml", + transport = "grpc+rest", deps = [ ":essentialcontacts_go_proto", ], @@ -162,6 +168,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=essential_contacts", ], + transport = "grpc", +) + +py_test( + name = "essentialcontacts_py_gapic_test", + srcs = [ + "essentialcontacts_py_gapic_pytest.py", + "essentialcontacts_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":essentialcontacts_py_gapic"], ) # Open Source Packages @@ -279,6 +296,7 @@ csharp_gapic_library( srcs = [":essentialcontacts_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "essentialcontacts_v1_grpc_service_config.json", + service_yaml = "essentialcontacts_v1.yaml", deps = [ ":essentialcontacts_csharp_grpc", ":essentialcontacts_csharp_proto", diff --git a/google/cloud/eventarc/publishing/v1/BUILD.bazel b/google/cloud/eventarc/publishing/v1/BUILD.bazel index 42b71e34a..3c24600f7 100644 --- a/google/cloud/eventarc/publishing/v1/BUILD.bazel +++ b/google/cloud/eventarc/publishing/v1/BUILD.bazel @@ -70,6 +70,7 @@ java_gapic_library( test_deps = [ ":publishing_java_grpc", ], + transport = "grpc+rest", deps = [ ":publishing_java_proto", "//google/api:api_java_proto", @@ -79,6 +80,7 @@ java_gapic_library( java_gapic_test( name = "publishing_java_gapic_test_suite", test_classes = [ + "com.google.cloud.eventarc.publishing.v1.PublisherClientHttpJsonTest", "com.google.cloud.eventarc.publishing.v1.PublisherClientTest", ], runtime_deps = [":publishing_java_gapic_test"], @@ -87,6 +89,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-eventarc-publishing-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":publishing_java_gapic", ":publishing_java_grpc", @@ -123,6 +127,7 @@ go_gapic_library( importpath = "cloud.google.com/go/eventarc/publishing/apiv1;publishing", metadata = True, service_yaml = "eventarcpublishing_v1.yaml", + transport = "grpc+rest", deps = [ ":publishing_go_proto", ], @@ -153,6 +158,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -164,6 +170,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=eventarc_publishing", ], + transport = "grpc+rest", +) + +py_test( + name = "publishing_py_gapic_test", + srcs = [ + "publishing_py_gapic_pytest.py", + "publishing_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":publishing_py_gapic"], ) # Open Source Packages @@ -228,7 +245,7 @@ load( nodejs_gapic_library( name = "publishing_nodejs_gapic", - package_name = "@google-cloud/publishing", + package_name = "@google-cloud/eventarc-publishing", src = ":publishing_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "eventarcpublishing_grpc_service_config.json", @@ -323,6 +340,7 @@ csharp_gapic_library( srcs = [":publishing_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "eventarcpublishing_grpc_service_config.json", + service_yaml = "eventarcpublishing_v1.yaml", deps = [ ":publishing_csharp_grpc", ":publishing_csharp_proto", diff --git a/google/cloud/eventarc/publishing/v1/eventarcpublishing_v1.yaml b/google/cloud/eventarc/publishing/v1/eventarcpublishing_v1.yaml index 5c3f93fb3..23ae130a6 100644 --- a/google/cloud/eventarc/publishing/v1/eventarcpublishing_v1.yaml +++ b/google/cloud/eventarc/publishing/v1/eventarcpublishing_v1.yaml @@ -12,3 +12,7 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.eventarc.publishing.v1.Publisher.PublishEvents + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/eventarc/publishing/v1/publisher.proto b/google/cloud/eventarc/publishing/v1/publisher.proto index e259cdd0c..ce4153bb9 100644 --- a/google/cloud/eventarc/publishing/v1/publisher.proto +++ b/google/cloud/eventarc/publishing/v1/publisher.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,14 +17,14 @@ syntax = "proto3"; package google.cloud.eventarc.publishing.v1; import "google/api/annotations.proto"; -import "google/protobuf/any.proto"; import "google/api/client.proto"; +import "google/protobuf/any.proto"; +option csharp_namespace = "Google.Cloud.Eventarc.Publishing.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/eventarc/publishing/v1;publisher"; option java_multiple_files = true; option java_outer_classname = "PublisherProto"; option java_package = "com.google.cloud.eventarc.publishing.v1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/eventarc/publishing/v1;publisher"; -option csharp_namespace = "Google.Cloud.Eventarc.Publishing.V1"; option php_namespace = "Google\\Cloud\\Eventarc\\Publishing\\V1"; option ruby_package = "Google::Cloud::Eventarc::Publishing::V1"; @@ -63,6 +63,14 @@ service Publisher { body: "*" }; } + + // Publish events to a subscriber's channel. + rpc PublishEvents(PublishEventsRequest) returns (PublishEventsResponse) { + option (google.api.http) = { + post: "/v1/{channel=projects/*/locations/*/channels/*}:publishEvents" + body: "*" + }; + } } // The request message for the PublishChannelConnectionEvents method. @@ -79,3 +87,18 @@ message PublishChannelConnectionEventsRequest { message PublishChannelConnectionEventsResponse { } + +// The request message for the PublishEvents method. +message PublishEventsRequest { + // The full name of the channel to publish to. For example: + // `projects/{project}/locations/{location}/channels/{channel-id}`. + string channel = 1; + + // The CloudEvents v1.0 events to publish. No other types are allowed. + repeated google.protobuf.Any events = 2; +} + +// The response message for the PublishEvents method. +message PublishEventsResponse { + +} diff --git a/google/cloud/eventarc/v1/BUILD.bazel b/google/cloud/eventarc/v1/BUILD.bazel index ec2a09bb2..013e885f3 100644 --- a/google/cloud/eventarc/v1/BUILD.bazel +++ b/google/cloud/eventarc/v1/BUILD.bazel @@ -21,6 +21,9 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "eventarc_proto", srcs = [ + "channel.proto", + "channel_connection.proto", + "discovery.proto", "eventarc.proto", "trigger.proto", ], @@ -30,6 +33,7 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/rpc:code_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], @@ -69,18 +73,23 @@ java_grpc_library( java_gapic_library( name = "eventarc_java_gapic", srcs = [":eventarc_proto_with_info"], + gapic_yaml = None, grpc_service_config = "eventarc_grpc_service_config.json", + service_yaml = "eventarc_v1.yaml", test_deps = [ ":eventarc_java_grpc", ], + transport = "grpc+rest", deps = [ ":eventarc_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "eventarc_java_gapic_test_suite", test_classes = [ + "com.google.cloud.eventarc.v1.EventarcClientHttpJsonTest", "com.google.cloud.eventarc.v1.EventarcClientTest", ], runtime_deps = [":eventarc_java_gapic_test"], @@ -89,6 +98,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-eventarc-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":eventarc_java_gapic", ":eventarc_java_grpc", @@ -116,6 +127,7 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/rpc:code_go_proto", ], ) @@ -126,6 +138,7 @@ go_gapic_library( importpath = "cloud.google.com/go/eventarc/apiv1;eventarc", metadata = True, service_yaml = "eventarc_v1.yaml", + transport = "grpc+rest", deps = [ ":eventarc_go_proto", "//google/longrunning:longrunning_go_proto", @@ -159,12 +172,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "eventarc_py_gapic", srcs = [":eventarc_proto"], grpc_service_config = "eventarc_grpc_service_config.json", + service_yaml = "eventarc_v1.yaml", + transport = "grpc", +) + +py_test( + name = "eventarc_py_gapic_test", + srcs = [ + "eventarc_py_gapic_pytest.py", + "eventarc_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":eventarc_py_gapic"], ) # Open Source Packages @@ -272,11 +298,11 @@ ruby_cloud_gapic_library( name = "eventarc_ruby_gapic", srcs = [":eventarc_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-eventarc-v1", - "ruby-cloud-env-prefix=EVENTARC", - "ruby-cloud-product-url=https://cloud.google.com/eventarc/", "ruby-cloud-api-id=eventarc.googleapis.com", "ruby-cloud-api-shortname=eventarc", + "ruby-cloud-env-prefix=EVENTARC", + "ruby-cloud-gem-name=google-cloud-eventarc-v1", + "ruby-cloud-product-url=https://cloud.google.com/eventarc/", ], grpc_service_config = "eventarc_grpc_service_config.json", ruby_cloud_description = "Eventarc lets you asynchronously deliver events from Google services, SaaS, and your own apps using loosely coupled services that react to state changes. Eventarc requires no infrastructure management — you can optimize productivity and costs while building a modern, event-driven solution.", @@ -324,6 +350,7 @@ csharp_gapic_library( srcs = [":eventarc_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "eventarc_grpc_service_config.json", + service_yaml = "eventarc_v1.yaml", deps = [ ":eventarc_csharp_grpc", ":eventarc_csharp_proto", diff --git a/google/cloud/eventarc/v1/channel.proto b/google/cloud/eventarc/v1/channel.proto new file mode 100644 index 000000000..11627e450 --- /dev/null +++ b/google/cloud/eventarc/v1/channel.proto @@ -0,0 +1,103 @@ +// 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.cloud.eventarc.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Eventarc.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/eventarc/v1;eventarc"; +option java_multiple_files = true; +option java_outer_classname = "ChannelProto"; +option java_package = "com.google.cloud.eventarc.v1"; +option php_namespace = "Google\\Cloud\\Eventarc\\V1"; +option ruby_package = "Google::Cloud::Eventarc::V1"; + +// A representation of the Channel resource. +// A Channel is a resource on which event providers publish their events. +// The published events are delivered through the transport associated with the +// channel. Note that a channel is associated with exactly one event provider. +message Channel { + option (google.api.resource) = { + type: "eventarc.googleapis.com/Channel" + pattern: "projects/{project}/locations/{location}/channels/{channel}" + plural: "channels" + singular: "channel" + }; + + // State lists all the possible states of a Channel + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The PENDING state indicates that a Channel has been created successfully + // and there is a new activation token available for the subscriber to use + // to convey the Channel to the provider in order to create a Connection. + PENDING = 1; + + // The ACTIVE state indicates that a Channel has been successfully + // connected with the event provider. + // An ACTIVE Channel is ready to receive and route events from the + // event provider. + ACTIVE = 2; + + // The INACTIVE state means that the Channel cannot receive events + // permanently. There are two possible cases this state can happen: + // 1. The SaaS provider disconnected from this Channel. + // 2. The Channel activation token has expired but the SaaS provider + // wasn't connected. + // To re-establish a Connection with a provider, the subscriber + // should create a new Channel and give it to the provider. + INACTIVE = 3; + } + + // Required. The resource name of the channel. Must be unique within the location + // on the project and must be in + // `projects/{project}/locations/{location}/channels/{channel_id}` format. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server assigned unique identifier for the channel. The value is a UUID4 + // string and guaranteed to remain unchanged until the resource is deleted. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The creation time. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the event provider (e.g. Eventarc SaaS partner) associated + // with the channel. This provider will be granted permissions to publish + // events to the channel. Format: + // `projects/{project}/locations/{location}/providers/{provider_id}`. + string provider = 7 [(google.api.field_behavior) = REQUIRED]; + + oneof transport { + // Output only. The name of the Pub/Sub topic created and managed by Eventarc system as + // a transport for the event delivery. Format: + // `projects/{project}/topics/{topic_id}`. + string pubsub_topic = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The state of a Channel. + State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The activation token for the channel. The token must be used by the + // provider to register the channel for publishing. + string activation_token = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/eventarc/v1/channel_connection.proto b/google/cloud/eventarc/v1/channel_connection.proto new file mode 100644 index 000000000..ae1e0f7de --- /dev/null +++ b/google/cloud/eventarc/v1/channel_connection.proto @@ -0,0 +1,73 @@ +// 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.cloud.eventarc.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Eventarc.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/eventarc/v1;eventarc"; +option java_multiple_files = true; +option java_outer_classname = "ChannelConnectionProto"; +option java_package = "com.google.cloud.eventarc.v1"; +option php_namespace = "Google\\Cloud\\Eventarc\\V1"; +option ruby_package = "Google::Cloud::Eventarc::V1"; + +// A representation of the ChannelConnection resource. +// A ChannelConnection is a resource which event providers create during the +// activation process to establish a connection between the provider and the +// subscriber channel. +message ChannelConnection { + option (google.api.resource) = { + type: "eventarc.googleapis.com/ChannelConnection" + pattern: "projects/{project}/locations/{location}/channelConnections/{channel_connection}" + plural: "channelConnections" + singular: "channelConnection" + }; + + // Required. The name of the connection. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server assigned ID of the resource. + // The server guarantees uniqueness and immutability until deleted. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the connected subscriber Channel. + // This is a weak reference to avoid cross project and cross accounts + // references. This must be in + // `projects/{project}/location/{location}/channels/{channel_id}` format. + string channel = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Channel" + } + ]; + + // Output only. The creation time. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Input only. Activation token for the channel. The token will be used + // during the creation of ChannelConnection to bind the channel with the + // provider project. This field will not be stored in the provider resource. + string activation_token = 8 [(google.api.field_behavior) = INPUT_ONLY]; +} diff --git a/google/cloud/eventarc/v1/discovery.proto b/google/cloud/eventarc/v1/discovery.proto new file mode 100644 index 000000000..44633de81 --- /dev/null +++ b/google/cloud/eventarc/v1/discovery.proto @@ -0,0 +1,86 @@ +// 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.cloud.eventarc.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/eventarc/v1;eventarc"; +option java_multiple_files = true; +option java_outer_classname = "DiscoveryProto"; +option java_package = "com.google.cloud.eventarc.v1"; + +// A representation of the Provider resource. +message Provider { + option (google.api.resource) = { + type: "eventarc.googleapis.com/Provider" + pattern: "projects/{project}/locations/{location}/providers/{provider}" + plural: "providers" + singular: "provider" + }; + + // Output only. In `projects/{project}/locations/{location}/providers/{provider_id}` + // format. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human friendly name for the Provider. For example "Cloud Storage". + string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Event types for this provider. + repeated EventType event_types = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A representation of the event type resource. +message EventType { + // Output only. The full name of the event type (for example, + // "google.cloud.storage.object.v1.finalized"). In the form of + // {provider-specific-prefix}.{resource}.{version}.{verb}. Types MUST be + // versioned and event schemas are guaranteed to remain backward compatible + // within one version. Note that event type versions and API versions do not + // need to match. + string type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human friendly description of what the event type is about. + // For example "Bucket created in Cloud Storage". + string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Filtering attributes for the event type. + repeated FilteringAttribute filtering_attributes = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URI for the event schema. + // For example + // "https://github.com/googleapis/google-cloudevents/blob/master/proto/google/events/cloud/storage/v1/events.proto" + string event_schema_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A representation of the FilteringAttribute resource. +// Filtering attributes are per event type. +message FilteringAttribute { + // Output only. Attribute used for filtering the event type. + string attribute = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Description of the purpose of the attribute. + string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If true, the triggers for this provider should always specify a filter + // on these attributes. Trigger creation will fail otherwise. + bool required = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If true, the attribute accepts matching expressions in the Eventarc + // PathPattern format. + bool path_pattern_supported = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/eventarc/v1/eventarc.proto b/google/cloud/eventarc/v1/eventarc.proto index e91e265a8..69310678a 100644 --- a/google/cloud/eventarc/v1/eventarc.proto +++ b/google/cloud/eventarc/v1/eventarc.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,16 +20,19 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/eventarc/v1/channel.proto"; +import "google/cloud/eventarc/v1/channel_connection.proto"; +import "google/cloud/eventarc/v1/discovery.proto"; import "google/cloud/eventarc/v1/trigger.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +option csharp_namespace = "Google.Cloud.Eventarc.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/eventarc/v1;eventarc"; option java_multiple_files = true; option java_outer_classname = "EventarcProto"; option java_package = "com.google.cloud.eventarc.v1"; -option csharp_namespace = "Google.Cloud.Eventarc.V1"; option php_namespace = "Google\\Cloud\\Eventarc\\V1"; option ruby_package = "Google::Cloud::Eventarc::V1"; @@ -92,6 +95,117 @@ service Eventarc { metadata_type: "OperationMetadata" }; } + + // Get a single Channel. + rpc GetChannel(GetChannelRequest) returns (Channel) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/channels/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List channels. + rpc ListChannels(ListChannelsRequest) returns (ListChannelsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/channels" + }; + option (google.api.method_signature) = "parent"; + } + + // Create a new channel in a particular project and location. + rpc CreateChannel(CreateChannelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/channels" + body: "channel" + }; + option (google.api.method_signature) = "parent,channel,channel_id"; + option (google.longrunning.operation_info) = { + response_type: "Channel" + metadata_type: "OperationMetadata" + }; + } + + // Update a single channel. + rpc UpdateChannel(UpdateChannelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{channel.name=projects/*/locations/*/channels/*}" + body: "channel" + }; + option (google.api.method_signature) = "channel,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Channel" + metadata_type: "OperationMetadata" + }; + } + + // Delete a single channel. + rpc DeleteChannel(DeleteChannelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/channels/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Channel" + metadata_type: "OperationMetadata" + }; + } + + // Get a single Provider. + rpc GetProvider(GetProviderRequest) returns (Provider) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/providers/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List providers. + rpc ListProviders(ListProvidersRequest) returns (ListProvidersResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/providers" + }; + option (google.api.method_signature) = "parent"; + } + + // Get a single ChannelConnection. + rpc GetChannelConnection(GetChannelConnectionRequest) returns (ChannelConnection) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/channelConnections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List channel connections. + rpc ListChannelConnections(ListChannelConnectionsRequest) returns (ListChannelConnectionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/channelConnections" + }; + option (google.api.method_signature) = "parent"; + } + + // Create a new ChannelConnection in a particular project and location. + rpc CreateChannelConnection(CreateChannelConnectionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/channelConnections" + body: "channel_connection" + }; + option (google.api.method_signature) = "parent,channel_connection,channel_connection_id"; + option (google.longrunning.operation_info) = { + response_type: "ChannelConnection" + metadata_type: "OperationMetadata" + }; + } + + // Delete a single ChannelConnection. + rpc DeleteChannelConnection(DeleteChannelConnectionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/channelConnections/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "ChannelConnection" + metadata_type: "OperationMetadata" + }; + } } // The request message for the GetTrigger method. @@ -126,14 +240,14 @@ message ListTriggersRequest { // the call that provided the page token. string page_token = 3; - // The sorting order of the resources returned. Value should be a comma - // separated list of fields. The default sorting oder is ascending. To specify - // descending order for a field, append a ` desc` suffix; for example: + // The sorting order of the resources returned. Value should be a + // comma-separated list of fields. The default sorting order is ascending. To + // specify descending order for a field, append a `desc` suffix; for example: // `name desc, trigger_id`. string order_by = 4; } -// The response message for the ListTriggers method. +// The response message for the `ListTriggers` method. message ListTriggersResponse { // The requested triggers, up to the number specified in `page_size`. repeated Trigger triggers = 1; @@ -162,7 +276,7 @@ message CreateTriggerRequest { // Required. The user-provided ID to be assigned to the trigger. string trigger_id = 3 [(google.api.field_behavior) = REQUIRED]; - // Required. If set, validate the request and preview the review, but do not actually + // Required. If set, validate the request and preview the review, but do not // post it. bool validate_only = 4 [(google.api.field_behavior) = REQUIRED]; } @@ -172,8 +286,8 @@ message UpdateTriggerRequest { // The trigger to be updated. Trigger trigger = 1; - // The fields to be updated; only fields explicitly provided will be updated. - // If no field mask is provided, all provided fields in the request will be + // The fields to be updated; only fields explicitly provided are updated. + // If no field mask is provided, all provided fields in the request are // updated. To update all fields, provide a field mask of "*". google.protobuf.FieldMask update_mask = 2; @@ -181,7 +295,7 @@ message UpdateTriggerRequest { // created. In this situation, `update_mask` is ignored. bool allow_missing = 3; - // Required. If set, validate the request and preview the review, but do not actually + // Required. If set, validate the request and preview the review, but do not // post it. bool validate_only = 4 [(google.api.field_behavior) = REQUIRED]; } @@ -204,11 +318,244 @@ message DeleteTriggerRequest { // but no action will be taken on the server. bool allow_missing = 3; - // Required. If set, validate the request and preview the review, but do not actually + // Required. If set, validate the request and preview the review, but do not // post it. bool validate_only = 4 [(google.api.field_behavior) = REQUIRED]; } +// The request message for the GetChannel method. +message GetChannelRequest { + // Required. The name of the channel to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Channel" + } + ]; +} + +// The request message for the ListChannels method. +message ListChannelsRequest { + // Required. The parent collection to list channels on. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "eventarc.googleapis.com/Channel" + } + ]; + + // The maximum number of channels to return on each page. + // Note: The service may send fewer. + int32 page_size = 2; + + // The page token; provide the value from the `next_page_token` field in a + // previous `ListChannels` call to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListChannels` must + // match the call that provided the page token. + string page_token = 3; + + // The sorting order of the resources returned. Value should be a + // comma-separated list of fields. The default sorting order is ascending. To + // specify descending order for a field, append a `desc` suffix; for example: + // `name desc, channel_id`. + string order_by = 4; +} + +// The response message for the `ListChannels` method. +message ListChannelsResponse { + // The requested channels, up to the number specified in `page_size`. + repeated Channel channels = 1; + + // A page token that can be sent to ListChannels to request the next page. + // If this is empty, then there are no more pages. + string next_page_token = 2; + + // Unreachable resources, if any. + repeated string unreachable = 3; +} + +// The request message for the CreateChannel method. +message CreateChannelRequest { + // Required. The parent collection in which to add this channel. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "eventarc.googleapis.com/Channel" + } + ]; + + // Required. The channel to create. + Channel channel = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The user-provided ID to be assigned to the channel. + string channel_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. If set, validate the request and preview the review, but do not + // post it. + bool validate_only = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for the UpdateChannel method. +message UpdateChannelRequest { + // The channel to be updated. + Channel channel = 1; + + // The fields to be updated; only fields explicitly provided are updated. + // If no field mask is provided, all provided fields in the request are + // updated. To update all fields, provide a field mask of "*". + google.protobuf.FieldMask update_mask = 2; + + // Required. If set, validate the request and preview the review, but do not + // post it. + bool validate_only = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for the DeleteChannel method. +message DeleteChannelRequest { + // Required. The name of the channel to be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Channel" + } + ]; + + // Required. If set, validate the request and preview the review, but do not + // post it. + bool validate_only = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for the GetProvider method. +message GetProviderRequest { + // Required. The name of the provider to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Provider" + } + ]; +} + +// The request message for the ListProviders method. +message ListProvidersRequest { + // Required. The parent of the provider to get. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "eventarc.googleapis.com/Provider" + } + ]; + + // The maximum number of providers to return on each page. + int32 page_size = 2; + + // The page token; provide the value from the `next_page_token` field in a + // previous `ListProviders` call to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListProviders` must + // match the call that provided the page token. + string page_token = 3; + + // The sorting order of the resources returned. Value should be a + // comma-separated list of fields. The default sorting oder is ascending. To + // specify descending order for a field, append a `desc` suffix; for example: + // `name desc, _id`. + string order_by = 4; + + // The filter field that the list request will filter on. + string filter = 5; +} + +// The response message for the `ListProviders` method. +message ListProvidersResponse { + // The requested providers, up to the number specified in `page_size`. + repeated Provider providers = 1; + + // A page token that can be sent to ListProviders to request the next page. + // If this is empty, then there are no more pages. + string next_page_token = 2; + + // Unreachable resources, if any. + repeated string unreachable = 3; +} + +// The request message for the GetChannelConnection method. +message GetChannelConnectionRequest { + // Required. The name of the channel connection to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/ChannelConnection" + } + ]; +} + +// The request message for the ListChannelConnections method. +message ListChannelConnectionsRequest { + // Required. The parent collection from which to list channel connections. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "eventarc.googleapis.com/ChannelConnection" + } + ]; + + // The maximum number of channel connections to return on each page. + // Note: The service may send fewer responses. + int32 page_size = 2; + + // The page token; provide the value from the `next_page_token` field in a + // previous `ListChannelConnections` call to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListChannelConnetions` + // match the call that provided the page token. + string page_token = 3; +} + +// The response message for the `ListChannelConnections` method. +message ListChannelConnectionsResponse { + // The requested channel connections, up to the number specified in + // `page_size`. + repeated ChannelConnection channel_connections = 1; + + // A page token that can be sent to ListChannelConnections to request the + // next page. + // If this is empty, then there are no more pages. + string next_page_token = 2; + + // Unreachable resources, if any. + repeated string unreachable = 3; +} + +// The request message for the CreateChannelConnection method. +message CreateChannelConnectionRequest { + // Required. The parent collection in which to add this channel connection. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "eventarc.googleapis.com/ChannelConnection" + } + ]; + + // Required. Channel connection to create. + ChannelConnection channel_connection = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The user-provided ID to be assigned to the channel connection. + string channel_connection_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for the DeleteChannelConnection method. +message DeleteChannelConnectionRequest { + // Required. The name of the channel connection to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/ChannelConnection" + } + ]; +} + // Represents the metadata of the long-running operation. message OperationMetadata { // Output only. The time the operation was created. diff --git a/google/cloud/eventarc/v1/eventarc_grpc_service_config.json b/google/cloud/eventarc/v1/eventarc_grpc_service_config.json index bde0b43dd..42b801abc 100644 --- a/google/cloud/eventarc/v1/eventarc_grpc_service_config.json +++ b/google/cloud/eventarc/v1/eventarc_grpc_service_config.json @@ -2,7 +2,13 @@ "methodConfig": [{ "name": [ { "service": "google.cloud.eventarc.v1", "method": "ListTriggers"}, - { "service": "google.cloud.eventarc.v1", "method": "GetTrigger"} + { "service": "google.cloud.eventarc.v1", "method": "GetTrigger"}, + { "service": "google.cloud.eventarc.v1", "method": "ListChannels"}, + { "service": "google.cloud.eventarc.v1", "method": "GetChannel"}, + { "service": "google.cloud.eventarc.v1", "method": "ListChannelConnections"}, + { "service": "google.cloud.eventarc.v1", "method": "GetChannelConnection"}, + { "service": "google.cloud.eventarc.v1", "method": "ListProviders"}, + { "service": "google.cloud.eventarc.v1", "method": "GetProvider"} ], "timeout": "60s", "retryPolicy": { @@ -17,7 +23,13 @@ "name": [ { "service": "google.cloud.eventarc.v1", "method": "CreateTrigger" }, { "service": "google.cloud.eventarc.v1", "method": "DeleteTrigger" }, - { "service": "google.cloud.eventarc.v1", "method": "UpdateTrigger" } + { "service": "google.cloud.eventarc.v1", "method": "UpdateTrigger" }, + { "service": "google.cloud.eventarc.v1", "method": "CreateChannel" }, + { "service": "google.cloud.eventarc.v1", "method": "DeleteChannel" }, + { "service": "google.cloud.eventarc.v1", "method": "UpdateChannel" }, + { "service": "google.cloud.eventarc.v1", "method": "CreateChannelConnection" }, + { "service": "google.cloud.eventarc.v1", "method": "DeleteChannelConnection" }, + { "service": "google.cloud.eventarc.v1", "method": "UpdateChannelConnection" } ], "timeout": "60s" }] diff --git a/google/cloud/eventarc/v1/eventarc_v1.yaml b/google/cloud/eventarc/v1/eventarc_v1.yaml index 9c0197ae3..4d17b8c8a 100644 --- a/google/cloud/eventarc/v1/eventarc_v1.yaml +++ b/google/cloud/eventarc/v1/eventarc_v1.yaml @@ -61,12 +61,25 @@ http: get: '/v1/{name=projects/*}/locations' - selector: google.iam.v1.IAMPolicy.GetIamPolicy get: '/v1/{resource=projects/*/locations/*/triggers/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/channels/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/channelConnections/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1/{resource=projects/*/locations/*/triggers/*}:setIamPolicy' body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/channels/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/channelConnections/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1/{resource=projects/*/locations/*/triggers/*}:testIamPermissions' body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/channels/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/channelConnections/*}:testIamPermissions' + body: '*' - selector: google.longrunning.Operations.CancelOperation post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' body: '*' diff --git a/google/cloud/eventarc/v1/trigger.proto b/google/cloud/eventarc/v1/trigger.proto index 6ec85a727..45f8a8463 100644 --- a/google/cloud/eventarc/v1/trigger.proto +++ b/google/cloud/eventarc/v1/trigger.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.eventarc.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; @@ -47,26 +46,23 @@ message Trigger { singular: "trigger" }; - // Required. The resource name of the trigger. Must be unique within the - // location on the project and must be in + // Required. The resource name of the trigger. Must be unique within the location of the + // project and must be in // `projects/{project}/locations/{location}/triggers/{trigger}` format. string name = 1 [(google.api.field_behavior) = REQUIRED]; - // Output only. Server assigned unique identifier for the trigger. The value - // is a UUID4 string and guaranteed to remain unchanged until the resource is - // deleted. + // Output only. Server-assigned unique identifier for the trigger. The value is a UUID4 + // string and guaranteed to remain unchanged until the resource is deleted. string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The creation time. - google.protobuf.Timestamp create_time = 5 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The last-modified time. - google.protobuf.Timestamp update_time = 6 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. null The list of filters that applies to event attributes. Only - // events that match all the provided filters will be sent to the destination. + // Required. null The list of filters that applies to event attributes. Only events that + // match all the provided filters are sent to the destination. repeated EventFilter event_filters = 8 [ (google.api.field_behavior) = UNORDERED_LIST, (google.api.field_behavior) = REQUIRED @@ -75,7 +71,7 @@ message Trigger { // Optional. The IAM service account email associated with the trigger. The // service account represents the identity of the trigger. // - // The principal who calls this API must have `iam.serviceAccounts.actAs` + // The principal who calls this API must have the `iam.serviceAccounts.actAs` // permission in the service account. See // https://cloud.google.com/iam/docs/understanding-service-accounts?hl=en#sa_common // for more information. @@ -84,8 +80,8 @@ message Trigger { // identity tokens when invoking the service. See // https://cloud.google.com/run/docs/triggering/pubsub-push#create-service-account // for information on how to invoke authenticated Cloud Run services. - // In order to create Audit Log triggers, the service account should also - // have `roles/eventarc.eventReceiver` IAM role. + // To create Audit Log triggers, the service account should also + // have the `roles/eventarc.eventReceiver` IAM role. string service_account = 9 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { @@ -96,48 +92,68 @@ message Trigger { // Required. Destination specifies where the events should be sent to. Destination destination = 10 [(google.api.field_behavior) = REQUIRED]; - // Optional. In order to deliver messages, Eventarc may use other GCP - // products as transport intermediary. This field contains a reference to that - // transport intermediary. This information can be used for debugging + // Optional. To deliver messages, Eventarc might use other GCP + // products as a transport intermediary. This field contains a reference to + // that transport intermediary. This information can be used for debugging // purposes. Transport transport = 11 [(google.api.field_behavior) = OPTIONAL]; - // Optional. User labels attached to the triggers that can be used to group - // resources. + // Optional. User labels attached to the triggers that can be used to group resources. map labels = 12 [(google.api.field_behavior) = OPTIONAL]; - // Output only. This checksum is computed by the server based on the value of - // other fields, and may be sent only on create requests to ensure the client - // has an up-to-date value before proceeding. + // Optional. The name of the channel associated with the trigger in + // `projects/{project}/locations/{location}/channels/{channel}` format. + // You must provide a channel to receive events from Eventarc SaaS partners. + string channel = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. This checksum is computed by the server based on the value of other + // fields, and might be sent only on create requests to ensure that the + // client has an up-to-date value before proceeding. string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Filters events based on exact matches on the CloudEvents attributes. message EventFilter { - // Required. The name of a CloudEvents attribute. Currently, only a subset of - // attributes are supported for filtering. + // Required. The name of a CloudEvents attribute. Currently, only a subset of attributes + // are supported for filtering. // // All triggers MUST provide a filter for the 'type' attribute. string attribute = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The value for the attribute. string value = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The operator used for matching the events with the value of the + // filter. If not specified, only events that have an exact key-value pair + // specified in the filter are matched. The only allowed value is + // `match-path-pattern`. + string operator = 3 [(google.api.field_behavior) = OPTIONAL]; } // Represents a target of an invocation over HTTP. message Destination { oneof descriptor { - // Cloud Run fully-managed service that receives the events. The service - // should be running in the same project of the trigger. + // Cloud Run fully-managed resource that receives the events. The resource + // should be in the same project as the trigger. CloudRun cloud_run = 1; + + // The Cloud Function resource name. Only Cloud Functions V2 is supported. + // Format: `projects/{project}/locations/{location}/functions/{function}` + string cloud_function = 2 [(google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/CloudFunction" + }]; + + // A GKE service capable of receiving events. The service should be running + // in the same project as the trigger. + GKE gke = 3; } } -// Represents the transport intermediaries created for the trigger in order to +// Represents the transport intermediaries created for the trigger to // deliver events. message Transport { oneof intermediary { - // The Pub/Sub topic and subscription used by Eventarc as delivery + // The Pub/Sub topic and subscription used by Eventarc as a transport // intermediary. Pubsub pubsub = 1; } @@ -148,17 +164,18 @@ message CloudRun { // Required. The name of the Cloud Run service being addressed. See // https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services. // - // Only services located in the same project of the trigger object + // Only services located in the same project as the trigger object // can be addressed. string service = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { type: "run.googleapis.com/Service" } + (google.api.resource_reference) = { + type: "run.googleapis.com/Service" + } ]; - // Optional. The relative path on the Cloud Run service the events should be - // sent to. + // Optional. The relative path on the Cloud Run service the events should be sent to. // - // The value must conform to the definition of URI path segment (section 3.3 + // The value must conform to the definition of a URI path segment (section 3.3 // of RFC2396). Examples: "/route", "route", "route/subroute". string path = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -166,19 +183,43 @@ message CloudRun { string region = 3 [(google.api.field_behavior) = REQUIRED]; } +// Represents a GKE destination. +message GKE { + // Required. The name of the cluster the GKE service is running in. The cluster must be + // running in the same project as the trigger being created. + string cluster = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the Google Compute Engine in which the cluster resides, which + // can either be compute zone (for example, us-central1-a) for the zonal + // clusters or region (for example, us-central1) for regional clusters. + string location = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The namespace the GKE service is running in. + string namespace = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the GKE service. + string service = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The relative path on the GKE service the events should be sent to. + // + // The value must conform to the definition of a URI path segment (section 3.3 + // of RFC2396). Examples: "/route", "route", "route/subroute". + string path = 5 [(google.api.field_behavior) = OPTIONAL]; +} + // Represents a Pub/Sub transport. message Pubsub { - // Optional. The name of the Pub/Sub topic created and managed by Eventarc - // system as a transport for the event delivery. Format: + // Optional. The name of the Pub/Sub topic created and managed by Eventarc as + // a transport for the event delivery. Format: // `projects/{PROJECT_ID}/topics/{TOPIC_NAME}`. // - // You may set an existing topic for triggers of the type - // `google.cloud.pubsub.topic.v1.messagePublished` only. The topic you provide - // here will not be deleted by Eventarc at trigger deletion. + // You can set an existing topic for triggers of the type + // `google.cloud.pubsub.topic.v1.messagePublished`. The topic you provide + // here is not deleted by Eventarc at trigger deletion. string topic = 1 [(google.api.field_behavior) = OPTIONAL]; - // Output only. The name of the Pub/Sub subscription created and managed by - // Eventarc system as a transport for the event delivery. Format: + // Output only. The name of the Pub/Sub subscription created and managed by Eventarc + // as a transport for the event delivery. Format: // `projects/{PROJECT_ID}/subscriptions/{SUBSCRIPTION_NAME}`. string subscription = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/filestore/v1/BUILD.bazel b/google/cloud/filestore/v1/BUILD.bazel index f727ece4c..4de936dcf 100644 --- a/google/cloud/filestore/v1/BUILD.bazel +++ b/google/cloud/filestore/v1/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":filestore_java_grpc", ], + transport = "grpc+rest", deps = [ ":filestore_java_proto", "//google/cloud/common:common_java_proto", @@ -85,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "filestore_java_gapic_test_suite", test_classes = [ + "com.google.cloud.filestore.v1.CloudFilestoreManagerClientHttpJsonTest", "com.google.cloud.filestore.v1.CloudFilestoreManagerClientTest", ], runtime_deps = [":filestore_java_gapic_test"], @@ -93,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-filestore-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":filestore_java_gapic", ":filestore_java_grpc", @@ -132,6 +136,7 @@ go_gapic_library( importpath = "cloud.google.com/go/filestore/apiv1;filestore", metadata = True, service_yaml = "file_v1.yaml", + transport = "grpc+rest", deps = [ ":filestore_go_proto", "//google/cloud/common:common_go_proto", @@ -166,12 +171,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "filestore_py_gapic", srcs = [":filestore_proto"], grpc_service_config = "file_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/cloud/common:common_py_proto", + ], +) + +py_test( + name = "filestore_py_gapic_test", + srcs = [ + "filestore_py_gapic_pytest.py", + "filestore_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":filestore_py_gapic"], ) # Open Source Packages @@ -332,6 +352,7 @@ csharp_gapic_library( srcs = [":filestore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "file_grpc_service_config.json", + service_yaml = "file_v1.yaml", deps = [ ":filestore_csharp_grpc", ":filestore_csharp_proto", diff --git a/google/cloud/filestore/v1beta1/BUILD.bazel b/google/cloud/filestore/v1beta1/BUILD.bazel index de74c9edb..780497258 100644 --- a/google/cloud/filestore/v1beta1/BUILD.bazel +++ b/google/cloud/filestore/v1beta1/BUILD.bazel @@ -40,8 +40,8 @@ proto_library_with_info( name = "filestore_proto_with_info", deps = [ ":filestore_proto", - "//google/cloud/common:common_proto", "//google/cloud:common_resources_proto", + "//google/cloud/common:common_proto", ], ) @@ -74,10 +74,12 @@ java_grpc_library( java_gapic_library( name = "filestore_java_gapic", srcs = [":filestore_proto_with_info"], + gapic_yaml = "file_gapic.yaml", grpc_service_config = "file_grpc_service_config.json", test_deps = [ ":filestore_java_grpc", ], + transport = "grpc+rest", deps = [ ":filestore_java_proto", "//google/cloud/common:common_proto", @@ -87,6 +89,7 @@ java_gapic_library( java_gapic_test( name = "filestore_java_gapic_test_suite", test_classes = [ + "com.google.cloud.filestore.v1beta1.CloudFilestoreManagerClientHttpJsonTest", "com.google.cloud.filestore.v1beta1.CloudFilestoreManagerClientTest", ], runtime_deps = [":filestore_java_gapic_test"], @@ -95,6 +98,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-filestore-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":filestore_java_gapic", ":filestore_java_grpc", @@ -133,6 +138,7 @@ go_gapic_library( importpath = "cloud.google.com/go/filestore/apiv1beta1;filestore", metadata = True, service_yaml = "file_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":filestore_go_proto", "//google/cloud/common:common_go_proto", @@ -171,6 +177,7 @@ go_gapic_assembly_pkg( # "@com_google_googleapis_imports//:imports.bzl", # "py_gapic_assembly_pkg", # "py_gapic_library", +# "py_test", # ) # py_gapic_library( @@ -212,6 +219,7 @@ php_grpc_library( php_gapic_library( name = "filestore_php_gapic", srcs = [":filestore_proto_with_info"], + gapic_yaml = "file_gapic.yaml", grpc_service_config = "file_grpc_service_config.json", service_yaml = "file_v1beta1.yaml", deps = [ @@ -337,6 +345,7 @@ csharp_gapic_library( srcs = [":filestore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "file_grpc_service_config.json", + service_yaml = "file_v1beta1.yaml", deps = [ ":filestore_csharp_grpc", ":filestore_csharp_proto", diff --git a/google/cloud/filestore/v1beta1/file_gapic.yaml b/google/cloud/filestore/v1beta1/file_gapic.yaml new file mode 100644 index 000000000..071db78e3 --- /dev/null +++ b/google/cloud/filestore/v1beta1/file_gapic.yaml @@ -0,0 +1,41 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +# A list of API interface configurations. +interfaces: +# The fully qualified name of the API interface. +- name: google.cloud.filestore.v1beta1.CloudFilestoreManager + methods: + # Both CreateInstance and DeleteSnapshot can take a long time to complete. + # The default client-side timeouts cause the client to give up on the request early, + # so the following configuration increases it: + # See go/client-self-service#configure-long-running-operation-polling-timeouts-optional + - name: CreateInstance + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 360000 # 6 minutes + total_poll_timeout_millis: 7200000 # 120 minutes + - name: DeleteSnapshot + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 360000 # 6 minutes + total_poll_timeout_millis: 7200000 # 120 minutes + - name: DeleteInstance + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 360000 # 6 minutes + total_poll_timeout_millis: 900000 # 15 minutes + - name: UpdateInstance + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 360000 # 6 minutes + total_poll_timeout_millis: 900000 # 15 minutes + - name: RestoreInstance + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 360000 # 6 minutes + total_poll_timeout_millis: 7200000 # 120 minutes diff --git a/google/cloud/functions/v1/BUILD.bazel b/google/cloud/functions/v1/BUILD.bazel index 35f6541f7..7d90fad67 100644 --- a/google/cloud/functions/v1/BUILD.bazel +++ b/google/cloud/functions/v1/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -50,7 +50,6 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## - load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -74,13 +73,17 @@ java_grpc_library( java_gapic_library( name = "functions_java_gapic", srcs = [":functions_proto_with_info"], + gapic_yaml = None, grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v1.yaml", test_deps = [ ":functions_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":functions_java_proto", + "//google/api:api_java_proto", "//google/iam/v1:iam_java_proto", ], ) @@ -88,6 +91,7 @@ java_gapic_library( java_gapic_test( name = "functions_java_gapic_test_suite", test_classes = [ + "com.google.cloud.functions.v1.CloudFunctionsServiceClientHttpJsonTest", "com.google.cloud.functions.v1.CloudFunctionsServiceClientTest", ], runtime_deps = [":functions_java_gapic_test"], @@ -96,6 +100,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-functions-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":functions_java_gapic", ":functions_java_grpc", @@ -132,7 +138,9 @@ go_gapic_library( srcs = [":functions_proto_with_info"], grpc_service_config = "functions_grpc_service_config.json", importpath = "cloud.google.com/go/functions/apiv1;functions", + metadata = True, service_yaml = "cloudfunctions_v1.yaml", + transport = "grpc+rest", deps = [ ":functions_go_proto", "//google/iam/v1:iam_go_proto", @@ -156,6 +164,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-functions-v1-go", deps = [ ":functions_go_gapic", + ":functions_go_gapic_srcjar-metadata.srcjar", ":functions_go_gapic_srcjar-test.srcjar", ":functions_go_proto", ], @@ -168,14 +177,31 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "functions_py_gapic", srcs = [":functions_proto"], grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "functions_py_gapic_test", + srcs = [ + "functions_py_gapic_pytest.py", + "functions_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":functions_py_gapic"], ) +# Open Source Packages py_gapic_assembly_pkg( name = "functions-v1-py", deps = [ @@ -280,11 +306,11 @@ ruby_cloud_gapic_library( name = "functions_ruby_gapic", srcs = [":functions_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-functions-v1", - "ruby-cloud-env-prefix=FUNCTIONS", - "ruby-cloud-product-url=https://cloud.google.com/functions", "ruby-cloud-api-id=cloudfunctions.googleapis.com", "ruby-cloud-api-shortname=cloudfunctions", + "ruby-cloud-env-prefix=FUNCTIONS", + "ruby-cloud-gem-name=google-cloud-functions-v1", + "ruby-cloud-product-url=https://cloud.google.com/functions", ], grpc_service_config = "functions_grpc_service_config.json", ruby_cloud_description = "The Cloud Functions API manages lightweight user-provided functions executed in response to events.", @@ -332,6 +358,7 @@ csharp_gapic_library( srcs = [":functions_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v1.yaml", deps = [ ":functions_csharp_grpc", ":functions_csharp_proto", diff --git a/google/cloud/functions/v1/functions.proto b/google/cloud/functions/v1/functions.proto index 29693ddaa..7592f3bed 100644 --- a/google/cloud/functions/v1/functions.proto +++ b/google/cloud/functions/v1/functions.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -191,7 +191,6 @@ service CloudFunctionsService { // Describes a Cloud Function that contains user computation executed in // response to an event. It encapsulate function and triggers configurations. -// Next tag: 36 message CloudFunction { option (google.api.resource) = { type: "cloudfunctions.googleapis.com/CloudFunction" @@ -233,6 +232,23 @@ message CloudFunction { ALLOW_INTERNAL_AND_GCLB = 3; } + // Docker Registry to use for storing function Docker images. + enum DockerRegistry { + // Unspecified. + DOCKER_REGISTRY_UNSPECIFIED = 0; + + // Docker images will be stored in multi-regional Container Registry + // repositories named `gcf`. + CONTAINER_REGISTRY = 1; + + // Docker images will be stored in regional Artifact Registry repositories. + // By default, GCF will create and use repositories named `gcf-artifacts` + // in every region in which a function is deployed. But the repository to + // use can also be specified by the user using the `docker_repository` + // field. + ARTIFACT_REGISTRY = 2; + } + // A user-defined name of the function. Function names must be unique // globally and match pattern `projects/*/locations/*/functions/*` string name = 1; @@ -380,8 +396,9 @@ message CloudFunction { // the `docker_repository` field that was created with the same KMS crypto // key. // - // The following service accounts need to be granted Cloud KMS crypto key - // encrypter/decrypter roles on the key. + // The following service accounts need to be granted the role 'Cloud KMS + // CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter)' + // on the Key/KeyRing/Project/Organization (least access preferred). // // 1. Google Cloud Functions service account // (service-{project_number}@gcf-admin-robot.iam.gserviceaccount.com) - @@ -450,6 +467,14 @@ message CloudFunction { string docker_repository = 34 [(google.api.resource_reference) = { type: "artifactregistry.googleapis.com/Repository" }]; + + // Docker Registry to use for this deployment. + // + // If `docker_repository` field is specified, this field will be automatically + // set as `ARTIFACT_REGISTRY`. + // If unspecified, it currently defaults to `CONTAINER_REGISTRY`. + // This field may be overridden by the backend for eligible deployments. + DockerRegistry docker_registry = 35; } // Describes SourceRepository, used to represent parameters related to @@ -575,10 +600,31 @@ message FailurePolicy { } } +// Describes the current stage of a deployment. +enum CloudFunctionStatus { + // Not specified. Invalid state. + CLOUD_FUNCTION_STATUS_UNSPECIFIED = 0; + + // Function has been successfully deployed and is serving. + ACTIVE = 1; + + // Function deployment failed and the function isn’t serving. + OFFLINE = 2; + + // Function is being created or updated. + DEPLOY_IN_PROGRESS = 3; + + // Function is being deleted. + DELETE_IN_PROGRESS = 4; + + // Function deployment failed and the function serving state is undefined. + // The function should be updated or deleted to move it out of this state. + UNKNOWN = 5; +} + // Configuration for a secret environment variable. It has the information // necessary to fetch the secret value from secret manager and expose it as an -// environment variable. Secret value is not a part of the configuration. Secret -// values are only fetched when a new clone starts. +// environment variable. message SecretEnvVar { // Name of the environment variable. string key = 1; @@ -594,7 +640,7 @@ message SecretEnvVar { // Version of the secret (version number or the string 'latest'). It is // recommended to use a numeric version for secret environment variables as - // any updates to the secret value is not reflected until new clones start. + // any updates to the secret value is not reflected until new instances start. string version = 4; } @@ -662,32 +708,10 @@ message UpdateFunctionRequest { // Required. New version of the function. CloudFunction function = 1 [(google.api.field_behavior) = REQUIRED]; - // Required list of fields to be updated in this request. + // Required. The list of fields in `CloudFunction` that have to be updated. google.protobuf.FieldMask update_mask = 2; } -// Describes the current stage of a deployment. -enum CloudFunctionStatus { - // Not specified. Invalid state. - CLOUD_FUNCTION_STATUS_UNSPECIFIED = 0; - - // Function has been successfully deployed and is serving. - ACTIVE = 1; - - // Function deployment failed and the function isn’t serving. - OFFLINE = 2; - - // Function is being created or updated. - DEPLOY_IN_PROGRESS = 3; - - // Function is being deleted. - DELETE_IN_PROGRESS = 4; - - // Function deployment failed and the function serving state is undefined. - // The function should be updated or deleted to move it out of this state. - UNKNOWN = 5; -} - // Request for the `GetFunction` method. message GetFunctionRequest { // Required. The name of the function which details should be obtained. @@ -781,6 +805,27 @@ message GenerateUploadUrlRequest { // The project and location in which the Google Cloud Storage signed URL // should be generated, specified in the format `projects/*/locations/*`. string parent = 1; + + // Resource name of a KMS crypto key (managed by the user) used to + // encrypt/decrypt function source code objects in staging Cloud Storage + // buckets. When you generate an upload url and upload your source code, it + // gets copied to a staging Cloud Storage bucket in an internal regional + // project. The source code is then copied to a versioned directory in the + // sources bucket in the consumer project during the function deployment. + // + // It must match the pattern + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + // + // The Google Cloud Functions service account + // (service-{project_number}@gcf-admin-robot.iam.gserviceaccount.com) must be + // granted the role 'Cloud KMS CryptoKey Encrypter/Decrypter + // (roles/cloudkms.cryptoKeyEncrypterDecrypter)' on the + // Key/KeyRing/Project/Organization (least access preferred). GCF will + // delegate access to the Google Storage service account in the internal + // project. + string kms_key_name = 2 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; } // Response of `GenerateSourceUploadUrl` method. diff --git a/google/cloud/functions/v1/operations.proto b/google/cloud/functions/v1/operations.proto index 183957cca..9d634e782 100644 --- a/google/cloud/functions/v1/operations.proto +++ b/google/cloud/functions/v1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.functions.v1; import "google/protobuf/any.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/functions/v1;functions"; option java_multiple_files = true; diff --git a/google/cloud/functions/v2/BUILD.bazel b/google/cloud/functions/v2/BUILD.bazel new file mode 100644 index 000000000..58690e183 --- /dev/null +++ b/google/cloud/functions/v2/BUILD.bazel @@ -0,0 +1,397 @@ +# 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 = "functions_proto", + srcs = [ + "functions.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//:any_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "functions_proto_with_info", + deps = [ + ":functions_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "functions_java_proto", + deps = [":functions_proto"], +) + +java_grpc_library( + name = "functions_java_grpc", + srcs = [":functions_proto"], + deps = [":functions_java_proto"], +) + +java_gapic_library( + name = "functions_java_gapic", + srcs = [":functions_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2.yaml", + test_deps = [ + ":functions_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":functions_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "functions_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.functions.v2.FunctionServiceClientHttpJsonTest", + "com.google.cloud.functions.v2.FunctionServiceClientTest", + ], + runtime_deps = [":functions_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-functions-v2-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":functions_java_gapic", + ":functions_java_grpc", + ":functions_java_proto", + ":functions_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "functions_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/functions/v2", + protos = [":functions_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "functions_go_gapic", + srcs = [":functions_proto_with_info"], + grpc_service_config = "functions_grpc_service_config.json", + importpath = "cloud.google.com/go/functions/apiv2;functions", + metadata = True, + service_yaml = "cloudfunctions_v2.yaml", + transport = "grpc+rest", + deps = [ + ":functions_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:any_go_proto", + ], +) + +go_test( + name = "functions_go_gapic_test", + srcs = [":functions_go_gapic_srcjar_test"], + embed = [":functions_go_gapic"], + importpath = "cloud.google.com/go/functions/apiv2", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-functions-v2-go", + deps = [ + ":functions_go_gapic", + ":functions_go_gapic_srcjar-metadata.srcjar", + ":functions_go_gapic_srcjar-test.srcjar", + ":functions_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "functions_py_gapic", + srcs = [":functions_proto"], + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "functions_py_gapic_test", + srcs = [ + "functions_py_gapic_pytest.py", + "functions_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":functions_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "functions-v2-py", + deps = [ + ":functions_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "functions_php_proto", + deps = [":functions_proto"], +) + +php_grpc_library( + name = "functions_php_grpc", + srcs = [":functions_proto"], + deps = [":functions_php_proto"], +) + +php_gapic_library( + name = "functions_php_gapic", + srcs = [":functions_proto_with_info"], + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2.yaml", + deps = [ + ":functions_php_grpc", + ":functions_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-functions-v2-php", + deps = [ + ":functions_php_gapic", + ":functions_php_grpc", + ":functions_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "functions_nodejs_gapic", + package_name = "@google-cloud/functions", + src = ":functions_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "functions_grpc_service_config.json", + package = "google.cloud.functions.v2", + service_yaml = "cloudfunctions_v2.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "functions-v2-nodejs", + deps = [ + ":functions_nodejs_gapic", + ":functions_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 = "functions_ruby_proto", + deps = [":functions_proto"], +) + +ruby_grpc_library( + name = "functions_ruby_grpc", + srcs = [":functions_proto"], + deps = [":functions_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "functions_ruby_gapic", + srcs = [":functions_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=cloudfunctions.googleapis.com", + "ruby-cloud-api-shortname=cloudfunctions", + "ruby-cloud-env-prefix=FUNCTIONS", + "ruby-cloud-gem-name=google-cloud-functions-v2", + "ruby-cloud-product-url=https://cloud.google.com/functions", + ], + grpc_service_config = "functions_grpc_service_config.json", + ruby_cloud_description = "The Cloud Functions API manages lightweight user-provided functions executed in response to events.", + ruby_cloud_title = "Cloud Functions V2", + service_yaml = "cloudfunctions_v2.yaml", + deps = [ + ":functions_ruby_grpc", + ":functions_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-functions-v2-ruby", + deps = [ + ":functions_ruby_gapic", + ":functions_ruby_grpc", + ":functions_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 = "functions_csharp_proto", + deps = [":functions_proto"], +) + +csharp_grpc_library( + name = "functions_csharp_grpc", + srcs = [":functions_proto"], + deps = [":functions_csharp_proto"], +) + +csharp_gapic_library( + name = "functions_csharp_gapic", + srcs = [":functions_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2.yaml", + deps = [ + ":functions_csharp_grpc", + ":functions_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-functions-v2-csharp", + deps = [ + ":functions_csharp_gapic", + ":functions_csharp_grpc", + ":functions_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "functions_cc_proto", + deps = [":functions_proto"], +) + +cc_grpc_library( + name = "functions_cc_grpc", + srcs = [":functions_proto"], + grpc_only = True, + deps = [":functions_cc_proto"], +) diff --git a/google/cloud/functions/v2/cloudfunctions_v2.yaml b/google/cloud/functions/v2/cloudfunctions_v2.yaml new file mode 100644 index 000000000..f3a3c8982 --- /dev/null +++ b/google/cloud/functions/v2/cloudfunctions_v2.yaml @@ -0,0 +1,91 @@ +type: google.api.Service +config_version: 3 +name: cloudfunctions.googleapis.com +title: Cloud Functions API + +apis: +- name: google.cloud.functions.v2.FunctionService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.functions.v2.OperationMetadata + +documentation: + summary: 'Manages lightweight user-provided functions executed in response to events.' + overview: 'Manages lightweight user-provided functions executed in response to +events.' + rules: + - 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. + +backend: + rules: + - selector: 'google.cloud.functions.v2.FunctionService.*' + deadline: 30.0 + - selector: google.cloud.location.Locations.ListLocations + deadline: 30.0 + - selector: 'google.iam.v1.IAMPolicy.*' + deadline: 30.0 + - selector: 'google.longrunning.Operations.*' + deadline: 30.0 + +http: + rules: + - selector: google.cloud.location.Locations.ListLocations + get: '/v2/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v2/{resource=projects/*/locations/*/functions/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v2/{resource=projects/*/locations/*/functions/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v2/{resource=projects/*/locations/*/functions/*}:testIamPermissions' + body: '*' + - selector: google.longrunning.Operations.GetOperation + get: '/v2/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v2/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.functions.v2.FunctionService.*' + 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 diff --git a/google/cloud/functions/v2/functions.proto b/google/cloud/functions/v2/functions.proto new file mode 100644 index 000000000..6af26ee88 --- /dev/null +++ b/google/cloud/functions/v2/functions.proto @@ -0,0 +1,1037 @@ +// 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.cloud.functions.v2; + +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/any.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/functions/v2;functions"; +option java_multiple_files = true; +option java_outer_classname = "FunctionsProto"; +option java_package = "com.google.cloud.functions.v2"; +option objc_class_prefix = "GCF"; +option (google.api.resource_definition) = { + type: "artifactregistry.googleapis.com/Repository" + pattern: "projects/{project}/locations/{location}/repositories/{repository}" +}; +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/WorkerPool" + pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}" +}; +option (google.api.resource_definition) = { + type: "run.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/services/{service}" +}; +option (google.api.resource_definition) = { + type: "vpcaccess.googleapis.com/Connector" + pattern: "projects/{project}/locations/{location}/connectors/{connector}" +}; +option (google.api.resource_definition) = { + type: "eventarc.googleapis.com/Trigger" + pattern: "projects/{project}/locations/{location}/triggers/{trigger}" +}; +option (google.api.resource_definition) = { + type: "eventarc.googleapis.com/Channel" + pattern: "projects/{project}/locations/{location}/channels/{channel}" +}; +option (google.api.resource_definition) = { + type: "pubsub.googleapis.com/Topic" + pattern: "projects/{project}/topics/{topic}" +}; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; + +// Google Cloud Functions is used to deploy functions that are executed by +// Google in response to various events. Data connected with that event is +// passed to a function as the input data. +// +// A **function** is a resource which describes a function that should be +// executed and how it is triggered. +service FunctionService { + option (google.api.default_host) = "cloudfunctions.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Returns a function with the given name from the requested project. + rpc GetFunction(GetFunctionRequest) returns (Function) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/functions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns a list of functions that belong to the requested project. + rpc ListFunctions(ListFunctionsRequest) returns (ListFunctionsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/functions" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a new function. If a function with the given name already exists in + // the specified project, the long running operation will return + // `ALREADY_EXISTS` error. + rpc CreateFunction(CreateFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/functions" + body: "function" + }; + option (google.api.method_signature) = "parent,function,function_id"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.functions.v2.Function" + metadata_type: "google.cloud.functions.v2.OperationMetadata" + }; + } + + // Updates existing function. + rpc UpdateFunction(UpdateFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{function.name=projects/*/locations/*/functions/*}" + body: "function" + }; + option (google.api.method_signature) = "function,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.functions.v2.Function" + metadata_type: "google.cloud.functions.v2.OperationMetadata" + }; + } + + // Deletes a function with the given name from the specified project. If the + // given function is used by some trigger, the trigger will be updated to + // remove this function. + rpc DeleteFunction(DeleteFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/functions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.functions.v2.OperationMetadata" + }; + } + + // Returns a signed URL for uploading a function source code. + // For more information about the signed URL usage see: + // https://cloud.google.com/storage/docs/access-control/signed-urls. + // Once the function source code upload is complete, the used signed + // URL should be provided in CreateFunction or UpdateFunction request + // as a reference to the function source code. + // + // When uploading source code to the generated signed URL, please follow + // these restrictions: + // + // * Source file type should be a zip file. + // * No credentials should be attached - the signed URLs provide access to the + // target bucket using internal service identity; if credentials were + // attached, the identity from the credentials would be used, but that + // identity does not have permissions to upload files to the URL. + // + // When making a HTTP PUT request, these two headers need to be specified: + // + // * `content-type: application/zip` + // + // And this header SHOULD NOT be specified: + // + // * `Authorization: Bearer YOUR_TOKEN` + rpc GenerateUploadUrl(GenerateUploadUrlRequest) returns (GenerateUploadUrlResponse) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/functions:generateUploadUrl" + body: "*" + }; + } + + // Returns a signed URL for downloading deployed function source code. + // The URL is only valid for a limited period and should be used within + // 30 minutes of generation. + // For more information about the signed URL usage see: + // https://cloud.google.com/storage/docs/access-control/signed-urls + rpc GenerateDownloadUrl(GenerateDownloadUrlRequest) returns (GenerateDownloadUrlResponse) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" + body: "*" + }; + } + + // Returns a list of runtimes that are supported for the requested project. + rpc ListRuntimes(ListRuntimesRequest) returns (ListRuntimesResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/runtimes" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The environment the function is hosted on. +enum Environment { + // Unspecified + ENVIRONMENT_UNSPECIFIED = 0; + + // Gen 1 + GEN_1 = 1; + + // Gen 2 + GEN_2 = 2; +} + +// Describes a Cloud Function that contains user computation executed in +// response to an event. It encapsulates function and trigger configurations. +message Function { + option (google.api.resource) = { + type: "cloudfunctions.googleapis.com/Function" + pattern: "projects/{project}/locations/{location}/functions/{function}" + plural: "functions" + singular: "function" + }; + + // Describes the current state of the function. + enum State { + // Not specified. Invalid state. + STATE_UNSPECIFIED = 0; + + // Function has been successfully deployed and is serving. + ACTIVE = 1; + + // Function deployment failed and the function is not serving. + FAILED = 2; + + // Function is being created or updated. + DEPLOYING = 3; + + // Function is being deleted. + DELETING = 4; + + // Function deployment failed and the function serving state is undefined. + // The function should be updated or deleted to move it out of this state. + UNKNOWN = 5; + } + + // A user-defined name of the function. Function names must be unique + // globally and match pattern `projects/*/locations/*/functions/*` + string name = 1; + + // Describe whether the function is gen1 or gen2. + Environment environment = 10; + + // User-provided description of a function. + string description = 2; + + // Describes the Build step of the function that builds a container from the + // given source. + BuildConfig build_config = 3; + + // Describes the Service being deployed. Currently deploys services to Cloud + // Run (fully managed). + ServiceConfig service_config = 4; + + // An Eventarc trigger managed by Google Cloud Functions that fires events in + // response to a condition in another service. + EventTrigger event_trigger = 5; + + // Output only. State of the function. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp of a Cloud Function. + google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Labels associated with this Cloud Function. + map labels = 8; + + // Output only. State Messages for this Cloud Function. + repeated StateMessage state_messages = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Informational messages about the state of the Cloud Function or Operation. +message StateMessage { + // Severity of the state message. + enum Severity { + // Not specified. Invalid severity. + SEVERITY_UNSPECIFIED = 0; + + // ERROR-level severity. + ERROR = 1; + + // WARNING-level severity. + WARNING = 2; + + // INFO-level severity. + INFO = 3; + } + + // Severity of the state message. + Severity severity = 1; + + // One-word CamelCase type of the state message. + string type = 2; + + // The message. + string message = 3; +} + +// Location of the source in an archive file in Google Cloud Storage. +message StorageSource { + // Google Cloud Storage bucket containing the source (see + // [Bucket Name + // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). + string bucket = 1; + + // Google Cloud Storage object containing the source. + // + // This object must be a gzipped archive file (`.tar.gz`) containing source to + // build. + string object = 2; + + // Google Cloud Storage generation for the object. If the generation is + // omitted, the latest generation will be used. + int64 generation = 3; +} + +// Location of the source in a Google Cloud Source Repository. +message RepoSource { + // A revision within the Cloud Source Repository must be specified in + // one of these ways. + oneof revision { + // Regex matching branches to build. + // + // The syntax of the regular expressions accepted is the syntax accepted by + // RE2 and described at https://github.com/google/re2/wiki/Syntax + string branch_name = 3; + + // Regex matching tags to build. + // + // The syntax of the regular expressions accepted is the syntax accepted by + // RE2 and described at https://github.com/google/re2/wiki/Syntax + string tag_name = 4; + + // Explicit commit SHA to build. + string commit_sha = 5; + } + + // ID of the project that owns the Cloud Source Repository. If omitted, the + // project ID requesting the build is assumed. + string project_id = 1; + + // Name of the Cloud Source Repository. + string repo_name = 2; + + // Directory, relative to the source root, in which to run the build. + // + // This must be a relative path. If a step's `dir` is specified and is an + // absolute path, this value is ignored for that step's execution. + // eg. helloworld (no leading slash allowed) + string dir = 6; + + // Only trigger a build if the revision regex does NOT match the revision + // regex. + bool invert_regex = 7; +} + +// The location of the function source code. +message Source { + // Location of the source. + // At least one source needs to be provided for the deployment to succeed. + oneof source { + // If provided, get the source from this location in Google Cloud Storage. + StorageSource storage_source = 1; + + // If provided, get the source from this location in a Cloud Source + // Repository. + RepoSource repo_source = 2; + } +} + +// Provenance of the source. Ways to find the original source, or verify that +// some source was used for this build. +message SourceProvenance { + // A copy of the build's `source.storage_source`, if exists, with any + // generations resolved. + StorageSource resolved_storage_source = 1; + + // A copy of the build's `source.repo_source`, if exists, with any + // revisions resolved. + RepoSource resolved_repo_source = 2; +} + +// Describes the Build step of the function that builds a container from the +// given source. +message BuildConfig { + // Output only. The Cloud Build name of the latest successful deployment of the + // function. + string build = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/Build" + } + ]; + + // The runtime in which to run the function. Required when deploying a new + // function, optional when updating an existing function. For a complete + // list of possible choices, see the + // [`gcloud` command + // reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime). + string runtime = 2; + + // The name of the function (as defined in source code) that will be + // executed. Defaults to the resource name suffix, if not specified. For + // backward compatibility, if function with given name is not found, then the + // system will try to use function named "function". + // For Node.js this is name of a function exported by the module specified + // in `source_location`. + string entry_point = 3; + + // The location of the function source code. + Source source = 4; + + // Output only. A permanent fixed identifier for source. + SourceProvenance source_provenance = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of the Cloud Build Custom Worker Pool that should be used to build the + // function. The format of this field is + // `projects/{project}/locations/{region}/workerPools/{workerPool}` where + // {project} and {region} are the project id and region respectively where the + // worker pool is defined and {workerPool} is the short name of the worker + // pool. + // + // If the project id is not the same as the function, then the Cloud + // Functions Service Agent + // (service-@gcf-admin-robot.iam.gserviceaccount.com) must be + // granted the role Cloud Build Custom Workers Builder + // (roles/cloudbuild.customworkers.builder) in the project. + string worker_pool = 5 [(google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/WorkerPool" + }]; + + // User-provided build-time environment variables for the function + map environment_variables = 6; + + // Optional. User managed repository created in Artifact Registry optionally with a + // customer managed encryption key. This is the repository to which the + // function docker image will be pushed after it is built by Cloud Build. + // If unspecified, GCF will create and use a repository named 'gcf-artifacts' + // for every deployed region. + // + // It must match the pattern + // `projects/{project}/locations/{location}/repositories/{repository}`. + // + // Cross-project repositories are not supported. + // Cross-location repositories are not supported. + // Repository format must be 'DOCKER'. + string docker_repository = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/Repository" + } + ]; +} + +// Describes the Service being deployed. +// Currently Supported : Cloud Run (fully managed). +message ServiceConfig { + // Available egress settings. + // + // This controls what traffic is diverted through the VPC Access Connector + // resource. By default PRIVATE_RANGES_ONLY will be used. + enum VpcConnectorEgressSettings { + // Unspecified. + VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED = 0; + + // Use the VPC Access Connector only for private IP space from RFC1918. + PRIVATE_RANGES_ONLY = 1; + + // Force the use of VPC Access Connector for all egress traffic from the + // function. + ALL_TRAFFIC = 2; + } + + // Available ingress settings. + // + // This controls what traffic can reach the function. + // + // If unspecified, ALLOW_ALL will be used. + enum IngressSettings { + // Unspecified. + INGRESS_SETTINGS_UNSPECIFIED = 0; + + // Allow HTTP traffic from public and private sources. + ALLOW_ALL = 1; + + // Allow HTTP traffic from only private VPC sources. + ALLOW_INTERNAL_ONLY = 2; + + // Allow HTTP traffic from private VPC sources and through GCLB. + ALLOW_INTERNAL_AND_GCLB = 3; + } + + // Output only. Name of the service associated with a Function. + // The format of this field is + // `projects/{project}/locations/{region}/services/{service}` + string service = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "run.googleapis.com/Service" + } + ]; + + // The function execution timeout. Execution is considered failed and + // can be terminated if the function is not completed at the end of the + // timeout period. Defaults to 60 seconds. + int32 timeout_seconds = 2; + + // The amount of memory available for a function. + // Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is + // supplied the value is interpreted as bytes. + // See + // https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go + // a full description. + string available_memory = 13; + + // Environment variables that shall be available during function execution. + map environment_variables = 4; + + // The limit on the maximum number of function instances that may coexist at a + // given time. + // + // In some cases, such as rapid traffic surges, Cloud Functions may, for a + // short period of time, create more instances than the specified max + // instances limit. If your function cannot tolerate this temporary behavior, + // you may want to factor in a safety margin and set a lower max instances + // value than your function can tolerate. + // + // See the [Max + // Instances](https://cloud.google.com/functions/docs/max-instances) Guide for + // more details. + int32 max_instance_count = 5; + + // The limit on the minimum number of function instances that may coexist at a + // given time. + // + // Function instances are kept in idle state for a short period after they + // finished executing the request to reduce cold start time for subsequent + // requests. Setting a minimum instance count will ensure that the given + // number of instances are kept running in idle state always. This can help + // with cold start times when jump in incoming request count occurs after the + // idle instance would have been stopped in the default case. + int32 min_instance_count = 12; + + // The Serverless VPC Access connector that this cloud function can connect + // to. The format of this field is `projects/*/locations/*/connectors/*`. + string vpc_connector = 6 [(google.api.resource_reference) = { + type: "vpcaccess.googleapis.com/Connector" + }]; + + // The egress settings for the connector, controlling what traffic is diverted + // through it. + VpcConnectorEgressSettings vpc_connector_egress_settings = 7; + + // The ingress settings for the function, controlling what traffic can reach + // it. + IngressSettings ingress_settings = 8; + + // Output only. URI of the Service deployed. + string uri = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The email of the service's service account. If empty, defaults to + // `{project_number}-compute@developer.gserviceaccount.com`. + string service_account_email = 10; + + // Whether 100% of traffic is routed to the latest revision. + // On CreateFunction and UpdateFunction, when set to true, the revision being + // deployed will serve 100% of traffic, ignoring any traffic split settings, + // if any. On GetFunction, true will be returned if the latest revision is + // serving 100% of traffic. + bool all_traffic_on_latest_revision = 16; + + // Secret environment variables configuration. + repeated SecretEnvVar secret_environment_variables = 17; + + // Secret volumes configuration. + repeated SecretVolume secret_volumes = 19; + + // Output only. The name of service revision. + string revision = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for a secret environment variable. It has the information +// necessary to fetch the secret value from secret manager and expose it as an +// environment variable. +message SecretEnvVar { + // Name of the environment variable. + string key = 1; + + // Project identifier (preferably project number but can also be the + // project ID) of the project that contains the secret. If not set, it is + // assumed that the secret is in the same project as the function. + string project_id = 2; + + // Name of the secret in secret manager (not the full resource name). + string secret = 3; + + // Version of the secret (version number or the string 'latest'). It is + // recommended to use a numeric version for secret environment variables as + // any updates to the secret value is not reflected until new instances + // start. + string version = 4; +} + +// Configuration for a secret volume. It has the information necessary to fetch +// the secret value from secret manager and make it available as files mounted +// at the requested paths within the application container. +message SecretVolume { + // Configuration for a single version. + message SecretVersion { + // Version of the secret (version number or the string 'latest'). It is + // preferable to use `latest` version with secret volumes as secret value + // changes are reflected immediately. + string version = 1; + + // Relative path of the file under the mount path where the secret value for + // this version will be fetched and made available. For example, setting the + // mount_path as '/etc/secrets' and path as `secret_foo` would mount the + // secret value file at `/etc/secrets/secret_foo`. + string path = 2; + } + + // The path within the container to mount the secret volume. For example, + // setting the mount_path as `/etc/secrets` would mount the secret value files + // under the `/etc/secrets` directory. This directory will also be completely + // shadowed and unavailable to mount any other secrets. + // Recommended mount path: /etc/secrets + string mount_path = 1; + + // Project identifier (preferably project number but can also be the project + // ID) of the project that contains the secret. If not set, it is + // assumed that the secret is in the same project as the function. + string project_id = 2; + + // Name of the secret in secret manager (not the full resource name). + string secret = 3; + + // List of secret versions to mount for this secret. If empty, the `latest` + // version of the secret will be made available in a file named after the + // secret under the mount point. + repeated SecretVersion versions = 4; +} + +// Describes EventTrigger, used to request events to be sent from another +// service. +message EventTrigger { + // Describes the retry policy in case of function's execution failure. + // Retried execution is charged as any other execution. + enum RetryPolicy { + // Not specified. + RETRY_POLICY_UNSPECIFIED = 0; + + // Do not retry. + RETRY_POLICY_DO_NOT_RETRY = 1; + + // Retry on any failure, retry up to 7 days with an exponential backoff + // (capped at 10 seconds). + RETRY_POLICY_RETRY = 2; + } + + // Output only. The resource name of the Eventarc trigger. The format of this field is + // `projects/{project}/locations/{region}/triggers/{trigger}`. + string trigger = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Trigger" + } + ]; + + // The region that the trigger will be in. The trigger will only receive + // events originating in this region. It can be the same + // region as the function, a different region or multi-region, or the global + // region. If not provided, defaults to the same region as the function. + string trigger_region = 2; + + // Required. The type of event to observe. For example: + // `google.cloud.audit.log.v1.written` or + // `google.cloud.pubsub.topic.v1.messagePublished`. + string event_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Criteria used to filter events. + repeated EventFilter event_filters = 4; + + // Optional. The name of a Pub/Sub topic in the same project that will be used + // as the transport topic for the event delivery. Format: + // `projects/{project}/topics/{topic}`. + // + // This is only valid for events of type + // `google.cloud.pubsub.topic.v1.messagePublished`. The topic provided here + // will not be deleted at function deletion. + string pubsub_topic = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "pubsub.googleapis.com/Topic" + } + ]; + + // Optional. The email of the trigger's service account. The service account must have + // permission to invoke Cloud Run services, the permission is + // `run.routes.invoke`. + // If empty, defaults to the Compute Engine default service account: + // `{project_number}-compute@developer.gserviceaccount.com`. + string service_account_email = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If unset, then defaults to ignoring failures (i.e. not retrying them). + RetryPolicy retry_policy = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the channel associated with the trigger in + // `projects/{project}/locations/{location}/channels/{channel}` format. + // You must provide a channel to receive events from Eventarc SaaS partners. + string channel = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Channel" + } + ]; +} + +// Filters events based on exact matches on the CloudEvents attributes. +message EventFilter { + // Required. The name of a CloudEvents attribute. + string attribute = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The value for the attribute. + string value = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The operator used for matching the events with the value of the + // filter. If not specified, only events that have an exact key-value pair + // specified in the filter are matched. The only allowed value is + // `match-path-pattern`. + string operator = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for the `GetFunction` method. +message GetFunctionRequest { + // Required. The name of the function which details should be obtained. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Request for the `ListFunctions` method. +message ListFunctionsRequest { + // Required. The project and location from which the function should be listed, + // specified in the format `projects/*/locations/*` + // If you want to list functions in all locations, use "-" in place of a + // location. When listing functions in all locations, if one or more + // location(s) are unreachable, the response will contain functions from all + // reachable locations along with the names of any unreachable locations. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudfunctions.googleapis.com/Function" + } + ]; + + // Maximum number of functions to return per call. + int32 page_size = 2; + + // The value returned by the last + // `ListFunctionsResponse`; indicates that + // this is a continuation of a prior `ListFunctions` call, and that the + // system should return the next page of data. + string page_token = 3; + + // The filter for Functions that match the filter expression, + // following the syntax outlined in https://google.aip.dev/160. + string filter = 4; + + // The sorting order of the resources returned. Value should be a comma + // separated list of fields. The default sorting oder is ascending. + // See https://google.aip.dev/132#ordering. + string order_by = 5; +} + +// Response for the `ListFunctions` method. +message ListFunctionsResponse { + // The functions that match the request. + repeated Function functions = 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; + + // Locations that could not be reached. The response does not include any + // functions from these locations. + repeated string unreachable = 3; +} + +// Request for the `CreateFunction` method. +message CreateFunctionRequest { + // Required. The project and location in which the function should be created, specified + // in the format `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. Function to be created. + Function function = 2 [(google.api.field_behavior) = REQUIRED]; + + // The ID to use for the function, which will become the final component of + // the function's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + string function_id = 3; +} + +// Request for the `UpdateFunction` method. +message UpdateFunctionRequest { + // Required. New version of the function. + Function function = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + // If no field mask is provided, all provided fields in the request will be + // updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for the `DeleteFunction` method. +message DeleteFunctionRequest { + // Required. The name of the function which should be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Request of `GenerateSourceUploadUrl` method. +message GenerateUploadUrlRequest { + // Required. The project and location in which the Google Cloud Storage signed URL + // should be generated, specified in the format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// Response of `GenerateSourceUploadUrl` method. +message GenerateUploadUrlResponse { + // The generated Google Cloud Storage signed URL that should be used for a + // function source code upload. The uploaded file should be a zip archive + // which contains a function. + string upload_url = 1; + + // The location of the source code in the upload bucket. + // + // Once the archive is uploaded using the `upload_url` use this field to + // set the `function.build_config.source.storage_source` + // during CreateFunction and UpdateFunction. + // + // Generation defaults to 0, as Cloud Storage provides a new generation only + // upon uploading a new object or version of an object. + StorageSource storage_source = 2; +} + +// Request of `GenerateDownloadUrl` method. +message GenerateDownloadUrlRequest { + // Required. The name of function for which source code Google Cloud Storage signed + // URL should be generated. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Response of `GenerateDownloadUrl` method. +message GenerateDownloadUrlResponse { + // The generated Google Cloud Storage signed URL that should be used for + // function source code download. + string download_url = 1; +} + +// Request for the `ListRuntimes` method. +message ListRuntimesRequest { + // Required. The project and location from which the runtimes 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" + } + ]; + + // The filter for Runtimes that match the filter expression, + // following the syntax outlined in https://google.aip.dev/160. + string filter = 2; +} + +// Response for the `ListRuntimes` method. +message ListRuntimesResponse { + // Describes a runtime and any special information (e.g., deprecation status) + // related to it. + message Runtime { + // The name of the runtime, e.g., 'go113', 'nodejs12', etc. + string name = 1; + + // The user facing name, eg 'Go 1.13', 'Node.js 12', etc. + string display_name = 5; + + // The stage of life this runtime is in, e.g., BETA, GA, etc. + RuntimeStage stage = 2; + + // Warning messages, e.g., a deprecation warning. + repeated string warnings = 3; + + // The environment for the runtime. + Environment environment = 4; + } + + // The various stages that a runtime can be in. + enum RuntimeStage { + // Not specified. + RUNTIME_STAGE_UNSPECIFIED = 0; + + // The runtime is in development. + DEVELOPMENT = 1; + + // The runtime is in the Alpha stage. + ALPHA = 2; + + // The runtime is in the Beta stage. + BETA = 3; + + // The runtime is generally available. + GA = 4; + + // The runtime is deprecated. + DEPRECATED = 5; + + // The runtime is no longer supported. + DECOMMISSIONED = 6; + } + + // The runtimes that match the request. + repeated Runtime runtimes = 1; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // Server-defined resource path for the target of the operation. + string target = 3; + + // Name of the verb executed by the operation. + string verb = 4; + + // Human-readable status of the operation, if any. + string status_detail = 5; + + // 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 cancel_requested = 6; + + // API version used to start the operation. + string api_version = 7; + + // The original request that started the operation. + google.protobuf.Any request_resource = 8; + + // Mechanism for reporting in-progress stages + repeated Stage stages = 9; +} + +// Each Stage of the deployment process +message Stage { + // Possible names for a Stage + enum Name { + // Not specified. Invalid name. + NAME_UNSPECIFIED = 0; + + // Artifact Regsitry Stage + ARTIFACT_REGISTRY = 1; + + // Build Stage + BUILD = 2; + + // Service Stage + SERVICE = 3; + + // Trigger Stage + TRIGGER = 4; + + // Service Rollback Stage + SERVICE_ROLLBACK = 5; + + // Trigger Rollback Stage + TRIGGER_ROLLBACK = 6; + } + + // Possible states for a Stage + enum State { + // Not specified. Invalid state. + STATE_UNSPECIFIED = 0; + + // Stage has not started. + NOT_STARTED = 1; + + // Stage is in progress. + IN_PROGRESS = 2; + + // Stage has completed. + COMPLETE = 3; + } + + // Name of the Stage. This will be unique for each Stage. + Name name = 1; + + // Message describing the Stage + string message = 2; + + // Current state of the Stage + State state = 3; + + // Resource of the Stage + string resource = 4; + + // Link to the current Stage resource + string resource_uri = 5; + + // State messages from the current Stage. + repeated StateMessage state_messages = 6; +} diff --git a/google/cloud/functions/v2/functions_grpc_service_config.json b/google/cloud/functions/v2/functions_grpc_service_config.json new file mode 100644 index 000000000..0ceccf828 --- /dev/null +++ b/google/cloud/functions/v2/functions_grpc_service_config.json @@ -0,0 +1,44 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.functions.v2.CloudFunctionsService", + "method": "ListFunctions" + }, + { + "service": "google.cloud.functions.v2.CloudFunctionsService", + "method": "GetFunction" + }, + { + "service": "google.cloud.functions.v2.CloudFunctionsService", + "method": "UpdateFunction" + }, + { + "service": "google.cloud.functions.v2.CloudFunctionsService", + "method": "DeleteFunction" + }, + { + "service": "google.cloud.functions.v2.CloudFunctionsService", + "method": "ListRuntimes" + } + ], + "timeout": "600s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.functions.v2.CloudFunctionsService", + "method": "CreateFunction" + } + ], + "timeout": "600s" + } + ] +} diff --git a/google/cloud/functions/v2alpha/BUILD.bazel b/google/cloud/functions/v2alpha/BUILD.bazel new file mode 100644 index 000000000..16299253a --- /dev/null +++ b/google/cloud/functions/v2alpha/BUILD.bazel @@ -0,0 +1,389 @@ +# 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 = "functions_proto", + srcs = [ + "functions.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//:any_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "functions_proto_with_info", + deps = [ + ":functions_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "functions_java_proto", + deps = [":functions_proto"], +) + +java_grpc_library( + name = "functions_java_grpc", + srcs = [":functions_proto"], + deps = [":functions_java_proto"], +) + +java_gapic_library( + name = "functions_java_gapic", + srcs = [":functions_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2alpha.yaml", + test_deps = [ + ":functions_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":functions_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "functions_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.functions.v2alpha.FunctionServiceClientHttpJsonTest", + "com.google.cloud.functions.v2alpha.FunctionServiceClientTest", + ], + runtime_deps = [":functions_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-functions-v2alpha-java", + transport = "grpc+rest", + deps = [ + ":functions_java_gapic", + ":functions_java_grpc", + ":functions_java_proto", + ":functions_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "functions_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/functions/v2alpha", + protos = [":functions_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "functions_go_gapic", + srcs = [":functions_proto_with_info"], + grpc_service_config = "functions_grpc_service_config.json", + importpath = "cloud.google.com/go/functions/apiv2alpha;functions", + metadata = True, + service_yaml = "cloudfunctions_v2alpha.yaml", + transport = "grpc+rest", + deps = [ + ":functions_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:any_go_proto", + ], +) + +go_test( + name = "functions_go_gapic_test", + srcs = [":functions_go_gapic_srcjar_test"], + embed = [":functions_go_gapic"], + importpath = "cloud.google.com/go/functions/apiv2alpha", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-functions-v2alpha-go", + deps = [ + ":functions_go_gapic", + ":functions_go_gapic_srcjar-metadata.srcjar", + ":functions_go_gapic_srcjar-test.srcjar", + ":functions_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "functions_py_gapic", + srcs = [":functions_proto"], + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2alpha.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "functions_py_gapic_test", + srcs = [ + "functions_py_gapic_pytest.py", + "functions_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":functions_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "functions-v2alpha-py", + deps = [ + ":functions_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "functions_php_proto", + deps = [":functions_proto"], +) + +php_grpc_library( + name = "functions_php_grpc", + srcs = [":functions_proto"], + deps = [":functions_php_proto"], +) + +php_gapic_library( + name = "functions_php_gapic", + srcs = [":functions_proto_with_info"], + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2alpha.yaml", + deps = [ + ":functions_php_grpc", + ":functions_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-functions-v2alpha-php", + deps = [ + ":functions_php_gapic", + ":functions_php_grpc", + ":functions_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "functions_nodejs_gapic", + package_name = "@google-cloud/functions", + src = ":functions_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "functions_grpc_service_config.json", + package = "google.cloud.functions.v2alpha", + service_yaml = "cloudfunctions_v2alpha.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "functions-v2alpha-nodejs", + deps = [ + ":functions_nodejs_gapic", + ":functions_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 = "functions_ruby_proto", + deps = [":functions_proto"], +) + +ruby_grpc_library( + name = "functions_ruby_grpc", + srcs = [":functions_proto"], + deps = [":functions_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "functions_ruby_gapic", + srcs = [":functions_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-functions-v2alpha", + ], + grpc_service_config = "functions_grpc_service_config.json", + deps = [ + ":functions_ruby_grpc", + ":functions_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-functions-v2alpha-ruby", + deps = [ + ":functions_ruby_gapic", + ":functions_ruby_grpc", + ":functions_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 = "functions_csharp_proto", + deps = [":functions_proto"], +) + +csharp_grpc_library( + name = "functions_csharp_grpc", + srcs = [":functions_proto"], + deps = [":functions_csharp_proto"], +) + +csharp_gapic_library( + name = "functions_csharp_gapic", + srcs = [":functions_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2alpha.yaml", + deps = [ + ":functions_csharp_grpc", + ":functions_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-functions-v2alpha-csharp", + deps = [ + ":functions_csharp_gapic", + ":functions_csharp_grpc", + ":functions_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "functions_cc_proto", + deps = [":functions_proto"], +) + +cc_grpc_library( + name = "functions_cc_grpc", + srcs = [":functions_proto"], + grpc_only = True, + deps = [":functions_cc_proto"], +) diff --git a/google/cloud/functions/v2alpha/cloudfunctions_v2alpha.yaml b/google/cloud/functions/v2alpha/cloudfunctions_v2alpha.yaml new file mode 100644 index 000000000..6be0670f0 --- /dev/null +++ b/google/cloud/functions/v2alpha/cloudfunctions_v2alpha.yaml @@ -0,0 +1,91 @@ +type: google.api.Service +config_version: 3 +name: cloudfunctions.googleapis.com +title: Cloud Functions API + +apis: +- name: google.cloud.functions.v2alpha.FunctionService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.functions.v2alpha.OperationMetadata + +documentation: + summary: 'Manages lightweight user-provided functions executed in response to events.' + overview: 'Manages lightweight user-provided functions executed in response to +events.' + rules: + - 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. + +backend: + rules: + - selector: 'google.cloud.functions.v2alpha.FunctionService.*' + deadline: 30.0 + - selector: google.cloud.location.Locations.ListLocations + deadline: 30.0 + - selector: 'google.iam.v1.IAMPolicy.*' + deadline: 30.0 + - selector: 'google.longrunning.Operations.*' + deadline: 30.0 + +http: + rules: + - selector: google.cloud.location.Locations.ListLocations + get: '/v2alpha/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v2alpha/{resource=projects/*/locations/*/functions/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v2alpha/{resource=projects/*/locations/*/functions/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v2alpha/{resource=projects/*/locations/*/functions/*}:testIamPermissions' + body: '*' + - selector: google.longrunning.Operations.GetOperation + get: '/v2alpha/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v2alpha/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.functions.v2alpha.FunctionService.*' + 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 diff --git a/google/cloud/functions/v2alpha/functions.proto b/google/cloud/functions/v2alpha/functions.proto new file mode 100644 index 000000000..6bc9de683 --- /dev/null +++ b/google/cloud/functions/v2alpha/functions.proto @@ -0,0 +1,1033 @@ +// 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.cloud.functions.v2alpha; + +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/any.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/functions/v2alpha;functions"; +option java_multiple_files = true; +option java_outer_classname = "FunctionsProto"; +option java_package = "com.google.cloud.functions.v2alpha"; +option objc_class_prefix = "GCF"; +option (google.api.resource_definition) = { + type: "artifactregistry.googleapis.com/Repository" + pattern: "projects/{project}/locations/{location}/repositories/{repository}" +}; +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/WorkerPool" + pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}" +}; +option (google.api.resource_definition) = { + type: "run.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/services/{service}" +}; +option (google.api.resource_definition) = { + type: "vpcaccess.googleapis.com/Connector" + pattern: "projects/{project}/locations/{location}/connectors/{connector}" +}; +option (google.api.resource_definition) = { + type: "eventarc.googleapis.com/Trigger" + pattern: "projects/{project}/locations/{location}/triggers/{trigger}" +}; +option (google.api.resource_definition) = { + type: "eventarc.googleapis.com/Channel" + pattern: "projects/{project}/locations/{location}/channels/{channel}" +}; +option (google.api.resource_definition) = { + type: "pubsub.googleapis.com/Topic" + pattern: "projects/{project}/topics/{topic}" +}; + +// Google Cloud Functions is used to deploy functions that are executed by +// Google in response to various events. Data connected with that event is +// passed to a function as the input data. +// +// A **function** is a resource which describes a function that should be +// executed and how it is triggered. +service FunctionService { + option (google.api.default_host) = "cloudfunctions.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Returns a function with the given name from the requested project. + rpc GetFunction(GetFunctionRequest) returns (Function) { + option (google.api.http) = { + get: "/v2alpha/{name=projects/*/locations/*/functions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns a list of functions that belong to the requested project. + rpc ListFunctions(ListFunctionsRequest) returns (ListFunctionsResponse) { + option (google.api.http) = { + get: "/v2alpha/{parent=projects/*/locations/*}/functions" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a new function. If a function with the given name already exists in + // the specified project, the long running operation will return + // `ALREADY_EXISTS` error. + rpc CreateFunction(CreateFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*}/functions" + body: "function" + }; + option (google.api.method_signature) = "parent,function,function_id"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.functions.v2alpha.Function" + metadata_type: "google.cloud.functions.v2alpha.OperationMetadata" + }; + } + + // Updates existing function. + rpc UpdateFunction(UpdateFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2alpha/{function.name=projects/*/locations/*/functions/*}" + body: "function" + }; + option (google.api.method_signature) = "function,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.functions.v2alpha.Function" + metadata_type: "google.cloud.functions.v2alpha.OperationMetadata" + }; + } + + // Deletes a function with the given name from the specified project. If the + // given function is used by some trigger, the trigger will be updated to + // remove this function. + rpc DeleteFunction(DeleteFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2alpha/{name=projects/*/locations/*/functions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.functions.v2alpha.OperationMetadata" + }; + } + + // Returns a signed URL for uploading a function source code. + // For more information about the signed URL usage see: + // https://cloud.google.com/storage/docs/access-control/signed-urls. + // Once the function source code upload is complete, the used signed + // URL should be provided in CreateFunction or UpdateFunction request + // as a reference to the function source code. + // + // When uploading source code to the generated signed URL, please follow + // these restrictions: + // + // * Source file type should be a zip file. + // * No credentials should be attached - the signed URLs provide access to the + // target bucket using internal service identity; if credentials were + // attached, the identity from the credentials would be used, but that + // identity does not have permissions to upload files to the URL. + // + // When making a HTTP PUT request, these two headers need to be specified: + // + // * `content-type: application/zip` + // + // And this header SHOULD NOT be specified: + // + // * `Authorization: Bearer YOUR_TOKEN` + rpc GenerateUploadUrl(GenerateUploadUrlRequest) returns (GenerateUploadUrlResponse) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*}/functions:generateUploadUrl" + body: "*" + }; + } + + // Returns a signed URL for downloading deployed function source code. + // The URL is only valid for a limited period and should be used within + // 30 minutes of generation. + // For more information about the signed URL usage see: + // https://cloud.google.com/storage/docs/access-control/signed-urls + rpc GenerateDownloadUrl(GenerateDownloadUrlRequest) returns (GenerateDownloadUrlResponse) { + option (google.api.http) = { + post: "/v2alpha/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" + body: "*" + }; + } + + // Returns a list of runtimes that are supported for the requested project. + rpc ListRuntimes(ListRuntimesRequest) returns (ListRuntimesResponse) { + option (google.api.http) = { + get: "/v2alpha/{parent=projects/*/locations/*}/runtimes" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The environment the function is hosted on. +enum Environment { + // Unspecified + ENVIRONMENT_UNSPECIFIED = 0; + + // Gen 1 + GEN_1 = 1; + + // Gen 2 + GEN_2 = 2; +} + +// Describes a Cloud Function that contains user computation executed in +// response to an event. It encapsulates function and trigger configurations. +message Function { + option (google.api.resource) = { + type: "cloudfunctions.googleapis.com/Function" + pattern: "projects/{project}/locations/{location}/functions/{function}" + plural: "functions" + singular: "function" + }; + + // Describes the current state of the function. + enum State { + // Not specified. Invalid state. + STATE_UNSPECIFIED = 0; + + // Function has been successfully deployed and is serving. + ACTIVE = 1; + + // Function deployment failed and the function is not serving. + FAILED = 2; + + // Function is being created or updated. + DEPLOYING = 3; + + // Function is being deleted. + DELETING = 4; + + // Function deployment failed and the function serving state is undefined. + // The function should be updated or deleted to move it out of this state. + UNKNOWN = 5; + } + + // A user-defined name of the function. Function names must be unique + // globally and match pattern `projects/*/locations/*/functions/*` + string name = 1; + + // Describe whether the function is gen1 or gen2. + Environment environment = 10; + + // User-provided description of a function. + string description = 2; + + // Describes the Build step of the function that builds a container from the + // given source. + BuildConfig build_config = 3; + + // Describes the Service being deployed. Currently deploys services to Cloud + // Run (fully managed). + ServiceConfig service_config = 4; + + // An Eventarc trigger managed by Google Cloud Functions that fires events in + // response to a condition in another service. + EventTrigger event_trigger = 5; + + // Output only. State of the function. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp of a Cloud Function. + google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Labels associated with this Cloud Function. + map labels = 8; + + // Output only. State Messages for this Cloud Function. + repeated StateMessage state_messages = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Informational messages about the state of the Cloud Function or Operation. +message StateMessage { + // Severity of the state message. + enum Severity { + // Not specified. Invalid severity. + SEVERITY_UNSPECIFIED = 0; + + // ERROR-level severity. + ERROR = 1; + + // WARNING-level severity. + WARNING = 2; + + // INFO-level severity. + INFO = 3; + } + + // Severity of the state message. + Severity severity = 1; + + // One-word CamelCase type of the state message. + string type = 2; + + // The message. + string message = 3; +} + +// Location of the source in an archive file in Google Cloud Storage. +message StorageSource { + // Google Cloud Storage bucket containing the source (see + // [Bucket Name + // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). + string bucket = 1; + + // Google Cloud Storage object containing the source. + // + // This object must be a gzipped archive file (`.tar.gz`) containing source to + // build. + string object = 2; + + // Google Cloud Storage generation for the object. If the generation is + // omitted, the latest generation will be used. + int64 generation = 3; +} + +// Location of the source in a Google Cloud Source Repository. +message RepoSource { + // A revision within the Cloud Source Repository must be specified in + // one of these ways. + oneof revision { + // Regex matching branches to build. + // + // The syntax of the regular expressions accepted is the syntax accepted by + // RE2 and described at https://github.com/google/re2/wiki/Syntax + string branch_name = 3; + + // Regex matching tags to build. + // + // The syntax of the regular expressions accepted is the syntax accepted by + // RE2 and described at https://github.com/google/re2/wiki/Syntax + string tag_name = 4; + + // Explicit commit SHA to build. + string commit_sha = 5; + } + + // ID of the project that owns the Cloud Source Repository. If omitted, the + // project ID requesting the build is assumed. + string project_id = 1; + + // Name of the Cloud Source Repository. + string repo_name = 2; + + // Directory, relative to the source root, in which to run the build. + // + // This must be a relative path. If a step's `dir` is specified and is an + // absolute path, this value is ignored for that step's execution. + // eg. helloworld (no leading slash allowed) + string dir = 6; + + // Only trigger a build if the revision regex does NOT match the revision + // regex. + bool invert_regex = 7; +} + +// The location of the function source code. +message Source { + // Location of the source. + // At least one source needs to be provided for the deployment to succeed. + oneof source { + // If provided, get the source from this location in Google Cloud Storage. + StorageSource storage_source = 1; + + // If provided, get the source from this location in a Cloud Source + // Repository. + RepoSource repo_source = 2; + } +} + +// Provenance of the source. Ways to find the original source, or verify that +// some source was used for this build. +message SourceProvenance { + // A copy of the build's `source.storage_source`, if exists, with any + // generations resolved. + StorageSource resolved_storage_source = 1; + + // A copy of the build's `source.repo_source`, if exists, with any + // revisions resolved. + RepoSource resolved_repo_source = 2; +} + +// Describes the Build step of the function that builds a container from the +// given source. +message BuildConfig { + // Output only. The Cloud Build name of the latest successful deployment of the + // function. + string build = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/Build" + } + ]; + + // The runtime in which to run the function. Required when deploying a new + // function, optional when updating an existing function. For a complete + // list of possible choices, see the + // [`gcloud` command + // reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime). + string runtime = 2; + + // The name of the function (as defined in source code) that will be + // executed. Defaults to the resource name suffix, if not specified. For + // backward compatibility, if function with given name is not found, then the + // system will try to use function named "function". + // For Node.js this is name of a function exported by the module specified + // in `source_location`. + string entry_point = 3; + + // The location of the function source code. + Source source = 4; + + // Output only. A permanent fixed identifier for source. + SourceProvenance source_provenance = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of the Cloud Build Custom Worker Pool that should be used to build the + // function. The format of this field is + // `projects/{project}/locations/{region}/workerPools/{workerPool}` where + // {project} and {region} are the project id and region respectively where the + // worker pool is defined and {workerPool} is the short name of the worker + // pool. + // + // If the project id is not the same as the function, then the Cloud + // Functions Service Agent + // (service-@gcf-admin-robot.iam.gserviceaccount.com) must be + // granted the role Cloud Build Custom Workers Builder + // (roles/cloudbuild.customworkers.builder) in the project. + string worker_pool = 5 [(google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/WorkerPool" + }]; + + // User-provided build-time environment variables for the function + map environment_variables = 6; + + // Optional. User managed repository created in Artifact Registry optionally with a + // customer managed encryption key. This is the repository to which the + // function docker image will be pushed after it is built by Cloud Build. + // If unspecified, GCF will create and use a repository named 'gcf-artifacts' + // for every deployed region. + // + // It must match the pattern + // `projects/{project}/locations/{location}/repositories/{repository}`. + // + // Cross-project repositories are not supported. + // Cross-location repositories are not supported. + // Repository format must be 'DOCKER'. + string docker_repository = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/Repository" + } + ]; +} + +// Describes the Service being deployed. +// Currently Supported : Cloud Run (fully managed). +message ServiceConfig { + // Available egress settings. + // + // This controls what traffic is diverted through the VPC Access Connector + // resource. By default PRIVATE_RANGES_ONLY will be used. + enum VpcConnectorEgressSettings { + // Unspecified. + VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED = 0; + + // Use the VPC Access Connector only for private IP space from RFC1918. + PRIVATE_RANGES_ONLY = 1; + + // Force the use of VPC Access Connector for all egress traffic from the + // function. + ALL_TRAFFIC = 2; + } + + // Available ingress settings. + // + // This controls what traffic can reach the function. + // + // If unspecified, ALLOW_ALL will be used. + enum IngressSettings { + // Unspecified. + INGRESS_SETTINGS_UNSPECIFIED = 0; + + // Allow HTTP traffic from public and private sources. + ALLOW_ALL = 1; + + // Allow HTTP traffic from only private VPC sources. + ALLOW_INTERNAL_ONLY = 2; + + // Allow HTTP traffic from private VPC sources and through GCLB. + ALLOW_INTERNAL_AND_GCLB = 3; + } + + // Output only. Name of the service associated with a Function. + // The format of this field is + // `projects/{project}/locations/{region}/services/{service}` + string service = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "run.googleapis.com/Service" + } + ]; + + // The function execution timeout. Execution is considered failed and + // can be terminated if the function is not completed at the end of the + // timeout period. Defaults to 60 seconds. + int32 timeout_seconds = 2; + + // The amount of memory available for a function. + // Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is + // supplied the value is interpreted as bytes. + // See + // https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go + // a full description. + string available_memory = 13; + + // Environment variables that shall be available during function execution. + map environment_variables = 4; + + // The limit on the maximum number of function instances that may coexist at a + // given time. + // + // In some cases, such as rapid traffic surges, Cloud Functions may, for a + // short period of time, create more instances than the specified max + // instances limit. If your function cannot tolerate this temporary behavior, + // you may want to factor in a safety margin and set a lower max instances + // value than your function can tolerate. + // + // See the [Max + // Instances](https://cloud.google.com/functions/docs/max-instances) Guide for + // more details. + int32 max_instance_count = 5; + + // The limit on the minimum number of function instances that may coexist at a + // given time. + // + // Function instances are kept in idle state for a short period after they + // finished executing the request to reduce cold start time for subsequent + // requests. Setting a minimum instance count will ensure that the given + // number of instances are kept running in idle state always. This can help + // with cold start times when jump in incoming request count occurs after the + // idle instance would have been stopped in the default case. + int32 min_instance_count = 12; + + // The Serverless VPC Access connector that this cloud function can connect + // to. The format of this field is `projects/*/locations/*/connectors/*`. + string vpc_connector = 6 [(google.api.resource_reference) = { + type: "vpcaccess.googleapis.com/Connector" + }]; + + // The egress settings for the connector, controlling what traffic is diverted + // through it. + VpcConnectorEgressSettings vpc_connector_egress_settings = 7; + + // The ingress settings for the function, controlling what traffic can reach + // it. + IngressSettings ingress_settings = 8; + + // Output only. URI of the Service deployed. + string uri = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The email of the service's service account. If empty, defaults to + // `{project_number}-compute@developer.gserviceaccount.com`. + string service_account_email = 10; + + // Whether 100% of traffic is routed to the latest revision. + // On CreateFunction and UpdateFunction, when set to true, the revision being + // deployed will serve 100% of traffic, ignoring any traffic split settings, + // if any. On GetFunction, true will be returned if the latest revision is + // serving 100% of traffic. + bool all_traffic_on_latest_revision = 16; + + // Secret environment variables configuration. + repeated SecretEnvVar secret_environment_variables = 17; + + // Secret volumes configuration. + repeated SecretVolume secret_volumes = 19; + + // Output only. The name of service revision. + string revision = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for a secret environment variable. It has the information +// necessary to fetch the secret value from secret manager and expose it as an +// environment variable. +message SecretEnvVar { + // Name of the environment variable. + string key = 1; + + // Project identifier (preferably project number but can also be the + // project ID) of the project that contains the secret. If not set, it is + // assumed that the secret is in the same project as the function. + string project_id = 2; + + // Name of the secret in secret manager (not the full resource name). + string secret = 3; + + // Version of the secret (version number or the string 'latest'). It is + // recommended to use a numeric version for secret environment variables as + // any updates to the secret value is not reflected until new instances + // start. + string version = 4; +} + +// Configuration for a secret volume. It has the information necessary to fetch +// the secret value from secret manager and make it available as files mounted +// at the requested paths within the application container. +message SecretVolume { + // Configuration for a single version. + message SecretVersion { + // Version of the secret (version number or the string 'latest'). It is + // preferable to use `latest` version with secret volumes as secret value + // changes are reflected immediately. + string version = 1; + + // Relative path of the file under the mount path where the secret value for + // this version will be fetched and made available. For example, setting the + // mount_path as '/etc/secrets' and path as `secret_foo` would mount the + // secret value file at `/etc/secrets/secret_foo`. + string path = 2; + } + + // The path within the container to mount the secret volume. For example, + // setting the mount_path as `/etc/secrets` would mount the secret value files + // under the `/etc/secrets` directory. This directory will also be completely + // shadowed and unavailable to mount any other secrets. + // Recommended mount path: /etc/secrets + string mount_path = 1; + + // Project identifier (preferably project number but can also be the project + // ID) of the project that contains the secret. If not set, it is + // assumed that the secret is in the same project as the function. + string project_id = 2; + + // Name of the secret in secret manager (not the full resource name). + string secret = 3; + + // List of secret versions to mount for this secret. If empty, the `latest` + // version of the secret will be made available in a file named after the + // secret under the mount point. + repeated SecretVersion versions = 4; +} + +// Describes EventTrigger, used to request events to be sent from another +// service. +message EventTrigger { + // Describes the retry policy in case of function's execution failure. + // Retried execution is charged as any other execution. + enum RetryPolicy { + // Not specified. + RETRY_POLICY_UNSPECIFIED = 0; + + // Do not retry. + RETRY_POLICY_DO_NOT_RETRY = 1; + + // Retry on any failure, retry up to 7 days with an exponential backoff + // (capped at 10 seconds). + RETRY_POLICY_RETRY = 2; + } + + // Output only. The resource name of the Eventarc trigger. The format of this field is + // `projects/{project}/locations/{region}/triggers/{trigger}`. + string trigger = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Trigger" + } + ]; + + // The region that the trigger will be in. The trigger will only receive + // events originating in this region. It can be the same + // region as the function, a different region or multi-region, or the global + // region. If not provided, defaults to the same region as the function. + string trigger_region = 2; + + // Required. The type of event to observe. For example: + // `google.cloud.audit.log.v1.written` or + // `google.cloud.pubsub.topic.v1.messagePublished`. + string event_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Criteria used to filter events. + repeated EventFilter event_filters = 4; + + // Optional. The name of a Pub/Sub topic in the same project that will be used + // as the transport topic for the event delivery. Format: + // `projects/{project}/topics/{topic}`. + // + // This is only valid for events of type + // `google.cloud.pubsub.topic.v1.messagePublished`. The topic provided here + // will not be deleted at function deletion. + string pubsub_topic = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "pubsub.googleapis.com/Topic" + } + ]; + + // Optional. The email of the trigger's service account. The service account must have + // permission to invoke Cloud Run services, the permission is + // `run.routes.invoke`. + // If empty, defaults to the Compute Engine default service account: + // `{project_number}-compute@developer.gserviceaccount.com`. + string service_account_email = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If unset, then defaults to ignoring failures (i.e. not retrying them). + RetryPolicy retry_policy = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the channel associated with the trigger in + // `projects/{project}/locations/{location}/channels/{channel}` format. + // You must provide a channel to receive events from Eventarc SaaS partners. + string channel = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Channel" + } + ]; +} + +// Filters events based on exact matches on the CloudEvents attributes. +message EventFilter { + // Required. The name of a CloudEvents attribute. + string attribute = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The value for the attribute. + string value = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The operator used for matching the events with the value of the + // filter. If not specified, only events that have an exact key-value pair + // specified in the filter are matched. The only allowed value is + // `match-path-pattern`. + string operator = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for the `GetFunction` method. +message GetFunctionRequest { + // Required. The name of the function which details should be obtained. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Request for the `ListFunctions` method. +message ListFunctionsRequest { + // Required. The project and location from which the function should be listed, + // specified in the format `projects/*/locations/*` + // If you want to list functions in all locations, use "-" in place of a + // location. When listing functions in all locations, if one or more + // location(s) are unreachable, the response will contain functions from all + // reachable locations along with the names of any unreachable locations. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudfunctions.googleapis.com/Function" + } + ]; + + // Maximum number of functions to return per call. + int32 page_size = 2; + + // The value returned by the last + // `ListFunctionsResponse`; indicates that + // this is a continuation of a prior `ListFunctions` call, and that the + // system should return the next page of data. + string page_token = 3; + + // The filter for Functions that match the filter expression, + // following the syntax outlined in https://google.aip.dev/160. + string filter = 4; + + // The sorting order of the resources returned. Value should be a comma + // separated list of fields. The default sorting oder is ascending. + // See https://google.aip.dev/132#ordering. + string order_by = 5; +} + +// Response for the `ListFunctions` method. +message ListFunctionsResponse { + // The functions that match the request. + repeated Function functions = 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; + + // Locations that could not be reached. The response does not include any + // functions from these locations. + repeated string unreachable = 3; +} + +// Request for the `CreateFunction` method. +message CreateFunctionRequest { + // Required. The project and location in which the function should be created, specified + // in the format `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. Function to be created. + Function function = 2 [(google.api.field_behavior) = REQUIRED]; + + // The ID to use for the function, which will become the final component of + // the function's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + string function_id = 3; +} + +// Request for the `UpdateFunction` method. +message UpdateFunctionRequest { + // Required. New version of the function. + Function function = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + // If no field mask is provided, all provided fields in the request will be + // updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for the `DeleteFunction` method. +message DeleteFunctionRequest { + // Required. The name of the function which should be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Request of `GenerateSourceUploadUrl` method. +message GenerateUploadUrlRequest { + // Required. The project and location in which the Google Cloud Storage signed URL + // should be generated, specified in the format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// Response of `GenerateSourceUploadUrl` method. +message GenerateUploadUrlResponse { + // The generated Google Cloud Storage signed URL that should be used for a + // function source code upload. The uploaded file should be a zip archive + // which contains a function. + string upload_url = 1; + + // The location of the source code in the upload bucket. + // + // Once the archive is uploaded using the `upload_url` use this field to + // set the `function.build_config.source.storage_source` + // during CreateFunction and UpdateFunction. + // + // Generation defaults to 0, as Cloud Storage provides a new generation only + // upon uploading a new object or version of an object. + StorageSource storage_source = 2; +} + +// Request of `GenerateDownloadUrl` method. +message GenerateDownloadUrlRequest { + // Required. The name of function for which source code Google Cloud Storage signed + // URL should be generated. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Response of `GenerateDownloadUrl` method. +message GenerateDownloadUrlResponse { + // The generated Google Cloud Storage signed URL that should be used for + // function source code download. + string download_url = 1; +} + +// Request for the `ListRuntimes` method. +message ListRuntimesRequest { + // Required. The project and location from which the runtimes 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" + } + ]; + + // The filter for Runtimes that match the filter expression, + // following the syntax outlined in https://google.aip.dev/160. + string filter = 2; +} + +// Response for the `ListRuntimes` method. +message ListRuntimesResponse { + // Describes a runtime and any special information (e.g., deprecation status) + // related to it. + message Runtime { + // The name of the runtime, e.g., 'go113', 'nodejs12', etc. + string name = 1; + + // The user facing name, eg 'Go 1.13', 'Node.js 12', etc. + string display_name = 5; + + // The stage of life this runtime is in, e.g., BETA, GA, etc. + RuntimeStage stage = 2; + + // Warning messages, e.g., a deprecation warning. + repeated string warnings = 3; + + // The environment for the runtime. + Environment environment = 4; + } + + // The various stages that a runtime can be in. + enum RuntimeStage { + // Not specified. + RUNTIME_STAGE_UNSPECIFIED = 0; + + // The runtime is in development. + DEVELOPMENT = 1; + + // The runtime is in the Alpha stage. + ALPHA = 2; + + // The runtime is in the Beta stage. + BETA = 3; + + // The runtime is generally available. + GA = 4; + + // The runtime is deprecated. + DEPRECATED = 5; + + // The runtime is no longer supported. + DECOMMISSIONED = 6; + } + + // The runtimes that match the request. + repeated Runtime runtimes = 1; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // Server-defined resource path for the target of the operation. + string target = 3; + + // Name of the verb executed by the operation. + string verb = 4; + + // Human-readable status of the operation, if any. + string status_detail = 5; + + // 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 cancel_requested = 6; + + // API version used to start the operation. + string api_version = 7; + + // The original request that started the operation. + google.protobuf.Any request_resource = 8; + + // Mechanism for reporting in-progress stages + repeated Stage stages = 9; +} + +// Each Stage of the deployment process +message Stage { + // Possible names for a Stage + enum Name { + // Not specified. Invalid name. + NAME_UNSPECIFIED = 0; + + // Artifact Regsitry Stage + ARTIFACT_REGISTRY = 1; + + // Build Stage + BUILD = 2; + + // Service Stage + SERVICE = 3; + + // Trigger Stage + TRIGGER = 4; + + // Service Rollback Stage + SERVICE_ROLLBACK = 5; + + // Trigger Rollback Stage + TRIGGER_ROLLBACK = 6; + } + + // Possible states for a Stage + enum State { + // Not specified. Invalid state. + STATE_UNSPECIFIED = 0; + + // Stage has not started. + NOT_STARTED = 1; + + // Stage is in progress. + IN_PROGRESS = 2; + + // Stage has completed. + COMPLETE = 3; + } + + // Name of the Stage. This will be unique for each Stage. + Name name = 1; + + // Message describing the Stage + string message = 2; + + // Current state of the Stage + State state = 3; + + // Resource of the Stage + string resource = 4; + + // Link to the current Stage resource + string resource_uri = 5; + + // State messages from the current Stage. + repeated StateMessage state_messages = 6; +} diff --git a/google/cloud/functions/v2alpha/functions_grpc_service_config.json b/google/cloud/functions/v2alpha/functions_grpc_service_config.json new file mode 100644 index 000000000..0bda37e8d --- /dev/null +++ b/google/cloud/functions/v2alpha/functions_grpc_service_config.json @@ -0,0 +1,44 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.functions.v2alpha.CloudFunctionsService", + "method": "ListFunctions" + }, + { + "service": "google.cloud.functions.v2alpha.CloudFunctionsService", + "method": "GetFunction" + }, + { + "service": "google.cloud.functions.v2alpha.CloudFunctionsService", + "method": "UpdateFunction" + }, + { + "service": "google.cloud.functions.v2alpha.CloudFunctionsService", + "method": "DeleteFunction" + }, + { + "service": "google.cloud.functions.v2alpha.CloudFunctionsService", + "method": "ListRuntimes" + } + ], + "timeout": "600s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.functions.v2alpha.CloudFunctionsService", + "method": "CreateFunction" + } + ], + "timeout": "600s" + } + ] +} diff --git a/google/cloud/functions/v2beta/BUILD.bazel b/google/cloud/functions/v2beta/BUILD.bazel new file mode 100644 index 000000000..8c7388de7 --- /dev/null +++ b/google/cloud/functions/v2beta/BUILD.bazel @@ -0,0 +1,389 @@ +# 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 = "functions_proto", + srcs = [ + "functions.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//:any_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "functions_proto_with_info", + deps = [ + ":functions_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "functions_java_proto", + deps = [":functions_proto"], +) + +java_grpc_library( + name = "functions_java_grpc", + srcs = [":functions_proto"], + deps = [":functions_java_proto"], +) + +java_gapic_library( + name = "functions_java_gapic", + srcs = [":functions_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2beta.yaml", + test_deps = [ + ":functions_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":functions_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "functions_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.functions.v2beta.FunctionServiceClientHttpJsonTest", + "com.google.cloud.functions.v2beta.FunctionServiceClientTest", + ], + runtime_deps = [":functions_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-functions-v2beta-java", + transport = "grpc+rest", + deps = [ + ":functions_java_gapic", + ":functions_java_grpc", + ":functions_java_proto", + ":functions_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "functions_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/functions/v2beta", + protos = [":functions_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "functions_go_gapic", + srcs = [":functions_proto_with_info"], + grpc_service_config = "functions_grpc_service_config.json", + importpath = "cloud.google.com/go/functions/apiv2beta;functions", + metadata = True, + service_yaml = "cloudfunctions_v2beta.yaml", + transport = "grpc+rest", + deps = [ + ":functions_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:any_go_proto", + ], +) + +go_test( + name = "functions_go_gapic_test", + srcs = [":functions_go_gapic_srcjar_test"], + embed = [":functions_go_gapic"], + importpath = "cloud.google.com/go/functions/apiv2beta", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-functions-v2beta-go", + deps = [ + ":functions_go_gapic", + ":functions_go_gapic_srcjar-metadata.srcjar", + ":functions_go_gapic_srcjar-test.srcjar", + ":functions_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "functions_py_gapic", + srcs = [":functions_proto"], + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2beta.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "functions_py_gapic_test", + srcs = [ + "functions_py_gapic_pytest.py", + "functions_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":functions_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "functions-v2beta-py", + deps = [ + ":functions_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "functions_php_proto", + deps = [":functions_proto"], +) + +php_grpc_library( + name = "functions_php_grpc", + srcs = [":functions_proto"], + deps = [":functions_php_proto"], +) + +php_gapic_library( + name = "functions_php_gapic", + srcs = [":functions_proto_with_info"], + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2beta.yaml", + deps = [ + ":functions_php_grpc", + ":functions_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-functions-v2beta-php", + deps = [ + ":functions_php_gapic", + ":functions_php_grpc", + ":functions_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "functions_nodejs_gapic", + package_name = "@google-cloud/functions", + src = ":functions_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "functions_grpc_service_config.json", + package = "google.cloud.functions.v2beta", + service_yaml = "cloudfunctions_v2beta.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "functions-v2beta-nodejs", + deps = [ + ":functions_nodejs_gapic", + ":functions_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 = "functions_ruby_proto", + deps = [":functions_proto"], +) + +ruby_grpc_library( + name = "functions_ruby_grpc", + srcs = [":functions_proto"], + deps = [":functions_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "functions_ruby_gapic", + srcs = [":functions_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-functions-v2beta", + ], + grpc_service_config = "functions_grpc_service_config.json", + deps = [ + ":functions_ruby_grpc", + ":functions_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-functions-v2beta-ruby", + deps = [ + ":functions_ruby_gapic", + ":functions_ruby_grpc", + ":functions_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 = "functions_csharp_proto", + deps = [":functions_proto"], +) + +csharp_grpc_library( + name = "functions_csharp_grpc", + srcs = [":functions_proto"], + deps = [":functions_csharp_proto"], +) + +csharp_gapic_library( + name = "functions_csharp_gapic", + srcs = [":functions_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "functions_grpc_service_config.json", + service_yaml = "cloudfunctions_v2beta.yaml", + deps = [ + ":functions_csharp_grpc", + ":functions_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-functions-v2beta-csharp", + deps = [ + ":functions_csharp_gapic", + ":functions_csharp_grpc", + ":functions_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "functions_cc_proto", + deps = [":functions_proto"], +) + +cc_grpc_library( + name = "functions_cc_grpc", + srcs = [":functions_proto"], + grpc_only = True, + deps = [":functions_cc_proto"], +) diff --git a/google/cloud/functions/v2beta/cloudfunctions_v2beta.yaml b/google/cloud/functions/v2beta/cloudfunctions_v2beta.yaml new file mode 100644 index 000000000..6785bb074 --- /dev/null +++ b/google/cloud/functions/v2beta/cloudfunctions_v2beta.yaml @@ -0,0 +1,91 @@ +type: google.api.Service +config_version: 3 +name: cloudfunctions.googleapis.com +title: Cloud Functions API + +apis: +- name: google.cloud.functions.v2beta.FunctionService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.functions.v2beta.OperationMetadata + +documentation: + summary: 'Manages lightweight user-provided functions executed in response to events.' + overview: 'Manages lightweight user-provided functions executed in response to +events.' + rules: + - 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. + +backend: + rules: + - selector: 'google.cloud.functions.v2beta.FunctionService.*' + deadline: 30.0 + - selector: google.cloud.location.Locations.ListLocations + deadline: 30.0 + - selector: 'google.iam.v1.IAMPolicy.*' + deadline: 30.0 + - selector: 'google.longrunning.Operations.*' + deadline: 30.0 + +http: + rules: + - selector: google.cloud.location.Locations.ListLocations + get: '/v2beta/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v2beta/{resource=projects/*/locations/*/functions/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v2beta/{resource=projects/*/locations/*/functions/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v2beta/{resource=projects/*/locations/*/functions/*}:testIamPermissions' + body: '*' + - selector: google.longrunning.Operations.GetOperation + get: '/v2beta/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v2beta/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.functions.v2beta.FunctionService.*' + 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 diff --git a/google/cloud/functions/v2beta/functions.proto b/google/cloud/functions/v2beta/functions.proto new file mode 100644 index 000000000..4d8ee95f3 --- /dev/null +++ b/google/cloud/functions/v2beta/functions.proto @@ -0,0 +1,1033 @@ +// 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.cloud.functions.v2beta; + +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/any.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/functions/v2beta;functions"; +option java_multiple_files = true; +option java_outer_classname = "FunctionsProto"; +option java_package = "com.google.cloud.functions.v2beta"; +option objc_class_prefix = "GCF"; +option (google.api.resource_definition) = { + type: "artifactregistry.googleapis.com/Repository" + pattern: "projects/{project}/locations/{location}/repositories/{repository}" +}; +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/WorkerPool" + pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}" +}; +option (google.api.resource_definition) = { + type: "run.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/services/{service}" +}; +option (google.api.resource_definition) = { + type: "vpcaccess.googleapis.com/Connector" + pattern: "projects/{project}/locations/{location}/connectors/{connector}" +}; +option (google.api.resource_definition) = { + type: "eventarc.googleapis.com/Trigger" + pattern: "projects/{project}/locations/{location}/triggers/{trigger}" +}; +option (google.api.resource_definition) = { + type: "eventarc.googleapis.com/Channel" + pattern: "projects/{project}/locations/{location}/channels/{channel}" +}; +option (google.api.resource_definition) = { + type: "pubsub.googleapis.com/Topic" + pattern: "projects/{project}/topics/{topic}" +}; + +// Google Cloud Functions is used to deploy functions that are executed by +// Google in response to various events. Data connected with that event is +// passed to a function as the input data. +// +// A **function** is a resource which describes a function that should be +// executed and how it is triggered. +service FunctionService { + option (google.api.default_host) = "cloudfunctions.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Returns a function with the given name from the requested project. + rpc GetFunction(GetFunctionRequest) returns (Function) { + option (google.api.http) = { + get: "/v2beta/{name=projects/*/locations/*/functions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns a list of functions that belong to the requested project. + rpc ListFunctions(ListFunctionsRequest) returns (ListFunctionsResponse) { + option (google.api.http) = { + get: "/v2beta/{parent=projects/*/locations/*}/functions" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a new function. If a function with the given name already exists in + // the specified project, the long running operation will return + // `ALREADY_EXISTS` error. + rpc CreateFunction(CreateFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*}/functions" + body: "function" + }; + option (google.api.method_signature) = "parent,function,function_id"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.functions.v2beta.Function" + metadata_type: "google.cloud.functions.v2beta.OperationMetadata" + }; + } + + // Updates existing function. + rpc UpdateFunction(UpdateFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2beta/{function.name=projects/*/locations/*/functions/*}" + body: "function" + }; + option (google.api.method_signature) = "function,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.functions.v2beta.Function" + metadata_type: "google.cloud.functions.v2beta.OperationMetadata" + }; + } + + // Deletes a function with the given name from the specified project. If the + // given function is used by some trigger, the trigger will be updated to + // remove this function. + rpc DeleteFunction(DeleteFunctionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2beta/{name=projects/*/locations/*/functions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.functions.v2beta.OperationMetadata" + }; + } + + // Returns a signed URL for uploading a function source code. + // For more information about the signed URL usage see: + // https://cloud.google.com/storage/docs/access-control/signed-urls. + // Once the function source code upload is complete, the used signed + // URL should be provided in CreateFunction or UpdateFunction request + // as a reference to the function source code. + // + // When uploading source code to the generated signed URL, please follow + // these restrictions: + // + // * Source file type should be a zip file. + // * No credentials should be attached - the signed URLs provide access to the + // target bucket using internal service identity; if credentials were + // attached, the identity from the credentials would be used, but that + // identity does not have permissions to upload files to the URL. + // + // When making a HTTP PUT request, these two headers need to be specified: + // + // * `content-type: application/zip` + // + // And this header SHOULD NOT be specified: + // + // * `Authorization: Bearer YOUR_TOKEN` + rpc GenerateUploadUrl(GenerateUploadUrlRequest) returns (GenerateUploadUrlResponse) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*}/functions:generateUploadUrl" + body: "*" + }; + } + + // Returns a signed URL for downloading deployed function source code. + // The URL is only valid for a limited period and should be used within + // 30 minutes of generation. + // For more information about the signed URL usage see: + // https://cloud.google.com/storage/docs/access-control/signed-urls + rpc GenerateDownloadUrl(GenerateDownloadUrlRequest) returns (GenerateDownloadUrlResponse) { + option (google.api.http) = { + post: "/v2beta/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" + body: "*" + }; + } + + // Returns a list of runtimes that are supported for the requested project. + rpc ListRuntimes(ListRuntimesRequest) returns (ListRuntimesResponse) { + option (google.api.http) = { + get: "/v2beta/{parent=projects/*/locations/*}/runtimes" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The environment the function is hosted on. +enum Environment { + // Unspecified + ENVIRONMENT_UNSPECIFIED = 0; + + // Gen 1 + GEN_1 = 1; + + // Gen 2 + GEN_2 = 2; +} + +// Describes a Cloud Function that contains user computation executed in +// response to an event. It encapsulates function and trigger configurations. +message Function { + option (google.api.resource) = { + type: "cloudfunctions.googleapis.com/Function" + pattern: "projects/{project}/locations/{location}/functions/{function}" + plural: "functions" + singular: "function" + }; + + // Describes the current state of the function. + enum State { + // Not specified. Invalid state. + STATE_UNSPECIFIED = 0; + + // Function has been successfully deployed and is serving. + ACTIVE = 1; + + // Function deployment failed and the function is not serving. + FAILED = 2; + + // Function is being created or updated. + DEPLOYING = 3; + + // Function is being deleted. + DELETING = 4; + + // Function deployment failed and the function serving state is undefined. + // The function should be updated or deleted to move it out of this state. + UNKNOWN = 5; + } + + // A user-defined name of the function. Function names must be unique + // globally and match pattern `projects/*/locations/*/functions/*` + string name = 1; + + // Describe whether the function is gen1 or gen2. + Environment environment = 10; + + // User-provided description of a function. + string description = 2; + + // Describes the Build step of the function that builds a container from the + // given source. + BuildConfig build_config = 3; + + // Describes the Service being deployed. Currently deploys services to Cloud + // Run (fully managed). + ServiceConfig service_config = 4; + + // An Eventarc trigger managed by Google Cloud Functions that fires events in + // response to a condition in another service. + EventTrigger event_trigger = 5; + + // Output only. State of the function. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp of a Cloud Function. + google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Labels associated with this Cloud Function. + map labels = 8; + + // Output only. State Messages for this Cloud Function. + repeated StateMessage state_messages = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Informational messages about the state of the Cloud Function or Operation. +message StateMessage { + // Severity of the state message. + enum Severity { + // Not specified. Invalid severity. + SEVERITY_UNSPECIFIED = 0; + + // ERROR-level severity. + ERROR = 1; + + // WARNING-level severity. + WARNING = 2; + + // INFO-level severity. + INFO = 3; + } + + // Severity of the state message. + Severity severity = 1; + + // One-word CamelCase type of the state message. + string type = 2; + + // The message. + string message = 3; +} + +// Location of the source in an archive file in Google Cloud Storage. +message StorageSource { + // Google Cloud Storage bucket containing the source (see + // [Bucket Name + // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). + string bucket = 1; + + // Google Cloud Storage object containing the source. + // + // This object must be a gzipped archive file (`.tar.gz`) containing source to + // build. + string object = 2; + + // Google Cloud Storage generation for the object. If the generation is + // omitted, the latest generation will be used. + int64 generation = 3; +} + +// Location of the source in a Google Cloud Source Repository. +message RepoSource { + // A revision within the Cloud Source Repository must be specified in + // one of these ways. + oneof revision { + // Regex matching branches to build. + // + // The syntax of the regular expressions accepted is the syntax accepted by + // RE2 and described at https://github.com/google/re2/wiki/Syntax + string branch_name = 3; + + // Regex matching tags to build. + // + // The syntax of the regular expressions accepted is the syntax accepted by + // RE2 and described at https://github.com/google/re2/wiki/Syntax + string tag_name = 4; + + // Explicit commit SHA to build. + string commit_sha = 5; + } + + // ID of the project that owns the Cloud Source Repository. If omitted, the + // project ID requesting the build is assumed. + string project_id = 1; + + // Name of the Cloud Source Repository. + string repo_name = 2; + + // Directory, relative to the source root, in which to run the build. + // + // This must be a relative path. If a step's `dir` is specified and is an + // absolute path, this value is ignored for that step's execution. + // eg. helloworld (no leading slash allowed) + string dir = 6; + + // Only trigger a build if the revision regex does NOT match the revision + // regex. + bool invert_regex = 7; +} + +// The location of the function source code. +message Source { + // Location of the source. + // At least one source needs to be provided for the deployment to succeed. + oneof source { + // If provided, get the source from this location in Google Cloud Storage. + StorageSource storage_source = 1; + + // If provided, get the source from this location in a Cloud Source + // Repository. + RepoSource repo_source = 2; + } +} + +// Provenance of the source. Ways to find the original source, or verify that +// some source was used for this build. +message SourceProvenance { + // A copy of the build's `source.storage_source`, if exists, with any + // generations resolved. + StorageSource resolved_storage_source = 1; + + // A copy of the build's `source.repo_source`, if exists, with any + // revisions resolved. + RepoSource resolved_repo_source = 2; +} + +// Describes the Build step of the function that builds a container from the +// given source. +message BuildConfig { + // Output only. The Cloud Build name of the latest successful deployment of the + // function. + string build = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/Build" + } + ]; + + // The runtime in which to run the function. Required when deploying a new + // function, optional when updating an existing function. For a complete + // list of possible choices, see the + // [`gcloud` command + // reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime). + string runtime = 2; + + // The name of the function (as defined in source code) that will be + // executed. Defaults to the resource name suffix, if not specified. For + // backward compatibility, if function with given name is not found, then the + // system will try to use function named "function". + // For Node.js this is name of a function exported by the module specified + // in `source_location`. + string entry_point = 3; + + // The location of the function source code. + Source source = 4; + + // Output only. A permanent fixed identifier for source. + SourceProvenance source_provenance = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Name of the Cloud Build Custom Worker Pool that should be used to build the + // function. The format of this field is + // `projects/{project}/locations/{region}/workerPools/{workerPool}` where + // {project} and {region} are the project id and region respectively where the + // worker pool is defined and {workerPool} is the short name of the worker + // pool. + // + // If the project id is not the same as the function, then the Cloud + // Functions Service Agent + // (service-@gcf-admin-robot.iam.gserviceaccount.com) must be + // granted the role Cloud Build Custom Workers Builder + // (roles/cloudbuild.customworkers.builder) in the project. + string worker_pool = 5 [(google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/WorkerPool" + }]; + + // User-provided build-time environment variables for the function + map environment_variables = 6; + + // Optional. User managed repository created in Artifact Registry optionally with a + // customer managed encryption key. This is the repository to which the + // function docker image will be pushed after it is built by Cloud Build. + // If unspecified, GCF will create and use a repository named 'gcf-artifacts' + // for every deployed region. + // + // It must match the pattern + // `projects/{project}/locations/{location}/repositories/{repository}`. + // + // Cross-project repositories are not supported. + // Cross-location repositories are not supported. + // Repository format must be 'DOCKER'. + string docker_repository = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/Repository" + } + ]; +} + +// Describes the Service being deployed. +// Currently Supported : Cloud Run (fully managed). +message ServiceConfig { + // Available egress settings. + // + // This controls what traffic is diverted through the VPC Access Connector + // resource. By default PRIVATE_RANGES_ONLY will be used. + enum VpcConnectorEgressSettings { + // Unspecified. + VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED = 0; + + // Use the VPC Access Connector only for private IP space from RFC1918. + PRIVATE_RANGES_ONLY = 1; + + // Force the use of VPC Access Connector for all egress traffic from the + // function. + ALL_TRAFFIC = 2; + } + + // Available ingress settings. + // + // This controls what traffic can reach the function. + // + // If unspecified, ALLOW_ALL will be used. + enum IngressSettings { + // Unspecified. + INGRESS_SETTINGS_UNSPECIFIED = 0; + + // Allow HTTP traffic from public and private sources. + ALLOW_ALL = 1; + + // Allow HTTP traffic from only private VPC sources. + ALLOW_INTERNAL_ONLY = 2; + + // Allow HTTP traffic from private VPC sources and through GCLB. + ALLOW_INTERNAL_AND_GCLB = 3; + } + + // Output only. Name of the service associated with a Function. + // The format of this field is + // `projects/{project}/locations/{region}/services/{service}` + string service = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "run.googleapis.com/Service" + } + ]; + + // The function execution timeout. Execution is considered failed and + // can be terminated if the function is not completed at the end of the + // timeout period. Defaults to 60 seconds. + int32 timeout_seconds = 2; + + // The amount of memory available for a function. + // Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is + // supplied the value is interpreted as bytes. + // See + // https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go + // a full description. + string available_memory = 13; + + // Environment variables that shall be available during function execution. + map environment_variables = 4; + + // The limit on the maximum number of function instances that may coexist at a + // given time. + // + // In some cases, such as rapid traffic surges, Cloud Functions may, for a + // short period of time, create more instances than the specified max + // instances limit. If your function cannot tolerate this temporary behavior, + // you may want to factor in a safety margin and set a lower max instances + // value than your function can tolerate. + // + // See the [Max + // Instances](https://cloud.google.com/functions/docs/max-instances) Guide for + // more details. + int32 max_instance_count = 5; + + // The limit on the minimum number of function instances that may coexist at a + // given time. + // + // Function instances are kept in idle state for a short period after they + // finished executing the request to reduce cold start time for subsequent + // requests. Setting a minimum instance count will ensure that the given + // number of instances are kept running in idle state always. This can help + // with cold start times when jump in incoming request count occurs after the + // idle instance would have been stopped in the default case. + int32 min_instance_count = 12; + + // The Serverless VPC Access connector that this cloud function can connect + // to. The format of this field is `projects/*/locations/*/connectors/*`. + string vpc_connector = 6 [(google.api.resource_reference) = { + type: "vpcaccess.googleapis.com/Connector" + }]; + + // The egress settings for the connector, controlling what traffic is diverted + // through it. + VpcConnectorEgressSettings vpc_connector_egress_settings = 7; + + // The ingress settings for the function, controlling what traffic can reach + // it. + IngressSettings ingress_settings = 8; + + // Output only. URI of the Service deployed. + string uri = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The email of the service's service account. If empty, defaults to + // `{project_number}-compute@developer.gserviceaccount.com`. + string service_account_email = 10; + + // Whether 100% of traffic is routed to the latest revision. + // On CreateFunction and UpdateFunction, when set to true, the revision being + // deployed will serve 100% of traffic, ignoring any traffic split settings, + // if any. On GetFunction, true will be returned if the latest revision is + // serving 100% of traffic. + bool all_traffic_on_latest_revision = 16; + + // Secret environment variables configuration. + repeated SecretEnvVar secret_environment_variables = 17; + + // Secret volumes configuration. + repeated SecretVolume secret_volumes = 19; + + // Output only. The name of service revision. + string revision = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for a secret environment variable. It has the information +// necessary to fetch the secret value from secret manager and expose it as an +// environment variable. +message SecretEnvVar { + // Name of the environment variable. + string key = 1; + + // Project identifier (preferably project number but can also be the + // project ID) of the project that contains the secret. If not set, it is + // assumed that the secret is in the same project as the function. + string project_id = 2; + + // Name of the secret in secret manager (not the full resource name). + string secret = 3; + + // Version of the secret (version number or the string 'latest'). It is + // recommended to use a numeric version for secret environment variables as + // any updates to the secret value is not reflected until new instances + // start. + string version = 4; +} + +// Configuration for a secret volume. It has the information necessary to fetch +// the secret value from secret manager and make it available as files mounted +// at the requested paths within the application container. +message SecretVolume { + // Configuration for a single version. + message SecretVersion { + // Version of the secret (version number or the string 'latest'). It is + // preferable to use `latest` version with secret volumes as secret value + // changes are reflected immediately. + string version = 1; + + // Relative path of the file under the mount path where the secret value for + // this version will be fetched and made available. For example, setting the + // mount_path as '/etc/secrets' and path as `secret_foo` would mount the + // secret value file at `/etc/secrets/secret_foo`. + string path = 2; + } + + // The path within the container to mount the secret volume. For example, + // setting the mount_path as `/etc/secrets` would mount the secret value files + // under the `/etc/secrets` directory. This directory will also be completely + // shadowed and unavailable to mount any other secrets. + // Recommended mount path: /etc/secrets + string mount_path = 1; + + // Project identifier (preferably project number but can also be the project + // ID) of the project that contains the secret. If not set, it is + // assumed that the secret is in the same project as the function. + string project_id = 2; + + // Name of the secret in secret manager (not the full resource name). + string secret = 3; + + // List of secret versions to mount for this secret. If empty, the `latest` + // version of the secret will be made available in a file named after the + // secret under the mount point. + repeated SecretVersion versions = 4; +} + +// Describes EventTrigger, used to request events to be sent from another +// service. +message EventTrigger { + // Describes the retry policy in case of function's execution failure. + // Retried execution is charged as any other execution. + enum RetryPolicy { + // Not specified. + RETRY_POLICY_UNSPECIFIED = 0; + + // Do not retry. + RETRY_POLICY_DO_NOT_RETRY = 1; + + // Retry on any failure, retry up to 7 days with an exponential backoff + // (capped at 10 seconds). + RETRY_POLICY_RETRY = 2; + } + + // Output only. The resource name of the Eventarc trigger. The format of this field is + // `projects/{project}/locations/{region}/triggers/{trigger}`. + string trigger = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Trigger" + } + ]; + + // The region that the trigger will be in. The trigger will only receive + // events originating in this region. It can be the same + // region as the function, a different region or multi-region, or the global + // region. If not provided, defaults to the same region as the function. + string trigger_region = 2; + + // Required. The type of event to observe. For example: + // `google.cloud.audit.log.v1.written` or + // `google.cloud.pubsub.topic.v1.messagePublished`. + string event_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Criteria used to filter events. + repeated EventFilter event_filters = 4; + + // Optional. The name of a Pub/Sub topic in the same project that will be used + // as the transport topic for the event delivery. Format: + // `projects/{project}/topics/{topic}`. + // + // This is only valid for events of type + // `google.cloud.pubsub.topic.v1.messagePublished`. The topic provided here + // will not be deleted at function deletion. + string pubsub_topic = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "pubsub.googleapis.com/Topic" + } + ]; + + // Optional. The email of the trigger's service account. The service account must have + // permission to invoke Cloud Run services, the permission is + // `run.routes.invoke`. + // If empty, defaults to the Compute Engine default service account: + // `{project_number}-compute@developer.gserviceaccount.com`. + string service_account_email = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If unset, then defaults to ignoring failures (i.e. not retrying them). + RetryPolicy retry_policy = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the channel associated with the trigger in + // `projects/{project}/locations/{location}/channels/{channel}` format. + // You must provide a channel to receive events from Eventarc SaaS partners. + string channel = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "eventarc.googleapis.com/Channel" + } + ]; +} + +// Filters events based on exact matches on the CloudEvents attributes. +message EventFilter { + // Required. The name of a CloudEvents attribute. + string attribute = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The value for the attribute. + string value = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The operator used for matching the events with the value of the + // filter. If not specified, only events that have an exact key-value pair + // specified in the filter are matched. The only allowed value is + // `match-path-pattern`. + string operator = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for the `GetFunction` method. +message GetFunctionRequest { + // Required. The name of the function which details should be obtained. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Request for the `ListFunctions` method. +message ListFunctionsRequest { + // Required. The project and location from which the function should be listed, + // specified in the format `projects/*/locations/*` + // If you want to list functions in all locations, use "-" in place of a + // location. When listing functions in all locations, if one or more + // location(s) are unreachable, the response will contain functions from all + // reachable locations along with the names of any unreachable locations. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudfunctions.googleapis.com/Function" + } + ]; + + // Maximum number of functions to return per call. + int32 page_size = 2; + + // The value returned by the last + // `ListFunctionsResponse`; indicates that + // this is a continuation of a prior `ListFunctions` call, and that the + // system should return the next page of data. + string page_token = 3; + + // The filter for Functions that match the filter expression, + // following the syntax outlined in https://google.aip.dev/160. + string filter = 4; + + // The sorting order of the resources returned. Value should be a comma + // separated list of fields. The default sorting oder is ascending. + // See https://google.aip.dev/132#ordering. + string order_by = 5; +} + +// Response for the `ListFunctions` method. +message ListFunctionsResponse { + // The functions that match the request. + repeated Function functions = 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; + + // Locations that could not be reached. The response does not include any + // functions from these locations. + repeated string unreachable = 3; +} + +// Request for the `CreateFunction` method. +message CreateFunctionRequest { + // Required. The project and location in which the function should be created, specified + // in the format `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. Function to be created. + Function function = 2 [(google.api.field_behavior) = REQUIRED]; + + // The ID to use for the function, which will become the final component of + // the function's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + string function_id = 3; +} + +// Request for the `UpdateFunction` method. +message UpdateFunctionRequest { + // Required. New version of the function. + Function function = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + // If no field mask is provided, all provided fields in the request will be + // updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for the `DeleteFunction` method. +message DeleteFunctionRequest { + // Required. The name of the function which should be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Request of `GenerateSourceUploadUrl` method. +message GenerateUploadUrlRequest { + // Required. The project and location in which the Google Cloud Storage signed URL + // should be generated, specified in the format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// Response of `GenerateSourceUploadUrl` method. +message GenerateUploadUrlResponse { + // The generated Google Cloud Storage signed URL that should be used for a + // function source code upload. The uploaded file should be a zip archive + // which contains a function. + string upload_url = 1; + + // The location of the source code in the upload bucket. + // + // Once the archive is uploaded using the `upload_url` use this field to + // set the `function.build_config.source.storage_source` + // during CreateFunction and UpdateFunction. + // + // Generation defaults to 0, as Cloud Storage provides a new generation only + // upon uploading a new object or version of an object. + StorageSource storage_source = 2; +} + +// Request of `GenerateDownloadUrl` method. +message GenerateDownloadUrlRequest { + // Required. The name of function for which source code Google Cloud Storage signed + // URL should be generated. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; +} + +// Response of `GenerateDownloadUrl` method. +message GenerateDownloadUrlResponse { + // The generated Google Cloud Storage signed URL that should be used for + // function source code download. + string download_url = 1; +} + +// Request for the `ListRuntimes` method. +message ListRuntimesRequest { + // Required. The project and location from which the runtimes 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" + } + ]; + + // The filter for Runtimes that match the filter expression, + // following the syntax outlined in https://google.aip.dev/160. + string filter = 2; +} + +// Response for the `ListRuntimes` method. +message ListRuntimesResponse { + // Describes a runtime and any special information (e.g., deprecation status) + // related to it. + message Runtime { + // The name of the runtime, e.g., 'go113', 'nodejs12', etc. + string name = 1; + + // The user facing name, eg 'Go 1.13', 'Node.js 12', etc. + string display_name = 5; + + // The stage of life this runtime is in, e.g., BETA, GA, etc. + RuntimeStage stage = 2; + + // Warning messages, e.g., a deprecation warning. + repeated string warnings = 3; + + // The environment for the runtime. + Environment environment = 4; + } + + // The various stages that a runtime can be in. + enum RuntimeStage { + // Not specified. + RUNTIME_STAGE_UNSPECIFIED = 0; + + // The runtime is in development. + DEVELOPMENT = 1; + + // The runtime is in the Alpha stage. + ALPHA = 2; + + // The runtime is in the Beta stage. + BETA = 3; + + // The runtime is generally available. + GA = 4; + + // The runtime is deprecated. + DEPRECATED = 5; + + // The runtime is no longer supported. + DECOMMISSIONED = 6; + } + + // The runtimes that match the request. + repeated Runtime runtimes = 1; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // Server-defined resource path for the target of the operation. + string target = 3; + + // Name of the verb executed by the operation. + string verb = 4; + + // Human-readable status of the operation, if any. + string status_detail = 5; + + // 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 cancel_requested = 6; + + // API version used to start the operation. + string api_version = 7; + + // The original request that started the operation. + google.protobuf.Any request_resource = 8; + + // Mechanism for reporting in-progress stages + repeated Stage stages = 9; +} + +// Each Stage of the deployment process +message Stage { + // Possible names for a Stage + enum Name { + // Not specified. Invalid name. + NAME_UNSPECIFIED = 0; + + // Artifact Regsitry Stage + ARTIFACT_REGISTRY = 1; + + // Build Stage + BUILD = 2; + + // Service Stage + SERVICE = 3; + + // Trigger Stage + TRIGGER = 4; + + // Service Rollback Stage + SERVICE_ROLLBACK = 5; + + // Trigger Rollback Stage + TRIGGER_ROLLBACK = 6; + } + + // Possible states for a Stage + enum State { + // Not specified. Invalid state. + STATE_UNSPECIFIED = 0; + + // Stage has not started. + NOT_STARTED = 1; + + // Stage is in progress. + IN_PROGRESS = 2; + + // Stage has completed. + COMPLETE = 3; + } + + // Name of the Stage. This will be unique for each Stage. + Name name = 1; + + // Message describing the Stage + string message = 2; + + // Current state of the Stage + State state = 3; + + // Resource of the Stage + string resource = 4; + + // Link to the current Stage resource + string resource_uri = 5; + + // State messages from the current Stage. + repeated StateMessage state_messages = 6; +} diff --git a/google/cloud/functions/v2beta/functions_grpc_service_config.json b/google/cloud/functions/v2beta/functions_grpc_service_config.json new file mode 100644 index 000000000..be67a2758 --- /dev/null +++ b/google/cloud/functions/v2beta/functions_grpc_service_config.json @@ -0,0 +1,44 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.functions.v2beta.CloudFunctionsService", + "method": "ListFunctions" + }, + { + "service": "google.cloud.functions.v2beta.CloudFunctionsService", + "method": "GetFunction" + }, + { + "service": "google.cloud.functions.v2beta.CloudFunctionsService", + "method": "UpdateFunction" + }, + { + "service": "google.cloud.functions.v2beta.CloudFunctionsService", + "method": "DeleteFunction" + }, + { + "service": "google.cloud.functions.v2beta.CloudFunctionsService", + "method": "ListRuntimes" + } + ], + "timeout": "600s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.functions.v2beta.CloudFunctionsService", + "method": "CreateFunction" + } + ], + "timeout": "600s" + } + ] +} diff --git a/google/cloud/gaming/allocationendpoint/v1alpha/BUILD.bazel b/google/cloud/gaming/allocationendpoint/v1alpha/BUILD.bazel deleted file mode 100644 index 4a9366bf1..000000000 --- a/google/cloud/gaming/allocationendpoint/v1alpha/BUILD.bazel +++ /dev/null @@ -1,333 +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. - -# 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 = "allocationendpoint_proto", - srcs = [ - "allocation_endpoint.proto", - ], - deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - ], -) - -proto_library_with_info( - name = "allocationendpoint_proto_with_info", - deps = [ - ":allocationendpoint_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_grpc_library", - "java_proto_library", -) - -java_proto_library( - name = "allocationendpoint_java_proto", - deps = [":allocationendpoint_proto"], -) - -java_grpc_library( - name = "allocationendpoint_java_grpc", - srcs = [":allocationendpoint_proto"], - deps = [":allocationendpoint_java_proto"], -) - -java_gapic_library( - name = "allocationendpoint_java_gapic", - srcs = [":allocationendpoint_proto_with_info"], - gapic_yaml = None, - grpc_service_config = "allocation_endpoint_grpc_service_config.json", - service_yaml = "allocation_endpoint_v1alpha.yaml", - test_deps = [ - ":allocationendpoint_java_grpc", - ], - deps = [ - ":allocationendpoint_java_proto", - "//google/api:api_java_proto", - ], -) - -java_gapic_test( - name = "allocationendpoint_java_gapic_test_suite", - test_classes = [ - "com.google.cloud.gaming.allocationendpoint.v1alpha.AllocationEndpointServiceClientTest", - ], - runtime_deps = [":allocationendpoint_java_gapic_test"], -) - -# Open Source Packages -java_gapic_assembly_gradle_pkg( - name = "google-cloud-gaming-allocationendpoint-v1alpha-java", - deps = [ - ":allocationendpoint_java_gapic", - ":allocationendpoint_java_grpc", - ":allocationendpoint_java_proto", - ":allocationendpoint_proto", - ], -) - -############################################################################## -# Go -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "go_test", -) - -go_proto_library( - name = "allocationendpoint_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/cloud/gaming/allocationendpoint/v1alpha", - protos = [":allocationendpoint_proto"], - deps = [ - "//google/api:annotations_go_proto", - ], -) - -go_gapic_library( - name = "allocationendpoint_go_gapic", - srcs = [":allocationendpoint_proto_with_info"], - grpc_service_config = "allocation_endpoint_grpc_service_config.json", - importpath = "cloud.google.com/go/gaming/allocationendpoint/apiv1alpha;allocationendpoint", - service_yaml = "allocation_endpoint_v1alpha.yaml", - metadata = True, - deps = [ - ":allocationendpoint_go_proto", - ], -) - -go_test( - name = "allocationendpoint_go_gapic_test", - srcs = [":allocationendpoint_go_gapic_srcjar_test"], - embed = [":allocationendpoint_go_gapic"], - importpath = "cloud.google.com/go/gaming/allocationendpoint/apiv1alpha", -) - -# Open Source Packages -go_gapic_assembly_pkg( - name = "gapi-cloud-gaming-allocationendpoint-v1alpha-go", - deps = [ - ":allocationendpoint_go_gapic", - ":allocationendpoint_go_gapic_srcjar-test.srcjar", - ":allocationendpoint_go_gapic_srcjar-metadata.srcjar", - ":allocationendpoint_go_proto", - ], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", -) - -py_gapic_library( - name = "allocationendpoint_py_gapic", - srcs = [":allocationendpoint_proto"], - grpc_service_config = "allocation_endpoint_grpc_service_config.json", -) - -# Open Source Packages -py_gapic_assembly_pkg( - name = "gaming-allocationendpoint-v1alpha-py", - deps = [ - ":allocationendpoint_py_gapic", - ], -) - -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", -) - -php_proto_library( - name = "allocationendpoint_php_proto", - deps = [":allocationendpoint_proto"], -) - -php_grpc_library( - name = "allocationendpoint_php_grpc", - srcs = [":allocationendpoint_proto"], - deps = [":allocationendpoint_php_proto"], -) - -php_gapic_library( - name = "allocationendpoint_php_gapic", - srcs = [":allocationendpoint_proto_with_info"], - grpc_service_config = "allocation_endpoint_grpc_service_config.json", - service_yaml = "allocation_endpoint_v1alpha.yaml", - deps = [ - ":allocationendpoint_php_grpc", - ":allocationendpoint_php_proto", - ], -) - -# Open Source Packages -php_gapic_assembly_pkg( - name = "google-cloud-gaming-allocationendpoint-v1alpha-php", - deps = [ - ":allocationendpoint_php_gapic", - ":allocationendpoint_php_grpc", - ":allocationendpoint_php_proto", - ], -) - -############################################################################## -# Node.js -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", -) - -nodejs_gapic_library( - name = "allocationendpoint_nodejs_gapic", - package_name = "@google-cloud/allocationendpoint", - src = ":allocationendpoint_proto_with_info", - extra_protoc_parameters = ["metadata"], - grpc_service_config = "allocation_endpoint_grpc_service_config.json", - package = "google.cloud.gaming.allocationendpoint.v1alpha", - service_yaml = "allocation_endpoint_v1alpha.yaml", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "gaming-allocationendpoint-v1alpha-nodejs", - deps = [ - ":allocationendpoint_nodejs_gapic", - ":allocationendpoint_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 = "allocationendpoint_ruby_proto", - deps = [":allocationendpoint_proto"], -) - -ruby_grpc_library( - name = "allocationendpoint_ruby_grpc", - srcs = [":allocationendpoint_proto"], - deps = [":allocationendpoint_ruby_proto"], -) - -ruby_cloud_gapic_library( - name = "allocationendpoint_ruby_gapic", - srcs = [":allocationendpoint_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-gaming-allocationendpoint-v1alpha", - ], - grpc_service_config = "allocation_endpoint_grpc_service_config.json", - deps = [ - ":allocationendpoint_ruby_grpc", - ":allocationendpoint_ruby_proto", - ], -) - -# Open Source Packages -ruby_gapic_assembly_pkg( - name = "google-cloud-gaming-allocationendpoint-v1alpha-ruby", - deps = [ - ":allocationendpoint_ruby_gapic", - ":allocationendpoint_ruby_grpc", - ":allocationendpoint_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 = "allocationendpoint_csharp_proto", - deps = [":allocationendpoint_proto"], -) - -csharp_grpc_library( - name = "allocationendpoint_csharp_grpc", - srcs = [":allocationendpoint_proto"], - deps = [":allocationendpoint_csharp_proto"], -) - -csharp_gapic_library( - name = "allocationendpoint_csharp_gapic", - srcs = [":allocationendpoint_proto_with_info"], - common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "allocation_endpoint_grpc_service_config.json", - deps = [ - ":allocationendpoint_csharp_grpc", - ":allocationendpoint_csharp_proto", - ], -) - -# Open Source Packages -csharp_gapic_assembly_pkg( - name = "google-cloud-gaming-allocationendpoint-v1alpha-csharp", - deps = [ - ":allocationendpoint_csharp_gapic", - ":allocationendpoint_csharp_grpc", - ":allocationendpoint_csharp_proto", - ], -) - -############################################################################## -# C++ -############################################################################## -# Put your C++ rules here diff --git a/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint.proto b/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint.proto deleted file mode 100644 index 57e479fde..000000000 --- a/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint.proto +++ /dev/null @@ -1,94 +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 google.cloud.gaming.allocationendpoint.v1alpha; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/allocationendpoint/v1alpha;allocationendpoint"; -option java_multiple_files = true; -option java_outer_classname = "AllocationEndpointProto"; -option java_package = "com.google.cloud.gaming.allocationendpoint.v1alpha"; - -service AllocationEndpointService { - option (google.api.default_host) = "example.com"; - - // Proxy allocation service to the Game Server Clusters. - rpc Allocate(AllocationRequest) returns (AllocationResponse) { - } -} - -message AllocationRequest { - // The required realm name in the following form: - // `{location}/{realm}`. - string realm = 1; - - // The default game server deployment name. - // This is used to increase the likelihood of a successful - // allocation. - string default_game_server_deployment = 2; - - // The ordered list of game server labels to match for allocations. - // If the first game server selector is not matched, the selection attempts - // the second game server selector, and so on. - repeated GameServerSelector game_server_selectors = 3; - - // Metadata is optional custom metadata that is added to the game server at - // allocation. You can use this to tell the server necessary session data. - MetaPatch metadata = 4; -} - -message AllocationResponse { - // The game server port info that is allocated. - message GameServerStatusPort { - string name = 1; - - int32 port = 2; - } - - // The name of the allocated game server. - string game_server_name = 1; - - // The allocated game server's port information. - repeated GameServerStatusPort ports = 2; - - // The address of the allocated game server. - string address = 3; - - // The node name of the allocated game server. - string node_name = 4; - - // The game server cluster from which the game server was allocated. - string game_server_cluster_name = 5; - - // The game server deployment from which the game server was allocated. - string deployment_name = 6; -} - -// MetaPatch is the metadata used to patch the Game Server metadata on -// allocation. It behaves exactly as it does in OSS. -message MetaPatch { - map labels = 1; - - map annotations = 2; -} - -// GameServerSelector used for finding a GameServer with matching labels. -message GameServerSelector { - // Labels to match. - map match_labels = 1; -} diff --git a/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint_grpc_service_config.json b/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint_grpc_service_config.json deleted file mode 100644 index d00bc2fd6..000000000 --- a/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint_grpc_service_config.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "methodConfig": [{ - "name": [{ "service": "google.cloud.gaming.allocationendpoint.v1alpha.AllocationEndpointService" }], - "timeout": "60s", - "retryPolicy": { - "maxAttempts": 5, - "initialBackoff": "1s", - "maxBackoff": "10s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": ["UNAVAILABLE"] - } - }, - { - "name": [ - { "service": "google.cloud.gaming.allocationendpoint.v1alpha.AllocationEndpointService", "method": "Allocate" } - ], - "timeout": "60s" - }] -} diff --git a/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint_v1alpha.yaml b/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint_v1alpha.yaml deleted file mode 100644 index c6715844c..000000000 --- a/google/cloud/gaming/allocationendpoint/v1alpha/allocation_endpoint_v1alpha.yaml +++ /dev/null @@ -1,10 +0,0 @@ -type: google.api.Service -config_version: 3 -name: example.com -title: Allocation Endpoint API - -apis: -- name: google.cloud.gaming.allocationendpoint.v1alpha.AllocationEndpointService - -documentation: - summary: Allocation Endpoint API for Google cloud game server allocations. diff --git a/google/cloud/gaming/v1/BUILD.bazel b/google/cloud/gaming/v1/BUILD.bazel index 8f3d69922..6d60d493c 100644 --- a/google/cloud/gaming/v1/BUILD.bazel +++ b/google/cloud/gaming/v1/BUILD.bazel @@ -81,6 +81,7 @@ java_gapic_library( test_deps = [ ":gaming_java_grpc", ], + transport = "grpc+rest", deps = [ ":gaming_java_proto", ], @@ -89,9 +90,13 @@ java_gapic_library( java_gapic_test( name = "gaming_java_gapic_test_suite", test_classes = [ + "com.google.cloud.gaming.v1.GameServerClustersServiceClientHttpJsonTest", "com.google.cloud.gaming.v1.GameServerClustersServiceClientTest", + "com.google.cloud.gaming.v1.GameServerConfigsServiceClientHttpJsonTest", "com.google.cloud.gaming.v1.GameServerConfigsServiceClientTest", + "com.google.cloud.gaming.v1.GameServerDeploymentsServiceClientHttpJsonTest", "com.google.cloud.gaming.v1.GameServerDeploymentsServiceClientTest", + "com.google.cloud.gaming.v1.RealmsServiceClientHttpJsonTest", "com.google.cloud.gaming.v1.RealmsServiceClientTest", ], runtime_deps = [":gaming_java_gapic_test"], @@ -100,6 +105,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gaming-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":gaming_java_gapic", ":gaming_java_grpc", @@ -136,6 +143,7 @@ go_gapic_library( grpc_service_config = "gaming_grpc_service_config.json", importpath = "cloud.google.com/go/gaming/apiv1;gaming", service_yaml = "gameservices_v1.yaml", + transport = "grpc+rest", deps = [ ":gaming_go_proto", "//google/longrunning:longrunning_go_proto", @@ -169,6 +177,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -178,6 +187,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-game-servers", ], + transport = "grpc", +) + +py_test( + name = "gaming_py_gapic_test", + srcs = [ + "gaming_py_gapic_pytest.py", + "gaming_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gaming_py_gapic"], ) # Open Source Packages @@ -337,6 +357,7 @@ csharp_gapic_library( srcs = [":gaming_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "gaming_grpc_service_config.json", + service_yaml = "gameservices_v1.yaml", deps = [ ":gaming_csharp_grpc", ":gaming_csharp_proto", diff --git a/google/cloud/gaming/v1/common.proto b/google/cloud/gaming/v1/common.proto index 5efe00c97..843042671 100644 --- a/google/cloud/gaming/v1/common.proto +++ b/google/cloud/gaming/v1/common.proto @@ -19,7 +19,6 @@ package google.cloud.gaming.v1; import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; option java_multiple_files = true; diff --git a/google/cloud/gaming/v1/game_server_clusters.proto b/google/cloud/gaming/v1/game_server_clusters.proto index ba6a5586c..02fbc0f89 100644 --- a/google/cloud/gaming/v1/game_server_clusters.proto +++ b/google/cloud/gaming/v1/game_server_clusters.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/gaming/v1/common.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; option java_multiple_files = true; diff --git a/google/cloud/gaming/v1/game_server_configs.proto b/google/cloud/gaming/v1/game_server_configs.proto index e92448d2f..c9848654e 100644 --- a/google/cloud/gaming/v1/game_server_configs.proto +++ b/google/cloud/gaming/v1/game_server_configs.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/gaming/v1/common.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; option java_multiple_files = true; diff --git a/google/cloud/gaming/v1/game_server_deployments.proto b/google/cloud/gaming/v1/game_server_deployments.proto index 169558092..3c01717dd 100644 --- a/google/cloud/gaming/v1/game_server_deployments.proto +++ b/google/cloud/gaming/v1/game_server_deployments.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/gaming/v1/common.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; option java_multiple_files = true; diff --git a/google/cloud/gaming/v1/realms.proto b/google/cloud/gaming/v1/realms.proto index 8acadf577..007071a90 100644 --- a/google/cloud/gaming/v1/realms.proto +++ b/google/cloud/gaming/v1/realms.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/gaming/v1/common.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; option java_multiple_files = true; diff --git a/google/cloud/gaming/v1beta/BUILD.bazel b/google/cloud/gaming/v1beta/BUILD.bazel index c287a8f78..7220119c5 100644 --- a/google/cloud/gaming/v1beta/BUILD.bazel +++ b/google/cloud/gaming/v1beta/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":gaming_java_grpc", ], + transport = "grpc+rest", deps = [ ":gaming_java_proto", ], @@ -80,9 +81,13 @@ java_gapic_library( java_gapic_test( name = "gaming_java_gapic_test_suite", test_classes = [ + "com.google.cloud.gaming.v1beta.GameServerClustersServiceClientHttpJsonTest", "com.google.cloud.gaming.v1beta.GameServerClustersServiceClientTest", + "com.google.cloud.gaming.v1beta.GameServerConfigsServiceClientHttpJsonTest", "com.google.cloud.gaming.v1beta.GameServerConfigsServiceClientTest", + "com.google.cloud.gaming.v1beta.GameServerDeploymentsServiceClientHttpJsonTest", "com.google.cloud.gaming.v1beta.GameServerDeploymentsServiceClientTest", + "com.google.cloud.gaming.v1beta.RealmsServiceClientHttpJsonTest", "com.google.cloud.gaming.v1beta.RealmsServiceClientTest", ], runtime_deps = [":gaming_java_gapic_test"], @@ -91,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gaming-v1beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":gaming_java_gapic", ":gaming_java_grpc", @@ -127,6 +134,7 @@ go_gapic_library( grpc_service_config = "gaming_grpc_service_config.json", importpath = "cloud.google.com/go/gaming/apiv1beta;gaming", service_yaml = "gameservices_v1beta.yaml", + transport = "grpc+rest", deps = [ ":gaming_go_proto", "//google/longrunning:longrunning_go_proto", @@ -160,6 +168,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -169,6 +178,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-game-servers", ], + transport = "grpc", +) + +py_test( + name = "gaming_py_gapic_test", + srcs = [ + "gaming_py_gapic_pytest.py", + "gaming_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gaming_py_gapic"], ) # Open Source Packages @@ -254,8 +274,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -273,7 +293,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "gaming_ruby_gapic", - srcs = [":gaming_proto_with_info",], + srcs = [":gaming_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-gaming-v1beta"], deps = [ ":gaming_ruby_grpc", @@ -318,6 +338,7 @@ csharp_gapic_library( srcs = [":gaming_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "gaming_grpc_service_config.json", + service_yaml = "gameservices_v1beta.yaml", deps = [ ":gaming_csharp_grpc", ":gaming_csharp_proto", diff --git a/google/cloud/gaming/v1beta/common.proto b/google/cloud/gaming/v1beta/common.proto index cb9157130..4059404fc 100644 --- a/google/cloud/gaming/v1beta/common.proto +++ b/google/cloud/gaming/v1beta/common.proto @@ -19,7 +19,6 @@ package google.cloud.gaming.v1beta; import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1beta;gaming"; diff --git a/google/cloud/gaming/v1beta/game_server_clusters.proto b/google/cloud/gaming/v1beta/game_server_clusters.proto index 6816f2cc2..0a91a635d 100644 --- a/google/cloud/gaming/v1beta/game_server_clusters.proto +++ b/google/cloud/gaming/v1beta/game_server_clusters.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/gaming/v1beta/common.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1beta;gaming"; diff --git a/google/cloud/gaming/v1beta/game_server_configs.proto b/google/cloud/gaming/v1beta/game_server_configs.proto index a94b40b33..1ffc0c816 100644 --- a/google/cloud/gaming/v1beta/game_server_configs.proto +++ b/google/cloud/gaming/v1beta/game_server_configs.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/gaming/v1beta/common.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1beta;gaming"; diff --git a/google/cloud/gaming/v1beta/game_server_deployments.proto b/google/cloud/gaming/v1beta/game_server_deployments.proto index 1dde396bf..01e8fef93 100644 --- a/google/cloud/gaming/v1beta/game_server_deployments.proto +++ b/google/cloud/gaming/v1beta/game_server_deployments.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/gaming/v1beta/common.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1beta;gaming"; diff --git a/google/cloud/gaming/v1beta/gameservices_v1beta.yaml b/google/cloud/gaming/v1beta/gameservices_v1beta.yaml index 7a408e656..155d9fc0a 100644 --- a/google/cloud/gaming/v1beta/gameservices_v1beta.yaml +++ b/google/cloud/gaming/v1beta/gameservices_v1beta.yaml @@ -59,6 +59,18 @@ backend: - selector: google.longrunning.Operations.GetOperation deadline: 5.0 +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v1beta/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1beta/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1beta/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1beta/{name=projects/*/locations/*}/operations' + authentication: rules: - selector: 'google.cloud.gaming.v1beta.GameServerClustersService.*' diff --git a/google/cloud/gaming/v1beta/realms.proto b/google/cloud/gaming/v1beta/realms.proto index f39fc938a..e80bae0a9 100644 --- a/google/cloud/gaming/v1beta/realms.proto +++ b/google/cloud/gaming/v1beta/realms.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/gaming/v1beta/common.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1beta;gaming"; diff --git a/google/cloud/gkebackup/BUILD.bazel b/google/cloud/gkebackup/BUILD.bazel new file mode 100644 index 000000000..cfd2bbd75 --- /dev/null +++ b/google/cloud/gkebackup/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-gke_backup. + +# 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 gkebackup. +# 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 = "gkebackup_ruby_wrapper", + srcs = ["//google/cloud/gkebackup/v1:gkebackup_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=gkebackup.googleapis.com", + "ruby-cloud-api-shortname=gkebackup", + "ruby-cloud-gem-name=google-cloud-gke_backup", + "ruby-cloud-product-url=https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "Backup for GKE lets you protect, manage, and restore your containerized applications and data for stateful workloads running on Google Kubernetes Engine clusters.", + ruby_cloud_title = "Backup for GKE", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-gkebackup-ruby", + deps = [ + ":gkebackup_ruby_wrapper", + ], +) diff --git a/google/cloud/gkebackup/v1/BUILD.bazel b/google/cloud/gkebackup/v1/BUILD.bazel new file mode 100644 index 000000000..ed7aba877 --- /dev/null +++ b/google/cloud/gkebackup/v1/BUILD.bazel @@ -0,0 +1,339 @@ +# 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", + "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", + "go_test", + "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_grpc_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 = "gkebackup_proto", + srcs = [ + "backup.proto", + "backup_plan.proto", + "common.proto", + "gkebackup.proto", + "restore.proto", + "restore_plan.proto", + "volume.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//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "gkebackup_proto_with_info", + deps = [ + ":gkebackup_proto", + "//google/cloud:common_resources_proto", + ], +) + +java_proto_library( + name = "gkebackup_java_proto", + deps = [":gkebackup_proto"], +) + +java_grpc_library( + name = "gkebackup_java_grpc", + srcs = [":gkebackup_proto"], + deps = [":gkebackup_java_proto"], +) + +java_gapic_library( + name = "gkebackup_java_gapic", + srcs = [":gkebackup_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "gkebackup_grpc_service_config.json", + service_yaml = "gkebackup_v1.yaml", + test_deps = [ + ":gkebackup_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":gkebackup_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "gkebackup_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.gkebackup.v1.BackupForGKEClientHttpJsonTest", + "com.google.cloud.gkebackup.v1.BackupForGKEClientTest", + ], + runtime_deps = [":gkebackup_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-gkebackup-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":gkebackup_java_gapic", + ":gkebackup_java_grpc", + ":gkebackup_java_proto", + ":gkebackup_proto", + ], +) + +go_proto_library( + name = "gkebackup_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/gkebackup/v1", + protos = [":gkebackup_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "gkebackup_go_gapic", + srcs = [":gkebackup_proto_with_info"], + grpc_service_config = "gkebackup_grpc_service_config.json", + importpath = "cloud.google.com/go/gkebackup/apiv1;gkebackup", + metadata = True, + service_yaml = "gkebackup_v1.yaml", + transport = "grpc+rest", + deps = [ + ":gkebackup_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", + ], +) + +go_test( + name = "gkebackup_go_gapic_test", + srcs = [":gkebackup_go_gapic_srcjar_test"], + embed = [":gkebackup_go_gapic"], + importpath = "cloud.google.com/go/gkebackup/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-gkebackup-v1-go", + deps = [ + ":gkebackup_go_gapic", + ":gkebackup_go_gapic_srcjar-metadata.srcjar", + ":gkebackup_go_gapic_srcjar-test.srcjar", + ":gkebackup_go_proto", + ], +) + +py_gapic_library( + name = "gkebackup_py_gapic", + srcs = [":gkebackup_proto"], + grpc_service_config = "gkebackup_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-gke-backup", + "python-gapic-namespace=google.cloud", + "python-gapic-name=gke_backup", + ], + transport = "grpc+rest", +) + +py_test( + name = "gkebackup_py_gapic_test", + srcs = [ + "gkebackup_py_gapic_pytest.py", + "gkebackup_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gkebackup_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "gkebackup-v1-py", + deps = [ + ":gkebackup_py_gapic", + ], +) + +php_proto_library( + name = "gkebackup_php_proto", + deps = [":gkebackup_proto"], +) + +php_grpc_library( + name = "gkebackup_php_grpc", + srcs = [":gkebackup_proto"], + deps = [":gkebackup_php_proto"], +) + +php_gapic_library( + name = "gkebackup_php_gapic", + srcs = [":gkebackup_proto_with_info"], + grpc_service_config = "gkebackup_grpc_service_config.json", + service_yaml = "gkebackup_v1.yaml", + deps = [ + ":gkebackup_php_grpc", + ":gkebackup_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-gkebackup-v1-php", + deps = [ + ":gkebackup_php_gapic", + ":gkebackup_php_grpc", + ":gkebackup_php_proto", + ], +) + +nodejs_gapic_library( + name = "gkebackup_nodejs_gapic", + package_name = "@google-cloud/gke-backup", + src = ":gkebackup_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "gkebackup_grpc_service_config.json", + package = "google.cloud.gkebackup.v1", + service_yaml = "gkebackup_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "gkebackup-v1-nodejs", + deps = [ + ":gkebackup_nodejs_gapic", + ":gkebackup_proto", + ], +) + +ruby_proto_library( + name = "gkebackup_ruby_proto", + deps = [":gkebackup_proto"], +) + +ruby_grpc_library( + name = "gkebackup_ruby_grpc", + srcs = [":gkebackup_proto"], + deps = [":gkebackup_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "gkebackup_ruby_gapic", + srcs = [":gkebackup_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=gkebackup.googleapis.com", + "ruby-cloud-api-shortname=gkebackup", + "ruby-cloud-gem-name=google-cloud-gke_backup-v1", + "ruby-cloud-product-url=https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/", + ], + grpc_service_config = "gkebackup_grpc_service_config.json", + ruby_cloud_description = "Backup for GKE lets you protect, manage, and restore your containerized applications and data for stateful workloads running on Google Kubernetes Engine clusters.", + ruby_cloud_title = "Backup for GKE V1", + deps = [ + ":gkebackup_ruby_grpc", + ":gkebackup_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-gkebackup-v1-ruby", + deps = [ + ":gkebackup_ruby_gapic", + ":gkebackup_ruby_grpc", + ":gkebackup_ruby_proto", + ], +) + +csharp_proto_library( + name = "gkebackup_csharp_proto", + deps = [":gkebackup_proto"], +) + +csharp_grpc_library( + name = "gkebackup_csharp_grpc", + srcs = [":gkebackup_proto"], + deps = [":gkebackup_csharp_proto"], +) + +csharp_gapic_library( + name = "gkebackup_csharp_gapic", + srcs = [":gkebackup_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "gkebackup_grpc_service_config.json", + service_yaml = "gkebackup_v1.yaml", + deps = [ + ":gkebackup_csharp_grpc", + ":gkebackup_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-gkebackup-v1-csharp", + deps = [ + ":gkebackup_csharp_gapic", + ":gkebackup_csharp_grpc", + ":gkebackup_csharp_proto", + ], +) + +cc_proto_library( + name = "gkebackup_cc_proto", + deps = [":gkebackup_proto"], +) + +cc_grpc_library( + name = "gkebackup_cc_grpc", + srcs = [":gkebackup_proto"], + grpc_only = True, + deps = [":gkebackup_cc_proto"], +) diff --git a/google/cloud/gkebackup/v1/backup.proto b/google/cloud/gkebackup/v1/backup.proto new file mode 100644 index 000000000..5e8193b75 --- /dev/null +++ b/google/cloud/gkebackup/v1/backup.proto @@ -0,0 +1,219 @@ +// 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.cloud.gkebackup.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gkebackup/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeBackup.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkebackup/v1;gkebackup"; +option java_multiple_files = true; +option java_outer_classname = "BackupProto"; +option java_package = "com.google.cloud.gkebackup.v1"; +option php_namespace = "Google\\Cloud\\GkeBackup\\V1"; +option ruby_package = "Google::Cloud::GkeBackup::V1"; + +// Represents a request to perform a single point-in-time capture of +// 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" + pattern: "projects/{project}/locations/{location}/backupPlans/{backup_plan}/backups/{backup}" + }; + + // Information about the GKE cluster from which this Backup was created. + message ClusterMetadata { + // The source cluster from which this Backup was created. + // Valid formats: + // + // - projects/*/locations/*/clusters/* + // - projects/*/zones/*/clusters/* + // + // This is inherited from the parent BackupPlan's + // [cluster][google.cloud.gkebackup.v1.BackupPlan.cluster] field. + string cluster = 1; + + // The Kubernetes server version of the source cluster. + string k8s_version = 2; + + // A list of the Backup for GKE CRD versions found in the cluster. + map backup_crd_versions = 3; + + // Platform-specific version + oneof platform_version { + // GKE version + string gke_version = 4; + + // Anthos version + string anthos_version = 5; + } + } + + // State + enum State { + // The Backup resource is in the process of being created. + STATE_UNSPECIFIED = 0; + + // The Backup resource has been created and the associated BackupJob + // Kubernetes resource has been injected into the source cluster. + CREATING = 1; + + // The gkebackup agent in the cluster has begun executing the backup + // operation. + IN_PROGRESS = 2; + + // The backup operation has completed successfully. + SUCCEEDED = 3; + + // The backup operation has failed. + FAILED = 4; + + // This Backup resource (and its associated artifacts) is in the process + // of being deleted. + DELETING = 5; + } + + // Output only. The fully qualified name of the Backup. + // projects/*/locations/*/backupPlans/*/backups/* + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server generated global unique identifier of + // [UUID4](https://en.wikipedia.org/wiki/Universally_unique_identifier) + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this Backup resource was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this Backup resource was last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This flag indicates whether this Backup resource was created manually + // by a user or via a schedule in the BackupPlan. A value of True 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; + + // 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). + // + // Defaults to parent BackupPlan's + // [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; + + // Output only. The time at which an existing delete lock will expire for this backup + // (calculated from create_time + [delete_lock_days][google.cloud.gkebackup.v1.Backup.delete_lock_days]). + 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: + // + // - If 0, no automatic deletion will occur for this Backup. + // - If not 0, this must be >= [delete_lock_days][google.cloud.gkebackup.v1.Backup.delete_lock_days]. + // + // Once a Backup is created, this value may only be increased. + // + // Defaults to the parent BackupPlan's + // [backup_retain_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_retain_days] value. + int32 retain_days = 9; + + // Output only. The time at which this Backup will be automatically deleted (calculated + // from create_time + [retain_days][google.cloud.gkebackup.v1.Backup.retain_days]). + google.protobuf.Timestamp retain_expire_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The customer managed encryption key that was used to encrypt the Backup's + // artifacts. Inherited from the parent BackupPlan's + // [encryption_key][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.encryption_key] value. + EncryptionKey encryption_key = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Defines the "scope" of the Backup - which namespaced resources in the + // cluster were included in the Backup. Inherited from the parent + // BackupPlan's [backup_scope][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.backup_scope] value. + oneof backup_scope { + // Output only. If True, all namespaces were included in the Backup. + bool all_namespaces = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, the list of namespaces that were included in the Backup. + Namespaces selected_namespaces = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, the list of ProtectedApplications whose resources were included + // in the Backup. + NamespacedNames selected_applications = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Whether or not the Backup contains volume data. Controlled by the parent + // BackupPlan's + // [include_volume_data][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.include_volume_data] value. + bool contains_volume_data = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether or not the Backup contains Kubernetes Secrets. Controlled by the + // parent BackupPlan's + // [include_secrets][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.include_secrets] value. + bool contains_secrets = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about the GKE cluster from which this Backup was created. + ClusterMetadata cluster_metadata = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Current state of the Backup + State state = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable description of why the backup is in the current `state`. + string state_reason = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Completion time of the Backup + google.protobuf.Timestamp complete_time = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total number of Kubernetes resources included in the Backup. + int32 resource_count = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total number of volume backups contained in the Backup. + int32 volume_count = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total size of the Backup in bytes = config backup size + sum(volume + // backup sizes) + int64 size_bytes = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. `etag` is used for optimistic concurrency control as a way to help + // prevent simultaneous updates of a backup from overwriting each other. + // It is strongly suggested that systems make use of the `etag` in the + // read-modify-write cycle to perform backup updates in order to avoid + // race conditions: An `etag` is returned in the response to `GetBackup`, + // and systems are expected to put that etag in the request to + // `UpdateBackup` or `DeleteBackup` to ensure that their change will be + // 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; + + // Output only. The total number of Kubernetes Pods contained in the Backup. + int32 pod_count = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The size of the config backup in bytes. + int64 config_backup_size_bytes = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/gkebackup/v1/backup_plan.proto b/google/cloud/gkebackup/v1/backup_plan.proto new file mode 100644 index 000000000..ae823f18a --- /dev/null +++ b/google/cloud/gkebackup/v1/backup_plan.proto @@ -0,0 +1,195 @@ +// 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.cloud.gkebackup.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gkebackup/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeBackup.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkebackup/v1;gkebackup"; +option java_multiple_files = true; +option java_outer_classname = "BackupPlanProto"; +option java_package = "com.google.cloud.gkebackup.v1"; +option php_namespace = "Google\\Cloud\\GkeBackup\\V1"; +option ruby_package = "Google::Cloud::GkeBackup::V1"; + +// Defines the configuration and scheduling for a "line" of Backups. +message BackupPlan { + option (google.api.resource) = { + type: "gkebackup.googleapis.com/BackupPlan" + pattern: "projects/{project}/locations/{location}/backupPlans/{backup_plan}" + }; + + // RetentionPolicy defines a Backup retention policy for a BackupPlan. + message RetentionPolicy { + // 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). + // Updating this field of a BackupPlan does NOT affect existing Backups + // under it. Backups created AFTER a successful update will inherit + // 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. + // 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]. + // + // Default: 0 (no automatic deletion) + int32 backup_retain_days = 2; + + // 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; + } + + // Schedule 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. + // + // Default (empty): no automatic backup creation will occur. + string cron_schedule = 1; + + // This flag denotes whether automatic Backup creation is paused for this + // BackupPlan. + // + // Default: False + bool paused = 2; + } + + // BackupConfig defines the configuration of Backups created via this + // BackupPlan. + message BackupConfig { + // This defines the "scope" of the Backup - which namespaced + // resources in the cluster will be included in a Backup. + // Exactly one of the fields of backup_scope MUST be specified. + oneof backup_scope { + // If True, include all namespaced resources + bool all_namespaces = 1; + + // If set, include just the resources in the listed namespaces. + Namespaces selected_namespaces = 2; + + // If set, include just the resources referenced by the listed + // ProtectedApplications. + NamespacedNames selected_applications = 3; + } + + // 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; + + // This flag specifies whether Kubernetes Secret resources should be + // included when they fall into the scope of Backups. + // + // Default: False + bool include_secrets = 5; + + // 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; + } + + // Output only. The full name of the BackupPlan resource. + // Format: projects/*/locations/*/backupPlans/* + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server generated global unique identifier of + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this BackupPlan resource was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this BackupPlan resource was last + // updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User specified descriptive string for this BackupPlan. + string description = 5; + + // Required. Immutable. The source cluster from which Backups will be created via + // this BackupPlan. + // Valid formats: + // + // - projects/*/locations/*/clusters/* + // - projects/*/zones/*/clusters/* + string cluster = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "container.googleapis.com/Cluster" + } + ]; + + // RetentionPolicy governs lifecycle of Backups created under this plan. + RetentionPolicy retention_policy = 7; + + // A set of custom labels supplied by user. + map labels = 8; + + // Defines a schedule for automatic Backup creation via this BackupPlan. + Schedule backup_schedule = 9; + + // Output only. `etag` is used for optimistic concurrency control as a way to help + // prevent simultaneous updates of a backup plan from overwriting each other. + // It is strongly suggested that systems make use of the 'etag' in the + // read-modify-write cycle to perform BackupPlan updates in order to avoid + // race conditions: An `etag` is returned in the response to `GetBackupPlan`, + // and systems are expected to put that etag in the request to + // `UpdateBackupPlan` or `DeleteBackupPlan` to ensure that their change + // 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. + // 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; + + // Defines the configuration of Backups created via this BackupPlan. + BackupConfig backup_config = 12; + + // Output only. The number of Kubernetes Pods backed up in the + // last successful Backup created via this BackupPlan. + int32 protected_pod_count = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/gkebackup/v1/common.proto b/google/cloud/gkebackup/v1/common.proto new file mode 100644 index 000000000..f86e95eae --- /dev/null +++ b/google/cloud/gkebackup/v1/common.proto @@ -0,0 +1,58 @@ +// 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.cloud.gkebackup.v1; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.GkeBackup.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkebackup/v1;gkebackup"; +option java_multiple_files = true; +option java_outer_classname = "CommonProto"; +option java_package = "com.google.cloud.gkebackup.v1"; +option php_namespace = "Google\\Cloud\\GkeBackup\\V1"; +option ruby_package = "Google::Cloud::GkeBackup::V1"; + +// A list of Kubernetes Namespaces +message Namespaces { + // A list of Kubernetes Namespaces + repeated string namespaces = 1; +} + +// A reference to a namespaced resource in Kubernetes. +message NamespacedName { + // The Namespace of the Kubernetes resource. + string namespace = 1; + + // The name of the Kubernetes resource. + string name = 2; +} + +// A list of namespaced Kubernetes resources. +message NamespacedNames { + // A list of namespaced Kubernetes resources. + repeated NamespacedName namespaced_names = 1; +} + +// Defined a customer managed encryption key that will be used to encrypt Backup +// artifacts. +message EncryptionKey { + // 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" + }]; +} diff --git a/google/cloud/gkebackup/v1/gkebackup.proto b/google/cloud/gkebackup/v1/gkebackup.proto new file mode 100644 index 000000000..84da52d46 --- /dev/null +++ b/google/cloud/gkebackup/v1/gkebackup.proto @@ -0,0 +1,940 @@ +// 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.cloud.gkebackup.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/gkebackup/v1/backup.proto"; +import "google/cloud/gkebackup/v1/backup_plan.proto"; +import "google/cloud/gkebackup/v1/restore.proto"; +import "google/cloud/gkebackup/v1/restore_plan.proto"; +import "google/cloud/gkebackup/v1/volume.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeBackup.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkebackup/v1;gkebackup"; +option java_multiple_files = true; +option java_outer_classname = "GKEBackupProto"; +option java_package = "com.google.cloud.gkebackup.v1"; +option php_namespace = "Google\\Cloud\\GkeBackup\\V1"; +option ruby_package = "Google::Cloud::GkeBackup::V1"; +option (google.api.resource_definition) = { + type: "container.googleapis.com/Cluster" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}" +}; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; + +// BackupForGKE allows Kubernetes administrators to configure, execute, and +// manage backup and restore operations for their GKE clusters. +service BackupForGKE { + option (google.api.default_host) = "gkebackup.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new BackupPlan in a given location. + rpc CreateBackupPlan(CreateBackupPlanRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/backupPlans" + body: "backup_plan" + }; + option (google.api.method_signature) = "parent,backup_plan,backup_plan_id"; + option (google.longrunning.operation_info) = { + response_type: "BackupPlan" + metadata_type: "OperationMetadata" + }; + } + + // Lists BackupPlans in a given location. + rpc ListBackupPlans(ListBackupPlansRequest) returns (ListBackupPlansResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/backupPlans" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieve the details of a single BackupPlan. + rpc GetBackupPlan(GetBackupPlanRequest) returns (BackupPlan) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupPlans/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Update a BackupPlan. + rpc UpdateBackupPlan(UpdateBackupPlanRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{backup_plan.name=projects/*/locations/*/backupPlans/*}" + body: "backup_plan" + }; + option (google.api.method_signature) = "backup_plan,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "BackupPlan" + metadata_type: "OperationMetadata" + }; + } + + // Deletes an existing BackupPlan. + rpc DeleteBackupPlan(DeleteBackupPlanRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/backupPlans/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Creates a Backup for the given BackupPlan. + rpc CreateBackup(CreateBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/backupPlans/*}/backups" + body: "backup" + }; + option (google.api.method_signature) = "parent,backup,backup_id"; + option (google.longrunning.operation_info) = { + response_type: "Backup" + metadata_type: "OperationMetadata" + }; + } + + // Lists the Backups for a given BackupPlan. + rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/backupPlans/*}/backups" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieve the details of a single Backup. + rpc GetBackup(GetBackupRequest) returns (Backup) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupPlans/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Update a Backup. + rpc UpdateBackup(UpdateBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{backup.name=projects/*/locations/*/backupPlans/*/backups/*}" + body: "backup" + }; + option (google.api.method_signature) = "backup,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Backup" + metadata_type: "OperationMetadata" + }; + } + + // Deletes an existing Backup. + rpc DeleteBackup(DeleteBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/backupPlans/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists the VolumeBackups for a given Backup. + rpc ListVolumeBackups(ListVolumeBackupsRequest) returns (ListVolumeBackupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/backupPlans/*/backups/*}/volumeBackups" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieve the details of a single VolumeBackup. + rpc GetVolumeBackup(GetVolumeBackupRequest) returns (VolumeBackup) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new RestorePlan in a given location. + rpc CreateRestorePlan(CreateRestorePlanRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/restorePlans" + body: "restore_plan" + }; + option (google.api.method_signature) = "parent,restore_plan,restore_plan_id"; + option (google.longrunning.operation_info) = { + response_type: "RestorePlan" + metadata_type: "OperationMetadata" + }; + } + + // Lists RestorePlans in a given location. + rpc ListRestorePlans(ListRestorePlansRequest) returns (ListRestorePlansResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/restorePlans" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieve the details of a single RestorePlan. + rpc GetRestorePlan(GetRestorePlanRequest) returns (RestorePlan) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/restorePlans/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Update a RestorePlan. + rpc UpdateRestorePlan(UpdateRestorePlanRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{restore_plan.name=projects/*/locations/*/restorePlans/*}" + body: "restore_plan" + }; + option (google.api.method_signature) = "restore_plan,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "RestorePlan" + metadata_type: "OperationMetadata" + }; + } + + // Deletes an existing RestorePlan. + rpc DeleteRestorePlan(DeleteRestorePlanRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/restorePlans/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Creates a new Restore for the given RestorePlan. + rpc CreateRestore(CreateRestoreRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/restorePlans/*}/restores" + body: "restore" + }; + option (google.api.method_signature) = "parent,restore,restore_id"; + option (google.longrunning.operation_info) = { + response_type: "Restore" + metadata_type: "OperationMetadata" + }; + } + + // Lists the Restores for a given RestorePlan. + rpc ListRestores(ListRestoresRequest) returns (ListRestoresResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/restorePlans/*}/restores" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieves the details of a single Restore. + rpc GetRestore(GetRestoreRequest) returns (Restore) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/restorePlans/*/restores/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Update a Restore. + rpc UpdateRestore(UpdateRestoreRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{restore.name=projects/*/locations/*/restorePlans/*/restores/*}" + body: "restore" + }; + option (google.api.method_signature) = "restore,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Restore" + metadata_type: "OperationMetadata" + }; + } + + // Deletes an existing Restore. + rpc DeleteRestore(DeleteRestoreRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/restorePlans/*/restores/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists the VolumeRestores for a given Restore. + rpc ListVolumeRestores(ListVolumeRestoresRequest) returns (ListVolumeRestoresResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/restorePlans/*/restores/*}/volumeRestores" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieve the details of a single VolumeRestore. + rpc GetVolumeRestore(GetVolumeRestoreRequest) returns (VolumeRestore) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*}" + }; + 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 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]; +} + +// Request message for CreateBackupPlan. +message CreateBackupPlanRequest { + // Required. The location within which to create the BackupPlan. + // Format: projects/*/locations/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The BackupPlan resource object to create. + BackupPlan backup_plan = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The client-provided short name for the BackupPlan resource. + // This name must: + // + // - be between 1 and 63 characters long (inclusive) + // - consist of only lower-case ASCII letters, numbers, and dashes + // - start with a lower-case letter + // - end with a lower-case letter or number + // - be unique within the set of BackupPlans in this location + string backup_plan_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ListBackupPlans. +message ListBackupPlansRequest { + // Required. The location that contains the BackupPlans to list. + // Format: projects/*/locations/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // 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 + // 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; + + // 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; + + // Field match expression used to filter the results. + string filter = 4; + + // Field by which to sort the results. + string order_by = 5; +} + +// Response message for ListBackupPlans. +message ListBackupPlansResponse { + // The list of BackupPlans matching the given criteria. + repeated BackupPlan backup_plans = 1; + + // A token which may be sent as + // [page_token][google.cloud.gkebackup.v1.ListBackupPlansRequest.page_token] in a subsequent + // `ListBackupPlans` call to retrieve the next page of results. + // If this field is omitted or empty, then there are no more results to + // return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for GetBackupPlan. +message GetBackupPlanRequest { + // Required. Fully qualified BackupPlan name. + // Format: projects/*/locations/*/backupPlans/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/BackupPlan" + } + ]; +} + +// Request message for UpdateBackupPlan. +message UpdateBackupPlanRequest { + // Required. A new version of the BackupPlan resource that contains updated 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 + // 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 + // (e.g., `description`, `backup_config.include_volume_data`, etc.) + // If no `update_mask` is provided, all fields in `backup_plan` will be + // 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; +} + +// Request message for DeleteBackupPlan. +message DeleteBackupPlanRequest { + // Required. Fully qualified BackupPlan name. + // Format: projects/*/locations/*/backupPlans/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/BackupPlan" + } + ]; + + // 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; +} + +// Request message for CreateBackup. +message CreateBackupRequest { + // Required. The BackupPlan within which to create the Backup. + // Format: projects/*/locations/*/backupPlans/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/BackupPlan" + } + ]; + + // The Backup resource to create. + Backup backup = 2; + + // The client-provided short name for the Backup resource. + // This name must: + // + // - be between 1 and 63 characters long (inclusive) + // - consist of only lower-case ASCII letters, numbers, and dashes + // - 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; +} + +// Request message for ListBackups. +message ListBackupsRequest { + // Required. The BackupPlan that contains the Backups to list. + // Format: projects/*/locations/*/backupPlans/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/BackupPlan" + } + ]; + + // 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 + // 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; + + // 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; + + // Field match expression used to filter the results. + string filter = 4; + + // Field by which to sort the results. + string order_by = 5; +} + +// Response message for ListBackups. +message ListBackupsResponse { + // The list of Backups matching the given criteria. + repeated Backup backups = 1; + + // A token which may be sent as [page_token][google.cloud.gkebackup.v1.ListBackupsRequest.page_token] in + // a subsequent `ListBackups` call to retrieve the next page of results. If + // this field is omitted or empty, then there are no more results to return. + string next_page_token = 2; +} + +// Request message for GetBackup. +message GetBackupRequest { + // Required. Full name of the Backup resource. + // Format: projects/*/locations/*/backupPlans/*/backups/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/Backup" + } + ]; +} + +// Request message for UpdateBackup. +message UpdateBackupRequest { + // Required. A new version of the Backup resource that contains updated 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 + // 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. + // If no `update_mask` is provided, all fields in `backup` will be + // 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; +} + +// Request message for DeleteBackup. +message DeleteBackupRequest { + // Required. Name of the Backup resource. + // Format: projects/*/locations/*/backupPlans/*/backups/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/Backup" + } + ]; + + // 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; + + // 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; +} + +// Request message for ListVolumeBackups. +message ListVolumeBackupsRequest { + // Required. The Backup that contains the VolumeBackups to list. + // Format: projects/*/locations/*/backupPlans/*/backups/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/Backup" + } + ]; + + // 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 + // 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; + + // 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; + + // Field match expression used to filter the results. + string filter = 4; + + // Field by which to sort the results. + string order_by = 5; +} + +// Response message for ListVolumeBackups. +message ListVolumeBackupsResponse { + // The list of VolumeBackups matching the given criteria. + repeated VolumeBackup volume_backups = 1; + + // A token which may be sent as + // [page_token][google.cloud.gkebackup.v1.ListVolumeBackupsRequest.page_token] in a subsequent + // `ListVolumeBackups` call to retrieve the next page of results. + // If this field is omitted or empty, then there are no more results to + // return. + string next_page_token = 2; +} + +// Request message for GetVolumeBackup. +message GetVolumeBackupRequest { + // Required. Full name of the VolumeBackup resource. + // Format: projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/VolumeBackup" + } + ]; +} + +// Request message for CreateRestorePlan. +message CreateRestorePlanRequest { + // Required. The location within which to create the RestorePlan. + // Format: projects/*/locations/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The RestorePlan resource object to create. + RestorePlan restore_plan = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The client-provided short name for the RestorePlan resource. + // This name must: + // + // - be between 1 and 63 characters long (inclusive) + // - consist of only lower-case ASCII letters, numbers, and dashes + // - start with a lower-case letter + // - end with a lower-case letter or number + // - be unique within the set of RestorePlans in this location + string restore_plan_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ListRestorePlans. +message ListRestorePlansRequest { + // Required. The location that contains the RestorePlans to list. + // Format: projects/*/locations/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // 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 + // 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; + + // 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; + + // Field match expression used to filter the results. + string filter = 4; + + // Field by which to sort the results. + string order_by = 5; +} + +// Response message for ListRestorePlans. +message ListRestorePlansResponse { + // The list of RestorePlans matching the given criteria. + repeated RestorePlan restore_plans = 1; + + // A token which may be sent as + // [page_token][google.cloud.gkebackup.v1.ListRestorePlansRequest.page_token] in a subsequent + // `ListRestorePlans` call to retrieve the next page of results. + // If this field is omitted or empty, then there are no more results to + // return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for GetRestorePlan. +message GetRestorePlanRequest { + // Required. Fully qualified RestorePlan name. + // Format: projects/*/locations/*/restorePlans/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/RestorePlan" + } + ]; +} + +// Request message for UpdateRestorePlan. +message UpdateRestorePlanRequest { + // Required. A new version of the RestorePlan resource that contains updated 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 + // 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. + // If no `update_mask` is provided, all fields in `restore_plan` will be + // 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; +} + +// Request message for DeleteRestorePlan. +message DeleteRestorePlanRequest { + // Required. Fully qualified RestorePlan name. + // Format: projects/*/locations/*/restorePlans/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/RestorePlan" + } + ]; + + // 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; + + // 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; +} + +// Request message for CreateRestore. +message CreateRestoreRequest { + // Required. The RestorePlan within which to create the Restore. + // Format: projects/*/locations/*/restorePlans/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/RestorePlan" + } + ]; + + // Required. The restore resource to create. + Restore restore = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The client-provided short name for the Restore resource. + // This name must: + // + // - be between 1 and 63 characters long (inclusive) + // - consist of only lower-case ASCII letters, numbers, and dashes + // - start with a lower-case letter + // - end with a lower-case letter or number + // - be unique within the set of Restores in this RestorePlan. + string restore_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for ListRestores. +message ListRestoresRequest { + // Required. The RestorePlan that contains the Restores to list. + // Format: projects/*/locations/*/restorePlans/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/RestorePlan" + } + ]; + + // 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 + // 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; + + // 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; + + // Field match expression used to filter the results. + string filter = 4; + + // Field by which to sort the results. + string order_by = 5; +} + +// Response message for ListRestores. +message ListRestoresResponse { + // The list of Restores matching the given criteria. + repeated Restore restores = 1; + + // A token which may be sent as [page_token][google.cloud.gkebackup.v1.ListRestoresRequest.page_token] + // in a subsequent `ListRestores` call to retrieve the next page of results. + // If this field is omitted or empty, then there are no more results to + // return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for GetRestore. +message GetRestoreRequest { + // Required. Name of the restore resource. + // Format: projects/*/locations/*/restorePlans/*/restores/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/Restore" + } + ]; +} + +// Request message for UpdateRestore. +message UpdateRestoreRequest { + // Required. A new version of the Restore resource that contains updated 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 + // 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. + // If no `update_mask` is provided, all fields in `restore` will be + // 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; +} + +// Request message for DeleteRestore. +message DeleteRestoreRequest { + // Required. Full name of the Restore + // Format: projects/*/locations/*/restorePlans/*/restores/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/Restore" + } + ]; + + // 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; + + // 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; +} + +// Request message for ListVolumeRestores. +message ListVolumeRestoresRequest { + // Required. The Restore that contains the VolumeRestores to list. + // Format: projects/*/locations/*/restorePlans/*/restores/* + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/Restore" + } + ]; + + // 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 + // 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; + + // 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; + + // Field match expression used to filter the results. + string filter = 4; + + // Field by which to sort the results. + string order_by = 5; +} + +// Response message for ListVolumeRestores. +message ListVolumeRestoresResponse { + // The list of VolumeRestores matching the given criteria. + repeated VolumeRestore volume_restores = 1; + + // A token which may be sent as + // [page_token][google.cloud.gkebackup.v1.ListVolumeRestoresRequest.page_token] in a subsequent + // `ListVolumeRestores` call to retrieve the next page of results. + // If this field is omitted or empty, then there are no more results to + // return. + string next_page_token = 2; +} + +// Request message for GetVolumeRestore. +message GetVolumeRestoreRequest { + // Required. Full name of the VolumeRestore resource. + // Format: projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/* + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/VolumeRestore" + } + ]; +} diff --git a/google/cloud/gkebackup/v1/gkebackup_grpc_service_config.json b/google/cloud/gkebackup/v1/gkebackup_grpc_service_config.json new file mode 100644 index 000000000..166795b07 --- /dev/null +++ b/google/cloud/gkebackup/v1/gkebackup_grpc_service_config.json @@ -0,0 +1,54 @@ +{ + "methodConfig": [ + { + "name": [ + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "ListBackupPlans" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "GetBackupPlan" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "ListBackups" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "GetBackup" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "ListVolumeBackups" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "GetVolumeBackup" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "ListRestorePlans" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "GetRestorePlan" }, + { "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" } + ], + "timeout": "60s", + "retryPolicy": { + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ "UNAVAILABLE" ] + } + }, + { + "name": [ + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "UpdateBackupPlan" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "UpdateBackup" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "UpdateRestorePlan" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "UpdateRestore" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "DeleteBackupPlan" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "DeleteRestorePlan" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "DeleteRestore" } + ], + "timeout": "60s" + }, + { + "name": [ + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "CreateBackup" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "CreateRestorePlan" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "CreateRestore" } + ], + "timeout": "120s" + }, + { + "name": [ + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "CreateBackupPlan" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "DeleteBackup" } + ], + "timeout": "300s" + } + ] +} diff --git a/google/cloud/gkebackup/v1/gkebackup_v1.yaml b/google/cloud/gkebackup/v1/gkebackup_v1.yaml new file mode 100644 index 000000000..2504b8a1a --- /dev/null +++ b/google/cloud/gkebackup/v1/gkebackup_v1.yaml @@ -0,0 +1,132 @@ +type: google.api.Service +config_version: 3 +name: gkebackup.googleapis.com +title: Backup for GKE API + +apis: +- name: google.cloud.gkebackup.v1.BackupForGKE + +types: +- name: google.cloud.gkebackup.v1.OperationMetadata + +documentation: + summary: |- + Backup for GKE is a managed Kubernetes workload backup and restore + service for GKE clusters. + 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. + +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 + 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/*/backupPlans/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/backupPlans/*/backups/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/restorePlans/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/restorePlans/*/restores/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/backupPlans/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/backupPlans/*/backups/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/restorePlans/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/restorePlans/*/restores/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/backupPlans/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/backupPlans/*/backups/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/restorePlans/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/restorePlans/*/restores/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*}: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.gkebackup.v1.BackupForGKE.*' + 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 diff --git a/google/cloud/gkebackup/v1/restore.proto b/google/cloud/gkebackup/v1/restore.proto new file mode 100644 index 000000000..b2eb017a5 --- /dev/null +++ b/google/cloud/gkebackup/v1/restore.proto @@ -0,0 +1,326 @@ +// 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.cloud.gkebackup.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gkebackup/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeBackup.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkebackup/v1;gkebackup"; +option java_multiple_files = true; +option java_outer_classname = "RestoreProto"; +option java_package = "com.google.cloud.gkebackup.v1"; +option php_namespace = "Google\\Cloud\\GkeBackup\\V1"; +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" + pattern: "projects/{project}/locations/{location}/restorePlans/{restore_plan}/restores/{restore}" + }; + + // Possible values for state of the Restore. + enum State { + // The Restore resource is in the process of being created. + STATE_UNSPECIFIED = 0; + + // The Restore resource has been created and the associated RestoreJob + // Kubernetes resource has been injected into target cluster. + CREATING = 1; + + // The gkebackup agent in the cluster has begun executing the restore + // operation. + IN_PROGRESS = 2; + + // The restore operation has completed successfully. Restored workloads may + // not yet be operational. + SUCCEEDED = 3; + + // The restore operation has failed. + FAILED = 4; + + // This Restore resource is in the process of being deleted. + DELETING = 5; + } + + // Output only. The full name of the Restore resource. + // Format: projects/*/locations/*/restorePlans/*/restores/* + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server generated global unique identifier of + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this Restore resource was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this Restore resource was last + // updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User specified descriptive string for this Restore. + string description = 5; + + // Required. Immutable. A reference to the [Backup][google.cloud.gkebackup.v1.Backup] used as the source from which this Restore + // will restore. Note that this Backup must be a sub-resource of the + // RestorePlan's [backup_plan][google.cloud.gkebackup.v1.RestorePlan.backup_plan]. + // Format: projects/*/locations/*/backupPlans/*/backups/*. + string backup = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/Backup" + } + ]; + + // Output only. The target cluster into which this Restore will restore data. + // Valid formats: + // + // - projects/*/locations/*/clusters/* + // - projects/*/zones/*/clusters/* + // + // Inherited from parent RestorePlan's [cluster][google.cloud.gkebackup.v1.RestorePlan.cluster] value. + string cluster = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "container.googleapis.com/Cluster" + } + ]; + + // Output only. Configuration of the Restore. Inherited from parent RestorePlan's + // [restore_config][google.cloud.gkebackup.v1.RestorePlan.restore_config]. + RestoreConfig restore_config = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A set of custom labels supplied by user. + map labels = 9; + + // Output only. The current state of the Restore. + State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable description of why the Restore is in its current state. + string state_reason = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp of when the restore operation completed. + google.protobuf.Timestamp complete_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of resources restored during the restore execution. + int32 resources_restored_count = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of resources excluded during the restore execution. + int32 resources_excluded_count = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of resources that failed to be restored during the restore + // execution. + int32 resources_failed_count = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of volumes restored during the restore execution. + int32 volumes_restored_count = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. `etag` is used for optimistic concurrency control as a way to help + // prevent simultaneous updates of a restore from overwriting each other. + // It is strongly suggested that systems make use of the `etag` in the + // read-modify-write cycle to perform restore updates in order to avoid + // race conditions: An `etag` is returned in the response to `GetRestore`, + // and systems are expected to put that etag in the request to + // `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]; +} + +// Configuration of a restore. +// Next id: 9 +message RestoreConfig { + // Defines how volume data should be restored + enum VolumeDataRestorePolicy { + // Unspecified (illegal). + VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED = 0; + + // For each PVC to be restored, will create a new underlying volume (and PV) + // from the corresponding VolumeBackup contained within the Backup. + RESTORE_VOLUME_DATA_FROM_BACKUP = 1; + + // For each PVC to be restored, attempt to reuse the original PV contained + // in the Backup (with its original underlying volume). Note that option + // is likely only usable when restoring a workload to its original cluster. + REUSE_VOLUME_HANDLE_FROM_BACKUP = 2; + + // For each PVC to be restored, PVCs will be created without any particular + // action to restore data. In this case, the normal Kubernetes provisioning + // logic would kick in, and this would likely result in either dynamically + // provisioning blank PVs or binding to statically provisioned PVs. + NO_VOLUME_DATA_RESTORATION = 3; + } + + // Defines the behavior for handling the situation where cluster-scoped + // resources being restored already exist in the target cluster. + enum ClusterResourceConflictPolicy { + // Unspecified. Only allowed if no cluster-scoped resources will be + // restored. + CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED = 0; + + // Do not attempt to restore the conflicting resource. + USE_EXISTING_VERSION = 1; + + // Delete the existing version before re-creating it from the Backup. + // Note that this is a dangerous option which could cause unintentional + // data loss if used inappropriately - for example, deleting a CRD will + // cause Kubernetes to delete all CRs of that type. + USE_BACKUP_VERSION = 2; + } + + // Defines the behavior for handling the situation where sets of namespaced + // resources being restored already exist in the target cluster. + enum NamespacedResourceRestoreMode { + // Unspecified (invalid). + NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED = 0; + + // When conflicting top-level resources (either Namespaces or + // ProtectedApplications, depending upon the scope) are encountered, this + // will first trigger a delete of the conflicting resource AND ALL OF ITS + // REFERENCED RESOURCES (e.g., all resources in the Namespace or all + // resources referenced by the ProtectedApplication) before restoring the + // resources from the Backup. This mode should only be used when you are + // intending to revert some portion of a cluster to an earlier state. + DELETE_AND_RESTORE = 1; + + // If conflicting top-level resources (either Namespaces or + // ProtectedApplications, depending upon the scope) are encountered at the + // beginning of a restore process, the Restore will fail. If a conflict + // 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 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. + // "apiextensions.k8s.io", "storage.k8s.io", etc. + // Note: use empty string for core API group + string resource_group = 1; + + // Kind of a Kubernetes resource, e.g. + // "CustomResourceDefinition", "StorageClass", etc. + string resource_kind = 2; + } + + // Identifies the cluster-scoped resources to restore from the Backup. + message ClusterResourceRestoreScope { + // A list of "types" of cluster-scoped resources to be restored from the + // Backup. An empty list means that NO cluster-scoped resources will be + // restored. Note that Namespaces and PersistentVolume restoration is + // handled separately and is not governed by this field. + repeated GroupKind selected_group_kinds = 1; + } + + // 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. + // 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; + + // (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; + + // Required. This is a [JSONPath] + // (https://kubernetes.io/docs/reference/kubectl/jsonpath/) + // expression that matches specific fields of candidate + // resources and it operates as both a filtering parameter (resources that + // are not matched with this expression will not be candidates for + // substitution) as well as a field identifier (identifies exactly which + // 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] + // (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). + // Substitution will not be performed against fields whose + // value does not match this expression. If this field is NOT specified, + // then ALL fields matched by the target_json_path expression will undergo + // substitution. Note that an empty (e.g., "", rather than unspecified) + // value for for this field will only match empty fields. + string original_value_pattern = 4; + + // 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; + } + + // 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; + + // 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; + + // 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; + + // 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; + + // Specifies the namespaced resources to restore from the Backup. + // Only one of the entries may be specified. If not specified, NO namespaced + // resources will be restored. + oneof namespaced_resource_restore_scope { + // Restore all namespaced resources in the Backup if set to "True". + // Specifying this field to "False" is an error. + bool all_namespaces = 5; + + // A list of selected Namespaces to restore from the Backup. The listed + // Namespaces and all resources contained in them will be restored. + Namespaces selected_namespaces = 6; + + // A list of selected ProtectedApplications to restore. The listed + // ProtectedApplications and all the resources to which they refer will be + // restored. + NamespacedNames selected_applications = 7; + } + + // 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; +} diff --git a/google/cloud/gkebackup/v1/restore_plan.proto b/google/cloud/gkebackup/v1/restore_plan.proto new file mode 100644 index 000000000..5811332b0 --- /dev/null +++ b/google/cloud/gkebackup/v1/restore_plan.proto @@ -0,0 +1,101 @@ +// 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.cloud.gkebackup.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gkebackup/v1/restore.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeBackup.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkebackup/v1;gkebackup"; +option java_multiple_files = true; +option java_outer_classname = "RestorePlanProto"; +option java_package = "com.google.cloud.gkebackup.v1"; +option php_namespace = "Google\\Cloud\\GkeBackup\\V1"; +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: 11 +message RestorePlan { + option (google.api.resource) = { + type: "gkebackup.googleapis.com/RestorePlan" + pattern: "projects/{project}/locations/{location}/restorePlans/{restore_plan}" + }; + + // Output only. The full name of the RestorePlan resource. + // Format: projects/*/locations/*/restorePlans/*. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server generated global unique identifier of + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this RestorePlan resource was + // created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this RestorePlan resource was last + // updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User specified descriptive string for this RestorePlan. + string description = 5; + + // Required. Immutable. A reference to the [BackupPlan][google.cloud.gkebackup.v1.BackupPlan] from which Backups may be used as the + // source for Restores created via this RestorePlan. + // Format: projects/*/locations/*/backupPlans/*. + string backup_plan = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/BackupPlan" + } + ]; + + // Required. Immutable. The target cluster into which Restores created via this RestorePlan + // will restore data. NOTE: the cluster's region must be the same as the + // RestorePlan. + // Valid formats: + // + // - projects/*/locations/*/clusters/* + // - projects/*/zones/*/clusters/* + string cluster = 7 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "container.googleapis.com/Cluster" + } + ]; + + // 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; + + // Output only. `etag` is used for optimistic concurrency control as a way to help + // prevent simultaneous updates of a restore from overwriting each other. + // It is strongly suggested that systems make use of the `etag` in the + // read-modify-write cycle to perform restore updates in order to avoid + // race conditions: An `etag` is returned in the response to `GetRestorePlan`, + // and systems are expected to put that etag in the request to + // `UpdateRestorePlan` or `DeleteRestorePlan` to ensure that their change + // will be applied to the same version of the resource. + string etag = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/gkebackup/v1/volume.proto b/google/cloud/gkebackup/v1/volume.proto new file mode 100644 index 000000000..87b633ce1 --- /dev/null +++ b/google/cloud/gkebackup/v1/volume.proto @@ -0,0 +1,222 @@ +// 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.cloud.gkebackup.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gkebackup/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeBackup.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkebackup/v1;gkebackup"; +option java_multiple_files = true; +option java_outer_classname = "VolumeProto"; +option java_package = "com.google.cloud.gkebackup.v1"; +option php_namespace = "Google\\Cloud\\GkeBackup\\V1"; +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" + pattern: "projects/{project}/locations/{location}/backupPlans/{backup_plan}/backups/{backup}/volumeBackups/{volume_backup}" + }; + + // Identifies the format used for the volume backup. + enum VolumeBackupFormat { + // Default value, not specified. + VOLUME_BACKUP_FORMAT_UNSPECIFIED = 0; + + // Compute Engine Persistent Disk snapshot based volume backup. + GCE_PERSISTENT_DISK = 1; + } + + // The current state of a VolumeBackup + enum State { + // This is an illegal state and should not be encountered. + STATE_UNSPECIFIED = 0; + + // A volume for the backup was identified and backup process is about to + // start. + CREATING = 1; + + // The volume backup operation has begun and is in the initial "snapshot" + // phase of the process. Any defined ProtectedApplication "pre" hooks will + // be executed before entering this state and "post" hooks will be executed + // upon leaving this state. + SNAPSHOTTING = 2; + + // The snapshot phase of the volume backup operation has completed and + // the snapshot is now being uploaded to backup storage. + UPLOADING = 3; + + // The volume backup operation has completed successfully. + SUCCEEDED = 4; + + // The volume backup operation has failed. + FAILED = 5; + + // This VolumeBackup resource (and its associated artifacts) is in the + // process of being deleted. + DELETING = 6; + } + + // Output only. The full name of the VolumeBackup resource. + // Format: projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server generated global unique identifier of + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this VolumeBackup resource was + // created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this VolumeBackup resource was last + // updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A reference to the source Kubernetes PVC from which this VolumeBackup + // was created. + NamespacedName source_pvc = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A storage system-specific opaque handle to the underlying volume backup. + string volume_backup_handle = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The format used for the volume backup. + VolumeBackupFormat format = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The aggregate size of the underlying artifacts associated with this + // VolumeBackup in the backup storage. This may change over time when + // multiple backups of the same volume share the same backup storage + // location. In particular, this is likely to increase in size when + // the immediately preceding backup of the same volume is deleted. + int64 storage_bytes = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The minimum size of the disk to which this VolumeBackup can be restored. + int64 disk_size_bytes = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the associated underlying volume backup + // operation completed. + google.protobuf.Timestamp complete_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of this VolumeBackup. + State state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A human readable message explaining why the VolumeBackup is in its current + // state. + string state_message = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. `etag` is used for optimistic concurrency control as a way to help + // prevent simultaneous updates of a volume backup from overwriting each + // other. It is strongly suggested that systems make use of the `etag` in the + // read-modify-write cycle to perform volume backup updates in order to avoid + // race conditions. + string etag = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents the operation of restoring a volume from a VolumeBackup. +// Next id: 13 +message VolumeRestore { + option (google.api.resource) = { + type: "gkebackup.googleapis.com/VolumeRestore" + pattern: "projects/{project}/locations/{location}/restorePlans/{restore_plan}/restores/{restore}/volumeRestores/{volume_restore}" + }; + + // Supported volume types. + enum VolumeType { + // Default + VOLUME_TYPE_UNSPECIFIED = 0; + + // Compute Engine Persistent Disk volume + GCE_PERSISTENT_DISK = 1; + } + + // The current state of a VolumeRestore + enum State { + // This is an illegal state and should not be encountered. + STATE_UNSPECIFIED = 0; + + // A volume for the restore was identified and restore process is about to + // start. + CREATING = 1; + + // The volume is currently being restored. + RESTORING = 2; + + // The volume has been successfully restored. + SUCCEEDED = 3; + + // The volume restoration process failed. + FAILED = 4; + + // This VolumeRestore resource is in the process of being deleted. + DELETING = 5; + } + + // Output only. Full name of the VolumeRestore resource. + // Format: projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server generated global unique identifier of + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this VolumeRestore resource was + // created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this VolumeRestore resource was last + // updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The full name of the VolumeBackup from which the volume will be restored. + // Format: projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*. + string volume_backup = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The reference to the target Kubernetes PVC to be restored. + NamespacedName target_pvc = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A storage system-specific opaque handler to the underlying volume created + // for the target PVC from the volume backup. + string volume_handle = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of volume provisioned + VolumeType volume_type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the associated underlying volume + // restoration completed. + google.protobuf.Timestamp complete_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of this VolumeRestore. + State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A human readable message explaining why the VolumeRestore is in its + // current state. + string state_message = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. `etag` is used for optimistic concurrency control as a way to help + // prevent simultaneous updates of a volume restore from overwriting each + // other. It is strongly suggested that systems make use of the `etag` in the + // read-modify-write cycle to perform volume restore updates in order to avoid + // race conditions. + string etag = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/gkeconnect/gateway/v1/gateway.proto b/google/cloud/gkeconnect/gateway/v1/gateway.proto index bcc81c277..02f60d03b 100644 --- a/google/cloud/gkeconnect/gateway/v1/gateway.proto +++ b/google/cloud/gkeconnect/gateway/v1/gateway.proto @@ -16,9 +16,7 @@ syntax = "proto3"; package google.cloud.gkeconnect.gateway.v1; -import "google/api/annotations.proto"; import "google/api/client.proto"; -import "google/api/httpbody.proto"; option csharp_namespace = "Google.Cloud.GkeConnect.Gateway.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkeconnect/gateway/v1;gateway"; diff --git a/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto b/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto index 49c9f0746..ee9cee44c 100644 --- a/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto +++ b/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto @@ -16,9 +16,7 @@ syntax = "proto3"; package google.cloud.gkeconnect.gateway.v1alpha1; -import "google/api/annotations.proto"; import "google/api/client.proto"; -import "google/api/httpbody.proto"; option csharp_namespace = "Google.Cloud.GkeConnect.Gateway.V1Alpha1"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkeconnect/gateway/v1alpha1;gateway"; diff --git a/google/cloud/gkeconnect/gateway/v1beta1/BUILD.bazel b/google/cloud/gkeconnect/gateway/v1beta1/BUILD.bazel index 0e9be947e..2f2d3c324 100644 --- a/google/cloud/gkeconnect/gateway/v1beta1/BUILD.bazel +++ b/google/cloud/gkeconnect/gateway/v1beta1/BUILD.bazel @@ -85,6 +85,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gkeconnect-gateway-v1beta1-java", + include_samples = True, deps = [ ":gateway_java_gapic", ":gateway_java_grpc", @@ -120,8 +121,8 @@ go_gapic_library( srcs = [":gateway_proto_with_info"], grpc_service_config = "connectgw_grpc_service_config.json", importpath = "cloud.google.com/go/gkeconnect/gateway/apiv1beta1;gateway", - service_yaml = "connectgateway_v1beta1.yaml", metadata = True, + service_yaml = "connectgateway_v1beta1.yaml", deps = [ ":gateway_go_proto", "//google/api:httpbody_go_proto", @@ -140,8 +141,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-gkeconnect-gateway-v1beta1-go", deps = [ ":gateway_go_gapic", - ":gateway_go_gapic_srcjar-test.srcjar", ":gateway_go_gapic_srcjar-metadata.srcjar", + ":gateway_go_gapic_srcjar-test.srcjar", ":gateway_go_proto", ], ) @@ -153,13 +154,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "gateway_py_gapic", srcs = [":gateway_proto"], grpc_service_config = "connectgw_grpc_service_config.json", - opt_args = ["warehouse-package-name=google-cloud-gke-connect-gateway"] + opt_args = ["warehouse-package-name=google-cloud-gke-connect-gateway"], + transport = "grpc", +) + +py_test( + name = "gateway_py_gapic_test", + srcs = [ + "gateway_py_gapic_pytest.py", + "gateway_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gateway_py_gapic"], ) # Open Source Packages @@ -246,8 +259,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -319,6 +332,7 @@ csharp_gapic_library( srcs = [":gateway_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "connectgw_grpc_service_config.json", + service_yaml = "connectgateway_v1beta1.yaml", deps = [ ":gateway_csharp_grpc", ":gateway_csharp_proto", diff --git a/google/cloud/gkehub/v1/BUILD.bazel b/google/cloud/gkehub/v1/BUILD.bazel index acdbefaf7..5b31f4978 100644 --- a/google/cloud/gkehub/v1/BUILD.bazel +++ b/google/cloud/gkehub/v1/BUILD.bazel @@ -59,6 +59,16 @@ load( "java_proto_library", ) +_JAVA_PROTO_SUBPACKAGE_DEPS = [ + "//google/cloud/gkehub/v1/multiclusteringress:multiclusteringress_java_proto", + "//google/cloud/gkehub/v1/configmanagement:configmanagement_java_proto", +] + +_JAVA_GRPC_SUBPACKAGE_DEPS = [ + "//google/cloud/gkehub/v1/multiclusteringress:multiclusteringress_java_grpc", + "//google/cloud/gkehub/v1/configmanagement:configmanagement_java_grpc", +] + java_proto_library( name = "gkehub_java_proto", deps = [":gkehub_proto"], @@ -67,7 +77,7 @@ java_proto_library( java_grpc_library( name = "gkehub_java_grpc", srcs = [":gkehub_proto"], - deps = [":gkehub_java_proto"], + deps = [":gkehub_java_proto"] + _JAVA_PROTO_SUBPACKAGE_DEPS, ) java_gapic_library( @@ -78,16 +88,18 @@ java_gapic_library( service_yaml = "gkehub_v1.yaml", test_deps = [ ":gkehub_java_grpc", - ], + ] + _JAVA_GRPC_SUBPACKAGE_DEPS, + transport = "grpc+rest", deps = [ ":gkehub_java_proto", "//google/api:api_java_proto", - ], + ] + _JAVA_PROTO_SUBPACKAGE_DEPS, ) java_gapic_test( name = "gkehub_java_gapic_test_suite", test_classes = [ + "com.google.cloud.gkehub.v1.GkeHubClientHttpJsonTest", "com.google.cloud.gkehub.v1.GkeHubClientTest", ], runtime_deps = [":gkehub_java_gapic_test"], @@ -96,12 +108,13 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gkehub-v1-java", + transport = "grpc+rest", deps = [ ":gkehub_java_gapic", ":gkehub_java_grpc", ":gkehub_java_proto", ":gkehub_proto", - ], + ] + _JAVA_PROTO_SUBPACKAGE_DEPS + _JAVA_GRPC_SUBPACKAGE_DEPS, ) ############################################################################## @@ -135,6 +148,7 @@ go_gapic_library( importpath = "cloud.google.com/go/gkehub/apiv1;gkehub", metadata = True, service_yaml = "gkehub_v1.yaml", + transport = "grpc+rest", deps = [ ":gkehub_go_proto", "//google/longrunning:longrunning_go_proto", @@ -175,13 +189,27 @@ py_gapic_library( srcs = [":gkehub_proto"], grpc_service_config = "v1_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-gke-hub"], + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "gkehub_py_gapic_test", +# srcs = [ +# "gkehub_py_gapic_pytest.py", +# "gkehub_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":gkehub_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "gkehub-v1-py", deps = [ ":gkehub_py_gapic", + "//google/cloud/gkehub/v1/configmanagement:configmanagement_py_gapic", + "//google/cloud/gkehub/v1/multiclusteringress:multiclusteringress_py_gapic", ], ) @@ -253,6 +281,8 @@ nodejs_gapic_assembly_pkg( deps = [ ":gkehub_nodejs_gapic", ":gkehub_proto", + "//google/cloud/gkehub/v1/configmanagement:configmanagement_proto", + "//google/cloud/gkehub/v1/multiclusteringress:multiclusteringress_proto", ], ) @@ -269,7 +299,11 @@ load( ruby_proto_library( name = "gkehub_ruby_proto", - deps = [":gkehub_proto"], + deps = [ + ":gkehub_proto", + "//google/cloud/gkehub/v1/configmanagement:configmanagement_proto", + "//google/cloud/gkehub/v1/multiclusteringress:multiclusteringress_proto", + ], ) ruby_grpc_library( @@ -334,6 +368,7 @@ csharp_gapic_library( srcs = [":gkehub_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "v1_grpc_service_config.json", + service_yaml = "gkehub_v1.yaml", deps = [ ":gkehub_csharp_grpc", ":gkehub_csharp_proto", diff --git a/google/cloud/gkehub/v1/configmanagement/BUILD.bazel b/google/cloud/gkehub/v1/configmanagement/BUILD.bazel index 0b56e2b82..8d8a7f0c7 100644 --- a/google/cloud/gkehub/v1/configmanagement/BUILD.bazel +++ b/google/cloud/gkehub/v1/configmanagement/BUILD.bazel @@ -68,6 +68,7 @@ load( py_gapic_library( name = "configmanagement_py_gapic", srcs = [":configmanagement_proto"], + transport = "grpc", ) ############################################################################## @@ -99,7 +100,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1/configmanagement/configmanagement.proto b/google/cloud/gkehub/v1/configmanagement/configmanagement.proto index ab0b3560d..4dc0b4216 100644 --- a/google/cloud/gkehub/v1/configmanagement/configmanagement.proto +++ b/google/cloud/gkehub/v1/configmanagement/configmanagement.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.gkehub.configmanagement.v1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.ConfigManagement.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/configmanagement/v1;configmanagement"; diff --git a/google/cloud/gkehub/v1/feature.proto b/google/cloud/gkehub/v1/feature.proto index 6a07b33c9..402f500d9 100644 --- a/google/cloud/gkehub/v1/feature.proto +++ b/google/cloud/gkehub/v1/feature.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/gkehub/v1/configmanagement/configmanagement.proto"; import "google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/v1;gkehub"; diff --git a/google/cloud/gkehub/v1/membership.proto b/google/cloud/gkehub/v1/membership.proto index 6276098f2..c7f9c9f23 100644 --- a/google/cloud/gkehub/v1/membership.proto +++ b/google/cloud/gkehub/v1/membership.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.gkehub.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/cloud/gkehub/v1/multiclusteringress/BUILD.bazel b/google/cloud/gkehub/v1/multiclusteringress/BUILD.bazel index 690019838..639aae837 100644 --- a/google/cloud/gkehub/v1/multiclusteringress/BUILD.bazel +++ b/google/cloud/gkehub/v1/multiclusteringress/BUILD.bazel @@ -67,6 +67,7 @@ load( py_gapic_library( name = "multiclusteringress_py_gapic", srcs = [":multiclusteringress_proto"], + transport = "grpc", ) ############################################################################## @@ -98,7 +99,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto b/google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto index 1649cd646..5beb548a6 100644 --- a/google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto +++ b/google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.gkehub.multiclusteringress.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.GkeHub.MultiClusterIngress.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/multiclusteringress/v1;multiclusteringress"; option java_multiple_files = true; diff --git a/google/cloud/gkehub/v1/service.proto b/google/cloud/gkehub/v1/service.proto index 6caf805fb..484a2e1d2 100644 --- a/google/cloud/gkehub/v1/service.proto +++ b/google/cloud/gkehub/v1/service.proto @@ -23,7 +23,6 @@ import "google/api/resource.proto"; import "google/cloud/gkehub/v1/feature.proto"; import "google/cloud/gkehub/v1/membership.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/cloud/gkehub/v1alpha/BUILD.bazel b/google/cloud/gkehub/v1alpha/BUILD.bazel index 864429d5c..b76f7d437 100644 --- a/google/cloud/gkehub/v1alpha/BUILD.bazel +++ b/google/cloud/gkehub/v1alpha/BUILD.bazel @@ -60,7 +60,6 @@ load( "java_proto_library", ) - _JAVA_PROTO_SUBPACKAGE_DEPS = [ "//google/cloud/gkehub/v1alpha/multiclusteringress:multiclusteringress_java_proto", "//google/cloud/gkehub/v1alpha/configmanagement:configmanagement_java_proto", @@ -95,6 +94,7 @@ java_gapic_library( test_deps = [ ":gkehub_java_grpc", ] + _JAVA_GRPC_SUBPACKAGE_DEPS, + transport = "grpc+rest", deps = [ ":gkehub_java_proto", ] + _JAVA_PROTO_SUBPACKAGE_DEPS, @@ -103,6 +103,7 @@ java_gapic_library( java_gapic_test( name = "gkehub_java_gapic_test_suite", test_classes = [ + "com.google.cloud.gkehub.v1alpha.GkeHubClientHttpJsonTest", "com.google.cloud.gkehub.v1alpha.GkeHubClientTest", ], runtime_deps = [":gkehub_java_gapic_test"], @@ -111,6 +112,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gkehub-v1alpha-java", + transport = "grpc+rest", deps = [ ":gkehub_java_gapic", ":gkehub_java_grpc", @@ -153,6 +155,7 @@ go_gapic_library( importpath = "cloud.google.com/go/gkehub/apiv1alpha;gkehub", metadata = True, service_yaml = "gkehub_v1alpha.yaml", + transport = "grpc+rest", deps = [ ":gkehub_go_proto", "//google/longrunning:longrunning_go_proto", @@ -193,8 +196,20 @@ py_gapic_library( srcs = [":gkehub_proto"], grpc_service_config = "v1alpha_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-gke-hub"], + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "gkehub_py_gapic_test", +# srcs = [ +# "gkehub_py_gapic_pytest.py", +# "gkehub_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":gkehub_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "gkehub-v1alpha-py", @@ -354,6 +369,7 @@ csharp_gapic_library( srcs = [":gkehub_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "v1alpha_grpc_service_config.json", + service_yaml = "gkehub_v1alpha.yaml", deps = [ ":gkehub_csharp_grpc", ":gkehub_csharp_proto", diff --git a/google/cloud/gkehub/v1alpha/cloudauditlogging/BUILD.bazel b/google/cloud/gkehub/v1alpha/cloudauditlogging/BUILD.bazel index 59e0f9889..b5c083a3e 100644 --- a/google/cloud/gkehub/v1alpha/cloudauditlogging/BUILD.bazel +++ b/google/cloud/gkehub/v1alpha/cloudauditlogging/BUILD.bazel @@ -67,6 +67,7 @@ load( py_gapic_library( name = "cloudauditlogging_py_gapic", srcs = [":cloudauditlogging_proto"], + transport = "grpc", ) ############################################################################## @@ -98,7 +99,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto b/google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto index 19c70be5e..f0f060ab1 100644 --- a/google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto +++ b/google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.gkehub.cloudauditlogging.v1alpha; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.CloudAuditLogging.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/cloudauditlogging/v1alpha;cloudauditlogging"; diff --git a/google/cloud/gkehub/v1alpha/configmanagement/BUILD.bazel b/google/cloud/gkehub/v1alpha/configmanagement/BUILD.bazel index 9599e181b..da05d7aef 100644 --- a/google/cloud/gkehub/v1alpha/configmanagement/BUILD.bazel +++ b/google/cloud/gkehub/v1alpha/configmanagement/BUILD.bazel @@ -68,6 +68,7 @@ load( py_gapic_library( name = "configmanagement_py_gapic", srcs = [":configmanagement_proto"], + transport = "grpc", ) ############################################################################## @@ -99,7 +100,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto b/google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto index 1f06f3043..11f60814d 100644 --- a/google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto +++ b/google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.gkehub.configmanagement.v1alpha; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.ConfigManagement.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/configmanagement/v1alpha;configmanagement"; diff --git a/google/cloud/gkehub/v1alpha/feature.proto b/google/cloud/gkehub/v1alpha/feature.proto index 1bfad32f7..7ebbd5eab 100644 --- a/google/cloud/gkehub/v1alpha/feature.proto +++ b/google/cloud/gkehub/v1alpha/feature.proto @@ -24,7 +24,6 @@ import "google/cloud/gkehub/v1alpha/metering/metering.proto"; import "google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto"; import "google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/v1alpha;gkehub"; diff --git a/google/cloud/gkehub/v1alpha/metering/BUILD.bazel b/google/cloud/gkehub/v1alpha/metering/BUILD.bazel index 098e78b5f..9bdc8fa9c 100644 --- a/google/cloud/gkehub/v1alpha/metering/BUILD.bazel +++ b/google/cloud/gkehub/v1alpha/metering/BUILD.bazel @@ -68,6 +68,7 @@ load( py_gapic_library( name = "metering_py_gapic", srcs = [":metering_proto"], + transport = "grpc", ) ############################################################################## @@ -99,7 +100,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1alpha/metering/metering.proto b/google/cloud/gkehub/v1alpha/metering/metering.proto index 2e630bd02..96ee3d9fc 100644 --- a/google/cloud/gkehub/v1alpha/metering/metering.proto +++ b/google/cloud/gkehub/v1alpha/metering/metering.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.gkehub.metering.v1alpha; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.Metering.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/metering/v1alpha;metering"; diff --git a/google/cloud/gkehub/v1alpha/multiclusteringress/BUILD.bazel b/google/cloud/gkehub/v1alpha/multiclusteringress/BUILD.bazel index 9ff1fdc56..fd91bc335 100644 --- a/google/cloud/gkehub/v1alpha/multiclusteringress/BUILD.bazel +++ b/google/cloud/gkehub/v1alpha/multiclusteringress/BUILD.bazel @@ -67,6 +67,7 @@ load( py_gapic_library( name = "multiclusteringress_py_gapic", srcs = [":multiclusteringress_proto"], + transport = "grpc", ) ############################################################################## @@ -98,7 +99,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto b/google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto index f6418c10a..c8f409066 100644 --- a/google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto +++ b/google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.gkehub.multiclusteringress.v1alpha; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.MultiClusterIngress.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/multiclusteringress/v1alpha;multiclusteringress"; diff --git a/google/cloud/gkehub/v1alpha/service.proto b/google/cloud/gkehub/v1alpha/service.proto index 3764fa8cb..7bbf9c768 100644 --- a/google/cloud/gkehub/v1alpha/service.proto +++ b/google/cloud/gkehub/v1alpha/service.proto @@ -19,7 +19,6 @@ package google.cloud.gkehub.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/gkehub/v1alpha/feature.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; diff --git a/google/cloud/gkehub/v1alpha/servicemesh/BUILD.bazel b/google/cloud/gkehub/v1alpha/servicemesh/BUILD.bazel index 895f97981..4fb9d9972 100644 --- a/google/cloud/gkehub/v1alpha/servicemesh/BUILD.bazel +++ b/google/cloud/gkehub/v1alpha/servicemesh/BUILD.bazel @@ -64,11 +64,13 @@ go_proto_library( load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_library", + "py_test", ) py_gapic_library( name = "servicemesh_py_gapic", srcs = [":servicemesh_proto"], + transport = "grpc", ) ############################################################################## @@ -100,7 +102,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto b/google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto index e200e4fc1..7c898c8af 100644 --- a/google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto +++ b/google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto @@ -18,7 +18,6 @@ package google.cloud.gkehub.servicemesh.v1alpha; import "google/api/field_behavior.proto"; import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.ServiceMesh.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/servicemesh/v1alpha;servicemesh"; diff --git a/google/cloud/gkehub/v1alpha2/BUILD.bazel b/google/cloud/gkehub/v1alpha2/BUILD.bazel index 789fd95a1..6998f0543 100644 --- a/google/cloud/gkehub/v1alpha2/BUILD.bazel +++ b/google/cloud/gkehub/v1alpha2/BUILD.bazel @@ -73,19 +73,18 @@ java_gapic_library( service_yaml = "gkehub_v1alpha2.yaml", test_deps = [ ":gkehub_java_grpc", - "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":gkehub_java_proto", "//google/api:api_java_proto", - "//google/cloud/location:location_java_grpc", - "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "gkehub_java_gapic_test_suite", test_classes = [ + "com.google.cloud.gkehub.v1alpha2.GkeHubClientHttpJsonTest", "com.google.cloud.gkehub.v1alpha2.GkeHubClientTest", ], runtime_deps = [":gkehub_java_gapic_test"], @@ -94,14 +93,13 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gkehub-v1alpha2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":gkehub_java_gapic", ":gkehub_java_grpc", ":gkehub_java_proto", ":gkehub_proto", - "//google/cloud/location:location_java_grpc", - "//google/cloud/location:location_java_proto", - "//google/cloud/location:location_proto", ], ) @@ -134,6 +132,7 @@ go_gapic_library( importpath = "cloud.google.com/go/gkehub/apiv1alpha2;gkehub", metadata = True, service_yaml = "gkehub_v1alpha2.yaml", + transport = "grpc+rest", deps = [ ":gkehub_go_proto", "//google/longrunning:longrunning_go_proto", @@ -167,6 +166,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -174,6 +174,17 @@ py_gapic_library( srcs = [":gkehub_proto"], grpc_service_config = "membership_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-gke-hub"], + transport = "grpc", +) + +py_test( + name = "gkehub_py_gapic_test", + srcs = [ + "gkehub_py_gapic_pytest.py", + "gkehub_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gkehub_py_gapic"], ) # Open Source Packages @@ -325,6 +336,7 @@ csharp_gapic_library( srcs = [":gkehub_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "membership_grpc_service_config.json", + service_yaml = "gkehub_v1alpha2.yaml", deps = [ ":gkehub_csharp_grpc", ":gkehub_csharp_proto", @@ -344,4 +356,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "gkehub_cc_proto", + deps = [":gkehub_proto"], +) + +cc_grpc_library( + name = "gkehub_cc_grpc", + srcs = [":gkehub_proto"], + grpc_only = True, + deps = [":gkehub_cc_proto"], +) diff --git a/google/cloud/gkehub/v1alpha2/membership.proto b/google/cloud/gkehub/v1alpha2/membership.proto index 00bf8ef3d..bea0dff75 100644 --- a/google/cloud/gkehub/v1alpha2/membership.proto +++ b/google/cloud/gkehub/v1alpha2/membership.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -305,6 +305,11 @@ message ResourceOptions { // This option should be set for clusters with Kubernetes apiserver versions // <1.16. bool v1beta1_crd = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Major version of the Kubernetes cluster. This is only used to determine + // which version to use for the CustomResourceDefinition resources, + // `apiextensions/v1beta1` or`apiextensions/v1`. + string k8s_version = 3 [(google.api.field_behavior) = OPTIONAL]; } // GkeCluster contains information specific to GKE clusters. @@ -562,7 +567,8 @@ message DeleteMembershipRequest { message UpdateMembershipRequest { // Required. The Membership resource name in the format // `projects/*/locations/*/memberships/*`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED]; // Required. Mask of fields to update. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; @@ -584,7 +590,8 @@ message UpdateMembershipRequest { message GenerateConnectManifestRequest { // Required. The Membership resource name the Agent will associate with, in the format // `projects/*/locations/*/memberships/*`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED]; // Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. // diff --git a/google/cloud/gkehub/v1beta/BUILD.bazel b/google/cloud/gkehub/v1beta/BUILD.bazel index e4d5d4ab6..00a9f612c 100644 --- a/google/cloud/gkehub/v1beta/BUILD.bazel +++ b/google/cloud/gkehub/v1beta/BUILD.bazel @@ -88,6 +88,7 @@ java_gapic_library( test_deps = [ ":gkehub_java_grpc", ] + _JAVA_GRPC_SUBPACKAGE_DEPS, + transport = "grpc+rest", deps = [ ":gkehub_java_proto", ] + _JAVA_PROTO_SUBPACKAGE_DEPS, @@ -96,6 +97,7 @@ java_gapic_library( java_gapic_test( name = "gkehub_java_gapic_test_suite", test_classes = [ + "com.google.cloud.gkehub.v1beta.GkeHubClientHttpJsonTest", "com.google.cloud.gkehub.v1beta.GkeHubClientTest", ], runtime_deps = [":gkehub_java_gapic_test"], @@ -104,6 +106,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gkehub-v1beta-java", + transport = "grpc+rest", deps = [ ":gkehub_java_gapic", ":gkehub_java_grpc", @@ -142,13 +145,14 @@ go_gapic_library( srcs = [":gkehub_proto_with_info"], grpc_service_config = "v1beta_grpc_service_config.json", importpath = "cloud.google.com/go/gkehub/apiv1beta;gkehub", - service_yaml = "gkehub_v1beta.yaml", metadata = True, + service_yaml = "gkehub_v1beta.yaml", + transport = "grpc+rest", deps = [ ":gkehub_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_library", "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", ], ) @@ -164,8 +168,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-gkehub-v1beta-go", deps = [ ":gkehub_go_gapic", - ":gkehub_go_gapic_srcjar-test.srcjar", ":gkehub_go_gapic_srcjar-metadata.srcjar", + ":gkehub_go_gapic_srcjar-test.srcjar", ":gkehub_go_proto", ], ) @@ -186,8 +190,20 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-gke-hub", ], + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "gkehub_py_gapic_test", +# srcs = [ +# "gkehub_py_gapic_pytest.py", +# "gkehub_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":gkehub_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "gkehub-v1beta-py", @@ -278,8 +294,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -351,6 +367,7 @@ csharp_gapic_library( srcs = [":gkehub_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "v1beta_grpc_service_config.json", + service_yaml = "gkehub_v1beta.yaml", deps = [ ":gkehub_csharp_grpc", ":gkehub_csharp_proto", diff --git a/google/cloud/gkehub/v1beta/configmanagement/BUILD.bazel b/google/cloud/gkehub/v1beta/configmanagement/BUILD.bazel index 86f9fde4b..69dea50b3 100644 --- a/google/cloud/gkehub/v1beta/configmanagement/BUILD.bazel +++ b/google/cloud/gkehub/v1beta/configmanagement/BUILD.bazel @@ -68,6 +68,7 @@ load( py_gapic_library( name = "configmanagement_py_gapic", srcs = [":configmanagement_proto"], + transport = "grpc", ) ############################################################################## @@ -99,7 +100,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto b/google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto index 103aa69dc..89df90f40 100644 --- a/google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto +++ b/google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.gkehub.configmanagement.v1beta; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.ConfigManagement.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/configmanagement/v1beta;configmanagement"; diff --git a/google/cloud/gkehub/v1beta/feature.proto b/google/cloud/gkehub/v1beta/feature.proto index 82c032c89..b847f9920 100644 --- a/google/cloud/gkehub/v1beta/feature.proto +++ b/google/cloud/gkehub/v1beta/feature.proto @@ -22,7 +22,6 @@ import "google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto"; import "google/cloud/gkehub/v1beta/metering/metering.proto"; import "google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/v1beta;gkehub"; diff --git a/google/cloud/gkehub/v1beta/metering/BUILD.bazel b/google/cloud/gkehub/v1beta/metering/BUILD.bazel index 4b9872a39..d10ba2b56 100644 --- a/google/cloud/gkehub/v1beta/metering/BUILD.bazel +++ b/google/cloud/gkehub/v1beta/metering/BUILD.bazel @@ -68,6 +68,7 @@ load( py_gapic_library( name = "metering_py_gapic", srcs = [":metering_proto"], + transport = "grpc", ) ############################################################################## @@ -99,7 +100,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1beta/metering/metering.proto b/google/cloud/gkehub/v1beta/metering/metering.proto index 948be8f1b..26fce8bc0 100644 --- a/google/cloud/gkehub/v1beta/metering/metering.proto +++ b/google/cloud/gkehub/v1beta/metering/metering.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.gkehub.metering.v1beta; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.Metering.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/metering/v1beta;metering"; diff --git a/google/cloud/gkehub/v1beta/multiclusteringress/BUILD.bazel b/google/cloud/gkehub/v1beta/multiclusteringress/BUILD.bazel index 72ba02c18..c6e56548a 100644 --- a/google/cloud/gkehub/v1beta/multiclusteringress/BUILD.bazel +++ b/google/cloud/gkehub/v1beta/multiclusteringress/BUILD.bazel @@ -67,6 +67,7 @@ load( py_gapic_library( name = "multiclusteringress_py_gapic", srcs = [":multiclusteringress_proto"], + transport = "grpc", ) ############################################################################## @@ -98,7 +99,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto b/google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto index 6391de2e1..450f2bd7c 100644 --- a/google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto +++ b/google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.gkehub.multiclusteringress.v1beta; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.GkeHub.MultiClusterIngress.V1Beta"; option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/multiclusteringress/v1beta;multiclusteringress"; diff --git a/google/cloud/gkehub/v1beta/service.proto b/google/cloud/gkehub/v1beta/service.proto index 5d28318d1..57b6a72da 100644 --- a/google/cloud/gkehub/v1beta/service.proto +++ b/google/cloud/gkehub/v1beta/service.proto @@ -19,7 +19,6 @@ package google.cloud.gkehub.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/gkehub/v1beta/feature.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; diff --git a/google/cloud/gkehub/v1beta1/BUILD.bazel b/google/cloud/gkehub/v1beta1/BUILD.bazel index d7c143136..56916a01f 100644 --- a/google/cloud/gkehub/v1beta1/BUILD.bazel +++ b/google/cloud/gkehub/v1beta1/BUILD.bazel @@ -40,6 +40,8 @@ proto_library_with_info( deps = [ ":gkehub_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ], ) @@ -75,18 +77,22 @@ java_gapic_library( test_deps = [ ":gkehub_java_grpc", "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":gkehub_java_proto", "//google/api:api_java_proto", "//google/cloud/location:location_java_grpc", "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ], ) java_gapic_test( name = "gkehub_java_gapic_test_suite", test_classes = [ + "com.google.cloud.gkehub.v1beta1.GkeHubMembershipServiceClientHttpJsonTest", "com.google.cloud.gkehub.v1beta1.GkeHubMembershipServiceClientTest", ], runtime_deps = [":gkehub_java_gapic_test"], @@ -95,6 +101,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gkehub-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":gkehub_java_gapic", ":gkehub_java_grpc", @@ -136,8 +144,11 @@ go_gapic_library( importpath = "cloud.google.com/go/gkehub/apiv1beta1;gkehub", metadata = True, service_yaml = "gkehub_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":gkehub_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", @@ -169,6 +180,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -176,6 +188,21 @@ py_gapic_library( srcs = [":gkehub_proto"], grpc_service_config = "membership_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-gke-hub"], + service_yaml = "gkehub_v1beta1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "gkehub_py_gapic_test", + srcs = [ + "gkehub_py_gapic_pytest.py", + "gkehub_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gkehub_py_gapic"], ) # Open Source Packages @@ -292,6 +319,7 @@ ruby_cloud_gapic_library( grpc_service_config = "membership_grpc_service_config.json", ruby_cloud_description = "The GKE Hub API centrally manages features and services on all your Kubernetes clusters running in a variety of environments, including Google cloud, on premises in customer datacenters, or other third party clouds.", ruby_cloud_title = "GKE Hub V1beta1", + service_yaml = "gkehub_v1beta1.yaml", deps = [ ":gkehub_ruby_grpc", ":gkehub_ruby_proto", @@ -335,6 +363,7 @@ csharp_gapic_library( srcs = [":gkehub_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "membership_grpc_service_config.json", + service_yaml = "gkehub_v1beta1.yaml", deps = [ ":gkehub_csharp_grpc", ":gkehub_csharp_proto", @@ -354,4 +383,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "gkehub_cc_proto", + deps = [":gkehub_proto"], +) + +cc_grpc_library( + name = "gkehub_cc_grpc", + srcs = [":gkehub_proto"], + grpc_only = True, + deps = [":gkehub_cc_proto"], +) diff --git a/google/cloud/gkehub/v1beta1/gkehub_v1beta1.yaml b/google/cloud/gkehub/v1beta1/gkehub_v1beta1.yaml index a0a692ede..09d09d243 100644 --- a/google/cloud/gkehub/v1beta1/gkehub_v1beta1.yaml +++ b/google/cloud/gkehub/v1beta1/gkehub_v1beta1.yaml @@ -5,6 +5,9 @@ title: GKE Hub API apis: - name: google.cloud.gkehub.v1beta1.GkeHubMembershipService +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: - name: google.cloud.gkehub.v1beta1.OperationMetadata diff --git a/google/cloud/gkehub/v1beta1/membership.proto b/google/cloud/gkehub/v1beta1/membership.proto index 80dedcc21..a8567263c 100644 --- a/google/cloud/gkehub/v1beta1/membership.proto +++ b/google/cloud/gkehub/v1beta1/membership.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -245,11 +245,19 @@ message MembershipEndpoint { // Optional. Specific information for a GKE-on-GCP cluster. GkeCluster gke_cluster = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Specific information for a GKE On-Prem cluster. + // Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster + // who has no resourceLink is not allowed to use this field, it should have + // a nil "type" instead. OnPremCluster on_prem_cluster = 7 [(google.api.field_behavior) = OPTIONAL]; // Optional. Specific information for a GKE Multi-Cloud cluster. MultiCloudCluster multi_cloud_cluster = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specific information for a Google Edge cluster. + EdgeCluster edge_cluster = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specific information for a GDC Edge Appliance cluster. + ApplianceCluster appliance_cluster = 10 [(google.api.field_behavior) = OPTIONAL]; } // Output only. Useful Kubernetes-specific metadata. @@ -314,6 +322,11 @@ message ResourceOptions { // This option should be set for clusters with Kubernetes apiserver versions // <1.16. bool v1beta1_crd = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Major version of the Kubernetes cluster. This is only used to determine + // which version to use for the CustomResourceDefinition resources, + // `apiextensions/v1beta1` or`apiextensions/v1`. + string k8s_version = 3 [(google.api.field_behavior) = OPTIONAL]; } // ResourceManifest represents a single Kubernetes resource to be applied to @@ -346,6 +359,24 @@ message GkeCluster { // OnPremCluster contains information specific to GKE On-Prem clusters. message OnPremCluster { + // ClusterType describes on prem cluster's type. + enum ClusterType { + // The ClusterType is not set. + CLUSTERTYPE_UNSPECIFIED = 0; + + // The ClusterType is bootstrap cluster. + BOOTSTRAP = 1; + + // The ClusterType is baremetal hybrid cluster. + HYBRID = 2; + + // The ClusterType is baremetal standalone cluster. + STANDALONE = 3; + + // The ClusterType is user cluster. + USER = 4; + } + // Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For example: // // //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster @@ -359,6 +390,9 @@ message OnPremCluster { // Immutable. Whether the cluster is an admin cluster. bool admin_cluster = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The on prem cluster's type. + ClusterType cluster_type = 4 [(google.api.field_behavior) = IMMUTABLE]; } // MultiCloudCluster contains information specific to GKE Multi-Cloud clusters. @@ -376,6 +410,25 @@ message MultiCloudCluster { bool cluster_missing = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// EdgeCluster contains information specific to Google Edge Clusters. +message EdgeCluster { + // Immutable. Self-link of the GCP resource for the Edge Cluster. For + // example: + // + // //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster + string resource_link = 1 [(google.api.field_behavior) = IMMUTABLE]; +} + +// ApplianceCluster contains information specific to GDC Edge Appliance +// Clusters. +message ApplianceCluster { + // Immutable. Self-link of the GCP resource for the Appliance Cluster. For + // example: + // + // //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance + string resource_link = 1 [(google.api.field_behavior) = IMMUTABLE]; +} + // KubernetesMetadata provides informational metadata for Memberships // representing Kubernetes clusters. message KubernetesMetadata { @@ -477,7 +530,12 @@ message MembershipState { message ListMembershipsRequest { // Required. The parent (project and location) where the Memberships will be listed. // Specified in the format `projects/*/locations/*`. - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkehub.googleapis.com/Membership" + } + ]; // Optional. When requesting a 'page' of resources, `page_size` specifies number of // resources to return. If unspecified or set to 0, all resources will @@ -534,14 +592,24 @@ message ListMembershipsResponse { message GetMembershipRequest { // Required. The Membership resource name in the format // `projects/*/locations/*/memberships/*`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkehub.googleapis.com/Membership" + } + ]; } // Request message for the `GkeHubMembershipService.CreateMembership` method. message CreateMembershipRequest { // Required. The parent (project and location) where the Memberships will be created. // Specified in the format `projects/*/locations/*`. - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkehub.googleapis.com/Membership" + } + ]; // Required. Client chosen ID for the membership. `membership_id` must be a valid RFC // 1123 compliant DNS label: @@ -577,7 +645,12 @@ message CreateMembershipRequest { message DeleteMembershipRequest { // Required. The Membership resource name in the format // `projects/*/locations/*/memberships/*`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkehub.googleapis.com/Membership" + } + ]; // 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 @@ -599,7 +672,12 @@ message DeleteMembershipRequest { message UpdateMembershipRequest { // Required. The membership resource name in the format: // `projects/[project_id]/locations/global/memberships/[membership_id]` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkehub.googleapis.com/Membership" + } + ]; // Required. Mask of fields to update. At least one field path must be specified in this // mask. @@ -637,7 +715,12 @@ message UpdateMembershipRequest { message GenerateConnectManifestRequest { // Required. The Membership resource name the Agent will associate with, in the format // `projects/*/locations/*/memberships/*`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkehub.googleapis.com/Membership" + } + ]; // Optional. The connect agent to generate manifest for. ConnectAgent connect_agent = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -710,7 +793,12 @@ message ConnectAgent { message ValidateExclusivityRequest { // Required. The parent (project and location) where the Memberships will be created. // Specified in the format `projects/*/locations/*`. - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkehub.googleapis.com/Membership" + } + ]; // Optional. The YAML of the membership CR in the cluster. Empty if the membership // CR does not exist. @@ -736,7 +824,12 @@ message ValidateExclusivityResponse { message GenerateExclusivityManifestRequest { // Required. The Membership resource name in the format // `projects/*/locations/*/memberships/*`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkehub.googleapis.com/Membership" + } + ]; // Optional. The YAML manifest of the membership CRD retrieved by // `kubectl get customresourcedefinitions membership`. diff --git a/google/cloud/gkemulticloud/BUILD.bazel b/google/cloud/gkemulticloud/BUILD.bazel new file mode 100644 index 000000000..b7c1fe700 --- /dev/null +++ b/google/cloud/gkemulticloud/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-gke_multi_cloud. + +# 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 gkemulticloud. +# 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 = "gkemulticloud_ruby_wrapper", + srcs = ["//google/cloud/gkemulticloud/v1:gkemulticloud_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=gkemulticloud.googleapis.com", + "ruby-cloud-api-shortname=gkemulticloud", + "ruby-cloud-gem-name=google-cloud-gke_multi_cloud", + "ruby-cloud-product-url=https://cloud.google.com/anthos/clusters/docs/multi-cloud", + "ruby-cloud-wrapper-of=v1:0.0", + ], + ruby_cloud_description = "Anthos Multi-Cloud provides a way to manage Kubernetes clusters that run on AWS and Azure infrastructure using the Anthos Multi-Cloud API. Combined with Connect, you can manage Kubernetes clusters on Google Cloud, AWS, and Azure from the Google Cloud Console.", + ruby_cloud_title = "Anthos Multi-Cloud", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-gkemulticloud-ruby", + deps = [ + ":gkemulticloud_ruby_wrapper", + ], +) diff --git a/google/cloud/gkemulticloud/v1/BUILD.bazel b/google/cloud/gkemulticloud/v1/BUILD.bazel new file mode 100644 index 000000000..6addb85a6 --- /dev/null +++ b/google/cloud/gkemulticloud/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. + +# 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 = "gkemulticloud_proto", + srcs = [ + "aws_resources.proto", + "aws_service.proto", + "azure_resources.proto", + "azure_service.proto", + "common_resources.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//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "gkemulticloud_proto_with_info", + deps = [ + ":gkemulticloud_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "gkemulticloud_java_proto", + deps = [":gkemulticloud_proto"], +) + +java_grpc_library( + name = "gkemulticloud_java_grpc", + srcs = [":gkemulticloud_proto"], + deps = [":gkemulticloud_java_proto"], +) + +java_gapic_library( + name = "gkemulticloud_java_gapic", + srcs = [":gkemulticloud_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "gkemulticloud_grpc_service_config.json", + service_yaml = "gkemulticloud_v1.yaml", + test_deps = [ + ":gkemulticloud_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":gkemulticloud_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "gkemulticloud_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.gkemulticloud.v1.AwsClustersClientHttpJsonTest", + "com.google.cloud.gkemulticloud.v1.AwsClustersClientTest", + "com.google.cloud.gkemulticloud.v1.AzureClustersClientHttpJsonTest", + "com.google.cloud.gkemulticloud.v1.AzureClustersClientTest", + ], + runtime_deps = [":gkemulticloud_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-gkemulticloud-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":gkemulticloud_java_gapic", + ":gkemulticloud_java_grpc", + ":gkemulticloud_java_proto", + ":gkemulticloud_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "gkemulticloud_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1", + protos = [":gkemulticloud_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "gkemulticloud_go_gapic", + srcs = [":gkemulticloud_proto_with_info"], + grpc_service_config = "gkemulticloud_grpc_service_config.json", + importpath = "cloud.google.com/go/gkemulticloud/apiv1;gkemulticloud", + metadata = True, + service_yaml = "gkemulticloud_v1.yaml", + transport = "grpc+rest", + deps = [ + ":gkemulticloud_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", + ], +) + +go_test( + name = "gkemulticloud_go_gapic_test", + srcs = [":gkemulticloud_go_gapic_srcjar_test"], + embed = [":gkemulticloud_go_gapic"], + importpath = "cloud.google.com/go/gkemulticloud/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-gkemulticloud-v1-go", + deps = [ + ":gkemulticloud_go_gapic", + ":gkemulticloud_go_gapic_srcjar-metadata.srcjar", + ":gkemulticloud_go_gapic_srcjar-test.srcjar", + ":gkemulticloud_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "gkemulticloud_py_gapic", + srcs = [":gkemulticloud_proto"], + grpc_service_config = "gkemulticloud_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-gke-multicloud", + "python-gapic-namespace=google.cloud", + "python-gapic-name=gke_multicloud", + ], + service_yaml = "gkemulticloud_v1.yaml", + transport = "grpc+rest", +) + +py_test( + name = "gkemulticloud_py_gapic_test", + srcs = [ + "gkemulticloud_py_gapic_pytest.py", + "gkemulticloud_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gkemulticloud_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "gkemulticloud-v1-py", + deps = [ + ":gkemulticloud_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "gkemulticloud_php_proto", + deps = [":gkemulticloud_proto"], +) + +php_grpc_library( + name = "gkemulticloud_php_grpc", + srcs = [":gkemulticloud_proto"], + deps = [":gkemulticloud_php_proto"], +) + +php_gapic_library( + name = "gkemulticloud_php_gapic", + srcs = [":gkemulticloud_proto_with_info"], + grpc_service_config = "gkemulticloud_grpc_service_config.json", + service_yaml = "gkemulticloud_v1.yaml", + deps = [ + ":gkemulticloud_php_grpc", + ":gkemulticloud_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-gkemulticloud-v1-php", + deps = [ + ":gkemulticloud_php_gapic", + ":gkemulticloud_php_grpc", + ":gkemulticloud_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "gkemulticloud_nodejs_gapic", + package_name = "@google-cloud/gkemulticloud", + src = ":gkemulticloud_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "gkemulticloud_grpc_service_config.json", + package = "google.cloud.gkemulticloud.v1", + service_yaml = "gkemulticloud_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "gkemulticloud-v1-nodejs", + deps = [ + ":gkemulticloud_nodejs_gapic", + ":gkemulticloud_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 = "gkemulticloud_ruby_proto", + deps = [":gkemulticloud_proto"], +) + +ruby_grpc_library( + name = "gkemulticloud_ruby_grpc", + srcs = [":gkemulticloud_proto"], + deps = [":gkemulticloud_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "gkemulticloud_ruby_gapic", + srcs = [":gkemulticloud_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=gkemulticloud.googleapis.com", + "ruby-cloud-api-shortname=gkemulticloud", + "ruby-cloud-gem-name=google-cloud-gke_multi_cloud-v1", + "ruby-cloud-product-url=https://cloud.google.com/anthos/clusters/docs/multi-cloud", + ], + grpc_service_config = "gkemulticloud_grpc_service_config.json", + ruby_cloud_description = "Anthos Multi-Cloud provides a way to manage Kubernetes clusters that run on AWS and Azure infrastructure using the Anthos Multi-Cloud API. Combined with Connect, you can manage Kubernetes clusters on Google Cloud, AWS, and Azure from the Google Cloud Console.", + ruby_cloud_title = "Anthos Multi-Cloud V1", + deps = [ + ":gkemulticloud_ruby_grpc", + ":gkemulticloud_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-gkemulticloud-v1-ruby", + deps = [ + ":gkemulticloud_ruby_gapic", + ":gkemulticloud_ruby_grpc", + ":gkemulticloud_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 = "gkemulticloud_csharp_proto", + deps = [":gkemulticloud_proto"], +) + +csharp_grpc_library( + name = "gkemulticloud_csharp_grpc", + srcs = [":gkemulticloud_proto"], + deps = [":gkemulticloud_csharp_proto"], +) + +csharp_gapic_library( + name = "gkemulticloud_csharp_gapic", + srcs = [":gkemulticloud_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "gkemulticloud_grpc_service_config.json", + service_yaml = "gkemulticloud_v1.yaml", + deps = [ + ":gkemulticloud_csharp_grpc", + ":gkemulticloud_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-gkemulticloud-v1-csharp", + deps = [ + ":gkemulticloud_csharp_gapic", + ":gkemulticloud_csharp_grpc", + ":gkemulticloud_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "gkemulticloud_cc_proto", + deps = [":gkemulticloud_proto"], +) + +cc_grpc_library( + name = "gkemulticloud_cc_grpc", + srcs = [":gkemulticloud_proto"], + grpc_only = True, + deps = [":gkemulticloud_cc_proto"], +) diff --git a/google/cloud/gkemulticloud/v1/aws_resources.proto b/google/cloud/gkemulticloud/v1/aws_resources.proto new file mode 100644 index 000000000..60e65942d --- /dev/null +++ b/google/cloud/gkemulticloud/v1/aws_resources.proto @@ -0,0 +1,556 @@ +// 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.cloud.gkemulticloud.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gkemulticloud/v1/common_resources.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeMultiCloud.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud"; +option java_multiple_files = true; +option java_outer_classname = "AwsResourcesProto"; +option java_package = "com.google.cloud.gkemulticloud.v1"; +option php_namespace = "Google\\Cloud\\GkeMultiCloud\\V1"; +option ruby_package = "Google::Cloud::GkeMultiCloud::V1"; + +// An Anthos cluster running on AWS. +message AwsCluster { + option (google.api.resource) = { + type: "gkemulticloud.googleapis.com/AwsCluster" + pattern: "projects/{project}/locations/{location}/awsClusters/{aws_cluster}" + }; + + // The lifecycle state of the cluster. + enum State { + // Not set. + STATE_UNSPECIFIED = 0; + + // The PROVISIONING state indicates the cluster is being created. + PROVISIONING = 1; + + // The RUNNING state indicates the cluster has been created and is fully + // usable. + RUNNING = 2; + + // The RECONCILING state indicates that some work is actively being done on + // the cluster, such as upgrading the control plane replicas. + RECONCILING = 3; + + // The STOPPING state indicates the cluster is being deleted. + STOPPING = 4; + + // The ERROR state indicates the cluster is in a broken unrecoverable + // state. + ERROR = 5; + + // The DEGRADED state indicates the cluster requires user action to + // restore full functionality. + DEGRADED = 6; + } + + // The name of this resource. + // + // Cluster names are formatted as + // `projects//locations//awsClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string name = 1; + + // Optional. A human readable description of this cluster. + // Cannot be longer than 255 UTF-8 encoded bytes. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Cluster-wide networking configuration. + AwsClusterNetworking networking = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AWS region where the cluster runs. + // + // Each Google Cloud region supports a subset of nearby AWS regions. + // You can call + // [GetAwsServerConfig][google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig] + // to list all supported AWS regions within a given Google Cloud region. + string aws_region = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration related to the cluster control plane. + AwsControlPlane control_plane = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration related to the cluster RBAC settings. + AwsAuthorization authorization = 15 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The current state of the cluster. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The endpoint of the cluster's API server. + string endpoint = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A globally unique identifier for the cluster. + string uid = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, there are currently changes in flight to the cluster. + bool reconciling = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this cluster was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this cluster was last updated. + google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows clients to perform consistent read-modify-writes + // through optimistic concurrency control. + // + // Can be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 13; + + // Optional. Annotations on the cluster. + // + // This field has the same restrictions as Kubernetes annotations. + // The total size of all keys and values combined is limited to 256k. + // Key can have 2 segments: prefix (optional) and name (required), + // separated by a slash (/). + // Prefix must be a DNS subdomain. + // Name must be 63 characters or less, begin and end with alphanumerics, + // with dashes (-), underscores (_), dots (.), and alphanumerics between. + map annotations = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Workload Identity settings. + WorkloadIdentityConfig workload_identity_config = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. PEM encoded x509 certificate of the cluster root of trust. + string cluster_ca_certificate = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Fleet configuration. + Fleet fleet = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Logging configuration for this cluster. + LoggingConfig logging_config = 19 [(google.api.field_behavior) = OPTIONAL]; +} + +// ControlPlane defines common parameters between control plane nodes. +message AwsControlPlane { + // Required. The Kubernetes version to run on control plane replicas + // (e.g. `1.19.10-gke.1000`). + // + // You can list all supported versions on a given Google Cloud region by + // calling + // [GetAwsServerConfig][google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig]. + string version = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The AWS instance type. + // + // When unspecified, it uses a default based on the cluster's version. + string instance_type = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SSH configuration for how to access the underlying control plane + // machines. + AwsSshConfig ssh_config = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The list of subnets where control plane replicas will run. + // A replica will be provisioned on each subnet and up to three values + // can be provided. + // Each subnet must be in a different AWS Availability Zone (AZ). + repeated string subnet_ids = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The IDs of additional security groups to add to control plane + // replicas. The Anthos Multi-Cloud API will automatically create and manage + // security groups with the minimum rules needed for a functioning cluster. + repeated string security_group_ids = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The name or ARN of the AWS IAM instance profile to assign to each control + // plane replica. + string iam_instance_profile = 7 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Configuration related to the root volume provisioned for each + // control plane replica. + // + // Volumes will be provisioned in the availability zone associated + // with the corresponding subnet. + // + // When unspecified, it defaults to 32 GiB with the GP2 volume type. + AwsVolumeTemplate root_volume = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration related to the main volume provisioned for each + // control plane replica. + // The main volume is in charge of storing all of the cluster's etcd state. + // + // Volumes will be provisioned in the availability zone associated + // with the corresponding subnet. + // + // When unspecified, it defaults to 8 GiB with the GP2 volume type. + AwsVolumeTemplate main_volume = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The ARN of the AWS KMS key used to encrypt cluster secrets. + AwsDatabaseEncryption database_encryption = 10 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A set of AWS resource tags to propagate to all underlying managed AWS + // resources. + // + // Specify at most 50 pairs containing alphanumerics, spaces, and symbols + // (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to + // 255 Unicode characters. + map tags = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Authentication configuration for management of AWS resources. + AwsServicesAuthentication aws_services_authentication = 12 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Proxy configuration for outbound HTTP(S) traffic. + AwsProxyConfig proxy_config = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Config encryption for user data. + AwsConfigEncryption config_encryption = 17 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The placement to use on control plane instances. + // When unspecified, the VPC's default tenancy will be used. + AwsInstancePlacement instance_placement = 18 [(google.api.field_behavior) = OPTIONAL]; +} + +// Authentication configuration for the management of AWS resources. +message AwsServicesAuthentication { + // Required. The Amazon Resource Name (ARN) of the role that the Anthos Multi-Cloud API + // will assume when managing AWS resources on your account. + string role_arn = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An identifier for the assumed role session. + // + // When unspecified, it defaults to `multicloud-service-agent`. + string role_session_name = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration related to the cluster RBAC settings. +message AwsAuthorization { + // Required. Users that can perform operations as a cluster admin. A managed + // ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole + // to the users. Up to ten admin users can be provided. + // + // For more info on RBAC, see + // https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles + repeated AwsClusterUser admin_users = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Identities of a user-type subject for AWS clusters. +message AwsClusterUser { + // Required. The name of the user, e.g. `my-gcp-id@gmail.com`. + string username = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Configuration related to application-layer secrets encryption. +message AwsDatabaseEncryption { + // Required. The ARN of the AWS KMS key used to encrypt cluster secrets. + string kms_key_arn = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Configuration template for AWS EBS volumes. +message AwsVolumeTemplate { + // Types of supported EBS volumes. We currently only support GP2 or GP3 + // volumes. + // See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html + // for more information. + enum VolumeType { + // Not set. + VOLUME_TYPE_UNSPECIFIED = 0; + + // GP2 (General Purpose SSD volume type). + GP2 = 1; + + // GP3 (General Purpose SSD volume type). + GP3 = 2; + } + + // Optional. The size of the volume, in GiBs. + // + // When unspecified, a default value is provided. See the specific reference + // in the parent resource. + int32 size_gib = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Type of the EBS volume. + // + // When unspecified, it defaults to GP2 volume. + VolumeType volume_type = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of I/O operations per second (IOPS) to provision for GP3 volume. + int32 iops = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) used to + // encrypt AWS EBS volumes. + // + // If not specified, the default Amazon managed key associated to + // the AWS region where this cluster runs will be used. + string kms_key_arn = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// ClusterNetworking defines cluster-wide networking configuration. +// +// Anthos clusters on AWS run on a single VPC. This includes control +// plane replicas and node pool nodes. +message AwsClusterNetworking { + // Required. The VPC associated with the cluster. All component clusters + // (i.e. control plane and node pools) run on a single VPC. + // + // This field cannot be changed after creation. + string vpc_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. All pods in the cluster are assigned an IPv4 address from these ranges. + // Only a single range is supported. + // This field cannot be changed after creation. + repeated string pod_address_cidr_blocks = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. All services in the cluster are assigned an IPv4 address from these ranges. + // Only a single range is supported. + // This field cannot be changed after creation. + repeated string service_address_cidr_blocks = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// An Anthos node pool running on AWS. +message AwsNodePool { + option (google.api.resource) = { + type: "gkemulticloud.googleapis.com/AwsNodePool" + pattern: "projects/{project}/locations/{location}/awsClusters/{aws_cluster}/awsNodePools/{aws_node_pool}" + }; + + // The lifecycle state of the node pool. + enum State { + // Not set. + STATE_UNSPECIFIED = 0; + + // The PROVISIONING state indicates the node pool is being created. + PROVISIONING = 1; + + // The RUNNING state indicates the node pool has been created + // and is fully usable. + RUNNING = 2; + + // The RECONCILING state indicates that the node pool is being reconciled. + RECONCILING = 3; + + // The STOPPING state indicates the node pool is being deleted. + STOPPING = 4; + + // The ERROR state indicates the node pool is in a broken unrecoverable + // state. + ERROR = 5; + + // The DEGRADED state indicates the node pool requires user action to + // restore full functionality. + DEGRADED = 6; + } + + // The name of this resource. + // + // Node pool names are formatted as + // `projects//locations//awsClusters//awsNodePools/`. + // + // For more details on Google Cloud resource names, + // see [Resource Names](https://cloud.google.com/apis/design/resource_names) + string name = 1; + + // Required. The Kubernetes version to run on this node pool (e.g. `1.19.10-gke.1000`). + // + // You can list all supported versions on a given Google Cloud region by + // calling + // [GetAwsServerConfig][google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig]. + string version = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The configuration of the node pool. + AwsNodeConfig config = 28 [(google.api.field_behavior) = REQUIRED]; + + // Required. Autoscaler configuration for this node pool. + AwsNodePoolAutoscaling autoscaling = 25 [(google.api.field_behavior) = REQUIRED]; + + // Required. The subnet where the node pool node run. + string subnet_id = 6 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The lifecycle state of the node pool. + State state = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A globally unique identifier for the node pool. + string uid = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, there are currently changes in flight to the node + // pool. + bool reconciling = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this node pool was created. + google.protobuf.Timestamp create_time = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this node pool was last updated. + google.protobuf.Timestamp update_time = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows clients to perform consistent read-modify-writes + // through optimistic concurrency control. + // + // Can be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 21; + + // Optional. Annotations on the node pool. + // + // This field has the same restrictions as Kubernetes annotations. + // The total size of all keys and values combined is limited to 256k. + // Key can have 2 segments: prefix (optional) and name (required), + // separated by a slash (/). + // Prefix must be a DNS subdomain. + // Name must be 63 characters or less, begin and end with alphanumerics, + // with dashes (-), underscores (_), dots (.), and alphanumerics between. + map annotations = 22 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The constraint on the maximum number of pods that can be run + // simultaneously on a node in the node pool. + MaxPodsConstraint max_pods_constraint = 27 [(google.api.field_behavior) = REQUIRED]; +} + +// Parameters that describe the nodes in a cluster. +message AwsNodeConfig { + // Optional. The AWS instance type. + // + // When unspecified, it uses a default based on the node pool's version. + string instance_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Template for the root volume provisioned for node pool nodes. + // Volumes will be provisioned in the availability zone assigned + // to the node pool subnet. + // + // When unspecified, it defaults to 32 GiB with the GP2 volume type. + AwsVolumeTemplate root_volume = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The initial taints assigned to nodes of this node pool. + repeated NodeTaint taints = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The initial labels assigned to nodes of this node pool. An object + // containing a list of "key": value pairs. Example: { "name": "wrench", + // "mass": "1.3kg", "count": "3" }. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Key/value metadata to assign to each underlying AWS resource. Specify at + // most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). + // Keys can be up to 127 Unicode characters. + // Values can be up to 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. + string iam_instance_profile = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The OS image type to use on node pool instances. + // Can have a value of `ubuntu`, or `windows` if the cluster enables + // the Windows node pool preview feature. + // + // When unspecified, it defaults to `ubuntu`. + string image_type = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The SSH configuration. + AwsSshConfig ssh_config = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The IDs of additional security groups to add to nodes in this pool. The + // manager will automatically create security groups with minimum rules + // needed for a functioning cluster. + repeated string security_group_ids = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Proxy configuration for outbound HTTP(S) traffic. + AwsProxyConfig proxy_config = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Config encryption for user data. + AwsConfigEncryption config_encryption = 13 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Placement related info for this node. + // When unspecified, the VPC's default tenancy will be used. + AwsInstancePlacement instance_placement = 14 [(google.api.field_behavior) = OPTIONAL]; +} + +// AwsNodePoolAutoscaling contains information required by cluster autoscaler +// to adjust the size of the node pool to the current cluster usage. +message AwsNodePoolAutoscaling { + // Required. Minimum number of nodes in the node pool. Must be greater than or equal to + // 1 and less than or equal to max_node_count. + int32 min_node_count = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Maximum number of nodes in the node pool. Must be greater than or equal to + // min_node_count and less than or equal to 50. + int32 max_node_count = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// AwsServerConfig is the configuration of GKE cluster on AWS. +message AwsServerConfig { + option (google.api.resource) = { + type: "gkemulticloud.googleapis.com/AwsServerConfig" + pattern: "projects/{project}/locations/{location}/awsServerConfig" + }; + + // The resource name of the config. + string name = 1; + + // List of valid Kubernetes versions. + repeated AwsK8sVersionInfo valid_versions = 2; + + // The list of supported AWS regions. + repeated string supported_aws_regions = 3; +} + +// Kubernetes version information of GKE cluster on AWS. +message AwsK8sVersionInfo { + // Kubernetes version name. + string version = 1; +} + +// SSH configuration for AWS resources. +message AwsSshConfig { + // Required. The name of the EC2 key pair used to login into cluster machines. + string ec2_key_pair = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of a proxy config stored in AWS Secret Manager. +message AwsProxyConfig { + // The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy + // configuration. + string secret_arn = 1; + + // The version string of the AWS Secret Manager secret that contains the + // HTTP(S) proxy configuration. + string secret_version = 2; +} + +// Config encryption for user data. +message AwsConfigEncryption { + // Required. The ARN of the AWS KMS key used to encrypt user data. + string kms_key_arn = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of placement information for an instance. +// Limitations for using the `host` tenancy: +// +// * T3 instances that use the unlimited CPU credit option don't support host +// tenancy. +message AwsInstancePlacement { + // Tenancy defines how EC2 instances are distributed across physical hardware. + enum Tenancy { + // Not set. + TENANCY_UNSPECIFIED = 0; + + // Use default VPC tenancy. + DEFAULT = 1; + + // Run a dedicated instance. + DEDICATED = 2; + + // Launch this instance to a dedicated host. + HOST = 3; + } + + // Required. The tenancy for instance. + Tenancy tenancy = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/gkemulticloud/v1/aws_service.proto b/google/cloud/gkemulticloud/v1/aws_service.proto new file mode 100644 index 000000000..d7f7144e5 --- /dev/null +++ b/google/cloud/gkemulticloud/v1/aws_service.proto @@ -0,0 +1,548 @@ +// 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.cloud.gkemulticloud.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/gkemulticloud/v1/aws_resources.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeMultiCloud.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud"; +option java_multiple_files = true; +option java_outer_classname = "AwsServiceProto"; +option java_package = "com.google.cloud.gkemulticloud.v1"; +option php_namespace = "Google\\Cloud\\GkeMultiCloud\\V1"; +option ruby_package = "Google::Cloud::GkeMultiCloud::V1"; + +// The AwsClusters API provides a single centrally managed service +// to create and manage Anthos clusters that run on AWS infrastructure. +service AwsClusters { + option (google.api.default_host) = "gkemulticloud.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource on a given GCP project and region. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc CreateAwsCluster(CreateAwsClusterRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/awsClusters" + body: "aws_cluster" + }; + option (google.api.method_signature) = "parent,aws_cluster,aws_cluster_id"; + option (google.longrunning.operation_info) = { + response_type: "AwsCluster" + metadata_type: "OperationMetadata" + }; + } + + // Updates an [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]. + rpc UpdateAwsCluster(UpdateAwsClusterRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{aws_cluster.name=projects/*/locations/*/awsClusters/*}" + body: "aws_cluster" + }; + option (google.api.method_signature) = "aws_cluster,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AwsCluster" + metadata_type: "OperationMetadata" + }; + } + + // Describes a specific [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource. + rpc GetAwsCluster(GetAwsClusterRequest) returns (AwsCluster) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/awsClusters/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources on a given Google Cloud project and + // region. + rpc ListAwsClusters(ListAwsClustersRequest) returns (ListAwsClustersResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/awsClusters" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a specific [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource. + // + // Fails if the cluster has one or more associated [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] + // resources. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc DeleteAwsCluster(DeleteAwsClusterRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/awsClusters/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Generates a short-lived access token to authenticate to a given + // [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource. + rpc GenerateAwsAccessToken(GenerateAwsAccessTokenRequest) returns (GenerateAwsAccessTokenResponse) { + option (google.api.http) = { + get: "/v1/{aws_cluster=projects/*/locations/*/awsClusters/*}:generateAwsAccessToken" + }; + } + + // Creates a new [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool], attached to a given [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc CreateAwsNodePool(CreateAwsNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/awsClusters/*}/awsNodePools" + body: "aws_node_pool" + }; + option (google.api.method_signature) = "parent,aws_node_pool,aws_node_pool_id"; + option (google.longrunning.operation_info) = { + response_type: "AwsNodePool" + metadata_type: "OperationMetadata" + }; + } + + // Updates an [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]. + rpc UpdateAwsNodePool(UpdateAwsNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{aws_node_pool.name=projects/*/locations/*/awsClusters/*/awsNodePools/*}" + body: "aws_node_pool" + }; + option (google.api.method_signature) = "aws_node_pool,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AwsNodePool" + metadata_type: "OperationMetadata" + }; + } + + // Describes a specific [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource. + rpc GetAwsNodePool(GetAwsNodePoolRequest) returns (AwsNodePool) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/awsClusters/*/awsNodePools/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resources on a given [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]. + rpc ListAwsNodePools(ListAwsNodePoolsRequest) returns (ListAwsNodePoolsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/awsClusters/*}/awsNodePools" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a specific [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc DeleteAwsNodePool(DeleteAwsNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/awsClusters/*/awsNodePools/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Returns information, such as supported AWS regions and Kubernetes + // versions, on a given Google Cloud location. + rpc GetAwsServerConfig(GetAwsServerConfigRequest) returns (AwsServerConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/awsServerConfig}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for `AwsClusters.CreateAwsCluster` method. +message CreateAwsClusterRequest { + // Required. The parent location where this [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource + // will be created. + // + // Location names are formatted as `projects//locations/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AwsCluster" + } + ]; + + // Required. The specification of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] to create. + AwsCluster aws_cluster = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A client provided ID the resource. Must be unique within the parent + // resource. + // + // The provided ID will be part of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] + // resource name formatted as + // `projects//locations//awsClusters/`. + // + // Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 40 characters. + string aws_cluster_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but do not actually create the cluster. + bool validate_only = 4; +} + +// Request message for `AwsClusters.UpdateAwsCluster` method. +message UpdateAwsClusterRequest { + // Required. The [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource to update. + AwsCluster aws_cluster = 1 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but do not actually update the cluster. + bool validate_only = 2; + + // Required. Mask of fields to update. At least one path must be supplied in + // this field. The elements of the repeated paths field can only include these + // fields from [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]: + // + // * `description`. + // * `annotations`. + // * `control_plane.version`. + // * `authorization.admin_users`. + // * `control_plane.aws_services_authentication.role_arn`. + // * `control_plane.aws_services_authentication.role_session_name`. + // * `control_plane.config_encryption.kms_key_arn`. + // * `control_plane.instance_type`. + // * `control_plane.security_group_ids`. + // * `control_plane.proxy_config`. + // * `control_plane.proxy_config.secret_arn`. + // * `control_plane.proxy_config.secret_version`. + // * `control_plane.root_volume.iops`. + // * `control_plane.root_volume.kms_key_arn`. + // * `control_plane.root_volume.volume_type`. + // * `control_plane.root_volume.size_gib`. + // * `control_plane.ssh_config`. + // * `control_plane.ssh_config.ec2_key_pair`. + // * `control_plane.instance_placement.tenancy`. + // * `logging_config`. + google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for `AwsClusters.GetAwsCluster` method. +message GetAwsClusterRequest { + // Required. The name of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource to describe. + // + // `AwsCluster` names are formatted as + // `projects//locations//awsClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AwsCluster" + } + ]; +} + +// Request message for `AwsClusters.ListAwsClusters` method. +message ListAwsClustersRequest { + // Required. The parent location which owns this collection of + // [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources. + // + // Location names are formatted as `projects//locations/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AwsCluster" + } + ]; + + // The maximum number of items to return. + // + // If not specified, a default value of 50 will be used by the service. + // Regardless of the pageSize value, the response can include a partial list + // and a caller should only rely on response's + // [nextPageToken][google.cloud.gkemulticloud.v1.ListAwsClustersResponse.next_page_token] to determine if + // there are more instances left to be queried. + int32 page_size = 2; + + // The `nextPageToken` value returned from a previous + // [awsClusters.list][google.cloud.gkemulticloud.v1.AwsClusters.ListAwsClusters] request, if any. + string page_token = 3; +} + +// Response message for `AwsClusters.ListAwsClusters` method. +message ListAwsClustersResponse { + // A list of [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources in the specified GCP + // project and region region. + repeated AwsCluster aws_clusters = 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; +} + +// Request message for `AwsClusters.DeleteAwsCluster` method. +message DeleteAwsClusterRequest { + // Required. The resource name the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] to delete. + // + // `AwsCluster` names are formatted as + // `projects//locations//awsClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AwsCluster" + } + ]; + + // If set, only validate the request, but do not actually delete the resource. + bool validate_only = 2; + + // If set to true, and the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource is not found, + // the request will succeed but no action will be taken on the server and a + // completed [Operation][google.longrunning.Operation] will be returned. + // + // Useful for idempotent deletion. + bool allow_missing = 3; + + // The current etag of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]. + // + // Allows clients to perform deletions through optimistic concurrency control. + // + // 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; +} + +// Response message for `AwsClusters.CreateAwsNodePool` method. +message CreateAwsNodePoolRequest { + // Required. The [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource where this node pool will be created. + // + // `AwsCluster` names are formatted as + // `projects//locations//awsClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AwsNodePool" + } + ]; + + // Required. The specification of the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] to create. + AwsNodePool aws_node_pool = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A client provided ID the resource. Must be unique within the parent + // resource. + // + // The provided ID will be part of the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] + // resource name formatted as + // `projects//locations//awsClusters//awsNodePools/`. + // + // Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 40 characters. + string aws_node_pool_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but do not actually create the node + // pool. + bool validate_only = 4; +} + +// Request message for `AwsClusters.UpdateAwsNodePool` method. +message UpdateAwsNodePoolRequest { + // Required. The [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource to update. + AwsNodePool aws_node_pool = 1 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but don't actually update the node pool. + bool validate_only = 2; + + // Required. Mask of fields to update. At least one path must be supplied in + // this field. The elements of the repeated paths field can only include these + // fields from [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]: + // + // * `annotations`. + // * `version`. + // * `autoscaling.min_node_count`. + // * `autoscaling.max_node_count`. + // * `config.config_encryption.kms_key_arn`. + // * `config.security_group_ids`. + // * `config.root_volume.iops`. + // * `config.root_volume.kms_key_arn`. + // * `config.root_volume.volume_type`. + // * `config.root_volume.size_gib`. + // * `config.proxy_config`. + // * `config.proxy_config.secret_arn`. + // * `config.proxy_config.secret_version`. + // * `config.ssh_config`. + // * `config.ssh_config.ec2_key_pair`. + google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for `AwsClusters.GetAwsNodePool` method. +message GetAwsNodePoolRequest { + // Required. The name of the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource to describe. + // + // `AwsNodePool` names are formatted as + // `projects//locations//awsClusters//awsNodePools/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AwsNodePool" + } + ]; +} + +// Request message for `AwsClusters.ListAwsNodePools` method. +message ListAwsNodePoolsRequest { + // Required. The parent `AwsCluster` which owns this collection of + // [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resources. + // + // `AwsCluster` names are formatted as + // `projects//locations//awsClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AwsNodePool" + } + ]; + + // The maximum number of items to return. + // + // If not specified, a default value of 50 will be used by the service. + // Regardless of the pageSize value, the response can include a partial list + // and a caller should only rely on response's + // [nextPageToken][google.cloud.gkemulticloud.v1.ListAwsNodePoolsResponse.next_page_token] to determine if + // there are more instances left to be queried. + int32 page_size = 2; + + // The `nextPageToken` value returned from a previous + // [awsNodePools.list][google.cloud.gkemulticloud.v1.AwsClusters.ListAwsNodePools] request, if any. + string page_token = 3; +} + +// Response message for `AwsClusters.ListAwsNodePools` method. +message ListAwsNodePoolsResponse { + // A list of [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resources in the specified `AwsCluster`. + repeated AwsNodePool aws_node_pools = 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; +} + +// Request message for `AwsClusters.DeleteNodePool` method. +message DeleteAwsNodePoolRequest { + // Required. The resource name the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] to delete. + // + // `AwsNodePool` names are formatted as + // `projects//locations//awsClusters//awsNodePools/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AwsNodePool" + } + ]; + + // If set, only validate the request, but do not actually delete the node + // pool. + bool validate_only = 2; + + // If set to true, and the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource is not found, + // the request will succeed but no action will be taken on the server and a + // completed [Operation][google.longrunning.Operation] will be returned. + // + // Useful for idempotent deletion. + bool allow_missing = 3; + + // The current ETag of the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]. + // + // Allows clients to perform deletions through optimistic concurrency control. + // + // 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; +} + +// GetAwsServerConfigRequest gets the server config of GKE cluster on AWS. +message GetAwsServerConfigRequest { + // Required. The name of the [AwsServerConfig][google.cloud.gkemulticloud.v1.AwsServerConfig] resource to describe. + // + // `AwsServerConfig` names are formatted as + // `projects//locations//awsServerConfig`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AwsServerConfig" + } + ]; +} + +// Request message for `AwsClusters.GenerateAwsAccessToken` method. +message GenerateAwsAccessTokenRequest { + // Required. The name of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource to authenticate to. + // + // `AwsCluster` names are formatted as + // `projects//locations//awsClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string aws_cluster = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AwsCluster" + } + ]; +} + +// Response message for `AwsClusters.GenerateAwsAccessToken` method. +message GenerateAwsAccessTokenResponse { + // Output only. Access token to authenticate to k8s api-server. + string access_token = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp at which the token will expire. + google.protobuf.Timestamp expiration_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/gkemulticloud/v1/azure_resources.proto b/google/cloud/gkemulticloud/v1/azure_resources.proto new file mode 100644 index 000000000..3548c6ac8 --- /dev/null +++ b/google/cloud/gkemulticloud/v1/azure_resources.proto @@ -0,0 +1,632 @@ +// 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.cloud.gkemulticloud.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gkemulticloud/v1/common_resources.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeMultiCloud.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud"; +option java_multiple_files = true; +option java_outer_classname = "AzureResourcesProto"; +option java_package = "com.google.cloud.gkemulticloud.v1"; +option php_namespace = "Google\\Cloud\\GkeMultiCloud\\V1"; +option ruby_package = "Google::Cloud::GkeMultiCloud::V1"; + +// An Anthos cluster running on Azure. +message AzureCluster { + option (google.api.resource) = { + type: "gkemulticloud.googleapis.com/AzureCluster" + pattern: "projects/{project}/locations/{location}/azureClusters/{azure_cluster}" + }; + + // The lifecycle state of the cluster. + enum State { + // Not set. + STATE_UNSPECIFIED = 0; + + // The PROVISIONING state indicates the cluster is being created. + PROVISIONING = 1; + + // The RUNNING state indicates the cluster has been created and is fully + // usable. + RUNNING = 2; + + // The RECONCILING state indicates that some work is actively being done on + // the cluster, such as upgrading the control plane replicas. + RECONCILING = 3; + + // The STOPPING state indicates the cluster is being deleted. + STOPPING = 4; + + // The ERROR state indicates the cluster is in a broken unrecoverable + // state. + ERROR = 5; + + // The DEGRADED state indicates the cluster requires user action to + // restore full functionality. + DEGRADED = 6; + } + + // The name of this resource. + // + // Cluster names are formatted as + // `projects//locations//azureClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string name = 1; + + // Optional. A human readable description of this cluster. + // Cannot be longer than 255 UTF-8 encoded bytes. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The Azure region where the cluster runs. + // + // Each Google Cloud region supports a subset of nearby Azure regions. + // You can call + // [GetAzureServerConfig][google.cloud.gkemulticloud.v1.AzureClusters.GetAzureServerConfig] + // to list all supported Azure regions within a given Google Cloud region. + string azure_region = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ARM ID of the resource group where the cluster resources are deployed. + // For example: + // `/subscriptions//resourceGroups/` + string resource_group_id = 17 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] that contains authentication configuration for + // how the Anthos Multi-Cloud API connects to Azure APIs. + // + // The `AzureClient` resource must reside on the same GCP project and region + // as the `AzureCluster`. + // + // `AzureClient` names are formatted as + // `projects//locations//azureClients/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string azure_client = 16 [(google.api.field_behavior) = REQUIRED]; + + // Required. Cluster-wide networking configuration. + AzureClusterNetworking networking = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration related to the cluster control plane. + AzureControlPlane control_plane = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration related to the cluster RBAC settings. + AzureAuthorization authorization = 6 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The current state of the cluster. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The endpoint of the cluster's API server. + string endpoint = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A globally unique identifier for the cluster. + string uid = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, there are currently changes in flight to the cluster. + bool reconciling = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this cluster was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this cluster was last updated. + google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows clients to perform consistent read-modify-writes + // through optimistic concurrency control. + // + // Can be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 13; + + // Optional. Annotations on the cluster. + // + // This field has the same restrictions as Kubernetes annotations. + // The total size of all keys and values combined is limited to 256k. + // Keys can have 2 segments: prefix (optional) and name (required), + // separated by a slash (/). + // Prefix must be a DNS subdomain. + // Name must be 63 characters or less, begin and end with alphanumerics, + // with dashes (-), underscores (_), dots (.), and alphanumerics between. + map annotations = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Workload Identity settings. + WorkloadIdentityConfig workload_identity_config = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. PEM encoded x509 certificate of the cluster root of trust. + string cluster_ca_certificate = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Fleet configuration. + Fleet fleet = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Mananged Azure resources for this cluster. + AzureClusterResources managed_resources = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Logging configuration for this cluster. + LoggingConfig logging_config = 23 [(google.api.field_behavior) = OPTIONAL]; +} + +// ClusterNetworking contains cluster-wide networking configuration. +message AzureClusterNetworking { + // Required. The Azure Resource Manager (ARM) ID of the VNet associated with your + // cluster. + // + // All components in the cluster (i.e. control plane and node pools) run on a + // single VNet. + // + // Example: + // `/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworks/` + // + // This field cannot be changed after creation. + string virtual_network_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The IP address range of the pods in this cluster, in CIDR + // notation (e.g. `10.96.0.0/14`). + // + // All pods in the cluster get assigned a unique IPv4 address from these + // ranges. Only a single range is supported. + // + // This field cannot be changed after creation. + repeated string pod_address_cidr_blocks = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The IP address range for services in this cluster, in CIDR + // notation (e.g. `10.96.0.0/14`). + // + // All services in the cluster get assigned a unique IPv4 address from these + // ranges. Only a single range is supported. + // + // This field cannot be changed after creating a cluster. + repeated string service_address_cidr_blocks = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The ARM ID of the subnet where Kubernetes private service type load + // balancers are deployed. When unspecified, it defaults to + // AzureControlPlane.subnet_id. + // + // Example: + // "/subscriptions/d00494d6-6f3c-4280-bbb2-899e163d1d30/resourceGroups/anthos_cluster_gkeust4/providers/Microsoft.Network/virtualNetworks/gke-vnet-gkeust4/subnets/subnetid456" + string service_load_balancer_subnet_id = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// AzureControlPlane represents the control plane configurations. +message AzureControlPlane { + // Required. The Kubernetes version to run on control plane replicas + // (e.g. `1.19.10-gke.1000`). + // + // You can list all supported versions on a given Google Cloud region by + // calling + // [GetAzureServerConfig][google.cloud.gkemulticloud.v1.AzureClusters.GetAzureServerConfig]. + string version = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The ARM ID of the default subnet for the control plane. The control plane + // VMs are deployed in this subnet, unless + // `AzureControlPlane.replica_placements` is specified. This subnet will also + // be used as default for `AzureControlPlane.endpoint_subnet_id` if + // `AzureControlPlane.endpoint_subnet_id` is not specified. Similarly it will + // be used as default for + // `AzureClusterNetworking.service_load_balancer_subnet_id`. + // + // Example: + // `/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworks//subnets/default`. + string subnet_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Azure VM size name. Example: `Standard_DS2_v2`. + // + // For available VM sizes, see + // https://docs.microsoft.com/en-us/azure/virtual-machines/vm-naming-conventions. + // + // When unspecified, it defaults to `Standard_DS2_v2`. + string vm_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. SSH configuration for how to access the underlying control plane + // machines. + AzureSshConfig ssh_config = 11 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Configuration related to the root volume provisioned for each + // control plane replica. + // + // When unspecified, it defaults to 32-GiB Azure Disk. + AzureDiskTemplate root_volume = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration related to the main volume provisioned for each + // control plane replica. + // The main volume is in charge of storing all of the cluster's etcd state. + // + // When unspecified, it defaults to a 8-GiB Azure Disk. + AzureDiskTemplate main_volume = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration related to application-layer secrets encryption. + AzureDatabaseEncryption database_encryption = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Proxy configuration for outbound HTTP(S) traffic. + AzureProxyConfig proxy_config = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration related to vm config encryption. + AzureConfigEncryption config_encryption = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A set of tags to apply to all underlying control plane Azure resources. + map tags = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration for where to place the control plane replicas. + // + // Up to three replica placement instances can be specified. If + // replica_placements is set, the replica placement instances will be applied + // to the three control plane replicas as evenly as possible. + repeated ReplicaPlacement replica_placements = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ARM ID of the subnet where the control plane load balancer is deployed. + // When unspecified, it defaults to AzureControlPlane.subnet_id. + // + // Example: + // "/subscriptions/d00494d6-6f3c-4280-bbb2-899e163d1d30/resourceGroups/anthos_cluster_gkeust4/providers/Microsoft.Network/virtualNetworks/gke-vnet-gkeust4/subnets/subnetid123" + string endpoint_subnet_id = 15 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for the placement of a control plane replica. +message ReplicaPlacement { + // Required. For a given replica, the ARM ID of the subnet where the control plane VM is + // deployed. Make sure it's a subnet under the virtual network in the cluster + // configuration. + string subnet_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. For a given replica, the Azure availability zone where to provision the + // control plane VM and the ETCD disk. + string azure_availability_zone = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of a proxy config stored in Azure Key Vault. +message AzureProxyConfig { + // The ARM ID the of the resource group containing proxy keyvault. + // + // Resource group ids are formatted as + // `/subscriptions//resourceGroups/`. + string resource_group_id = 1; + + // The URL the of the proxy setting secret with its version. + // + // Secret ids are formatted as + // `https://.vault.azure.net/secrets//`. + string secret_id = 2; +} + +// Configuration related to application-layer secrets encryption. +// +// Anthos clusters on Azure encrypts your Kubernetes data at rest +// in etcd using Azure Key Vault. +message AzureDatabaseEncryption { + // Required. The ARM ID of the Azure Key Vault key to encrypt / decrypt data. + // + // For example: + // `/subscriptions//resourceGroups//providers/Microsoft.KeyVault/vaults//keys/` + // Encryption will always take the latest version of the key and hence + // specific version is not supported. + string key_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Configuration related to config data encryption. +// +// Azure VM bootstrap secret is envelope encrypted with the provided key vault +// key. +message AzureConfigEncryption { + // Required. The ARM ID of the Azure Key Vault key to encrypt / decrypt config data. + // + // For example: + // `/subscriptions//resourceGroups//providers/Microsoft.KeyVault/vaults//keys/` + string key_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. RSA key of the Azure Key Vault public key to use for encrypting the data. + // + // This key must be formatted as a PEM-encoded SubjectPublicKeyInfo (RFC 5280) + // in ASN.1 DER form. The string must be comprised of a single PEM block of + // type "PUBLIC KEY". + string public_key = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for Azure Disks. +message AzureDiskTemplate { + // Optional. The size of the disk, in GiBs. + // + // When unspecified, a default value is provided. See the specific reference + // in the parent resource. + int32 size_gib = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// `AzureClient` resources hold client authentication information needed by the +// Anthos Multi-Cloud API to manage Azure resources on your Azure subscription. +// +// When an [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] is created, an `AzureClient` resource needs to be +// provided and all operations on Azure resources associated to that cluster +// will authenticate to Azure services using the given client. +// +// `AzureClient` resources are immutable and cannot be modified upon creation. +// +// Each `AzureClient` resource is bound to a single Azure Active Directory +// Application and tenant. +message AzureClient { + option (google.api.resource) = { + type: "gkemulticloud.googleapis.com/AzureClient" + pattern: "projects/{project}/locations/{location}/azureClients/{azure_client}" + }; + + // The name of this resource. + // + // `AzureClient` resource names are formatted as + // `projects//locations//azureClients/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1; + + // Required. The Azure Active Directory Tenant ID. + string tenant_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Azure Active Directory Application ID. + string application_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Annotations on the resource. + // + // This field has the same restrictions as Kubernetes annotations. + // The total size of all keys and values combined is limited to 256k. + // Keys can have 2 segments: prefix (optional) and name (required), + // separated by a slash (/). + // Prefix must be a DNS subdomain. + // Name must be 63 characters or less, begin and end with alphanumerics, + // with dashes (-), underscores (_), dots (.), and alphanumerics between. + map annotations = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The PEM encoded x509 certificate. + string pem_certificate = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A globally unique identifier for the client. + string uid = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this resource was created. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration related to the cluster RBAC settings. +message AzureAuthorization { + // Required. Users that can perform operations as a cluster admin. A managed + // ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole + // to the users. Up to ten admin users can be provided. + // + // For more info on RBAC, see + // https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles + repeated AzureClusterUser admin_users = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Identities of a user-type subject for Azure clusters. +message AzureClusterUser { + // Required. The name of the user, e.g. `my-gcp-id@gmail.com`. + string username = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// An Anthos node pool running on Azure. +message AzureNodePool { + option (google.api.resource) = { + type: "gkemulticloud.googleapis.com/AzureNodePool" + pattern: "projects/{project}/locations/{location}/azureClusters/{azure_cluster}/azureNodePools/{azure_node_pool}" + }; + + // The lifecycle state of the node pool. + enum State { + // Not set. + STATE_UNSPECIFIED = 0; + + // The PROVISIONING state indicates the node pool is being created. + PROVISIONING = 1; + + // The RUNNING state indicates the node pool has been created and is fully + // usable. + RUNNING = 2; + + // The RECONCILING state indicates that the node pool is being reconciled. + RECONCILING = 3; + + // The STOPPING state indicates the node pool is being deleted. + STOPPING = 4; + + // The ERROR state indicates the node pool is in a broken unrecoverable + // state. + ERROR = 5; + + // The DEGRADED state indicates the node pool requires user action to + // restore full functionality. + DEGRADED = 6; + } + + // The name of this resource. + // + // Node pool names are formatted as + // `projects//locations//azureClusters//azureNodePools/`. + // + // For more details on Google Cloud resource names, + // see [Resource Names](https://cloud.google.com/apis/design/resource_names) + string name = 1; + + // Required. The Kubernetes version (e.g. `1.19.10-gke.1000`) running on this node pool. + string version = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The node configuration of the node pool. + AzureNodeConfig config = 22 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ARM ID of the subnet where the node pool VMs run. Make sure it's a + // subnet under the virtual network in the cluster configuration. + string subnet_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Autoscaler configuration for this node pool. + AzureNodePoolAutoscaling autoscaling = 4 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The current state of the node pool. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A globally unique identifier for the node pool. + string uid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, there are currently pending changes to the node + // pool. + bool reconciling = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this node pool was created. + google.protobuf.Timestamp create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this node pool was last updated. + google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows clients to perform consistent read-modify-writes + // through optimistic concurrency control. + // + // Can be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 12; + + // Optional. Annotations on the node pool. + // + // This field has the same restrictions as Kubernetes annotations. + // The total size of all keys and values combined is limited to 256k. + // Keys can have 2 segments: prefix (optional) and name (required), + // separated by a slash (/). + // Prefix must be a DNS subdomain. + // Name must be 63 characters or less, begin and end with alphanumerics, + // with dashes (-), underscores (_), dots (.), and alphanumerics between. + map annotations = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The constraint on the maximum number of pods that can be run + // simultaneously on a node in the node pool. + MaxPodsConstraint max_pods_constraint = 21 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The Azure availability zone of the nodes in this nodepool. + // + // When unspecified, it defaults to `1`. + string azure_availability_zone = 23 [(google.api.field_behavior) = OPTIONAL]; +} + +// Parameters that describe the configuration of all node machines +// on a given node pool. +message AzureNodeConfig { + // Optional. The Azure VM size name. Example: `Standard_DS2_v2`. + // + // See [Supported VM + // sizes](/anthos/clusters/docs/azure/reference/supported-vms) for options. + // + // When unspecified, it defaults to `Standard_DS2_v2`. + string vm_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration related to the root volume provisioned for each + // node pool machine. + // + // When unspecified, it defaults to a 32-GiB Azure Disk. + AzureDiskTemplate root_volume = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A set of tags to apply to all underlying Azure resources for this node + // pool. This currently only includes Virtual Machine Scale Sets. + // + // Specify at most 50 pairs containing alphanumerics, spaces, and symbols + // (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to + // 255 Unicode characters. + map tags = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The OS image type to use on node pool instances. + // Can have a value of `ubuntu`, or `windows` if the cluster enables + // the Windows node pool preview feature. + // + // When unspecified, it defaults to `ubuntu`. + string image_type = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Required. SSH configuration for how to access the node pool machines. + AzureSshConfig ssh_config = 7 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Proxy configuration for outbound HTTP(S) traffic. + AzureProxyConfig proxy_config = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration related to vm config encryption. + AzureConfigEncryption config_encryption = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The initial taints assigned to nodes of this node pool. + repeated NodeTaint taints = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The initial labels assigned to nodes of this node pool. An object + // containing a list of "key": value pairs. Example: { "name": "wrench", + // "mass": "1.3kg", "count": "3" }. + map labels = 11 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration related to Kubernetes cluster autoscaler. +// +// The Kubernetes cluster autoscaler will automatically adjust the +// size of the node pool based on the cluster load. +message AzureNodePoolAutoscaling { + // Required. Minimum number of nodes in the node pool. Must be greater than or equal to + // 1 and less than or equal to max_node_count. + int32 min_node_count = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Maximum number of nodes in the node pool. Must be greater than or equal to + // min_node_count and less than or equal to 50. + int32 max_node_count = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// AzureServerConfig contains information about a Google Cloud location, such as +// supported Azure regions and Kubernetes versions. +message AzureServerConfig { + option (google.api.resource) = { + type: "gkemulticloud.googleapis.com/AzureServerConfig" + pattern: "projects/{project}/locations/{location}/azureServerConfig" + }; + + // The `AzureServerConfig` resource name. + // + // `AzureServerConfig` names are formatted as + // `projects//locations//azureServerConfig`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string name = 1; + + // List of valid Kubernetes versions. + repeated AzureK8sVersionInfo valid_versions = 2; + + // The list of supported Azure regions. + repeated string supported_azure_regions = 3; +} + +// Information about a supported Kubernetes version. +message AzureK8sVersionInfo { + // A supported Kubernetes version (for example, `1.19.10-gke.1000`) + string version = 1; +} + +// SSH configuration for Azure resources. +message AzureSshConfig { + // Required. The SSH public key data for VMs managed by Anthos. This accepts the + // authorized_keys file format used in OpenSSH according to the sshd(8) manual + // page. + string authorized_key = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Managed Azure resources for the cluster. +// +// The values could change and be empty, depending on the state of the cluster. +message AzureClusterResources { + // Output only. The ARM ID of the cluster network security group. + string network_security_group_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ARM ID of the control plane application security group. + string control_plane_application_security_group_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/gkemulticloud/v1/azure_service.proto b/google/cloud/gkemulticloud/v1/azure_service.proto new file mode 100644 index 000000000..aed6420f7 --- /dev/null +++ b/google/cloud/gkemulticloud/v1/azure_service.proto @@ -0,0 +1,701 @@ +// 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.cloud.gkemulticloud.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/gkemulticloud/v1/azure_resources.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeMultiCloud.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud"; +option java_multiple_files = true; +option java_outer_classname = "AzureServiceProto"; +option java_package = "com.google.cloud.gkemulticloud.v1"; +option php_namespace = "Google\\Cloud\\GkeMultiCloud\\V1"; +option ruby_package = "Google::Cloud::GkeMultiCloud::V1"; + +// The AzureClusters API provides a single centrally managed service +// to create and manage Anthos clusters that run on Azure infrastructure. +service AzureClusters { + option (google.api.default_host) = "gkemulticloud.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource on a given Google Cloud project + // and region. + // + // `AzureClient` resources hold client authentication + // information needed by the Anthos Multicloud API to manage Azure resources + // on your Azure subscription on your behalf. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc CreateAzureClient(CreateAzureClientRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/azureClients" + body: "azure_client" + }; + option (google.api.method_signature) = "parent,azure_client,azure_client_id"; + option (google.longrunning.operation_info) = { + response_type: "AzureClient" + metadata_type: "OperationMetadata" + }; + } + + // Describes a specific [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource. + rpc GetAzureClient(GetAzureClientRequest) returns (AzureClient) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/azureClients/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resources on a given Google Cloud project and + // region. + rpc ListAzureClients(ListAzureClientsRequest) returns (ListAzureClientsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/azureClients" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a specific [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource. + // + // If the client is used by one or more clusters, deletion will + // fail and a `FAILED_PRECONDITION` error will be returned. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc DeleteAzureClient(DeleteAzureClientRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/azureClients/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Creates a new [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource on a given GCP project and region. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc CreateAzureCluster(CreateAzureClusterRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/azureClusters" + body: "azure_cluster" + }; + option (google.api.method_signature) = "parent,azure_cluster,azure_cluster_id"; + option (google.longrunning.operation_info) = { + response_type: "AzureCluster" + metadata_type: "OperationMetadata" + }; + } + + // Updates an [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]. + rpc UpdateAzureCluster(UpdateAzureClusterRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{azure_cluster.name=projects/*/locations/*/azureClusters/*}" + body: "azure_cluster" + }; + option (google.api.method_signature) = "azure_cluster,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AzureCluster" + metadata_type: "OperationMetadata" + }; + } + + // Describes a specific [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource. + rpc GetAzureCluster(GetAzureClusterRequest) returns (AzureCluster) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/azureClusters/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resources on a given Google Cloud project and + // region. + rpc ListAzureClusters(ListAzureClustersRequest) returns (ListAzureClustersResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/azureClusters" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a specific [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource. + // + // Fails if the cluster has one or more associated [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] + // resources. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc DeleteAzureCluster(DeleteAzureClusterRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/azureClusters/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Generates a short-lived access token to authenticate to a given + // [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource. + rpc GenerateAzureAccessToken(GenerateAzureAccessTokenRequest) returns (GenerateAzureAccessTokenResponse) { + option (google.api.http) = { + get: "/v1/{azure_cluster=projects/*/locations/*/azureClusters/*}:generateAzureAccessToken" + }; + } + + // Creates a new [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool], attached to a given [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc CreateAzureNodePool(CreateAzureNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/azureClusters/*}/azureNodePools" + body: "azure_node_pool" + }; + option (google.api.method_signature) = "parent,azure_node_pool,azure_node_pool_id"; + option (google.longrunning.operation_info) = { + response_type: "AzureNodePool" + metadata_type: "OperationMetadata" + }; + } + + // Updates an [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool]. + rpc UpdateAzureNodePool(UpdateAzureNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{azure_node_pool.name=projects/*/locations/*/azureClusters/*/azureNodePools/*}" + body: "azure_node_pool" + }; + option (google.api.method_signature) = "azure_node_pool,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AzureNodePool" + metadata_type: "OperationMetadata" + }; + } + + // Describes a specific [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource. + rpc GetAzureNodePool(GetAzureNodePoolRequest) returns (AzureNodePool) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/azureClusters/*/azureNodePools/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resources on a given [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]. + rpc ListAzureNodePools(ListAzureNodePoolsRequest) returns (ListAzureNodePoolsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/azureClusters/*}/azureNodePools" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a specific [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource. + // + // If successful, the response contains a newly created + // [Operation][google.longrunning.Operation] resource that can be + // described to track the status of the operation. + rpc DeleteAzureNodePool(DeleteAzureNodePoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/azureClusters/*/azureNodePools/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Returns information, such as supported Azure regions and Kubernetes + // versions, on a given Google Cloud location. + rpc GetAzureServerConfig(GetAzureServerConfigRequest) returns (AzureServerConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/azureServerConfig}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for `AzureClusters.CreateAzureCluster` method. +message CreateAzureClusterRequest { + // Required. The parent location where this [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource + // will be created. + // + // Location names are formatted as `projects//locations/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AzureCluster" + } + ]; + + // Required. The specification of the [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] to create. + AzureCluster azure_cluster = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A client provided ID the resource. Must be unique within the parent + // resource. + // + // The provided ID will be part of the [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] + // resource name formatted as + // `projects//locations//azureClusters/`. + // + // Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 40 characters. + string azure_cluster_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but do not actually create the cluster. + bool validate_only = 4; +} + +// Request message for `AzureClusters.UpdateAzureCluster` method. +message UpdateAzureClusterRequest { + // Required. The [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource to update. + AzureCluster azure_cluster = 1 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but do not actually update the cluster. + bool validate_only = 2; + + // Required. Mask of fields to update. At least one path must be supplied in + // this field. The elements of the repeated paths field can only include these + // fields from [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]: + // + // * `description`. + // * `annotations`. + // * `azureClient`. + // * `control_plane.version`. + // * `control_plane.vm_size`. + // * `authorization.admin_users`. + // * `control_plane.root_volume.size_gib`. + // * `logging_config` + google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for `AzureClusters.GetAzureCluster` method. +message GetAzureClusterRequest { + // Required. The name of the [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource to describe. + // + // `AzureCluster` names are formatted as + // `projects//locations//azureClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AzureCluster" + } + ]; +} + +// Request message for `AzureClusters.ListAzureClusters` method. +message ListAzureClustersRequest { + // Required. The parent location which owns this collection of + // [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resources. + // + // Location names are formatted as `projects//locations/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AzureCluster" + } + ]; + + // The maximum number of items to return. + // + // If not specified, a default value of 50 will be used by the service. + // Regardless of the pageSize value, the response can include a partial list + // and a caller should only rely on response's + // [nextPageToken][google.cloud.gkemulticloud.v1.ListAzureClustersResponse.next_page_token] to determine if + // there are more instances left to be queried. + int32 page_size = 2; + + // The `nextPageToken` value returned from a previous + // [azureClusters.list][google.cloud.gkemulticloud.v1.AzureClusters.ListAzureClusters] request, if any. + string page_token = 3; +} + +// Response message for `AzureClusters.ListAzureClusters` method. +message ListAzureClustersResponse { + // A list of [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resources in the specified GCP + // project and region region. + repeated AzureCluster azure_clusters = 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; +} + +// Request message for `Clusters.DeleteAzureCluster` method. +message DeleteAzureClusterRequest { + // Required. The resource name the [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] to delete. + // + // `AzureCluster` names are formatted as + // `projects//locations//azureClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AzureCluster" + } + ]; + + // If set to true, and the [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource is not found, + // the request will succeed but no action will be taken on the server and a + // completed [Operation][google.longrunning.Operation] will be returned. + // + // Useful for idempotent deletion. + bool allow_missing = 2; + + // If set, only validate the request, but do not actually delete the resource. + bool validate_only = 3; + + // The current etag of the [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]. + // + // Allows clients to perform deletions through optimistic concurrency control. + // + // 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; +} + +// Response message for `AzureClusters.CreateAzureNodePool` method. +message CreateAzureNodePoolRequest { + // Required. The [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource where this node pool will be created. + // + // Location names are formatted as `projects//locations/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AzureNodePool" + } + ]; + + // Required. The specification of the [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] to create. + AzureNodePool azure_node_pool = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A client provided ID the resource. Must be unique within the parent + // resource. + // + // The provided ID will be part of the [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] + // resource name formatted as + // `projects//locations//azureClusters//azureNodePools/`. + // + // Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 40 characters. + string azure_node_pool_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but do not actually create the node + // pool. + bool validate_only = 4; +} + +// Request message for `AzureClusters.UpdateAzureNodePool` method. +message UpdateAzureNodePoolRequest { + // Required. The [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource to update. + AzureNodePool azure_node_pool = 1 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but don't actually update the node pool. + bool validate_only = 2; + + // Required. Mask of fields to update. At least one path must be supplied in + // this field. The elements of the repeated paths field can only include these + // fields from [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool]: + // + // *. `annotations`. + // * `version`. + // * `autoscaling.min_node_count`. + // * `autoscaling.max_node_count`. + // * `config.vm_size`. + google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for `AzureClusters.GetAzureNodePool` method. +message GetAzureNodePoolRequest { + // Required. The name of the [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource to describe. + // + // `AzureNodePool` names are formatted as + // `projects//locations//azureClusters//azureNodePools/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AzureNodePool" + } + ]; +} + +// Request message for `AzureClusters.ListAzureNodePools` method. +message ListAzureNodePoolsRequest { + // Required. The parent `AzureCluster` which owns this collection of + // [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resources. + // + // `AzureCluster` names are formatted as + // `projects//locations//azureClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AzureNodePool" + } + ]; + + // The maximum number of items to return. + // + // If not specified, a default value of 50 will be used by the service. + // Regardless of the pageSize value, the response can include a partial list + // and a caller should only rely on response's + // [nextPageToken][google.cloud.gkemulticloud.v1.ListAzureNodePoolsResponse.next_page_token] to determine if + // there are more instances left to be queried. + int32 page_size = 2; + + // The `nextPageToken` value returned from a previous + // [azureNodePools.list][google.cloud.gkemulticloud.v1.AzureClusters.ListAzureNodePools] request, if any. + string page_token = 3; +} + +// Response message for `AzureClusters.ListAzureNodePools` method. +message ListAzureNodePoolsResponse { + // A list of [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resources in the specified `AzureCluster`. + repeated AzureNodePool azure_node_pools = 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; +} + +// Delete message for `AzureClusters.DeleteNodePool` method. +message DeleteAzureNodePoolRequest { + // Required. The resource name the [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] to delete. + // + // `AzureNodePool` names are formatted as + // `projects//locations//azureClusters//azureNodePools/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AzureNodePool" + } + ]; + + // If set, only validate the request, but do not actually delete the node + // pool. + bool validate_only = 2; + + // If set to true, and the [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource is not found, + // the request will succeed but no action will be taken on the server and a + // completed [Operation][google.longrunning.Operation] will be returned. + // + // Useful for idempotent deletion. + bool allow_missing = 3; + + // The current ETag of the [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool]. + // + // Allows clients to perform deletions through optimistic concurrency control. + // + // 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; +} + +// GetAzureServerConfigRequest gets the server config of GKE cluster on Azure. +message GetAzureServerConfigRequest { + // Required. The name of the [AzureServerConfig][google.cloud.gkemulticloud.v1.AzureServerConfig] resource to describe. + // + // `AzureServerConfig` names are formatted as + // `projects//locations//azureServerConfig`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AzureServerConfig" + } + ]; +} + +// Request message for `AzureClusters.CreateAzureClient` method. +message CreateAzureClientRequest { + // Required. The parent location where this [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource + // will be created. + // + // Location names are formatted as `projects//locations/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AzureClient" + } + ]; + + // Required. The specification of the [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] to create. + AzureClient azure_client = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A client provided ID the resource. Must be unique within the parent + // resource. + // + // The provided ID will be part of the [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] + // resource name formatted as + // `projects//locations//azureClients/`. + // + // Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 40 characters. + string azure_client_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // If set, only validate the request, but do not actually create the client. + bool validate_only = 3; +} + +// Request message for `AzureClusters.GetAzureClient` method. +message GetAzureClientRequest { + // Required. The name of the [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource to describe. + // + // [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] names are formatted as + // `projects//locations//azureClients/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AzureClient" + } + ]; +} + +// Request message for `AzureClusters.ListAzureClients` method. +message ListAzureClientsRequest { + // Required. The parent location which owns this collection of + // [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resources. + // + // Location names are formatted as `projects//locations/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on GCP resource names. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gkemulticloud.googleapis.com/AzureClient" + } + ]; + + // The maximum number of items to return. + // + // If not specified, a default value of 50 will be used by the service. + // Regardless of the pageSize value, the response can include a partial list + // and a caller should only rely on response's + // [nextPageToken][google.cloud.gkemulticloud.v1.ListAzureClientsResponse.next_page_token] to determine if + // there are more instances left to be queried. + int32 page_size = 2; + + // The `nextPageToken` value returned from a previous + // [azureClients.list][google.cloud.gkemulticloud.v1.AzureClusters.ListAzureClients] request, if any. + string page_token = 3; +} + +// Response message for `AzureClusters.ListAzureClients` method. +message ListAzureClientsResponse { + // A list of [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resources in the specified Google Cloud + // project and region region. + repeated AzureClient azure_clients = 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; +} + +// Request message for `AzureClusters.DeleteAzureClient` method. +message DeleteAzureClientRequest { + // Required. The resource name the [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] to delete. + // + // [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] names are formatted as + // `projects//locations//azureClients/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AzureClient" + } + ]; + + // If set to true, and the [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource is not found, + // the request will succeed but no action will be taken on the server and a + // completed [Operation][google.longrunning.Operation] will be returned. + // + // Useful for idempotent deletion. + bool allow_missing = 2; + + // If set, only validate the request, but do not actually delete the resource. + bool validate_only = 3; +} + +// Request message for `AzureClusters.GenerateAzureAccessToken` method. +message GenerateAzureAccessTokenRequest { + // Required. The name of the [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource to authenticate to. + // + // `AzureCluster` names are formatted as + // `projects//locations//AzureClusters/`. + // + // See [Resource Names](https://cloud.google.com/apis/design/resource_names) + // for more details on Google Cloud resource names. + string azure_cluster = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkemulticloud.googleapis.com/AzureCluster" + } + ]; +} + +// Response message for `AzureClusters.GenerateAzureAccessToken` method. +message GenerateAzureAccessTokenResponse { + // Output only. Access token to authenticate to k8s api-server. + string access_token = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp at which the token will expire. + google.protobuf.Timestamp expiration_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/gkemulticloud/v1/common_resources.proto b/google/cloud/gkemulticloud/v1/common_resources.proto new file mode 100644 index 000000000..2a8e1bcd2 --- /dev/null +++ b/google/cloud/gkemulticloud/v1/common_resources.proto @@ -0,0 +1,145 @@ +// 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.cloud.gkemulticloud.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GkeMultiCloud.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud"; +option java_multiple_files = true; +option java_outer_classname = "CommonResourcesProto"; +option java_package = "com.google.cloud.gkemulticloud.v1"; +option php_namespace = "Google\\Cloud\\GkeMultiCloud\\V1"; +option ruby_package = "Google::Cloud::GkeMultiCloud::V1"; + +// Workload Identity settings. +message WorkloadIdentityConfig { + // The OIDC issuer URL for this cluster. + string issuer_uri = 1; + + // The Workload Identity Pool associated to the cluster. + string workload_pool = 2; + + // The ID of the OIDC Identity Provider (IdP) associated to the Workload + // Identity Pool. + string identity_provider = 3; +} + +// Constraints applied to pods. +message MaxPodsConstraint { + // Required. The maximum number of pods to schedule on a single node. + int64 max_pods_per_node = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata about a long-running operation. +message OperationMetadata { + // Output only. The time at which this operation was created. + google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this operation was completed. + google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the resource associated to this operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_detail = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of any error that occurred during the operation. + string error_detail = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The taint content for the node taint. +message NodeTaint { + // The taint effect. + enum Effect { + // Not set. + EFFECT_UNSPECIFIED = 0; + + // Do not allow new pods to schedule onto the node unless they tolerate the + // taint, but allow all pods submitted to Kubelet without going through the + // scheduler to start, and allow all already-running pods to continue + // running. Enforced by the scheduler. + NO_SCHEDULE = 1; + + // Like TaintEffectNoSchedule, but the scheduler tries not to schedule + // new pods onto the node, rather than prohibiting new pods from scheduling + // onto the node entirely. Enforced by the scheduler. + PREFER_NO_SCHEDULE = 2; + + // Evict any already-running pods that do not tolerate the taint. + // Currently enforced by NodeController. + NO_EXECUTE = 3; + } + + // Required. Key for the taint. + string key = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Value for the taint. + string value = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The taint effect. + Effect effect = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Fleet related configuration. +// +// Fleets are a Google Cloud concept for logically organizing clusters, +// letting you use and manage multi-cluster capabilities and apply +// consistent policies across your systems. +// +// See [Anthos +// Fleets](https://cloud.google.com/anthos/multicluster-management/fleets) for +// more details on Anthos multi-cluster capabilities using Fleets. +message Fleet { + // 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. + // + // Membership names are formatted as + // `projects//locations/global/membership/`. + string membership = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Parameters that describe the Logging configuration in a cluster. +message LoggingConfig { + // The configuration of the logging components; + LoggingComponentConfig component_config = 1; +} + +// Parameters that describe the Logging component configuration in a cluster. +message LoggingComponentConfig { + // The components of the logging configuration; + enum Component { + // No component is specified + COMPONENT_UNSPECIFIED = 0; + + // This indicates that system logging components is enabled. + SYSTEM_COMPONENTS = 1; + + // This indicates that user workload logging component is enabled. + WORKLOADS = 2; + } + + // The components to be enabled. + repeated Component enable_components = 1; +} diff --git a/google/cloud/gkemulticloud/v1/gkemulticloud_grpc_service_config.json b/google/cloud/gkemulticloud/v1/gkemulticloud_grpc_service_config.json new file mode 100644 index 000000000..5157d3fa7 --- /dev/null +++ b/google/cloud/gkemulticloud/v1/gkemulticloud_grpc_service_config.json @@ -0,0 +1,131 @@ +{ + "methodConfig": [{ + "name": [ + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "GetAwsCluster" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "ListAwsClusters" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "GetAwsNodePool" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "ListAwsNodePools" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "GenerateAwsAccessToken" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "GetAwsServerConfig" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "GetAzureClient" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "ListAzureClients" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "GetAzureCluster" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "ListAzureClusters" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "GetAzureNodePool" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "ListAzureNodePools" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "GenerateAzureAccessToken" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "GetAzureServerConfig" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "CreateAwsCluster" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "DeleteAwsCluster" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "UpdateAwsCluster" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "CreateAwsNodePool" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "DeleteAwsNodePool" + }, + { + "service": "google.cloud.gkemulticloud.v1.AwsClusters", + "method": "UpdateAwsNodePool" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "CreateAzureClient" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "DeleteAzureClient" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "CreateAzureCluster" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "DeleteAzureCluster" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "UpdateAzureCluster" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "CreateAzureNodePool" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "DeleteAzureNodePool" + }, + { + "service": "google.cloud.gkemulticloud.v1.AzureClusters", + "method": "UpdateAzureNodePool" + } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/gkemulticloud/v1/gkemulticloud_v1.yaml b/google/cloud/gkemulticloud/v1/gkemulticloud_v1.yaml new file mode 100644 index 000000000..0595d7246 --- /dev/null +++ b/google/cloud/gkemulticloud/v1/gkemulticloud_v1.yaml @@ -0,0 +1,59 @@ +type: google.api.Service +config_version: 3 +name: gkemulticloud.googleapis.com +title: Anthos Multi-Cloud API + +apis: +- name: google.cloud.gkemulticloud.v1.AwsClusters +- name: google.cloud.gkemulticloud.v1.AzureClusters + +types: +- name: google.cloud.gkemulticloud.v1.OperationMetadata + +documentation: + summary: |- + Anthos Multi-Cloud provides a way to manage Kubernetes clusters that run on + AWS and Azure infrastructure using the Anthos Multi-Cloud API. + Combined with Connect, you can manage Kubernetes clusters on Google Cloud, + AWS, and Azure from the Google Cloud Console. + + When you create a cluster with Anthos Multi-Cloud, Google creates the + resources needed and brings up a cluster on your behalf. + You can deploy workloads with the Anthos Multi-Cloud API or the + gcloud and kubectl command-line tools. + +backend: + rules: + - selector: 'google.cloud.gkemulticloud.v1.AwsClusters.*' + deadline: 10.0 + - selector: 'google.cloud.gkemulticloud.v1.AzureClusters.*' + deadline: 10.0 + - selector: 'google.longrunning.Operations.*' + deadline: 10.0 + +http: + rules: + - 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.gkemulticloud.v1.AwsClusters.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.gkemulticloud.v1.AzureClusters.*' + 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/google/cloud/gsuiteaddons/v1/BUILD.bazel b/google/cloud/gsuiteaddons/v1/BUILD.bazel index 22a2e6a06..82f5aba24 100644 --- a/google/cloud/gsuiteaddons/v1/BUILD.bazel +++ b/google/cloud/gsuiteaddons/v1/BUILD.bazel @@ -37,8 +37,9 @@ load( "proto_library_with_info", "py_gapic_assembly_pkg", "py_gapic_library", - "ruby_gapic_assembly_pkg", + "py_test", "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library", ) @@ -94,6 +95,7 @@ java_gapic_library( test_deps = [ ":gsuiteaddons_java_grpc", ], + transport = "grpc+rest", deps = [ ":gsuiteaddons_java_proto", ], @@ -102,6 +104,7 @@ java_gapic_library( java_gapic_test( name = "gsuiteaddons_java_gapic_test_suite", test_classes = [ + "com.google.cloud.gsuiteaddons.v1.GSuiteAddOnsClientHttpJsonTest", "com.google.cloud.gsuiteaddons.v1.GSuiteAddOnsClientTest", ], runtime_deps = [":gsuiteaddons_java_gapic_test"], @@ -110,6 +113,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-gsuiteaddons-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":gsuiteaddons_java_gapic", ":gsuiteaddons_java_grpc", @@ -141,6 +146,7 @@ go_gapic_library( grpc_service_config = "gsuiteaddons_grpc_service_config.json", importpath = "cloud.google.com/go/gsuiteaddons/apiv1;gsuiteaddons", service_yaml = "gsuiteaddons_v1.yaml", + transport = "grpc+rest", deps = [ ":gsuiteaddons_go_proto", ], @@ -174,7 +180,27 @@ py_gapic_library( "warehouse-package-name=google-cloud-workspace-add-ons", "python-gapic-namespace=google.cloud", "python-gapic-name=workspace_add_ons", - ] + ], + transport = "grpc", + deps = [ + "//google/apps/script/type:type_py_original_proto", + "//google/apps/script/type/calendar:calendar_py_original_proto", + "//google/apps/script/type/docs:docs_py_original_proto", + "//google/apps/script/type/drive:drive_py_original_proto", + "//google/apps/script/type/gmail:gmail_py_original_proto", + "//google/apps/script/type/sheets:sheets_py_original_proto", + "//google/apps/script/type/slides:slides_py_original_proto", + ], +) + +py_test( + name = "gsuiteaddons_py_gapic_test", + srcs = [ + "gsuiteaddons_py_gapic_pytest.py", + "gsuiteaddons_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gsuiteaddons_py_gapic"], ) # Open Source Packages @@ -255,7 +281,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "gsuiteaddons_ruby_gapic", - srcs = [":gsuiteaddons_proto_with_info",], + srcs = [":gsuiteaddons_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-gsuite_add_ons-v1", "ruby-cloud-gem-namespace=Google::Cloud::GSuiteAddOns::V1", @@ -301,6 +327,7 @@ csharp_gapic_library( srcs = [":gsuiteaddons_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "gsuiteaddons_grpc_service_config.json", + service_yaml = "gsuiteaddons_v1.yaml", deps = [ ":gsuiteaddons_csharp_grpc", ":gsuiteaddons_csharp_proto", diff --git a/google/cloud/healthcare/logging/BUILD.bazel b/google/cloud/healthcare/logging/BUILD.bazel new file mode 100644 index 000000000..8b31872e9 --- /dev/null +++ b/google/cloud/healthcare/logging/BUILD.bazel @@ -0,0 +1,182 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "annotation.proto", + "consent.proto", + "deid.proto", + "dicom.proto", + "fhir.proto", + "hl7v2.proto", + ], + deps = [ + "//google/rpc:status_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/healthcare/logging", + protos = [":logging_proto"], + deps = [ + "//google/rpc:status_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "//google/rpc:status_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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/healthcare/logging/annotation.proto b/google/cloud/healthcare/logging/annotation.proto new file mode 100644 index 000000000..6cd6f2e3c --- /dev/null +++ b/google/cloud/healthcare/logging/annotation.proto @@ -0,0 +1,62 @@ +// 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.cloud.healthcare.logging; + +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/healthcare/logging;logging"; +option java_package = "com.google.cloud.healthcare.logging"; + +// A log entry for an Annotation import long-running operation. +message ImportAnnotationLogEntry { + // The source in Cloud Storage. For example, + // `gs://{bucket_id}/{path/to/file}`. + string source = 1; + + // The error code and message. + google.rpc.Status error = 2; +} + +// A log entry for an Annotation export long-running operation. +message ExportAnnotationLogEntry { + // The destination in Cloud Storage or BigQuery. + string destination = 1; + + // The annotation record being exported. For example: + // `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{store_id}/annotations/{annotation_id}`. + string annotation_name = 2; + + // The error code and message. + google.rpc.Status error = 3; +} + +// A log entry for an Annotation evaluate long-running operation. +message EvaluateAnnotationLogEntry { + // The report destination in BigQuery. + string destination = 1; + + // The eval annotation record being evaluated. For example: + // `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{eval_store_id}/annotations/{eval_annotation_id}`. + string eval_annotation_name = 2; + + // The golden annotation record being evaluated. For example: + // `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{golden_store_id}/annotations/{golden_annotation_id}`. + string golden_annotation_name = 3; + + // The error code and message. + google.rpc.Status error = 4; +} diff --git a/google/cloud/healthcare/logging/consent.proto b/google/cloud/healthcare/logging/consent.proto new file mode 100644 index 000000000..b31fa4ce8 --- /dev/null +++ b/google/cloud/healthcare/logging/consent.proto @@ -0,0 +1,43 @@ +// 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.cloud.healthcare.logging; + +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/healthcare/logging;logging"; +option java_multiple_files = true; +option java_outer_classname = "ConsentProto"; +option java_package = "com.google.cloud.healthcare.logging"; + +// A log entry for a Consent store QueryAccessibleData long-running operation. +message QueryAccessibleDataLogEntry { + // The resource being processed. + string resource_name = 1; + + // The error code and message. + google.rpc.Status error = 2; +} + +// A log entry for a User Data Mapping indexing notification. +message ConsentUserDataMappingLogEntry { + // The User Data Mapping being indexed (for example, + // `projects/{projectId}/locations/{locationId}/datasets/{datasetId}/consentStores/{storeId}/userDataMappings/{messageId}`). + string resource_name = 1; + + // The error code and message. + google.rpc.Status error = 2; +} diff --git a/google/cloud/healthcare/logging/deid.proto b/google/cloud/healthcare/logging/deid.proto new file mode 100644 index 000000000..241606f99 --- /dev/null +++ b/google/cloud/healthcare/logging/deid.proto @@ -0,0 +1,31 @@ +// 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.cloud.healthcare.logging; + +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/healthcare/logging;logging"; +option java_package = "com.google.cloud.healthcare.logging"; + +// A log entry for a de-identification long-running operation. +message DeidentifyLogEntry { + // The resource being de-identified. + string resource_name = 1; + + // The error code and message. + google.rpc.Status error = 2; +} diff --git a/google/cloud/healthcare/logging/dicom.proto b/google/cloud/healthcare/logging/dicom.proto new file mode 100644 index 000000000..b3306636f --- /dev/null +++ b/google/cloud/healthcare/logging/dicom.proto @@ -0,0 +1,65 @@ +// 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.cloud.healthcare.logging; + +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/healthcare/logging;logging"; +option java_package = "com.google.cloud.healthcare.logging"; + +// A log entry for a DICOM import long-running operation. +message ImportDicomLogEntry { + // The source file, in the format `gs://{bucket-id}/{path/to/file}`. + string source = 1; + + // The error code and message. + google.rpc.Status error = 2; +} + +// A log entry for a DICOM export long-running operation. +message ExportDicomLogEntry { + // The DICOM resource being exported. + string resource_name = 1; + + // The error code and message. + google.rpc.Status error = 2; +} + +// A log entry for a DICOM store Pub/Sub notification. +message DicomNotificationLogEntry { + // The DICOM resource being created. + string resource_name = 1; + + // The Pub/Sub topic that the notification is published on. + string pubsub_topic = 2; + + // The error code and message. + google.rpc.Status error = 3; +} + +// A log entry for a DICOM streaming export notification. +message DicomStreamLogEntry { + // The DICOM resource being exported. + string resource_name = 1; + + // The destination in BigQuery, in the format + // `bq://{projectId}.{bqDatasetId}.{bqTableId}`. + string destination = 2; + + // The error code and message. + google.rpc.Status error = 3; +} diff --git a/google/cloud/healthcare/logging/fhir.proto b/google/cloud/healthcare/logging/fhir.proto new file mode 100644 index 000000000..b92846d81 --- /dev/null +++ b/google/cloud/healthcare/logging/fhir.proto @@ -0,0 +1,101 @@ +// 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.cloud.healthcare.logging; + +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/healthcare/logging;logging"; +option java_package = "com.google.cloud.healthcare.logging"; + +// A log entry for a FHIR import long-running operation. +message ImportFhirLogEntry { + // The source in Cloud Storage (for example, + // `gs://{bucket_id}/{path/to/file}`) or BigQuery (for example, + // `bq://{projectId}.{bqDatasetId}`). + string source = 1; + + // The ID in the source file of the FHIR resource being imported. + string resource_id = 2; + + // The error code and message. + google.rpc.Status error = 3; +} + +// A log entry for a FHIR export long-running operation. +message ExportFhirLogEntry { + // The destination in Cloud Storage (for example, + // `gs://{bucket_id}/{path/to/file}`) or BigQuery (for example, + // `bq://{projectId}.{bqDatasetId}`). + string destination = 1; + + // The resource being exported (e.g. + // `projects/{projectId}/locations/{locationId}/datasets/{datasetId}/fhirStores/{fhirStoreId}/fhir/Patient/{patientId}`). + string resource_name = 3; + + // The error code and message. + google.rpc.Status error = 4; +} + +// A log entry for a FHIR configure search long-running operation +message FhirConfigureSearchLogEntry { + // The ID of the resource being reindexed. + string resource_id = 1; + + // The error code and message. + google.rpc.Status error = 2; +} + +// A log entry for a FHIR store Pub/Sub notification. +message FhirNotificationLogEntry { + // The resource being changed (for example, + // `projects/{projectId}/locations/{locationId}/datasets/{datasetId}/fhirStores/{fhirStoreId}/fhir/Patient/{patientId}`). + string resource_name = 1; + + // The Pub/Sub topic that the notification is published on. + string pubsub_topic = 2; + + // The error code and message. + google.rpc.Status error = 3; +} + +// A log entry for a FHIR streaming export notification. +message FhirStreamLogEntry { + // The resource being changed (for example, + // `projects/{projectId}/locations/{locationId}/datasets/{datasetId}/fhirStores/{fhirStoreId}/fhir/Patient/{patientId}`). + string resource_name = 1; + + // The destination in BigQuery (for example, + // `bq://{projectId}.{bqDatasetId}.{bqTableId}`). + string destination = 2; + + // The error code and message. + google.rpc.Status error = 3; +} + +// A log entry for a FHIR streaming deidentification notification. +message FhirDeidentifyStreamToStoreLogEntry { + // The resource that changed (for example, + // `projects/{projectId}/locations/{locationId}/datasets/{datasetId}/fhirStores/{fhirStoreId}/fhir/Patient/{patientId}`). + string resource_name = 1; + + // The destination FHIR store name. (for example, + // `projects/{projectId}/locations/{locationId}/datasets/{datasetId}/fhirStores/{fhirStoreId}`). + string destination = 2; + + // The error code and message. + google.rpc.Status error = 3; +} diff --git a/google/cloud/healthcare/logging/hl7v2.proto b/google/cloud/healthcare/logging/hl7v2.proto new file mode 100644 index 000000000..4dbec42df --- /dev/null +++ b/google/cloud/healthcare/logging/hl7v2.proto @@ -0,0 +1,45 @@ +// 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.cloud.healthcare.logging; + +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/healthcare/logging;logging"; +option java_package = "com.google.cloud.healthcare.logging"; + +// A log entry for a HL7v2 import long-running operation. +message ImportHl7V2LogEntry { + // The source in Cloud Storage (for example, + // `gs://{bucket_id}/{path/to/file}`). + string source = 1; + + // The error code and message. + google.rpc.Status error = 2; +} + +// A log entry for a HL7v2 store Pub/Sub notification. +message Hl7V2NotificationLogEntry { + // The HL7v2 message being created (for example, + // `projects/{projectId}/locations/{locationId}/datasets/{datasetId}/hl7V2Stores/{hl7v2StoreId}/messages/{hl7v2MessageId}`). + string resource_name = 1; + + // The Pub/Sub topic that the notification is published on. + string pubsub_topic = 2; + + // The error code and message. + google.rpc.Status error = 3; +} diff --git a/google/cloud/iap/v1/BUILD.bazel b/google/cloud/iap/v1/BUILD.bazel index f13f45380..576c39863 100644 --- a/google/cloud/iap/v1/BUILD.bazel +++ b/google/cloud/iap/v1/BUILD.bazel @@ -27,8 +27,10 @@ proto_library( "//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//:wrappers_proto", @@ -69,13 +71,17 @@ java_grpc_library( java_gapic_library( name = "iap_java_gapic", srcs = [":iap_proto_with_info"], + gapic_yaml = None, grpc_service_config = "iap_grpc_service_config.json", + service_yaml = "iap_v1.yaml", test_deps = [ ":iap_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":iap_java_proto", + "//google/api:api_java_proto", "//google/iam/v1:iam_java_proto", ], ) @@ -83,7 +89,9 @@ java_gapic_library( java_gapic_test( name = "iap_java_gapic_test_suite", test_classes = [ + "com.google.cloud.iap.v1.IdentityAwareProxyAdminServiceClientHttpJsonTest", "com.google.cloud.iap.v1.IdentityAwareProxyAdminServiceClientTest", + "com.google.cloud.iap.v1.IdentityAwareProxyOAuthServiceClientHttpJsonTest", "com.google.cloud.iap.v1.IdentityAwareProxyOAuthServiceClientTest", ], runtime_deps = [":iap_java_gapic_test"], @@ -92,6 +100,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-iap-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":iap_java_gapic", ":iap_java_grpc", @@ -129,9 +139,11 @@ go_gapic_library( importpath = "cloud.google.com/go/iap/apiv1;iap", metadata = True, service_yaml = "iap_v1.yaml", + transport = "grpc+rest", deps = [ ":iap_go_proto", "//google/iam/v1:iam_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -160,12 +172,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "iap_py_gapic", srcs = [":iap_proto"], grpc_service_config = "iap_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "iap_py_gapic_test", + srcs = [ + "iap_py_gapic_pytest.py", + "iap_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":iap_py_gapic"], ) # Open Source Packages @@ -273,11 +300,11 @@ ruby_cloud_gapic_library( name = "iap_ruby_gapic", srcs = [":iap_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-iap-v1", - "ruby-cloud-env-prefix=IAP", - "ruby-cloud-product-url=https://cloud.google.com/iap/", "ruby-cloud-api-id=iap.googleapis.com", "ruby-cloud-api-shortname=iap", + "ruby-cloud-env-prefix=IAP", + "ruby-cloud-gem-name=google-cloud-iap-v1", + "ruby-cloud-product-url=https://cloud.google.com/iap/", ], grpc_service_config = "iap_grpc_service_config.json", ruby_cloud_description = "IAP lets you establish a central authorization layer for applications accessed by HTTPS, so you can use an application-level access control model instead of relying on network-level firewalls.", @@ -325,6 +352,7 @@ csharp_gapic_library( srcs = [":iap_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "iap_grpc_service_config.json", + service_yaml = "iap_v1.yaml", deps = [ ":iap_csharp_grpc", ":iap_csharp_proto", diff --git a/google/cloud/iap/v1/iap_v1.yaml b/google/cloud/iap/v1/iap_v1.yaml index cab2de26d..babbf04fe 100644 --- a/google/cloud/iap/v1/iap_v1.yaml +++ b/google/cloud/iap/v1/iap_v1.yaml @@ -6,7 +6,6 @@ title: Cloud Identity-Aware Proxy API apis: - name: google.cloud.iap.v1.IdentityAwareProxyAdminService - name: google.cloud.iap.v1.IdentityAwareProxyOAuthService -- name: google.cloud.iap.v1.IdentityAwareProxyRedirectService documentation: summary: Controls access to cloud applications running on Google Cloud Platform. diff --git a/google/cloud/iap/v1/service.proto b/google/cloud/iap/v1/service.proto index c711879aa..cb28b24c6 100644 --- a/google/cloud/iap/v1/service.proto +++ b/google/cloud/iap/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,13 +17,15 @@ syntax = "proto3"; package google.cloud.iap.v1; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.Iap.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/iap/v1;iap"; @@ -31,6 +33,10 @@ option java_multiple_files = true; option java_package = "com.google.cloud.iap.v1"; option php_namespace = "Google\\Cloud\\Iap\\V1"; option ruby_package = "Google::Cloud::Iap::V1"; +option (google.api.resource_definition) = { + type: "iap.googleapis.com/TunnelLocation" + pattern: "projects/{project}/iap_tunnel/locations/{location}" +}; // APIs for Identity-Aware Proxy Admin configurations. service IdentityAwareProxyAdminService { @@ -85,51 +91,169 @@ service IdentityAwareProxyAdminService { body: "iap_settings" }; } + + // Lists the existing TunnelDestGroups. To group across all locations, use a + // `-` as the location ID. For example: + // `/v1/projects/123/iap_tunnel/locations/-/destGroups` + rpc ListTunnelDestGroups(ListTunnelDestGroupsRequest) returns (ListTunnelDestGroupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/iap_tunnel/locations/*}/destGroups" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a new TunnelDestGroup. + rpc CreateTunnelDestGroup(CreateTunnelDestGroupRequest) returns (TunnelDestGroup) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/iap_tunnel/locations/*}/destGroups" + body: "tunnel_dest_group" + }; + option (google.api.method_signature) = "parent,tunnel_dest_group,tunnel_dest_group_id"; + } + + // Retrieves an existing TunnelDestGroup. + rpc GetTunnelDestGroup(GetTunnelDestGroupRequest) returns (TunnelDestGroup) { + option (google.api.http) = { + get: "/v1/{name=projects/*/iap_tunnel/locations/*/destGroups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a TunnelDestGroup. + rpc DeleteTunnelDestGroup(DeleteTunnelDestGroupRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/iap_tunnel/locations/*/destGroups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a TunnelDestGroup. + rpc UpdateTunnelDestGroup(UpdateTunnelDestGroupRequest) returns (TunnelDestGroup) { + option (google.api.http) = { + patch: "/v1/{tunnel_dest_group.name=projects/*/iap_tunnel/locations/*/destGroups/*}" + body: "tunnel_dest_group" + }; + option (google.api.method_signature) = "tunnel_dest_group,update_mask"; + } } -// The request sent to GetIapSettings. -message GetIapSettingsRequest { - // Required. The resource name for which to retrieve the settings. - // Authorization: Requires the `getSettings` permission for the associated - // resource. - string name = 1 [(google.api.field_behavior) = REQUIRED]; +// The request to ListTunnelDestGroups. +message ListTunnelDestGroupsRequest { + // Required. Google Cloud Project ID and location. + // In the following format: + // `projects/{project_number/id}/iap_tunnel/locations/{location}`. + // A `-` can be used for the location to group across all locations. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "iap.googleapis.com/TunnelLocation" + } + ]; + + // The maximum number of groups to return. The service might return fewer than + // this value. + // If unspecified, at most 100 groups are returned. + // The maximum value is 1000; values above 1000 are coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListTunnelDestGroups` + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListTunnelDestGroups` must match the call that provided the page + // token. + string page_token = 3; } -// The request sent to UpdateIapSettings. -message UpdateIapSettingsRequest { - // Required. The new values for the IAP settings to be updated. - // Authorization: Requires the `updateSettings` permission for the associated - // resource. - IapSettings iap_settings = 1 [(google.api.field_behavior) = REQUIRED]; +// The response from ListTunnelDestGroups. +message ListTunnelDestGroupsResponse { + // TunnelDestGroup existing in the project. + repeated TunnelDestGroup tunnel_dest_groups = 1; - // The field mask specifying which IAP settings should be updated. - // If omitted, the all of the settings are updated. See - // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask - google.protobuf.FieldMask update_mask = 2; + // A token that you can send as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; } -// The IAP configurable settings. -message IapSettings { - // Required. The resource name of the IAP protected resource. - string name = 1 [(google.api.field_behavior) = REQUIRED]; +// The request to CreateTunnelDestGroup. +message CreateTunnelDestGroupRequest { + // Required. Google Cloud Project ID and location. + // In the following format: + // `projects/{project_number/id}/iap_tunnel/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "iap.googleapis.com/TunnelDestGroup" + } + ]; + + // Required. The TunnelDestGroup to create. + TunnelDestGroup tunnel_dest_group = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the TunnelDestGroup, which becomes the final component of + // the resource name. + // + // This value must be 4-63 characters, and valid characters + // are `[a-z][0-9]-`. + string tunnel_dest_group_id = 3 [(google.api.field_behavior) = REQUIRED]; +} - // Top level wrapper for all access related setting in IAP - AccessSettings access_settings = 5; +// The request to GetTunnelDestGroup. +message GetTunnelDestGroupRequest { + // Required. Name of the TunnelDestGroup to be fetched. + // In the following format: + // `projects/{project_number/id}/iap_tunnel/locations/{location}/destGroups/{dest_group}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "iap.googleapis.com/TunnelDestGroup" + } + ]; +} - // Top level wrapper for all application related settings in IAP - ApplicationSettings application_settings = 6; +// The request to DeleteTunnelDestGroup. +message DeleteTunnelDestGroupRequest { + // Required. Name of the TunnelDestGroup to delete. + // In the following format: + // `projects/{project_number/id}/iap_tunnel/locations/{location}/destGroups/{dest_group}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "iap.googleapis.com/TunnelDestGroup" + } + ]; } -// Access related settings for IAP protected apps. -message AccessSettings { - // GCIP claims and endpoint configurations for 3p identity providers. - GcipSettings gcip_settings = 1; +// The request to UpdateTunnelDestGroup. +message UpdateTunnelDestGroupRequest { + // Required. The new values for the TunnelDestGroup. + TunnelDestGroup tunnel_dest_group = 1 [(google.api.field_behavior) = REQUIRED]; - // Configuration to allow cross-origin requests via IAP. - CorsSettings cors_settings = 2; + // A field mask that specifies which IAP settings to update. + // If omitted, then all of the settings are updated. See + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + google.protobuf.FieldMask update_mask = 2; +} - // Settings to configure IAP's OAuth behavior. - OAuthSettings oauth_settings = 3; +// A TunnelDestGroup. +message TunnelDestGroup { + option (google.api.resource) = { + type: "iap.googleapis.com/TunnelDestGroup" + pattern: "projects/{project}/iap_tunnel/locations/{location}/destGroups/{dest_group}" + }; + + // Required. Immutable. Identifier for the TunnelDestGroup. Must be unique within the + // project. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // null List of CIDRs that this group applies to. + repeated string cidrs = 2 [(google.api.field_behavior) = UNORDERED_LIST]; + + // null List of FQDNs that this group applies to. + repeated string fqdns = 3 [(google.api.field_behavior) = UNORDERED_LIST]; } // API to programmatically create, list and retrieve Identity Aware Proxy (IAP) @@ -148,11 +272,12 @@ service IdentityAwareProxyOAuthService { // Constructs a new OAuth brand for the project if one does not exist. // The created brand is "internal only", meaning that OAuth clients created - // under it only accept requests from users who belong to the same G Suite - // organization as the project. The brand is created in an un-reviewed status. - // NOTE: The "internal only" status can be manually changed in the Google - // Cloud console. Requires that a brand does not already exist for the - // project, and that the specified support email is owned by the caller. + // under it only accept requests from users who belong to the same Google + // Workspace organization as the project. The brand is created in an + // un-reviewed status. NOTE: The "internal only" status can be manually + // changed in the Google Cloud Console. Requires that a brand does not already + // exist for the project, and that the specified support email is owned by the + // caller. rpc CreateBrand(CreateBrandRequest) returns (Brand) { option (google.api.http) = { post: "/v1/{parent=projects/*}/brands" @@ -211,6 +336,54 @@ service IdentityAwareProxyOAuthService { } } +// The request sent to GetIapSettings. +message GetIapSettingsRequest { + // Required. The resource name for which to retrieve the settings. + // Authorization: Requires the `getSettings` permission for the associated + // resource. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request sent to UpdateIapSettings. +message UpdateIapSettingsRequest { + // Required. The new values for the IAP settings to be updated. + // Authorization: Requires the `updateSettings` permission for the associated + // resource. + IapSettings iap_settings = 1 [(google.api.field_behavior) = REQUIRED]; + + // The field mask specifying which IAP settings should be updated. + // If omitted, the all of the settings are updated. See + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + google.protobuf.FieldMask update_mask = 2; +} + +// The IAP configurable settings. +message IapSettings { + // Required. The resource name of the IAP protected resource. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Top level wrapper for all access related setting in IAP + AccessSettings access_settings = 5; + + // Top level wrapper for all application related settings in IAP + ApplicationSettings application_settings = 6; +} + +// Access related settings for IAP protected apps. +message AccessSettings { + // GCIP claims and endpoint configurations for 3p identity providers. + GcipSettings gcip_settings = 1; + + // Configuration to allow cross-origin requests via IAP. + CorsSettings cors_settings = 2; + + // Settings to configure IAP's OAuth behavior. + OAuthSettings oauth_settings = 3; + + // Settings to configure reauthentication policies in IAP. + ReauthSettings reauth_settings = 6; +} + // Allows customers to configure tenant_id for GCIP instance per-app. message GcipSettings { // GCIP tenant ids that are linked to the IAP resource. @@ -246,6 +419,52 @@ message OAuthSettings { google.protobuf.StringValue login_hint = 2; } +// Configuration for IAP reauthentication policies. +message ReauthSettings { + // Types of reauthentication methods supported by IAP. + enum Method { + // Reauthentication disabled. + METHOD_UNSPECIFIED = 0; + + // Mimics the behavior as if the user had logged out and tried to log in + // again. Users with 2SV (2-step verification) enabled see their 2SV + // challenges if they did not opt to have their second factor responses + // saved. Apps Core (GSuites) admins can configure settings to disable 2SV + // cookies and require 2SV for all Apps Core users in their domains. + LOGIN = 1; + + // User must type their password. + PASSWORD = 2; + + // User must use their secure key 2nd factor device. + SECURE_KEY = 3; + } + + // Type of policy in the case of hierarchial policies. + enum PolicyType { + // Default value. This value is unused. + POLICY_TYPE_UNSPECIFIED = 0; + + // This policy acts as a minimum to other policies, lower in the hierarchy. + // Effective policy may only be the same or stricter. + MINIMUM = 1; + + // This policy acts as a default if no other reauth policy is set. + DEFAULT = 2; + } + + // Reauth method required by the policy. + Method method = 1; + + // Reauth session lifetime, how long before a user has to reauthenticate + // again. + google.protobuf.Duration max_age = 2; + + // How IAP determines the effective policy in cases of hierarchial policies. + // Policies are merged from higher in the hierarchy to lower in the hierarchy. + PolicyType policy_type = 3; +} + // Wrapper over application specific settings for IAP. message ApplicationSettings { // Settings to configure IAP's behavior for a CSM mesh. diff --git a/google/cloud/iap/v1beta1/BUILD.bazel b/google/cloud/iap/v1beta1/BUILD.bazel index d0d95599b..8b6e7d9d9 100644 --- a/google/cloud/iap/v1beta1/BUILD.bazel +++ b/google/cloud/iap/v1beta1/BUILD.bazel @@ -70,6 +70,7 @@ java_gapic_library( ":iap_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":iap_java_proto", "//google/iam/v1:iam_java_proto", @@ -79,6 +80,7 @@ java_gapic_library( java_gapic_test( name = "iap_java_gapic_test_suite", test_classes = [ + "com.google.cloud.iap.v1beta1.IdentityAwareProxyAdminV1Beta1ClientHttpJsonTest", "com.google.cloud.iap.v1beta1.IdentityAwareProxyAdminV1Beta1ClientTest", ], runtime_deps = [":iap_java_gapic_test"], @@ -87,6 +89,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-iap-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":iap_java_gapic", ":iap_java_grpc", @@ -124,6 +128,7 @@ go_gapic_library( importpath = "cloud.google.com/go/iap/apiv1beta1;iap", metadata = True, service_yaml = "iap_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":iap_go_proto", "//google/iam/v1:iam_go_proto", @@ -155,12 +160,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "iap_py_gapic", srcs = [":iap_proto"], grpc_service_config = "iap_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "iap_py_gapic_test", + srcs = [ + "iap_py_gapic_pytest.py", + "iap_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":iap_py_gapic"], ) # Open Source Packages @@ -320,6 +340,7 @@ csharp_gapic_library( srcs = [":iap_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "iap_grpc_service_config.json", + service_yaml = "iap_v1beta1.yaml", deps = [ ":iap_csharp_grpc", ":iap_csharp_proto", diff --git a/google/cloud/identitytoolkit/logging/BUILD.bazel b/google/cloud/identitytoolkit/logging/BUILD.bazel new file mode 100644 index 000000000..b94904d8c --- /dev/null +++ b/google/cloud/identitytoolkit/logging/BUILD.bazel @@ -0,0 +1,179 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "request_log.proto", + ], + deps = [ + "//google/rpc:status_proto", + "@com_google_protobuf//:struct_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/identitytoolkit/logging", + protos = [":logging_proto"], + deps = [ + "//google/rpc:status_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "//google/rpc:status_proto", + "@com_google_protobuf//:struct_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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/identitytoolkit/logging/request_log.proto b/google/cloud/identitytoolkit/logging/request_log.proto new file mode 100644 index 000000000..dbf59f4c8 --- /dev/null +++ b/google/cloud/identitytoolkit/logging/request_log.proto @@ -0,0 +1,91 @@ +// 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.cloud.identitytoolkit.logging; + +import "google/protobuf/struct.proto"; +import "google/rpc/status.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/identitytoolkit/logging;logging"; +option java_multiple_files = true; +option java_outer_classname = "RequestLogProto"; +option java_package = "com.google.cloud.identitytoolkit.logging"; + +// Log of a request to Identitytoolkit. This proto is modeled after +// google.cloud.audit.AuditLog so that consumers can easily query +// for requests regardless of whether those requests were logged via +// Cloud Audit Logging or Identitytoolkit request logging. +message RequestLog { + // The name of the service method or operation. + // For API calls, this should be the name of the API method. + // For example, + // + // "google.datastore.v1.Datastore.RunQuery" + // "google.logging.v1.LoggingService.DeleteLog" + string method_name = 1; + + // The status of the overall operation. + google.rpc.Status status = 2; + + // Metadata about the operation. + RequestMetadata request_metadata = 3; + + // The operation request. This may not include all request parameters, + // such as those that are too large, privacy-sensitive, or duplicated + // elsewhere in the log record. + // It should never include user-generated data, such as file contents. + // When the JSON object represented here has a proto equivalent, the proto + // name will be indicated in the `@type` property. + google.protobuf.Struct request = 4; + + // The operation response. This may not include all response elements, + // such as those that are too large, privacy-sensitive, or duplicated + // elsewhere in the log record. + // It should never include user-generated data, such as file contents. + // When the JSON object represented here has a proto equivalent, the proto + // name will be indicated in the `@type` property. + google.protobuf.Struct response = 5; + + // The number of items returned from a List or Query API method, + // if applicable. + int64 num_response_items = 6; + + // Other service-specific data about the request, response, and other + // information associated with the current event. + google.protobuf.Struct metadata = 7; +} + +// Metadata about the request. +message RequestMetadata { + // The IP address of the caller. + string caller_ip = 1; + + // The user agent of the caller. + // This information is not authenticated and should be treated + // accordingly. + // + // For example: + // + // + `google-api-python-client/1.4.0`: + // The request was made by the Google API client for Python. + // + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: + // The request was made by the Google Cloud SDK CLI (gcloud). + // + `AppEngine-Google; (+http://code.google.com/appengine; appid: + // s~my-project`: + // The request was made from the `my-project` App Engine app. + // NOLINT + string caller_supplied_user_agent = 2; +} diff --git a/google/cloud/identitytoolkit/v2/BUILD.bazel b/google/cloud/identitytoolkit/v2/BUILD.bazel index 448392b27..a030132ae 100644 --- a/google/cloud/identitytoolkit/v2/BUILD.bazel +++ b/google/cloud/identitytoolkit/v2/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":identitytoolkit_java_grpc", ], + transport = "grpc+rest", deps = [ ":identitytoolkit_java_proto", "//google/api:api_java_proto", @@ -82,7 +83,9 @@ java_gapic_library( java_gapic_test( name = "identitytoolkit_java_gapic_test_suite", test_classes = [ + "com.google.cloud.identitytoolkit.v2.AccountManagementServiceClientHttpJsonTest", "com.google.cloud.identitytoolkit.v2.AccountManagementServiceClientTest", + "com.google.cloud.identitytoolkit.v2.AuthenticationServiceClientHttpJsonTest", "com.google.cloud.identitytoolkit.v2.AuthenticationServiceClientTest", ], runtime_deps = [":identitytoolkit_java_gapic_test"], @@ -91,6 +94,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-identitytoolkit-v2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":identitytoolkit_java_gapic", ":identitytoolkit_java_grpc", @@ -125,8 +130,9 @@ go_gapic_library( srcs = [":identitytoolkit_proto_with_info"], grpc_service_config = "identitytoolkit_grpc_service_config.json", importpath = "cloud.google.com/go/identitytoolkit/apiv2;identitytoolkit", - service_yaml = "identitytoolkit_v2.yaml", metadata = True, + service_yaml = "identitytoolkit_v2.yaml", + transport = "grpc+rest", deps = [ ":identitytoolkit_go_proto", ], @@ -144,8 +150,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-identitytoolkit-v2-go", deps = [ ":identitytoolkit_go_gapic", - ":identitytoolkit_go_gapic_srcjar-test.srcjar", ":identitytoolkit_go_gapic_srcjar-metadata.srcjar", + ":identitytoolkit_go_gapic_srcjar-test.srcjar", ":identitytoolkit_go_proto", ], ) @@ -157,6 +163,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -164,10 +171,21 @@ py_gapic_library( srcs = [":identitytoolkit_proto"], grpc_service_config = "identitytoolkit_grpc_service_config.json", opt_args = [ - "warehouse-package-name=google-cloud-identity-toolkit", - "python-gapic-namespace=google.cloud", - "python-gapic-name=identity_toolkit", + "warehouse-package-name=google-cloud-identity-toolkit", + "python-gapic-namespace=google.cloud", + "python-gapic-name=identity_toolkit", ], + transport = "grpc", +) + +py_test( + name = "identitytoolkit_py_gapic_test", + srcs = [ + "identitytoolkit_py_gapic_pytest.py", + "identitytoolkit_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":identitytoolkit_py_gapic"], ) # Open Source Packages @@ -254,8 +272,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -326,6 +344,7 @@ csharp_gapic_library( srcs = [":identitytoolkit_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "identitytoolkit_grpc_service_config.json", + service_yaml = "identitytoolkit_v2.yaml", deps = [ ":identitytoolkit_csharp_grpc", ":identitytoolkit_csharp_proto", diff --git a/google/cloud/ids/logging/v1/BUILD.bazel b/google/cloud/ids/logging/v1/BUILD.bazel new file mode 100644 index 000000000..725da102c --- /dev/null +++ b/google/cloud/ids/logging/v1/BUILD.bazel @@ -0,0 +1,177 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "logging.proto", + ], + deps = [ + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/ids/logging/v1", + protos = [":logging_proto"], + deps = [ + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "@com_google_protobuf//:duration_proto", + "@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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/ids/logging/v1/logging.proto b/google/cloud/ids/logging/v1/logging.proto new file mode 100644 index 000000000..ff66f33c0 --- /dev/null +++ b/google/cloud/ids/logging/v1/logging.proto @@ -0,0 +1,158 @@ +// 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.cloud.ids.logging.v1; + +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/ids/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "LoggingProto"; +option java_package = "com.google.cloud.ids.logging.v1"; + +// A threat detected by Cloud IDS. +message ThreatLog { + // Describes the type of severity of the threat. + enum Severity { + // Default value - should never be used. + SEVERITY_UNSPECIFIED = 0; + + LOW = 2; + + MEDIUM = 3; + + HIGH = 4; + + CRITICAL = 5; + + INFORMATIONAL = 6; + } + + enum Direction { + // Default value - permitted since Direction is optional. + DIRECTION_UNDEFINED = 0; + + // Ingress traffic. + CLIENT_TO_SERVER = 1; + + // Egress traffic. + SERVER_TO_CLIENT = 2; + } + + // Name of the threat, e,g. "Suspicious HTTP Evasion" + string name = 1; + + // Unique ID of the threat. + string threat_id = 13; + + // The time of the alert. + google.protobuf.Timestamp alert_time = 2; + + // Severity of threat. + Severity alert_severity = 19; + + // The type of the threat, e.g. "Spyware". + string type = 4; + + // Category (sub-type) of the threat, e.g. "code-execution". + string category = 18; + + // The source IP Address of the packet, e.g. "35.191.8.79" + string source_ip_address = 5; + + // The source port of the packet, e.g. 8080 + int32 source_port = 6; + + // The destination IP Address of the packet, e.g. "192.168.100.2" + string destination_ip_address = 7; + + // The destination port of the packet, e.g. 100 + int32 destination_port = 8; + + // The IP protocol of the packet, e.g. "TCP". + string ip_protocol = 9; + + // The direction of the packet - an optional field. + Direction direction = 10; + + // ID of the Layer 4 session of the threat. + string session_id = 14; + + // Number of sessions with same source IP, destination IP, application, and + // type seen within 5 seconds. + string repeat_count = 15; + + // Application associated with the session. + string application = 16; + + // Variable field. URI or filename of the relevant threat, if applicable. + string uri_or_filename = 17; + + // CVE IDs of the threat. + repeated string cves = 20; + + // Details of the threat reported by the IDS VM + string details = 11; + + // The network associated with the IDS Endpoint. + string network = 12; +} + +// Traffic detected by Cloud IDS. +// Fields taken from: +// https://docs.paloaltonetworks.com/pan-os/8-1/pan-os-admin/monitoring/use-syslog-for-monitoring/syslog-field-descriptions/traffic-log-fields.html. +message TrafficLog { + // Time of session start. + google.protobuf.Timestamp start_time = 1; + + // Elapsed time of the session. + google.protobuf.Duration elapsed_time = 2; + + // The network associated with the IDS Endpoint. + string network = 3; + + // The source IP Address of the packet, e.g. "35.191.8.79" + string source_ip_address = 4; + + // The source port of the packet, e.g. 8080 + int32 source_port = 5; + + // The destination IP Address of the packet, e.g. "192.168.100.2" + string destination_ip_address = 6; + + // The destination port of the packet, e.g. 100 + int32 destination_port = 7; + + // The IP protocol of the packet, e.g. "TCP". + string ip_protocol = 8; + + // Application associated with the session. + string application = 9; + + // The direction of the packet. + string session_id = 12; + + // Number of sessions with same source IP, destination IP, application, and + // type seen within 5 seconds. + string repeat_count = 13; + + // Total number of bytes transferred in the session. + int64 total_bytes = 14; + + // Total number of packets transferred in the session. + int64 total_packets = 15; +} diff --git a/google/cloud/ids/v1/BUILD.bazel b/google/cloud/ids/v1/BUILD.bazel index 135e0b408..654ac22e3 100644 --- a/google/cloud/ids/v1/BUILD.bazel +++ b/google/cloud/ids/v1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":ids_java_grpc", ], + transport = "grpc+rest", deps = [ ":ids_java_proto", "//google/api:api_java_proto", @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "ids_java_gapic_test_suite", test_classes = [ + "com.google.cloud.ids.v1.IDSClientHttpJsonTest", "com.google.cloud.ids.v1.IDSClientTest", ], runtime_deps = [":ids_java_gapic_test"], @@ -91,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-ids-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":ids_java_gapic", ":ids_java_grpc", @@ -126,13 +130,14 @@ go_gapic_library( srcs = [":ids_proto_with_info"], grpc_service_config = "ids_grpc_service_config.json", importpath = "cloud.google.com/go/ids/apiv1;ids", - service_yaml = "ids_v1.yaml", metadata = True, + service_yaml = "ids_v1.yaml", + transport = "grpc+rest", deps = [ ":ids_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_library", "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", ], ) @@ -148,8 +153,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-ids-v1-go", deps = [ ":ids_go_gapic", - ":ids_go_gapic_srcjar-test.srcjar", ":ids_go_gapic_srcjar-metadata.srcjar", + ":ids_go_gapic_srcjar-test.srcjar", ":ids_go_proto", ], ) @@ -161,12 +166,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "ids_py_gapic", srcs = [":ids_proto"], grpc_service_config = "ids_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "ids_py_gapic_test", + srcs = [ + "ids_py_gapic_pytest.py", + "ids_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":ids_py_gapic"], ) # Open Source Packages @@ -202,9 +219,9 @@ php_grpc_library( php_gapic_library( name = "ids_php_gapic", srcs = [":ids_proto_with_info"], + gapic_yaml = "ids_gapic.yaml", grpc_service_config = "ids_grpc_service_config.json", service_yaml = "ids_v1.yaml", - gapic_yaml = "ids_gapic.yaml", deps = [ ":ids_php_grpc", ":ids_php_proto", @@ -254,8 +271,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -327,6 +344,7 @@ csharp_gapic_library( srcs = [":ids_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "ids_grpc_service_config.json", + service_yaml = "ids_v1.yaml", deps = [ ":ids_csharp_grpc", ":ids_csharp_proto", diff --git a/google/cloud/ids/v1/ids.proto b/google/cloud/ids/v1/ids.proto index ce2c5d087..d5202a544 100644 --- a/google/cloud/ids/v1/ids.proto +++ b/google/cloud/ids/v1/ids.proto @@ -21,7 +21,6 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/ids/v1;ids"; diff --git a/google/cloud/integrations/v1alpha/task_config.proto b/google/cloud/integrations/v1alpha/task_config.proto index d6c5c868c..23bfc61c1 100644 --- a/google/cloud/integrations/v1alpha/task_config.proto +++ b/google/cloud/integrations/v1alpha/task_config.proto @@ -28,7 +28,7 @@ option java_package = "com.google.cloud.integrations.v1alpha"; // The task configuration details. This is not the implementation of Task. // There might be multiple TaskConfigs for the same Task. -// Next available id: 12 +// (-- Next available id: 12 --) message TaskConfig { // Various policies for executing the next set of tasks. enum NextTasksExecutionPolicy { diff --git a/google/cloud/iot/v1/BUILD.bazel b/google/cloud/iot/v1/BUILD.bazel index b28e750c2..49be129d6 100644 --- a/google/cloud/iot/v1/BUILD.bazel +++ b/google/cloud/iot/v1/BUILD.bazel @@ -68,6 +68,7 @@ java_gapic_library( ":iot_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":iot_java_proto", "//google/iam/v1:iam_java_proto", @@ -77,6 +78,7 @@ java_gapic_library( java_gapic_test( name = "iot_java_gapic_test_suite", test_classes = [ + "com.google.cloud.iot.v1.DeviceManagerClientHttpJsonTest", "com.google.cloud.iot.v1.DeviceManagerClientTest", ], runtime_deps = [":iot_java_gapic_test"], @@ -85,6 +87,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-iot-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":iot_java_gapic", ":iot_java_grpc", @@ -122,6 +126,7 @@ go_gapic_library( grpc_service_config = "cloudiot_grpc_service_config.json", importpath = "cloud.google.com/go/iot/apiv1;iot", service_yaml = "cloudiot_v1.yaml", + transport = "grpc+rest", deps = [ ":iot_go_proto", "//google/iam/v1:iam_go_proto", @@ -152,12 +157,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "iot_py_gapic", srcs = [":iot_proto"], grpc_service_config = "cloudiot_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "iot_py_gapic_test", + srcs = [ + "iot_py_gapic_pytest.py", + "iot_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":iot_py_gapic"], ) py_gapic_assembly_pkg( @@ -316,6 +336,7 @@ csharp_gapic_library( srcs = [":iot_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudiot_grpc_service_config.json", + service_yaml = "cloudiot_v1.yaml", deps = [ ":iot_csharp_grpc", ":iot_csharp_proto", diff --git a/google/cloud/iot/v1/device_manager.proto b/google/cloud/iot/v1/device_manager.proto index dfd6c9b6a..b28140ce7 100644 --- a/google/cloud/iot/v1/device_manager.proto +++ b/google/cloud/iot/v1/device_manager.proto @@ -25,7 +25,6 @@ import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/iot/v1;iot"; diff --git a/google/cloud/kms/BUILD.bazel b/google/cloud/kms/BUILD.bazel index 940352b2e..09a3ce6c3 100644 --- a/google/cloud/kms/BUILD.bazel +++ b/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.0", + "ruby-cloud-wrapper-of=v1:0.11", "ruby-cloud-product-url=https://cloud.google.com/kms", "ruby-cloud-api-id=cloudkms.googleapis.com", "ruby-cloud-api-shortname=cloudkms", diff --git a/google/cloud/kms/v1/BUILD.bazel b/google/cloud/kms/v1/BUILD.bazel index de21ea863..f3424cd00 100644 --- a/google/cloud/kms/v1/BUILD.bazel +++ b/google/cloud/kms/v1/BUILD.bazel @@ -9,11 +9,13 @@ exports_files(["cloudkms_grpc_service_config.json"]) ############################################################################## # Common ############################################################################## +# buildifier: disable=load-on-top load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "kms_proto", srcs = [ + "ekm_service.proto", "resources.proto", "service.proto", ], @@ -43,6 +45,8 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -72,6 +76,7 @@ java_gapic_library( ":kms_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":kms_java_proto", "//google/iam/v1:iam_java_proto", @@ -81,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "kms_java_gapic_test_suite", test_classes = [ + "com.google.cloud.kms.v1.KeyManagementServiceClientHttpJsonTest", "com.google.cloud.kms.v1.KeyManagementServiceClientTest", ], runtime_deps = [":kms_java_gapic_test"], @@ -89,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-kms-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":kms_java_gapic", ":kms_java_grpc", @@ -100,6 +108,8 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -125,6 +135,7 @@ go_gapic_library( grpc_service_config = "cloudkms_grpc_service_config.json", importpath = "cloud.google.com/go/kms/apiv1;kms", service_yaml = "cloudkms_v1.yaml", + transport = "grpc+rest", deps = [ ":kms_go_proto", "//google/iam/v1:iam_go_proto", @@ -152,10 +163,13 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -163,6 +177,21 @@ py_gapic_library( srcs = [":kms_proto"], grpc_service_config = "cloudkms_grpc_service_config.json", opt_args = ["add-iam-methods"], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + "//google/iam/v1:policy_py_proto", + ], +) + +py_test( + name = "kms_py_gapic_test", + srcs = [ + "kms_py_gapic_pytest.py", + "kms_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":kms_py_gapic"], ) py_gapic_assembly_pkg( @@ -175,6 +204,8 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -217,6 +248,8 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -245,6 +278,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -297,6 +332,8 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -321,6 +358,7 @@ csharp_gapic_library( srcs = [":kms_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudkms_grpc_service_config.json", + service_yaml = "cloudkms_v1.yaml", deps = [ ":kms_csharp_grpc", ":kms_csharp_proto", @@ -340,6 +378,8 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/kms/v1/cloudkms_grpc_service_config.json b/google/cloud/kms/v1/cloudkms_grpc_service_config.json index 17c5802dd..85ee12b04 100755 --- a/google/cloud/kms/v1/cloudkms_grpc_service_config.json +++ b/google/cloud/kms/v1/cloudkms_grpc_service_config.json @@ -15,6 +15,10 @@ }, { "name": [ + { + "service": "google.cloud.kms.v1.EkmService", + "method": "ListEkmConnections" + }, { "service": "google.cloud.kms.v1.KeyManagementService", "method": "ListKeyRings" @@ -31,6 +35,10 @@ "service": "google.cloud.kms.v1.KeyManagementService", "method": "ListCryptoKeyVersions" }, + { + "service": "google.cloud.kms.v1.EkmService", + "method": "GetEkmConnection" + }, { "service": "google.cloud.kms.v1.KeyManagementService", "method": "GetKeyRing" @@ -47,6 +55,10 @@ "service": "google.cloud.kms.v1.KeyManagementService", "method": "GetCryptoKeyVersion" }, + { + "service": "google.cloud.kms.v1.EkmService", + "method": "CreateEkmConnection" + }, { "service": "google.cloud.kms.v1.KeyManagementService", "method": "CreateKeyRing" @@ -59,6 +71,10 @@ "service": "google.cloud.kms.v1.KeyManagementService", "method": "CreateCryptoKey" }, + { + "service": "google.cloud.kms.v1.EkmService", + "method": "UpdateEkmConnection" + }, { "service": "google.cloud.kms.v1.KeyManagementService", "method": "UpdateCryptoKey" @@ -111,14 +127,26 @@ "service": "google.cloud.kms.v1.KeyManagementService", "method": "GenerateRandomBytes" }, + { + "service": "google.cloud.kms.v1.EkmService", + "method": "SetIamPolicy" + }, { "service": "google.cloud.kms.v1.KeyManagementService", "method": "SetIamPolicy" }, + { + "service": "google.cloud.kms.v1.EkmService", + "method": "GetIamPolicy" + }, { "service": "google.cloud.kms.v1.KeyManagementService", "method": "GetIamPolicy" }, + { + "service": "google.cloud.kms.v1.EkmService", + "method": "TestIamPermissions" + }, { "service": "google.cloud.kms.v1.KeyManagementService", "method": "TestIamPermissions" diff --git a/google/cloud/kms/v1/cloudkms_v1.yaml b/google/cloud/kms/v1/cloudkms_v1.yaml index fedb0c480..416dcaf26 100644 --- a/google/cloud/kms/v1/cloudkms_v1.yaml +++ b/google/cloud/kms/v1/cloudkms_v1.yaml @@ -4,6 +4,7 @@ name: cloudkms.googleapis.com title: Cloud Key Management Service (KMS) API apis: +- name: google.cloud.kms.v1.EkmService - name: google.cloud.kms.v1.KeyManagementService - name: google.iam.v1.IAMPolicy @@ -55,6 +56,7 @@ http: additional_bindings: - get: '/v1/{resource=projects/*/locations/*/keyRings/*/cryptoKeys/*}:getIamPolicy' - get: '/v1/{resource=projects/*/locations/*/keyRings/*/importJobs/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/ekmConnections/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1/{resource=projects/*/locations/*/keyRings/*}:setIamPolicy' body: '*' @@ -63,6 +65,8 @@ http: body: '*' - post: '/v1/{resource=projects/*/locations/*/keyRings/*/importJobs/*}:setIamPolicy' body: '*' + - post: '/v1/{resource=projects/*/locations/*/ekmConnections/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1/{resource=projects/*/locations/*/keyRings/*}:testIamPermissions' body: '*' @@ -71,9 +75,16 @@ http: body: '*' - post: '/v1/{resource=projects/*/locations/*/keyRings/*/importJobs/*}:testIamPermissions' body: '*' + - post: '/v1/{resource=projects/*/locations/*/ekmConnections/*}:testIamPermissions' + body: '*' authentication: rules: + - selector: 'google.cloud.kms.v1.EkmService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloudkms - selector: 'google.cloud.kms.v1.KeyManagementService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/kms/v1/ekm_service.proto b/google/cloud/kms/v1/ekm_service.proto new file mode 100644 index 000000000..de8669dbf --- /dev/null +++ b/google/cloud/kms/v1/ekm_service.proto @@ -0,0 +1,293 @@ +// 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 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"; +import "google/protobuf/timestamp.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Kms.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/kms/v1;kms"; +option java_multiple_files = true; +option java_outer_classname = "EkmServiceProto"; +option java_package = "com.google.cloud.kms.v1"; +option php_namespace = "Google\\Cloud\\Kms\\V1"; +option (google.api.resource_definition) = { + type: "servicedirectory.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}" +}; + +// Google Cloud Key Management EKM Service +// +// Manages external cryptographic keys and operations using those keys. +// Implements a REST model with the following objects: +// * [EkmConnection][google.cloud.kms.v1.EkmConnection] +service EkmService { + 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"; + + // Lists [EkmConnections][google.cloud.kms.v1.EkmConnection]. + rpc ListEkmConnections(ListEkmConnectionsRequest) + returns (ListEkmConnectionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/ekmConnections" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns metadata for a given + // [EkmConnection][google.cloud.kms.v1.EkmConnection]. + rpc GetEkmConnection(GetEkmConnectionRequest) returns (EkmConnection) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/ekmConnections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new [EkmConnection][google.cloud.kms.v1.EkmConnection] in a given + // Project and Location. + rpc CreateEkmConnection(CreateEkmConnectionRequest) returns (EkmConnection) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/ekmConnections" + body: "ekm_connection" + }; + option (google.api.method_signature) = + "parent,ekm_connection_id,ekm_connection"; + } + + // Updates an [EkmConnection][google.cloud.kms.v1.EkmConnection]'s metadata. + rpc UpdateEkmConnection(UpdateEkmConnectionRequest) returns (EkmConnection) { + option (google.api.http) = { + patch: "/v1/{ekm_connection.name=projects/*/locations/*/ekmConnections/*}" + body: "ekm_connection" + }; + option (google.api.method_signature) = "ekm_connection,update_mask"; + } +} + +// Request message for [KeyManagementService.ListEkmConnections][]. +message ListEkmConnectionsRequest { + // Required. The resource name of the location associated with the + // [EkmConnections][google.cloud.kms.v1.EkmConnection] to list, in the format + // `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Optional limit on the number of + // [EkmConnections][google.cloud.kms.v1.EkmConnection] to include in the + // response. Further [EkmConnections][google.cloud.kms.v1.EkmConnection] can + // subsequently be obtained by including the + // [ListEkmConnectionsResponse.next_page_token][google.cloud.kms.v1.ListEkmConnectionsResponse.next_page_token] + // in a subsequent request. If unspecified, the server will pick an + // appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional pagination token, returned earlier via + // [ListEkmConnectionsResponse.next_page_token][google.cloud.kms.v1.ListEkmConnectionsResponse.next_page_token]. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Only include resources that match the filter in the response. For + // more information, see + // [Sorting and filtering list + // results](https://cloud.google.com/kms/docs/sorting-and-filtering). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specify how the results should be sorted. If not specified, the + // results will be sorted in the default order. For more information, see + // [Sorting and filtering list + // results](https://cloud.google.com/kms/docs/sorting-and-filtering). + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for [KeyManagementService.ListEkmConnections][]. +message ListEkmConnectionsResponse { + // The list of [EkmConnections][google.cloud.kms.v1.EkmConnection]. + repeated EkmConnection ekm_connections = 1; + + // A token to retrieve next page of results. Pass this value in + // [ListEkmConnectionsRequest.page_token][google.cloud.kms.v1.ListEkmConnectionsRequest.page_token] + // to retrieve the next page of results. + string next_page_token = 2; + + // The total number of [EkmConnections][google.cloud.kms.v1.EkmConnection] + // that matched the query. + int32 total_size = 3; +} + +// Request message for [KeyManagementService.GetEkmConnection][]. +message GetEkmConnectionRequest { + // Required. The [name][google.cloud.kms.v1.EkmConnection.name] of the + // [EkmConnection][google.cloud.kms.v1.EkmConnection] to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/EkmConnection" + } + ]; +} + +// Request message for [KeyManagementService.CreateEkmConnection][]. +message CreateEkmConnectionRequest { + // Required. The resource name of the location associated with the + // [EkmConnection][google.cloud.kms.v1.EkmConnection], in the format + // `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. It must be unique within a location and match the regular + // expression `[a-zA-Z0-9_-]{1,63}`. + string ekm_connection_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. An [EkmConnection][google.cloud.kms.v1.EkmConnection] with + // initial field values. + EkmConnection ekm_connection = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [KeyManagementService.UpdateEkmConnection][]. +message UpdateEkmConnectionRequest { + // Required. [EkmConnection][google.cloud.kms.v1.EkmConnection] with updated + // values. + EkmConnection ekm_connection = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields to be updated in this request. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// A [Certificate][google.cloud.kms.v1.Certificate] represents an X.509 +// certificate used to authenticate HTTPS connections to EKM replicas. +message Certificate { + // Required. The raw certificate bytes in DER format. + bytes raw_der = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. True if the certificate was parsed successfully. + bool parsed = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The issuer distinguished name in RFC 2253 format. Only present + // if [parsed][google.cloud.kms.v1.Certificate.parsed] is true. + string issuer = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The subject distinguished name in RFC 2253 format. Only + // present if [parsed][google.cloud.kms.v1.Certificate.parsed] is true. + string subject = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The subject Alternative DNS names. Only present if + // [parsed][google.cloud.kms.v1.Certificate.parsed] is true. + repeated string subject_alternative_dns_names = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The certificate is not valid before this time. Only present if + // [parsed][google.cloud.kms.v1.Certificate.parsed] is true. + google.protobuf.Timestamp not_before_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The certificate is not valid after this time. Only present if + // [parsed][google.cloud.kms.v1.Certificate.parsed] is true. + google.protobuf.Timestamp not_after_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The certificate serial number as a hex string. Only present if + // [parsed][google.cloud.kms.v1.Certificate.parsed] is true. + string serial_number = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The SHA-256 certificate fingerprint as a hex string. Only + // present if [parsed][google.cloud.kms.v1.Certificate.parsed] is true. + string sha256_fingerprint = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// An [EkmConnection][google.cloud.kms.v1.EkmConnection] represents an +// individual EKM connection. It can be used for creating +// [CryptoKeys][google.cloud.kms.v1.CryptoKey] and +// [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] with a +// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of +// [EXTERNAL_VPC][CryptoKeyVersion.ProtectionLevel.EXTERNAL_VPC], as well as +// performing cryptographic operations using keys created within the +// [EkmConnection][google.cloud.kms.v1.EkmConnection]. +message EkmConnection { + option (google.api.resource) = { + type: "cloudkms.googleapis.com/EkmConnection" + pattern: "projects/{project}/locations/{location}/ekmConnections/{ekm_connection}" + }; + + // A [ServiceResolver][google.cloud.kms.v1.EkmConnection.ServiceResolver] + // represents an EKM replica that can be reached within an + // [EkmConnection][google.cloud.kms.v1.EkmConnection]. + message ServiceResolver { + // Required. The resource name of the Service Directory service pointing to + // an EKM replica, in the format + // `projects/*/locations/*/namespaces/*/services/*`. + string service_directory_service = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "servicedirectory.googleapis.com/Service" + } + ]; + + // Optional. The filter applied to the endpoints of the resolved service. If + // no filter is specified, all endpoints will be considered. An endpoint + // will be chosen arbitrarily from the filtered list for each request. + // + // For endpoint filter syntax and examples, see + // https://cloud.google.com/service-directory/docs/reference/rpc/google.cloud.servicedirectory.v1#resolveservicerequest. + string endpoint_filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The hostname of the EKM replica used at TLS and HTTP layers. + string hostname = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of leaf server certificates used to authenticate HTTPS + // connections to the EKM replica. + repeated Certificate server_certificates = 4 + [(google.api.field_behavior) = REQUIRED]; + } + + // Output only. The resource name for the + // [EkmConnection][google.cloud.kms.v1.EkmConnection] in the format + // `projects/*/locations/*/ekmConnections/*`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the + // [EkmConnection][google.cloud.kms.v1.EkmConnection] was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A list of + // [ServiceResolvers][google.cloud.kms.v1.EkmConnection.ServiceResolver] where + // the EKM can be reached. There should be one ServiceResolver per EKM + // replica. Currently, only a single + // [ServiceResolver][google.cloud.kms.v1.EkmConnection.ServiceResolver] is + // supported. + repeated ServiceResolver service_resolvers = 3; + + // This checksum is computed by the server based on the value of other fields, + // and may be sent on update requests to ensure the client has an up-to-date + // value before proceeding. + string etag = 5; +} diff --git a/google/cloud/kms/v1/resources.proto b/google/cloud/kms/v1/resources.proto index 70c670b07..5029f3e03 100644 --- a/google/cloud/kms/v1/resources.proto +++ b/google/cloud/kms/v1/resources.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Kms.V1"; @@ -31,115 +30,140 @@ option java_outer_classname = "KmsResourcesProto"; option java_package = "com.google.cloud.kms.v1"; option php_namespace = "Google\\Cloud\\Kms\\V1"; -// A [KeyRing][google.cloud.kms.v1.KeyRing] is a toplevel logical grouping of [CryptoKeys][google.cloud.kms.v1.CryptoKey]. +// A [KeyRing][google.cloud.kms.v1.KeyRing] is a toplevel logical grouping of +// [CryptoKeys][google.cloud.kms.v1.CryptoKey]. message KeyRing { option (google.api.resource) = { type: "cloudkms.googleapis.com/KeyRing" pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}" }; - // Output only. The resource name for the [KeyRing][google.cloud.kms.v1.KeyRing] in the format + // Output only. The resource name for the + // [KeyRing][google.cloud.kms.v1.KeyRing] in the format // `projects/*/locations/*/keyRings/*`. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The time at which this [KeyRing][google.cloud.kms.v1.KeyRing] was created. - google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time at which this [KeyRing][google.cloud.kms.v1.KeyRing] + // was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; } -// A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that can be used for cryptographic -// operations. +// A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that +// can be used for cryptographic operations. // -// A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of zero or more [versions][google.cloud.kms.v1.CryptoKeyVersion], -// which represent the actual key material used in cryptographic operations. +// A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of zero or more +// [versions][google.cloud.kms.v1.CryptoKeyVersion], which represent the actual +// key material used in cryptographic operations. message CryptoKey { option (google.api.resource) = { type: "cloudkms.googleapis.com/CryptoKey" pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" }; - // [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose] describes the cryptographic capabilities of a - // [CryptoKey][google.cloud.kms.v1.CryptoKey]. A given key can only be used for the operations allowed by - // its purpose. For more information, see - // [Key purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes). + // [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose] + // describes the cryptographic capabilities of a + // [CryptoKey][google.cloud.kms.v1.CryptoKey]. A given key can only be used + // for the operations allowed by its purpose. For more information, see [Key + // purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes). enum CryptoKeyPurpose { // Not specified. CRYPTO_KEY_PURPOSE_UNSPECIFIED = 0; - // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with - // [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] and + // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used + // with [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] and // [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt]. ENCRYPT_DECRYPT = 1; - // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with - // [AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign] and + // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used + // with + // [AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign] + // and // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. ASYMMETRIC_SIGN = 5; - // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with - // [AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt] and + // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used + // with + // [AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt] + // and // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. ASYMMETRIC_DECRYPT = 6; - // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with - // [MacSign][google.cloud.kms.v1.KeyManagementService.MacSign]. + // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used + // with [MacSign][google.cloud.kms.v1.KeyManagementService.MacSign]. MAC = 9; } - // Output only. The resource name for this [CryptoKey][google.cloud.kms.v1.CryptoKey] in the format + // Output only. The resource name for this + // [CryptoKey][google.cloud.kms.v1.CryptoKey] in the format // `projects/*/locations/*/keyRings/*/cryptoKeys/*`. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A copy of the "primary" [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that will be used - // by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] when this [CryptoKey][google.cloud.kms.v1.CryptoKey] is given - // in [EncryptRequest.name][google.cloud.kms.v1.EncryptRequest.name]. + // Output only. A copy of the "primary" + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that will be used + // by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] when this + // [CryptoKey][google.cloud.kms.v1.CryptoKey] is given in + // [EncryptRequest.name][google.cloud.kms.v1.EncryptRequest.name]. // - // The [CryptoKey][google.cloud.kms.v1.CryptoKey]'s primary version can be updated via + // The [CryptoKey][google.cloud.kms.v1.CryptoKey]'s primary version can be + // updated via // [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]. // // Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose] - // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] may have a - // primary. For other keys, this field will be omitted. + // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] + // may have a primary. For other keys, this field will be omitted. CryptoKeyVersion primary = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Immutable. The immutable purpose of this [CryptoKey][google.cloud.kms.v1.CryptoKey]. + // Immutable. The immutable purpose of this + // [CryptoKey][google.cloud.kms.v1.CryptoKey]. CryptoKeyPurpose purpose = 3 [(google.api.field_behavior) = IMMUTABLE]; - // Output only. The time at which this [CryptoKey][google.cloud.kms.v1.CryptoKey] was created. - google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time at which this + // [CryptoKey][google.cloud.kms.v1.CryptoKey] was created. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // At [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time], the Key Management Service will automatically: + // At [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time], + // the Key Management Service will automatically: // // 1. Create a new version of this [CryptoKey][google.cloud.kms.v1.CryptoKey]. // 2. Mark the new version as primary. // // Key rotations performed manually via - // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] and + // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] + // and // [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion] - // do not affect [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time]. + // do not affect + // [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time]. // // Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose] - // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] support - // automatic rotation. For other keys, this field must be omitted. + // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] + // support automatic rotation. For other keys, this field must be omitted. google.protobuf.Timestamp next_rotation_time = 7; // Controls the rate of automatic rotation. oneof rotation_schedule { - // [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time] will be advanced by this period when the service - // automatically rotates a key. Must be at least 24 hours and at most - // 876,000 hours. + // [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time] + // will be advanced by this period when the service automatically rotates a + // key. Must be at least 24 hours and at most 876,000 hours. // - // If [rotation_period][google.cloud.kms.v1.CryptoKey.rotation_period] is set, [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time] must also be set. + // If [rotation_period][google.cloud.kms.v1.CryptoKey.rotation_period] is + // set, + // [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time] + // must also be set. // // Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose] - // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] support - // automatic rotation. For other keys, this field must be omitted. + // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] + // support automatic rotation. For other keys, this field must be omitted. google.protobuf.Duration rotation_period = 8; } - // A template describing settings for new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances. - // The properties of new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances created by either - // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or - // auto-rotation are controlled by this template. + // A template describing settings for new + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances. The + // properties of new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] + // instances created by either + // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] + // or auto-rotation are controlled by this template. CryptoKeyVersionTemplate version_template = 11; // Labels with user-defined metadata. For more information, see @@ -152,27 +176,52 @@ message CryptoKey { // Immutable. The period of time that versions of this key spend in the // [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED] // state before transitioning to - // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED]. If not - // specified at creation time, the default duration is 24 hours. - google.protobuf.Duration destroy_scheduled_duration = 14 [(google.api.field_behavior) = IMMUTABLE]; + // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED]. + // If not specified at creation time, the default duration is 24 hours. + google.protobuf.Duration destroy_scheduled_duration = 14 + [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The resource name of the backend environment where the key + // material for all [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] + // associated with this [CryptoKey][google.cloud.kms.v1.CryptoKey] reside and + // where all related cryptographic operations are performed. Only applicable + // if [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] have a + // [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of + // [EXTERNAL_VPC][CryptoKeyVersion.ProtectionLevel.EXTERNAL_VPC], with the + // resource name in the format `projects/*/locations/*/ekmConnections/*`. + // Note, this list is non-exhaustive and may apply to additional + // [ProtectionLevels][google.cloud.kms.v1.ProtectionLevel] in the future. + string crypto_key_backend = 15 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { type: "*" } + ]; } -// A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate] specifies the properties to use when creating -// a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually with -// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or -// automatically as a result of auto-rotation. +// A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate] +// specifies the properties to use when creating a new +// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually +// with +// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] +// or automatically as a result of auto-rotation. message CryptoKeyVersionTemplate { - // [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when creating a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on - // this template. Immutable. Defaults to [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE]. + // [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when creating + // a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this + // template. Immutable. Defaults to + // [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE]. ProtectionLevel protection_level = 1; - // Required. [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] to use - // when creating a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this template. + // Required. + // [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] + // to use when creating a + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this + // template. // // For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both - // this field is omitted and [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] is + // this field is omitted and + // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] is // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. - CryptoKeyVersion.CryptoKeyVersionAlgorithm algorithm = 3 [(google.api.field_behavior) = REQUIRED]; + CryptoKeyVersion.CryptoKeyVersionAlgorithm algorithm = 3 + [(google.api.field_behavior) = REQUIRED]; } // Contains an HSM-generated attestation about a key operation. For more @@ -193,39 +242,60 @@ message KeyOperationAttestation { CAVIUM_V2_COMPRESSED = 4; } + // Certificate chains needed to verify the attestation. + // Certificates in chains are PEM-encoded and are ordered based on + // https://tools.ietf.org/html/rfc5246#section-7.4.2. + message CertificateChains { + // Cavium certificate chain corresponding to the attestation. + repeated string cavium_certs = 1; + + // Google card certificate chain corresponding to the attestation. + repeated string google_card_certs = 2; + + // Google partition certificate chain corresponding to the attestation. + repeated string google_partition_certs = 3; + } + // Output only. The format of the attestation data. AttestationFormat format = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The attestation data provided by the HSM when the key // operation was performed. bytes content = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The certificate chains needed to validate the attestation + CertificateChains cert_chains = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents an individual cryptographic key, and the -// associated key material. +// A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents an +// individual cryptographic key, and the associated key material. // -// An [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] version can be -// used for cryptographic operations. +// An +// [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] +// version can be used for cryptographic operations. // // For security reasons, the raw cryptographic key material represented by a -// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] can never be viewed or exported. It can only be used to -// encrypt, decrypt, or sign data when an authorized user or application invokes -// Cloud KMS. +// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] can never be viewed +// or exported. It can only be used to encrypt, decrypt, or sign data when an +// authorized user or application invokes Cloud KMS. message CryptoKeyVersion { option (google.api.resource) = { type: "cloudkms.googleapis.com/CryptoKeyVersion" pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" }; - // The algorithm of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what + // The algorithm of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what // parameters must be used for each cryptographic operation. // // The // [GOOGLE_SYMMETRIC_ENCRYPTION][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION] - // algorithm is usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] + // algorithm is usable with + // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. // - // Algorithms beginning with "RSA_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] + // Algorithms beginning with "RSA_SIGN_" are usable with + // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] // [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN]. // // The fields in the name after "RSA_SIGN_" correspond to the following @@ -243,13 +313,15 @@ message CryptoKeyVersion { // The fields in the name after "RSA_DECRYPT_" correspond to the following // parameters: padding algorithm, modulus bit length, and digest algorithm. // - // Algorithms beginning with "EC_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] + // Algorithms beginning with "EC_SIGN_" are usable with + // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] // [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN]. // // The fields in the name after "EC_SIGN_" correspond to the following // parameters: elliptic curve, digest algorithm. // - // Algorithms beginning with "HMAC_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] + // Algorithms beginning with "HMAC_" are usable with + // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] // [MAC][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.MAC]. // // The suffix following "HMAC_" corresponds to the hash algorithm being used @@ -335,39 +407,50 @@ message CryptoKeyVersion { EXTERNAL_SYMMETRIC_ENCRYPTION = 18; } - // The state of a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating if it can be used. + // The state of a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], + // indicating if it can be used. enum CryptoKeyVersionState { // Not specified. CRYPTO_KEY_VERSION_STATE_UNSPECIFIED = 0; // This version is still being generated. It may not be used, enabled, // disabled, or destroyed yet. Cloud KMS will automatically mark this - // version [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] as soon as the version is ready. + // version + // [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] + // as soon as the version is ready. PENDING_GENERATION = 5; // This version may be used for cryptographic operations. ENABLED = 1; // This version may not be used, but the key material is still available, - // and the version can be placed back into the [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] state. + // and the version can be placed back into the + // [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] + // state. DISABLED = 2; // This version is destroyed, and the key material is no longer stored. - // This version may only become [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] again if this version is - // [reimport_eligible][google.cloud.kms.v1.CryptoKeyVersion.reimport_eligible] and the original - // key material is reimported with a call to + // This version may only become + // [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] + // again if this version is + // [reimport_eligible][google.cloud.kms.v1.CryptoKeyVersion.reimport_eligible] + // and the original key material is reimported with a call to // [KeyManagementService.ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion]. DESTROYED = 3; // This version is scheduled for destruction, and will be destroyed soon. // Call // [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion] - // to put it back into the [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED] state. + // to put it back into the + // [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED] + // state. DESTROY_SCHEDULED = 4; // This version is still being imported. It may not be used, enabled, // disabled, or destroyed yet. Cloud KMS will automatically mark this - // version [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] as soon as the version is ready. + // version + // [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] + // as soon as the version is ready. PENDING_IMPORT = 6; // This version was not imported successfully. It may not be used, enabled, @@ -377,84 +460,114 @@ message CryptoKeyVersion { IMPORT_FAILED = 7; } - // A view for [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]s. Controls the level of detail returned - // for [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] in - // [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions] and + // A view for [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]s. + // Controls the level of detail returned for + // [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] in + // [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions] + // and // [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys]. enum CryptoKeyVersionView { - // Default view for each [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Does not include - // the [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation] field. + // Default view for each + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Does not + // include the + // [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation] field. CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED = 0; - // Provides all fields in each [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], including the + // Provides all fields in each + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], including the // [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation]. FULL = 1; } - // Output only. The resource name for this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in the format + // Output only. The resource name for this + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in the format // `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The current state of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. + // The current state of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. CryptoKeyVersionState state = 3; - // Output only. The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] describing how crypto operations are - // performed with this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. - ProtectionLevel protection_level = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] + // describing how crypto operations are performed with this + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. + ProtectionLevel protection_level = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] that this - // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] supports. - CryptoKeyVersionAlgorithm algorithm = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The + // [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] + // that this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] + // supports. + CryptoKeyVersionAlgorithm algorithm = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Statement that was generated and signed by the HSM at key // creation time. Use this statement to verify attributes of the key as stored // on the HSM, independently of Google. Only provided for key versions with - // [protection_level][google.cloud.kms.v1.CryptoKeyVersion.protection_level] [HSM][google.cloud.kms.v1.ProtectionLevel.HSM]. - KeyOperationAttestation attestation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time at which this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] was created. - google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was + // [protection_level][google.cloud.kms.v1.CryptoKeyVersion.protection_level] + // [HSM][google.cloud.kms.v1.ProtectionLevel.HSM]. + KeyOperationAttestation attestation = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] was created. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time this + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was // generated. - google.protobuf.Timestamp generate_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp generate_time = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The time this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material is scheduled - // for destruction. Only present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is + // Output only. The time this + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material is + // scheduled for destruction. Only present if + // [state][google.cloud.kms.v1.CryptoKeyVersion.state] is // [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED]. - google.protobuf.Timestamp destroy_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp destroy_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time this CryptoKeyVersion's key material was - // destroyed. Only present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is + // destroyed. Only present if + // [state][google.cloud.kms.v1.CryptoKeyVersion.state] is // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED]. - google.protobuf.Timestamp destroy_event_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp destroy_event_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The name of the [ImportJob][google.cloud.kms.v1.ImportJob] used in the most recent import of this - // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Only present if the underlying key material was - // imported. + // Output only. The name of the [ImportJob][google.cloud.kms.v1.ImportJob] + // used in the most recent import of this + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Only present if + // the underlying key material was imported. string import_job = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The time at which this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material - // was most recently imported. - google.protobuf.Timestamp import_time = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time at which this + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was + // most recently imported. + google.protobuf.Timestamp import_time = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The root cause of the most recent import failure. Only present if - // [state][google.cloud.kms.v1.CryptoKeyVersion.state] is + // Output only. The root cause of the most recent import failure. Only present + // if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is // [IMPORT_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.IMPORT_FAILED]. string import_failure_reason = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; // ExternalProtectionLevelOptions stores a group of additional fields for - // configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that are specific to the - // [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] protection level. + // configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that + // are specific to the + // [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] protection level + // and [EXTERNAL_VPC][google.cloud.kms.v1.ProtectionLevel.EXTERNAL_VPC] + // protection levels. ExternalProtectionLevelOptions external_protection_level_options = 17; - // Output only. Whether or not this key version is eligible for reimport, by being - // specified as a target in + // Output only. Whether or not this key version is eligible for reimport, by + // being specified as a target in // [ImportCryptoKeyVersionRequest.crypto_key_version][google.cloud.kms.v1.ImportCryptoKeyVersionRequest.crypto_key_version]. bool reimport_eligible = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// The public key for a given [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Obtained via +// The public key for a given +// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Obtained via // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. message PublicKey { option (google.api.resource) = { @@ -469,17 +582,19 @@ message PublicKey { // (https://tools.ietf.org/html/rfc7468#section-13). string pem = 1; - // The [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] associated - // with this key. + // The + // [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] + // 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]. 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 results to this field. Discard the response in case of - // non-matching checksum values, and perform a limited number of retries. A - // persistent mismatch may indicate an issue in your computation of the CRC32C - // checksum. + // [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 + // results to this field. Discard the response in case of non-matching + // checksum values, and perform a limited number of retries. A persistent + // mismatch may indicate an issue in your computation of the CRC32C checksum. // Note: This field is defined as int64 for reasons of compatibility across // different languages. However, it is a non-negative integer, which will // never exceed 2^32-1, and can be safely downconverted to uint32 in languages @@ -488,40 +603,48 @@ message PublicKey { // NOTE: This field is in Beta. google.protobuf.Int64Value pem_crc32c = 3; - // The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key. + // The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key. // Provided here for verification. // // NOTE: This field is in Beta. string name = 4; - // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key. + // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key. ProtectionLevel protection_level = 5; } -// An [ImportJob][google.cloud.kms.v1.ImportJob] can be used to create [CryptoKeys][google.cloud.kms.v1.CryptoKey] and -// [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] using pre-existing key material, -// generated outside of Cloud KMS. +// An [ImportJob][google.cloud.kms.v1.ImportJob] can be used to create +// [CryptoKeys][google.cloud.kms.v1.CryptoKey] and +// [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] using pre-existing +// key material, generated outside of Cloud KMS. // -// When an [ImportJob][google.cloud.kms.v1.ImportJob] is created, Cloud KMS will generate a "wrapping key", -// which is a public/private key pair. You use the wrapping key to encrypt (also -// known as wrap) the pre-existing key material to protect it during the import -// process. The nature of the wrapping key depends on the choice of -// [import_method][google.cloud.kms.v1.ImportJob.import_method]. When the wrapping key generation -// is complete, the [state][google.cloud.kms.v1.ImportJob.state] will be set to -// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] and the [public_key][google.cloud.kms.v1.ImportJob.public_key] -// can be fetched. The fetched public key can then be used to wrap your -// pre-existing key material. +// When an [ImportJob][google.cloud.kms.v1.ImportJob] is created, Cloud KMS will +// generate a "wrapping key", which is a public/private key pair. You use the +// wrapping key to encrypt (also known as wrap) the pre-existing key material to +// protect it during the import process. The nature of the wrapping key depends +// on the choice of +// [import_method][google.cloud.kms.v1.ImportJob.import_method]. When the +// wrapping key generation is complete, the +// [state][google.cloud.kms.v1.ImportJob.state] will be set to +// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] and the +// [public_key][google.cloud.kms.v1.ImportJob.public_key] can be fetched. The +// fetched public key can then be used to wrap your pre-existing key material. // // Once the key material is wrapped, it can be imported into a new -// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in an existing [CryptoKey][google.cloud.kms.v1.CryptoKey] by calling +// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in an existing +// [CryptoKey][google.cloud.kms.v1.CryptoKey] by calling // [ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion]. -// Multiple [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] can be imported with a single -// [ImportJob][google.cloud.kms.v1.ImportJob]. Cloud KMS uses the private key portion of the wrapping key to -// unwrap the key material. Only Cloud KMS has access to the private key. +// Multiple [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] can be +// imported with a single [ImportJob][google.cloud.kms.v1.ImportJob]. Cloud KMS +// uses the private key portion of the wrapping key to unwrap the key material. +// Only Cloud KMS has access to the private key. // -// An [ImportJob][google.cloud.kms.v1.ImportJob] expires 3 days after it is created. Once expired, Cloud KMS -// will no longer be able to import or unwrap any key material that was wrapped -// with the [ImportJob][google.cloud.kms.v1.ImportJob]'s public key. +// An [ImportJob][google.cloud.kms.v1.ImportJob] expires 3 days after it is +// created. Once expired, Cloud KMS will no longer be able to import or unwrap +// any key material that was wrapped with the +// [ImportJob][google.cloud.kms.v1.ImportJob]'s public key. // // For more information, see // [Importing a key](https://cloud.google.com/kms/docs/importing-a-key). @@ -531,18 +654,8 @@ message ImportJob { pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/importJobs/{import_job}" }; - // The public key component of the wrapping key. For details of the type of - // key this public key corresponds to, see the [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod]. - message WrappingPublicKey { - // 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; - } - - // [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] describes the key wrapping method chosen for this + // [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] describes the + // key wrapping method chosen for this // [ImportJob][google.cloud.kms.v1.ImportJob]. enum ImportMethod { // Not specified. @@ -565,18 +678,21 @@ message ImportJob { RSA_OAEP_4096_SHA1_AES_256 = 2; } - // The state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can be used. + // The state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if + // it can be used. enum ImportJobState { // Not specified. IMPORT_JOB_STATE_UNSPECIFIED = 0; // The wrapping key for this job is still being generated. It may not be // used. Cloud KMS will automatically mark this job as - // [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] as soon as the wrapping key is generated. + // [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] as soon as + // the wrapping key is generated. PENDING_GENERATION = 1; // This job may be used in - // [CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey] and + // [CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey] + // and // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] // requests. ACTIVE = 2; @@ -585,41 +701,65 @@ message ImportJob { EXPIRED = 3; } - // Output only. The resource name for this [ImportJob][google.cloud.kms.v1.ImportJob] in the format + // The public key component of the wrapping key. For details of the type of + // key this public key corresponds to, see the + // [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod]. + message WrappingPublicKey { + // 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; + } + + // Output only. The resource name for this + // [ImportJob][google.cloud.kms.v1.ImportJob] in the format // `projects/*/locations/*/keyRings/*/importJobs/*`. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. Immutable. The wrapping method to be used for incoming key material. + // Required. Immutable. The wrapping method to be used for incoming key + // material. ImportMethod import_method = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; - // Required. Immutable. The protection level of the [ImportJob][google.cloud.kms.v1.ImportJob]. This must match the - // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level] of the - // [version_template][google.cloud.kms.v1.CryptoKey.version_template] on the [CryptoKey][google.cloud.kms.v1.CryptoKey] you - // attempt to import into. + // Required. Immutable. The protection level of the + // [ImportJob][google.cloud.kms.v1.ImportJob]. This must match the + // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level] + // of the [version_template][google.cloud.kms.v1.CryptoKey.version_template] + // on the [CryptoKey][google.cloud.kms.v1.CryptoKey] you attempt to import + // into. ProtectionLevel protection_level = 9 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; - // Output only. The time at which this [ImportJob][google.cloud.kms.v1.ImportJob] was created. - google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob]'s key material was generated. - google.protobuf.Timestamp generate_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time at which this [ImportJob][google.cloud.kms.v1.ImportJob] is scheduled for - // expiration and can no longer be used to import key material. - google.protobuf.Timestamp expire_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob] expired. Only present if - // [state][google.cloud.kms.v1.ImportJob.state] is [EXPIRED][google.cloud.kms.v1.ImportJob.ImportJobState.EXPIRED]. - google.protobuf.Timestamp expire_event_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The current state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can - // be used. + // Output only. The time at which this + // [ImportJob][google.cloud.kms.v1.ImportJob] was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob]'s key + // material was generated. + google.protobuf.Timestamp generate_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this + // [ImportJob][google.cloud.kms.v1.ImportJob] is scheduled for expiration and + // can no longer be used to import key material. + google.protobuf.Timestamp expire_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob] + // expired. Only present if [state][google.cloud.kms.v1.ImportJob.state] is + // [EXPIRED][google.cloud.kms.v1.ImportJob.ImportJobState.EXPIRED]. + google.protobuf.Timestamp expire_event_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the + // [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can be used. ImportJobState state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The public key with which to wrap key material prior to @@ -630,14 +770,34 @@ message ImportJob { // Output only. Statement that was generated and signed by the key creator // (for example, an HSM) at key creation time. Use this statement to verify // attributes of the key as stored on the HSM, independently of Google. - // Only present if the chosen [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] is one with a protection - // level of [HSM][google.cloud.kms.v1.ProtectionLevel.HSM]. - KeyOperationAttestation attestation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Only present if the chosen + // [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] is one with a + // protection level of [HSM][google.cloud.kms.v1.ProtectionLevel.HSM]. + KeyOperationAttestation attestation = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// ExternalProtectionLevelOptions stores a group of additional fields for +// configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that +// are specific to the [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] +// protection level and +// [EXTERNAL_VPC][google.cloud.kms.v1.ProtectionLevel.EXTERNAL_VPC] protection +// levels. +message ExternalProtectionLevelOptions { + // The URI for an external resource that this + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents. + string external_key_uri = 1; + + // The path to the external key material on the EKM when using + // [EkmConnection][google.cloud.kms.v1.EkmConnection] e.g., "v0/my/key". Set + // this field instead of external_key_uri when using an + // [EkmConnection][google.cloud.kms.v1.EkmConnection]. + string ekm_connection_key_path = 2; } -// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] specifies how cryptographic operations are performed. -// For more information, see [Protection levels] -// (https://cloud.google.com/kms/docs/algorithms#protection_levels). +// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] specifies how +// cryptographic operations are performed. For more information, see [Protection +// levels] (https://cloud.google.com/kms/docs/algorithms#protection_levels). enum ProtectionLevel { // Not specified. PROTECTION_LEVEL_UNSPECIFIED = 0; @@ -650,12 +810,7 @@ enum ProtectionLevel { // Crypto operations are performed by an external key manager. EXTERNAL = 3; -} -// ExternalProtectionLevelOptions stores a group of additional fields for -// configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that are specific to the -// [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] protection level. -message ExternalProtectionLevelOptions { - // The URI for an external resource that this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents. - string external_key_uri = 1; + // Crypto operations are performed in an EKM-over-VPC backend. + EXTERNAL_VPC = 4; } diff --git a/google/cloud/kms/v1/service.proto b/google/cloud/kms/v1/service.proto index 497fb921d..565678da3 100644 --- a/google/cloud/kms/v1/service.proto +++ b/google/cloud/kms/v1/service.proto @@ -67,7 +67,8 @@ service KeyManagementService { } // Lists [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion]. - rpc ListCryptoKeyVersions(ListCryptoKeyVersionsRequest) returns (ListCryptoKeyVersionsResponse) { + rpc ListCryptoKeyVersions(ListCryptoKeyVersionsRequest) + returns (ListCryptoKeyVersionsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions" }; @@ -90,8 +91,9 @@ service KeyManagementService { option (google.api.method_signature) = "name"; } - // Returns metadata for a given [CryptoKey][google.cloud.kms.v1.CryptoKey], as well as its - // [primary][google.cloud.kms.v1.CryptoKey.primary] [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. + // Returns metadata for a given [CryptoKey][google.cloud.kms.v1.CryptoKey], as + // well as its [primary][google.cloud.kms.v1.CryptoKey.primary] + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. rpc GetCryptoKey(GetCryptoKeyRequest) returns (CryptoKey) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}" @@ -99,17 +101,21 @@ service KeyManagementService { option (google.api.method_signature) = "name"; } - // Returns metadata for a given [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. - rpc GetCryptoKeyVersion(GetCryptoKeyVersionRequest) returns (CryptoKeyVersion) { + // Returns metadata for a given + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. + rpc GetCryptoKeyVersion(GetCryptoKeyVersionRequest) + returns (CryptoKeyVersion) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}" }; option (google.api.method_signature) = "name"; } - // Returns the public key for the given [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. The + // Returns the public key for the given + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. The // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] must be - // [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN] or + // [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN] + // or // [ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT]. rpc GetPublicKey(GetPublicKeyRequest) returns (PublicKey) { option (google.api.http) = { @@ -126,7 +132,8 @@ service KeyManagementService { option (google.api.method_signature) = "name"; } - // Create a new [KeyRing][google.cloud.kms.v1.KeyRing] in a given Project and Location. + // Create a new [KeyRing][google.cloud.kms.v1.KeyRing] in a given Project and + // Location. rpc CreateKeyRing(CreateKeyRingRequest) returns (KeyRing) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*}/keyRings" @@ -135,7 +142,8 @@ service KeyManagementService { option (google.api.method_signature) = "parent,key_ring_id,key_ring"; } - // Create a new [CryptoKey][google.cloud.kms.v1.CryptoKey] within a [KeyRing][google.cloud.kms.v1.KeyRing]. + // Create a new [CryptoKey][google.cloud.kms.v1.CryptoKey] within a + // [KeyRing][google.cloud.kms.v1.KeyRing]. // // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] and // [CryptoKey.version_template.algorithm][google.cloud.kms.v1.CryptoKeyVersionTemplate.algorithm] @@ -148,12 +156,14 @@ service KeyManagementService { option (google.api.method_signature) = "parent,crypto_key_id,crypto_key"; } - // Create a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in a [CryptoKey][google.cloud.kms.v1.CryptoKey]. + // Create a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in a + // [CryptoKey][google.cloud.kms.v1.CryptoKey]. // // The server will assign the next sequential id. If unset, // [state][google.cloud.kms.v1.CryptoKeyVersion.state] will be set to // [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]. - rpc CreateCryptoKeyVersion(CreateCryptoKeyVersionRequest) returns (CryptoKeyVersion) { + rpc CreateCryptoKeyVersion(CreateCryptoKeyVersionRequest) + returns (CryptoKeyVersion) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions" body: "crypto_key_version" @@ -161,22 +171,27 @@ service KeyManagementService { option (google.api.method_signature) = "parent,crypto_key_version"; } - // Import wrapped key material into a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. + // Import wrapped key material into a + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. // - // All requests must specify a [CryptoKey][google.cloud.kms.v1.CryptoKey]. If a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] is - // additionally specified in the request, key material will be reimported into - // that version. Otherwise, a new version will be created, and will be - // assigned the next sequential id within the [CryptoKey][google.cloud.kms.v1.CryptoKey]. - rpc ImportCryptoKeyVersion(ImportCryptoKeyVersionRequest) returns (CryptoKeyVersion) { + // All requests must specify a [CryptoKey][google.cloud.kms.v1.CryptoKey]. If + // a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] is additionally + // specified in the request, key material will be reimported into that + // version. Otherwise, a new version will be created, and will be assigned the + // next sequential id within the [CryptoKey][google.cloud.kms.v1.CryptoKey]. + rpc ImportCryptoKeyVersion(ImportCryptoKeyVersionRequest) + returns (CryptoKeyVersion) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:import" body: "*" }; } - // Create a new [ImportJob][google.cloud.kms.v1.ImportJob] within a [KeyRing][google.cloud.kms.v1.KeyRing]. + // Create a new [ImportJob][google.cloud.kms.v1.ImportJob] within a + // [KeyRing][google.cloud.kms.v1.KeyRing]. // - // [ImportJob.import_method][google.cloud.kms.v1.ImportJob.import_method] is required. + // [ImportJob.import_method][google.cloud.kms.v1.ImportJob.import_method] is + // required. rpc CreateImportJob(CreateImportJobRequest) returns (ImportJob) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs" @@ -194,14 +209,20 @@ service KeyManagementService { option (google.api.method_signature) = "crypto_key,update_mask"; } - // Update a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s metadata. + // Update a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s + // metadata. // // [state][google.cloud.kms.v1.CryptoKeyVersion.state] may be changed between - // [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] and - // [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED] using this - // method. See [DestroyCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.DestroyCryptoKeyVersion] and [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion] to - // move between other states. - rpc UpdateCryptoKeyVersion(UpdateCryptoKeyVersionRequest) returns (CryptoKeyVersion) { + // [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] + // and + // [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED] + // using this method. See + // [DestroyCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.DestroyCryptoKeyVersion] + // and + // [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion] + // to move between other states. + rpc UpdateCryptoKeyVersion(UpdateCryptoKeyVersionRequest) + returns (CryptoKeyVersion) { option (google.api.http) = { patch: "/v1/{crypto_key_version.name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}" body: "crypto_key_version" @@ -209,11 +230,14 @@ service KeyManagementService { option (google.api.method_signature) = "crypto_key_version,update_mask"; } - // Update the version of a [CryptoKey][google.cloud.kms.v1.CryptoKey] that will be used in [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. + // Update the version of a [CryptoKey][google.cloud.kms.v1.CryptoKey] that + // will be used in + // [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. // // Returns an error if called on a key whose purpose is not // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. - rpc UpdateCryptoKeyPrimaryVersion(UpdateCryptoKeyPrimaryVersionRequest) returns (CryptoKey) { + rpc UpdateCryptoKeyPrimaryVersion(UpdateCryptoKeyPrimaryVersionRequest) + returns (CryptoKey) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:updatePrimaryVersion" body: "*" @@ -221,20 +245,29 @@ service KeyManagementService { option (google.api.method_signature) = "name,crypto_key_version_id"; } - // Schedule a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] for destruction. + // Schedule a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] for + // destruction. // - // Upon calling this method, [CryptoKeyVersion.state][google.cloud.kms.v1.CryptoKeyVersion.state] will be set to + // Upon calling this method, + // [CryptoKeyVersion.state][google.cloud.kms.v1.CryptoKeyVersion.state] will + // be set to // [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED], - // and [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] will be set to the time - // [destroy_scheduled_duration][google.cloud.kms.v1.CryptoKey.destroy_scheduled_duration] in the - // future. At that time, the [state][google.cloud.kms.v1.CryptoKeyVersion.state] will - // automatically change to - // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED], and the key - // material will be irrevocably destroyed. + // and [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] will + // be set to the time + // [destroy_scheduled_duration][google.cloud.kms.v1.CryptoKey.destroy_scheduled_duration] + // in the future. At that time, the + // [state][google.cloud.kms.v1.CryptoKeyVersion.state] will automatically + // change to + // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED], + // and the key material will be irrevocably destroyed. // - // Before the [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] is reached, - // [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion] may be called to reverse the process. - rpc DestroyCryptoKeyVersion(DestroyCryptoKeyVersionRequest) returns (CryptoKeyVersion) { + // Before the + // [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] is + // reached, + // [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion] + // may be called to reverse the process. + rpc DestroyCryptoKeyVersion(DestroyCryptoKeyVersionRequest) + returns (CryptoKeyVersion) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:destroy" body: "*" @@ -246,10 +279,13 @@ service KeyManagementService { // [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED] // state. // - // Upon restoration of the CryptoKeyVersion, [state][google.cloud.kms.v1.CryptoKeyVersion.state] - // will be set to [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED], - // and [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] will be cleared. - rpc RestoreCryptoKeyVersion(RestoreCryptoKeyVersionRequest) returns (CryptoKeyVersion) { + // Upon restoration of the CryptoKeyVersion, + // [state][google.cloud.kms.v1.CryptoKeyVersion.state] will be set to + // [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED], + // and [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] will + // be cleared. + rpc RestoreCryptoKeyVersion(RestoreCryptoKeyVersionRequest) + returns (CryptoKeyVersion) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:restore" body: "*" @@ -257,8 +293,9 @@ service KeyManagementService { option (google.api.method_signature) = "name"; } - // Encrypts data, so that it can only be recovered by a call to [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt]. - // The [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] must be + // Encrypts data, so that it can only be recovered by a call to + // [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt]. The + // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] must be // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. rpc Encrypt(EncryptRequest) returns (EncryptResponse) { option (google.api.http) = { @@ -268,8 +305,10 @@ service KeyManagementService { option (google.api.method_signature) = "name,plaintext"; } - // Decrypts data that was protected by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. The [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] - // must be [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. + // Decrypts data that was protected by + // [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. The + // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] must be + // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. rpc Decrypt(DecryptRequest) returns (DecryptResponse) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:decrypt" @@ -278,9 +317,11 @@ service KeyManagementService { option (google.api.method_signature) = "name,ciphertext"; } - // Signs data using a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] + // Signs data using a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] + // with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] // ASYMMETRIC_SIGN, producing a signature that can be verified with the public - // key retrieved from [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. + // key retrieved from + // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. rpc AsymmetricSign(AsymmetricSignRequest) returns (AsymmetricSignResponse) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricSign" @@ -290,9 +331,12 @@ service KeyManagementService { } // Decrypts data that was encrypted with a public key retrieved from - // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey] corresponding to a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with - // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] ASYMMETRIC_DECRYPT. - rpc AsymmetricDecrypt(AsymmetricDecryptRequest) returns (AsymmetricDecryptResponse) { + // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey] + // corresponding to a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] + // with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] + // ASYMMETRIC_DECRYPT. + rpc AsymmetricDecrypt(AsymmetricDecryptRequest) + returns (AsymmetricDecryptResponse) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricDecrypt" body: "*" @@ -300,9 +344,9 @@ service KeyManagementService { option (google.api.method_signature) = "name,ciphertext"; } - // Signs data using a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] - // MAC, producing a tag that can be verified by another source with the - // same key. + // Signs data using a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] + // with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] MAC, + // producing a tag that can be verified by another source with the same key. rpc MacSign(MacSignRequest) returns (MacSignResponse) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macSign" @@ -311,9 +355,10 @@ service KeyManagementService { option (google.api.method_signature) = "name,data"; } - // Verifies MAC tag using a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] - // MAC, and returns a response that indicates whether or not the verification - // was successful. + // Verifies MAC tag using a + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with + // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] MAC, and returns + // a response that indicates whether or not the verification was successful. rpc MacVerify(MacVerifyRequest) returns (MacVerifyResponse) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macVerify" @@ -324,19 +369,23 @@ service KeyManagementService { // Generate random bytes using the Cloud KMS randomness source in the provided // location. - rpc GenerateRandomBytes(GenerateRandomBytesRequest) returns (GenerateRandomBytesResponse) { + rpc GenerateRandomBytes(GenerateRandomBytesRequest) + returns (GenerateRandomBytesResponse) { option (google.api.http) = { post: "/v1/{location=projects/*/locations/*}:generateRandomBytes" body: "*" }; - option (google.api.method_signature) = "location,length_bytes,protection_level"; + option (google.api.method_signature) = + "location,length_bytes,protection_level"; } } -// Request message for [KeyManagementService.ListKeyRings][google.cloud.kms.v1.KeyManagementService.ListKeyRings]. +// Request message for +// [KeyManagementService.ListKeyRings][google.cloud.kms.v1.KeyManagementService.ListKeyRings]. message ListKeyRingsRequest { // Required. The resource name of the location associated with the - // [KeyRings][google.cloud.kms.v1.KeyRing], in the format `projects/*/locations/*`. + // [KeyRings][google.cloud.kms.v1.KeyRing], in the format + // `projects/*/locations/*`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -344,10 +393,13 @@ message ListKeyRingsRequest { } ]; - // Optional. Optional limit on the number of [KeyRings][google.cloud.kms.v1.KeyRing] to include in the - // response. Further [KeyRings][google.cloud.kms.v1.KeyRing] can subsequently be obtained by - // including the [ListKeyRingsResponse.next_page_token][google.cloud.kms.v1.ListKeyRingsResponse.next_page_token] in a subsequent - // request. If unspecified, the server will pick an appropriate default. + // Optional. Optional limit on the number of + // [KeyRings][google.cloud.kms.v1.KeyRing] to include in the response. Further + // [KeyRings][google.cloud.kms.v1.KeyRing] can subsequently be obtained by + // including the + // [ListKeyRingsResponse.next_page_token][google.cloud.kms.v1.ListKeyRingsResponse.next_page_token] + // in a subsequent request. If unspecified, the server will pick an + // appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Optional pagination token, returned earlier via @@ -367,10 +419,11 @@ message ListKeyRingsRequest { string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys]. +// Request message for +// [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys]. message ListCryptoKeysRequest { - // Required. The resource name of the [KeyRing][google.cloud.kms.v1.KeyRing] to list, in the format - // `projects/*/locations/*/keyRings/*`. + // Required. The resource name of the [KeyRing][google.cloud.kms.v1.KeyRing] + // to list, in the format `projects/*/locations/*/keyRings/*`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -378,10 +431,13 @@ message ListCryptoKeysRequest { } ]; - // Optional. Optional limit on the number of [CryptoKeys][google.cloud.kms.v1.CryptoKey] to include in the - // response. Further [CryptoKeys][google.cloud.kms.v1.CryptoKey] can subsequently be obtained by - // including the [ListCryptoKeysResponse.next_page_token][google.cloud.kms.v1.ListCryptoKeysResponse.next_page_token] in a subsequent - // request. If unspecified, the server will pick an appropriate default. + // Optional. Optional limit on the number of + // [CryptoKeys][google.cloud.kms.v1.CryptoKey] to include in the response. + // Further [CryptoKeys][google.cloud.kms.v1.CryptoKey] can subsequently be + // obtained by including the + // [ListCryptoKeysResponse.next_page_token][google.cloud.kms.v1.ListCryptoKeysResponse.next_page_token] + // in a subsequent request. If unspecified, the server will pick an + // appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Optional pagination token, returned earlier via @@ -404,9 +460,11 @@ message ListCryptoKeysRequest { string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions]. +// Request message for +// [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions]. message ListCryptoKeyVersionsRequest { - // Required. The resource name of the [CryptoKey][google.cloud.kms.v1.CryptoKey] to list, in the format + // Required. The resource name of the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] to list, in the format // `projects/*/locations/*/keyRings/*/cryptoKeys/*`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -415,11 +473,13 @@ message ListCryptoKeyVersionsRequest { } ]; - // Optional. Optional limit on the number of [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] to - // include in the response. Further [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] can - // subsequently be obtained by including the - // [ListCryptoKeyVersionsResponse.next_page_token][google.cloud.kms.v1.ListCryptoKeyVersionsResponse.next_page_token] in a subsequent request. - // If unspecified, the server will pick an appropriate default. + // Optional. Optional limit on the number of + // [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] to include in the + // response. Further [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] + // can subsequently be obtained by including the + // [ListCryptoKeyVersionsResponse.next_page_token][google.cloud.kms.v1.ListCryptoKeyVersionsResponse.next_page_token] + // in a subsequent request. If unspecified, the server will pick an + // appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Optional pagination token, returned earlier via @@ -442,10 +502,11 @@ message ListCryptoKeyVersionsRequest { string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.ListImportJobs][google.cloud.kms.v1.KeyManagementService.ListImportJobs]. +// Request message for +// [KeyManagementService.ListImportJobs][google.cloud.kms.v1.KeyManagementService.ListImportJobs]. message ListImportJobsRequest { - // Required. The resource name of the [KeyRing][google.cloud.kms.v1.KeyRing] to list, in the format - // `projects/*/locations/*/keyRings/*`. + // Required. The resource name of the [KeyRing][google.cloud.kms.v1.KeyRing] + // to list, in the format `projects/*/locations/*/keyRings/*`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -453,10 +514,13 @@ message ListImportJobsRequest { } ]; - // Optional. Optional limit on the number of [ImportJobs][google.cloud.kms.v1.ImportJob] to include in the - // response. Further [ImportJobs][google.cloud.kms.v1.ImportJob] can subsequently be obtained by - // including the [ListImportJobsResponse.next_page_token][google.cloud.kms.v1.ListImportJobsResponse.next_page_token] in a subsequent - // request. If unspecified, the server will pick an appropriate default. + // Optional. Optional limit on the number of + // [ImportJobs][google.cloud.kms.v1.ImportJob] to include in the response. + // Further [ImportJobs][google.cloud.kms.v1.ImportJob] can subsequently be + // obtained by including the + // [ListImportJobsResponse.next_page_token][google.cloud.kms.v1.ListImportJobsResponse.next_page_token] + // in a subsequent request. If unspecified, the server will pick an + // appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Optional pagination token, returned earlier via @@ -476,63 +540,76 @@ message ListImportJobsRequest { string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } -// Response message for [KeyManagementService.ListKeyRings][google.cloud.kms.v1.KeyManagementService.ListKeyRings]. +// Response message for +// [KeyManagementService.ListKeyRings][google.cloud.kms.v1.KeyManagementService.ListKeyRings]. message ListKeyRingsResponse { // The list of [KeyRings][google.cloud.kms.v1.KeyRing]. repeated KeyRing key_rings = 1; // A token to retrieve next page of results. Pass this value in - // [ListKeyRingsRequest.page_token][google.cloud.kms.v1.ListKeyRingsRequest.page_token] to retrieve the next page of results. + // [ListKeyRingsRequest.page_token][google.cloud.kms.v1.ListKeyRingsRequest.page_token] + // to retrieve the next page of results. string next_page_token = 2; - // The total number of [KeyRings][google.cloud.kms.v1.KeyRing] that matched the query. + // The total number of [KeyRings][google.cloud.kms.v1.KeyRing] that matched + // the query. int32 total_size = 3; } -// Response message for [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys]. +// Response message for +// [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys]. message ListCryptoKeysResponse { // The list of [CryptoKeys][google.cloud.kms.v1.CryptoKey]. repeated CryptoKey crypto_keys = 1; // A token to retrieve next page of results. Pass this value in - // [ListCryptoKeysRequest.page_token][google.cloud.kms.v1.ListCryptoKeysRequest.page_token] to retrieve the next page of results. + // [ListCryptoKeysRequest.page_token][google.cloud.kms.v1.ListCryptoKeysRequest.page_token] + // to retrieve the next page of results. string next_page_token = 2; - // The total number of [CryptoKeys][google.cloud.kms.v1.CryptoKey] that matched the query. + // The total number of [CryptoKeys][google.cloud.kms.v1.CryptoKey] that + // matched the query. int32 total_size = 3; } -// Response message for [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions]. +// Response message for +// [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions]. message ListCryptoKeyVersionsResponse { // The list of [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion]. repeated CryptoKeyVersion crypto_key_versions = 1; // A token to retrieve next page of results. Pass this value in - // [ListCryptoKeyVersionsRequest.page_token][google.cloud.kms.v1.ListCryptoKeyVersionsRequest.page_token] to retrieve the next page of - // results. + // [ListCryptoKeyVersionsRequest.page_token][google.cloud.kms.v1.ListCryptoKeyVersionsRequest.page_token] + // to retrieve the next page of results. string next_page_token = 2; - // The total number of [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] that matched the + // The total number of + // [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] that matched the // query. int32 total_size = 3; } -// Response message for [KeyManagementService.ListImportJobs][google.cloud.kms.v1.KeyManagementService.ListImportJobs]. +// Response message for +// [KeyManagementService.ListImportJobs][google.cloud.kms.v1.KeyManagementService.ListImportJobs]. message ListImportJobsResponse { // The list of [ImportJobs][google.cloud.kms.v1.ImportJob]. repeated ImportJob import_jobs = 1; // A token to retrieve next page of results. Pass this value in - // [ListImportJobsRequest.page_token][google.cloud.kms.v1.ListImportJobsRequest.page_token] to retrieve the next page of results. + // [ListImportJobsRequest.page_token][google.cloud.kms.v1.ListImportJobsRequest.page_token] + // to retrieve the next page of results. string next_page_token = 2; - // The total number of [ImportJobs][google.cloud.kms.v1.ImportJob] that matched the query. + // The total number of [ImportJobs][google.cloud.kms.v1.ImportJob] that + // matched the query. int32 total_size = 3; } -// Request message for [KeyManagementService.GetKeyRing][google.cloud.kms.v1.KeyManagementService.GetKeyRing]. +// Request message for +// [KeyManagementService.GetKeyRing][google.cloud.kms.v1.KeyManagementService.GetKeyRing]. message GetKeyRingRequest { - // Required. The [name][google.cloud.kms.v1.KeyRing.name] of the [KeyRing][google.cloud.kms.v1.KeyRing] to get. + // Required. The [name][google.cloud.kms.v1.KeyRing.name] of the + // [KeyRing][google.cloud.kms.v1.KeyRing] to get. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -541,9 +618,11 @@ message GetKeyRingRequest { ]; } -// Request message for [KeyManagementService.GetCryptoKey][google.cloud.kms.v1.KeyManagementService.GetCryptoKey]. +// Request message for +// [KeyManagementService.GetCryptoKey][google.cloud.kms.v1.KeyManagementService.GetCryptoKey]. message GetCryptoKeyRequest { - // Required. The [name][google.cloud.kms.v1.CryptoKey.name] of the [CryptoKey][google.cloud.kms.v1.CryptoKey] to get. + // Required. The [name][google.cloud.kms.v1.CryptoKey.name] of the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] to get. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -552,9 +631,11 @@ message GetCryptoKeyRequest { ]; } -// Request message for [KeyManagementService.GetCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.GetCryptoKeyVersion]. +// Request message for +// [KeyManagementService.GetCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.GetCryptoKeyVersion]. message GetCryptoKeyVersionRequest { - // Required. The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to get. + // Required. The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to get. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -563,10 +644,11 @@ message GetCryptoKeyVersionRequest { ]; } -// Request message for [KeyManagementService.GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. +// Request message for +// [KeyManagementService.GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. message GetPublicKeyRequest { - // Required. The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key to - // get. + // Required. The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key to get. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -575,9 +657,11 @@ message GetPublicKeyRequest { ]; } -// Request message for [KeyManagementService.GetImportJob][google.cloud.kms.v1.KeyManagementService.GetImportJob]. +// Request message for +// [KeyManagementService.GetImportJob][google.cloud.kms.v1.KeyManagementService.GetImportJob]. message GetImportJobRequest { - // Required. The [name][google.cloud.kms.v1.ImportJob.name] of the [ImportJob][google.cloud.kms.v1.ImportJob] to get. + // Required. The [name][google.cloud.kms.v1.ImportJob.name] of the + // [ImportJob][google.cloud.kms.v1.ImportJob] to get. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -586,10 +670,12 @@ message GetImportJobRequest { ]; } -// Request message for [KeyManagementService.CreateKeyRing][google.cloud.kms.v1.KeyManagementService.CreateKeyRing]. +// Request message for +// [KeyManagementService.CreateKeyRing][google.cloud.kms.v1.KeyManagementService.CreateKeyRing]. message CreateKeyRingRequest { // Required. The resource name of the location associated with the - // [KeyRings][google.cloud.kms.v1.KeyRing], in the format `projects/*/locations/*`. + // [KeyRings][google.cloud.kms.v1.KeyRing], in the format + // `projects/*/locations/*`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -601,14 +687,16 @@ message CreateKeyRingRequest { // expression `[a-zA-Z0-9_-]{1,63}` string key_ring_id = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. A [KeyRing][google.cloud.kms.v1.KeyRing] with initial field values. + // Required. A [KeyRing][google.cloud.kms.v1.KeyRing] with initial field + // values. KeyRing key_ring = 3 [(google.api.field_behavior) = REQUIRED]; } -// Request message for [KeyManagementService.CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey]. +// Request message for +// [KeyManagementService.CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey]. message CreateCryptoKeyRequest { - // Required. The [name][google.cloud.kms.v1.KeyRing.name] of the KeyRing associated with the - // [CryptoKeys][google.cloud.kms.v1.CryptoKey]. + // Required. The [name][google.cloud.kms.v1.KeyRing.name] of the KeyRing + // associated with the [CryptoKeys][google.cloud.kms.v1.CryptoKey]. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -620,21 +708,27 @@ message CreateCryptoKeyRequest { // expression `[a-zA-Z0-9_-]{1,63}` string crypto_key_id = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. A [CryptoKey][google.cloud.kms.v1.CryptoKey] with initial field values. + // Required. A [CryptoKey][google.cloud.kms.v1.CryptoKey] with initial field + // values. CryptoKey crypto_key = 3 [(google.api.field_behavior) = REQUIRED]; - // If set to true, the request will create a [CryptoKey][google.cloud.kms.v1.CryptoKey] without any - // [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion]. You must manually call - // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or + // If set to true, the request will create a + // [CryptoKey][google.cloud.kms.v1.CryptoKey] without any + // [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion]. You must + // manually call + // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] + // or // [ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion] // before you can use this [CryptoKey][google.cloud.kms.v1.CryptoKey]. bool skip_initial_version_creation = 5; } -// Request message for [KeyManagementService.CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]. +// Request message for +// [KeyManagementService.CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]. message CreateCryptoKeyVersionRequest { - // Required. The [name][google.cloud.kms.v1.CryptoKey.name] of the [CryptoKey][google.cloud.kms.v1.CryptoKey] associated with - // the [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion]. + // Required. The [name][google.cloud.kms.v1.CryptoKey.name] of the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] associated with the + // [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion]. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -642,13 +736,17 @@ message CreateCryptoKeyVersionRequest { } ]; - // Required. A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with initial field values. - CryptoKeyVersion crypto_key_version = 2 [(google.api.field_behavior) = REQUIRED]; + // Required. A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with + // initial field values. + CryptoKeyVersion crypto_key_version = 2 + [(google.api.field_behavior) = REQUIRED]; } -// Request message for [KeyManagementService.ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion]. +// Request message for +// [KeyManagementService.ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion]. message ImportCryptoKeyVersionRequest { - // Required. The [name][google.cloud.kms.v1.CryptoKey.name] of the [CryptoKey][google.cloud.kms.v1.CryptoKey] to be imported into. + // Required. The [name][google.cloud.kms.v1.CryptoKey.name] of the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] to be imported into. // // The create permission is only required on this key when creating a new // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. @@ -659,20 +757,25 @@ message ImportCryptoKeyVersionRequest { } ]; - // Optional. The optional [name][google.cloud.kms.v1.CryptoKeyVersion.name] of an existing - // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to target for an import operation. - // If this field is not present, a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] containing the + // Optional. The optional [name][google.cloud.kms.v1.CryptoKeyVersion.name] of + // an existing [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to + // target for an import operation. If this field is not present, a new + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] containing the // supplied key material is created. // // If this field is present, the supplied key material is imported into - // the existing [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. To import into an existing - // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] must be a child of - // [ImportCryptoKeyVersionRequest.parent][google.cloud.kms.v1.ImportCryptoKeyVersionRequest.parent], have been previously created via - // [ImportCryptoKeyVersion][], and be in - // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED] or + // the existing [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. To + // import into an existing + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] must be a child of + // [ImportCryptoKeyVersionRequest.parent][google.cloud.kms.v1.ImportCryptoKeyVersionRequest.parent], + // have been previously created via [ImportCryptoKeyVersion][], and be in + // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED] + // or // [IMPORT_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.IMPORT_FAILED] // state. The key material and algorithm must match the previous - // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] exactly if the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] has ever contained + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] exactly if the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] has ever contained // key material. string crypto_key_version = 6 [ (google.api.field_behavior) = OPTIONAL, @@ -681,14 +784,17 @@ message ImportCryptoKeyVersionRequest { } ]; - // Required. The [algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] of - // the key being imported. This does not need to match the - // [version_template][google.cloud.kms.v1.CryptoKey.version_template] of the [CryptoKey][google.cloud.kms.v1.CryptoKey] this - // version imports into. - CryptoKeyVersion.CryptoKeyVersionAlgorithm algorithm = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The [name][google.cloud.kms.v1.ImportJob.name] of the [ImportJob][google.cloud.kms.v1.ImportJob] that was used to - // wrap this key material. + // Required. The + // [algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] + // of the key being imported. This does not need to match the + // [version_template][google.cloud.kms.v1.CryptoKey.version_template] of the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] this version imports into. + CryptoKeyVersion.CryptoKeyVersionAlgorithm algorithm = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The [name][google.cloud.kms.v1.ImportJob.name] of the + // [ImportJob][google.cloud.kms.v1.ImportJob] that was used to wrap this key + // material. string import_job = 4 [(google.api.field_behavior) = REQUIRED]; // Required. The incoming wrapped key material that is to be imported. @@ -701,8 +807,9 @@ message ImportCryptoKeyVersionRequest { // This field contains the concatenation of two wrapped keys: //
    //
  1. An ephemeral AES-256 wrapping key wrapped with the - // [public_key][google.cloud.kms.v1.ImportJob.public_key] using RSAES-OAEP with SHA-1, - // MGF1 with SHA-1, and an empty label. + // [public_key][google.cloud.kms.v1.ImportJob.public_key] using + // RSAES-OAEP with SHA-1/SHA-256, MGF1 with SHA-1/SHA-256, and an + // empty label. //
  2. //
  3. The key to be imported, wrapped with the ephemeral AES-256 key // using AES-KWP (RFC 5649). @@ -720,9 +827,11 @@ message ImportCryptoKeyVersionRequest { } } -// Request message for [KeyManagementService.CreateImportJob][google.cloud.kms.v1.KeyManagementService.CreateImportJob]. +// Request message for +// [KeyManagementService.CreateImportJob][google.cloud.kms.v1.KeyManagementService.CreateImportJob]. message CreateImportJobRequest { - // Required. The [name][google.cloud.kms.v1.KeyRing.name] of the [KeyRing][google.cloud.kms.v1.KeyRing] associated with the + // Required. The [name][google.cloud.kms.v1.KeyRing.name] of the + // [KeyRing][google.cloud.kms.v1.KeyRing] associated with the // [ImportJobs][google.cloud.kms.v1.ImportJob]. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -735,31 +844,40 @@ message CreateImportJobRequest { // expression `[a-zA-Z0-9_-]{1,63}` string import_job_id = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. An [ImportJob][google.cloud.kms.v1.ImportJob] with initial field values. + // Required. An [ImportJob][google.cloud.kms.v1.ImportJob] with initial field + // values. ImportJob import_job = 3 [(google.api.field_behavior) = REQUIRED]; } -// Request message for [KeyManagementService.UpdateCryptoKey][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKey]. +// Request message for +// [KeyManagementService.UpdateCryptoKey][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKey]. message UpdateCryptoKeyRequest { // Required. [CryptoKey][google.cloud.kms.v1.CryptoKey] with updated values. CryptoKey crypto_key = 1 [(google.api.field_behavior) = REQUIRED]; // Required. List of fields to be updated in this request. - 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 [KeyManagementService.UpdateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyVersion]. +// Request message for +// [KeyManagementService.UpdateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyVersion]. message UpdateCryptoKeyVersionRequest { - // Required. [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with updated values. - CryptoKeyVersion crypto_key_version = 1 [(google.api.field_behavior) = REQUIRED]; + // Required. [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with + // updated values. + CryptoKeyVersion crypto_key_version = 1 + [(google.api.field_behavior) = REQUIRED]; // Required. List of fields to be updated in this request. - 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 [KeyManagementService.UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]. +// Request message for +// [KeyManagementService.UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]. message UpdateCryptoKeyPrimaryVersionRequest { - // Required. The resource name of the [CryptoKey][google.cloud.kms.v1.CryptoKey] to update. + // Required. The resource name of the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] to update. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -767,13 +885,16 @@ message UpdateCryptoKeyPrimaryVersionRequest { } ]; - // Required. The id of the child [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use as primary. + // Required. The id of the child + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use as primary. string crypto_key_version_id = 2 [(google.api.field_behavior) = REQUIRED]; } -// Request message for [KeyManagementService.DestroyCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.DestroyCryptoKeyVersion]. +// Request message for +// [KeyManagementService.DestroyCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.DestroyCryptoKeyVersion]. message DestroyCryptoKeyVersionRequest { - // Required. The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to destroy. + // Required. The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to destroy. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -782,9 +903,11 @@ message DestroyCryptoKeyVersionRequest { ]; } -// Request message for [KeyManagementService.RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion]. +// Request message for +// [KeyManagementService.RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion]. message RestoreCryptoKeyVersionRequest { - // Required. The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to restore. + // Required. The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to restore. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -793,77 +916,97 @@ message RestoreCryptoKeyVersionRequest { ]; } -// Request message for [KeyManagementService.Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. +// Request message for +// [KeyManagementService.Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. message EncryptRequest { - // Required. The resource name of the [CryptoKey][google.cloud.kms.v1.CryptoKey] or [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] - // to use for encryption. + // Required. The resource name of the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] or + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for + // encryption. // - // If a [CryptoKey][google.cloud.kms.v1.CryptoKey] is specified, the server will use its - // [primary version][google.cloud.kms.v1.CryptoKey.primary]. + // If a [CryptoKey][google.cloud.kms.v1.CryptoKey] is specified, the server + // will use its [primary version][google.cloud.kms.v1.CryptoKey.primary]. string name = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "*" - } + (google.api.resource_reference) = { type: "*" } ]; // Required. The data to encrypt. Must be no larger than 64KiB. // // The maximum size depends on the key version's - // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level]. For - // [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE] keys, the plaintext must be no larger - // than 64KiB. For [HSM][google.cloud.kms.v1.ProtectionLevel.HSM] keys, the combined length of the - // plaintext and additional_authenticated_data fields must be no larger than - // 8KiB. + // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level]. + // For [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE] keys, the + // plaintext must be no larger than 64KiB. For + // [HSM][google.cloud.kms.v1.ProtectionLevel.HSM] keys, the combined length of + // the plaintext and additional_authenticated_data fields must be no larger + // than 8KiB. bytes plaintext = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. Optional data that, if specified, must also be provided during decryption - // through [DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data]. + // Optional. Optional data that, if specified, must also be provided during + // decryption through + // [DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data]. // // The maximum size depends on the key version's - // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level]. For - // [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE] keys, the AAD must be no larger than - // 64KiB. For [HSM][google.cloud.kms.v1.ProtectionLevel.HSM] keys, the combined length of the - // plaintext and additional_authenticated_data fields must be no larger than - // 8KiB. - bytes additional_authenticated_data = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. An optional CRC32C checksum of the [EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]. If - // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the - // received [EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]) is equal to - // [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c], and if so, perform a limited number of - // retries. A persistent mismatch may indicate an issue in your computation of - // the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value plaintext_crc32c = 7 [(google.api.field_behavior) = OPTIONAL]; + // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level]. + // For [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE] keys, the AAD + // must be no larger than 64KiB. For + // [HSM][google.cloud.kms.v1.ProtectionLevel.HSM] keys, the combined length of + // the plaintext and additional_authenticated_data fields must be no larger + // than 8KiB. + bytes additional_authenticated_data = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An optional CRC32C checksum of the + // [EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]. + // If specified, + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // verify the integrity of the received + // [EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext] + // using this checksum. + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]) + // is equal to + // [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value plaintext_crc32c = 7 + [(google.api.field_behavior) = OPTIONAL]; // Optional. An optional CRC32C checksum of the - // [EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]. If specified, - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the received - // [EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]) is equal to - // [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c], and if so, perform - // a limited number of retries. A persistent mismatch may indicate an issue in - // your computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value additional_authenticated_data_crc32c = 8 [(google.api.field_behavior) = OPTIONAL]; + // [EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]. + // If specified, + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // verify the integrity of the received + // [EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data] + // using this checksum. + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]) + // is equal to + // [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value additional_authenticated_data_crc32c = 8 + [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt]. +// Request message for +// [KeyManagementService.Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt]. message DecryptRequest { - // Required. The resource name of the [CryptoKey][google.cloud.kms.v1.CryptoKey] to use for decryption. - // The server will choose the appropriate version. + // Required. The resource name of the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] to use for decryption. The + // server will choose the appropriate version. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -877,43 +1020,60 @@ message DecryptRequest { // Optional. Optional data that must match the data originally supplied in // [EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]. - bytes additional_authenticated_data = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. An optional CRC32C checksum of the [DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]. If - // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the - // received [DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]) is equal to - // [DecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.DecryptRequest.ciphertext_crc32c], and if so, perform a limited number - // of retries. A persistent mismatch may indicate an issue in your computation - // of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value ciphertext_crc32c = 5 [(google.api.field_behavior) = OPTIONAL]; + bytes additional_authenticated_data = 3 + [(google.api.field_behavior) = OPTIONAL]; // Optional. An optional CRC32C checksum of the - // [DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data]. If specified, - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the received - // [DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data]) is equal to - // [DecryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data_crc32c], and if so, perform - // a limited number of retries. A persistent mismatch may indicate an issue in - // your computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value additional_authenticated_data_crc32c = 6 [(google.api.field_behavior) = OPTIONAL]; + // [DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]. + // If specified, + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // verify the integrity of the received + // [DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext] + // using this checksum. + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]) + // is equal to + // [DecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.DecryptRequest.ciphertext_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value ciphertext_crc32c = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An optional CRC32C checksum of the + // [DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data]. + // If specified, + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // verify the integrity of the received + // [DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data] + // using this checksum. + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data]) + // is equal to + // [DecryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value additional_authenticated_data_crc32c = 6 + [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign]. +// Request message for +// [KeyManagementService.AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign]. message AsymmetricSignRequest { - // Required. The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for signing. + // Required. The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for + // signing. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -924,47 +1084,68 @@ message AsymmetricSignRequest { // Optional. The digest of the data to sign. The digest must be produced with // the same digest algorithm as specified by the key version's // [algorithm][google.cloud.kms.v1.CryptoKeyVersion.algorithm]. + // + // This field may not be supplied if + // [AsymmetricSignRequest.data][google.cloud.kms.v1.AsymmetricSignRequest.data] + // is supplied. Digest digest = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. An optional CRC32C checksum of the [AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]. If - // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the - // received [AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]) is equal to - // [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c], and if so, perform a limited - // number of retries. A persistent mismatch may indicate an issue in your - // computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value digest_crc32c = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. This field will only be honored for RAW_PKCS1 keys. - // The data to sign. A digest is computed over the data that will be signed, - // PKCS #1 padding is applied to the digest directly and then encrypted. + // Optional. An optional CRC32C checksum of the + // [AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]. + // If specified, + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // verify the integrity of the received + // [AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest] + // using this checksum. + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]) + // is equal to + // [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value digest_crc32c = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The data to sign. + // It can't be supplied if + // [AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest] + // is supplied. bytes data = 6 [(google.api.field_behavior) = OPTIONAL]; - // Optional. An optional CRC32C checksum of the [AsymmetricSignRequest.data][google.cloud.kms.v1.AsymmetricSignRequest.data]. If - // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the - // received [AsymmetricSignRequest.data][google.cloud.kms.v1.AsymmetricSignRequest.data] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([AsymmetricSignRequest.data][google.cloud.kms.v1.AsymmetricSignRequest.data]) is equal to - // [AsymmetricSignRequest.data_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.data_crc32c], and if so, perform a limited - // number of retries. A persistent mismatch may indicate an issue in your - // computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value data_crc32c = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. An optional CRC32C checksum of the + // [AsymmetricSignRequest.data][google.cloud.kms.v1.AsymmetricSignRequest.data]. + // If specified, + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // verify the integrity of the received + // [AsymmetricSignRequest.data][google.cloud.kms.v1.AsymmetricSignRequest.data] + // using this checksum. + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([AsymmetricSignRequest.data][google.cloud.kms.v1.AsymmetricSignRequest.data]) + // is equal to + // [AsymmetricSignRequest.data_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.data_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value data_crc32c = 7 + [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt]. +// Request message for +// [KeyManagementService.AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt]. message AsymmetricDecryptRequest { - // Required. The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for + // Required. The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for // decryption. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -973,29 +1154,40 @@ message AsymmetricDecryptRequest { } ]; - // Required. The data encrypted with the named [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s public - // key using OAEP. + // Required. The data encrypted with the named + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s public key using + // OAEP. bytes ciphertext = 3 [(google.api.field_behavior) = REQUIRED]; - // Optional. An optional CRC32C checksum of the [AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]. - // If specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the - // received [AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]) is equal to - // [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c], and if so, perform a - // limited number of retries. A persistent mismatch may indicate an issue in - // your computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value ciphertext_crc32c = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. An optional CRC32C checksum of the + // [AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]. + // If specified, + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // verify the integrity of the received + // [AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext] + // using this checksum. + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]) + // is equal to + // [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value ciphertext_crc32c = 4 + [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.MacSign][google.cloud.kms.v1.KeyManagementService.MacSign]. +// Request message for +// [KeyManagementService.MacSign][google.cloud.kms.v1.KeyManagementService.MacSign]. message MacSignRequest { - // Required. The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for signing. + // Required. The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for + // signing. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1003,29 +1195,37 @@ message MacSignRequest { } ]; - // Required. The data to sign. The MAC tag is computed over this data field based on - // the specific algorithm. + // Required. The data to sign. The MAC tag is computed over this data field + // based on the specific algorithm. bytes data = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. An optional CRC32C checksum of the [MacSignRequest.data][google.cloud.kms.v1.MacSignRequest.data]. If - // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the - // received [MacSignRequest.data][google.cloud.kms.v1.MacSignRequest.data] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([MacSignRequest.data][google.cloud.kms.v1.MacSignRequest.data]) is equal to - // [MacSignRequest.data_crc32c][google.cloud.kms.v1.MacSignRequest.data_crc32c], and if so, perform a limited - // number of retries. A persistent mismatch may indicate an issue in your - // computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value data_crc32c = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. An optional CRC32C checksum of the + // [MacSignRequest.data][google.cloud.kms.v1.MacSignRequest.data]. If + // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] + // will verify the integrity of the received + // [MacSignRequest.data][google.cloud.kms.v1.MacSignRequest.data] using this + // checksum. [KeyManagementService][google.cloud.kms.v1.KeyManagementService] + // will report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([MacSignRequest.data][google.cloud.kms.v1.MacSignRequest.data]) is + // equal to + // [MacSignRequest.data_crc32c][google.cloud.kms.v1.MacSignRequest.data_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value data_crc32c = 3 + [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.MacVerify][google.cloud.kms.v1.KeyManagementService.MacVerify]. +// Request message for +// [KeyManagementService.MacVerify][google.cloud.kms.v1.KeyManagementService.MacVerify]. message MacVerifyRequest { - // Required. The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for verification. + // Required. The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to use for + // verification. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1033,45 +1233,57 @@ message MacVerifyRequest { } ]; - // Required. The data used previously as a [MacSignRequest.data][google.cloud.kms.v1.MacSignRequest.data] to generate the MAC - // tag. + // Required. The data used previously as a + // [MacSignRequest.data][google.cloud.kms.v1.MacSignRequest.data] to generate + // the MAC tag. bytes data = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. An optional CRC32C checksum of the [MacVerifyRequest.data][google.cloud.kms.v1.MacVerifyRequest.data]. If - // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the - // received [MacVerifyRequest.data][google.cloud.kms.v1.MacVerifyRequest.data] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that - // CRC32C([MacVerifyRequest.data][google.cloud.kms.v1.MacVerifyRequest.data]) is equal to - // [MacVerifyRequest.data_crc32c][google.cloud.kms.v1.MacVerifyRequest.data_crc32c], and if so, perform a limited - // number of retries. A persistent mismatch may indicate an issue in your - // computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value data_crc32c = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. An optional CRC32C checksum of the + // [MacVerifyRequest.data][google.cloud.kms.v1.MacVerifyRequest.data]. If + // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] + // will verify the integrity of the received + // [MacVerifyRequest.data][google.cloud.kms.v1.MacVerifyRequest.data] using + // this checksum. + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will + // report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that + // CRC32C([MacVerifyRequest.data][google.cloud.kms.v1.MacVerifyRequest.data]) + // is equal to + // [MacVerifyRequest.data_crc32c][google.cloud.kms.v1.MacVerifyRequest.data_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value data_crc32c = 3 + [(google.api.field_behavior) = OPTIONAL]; // Required. The signature to verify. bytes mac = 4 [(google.api.field_behavior) = REQUIRED]; - // Optional. An optional CRC32C checksum of the [MacVerifyRequest.mac][google.cloud.kms.v1.MacVerifyRequest.mac]. If - // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the - // received [MacVerifyRequest.mac][google.cloud.kms.v1.MacVerifyRequest.mac] using this checksum. - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification - // fails. If you receive a checksum error, your client should verify that + // Optional. An optional CRC32C checksum of the + // [MacVerifyRequest.mac][google.cloud.kms.v1.MacVerifyRequest.mac]. If + // specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] + // will verify the integrity of the received + // [MacVerifyRequest.mac][google.cloud.kms.v1.MacVerifyRequest.mac] using this + // checksum. [KeyManagementService][google.cloud.kms.v1.KeyManagementService] + // will report an error if the checksum verification fails. If you receive a + // checksum error, your client should verify that // CRC32C([MacVerifyRequest.tag][]) is equal to - // [MacVerifyRequest.mac_crc32c][google.cloud.kms.v1.MacVerifyRequest.mac_crc32c], and if so, perform a limited - // number of retries. A persistent mismatch may indicate an issue in your - // computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. - google.protobuf.Int64Value mac_crc32c = 5 [(google.api.field_behavior) = OPTIONAL]; + // [MacVerifyRequest.mac_crc32c][google.cloud.kms.v1.MacVerifyRequest.mac_crc32c], + // and if so, perform a limited number of retries. A persistent mismatch may + // indicate an issue in your computation of the CRC32C checksum. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. + google.protobuf.Int64Value mac_crc32c = 5 + [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [KeyManagementService.GenerateRandomBytes][google.cloud.kms.v1.KeyManagementService.GenerateRandomBytes]. +// Request message for +// [KeyManagementService.GenerateRandomBytes][google.cloud.kms.v1.KeyManagementService.GenerateRandomBytes]. message GenerateRandomBytesRequest { // The project-specific location in which to generate random bytes. // For example, "projects/my-project/locations/us-central1". @@ -1081,228 +1293,311 @@ message GenerateRandomBytesRequest { // bytes, maximum 1024 bytes. int32 length_bytes = 2; - // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when generating the random data. Defaults to - // [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE]. + // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when + // generating the random data. Currently, only + // [HSM][google.cloud.kms.v1.ProtectionLevel.HSM] protection level is + // supported. ProtectionLevel protection_level = 3; } -// Response message for [KeyManagementService.Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. +// Response message for +// [KeyManagementService.Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. message EncryptResponse { - // The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used in encryption. Check - // this field to verify that the intended resource was used for encryption. + // The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used in + // encryption. Check this field to verify that the intended resource was used + // for encryption. string name = 1; // The encrypted data. bytes ciphertext = 2; // Integrity verification field. A CRC32C checksum of the returned - // [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext]. An integrity check of - // [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext] can be performed by computing the CRC32C - // checksum of [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext] and comparing your results to - // this field. Discard the response in case of non-matching checksum values, - // and perform a limited number of retries. A persistent mismatch may indicate - // an issue in your computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. + // [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext]. + // An integrity check of + // [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext] + // can be performed by computing the CRC32C checksum of + // [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext] + // and comparing your results to this field. Discard the response in case of + // non-matching checksum values, and perform a limited number of retries. A + // persistent mismatch may indicate an issue in your computation of the CRC32C + // checksum. Note: This field is defined as int64 for reasons of compatibility + // across different languages. However, it is a non-negative integer, which + // will never exceed 2^32-1, and can be safely downconverted to uint32 in + // languages that support this type. google.protobuf.Int64Value ciphertext_crc32c = 4; // Integrity verification field. A flag indicating whether - // [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] was received by - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the - // [plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]. A false value of this field - // indicates either that [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] was left unset or - // that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've set - // [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] but this field is still false, discard - // the response and perform a limited number of retries. + // [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] + // was received by + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used + // for the integrity verification of the + // [plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]. A false value of + // this field indicates either that + // [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] + // was left unset or that it was not delivered to + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + // set + // [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] + // but this field is still false, discard the response and perform a limited + // number of retries. bool verified_plaintext_crc32c = 5; // Integrity verification field. A flag indicating whether - // [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] was received by - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the - // [AAD][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]. A false value of this - // field indicates either that - // [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] was left unset or - // that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've set - // [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] but this field is - // still false, discard the response and perform a limited number of retries. + // [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] + // was received by + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used + // for the integrity verification of the + // [AAD][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]. A + // false value of this field indicates either that + // [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] + // was left unset or that it was not delivered to + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + // set + // [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] + // but this field is still false, discard the response and perform a limited + // number of retries. bool verified_additional_authenticated_data_crc32c = 6; - // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used in encryption. + // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used in + // encryption. ProtectionLevel protection_level = 7; } -// Response message for [KeyManagementService.Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt]. +// Response message for +// [KeyManagementService.Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt]. message DecryptResponse { - // The decrypted data originally supplied in [EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]. + // The decrypted data originally supplied in + // [EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]. bytes plaintext = 1; // Integrity verification field. A CRC32C checksum of the returned - // [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext]. An integrity check of - // [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext] can be performed by computing the CRC32C - // checksum of [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext] and comparing your results to - // this field. Discard the response in case of non-matching checksum values, - // and perform a limited number of retries. A persistent mismatch may indicate - // an issue in your computation of the CRC32C checksum. Note: receiving this - // response message indicates that [KeyManagementService][google.cloud.kms.v1.KeyManagementService] is able to - // successfully decrypt the [ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. + // [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext]. + // An integrity check of + // [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext] + // can be performed by computing the CRC32C checksum of + // [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext] + // and comparing your results to this field. Discard the response in case of + // non-matching checksum values, and perform a limited number of retries. A + // persistent mismatch may indicate an issue in your computation of the CRC32C + // checksum. Note: receiving this response message indicates that + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] is able to + // successfully decrypt the + // [ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]. Note: This + // field is defined as int64 for reasons of compatibility across different + // languages. However, it is a non-negative integer, which will never exceed + // 2^32-1, and can be safely downconverted to uint32 in languages that support + // this type. google.protobuf.Int64Value plaintext_crc32c = 2; // Whether the Decryption was performed using the primary key version. bool used_primary = 3; - // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used in decryption. + // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used in + // decryption. ProtectionLevel protection_level = 4; } -// Response message for [KeyManagementService.AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign]. +// Response message for +// [KeyManagementService.AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign]. message AsymmetricSignResponse { // The created signature. bytes signature = 1; // Integrity verification field. A CRC32C checksum of the returned - // [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature]. An integrity check of - // [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature] can be performed by computing the - // CRC32C checksum of [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature] and comparing your - // results to this field. Discard the response in case of non-matching - // checksum values, and perform a limited number of retries. A persistent - // mismatch may indicate an issue in your computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. + // [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature]. + // An integrity check of + // [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature] + // can be performed by computing the CRC32C checksum of + // [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature] + // and comparing your results to this field. Discard the response in case of + // non-matching checksum values, and perform a limited number of retries. A + // persistent mismatch may indicate an issue in your computation of the CRC32C + // checksum. Note: This field is defined as int64 for reasons of compatibility + // across different languages. However, it is a non-negative integer, which + // will never exceed 2^32-1, and can be safely downconverted to uint32 in + // languages that support this type. google.protobuf.Int64Value signature_crc32c = 2; // Integrity verification field. A flag indicating whether - // [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] was received by - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the - // [digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]. A false value of this field - // indicates either that [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] was left - // unset or that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've - // set [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] but this field is still false, - // discard the response and perform a limited number of retries. + // [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] + // was received by + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used + // for the integrity verification of the + // [digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]. A false value + // of this field indicates either that + // [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] + // was left unset or that it was not delivered to + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + // set + // [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] + // but this field is still false, discard the response and perform a limited + // number of retries. bool verified_digest_crc32c = 3; - // The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. Check - // this field to verify that the intended resource was used for signing. + // The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. + // Check this field to verify that the intended resource was used for signing. string name = 4; // Integrity verification field. A flag indicating whether - // [AsymmetricSignRequest.data_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.data_crc32c] was received by - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the - // [data][google.cloud.kms.v1.AsymmetricSignRequest.data]. A false value of this field - // indicates either that [AsymmetricSignRequest.data_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.data_crc32c] was left - // unset or that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've - // set [AsymmetricSignRequest.data_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.data_crc32c] but this field is still false, - // discard the response and perform a limited number of retries. + // [AsymmetricSignRequest.data_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.data_crc32c] + // was received by + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used + // for the integrity verification of the + // [data][google.cloud.kms.v1.AsymmetricSignRequest.data]. A false value of + // this field indicates either that + // [AsymmetricSignRequest.data_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.data_crc32c] + // was left unset or that it was not delivered to + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + // set + // [AsymmetricSignRequest.data_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.data_crc32c] + // but this field is still false, discard the response and perform a limited + // number of retries. bool verified_data_crc32c = 5; - // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. + // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. ProtectionLevel protection_level = 6; } -// Response message for [KeyManagementService.AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt]. +// Response message for +// [KeyManagementService.AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt]. message AsymmetricDecryptResponse { // The decrypted data originally encrypted with the matching public key. bytes plaintext = 1; // Integrity verification field. A CRC32C checksum of the returned - // [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext]. An integrity check of - // [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext] can be performed by computing the - // CRC32C checksum of [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext] and comparing - // your results to this field. Discard the response in case of non-matching - // checksum values, and perform a limited number of retries. A persistent - // mismatch may indicate an issue in your computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. + // [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext]. + // An integrity check of + // [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext] + // can be performed by computing the CRC32C checksum of + // [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext] + // and comparing your results to this field. Discard the response in case of + // non-matching checksum values, and perform a limited number of retries. A + // persistent mismatch may indicate an issue in your computation of the CRC32C + // checksum. Note: This field is defined as int64 for reasons of compatibility + // across different languages. However, it is a non-negative integer, which + // will never exceed 2^32-1, and can be safely downconverted to uint32 in + // languages that support this type. google.protobuf.Int64Value plaintext_crc32c = 2; // Integrity verification field. A flag indicating whether - // [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] was received by - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the - // [ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]. A false value of this - // field indicates either that [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] - // was left unset or that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If - // you've set [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] but this field is - // still false, discard the response and perform a limited number of retries. + // [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] + // was received by + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used + // for the integrity verification of the + // [ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]. A + // false value of this field indicates either that + // [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] + // was left unset or that it was not delivered to + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + // set + // [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] + // but this field is still false, discard the response and perform a limited + // number of retries. bool verified_ciphertext_crc32c = 3; - // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used in decryption. + // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used in + // decryption. ProtectionLevel protection_level = 4; } -// Response message for [KeyManagementService.MacSign][google.cloud.kms.v1.KeyManagementService.MacSign]. +// Response message for +// [KeyManagementService.MacSign][google.cloud.kms.v1.KeyManagementService.MacSign]. message MacSignResponse { - // The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. Check - // this field to verify that the intended resource was used for signing. + // The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. + // Check this field to verify that the intended resource was used for signing. string name = 1; // The created signature. bytes mac = 2; // Integrity verification field. A CRC32C checksum of the returned - // [MacSignResponse.mac][google.cloud.kms.v1.MacSignResponse.mac]. An integrity check of - // [MacSignResponse.mac][google.cloud.kms.v1.MacSignResponse.mac] can be performed by computing the - // CRC32C checksum of [MacSignResponse.mac][google.cloud.kms.v1.MacSignResponse.mac] and comparing your - // results to this field. Discard the response in case of non-matching - // checksum values, and perform a limited number of retries. A persistent - // mismatch may indicate an issue in your computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. + // [MacSignResponse.mac][google.cloud.kms.v1.MacSignResponse.mac]. An + // integrity check of + // [MacSignResponse.mac][google.cloud.kms.v1.MacSignResponse.mac] can be + // performed by computing the CRC32C checksum of + // [MacSignResponse.mac][google.cloud.kms.v1.MacSignResponse.mac] and + // comparing your results to this field. Discard the response in case of + // non-matching checksum values, and perform a limited number of retries. A + // persistent mismatch may indicate an issue in your computation of the CRC32C + // checksum. Note: This field is defined as int64 for reasons of compatibility + // across different languages. However, it is a non-negative integer, which + // will never exceed 2^32-1, and can be safely downconverted to uint32 in + // languages that support this type. google.protobuf.Int64Value mac_crc32c = 3; // Integrity verification field. A flag indicating whether - // [MacSignRequest.data_crc32c][google.cloud.kms.v1.MacSignRequest.data_crc32c] was received by - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the - // [data][google.cloud.kms.v1.MacSignRequest.data]. A false value of this field - // indicates either that [MacSignRequest.data_crc32c][google.cloud.kms.v1.MacSignRequest.data_crc32c] was left - // unset or that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've - // set [MacSignRequest.data_crc32c][google.cloud.kms.v1.MacSignRequest.data_crc32c] but this field is still false, - // discard the response and perform a limited number of retries. + // [MacSignRequest.data_crc32c][google.cloud.kms.v1.MacSignRequest.data_crc32c] + // was received by + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used + // for the integrity verification of the + // [data][google.cloud.kms.v1.MacSignRequest.data]. A false value of this + // field indicates either that + // [MacSignRequest.data_crc32c][google.cloud.kms.v1.MacSignRequest.data_crc32c] + // was left unset or that it was not delivered to + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + // set + // [MacSignRequest.data_crc32c][google.cloud.kms.v1.MacSignRequest.data_crc32c] + // but this field is still false, discard the response and perform a limited + // number of retries. bool verified_data_crc32c = 4; - // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. + // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. ProtectionLevel protection_level = 5; } -// Response message for [KeyManagementService.MacVerify][google.cloud.kms.v1.KeyManagementService.MacVerify]. +// Response message for +// [KeyManagementService.MacVerify][google.cloud.kms.v1.KeyManagementService.MacVerify]. message MacVerifyResponse { - // The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for verification. - // Check this field to verify that the intended resource was used for - // verification. + // The resource name of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for + // verification. Check this field to verify that the intended resource was + // used for verification. string name = 1; // This field indicates whether or not the verification operation for - // [MacVerifyRequest.mac][google.cloud.kms.v1.MacVerifyRequest.mac] over [MacVerifyRequest.data][google.cloud.kms.v1.MacVerifyRequest.data] was successful. + // [MacVerifyRequest.mac][google.cloud.kms.v1.MacVerifyRequest.mac] over + // [MacVerifyRequest.data][google.cloud.kms.v1.MacVerifyRequest.data] was + // successful. bool success = 2; // Integrity verification field. A flag indicating whether - // [MacVerifyRequest.data_crc32c][google.cloud.kms.v1.MacVerifyRequest.data_crc32c] was received by - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the - // [data][google.cloud.kms.v1.MacVerifyRequest.data]. A false value of this field - // indicates either that [MacVerifyRequest.data_crc32c][google.cloud.kms.v1.MacVerifyRequest.data_crc32c] was left - // unset or that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've - // set [MacVerifyRequest.data_crc32c][google.cloud.kms.v1.MacVerifyRequest.data_crc32c] but this field is still false, - // discard the response and perform a limited number of retries. + // [MacVerifyRequest.data_crc32c][google.cloud.kms.v1.MacVerifyRequest.data_crc32c] + // was received by + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used + // for the integrity verification of the + // [data][google.cloud.kms.v1.MacVerifyRequest.data]. A false value of this + // field indicates either that + // [MacVerifyRequest.data_crc32c][google.cloud.kms.v1.MacVerifyRequest.data_crc32c] + // was left unset or that it was not delivered to + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + // set + // [MacVerifyRequest.data_crc32c][google.cloud.kms.v1.MacVerifyRequest.data_crc32c] + // but this field is still false, discard the response and perform a limited + // number of retries. bool verified_data_crc32c = 3; // Integrity verification field. A flag indicating whether - // [MacVerifyRequest.mac_crc32c][google.cloud.kms.v1.MacVerifyRequest.mac_crc32c] was received by - // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the - // [data][google.cloud.kms.v1.MacVerifyRequest.mac]. A false value of this field - // indicates either that [MacVerifyRequest.mac_crc32c][google.cloud.kms.v1.MacVerifyRequest.mac_crc32c] was left - // unset or that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've - // set [MacVerifyRequest.mac_crc32c][google.cloud.kms.v1.MacVerifyRequest.mac_crc32c] but this field is still false, - // discard the response and perform a limited number of retries. + // [MacVerifyRequest.mac_crc32c][google.cloud.kms.v1.MacVerifyRequest.mac_crc32c] + // was received by + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used + // for the integrity verification of the + // [data][google.cloud.kms.v1.MacVerifyRequest.mac]. A false value of this + // field indicates either that + // [MacVerifyRequest.mac_crc32c][google.cloud.kms.v1.MacVerifyRequest.mac_crc32c] + // was left unset or that it was not delivered to + // [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + // set + // [MacVerifyRequest.mac_crc32c][google.cloud.kms.v1.MacVerifyRequest.mac_crc32c] + // but this field is still false, discard the response and perform a limited + // number of retries. bool verified_mac_crc32c = 4; // Integrity verification field. This value is used for the integrity @@ -1311,26 +1606,31 @@ message MacVerifyResponse { // and perform a limited number of retries. bool verified_success_integrity = 5; - // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for verification. + // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the + // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for + // verification. ProtectionLevel protection_level = 6; } -// Response message for [KeyManagementService.GenerateRandomBytes][google.cloud.kms.v1.KeyManagementService.GenerateRandomBytes]. +// Response message for +// [KeyManagementService.GenerateRandomBytes][google.cloud.kms.v1.KeyManagementService.GenerateRandomBytes]. message GenerateRandomBytesResponse { // The generated data. bytes data = 1; // Integrity verification field. A CRC32C checksum of the returned - // [GenerateRandomBytesResponse.data][google.cloud.kms.v1.GenerateRandomBytesResponse.data]. An integrity check of - // [GenerateRandomBytesResponse.data][google.cloud.kms.v1.GenerateRandomBytesResponse.data] can be performed by computing the - // CRC32C checksum of [GenerateRandomBytesResponse.data][google.cloud.kms.v1.GenerateRandomBytesResponse.data] and comparing your - // results to this field. Discard the response in case of non-matching - // checksum values, and perform a limited number of retries. A persistent - // mismatch may indicate an issue in your computation of the CRC32C checksum. - // Note: This field is defined as int64 for reasons of compatibility across - // different languages. However, it is a non-negative integer, which will - // never exceed 2^32-1, and can be safely downconverted to uint32 in languages - // that support this type. + // [GenerateRandomBytesResponse.data][google.cloud.kms.v1.GenerateRandomBytesResponse.data]. + // An integrity check of + // [GenerateRandomBytesResponse.data][google.cloud.kms.v1.GenerateRandomBytesResponse.data] + // can be performed by computing the CRC32C checksum of + // [GenerateRandomBytesResponse.data][google.cloud.kms.v1.GenerateRandomBytesResponse.data] + // and comparing your results to this field. Discard the response in case of + // non-matching checksum values, and perform a limited number of retries. A + // persistent mismatch may indicate an issue in your computation of the CRC32C + // checksum. Note: This field is defined as int64 for reasons of compatibility + // across different languages. However, it is a non-negative integer, which + // will never exceed 2^32-1, and can be safely downconverted to uint32 in + // languages that support this type. google.protobuf.Int64Value data_crc32c = 3; } @@ -1349,15 +1649,18 @@ message Digest { } } -// Cloud KMS metadata for the given [google.cloud.location.Location][google.cloud.location.Location]. +// Cloud KMS metadata for the given +// [google.cloud.location.Location][google.cloud.location.Location]. message LocationMetadata { // Indicates whether [CryptoKeys][google.cloud.kms.v1.CryptoKey] with // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level] - // [HSM][google.cloud.kms.v1.ProtectionLevel.HSM] can be created in this location. + // [HSM][google.cloud.kms.v1.ProtectionLevel.HSM] can be created in this + // location. bool hsm_available = 1; // Indicates whether [CryptoKeys][google.cloud.kms.v1.CryptoKey] with // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level] - // [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] can be created in this location. + // [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] can be created in + // this location. bool ekm_available = 2; } diff --git a/google/cloud/kubernetes/security/containersecurity_logging/BUILD.bazel b/google/cloud/kubernetes/security/containersecurity_logging/BUILD.bazel new file mode 100644 index 000000000..b840b48b6 --- /dev/null +++ b/google/cloud/kubernetes/security/containersecurity_logging/BUILD.bazel @@ -0,0 +1,175 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = "containersecurity_logging_proto", + srcs = [ + "logging.proto", + ], + deps = [ + "@com_google_protobuf//:timestamp_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "containersecurity_logging_java_proto", + deps = [":containersecurity_logging_proto"], +) + +java_grpc_library( + name = "containersecurity_logging_java_grpc", + srcs = [":containersecurity_logging_proto"], + deps = [":containersecurity_logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "containersecurity_logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/kubernetes/security/containersecurity_logging", + protos = [":containersecurity_logging_proto"], + deps = [], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "containersecurity_logging_moved_proto", + srcs = [":containersecurity_logging_proto"], + deps = [ + "@com_google_protobuf//:timestamp_proto", + ], +) + +py_proto_library( + name = "containersecurity_logging_py_proto", + deps = [":containersecurity_logging_moved_proto"], +) + +py_grpc_library( + name = "containersecurity_logging_py_grpc", + srcs = [":containersecurity_logging_moved_proto"], + deps = [":containersecurity_logging_py_proto"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "containersecurity_logging_php_proto", + deps = [":containersecurity_logging_proto"], +) + +php_grpc_library( + name = "containersecurity_logging_php_grpc", + srcs = [":containersecurity_logging_proto"], + deps = [":containersecurity_logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "containersecurity_logging_ruby_proto", + deps = [":containersecurity_logging_proto"], +) + +ruby_grpc_library( + name = "containersecurity_logging_ruby_grpc", + srcs = [":containersecurity_logging_proto"], + deps = [":containersecurity_logging_ruby_proto"], +) + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "containersecurity_logging_csharp_proto", + deps = [":containersecurity_logging_proto"], +) + +csharp_grpc_library( + name = "containersecurity_logging_csharp_grpc", + srcs = [":containersecurity_logging_proto"], + deps = [":containersecurity_logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "containersecurity_logging_cc_proto", + deps = [":containersecurity_logging_proto"], +) + +cc_grpc_library( + name = "containersecurity_logging_cc_grpc", + srcs = [":containersecurity_logging_proto"], + grpc_only = True, + deps = [":containersecurity_logging_cc_proto"], +) diff --git a/google/cloud/kubernetes/security/containersecurity_logging/logging.proto b/google/cloud/kubernetes/security/containersecurity_logging/logging.proto new file mode 100644 index 000000000..4e95f48e8 --- /dev/null +++ b/google/cloud/kubernetes/security/containersecurity_logging/logging.proto @@ -0,0 +1,146 @@ +// 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 cloud.kubernetes.security.containersecurity_logging; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Kubernetes.Security.ContainerSecurity.Logging"; +option go_package = "google.golang.org/genproto/googleapis/cloud/kubernetes/security/containersecurity_logging;containersecurity_logging"; +option java_multiple_files = true; +option java_outer_classname = "ContainerSecurityLoggingProto"; +option java_package = "com.google.cloud.kubernetes.security.containersecurity.logging"; +option php_namespace = "Google\\Cloud\\Kubernetes\\Security\\ContainerSecurity\\Logging"; +option ruby_package = "Google::Cloud::Kubernetes::Security::ContainerSecurity::Logging"; + +// Identifies a package vulnerability found within a workload. +message Vulnerability { + // package name where vulnerability detected + string package_name = 1; + + // affected package version + string affected_package_version = 2; + + // title of vulnerability assigned by CVE + string cve_id = 3; + + // cpe_uri where vulnerability detected + string cpe_uri = 4; + + // assigned severity for vulnerability + Severity severity = 5; + + // overall CVSS score + float cvss_score = 6; + + // detailed CVSS score, format `CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N` + string cvss_vector = 7; + + // cpe_uri where vulnerability is fixed + string fixed_cpe_uri = 8; + + // type of package (os, maven, go) + string package_type = 9; + + // package name where vulnerability is fixed + string fixed_package = 10; + + // fixed package version + string fixed_package_version = 11; + + // detailed description + string description = 12; + + // reference URL for source CVE database + repeated string related_urls = 13; + + // affected images + repeated string affected_images = 14; +} + +// A security concern for an asset(i.e cluster, workload, etc). Each finding +// corresponds to a type of security concern. A finding is created during the +// scan of an asset by any one of the GKE Security Posture features that are +// enabled. +message Finding { + // The current state of the finding(e.g still active, has been fixed etc). + enum State { + // Default value, only used to determine that nothing was specified. + STATE_UNSPECIFIED = 0; + + // Active state means that the finding exists on the asset. + ACTIVE = 1; + + // Remediated means that the finding has been fixed on the asset. + REMEDIATED = 2; + } + + // Fully qualified resource name of the k8s resource, e.g.: + // {api}/{version}/namespaces/{namespace}/{kind}/{workload name} + string resource_name = 1; + + // The type of security finding this is. + FindingType type = 2; + + // State determines whether the finding still exists or has been resolved. + State state = 3; + + // The human readable representation of the specific security finding. + // e.g. RUN_AS_NONROOT, CVE_ID_0 etc depending on the type. + string finding = 4; + + // Severity determines the recommended actions for this finding. + Severity severity = 5; + + // The time this finding was found/remediated. + google.protobuf.Timestamp event_time = 6; + + // Specific details about the security finding if there are any. + oneof details { + Vulnerability vulnerability = 7; + } +} + +// FindingType is an enumeration of all possible finding types in GKE Security +// Posture. +enum FindingType { + // Default value, unspecified. + FINDING_TYPE_UNSPECIFIED = 0; + + // Workload misconfiguration policy audit. + FINDING_TYPE_MISCONFIG = 1; + + // Workload vulnerabilities scanning. + FINDING_TYPE_VULNERABILITY = 2; +} + +// Severity is an enumeration of all the possible severities of a violation. +enum Severity { + // Default value, only used to determine that nothing was specified. + SEVERITY_UNSPECIFIED = 0; + + // SEVERITY_CRITICAL recommends taking action immediately. + SEVERITY_CRITICAL = 1; + + // SEVERITY_HIGH recommends taking action if possible. + SEVERITY_HIGH = 2; + + // SEVERITY_MEDIUM recommends investigation. + SEVERITY_MEDIUM = 3; + + // SEVERITY_LOW recommends being aware of the problem. + SEVERITY_LOW = 4; +} diff --git a/google/cloud/language/language.yaml b/google/cloud/language/language.yaml deleted file mode 100644 index 7746ab4ae..000000000 --- a/google/cloud/language/language.yaml +++ /dev/null @@ -1,33 +0,0 @@ -type: google.api.Service -config_version: 3 -name: language.googleapis.com -title: Google Cloud Natural Language API - -apis: -- name: google.cloud.language.v1.LanguageService -- name: google.cloud.language.v1beta1.LanguageService -- name: google.cloud.language.v1beta2.LanguageService - -types: -- name: google.protobuf.Timestamp -- name: google.rpc.Status - -enums: -- name: google.rpc.Code - -documentation: - summary: |- - Provides natural language understanding technologies to developers. Examples - include sentiment analysis, entity recognition, entity sentiment analysis, - and text annotations. - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-language, - https://www.googleapis.com/auth/cloud-platform - -legacy: - taxonomy_id: taxonomies/teamsproduct/nodes/8953562382 # http://teams/product/8953562382 diff --git a/google/cloud/language/v1/BUILD.bazel b/google/cloud/language/v1/BUILD.bazel index 9ff35931e..c0099cbe1 100644 --- a/google/cloud/language/v1/BUILD.bazel +++ b/google/cloud/language/v1/BUILD.bazel @@ -64,18 +64,24 @@ java_grpc_library( java_gapic_library( name = "language_java_gapic", srcs = [":language_proto_with_info"], + gapic_yaml = None, grpc_service_config = "language_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "language_v1.yaml", test_deps = [ ":language_java_grpc", ], + transport = "grpc+rest", deps = [ ":language_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "language_java_gapic_test_suite", test_classes = [ + "com.google.cloud.language.v1.LanguageServiceClientHttpJsonTest", "com.google.cloud.language.v1.LanguageServiceClientTest", ], runtime_deps = [":language_java_gapic_test"], @@ -84,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-language-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":language_java_gapic", ":language_java_grpc", @@ -119,7 +127,9 @@ go_gapic_library( grpc_service_config = "language_grpc_service_config.json", importpath = "cloud.google.com/go/language/apiv1;language", metadata = True, + rest_numeric_enums = False, service_yaml = "language_v1.yaml", + transport = "grpc+rest", deps = [ ":language_go_proto", ], @@ -150,12 +160,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "language_py_gapic", srcs = [":language_proto"], grpc_service_config = "language_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "language_v1.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "language_py_gapic_test", + srcs = [ + "language_py_gapic_pytest.py", + "language_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":language_py_gapic"], ) # Open Source Packages @@ -192,6 +218,7 @@ php_gapic_library( name = "language_php_gapic", srcs = [":language_proto_with_info"], grpc_service_config = "language_grpc_service_config.json", + rest_numeric_enums = False, service_yaml = "language_v1.yaml", deps = [ ":language_php_grpc", @@ -225,6 +252,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "language_grpc_service_config.json", package = "google.cloud.language.v1", + rest_numeric_enums = False, service_yaml = "language_v1.yaml", deps = [], ) @@ -270,8 +298,10 @@ ruby_cloud_gapic_library( "ruby-cloud-product-url=https://cloud.google.com/natural-language", ], grpc_service_config = "language_grpc_service_config.json", + rest_numeric_enums = False, ruby_cloud_description = "Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations.", ruby_cloud_title = "Natural Language V1", + service_yaml = "language_v1.yaml", deps = [ ":language_ruby_grpc", ":language_ruby_proto", @@ -315,6 +345,8 @@ csharp_gapic_library( srcs = [":language_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "language_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "language_v1.yaml", deps = [ ":language_csharp_grpc", ":language_csharp_proto", diff --git a/google/cloud/language/v1/language_service.proto b/google/cloud/language/v1/language_service.proto index 304eab073..4dae89745 100644 --- a/google/cloud/language/v1/language_service.proto +++ b/google/cloud/language/v1/language_service.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -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,14 +25,14 @@ option java_multiple_files = true; option java_outer_classname = "LanguageServiceProto"; option java_package = "com.google.cloud.language.v1"; - // Provides text analysis operations such as sentiment analysis and entity // recognition. service LanguageService { option (google.api.default_host) = "language.googleapis.com"; option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-language," - "https://www.googleapis.com/auth/cloud-platform"; + "https://www.googleapis.com/auth/cloud-language," + "https://www.googleapis.com/auth/cloud-platform"; + // Analyzes the sentiment of the provided text. rpc AnalyzeSentiment(AnalyzeSentimentRequest) returns (AnalyzeSentimentResponse) { option (google.api.http) = { @@ -100,8 +99,6 @@ service LanguageService { } } - -// // Represents the input to API methods. message Document { // The document types enum. @@ -156,6 +153,32 @@ message Sentence { Sentiment sentiment = 2; } +// Represents the text encoding that the caller uses to process the output. +// Providing an `EncodingType` is recommended because the API provides the +// beginning offsets for various outputs, such as tokens and mentions, and +// languages that natively use different text encodings may access offsets +// differently. +enum EncodingType { + // If `EncodingType` is not specified, encoding-dependent information (such as + // `begin_offset`) will be set at `-1`. + NONE = 0; + + // Encoding-dependent information (such as `begin_offset`) is calculated based + // on the UTF-8 encoding of the input. C++ and Go are examples of languages + // that use this encoding natively. + UTF8 = 1; + + // Encoding-dependent information (such as `begin_offset`) is calculated based + // on the UTF-16 encoding of the input. Java and JavaScript are examples of + // languages that use this encoding natively. + UTF16 = 2; + + // Encoding-dependent information (such as `begin_offset`) is calculated based + // on the UTF-32 encoding of the input. Python is an example of a language + // that uses this encoding natively. + UTF32 = 3; +} + // Represents a phrase in the text that is a known entity, such as // a person, an organization, or location. The API associates information, such // as salience and mentions, with entities. @@ -189,44 +212,53 @@ message Entity { // Other types of entities OTHER = 7; - // Phone number

    + // Phone number + // // The metadata lists the phone number, formatted according to local - // convention, plus whichever additional elements appear in the text:
      - //
    • number – the actual number, broken down into - // sections as per local convention
    • national_prefix - // – country code, if detected
    • area_code – - // region or area code, if detected
    • extension – - // phone extension (to be dialed after connection), if detected
    + // convention, plus whichever additional elements appear in the text: + // + // * `number` - the actual number, broken down into sections as per local + // convention + // * `national_prefix` - country code, if detected + // * `area_code` - region or area code, if detected + // * `extension` - phone extension (to be dialed after connection), if + // detected PHONE_NUMBER = 9; - // Address

    + // Address + // // The metadata identifies the street number and locality plus whichever - // additional elements appear in the text:
      - //
    • street_number – street number
    • - //
    • locality – city or town
    • - //
    • street_name – street/route name, if detected
    • - //
    • postal_code – postal code, if detected
    • - //
    • country – country, if detected
    • - //
    • broad_region – administrative area, such as the - // state, if detected
    • narrow_region – smaller - // administrative area, such as county, if detected
    • - //
    • sublocality – used in Asian addresses to demark a - // district within a city, if detected
    + // additional elements appear in the text: + // + // * `street_number` - street number + // * `locality` - city or town + // * `street_name` - street/route name, if detected + // * `postal_code` - postal code, if detected + // * `country` - country, if detected< + // * `broad_region` - administrative area, such as the state, if detected + // * `narrow_region` - smaller administrative area, such as county, if + // detected + // * `sublocality` - used in Asian addresses to demark a district within a + // city, if detected ADDRESS = 10; - // Date

    - // The metadata identifies the components of the date:
      - //
    • year – four digit year, if detected
    • - //
    • month – two digit month number, if detected
    • - //
    • day – two digit day number, if detected
    + // Date + // + // The metadata identifies the components of the date: + // + // * `year` - four digit year, if detected + // * `month` - two digit month number, if detected + // * `day` - two digit day number, if detected DATE = 11; - // Number

    + // Number + // // The metadata is the number itself. NUMBER = 12; - // Price

    - // The metadata identifies the value and currency. + // Price + // + // The metadata identifies the `value` and `currency`. PRICE = 13; } @@ -262,32 +294,6 @@ message Entity { Sentiment sentiment = 6; } -// Represents the text encoding that the caller uses to process the output. -// Providing an `EncodingType` is recommended because the API provides the -// beginning offsets for various outputs, such as tokens and mentions, and -// languages that natively use different text encodings may access offsets -// differently. -enum EncodingType { - // If `EncodingType` is not specified, encoding-dependent information (such as - // `begin_offset`) will be set at `-1`. - NONE = 0; - - // Encoding-dependent information (such as `begin_offset`) is calculated based - // on the UTF-8 encoding of the input. C++ and Go are examples of languages - // that use this encoding natively. - UTF8 = 1; - - // Encoding-dependent information (such as `begin_offset`) is calculated based - // on the UTF-16 encoding of the input. Java and JavaScript are examples of - // languages that use this encoding natively. - UTF16 = 2; - - // Encoding-dependent information (such as `begin_offset`) is calculated based - // on the UTF-32 encoding of the input. Python is an example of a language - // that uses this encoding natively. - UTF32 = 3; -} - // Represents the smallest syntactic building block of the text. message Token { // The token text. @@ -962,9 +968,48 @@ message ClassificationCategory { float confidence = 2; } +// Model options available for classification requests. +message ClassificationModelOptions { + // Options for the V1 model. + message V1Model { + + } + + // Options for the V2 model. + message V2Model { + // The content categories used for classification. + enum ContentCategoriesVersion { + // If `ContentCategoriesVersion` is not specified, this option will + // default to `V1`. + CONTENT_CATEGORIES_VERSION_UNSPECIFIED = 0; + + // Legacy content categories of our initial launch in 2017. + V1 = 1; + + // Updated content categories in 2022. + V2 = 2; + } + + // The content categories used for classification. + ContentCategoriesVersion content_categories_version = 1; + } + + // If this field is not set, then the `v1_model` will be used by default. + oneof model_type { + // Setting this field will use the V1 model and V1 content categories + // version. The V1 model is a legacy model; support for this will be + // discontinued in the future. + V1Model v1_model = 1; + + // Setting this field will use the V2 model with the appropriate content + // categories version. The V2 model is a better performing model. + V2Model v2_model = 2; + } +} + // The sentiment analysis request message. message AnalyzeSentimentRequest { - // Input document. + // Required. Input document. Document document = 1 [(google.api.field_behavior) = REQUIRED]; // The encoding type used by the API to calculate sentence offsets. @@ -987,7 +1032,7 @@ message AnalyzeSentimentResponse { // The entity-level sentiment analysis request message. message AnalyzeEntitySentimentRequest { - // Input document. + // Required. Input document. Document document = 1 [(google.api.field_behavior) = REQUIRED]; // The encoding type used by the API to calculate offsets. @@ -1007,7 +1052,7 @@ message AnalyzeEntitySentimentResponse { // The entity analysis request message. message AnalyzeEntitiesRequest { - // Input document. + // Required. Input document. Document document = 1 [(google.api.field_behavior) = REQUIRED]; // The encoding type used by the API to calculate offsets. @@ -1027,7 +1072,7 @@ message AnalyzeEntitiesResponse { // The syntax analysis request message. message AnalyzeSyntaxRequest { - // Input document. + // Required. Input document. Document document = 1 [(google.api.field_behavior) = REQUIRED]; // The encoding type used by the API to calculate offsets. @@ -1050,8 +1095,12 @@ message AnalyzeSyntaxResponse { // The document classification request message. message ClassifyTextRequest { - // Input document. + // Required. Input document. Document document = 1 [(google.api.field_behavior) = REQUIRED]; + + // Model options to use for classification. Defaults to v1 options if not + // specified. + ClassificationModelOptions classification_model_options = 3; } // The document classification response message. @@ -1080,12 +1129,16 @@ message AnnotateTextRequest { // Classify the full document into categories. bool classify_text = 6; + + // The model options to use for classification. Defaults to v1 options + // if not specified. Only used if `classify_text` is set to true. + ClassificationModelOptions classification_model_options = 10; } - // Input document. + // Required. Input document. Document document = 1 [(google.api.field_behavior) = REQUIRED]; - // The enabled features. + // Required. The enabled features. Features features = 2 [(google.api.field_behavior) = REQUIRED]; // The encoding type used by the API to calculate offsets. diff --git a/google/cloud/language/v1beta2/BUILD.bazel b/google/cloud/language/v1beta2/BUILD.bazel index 3be460fba..82038c354 100644 --- a/google/cloud/language/v1beta2/BUILD.bazel +++ b/google/cloud/language/v1beta2/BUILD.bazel @@ -27,7 +27,6 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", - "@com_google_protobuf//:timestamp_proto", ], ) @@ -65,18 +64,23 @@ java_grpc_library( java_gapic_library( name = "language_java_gapic", srcs = [":language_proto_with_info"], + gapic_yaml = None, grpc_service_config = "language_grpc_service_config.json", + service_yaml = "language_v1beta2.yaml", test_deps = [ ":language_java_grpc", ], + transport = "grpc+rest", deps = [ ":language_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "language_java_gapic_test_suite", test_classes = [ + "com.google.cloud.language.v1beta2.LanguageServiceClientHttpJsonTest", "com.google.cloud.language.v1beta2.LanguageServiceClientTest", ], runtime_deps = [":language_java_gapic_test"], @@ -85,6 +89,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-language-v1beta2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":language_java_gapic", ":language_java_grpc", @@ -121,6 +127,7 @@ go_gapic_library( importpath = "cloud.google.com/go/language/apiv1beta2;language", metadata = True, service_yaml = "language_v1beta2.yaml", + transport = "grpc+rest", deps = [ ":language_go_proto", ], @@ -151,12 +158,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "language_py_gapic", srcs = [":language_proto"], grpc_service_config = "language_grpc_service_config.json", + transport = "grpc", + service_yaml = "language_v1beta2.yaml", + deps = [ + ], +) + +py_test( + name = "language_py_gapic_test", + srcs = [ + "language_py_gapic_pytest.py", + "language_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":language_py_gapic"], ) # Open Source Packages @@ -273,6 +295,7 @@ ruby_cloud_gapic_library( grpc_service_config = "language_grpc_service_config.json", ruby_cloud_description = "Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations.", ruby_cloud_title = "Natural Language V1beta2", + service_yaml = "language_v1beta2.yaml", deps = [ ":language_ruby_grpc", ":language_ruby_proto", @@ -316,6 +339,7 @@ csharp_gapic_library( srcs = [":language_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "language_grpc_service_config.json", + service_yaml = "language_v1beta2.yaml", deps = [ ":language_csharp_grpc", ":language_csharp_proto", @@ -335,4 +359,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "language_cc_proto", + deps = [":language_proto"], +) + +cc_grpc_library( + name = "language_cc_grpc", + srcs = [":language_proto"], + grpc_only = True, + deps = [":language_cc_proto"], +) diff --git a/google/cloud/language/v1beta2/language_service.proto b/google/cloud/language/v1beta2/language_service.proto index bd4167a30..3e6a9f829 100644 --- a/google/cloud/language/v1beta2/language_service.proto +++ b/google/cloud/language/v1beta2/language_service.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -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"; @@ -20,7 +19,6 @@ package google.cloud.language.v1beta2; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/language/v1beta2;language"; option java_multiple_files = true; @@ -69,7 +67,7 @@ service LanguageService { } // Analyzes the syntax of the text and provides sentence boundaries and - // tokenization along with part-of-speech tags, dependency trees, and other + // tokenization along with part of speech tags, dependency trees, and other // properties. rpc AnalyzeSyntax(AnalyzeSyntaxRequest) returns (AnalyzeSyntaxResponse) { option (google.api.http) = { @@ -101,8 +99,6 @@ service LanguageService { } } - -// // Represents the input to API methods. message Document { // The document types enum. @@ -117,6 +113,19 @@ message Document { HTML = 2; } + // Ways of handling boilerplate detected in the document + enum BoilerplateHandling { + // The boilerplate handling is not specified. + BOILERPLATE_HANDLING_UNSPECIFIED = 0; + + // Do not analyze detected boilerplate. Reference web URI is required for + // detecting boilerplate. + SKIP_BOILERPLATE = 1; + + // Treat boilerplate the same as content. + KEEP_BOILERPLATE = 2; + } + // Required. If the type is not set or is `TYPE_UNSPECIFIED`, // returns an `INVALID_ARGUMENT` error. Type type = 1; @@ -144,6 +153,15 @@ message Document { // specified by the caller or automatically detected) is not supported by the // called API method, an `INVALID_ARGUMENT` error is returned. string language = 4; + + // The web URI where the document comes from. This URI is not used for + // fetching the content, but as a hint for analyzing the document. + string reference_web_uri = 5; + + // Indicates how detected boilerplate(e.g. advertisements, copyright + // declarations, banners) should be handled for this document. If not + // specified, boilerplate will be treated the same as content. + BoilerplateHandling boilerplate_handling = 6; } // Represents a sentence in the input document. @@ -157,6 +175,32 @@ message Sentence { Sentiment sentiment = 2; } +// Represents the text encoding that the caller uses to process the output. +// Providing an `EncodingType` is recommended because the API provides the +// beginning offsets for various outputs, such as tokens and mentions, and +// languages that natively use different text encodings may access offsets +// differently. +enum EncodingType { + // If `EncodingType` is not specified, encoding-dependent information (such as + // `begin_offset`) will be set at `-1`. + NONE = 0; + + // Encoding-dependent information (such as `begin_offset`) is calculated based + // on the UTF-8 encoding of the input. C++ and Go are examples of languages + // that use this encoding natively. + UTF8 = 1; + + // Encoding-dependent information (such as `begin_offset`) is calculated based + // on the UTF-16 encoding of the input. Java and JavaScript are examples of + // languages that use this encoding natively. + UTF16 = 2; + + // Encoding-dependent information (such as `begin_offset`) is calculated based + // on the UTF-32 encoding of the input. Python is an example of a language + // that uses this encoding natively. + UTF32 = 3; +} + // Represents a phrase in the text that is a known entity, such as // a person, an organization, or location. The API associates information, such // as salience and mentions, with entities. @@ -287,32 +331,6 @@ message Token { string lemma = 4; } -// Represents the text encoding that the caller uses to process the output. -// Providing an `EncodingType` is recommended because the API provides the -// beginning offsets for various outputs, such as tokens and mentions, and -// languages that natively use different text encodings may access offsets -// differently. -enum EncodingType { - // If `EncodingType` is not specified, encoding-dependent information (such as - // `begin_offset`) will be set at `-1`. - NONE = 0; - - // Encoding-dependent information (such as `begin_offset`) is calculated based - // on the UTF-8 encoding of the input. C++ and Go are examples of languages - // that use this encoding natively. - UTF8 = 1; - - // Encoding-dependent information (such as `begin_offset`) is calculated based - // on the UTF-16 encoding of the input. Java and JavaScript are examples of - // languages that use this encoding natively. - UTF16 = 2; - - // Encoding-dependent information (such as `begin_offset`) is calculated based - // on the UTF-32 encoding of the input. Python is an example of a language - // that uses this encoding natively. - UTF32 = 3; -} - // Represents the feeling associated with the entire text or entities in // the text. // Next ID: 6 @@ -969,6 +987,45 @@ message ClassificationCategory { float confidence = 2; } +// Model options available for classification requests. +message ClassificationModelOptions { + // Options for the V1 model. + message V1Model { + + } + + // Options for the V2 model. + message V2Model { + // The content categories used for classification. + enum ContentCategoriesVersion { + // If `ContentCategoriesVersion` is not specified, this option will + // default to `V1`. + CONTENT_CATEGORIES_VERSION_UNSPECIFIED = 0; + + // Legacy content categories of our initial launch in 2017. + V1 = 1; + + // Updated content categories in 2022. + V2 = 2; + } + + // The content categories used for classification. + ContentCategoriesVersion content_categories_version = 1; + } + + // If this field is not set, then the `v1_model` will be used by default. + oneof model_type { + // Setting this field will use the V1 model and V1 content categories + // version. The V1 model is a legacy model; support for this will be + // discontinued in the future. + V1Model v1_model = 1; + + // Setting this field will use the V2 model with the appropriate content + // categories version. The V2 model is a better performing model. + V2Model v2_model = 2; + } +} + // The sentiment analysis request message. message AnalyzeSentimentRequest { // Required. Input document. @@ -1060,6 +1117,10 @@ message AnalyzeSyntaxResponse { message ClassifyTextRequest { // Required. Input document. Document document = 1 [(google.api.field_behavior) = REQUIRED]; + + // Model options to use for classification. Defaults to v1 options if not + // specified. + ClassificationModelOptions classification_model_options = 3; } // The document classification response message. @@ -1073,7 +1134,7 @@ message ClassifyTextResponse { message AnnotateTextRequest { // All available features for sentiment, syntax, and semantic analysis. // Setting each one to true will enable that specific analysis for the input. - // Next ID: 10 + // Next ID: 11 message Features { // Extract syntax information. bool extract_syntax = 1; @@ -1092,6 +1153,10 @@ message AnnotateTextRequest { // [predefined // taxonomy](https://cloud.google.com/natural-language/docs/categories). bool classify_text = 6; + + // The model options to use for classification. Defaults to v1 options + // if not specified. Only used if `classify_text` is set to true. + ClassificationModelOptions classification_model_options = 10; } // Required. Input document. diff --git a/google/cloud/language/v1beta2/language_v1beta2.yaml b/google/cloud/language/v1beta2/language_v1beta2.yaml index 167a3edcd..bb383eb0a 100644 --- a/google/cloud/language/v1beta2/language_v1beta2.yaml +++ b/google/cloud/language/v1beta2/language_v1beta2.yaml @@ -1,19 +1,21 @@ type: google.api.Service -config_version: 2 +config_version: 3 name: language.googleapis.com -title: Google Cloud Natural Language API +title: Cloud Natural Language API apis: - name: google.cloud.language.v1beta2.LanguageService documentation: - summary: - 'Google Cloud Natural Language API provides natural language understanding - technologies to developers. Examples include sentiment analysis, entity - recognition, and text annotations.' + summary: |- + Provides natural language understanding technologies, such as sentiment + analysis, entity recognition, entity sentiment analysis, and other text + annotations, to developers. authentication: rules: - - selector: '*' + - selector: 'google.cloud.language.v1beta2.LanguageService.*' oauth: - canonical_scopes: https://www.googleapis.com/auth/cloud-platform + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-language, + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/lifesciences/v2beta/BUILD.bazel b/google/cloud/lifesciences/v2beta/BUILD.bazel index 48fd16b22..635232fd2 100644 --- a/google/cloud/lifesciences/v2beta/BUILD.bazel +++ b/google/cloud/lifesciences/v2beta/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":lifesciences_java_grpc", ], + transport = "grpc+rest", deps = [ ":lifesciences_java_proto", ], @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "lifesciences_java_gapic_test_suite", test_classes = [ + "com.google.cloud.lifesciences.v2beta.WorkflowsServiceV2BetaClientHttpJsonTest", "com.google.cloud.lifesciences.v2beta.WorkflowsServiceV2BetaClientTest", ], runtime_deps = [":lifesciences_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-lifesciences-v2beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":lifesciences_java_gapic", ":lifesciences_java_grpc", @@ -124,13 +128,14 @@ go_gapic_library( srcs = [":lifesciences_proto_with_info"], grpc_service_config = "lifesciences_grpc_service_config.json", importpath = "cloud.google.com/go/lifesciences/apiv2beta;lifesciences", - service_yaml = "lifesciences_v2beta.yaml", metadata = True, + service_yaml = "lifesciences_v2beta.yaml", + transport = "grpc+rest", deps = [ ":lifesciences_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_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", ], ) @@ -147,8 +152,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-lifesciences-v2beta-go", deps = [ ":lifesciences_go_gapic", - ":lifesciences_go_gapic_srcjar-test.srcjar", ":lifesciences_go_gapic_srcjar-metadata.srcjar", + ":lifesciences_go_gapic_srcjar-test.srcjar", ":lifesciences_go_proto", ], ) @@ -160,13 +165,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "lifesciences_py_gapic", srcs = [":lifesciences_proto"], grpc_service_config = "lifesciences_grpc_service_config.json", - opt_args = ["warehouse-package-name=google-cloud-life-sciences"] + opt_args = ["warehouse-package-name=google-cloud-life-sciences"], + transport = "grpc+rest", +) + +py_test( + name = "lifesciences_py_gapic_test", + srcs = [ + "lifesciences_py_gapic_pytest.py", + "lifesciences_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":lifesciences_py_gapic"], ) # Open Source Packages @@ -253,8 +270,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -327,6 +344,7 @@ csharp_gapic_library( srcs = [":lifesciences_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "lifesciences_grpc_service_config.json", + service_yaml = "lifesciences_v2beta.yaml", deps = [ ":lifesciences_csharp_grpc", ":lifesciences_csharp_proto", diff --git a/google/cloud/location/BUILD.bazel b/google/cloud/location/BUILD.bazel index e4d1d6779..6182d71f9 100644 --- a/google/cloud/location/BUILD.bazel +++ b/google/cloud/location/BUILD.bazel @@ -34,9 +34,9 @@ proto_library_with_info( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg" ) java_proto_library( @@ -50,12 +50,12 @@ java_grpc_library( deps = [":location_java_proto"], ) - # Please DO-NOT-REMOVE this section. # This is required to generate java files for these protos. # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-location-java", + transport = "grpc+rest", deps = [ ":location_java_grpc", ":location_java_proto", @@ -140,7 +140,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/cloud/managedidentities/v1/BUILD.bazel b/google/cloud/managedidentities/v1/BUILD.bazel index b4b96b599..38f60d112 100644 --- a/google/cloud/managedidentities/v1/BUILD.bazel +++ b/google/cloud/managedidentities/v1/BUILD.bazel @@ -89,6 +89,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-managedidentities-v1-java", + include_samples = True, deps = [ ":managedidentities_java_gapic", ":managedidentities_java_grpc", @@ -125,6 +126,7 @@ go_gapic_library( grpc_service_config = "managedidentities_grpc_service_config.json", importpath = "cloud.google.com/go/managedidentities/apiv1;managedidentities", service_yaml = "managedidentities_v1.yaml", + transport = "grpc+rest", deps = [ ":managedidentities_go_proto", "//google/longrunning:longrunning_go_proto", @@ -157,13 +159,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "managedidentities_py_gapic", srcs = [":managedidentities_proto"], grpc_service_config = "managedidentities_grpc_service_config.json", - opt_args = ["warehouse-package-name=google-cloud-managed-identities"] + opt_args = ["warehouse-package-name=google-cloud-managed-identities"], + transport = "grpc", +) + +py_test( + name = "managedidentities_py_gapic_test", + srcs = [ + "managedidentities_py_gapic_pytest.py", + "managedidentities_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":managedidentities_py_gapic"], ) # Open Source Packages @@ -323,6 +337,7 @@ csharp_gapic_library( srcs = [":managedidentities_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "managedidentities_grpc_service_config.json", + service_yaml = "managedidentities_v1.yaml", deps = [ ":managedidentities_csharp_grpc", ":managedidentities_csharp_proto", diff --git a/google/cloud/managedidentities/v1/resource.proto b/google/cloud/managedidentities/v1/resource.proto index f1b5ae52c..abae9da6f 100644 --- a/google/cloud/managedidentities/v1/resource.proto +++ b/google/cloud/managedidentities/v1/resource.proto @@ -20,7 +20,6 @@ package google.cloud.managedidentities.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.ManagedIdentities.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/managedidentities/v1;managedidentities"; diff --git a/google/cloud/managedidentities/v1beta1/BUILD.bazel b/google/cloud/managedidentities/v1beta1/BUILD.bazel index 652227fa1..a8c178326 100644 --- a/google/cloud/managedidentities/v1beta1/BUILD.bazel +++ b/google/cloud/managedidentities/v1beta1/BUILD.bazel @@ -92,6 +92,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-managedidentities-v1beta1-java", + include_samples = True, deps = [ ":managedidentities_java_gapic", ":managedidentities_java_grpc", @@ -129,6 +130,7 @@ go_gapic_library( importpath = "cloud.google.com/go/managedidentities/apiv1beta1;managedidentities", metadata = True, service_yaml = "managedidentities_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":managedidentities_go_proto", "//google/longrunning:longrunning_go_proto", @@ -162,12 +164,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "managedidentities_py_gapic", srcs = [":managedidentities_proto"], grpc_service_config = "managedidentities_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "managedidentities_py_gapic_test", + srcs = [ + "managedidentities_py_gapic_pytest.py", + "managedidentities_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":managedidentities_py_gapic"], ) # Open Source Packages @@ -319,6 +333,7 @@ csharp_gapic_library( srcs = [":managedidentities_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "managedidentities_grpc_service_config.json", + service_yaml = "managedidentities_v1beta1.yaml", deps = [ ":managedidentities_csharp_grpc", ":managedidentities_csharp_proto", diff --git a/google/cloud/managedidentities/v1beta1/resource.proto b/google/cloud/managedidentities/v1beta1/resource.proto index a733e1c57..a866b9e8c 100644 --- a/google/cloud/managedidentities/v1beta1/resource.proto +++ b/google/cloud/managedidentities/v1beta1/resource.proto @@ -19,7 +19,6 @@ package google.cloud.managedidentities.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.ManagedIdentities.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/managedidentities/v1beta1;managedidentities"; diff --git a/google/cloud/mediatranslation/v1beta1/BUILD.bazel b/google/cloud/mediatranslation/v1beta1/BUILD.bazel index 6434a2b53..c208f3a5b 100644 --- a/google/cloud/mediatranslation/v1beta1/BUILD.bazel +++ b/google/cloud/mediatranslation/v1beta1/BUILD.bazel @@ -68,6 +68,7 @@ java_gapic_library( test_deps = [ ":mediatranslation_java_grpc", ], + transport = "grpc+rest", deps = [ ":mediatranslation_java_proto", ], @@ -76,6 +77,7 @@ java_gapic_library( java_gapic_test( name = "mediatranslation_java_gapic_test_suite", test_classes = [ + "com.google.cloud.mediatranslation.v1beta1.SpeechTranslationServiceClientHttpJsonTest", "com.google.cloud.mediatranslation.v1beta1.SpeechTranslationServiceClientTest", ], runtime_deps = [":mediatranslation_java_gapic_test"], @@ -84,6 +86,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-mediatranslation-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":mediatranslation_java_gapic", ":mediatranslation_java_grpc", @@ -151,6 +155,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -160,6 +165,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-media-translation", ], + transport = "grpc", +) + +py_test( + name = "mediatranslation_py_gapic_test", + srcs = [ + "mediatranslation_py_gapic_pytest.py", + "mediatranslation_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":mediatranslation_py_gapic"], ) # Open Source Packages @@ -319,6 +335,7 @@ csharp_gapic_library( srcs = [":mediatranslation_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "mediatranslation_grpc_service_config.json", + service_yaml = "mediatranslation_v1beta1.yaml", deps = [ ":mediatranslation_csharp_grpc", ":mediatranslation_csharp_proto", diff --git a/google/cloud/memcache/v1/BUILD.bazel b/google/cloud/memcache/v1/BUILD.bazel index 95b94ac98..cdbb74486 100644 --- a/google/cloud/memcache/v1/BUILD.bazel +++ b/google/cloud/memcache/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":memcache_java_grpc", ], + transport = "grpc+rest", deps = [ ":memcache_java_proto", ], @@ -87,6 +88,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-memcache-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":memcache_java_gapic", ":memcache_java_grpc", @@ -123,6 +126,7 @@ go_gapic_library( grpc_service_config = "memcache_grpc_service_config.json", importpath = "cloud.google.com/go/memcache/apiv1;memcache", service_yaml = "memcache_v1.yaml", + transport = "grpc+rest", deps = [ ":memcache_go_proto", "//google/longrunning:longrunning_go_proto", @@ -155,12 +159,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "memcache_py_gapic", srcs = [":memcache_proto"], grpc_service_config = "memcache_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "memcache_py_gapic_test", + srcs = [ + "memcache_py_gapic_pytest.py", + "memcache_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":memcache_py_gapic"], ) # Open Source Packages @@ -319,6 +335,7 @@ csharp_gapic_library( srcs = [":memcache_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "memcache_grpc_service_config.json", + service_yaml = "memcache_v1.yaml", deps = [ ":memcache_csharp_grpc", ":memcache_csharp_proto", diff --git a/google/cloud/memcache/v1beta2/BUILD.bazel b/google/cloud/memcache/v1beta2/BUILD.bazel index ecf9670fa..d6f547386 100644 --- a/google/cloud/memcache/v1beta2/BUILD.bazel +++ b/google/cloud/memcache/v1beta2/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":memcache_java_grpc", ], + transport = "grpc+rest", deps = [ ":memcache_java_proto", ], @@ -87,6 +88,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-memcache-v1beta2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":memcache_java_gapic", ":memcache_java_grpc", @@ -123,6 +126,7 @@ go_gapic_library( grpc_service_config = "memcache_grpc_service_config.json", importpath = "cloud.google.com/go/memcache/apiv1beta2;memcache", service_yaml = "memcache_v1beta2.yaml", + transport = "grpc+rest", deps = [ ":memcache_go_proto", "//google/longrunning:longrunning_go_proto", @@ -155,12 +159,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "memcache_py_gapic", srcs = [":memcache_proto"], grpc_service_config = "memcache_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "memcache_py_gapic_test", + srcs = [ + "memcache_py_gapic_pytest.py", + "memcache_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":memcache_py_gapic"], ) # Open Source Packages @@ -320,6 +336,7 @@ csharp_gapic_library( srcs = [":memcache_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "memcache_grpc_service_config.json", + service_yaml = "memcache_v1beta2.yaml", deps = [ ":memcache_csharp_grpc", ":memcache_csharp_proto", diff --git a/google/cloud/metastore/v1/BUILD.bazel b/google/cloud/metastore/v1/BUILD.bazel index 4c07891b0..a99f39822 100644 --- a/google/cloud/metastore/v1/BUILD.bazel +++ b/google/cloud/metastore/v1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":metastore_java_grpc", ], + transport = "grpc+rest", deps = [ ":metastore_java_proto", ], @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "metastore_java_gapic_test_suite", test_classes = [ + "com.google.cloud.metastore.v1.DataprocMetastoreClientHttpJsonTest", "com.google.cloud.metastore.v1.DataprocMetastoreClientTest", ], runtime_deps = [":metastore_java_gapic_test"], @@ -91,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-metastore-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":metastore_java_gapic", ":metastore_java_grpc", @@ -129,6 +133,7 @@ go_gapic_library( importpath = "cloud.google.com/go/metastore/apiv1;metastore", metadata = True, service_yaml = "metastore_v1.yaml", + transport = "grpc+rest", deps = [ ":metastore_go_proto", "//google/longrunning:longrunning_go_proto", @@ -162,12 +167,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "metastore_py_gapic", srcs = [":metastore_proto"], grpc_service_config = "metastore_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "metastore_py_gapic_test", + srcs = [ + "metastore_py_gapic_pytest.py", + "metastore_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":metastore_py_gapic"], ) # Open Source Packages @@ -327,6 +344,7 @@ csharp_gapic_library( srcs = [":metastore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "metastore_grpc_service_config.json", + service_yaml = "metastore_v1.yaml", deps = [ ":metastore_csharp_grpc", ":metastore_csharp_proto", diff --git a/google/cloud/metastore/v1alpha/BUILD.bazel b/google/cloud/metastore/v1alpha/BUILD.bazel index 1eaef6d07..35c19f60f 100644 --- a/google/cloud/metastore/v1alpha/BUILD.bazel +++ b/google/cloud/metastore/v1alpha/BUILD.bazel @@ -72,17 +72,21 @@ java_gapic_library( srcs = [":metastore_proto_with_info"], gapic_yaml = "metastore_gapic.yaml", grpc_service_config = "metastore_grpc_service_config.json", + service_yaml = "metastore_v1alpha.yaml", test_deps = [ ":metastore_java_grpc", ], + transport = "grpc+rest", deps = [ ":metastore_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "metastore_java_gapic_test_suite", test_classes = [ + "com.google.cloud.metastore.v1alpha.DataprocMetastoreClientHttpJsonTest", "com.google.cloud.metastore.v1alpha.DataprocMetastoreClientTest", ], runtime_deps = [":metastore_java_gapic_test"], @@ -91,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-metastore-v1alpha-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":metastore_java_gapic", ":metastore_java_grpc", @@ -129,6 +135,7 @@ go_gapic_library( importpath = "cloud.google.com/go/metastore/apiv1alpha;metastore", metadata = True, service_yaml = "metastore_v1alpha.yaml", + transport = "grpc+rest", deps = [ ":metastore_go_proto", "//google/longrunning:longrunning_go_proto", @@ -162,12 +169,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "metastore_py_gapic", srcs = [":metastore_proto"], grpc_service_config = "metastore_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "metastore_py_gapic_test", + srcs = [ + "metastore_py_gapic_pytest.py", + "metastore_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":metastore_py_gapic"], ) # Open Source Packages @@ -203,7 +222,6 @@ php_grpc_library( php_gapic_library( name = "metastore_php_gapic", srcs = [":metastore_proto_with_info"], - gapic_yaml = "metastore_gapic.yaml", grpc_service_config = "metastore_grpc_service_config.json", service_yaml = "metastore_v1alpha.yaml", deps = [ @@ -320,6 +338,7 @@ csharp_gapic_library( srcs = [":metastore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "metastore_grpc_service_config.json", + service_yaml = "metastore_v1alpha.yaml", deps = [ ":metastore_csharp_grpc", ":metastore_csharp_proto", @@ -339,4 +358,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "metastore_cc_proto", + deps = [":metastore_proto"], +) + +cc_grpc_library( + name = "metastore_cc_grpc", + srcs = [":metastore_proto"], + grpc_only = True, + deps = [":metastore_cc_proto"], +) diff --git a/google/cloud/metastore/v1alpha/metastore.proto b/google/cloud/metastore/v1alpha/metastore.proto index 489e06f7c..d5b96385e 100644 --- a/google/cloud/metastore/v1alpha/metastore.proto +++ b/google/cloud/metastore/v1alpha/metastore.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -30,14 +30,23 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/metastore/v1alp option java_multiple_files = true; option java_outer_classname = "MetastoreProto"; option java_package = "com.google.cloud.metastore.v1alpha"; +option php_namespace = "Google\\Cloud\\Metastore\\V1alpha"; option (google.api.resource_definition) = { type: "compute.googleapis.com/Network" pattern: "projects/{project}/global/networks/{network}" }; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Subnetwork" + pattern: "projects/{project}/regions/{region}/subnetworks/{subnetwork}" +}; +option (google.api.resource_definition) = { + type: "dataplex.googleapis.com/Lake" + pattern: "projects/{project}/locations/{location}/lakes/{lake}" +}; // Configures and manages metastore services. -// Metastore services are fully managed, highly available, auto-scaled, -// auto-healing, OSS-native deployments of technical metadata management +// Metastore services are fully managed, highly available, autoscaled, +// autohealing, OSS-native deployments of technical metadata management // software. Each metastore service exposes a network endpoint through which // metadata queries are served. Metadata queries can originate from a variety // of sources, including Apache Hive, Apache Presto, and Apache Spark. @@ -194,7 +203,7 @@ service DataprocMetastore { option (google.api.method_signature) = "name"; } - // Creates a new Backup in a given project and location. + // Creates a new backup in a given project and location. rpc CreateBackup(CreateBackupRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1alpha/{parent=projects/*/locations/*/services/*}/backups" @@ -288,6 +297,18 @@ message Service { STABLE = 2; } + // The backend database type for the metastore service. + enum DatabaseType { + // The DATABASE_TYPE is not set. + DATABASE_TYPE_UNSPECIFIED = 0; + + // MySQL is used to persist the metastore data. + MYSQL = 1; + + // Spanner is used to persist the metastore data. + SPANNER = 2; + } + // Configuration properties specific to the underlying metastore service // technology (the software that serves metastore queries). oneof metastore_config { @@ -347,6 +368,8 @@ message Service { // The one hour maintenance window of the metastore service. This specifies // when the service can be restarted for maintenance purposes in UTC time. + // Maintenance window is not needed for services with the SPANNER + // database type. MaintenanceWindow maintenance_window = 15; // Output only. The globally unique resource identifier of the metastore service. @@ -358,12 +381,26 @@ message Service { // Immutable. The release channel of the service. // If unspecified, defaults to `STABLE`. ReleaseChannel release_channel = 19 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Information used to configure the Dataproc Metastore service to encrypt + // customer data at rest. Cannot be updated. + EncryptionConfig encryption_config = 20 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The configuration specifying the network settings for the + // Dataproc Metastore service. + NetworkConfig network_config = 21 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The database type that the Metastore service stores its data. + DatabaseType database_type = 22 [(google.api.field_behavior) = IMMUTABLE]; } // Specifies how metastore metadata should be integrated with external services. message MetadataIntegration { // The integration config for the Data Catalog service. DataCatalogConfig data_catalog_config = 1; + + // The integration config for the Dataplex service. + DataplexConfig dataplex_config = 2; } // Specifies how metastore metadata should be integrated with the Data Catalog @@ -374,6 +411,25 @@ message DataCatalogConfig { bool enabled = 2; } +// Specifies how metastore metadata should be integrated with the Dataplex +// service. +message DataplexConfig { + // A reference to the Lake resources that this metastore service is attached + // to. The key is the lake resource name. Example: + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`. + map lake_resources = 1; +} + +// Represents a Lake resource +message Lake { + // The Lake resource name. + // Example: + // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}` + string name = 1 [(google.api.resource_reference) = { + type: "dataplex.googleapis.com/Lake" + }]; +} + // Maintenance window. This specifies when Dataproc Metastore // may perform system maintenance operation to the service. message MaintenanceWindow { @@ -387,12 +443,26 @@ message MaintenanceWindow { // Specifies configuration information specific to running Hive metastore // software as the metastore service. message HiveMetastoreConfig { + // Protocols available for serving the metastore service endpoint. + enum EndpointProtocol { + // The protocol is not set. + ENDPOINT_PROTOCOL_UNSPECIFIED = 0; + + // Use the legacy Apache Thrift protocol for the metastore service endpoint. + THRIFT = 1; + + // Use the modernized gRPC protocol for the metastore service endpoint. + GRPC = 2; + } + // Immutable. The Hive metastore schema version. string version = 1 [(google.api.field_behavior) = IMMUTABLE]; // A mapping of Hive metastore configuration key-value pairs to apply to the // Hive metastore (configured in `hive-site.xml`). The mappings - // override system defaults (some keys cannot be overridden). + // override system defaults (some keys cannot be overridden). These + // overrides are also applied to auxiliary versions and can be further + // customized in the auxiliary version's `AuxiliaryVersionConfig`. map config_overrides = 2; // Information used to configure the Hive metastore service as a service @@ -401,6 +471,20 @@ message HiveMetastoreConfig { // (`hive_metastore_config.kerberos_config`) in the request's `update_mask` // while omitting this field from the request's `service`. KerberosConfig kerberos_config = 3; + + // The protocol to use for the metastore service endpoint. If unspecified, + // defaults to `THRIFT`. + EndpointProtocol endpoint_protocol = 4; + + // A mapping of Hive metastore version to the auxiliary version + // configuration. When specified, a secondary Hive metastore service is + // created along with the primary service. All auxiliary versions must be less + // than the service's primary version. The key is the auxiliary service name + // and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This + // means that the first character must be a lowercase letter, and all the + // following characters must be hyphens, lowercase letters, or digits, except + // the last character, which cannot be a hyphen. + map auxiliary_versions = 5; } // Configuration information for a Kerberos principal. @@ -415,7 +499,7 @@ message KerberosConfig { string principal = 2; // A Cloud Storage URI that specifies the path to a - // krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, + // krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`, // although the file does not need to be named krb5.conf explicitly. string krb5_config_gcs_uri = 3; } @@ -431,6 +515,60 @@ message Secret { } } +// Encryption settings for the service. +message EncryptionConfig { + // The fully qualified customer provided Cloud KMS key name to use for + // customer data encryption, in the following form: + // + // `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`. + string kms_key = 1; +} + +// Configuration information for the auxiliary service versions. +message AuxiliaryVersionConfig { + // The Hive metastore version of the auxiliary service. It must be less + // than the primary Hive metastore service's version. + string version = 1; + + // A mapping of Hive metastore configuration key-value pairs to apply to the + // auxiliary Hive metastore (configured in `hive-site.xml`) in addition to + // the primary version's overrides. If keys are present in both the auxiliary + // version's overrides and the primary version's overrides, the value from + // the auxiliary version's overrides takes precedence. + map config_overrides = 2; + + // Output only. The network configuration contains the endpoint URI(s) of the auxiliary + // Hive metastore service. + NetworkConfig network_config = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Network configuration for the Dataproc Metastore service. +message NetworkConfig { + // Contains information of the customer's network configurations. + message Consumer { + oneof vpc_resource { + // The subnetwork of the customer project from which an IP address is + // reserved and used as the Dataproc Metastore service's + // endpoint. It is accessible to hosts in the subnet and to all + // hosts in a subnet in the same region and same network. There must + // be at least one IP address available in the subnet's primary range. The + // subnet is specified in the following form: + // + // `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id} + string subnetwork = 1 [(google.api.resource_reference) = { + type: "compute.googleapis.com/Subnetwork" + }]; + } + + // Output only. The URI of the endpoint used to access the metastore service. + string endpoint_uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The consumer-side network configuration for the Dataproc Metastore + // instance. + repeated Consumer consumers = 1 [(google.api.field_behavior) = IMMUTABLE]; +} + // The metadata management activities of the metastore service. message MetadataManagementActivity { // Output only. The latest metadata exports of the metastore service. @@ -506,12 +644,15 @@ message MetadataImport { // The description of the metadata import. string description = 2; - // Output only. The time when the metadata import was created. + // Output only. The time when the metadata import was started. google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the metadata import was last updated. google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time when the metadata import finished. + google.protobuf.Timestamp end_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The current state of the metadata import. State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -579,6 +720,9 @@ message Backup { // The backup failed. FAILED = 4; + + // The backup is being restored. + RESTORING = 5; } // Immutable. The relative resource name of the backup, in the following form: @@ -600,6 +744,9 @@ message Backup { // The description of the backup. string description = 6; + + // Output only. Services that are restoring from the backup. + repeated string restoring_services = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The details of a metadata restore operation. @@ -622,7 +769,7 @@ message Restore { CANCELLED = 4; } - // The type of restore. + // The type of restore. If unspecified, defaults to `METADATA_ONLY`. enum RestoreType { // The restore type is unknown. RESTORE_TYPE_UNSPECIFIED = 0; @@ -646,7 +793,7 @@ message Restore { // Output only. The relative resource name of the metastore service backup to restore // from, in the following form: // - // `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}` + // `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`. string backup = 4 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -894,7 +1041,7 @@ message CreateMetadataImportRequest { // Required. The relative resource name of the service in which to create a metastore // import, in the following form: // - // `projects/{project_number}/locations/{location_id}/services/{service_id}` + // `projects/{project_number}/locations/{location_id}/services/{service_id}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1029,7 +1176,7 @@ message CreateBackupRequest { // Required. The relative resource name of the service in which to create a backup // of the following form: // - // `projects/{project_number}/locations/{location_id}/services/{service_id}` + // `projects/{project_number}/locations/{location_id}/services/{service_id}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1105,7 +1252,7 @@ message ExportMetadataRequest { // Required. The relative resource name of the metastore service to run export, in the // following form: // - // `projects/{project_id}/locations/{location_id}/services/{service_id}` + // `projects/{project_id}/locations/{location_id}/services/{service_id}`. string service = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1136,7 +1283,7 @@ message RestoreServiceRequest { // Required. The relative resource name of the metastore service to run restore, in the // following form: // - // `projects/{project_id}/locations/{location_id}/services/{service_id}` + // `projects/{project_id}/locations/{location_id}/services/{service_id}`. string service = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1147,7 +1294,7 @@ message RestoreServiceRequest { // Required. The relative resource name of the metastore service backup to restore // from, in the following form: // - // `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}` + // `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`. string backup = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1227,6 +1374,9 @@ message DatabaseDumpSpec { // Database dump is a MySQL dump file. MYSQL = 1; + + // Database dump contains Avro files. + AVRO = 2; } diff --git a/google/cloud/metastore/v1alpha/metastore_v1alpha.yaml b/google/cloud/metastore/v1alpha/metastore_v1alpha.yaml index bea1ef86d..e90aaee2c 100644 --- a/google/cloud/metastore/v1alpha/metastore_v1alpha.yaml +++ b/google/cloud/metastore/v1alpha/metastore_v1alpha.yaml @@ -65,12 +65,30 @@ http: get: '/v1alpha/{name=projects/*}/locations' - selector: google.iam.v1.IAMPolicy.GetIamPolicy get: '/v1alpha/{resource=projects/*/locations/*/services/*}:getIamPolicy' + additional_bindings: + - get: '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:getIamPolicy' + - get: '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:getIamPolicy' + - get: '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1alpha/{resource=projects/*/locations/*/services/*}:setIamPolicy' body: '*' + additional_bindings: + - post: '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:setIamPolicy' + body: '*' + - post: '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:setIamPolicy' + body: '*' + - post: '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1alpha/{resource=projects/*/locations/*/services/*}:testIamPermissions' body: '*' + additional_bindings: + - post: '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:testIamPermissions' + body: '*' + - post: '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:testIamPermissions' + body: '*' + - post: '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:testIamPermissions' + body: '*' - selector: google.longrunning.Operations.DeleteOperation delete: '/v1alpha/{name=projects/*/locations/*/operations/*}' - selector: google.longrunning.Operations.GetOperation diff --git a/google/cloud/metastore/v1beta/BUILD.bazel b/google/cloud/metastore/v1beta/BUILD.bazel index b4bbafbf7..dea817212 100644 --- a/google/cloud/metastore/v1beta/BUILD.bazel +++ b/google/cloud/metastore/v1beta/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":metastore_java_grpc", ], + transport = "grpc+rest", deps = [ ":metastore_java_proto", ], @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "metastore_java_gapic_test_suite", test_classes = [ + "com.google.cloud.metastore.v1beta.DataprocMetastoreClientHttpJsonTest", "com.google.cloud.metastore.v1beta.DataprocMetastoreClientTest", ], runtime_deps = [":metastore_java_gapic_test"], @@ -91,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-metastore-v1beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":metastore_java_gapic", ":metastore_java_grpc", @@ -129,6 +133,7 @@ go_gapic_library( importpath = "cloud.google.com/go/metastore/apiv1beta;metastore", metadata = True, service_yaml = "metastore_v1beta.yaml", + transport = "grpc+rest", deps = [ ":metastore_go_proto", "//google/longrunning:longrunning_go_proto", @@ -162,6 +167,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -169,6 +175,17 @@ py_gapic_library( srcs = [":metastore_proto"], grpc_service_config = "metastore_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-dataproc-metastore"], + transport = "grpc", +) + +py_test( + name = "metastore_py_gapic_test", + srcs = [ + "metastore_py_gapic_pytest.py", + "metastore_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":metastore_py_gapic"], ) # Open Source Packages @@ -256,8 +273,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -329,6 +346,7 @@ csharp_gapic_library( srcs = [":metastore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "metastore_grpc_service_config.json", + service_yaml = "metastore_v1beta.yaml", deps = [ ":metastore_csharp_grpc", ":metastore_csharp_proto", diff --git a/google/cloud/ml/v1/job_service.proto b/google/cloud/ml/v1/job_service.proto deleted file mode 100644 index d1f608941..000000000 --- a/google/cloud/ml/v1/job_service.proto +++ /dev/null @@ -1,613 +0,0 @@ -// Copyright 2017 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF 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.ml.v1; - -import "google/api/annotations.proto"; -import "google/api/auth.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/ml/v1;ml"; -option java_multiple_files = true; -option java_outer_classname = "JobServiceProto"; -option java_package = "com.google.cloud.ml.api.v1"; - -// Copyright 2017 Google Inc. All Rights Reserved. -// -// Proto file for the Google Cloud Machine Learning Engine. -// Describes the 'job service' to manage training and prediction jobs. - -// Service to create and manage training and batch prediction jobs. -service JobService { - // Creates a training or a batch prediction job. - rpc CreateJob(CreateJobRequest) returns (Job) { - option (google.api.http) = { - post: "/v1/{parent=projects/*}/jobs" - body: "job" - }; - } - - // Lists the jobs in the project. - rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) { - option (google.api.http) = { - get: "/v1/{parent=projects/*}/jobs" - }; - } - - // Describes a job. - rpc GetJob(GetJobRequest) returns (Job) { - option (google.api.http) = { - get: "/v1/{name=projects/*/jobs/*}" - }; - } - - // Cancels a running job. - rpc CancelJob(CancelJobRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - post: "/v1/{name=projects/*/jobs/*}:cancel" - body: "*" - }; - } -} - -// Represents input parameters for a training job. -message TrainingInput { - // A scale tier is an abstract representation of the resources Cloud ML - // will allocate to a training job. When selecting a scale tier for your - // training job, you should consider the size of your training dataset and - // the complexity of your model. As the tiers increase, virtual machines are - // added to handle your job, and the individual machines in the cluster - // generally have more memory and greater processing power than they do at - // lower tiers. The number of training units charged per hour of processing - // increases as tiers get more advanced. Refer to the - // [pricing guide](/ml/pricing) for more details. Note that in addition to - // incurring costs, your use of training resources is constrained by the - // [quota policy](/ml/quota). - enum ScaleTier { - // A single worker instance. This tier is suitable for learning how to use - // Cloud ML, and for experimenting with new models using small datasets. - BASIC = 0; - - // Many workers and a few parameter servers. - STANDARD_1 = 1; - - // A large number of workers with many parameter servers. - PREMIUM_1 = 3; - - // A single worker instance [with a GPU](ml/docs/how-tos/using-gpus). - BASIC_GPU = 6; - - // The CUSTOM tier is not a set tier, but rather enables you to use your - // own cluster specification. When you use this tier, set values to - // configure your processing cluster according to these guidelines: - // - // * You _must_ set `TrainingInput.masterType` to specify the type - // of machine to use for your master node. This is the only required - // setting. - // - // * You _may_ set `TrainingInput.workerCount` to specify the number of - // workers to use. If you specify one or more workers, you _must_ also - // set `TrainingInput.workerType` to specify the type of machine to use - // for your worker nodes. - // - // * You _may_ set `TrainingInput.parameterServerCount` to specify the - // number of parameter servers to use. If you specify one or more - // parameter servers, you _must_ also set - // `TrainingInput.parameterServerType` to specify the type of machine to - // use for your parameter servers. - // - // Note that all of your workers must use the same machine type, which can - // be different from your parameter server type and master type. Your - // parameter servers must likewise use the same machine type, which can be - // different from your worker type and master type. - CUSTOM = 5; - } - - // Required. Specifies the machine types, the number of replicas for workers - // and parameter servers. - ScaleTier scale_tier = 1; - - // Optional. Specifies the type of virtual machine to use for your training - // job's master worker. - // - // The following types are supported: - // - //
    - //
    standard
    - //
    - // A basic machine configuration suitable for training simple models with - // small to moderate datasets. - //
    - //
    large_model
    - //
    - // A machine with a lot of memory, specially suited for parameter servers - // when your model is large (having many hidden layers or layers with very - // large numbers of nodes). - //
    - //
    complex_model_s
    - //
    - // A machine suitable for the master and workers of the cluster when your - // model requires more computation than the standard machine can handle - // satisfactorily. - //
    - //
    complex_model_m
    - //
    - // A machine with roughly twice the number of cores and roughly double the - // memory of complex_model_s. - //
    - //
    complex_model_l
    - //
    - // A machine with roughly twice the number of cores and roughly double the - // memory of complex_model_m. - //
    - //
    standard_gpu
    - //
    - // A machine equivalent to standard that - // also includes a - // - // GPU that you can use in your trainer. - //
    - //
    complex_model_m_gpu
    - //
    - // A machine equivalent to - // coplex_model_m that also includes - // four GPUs. - //
    - //
    - // - // You must set this value when `scaleTier` is set to `CUSTOM`. - string master_type = 2; - - // Optional. Specifies the type of virtual machine to use for your training - // job's worker nodes. - // - // The supported values are the same as those described in the entry for - // `masterType`. - // - // This value must be present when `scaleTier` is set to `CUSTOM` and - // `workerCount` is greater than zero. - string worker_type = 3; - - // Optional. Specifies the type of virtual machine to use for your training - // job's parameter server. - // - // The supported values are the same as those described in the entry for - // `master_type`. - // - // This value must be present when `scaleTier` is set to `CUSTOM` and - // `parameter_server_count` is greater than zero. - string parameter_server_type = 4; - - // Optional. The number of worker replicas to use for the training job. Each - // replica in the cluster will be of the type specified in `worker_type`. - // - // This value can only be used when `scale_tier` is set to `CUSTOM`. If you - // set this value, you must also set `worker_type`. - int64 worker_count = 5; - - // Optional. The number of parameter server replicas to use for the training - // job. Each replica in the cluster will be of the type specified in - // `parameter_server_type`. - // - // This value can only be used when `scale_tier` is set to `CUSTOM`.If you - // set this value, you must also set `parameter_server_type`. - int64 parameter_server_count = 6; - - // Required. The Google Cloud Storage location of the packages with - // the training program and any additional dependencies. - repeated string package_uris = 7; - - // Required. The Python module name to run after installing the packages. - string python_module = 8; - - // Optional. Command line arguments to pass to the program. - repeated string args = 10; - - // Optional. The set of Hyperparameters to tune. - HyperparameterSpec hyperparameters = 12; - - // Required. The Google Compute Engine region to run the training job in. - string region = 14; - - // Optional. A Google Cloud Storage path in which to store training outputs - // and other data needed for training. This path is passed to your TensorFlow - // program as the 'job_dir' command-line argument. The benefit of specifying - // this field is that Cloud ML validates the path for use in training. - string job_dir = 16; - - // Optional. The Google Cloud ML runtime version to use for training. If not - // set, Google Cloud ML will choose the latest stable version. - string runtime_version = 15; -} - -// Represents a set of hyperparameters to optimize. -message HyperparameterSpec { - // The available types of optimization goals. - enum GoalType { - // Goal Type will default to maximize. - GOAL_TYPE_UNSPECIFIED = 0; - - // Maximize the goal metric. - MAXIMIZE = 1; - - // Minimize the goal metric. - MINIMIZE = 2; - } - - // Required. The type of goal to use for tuning. Available types are - // `MAXIMIZE` and `MINIMIZE`. - // - // Defaults to `MAXIMIZE`. - GoalType goal = 1; - - // Required. The set of parameters to tune. - repeated ParameterSpec params = 2; - - // Optional. How many training trials should be attempted to optimize - // the specified hyperparameters. - // - // Defaults to one. - int32 max_trials = 3; - - // Optional. The number of training trials to run concurrently. - // You can reduce the time it takes to perform hyperparameter tuning by adding - // trials in parallel. However, each trail only benefits from the information - // gained in completed trials. That means that a trial does not get access to - // the results of trials running at the same time, which could reduce the - // quality of the overall optimization. - // - // Each trial will use the same scale tier and machine types. - // - // Defaults to one. - int32 max_parallel_trials = 4; - - // Optional. The Tensorflow summary tag name to use for optimizing trials. For - // current versions of Tensorflow, this tag name should exactly match what is - // shown in Tensorboard, including all scopes. For versions of Tensorflow - // prior to 0.12, this should be only the tag passed to tf.Summary. - // By default, "training/hptuning/metric" will be used. - string hyperparameter_metric_tag = 5; -} - -// Represents a single hyperparameter to optimize. -message ParameterSpec { - // The type of the parameter. - enum ParameterType { - // You must specify a valid type. Using this unspecified type will result in - // an error. - PARAMETER_TYPE_UNSPECIFIED = 0; - - // Type for real-valued parameters. - DOUBLE = 1; - - // Type for integral parameters. - INTEGER = 2; - - // The parameter is categorical, with a value chosen from the categories - // field. - CATEGORICAL = 3; - - // The parameter is real valued, with a fixed set of feasible points. If - // `type==DISCRETE`, feasible_points must be provided, and - // {`min_value`, `max_value`} will be ignored. - DISCRETE = 4; - } - - // The type of scaling that should be applied to this parameter. - enum ScaleType { - // By default, no scaling is applied. - NONE = 0; - - // Scales the feasible space to (0, 1) linearly. - UNIT_LINEAR_SCALE = 1; - - // Scales the feasible space logarithmically to (0, 1). The entire feasible - // space must be strictly positive. - UNIT_LOG_SCALE = 2; - - // Scales the feasible space "reverse" logarithmically to (0, 1). The result - // is that values close to the top of the feasible space are spread out more - // than points near the bottom. The entire feasible space must be strictly - // positive. - UNIT_REVERSE_LOG_SCALE = 3; - } - - // Required. The parameter name must be unique amongst all ParameterConfigs in - // a HyperparameterSpec message. E.g., "learning_rate". - string parameter_name = 1; - - // Required. The type of the parameter. - ParameterType type = 4; - - // Required if type is `DOUBLE` or `INTEGER`. This field - // should be unset if type is `CATEGORICAL`. This value should be integers if - // type is INTEGER. - double min_value = 2; - - // Required if typeis `DOUBLE` or `INTEGER`. This field - // should be unset if type is `CATEGORICAL`. This value should be integers if - // type is `INTEGER`. - double max_value = 3; - - // Required if type is `CATEGORICAL`. The list of possible categories. - repeated string categorical_values = 5; - - // Required if type is `DISCRETE`. - // A list of feasible points. - // The list should be in strictly increasing order. For instance, this - // parameter might have possible settings of 1.5, 2.5, and 4.0. This list - // should not contain more than 1,000 values. - repeated double discrete_values = 6; - - // Optional. How the parameter should be scaled to the hypercube. - // Leave unset for categorical parameters. - // Some kind of scaling is strongly recommended for real or integral - // parameters (e.g., `UNIT_LINEAR_SCALE`). - ScaleType scale_type = 7; -} - -// Represents the result of a single hyperparameter tuning trial from a -// training job. The TrainingOutput object that is returned on successful -// completion of a training job with hyperparameter tuning includes a list -// of HyperparameterOutput objects, one for each successful trial. -message HyperparameterOutput { - // An observed value of a metric. - message HyperparameterMetric { - // The global training step for this metric. - int64 training_step = 1; - - // The objective value at this training step. - double objective_value = 2; - } - - // The trial id for these results. - string trial_id = 1; - - // The hyperparameters given to this trial. - map hyperparameters = 2; - - // The final objective metric seen for this trial. - HyperparameterMetric final_metric = 3; - - // All recorded object metrics for this trial. - repeated HyperparameterMetric all_metrics = 4; -} - -// Represents results of a training job. Output only. -message TrainingOutput { - // The number of hyperparameter tuning trials that completed successfully. - // Only set for hyperparameter tuning jobs. - int64 completed_trial_count = 1; - - // Results for individual Hyperparameter trials. - // Only set for hyperparameter tuning jobs. - repeated HyperparameterOutput trials = 2; - - // The amount of ML units consumed by the job. - double consumed_ml_units = 3; - - // Whether this job is a hyperparameter tuning job. - bool is_hyperparameter_tuning_job = 4; -} - -// Represents input parameters for a prediction job. -message PredictionInput { - // The format used to separate data instances in the source files. - enum DataFormat { - // Unspecified format. - DATA_FORMAT_UNSPECIFIED = 0; - - // The source file is a text file with instances separated by the - // new-line character. - TEXT = 1; - - // The source file is a TFRecord file. - TF_RECORD = 2; - - // The source file is a GZIP-compressed TFRecord file. - TF_RECORD_GZIP = 3; - } - - // Required. The model or the version to use for prediction. - oneof model_version { - // Use this field if you want to use the default version for the specified - // model. The string must use the following format: - // - // `"projects/[YOUR_PROJECT]/models/[YOUR_MODEL]"` - string model_name = 1; - - // Use this field if you want to specify a version of the model to use. The - // string is formatted the same way as `model_version`, with the addition - // of the version information: - // - // `"projects/[YOUR_PROJECT]/models/YOUR_MODEL/versions/[YOUR_VERSION]"` - string version_name = 2; - - // Use this field if you want to specify a Google Cloud Storage path for - // the model to use. - string uri = 9; - } - - // Required. The format of the input data files. - DataFormat data_format = 3; - - // Required. The Google Cloud Storage location of the input data files. - // May contain wildcards. - repeated string input_paths = 4; - - // Required. The output Google Cloud Storage location. - string output_path = 5; - - // Optional. The maximum number of workers to be used for parallel processing. - // Defaults to 10 if not specified. - int64 max_worker_count = 6; - - // Required. The Google Compute Engine region to run the prediction job in. - string region = 7; - - // Optional. The Google Cloud ML runtime version to use for this batch - // prediction. If not set, Google Cloud ML will pick the runtime version used - // during the CreateVersion request for this model version, or choose the - // latest stable version when model version information is not available - // such as when the model is specified by uri. - string runtime_version = 8; -} - -// Represents results of a prediction job. -message PredictionOutput { - // The output Google Cloud Storage location provided at the job creation time. - string output_path = 1; - - // The number of generated predictions. - int64 prediction_count = 2; - - // The number of data instances which resulted in errors. - int64 error_count = 3; - - // Node hours used by the batch prediction job. - double node_hours = 4; -} - -// Represents a training or prediction job. -message Job { - // Describes the job state. - enum State { - // The job state is unspecified. - STATE_UNSPECIFIED = 0; - - // The job has been just created and processing has not yet begun. - QUEUED = 1; - - // The service is preparing to run the job. - PREPARING = 2; - - // The job is in progress. - RUNNING = 3; - - // The job completed successfully. - SUCCEEDED = 4; - - // The job failed. - // `error_message` should contain the details of the failure. - FAILED = 5; - - // The job is being cancelled. - // `error_message` should describe the reason for the cancellation. - CANCELLING = 6; - - // The job has been cancelled. - // `error_message` should describe the reason for the cancellation. - CANCELLED = 7; - } - - // Required. The user-specified id of the job. - string job_id = 1; - - // Required. Parameters to create a job. - oneof input { - // Input parameters to create a training job. - TrainingInput training_input = 2; - - // Input parameters to create a prediction job. - PredictionInput prediction_input = 3; - } - - // Output only. When the job was created. - google.protobuf.Timestamp create_time = 4; - - // Output only. When the job processing was started. - google.protobuf.Timestamp start_time = 5; - - // Output only. When the job processing was completed. - google.protobuf.Timestamp end_time = 6; - - // Output only. The detailed state of a job. - State state = 7; - - // Output only. The details of a failure or a cancellation. - string error_message = 8; - - // Output only. The current result of the job. - oneof output { - // The current training job result. - TrainingOutput training_output = 9; - - // The current prediction job result. - PredictionOutput prediction_output = 10; - } -} - -// Request message for the CreateJob method. -message CreateJobRequest { - // Required. The project name. - // - // Authorization: requires `Editor` role on the specified project. - string parent = 1; - - // Required. The job to create. - Job job = 2; -} - -// Request message for the ListJobs method. -message ListJobsRequest { - // Required. The name of the project for which to list jobs. - // - // Authorization: requires `Viewer` role on the specified project. - string parent = 1; - - // Optional. Specifies the subset of jobs to retrieve. - string filter = 2; - - // Optional. A page token to request the next page of results. - // - // You get the token from the `next_page_token` field of the response from - // the previous call. - string page_token = 4; - - // Optional. The number of jobs to retrieve per "page" of results. If there - // are more remaining results than this number, the response message will - // contain a valid value in the `next_page_token` field. - // - // The default value is 20, and the maximum page size is 100. - int32 page_size = 5; -} - -// Response message for the ListJobs method. -message ListJobsResponse { - // The list of jobs. - repeated Job jobs = 1; - - // Optional. Pass this token as the `page_token` field of the request for a - // subsequent call. - string next_page_token = 2; -} - -// Request message for the GetJob method. -message GetJobRequest { - // Required. The name of the job to get the description of. - // - // Authorization: requires `Viewer` role on the parent project. - string name = 1; -} - -// Request message for the CancelJob method. -message CancelJobRequest { - // Required. The name of the job to cancel. - // - // Authorization: requires `Editor` role on the parent project. - string name = 1; -} diff --git a/google/cloud/ml/v1/model_service.proto b/google/cloud/ml/v1/model_service.proto deleted file mode 100644 index c57b16b50..000000000 --- a/google/cloud/ml/v1/model_service.proto +++ /dev/null @@ -1,392 +0,0 @@ -// Copyright 2017 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF 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.ml.v1; - -import "google/api/annotations.proto"; -import "google/api/auth.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/timestamp.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/ml/v1;ml"; -option java_multiple_files = true; -option java_outer_classname = "ModelServiceProto"; -option java_package = "com.google.cloud.ml.api.v1"; - -// Copyright 2017 Google Inc. All Rights Reserved. -// -// Proto file for the Google Cloud Machine Learning Engine. -// Describes the 'models service' to work with the 'model' and 'version' -// resources. - -// Provides methods that create and manage machine learning models and their -// versions. -// -// A model in this context is a container for versions. The model can't provide -// predictions without first having a version created for it. -// -// Each version is a trained machine learning model, and each is assumed to be -// an iteration of the same machine learning problem as the other versions of -// the same model. -// -// Your project can define multiple models, each with multiple versions. -// -// The basic life cycle of a model is: -// -// * Create and train the machine learning model and save it to a -// Google Cloud Storage location. -// * Use -// [projects.models.create](/ml/reference/rest/v1/projects.models/create) -// to make a new model in your project. -// * Use -// [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create) -// to deploy your saved model. -// * Use [projects.predict](/ml/reference/rest/v1/projects/predict to -// request predictions of a version of your model, or use -// [projects.jobs.create](/ml/reference/rest/v1/projects.jobs/create) -// to start a batch prediction job. -service ModelService { - // Creates a model which will later contain one or more versions. - // - // You must add at least one version before you can request predictions from - // the model. Add versions by calling - // [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create). - rpc CreateModel(CreateModelRequest) returns (Model) { - option (google.api.http) = { - post: "/v1/{parent=projects/*}/models" - body: "model" - }; - } - - // Lists the models in a project. - // - // Each project can contain multiple models, and each model can have multiple - // versions. - rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { - option (google.api.http) = { - get: "/v1/{parent=projects/*}/models" - }; - } - - // Gets information about a model, including its name, the description (if - // set), and the default version (if at least one version of the model has - // been deployed). - rpc GetModel(GetModelRequest) returns (Model) { - option (google.api.http) = { - get: "/v1/{name=projects/*/models/*}" - }; - } - - // Deletes a model. - // - // You can only delete a model if there are no versions in it. You can delete - // versions by calling - // [projects.models.versions.delete](/ml/reference/rest/v1/projects.models.versions/delete). - rpc DeleteModel(DeleteModelRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v1/{name=projects/*/models/*}" - }; - } - - // Creates a new version of a model from a trained TensorFlow model. - // - // If the version created in the cloud by this call is the first deployed - // version of the specified model, it will be made the default version of the - // model. When you add a version to a model that already has one or more - // versions, the default version does not automatically change. If you want a - // new version to be the default, you must call - // [projects.models.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault). - rpc CreateVersion(CreateVersionRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1/{parent=projects/*/models/*}/versions" - body: "version" - }; - } - - // Gets basic information about all the versions of a model. - // - // If you expect that a model has a lot of versions, or if you need to handle - // only a limited number of results at a time, you can request that the list - // be retrieved in batches (called pages): - rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) { - option (google.api.http) = { - get: "/v1/{parent=projects/*/models/*}/versions" - }; - } - - // Gets information about a model version. - // - // Models can have multiple versions. You can call - // [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list) - // to get the same information that this method returns for all of the - // versions of a model. - rpc GetVersion(GetVersionRequest) returns (Version) { - option (google.api.http) = { - get: "/v1/{name=projects/*/models/*/versions/*}" - }; - } - - // Deletes a model version. - // - // Each model can have multiple versions deployed and in use at any given - // time. Use this method to remove a single version. - // - // Note: You cannot delete the version that is set as the default version - // of the model unless it is the only remaining version. - rpc DeleteVersion(DeleteVersionRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v1/{name=projects/*/models/*/versions/*}" - }; - } - - // Designates a version to be the default for the model. - // - // The default version is used for prediction requests made against the model - // that don't specify a version. - // - // The first version to be created for a model is automatically set as the - // default. You must make any subsequent changes to the default version - // setting manually using this method. - rpc SetDefaultVersion(SetDefaultVersionRequest) returns (Version) { - option (google.api.http) = { - post: "/v1/{name=projects/*/models/*/versions/*}:setDefault" - body: "*" - }; - } -} - -// Represents a machine learning solution. -// -// A model can have multiple versions, each of which is a deployed, trained -// model ready to receive prediction requests. The model itself is just a -// container. -message Model { - // Required. The name specified for the model when it was created. - // - // The model name must be unique within the project it is created in. - string name = 1; - - // Optional. The description specified for the model when it was created. - string description = 2; - - // Output only. The default version of the model. This version will be used to - // handle prediction requests that do not specify a version. - // - // You can change the default version by calling - // [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault). - Version default_version = 3; - - // Optional. The list of regions where the model is going to be deployed. - // Currently only one region per model is supported. - // Defaults to 'us-central1' if nothing is set. - repeated string regions = 4; - - // Optional. If true, enables StackDriver Logging for online prediction. - // Default is false. - bool online_prediction_logging = 5; -} - -// Represents a version of the model. -// -// Each version is a trained model deployed in the cloud, ready to handle -// prediction requests. A model can have multiple versions. You can get -// information about all of the versions of a given model by calling -// [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list). -message Version { - // Required.The name specified for the version when it was created. - // - // The version name must be unique within the model it is created in. - string name = 1; - - // Optional. The description specified for the version when it was created. - string description = 2; - - // Output only. If true, this version will be used to handle prediction - // requests that do not specify a version. - // - // You can change the default version by calling - // [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault). - bool is_default = 3; - - // Required. The Google Cloud Storage location of the trained model used to - // create the version. See the - // [overview of model deployment](/ml/docs/concepts/deployment-overview) for - // more informaiton. - // - // When passing Version to - // [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create) - // the model service uses the specified location as the source of the model. - // Once deployed, the model version is hosted by the prediction service, so - // this location is useful only as a historical record. - string deployment_uri = 4; - - // Output only. The time the version was created. - google.protobuf.Timestamp create_time = 5; - - // Output only. The time the version was last used for prediction. - google.protobuf.Timestamp last_use_time = 6; - - // Optional. The Google Cloud ML runtime version to use for this deployment. - // If not set, Google Cloud ML will choose a version. - string runtime_version = 8; - - // Optional. Manually select the number of nodes to use for serving the - // model. If unset (i.e., by default), the number of nodes used to serve - // the model automatically scales with traffic. However, care should be - // taken to ramp up traffic according to the model's ability to scale. If - // your model needs to handle bursts of traffic beyond it's ability to - // scale, it is recommended you set this field appropriately. - ManualScaling manual_scaling = 9; -} - -// Options for manually scaling a model. -message ManualScaling { - // The number of nodes to allocate for this model. These nodes are always up, - // starting from the time the model is deployed, so the cost of operating - // this model will be proportional to nodes * number of hours since - // deployment. - int32 nodes = 1; -} - -// Request message for the CreateModel method. -message CreateModelRequest { - // Required. The project name. - // - // Authorization: requires `Editor` role on the specified project. - string parent = 1; - - // Required. The model to create. - Model model = 2; -} - -// Request message for the ListModels method. -message ListModelsRequest { - // Required. The name of the project whose models are to be listed. - // - // Authorization: requires `Viewer` role on the specified project. - string parent = 1; - - // Optional. A page token to request the next page of results. - // - // You get the token from the `next_page_token` field of the response from - // the previous call. - string page_token = 4; - - // Optional. The number of models to retrieve per "page" of results. If there - // are more remaining results than this number, the response message will - // contain a valid value in the `next_page_token` field. - // - // The default value is 20, and the maximum page size is 100. - int32 page_size = 5; -} - -// Response message for the ListModels method. -message ListModelsResponse { - // The list of models. - repeated Model models = 1; - - // Optional. Pass this token as the `page_token` field of the request for a - // subsequent call. - string next_page_token = 2; -} - -// Request message for the GetModel method. -message GetModelRequest { - // Required. The name of the model. - // - // Authorization: requires `Viewer` role on the parent project. - string name = 1; -} - -// Request message for the DeleteModel method. -message DeleteModelRequest { - // Required. The name of the model. - // - // Authorization: requires `Editor` role on the parent project. - string name = 1; -} - -// Uploads the provided trained model version to Cloud Machine Learning. -message CreateVersionRequest { - // Required. The name of the model. - // - // Authorization: requires `Editor` role on the parent project. - string parent = 1; - - // Required. The version details. - Version version = 2; -} - -// Request message for the ListVersions method. -message ListVersionsRequest { - // Required. The name of the model for which to list the version. - // - // Authorization: requires `Viewer` role on the parent project. - string parent = 1; - - // Optional. A page token to request the next page of results. - // - // You get the token from the `next_page_token` field of the response from - // the previous call. - string page_token = 4; - - // Optional. The number of versions to retrieve per "page" of results. If - // there are more remaining results than this number, the response message - // will contain a valid value in the `next_page_token` field. - // - // The default value is 20, and the maximum page size is 100. - int32 page_size = 5; -} - -// Response message for the ListVersions method. -message ListVersionsResponse { - // The list of versions. - repeated Version versions = 1; - - // Optional. Pass this token as the `page_token` field of the request for a - // subsequent call. - string next_page_token = 2; -} - -// Request message for the GetVersion method. -message GetVersionRequest { - // Required. The name of the version. - // - // Authorization: requires `Viewer` role on the parent project. - string name = 1; -} - -// Request message for the DeleteVerionRequest method. -message DeleteVersionRequest { - // Required. The name of the version. You can get the names of all the - // versions of a model by calling - // [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list). - // - // Authorization: requires `Editor` role on the parent project. - string name = 1; -} - -// Request message for the SetDefaultVersion request. -message SetDefaultVersionRequest { - // Required. The name of the version to make the default for the model. You - // can get the names of all the versions of a model by calling - // [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list). - // - // Authorization: requires `Editor` role on the parent project. - string name = 1; -} diff --git a/google/cloud/ml/v1/operation_metadata.proto b/google/cloud/ml/v1/operation_metadata.proto deleted file mode 100644 index 0220cfd7e..000000000 --- a/google/cloud/ml/v1/operation_metadata.proto +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2017 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF 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.ml.v1; - -import "google/api/annotations.proto"; -import "google/cloud/ml/v1/model_service.proto"; -import "google/protobuf/timestamp.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/ml/v1;ml"; -option java_multiple_files = true; -option java_outer_classname = "OperationMetadataProto"; -option java_package = "com.google.cloud.ml.api.v1"; - -// Copyright 2017 Google Inc. All Rights Reserved. -// -// Proto file for the Google Cloud Machine Learning Engine. -// Describes the metadata for longrunning operations. - -// Represents the metadata of the long-running operation. -message OperationMetadata { - // The operation type. - enum OperationType { - // Unspecified operation type. - OPERATION_TYPE_UNSPECIFIED = 0; - - // An operation to create a new version. - CREATE_VERSION = 1; - - // An operation to delete an existing version. - DELETE_VERSION = 2; - - // An operation to delete an existing model. - DELETE_MODEL = 3; - } - - // The time the operation was submitted. - google.protobuf.Timestamp create_time = 1; - - // The time operation processing started. - google.protobuf.Timestamp start_time = 2; - - // The time operation processing completed. - google.protobuf.Timestamp end_time = 3; - - // Indicates whether a request to cancel this operation has been made. - bool is_cancellation_requested = 4; - - // The operation type. - OperationType operation_type = 5; - - // Contains the name of the model associated with the operation. - string model_name = 6; - - // Contains the version associated with the operation. - Version version = 7; -} diff --git a/google/cloud/ml/v1/prediction_service.proto b/google/cloud/ml/v1/prediction_service.proto deleted file mode 100644 index dba49277c..000000000 --- a/google/cloud/ml/v1/prediction_service.proto +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright 2017 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF 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.ml.v1; - -import "google/api/annotations.proto"; -import "google/api/httpbody.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/ml/v1;ml"; -option java_multiple_files = true; -option java_outer_classname = "PredictionServiceProto"; -option java_package = "com.google.cloud.ml.api.v1"; - -// Copyright 2017 Google Inc. All Rights Reserved. -// -// Proto file for the Google Cloud Machine Learning Engine. -// Describes the online prediction service. - -// The Prediction API, which serves predictions for models managed by -// ModelService. -service OnlinePredictionService { - // Performs prediction on the data in the request. - // - // **** REMOVE FROM GENERATED DOCUMENTATION - rpc Predict(PredictRequest) returns (google.api.HttpBody) { - option (google.api.http) = { - post: "/v1/{name=projects/**}:predict" - body: "*" - }; - } -} - -// Request for predictions to be issued against a trained model. -// -// The body of the request is a single JSON object with a single top-level -// field: -// -//
    -//
    instances
    -//
    A JSON array containing values representing the instances to use for -// prediction.
    -//
    -// -// The structure of each element of the instances list is determined by your -// model's input definition. Instances can include named inputs or can contain -// only unlabeled values. -// -// Not all data includes named inputs. Some instances will be simple -// JSON values (boolean, number, or string). However, instances are often lists -// of simple values, or complex nested lists. Here are some examples of request -// bodies: -// -// CSV data with each row encoded as a string value: -//
    -// {"instances": ["1.0,true,\\"x\\"", "-2.0,false,\\"y\\""]}
    -// 
    -// Plain text: -//
    -// {"instances": ["the quick brown fox", "la bruja le dio"]}
    -// 
    -// Sentences encoded as lists of words (vectors of strings): -//
    -// {
    -//   "instances": [
    -//     ["the","quick","brown"],
    -//     ["la","bruja","le"],
    -//     ...
    -//   ]
    -// }
    -// 
    -// Floating point scalar values: -//
    -// {"instances": [0.0, 1.1, 2.2]}
    -// 
    -// Vectors of integers: -//
    -// {
    -//   "instances": [
    -//     [0, 1, 2],
    -//     [3, 4, 5],
    -//     ...
    -//   ]
    -// }
    -// 
    -// Tensors (in this case, two-dimensional tensors): -//
    -// {
    -//   "instances": [
    -//     [
    -//       [0, 1, 2],
    -//       [3, 4, 5]
    -//     ],
    -//     ...
    -//   ]
    -// }
    -// 
    -// Images can be represented different ways. In this encoding scheme the first -// two dimensions represent the rows and columns of the image, and the third -// contains lists (vectors) of the R, G, and B values for each pixel. -//
    -// {
    -//   "instances": [
    -//     [
    -//       [
    -//         [138, 30, 66],
    -//         [130, 20, 56],
    -//         ...
    -//       ],
    -//       [
    -//         [126, 38, 61],
    -//         [122, 24, 57],
    -//         ...
    -//       ],
    -//       ...
    -//     ],
    -//     ...
    -//   ]
    -// }
    -// 
    -// JSON strings must be encoded as UTF-8. To send binary data, you must -// base64-encode the data and mark it as binary. To mark a JSON string -// as binary, replace it with a JSON object with a single attribute named `b64`: -//
    {"b64": "..."} 
    -// For example: -// -// Two Serialized tf.Examples (fake data, for illustrative purposes only): -//
    -// {"instances": [{"b64": "X5ad6u"}, {"b64": "IA9j4nx"}]}
    -// 
    -// Two JPEG image byte strings (fake data, for illustrative purposes only): -//
    -// {"instances": [{"b64": "ASa8asdf"}, {"b64": "JLK7ljk3"}]}
    -// 
    -// If your data includes named references, format each instance as a JSON object -// with the named references as the keys: -// -// JSON input data to be preprocessed: -//
    -// {
    -//   "instances": [
    -//     {
    -//       "a": 1.0,
    -//       "b": true,
    -//       "c": "x"
    -//     },
    -//     {
    -//       "a": -2.0,
    -//       "b": false,
    -//       "c": "y"
    -//     }
    -//   ]
    -// }
    -// 
    -// Some models have an underlying TensorFlow graph that accepts multiple input -// tensors. In this case, you should use the names of JSON name/value pairs to -// identify the input tensors, as shown in the following exmaples: -// -// For a graph with input tensor aliases "tag" (string) and "image" -// (base64-encoded string): -//
    -// {
    -//   "instances": [
    -//     {
    -//       "tag": "beach",
    -//       "image": {"b64": "ASa8asdf"}
    -//     },
    -//     {
    -//       "tag": "car",
    -//       "image": {"b64": "JLK7ljk3"}
    -//     }
    -//   ]
    -// }
    -// 
    -// For a graph with input tensor aliases "tag" (string) and "image" -// (3-dimensional array of 8-bit ints): -//
    -// {
    -//   "instances": [
    -//     {
    -//       "tag": "beach",
    -//       "image": [
    -//         [
    -//           [138, 30, 66],
    -//           [130, 20, 56],
    -//           ...
    -//         ],
    -//         [
    -//           [126, 38, 61],
    -//           [122, 24, 57],
    -//           ...
    -//         ],
    -//         ...
    -//       ]
    -//     },
    -//     {
    -//       "tag": "car",
    -//       "image": [
    -//         [
    -//           [255, 0, 102],
    -//           [255, 0, 97],
    -//           ...
    -//         ],
    -//         [
    -//           [254, 1, 101],
    -//           [254, 2, 93],
    -//           ...
    -//         ],
    -//         ...
    -//       ]
    -//     },
    -//     ...
    -//   ]
    -// }
    -// 
    -// If the call is successful, the response body will contain one prediction -// entry per instance in the request body. If prediction fails for any -// instance, the response body will contain no predictions and will contian -// a single error entry instead. -message PredictRequest { - // Required. The resource name of a model or a version. - // - // Authorization: requires `Viewer` role on the parent project. - string name = 1; - - // - // Required. The prediction request body. - google.api.HttpBody http_body = 2; -} diff --git a/google/cloud/ml/v1/project_service.proto b/google/cloud/ml/v1/project_service.proto deleted file mode 100644 index b5949093d..000000000 --- a/google/cloud/ml/v1/project_service.proto +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2017 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF 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.ml.v1; - -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/ml/v1;ml"; -option java_multiple_files = true; -option java_outer_classname = "ProjectServiceProto"; -option java_package = "com.google.cloud.ml.api.v1"; - -// Copyright 2017 Google Inc. All Rights Reserved. -// -// Proto file for the Google Cloud Machine Learning Engine. -// Describes the project management service. - -// Allows retrieving project related information. -service ProjectManagementService { - // Get the service account information associated with your project. You need - // this information in order to grant the service account persmissions for - // the Google Cloud Storage location where you put your model training code - // for training the model with Google Cloud Machine Learning. - rpc GetConfig(GetConfigRequest) returns (GetConfigResponse) { - option (google.api.http) = { - get: "/v1/{name=projects/*}:getConfig" - }; - } -} - -// Requests service account information associated with a project. -message GetConfigRequest { - // Required. The project name. - // - // Authorization: requires `Viewer` role on the specified project. - string name = 1; -} - -// Returns service account information associated with a project. -message GetConfigResponse { - // The service account Cloud ML uses to access resources in the project. - string service_account = 1; - - // The project number for `service_account`. - int64 service_account_project = 2; -} diff --git a/google/cloud/networkanalyzer/logging/v1/BUILD.bazel b/google/cloud/networkanalyzer/logging/v1/BUILD.bazel new file mode 100644 index 000000000..3329174e3 --- /dev/null +++ b/google/cloud/networkanalyzer/logging/v1/BUILD.bazel @@ -0,0 +1,176 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "analyzer_log.proto", + ], + deps = [ + "@com_google_protobuf//:timestamp_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/networkanalyzer/logging/v1", + protos = [":logging_proto"], + deps = [ + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/networkanalyzer/logging/v1/analyzer_log.proto b/google/cloud/networkanalyzer/logging/v1/analyzer_log.proto new file mode 100644 index 000000000..292ac5ec4 --- /dev/null +++ b/google/cloud/networkanalyzer/logging/v1/analyzer_log.proto @@ -0,0 +1,208 @@ +// 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.cloud.networkanalyzer.logging.v1; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.NetworkAnalyzer.Logging.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networkanalyzer/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "AnalyzerLogProto"; +option java_package = "com.google.cloud.networkanalyzer.logging.v1"; +option php_namespace = "Google\\Cloud\\NetworkAnalyzer\\Logging\\V1"; +option ruby_package = "Google::Cloud::NetworkAnalyzer::Logging::V1"; + +enum ReportCauseCode { + REPORT_CAUSE_CODE_UNSPECIFIED = 0; + + // VPC Basics + ROUTE_INVALID_NEXT_HOP_VM_IP_FORWARDING_DISABLED = 1; + + ROUTE_INVALID_NEXT_HOP_VM_DELETED = 2; + + ROUTE_INVALID_NEXT_HOP_VM_STOPPED = 3; + + ROUTE_INVALID_NEXT_HOP_ILB_MISCONFIGURED = 4; + + ROUTE_INVALID_NEXT_HOP_VPN_TUNNEL_DELETED = 5; + + ROUTE_INVALID_NEXT_HOP_ILB_BACKEND_IP_FORWARDING_DISABLED = 6; + + IP_UTILIZATION_IP_ALLOCATION_RATIO_HIGH = 20; + + // Kubernetes Engine + GKE_NODE_TO_CONTROL_PLANE_BLOCKED_BY_ROUTING_ISSUE = 201; + + GKE_NODE_TO_CONTROL_PLANE_PUBLIC_ENDPOINT_BLOCKED_BY_EGRESS_FIREWALL = 202; + + GKE_NODE_TO_CONTROL_PLANE_PRIVATE_ENDPOINT_BLOCKED_BY_EGRESS_FIREWALL = 203; + + GKE_CONTROL_PLANE_TO_NODE_BLOCKED_BY_ROUTING_ISSUE = 211; + + GKE_CONTROL_PLANE_TO_NODE_BLOCKED_BY_INGRESS_FIREWALL_ON_NODE = 212; + + GKE_IP_UTILIZATION_POD_RANGES_ALLOCATION_HIGH = 221; + + GKE_IP_UTILIZATION_POD_RANGES_ALLOCATION_LIMITES_AUTOSCALING = 222; + + // Managed Services + CLOUD_SQL_PRIVATE_IP_BLOCKED_BY_EGRESS_FIREWALL = 601; + + CLOUD_SQL_PRIVATE_IP_BLOCKED_BY_ROUTING_ISSUE = 602; + + CLOUD_SQL_PRIVATE_IP_INSTANCE_NOT_RUNNING = 603; + + // Hybrid Connectivity + DYNAMIC_ROUTE_SHADOWED_FULLY_SHADOWED_BY_SUBNET_ROUTE = 801; + + DYNAMIC_ROUTE_SHADOWED_FULLY_SHADOWED_BY_PEERING_SUBNET_ROUTE = 802; + + DYNAMIC_ROUTE_SHADOWED_FULLY_SHADOWED_BY_STATIC_ROUTE = 803; + + DYNAMIC_ROUTE_SHADOWED_FULLY_SHADOWED_BY_PEERING_STATIC_ROUTE = 804; + + DYNAMIC_ROUTE_SHADOWED_PARTIALLY_SHADOWED_BY_SUBNET_ROUTE = 805; + + DYNAMIC_ROUTE_SHADOWED_PARTIALLY_SHADOWED_BY_PEERING_SUBNET_ROUTE = 806; + + DYNAMIC_ROUTE_SHADOWED_PARTIALLY_SHADOWED_BY_STATIC_ROUTE = 807; + + DYNAMIC_ROUTE_SHADOWED_PARTIALLY_SHADOWED_BY_PEERING_STATIC_ROUTE = 808; + + // Network Services + LOAD_BALANCER_HEALTH_CHECK_FIREWALL_HEALTH_CHECK_FIREWALL_NOT_CONFIGURED = 1001; + + LOAD_BALANCER_HEALTH_CHECK_FIREWALL_HEALTH_CHECK_RANGE_BLOCKED = 1002; + + LOAD_BALANCER_HEALTH_CHECK_FIREWALL_FIREWALL_CONFIG_INCONSISTENT = 1003; + + LOAD_BALANCER_HEALTH_CHECK_FIREWALL_HEALTH_CHECK_RANGE_PARTIALLY_BLOCKED = 1004; + + LOAD_BALANCER_BEST_PRACTICES_BACKEND_SERVICE_BALANCING_MODE_BREAKS_SESSION_AFFINITY = 1021; + + LOAD_BALANCER_BEST_PRACTICES_BACKEND_SERVICE_HEALTH_CHECK_PORT_MISMATCH = 1024; +} + +message IpUtilizationInfo { + message SubnetIpUtilization { + // URI of subnet. + string subnet_uri = 1; + + // Secondary range name. If the range is the primary range of the subnet, + // this field is empty. + string secondary_range_name = 2; + + // Total number of usable IP addresses in the IP range. + uint64 total_usable_addresses = 3; + + // The ratio of allocated IP addresses from the total usable addresses. + double allocation_ratio = 4; + } + + repeated SubnetIpUtilization subnet_ip_utilization = 1; +} + +// Log entry that describes a report from Network Analyzer. +message Report { + // Priority level of an report. + enum Priority { + SEVERITY_UNSPECIFIED = 0; + + CRITICAL = 1; + + HIGH = 2; + + MEDIUM = 3; + + LOW = 4; + } + + // Type of an report. + enum Type { + REPORT_TYPE_UNSPECIFIED = 0; + + INFO = 1; + + WARNING = 2; + + ERROR = 3; + } + + // Status of an report. + enum ReportStatus { + REPORT_STATUS_UNSPECIFIED = 0; + + ACTIVE = 1; + + FIXED = 2; + + DISMISSED = 3; + } + + // Groups of an report. + enum ReportGroup { + CATEGORY_UNSPECIFIED = 0; + + VPC_NETWORK = 1; + + NETWORK_SERVICES = 2; + + KUBERNETES_ENGINE = 3; + + HYBRID_CONNECTIVITY = 4; + + MANAGED_SERVICES = 5; + } + + // The unique identifier of the report. + string id = 1; + + // Priority of the report. + Priority priority = 2; + + // Type of the report. + Type type = 3; + + // Status of the report. + ReportStatus status = 4; + + // The timestamp when the report was first discovered by Network Analyzer. + google.protobuf.Timestamp first_report_time = 9; + + // Cause code of the report. + ReportCauseCode cause_code = 12; + + // The resource that are reported with the report. + // Contains the fully qualified resource name. + // e.g., + // `//compute.googleapis.com/projects/{project_id}/global/networks/{network}` + string resource_name = 15; + + // Location associated with the report. It can be global or GCP regions + // and zones. e.g., https://cloud.google.com/compute/docs/regions-zones/ + string location = 16; + + // URI to the documentation of the report. + string report_documentation_uri = 17; + + // The groups of the report. One report may be present in multiple groups. + repeated ReportGroup report_groups = 18; + + oneof content { + IpUtilizationInfo ip_utilization_info = 19; + } +} diff --git a/google/cloud/networkconnectivity/v1/BUILD.bazel b/google/cloud/networkconnectivity/v1/BUILD.bazel index fbc8a92db..873ca1a56 100644 --- a/google/cloud/networkconnectivity/v1/BUILD.bazel +++ b/google/cloud/networkconnectivity/v1/BUILD.bazel @@ -92,6 +92,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-networkconnectivity-v1-java", + include_samples = True, deps = [ ":networkconnectivity_java_gapic", ":networkconnectivity_java_grpc", @@ -162,12 +163,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "networkconnectivity_py_gapic", srcs = [":networkconnectivity_proto"], grpc_service_config = "networkconnectivity_v1_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "networkconnectivity_py_gapic_test", + srcs = [ + "networkconnectivity_py_gapic_pytest.py", + "networkconnectivity_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":networkconnectivity_py_gapic"], ) # Open Source Packages @@ -327,6 +340,7 @@ csharp_gapic_library( srcs = [":networkconnectivity_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "networkconnectivity_v1_grpc_service_config.json", + service_yaml = "networkconnectivity_v1.yaml", deps = [ ":networkconnectivity_csharp_grpc", ":networkconnectivity_csharp_proto", diff --git a/google/cloud/networkconnectivity/v1/common.proto b/google/cloud/networkconnectivity/v1/common.proto index 2d999b7ef..21999d592 100644 --- a/google/cloud/networkconnectivity/v1/common.proto +++ b/google/cloud/networkconnectivity/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.networkconnectivity.v1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkConnectivity.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1;networkconnectivity"; diff --git a/google/cloud/networkconnectivity/v1/hub.proto b/google/cloud/networkconnectivity/v1/hub.proto index 7fa768035..c28ca9a07 100644 --- a/google/cloud/networkconnectivity/v1/hub.proto +++ b/google/cloud/networkconnectivity/v1/hub.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -164,9 +164,39 @@ service HubService { } } +// The State enum represents the lifecycle stage of a Network Connectivity +// Center resource. +enum State { + // No state information available + STATE_UNSPECIFIED = 0; + + // The resource's create operation is in progress + CREATING = 1; + + // The resource is active + ACTIVE = 2; + + // The resource's Delete operation is in progress + DELETING = 3; +} + +// Supported features for a location +enum LocationFeature { + // No publicly supported feature in this location + LOCATION_FEATURE_UNSPECIFIED = 0; + + // Site-to-cloud spokes are supported in this location + SITE_TO_CLOUD_SPOKES = 1; + + // Site-to-site spokes are supported in this location + SITE_TO_SITE_SPOKES = 2; +} + // A hub is a collection of spokes. A single hub can contain spokes from -// multiple regions. However, all of a hub's spokes must be associated with -// resources that reside in the same VPC network. +// multiple regions. However, if any of a hub's spokes use the data transfer +// feature, the resources associated with those spokes must all reside in the +// same VPC network. Spokes that do not use data transfer can be associated +// with any VPC network in your project. message Hub { option (google.api.resource) = { type: "networkconnectivity.googleapis.com/Hub" @@ -200,38 +230,27 @@ message Hub { // Output only. The current lifecycle state of this hub. State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The VPC network associated with this hub's spokes. All of the VPN tunnels, - // VLAN attachments, and router appliance instances referenced by this hub's - // spokes must belong to this VPC network. + // The VPC networks associated with this hub's spokes. // // This field is read-only. Network Connectivity Center automatically // populates it based on the set of spokes attached to the hub. repeated RoutingVPC routing_vpcs = 10; } -// The State enum represents the lifecycle stage of a Network Connectivity -// Center resource. -enum State { - // No state information available - STATE_UNSPECIFIED = 0; - - // The resource's create operation is in progress - CREATING = 1; - - // The resource is active - ACTIVE = 2; - - // The resource's Delete operation is in progress - DELETING = 3; -} - -// RoutingVPC contains information about the VPC network that is associated with -// a hub's spokes. +// RoutingVPC contains information about the VPC networks that are associated +// with a hub's spokes. message RoutingVPC { // The URI of the VPC network. string uri = 1 [(google.api.resource_reference) = { type: "compute.googleapis.com/Network" }]; + + // Output only. If true, indicates that this VPC network is currently associated with + // spokes that use the data transfer feature (spokes where the + // site_to_site_data_transfer field is set to true). If you create new spokes + // that use data transfer, they must be associated with this VPC network. At + // most, one VPC network will have this field set to true. + bool required_for_new_site_to_site_data_transfer_spokes = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A spoke represents a connection between your Google Cloud network resources @@ -577,8 +596,8 @@ message LinkedVpnTunnels { }]; // A value that controls whether site-to-site data transfer is enabled for - // these resources. This field is set to false by default, but you must set it - // to true. Note that data transfer is available only in supported locations. + // these resources. Data transfer is available only in [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). bool site_to_site_data_transfer = 2; } @@ -593,21 +612,22 @@ message LinkedInterconnectAttachments { }]; // A value that controls whether site-to-site data transfer is enabled for - // these resources. This field is set to false by default, but you must set it - // to true. Note that data transfer is available only in supported locations. + // these resources. Data transfer is available only in [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). bool site_to_site_data_transfer = 2; } -// A collection of router appliance instances. If you have multiple router -// appliance instances connected to the same site, they should all be attached -// to the same spoke. +// A collection of router appliance instances. If you configure multiple router +// appliance instances to receive data from the same set of sites outside of +// Google Cloud, we recommend that you associate those instances with the same +// spoke. message LinkedRouterApplianceInstances { // The list of router appliance instances. repeated RouterApplianceInstance instances = 1; // A value that controls whether site-to-site data transfer is enabled for - // these resources. This field is set to false by default, but you must set it - // to true. Note that data transfer is available only in supported locations. + // these resources. Data transfer is available only in [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). bool site_to_site_data_transfer = 2; } @@ -624,3 +644,9 @@ message RouterApplianceInstance { // The IP address on the VM to use for peering. string ip_address = 3; } + +// Metadata about locations +message LocationMetadata { + // List of supported features + repeated LocationFeature location_features = 1; +} diff --git a/google/cloud/networkconnectivity/v1/networkconnectivity_v1.yaml b/google/cloud/networkconnectivity/v1/networkconnectivity_v1.yaml index b72751a41..32f961b15 100644 --- a/google/cloud/networkconnectivity/v1/networkconnectivity_v1.yaml +++ b/google/cloud/networkconnectivity/v1/networkconnectivity_v1.yaml @@ -7,6 +7,7 @@ apis: - name: google.cloud.networkconnectivity.v1.HubService types: +- name: google.cloud.networkconnectivity.v1.LocationMetadata - name: google.cloud.networkconnectivity.v1.OperationMetadata documentation: diff --git a/google/cloud/networkconnectivity/v1alpha1/BUILD.bazel b/google/cloud/networkconnectivity/v1alpha1/BUILD.bazel index 33fbf7f78..313c9a738 100644 --- a/google/cloud/networkconnectivity/v1alpha1/BUILD.bazel +++ b/google/cloud/networkconnectivity/v1alpha1/BUILD.bazel @@ -89,6 +89,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-networkconnectivity-v1alpha1-java", + include_samples = True, deps = [ ":networkconnectivity_java_gapic", ":networkconnectivity_java_grpc", @@ -159,6 +160,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -166,6 +168,17 @@ py_gapic_library( srcs = [":networkconnectivity_proto"], grpc_service_config = "networkconnectivity_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-network-connectivity"], + transport = "grpc", +) + +py_test( + name = "networkconnectivity_py_gapic_test", + srcs = [ + "networkconnectivity_py_gapic_pytest.py", + "networkconnectivity_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":networkconnectivity_py_gapic"], ) # Open Source Packages @@ -325,6 +338,7 @@ csharp_gapic_library( srcs = [":networkconnectivity_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "networkconnectivity_grpc_service_config.json", + service_yaml = "networkconnectivity_v1alpha1.yaml", deps = [ ":networkconnectivity_csharp_grpc", ":networkconnectivity_csharp_proto", diff --git a/google/cloud/networkconnectivity/v1alpha1/common.proto b/google/cloud/networkconnectivity/v1alpha1/common.proto index 88c3fe585..bdd9df63e 100644 --- a/google/cloud/networkconnectivity/v1alpha1/common.proto +++ b/google/cloud/networkconnectivity/v1alpha1/common.proto @@ -18,7 +18,6 @@ package google.cloud.networkconnectivity.v1alpha1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkConnectivity.V1Alpha1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1alpha1;networkconnectivity"; diff --git a/google/cloud/networkmanagement/v1/BUILD.bazel b/google/cloud/networkmanagement/v1/BUILD.bazel index 03eb24749..4a84ff7da 100644 --- a/google/cloud/networkmanagement/v1/BUILD.bazel +++ b/google/cloud/networkmanagement/v1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":networkmanagement_java_grpc", ], + transport = "grpc+rest", deps = [ ":networkmanagement_java_proto", ], @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "networkmanagement_java_gapic_test_suite", test_classes = [ + "com.google.cloud.networkmanagement.v1.ReachabilityServiceClientHttpJsonTest", "com.google.cloud.networkmanagement.v1.ReachabilityServiceClientTest", ], runtime_deps = [":networkmanagement_java_gapic_test"], @@ -91,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-networkmanagement-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":networkmanagement_java_gapic", ":networkmanagement_java_grpc", @@ -129,6 +133,7 @@ go_gapic_library( importpath = "cloud.google.com/go/networkmanagement/apiv1;networkmanagement", metadata = True, service_yaml = "networkmanagement_v1.yaml", + transport = "grpc+rest", deps = [ ":networkmanagement_go_proto", "//google/longrunning:longrunning_go_proto", @@ -172,9 +177,21 @@ py_gapic_library( "warehouse-package-name=google-cloud-network-management", "python-gapic-namespace=google.cloud", "python-gapic-name=network_management", - ], + ], + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "networkmanagement_py_gapic_test", +# srcs = [ +# "networkmanagement_py_gapic_pytest.py", +# "networkmanagement_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":networkmanagement_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "networkmanagement-v1-py", @@ -331,6 +348,7 @@ csharp_gapic_library( srcs = [":networkmanagement_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "networkmanagement_grpc_service_config.json", + service_yaml = "networkmanagement_v1.yaml", deps = [ ":networkmanagement_csharp_grpc", ":networkmanagement_csharp_proto", diff --git a/google/cloud/networkmanagement/v1/connectivity_test.proto b/google/cloud/networkmanagement/v1/connectivity_test.proto index fed96ce14..36d88b30b 100644 --- a/google/cloud/networkmanagement/v1/connectivity_test.proto +++ b/google/cloud/networkmanagement/v1/connectivity_test.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/networkmanagement/v1/trace.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkManagement.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkmanagement/v1;networkmanagement"; diff --git a/google/cloud/networkmanagement/v1/reachability.proto b/google/cloud/networkmanagement/v1/reachability.proto index d7499d3fd..b8cdaec9d 100644 --- a/google/cloud/networkmanagement/v1/reachability.proto +++ b/google/cloud/networkmanagement/v1/reachability.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ 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/field_mask.proto"; diff --git a/google/cloud/networkmanagement/v1/trace.proto b/google/cloud/networkmanagement/v1/trace.proto index fdc2c93cc..63ec014e0 100644 --- a/google/cloud/networkmanagement/v1/trace.proto +++ b/google/cloud/networkmanagement/v1/trace.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.networkmanagement.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.NetworkManagement.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkmanagement/v1;networkmanagement"; option java_multiple_files = true; @@ -372,6 +370,11 @@ message RouteInfo { // Next hop is the forwarding rule of an Internal Load Balancer. NEXT_HOP_ILB = 10; + + // Next hop is a + // [router appliance + // instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview). + NEXT_HOP_ROUTER_APPLIANCE = 11; } // Type of route. @@ -736,6 +739,9 @@ message AbortInfo { // 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; } // Causes that the analysis is aborted. @@ -743,6 +749,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. + repeated string projects_missing_permission = 3; } // Details of the final state "drop" and associated resource. @@ -785,9 +796,7 @@ message DropInfo { // 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. For more details, see [Special - // configurations for VM - // instances](https://cloud.google.com/vpc/docs/special-configurations). + // on a VM allow this connection. NO_EXTERNAL_ADDRESS = 9; // Destination internal address cannot be resolved to a known target. If diff --git a/google/cloud/networkmanagement/v1beta1/BUILD.bazel b/google/cloud/networkmanagement/v1beta1/BUILD.bazel index 0fba18a51..49ed38ece 100644 --- a/google/cloud/networkmanagement/v1beta1/BUILD.bazel +++ b/google/cloud/networkmanagement/v1beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":networkmanagement_java_grpc", ], + transport = "grpc+rest", deps = [ ":networkmanagement_java_proto", ], @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "networkmanagement_java_gapic_test_suite", test_classes = [ + "com.google.cloud.networkmanagement.v1beta1.ReachabilityServiceClientHttpJsonTest", "com.google.cloud.networkmanagement.v1beta1.ReachabilityServiceClientTest", ], runtime_deps = [":networkmanagement_java_gapic_test"], @@ -91,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-networkmanagement-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":networkmanagement_java_gapic", ":networkmanagement_java_grpc", @@ -129,6 +133,7 @@ go_gapic_library( importpath = "cloud.google.com/go/networkmanagement/apiv1beta1;networkmanagement", metadata = True, service_yaml = "networkmanagement_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":networkmanagement_go_proto", "//google/longrunning:longrunning_go_proto", @@ -168,8 +173,20 @@ py_gapic_library( name = "networkmanagement_py_gapic", srcs = [":networkmanagement_proto"], grpc_service_config = "networkmanagement_grpc_service_config.json", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "networkmanagement_py_gapic_test", +# srcs = [ +# "networkmanagement_py_gapic_pytest.py", +# "networkmanagement_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":networkmanagement_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "networkmanagement-v1beta1-py", @@ -326,6 +343,7 @@ csharp_gapic_library( srcs = [":networkmanagement_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "networkmanagement_grpc_service_config.json", + service_yaml = "networkmanagement_v1beta1.yaml", deps = [ ":networkmanagement_csharp_grpc", ":networkmanagement_csharp_proto", diff --git a/google/cloud/networkmanagement/v1beta1/connectivity_test.proto b/google/cloud/networkmanagement/v1beta1/connectivity_test.proto index a81027d4e..03d529b44 100644 --- a/google/cloud/networkmanagement/v1beta1/connectivity_test.proto +++ b/google/cloud/networkmanagement/v1beta1/connectivity_test.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/networkmanagement/v1beta1/trace.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkManagement.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkmanagement/v1beta1;networkmanagement"; @@ -104,21 +103,25 @@ message ConnectivityTest { map labels = 8; // Output only. The time the test was created. - google.protobuf.Timestamp create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time the test's configuration was updated. - google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The reachability details of this test from the latest run. // The details are updated when creating a new test, updating an // existing test, or triggering a one-time rerun of an existing test. - ReachabilityDetails reachability_details = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The probing details of this test from the latest run, present for - // applicable tests only. The details are updated when creating a new test, - // updating an existing test, or triggering a one-time rerun of an existing - // test. - ProbingDetails probing_details = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + ReachabilityDetails reachability_details = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The probing details of this test from the latest run, present + // for applicable tests only. The details are updated when creating a new + // test, updating an existing test, or triggering a one-time rerun of an + // existing test. + ProbingDetails probing_details = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Source or destination of the Connectivity Test. @@ -140,6 +143,12 @@ message Endpoint { NON_GCP_NETWORK = 2; } + // Wrapper for cloud function attributes. + message CloudFunctionEndpoint { + // A [Cloud function](https://cloud.google.com/functions) name. + string uri = 1; + } + // 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 @@ -160,6 +169,9 @@ message Endpoint { // A [Cloud SQL](https://cloud.google.com/sql) instance URI. string cloud_sql_instance = 8; + // A [Cloud function](https://cloud.google.com/functions). + CloudFunctionEndpoint cloud_function = 10; + // A Compute Engine network URI. string network = 4; @@ -285,6 +297,13 @@ message ProbingDetails { NO_SOURCE_LOCATION = 2; } + // Representation of a network edge location as per + // https://cloud.google.com/vpc/docs/edge-locations. + message EdgeLocation { + // Name of the metropolitan area. + string metropolitan_area = 1; + } + // The overall result of active probing. ProbingResult result = 1; @@ -310,4 +329,12 @@ message ProbingDetails { // Latency as measured by active probing in one direction: // from the source to the destination endpoint. LatencyDistribution probing_latency = 8; + + // The EdgeLocation from which a packet destined for/originating from the + // internet will egress/ingress the Google network. + // This will only be populated for a connectivity test which has an internet + // destination/source address. + // The absence of this field *must not* be used as an indication that the + // destination/source is part of the Google network. + EdgeLocation destination_egress_location = 9; } diff --git a/google/cloud/networkmanagement/v1beta1/reachability.proto b/google/cloud/networkmanagement/v1beta1/reachability.proto index 83f19aa09..82cf7a3f4 100644 --- a/google/cloud/networkmanagement/v1beta1/reachability.proto +++ b/google/cloud/networkmanagement/v1beta1/reachability.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,13 +17,12 @@ syntax = "proto3"; 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/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.NetworkManagement.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkmanagement/v1beta1;networkmanagement"; diff --git a/google/cloud/networkmanagement/v1beta1/trace.proto b/google/cloud/networkmanagement/v1beta1/trace.proto index 535a910d7..9035fcfe4 100644 --- a/google/cloud/networkmanagement/v1beta1/trace.proto +++ b/google/cloud/networkmanagement/v1beta1/trace.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.networkmanagement.v1beta1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.NetworkManagement.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkmanagement/v1beta1;networkmanagement"; option java_multiple_files = true; @@ -84,6 +82,10 @@ message Step { // A CloudSQLInstanceInfo is populated with starting instance information. START_FROM_CLOUD_SQL_INSTANCE = 22; + // Initial state: packet originating from a Cloud function. + // A CloudFunctionInfo is populated with starting function information. + START_FROM_CLOUD_FUNCTION = 23; + // Config checking state: verify ingress firewall rule. APPLY_INGRESS_FIREWALL_RULE = 4; @@ -115,6 +117,9 @@ message Step { // Forwarding state: arriving at a Cloud VPN tunnel. ARRIVE_AT_VPN_TUNNEL = 13; + // Forwarding state: arriving at a VPC connector. + ARRIVE_AT_VPC_CONNECTOR = 24; + // Transition state: packet header translated. NAT = 14; @@ -182,6 +187,9 @@ message Step { // Display information of a Compute Engine VPN tunnel. VpnTunnelInfo vpn_tunnel = 11; + // Display information of a VPC connector. + VpcConnectorInfo vpc_connector = 21; + // Display information of the final state "deliver" and reason. DeliverInfo deliver = 12; @@ -205,6 +213,9 @@ message Step { // Display information of a Cloud SQL instance. CloudSQLInstanceInfo cloud_sql_instance = 19; + + // Display information of a Cloud function. + CloudFunctionInfo cloud_function = 20; } } @@ -269,6 +280,12 @@ message FirewallInfo { // [Implied // rules](https://cloud.google.com/vpc/docs/firewalls#default_firewall_rules). IMPLIED_VPC_FIREWALL_RULE = 3; + + // Implicit firewall rules that are managed by serverless VPC access to + // allow ingress access. They are not visible in the Google Cloud console. + // For details, see [VPC connector's implicit + // rules](https://cloud.google.com/functions/docs/networking/connecting-vpc#restrict-access). + SERVERLESS_VPC_ACCESS_MANAGED_FIREWALL_RULE = 4; } // The display name of the VPC firewall rule. This field is not applicable @@ -372,6 +389,11 @@ message RouteInfo { // Next hop is the forwarding rule of an Internal Load Balancer. NEXT_HOP_ILB = 10; + + // Next hop is a + // [router appliance + // instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview). + NEXT_HOP_ROUTER_APPLIANCE = 11; } // Type of route. @@ -608,6 +630,9 @@ message EndpointInfo { // URI of the network where this packet is sent to. string destination_network_uri = 7; + + // URI of the source telemetry agent this packet originates from. + string source_agent_uri = 8; } // Details of the final state "deliver" and associated resource. @@ -631,6 +656,18 @@ message DeliverInfo { // Target is a Cloud SQL instance. CLOUD_SQL_INSTANCE = 5; + + // Target is a published service using [Private Service + // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services). + PSC_PUBLISHED_SERVICE = 6; + + // Target is all Google APIs using [Private Service + // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis). + PSC_GOOGLE_API = 7; + + // Target is VPC-SC using [Private Service + // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis). + PSC_VPC_SC = 8; } // Target type where the packet is delivered to. @@ -736,6 +773,9 @@ message AbortInfo { // 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; } // Causes that the analysis is aborted. @@ -743,6 +783,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. + repeated string projects_missing_permission = 3; } // Details of the final state "drop" and associated resource. @@ -757,7 +802,7 @@ message DropInfo { // as test input. UNKNOWN_EXTERNAL_ADDRESS = 1; - // a Compute Engine instance can only send or receive a packet with a + // A Compute Engine instance can only send or receive a packet with a // foreign IP address if ip_forward is enabled. FOREIGN_IP_DISALLOWED = 2; @@ -785,9 +830,7 @@ message DropInfo { // 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. For more details, see [Special - // configurations for VM - // instances](https://cloud.google.com/vpc/docs/special-configurations). + // on a VM allow this connection. NO_EXTERNAL_ADDRESS = 9; // Destination internal address cannot be resolved to a known target. If @@ -843,6 +886,24 @@ message DropInfo { // Packet was dropped because the Cloud SQL instance has neither a private // nor a public IP address. CLOUD_SQL_INSTANCE_NO_IP_ADDRESS = 21; + + // Packet could be dropped because the Cloud function is not in an active + // status. + CLOUD_FUNCTION_NOT_ACTIVE = 22; + + // Packet could be dropped because no VPC connector is set. + VPC_CONNECTOR_NOT_SET = 23; + + // Packet could be dropped because the VPC connector is not in a running + // 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; + + // Privte Service Connect (PSC) connection is not in accepted state. + PSC_CONNECTION_NOT_ACCEPTED = 26; } // Cause that the packet is dropped. @@ -889,3 +950,30 @@ message CloudSQLInstanceInfo { // Region in which the Cloud SQL instance is running. string region = 7; } + +// For display only. Metadata associated with a Cloud function. +message CloudFunctionInfo { + // Name of a Cloud function. + string display_name = 1; + + // URI of a Cloud function. + string uri = 2; + + // Location in which the Cloud function is deployed. + string location = 3; + + // Latest successfully deployed version id of the Cloud function. + int64 version_id = 4; +} + +// For display only. Metadata associated with a VPC connector. +message VpcConnectorInfo { + // Name of a VPC connector. + string display_name = 1; + + // URI of a VPC connector. + string uri = 2; + + // Location in which the VPC connector is deployed. + string location = 3; +} diff --git a/google/cloud/networksecurity/v1/BUILD.bazel b/google/cloud/networksecurity/v1/BUILD.bazel new file mode 100644 index 000000000..d20f4491f --- /dev/null +++ b/google/cloud/networksecurity/v1/BUILD.bazel @@ -0,0 +1,369 @@ +# 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 = "networksecurity_proto", + srcs = [ + "authorization_policy.proto", + "client_tls_policy.proto", + "common.proto", + "network_security.proto", + "server_tls_policy.proto", + "tls.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//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "networksecurity_proto_with_info", + deps = [ + ":networksecurity_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "networksecurity_java_proto", + deps = [":networksecurity_proto"], +) + +java_grpc_library( + name = "networksecurity_java_grpc", + srcs = [":networksecurity_proto"], + deps = [":networksecurity_java_proto"], +) + +java_gapic_library( + name = "networksecurity_java_gapic", + srcs = [":networksecurity_proto_with_info"], + grpc_service_config = "networksecurity_v1_grpc_service_config.json", + test_deps = [ + ":networksecurity_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + deps = [ + ":networksecurity_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "networksecurity_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.networksecurity.v1.NetworkSecurityClientTest", + ], + runtime_deps = [":networksecurity_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-networksecurity-v1-java", + deps = [ + ":networksecurity_java_gapic", + ":networksecurity_java_grpc", + ":networksecurity_java_proto", + ":networksecurity_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "networksecurity_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1", + protos = [":networksecurity_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "networksecurity_go_gapic", + srcs = [":networksecurity_proto_with_info"], + grpc_service_config = "networksecurity_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/networksecurity/apiv1;networksecurity", + metadata = True, + service_yaml = "networksecurity_v1.yaml", + deps = [ + ":networksecurity_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", + ], +) + +go_test( + name = "networksecurity_go_gapic_test", + srcs = [":networksecurity_go_gapic_srcjar_test"], + embed = [":networksecurity_go_gapic"], + importpath = "cloud.google.com/go/networksecurity/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-networksecurity-v1-go", + deps = [ + ":networksecurity_go_gapic", + ":networksecurity_go_gapic_srcjar-metadata.srcjar", + ":networksecurity_go_gapic_srcjar-test.srcjar", + ":networksecurity_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "networksecurity_py_gapic", + srcs = [":networksecurity_proto"], + grpc_service_config = "networksecurity_v1_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-network-security", + "python-gapic-namespace=google.cloud", + "python-gapic-name=network_security", + ], + transport = "grpc+rest", +) + +py_test( + name = "networksecurity_py_gapic_test", + srcs = [ + "networksecurity_py_gapic_pytest.py", + "networksecurity_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":networksecurity_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "networksecurity-v1-py", + deps = [ + ":networksecurity_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "networksecurity_php_proto", + deps = [":networksecurity_proto"], +) + +php_grpc_library( + name = "networksecurity_php_grpc", + srcs = [":networksecurity_proto"], + deps = [":networksecurity_php_proto"], +) + +php_gapic_library( + name = "networksecurity_php_gapic", + srcs = [":networksecurity_proto_with_info"], + grpc_service_config = "networksecurity_v1_grpc_service_config.json", + service_yaml = "networksecurity_v1.yaml", + deps = [ + ":networksecurity_php_grpc", + ":networksecurity_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-networksecurity-v1-php", + deps = [ + ":networksecurity_php_gapic", + ":networksecurity_php_grpc", + ":networksecurity_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "networksecurity_nodejs_gapic", + package_name = "@google-cloud/networksecurity", + src = ":networksecurity_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "networksecurity_v1_grpc_service_config.json", + package = "google.cloud.networksecurity.v1", + service_yaml = "networksecurity_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "networksecurity-v1-nodejs", + deps = [ + ":networksecurity_nodejs_gapic", + ":networksecurity_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 = "networksecurity_ruby_proto", + deps = [":networksecurity_proto"], +) + +ruby_grpc_library( + name = "networksecurity_ruby_grpc", + srcs = [":networksecurity_proto"], + deps = [":networksecurity_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "networksecurity_ruby_gapic", + srcs = [":networksecurity_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-networksecurity-v1", + ], + grpc_service_config = "networksecurity_v1_grpc_service_config.json", + deps = [ + ":networksecurity_ruby_grpc", + ":networksecurity_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-networksecurity-v1-ruby", + deps = [ + ":networksecurity_ruby_gapic", + ":networksecurity_ruby_grpc", + ":networksecurity_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 = "networksecurity_csharp_proto", + deps = [":networksecurity_proto"], +) + +csharp_grpc_library( + name = "networksecurity_csharp_grpc", + srcs = [":networksecurity_proto"], + deps = [":networksecurity_csharp_proto"], +) + +csharp_gapic_library( + name = "networksecurity_csharp_gapic", + srcs = [":networksecurity_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "networksecurity_v1_grpc_service_config.json", + deps = [ + ":networksecurity_csharp_grpc", + ":networksecurity_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-networksecurity-v1-csharp", + deps = [ + ":networksecurity_csharp_gapic", + ":networksecurity_csharp_grpc", + ":networksecurity_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# Put your C++ rules here diff --git a/google/cloud/networksecurity/v1/authorization_policy.proto b/google/cloud/networksecurity/v1/authorization_policy.proto new file mode 100644 index 000000000..e66afddde --- /dev/null +++ b/google/cloud/networksecurity/v1/authorization_policy.proto @@ -0,0 +1,249 @@ +// 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.cloud.networksecurity.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.NetworkSecurity.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1;networksecurity"; +option java_multiple_files = true; +option java_outer_classname = "AuthorizationPolicyProto"; +option java_package = "com.google.cloud.networksecurity.v1"; +option php_namespace = "Google\\Cloud\\NetworkSecurity\\V1"; +option ruby_package = "Google::Cloud::NetworkSecurity::V1"; + +// AuthorizationPolicy is a resource that specifies how a server +// should authorize incoming connections. This resource in itself does +// not change the configuration unless it's attached to a target https +// proxy or endpoint config selector resource. +message AuthorizationPolicy { + option (google.api.resource) = { + type: "networksecurity.googleapis.com/AuthorizationPolicy" + pattern: "projects/{project}/locations/{location}/authorizationPolicies/{authorization_policy}" + }; + + // Specification of rules. + message Rule { + // Specification of traffic source attributes. + message Source { + // Optional. List of peer identities to match for authorization. At least one + // principal should match. Each peer can be an exact match, or a prefix + // match (example, "namespace/*") or a suffix match (example, + // "*/service-account") or a presence match "*". Authorization based on + // the principal name without certificate validation (configured by + // ServerTlsPolicy resource) is considered insecure. + repeated string principals = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of CIDR ranges to match based on source IP address. At least one + // IP block should match. Single IP (e.g., "1.2.3.4") and CIDR (e.g., + // "1.2.3.0/24") are supported. Authorization based on source IP alone + // should be avoided. The IP addresses of any load balancers or proxies + // should be considered untrusted. + repeated string ip_blocks = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Specification of traffic destination attributes. + message Destination { + // Specification of HTTP header match attributes. + message HttpHeaderMatch { + oneof type { + // Required. The value of the header must match the regular expression + // specified in regexMatch. For regular expression grammar, + // please see: en.cppreference.com/w/cpp/regex/ecmascript + // For matching against a port specified in the HTTP + // request, use a headerMatch with headerName set to Host + // and a regular expression that satisfies the RFC2616 Host + // header's port specifier. + string regex_match = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. 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". + string header_name = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. List of host names to match. Matched against the ":authority" header in + // http requests. At least one host should match. Each host can be an + // exact match, or a prefix match (example "mydomain.*") or a suffix + // match (example "*.myorg.com") or a presence (any) match "*". + repeated string hosts = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. List of destination ports to match. At least one port should match. + repeated uint32 ports = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A list of HTTP methods to match. At least one method should + // match. Should not be set for gRPC services. + repeated string methods = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Match against key:value pair in http header. Provides a flexible match + // based on HTTP headers, for potentially advanced use cases. At least one + // header should match. Avoid using header matches to make authorization + // decisions unless there is a strong guarantee that requests arrive + // through a trusted client or proxy. + HttpHeaderMatch http_header_match = 5 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. List of attributes for the traffic source. All of the sources must match. + // A source is a match if both principals and ip_blocks match. If not set, + // the action specified in the 'action' field will be applied without any + // rule checks for the source. + repeated Source sources = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of attributes for the traffic destination. All of the destinations + // must match. A destination is a match if a request matches all the + // specified hosts, ports, methods and headers. If not set, the + // action specified in the 'action' field will be applied without any rule + // checks for the destination. + repeated Destination destinations = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Possible values that define what action to take. + enum Action { + // Default value. + ACTION_UNSPECIFIED = 0; + + // Grant access. + ALLOW = 1; + + // Deny access. + // Deny rules should be avoided unless they are used to provide a default + // "deny all" fallback. + DENY = 2; + } + + // Required. Name of the AuthorizationPolicy resource. It matches pattern + // `projects/{project}/locations/{location}/authorizationPolicies/`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Free-text description of the resource. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Set of label tags associated with the AuthorizationPolicy resource. + map labels = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The action to take when a rule match is found. Possible values + // are "ALLOW" or "DENY". + Action action = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. List of rules to match. Note that at least one of the rules must match in + // order for the action specified in the 'action' field to be taken. A rule is + // a match if there is a matching source and destination. If left blank, the + // action specified in the `action` field will be applied on every request. + repeated Rule rules = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request used with the ListAuthorizationPolicies method. +message ListAuthorizationPoliciesRequest { + // Required. The project and location from which the AuthorizationPolicies + // should be listed, specified in the format + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Maximum number of AuthorizationPolicies to return per call. + int32 page_size = 2; + + // The value returned by the last + // `ListAuthorizationPoliciesResponse` Indicates that this is a + // continuation of a prior `ListAuthorizationPolicies` call, and + // that the system should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListAuthorizationPolicies method. +message ListAuthorizationPoliciesResponse { + // List of AuthorizationPolicies resources. + repeated AuthorizationPolicy authorization_policies = 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; +} + +// Request used by the GetAuthorizationPolicy method. +message GetAuthorizationPolicyRequest { + // Required. A name of the AuthorizationPolicy to get. Must be in the format + // `projects/{project}/locations/{location}/authorizationPolicies/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networksecurity.googleapis.com/AuthorizationPolicy" + } + ]; +} + +// Request used by the CreateAuthorizationPolicy method. +message CreateAuthorizationPolicyRequest { + // Required. The parent resource of the AuthorizationPolicy. Must be in the + // format `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networksecurity.googleapis.com/AuthorizationPolicy" + } + ]; + + // Required. Short name of the AuthorizationPolicy resource to be created. + // This value should be 1-63 characters long, containing only + // letters, numbers, hyphens, and underscores, and should not start + // with a number. E.g. "authz_policy". + string authorization_policy_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. AuthorizationPolicy resource to be created. + AuthorizationPolicy authorization_policy = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the UpdateAuthorizationPolicy method. +message UpdateAuthorizationPolicyRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // AuthorizationPolicy 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) = OPTIONAL]; + + // Required. Updated AuthorizationPolicy resource. + AuthorizationPolicy authorization_policy = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteAuthorizationPolicy method. +message DeleteAuthorizationPolicyRequest { + // Required. A name of the AuthorizationPolicy to delete. Must be in the format + // `projects/{project}/locations/{location}/authorizationPolicies/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networksecurity.googleapis.com/AuthorizationPolicy" + } + ]; +} diff --git a/google/cloud/networksecurity/v1/client_tls_policy.proto b/google/cloud/networksecurity/v1/client_tls_policy.proto new file mode 100644 index 000000000..4cba3efac --- /dev/null +++ b/google/cloud/networksecurity/v1/client_tls_policy.proto @@ -0,0 +1,160 @@ +// 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.cloud.networksecurity.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/networksecurity/v1/tls.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.NetworkSecurity.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1;networksecurity"; +option java_multiple_files = true; +option java_outer_classname = "ClientTlsPolicyProto"; +option java_package = "com.google.cloud.networksecurity.v1"; +option php_namespace = "Google\\Cloud\\NetworkSecurity\\V1"; +option ruby_package = "Google::Cloud::NetworkSecurity::V1"; + +// ClientTlsPolicy is a resource that specifies how a client should authenticate +// connections to backends of a service. This resource itself does not affect +// configuration unless it is attached to a backend service resource. +message ClientTlsPolicy { + option (google.api.resource) = { + type: "networksecurity.googleapis.com/ClientTlsPolicy" + pattern: "projects/{project}/locations/{location}/clientTlsPolicies/{client_tls_policy}" + }; + + // Required. Name of the ClientTlsPolicy resource. It matches the pattern + // `projects/*/locations/{location}/clientTlsPolicies/{client_tls_policy}` + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Free-text description of the resource. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Set of label tags associated with the resource. + map labels = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Server Name Indication string to present to the server during TLS + // handshake. E.g: "secure.example.com". + string sni = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines a mechanism to provision client identity (public and private keys) + // for peer to peer authentication. The presence of this dictates mTLS. + CertificateProvider client_certificate = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the mechanism to obtain the Certificate Authority certificate to + // validate the server certificate. If empty, client does not validate the + // server certificate. + repeated ValidationCA server_validation_ca = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request used by the ListClientTlsPolicies method. +message ListClientTlsPoliciesRequest { + // Required. The project and location from which the ClientTlsPolicies should + // be listed, specified in the format `projects/*/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Maximum number of ClientTlsPolicies to return per call. + int32 page_size = 2; + + // The value returned by the last `ListClientTlsPoliciesResponse` + // Indicates that this is a continuation of a prior + // `ListClientTlsPolicies` call, and that the system + // should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListClientTlsPolicies method. +message ListClientTlsPoliciesResponse { + // List of ClientTlsPolicy resources. + repeated ClientTlsPolicy client_tls_policies = 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; +} + +// Request used by the GetClientTlsPolicy method. +message GetClientTlsPolicyRequest { + // Required. A name of the ClientTlsPolicy to get. Must be in the format + // `projects/*/locations/{location}/clientTlsPolicies/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networksecurity.googleapis.com/ClientTlsPolicy" + } + ]; +} + +// Request used by the CreateClientTlsPolicy method. +message CreateClientTlsPolicyRequest { + // Required. The parent resource of the ClientTlsPolicy. Must be in + // the format `projects/*/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networksecurity.googleapis.com/ClientTlsPolicy" + } + ]; + + // Required. Short name of the ClientTlsPolicy resource to be created. This value should + // be 1-63 characters long, containing only letters, numbers, hyphens, and + // underscores, and should not start with a number. E.g. "client_mtls_policy". + string client_tls_policy_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. ClientTlsPolicy resource to be created. + ClientTlsPolicy client_tls_policy = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by UpdateClientTlsPolicy method. +message UpdateClientTlsPolicyRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // ClientTlsPolicy 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) = OPTIONAL]; + + // Required. Updated ClientTlsPolicy resource. + ClientTlsPolicy client_tls_policy = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteClientTlsPolicy method. +message DeleteClientTlsPolicyRequest { + // Required. A name of the ClientTlsPolicy to delete. Must be in + // the format `projects/*/locations/{location}/clientTlsPolicies/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networksecurity.googleapis.com/ClientTlsPolicy" + } + ]; +} diff --git a/google/cloud/networksecurity/v1/common.proto b/google/cloud/networksecurity/v1/common.proto new file mode 100644 index 000000000..1ec1905bf --- /dev/null +++ b/google/cloud/networksecurity/v1/common.proto @@ -0,0 +1,55 @@ +// 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.cloud.networksecurity.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.NetworkSecurity.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1;networksecurity"; +option java_multiple_files = true; +option java_outer_classname = "CommonProto"; +option java_package = "com.google.cloud.networksecurity.v1"; +option php_namespace = "Google\\Cloud\\NetworkSecurity\\V1"; +option ruby_package = "Google::Cloud::NetworkSecurity::V1"; + +// 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]; +} diff --git a/google/cloud/networksecurity/v1/network_security.proto b/google/cloud/networksecurity/v1/network_security.proto new file mode 100644 index 000000000..addce1e17 --- /dev/null +++ b/google/cloud/networksecurity/v1/network_security.proto @@ -0,0 +1,201 @@ +// 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.cloud.networksecurity.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/networksecurity/v1/authorization_policy.proto"; +import "google/cloud/networksecurity/v1/client_tls_policy.proto"; +import "google/cloud/networksecurity/v1/server_tls_policy.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.NetworkSecurity.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1;networksecurity"; +option java_multiple_files = true; +option java_package = "com.google.cloud.networksecurity.v1"; +option php_namespace = "Google\\Cloud\\NetworkSecurity\\V1"; +option ruby_package = "Google::Cloud::NetworkSecurity::V1"; + +// Network Security API provides resources to configure authentication and +// authorization policies. Refer to per API resource documentation for more +// information. +service NetworkSecurity { + option (google.api.default_host) = "networksecurity.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Lists AuthorizationPolicies in a given project and location. + rpc ListAuthorizationPolicies(ListAuthorizationPoliciesRequest) returns (ListAuthorizationPoliciesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/authorizationPolicies" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single AuthorizationPolicy. + rpc GetAuthorizationPolicy(GetAuthorizationPolicyRequest) returns (AuthorizationPolicy) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/authorizationPolicies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new AuthorizationPolicy in a given project and location. + rpc CreateAuthorizationPolicy(CreateAuthorizationPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/authorizationPolicies" + body: "authorization_policy" + }; + option (google.api.method_signature) = "parent,authorization_policy,authorization_policy_id"; + option (google.longrunning.operation_info) = { + response_type: "AuthorizationPolicy" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single AuthorizationPolicy. + rpc UpdateAuthorizationPolicy(UpdateAuthorizationPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{authorization_policy.name=projects/*/locations/*/authorizationPolicies/*}" + body: "authorization_policy" + }; + option (google.api.method_signature) = "authorization_policy,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AuthorizationPolicy" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } + + // Deletes a single AuthorizationPolicy. + rpc DeleteAuthorizationPolicy(DeleteAuthorizationPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/authorizationPolicies/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } + + // Lists ServerTlsPolicies in a given project and location. + rpc ListServerTlsPolicies(ListServerTlsPoliciesRequest) returns (ListServerTlsPoliciesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/serverTlsPolicies" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single ServerTlsPolicy. + rpc GetServerTlsPolicy(GetServerTlsPolicyRequest) returns (ServerTlsPolicy) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/serverTlsPolicies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new ServerTlsPolicy in a given project and location. + rpc CreateServerTlsPolicy(CreateServerTlsPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/serverTlsPolicies" + body: "server_tls_policy" + }; + option (google.api.method_signature) = "parent,server_tls_policy,server_tls_policy_id"; + option (google.longrunning.operation_info) = { + response_type: "ServerTlsPolicy" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single ServerTlsPolicy. + rpc UpdateServerTlsPolicy(UpdateServerTlsPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{server_tls_policy.name=projects/*/locations/*/serverTlsPolicies/*}" + body: "server_tls_policy" + }; + option (google.api.method_signature) = "server_tls_policy,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "ServerTlsPolicy" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } + + // Deletes a single ServerTlsPolicy. + rpc DeleteServerTlsPolicy(DeleteServerTlsPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/serverTlsPolicies/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } + + // Lists ClientTlsPolicies in a given project and location. + rpc ListClientTlsPolicies(ListClientTlsPoliciesRequest) returns (ListClientTlsPoliciesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/clientTlsPolicies" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single ClientTlsPolicy. + rpc GetClientTlsPolicy(GetClientTlsPolicyRequest) returns (ClientTlsPolicy) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/clientTlsPolicies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new ClientTlsPolicy in a given project and location. + rpc CreateClientTlsPolicy(CreateClientTlsPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/clientTlsPolicies" + body: "client_tls_policy" + }; + option (google.api.method_signature) = "parent,client_tls_policy,client_tls_policy_id"; + option (google.longrunning.operation_info) = { + response_type: "ClientTlsPolicy" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single ClientTlsPolicy. + rpc UpdateClientTlsPolicy(UpdateClientTlsPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{client_tls_policy.name=projects/*/locations/*/clientTlsPolicies/*}" + body: "client_tls_policy" + }; + option (google.api.method_signature) = "client_tls_policy,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "ClientTlsPolicy" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } + + // Deletes a single ClientTlsPolicy. + rpc DeleteClientTlsPolicy(DeleteClientTlsPolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/clientTlsPolicies/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" + }; + } +} diff --git a/google/cloud/networksecurity/v1/networksecurity_v1.yaml b/google/cloud/networksecurity/v1/networksecurity_v1.yaml new file mode 100644 index 000000000..221871905 --- /dev/null +++ b/google/cloud/networksecurity/v1/networksecurity_v1.yaml @@ -0,0 +1,117 @@ +type: google.api.Service +config_version: 3 +name: networksecurity.googleapis.com +title: Network Security API + +apis: +- name: google.cloud.location.Locations +- name: google.cloud.networksecurity.v1.NetworkSecurity +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.networksecurity.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. + +backend: + rules: + - selector: google.cloud.location.Locations.GetLocation + deadline: 60.0 + - selector: google.cloud.location.Locations.ListLocations + deadline: 60.0 + - selector: 'google.cloud.networksecurity.v1.NetworkSecurity.*' + 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 + 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/*/authorizationPolicies/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/serverTlsPolicies/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/clientTlsPolicies/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/authorizationPolicies/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/serverTlsPolicies/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientTlsPolicies/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/authorizationPolicies/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/serverTlsPolicies/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/clientTlsPolicies/*}: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.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.networksecurity.v1.NetworkSecurity.*' + 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 diff --git a/google/cloud/networksecurity/v1/networksecurity_v1_grpc_service_config.json b/google/cloud/networksecurity/v1/networksecurity_v1_grpc_service_config.json new file mode 100644 index 000000000..a381a55be --- /dev/null +++ b/google/cloud/networksecurity/v1/networksecurity_v1_grpc_service_config.json @@ -0,0 +1,12 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.networksecurity.v1.NetworkSecurity" + } + ], + "timeout": "60s" + } + ] +} diff --git a/google/cloud/networksecurity/v1/server_tls_policy.proto b/google/cloud/networksecurity/v1/server_tls_policy.proto new file mode 100644 index 000000000..fb549068a --- /dev/null +++ b/google/cloud/networksecurity/v1/server_tls_policy.proto @@ -0,0 +1,181 @@ +// 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.cloud.networksecurity.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/networksecurity/v1/tls.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.NetworkSecurity.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1;networksecurity"; +option java_multiple_files = true; +option java_outer_classname = "ServerTlsPolicyProto"; +option java_package = "com.google.cloud.networksecurity.v1"; +option php_namespace = "Google\\Cloud\\NetworkSecurity\\V1"; +option ruby_package = "Google::Cloud::NetworkSecurity::V1"; + +// ServerTlsPolicy is a resource that specifies how a server should authenticate +// incoming requests. This resource itself does not affect configuration unless +// it is attached to a target https proxy or endpoint config selector resource. +message ServerTlsPolicy { + option (google.api.resource) = { + type: "networksecurity.googleapis.com/ServerTlsPolicy" + pattern: "projects/{project}/locations/{location}/serverTlsPolicies/{server_tls_policy}" + }; + + // Specification of the MTLSPolicy. + message MTLSPolicy { + // + // Defines the mechanism to obtain the Certificate Authority certificate to + // validate the client certificate. + repeated ValidationCA client_validation_ca = 1; + } + + // Required. Name of the ServerTlsPolicy resource. It matches the pattern + // `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}` + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Free-text description of the resource. + string description = 2; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of label tags associated with the resource. + map labels = 5; + + // + // Determines if server allows plaintext connections. If set to true, server + // allows plain text connections. By default, it is set to false. This setting + // is not exclusive of other encryption modes. For example, if `allow_open` + // and `mtls_policy` are set, server allows both plain text and mTLS + // connections. See documentation of other encryption modes to confirm + // compatibility. + // + // Consider using it if you wish to upgrade in place your deployment to TLS + // while having mixed TLS and non-TLS traffic reaching port :80. + bool allow_open = 6; + + // + // Defines a mechanism to provision server identity (public and private keys). + // Cannot be combined with `allow_open` as a permissive mode that allows both + // plain text and TLS is not supported. + CertificateProvider server_certificate = 7; + + // + // Defines a mechanism to provision peer validation certificates for peer to + // peer authentication (Mutual TLS - mTLS). If not specified, client + // certificate will not be requested. The connection is treated as TLS and not + // mTLS. If `allow_open` and `mtls_policy` are set, server allows both plain + // text and mTLS connections. + MTLSPolicy mtls_policy = 8; +} + +// Request used by the ListServerTlsPolicies method. +message ListServerTlsPoliciesRequest { + // Required. The project and location from which the ServerTlsPolicies should + // be listed, specified in the format `projects/*/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Maximum number of ServerTlsPolicies to return per call. + int32 page_size = 2; + + // The value returned by the last `ListServerTlsPoliciesResponse` + // Indicates that this is a continuation of a prior + // `ListServerTlsPolicies` call, and that the system + // should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListServerTlsPolicies method. +message ListServerTlsPoliciesResponse { + // List of ServerTlsPolicy resources. + repeated ServerTlsPolicy server_tls_policies = 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; +} + +// Request used by the GetServerTlsPolicy method. +message GetServerTlsPolicyRequest { + // Required. A name of the ServerTlsPolicy to get. Must be in the format + // `projects/*/locations/{location}/serverTlsPolicies/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networksecurity.googleapis.com/ServerTlsPolicy" + } + ]; +} + +// Request used by the CreateServerTlsPolicy method. +message CreateServerTlsPolicyRequest { + // Required. The parent resource of the ServerTlsPolicy. Must be in + // the format `projects/*/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networksecurity.googleapis.com/ServerTlsPolicy" + } + ]; + + // Required. Short name of the ServerTlsPolicy resource to be created. This value should + // be 1-63 characters long, containing only letters, numbers, hyphens, and + // underscores, and should not start with a number. E.g. "server_mtls_policy". + string server_tls_policy_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. ServerTlsPolicy resource to be created. + ServerTlsPolicy server_tls_policy = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by UpdateServerTlsPolicy method. +message UpdateServerTlsPolicyRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // ServerTlsPolicy 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) = OPTIONAL]; + + // Required. Updated ServerTlsPolicy resource. + ServerTlsPolicy server_tls_policy = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteServerTlsPolicy method. +message DeleteServerTlsPolicyRequest { + // Required. A name of the ServerTlsPolicy to delete. Must be in + // the format `projects/*/locations/{location}/serverTlsPolicies/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networksecurity.googleapis.com/ServerTlsPolicy" + } + ]; +} diff --git a/google/cloud/networksecurity/v1/tls.proto b/google/cloud/networksecurity/v1/tls.proto new file mode 100644 index 000000000..2b23d8ef1 --- /dev/null +++ b/google/cloud/networksecurity/v1/tls.proto @@ -0,0 +1,78 @@ +// 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.cloud.networksecurity.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.NetworkSecurity.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1;networksecurity"; +option java_multiple_files = true; +option java_outer_classname = "TlsProto"; +option java_package = "com.google.cloud.networksecurity.v1"; +option php_namespace = "Google\\Cloud\\NetworkSecurity\\V1"; +option ruby_package = "Google::Cloud::NetworkSecurity::V1"; + +// Specification of the GRPC Endpoint. +message GrpcEndpoint { + // Required. The target URI of the gRPC endpoint. Only UDS path is supported, and + // should start with "unix:". + string target_uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Specification of ValidationCA. Defines the mechanism to obtain the +// Certificate Authority certificate to validate the peer certificate. +message ValidationCA { + // The type of certificate provider which provides the CA certificate. + oneof type { + // gRPC specific configuration to access the gRPC server to + // obtain the CA certificate. + GrpcEndpoint grpc_endpoint = 2; + + // The certificate provider instance specification that will be passed to + // the data plane, which will be used to load necessary credential + // information. + CertificateProviderInstance certificate_provider_instance = 3; + } +} + +// Specification of a TLS certificate provider instance. Workloads may have one +// or more CertificateProvider instances (plugins) and one of them is enabled +// and configured by specifying this message. Workloads use the values from this +// message to locate and load the CertificateProvider instance configuration. +message CertificateProviderInstance { + // Required. Plugin instance name, used to locate and load CertificateProvider instance + // configuration. Set to "google_cloud_private_spiffe" to use Certificate + // Authority Service certificate provider instance. + string plugin_instance = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Specification of certificate provider. Defines the mechanism to obtain the +// certificate and private key for peer to peer authentication. +message CertificateProvider { + // The type of certificate provider which provides the certificates and + // private keys. + oneof type { + // gRPC specific configuration to access the gRPC server to + // obtain the cert and private key. + GrpcEndpoint grpc_endpoint = 2; + + // The certificate provider instance specification that will be passed to + // the data plane, which will be used to load necessary credential + // information. + CertificateProviderInstance certificate_provider_instance = 3; + } +} diff --git a/google/cloud/networksecurity/v1beta1/BUILD.bazel b/google/cloud/networksecurity/v1beta1/BUILD.bazel index 04b0e2a5d..1de19937e 100644 --- a/google/cloud/networksecurity/v1beta1/BUILD.bazel +++ b/google/cloud/networksecurity/v1beta1/BUILD.bazel @@ -44,6 +44,8 @@ proto_library_with_info( deps = [ ":networksecurity_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ], ) @@ -73,18 +75,27 @@ java_grpc_library( java_gapic_library( name = "networksecurity_java_gapic", srcs = [":networksecurity_proto_with_info"], + gapic_yaml = None, grpc_service_config = "networksecurity_v1beta1_grpc_service_config.json", + service_yaml = "networksecurity_v1beta1.yaml", test_deps = [ ":networksecurity_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":networksecurity_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ], ) java_gapic_test( name = "networksecurity_java_gapic_test_suite", test_classes = [ + "com.google.cloud.networksecurity.v1beta1.NetworkSecurityClientHttpJsonTest", "com.google.cloud.networksecurity.v1beta1.NetworkSecurityClientTest", ], runtime_deps = [":networksecurity_java_gapic_test"], @@ -93,6 +104,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-networksecurity-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":networksecurity_java_gapic", ":networksecurity_java_grpc", @@ -130,8 +143,11 @@ go_gapic_library( importpath = "cloud.google.com/go/networksecurity/apiv1beta1;networksecurity", metadata = True, service_yaml = "networksecurity_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":networksecurity_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", @@ -163,6 +179,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -172,8 +189,23 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-network-security", "python-gapic-namespace=google.cloud", - "python-gapic-name=network-security", + "python-gapic-name=network_security", + ], + service_yaml = "networksecurity_v1beta1.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "networksecurity_py_gapic_test", + srcs = [ + "networksecurity_py_gapic_pytest.py", + "networksecurity_py_gapic_test.py", ], + legacy_create_init = False, + deps = [":networksecurity_py_gapic"], ) # Open Source Packages @@ -289,6 +321,7 @@ ruby_cloud_gapic_library( grpc_service_config = "networksecurity_v1beta1_grpc_service_config.json", ruby_cloud_description = "The client library for the Google Network Security V1beta1 API.", ruby_cloud_title = "Network Security V1beta1", + service_yaml = "networksecurity_v1beta1.yaml", deps = [ ":networksecurity_ruby_grpc", ":networksecurity_ruby_proto", @@ -332,6 +365,7 @@ csharp_gapic_library( srcs = [":networksecurity_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "networksecurity_v1beta1_grpc_service_config.json", + service_yaml = "networksecurity_v1beta1.yaml", deps = [ ":networksecurity_csharp_grpc", ":networksecurity_csharp_proto", @@ -351,4 +385,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "networksecurity_cc_proto", + deps = [":networksecurity_proto"], +) + +cc_grpc_library( + name = "networksecurity_cc_grpc", + srcs = [":networksecurity_proto"], + grpc_only = True, + deps = [":networksecurity_cc_proto"], +) diff --git a/google/cloud/networksecurity/v1beta1/authorization_policy.proto b/google/cloud/networksecurity/v1beta1/authorization_policy.proto index f14dedf63..afae9ba5d 100644 --- a/google/cloud/networksecurity/v1beta1/authorization_policy.proto +++ b/google/cloud/networksecurity/v1beta1/authorization_policy.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkSecurity.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1beta1;networksecurity"; @@ -44,25 +43,25 @@ message AuthorizationPolicy { message Rule { // Specification of traffic source attributes. message Source { - // Optional. List of peer identities to match for authorization. At least one - // principal should match. Each peer can be an exact match, or a prefix - // match (example, "namespace/*") or a suffix match (example, // - // */service-account") or a presence match "*". Authorization based on the - // principal name without certificate validation (configured by + // Optional. List of peer identities to match for authorization. At least + // one principal should match. Each peer can be an exact match, or a + // prefix match (example, "namespace/*") or a suffix match (example, + // "*/service-account") or a presence match "*". Authorization based on + // the principal name without certificate validation (configured by // ServerTlsPolicy resource) is considered insecure. repeated string principals = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. List of CIDR ranges to match based on source IP address. At least one - // IP block should match. Single IP (e.g., "1.2.3.4") and CIDR (e.g., - // "1.2.3.0/24") are supported. Authorization based on source IP alone - // should be avoided. The IP addresses of any load balancers or proxies - // should be considered untrusted. + // Optional. List of CIDR ranges to match based on source IP address. At + // least one IP block should match. Single IP (e.g., "1.2.3.4") and CIDR + // (e.g., "1.2.3.0/24") are supported. Authorization based on source IP + // alone should be avoided. The IP addresses of any load balancers or + // proxies should be considered untrusted. repeated string ip_blocks = 2 [(google.api.field_behavior) = OPTIONAL]; } // Specification of traffic destination attributes. message Destination { - // Specification of HTTP header match atrributes. + // Specification of HTTP header match attributes. message HttpHeaderMatch { oneof type { // Required. The value of the header must match the regular expression @@ -82,39 +81,42 @@ message AuthorizationPolicy { string header_name = 1 [(google.api.field_behavior) = REQUIRED]; } - // Required. List of host names to match. Matched against the ":authority" header in - // http requests. At least one host should match. Each host can be an - // exact match, or a prefix match (example "mydomain.*") or a suffix - // match (example // *.myorg.com") or a presence(any) match "*". + // Required. List of host names to match. Matched against the ":authority" + // header in http requests. At least one host should match. Each host can + // be an exact match, or a prefix match (example "mydomain.*") or a suffix + // match (example "*.myorg.com") or a presence (any) match "*". repeated string hosts = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. List of destination ports to match. At least one port should match. + // Required. List of destination ports to match. At least one port should + // match. repeated uint32 ports = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. A list of HTTP methods to match. At least one method should // match. Should not be set for gRPC services. repeated string methods = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Match against key:value pair in http header. Provides a flexible match - // based on HTTP headers, for potentially advanced use cases. At least one - // header should match. Avoid using header matches to make authorization - // decisions unless there is a strong guarantee that requests arrive - // through a trusted client or proxy. - HttpHeaderMatch http_header_match = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Match against key:value pair in http header. Provides a + // flexible match based on HTTP headers, for potentially advanced use + // cases. At least one header should match. Avoid using header matches to + // make authorization decisions unless there is a strong guarantee that + // requests arrive through a trusted client or proxy. + HttpHeaderMatch http_header_match = 5 + [(google.api.field_behavior) = OPTIONAL]; } - // Optional. List of attributes for the traffic source. All of the sources must match. - // A source is a match if both principals and ip_blocks match. If not set, - // the action specified in the 'action' field will be applied without any - // rule checks for the source. + // Optional. List of attributes for the traffic source. All of the sources + // must match. A source is a match if both principals and ip_blocks match. + // If not set, the action specified in the 'action' field will be applied + // without any rule checks for the source. repeated Source sources = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. List of attributes for the traffic destination. All of the destinations - // must match. A destination is a match if a request matches all the - // specified hosts, ports, methods and headers. If not set, the + // Optional. List of attributes for the traffic destination. All of the + // destinations must match. A destination is a match if a request matches + // all the specified hosts, ports, methods and headers. If not set, the // action specified in the 'action' field will be applied without any rule // checks for the destination. - repeated Destination destinations = 2 [(google.api.field_behavior) = OPTIONAL]; + repeated Destination destinations = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Possible values that define what action to take. @@ -139,22 +141,26 @@ message AuthorizationPolicy { string description = 2 [(google.api.field_behavior) = OPTIONAL]; // Output only. The timestamp when the resource was created. - 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. The timestamp when the resource was updated. - google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. Set of label tags associated with the AuthorizationPolicy resource. + // Optional. Set of label tags associated with the AuthorizationPolicy + // resource. map labels = 5 [(google.api.field_behavior) = OPTIONAL]; // Required. The action to take when a rule match is found. Possible values // are "ALLOW" or "DENY". Action action = 6 [(google.api.field_behavior) = REQUIRED]; - // Optional. List of rules to match. Note that at least one of the rules must match in - // order for the action specified in the 'action' field to be taken. A rule is - // a match if there is a matching source and destination. If left blank, the - // action specified in the `action` field will be applied on every request. + // Optional. List of rules to match. Note that at least one of the rules must + // match in order for the action specified in the 'action' field to be taken. + // A rule is a match if there is a matching source and destination. If left + // blank, the action specified in the `action` field will be applied on every + // request. repeated Rule rules = 7 [(google.api.field_behavior) = OPTIONAL]; } @@ -210,7 +216,7 @@ message CreateAuthorizationPolicyRequest { string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "networksecurity.googleapis.com/AuthorizationPolicy" + child_type: "networksecurity.googleapis.com/AuthorizationPolicy" } ]; @@ -221,7 +227,8 @@ message CreateAuthorizationPolicyRequest { string authorization_policy_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. AuthorizationPolicy resource to be created. - AuthorizationPolicy authorization_policy = 3 [(google.api.field_behavior) = REQUIRED]; + AuthorizationPolicy authorization_policy = 3 + [(google.api.field_behavior) = REQUIRED]; } // Request used by the UpdateAuthorizationPolicy method. @@ -231,16 +238,18 @@ message UpdateAuthorizationPolicyRequest { // 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) = OPTIONAL]; + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = OPTIONAL]; // Required. Updated AuthorizationPolicy resource. - AuthorizationPolicy authorization_policy = 2 [(google.api.field_behavior) = REQUIRED]; + AuthorizationPolicy authorization_policy = 2 + [(google.api.field_behavior) = REQUIRED]; } // Request used by the DeleteAuthorizationPolicy method. message DeleteAuthorizationPolicyRequest { - // Required. A name of the AuthorizationPolicy to delete. Must be in the format - // `projects/{project}/locations/{location}/authorizationPolicies/*`. + // Required. A name of the AuthorizationPolicy to delete. Must be in the + // format `projects/{project}/locations/{location}/authorizationPolicies/*`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/networksecurity/v1beta1/client_tls_policy.proto b/google/cloud/networksecurity/v1beta1/client_tls_policy.proto index 6cc0c228f..8f10ad7fb 100644 --- a/google/cloud/networksecurity/v1beta1/client_tls_policy.proto +++ b/google/cloud/networksecurity/v1beta1/client_tls_policy.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/networksecurity/v1beta1/tls.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkSecurity.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1beta1;networksecurity"; @@ -48,10 +47,12 @@ message ClientTlsPolicy { string description = 2 [(google.api.field_behavior) = OPTIONAL]; // Output only. The timestamp when the resource was created. - 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. The timestamp when the resource was updated. - google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Set of label tags associated with the resource. map labels = 5 [(google.api.field_behavior) = OPTIONAL]; @@ -60,14 +61,17 @@ message ClientTlsPolicy { // handshake. E.g: "secure.example.com". string sni = 6 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Defines a mechanism to provision client identity (public and private keys) - // for peer to peer authentication. The presence of this dictates mTLS. - CertificateProvider client_certificate = 7 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Defines the mechanism to obtain the Certificate Authority certificate to - // validate the server certificate. If empty, client does not validate the - // server certificate. - repeated ValidationCA server_validation_ca = 8 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Defines a mechanism to provision client identity (public and + // private keys) for peer to peer authentication. The presence of this + // dictates mTLS. + CertificateProvider client_certificate = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the mechanism to obtain the Certificate Authority + // certificate to validate the server certificate. If empty, client does not + // validate the server certificate. + repeated ValidationCA server_validation_ca = 8 + [(google.api.field_behavior) = OPTIONAL]; } // Request used by the ListClientTlsPolicies method. @@ -121,17 +125,19 @@ message CreateClientTlsPolicyRequest { string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "networksecurity.googleapis.com/ClientTlsPolicy" + child_type: "networksecurity.googleapis.com/ClientTlsPolicy" } ]; - // Required. Short name of the ClientTlsPolicy resource to be created. This value should - // be 1-63 characters long, containing only letters, numbers, hyphens, and - // underscores, and should not start with a number. E.g. "client_mtls_policy". + // Required. Short name of the ClientTlsPolicy resource to be created. This + // value should be 1-63 characters long, containing only letters, numbers, + // hyphens, and underscores, and should not start with a number. E.g. + // "client_mtls_policy". string client_tls_policy_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. ClientTlsPolicy resource to be created. - ClientTlsPolicy client_tls_policy = 3 [(google.api.field_behavior) = REQUIRED]; + ClientTlsPolicy client_tls_policy = 3 + [(google.api.field_behavior) = REQUIRED]; } // Request used by UpdateClientTlsPolicy method. @@ -142,10 +148,12 @@ message UpdateClientTlsPolicyRequest { // 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) = OPTIONAL]; + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = OPTIONAL]; // Required. Updated ClientTlsPolicy resource. - ClientTlsPolicy client_tls_policy = 2 [(google.api.field_behavior) = REQUIRED]; + ClientTlsPolicy client_tls_policy = 2 + [(google.api.field_behavior) = REQUIRED]; } // Request used by the DeleteClientTlsPolicy method. diff --git a/google/cloud/networksecurity/v1beta1/common.proto b/google/cloud/networksecurity/v1beta1/common.proto index 4a85f6520..7aa715d52 100644 --- a/google/cloud/networksecurity/v1beta1/common.proto +++ b/google/cloud/networksecurity/v1beta1/common.proto @@ -18,7 +18,6 @@ package google.cloud.networksecurity.v1beta1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkSecurity.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1beta1;networksecurity"; @@ -31,10 +30,12 @@ option ruby_package = "Google::Cloud::NetworkSecurity::V1beta1"; // 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]; + 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]; + 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]; @@ -47,8 +48,9 @@ message OperationMetadata { // 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`. + // 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. diff --git a/google/cloud/networksecurity/v1beta1/networksecurity_v1beta1.yaml b/google/cloud/networksecurity/v1beta1/networksecurity_v1beta1.yaml index 4cfe402a3..432667fd8 100644 --- a/google/cloud/networksecurity/v1beta1/networksecurity_v1beta1.yaml +++ b/google/cloud/networksecurity/v1beta1/networksecurity_v1beta1.yaml @@ -4,7 +4,10 @@ name: networksecurity.googleapis.com title: Network Security API apis: +- name: google.cloud.location.Locations - name: google.cloud.networksecurity.v1beta1.NetworkSecurity +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: - name: google.cloud.networksecurity.v1beta1.OperationMetadata diff --git a/google/cloud/networksecurity/v1beta1/server_tls_policy.proto b/google/cloud/networksecurity/v1beta1/server_tls_policy.proto index d3c521216..ce92cfce6 100644 --- a/google/cloud/networksecurity/v1beta1/server_tls_policy.proto +++ b/google/cloud/networksecurity/v1beta1/server_tls_policy.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/networksecurity/v1beta1/tls.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkSecurity.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1beta1;networksecurity"; @@ -34,7 +33,6 @@ option ruby_package = "Google::Cloud::NetworkSecurity::V1beta1"; // ServerTlsPolicy is a resource that specifies how a server should authenticate // incoming requests. This resource itself does not affect configuration unless // it is attached to a target https proxy or endpoint config selector resource. -// message ServerTlsPolicy { option (google.api.resource) = { type: "networksecurity.googleapis.com/ServerTlsPolicy" @@ -57,10 +55,12 @@ message ServerTlsPolicy { string description = 2; // Output only. The timestamp when the resource was created. - 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. The timestamp when the resource was updated. - google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Set of label tags associated with the resource. map labels = 5; @@ -72,6 +72,9 @@ message ServerTlsPolicy { // and `mtls_policy` are set, server allows both plain text and mTLS // connections. See documentation of other encryption modes to confirm // compatibility. + // + // Consider using it if you wish to upgrade in place your deployment to TLS + // while having mixed TLS and non-TLS traffic reaching port :80. bool allow_open = 6; // @@ -140,17 +143,19 @@ message CreateServerTlsPolicyRequest { string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "networksecurity.googleapis.com/ServerTlsPolicy" + child_type: "networksecurity.googleapis.com/ServerTlsPolicy" } ]; - // Required. Short name of the ServerTlsPolicy resource to be created. This value should - // be 1-63 characters long, containing only letters, numbers, hyphens, and - // underscores, and should not start with a number. E.g. "server_mtls_policy". + // Required. Short name of the ServerTlsPolicy resource to be created. This + // value should be 1-63 characters long, containing only letters, numbers, + // hyphens, and underscores, and should not start with a number. E.g. + // "server_mtls_policy". string server_tls_policy_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. ServerTlsPolicy resource to be created. - ServerTlsPolicy server_tls_policy = 3 [(google.api.field_behavior) = REQUIRED]; + ServerTlsPolicy server_tls_policy = 3 + [(google.api.field_behavior) = REQUIRED]; } // Request used by UpdateServerTlsPolicy method. @@ -161,10 +166,12 @@ message UpdateServerTlsPolicyRequest { // 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) = OPTIONAL]; + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = OPTIONAL]; // Required. Updated ServerTlsPolicy resource. - ServerTlsPolicy server_tls_policy = 2 [(google.api.field_behavior) = REQUIRED]; + ServerTlsPolicy server_tls_policy = 2 + [(google.api.field_behavior) = REQUIRED]; } // Request used by the DeleteServerTlsPolicy method. diff --git a/google/cloud/networksecurity/v1beta1/tls.proto b/google/cloud/networksecurity/v1beta1/tls.proto index 740c785c7..3addee9fd 100644 --- a/google/cloud/networksecurity/v1beta1/tls.proto +++ b/google/cloud/networksecurity/v1beta1/tls.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.networksecurity.v1beta1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkSecurity.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networksecurity/v1beta1;networksecurity"; @@ -29,8 +28,8 @@ option ruby_package = "Google::Cloud::NetworkSecurity::V1beta1"; // Specification of the GRPC Endpoint. message GrpcEndpoint { - // Required. The target URI of the gRPC endpoint. Only UDS path is supported, and - // should start with “unix:”. + // Required. The target URI of the gRPC endpoint. Only UDS path is supported, + // and should start with "unix:". string target_uri = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -55,9 +54,9 @@ message ValidationCA { // and configured by specifying this message. Workloads use the values from this // message to locate and load the CertificateProvider instance configuration. message CertificateProviderInstance { - // Required. Plugin instance name, used to locate and load CertificateProvider instance - // configuration. Set to "google_cloud_private_spiffe" to use Certificate - // Authority Service certificate provider instance. + // Required. Plugin instance name, used to locate and load CertificateProvider + // instance configuration. Set to "google_cloud_private_spiffe" to use + // Certificate Authority Service certificate provider instance. string plugin_instance = 1 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/cloud/networkservices/v1/BUILD.bazel b/google/cloud/networkservices/v1/BUILD.bazel index 2601d693f..61a049977 100644 --- a/google/cloud/networkservices/v1/BUILD.bazel +++ b/google/cloud/networkservices/v1/BUILD.bazel @@ -23,7 +23,14 @@ proto_library( srcs = [ "common.proto", "endpoint_policy.proto", + "gateway.proto", + "grpc_route.proto", + "http_route.proto", + "mesh.proto", "network_services.proto", + "service_binding.proto", + "tcp_route.proto", + "tls_route.proto", ], deps = [ "//google/api:annotations_proto", @@ -31,6 +38,7 @@ proto_library( "//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//:timestamp_proto", ], @@ -41,6 +49,8 @@ proto_library_with_info( deps = [ ":networkservices_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ], ) @@ -75,16 +85,22 @@ java_gapic_library( service_yaml = "networkservices_v1.yaml", test_deps = [ ":networkservices_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":networkservices_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ], ) java_gapic_test( name = "networkservices_java_gapic_test_suite", test_classes = [ + "com.google.cloud.networkservices.v1.NetworkServicesClientHttpJsonTest", "com.google.cloud.networkservices.v1.NetworkServicesClientTest", ], runtime_deps = [":networkservices_java_gapic_test"], @@ -93,6 +109,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-networkservices-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":networkservices_java_gapic", ":networkservices_java_grpc", @@ -128,13 +146,17 @@ go_gapic_library( srcs = [":networkservices_proto_with_info"], grpc_service_config = "networkservices_grpc_service_config.json", importpath = "cloud.google.com/go/networkservices/apiv1;networkservices", - service_yaml = "networkservices_v1.yaml", metadata = True, + service_yaml = "networkservices_v1.yaml", + transport = "grpc+rest", deps = [ ":networkservices_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_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", ], ) @@ -150,8 +172,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-networkservices-v1-go", deps = [ ":networkservices_go_gapic", - ":networkservices_go_gapic_srcjar-test.srcjar", ":networkservices_go_gapic_srcjar-metadata.srcjar", + ":networkservices_go_gapic_srcjar-test.srcjar", ":networkservices_go_proto", ], ) @@ -169,6 +191,26 @@ py_gapic_library( name = "networkservices_py_gapic", srcs = [":networkservices_proto"], grpc_service_config = "networkservices_grpc_service_config.json", + opt_args = [ + "python-gapic-name=network_services", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-network-services", + ], + service_yaml = "networkservices_v1.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ] +) + +py_test( + name = "networkservices_py_gapic_test", + srcs = [ + "networkservices_py_gapic_pytest.py", + "networkservices_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":networkservices_py_gapic"], ) # Open Source Packages @@ -255,8 +297,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -275,10 +317,9 @@ 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-networkservices-v1"], grpc_service_config = "networkservices_grpc_service_config.json", + service_yaml = "networkservices_v1.yaml", deps = [ ":networkservices_ruby_grpc", ":networkservices_ruby_proto", @@ -322,6 +363,7 @@ csharp_gapic_library( srcs = [":networkservices_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "networkservices_grpc_service_config.json", + service_yaml = "networkservices_v1.yaml", deps = [ ":networkservices_csharp_grpc", ":networkservices_csharp_proto", diff --git a/google/cloud/networkservices/v1/common.proto b/google/cloud/networkservices/v1/common.proto index 6307cce44..a514b32c1 100644 --- a/google/cloud/networkservices/v1/common.proto +++ b/google/cloud/networkservices/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.networkservices.v1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkServices.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; diff --git a/google/cloud/networkservices/v1/endpoint_policy.proto b/google/cloud/networkservices/v1/endpoint_policy.proto index 193f24953..5386c2ba9 100644 --- a/google/cloud/networkservices/v1/endpoint_policy.proto +++ b/google/cloud/networkservices/v1/endpoint_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/networkservices/v1/common.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkServices.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; diff --git a/google/cloud/networkservices/v1/gateway.proto b/google/cloud/networkservices/v1/gateway.proto new file mode 100644 index 000000000..3900b1fda --- /dev/null +++ b/google/cloud/networkservices/v1/gateway.proto @@ -0,0 +1,188 @@ +// 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.cloud.networkservices.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.NetworkServices.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; +option java_multiple_files = true; +option java_outer_classname = "GatewayProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; + +// Gateway represents the configuration for a proxy, typically a load balancer. +// It captures the ip:port over which the services are exposed by the proxy, +// along with any policy configurations. Routes have reference to to Gateways to +// dictate how requests should be routed by this Gateway. +message Gateway { + option (google.api.resource) = { + type: "networkservices.googleapis.com/Gateway" + pattern: "projects/{project}/locations/{location}/gateways/{gateway}" + }; + + // The type of the customer-managed gateway. + // Possible values are: + // * OPEN_MESH + // * SECURE_WEB_GATEWAY + enum Type { + // The type of the customer managed gateway is unspecified. + TYPE_UNSPECIFIED = 0; + + // The type of the customer managed gateway is TrafficDirector Open + // Mesh. + OPEN_MESH = 1; + + // The type of the customer managed gateway is SecureWebGateway (SWG). + SECURE_WEB_GATEWAY = 2; + } + + // Required. Name of the Gateway resource. It matches pattern + // `projects/*/locations/*/gateways/`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server-defined URL of this resource + string self_link = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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. Set of label tags associated with the Gateway resource. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A free-text description of the resource. Max length 1024 characters. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Immutable. The type of the customer managed gateway. + // This field is required. If unspecified, an error is returned. + Type type = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. One or more ports that the Gateway must receive traffic on. The proxy binds + // to the ports specified. Gateway listen on 0.0.0.0 on the ports specified + // below. + repeated int32 ports = 11 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. Scope determines how configuration across multiple Gateway instances are + // merged. The configuration for multiple Gateway instances with the same + // scope will be merged as presented as a single coniguration to the + // proxy/load balancer. + // + // Max length 64 characters. + // Scope should start with a letter and can only have letters, numbers, + // hyphens. + string scope = 8 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. A fully-qualified ServerTLSPolicy URL reference. Specifies how TLS + // traffic is terminated. If empty, TLS termination is disabled. + string server_tls_policy = 9 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request used with the ListGateways method. +message ListGatewaysRequest { + // Required. The project and location from which the Gateways should be + // listed, specified in the format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/Gateway" + } + ]; + + // Maximum number of Gateways to return per call. + int32 page_size = 2; + + // The value returned by the last `ListGatewaysResponse` + // Indicates that this is a continuation of a prior `ListGateways` call, + // and that the system should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListGateways method. +message ListGatewaysResponse { + // List of Gateway resources. + repeated Gateway gateways = 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; +} + +// Request used by the GetGateway method. +message GetGatewayRequest { + // Required. A name of the Gateway to get. Must be in the format + // `projects/*/locations/*/gateways/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Gateway" + } + ]; +} + +// Request used by the CreateGateway method. +message CreateGatewayRequest { + // Required. The parent resource of the Gateway. Must be in the + // format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/Gateway" + } + ]; + + // Required. Short name of the Gateway resource to be created. + string gateway_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Gateway resource to be created. + Gateway gateway = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the UpdateGateway method. +message UpdateGatewayRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // Gateway 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) = OPTIONAL]; + + // Required. Updated Gateway resource. + Gateway gateway = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteGateway method. +message DeleteGatewayRequest { + // Required. A name of the Gateway to delete. Must be in the format + // `projects/*/locations/*/gateways/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Gateway" + } + ]; +} diff --git a/google/cloud/networkservices/v1/grpc_route.proto b/google/cloud/networkservices/v1/grpc_route.proto new file mode 100644 index 000000000..9295a31af --- /dev/null +++ b/google/cloud/networkservices/v1/grpc_route.proto @@ -0,0 +1,413 @@ +// 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.cloud.networkservices.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"; + +option csharp_namespace = "Google.Cloud.NetworkServices.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; +option java_multiple_files = true; +option java_outer_classname = "GrpcRouteProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; + +// GrpcRoute is the resource defining how gRPC traffic routed by a Mesh +// or Gateway resource is routed. +message GrpcRoute { + option (google.api.resource) = { + type: "networkservices.googleapis.com/GrpcRoute" + pattern: "projects/{project}/locations/{location}/grpcRoutes/{grpc_route}" + }; + + // Specifies a match against a method. + message MethodMatch { + // The type of the match. + enum Type { + // Unspecified. + TYPE_UNSPECIFIED = 0; + + // Will only match the exact name provided. + EXACT = 1; + + // Will interpret grpc_method and grpc_service as regexes. RE2 syntax is + // supported. + REGULAR_EXPRESSION = 2; + } + + // Optional. Specifies how to match against the name. If not specified, a default + // value of "EXACT" is used. + Type type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Name of the service to match against. If unspecified, will match all + // services. + string grpc_service = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the method to match against. If unspecified, will match all + // methods. + string grpc_method = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies that matches are case sensitive. The default value is true. + // case_sensitive must not be used with a type of REGULAR_EXPRESSION. + optional bool case_sensitive = 4 [(google.api.field_behavior) = OPTIONAL]; + } + + // A match against a collection of headers. + message HeaderMatch { + // The type of match. + enum Type { + // Unspecified. + TYPE_UNSPECIFIED = 0; + + // Will only match the exact value provided. + EXACT = 1; + + // Will match paths conforming to the prefix specified by value. RE2 + // syntax is supported. + REGULAR_EXPRESSION = 2; + } + + // Optional. Specifies how to match against the value of the header. If not + // specified, a default value of EXACT is used. + Type type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The key of the header. + string key = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The value of the header. + string value = 3 [(google.api.field_behavior) = REQUIRED]; + } + + // Criteria for matching traffic. A RouteMatch will be considered to match + // when all supplied fields match. + message RouteMatch { + // Optional. A gRPC method to match against. If this field is empty or omitted, will + // match all methods. + optional MethodMatch method = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies a collection of headers to match. + repeated HeaderMatch headers = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // The destination to which traffic will be routed. + message Destination { + // Specifies the kind of destination to which traffic will be routed. + oneof destination_type { + // Required. The URL of a destination service to which to route traffic. Must refer + // to either a BackendService or ServiceDirectoryService. + string service_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/BackendService" + } + ]; + } + + // Optional. Specifies the proportion of requests forwarded to the backend referenced + // by the serviceName field. This is computed as: + // weight/Sum(weights in this destination list). + // For non-zero values, there may be some epsilon from the exact proportion + // defined here depending on the precision an implementation supports. + // + // If only one serviceName is specified and it has a weight greater than 0, + // 100% of the traffic is forwarded to that backend. + // + // If weights are specified for any one service name, they need to be + // specified for all of them. + // + // If weights are unspecified for all services, then, traffic is distributed + // in equal proportions to all of them. + optional int32 weight = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // The specification for fault injection introduced into traffic to test the + // resiliency of clients to destination service failure. As part of fault + // injection, when clients send requests to a destination, delays can be + // introduced on a percentage of requests before sending those requests to the + // destination service. Similarly requests from clients can be aborted by for + // a percentage of requests. + message FaultInjectionPolicy { + // Specification of how client requests are delayed as part of fault + // injection before being sent to a destination. + message Delay { + // Specify a fixed delay before forwarding the request. + optional google.protobuf.Duration fixed_delay = 1; + + // The percentage of traffic on which delay will be injected. + // + // The value must be between [0, 100] + optional int32 percentage = 2; + } + + // Specification of how client requests are aborted as part of fault + // injection before being sent to a destination. + message Abort { + // The HTTP status code used to abort the request. + // + // The value must be between 200 and 599 inclusive. + optional int32 http_status = 1; + + // The percentage of traffic which will be aborted. + // + // The value must be between [0, 100] + optional int32 percentage = 2; + } + + // The specification for injecting delay to client requests. + optional Delay delay = 1; + + // The specification for aborting to client requests. + optional Abort abort = 2; + } + + // The specifications for retries. + message RetryPolicy { + // - connect-failure: Router will retry on failures connecting to Backend + // Services, for example due to connection timeouts. + // - refused-stream: Router will retry if the backend service resets the + // stream + // with a REFUSED_STREAM error code. This reset type indicates that it is + // safe to retry. + // - cancelled: Router will retry if the gRPC status code in the response + // header + // is set to cancelled + // - deadline-exceeded: Router will retry if the gRPC status code in the + // response + // header is set to deadline-exceeded + // - resource-exhausted: Router will retry if the gRPC status code in the + // response header is set to resource-exhausted + // - unavailable: Router will retry if the gRPC status code in the response + // header is set to unavailable + repeated string retry_conditions = 1; + + // Specifies the allowed number of retries. This number must be > 0. If not + // specified, default to 1. + uint32 num_retries = 2; + } + + // Specifies how to route matched traffic. + message RouteAction { + // Optional. The destination services to which traffic should be forwarded. If + // multiple destinations are specified, traffic will be split between + // Backend Service(s) according to the weight field of these destinations. + repeated Destination destinations = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The specification for fault injection introduced into traffic to test the + // resiliency of clients to destination service failure. As part of fault + // injection, when clients send requests to a destination, delays can be + // introduced on a percentage of requests before sending those requests to + // the destination service. Similarly requests from clients can be aborted + // by for a percentage of requests. + // + // timeout and retry_policy will be ignored by clients that are configured + // with a fault_injection_policy + FaultInjectionPolicy fault_injection_policy = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the timeout for selected route. Timeout is computed from the + // time the request has been fully processed (i.e. end of stream) up until + // the response has been completely processed. Timeout includes all retries. + google.protobuf.Duration timeout = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the retry policy associated with this route. + RetryPolicy retry_policy = 8 [(google.api.field_behavior) = OPTIONAL]; + } + + // Describes how to route traffic. + message RouteRule { + // Optional. Matches define conditions used for matching the rule against incoming + // gRPC requests. Each match is independent, i.e. this rule will be matched + // if ANY one of the matches is satisfied. If no matches field is + // specified, this rule will unconditionally match traffic. + repeated RouteMatch matches = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. A detailed rule defining how to route traffic. This field is required. + RouteAction action = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Name of the GrpcRoute resource. It matches pattern + // `projects/*/locations/global/grpcRoutes/` + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server-defined URL of this resource + string self_link = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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. Set of label tags associated with the GrpcRoute resource. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A free-text description of the resource. Max length 1024 characters. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Service hostnames with an optional port for which this route describes + // traffic. + // + // Format: [:] + // + // Hostname is the fully qualified domain name of a network host. This matches + // the RFC 1123 definition of a hostname with 2 notable exceptions: + // - IPs are not allowed. + // - A hostname may be prefixed with a wildcard label (*.). The wildcard + // label must appear by itself as the first label. + // + // Hostname can be "precise" which is a domain name without the terminating + // dot of a network host (e.g. "foo.example.com") or "wildcard", which is a + // domain name prefixed with a single wildcard label (e.g. *.example.com). + // + // Note that as per RFC1035 and RFC1123, a label must consist of lower case + // alphanumeric characters or '-', and must start and end with an alphanumeric + // character. No other punctuation is allowed. + // + // The routes associated with a Mesh or Gateway must have unique hostnames. If + // you attempt to attach multiple routes with conflicting hostnames, the + // configuration will be rejected. + // + // For example, while it is acceptable for routes for the hostnames + // "*.foo.bar.com" and "*.bar.com" to be associated with the same route, it is + // not possible to associate two routes both with "*.bar.com" or both with + // "bar.com". + // + // If a port is specified, then gRPC clients must use the channel URI with the + // port to match this rule (i.e. "xds:///service:123"), otherwise they must + // supply the URI without a port (i.e. "xds:///service"). + repeated string hostnames = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as one of + // the routing rules to route the requests served by the mesh. + // + // Each mesh reference should match the pattern: + // `projects/*/locations/global/meshes/` + repeated string meshes = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Mesh" + } + ]; + + // Optional. Gateways defines a list of gateways this GrpcRoute is attached to, as one + // of the routing rules to route the requests served by the gateway. + // + // Each gateway reference should match the pattern: + // `projects/*/locations/global/gateways/` + repeated string gateways = 10 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Gateway" + } + ]; + + // Required. A list of detailed rules defining how to route traffic. + // + // Within a single GrpcRoute, the GrpcRoute.RouteAction associated with the + // first matching GrpcRoute.RouteRule will be executed. At least one rule + // must be supplied. + repeated RouteRule rules = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used with the ListGrpcRoutes method. +message ListGrpcRoutesRequest { + // Required. The project and location from which the GrpcRoutes should be + // listed, specified in the format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/GrpcRoute" + } + ]; + + // Maximum number of GrpcRoutes to return per call. + int32 page_size = 2; + + // The value returned by the last `ListGrpcRoutesResponse` + // Indicates that this is a continuation of a prior `ListGrpcRoutes` call, + // and that the system should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListGrpcRoutes method. +message ListGrpcRoutesResponse { + // List of GrpcRoute resources. + repeated GrpcRoute grpc_routes = 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; +} + +// Request used by the GetGrpcRoute method. +message GetGrpcRouteRequest { + // Required. A name of the GrpcRoute to get. Must be in the format + // `projects/*/locations/global/grpcRoutes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/GrpcRoute" + } + ]; +} + +// Request used by the CreateGrpcRoute method. +message CreateGrpcRouteRequest { + // Required. The parent resource of the GrpcRoute. Must be in the + // format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/GrpcRoute" + } + ]; + + // Required. Short name of the GrpcRoute resource to be created. + string grpc_route_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. GrpcRoute resource to be created. + GrpcRoute grpc_route = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the UpdateGrpcRoute method. +message UpdateGrpcRouteRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // GrpcRoute 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) = OPTIONAL]; + + // Required. Updated GrpcRoute resource. + GrpcRoute grpc_route = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteGrpcRoute method. +message DeleteGrpcRouteRequest { + // Required. A name of the GrpcRoute to delete. Must be in the format + // `projects/*/locations/global/grpcRoutes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/GrpcRoute" + } + ]; +} diff --git a/google/cloud/networkservices/v1/http_route.proto b/google/cloud/networkservices/v1/http_route.proto new file mode 100644 index 000000000..db1a8f941 --- /dev/null +++ b/google/cloud/networkservices/v1/http_route.proto @@ -0,0 +1,616 @@ +// 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.cloud.networkservices.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"; + +option csharp_namespace = "Google.Cloud.NetworkServices.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; +option java_multiple_files = true; +option java_outer_classname = "HttpRouteProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; + +// HttpRoute is the resource defining how HTTP traffic should be routed by a +// Mesh or Gateway resource. +message HttpRoute { + option (google.api.resource) = { + type: "networkservices.googleapis.com/HttpRoute" + pattern: "projects/{project}/locations/{location}/httpRoutes/{http_route}" + }; + + // Specifies how to select a route rule based on HTTP request headers. + message HeaderMatch { + // Represents an integer value range. + message IntegerRange { + // Start of the range (inclusive) + int32 start = 1; + + // End of the range (exclusive) + int32 end = 2; + } + + oneof MatchType { + // The value of the header should match exactly the content of + // exact_match. + string exact_match = 2; + + // The value of the header must match the regular expression specified in + // regex_match. For regular expression grammar, please see: + // https://github.com/google/re2/wiki/Syntax + string regex_match = 3; + + // The value of the header must start with the contents of prefix_match. + string prefix_match = 4; + + // A header with header_name must exist. The match takes place whether or + // not the header has a value. + bool present_match = 5; + + // The value of the header must end with the contents of suffix_match. + string suffix_match = 6; + + // If specified, the rule will match if the request header value is within + // the range. + IntegerRange range_match = 7; + } + + // The name of the HTTP header to match against. + string header = 1; + + // If specified, the match result will be inverted before checking. Default + // value is set to false. + bool invert_match = 8; + } + + // Specifications to match a query parameter in the request. + message QueryParameterMatch { + oneof MatchType { + // The value of the query parameter must exactly match the contents of + // exact_match. + // + // Only one of exact_match, regex_match, or present_match must be set. + string exact_match = 2; + + // The value of the query parameter must match the regular expression + // specified by regex_match. For regular expression grammar, please see + // https://github.com/google/re2/wiki/Syntax + // + // Only one of exact_match, regex_match, or present_match must be set. + string regex_match = 3; + + // Specifies that the QueryParameterMatcher matches if request contains + // query parameter, irrespective of whether the parameter has a value or + // not. + // + // Only one of exact_match, regex_match, or present_match must be set. + bool present_match = 4; + } + + // The name of the query parameter to match. + string query_parameter = 1; + } + + // RouteMatch defines specifications used to match requests. If multiple match + // types are set, this RouteMatch will match if ALL type of matches are + // matched. + message RouteMatch { + oneof PathMatch { + // The HTTP request path value should exactly match this value. + // + // Only one of full_path_match, prefix_match, or regex_match should be + // used. + string full_path_match = 1; + + // The HTTP request path value must begin with specified prefix_match. + // prefix_match must begin with a /. + // + // Only one of full_path_match, prefix_match, or regex_match should be + // used. + string prefix_match = 2; + + // The HTTP request path value must satisfy the regular expression + // specified by regex_match after removing any query parameters and anchor + // supplied with the original URL. For regular expression grammar, please + // see https://github.com/google/re2/wiki/Syntax + // + // Only one of full_path_match, prefix_match, or regex_match should be + // used. + string regex_match = 3; + } + + // Specifies if prefix_match and full_path_match matches are case sensitive. + // The default value is false. + bool ignore_case = 4; + + // Specifies a list of HTTP request headers to match against. ALL of the + // supplied headers must be matched. + repeated HeaderMatch headers = 5; + + // Specifies a list of query parameters to match against. ALL of the query + // parameters must be matched. + repeated QueryParameterMatch query_parameters = 6; + } + + // Specifications of a destination to which the request should be routed to. + message Destination { + // The URL of a BackendService to route traffic to. + string service_name = 1 [(google.api.resource_reference) = { + type: "compute.googleapis.com/BackendService" + }]; + + // Specifies the proportion of requests forwarded to the backend referenced + // by the serviceName field. This is computed as: + // weight/Sum(weights in this destination list). + // For non-zero values, there may be some epsilon from the exact proportion + // defined here depending on the precision an implementation supports. + // + // If only one serviceName is specified and it has a weight greater than 0, + // 100% of the traffic is forwarded to that backend. + // + // If weights are specified for any one service name, they need to be + // specified for all of them. + // + // If weights are unspecified for all services, then, traffic is distributed + // in equal proportions to all of them. + int32 weight = 2; + } + + // The specification for redirecting traffic. + message Redirect { + // Supported HTTP response code. + enum ResponseCode { + // Default value + RESPONSE_CODE_UNSPECIFIED = 0; + + // Corresponds to 301. + MOVED_PERMANENTLY_DEFAULT = 1; + + // Corresponds to 302. + FOUND = 2; + + // Corresponds to 303. + SEE_OTHER = 3; + + // Corresponds to 307. In this case, the request method will be retained. + TEMPORARY_REDIRECT = 4; + + // Corresponds to 308. In this case, the request method will be retained. + PERMANENT_REDIRECT = 5; + } + + // The host that will be used in the redirect response instead of the one + // that was supplied in the request. + string host_redirect = 1; + + // The path that will be used in the redirect response instead of the one + // that was supplied in the request. + // path_redirect can not be supplied together with prefix_redirect. Supply + // one alone or neither. If neither is supplied, the path of the original + // request will be used for the redirect. + string path_redirect = 2; + + // Indicates that during redirection, the matched prefix (or path) should be + // swapped with this value. This option allows URLs be dynamically created + // based on the request. + string prefix_rewrite = 3; + + // The HTTP Status code to use for the redirect. + ResponseCode response_code = 4; + + // 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 will remain the + // same as that of the request. + // + // The default is set to false. + bool https_redirect = 5; + + // if set to true, any accompanying query portion of the original URL is + // removed prior to redirecting the request. If set to false, the query + // portion of the original URL is retained. + // + // The default is set to false. + bool strip_query = 6; + + // The port that will be used in the redirected request instead of the one + // that was supplied in the request. + int32 port_redirect = 7; + } + + // The specification for fault injection introduced into traffic to test the + // resiliency of clients to destination service failure. As part of fault + // injection, when clients send requests to a destination, delays can be + // introduced by client proxy on a percentage of requests before sending those + // requests to the destination service. Similarly requests can be aborted by + // client proxy for a percentage of requests. + message FaultInjectionPolicy { + // Specification of how client requests are delayed as part of fault + // injection before being sent to a destination. + message Delay { + // Specify a fixed delay before forwarding the request. + google.protobuf.Duration fixed_delay = 1; + + // The percentage of traffic on which delay will be injected. + // + // The value must be between [0, 100] + int32 percentage = 2; + } + + // Specification of how client requests are aborted as part of fault + // injection before being sent to a destination. + message Abort { + // The HTTP status code used to abort the request. + // + // The value must be between 200 and 599 inclusive. + int32 http_status = 1; + + // The percentage of traffic which will be aborted. + // + // The value must be between [0, 100] + int32 percentage = 2; + } + + // The specification for injecting delay to client requests. + Delay delay = 1; + + // The specification for aborting to client requests. + Abort abort = 2; + } + + // The specification for modifying HTTP header in HTTP request and HTTP + // response. + message HeaderModifier { + // Completely overwrite/replace the headers with given map where key is the + // name of the header, value is the value of the header. + map set = 1; + + // Add the headers with given map where key is the name of the header, value + // is the value of the header. + map add = 2; + + // Remove headers (matching by header names) specified in the list. + repeated string remove = 3; + } + + // The specification for modifying the URL of the request, prior to forwarding + // the request to the destination. + message URLRewrite { + // Prior to forwarding the request to the selected destination, the matching + // portion of the requests path is replaced by this value. + string path_prefix_rewrite = 1; + + // Prior to forwarding the request to the selected destination, the requests + // host header is replaced by this value. + string host_rewrite = 2; + } + + // The specifications for retries. + message RetryPolicy { + // Specifies one or more conditions when this retry policy applies. Valid + // values are: + // 5xx: Proxy will attempt a retry if the destination service responds + // with any 5xx response code, of if the destination service does not + // respond at all, example: disconnect, reset, read timeout, connection + // failure and refused streams. + // + // gateway-error: Similar to 5xx, but only applies to response codes 502, + // 503, 504. + // + // reset: Proxy will attempt a retry if the destination service does not + // respond at all (disconnect/reset/read timeout) + // + // connect-failure: Proxy will retry on failures connecting to destination + // for example due to connection timeouts. + // + // retriable-4xx: Proxy will retry fro retriable 4xx response codes. + // Currently the only retriable error supported is 409. + // + // refused-stream: Proxy will retry if the destination resets the stream + // with a REFUSED_STREAM error code. This reset type indicates that it + // is safe to retry. + repeated string retry_conditions = 1; + + // Specifies the allowed number of retries. This number must be > 0. If not + // specified, default to 1. + int32 num_retries = 2; + + // Specifies a non-zero timeout per retry attempt. + google.protobuf.Duration per_try_timeout = 3; + } + + // Specifies the policy on how requests are shadowed to a separate mirrored + // destination service. The proxy does not wait for responses from the + // shadow service. Prior to sending traffic to the shadow service, the + // host/authority header is suffixed with -shadow. + message RequestMirrorPolicy { + // The destination the requests will be mirrored to. The weight of the + // destination will be ignored. + Destination destination = 1; + } + + // The Specification for allowing client side cross-origin requests. + message CorsPolicy { + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allow_origins or + // an item in allow_origin_regexes. + repeated string allow_origins = 1; + + // Specifies the regular expression patterns that match allowed origins. For + // regular expression grammar, please see + // https://github.com/google/re2/wiki/Syntax. + repeated string allow_origin_regexes = 2; + + // Specifies the content for Access-Control-Allow-Methods header. + repeated string allow_methods = 3; + + // Specifies the content for Access-Control-Allow-Headers header. + repeated string allow_headers = 4; + + // Specifies the content for Access-Control-Expose-Headers header. + repeated string expose_headers = 5; + + // Specifies how long result of a preflight request can be cached in + // seconds. This translates to the Access-Control-Max-Age header. + string max_age = 6; + + // In response to a preflight request, setting this to true indicates that + // the actual request can include user credentials. This translates to the + // Access-Control-Allow-Credentials header. + // + // Default value is false. + bool allow_credentials = 7; + + // If true, the CORS policy is disabled. The default value is false, which + // indicates that the CORS policy is in effect. + bool disabled = 8; + } + + // The specifications for routing traffic and applying associated policies. + message RouteAction { + // The destination to which traffic should be forwarded. + repeated Destination destinations = 1; + + // If set, the request is directed as configured by this field. + Redirect redirect = 2; + + // 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 on a percentage of requests before sending those requests to + // the backend service. Similarly requests from clients can be aborted for a + // percentage of requests. + // + // timeout and retry_policy will be ignored by clients that are configured + // with a fault_injection_policy + FaultInjectionPolicy fault_injection_policy = 4; + + // The specification for modifying the headers of a matching request prior + // to delivery of the request to the destination. + HeaderModifier request_header_modifier = 5; + + // The specification for modifying the headers of a response prior to + // sending the response back to the client. + HeaderModifier response_header_modifier = 6; + + // The specification for rewrite URL before forwarding requests to the + // destination. + URLRewrite url_rewrite = 7; + + // Specifies the timeout for selected route. Timeout is computed from the + // time the request has been fully processed (i.e. end of stream) up until + // the response has been completely processed. Timeout includes all retries. + google.protobuf.Duration timeout = 8; + + // Specifies the retry policy associated with this route. + RetryPolicy retry_policy = 9; + + // Specifies the policy on how requests intended for the routes destination + // are shadowed to a separate mirrored destination. Proxy will not wait for + // the shadow destination to respond before returning the response. Prior to + // sending traffic to the shadow service, the host/authority header is + // suffixed with -shadow. + RequestMirrorPolicy request_mirror_policy = 10; + + // The specification for allowing client side cross-origin requests. + CorsPolicy cors_policy = 11; + } + + // Specifies how to match traffic and how to route traffic when traffic is + // matched. + message RouteRule { + // A list of matches define conditions used for matching the rule against + // incoming HTTP requests. Each match is independent, i.e. this rule will be + // matched if ANY one of the matches is satisfied. + // + // If no matches field is specified, this rule will unconditionally match + // traffic. + // + // If a default rule is desired to be configured, add a rule with no matches + // specified to the end of the rules list. + repeated RouteMatch matches = 1; + + // The detailed rule defining how to route matched traffic. + RouteAction action = 2; + } + + // Required. Name of the HttpRoute resource. It matches pattern + // `projects/*/locations/global/httpRoutes/http_route_name>`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server-defined URL of this resource + string self_link = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A free-text description of the resource. Max length 1024 characters. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Hostnames define a set of hosts that should match against the HTTP host + // header to select a HttpRoute to process the request. Hostname is the fully + // qualified domain name of a network host, as defined by RFC 1123 with the + // exception that: + // - IPs are not allowed. + // - A hostname may be prefixed with a wildcard label (*.). The wildcard + // label must appear by itself as the first label. + // + // Hostname can be "precise" which is a domain name without the terminating + // dot of a network host (e.g. "foo.example.com") or "wildcard", which is a + // domain name prefixed with a single wildcard label (e.g. *.example.com). + // + // Note that as per RFC1035 and RFC1123, a label must consist of lower case + // alphanumeric characters or '-', and must start and end with an alphanumeric + // character. No other punctuation is allowed. + // + // The routes associated with a Mesh or Gateways must have unique hostnames. + // If you attempt to attach multiple routes with conflicting hostnames, + // the configuration will be rejected. + // + // For example, while it is acceptable for routes for the hostnames + // "*.foo.bar.com" and "*.bar.com" to be associated with the same Mesh (or + // Gateways under the same scope), it is not possible to associate two routes + // both with "*.bar.com" or both with "bar.com". + repeated string hostnames = 5 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Meshes defines a list of meshes this HttpRoute is attached to, as one of + // the routing rules to route the requests served by the mesh. + // + // Each mesh reference should match the pattern: + // `projects/*/locations/global/meshes/` + // + // The attached Mesh should be of a type SIDECAR + repeated string meshes = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Mesh" + } + ]; + + // Optional. Gateways defines a list of gateways this HttpRoute is attached to, as one + // of the routing rules to route the requests served by the gateway. + // + // Each gateway reference should match the pattern: + // `projects/*/locations/global/gateways/` + repeated string gateways = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Gateway" + } + ]; + + // Optional. Set of label tags associated with the HttpRoute resource. + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Rules that define how traffic is routed and handled. + // Rules will be matched sequentially based on the RouteMatch specified for + // the rule. + repeated RouteRule rules = 6 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used with the ListHttpRoutes method. +message ListHttpRoutesRequest { + // Required. The project and location from which the HttpRoutes should be + // listed, specified in the format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/HttpRoute" + } + ]; + + // Maximum number of HttpRoutes to return per call. + int32 page_size = 2; + + // The value returned by the last `ListHttpRoutesResponse` + // Indicates that this is a continuation of a prior `ListHttpRoutes` call, + // and that the system should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListHttpRoutes method. +message ListHttpRoutesResponse { + // List of HttpRoute resources. + repeated HttpRoute http_routes = 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; +} + +// Request used by the GetHttpRoute method. +message GetHttpRouteRequest { + // Required. A name of the HttpRoute to get. Must be in the format + // `projects/*/locations/global/httpRoutes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/HttpRoute" + } + ]; +} + +// Request used by the HttpRoute method. +message CreateHttpRouteRequest { + // Required. The parent resource of the HttpRoute. Must be in the + // format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/HttpRoute" + } + ]; + + // Required. Short name of the HttpRoute resource to be created. + string http_route_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. HttpRoute resource to be created. + HttpRoute http_route = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the UpdateHttpRoute method. +message UpdateHttpRouteRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // HttpRoute 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) = OPTIONAL]; + + // Required. Updated HttpRoute resource. + HttpRoute http_route = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteHttpRoute method. +message DeleteHttpRouteRequest { + // Required. A name of the HttpRoute to delete. Must be in the format + // `projects/*/locations/global/httpRoutes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/HttpRoute" + } + ]; +} diff --git a/google/cloud/networkservices/v1/mesh.proto b/google/cloud/networkservices/v1/mesh.proto new file mode 100644 index 000000000..6a7bf5504 --- /dev/null +++ b/google/cloud/networkservices/v1/mesh.proto @@ -0,0 +1,153 @@ +// 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.cloud.networkservices.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.NetworkServices.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; +option java_multiple_files = true; +option java_outer_classname = "MeshProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; + +// Mesh represents a logical configuration grouping for workload to workload +// communication within a service mesh. Routes that point to mesh dictate how +// requests are routed within this logical mesh boundary. +message Mesh { + option (google.api.resource) = { + type: "networkservices.googleapis.com/Mesh" + pattern: "projects/{project}/locations/{location}/meshes/{mesh}" + }; + + // Required. Name of the Mesh resource. It matches pattern + // `projects/*/locations/global/meshes/`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server-defined URL of this resource + string self_link = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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. Set of label tags associated with the Mesh resource. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A free-text description of the resource. Max length 1024 characters. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to a valid TCP port (1-65535), instructs the SIDECAR proxy to listen + // on the specified port of localhost (127.0.0.1) address. The SIDECAR proxy + // will expect all traffic to be redirected to this port regardless of its + // actual ip:port destination. If unset, a port '15001' is used as the + // interception port. This will is applicable only for sidecar proxy + // deployments. + int32 interception_port = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request used with the ListMeshes method. +message ListMeshesRequest { + // Required. The project and location from which the Meshes should be + // listed, specified in the format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/Mesh" + } + ]; + + // Maximum number of Meshes to return per call. + int32 page_size = 2; + + // The value returned by the last `ListMeshesResponse` + // Indicates that this is a continuation of a prior `ListMeshes` call, + // and that the system should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListMeshes method. +message ListMeshesResponse { + // List of Mesh resources. + repeated Mesh meshes = 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; +} + +// Request used by the GetMesh method. +message GetMeshRequest { + // Required. A name of the Mesh to get. Must be in the format + // `projects/*/locations/global/meshes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Mesh" + } + ]; +} + +// Request used by the CreateMesh method. +message CreateMeshRequest { + // Required. The parent resource of the Mesh. Must be in the + // format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/Mesh" + } + ]; + + // Required. Short name of the Mesh resource to be created. + string mesh_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Mesh resource to be created. + Mesh mesh = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the UpdateMesh method. +message UpdateMeshRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // Mesh 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) = OPTIONAL]; + + // Required. Updated Mesh resource. + Mesh mesh = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteMesh method. +message DeleteMeshRequest { + // Required. A name of the Mesh to delete. Must be in the format + // `projects/*/locations/global/meshes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Mesh" + } + ]; +} diff --git a/google/cloud/networkservices/v1/network_services.proto b/google/cloud/networkservices/v1/network_services.proto index 135cec5e0..74620a683 100644 --- a/google/cloud/networkservices/v1/network_services.proto +++ b/google/cloud/networkservices/v1/network_services.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,6 +19,13 @@ package google.cloud.networkservices.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/cloud/networkservices/v1/endpoint_policy.proto"; +import "google/cloud/networkservices/v1/gateway.proto"; +import "google/cloud/networkservices/v1/grpc_route.proto"; +import "google/cloud/networkservices/v1/http_route.proto"; +import "google/cloud/networkservices/v1/mesh.proto"; +import "google/cloud/networkservices/v1/service_binding.proto"; +import "google/cloud/networkservices/v1/tcp_route.proto"; +import "google/cloud/networkservices/v1/tls_route.proto"; import "google/longrunning/operations.proto"; option csharp_namespace = "Google.Cloud.NetworkServices.V1"; @@ -85,4 +92,369 @@ service NetworkServices { metadata_type: "google.cloud.networkservices.v1.OperationMetadata" }; } + + // Lists Gateways in a given project and location. + rpc ListGateways(ListGatewaysRequest) returns (ListGatewaysResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/gateways" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Gateway. + rpc GetGateway(GetGatewayRequest) returns (Gateway) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/gateways/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Gateway in a given project and location. + rpc CreateGateway(CreateGatewayRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/gateways" + body: "gateway" + }; + option (google.api.method_signature) = "parent,gateway,gateway_id"; + option (google.longrunning.operation_info) = { + response_type: "Gateway" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single Gateway. + rpc UpdateGateway(UpdateGatewayRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{gateway.name=projects/*/locations/*/gateways/*}" + body: "gateway" + }; + option (google.api.method_signature) = "gateway,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Gateway" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Deletes a single Gateway. + rpc DeleteGateway(DeleteGatewayRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/gateways/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Lists GrpcRoutes in a given project and location. + rpc ListGrpcRoutes(ListGrpcRoutesRequest) returns (ListGrpcRoutesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/grpcRoutes" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single GrpcRoute. + rpc GetGrpcRoute(GetGrpcRouteRequest) returns (GrpcRoute) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/grpcRoutes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new GrpcRoute in a given project and location. + rpc CreateGrpcRoute(CreateGrpcRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/grpcRoutes" + body: "grpc_route" + }; + option (google.api.method_signature) = "parent,grpc_route,grpc_route_id"; + option (google.longrunning.operation_info) = { + response_type: "GrpcRoute" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single GrpcRoute. + rpc UpdateGrpcRoute(UpdateGrpcRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{grpc_route.name=projects/*/locations/*/grpcRoutes/*}" + body: "grpc_route" + }; + option (google.api.method_signature) = "grpc_route,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "GrpcRoute" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Deletes a single GrpcRoute. + rpc DeleteGrpcRoute(DeleteGrpcRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/grpcRoutes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Lists HttpRoute in a given project and location. + rpc ListHttpRoutes(ListHttpRoutesRequest) returns (ListHttpRoutesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/httpRoutes" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single HttpRoute. + rpc GetHttpRoute(GetHttpRouteRequest) returns (HttpRoute) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/httpRoutes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new HttpRoute in a given project and location. + rpc CreateHttpRoute(CreateHttpRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/httpRoutes" + body: "http_route" + }; + option (google.api.method_signature) = "parent,http_route,http_route_id"; + option (google.longrunning.operation_info) = { + response_type: "HttpRoute" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single HttpRoute. + rpc UpdateHttpRoute(UpdateHttpRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{http_route.name=projects/*/locations/*/httpRoutes/*}" + body: "http_route" + }; + option (google.api.method_signature) = "http_route,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "HttpRoute" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Deletes a single HttpRoute. + rpc DeleteHttpRoute(DeleteHttpRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/httpRoutes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Lists TcpRoute in a given project and location. + rpc ListTcpRoutes(ListTcpRoutesRequest) returns (ListTcpRoutesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/tcpRoutes" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single TcpRoute. + rpc GetTcpRoute(GetTcpRouteRequest) returns (TcpRoute) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/tcpRoutes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new TcpRoute in a given project and location. + rpc CreateTcpRoute(CreateTcpRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/tcpRoutes" + body: "tcp_route" + }; + option (google.api.method_signature) = "parent,tcp_route,tcp_route_id"; + option (google.longrunning.operation_info) = { + response_type: "TcpRoute" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single TcpRoute. + rpc UpdateTcpRoute(UpdateTcpRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{tcp_route.name=projects/*/locations/*/tcpRoutes/*}" + body: "tcp_route" + }; + option (google.api.method_signature) = "tcp_route,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "TcpRoute" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Deletes a single TcpRoute. + rpc DeleteTcpRoute(DeleteTcpRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/tcpRoutes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Lists TlsRoute in a given project and location. + rpc ListTlsRoutes(ListTlsRoutesRequest) returns (ListTlsRoutesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/tlsRoutes" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single TlsRoute. + rpc GetTlsRoute(GetTlsRouteRequest) returns (TlsRoute) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/tlsRoutes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new TlsRoute in a given project and location. + rpc CreateTlsRoute(CreateTlsRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/tlsRoutes" + body: "tls_route" + }; + option (google.api.method_signature) = "parent,tls_route,tls_route_id"; + option (google.longrunning.operation_info) = { + response_type: "TlsRoute" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single TlsRoute. + rpc UpdateTlsRoute(UpdateTlsRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{tls_route.name=projects/*/locations/*/tlsRoutes/*}" + body: "tls_route" + }; + option (google.api.method_signature) = "tls_route,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "TlsRoute" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Deletes a single TlsRoute. + rpc DeleteTlsRoute(DeleteTlsRouteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/tlsRoutes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Lists ServiceBinding in a given project and location. + rpc ListServiceBindings(ListServiceBindingsRequest) returns (ListServiceBindingsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/serviceBindings" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single ServiceBinding. + rpc GetServiceBinding(GetServiceBindingRequest) returns (ServiceBinding) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/serviceBindings/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new ServiceBinding in a given project and location. + rpc CreateServiceBinding(CreateServiceBindingRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/serviceBindings" + body: "service_binding" + }; + option (google.api.method_signature) = "parent,service_binding,service_binding_id"; + option (google.longrunning.operation_info) = { + response_type: "ServiceBinding" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Deletes a single ServiceBinding. + rpc DeleteServiceBinding(DeleteServiceBindingRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/serviceBindings/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Lists Meshes in a given project and location. + rpc ListMeshes(ListMeshesRequest) returns (ListMeshesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/meshes" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Mesh. + rpc GetMesh(GetMeshRequest) returns (Mesh) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/meshes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Mesh in a given project and location. + rpc CreateMesh(CreateMeshRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/meshes" + body: "mesh" + }; + option (google.api.method_signature) = "parent,mesh,mesh_id"; + option (google.longrunning.operation_info) = { + response_type: "Mesh" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Updates the parameters of a single Mesh. + rpc UpdateMesh(UpdateMeshRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{mesh.name=projects/*/locations/*/meshes/*}" + body: "mesh" + }; + option (google.api.method_signature) = "mesh,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Mesh" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } + + // Deletes a single Mesh. + rpc DeleteMesh(DeleteMeshRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/meshes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networkservices.v1.OperationMetadata" + }; + } } diff --git a/google/cloud/networkservices/v1/networkservices_v1.yaml b/google/cloud/networkservices/v1/networkservices_v1.yaml index 70922dd3d..7b0a45ae9 100644 --- a/google/cloud/networkservices/v1/networkservices_v1.yaml +++ b/google/cloud/networkservices/v1/networkservices_v1.yaml @@ -4,7 +4,10 @@ name: networkservices.googleapis.com title: Network Services API apis: +- name: google.cloud.location.Locations - name: google.cloud.networkservices.v1.NetworkServices +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: - name: google.cloud.networkservices.v1.OperationMetadata @@ -65,6 +68,9 @@ http: - get: '/v1/{resource=projects/*/locations/*/edgeCacheOrigins/*}:getIamPolicy' - get: '/v1/{resource=projects/*/locations/*/edgeCacheServices/*}:getIamPolicy' - get: '/v1/{resource=projects/*/locations/*/endpointPolicies/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/serviceBindings/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/meshes/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/gateways/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1/{resource=projects/*/locations/*/edgeCacheKeysets/*}:setIamPolicy' body: '*' @@ -75,6 +81,12 @@ http: body: '*' - post: '/v1/{resource=projects/*/locations/*/endpointPolicies/*}:setIamPolicy' body: '*' + - post: '/v1/{resource=projects/*/locations/*/serviceBindings/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/meshes/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/gateways/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1/{resource=projects/*/locations/*/edgeCacheKeysets/*}:testIamPermissions' body: '*' @@ -85,6 +97,12 @@ http: body: '*' - post: '/v1/{resource=projects/*/locations/*/endpointPolicies/*}:testIamPermissions' body: '*' + - post: '/v1/{resource=projects/*/locations/*/serviceBindings/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/meshes/*}:testIamPermissions' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/gateways/*}:testIamPermissions' + body: '*' - selector: google.longrunning.Operations.CancelOperation post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' body: '*' diff --git a/google/cloud/networkservices/v1/service_binding.proto b/google/cloud/networkservices/v1/service_binding.proto new file mode 100644 index 000000000..234612bcb --- /dev/null +++ b/google/cloud/networkservices/v1/service_binding.proto @@ -0,0 +1,131 @@ +// 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.cloud.networkservices.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.NetworkServices.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; +option java_multiple_files = true; +option java_outer_classname = "ServiceBindingProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; + +// ServiceBinding is the resource that defines a Service Directory Service to +// be used in a BackendService resource. +message ServiceBinding { + option (google.api.resource) = { + type: "networkservices.googleapis.com/ServiceBinding" + pattern: "projects/{project}/locations/{location}/serviceBindings/{service_binding}" + }; + + // Required. Name of the ServiceBinding resource. It matches pattern + // `projects/*/locations/global/serviceBindings/service_binding_name>`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A free-text description of the resource. Max length 1024 characters. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The full service directory service name of the format + // /projects/*/locations/*/namespaces/*/services/* + string service = 5 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Set of label tags associated with the ServiceBinding resource. + map labels = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request used with the ListServiceBindings method. +message ListServiceBindingsRequest { + // Required. The project and location from which the ServiceBindings should be + // listed, specified in the format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/ServiceBinding" + } + ]; + + // Maximum number of ServiceBindings to return per call. + int32 page_size = 2; + + // The value returned by the last `ListServiceBindingsResponse` + // Indicates that this is a continuation of a prior `ListRouters` call, + // and that the system should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListServiceBindings method. +message ListServiceBindingsResponse { + // List of ServiceBinding resources. + repeated ServiceBinding service_bindings = 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; +} + +// Request used by the GetServiceBinding method. +message GetServiceBindingRequest { + // Required. A name of the ServiceBinding to get. Must be in the format + // `projects/*/locations/global/serviceBindings/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/ServiceBinding" + } + ]; +} + +// Request used by the ServiceBinding method. +message CreateServiceBindingRequest { + // Required. The parent resource of the ServiceBinding. Must be in the + // format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/ServiceBinding" + } + ]; + + // Required. Short name of the ServiceBinding resource to be created. + string service_binding_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. ServiceBinding resource to be created. + ServiceBinding service_binding = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteServiceBinding method. +message DeleteServiceBindingRequest { + // Required. A name of the ServiceBinding to delete. Must be in the format + // `projects/*/locations/global/serviceBindings/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/ServiceBinding" + } + ]; +} diff --git a/google/cloud/networkservices/v1/tcp_route.proto b/google/cloud/networkservices/v1/tcp_route.proto new file mode 100644 index 000000000..d0762e7cb --- /dev/null +++ b/google/cloud/networkservices/v1/tcp_route.proto @@ -0,0 +1,251 @@ +// 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.cloud.networkservices.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.NetworkServices.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; +option java_multiple_files = true; +option java_outer_classname = "TcpRouteProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/BackendService" + pattern: "projects/{project}/locations/{location}/backendServices/{backend_service}" +}; + +// TcpRoute is the resource defining how TCP traffic should be routed by a +// Mesh/Gateway resource. +message TcpRoute { + option (google.api.resource) = { + type: "networkservices.googleapis.com/TcpRoute" + pattern: "projects/{project}/locations/{location}/tcpRoutes/{tcp_route}" + }; + + // Specifies how to match traffic and how to route traffic when traffic is + // matched. + message RouteRule { + // Optional. RouteMatch defines the predicate used to match requests to a given + // action. Multiple match types are "OR"ed for evaluation. + // If no routeMatch field is specified, this rule will unconditionally match + // traffic. + repeated RouteMatch matches = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The detailed rule defining how to route matched traffic. + RouteAction action = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // RouteMatch defines the predicate used to match requests to a given action. + // Multiple match types are "OR"ed for evaluation. + // If no routeMatch field is specified, this rule will unconditionally match + // traffic. + message RouteMatch { + // Required. Must be specified in the CIDR range format. A CIDR range consists of an + // IP Address and a prefix length to construct the subnet mask. By default, + // the prefix length is 32 (i.e. matches a single IP address). Only IPV4 + // addresses are supported. + // Examples: + // "10.0.0.1" - matches against this exact IP address. + // "10.0.0.0/8" - matches against any IP address within the 10.0.0.0 subnet + // and 255.255.255.0 mask. + // "0.0.0.0/0" - matches against any IP address'. + string address = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies the destination port to match against. + string port = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // The specifications for routing traffic and applying associated policies. + message RouteAction { + // Optional. The destination services to which traffic should be forwarded. At least + // one destination service is required. + repeated RouteDestination destinations = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, Router will use the destination IP and port of the original + // connection as the destination of the request. Default is false. + bool original_destination = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Describe the destination for traffic to be routed to. + message RouteDestination { + // Required. The URL of a BackendService to route traffic to. + string service_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/BackendService" + } + ]; + + // Optional. Specifies the proportion of requests forwarded to the backend referenced + // by the serviceName field. This is computed as: + // weight/Sum(weights in this destination list). + // For non-zero values, there may be some epsilon from the exact proportion + // defined here depending on the precision an implementation supports. + // + // If only one serviceName is specified and it has a weight greater than 0, + // 100% of the traffic is forwarded to that backend. + // + // If weights are specified for any one service name, they need to be + // specified for all of them. + // + // If weights are unspecified for all services, then, traffic is distributed + // in equal proportions to all of them. + int32 weight = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Name of the TcpRoute resource. It matches pattern + // `projects/*/locations/global/tcpRoutes/tcp_route_name>`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server-defined URL of this resource + string self_link = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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 free-text description of the resource. Max length 1024 characters. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Rules that define how traffic is routed and handled. At least one RouteRule + // must be supplied. If there are multiple rules then the action taken will be + // the first rule to match. + repeated RouteRule rules = 5 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one of the + // routing rules to route the requests served by the mesh. + // + // Each mesh reference should match the pattern: + // `projects/*/locations/global/meshes/` + // + // The attached Mesh should be of a type SIDECAR + repeated string meshes = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Mesh" + } + ]; + + // Optional. Gateways defines a list of gateways this TcpRoute is attached to, as one of + // the routing rules to route the requests served by the gateway. + // + // Each gateway reference should match the pattern: + // `projects/*/locations/global/gateways/` + repeated string gateways = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Gateway" + } + ]; + + // Optional. Set of label tags associated with the TcpRoute resource. + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request used with the ListTcpRoutes method. +message ListTcpRoutesRequest { + // Required. The project and location from which the TcpRoutes should be + // listed, specified in the format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/TcpRoute" + } + ]; + + // Maximum number of TcpRoutes to return per call. + int32 page_size = 2; + + // The value returned by the last `ListTcpRoutesResponse` + // Indicates that this is a continuation of a prior `ListTcpRoutes` call, + // and that the system should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListTcpRoutes method. +message ListTcpRoutesResponse { + // List of TcpRoute resources. + repeated TcpRoute tcp_routes = 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; +} + +// Request used by the GetTcpRoute method. +message GetTcpRouteRequest { + // Required. A name of the TcpRoute to get. Must be in the format + // `projects/*/locations/global/tcpRoutes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/TcpRoute" + } + ]; +} + +// Request used by the TcpRoute method. +message CreateTcpRouteRequest { + // Required. The parent resource of the TcpRoute. Must be in the + // format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/TcpRoute" + } + ]; + + // Required. Short name of the TcpRoute resource to be created. E.g. TODO(Add an + // example). + string tcp_route_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. TcpRoute resource to be created. + TcpRoute tcp_route = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the UpdateTcpRoute method. +message UpdateTcpRouteRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // TcpRoute 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) = OPTIONAL]; + + // Required. Updated TcpRoute resource. + TcpRoute tcp_route = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteTcpRoute method. +message DeleteTcpRouteRequest { + // Required. A name of the TcpRoute to delete. Must be in the format + // `projects/*/locations/global/tcpRoutes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/TcpRoute" + } + ]; +} diff --git a/google/cloud/networkservices/v1/tls_route.proto b/google/cloud/networkservices/v1/tls_route.proto new file mode 100644 index 000000000..9fff5e35f --- /dev/null +++ b/google/cloud/networkservices/v1/tls_route.proto @@ -0,0 +1,230 @@ +// 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.cloud.networkservices.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.NetworkServices.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices"; +option java_multiple_files = true; +option java_outer_classname = "TlsRouteProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; + +// TlsRoute defines how traffic should be routed based on SNI and other matching +// L3 attributes. +message TlsRoute { + option (google.api.resource) = { + type: "networkservices.googleapis.com/TlsRoute" + pattern: "projects/{project}/locations/{location}/tlsRoutes/{tls_route}" + }; + + // Specifies how to match traffic and how to route traffic when traffic is + // matched. + message RouteRule { + // Required. RouteMatch defines the predicate used to match requests to a given + // action. Multiple match types are "OR"ed for evaluation. + repeated RouteMatch matches = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The detailed rule defining how to route matched traffic. + RouteAction action = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // RouteMatch defines the predicate used to match requests to a given action. + // Multiple match types are "AND"ed for evaluation. + // If no routeMatch field is specified, this rule will unconditionally match + // traffic. + message RouteMatch { + // Optional. SNI (server name indicator) to match against. + // SNI will be matched against all wildcard domains, i.e. www.example.com + // will be first matched against www.example.com, then *.example.com, then + // *.com. + // Partial wildcards are not supported, and values like *w.example.com are + // invalid. + // At least one of sni_host and alpn is required. + // Up to 5 sni hosts across all matches can be set. + repeated string sni_host = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. ALPN (Application-Layer Protocol Negotiation) to match against. + // Examples: "http/1.1", "h2". + // At least one of sni_host and alpn is required. + // Up to 5 alpns across all matches can be set. + repeated string alpn = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // The specifications for routing traffic and applying associated policies. + message RouteAction { + // Required. The destination services to which traffic should be forwarded. At least + // one destination service is required. + repeated RouteDestination destinations = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Describe the destination for traffic to be routed to. + message RouteDestination { + // Required. The URL of a BackendService to route traffic to. + string service_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/BackendService" + } + ]; + + // Optional. Specifies the proportion of requests forwareded to the backend referenced + // by the service_name field. This is computed as: + // weight/Sum(weights in destinations) + // Weights in all destinations does not need to sum up to 100. + int32 weight = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Name of the TlsRoute resource. It matches pattern + // `projects/*/locations/global/tlsRoutes/tls_route_name>`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Server-defined URL of this resource + string self_link = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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 free-text description of the resource. Max length 1024 characters. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Rules that define how traffic is routed and handled. At least one RouteRule + // must be supplied. If there are multiple rules then the action taken will be + // the first rule to match. + repeated RouteRule rules = 5 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Meshes defines a list of meshes this TlsRoute is attached to, as one of the + // routing rules to route the requests served by the mesh. + // + // Each mesh reference should match the pattern: + // `projects/*/locations/global/meshes/` + // + // The attached Mesh should be of a type SIDECAR + repeated string meshes = 6 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Mesh" + } + ]; + + // Optional. Gateways defines a list of gateways this TlsRoute is attached to, as one of + // the routing rules to route the requests served by the gateway. + // + // Each gateway reference should match the pattern: + // `projects/*/locations/global/gateways/` + repeated string gateways = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/Gateway" + } + ]; +} + +// Request used with the ListTlsRoutes method. +message ListTlsRoutesRequest { + // Required. The project and location from which the TlsRoutes should be + // listed, specified in the format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/TlsRoute" + } + ]; + + // Maximum number of TlsRoutes to return per call. + int32 page_size = 2; + + // The value returned by the last `ListTlsRoutesResponse` + // Indicates that this is a continuation of a prior `ListTlsRoutes` call, + // and that the system should return the next page of data. + string page_token = 3; +} + +// Response returned by the ListTlsRoutes method. +message ListTlsRoutesResponse { + // List of TlsRoute resources. + repeated TlsRoute tls_routes = 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; +} + +// Request used by the GetTlsRoute method. +message GetTlsRouteRequest { + // Required. A name of the TlsRoute to get. Must be in the format + // `projects/*/locations/global/tlsRoutes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/TlsRoute" + } + ]; +} + +// Request used by the TlsRoute method. +message CreateTlsRouteRequest { + // Required. The parent resource of the TlsRoute. Must be in the + // format `projects/*/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/TlsRoute" + } + ]; + + // Required. Short name of the TlsRoute resource to be created. E.g. TODO(Add an + // example). + string tls_route_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. TlsRoute resource to be created. + TlsRoute tls_route = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the UpdateTlsRoute method. +message UpdateTlsRouteRequest { + // Optional. Field mask is used to specify the fields to be overwritten in the + // TlsRoute 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) = OPTIONAL]; + + // Required. Updated TlsRoute resource. + TlsRoute tls_route = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request used by the DeleteTlsRoute method. +message DeleteTlsRouteRequest { + // Required. A name of the TlsRoute to delete. Must be in the format + // `projects/*/locations/global/tlsRoutes/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/TlsRoute" + } + ]; +} diff --git a/google/cloud/networkservices/v1beta1/BUILD.bazel b/google/cloud/networkservices/v1beta1/BUILD.bazel index 7d12787f9..d890aa5b0 100644 --- a/google/cloud/networkservices/v1beta1/BUILD.bazel +++ b/google/cloud/networkservices/v1beta1/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":networkservices_java_grpc", ], + transport = "grpc+rest", deps = [ ":networkservices_java_proto", "//google/api:api_java_proto", @@ -85,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "networkservices_java_gapic_test_suite", test_classes = [ + "com.google.cloud.networkservices.v1beta1.NetworkServicesClientHttpJsonTest", "com.google.cloud.networkservices.v1beta1.NetworkServicesClientTest", ], runtime_deps = [":networkservices_java_gapic_test"], @@ -93,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-networkservices-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":networkservices_java_gapic", ":networkservices_java_grpc", @@ -130,6 +134,7 @@ go_gapic_library( importpath = "cloud.google.com/go/networkservices/apiv1beta1;networkservices", metadata = True, service_yaml = "networkservices_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":networkservices_go_proto", "//google/longrunning:longrunning_go_proto", @@ -163,12 +168,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "networkservices_py_gapic", srcs = [":networkservices_proto"], grpc_service_config = "networkservices_v1beta1_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "networkservices_py_gapic_test", + srcs = [ + "networkservices_py_gapic_pytest.py", + "networkservices_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":networkservices_py_gapic"], ) # Open Source Packages @@ -320,6 +337,7 @@ csharp_gapic_library( srcs = [":networkservices_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "networkservices_v1beta1_grpc_service_config.json", + service_yaml = "networkservices_v1beta1.yaml", deps = [ ":networkservices_csharp_grpc", ":networkservices_csharp_proto", diff --git a/google/cloud/networkservices/v1beta1/common.proto b/google/cloud/networkservices/v1beta1/common.proto index c26eec023..5eb410469 100644 --- a/google/cloud/networkservices/v1beta1/common.proto +++ b/google/cloud/networkservices/v1beta1/common.proto @@ -18,7 +18,6 @@ package google.cloud.networkservices.v1beta1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkServices.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1beta1;networkservices"; diff --git a/google/cloud/networkservices/v1beta1/endpoint_policy.proto b/google/cloud/networkservices/v1beta1/endpoint_policy.proto index 0617c28ed..51315dd8b 100644 --- a/google/cloud/networkservices/v1beta1/endpoint_policy.proto +++ b/google/cloud/networkservices/v1beta1/endpoint_policy.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/networkservices/v1beta1/common.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.NetworkServices.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1beta1;networkservices"; diff --git a/google/cloud/notebooks/BUILD.bazel b/google/cloud/notebooks/BUILD.bazel index a4d43bf67..7d224824d 100644 --- a/google/cloud/notebooks/BUILD.bazel +++ b/google/cloud/notebooks/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-notebooks", "ruby-cloud-env-prefix=NOTEBOOKS", - "ruby-cloud-wrapper-of=v1beta1:0.0", + "ruby-cloud-wrapper-of=v1:0.0;v1beta1:0.0", "ruby-cloud-product-url=https://cloud.google.com/ai-platform-notebooks", "ruby-cloud-api-id=notebooks.googleapis.com", "ruby-cloud-api-shortname=notebooks", diff --git a/google/cloud/notebooks/logging/v1/BUILD.bazel b/google/cloud/notebooks/logging/v1/BUILD.bazel new file mode 100644 index 000000000..b3b993aa2 --- /dev/null +++ b/google/cloud/notebooks/logging/v1/BUILD.bazel @@ -0,0 +1,177 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "runtime_log.proto", + ], + deps = [ + "//google/api:field_behavior_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/notebooks/logging/v1", + protos = [":logging_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "//google/api:field_behavior_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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/notebooks/logging/v1/runtime_log.proto b/google/cloud/notebooks/logging/v1/runtime_log.proto new file mode 100644 index 000000000..8fce277d4 --- /dev/null +++ b/google/cloud/notebooks/logging/v1/runtime_log.proto @@ -0,0 +1,44 @@ +// 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.cloud.notebooks.logging.v1; + +import "google/api/field_behavior.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/notebooks/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "RuntimeLogProto"; +option java_package = "com.google.cloud.notebooks.logging.v1"; + +// Defines protos for runtime related platform logs + +// Log content of an event related to a runtime. +message RuntimeEvent { + // Defines event type. + enum EventType { + // Event is not specified. + EVENT_TYPE_UNSPECIFIED = 0; + + // Runtime state has been updated. + RUNTIME_STATE_CHANGE_EVENT = 1; + } + + // Required. Type of event. + EventType type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Additional metadata for the event. + map details = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/notebooks/v1/BUILD.bazel b/google/cloud/notebooks/v1/BUILD.bazel index 4cfe1263c..a9c117d89 100644 --- a/google/cloud/notebooks/v1/BUILD.bazel +++ b/google/cloud/notebooks/v1/BUILD.bazel @@ -45,8 +45,8 @@ proto_library_with_info( name = "notebooks_proto_with_info", deps = [ ":notebooks_proto", - "//google/cloud/location:location_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -103,6 +103,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-notebooks-v1-java", + include_samples = True, deps = [ ":notebooks_java_gapic", ":notebooks_java_grpc", @@ -132,8 +133,8 @@ go_proto_library( protos = [":notebooks_proto"], deps = [ "//google/api:annotations_go_proto", - "//google/longrunning:longrunning_go_proto", "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_proto", ], ) @@ -142,14 +143,14 @@ go_gapic_library( srcs = [":notebooks_proto_with_info"], grpc_service_config = "notebooks_grpc_service_config.json", importpath = "cloud.google.com/go/notebooks/apiv1;notebooks", - service_yaml = "notebooks_v1.yaml", metadata = True, + service_yaml = "notebooks_v1.yaml", deps = [ ":notebooks_go_proto", + "//google/cloud/location:location_go_proto", "//google/longrunning:longrunning_go_proto", - "//google/cloud/location:location_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_library", "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", ], ) @@ -165,8 +166,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-notebooks-v1-go", deps = [ ":notebooks_go_gapic", - ":notebooks_go_gapic_srcjar-test.srcjar", ":notebooks_go_gapic_srcjar-metadata.srcjar", + ":notebooks_go_gapic_srcjar-test.srcjar", ":notebooks_go_proto", ], ) @@ -178,12 +179,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "notebooks_py_gapic", srcs = [":notebooks_proto"], grpc_service_config = "notebooks_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "notebooks_py_gapic_test", + srcs = [ + "notebooks_py_gapic_pytest.py", + "notebooks_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":notebooks_py_gapic"], ) # Open Source Packages @@ -270,8 +283,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -343,6 +356,7 @@ csharp_gapic_library( srcs = [":notebooks_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "notebooks_grpc_service_config.json", + service_yaml = "notebooks_v1.yaml", deps = [ ":notebooks_csharp_grpc", ":notebooks_csharp_proto", diff --git a/google/cloud/notebooks/v1/environment.proto b/google/cloud/notebooks/v1/environment.proto index 76b1a2adb..1aff9bab7 100644 --- a/google/cloud/notebooks/v1/environment.proto +++ b/google/cloud/notebooks/v1/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -69,7 +69,7 @@ message Environment { // notebook instance with the environment installed directly on the VM. message VmImage { // Required. The name of the Google Cloud project that this VM image belongs to. - // Format: `projects/{project_id}` + // Format: `{project_id}` string project = 1 [(google.api.field_behavior) = REQUIRED]; // The reference to an external Compute Engine VM image. diff --git a/google/cloud/notebooks/v1/event.proto b/google/cloud/notebooks/v1/event.proto index 8753de659..bb0c91cf4 100644 --- a/google/cloud/notebooks/v1/event.proto +++ b/google/cloud/notebooks/v1/event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.notebooks.v1; +import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/notebooks/v1;notebooks"; @@ -25,13 +26,28 @@ option java_package = "com.google.cloud.notebooks.v1"; // The definition of an Event for a managed / semi-managed notebook instance. message Event { - // The definition of the even types. + // The definition of the event types. enum EventType { // Event is not specified. EVENT_TYPE_UNSPECIFIED = 0; // The instance / runtime is idle IDLE = 1; + + // The instance / runtime is available. + // This event indicates that instance / runtime underlying compute is + // operational. + HEARTBEAT = 2; + + // The instance / runtime health is available. + // This event indicates that instance / runtime health information. + HEALTH = 3; + + // The instance / runtime is available. + // This event allows instance / runtime to send Host maintenance + // information to Control Plane. + // https://cloud.google.com/compute/docs/gpus/gpu-host-maintenance + MAINTENANCE = 4; } // Event report time. @@ -39,4 +55,7 @@ message Event { // Event type. EventType type = 2; + + // Optional. Event details. This field is used to pass event information. + map details = 3 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/notebooks/v1/execution.proto b/google/cloud/notebooks/v1/execution.proto index cf341b948..03940f3a0 100644 --- a/google/cloud/notebooks/v1/execution.proto +++ b/google/cloud/notebooks/v1/execution.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -24,28 +24,13 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/notebooks/v1;no option java_multiple_files = true; option java_outer_classname = "ExecutionProto"; option java_package = "com.google.cloud.notebooks.v1"; +option (google.api.resource_definition) = { + type: "aiplatform.googleapis.com/Tensorboard" + pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}" +}; // The description a notebook execution workload. message ExecutionTemplate { - // Definition of a hardware accelerator. Note that not all combinations - // of `type` and `core_count` are valid. Check GPUs on - // Compute Engine to find a valid - // combination. TPUs are not supported. - message SchedulerAcceleratorConfig { - // Type of this accelerator. - SchedulerAcceleratorType type = 1; - - // Count of cores of this accelerator. - int64 core_count = 2; - } - - // Parameters used in Dataproc JobType executions. - message DataprocParameters { - // URI for cluster used to run Dataproc execution. - // Format: `projects/{PROJECT_ID}/regions/{REGION}/clusters/{CLUSTER_NAME}` - string cluster = 1; - } - // Required. Specifies the machine types, the number of replicas for workers // and parameter servers. enum ScaleTier { @@ -72,25 +57,9 @@ message ExecutionTemplate { // own cluster specification. When you use this tier, set values to // configure your processing cluster according to these guidelines: // - // * You _must_ set `TrainingInput.masterType` to specify the type + // * You _must_ set `ExecutionTemplate.masterType` to specify the type // of machine to use for your master node. This is the only required // setting. - // - // * You _may_ set `TrainingInput.workerCount` to specify the number of - // workers to use. If you specify one or more workers, you _must_ also - // set `TrainingInput.workerType` to specify the type of machine to use - // for your worker nodes. - // - // * You _may_ set `TrainingInput.parameterServerCount` to specify the - // number of parameter servers to use. If you specify one or more - // parameter servers, you _must_ also set - // `TrainingInput.parameterServerType` to specify the type of machine to - // use for your parameter servers. - // - // Note that all of your workers must use the same machine type, which can - // be different from your parameter server type and master type. Your - // parameter servers must likewise use the same machine type, which can be - // different from your worker type and master type. CUSTOM = 6; } @@ -114,6 +83,9 @@ message ExecutionTemplate { // Nvidia Tesla T4 GPU. NVIDIA_TESLA_T4 = 5; + // Nvidia Tesla A100 GPU. + NVIDIA_TESLA_A100 = 10; + // TPU v2. TPU_V2 = 6; @@ -121,6 +93,18 @@ message ExecutionTemplate { TPU_V3 = 7; } + // Definition of a hardware accelerator. Note that not all combinations + // of `type` and `core_count` are valid. Check [GPUs on + // Compute Engine](https://cloud.google.com/compute/docs/gpus) to find a valid + // combination. TPUs are not supported. + message SchedulerAcceleratorConfig { + // Type of this accelerator. + SchedulerAcceleratorType type = 1; + + // Count of cores of this accelerator. + int64 core_count = 2; + } + // The backend used for this execution. enum JobType { // No type specified. @@ -135,6 +119,33 @@ message ExecutionTemplate { DATAPROC = 2; } + // Parameters used in Dataproc JobType executions. + message DataprocParameters { + // URI for cluster used to run Dataproc execution. + // Format: `projects/{PROJECT_ID}/regions/{REGION}/clusters/{CLUSTER_NAME}` + string cluster = 1; + } + + // Parameters used in Vertex AI JobType executions. + message VertexAIParameters { + // The full name of the Compute Engine + // [network](/compute/docs/networks-and-firewalls#networks) to which the Job + // should be peered. For example, `projects/12345/global/networks/myVPC`. + // [Format](https://cloud.google.com/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. + // + // Private services access must already be configured for the network. If + // left unspecified, the job is not peered with any network. + string network = 1; + + // Environment variables. + // At most 100 environment variables can be specified and unique. + // Example: GCP_BUCKET=gs://my-bucket/samples/ + map env = 2; + } + // Required. Scale tier of the hardware used for notebook execution. // DEPRECATED Will be discontinued. As right now only CUSTOM is supported. ScaleTier scale_tier = 1 [ @@ -188,7 +199,8 @@ message ExecutionTemplate { // // Finally, if you want to use a TPU for training, specify `cloud_tpu` in this // field. Learn more about the [special configuration options for training - // with TPU. + // with + // TPU](https://cloud.google.com/ai-platform/training/docs/using-tpus#configuring_a_custom_tpu_machine). string master_type = 2; // Configuration (count and accelerator type) for hardware running notebook @@ -204,7 +216,7 @@ message ExecutionTemplate { // Path to the notebook file to execute. // Must be in a Google Cloud Storage bucket. - // Format: `gs://{project_id}/{folder}/{notebook_file_name}` + // Format: `gs://{bucket_name}/{folder}/{notebook_file_name}` // Ex: `gs://notebook_user/scheduled_notebooks/sentiment_notebook.ipynb` string input_notebook_file = 5; @@ -216,7 +228,7 @@ message ExecutionTemplate { // Path to the notebook folder to write to. // Must be in a Google Cloud Storage bucket path. - // Format: `gs://{project_id}/{folder}` + // Format: `gs://{bucket_name}/{folder}` // Ex: `gs://notebook_user/scheduled_notebooks` string output_notebook_folder = 7; @@ -243,7 +255,23 @@ message ExecutionTemplate { oneof job_parameters { // Parameters used in Dataproc JobType executions. DataprocParameters dataproc_parameters = 12; + + // Parameters used in Vertex AI JobType executions. + VertexAIParameters vertex_ai_parameters = 13; } + + // Name of the kernel spec to use. This must be specified if the + // kernel spec name on the execution target does not match the name in the + // input notebook file. + string kernel_spec = 14; + + // The name of a Vertex AI [Tensorboard] resource to which this execution + // will upload Tensorboard logs. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` + string tensorboard = 15 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Tensorboard" + }]; } // The definition of a single executed notebook. @@ -282,7 +310,7 @@ message Execution { // `error_message` should describe the reason for the cancellation. CANCELLED = 7; - // The jobs has become expired (added for uCAIP jobs) + // The job has become expired (relevant to Vertex AI jobs) // https://cloud.google.com/vertex-ai/docs/reference/rest/v1/JobState EXPIRED = 9; @@ -294,7 +322,7 @@ message Execution { ExecutionTemplate execution_template = 1; // Output only. The resource name of the execute. Format: - // `projects/{project_id}/locations/{location}/execution/{execution_id}` + // `projects/{project_id}/locations/{location}/executions/{execution_id}` string name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Name used for UI purposes. diff --git a/google/cloud/notebooks/v1/instance.proto b/google/cloud/notebooks/v1/instance.proto index 0e6ca82e0..c75944482 100644 --- a/google/cloud/notebooks/v1/instance.proto +++ b/google/cloud/notebooks/v1/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -64,6 +64,46 @@ message Instance { pattern: "projects/{project}/instances/{instance}" }; + // Definition of the types of hardware accelerators that can be used on this + // instance. + enum AcceleratorType { + // Accelerator type is not specified. + ACCELERATOR_TYPE_UNSPECIFIED = 0; + + // Accelerator type is Nvidia Tesla K80. + NVIDIA_TESLA_K80 = 1; + + // Accelerator type is Nvidia Tesla P100. + NVIDIA_TESLA_P100 = 2; + + // Accelerator type is Nvidia Tesla V100. + NVIDIA_TESLA_V100 = 3; + + // Accelerator type is Nvidia Tesla P4. + NVIDIA_TESLA_P4 = 4; + + // Accelerator type is Nvidia Tesla T4. + NVIDIA_TESLA_T4 = 5; + + // Accelerator type is Nvidia Tesla A100. + NVIDIA_TESLA_A100 = 11; + + // Accelerator type is NVIDIA Tesla T4 Virtual Workstations. + NVIDIA_TESLA_T4_VWS = 8; + + // Accelerator type is NVIDIA Tesla P100 Virtual Workstations. + NVIDIA_TESLA_P100_VWS = 9; + + // Accelerator type is NVIDIA Tesla P4 Virtual Workstations. + NVIDIA_TESLA_P4_VWS = 10; + + // (Coming soon) Accelerator type is TPU V2. + TPU_V2 = 6; + + // (Coming soon) Accelerator type is TPU V3. + TPU_V3 = 7; + } + // Definition of a hardware accelerator. Note that not all combinations // of `type` and `core_count` are valid. Check [GPUs on // Compute Engine](/compute/docs/gpus/#gpus-list) to find a valid @@ -76,6 +116,76 @@ message Instance { int64 core_count = 2; } + // The definition of the states of this instance. + enum State { + // State is not specified. + STATE_UNSPECIFIED = 0; + + // The control logic is starting the instance. + STARTING = 1; + + // The control logic is installing required frameworks and registering the + // instance with notebook proxy + PROVISIONING = 2; + + // The instance is running. + ACTIVE = 3; + + // The control logic is stopping the instance. + STOPPING = 4; + + // The instance is stopped. + STOPPED = 5; + + // The instance is deleted. + DELETED = 6; + + // The instance is upgrading. + UPGRADING = 7; + + // The instance is being created. + INITIALIZING = 8; + + // The instance is getting registered. + REGISTERING = 9; + + // The instance is suspending. + SUSPENDING = 10; + + // The instance is suspended. + SUSPENDED = 11; + } + + // Possible disk types for notebook instances. + enum DiskType { + // Disk type not set. + DISK_TYPE_UNSPECIFIED = 0; + + // Standard persistent disk type. + PD_STANDARD = 1; + + // SSD persistent disk type. + PD_SSD = 2; + + // Balanced persistent disk type. + PD_BALANCED = 3; + + // Extreme persistent disk type. + PD_EXTREME = 4; + } + + // Definition of the disk encryption options. + enum DiskEncryption { + // Disk encryption is not specified. + DISK_ENCRYPTION_UNSPECIFIED = 0; + + // Use Google managed encryption keys to encrypt the boot disk. + GMEK = 1; + + // Use customer managed encryption keys to encrypt the boot disk. + CMEK = 2; + } + // An instance-attached disk resource. message Disk { // Guest OS features for boot disk. @@ -248,107 +358,6 @@ message Instance { string target_version = 10; } - // Definition of the types of hardware accelerators that can be used on this - // instance. - enum AcceleratorType { - // Accelerator type is not specified. - ACCELERATOR_TYPE_UNSPECIFIED = 0; - - // Accelerator type is Nvidia Tesla K80. - NVIDIA_TESLA_K80 = 1; - - // Accelerator type is Nvidia Tesla P100. - NVIDIA_TESLA_P100 = 2; - - // Accelerator type is Nvidia Tesla V100. - NVIDIA_TESLA_V100 = 3; - - // Accelerator type is Nvidia Tesla P4 GPU. - NVIDIA_TESLA_P4 = 4; - - // Accelerator type is Nvidia Tesla T4. - NVIDIA_TESLA_T4 = 5; - - // Accelerator type is Nvidia Tesla A100. - NVIDIA_TESLA_A100 = 11; - - // Accelerator type is NVIDIA Tesla T4 Virtual Workstations. - NVIDIA_TESLA_T4_VWS = 8; - - // Accelerator type is NVIDIA Tesla P100 Virtual Workstations. - NVIDIA_TESLA_P100_VWS = 9; - - // Accelerator type is Nvidia Tesla P4 GPU Virtual Workstations. - NVIDIA_TESLA_P4_VWS = 10; - - // (Coming soon) Accelerator type is TPU V2. - TPU_V2 = 6; - - // (Coming soon) Accelerator type is TPU V3. - TPU_V3 = 7; - } - - // The definition of the states of this instance. - enum State { - // State is not specified. - STATE_UNSPECIFIED = 0; - - // The control logic is starting the instance. - STARTING = 1; - - // The control logic is installing required frameworks and registering the - // instance with notebook proxy - PROVISIONING = 2; - - // The instance is running. - ACTIVE = 3; - - // The control logic is stopping the instance. - STOPPING = 4; - - // The instance is stopped. - STOPPED = 5; - - // The instance is deleted. - DELETED = 6; - - // The instance is upgrading. - UPGRADING = 7; - - // The instance is being created. - INITIALIZING = 8; - - // The instance is getting registered. - REGISTERING = 9; - } - - // Possible disk types for notebook instances. - enum DiskType { - // Disk type not set. - DISK_TYPE_UNSPECIFIED = 0; - - // Standard persistent disk type. - PD_STANDARD = 1; - - // SSD persistent disk type. - PD_SSD = 2; - - // Balanced persistent disk type. - PD_BALANCED = 3; - } - - // Definition of the disk encryption options. - enum DiskEncryption { - // Disk encryption is not specified. - DISK_ENCRYPTION_UNSPECIFIED = 0; - - // Use Google managed encryption keys to encrypt the boot disk. - GMEK = 1; - - // Use customer managed encryption keys to encrypt the boot disk. - CMEK = 2; - } - // The type of vNIC driver. // Default should be UNSPECIFIED_NIC_TYPE. enum NicType { @@ -516,6 +525,13 @@ message Instance { // to this notebook instance. ReservationAffinity reservation_affinity = 34 [(google.api.field_behavior) = OPTIONAL]; + // Output only. Email address of entity that sent original CreateInstance request. + string creator = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Flag to enable ip forwarding or not, default false/off. + // https://cloud.google.com/vpc/docs/using-routes#canipforward + bool can_ip_forward = 39 [(google.api.field_behavior) = OPTIONAL]; + // Output only. Instance creation time. google.protobuf.Timestamp create_time = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/notebooks/v1/instance_config.proto b/google/cloud/notebooks/v1/instance_config.proto index 556bd176e..ebe67df34 100644 --- a/google/cloud/notebooks/v1/instance_config.proto +++ b/google/cloud/notebooks/v1/instance_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/notebooks/v1/managed_service.proto b/google/cloud/notebooks/v1/managed_service.proto index 453ad59ac..170ae98d2 100644 --- a/google/cloud/notebooks/v1/managed_service.proto +++ b/google/cloud/notebooks/v1/managed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -23,6 +23,7 @@ import "google/api/resource.proto"; import "google/cloud/notebooks/v1/event.proto"; import "google/cloud/notebooks/v1/runtime.proto"; import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Notebooks.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/notebooks/v1;notebooks"; @@ -151,6 +152,16 @@ service ManagedNotebookService { metadata_type: "OperationMetadata" }; } + + // Gets an access token for the consumer service account that the customer + // attached to the runtime. Only accessible from the tenant instance. + rpc RefreshRuntimeTokenInternal(RefreshRuntimeTokenInternalRequest) returns (RefreshRuntimeTokenInternalResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/runtimes/*}:refreshRuntimeTokenInternal" + body: "*" + }; + option (google.api.method_signature) = "name,vm_id"; + } } // Request for listing Managed Notebook Runtimes. @@ -215,6 +226,9 @@ message CreateRuntimeRequest { // Required. The Runtime to be created. Runtime runtime = 3 [(google.api.field_behavior) = REQUIRED]; + + // Idempotent request UUID. + string request_id = 4; } // Request for deleting a Managed Notebook Runtime. @@ -227,6 +241,9 @@ message DeleteRuntimeRequest { type: "notebooks.googleapis.com/Runtime" } ]; + + // Idempotent request UUID. + string request_id = 2; } // Request for starting a Managed Notebook Runtime. @@ -234,6 +251,9 @@ message StartRuntimeRequest { // Required. Format: // `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Idempotent request UUID. + string request_id = 2; } // Request for stopping a Managed Notebook Runtime. @@ -241,6 +261,9 @@ message StopRuntimeRequest { // Required. Format: // `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Idempotent request UUID. + string request_id = 2; } // Request for switching a Managed Notebook Runtime. @@ -254,13 +277,19 @@ message SwitchRuntimeRequest { // accelerator config. RuntimeAcceleratorConfig accelerator_config = 3; + + // Idempotent request UUID. + string request_id = 4; } -// Request for reseting a Managed Notebook Runtime. +// Request for resetting a Managed Notebook Runtime. message ResetRuntimeRequest { // Required. Format: // `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Idempotent request UUID. + string request_id = 2; } // Request for reporting a Managed Notebook Event. @@ -281,3 +310,28 @@ message ReportRuntimeEventRequest { // Required. The Event to be reported. Event event = 3 [(google.api.field_behavior) = REQUIRED]; } + +// Request for getting a new access token. +message RefreshRuntimeTokenInternalRequest { + // Required. Format: + // `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "notebooks.googleapis.com/Runtime" + } + ]; + + // Required. The VM hardware token for authenticating the VM. + // https://cloud.google.com/compute/docs/instances/verifying-instance-identity + string vm_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response with a new access token. +message RefreshRuntimeTokenInternalResponse { + // The OAuth 2.0 access token. + string access_token = 1; + + // Output only. Token expiration time. + google.protobuf.Timestamp expire_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/notebooks/v1/notebooks_v1.yaml b/google/cloud/notebooks/v1/notebooks_v1.yaml index aedae86e0..735388734 100644 --- a/google/cloud/notebooks/v1/notebooks_v1.yaml +++ b/google/cloud/notebooks/v1/notebooks_v1.yaml @@ -67,12 +67,20 @@ http: get: '/v1/{name=projects/*}/locations' - selector: google.iam.v1.IAMPolicy.GetIamPolicy get: '/v1/{resource=projects/*/locations/*/instances/*}:getIamPolicy' + additional_bindings: + - get: '/v1/{resource=projects/*/locations/*/runtimes/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1/{resource=projects/*/locations/*/instances/*}:setIamPolicy' body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/runtimes/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1/{resource=projects/*/locations/*/instances/*}:testIamPermissions' body: '*' + additional_bindings: + - post: '/v1/{resource=projects/*/locations/*/runtimes/*}:testIamPermissions' + body: '*' - selector: google.longrunning.Operations.CancelOperation post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' body: '*' diff --git a/google/cloud/notebooks/v1/runtime.proto b/google/cloud/notebooks/v1/runtime.proto index a37ed2e02..fa4d3769a 100644 --- a/google/cloud/notebooks/v1/runtime.proto +++ b/google/cloud/notebooks/v1/runtime.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -81,6 +81,14 @@ message Runtime { // (for example, critical daemons are not running) // Applies to ACTIVE state. UNHEALTHY = 2; + + // The runtime has not installed health monitoring agent. + // Applies to ACTIVE state. + AGENT_NOT_INSTALLED = 3; + + // The runtime health monitoring agent is not running. + // Applies to ACTIVE state. + AGENT_NOT_RUNNING = 4; } // Output only. The resource name of the runtime. @@ -126,6 +134,7 @@ message Runtime { // * `nvidia-tesla-k80` // * `nvidia-tesla-p100` // * `nvidia-tesla-v100` +// * `nvidia-tesla-p4` // * `nvidia-tesla-t4` // * `nvidia-tesla-a100` message RuntimeAcceleratorConfig { @@ -143,7 +152,7 @@ message RuntimeAcceleratorConfig { // Accelerator type is Nvidia Tesla V100. NVIDIA_TESLA_V100 = 3; - // Accelerator type is Nvidia Tesla P4 GPU. + // Accelerator type is Nvidia Tesla P4. NVIDIA_TESLA_P4 = 4; // Accelerator type is Nvidia Tesla T4. @@ -164,7 +173,7 @@ message RuntimeAcceleratorConfig { // Accelerator type is NVIDIA Tesla P100 Virtual Workstations. NVIDIA_TESLA_P100_VWS = 10; - // Accelerator type is Nvidia Tesla P.4 GPU Virtual Workstations. + // Accelerator type is NVIDIA Tesla P4 Virtual Workstations. NVIDIA_TESLA_P4_VWS = 11; } @@ -303,6 +312,9 @@ message LocalDiskInitializeParams { // Balanced persistent disk type. PD_BALANCED = 3; + + // Extreme persistent disk type. + PD_EXTREME = 4; } // Optional. Provide this property when creating the disk. @@ -337,6 +349,12 @@ message RuntimeAccessConfig { // Single user login. SINGLE_USER = 1; + + // Service Account mode. + // In Service Account mode, Runtime creator will specify a SA that exists + // in the consumer project. Using Runtime Service Account field. + // Users accessing the Runtime need ActAs (Service Account User) permission. + SERVICE_ACCOUNT = 2; } // The type of access mode this instance. @@ -356,7 +374,7 @@ message RuntimeAccessConfig { // // * `idle_shutdown: true` // * `idle_shutdown_timeout: 180` -// * `report-system-health: true` +// * `enable_health_monitoring: true` message RuntimeSoftwareConfig { // Cron expression in UTC timezone, used to schedule instance auto upgrade. // Please follow the [cron format](https://en.wikipedia.org/wiki/Cron). @@ -374,6 +392,7 @@ message RuntimeSoftwareConfig { int32 idle_shutdown_timeout = 4; // Install Nvidia Driver automatically. + // Default: True bool install_gpu_driver = 5; // Specify a custom Cloud Storage path where the GPU driver is stored. @@ -384,6 +403,12 @@ message RuntimeSoftwareConfig { // fully boots up. The path must be a URL or // Cloud Storage path (`gs://path-to-file/file-name`). string post_startup_script = 7; + + // Optional. Use a list of container images to use as Kernels in the notebook instance. + repeated ContainerImage kernels = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Bool indicating whether an newer image is available in an image family. + optional bool upgradeable = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains runtime daemon metrics, such as OS and kernels and sessions stats. @@ -443,6 +468,12 @@ message VirtualMachineConfig { GVNIC = 2; } + // Definition of the boot image used by the Runtime. + // Used to facilitate runtime upgradeability. + message BootImage { + + } + // Output only. The zone where the virtual machine is located. // If using regional request, the notebooks service will pick a location // in the corresponding runtime region. @@ -456,7 +487,7 @@ message VirtualMachineConfig { // * `e2-standard-8` string machine_type = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. Use a list of container images to start the notebook instance. + // Optional. Use a list of container images to use as Kernels in the notebook instance. repeated ContainerImage container_images = 3 [(google.api.field_behavior) = OPTIONAL]; // Required. Data disk option configuration settings. @@ -535,4 +566,23 @@ message VirtualMachineConfig { // Optional. The type of vNIC to be used on this interface. This may be gVNIC or // VirtioNet. NicType nic_type = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Reserved IP Range name is used for VPC Peering. + // The subnetwork allocation will use the range *name* if it's assigned. + // + // Example: managed-notebooks-range-c + // PEERING_RANGE_NAME_3=managed-notebooks-range-c + // gcloud compute addresses create $PEERING_RANGE_NAME_3 \ + // --global \ + // --prefix-length=24 \ + // --description="Google Cloud Managed Notebooks Range 24 c" \ + // --network=$NETWORK \ + // --addresses=192.168.0.0 \ + // --purpose=VPC_PEERING + // + // Field value will be: `managed-notebooks-range-c` + string reserved_ip_range = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Boot image metadata used for runtime upgradeability. + BootImage boot_image = 19 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/notebooks/v1/schedule.proto b/google/cloud/notebooks/v1/schedule.proto index 7eb57d366..eeebae553 100644 --- a/google/cloud/notebooks/v1/schedule.proto +++ b/google/cloud/notebooks/v1/schedule.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -76,8 +76,8 @@ message Schedule { State state = 4; - // Cron-tab formatted schedule by which the job will execute - // Format: minute, hour, day of month, month, day of week + // Cron-tab formatted schedule by which the job will execute. + // Format: minute, hour, day of month, month, day of week, // e.g. 0 0 * * WED = every Wednesday // More examples: https://crontab.guru/examples.html string cron_schedule = 5; diff --git a/google/cloud/notebooks/v1/service.proto b/google/cloud/notebooks/v1/service.proto index 14918ebca..61ac76ce0 100644 --- a/google/cloud/notebooks/v1/service.proto +++ b/google/cloud/notebooks/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -145,6 +145,14 @@ service NotebookService { }; } + // Add/update metadata items for an instance. + rpc UpdateInstanceMetadataItems(UpdateInstanceMetadataItemsRequest) returns (UpdateInstanceMetadataItemsResponse) { + option (google.api.http) = { + patch: "/v1/{name=projects/*/locations/*/instances/*}:updateMetadataItems" + body: "*" + }; + } + // Deletes a single Instance. rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -382,7 +390,7 @@ service NotebookService { }; } - // Creates a new Scheduled Notebook in a given project and location. + // Creates a new Execution in a given project and location. rpc CreateExecution(CreateExecutionRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*}/executions" @@ -536,6 +544,22 @@ message SetInstanceLabelsRequest { map labels = 2; } +// Request for adding/changing metadata items for an instance. +message UpdateInstanceMetadataItemsRequest { + // Required. Format: + // `projects/{project_id}/locations/{location}/instances/{instance_id}` + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Metadata items to add/update for the instance. + map items = 2; +} + +// Response for adding/changing metadata items for an instance. +message UpdateInstanceMetadataItemsResponse { + // Map of items that were added/updated to/in the metadata. + map items = 1; +} + // Request for updating the Shielded Instance config for a notebook instance. // You can only use this method on a stopped instance message UpdateShieldedInstanceConfigRequest { @@ -568,7 +592,7 @@ message StopInstanceRequest { string name = 1 [(google.api.field_behavior) = REQUIRED]; } -// Request for reseting a notebook instance +// Request for resetting a notebook instance message ResetInstanceRequest { // Required. Format: // `projects/{project_id}/locations/{location}/instances/{instance_id}` @@ -595,6 +619,10 @@ message IsInstanceUpgradeableRequest { // Required. Format: // `projects/{project_id}/locations/{location}/instances/{instance_id}` string notebook_instance = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The optional UpgradeType. Setting this field will search for additional + // compute images to upgrade this instance. + UpgradeType type = 2 [(google.api.field_behavior) = OPTIONAL]; } // Response for checking if a notebook instance is upgradeable. @@ -673,6 +701,10 @@ message UpgradeInstanceRequest { // Required. Format: // `projects/{project_id}/locations/{location}/instances/{instance_id}` string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The optional UpgradeType. Setting this field will search for additional + // compute images to upgrade this instance. + UpgradeType type = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for rollbacking a notebook instance @@ -695,6 +727,10 @@ message UpgradeInstanceInternalRequest { // Required. The VM hardware token for authenticating the VM. // https://cloud.google.com/compute/docs/instances/verifying-instance-identity string vm_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The optional UpgradeType. Setting this field will search for additional + // compute images to upgrade this instance. + UpgradeType type = 3 [(google.api.field_behavior) = OPTIONAL]; } // Request for listing environments. @@ -931,3 +967,22 @@ message CreateExecutionRequest { // Required. The execution to be created. Execution execution = 3 [(google.api.field_behavior) = REQUIRED]; } + +// Definition of the types of upgrade that can be used on this +// instance. +enum UpgradeType { + // Upgrade type is not specified. + UPGRADE_TYPE_UNSPECIFIED = 0; + + // Upgrade ML framework. + UPGRADE_FRAMEWORK = 1; + + // Upgrade Operating System. + UPGRADE_OS = 2; + + // Upgrade CUDA. + UPGRADE_CUDA = 3; + + // Upgrade All (OS, Framework and CUDA). + UPGRADE_ALL = 4; +} diff --git a/google/cloud/notebooks/v1beta1/BUILD.bazel b/google/cloud/notebooks/v1beta1/BUILD.bazel index e336a737a..a44226f08 100644 --- a/google/cloud/notebooks/v1beta1/BUILD.bazel +++ b/google/cloud/notebooks/v1beta1/BUILD.bazel @@ -89,6 +89,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-notebooks-v1beta1-java", + include_samples = True, deps = [ ":notebooks_java_gapic", ":notebooks_java_grpc", @@ -125,6 +126,7 @@ go_gapic_library( grpc_service_config = "notebooks_grpc_service_config.json", importpath = "cloud.google.com/go/notebooks/apiv1beta1;notebooks", service_yaml = "notebooks_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":notebooks_go_proto", "//google/longrunning:longrunning_go_proto", @@ -157,12 +159,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "notebooks_py_gapic", srcs = [":notebooks_proto"], grpc_service_config = "notebooks_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "notebooks_py_gapic_test", + srcs = [ + "notebooks_py_gapic_pytest.py", + "notebooks_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":notebooks_py_gapic"], ) # Open Source Packages @@ -322,6 +336,7 @@ csharp_gapic_library( srcs = [":notebooks_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "notebooks_grpc_service_config.json", + service_yaml = "notebooks_v1beta1.yaml", deps = [ ":notebooks_csharp_grpc", ":notebooks_csharp_proto", diff --git a/google/cloud/notebooks/v1beta1/environment.proto b/google/cloud/notebooks/v1beta1/environment.proto index ceee46cd5..c047877e0 100644 --- a/google/cloud/notebooks/v1beta1/environment.proto +++ b/google/cloud/notebooks/v1beta1/environment.proto @@ -19,7 +19,6 @@ package google.cloud.notebooks.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/notebooks/v1beta1;notebooks"; option csharp_namespace = "Google.Cloud.Notebooks.V1Beta1"; diff --git a/google/cloud/notebooks/v1beta1/instance.proto b/google/cloud/notebooks/v1beta1/instance.proto index c35d8e513..c7a4e999e 100644 --- a/google/cloud/notebooks/v1beta1/instance.proto +++ b/google/cloud/notebooks/v1beta1/instance.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/notebooks/v1beta1/environment.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Notebooks.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/notebooks/v1beta1;notebooks"; diff --git a/google/cloud/optimization/BUILD.bazel b/google/cloud/optimization/BUILD.bazel new file mode 100644 index 000000000..5bb3809b8 --- /dev/null +++ b/google/cloud/optimization/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-optimization. + +# 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 cloudoptimization. +# 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 = "optimization_ruby_wrapper", + srcs = ["//google/cloud/optimization/v1:optimization_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-optimization", + "ruby-cloud-wrapper-of=v1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/optimization", + "ruby-cloud-api-id=cloudoptimization.googleapis.com", + "ruby-cloud-api-shortname=cloudoptimization", + ], + ruby_cloud_description = "Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets.", + ruby_cloud_title = "Cloud Optimization", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-optimization-ruby", + deps = [ + ":optimization_ruby_wrapper", + ], +) diff --git a/google/cloud/optimization/v1/BUILD.bazel b/google/cloud/optimization/v1/BUILD.bazel new file mode 100644 index 000000000..733518e4e --- /dev/null +++ b/google/cloud/optimization/v1/BUILD.bazel @@ -0,0 +1,385 @@ +# 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 = "optimization_proto", + srcs = [ + "async_model.proto", + "fleet_routing.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 = "optimization_proto_with_info", + deps = [ + ":optimization_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "optimization_java_proto", + deps = [":optimization_proto"], +) + +java_grpc_library( + name = "optimization_java_grpc", + srcs = [":optimization_proto"], + deps = [":optimization_java_proto"], +) + +java_gapic_library( + name = "optimization_java_gapic", + srcs = [":optimization_proto_with_info"], + gapic_yaml = "cloudoptimization_gapic.yaml", + grpc_service_config = "cloudoptimization_grpc_service_config.json", + service_yaml = "cloudoptimization_v1.yaml", + test_deps = [ + ":optimization_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":optimization_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "optimization_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.optimization.v1.FleetRoutingClientHttpJsonTest", + "com.google.cloud.optimization.v1.FleetRoutingClientTest", + ], + runtime_deps = [":optimization_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-optimization-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":optimization_java_gapic", + ":optimization_java_grpc", + ":optimization_java_proto", + ":optimization_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "optimization_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/optimization/v1", + protos = [":optimization_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/type:latlng_go_proto", + ], +) + +go_gapic_library( + name = "optimization_go_gapic", + srcs = [":optimization_proto_with_info"], + grpc_service_config = "cloudoptimization_grpc_service_config.json", + importpath = "cloud.google.com/go/optimization/apiv1;optimization", + metadata = True, + service_yaml = "cloudoptimization_v1.yaml", + transport = "grpc+rest", + deps = [ + ":optimization_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", + ], +) + +go_test( + name = "optimization_go_gapic_test", + srcs = [":optimization_go_gapic_srcjar_test"], + embed = [":optimization_go_gapic"], + importpath = "cloud.google.com/go/optimization/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-optimization-v1-go", + deps = [ + ":optimization_go_gapic", + ":optimization_go_gapic_srcjar-metadata.srcjar", + ":optimization_go_gapic_srcjar-test.srcjar", + ":optimization_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "optimization_py_gapic", + srcs = [":optimization_proto"], + grpc_service_config = "cloudoptimization_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "optimization_py_gapic_test", + srcs = [ + "optimization_py_gapic_pytest.py", + "optimization_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":optimization_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "optimization-v1-py", + deps = [ + ":optimization_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "optimization_php_proto", + deps = [":optimization_proto"], +) + +php_grpc_library( + name = "optimization_php_grpc", + srcs = [":optimization_proto"], + deps = [":optimization_php_proto"], +) + +php_gapic_library( + name = "optimization_php_gapic", + srcs = [":optimization_proto_with_info"], + gapic_yaml = "cloudoptimization_gapic.yaml", + grpc_service_config = "cloudoptimization_grpc_service_config.json", + service_yaml = "cloudoptimization_v1.yaml", + deps = [ + ":optimization_php_grpc", + ":optimization_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-optimization-v1-php", + deps = [ + ":optimization_php_gapic", + ":optimization_php_grpc", + ":optimization_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "optimization_nodejs_gapic", + package_name = "@google-cloud/optimization", + src = ":optimization_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "cloudoptimization_grpc_service_config.json", + package = "google.cloud.optimization.v1", + service_yaml = "cloudoptimization_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "optimization-v1-nodejs", + deps = [ + ":optimization_nodejs_gapic", + ":optimization_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 = "optimization_ruby_proto", + deps = [":optimization_proto"], +) + +ruby_grpc_library( + name = "optimization_ruby_grpc", + srcs = [":optimization_proto"], + deps = [":optimization_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "optimization_ruby_gapic", + srcs = [":optimization_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-optimization-v1", + "ruby-cloud-product-url=https://cloud.google.com/optimization", + "ruby-cloud-api-id=cloudoptimization.googleapis.com", + "ruby-cloud-api-shortname=cloudoptimization", + ], + grpc_service_config = "cloudoptimization_grpc_service_config.json", + ruby_cloud_description = "Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets.", + ruby_cloud_title = "Cloud Optimization V1", + deps = [ + ":optimization_ruby_grpc", + ":optimization_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-optimization-v1-ruby", + deps = [ + ":optimization_ruby_gapic", + ":optimization_ruby_grpc", + ":optimization_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 = "optimization_csharp_proto", + deps = [":optimization_proto"], +) + +csharp_grpc_library( + name = "optimization_csharp_grpc", + srcs = [":optimization_proto"], + deps = [":optimization_csharp_proto"], +) + +csharp_gapic_library( + name = "optimization_csharp_gapic", + srcs = [":optimization_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "cloudoptimization_grpc_service_config.json", + service_yaml = "cloudoptimization_v1.yaml", + deps = [ + ":optimization_csharp_grpc", + ":optimization_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-optimization-v1-csharp", + deps = [ + ":optimization_csharp_gapic", + ":optimization_csharp_grpc", + ":optimization_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "optimization_cc_proto", + deps = [":optimization_proto"], +) + +cc_grpc_library( + name = "optimization_cc_grpc", + srcs = [":optimization_proto"], + grpc_only = True, + deps = [":optimization_cc_proto"], +) diff --git a/google/cloud/optimization/v1/async_model.proto b/google/cloud/optimization/v1/async_model.proto new file mode 100644 index 000000000..a2494e2e0 --- /dev/null +++ b/google/cloud/optimization/v1/async_model.proto @@ -0,0 +1,110 @@ +// 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.cloud.optimization.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/optimization/v1;optimization"; +option java_multiple_files = true; +option java_outer_classname = "AsyncModelProto"; +option java_package = "com.google.cloud.optimization.v1"; + +// The desired input location information. +message InputConfig { + // The location of the input model in cloud storage. + // Required. + oneof source { + // The Google Cloud Storage location to read the input from. This must be a + // single file. + GcsSource gcs_source = 1; + } + + // The input data format that used to store the model in Cloud Storage. + DataFormat data_format = 2; +} + +// The desired output location. +message OutputConfig { + // The location of the output result in cloud storage. + // Required. + oneof destination { + // The Google Cloud Storage location to write the output to. + GcsDestination gcs_destination = 1; + } + + // The output data format that used to store the results in Cloud Storage. + DataFormat data_format = 2; +} + +// The Google Cloud Storage location where the input file will be read from. +message GcsSource { + // Required. URI of the Google Cloud Storage location. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The Google Cloud Storage location where the output file will be written to. +message GcsDestination { + // Required. URI of the Google Cloud Storage location. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The long running operation metadata for async model related methods. +message AsyncModelMetadata { + // Possible states of the operation. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The operation completed successfully. + SUCCEEDED = 2; + + // The operation was cancelled. + CANCELLED = 3; + + // The operation has failed. + FAILED = 4; + } + + // The state of the current operation. + State state = 1; + + // A message providing more details about the current state of the operation. + // For example, the error message if the operation is failed. + string state_message = 2; + + // The creation time of the operation. + google.protobuf.Timestamp create_time = 3; + + // The last update time of the operation. + google.protobuf.Timestamp update_time = 4; +} + +// Data formats for input and output files. +enum DataFormat { + // Default value. + DATA_FORMAT_UNSPECIFIED = 0; + + // Input data in json format. + JSON = 1; + + // Input data in string format. + STRING = 2; +} diff --git a/google/cloud/optimization/v1/cloudoptimization_gapic.yaml b/google/cloud/optimization/v1/cloudoptimization_gapic.yaml new file mode 100644 index 000000000..73fadda08 --- /dev/null +++ b/google/cloud/optimization/v1/cloudoptimization_gapic.yaml @@ -0,0 +1,11 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +interfaces: +- name: google.cloud.optimization.v1.FleetRouting + methods: + - name: BatchOptimizeTours + long_running: + initial_poll_delay_millis: 30000 # 30 seconds. + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 120000 # 2 minutes. + total_poll_timeout_millis: 3600000 # 60 minutes. diff --git a/google/cloud/optimization/v1/cloudoptimization_grpc_service_config.json b/google/cloud/optimization/v1/cloudoptimization_grpc_service_config.json new file mode 100644 index 000000000..e8ebc3520 --- /dev/null +++ b/google/cloud/optimization/v1/cloudoptimization_grpc_service_config.json @@ -0,0 +1,28 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.optimization.v1.FleetRouting", "method": "OptimizeTours" } + ], + "timeout": "3600s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.optimization.v1.FleetRouting", "method": "BatchOptimizeTours" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/google/cloud/optimization/v1/cloudoptimization_v1.yaml b/google/cloud/optimization/v1/cloudoptimization_v1.yaml new file mode 100644 index 000000000..965301d07 --- /dev/null +++ b/google/cloud/optimization/v1/cloudoptimization_v1.yaml @@ -0,0 +1,39 @@ +type: google.api.Service +config_version: 3 +name: cloudoptimization.googleapis.com +title: Cloud Optimization API + +apis: +- name: google.cloud.optimization.v1.FleetRouting + +types: +- name: google.cloud.optimization.v1.AsyncModelMetadata +- name: google.cloud.optimization.v1.BatchOptimizeToursResponse + +documentation: + summary: |- + Cloud Optimization API provides a portfolio of solvers to address common + optimization use cases starting with optimal route planning for vehicle + fleets. + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/operations/*}' + additional_bindings: + - get: '/v1/{name=projects/*/locations/*/operations/*}' + +authentication: + rules: + - selector: google.cloud.optimization.v1.FleetRouting.BatchOptimizeTours + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.optimization.v1.FleetRouting.OptimizeTours + 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/google/cloud/optimization/v1/fleet_routing.proto b/google/cloud/optimization/v1/fleet_routing.proto new file mode 100644 index 000000000..5e381e9f0 --- /dev/null +++ b/google/cloud/optimization/v1/fleet_routing.proto @@ -0,0 +1,2615 @@ +// 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.cloud.optimization.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/cloud/optimization/v1/async_model.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/latlng.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/optimization/v1;optimization"; +option java_multiple_files = true; +option java_outer_classname = "FleetRoutingProto"; +option java_package = "com.google.cloud.optimization.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 FleetRouting { + option (google.api.default_host) = "cloudoptimization.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: "AsyncModelMetadata" + }; + } +} + +// 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.cloud.optimization.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.cloud.optimization.v1.OptimizeToursResponse.validation_errors] + // as possible. + VALIDATE_ONLY = 1; + + // Only populates + // [OptimizeToursResponse.skipped_shipments][google.cloud.optimization.v1.OptimizeToursResponse.skipped_shipments], + // and doesn't actually solve the rest of the request (`status` and `routes` + // are unset in the response). + // + // *IMPORTANT*: not all infeasible shipments are returned here, but only the + // ones that are detected as infeasible as a 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 and location to make a call. + // + // Format: `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; + + // Truncates the number of validation errors returned. Those 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.cloud.optimization.v1.OptimizeToursResponse.validation_errors] + // field. + // This defaults to 100 and is capped at 10,000. + optional int32 max_validation_errors = 5; + + // 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.cloud.optimization.v1.Shipment.allowed_vehicle_indices] is empty or + // its `vehicle_index` is included in + // [Shipment.allowed_vehicle_indices][google.cloud.optimization.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.cloud.optimization.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.cloud.optimization.v1.ShipmentRoute.vehicle_index] to new + // [ShipmentRoute.vehicle_index][google.cloud.optimization.v1.ShipmentRoute.vehicle_index] to update + // [ConstraintRelaxation.vehicle_indices][google.cloud.optimization.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.cloud.optimization.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.cloud.optimization.v1.SkippedShipment.label] instead of [SkippedShipment.index][google.cloud.optimization.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.cloud.optimization.v1.Vehicle.label] in the request; + // * [Shipment.label][google.cloud.optimization.v1.Shipment.label] in the request; + // * [ShipmentRoute.vehicle_label][google.cloud.optimization.v1.ShipmentRoute.vehicle_label] in the injected solution; + // * [SkippedShipment.label][google.cloud.optimization.v1.SkippedShipment.label] and [ShipmentRoute.Visit.shipment_label][google.cloud.optimization.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.cloud.optimization.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.cloud.optimization.v1.Vehicle.label] + // (resp. [Shipment.label][google.cloud.optimization.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.cloud.optimization.v1.ShipmentRoute.Transition.travel_duration], + // [Visit.start_time][google.cloud.optimization.v1.ShipmentRoute.Visit.start_time], + // and `vehicle_end_time`; in setting the + // [ShipmentRoute.has_traffic_infeasibilities][google.cloud.optimization.v1.ShipmentRoute.has_traffic_infeasibilities] field, and in calculating the + // [OptimizeToursResponse.total_cost][google.cloud.optimization.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.cloud.optimization.v1.ShipmentRoute.transitions]. + // Note that in this case, the polylines will also be populated in the + // deprecated `travel_steps`. + 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; + + // Label that may be used to identify this request, reported back in the + // [OptimizeToursResponse.request_label][google.cloud.optimization.v1.OptimizeToursResponse.request_label]. + string label = 17; + + // Deprecated: Use [OptimizeToursRequest.populate_transition_polylines][] instead. + // If true, polylines will be populated in response + // [ShipmentRoute.transitions][google.cloud.optimization.v1.ShipmentRoute.transitions]. Note that in this case, the polylines will + // also be populated in the deprecated `travel_steps`. + bool populate_travel_step_polylines = 20 [deprecated = true]; +} + +// 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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.v1.OptimizeToursValidationError] message. + repeated OptimizeToursValidationError validation_errors = 5; + + // Duration, distance and usage metrics for this solution. + Metrics metrics = 6; + + // Deprecated: Use [Metrics.total_cost][] instead. + // Total cost of the solution. This takes into account all costs: costs per + // per hour and travel hour, fixed vehicle costs, unperformed shipment penalty + // costs, global duration cost, etc. + double total_cost = 2 [deprecated = true]; +} + +// 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 { + // User defined model name, can be used as alias by users to keep track of + // models. + string display_name = 1; + + // 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]; + + // If this is set, the model will be solved in the checkpoint mode. In this + // mode, the input model can have a deadline longer than 30 mins without the + // risk of interruption. The model will be solved in multiple short-running + // stages. Each stage generates an intermediate checkpoint + // and stores it in the user's Cloud Storage buckets. The checkpoint + // mode should be preferred over + // allow_large_deadline_despite_interruption_risk since it prevents the risk + // of interruption. + bool enable_checkpoints = 4; + } + + // Required. Target project and location to make a call. + // + // Format: `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 LRO Operation after the operation is complete. +message BatchOptimizeToursResponse { + +} + +// 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.cloud.optimization.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.cloud.optimization.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; + } + + // Deprecated: Use top level [BreakRule][] instead. + // 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 { + option deprecated = true; + + // 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; + } + + // 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.cloud.optimization.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.cloud.optimization.v1.Shipment.VisitRequest.tags] + // or [Vehicle.start_tags][google.cloud.optimization.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.cloud.optimization.v1.Shipment.VisitRequest.tags] + // or [Vehicle.start_tags][google.cloud.optimization.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; + + // Deprecated: No longer used. + // Set of break rules used in the model. + // Each vehicle specifies the `BreakRule` that applies to it via the + // [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices] field (which must be a singleton). + repeated BreakRule break_rules = 15 [deprecated = true]; +} + +// 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.cloud.optimization.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.cloud.optimization.v1.Shipment.load_demands] field, except that it only applies to this + // [VisitRequest][google.cloud.optimization.v1.Shipment.VisitRequest] instead of the whole [Shipment][google.cloud.optimization.v1.Shipment]. + // The demands listed here are added to the demands listed in + // [Shipment.load_demands][google.cloud.optimization.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.cloud.optimization.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.cloud.optimization.v1.ShipmentRoute.Visit]. + string label = 11; + + // Deprecated: Use [VisitRequest.load_demands][] instead. + repeated CapacityQuantity demands = 9 [deprecated = true]; + } + + // 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.cloud.optimization.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; + } + + // 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.cloud.optimization.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; + + // Deprecated: Use [Shipment.load_demands][] instead. + repeated CapacityQuantity demands = 3 [deprecated = true]; +} + +// 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; + } + + // 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.cloud.optimization.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.cloud.optimization.v1.Vehicle.LoadLimit.Interval.min] must be ≤ [max][google.cloud.optimization.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.cloud.optimization.v1.Vehicle.LoadLimit.Interval.min] must be ≤ [max][google.cloud.optimization.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.cloud.optimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max]. + int64 soft_max_load = 2; + + // If the load ever exceeds [soft_max_load][google.cloud.optimization.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.cloud.optimization.v1.Vehicle.LoadLimit.soft_max_load]) * [cost_per_unit_above_soft_max][google.cloud.optimization.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.cloud.optimization.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 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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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; + + // Deprecated: No longer used. + // Indices in the `break_rule` field in the source + // [ShipmentModel][]. They correspond to break rules enforced on the vehicle. + // + // + // As of 2018/03, at most one rule index per vehicle can be specified. + repeated int32 break_rule_indices = 29 [deprecated = true]; + + // Deprecated: Use [Vehicle.load_limits][] instead. + repeated CapacityQuantity capacities = 13 [deprecated = true]; + + // Deprecated: Use [Vehicle.LoadLimit.start_load_interval][] instead. + repeated CapacityQuantityInterval start_load_intervals = 14 [deprecated = true]; + + // Deprecated: Use [Vehicle.LoadLimit.end_load_interval][] instead. + repeated CapacityQuantityInterval end_load_intervals = 15 [deprecated = true]; +} + +// 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.cloud.optimization.v1.ShipmentModel.global_start_time] and +// [ShipmentModel.global_end_time][google.cloud.optimization.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; +} + +// Deprecated: Use [Shipment.Load][], [Vehicle.LoadLimit][] and [ShipmentRoute.VehicleLoad][] instead. +message CapacityQuantity { + option deprecated = true; + + string type = 1; + + int64 value = 2; +} + +// Deprecated: Use [Vehicle.LoadLimit.Interval][] instead. +message CapacityQuantityInterval { + option deprecated = true; + + string type = 1; + + optional int64 min_value = 2; + + optional int64 max_value = 3; +} + +// 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 `soft_max_meters` limit is violated. 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.cloud.optimization.v1.Shipment.VisitRequest.tags] + // or [Vehicle.start_tags][google.cloud.optimization.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.cloud.optimization.v1.Shipment.VisitRequest.tags] + // or [Vehicle.end_tags][google.cloud.optimization.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.cloud.optimization.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; + } + + // 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 the 'DRIVING' travel mode, + // and when the 'location_type' is set to 'location'. + bool side_of_road = 3; +} + +// 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 { + // Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead. + // Time interval spent on the route resulting from a + // [TransitionAttributes.delay][google.cloud.optimization.v1.TransitionAttributes.delay]. + message Delay { + option deprecated = true; + + // Start of the delay. + google.protobuf.Timestamp start_time = 1; + + // Duration of the delay. + google.protobuf.Duration duration = 2; + } + + // 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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.v1.Shipment.VisitRequest.label], + // if specified in the `VisitRequest`. + string visit_label = 8; + + // Deprecated: Use [ShipmentRoute.Transition.loads][] instead. + // Vehicle loads upon arrival at the visit location, for each + // type specified in [Vehicle.capacities][google.cloud.optimization.v1.Vehicle.capacities], `start_load_intervals`, + // `end_load_intervals` or `demands`. + // + // Exception: we omit loads for quantity types unconstrained by intervals + // and that don't have any non-zero demand on the route. + repeated CapacityQuantity arrival_loads = 9 [deprecated = true]; + + // Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead. + Delay delay_before_start = 10 [deprecated = true]; + + // Deprecated: Use [Visit.load_demands][] instead. + repeated CapacityQuantity demands = 5 [deprecated = true]; + } + + // Transition between two events on the route. See the description of + // [ShipmentRoute][google.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.v1.Vehicle.load_limits], or that have non-zero + // [Shipment.load_demands][google.cloud.optimization.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; + + // Deprecated: Use [Transition.vehicle_loads][] instead. + repeated CapacityQuantity loads = 10 [deprecated = true]; + } + + // Reports the actual load of the vehicle at some point along the route, + // for a given type (see [Transition.vehicle_loads][google.cloud.optimization.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.cloud.optimization.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; + } + + // Deprecated: Use [ShipmentRoute.transitions][] instead. + // Travel between each visit, along the route: from the + // vehicle's `start_location` to the first visit's `arrival_location`, then + // from the first visit's `departure_location` to the second visit's + // `arrival_location`, and so on until the vehicle's `end_location`. This + // accounts only for the actual travel between visits, not counting the + // waiting time, the time spent performing a visit, nor the distance covered + // during a visit. + // + // Invariant: `travel_steps_size() == visits_size() + 1`. + // + // If the vehicle does not have a start_ and/or end_location, the + // corresponding travel metrics are 0 and/or empty. + message TravelStep { + option deprecated = true; + + // Duration of the travel step. + google.protobuf.Duration duration = 1; + + // Distance traveled during the step. + double distance_meters = 2; + + // When traffic is requested via + // [OptimizeToursRequest.consider_road_traffic][google.cloud.optimization.v1.OptimizeToursRequest.consider_road_traffic], + // and the traffic info couldn't be retrieved for a TravelStep, 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; + + // The encoded polyline representation of the route followed during the + // step. + // + // This field is only populated if + // [OptimizeToursRequest.populate_travel_step_polylines][google.cloud.optimization.v1.OptimizeToursRequest.populate_travel_step_polylines] + // is set to true. + EncodedPolyline route_polyline = 4; + } + + // 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.cloud.optimization.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.cloud.optimization.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.cloud.optimization.v1.AggregatedMetrics] are summed over all [ShipmentRoute.transitions][google.cloud.optimization.v1.ShipmentRoute.transitions] or + // [ShipmentRoute.visits][google.cloud.optimization.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; + + // Deprecated: Use [ShipmentRoute.Transition.loads][] instead. + // Vehicle loads upon arrival at its end location, for each + // type specified in [Vehicle.capacities][google.cloud.optimization.v1.Vehicle.capacities], + // `start_load_intervals`, `end_load_intervals` or demands. Exception: we omit + // loads for quantity types unconstrained by intervals and that don't have any + // non-zero demand on the route. + repeated CapacityQuantity end_loads = 13 [deprecated = true]; + + // Deprecated: Use [ShipmentRoute.Transition][] instead. + // Ordered list of travel steps for the route. + repeated TravelStep travel_steps = 14 [deprecated = true]; + + // Deprecated: No longer used. + // This field will only be populated at the + // [ShipmentRoute.Visit][google.cloud.optimization.v1.ShipmentRoute.Visit] level. + // Extra detour time due to the shipments visited on the route. + // + // It is equal to `vehicle_end_time` - `vehicle_start_time` - travel duration + // from the vehicle's start_location to its `end_location`. + google.protobuf.Duration vehicle_detour = 15 [deprecated = true]; + + // Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead. + // Delay occurring before the vehicle end. See + // [TransitionAttributes.delay][google.cloud.optimization.v1.TransitionAttributes.delay]. + Delay delay_before_vehicle_end = 16 [deprecated = true]; +} + +// 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.cloud.optimization.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.cloud.optimization.v1.ShipmentRoute] (resp. for [OptimizeToursResponse][google.cloud.optimization.v1.OptimizeToursResponse] +// over all [Transition][google.cloud.optimization.v1.ShipmentRoute.Transition] +// and/or [Visit][google.cloud.optimization.v1.ShipmentRoute.Visit] (resp. over +// all [ShipmentRoute][google.cloud.optimization.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.cloud.optimization.v1.ShipmentRoute.vehicle_end_time] - + // [ShipmentRoute.vehicle_start_time][google.cloud.optimization.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.cloud.optimization.v1.ShipmentRoute.Transition.vehicle_loads] + // (resp. + // [ShipmentRoute.metrics.max_loads][google.cloud.optimization.v1.AggregatedMetrics.max_loads]. + map max_loads = 9; + + // Deprecated: Use [ShipmentRoute.route_costs][] and [OptimizeToursResponse.Metrics.costs][] instead. + map costs = 10 [deprecated = true]; + + // Deprecated: Use [ShipmentRoute.route_total_cost][] and [OptimizeToursResponse.Metrics.total_cost][] instead. + double total_cost = 11 [deprecated = true]; +} + +// 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 satifies 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 explicly 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 + // satified. + 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.cloud.optimization.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; + // * 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; + // * 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_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000; + // * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION + // = 4001; + // * 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; + // * SHIPMENT_DETOUR_WITHOUT_PICKUP_AND_DELIVERY = 4014; + // * 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_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; + // * GRAPH_ARC_ERROR = 58; + // * GRAPH_ARC_DURATION_NEGATIVE_OR_NAN = 5800; + // * GRAPH_ARC_DURATION_EXCEEDS_GLOBAL_DURATION = 5801; + 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; +} diff --git a/google/cloud/orchestration/airflow/service/v1/BUILD.bazel b/google/cloud/orchestration/airflow/service/v1/BUILD.bazel index ba5482468..2c883ea53 100644 --- a/google/cloud/orchestration/airflow/service/v1/BUILD.bazel +++ b/google/cloud/orchestration/airflow/service/v1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":service_java_grpc", ], + transport = "grpc+rest", deps = [ ":service_java_proto", ], @@ -83,7 +84,9 @@ java_gapic_library( java_gapic_test( name = "service_java_gapic_test_suite", test_classes = [ + "com.google.cloud.orchestration.airflow.service.v1.EnvironmentsClientHttpJsonTest", "com.google.cloud.orchestration.airflow.service.v1.EnvironmentsClientTest", + "com.google.cloud.orchestration.airflow.service.v1.ImageVersionsClientHttpJsonTest", "com.google.cloud.orchestration.airflow.service.v1.ImageVersionsClientTest", ], runtime_deps = [":service_java_gapic_test"], @@ -92,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-airflow-service-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":service_java_gapic", ":service_java_grpc", @@ -128,13 +133,14 @@ go_gapic_library( srcs = [":service_proto_with_info"], grpc_service_config = "composer_grpc_service_config.json", importpath = "cloud.google.com/go/orchestration/airflow/service/apiv1;service", - service_yaml = "composer_v1.yaml", metadata = True, + service_yaml = "composer_v1.yaml", + transport = "grpc+rest", deps = [ ":service_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_library", "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", ], ) @@ -150,8 +156,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-airflow-service-v1-go", deps = [ ":service_go_gapic", - ":service_go_gapic_srcjar-test.srcjar", ":service_go_gapic_srcjar-metadata.srcjar", + ":service_go_gapic_srcjar-test.srcjar", ":service_go_proto", ], ) @@ -163,6 +169,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -171,7 +178,18 @@ py_gapic_library( grpc_service_config = "composer_grpc_service_config.json", opt_args = [ "warehouse-package-name=google-cloud-orchestration-airflow", - ] + ], + transport = "grpc", +) + +py_test( + name = "service_py_gapic_test", + srcs = [ + "service_py_gapic_pytest.py", + "service_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":service_py_gapic"], ) # Open Source Packages @@ -258,8 +276,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -330,6 +348,7 @@ csharp_gapic_library( srcs = [":service_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "composer_grpc_service_config.json", + service_yaml = "composer_v1.yaml", deps = [ ":service_csharp_grpc", ":service_csharp_proto", diff --git a/google/cloud/orchestration/airflow/service/v1/operations.proto b/google/cloud/orchestration/airflow/service/v1/operations.proto index 5d452fd5e..9bb3a05dd 100644 --- a/google/cloud/orchestration/airflow/service/v1/operations.proto +++ b/google/cloud/orchestration/airflow/service/v1/operations.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.orchestration.airflow.service.v1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1;service"; option java_multiple_files = true; diff --git a/google/cloud/orchestration/airflow/service/v1beta1/BUILD.bazel b/google/cloud/orchestration/airflow/service/v1beta1/BUILD.bazel index 0e297fccb..f62191b85 100644 --- a/google/cloud/orchestration/airflow/service/v1beta1/BUILD.bazel +++ b/google/cloud/orchestration/airflow/service/v1beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":service_java_grpc", ], + transport = "grpc+rest", deps = [ ":service_java_proto", ], @@ -83,7 +84,9 @@ java_gapic_library( java_gapic_test( name = "service_java_gapic_test_suite", test_classes = [ + "com.google.cloud.orchestration.airflow.service.v1beta1.EnvironmentsClientHttpJsonTest", "com.google.cloud.orchestration.airflow.service.v1beta1.EnvironmentsClientTest", + "com.google.cloud.orchestration.airflow.service.v1beta1.ImageVersionsClientHttpJsonTest", "com.google.cloud.orchestration.airflow.service.v1beta1.ImageVersionsClientTest", ], runtime_deps = [":service_java_gapic_test"], @@ -92,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-airflow-service-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":service_java_gapic", ":service_java_grpc", @@ -128,13 +133,14 @@ go_gapic_library( srcs = [":service_proto_with_info"], grpc_service_config = "composer_grpc_service_config.json", importpath = "cloud.google.com/go/orchestration/airflow/service/apiv1beta1;service", - service_yaml = "composer_v1beta1.yaml", metadata = True, + service_yaml = "composer_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":service_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_library", "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", ], ) @@ -150,8 +156,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-airflow-service-v1beta1-go", deps = [ ":service_go_gapic", - ":service_go_gapic_srcjar-test.srcjar", ":service_go_gapic_srcjar-metadata.srcjar", + ":service_go_gapic_srcjar-test.srcjar", ":service_go_proto", ], ) @@ -163,12 +169,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "service_py_gapic", srcs = [":service_proto"], grpc_service_config = "composer_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "service_py_gapic_test", + srcs = [ + "service_py_gapic_pytest.py", + "service_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":service_py_gapic"], ) # Open Source Packages @@ -255,8 +273,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -327,6 +345,7 @@ csharp_gapic_library( srcs = [":service_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "composer_grpc_service_config.json", + service_yaml = "composer_v1beta1.yaml", deps = [ ":service_csharp_grpc", ":service_csharp_proto", diff --git a/google/cloud/orchestration/airflow/service/v1beta1/operations.proto b/google/cloud/orchestration/airflow/service/v1beta1/operations.proto index 00b4d21d7..5e5991f0c 100644 --- a/google/cloud/orchestration/airflow/service/v1beta1/operations.proto +++ b/google/cloud/orchestration/airflow/service/v1beta1/operations.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.orchestration.airflow.service.v1beta1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1beta1;service"; option java_multiple_files = true; diff --git a/google/cloud/orgpolicy/v1/BUILD.bazel b/google/cloud/orgpolicy/v1/BUILD.bazel index 45c07e27f..6e24be317 100644 --- a/google/cloud/orgpolicy/v1/BUILD.bazel +++ b/google/cloud/orgpolicy/v1/BUILD.bazel @@ -44,6 +44,8 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-orgpolicy-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":orgpolicy_java_grpc", ":orgpolicy_java_proto", @@ -95,6 +97,11 @@ py_proto_library( deps = [":orgpolicy_moved_proto"], ) +py_proto_library( + name = "orgpolicy_py_original_proto", + deps = [":orgpolicy_proto"], +) + py_grpc_library( name = "orgpolicy_py_grpc", srcs = [":orgpolicy_moved_proto"], diff --git a/google/cloud/orgpolicy/v1/orgpolicy.proto b/google/cloud/orgpolicy/v1/orgpolicy.proto index fbd62df6f..a454180b7 100644 --- a/google/cloud/orgpolicy/v1/orgpolicy.proto +++ b/google/cloud/orgpolicy/v1/orgpolicy.proto @@ -17,9 +17,7 @@ syntax = "proto3"; package google.cloud.orgpolicy.v1; -import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.OrgPolicy.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/orgpolicy/v1;orgpolicy"; diff --git a/google/cloud/orgpolicy/v2/BUILD.bazel b/google/cloud/orgpolicy/v2/BUILD.bazel index ef4cc6066..d1ddcc09f 100644 --- a/google/cloud/orgpolicy/v2/BUILD.bazel +++ b/google/cloud/orgpolicy/v2/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":orgpolicy_java_grpc", ], + transport = "grpc+rest", deps = [ ":orgpolicy_java_proto", ], @@ -81,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "orgpolicy_java_gapic_test_suite", test_classes = [ + "com.google.cloud.orgpolicy.v2.OrgPolicyClientHttpJsonTest", "com.google.cloud.orgpolicy.v2.OrgPolicyClientTest", ], runtime_deps = [":orgpolicy_java_gapic_test"], @@ -89,6 +91,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-orgpolicy-v2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":orgpolicy_java_gapic", ":orgpolicy_java_grpc", @@ -125,6 +129,7 @@ go_gapic_library( grpc_service_config = "orgpolicy_grpc_service_config.json", importpath = "cloud.google.com/go/orgpolicy/apiv2;orgpolicy", service_yaml = "orgpolicy_v2.yaml", + transport = "grpc+rest", deps = [ ":orgpolicy_go_proto", ], @@ -154,12 +159,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "orgpolicy_py_gapic", srcs = [":orgpolicy_proto"], grpc_service_config = "orgpolicy_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "orgpolicy_py_gapic_test", + srcs = [ + "orgpolicy_py_gapic_pytest.py", + "orgpolicy_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":orgpolicy_py_gapic"], ) # Open Source Packages @@ -318,6 +335,7 @@ csharp_gapic_library( srcs = [":orgpolicy_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "orgpolicy_grpc_service_config.json", + service_yaml = "orgpolicy_v2.yaml", deps = [ ":orgpolicy_csharp_grpc", ":orgpolicy_csharp_proto", diff --git a/google/cloud/orgpolicy/v2/constraint.proto b/google/cloud/orgpolicy/v2/constraint.proto index a9051acb2..81af21b58 100644 --- a/google/cloud/orgpolicy/v2/constraint.proto +++ b/google/cloud/orgpolicy/v2/constraint.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -31,11 +31,11 @@ option ruby_package = "Google::Cloud::OrgPolicy::V2"; // example, you could enforce a constraint that controls which cloud services // can be activated across an organization, or whether a Compute Engine instance // can have serial port connections established. `Constraints` can be configured -// by the organization's policy adminstrator to fit the needs of the organzation -// by setting a `policy` that includes `constraints` at different locations in -// the organization's resource hierarchy. Policies are inherited down the -// resource hierarchy from higher levels, but can also be overridden. For -// details about the inheritance rules please read about +// by the organization's policy administrator to fit the needs of the +// organization by setting a `policy` that includes `constraints` at different +// locations in the organization's resource hierarchy. Policies are inherited +// down the resource hierarchy from higher levels, but can also be overridden. +// For details about the inheritance rules please read about // [`policies`][google.cloud.OrgPolicy.v2.Policy]. // // `Constraints` have a default behavior determined by the `constraint_default` @@ -49,6 +49,24 @@ message Constraint { pattern: "organizations/{organization}/constraints/{constraint}" }; + // Specifies the default behavior in the absence of any `Policy` for the + // `Constraint`. This must not be `CONSTRAINT_DEFAULT_UNSPECIFIED`. + // + // Immutable after creation. + enum ConstraintDefault { + // This is only used for distinguishing unset values and should never be + // used. + CONSTRAINT_DEFAULT_UNSPECIFIED = 0; + + // Indicate that all values are allowed for list constraints. + // Indicate that enforcement is off for boolean constraints. + ALLOW = 1; + + // Indicate that all values are denied for list constraints. + // Indicate that enforcement is on for boolean constraints. + DENY = 2; + } + // A `Constraint` that allows or disallows a list of string values, which are // configured by an Organization's policy administrator with a `Policy`. message ListConstraint { @@ -73,24 +91,6 @@ message Constraint { } - // Specifies the default behavior in the absence of any `Policy` for the - // `Constraint`. This must not be `CONSTRAINT_DEFAULT_UNSPECIFIED`. - // - // Immutable after creation. - enum ConstraintDefault { - // This is only used for distinguishing unset values and should never be - // used. - CONSTRAINT_DEFAULT_UNSPECIFIED = 0; - - // Indicate that all values are allowed for list constraints. - // Indicate that enforcement is off for boolean constraints. - ALLOW = 1; - - // Indicate that all values are denied for list constraints. - // Indicate that enforcement is on for boolean constraints. - DENY = 2; - } - // Immutable. The resource name of the Constraint. Must be in one of // the following forms: // * `projects/{project_number}/constraints/{constraint_name}` diff --git a/google/cloud/orgpolicy/v2/orgpolicy.proto b/google/cloud/orgpolicy/v2/orgpolicy.proto index 2b2bb472b..043d7d00a 100644 --- a/google/cloud/orgpolicy/v2/orgpolicy.proto +++ b/google/cloud/orgpolicy/v2/orgpolicy.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -214,11 +214,8 @@ message Policy { // Basic information about the Organization Policy. PolicySpec spec = 2; - // An alternate policy configuration that will be used instead of the baseline - // policy configurations as determined by the launch. - // Currently the only way the launch can trigger the alternate configuration - // is via dry-run/darklaunch. - AlternatePolicySpec alternate = 3; + // Deprecated. + AlternatePolicySpec alternate = 3 [deprecated = true]; } // Similar to PolicySpec but with an extra 'launch' field for launch reference. @@ -284,11 +281,14 @@ message PolicySpec { // in the evaluation of the policy. When set, the `expression` field in // the `Expr' must include from 1 to 10 subexpressions, joined by the "||" // or "&&" operators. Each subexpression must be of the form - // "resource.matchLabels(key_name, value_name)", - // where key_name and value_name are the resource names for Label Keys - // and Values. These names are available from the Label Manager Service. An - // example expression is: - // "resource.matchLabels('labelKeys/123, 'labelValues/456')". + // "resource.matchTag('/tag_key_short_name, + // 'tag_value_short_name')". or "resource.matchTagId('tagKeys/key_id', + // 'tagValues/value_id')". where key_name and value_name are the resource + // names for Label Keys and Values. These names are available from the Tag + // Manager Service. An example expression is: + // "resource.matchTag('123456789/environment, + // 'prod')". or "resource.matchTagId('tagKeys/123', + // 'tagValues/456')". google.type.Expr condition = 5; } diff --git a/google/cloud/osconfig/agentendpoint/v1/BUILD.bazel b/google/cloud/osconfig/agentendpoint/v1/BUILD.bazel index b662c0cc0..787f368c3 100644 --- a/google/cloud/osconfig/agentendpoint/v1/BUILD.bazel +++ b/google/cloud/osconfig/agentendpoint/v1/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -29,10 +29,11 @@ proto_library( "tasks.proto", ], deps = [ + "//google/api:annotations_proto", "//google/api:client_proto", - "//google/type:date_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", + "//google/type:date_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -71,18 +72,23 @@ java_grpc_library( java_gapic_library( name = "agentendpoint_java_gapic", srcs = [":agentendpoint_proto_with_info"], + gapic_yaml = "osconfig_gapic.yaml", grpc_service_config = "agentendpoint_grpc_service_config.json", + service_yaml = "osconfig_v1.yaml", test_deps = [ ":agentendpoint_java_grpc", ], + transport = "grpc+rest", deps = [ ":agentendpoint_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "agentendpoint_java_gapic_test_suite", test_classes = [ + "com.google.cloud.osconfig.agentendpoint.v1.AgentEndpointServiceClientHttpJsonTest", "com.google.cloud.osconfig.agentendpoint.v1.AgentEndpointServiceClientTest", ], runtime_deps = [":agentendpoint_java_gapic_test"], @@ -91,6 +97,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-osconfig-agentendpoint-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":agentendpoint_java_gapic", ":agentendpoint_java_grpc", @@ -126,7 +134,9 @@ go_gapic_library( srcs = [":agentendpoint_proto_with_info"], grpc_service_config = "agentendpoint_grpc_service_config.json", importpath = "cloud.google.com/go/osconfig/agentendpoint/apiv1;agentendpoint", + metadata = True, service_yaml = "osconfig_v1.yaml", + transport = "grpc+rest", deps = [ ":agentendpoint_go_proto", ], @@ -144,6 +154,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-osconfig-agentendpoint-v1-go", deps = [ ":agentendpoint_go_gapic", + ":agentendpoint_go_gapic_srcjar-metadata.srcjar", ":agentendpoint_go_gapic_srcjar-test.srcjar", ":agentendpoint_go_proto", ], @@ -156,12 +167,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "agentendpoint_py_gapic", srcs = [":agentendpoint_proto"], grpc_service_config = "agentendpoint_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "agentendpoint_py_gapic_test", + srcs = [ + "agentendpoint_py_gapic_pytest.py", + "agentendpoint_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":agentendpoint_py_gapic"], ) # Open Source Packages @@ -175,45 +198,45 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## -# load( -# "@com_google_googleapis_imports//:imports.bzl", -# "php_gapic_assembly_pkg", -# "php_gapic_library", -# "php_grpc_library", -# "php_proto_library", -# ) -# -# php_proto_library( -# name = "agentendpoint_php_proto", -# deps = [":agentendpoint_proto"], -# ) -# -# php_grpc_library( -# name = "agentendpoint_php_grpc", -# srcs = [":agentendpoint_proto"], -# deps = [":agentendpoint_php_proto"], -# ) -# -# php_gapic_library( -# name = "agentendpoint_php_gapic", -# srcs = [":agentendpoint_proto_with_info"], -# grpc_service_config = "agentendpoint_grpc_service_config.json", -# service_yaml = "osconfig_v1.yaml", -# deps = [ -# ":agentendpoint_php_grpc", -# ":agentendpoint_php_proto", -# ], -# ) -# -# # Open Source Packages -# php_gapic_assembly_pkg( -# name = "google-cloud-osconfig-agentendpoint-v1-php", -# deps = [ -# ":agentendpoint_php_gapic", -# ":agentendpoint_php_grpc", -# ":agentendpoint_php_proto", -# ], -# ) +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "agentendpoint_php_proto", + deps = [":agentendpoint_proto"], +) + +php_grpc_library( + name = "agentendpoint_php_grpc", + srcs = [":agentendpoint_proto"], + deps = [":agentendpoint_php_proto"], +) + +php_gapic_library( + name = "agentendpoint_php_gapic", + srcs = [":agentendpoint_proto_with_info"], + grpc_service_config = "agentendpoint_grpc_service_config.json", + service_yaml = "osconfig_v1.yaml", + deps = [ + ":agentendpoint_php_grpc", + ":agentendpoint_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-osconfig-agentendpoint-v1-php", + deps = [ + ":agentendpoint_php_gapic", + ":agentendpoint_php_grpc", + ":agentendpoint_php_proto", + ], +) ############################################################################## # Node.js @@ -226,6 +249,7 @@ load( nodejs_gapic_library( name = "agentendpoint_nodejs_gapic", + package_name = "@google-cloud/agentendpoint", src = ":agentendpoint_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "agentendpoint_grpc_service_config.json", @@ -247,8 +271,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -266,7 +290,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "agentendpoint_ruby_gapic", - srcs = [":agentendpoint_proto_with_info",], + srcs = [":agentendpoint_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-agentendpoint-v1"], grpc_service_config = "agentendpoint_grpc_service_config.json", deps = [ @@ -312,6 +336,7 @@ csharp_gapic_library( srcs = [":agentendpoint_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "agentendpoint_grpc_service_config.json", + service_yaml = "osconfig_v1.yaml", deps = [ ":agentendpoint_csharp_grpc", ":agentendpoint_csharp_proto", diff --git a/google/cloud/osconfig/agentendpoint/v1/agentendpoint.proto b/google/cloud/osconfig/agentendpoint/v1/agentendpoint.proto index c82ba6103..38a04a0fb 100644 --- a/google/cloud/osconfig/agentendpoint/v1/agentendpoint.proto +++ b/google/cloud/osconfig/agentendpoint/v1/agentendpoint.proto @@ -31,8 +31,7 @@ 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"; } @@ -42,31 +41,24 @@ 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"; } } @@ -83,7 +75,9 @@ 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 { @@ -174,7 +168,9 @@ 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 { @@ -209,7 +205,9 @@ message RegisterAgentRequest { } // The response message after the agent registered. -message RegisterAgentResponse {} +message RegisterAgentResponse { + +} // The request message for having the agent report inventory. message ReportInventoryRequest { @@ -218,13 +216,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/google/cloud/osconfig/agentendpoint/v1/inventory.proto b/google/cloud/osconfig/agentendpoint/v1/inventory.proto index a1690c0c5..4cb92fb04 100644 --- a/google/cloud/osconfig/agentendpoint/v1/inventory.proto +++ b/google/cloud/osconfig/agentendpoint/v1/inventory.proto @@ -120,24 +120,6 @@ message Inventory { string version = 3; } - // Information related to a Quick Fix Engineering package. - // Fields are taken from Windows QuickFixEngineering Interface and match - // the source names: - // https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering - message WindowsQuickFixEngineeringPackage { - // A short textual description of the QFE update. - string caption = 1; - - // A textual description of the QFE update. - string description = 2; - - // Unique identifier associated with a particular QFE update. - string hot_fix_id = 3; - - // Date that the QFE update was installed. Mapped from installed_on field. - google.protobuf.Timestamp install_time = 4; - } - // Details related to a Zypper Patch. message ZypperPatch { // The name of the patch. @@ -199,6 +181,24 @@ message Inventory { google.protobuf.Timestamp last_deployment_change_time = 9; } + // Information related to a Quick Fix Engineering package. + // Fields are taken from Windows QuickFixEngineering Interface and match + // the source names: + // https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering + message WindowsQuickFixEngineeringPackage { + // A short textual description of the QFE update. + string caption = 1; + + // A textual description of the QFE update. + string description = 2; + + // Unique identifier associated with a particular QFE update. + string hot_fix_id = 3; + + // Date that the QFE update was installed. Mapped from installed_on field. + google.protobuf.Timestamp install_time = 4; + } + // Details about Windows Application - based on Windows Registry. // All fields in this message are taken from: // https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key diff --git a/google/cloud/osconfig/agentendpoint/v1/os_policy.proto b/google/cloud/osconfig/agentendpoint/v1/os_policy.proto index 0d6e4e11a..c4b0c1574 100644 --- a/google/cloud/osconfig/agentendpoint/v1/os_policy.proto +++ b/google/cloud/osconfig/agentendpoint/v1/os_policy.proto @@ -25,6 +25,21 @@ option java_package = "com.google.cloud.osconfig.agentendpoint.v1"; // An OS policy defines the desired state configuration for an instance. message OSPolicy { + // Policy mode + enum Mode { + // Invalid mode + MODE_UNSPECIFIED = 0; + + // This mode checks if the configuration resources in the policy are in + // their desired state. No actions are performed if they are not in the + // desired state. This mode is used for reporting purposes. + VALIDATION = 1; + + // This mode checks if the configuration resources in the policy are in + // their desired state, and if not, enforces the desired state. + ENFORCEMENT = 2; + } + // An OS policy resource is used to define the desired state configuration // and provides a specific functionality like installing/removing packages, // executing a script etc. @@ -36,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. @@ -78,6 +93,19 @@ message OSPolicy { // A resource that manages a system package. message PackageResource { + // The desired state that the OS Config agent maintains on the VM. + enum DesiredState { + // Unspecified is invalid. + DESIRED_STATE_UNSPECIFIED = 0; + + // Ensure that the package is installed. + INSTALLED = 1; + + // The agent ensures that the package is not installed and + // uninstalls it if detected. + REMOVED = 2; + } + // A deb package file. dpkg packages only support INSTALLED state. message Deb { // Required. A deb package. @@ -146,21 +174,8 @@ message OSPolicy { repeated string properties = 2; } - // The desired state that the OS Config agent maintains on the VM. - enum DesiredState { - // Unspecified is invalid. - DESIRED_STATE_UNSPECIFIED = 0; - - // Ensure that the package is installed. - INSTALLED = 1; - - // The agent ensures that the package is not installed and - // uninstalls it if detected. - REMOVED = 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. @@ -206,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. @@ -216,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 @@ -229,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]; @@ -249,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]; @@ -298,7 +313,7 @@ message OSPolicy { message Exec { // The interpreter to use. enum Interpreter { - // Defaults to NONE. + // Invalid value, the request will return validation error. INTERPRETER_UNSPECIFIED = 0; // If no interpreter is specified the @@ -340,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. @@ -426,18 +441,5 @@ message OSPolicy { } } - // Policy mode - enum Mode { - // Invalid mode - MODE_UNSPECIFIED = 0; - // This mode checks if the configuration resources in the policy are in - // their desired state. No actions are performed if they are not in the - // desired state. This mode is used for reporting purposes. - VALIDATION = 1; - - // This mode checks if the configuration resources in the policy are in - // their desired state, and if not, enforces the desired state. - ENFORCEMENT = 2; - } } diff --git a/google/cloud/osconfig/agentendpoint/v1/osconfig_v1.yaml b/google/cloud/osconfig/agentendpoint/v1/osconfig_v1.yaml index c51caf297..6c856d27d 100644 --- a/google/cloud/osconfig/agentendpoint/v1/osconfig_v1.yaml +++ b/google/cloud/osconfig/agentendpoint/v1/osconfig_v1.yaml @@ -18,9 +18,21 @@ backend: - selector: google.cloud.osconfig.agentendpoint.v1.AgentEndpointService.ReceiveTaskNotification deadline: 3600.0 +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/osPolicyAssignments/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/osPolicyAssignments/*/operations/*}' + authentication: rules: - - selector: 'google.longrunning.Operations.*' + - selector: google.longrunning.Operations.CancelOperation + 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 diff --git a/google/cloud/osconfig/agentendpoint/v1/patch_jobs.proto b/google/cloud/osconfig/agentendpoint/v1/patch_jobs.proto index 8f37db3f8..acacc94c9 100644 --- a/google/cloud/osconfig/agentendpoint/v1/patch_jobs.proto +++ b/google/cloud/osconfig/agentendpoint/v1/patch_jobs.proto @@ -69,6 +69,9 @@ message PatchConfig { // The ExecStep to run after the patch update. ExecStep post_step = 9; + + // Allows the patch job to run on Managed instance groups (MIGs). + bool mig_instances_allowed = 10; } // Apt patching will be performed by executing `apt-get update && apt-get @@ -241,10 +244,13 @@ message ExecStep { message ExecStepConfig { // The interpreter used to execute the a file. enum Interpreter { + // Deprecated, defaults to NONE for compatibility reasons. + 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. - INTERPRETER_UNSPECIFIED = 0; + NONE = 3; // Indicates that the script will be run with /bin/sh on Linux and cmd // on windows. diff --git a/google/cloud/osconfig/agentendpoint/v1/tasks.proto b/google/cloud/osconfig/agentendpoint/v1/tasks.proto index 27860e3a5..6ef7fc92e 100644 --- a/google/cloud/osconfig/agentendpoint/v1/tasks.proto +++ b/google/cloud/osconfig/agentendpoint/v1/tasks.proto @@ -189,8 +189,7 @@ 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]; } @@ -212,13 +211,12 @@ 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. @@ -258,8 +256,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/google/cloud/osconfig/agentendpoint/v1beta/BUILD.bazel b/google/cloud/osconfig/agentendpoint/v1beta/BUILD.bazel index bbadba579..1952950d7 100644 --- a/google/cloud/osconfig/agentendpoint/v1beta/BUILD.bazel +++ b/google/cloud/osconfig/agentendpoint/v1beta/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -27,6 +27,7 @@ proto_library( "tasks.proto", ], deps = [ + "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", ], @@ -66,18 +67,23 @@ java_grpc_library( java_gapic_library( name = "agentendpoint_java_gapic", srcs = [":agentendpoint_proto_with_info"], + gapic_yaml = "osconfig_gapic.yaml", grpc_service_config = "agentendpoint_grpc_service_config.json", + service_yaml = "osconfig_v1beta.yaml", test_deps = [ ":agentendpoint_java_grpc", ], + transport = "grpc+rest", deps = [ ":agentendpoint_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "agentendpoint_java_gapic_test_suite", test_classes = [ + "com.google.cloud.osconfig.agentendpoint.v1beta.AgentEndpointServiceClientHttpJsonTest", "com.google.cloud.osconfig.agentendpoint.v1beta.AgentEndpointServiceClientTest", ], runtime_deps = [":agentendpoint_java_gapic_test"], @@ -86,6 +92,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-osconfig-agentendpoint-v1beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":agentendpoint_java_gapic", ":agentendpoint_java_grpc", @@ -120,7 +128,9 @@ go_gapic_library( srcs = [":agentendpoint_proto_with_info"], grpc_service_config = "agentendpoint_grpc_service_config.json", importpath = "cloud.google.com/go/osconfig/agentendpoint/apiv1beta;agentendpoint", + metadata = True, service_yaml = "osconfig_v1beta.yaml", + transport = "grpc+rest", deps = [ ":agentendpoint_go_proto", ], @@ -138,6 +148,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-osconfig-agentendpoint-v1beta-go", deps = [ ":agentendpoint_go_gapic", + ":agentendpoint_go_gapic_srcjar-metadata.srcjar", ":agentendpoint_go_gapic_srcjar-test.srcjar", ":agentendpoint_go_proto", ], @@ -150,12 +161,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "agentendpoint_py_gapic", srcs = [":agentendpoint_proto"], grpc_service_config = "agentendpoint_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "agentendpoint_py_gapic_test", + srcs = [ + "agentendpoint_py_gapic_pytest.py", + "agentendpoint_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":agentendpoint_py_gapic"], ) # Open Source Packages @@ -188,28 +211,26 @@ php_grpc_library( deps = [":agentendpoint_php_proto"], ) -# Add api.http options to all RPCs in the services to enable PHP GAPIC -# generation -#php_gapic_library( -# name = "agentendpoint_php_gapic", -# srcs = [":agentendpoint_proto_with_info"], -# grpc_service_config = "agentendpoint_grpc_service_config.json", -# package = "google.cloud.osconfig.agentendpoint.v1beta", -# deps = [ -# ":agentendpoint_php_grpc", -# ":agentendpoint_php_proto", -# ], -#) -# -## Open Source Packages -#php_gapic_assembly_pkg( -# name = "google-cloud-osconfig-agentendpoint-v1beta-php", -# deps = [ -# ":agentendpoint_php_gapic", -# ":agentendpoint_php_grpc", -# ":agentendpoint_php_proto", -# ], -#) +php_gapic_library( + name = "agentendpoint_php_gapic", + srcs = [":agentendpoint_proto_with_info"], + grpc_service_config = "agentendpoint_grpc_service_config.json", + service_yaml = "osconfig_v1beta.yaml", + deps = [ + ":agentendpoint_php_grpc", + ":agentendpoint_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-osconfig-agentendpoint-v1beta-php", + deps = [ + ":agentendpoint_php_gapic", + ":agentendpoint_php_grpc", + ":agentendpoint_php_proto", + ], +) ############################################################################## # Node.js @@ -222,6 +243,7 @@ load( nodejs_gapic_library( name = "agentendpoint_nodejs_gapic", + package_name = "@google-cloud/agentendpoint", src = ":agentendpoint_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "agentendpoint_grpc_service_config.json", @@ -243,8 +265,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -262,7 +284,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "agentendpoint_ruby_gapic", - srcs = [":agentendpoint_proto_with_info",], + srcs = [":agentendpoint_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-agentendpoint-v1beta"], grpc_service_config = "agentendpoint_grpc_service_config.json", deps = [ @@ -308,6 +330,7 @@ csharp_gapic_library( srcs = [":agentendpoint_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "agentendpoint_grpc_service_config.json", + service_yaml = "osconfig_v1beta.yaml", deps = [ ":agentendpoint_csharp_grpc", ":agentendpoint_csharp_proto", @@ -327,4 +350,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "agentendpoint_cc_proto", + deps = [":agentendpoint_proto"], +) + +cc_grpc_library( + name = "agentendpoint_cc_grpc", + srcs = [":agentendpoint_proto"], + grpc_only = True, + deps = [":agentendpoint_cc_proto"], +) diff --git a/google/cloud/osconfig/agentendpoint/v1beta/agentendpoint.proto b/google/cloud/osconfig/agentendpoint/v1beta/agentendpoint.proto index 5a6ccaa74..db8330f65 100644 --- a/google/cloud/osconfig/agentendpoint/v1beta/agentendpoint.proto +++ b/google/cloud/osconfig/agentendpoint/v1beta/agentendpoint.proto @@ -32,8 +32,7 @@ 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"; } @@ -43,32 +42,25 @@ 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"; } // Lookup the effective guest policy that applies to a VM instance. This // lookup merges all policies that are assigned to the instance ancestry. - rpc LookupEffectiveGuestPolicy(LookupEffectiveGuestPolicyRequest) - returns (EffectiveGuestPolicy) { - option (google.api.method_signature) = - "instance_id_token,os_short_name,os_version,os_architecture"; + rpc LookupEffectiveGuestPolicy(LookupEffectiveGuestPolicyRequest) returns (EffectiveGuestPolicy) { + option (google.api.method_signature) = "instance_id_token,os_short_name,os_version,os_architecture"; } // 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"; } } @@ -85,7 +77,9 @@ message ReceiveTaskNotificationRequest { // The streaming rpc message that notifies the agent when it has a task // that it needs to perform on the VM instance. -message ReceiveTaskNotificationResponse {} +message ReceiveTaskNotificationResponse { + +} // A request message for signaling the start of a task execution. message StartNextTaskRequest { @@ -118,6 +112,7 @@ message ReportTaskProgressRequest { // specified below: // 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. @@ -152,6 +147,7 @@ message ReportTaskCompleteRequest { // enum values: // APPLY_PATCHES = ApplyPatchesTaskOutput // EXEC_STEP = ExecStepTaskOutput + // APPLY_CONFIG_TASK = ApplyConfigTaskOutput TaskType task_type = 3 [(google.api.field_behavior) = REQUIRED]; // Descriptive error message if the task execution ended in error. @@ -168,7 +164,9 @@ 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 { @@ -183,9 +181,26 @@ message RegisterAgentRequest { // Required. The capabilities supported by the agent. Supported values are: // PATCH_GA // GUEST_POLICY_BETA - repeated string supported_capabilities = 3 - [(google.api.field_behavior) = REQUIRED]; + // CONFIG_V1 + 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 + // Datacenter'. + string os_long_name = 4; + + // The operating system short name. + // For example, 'windows' or 'debian'. + string os_short_name = 5; + + // The version of the operating system. + string os_version = 6; + + // The system architecture of the operating system. + string os_architecture = 7; } // The response message after the agent registered. -message RegisterAgentResponse {} +message RegisterAgentResponse { + +} diff --git a/google/cloud/osconfig/agentendpoint/v1beta/osconfig_v1beta.yaml b/google/cloud/osconfig/agentendpoint/v1beta/osconfig_v1beta.yaml index 18814a339..4755c631d 100644 --- a/google/cloud/osconfig/agentendpoint/v1beta/osconfig_v1beta.yaml +++ b/google/cloud/osconfig/agentendpoint/v1beta/osconfig_v1beta.yaml @@ -1,7 +1,7 @@ type: google.api.Service config_version: 3 name: osconfig.googleapis.com -title: Cloud OS Config API +title: OS Config API apis: - name: google.cloud.osconfig.agentendpoint.v1beta.AgentEndpointService @@ -17,3 +17,14 @@ backend: deadline: 30.0 - selector: google.cloud.osconfig.agentendpoint.v1beta.AgentEndpointService.ReceiveTaskNotification deadline: 3600.0 + +authentication: + rules: + - selector: google.longrunning.Operations.CancelOperation + 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 diff --git a/google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto b/google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto index 4c415c572..8a827b842 100644 --- a/google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto +++ b/google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.osconfig.agentendpoint.v1beta; + option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/agentendpoint/v1beta;agentendpoint"; option java_outer_classname = "PatchJobs"; option java_package = "com.google.cloud.osconfig.agentendpoint.v1beta"; @@ -70,6 +71,9 @@ message PatchConfig { // The ExecStep to run after the patch update. ExecStep post_step = 9; + + // Allows the patch job to run on Managed instance groups (MIGs). + bool mig_instances_allowed = 10; } // Apt patching will be performed by executing `apt-get update && apt-get @@ -125,7 +129,9 @@ 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. @@ -240,10 +246,13 @@ message ExecStep { message ExecStepConfig { // The interpreter used to execute the a file. enum Interpreter { + // Deprecated, defaults to NONE for compatibility reasons. + 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. - INTERPRETER_UNSPECIFIED = 0; + NONE = 3; // Indicates that the script will be run with /bin/sh on Linux and cmd // on windows. diff --git a/google/cloud/osconfig/agentendpoint/v1beta/tasks.proto b/google/cloud/osconfig/agentendpoint/v1beta/tasks.proto index 23dc42159..3d522b027 100644 --- a/google/cloud/osconfig/agentendpoint/v1beta/tasks.proto +++ b/google/cloud/osconfig/agentendpoint/v1beta/tasks.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/agentendpoint/v1beta;agentendpoint"; -option java_multiple_files = true; option java_outer_classname = "Tasks"; option java_package = "com.google.cloud.osconfig.agentendpoint.v1beta"; option php_namespace = "Google\\Cloud\\OsConfig\\V1beta"; @@ -176,7 +175,6 @@ 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]; } diff --git a/google/cloud/osconfig/v1/BUILD.bazel b/google/cloud/osconfig/v1/BUILD.bazel index 1c91ca683..0db392598 100644 --- a/google/cloud/osconfig/v1/BUILD.bazel +++ b/google/cloud/osconfig/v1/BUILD.bazel @@ -89,6 +89,7 @@ java_gapic_library( test_deps = [ ":osconfig_java_grpc", ], + transport = "grpc+rest", deps = [ ":osconfig_java_proto", "//google/api:api_java_proto", @@ -98,7 +99,9 @@ java_gapic_library( java_gapic_test( name = "osconfig_java_gapic_test_suite", test_classes = [ + "com.google.cloud.osconfig.v1.OsConfigServiceClientHttpJsonTest", "com.google.cloud.osconfig.v1.OsConfigServiceClientTest", + "com.google.cloud.osconfig.v1.OsConfigZonalServiceClientHttpJsonTest", "com.google.cloud.osconfig.v1.OsConfigZonalServiceClientTest", ], runtime_deps = [":osconfig_java_gapic_test"], @@ -107,6 +110,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-osconfig-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":osconfig_java_gapic", ":osconfig_java_grpc", @@ -148,6 +153,7 @@ go_gapic_library( importpath = "cloud.google.com/go/osconfig/apiv1;osconfig", metadata = True, service_yaml = "osconfig_v1.yaml", + transport = "grpc+rest", deps = [ ":osconfig_go_proto", "//google/longrunning:longrunning_go_proto", @@ -182,15 +188,26 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_proto_library", + "py_test", ) py_gapic_library( name = "osconfig_py_gapic", srcs = [":osconfig_proto"], grpc_service_config = "osconfig_grpc_service_config.json", - opt_args = [ - "warehouse-package-name=google-cloud-os-config", + opt_args = ["warehouse-package-name=google-cloud-os-config"], + transport = "grpc", +) + +py_test( + name = "osconfig_py_gapic_test", + srcs = [ + "osconfig_py_gapic_pytest.py", + "osconfig_py_gapic_test.py", ], + legacy_create_init = False, + deps = [":osconfig_py_gapic"], ) # Open Source Packages @@ -201,6 +218,11 @@ py_gapic_assembly_pkg( ], ) +py_proto_library( + name = "osconfig_py_proto", + deps = [":osconfig_proto"], +) + ############################################################################## # PHP ############################################################################## @@ -351,6 +373,7 @@ csharp_gapic_library( srcs = [":osconfig_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "osconfig_grpc_service_config.json", + service_yaml = "osconfig_v1.yaml", deps = [ ":osconfig_csharp_grpc", ":osconfig_csharp_proto", diff --git a/google/cloud/osconfig/v1/inventory.proto b/google/cloud/osconfig/v1/inventory.proto index 8f89d8b89..92c2b81c8 100644 --- a/google/cloud/osconfig/v1/inventory.proto +++ b/google/cloud/osconfig/v1/inventory.proto @@ -264,12 +264,9 @@ message Inventory { google.protobuf.Timestamp install_time = 5; } - // Contains information about a Windows application as retrieved from the - // Windows Registry. For more information about these fields, see - // - // [Windows Installer Properties for the Uninstall - // Registry](https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key){: - // class="external" } + // Contains information about a Windows application that is retrieved from the + // Windows Registry. For more information about these fields, see: + // https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key message WindowsApplication { // The name of the application or product. string display_name = 1; @@ -305,7 +302,8 @@ message Inventory { map items = 2; // Output only. Timestamp of the last reported inventory for the VM. - google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A request message for getting inventory data for the specified VM. diff --git a/google/cloud/osconfig/v1/os_policy.proto b/google/cloud/osconfig/v1/os_policy.proto index a07e251f6..de0db1917 100644 --- a/google/cloud/osconfig/v1/os_policy.proto +++ b/google/cloud/osconfig/v1/os_policy.proto @@ -28,6 +28,21 @@ option ruby_package = "Google::Cloud::OsConfig::V1"; // An OS policy defines the desired state configuration for a VM. message OSPolicy { + // Policy mode + enum Mode { + // Invalid mode + MODE_UNSPECIFIED = 0; + + // This mode checks if the configuration resources in the policy are in + // their desired state. No actions are performed if they are not in the + // desired state. This mode is used for reporting purposes. + VALIDATION = 1; + + // This mode checks if the configuration resources in the policy are in + // their desired state, and if not, enforces the desired state. + ENFORCEMENT = 2; + } + // Filtering criteria to select VMs based on inventory details. message InventoryFilter { // Required. The OS short name @@ -96,6 +111,19 @@ message OSPolicy { // A resource that manages a system package. message PackageResource { + // The desired state that the OS Config agent maintains on the VM. + enum DesiredState { + // Unspecified is invalid. + DESIRED_STATE_UNSPECIFIED = 0; + + // Ensure that the package is installed. + INSTALLED = 1; + + // The agent ensures that the package is not installed and + // uninstalls it if detected. + REMOVED = 2; + } + // A deb package file. dpkg packages only support INSTALLED state. message Deb { // Required. A deb package. @@ -164,19 +192,6 @@ message OSPolicy { repeated string properties = 2; } - // The desired state that the OS Config agent maintains on the VM. - enum DesiredState { - // Unspecified is invalid. - DESIRED_STATE_UNSPECIFIED = 0; - - // Ensure that the package is installed. - INSTALLED = 1; - - // The agent ensures that the package is not installed and - // uninstalls it if detected. - REMOVED = 2; - } - // Required. The desired state the agent should maintain for this package. DesiredState desired_state = 1 [(google.api.field_behavior) = REQUIRED]; @@ -339,7 +354,7 @@ message OSPolicy { message Exec { // The interpreter to use. enum Interpreter { - // Defaults to NONE. + // Invalid value, the request will return validation error. INTERPRETER_UNSPECIFIED = 0; // If an interpreter is not specified, the @@ -498,21 +513,6 @@ message OSPolicy { repeated Resource resources = 2 [(google.api.field_behavior) = REQUIRED]; } - // Policy mode - enum Mode { - // Invalid mode - MODE_UNSPECIFIED = 0; - - // This mode checks if the configuration resources in the policy are in - // their desired state. No actions are performed if they are not in the - // desired state. This mode is used for reporting purposes. - VALIDATION = 1; - - // This mode checks if the configuration resources in the policy are in - // their desired state, and if not, enforces the desired state. - ENFORCEMENT = 2; - } - // Required. The id of the OS policy with the following restrictions: // // * Must contain only lowercase letters, numbers, and hyphens. diff --git a/google/cloud/osconfig/v1/os_policy_assignment_reports.proto b/google/cloud/osconfig/v1/os_policy_assignment_reports.proto index f610fc5a8..aa4b2b11b 100644 --- a/google/cloud/osconfig/v1/os_policy_assignment_reports.proto +++ b/google/cloud/osconfig/v1/os_policy_assignment_reports.proto @@ -114,6 +114,27 @@ message OSPolicyAssignmentReport { // Compliance data for an OS policy message OSPolicyCompliance { + // Possible compliance states for an os policy. + enum ComplianceState { + // The policy is in an unknown compliance state. + // + // Refer to the field `compliance_state_reason` to learn the exact reason + // for the policy to be in this compliance state. + UNKNOWN = 0; + + // Policy is compliant. + // + // The policy is compliant if all the underlying resources are also + // compliant. + COMPLIANT = 1; + + // Policy is non-compliant. + // + // The policy is non-compliant if one or more underlying resources are + // non-compliant. + NON_COMPLIANT = 2; + } + // Compliance data for an OS policy resource. message OSPolicyResourceCompliance { // Step performed by the OS Config agent for configuring an @@ -152,13 +173,6 @@ message OSPolicyAssignmentReport { string error_message = 2; } - // ExecResource specific output. - message ExecResourceOutput { - // Output from enforcement phase output file (if run). - // Output size is limited to 100K bytes. - bytes enforcement_output = 2; - } - // Possible compliance states for a resource. enum ComplianceState { // The resource is in an unknown compliance state. @@ -174,6 +188,13 @@ message OSPolicyAssignmentReport { NON_COMPLIANT = 2; } + // ExecResource specific output. + message ExecResourceOutput { + // Output from enforcement phase output file (if run). + // Output size is limited to 100K bytes. + bytes enforcement_output = 2; + } + // The ID of the OS policy resource. string os_policy_resource_id = 1; @@ -207,27 +228,6 @@ message OSPolicyAssignmentReport { } } - // Possible compliance states for an os policy. - enum ComplianceState { - // The policy is in an unknown compliance state. - // - // Refer to the field `compliance_state_reason` to learn the exact reason - // for the policy to be in this compliance state. - UNKNOWN = 0; - - // Policy is compliant. - // - // The policy is compliant if all the underlying resources are also - // compliant. - COMPLIANT = 1; - - // Policy is non-compliant. - // - // The policy is non-compliant if one or more underlying resources are - // non-compliant. - NON_COMPLIANT = 2; - } - // The OS policy id string os_policy_id = 1; diff --git a/google/cloud/osconfig/v1/osconfig_common.proto b/google/cloud/osconfig/v1/osconfig_common.proto index 43059e9a6..2b72d6ae9 100644 --- a/google/cloud/osconfig/v1/osconfig_common.proto +++ b/google/cloud/osconfig/v1/osconfig_common.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/osconfig/v1/osconfig_service.proto b/google/cloud/osconfig/v1/osconfig_service.proto index ae256fe68..515905c87 100644 --- a/google/cloud/osconfig/v1/osconfig_service.proto +++ b/google/cloud/osconfig/v1/osconfig_service.proto @@ -16,12 +16,12 @@ syntax = "proto3"; package google.cloud.osconfig.v1; -import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/resource.proto"; import "google/cloud/osconfig/v1/patch_deployments.proto"; import "google/cloud/osconfig/v1/patch_jobs.proto"; import "google/protobuf/empty.proto"; +import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.OsConfig.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1;osconfig"; @@ -123,4 +123,36 @@ service OsConfigService { }; option (google.api.method_signature) = "name"; } + + // Update an OS Config patch deployment. + rpc UpdatePatchDeployment(UpdatePatchDeploymentRequest) + returns (PatchDeployment) { + option (google.api.http) = { + patch: "/v1/{patch_deployment.name=projects/*/patchDeployments/*}" + body: "patch_deployment" + }; + option (google.api.method_signature) = "patch_deployment,update_mask"; + } + + // Change state of patch deployment to "PAUSED". + // Patch deployment in paused state doesn't generate patch jobs. + rpc PausePatchDeployment(PausePatchDeploymentRequest) + returns (PatchDeployment) { + option (google.api.http) = { + post: "/v1/{name=projects/*/patchDeployments/*}:pause" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Change state of patch deployment back to "ACTIVE". + // Patch deployment in active state continues to generate patch jobs. + rpc ResumePatchDeployment(ResumePatchDeploymentRequest) + returns (PatchDeployment) { + option (google.api.http) = { + post: "/v1/{name=projects/*/patchDeployments/*}:resume" + body: "*" + }; + option (google.api.method_signature) = "name"; + } } diff --git a/google/cloud/osconfig/v1/patch_deployments.proto b/google/cloud/osconfig/v1/patch_deployments.proto index 8cf852882..d5708544f 100644 --- a/google/cloud/osconfig/v1/patch_deployments.proto +++ b/google/cloud/osconfig/v1/patch_deployments.proto @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/osconfig/v1/patch_jobs.proto"; import "google/protobuf/duration.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/type/datetime.proto"; import "google/type/dayofweek.proto"; @@ -43,6 +44,19 @@ message PatchDeployment { pattern: "projects/{project}/patchDeployments/{patch_deployment}" }; + // Represents state of patch peployment. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // Active value means that patch deployment generates Patch Jobs. + ACTIVE = 1; + + // Paused value means that patch deployment does not generate + // Patch jobs. Requires user action to move in and out from this state. + PAUSED = 2; + } + // Unique name for the patch deployment resource in a project. The patch // deployment name is in the form: // `projects/{project_id}/patchDeployments/{patch_deployment_id}`. @@ -94,6 +108,9 @@ message PatchDeployment { // Optional. Rollout strategy of the patch job. PatchRollout rollout = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Current state of the patch deployment. + State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Sets the time for a one time patch deployment. Timestamp is in @@ -111,16 +128,16 @@ message RecurringSchedule { // Invalid. A frequency must be specified. FREQUENCY_UNSPECIFIED = 0; - // Indicates that the frequency should be expressed in terms of - // weeks. + // Indicates that the frequency of recurrence should be expressed in terms + // of weeks. WEEKLY = 1; - // Indicates that the frequency should be expressed in terms of - // months. + // Indicates that the frequency of recurrence should be expressed in terms + // of months. MONTHLY = 2; - // Indicates that the frequency should be expressed in terms of - // days. + // Indicates that the frequency of recurrence should be expressed in terms + // of days. DAILY = 3; } @@ -197,6 +214,15 @@ message WeekDayOfMonth { // Required. A day of the week. google.type.DayOfWeek day_of_week = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Represents the number of days before or after the given week day + // of month that the patch deployment is scheduled for. For example if + // `week_ordinal` and `day_of_week` values point to the second day of the + // month and this `day_offset` value is set to `3`, the patch deployment takes + // place three days after the second Tuesday of the month. If this value is + // negative, for example -5, the patches are deployed five days before before + // the second Tuesday of the month. Allowed values are in range [-30, 30]. + int32 day_offset = 3 [(google.api.field_behavior) = OPTIONAL]; } // A request message for creating a patch deployment. @@ -276,3 +302,38 @@ message DeletePatchDeploymentRequest { } ]; } + +// A request message for updating a patch deployment. +message UpdatePatchDeploymentRequest { + // Required. The patch deployment to Update. + PatchDeployment patch_deployment = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Field mask that controls which fields of the patch deployment + // should be updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A request message for pausing a patch deployment. +message PausePatchDeploymentRequest { + // Required. The resource name of the patch deployment in the form + // `projects/*/patchDeployments/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "osconfig.googleapis.com/PatchDeployment" + } + ]; +} + +// A request message for resuming a patch deployment. +message ResumePatchDeploymentRequest { + // Required. The resource name of the patch deployment in the form + // `projects/*/patchDeployments/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "osconfig.googleapis.com/PatchDeployment" + } + ]; +} diff --git a/google/cloud/osconfig/v1/patch_jobs.proto b/google/cloud/osconfig/v1/patch_jobs.proto index 1fffb532a..4edfc8df5 100644 --- a/google/cloud/osconfig/v1/patch_jobs.proto +++ b/google/cloud/osconfig/v1/patch_jobs.proto @@ -183,6 +183,34 @@ message PatchJob { pattern: "projects/{project}/patchJobs/{patch_job}" }; + // Enumeration of the various states a patch job passes through as it + // executes. + enum State { + // State must be specified. + STATE_UNSPECIFIED = 0; + + // The patch job was successfully initiated. + STARTED = 1; + + // The patch job is looking up instances to run the patch on. + INSTANCE_LOOKUP = 2; + + // Instances are being patched. + PATCHING = 3; + + // Patch job completed successfully. + SUCCEEDED = 4; + + // Patch job completed but there were errors. + COMPLETED_WITH_ERRORS = 5; + + // The patch job was canceled. + CANCELED = 6; + + // The patch job timed out. + TIMED_OUT = 7; + } + // A summary of the current patch state across all instances that this patch // job affects. Contains counts of instances in different states. These states // map to `InstancePatchState`. List patch job instance details to see the @@ -236,34 +264,6 @@ message PatchJob { int64 no_agent_detected_instance_count = 15; } - // Enumeration of the various states a patch job passes through as it - // executes. - enum State { - // State must be specified. - STATE_UNSPECIFIED = 0; - - // The patch job was successfully initiated. - STARTED = 1; - - // The patch job is looking up instances to run the patch on. - INSTANCE_LOOKUP = 2; - - // Instances are being patched. - PATCHING = 3; - - // Patch job completed successfully. - SUCCEEDED = 4; - - // Patch job completed but there were errors. - COMPLETED_WITH_ERRORS = 5; - - // The patch job was canceled. - CANCELED = 6; - - // The patch job timed out. - TIMED_OUT = 7; - } - // Unique identifier for this patch job in the form // `projects/*/patchJobs/*` string name = 1; @@ -369,6 +369,9 @@ message PatchConfig { // The `ExecStep` to run after the patch update. ExecStep post_step = 9; + + // Allows the patch job to run on Managed instance groups (MIGs). + bool mig_instances_allowed = 10; } // Namespace for instance state enums. diff --git a/google/cloud/osconfig/v1alpha/BUILD.bazel b/google/cloud/osconfig/v1alpha/BUILD.bazel index b88230649..0a74ba0b7 100644 --- a/google/cloud/osconfig/v1alpha/BUILD.bazel +++ b/google/cloud/osconfig/v1alpha/BUILD.bazel @@ -25,6 +25,7 @@ proto_library( "instance_os_policies_compliance.proto", "inventory.proto", "os_policy.proto", + "os_policy_assignment_reports.proto", "os_policy_assignments.proto", "osconfig_common.proto", "osconfig_zonal_service.proto", @@ -77,18 +78,23 @@ java_grpc_library( java_gapic_library( name = "osconfig_java_gapic", srcs = [":osconfig_proto_with_info"], + gapic_yaml = None, grpc_service_config = "osconfig_grpc_service_config.json", + service_yaml = "osconfig_v1alpha.yaml", test_deps = [ ":osconfig_java_grpc", ], + transport = "grpc+rest", deps = [ ":osconfig_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "osconfig_java_gapic_test_suite", test_classes = [ + "com.google.cloud.osconfig.v1alpha.OsConfigZonalServiceClientHttpJsonTest", "com.google.cloud.osconfig.v1alpha.OsConfigZonalServiceClientTest", ], runtime_deps = [":osconfig_java_gapic_test"], @@ -97,6 +103,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-osconfig-v1alpha-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":osconfig_java_gapic", ":osconfig_java_grpc", @@ -135,6 +143,7 @@ go_gapic_library( importpath = "cloud.google.com/go/osconfig/apiv1alpha;osconfig", metadata = True, service_yaml = "osconfig_v1alpha.yaml", + transport = "grpc+rest", deps = [ ":osconfig_go_proto", "//google/longrunning:longrunning_go_proto", @@ -169,15 +178,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "osconfig_py_gapic", srcs = [":osconfig_proto"], grpc_service_config = "osconfig_grpc_service_config.json", - opt_args = [ - "warehouse-package-name=google-cloud-os-config", + opt_args = ["warehouse-package-name=google-cloud-os-config"], + transport = "grpc", +) + +py_test( + name = "osconfig_py_gapic_test", + srcs = [ + "osconfig_py_gapic_pytest.py", + "osconfig_py_gapic_test.py", ], + legacy_create_init = False, + deps = [":osconfig_py_gapic"], ) # Open Source Packages @@ -337,6 +356,7 @@ csharp_gapic_library( srcs = [":osconfig_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "osconfig_grpc_service_config.json", + service_yaml = "osconfig_v1alpha.yaml", deps = [ ":osconfig_csharp_grpc", ":osconfig_csharp_proto", @@ -356,4 +376,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "osconfig_cc_proto", + deps = [":osconfig_proto"], +) + +cc_grpc_library( + name = "osconfig_cc_grpc", + srcs = [":osconfig_proto"], + grpc_only = True, + deps = [":osconfig_cc_proto"], +) diff --git a/google/cloud/osconfig/v1alpha/config_common.proto b/google/cloud/osconfig/v1alpha/config_common.proto index fa60feafd..a7a50c716 100644 --- a/google/cloud/osconfig/v1alpha/config_common.proto +++ b/google/cloud/osconfig/v1alpha/config_common.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.osconfig.v1alpha; + option csharp_namespace = "Google.Cloud.OsConfig.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1alpha;osconfig"; option java_multiple_files = true; @@ -27,8 +28,12 @@ option ruby_package = "Google::Cloud::OsConfig::V1alpha"; // Step performed by the OS Config agent for configuring an `OSPolicyResource` // to its desired state. message OSPolicyResourceConfigStep { + option deprecated = true; + // Supported configuration step types enum Type { + option deprecated = true; + // Default value. This value is unused. TYPE_UNSPECIFIED = 0; @@ -53,6 +58,8 @@ message OSPolicyResourceConfigStep { // Supported outcomes for a configuration step. enum Outcome { + option deprecated = true; + // Default value. This value is unused. OUTCOME_UNSPECIFIED = 0; @@ -76,8 +83,12 @@ message OSPolicyResourceConfigStep { // Compliance data for an OS policy resource. message OSPolicyResourceCompliance { + option deprecated = true; + // ExecResource specific output. message ExecResourceOutput { + option deprecated = true; + // Output from Enforcement phase output file (if run). // Output size is limited to 100K bytes. bytes enforcement_output = 2; @@ -102,6 +113,8 @@ message OSPolicyResourceCompliance { // Supported OSPolicy compliance states. enum OSPolicyComplianceState { + option deprecated = true; + // Default value. This value is unused. OS_POLICY_COMPLIANCE_STATE_UNSPECIFIED = 0; diff --git a/google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto b/google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto index 65c3f682f..501ac3aef 100644 --- a/google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto +++ b/google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto @@ -42,6 +42,7 @@ option ruby_package = "Google::Cloud::OsConfig::V1alpha"; // For more information, see [View // compliance](https://cloud.google.com/compute/docs/os-configuration-management/view-compliance). message InstanceOSPoliciesCompliance { + option deprecated = true; option (google.api.resource) = { type: "osconfig.googleapis.com/InstanceOSPoliciesCompliance" pattern: "projects/{project}/locations/{location}/instanceOSPoliciesCompliances/{instance}" @@ -49,6 +50,8 @@ message InstanceOSPoliciesCompliance { // Compliance data for an OS policy message OSPolicyCompliance { + option deprecated = true; + // The OS policy id string os_policy_id = 1; @@ -115,6 +118,8 @@ message InstanceOSPoliciesCompliance { // A request message for getting OS policies compliance data for the given // Compute Engine VM instance. message GetInstanceOSPoliciesComplianceRequest { + option deprecated = true; + // Required. API resource name for instance OS policies compliance resource. // // Format: @@ -135,6 +140,8 @@ message GetInstanceOSPoliciesComplianceRequest { // A request message for listing OS policies compliance data for all Compute // Engine VMs in the given location. message ListInstanceOSPoliciesCompliancesRequest { + option deprecated = true; + // Required. The parent resource name. // // Format: `projects/{project}/locations/{location}` @@ -164,6 +171,8 @@ message ListInstanceOSPoliciesCompliancesRequest { // A response message for listing OS policies compliance data for all Compute // Engine VMs in the given location. message ListInstanceOSPoliciesCompliancesResponse { + option deprecated = true; + // List of instance OS policies compliance objects. repeated InstanceOSPoliciesCompliance instance_os_policies_compliances = 1; diff --git a/google/cloud/osconfig/v1alpha/inventory.proto b/google/cloud/osconfig/v1alpha/inventory.proto index f9ad221e7..c524ae1c9 100644 --- a/google/cloud/osconfig/v1alpha/inventory.proto +++ b/google/cloud/osconfig/v1alpha/inventory.proto @@ -264,12 +264,9 @@ message Inventory { google.protobuf.Timestamp install_time = 5; } - // Contains information about a Windows application as retrieved from the - // Windows Registry. For more information about these fields, see - // - // [Windows Installer Properties for the Uninstall - // Registry](https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key){: - // class="external" } + // Contains information about a Windows application that is retrieved from the + // Windows Registry. For more information about these fields, see: + // https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key message WindowsApplication { // The name of the application or product. string display_name = 1; @@ -298,15 +295,14 @@ message Inventory { // Output only. Base level operating system information for the VM. OsInfo os_info = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Inventory items related to the VM keyed by an opaque unique - // identifier for each inventory item. The identifier is unique to each - // distinct and addressable inventory item and will change, when there is a - // new package version. + // Output only. Inventory items related to the VM keyed by an opaque unique identifier for + // each inventory item. The identifier is unique to each distinct and + // addressable inventory item and will change, when there is a new package + // version. map items = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Timestamp of the last reported inventory for the VM. - google.protobuf.Timestamp update_time = 4 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A request message for getting inventory data for the specified VM. @@ -336,11 +332,9 @@ message GetInventoryRequest { message ListInventoriesRequest { // Required. The parent resource name. // - // Format: `projects/{project}/locations/{location}/instances/{instance}` + // Format: `projects/{project}/locations/{location}/instances/-` // - // For `{project}`, either `project-number` or `project-id` can be - // provided. For `{instance}`, only hyphen or dash character is supported to - // list inventories across VMs. + // For `{project}`, either `project-number` or `project-id` can be provided. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/osconfig/v1alpha/os_policy.proto b/google/cloud/osconfig/v1alpha/os_policy.proto index 5b004145c..578d82a1e 100644 --- a/google/cloud/osconfig/v1alpha/os_policy.proto +++ b/google/cloud/osconfig/v1alpha/os_policy.proto @@ -21,15 +21,29 @@ import "google/api/field_behavior.proto"; option csharp_namespace = "Google.Cloud.OsConfig.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1alpha;osconfig"; option java_multiple_files = true; -option java_outer_classname = "OSPolicyProto"; +option java_outer_classname = "OsPolicyProto"; option java_package = "com.google.cloud.osconfig.v1alpha"; option php_namespace = "Google\\Cloud\\OsConfig\\V1alpha"; option ruby_package = "Google::Cloud::OsConfig::V1alpha"; // An OS policy defines the desired state configuration for a VM. message OSPolicy { - // The `OSFilter` is used to specify the OS filtering criteria for the - // resource group. + // Policy mode + enum Mode { + // Invalid mode + MODE_UNSPECIFIED = 0; + + // This mode checks if the configuration resources in the policy are in + // their desired state. No actions are performed if they are not in the + // desired state. This mode is used for reporting purposes. + VALIDATION = 1; + + // This mode checks if the configuration resources in the policy are in + // their desired state, and if not, enforces the desired state. + ENFORCEMENT = 2; + } + + // Filtering criteria to select VMs based on OS details. message OSFilter { // This should match OS short name emitted by the OS inventory agent. // An empty value matches any OS. @@ -43,6 +57,21 @@ message OSPolicy { string os_version = 2; } + // Filtering criteria to select VMs based on inventory details. + message InventoryFilter { + // Required. The OS short name + string os_short_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // The OS version + // + // Prefix matches are supported if asterisk(*) is provided as the + // last character. For example, to match all versions with a major + // version of `7`, specify the following value for this field `7.*` + // + // An empty string matches all OS versions. + string os_version = 2; + } + // An OS policy resource is used to define the desired state configuration // and provides a specific functionality like installing/removing packages, // executing a script etc. @@ -96,6 +125,19 @@ message OSPolicy { // A resource that manages a system package. message PackageResource { + // The desired state that the OS Config agent maintains on the VM. + enum DesiredState { + // Unspecified is invalid. + DESIRED_STATE_UNSPECIFIED = 0; + + // Ensure that the package is installed. + INSTALLED = 1; + + // The agent ensures that the package is not installed and + // uninstalls it if detected. + REMOVED = 2; + } + // A deb package file. dpkg packages only support INSTALLED state. message Deb { // Required. A deb package. @@ -164,19 +206,6 @@ message OSPolicy { repeated string properties = 2; } - // The desired state that the OS Config agent maintains on the VM. - enum DesiredState { - // Unspecified is invalid. - DESIRED_STATE_UNSPECIFIED = 0; - - // Ensure that the package is installed. - INSTALLED = 1; - - // The agent ensures that the package is not installed and - // uninstalls it if detected. - REMOVED = 2; - } - // Required. The desired state the agent should maintain for this package. DesiredState desired_state = 1 [(google.api.field_behavior) = REQUIRED]; @@ -339,21 +368,21 @@ message OSPolicy { message Exec { // The interpreter to use. enum Interpreter { - // Defaults to NONE. + // Invalid value, the request will return validation error. INTERPRETER_UNSPECIFIED = 0; - // If no interpreter is specified the - // source will be executed directly, which will likely only - // succeed for executables and scripts with shebang lines. - // [Wikipedia - // shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)). + // If an interpreter is not specified, the + // source is executed directly. This execution, without an + // interpreter, only succeeds for executables and scripts that have shebang lines. NONE = 1; - // Indicates that the script will be run with /bin/sh on Linux and - // cmd.exe on windows. + // Indicates that the script runs with `/bin/sh` on Linux and + // `cmd.exe` on Windows. SHELL = 2; - // Indicates that the script will be run with powershell. + // Indicates that the script runs with PowerShell. POWERSHELL = 3; } @@ -478,29 +507,30 @@ message OSPolicy { // group within the OS policy is selected based on the `OSFilter` specified // within the resource group. message ResourceGroup { + // Deprecated. Use the `inventory_filters` field instead. // Used to specify the OS filter for a resource group - OSFilter os_filter = 1; + OSFilter os_filter = 1 [deprecated = true]; + + // List of inventory filters for the resource group. + // + // The resources in this resource group are applied to the target VM if it + // satisfies at least one of the following inventory filters. + // + // For example, to apply this resource group to VMs running either `RHEL` or + // `CentOS` operating systems, specify 2 items for the list with following + // values: + // inventory_filters[0].os_short_name='rhel' and + // inventory_filters[1].os_short_name='centos' + // + // If the list is empty, this resource group will be applied to the target + // VM unconditionally. + repeated InventoryFilter inventory_filters = 3; // Required. List of resources configured for this resource group. // The resources are executed in the exact order specified here. repeated Resource resources = 2 [(google.api.field_behavior) = REQUIRED]; } - // Policy mode - enum Mode { - // Invalid mode - MODE_UNSPECIFIED = 0; - - // This mode checks if the configuration resources in the policy are in - // their desired state. No actions are performed if they are not in the - // desired state. This mode is used for reporting purposes. - VALIDATION = 1; - - // This mode checks if the configuration resources in the policy are in - // their desired state, and if not, enforces the desired state. - ENFORCEMENT = 2; - } - // Required. The id of the OS policy with the following restrictions: // // * Must contain only lowercase letters, numbers, and hyphens. diff --git a/google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto b/google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto new file mode 100644 index 000000000..87905bbf5 --- /dev/null +++ b/google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto @@ -0,0 +1,296 @@ +// 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 google.cloud.osconfig.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.OsConfig.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1alpha;osconfig"; +option java_multiple_files = true; +option java_outer_classname = "OSPolicyAssignmentReportsProto"; +option java_package = "com.google.cloud.osconfig.v1alpha"; +option php_namespace = "Google\\Cloud\\OsConfig\\V1alpha"; +option ruby_package = "Google::Cloud::OsConfig::V1alpha"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/InstanceOSPolicyAssignment" + pattern: "projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/{assignment}" +}; + +// Get a report of the OS policy assignment for a VM instance. +message GetOSPolicyAssignmentReportRequest { + // Required. API resource name for OS policy assignment report. + // + // Format: + // `/projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/{assignment}/report` + // + // For `{project}`, either `project-number` or `project-id` can be provided. + // For `{instance_id}`, either Compute Engine `instance-id` or `instance-name` + // can be provided. + // For `{assignment_id}`, the OSPolicyAssignment id must be provided. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "osconfig.googleapis.com/OSPolicyAssignmentReport" + } + ]; +} + +// List the OS policy assignment reports for VM instances. +message ListOSPolicyAssignmentReportsRequest { + // Required. The parent resource name. + // + // Format: + // `projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/{assignment}/reports` + // + // For `{project}`, either `project-number` or `project-id` can be provided. + // For `{instance}`, either `instance-name`, `instance-id`, or `-` can be + // provided. If '-' is provided, the response will include + // OSPolicyAssignmentReports for all instances in the project/location. + // For `{assignment}`, either `assignment-id` or `-` can be provided. If '-' + // is provided, the response will include OSPolicyAssignmentReports for all + // OSPolicyAssignments in the project/location. + // Either {instance} or {assignment} must be `-`. + // + // For example: + // `projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/-/reports` + // returns all reports for the instance + // `projects/{project}/locations/{location}/instances/-/osPolicyAssignments/{assignment-id}/reports` + // returns all the reports for the given assignment across all instances. + // `projects/{project}/locations/{location}/instances/-/osPolicyAssignments/-/reports` + // returns all the reports for all assignments across all instances. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/InstanceOSPolicyAssignment" + } + ]; + + // The maximum number of results to return. + int32 page_size = 2; + + // If provided, this field specifies the criteria that must be met by the + // `OSPolicyAssignmentReport` API resource that is included in the response. + string filter = 3; + + // A pagination token returned from a previous call to the + // `ListOSPolicyAssignmentReports` method that indicates where this listing + // should continue from. + string page_token = 4; +} + +// A response message for listing OS Policy assignment reports including the +// page of results and page token. +message ListOSPolicyAssignmentReportsResponse { + // List of OS policy assignment reports. + repeated OSPolicyAssignmentReport os_policy_assignment_reports = 1; + + // The pagination token to retrieve the next page of OS policy assignment + // report objects. + string next_page_token = 2; +} + +// A report of the OS policy assignment status for a given instance. +message OSPolicyAssignmentReport { + option (google.api.resource) = { + type: "osconfig.googleapis.com/OSPolicyAssignmentReport" + pattern: "projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/{assignment}/report" + }; + + // Compliance data for an OS policy + message OSPolicyCompliance { + // Possible compliance states for an os policy. + enum ComplianceState { + // The policy is in an unknown compliance state. + // + // Refer to the field `compliance_state_reason` to learn the exact reason + // for the policy to be in this compliance state. + UNKNOWN = 0; + + // Policy is compliant. + // + // The policy is compliant if all the underlying resources are also + // compliant. + COMPLIANT = 1; + + // Policy is non-compliant. + // + // The policy is non-compliant if one or more underlying resources are + // non-compliant. + NON_COMPLIANT = 2; + } + + // Compliance data for an OS policy resource. + message OSPolicyResourceCompliance { + // Step performed by the OS Config agent for configuring an + // `OSPolicy` resource to its desired state. + message OSPolicyResourceConfigStep { + // Supported configuration step types + enum Type { + // Default value. This value is unused. + TYPE_UNSPECIFIED = 0; + + // Checks for resource conflicts such as schema errors. + VALIDATION = 1; + + // Checks the current status of the desired state for a resource. + DESIRED_STATE_CHECK = 2; + + // Enforces the desired state for a resource that is not in desired + // state. + DESIRED_STATE_ENFORCEMENT = 3; + + // Re-checks the status of the desired state. This check is done + // for a resource after the enforcement of all OS policies. + // + // This step is used to determine the final desired state status for + // the resource. It accounts for any resources that might have drifted + // from their desired state due to side effects from executing other + // resources. + DESIRED_STATE_CHECK_POST_ENFORCEMENT = 4; + } + + // Configuration step type. + Type type = 1; + + // An error message recorded during the execution of this step. + // Only populated if errors were encountered during this step execution. + string error_message = 2; + } + + // Possible compliance states for a resource. + enum ComplianceState { + // The resource is in an unknown compliance state. + // + // To get more details about why the policy is in this state, review + // the output of the `compliance_state_reason` field. + UNKNOWN = 0; + + // Resource is compliant. + COMPLIANT = 1; + + // Resource is non-compliant. + NON_COMPLIANT = 2; + } + + // ExecResource specific output. + message ExecResourceOutput { + // Output from enforcement phase output file (if run). + // Output size is limited to 100K bytes. + bytes enforcement_output = 2; + } + + // The ID of the OS policy resource. + string os_policy_resource_id = 1; + + // Ordered list of configuration completed by the agent for the OS policy + // resource. + repeated OSPolicyResourceConfigStep config_steps = 2; + + // The compliance state of the resource. + ComplianceState compliance_state = 3; + + // A reason for the resource to be in the given compliance state. + // This field is always populated when `compliance_state` is `UNKNOWN`. + // + // The following values are supported when `compliance_state == UNKNOWN` + // + // * `execution-errors`: Errors were encountered by the agent while + // executing the resource and the compliance state couldn't be + // determined. + // * `execution-skipped-by-agent`: Resource execution was skipped by the + // agent because errors were encountered while executing prior resources + // in the OS policy. + // * `os-policy-execution-attempt-failed`: The execution of the OS policy + // containing this resource failed and the compliance state couldn't be + // determined. + string compliance_state_reason = 4; + + // Resource specific output. + oneof output { + // ExecResource specific output. + ExecResourceOutput exec_resource_output = 5; + } + } + + // The OS policy id + string os_policy_id = 1; + + // The compliance state of the OS policy. + ComplianceState compliance_state = 2; + + // The reason for the OS policy to be in an unknown compliance state. + // This field is always populated when `compliance_state` is `UNKNOWN`. + // + // If populated, the field can contain one of the following values: + // + // * `vm-not-running`: The VM was not running. + // * `os-policies-not-supported-by-agent`: The version of the OS Config + // agent running on the VM does not support running OS policies. + // * `no-agent-detected`: The OS Config agent is not detected for the VM. + // * `resource-execution-errors`: The OS Config agent encountered errors + // while executing one or more resources in the policy. See + // `os_policy_resource_compliances` for details. + // * `task-timeout`: The task sent to the agent to apply the policy timed + // out. + // * `unexpected-agent-state`: The OS Config agent did not report the final + // status of the task that attempted to apply the policy. Instead, the agent + // unexpectedly started working on a different task. This mostly happens + // when the agent or VM unexpectedly restarts while applying OS policies. + // * `internal-service-errors`: Internal service errors were encountered + // while attempting to apply the policy. + string compliance_state_reason = 3; + + // Compliance data for each resource within the policy that is applied to + // the VM. + repeated OSPolicyResourceCompliance os_policy_resource_compliances = 4; + } + + // The `OSPolicyAssignmentReport` API resource name. + // + // Format: + // `projects/{project_number}/locations/{location}/instances/{instance_id}/osPolicyAssignments/{os_policy_assignment_id}/report` + string name = 1; + + // The Compute Engine VM instance name. + string instance = 2; + + // Reference to the `OSPolicyAssignment` API resource that the `OSPolicy` + // belongs to. + // + // Format: + // `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id}` + string os_policy_assignment = 3 [(google.api.resource_reference) = { + type: "osconfig.googleapis.com/OSPolicyAssignment" + }]; + + // Compliance data for each `OSPolicy` that is applied to the VM. + repeated OSPolicyCompliance os_policy_compliances = 4; + + // Timestamp for when the report was last generated. + google.protobuf.Timestamp update_time = 5; + + // Unique identifier of the last attempted run to apply the OS policies + // associated with this assignment on the VM. + // + // This ID is logged by the OS Config agent while applying the OS + // policies associated with this assignment on the VM. + // NOTE: If the service is unable to successfully connect to the agent for + // this run, then this id will not be available in the agent logs. + string last_run_id = 6; +} diff --git a/google/cloud/osconfig/v1alpha/os_policy_assignments.proto b/google/cloud/osconfig/v1alpha/os_policy_assignments.proto index 4b9943aa4..30106569f 100644 --- a/google/cloud/osconfig/v1alpha/os_policy_assignments.proto +++ b/google/cloud/osconfig/v1alpha/os_policy_assignments.proto @@ -27,7 +27,7 @@ import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.OsConfig.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1alpha;osconfig"; option java_multiple_files = true; -option java_outer_classname = "OSPolicyAssignments"; +option java_outer_classname = "OsPolicyAssignmentsProto"; option java_package = "com.google.cloud.osconfig.v1alpha"; option php_namespace = "Google\\Cloud\\OsConfig\\V1alpha"; option ruby_package = "Google::Cloud::OsConfig::V1alpha"; @@ -65,15 +65,34 @@ message OSPolicyAssignment { map labels = 1; } - // Message to represent the filters to select VMs for an assignment + // Filters to select target VMs for an assignment. + // + // If more than one filter criteria is specified below, a VM will be selected + // if and only if it satisfies all of them. message InstanceFilter { + // VM inventory details. + message Inventory { + // Required. The OS short name + string os_short_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // The OS version + // + // Prefix matches are supported if asterisk(*) is provided as the + // last character. For example, to match all versions with a major + // version of `7`, specify the following value for this field `7.*` + // + // An empty string matches all OS versions. + string os_version = 2; + } + // Target all VMs in the project. If true, no other criteria is // permitted. bool all = 1; - // A VM is included if it's OS short name matches with any of the + // Deprecated. Use the `inventories` field instead. + // A VM is selected if it's OS short name matches with any of the // values provided in this list. - repeated string os_short_names = 2; + repeated string os_short_names = 2 [deprecated = true]; // List of label sets used for VM inclusion. // @@ -85,11 +104,13 @@ message OSPolicyAssignment { // // If the list has more than one label set, the VM is excluded if any // of the label sets are applicable for the VM. - // - // This filter is applied last in the filtering chain and therefore a - // VM is guaranteed to be excluded if it satisfies one of the below - // label sets. repeated LabelSet exclusion_labels = 4; + + // List of inventories to select VMs. + // + // A VM is selected if its inventory data matches at least one of the + // following inventories. + repeated Inventory inventories = 5; } // Message to configure the rollout at the zonal level for the OS policy @@ -161,6 +182,10 @@ message OSPolicyAssignment { // Output only. The timestamp that the revision was created. google.protobuf.Timestamp revision_create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The etag for this OS policy assignment. + // If this is provided on update, it must match the server's etag. + string etag = 8; + // Output only. OS policy assignment rollout state RolloutState rollout_state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/osconfig/v1alpha/osconfig_common.proto b/google/cloud/osconfig/v1alpha/osconfig_common.proto index 9cd376c5f..1d2b58ac6 100644 --- a/google/cloud/osconfig/v1alpha/osconfig_common.proto +++ b/google/cloud/osconfig/v1alpha/osconfig_common.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.osconfig.v1alpha; + option csharp_namespace = "Google.Cloud.OsConfig.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1alpha;osconfig"; option java_multiple_files = true; diff --git a/google/cloud/osconfig/v1alpha/osconfig_v1alpha.yaml b/google/cloud/osconfig/v1alpha/osconfig_v1alpha.yaml index 83dfa6f0d..0bc2f3076 100644 --- a/google/cloud/osconfig/v1alpha/osconfig_v1alpha.yaml +++ b/google/cloud/osconfig/v1alpha/osconfig_v1alpha.yaml @@ -33,7 +33,11 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: 'google.longrunning.Operations.*' + - selector: google.longrunning.Operations.CancelOperation + 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 diff --git a/google/cloud/osconfig/v1alpha/osconfig_zonal_service.proto b/google/cloud/osconfig/v1alpha/osconfig_zonal_service.proto index 8d979fd5f..bb73fbd03 100644 --- a/google/cloud/osconfig/v1alpha/osconfig_zonal_service.proto +++ b/google/cloud/osconfig/v1alpha/osconfig_zonal_service.proto @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/resource.proto"; import "google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto"; import "google/cloud/osconfig/v1alpha/inventory.proto"; +import "google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto"; import "google/cloud/osconfig/v1alpha/os_policy_assignments.proto"; import "google/cloud/osconfig/v1alpha/vulnerability.proto"; import "google/longrunning/operations.proto"; @@ -143,6 +144,7 @@ service OsConfigZonalService { // Get OS policies compliance data for the specified Compute Engine VM // instance. rpc GetInstanceOSPoliciesCompliance(GetInstanceOSPoliciesComplianceRequest) returns (InstanceOSPoliciesCompliance) { + option deprecated = true; option (google.api.http) = { get: "/v1alpha/{name=projects/*/locations/*/instanceOSPoliciesCompliances/*}" }; @@ -152,12 +154,31 @@ service OsConfigZonalService { // List OS policies compliance data for all Compute Engine VM instances in the // specified zone. rpc ListInstanceOSPoliciesCompliances(ListInstanceOSPoliciesCompliancesRequest) returns (ListInstanceOSPoliciesCompliancesResponse) { + option deprecated = true; option (google.api.http) = { get: "/v1alpha/{parent=projects/*/locations/*}/instanceOSPoliciesCompliances" }; option (google.api.method_signature) = "parent"; } + // Get the OS policy asssignment report for the specified Compute Engine VM + // instance. + rpc GetOSPolicyAssignmentReport(GetOSPolicyAssignmentReportRequest) returns (OSPolicyAssignmentReport) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/instances/*/osPolicyAssignments/*/report}" + }; + option (google.api.method_signature) = "name"; + } + + // List OS policy asssignment reports for all Compute Engine VM instances in + // the specified zone. + rpc ListOSPolicyAssignmentReports(ListOSPolicyAssignmentReportsRequest) returns (ListOSPolicyAssignmentReportsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/instances/*/osPolicyAssignments/*}/reports" + }; + option (google.api.method_signature) = "parent"; + } + // Get inventory data for the specified VM instance. If the VM has no // associated inventory, the message `NOT_FOUND` is returned. rpc GetInventory(GetInventoryRequest) returns (Inventory) { diff --git a/google/cloud/osconfig/v1alpha/vulnerability.proto b/google/cloud/osconfig/v1alpha/vulnerability.proto index 6b9a5eb10..54080ba75 100644 --- a/google/cloud/osconfig/v1alpha/vulnerability.proto +++ b/google/cloud/osconfig/v1alpha/vulnerability.proto @@ -48,6 +48,9 @@ message VulnerabilityReport { message Reference { // The url of the reference. string url = 1; + + // The source of the reference e.g. NVD. + string source = 2; } // The CVE of the vulnerability. CVE cannot be @@ -72,6 +75,32 @@ message VulnerabilityReport { repeated Reference references = 6; } + // OS inventory item that is affected by a vulnerability or fixed as a + // result of a vulnerability. + message Item { + // Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. + // This field displays the inventory items affected by this vulnerability. + // If the vulnerability report was not updated after the VM inventory + // update, these values might not display in VM inventory. For some + // operating systems, this field might be empty. + string installed_inventory_item_id = 1; + + // Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. + // If the vulnerability report was not updated after the VM inventory + // update, these values might not display in VM inventory. If there is no + // available fix, the field is empty. The `inventory_item` value specifies + // the latest `SoftwarePackage` available to the VM that fixes the + // vulnerability. + string available_inventory_item_id = 2; + + // The recommended [CPE URI](https://cpe.mitre.org/specification/) update + // that contains a fix for this vulnerability. + string fixed_cpe_uri = 3; + + // The upstream OS patch, packages or KB that fixes the vulnerability. + string upstream_fix = 4; + } + // Contains metadata as per the upstream feed of the operating system and // NVD. Details details = 1; @@ -81,7 +110,7 @@ message VulnerabilityReport { // If the vulnerability report was not updated after the VM inventory // update, these values might not display in VM inventory. For some distros, // this field may be empty. - repeated string installed_inventory_item_ids = 2; + repeated string installed_inventory_item_ids = 2 [deprecated = true]; // Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. // If the vulnerability report was not updated after the VM inventory @@ -89,13 +118,16 @@ message VulnerabilityReport { // available fix, the field is empty. The `inventory_item` value specifies // the latest `SoftwarePackage` available to the VM that fixes the // vulnerability. - repeated string available_inventory_item_ids = 3; + repeated string available_inventory_item_ids = 3 [deprecated = true]; // The timestamp for when the vulnerability was first detected. google.protobuf.Timestamp create_time = 4; // The timestamp for when the vulnerability was last modified. google.protobuf.Timestamp update_time = 5; + + // List of items affected by the vulnerability. + repeated Item items = 6; } // Output only. The `vulnerabilityReport` API resource name. @@ -105,13 +137,11 @@ message VulnerabilityReport { string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. List of vulnerabilities affecting the VM. - repeated Vulnerability vulnerabilities = 2 - [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated Vulnerability vulnerabilities = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The timestamp for when the last vulnerability report was - // generated for the VM. - google.protobuf.Timestamp update_time = 3 - [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The timestamp for when the last vulnerability report was generated for the + // VM. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A request message for getting the vulnerability report for the specified VM. @@ -137,11 +167,9 @@ message GetVulnerabilityReportRequest { message ListVulnerabilityReportsRequest { // Required. The parent resource name. // - // Format: `projects/{project}/locations/{location}/instances/{instance}` + // Format: `projects/{project}/locations/{location}/instances/-` // // For `{project}`, either `project-number` or `project-id` can be provided. - // For `{instance}`, only `-` character is supported to list vulnerability - // reports across VMs. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/osconfig/v1beta/BUILD.bazel b/google/cloud/osconfig/v1beta/BUILD.bazel index 843ed80d1..50d254fa0 100644 --- a/google/cloud/osconfig/v1beta/BUILD.bazel +++ b/google/cloud/osconfig/v1beta/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -22,6 +22,7 @@ proto_library( name = "osconfig_proto", srcs = [ "guest_policies.proto", + "osconfig_common.proto", "osconfig_service.proto", "patch_deployments.proto", "patch_jobs.proto", @@ -75,18 +76,23 @@ java_grpc_library( java_gapic_library( name = "osconfig_java_gapic", srcs = [":osconfig_proto_with_info"], + gapic_yaml = "osconfig_gapic.yaml", grpc_service_config = "osconfig_grpc_service_config.json", + service_yaml = "osconfig_v1beta.yaml", test_deps = [ ":osconfig_java_grpc", ], + transport = "grpc+rest", deps = [ ":osconfig_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "osconfig_java_gapic_test_suite", test_classes = [ + "com.google.cloud.osconfig.v1beta.OsConfigServiceClientHttpJsonTest", "com.google.cloud.osconfig.v1beta.OsConfigServiceClientTest", ], runtime_deps = [":osconfig_java_gapic_test"], @@ -95,6 +101,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-osconfig-v1beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":osconfig_java_gapic", ":osconfig_java_grpc", @@ -132,7 +140,9 @@ go_gapic_library( srcs = [":osconfig_proto_with_info"], grpc_service_config = "osconfig_grpc_service_config.json", importpath = "cloud.google.com/go/osconfig/apiv1beta;osconfig", + metadata = True, service_yaml = "osconfig_v1beta.yaml", + transport = "grpc+rest", deps = [ ":osconfig_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -151,6 +161,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-osconfig-v1beta-go", deps = [ ":osconfig_go_gapic", + ":osconfig_go_gapic_srcjar-metadata.srcjar", ":osconfig_go_gapic_srcjar-test.srcjar", ":osconfig_go_proto", ], @@ -163,15 +174,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "osconfig_py_gapic", srcs = [":osconfig_proto"], grpc_service_config = "osconfig_grpc_service_config.json", - opt_args = [ - "warehouse-package-name=google-cloud-os-config", + opt_args = ["warehouse-package-name=google-cloud-os-config"], + transport = "grpc", +) + +py_test( + name = "osconfig_py_gapic_test", + srcs = [ + "osconfig_py_gapic_pytest.py", + "osconfig_py_gapic_test.py", ], + legacy_create_init = False, + deps = [":osconfig_py_gapic"], ) # Open Source Packages @@ -208,6 +229,7 @@ php_gapic_library( name = "osconfig_php_gapic", srcs = [":osconfig_proto_with_info"], grpc_service_config = "osconfig_grpc_service_config.json", + service_yaml = "osconfig_v1beta.yaml", deps = [ ":osconfig_php_grpc", ":osconfig_php_proto", @@ -235,6 +257,7 @@ load( nodejs_gapic_library( name = "osconfig_nodejs_gapic", + package_name = "@google-cloud/osconfig", src = ":osconfig_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "osconfig_grpc_service_config.json", @@ -256,8 +279,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -275,8 +298,9 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "osconfig_ruby_gapic", - srcs = [":osconfig_proto_with_info",], + srcs = [":osconfig_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-osconfig-v1beta"], + grpc_service_config = "osconfig_grpc_service_config.json", deps = [ ":osconfig_ruby_grpc", ":osconfig_ruby_proto", @@ -320,6 +344,7 @@ csharp_gapic_library( srcs = [":osconfig_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "osconfig_grpc_service_config.json", + service_yaml = "osconfig_v1beta.yaml", deps = [ ":osconfig_csharp_grpc", ":osconfig_csharp_proto", @@ -339,4 +364,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "osconfig_cc_proto", + deps = [":osconfig_proto"], +) + +cc_grpc_library( + name = "osconfig_cc_grpc", + srcs = [":osconfig_proto"], + grpc_only = True, + deps = [":osconfig_cc_proto"], +) diff --git a/google/cloud/osconfig/v1beta/guest_policies.proto b/google/cloud/osconfig/v1beta/guest_policies.proto index f7fd0747d..9ff7bb0e8 100644 --- a/google/cloud/osconfig/v1beta/guest_policies.proto +++ b/google/cloud/osconfig/v1beta/guest_policies.proto @@ -148,6 +148,23 @@ message Assignment { repeated OsType os_types = 5; } +// The desired state that the OS Config agent maintains on the VM instance. +enum DesiredState { + // The default is to ensure the package is installed. + DESIRED_STATE_UNSPECIFIED = 0; + + // The agent ensures that the package is installed. + INSTALLED = 1; + + // The agent ensures that the package is installed and + // periodically checks for and install any updates. + UPDATED = 2; + + // The agent ensures that the package is not installed and uninstall it + // if detected. + REMOVED = 3; +} + // Package is a reference to the software package to be installed or removed. // The agent on the VM instance uses the system package manager to apply the // config. @@ -296,23 +313,6 @@ message GooRepository { string url = 2 [(google.api.field_behavior) = REQUIRED]; } -// The desired state that the OS Config agent maintains on the VM instance. -enum DesiredState { - // The default is to ensure the package is installed. - DESIRED_STATE_UNSPECIFIED = 0; - - // The agent ensures that the package is installed. - INSTALLED = 1; - - // The agent ensures that the package is installed and - // periodically checks for and install any updates. - UPDATED = 2; - - // The agent ensures that the package is not installed and uninstall it - // if detected. - REMOVED = 3; -} - // A package repository. message PackageRepository { // A specific type of repository. @@ -347,7 +347,7 @@ message PackageRepository { // // If a recipe is assigned to an instance and there is a recipe with the same // name but a lower version already installed and the assigned state -// of the recipe is `INSTALLED_KEEP_UPDATED`, then the recipe is updated to +// of the recipe is `UPDATED`, then the recipe is updated to // the new version. // // Script Working Directories @@ -614,10 +614,9 @@ message SoftwareRecipe { // // INSTALLED: The software recipe is installed on the instance but // won't be updated to new versions. - // INSTALLED_KEEP_UPDATED: The software recipe is installed on the - // instance. The recipe is updated to a higher - // version, if a higher version of the recipe is - // assigned to this instance. + // UPDATED: The software recipe is installed on the instance. The recipe is + // updated to a higher version, if a higher version of the recipe is + // assigned to this instance. // REMOVE: Remove is unsupported for software recipes and attempts to // create or update a recipe to the REMOVE state is rejected. DesiredState desired_state = 6; diff --git a/google/cloud/osconfig/v1beta/osconfig_common.proto b/google/cloud/osconfig/v1beta/osconfig_common.proto new file mode 100644 index 000000000..8cee0d93d --- /dev/null +++ b/google/cloud/osconfig/v1beta/osconfig_common.proto @@ -0,0 +1,36 @@ +// 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.cloud.osconfig.v1beta; + + +option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1beta;osconfig"; +option java_outer_classname = "Common"; +option java_package = "com.google.cloud.osconfig.v1beta"; + +// Message encapsulating a value that can be either absolute ("fixed") or +// relative ("percent") to a value. +message FixedOrPercent { + // Type of the value. + oneof mode { + // Specifies a fixed value. + int32 fixed = 1; + + // Specifies the relative value defined as a percentage, which will be + // multiplied by a reference value. + int32 percent = 2; + } +} diff --git a/google/cloud/osconfig/v1beta/osconfig_service.proto b/google/cloud/osconfig/v1beta/osconfig_service.proto index 2211d8350..d69b7f799 100644 --- a/google/cloud/osconfig/v1beta/osconfig_service.proto +++ b/google/cloud/osconfig/v1beta/osconfig_service.proto @@ -104,6 +104,35 @@ service OsConfigService { }; } + // Update an OS Config patch deployment. + rpc UpdatePatchDeployment(UpdatePatchDeploymentRequest) returns (PatchDeployment) { + option (google.api.http) = { + patch: "/v1beta/{patch_deployment.name=projects/*/patchDeployments/*}" + body: "patch_deployment" + }; + option (google.api.method_signature) = "patch_deployment,update_mask"; + } + + // Change state of patch deployment to "PAUSED". + // Patch deployment in paused state doesn't generate patch jobs. + rpc PausePatchDeployment(PausePatchDeploymentRequest) returns (PatchDeployment) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*/patchDeployments/*}:pause" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Change state of patch deployment back to "ACTIVE". + // Patch deployment in active state continues to generate patch jobs. + rpc ResumePatchDeployment(ResumePatchDeploymentRequest) returns (PatchDeployment) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*/patchDeployments/*}:resume" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + // Create an OS Config guest policy. rpc CreateGuestPolicy(CreateGuestPolicyRequest) returns (GuestPolicy) { option (google.api.http) = { diff --git a/google/cloud/osconfig/v1beta/osconfig_v1beta.yaml b/google/cloud/osconfig/v1beta/osconfig_v1beta.yaml index cfe6e7bb7..a910c4986 100644 --- a/google/cloud/osconfig/v1beta/osconfig_v1beta.yaml +++ b/google/cloud/osconfig/v1beta/osconfig_v1beta.yaml @@ -1,7 +1,7 @@ type: google.api.Service config_version: 3 name: osconfig.googleapis.com -title: Cloud OS Config API +title: OS Config API apis: - name: google.cloud.osconfig.v1beta.OsConfigService @@ -22,3 +22,11 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.longrunning.Operations.CancelOperation + 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 diff --git a/google/cloud/osconfig/v1beta/patch_deployments.proto b/google/cloud/osconfig/v1beta/patch_deployments.proto index 255c0c984..b37758f11 100644 --- a/google/cloud/osconfig/v1beta/patch_deployments.proto +++ b/google/cloud/osconfig/v1beta/patch_deployments.proto @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/osconfig/v1beta/patch_jobs.proto"; import "google/protobuf/duration.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/type/datetime.proto"; import "google/type/dayofweek.proto"; @@ -33,8 +34,26 @@ option java_package = "com.google.cloud.osconfig.v1beta"; // complete a patch. These configurations include instance filter, package // repository settings, and a schedule. For more information about creating and // managing patch deployments, see [Scheduling patch -// jobs](/compute/docs/os-patch-management/schedule-patch-jobs). +// jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs). message PatchDeployment { + option (google.api.resource) = { + type: "osconfig.googleapis.com/PatchDeployment" + pattern: "projects/{project}/patchDeployments/{patch_deployment}" + }; + + // Represents state of patch peployment. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // Active value means that patch deployment generates Patch Jobs. + ACTIVE = 1; + + // Paused value means that patch deployment does not generate + // Patch jobs. Requires user action to move in and out from this state. + PAUSED = 2; + } + // Unique name for the patch deployment resource in a project. The patch // deployment name is in the form: // `projects/{project_id}/patchDeployments/{patch_deployment_id}`. @@ -64,25 +83,27 @@ message PatchDeployment { } // Output only. Time the patch deployment was created. Timestamp is in - // RFC3339 - // text format. + // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Time the patch deployment was last updated. Timestamp is in - // RFC3339 - // text format. + // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The last time a patch job was started by this deployment. - // Timestamp is in - // RFC3339 - // text format. + // Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text + // format. google.protobuf.Timestamp last_execute_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Rollout strategy of the patch job. + PatchRollout rollout = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Current state of the patch deployment. + State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Sets the time for a one time patch deployment. Timestamp is in -// RFC3339 -// text format. +// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. message OneTimeSchedule { // Required. The desired patch job execution time. google.protobuf.Timestamp execute_time = 1 [(google.api.field_behavior) = REQUIRED]; @@ -95,16 +116,16 @@ message RecurringSchedule { // Invalid. A frequency must be specified. FREQUENCY_UNSPECIFIED = 0; - // Indicates that the frequency should be expressed in terms of - // weeks. + // Indicates that the frequency of recurrence should be expressed in terms + // of weeks. WEEKLY = 1; - // Indicates that the frequency should be expressed in terms of - // months. + // Indicates that the frequency of recurrence should be expressed in terms + // of months. MONTHLY = 2; - // Indicates that the frequency should be expressed in terms of - // days. + // Indicates that the frequency of recurrence should be expressed in terms + // of days. DAILY = 3; } @@ -173,6 +194,15 @@ message WeekDayOfMonth { // Required. A day of the week. google.type.DayOfWeek day_of_week = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Represents the number of days before or after the given week day of month + // that the patch deployment is scheduled for. For example if `week_ordinal` + // and `day_of_week` values point to the second day of the month and this + // `day_offset` value is set to `3`, the patch deployment takes place three + // days after the second Tuesday of the month. If this value is negative, for + // example -5, the patches are deployed five days before before the second + // Tuesday of the month. Allowed values are in range `[-30, 30]`. + int32 day_offset = 3 [(google.api.field_behavior) = OPTIONAL]; } // A request message for creating a patch deployment. @@ -229,3 +259,37 @@ message DeletePatchDeploymentRequest { // `projects/*/patchDeployments/*`. string name = 1 [(google.api.field_behavior) = REQUIRED]; } + +// A request message for updating a patch deployment. +message UpdatePatchDeploymentRequest { + // Required. The patch deployment to Update. + PatchDeployment patch_deployment = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Field mask that controls which fields of the patch deployment should be + // updated. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request message for pausing a patch deployment. +message PausePatchDeploymentRequest { + // Required. The resource name of the patch deployment in the form + // `projects/*/patchDeployments/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "osconfig.googleapis.com/PatchDeployment" + } + ]; +} + +// A request message for resuming a patch deployment. +message ResumePatchDeploymentRequest { + // Required. The resource name of the patch deployment in the form + // `projects/*/patchDeployments/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "osconfig.googleapis.com/PatchDeployment" + } + ]; +} diff --git a/google/cloud/osconfig/v1beta/patch_jobs.proto b/google/cloud/osconfig/v1beta/patch_jobs.proto index 780e18be1..6ea11859a 100644 --- a/google/cloud/osconfig/v1beta/patch_jobs.proto +++ b/google/cloud/osconfig/v1beta/patch_jobs.proto @@ -18,6 +18,7 @@ package google.cloud.osconfig.v1beta; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/osconfig/v1beta/osconfig_common.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; @@ -25,8 +26,7 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1beta option java_outer_classname = "PatchJobs"; option java_package = "com.google.cloud.osconfig.v1beta"; -// A request message to initiate patching across Google Compute Engine -// instances. +// A request message to initiate patching across Compute Engine instances. message ExecutePatchJobRequest { // Required. The project in which to run this patch in the form `projects/*` string parent = 1 [(google.api.field_behavior) = REQUIRED]; @@ -53,6 +53,9 @@ message ExecutePatchJobRequest { // Display name for this patch job. This does not have to be unique. string display_name = 8; + + // Rollout strategy of the patch job. + PatchRollout rollout = 9; } // Request to get an active or completed patch job. @@ -91,7 +94,7 @@ message ListPatchJobInstanceDetailsResponse { // Patch details for a VM instance. For more information about reviewing VM // instance details, see // [Listing all VM instance details for a specific patch -// job](/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details). +// job](https://cloud.google.com/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details). message PatchJobInstanceDetails { // The instance name in the form `projects/*/zones/*/instances/*` string name = 1; @@ -140,12 +143,46 @@ message ListPatchJobsResponse { // A high level representation of a patch job that is either in progress // or has completed. // -// Instances details are not included in the job. To paginate through instance -// details, use ListPatchJobInstanceDetails. +// Instance details are not included in the job. To paginate through instance +// details, use `ListPatchJobInstanceDetails`. // // For more information about patch jobs, see -// [Creating patch jobs](/compute/docs/os-patch-management/create-patch-job). +// [Creating patch +// jobs](https://cloud.google.com/compute/docs/os-patch-management/create-patch-job). message PatchJob { + option (google.api.resource) = { + type: "osconfig.googleapis.com/PatchJob" + pattern: "projects/{project}/patchJobs/{patch_job}" + }; + + // Enumeration of the various states a patch job passes through as it + // executes. + enum State { + // State must be specified. + STATE_UNSPECIFIED = 0; + + // The patch job was successfully initiated. + STARTED = 1; + + // The patch job is looking up instances to run the patch on. + INSTANCE_LOOKUP = 2; + + // Instances are being patched. + PATCHING = 3; + + // Patch job completed successfully. + SUCCEEDED = 4; + + // Patch job completed but there were errors. + COMPLETED_WITH_ERRORS = 5; + + // The patch job was canceled. + CANCELED = 6; + + // The patch job timed out. + TIMED_OUT = 7; + } + // A summary of the current patch state across all instances that this patch // job affects. Contains counts of instances in different states. These states // map to `InstancePatchState`. List patch job instance details to see the @@ -199,34 +236,6 @@ message PatchJob { int64 no_agent_detected_instance_count = 15; } - // Enumeration of the various states a patch job passes through as it - // executes. - enum State { - // State must be specified. - STATE_UNSPECIFIED = 0; - - // The patch job was successfully initiated. - STARTED = 1; - - // The patch job is looking up instances to run the patch on. - INSTANCE_LOOKUP = 2; - - // Instances are being patched. - PATCHING = 3; - - // Patch job completed successfully. - SUCCEEDED = 4; - - // Patch job completed but there were errors. - COMPLETED_WITH_ERRORS = 5; - - // The patch job was canceled. - CANCELED = 6; - - // The patch job timed out. - TIMED_OUT = 7; - } - // Unique identifier for this patch job in the form // `projects/*/patchJobs/*` string name = 1; @@ -244,7 +253,7 @@ message PatchJob { // Last time this patch job was updated. google.protobuf.Timestamp update_time = 4; - // The current state of the PatchJob . + // The current state of the PatchJob. State state = 5; // Instances to patch. @@ -274,6 +283,9 @@ message PatchJob { // Output only. Name of the patch deployment that created this patch job. string patch_deployment = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Rollout strategy being applied. + PatchRollout rollout = 16; } // Patch configuration specifications. Contains details on how to apply the @@ -324,6 +336,9 @@ message PatchConfig { // The `ExecStep` to run after the patch update. ExecStep post_step = 9; + + // Allows the patch job to run on Managed instance groups (MIGs). + bool mig_instances_allowed = 10; } // Namespace for instance state enums. @@ -608,8 +623,8 @@ message PatchInstanceFilter { // Represents a group of VMs that can be identified as having all these // labels, for example "env=prod and app=web". message GroupLabel { - // Google Compute Engine instance labels that must be present for a VM - // instance to be targeted by this filter. + // Compute Engine instance labels that must be present for a VM instance to + // be targeted by this filter. map labels = 1; } @@ -636,3 +651,52 @@ message PatchInstanceFilter { // example prefix="prod-". repeated string instance_name_prefixes = 5; } + +// Patch rollout configuration specifications. Contains details on the +// concurrency control when applying patch(es) to all targeted VMs. +message PatchRollout { + // Type of the rollout. + enum Mode { + // Mode must be specified. + MODE_UNSPECIFIED = 0; + + // Patches are applied one zone at a time. The patch job begins in the + // region with the lowest number of targeted VMs. Within the region, + // patching begins in the zone with the lowest number of targeted VMs. If + // multiple regions (or zones within a region) have the same number of + // targeted VMs, a tie-breaker is achieved by sorting the regions or zones + // in alphabetical order. + ZONE_BY_ZONE = 1; + + // Patches are applied to VMs in all zones at the same time. + CONCURRENT_ZONES = 2; + } + + // Mode of the patch rollout. + Mode mode = 1; + + // The maximum number (or percentage) of VMs per zone to disrupt at any given + // moment. The number of VMs calculated from multiplying the percentage by the + // total number of VMs in a zone is rounded up. + // + // During patching, a VM is considered disrupted from the time the agent is + // notified to begin until patching has completed. This disruption time + // includes the time to complete reboot and any post-patch steps. + // + // A VM contributes to the disruption budget if its patching operation fails + // either when applying the patches, running pre or post patch steps, or if it + // fails to respond with a success notification before timing out. VMs that + // are not running or do not have an active agent do not count toward this + // disruption budget. + // + // For zone-by-zone rollouts, if the disruption budget in a zone is exceeded, + // the patch job stops, because continuing to the next zone requires + // completion of the patch process in the previous zone. + // + // For example, if the disruption budget has a fixed value of `10`, and 8 VMs + // fail to patch in the current zone, the patch job continues to patch 2 VMs + // at a time until the zone is completed. When that zone is completed + // successfully, patching begins with 10 VMs at a time in the next zone. If 10 + // VMs in the next zone fail to patch, the patch job stops. + FixedOrPercent disruption_budget = 2; +} diff --git a/google/cloud/oslogin/common/BUILD.bazel b/google/cloud/oslogin/common/BUILD.bazel index 1864db7db..07a7dd4a0 100644 --- a/google/cloud/oslogin/common/BUILD.bazel +++ b/google/cloud/oslogin/common/BUILD.bazel @@ -71,11 +71,18 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_proto_library", ) py_gapic_library( name = "common_py_gapic", srcs = [":common_proto"], + transport = "grpc", +) + +py_proto_library( + name = "common_py_proto", + deps = [":common_proto"], ) ############################################################################## diff --git a/google/cloud/oslogin/oslogin_v1beta.yaml b/google/cloud/oslogin/oslogin_v1beta.yaml deleted file mode 100644 index eb2975286..000000000 --- a/google/cloud/oslogin/oslogin_v1beta.yaml +++ /dev/null @@ -1,40 +0,0 @@ -type: google.api.Service -config_version: 3 -name: oslogin.googleapis.com -title: Google Cloud OS Login API - -apis: -- name: google.cloud.oslogin.v1beta.OsLoginService - -documentation: - summary: Manages OS login configuration for Google account users. - -backend: - rules: - - selector: google.cloud.oslogin.v1beta.OsLoginService.DeletePosixAccount - deadline: 10.0 - - selector: google.cloud.oslogin.v1beta.OsLoginService.DeleteSshPublicKey - deadline: 10.0 - - selector: google.cloud.oslogin.v1beta.OsLoginService.GetLoginProfile - deadline: 10.0 - - selector: google.cloud.oslogin.v1beta.OsLoginService.GetSshPublicKey - deadline: 10.0 - - selector: google.cloud.oslogin.v1beta.OsLoginService.ImportSshPublicKey - deadline: 10.0 - - selector: google.cloud.oslogin.v1beta.OsLoginService.UpdateSshPublicKey - deadline: 10.0 - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/compute - - selector: google.cloud.oslogin.v1beta.OsLoginService.GetLoginProfile - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/compute, - https://www.googleapis.com/auth/compute.readonly diff --git a/google/cloud/oslogin/v1/BUILD.bazel b/google/cloud/oslogin/v1/BUILD.bazel index 20355c835..abe5df3fc 100644 --- a/google/cloud/oslogin/v1/BUILD.bazel +++ b/google/cloud/oslogin/v1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":oslogin_java_grpc", ] + _JAVA_GRPC_SUBPACKAGE_DEPS, + transport = "grpc+rest", deps = [ ":oslogin_java_proto", ] + _JAVA_PROTO_SUBPACKAGE_DEPS, @@ -82,6 +83,7 @@ java_gapic_library( java_gapic_test( name = "oslogin_java_gapic_test_suite", test_classes = [ + "com.google.cloud.oslogin.v1.OsLoginServiceClientHttpJsonTest", "com.google.cloud.oslogin.v1.OsLoginServiceClientTest", ], runtime_deps = [":oslogin_java_gapic_test"], @@ -90,6 +92,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-oslogin-v1-java", + transport = "grpc+rest", deps = [ ":oslogin_java_gapic", ":oslogin_java_grpc", @@ -126,6 +129,7 @@ go_gapic_library( grpc_service_config = "oslogin_grpc_service_config.json", importpath = "cloud.google.com/go/oslogin/apiv1;oslogin", service_yaml = "oslogin_v1.yaml", + transport = "grpc+rest", deps = [ ":oslogin_go_proto", "//google/cloud/oslogin/common:common_go_proto", @@ -165,13 +169,31 @@ py_gapic_library( ":oslogin_proto", ], grpc_service_config = "oslogin_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/cloud/oslogin/common:common_py_proto", + ], ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "oslogin_py_gapic_test", +# srcs = [ +# "oslogin_py_gapic_pytest.py", +# "oslogin_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [ +# ":oslogin_py_gapic", +# ], +#) + py_gapic_assembly_pkg( name = "oslogin-v1-py", deps = [ ":oslogin_py_gapic", - "//google/cloud/oslogin/common:common_py_gapic", + # "//google/cloud/oslogin/common:common_py_gapic", + "//google/cloud/oslogin/common:common_py_proto", ], ) @@ -338,6 +360,7 @@ csharp_gapic_library( srcs = [":oslogin_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "oslogin_grpc_service_config.json", + service_yaml = "oslogin_v1.yaml", deps = [ ":oslogin_csharp_grpc", ":oslogin_csharp_proto", diff --git a/google/cloud/oslogin/v1beta/BUILD.bazel b/google/cloud/oslogin/v1beta/BUILD.bazel index dca78839c..35114f451 100644 --- a/google/cloud/oslogin/v1beta/BUILD.bazel +++ b/google/cloud/oslogin/v1beta/BUILD.bazel @@ -71,6 +71,7 @@ java_gapic_library( srcs = [":oslogin_proto_with_info"], grpc_service_config = "oslogin_grpc_service_config.json", test_deps = [":oslogin_java_grpc"], + transport = "grpc+rest", deps = [ ":oslogin_java_proto", ] + _JAVA_PROTO_SUBPACKAGE_DEPS, @@ -79,6 +80,7 @@ java_gapic_library( java_gapic_test( name = "oslogin_java_gapic_test_suite", test_classes = [ + "com.google.cloud.oslogin.v1beta.OsLoginServiceClientHttpJsonTest", "com.google.cloud.oslogin.v1beta.OsLoginServiceClientTest", ], runtime_deps = [":oslogin_java_gapic_test"], @@ -87,6 +89,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-oslogin-v1beta-java", + transport = "grpc+rest", deps = [ ":oslogin_java_gapic", ":oslogin_java_grpc", @@ -122,7 +125,8 @@ go_gapic_library( srcs = [":oslogin_proto_with_info"], grpc_service_config = "oslogin_grpc_service_config.json", importpath = "cloud.google.com/go/oslogin/apiv1beta;oslogin", - service_yaml = "//google/cloud/oslogin:oslogin_v1beta.yaml", + service_yaml = "oslogin_v1beta.yaml", + transport = "grpc+rest", deps = [ ":oslogin_go_proto", "//google/cloud/oslogin/common:common_go_proto", @@ -162,8 +166,20 @@ py_gapic_library( ":oslogin_proto", ], grpc_service_config = "oslogin_grpc_service_config.json", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "oslogin_py_gapic_test", +# srcs = [ +# "oslogin_py_gapic_pytest.py", +# "oslogin_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":oslogin_py_gapic"], +#) + py_gapic_assembly_pkg( name = "oslogin-v1beta-py", deps = [ @@ -335,6 +351,7 @@ csharp_gapic_library( srcs = [":oslogin_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "oslogin_grpc_service_config.json", + service_yaml = "oslogin_v1beta.yaml", deps = [ ":oslogin_csharp_grpc", ":oslogin_csharp_proto", diff --git a/google/cloud/paymentgateway/issuerswitch/v1/BUILD.bazel b/google/cloud/paymentgateway/issuerswitch/v1/BUILD.bazel new file mode 100644 index 000000000..a2f6cd29d --- /dev/null +++ b/google/cloud/paymentgateway/issuerswitch/v1/BUILD.bazel @@ -0,0 +1,392 @@ +# 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 = "issuerswitch_proto", + srcs = [ + "common_fields.proto", + "resolutions.proto", + "rules.proto", + "transactions.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:date_proto", + "//google/type:money_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "issuerswitch_proto_with_info", + deps = [ + ":issuerswitch_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "issuerswitch_java_proto", + deps = [":issuerswitch_proto"], +) + +java_grpc_library( + name = "issuerswitch_java_grpc", + srcs = [":issuerswitch_proto"], + deps = [":issuerswitch_java_proto"], +) + +java_gapic_library( + name = "issuerswitch_java_gapic", + srcs = [":issuerswitch_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "issuerswitch_grpc_service_config.json", + service_yaml = "issuerswitch_v1.yaml", + test_deps = [ + ":issuerswitch_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":issuerswitch_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "issuerswitch_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutionsClientHttpJsonTest", + "com.google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutionsClientTest", + "com.google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRulesClientHttpJsonTest", + "com.google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRulesClientTest", + "com.google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactionsClientHttpJsonTest", + "com.google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactionsClientTest", + ], + runtime_deps = [":issuerswitch_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-paymentgateway-issuerswitch-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":issuerswitch_java_gapic", + ":issuerswitch_java_grpc", + ":issuerswitch_java_proto", + ":issuerswitch_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "issuerswitch_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/paymentgateway/issuerswitch/v1", + protos = [":issuerswitch_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/type:date_go_proto", + "//google/type:money_go_proto", + ], +) + +go_gapic_library( + name = "issuerswitch_go_gapic", + srcs = [":issuerswitch_proto_with_info"], + grpc_service_config = "issuerswitch_grpc_service_config.json", + importpath = "cloud.google.com/go/paymentgateway/issuerswitch/apiv1;issuerswitch", + metadata = True, + service_yaml = "issuerswitch_v1.yaml", + transport = "grpc+rest", + deps = [ + ":issuerswitch_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", + ], +) + +go_test( + name = "issuerswitch_go_gapic_test", + srcs = [":issuerswitch_go_gapic_srcjar_test"], + embed = [":issuerswitch_go_gapic"], + importpath = "cloud.google.com/go/paymentgateway/issuerswitch/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-paymentgateway-issuerswitch-v1-go", + deps = [ + ":issuerswitch_go_gapic", + ":issuerswitch_go_gapic_srcjar-metadata.srcjar", + ":issuerswitch_go_gapic_srcjar-test.srcjar", + ":issuerswitch_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "issuerswitch_py_gapic", + srcs = [":issuerswitch_proto"], + grpc_service_config = "issuerswitch_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-payment-gateway-issuer-switch", + "python-gapic-namespace=google.cloud", + "python-gapic-name=payment_gateway_issuer_switch", + ], + service_yaml = "issuerswitch_v1.yaml", + transport = "grpc", +) + +py_test( + name = "issuerswitch_py_gapic_test", + srcs = [ + "issuerswitch_py_gapic_pytest.py", + "issuerswitch_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":issuerswitch_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "paymentgateway-issuerswitch-v1-py", + deps = [ + ":issuerswitch_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "issuerswitch_php_proto", + deps = [":issuerswitch_proto"], +) + +php_grpc_library( + name = "issuerswitch_php_grpc", + srcs = [":issuerswitch_proto"], + deps = [":issuerswitch_php_proto"], +) + +php_gapic_library( + name = "issuerswitch_php_gapic", + srcs = [":issuerswitch_proto_with_info"], + grpc_service_config = "issuerswitch_grpc_service_config.json", + service_yaml = "issuerswitch_v1.yaml", + deps = [ + ":issuerswitch_php_grpc", + ":issuerswitch_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-paymentgateway-issuerswitch-v1-php", + deps = [ + ":issuerswitch_php_gapic", + ":issuerswitch_php_grpc", + ":issuerswitch_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "issuerswitch_nodejs_gapic", + package_name = "@google-cloud/issuerswitch", + src = ":issuerswitch_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "issuerswitch_grpc_service_config.json", + package = "google.cloud.paymentgateway.issuerswitch.v1", + service_yaml = "issuerswitch_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "paymentgateway-issuerswitch-v1-nodejs", + deps = [ + ":issuerswitch_nodejs_gapic", + ":issuerswitch_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 = "issuerswitch_ruby_proto", + deps = [":issuerswitch_proto"], +) + +ruby_grpc_library( + name = "issuerswitch_ruby_grpc", + srcs = [":issuerswitch_proto"], + deps = [":issuerswitch_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "issuerswitch_ruby_gapic", + srcs = [":issuerswitch_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-paymentgateway-issuerswitch-v1"], + grpc_service_config = "issuerswitch_grpc_service_config.json", + service_yaml = "issuerswitch_v1.yaml", + deps = [ + ":issuerswitch_ruby_grpc", + ":issuerswitch_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-paymentgateway-issuerswitch-v1-ruby", + deps = [ + ":issuerswitch_ruby_gapic", + ":issuerswitch_ruby_grpc", + ":issuerswitch_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 = "issuerswitch_csharp_proto", + deps = [":issuerswitch_proto"], +) + +csharp_grpc_library( + name = "issuerswitch_csharp_grpc", + srcs = [":issuerswitch_proto"], + deps = [":issuerswitch_csharp_proto"], +) + +csharp_gapic_library( + name = "issuerswitch_csharp_gapic", + srcs = [":issuerswitch_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "issuerswitch_grpc_service_config.json", + service_yaml = "issuerswitch_v1.yaml", + deps = [ + ":issuerswitch_csharp_grpc", + ":issuerswitch_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-paymentgateway-issuerswitch-v1-csharp", + deps = [ + ":issuerswitch_csharp_gapic", + ":issuerswitch_csharp_grpc", + ":issuerswitch_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "issuerswitch_cc_proto", + deps = [":issuerswitch_proto"], +) + +cc_grpc_library( + name = "issuerswitch_cc_grpc", + srcs = [":issuerswitch_proto"], + grpc_only = True, + deps = [":issuerswitch_cc_proto"], +) diff --git a/google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto b/google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto new file mode 100644 index 000000000..d07981c33 --- /dev/null +++ b/google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto @@ -0,0 +1,344 @@ +// 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.cloud.paymentgateway.issuerswitch.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.PaymentGateway.IssuerSwitch.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/paymentgateway/issuerswitch/v1;issuerswitch"; +option java_multiple_files = true; +option java_outer_classname = "CommonFieldsProto"; +option java_package = "com.google.cloud.paymentgateway.issuerswitch.v1"; +option php_namespace = "Google\\Cloud\\PaymentGateway\\IssuerSwitch\\V1"; +option ruby_package = "Google::Cloud::PaymentGateway::IssuerSwitch::V1"; + +// The API type for a transaction. Every transaction processed by the issuer +// switch will be one of these API types. +enum ApiType { + // Unspecified API type. + API_TYPE_UNSPECIFIED = 0; + + // Balance API. Maps to UPI's `BalEnq` API. This is a metadata + // transaction API. + BALANCE = 1; + + // Check transaction status API. Maps to UPI's `ChkTxn` API. This is a + // metadata transaction API. + CHECK_STATUS = 2; + + // Complain API. Maps to UPI's `Complaint` API. This is a metadata transaction + // API. + COMPLAINT = 3; + + // Heart beat API. Maps to UPI's `Hbt` API. This is a metadata transaction + // API. + HEART_BEAT = 4; + + // Initiate registration API. Maps to UPI's `Otp` API. This is a metadata + // transaction API. + INITIATE_REGISTRATION = 5; + + // List accounts API. Maps to UPI's `ListAccount` API. This is a metadata + // transaction API. + LIST_ACCOUNTS = 6; + + // Mandate API. Maps to UPI's `Mandate` API. This is a metadata transaction + // API. + MANDATE = 7; + + // Payment settlement API. Maps to UPI's `Pay` API. This is a financial + // transaction API. + SETTLE_PAYMENT = 8; + + // Update credentials API. Maps to UPI's `SetCre` API. This is a metadata + // transaction API. + UPDATE_CREDENTIALS = 9; + + // Validate registration API. Maps to UPI's `RegMob` API. This is a metadata + // transaction API. + VALIDATE_REGISTRATION = 10; + + // Voucher confirmation API. Maps to UPI's `VoucherConfirmation` API. + VOUCHER_CONFIRMATION = 11; +} + +// The type of a transaction. Every transaction processed by the issuer switch +// will be one of these transaction types. Transaction types are associated with +// a particular API type. This associated is documented with each value. +enum TransactionType { + // Unspecified transaction type. + TRANSACTION_TYPE_UNSPECIFIED = 0; + + // Autoupdate transaction type. This is associated with the `CHECK_STATUS` + // API type. Maps to UPI's `AUTOUPDATE` type. + TRANSACTION_TYPE_AUTOUPDATE = 1; + + // Balance check transaction type. This is associated with the + // `BALANCE_ENQUIRY` API type. Maps to UPI's `BalChk` type. + TRANSACTION_TYPE_BALANCE_CHECK = 3; + + // Balance enquiry transaction type. This is associated with the + // `BALANCE_ENQUIRY` API type. Maps to UPI's `BalEnq` type. + TRANSACTION_TYPE_BALANCE_ENQUIRY = 4; + + // Check status transaction type. This is associated with the `COMPLAINT` API + // type. Maps to UPI's `CHECKSTATUS` type. + TRANSACTION_TYPE_CHECK_STATUS = 5; + + // Check transaction type. This is associated with the `CHECK_STATUS` API + // type. Maps to UPI's `ChkTxn` type. + TRANSACTION_TYPE_CHECK_TRANSACTION = 6; + + // Complaint transaction type. This is associated with the `COMPLAINT` API + // type. Maps to UPI's `COMPLAINT` type. + TRANSACTION_TYPE_COMPLAINT = 7; + + // Create transaction type. This is associated with the `MANDATE` API type. + // Maps to UPI's `CREATE` type. + TRANSACTION_TYPE_CREATE = 8; + + // Credit transaction type. This is associated with the `SETTLE_PAYMENT` API + // type. Maps to UPI's `CREDIT` type. + TRANSACTION_TYPE_CREDIT = 9; + + // Debit transaction type. This is associated with the `SETTLE_PAYMENT` API + // type. Maps to UPI's `DEBIT` type. + TRANSACTION_TYPE_DEBIT = 10; + + // Dispute transaction type. This is associated with the `COMPLAINT` API + // type. Maps to UPI's `DISPUTE` type. + TRANSACTION_TYPE_DISPUTE = 11; + + // Heart beat transaction type. This is associated with `HEART_BEAT` API type. + // Maps to UPI's `Hbt` type. + TRANSACTION_TYPE_HEART_BEAT = 12; + + // List accounts transaction type. This is associated with `LIST_ACCOUNTS` API + // type. Maps to UPI's `ListAccount` type. + TRANSACTION_TYPE_LIST_ACCOUNTS = 13; + + // OTP transaction type. This is associated with the `INITIATE_REGISTRATION` + // API type. Maps to UPI's `Otp` type. + TRANSACTION_TYPE_OTP = 14; + + // Register mobile transaction type. This is associated with the + // `VALIDATE_REGISTRATION` API type. Maps to UPI's `RegMob` type. + TRANSACTION_TYPE_REGISTER_MOBILE = 15; + + // Refund transaction type. This is associated with the `COMPLAINT` API + // type. Maps to UPI's `REFUND` type. + TRANSACTION_TYPE_REFUND = 16; + + // Reversal transaction type. This is associated with the `SETTLE_PAYMENT` and + // `COMPLAINT` API types. Maps to UPI's `REVERSAL` type. + TRANSACTION_TYPE_REVERSAL = 17; + + // Revoke transaction type. This is associated with the `MANDATE` API type. + // Maps to UPI's `REVOKE` type. + TRANSACTION_TYPE_REVOKE = 18; + + // Status update transaction type. This is associated with the `COMPLAINT` API + // type. Maps to UPI's `STATUSUPDATE` type. + TRANSACTION_TYPE_STATUS_UPDATE = 19; + + // Update transaction type. This is associated with the `MANDATE` API type. + // Maps to UPI's `UPDATE` type. + TRANSACTION_TYPE_UPDATE = 20; + + // Update credentials transaction type. This is associated with + // `UPDATE_CREDENTIALS` API type. Maps to UPI's `SetCre` type. + TRANSACTION_TYPE_UPDATE_CREDENTIALS = 21; + + // Redeem transaction type. This is associated with the `VOUCHER_CONFIRMATION` + // API type. Maps to UPI's `REDEEM` type. + TRANSACTION_TYPE_REDEEM = 22; +} + +// A reference to uniquely identify an account according to India's UPI +// standards. +message AccountReference { + // IFSC code of a bank's branch. + string ifsc_code = 1; + + // Type of account. Examples include SAVINGS, CURRENT, etc. + string account_type = 2; + + // Unique number for an account in a bank and branch. + string account_number = 3; +} + +// A participant in a payment settlement transaction processed by the issuer +// switch. The participant could either be the payer or the payee in the +// transaction. +message SettlementParticipant { + // The participant information. + Participant participant = 1; + + // Unique identification of an account according to India's UPI standards. + AccountReference account = 2; + + // Information about a merchant who is a participant in the payment. This + // field will be specified only if the participant is a merchant. + MerchantInfo merchant_info = 3; + + // Output only. The mobile number of the participant. + string mobile = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The device id of the participant. + string device_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A participant in a transaction processed by the issuer switch. +message Participant { + // The type of the participant. + enum Persona { + // Unspecified persona. + PERSONA_UNSPECIFIED = 0; + + // Participant is an entity. + ENTITY = 1; + + // Participant is a person. + PERSON = 2; + } + + // The virtual payment address (VPA) of the participant. + string virtual_payment_address = 1; + + // The persona of the participant. + Persona persona = 2; + + // The name of the participant. + string user = 3; +} + +// A merchant entity participating in a payment settlement transaction. +message MerchantInfo { + // A unique identifier for the merchant. + string id = 1; + + // The name of the merchant who is a party in the payment. Includes multiple + // possible names for the merchant. + MerchantName merchant = 2; + + // Additional information about the merchant. + MerchantAdditionalInfo additional_info = 3; +} + +// The name of a merchant who is a participant in a payment settlement +// transaction. Includes multiple possible names for the merchant. +message MerchantName { + // The brand name of the merchant. + string brand = 1; + + // The merchant's legal name. + string legal = 2; + + // The franchise name under which the merchant operates. + string franchise = 3; +} + +// Additional merchant information specific to India's UPI requirements. +message MerchantAdditionalInfo { + // Indicates the merchant's type as a small or large merchant. + enum Type { + // Unspecified merchant type. + TYPE_UNSPECIFIED = 0; + + // Large merchant. + LARGE = 1; + + // Small merchant. + SMALL = 2; + } + + // Indicates whether the merchant is an online or offline merchant. + enum Genre { + // Unspecified merchant genre. + GENRE_UNSPECIFIED = 0; + + // Offline merchant + OFFLINE = 1; + + // Online merchant. + ONLINE = 2; + } + + // Indicates whether the merchant has been onboarded by a bank or an + // aggregator. + enum OnboardingType { + // Unspecified merchant onboarding type. + ONBOARDING_TYPE_UNSPECIFIED = 0; + + // Onboarded by aggreagator. + AGGREGATOR = 1; + + // Onboarded by bank. + BANK = 2; + + // Onboarded by the UPI network. + NETWORK = 3; + + // Onboarded by the TPAP. + TPAP = 4; + } + + // Indicates the ownership type of the merchant. + enum OwnershipType { + // Unspecified merchant ownership type. + OWNERSHIP_TYPE_UNSPECIFIED = 0; + + // Properietary ownership. + PROPRIETARY = 1; + + // Partnership ownership. + PARTNERSHIP = 2; + + // Public ownership. + PUBLIC = 3; + + // Private ownership. + PRIVATE = 4; + + // Other ownership model. + OTHERS = 5; + } + + // Merchant Category Code (MCC) as specified by UPI. This is a four-digit + // number listed in ISO 18245 for retail financial services. + string category_code = 1; + + // A unique identifier for the merchant store where the payment settlement + // transaction occurred. + string store_id = 2; + + // A unique identifier for the POS terminal in the store where the payment + // settlement transaction occurred. + string terminal_id = 3; + + // Indicates the type of merchant. + Type type = 4; + + // Indicates the genre of the merchant. + Genre genre = 5; + + // Indicates the merchant's onboarding type. + OnboardingType onboarding_type = 6; + + // Indicates the merchant's owner type. + OwnershipType ownership_type = 7; +} diff --git a/google/cloud/paymentgateway/issuerswitch/v1/issuerswitch_grpc_service_config.json b/google/cloud/paymentgateway/issuerswitch/v1/issuerswitch_grpc_service_config.json new file mode 100644 index 000000000..74eac1aab --- /dev/null +++ b/google/cloud/paymentgateway/issuerswitch/v1/issuerswitch_grpc_service_config.json @@ -0,0 +1,24 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions" + }, + { + "service": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules" + }, + { + "service": "google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions" + } + ], + "timeout": "60s", + "retryPolicy": { + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + } + ] +} diff --git a/google/cloud/paymentgateway/issuerswitch/v1/issuerswitch_v1.yaml b/google/cloud/paymentgateway/issuerswitch/v1/issuerswitch_v1.yaml new file mode 100644 index 000000000..769499794 --- /dev/null +++ b/google/cloud/paymentgateway/issuerswitch/v1/issuerswitch_v1.yaml @@ -0,0 +1,48 @@ +type: google.api.Service +config_version: 3 +name: issuerswitch.googleapis.com +title: Cloud Issuer Switch Service API + +apis: +- name: google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions +- name: google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules +- name: google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions +- name: google.longrunning.Operations + +types: +- name: google.cloud.paymentgateway.issuerswitch.v1.Complaint +- name: google.cloud.paymentgateway.issuerswitch.v1.CreateComplaintMetadata +- name: google.cloud.paymentgateway.issuerswitch.v1.CreateDisputeMetadata +- name: google.cloud.paymentgateway.issuerswitch.v1.Dispute +- name: google.cloud.paymentgateway.issuerswitch.v1.ExportComplaintTransactionsMetadata +- name: google.cloud.paymentgateway.issuerswitch.v1.ExportComplaintTransactionsResponse +- name: google.cloud.paymentgateway.issuerswitch.v1.ExportFinancialTransactionsMetadata +- name: google.cloud.paymentgateway.issuerswitch.v1.ExportFinancialTransactionsResponse +- name: google.cloud.paymentgateway.issuerswitch.v1.ExportMandateTransactionsMetadata +- name: google.cloud.paymentgateway.issuerswitch.v1.ExportMandateTransactionsResponse +- name: google.cloud.paymentgateway.issuerswitch.v1.ExportMetadataTransactionsMetadata +- name: google.cloud.paymentgateway.issuerswitch.v1.ExportMetadataTransactionsResponse +- name: google.cloud.paymentgateway.issuerswitch.v1.ResolveComplaintMetadata +- name: google.cloud.paymentgateway.issuerswitch.v1.ResolveDisputeMetadata + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchResolutions.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchRules.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.paymentgateway.issuerswitch.v1.IssuerSwitchTransactions.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto b/google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto new file mode 100644 index 000000000..78a74e26c --- /dev/null +++ b/google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto @@ -0,0 +1,895 @@ +// 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.cloud.paymentgateway.issuerswitch.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/paymentgateway/issuerswitch/v1/common_fields.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/money.proto"; + +option csharp_namespace = "Google.Cloud.PaymentGateway.IssuerSwitch.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/paymentgateway/issuerswitch/v1;issuerswitch"; +option java_multiple_files = true; +option java_outer_classname = "ResolutionsProto"; +option java_package = "com.google.cloud.paymentgateway.issuerswitch.v1"; +option php_namespace = "Google\\Cloud\\PaymentGateway\\IssuerSwitch\\V1"; +option ruby_package = "Google::Cloud::PaymentGateway::IssuerSwitch::V1"; + +// Creates and resolves UPI complaints and disputes. +service IssuerSwitchResolutions { + option (google.api.default_host) = "issuerswitch.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Create a complaint. The returned `Operation` type has + // the following method-specific fields: + // + // - `metadata`: [CreateComplaintMetadata][google.cloud.paymentgateway.issuerswitch.v1.CreateComplaintMetadata] + // - `response`: [Complaint][google.cloud.paymentgateway.issuerswitch.v1.Complaint] + rpc CreateComplaint(CreateComplaintRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/complaints" + body: "complaint" + }; + option (google.api.method_signature) = "parent,complaint"; + option (google.longrunning.operation_info) = { + response_type: "Complaint" + metadata_type: "CreateComplaintMetadata" + }; + } + + // Resolve a complaint. The returned `Operation` type has + // the following method-specific fields: + // + // - `metadata`: [ResolveComplaintMetadata][google.cloud.paymentgateway.issuerswitch.v1.ResolveComplaintMetadata] + // - `response`: [Complaint][google.cloud.paymentgateway.issuerswitch.v1.Complaint] + rpc ResolveComplaint(ResolveComplaintRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{complaint.name=projects/*/complaints/*}:resolve" + body: "complaint" + }; + option (google.api.method_signature) = "complaint"; + option (google.longrunning.operation_info) = { + response_type: "Complaint" + metadata_type: "ResolveComplaintMetadata" + }; + } + + // Create a dispute. The returned `Operation` type has + // the following method-specific fields: + // + // - `metadata`: [CreateDisputeMetadata][google.cloud.paymentgateway.issuerswitch.v1.CreateDisputeMetadata] + // - `response`: [Dispute][google.cloud.paymentgateway.issuerswitch.v1.Dispute] + rpc CreateDispute(CreateDisputeRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/disputes" + body: "dispute" + }; + option (google.api.method_signature) = "parent,dispute"; + option (google.longrunning.operation_info) = { + response_type: "Dispute" + metadata_type: "CreateDisputeMetadata" + }; + } + + // Resolve a dispute. The returned `Operation` type has + // the following method-specific fields: + // + // - `metadata`: [ResolveDisputeMetadata][google.cloud.paymentgateway.issuerswitch.v1.ResolveDisputeMetadata] + // - `response`: [Dispute][google.cloud.paymentgateway.issuerswitch.v1.Dispute] + rpc ResolveDispute(ResolveDisputeRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{dispute.name=projects/*/disputes/*}:resolve" + body: "dispute" + }; + option (google.api.method_signature) = "dispute"; + option (google.longrunning.operation_info) = { + response_type: "Dispute" + metadata_type: "ResolveDisputeMetadata" + }; + } +} + +// A complaint processed by the issuer switch. +message Complaint { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/Complaint" + pattern: "projects/{project}/complaints/{complaint}" + }; + + // The name of the complaint. This uniquely identifies the complaint. + // Format of name is + // projects/{project_id}/complaints/{complaint_id}. + string name = 1; + + // The reason for raising the complaint. This maps adjustment flag + // and reason code for the complaint to `reqAdjFlag` and `reqAdjCode` in + // complaint request respectively while raising a complaint. + RaiseComplaintAdjustment raise_complaint_adjustment = 2; + + // Required. Details required for raising / resolving a complaint. + CaseDetails details = 4 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Response to the raised / resolved complaint. + CaseResponse response = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The reason for resolving the complaint. It provides adjustment values while + // resolving and for already resolved complaints. This maps adjustment flag + // and reason code for the complaint to `reqAdjFlag` and `reqAdjCode` in + // complaint request respectively when a complete resolution is done via + // Resolve Complaint API otherwise maps to `respAdjFlag` and `respAdjCode` in + // complaint response respectively when a complaint request from UPI is + // directly resolved by issuer switch. + ResolveComplaintAdjustment resolve_complaint_adjustment = 6; +} + +// Request for the `CreateComplaint` method. +message CreateComplaintRequest { + // Required. The parent resource for the complaint. The format is + // `projects/{project}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/Complaint" + } + ]; + + // Required. The complaint to be raised. + Complaint complaint = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `ResolveComplaint` method. +message ResolveComplaintRequest { + // Required. The complaint to be resolved. + Complaint complaint = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A dispute processed by the issuer switch. +message Dispute { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/Dispute" + pattern: "projects/{project}/disputes/{dispute}" + }; + + // The name of the dispute. This uniquely identifies the dispute. + // Format of name is + // projects/{project_id}/disputes/{dispute_id}. + string name = 1; + + // The reason for raising the dispute. This maps adjustment flag + // and reason code for the dispute to `reqAdjFlag` and `reqAdjCode` in + // complaint request respectively while raising a dispute. + RaiseDisputeAdjustment raise_dispute_adjustment = 2; + + // Required. Details required for raising/resolving dispute. + CaseDetails details = 4 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Response to the raised/resolved dispute. + CaseResponse response = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The reason for resolving the dispute. It provides adjustment values while + // resolving and for already resolved disputes. This maps adjustment flag + // and reason code for the dispute to `reqAdjFlag` and `reqAdjCode` in + // dispute request respectively while resolving a dispute. + ResolveDisputeAdjustment resolve_dispute_adjustment = 6; +} + +// Request for the `CreateDispute` method. +message CreateDisputeRequest { + // Required. The parent resource for the dispute. The format is + // `projects/{project}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/Dispute" + } + ]; + + // Required. The dispute to be raised. + Dispute dispute = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `ResolveDispute` method. +message ResolveDisputeRequest { + // Required. The dispute to be resolved. + Dispute dispute = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of original transaction. +message OriginalTransaction { + // Required. Uniquely identifies the original transaction. This maps to the `Txn.Id` + // value of the original transaction in India's UPI system. + string transaction_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Retrieval Reference Number (RRN) of the original transaction. + string retrieval_reference_number = 2 [(google.api.field_behavior) = REQUIRED]; + + // Timestamp of the original transaction request. + google.protobuf.Timestamp request_time = 3; +} + +// Details of the complaint or dispute. +message CaseDetails { + // Required. Details of original transaction. + OriginalTransaction original_transaction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Initiator of the complaint / dispute. + TransactionSubType transaction_sub_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The adjustment amount in URCS for the complaint / dispute. This + // maps to `reqAdjAmount` in complaint request. + google.type.Money amount = 3 [(google.api.field_behavior) = REQUIRED]; + + // The original response code which has been updated in the complaint + // Response. This should map to settlement response code currently available + // in URCS system. + string original_settlement_response_code = 4; + + // Required. Set to true if the complaint / dispute belongs to current settlement cycle, + // false otherwise. + bool current_cycle = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Response to the complaint or dispute. +message CaseResponse { + // Complaint Reference Number(CRN) sent by UPI as a reference against the + // generated complaint / dispute. + string complaint_reference_number = 1; + + // The adjustment amount of the response. This maps to `adjAmt` in + // complaint response. + google.type.Money amount = 2; + + // The adjustment flag in response to the complaint. This maps adjustment flag + // in URCS for the complaint transaction to `Resp.Ref.adjFlag` in complaint + // response. + string adjustment_flag = 3; + + // The adjustment code in response to the complaint. This maps reason code in + // URCS for the complaint transaction to `Resp.Ref.adjCode` in complaint + // response. + string adjustment_code = 4; + + // It defines the Adjustment Reference ID which has been updated in the + // complaint response. This maps to `adjRefID` in complaint response. + string adjustment_reference_id = 5; + + // Adjustment Remarks. This maps to `adjRemarks` in complaint response. + string adjustment_remarks = 6; + + // The Approval Reference Number. This maps to `approvalNum` in complaint + // response. + string approval_number = 7; + + // Process Status of the transaction. This maps to `procStatus` in complaint + // response. + string process_status = 8; + + // The adjustment timestamp when bank performs the adjustment for the received + // complaint request. This maps to `adjTs` in complaint response. + google.protobuf.Timestamp adjustment_time = 9; + + // The details of the participant of the original financial transaction. + oneof participant { + // The payer in the original financial transaction. + SettlementParticipant payer = 10; + + // The payee in the original financial transaction. + SettlementParticipant payee = 11; + } +} + +// The adjusment flag and reason code for raising complaint. +message RaiseComplaintAdjustment { + // The adjusment flag for raising complaint. + enum AdjustmentFlag { + // Unspecified adjustment flag. + ADJUSTMENT_FLAG_UNSPECIFIED = 0; + + // Complaint Raise. This flag maps to the `PBRB` adjustment flag as defined + // in NPCI's `UDIR` specification. + RAISE = 1; + } + + // The reason for raising complaint. + enum ReasonCode { + // Unspecified reason code. + REASON_CODE_UNSPECIFIED = 0; + + // Customer account has not yet reversed for a declined pay transaction. + // This reason code maps to the `U005` reason code as defined in NPCI's + // `UDIR` specification. + CUSTOMER_ACCOUNT_NOT_REVERSED = 1; + + // Goods / services are not provided for approved transaction. + // This reason code maps to the `U008` reason code as defined in NPCI's + // `UDIR` specification. + GOODS_SERVICES_NOT_PROVIDED = 2; + + // Customer account not credited back for declined transaction. This + // reason code maps to the `U009` reason code as defined in NPCI's `UDIR` + // specification. + CUSTOMER_ACCOUNT_NOT_CREDITED_BACK = 3; + + // Beneficiary account is not credited for successful pay transaction. This + // reason code maps to the `U010` reason code as defined in NPCI's `UDIR` + // specification. + BENEFICIARY_ACCOUNT_NOT_CREDITED = 4; + + // Credit not processed for cancelled or returned goods and services. + // This reason code maps to the `U021` reason code as defined in NPCI's + // `UDIR` specification. + GOODS_SERVICES_CREDIT_NOT_PROCESSED = 5; + + // Account debited but transaction confirmation not received at merchant + // location. This reason code maps to the `U022` reason code as defined in + // NPCI's `UDIR` specification. + MERCHANT_NOT_RECEIVED_CONFIRMATION = 6; + + // Paid by alternate means / Duplicate payment. This reason code maps to the + // `U023` reason code as defined in NPCI's `UDIR` specification. + PAID_BY_ALTERNATE_MEANS = 7; + } + + // Required. The adjustment flag in URCS for the complaint transaction. This maps to + // `reqAdjFlag` in complaint request and `respAdjFlag` in complaint response. + AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The adjustment code in URCS for the complaint transaction. This maps to + // `reqAdjCode` in complaint request. + ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The adjusment flag and reason code for resolving the complaint. +message ResolveComplaintAdjustment { + // The adjusment flag for resolving the complaint. + enum AdjustmentFlag { + // Unspecified adjustment flag. + ADJUSTMENT_FLAG_UNSPECIFIED = 0; + + // Debit Reversal Confirmation. This flag maps to the `DRC` adjustment flag + // as defined in NPCI's `UDIR` specification. + DEBIT_REVERSAL_CONFIRMATION = 1; + + // Return. This flag maps to the `RET` adjustment flag as defined in NPCI's + // `UDIR` specification. + RETURN = 2; + + // Refund Reversal Confirmation. This flag maps to the `RRC` adjustment + // flag as defined in NPCI's `UDIR` specification. + REFUND_REVERSAL_CONFIRMATION = 3; + + // Transaction Credit Confirmation. This flag maps to the `TCC` adjustment + // flag as defined in NPCI's `UDIR` specification. + TRANSACTION_CREDIT_CONFIRMATION = 4; + } + + // The complaint resolution reason code. + enum ReasonCode { + // Unspecified reason code. + REASON_CODE_UNSPECIFIED = 0; + + // Customer account has been reversed online for DRC dispute or beneficiary + // account has been credited online for TCC dispute. This reason code maps + // to the `102` reason code as defined in NPCI's `UDIR` specification. + COMPLAINT_RESOLVED_ONLINE = 1; + + // Customer account has been reversed now or manually post reconciliation + // for DRC dispute or beneficiary account has been credited now or manually + // post reconciliation for TCC dispute. This reason code maps to the `103` + // reason code as defined in NPCI's `UDIR` specification. + COMPLAINT_RESOLVED_NOW_OR_MANUALLY = 2; + + // Online decline response failed. This reason code maps to the + // `104` reason code as defined in NPCI's `UDIR` specification. + ORIGINAL_TRANSACTION_NOT_DONE = 3; + + // Account closed. This reason code maps to the `114` reason code for + // RET dispute as defined in NPCI's `UDIR` specification. + RET_ACCOUNT_CLOSED = 4; + + // Account does not exist. This reason code maps to the `115` reason code + // for RET dispute as defined in NPCI's `UDIR` specification. + RET_ACCOUNT_DOES_NOT_EXIST = 5; + + // Party instructions. This reason code maps to the `116` reason code for + // RET dispute as defined in NPCI's `UDIR` specification. + RET_PARTY_INSTRUCTIONS = 6; + + // NRI account. This reason code maps to the `117` reason code for RET + // dispute as defined in NPCI's `UDIR` specification. + RET_NRI_ACCOUNT = 7; + + // Credit freezed. This reason code maps to the `118` reason code for RET + // dispute as defined in NPCI's `UDIR` specification. + RET_CREDIT_FREEZED = 8; + + // Invalid beneficiary details. This reason code maps to the `119` reason + // code for RET dispute as defined in NPCI's `UDIR` specification. + RET_INVALID_BENEFICIARY_DETAILS = 9; + + // Any other reason. This reason code maps to the `120` reason code for RET + // dispute as defined in NPCI's `UDIR` specification. + RET_ANY_OTHER_REASON = 10; + + // Beneficiary bank unable to credit their customer account. + // This reason code maps to the `1094` reason code for RET dispute as + // defined in NPCI's `UDIR` specification. + RET_BENEFICIARY_CANNOT_CREDIT = 11; + + // Account debited but transaction confirmation not received at merchant + // location. This reason code maps to the `1065` reason code for Credit + // adjustment and RET dispute as defined in NPCI's `UDIR` specification. + RET_MERCHANT_NOT_RECEIVED_CONFIRMATION = 12; + + // Customer account has been credited. This reason code maps to the `501` + // reason code for Refund reversal confirmation dispute as defined in NPCI's + // `UDIR` specification. + RRC_CUSTOMER_ACCOUNT_CREDITED = 13; + } + + // Required. The adjustment flag in URCS for the complaint transaction. This maps to + // `reqAdjFlag` in complaint request and `respAdjFlag` in complaint response. + AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The adjustment code in URCS for the complaint transaction. This maps to + // `reqAdjCode` in complaint request. + ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The adjusment flag and reason code for raising dispute. +message RaiseDisputeAdjustment { + // The adjusment flag for raising dispute. + enum AdjustmentFlag { + // Unspecified adjustment flag. + ADJUSTMENT_FLAG_UNSPECIFIED = 0; + + // Chargeback Raise. This flag maps to the `B` adjustment flag as + // defined in NPCI's `UDIR` specification. + CHARGEBACK_RAISE = 1; + + // Fraud Chargeback Raise. This flag maps to the `FC` adjustment flag + // as defined in NPCI's `UDIR` specification. + FRAUD_CHARGEBACK_RAISE = 2; + + // Wrong Credit Chargeback Raise. This flag maps to the `WC` adjustment + // flag as defined in NPCI's `UDIR` specification. + WRONG_CREDIT_CHARGEBACK_RAISE = 3; + + // Deferred Chargeback Raise. This flag maps to the `FB` adjustment flag + // as defined in NPCI's `UDIR` specification. + DEFERRED_CHARGEBACK_RAISE = 4; + + // Pre-Arbitration Raise. This flag maps to the `P` adjustment flag as + // defined in NPCI's `UDIR` specification. + PRE_ARBITRATION_RAISE = 5; + + // Deferred Pre-Arbitration Raise. This flag maps to the `FP` adjustment + // flag as defined in NPCI's `UDIR` specification. + DEFERRED_PRE_ARBITRATION_RAISE = 6; + + // Arbitration Raise. This flag maps to the `AR` adjustment flag as + // defined in NPCI's `UDIR` specification. + ARBITRATION_RAISE = 7; + + // Deferred Arbitration Raise. This flag maps to the `FAR` adjustment flag + // as defined in NPCI's `UDIR` specification. + DEFERRED_ARBITRATION_RAISE = 8; + } + + // The reason for raising dispute. + enum ReasonCode { + // Unspecified reason code. + REASON_CODE_UNSPECIFIED = 0; + + // Remitter account is debited but beneficiary account is not credited. + // This reason code maps to the `108` reason code as defined in + // NPCI's `UDIR` specification. + CHARGEBACK_RAISE_REMITTER_DEBITED_BENEFICIARY_NOT_CREDITED = 1; + + // Remitter bank customer still disputes that beneficiary account is not + // credited. This reason code maps to the `109` reason code as defined in + // NPCI's `UDIR` specification. + PRE_ARBITRATION_RAISE_BENEFICIARY_NOT_CREDITED = 2; + + // TCC has been raised but customer still complaining that beneficiary + // account is not credited. This reason code maps to the `121` reason code + // as defined in NPCI's `UDIR` specification. + DEFERRED_CHARGEBACK_RAISE_BENEFICIARY_NOT_CREDITED = 3; + + // Customer is still complaining for not crediting the beneficiary + // customer account. This reason code maps to the `124` reason code as + // defined in NPCI's `UDIR` specification. + DEFERRED_PRE_ARBITRATION_RAISE_BENEFICIARY_NOT_CREDITED = 4; + + // Customer is complaining even after raising Deferred Chargeback and + // Pre-Arbitration on Deferred Chargeback where both have been rejected by + // beneficiary bank. This reason code maps to the `127` reason code as + // defined in NPCI's `UDIR` specification. + DEFERRED_ARBITRATION_RAISE_DEFERRED_CHARGEBACK_PRE_ARBITRATION_REJECTED = 5; + + // Chargeback on fraudulent transaction. This reason code maps to the `128` + // reason code as defined in NPCI's `UDIR` specification. + CHARGEBACK_ON_FRAUD = 6; + + // Credit not processed for cancelled or returned goods and services. This + // reason code maps to the `1061` reason code as defined in NPCI's `UDIR` + // specification. + GOODS_SERVICES_CREDIT_NOT_PROCESSED = 7; + + // Goods and services not as described / defective. This reason code maps to + // the `1062` reason code as defined in NPCI's `UDIR` specification. + GOODS_SERVICES_DEFECTIVE = 8; + + // Paid by alternate means. This reason code maps to the `1063` reason code + // as defined in NPCI's `UDIR` specification. + PAID_BY_ALTERNATE_MEANS = 9; + + // Goods or services not provided / not received. This reason code maps to + // the `1064` reason code as defined in NPCI's `UDIR` specification. + GOODS_SERVICES_NOT_RECEIVED = 10; + + // Account debited but transaction confirmation not received at merchant + // location. This reason code maps to the `1065` reason code for chargeback + // raise and deferred chargeback raise as defined in NPCI's `UDIR` + // specification. + MERCHANT_NOT_RECEIVED_CONFIRMATION = 11; + + // Transaction not steeled within the specified timeframes. This reason code + // maps to the `1081` reason code as defined in NPCI's `UDIR` specification. + TRANSACTION_NOT_STEELED = 12; + + // Duplicate / Multiple transaction. This reason code maps to the `1084` + // reason code as defined in NPCI's `UDIR` specification. + DUPLICATE_TRANSACTION = 13; + + // Card holder was charged more than the transaction amount. + // This reason code maps to the `1085` reason code for Chargeback raise + // dispute as defined in NPCI's `UDIR` specification. + CHARGEBACK_CARD_HOLDER_CHARGED_MORE = 14; + + // Customer is still claiming that services are not delivered. This reason + // code maps to the `1097` reason code as defined in NPCI's `UDIR` + // specification. + CUSTOMER_CLAIMING_GOODS_SERVICES_NOT_DELIVERED = 15; + + // Both the parties denied to agree. This reason code maps to the `1100` + // reason code as defined in NPCI's `UDIR` specification. + PARTIES_DENIED = 16; + + // Customer transferred funds to the unintended beneficiary account. This + // reason code maps to the `WC1` reason code as defined in NPCI's `UDIR` + // specification. + FUNDS_TRANSFERRED_TO_UNINTENDED_BENEFICIARY = 17; + } + + // Required. The adjustment flag in URCS for the complaint transaction. This maps to + // `reqAdjFlag` in dispute request and `respAdjFlag` in dispute response. + AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The adjustment code in URCS for the complaint transaction. This maps to + // `reqAdjCode` in dispute request. + ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The adjusment flag and reason code for resolving the dispute. +message ResolveDisputeAdjustment { + // The adjusment flag for resolving the dispute. + enum AdjustmentFlag { + // Unspecified adjustment flag. + ADJUSTMENT_FLAG_UNSPECIFIED = 0; + + // Re-presentment Raise. This flag maps to the `R` adjustment flag as + // defined in NPCI's `UDIR` specification. + RE_PRESENTMENT_RAISE = 1; + + // Deferred Re-presentment Raise. This flag maps to the `FR` adjustment + // flag as defined in NPCI's `UDIR` specification. + DEFERRED_RE_PRESENTMENT_RAISE = 2; + + // Chargeback Acceptance. This flag maps to the `A` adjustment flag as + // defined in NPCI's `UDIR` specification. + CHARGEBACK_ACCEPTANCE = 3; + + // Deferred Chargeback Acceptance. This flag maps to the `FA` adjustment + // flag as defined in NPCI's `UDIR` specification. + DEFERRED_CHARGEBACK_ACCEPTANCE = 4; + + // Pre-Arbitration Acceptance. This flag maps to the `AP` adjustment flag as + // defined in NPCI's `UDIR` specification. + PRE_ARBITRATION_ACCEPTANCE = 5; + + // Deferred Pre-Arbitration Acceptance. This flag maps to the `FAP` + // adjustment flag as defined in NPCI's `UDIR` specification. + DEFERRED_PRE_ARBITRATION_ACCEPTANCE = 6; + + // Pre-Arbitration Declined. This flag maps to the `PR` adjustment flag as + // defined in NPCI's `UDIR` specification. + PRE_ARBITRATION_DECLINED = 7; + + // Deferred Pre-Arbitration Declined. This flag maps to the `FPR` adjustment + // flag as defined in NPCI's `UDIR` specification. + DEFERRED_PRE_ARBITRATION_DECLINED = 8; + + // Arbitration Acceptance. This flag maps to the `ACA` adjustment flag as + // defined in NPCI's `UDIR` specification. + ARBITRATION_ACCEPTANCE = 9; + + // Arbitration Continuation. This flag maps to the `ACC` adjustment flag as + // defined in NPCI's `UDIR` specification. + ARBITRATION_CONTINUATION = 10; + + // Arbitration Withdrawn. This flag maps to the `ACW` adjustment flag as + // defined in NPCI's `UDIR` specification. + ARBITRATION_WITHDRAWN = 11; + + // Arbitration Verdict. This flag maps to the `ACV` adjustment flag as + // defined in NPCI's `UDIR` specification. + ARBITRATION_VERDICT = 12; + + // Credit Adjustment. This flag maps to the `C` adjustment flag as + // defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT = 13; + + // Fraud Chargeback Representment. This flag maps to the `FCR` adjustment + // flag as defined in NPCI's `UDIR` specification. + FRAUD_CHARGEBACK_REPRESENTMENT = 14; + + // Fraud Chargeback Accept. This flag maps to the `FCA` adjustment flag + // as defined in NPCI's `UDIR` specification. + FRAUD_CHARGEBACK_ACCEPT = 15; + + // Wrong Credit Representment. This flag maps to the `WR` adjustment + // flag as defined in NPCI's `UDIR` specification. + WRONG_CREDIT_REPRESENTMENT = 16; + + // Wrong Credit Chargeback Acceptance. This flag maps to the `WA` adjustment + // flag as defined in NPCI's `UDIR` specification. + WRONG_CREDIT_CHARGEBACK_ACCEPTANCE = 17; + + // Manual Adjustment. This flag maps to the `MA` adjustment flag as defined + // in NPCI's `UDIR` specification. + MANUAL_ADJUSTMENT = 18; + } + + // The dispute resolution reason code. + enum ReasonCode { + // Unspecified reason code. + REASON_CODE_UNSPECIFIED = 0; + + // Beneficiary bank unable to credit their customer account for Chargeback + // Acceptance dispute or duplicate processing for Pre Arbitration Acceptance + // dispute. This reason code maps to the `111` reason code as defined in + // NPCI's `UDIR` specification. + CHARGEBACK_BENEFICIARY_CANNOT_CREDIT_OR_PRE_ARBITRATION_DUPLICATE_PROCESS = 1; + + // Beneficiary account has been credited online. This reason code maps to + // the `112` reason code for Pre-arbitration declined dispute as defined in + // NPCI's `UDIR` specification. + PRE_ARBITRATION_DECLINED_BENEFICIARY_CREDITED_ONLINE = 3; + + // Beneficiary account has been credited manually post reconciliation. This + // reason code maps to the `113` reason code for Pre-arbitration declined + // dispute as defined in NPCI's `UDIR` specification. + PRE_ARBITRATION_DECLINED_BENEFICIARY_CREDITED_MANUALLY = 4; + + // Customer account is not credited, TCC raised inadvertently. This reason + // code maps to the `122` reason code as defined in NPCI's `UDIR` + // specification. + DEFERRED_CHARGEBACK_ACCEPTANCE_ACCOUNT_NOT_CREDITED_TCC_RAISED = 5; + + // Customer account is credited successfully and TCC raised accordingly. + // This reason code maps to the `123` reason code as defined in NPCI's + // `UDIR` specification. + DEFERRED_RE_PRESENTMENT_RAISE_ACCOUNT_CREDITED_TCC_RAISED = 6; + + // Customer account is not credited, TCC and Re-Presentment raised + // inadvertently. This reason code maps to the `125` reason code as defined + // in NPCI's `UDIR` specification. + DEFERRED_PRE_ARBITRATION_ACCEPTANCE_ACCOUNT_NOT_CREDITED = 7; + + // Customer account is credited successfully and TCC and Re-Presentment + // raised accordingly. This reason code maps to the `126` reason code as + // defined in NPCI's `UDIR` specification. + DEFERRED_PRE_ARBITRATION_DECLINED_ACCOUNT_CREDITED = 8; + + // Amount has been recovered successfully from the fraudulent customer + // account. This reason code maps to the `129` reason code as defined + // in NPCI's `UDIR` specification. + FRAUD_CHARGEBACK_ACCEPT_AMOUNT_RECOVERED_FROM_FRAUDULENT_ACCOUNT = 9; + + // Lien marked however, customer account is not having sufficient balance to + // debit. This reason code maps to the `130` reason code for + // Fraud chargeback representment dispute as defined in NPCI's `UDIR` + // specification. + FRAUD_CHARGEBACK_REPRESENTMENT_LIEN_MARKED_INSUFFICIENT_BALANCE = 10; + + // FIR Copy not provided for the disputed transaction. This reason code maps + // to the `131` reason code as defined in NPCI's `UDIR` specification. + FRAUD_CHARGEBACK_REPRESENTMENT_FIR_NOT_PROVIDED = 11; + + // Other reason for Fraud chargeback representment dispute. This reason code + // maps to the `132` reason code as defined in NPCI's `UDIR` specification. + FRAUD_CHARGEBACK_REPRESENTMENT_REASON_OTHERS = 12; + + // Beneficiary account credited online. This reason code maps to the `208` + // reason code for Re-presentment raise dispute as defined in NPCI's `UDIR` + // specification. + RE_PRESENTMENT_RAISE_BENEFICIARY_CREDITED_ONLINE = 13; + + // Beneficiary account credited manually post reconciliation. This reason + // code maps to the `209` reason code for Re-presentment raise dispute as + // defined in NPCI's `UDIR` specification. + RE_PRESENTMENT_RAISE_BENEFICIARY_CREDITED_MANUALLY = 14; + + // Credit not processed for cancelled or returned goods and services. This + // reason code maps to the `1061` reason code as defined in NPCI's `UDIR` + // specification. + CREDIT_ADJUSTMENT_GOODS_SERVICES_CREDIT_NOT_PROCESSED = 15; + + // Goods and Services not as described / defective. This reason code maps to + // the `1062` reason code as defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_GOODS_SERVICES_DEFECTIVE = 16; + + // Paid by alternate means. This reason code maps to the `1063` reason code + // as defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_PAID_BY_ALTERNATE_MEANS = 17; + + // Goods or Services Not Provided / Not Received. This reason code maps to + // the `1064` reason code as defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_GOODS_SERVICES_NOT_RECEIVED = 18; + + // Account debited but transaction confirmation not received at merchant + // location. This reason code maps to the `1065` reason code for Credit + // adjustment as defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_MERCHANT_NOT_RECEIVED_CONFIRMATION = 19; + + // Duplicate /Multiple Transaction. This reason code maps to the `1084` + // reason code as defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_DUPLICATE_TRANSACTION = 20; + + // Other reason for Credit adjustment. This reason code maps to the `1090` + // reason code as defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_REASON_OTHERS = 21; + + // Non Matching account number. This reason code maps to the `1091` + // reason code as defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_NON_MATCHING_ACCOUNT_NUMBER = 22; + + // Card holder was charged more than the transaction amount. + // This reason code maps to the `1092` reason code as defined in NPCI's + // `UDIR` specification. + CREDIT_ADJUSTMENT_CARD_HOLDER_CHARGED_MORE = 23; + + // Credit not Processed. This reason code maps to the `1093` reason code as + // defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_CREDIT_NOT_PROCESSED = 24; + + // Beneficiary bank unable to credit their customer account. This reason + // code maps to the `1094` reason code for Credit Adjustment dispute as + // defined in NPCI's `UDIR` specification. + CREDIT_ADJUSTMENT_BENEFICIARY_CANNOT_CREDIT = 25; + + // Merchant was unable to provide the service. This reason code maps to the + // `1095` reason code as defined in NPCI's `UDIR` specification. + CHARGEBACK_ACCEPTANCE_MERCHANT_CANNOT_PROVIDE_SERVICE = 26; + + // Services/Goods provided see the supporting document. This reason code + // maps to the `1096` reason code as defined in NPCI's `UDIR` specification. + RE_PRESENTMENT_RAISE_GOODS_SERVICES_PROVIDED = 27; + + // Services provided later see supporting documents. This reason code maps + // to the `1098` reason code as defined in NPCI's `UDIR` specification. + PRE_ARBITRATION_DECLINED_SERVICES_PROVIDED_LATER = 28; + + // Services not provided by the merchant. This reason code maps to the + // `1099` reason code as defined in NPCI's `UDIR` specification. + PRE_ARBITRATION_ACCEPTANCE_SERVICES_NOT_PROVIDED_BY_MERCHANT = 29; + + // Illegible Fulfilment. This reason code maps to the `1101` reason code for + // arbitration acceptance dispute as defined in NPCI's `UDIR` specification. + ARBITRATION_ACCEPTANCE_ILLEGIBLE_FULFILMENT = 30; + + // Customer has still not received the service. This reason code maps to the + // `1102` reason code as defined in NPCI's `UDIR` specification. + ARBITRATION_CONTINUATION_CUSTOMER_STILL_NOT_RECEIVED_SERVICE = 31; + + // Customer has received the service later. This reason code maps to the + // `1103` reason code as defined in NPCI's `UDIR` specification. + ARBITRATION_WITHDRAWN_CUSTOMER_RECEIVED_SERVICE_LATER = 32; + + // Panel will give the verdict. This reason code maps to the `1104` reason + // code as defined in NPCI's `UDIR` specification. + ARBITRATION_VERDICT_PANEL_VERDICT = 33; + + // Manual adjustment. This reason code maps to the `2001` reason code as + // defined in NPCI's `UDIR` specification. + MANUAL_ADJUSTMENT_REASON = 34; + + // Attributing to the Customer. This reason code maps to the `AC` reason + // code as defined in NPCI's `UDIR` specification. + ATTRIBUTING_CUSTOMER = 35; + + // Attributing to the Technical issue at bank/aggregator/merchant. This + // reason code maps to the `AT` reason code as defined in NPCI's `UDIR` + // specification. + ATTRIBUTING_TECHNICAL_ISSUE = 36; + + // Amount has been recovered successfully from the unintended customer + // account. This reason code maps to the `WC2` reason code as defined in + // NPCI's `UDIR` specification. + WRONG_CREDIT_CHARGEBACK_ACCEPTANCE_AMOUNT_RECOVERED = 37; + + // Lien marked however customer account is not having sufficient balance to + // debit the customer account. This reason code maps to the `WC3` reason + // code for Wrong credit representment dispute as defined in NPCI's `UDIR` + // specification. + WRONG_CREDIT_REPRESENTMENT_LIEN_MARKED_INSUFFICIENT_BALANCE = 38; + + // Customer is not accessible for obtaining debit confirmation. This reason + // code maps to the `WC4` reason code as defined in NPCI's `UDIR` + // specification. + WRONG_CREDIT_REPRESENTMENT_CUSTOMER_INACCESSIBLE = 39; + + // Other reason for Wrong credit representment. This reason code maps to the + // `WC5` reason code as defined in NPCI's `UDIR` specification. + WRONG_CREDIT_REPRESENTMENT_REASON_OTHERS = 40; + } + + // Required. The adjustment flag in URCS for the complaint transaction. This maps to + // `reqAdjFlag` in dispute request and `respAdjFlag` in dispute response. + AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The adjustment code in URCS for the complaint transaction. This maps to + // `reqAdjCode` in dispute request. + ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata for CreateComplaint. +message CreateComplaintMetadata { + +} + +// Metadata for ResolveComplaint. +message ResolveComplaintMetadata { + +} + +// Metadata for CreateDispute. +message CreateDisputeMetadata { + +} + +// Metadata for ResolveDispute. +message ResolveDisputeMetadata { + +} + +// The subtype of the complaint or dispute. +enum TransactionSubType { + // Unspecified transaction subtype. + TRANSACTION_SUB_TYPE_UNSPECIFIED = 0; + + // Beneficiary transaction subtype. + TRANSACTION_SUB_TYPE_BENEFICIARY = 1; + + // Remitter transaction subtype. + TRANSACTION_SUB_TYPE_REMITTER = 2; +} diff --git a/google/cloud/paymentgateway/issuerswitch/v1/rules.proto b/google/cloud/paymentgateway/issuerswitch/v1/rules.proto new file mode 100644 index 000000000..d7d115faa --- /dev/null +++ b/google/cloud/paymentgateway/issuerswitch/v1/rules.proto @@ -0,0 +1,339 @@ +// 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.cloud.paymentgateway.issuerswitch.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/paymentgateway/issuerswitch/v1/common_fields.proto"; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Google.Cloud.PaymentGateway.IssuerSwitch.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/paymentgateway/issuerswitch/v1;issuerswitch"; +option java_multiple_files = true; +option java_outer_classname = "RulesProto"; +option java_package = "com.google.cloud.paymentgateway.issuerswitch.v1"; +option php_namespace = "Google\\Cloud\\PaymentGateway\\IssuerSwitch\\V1"; +option ruby_package = "Google::Cloud::PaymentGateway::IssuerSwitch::V1"; + +// Manages rules used by the issuer switch's rules engine. +service IssuerSwitchRules { + option (google.api.default_host) = "issuerswitch.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // List all rules that are applied on transactions by the issuer switch. Rules + // can be filtered on API type and transaction type. + rpc ListRules(ListRulesRequest) returns (ListRulesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*}/rules" + }; + option (google.api.method_signature) = "parent"; + } + + // List all rule metadata for a given rule identifier. + rpc ListRuleMetadata(ListRuleMetadataRequest) returns (ListRuleMetadataResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/rules/*}/metadata" + }; + option (google.api.method_signature) = "parent"; + } + + // List all metadata values for a rule metadata identifier. + rpc ListRuleMetadataValues(ListRuleMetadataValuesRequest) returns (ListRuleMetadataValuesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/rules/*/metadata/*}/values" + }; + option (google.api.method_signature) = "parent"; + } + + // Create (add) multiple values to the list of values under the specified rule + // metadata resource. + rpc BatchCreateRuleMetadataValues(BatchCreateRuleMetadataValuesRequest) returns (BatchCreateRuleMetadataValuesResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/rules/*/metadata/*}/values:batchCreate" + body: "*" + }; + option (google.api.method_signature) = "parent"; + } + + // Delete (remove) multiple values from the list of values under the specified + // rules metadata resource. + rpc BatchDeleteRuleMetadataValues(BatchDeleteRuleMetadataValuesRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/rules/*/metadata/*}/values:batchDelete" + body: "*" + }; + option (google.api.method_signature) = "parent"; + } +} + +// A rule that is executed by the issuer switch while processing an +// API transaction. +message Rule { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/Rule" + pattern: "projects/{project}/rules/{rule}" + }; + + // The unique identifier for this resource. + // Format: projects/{project}/rules/{rule} + string name = 1; + + // The description of the rule. + string rule_description = 2; + + // The API Type for which this rule gets executed. A value of + // `API_TYPE_UNSPECIFIED` indicates that the rule is executed for all API + // transactions. + ApiType api_type = 3; + + // The transaction type for which this rule gets executed. A value of + // `TRANSACTION_TYPE_UNSPECIFIED` indicates that the rule is executed for + // all transaction types. + TransactionType transaction_type = 4; +} + +// The metadata associated with a rule. This defines data that are used by the +// rule during execution. +message RuleMetadata { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/RuleMetadata" + pattern: "projects/{project}/rules/{rule}/metadata/{metadata}" + }; + + // The type of metadata. + enum Type { + // Unspecified type. + TYPE_UNSPECIFIED = 0; + + // List type. Indicates that the metadata contains a list of values which + // the rule requires for execution. + LIST = 1; + } + + // The unique identifier for this resource. + // Format: projects/{project}/rules/{rule}/metadata/{metadata} + string name = 1; + + // The description of the rule metadata. + string description = 2; + + // Type of rule metadata. + Type type = 3; +} + +// Represent a single value in a rule's metadata. +message RuleMetadataValue { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/RuleMetadataValue" + pattern: "projects/{project}/rules/{rule}/metadata/{metadata}/values/{value}" + }; + + // Output only. The unique identifier for this resource. + // Format: projects/{project}/rules/{rule}/metadata/{metadata}/values/{value} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The value of the resource which could be of type string or + // AccountReference. The metadata values for rules + // BlockedPayeeAccountReqPayDebitRule, BlockedPayerAccountReqPayDebitRule, + // BlockedPayeeAccountReqPayCreditRule and BlockedPayerAccountReqPayCreditRule + // should be of type AccountReference. For all other rules, metadata values + // should be of type string. + // + // The length of the `value` field depends on the type of + // the value being used for the rule metadata. The following are the minimum + // and maximum lengths for the different types of values. + // + // Value Type | Minimum Length | Maximum Length | + // -------- | -------- | -------- | + // Bank account IFSC | 11 | 11 | + // Bank account number | 1 | 255 | + // Device identifier | 1 | 255 | + // Mobile number | 12 | 12 | + // Virtual private address (VPA) | 3 | 255 | + oneof value { + // The value for string metadata. + string id = 2; + + // The value for account reference metadata. + AccountReference account_reference = 3; + } +} + +// Request body for the `ListRules` method. +message ListRulesRequest { + // Required. The parent resource must have the format of `projects/{project}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/Rule" + } + ]; + + // The maximum number of rules to return. The service may return fewer + // than this value. If unspecified or if the specified value is less than 50, + // at most 50 rules 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 `ListRulesRequest` call. + // Specify this parameter to retrieve the next page of rules. + string page_token = 3; +} + +// Response body for the `ListRules` method. +message ListRulesResponse { + // List of rules satisfying the specified filter criteria. + repeated Rule rules = 1; + + // Pass this token in a subsequent `ListRulesRequest` call to continue to list + // results. If all results have been returned, this field is an empty string + // or not present in the response. + string next_page_token = 2; + + // Total number of rules matching request criteria across all pages. + int64 total_size = 3; +} + +// Request body for the `ListRuleMetadata` method. +message ListRuleMetadataRequest { + // Required. The parent resource. The format is `projects/{project}/rules/{rule}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/RuleMetadata" + } + ]; + + // The maximum number of rule metadata to return. The service may return fewer + // than this value. If unspecified or if the specified value is less than 50, + // at most 50 rule metadata 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 `ListRuleMetadataRequest` call. + // Specify this parameter to retrieve the next page of rule metadata. + string page_token = 3; +} + +// Response body for the `ListRuleMetadata` method. +message ListRuleMetadataResponse { + // List of rule metadata associated with the rule. + repeated RuleMetadata rule_metadata = 1; + + // Pass this token in a subsequent `ListRuleMetadataRequest` call to continue + // to list results. If all results have been returned, this field is an empty + // string or not present in the response. + string next_page_token = 2; + + // Total number of rule metadata matching request criteria across all pages. + int64 total_size = 3; +} + +// Request body for the `ListRuleMetadataValues` method. +message ListRuleMetadataValuesRequest { + // Required. The parent resource. The format is + // `projects/{project}/rules/{rule}/metadata/{metadata}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/RuleMetadataValue" + } + ]; + + // The maximum number of metadata values to return. The service may return + // fewer than this value. If unspecified or if the specified value is less + // than 1, at most 50 rule metadata values 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 `ListRuleMetadataValuesRequest` + // call. Specify this parameter to retrieve the next page of rule metadata + // values. + string page_token = 3; +} + +// Response body for ListRuleMetadataValues. Contains a List of values for a +// given rule metadata resource. +message ListRuleMetadataValuesResponse { + // List of values for a given rule metadata resource identifier. + repeated RuleMetadataValue rule_metadata_values = 1; + + // Pass this token in a subsequent `ListRuleMetadataValuesRequest` call to + // continue to list results. If all results have been returned, this field is + // an empty string or not present in the response. + string next_page_token = 2; +} + +// Request body for the `BatchCreateRuleMetadataValues` method. +message BatchCreateRuleMetadataValuesRequest { + // The parent resource shared by all ruleMetadataValue being created. The + // format is `projects/{project}/rules/{rule}/metadata/{metadata}`. The + // [CreateRuleMetadataValueRequest.parent][google.cloud.paymentgateway.issuerswitch.v1.CreateRuleMetadataValueRequest.parent] field in the + // [CreateRuleMetadataValueRequest][google.cloud.paymentgateway.issuerswitch.v1.CreateRuleMetadataValueRequest] messages contained in this request must + // match this field. + string parent = 1 [(google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/RuleMetadataValue" + }]; + + // Required. The request message specifying the resources to create. + // A maximum of 1000 RuleMetadataValues can be created in a batch. + repeated CreateRuleMetadataValueRequest requests = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response body for the `BatchCreateRuleMetadataValues` method. +message BatchCreateRuleMetadataValuesResponse { + // List of RuleMetadataValue created. + repeated RuleMetadataValue rule_metadata_value = 1; +} + +// Request for creating a single `RuleMetadataValue`. +message CreateRuleMetadataValueRequest { + // Required. The parent resource where this RuleMetadataValue will be created. The + // format is `projects/{project}/rules/{rule}/metadata/{metadata}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/RuleMetadataValue" + } + ]; + + // Required. The rule metadata value to create or add to a list. + RuleMetadataValue rule_metadata_value = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request body for the `BatchDeleteRuleMetadataValues` method. +message BatchDeleteRuleMetadataValuesRequest { + // The parent resource shared by all RuleMetadataValues being deleted. The + // format is `projects/{project}/rules/{rule}/metadata/{metadata}`. If this is + // set, the parent of all of the RuleMetadataValues specified in the + // list of names must match this field. + string parent = 1 [(google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/RuleMetadataValue" + }]; + + // Required. The names of the rule metadata values to delete. + // A maximum of 1000 RuleMetadataValue can be deleted in a batch. + // Format: projects/{project}/rules/{rule}/metadata/{metadata}/values/{value} + repeated string names = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "issuerswitch.googleapis.com/RuleMetadataValue" + } + ]; +} diff --git a/google/cloud/paymentgateway/issuerswitch/v1/transactions.proto b/google/cloud/paymentgateway/issuerswitch/v1/transactions.proto new file mode 100644 index 000000000..f1bf6bca4 --- /dev/null +++ b/google/cloud/paymentgateway/issuerswitch/v1/transactions.proto @@ -0,0 +1,1133 @@ +// 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.cloud.paymentgateway.issuerswitch.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/paymentgateway/issuerswitch/v1/common_fields.proto"; +import "google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; +import "google/type/money.proto"; + +option csharp_namespace = "Google.Cloud.PaymentGateway.IssuerSwitch.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/paymentgateway/issuerswitch/v1;issuerswitch"; +option java_multiple_files = true; +option java_outer_classname = "TransactionsProto"; +option java_package = "com.google.cloud.paymentgateway.issuerswitch.v1"; +option php_namespace = "Google\\Cloud\\PaymentGateway\\IssuerSwitch\\V1"; +option ruby_package = "Google::Cloud::PaymentGateway::IssuerSwitch::V1"; + +// Lists and exports transactions processed by the issuer switch. +service IssuerSwitchTransactions { + option (google.api.default_host) = "issuerswitch.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // List metadata transactions that satisfy the specified filter criteria. + rpc ListMetadataTransactions(ListMetadataTransactionsRequest) returns (ListMetadataTransactionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*}/metadataTransactions" + }; + option (google.api.method_signature) = "parent"; + } + + // List financial transactions that satisfy specified filter criteria. + rpc ListFinancialTransactions(ListFinancialTransactionsRequest) returns (ListFinancialTransactionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*}/financialTransactions" + }; + option (google.api.method_signature) = "parent"; + } + + // List mandate transactions that satisfy specified filter criteria. + rpc ListMandateTransactions(ListMandateTransactionsRequest) returns (ListMandateTransactionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*}/mandateTransactions" + }; + option (google.api.method_signature) = "parent"; + } + + // List complaint transactions that satisfy specified filter criteria. + rpc ListComplaintTransactions(ListComplaintTransactionsRequest) returns (ListComplaintTransactionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*}/complaintTransactions" + }; + option (google.api.method_signature) = "parent"; + } + + // Export financial transactions received within the specified time range as a + // file into a configured target location. The returned `Operation` type has + // the following method-specific fields: + // + // - `metadata`: [ExportFinancialTransactionsMetadata][google.cloud.paymentgateway.issuerswitch.v1.ExportFinancialTransactionsMetadata] + // - `response`: [ExportFinancialTransactionsResponse][google.cloud.paymentgateway.issuerswitch.v1.ExportFinancialTransactionsResponse] + // + // The exported file will be in the standard CSV format where each row in the + // file represents a transaction. The file has the following fields in order: + // + // - `TransactionID` - UPI transaction ID. + // - `TransactionType` - Type of the transaction. This will be one of + // `TRANSACTION_TYPE_CREDIT`, `TRANSACTION_TYPE_DEBIT` or + // `TRANSACTION_TYPE_REVERSAL`. + // - `TransactionSubType` - Subtype of the transaction. This will be one + // of `COLLECT`, `DEBIT` or `PAY`. + // - `RequestReceivedTimestamp` - Timestamp (in UTC) indicating when the + // transaction API request was received by the issuer switch. + // - `CreationTime` - Timestamp (in UTC) indicating when the + // issuer switch created the transaction resource for processing the + // transaction. + // - `State` - State of the transaction. This will be one of `FAILED` or + // `SUCCEEDED`. + // - `RRN` - Retrieval reference number associated with the transaction. + // - `PayerVPA` - Virtual Payment Address (VPA) of the payer. + // - `PayerMobileNumber` - Mobile number of the payer. + // - `PayerIFSCCode` - IFSC code of the payer's bank account. + // - `PayerAccountNumber` - Payer's bank account number. + // - `PayerAccountType` - Payer's bank account type. + // - `PayeeVPA` - Virtual Payment Address (VPA) of the payee. + // - `PayeeMobileNumber` - Payee's mobile number. + // - `PayeeIFSCCode` - IFSC code of the payee's bank account. + // - `PayeeAccountNumber` - Payee's bank account number. + // - `PayeeAccountType` - Payee's bank account type. + // - `PayeeMerchantID` - Payee's merchant ID, only if the payee is a merchant. + // - `PayeeMerchantName` - Payee's merchant name, only if the payee is a + // merchant. + // - `PayeeMCC` - Payee's Merchant Category Code (MCC), only if the payee is a + // merchant. + // - `Currency` - Currency of the amount involved in the transaction. + // - `Amount` - Amount involved in the transaction. + // - `BankAdapterRequestIDs` - List of Request IDs (colon separated) used when + // invoking the Bank Adapter APIs for fulfilling a transaction request. + // - `ErrorCode` - Error code of the failed transaction. + // - `ErrorMessage` - Error description for the failed transaction. + // - `UPIErrorCode` - Error code as per the UPI specification. The issuer + // switch maps the ErrorCode to an appropriate error code that complies with + // the UPI specification. + rpc ExportFinancialTransactions(ExportFinancialTransactionsRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/financialTransactions:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ExportFinancialTransactionsResponse" + metadata_type: "ExportFinancialTransactionsMetadata" + }; + } + + // Export metadata transactions received within the specified time range as a + // file into a configured target location. The returned `Operation` type has + // the following method-specific fields: + // + // - `metadata`: [ExportMetadataTransactionsMetadata][google.cloud.paymentgateway.issuerswitch.v1.ExportMetadataTransactionsMetadata] + // - `response`: [ExportMetadataTransactionsResponse][google.cloud.paymentgateway.issuerswitch.v1.ExportMetadataTransactionsResponse] + // + // The exported file will be in the standard CSV format where each row in the + // file represents a transaction. The file has the following fields in order: + // + // - `TransactionID` - UPI transaction ID. + // - `APIType` - The transaction's API type. The value will be of the + // [ApiType][google.cloud.paymentgateway.issuerswitch.v1.ApiType] enum. + // - `TransactionType` - Type of the transaction. The value will be of the + // [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType] enum. + // - `RequestReceivedTimestamp` - Timestamp (in UTC) indicating when the + // transaction's API request was received by the issuer switch. + // - `CreationTime` - Timestamp (in UTC) indicating when the + // issuer switch created the transaction resource for processing the + // transaction. + // - `State` - State of transaction. This will be one of `FAILED` or + // `SUCCEEDED`. + // - `OriginVPA` - Virtual Payment Address (VPA) of the originator of the + // transaction. + // - `BankAdapterRequestIDs` - List of Request IDs (colon separated) used when + // invoking the Bank Adapter APIs for fulfilling a transaction request. + // - `ErrorCode` - Error code of the failed transaction. + // - `ErrorMessage` - Error description for the failed transaction. + // - `UPIErrorCode` - Error code as per the UPI specification. The issuer + // switch maps the ErrorCode to an appropriate error code that complies with + // the UPI specification. + rpc ExportMetadataTransactions(ExportMetadataTransactionsRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/metadataTransactions:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ExportMetadataTransactionsResponse" + metadata_type: "ExportMetadataTransactionsMetadata" + }; + } + + // Export mandate transactions received within the specified time range as a + // file into a configured target location. The returned `Operation` type has + // the following method-specific fields: + // + // - `metadata`: [ExportMandateTransactionsMetadata][google.cloud.paymentgateway.issuerswitch.v1.ExportMandateTransactionsMetadata] + // - `response`: [ExportMandateTransactionsResponse][google.cloud.paymentgateway.issuerswitch.v1.ExportMandateTransactionsResponse] + // + // The exported file will be in the standard CSV format where each row in the + // file represents a transaction. The file has the following fields in order: + // + // - `TransactionID` - UPI transaction ID. + // - `UniqueMandateNumber` - UPI Unique Mandate Number. + // - `TransactionType` - Type of the transaction. This will be one of + // `TRANSACTION_TYPE_CREATE`, `TRANSACTION_TYPE_REVOKE` or + // `TRANSACTION_TYPE_UPDATE`. + // - `RequestReceivedTimestamp` - Timestamp (in UTC) indicating when the + // mandate API request was received by the issuer switch. + // - `CreationTime` - Timestamp (in UTC) indicating when the + // issuer switch created the transaction resource for processing the + // transaction. + // - `State` - State of the transaction. This will be one of + // `FAILED` or `SUCCEEDED`. + // - `PayerVPA` - Virtual Payment Address (VPA) of the payer. + // - `PayerMobileNumber` - Mobile number of the payer. + // - `PayeeVPA` - Virtual Payment Address (VPA) of the payee. + // - `PayeeMobileNumber` - Mobile number of the payee. + // - `PayeeMerchantID` - Payee's merchant ID. + // - `Amount` - Amount specified in the mandate. + // - `RecurrencePattern` - Reccurence pattern of the mandate. The value will + // be of the [MandateTransaction.RecurrencePattern][] enum. + // - `RecurrenceRuleType` - Reccurrence rule type of the mandate. The value + // will be of the [MandateTransaction.RecurrenceRuleType][google.cloud.paymentgateway.issuerswitch.v1.MandateTransaction.RecurrenceRuleType] enum. + // - `RecurrenceRuleValue` - Recurrence rule value of the mandate. + // - `Revokeable` - Boolean value specifying if the mandate is revokable. + // - `StartDate` - The start date of the mandate in `YYYY-MM-DD` format. + // - `EndDate` - The end date of the mandate in `YYYY-MM-DD` format. + // - `AmountRuleType` - The amount rule of the mandate. The value will + // be of the [MandateTransaction.AmountRuleType][google.cloud.paymentgateway.issuerswitch.v1.MandateTransaction.AmountRuleType] enum. + // - `ApprovalReference` - The block funds reference generated by the bank, + // if funds have been blocked for the mandate. This column have a value only + // when the RecurrencePattern is ONETIME. + // - `BlockFunds` - Boolean value specifying if the mandate transaction + // requested to block funds. + // - `LastUpdateTime` - Timestamp (in UTC) indicating when was the last + // modification made to the mandate. + // - `BankAdapterRequestIDs` - List of Request IDs (colon separated) used when + // invoking the Bank Adapter APIs for fulfilling a transaction request. + // - `ErrorCode` - Error code of the failed transaction. + // - `ErrorMessage` - Error description for the failed transaction. + // - `UPIErrorCode` - Error code as per the UPI specification. The issuer + // switch maps the ErrorCode to an appropriate error code that complies with + // the UPI specification. + rpc ExportMandateTransactions(ExportMandateTransactionsRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/mandateTransactions:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ExportMandateTransactionsResponse" + metadata_type: "ExportMandateTransactionsMetadata" + }; + } + + // Export complaint transactions received within the specified time range as a + // file into a configured target location. The returned `Operation` type has + // the following method-specific fields: + // + // - `metadata`: [ExportComplaintTransactionsMetadata][google.cloud.paymentgateway.issuerswitch.v1.ExportComplaintTransactionsMetadata] + // - `response`: [ExportComplaintTransactionsResponse][google.cloud.paymentgateway.issuerswitch.v1.ExportComplaintTransactionsResponse] + // + // The exported file will be in the standard CSV format where each row in the + // file represents a transaction. The file has the following fields in order: + // + // - `TransactionID` - UPI transaction ID. + // - `TransactionType` - Type of the transaction. This will be one of + // `TRANSACTION_TYPE_CHECK_STATUS`, `TRANSACTION_TYPE_COMPLAINT`, + // `TRANSACTION_TYPE_REVERSAL`, `TRANSACTION_TYPE_DISPUTE`, + // `TRANSACTION_TYPE_REFUND` or `TRANSACTION_TYPE_STATUS_UPDATE`. + // - `CreationTime` - Timestamp (in UTC) indicating when the issuer switch + // created the transaction resource for processing the transaction. + // - `State` - State of the transaction. This will be one of + // `FAILED` or `SUCCEEDED`. + // - `OriginalRRN` - RRN of the original payment transaction. + // - `BankType` - The subtype of the transaction based on the bank involved. + // - `OriginalTransactionID` - Transaction ID of the original unresolved + // transaction. + // - `RaiseComplaintAdjFlag` - Indicates the type of action to raise the + // complaint. + // - `RaiseComplaintAdjCode` - Indicates the reason of action to raise the + // complaint. + // - `ResolveComplaintAdjFlag` - Indicates the type of action to resolve the + // complaint. + // - `ResolveComplaintAdjCode` - Indicates the reason of action to resolve the + // complaint. + // - `RaiseDisputeAdjFlag` - Indicates the type of action to raise the + // dispute. + // - `RaiseDisputeAdjCode` - Indicates the reason of action to raise the + // dispute. + // - `ResolveDisputeAdjFlag` - Indicates the type of action to resolve the + // dispute. + // - `ResolveDisputeAdjCode` - Indicates the reason of action to resolve the + // dispute. + // - `Amount` - Amount to be resolved. + // - `CurrentCycle` - Boolean value specifying if the complaint / dispute + // belongs to current settlement cycle or not. + // - `CRN` - Defines the Complaint Reference number. + // - `AdjTime` - Indicates the time when the resolution was done. + // - `RespAdjFlag` - Indicates the response category type. + // - `RespAdjCode` - Indicates the response reason used. + // - `AdjRemarks` - Indicates the additional remarks for the complaint / + // dispute. + // - `BankAdapterRequestIDs` - List of Request IDs (colon separated) used when + // invoking the Bank Adapter APIs for fulfilling a transaction request. + // - `ErrorCode` - Error code of the failed transaction. + // - `ErrorMessage` - Error description for the failed transaction. + // - `UPIErrorCode` - Error code as per the UPI specification. The issuer + // switch service maps the ErrorCode to an appropriate error code that + // complies with the UPI specification. + rpc ExportComplaintTransactions(ExportComplaintTransactionsRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/complaintTransactions:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ExportComplaintTransactionsResponse" + metadata_type: "ExportComplaintTransactionsMetadata" + }; + } +} + +// Information about a transaction processed by the issuer switch. +// The fields in this type are common across both financial and metadata +// transactions. +message TransactionInfo { + // Specifies the current state of the transaction. + enum State { + // Unspecicifed state. + STATE_UNSPECIFIED = 0; + + // The transaction has successfully completed. + SUCCEEDED = 1; + + // The transaction has failed. + FAILED = 2; + } + + // The sub-type of a transaction. This value is used only for certain API type + // and transaction type combinations. + enum TransactionSubType { + // Unspecified transaction sub-type. + TRANSACTION_SUB_TYPE_UNSPECIFIED = 0; + + // Collect sub type. This is used in a `SETTLE_PAYMENT` API type + // transaction, with transaction type as either `CREDIT` or `DEBIT` when the + // payment was initiated by a collect request. + COLLECT = 1; + + // Debit sub type. This is used in a `SETTLE_PAYMENT` API type transaction, + // with transaction type as `REVERSAL` when the original payment was a + // debit request. + DEBIT = 2; + + // Pay sub type. This is used in a `SETTLE_PAYMENT` API type transaction, + // with transaction type as either `CREDIT` or `DEBIT` when the payment was + // initiated by a pay request. + PAY = 3; + + // Beneficiary subtype. This is used in a `COMPLAINT` API type transaction, + // when the complaint / dispute request is initiated / received by the + // beneficiary bank. + BENEFICIARY = 4; + + // Remitter subtype. This is used in a `COMPLAINT` API type transaction, + // when the complaint / dispute request is initiated / received by the + // remitter bank. + REMITTER = 5; + } + + // Output only. An identifier that is mandatorily present in every transaction processed + // via UPI. This maps to UPI's transaction ID. + string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The API type of the transaction. + ApiType api_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The transaction type. + TransactionType transaction_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The transaction sub-type. + TransactionSubType transaction_sub_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The transaction's state. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Error code of the failed transaction. + string error_code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Error description for the failed transaction. + string error_message = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the transaction resource was created by the + // issuer switch. + google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of Request IDs (colon separated) used when + // invoking the Bank Adapter APIs for fulfilling a transaction request. + string bank_adapter_request_ids = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Error code as per the UPI specification. The issuer switch maps the + // ErrorCode to an appropriate error code that complies with the UPI + // specification. + string upi_error_code = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A metadata API transaction processed by the issuer switch. This +// includes UPI APIs such as List Accounts, Balance Enquiry, etc. +message MetadataTransaction { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/MetadataTransaction" + pattern: "projects/{project}/metadataTransactions/{transaction}" + }; + + // The name of the metadata transaction. This uniquely identifies the + // transaction. Format of name is + // projects/{project_id}/metadataTransaction/{metadata_transaction_id}. + string name = 1; + + // Information about the transaction. + TransactionInfo info = 2; + + // Output only. Virtual Payment Address (VPA) which originated the request. + string origin_vpa = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A financial API transaction processed by the issuer switch. In UPI, this maps +// to the Pay API. +message FinancialTransaction { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/FinancialTransaction" + pattern: "projects/{project}/financialTransactions/{transaction}" + }; + + // The name of the financial transaction. This uniquely identifies the + // transaction. Format of name is + // projects/{project_id}/financialTransactions/{financial_transaction_id}. + string name = 1; + + // Information about the transaction. + TransactionInfo info = 2; + + // Output only. A 12 digit numeric code associated with the request. It could contain + // leading 0s. In UPI, this is also known as as the customer reference or the + // UPI transaction ID. + string retrieval_reference_number = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The payer in the transaction. + SettlementParticipant payer = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The payee in the transaction. + SettlementParticipant payee = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The amount for payment settlement in the transaction. + google.type.Money amount = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A mandate processed by the issuer switch. In UPI, this maps to the Mandate +// API. +message MandateTransaction { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/MandateTransaction" + pattern: "projects/{project}/mandateTransactions/{transaction}" + }; + + // RecurrencePatternType specifies the recurrence pattern type of the mandate. + enum RecurrencePatternType { + // Unspecified recurrence pattern. + RECURRENCE_PATTERN_TYPE_UNSPECIFIED = 0; + + // As presented recurrence pattern. + AS_PRESENTED = 1; + + // Bi monthly recurrence pattern. + BIMONTHLY = 2; + + // Daily recurrence pattern. + DAILY = 3; + + // Bi weekly recurrence pattern. + FORTNIGHTLY = 4; + + // Half yearly recurrence pattern. + HALF_YEARLY = 5; + + // Monthly recurrence pattern. + MONTHLY = 6; + + // One time recurrence pattern. + ONE_TIME = 7; + + // Quarterly recurrence pattern. + QUARTERLY = 8; + + // Weekly recurrence pattern. + WEEKLY = 9; + + // Yearly recurrence pattern. + YEARLY = 10; + } + + // RecurrenceRuleType specifies the recurrence rule type of mandate. + enum RecurrenceRuleType { + // Unspecified recurrence rule type. + RECURRENCE_RULE_TYPE_UNSPECIFIED = 0; + + // After recurrence rule type. + AFTER = 1; + + // Before recurrence rule type. + BEFORE = 2; + + // On recurrence rule type. + ON = 3; + } + + // AmountRuleType specifies the type of rule associated with the mandate + // amount. + enum AmountRuleType { + // Unspecified amount rule. + AMOUNT_RULE_TYPE_UNSPECIFIED = 0; + + // Exact amount rule. Amount specified is the exact amount for which + // mandate could be granted. + EXACT = 1; + + // Max amount rule. Amount specified is the maximum amount for which + // mandate could be granted. + MAX = 2; + } + + // The name of the mandate transaction. This uniquely identifies the + // transaction. Format of name is + // projects/{project_id}/mandateTransactions/{mandate_transaction_id}. + string name = 1; + + // Information about the transaction. + TransactionInfo transaction_info = 2; + + // Output only. This maps to Unique Mandate Number (UMN) in UPI specification. + string unique_mandate_number = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The virtual payment address (VPA) of the payer. + string payer_vpa = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The virtual payment address (VPA) of the payee. + string payee_vpa = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A unique identifier for merchant. + string payee_merchant_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The mobile number of the payer consisting of total twelve digits where + // first two digits of country code (for eg. 91 for India) and then ten + // digits mobile number. For eg. 911234567890 + string payer_mobile_number = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The mobile number of the payer consisting of total twelve digits where + // first two digits of country code (for eg. 91 for India) and then ten + // digits mobile number. For eg. 911234567890 + string payee_mobile_number = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of recurrence pattern of the mandate. + RecurrencePatternType recurrence_pattern = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of recurrence rule of the mandate. + RecurrenceRuleType recurrence_rule_type = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recurrence rule value of the mandate. This is a value from 1 to 31. + int32 recurrence_rule_value = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The start date of the mandate. + google.type.Date start_date = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The end date of the mandate. + google.type.Date end_date = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If true, this specifies mandate can be revoked. + bool revokable = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The amount of the mandate. + double amount = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The amount rule type of the mandate. + AmountRuleType amount_rule = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Block funds reference generated by the bank, this will be available + // only when Recurrence is ONETIME. + string approval_reference = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If true, this specifies the mandate transaction requested funds to be + // blocked. + bool block_funds = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last time at which the mandate resource was modified by the issuer + // switch. + google.protobuf.Timestamp last_update_time = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A complaint API transaction processed by the issuer switch. In +// UPI, this maps to the Complaint API. +message ComplaintTransaction { + option (google.api.resource) = { + type: "issuerswitch.googleapis.com/ComplaintTransaction" + pattern: "projects/{project}/complaintTransactions/{transaction}" + }; + + // The name of the complaint transaction. This uniquely identifies the + // transaction. Format of name is + // projects/{project_id}/complaintTransactions/{complaint_transaction_id}. + string name = 1; + + // Information about the transaction. + TransactionInfo info = 2; + + // Information about the complaint transaction. It can be one of Complaint or + // Dispute. + oneof case { + // Output only. Information about the complaint transaction when it is of type complaint. + Complaint complaint = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about the complaint transaction when it is of type dispute. + Dispute dispute = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// Request for the `ListMetadataTransactions` method. Callers can request for +// transactions to be filtered by the given filter criteria and specified +// pagination parameters. +message ListMetadataTransactionsRequest { + // Required. The parent resource. The format is `projects/{project}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/MetadataTransaction" + } + ]; + + // The maximum number of transactions to return. The service may return fewer + // than this value. If unspecified or if the specified value is less than 1, + // at most 50 transactions will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. While paginating, you can specify a new + // page size parameter for each page of transactions to be listed. + int32 page_size = 2; + + // A page token, received from a previous `ListMetadataTransactions` call. + // Specify this parameter to retrieve the next page of transactions. + // + // When paginating, you must specify only the `page_token` parameter. The + // filter that was specified in the initial call to the + // `ListMetadataTransactions` method that returned the page token will be + // reused for all further calls where the page token parameter is specified. + string page_token = 3; + + // An expression that filters the list of metadata transactions. + // + // 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 + // `=`. Filters are not case sensitive. + // + // The following fields in the `MetadataTransaction` are eligible for + // filtering: + // + // * `apiType` - The API type of the metadata transaction. Must be one of + // [ApiType][google.cloud.paymentgateway.issuerswitch.v1.ApiType] values. Allowed comparison operators: `=`. + // * `transactionType` - The transaction type of the metadata transaction. + // Must be one of [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType] values. Allowed comparison + // operators: `=`. + // * `transactionID` - The UPI transaction ID of the metadata transaction. + // Allowed comparison operators: `=`. + // * `originVPA` - The VPA of the orignitator of a metadata transaction. + // Allowed comparison operators: `=`. + // * `createTime` - The time at which the transaction was created + // (received) by the issuer switch. The value should be in + // the format `YYYY-MM-DDTHH:MM:SSZ`. Allowed comparison operators: `>`, + // `<`. + // * `state` - The state of the transaction. Must be one of + // [TransactionInfo.State][google.cloud.paymentgateway.issuerswitch.v1.TransactionInfo.State] values. Allowed comparison operators: `=`. + // * `errorCode` - Use this filter to list financial transactions which + // have failed a particular error code. Allowed comparison operators: + // `=`. + // * `bankAdapterRequestID` - Request ID used when invoking the Bank + // Adapter API for fulfilling a transaction request. Allowed comparison + // operators: `=`. + // + // You can combine multiple expressions by enclosing each expression in + // parentheses. Expressions are combined with AND logic. No other logical + // operators are supported. + // + // Here are a few examples: + // + // * `apiType = LIST_ACCOUNTS` - - The API type is _LIST_ACCOUNTS_. + // * `state = SUCCEEDED` - The transaction's state is _SUCCEEDED_. + // * `(apiType = LIST_ACCOUNTS) AND (create_time < + // \"2021-08-15T14:50:00Z\")` - The API type is _LIST_ACCOUNTS_ and + // the transaction was received before _2021-08-15 14:50:00 UTC_. + string filter = 4; +} + +// Request for the `ListFinancialTransactions` method. Callers can request for +// transactions to be filtered by the given filter criteria and specified +// pagination parameters. +message ListFinancialTransactionsRequest { + // Required. The parent resource. The format is `projects/{project}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/FinancialTransaction" + } + ]; + + // The maximum number of transactions to return. The service may return fewer + // than this value. If unspecified or if the specified value is less than 1, + // at most 50 transactions will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. While paginating, you can specify a new + // page size parameter for each page of transactions to be listed. + int32 page_size = 2; + + // A page token, received from a previous `ListFinancialTransactions` call. + // Specify this parameter to retrieve the next page of transactions. + // + // When paginating, you must specify only the `page_token` parameter. The + // filter that was specified in the initial call to the + // `ListFinancialTransactions` method that returned the page token will be + // reused for all further calls where the page token parameter is specified. + string page_token = 3; + + // An expression that filters the list of financial transactions. + // + // 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 `=`. + // Filters are not case sensitive. + // + // The following fields in the `FinancialTransaction` are eligible for + // filtering: + // + // * `transactionType` - The transaction type of the financial + // transaction. Must be one of [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType] values. For financial + // transactions, only valid transaction types are `TRANSACTION_TYPE_CREDIT`, + // `TRANSACTION_TYPE_DEBIT` and `TRANSACTION_TYPE_REVERSAL`. Allowed + // comparison operators: `=`. + // * `transactionID` - The UPI transaction ID of the financial + // transaction. Allowed comparison operators: `=`. + // * `RRN` - The retrieval reference number of the transaction. Allowed + // comparison operators: `=`. + // * `payerVPA` - The VPA of the payer in a financial transaction. Allowed + // comparison operators: `=`. + // * `payeeVPA` - The VPA of the payee in a financial transaction. Allowed + // comparison operators: `=`. + // * `payerMobileNumber` - The mobile number of the payer in a financial + // transaction. Allowed comparison operators: `=`. + // * `payeeMobileNumber` - The mobile number of the payee in a financial + // transaction. Allowed comparison operators: `=`. + // * `payeeMerchantId` - The merchant id of the payee in a financial + // transaction. Allowed comparison operators: `=`. + // * `createTime` - The time at which the transaction was created + // (received) by the issuer switch. The value should be in + // the format `YYYY-MM-DDTHH:MM:SSZ`. Allowed comparison operators: `>`, + // `<`. + // * `state` - The state of the transaction. Must be one of + // [TransactionInfo.State][google.cloud.paymentgateway.issuerswitch.v1.TransactionInfo.State] values. Allowed comparison operators: `=`. + // * `errorCode` - Use this filter to list financial transactions which + // have failed a particular error code. Allowed comparison operators: `=`. + // * `bankAdapterRequestID` - Request ID used when invoking the Bank + // Adapter API for fulfilling a transaction request. Allowed comparison + // operators: `=`. + // + // You can combine multiple expressions by enclosing each expression in + // parentheses. Expressions are combined with AND logic. No other logical + // operators are supported. + // + // Here are a few examples: + // + // * `transactionType = CREDIT` - The transaction type is _CREDIT_. + // * `state = SUCCEEDED` - The transaction's state is _SUCCEEDED_. + // * `payerVpa = example@okbank` - The VPA of the payer is the string + // _example@okbank_. + // * `(transactionType = DEBIT) AND (createTime < "2021-08-15T14:50:00Z")` + // - The transaction type is _DEBIT_ and the transaction was received + // before _2021-08-15 14:50:00 UTC_. + // * `createTime > "2021-08-15T14:50:00Z" AND createTime < + // "2021-08-16T14:50:00Z"` - The transaction was received between + // _2021-08-15 14:50:00 UTC_ and _2021-08-16 14:50:00 UTC_. + string filter = 4; +} + +// Request for the `ListMandateTransactions` method. Callers can request for +// transactions to be filtered by the given filter criteria and specified +// pagination parameters. +message ListMandateTransactionsRequest { + // Required. The parent resource. The format is `projects/{project}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/MandateTransaction" + } + ]; + + // The maximum number of transactions to return. The service may return fewer + // than this value. If unspecified or if the specified value is less than 1, + // at most 50 transactions will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. While paginating, you can specify a new + // page size parameter for each page of transactions to be listed. + int32 page_size = 2; + + // A page token, received from a previous `ListMandateTransactions` call. + // Specify this parameter to retrieve the next page of transactions. + // + // When paginating, you must specify only the `page_token` parameter. The + // filter that was specified in the initial call to the + // `ListMandateTransactions` method that returned the page token will be + // reused for all further calls where the page token parameter is specified. + string page_token = 3; + + // An expression that filters the list of mandate transactions. + // + // 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 `=`. + // Filters are not case sensitive. + // + // The following fields in the `Mandate` are eligible for + // filtering: + // + // * `uniqueMandateNumber` - UPI Unique Mandate Number (UMN). Allowed + // comparison operators: `=`. + // * `transactionID` - The transaction ID of the mandate transaction. + // Allowed comparison operators: `=`. + // * `transactionType` - The transaction type of the mandate + // transaction. Must be one of [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType] values. For mandate + // transactions, only valid transaction types are + // `TRANSACTION_TYPE_CREATE`, `TRANSACTION_TYPE_REVOKE` and + // `TRANSACTION_TYPE_UPDATE`. Allowed comparison operators: `=`. + // * `payerVPA` - The VPA of the payer in a mandate transaction. Allowed + // comparison operators: `=`. + // * `payeeVPA` - The VPA of the payee in a mandate transaction. Allowed + // comparison operators: `=`. + // * `payeeMerchantID` - The merchant ID of the payee in a mandate + // transaction. Allowed comparison operators: `=`. + // * `payerMobileNumber` - The mobile number of the payer in a mandate + // transaction. Allowed comparison operators: `=`. + // * `payeeMobileNumber` - The mobile number of the payee in a mandate + // transaction. Allowed comparison operators: `=`. + // * `createTime` - The time at which the transaction was created + // (received) by the issuer switch. The value should be in + // the format `YYYY-MM-DDTHH:MM:SSZ`. Allowed comparison + // operators: `>`, `<`. + // * `state` - The state of the transaction. Must be one of + // [TransactionInfo.State][google.cloud.paymentgateway.issuerswitch.v1.TransactionInfo.State] values. Allowed comparison operators: `=`. + // * `recurrencePattern` - The recurrence pattern of the mandate. Must be + // one of [MandateTransaction.RecurrencePatternType][google.cloud.paymentgateway.issuerswitch.v1.MandateTransaction.RecurrencePatternType] values. Allowed + // comparison operators: `=`. + // * `startDate` - The start date of the mandate. The value should be in + // the format `YYYY-MM-DD`. Allowed comparison operators: `<` and `>`. + // * `endDate` - The end date of the mandate. The value should be in + // the format `YYYY-MM-DD`. Allowed comparison operators: `<` and `>`. + // * `errorCode` - Use this filter to list mandate transactions which + // have failed a particular error code. Allowed comparison + // operators: `=`. + // * `bankAdapterRequestID` - Request ID used when invoking the Bank + // Adapter API for fulfilling a transaction request. Allowed comparison + // operators: `=`. + // You can combine multiple expressions by enclosing each expression in + // parentheses. Expressions are combined with AND logic. No other logical + // operators are supported. + // + // Here are a few examples: + // * `recurrencePattern = MONTHLY` - The recurrence pattern type is + // monthly. + // * `state = SUCCEEDED` - The transaction's state is _SUCCEEDED_. + // * `payerVPA = example@okbank` - The VPA of the payer is the string + // _example@okbank_. + // * `(payerVPA = example@okbank) AND (createTime < + // "2021-08-15T14:50:00Z")` + // - The payer VPA example@okbank and the transaction was received + // before _2021-08-15 14:50:00 UTC_. + // * `createTime > "2021-08-15T14:50:00Z" AND createTime < + // "2021-08-16T14:50:00Z"` - The transaction was received between + // _2021-08-15 14:50:00 UTC_ and _2021-08-16 14:50:00 UTC_. + // * `startDate > "2021-08-15" AND startDate < "2021-08-17"` - The start + // date for mandate is between _2021-08-15_ and _2021-08-17_. + string filter = 4; +} + +// Request for the `ListComplaintTransactions` method. Callers can request for +// transactions to be filtered by the given filter criteria and specified +// pagination parameters. +message ListComplaintTransactionsRequest { + // Required. The parent resource. The format is `projects/{project}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "issuerswitch.googleapis.com/ComplaintTransaction" + } + ]; + + // The maximum number of transactions to return. The service may return fewer + // than this value. If unspecified or if the specified value is less than 1, + // at most 50 transactions will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. While paginating, you can specify a new + // page size parameter for each page of transactions to be listed. + int32 page_size = 2; + + // A page token, received from a previous `ListComplaintTransactions` call. + // Specify this parameter to retrieve the next page of transactions. + // + // When paginating, you must specify only the `page_token` parameter. The + // filter that was specified in the initial call to the + // `ListComplaintTransactions` method that returned the page token will be + // reused for all further calls where the page token parameter is specified. + string page_token = 3; + + // An expression that filters the list of complaint transactions. + // + // 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 `=`. + // Filters are not case sensitive. + // + // The following fields in the `Complaint` are eligible for + // filtering: + // + // * `transactionID` - The transaction ID of the complaint transaction. + // Allowed comparison operators: `=`. + // * `transactionType` - The transaction type of the complaint + // transaction. Must be one of [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType] values. For complaint + // transactions, only valid transaction types are + // `TRANSACTION_TYPE_CHECK_STATUS`, `TRANSACTION_TYPE_COMPLAINT`, + // `TRANSACTION_TYPE_REVERSAL`, `TRANSACTION_TYPE_DISPUTE`, + // `TRANSACTION_TYPE_REFUND` or `TRANSACTION_TYPE_STATUS_UPDATE`. Allowed + // comparison operators: `=`. + // * `originalRRN` - The retrieval reference number of the original + // transaction for which complaint / dispute was raised / resolved. Allowed + // comparison operators: `=`. + // * `createTime` - The time at which the transaction was created + // (received) by the issuer switch. The value should be in + // the format `YYYY-MM-DDTHH:MM:SSZ`. Allowed comparison + // operators: `>`, `<`. + // * `state` - The state of the transaction. Must be one of + // [TransactionInfo.State][google.cloud.paymentgateway.issuerswitch.v1.TransactionInfo.State] values. Allowed comparison operators: `=`. + // * `errorCode` - Use this filter to list complaint transactions which + // have failed a particular error code. Allowed comparison + // operators: `=`. + // You can combine multiple expressions by enclosing each expression in + // parentheses. Expressions are combined with AND logic. No other logical + // operators are supported. + // + // Here are a few examples: + // + // * `state = SUCCEEDED` - The transaction's state is _SUCCEEDED_. + // * (createTime < "2021-08-15T14:50:00Z")` + // - The transaction was received before _2021-08-15 14:50:00 UTC_. + // * `createTime > "2021-08-15T14:50:00Z" AND createTime < + // "2021-08-16T14:50:00Z"` - The transaction was received between + // _2021-08-15 14:50:00 UTC_ and _2021-08-16 14:50:00 UTC_. + string filter = 4; +} + +// Response for the `ListMetadataTransactions` method. +message ListMetadataTransactionsResponse { + // List of non financial metadata transactions satisfying the filtered + // request. + repeated MetadataTransaction metadata_transactions = 1; + + // Pass this token in the ListMetadataTransactionsRequest to continue to list + // results. If all results have been returned, this field is an empty string + // or not present in the response. + string next_page_token = 2; +} + +// Response for the `ListFinancialTransactions` method. +message ListFinancialTransactionsResponse { + // List of financial transactions satisfying the filtered request. + repeated FinancialTransaction financial_transactions = 1; + + // Pass this token in the ListFinancialTransactionsRequest to continue to list + // results. If all results have been returned, this field is an empty string + // or not present in the response. + string next_page_token = 2; +} + +// Response for the `ListMandateTransactionsResponse` method. +message ListMandateTransactionsResponse { + // List of mandate transactions satisfying the filtered request. + repeated MandateTransaction mandate_transactions = 1; + + // Pass this token in the ListMandateTransactionsRequest to continue to list + // results. If all results have been returned, this field is an empty string + // or not present in the response. + string next_page_token = 2; +} + +// Response for the `ListComplaintTransactionsResponse` method. +message ListComplaintTransactionsResponse { + // List of complaint transactions satisfying the filtered request. + repeated ComplaintTransaction complaint_transactions = 1; + + // Pass this token in the ListComplaintTransactionsRequest to continue to list + // results. If all results have been returned, this field is an empty string + // or not present in the response. + string next_page_token = 2; +} + +// Request for the `ExportFinancialTransactions` method. +message ExportFinancialTransactionsRequest { + // Required. The parent resource for the transactions. The format is + // `projects/{project}`. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Transaction type for the financial transaction API. The possible values for + // transaction type are + // + // * TRANSACTION_TYPE_CREDIT + // * TRANSACTION_TYPE_DEBIT + // * TRANSACTION_TYPE_REVERSAL + // + // If no transaction type is specified, records of all the above transaction + // types will be exported. + TransactionType transaction_type = 2; + + // The start time for the query. + google.protobuf.Timestamp start_time = 3; + + // The end time for the query. + google.protobuf.Timestamp end_time = 4; +} + +// Request for the `ExportMetadataTransactions` method. +message ExportMetadataTransactionsRequest { + // Required. The parent resource for the transactions. The format is + // `projects/{project}`. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // API type of the metadata transaction API. The possible values for API type + // are + // + // * BALANCE + // * CHECK_STATUS + // * HEART_BEAT + // * INITIATE_REGISTRATION + // * LIST_ACCOUNTS + // * UPDATE_CREDENTIALS + // * VALIDATE_REGISTRATION + // + // If no API type is specified, records of all the above API types will be + // exported. + ApiType api_type = 2; + + // The start time for the query. + google.protobuf.Timestamp start_time = 3; + + // The end time for the query. + google.protobuf.Timestamp end_time = 4; +} + +// Request for the `ExportMandateTransactions` method. +message ExportMandateTransactionsRequest { + // Required. The parent resource for the transactions. The format is + // `projects/{project}`. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Transaction type for the mandate transaction API. The possible values for + // transaction type are + // + // * TRANSACTION_TYPE_CREATE + // * TRANSACTION_TYPE_REVOKE + // * TRANSACTION_TYPE_UPDATE + // + // If no transaction type is specified, records of all the above transaction + // types will be exported. + TransactionType transaction_type = 2; + + // The start time for the query. + google.protobuf.Timestamp start_time = 3; + + // The end time for the query. + google.protobuf.Timestamp end_time = 4; +} + +// Request for the `ExportComplaintTransactions` method. +message ExportComplaintTransactionsRequest { + // Required. The parent resource for the transactions. The format is + // `projects/{project}`. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Transaction type for the complaint transaction API. The possible values for + // transaction type are + // + // * TRANSACTION_TYPE_CHECK_STATUS + // * TRANSACTION_TYPE_COMPLAINT + // * TRANSACTION_TYPE_DISPUTE + // * TRANSACTION_TYPE_REFUND + // * TRANSACTION_TYPE_REVERSAL + // * TRANSACTION_TYPE_STATUS_UPDATE + // + // If no transaction type is specified, records of all the above transaction + // types will be exported. + TransactionType transaction_type = 2; + + // The start time for the query. + google.protobuf.Timestamp start_time = 3; + + // The end time for the query. + google.protobuf.Timestamp end_time = 4; +} + +// Response for the `ExportFinancialTransactions` method. +message ExportFinancialTransactionsResponse { + // URI of the exported file. + string target_uri = 1; +} + +// Response for the `ExportMetadataTransactions` method. +message ExportMetadataTransactionsResponse { + // URI of the exported file. + string target_uri = 1; +} + +// Response for the `ExportMandateTransactions` method. +message ExportMandateTransactionsResponse { + // URI of the exported file. + string target_uri = 1; +} + +// Response for the `ExportComplaintTransactions` method. +message ExportComplaintTransactionsResponse { + // URI of the exported file. + string target_uri = 1; +} + +// Metadata for ExportFinancialTransactions. +message ExportFinancialTransactionsMetadata { + +} + +// Metadata for ExportMandateTransactions. +message ExportMandateTransactionsMetadata { + +} + +// Metadata for ExportMetadataTransactions. +message ExportMetadataTransactionsMetadata { + +} + +// Metadata for ExportComplaintTransactions. +message ExportComplaintTransactionsMetadata { + +} diff --git a/google/cloud/phishingprotection/v1beta1/BUILD.bazel b/google/cloud/phishingprotection/v1beta1/BUILD.bazel index a8277b97c..c3b5f9e6e 100644 --- a/google/cloud/phishingprotection/v1beta1/BUILD.bazel +++ b/google/cloud/phishingprotection/v1beta1/BUILD.bazel @@ -61,6 +61,7 @@ java_gapic_library( test_deps = [ ":phishingprotection_java_grpc", ], + transport = "grpc+rest", deps = [ ":phishingprotection_java_proto", ], @@ -69,6 +70,7 @@ java_gapic_library( java_gapic_test( name = "phishingprotection_java_gapic_test_suite", test_classes = [ + "com.google.cloud.phishingprotection.v1beta1.PhishingProtectionServiceV1Beta1ClientHttpJsonTest", "com.google.cloud.phishingprotection.v1beta1.PhishingProtectionServiceV1Beta1ClientTest", ], runtime_deps = [":phishingprotection_java_gapic_test"], @@ -77,6 +79,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-phishingprotection-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":phishingprotection_java_gapic", ":phishingprotection_java_grpc", @@ -112,6 +116,7 @@ go_gapic_library( grpc_service_config = "phishingprotection_grpc_service_config.json", importpath = "cloud.google.com/go/phishingprotection/apiv1beta1;phishingprotection", service_yaml = "phishingprotection_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":phishingprotection_go_proto", ], @@ -141,12 +146,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "phishingprotection_py_gapic", srcs = [":phishingprotection_proto"], grpc_service_config = "phishingprotection_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "phishingprotection_py_gapic_test", + srcs = [ + "phishingprotection_py_gapic_pytest.py", + "phishingprotection_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":phishingprotection_py_gapic"], ) py_gapic_assembly_pkg( @@ -305,6 +322,7 @@ csharp_gapic_library( srcs = [":phishingprotection_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "phishingprotection_grpc_service_config.json", + service_yaml = "phishingprotection_v1beta1.yaml", deps = [ ":phishingprotection_csharp_grpc", ":phishingprotection_csharp_proto", diff --git a/google/cloud/policytroubleshooter/v1/BUILD.bazel b/google/cloud/policytroubleshooter/v1/BUILD.bazel index 3e2a5dfad..a096be8a3 100644 --- a/google/cloud/policytroubleshooter/v1/BUILD.bazel +++ b/google/cloud/policytroubleshooter/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( ":policytroubleshooter_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":policytroubleshooter_java_proto", "//google/iam/v1:iam_java_proto", @@ -81,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "policytroubleshooter_java_gapic_test_suite", test_classes = [ + "com.google.cloud.policytroubleshooter.v1.IamCheckerClientHttpJsonTest", "com.google.cloud.policytroubleshooter.v1.IamCheckerClientTest", ], runtime_deps = [":policytroubleshooter_java_gapic_test"], @@ -89,6 +91,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-policytroubleshooter-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":policytroubleshooter_java_gapic", ":policytroubleshooter_java_grpc", @@ -126,6 +130,7 @@ go_gapic_library( grpc_service_config = "checker_grpc_service_config.json", importpath = "cloud.google.com/go/policytroubleshooter/apiv1;policytroubleshooter", service_yaml = "policytroubleshooter_v1.yaml", + transport = "grpc+rest", deps = [ ":policytroubleshooter_go_proto", "//google/iam/v1:iam_go_proto", @@ -156,13 +161,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "policytroubleshooter_py_gapic", srcs = [":policytroubleshooter_proto"], grpc_service_config = "checker_grpc_service_config.json", - opt_args = ["warehouse-package-name=google-cloud-policy-troubleshooter"] + opt_args = ["warehouse-package-name=google-cloud-policy-troubleshooter"], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "policytroubleshooter_py_gapic_test", + srcs = [ + "policytroubleshooter_py_gapic_pytest.py", + "policytroubleshooter_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":policytroubleshooter_py_gapic"], ) # Open Source Packages @@ -321,6 +341,7 @@ csharp_gapic_library( srcs = [":policytroubleshooter_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "checker_grpc_service_config.json", + service_yaml = "policytroubleshooter_v1.yaml", deps = [ ":policytroubleshooter_csharp_grpc", ":policytroubleshooter_csharp_proto", diff --git a/google/cloud/privatecatalog/v1beta1/BUILD.bazel b/google/cloud/privatecatalog/v1beta1/BUILD.bazel index 63646a126..e224d2589 100644 --- a/google/cloud/privatecatalog/v1beta1/BUILD.bazel +++ b/google/cloud/privatecatalog/v1beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":privatecatalog_java_grpc", ], + transport = "grpc+rest", deps = [ ":privatecatalog_java_proto", ], @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "privatecatalog_java_gapic_test_suite", test_classes = [ + "com.google.cloud.privatecatalog.v1beta1.PrivateCatalogClientHttpJsonTest", "com.google.cloud.privatecatalog.v1beta1.PrivateCatalogClientTest", ], runtime_deps = [":privatecatalog_java_gapic_test"], @@ -91,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-privatecatalog-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":privatecatalog_java_gapic", ":privatecatalog_java_grpc", @@ -126,13 +130,14 @@ go_gapic_library( srcs = [":privatecatalog_proto_with_info"], grpc_service_config = "cloudprivatecatalog_grpc_service_config.json", importpath = "cloud.google.com/go/privatecatalog/apiv1beta1;privatecatalog", - service_yaml = "cloudprivatecatalog_v1beta1.yaml", metadata = True, + service_yaml = "cloudprivatecatalog_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":privatecatalog_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_library", "@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:struct_go_proto", ], @@ -150,8 +155,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-privatecatalog-v1beta1-go", deps = [ ":privatecatalog_go_gapic", - ":privatecatalog_go_gapic_srcjar-test.srcjar", ":privatecatalog_go_gapic_srcjar-metadata.srcjar", + ":privatecatalog_go_gapic_srcjar-test.srcjar", ":privatecatalog_go_proto", ], ) @@ -163,6 +168,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -171,8 +177,19 @@ py_gapic_library( grpc_service_config = "cloudprivatecatalog_grpc_service_config.json", opt_args = [ "warehouse-package-name=google-cloud-private-catalog", - "autogen-snippets" - ] + "autogen-snippets", + ], + transport = "grpc+rest", +) + +py_test( + name = "privatecatalog_py_gapic_test", + srcs = [ + "privatecatalog_py_gapic_pytest.py", + "privatecatalog_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":privatecatalog_py_gapic"], ) # Open Source Packages @@ -259,8 +276,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -333,6 +350,7 @@ csharp_gapic_library( srcs = [":privatecatalog_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudprivatecatalog_grpc_service_config.json", + service_yaml = "cloudprivatecatalog_v1beta1.yaml", deps = [ ":privatecatalog_csharp_grpc", ":privatecatalog_csharp_proto", diff --git a/google/cloud/privatecatalog/v1beta1/private_catalog.proto b/google/cloud/privatecatalog/v1beta1/private_catalog.proto index 90975e79d..4b1f6e54e 100644 --- a/google/cloud/privatecatalog/v1beta1/private_catalog.proto +++ b/google/cloud/privatecatalog/v1beta1/private_catalog.proto @@ -21,9 +21,6 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/field_mask.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/cloud/pubsublite/v1/BUILD.bazel b/google/cloud/pubsublite/v1/BUILD.bazel index a072bdfec..f7821df37 100644 --- a/google/cloud/pubsublite/v1/BUILD.bazel +++ b/google/cloud/pubsublite/v1/BUILD.bazel @@ -34,6 +34,7 @@ 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", @@ -80,6 +81,7 @@ java_gapic_library( test_deps = [ ":pubsublite_java_grpc", ], + transport = "grpc", deps = [ ":pubsublite_java_proto", ], @@ -101,6 +103,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-pubsublite-v1-java", + include_samples = True, + transport = "grpc", deps = [ ":pubsublite_java_gapic", ":pubsublite_java_grpc", @@ -128,6 +132,7 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/rpc:status_go_proto", ], ) @@ -170,12 +175,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "pubsublite_py_gapic", srcs = [":pubsublite_proto"], grpc_service_config = "pubsublite_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "pubsublite_py_gapic_test", + srcs = [ + "pubsublite_py_gapic_pytest.py", + "pubsublite_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":pubsublite_py_gapic"], ) # Open Source Packages @@ -219,8 +236,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -238,7 +255,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "pubsublite_ruby_gapic", - srcs = [":pubsublite_proto_with_info",], + srcs = [":pubsublite_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-pubsublite-v1"], grpc_service_config = "pubsublite_grpc_service_config.json", deps = [ @@ -284,6 +301,7 @@ csharp_gapic_library( srcs = [":pubsublite_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "pubsublite_grpc_service_config.json", + service_yaml = "pubsublite_v1.yaml", deps = [ ":pubsublite_csharp_grpc", ":pubsublite_csharp_proto", diff --git a/google/cloud/pubsublite/v1/common.proto b/google/cloud/pubsublite/v1/common.proto index 687f3387a..2a2c62ccb 100644 --- a/google/cloud/pubsublite/v1/common.proto +++ b/google/cloud/pubsublite/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,10 +16,11 @@ syntax = "proto3"; package google.cloud.pubsublite.v1; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; +import "google/rpc/status.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.PubSubLite.V1"; @@ -226,6 +227,79 @@ message Subscription { // The settings for this subscription's message delivery. DeliveryConfig delivery_config = 3; + + // If present, messages are automatically written from the Pub/Sub Lite topic + // associated with this subscription to a destination. + ExportConfig export_config = 4; +} + +// Configuration for a Pub/Sub Lite subscription that writes messages to a +// destination. User subscriber clients must not connect to this subscription. +message ExportConfig { + // An export state. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Messages are being exported. + ACTIVE = 1; + + // Exporting messages is suspended. + PAUSED = 2; + } + + // The export status of a partition. + message PartitionStatus { + // The partition number. + int64 partition = 1; + + // If the export for a partition is healthy and the desired state is + // `ACTIVE`, the status code will be `OK` (zero). If the desired state of + // the export is `PAUSED`, the status code will be `CANCELLED`. + // + // If the export has been suspended due to an error, the status will be + // populated with an error code and details. The service will automatically + // retry after a period of time, and will update the status code to `OK` if + // export subsequently succeeds. + google.rpc.Status status = 2; + } + + // Configuration for exporting to a Pub/Sub topic. + message PubSubConfig { + // The name of the Pub/Sub topic. + // Structured like: projects/{project_number}/topics/{topic_id}. + // The topic may be changed. + string topic = 1; + } + + // The desired state of this export. + State desired_state = 1; + + // Output only. The export statuses of each partition. This field is output only. + repeated PartitionStatus statuses = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The name of an optional Pub/Sub Lite topic to publish messages that can not + // be exported to the destination. For example, the message can not be + // published to the Pub/Sub service because it does not satisfy the + // constraints documented at https://cloud.google.com/pubsub/docs/publisher. + // + // Structured like: + // projects/{project_number}/locations/{location}/topics/{topic_id}. + // Must be within the same project and location as the subscription. The topic + // may be changed or removed. + string dead_letter_topic = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "pubsublite.googleapis.com/Topic" + } + ]; + + // The destination to export to. Required. + oneof destination { + // Messages are automatically written from the Pub/Sub Lite topic associated + // with this subscription to a Pub/Sub topic. + PubSubConfig pubsub_config = 3; + } } // A target publish or event time. Can be used for seeking to or retrieving the diff --git a/google/cloud/pubsublite/v1/publisher.proto b/google/cloud/pubsublite/v1/publisher.proto index bc0e0c063..27737ecc7 100644 --- a/google/cloud/pubsublite/v1/publisher.proto +++ b/google/cloud/pubsublite/v1/publisher.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.pubsublite.v1; import "google/cloud/pubsublite/v1/common.proto"; -import "google/api/annotations.proto"; import "google/api/client.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/pubsublite/v1/pubsublite_v1.yaml b/google/cloud/pubsublite/v1/pubsublite_v1.yaml index 0eb54072c..ed7a9e401 100644 --- a/google/cloud/pubsublite/v1/pubsublite_v1.yaml +++ b/google/cloud/pubsublite/v1/pubsublite_v1.yaml @@ -10,6 +10,7 @@ apis: - name: google.cloud.pubsublite.v1.PublisherService - name: google.cloud.pubsublite.v1.SubscriberService - name: google.cloud.pubsublite.v1.TopicStatsService +- name: google.longrunning.Operations types: - name: google.cloud.pubsublite.v1.OperationMetadata diff --git a/google/cloud/pubsublite/v1/subscriber.proto b/google/cloud/pubsublite/v1/subscriber.proto index 4247bb0cf..c8bb1655c 100644 --- a/google/cloud/pubsublite/v1/subscriber.proto +++ b/google/cloud/pubsublite/v1/subscriber.proto @@ -18,7 +18,6 @@ package google.cloud.pubsublite.v1; import "google/api/field_behavior.proto"; import "google/cloud/pubsublite/v1/common.proto"; -import "google/api/annotations.proto"; import "google/api/client.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/recaptchaenterprise/v1/BUILD.bazel b/google/cloud/recaptchaenterprise/v1/BUILD.bazel index 449ba7e20..c9e46b8ac 100644 --- a/google/cloud/recaptchaenterprise/v1/BUILD.bazel +++ b/google/cloud/recaptchaenterprise/v1/BUILD.bazel @@ -89,6 +89,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-recaptchaenterprise-v1-java", + include_samples = True, deps = [ ":recaptchaenterprise_java_gapic", ":recaptchaenterprise_java_grpc", @@ -153,6 +154,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -162,6 +164,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-recaptcha-enterprise", ], + transport = "grpc", +) + +py_test( + name = "recaptchaenterprise_py_gapic_test", + srcs = [ + "recaptchaenterprise_py_gapic_pytest.py", + "recaptchaenterprise_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":recaptchaenterprise_py_gapic"], ) # Open Source Packages @@ -320,6 +333,7 @@ csharp_gapic_library( srcs = [":recaptchaenterprise_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "recaptchaenterprise_grpc_service_config.json", + service_yaml = "recaptchaenterprise_v1.yaml", deps = [ ":recaptchaenterprise_csharp_grpc", ":recaptchaenterprise_csharp_proto", diff --git a/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto b/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto index 1be736a6b..7165d1bcc 100644 --- a/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto +++ b/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -36,7 +36,8 @@ option ruby_package = "Google::Cloud::RecaptchaEnterprise::V1"; // Service to determine the likelihood an event is legitimate. service RecaptchaEnterpriseService { option (google.api.default_host) = "recaptchaenterprise.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"; // Creates an Assessment of the likelihood an event is legitimate. rpc CreateAssessment(CreateAssessmentRequest) returns (Assessment) { @@ -49,7 +50,8 @@ service RecaptchaEnterpriseService { // Annotates a previously created Assessment to provide additional information // on whether the event turned out to be authentic or fraudulent. - rpc AnnotateAssessment(AnnotateAssessmentRequest) returns (AnnotateAssessmentResponse) { + rpc AnnotateAssessment(AnnotateAssessmentRequest) + returns (AnnotateAssessmentResponse) { option (google.api.http) = { post: "/v1/{name=projects/*/assessments/*}:annotate" body: "*" @@ -117,7 +119,8 @@ service RecaptchaEnterpriseService { } // List groups of related accounts. - rpc ListRelatedAccountGroups(ListRelatedAccountGroupsRequest) returns (ListRelatedAccountGroupsResponse) { + rpc ListRelatedAccountGroups(ListRelatedAccountGroupsRequest) + returns (ListRelatedAccountGroupsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*}/relatedaccountgroups" }; @@ -125,7 +128,9 @@ service RecaptchaEnterpriseService { } // Get the memberships in a group of related accounts. - rpc ListRelatedAccountGroupMemberships(ListRelatedAccountGroupMembershipsRequest) returns (ListRelatedAccountGroupMembershipsResponse) { + rpc ListRelatedAccountGroupMemberships( + ListRelatedAccountGroupMembershipsRequest) + returns (ListRelatedAccountGroupMembershipsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/relatedaccountgroups/*}/memberships" }; @@ -133,12 +138,14 @@ service RecaptchaEnterpriseService { } // Search group memberships related to a given account. - rpc SearchRelatedAccountGroupMemberships(SearchRelatedAccountGroupMembershipsRequest) returns (SearchRelatedAccountGroupMembershipsResponse) { + rpc SearchRelatedAccountGroupMemberships( + SearchRelatedAccountGroupMembershipsRequest) + returns (SearchRelatedAccountGroupMembershipsResponse) { option (google.api.http) = { - post: "/v1/{parent=projects/*}/relatedaccountgroupmemberships:search" + post: "/v1/{project=projects/*}/relatedaccountgroupmemberships:search" body: "*" }; - option (google.api.method_signature) = "parent,hashed_account_id"; + option (google.api.method_signature) = "project,hashed_account_id"; } } @@ -186,18 +193,18 @@ message AnnotateAssessmentRequest { // Default unspecified reason. REASON_UNSPECIFIED = 0; - // Indicates a chargeback was issued for the transaction associated with the - // assessment, with no other details. When possible, specify the type by - // using CHARGEBACK_FRAUD or CHARGEBACK_DISPUTE instead. + // Indicates a chargeback issued for the transaction with no other details. + // When possible, specify the type by using CHARGEBACK_FRAUD or + // CHARGEBACK_DISPUTE instead. CHARGEBACK = 1; // Indicates a chargeback related to an alleged unauthorized transaction - // from the perspective of the cardholder (for example, the card number was + // from the cardholder's perspective (for example, the card number was // stolen). CHARGEBACK_FRAUD = 8; // Indicates a chargeback related to the cardholder having provided their - // card but allegedly not being satisfied with the purchase + // card details but allegedly not being satisfied with the purchase // (for example, misrepresentation, attempted cancellation). CHARGEBACK_DISPUTE = 9; @@ -234,16 +241,17 @@ message AnnotateAssessmentRequest { } ]; - // Optional. The annotation that will be assigned to the Event. This field can be left - // empty to provide reasons that apply to an event without concluding whether - // the event is legitimate or fraudulent. + // Optional. The annotation that will be assigned to the Event. This field can + // be left empty to provide reasons that apply to an event without concluding + // whether the event is legitimate or fraudulent. Annotation annotation = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Optional reasons for the annotation that will be assigned to the Event. + // Optional. Optional reasons for the annotation that will be assigned to the + // Event. repeated Reason reasons = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Optional unique stable hashed user identifier to apply to the assessment. - // This is an alternative to setting the hashed_account_id in + // Optional. Optional unique stable hashed user identifier to apply to the + // assessment. This is an alternative to setting the hashed_account_id in // CreateAssessment, for example when the account identifier is not yet known // in the initial request. It is recommended that the identifier is hashed // using hmac-sha256 with stable secret. @@ -251,9 +259,7 @@ message AnnotateAssessmentRequest { } // Empty response for AnnotateAssessment. -message AnnotateAssessmentResponse { - -} +message AnnotateAssessmentResponse {} // A recaptcha assessment resource. message Assessment { @@ -273,36 +279,41 @@ message Assessment { RiskAnalysis risk_analysis = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Properties of the provided event token. - TokenProperties token_properties = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + TokenProperties token_properties = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Assessment returned by Account Defender when a hashed_account_id is // provided. AccountDefenderAssessment account_defender_assessment = 6; + + // Password leak verification info. + PrivatePasswordLeakVerification private_password_leak_verification = 8; } message Event { - // Optional. The user response token provided by the reCAPTCHA client-side integration - // on your site. + // Optional. The user response token provided by the reCAPTCHA client-side + // integration on your site. string token = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The site key that was used to invoke reCAPTCHA on your site and generate - // the token. + // Optional. The site key that was used to invoke reCAPTCHA on your site and + // generate the token. string site_key = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The user agent present in the request from the user's device related to - // this event. + // Optional. The user agent present in the request from the user's device + // related to this event. string user_agent = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The IP address in the request from the user's device related to this 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]; - // Optional. The expected action for this type of event. This should be the same action - // provided at token generation time on client-side platforms already - // integrated with recaptcha enterprise. + // Optional. The expected action for this type of event. This should be the + // same action provided at token generation time on client-side platforms + // already integrated with recaptcha enterprise. string expected_action = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Optional unique stable hashed user identifier for the request. The - // identifier should ideally be hashed using sha256 with stable secret. + // Optional. Optional unique stable hashed user identifier for the request. + // The identifier should ideally be hashed using sha256 with stable secret. bytes hashed_account_id = 6 [(google.api.field_behavior) = OPTIONAL]; } @@ -414,6 +425,31 @@ message AccountDefenderAssessment { repeated AccountDefenderLabel labels = 1; } +// Private password leak verification info. +message PrivatePasswordLeakVerification { + // Exactly 26-bit prefix of the SHA-256 hash of the canonicalized username. It + // is used to look up password leaks associated with that hash prefix. + bytes lookup_hash_prefix = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Encrypted Scrypt hash of the canonicalized username+password. It is + // re-encrypted by the server and returned through + // `reencrypted_user_credentials_hash`. + bytes encrypted_user_credentials_hash = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // List of prefixes of the encrypted potential password leaks that matched the + // given parameters. They should be compared with the client-side decryption + // prefix of `reencrypted_user_credentials_hash` + repeated bytes encrypted_leak_match_prefixes = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Corresponds to the re-encryption of the `encrypted_user_credentials_hash` + // field. Used to match potential password leaks within + // `encrypted_leak_match_prefixes`. + bytes reencrypted_user_credentials_hash = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // The create key request message. message CreateKeyRequest { // Required. The name of the project in which the key will be created, in the @@ -476,9 +512,10 @@ message UpdateKeyRequest { // Required. The key to update. Key key = 1 [(google.api.field_behavior) = REQUIRED]; - // Optional. The mask to control which fields of the key get updated. If the mask is not - // present, all fields will be updated. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The mask to control which fields of the key get updated. If the + // mask is not present, all fields will be updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; } // The delete key request message. @@ -578,6 +615,9 @@ message Key { // Options for user acceptance testing. TestingOptions testing_options = 9; + + // Settings for WAF + WafSettings waf_settings = 10; } // Options for user acceptance testing. @@ -737,14 +777,14 @@ message ListRelatedAccountGroupMembershipsRequest { } ]; - // Optional. The maximum number of accounts to return. The service may return fewer than - // this value. - // If unspecified, at most 50 accounts will be returned. - // The maximum value is 1000; values above 1000 will be coerced to 1000. + // Optional. The maximum number of accounts to return. The service may return + // fewer than this value. If unspecified, at most 50 accounts 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 `ListRelatedAccountGroupMemberships` - // call. + // Optional. A page token, received from a previous + // `ListRelatedAccountGroupMemberships` call. // // When paginating, all other parameters provided to // `ListRelatedAccountGroupMemberships` must match the call that provided the @@ -764,8 +804,8 @@ message ListRelatedAccountGroupMembershipsResponse { // The request message to list related account groups. message ListRelatedAccountGroupsRequest { - // Required. The name of the project to list related account groups from, in the format - // "projects/{project}". + // Required. The name of the project to list related account groups from, in + // the format "projects/{project}". string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -773,14 +813,13 @@ message ListRelatedAccountGroupsRequest { } ]; - // Optional. The maximum number of groups to return. The service may return fewer than - // this value. - // If unspecified, at most 50 groups will be returned. + // Optional. The maximum number of groups to return. The service may return + // fewer than this value. If unspecified, at most 50 groups 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 `ListRelatedAccountGroups` call. - // Provide this to retrieve the subsequent page. + // Optional. A page token, received from a previous `ListRelatedAccountGroups` + // call. Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to // `ListRelatedAccountGroups` must match the call that provided the page @@ -800,23 +839,22 @@ message ListRelatedAccountGroupsResponse { // The request message to search related account group memberships. message SearchRelatedAccountGroupMembershipsRequest { - // Required. The name of the project to search related account group memberships from, - // in the format "projects/{project}". - string parent = 1 [ + // Required. The name of the project to search related account group + // memberships from, in the format "projects/{project}". + string project = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" } ]; - // Optional. The unique stable hashed user identifier we should search connections to. - // The identifier should correspond to a `hashed_account_id` provided in a - // previous CreateAssessment or AnnotateAssessment call. + // Optional. The unique stable hashed user identifier we should search + // connections to. The identifier should correspond to a `hashed_account_id` + // provided in a previous CreateAssessment or AnnotateAssessment call. bytes hashed_account_id = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The maximum number of groups to return. The service may return fewer than - // this value. - // If unspecified, at most 50 groups will be returned. + // Optional. The maximum number of groups to return. The service may return + // fewer than this value. If unspecified, at most 50 groups will be returned. // The maximum value is 1000; values above 1000 will be coerced to 1000. int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -878,3 +916,39 @@ message RelatedAccountGroup { } ]; } + +// Settings specific to keys that can be used for WAF (Web Application +// Firewall). +message WafSettings { + // Supported WAF features. For more information, see + // https://cloud.google.com/recaptcha-enterprise/docs/usecase#comparison_of_features. + enum WafFeature { + // Undefined feature. + WAF_FEATURE_UNSPECIFIED = 0; + + // Redirects suspicious traffic to reCAPTCHA. + CHALLENGE_PAGE = 1; + + // Use reCAPTCHA session-tokens to protect the whole user session on the + // site's domain. + SESSION_TOKEN = 2; + + // Use reCAPTCHA action-tokens to protect user actions. + ACTION_TOKEN = 3; + } + + // Web Application Firewalls supported by reCAPTCHA Enterprise. + enum WafService { + // Undefined WAF + WAF_SERVICE_UNSPECIFIED = 0; + + // Cloud Armor + CA = 1; + } + + // Required. The WAF service that uses this key. + WafService waf_service = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The WAF feature for which this key is enabled. + WafFeature waf_feature = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/recaptchaenterprise/v1beta1/BUILD.bazel b/google/cloud/recaptchaenterprise/v1beta1/BUILD.bazel index 9f40401e1..302d7bfde 100644 --- a/google/cloud/recaptchaenterprise/v1beta1/BUILD.bazel +++ b/google/cloud/recaptchaenterprise/v1beta1/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":recaptchaenterprise_java_grpc", ], + transport = "grpc+rest", deps = [ ":recaptchaenterprise_java_proto", ], @@ -81,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "recaptchaenterprise_java_gapic_test_suite", test_classes = [ + "com.google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1ClientHttpJsonTest", "com.google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1ClientTest", ], runtime_deps = [":recaptchaenterprise_java_gapic_test"], @@ -89,6 +91,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-recaptchaenterprise-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":recaptchaenterprise_java_gapic", ":recaptchaenterprise_java_grpc", @@ -124,6 +128,7 @@ go_gapic_library( grpc_service_config = "recaptchaenterprise_grpc_service_config.json", importpath = "cloud.google.com/go/recaptchaenterprise/apiv1beta1;recaptchaenterprise", service_yaml = "recaptchaenterprise_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":recaptchaenterprise_go_proto", ], @@ -153,6 +158,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -162,6 +168,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-recaptcha-enterprise", ], + transport = "grpc", +) + +py_test( + name = "recaptchaenterprise_py_gapic_test", + srcs = [ + "recaptchaenterprise_py_gapic_pytest.py", + "recaptchaenterprise_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":recaptchaenterprise_py_gapic"], ) # Open Source Packages @@ -321,6 +338,7 @@ csharp_gapic_library( srcs = [":recaptchaenterprise_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "recaptchaenterprise_grpc_service_config.json", + service_yaml = "recaptchaenterprise_v1beta1.yaml", deps = [ ":recaptchaenterprise_csharp_grpc", ":recaptchaenterprise_csharp_proto", diff --git a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto index 099d3041f..28a07a8e5 100644 --- a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto +++ b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -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"; @@ -21,8 +20,6 @@ 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 csharp_namespace = "Google.Cloud.RecaptchaEnterprise.V1Beta1"; @@ -57,43 +54,6 @@ service RecaptchaEnterpriseServiceV1Beta1 { }; option (google.api.method_signature) = "name,annotation"; } - - // Creates a new reCAPTCHA Enterprise key. - rpc CreateKey(CreateKeyRequest) returns (Key) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*}/keys" - body: "key" - }; - } - - // Returns the list of all keys that belong to a project. - rpc ListKeys(ListKeysRequest) returns (ListKeysResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*}/keys" - }; - } - - // Returns the specified key. - rpc GetKey(GetKeyRequest) returns (Key) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/keys/*}" - }; - } - - // Updates the specified key. - rpc UpdateKey(UpdateKeyRequest) returns (Key) { - option (google.api.http) = { - patch: "/v1beta1/{key.name=projects/*/keys/*}" - body: "key" - }; - } - - // Deletes the specified key. - rpc DeleteKey(DeleteKeyRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/keys/*}" - }; - } } // The create assessment request message. @@ -113,7 +73,7 @@ message CreateAssessmentRequest { // The request message to annotate an Assessment. message AnnotateAssessmentRequest { - // Enum that reprensents the types of annotations. + // Enum that represents the types of annotations. enum Annotation { // Default unspecified type. ANNOTATION_UNSPECIFIED = 0; @@ -123,6 +83,60 @@ message AnnotateAssessmentRequest { // Provides information that the event turned out to be fraudulent. FRAUDULENT = 2; + + // Provides information that the event was related to a login event in which + // the user typed the correct password. Deprecated, prefer indicating + // CORRECT_PASSWORD through the reasons field instead. + PASSWORD_CORRECT = 3 [deprecated = true]; + + // Provides information that the event was related to a login event in which + // the user typed the incorrect password. Deprecated, prefer indicating + // INCORRECT_PASSWORD through the reasons field instead. + PASSWORD_INCORRECT = 4 [deprecated = true]; + } + + // Enum that represents potential reasons for annotating an assessment. + enum Reason { + // Default unspecified reason. + REASON_UNSPECIFIED = 0; + + // Indicates a chargeback issued for the transaction with no other details. + // When possible, specify the type by using CHARGEBACK_FRAUD or + // CHARGEBACK_DISPUTE instead. + CHARGEBACK = 1; + + // Indicates a chargeback related to an alleged unauthorized transaction + // from the cardholder's perspective (for example, the card number was + // stolen). + CHARGEBACK_FRAUD = 8; + + // Indicates a chargeback related to the cardholder having provided their + // card details but allegedly not being satisfied with the purchase + // (for example, misrepresentation, attempted cancellation). + CHARGEBACK_DISPUTE = 9; + + // Indicates the transaction associated with the assessment is suspected of + // being fraudulent based on the payment method, billing details, shipping + // address or other transaction information. + PAYMENT_HEURISTICS = 2; + + // Indicates that the user was served a 2FA challenge. An old assessment + // with `ENUM_VALUES.INITIATED_TWO_FACTOR` reason that has not been + // overwritten with `PASSED_TWO_FACTOR` is treated as an abandoned 2FA flow. + // This is equivalent to `FAILED_TWO_FACTOR`. + INITIATED_TWO_FACTOR = 7; + + // Indicates that the user passed a 2FA challenge. + PASSED_TWO_FACTOR = 3; + + // Indicates that the user failed a 2FA challenge. + FAILED_TWO_FACTOR = 4; + + // Indicates the user provided the correct password. + CORRECT_PASSWORD = 5; + + // Indicates the user provided an incorrect password. + INCORRECT_PASSWORD = 6; } // Required. The resource name of the Assessment, in the format @@ -134,8 +148,20 @@ message AnnotateAssessmentRequest { } ]; - // Required. The annotation that will be assigned to the Event. - Annotation annotation = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. The annotation that will be assigned to the Event. This field can be left + // empty to provide reasons that apply to an event without concluding whether + // the event is legitimate or fraudulent. + Annotation annotation = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional reasons for the annotation that will be assigned to the Event. + repeated Reason reasons = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional unique stable hashed user identifier to apply to the assessment. + // This is an alternative to setting the hashed_account_id in + // CreateAssessment, for example when the account identifier is not yet known + // in the initial request. It is recommended that the identifier is hashed + // using hmac-sha256 with stable secret. + bytes hashed_account_id = 4 [(google.api.field_behavior) = OPTIONAL]; } // Empty response for AnnotateAssessment. @@ -143,6 +169,21 @@ message AnnotateAssessmentResponse { } +// Password leak verification info. +message PasswordLeakVerification { + // Optional. Scrypt hash of the username+password that the customer wants to verify + // against a known password leak. + bytes hashed_user_credentials = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Whether or not the user's credentials are present in a known leak. + bool credentials_leaked = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The username part of the user credentials for which we want to trigger a + // leak check in canonicalized form. This is the same data used to create the + // hashed_user_credentials on the customer side. + string canonicalized_username = 3 [(google.api.field_behavior) = OPTIONAL]; +} + // A recaptcha assessment resource. message Assessment { option (google.api.resource) = { @@ -150,7 +191,6 @@ message Assessment { pattern: "projects/{project}/assessments/{assessment}" }; - // LINT.IfChange(classification_reason) // Reasons contributing to the risk analysis verdict. enum ClassificationReason { // Default unspecified type. @@ -191,6 +231,16 @@ message Assessment { // Output only. Reasons contributing to the risk analysis verdict. repeated ClassificationReason reasons = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Information about the user's credentials used to check for leaks. + // This feature is part of the Early Access Program (EAP). Exercise caution, + // and do not deploy integrations based on this feature in a production + // environment. + PasswordLeakVerification password_leak_verification = 7; + + // Assessment returned by Account Defender when a hashed_account_id is + // provided. + AccountDefenderAssessment account_defender_assessment = 8; } message Event { @@ -213,10 +263,13 @@ message Event { // provided at token generation time on client-side platforms already // integrated with recaptcha enterprise. string expected_action = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional unique stable hashed user identifier for the request. The + // identifier should ideally be hashed using sha256 with stable secret. + bytes hashed_account_id = 6 [(google.api.field_behavior) = OPTIONAL]; } message TokenProperties { - // LINT.IfChange // Enum that represents the types of invalid token reasons. enum InvalidReason { // Default unspecified type. @@ -238,13 +291,21 @@ message TokenProperties { // This may be a configuration error (e.g. development keys used in // production) or end users trying to use verification tokens from other // sites. - SITE_MISMATCH = 5; + SITE_MISMATCH = 5 [deprecated = true]; // The user verification token was not present. It is a required input. MISSING = 6; + + // A retriable error (such as network failure) occurred on the browser. + // Could easily be simulated by an attacker. + BROWSER_ERROR = 7; } - // Whether the provided user response token is valid. + // Whether the provided user response token is valid. When valid = false, the + // reason could be specified in invalid_reason or it could also be due to + // a user failing to solve a challenge or a sitekey mismatch (i.e the sitekey + // used to generate the token was different than the one specified in the + // assessment). bool valid = 1; // Reason associated with the response when valid = false. @@ -260,183 +321,30 @@ message TokenProperties { string action = 5; } -// The create key request message. -message CreateKeyRequest { - // Required. The name of the project in which the key will be created, in the - // format "projects/{project_number}". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - } - ]; - - // Required. Information to create a reCAPTCHA Enterprise key. - Key key = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// The list keys request message. -message ListKeysRequest { - // Required. The name of the project that contains the keys that will be - // listed, in the format "projects/{project_number}". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - } - ]; - - // Optional. The maximum number of keys to return. Default is 10. Max limit is - // 1000. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The next_page_token value returned from a previous. - // ListKeysRequest, if any. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response to request to list keys in a project. -message ListKeysResponse { - // Key details. - repeated Key keys = 1; - - // Token to retrieve the next page of results. It is set to empty if no keys - // remain in results. - string next_page_token = 2; -} - -// The get key request message. -message GetKeyRequest { - // Required. The name of the requested key, in the format - // "projects/{project_number}/keys/{key_id}". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "recaptchaenterprise.googleapis.com/Key" - } - ]; -} - -// The update key request message. -message UpdateKeyRequest { - // Required. The key to update. - Key key = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The mask to control which field of the key get updated. If the mask is not - // present, all fields will be updated. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; -} - -// The delete key request message. -message DeleteKeyRequest { - // Required. The name of the key to be deleted, in the format - // "projects/{project_number}/keys/{key_id}". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "recaptchaenterprise.googleapis.com/Key" - } - ]; -} - -// A key used to identify and configure applications (web and/or mobile) that -// use reCAPTCHA Enterprise. -message Key { - option (google.api.resource) = { - type: "recaptchaenterprise.googleapis.com/Key" - pattern: "projects/{project}/keys/{key}" - }; - - // The resource name for the Key in the format - // "projects/{project_number}/keys/{key_id}". - string name = 1; - - // Human-readable display name of this key. Modifiable by user. - string display_name = 2; - - // Platform specific settings for this key. The key can only be used on one - // platform, the one it has settings for. - oneof platform_settings { - // Settings for keys that can be used by websites. - WebKeySettings web_settings = 3; - - // Settings for keys that can be used by Android apps. - AndroidKeySettings android_settings = 4; - - // Settings for keys that can be used by iOS apps. - IOSKeySettings ios_settings = 5; - } -} - -// Settings specific to keys that can be used by websites. -message WebKeySettings { - // Enum that represents the integration types for web keys. - enum IntegrationType { - // Default type that indicates this enum hasn't been specified. This is not - // a valid IntegrationType, one of the other types must be specified - // instead. - INTEGRATION_TYPE_UNSPECIFIED = 0; - - // Only used to produce scores. It doesn't display the "I'm not a robot" - // checkbox and never shows captcha challenges. - SCORE_ONLY = 1; - - // Displays the "I'm not a robot" checkbox and may show captcha challenges - // after it is checked. - CHECKBOX_CHALLENGE = 2; - - // Doesn't display the "I'm not a robot" checkbox, but may show captcha - // challenges after risk analysis. - INVISIBLE_CHALLENGE = 3; - } +// Account Defender risk assessment. +message AccountDefenderAssessment { + // Labels returned by Account Defender for this request. + enum AccountDefenderLabel { + // Default unspecified type. + ACCOUNT_DEFENDER_LABEL_UNSPECIFIED = 0; - // Enum that represents the possible challenge frequency and difficulty - // configurations for a web key. - enum ChallengeSecurityPreference { - // Default type that indicates this enum hasn't been specified. - CHALLENGE_SECURITY_PREFERENCE_UNSPECIFIED = 0; + // The request matches a known good profile for the user. + PROFILE_MATCH = 1; - // Key tends to show fewer and easier challenges. - USABILITY = 1; + // The request is potentially a suspicious login event and should be further + // verified either via multi-factor authentication or another system. + SUSPICIOUS_LOGIN_ACTIVITY = 2; - // Key tends to show balanced (in amount and difficulty) challenges. - BALANCED = 2; + // The request matched a profile that previously had suspicious account + // creation behavior. This could mean this is a fake account. + SUSPICIOUS_ACCOUNT_CREATION = 3; - // Key tends to show more and harder challenges. - SECURITY = 3; + // The account in the request has a high number of related accounts. It does + // not necessarily imply that the account is bad but could require + // investigating. + RELATED_ACCOUNTS_NUMBER_HIGH = 4; } - // Whether allowed_domains is enforced or not. - bool enforce_allowed_domains = 3; - - // Domains or subdomains of websites allowed to use the key. All subdomains - // of an allowed domain are automatically allowed. A valid domain requires a - // host and must not include any path, port, query or fragment. - // Examples: 'example.com' or 'subdomain.example.com' - repeated string allowed_domains = 1; - - // Whether this key can be used on AMP (Accelerated Mobile Pages) websites. - bool allow_amp_traffic = 2; - - // Required. Describes how this key is integrated with the website. - IntegrationType integration_type = 4 [(google.api.field_behavior) = REQUIRED]; - - // Settings for the frequency and difficulty at which this key triggers - // captcha challenges. This should only be specified for IntegrationTypes - // CHECKBOX_CHALLENGE and INVISIBLE_CHALLENGE. - ChallengeSecurityPreference challenge_security_preference = 5; -} - -// Settings specific to keys that can be used by Android apps. -message AndroidKeySettings { - // Android package names of apps allowed to use the key. - // Example: 'com.companyname.appname' - repeated string allowed_package_names = 1; -} - -// Settings specific to keys that can be used by iOS apps. -message IOSKeySettings { - // iOS bundle ids of apps allowed to use the key. - // Example: 'com.companyname.productname.appname' - repeated string allowed_bundle_ids = 1; + // Labels for this request. + repeated AccountDefenderLabel labels = 1; } diff --git a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_grpc_service_config.json b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_grpc_service_config.json index be075f419..4df70d2ff 100755 --- a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_grpc_service_config.json +++ b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_grpc_service_config.json @@ -9,26 +9,6 @@ { "service": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1", "method": "AnnotateAssessment" - }, - { - "service": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1", - "method": "CreateKey" - }, - { - "service": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1", - "method": "ListKeys" - }, - { - "service": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1", - "method": "GetKey" - }, - { - "service": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1", - "method": "DeleteKey" - }, - { - "service": "google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1", - "method": "UpdateKey" } ], "timeout": "600s" diff --git a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml index fc95bdf73..4996c5a4f 100644 --- a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml +++ b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml @@ -8,7 +8,11 @@ apis: authentication: rules: - - selector: 'google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1.*' + - selector: google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1.AnnotateAssessment + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.recaptchaenterprise.v1beta1.RecaptchaEnterpriseServiceV1Beta1.CreateAssessment oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/recommendationengine/v1beta1/BUILD.bazel b/google/cloud/recommendationengine/v1beta1/BUILD.bazel index 36d8a4687..3e8aaaee2 100644 --- a/google/cloud/recommendationengine/v1beta1/BUILD.bazel +++ b/google/cloud/recommendationengine/v1beta1/BUILD.bazel @@ -95,6 +95,7 @@ java_gapic_library( test_deps = [ ":recommendationengine_java_grpc", ], + transport = "grpc+rest", deps = [ ":recommendationengine_java_proto", "//google/api:api_java_proto", @@ -104,9 +105,13 @@ java_gapic_library( java_gapic_test( name = "recommendationengine_java_gapic_test_suite", test_classes = [ + "com.google.cloud.recommendationengine.v1beta1.CatalogServiceClientHttpJsonTest", "com.google.cloud.recommendationengine.v1beta1.CatalogServiceClientTest", + "com.google.cloud.recommendationengine.v1beta1.PredictionApiKeyRegistryClientHttpJsonTest", "com.google.cloud.recommendationengine.v1beta1.PredictionApiKeyRegistryClientTest", + "com.google.cloud.recommendationengine.v1beta1.PredictionServiceClientHttpJsonTest", "com.google.cloud.recommendationengine.v1beta1.PredictionServiceClientTest", + "com.google.cloud.recommendationengine.v1beta1.UserEventServiceClientHttpJsonTest", "com.google.cloud.recommendationengine.v1beta1.UserEventServiceClientTest", ], runtime_deps = [":recommendationengine_java_gapic_test"], @@ -115,6 +120,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-recommendationengine-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":recommendationengine_java_gapic", ":recommendationengine_java_grpc", @@ -174,7 +181,18 @@ py_gapic_library( name = "recommendationengine_py_gapic", srcs = [":recommendationengine_proto"], grpc_service_config = "recommendationengine_grpc_service_config.json", - opt_args = ["warehouse-package-name=google-cloud-recommendations-ai"] + opt_args = ["warehouse-package-name=google-cloud-recommendations-ai"], + transport = "grpc+rest", +) + +py_test( + name = "recommendationengine_py_gapic_test", + srcs = [ + "recommendationengine_py_gapic_pytest.py", + "recommendationengine_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":recommendationengine_py_gapic"], ) # Open Source Packages @@ -290,8 +308,9 @@ csharp_grpc_library( csharp_gapic_library( name = "recommendationengine_csharp_gapic", srcs = [":recommendationengine_proto_with_info"], - grpc_service_config = "recommendationengine_grpc_service_config.json", common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "recommendationengine_grpc_service_config.json", + service_yaml = "recommendationengine_v1beta1.yaml", deps = [ ":recommendationengine_csharp_grpc", ":recommendationengine_csharp_proto", diff --git a/google/cloud/recommendationengine/v1beta1/catalog.proto b/google/cloud/recommendationengine/v1beta1/catalog.proto index 9a0c163dc..f006171a5 100644 --- a/google/cloud/recommendationengine/v1beta1/catalog.proto +++ b/google/cloud/recommendationengine/v1beta1/catalog.proto @@ -18,8 +18,6 @@ package google.cloud.recommendationengine.v1beta1; import "google/api/field_behavior.proto"; import "google/cloud/recommendationengine/v1beta1/common.proto"; -import "google/protobuf/struct.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.RecommendationEngine.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/recommendationengine/v1beta1;recommendationengine"; diff --git a/google/cloud/recommendationengine/v1beta1/common.proto b/google/cloud/recommendationengine/v1beta1/common.proto index 1ca1bab87..0bb0cbf3e 100644 --- a/google/cloud/recommendationengine/v1beta1/common.proto +++ b/google/cloud/recommendationengine/v1beta1/common.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.recommendationengine.v1beta1; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.RecommendationEngine.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/recommendationengine/v1beta1;recommendationengine"; diff --git a/google/cloud/recommendationengine/v1beta1/import.proto b/google/cloud/recommendationengine/v1beta1/import.proto index 52b3c1134..b59086055 100644 --- a/google/cloud/recommendationengine/v1beta1/import.proto +++ b/google/cloud/recommendationengine/v1beta1/import.proto @@ -23,7 +23,6 @@ import "google/cloud/recommendationengine/v1beta1/user_event.proto"; import "google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.RecommendationEngine.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/recommendationengine/v1beta1;recommendationengine"; diff --git a/google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto b/google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto index fbec2a55a..816cf27ce 100644 --- a/google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto +++ b/google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto @@ -18,6 +18,8 @@ syntax = "proto3"; package google.cloud.recommendationengine.v1beta1; +import "google/api/resource.proto"; + option csharp_namespace = "Google.Cloud.RecommendationEngine.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/recommendationengine/v1beta1;recommendationengine"; option java_multiple_files = true; @@ -25,29 +27,22 @@ option java_package = "com.google.cloud.recommendationengine.v1beta1"; option objc_class_prefix = "RECAI"; option php_namespace = "Google\\Cloud\\RecommendationEngine\\V1beta1"; option ruby_package = "Google::Cloud::RecommendationEngine::V1beta1"; - -import "google/api/resource.proto"; - option (google.api.resource_definition) = { type: "recommendationengine.googleapis.com/Catalog" pattern: "projects/{project}/locations/{location}/catalogs/{catalog}" }; - option (google.api.resource_definition) = { type: "recommendationengine.googleapis.com/CatalogItemPath" - pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/catalogItems/{catalog_item_path=**}" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/catalogItems/{catalog_item_path}" }; - option (google.api.resource_definition) = { type: "recommendationengine.googleapis.com/EventStore" pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/eventStores/{event_store}" }; - option (google.api.resource_definition) = { type: "recommendationengine.googleapis.com/PredictionApiKeyRegistration" pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/eventStores/{event_store}/predictionApiKeyRegistrations/{prediction_api_key_registration}" }; - option (google.api.resource_definition) = { type: "recommendationengine.googleapis.com/Placement" pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/eventStores/{event_store}/placements/{placement}" diff --git a/google/cloud/recommendationengine/v1beta1/user_event.proto b/google/cloud/recommendationengine/v1beta1/user_event.proto index da3fc3e04..77f0c6b93 100644 --- a/google/cloud/recommendationengine/v1beta1/user_event.proto +++ b/google/cloud/recommendationengine/v1beta1/user_event.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/cloud/recommendationengine/v1beta1/catalog.proto"; import "google/cloud/recommendationengine/v1beta1/common.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.RecommendationEngine.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/recommendationengine/v1beta1;recommendationengine"; diff --git a/google/cloud/recommendationengine/v1beta1/user_event_service.proto b/google/cloud/recommendationengine/v1beta1/user_event_service.proto index caa0d1728..6c0b93fd8 100644 --- a/google/cloud/recommendationengine/v1beta1/user_event_service.proto +++ b/google/cloud/recommendationengine/v1beta1/user_event_service.proto @@ -24,7 +24,6 @@ import "google/cloud/recommendationengine/v1beta1/import.proto"; import "google/cloud/recommendationengine/v1beta1/user_event.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/timestamp.proto"; -import "google/type/date.proto"; import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.RecommendationEngine.V1Beta1"; diff --git a/google/cloud/recommender/v1/BUILD.bazel b/google/cloud/recommender/v1/BUILD.bazel index 9197615ba..803c6f717 100644 --- a/google/cloud/recommender/v1/BUILD.bazel +++ b/google/cloud/recommender/v1/BUILD.bazel @@ -22,7 +22,9 @@ proto_library( name = "recommender_proto", srcs = [ "insight.proto", + "insight_type_config.proto", "recommendation.proto", + "recommender_config.proto", "recommender_service.proto", ], deps = [ @@ -32,6 +34,7 @@ proto_library( "//google/api:resource_proto", "//google/type:money_proto", "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", ], @@ -77,6 +80,7 @@ java_gapic_library( test_deps = [ ":recommender_java_grpc", ], + transport = "grpc+rest", deps = [ ":recommender_java_proto", "//google/api:api_java_proto", @@ -86,6 +90,7 @@ java_gapic_library( java_gapic_test( name = "recommender_java_gapic_test_suite", test_classes = [ + "com.google.cloud.recommender.v1.RecommenderClientHttpJsonTest", "com.google.cloud.recommender.v1.RecommenderClientTest", ], runtime_deps = [":recommender_java_gapic_test"], @@ -94,6 +99,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-recommender-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":recommender_java_gapic", ":recommender_java_grpc", @@ -131,6 +138,7 @@ go_gapic_library( importpath = "cloud.google.com/go/recommender/apiv1;recommender", metadata = True, service_yaml = "recommender_v1.yaml", + transport = "grpc+rest", deps = [ ":recommender_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -162,12 +170,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "recommender_py_gapic", srcs = [":recommender_proto"], grpc_service_config = "recommender_grpc_service_config.json", + service_yaml = "recommender_v1.yaml", + transport = "grpc", +) + +py_test( + name = "recommender_py_gapic_test", + srcs = [ + "recommender_py_gapic_pytest.py", + "recommender_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":recommender_py_gapic"], ) # Open Source Packages @@ -284,6 +305,7 @@ ruby_cloud_gapic_library( grpc_service_config = "recommender_grpc_service_config.json", ruby_cloud_description = "Recommender is a service on Google Cloud that provides usage recommendations for Cloud products and services.", ruby_cloud_title = "Recommender V1", + service_yaml = "recommender_v1.yaml", deps = [ ":recommender_ruby_grpc", ":recommender_ruby_proto", @@ -327,6 +349,7 @@ csharp_gapic_library( srcs = [":recommender_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "recommender_grpc_service_config.json", + service_yaml = "recommender_v1.yaml", deps = [ ":recommender_csharp_grpc", ":recommender_csharp_proto", diff --git a/google/cloud/recommender/v1/insight.proto b/google/cloud/recommender/v1/insight.proto index e561b8381..0fdc0fdae 100644 --- a/google/cloud/recommender/v1/insight.proto +++ b/google/cloud/recommender/v1/insight.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -46,13 +46,6 @@ message Insight { pattern: "organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" }; - // Reference to an associated recommendation. - message RecommendationReference { - // Recommendation resource name, e.g. - // projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID] - string recommendation = 1; - } - // Insight category. enum Category { // Unspecified category. @@ -71,6 +64,31 @@ message Insight { MANAGEABILITY = 4; } + // Insight severity levels. + enum Severity { + // Insight has unspecified severity. + SEVERITY_UNSPECIFIED = 0; + + // Insight has low severity. + LOW = 1; + + // Insight has medium severity. + MEDIUM = 2; + + // Insight has high severity. + HIGH = 3; + + // Insight has critical severity. + CRITICAL = 4; + } + + // Reference to an associated recommendation. + message RecommendationReference { + // Recommendation resource name, e.g. + // projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID] + string recommendation = 1; + } + // Name of the insight. string name = 1; @@ -102,6 +120,9 @@ message Insight { // Category being targeted by the insight. Category category = 7; + // Insight's severity. + Severity severity = 15; + // Fingerprint of the Insight. Provides optimistic locking when updating // states. string etag = 11; diff --git a/google/cloud/recommender/v1/insight_type_config.proto b/google/cloud/recommender/v1/insight_type_config.proto new file mode 100644 index 000000000..b457b2d0b --- /dev/null +++ b/google/cloud/recommender/v1/insight_type_config.proto @@ -0,0 +1,85 @@ +// 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.cloud.recommender.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.Recommender.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender"; +option java_multiple_files = true; +option java_outer_classname = "InsightTypeConfigProto"; +option java_package = "com.google.cloud.recommender.v1"; +option objc_class_prefix = "CREC"; + +// Configuration for an InsightType. +message InsightTypeConfig { + option (google.api.resource) = { + type: "recommender.googleapis.com/InsightTypeConfig" + pattern: "projects/{project}/locations/{location}/insightTypes/{insight_type}/config" + pattern: "organizations/{organization}/locations/{location}/insightTypes/{insight_type}/config" + }; + + // Name of insight type config. + // Eg, + // projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + string name = 1; + + // InsightTypeGenerationConfig which configures the generation of + // insights for this insight type. + InsightTypeGenerationConfig insight_type_generation_config = 2; + + // Fingerprint of the InsightTypeConfig. Provides optimistic locking when + // updating. + string etag = 3; + + // Last time when the config was updated. + google.protobuf.Timestamp update_time = 4; + + // Output only. Immutable. The revision ID of the config. + // A new revision is committed whenever the config is changed in any way. + // The format is an 8-character hexadecimal string. + string revision_id = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Allows clients to store small amounts of arbitrary data. Annotations must + // follow the Kubernetes syntax. + // The total size of all keys and values combined is limited to 256k. + // Key can have 2 segments: prefix (optional) and name (required), + // separated by a slash (/). + // Prefix must be a DNS subdomain. + // Name must be 63 characters or less, begin and end with alphanumerics, + // with dashes (-), underscores (_), dots (.), and alphanumerics between. + map annotations = 6; + + // A user-settable field to provide a human-readable name to be used in user + // interfaces. + string display_name = 7; +} + +// A configuration to customize the generation of insights. +// Eg, customizing the lookback period considered when generating a +// insight. +message InsightTypeGenerationConfig { + // Parameters for this InsightTypeGenerationConfig. These configs can be used + // by or are applied to all subtypes. + google.protobuf.Struct params = 1; +} diff --git a/google/cloud/recommender/v1/recommendation.proto b/google/cloud/recommender/v1/recommendation.proto index 8d75134d6..5d72be18d 100644 --- a/google/cloud/recommender/v1/recommendation.proto +++ b/google/cloud/recommender/v1/recommendation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -46,6 +46,24 @@ message Recommendation { pattern: "organizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" }; + // Recommendation priority levels. + enum Priority { + // Recommendation has unspecified priority. + PRIORITY_UNSPECIFIED = 0; + + // Recommendation has P4 priority (lowest priority). + P4 = 1; + + // Recommendation has P3 priority (second lowest priority). + P3 = 2; + + // Recommendation has P2 priority (second highest priority). + P2 = 3; + + // Recommendation has P1 priority (highest priority). + P1 = 4; + } + // Reference to an associated insight. message InsightReference { // Insight resource name, e.g. @@ -84,6 +102,9 @@ message Recommendation { // or negative. repeated Impact additional_impact = 6; + // Recommendation's priority. + Priority priority = 17; + // Content of the recommendation describing recommended changes to resources. RecommendationContent content = 7; @@ -96,6 +117,12 @@ message Recommendation { // Insights that led to this recommendation. repeated InsightReference associated_insights = 14; + + // Corresponds to a mutually exclusive group ID within a recommender. + // A non-empty ID indicates that the recommendation belongs to a mutually + // exclusive group. This means that only one recommendation within the group + // is suggested to be applied. + string xor_group_id = 18; } // Contains what resources are changing and how they are changing. @@ -104,6 +131,9 @@ message RecommendationContent { // that, all operations within one group are expected to be performed // atomically and in an order. repeated OperationGroup operation_groups = 2; + + // Condensed overview information about the recommendation. + google.protobuf.Struct overview = 3; } // Group of operations that need to be performed atomically. @@ -123,7 +153,7 @@ message OperationGroup { // * Allows extension to custom operations not natively supported by RFC6902. // See https://tools.ietf.org/html/rfc6902 for details on the original RFC. message Operation { - // Type of this operation. Contains one of 'and', 'remove', 'replace', 'move', + // Type of this operation. Contains one of 'add', 'remove', 'replace', 'move', // 'copy', 'test' and custom operations. This field is case-insensitive and // always populated. string action = 1; @@ -197,7 +227,7 @@ message Operation { map path_filters = 8; // Similar to path_filters, this contains set of filters to apply if `path` - // field referes to array elements. This is meant to support value matching + // field refers to array elements. This is meant to support value matching // beyond exact match. To perform exact match, use path_filters. // When both path_filters and path_value_matchers are set, an implicit AND // must be performed. @@ -219,12 +249,21 @@ message CostProjection { // An approximate projection on amount saved or amount incurred. Negative cost // units indicate cost savings and positive cost units indicate increase. // See google.type.Money documentation for positive/negative units. + // + // A user's permissions may affect whether the cost is computed using list + // prices or custom contract prices. google.type.Money cost = 1; // Duration for which this cost applies. google.protobuf.Duration duration = 2; } +// Contains various ways of describing the impact on Security. +message SecurityProjection { + // Additional security impact details that is provided by the recommender. + google.protobuf.Struct details = 2; +} + // Contains the impact a recommendation can have for a given category. message Impact { // The category of the impact. @@ -252,6 +291,9 @@ message Impact { oneof projection { // Use with CategoryType.COST CostProjection cost_projection = 100; + + // Use with CategoryType.SECURITY + SecurityProjection security_projection = 101; } } diff --git a/google/cloud/recommender/v1/recommender_config.proto b/google/cloud/recommender/v1/recommender_config.proto new file mode 100644 index 000000000..d3b7c596b --- /dev/null +++ b/google/cloud/recommender/v1/recommender_config.proto @@ -0,0 +1,85 @@ +// 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.cloud.recommender.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.Recommender.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender"; +option java_multiple_files = true; +option java_outer_classname = "RecommenderConfigProto"; +option java_package = "com.google.cloud.recommender.v1"; +option objc_class_prefix = "CREC"; + +// Configuration for a Recommender. +message RecommenderConfig { + option (google.api.resource) = { + type: "recommender.googleapis.com/RecommenderConfig" + pattern: "projects/{project}/locations/{location}/recommenders/{recommender}/config" + pattern: "organizations/{organization}/locations/{location}/recommenders/{recommender}/config" + }; + + // Name of recommender config. + // Eg, + // projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config + string name = 1; + + // RecommenderGenerationConfig which configures the Generation of + // recommendations for this recommender. + RecommenderGenerationConfig recommender_generation_config = 2; + + // Fingerprint of the RecommenderConfig. Provides optimistic locking when + // updating. + string etag = 3; + + // Last time when the config was updated. + google.protobuf.Timestamp update_time = 4; + + // Output only. Immutable. The revision ID of the config. + // A new revision is committed whenever the config is changed in any way. + // The format is an 8-character hexadecimal string. + string revision_id = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Allows clients to store small amounts of arbitrary data. Annotations must + // follow the Kubernetes syntax. + // The total size of all keys and values combined is limited to 256k. + // Key can have 2 segments: prefix (optional) and name (required), + // separated by a slash (/). + // Prefix must be a DNS subdomain. + // Name must be 63 characters or less, begin and end with alphanumerics, + // with dashes (-), underscores (_), dots (.), and alphanumerics between. + map annotations = 6; + + // A user-settable field to provide a human-readable name to be used in user + // interfaces. + string display_name = 7; +} + +// A Configuration to customize the generation of recommendations. +// Eg, customizing the lookback period considered when generating a +// recommendation. +message RecommenderGenerationConfig { + // Parameters for this RecommenderGenerationConfig. These configs can be used + // by or are applied to all subtypes. + google.protobuf.Struct params = 1; +} diff --git a/google/cloud/recommender/v1/recommender_service.proto b/google/cloud/recommender/v1/recommender_service.proto index c6475eaa3..93ed5b965 100644 --- a/google/cloud/recommender/v1/recommender_service.proto +++ b/google/cloud/recommender/v1/recommender_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -21,7 +21,10 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/recommender/v1/insight.proto"; +import "google/cloud/recommender/v1/insight_type_config.proto"; import "google/cloud/recommender/v1/recommendation.proto"; +import "google/cloud/recommender/v1/recommender_config.proto"; +import "google/protobuf/field_mask.proto"; option csharp_namespace = "Google.Cloud.Recommender.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender"; @@ -36,10 +39,11 @@ option objc_class_prefix = "CREC"; // based on analysis of user resources, configuration and monitoring metrics. service Recommender { option (google.api.default_host) = "recommender.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 insights for a Cloud project. Requires the recommender.*.list IAM - // permission for the specified insight type. + // Lists insights for the specified Cloud Resource. Requires the + // recommender.*.list IAM permission for the specified insight type. rpc ListInsights(ListInsightsRequest) returns (ListInsightsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights" @@ -100,9 +104,10 @@ service Recommender { option (google.api.method_signature) = "name,state_metadata,etag"; } - // Lists recommendations for a Cloud project. Requires the recommender.*.list - // IAM permission for the specified recommender. - rpc ListRecommendations(ListRecommendationsRequest) returns (ListRecommendationsResponse) { + // Lists recommendations for the specified Cloud Resource. Requires the + // recommender.*.list IAM permission for the specified recommender. + rpc ListRecommendations(ListRecommendationsRequest) + returns (ListRecommendationsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations" additional_bindings { @@ -147,7 +152,8 @@ service Recommender { // // Requires the recommender.*.update IAM permission for the specified // recommender. - rpc MarkRecommendationClaimed(MarkRecommendationClaimedRequest) returns (Recommendation) { + rpc MarkRecommendationClaimed(MarkRecommendationClaimedRequest) + returns (Recommendation) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed" body: "*" @@ -178,7 +184,8 @@ service Recommender { // // Requires the recommender.*.update IAM permission for the specified // recommender. - rpc MarkRecommendationSucceeded(MarkRecommendationSucceededRequest) returns (Recommendation) { + rpc MarkRecommendationSucceeded(MarkRecommendationSucceededRequest) + returns (Recommendation) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" body: "*" @@ -209,7 +216,8 @@ service Recommender { // // Requires the recommender.*.update IAM permission for the specified // recommender. - rpc MarkRecommendationFailed(MarkRecommendationFailedRequest) returns (Recommendation) { + rpc MarkRecommendationFailed(MarkRecommendationFailedRequest) + returns (Recommendation) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed" body: "*" @@ -228,6 +236,62 @@ service Recommender { }; option (google.api.method_signature) = "name,state_metadata,etag"; } + + // Gets the requested Recommender Config. There is only one instance of the + // config for each Recommender. + rpc GetRecommenderConfig(GetRecommenderConfigRequest) + returns (RecommenderConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/recommenders/*/config}" + additional_bindings { + get: "/v1/{name=organizations/*/locations/*/recommenders/*/config}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Recommender Config. This will create a new revision of the + // config. + rpc UpdateRecommenderConfig(UpdateRecommenderConfigRequest) + returns (RecommenderConfig) { + option (google.api.http) = { + patch: "/v1/{recommender_config.name=projects/*/locations/*/recommenders/*/config}" + body: "recommender_config" + additional_bindings { + patch: "/v1/{recommender_config.name=organizations/*/locations/*/recommenders/*/config}" + body: "recommender_config" + } + }; + option (google.api.method_signature) = "recommender_config,update_mask"; + } + + // Gets the requested InsightTypeConfig. There is only one instance of the + // config for each InsightType. + rpc GetInsightTypeConfig(GetInsightTypeConfigRequest) + returns (InsightTypeConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/insightTypes/*/config}" + additional_bindings { + get: "/v1/{name=organizations/*/locations/*/insightTypes/*/config}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates an InsightTypeConfig change. This will create a new revision of the + // config. + rpc UpdateInsightTypeConfig(UpdateInsightTypeConfigRequest) + returns (InsightTypeConfig) { + option (google.api.http) = { + patch: "/v1/{insight_type_config.name=projects/*/locations/*/insightTypes/*/config}" + body: "insight_type_config" + additional_bindings { + patch: "/v1/{insight_type_config.name=organizations/*/locations/*/insightTypes/*/config}" + body: "insight_type_config" + } + }; + option (google.api.method_signature) = "insight_type_config,update_mask"; + } } // Request for the `ListInsights` method. @@ -235,13 +299,20 @@ message ListInsightsRequest { // Required. The container resource on which to execute the request. // Acceptable formats: // - // 1. - // "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]", + // * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` + // + // * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` + // + // * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` + // + // * `folders/[FOLDER_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` + // + // * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` // // LOCATION here refers to GCP Locations: // https://cloud.google.com/about/locations/ // INSIGHT_TYPE_ID refers to supported insight types: - // https://cloud.google.com/recommender/docs/insights/insight-types.) + // https://cloud.google.com/recommender/docs/insights/insight-types. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -249,20 +320,38 @@ message ListInsightsRequest { } ]; - // Optional. The maximum number of results to return from this request. Non-positive - // values are ignored. If not specified, the server will determine the number - // of results to return. + // Optional. The maximum number of results to return from this request. + // Non-positive values are ignored. If not specified, the server will + // determine the number of results to return. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If present, retrieves the next batch of results from the preceding call to - // this method. `page_token` must be the value of `next_page_token` from the - // previous response. The values of other method parameters must be identical - // to those in the previous call. + // Optional. If present, retrieves the next batch of results from the + // preceding call to this method. `page_token` must be the value of + // `next_page_token` from the previous response. The values of other method + // parameters must be identical to those in the previous call. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Filter expression to restrict the insights returned. Supported - // filter fields: state - // Eg: `state:"DISMISSED" or state:"ACTIVE" + // filter fields: + // + // * `stateInfo.state` + // + // * `insightSubtype` + // + // * `severity` + // + // Examples: + // + // * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` + // + // * `insightSubtype = PERMISSIONS_USAGE` + // + // * `severity = CRITICAL OR severity = HIGH` + // + // * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` + // + // (These expressions are based on the filter language described at + // https://google.aip.dev/160) string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -297,9 +386,10 @@ message MarkInsightAcceptedRequest { } ]; - // Optional. State properties user wish to include with this state. Full replace of the - // current state_metadata. - map state_metadata = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. State properties user wish to include with this state. Full + // replace of the current state_metadata. + map state_metadata = 2 + [(google.api.field_behavior) = OPTIONAL]; // Required. Fingerprint of the Insight. Provides optimistic locking. string etag = 3 [(google.api.field_behavior) = REQUIRED]; @@ -310,8 +400,15 @@ message ListRecommendationsRequest { // Required. The container resource on which to execute the request. // Acceptable formats: // - // 1. - // "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + // * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` + // + // * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` + // + // * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` + // + // * `folders/[FOLDER_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` + // + // * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` // // LOCATION here refers to GCP Locations: // https://cloud.google.com/about/locations/ @@ -324,20 +421,38 @@ message ListRecommendationsRequest { } ]; - // Optional. The maximum number of results to return from this request. Non-positive - // values are ignored. If not specified, the server will determine the number - // of results to return. + // Optional. The maximum number of results to return from this request. + // Non-positive values are ignored. If not specified, the server will + // determine the number of results to return. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If present, retrieves the next batch of results from the preceding call to - // this method. `page_token` must be the value of `next_page_token` from the - // previous response. The values of other method parameters must be identical - // to those in the previous call. + // Optional. If present, retrieves the next batch of results from the + // preceding call to this method. `page_token` must be the value of + // `next_page_token` from the previous response. The values of other method + // parameters must be identical to those in the previous call. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Filter expression to restrict the recommendations returned. Supported - // filter fields: state_info.state - // Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + // filter fields: + // + // * `state_info.state` + // + // * `recommenderSubtype` + // + // * `priority` + // + // Examples: + // + // * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` + // + // * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` + // + // * `priority = P1 OR priority = P2` + // + // * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` + // + // (These expressions are based on the filter language described at + // https://google.aip.dev/160) string filter = 5; } @@ -421,3 +536,69 @@ message MarkRecommendationFailedRequest { // Required. Fingerprint of the Recommendation. Provides optimistic locking. string etag = 3 [(google.api.field_behavior) = REQUIRED]; } + +// Request for the GetRecommenderConfig` method. +message GetRecommenderConfigRequest { + // Required. Name of the Recommendation Config to get. + // + // Acceptable formats: + // + // * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` + // + // * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` + // + // * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/RecommenderConfig" + } + ]; +} + +// Request for the `UpdateRecommenderConfig` method. +message UpdateRecommenderConfigRequest { + // Required. The RecommenderConfig to update. + RecommenderConfig recommender_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2; + + // If true, validate the request and preview the change, but do not actually + // update it. + bool validate_only = 3; +} + +// Request for the GetInsightTypeConfig` method. +message GetInsightTypeConfigRequest { + // Required. Name of the InsightTypeConfig to get. + // + // Acceptable formats: + // + // * `projects/[PROJECT_NUMBER]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config` + // + // * `projects/[PROJECT_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config` + // + // * `organizations/[ORGANIZATION_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/InsightTypeConfig" + } + ]; +} + +// Request for the `UpdateInsightTypeConfig` method. +message UpdateInsightTypeConfigRequest { + // Required. The InsightTypeConfig to update. + InsightTypeConfig insight_type_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2; + + // If true, validate the request and preview the change, but do not actually + // update it. + bool validate_only = 3; +} diff --git a/google/cloud/recommender/v1beta1/BUILD.bazel b/google/cloud/recommender/v1beta1/BUILD.bazel index efb8075bc..0281a6ed5 100644 --- a/google/cloud/recommender/v1beta1/BUILD.bazel +++ b/google/cloud/recommender/v1beta1/BUILD.bazel @@ -80,6 +80,7 @@ java_gapic_library( test_deps = [ ":recommender_java_grpc", ], + transport = "grpc+rest", deps = [ ":recommender_java_proto", "//google/api:api_java_proto", @@ -89,6 +90,7 @@ java_gapic_library( java_gapic_test( name = "recommender_java_gapic_test_suite", test_classes = [ + "com.google.cloud.recommender.v1beta1.RecommenderClientHttpJsonTest", "com.google.cloud.recommender.v1beta1.RecommenderClientTest", ], runtime_deps = [":recommender_java_gapic_test"], @@ -97,6 +99,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-recommender-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":recommender_java_gapic", ":recommender_java_grpc", @@ -134,6 +138,7 @@ go_gapic_library( importpath = "cloud.google.com/go/recommender/apiv1beta1;recommender", metadata = True, service_yaml = "recommender_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":recommender_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -165,12 +170,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "recommender_py_gapic", srcs = [":recommender_proto"], grpc_service_config = "recommender_grpc_service_config.json", + service_yaml = "recommender_v1beta1.yaml", + transport = "grpc", +) + +py_test( + name = "recommender_py_gapic_test", + srcs = [ + "recommender_py_gapic_pytest.py", + "recommender_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":recommender_py_gapic"], ) # Open Source Packages @@ -279,6 +297,7 @@ ruby_cloud_gapic_library( srcs = [":recommender_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-recommender-v1beta1"], grpc_service_config = "recommender_grpc_service_config.json", + service_yaml = "recommender_v1beta1.yaml", deps = [ ":recommender_ruby_grpc", ":recommender_ruby_proto", @@ -322,6 +341,7 @@ csharp_gapic_library( srcs = [":recommender_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "recommender_grpc_service_config.json", + service_yaml = "recommender_v1beta1.yaml", deps = [ ":recommender_csharp_grpc", ":recommender_csharp_proto", diff --git a/google/cloud/recommender/v1beta1/insight.proto b/google/cloud/recommender/v1beta1/insight.proto index 50c3bbbf5..74beae393 100644 --- a/google/cloud/recommender/v1beta1/insight.proto +++ b/google/cloud/recommender/v1beta1/insight.proto @@ -84,7 +84,7 @@ message Insight { // Reference to an associated recommendation. message RecommendationReference { // Recommendation resource name, e.g. - // `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID]` + // projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID] string recommendation = 1; } diff --git a/google/cloud/recommender/v1beta1/insight_type_config.proto b/google/cloud/recommender/v1beta1/insight_type_config.proto index acb62c0c4..991338586 100644 --- a/google/cloud/recommender/v1beta1/insight_type_config.proto +++ b/google/cloud/recommender/v1beta1/insight_type_config.proto @@ -67,7 +67,7 @@ message InsightTypeConfig { // separated by a slash (/). // Prefix must be a DNS subdomain. // Name must be 63 characters or less, begin and end with alphanumerics, - // with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. + // with dashes (-), underscores (_), dots (.), and alphanumerics between. map annotations = 6; // A user-settable field to provide a human-readable name to be used in user diff --git a/google/cloud/recommender/v1beta1/recommendation.proto b/google/cloud/recommender/v1beta1/recommendation.proto index 719a6d9ec..c65045be3 100644 --- a/google/cloud/recommender/v1beta1/recommendation.proto +++ b/google/cloud/recommender/v1beta1/recommendation.proto @@ -265,6 +265,17 @@ message SecurityProjection { google.protobuf.Struct details = 2; } +// Contains metadata about how much sustainability a recommendation can save or +// incur. +message SustainabilityProjection { + // Carbon Footprint generated in kg of CO2 equivalent. + // Chose kg_c_o2e so that the name renders correctly in camelCase (kgCO2e). + double kg_c_o2e = 1; + + // Duration for which this sustanability applies. + google.protobuf.Duration duration = 2; +} + // Contains the impact a recommendation can have for a given category. message Impact { // The category of the impact. @@ -298,6 +309,9 @@ message Impact { // Use with CategoryType.SECURITY SecurityProjection security_projection = 101; + + // Use with CategoryType.SUSTAINABILITY + SustainabilityProjection sustainability_projection = 102; } } diff --git a/google/cloud/recommender/v1beta1/recommender_config.proto b/google/cloud/recommender/v1beta1/recommender_config.proto index 2f77b8370..36ea3e2a2 100644 --- a/google/cloud/recommender/v1beta1/recommender_config.proto +++ b/google/cloud/recommender/v1beta1/recommender_config.proto @@ -67,7 +67,7 @@ message RecommenderConfig { // separated by a slash (/). // Prefix must be a DNS subdomain. // Name must be 63 characters or less, begin and end with alphanumerics, - // with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. + // with dashes (-), underscores (_), dots (.), and alphanumerics between. map annotations = 6; // A user-settable field to provide a human-readable name to be used in user diff --git a/google/cloud/redis/redis_v1.yaml b/google/cloud/redis/redis_v1.yaml deleted file mode 100644 index baee17fa0..000000000 --- a/google/cloud/redis/redis_v1.yaml +++ /dev/null @@ -1,47 +0,0 @@ -type: google.api.Service -config_version: 3 -name: redis.googleapis.com -title: Google Cloud Memorystore for Redis API - -apis: -- name: google.cloud.redis.v1.CloudRedis - -types: -- name: google.cloud.redis.v1.LocationMetadata -- name: google.cloud.redis.v1.OperationMetadata -- name: google.cloud.redis.v1.ZoneMetadata - -documentation: - summary: Creates and manages Redis instances on the Google Cloud Platform. - -backend: - rules: - - selector: 'google.cloud.redis.v1.CloudRedis.*' - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - -http: - rules: - - selector: google.longrunning.Operations.ListOperations - get: '/v1/{name=projects/*/locations/*}/operations' - - - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=projects/*/locations/*/operations/*}' - - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1/{name=projects/*/locations/*/operations/*}' - - - selector: google.longrunning.Operations.CancelOperation - post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' - -authentication: - rules: - - selector: 'google.cloud.redis.v1.CloudRedis.*' - 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/google/cloud/redis/redis_v1beta1.yaml b/google/cloud/redis/redis_v1beta1.yaml deleted file mode 100644 index b9e101404..000000000 --- a/google/cloud/redis/redis_v1beta1.yaml +++ /dev/null @@ -1,43 +0,0 @@ -type: google.api.Service -config_version: 3 -name: redis.googleapis.com -title: Google Cloud Memorystore for Redis API - -apis: -- name: google.cloud.redis.v1beta1.CloudRedis - -types: -- name: google.cloud.redis.v1beta1.LocationMetadata -- name: google.cloud.redis.v1beta1.ZoneMetadata - -documentation: - summary: Creates and manages Redis instances on the Google Cloud Platform. - -backend: - rules: - - selector: 'google.cloud.redis.v1beta1.CloudRedis.*' - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - -http: - rules: - - selector: google.longrunning.Operations.CancelOperation - post: '/v1beta1/{name=projects/*/locations/*/operations/*}:cancel' - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1beta1/{name=projects/*/locations/*/operations/*}' - - selector: google.longrunning.Operations.GetOperation - get: '/v1beta1/{name=projects/*/locations/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v1beta1/{name=projects/*/locations/*}/operations' - -authentication: - rules: - - selector: 'google.cloud.redis.v1beta1.CloudRedis.*' - 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/google/cloud/redis/v1/BUILD.bazel b/google/cloud/redis/v1/BUILD.bazel index 36e45f38a..f5d751113 100644 --- a/google/cloud/redis/v1/BUILD.bazel +++ b/google/cloud/redis/v1/BUILD.bazel @@ -29,6 +29,9 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/type:dayofweek_proto", + "//google/type:timeofday_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], @@ -74,6 +77,7 @@ java_gapic_library( test_deps = [ ":redis_java_grpc", ], + transport = "grpc+rest", deps = [ ":redis_java_proto", "//google/api:api_java_proto", @@ -83,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "redis_java_gapic_test_suite", test_classes = [ + "com.google.cloud.redis.v1.CloudRedisClientHttpJsonTest", "com.google.cloud.redis.v1.CloudRedisClientTest", ], runtime_deps = [":redis_java_gapic_test"], @@ -91,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-redis-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":redis_java_gapic", ":redis_java_grpc", @@ -118,6 +125,8 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/type:dayofweek_go_proto", + "//google/type:timeofday_go_proto", ], ) @@ -128,11 +137,13 @@ go_gapic_library( importpath = "cloud.google.com/go/redis/apiv1;redis", metadata = True, service_yaml = "redis_v1.yaml", + transport = "grpc+rest", deps = [ ":redis_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", ], ) @@ -161,12 +172,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "redis_py_gapic", srcs = [":redis_proto"], grpc_service_config = "redis_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "redis_py_gapic_test", + srcs = [ + "redis_py_gapic_pytest.py", + "redis_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":redis_py_gapic"], ) # Open Source Packages @@ -326,6 +349,7 @@ csharp_gapic_library( srcs = [":redis_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "redis_grpc_service_config.json", + service_yaml = "redis_v1.yaml", deps = [ ":redis_csharp_grpc", ":redis_csharp_proto", diff --git a/google/cloud/redis/v1/cloud_redis.proto b/google/cloud/redis/v1/cloud_redis.proto index c95f6aa20..f0ba2f43f 100644 --- a/google/cloud/redis/v1/cloud_redis.proto +++ b/google/cloud/redis/v1/cloud_redis.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,8 +21,11 @@ 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/type/dayofweek.proto"; +import "google/type/timeofday.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/redis/v1;redis"; option java_multiple_files = true; @@ -72,6 +75,16 @@ service CloudRedis { option (google.api.method_signature) = "name"; } + // Gets the AUTH string for a Redis instance. If AUTH is not enabled for the + // instance the response will be empty. This information is not included in + // the details returned to GetInstance. + rpc GetInstanceAuthString(GetInstanceAuthStringRequest) returns (InstanceAuthString) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/instances/*}/authString" + }; + option (google.api.method_signature) = "name"; + } + // Creates a Redis instance based on the specified tier and memory size. // // By default, the instance is accessible from the project's @@ -191,6 +204,20 @@ service CloudRedis { metadata_type: "google.cloud.redis.v1.OperationMetadata" }; } + + // Reschedule maintenance for a given instance in a given project and + // location. + rpc RescheduleMaintenance(RescheduleMaintenanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/instances/*}:rescheduleMaintenance" + body: "*" + }; + option (google.api.method_signature) = "name, reschedule_type, schedule_time"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.redis.v1.Instance" + metadata_type: "google.cloud.redis.v1.OperationMetadata" + }; + } } // Node specific properties. @@ -202,7 +229,7 @@ message NodeInfo { string zone = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// A Google Cloud Redis instance. +// A Memorystore for Redis instance. message Instance { option (google.api.resource) = { type: "redis.googleapis.com/Instance" @@ -267,10 +294,22 @@ message Instance { PRIVATE_SERVICE_ACCESS = 2; } + // Available TLS modes. + enum TransitEncryptionMode { + // Not set. + TRANSIT_ENCRYPTION_MODE_UNSPECIFIED = 0; + + // Client to Server traffic encryption enabled with server authentication. + SERVER_AUTHENTICATION = 1; + + // TLS is disabled for the instance. + DISABLED = 2; + } + // Read replicas mode. enum ReadReplicasMode { - // If not set, Memorystore Redis backend will pick the mode based on other fields in - // the request. + // If not set, Memorystore Redis backend will default to + // READ_REPLICAS_DISABLED. READ_REPLICAS_MODE_UNSPECIFIED = 0; // If disabled, read endpoint will not be provided and the instance cannot @@ -278,7 +317,7 @@ message Instance { READ_REPLICAS_DISABLED = 1; // If enabled, read endpoint will be provided and the instance can scale - // up and down the number of replicas. + // up and down the number of replicas. Not valid for basic tier. READ_REPLICAS_ENABLED = 2; } @@ -333,6 +372,13 @@ message Instance { // the default block size is /28. string reserved_ip_range = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Additional IP range for node placement. Required when enabling read + // replicas on an existing instance. For DIRECT_PEERING mode value must be a + // CIDR range of size /28, or "auto". For PRIVATE_SERVICE_ACCESS mode value + // must be the name of an allocated address range associated with the private + // service access connection, or "auto". + string secondary_ip_range = 30 [(google.api.field_behavior) = OPTIONAL]; + // Output only. Hostname or IP address of the exposed Redis endpoint used by // clients to connect to the service. string host = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -400,9 +446,37 @@ message Instance { // If not provided, the connect mode defaults to DIRECT_PEERING. ConnectMode connect_mode = 22 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The number of replica nodes. Valid range for standard tier - // is [1-5] and defaults to 1. Valid value for basic tier is 0 and defaults - // to 0. + // Optional. Indicates whether OSS Redis AUTH is enabled for the instance. If set to + // "true" AUTH is enabled on the instance. Default value is "false" meaning + // AUTH is disabled. + bool auth_enabled = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. List of server CA certificates for the instance. + repeated TlsCertificate server_ca_certs = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The TLS mode of the Redis instance. + // If not provided, TLS is disabled for the instance. + TransitEncryptionMode transit_encryption_mode = 26 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of replica nodes. The valid range for the Standard Tier with + // read replicas enabled is [1-5] and defaults to 2. If read replicas are not + // enabled for a Standard Tier instance, the only valid value is 1 and the + // default is 1. The valid value for basic tier is 0 and the default is also + // 0. + + // Optional. The maintenance policy for the instance. If not provided, + // maintenance events can be performed at any time. + MaintenancePolicy maintenance_policy = 27 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Date and time of upcoming maintenance events which have been + // scheduled. + MaintenanceSchedule maintenance_schedule = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The number of replica nodes. The valid range for the Standard Tier with + // read replicas enabled is [1-5] and defaults to 2. If read replicas are not + // enabled for a Standard Tier instance, the only valid value is 1 and the + // default is 1. The valid value for basic tier is 0 and the default is also + // 0. int32 replica_count = 31 [(google.api.field_behavior) = OPTIONAL]; // Output only. Info per node. @@ -418,10 +492,95 @@ message Instance { // endpoint. Standard tier only. Write requests should target 'port'. int32 read_endpoint_port = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. Read replica mode. + // Optional. Read replicas mode for the instance. Defaults to READ_REPLICAS_DISABLED. ReadReplicasMode read_replicas_mode = 35 [(google.api.field_behavior) = OPTIONAL]; } +// Request for [RescheduleMaintenance][google.cloud.redis.v1.CloudRedis.RescheduleMaintenance]. +message RescheduleMaintenanceRequest { + // Reschedule options. + enum RescheduleType { + // Not set. + RESCHEDULE_TYPE_UNSPECIFIED = 0; + + // If the user wants to schedule the maintenance to happen now. + IMMEDIATE = 1; + + // If the user wants to use the existing maintenance policy to find the + // next available window. + NEXT_AVAILABLE_WINDOW = 2; + + // If the user wants to reschedule the maintenance to a specific time. + SPECIFIC_TIME = 3; + } + + // Required. Redis instance resource name using the form: + // `projects/{project_id}/locations/{location_id}/instances/{instance_id}` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "redis.googleapis.com/Instance" + } + ]; + + // Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well. + RescheduleType reschedule_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Timestamp when the maintenance shall be rescheduled to if + // reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for + // example `2012-11-15T16:19:00.094Z`. + google.protobuf.Timestamp schedule_time = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Maintenance policy for an instance. +message MaintenancePolicy { + // Output only. The time when the policy was created. + google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the policy was last updated. + google.protobuf.Timestamp update_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Description of what this policy is for. Create/Update methods + // return INVALID_ARGUMENT if the length is greater than 512. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maintenance window that is applied to resources covered by this + // policy. Minimum 1. For the current version, the maximum number of + // weekly_window is expected to be one. + repeated WeeklyMaintenanceWindow weekly_maintenance_window = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Time window in which disruptive maintenance updates occur. Non-disruptive +// updates can occur inside or outside this window. +message WeeklyMaintenanceWindow { + // Required. The day of week that maintenance updates occur. + google.type.DayOfWeek day = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Start time of the window in UTC time. + google.type.TimeOfDay start_time = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Duration of the maintenance window. The current window is fixed at 1 hour. + google.protobuf.Duration duration = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Upcoming maintenance schedule. If no maintenance is scheduled, fields are not +// populated. +message MaintenanceSchedule { + // Output only. The start time of any upcoming scheduled maintenance for this instance. + google.protobuf.Timestamp start_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The end time of any upcoming scheduled maintenance for this instance. + google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // If the scheduled maintenance can be rescheduled, default is true. + bool can_reschedule = 3 [deprecated = true]; + + // Output only. The deadline that the maintenance schedule start time can not go beyond, + // including reschedule. + google.protobuf.Timestamp schedule_deadline_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Request for [ListInstances][google.cloud.redis.v1.CloudRedis.ListInstances]. message ListInstancesRequest { // Required. The resource name of the instance location using the form: @@ -484,6 +643,25 @@ message GetInstanceRequest { ]; } +// Request for [GetInstanceAuthString][google.cloud.redis.v1.CloudRedis.GetInstanceAuthString]. +message GetInstanceAuthStringRequest { + // Required. Redis instance resource name using the form: + // `projects/{project_id}/locations/{location_id}/instances/{instance_id}` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "redis.googleapis.com/Instance" + } + ]; +} + +// Instance AUTH string details. +message InstanceAuthString { + // AUTH string set on the instance. + string auth_string = 1; +} + // Request for [CreateInstance][google.cloud.redis.v1.CloudRedis.CreateInstance]. message CreateInstanceRequest { // Required. The resource name of the instance location using the form: @@ -684,3 +862,25 @@ message LocationMetadata { message ZoneMetadata { } + +// TlsCertificate Resource +message TlsCertificate { + // Serial number, as extracted from the certificate. + string serial_number = 1; + + // PEM representation. + string cert = 2; + + // Output only. The time when the certificate was created in [RFC + // 3339](https://tools.ietf.org/html/rfc3339) format, for example + // `2020-05-18T00:00:00.094Z`. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the certificate expires in [RFC + // 3339](https://tools.ietf.org/html/rfc3339) format, for example + // `2020-05-18T00:00:00.094Z`. + google.protobuf.Timestamp expire_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Sha1 Fingerprint of the certificate. + string sha1_fingerprint = 5; +} diff --git a/google/cloud/redis/v1/redis_grpc_service_config.json b/google/cloud/redis/v1/redis_grpc_service_config.json index 77201fd25..1537253c8 100755 --- a/google/cloud/redis/v1/redis_grpc_service_config.json +++ b/google/cloud/redis/v1/redis_grpc_service_config.json @@ -14,6 +14,10 @@ "service": "google.cloud.redis.v1.CloudRedis", "method": "GetInstanceAuthString" }, + { + "service": "google.cloud.redis.v1.CloudRedis", + "method": "RescheduleMaintenance" + }, { "service": "google.cloud.redis.v1.CloudRedis", "method": "CreateInstance" diff --git a/google/cloud/redis/v1beta1/BUILD.bazel b/google/cloud/redis/v1beta1/BUILD.bazel index 5df735a9c..cb8d388c7 100644 --- a/google/cloud/redis/v1beta1/BUILD.bazel +++ b/google/cloud/redis/v1beta1/BUILD.bazel @@ -77,6 +77,7 @@ java_gapic_library( test_deps = [ ":redis_java_grpc", ], + transport = "grpc+rest", deps = [ ":redis_java_proto", "//google/api:api_java_proto", @@ -86,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "redis_java_gapic_test_suite", test_classes = [ + "com.google.cloud.redis.v1beta1.CloudRedisClientHttpJsonTest", "com.google.cloud.redis.v1beta1.CloudRedisClientTest", ], runtime_deps = [":redis_java_gapic_test"], @@ -94,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-redis-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":redis_java_gapic", ":redis_java_grpc", @@ -133,6 +137,7 @@ go_gapic_library( importpath = "cloud.google.com/go/redis/apiv1beta1;redis", metadata = True, service_yaml = "redis_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":redis_go_proto", "//google/longrunning:longrunning_go_proto", @@ -167,12 +172,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "redis_py_gapic", srcs = [":redis_proto"], grpc_service_config = "redis_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "redis_py_gapic_test", + srcs = [ + "redis_py_gapic_pytest.py", + "redis_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":redis_py_gapic"], ) # Open Source Packages @@ -332,6 +349,7 @@ csharp_gapic_library( srcs = [":redis_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "redis_grpc_service_config.json", + service_yaml = "redis_v1beta1.yaml", deps = [ ":redis_csharp_grpc", ":redis_csharp_proto", diff --git a/google/cloud/redis/v1beta1/cloud_redis.proto b/google/cloud/redis/v1beta1/cloud_redis.proto index ee1719d7b..075a06359 100644 --- a/google/cloud/redis/v1beta1/cloud_redis.proto +++ b/google/cloud/redis/v1beta1/cloud_redis.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -229,7 +229,7 @@ message NodeInfo { string zone = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// A Google Cloud Redis instance. +// A Memorystore for Redis instance. message Instance { option (google.api.resource) = { type: "redis.googleapis.com/Instance" @@ -372,6 +372,13 @@ message Instance { // the default block size is /28. string reserved_ip_range = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Additional IP range for node placement. Required when enabling read + // replicas on an existing instance. For DIRECT_PEERING mode value must be a + // CIDR range of size /28, or "auto". For PRIVATE_SERVICE_ACCESS mode value + // must be the name of an allocated address range associated with the private + // service access connection, or "auto". + string secondary_ip_range = 30 [(google.api.field_behavior) = OPTIONAL]; + // Output only. Hostname or IP address of the exposed Redis endpoint used by // clients to connect to the service. string host = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -479,9 +486,65 @@ message Instance { // endpoint. Standard tier only. Write requests should target 'port'. int32 read_endpoint_port = 34 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. Read replica mode. Can only be specified when trying to create the - // instance. + // Optional. Read replicas mode for the instance. Defaults to READ_REPLICAS_DISABLED. ReadReplicasMode read_replicas_mode = 35 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Persistence configuration parameters + PersistenceConfig persistence_config = 37 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration of the persistence functionality. +message PersistenceConfig { + // Available Persistence modes. + enum PersistenceMode { + // Not set. + PERSISTENCE_MODE_UNSPECIFIED = 0; + + // Persistence is disabled for the instance, + // and any existing snapshots are deleted. + DISABLED = 1; + + // RDB based Persistence is enabled. + RDB = 2; + } + + // Available snapshot periods for scheduling. + enum SnapshotPeriod { + // Not set. + SNAPSHOT_PERIOD_UNSPECIFIED = 0; + + // Snapshot every 1 hour. + ONE_HOUR = 3; + + // Snapshot every 6 hours. + SIX_HOURS = 4; + + // Snapshot every 12 hours. + TWELVE_HOURS = 5; + + // Snapshot every 24 hours. + TWENTY_FOUR_HOURS = 6; + } + + // Optional. Controls whether Persistence features are enabled. + // If not provided, the existing value will be used. + PersistenceMode persistence_mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Period between RDB snapshots. Snapshots will be attempted every period + // starting from the provided snapshot start time. For example, a start time + // of 01/01/2033 06:45 and SIX_HOURS snapshot period will do nothing until + // 01/01/2033, and then trigger snapshots every day at 06:45, 12:45, 18:45, + // and 00:45 the next day, and so on. + // If not provided, TWENTY_FOUR_HOURS will be used as default. + SnapshotPeriod rdb_snapshot_period = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The next time that a snapshot attempt is scheduled to occur. + google.protobuf.Timestamp rdb_next_snapshot_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Date and 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 = 5 [(google.api.field_behavior) = OPTIONAL]; } // Request for [RescheduleMaintenance][google.cloud.redis.v1beta1.CloudRedis.RescheduleMaintenance]. diff --git a/google/cloud/resourcemanager/v3/BUILD.bazel b/google/cloud/resourcemanager/v3/BUILD.bazel index 0b7704b51..c3432b447 100644 --- a/google/cloud/resourcemanager/v3/BUILD.bazel +++ b/google/cloud/resourcemanager/v3/BUILD.bazel @@ -82,6 +82,7 @@ java_gapic_library( ":resourcemanager_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":resourcemanager_java_proto", "//google/iam/v1:iam_java_proto", @@ -91,11 +92,17 @@ java_gapic_library( java_gapic_test( name = "resourcemanager_java_gapic_test_suite", test_classes = [ + "com.google.cloud.resourcemanager.v3.FoldersClientHttpJsonTest", "com.google.cloud.resourcemanager.v3.FoldersClientTest", + "com.google.cloud.resourcemanager.v3.OrganizationsClientHttpJsonTest", "com.google.cloud.resourcemanager.v3.OrganizationsClientTest", + "com.google.cloud.resourcemanager.v3.ProjectsClientHttpJsonTest", "com.google.cloud.resourcemanager.v3.ProjectsClientTest", + "com.google.cloud.resourcemanager.v3.TagBindingsClientHttpJsonTest", "com.google.cloud.resourcemanager.v3.TagBindingsClientTest", + "com.google.cloud.resourcemanager.v3.TagKeysClientHttpJsonTest", "com.google.cloud.resourcemanager.v3.TagKeysClientTest", + "com.google.cloud.resourcemanager.v3.TagValuesClientHttpJsonTest", "com.google.cloud.resourcemanager.v3.TagValuesClientTest", ], runtime_deps = [":resourcemanager_java_gapic_test"], @@ -104,6 +111,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-resourcemanager-v3-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":resourcemanager_java_gapic", ":resourcemanager_java_grpc", @@ -142,6 +151,7 @@ go_gapic_library( importpath = "cloud.google.com/go/resourcemanager/apiv3;resourcemanager", metadata = True, service_yaml = "cloudresourcemanager_v3.yaml", + transport = "grpc+rest", deps = [ ":resourcemanager_go_proto", "//google/iam/v1:iam_go_proto", @@ -176,12 +186,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "resourcemanager_py_gapic", srcs = [":resourcemanager_proto"], grpc_service_config = "cloudresourcemanager_v3_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "resourcemanager_py_gapic_test", + srcs = [ + "resourcemanager_py_gapic_pytest.py", + "resourcemanager_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":resourcemanager_py_gapic"], ) # Open Source Packages @@ -341,6 +366,7 @@ csharp_gapic_library( srcs = [":resourcemanager_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudresourcemanager_v3_grpc_service_config.json", + service_yaml = "cloudresourcemanager_v3.yaml", deps = [ ":resourcemanager_csharp_grpc", ":resourcemanager_csharp_proto", diff --git a/google/cloud/resourcemanager/v3/organizations.proto b/google/cloud/resourcemanager/v3/organizations.proto index 0474ca2be..0e99a1552 100644 --- a/google/cloud/resourcemanager/v3/organizations.proto +++ b/google/cloud/resourcemanager/v3/organizations.proto @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; -import "google/longrunning/operations.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.ResourceManager.V3"; diff --git a/google/cloud/resourcesettings/v1/BUILD.bazel b/google/cloud/resourcesettings/v1/BUILD.bazel index 16736e4fb..1deca3bb8 100644 --- a/google/cloud/resourcesettings/v1/BUILD.bazel +++ b/google/cloud/resourcesettings/v1/BUILD.bazel @@ -68,6 +68,7 @@ java_gapic_library( test_deps = [ ":resourcesettings_java_grpc", ], + transport = "grpc+rest", deps = [ ":resourcesettings_java_proto", ], @@ -76,6 +77,7 @@ java_gapic_library( java_gapic_test( name = "resourcesettings_java_gapic_test_suite", test_classes = [ + "com.google.cloud.resourcesettings.v1.ResourceSettingsServiceClientHttpJsonTest", "com.google.cloud.resourcesettings.v1.ResourceSettingsServiceClientTest", ], runtime_deps = [":resourcesettings_java_gapic_test"], @@ -84,6 +86,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-resourcesettings-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":resourcesettings_java_gapic", ":resourcesettings_java_grpc", @@ -120,6 +124,7 @@ go_gapic_library( importpath = "cloud.google.com/go/resourcesettings/apiv1;resourcesettings", metadata = True, service_yaml = "resourcesettings_v1.yaml", + transport = "grpc+rest", deps = [ ":resourcesettings_go_proto", ], @@ -150,6 +155,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -157,6 +163,17 @@ py_gapic_library( srcs = [":resourcesettings_proto"], grpc_service_config = "resourcesettings_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-resource-settings"], + transport = "grpc", +) + +py_test( + name = "resourcesettings_py_gapic_test", + srcs = [ + "resourcesettings_py_gapic_pytest.py", + "resourcesettings_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":resourcesettings_py_gapic"], ) # Open Source Packages @@ -316,6 +333,7 @@ csharp_gapic_library( srcs = [":resourcesettings_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "resourcesettings_grpc_service_config.json", + service_yaml = "resourcesettings_v1.yaml", deps = [ ":resourcesettings_csharp_grpc", ":resourcesettings_csharp_proto", diff --git a/google/cloud/retail/BUILD.bazel b/google/cloud/retail/BUILD.bazel index b0dc5d77f..238192ed0 100644 --- a/google/cloud/retail/BUILD.bazel +++ b/google/cloud/retail/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-retail", "ruby-cloud-env-prefix=RETAIL", - "ruby-cloud-wrapper-of=v2:0.4", + "ruby-cloud-wrapper-of=v2:0.11", "ruby-cloud-product-url=https://cloud.google.com/retail/docs/apis", "ruby-cloud-api-id=retail.googleapis.com", "ruby-cloud-api-shortname=retail", diff --git a/google/cloud/retail/logging/error_log.proto b/google/cloud/retail/logging/error_log.proto index efd628b09..1286ea845 100644 --- a/google/cloud/retail/logging/error_log.proto +++ b/google/cloud/retail/logging/error_log.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.logging; -import "google/api/annotations.proto"; import "google/protobuf/struct.proto"; import "google/rpc/status.proto"; diff --git a/google/cloud/retail/v2/BUILD.bazel b/google/cloud/retail/v2/BUILD.bazel index 850425935..73aaf11dc 100644 --- a/google/cloud/retail/v2/BUILD.bazel +++ b/google/cloud/retail/v2/BUILD.bazel @@ -25,12 +25,17 @@ proto_library( "catalog_service.proto", "common.proto", "completion_service.proto", + "control.proto", + "control_service.proto", "import_config.proto", "prediction_service.proto", "product.proto", "product_service.proto", + "promotion.proto", "purge_config.proto", "search_service.proto", + "serving_config.proto", + "serving_config_service.proto", "user_event.proto", "user_event_service.proto", ], @@ -86,10 +91,13 @@ java_grpc_library( java_gapic_library( name = "retail_java_gapic", srcs = [":retail_proto_with_info"], + gapic_yaml = None, grpc_service_config = "retail_grpc_service_config.json", + service_yaml = "retail_v2.yaml", test_deps = [ ":retail_java_grpc", ], + transport = "grpc+rest", deps = [ ":retail_java_proto", "//google/api:api_java_proto", @@ -99,11 +107,21 @@ java_gapic_library( java_gapic_test( name = "retail_java_gapic_test_suite", test_classes = [ + "com.google.cloud.retail.v2.CatalogServiceClientHttpJsonTest", "com.google.cloud.retail.v2.CatalogServiceClientTest", + "com.google.cloud.retail.v2.ControlServiceClientHttpJsonTest", + "com.google.cloud.retail.v2.ControlServiceClientTest", + "com.google.cloud.retail.v2.CompletionServiceClientHttpJsonTest", "com.google.cloud.retail.v2.CompletionServiceClientTest", + "com.google.cloud.retail.v2.PredictionServiceClientHttpJsonTest", "com.google.cloud.retail.v2.PredictionServiceClientTest", + "com.google.cloud.retail.v2.ProductServiceClientHttpJsonTest", "com.google.cloud.retail.v2.ProductServiceClientTest", + "com.google.cloud.retail.v2.SearchServiceClientHttpJsonTest", "com.google.cloud.retail.v2.SearchServiceClientTest", + "com.google.cloud.retail.v2.ServingConfigServiceClientHttpJsonTest", + "com.google.cloud.retail.v2.ServingConfigServiceClientTest", + "com.google.cloud.retail.v2.UserEventServiceClientHttpJsonTest", "com.google.cloud.retail.v2.UserEventServiceClientTest", ], runtime_deps = [":retail_java_gapic_test"], @@ -112,6 +130,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-retail-v2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":retail_java_gapic", ":retail_java_grpc", @@ -188,12 +208,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "retail_py_gapic", srcs = [":retail_proto"], grpc_service_config = "retail_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "retail_py_gapic_test", + srcs = [ + "retail_py_gapic_pytest.py", + "retail_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":retail_py_gapic"], ) # Open Source Packages @@ -265,6 +297,7 @@ nodejs_gapic_library( package = "google.cloud.retail.v2", service_yaml = "retail_v2.yaml", deps = [], + mixins = "google.longrunning.Operations;google.cloud.location.Locations", ) nodejs_gapic_assembly_pkg( @@ -353,6 +386,7 @@ csharp_gapic_library( srcs = [":retail_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "retail_grpc_service_config.json", + service_yaml = "retail_v2.yaml", deps = [ ":retail_csharp_grpc", ":retail_csharp_proto", diff --git a/google/cloud/retail/v2/catalog.proto b/google/cloud/retail/v2/catalog.proto index e94058075..0e1b85f6a 100644 --- a/google/cloud/retail/v2/catalog.proto +++ b/google/cloud/retail/v2/catalog.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2/common.proto"; @@ -43,10 +42,10 @@ message ProductLevelConfig { // default to // [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if // unset. - // * `variant`: You can only ingest - // [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2.Product]s. - // This means + // * `variant` (incompatible with Retail Search): You can only + // ingest + // [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + // [Product][google.cloud.retail.v2.Product]s. This means // [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] // cannot be empty. // @@ -57,8 +56,8 @@ message ProductLevelConfig { // [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] // is `itemGroupId`, an INVALID_ARGUMENT error is returned. // - // See [Using product - // levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + // See [Product + // levels](https://cloud.google.com/retail/docs/catalog#product-levels) // for more details. string ingestion_product_type = 1; @@ -79,12 +78,250 @@ message ProductLevelConfig { // [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] // is `variant`, an INVALID_ARGUMENT error is returned. // - // See [Using product - // levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + // See [Product + // levels](https://cloud.google.com/retail/docs/catalog#product-levels) // for more details. string merchant_center_product_id_field = 2; } +// Catalog level attribute config for an attribute. For example, if customers +// want to enable/disable facet for a specific attribute. +message CatalogAttribute { + // The type of an attribute. + enum AttributeType { + // The type of the attribute is unknown. + // + // Used when type cannot be derived from attribute that is not + // [in_use][google.cloud.retail.v2.CatalogAttribute.in_use]. + UNKNOWN = 0; + + // Textual attribute. + TEXTUAL = 1; + + // Numerical attribute. + NUMERICAL = 2; + } + + // The status of the indexable option of a catalog attribute. + enum IndexableOption { + // Value used when unset. Defaults to + // [INDEXABLE_ENABLED][google.cloud.retail.v2.CatalogAttribute.IndexableOption.INDEXABLE_ENABLED]. + INDEXABLE_OPTION_UNSPECIFIED = 0; + + // Indexable option enabled for an attribute. + INDEXABLE_ENABLED = 1; + + // Indexable option disabled for an attribute. + INDEXABLE_DISABLED = 2; + } + + // The status of the dynamic facetable option of a catalog attribute. + enum DynamicFacetableOption { + // Value used when unset. Defaults to + // [DYNAMIC_FACETABLE_ENABLED][google.cloud.retail.v2.CatalogAttribute.DynamicFacetableOption.DYNAMIC_FACETABLE_ENABLED]. + DYNAMIC_FACETABLE_OPTION_UNSPECIFIED = 0; + + // Dynamic facetable option enabled for an attribute. + DYNAMIC_FACETABLE_ENABLED = 1; + + // Dynamic facetable option disabled for an attribute. + DYNAMIC_FACETABLE_DISABLED = 2; + } + + // The status of the searchable option of a catalog attribute. + enum SearchableOption { + // Value used when unset. Defaults to + // [SEARCHABLE_DISABLED][google.cloud.retail.v2.CatalogAttribute.SearchableOption.SEARCHABLE_DISABLED]. + SEARCHABLE_OPTION_UNSPECIFIED = 0; + + // Searchable option enabled for an attribute. + SEARCHABLE_ENABLED = 1; + + // Searchable option disabled for an attribute. + SEARCHABLE_DISABLED = 2; + } + + // Required. Attribute name. + // For example: `color`, `brands`, `attributes.custom_attribute`, such as + // `attributes.xyz`. + // To be indexable, the attribute name can contain only alpha-numeric + // characters and underscores. For example, an attribute named + // `attributes.abc_xyz` can be indexed, but an attribute named + // `attributes.abc-xyz` cannot be indexed. + string key = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Indicates whether this attribute has been used by any + // products. `True` if at least one [Product][google.cloud.retail.v2.Product] + // is using this attribute in + // [Product.attributes][google.cloud.retail.v2.Product.attributes]. Otherwise, + // this field is `False`. + // + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] can be + // pre-loaded by using + // [CatalogService.AddCatalogAttribute][google.cloud.retail.v2.CatalogService.AddCatalogAttribute], + // [CatalogService.ImportCatalogAttributes][], or + // [CatalogService.UpdateAttributesConfig][google.cloud.retail.v2.CatalogService.UpdateAttributesConfig] + // APIs. This field is `False` for pre-loaded + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute]s. + // + // Only pre-loaded + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute]s that are + // neither in use by products nor predefined can be deleted. + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute]s that are + // either in use by products or are predefined cannot be deleted; however, + // their configuration properties will reset to default values upon removal + // request. + // + // After catalog changes, it takes about 10 minutes for this field to update. + bool in_use = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of this attribute. This is derived from the attribute + // in [Product.attributes][google.cloud.retail.v2.Product.attributes]. + AttributeType type = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // When + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values + // are indexed so that it can be filtered, faceted, or boosted in + // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. + IndexableOption indexable_option = 5; + + // If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic + // facet. Could only be DYNAMIC_FACETABLE_DISABLED if + // [CatalogAttribute.indexable_option][google.cloud.retail.v2.CatalogAttribute.indexable_option] + // is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. + DynamicFacetableOption dynamic_facetable_option = 6; + + // When + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values + // are searchable by text queries in + // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. + // + // If SEARCHABLE_ENABLED but attribute type is numerical, attribute values + // will not be searchable by text queries in + // [SearchService.Search][google.cloud.retail.v2.SearchService.Search], as + // there are no text values associated to numerical attributes. + SearchableOption searchable_option = 7; +} + +// Catalog level attribute config. +message AttributesConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/AttributesConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/attributesConfig" + }; + + // Required. Immutable. The fully qualified resource name of the attribute + // config. Format: `projects/*/locations/*/catalogs/*/attributesConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Enable attribute(s) config at catalog level. + // For example, indexable, dynamic_facetable, or searchable for each + // attribute. + // + // The key is catalog attribute's name. + // For example: `color`, `brands`, `attributes.custom_attribute`, such as + // `attributes.xyz`. + // + // The maximum number of catalog attributes allowed in a request is 1000. + map catalog_attributes = 2; + + // Output only. The + // [AttributeConfigLevel][google.cloud.retail.v2.AttributeConfigLevel] used + // for this catalog. + AttributeConfigLevel attribute_config_level = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Catalog level autocomplete config for customers to customize autocomplete +// feature's settings. +message CompletionConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/CompletionConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/completionConfig" + }; + + // Required. Immutable. Fully qualified name + // `projects/*/locations/*/catalogs/*/completionConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Specifies the matching order for autocomplete suggestions, e.g., a query + // consisting of 'sh' with 'out-of-order' specified would suggest "women's + // shoes", whereas a query of 'red s' with 'exact-prefix' specified would + // suggest "red shoes". Currently supported values: + // + // * 'out-of-order' + // * 'exact-prefix' + // + // Default value: 'exact-prefix'. + string matching_order = 2; + + // The maximum number of autocomplete suggestions returned per term. Default + // value is 20. If left unset or set to 0, then will fallback to default + // value. + // + // Value range is 1 to 20. + int32 max_suggestions = 3; + + // The minimum number of characters needed to be typed in order to get + // suggestions. Default value is 2. If left unset or set to 0, then will + // fallback to default value. + // + // Value range is 1 to 20. + int32 min_prefix_length = 4; + + // If set to true, the auto learning function is enabled. Auto learning uses + // user data to generate suggestions using ML techniques. Default value is + // false. Only after enabling auto learning can users use `cloud-retail` + // data in + // [CompleteQueryRequest][google.cloud.retail.v2.CompleteQueryRequest]. + bool auto_learning = 11; + + // Output only. The source data for the latest import of the autocomplete + // suggestion phrases. + CompletionDataInputConfig suggestions_input_config = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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. + string last_suggestions_import_operation = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The source data for the latest import of the autocomplete + // denylist phrases. + CompletionDataInputConfig denylist_input_config = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the LRO corresponding to the latest denylist import. + // + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to + // retrieve the latest state of the Long Running Operation. + string last_denylist_import_operation = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The source data for the latest import of the autocomplete + // allowlist phrases. + CompletionDataInputConfig allowlist_input_config = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the LRO corresponding to the latest allowlist import. + // + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to + // retrieve the latest state of the Long Running Operation. + string last_allowlist_import_operation = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // The catalog configuration. message Catalog { option (google.api.resource) = { diff --git a/google/cloud/retail/v2/catalog_service.proto b/google/cloud/retail/v2/catalog_service.proto index 41523ac80..4d667d1f9 100644 --- a/google/cloud/retail/v2/catalog_service.proto +++ b/google/cloud/retail/v2/catalog_service.proto @@ -91,10 +91,6 @@ service CatalogService { // (if branch is not explicitly set). // * UserEventService will only join events with products from branch // {newBranch}. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. rpc SetDefaultBranch(SetDefaultBranchRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -107,10 +103,6 @@ service CatalogService { // Get which branch is currently default branch set by // [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch] // method under a specified parent catalog. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. rpc GetDefaultBranch(GetDefaultBranchRequest) returns (GetDefaultBranchResponse) { option (google.api.http) = { @@ -118,6 +110,95 @@ service CatalogService { }; option (google.api.method_signature) = "catalog"; } + + // Gets a [CompletionConfig][google.cloud.retail.v2.CompletionConfig]. + rpc GetCompletionConfig(GetCompletionConfigRequest) + returns (CompletionConfig) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/catalogs/*/completionConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the [CompletionConfig][google.cloud.retail.v2.CompletionConfig]s. + rpc UpdateCompletionConfig(UpdateCompletionConfigRequest) + returns (CompletionConfig) { + option (google.api.http) = { + patch: "/v2/{completion_config.name=projects/*/locations/*/catalogs/*/completionConfig}" + body: "completion_config" + }; + option (google.api.method_signature) = "completion_config,update_mask"; + } + + // Gets an [AttributesConfig][google.cloud.retail.v2.AttributesConfig]. + rpc GetAttributesConfig(GetAttributesConfigRequest) + returns (AttributesConfig) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/catalogs/*/attributesConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the [AttributesConfig][google.cloud.retail.v2.AttributesConfig]. + // + // The catalog attributes in the request will be updated in the catalog, or + // inserted if they do not exist. Existing catalog attributes not included in + // the request will remain unchanged. Attributes that are assigned to + // products, but do not exist at the catalog level, are always included in the + // response. The product attribute is assigned default values for missing + // catalog attribute fields, e.g., searchable and dynamic facetable options. + rpc UpdateAttributesConfig(UpdateAttributesConfigRequest) + returns (AttributesConfig) { + option (google.api.http) = { + patch: "/v2/{attributes_config.name=projects/*/locations/*/catalogs/*/attributesConfig}" + body: "attributes_config" + }; + option (google.api.method_signature) = "attributes_config,update_mask"; + } + + // Adds the specified + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] to the + // [AttributesConfig][google.cloud.retail.v2.AttributesConfig]. + // + // If the [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] to add + // already exists, an ALREADY_EXISTS error is returned. + rpc AddCatalogAttribute(AddCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:addCatalogAttribute" + body: "*" + }; + } + + // Removes the specified + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] from the + // [AttributesConfig][google.cloud.retail.v2.AttributesConfig]. + // + // If the [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] to + // remove does not exist, a NOT_FOUND error is returned. + rpc RemoveCatalogAttribute(RemoveCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:removeCatalogAttribute" + body: "*" + }; + } + + // Replaces the specified + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] in the + // [AttributesConfig][google.cloud.retail.v2.AttributesConfig] by updating the + // catalog attribute with the same + // [CatalogAttribute.key][google.cloud.retail.v2.CatalogAttribute.key]. + // + // If the [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] to + // replace does not exist, a NOT_FOUND error is returned. + rpc ReplaceCatalogAttribute(ReplaceCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:replaceCatalogAttribute" + body: "*" + }; + } } // Request for @@ -205,6 +286,10 @@ message SetDefaultBranchRequest { // // This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT // error is returned. + // + // If there are no sufficient active products in the targeted branch and + // [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + // FAILED_PRECONDITION error is returned. string branch_id = 2 [ (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } ]; @@ -216,6 +301,11 @@ message SetDefaultBranchRequest { // This field must be a UTF-8 encoded string with a length limit of 1,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string note = 3; + + // If set to true, it permits switching to a branch with + // [branch_id][google.cloud.retail.v2.SetDefaultBranchRequest.branch_id] even + // if it has no sufficient active products. + bool force = 4; } // Request message to show which branch is currently the default branch. @@ -243,3 +333,144 @@ message GetDefaultBranchResponse { // field, when this branch was set as default. string note = 3; } + +// Request for +// [CatalogService.GetCompletionConfig][google.cloud.retail.v2.CatalogService.GetCompletionConfig] +// method. +message GetCompletionConfigRequest { + // Required. Full CompletionConfig resource name. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/completionConfig + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/CompletionConfig" + } + ]; +} + +// Request for +// [CatalogService.UpdateCompletionConfig][google.cloud.retail.v2.CatalogService.UpdateCompletionConfig] +// method. +message UpdateCompletionConfigRequest { + // Required. The [CompletionConfig][google.cloud.retail.v2.CompletionConfig] + // to update. + // + // If the caller does not have permission to update the + // [CompletionConfig][google.cloud.retail.v2.CompletionConfig], then a + // PERMISSION_DENIED error is returned. + // + // If the [CompletionConfig][google.cloud.retail.v2.CompletionConfig] to + // update does not exist, a NOT_FOUND error is returned. + CompletionConfig completion_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [CompletionConfig][google.cloud.retail.v2.CompletionConfig] to update. The + // following are the only supported fields: + // + // * [CompletionConfig.matching_order][google.cloud.retail.v2.CompletionConfig.matching_order] + // * [CompletionConfig.max_suggestions][google.cloud.retail.v2.CompletionConfig.max_suggestions] + // * [CompletionConfig.min_prefix_length][google.cloud.retail.v2.CompletionConfig.min_prefix_length] + // * [CompletionConfig.auto_learning][google.cloud.retail.v2.CompletionConfig.auto_learning] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for +// [CatalogService.GetAttributesConfig][google.cloud.retail.v2.CatalogService.GetAttributesConfig] +// method. +message GetAttributesConfigRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; +} + +// Request for +// [CatalogService.UpdateAttributesConfig][google.cloud.retail.v2.CatalogService.UpdateAttributesConfig] +// method. +message UpdateAttributesConfigRequest { + // Required. The [AttributesConfig][google.cloud.retail.v2.AttributesConfig] + // to update. + AttributesConfig attributes_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [AttributesConfig][google.cloud.retail.v2.AttributesConfig] to update. The + // following is the only supported field: + // + // * [AttributesConfig.catalog_attributes][google.cloud.retail.v2.AttributesConfig.catalog_attributes] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for +// [CatalogService.AddCatalogAttribute][google.cloud.retail.v2.CatalogService.AddCatalogAttribute] +// method. +message AddCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] + // to add. + CatalogAttribute catalog_attribute = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for +// [CatalogService.RemoveCatalogAttribute][google.cloud.retail.v2.CatalogService.RemoveCatalogAttribute] +// method. +message RemoveCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The attribute name key of the + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] to remove. + string key = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for +// [CatalogService.ReplaceCatalogAttribute][google.cloud.retail.v2.CatalogService.ReplaceCatalogAttribute] +// method. +message ReplaceCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The updated + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute]. + CatalogAttribute catalog_attribute = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] to update. The + // following are NOT supported: + // + // * [CatalogAttribute.key][google.cloud.retail.v2.CatalogAttribute.key] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 3; +} diff --git a/google/cloud/retail/v2/common.proto b/google/cloud/retail/v2/common.proto index 440a6af39..9864ee7d6 100644 --- a/google/cloud/retail/v2/common.proto +++ b/google/cloud/retail/v2/common.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; @@ -29,6 +28,283 @@ option objc_class_prefix = "RETAIL"; option php_namespace = "Google\\Cloud\\Retail\\V2"; option ruby_package = "Google::Cloud::Retail::V2"; +// At which level we offer configuration for attributes. +enum AttributeConfigLevel { + // Value used when unset. In this case, server behavior defaults to + // [CATALOG_LEVEL_ATTRIBUTE_CONFIG][google.cloud.retail.v2.AttributeConfigLevel.CATALOG_LEVEL_ATTRIBUTE_CONFIG]. + ATTRIBUTE_CONFIG_LEVEL_UNSPECIFIED = 0; + + // At this level, we honor the attribute configurations set in + // [Product.attributes][google.cloud.retail.v2.Product.attributes]. + PRODUCT_LEVEL_ATTRIBUTE_CONFIG = 1; + + // At this level, we honor the attribute configurations set in + // [CatalogConfig.attribute_configs][]. + CATALOG_LEVEL_ATTRIBUTE_CONFIG = 2; +} + +// The type of solution. +enum SolutionType { + // Default value. + SOLUTION_TYPE_UNSPECIFIED = 0; + + // Used for Recommendations AI. + SOLUTION_TYPE_RECOMMENDATION = 1; + + // Used for Retail Search. + SOLUTION_TYPE_SEARCH = 2; +} + +// The use case of Cloud Retail Search. +enum SearchSolutionUseCase { + // The value when it's unspecified. In this case, server behavior defaults to + // [SEARCH_SOLUTION_USE_CASE_SEARCH][google.cloud.retail.v2.SearchSolutionUseCase.SEARCH_SOLUTION_USE_CASE_SEARCH]. + SEARCH_SOLUTION_USE_CASE_UNSPECIFIED = 0; + + // Search use case. Expects the traffic has a non-empty + // [query][google.cloud.retail.v2.SearchRequest.query]. + SEARCH_SOLUTION_USE_CASE_SEARCH = 1; + + // Browse use case. Expects the traffic has an empty + // [query][google.cloud.retail.v2.SearchRequest.query]. + SEARCH_SOLUTION_USE_CASE_BROWSE = 2; +} + +// Metadata that is used to define a condition that triggers an action. +// A valid condition must specify at least one of 'query_terms' or +// 'products_filter'. If multiple fields are specified, the condition is met if +// all the fields are satisfied e.g. if a set of query terms and product_filter +// are set, then only items matching the product_filter for requests with a +// query matching the query terms wil get boosted. +message Condition { + // Query terms that we want to match on. + message QueryTerm { + // The value of the term to match on. + // Value cannot be empty. + // Value can have at most 3 terms if specified as a partial match. Each + // space separated string is considered as one term. + // Example) "a b c" is 3 terms and allowed, " a b c d" is 4 terms and not + // allowed for partial match. + string value = 1; + + // Whether this is supposed to be a full or partial match. + bool full_match = 2; + } + + // Used for time-dependent conditions. + // Example: Want to have rule applied for week long sale. + message TimeRange { + // Start of time range. Range is inclusive. + google.protobuf.Timestamp start_time = 1; + + // End of time range. Range is inclusive. + google.protobuf.Timestamp end_time = 2; + } + + // A list (up to 10 entries) of terms to match the query on. If not + // specified, match all queries. + // If many query terms are specified, the condition + // is matched if any of the terms is a match (i.e. using the OR operator). + repeated QueryTerm query_terms = 1; + + // Range of time(s) specifying when Condition is active. + // Condition true if any time range matches. + repeated TimeRange active_time_range = 3; +} + +// A rule is a condition-action pair +// * A condition defines when a rule is to be triggered. +// * An action specifies what occurs on that trigger. +// Currently rules only work for [controls][google.cloud.retail.v2.Control] with +// [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2.SolutionType.SOLUTION_TYPE_SEARCH]. +message Rule { + // A boost action to apply to results matching condition specified above. + message BoostAction { + // Strength of the condition boost, which must be in [-1, 1]. Negative + // boost means demotion. Default is 0.0. + // + // Setting to 1.0 gives the item a big promotion. However, it does not + // necessarily mean that the boosted item will be the top result at all + // times, nor that other items 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 items. + // + // Setting to -1.0 gives the item a big demotion. However, results that + // are deeply relevant might still be shown. The item will have 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. + float boost = 1; + + // The filter can have a max size of 5000 characters. + // An expression which specifies which products to apply an action to. + // The syntax and supported fields are the same as a filter expression. See + // [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter] for + // detail syntax and limitations. + // + // Examples: + // + // * To boost products with product ID "product_1" or "product_2", and + // color + // "Red" or "Blue":
    + // *(id: ANY("product_1", "product_2"))
    * + // *AND
    * + // *(colorFamilies: ANY("Red", "Blue"))
    * + string products_filter = 2; + } + + // * 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. + // * 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 { + // A filter to apply on the matching condition results. Supported features: + // + // * [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 + // more + // details at the Retail Search + // [user guide](/retail/search/docs/filter-and-order#filter). + // * To filter products with product ID "product_1" or "product_2", and + // color + // "Red" or "Blue":
    + // *(id: ANY("product_1", "product_2"))
    * + // *AND
    * + // *(colorFamilies: ANY("Red", "Blue"))
    * + string filter = 1; + } + + // Redirects a shopper to a specific page. + // + // * Rule Condition: + // - Must specify + // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms]. + // * Action Input: Request Query + // * Action Result: Redirects shopper to provided uri. + message RedirectAction { + // URL must have length equal or less than 2000 characters. + string redirect_uri = 1; + } + + // Creates a set of terms that will be treated as synonyms of each other. + // Example: synonyms of "sneakers" and "shoes". + // * "sneakers" will use a synonym of "shoes". + // * "shoes" will use a synonym of "sneakers". + message TwowaySynonymsAction { + // Defines a set of synonyms. + // Can specify up to 100 synonyms. + // Must specify at least 2 synonyms. + repeated string synonyms = 1; + } + + // Maps a set of terms to a set of synonyms. + // Set of synonyms will be treated as synonyms of each query term only. + // `query_terms` will not be treated as synonyms of each other. + // Example: "sneakers" will use a synonym of "shoes". + // "shoes" will not use a synonym of "sneakers". + message OnewaySynonymsAction { + // Terms from the search query. + // Will treat synonyms as their synonyms. + // Not themselves synonyms of the synonyms. + // Can specify up to 100 terms. + repeated string query_terms = 3; + + // Defines a set of synonyms. + // Cannot contain duplicates. + // Can specify up to 100 synonyms. + repeated string synonyms = 4; + + // Will be [deprecated = true] post migration; + repeated string oneway_terms = 2; + } + + // Prevents `query_term` from being associated with specified terms during + // search. + // Example: Don't associate "gShoe" and "cheap". + message DoNotAssociateAction { + // Terms from the search query. + // Will not consider do_not_associate_terms for search if in search query. + // Can specify up to 100 terms. + repeated string query_terms = 2; + + // Cannot contain duplicates or the query term. + // Can specify up to 100 terms. + repeated string do_not_associate_terms = 3; + + // Will be [deprecated = true] post migration; + repeated string terms = 1; + } + + // Replaces a term in the query. Multiple replacement candidates can be + // specified. All `query_terms` will be replaced with the replacement term. + // Example: Replace "gShoe" with "google shoe". + message ReplacementAction { + // Terms from the search query. + // Will be replaced by replacement term. + // Can specify up to 100 terms. + repeated string query_terms = 2; + + // Term that will be used for replacement. + string replacement_term = 3; + + // Will be [deprecated = true] post migration; + string term = 1; + } + + // Prevents a term in the query from being used in search. + // Example: Don't search for "shoddy". + message IgnoreAction { + // Terms to ignore in the search query. + repeated string ignore_terms = 1; + } + + // An action must be provided. + oneof action { + // A boost action. + BoostAction boost_action = 2; + + // Redirects a shopper to a specific page. + RedirectAction redirect_action = 3; + + // Treats specific term as a synonym with a group of terms. + // Group of terms will not be treated as synonyms with the specific term. + OnewaySynonymsAction oneway_synonyms_action = 6; + + // Prevents term from being associated with other terms. + DoNotAssociateAction do_not_associate_action = 7; + + // Replaces specific terms in the query. + ReplacementAction replacement_action = 8; + + // Ignores specific terms from query during search. + IgnoreAction ignore_action = 9; + + // Filters results. + FilterAction filter_action = 10; + + // Treats a set of terms as synonyms of one another. + TwowaySynonymsAction twoway_synonyms_action = 11; + } + + // Required. The condition that triggers the rule. + // If the condition is empty, the rule will always apply. + Condition condition = 1 [(google.api.field_behavior) = REQUIRED]; +} + // An intended audience of the [Product][google.cloud.retail.v2.Product] for // whom it's sold. message Audience { @@ -100,9 +376,8 @@ message CustomAttribute { // The textual values of this custom attribute. For example, `["yellow", // "green"]` when the key is "color". // - // At most 400 values are allowed. Empty values are not allowed. Each value - // must be a UTF-8 encoded string with a length limit of 256 characters. - // Otherwise, an INVALID_ARGUMENT error is returned. + // Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is + // returned. // // Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or // [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set. @@ -112,14 +387,17 @@ message CustomAttribute { // The numerical values of this custom attribute. For example, `[2.3, 15.4]` // when the key is "lengths_cm". // - // At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is - // returned. - // // Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or // [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set. // Otherwise, an INVALID_ARGUMENT error is returned. repeated double numbers = 2; + // This field is normally ignored unless + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2.AttributesConfig.attribute_config_level] + // of the [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated + // 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level + // attribute configuration, see [Configuration + // modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). // If true, custom attribute values are searchable by text queries in // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. // @@ -127,9 +405,15 @@ message CustomAttribute { // // Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is // set. Otherwise, a INVALID_ARGUMENT error is returned. - optional bool searchable = 3; - - // If true, custom attribute values are indexed, so that it can be filtered, + optional bool searchable = 3 [deprecated = true]; + + // This field is normally ignored unless + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2.AttributesConfig.attribute_config_level] + // of the [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated + // 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level + // attribute configuration, see [Configuration + // modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). + // If true, custom attribute values are indexed, so that they can be filtered, // faceted or boosted in // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. // @@ -140,7 +424,7 @@ message CustomAttribute { // and // [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] // for more details. - optional bool indexable = 4; + optional bool indexable = 4 [deprecated = true]; } // Fulfillment information, such as the store IDs for in-store pickup or region @@ -179,7 +463,10 @@ message FulfillmentInfo { repeated string place_ids = 2; } -// [Product][google.cloud.retail.v2.Product] thumbnail/detail image. +// [Product][google.cloud.retail.v2.Product] image. Recommendations AI and +// Retail Search do not use product images to improve prediction and search +// results. However, product images can be returned in results, and are shown in +// prediction or search previews in the console. message Image { // Required. URI of the image. // @@ -209,9 +496,8 @@ message Interval { // The lower bound of the interval. If neither of the min fields are set, then // the lower bound is negative infinity. // - // This field must be not larger than - // [max][google.cloud.retail.v2.Interval.max]. Otherwise, an INVALID_ARGUMENT - // error is returned. + // This field must not be larger than max. + // Otherwise, an INVALID_ARGUMENT error is returned. oneof min { // Inclusive lower bound. double minimum = 1; @@ -223,9 +509,8 @@ message Interval { // The upper bound of the interval. If neither of the max fields are set, then // the upper bound is positive infinity. // - // This field must be not smaller than - // [min][google.cloud.retail.v2.Interval.min]. Otherwise, an INVALID_ARGUMENT - // error is returned. + // This field must be not smaller than min. + // Otherwise, an INVALID_ARGUMENT error is returned. oneof max { // Inclusive upper bound. double maximum = 3; @@ -275,11 +560,14 @@ message PriceInfo { // // Google Merchant Center property // [price](https://support.google.com/merchants/answer/6324371). Schema.org - // property [Offer.priceSpecification](https://schema.org/priceSpecification). + // property [Offer.price](https://schema.org/price). float price = 2; // Price of the product without any discount. If zero, by default set to be - // the [price][google.cloud.retail.v2.PriceInfo.price]. + // the [price][google.cloud.retail.v2.PriceInfo.price]. If set, + // [original_price][google.cloud.retail.v2.PriceInfo.original_price] should be + // greater than or equal to [price][google.cloud.retail.v2.PriceInfo.price], + // otherwise an INVALID_ARGUMENT error is thrown. float original_price = 3; // The costs associated with the sale of a particular product. Used for gross @@ -363,21 +651,30 @@ message Rating { // Information of an end user. message UserInfo { // Highly recommended for logged-in users. Unique identifier for logged-in - // user, such as a user name. + // user, such as a user name. Don't set for anonymous users. + // + // Always use a hashed value for this ID. + // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded + // model quality. // // 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_id = 1; - // The end user's IP address. Required for getting - // [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results]. - // This field is used to extract location information for personalization. + // The end user's IP address. This field is used to extract location + // information for personalization. // // This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 // address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an // INVALID_ARGUMENT error is returned. // - // This should not be set when using the JavaScript tag in + // This should not be set when: + // + // * setting + // [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info]. + // * using the JavaScript tag in // [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent] // or if // [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request] @@ -410,16 +707,60 @@ message UserInfo { bool direct_user_request = 4; } -// Promotion information. -message Promotion { - // ID of the promotion. For example, "free gift". - // - // The value value must be a UTF-8 encoded string with a length limit of 128 - // characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, - // id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is - // returned. +// The inventory information at a place (e.g. a store) identified +// by a place ID. +message LocalInventory { + // The place ID for the current set of inventory information. + string place_id = 1; + + // Product price and cost information. // // Google Merchant Center property - // [promotion](https://support.google.com/merchants/answer/7050148). - string promotion_id = 1; + // [price](https://support.google.com/merchants/answer/6324371). + PriceInfo price_info = 2; + + // Additional local inventory attributes, for example, store name, promotion + // tags, etc. + // + // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT + // error is returned: + // + // * At most 30 attributes are allowed. + // * The key must be a UTF-8 encoded string with a length limit of 32 + // characters. + // * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, + // key0LikeThis or KEY_1_LIKE_THIS. + // * The attribute values must be of the same type (text or number). + // * Only 1 value is allowed for each attribute. + // * For text values, the length limit is 256 UTF-8 characters. + // * The attribute does not support search. The `searchable` field should be + // unset or set to false. + // * The max summed total bytes of custom attribute keys and values per + // product is 5MiB. + map attributes = 3; + + // Input only. Supported fulfillment types. Valid fulfillment type values + // include commonly used types (such as pickup in store and same day + // delivery), and custom types. Customers have to map custom types to their + // display names before rendering UI. + // + // Supported values: + // + // * "pickup-in-store" + // * "ship-to-store" + // * "same-day-delivery" + // * "next-day-delivery" + // * "custom-type-1" + // * "custom-type-2" + // * "custom-type-3" + // * "custom-type-4" + // * "custom-type-5" + // + // If this field is set to an invalid value other than these, an + // INVALID_ARGUMENT error is returned. + // + // All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is + // returned. + repeated string fulfillment_types = 4 + [(google.api.field_behavior) = INPUT_ONLY]; } diff --git a/google/cloud/retail/v2/completion_service.proto b/google/cloud/retail/v2/completion_service.proto index f17db9fa3..af0fac87e 100644 --- a/google/cloud/retail/v2/completion_service.proto +++ b/google/cloud/retail/v2/completion_service.proto @@ -36,8 +36,7 @@ option ruby_package = "Google::Cloud::Retail::V2"; // Auto-completion service for retail. // // This feature is only available for users who have Retail Search enabled. -// Please submit a form [here](https://cloud.google.com/contact) to contact -// cloud sales if you are interested in using Retail Search. +// Please enable Retail Search on Cloud Console before using this feature. service CompletionService { option (google.api.default_host) = "retail.googleapis.com"; option (google.api.oauth_scopes) = @@ -46,8 +45,7 @@ service CompletionService { // Completes the specified prefix with keyword suggestions. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc CompleteQuery(CompleteQueryRequest) returns (CompleteQueryResponse) { option (google.api.http) = { get: "/v2/{catalog=projects/*/locations/*/catalogs/*}:completeQuery" @@ -56,11 +54,13 @@ service CompletionService { // Bulk import of processed completion dataset. // - // Request processing may be synchronous. Partial updating is not supported. + // Request processing is asynchronous. Partial updating is not supported. + // + // The operation is successfully finished only after the imported suggestions + // are indexed successfully and ready for serving. The process takes hours. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc ImportCompletionData(ImportCompletionDataRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -90,22 +90,24 @@ message CompleteQueryRequest { // The maximum number of allowed characters is 255. string query = 2 [(google.api.field_behavior) = REQUIRED]; - // A unique identifier for tracking visitors. For example, this could be - // implemented with an HTTP cookie, which should be able to uniquely identify - // a visitor on a single device. This unique identifier should not change if - // the visitor logs in or out of the website. + // Required field. 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. // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string visitor_id = 7; - // The list of languages of the query. This is - // the BCP-47 language code, such as "en-US" or "sr-Latn". - // For more information, see - // [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). + // Note that this field applies for `user-data` dataset only. For requests + // with `cloud-retail` dataset, setting this field has no effect. // - // The maximum number of allowed characters is 255. - // Only "en-US" is currently supported. + // The language filters applied to the output suggestions. If set, it should + // contain the language of the query. If not set, suggestions are returned + // without considering language restrictions. This is the BCP-47 language + // code, such as "en-US" or "sr-Latn". For more information, see [Tags for + // Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum + // number of language codes is 3. repeated string language_codes = 3; // The device type context for completion suggestions. @@ -134,13 +136,14 @@ message CompleteQueryRequest { // // * user-data // - // * cloud-retail - // This option requires additional allowlisting. Before using cloud-retail, - // contact Cloud Retail support team first. + // * cloud-retail: + // This option requires enabling auto-learning function first. See + // [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). string dataset = 6; // Completion max suggestions. If left unset or set to 0, then will fallback - // to the configured value [CompletionConfig.max_suggestions][]. + // to the configured value + // [CompletionConfig.max_suggestions][google.cloud.retail.v2.CompletionConfig.max_suggestions]. // // The maximum allowed max suggestions is 20. If it is set higher, it will be // capped by 20. @@ -154,7 +157,15 @@ message CompleteQueryResponse { // The suggestion for the query. string suggestion = 1; - // Additional custom attributes ingested through BigQuery. + // Custom attributes for the suggestion term. + // + // * For "user-data", the attributes are additional custom attributes + // ingested through BigQuery. + // + // * For "cloud-retail", the attributes are product attributes generated + // by Cloud Retail. It requires + // [UserEvent.product_details][google.cloud.retail.v2.UserEvent.product_details] + // is imported properly. map attributes = 2; } @@ -169,9 +180,9 @@ message CompleteQueryResponse { repeated CompletionResult completion_results = 1; // A unique complete token. This should be included in the - // [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this - // completion, which enables accurate attribution of complete model - // performance. + // [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail] + // for search events resulting from this completion, which enables accurate + // attribution of complete model performance. string attribution_token = 2; // Matched recent searches of this user. The maximum number of recent searches @@ -182,11 +193,15 @@ message CompleteQueryResponse { // [CompleteQueryRequest.visitor_id][google.cloud.retail.v2.CompleteQueryRequest.visitor_id] // field is set and [UserEvent][google.cloud.retail.v2.UserEvent] is imported. // The recent searches satisfy the follow rules: + // // * They are ordered from latest to oldest. + // // * They are matched with // [CompleteQueryRequest.query][google.cloud.retail.v2.CompleteQueryRequest.query] // case insensitively. - // * They are transformed to lower cases. + // + // * They are transformed to lower case. + // // * They are UTF-8 safe. // // Recent searches are deduplicated. More recent searches will be reserved diff --git a/google/cloud/retail/v2/control.proto b/google/cloud/retail/v2/control.proto new file mode 100644 index 000000000..5558e44dd --- /dev/null +++ b/google/cloud/retail/v2/control.proto @@ -0,0 +1,93 @@ +// 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 google.cloud.retail.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2/common.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail"; +option java_multiple_files = true; +option java_outer_classname = "ControlProto"; +option java_package = "com.google.cloud.retail.v2"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2"; +option ruby_package = "Google::Cloud::Retail::V2"; + +// Configures dynamic metadata that can be linked to a +// [ServingConfig][google.cloud.retail.v2.ServingConfig] and affect search or +// recommendation results at serving time. +message Control { + option (google.api.resource) = { + type: "retail.googleapis.com/Control" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/controls/{control}" + }; + + // The behavior/type of the control + // + // A behavior/type must be specified on creation. Type cannot be changed once + // specified (e.g. A Rule control will always be a Rule control.). An + // INVALID_ARGUMENT will be returned if either condition is violated. + oneof control { + // A rule control - a condition-action pair. + // Enacts a set action when the condition is triggered. + // For example: Boost "gShoe" when query full matches "Running Shoes". + Rule rule = 4; + } + + // Immutable. Fully qualified name + // `projects/*/locations/global/catalogs/*/controls/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The human readable control display name. Used in Retail UI. + // + // This field must be a UTF-8 encoded string with a length limit of 128 + // characters. Otherwise, an INVALID_ARGUMENT error is thrown. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. List of [serving + // configuration][google.cloud.retail.v2.ServingConfig] ids that are + // associated with this control in the same + // [Catalog][google.cloud.retail.v2.Catalog]. + // + // Note the association is managed via the + // [ServingConfig][google.cloud.retail.v2.ServingConfig], this is an output + // only denormalized view. + repeated string associated_serving_config_ids = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The solution types that the control is used for. + // Currently we support setting only one type of solution at creation time. + // + // Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. + // If no solution type is provided at creation time, will default to + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated SolutionType solution_types = 6 [ + (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 settable by search controls. + // Will default to + // [SEARCH_SOLUTION_USE_CASE_SEARCH][google.cloud.retail.v2.SearchSolutionUseCase.SEARCH_SOLUTION_USE_CASE_SEARCH] + // if not specified. Currently only allow one search_solution_use_case per + // control. + repeated SearchSolutionUseCase search_solution_use_case = 7; +} diff --git a/google/cloud/retail/v2/control_service.proto b/google/cloud/retail/v2/control_service.proto new file mode 100644 index 000000000..24e8c1c44 --- /dev/null +++ b/google/cloud/retail/v2/control_service.proto @@ -0,0 +1,185 @@ +// 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 google.cloud.retail.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/retail/v2/control.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail"; +option java_multiple_files = true; +option java_outer_classname = "ControlServiceProto"; +option java_package = "com.google.cloud.retail.v2"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2"; +option ruby_package = "Google::Cloud::Retail::V2"; + +// Service for modifying Control. +service ControlService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Control. + // + // If the [Control][google.cloud.retail.v2.Control] to create already exists, + // an ALREADY_EXISTS error is returned. + rpc CreateControl(CreateControlRequest) returns (Control) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*/catalogs/*}/controls" + body: "control" + }; + option (google.api.method_signature) = "parent,control,control_id"; + } + + // Deletes a Control. + // + // If the [Control][google.cloud.retail.v2.Control] to delete does not exist, + // a NOT_FOUND error is returned. + rpc DeleteControl(DeleteControlRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/catalogs/*/controls/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Control. + // + // [Control][google.cloud.retail.v2.Control] cannot be set to a different + // oneof field, if so an INVALID_ARGUMENT is returned. If the + // [Control][google.cloud.retail.v2.Control] to update does not exist, a + // NOT_FOUND error is returned. + rpc UpdateControl(UpdateControlRequest) returns (Control) { + option (google.api.http) = { + patch: "/v2/{control.name=projects/*/locations/*/catalogs/*/controls/*}" + body: "control" + }; + option (google.api.method_signature) = "control,update_mask"; + } + + // Gets a Control. + rpc GetControl(GetControlRequest) returns (Control) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/catalogs/*/controls/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Controls by their parent + // [Catalog][google.cloud.retail.v2.Catalog]. + rpc ListControls(ListControlsRequest) returns (ListControlsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*/catalogs/*}/controls" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request for CreateControl method. +message CreateControlRequest { + // Required. Full resource name of parent catalog. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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 should be 4-63 characters, and 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]; + + // Indicates which fields in the provided + // [Control][google.cloud.retail.v2.Control] to update. The following are NOT + // supported: + // + // * [Control.name][google.cloud.retail.v2.Control.name] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteControl method. +message DeleteControlRequest { + // Required. The resource name of the Control to delete. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.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}/catalogs/{catalog_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Control" } + ]; +} + +// Request for ListControls method. +message ListControlsRequest { + // Required. The catalog resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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.retail.v2.ListControlsRequest.filter] is unset. + // * List controls that are used in a single ServingConfig: + // 'serving_config = "boosted_home_page_cvr"' + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListControls method. +message ListControlsResponse { + // All the Controls for a given catalog. + repeated Control controls = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/google/cloud/retail/v2/import_config.proto b/google/cloud/retail/v2/import_config.proto index 977e9e979..23b063692 100644 --- a/google/cloud/retail/v2/import_config.proto +++ b/google/cloud/retail/v2/import_config.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2/product.proto"; @@ -36,7 +35,6 @@ option php_namespace = "Google\\Cloud\\Retail\\V2"; option ruby_package = "Google::Cloud::Retail::V2"; // Google Cloud Storage location for input content. -// format. message GcsSource { // Required. Google Cloud Storage URIs to input files. URI can be up to // 2000 characters long. URIs can match the full object path (for example, @@ -64,6 +62,16 @@ message GcsSource { // [UserEvent][google.cloud.retail.v2.UserEvent] per line. // * `user_event_ga360`: Using // https://support.google.com/analytics/answer/3437719. + // + // Supported values for control imports: + // + // * `control` (default): One JSON [Control][google.cloud.retail.v2.Control] + // per line. + // + // Supported values for catalog attribute imports: + // + // * `catalog_attribute` (default): One CSV + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] per line. string data_schema = 2; } @@ -74,9 +82,8 @@ message BigQuerySource { oneof partition { // BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. // - // Only supported when - // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode] - // is set to `FULL`. + // Only supported in + // [ImportProductsRequest][google.cloud.retail.v2.ImportProductsRequest]. google.type.Date partition_date = 6; } @@ -112,8 +119,18 @@ message BigQuerySource { // // * `user_event` (default): One JSON // [UserEvent][google.cloud.retail.v2.UserEvent] per line. - // * `user_event_ga360`: Using + // * `user_event_ga360`: + // The schema is available here: // https://support.google.com/analytics/answer/3437719. + // * `user_event_ga4`: + // The schema is available here: + // https://support.google.com/analytics/answer/7029846. + // + // Supported values for auto-completion imports: + // + // * `suggestions` (default): One JSON completion suggestion per line. + // * `denylist`: One JSON deny suggestion per line. + // * `allowlist`: One JSON allow suggestion per line. string data_schema = 4; } @@ -135,9 +152,9 @@ message UserEventInlineSource { message ImportErrorsConfig { // Required. Errors destination. oneof destination { - // Google Cloud Storage path for import errors. This must be an empty, - // existing Cloud Storage bucket. Import errors will be written to a file in - // this bucket, one per line, as a JSON-encoded + // Google Cloud Storage prefix for import errors. This must be an empty, + // existing Cloud Storage directory. Import errors are written to + // sharded files in this directory, one per line, as a JSON-encoded // `google.rpc.Status` message. string gcs_prefix = 1; } @@ -156,17 +173,6 @@ message ImportProductsRequest { // Calculates diff and replaces the entire product dataset. Existing // products may be deleted if they are not present in the source location. - // - // Can only be while using - // [BigQuerySource][google.cloud.retail.v2.BigQuerySource]. - // - // Add the IAM permission "BigQuery Data Viewer" for - // cloud-retail-customer-data-access@system.gserviceaccount.com before - // using this feature otherwise an error is thrown. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. FULL = 2; } @@ -180,16 +186,8 @@ message ImportProductsRequest { (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } ]; - // Unique identifier provided by client, within the ancestor - // dataset scope. Ensures idempotency and used for request deduplication. - // Server-generated if unspecified. Up to 128 characters long and must match - // the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in - // [ImportMetadata][google.cloud.retail.v2.ImportMetadata]. - // - // Only supported when - // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode] - // is set to `FULL`. - string request_id = 6; + // Deprecated. This field has no effect. + string request_id = 6 [deprecated = true]; // Required. The desired input location of the data. ProductInputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED]; @@ -197,8 +195,8 @@ message ImportProductsRequest { // The desired location of errors incurred during the Import. ImportErrorsConfig errors_config = 3; - // Indicates which fields in the provided imported 'products' to update. If - // not set, will by default update all fields. + // Indicates which fields in the provided imported `products` to update. If + // not set, all fields are updated. google.protobuf.FieldMask update_mask = 4; // The mode of reconciliation between existing products and the products to be @@ -206,15 +204,17 @@ message ImportProductsRequest { // [ReconciliationMode.INCREMENTAL][google.cloud.retail.v2.ImportProductsRequest.ReconciliationMode.INCREMENTAL]. ReconciliationMode reconciliation_mode = 5; - // Pub/Sub topic for receiving notification. If this field is set, - // when the import is finished, a notification will be sent to - // specified Pub/Sub topic. The message data will be JSON string of a + // Full Pub/Sub topic name for receiving notification. If this field is set, + // when the import is finished, a notification is sent to + // specified Pub/Sub topic. The message data is JSON string of a // [Operation][google.longrunning.Operation]. - // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. // - // Only supported when - // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode] - // is set to `FULL`. + // 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. string notification_pubsub_topic = 7; } @@ -250,8 +250,8 @@ message ImportCompletionDataRequest { [(google.api.field_behavior) = REQUIRED]; // Pub/Sub topic for receiving notification. If this field is set, - // when the import is finished, a notification will be sent to - // specified Pub/Sub topic. The message data will be JSON string of a + // when the import is finished, a notification is sent to + // specified Pub/Sub topic. The message data is JSON string of a // [Operation][google.longrunning.Operation]. // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. string notification_pubsub_topic = 3; @@ -311,7 +311,7 @@ message CompletionDataInputConfig { } } -// Metadata related to the progress of the Import operation. This will be +// Metadata related to the progress of the Import operation. This is // returned by the google.longrunning.Operation.metadata field. message ImportMetadata { // Operation create time. @@ -327,13 +327,12 @@ message ImportMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; - // Id of the request / operation. This is parroting back the requestId - // that was passed in the request. - string request_id = 5; + // Deprecated. This field is never set. + string request_id = 5 [deprecated = true]; // Pub/Sub topic for receiving notification. If this field is set, - // when the import is finished, a notification will be sent to - // specified Pub/Sub topic. The message data will be JSON string of a + // when the import is finished, a notification is sent to + // specified Pub/Sub topic. The message data is JSON string of a // [Operation][google.longrunning.Operation]. // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. string notification_pubsub_topic = 6; diff --git a/google/cloud/retail/v2/prediction_service.proto b/google/cloud/retail/v2/prediction_service.proto index da588a03c..717405b2b 100644 --- a/google/cloud/retail/v2/prediction_service.proto +++ b/google/cloud/retail/v2/prediction_service.proto @@ -42,6 +42,10 @@ service PredictionService { option (google.api.http) = { post: "/v2/{placement=projects/*/locations/*/catalogs/*/placements/*}:predict" body: "*" + additional_bindings { + post: "/v2/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:predict" + body: "*" + } }; } } @@ -49,30 +53,45 @@ service PredictionService { // Request message for Predict method. message PredictRequest { // Required. Full resource name of the format: - // {name=projects/*/locations/global/catalogs/default_catalog/placements/*} - // The ID of the Recommendations AI placement. Before you can request - // predictions from your model, you must create at least one placement for it. - // For more information, see [Managing - // placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). + // `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` + // or + // `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. + // We recommend using the `servingConfigs` resource. `placements` is a legacy + // resource. + // The ID of the Recommendations AI serving config or placement. + // Before you can request predictions from your model, you must create at + // least one serving config or placement for it. For more information, see + // [Managing serving configurations] + // (https://cloud.google.com/retail/docs/manage-configs). // - // The full list of available placements can be seen at - // https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements + // The full list of available serving configs can be seen at + // https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs string placement = 1 [(google.api.field_behavior) = REQUIRED]; // Required. Context about the user, what they are looking at and what action // they took to trigger the predict 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.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + // [UserInfo.user_id][google.cloud.retail.v2.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.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + // random unique ID and leave + // [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; - // Maximum number of results to return per page. Set this property - // to the number of prediction 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. + // Maximum number of results to return. Set this property to the number of + // prediction 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. int32 page_size = 3; - // The previous PredictResponse.next_page_token. - string page_token = 4; + // This field is not used; leave it unset. + string page_token = 4 [deprecated = true]; // Filter for restricting prediction results with a length limit of 5,000 // characters. Accepts values for tags and the `filterOutOfStockItems` flag. @@ -97,9 +116,20 @@ message PredictRequest { // * filterOutOfStockItems tag=(-"promotional") // * filterOutOfStockItems // - // If your filter blocks all prediction results, nothing will be returned. If - // you want generic (unfiltered) popular products to be returned instead, set - // `strictFiltering` to false in `PredictRequest.params`. + // If your filter blocks all prediction results, the API will return generic + // (unfiltered) popular products. If you only want results strictly matching + // the filters, set `strictFiltering` to True in `PredictRequest.params` to + // receive empty results instead. + // Note that the API will never return items with storageStatus of "EXPIRED" + // or "DELETED" regardless of filter choices. + // + // If `filterSyntaxV2` is set to true under the `params` field, then + // attribute-based expressions are expected instead of the above described + // tag-based syntax. Examples: + // + // * (colors: ANY("Red", "Blue")) AND NOT (categories: ANY("Phones")) + // * (availability: ANY("IN_STOCK")) AND + // (colors: ANY("Red") OR categories: ANY("Phones")) string filter = 5; // Use validate only mode for this prediction query. If set to true, a @@ -133,6 +163,8 @@ message PredictRequest { // 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives // request-level control and adjusts prediction results based on product // category. + // * `filterSyntaxV2`: Boolean. False by default. If set to true, the `filter` + // field is interpreteted according to the new, attribute-based syntax. map params = 7; // The labels applied to a resource must meet the following requirements: @@ -140,7 +172,7 @@ message PredictRequest { // * 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 + // 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 @@ -166,9 +198,9 @@ message PredictResponse { // // Possible values: // - // * `product`: JSON representation of the product. Will be set if + // * `product`: JSON representation of the product. Is set if // `returnProduct` is set to true in `PredictRequest.params`. - // * `score`: Prediction score in double value. Will be set if + // * `score`: Prediction score in double value. Is set if // `returnScore` is set to true in `PredictRequest.params`. map metadata = 2; } diff --git a/google/cloud/retail/v2/product.proto b/google/cloud/retail/v2/product.proto index 4d8f10a74..fe5d212cf 100644 --- a/google/cloud/retail/v2/product.proto +++ b/google/cloud/retail/v2/product.proto @@ -16,10 +16,10 @@ syntax = "proto3"; package google.cloud.retail.v2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2/common.proto"; +import "google/cloud/retail/v2/promotion.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -120,7 +120,7 @@ message Product { // [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an // INVALID_ARGUMENT error is thrown. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [expiration_date](https://support.google.com/merchants/answer/6324499). google.protobuf.Timestamp expire_time = 16; @@ -157,9 +157,9 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [id](https://support.google.com/merchants/answer/6324405). Schema.org - // Property [Product.sku](https://schema.org/sku). + // property [Product.sku](https://schema.org/sku). string id = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The type of the product. Default to @@ -181,21 +181,23 @@ message Product { // [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT // error is returned. // - // Google Merchant Center Property + // Corresponding properties: Google Merchant Center property // [item_group_id](https://support.google.com/merchants/answer/6324507). - // Schema.org Property + // Schema.org property // [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - // - // This field must be enabled before it can be used. [Learn - // more](/recommendations-ai/docs/catalog#item-group-id). string primary_product_id = 4; // The [id][google.cloud.retail.v2.Product.id] of the collection members when // [type][google.cloud.retail.v2.Product.type] is // [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. // - // Should not set it for other types. A maximum of 1000 values are allowed. - // Otherwise, an INVALID_ARGUMENT error is return. + // Non-existent product ids are allowed. + // The [type][google.cloud.retail.v2.Product.type] of the members must be + // either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + // [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise an + // INVALID_ARGUMENT error is thrown. Should not set it for other types. A + // maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + // return. repeated string collection_member_ids = 5; // The Global Trade Item Number (GTIN) of the product. @@ -206,13 +208,13 @@ message Product { // This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is // returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [gtin](https://support.google.com/merchants/answer/6324461). // Schema.org property - // [Product.isbn](https://schema.org/isbn) or - // [Product.gtin8](https://schema.org/gtin8) or - // [Product.gtin12](https://schema.org/gtin12) or - // [Product.gtin13](https://schema.org/gtin13) or + // [Product.isbn](https://schema.org/isbn), + // [Product.gtin8](https://schema.org/gtin8), + // [Product.gtin12](https://schema.org/gtin12), + // [Product.gtin13](https://schema.org/gtin13), or // [Product.gtin14](https://schema.org/gtin14). // // If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. @@ -246,7 +248,7 @@ message Product { // Each value must be a UTF-8 encoded string with a length limit of 5,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [google_product_category][mc_google_product_category]. Schema.org property // [Product.category] (https://schema.org/category). // @@ -259,7 +261,7 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 1,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [title](https://support.google.com/merchants/answer/6324415). Schema.org // property [Product.name](https://schema.org/name). string title = 8 [(google.api.field_behavior) = REQUIRED]; @@ -270,7 +272,7 @@ message Product { // string with a length limit of 1,000 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [brand](https://support.google.com/merchants/answer/6324351). Schema.org // property [Product.brand](https://schema.org/brand). repeated string brands = 9; @@ -280,13 +282,13 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 5,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [description](https://support.google.com/merchants/answer/6324468). - // schema.org property [Product.description](https://schema.org/description). + // Schema.org property [Product.description](https://schema.org/description). string description = 10; // Language of the title/description and other string attributes. Use language - // tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt]. + // tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). // // For product prediction, this field is ignored and the model automatically // detects the text language. The [Product][google.cloud.retail.v2.Product] @@ -320,7 +322,12 @@ message Product { // * The key must be a UTF-8 encoded string with a length limit of 128 // characters. // * For indexable attribute, the key must match the pattern: - // `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + // `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + // `KEY_1_LIKE_THIS`. + // * For text attributes, at most 400 values are allowed. Empty values are not + // allowed. Each value must be a non-empty UTF-8 encoded string with a + // length limit of 256 characters. + // * For number attributes, at most 400 values are allowed. map attributes = 12; // Custom tags associated with the product. @@ -334,13 +341,13 @@ message Product { // tag as part of the // [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [custom_label_0–4](https://support.google.com/merchants/answer/6324473). repeated string tags = 13; // Product price and cost information. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [price](https://support.google.com/merchants/answer/6324371). PriceInfo price_info = 14; @@ -356,9 +363,9 @@ message Product { // Default to // [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. // - // Google Merchant Center Property + // Corresponding properties: Google Merchant Center property // [availability](https://support.google.com/merchants/answer/6324448). - // Schema.org Property [Offer.availability](https://schema.org/availability). + // Schema.org property [Offer.availability](https://schema.org/availability). Availability availability = 19; // The available quantity of the item. @@ -380,17 +387,17 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 5,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [link](https://support.google.com/merchants/answer/6324416). Schema.org // property [Offer.url](https://schema.org/url). string uri = 22; - // Product images for the product.Highly recommended to put the main image - // to the first. + // Product images for the product. We highly recommend putting the main + // image first. // // A maximum of 300 images are allowed. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [image_link](https://support.google.com/merchants/answer/6324350). // Schema.org property [Product.image](https://schema.org/image). repeated Image images = 23; @@ -401,7 +408,7 @@ message Product { // The color of the product. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [color](https://support.google.com/merchants/answer/6324487). Schema.org // property [Product.color](https://schema.org/color). ColorInfo color_info = 25; @@ -419,9 +426,9 @@ message Product { // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [size](https://support.google.com/merchants/answer/6324492), - // [size_type](https://support.google.com/merchants/answer/6324497) and + // [size_type](https://support.google.com/merchants/answer/6324497), and // [size_system](https://support.google.com/merchants/answer/6324502). // Schema.org property [Product.size](https://schema.org/size). repeated string sizes = 26; @@ -429,10 +436,10 @@ message Product { // The material of the product. For example, "leather", "wooden". // // A maximum of 20 values are allowed. Each value must be a UTF-8 encoded - // string with a length limit of 128 characters. Otherwise, an + // string with a length limit of 200 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [material](https://support.google.com/merchants/answer/6324410). Schema.org // property [Product.material](https://schema.org/material). repeated string materials = 27; @@ -445,7 +452,7 @@ message Product { // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [pattern](https://support.google.com/merchants/answer/6324483). Schema.org // property [Product.pattern](https://schema.org/pattern). repeated string patterns = 28; @@ -453,19 +460,21 @@ message Product { // The condition of the product. Strongly encouraged to use the standard // values: "new", "refurbished", "used". // - // A maximum of 5 values are allowed per + // A maximum of 1 value is allowed per // [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [condition](https://support.google.com/merchants/answer/6324469). // Schema.org property // [Offer.itemCondition](https://schema.org/itemCondition). repeated string conditions = 29; // The promotions applied to the product. A maximum of 10 values are allowed - // per [Product][google.cloud.retail.v2.Product]. + // per [Product][google.cloud.retail.v2.Product]. Only + // [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id] + // will be used, other fields will be ignored if set. repeated Promotion promotions = 34; // The timestamp when the product is published by the retailer for the first @@ -527,11 +536,11 @@ message Product { // * [name][google.cloud.retail.v2.Product.name] // * [color_info][google.cloud.retail.v2.Product.color_info] // - // Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + // The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is // returned. // // Note: Returning more fields in - // [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + // [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase // response payload size and serving latency. google.protobuf.FieldMask retrievable_fields = 30; @@ -546,4 +555,11 @@ message Product { // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct]. // Do not set this field in API requests. repeated Product variants = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of local inventories specific to different places. + // + // This is only available for users who have Retail Search enabled, and it can + // be managed by [AddLocalInventories][] and [RemoveLocalInventories][] APIs. + repeated LocalInventory local_inventories = 35 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/retail/v2/product_service.proto b/google/cloud/retail/v2/product_service.proto index b285eb4a2..5ca2cb326 100644 --- a/google/cloud/retail/v2/product_service.proto +++ b/google/cloud/retail/v2/product_service.proto @@ -23,7 +23,6 @@ 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"; @@ -89,7 +88,7 @@ service ProductService { // Bulk import of multiple [Product][google.cloud.retail.v2.Product]s. // - // Request processing may be synchronous. No partial updating is supported. + // Request processing may be synchronous. // Non-existing items are created. // // Note that it is possible for a subset of the @@ -116,36 +115,46 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, updates are not immediately manifested in the // [Product][google.cloud.retail.v2.Product] queried by - // [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. // // When inventory is updated with - // [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and - // [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct], the - // specified inventory field value(s) will overwrite any existing value(s) + // [ProductService.CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] + // and + // [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct], + // the specified inventory field value(s) will overwrite any existing value(s) // while ignoring the last update time for this field. Furthermore, the last // update time for the specified inventory fields will be overwritten to the // time of the - // [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] or - // [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] + // [ProductService.CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] + // or + // [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] // request. // // If no inventory fields are set in // [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], // then any pre-existing inventory information for this product will be used. // - // If no inventory fields are set in [UpdateProductRequest.set_mask][], + // If no inventory fields are set in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], // then any existing inventory information will be preserved. // // Pre-existing inventory information can only be updated with - // [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], - // [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], + // [ProductService.SetInventory][google.cloud.retail.v2.ProductService.SetInventory], + // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], // and - // [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. + // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. + // + // The returned [Operation][]s will be obsolete after 1 day, and + // [GetOperation][] API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the [Operation][]s associated with the + // stale updates will not be marked as [done][Operation.done] until being + // obsolete. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc SetInventory(SetInventoryRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v2/{inventory.name=projects/*/locations/*/catalogs/*/branches/*/products/**}:setInventory" @@ -167,12 +176,19 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, the added place IDs are not immediately manifested in the // [Product][google.cloud.retail.v2.Product] queried by - // [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // + // The returned [Operation][]s will be obsolete after 1 day, and + // [GetOperation][] API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the [Operation][]s associated with the + // stale updates will not be marked as [done][Operation.done] until being + // obsolete. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc AddFulfillmentPlaces(AddFulfillmentPlacesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -195,12 +211,19 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, the removed place IDs are not immediately manifested in the // [Product][google.cloud.retail.v2.Product] queried by - // [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // + // The returned [Operation][]s will be obsolete after 1 day, and + // [GetOperation][] API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the [Operation][]s associated with the + // stale updates will not be marked as [done][Operation.done] until being + // obsolete. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc RemoveFulfillmentPlaces(RemoveFulfillmentPlacesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -213,9 +236,93 @@ service ProductService { metadata_type: "google.cloud.retail.v2.RemoveFulfillmentPlacesMetadata" }; } + + // Updates local inventory information for a + // [Product][google.cloud.retail.v2.Product] at a list of places, while + // respecting the last update timestamps of each inventory field. + // + // This process is asynchronous and does not require the + // [Product][google.cloud.retail.v2.Product] to exist before updating + // inventory information. If the request is valid, the update will be enqueued + // and processed downstream. As a consequence, when a response is returned, + // updates are not immediately manifested in the + // [Product][google.cloud.retail.v2.Product] queried by + // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // + // Local inventory information can only be modified using this method. + // [ProductService.CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] + // and + // [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] + // has no effect on local inventories. + // + // The returned [Operation][]s will be obsolete after 1 day, and + // [GetOperation][] API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the [Operation][]s associated with the + // stale updates will not be marked as [done][Operation.done] until being + // obsolete. + // + // This feature is only available for users who have Retail Search enabled. + // Please enable Retail Search on Cloud Console before using this feature. + rpc AddLocalInventories(AddLocalInventoriesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:addLocalInventories" + body: "*" + }; + option (google.api.method_signature) = "product"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2.AddLocalInventoriesResponse" + metadata_type: "google.cloud.retail.v2.AddLocalInventoriesMetadata" + }; + } + + // Remove local inventory information for a + // [Product][google.cloud.retail.v2.Product] at a list of places at a removal + // timestamp. + // + // This process is asynchronous. If the request is valid, the removal will be + // enqueued and processed downstream. As a consequence, when a response is + // returned, removals are not immediately manifested in the + // [Product][google.cloud.retail.v2.Product] queried by + // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // + // Local inventory information can only be removed using this method. + // [ProductService.CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] + // and + // [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] + // has no effect on local inventories. + // + // The returned [Operation][]s will be obsolete after 1 day, and + // [GetOperation][] API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the [Operation][]s associated with the + // stale updates will not be marked as [done][Operation.done] until being + // obsolete. + // + // This feature is only available for users who have Retail Search enabled. + // Please enable Retail Search on Cloud Console before using this feature. + rpc RemoveLocalInventories(RemoveLocalInventoriesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:removeLocalInventories" + body: "*" + }; + option (google.api.method_signature) = "product"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2.RemoveLocalInventoriesResponse" + metadata_type: "google.cloud.retail.v2.RemoveLocalInventoriesMetadata" + }; + } } -// Request message for [CreateProduct][] method. +// Request message for +// [ProductService.CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] +// method. message CreateProductRequest { // Required. The parent catalog resource name, such as // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. @@ -245,7 +352,9 @@ message CreateProductRequest { string product_id = 3 [(google.api.field_behavior) = REQUIRED]; } -// Request message for [GetProduct][] method. +// Request message for +// [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] +// method. message GetProductRequest { // Required. Full resource name of [Product][google.cloud.retail.v2.Product], // such as @@ -263,7 +372,9 @@ message GetProductRequest { ]; } -// Request message for [UpdateProduct][] method. +// Request message for +// [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] +// method. message UpdateProductRequest { // Required. The product to update/create. // @@ -284,6 +395,11 @@ message UpdateProductRequest { // // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error // is returned. + // + // The attribute key can be updated by setting the mask path as + // "attributes.${key_name}". If a key name is present in the mask but not in + // the patching product from the request, this key will be deleted after the + // update. google.protobuf.FieldMask update_mask = 2; // If set to true, and the [Product][google.cloud.retail.v2.Product] is not @@ -292,7 +408,9 @@ message UpdateProductRequest { bool allow_missing = 3; } -// Request message for [DeleteProduct][] method. +// Request message for +// [ProductService.DeleteProduct][google.cloud.retail.v2.ProductService.DeleteProduct] +// method. message DeleteProductRequest { // Required. Full resource name of [Product][google.cloud.retail.v2.Product], // such as @@ -421,10 +539,13 @@ message ListProductsResponse { string next_page_token = 2; } -// Request message for [SetInventory][] method. +// Request message for +// [ProductService.SetInventory][google.cloud.retail.v2.ProductService.SetInventory] +// method. message SetInventoryRequest { // Required. The inventory information to update. The allowable fields to // update are: + // // * [Product.price_info][google.cloud.retail.v2.Product.price_info] // * [Product.availability][google.cloud.retail.v2.Product.availability] // * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity] @@ -432,8 +553,9 @@ message SetInventoryRequest { // The updated inventory fields must be specified in // [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]. // - // If [SetInventoryRequest.inventory.name][] is empty or invalid, an - // INVALID_ARGUMENT error is returned. + // If + // [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name] + // is empty or invalid, an INVALID_ARGUMENT error is returned. // // If the caller does not have permission to update the // [Product][google.cloud.retail.v2.Product] named in @@ -450,6 +572,25 @@ message SetInventoryRequest { // provided or default value for // [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. // + // The caller can replace place IDs for a subset of fulfillment types in the + // following ways: + // + // * Adds "fulfillment_info" in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + // * Specifies only the desired fulfillment types and corresponding place IDs + // to update in + // [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info] + // + // The caller can clear all place IDs from a subset of fulfillment types in + // the following ways: + // + // * Adds "fulfillment_info" in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + // * Specifies only the desired fulfillment types to clear in + // [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info] + // * Checks that only the desired fulfillment info types have empty + // [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] + // // The last update time is recorded for the following inventory fields: // * [Product.price_info][google.cloud.retail.v2.Product.price_info] // * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -457,12 +598,15 @@ message SetInventoryRequest { // * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info] // // If a full overwrite of inventory information while ignoring timestamps is - // needed, [UpdateProduct][] should be invoked instead. + // needed, + // [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] + // should be invoked instead. Product inventory = 1 [(google.api.field_behavior) = REQUIRED]; // Indicates which inventory fields in the provided - // [Product][google.cloud.retail.v2.Product] to update. If not set or set with - // empty paths, all inventory fields will be updated. + // [Product][google.cloud.retail.v2.Product] to update. + // + // At least one field must be provided. // // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error // is returned and the entire update will be ignored. @@ -484,15 +628,19 @@ message SetInventoryRequest { // Metadata related to the progress of the SetInventory operation. // Currently empty because there is no meaningful metadata populated from the -// [SetInventory][] method. +// [ProductService.SetInventory][google.cloud.retail.v2.ProductService.SetInventory] +// method. message SetInventoryMetadata {} // Response of the SetInventoryRequest. Currently empty because -// there is no meaningful response populated from the [SetInventory][] +// there is no meaningful response populated from the +// [ProductService.SetInventory][google.cloud.retail.v2.ProductService.SetInventory] // method. message SetInventoryResponse {} -// Request message for [AddFulfillmentPlaces][] method. +// Request message for +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces] +// method. message AddFulfillmentPlacesRequest { // Required. Full resource name of [Product][google.cloud.retail.v2.Product], // such as @@ -524,7 +672,8 @@ message AddFulfillmentPlacesRequest { // If this field is set to an invalid value other than these, an // INVALID_ARGUMENT error is returned. // - // This field directly corresponds to [Product.fulfillment_info.type][]. + // This field directly corresponds to + // [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. string type = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The IDs for this @@ -560,15 +709,133 @@ message AddFulfillmentPlacesRequest { // Metadata related to the progress of the AddFulfillmentPlaces operation. // Currently empty because there is no meaningful metadata populated from the -// [AddFulfillmentPlaces][] method. +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces] +// method. message AddFulfillmentPlacesMetadata {} // Response of the AddFulfillmentPlacesRequest. Currently empty because -// there is no meaningful response populated from the [AddFulfillmentPlaces][] +// there is no meaningful response populated from the +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces] // method. message AddFulfillmentPlacesResponse {} -// Request message for [RemoveFulfillmentPlaces][] method. +// Request message for +// [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] +// method. +message AddLocalInventoriesRequest { + // Required. Full resource name of [Product][google.cloud.retail.v2.Product], + // such as + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. + // + // If the caller does not have permission to access the + // [Product][google.cloud.retail.v2.Product], regardless of whether or not it + // exists, a PERMISSION_DENIED error is returned. + string product = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Product" } + ]; + + // Required. A list of inventory information at difference places. Each place + // is identified by its place ID. At most 3000 inventories are allowed per + // request. + repeated LocalInventory local_inventories = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which inventory fields in the provided list of + // [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The + // field is updated to the provided value. + // + // If a field is set while the place does not have a previous local inventory, + // the local inventory at that store is created. + // + // If a field is set while the value of that field is not provided, the + // original field value, if it exists, is deleted. + // + // If the mask is not set or set with empty paths, all inventory fields will + // be updated. + // + // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error + // is returned and the entire update will be ignored. + google.protobuf.FieldMask add_mask = 4; + + // The time when the inventory updates are issued. Used to prevent + // out-of-order updates on local inventory fields. If not provided, the + // internal system time will be used. + google.protobuf.Timestamp add_time = 5; + + // If set to true, and the [Product][google.cloud.retail.v2.Product] is not + // found, the local inventory will still be processed and retained for at most + // 1 day and processed once the [Product][google.cloud.retail.v2.Product] is + // created. If set to false, a NOT_FOUND error is returned if the + // [Product][google.cloud.retail.v2.Product] is not found. + bool allow_missing = 6; +} + +// Metadata related to the progress of the AddLocalInventories operation. +// Currently empty because there is no meaningful metadata populated from the +// [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] +// method. +message AddLocalInventoriesMetadata {} + +// Response of the +// [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] +// API. Currently empty because there is no meaningful response populated from +// the +// [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] +// method. +message AddLocalInventoriesResponse {} + +// Request message for +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2.ProductService.RemoveLocalInventories] +// method. +message RemoveLocalInventoriesRequest { + // Required. Full resource name of [Product][google.cloud.retail.v2.Product], + // such as + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. + // + // If the caller does not have permission to access the + // [Product][google.cloud.retail.v2.Product], regardless of whether or not it + // exists, a PERMISSION_DENIED error is returned. + string product = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Product" } + ]; + + // Required. A list of place IDs to have their inventory deleted. + // At most 3000 place IDs are allowed per request. + repeated string place_ids = 2 [(google.api.field_behavior) = REQUIRED]; + + // The time when the inventory deletions are issued. Used to prevent + // out-of-order updates and deletions on local inventory fields. If not + // provided, the internal system time will be used. + google.protobuf.Timestamp remove_time = 5; + + // If set to true, and the [Product][google.cloud.retail.v2.Product] is not + // found, the local inventory removal request will still be processed and + // retained for at most 1 day and processed once the + // [Product][google.cloud.retail.v2.Product] is created. If set to false, a + // NOT_FOUND error is returned if the + // [Product][google.cloud.retail.v2.Product] is not found. + bool allow_missing = 3; +} + +// Metadata related to the progress of the RemoveLocalInventories operation. +// Currently empty because there is no meaningful metadata populated from the +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2.ProductService.RemoveLocalInventories] +// method. +message RemoveLocalInventoriesMetadata {} + +// Response of the +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2.ProductService.RemoveLocalInventories] +// API. Currently empty because there is no meaningful response populated from +// the +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2.ProductService.RemoveLocalInventories] +// method. +message RemoveLocalInventoriesResponse {} + +// Request message for +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces] +// method. message RemoveFulfillmentPlacesRequest { // Required. Full resource name of [Product][google.cloud.retail.v2.Product], // such as @@ -600,7 +867,8 @@ message RemoveFulfillmentPlacesRequest { // If this field is set to an invalid value other than these, an // INVALID_ARGUMENT error is returned. // - // This field directly corresponds to [Product.fulfillment_info.type][]. + // This field directly corresponds to + // [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. string type = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The IDs for this @@ -631,10 +899,12 @@ message RemoveFulfillmentPlacesRequest { // Metadata related to the progress of the RemoveFulfillmentPlaces operation. // Currently empty because there is no meaningful metadata populated from the -// [RemoveFulfillmentPlaces][] method. +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces] +// method. message RemoveFulfillmentPlacesMetadata {} // Response of the RemoveFulfillmentPlacesRequest. Currently empty because there -// is no meaningful response populated from the [RemoveFulfillmentPlaces][] +// is no meaningful response populated from the +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces] // method. message RemoveFulfillmentPlacesResponse {} diff --git a/google/cloud/retail/v2/promotion.proto b/google/cloud/retail/v2/promotion.proto new file mode 100644 index 000000000..9ba323475 --- /dev/null +++ b/google/cloud/retail/v2/promotion.proto @@ -0,0 +1,40 @@ +// 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 google.cloud.retail.v2; + +option csharp_namespace = "Google.Cloud.Retail.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail"; +option java_multiple_files = true; +option java_outer_classname = "PromotionProto"; +option java_package = "com.google.cloud.retail.v2"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2"; +option ruby_package = "Google::Cloud::Retail::V2"; + +// Promotion information. +message Promotion { + // ID of the promotion. For example, "free gift". + // + // The value must be a UTF-8 encoded string with a length limit of 128 + // characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, + // 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). + string promotion_id = 1; +} diff --git a/google/cloud/retail/v2/purge_config.proto b/google/cloud/retail/v2/purge_config.proto index 6c8ce100f..cb5107450 100644 --- a/google/cloud/retail/v2/purge_config.proto +++ b/google/cloud/retail/v2/purge_config.proto @@ -16,8 +16,8 @@ syntax = "proto3"; package google.cloud.retail.v2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; option csharp_namespace = "Google.Cloud.Retail.V2"; option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail"; @@ -37,7 +37,10 @@ message PurgeUserEventsRequest { // Required. The resource name of the catalog under which the events are // created. The format is // `projects/${projectId}/locations/global/catalogs/${catalogId}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; // Required. The filter string to specify the events to be deleted with a // length limit of 5,000 characters. Empty string filter is not allowed. The diff --git a/google/cloud/retail/v2/retail_grpc_service_config.json b/google/cloud/retail/v2/retail_grpc_service_config.json index e8547eeca..9801c103a 100644 --- a/google/cloud/retail/v2/retail_grpc_service_config.json +++ b/google/cloud/retail/v2/retail_grpc_service_config.json @@ -1,77 +1,70 @@ { - "methodConfig": [{ - "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" } - ], - "timeout": "5s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "5s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - }, { - "name": [ - { "service": "google.cloud.retail.v2.ProductService" }, - { - "service": "google.cloud.retail.v2.UserEventService", - "method": "PurgeUserEvents" + "methodConfig": [ + { + "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" } + ], + "timeout": "5s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "5s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } - ], - "timeout": "30s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "30s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - }, { - "name": [ - { - "service": "google.longrunning.Operations", - "method": "ListOperations" - }, - { - "service": "google.cloud.retail.v2.ProductService", - "method": "ImportProducts" + }, + { + "name": [ + { "service": "google.cloud.retail.v2.ProductService" }, + { + "service": "google.cloud.retail.v2.UserEventService", + "method": "PurgeUserEvents" + } + ], + "timeout": "30s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "30s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } - ], - "timeout": "300s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "300s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - }, { - "name": [ - { - "service": "google.cloud.retail.v2.UserEventService", - "method": "ImportUserEvents" + }, + { + "name": [ + { + "service": "google.longrunning.Operations", + "method": "ListOperations" + }, + { + "service": "google.cloud.retail.v2.ProductService", + "method": "ImportProducts" + } + ], + "timeout": "300s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "300s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] + } + }, + { + "name": [ + { + "service": "google.cloud.retail.v2.UserEventService", + "method": "ImportUserEvents" + } + ], + "timeout": "600s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "300s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } - ], - "timeout": "600s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "300s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] } - }] + ] } diff --git a/google/cloud/retail/v2/retail_v2.yaml b/google/cloud/retail/v2/retail_v2.yaml index 2e0fceea2..caa125739 100644 --- a/google/cloud/retail/v2/retail_v2.yaml +++ b/google/cloud/retail/v2/retail_v2.yaml @@ -4,17 +4,23 @@ name: retail.googleapis.com title: Retail API apis: +- name: google.cloud.location.Locations - name: google.cloud.retail.v2.CatalogService - name: google.cloud.retail.v2.CompletionService +- name: google.cloud.retail.v2.ControlService - name: google.cloud.retail.v2.PredictionService - name: google.cloud.retail.v2.ProductService - name: google.cloud.retail.v2.SearchService +- name: google.cloud.retail.v2.ServingConfigService - name: google.cloud.retail.v2.UserEventService +- name: google.longrunning.Operations types: - name: google.cloud.retail.logging.ErrorLog - name: google.cloud.retail.v2.AddFulfillmentPlacesMetadata - name: google.cloud.retail.v2.AddFulfillmentPlacesResponse +- name: google.cloud.retail.v2.AddLocalInventoriesMetadata +- name: google.cloud.retail.v2.AddLocalInventoriesResponse - name: google.cloud.retail.v2.ImportCompletionDataResponse - name: google.cloud.retail.v2.ImportErrorsConfig - name: google.cloud.retail.v2.ImportMetadata @@ -26,6 +32,8 @@ types: - name: google.cloud.retail.v2.RejoinUserEventsResponse - name: google.cloud.retail.v2.RemoveFulfillmentPlacesMetadata - name: google.cloud.retail.v2.RemoveFulfillmentPlacesResponse +- name: google.cloud.retail.v2.RemoveLocalInventoriesMetadata +- name: google.cloud.retail.v2.RemoveLocalInventoriesResponse - name: google.cloud.retail.v2.SetInventoryMetadata - name: google.cloud.retail.v2.SetInventoryResponse @@ -43,6 +51,8 @@ documentation: backend: rules: + - selector: google.cloud.retail.v2.CatalogService.UpdateCatalog + deadline: 10.0 - selector: 'google.cloud.retail.v2.ProductService.*' deadline: 30.0 - selector: google.cloud.retail.v2.ProductService.ImportProducts @@ -61,10 +71,12 @@ http: additional_bindings: - get: '/v2/{name=projects/*/locations/*/catalogs/*/branches/*/operations/*}' - get: '/v2/{name=projects/*/locations/*/catalogs/*/operations/*}' + - get: '/v2/{name=projects/*/operations/*}' - selector: google.longrunning.Operations.ListOperations get: '/v2/{name=projects/*/locations/*}/operations' additional_bindings: - get: '/v2/{name=projects/*/locations/*/catalogs/*}/operations' + - get: '/v2/{name=projects/*}/operations' authentication: rules: @@ -88,6 +100,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2.ControlService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.retail.v2.PredictionService.Predict oauth: canonical_scopes: |- @@ -100,6 +116,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2.ServingConfigService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.retail.v2.UserEventService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/retail/v2/search_service.proto b/google/cloud/retail/v2/search_service.proto index 5e5135f11..32de76da6 100644 --- a/google/cloud/retail/v2/search_service.proto +++ b/google/cloud/retail/v2/search_service.proto @@ -24,8 +24,6 @@ import "google/cloud/retail/v2/common.proto"; import "google/cloud/retail/v2/product.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; option csharp_namespace = "Google.Cloud.Retail.V2"; option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail"; @@ -39,8 +37,7 @@ option ruby_package = "Google::Cloud::Retail::V2"; // Service for search. // // This feature is only available for users who have Retail Search enabled. -// Please submit a form [here](https://cloud.google.com/contact) to contact -// cloud sales if you are interested in using Retail Search. +// Please enable Retail Search on Cloud Console before using this feature. service SearchService { option (google.api.default_host) = "retail.googleapis.com"; option (google.api.oauth_scopes) = @@ -49,12 +46,15 @@ service SearchService { // Performs a search. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc Search(SearchRequest) returns (SearchResponse) { option (google.api.http) = { post: "/v2/{placement=projects/*/locations/*/catalogs/*/placements/*}:search" body: "*" + additional_bindings { + post: "/v2/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:search" + body: "*" + } }; } } @@ -105,6 +105,7 @@ message SearchRequest { // * "ratingCount" // * "attributes.key" // * "inventory(place_id,price)" + // * "inventory(place_id,original_price)" // * "inventory(place_id,attributes.key)" string key = 1 [(google.api.field_behavior) = REQUIRED]; @@ -116,8 +117,8 @@ message SearchRequest { // Only get facet for the given restricted values. For example, when using // "pickupInStore" as key and set restricted values to // ["store123", "store456"], only facets for "store123" and "store456" are - // returned. Only supported on textual fields and fulfillments. - // Maximum is 20. + // returned. Only supported on predefined textual fields, custom textual + // attributes and fulfillments. Maximum is 20. // // Must be set for the fulfillment facet keys: // @@ -154,14 +155,22 @@ message SearchRequest { // Only supported on textual fields. Maximum is 10. repeated string contains = 9; - // The order in which [Facet.values][] are returned. + // True to make facet keys case insensitive when getting faceting + // values with prefixes or contains; false otherwise. + bool case_insensitive = 10; + + // The order in which + // [SearchResponse.Facet.values][google.cloud.retail.v2.SearchResponse.Facet.values] + // are returned. // // Allowed values are: // - // * "count desc", which means order by [Facet.FacetValue.count][] + // * "count desc", which means order by + // [SearchResponse.Facet.values.count][google.cloud.retail.v2.SearchResponse.Facet.FacetValue.count] // descending. // - // * "value desc", which means order by [Facet.FacetValue.value][] + // * "value desc", which means order by + // [SearchResponse.Facet.values.value][google.cloud.retail.v2.SearchResponse.Facet.FacetValue.value] // descending. // Only applies to textual facets. // @@ -182,9 +191,11 @@ message SearchRequest { // [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] // when query is specified. // - // In the response, [FacetValue.value][] will be always "1" and - // [FacetValue.count][] will be the number of results that matches the - // query. + // In the response, + // [SearchResponse.Facet.values.value][google.cloud.retail.v2.SearchResponse.Facet.FacetValue.value] + // will be 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. // // For example, you can set a customized facet for "shipToStore", // where @@ -195,6 +206,10 @@ message SearchRequest { // Then the facet will count the products that are both in stock and ship // to store "123". string query = 5; + + // Returns the min and max value for each numerical facet intervals. + // Ignored for textual facets. + bool return_min_max = 11; } // Required. The facet key specification. @@ -209,19 +224,29 @@ message SearchRequest { // List of keys to exclude when faceting. // + // // By default, // [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] // is not excluded from the filter unless it is listed in this field. // - // For example, suppose there are 100 products with color facet "Red" and - // 200 products with color facet "Blue". A query containing the filter - // "colorFamilies:ANY("Red")" and have "colorFamilies" as + // Listing a facet key in this field allows its values to appear as facet + // results, even when they are filtered out of search results. Using this + // field does not affect what search results are returned. + // + // For example, suppose there are 100 products with the color facet "Red" + // and 200 products with the color facet "Blue". A query containing the + // filter "colorFamilies:ANY("Red")" and having "colorFamilies" as // [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - // will by default return the "Red" with count 100. + // would by default return only "Red" products in the search results, and + // also return "Red" with count 100 as the only color facet. Although there + // are also blue products available, "Blue" would not be shown as an + // available facet value. // - // If this field contains "colorFamilies", then the query returns both the - // "Red" with count 100 and "Blue" with count 200, because the - // "colorFamilies" key is now excluded from the filter. + // If "colorFamilies" is listed in "excludedFilterKeys", then the query + // returns the facet values "Red" with count 100 and "Blue" with count + // 200, because the "colorFamilies" key is now excluded from the filter. + // Because this field doesn't affect search results, the search results + // are still correctly filtered to return only "Red" products. // // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error // is returned. @@ -320,8 +345,16 @@ message SearchRequest { // Condition boost specifications. If a product matches multiple conditions // in the specifictions, boost scores from these specifications are all // applied and combined in a non-linear way. Maximum number of - // specifications is 10. + // specifications is 20. repeated ConditionBoostSpec condition_boost_specs = 1; + + // Whether to skip boostspec validation. If this field is set to true, + // invalid + // [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs] + // will be ignored and valid + // [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs] + // will still be applied. + optional bool skip_boost_spec_validation = 2; } // Specification to determine under which conditions query expansion should @@ -329,7 +362,8 @@ message SearchRequest { message QueryExpansionSpec { // Enum describing under which condition query expansion should occur. enum Condition { - // Unspecified query expansion condition. This defaults to + // Unspecified query expansion condition. In this case, server behavior + // defaults to // [Condition.DISABLED][google.cloud.retail.v2.SearchRequest.QueryExpansionSpec.Condition.DISABLED]. CONDITION_UNSPECIFIED = 0; @@ -352,6 +386,53 @@ message SearchRequest { bool pin_unexpanded_results = 2; } + // The specification for personalization. + message PersonalizationSpec { + // The personalization mode of each search request. + enum Mode { + // Default value. In this case, server behavior defaults to + // [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO]. + MODE_UNSPECIFIED = 0; + + // Let CRS decide whether to use personalization based on quality of user + // event data. + AUTO = 1; + + // Disable personalization. + DISABLED = 2; + } + + // Defaults to + // [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO]. + Mode mode = 1; + } + + // The specification for query spell correction. + message SpellCorrectionSpec { + // Enum describing under which mode spell correction should occur. + enum Mode { + // Unspecified spell correction mode. In this case, server behavior + // defaults to + // [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. + MODE_UNSPECIFIED = 0; + + // Google Retail Search will try to find a spell suggestion if there + // is any and put in the + // [SearchResponse.corrected_query][google.cloud.retail.v2.SearchResponse.corrected_query]. + // The spell suggestion will not be used as the search query. + SUGGESTION_ONLY = 1; + + // Automatic spell correction built by Google Retail Search. Search will + // be based on the corrected query if found. + AUTO = 2; + } + + // The mode under which spell correction should take effect to + // replace the original search query. Default to + // [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. + Mode mode = 1; + } + // The search mode of each search request. enum SearchMode { // Default value. In this case both product search and faceted search will @@ -373,7 +454,9 @@ message SearchRequest { // Only faceted search will be performed. The product search will be // disabled. // - // When in this mode, one or both of [SearchRequest.facet_spec][] and + // When in this mode, one or both of + // [SearchRequest.facet_specs][google.cloud.retail.v2.SearchRequest.facet_specs] + // and // [SearchRequest.dynamic_facet_spec][google.cloud.retail.v2.SearchRequest.dynamic_facet_spec] // should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only // [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult] @@ -381,7 +464,9 @@ message SearchRequest { FACETED_SEARCH_ONLY = 2; } - // Required. The resource name of the search engine placement, such as + // Required. The resource name of the Retail Search serving config, such as + // `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` + // 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 configuration name and the set // of models that will be used to make the search. @@ -397,6 +482,11 @@ message SearchRequest { ]; // Raw search query. + // + // If this field is empty, the request is considered a category browsing + // request and returned results are based on + // [filter][google.cloud.retail.v2.SearchRequest.filter] and + // [page_categories][google.cloud.retail.v2.SearchRequest.page_categories]. string query = 3; // Required. A unique identifier for tracking visitors. For example, this @@ -404,6 +494,9 @@ message SearchRequest { // identify a visitor on a single device. This unique identifier should not // change if the visitor logs in or out of the website. // + // This should be the same identifier as + // [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id]. + // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string visitor_id = 4 [(google.api.field_behavior) = REQUIRED]; @@ -447,6 +540,9 @@ message SearchRequest { // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string filter = 10; + // The default filter that is applied when a user performs a search without + // 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 @@ -473,21 +569,23 @@ message SearchRequest { // is returned. repeated FacetSpec facet_specs = 12; + // Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic + // to enable dynamic facets. Do not set this field. + // // The specification for dynamically generated facets. Notice that only // textual facets can be dynamically generated. - // - // This feature requires additional allowlisting. Contact Retail Search - // support team if you are interested in using dynamic facet feature. - DynamicFacetSpec dynamic_facet_spec = 21; + 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). // - // Notice that if both [ServingConfig.boost_control_ids][] and - // [SearchRequest.boost_spec] are set, the boost conditions from both places - // are evaluated. If a search request matches multiple boost conditions, - // the final boost score is equal to the sum of the boost scores from all - // matched boost conditions. + // Notice that if both + // [ServingConfig.boost_control_ids][google.cloud.retail.v2.ServingConfig.boost_control_ids] + // and + // [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + // are set, the boost conditions from both places are evaluated. If a search + // request matches multiple boost conditions, the final boost score is equal + // to the sum of the boost scores from all matched boost conditions. BoostSpec boost_spec = 13; // The query expansion specification that specifies the conditions under which @@ -497,12 +595,15 @@ message SearchRequest { // The keys to fetch and rollup the matching // [variant][google.cloud.retail.v2.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2.Product]s attributes. The attributes from - // all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated. - // Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2.Product]s attributes will lead to extra - // query latency. Maximum number of keys is 10. + // [Product][google.cloud.retail.v2.Product]s attributes, + // [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or + // [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The + // attributes from all the matching + // [variant][google.cloud.retail.v2.Product.Type.VARIANT] + // [Product][google.cloud.retail.v2.Product]s or + // [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and + // de-duplicated. Notice that rollup attributes will lead to extra query + // latency. Maximum number of keys is 30. // // For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a // fulfillment type and a fulfillment ID must be provided in the format of @@ -517,8 +618,10 @@ message SearchRequest { // * discount // * variantId // * inventory(place_id,price) + // * inventory(place_id,original_price) // * inventory(place_id,attributes.key), where key is any key in the - // [Product.inventories.attributes][] map. + // [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + // map. // * attributes.key, where key is any key in the // [Product.attributes][google.cloud.retail.v2.Product.attributes] map. // * pickupInStore.id, where id is any @@ -579,6 +682,41 @@ message SearchRequest { // The search mode of the search request. If not specified, a single search // request triggers both product search and faceted search. SearchMode search_mode = 31; + + // The specification for personalization. + // + // Notice that if both + // [ServingConfig.personalization_spec][google.cloud.retail.v2.ServingConfig.personalization_spec] + // and + // [SearchRequest.personalization_spec][google.cloud.retail.v2.SearchRequest.personalization_spec] + // are set. + // [SearchRequest.personalization_spec][google.cloud.retail.v2.SearchRequest.personalization_spec] + // will override + // [ServingConfig.personalization_spec][google.cloud.retail.v2.ServingConfig.personalization_spec]. + PersonalizationSpec personalization_spec = 32; + + // The 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 labels = 34; + + // The spell correction specification that specifies the mode under + // which spell correction will take effect. + optional SpellCorrectionSpec spell_correction_spec = 35; } // Response message for @@ -656,6 +794,21 @@ message SearchResponse { // `{key: "pickupInStore.store1" value { number_value: 10 }}` means a there // are 10 variants in this product are available in the store "store1". map variant_rollup_values = 5; + + // Specifies previous events related to this product for this user based on + // [UserEvent][google.cloud.retail.v2.UserEvent] with same + // [SearchRequest.visitor_id][google.cloud.retail.v2.SearchRequest.visitor_id] + // or [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id]. + // + // This is set only when + // [SearchRequest.PersonalizationSpec.mode][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.mode] + // is + // [SearchRequest.PersonalizationSpec.Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO]. + // + // Possible values: + // + // * `purchased`: Indicates that this product has been purchased before. + repeated string personal_labels = 7; } // A facet result. @@ -673,6 +826,20 @@ message SearchResponse { // Number of items that have this facet value. int64 count = 3; + + // The minimum value in the + // [FacetValue.interval][google.cloud.retail.v2.SearchResponse.Facet.FacetValue.interval]. + // Only supported on numerical facets and returned if + // [SearchRequest.FacetSpec.FacetKey.return_min_max][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.return_min_max] + // is true. + double min_value = 5; + + // The maximum value in the + // [FacetValue.interval][google.cloud.retail.v2.SearchResponse.Facet.FacetValue.interval]. + // Only supported on numerical facets and returned if + // [SearchRequest.FacetSpec.FacetKey.return_min_max][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.return_min_max] + // is true. + double max_value = 6; } // The key for this facet. E.g., "colorFamilies" or "price" or @@ -712,7 +879,9 @@ message SearchResponse { // matches. int32 total_size = 3; - // If spell correction applies, the corrected query. Otherwise, empty. + // Contains the spell corrected query, if found. If the spell correction type + // is AUTOMATIC, then the search results are based on corrected_query. + // Otherwise the original query is used for search. string corrected_query = 4; // A unique search token. This should be included in the @@ -730,9 +899,19 @@ message SearchResponse { QueryExpansionInfo query_expansion_info = 7; // The URI of a customer-defined redirect page. If redirect action is - // triggered, no search will be performed, and only + // triggered, no search is performed, and only // [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and // [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token] - // will be set in the response. + // are set in the response. string redirect_uri = 10; + + // The fully qualified resource name of applied + // [controls](https://cloud.google.com/retail/docs/serving-control-rules). + repeated string applied_controls = 12; + + // The invalid + // [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs] + // that are not applied during serving. + repeated SearchRequest.BoostSpec.ConditionBoostSpec + invalid_condition_boost_specs = 14; } diff --git a/google/cloud/retail/v2/serving_config.proto b/google/cloud/retail/v2/serving_config.proto new file mode 100644 index 000000000..45f317d63 --- /dev/null +++ b/google/cloud/retail/v2/serving_config.proto @@ -0,0 +1,248 @@ +// 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 google.cloud.retail.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2/common.proto"; +import "google/cloud/retail/v2/search_service.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail"; +option java_multiple_files = true; +option java_outer_classname = "ServingConfigProto"; +option java_package = "com.google.cloud.retail.v2"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2"; +option ruby_package = "Google::Cloud::Retail::V2"; + +// Configures metadata that is used to generate serving time results (e.g. +// search results or recommendation predictions). +message ServingConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/ServingConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/servingConfigs/{serving_config}" + }; + + // Immutable. Fully qualified name + // `projects/*/locations/global/catalogs/*/servingConfig/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The human readable serving config display name. Used in Retail + // 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]; + + // The id of the model in the same [Catalog][google.cloud.retail.v2.Catalog] + // to use at serving time. Currently only RecommendationModels are supported: + // https://cloud.google.com/retail/recommendations-ai/docs/create-models + // Can be changed but only to a compatible model (e.g. + // others-you-may-like CTR to others-you-may-like CVR). + // + // Required when + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string model_id = 3; + + // How much price ranking we want in serving results. + // Price reranking causes product items with a similar + // recommendation probability to be ordered by price, with the + // highest-priced items first. This setting could result in a decrease in + // click-through and conversion rates. + // Allowed values are: + // + // * 'no-price-reranking' + // * 'low-price-raranking' + // * 'medium-price-reranking' + // * 'high-price-reranking' + // + // If not specified, we choose default based on model type. Default value: + // 'no-price-reranking'. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string price_reranking_level = 4; + + // Facet specifications for faceted search. If empty, no facets are returned. + // The ids refer to the ids of [Control][google.cloud.retail.v2.Control] + // resources with only the Facet control set. These controls are assumed to be + // in the same [Catalog][google.cloud.retail.v2.Catalog] as the + // [ServingConfig][google.cloud.retail.v2.ServingConfig]. + // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error + // is returned. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string facet_control_ids = 5; + + // The specification for dynamically generated facets. Notice that only + // textual facets can be dynamically generated. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + SearchRequest.DynamicFacetSpec dynamic_facet_spec = 6; + + // Condition boost specifications. If a product matches multiple conditions + // in the specifications, boost scores from these specifications are all + // applied and combined in a non-linear way. Maximum number of + // specifications is 100. + // + // Notice that if both + // [ServingConfig.boost_control_ids][google.cloud.retail.v2.ServingConfig.boost_control_ids] + // and + // [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + // are set, the boost conditions from both places are evaluated. If a search + // request matches multiple boost conditions, the final boost score is equal + // to the sum of the boost scores from all matched boost conditions. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string boost_control_ids = 7; + + // Condition filter specifications. If a product matches multiple conditions + // in the specifications, filters from these specifications are all + // applied and combined via the AND operator. Maximum number of + // specifications is 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string filter_control_ids = 9; + + // Condition redirect specifications. Only the first triggered redirect action + // is applied, even if multiple apply. Maximum number of specifications is + // 1000. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string redirect_control_ids = 10; + + // Condition synonyms specifications. If multiple syonyms conditions match, + // all matching synonyms control in the list will execute. Order of controls + // in the list will not matter. Maximum number of specifications is + // 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string twoway_synonyms_control_ids = 18; + + // Condition oneway synonyms specifications. If multiple oneway synonyms + // conditions match, all matching oneway synonyms controls in the list will + // execute. Order of controls in the list will not matter. Maximum number of + // specifications is 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string oneway_synonyms_control_ids = 12; + + // 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 + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string do_not_associate_control_ids = 13; + + // 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 + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string replacement_control_ids = 14; + + // 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. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string ignore_control_ids = 15; + + // 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 + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string diversity_level = 8; + + // Whether to add additional category filters on the 'similar-items' model. + // If not specified, we enable it by default. + // Allowed values are: + // + // * 'no-category-match': No additional filtering of original results from + // the model and the customer's filters. + // * 'relaxed-category-match': Only keep results with categories that match + // at least one item categories in the PredictRequests's context item. + // * If customer also sends filters in the PredictRequest, then the results + // will satisfy both conditions (user given and category match). + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string enable_category_filter_level = 16; + + // The specification for personalization spec. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2.ServingConfig.solution_types] is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + // + // Notice that if both + // [ServingConfig.personalization_spec][google.cloud.retail.v2.ServingConfig.personalization_spec] + // and + // [SearchRequest.personalization_spec][google.cloud.retail.v2.SearchRequest.personalization_spec] + // are set. + // [SearchRequest.personalization_spec][google.cloud.retail.v2.SearchRequest.personalization_spec] + // will override + // [ServingConfig.personalization_spec][google.cloud.retail.v2.ServingConfig.personalization_spec]. + SearchRequest.PersonalizationSpec personalization_spec = 21; + + // Required. Immutable. Specifies the solution types that a serving config can + // be associated with. Currently we support setting only one type of solution. + repeated SolutionType solution_types = 19 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; +} diff --git a/google/cloud/retail/v2/serving_config_service.proto b/google/cloud/retail/v2/serving_config_service.proto new file mode 100644 index 000000000..a4cabe26b --- /dev/null +++ b/google/cloud/retail/v2/serving_config_service.proto @@ -0,0 +1,240 @@ +// 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 google.cloud.retail.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/retail/v2/serving_config.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail"; +option java_multiple_files = true; +option java_outer_classname = "ServingConfigServiceProto"; +option java_package = "com.google.cloud.retail.v2"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2"; +option ruby_package = "Google::Cloud::Retail::V2"; + +// Service for modifying ServingConfig. +service ServingConfigService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a ServingConfig. + // + // A maximum of 100 [ServingConfig][google.cloud.retail.v2.ServingConfig]s are + // allowed in a [Catalog][google.cloud.retail.v2.Catalog], otherwise a + // FAILED_PRECONDITION error is returned. + rpc CreateServingConfig(CreateServingConfigRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + body: "serving_config" + }; + option (google.api.method_signature) = + "parent,serving_config,serving_config_id"; + } + + // Deletes a ServingConfig. + // + // Returns a NotFound error if the ServingConfig does not exist. + rpc DeleteServingConfig(DeleteServingConfigRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a ServingConfig. + rpc UpdateServingConfig(UpdateServingConfigRequest) returns (ServingConfig) { + option (google.api.http) = { + patch: "/v2/{serving_config.name=projects/*/locations/*/catalogs/*/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: "/v2/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all ServingConfigs linked to this catalog. + rpc ListServingConfigs(ListServingConfigsRequest) + returns (ListServingConfigsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Enables a Control on the specified ServingConfig. + // The control is added in the last position of the list of controls + // it belongs to (e.g. if it's a facet spec control it will be applied + // in the last position of servingConfig.facetSpecIds) + // Returns a ALREADY_EXISTS error if the control has already been applied. + // Returns a FAILED_PRECONDITION error if the addition could exceed maximum + // number of control allowed for that type of control. + rpc AddControl(AddControlRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:addControl" + body: "*" + }; + option (google.api.method_signature) = "serving_config"; + } + + // Disables a Control on the specified ServingConfig. + // The control is removed from the ServingConfig. + // Returns a NOT_FOUND error if the Control is not enabled for the + // ServingConfig. + rpc RemoveControl(RemoveControlRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:removeControl" + body: "*" + }; + option (google.api.method_signature) = "serving_config"; + } +} + +// Request for CreateServingConfig method. +message CreateServingConfigRequest { + // Required. Full resource name of parent. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The ServingConfig to create. + ServingConfig serving_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the ServingConfig, which will become the final + // component of the ServingConfig's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-_/. + string serving_config_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// 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.retail.v2.ServingConfig] to update. The + // following are NOT supported: + // + // * [ServingConfig.name][google.cloud.retail.v2.ServingConfig.name] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteServingConfig method. +message DeleteServingConfigRequest { + // Required. The resource name of the ServingConfig to delete. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; +} + +// Request for GetServingConfig method. +message GetServingConfigRequest { + // Required. The resource name of the ServingConfig to get. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; +} + +// Request for ListServingConfigs method. +message ListServingConfigsRequest { + // Required. The catalog resource name. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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 catalog. + repeated ServingConfig serving_configs = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} + +// Request for AddControl method. +message AddControlRequest { + // Required. The source ServingConfig resource name . Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id} + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; + + // Required. The id of the control to apply. Assumed to be in the same catalog + // as the serving config - if id is not found a NOT_FOUND error is returned. + string control_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for RemoveControl method. +message RemoveControlRequest { + // Required. The source ServingConfig resource name . Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id} + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; + + // Required. The id of the control to apply. Assumed to be in the same catalog + // as the serving config. + string control_id = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/retail/v2/user_event.proto b/google/cloud/retail/v2/user_event.proto index a1f7f217f..fc315f88f 100644 --- a/google/cloud/retail/v2/user_event.proto +++ b/google/cloud/retail/v2/user_event.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/cloud/retail/v2/common.proto"; import "google/cloud/retail/v2/product.proto"; @@ -40,7 +39,6 @@ message UserEvent { // * `add-to-cart`: Products being added to cart. // * `category-page-view`: Special pages such as sale or promotion pages // viewed. - // * `completion`: Completion query result showed/clicked. // * `detail-page-view`: Products detail page viewed. // * `home-page-view`: Homepage viewed. // * `promotion-offered`: Promotion is offered to a user. @@ -56,11 +54,15 @@ message UserEvent { // able to uniquely identify a visitor on a single device. This unique // identifier should not change if the visitor log in/out of the website. // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded model + // quality. + // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // // The field should not contain PII or user-data. We recommend to use Google - // Analystics [Client + // Analytics [Client // ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) // for this field. string visitor_id = 2 [(google.api.field_behavior) = REQUIRED]; @@ -113,7 +115,7 @@ message UserEvent { // The main product details related to the event. // - // This field is required for the following event types: + // This field is optional except for the following event types: // // * `add-to-cart` // * `detail-page-view` @@ -128,22 +130,35 @@ message UserEvent { // desired. The end user may have not finished browsing the whole page yet. repeated ProductDetail product_details = 6; - // The main completion details related to the event. + // The main auto-completion details related to the event. // - // In a `completion` event, this field represents the completions returned to - // the end user and the clicked completion by the end user. In a `search` - // event, it represents the search event happens after clicking completion. + // This field should be set for `search` event when autocomplete function is + // enabled and the user clicks a suggestion for search. CompletionDetail completion_detail = 22; // Extra user event features to include in the recommendation model. // - // The key must be a UTF-8 encoded string with a length limit of 5,000 - // characters. Otherwise, an INVALID_ARGUMENT error is returned. - // - // For product recommendation, an example of extra user information is - // traffic_channel, i.e. how user arrives at the site. Users can arrive - // at the site by coming to the site directly, or coming through Google - // search, and etc. + // If you provide custom attributes for ingested user events, also include + // them in the user events that you associate with prediction requests. Custom + // attribute formatting must be consistent between imported events and events + // provided with prediction requests. This lets the Retail API use + // those custom attributes when training models and serving predictions, which + // helps improve recommendation quality. + // + // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT + // error is returned: + // + // * The key must be a UTF-8 encoded string with a length limit of 5,000 + // characters. + // * For text attributes, at most 400 values are allowed. Empty values are not + // allowed. Each value must be a UTF-8 encoded string with a length limit of + // 256 characters. + // * For number attributes, at most 400 values are allowed. + // + // For product recommendations, an example of extra user information is + // traffic_channel, which is how a user arrives at the site. Users can arrive + // at the site by coming to the site directly, coming through Google + // search, or in other ways. map attributes = 7; // The ID or name of the associated shopping cart. This ID is used diff --git a/google/cloud/retail/v2/user_event_service.proto b/google/cloud/retail/v2/user_event_service.proto index 2d48a511d..9a917bc6c 100644 --- a/google/cloud/retail/v2/user_event_service.proto +++ b/google/cloud/retail/v2/user_event_service.proto @@ -79,9 +79,9 @@ service UserEventService { // synchronous. Events that already exist are skipped. // Use this method for backfilling historical user events. // - // Operation.response is of type ImportResponse. Note that it is + // `Operation.response` is of type `ImportResponse`. Note that it is // possible for a subset of the items to be successfully inserted. - // Operation.metadata is of type ImportMetadata. + // `Operation.metadata` is of type `ImportMetadata`. rpc ImportUserEvents(ImportUserEventsRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -94,13 +94,14 @@ service UserEventService { }; } - // Triggers a user event rejoin operation with latest product catalog. Events + // Starts a user event rejoin operation with latest product catalog. Events // will not be annotated with detailed product information if product is // missing from the catalog at the time the user event is ingested, and these // events are stored as unjoined events with a limited usage on training and - // serving. This API can be used to trigger a 'join' operation on specified + // serving. This method can be used to start a join operation on specified // events with latest version of product catalog. It can also be used to - // correct events joined with wrong product catalog. + // correct events joined with the wrong product catalog. A rejoin operation + // can take hours or days to complete. rpc RejoinUserEvents(RejoinUserEventsRequest) returns (google.longrunning.Operation) { option (google.api.http) = { diff --git a/google/cloud/retail/v2alpha/BUILD.bazel b/google/cloud/retail/v2alpha/BUILD.bazel index 17a676736..e2cd9275a 100644 --- a/google/cloud/retail/v2alpha/BUILD.bazel +++ b/google/cloud/retail/v2alpha/BUILD.bazel @@ -25,13 +25,20 @@ proto_library( "catalog_service.proto", "common.proto", "completion_service.proto", + "control.proto", + "control_service.proto", "export_config.proto", "import_config.proto", + "model.proto", + "model_service.proto", "prediction_service.proto", "product.proto", "product_service.proto", + "promotion.proto", "purge_config.proto", "search_service.proto", + "serving_config.proto", + "serving_config_service.proto", "user_event.proto", "user_event_service.proto", ], @@ -87,10 +94,13 @@ java_grpc_library( java_gapic_library( name = "retail_java_gapic", srcs = [":retail_proto_with_info"], + gapic_yaml = "retail_gapic.yaml", grpc_service_config = "retail_grpc_service_config.json", + service_yaml = "retail_v2alpha.yaml", test_deps = [ ":retail_java_grpc", ], + transport = "grpc+rest", deps = [ ":retail_java_proto", "//google/api:api_java_proto", @@ -100,11 +110,23 @@ java_gapic_library( java_gapic_test( name = "retail_java_gapic_test_suite", test_classes = [ + "com.google.cloud.retail.v2alpha.CatalogServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.CatalogServiceClientTest", + "com.google.cloud.retail.v2alpha.CompletionServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.CompletionServiceClientTest", + "com.google.cloud.retail.v2alpha.ControlServiceClientHttpJsonTest", + "com.google.cloud.retail.v2alpha.ControlServiceClientTest", + "com.google.cloud.retail.v2alpha.ModelServiceClientHttpJsonTest", + "com.google.cloud.retail.v2alpha.ModelServiceClientTest", + "com.google.cloud.retail.v2alpha.PredictionServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.PredictionServiceClientTest", + "com.google.cloud.retail.v2alpha.ProductServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.ProductServiceClientTest", + "com.google.cloud.retail.v2alpha.SearchServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.SearchServiceClientTest", + "com.google.cloud.retail.v2alpha.ServingConfigServiceClientHttpJsonTest", + "com.google.cloud.retail.v2alpha.ServingConfigServiceClientTest", + "com.google.cloud.retail.v2alpha.UserEventServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.UserEventServiceClientTest", ], runtime_deps = [":retail_java_gapic_test"], @@ -113,6 +135,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-retail-v2alpha-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":retail_java_gapic", ":retail_java_grpc", @@ -189,12 +213,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "retail_py_gapic", srcs = [":retail_proto"], grpc_service_config = "retail_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "retail_py_gapic_test", + srcs = [ + "retail_py_gapic_pytest.py", + "retail_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":retail_py_gapic"], ) # Open Source Packages @@ -266,6 +302,7 @@ nodejs_gapic_library( package = "google.cloud.retail.v2alpha", service_yaml = "retail_v2alpha.yaml", deps = [], + mixins = "google.longrunning.Operations;google.cloud.location.Locations", ) nodejs_gapic_assembly_pkg( @@ -301,8 +338,16 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "retail_ruby_gapic", srcs = [":retail_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-retail-v2alpha"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=retail.googleapis.com", + "ruby-cloud-api-shortname=retail", + "ruby-cloud-env-prefix=RETAIL", + "ruby-cloud-gem-name=google-cloud-retail-v2alpha", + "ruby-cloud-product-url=https://cloud.google.com/retail/docs/apis", + ], grpc_service_config = "retail_grpc_service_config.json", + ruby_cloud_description = "Retail enables you to build an end-to-end personalized recommendation system based on state-of-the-art deep learning ML models, without a need for expertise in ML or recommendation systems.", + ruby_cloud_title = "Retail V2alpha", deps = [ ":retail_ruby_grpc", ":retail_ruby_proto", @@ -346,6 +391,7 @@ csharp_gapic_library( srcs = [":retail_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "retail_grpc_service_config.json", + service_yaml = "retail_v2alpha.yaml", deps = [ ":retail_csharp_grpc", ":retail_csharp_proto", @@ -365,4 +411,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "retail_cc_proto", + deps = [":retail_proto"], +) + +cc_grpc_library( + name = "retail_cc_grpc", + srcs = [":retail_proto"], + grpc_only = True, + deps = [":retail_cc_proto"], +) diff --git a/google/cloud/retail/v2alpha/catalog.proto b/google/cloud/retail/v2alpha/catalog.proto index f628bb361..f6c114d7c 100644 --- a/google/cloud/retail/v2alpha/catalog.proto +++ b/google/cloud/retail/v2alpha/catalog.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2alpha; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2alpha/common.proto"; @@ -43,10 +42,10 @@ message ProductLevelConfig { // default to // [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY] // if unset. - // * `variant`: You can only ingest - // [Product.Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2alpha.Product]s. - // This means + // * `variant` (incompatible with Retail Search): You can only + // ingest + // [Product.Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT] + // [Product][google.cloud.retail.v2alpha.Product]s. This means // [Product.primary_product_id][google.cloud.retail.v2alpha.Product.primary_product_id] // cannot be empty. // @@ -57,8 +56,8 @@ message ProductLevelConfig { // [merchant_center_product_id_field][google.cloud.retail.v2alpha.ProductLevelConfig.merchant_center_product_id_field] // is `itemGroupId`, an INVALID_ARGUMENT error is returned. // - // See [Using product - // levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + // See [Product + // levels](https://cloud.google.com/retail/docs/catalog#product-levels) // for more details. string ingestion_product_type = 1; @@ -79,12 +78,259 @@ message ProductLevelConfig { // [ingestion_product_type][google.cloud.retail.v2alpha.ProductLevelConfig.ingestion_product_type] // is `variant`, an INVALID_ARGUMENT error is returned. // - // See [Using product - // levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + // See [Product + // levels](https://cloud.google.com/retail/docs/catalog#product-levels) // for more details. string merchant_center_product_id_field = 2; } +// Catalog level attribute config for an attribute. For example, if customers +// want to enable/disable facet for a specific attribute. +message CatalogAttribute { + // The type of an attribute. + enum AttributeType { + // The type of the attribute is unknown. + // + // Used when type cannot be derived from attribute that is not + // [in_use][google.cloud.retail.v2alpha.CatalogAttribute.in_use]. + UNKNOWN = 0; + + // Textual attribute. + TEXTUAL = 1; + + // Numerical attribute. + NUMERICAL = 2; + } + + // The status of the indexable option of a catalog attribute. + enum IndexableOption { + // Value used when unset. Defaults to + // [INDEXABLE_ENABLED][google.cloud.retail.v2alpha.CatalogAttribute.IndexableOption.INDEXABLE_ENABLED]. + INDEXABLE_OPTION_UNSPECIFIED = 0; + + // Indexable option enabled for an attribute. + INDEXABLE_ENABLED = 1; + + // Indexable option disabled for an attribute. + INDEXABLE_DISABLED = 2; + } + + // The status of the dynamic facetable option of a catalog attribute. + enum DynamicFacetableOption { + // Value used when unset. Defaults to + // [DYNAMIC_FACETABLE_ENABLED][google.cloud.retail.v2alpha.CatalogAttribute.DynamicFacetableOption.DYNAMIC_FACETABLE_ENABLED]. + DYNAMIC_FACETABLE_OPTION_UNSPECIFIED = 0; + + // Dynamic facetable option enabled for an attribute. + DYNAMIC_FACETABLE_ENABLED = 1; + + // Dynamic facetable option disabled for an attribute. + DYNAMIC_FACETABLE_DISABLED = 2; + } + + // The status of the searchable option of a catalog attribute. + enum SearchableOption { + // Value used when unset. Defaults to + // [SEARCHABLE_DISABLED][google.cloud.retail.v2alpha.CatalogAttribute.SearchableOption.SEARCHABLE_DISABLED]. + SEARCHABLE_OPTION_UNSPECIFIED = 0; + + // Searchable option enabled for an attribute. + SEARCHABLE_ENABLED = 1; + + // Searchable option disabled for an attribute. + SEARCHABLE_DISABLED = 2; + } + + // Required. Attribute name. + // For example: `color`, `brands`, `attributes.custom_attribute`, such as + // `attributes.xyz`. + // To be indexable, the attribute name can contain only alpha-numeric + // characters and underscores. For example, an attribute named + // `attributes.abc_xyz` can be indexed, but an attribute named + // `attributes.abc-xyz` cannot be indexed. + string key = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Indicates whether this attribute has been used by any + // products. `True` if at least one + // [Product][google.cloud.retail.v2alpha.Product] is using this attribute in + // [Product.attributes][google.cloud.retail.v2alpha.Product.attributes]. + // Otherwise, this field is `False`. + // + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] can be + // pre-loaded by using + // [CatalogService.AddCatalogAttribute][google.cloud.retail.v2alpha.CatalogService.AddCatalogAttribute], + // [CatalogService.ImportCatalogAttributes][google.cloud.retail.v2alpha.CatalogService.ImportCatalogAttributes], + // or + // [CatalogService.UpdateAttributesConfig][google.cloud.retail.v2alpha.CatalogService.UpdateAttributesConfig] + // APIs. This field is `False` for pre-loaded + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute]s. + // + // Only pre-loaded + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute]s that are + // neither in use by products nor predefined can be deleted. + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute]s that are + // either in use by products or are predefined cannot be deleted; however, + // their configuration properties will reset to default values upon removal + // request. + // + // After catalog changes, it takes about 10 minutes for this field to update. + bool in_use = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of this attribute. This is derived from the attribute + // in [Product.attributes][google.cloud.retail.v2alpha.Product.attributes]. + AttributeType type = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // When + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2alpha.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values + // are indexed so that it can be filtered, faceted, or boosted in + // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]. + IndexableOption indexable_option = 5; + + // If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic + // facet. Could only be DYNAMIC_FACETABLE_DISABLED if + // [CatalogAttribute.indexable_option][google.cloud.retail.v2alpha.CatalogAttribute.indexable_option] + // is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. + DynamicFacetableOption dynamic_facetable_option = 6; + + // When + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2alpha.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values + // are searchable by text queries in + // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]. + // + // If SEARCHABLE_ENABLED but attribute type is numerical, attribute values + // will not be searchable by text queries in + // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search], + // as there are no text values associated to numerical attributes. + SearchableOption searchable_option = 7; + + // When + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2alpha.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if RECOMMENDATIONS_FILTERING_ENABLED, + // attribute values are filterable for recommendations. + // This option works for categorical features only, + // does not work for numerical features, inventory filtering. + RecommendationsFilteringOption recommendations_filtering_option = 8; +} + +// Catalog level attribute config. +message AttributesConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/AttributesConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/attributesConfig" + }; + + // Required. Immutable. The fully qualified resource name of the attribute + // config. Format: `projects/*/locations/*/catalogs/*/attributesConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Enable attribute(s) config at catalog level. + // For example, indexable, dynamic_facetable, or searchable for each + // attribute. + // + // The key is catalog attribute's name. + // For example: `color`, `brands`, `attributes.custom_attribute`, such as + // `attributes.xyz`. + // + // The maximum number of catalog attributes allowed in a request is 1000. + map catalog_attributes = 2; + + // Output only. The + // [AttributeConfigLevel][google.cloud.retail.v2alpha.AttributeConfigLevel] + // used for this catalog. + AttributeConfigLevel attribute_config_level = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Catalog level autocomplete config for customers to customize autocomplete +// feature's settings. +message CompletionConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/CompletionConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/completionConfig" + }; + + // Required. Immutable. Fully qualified name + // `projects/*/locations/*/catalogs/*/completionConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Specifies the matching order for autocomplete suggestions, e.g., a query + // consisting of 'sh' with 'out-of-order' specified would suggest "women's + // shoes", whereas a query of 'red s' with 'exact-prefix' specified would + // suggest "red shoes". Currently supported values: + // + // * 'out-of-order' + // * 'exact-prefix' + // + // Default value: 'exact-prefix'. + string matching_order = 2; + + // The maximum number of autocomplete suggestions returned per term. Default + // value is 20. If left unset or set to 0, then will fallback to default + // value. + // + // Value range is 1 to 20. + int32 max_suggestions = 3; + + // The minimum number of characters needed to be typed in order to get + // suggestions. Default value is 2. If left unset or set to 0, then will + // fallback to default value. + // + // Value range is 1 to 20. + int32 min_prefix_length = 4; + + // If set to true, the auto learning function is enabled. Auto learning uses + // user data to generate suggestions using ML techniques. Default value is + // false. Only after enabling auto learning can users use `cloud-retail` + // data in + // [CompleteQueryRequest][google.cloud.retail.v2alpha.CompleteQueryRequest]. + bool auto_learning = 11; + + // Output only. The source data for the latest import of the autocomplete + // suggestion phrases. + CompletionDataInputConfig suggestions_input_config = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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. + string last_suggestions_import_operation = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The source data for the latest import of the autocomplete + // denylist phrases. + CompletionDataInputConfig denylist_input_config = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the LRO corresponding to the latest denylist import. + // + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to + // retrieve the latest state of the Long Running Operation. + string last_denylist_import_operation = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The source data for the latest import of the autocomplete + // allowlist phrases. + CompletionDataInputConfig allowlist_input_config = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the LRO corresponding to the latest allowlist import. + // + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to + // retrieve the latest state of the Long Running Operation. + string last_allowlist_import_operation = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // 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. @@ -110,6 +356,25 @@ message MerchantCenterLink { // _ads", "Free_listings", "Free_local_listings" // NOTE: The string values are case sensitive. repeated string destinations = 3; + + // Region code of offers to accept. 2-letter Uppercase ISO 3166-1 alpha-2 + // code. List of values can be found + // [here](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) + // under the `region` tag. If left blank no region filtering will be + // performed. + // + // Example value: `US`. + string region_code = 4; + + // Language of the title/description and other string attributes. Use language + // tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). + // ISO 639-1. + // + // This specifies the language of offers in Merchant Center that will be + // accepted. If empty no language filtering will be performed. + // + // Example value: `en`. + string language_code = 5; } // Configures Merchant Center linking. diff --git a/google/cloud/retail/v2alpha/catalog_service.proto b/google/cloud/retail/v2alpha/catalog_service.proto index ac77b9240..088c01922 100644 --- a/google/cloud/retail/v2alpha/catalog_service.proto +++ b/google/cloud/retail/v2alpha/catalog_service.proto @@ -91,10 +91,6 @@ service CatalogService { // (if branch is not explicitly set). // * UserEventService will only join events with products from branch // {newBranch}. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. rpc SetDefaultBranch(SetDefaultBranchRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -107,10 +103,6 @@ service CatalogService { // Get which branch is currently default branch set by // [CatalogService.SetDefaultBranch][google.cloud.retail.v2alpha.CatalogService.SetDefaultBranch] // method under a specified parent catalog. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. rpc GetDefaultBranch(GetDefaultBranchRequest) returns (GetDefaultBranchResponse) { option (google.api.http) = { @@ -118,6 +110,97 @@ service CatalogService { }; option (google.api.method_signature) = "catalog"; } + + // Gets a [CompletionConfig][google.cloud.retail.v2alpha.CompletionConfig]. + rpc GetCompletionConfig(GetCompletionConfigRequest) + returns (CompletionConfig) { + option (google.api.http) = { + get: "/v2alpha/{name=projects/*/locations/*/catalogs/*/completionConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the + // [CompletionConfig][google.cloud.retail.v2alpha.CompletionConfig]s. + rpc UpdateCompletionConfig(UpdateCompletionConfigRequest) + returns (CompletionConfig) { + option (google.api.http) = { + patch: "/v2alpha/{completion_config.name=projects/*/locations/*/catalogs/*/completionConfig}" + body: "completion_config" + }; + option (google.api.method_signature) = "completion_config,update_mask"; + } + + // Gets an [AttributesConfig][google.cloud.retail.v2alpha.AttributesConfig]. + rpc GetAttributesConfig(GetAttributesConfigRequest) + returns (AttributesConfig) { + option (google.api.http) = { + get: "/v2alpha/{name=projects/*/locations/*/catalogs/*/attributesConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the + // [AttributesConfig][google.cloud.retail.v2alpha.AttributesConfig]. + // + // The catalog attributes in the request will be updated in the catalog, or + // inserted if they do not exist. Existing catalog attributes not included in + // the request will remain unchanged. Attributes that are assigned to + // products, but do not exist at the catalog level, are always included in the + // response. The product attribute is assigned default values for missing + // catalog attribute fields, e.g., searchable and dynamic facetable options. + rpc UpdateAttributesConfig(UpdateAttributesConfigRequest) + returns (AttributesConfig) { + option (google.api.http) = { + patch: "/v2alpha/{attributes_config.name=projects/*/locations/*/catalogs/*/attributesConfig}" + body: "attributes_config" + }; + option (google.api.method_signature) = "attributes_config,update_mask"; + } + + // Adds the specified + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] to the + // [AttributesConfig][google.cloud.retail.v2alpha.AttributesConfig]. + // + // If the [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] to + // add already exists, an ALREADY_EXISTS error is returned. + rpc AddCatalogAttribute(AddCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2alpha/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:addCatalogAttribute" + body: "*" + }; + } + + // Removes the specified + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] from the + // [AttributesConfig][google.cloud.retail.v2alpha.AttributesConfig]. + // + // If the [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] to + // remove does not exist, a NOT_FOUND error is returned. + rpc RemoveCatalogAttribute(RemoveCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2alpha/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:removeCatalogAttribute" + body: "*" + }; + } + + // Replaces the specified + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] in the + // [AttributesConfig][google.cloud.retail.v2alpha.AttributesConfig] by + // updating the catalog attribute with the same + // [CatalogAttribute.key][google.cloud.retail.v2alpha.CatalogAttribute.key]. + // + // If the [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] to + // replace does not exist, a NOT_FOUND error is returned. + rpc ReplaceCatalogAttribute(ReplaceCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2alpha/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:replaceCatalogAttribute" + body: "*" + }; + } } // Request for @@ -205,6 +288,10 @@ message SetDefaultBranchRequest { // // This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT // error is returned. + // + // If there are no sufficient active products in the targeted branch and + // [force][google.cloud.retail.v2alpha.SetDefaultBranchRequest.force] is not + // set, a FAILED_PRECONDITION error is returned. string branch_id = 2 [ (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } ]; @@ -216,6 +303,11 @@ message SetDefaultBranchRequest { // This field must be a UTF-8 encoded string with a length limit of 1,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string note = 3; + + // If set to true, it permits switching to a branch with + // [branch_id][google.cloud.retail.v2alpha.SetDefaultBranchRequest.branch_id] + // even if it has no sufficient active products. + bool force = 4; } // Request message to show which branch is currently the default branch. @@ -243,3 +335,144 @@ message GetDefaultBranchResponse { // field, when this branch was set as default. string note = 3; } + +// Request for +// [CatalogService.GetCompletionConfig][google.cloud.retail.v2alpha.CatalogService.GetCompletionConfig] +// method. +message GetCompletionConfigRequest { + // Required. Full CompletionConfig resource name. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/completionConfig + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/CompletionConfig" + } + ]; +} + +// Request for +// [CatalogService.UpdateCompletionConfig][google.cloud.retail.v2alpha.CatalogService.UpdateCompletionConfig] +// method. +message UpdateCompletionConfigRequest { + // Required. The + // [CompletionConfig][google.cloud.retail.v2alpha.CompletionConfig] to update. + // + // If the caller does not have permission to update the + // [CompletionConfig][google.cloud.retail.v2alpha.CompletionConfig], then a + // PERMISSION_DENIED error is returned. + // + // If the [CompletionConfig][google.cloud.retail.v2alpha.CompletionConfig] to + // update does not exist, a NOT_FOUND error is returned. + CompletionConfig completion_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [CompletionConfig][google.cloud.retail.v2alpha.CompletionConfig] to update. + // The following are the only supported fields: + // + // * [CompletionConfig.matching_order][google.cloud.retail.v2alpha.CompletionConfig.matching_order] + // * [CompletionConfig.max_suggestions][google.cloud.retail.v2alpha.CompletionConfig.max_suggestions] + // * [CompletionConfig.min_prefix_length][google.cloud.retail.v2alpha.CompletionConfig.min_prefix_length] + // * [CompletionConfig.auto_learning][google.cloud.retail.v2alpha.CompletionConfig.auto_learning] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for +// [CatalogService.GetAttributesConfig][google.cloud.retail.v2alpha.CatalogService.GetAttributesConfig] +// method. +message GetAttributesConfigRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; +} + +// Request for +// [CatalogService.UpdateAttributesConfig][google.cloud.retail.v2alpha.CatalogService.UpdateAttributesConfig] +// method. +message UpdateAttributesConfigRequest { + // Required. The + // [AttributesConfig][google.cloud.retail.v2alpha.AttributesConfig] to update. + AttributesConfig attributes_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [AttributesConfig][google.cloud.retail.v2alpha.AttributesConfig] to update. + // The following is the only supported field: + // + // * [AttributesConfig.catalog_attributes][google.cloud.retail.v2alpha.AttributesConfig.catalog_attributes] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for +// [CatalogService.AddCatalogAttribute][google.cloud.retail.v2alpha.CatalogService.AddCatalogAttribute] +// method. +message AddCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] to add. + CatalogAttribute catalog_attribute = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for +// [CatalogService.RemoveCatalogAttribute][google.cloud.retail.v2alpha.CatalogService.RemoveCatalogAttribute] +// method. +message RemoveCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The attribute name key of the + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] to remove. + string key = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for +// [CatalogService.ReplaceCatalogAttribute][google.cloud.retail.v2alpha.CatalogService.ReplaceCatalogAttribute] +// method. +message ReplaceCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The updated + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute]. + CatalogAttribute catalog_attribute = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] to update. + // The following are NOT supported: + // + // * [CatalogAttribute.key][google.cloud.retail.v2alpha.CatalogAttribute.key] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 3; +} diff --git a/google/cloud/retail/v2alpha/common.proto b/google/cloud/retail/v2alpha/common.proto index fac3529b3..02cf05ba8 100644 --- a/google/cloud/retail/v2alpha/common.proto +++ b/google/cloud/retail/v2alpha/common.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2alpha; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; @@ -29,6 +28,298 @@ option objc_class_prefix = "RETAIL"; option php_namespace = "Google\\Cloud\\Retail\\V2alpha"; option ruby_package = "Google::Cloud::Retail::V2alpha"; +// At which level we offer configuration for attributes. +enum AttributeConfigLevel { + // Value used when unset. In this case, server behavior defaults to + // [CATALOG_LEVEL_ATTRIBUTE_CONFIG][google.cloud.retail.v2alpha.AttributeConfigLevel.CATALOG_LEVEL_ATTRIBUTE_CONFIG]. + ATTRIBUTE_CONFIG_LEVEL_UNSPECIFIED = 0; + + // At this level, we honor the attribute configurations set in + // [Product.attributes][google.cloud.retail.v2alpha.Product.attributes]. + PRODUCT_LEVEL_ATTRIBUTE_CONFIG = 1; + + // At this level, we honor the attribute configurations set in + // [CatalogConfig.attribute_configs][google.cloud.retail.v2alpha.CatalogConfig.attribute_configs]. + CATALOG_LEVEL_ATTRIBUTE_CONFIG = 2; +} + +// The type of solution. +enum SolutionType { + // Default value. + SOLUTION_TYPE_UNSPECIFIED = 0; + + // Used for Recommendations AI. + SOLUTION_TYPE_RECOMMENDATION = 1; + + // Used for Retail Search. + SOLUTION_TYPE_SEARCH = 2; +} + +// If filtering for recommendations is enabled. +enum RecommendationsFilteringOption { + // Value used when unset. + // In this case, server behavior defaults to + // [RECOMMENDATIONS_FILTERING_DISABLED][google.cloud.retail.v2alpha.RecommendationsFilteringOption.RECOMMENDATIONS_FILTERING_DISABLED]. + RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED = 0; + + // Recommendation filtering is disabled. + RECOMMENDATIONS_FILTERING_DISABLED = 1; + + // Recommendation filtering is enabled. + RECOMMENDATIONS_FILTERING_ENABLED = 3; +} + +// The use case of Cloud Retail Search. +enum SearchSolutionUseCase { + // The value when it's unspecified. In this case, server behavior defaults to + // [SEARCH_SOLUTION_USE_CASE_SEARCH][]. + SEARCH_SOLUTION_USE_CASE_UNSPECIFIED = 0; + + // Search use case. Expects the traffic has a non-empty + // [query][google.cloud.retail.v2alpha.SearchRequest.query]. + SEARCH_SOLUTION_USE_CASE_SEARCH = 1; + + // Browse use case. Expects the traffic has an empty + // [query][google.cloud.retail.v2alpha.SearchRequest.query]. + SEARCH_SOLUTION_USE_CASE_BROWSE = 2; +} + +// Metadata that is used to define a condition that triggers an action. +// A valid condition must specify at least one of 'query_terms' or +// 'products_filter'. If multiple fields are specified, the condition is met if +// all the fields are satisfied e.g. if a set of query terms and product_filter +// are set, then only items matching the product_filter for requests with a +// query matching the query terms wil get boosted. +message Condition { + // Query terms that we want to match on. + message QueryTerm { + // The value of the term to match on. + // Value cannot be empty. + // Value can have at most 3 terms if specified as a partial match. Each + // space separated string is considered as one term. + // Example) "a b c" is 3 terms and allowed, " a b c d" is 4 terms and not + // allowed for partial match. + string value = 1; + + // Whether this is supposed to be a full or partial match. + bool full_match = 2; + } + + // Used for time-dependent conditions. + // Example: Want to have rule applied for week long sale. + message TimeRange { + // Start of time range. Range is inclusive. + google.protobuf.Timestamp start_time = 1; + + // End of time range. Range is inclusive. + google.protobuf.Timestamp end_time = 2; + } + + // A list (up to 10 entries) of terms to match the query on. If not + // specified, match all queries. + // If many query terms are specified, the condition + // is matched if any of the terms is a match (i.e. using the OR operator). + repeated QueryTerm query_terms = 1; + + // Range of time(s) specifying when Condition is active. + // Condition true if any time range matches. + repeated TimeRange active_time_range = 3; +} + +// A rule is a condition-action pair +// * A condition defines when a rule is to be triggered. +// * An action specifies what occurs on that trigger. +// Currently only boost rules are supported. +// Currently only supported by the search endpoint. +message Rule { + // A boost action to apply to results matching condition specified above. + message BoostAction { + // Strength of the condition boost, which must be in [-1, 1]. Negative + // boost means demotion. Default is 0.0. + // + // Setting to 1.0 gives the item a big promotion. However, it does not + // necessarily mean that the boosted item will be the top result at all + // times, nor that other items 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 items. + // + // Setting to -1.0 gives the item a big demotion. However, results that + // are deeply relevant might still be shown. The item will have 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. + float boost = 1; + + // The filter can have a max size of 5000 characters. + // An expression which specifies which products to apply an action to. + // The syntax and supported fields are the same as a filter expression. See + // [SearchRequest.filter][google.cloud.retail.v2alpha.SearchRequest.filter] + // for detail syntax and limitations. + // + // Examples: + // + // * To boost products with product ID "product_1" or "product_2", and + // color + // "Red" or "Blue":
    + // *(id: ANY("product_1", "product_2"))
    * + // *AND
    * + // *(colorFamilies: ANY("Red", "Blue"))
    * + string products_filter = 2; + } + + // * 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. + // * 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 { + // A filter to apply on the matching condition results. Supported features: + // + // * [filter][google.cloud.retail.v2alpha.Rule.FilterAction.filter] must be + // 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). + // * To filter products with product ID "product_1" or "product_2", and + // color + // "Red" or "Blue":
    + // *(id: ANY("product_1", "product_2"))
    * + // *AND
    * + // *(colorFamilies: ANY("Red", "Blue"))
    * + string filter = 1; + } + + // Redirects a shopper to a specific page. + // + // * Rule Condition: + // - Must specify + // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms]. + // * Action Input: Request Query + // * Action Result: Redirects shopper to provided uri. + message RedirectAction { + // URL must have length equal or less than 2000 characters. + string redirect_uri = 1; + } + + // Creates a set of terms that will be treated as synonyms of each other. + // Example: synonyms of "sneakers" and "shoes". + // * "sneakers" will use a synonym of "shoes". + // * "shoes" will use a synonym of "sneakers". + message TwowaySynonymsAction { + // Defines a set of synonyms. + // Can specify up to 100 synonyms. + // Must specify at least 2 synonyms. + repeated string synonyms = 1; + } + + // Maps a set of terms to a set of synonyms. + // Set of synonyms will be treated as synonyms of each query term only. + // `query_terms` will not be treated as synonyms of each other. + // Example: "sneakers" will use a synonym of "shoes". + // "shoes" will not use a synonym of "sneakers". + message OnewaySynonymsAction { + // Terms from the search query. + // Will treat synonyms as their synonyms. + // Not themselves synonyms of the synonyms. + // Can specify up to 100 terms. + repeated string query_terms = 3; + + // Defines a set of synonyms. + // Cannot contain duplicates. + // Can specify up to 100 synonyms. + repeated string synonyms = 4; + + // Will be [deprecated = true] post migration; + repeated string oneway_terms = 2; + } + + // Prevents `query_term` from being associated with specified terms during + // search. + // Example: Don't associate "gShoe" and "cheap". + message DoNotAssociateAction { + // Terms from the search query. + // Will not consider do_not_associate_terms for search if in search query. + // Can specify up to 100 terms. + repeated string query_terms = 2; + + // Cannot contain duplicates or the query term. + // Can specify up to 100 terms. + repeated string do_not_associate_terms = 3; + + // Will be [deprecated = true] post migration; + repeated string terms = 1; + } + + // Replaces a term in the query. Multiple replacement candidates can be + // specified. All `query_terms` will be replaced with the replacement term. + // Example: Replace "gShoe" with "google shoe". + message ReplacementAction { + // Terms from the search query. + // Will be replaced by replacement term. + // Can specify up to 100 terms. + repeated string query_terms = 2; + + // Term that will be used for replacement. + string replacement_term = 3; + + // Will be [deprecated = true] post migration; + string term = 1; + } + + // Prevents a term in the query from being used in search. + // Example: Don't search for "shoddy". + message IgnoreAction { + // Terms to ignore in the search query. + repeated string ignore_terms = 1; + } + + // An action must be provided. + oneof action { + // A boost action. + BoostAction boost_action = 2; + + // Redirects a shopper to a specific page. + RedirectAction redirect_action = 3; + + // Treats specific term as a synonym with a group of terms. + // Group of terms will not be treated as synonyms with the specific term. + OnewaySynonymsAction oneway_synonyms_action = 6; + + // Prevents term from being associated with other terms. + DoNotAssociateAction do_not_associate_action = 7; + + // Replaces specific terms in the query. + ReplacementAction replacement_action = 8; + + // Ignores specific terms from query during search. + IgnoreAction ignore_action = 9; + + // Filters results. + FilterAction filter_action = 10; + + // Treats a set of terms as synonyms of one another. + TwowaySynonymsAction twoway_synonyms_action = 11; + } + + // Required. The condition that triggers the rule. + // If the condition is empty, the rule will always apply. + Condition condition = 1 [(google.api.field_behavior) = REQUIRED]; +} + // An intended audience of the [Product][google.cloud.retail.v2alpha.Product] // for whom it's sold. message Audience { @@ -100,9 +391,8 @@ message CustomAttribute { // The textual values of this custom attribute. For example, `["yellow", // "green"]` when the key is "color". // - // At most 400 values are allowed. Empty values are not allowed. Each value - // must be a UTF-8 encoded string with a length limit of 256 characters. - // Otherwise, an INVALID_ARGUMENT error is returned. + // Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is + // returned. // // Exactly one of [text][google.cloud.retail.v2alpha.CustomAttribute.text] or // [numbers][google.cloud.retail.v2alpha.CustomAttribute.numbers] should be @@ -112,14 +402,17 @@ message CustomAttribute { // The numerical values of this custom attribute. For example, `[2.3, 15.4]` // when the key is "lengths_cm". // - // At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is - // returned. - // // Exactly one of [text][google.cloud.retail.v2alpha.CustomAttribute.text] or // [numbers][google.cloud.retail.v2alpha.CustomAttribute.numbers] should be // set. Otherwise, an INVALID_ARGUMENT error is returned. repeated double numbers = 2; + // This field is normally ignored unless + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2alpha.AttributesConfig.attribute_config_level] + // of the [Catalog][google.cloud.retail.v2alpha.Catalog] is set to the + // deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about + // product-level attribute configuration, see [Configuration + // modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). // If true, custom attribute values are searchable by text queries in // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]. // @@ -128,9 +421,15 @@ message CustomAttribute { // // Only set if type [text][google.cloud.retail.v2alpha.CustomAttribute.text] // is set. Otherwise, a INVALID_ARGUMENT error is returned. - optional bool searchable = 3; - - // If true, custom attribute values are indexed, so that it can be filtered, + optional bool searchable = 3 [deprecated = true]; + + // This field is normally ignored unless + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2alpha.AttributesConfig.attribute_config_level] + // of the [Catalog][google.cloud.retail.v2alpha.Catalog] is set to the + // deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about + // product-level attribute configuration, see [Configuration + // modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). + // If true, custom attribute values are indexed, so that they can be filtered, // faceted or boosted in // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]. // @@ -143,7 +442,7 @@ message CustomAttribute { // and // [SearchRequest.boost_spec][google.cloud.retail.v2alpha.SearchRequest.boost_spec] // for more details. - optional bool indexable = 4; + optional bool indexable = 4 [deprecated = true]; } // Fulfillment information, such as the store IDs for in-store pickup or region @@ -182,7 +481,10 @@ message FulfillmentInfo { repeated string place_ids = 2; } -// [Product][google.cloud.retail.v2alpha.Product] thumbnail/detail image. +// [Product][google.cloud.retail.v2alpha.Product] image. Recommendations AI and +// Retail Search do not use product images to improve prediction and search +// results. However, product images can be returned in results, and are shown in +// prediction or search previews in the console. message Image { // Required. URI of the image. // @@ -212,9 +514,8 @@ message Interval { // The lower bound of the interval. If neither of the min fields are set, then // the lower bound is negative infinity. // - // This field must be not larger than - // [max][google.cloud.retail.v2alpha.Interval.max]. Otherwise, an - // INVALID_ARGUMENT error is returned. + // This field must not be larger than max. + // Otherwise, an INVALID_ARGUMENT error is returned. oneof min { // Inclusive lower bound. double minimum = 1; @@ -226,9 +527,8 @@ message Interval { // The upper bound of the interval. If neither of the max fields are set, then // the upper bound is positive infinity. // - // This field must be not smaller than - // [min][google.cloud.retail.v2alpha.Interval.min]. Otherwise, an - // INVALID_ARGUMENT error is returned. + // This field must be not smaller than min. + // Otherwise, an INVALID_ARGUMENT error is returned. oneof max { // Inclusive upper bound. double maximum = 3; @@ -281,11 +581,15 @@ message PriceInfo { // // Google Merchant Center property // [price](https://support.google.com/merchants/answer/6324371). Schema.org - // property [Offer.priceSpecification](https://schema.org/priceSpecification). + // property [Offer.price](https://schema.org/price). float price = 2; // Price of the product without any discount. If zero, by default set to be - // the [price][google.cloud.retail.v2alpha.PriceInfo.price]. + // the [price][google.cloud.retail.v2alpha.PriceInfo.price]. If set, + // [original_price][google.cloud.retail.v2alpha.PriceInfo.original_price] + // should be greater than or equal to + // [price][google.cloud.retail.v2alpha.PriceInfo.price], otherwise an + // INVALID_ARGUMENT error is thrown. float original_price = 3; // The costs associated with the sale of a particular product. Used for gross @@ -372,21 +676,30 @@ message Rating { // Information of an end user. message UserInfo { // Highly recommended for logged-in users. Unique identifier for logged-in - // user, such as a user name. + // user, such as a user name. Don't set for anonymous users. + // + // Always use a hashed value for this ID. + // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded + // model quality. // // 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_id = 1; - // The end user's IP address. Required for getting - // [SearchResponse.sponsored_results][google.cloud.retail.v2alpha.SearchResponse.sponsored_results]. - // This field is used to extract location information for personalization. + // The end user's IP address. This field is used to extract location + // information for personalization. // // This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 // address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an // INVALID_ARGUMENT error is returned. // - // This should not be set when using the JavaScript tag in + // This should not be set when: + // + // * setting + // [SearchRequest.user_info][google.cloud.retail.v2alpha.SearchRequest.user_info]. + // * using the JavaScript tag in // [UserEventService.CollectUserEvent][google.cloud.retail.v2alpha.UserEventService.CollectUserEvent] // or if // [direct_user_request][google.cloud.retail.v2alpha.UserInfo.direct_user_request] @@ -419,20 +732,6 @@ message UserInfo { bool direct_user_request = 4; } -// Promotion information. -message Promotion { - // ID of the promotion. For example, "free gift". - // - // The value value must be a UTF-8 encoded string with a length limit of 128 - // characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, - // 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). - string promotion_id = 1; -} - // The inventory information at a place (e.g. a store) identified // by a place ID. message LocalInventory { @@ -447,16 +746,46 @@ message LocalInventory { // Additional local inventory attributes, for example, store name, promotion // tags, etc. - // * At most 5 values are allowed. Otherwise, an INVALID_ARGUMENT error is - // returned. - // * The key must be a UTF-8 encoded string with a length limit of 10 + // + // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT + // error is returned: + // + // * At most 30 attributes are allowed. + // * The key must be a UTF-8 encoded string with a length limit of 32 // characters. // * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, // key0LikeThis or KEY_1_LIKE_THIS. // * The attribute values must be of the same type (text or number). - // * The max number of values per attribute is 10. - // * For text values, the length limit is 10 UTF-8 characters. + // * Only 1 value is allowed for each attribute. + // * For text values, the length limit is 256 UTF-8 characters. // * The attribute does not support search. The `searchable` field should be // unset or set to false. + // * The max summed total bytes of custom attribute keys and values per + // product is 5MiB. map attributes = 3; + + // Input only. Supported fulfillment types. Valid fulfillment type values + // include commonly used types (such as pickup in store and same day + // delivery), and custom types. Customers have to map custom types to their + // display names before rendering UI. + // + // Supported values: + // + // * "pickup-in-store" + // * "ship-to-store" + // * "same-day-delivery" + // * "next-day-delivery" + // * "custom-type-1" + // * "custom-type-2" + // * "custom-type-3" + // * "custom-type-4" + // * "custom-type-5" + // + // If this field is set to an invalid value other than these, an + // INVALID_ARGUMENT error is returned. + // + // All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is + // returned. + repeated string fulfillment_types = 4 + [(google.api.field_behavior) = INPUT_ONLY]; } diff --git a/google/cloud/retail/v2alpha/completion_service.proto b/google/cloud/retail/v2alpha/completion_service.proto index 6cd364e95..9f399d223 100644 --- a/google/cloud/retail/v2alpha/completion_service.proto +++ b/google/cloud/retail/v2alpha/completion_service.proto @@ -36,8 +36,7 @@ option ruby_package = "Google::Cloud::Retail::V2alpha"; // Auto-completion service for retail. // // This feature is only available for users who have Retail Search enabled. -// Please submit a form [here](https://cloud.google.com/contact) to contact -// cloud sales if you are interested in using Retail Search. +// Please enable Retail Search on Cloud Console before using this feature. service CompletionService { option (google.api.default_host) = "retail.googleapis.com"; option (google.api.oauth_scopes) = @@ -46,8 +45,7 @@ service CompletionService { // Completes the specified prefix with keyword suggestions. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc CompleteQuery(CompleteQueryRequest) returns (CompleteQueryResponse) { option (google.api.http) = { get: "/v2alpha/{catalog=projects/*/locations/*/catalogs/*}:completeQuery" @@ -56,11 +54,13 @@ service CompletionService { // Bulk import of processed completion dataset. // - // Request processing may be synchronous. Partial updating is not supported. + // Request processing is asynchronous. Partial updating is not supported. + // + // The operation is successfully finished only after the imported suggestions + // are indexed successfully and ready for serving. The process takes hours. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc ImportCompletionData(ImportCompletionDataRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -90,22 +90,24 @@ message CompleteQueryRequest { // The maximum number of allowed characters is 255. string query = 2 [(google.api.field_behavior) = REQUIRED]; - // A unique identifier for tracking visitors. For example, this could be - // implemented with an HTTP cookie, which should be able to uniquely identify - // a visitor on a single device. This unique identifier should not change if - // the visitor logs in or out of the website. + // Required field. 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. // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string visitor_id = 7; - // The list of languages of the query. This is - // the BCP-47 language code, such as "en-US" or "sr-Latn". - // For more information, see - // [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). + // Note that this field applies for `user-data` dataset only. For requests + // with `cloud-retail` dataset, setting this field has no effect. // - // The maximum number of allowed characters is 255. - // Only "en-US" is currently supported. + // The language filters applied to the output suggestions. If set, it should + // contain the language of the query. If not set, suggestions are returned + // without considering language restrictions. This is the BCP-47 language + // code, such as "en-US" or "sr-Latn". For more information, see [Tags for + // Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum + // number of language codes is 3. repeated string language_codes = 3; // The device type context for completion suggestions. @@ -134,9 +136,9 @@ message CompleteQueryRequest { // // * user-data // - // * cloud-retail - // This option requires additional allowlisting. Before using cloud-retail, - // contact Cloud Retail support team first. + // * cloud-retail: + // This option requires enabling auto-learning function first. See + // [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). string dataset = 6; // Completion max suggestions. If left unset or set to 0, then will fallback @@ -155,7 +157,15 @@ message CompleteQueryResponse { // The suggestion for the query. string suggestion = 1; - // Additional custom attributes ingested through BigQuery. + // Custom attributes for the suggestion term. + // + // * For "user-data", the attributes are additional custom attributes + // ingested through BigQuery. + // + // * For "cloud-retail", the attributes are product attributes generated + // by Cloud Retail. It requires + // [UserEvent.product_details][google.cloud.retail.v2alpha.UserEvent.product_details] + // is imported properly. map attributes = 2; } @@ -170,9 +180,9 @@ message CompleteQueryResponse { repeated CompletionResult completion_results = 1; // A unique complete token. This should be included in the - // [SearchRequest][google.cloud.retail.v2alpha.SearchRequest] resulting from - // this completion, which enables accurate attribution of complete model - // performance. + // [UserEvent.completion_detail][google.cloud.retail.v2alpha.UserEvent.completion_detail] + // for search events resulting from this completion, which enables accurate + // attribution of complete model performance. string attribution_token = 2; // Matched recent searches of this user. The maximum number of recent searches @@ -183,11 +193,15 @@ message CompleteQueryResponse { // [CompleteQueryRequest.visitor_id][google.cloud.retail.v2alpha.CompleteQueryRequest.visitor_id] // field is set and [UserEvent][google.cloud.retail.v2alpha.UserEvent] is // imported. The recent searches satisfy the follow rules: + // // * They are ordered from latest to oldest. + // // * They are matched with // [CompleteQueryRequest.query][google.cloud.retail.v2alpha.CompleteQueryRequest.query] // case insensitively. - // * They are transformed to lower cases. + // + // * They are transformed to lower case. + // // * They are UTF-8 safe. // // Recent searches are deduplicated. More recent searches will be reserved diff --git a/google/cloud/retail/v2alpha/control.proto b/google/cloud/retail/v2alpha/control.proto new file mode 100644 index 000000000..cdd683d57 --- /dev/null +++ b/google/cloud/retail/v2alpha/control.proto @@ -0,0 +1,92 @@ +// 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 google.cloud.retail.v2alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2alpha/common.proto"; +import "google/cloud/retail/v2alpha/search_service.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; +option java_multiple_files = true; +option java_outer_classname = "ControlProto"; +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"; + +// Configures dynamic serving time metadata that is used to pre and post +// process search/recommendation model results. +message Control { + option (google.api.resource) = { + type: "retail.googleapis.com/Control" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/controls/{control}" + }; + + // The behavior/type of the control + // + // A behavior/type must be specified on creation. Type cannot be changed once + // specified (e.g. A Rule control will always be a Rule control.). An + // INVALID_ARGUMENT will be returned if either condition is violated. + oneof control { + // A facet specification to perform faceted search. + SearchRequest.FacetSpec facet_spec = 3; + + // A rule control - a condition-action pair. + // Enacts a set action when the condition is triggered. + // For example: Boost "gShoe" when query full matches "Running Shoes". + Rule rule = 4; + } + + // Immutable. Fully qualified name + // `projects/*/locations/global/catalogs/*/controls/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The human readable control display name. Used in Retail UI. + // + // This field must be a UTF-8 encoded string with a length limit of 128 + // characters. Otherwise, an INVALID_ARGUMENT error is thrown. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. List of serving configuration ids that that are associated + // with this control. Note the association is managed via the ServingConfig, + // this is an output only denormalizeed view. Assumed to be in the same + // catalog. + repeated string associated_serving_config_ids = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The solution types that the serving config is used + // for. Currently we support setting only one type of solution at creation + // time. + // + // Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. + // If no solution type is provided at creation time, will default to + // SOLUTION_TYPE_SEARCH. + repeated SolutionType solution_types = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Specifies the use case for the control. + // Affects what condition fields can be set. + // Only settable by search controls. + // Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. + // Currently only allow one search_solution_use_case per control. + repeated SearchSolutionUseCase search_solution_use_case = 7 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/retail/v2alpha/control_service.proto b/google/cloud/retail/v2alpha/control_service.proto new file mode 100644 index 000000000..d69201a3d --- /dev/null +++ b/google/cloud/retail/v2alpha/control_service.proto @@ -0,0 +1,184 @@ +// 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 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/control.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; +option java_multiple_files = true; +option java_outer_classname = "ControlServiceProto"; +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 modifying Control. +service ControlService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Control. + // + // If the [Control][google.cloud.retail.v2alpha.Control] to create already + // exists, an ALREADY_EXISTS error is returned. + rpc CreateControl(CreateControlRequest) returns (Control) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/controls" + body: "control" + }; + option (google.api.method_signature) = "parent,control,control_id"; + } + + // Deletes a Control. + // + // If the [Control][google.cloud.retail.v2alpha.Control] to delete does not + // exist, a NOT_FOUND error is returned. + rpc DeleteControl(DeleteControlRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2alpha/{name=projects/*/locations/*/catalogs/*/controls/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Control. + // + // [Control][google.cloud.retail.v2alpha.Control] cannot be set to a different + // oneof field, if so an INVALID_ARGUMENT is returned. If the + // [Control][google.cloud.retail.v2alpha.Control] to delete does not exist, a + // NOT_FOUND error is returned. + rpc UpdateControl(UpdateControlRequest) returns (Control) { + option (google.api.http) = { + patch: "/v2alpha/{control.name=projects/*/locations/*/catalogs/*/controls/*}" + body: "control" + }; + option (google.api.method_signature) = "control,update_mask"; + } + + // Gets a Control. + rpc GetControl(GetControlRequest) returns (Control) { + option (google.api.http) = { + get: "/v2alpha/{name=projects/*/locations/*/catalogs/*/controls/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Controls linked to this catalog. + rpc ListControls(ListControlsRequest) returns (ListControlsResponse) { + option (google.api.http) = { + get: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/controls" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request for CreateControl method. +message CreateControlRequest { + // Required. Full resource name of parent catalog. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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 should be 4-63 characters, and 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]; + + // Indicates which fields in the provided + // [Control][google.cloud.retail.v2alpha.Control] to update. The following are + // NOT supported: + // + // * [Control.name][google.cloud.retail.v2alpha.Control.name] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteControl method. +message DeleteControlRequest { + // Required. The resource name of the Control to delete. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Control" } + ]; +} + +// Request for GetControl method. +message GetControlRequest { + // Required. The resource name of the Control to delete. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Control" } + ]; +} + +// Request for ListControls method. +message ListControlsRequest { + // Required. The catalog resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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.retail.v2alpha.ListControlsRequest.filter] is unset. + // * List controls that are used in a single ServingConfig: + // 'serving_config = "boosted_home_page_cvr"' + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListControls method. +message ListControlsResponse { + // All the Controls for a given catalog. + repeated Control controls = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/google/cloud/retail/v2alpha/export_config.proto b/google/cloud/retail/v2alpha/export_config.proto index 6b3934fa2..dd907d1ea 100644 --- a/google/cloud/retail/v2alpha/export_config.proto +++ b/google/cloud/retail/v2alpha/export_config.proto @@ -16,9 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2alpha; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -61,8 +58,11 @@ message ExportProductsResponse { // A sample of errors encountered while processing the request. repeated google.rpc.Status error_samples = 1; - // Echoes the destination for the complete errors in the request if set. + // This field is never set. ExportErrorsConfig errors_config = 2; + + // Output result indicating where the data were exported to. + OutputResult output_result = 3; } // Response of the ExportUserEventsRequest. If the long running @@ -72,7 +72,24 @@ message ExportUserEventsResponse { // A sample of errors encountered while processing the request. repeated google.rpc.Status error_samples = 1; - // Echoes the destination for the complete errors if this field was set in - // the request. + // This field is never set. ExportErrorsConfig errors_config = 2; + + // Output result indicating where the data were exported to. + OutputResult output_result = 3; +} + +// Output result. +message OutputResult { + // Export result in BigQuery. + repeated BigQueryOutputResult bigquery_result = 1; +} + +// A BigQuery output result. +message BigQueryOutputResult { + // The ID of a BigQuery Dataset. + string dataset_id = 1; + + // The ID of a BigQuery Table. + string table_id = 2; } diff --git a/google/cloud/retail/v2alpha/import_config.proto b/google/cloud/retail/v2alpha/import_config.proto index 1e77414a1..319edb1ea 100644 --- a/google/cloud/retail/v2alpha/import_config.proto +++ b/google/cloud/retail/v2alpha/import_config.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2alpha; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2alpha/product.proto"; @@ -64,6 +63,16 @@ message GcsSource { // [UserEvent][google.cloud.retail.v2alpha.UserEvent] per line. // * `user_event_ga360`: Using // https://support.google.com/analytics/answer/3437719. + // + // Supported values for control imports: + // + // * 'control' (default): One JSON + // [Control][google.cloud.retail.v2alpha.Control] per line. + // + // Supported values for catalog attribute imports: + // + // * 'catalog_attribute' (default): One CSV + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] per line. string data_schema = 2; } @@ -112,8 +121,19 @@ message BigQuerySource { // // * `user_event` (default): One JSON // [UserEvent][google.cloud.retail.v2alpha.UserEvent] per line. - // * `user_event_ga360`: Using + // * `user_event_ga360`: + // The schema is available here: // https://support.google.com/analytics/answer/3437719. + // * `user_event_ga4`: This feature is in private preview. Please contact the + // support team for importing Google Analytics 4 events. + // The schema is available here: + // https://support.google.com/analytics/answer/7029846. + // + // Supported values for auto-completion imports: + // + // * `suggestions` (default): One JSON completion suggestion per line. + // * `denylist`: One JSON deny suggestion per line. + // * `allowlist`: One JSON allow suggestion per line. string data_schema = 4; } @@ -135,9 +155,9 @@ message UserEventInlineSource { message ImportErrorsConfig { // Required. Errors destination. oneof destination { - // Google Cloud Storage path for import errors. This must be an empty, - // existing Cloud Storage bucket. Import errors will be written to a file in - // this bucket, one per line, as a JSON-encoded + // Google Cloud Storage prefix for import errors. This must be an empty, + // existing Cloud Storage directory. Import errors will be written to + // sharded files in this directory, one per line, as a JSON-encoded // `google.rpc.Status` message. string gcs_prefix = 1; } @@ -157,16 +177,15 @@ message ImportProductsRequest { // Calculates diff and replaces the entire product dataset. Existing // products may be deleted if they are not present in the source location. // - // Can only be while using - // [BigQuerySource][google.cloud.retail.v2alpha.BigQuerySource]. + // Can only be set while using + // [BigQuerySource][google.cloud.retail.v2alpha.BigQuerySource]. And the + // BigQuery dataset must be created in the data location "us (multiple + // regions in United States)", otherwise a PERMISSION_DENIED error is + // thrown. // // Add the IAM permission "BigQuery Data Viewer" for // cloud-retail-customer-data-access@system.gserviceaccount.com before // using this feature otherwise an error is thrown. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. FULL = 2; } @@ -180,16 +199,8 @@ message ImportProductsRequest { (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } ]; - // Unique identifier provided by client, within the ancestor - // dataset scope. Ensures idempotency and used for request deduplication. - // Server-generated if unspecified. Up to 128 characters long and must match - // the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in - // [ImportMetadata][google.cloud.retail.v2alpha.ImportMetadata]. - // - // Only supported when - // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2alpha.ImportProductsRequest.reconciliation_mode] - // is set to `FULL`. - string request_id = 6; + // Deprecated. This field has no effect. + string request_id = 6 [deprecated = true]; // Required. The desired input location of the data. ProductInputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED]; @@ -206,16 +217,32 @@ message ImportProductsRequest { // [ReconciliationMode.INCREMENTAL][google.cloud.retail.v2alpha.ImportProductsRequest.ReconciliationMode.INCREMENTAL]. ReconciliationMode reconciliation_mode = 5; - // Pub/Sub topic for receiving notification. If this field is set, + // Full Pub/Sub topic name for receiving notification. If this field is set, // when the import is finished, a notification will be sent to // specified Pub/Sub topic. The message data will be JSON string of a // [Operation][google.longrunning.Operation]. - // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. + // + // 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 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, will perform the FULL import even if it would delete a large + // proportion of the products in the default branch, which could potentially + // cause outages if you have live predict/search traffic. + // + // Only supported when + // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2alpha.ImportProductsRequest.reconciliation_mode] + // is set to `FULL`. + bool skip_default_branch_protection = 8; } // Request message for the ImportUserEvents request. @@ -327,9 +354,8 @@ message ImportMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; - // Id of the request / operation. This is parroting back the requestId - // that was passed in the request. - string request_id = 5; + // Deprecated. This field is never set. + string request_id = 5 [deprecated = true]; // Pub/Sub topic for receiving notification. If this field is set, // when the import is finished, a notification will be sent to diff --git a/google/cloud/retail/v2alpha/model.proto b/google/cloud/retail/v2alpha/model.proto new file mode 100644 index 000000000..5f4ead9f7 --- /dev/null +++ b/google/cloud/retail/v2alpha/model.proto @@ -0,0 +1,432 @@ +// 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 google.cloud.retail.v2alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2alpha/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; +option java_multiple_files = true; +option java_outer_classname = "ModelProto"; +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"; + +// Metadata that describes the training and serving parameters of a +// [Model][google.cloud.retail.v2alpha.Model]. A +// [Model][google.cloud.retail.v2alpha.Model] can be associated with a +// [ServingConfig][google.cloud.retail.v2alpha.ServingConfig] and then queried +// through the Predict api. +message Model { + option (google.api.resource) = { + type: "retail.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/models/{model}" + }; + + // The PageOptimizationConfig for model training. + // + // This determines how many panels to optimize for, and which serving + // configurations to consider for each panel. + // The purpose of this model is to optimize which + // [ServingConfig][google.cloud.retail.v2alpha.ServingConfig] to show on which + // panels in way that optimizes the visitors shopping journey. + message PageOptimizationConfig { + // A candidate to consider for a given panel. Currently only + // [ServingConfig][google.cloud.retail.v2alpha.ServingConfig] are valid + // candidates. + message Candidate { + oneof candidate { + // This has to be a valid + // [ServingConfig][google.cloud.retail.v2alpha.ServingConfig] + // identifier. e.g. for a ServingConfig with full name: + // `projects/*/locations/global/catalogs/default_catalog/servingConfigs/my_candidate_config` + // this would be 'my_candidate_config' + string serving_config_id = 1; + } + } + + // An individual panel with a list of + // [ServingConfigs][google.cloud.retail.v2alpha.ServingConfig] to consider + // for it. + message Panel { + // Optional. The name to display for the panel. + string display_name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The candidates to consider on the panel. + // + // Limit = 10. + repeated Candidate candidates = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The default candidate (in case the model fails at serving + // time, we can fall back to the default). + Candidate default_candidate = 3 [(google.api.field_behavior) = REQUIRED]; + } + + // Restrictions of expected returned results. + enum Restriction { + // Unspecified value for restriction. + RESTRICTION_UNSPECIFIED = 0; + + // Allow any [ServingConfig][google.cloud.retail.v2alpha.ServingConfig] to + // be show on any number of panels. + // + // Example: + // + // `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity + // + // `Panel2 candidates`: home_page_ctr_no_diversity, + // home_page_ctr_diversity, + // pdp_cvr_no_diversity + // + // `Restriction` = NO_RESTRICTION + // + // `Valid combinations`: + // + // * (pdp_ctr, home_page_ctr_no_diversity) + // * (pdp_ctr, home_page_ctr_diversity) + // * (pdp_ctr, pdp_cvr_no_diversity) + // * (pdp_cvr, home_page_ctr_no_diversity) + // * (pdp_cvr, home_page_ctr_diversity) + // * (pdp_cvr, pdp_cvr_no_diversity) + // * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) + // * (home_page_ctr_no_diversity, home_page_ctr_diversity) + // * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) + // + // `Invalid combinations`: [] + NO_RESTRICTION = 1; + + // Do not allow the same + // [ServingConfig.name][google.cloud.retail.v2alpha.ServingConfig.name] to + // be shown on multiple panels. + // + // Example: + // + // `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity + // + // + // `Panel2 candidates`: home_page_ctr_no_diversity, + // home_page_ctr_diversity_low, + // pdp_cvr_no_diversity + // + // `Restriction` = UNIQUE_SERVING_CONFIG_RESTRICTION + // + // `Valid combinations`: + // + // * (pdp_ctr, home_page_ctr_no_diversity) + // * (pdp_ctr, home_page_ctr_diversity_low) + // * (pdp_ctr, pdp_cvr_no_diversity) + // * (pdp_ctr, pdp_cvr_no_diversity) + // * (pdp_cvr, home_page_ctr_no_diversity) + // * (pdp_cvr, home_page_ctr_diversity_low) + // * (pdp_cvr, pdp_cvr_no_diversity) + // * (home_page_ctr_no_diversity, home_page_ctr_diversity_low) + // * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) + // + // `Invalid combinations`: + // + // * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) + UNIQUE_SERVING_CONFIG_RESTRICTION = 2; + + // Do not allow multiple + // [ServingConfigs][google.cloud.retail.v2alpha.ServingConfig] with same + // [Model.name][google.cloud.retail.v2alpha.Model.name] to be show on on + // different panels. + // + // Example: + // + // `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity + // + // + // `Panel2 candidates`: home_page_ctr_no_diversity, + // home_page_ctr_diversity_low, + // pdp_cvr_no_diversity + // + // `Restriction` = UNIQUE_MODEL_RESTRICTION + // + // `Valid combinations`: + // + // * (pdp_ctr, home_page_ctr_no_diversity) + // * (pdp_ctr, home_page_ctr_diversity) + // * (pdp_ctr, pdp_cvr_no_diversity) + // * (pdp_ctr, pdp_cvr_no_diversity) + // * (pdp_cvr, home_page_ctr_no_diversity) + // * (pdp_cvr, home_page_ctr_diversity_low) + // * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) + // + // `Invalid combinations`: + // + // * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) + // * (pdp_cvr, pdp_cvr_no_diversity) + UNIQUE_MODEL_RESTRICTION = 3; + + // Do not allow multiple + // [ServingConfigs][google.cloud.retail.v2alpha.ServingConfig] with same + // [Model.type][google.cloud.retail.v2alpha.Model.type] to be shown on + // different panels. + // + // Example: + // + // `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity + // + // + // `Panel2 candidates`: home_page_ctr_no_diversity, + // home_page_ctr_diversity_low, + // pdp_cvr_no_diversity + // + // `Restriction` = UNIQUE_MODEL_RESTRICTION + // + // `Valid combinations`: + // + // * (pdp_ctr, home_page_ctr_no_diversity) + // * (pdp_ctr, home_page_ctr_diversity) + // * (pdp_cvr, home_page_ctr_no_diversity) + // * (pdp_cvr, home_page_ctr_diversity_low) + // * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) + // + // `Invalid combinations`: + // + // * (pdp_ctr, pdp_cvr_no_diversity) + // * (pdp_ctr, pdp_cvr_no_diversity) + // * (pdp_cvr, pdp_cvr_no_diversity) + // * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) + // * (home_page_ctr_no_diversity, home_page_ctr_diversity) + UNIQUE_MODEL_TYPE_RESTRICTION = 4; + } + + // Required. The type of [UserEvent][google.cloud.retail.v2alpha.UserEvent] + // this page optimization is shown for. + // + // Each page has an associated event type - this will be the + // corresponding event type for the page that the page optimization + // model is used on. + // + // Supported types: + // + // * `add-to-cart`: Products being added to cart. + // * `detail-page-view`: Products detail page viewed. + // * `home-page-view`: Homepage viewed + // * `category-page-view`: Homepage viewed + // * `shopping-cart-page-view`: User viewing a shopping cart. + // + // `home-page-view` only allows models with type `recommended-for-you`. + // All other page_optimization_event_type allow all + // [Model.types][google.cloud.retail.v2alpha.Model.type]. + string page_optimization_event_type = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of panel configurations. + // + // Limit = 5. + repeated Panel panels = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. How to restrict results across panels e.g. can the same + // [ServingConfig][google.cloud.retail.v2alpha.ServingConfig] be shown on + // multiple panels at once. + // + // If unspecified, default to `UNIQUE_MODEL_RESTRICTION`. + Restriction restriction = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Represents an ordered combination of valid serving configs, which + // / may be used for PAGE_OPTIMIZATION recommendations. + message ServingConfigList { + // Optional. A set of valid serving configs that may be used for + // PAGE_OPTIMIZATION. + repeated string serving_config_ids = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // The serving state of the model. + enum ServingState { + // Unspecified serving state. + SERVING_STATE_UNSPECIFIED = 0; + + // The model is not serving. + INACTIVE = 1; + + // The model is serving and can be queried. + ACTIVE = 2; + + // The model is trained on tuned hyperparameters, and can be + // queried. + TUNED = 3; + } + + // The training state of the model. + enum TrainingState { + // Unspecified training state. + TRAINING_STATE_UNSPECIFIED = 0; + + // The model training is paused. + PAUSED = 1; + + // The model is training. + TRAINING = 2; + } + + // Describes whether periodic tuning is enabled for this model + // or not. Periodic tuning is scheduled at most every three months. You can + // start a tuning process manually by using the ModelTune + // method, which starts a tuning process immediately and resets the quarterly + // schedule. Enabling or disabling periodic tuning does not affect any + // current tuning processes. + enum PeriodicTuningState { + // Unspecified default value - should never be explicitly set. + PERIODIC_TUNING_STATE_UNSPECIFIED = 0; + + // The model has periodic tuning disabled. Tuning + // can be reenabled by calling the EnableModelPeriodicTuning + // method or by calling the TuneModel method. + PERIODIC_TUNING_DISABLED = 1; + + // The model cannot be tuned with periodic tuning OR the + // TuneModel method. Hide the options in customer UI and + // reject any requests through the backend self serve API. + ALL_TUNING_DISABLED = 3; + + // The model has periodic tuning enabled. Tuning + // can be disabled by calling the DisableModelPeriodicTuning + // method. + PERIODIC_TUNING_ENABLED = 2; + } + + // Describes whether this model have sufficient training data + // to be continuously trained. + enum DataState { + // Unspecified default value - should never be explicitly set. + DATA_STATE_UNSPECIFIED = 0; + + // The model has sufficient training data. + DATA_OK = 1; + + // The model does not have sufficient training data. Error + // messages can be queried via Stackdriver. + DATA_ERROR = 2; + } + + // Training configuration specific to a + // [Model.type][google.cloud.retail.v2alpha.Model.type] - currently, only for + // page optimization. + oneof training_config { + // Optional. The page optimization config. + PageOptimizationConfig page_optimization_config = 17 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The fully qualified resource name of the model. + // + // Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id} + // catalog_id has char limit of 50. + // recommendation_model_id has char limit of 40. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The display name of the model. + // + // Should be human readable, used to display Recommendation Models in the + // Retail Cloud Cosole Dashboard. UTF-8 encoded string with limit of 1024 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The training state that the model is in (e.g. + // TRAINING or PAUSED). + // + // Since part of the cost of running the service + // is frequency of training - this can be used to determine when to train + // model in order to control cost. If not specified: the default value for + // CreateModel method is TRAINING. the default value for + // UpdateModel method is to keep the state the same as before. + TrainingState training_state = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The serving state of the model: ACTIVE, NOT_ACTIVE. + ServingState serving_state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp the Recommendation Model was created at. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp the Recommendation Model was last updated. E.g. + // if a Recommendation Model was paused - this would be the time the pause was + // initiated. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The type of model e.g. `home-page`. + // + // Currently supported values: `recommended-for-you`, `others-you-may-like`, + // `frequently-bought-together`, `page-optimization`, 'similar-items', + // 'buy-it-again', `recently-viewed`(readonly value). + string type = 7 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The optimization objective e.g. `cvr`. + // + // Currently supported + // values: `ctr`, `cvr`, `revenue-per-order`. + // + // If not specified, we choose default based on model type. + // Default depends on type of recommendation: + // + // `recommended-for-you` => `ctr` + // + // `others-you-may-like` => `ctr` + // + // `frequently-bought-together` => `revenue_per_order` + string optimization_objective = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The state of periodic tuning. + // + // The period we use is 3 months - to do a + // one-off tune earlier use the TuneModel method. Default value + // is PERIODIC_TUNING_ENABLED. + PeriodicTuningState periodic_tuning_state = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The timestamp when the latest successful tune finished. + google.protobuf.Timestamp last_tune_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The tune operation associated with the model. + // + // Can be used to determine if there is an ongoing tune for this + // recommendation. Empty field implies no tune is goig on. + string tuning_operation = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The state of data requirements for this model: DATA_OK and + // DATA_ERROR. + // + // Recommendation model cannot be trained if the data is in + // DATA_ERROR state. Recommendation model can have DATA_ERROR state even if + // serving state is ACTIVE: models were trained successfully before, but + // cannot be refreshed because model no longer has sufficient + // data for training. + DataState data_state = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. If RECOMMENDATIONS_FILTERING_ENABLED, recommendation filtering by + // attributes is enabled for the model. + RecommendationsFilteringOption filtering_option = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The list of valid serving configs associated with the + // PageOptimizationConfig. + repeated ServingConfigList serving_config_lists = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/retail/v2alpha/model_service.proto b/google/cloud/retail/v2alpha/model_service.proto new file mode 100644 index 000000000..30690f538 --- /dev/null +++ b/google/cloud/retail/v2alpha/model_service.proto @@ -0,0 +1,241 @@ +// 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 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/model.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; +option java_multiple_files = true; +option java_outer_classname = "ModelServiceProto"; +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 performing CRUD operations on models. +// Recommendation models contain all the metadata necessary to generate a set of +// models for the Predict() api. A model is queried +// indirectly via a ServingConfig, which associates a model with a +// given Placement (e.g. Frequently Bought Together on Home Page). +// +// This service allows customers to e.g.: +// +// * Initiate training of a model. +// * Pause training of an existing model. +// * List all the available models along with their metadata. +// * Control their tuning schedule. +service ModelService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new model. + rpc CreateModel(CreateModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/models" + body: "model" + }; + option (google.api.method_signature) = "parent,model"; + option (google.longrunning.operation_info) = { + response_type: "Model" + metadata_type: "CreateModelMetadata" + }; + } + + // Pauses the training of an existing model. + rpc PauseModel(PauseModelRequest) returns (Model) { + option (google.api.http) = { + post: "/v2alpha/{name=projects/*/locations/*/catalogs/*/models/*}:pause" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Resumes the training of an existing model. + rpc ResumeModel(ResumeModelRequest) returns (Model) { + option (google.api.http) = { + post: "/v2alpha/{name=projects/*/locations/*/catalogs/*/models/*}:resume" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes an existing model. + rpc DeleteModel(DeleteModelRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2alpha/{name=projects/*/locations/*/catalogs/*/models/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all the models linked to this event store. + rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { + option (google.api.http) = { + get: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/models" + }; + option (google.api.method_signature) = "parent"; + } + + // Update of model metadata. Only fields that + // currently can be updated are: filtering_option, periodic_tuning_state. + // If other values are provided, this API method will ignore them. + rpc UpdateModel(UpdateModelRequest) returns (Model) { + option (google.api.http) = { + patch: "/v2alpha/{model.name=projects/*/locations/*/catalogs/*/models/*}" + body: "model" + }; + option (google.api.method_signature) = "model,update_mask"; + } + + // Tunes an existing model. + rpc TuneModel(TuneModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2alpha/{name=projects/*/locations/*/catalogs/*/models/*}:tune" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "TuneModelResponse" + metadata_type: "TuneModelMetadata" + }; + } +} + +// Request for creating a model. +message CreateModelRequest { + // Required. The parent resource under which to create the model. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The payload of the [Model] to create. + Model model = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Whether to run a dry_run to validate the request (without + // actually creating the model). + bool dry_run = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for updating an existing model. +message UpdateModelRequest { + // Required. The body of the updated [Model]. + Model model = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided 'model' to + // update. If not set, will by default update all fields. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for pausing training of a model. +message PauseModelRequest { + // Required. The name of the model to pause. + // Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Model" } + ]; +} + +// Request for resuming training of a model. +message ResumeModelRequest { + // Required. The name of the model to resume. + // Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id} + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for listing models associated with a resource. +message ListModelsRequest { + // Required. The parent for which to list models. + // Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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 `ListModels` + // call. Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for deleting a model. +message DeleteModelRequest { + // Required. The resource name of the [Model] to delete. + // Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Model" } + ]; +} + +// Response to a ListModelRequest. +message ListModelsResponse { + // List of Models. + repeated Model models = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} + +// Request to manually start a tuning process now (instead of waiting for +// the periodically scheduled tuning to happen). +message TuneModelRequest { + // Required. The resource name of the model to tune. + // Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Model" } + ]; +} + +// Metadata associated with a create operation. +message CreateModelMetadata { + // The resource name of the model that this create applies to. + // Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id} + string model = 1; +} + +// Metadata associated with a tune operation. +message TuneModelMetadata { + // The resource name of the model that this tune applies to. + // Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id} + string model = 1; +} + +// Response associated with a tune operation. +message TuneModelResponse {} diff --git a/google/cloud/retail/v2alpha/prediction_service.proto b/google/cloud/retail/v2alpha/prediction_service.proto index b293caf76..b76aed50b 100644 --- a/google/cloud/retail/v2alpha/prediction_service.proto +++ b/google/cloud/retail/v2alpha/prediction_service.proto @@ -42,6 +42,10 @@ service PredictionService { option (google.api.http) = { post: "/v2alpha/{placement=projects/*/locations/*/catalogs/*/placements/*}:predict" body: "*" + additional_bindings { + post: "/v2alpha/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:predict" + body: "*" + } }; } } @@ -49,20 +53,35 @@ service PredictionService { // Request message for Predict method. message PredictRequest { // Required. Full resource name of the format: - // {name=projects/*/locations/global/catalogs/default_catalog/placements/*} - // The ID of the Recommendations AI placement. Before you can request - // predictions from your model, you must create at least one placement for it. - // For more information, see [Managing - // placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). + // `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` + // or + // `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. + // We recommend using the `servingConfigs` resource. `placements` is a legacy + // resource. + // The ID of the Recommendations AI serving config or placement. + // Before you can request predictions from your model, you must create at + // least one serving config or placement for it. For more information, see + // [Managing serving configurations] + // (https://cloud.google.com/retail/docs/manage-configs). // - // The full list of available placements can be seen at - // https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements + // The full list of available serving configs can be seen at + // https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs string placement = 1 [(google.api.field_behavior) = REQUIRED]; // Required. Context about the user, what they are looking at and what action // they took to trigger the predict 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.visitor_id][google.cloud.retail.v2alpha.UserEvent.visitor_id] or + // [UserInfo.user_id][google.cloud.retail.v2alpha.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.visitor_id][google.cloud.retail.v2alpha.UserEvent.visitor_id] to + // a random unique ID and leave + // [UserInfo.user_id][google.cloud.retail.v2alpha.UserInfo.user_id] unset. UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; // Maximum number of results to return per page. Set this property @@ -71,8 +90,8 @@ message PredictRequest { // above 100 will be coerced to 100. int32 page_size = 3; - // The previous PredictResponse.next_page_token. - string page_token = 4; + // This field is not used for now; leave it unset. + string page_token = 4 [deprecated = true]; // Filter for restricting prediction results with a length limit of 5,000 // characters. Accepts values for tags and the `filterOutOfStockItems` flag. @@ -97,9 +116,20 @@ message PredictRequest { // * filterOutOfStockItems tag=(-"promotional") // * filterOutOfStockItems // - // If your filter blocks all prediction results, nothing will be returned. If - // you want generic (unfiltered) popular products to be returned instead, set - // `strictFiltering` to false in `PredictRequest.params`. + // If your filter blocks all prediction results, the API will return generic + // (unfiltered) popular products. If you only want results strictly matching + // the filters, set `strictFiltering` to True in `PredictRequest.params` to + // receive empty results instead. + // Note that the API will never return items with storageStatus of "EXPIRED" + // or "DELETED" regardless of filter choices. + // + // If `filterSyntaxV2` is set to true under the `params` field, then + // attribute-based expressions are expected instead of the above described + // tag-based syntax. Examples: + // + // * (colors: ANY("Red", "Blue")) AND NOT (categories: ANY("Phones")) + // * (availability: ANY("IN_STOCK")) AND + // (colors: ANY("Red") OR categories: ANY("Phones")) string filter = 5; // Use validate only mode for this prediction query. If set to true, a @@ -133,6 +163,8 @@ message PredictRequest { // 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives // request-level control and adjusts prediction results based on product // category. + // * `filterSyntaxV2`: Boolean. False by default. If set to true, the `filter` + // field is interpreteted according to the new, attribute-based syntax. map params = 7; // The labels applied to a resource must meet the following requirements: @@ -140,7 +172,7 @@ message PredictRequest { // * 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 + // 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 @@ -166,9 +198,9 @@ message PredictResponse { // // Possible values: // - // * `product`: JSON representation of the product. Will be set if + // * `product`: JSON representation of the product. Is set if // `returnProduct` is set to true in `PredictRequest.params`. - // * `score`: Prediction score in double value. Will be set if + // * `score`: Prediction score in double value. Is set if // `returnScore` is set to true in `PredictRequest.params`. map metadata = 2; } diff --git a/google/cloud/retail/v2alpha/product.proto b/google/cloud/retail/v2alpha/product.proto index 88adca620..f4826f1bd 100644 --- a/google/cloud/retail/v2alpha/product.proto +++ b/google/cloud/retail/v2alpha/product.proto @@ -16,10 +16,10 @@ syntax = "proto3"; package google.cloud.retail.v2alpha; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2alpha/common.proto"; +import "google/cloud/retail/v2alpha/promotion.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -121,7 +121,7 @@ message Product { // [publish_time][google.cloud.retail.v2alpha.Product.publish_time], // otherwise an INVALID_ARGUMENT error is thrown. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [expiration_date](https://support.google.com/merchants/answer/6324499). google.protobuf.Timestamp expire_time = 16; @@ -161,9 +161,9 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [id](https://support.google.com/merchants/answer/6324405). Schema.org - // Property [Product.sku](https://schema.org/sku). + // property [Product.sku](https://schema.org/sku). string id = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The type of the product. Default to @@ -186,21 +186,23 @@ message Product { // [Product][google.cloud.retail.v2alpha.Product]. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center Property + // Corresponding properties: Google Merchant Center property // [item_group_id](https://support.google.com/merchants/answer/6324507). - // Schema.org Property + // Schema.org property // [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - // - // This field must be enabled before it can be used. [Learn - // more](/recommendations-ai/docs/catalog#item-group-id). string primary_product_id = 4; // The [id][google.cloud.retail.v2alpha.Product.id] of the collection members // when [type][google.cloud.retail.v2alpha.Product.type] is // [Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]. // - // Should not set it for other types. A maximum of 1000 values are allowed. - // Otherwise, an INVALID_ARGUMENT error is return. + // Non-existent product ids are allowed. + // The [type][google.cloud.retail.v2alpha.Product.type] of the members must be + // either [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY] or + // [Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT] otherwise + // and INVALID_ARGUMENT error is thrown. Should not set it for other types. A + // maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + // return. repeated string collection_member_ids = 5; // The Global Trade Item Number (GTIN) of the product. @@ -211,13 +213,13 @@ message Product { // This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is // returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [gtin](https://support.google.com/merchants/answer/6324461). // Schema.org property - // [Product.isbn](https://schema.org/isbn) or - // [Product.gtin8](https://schema.org/gtin8) or - // [Product.gtin12](https://schema.org/gtin12) or - // [Product.gtin13](https://schema.org/gtin13) or + // [Product.isbn](https://schema.org/isbn), + // [Product.gtin8](https://schema.org/gtin8), + // [Product.gtin12](https://schema.org/gtin12), + // [Product.gtin13](https://schema.org/gtin13), or // [Product.gtin14](https://schema.org/gtin14). // // If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. @@ -252,7 +254,7 @@ message Product { // 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. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [google_product_category][mc_google_product_category]. Schema.org property // [Product.category] (https://schema.org/category). // @@ -265,7 +267,7 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 1,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [title](https://support.google.com/merchants/answer/6324415). Schema.org // property [Product.name](https://schema.org/name). string title = 8 [(google.api.field_behavior) = REQUIRED]; @@ -276,7 +278,7 @@ message Product { // string with a length limit of 1,000 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [brand](https://support.google.com/merchants/answer/6324351). Schema.org // property [Product.brand](https://schema.org/brand). repeated string brands = 9; @@ -286,13 +288,13 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 5,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [description](https://support.google.com/merchants/answer/6324468). - // schema.org property [Product.description](https://schema.org/description). + // Schema.org property [Product.description](https://schema.org/description). string description = 10; // Language of the title/description and other string attributes. Use language - // tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt]. + // tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). // // For product prediction, this field is ignored and the model automatically // detects the text language. The @@ -327,7 +329,12 @@ message Product { // * The key must be a UTF-8 encoded string with a length limit of 128 // characters. // * For indexable attribute, the key must match the pattern: - // `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + // `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + // `KEY_1_LIKE_THIS`. + // * For text attributes, at most 400 values are allowed. Empty values are not + // allowed. Each value must be a non-empty UTF-8 encoded string with a + // length limit of 256 characters. + // * For number attributes, at most 400 values are allowed. map attributes = 12; // Custom tags associated with the product. @@ -341,13 +348,13 @@ message Product { // tag as part of the // [PredictRequest.filter][google.cloud.retail.v2alpha.PredictRequest.filter]. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [custom_label_0–4](https://support.google.com/merchants/answer/6324473). repeated string tags = 13; // Product price and cost information. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [price](https://support.google.com/merchants/answer/6324371). PriceInfo price_info = 14; @@ -363,9 +370,9 @@ message Product { // [Product][google.cloud.retail.v2alpha.Product]. Default to // [Availability.IN_STOCK][google.cloud.retail.v2alpha.Product.Availability.IN_STOCK]. // - // Google Merchant Center Property + // Corresponding properties: Google Merchant Center property // [availability](https://support.google.com/merchants/answer/6324448). - // Schema.org Property [Offer.availability](https://schema.org/availability). + // Schema.org property [Offer.availability](https://schema.org/availability). Availability availability = 19; // The available quantity of the item. @@ -387,17 +394,17 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 5,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [link](https://support.google.com/merchants/answer/6324416). Schema.org // property [Offer.url](https://schema.org/url). string uri = 22; - // Product images for the product.Highly recommended to put the main image - // to the first. + // Product images for the product. We highly recommend putting the main + // image first. // // A maximum of 300 images are allowed. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [image_link](https://support.google.com/merchants/answer/6324350). // Schema.org property [Product.image](https://schema.org/image). repeated Image images = 23; @@ -408,7 +415,7 @@ message Product { // The color of the product. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [color](https://support.google.com/merchants/answer/6324487). Schema.org // property [Product.color](https://schema.org/color). ColorInfo color_info = 25; @@ -426,9 +433,9 @@ message Product { // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [size](https://support.google.com/merchants/answer/6324492), - // [size_type](https://support.google.com/merchants/answer/6324497) and + // [size_type](https://support.google.com/merchants/answer/6324497), and // [size_system](https://support.google.com/merchants/answer/6324502). // Schema.org property [Product.size](https://schema.org/size). repeated string sizes = 26; @@ -436,10 +443,10 @@ message Product { // The material of the product. For example, "leather", "wooden". // // A maximum of 20 values are allowed. Each value must be a UTF-8 encoded - // string with a length limit of 128 characters. Otherwise, an + // string with a length limit of 200 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [material](https://support.google.com/merchants/answer/6324410). Schema.org // property [Product.material](https://schema.org/material). repeated string materials = 27; @@ -452,7 +459,7 @@ message Product { // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [pattern](https://support.google.com/merchants/answer/6324483). Schema.org // property [Product.pattern](https://schema.org/pattern). repeated string patterns = 28; @@ -460,19 +467,21 @@ message Product { // The condition of the product. Strongly encouraged to use the standard // values: "new", "refurbished", "used". // - // A maximum of 5 values are allowed per + // A maximum of 1 value is allowed per // [Product][google.cloud.retail.v2alpha.Product]. Each value must be a UTF-8 // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [condition](https://support.google.com/merchants/answer/6324469). // Schema.org property // [Offer.itemCondition](https://schema.org/itemCondition). repeated string conditions = 29; // The promotions applied to the product. A maximum of 10 values are allowed - // per [Product][google.cloud.retail.v2alpha.Product]. + // per [Product][google.cloud.retail.v2alpha.Product]. Only + // [Promotion.promotion_id][google.cloud.retail.v2alpha.Promotion.promotion_id] + // will be used, other fields will be ignored if set. repeated Promotion promotions = 34; // The timestamp when the product is published by the retailer for the first @@ -536,11 +545,11 @@ message Product { // * [name][google.cloud.retail.v2alpha.Product.name] // * [color_info][google.cloud.retail.v2alpha.Product.color_info] // - // Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + // The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is // returned. // // Note: Returning more fields in - // [SearchResponse][google.cloud.retail.v2alpha.SearchResponse] may increase + // [SearchResponse][google.cloud.retail.v2alpha.SearchResponse] can increase // response payload size and serving latency. google.protobuf.FieldMask retrievable_fields = 30; diff --git a/google/cloud/retail/v2alpha/product_service.proto b/google/cloud/retail/v2alpha/product_service.proto index c88e65041..1a5f702bb 100644 --- a/google/cloud/retail/v2alpha/product_service.proto +++ b/google/cloud/retail/v2alpha/product_service.proto @@ -21,7 +21,6 @@ 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/export_config.proto"; import "google/cloud/retail/v2alpha/import_config.proto"; import "google/cloud/retail/v2alpha/product.proto"; import "google/cloud/retail/v2alpha/purge_config.proto"; @@ -88,9 +87,38 @@ service ProductService { option (google.api.method_signature) = "name"; } + // Permanently deletes all selected + // [Product][google.cloud.retail.v2alpha.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.v2alpha.Product]s, this operation could take + // hours to complete. Before the operation completes, some + // [Product][google.cloud.retail.v2alpha.Product]s may still be returned by + // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. + // + // Depending on the number of [Product][google.cloud.retail.v2alpha.Product]s, + // this operation could take hours to complete. To get a sample of + // [Product][google.cloud.retail.v2alpha.Product]s that would be deleted, set + // [PurgeProductsRequest.force][google.cloud.retail.v2alpha.PurgeProductsRequest.force] + // to false. + rpc PurgeProducts(PurgeProductsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:purge" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2alpha.PurgeProductsResponse" + metadata_type: "google.cloud.retail.v2alpha.PurgeProductsMetadata" + }; + } + // Bulk import of multiple [Product][google.cloud.retail.v2alpha.Product]s. // - // Request processing may be synchronous. No partial updating is supported. + // Request processing may be synchronous. // Non-existing items are created. // // Note that it is possible for a subset of the @@ -117,38 +145,39 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, updates are not immediately manifested in the // [Product][google.cloud.retail.v2alpha.Product] queried by - // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. // // When inventory is updated with - // [CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] + // [ProductService.CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] // and - // [UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct], + // [ProductService.UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct], // the specified inventory field value(s) will overwrite any existing value(s) // while ignoring the last update time for this field. Furthermore, the last // update time for the specified inventory fields will be overwritten to the // time of the - // [CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] + // [ProductService.CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] // or - // [UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] + // [ProductService.UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] // request. // // If no inventory fields are set in // [CreateProductRequest.product][google.cloud.retail.v2alpha.CreateProductRequest.product], // then any pre-existing inventory information for this product will be used. // - // If no inventory fields are set in [UpdateProductRequest.set_mask][], + // If no inventory fields are set in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2alpha.SetInventoryRequest.set_mask], // then any existing inventory information will be preserved. // // Pre-existing inventory information can only be updated with - // [SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory], - // [AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces], + // [ProductService.SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory], + // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces], // and - // [RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces]. + // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces]. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc SetInventory(SetInventoryRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v2alpha/{inventory.name=projects/*/locations/*/catalogs/*/branches/*/products/**}:setInventory" @@ -170,12 +199,12 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, the added place IDs are not immediately manifested in the // [Product][google.cloud.retail.v2alpha.Product] queried by - // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc AddFulfillmentPlaces(AddFulfillmentPlacesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -198,12 +227,12 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, the removed place IDs are not immediately manifested in the // [Product][google.cloud.retail.v2alpha.Product] queried by - // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc RemoveFulfillmentPlaces(RemoveFulfillmentPlacesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -227,18 +256,18 @@ service ProductService { // and processed downstream. As a consequence, when a response is returned, // updates are not immediately manifested in the // [Product][google.cloud.retail.v2alpha.Product] queried by - // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. // - // Store inventory information can only be modified using this method. - // [CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] + // Local inventory information can only be modified using this method. + // [ProductService.CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] // and - // [UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] + // [ProductService.UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] // has no effect on local inventories. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // Cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc AddLocalInventories(AddLocalInventoriesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -260,18 +289,18 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, removals are not immediately manifested in the // [Product][google.cloud.retail.v2alpha.Product] queried by - // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. // - // Store inventory information can only be removed using this method. - // [CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] + // Local inventory information can only be removed using this method. + // [ProductService.CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] // and - // [UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] + // [ProductService.UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] // has no effect on local inventories. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // Cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc RemoveLocalInventories(RemoveLocalInventoriesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -286,7 +315,9 @@ service ProductService { } } -// Request message for [CreateProduct][] method. +// Request message for +// [ProductService.CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] +// method. message CreateProductRequest { // Required. The parent catalog resource name, such as // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. @@ -316,7 +347,9 @@ message CreateProductRequest { string product_id = 3 [(google.api.field_behavior) = REQUIRED]; } -// Request message for [GetProduct][] method. +// Request message for +// [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] +// method. message GetProductRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2alpha.Product], such as @@ -334,7 +367,9 @@ message GetProductRequest { ]; } -// Request message for [UpdateProduct][] method. +// Request message for +// [ProductService.UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] +// method. message UpdateProductRequest { // Required. The product to update/create. // @@ -355,6 +390,11 @@ message UpdateProductRequest { // // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error // is returned. + // + // The attribute key can be updated by setting the mask path as + // "attributes.${key_name}". If a key name is present in the mask but not in + // the patching product from the request, this key will be deleted after the + // update. google.protobuf.FieldMask update_mask = 2; // If set to true, and the [Product][google.cloud.retail.v2alpha.Product] is @@ -363,7 +403,9 @@ message UpdateProductRequest { bool allow_missing = 3; } -// Request message for [DeleteProduct][] method. +// Request message for +// [ProductService.DeleteProduct][google.cloud.retail.v2alpha.ProductService.DeleteProduct] +// method. message DeleteProductRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2alpha.Product], such as @@ -518,10 +560,13 @@ message ListProductsResponse { int32 total_size = 3; } -// Request message for [SetInventory][] method. +// Request message for +// [ProductService.SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory] +// method. message SetInventoryRequest { // Required. The inventory information to update. The allowable fields to // update are: + // // * [Product.price_info][google.cloud.retail.v2alpha.Product.price_info] // * [Product.availability][google.cloud.retail.v2alpha.Product.availability] // * [Product.available_quantity][google.cloud.retail.v2alpha.Product.available_quantity] @@ -529,8 +574,9 @@ message SetInventoryRequest { // The updated inventory fields must be specified in // [SetInventoryRequest.set_mask][google.cloud.retail.v2alpha.SetInventoryRequest.set_mask]. // - // If [SetInventoryRequest.inventory.name][] is empty or invalid, an - // INVALID_ARGUMENT error is returned. + // If + // [SetInventoryRequest.inventory.name][google.cloud.retail.v2alpha.Product.name] + // is empty or invalid, an INVALID_ARGUMENT error is returned. // // If the caller does not have permission to update the // [Product][google.cloud.retail.v2alpha.Product] named in @@ -547,6 +593,25 @@ message SetInventoryRequest { // using the provided or default value for // [SetInventoryRequest.set_time][google.cloud.retail.v2alpha.SetInventoryRequest.set_time]. // + // The caller can replace place IDs for a subset of fulfillment types in the + // following ways: + // + // * Adds "fulfillment_info" in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2alpha.SetInventoryRequest.set_mask] + // * Specifies only the desired fulfillment types and corresponding place IDs + // to update in + // [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info] + // + // The caller can clear all place IDs from a subset of fulfillment types in + // the following ways: + // + // * Adds "fulfillment_info" in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2alpha.SetInventoryRequest.set_mask] + // * Specifies only the desired fulfillment types to clear in + // [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info] + // * Checks that only the desired fulfillment info types have empty + // [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2alpha.FulfillmentInfo.place_ids] + // // The last update time is recorded for the following inventory fields: // * [Product.price_info][google.cloud.retail.v2alpha.Product.price_info] // * [Product.availability][google.cloud.retail.v2alpha.Product.availability] @@ -554,12 +619,15 @@ message SetInventoryRequest { // * [Product.fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info] // // If a full overwrite of inventory information while ignoring timestamps is - // needed, [UpdateProduct][] should be invoked instead. + // needed, + // [ProductService.UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] + // should be invoked instead. Product inventory = 1 [(google.api.field_behavior) = REQUIRED]; // Indicates which inventory fields in the provided - // [Product][google.cloud.retail.v2alpha.Product] to update. If not set or set - // with empty paths, all inventory fields will be updated. + // [Product][google.cloud.retail.v2alpha.Product] to update. + // + // At least one field must be provided. // // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error // is returned and the entire update will be ignored. @@ -581,15 +649,19 @@ message SetInventoryRequest { // Metadata related to the progress of the SetInventory operation. // Currently empty because there is no meaningful metadata populated from the -// [SetInventory][] method. +// [ProductService.SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory] +// method. message SetInventoryMetadata {} // Response of the SetInventoryRequest. Currently empty because -// there is no meaningful response populated from the [SetInventory][] +// there is no meaningful response populated from the +// [ProductService.SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory] // method. message SetInventoryResponse {} -// Request message for [AddFulfillmentPlaces][] method. +// Request message for +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces] +// method. message AddFulfillmentPlacesRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2alpha.Product], such as @@ -621,7 +693,8 @@ message AddFulfillmentPlacesRequest { // If this field is set to an invalid value other than these, an // INVALID_ARGUMENT error is returned. // - // This field directly corresponds to [Product.fulfillment_info.type][]. + // This field directly corresponds to + // [Product.fulfillment_info.type][google.cloud.retail.v2alpha.FulfillmentInfo.type]. string type = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The IDs for this @@ -657,15 +730,19 @@ message AddFulfillmentPlacesRequest { // Metadata related to the progress of the AddFulfillmentPlaces operation. // Currently empty because there is no meaningful metadata populated from the -// [AddFulfillmentPlaces][] method. +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces] +// method. message AddFulfillmentPlacesMetadata {} // Response of the AddFulfillmentPlacesRequest. Currently empty because -// there is no meaningful response populated from the [AddFulfillmentPlaces][] +// there is no meaningful response populated from the +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces] // method. message AddFulfillmentPlacesResponse {} -// Request message for [AddLocalInventories][] method. +// Request message for +// [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories] +// method. message AddLocalInventoriesRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2alpha.Product], such as @@ -680,7 +757,7 @@ message AddLocalInventoriesRequest { ]; // Required. A list of inventory information at difference places. Each place - // is identified by its place ID. At most 1000 inventories are allowed per + // is identified by its place ID. At most 3000 inventories are allowed per // request. repeated LocalInventory local_inventories = 2 [(google.api.field_behavior) = REQUIRED]; @@ -718,15 +795,21 @@ message AddLocalInventoriesRequest { // Metadata related to the progress of the AddLocalInventories operation. // Currently empty because there is no meaningful metadata populated from the -// [AddLocalInventories][] method. +// [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories] +// method. message AddLocalInventoriesMetadata {} -// Response of the [AddLocalInventories][] API. Currently empty because -// there is no meaningful response populated from the [AddLocalInventories][] +// Response of the +// [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories] +// API. Currently empty because there is no meaningful response populated from +// the +// [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories] // method. message AddLocalInventoriesResponse {} -// Request message for [RemoveLocalInventories][] method. +// Request message for +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories] +// method. message RemoveLocalInventoriesRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2alpha.Product], such as @@ -741,7 +824,7 @@ message RemoveLocalInventoriesRequest { ]; // Required. A list of place IDs to have their inventory deleted. - // At most 1000 place IDs are allowed per request. + // At most 3000 place IDs are allowed per request. repeated string place_ids = 2 [(google.api.field_behavior) = REQUIRED]; // The time when the inventory deletions are issued. Used to prevent @@ -760,15 +843,21 @@ message RemoveLocalInventoriesRequest { // Metadata related to the progress of the RemoveLocalInventories operation. // Currently empty because there is no meaningful metadata populated from the -// [RemoveLocalInventories][] method. +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories] +// method. message RemoveLocalInventoriesMetadata {} -// Response of the [RemoveLocalInventories][] API. Currently empty because -// there is no meaningful response populated from the [RemoveLocalInventories][] +// Response of the +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories] +// API. Currently empty because there is no meaningful response populated from +// the +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories] // method. message RemoveLocalInventoriesResponse {} -// Request message for [RemoveFulfillmentPlaces][] method. +// Request message for +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces] +// method. message RemoveFulfillmentPlacesRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2alpha.Product], such as @@ -800,7 +889,8 @@ message RemoveFulfillmentPlacesRequest { // If this field is set to an invalid value other than these, an // INVALID_ARGUMENT error is returned. // - // This field directly corresponds to [Product.fulfillment_info.type][]. + // This field directly corresponds to + // [Product.fulfillment_info.type][google.cloud.retail.v2alpha.FulfillmentInfo.type]. string type = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The IDs for this @@ -831,10 +921,12 @@ message RemoveFulfillmentPlacesRequest { // Metadata related to the progress of the RemoveFulfillmentPlaces operation. // Currently empty because there is no meaningful metadata populated from the -// [RemoveFulfillmentPlaces][] method. +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces] +// method. message RemoveFulfillmentPlacesMetadata {} // Response of the RemoveFulfillmentPlacesRequest. Currently empty because there -// is no meaningful response populated from the [RemoveFulfillmentPlaces][] +// is no meaningful response populated from the +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces] // method. message RemoveFulfillmentPlacesResponse {} diff --git a/google/cloud/retail/v2alpha/promotion.proto b/google/cloud/retail/v2alpha/promotion.proto new file mode 100644 index 000000000..879449a42 --- /dev/null +++ b/google/cloud/retail/v2alpha/promotion.proto @@ -0,0 +1,40 @@ +// 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 google.cloud.retail.v2alpha; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; +option java_multiple_files = true; +option java_outer_classname = "PromotionProto"; +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"; + +// Promotion information. +message Promotion { + // ID of the promotion. For example, "free gift". + // + // The value must be a UTF-8 encoded string with a length limit of 128 + // characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, + // 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). + string promotion_id = 1; +} diff --git a/google/cloud/retail/v2alpha/purge_config.proto b/google/cloud/retail/v2alpha/purge_config.proto index 269ae2ffe..d05376b6e 100644 --- a/google/cloud/retail/v2alpha/purge_config.proto +++ b/google/cloud/retail/v2alpha/purge_config.proto @@ -16,8 +16,9 @@ syntax = "proto3"; package google.cloud.retail.v2alpha; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; @@ -32,12 +33,105 @@ option ruby_package = "Google::Cloud::Retail::V2alpha"; // 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.v2alpha.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 // created. The format is // `projects/${projectId}/locations/global/catalogs/${catalogId}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; // Required. The filter string to specify the events to be deleted with a // length limit of 5,000 characters. Empty string filter is not allowed. The diff --git a/google/cloud/retail/v2alpha/retail_grpc_service_config.json b/google/cloud/retail/v2alpha/retail_grpc_service_config.json index 0c4d5489a..87ad2d9b2 100644 --- a/google/cloud/retail/v2alpha/retail_grpc_service_config.json +++ b/google/cloud/retail/v2alpha/retail_grpc_service_config.json @@ -1,77 +1,83 @@ { - "methodConfig": [{ - "name": [ - { "service": "google.cloud.retail.v2alpha.CatalogService" }, - { "service": "google.cloud.retail.v2alpha.CompletionService" }, - { "service": "google.cloud.retail.v2alpha.UserEventService" }, - { "service": "google.cloud.retail.v2alpha.PredictionService" }, - { "service": "google.cloud.retail.v2alpha.SearchService" } - ], - "timeout": "5s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "5s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - }, { - "name": [ - { "service": "google.cloud.retail.v2alpha.ProductService" }, - { - "service": "google.cloud.retail.v2alpha.UserEventService", - "method": "PurgeUserEvents" + "methodConfig": [ + { + "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" } + ], + "timeout": "5s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "5s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } - ], - "timeout": "30s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "30s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - }, { - "name": [ - { - "service": "google.longrunning.Operations", - "method": "ListOperations" - }, - { - "service": "google.cloud.retail.v2alpha.ProductService", - "method": "ImportProducts" + }, + { + "name": [ + { "service": "google.cloud.retail.v2alpha.ProductService" }, + { + "service": "google.cloud.retail.v2alpha.UserEventService", + "method": "PurgeUserEvents" + } + ], + "timeout": "30s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "30s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } - ], - "timeout": "300s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "300s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - }, { - "name": [ - { - "service": "google.cloud.retail.v2alpha.UserEventService", - "method": "ImportUserEvents" + }, + { + "name": [ + { "service": "google.cloud.retail.v2alpha.ModelService" } + ], + "timeout": "60s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] + } + }, + { + "name": [ + { + "service": "google.longrunning.Operations", + "method": "ListOperations" + }, + { + "service": "google.cloud.retail.v2alpha.ProductService", + "method": "ImportProducts" + } + ], + "timeout": "300s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "300s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] + } + }, + { + "name": [ + { + "service": "google.cloud.retail.v2alpha.UserEventService", + "method": "ImportUserEvents" + } + ], + "timeout": "600s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "300s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } - ], - "timeout": "600s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "300s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] } - }] + ] } diff --git a/google/cloud/retail/v2alpha/retail_v2alpha.yaml b/google/cloud/retail/v2alpha/retail_v2alpha.yaml index 28c5abf72..65d5b6a58 100644 --- a/google/cloud/retail/v2alpha/retail_v2alpha.yaml +++ b/google/cloud/retail/v2alpha/retail_v2alpha.yaml @@ -4,17 +4,25 @@ name: retail.googleapis.com title: Retail API apis: +- name: google.cloud.location.Locations - name: google.cloud.retail.v2alpha.CatalogService - name: google.cloud.retail.v2alpha.CompletionService +- name: google.cloud.retail.v2alpha.ControlService +- name: google.cloud.retail.v2alpha.ModelService - name: google.cloud.retail.v2alpha.PredictionService - name: google.cloud.retail.v2alpha.ProductService - name: google.cloud.retail.v2alpha.SearchService +- name: google.cloud.retail.v2alpha.ServingConfigService - name: google.cloud.retail.v2alpha.UserEventService +- name: google.longrunning.Operations types: - name: google.cloud.retail.logging.ErrorLog - name: google.cloud.retail.v2alpha.AddFulfillmentPlacesMetadata - name: google.cloud.retail.v2alpha.AddFulfillmentPlacesResponse +- name: google.cloud.retail.v2alpha.AddLocalInventoriesMetadata +- name: google.cloud.retail.v2alpha.AddLocalInventoriesResponse +- name: google.cloud.retail.v2alpha.CreateModelMetadata - name: google.cloud.retail.v2alpha.ExportErrorsConfig - name: google.cloud.retail.v2alpha.ExportMetadata - name: google.cloud.retail.v2alpha.ExportProductsResponse @@ -24,14 +32,21 @@ types: - name: google.cloud.retail.v2alpha.ImportMetadata - name: google.cloud.retail.v2alpha.ImportProductsResponse - name: google.cloud.retail.v2alpha.ImportUserEventsResponse +- name: google.cloud.retail.v2alpha.Model - name: google.cloud.retail.v2alpha.PurgeMetadata +- name: google.cloud.retail.v2alpha.PurgeProductsMetadata +- name: google.cloud.retail.v2alpha.PurgeProductsResponse - name: google.cloud.retail.v2alpha.PurgeUserEventsResponse - name: google.cloud.retail.v2alpha.RejoinUserEventsMetadata - name: google.cloud.retail.v2alpha.RejoinUserEventsResponse - name: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesMetadata - name: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesResponse +- name: google.cloud.retail.v2alpha.RemoveLocalInventoriesMetadata +- name: google.cloud.retail.v2alpha.RemoveLocalInventoriesResponse - name: google.cloud.retail.v2alpha.SetInventoryMetadata - name: google.cloud.retail.v2alpha.SetInventoryResponse +- name: google.cloud.retail.v2alpha.TuneModelMetadata +- name: google.cloud.retail.v2alpha.TuneModelResponse documentation: summary: |- @@ -47,6 +62,10 @@ documentation: backend: rules: + - selector: google.cloud.retail.v2alpha.CatalogService.UpdateCatalog + deadline: 10.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 @@ -61,14 +80,16 @@ backend: http: rules: - selector: google.longrunning.Operations.GetOperation - get: '/v2alpha/{name=projects/*/locations/*/operations/*}' + get: '/v2alpha/{name=projects/*/locations/*/catalogs/*/branches/*/operations/*}' additional_bindings: - get: '/v2alpha/{name=projects/*/locations/*/catalogs/*/operations/*}' - - get: '/v2alpha/{name=projects/*/locations/*/catalogs/*/branches/*/operations/*}' + - get: '/v2alpha/{name=projects/*/locations/*/operations/*}' + - get: '/v2alpha/{name=projects/*/operations/*}' - selector: google.longrunning.Operations.ListOperations - get: '/v2alpha/{name=projects/*/locations/*}/operations' + get: '/v2alpha/{name=projects/*/locations/*/catalogs/*}/operations' additional_bindings: - - get: '/v2alpha/{name=projects/*/locations/*/catalogs/*}/operations' + - get: '/v2alpha/{name=projects/*/locations/*}/operations' + - get: '/v2alpha/{name=projects/*}/operations' authentication: rules: @@ -92,6 +113,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2alpha.ControlService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2alpha.ModelService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.retail.v2alpha.PredictionService.Predict oauth: canonical_scopes: |- @@ -104,6 +133,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2alpha.ServingConfigService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.retail.v2alpha.UserEventService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/retail/v2alpha/search_service.proto b/google/cloud/retail/v2alpha/search_service.proto index 3d903a65c..24bfa34aa 100644 --- a/google/cloud/retail/v2alpha/search_service.proto +++ b/google/cloud/retail/v2alpha/search_service.proto @@ -24,8 +24,6 @@ import "google/cloud/retail/v2alpha/common.proto"; import "google/cloud/retail/v2alpha/product.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; @@ -39,8 +37,7 @@ option ruby_package = "Google::Cloud::Retail::V2alpha"; // Service for search. // // This feature is only available for users who have Retail Search enabled. -// Please submit a form [here](https://cloud.google.com/contact) to contact -// cloud sales if you are interested in using Retail Search. +// Please enable Retail Search on Cloud Console before using this feature. service SearchService { option (google.api.default_host) = "retail.googleapis.com"; option (google.api.oauth_scopes) = @@ -49,12 +46,15 @@ service SearchService { // Performs a search. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Please enable Retail Search on Cloud Console before using this feature. rpc Search(SearchRequest) returns (SearchResponse) { option (google.api.http) = { post: "/v2alpha/{placement=projects/*/locations/*/catalogs/*/placements/*}:search" body: "*" + additional_bindings { + post: "/v2alpha/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:search" + body: "*" + } }; } } @@ -106,6 +106,7 @@ message SearchRequest { // * "ratingCount" // * "attributes.key" // * "inventory(place_id,price)" + // * "inventory(place_id,original_price)" // * "inventory(place_id,attributes.key)" string key = 1 [(google.api.field_behavior) = REQUIRED]; @@ -117,8 +118,8 @@ message SearchRequest { // Only get facet for the given restricted values. For example, when using // "pickupInStore" as key and set restricted values to // ["store123", "store456"], only facets for "store123" and "store456" are - // returned. Only supported on textual fields and fulfillments. - // Maximum is 20. + // returned. Only supported on predefined textual fields, custom textual + // attributes and fulfillments. Maximum is 20. // // Must be set for the fulfillment facet keys: // @@ -155,14 +156,22 @@ message SearchRequest { // Only supported on textual fields. Maximum is 10. repeated string contains = 9; - // The order in which [Facet.values][] are returned. + // True to make facet keys case insensitive when getting faceting + // values with prefixes or contains; false otherwise. + bool case_insensitive = 10; + + // The order in which + // [SearchResponse.Facet.values][google.cloud.retail.v2alpha.SearchResponse.Facet.values] + // are returned. // // Allowed values are: // - // * "count desc", which means order by [Facet.FacetValue.count][] + // * "count desc", which means order by + // [SearchResponse.Facet.values.count][google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue.count] // descending. // - // * "value desc", which means order by [Facet.FacetValue.value][] + // * "value desc", which means order by + // [SearchResponse.Facet.values.value][google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue.value] // descending. // Only applies to textual facets. // @@ -184,9 +193,11 @@ message SearchRequest { // [FacetKey.key][google.cloud.retail.v2alpha.SearchRequest.FacetSpec.FacetKey.key] // when query is specified. // - // In the response, [FacetValue.value][] will be always "1" and - // [FacetValue.count][] will be the number of results that matches the - // query. + // In the response, + // [SearchResponse.Facet.values.value][google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue.value] + // will be 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. // // For example, you can set a customized facet for "shipToStore", // where @@ -197,6 +208,10 @@ message SearchRequest { // Then the facet will count the products that are both in stock and ship // to store "123". string query = 5; + + // Returns the min and max value for each numerical facet intervals. + // Ignored for textual facets. + bool return_min_max = 11; } // Required. The facet key specification. @@ -211,19 +226,29 @@ message SearchRequest { // List of keys to exclude when faceting. // + // // By default, // [FacetKey.key][google.cloud.retail.v2alpha.SearchRequest.FacetSpec.FacetKey.key] // is not excluded from the filter unless it is listed in this field. // - // For example, suppose there are 100 products with color facet "Red" and - // 200 products with color facet "Blue". A query containing the filter - // "colorFamilies:ANY("Red")" and have "colorFamilies" as + // Listing a facet key in this field allows its values to appear as facet + // results, even when they are filtered out of search results. Using this + // field does not affect what search results are returned. + // + // For example, suppose there are 100 products with the color facet "Red" + // and 200 products with the color facet "Blue". A query containing the + // filter "colorFamilies:ANY("Red")" and having "colorFamilies" as // [FacetKey.key][google.cloud.retail.v2alpha.SearchRequest.FacetSpec.FacetKey.key] - // will by default return the "Red" with count 100. + // would by default return only "Red" products in the search results, and + // also return "Red" with count 100 as the only color facet. Although there + // are also blue products available, "Blue" would not be shown as an + // available facet value. // - // If this field contains "colorFamilies", then the query returns both the - // "Red" with count 100 and "Blue" with count 200, because the - // "colorFamilies" key is now excluded from the filter. + // If "colorFamilies" is listed in "excludedFilterKeys", then the query + // returns the facet values "Red" with count 100 and "Blue" with count + // 200, because the "colorFamilies" key is now excluded from the filter. + // Because this field doesn't affect search results, the search results + // are still correctly filtered to return only "Red" products. // // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error // is returned. @@ -322,8 +347,16 @@ message SearchRequest { // Condition boost specifications. If a product matches multiple conditions // in the specifictions, boost scores from these specifications are all // applied and combined in a non-linear way. Maximum number of - // specifications is 10. + // specifications is 20. repeated ConditionBoostSpec condition_boost_specs = 1; + + // Whether to skip boostspec validation. If this field is set to true, + // invalid + // [BoostSpec.condition_boost_specs][google.cloud.retail.v2alpha.SearchRequest.BoostSpec.condition_boost_specs] + // will be ignored and valid + // [BoostSpec.condition_boost_specs][google.cloud.retail.v2alpha.SearchRequest.BoostSpec.condition_boost_specs] + // will still be applied. + optional bool skip_boost_spec_validation = 2; } // Specification to determine under which conditions query expansion should @@ -331,7 +364,8 @@ message SearchRequest { message QueryExpansionSpec { // Enum describing under which condition query expansion should occur. enum Condition { - // Unspecified query expansion condition. This defaults to + // Unspecified query expansion condition. In this case, server behavior + // defaults to // [Condition.DISABLED][google.cloud.retail.v2alpha.SearchRequest.QueryExpansionSpec.Condition.DISABLED]. CONDITION_UNSPECIFIED = 0; @@ -354,11 +388,57 @@ message SearchRequest { bool pin_unexpanded_results = 2; } + // The specification for personalization. + message PersonalizationSpec { + // The personalization mode of each search request. + enum Mode { + // Default value. In this case, server behavior defaults to + // [Mode.AUTO][google.cloud.retail.v2alpha.SearchRequest.PersonalizationSpec.Mode.AUTO]. + MODE_UNSPECIFIED = 0; + + // Let CRS decide whether to use personalization. + AUTO = 1; + + // Disable personalization. + DISABLED = 2; + } + + // Defaults to + // [Mode.AUTO][google.cloud.retail.v2alpha.SearchRequest.PersonalizationSpec.Mode.AUTO]. + Mode mode = 1; + } + + // The specification for query spell correction. + message SpellCorrectionSpec { + // Enum describing under which mode spell correction should occur. + enum Mode { + // Unspecified spell correction mode. In this case, server behavior + // defaults to + // [Mode.AUTO][google.cloud.retail.v2alpha.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. + MODE_UNSPECIFIED = 0; + + // Google Retail Search will try to find a spell suggestion if there + // is any and put in the + // [SearchResponse.corrected_query][google.cloud.retail.v2alpha.SearchResponse.corrected_query]. + // The spell suggestion will not be used as the search query. + SUGGESTION_ONLY = 1; + + // Automatic spell correction built by Google Retail Search. Search will + // be based on the corrected query if found. + AUTO = 2; + } + + // The mode under which spell correction should take effect to + // replace the original search query. Default to + // [Mode.AUTO][google.cloud.retail.v2alpha.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. + Mode mode = 1; + } + // The relevance threshold of the search results. The higher relevance // threshold is, the higher relevant results are shown and the less number of // results are returned. enum RelevanceThreshold { - // Default value. Defaults to + // Default value. In this case, server behavior defaults to // [RelevanceThreshold.HIGH][google.cloud.retail.v2alpha.SearchRequest.RelevanceThreshold.HIGH]. RELEVANCE_THRESHOLD_UNSPECIFIED = 0; @@ -396,7 +476,9 @@ message SearchRequest { // Only faceted search will be performed. The product search will be // disabled. // - // When in this mode, one or both of [SearchRequest.facet_spec][] and + // When in this mode, one or both of + // [SearchRequest.facet_specs][google.cloud.retail.v2alpha.SearchRequest.facet_specs] + // and // [SearchRequest.dynamic_facet_spec][google.cloud.retail.v2alpha.SearchRequest.dynamic_facet_spec] // should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only // [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult] @@ -404,7 +486,9 @@ message SearchRequest { FACETED_SEARCH_ONLY = 2; } - // Required. The resource name of the search engine placement, such as + // Required. The resource name of the Retail Search serving config, such as + // `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` + // 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 configuration name and the set // of models that will be used to make the search. @@ -420,6 +504,11 @@ message SearchRequest { ]; // Raw search query. + // + // If this field is empty, the request is considered a category browsing + // request and returned results are based on + // [filter][google.cloud.retail.v2alpha.SearchRequest.filter] and + // [page_categories][google.cloud.retail.v2alpha.SearchRequest.page_categories]. string query = 3; // Required. A unique identifier for tracking visitors. For example, this @@ -427,6 +516,9 @@ message SearchRequest { // identify a visitor on a single device. This unique identifier should not // change if the visitor logs in or out of the website. // + // This should be the same identifier as + // [UserEvent.visitor_id][google.cloud.retail.v2alpha.UserEvent.visitor_id]. + // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string visitor_id = 4 [(google.api.field_behavior) = REQUIRED]; @@ -471,6 +563,9 @@ message SearchRequest { // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string filter = 10; + // The default filter that is applied when a user performs a search without + // 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 @@ -498,22 +593,23 @@ message SearchRequest { // is returned. repeated FacetSpec facet_specs = 12; + // Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic + // to enable dynamic facets. Do not set this field. + // // The specification for dynamically generated facets. Notice that only // textual facets can be dynamically generated. - // - // This feature requires additional allowlisting. Contact Retail Search - // support team if you are interested in using dynamic facet feature. - DynamicFacetSpec dynamic_facet_spec = 21; + 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). // // Notice that if both // [ServingConfig.boost_control_ids][google.cloud.retail.v2alpha.ServingConfig.boost_control_ids] - // and [SearchRequest.boost_spec] are set, the boost conditions from both - // places are evaluated. If a search request matches multiple boost - // conditions, the final boost score is equal to the sum of the boost scores - // from all matched boost conditions. + // and + // [SearchRequest.boost_spec][google.cloud.retail.v2alpha.SearchRequest.boost_spec] + // are set, the boost conditions from both places are evaluated. If a search + // request matches multiple boost conditions, the final boost score is equal + // to the sum of the boost scores from all matched boost conditions. BoostSpec boost_spec = 13; // The query expansion specification that specifies the conditions under which @@ -532,14 +628,15 @@ message SearchRequest { // The keys to fetch and rollup the matching // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2alpha.Product]s attributes. The attributes - // from all the matching - // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2alpha.Product]s are merged and - // de-duplicated. Notice that rollup + // [Product][google.cloud.retail.v2alpha.Product]s attributes, + // [FulfillmentInfo][google.cloud.retail.v2alpha.FulfillmentInfo] or + // [LocalInventory][google.cloud.retail.v2alpha.LocalInventory]s attributes. + // The attributes from all the matching // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2alpha.Product]s attributes will lead to - // extra query latency. Maximum number of keys is 10. + // [Product][google.cloud.retail.v2alpha.Product]s or + // [LocalInventory][google.cloud.retail.v2alpha.LocalInventory]s are merged + // and de-duplicated. Notice that rollup attributes will lead to extra query + // latency. Maximum number of keys is 30. // // For [FulfillmentInfo][google.cloud.retail.v2alpha.FulfillmentInfo], a // fulfillment type and a fulfillment ID must be provided in the format of @@ -554,8 +651,10 @@ message SearchRequest { // * discount // * variantId // * inventory(place_id,price) + // * inventory(place_id,original_price) // * inventory(place_id,attributes.key), where key is any key in the - // [Product.inventories.attributes][] map. + // [Product.local_inventories.attributes][google.cloud.retail.v2alpha.LocalInventory.attributes] + // map. // * attributes.key, where key is any key in the // [Product.attributes][google.cloud.retail.v2alpha.Product.attributes] map. // * pickupInStore.id, where id is any @@ -625,6 +724,32 @@ message SearchRequest { // The search mode of the search request. If not specified, a single search // request triggers both product search and faceted search. SearchMode search_mode = 31; + + // The specification for personalization. + PersonalizationSpec personalization_spec = 32; + + // The 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 labels = 34; + + // The spell correction specification that specifies the mode under + // which spell correction will take effect. + optional SpellCorrectionSpec spell_correction_spec = 35; } // Response message for @@ -721,6 +846,20 @@ message SearchResponse { // Number of items that have this facet value. int64 count = 3; + + // The minimum value in the + // [FacetValue.interval][google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue.interval]. + // Only supported on numerical facets and returned if + // [SearchRequest.FacetSpec.FacetKey.return_min_max][google.cloud.retail.v2alpha.SearchRequest.FacetSpec.FacetKey.return_min_max] + // is true. + double min_value = 5; + + // The maximum value in the + // [FacetValue.interval][google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue.interval]. + // Only supported on numerical facets and returned if + // [SearchRequest.FacetSpec.FacetKey.return_min_max][google.cloud.retail.v2alpha.SearchRequest.FacetSpec.FacetKey.return_min_max] + // is true. + double max_value = 6; } // The key for this facet. E.g., "colorFamilies" or "price" or @@ -760,7 +899,9 @@ message SearchResponse { // matches. int32 total_size = 3; - // If spell correction applies, the corrected query. Otherwise, empty. + // Contains the spell corrected query, if found. If the spell correction type + // is AUTOMATIC, then the search results are based on corrected_query. + // Otherwise the original query is used for search. string corrected_query = 4; // A unique search token. This should be included in the @@ -778,9 +919,19 @@ message SearchResponse { QueryExpansionInfo query_expansion_info = 7; // The URI of a customer-defined redirect page. If redirect action is - // triggered, no search will be performed, and only + // triggered, no search is performed, and only // [redirect_uri][google.cloud.retail.v2alpha.SearchResponse.redirect_uri] and // [attribution_token][google.cloud.retail.v2alpha.SearchResponse.attribution_token] - // will be set in the response. + // are set in the response. string redirect_uri = 10; + + // The fully qualified resource name of applied + // [controls](https://cloud.google.com/retail/docs/serving-control-rules). + repeated string applied_controls = 12; + + // The invalid + // [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2alpha.SearchRequest.BoostSpec.condition_boost_specs] + // that are not applied during serving. + repeated SearchRequest.BoostSpec.ConditionBoostSpec + invalid_condition_boost_specs = 14; } diff --git a/google/cloud/retail/v2alpha/serving_config.proto b/google/cloud/retail/v2alpha/serving_config.proto new file mode 100644 index 000000000..d05240124 --- /dev/null +++ b/google/cloud/retail/v2alpha/serving_config.proto @@ -0,0 +1,248 @@ +// 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 google.cloud.retail.v2alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2alpha/common.proto"; +import "google/cloud/retail/v2alpha/search_service.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; +option java_multiple_files = true; +option java_outer_classname = "ServingConfigProto"; +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"; + +// 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 together +// with the Catalog.default_branch, generates results. +message ServingConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/ServingConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/servingConfigs/{serving_config}" + }; + + // Immutable. Fully qualified name + // `projects/*/locations/global/catalogs/*/servingConfig/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The human readable serving config display name. Used in Retail + // 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]; + + // The id of the model to use at serving time. + // Currently only RecommendationModels are supported: + // https://cloud.google.com/retail/recommendations-ai/docs/create-models + // Can be changed but only to a compatible model (e.g. + // others-you-may-like CTR to others-you-may-like CVR). + // + // Required when + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string model_id = 3; + + // How much price ranking we want in serving results. + // Price reranking causes product items with a similar + // recommendation probability to be ordered by price, with the + // highest-priced items first. This setting could result in a decrease in + // click-through and conversion rates. + // Allowed values are: + // + // * 'no-price-reranking' + // * 'low-price-raranking' + // * 'medium-price-reranking' + // * 'high-price-reranking' + // + // If not specified, we choose default based on model type. Default value: + // 'no-price-reranking'. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string price_reranking_level = 4; + + // Facet specifications for faceted search. If empty, no facets are returned. + // The ids refer to the ids of [Control][google.cloud.retail.v2alpha.Control] + // resources with only the Facet control set. These controls are assumed to be + // in the same [Catalog][google.cloud.retail.v2alpha.Catalog] as the + // [ServingConfig][google.cloud.retail.v2alpha.ServingConfig]. + // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error + // is returned. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string facet_control_ids = 5; + + // The specification for dynamically generated facets. Notice that only + // textual facets can be dynamically generated. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + SearchRequest.DynamicFacetSpec dynamic_facet_spec = 6; + + // Condition boost specifications. If a product matches multiple conditions + // in the specifications, boost scores from these specifications are all + // applied and combined in a non-linear way. Maximum number of + // specifications is 100. + // + // Notice that if both + // [ServingConfig.boost_control_ids][google.cloud.retail.v2alpha.ServingConfig.boost_control_ids] + // and + // [SearchRequest.boost_spec][google.cloud.retail.v2alpha.SearchRequest.boost_spec] + // are set, the boost conditions from both places are evaluated. If a search + // request matches multiple boost conditions, the final boost score is equal + // to the sum of the boost scores from all matched boost conditions. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string boost_control_ids = 7; + + // Condition filter specifications. If a product matches multiple conditions + // in the specifications, filters from these specifications are all + // applied and combined via the AND operator. Maximum number of + // specifications is 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string filter_control_ids = 9; + + // Condition redirect specifications. Only the first triggered redirect action + // is applied, even if multiple apply. Maximum number of specifications is + // 1000. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string redirect_control_ids = 10; + + // Condition synonyms specifications. If multiple syonyms conditions match, + // all matching synonyms control in the list will execute. Order of controls + // in the list will not matter. Maximum number of specifications is + // 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string twoway_synonyms_control_ids = 18; + + // Condition oneway synonyms specifications. If multiple oneway synonyms + // conditions match, all matching oneway synonyms controls in the list will + // execute. Order of controls in the list will not matter. Maximum number of + // specifications is 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string oneway_synonyms_control_ids = 12; + + // 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 + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string do_not_associate_control_ids = 13; + + // 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 + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string replacement_control_ids = 14; + + // 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. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string ignore_control_ids = 15; + + // 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 + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string diversity_level = 8; + + // Whether to add additional category filters on the 'similar-items' model. + // If not specified, we enable it by default. + // Allowed values are: + // + // * 'no-category-match': No additional filtering of original results from + // the model and the customer's filters. + // * 'relaxed-category-match': Only keep results with categories that match + // at least one item categories in the PredictRequests's context item. + // * If customer also sends filters in the PredictRequest, then the results + // will satisfy both conditions (user given and category match). + // + // Can only be set if + // [solution_types][google.cloud.retail.v2alpha.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string enable_category_filter_level = 16; + + // Required. Immutable. Specifies the solution types that a serving config can + // be associated with. Currently we support setting only one type of solution. + repeated SolutionType solution_types = 19 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; +} diff --git a/google/cloud/retail/v2alpha/serving_config_service.proto b/google/cloud/retail/v2alpha/serving_config_service.proto new file mode 100644 index 000000000..311126510 --- /dev/null +++ b/google/cloud/retail/v2alpha/serving_config_service.proto @@ -0,0 +1,241 @@ +// 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 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/serving_config.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail"; +option java_multiple_files = true; +option java_outer_classname = "ServingConfigServiceProto"; +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 modifying ServingConfig. +service ServingConfigService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a ServingConfig. + // + // A maximum of 100 + // [ServingConfig][google.cloud.retail.v2alpha.ServingConfig]s are allowed in + // a [Catalog][google.cloud.retail.v2alpha.Catalog], otherwise a + // FAILED_PRECONDITION error is returned. + rpc CreateServingConfig(CreateServingConfigRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + body: "serving_config" + }; + option (google.api.method_signature) = + "parent,serving_config,serving_config_id"; + } + + // Deletes a ServingConfig. + // + // Returns a NotFound error if the ServingConfig does not exist. + rpc DeleteServingConfig(DeleteServingConfigRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2alpha/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a ServingConfig. + rpc UpdateServingConfig(UpdateServingConfigRequest) returns (ServingConfig) { + option (google.api.http) = { + patch: "/v2alpha/{serving_config.name=projects/*/locations/*/catalogs/*/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: "/v2alpha/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all ServingConfigs linked to this catalog. + rpc ListServingConfigs(ListServingConfigsRequest) + returns (ListServingConfigsResponse) { + option (google.api.http) = { + get: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Enables a Control on the specified ServingConfig. + // The control is added in the last position of the list of controls + // it belongs to (e.g. if it's a facet spec control it will be applied + // in the last position of servingConfig.facetSpecIds) + // Returns a ALREADY_EXISTS error if the control has already been applied. + // Returns a FAILED_PRECONDITION error if the addition could exceed maximum + // number of control allowed for that type of control. + rpc AddControl(AddControlRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2alpha/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:addControl" + body: "*" + }; + option (google.api.method_signature) = "serving_config"; + } + + // Disables a Control on the specified ServingConfig. + // The control is removed from the ServingConfig. + // Returns a NOT_FOUND error if the Control is not enabled for the + // ServingConfig. + rpc RemoveControl(RemoveControlRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2alpha/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:removeControl" + body: "*" + }; + option (google.api.method_signature) = "serving_config"; + } +} + +// Request for CreateServingConfig method. +message CreateServingConfigRequest { + // Required. Full resource name of parent. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The ServingConfig to create. + ServingConfig serving_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the ServingConfig, which will become the final + // component of the ServingConfig's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-_/. + string serving_config_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// 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.retail.v2alpha.ServingConfig] to update. The + // following are NOT supported: + // + // * [ServingConfig.name][google.cloud.retail.v2alpha.ServingConfig.name] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteServingConfig method. +message DeleteServingConfigRequest { + // Required. The resource name of the ServingConfig to delete. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; +} + +// Request for GetServingConfig method. +message GetServingConfigRequest { + // Required. The resource name of the ServingConfig to get. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; +} + +// Request for ListServingConfigs method. +message ListServingConfigsRequest { + // Required. The catalog resource name. Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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 catalog. + repeated ServingConfig serving_configs = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} + +// Request for AddControl method. +message AddControlRequest { + // Required. The source ServingConfig resource name . Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id} + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; + + // Required. The id of the control to apply. Assumed to be in the same catalog + // as the serving config - if id is not found a NOT_FOUND error is returned. + string control_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for RemoveControl method. +message RemoveControlRequest { + // Required. The source ServingConfig resource name . Format: + // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id} + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; + + // Required. The id of the control to apply. Assumed to be in the same catalog + // as the serving config. + string control_id = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/retail/v2alpha/user_event.proto b/google/cloud/retail/v2alpha/user_event.proto index 6e025f7a9..ca25f3003 100644 --- a/google/cloud/retail/v2alpha/user_event.proto +++ b/google/cloud/retail/v2alpha/user_event.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2alpha; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/cloud/retail/v2alpha/common.proto"; import "google/cloud/retail/v2alpha/product.proto"; @@ -40,7 +39,6 @@ message UserEvent { // * `add-to-cart`: Products being added to cart. // * `category-page-view`: Special pages such as sale or promotion pages // viewed. - // * `completion`: Completion query result showed/clicked. // * `detail-page-view`: Products detail page viewed. // * `home-page-view`: Homepage viewed. // * `promotion-offered`: Promotion is offered to a user. @@ -56,11 +54,15 @@ message UserEvent { // able to uniquely identify a visitor on a single device. This unique // identifier should not change if the visitor log in/out of the website. // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded model + // quality. + // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // // The field should not contain PII or user-data. We recommend to use Google - // Analystics [Client + // Analytics [Client // ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) // for this field. string visitor_id = 2 [(google.api.field_behavior) = REQUIRED]; @@ -113,7 +115,7 @@ message UserEvent { // The main product details related to the event. // - // This field is required for the following event types: + // This field is optional except for the following event types: // // * `add-to-cart` // * `detail-page-view` @@ -128,22 +130,35 @@ message UserEvent { // desired. The end user may have not finished browsing the whole page yet. repeated ProductDetail product_details = 6; - // The main completion details related to the event. + // The main auto-completion details related to the event. // - // In a `completion` event, this field represents the completions returned to - // the end user and the clicked completion by the end user. In a `search` - // event, it represents the search event happens after clicking completion. + // This field should be set for `search` event when autocomplete function is + // enabled and the user clicks a suggestion for search. CompletionDetail completion_detail = 22; // Extra user event features to include in the recommendation model. // - // The key must be a UTF-8 encoded string with a length limit of 5,000 - // characters. Otherwise, an INVALID_ARGUMENT error is returned. - // - // For product recommendation, an example of extra user information is - // traffic_channel, i.e. how user arrives at the site. Users can arrive - // at the site by coming to the site directly, or coming through Google - // search, and etc. + // If you provide custom attributes for ingested user events, also include + // them in the user events that you associate with prediction requests. Custom + // attribute formatting must be consistent between imported events and events + // provided with prediction requests. This lets the Retail API use + // those custom attributes when training models and serving predictions, which + // helps improve recommendation quality. + // + // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT + // error is returned: + // + // * The key must be a UTF-8 encoded string with a length limit of 5,000 + // characters. + // * For text attributes, at most 400 values are allowed. Empty values are not + // allowed. Each value must be a UTF-8 encoded string with a length limit of + // 256 characters. + // * For number attributes, at most 400 values are allowed. + // + // For product recommendations, an example of extra user information is + // traffic_channel, which is how a user arrives at the site. Users can arrive + // at the site by coming to the site directly, coming through Google + // search, or in other ways. map attributes = 7; // The ID or name of the associated shopping cart. This ID is used diff --git a/google/cloud/retail/v2alpha/user_event_service.proto b/google/cloud/retail/v2alpha/user_event_service.proto index 2e91984a9..35fe33f4b 100644 --- a/google/cloud/retail/v2alpha/user_event_service.proto +++ b/google/cloud/retail/v2alpha/user_event_service.proto @@ -20,7 +20,6 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/httpbody.proto"; -import "google/cloud/retail/v2alpha/export_config.proto"; import "google/cloud/retail/v2alpha/import_config.proto"; import "google/cloud/retail/v2alpha/purge_config.proto"; import "google/cloud/retail/v2alpha/user_event.proto"; @@ -95,13 +94,14 @@ service UserEventService { }; } - // Triggers a user event rejoin operation with latest product catalog. Events + // Starts a user event rejoin operation with latest product catalog. Events // will not be annotated with detailed product information if product is // missing from the catalog at the time the user event is ingested, and these // events are stored as unjoined events with a limited usage on training and - // serving. This API can be used to trigger a 'join' operation on specified + // serving. This method can be used to start a join operation on specified // events with latest version of product catalog. It can also be used to - // correct events joined with wrong product catalog. + // correct events joined with the wrong product catalog. A rejoin operation + // can take hours or days to complete. rpc RejoinUserEvents(RejoinUserEventsRequest) returns (google.longrunning.Operation) { option (google.api.http) = { diff --git a/google/cloud/retail/v2beta/BUILD.bazel b/google/cloud/retail/v2beta/BUILD.bazel index fe9dc73c6..e91ace7ee 100644 --- a/google/cloud/retail/v2beta/BUILD.bazel +++ b/google/cloud/retail/v2beta/BUILD.bazel @@ -25,13 +25,20 @@ proto_library( "catalog_service.proto", "common.proto", "completion_service.proto", + "control.proto", + "control_service.proto", "export_config.proto", "import_config.proto", + "model.proto", + "model_service.proto", "prediction_service.proto", "product.proto", "product_service.proto", + "promotion.proto", "purge_config.proto", "search_service.proto", + "serving_config.proto", + "serving_config_service.proto", "user_event.proto", "user_event_service.proto", ], @@ -87,10 +94,13 @@ java_grpc_library( java_gapic_library( name = "retail_java_gapic", srcs = [":retail_proto_with_info"], + gapic_yaml = "retail_gapic.yaml", grpc_service_config = "retail_grpc_service_config.json", + service_yaml = "retail_v2beta.yaml", test_deps = [ ":retail_java_grpc", ], + transport = "grpc+rest", deps = [ ":retail_java_proto", "//google/api:api_java_proto", @@ -100,11 +110,23 @@ java_gapic_library( java_gapic_test( name = "retail_java_gapic_test_suite", test_classes = [ + "com.google.cloud.retail.v2beta.CatalogServiceClientHttpJsonTest", "com.google.cloud.retail.v2beta.CatalogServiceClientTest", + "com.google.cloud.retail.v2beta.CompletionServiceClientHttpJsonTest", "com.google.cloud.retail.v2beta.CompletionServiceClientTest", + "com.google.cloud.retail.v2beta.ControlServiceClientHttpJsonTest", + "com.google.cloud.retail.v2beta.ControlServiceClientTest", + "com.google.cloud.retail.v2beta.ModelServiceClientHttpJsonTest", + "com.google.cloud.retail.v2beta.ModelServiceClientTest", + "com.google.cloud.retail.v2beta.PredictionServiceClientHttpJsonTest", "com.google.cloud.retail.v2beta.PredictionServiceClientTest", + "com.google.cloud.retail.v2beta.ProductServiceClientHttpJsonTest", "com.google.cloud.retail.v2beta.ProductServiceClientTest", + "com.google.cloud.retail.v2beta.SearchServiceClientHttpJsonTest", "com.google.cloud.retail.v2beta.SearchServiceClientTest", + "com.google.cloud.retail.v2beta.ServingConfigServiceClientHttpJsonTest", + "com.google.cloud.retail.v2beta.ServingConfigServiceClientTest", + "com.google.cloud.retail.v2beta.UserEventServiceClientHttpJsonTest", "com.google.cloud.retail.v2beta.UserEventServiceClientTest", ], runtime_deps = [":retail_java_gapic_test"], @@ -113,6 +135,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-retail-v2beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":retail_java_gapic", ":retail_java_grpc", @@ -189,12 +213,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "retail_py_gapic", srcs = [":retail_proto"], grpc_service_config = "retail_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "retail_py_gapic_test", + srcs = [ + "retail_py_gapic_pytest.py", + "retail_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":retail_py_gapic"], ) # Open Source Packages @@ -266,6 +302,7 @@ nodejs_gapic_library( package = "google.cloud.retail.v2beta", service_yaml = "retail_v2beta.yaml", deps = [], + mixins = "google.longrunning.Operations;google.cloud.location.Locations", ) nodejs_gapic_assembly_pkg( @@ -301,8 +338,16 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "retail_ruby_gapic", srcs = [":retail_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-retail-v2beta"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=retail.googleapis.com", + "ruby-cloud-api-shortname=retail", + "ruby-cloud-env-prefix=RETAIL", + "ruby-cloud-gem-name=google-cloud-retail-v2beta", + "ruby-cloud-product-url=https://cloud.google.com/retail/docs/apis", + ], grpc_service_config = "retail_grpc_service_config.json", + ruby_cloud_description = "Retail enables you to build an end-to-end personalized recommendation system based on state-of-the-art deep learning ML models, without a need for expertise in ML or recommendation systems.", + ruby_cloud_title = "Retail V2beta", deps = [ ":retail_ruby_grpc", ":retail_ruby_proto", @@ -346,6 +391,7 @@ csharp_gapic_library( srcs = [":retail_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "retail_grpc_service_config.json", + service_yaml = "retail_v2beta.yaml", deps = [ ":retail_csharp_grpc", ":retail_csharp_proto", @@ -365,4 +411,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "retail_cc_proto", + deps = [":retail_proto"], +) + +cc_grpc_library( + name = "retail_cc_grpc", + srcs = [":retail_proto"], + grpc_only = True, + deps = [":retail_cc_proto"], +) diff --git a/google/cloud/retail/v2beta/catalog.proto b/google/cloud/retail/v2beta/catalog.proto index ffec074fe..c95e3ac93 100644 --- a/google/cloud/retail/v2beta/catalog.proto +++ b/google/cloud/retail/v2beta/catalog.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2beta; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2beta/common.proto"; @@ -43,10 +42,10 @@ message ProductLevelConfig { // default to // [Product.Type.PRIMARY][google.cloud.retail.v2beta.Product.Type.PRIMARY] // if unset. - // * `variant`: You can only ingest - // [Product.Type.VARIANT][google.cloud.retail.v2beta.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2beta.Product]s. - // This means + // * `variant` (incompatible with Retail Search): You can only + // ingest + // [Product.Type.VARIANT][google.cloud.retail.v2beta.Product.Type.VARIANT] + // [Product][google.cloud.retail.v2beta.Product]s. This means // [Product.primary_product_id][google.cloud.retail.v2beta.Product.primary_product_id] // cannot be empty. // @@ -57,8 +56,8 @@ message ProductLevelConfig { // [merchant_center_product_id_field][google.cloud.retail.v2beta.ProductLevelConfig.merchant_center_product_id_field] // is `itemGroupId`, an INVALID_ARGUMENT error is returned. // - // See [Using product - // levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + // See [Product + // levels](https://cloud.google.com/retail/docs/catalog#product-levels) // for more details. string ingestion_product_type = 1; @@ -79,12 +78,330 @@ message ProductLevelConfig { // [ingestion_product_type][google.cloud.retail.v2beta.ProductLevelConfig.ingestion_product_type] // is `variant`, an INVALID_ARGUMENT error is returned. // - // See [Using product - // levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + // See [Product + // levels](https://cloud.google.com/retail/docs/catalog#product-levels) // for more details. string merchant_center_product_id_field = 2; } +// Catalog level attribute config for an attribute. For example, if customers +// want to enable/disable facet for a specific attribute. +message CatalogAttribute { + // The type of an attribute. + enum AttributeType { + // The type of the attribute is unknown. + // + // Used when type cannot be derived from attribute that is not + // [in_use][google.cloud.retail.v2beta.CatalogAttribute.in_use]. + UNKNOWN = 0; + + // Textual attribute. + TEXTUAL = 1; + + // Numerical attribute. + NUMERICAL = 2; + } + + // The status of the indexable option of a catalog attribute. + enum IndexableOption { + // Value used when unset. Defaults to + // [INDEXABLE_ENABLED][google.cloud.retail.v2beta.CatalogAttribute.IndexableOption.INDEXABLE_ENABLED]. + INDEXABLE_OPTION_UNSPECIFIED = 0; + + // Indexable option enabled for an attribute. + INDEXABLE_ENABLED = 1; + + // Indexable option disabled for an attribute. + INDEXABLE_DISABLED = 2; + } + + // The status of the dynamic facetable option of a catalog attribute. + enum DynamicFacetableOption { + // Value used when unset. Defaults to + // [DYNAMIC_FACETABLE_ENABLED][google.cloud.retail.v2beta.CatalogAttribute.DynamicFacetableOption.DYNAMIC_FACETABLE_ENABLED]. + DYNAMIC_FACETABLE_OPTION_UNSPECIFIED = 0; + + // Dynamic facetable option enabled for an attribute. + DYNAMIC_FACETABLE_ENABLED = 1; + + // Dynamic facetable option disabled for an attribute. + DYNAMIC_FACETABLE_DISABLED = 2; + } + + // The status of the searchable option of a catalog attribute. + enum SearchableOption { + // Value used when unset. Defaults to + // [SEARCHABLE_DISABLED][google.cloud.retail.v2beta.CatalogAttribute.SearchableOption.SEARCHABLE_DISABLED]. + SEARCHABLE_OPTION_UNSPECIFIED = 0; + + // Searchable option enabled for an attribute. + SEARCHABLE_ENABLED = 1; + + // Searchable option disabled for an attribute. + SEARCHABLE_DISABLED = 2; + } + + // The status of the exact-searchable option of a catalog attribute. + enum ExactSearchableOption { + // Value used when unset. Defaults to + // [EXACT_SEARCHABLE_DISABLED][google.cloud.retail.v2beta.CatalogAttribute.ExactSearchableOption.EXACT_SEARCHABLE_DISABLED]. + EXACT_SEARCHABLE_OPTION_UNSPECIFIED = 0; + + // Exact searchable option enabled for an attribute. + EXACT_SEARCHABLE_ENABLED = 1; + + // Exact searchable option disabled for an attribute. + EXACT_SEARCHABLE_DISABLED = 2; + } + + // Required. Attribute name. + // For example: `color`, `brands`, `attributes.custom_attribute`, such as + // `attributes.xyz`. + // To be indexable, the attribute name can contain only alpha-numeric + // characters and underscores. For example, an attribute named + // `attributes.abc_xyz` can be indexed, but an attribute named + // `attributes.abc-xyz` cannot be indexed. + string key = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Indicates whether this attribute has been used by any + // products. `True` if at least one + // [Product][google.cloud.retail.v2beta.Product] is using this attribute in + // [Product.attributes][google.cloud.retail.v2beta.Product.attributes]. + // Otherwise, this field is `False`. + // + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] can be + // pre-loaded by using + // [CatalogService.AddCatalogAttribute][google.cloud.retail.v2beta.CatalogService.AddCatalogAttribute], + // [CatalogService.ImportCatalogAttributes][], or + // [CatalogService.UpdateAttributesConfig][google.cloud.retail.v2beta.CatalogService.UpdateAttributesConfig] + // APIs. This field is `False` for pre-loaded + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute]s. + // + // Only pre-loaded + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute]s that are + // neither in use by products nor predefined can be deleted. + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute]s that are + // either in use by products or are predefined cannot be deleted; however, + // their configuration properties will reset to default values upon removal + // request. + // + // After catalog changes, it takes about 10 minutes for this field to update. + bool in_use = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of this attribute. This is derived from the attribute + // in [Product.attributes][google.cloud.retail.v2beta.Product.attributes]. + AttributeType type = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // When + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2beta.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values + // are indexed so that it can be filtered, faceted, or boosted in + // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search]. + IndexableOption indexable_option = 5; + + // If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic + // facet. Could only be DYNAMIC_FACETABLE_DISABLED if + // [CatalogAttribute.indexable_option][google.cloud.retail.v2beta.CatalogAttribute.indexable_option] + // is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. + DynamicFacetableOption dynamic_facetable_option = 6; + + // When + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2beta.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values + // are searchable by text queries in + // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search]. + // + // If SEARCHABLE_ENABLED but attribute type is numerical, attribute values + // will not be searchable by text queries in + // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search], as + // there are no text values associated to numerical attributes. + SearchableOption searchable_option = 7; + + // When + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2beta.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if RECOMMENDATIONS_FILTERING_ENABLED, + // attribute values are filterable for recommendations. + // This option works for categorical features only, + // does not work for numerical features, inventory filtering. + RecommendationsFilteringOption recommendations_filtering_option = 8; + + // If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. + // This property only applies to textual custom attributes and requires + // indexable set to enabled to enable exact-searchable. + ExactSearchableOption exact_searchable_option = 11; +} + +// Catalog level attribute config. +message AttributesConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/AttributesConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/attributesConfig" + }; + + // Required. Immutable. The fully qualified resource name of the attribute + // config. Format: `projects/*/locations/*/catalogs/*/attributesConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Enable attribute(s) config at catalog level. + // For example, indexable, dynamic_facetable, or searchable for each + // attribute. + // + // The key is catalog attribute's name. + // For example: `color`, `brands`, `attributes.custom_attribute`, such as + // `attributes.xyz`. + // + // The maximum number of catalog attributes allowed in a request is 1000. + map catalog_attributes = 2; + + // Output only. The + // [AttributeConfigLevel][google.cloud.retail.v2beta.AttributeConfigLevel] + // used for this catalog. + AttributeConfigLevel attribute_config_level = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Catalog level autocomplete config for customers to customize autocomplete +// feature's settings. +message CompletionConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/CompletionConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/completionConfig" + }; + + // Required. Immutable. Fully qualified name + // `projects/*/locations/*/catalogs/*/completionConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Specifies the matching order for autocomplete suggestions, e.g., a query + // consisting of 'sh' with 'out-of-order' specified would suggest "women's + // shoes", whereas a query of 'red s' with 'exact-prefix' specified would + // suggest "red shoes". Currently supported values: + // + // * 'out-of-order' + // * 'exact-prefix' + // + // Default value: 'exact-prefix'. + string matching_order = 2; + + // The maximum number of autocomplete suggestions returned per term. Default + // value is 20. If left unset or set to 0, then will fallback to default + // value. + // + // Value range is 1 to 20. + int32 max_suggestions = 3; + + // The minimum number of characters needed to be typed in order to get + // suggestions. Default value is 2. If left unset or set to 0, then will + // fallback to default value. + // + // Value range is 1 to 20. + int32 min_prefix_length = 4; + + // If set to true, the auto learning function is enabled. Auto learning uses + // user data to generate suggestions using ML techniques. Default value is + // false. Only after enabling auto learning can users use `cloud-retail` + // data in + // [CompleteQueryRequest][google.cloud.retail.v2beta.CompleteQueryRequest]. + bool auto_learning = 11; + + // Output only. The source data for the latest import of the autocomplete + // suggestion phrases. + CompletionDataInputConfig suggestions_input_config = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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. + string last_suggestions_import_operation = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The source data for the latest import of the autocomplete + // denylist phrases. + CompletionDataInputConfig denylist_input_config = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the LRO corresponding to the latest denylist import. + // + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to + // retrieve the latest state of the Long Running Operation. + string last_denylist_import_operation = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The source data for the latest import of the autocomplete + // allowlist phrases. + CompletionDataInputConfig allowlist_input_config = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the LRO corresponding to the latest allowlist import. + // + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to + // retrieve the latest state of the Long Running Operation. + string last_allowlist_import_operation = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// 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. +message MerchantCenterLink { + // 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]; + + // The branch id (e.g. 0/1/2) within this 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. + string branch_id = 2; + + // String representing the destination to import for, all if left empty. + // List of possible values is given in [Included + // destination](https://support.google.com/merchants/answer/7501026). + // List of allowed string values: + // "Shopping_ads", "Buy_on_google_listings", "Display_ads", "Local_inventory + // _ads", "Free_listings", "Free_local_listings" + // NOTE: The string values are case sensitive. + repeated string destinations = 3; + + // Region code of offers to accept. 2-letter Uppercase ISO 3166-1 alpha-2 + // code. List of values can be found + // [here](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) + // under the `region` tag. If left blank no region filtering will be + // performed. + // + // Example value: `US`. + string region_code = 4; + + // Language of the title/description and other string attributes. Use language + // tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). + // ISO 639-1. + // + // This specifies the language of offers in Merchant Center that will be + // accepted. If empty no language filtering will be performed. + // + // Example value: `en`. + string language_code = 5; +} + +// Configures Merchant Center linking. +// Links contained in the config will be used to sync data from a Merchant +// Center account to a Cloud Retail branch. +message MerchantCenterLinkingConfig { + // Links between Merchant Center accounts and branches. + repeated MerchantCenterLink links = 1; +} + // The catalog configuration. message Catalog { option (google.api.resource) = { @@ -110,4 +427,10 @@ message Catalog { // Required. The product level configuration. ProductLevelConfig product_level_config = 4 [(google.api.field_behavior) = REQUIRED]; + + // The Merchant Center linking configuration. + // Once 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. + MerchantCenterLinkingConfig merchant_center_linking_config = 6; } diff --git a/google/cloud/retail/v2beta/catalog_service.proto b/google/cloud/retail/v2beta/catalog_service.proto index c87e2ba96..7001c2113 100644 --- a/google/cloud/retail/v2beta/catalog_service.proto +++ b/google/cloud/retail/v2beta/catalog_service.proto @@ -91,10 +91,6 @@ service CatalogService { // (if branch is not explicitly set). // * UserEventService will only join events with products from branch // {newBranch}. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. rpc SetDefaultBranch(SetDefaultBranchRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -107,10 +103,6 @@ service CatalogService { // Get which branch is currently default branch set by // [CatalogService.SetDefaultBranch][google.cloud.retail.v2beta.CatalogService.SetDefaultBranch] // method under a specified parent catalog. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. rpc GetDefaultBranch(GetDefaultBranchRequest) returns (GetDefaultBranchResponse) { option (google.api.http) = { @@ -118,6 +110,108 @@ service CatalogService { }; option (google.api.method_signature) = "catalog"; } + + // Gets a [CompletionConfig][google.cloud.retail.v2beta.CompletionConfig]. + rpc GetCompletionConfig(GetCompletionConfigRequest) + returns (CompletionConfig) { + option (google.api.http) = { + get: "/v2beta/{name=projects/*/locations/*/catalogs/*/completionConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the + // [CompletionConfig][google.cloud.retail.v2beta.CompletionConfig]s. + rpc UpdateCompletionConfig(UpdateCompletionConfigRequest) + returns (CompletionConfig) { + option (google.api.http) = { + patch: "/v2beta/{completion_config.name=projects/*/locations/*/catalogs/*/completionConfig}" + body: "completion_config" + }; + option (google.api.method_signature) = "completion_config,update_mask"; + } + + // Gets an [AttributesConfig][google.cloud.retail.v2beta.AttributesConfig]. + rpc GetAttributesConfig(GetAttributesConfigRequest) + returns (AttributesConfig) { + option (google.api.http) = { + get: "/v2beta/{name=projects/*/locations/*/catalogs/*/attributesConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the + // [AttributesConfig][google.cloud.retail.v2beta.AttributesConfig]. + // + // The catalog attributes in the request will be updated in the catalog, or + // inserted if they do not exist. Existing catalog attributes not included in + // the request will remain unchanged. Attributes that are assigned to + // products, but do not exist at the catalog level, are always included in the + // response. The product attribute is assigned default values for missing + // catalog attribute fields, e.g., searchable and dynamic facetable options. + rpc UpdateAttributesConfig(UpdateAttributesConfigRequest) + returns (AttributesConfig) { + option (google.api.http) = { + patch: "/v2beta/{attributes_config.name=projects/*/locations/*/catalogs/*/attributesConfig}" + body: "attributes_config" + }; + option (google.api.method_signature) = "attributes_config,update_mask"; + } + + // Adds the specified + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] to the + // [AttributesConfig][google.cloud.retail.v2beta.AttributesConfig]. + // + // If the [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] to + // add already exists, an ALREADY_EXISTS error is returned. + rpc AddCatalogAttribute(AddCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2beta/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:addCatalogAttribute" + body: "*" + }; + } + + // Removes the specified + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] from the + // [AttributesConfig][google.cloud.retail.v2beta.AttributesConfig]. + // + // If the [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] to + // remove does not exist, a NOT_FOUND error is returned. + rpc RemoveCatalogAttribute(RemoveCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2beta/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:removeCatalogAttribute" + body: "*" + }; + } + + // Removes all specified + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute]s from the + // [AttributesConfig][google.cloud.retail.v2beta.AttributesConfig]. + rpc BatchRemoveCatalogAttributes(BatchRemoveCatalogAttributesRequest) + returns (BatchRemoveCatalogAttributesResponse) { + option (google.api.http) = { + post: "/v2beta/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:batchRemoveCatalogAttributes" + body: "*" + }; + } + + // Replaces the specified + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] in the + // [AttributesConfig][google.cloud.retail.v2beta.AttributesConfig] by updating + // the catalog attribute with the same + // [CatalogAttribute.key][google.cloud.retail.v2beta.CatalogAttribute.key]. + // + // If the [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] to + // replace does not exist, a NOT_FOUND error is returned. + rpc ReplaceCatalogAttribute(ReplaceCatalogAttributeRequest) + returns (AttributesConfig) { + option (google.api.http) = { + post: "/v2beta/{attributes_config=projects/*/locations/*/catalogs/*/attributesConfig}:replaceCatalogAttribute" + body: "*" + }; + } } // Request for @@ -205,6 +299,10 @@ message SetDefaultBranchRequest { // // This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT // error is returned. + // + // If there are no sufficient active products in the targeted branch and + // [force][google.cloud.retail.v2beta.SetDefaultBranchRequest.force] is not + // set, a FAILED_PRECONDITION error is returned. string branch_id = 2 [ (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } ]; @@ -216,6 +314,11 @@ message SetDefaultBranchRequest { // This field must be a UTF-8 encoded string with a length limit of 1,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string note = 3; + + // If set to true, it permits switching to a branch with + // [branch_id][google.cloud.retail.v2beta.SetDefaultBranchRequest.branch_id] + // even if it has no sufficient active products. + bool force = 4; } // Request message to show which branch is currently the default branch. @@ -243,3 +346,177 @@ message GetDefaultBranchResponse { // field, when this branch was set as default. string note = 3; } + +// Request for +// [CatalogService.GetCompletionConfig][google.cloud.retail.v2beta.CatalogService.GetCompletionConfig] +// method. +message GetCompletionConfigRequest { + // Required. Full CompletionConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/completionConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/CompletionConfig" + } + ]; +} + +// Request for +// [CatalogService.UpdateCompletionConfig][google.cloud.retail.v2beta.CatalogService.UpdateCompletionConfig] +// method. +message UpdateCompletionConfigRequest { + // Required. The + // [CompletionConfig][google.cloud.retail.v2beta.CompletionConfig] to update. + // + // If the caller does not have permission to update the + // [CompletionConfig][google.cloud.retail.v2beta.CompletionConfig], then a + // PERMISSION_DENIED error is returned. + // + // If the [CompletionConfig][google.cloud.retail.v2beta.CompletionConfig] to + // update does not exist, a NOT_FOUND error is returned. + CompletionConfig completion_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [CompletionConfig][google.cloud.retail.v2beta.CompletionConfig] to update. + // The following are the only supported fields: + // + // * [CompletionConfig.matching_order][google.cloud.retail.v2beta.CompletionConfig.matching_order] + // * [CompletionConfig.max_suggestions][google.cloud.retail.v2beta.CompletionConfig.max_suggestions] + // * [CompletionConfig.min_prefix_length][google.cloud.retail.v2beta.CompletionConfig.min_prefix_length] + // * [CompletionConfig.auto_learning][google.cloud.retail.v2beta.CompletionConfig.auto_learning] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for +// [CatalogService.GetAttributesConfig][google.cloud.retail.v2beta.CatalogService.GetAttributesConfig] +// method. +message GetAttributesConfigRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; +} + +// Request for +// [CatalogService.UpdateAttributesConfig][google.cloud.retail.v2beta.CatalogService.UpdateAttributesConfig] +// method. +message UpdateAttributesConfigRequest { + // Required. The + // [AttributesConfig][google.cloud.retail.v2beta.AttributesConfig] to update. + AttributesConfig attributes_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [AttributesConfig][google.cloud.retail.v2beta.AttributesConfig] to update. + // The following is the only supported field: + // + // * [AttributesConfig.catalog_attributes][google.cloud.retail.v2beta.AttributesConfig.catalog_attributes] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for +// [CatalogService.AddCatalogAttribute][google.cloud.retail.v2beta.CatalogService.AddCatalogAttribute] +// method. +message AddCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] to add. + CatalogAttribute catalog_attribute = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for +// [CatalogService.RemoveCatalogAttribute][google.cloud.retail.v2beta.CatalogService.RemoveCatalogAttribute] +// method. +message RemoveCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The attribute name key of the + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] to remove. + string key = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for +// [CatalogService.BatchRemoveCatalogAttributes][google.cloud.retail.v2beta.CatalogService.BatchRemoveCatalogAttributes] +// method. +message BatchRemoveCatalogAttributesRequest { + // Required. The attributes config resource shared by all catalog attributes + // being deleted. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The attribute name keys of the + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute]s to delete. + // A maximum of 1000 catalog attributes can be deleted in a batch. + repeated string attribute_keys = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response of the +// [CatalogService.BatchRemoveCatalogAttributes][google.cloud.retail.v2beta.CatalogService.BatchRemoveCatalogAttributes]. +message BatchRemoveCatalogAttributesResponse { + // Catalog attributes that were deleted. Only attributes that are not [in + // use][CatalogAttribute.in_use] by products can be deleted. + repeated string deleted_catalog_attributes = 1; + + // Catalog attributes that were reset. Attributes that are [in + // use][CatalogAttribute.in_use] by products cannot be deleted, however their + // configuration properties will reset to default values upon removal request. + repeated string reset_catalog_attributes = 2; +} + +// Request for +// [CatalogService.ReplaceCatalogAttribute][google.cloud.retail.v2beta.CatalogService.ReplaceCatalogAttribute] +// method. +message ReplaceCatalogAttributeRequest { + // Required. Full AttributesConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` + string attributes_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AttributesConfig" + } + ]; + + // Required. The updated + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute]. + CatalogAttribute catalog_attribute = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] to update. + // The following are NOT supported: + // + // * [CatalogAttribute.key][google.cloud.retail.v2beta.CatalogAttribute.key] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 3; +} diff --git a/google/cloud/retail/v2beta/common.proto b/google/cloud/retail/v2beta/common.proto index b281b7dee..fd1247636 100644 --- a/google/cloud/retail/v2beta/common.proto +++ b/google/cloud/retail/v2beta/common.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2beta; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; @@ -29,6 +28,300 @@ option objc_class_prefix = "RETAIL"; option php_namespace = "Google\\Cloud\\Retail\\V2beta"; option ruby_package = "Google::Cloud::Retail::V2beta"; +// At which level we offer configuration for attributes. +enum AttributeConfigLevel { + // Value used when unset. In this case, server behavior defaults to + // [CATALOG_LEVEL_ATTRIBUTE_CONFIG][google.cloud.retail.v2beta.AttributeConfigLevel.CATALOG_LEVEL_ATTRIBUTE_CONFIG]. + ATTRIBUTE_CONFIG_LEVEL_UNSPECIFIED = 0; + + // At this level, we honor the attribute configurations set in + // [Product.attributes][google.cloud.retail.v2beta.Product.attributes]. + PRODUCT_LEVEL_ATTRIBUTE_CONFIG = 1; + + // At this level, we honor the attribute configurations set in + // [CatalogConfig.attribute_configs][]. + CATALOG_LEVEL_ATTRIBUTE_CONFIG = 2; +} + +// The type of solution. +enum SolutionType { + // Default value. + SOLUTION_TYPE_UNSPECIFIED = 0; + + // Used for Recommendations AI. + SOLUTION_TYPE_RECOMMENDATION = 1; + + // Used for Retail Search. + SOLUTION_TYPE_SEARCH = 2; +} + +// If filtering for recommendations is enabled. +enum RecommendationsFilteringOption { + // Value used when unset. + // In this case, server behavior defaults to + // [RECOMMENDATIONS_FILTERING_DISABLED][google.cloud.retail.v2beta.RecommendationsFilteringOption.RECOMMENDATIONS_FILTERING_DISABLED]. + RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED = 0; + + // Recommendation filtering is disabled. + RECOMMENDATIONS_FILTERING_DISABLED = 1; + + // Recommendation filtering is enabled. + RECOMMENDATIONS_FILTERING_ENABLED = 3; +} + +// The use case of Cloud Retail Search. +enum SearchSolutionUseCase { + // The value when it's unspecified. In this case, server behavior defaults to + // [SEARCH_SOLUTION_USE_CASE_SEARCH][google.cloud.retail.v2beta.SearchSolutionUseCase.SEARCH_SOLUTION_USE_CASE_SEARCH]. + SEARCH_SOLUTION_USE_CASE_UNSPECIFIED = 0; + + // Search use case. Expects the traffic has a non-empty + // [query][google.cloud.retail.v2beta.SearchRequest.query]. + SEARCH_SOLUTION_USE_CASE_SEARCH = 1; + + // Browse use case. Expects the traffic has an empty + // [query][google.cloud.retail.v2beta.SearchRequest.query]. + SEARCH_SOLUTION_USE_CASE_BROWSE = 2; +} + +// Metadata that is used to define a condition that triggers an action. +// A valid condition must specify at least one of 'query_terms' or +// 'products_filter'. If multiple fields are specified, the condition is met if +// all the fields are satisfied e.g. if a set of query terms and product_filter +// are set, then only items matching the product_filter for requests with a +// query matching the query terms wil get boosted. +message Condition { + // Query terms that we want to match on. + message QueryTerm { + // The value of the term to match on. + // Value cannot be empty. + // Value can have at most 3 terms if specified as a partial match. Each + // space separated string is considered as one term. + // For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms + // and not allowed for a partial match. + string value = 1; + + // Whether this is supposed to be a full or partial match. + bool full_match = 2; + } + + // Used for time-dependent conditions. + // Example: Want to have rule applied for week long sale. + message TimeRange { + // Start of time range. Range is inclusive. + google.protobuf.Timestamp start_time = 1; + + // End of time range. Range is inclusive. + google.protobuf.Timestamp end_time = 2; + } + + // A list (up to 10 entries) of terms to match the query on. If not + // specified, match all queries. + // If many query terms are specified, the condition + // is matched if any of the terms is a match (i.e. using the OR operator). + repeated QueryTerm query_terms = 1; + + // Range of time(s) specifying when Condition is active. + // Condition true if any time range matches. + repeated TimeRange active_time_range = 3; +} + +// A rule is a condition-action pair +// +// * A condition defines when a rule is to be triggered. +// * An action specifies what occurs on that trigger. +// Currently rules only work for [controls][google.cloud.retail.v2beta.Control] +// with +// [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2beta.SolutionType.SOLUTION_TYPE_SEARCH]. +message Rule { + // A boost action to apply to results matching condition specified above. + message BoostAction { + // Strength of the condition boost, which must be in [-1, 1]. Negative + // boost means demotion. Default is 0.0. + // + // Setting to 1.0 gives the item a big promotion. However, it does not + // necessarily mean that the boosted item will be the top result at all + // times, nor that other items 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 items. + // + // Setting to -1.0 gives the item a big demotion. However, results that + // are deeply relevant might still be shown. The item will have 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. + float boost = 1; + + // The filter can have a max size of 5000 characters. + // An expression which specifies which products to apply an action to. + // The syntax and supported fields are the same as a filter expression. See + // [SearchRequest.filter][google.cloud.retail.v2beta.SearchRequest.filter] + // for detail syntax and limitations. + // + // Examples: + // + // * To boost products with product ID "product_1" or "product_2", and + // color + // "Red" or "Blue":
    + // *(id: ANY("product_1", "product_2"))
    * + // *AND
    * + // *(colorFamilies: ANY("Red", "Blue"))
    * + string products_filter = 2; + } + + // * 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. + // * 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 { + // A filter to apply on the matching condition results. Supported features: + // + // * [filter][google.cloud.retail.v2beta.Rule.FilterAction.filter] must be + // 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). + // * To filter products with product ID "product_1" or "product_2", and + // color + // "Red" or "Blue":
    + // *(id: ANY("product_1", "product_2"))
    * + // *AND
    * + // *(colorFamilies: ANY("Red", "Blue"))
    * + string filter = 1; + } + + // Redirects a shopper to a specific page. + // + // * Rule Condition: + // - Must specify + // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms]. + // * Action Input: Request Query + // * Action Result: Redirects shopper to provided uri. + message RedirectAction { + // URL must have length equal or less than 2000 characters. + string redirect_uri = 1; + } + + // Creates a set of terms that will be treated as synonyms of each other. + // Example: synonyms of "sneakers" and "shoes". + // * "sneakers" will use a synonym of "shoes". + // * "shoes" will use a synonym of "sneakers". + message TwowaySynonymsAction { + // Defines a set of synonyms. + // Can specify up to 100 synonyms. + // Must specify at least 2 synonyms. + repeated string synonyms = 1; + } + + // Maps a set of terms to a set of synonyms. + // Set of synonyms will be treated as synonyms of each query term only. + // `query_terms` will not be treated as synonyms of each other. + // Example: "sneakers" will use a synonym of "shoes". + // "shoes" will not use a synonym of "sneakers". + message OnewaySynonymsAction { + // Terms from the search query. + // Will treat synonyms as their synonyms. + // Not themselves synonyms of the synonyms. + // Can specify up to 100 terms. + repeated string query_terms = 3; + + // Defines a set of synonyms. + // Cannot contain duplicates. + // Can specify up to 100 synonyms. + repeated string synonyms = 4; + + // Will be [deprecated = true] post migration; + repeated string oneway_terms = 2; + } + + // Prevents `query_term` from being associated with specified terms during + // search. + // Example: Don't associate "gShoe" and "cheap". + message DoNotAssociateAction { + // Terms from the search query. + // Will not consider do_not_associate_terms for search if in search query. + // Can specify up to 100 terms. + repeated string query_terms = 2; + + // Cannot contain duplicates or the query term. + // Can specify up to 100 terms. + repeated string do_not_associate_terms = 3; + + // Will be [deprecated = true] post migration; + repeated string terms = 1; + } + + // Replaces a term in the query. Multiple replacement candidates can be + // specified. All `query_terms` will be replaced with the replacement term. + // Example: Replace "gShoe" with "google shoe". + message ReplacementAction { + // Terms from the search query. + // Will be replaced by replacement term. + // Can specify up to 100 terms. + repeated string query_terms = 2; + + // Term that will be used for replacement. + string replacement_term = 3; + + // Will be [deprecated = true] post migration; + string term = 1; + } + + // Prevents a term in the query from being used in search. + // Example: Don't search for "shoddy". + message IgnoreAction { + // Terms to ignore in the search query. + repeated string ignore_terms = 1; + } + + // An action must be provided. + oneof action { + // A boost action. + BoostAction boost_action = 2; + + // Redirects a shopper to a specific page. + RedirectAction redirect_action = 3; + + // Treats specific term as a synonym with a group of terms. + // Group of terms will not be treated as synonyms with the specific term. + OnewaySynonymsAction oneway_synonyms_action = 6; + + // Prevents term from being associated with other terms. + DoNotAssociateAction do_not_associate_action = 7; + + // Replaces specific terms in the query. + ReplacementAction replacement_action = 8; + + // Ignores specific terms from query during search. + IgnoreAction ignore_action = 9; + + // Filters results. + FilterAction filter_action = 10; + + // Treats a set of terms as synonyms of one another. + TwowaySynonymsAction twoway_synonyms_action = 11; + } + + // Required. The condition that triggers the rule. + // If the condition is empty, the rule will always apply. + Condition condition = 1 [(google.api.field_behavior) = REQUIRED]; +} + // An intended audience of the [Product][google.cloud.retail.v2beta.Product] for // whom it's sold. message Audience { @@ -100,9 +393,8 @@ message CustomAttribute { // The textual values of this custom attribute. For example, `["yellow", // "green"]` when the key is "color". // - // At most 400 values are allowed. Empty values are not allowed. Each value - // must be a UTF-8 encoded string with a length limit of 256 characters. - // Otherwise, an INVALID_ARGUMENT error is returned. + // Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is + // returned. // // Exactly one of [text][google.cloud.retail.v2beta.CustomAttribute.text] or // [numbers][google.cloud.retail.v2beta.CustomAttribute.numbers] should be @@ -112,14 +404,17 @@ message CustomAttribute { // The numerical values of this custom attribute. For example, `[2.3, 15.4]` // when the key is "lengths_cm". // - // At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is - // returned. - // // Exactly one of [text][google.cloud.retail.v2beta.CustomAttribute.text] or // [numbers][google.cloud.retail.v2beta.CustomAttribute.numbers] should be // set. Otherwise, an INVALID_ARGUMENT error is returned. repeated double numbers = 2; + // This field is normally ignored unless + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2beta.AttributesConfig.attribute_config_level] + // of the [Catalog][google.cloud.retail.v2beta.Catalog] is set to the + // deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about + // product-level attribute configuration, see [Configuration + // modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). // If true, custom attribute values are searchable by text queries in // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search]. // @@ -128,9 +423,15 @@ message CustomAttribute { // // Only set if type [text][google.cloud.retail.v2beta.CustomAttribute.text] is // set. Otherwise, a INVALID_ARGUMENT error is returned. - optional bool searchable = 3; - - // If true, custom attribute values are indexed, so that it can be filtered, + optional bool searchable = 3 [deprecated = true]; + + // This field is normally ignored unless + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2beta.AttributesConfig.attribute_config_level] + // of the [Catalog][google.cloud.retail.v2beta.Catalog] is set to the + // deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about + // product-level attribute configuration, see [Configuration + // modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). + // If true, custom attribute values are indexed, so that they can be filtered, // faceted or boosted in // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search]. // @@ -143,7 +444,7 @@ message CustomAttribute { // and // [SearchRequest.boost_spec][google.cloud.retail.v2beta.SearchRequest.boost_spec] // for more details. - optional bool indexable = 4; + optional bool indexable = 4 [deprecated = true]; } // Fulfillment information, such as the store IDs for in-store pickup or region @@ -182,7 +483,10 @@ message FulfillmentInfo { repeated string place_ids = 2; } -// [Product][google.cloud.retail.v2beta.Product] thumbnail/detail image. +// [Product][google.cloud.retail.v2beta.Product] image. Recommendations AI and +// Retail Search do not use product images to improve prediction and search +// results. However, product images can be returned in results, and are shown in +// prediction or search previews in the console. message Image { // Required. URI of the image. // @@ -212,9 +516,8 @@ message Interval { // The lower bound of the interval. If neither of the min fields are set, then // the lower bound is negative infinity. // - // This field must be not larger than - // [max][google.cloud.retail.v2beta.Interval.max]. Otherwise, an - // INVALID_ARGUMENT error is returned. + // This field must not be larger than max. + // Otherwise, an INVALID_ARGUMENT error is returned. oneof min { // Inclusive lower bound. double minimum = 1; @@ -226,9 +529,8 @@ message Interval { // The upper bound of the interval. If neither of the max fields are set, then // the upper bound is positive infinity. // - // This field must be not smaller than - // [min][google.cloud.retail.v2beta.Interval.min]. Otherwise, an - // INVALID_ARGUMENT error is returned. + // This field must be not smaller than min. + // Otherwise, an INVALID_ARGUMENT error is returned. oneof max { // Inclusive upper bound. double maximum = 3; @@ -280,11 +582,15 @@ message PriceInfo { // // Google Merchant Center property // [price](https://support.google.com/merchants/answer/6324371). Schema.org - // property [Offer.priceSpecification](https://schema.org/priceSpecification). + // property [Offer.price](https://schema.org/price). float price = 2; // Price of the product without any discount. If zero, by default set to be - // the [price][google.cloud.retail.v2beta.PriceInfo.price]. + // the [price][google.cloud.retail.v2beta.PriceInfo.price]. If set, + // [original_price][google.cloud.retail.v2beta.PriceInfo.original_price] + // should be greater than or equal to + // [price][google.cloud.retail.v2beta.PriceInfo.price], otherwise an + // INVALID_ARGUMENT error is thrown. float original_price = 3; // The costs associated with the sale of a particular product. Used for gross @@ -371,21 +677,30 @@ message Rating { // Information of an end user. message UserInfo { // Highly recommended for logged-in users. Unique identifier for logged-in - // user, such as a user name. + // user, such as a user name. Don't set for anonymous users. + // + // Always use a hashed value for this ID. + // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded + // model quality. // // 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_id = 1; - // The end user's IP address. Required for getting - // [SearchResponse.sponsored_results][google.cloud.retail.v2beta.SearchResponse.sponsored_results]. - // This field is used to extract location information for personalization. + // The end user's IP address. This field is used to extract location + // information for personalization. // // This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 // address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an // INVALID_ARGUMENT error is returned. // - // This should not be set when using the JavaScript tag in + // This should not be set when: + // + // * setting + // [SearchRequest.user_info][google.cloud.retail.v2beta.SearchRequest.user_info]. + // * using the JavaScript tag in // [UserEventService.CollectUserEvent][google.cloud.retail.v2beta.UserEventService.CollectUserEvent] // or if // [direct_user_request][google.cloud.retail.v2beta.UserInfo.direct_user_request] @@ -418,16 +733,60 @@ message UserInfo { bool direct_user_request = 4; } -// Promotion information. -message Promotion { - // ID of the promotion. For example, "free gift". - // - // The value value must be a UTF-8 encoded string with a length limit of 128 - // characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, - // id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is - // returned. +// The inventory information at a place (e.g. a store) identified +// by a place ID. +message LocalInventory { + // The place ID for the current set of inventory information. + string place_id = 1; + + // Product price and cost information. // // Google Merchant Center property - // [promotion](https://support.google.com/merchants/answer/7050148). - string promotion_id = 1; + // [price](https://support.google.com/merchants/answer/6324371). + PriceInfo price_info = 2; + + // Additional local inventory attributes, for example, store name, promotion + // tags, etc. + // + // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT + // error is returned: + // + // * At most 30 attributes are allowed. + // * The key must be a UTF-8 encoded string with a length limit of 32 + // characters. + // * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, + // key0LikeThis or KEY_1_LIKE_THIS. + // * The attribute values must be of the same type (text or number). + // * Only 1 value is allowed for each attribute. + // * For text values, the length limit is 256 UTF-8 characters. + // * The attribute does not support search. The `searchable` field should be + // unset or set to false. + // * The max summed total bytes of custom attribute keys and values per + // product is 5MiB. + map attributes = 3; + + // Input only. Supported fulfillment types. Valid fulfillment type values + // include commonly used types (such as pickup in store and same day + // delivery), and custom types. Customers have to map custom types to their + // display names before rendering UI. + // + // Supported values: + // + // * "pickup-in-store" + // * "ship-to-store" + // * "same-day-delivery" + // * "next-day-delivery" + // * "custom-type-1" + // * "custom-type-2" + // * "custom-type-3" + // * "custom-type-4" + // * "custom-type-5" + // + // If this field is set to an invalid value other than these, an + // INVALID_ARGUMENT error is returned. + // + // All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is + // returned. + repeated string fulfillment_types = 4 + [(google.api.field_behavior) = INPUT_ONLY]; } diff --git a/google/cloud/retail/v2beta/completion_service.proto b/google/cloud/retail/v2beta/completion_service.proto index b7de4ce72..4db036647 100644 --- a/google/cloud/retail/v2beta/completion_service.proto +++ b/google/cloud/retail/v2beta/completion_service.proto @@ -36,8 +36,7 @@ option ruby_package = "Google::Cloud::Retail::V2beta"; // Auto-completion service for retail. // // This feature is only available for users who have Retail Search enabled. -// Please submit a form [here](https://cloud.google.com/contact) to contact -// cloud sales if you are interested in using Retail Search. +// Enable Retail Search on Cloud Console before using this feature. service CompletionService { option (google.api.default_host) = "retail.googleapis.com"; option (google.api.oauth_scopes) = @@ -46,8 +45,7 @@ service CompletionService { // Completes the specified prefix with keyword suggestions. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Enable Retail Search on Cloud Console before using this feature. rpc CompleteQuery(CompleteQueryRequest) returns (CompleteQueryResponse) { option (google.api.http) = { get: "/v2beta/{catalog=projects/*/locations/*/catalogs/*}:completeQuery" @@ -56,11 +54,13 @@ service CompletionService { // Bulk import of processed completion dataset. // - // Request processing may be synchronous. Partial updating is not supported. + // Request processing is asynchronous. Partial updating is not supported. + // + // The operation is successfully finished only after the imported suggestions + // are indexed successfully and ready for serving. The process takes hours. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Enable Retail Search on Cloud Console before using this feature. rpc ImportCompletionData(ImportCompletionDataRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -90,22 +90,24 @@ message CompleteQueryRequest { // The maximum number of allowed characters is 255. string query = 2 [(google.api.field_behavior) = REQUIRED]; - // A unique identifier for tracking visitors. For example, this could be - // implemented with an HTTP cookie, which should be able to uniquely identify - // a visitor on a single device. This unique identifier should not change if - // the visitor logs in or out of the website. + // Required field. 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. // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string visitor_id = 7; - // The list of languages of the query. This is - // the BCP-47 language code, such as "en-US" or "sr-Latn". - // For more information, see - // [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). + // Note that this field applies for `user-data` dataset only. For requests + // with `cloud-retail` dataset, setting this field has no effect. // - // The maximum number of allowed characters is 255. - // Only "en-US" is currently supported. + // The language filters applied to the output suggestions. If set, it should + // contain the language of the query. If not set, suggestions are returned + // without considering language restrictions. This is the BCP-47 language + // code, such as "en-US" or "sr-Latn". For more information, see [Tags for + // Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum + // number of language codes is 3. repeated string language_codes = 3; // The device type context for completion suggestions. @@ -134,13 +136,14 @@ message CompleteQueryRequest { // // * user-data // - // * cloud-retail - // This option requires additional allowlisting. Before using cloud-retail, - // contact Cloud Retail support team first. + // * cloud-retail: + // This option requires enabling auto-learning function first. See + // [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). string dataset = 6; // Completion max suggestions. If left unset or set to 0, then will fallback - // to the configured value [CompletionConfig.max_suggestions][]. + // to the configured value + // [CompletionConfig.max_suggestions][google.cloud.retail.v2beta.CompletionConfig.max_suggestions]. // // The maximum allowed max suggestions is 20. If it is set higher, it will be // capped by 20. @@ -154,7 +157,15 @@ message CompleteQueryResponse { // The suggestion for the query. string suggestion = 1; - // Additional custom attributes ingested through BigQuery. + // Custom attributes for the suggestion term. + // + // * For "user-data", the attributes are additional custom attributes + // ingested through BigQuery. + // + // * For "cloud-retail", the attributes are product attributes generated + // by Cloud Retail. It requires + // [UserEvent.product_details][google.cloud.retail.v2beta.UserEvent.product_details] + // is imported properly. map attributes = 2; } @@ -169,9 +180,9 @@ message CompleteQueryResponse { repeated CompletionResult completion_results = 1; // A unique complete token. This should be included in the - // [SearchRequest][google.cloud.retail.v2beta.SearchRequest] resulting from - // this completion, which enables accurate attribution of complete model - // performance. + // [UserEvent.completion_detail][google.cloud.retail.v2beta.UserEvent.completion_detail] + // for search events resulting from this completion, which enables accurate + // attribution of complete model performance. string attribution_token = 2; // Matched recent searches of this user. The maximum number of recent searches @@ -182,11 +193,15 @@ message CompleteQueryResponse { // [CompleteQueryRequest.visitor_id][google.cloud.retail.v2beta.CompleteQueryRequest.visitor_id] // field is set and [UserEvent][google.cloud.retail.v2beta.UserEvent] is // imported. The recent searches satisfy the follow rules: + // // * They are ordered from latest to oldest. + // // * They are matched with // [CompleteQueryRequest.query][google.cloud.retail.v2beta.CompleteQueryRequest.query] // case insensitively. - // * They are transformed to lower cases. + // + // * They are transformed to lower case. + // // * They are UTF-8 safe. // // Recent searches are deduplicated. More recent searches will be reserved diff --git a/google/cloud/retail/v2beta/control.proto b/google/cloud/retail/v2beta/control.proto new file mode 100644 index 000000000..238f0f5fe --- /dev/null +++ b/google/cloud/retail/v2beta/control.proto @@ -0,0 +1,100 @@ +// 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 google.cloud.retail.v2beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2beta/common.proto"; +import "google/cloud/retail/v2beta/search_service.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; +option java_multiple_files = true; +option java_outer_classname = "ControlProto"; +option java_package = "com.google.cloud.retail.v2beta"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2beta"; +option ruby_package = "Google::Cloud::Retail::V2beta"; + +// Configures dynamic metadata that can be linked to a +// [ServingConfig][google.cloud.retail.v2beta.ServingConfig] and affect search +// or recommendation results at serving time. +message Control { + option (google.api.resource) = { + type: "retail.googleapis.com/Control" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/controls/{control}" + }; + + // The behavior/type of the control + // + // A behavior/type must be specified on creation. Type cannot be changed once + // specified (e.g. A Rule control will always be a Rule control.). An + // INVALID_ARGUMENT will be returned if either condition is violated. + oneof control { + // A facet specification to perform faceted search. + // + // Note that this field is deprecated and will throw NOT_IMPLEMENTED if + // used for creating a control. + SearchRequest.FacetSpec facet_spec = 3 [deprecated = true]; + + // A rule control - a condition-action pair. + // Enacts a set action when the condition is triggered. + // For example: Boost "gShoe" when query full matches "Running Shoes". + Rule rule = 4; + } + + // Immutable. Fully qualified name + // `projects/*/locations/global/catalogs/*/controls/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The human readable control display name. Used in Retail UI. + // + // This field must be a UTF-8 encoded string with a length limit of 128 + // characters. Otherwise, an INVALID_ARGUMENT error is thrown. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. List of [serving + // configuration][google.cloud.retail.v2beta.ServingConfig] ids that are + // associated with this control in the same + // [Catalog][google.cloud.retail.v2beta.Catalog]. + // + // Note the association is managed via the + // [ServingConfig][google.cloud.retail.v2beta.ServingConfig], this is an + // output only denormalized view. + repeated string associated_serving_config_ids = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The solution types that the control is used for. + // Currently we support setting only one type of solution at creation time. + // + // Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. + // If no solution type is provided at creation time, will default to + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2beta.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated SolutionType solution_types = 6 [ + (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 settable by search controls. + // Will default to + // [SEARCH_SOLUTION_USE_CASE_SEARCH][google.cloud.retail.v2beta.SearchSolutionUseCase.SEARCH_SOLUTION_USE_CASE_SEARCH] + // if not specified. Currently only allow one search_solution_use_case per + // control. + repeated SearchSolutionUseCase search_solution_use_case = 7; +} diff --git a/google/cloud/retail/v2beta/control_service.proto b/google/cloud/retail/v2beta/control_service.proto new file mode 100644 index 000000000..a0a9d2e73 --- /dev/null +++ b/google/cloud/retail/v2beta/control_service.proto @@ -0,0 +1,185 @@ +// 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 google.cloud.retail.v2beta; + +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/v2beta/control.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; +option java_multiple_files = true; +option java_outer_classname = "ControlServiceProto"; +option java_package = "com.google.cloud.retail.v2beta"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2beta"; +option ruby_package = "Google::Cloud::Retail::V2beta"; + +// Service for modifying Control. +service ControlService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Control. + // + // If the [Control][google.cloud.retail.v2beta.Control] to create already + // exists, an ALREADY_EXISTS error is returned. + rpc CreateControl(CreateControlRequest) returns (Control) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/controls" + body: "control" + }; + option (google.api.method_signature) = "parent,control,control_id"; + } + + // Deletes a Control. + // + // If the [Control][google.cloud.retail.v2beta.Control] to delete does not + // exist, a NOT_FOUND error is returned. + rpc DeleteControl(DeleteControlRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2beta/{name=projects/*/locations/*/catalogs/*/controls/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Control. + // + // [Control][google.cloud.retail.v2beta.Control] cannot be set to a different + // oneof field, if so an INVALID_ARGUMENT is returned. If the + // [Control][google.cloud.retail.v2beta.Control] to update does not exist, a + // NOT_FOUND error is returned. + rpc UpdateControl(UpdateControlRequest) returns (Control) { + option (google.api.http) = { + patch: "/v2beta/{control.name=projects/*/locations/*/catalogs/*/controls/*}" + body: "control" + }; + option (google.api.method_signature) = "control,update_mask"; + } + + // Gets a Control. + rpc GetControl(GetControlRequest) returns (Control) { + option (google.api.http) = { + get: "/v2beta/{name=projects/*/locations/*/catalogs/*/controls/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Controls by their parent + // [Catalog][google.cloud.retail.v2beta.Catalog]. + rpc ListControls(ListControlsRequest) returns (ListControlsResponse) { + option (google.api.http) = { + get: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/controls" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request for CreateControl method. +message CreateControlRequest { + // Required. Full resource name of parent catalog. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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 should be 4-63 characters, and 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]; + + // Indicates which fields in the provided + // [Control][google.cloud.retail.v2beta.Control] to update. The following are + // NOT supported: + // + // * [Control.name][google.cloud.retail.v2beta.Control.name] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteControl method. +message DeleteControlRequest { + // Required. The resource name of the Control to delete. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.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}/catalogs/{catalog_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Control" } + ]; +} + +// Request for ListControls method. +message ListControlsRequest { + // Required. The catalog resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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.retail.v2beta.ListControlsRequest.filter] is unset. + // * List controls that are used in a single ServingConfig: + // 'serving_config = "boosted_home_page_cvr"' + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListControls method. +message ListControlsResponse { + // All the Controls for a given catalog. + repeated Control controls = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/google/cloud/retail/v2beta/export_config.proto b/google/cloud/retail/v2beta/export_config.proto index 0324d0edb..de24f4190 100644 --- a/google/cloud/retail/v2beta/export_config.proto +++ b/google/cloud/retail/v2beta/export_config.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2beta; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; @@ -43,7 +42,7 @@ message ExportErrorsConfig { } } -// Metadata related to the progress of the Export operation. This will be +// Metadata related to the progress of the Export operation. This is // returned by the google.longrunning.Operation.metadata field. message ExportMetadata { // Operation create time. @@ -61,8 +60,11 @@ message ExportProductsResponse { // A sample of errors encountered while processing the request. repeated google.rpc.Status error_samples = 1; - // Echoes the destination for the complete errors in the request if set. + // This field is never set. ExportErrorsConfig errors_config = 2; + + // Output result indicating where the data were exported to. + OutputResult output_result = 3; } // Response of the ExportUserEventsRequest. If the long running @@ -72,7 +74,24 @@ message ExportUserEventsResponse { // A sample of errors encountered while processing the request. repeated google.rpc.Status error_samples = 1; - // Echoes the destination for the complete errors if this field was set in - // the request. + // This field is never set. ExportErrorsConfig errors_config = 2; + + // Output result indicating where the data were exported to. + OutputResult output_result = 3; +} + +// Output result. +message OutputResult { + // Export result in BigQuery. + repeated BigQueryOutputResult bigquery_result = 1; +} + +// A BigQuery output result. +message BigQueryOutputResult { + // The ID of a BigQuery Dataset. + string dataset_id = 1; + + // The ID of a BigQuery Table. + string table_id = 2; } diff --git a/google/cloud/retail/v2beta/import_config.proto b/google/cloud/retail/v2beta/import_config.proto index 3e0c61f04..e544f6471 100644 --- a/google/cloud/retail/v2beta/import_config.proto +++ b/google/cloud/retail/v2beta/import_config.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2beta; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2beta/product.proto"; @@ -36,7 +35,6 @@ option php_namespace = "Google\\Cloud\\Retail\\V2beta"; option ruby_package = "Google::Cloud::Retail::V2beta"; // Google Cloud Storage location for input content. -// format. message GcsSource { // Required. Google Cloud Storage URIs to input files. URI can be up to // 2000 characters long. URIs can match the full object path (for example, @@ -64,6 +62,16 @@ message GcsSource { // [UserEvent][google.cloud.retail.v2beta.UserEvent] per line. // * `user_event_ga360`: Using // https://support.google.com/analytics/answer/3437719. + // + // Supported values for control imports: + // + // * `control` (default): One JSON + // [Control][google.cloud.retail.v2beta.Control] per line. + // + // Supported values for catalog attribute imports: + // + // * `catalog_attribute` (default): One CSV + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] per line. string data_schema = 2; } @@ -74,9 +82,8 @@ message BigQuerySource { oneof partition { // BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. // - // Only supported when - // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2beta.ImportProductsRequest.reconciliation_mode] - // is set to `FULL`. + // Only supported in + // [ImportProductsRequest][google.cloud.retail.v2beta.ImportProductsRequest]. google.type.Date partition_date = 6; } @@ -112,8 +119,18 @@ message BigQuerySource { // // * `user_event` (default): One JSON // [UserEvent][google.cloud.retail.v2beta.UserEvent] per line. - // * `user_event_ga360`: Using + // * `user_event_ga360`: + // The schema is available here: // https://support.google.com/analytics/answer/3437719. + // * `user_event_ga4`: + // The schema is available here: + // https://support.google.com/analytics/answer/7029846. + // + // Supported values for auto-completion imports: + // + // * `suggestions` (default): One JSON completion suggestion per line. + // * `denylist`: One JSON deny suggestion per line. + // * `allowlist`: One JSON allow suggestion per line. string data_schema = 4; } @@ -135,9 +152,9 @@ message UserEventInlineSource { message ImportErrorsConfig { // Required. Errors destination. oneof destination { - // Google Cloud Storage path for import errors. This must be an empty, - // existing Cloud Storage bucket. Import errors will be written to a file in - // this bucket, one per line, as a JSON-encoded + // Google Cloud Storage prefix for import errors. This must be an empty, + // existing Cloud Storage directory. Import errors are written to + // sharded files in this directory, one per line, as a JSON-encoded // `google.rpc.Status` message. string gcs_prefix = 1; } @@ -156,17 +173,6 @@ message ImportProductsRequest { // Calculates diff and replaces the entire product dataset. Existing // products may be deleted if they are not present in the source location. - // - // Can only be while using - // [BigQuerySource][google.cloud.retail.v2beta.BigQuerySource]. - // - // Add the IAM permission "BigQuery Data Viewer" for - // cloud-retail-customer-data-access@system.gserviceaccount.com before - // using this feature otherwise an error is thrown. - // - // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. FULL = 2; } @@ -180,16 +186,8 @@ message ImportProductsRequest { (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } ]; - // Unique identifier provided by client, within the ancestor - // dataset scope. Ensures idempotency and used for request deduplication. - // Server-generated if unspecified. Up to 128 characters long and must match - // the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in - // [ImportMetadata][google.cloud.retail.v2beta.ImportMetadata]. - // - // Only supported when - // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2beta.ImportProductsRequest.reconciliation_mode] - // is set to `FULL`. - string request_id = 6; + // Deprecated. This field has no effect. + string request_id = 6 [deprecated = true]; // Required. The desired input location of the data. ProductInputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED]; @@ -197,8 +195,8 @@ message ImportProductsRequest { // The desired location of errors incurred during the Import. ImportErrorsConfig errors_config = 3; - // Indicates which fields in the provided imported 'products' to update. If - // not set, will by default update all fields. + // Indicates which fields in the provided imported `products` to update. If + // not set, all fields are updated. google.protobuf.FieldMask update_mask = 4; // The mode of reconciliation between existing products and the products to be @@ -206,15 +204,17 @@ message ImportProductsRequest { // [ReconciliationMode.INCREMENTAL][google.cloud.retail.v2beta.ImportProductsRequest.ReconciliationMode.INCREMENTAL]. ReconciliationMode reconciliation_mode = 5; - // Pub/Sub topic for receiving notification. If this field is set, - // when the import is finished, a notification will be sent to - // specified Pub/Sub topic. The message data will be JSON string of a + // Full Pub/Sub topic name for receiving notification. If this field is set, + // when the import is finished, a notification is sent to + // specified Pub/Sub topic. The message data is JSON string of a // [Operation][google.longrunning.Operation]. - // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. // - // Only supported when - // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2beta.ImportProductsRequest.reconciliation_mode] - // is set to `FULL`. + // 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. string notification_pubsub_topic = 7; } @@ -250,8 +250,8 @@ message ImportCompletionDataRequest { [(google.api.field_behavior) = REQUIRED]; // Pub/Sub topic for receiving notification. If this field is set, - // when the import is finished, a notification will be sent to - // specified Pub/Sub topic. The message data will be JSON string of a + // when the import is finished, a notification is sent to + // specified Pub/Sub topic. The message data is JSON string of a // [Operation][google.longrunning.Operation]. // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. string notification_pubsub_topic = 3; @@ -311,7 +311,7 @@ message CompletionDataInputConfig { } } -// Metadata related to the progress of the Import operation. This will be +// Metadata related to the progress of the Import operation. This is // returned by the google.longrunning.Operation.metadata field. message ImportMetadata { // Operation create time. @@ -327,13 +327,12 @@ message ImportMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; - // Id of the request / operation. This is parroting back the requestId - // that was passed in the request. - string request_id = 5; + // Deprecated. This field is never set. + string request_id = 5 [deprecated = true]; // Pub/Sub topic for receiving notification. If this field is set, - // when the import is finished, a notification will be sent to - // specified Pub/Sub topic. The message data will be JSON string of a + // when the import is finished, a notification is sent to + // specified Pub/Sub topic. The message data is JSON string of a // [Operation][google.longrunning.Operation]. // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. string notification_pubsub_topic = 6; diff --git a/google/cloud/retail/v2beta/model.proto b/google/cloud/retail/v2beta/model.proto new file mode 100644 index 000000000..ea4bd30c6 --- /dev/null +++ b/google/cloud/retail/v2beta/model.proto @@ -0,0 +1,238 @@ +// 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.cloud.retail.v2beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2beta/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; +option java_multiple_files = true; +option java_outer_classname = "ModelProto"; +option java_package = "com.google.cloud.retail.v2beta"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2beta"; +option ruby_package = "Google::Cloud::Retail::V2beta"; + +// Metadata that describes the training and serving parameters of a +// [Model][google.cloud.retail.v2beta.Model]. A +// [Model][google.cloud.retail.v2beta.Model] can be associated with a +// [ServingConfig][google.cloud.retail.v2beta.ServingConfig] and then queried +// through the Predict API. +message Model { + option (google.api.resource) = { + type: "retail.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/models/{model}" + }; + + // Represents an ordered combination of valid serving configs, which + // can be used for `PAGE_OPTIMIZATION` recommendations. + message ServingConfigList { + // Optional. A set of valid serving configs that may be used for + // `PAGE_OPTIMIZATION`. + repeated string serving_config_ids = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // The serving state of the model. + enum ServingState { + // Unspecified serving state. + SERVING_STATE_UNSPECIFIED = 0; + + // The model is not serving. + INACTIVE = 1; + + // The model is serving and can be queried. + ACTIVE = 2; + + // The model is trained on tuned hyperparameters and can be + // queried. + TUNED = 3; + } + + // The training state of the model. + enum TrainingState { + // Unspecified training state. + TRAINING_STATE_UNSPECIFIED = 0; + + // The model training is paused. + PAUSED = 1; + + // The model is training. + TRAINING = 2; + } + + // Describes whether periodic tuning is enabled for this model + // or not. Periodic tuning is scheduled at most every three months. You can + // start a tuning process manually by using the `TuneModel` + // method, which starts a tuning process immediately and resets the quarterly + // schedule. Enabling or disabling periodic tuning does not affect any + // current tuning processes. + enum PeriodicTuningState { + // Unspecified default value, should never be explicitly set. + PERIODIC_TUNING_STATE_UNSPECIFIED = 0; + + // The model has periodic tuning disabled. Tuning + // can be reenabled by calling the `EnableModelPeriodicTuning` + // method or by calling the `TuneModel` method. + PERIODIC_TUNING_DISABLED = 1; + + // The model cannot be tuned with periodic tuning OR the + // `TuneModel` method. Hide the options in customer UI and + // reject any requests through the backend self serve API. + ALL_TUNING_DISABLED = 3; + + // The model has periodic tuning enabled. Tuning + // can be disabled by calling the `DisableModelPeriodicTuning` + // method. + PERIODIC_TUNING_ENABLED = 2; + } + + // Describes whether this model have sufficient training data + // to be continuously trained. + enum DataState { + // Unspecified default value, should never be explicitly set. + DATA_STATE_UNSPECIFIED = 0; + + // The model has sufficient training data. + DATA_OK = 1; + + // The model does not have sufficient training data. Error + // messages can be queried via Stackdriver. + DATA_ERROR = 2; + } + + // Required. The fully qualified resource name of the model. + // + // Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` + // catalog_id has char limit of 50. + // recommendation_model_id has char limit of 40. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The display name of the model. + // + // Should be human readable, used to display Recommendation Models in the + // Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The training state that the model is in (e.g. + // `TRAINING` or `PAUSED`). + // + // Since part of the cost of running the service + // is frequency of training - this can be used to determine when to train + // model in order to control cost. If not specified: the default value for + // `CreateModel` method is `TRAINING`. The default value for + // `UpdateModel` method is to keep the state the same as before. + TrainingState training_state = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`. + ServingState serving_state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp the Recommendation Model was created at. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp the Recommendation Model was last updated. E.g. + // if a Recommendation Model was paused - this would be the time the pause was + // initiated. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The type of model e.g. `home-page`. + // + // Currently supported values: `recommended-for-you`, `others-you-may-like`, + // `frequently-bought-together`, `page-optimization`, `similar-items`, + // `buy-it-again`, and `recently-viewed`(readonly value). + // + // This field together with + // [optimization_objective][google.cloud.retail.v2beta.Model.optimization_objective] + // describe model metadata to use to control model training and serving. + // See https://cloud.google.com/retail/docs/models + // for more details on what the model metadata control and which combination + // of parameters are valid. For invalid combinations of parameters (e.g. type + // = `frequently-bought-together` and optimization_objective = `ctr`), you + // receive an error 400 if you try to create/update a recommendation with + // this set of knobs. + string type = 7 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The optimization objective e.g. `cvr`. + // + // Currently supported + // values: `ctr`, `cvr`, `revenue-per-order`. + // + // If not specified, we choose default based on model type. + // Default depends on type of recommendation: + // + // `recommended-for-you` => `ctr` + // + // `others-you-may-like` => `ctr` + // + // `frequently-bought-together` => `revenue_per_order` + // + // This field together with + // [optimization_objective][google.cloud.retail.v2beta.Model.type] + // describe model metadata to use to control model training and serving. + // See https://cloud.google.com/retail/docs/models + // for more details on what the model metadata control and which combination + // of parameters are valid. For invalid combinations of parameters (e.g. type + // = `frequently-bought-together` and optimization_objective = `ctr`), you + // receive an error 400 if you try to create/update a recommendation with + // this set of knobs. + string optimization_objective = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The state of periodic tuning. + // + // The period we use is 3 months - to do a + // one-off tune earlier use the `TuneModel` method. Default value + // is `PERIODIC_TUNING_ENABLED`. + PeriodicTuningState periodic_tuning_state = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The timestamp when the latest successful tune finished. + google.protobuf.Timestamp last_tune_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The tune operation associated with the model. + // + // Can be used to determine if there is an ongoing tune for this + // recommendation. Empty field implies no tune is goig on. + string tuning_operation = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The state of data requirements for this model: `DATA_OK` and + // `DATA_ERROR`. + // + // Recommendation model cannot be trained if the data is in + // `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even + // if serving state is `ACTIVE`: models were trained successfully before, but + // cannot be refreshed because model no longer has sufficient + // data for training. + DataState data_state = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering + // by attributes is enabled for the model. + RecommendationsFilteringOption filtering_option = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The list of valid serving configs associated with the + // PageOptimizationConfig. + repeated ServingConfigList serving_config_lists = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/retail/v2beta/model_service.proto b/google/cloud/retail/v2beta/model_service.proto new file mode 100644 index 000000000..3a9a3c5a3 --- /dev/null +++ b/google/cloud/retail/v2beta/model_service.proto @@ -0,0 +1,244 @@ +// 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.cloud.retail.v2beta; + +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/v2beta/model.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; +option java_multiple_files = true; +option java_outer_classname = "ModelServiceProto"; +option java_package = "com.google.cloud.retail.v2beta"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2beta"; +option ruby_package = "Google::Cloud::Retail::V2beta"; + +// Service for performing CRUD operations on models. +// Recommendation models contain all the metadata necessary to generate a set of +// models for the `Predict()` API. A model is queried +// indirectly via a ServingConfig, which associates a model with a +// given Placement (e.g. Frequently Bought Together on Home Page). +// +// This service allows you to do the following: +// +// * Initiate training of a model. +// * Pause training of an existing model. +// * List all the available models along with their metadata. +// * Control their tuning schedule. +service ModelService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new model. + rpc CreateModel(CreateModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/models" + body: "model" + }; + option (google.api.method_signature) = "parent,model"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2beta.Model" + metadata_type: "google.cloud.retail.v2beta.CreateModelMetadata" + }; + } + + // Pauses the training of an existing model. + rpc PauseModel(PauseModelRequest) returns (Model) { + option (google.api.http) = { + post: "/v2beta/{name=projects/*/locations/*/catalogs/*/models/*}:pause" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Resumes the training of an existing model. + rpc ResumeModel(ResumeModelRequest) returns (Model) { + option (google.api.http) = { + post: "/v2beta/{name=projects/*/locations/*/catalogs/*/models/*}:resume" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes an existing model. + rpc DeleteModel(DeleteModelRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2beta/{name=projects/*/locations/*/catalogs/*/models/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all the models linked to this event store. + rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { + option (google.api.http) = { + get: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/models" + }; + option (google.api.method_signature) = "parent"; + } + + // Update of model metadata. Only fields that + // currently can be updated are: `filtering_option` and + // `periodic_tuning_state`. + // If other values are provided, this API method ignores them. + rpc UpdateModel(UpdateModelRequest) returns (Model) { + option (google.api.http) = { + patch: "/v2beta/{model.name=projects/*/locations/*/catalogs/*/models/*}" + body: "model" + }; + option (google.api.method_signature) = "model,update_mask"; + } + + // Tunes an existing model. + rpc TuneModel(TuneModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{name=projects/*/locations/*/catalogs/*/models/*}:tune" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2beta.TuneModelResponse" + metadata_type: "google.cloud.retail.v2beta.TuneModelMetadata" + }; + } +} + +// Request for creating a model. +message CreateModelRequest { + // Required. The parent resource under which to create the model. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The payload of the [Model][google.cloud.retail.v2beta.Model] to + // create. + Model model = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Whether to run a dry run to validate the request (without + // actually creating the model). + bool dry_run = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for updating an existing model. +message UpdateModelRequest { + // Required. The body of the updated + // [Model][google.cloud.retail.v2beta.Model]. + Model model = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided 'model' to + // update. If not set, by default updates all fields. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for pausing training of a model. +message PauseModelRequest { + // Required. The name of the model to pause. + // Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Model" } + ]; +} + +// Request for resuming training of a model. +message ResumeModelRequest { + // Required. The name of the model to resume. + // Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for listing models associated with a resource. +message ListModelsRequest { + // Required. The parent for which to list models. + // Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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 `ListModels` + // call. Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for deleting a model. +message DeleteModelRequest { + // Required. The resource name of the + // [Model][google.cloud.retail.v2beta.Model] to delete. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Model" } + ]; +} + +// Response to a ListModelRequest. +message ListModelsResponse { + // List of Models. + repeated Model models = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} + +// Request to manually start a tuning process now (instead of waiting for +// the periodically scheduled tuning to happen). +message TuneModelRequest { + // Required. The resource name of the model to tune. + // Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Model" } + ]; +} + +// Metadata associated with a create operation. +message CreateModelMetadata { + // The resource name of the model that this create applies to. + // Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` + string model = 1; +} + +// Metadata associated with a tune operation. +message TuneModelMetadata { + // The resource name of the model that this tune applies to. + // Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` + string model = 1; +} + +// Response associated with a tune operation. +message TuneModelResponse {} diff --git a/google/cloud/retail/v2beta/prediction_service.proto b/google/cloud/retail/v2beta/prediction_service.proto index 37d364c8c..1ac3026d6 100644 --- a/google/cloud/retail/v2beta/prediction_service.proto +++ b/google/cloud/retail/v2beta/prediction_service.proto @@ -19,6 +19,7 @@ package google.cloud.retail.v2beta; 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/v2beta/user_event.proto"; import "google/protobuf/struct.proto"; @@ -42,6 +43,10 @@ service PredictionService { option (google.api.http) = { post: "/v2beta/{placement=projects/*/locations/*/catalogs/*/placements/*}:predict" body: "*" + additional_bindings { + post: "/v2beta/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:predict" + body: "*" + } }; } } @@ -49,30 +54,45 @@ service PredictionService { // Request message for Predict method. message PredictRequest { // Required. Full resource name of the format: - // {name=projects/*/locations/global/catalogs/default_catalog/placements/*} - // The ID of the Recommendations AI placement. Before you can request - // predictions from your model, you must create at least one placement for it. - // For more information, see [Managing - // placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). + // `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` + // or + // `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. + // We recommend using the `servingConfigs` resource. `placements` is a legacy + // resource. + // The ID of the Recommendations AI serving config or placement. + // Before you can request predictions from your model, you must create at + // least one serving config or placement for it. For more information, see + // [Managing serving configurations] + // (https://cloud.google.com/retail/docs/manage-configs). // - // The full list of available placements can be seen at - // https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements + // The full list of available serving configs can be seen at + // https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs string placement = 1 [(google.api.field_behavior) = REQUIRED]; // Required. Context about the user, what they are looking at and what action // they took to trigger the predict 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.visitor_id][google.cloud.retail.v2beta.UserEvent.visitor_id] or + // [UserInfo.user_id][google.cloud.retail.v2beta.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.visitor_id][google.cloud.retail.v2beta.UserEvent.visitor_id] to + // a random unique ID and leave + // [UserInfo.user_id][google.cloud.retail.v2beta.UserInfo.user_id] unset. UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; - // Maximum number of results to return per page. Set this property - // to the number of prediction 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. + // Maximum number of results to return. Set this property to the number of + // prediction 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. int32 page_size = 3; - // The previous PredictResponse.next_page_token. - string page_token = 4; + // This field is not used; leave it unset. + string page_token = 4 [deprecated = true]; // Filter for restricting prediction results with a length limit of 5,000 // characters. Accepts values for tags and the `filterOutOfStockItems` flag. @@ -97,9 +117,20 @@ message PredictRequest { // * filterOutOfStockItems tag=(-"promotional") // * filterOutOfStockItems // - // If your filter blocks all prediction results, nothing will be returned. If - // you want generic (unfiltered) popular products to be returned instead, set - // `strictFiltering` to false in `PredictRequest.params`. + // If your filter blocks all prediction results, the API will return generic + // (unfiltered) popular products. If you only want results strictly matching + // the filters, set `strictFiltering` to True in `PredictRequest.params` to + // receive empty results instead. + // Note that the API will never return items with storageStatus of "EXPIRED" + // or "DELETED" regardless of filter choices. + // + // If `filterSyntaxV2` is set to true under the `params` field, then + // attribute-based expressions are expected instead of the above described + // tag-based syntax. Examples: + // + // * (colors: ANY("Red", "Blue")) AND NOT (categories: ANY("Phones")) + // * (availability: ANY("IN_STOCK")) AND + // (colors: ANY("Red") OR categories: ANY("Phones")) string filter = 5; // Use validate only mode for this prediction query. If set to true, a @@ -133,6 +164,8 @@ message PredictRequest { // 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives // request-level control and adjusts prediction results based on product // category. + // * `filterSyntaxV2`: Boolean. False by default. If set to true, the `filter` + // field is interpreteted according to the new, attribute-based syntax. map params = 7; // The labels applied to a resource must meet the following requirements: @@ -140,7 +173,7 @@ message PredictRequest { // * 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 + // 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 @@ -166,9 +199,9 @@ message PredictResponse { // // Possible values: // - // * `product`: JSON representation of the product. Will be set if + // * `product`: JSON representation of the product. Is set if // `returnProduct` is set to true in `PredictRequest.params`. - // * `score`: Prediction score in double value. Will be set if + // * `score`: Prediction score in double value. Is set if // `returnScore` is set to true in `PredictRequest.params`. map metadata = 2; } diff --git a/google/cloud/retail/v2beta/product.proto b/google/cloud/retail/v2beta/product.proto index 4dd13c4b7..8b1009013 100644 --- a/google/cloud/retail/v2beta/product.proto +++ b/google/cloud/retail/v2beta/product.proto @@ -16,10 +16,10 @@ syntax = "proto3"; package google.cloud.retail.v2beta; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2beta/common.proto"; +import "google/cloud/retail/v2beta/promotion.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -121,7 +121,7 @@ message Product { // [publish_time][google.cloud.retail.v2beta.Product.publish_time], // otherwise an INVALID_ARGUMENT error is thrown. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [expiration_date](https://support.google.com/merchants/answer/6324499). google.protobuf.Timestamp expire_time = 16; @@ -160,9 +160,9 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [id](https://support.google.com/merchants/answer/6324405). Schema.org - // Property [Product.sku](https://schema.org/sku). + // property [Product.sku](https://schema.org/sku). string id = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The type of the product. Default to @@ -185,21 +185,23 @@ message Product { // [Product][google.cloud.retail.v2beta.Product]. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center Property + // Corresponding properties: Google Merchant Center property // [item_group_id](https://support.google.com/merchants/answer/6324507). - // Schema.org Property + // Schema.org property // [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - // - // This field must be enabled before it can be used. [Learn - // more](/recommendations-ai/docs/catalog#item-group-id). string primary_product_id = 4; // The [id][google.cloud.retail.v2beta.Product.id] of the collection members // when [type][google.cloud.retail.v2beta.Product.type] is // [Type.COLLECTION][google.cloud.retail.v2beta.Product.Type.COLLECTION]. // - // Should not set it for other types. A maximum of 1000 values are allowed. - // Otherwise, an INVALID_ARGUMENT error is return. + // Non-existent product ids are allowed. + // The [type][google.cloud.retail.v2beta.Product.type] of the members must be + // either [Type.PRIMARY][google.cloud.retail.v2beta.Product.Type.PRIMARY] or + // [Type.VARIANT][google.cloud.retail.v2beta.Product.Type.VARIANT] otherwise + // an INVALID_ARGUMENT error is thrown. Should not set it for other types. A + // maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + // return. repeated string collection_member_ids = 5; // The Global Trade Item Number (GTIN) of the product. @@ -210,13 +212,13 @@ message Product { // This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is // returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [gtin](https://support.google.com/merchants/answer/6324461). // Schema.org property - // [Product.isbn](https://schema.org/isbn) or - // [Product.gtin8](https://schema.org/gtin8) or - // [Product.gtin12](https://schema.org/gtin12) or - // [Product.gtin13](https://schema.org/gtin13) or + // [Product.isbn](https://schema.org/isbn), + // [Product.gtin8](https://schema.org/gtin8), + // [Product.gtin12](https://schema.org/gtin12), + // [Product.gtin13](https://schema.org/gtin13), or // [Product.gtin14](https://schema.org/gtin14). // // If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. @@ -228,7 +230,7 @@ message Product { // // // 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). // // For example, if a shoes product belongs to both @@ -251,7 +253,7 @@ message Product { // 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. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [google_product_category][mc_google_product_category]. Schema.org property // [Product.category] (https://schema.org/category). // @@ -264,7 +266,7 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 1,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [title](https://support.google.com/merchants/answer/6324415). Schema.org // property [Product.name](https://schema.org/name). string title = 8 [(google.api.field_behavior) = REQUIRED]; @@ -275,7 +277,7 @@ message Product { // string with a length limit of 1,000 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [brand](https://support.google.com/merchants/answer/6324351). Schema.org // property [Product.brand](https://schema.org/brand). repeated string brands = 9; @@ -285,13 +287,13 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 5,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [description](https://support.google.com/merchants/answer/6324468). - // schema.org property [Product.description](https://schema.org/description). + // Schema.org property [Product.description](https://schema.org/description). string description = 10; // Language of the title/description and other string attributes. Use language - // tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt]. + // tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). // // For product prediction, this field is ignored and the model automatically // detects the text language. The @@ -326,7 +328,12 @@ message Product { // * The key must be a UTF-8 encoded string with a length limit of 128 // characters. // * For indexable attribute, the key must match the pattern: - // `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + // `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + // `KEY_1_LIKE_THIS`. + // * For text attributes, at most 400 values are allowed. Empty values are not + // allowed. Each value must be a non-empty UTF-8 encoded string with a + // length limit of 256 characters. + // * For number attributes, at most 400 values are allowed. map attributes = 12; // Custom tags associated with the product. @@ -340,13 +347,13 @@ message Product { // tag as part of the // [PredictRequest.filter][google.cloud.retail.v2beta.PredictRequest.filter]. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [custom_label_0–4](https://support.google.com/merchants/answer/6324473). repeated string tags = 13; // Product price and cost information. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [price](https://support.google.com/merchants/answer/6324371). PriceInfo price_info = 14; @@ -362,9 +369,9 @@ message Product { // [Product][google.cloud.retail.v2beta.Product]. Default to // [Availability.IN_STOCK][google.cloud.retail.v2beta.Product.Availability.IN_STOCK]. // - // Google Merchant Center Property + // Corresponding properties: Google Merchant Center property // [availability](https://support.google.com/merchants/answer/6324448). - // Schema.org Property [Offer.availability](https://schema.org/availability). + // Schema.org property [Offer.availability](https://schema.org/availability). Availability availability = 19; // The available quantity of the item. @@ -386,17 +393,17 @@ message Product { // This field must be a UTF-8 encoded string with a length limit of 5,000 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [link](https://support.google.com/merchants/answer/6324416). Schema.org // property [Offer.url](https://schema.org/url). string uri = 22; - // Product images for the product.Highly recommended to put the main image - // to the first. + // Product images for the product. We highly recommend putting the main + // image first. // // A maximum of 300 images are allowed. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [image_link](https://support.google.com/merchants/answer/6324350). // Schema.org property [Product.image](https://schema.org/image). repeated Image images = 23; @@ -407,7 +414,7 @@ message Product { // The color of the product. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [color](https://support.google.com/merchants/answer/6324487). Schema.org // property [Product.color](https://schema.org/color). ColorInfo color_info = 25; @@ -425,9 +432,9 @@ message Product { // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [size](https://support.google.com/merchants/answer/6324492), - // [size_type](https://support.google.com/merchants/answer/6324497) and + // [size_type](https://support.google.com/merchants/answer/6324497), and // [size_system](https://support.google.com/merchants/answer/6324502). // Schema.org property [Product.size](https://schema.org/size). repeated string sizes = 26; @@ -435,10 +442,10 @@ message Product { // The material of the product. For example, "leather", "wooden". // // A maximum of 20 values are allowed. Each value must be a UTF-8 encoded - // string with a length limit of 128 characters. Otherwise, an + // string with a length limit of 200 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [material](https://support.google.com/merchants/answer/6324410). Schema.org // property [Product.material](https://schema.org/material). repeated string materials = 27; @@ -451,7 +458,7 @@ message Product { // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [pattern](https://support.google.com/merchants/answer/6324483). Schema.org // property [Product.pattern](https://schema.org/pattern). repeated string patterns = 28; @@ -459,19 +466,21 @@ message Product { // The condition of the product. Strongly encouraged to use the standard // values: "new", "refurbished", "used". // - // A maximum of 5 values are allowed per + // A maximum of 1 value is allowed per // [Product][google.cloud.retail.v2beta.Product]. Each value must be a UTF-8 // encoded string with a length limit of 128 characters. Otherwise, an // INVALID_ARGUMENT error is returned. // - // Google Merchant Center property + // Corresponding properties: Google Merchant Center property // [condition](https://support.google.com/merchants/answer/6324469). // Schema.org property // [Offer.itemCondition](https://schema.org/itemCondition). repeated string conditions = 29; // The promotions applied to the product. A maximum of 10 values are allowed - // per [Product][google.cloud.retail.v2beta.Product]. + // per [Product][google.cloud.retail.v2beta.Product]. Only + // [Promotion.promotion_id][google.cloud.retail.v2beta.Promotion.promotion_id] + // will be used, other fields will be ignored if set. repeated Promotion promotions = 34; // The timestamp when the product is published by the retailer for the first @@ -535,11 +544,11 @@ message Product { // * [name][google.cloud.retail.v2beta.Product.name] // * [color_info][google.cloud.retail.v2beta.Product.color_info] // - // Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + // The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is // returned. // // Note: Returning more fields in - // [SearchResponse][google.cloud.retail.v2beta.SearchResponse] may increase + // [SearchResponse][google.cloud.retail.v2beta.SearchResponse] can increase // response payload size and serving latency. google.protobuf.FieldMask retrievable_fields = 30; @@ -554,4 +563,15 @@ message Product { // [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct]. // Do not set this field in API requests. repeated Product variants = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of local inventories specific to different places. + // + // This is only available for users who have Retail Search enabled, and it can + // be managed by + // [ProductService.AddLocalInventories][google.cloud.retail.v2beta.ProductService.AddLocalInventories] + // and + // [ProductService.RemoveLocalInventories][google.cloud.retail.v2beta.ProductService.RemoveLocalInventories] + // APIs. + repeated LocalInventory local_inventories = 35 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/retail/v2beta/product_service.proto b/google/cloud/retail/v2beta/product_service.proto index 157a76dbb..0c0994332 100644 --- a/google/cloud/retail/v2beta/product_service.proto +++ b/google/cloud/retail/v2beta/product_service.proto @@ -21,10 +21,8 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2beta/common.proto"; -import "google/cloud/retail/v2beta/export_config.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"; @@ -90,7 +88,7 @@ service ProductService { // Bulk import of multiple [Product][google.cloud.retail.v2beta.Product]s. // - // Request processing may be synchronous. No partial updating is supported. + // Request processing may be synchronous. // Non-existing items are created. // // Note that it is possible for a subset of the @@ -113,41 +111,52 @@ service ProductService { // // This process is asynchronous and does not require the // [Product][google.cloud.retail.v2beta.Product] to exist before updating - // fulfillment information. If the request is valid, the update will be - // enqueued and processed downstream. As a consequence, when a response is - // returned, updates are not immediately manifested in the + // fulfillment information. If the request is valid, the update is enqueued + // and processed downstream. As a consequence, when a response is returned, + // updates are not immediately manifested in the // [Product][google.cloud.retail.v2beta.Product] queried by - // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. // // When inventory is updated with - // [CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] + // [ProductService.CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] // and - // [UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct], - // the specified inventory field value(s) will overwrite any existing value(s) + // [ProductService.UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct], + // the specified inventory field value(s) overwrite any existing value(s) // while ignoring the last update time for this field. Furthermore, the last - // update time for the specified inventory fields will be overwritten to the - // time of the - // [CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] or - // [UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct] + // update times for the specified inventory fields are overwritten by the + // times of the + // [ProductService.CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] + // or + // [ProductService.UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct] // request. // // If no inventory fields are set in // [CreateProductRequest.product][google.cloud.retail.v2beta.CreateProductRequest.product], - // then any pre-existing inventory information for this product will be used. + // then any pre-existing inventory information for this product is used. // - // If no inventory fields are set in [UpdateProductRequest.set_mask][], - // then any existing inventory information will be preserved. + // If no inventory fields are set in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2beta.SetInventoryRequest.set_mask], + // then any existing inventory information is preserved. // // Pre-existing inventory information can only be updated with - // [SetInventory][google.cloud.retail.v2beta.ProductService.SetInventory], - // [AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces], + // [ProductService.SetInventory][google.cloud.retail.v2beta.ProductService.SetInventory], + // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces], // and - // [RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces]. + // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces]. + // + // The returned [Operation][google.longrunning.Operation]s is obsolete after + // one day, and the [GetOperation][google.longrunning.Operations.GetOperation] + // API returns `NOT_FOUND` afterwards. + // + // If conflicting updates are issued, the + // [Operation][google.longrunning.Operation]s associated with the stale + // updates are not marked as [done][google.longrunning.Operation.done] until + // they are obsolete. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Enable Retail Search on Cloud Console before using this feature. rpc SetInventory(SetInventoryRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v2beta/{inventory.name=projects/*/locations/*/catalogs/*/branches/*/products/**}:setInventory" @@ -169,12 +178,21 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, the added place IDs are not immediately manifested in the // [Product][google.cloud.retail.v2beta.Product] queried by - // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // + // The returned [Operation][google.longrunning.Operation]s will be obsolete + // after 1 day, and [GetOperation][google.longrunning.Operations.GetOperation] + // API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the + // [Operation][google.longrunning.Operation]s associated with the stale + // updates will not be marked as [done][google.longrunning.Operation.done] + // until being obsolete. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Enable Retail Search on Cloud Console before using this feature. rpc AddFulfillmentPlaces(AddFulfillmentPlacesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -197,12 +215,21 @@ service ProductService { // enqueued and processed downstream. As a consequence, when a response is // returned, the removed place IDs are not immediately manifested in the // [Product][google.cloud.retail.v2beta.Product] queried by - // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or - // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // + // The returned [Operation][google.longrunning.Operation]s will be obsolete + // after 1 day, and [GetOperation][google.longrunning.Operations.GetOperation] + // API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the + // [Operation][google.longrunning.Operation]s associated with the stale + // updates will not be marked as [done][google.longrunning.Operation.done] + // until being obsolete. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Enable Retail Search on Cloud Console before using this feature. rpc RemoveFulfillmentPlaces(RemoveFulfillmentPlacesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -215,9 +242,97 @@ service ProductService { metadata_type: "google.cloud.retail.v2beta.RemoveFulfillmentPlacesMetadata" }; } + + // Updates local inventory information for a + // [Product][google.cloud.retail.v2beta.Product] at a list of places, while + // respecting the last update timestamps of each inventory field. + // + // This process is asynchronous and does not require the + // [Product][google.cloud.retail.v2beta.Product] to exist before updating + // inventory information. If the request is valid, the update will be enqueued + // and processed downstream. As a consequence, when a response is returned, + // updates are not immediately manifested in the + // [Product][google.cloud.retail.v2beta.Product] queried by + // [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // + // Local inventory information can only be modified using this method. + // [ProductService.CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] + // and + // [ProductService.UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct] + // has no effect on local inventories. + // + // The returned [Operation][google.longrunning.Operation]s will be obsolete + // after 1 day, and [GetOperation][google.longrunning.Operations.GetOperation] + // API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the + // [Operation][google.longrunning.Operation]s associated with the stale + // updates will not be marked as [done][google.longrunning.Operation.done] + // until being obsolete. + // + // This feature is only available for users who have Retail Search enabled. + // Enable Retail Search on Cloud Console before using this feature. + rpc AddLocalInventories(AddLocalInventoriesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:addLocalInventories" + body: "*" + }; + option (google.api.method_signature) = "product"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2beta.AddLocalInventoriesResponse" + metadata_type: "google.cloud.retail.v2beta.AddLocalInventoriesMetadata" + }; + } + + // Remove local inventory information for a + // [Product][google.cloud.retail.v2beta.Product] at a list of places at a + // removal timestamp. + // + // This process is asynchronous. If the request is valid, the removal will be + // enqueued and processed downstream. As a consequence, when a response is + // returned, removals are not immediately manifested in the + // [Product][google.cloud.retail.v2beta.Product] queried by + // [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // + // Local inventory information can only be removed using this method. + // [ProductService.CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] + // and + // [ProductService.UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct] + // has no effect on local inventories. + // + // The returned [Operation][google.longrunning.Operation]s will be obsolete + // after 1 day, and [GetOperation][google.longrunning.Operations.GetOperation] + // API will return NOT_FOUND afterwards. + // + // If conflicting updates are issued, the + // [Operation][google.longrunning.Operation]s associated with the stale + // updates will not be marked as [done][google.longrunning.Operation.done] + // until being obsolete. + // + // This feature is only available for users who have Retail Search enabled. + // Enable Retail Search on Cloud Console before using this feature. + rpc RemoveLocalInventories(RemoveLocalInventoriesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:removeLocalInventories" + body: "*" + }; + option (google.api.method_signature) = "product"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2beta.RemoveLocalInventoriesResponse" + metadata_type: "google.cloud.retail.v2beta.RemoveLocalInventoriesMetadata" + }; + } } -// Request message for [CreateProduct][] method. +// Request message for +// [ProductService.CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] +// method. message CreateProductRequest { // Required. The parent catalog resource name, such as // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. @@ -247,7 +362,9 @@ message CreateProductRequest { string product_id = 3 [(google.api.field_behavior) = REQUIRED]; } -// Request message for [GetProduct][] method. +// Request message for +// [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] +// method. message GetProductRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2beta.Product], such as @@ -265,7 +382,9 @@ message GetProductRequest { ]; } -// Request message for [UpdateProduct][] method. +// Request message for +// [ProductService.UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct] +// method. message UpdateProductRequest { // Required. The product to update/create. // @@ -286,6 +405,11 @@ message UpdateProductRequest { // // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error // is returned. + // + // The attribute key can be updated by setting the mask path as + // "attributes.${key_name}". If a key name is present in the mask but not in + // the patching product from the request, this key will be deleted after the + // update. google.protobuf.FieldMask update_mask = 2; // If set to true, and the [Product][google.cloud.retail.v2beta.Product] is @@ -294,7 +418,9 @@ message UpdateProductRequest { bool allow_missing = 3; } -// Request message for [DeleteProduct][] method. +// Request message for +// [ProductService.DeleteProduct][google.cloud.retail.v2beta.ProductService.DeleteProduct] +// method. message DeleteProductRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2beta.Product], such as @@ -426,10 +552,13 @@ message ListProductsResponse { string next_page_token = 2; } -// Request message for [SetInventory][] method. +// Request message for +// [ProductService.SetInventory][google.cloud.retail.v2beta.ProductService.SetInventory] +// method. message SetInventoryRequest { // Required. The inventory information to update. The allowable fields to // update are: + // // * [Product.price_info][google.cloud.retail.v2beta.Product.price_info] // * [Product.availability][google.cloud.retail.v2beta.Product.availability] // * [Product.available_quantity][google.cloud.retail.v2beta.Product.available_quantity] @@ -437,8 +566,9 @@ message SetInventoryRequest { // The updated inventory fields must be specified in // [SetInventoryRequest.set_mask][google.cloud.retail.v2beta.SetInventoryRequest.set_mask]. // - // If [SetInventoryRequest.inventory.name][] is empty or invalid, an - // INVALID_ARGUMENT error is returned. + // If + // [SetInventoryRequest.inventory.name][google.cloud.retail.v2beta.Product.name] + // is empty or invalid, an INVALID_ARGUMENT error is returned. // // If the caller does not have permission to update the // [Product][google.cloud.retail.v2beta.Product] named in @@ -455,6 +585,25 @@ message SetInventoryRequest { // provided or default value for // [SetInventoryRequest.set_time][google.cloud.retail.v2beta.SetInventoryRequest.set_time]. // + // The caller can replace place IDs for a subset of fulfillment types in the + // following ways: + // + // * Adds "fulfillment_info" in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2beta.SetInventoryRequest.set_mask] + // * Specifies only the desired fulfillment types and corresponding place IDs + // to update in + // [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2beta.Product.fulfillment_info] + // + // The caller can clear all place IDs from a subset of fulfillment types in + // the following ways: + // + // * Adds "fulfillment_info" in + // [SetInventoryRequest.set_mask][google.cloud.retail.v2beta.SetInventoryRequest.set_mask] + // * Specifies only the desired fulfillment types to clear in + // [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2beta.Product.fulfillment_info] + // * Checks that only the desired fulfillment info types have empty + // [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2beta.FulfillmentInfo.place_ids] + // // The last update time is recorded for the following inventory fields: // * [Product.price_info][google.cloud.retail.v2beta.Product.price_info] // * [Product.availability][google.cloud.retail.v2beta.Product.availability] @@ -462,12 +611,15 @@ message SetInventoryRequest { // * [Product.fulfillment_info][google.cloud.retail.v2beta.Product.fulfillment_info] // // If a full overwrite of inventory information while ignoring timestamps is - // needed, [UpdateProduct][] should be invoked instead. + // needed, + // [ProductService.UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct] + // should be invoked instead. Product inventory = 1 [(google.api.field_behavior) = REQUIRED]; // Indicates which inventory fields in the provided - // [Product][google.cloud.retail.v2beta.Product] to update. If not set or set - // with empty paths, all inventory fields will be updated. + // [Product][google.cloud.retail.v2beta.Product] to update. + // + // At least one field must be provided. // // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error // is returned and the entire update will be ignored. @@ -489,15 +641,19 @@ message SetInventoryRequest { // Metadata related to the progress of the SetInventory operation. // Currently empty because there is no meaningful metadata populated from the -// [SetInventory][] method. +// [ProductService.SetInventory][google.cloud.retail.v2beta.ProductService.SetInventory] +// method. message SetInventoryMetadata {} // Response of the SetInventoryRequest. Currently empty because -// there is no meaningful response populated from the [SetInventory][] +// there is no meaningful response populated from the +// [ProductService.SetInventory][google.cloud.retail.v2beta.ProductService.SetInventory] // method. message SetInventoryResponse {} -// Request message for [AddFulfillmentPlaces][] method. +// Request message for +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces] +// method. message AddFulfillmentPlacesRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2beta.Product], such as @@ -529,7 +685,8 @@ message AddFulfillmentPlacesRequest { // If this field is set to an invalid value other than these, an // INVALID_ARGUMENT error is returned. // - // This field directly corresponds to [Product.fulfillment_info.type][]. + // This field directly corresponds to + // [Product.fulfillment_info.type][google.cloud.retail.v2beta.FulfillmentInfo.type]. string type = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The IDs for this @@ -565,15 +722,134 @@ message AddFulfillmentPlacesRequest { // Metadata related to the progress of the AddFulfillmentPlaces operation. // Currently empty because there is no meaningful metadata populated from the -// [AddFulfillmentPlaces][] method. +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces] +// method. message AddFulfillmentPlacesMetadata {} // Response of the AddFulfillmentPlacesRequest. Currently empty because -// there is no meaningful response populated from the [AddFulfillmentPlaces][] +// there is no meaningful response populated from the +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces] // method. message AddFulfillmentPlacesResponse {} -// Request message for [RemoveFulfillmentPlaces][] method. +// Request message for +// [ProductService.AddLocalInventories][google.cloud.retail.v2beta.ProductService.AddLocalInventories] +// method. +message AddLocalInventoriesRequest { + // Required. Full resource name of + // [Product][google.cloud.retail.v2beta.Product], such as + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. + // + // If the caller does not have permission to access the + // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not + // it exists, a PERMISSION_DENIED error is returned. + string product = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Product" } + ]; + + // Required. A list of inventory information at difference places. Each place + // is identified by its place ID. At most 3000 inventories are allowed per + // request. + repeated LocalInventory local_inventories = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which inventory fields in the provided list of + // [LocalInventory][google.cloud.retail.v2beta.LocalInventory] to update. The + // field is updated to the provided value. + // + // If a field is set while the place does not have a previous local inventory, + // the local inventory at that store is created. + // + // If a field is set while the value of that field is not provided, the + // original field value, if it exists, is deleted. + // + // If the mask is not set or set with empty paths, all inventory fields will + // be updated. + // + // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error + // is returned and the entire update will be ignored. + google.protobuf.FieldMask add_mask = 4; + + // The time when the inventory updates are issued. Used to prevent + // out-of-order updates on local inventory fields. If not provided, the + // internal system time will be used. + google.protobuf.Timestamp add_time = 5; + + // If set to true, and the [Product][google.cloud.retail.v2beta.Product] is + // not found, the local inventory will still be processed and retained for at + // most 1 day and processed once the + // [Product][google.cloud.retail.v2beta.Product] is created. If set to false, + // a NOT_FOUND error is returned if the + // [Product][google.cloud.retail.v2beta.Product] is not found. + bool allow_missing = 6; +} + +// Metadata related to the progress of the AddLocalInventories operation. +// Currently empty because there is no meaningful metadata populated from the +// [ProductService.AddLocalInventories][google.cloud.retail.v2beta.ProductService.AddLocalInventories] +// method. +message AddLocalInventoriesMetadata {} + +// Response of the +// [ProductService.AddLocalInventories][google.cloud.retail.v2beta.ProductService.AddLocalInventories] +// API. Currently empty because there is no meaningful response populated from +// the +// [ProductService.AddLocalInventories][google.cloud.retail.v2beta.ProductService.AddLocalInventories] +// method. +message AddLocalInventoriesResponse {} + +// Request message for +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2beta.ProductService.RemoveLocalInventories] +// method. +message RemoveLocalInventoriesRequest { + // Required. Full resource name of + // [Product][google.cloud.retail.v2beta.Product], such as + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. + // + // If the caller does not have permission to access the + // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not + // it exists, a PERMISSION_DENIED error is returned. + string product = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Product" } + ]; + + // Required. A list of place IDs to have their inventory deleted. + // At most 3000 place IDs are allowed per request. + repeated string place_ids = 2 [(google.api.field_behavior) = REQUIRED]; + + // The time when the inventory deletions are issued. Used to prevent + // out-of-order updates and deletions on local inventory fields. If not + // provided, the internal system time will be used. + google.protobuf.Timestamp remove_time = 5; + + // If set to true, and the [Product][google.cloud.retail.v2beta.Product] is + // not found, the local inventory removal request will still be processed and + // retained for at most 1 day and processed once the + // [Product][google.cloud.retail.v2beta.Product] is created. If set to false, + // a NOT_FOUND error is returned if the + // [Product][google.cloud.retail.v2beta.Product] is not found. + bool allow_missing = 3; +} + +// Metadata related to the progress of the RemoveLocalInventories operation. +// Currently empty because there is no meaningful metadata populated from the +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2beta.ProductService.RemoveLocalInventories] +// method. +message RemoveLocalInventoriesMetadata {} + +// Response of the +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2beta.ProductService.RemoveLocalInventories] +// API. Currently empty because there is no meaningful response populated from +// the +// [ProductService.RemoveLocalInventories][google.cloud.retail.v2beta.ProductService.RemoveLocalInventories] +// method. +message RemoveLocalInventoriesResponse {} + +// Request message for +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces] +// method. message RemoveFulfillmentPlacesRequest { // Required. Full resource name of // [Product][google.cloud.retail.v2beta.Product], such as @@ -605,7 +881,8 @@ message RemoveFulfillmentPlacesRequest { // If this field is set to an invalid value other than these, an // INVALID_ARGUMENT error is returned. // - // This field directly corresponds to [Product.fulfillment_info.type][]. + // This field directly corresponds to + // [Product.fulfillment_info.type][google.cloud.retail.v2beta.FulfillmentInfo.type]. string type = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The IDs for this @@ -636,10 +913,12 @@ message RemoveFulfillmentPlacesRequest { // Metadata related to the progress of the RemoveFulfillmentPlaces operation. // Currently empty because there is no meaningful metadata populated from the -// [RemoveFulfillmentPlaces][] method. +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces] +// method. message RemoveFulfillmentPlacesMetadata {} // Response of the RemoveFulfillmentPlacesRequest. Currently empty because there -// is no meaningful response populated from the [RemoveFulfillmentPlaces][] +// is no meaningful response populated from the +// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces] // method. message RemoveFulfillmentPlacesResponse {} diff --git a/google/cloud/retail/v2beta/promotion.proto b/google/cloud/retail/v2beta/promotion.proto new file mode 100644 index 000000000..5346f14d3 --- /dev/null +++ b/google/cloud/retail/v2beta/promotion.proto @@ -0,0 +1,40 @@ +// 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 google.cloud.retail.v2beta; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; +option java_multiple_files = true; +option java_outer_classname = "PromotionProto"; +option java_package = "com.google.cloud.retail.v2beta"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2beta"; +option ruby_package = "Google::Cloud::Retail::V2beta"; + +// Promotion information. +message Promotion { + // ID of the promotion. For example, "free gift". + // + // The value must be a UTF-8 encoded string with a length limit of 128 + // characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, + // 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). + string promotion_id = 1; +} diff --git a/google/cloud/retail/v2beta/purge_config.proto b/google/cloud/retail/v2beta/purge_config.proto index 0d87246fa..25502cd7d 100644 --- a/google/cloud/retail/v2beta/purge_config.proto +++ b/google/cloud/retail/v2beta/purge_config.proto @@ -16,8 +16,8 @@ syntax = "proto3"; package google.cloud.retail.v2beta; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; option csharp_namespace = "Google.Cloud.Retail.V2Beta"; option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; @@ -37,7 +37,10 @@ message PurgeUserEventsRequest { // Required. The resource name of the catalog under which the events are // created. The format is // `projects/${projectId}/locations/global/catalogs/${catalogId}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; // Required. The filter string to specify the events to be deleted with a // length limit of 5,000 characters. Empty string filter is not allowed. The diff --git a/google/cloud/retail/v2beta/retail_v2beta.yaml b/google/cloud/retail/v2beta/retail_v2beta.yaml index bb50cc985..3a114a3bb 100644 --- a/google/cloud/retail/v2beta/retail_v2beta.yaml +++ b/google/cloud/retail/v2beta/retail_v2beta.yaml @@ -4,17 +4,24 @@ name: retail.googleapis.com title: Retail API apis: +- name: google.cloud.location.Locations - name: google.cloud.retail.v2beta.CatalogService - name: google.cloud.retail.v2beta.CompletionService +- name: google.cloud.retail.v2beta.ControlService +- name: google.cloud.retail.v2beta.ModelService - name: google.cloud.retail.v2beta.PredictionService - name: google.cloud.retail.v2beta.ProductService - name: google.cloud.retail.v2beta.SearchService +- name: google.cloud.retail.v2beta.ServingConfigService - name: google.cloud.retail.v2beta.UserEventService +- name: google.longrunning.Operations types: - name: google.cloud.retail.logging.ErrorLog - name: google.cloud.retail.v2beta.AddFulfillmentPlacesMetadata - name: google.cloud.retail.v2beta.AddFulfillmentPlacesResponse +- name: google.cloud.retail.v2beta.AddLocalInventoriesMetadata +- name: google.cloud.retail.v2beta.AddLocalInventoriesResponse - name: google.cloud.retail.v2beta.ExportErrorsConfig - name: google.cloud.retail.v2beta.ExportMetadata - name: google.cloud.retail.v2beta.ExportProductsResponse @@ -30,6 +37,8 @@ types: - name: google.cloud.retail.v2beta.RejoinUserEventsResponse - name: google.cloud.retail.v2beta.RemoveFulfillmentPlacesMetadata - name: google.cloud.retail.v2beta.RemoveFulfillmentPlacesResponse +- name: google.cloud.retail.v2beta.RemoveLocalInventoriesMetadata +- name: google.cloud.retail.v2beta.RemoveLocalInventoriesResponse - name: google.cloud.retail.v2beta.SetInventoryMetadata - name: google.cloud.retail.v2beta.SetInventoryResponse @@ -47,6 +56,8 @@ documentation: backend: rules: + - selector: google.cloud.retail.v2beta.CatalogService.UpdateCatalog + deadline: 10.0 - selector: 'google.cloud.retail.v2beta.ProductService.*' deadline: 30.0 - selector: google.cloud.retail.v2beta.ProductService.ImportProducts @@ -61,14 +72,16 @@ backend: http: rules: - selector: google.longrunning.Operations.GetOperation - get: '/v2beta/{name=projects/*/locations/*/operations/*}' + get: '/v2beta/{name=projects/*/locations/*/catalogs/*/branches/*/operations/*}' additional_bindings: - get: '/v2beta/{name=projects/*/locations/*/catalogs/*/operations/*}' - - get: '/v2beta/{name=projects/*/locations/*/catalogs/*/branches/*/operations/*}' + - get: '/v2beta/{name=projects/*/locations/*/operations/*}' + - get: '/v2beta/{name=projects/*/operations/*}' - selector: google.longrunning.Operations.ListOperations - get: '/v2beta/{name=projects/*/locations/*}/operations' + get: '/v2beta/{name=projects/*/locations/*/catalogs/*}/operations' additional_bindings: - - get: '/v2beta/{name=projects/*/locations/*/catalogs/*}/operations' + - get: '/v2beta/{name=projects/*/locations/*}/operations' + - get: '/v2beta/{name=projects/*}/operations' authentication: rules: @@ -92,6 +105,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2beta.ControlService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2beta.ModelService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.retail.v2beta.PredictionService.Predict oauth: canonical_scopes: |- @@ -104,6 +125,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2beta.ServingConfigService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.retail.v2beta.UserEventService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/retail/v2beta/search_service.proto b/google/cloud/retail/v2beta/search_service.proto index 62149b989..5a1004410 100644 --- a/google/cloud/retail/v2beta/search_service.proto +++ b/google/cloud/retail/v2beta/search_service.proto @@ -24,8 +24,6 @@ import "google/cloud/retail/v2beta/common.proto"; import "google/cloud/retail/v2beta/product.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; option csharp_namespace = "Google.Cloud.Retail.V2Beta"; option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; @@ -39,8 +37,7 @@ option ruby_package = "Google::Cloud::Retail::V2beta"; // Service for search. // // This feature is only available for users who have Retail Search enabled. -// Please submit a form [here](https://cloud.google.com/contact) to contact -// cloud sales if you are interested in using Retail Search. +// Enable Retail Search on Cloud Console before using this feature. service SearchService { option (google.api.default_host) = "retail.googleapis.com"; option (google.api.oauth_scopes) = @@ -49,12 +46,15 @@ service SearchService { // Performs a search. // // This feature is only available for users who have Retail Search enabled. - // Please submit a form [here](https://cloud.google.com/contact) to contact - // cloud sales if you are interested in using Retail Search. + // Enable Retail Search on Cloud Console before using this feature. rpc Search(SearchRequest) returns (SearchResponse) { option (google.api.http) = { post: "/v2beta/{placement=projects/*/locations/*/catalogs/*/placements/*}:search" body: "*" + additional_bindings { + post: "/v2beta/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:search" + body: "*" + } }; } } @@ -106,6 +106,7 @@ message SearchRequest { // * "ratingCount" // * "attributes.key" // * "inventory(place_id,price)" + // * "inventory(place_id,original_price)" // * "inventory(place_id,attributes.key)" string key = 1 [(google.api.field_behavior) = REQUIRED]; @@ -117,8 +118,8 @@ message SearchRequest { // Only get facet for the given restricted values. For example, when using // "pickupInStore" as key and set restricted values to // ["store123", "store456"], only facets for "store123" and "store456" are - // returned. Only supported on textual fields and fulfillments. - // Maximum is 20. + // returned. Only supported on predefined textual fields, custom textual + // attributes and fulfillments. Maximum is 20. // // Must be set for the fulfillment facet keys: // @@ -155,14 +156,22 @@ message SearchRequest { // Only supported on textual fields. Maximum is 10. repeated string contains = 9; - // The order in which [Facet.values][] are returned. + // True to make facet keys case insensitive when getting faceting + // values with prefixes or contains; false otherwise. + bool case_insensitive = 10; + + // The order in which + // [SearchResponse.Facet.values][google.cloud.retail.v2beta.SearchResponse.Facet.values] + // are returned. // // Allowed values are: // - // * "count desc", which means order by [Facet.FacetValue.count][] + // * "count desc", which means order by + // [SearchResponse.Facet.values.count][google.cloud.retail.v2beta.SearchResponse.Facet.FacetValue.count] // descending. // - // * "value desc", which means order by [Facet.FacetValue.value][] + // * "value desc", which means order by + // [SearchResponse.Facet.values.value][google.cloud.retail.v2beta.SearchResponse.Facet.FacetValue.value] // descending. // Only applies to textual facets. // @@ -184,9 +193,11 @@ message SearchRequest { // [FacetKey.key][google.cloud.retail.v2beta.SearchRequest.FacetSpec.FacetKey.key] // when query is specified. // - // In the response, [FacetValue.value][] will be always "1" and - // [FacetValue.count][] will be the number of results that matches the - // query. + // In the response, + // [SearchResponse.Facet.values.value][google.cloud.retail.v2beta.SearchResponse.Facet.FacetValue.value] + // will be 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. // // For example, you can set a customized facet for "shipToStore", // where @@ -197,6 +208,10 @@ message SearchRequest { // Then the facet will count the products that are both in stock and ship // to store "123". string query = 5; + + // Returns the min and max value for each numerical facet intervals. + // Ignored for textual facets. + bool return_min_max = 11; } // Required. The facet key specification. @@ -211,19 +226,29 @@ message SearchRequest { // List of keys to exclude when faceting. // + // // By default, // [FacetKey.key][google.cloud.retail.v2beta.SearchRequest.FacetSpec.FacetKey.key] // is not excluded from the filter unless it is listed in this field. // - // For example, suppose there are 100 products with color facet "Red" and - // 200 products with color facet "Blue". A query containing the filter - // "colorFamilies:ANY("Red")" and have "colorFamilies" as + // Listing a facet key in this field allows its values to appear as facet + // results, even when they are filtered out of search results. Using this + // field does not affect what search results are returned. + // + // For example, suppose there are 100 products with the color facet "Red" + // and 200 products with the color facet "Blue". A query containing the + // filter "colorFamilies:ANY("Red")" and having "colorFamilies" as // [FacetKey.key][google.cloud.retail.v2beta.SearchRequest.FacetSpec.FacetKey.key] - // will by default return the "Red" with count 100. + // would by default return only "Red" products in the search results, and + // also return "Red" with count 100 as the only color facet. Although there + // are also blue products available, "Blue" would not be shown as an + // available facet value. // - // If this field contains "colorFamilies", then the query returns both the - // "Red" with count 100 and "Blue" with count 200, because the - // "colorFamilies" key is now excluded from the filter. + // If "colorFamilies" is listed in "excludedFilterKeys", then the query + // returns the facet values "Red" with count 100 and "Blue" with count + // 200, because the "colorFamilies" key is now excluded from the filter. + // Because this field doesn't affect search results, the search results + // are still correctly filtered to return only "Red" products. // // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error // is returned. @@ -322,8 +347,16 @@ message SearchRequest { // Condition boost specifications. If a product matches multiple conditions // in the specifictions, boost scores from these specifications are all // applied and combined in a non-linear way. Maximum number of - // specifications is 10. + // specifications is 20. repeated ConditionBoostSpec condition_boost_specs = 1; + + // Whether to skip boostspec validation. If this field is set to true, + // invalid + // [BoostSpec.condition_boost_specs][google.cloud.retail.v2beta.SearchRequest.BoostSpec.condition_boost_specs] + // will be ignored and valid + // [BoostSpec.condition_boost_specs][google.cloud.retail.v2beta.SearchRequest.BoostSpec.condition_boost_specs] + // will still be applied. + optional bool skip_boost_spec_validation = 2; } // Specification to determine under which conditions query expansion should @@ -331,7 +364,8 @@ message SearchRequest { message QueryExpansionSpec { // Enum describing under which condition query expansion should occur. enum Condition { - // Unspecified query expansion condition. This defaults to + // Unspecified query expansion condition. In this case, server behavior + // defaults to // [Condition.DISABLED][google.cloud.retail.v2beta.SearchRequest.QueryExpansionSpec.Condition.DISABLED]. CONDITION_UNSPECIFIED = 0; @@ -354,18 +388,71 @@ message SearchRequest { bool pin_unexpanded_results = 2; } + // The specification for personalization. + message PersonalizationSpec { + // The personalization mode of each search request. + enum Mode { + // Default value. In this case, server behavior defaults to + // [Mode.AUTO][google.cloud.retail.v2beta.SearchRequest.PersonalizationSpec.Mode.AUTO]. + MODE_UNSPECIFIED = 0; + + // Let CRS decide whether to use personalization based on quality of user + // event data. + AUTO = 1; + + // Disable personalization. + DISABLED = 2; + } + + // Defaults to + // [Mode.AUTO][google.cloud.retail.v2beta.SearchRequest.PersonalizationSpec.Mode.AUTO]. + Mode mode = 1; + } + + // The specification for query spell correction. + message SpellCorrectionSpec { + // Enum describing under which mode spell correction should occur. + enum Mode { + // Unspecified spell correction mode. In this case, server behavior + // defaults to + // [Mode.AUTO][google.cloud.retail.v2beta.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. + MODE_UNSPECIFIED = 0; + + // Google Retail Search will try to find a spell suggestion if there + // is any and put in the + // [SearchResponse.corrected_query][google.cloud.retail.v2beta.SearchResponse.corrected_query]. + // The spell suggestion will not be used as the search query. + SUGGESTION_ONLY = 1; + + // Automatic spell correction built by Google Retail Search. Search will + // be based on the corrected query if found. + AUTO = 2; + } + + // The mode under which spell correction should take effect to + // replace the original search query. Default to + // [Mode.AUTO][google.cloud.retail.v2beta.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. + Mode mode = 1; + } + // The search mode of each search request. enum SearchMode { // Default value. In this case both product search and faceted search will - // be performed. Both [SearchResponse.SearchResult] and - // [SearchResponse.Facet] will be returned. + // be performed. Both + // [SearchResponse.SearchResult][google.cloud.retail.v2beta.SearchResponse.SearchResult] + // and + // [SearchResponse.Facet][google.cloud.retail.v2beta.SearchResponse.Facet] + // will be returned. SEARCH_MODE_UNSPECIFIED = 0; // Only product search will be performed. The faceted search will be // disabled. // - // Only [SearchResponse.SearchResult] will be returned. - // [SearchResponse.Facet] will not be returned, even if + // Only + // [SearchResponse.SearchResult][google.cloud.retail.v2beta.SearchResponse.SearchResult] + // will be returned. + // [SearchResponse.Facet][google.cloud.retail.v2beta.SearchResponse.Facet] + // will not be returned, even if // [SearchRequest.facet_specs][google.cloud.retail.v2beta.SearchRequest.facet_specs] // or // [SearchRequest.dynamic_facet_spec][google.cloud.retail.v2beta.SearchRequest.dynamic_facet_spec] @@ -375,15 +462,21 @@ message SearchRequest { // Only faceted search will be performed. The product search will be // disabled. // - // When in this mode, one or both of [SearchRequest.facet_spec][] and + // When in this mode, one or both of + // [SearchRequest.facet_specs][google.cloud.retail.v2beta.SearchRequest.facet_specs] + // and // [SearchRequest.dynamic_facet_spec][google.cloud.retail.v2beta.SearchRequest.dynamic_facet_spec] // should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only - // [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult] + // [SearchResponse.Facet][google.cloud.retail.v2beta.SearchResponse.Facet] + // will be returned. + // [SearchResponse.SearchResult][google.cloud.retail.v2beta.SearchResponse.SearchResult] // will not be returned. FACETED_SEARCH_ONLY = 2; } - // Required. The resource name of the search engine placement, such as + // Required. The resource name of the Retail Search serving config, such as + // `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` + // 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 configuration name and the set // of models that will be used to make the search. @@ -399,6 +492,11 @@ message SearchRequest { ]; // Raw search query. + // + // If this field is empty, the request is considered a category browsing + // request and returned results are based on + // [filter][google.cloud.retail.v2beta.SearchRequest.filter] and + // [page_categories][google.cloud.retail.v2beta.SearchRequest.page_categories]. string query = 3; // Required. A unique identifier for tracking visitors. For example, this @@ -406,6 +504,9 @@ message SearchRequest { // identify a visitor on a single device. This unique identifier should not // change if the visitor logs in or out of the website. // + // This should be the same identifier as + // [UserEvent.visitor_id][google.cloud.retail.v2beta.UserEvent.visitor_id]. + // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string visitor_id = 4 [(google.api.field_behavior) = REQUIRED]; @@ -449,6 +550,9 @@ message SearchRequest { // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string filter = 10; + // The default filter that is applied when a user performs a search without + // 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 @@ -475,21 +579,23 @@ message SearchRequest { // is returned. repeated FacetSpec facet_specs = 12; + // Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic + // to enable dynamic facets. Do not set this field. + // // The specification for dynamically generated facets. Notice that only // textual facets can be dynamically generated. - // - // This feature requires additional allowlisting. Contact Retail Search - // support team if you are interested in using dynamic facet feature. - DynamicFacetSpec dynamic_facet_spec = 21; + 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). // - // Notice that if both [ServingConfig.boost_control_ids][] and - // [SearchRequest.boost_spec] are set, the boost conditions from both places - // are evaluated. If a search request matches multiple boost conditions, - // the final boost score is equal to the sum of the boost scores from all - // matched boost conditions. + // Notice that if both + // [ServingConfig.boost_control_ids][google.cloud.retail.v2beta.ServingConfig.boost_control_ids] + // and + // [SearchRequest.boost_spec][google.cloud.retail.v2beta.SearchRequest.boost_spec] + // are set, the boost conditions from both places are evaluated. If a search + // request matches multiple boost conditions, the final boost score is equal + // to the sum of the boost scores from all matched boost conditions. BoostSpec boost_spec = 13; // The query expansion specification that specifies the conditions under which @@ -499,14 +605,15 @@ message SearchRequest { // The keys to fetch and rollup the matching // [variant][google.cloud.retail.v2beta.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2beta.Product]s attributes. The attributes - // from all the matching + // [Product][google.cloud.retail.v2beta.Product]s attributes, + // [FulfillmentInfo][google.cloud.retail.v2beta.FulfillmentInfo] or + // [LocalInventory][google.cloud.retail.v2beta.LocalInventory]s attributes. + // The attributes from all the matching // [variant][google.cloud.retail.v2beta.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2beta.Product]s are merged and - // de-duplicated. Notice that rollup - // [variant][google.cloud.retail.v2beta.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2beta.Product]s attributes will lead to - // extra query latency. Maximum number of keys is 10. + // [Product][google.cloud.retail.v2beta.Product]s or + // [LocalInventory][google.cloud.retail.v2beta.LocalInventory]s are merged and + // de-duplicated. Notice that rollup attributes will lead to extra query + // latency. Maximum number of keys is 30. // // For [FulfillmentInfo][google.cloud.retail.v2beta.FulfillmentInfo], a // fulfillment type and a fulfillment ID must be provided in the format of @@ -521,8 +628,10 @@ message SearchRequest { // * discount // * variantId // * inventory(place_id,price) + // * inventory(place_id,original_price) // * inventory(place_id,attributes.key), where key is any key in the - // [Product.inventories.attributes][] map. + // [Product.local_inventories.attributes][google.cloud.retail.v2beta.LocalInventory.attributes] + // map. // * attributes.key, where key is any key in the // [Product.attributes][google.cloud.retail.v2beta.Product.attributes] map. // * pickupInStore.id, where id is any @@ -572,7 +681,7 @@ message SearchRequest { // [UserEvent.page_categories][google.cloud.retail.v2beta.UserEvent.page_categories]; // // 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 @@ -583,6 +692,41 @@ message SearchRequest { // The search mode of the search request. If not specified, a single search // request triggers both product search and faceted search. SearchMode search_mode = 31; + + // The specification for personalization. + // + // Notice that if both + // [ServingConfig.personalization_spec][google.cloud.retail.v2beta.ServingConfig.personalization_spec] + // and + // [SearchRequest.personalization_spec][google.cloud.retail.v2beta.SearchRequest.personalization_spec] + // are set. + // [SearchRequest.personalization_spec][google.cloud.retail.v2beta.SearchRequest.personalization_spec] + // will override + // [ServingConfig.personalization_spec][google.cloud.retail.v2beta.ServingConfig.personalization_spec]. + PersonalizationSpec personalization_spec = 32; + + // The 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 labels = 34; + + // The spell correction specification that specifies the mode under + // which spell correction will take effect. + optional SpellCorrectionSpec spell_correction_spec = 35; } // Response message for @@ -662,6 +806,21 @@ message SearchResponse { // `{key: "pickupInStore.store1" value { number_value: 10 }}` means a there // are 10 variants in this product are available in the store "store1". map variant_rollup_values = 5; + + // Specifies previous events related to this product for this user based on + // [UserEvent][google.cloud.retail.v2beta.UserEvent] with same + // [SearchRequest.visitor_id][google.cloud.retail.v2beta.SearchRequest.visitor_id] + // or [UserInfo.user_id][google.cloud.retail.v2beta.UserInfo.user_id]. + // + // This is set only when + // [SearchRequest.PersonalizationSpec.mode][google.cloud.retail.v2beta.SearchRequest.PersonalizationSpec.mode] + // is + // [SearchRequest.PersonalizationSpec.Mode.AUTO][google.cloud.retail.v2beta.SearchRequest.PersonalizationSpec.Mode.AUTO]. + // + // Possible values: + // + // * `purchased`: Indicates that this product has been purchased before. + repeated string personal_labels = 7; } // A facet result. @@ -679,6 +838,20 @@ message SearchResponse { // Number of items that have this facet value. int64 count = 3; + + // The minimum value in the + // [FacetValue.interval][google.cloud.retail.v2beta.SearchResponse.Facet.FacetValue.interval]. + // Only supported on numerical facets and returned if + // [SearchRequest.FacetSpec.FacetKey.return_min_max][google.cloud.retail.v2beta.SearchRequest.FacetSpec.FacetKey.return_min_max] + // is true. + double min_value = 5; + + // The maximum value in the + // [FacetValue.interval][google.cloud.retail.v2beta.SearchResponse.Facet.FacetValue.interval]. + // Only supported on numerical facets and returned if + // [SearchRequest.FacetSpec.FacetKey.return_min_max][google.cloud.retail.v2beta.SearchRequest.FacetSpec.FacetKey.return_min_max] + // is true. + double max_value = 6; } // The key for this facet. E.g., "colorFamilies" or "price" or @@ -718,7 +891,9 @@ message SearchResponse { // matches. int32 total_size = 3; - // If spell correction applies, the corrected query. Otherwise, empty. + // Contains the spell corrected query, if found. If the spell correction type + // is AUTOMATIC, then the search results are based on corrected_query. + // Otherwise the original query is used for search. string corrected_query = 4; // A unique search token. This should be included in the @@ -736,9 +911,19 @@ message SearchResponse { QueryExpansionInfo query_expansion_info = 7; // The URI of a customer-defined redirect page. If redirect action is - // triggered, no search will be performed, and only + // triggered, no search is performed, and only // [redirect_uri][google.cloud.retail.v2beta.SearchResponse.redirect_uri] and // [attribution_token][google.cloud.retail.v2beta.SearchResponse.attribution_token] - // will be set in the response. + // are set in the response. string redirect_uri = 10; + + // The fully qualified resource name of applied + // [controls](https://cloud.google.com/retail/docs/serving-control-rules). + repeated string applied_controls = 12; + + // The invalid + // [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2beta.SearchRequest.BoostSpec.condition_boost_specs] + // that are not applied during serving. + repeated SearchRequest.BoostSpec.ConditionBoostSpec + invalid_condition_boost_specs = 14; } diff --git a/google/cloud/retail/v2beta/serving_config.proto b/google/cloud/retail/v2beta/serving_config.proto new file mode 100644 index 000000000..35d1cf853 --- /dev/null +++ b/google/cloud/retail/v2beta/serving_config.proto @@ -0,0 +1,280 @@ +// 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 google.cloud.retail.v2beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2beta/common.proto"; +import "google/cloud/retail/v2beta/search_service.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; +option java_multiple_files = true; +option java_outer_classname = "ServingConfigProto"; +option java_package = "com.google.cloud.retail.v2beta"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2beta"; +option ruby_package = "Google::Cloud::Retail::V2beta"; + +// Configures metadata that is used to generate serving time results (e.g. +// search results or recommendation predictions). +message ServingConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/ServingConfig" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/servingConfigs/{serving_config}" + }; + + // What type of diversity - data or rule based. + // If none is specified, default to rule based. + enum DiversityType { + // Default value. + DIVERSITY_TYPE_UNSPECIFIED = 0; + + // Rule based diversity. + RULE_BASED_DIVERSITY = 2; + + // Data driven diversity. + DATA_DRIVEN_DIVERSITY = 3; + } + + // Immutable. Fully qualified name + // `projects/*/locations/global/catalogs/*/servingConfig/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The human readable serving config display name. Used in Retail + // 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]; + + // The id of the model in the same + // [Catalog][google.cloud.retail.v2beta.Catalog] to use at serving time. + // Currently only RecommendationModels are supported: + // https://cloud.google.com/retail/recommendations-ai/docs/create-models + // Can be changed but only to a compatible model (e.g. + // others-you-may-like CTR to others-you-may-like CVR). + // + // Required when + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string model_id = 3; + + // How much price ranking we want in serving results. + // Price reranking causes product items with a similar + // recommendation probability to be ordered by price, with the + // highest-priced items first. This setting could result in a decrease in + // click-through and conversion rates. + // Allowed values are: + // + // * `no-price-reranking` + // * `low-price-raranking` + // * `medium-price-reranking` + // * `high-price-reranking` + // + // If not specified, we choose default based on model type. Default value: + // `no-price-reranking`. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string price_reranking_level = 4; + + // Facet specifications for faceted search. If empty, no facets are returned. + // The ids refer to the ids of [Control][google.cloud.retail.v2beta.Control] + // resources with only the Facet control set. These controls are assumed to be + // in the same [Catalog][google.cloud.retail.v2beta.Catalog] as the + // [ServingConfig][google.cloud.retail.v2beta.ServingConfig]. + // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error + // is returned. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string facet_control_ids = 5; + + // The specification for dynamically generated facets. Notice that only + // textual facets can be dynamically generated. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + SearchRequest.DynamicFacetSpec dynamic_facet_spec = 6; + + // Condition boost specifications. If a product matches multiple conditions + // in the specifications, boost scores from these specifications are all + // applied and combined in a non-linear way. Maximum number of + // specifications is 100. + // + // Notice that if both + // [ServingConfig.boost_control_ids][google.cloud.retail.v2beta.ServingConfig.boost_control_ids] + // and + // [SearchRequest.boost_spec][google.cloud.retail.v2beta.SearchRequest.boost_spec] + // are set, the boost conditions from both places are evaluated. If a search + // request matches multiple boost conditions, the final boost score is equal + // to the sum of the boost scores from all matched boost conditions. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string boost_control_ids = 7; + + // Condition filter specifications. If a product matches multiple conditions + // in the specifications, filters from these specifications are all + // applied and combined via the AND operator. Maximum number of + // specifications is 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string filter_control_ids = 9; + + // Condition redirect specifications. Only the first triggered redirect action + // is applied, even if multiple apply. Maximum number of specifications is + // 1000. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string redirect_control_ids = 10; + + // Condition synonyms specifications. If multiple syonyms conditions match, + // all matching synonyms control in the list will execute. Order of controls + // in the list will not matter. Maximum number of specifications is + // 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string twoway_synonyms_control_ids = 18; + + // Condition oneway synonyms specifications. If multiple oneway synonyms + // conditions match, all matching oneway synonyms controls in the list will + // execute. Order of controls in the list will not matter. Maximum number of + // specifications is 100. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string oneway_synonyms_control_ids = 12; + + // 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 + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string do_not_associate_control_ids = 13; + + // 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 + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string replacement_control_ids = 14; + + // 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. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string ignore_control_ids = 15; + + // 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 + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string diversity_level = 8; + + // What kind of diversity to use - data driven or rule based. + DiversityType diversity_type = 20; + + // Whether to add additional category filters on the `similar-items` model. + // If not specified, we enable it by default. + // Allowed values are: + // + // * `no-category-match`: No additional filtering of original results from + // the model and the customer's filters. + // * `relaxed-category-match`: Only keep results with categories that match + // at least one item categories in the PredictRequests's context item. + // * If customer also sends filters in the PredictRequest, then the results + // will satisfy both conditions (user given and category match). + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string enable_category_filter_level = 16; + + // The specification for personalization spec. + // + // Can only be set if + // [solution_types][google.cloud.retail.v2beta.ServingConfig.solution_types] + // is + // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_SEARCH]. + // + // Notice that if both + // [ServingConfig.personalization_spec][google.cloud.retail.v2beta.ServingConfig.personalization_spec] + // and + // [SearchRequest.personalization_spec][google.cloud.retail.v2beta.SearchRequest.personalization_spec] + // are set. + // [SearchRequest.personalization_spec][google.cloud.retail.v2beta.SearchRequest.personalization_spec] + // will override + // [ServingConfig.personalization_spec][google.cloud.retail.v2beta.ServingConfig.personalization_spec]. + SearchRequest.PersonalizationSpec personalization_spec = 21; + + // Required. Immutable. Specifies the solution types that a serving config can + // be associated with. Currently we support setting only one type of solution. + repeated SolutionType solution_types = 19 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; +} diff --git a/google/cloud/retail/v2beta/serving_config_service.proto b/google/cloud/retail/v2beta/serving_config_service.proto new file mode 100644 index 000000000..46bdcd9b0 --- /dev/null +++ b/google/cloud/retail/v2beta/serving_config_service.proto @@ -0,0 +1,240 @@ +// 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 google.cloud.retail.v2beta; + +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/v2beta/serving_config.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2beta;retail"; +option java_multiple_files = true; +option java_outer_classname = "ServingConfigServiceProto"; +option java_package = "com.google.cloud.retail.v2beta"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2beta"; +option ruby_package = "Google::Cloud::Retail::V2beta"; + +// Service for modifying ServingConfig. +service ServingConfigService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a ServingConfig. + // + // A maximum of 100 [ServingConfig][google.cloud.retail.v2beta.ServingConfig]s + // are allowed in a [Catalog][google.cloud.retail.v2beta.Catalog], otherwise + // a FAILED_PRECONDITION error is returned. + rpc CreateServingConfig(CreateServingConfigRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + body: "serving_config" + }; + option (google.api.method_signature) = + "parent,serving_config,serving_config_id"; + } + + // Deletes a ServingConfig. + // + // Returns a NotFound error if the ServingConfig does not exist. + rpc DeleteServingConfig(DeleteServingConfigRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2beta/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a ServingConfig. + rpc UpdateServingConfig(UpdateServingConfigRequest) returns (ServingConfig) { + option (google.api.http) = { + patch: "/v2beta/{serving_config.name=projects/*/locations/*/catalogs/*/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: "/v2beta/{name=projects/*/locations/*/catalogs/*/servingConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all ServingConfigs linked to this catalog. + rpc ListServingConfigs(ListServingConfigsRequest) + returns (ListServingConfigsResponse) { + option (google.api.http) = { + get: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/servingConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Enables a Control on the specified ServingConfig. + // The control is added in the last position of the list of controls + // it belongs to (e.g. if it's a facet spec control it will be applied + // in the last position of servingConfig.facetSpecIds) + // Returns a ALREADY_EXISTS error if the control has already been applied. + // Returns a FAILED_PRECONDITION error if the addition could exceed maximum + // number of control allowed for that type of control. + rpc AddControl(AddControlRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2beta/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:addControl" + body: "*" + }; + option (google.api.method_signature) = "serving_config"; + } + + // Disables a Control on the specified ServingConfig. + // The control is removed from the ServingConfig. + // Returns a NOT_FOUND error if the Control is not enabled for the + // ServingConfig. + rpc RemoveControl(RemoveControlRequest) returns (ServingConfig) { + option (google.api.http) = { + post: "/v2beta/{serving_config=projects/*/locations/*/catalogs/*/servingConfigs/*}:removeControl" + body: "*" + }; + option (google.api.method_signature) = "serving_config"; + } +} + +// Request for CreateServingConfig method. +message CreateServingConfigRequest { + // Required. Full resource name of parent. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The ServingConfig to create. + ServingConfig serving_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the ServingConfig, which will become the final + // component of the ServingConfig's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-_/. + string serving_config_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// 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.retail.v2beta.ServingConfig] to update. The + // following are NOT supported: + // + // * [ServingConfig.name][google.cloud.retail.v2beta.ServingConfig.name] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteServingConfig method. +message DeleteServingConfigRequest { + // Required. The resource name of the ServingConfig to delete. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; +} + +// Request for GetServingConfig method. +message GetServingConfigRequest { + // Required. The resource name of the ServingConfig to get. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; +} + +// Request for ListServingConfigs method. +message ListServingConfigsRequest { + // Required. The catalog resource name. Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // 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 catalog. + repeated ServingConfig serving_configs = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} + +// Request for AddControl method. +message AddControlRequest { + // Required. The source ServingConfig resource name . Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}` + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; + + // Required. The id of the control to apply. Assumed to be in the same catalog + // as the serving config - if id is not found a NOT_FOUND error is returned. + string control_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for RemoveControl method. +message RemoveControlRequest { + // Required. The source ServingConfig resource name . Format: + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}` + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/ServingConfig" + } + ]; + + // Required. The id of the control to apply. Assumed to be in the same catalog + // as the serving config. + string control_id = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/retail/v2beta/user_event.proto b/google/cloud/retail/v2beta/user_event.proto index 842064a89..3d88483e7 100644 --- a/google/cloud/retail/v2beta/user_event.proto +++ b/google/cloud/retail/v2beta/user_event.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.retail.v2beta; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/cloud/retail/v2beta/common.proto"; import "google/cloud/retail/v2beta/product.proto"; @@ -40,7 +39,6 @@ message UserEvent { // * `add-to-cart`: Products being added to cart. // * `category-page-view`: Special pages such as sale or promotion pages // viewed. - // * `completion`: Completion query result showed/clicked. // * `detail-page-view`: Products detail page viewed. // * `home-page-view`: Homepage viewed. // * `promotion-offered`: Promotion is offered to a user. @@ -56,11 +54,15 @@ message UserEvent { // able to uniquely identify a visitor on a single device. This unique // identifier should not change if the visitor log in/out of the website. // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded model + // quality. + // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // // The field should not contain PII or user-data. We recommend to use Google - // Analystics [Client + // Analytics [Client // ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) // for this field. string visitor_id = 2 [(google.api.field_behavior) = REQUIRED]; @@ -113,7 +115,7 @@ message UserEvent { // The main product details related to the event. // - // This field is required for the following event types: + // This field is optional except for the following event types: // // * `add-to-cart` // * `detail-page-view` @@ -128,22 +130,35 @@ message UserEvent { // desired. The end user may have not finished browsing the whole page yet. repeated ProductDetail product_details = 6; - // The main completion details related to the event. + // The main auto-completion details related to the event. // - // In a `completion` event, this field represents the completions returned to - // the end user and the clicked completion by the end user. In a `search` - // event, it represents the search event happens after clicking completion. + // This field should be set for `search` event when autocomplete function is + // enabled and the user clicks a suggestion for search. CompletionDetail completion_detail = 22; // Extra user event features to include in the recommendation model. // - // The key must be a UTF-8 encoded string with a length limit of 5,000 - // characters. Otherwise, an INVALID_ARGUMENT error is returned. - // - // For product recommendation, an example of extra user information is - // traffic_channel, i.e. how user arrives at the site. Users can arrive - // at the site by coming to the site directly, or coming through Google - // search, and etc. + // If you provide custom attributes for ingested user events, also include + // them in the user events that you associate with prediction requests. Custom + // attribute formatting must be consistent between imported events and events + // provided with prediction requests. This lets the Retail API use + // those custom attributes when training models and serving predictions, which + // helps improve recommendation quality. + // + // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT + // error is returned: + // + // * The key must be a UTF-8 encoded string with a length limit of 5,000 + // characters. + // * For text attributes, at most 400 values are allowed. Empty values are not + // allowed. Each value must be a UTF-8 encoded string with a length limit of + // 256 characters. + // * For number attributes, at most 400 values are allowed. + // + // For product recommendations, an example of extra user information is + // traffic_channel, which is how a user arrives at the site. Users can arrive + // at the site by coming to the site directly, coming through Google + // search, or in other ways. map attributes = 7; // The ID or name of the associated shopping cart. This ID is used @@ -212,7 +227,7 @@ message UserEvent { // The categories 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 diff --git a/google/cloud/retail/v2beta/user_event_service.proto b/google/cloud/retail/v2beta/user_event_service.proto index c2da08739..74dccdff8 100644 --- a/google/cloud/retail/v2beta/user_event_service.proto +++ b/google/cloud/retail/v2beta/user_event_service.proto @@ -20,7 +20,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/httpbody.proto"; -import "google/cloud/retail/v2beta/export_config.proto"; +import "google/api/resource.proto"; import "google/cloud/retail/v2beta/import_config.proto"; import "google/cloud/retail/v2beta/purge_config.proto"; import "google/cloud/retail/v2beta/user_event.proto"; @@ -80,9 +80,9 @@ service UserEventService { // synchronous. Events that already exist are skipped. // Use this method for backfilling historical user events. // - // Operation.response is of type ImportResponse. Note that it is + // `Operation.response` is of type `ImportResponse`. Note that it is // possible for a subset of the items to be successfully inserted. - // Operation.metadata is of type ImportMetadata. + // `Operation.metadata` is of type `ImportMetadata`. rpc ImportUserEvents(ImportUserEventsRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -95,13 +95,14 @@ service UserEventService { }; } - // Triggers a user event rejoin operation with latest product catalog. Events - // will not be annotated with detailed product information if product is - // missing from the catalog at the time the user event is ingested, and these - // events are stored as unjoined events with a limited usage on training and - // serving. This API can be used to trigger a 'join' operation on specified - // events with latest version of product catalog. It can also be used to - // correct events joined with wrong product catalog. + // Starts a user-event rejoin operation with latest product catalog. Events + // are not annotated with detailed product information for products that are + // missing from the catalog when the user event is ingested. These + // events are stored as unjoined events with limited usage on training and + // serving. You can use this method to start a join operation on specified + // events with the latest version of product catalog. You can also use this + // method to correct events joined with the wrong product catalog. A rejoin + // operation can take hours or days to complete. rpc RejoinUserEvents(RejoinUserEventsRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -151,11 +152,11 @@ message CollectUserEventRequest { message RejoinUserEventsRequest { // The scope of user events to be rejoined with the latest product catalog. // If the rejoining aims at reducing number of unjoined events, set - // UserEventRejoinScope to UNJOINED_EVENTS. + // `UserEventRejoinScope` to `UNJOINED_EVENTS`. // If the rejoining aims at correcting product catalog information in joined - // events, set UserEventRejoinScope to JOINED_EVENTS. - // If all events needs to be rejoined, set UserEventRejoinScope to - // USER_EVENT_REJOIN_SCOPE_UNSPECIFIED. + // events, set `UserEventRejoinScope` to `JOINED_EVENTS`. + // If all events needs to be rejoined, set `UserEventRejoinScope` to + // `USER_EVENT_REJOIN_SCOPE_UNSPECIFIED`. enum UserEventRejoinScope { // Rejoin all events with the latest product catalog, including both joined // events and unjoined events. @@ -174,16 +175,16 @@ message RejoinUserEventsRequest { // The type of the user event rejoin to define the scope and range of the user // events to be rejoined with the latest product catalog. Defaults to - // USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an - // invalid integer value. + // `USER_EVENT_REJOIN_SCOPE_UNSPECIFIED` if this field is not set, or set to + // an invalid integer value. UserEventRejoinScope user_event_rejoin_scope = 2; } -// Response message for RejoinUserEvents method. +// Response message for `RejoinUserEvents` method. message RejoinUserEventsResponse { // Number of user events that were joined with latest product catalog. int64 rejoined_user_events_count = 1; } -// Metadata for RejoinUserEvents method. +// Metadata for `RejoinUserEvents` method. message RejoinUserEventsMetadata {} diff --git a/google/cloud/run/BUILD.bazel b/google/cloud/run/BUILD.bazel new file mode 100644 index 000000000..41b0e9d15 --- /dev/null +++ b/google/cloud/run/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-run. + +# 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 run. +# 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 = "run_ruby_wrapper", + srcs = ["//google/cloud/run/v2:run_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-run", + "ruby-cloud-wrapper-of=v2:0.0", + "ruby-cloud-product-url=https://cloud.google.com/run", + "ruby-cloud-api-id=run.googleapis.com", + "ruby-cloud-api-shortname=run", + ], + ruby_cloud_description = "Cloud Run deploys and manages user provided container images that scale automatically based on incoming requests.", + ruby_cloud_title = "Cloud Run", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-run-ruby", + deps = [ + ":run_ruby_wrapper", + ], +) diff --git a/google/cloud/run/v2/BUILD.bazel b/google/cloud/run/v2/BUILD.bazel new file mode 100644 index 000000000..6162da2c0 --- /dev/null +++ b/google/cloud/run/v2/BUILD.bazel @@ -0,0 +1,404 @@ +# 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 = "run_proto", + srcs = [ + "condition.proto", + "k8s.min.proto", + "revision.proto", + "revision_template.proto", + "service.proto", + "traffic_target.proto", + "vendor_settings.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:launch_stage_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//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "run_proto_with_info", + deps = [ + ":run_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "run_java_proto", + deps = [":run_proto"], +) + +java_grpc_library( + name = "run_java_grpc", + srcs = [":run_proto"], + deps = [":run_java_proto"], +) + +java_gapic_library( + name = "run_java_gapic", + srcs = [":run_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "run_grpc_service_config.json", + service_yaml = "run_v2.yaml", + test_deps = [ + ":run_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":run_java_proto", + "//google/api:api_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "run_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.run.v2.RevisionsClientHttpJsonTest", + "com.google.cloud.run.v2.RevisionsClientTest", + "com.google.cloud.run.v2.ServicesClientHttpJsonTest", + "com.google.cloud.run.v2.ServicesClientTest", + ], + runtime_deps = [":run_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-run-v2-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":run_java_gapic", + ":run_java_grpc", + ":run_java_proto", + ":run_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "run_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/run/v2", + protos = [":run_proto"], + 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", + ], +) + +go_gapic_library( + name = "run_go_gapic", + srcs = [":run_proto_with_info"], + grpc_service_config = "run_grpc_service_config.json", + importpath = "cloud.google.com/go/run/apiv2;run", + metadata = True, + service_yaml = "run_v2.yaml", + transport = "grpc+rest", + deps = [ + ":run_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", + ], +) + +go_test( + name = "run_go_gapic_test", + srcs = [":run_go_gapic_srcjar_test"], + embed = [":run_go_gapic"], + importpath = "cloud.google.com/go/run/apiv2", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-run-v2-go", + deps = [ + ":run_go_gapic", + ":run_go_gapic_srcjar-metadata.srcjar", + ":run_go_gapic_srcjar-test.srcjar", + ":run_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", +) + +py_gapic_library( + name = "run_py_gapic", + srcs = [":run_proto"], + grpc_service_config = "run_grpc_service_config.json", + service_yaml = "run_v2.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "run_py_gapic_test", + srcs = [ + "run_py_gapic_pytest.py", + "run_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":run_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "run-v2-py", + deps = [ + ":run_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "run_php_proto", + deps = [":run_proto"], +) + +php_grpc_library( + name = "run_php_grpc", + srcs = [":run_proto"], + deps = [":run_php_proto"], +) + +php_gapic_library( + name = "run_php_gapic", + srcs = [":run_proto_with_info"], + grpc_service_config = "run_grpc_service_config.json", + service_yaml = "run_v2.yaml", + deps = [ + ":run_php_grpc", + ":run_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-run-v2-php", + deps = [ + ":run_php_gapic", + ":run_php_grpc", + ":run_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "run_nodejs_gapic", + package_name = "@google-cloud/run", + src = ":run_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "run_grpc_service_config.json", + package = "google.cloud.run.v2", + service_yaml = "run_v2.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "run-v2-nodejs", + deps = [ + ":run_nodejs_gapic", + ":run_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 = "run_ruby_proto", + deps = [":run_proto"], +) + +ruby_grpc_library( + name = "run_ruby_grpc", + srcs = [":run_proto"], + deps = [":run_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "run_ruby_gapic", + srcs = [":run_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=run.googleapis.com", + "ruby-cloud-api-shortname=run", + "ruby-cloud-gem-name=google-cloud-run-v2", + "ruby-cloud-product-url=https://cloud.google.com/run/", + "ruby-cloud-wrapper-gem-override=google-cloud-run-client", + ], + grpc_service_config = "run_grpc_service_config.json", + ruby_cloud_description = "Cloud Run deploys and manages user provided container images that scale automatically based on incoming requests.", + ruby_cloud_title = "Cloud Run V2", + deps = [ + ":run_ruby_grpc", + ":run_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-run-v2-ruby", + deps = [ + ":run_ruby_gapic", + ":run_ruby_grpc", + ":run_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 = "run_csharp_proto", + deps = [":run_proto"], +) + +csharp_grpc_library( + name = "run_csharp_grpc", + srcs = [":run_proto"], + deps = [":run_csharp_proto"], +) + +csharp_gapic_library( + name = "run_csharp_gapic", + srcs = [":run_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "run_grpc_service_config.json", + service_yaml = "run_v2.yaml", + deps = [ + ":run_csharp_grpc", + ":run_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-run-v2-csharp", + deps = [ + ":run_csharp_gapic", + ":run_csharp_grpc", + ":run_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "run_cc_proto", + deps = [":run_proto"], +) + +cc_grpc_library( + name = "run_cc_grpc", + srcs = [":run_proto"], + grpc_only = True, + deps = [":run_cc_proto"], +) diff --git a/google/cloud/run/v2/condition.proto b/google/cloud/run/v2/condition.proto new file mode 100644 index 000000000..3e98749c9 --- /dev/null +++ b/google/cloud/run/v2/condition.proto @@ -0,0 +1,199 @@ +// 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.cloud.run.v2; + +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/run/v2;run"; +option java_multiple_files = true; +option java_outer_classname = "ConditionProto"; +option java_package = "com.google.cloud.run.v2"; + +// Defines a status condition for a resource. +message Condition { + // Represents the possible Condition states. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // Transient state: Reconciliation has not started yet. + CONDITION_PENDING = 1; + + // Transient state: reconciliation is still in progress. + CONDITION_RECONCILING = 2; + + // Terminal state: Reconciliation did not succeed. + CONDITION_FAILED = 3; + + // Terminal state: Reconciliation completed successfully. + CONDITION_SUCCEEDED = 4; + } + + // Represents the severity of the condition failures. + enum Severity { + // Unspecified severity + SEVERITY_UNSPECIFIED = 0; + + // Error severity. + ERROR = 1; + + // Warning severity. + WARNING = 2; + + // Info severity. + INFO = 3; + } + + // Reasons common to all types of conditions. + enum CommonReason { + // Default value. + COMMON_REASON_UNDEFINED = 0; + + // Reason unknown. Further details will be in message. + UNKNOWN = 1; + + // Revision creation process failed. + REVISION_FAILED = 3; + + // Timed out waiting for completion. + PROGRESS_DEADLINE_EXCEEDED = 4; + + // The container image path is incorrect. + CONTAINER_MISSING = 6; + + // Insufficient permissions on the container image. + CONTAINER_PERMISSION_DENIED = 7; + + // Container image is not authorized by policy. + CONTAINER_IMAGE_UNAUTHORIZED = 8; + + // Container image policy authorization check failed. + CONTAINER_IMAGE_AUTHORIZATION_CHECK_FAILED = 9; + + // Insufficient permissions on encryption key. + ENCRYPTION_KEY_PERMISSION_DENIED = 10; + + // Permission check on encryption key failed. + ENCRYPTION_KEY_CHECK_FAILED = 11; + + // At least one Access check on secrets failed. + SECRETS_ACCESS_CHECK_FAILED = 12; + + // Waiting for operation to complete. + WAITING_FOR_OPERATION = 13; + + // System will retry immediately. + IMMEDIATE_RETRY = 14; + + // System will retry later; current attempt failed. + POSTPONED_RETRY = 15; + + // An internal error occurred. Further information may be in the message. + INTERNAL = 16; + } + + // Reasons specific to Revision resource. + enum RevisionReason { + // Default value. + REVISION_REASON_UNDEFINED = 0; + + // Revision in Pending state. + PENDING = 1; + + // Revision is in Reserve state. + RESERVE = 2; + + // Revision is Retired. + RETIRED = 3; + + // Revision is being retired. + RETIRING = 4; + + // Revision is being recreated. + RECREATING = 5; + + // There was a health check error. + HEALTH_CHECK_CONTAINER_ERROR = 6; + + // Health check failed due to user error from customized path of the + // container. System will retry. + CUSTOMIZED_PATH_RESPONSE_PENDING = 7; + + // A revision with min_instance_count > 0 was created and is reserved, but + // it was not configured to serve traffic, so it's not live. This can also + // happen momentarily during traffic migration. + MIN_INSTANCES_NOT_PROVISIONED = 8; + + // The maximum allowed number of active revisions has been reached. + ACTIVE_REVISION_LIMIT_REACHED = 9; + + // There was no deployment defined. + // This value is no longer used, but Services created in older versions of + // the API might contain this value. + NO_DEPLOYMENT = 10; + + // A revision's container has no port specified since the revision is of a + // manually scaled service with 0 instance count + HEALTH_CHECK_SKIPPED = 11; + } + + // Reasons specific to Execution resource. + enum ExecutionReason { + // Default value. + EXECUTION_REASON_UNDEFINED = 0; + + // Internal system error getting execution status. System will retry. + JOB_STATUS_SERVICE_POLLING_ERROR = 1; + + // A task reached its retry limit and the last attempt failed due to the + // user container exiting with a non-zero exit code. + NON_ZERO_EXIT_CODE = 2; + } + + // type is used to communicate the status of the reconciliation process. + // See also: + // https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting + // Types common to all resources include: + // * "Ready": True when the Resource is ready. + string type = 1; + + // State of the condition. + State state = 2; + + // Human readable message indicating details about the current status. + string message = 3; + + // Last time the condition transitioned from one status to another. + google.protobuf.Timestamp last_transition_time = 4; + + // How to interpret failures of this condition, one of Error, Warning, Info + Severity severity = 5; + + // The reason for this condition. Depending on the condition type, + // it will populate one of these fields. + // Successful conditions may not have a reason. + oneof reasons { + // A common (service-level) reason for this condition. + CommonReason reason = 6; + + // A reason for the revision condition. + RevisionReason revision_reason = 9; + + // A reason for the execution condition. + ExecutionReason execution_reason = 11; + } +} diff --git a/google/cloud/run/v2/k8s.min.proto b/google/cloud/run/v2/k8s.min.proto new file mode 100644 index 000000000..328c816f9 --- /dev/null +++ b/google/cloud/run/v2/k8s.min.proto @@ -0,0 +1,274 @@ +// 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.cloud.run.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/run/v2;run"; +option java_multiple_files = true; +option java_outer_classname = "K8sMinProto"; +option java_package = "com.google.cloud.run.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: "secretmanager.googleapis.com/Secret" + pattern: "projects/{project}/secrets/{secret}" +}; +option (google.api.resource_definition) = { + type: "secretmanager.googleapis.com/SecretVersion" + pattern: "projects/{project}/secrets/{secret}/versions/{version}" +}; +option (google.api.resource_definition) = { + type: "vpcaccess.googleapis.com/Connector" + pattern: "projects/{project}/locations/{location}/connectors/{connector}" +}; + +// A single application container. +// This specifies both the container to run, the command to run in the container +// and the arguments to supply to it. +// Note that additional arguments may be supplied by the system to the container +// at runtime. +message Container { + // Name of the container specified as a DNS_LABEL. + string name = 1; + + // Required. URL of the Container image in Google Container Registry or Google Artifact + // Registry. More info: https://kubernetes.io/docs/concepts/containers/images + string image = 2 [(google.api.field_behavior) = REQUIRED]; + + // Entrypoint array. Not executed within a shell. + // The docker image's ENTRYPOINT is used if this is not provided. + // Variable references $(VAR_NAME) are expanded using the container's + // environment. If a variable cannot be resolved, the reference in the input + // string will be unchanged. The $(VAR_NAME) syntax can be escaped with a + // double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, + // regardless of whether the variable exists or not. + // More info: + // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell + repeated string command = 3; + + // Arguments to the entrypoint. + // The docker image's CMD is used if this is not provided. + // Variable references $(VAR_NAME) are expanded using the container's + // environment. If a variable cannot be resolved, the reference in the input + // string will be unchanged. The $(VAR_NAME) syntax can be escaped with a + // double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, + // regardless of whether the variable exists or not. + // More info: + // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell + repeated string args = 4; + + // List of environment variables to set in the container. + repeated EnvVar env = 5; + + // Compute Resource requirements by this container. + // More info: + // https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + ResourceRequirements resources = 6; + + // List of ports to expose from the container. Only a single port can be + // specified. The specified ports must be listening on all interfaces + // (0.0.0.0) within the container to be accessible. + // + // If omitted, a port number will be chosen and passed to the container + // through the PORT environment variable for the container to listen on. + repeated ContainerPort ports = 7; + + // Volume to mount into the container's filesystem. + repeated VolumeMount volume_mounts = 8; +} + +// ResourceRequirements describes the compute resource requirements. +message ResourceRequirements { + // Only memory and CPU are supported. Note: The only + // supported values for CPU are '1', '2', and '4'. Setting 4 CPU requires at + // least 2Gi of memory. + // The values of the map is string form of the 'quantity' k8s type: + // https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go + map limits = 1; + + // Determines whether CPU should be throttled or not outside of requests. + bool cpu_idle = 2; +} + +// EnvVar represents an environment variable present in a Container. +message EnvVar { + // Required. Name of the environment variable. Must be a C_IDENTIFIER, and mnay not + // exceed 32768 characters. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + oneof values { + // Variable references $(VAR_NAME) are expanded + // using the previous defined environment variables in the container and + // any route environment variables. If a variable cannot be resolved, + // the reference in the input string will be unchanged. The $(VAR_NAME) + // syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped + // references will never be expanded, regardless of whether the variable + // exists or not. + // Defaults to "", and the maximum length is 32768 bytes. + string value = 2; + + // Source for the environment variable's value. + EnvVarSource value_source = 3; + } +} + +// EnvVarSource represents a source for the value of an EnvVar. +message EnvVarSource { + // Selects a secret and a specific version from Cloud Secret Manager. + SecretKeySelector secret_key_ref = 1; +} + +// SecretEnvVarSource represents a source for the value of an EnvVar. +message SecretKeySelector { + // Required. The name of the secret in Cloud Secret Manager. + // Format: {secret_name} if the secret is in the same project. + // projects/{project}/secrets/{secret_name} if the secret is + // in a different project. + string secret = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/Secret" + } + ]; + + // The Cloud Secret Manager secret version. + // Can be 'latest' for the latest value or an integer for a specific version. + string version = 2 [(google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + }]; +} + +// ContainerPort represents a network port in a single container. +message ContainerPort { + // If specified, used to specify which protocol to use. + // Allowed values are "http1" and "h2c". + string name = 1; + + // Port number the container listens on. + // This must be a valid TCP port number, 0 < container_port < 65536. + int32 container_port = 3; +} + +// VolumeMount describes a mounting of a Volume within a container. +message VolumeMount { + // Required. This must match the Name of a Volume. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Path within the container at which the volume should be mounted. Must + // not contain ':'. For Cloud SQL volumes, it can be left empty, or must + // otherwise be `/cloudsql`. All instances defined in the Volume will be + // available as `/cloudsql/[instance]`. For more information on Cloud SQL + // volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run + string mount_path = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Volume represents a named volume in a container. +message Volume { + // Required. Volume's name. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + oneof volume_type { + // Secret represents a secret that should populate this volume. + // More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + SecretVolumeSource secret = 2; + + // For Cloud SQL volumes, contains the specific instances that should be + // mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for + // more information on how to connect Cloud SQL and Cloud Run. + CloudSqlInstance cloud_sql_instance = 3; + } +} + +// The secret's value will be presented as the content of a file whose +// name is defined in the item path. If no items are defined, the name of +// the file is the secret. +message SecretVolumeSource { + // Required. The name of the secret in Cloud Secret Manager. + // Format: {secret} if the secret is in the same project. + // projects/{project}/secrets/{secret} if the secret is + // in a different project. + string secret = 1 [(google.api.field_behavior) = REQUIRED]; + + // If unspecified, the volume will expose a file whose name is the + // secret, relative to VolumeMount.mount_path. + // If specified, the key will be used as the version to fetch from Cloud + // Secret Manager and the path will be the name of the file exposed in the + // volume. When items are defined, they must specify a path and a version. + repeated VersionToPath items = 2; + + // Integer representation of mode bits to use on created files by default. + // Must be a value between 0000 and 0777 (octal), defaulting to 0644. + // Directories within the path are not affected by this setting. + // + // Notes + // + // * Internally, a umask of 0222 will be applied to any non-zero value. + // * This is an integer representation of the mode bits. So, the octal + // integer value should look exactly as the chmod numeric notation with a + // leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or + // 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or + // 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 + // (base-10). + // * This might be in conflict with other options that affect the + // file mode, like fsGroup, and the result can be other mode bits set. + // + // This might be in conflict with other options that affect the + // file mode, like fsGroup, and as a result, other mode bits could be set. + int32 default_mode = 3; +} + +// VersionToPath maps a specific version of a secret to a relative file to mount +// to, relative to VolumeMount's mount_path. +message VersionToPath { + // Required. The relative path of the secret in the container. + string path = 1 [(google.api.field_behavior) = REQUIRED]; + + // The Cloud Secret Manager secret version. + // Can be 'latest' for the latest value or an integer for a specific version. + string version = 2; + + // Integer octal mode bits to use on this file, must be a value between + // 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be + // used. + // + // Notes + // + // * Internally, a umask of 0222 will be applied to any non-zero value. + // * This is an integer representation of the mode bits. So, the octal + // integer value should look exactly as the chmod numeric notation with a + // leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or + // 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or + // 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 + // (base-10). + // * This might be in conflict with other options that affect the + // file mode, like fsGroup, and the result can be other mode bits set. + int32 mode = 3; +} + +// Represents a specific Cloud SQL instance. +message CloudSqlInstance { + // The Cloud SQL instance connection names, as can be found in + // https://console.cloud.google.com/sql/instances. Visit + // https://cloud.google.com/sql/docs/mysql/connect-run for more information on + // how to connect Cloud SQL and Cloud Run. Format: + // {project}:{location}:{instance} + repeated string instances = 1; +} diff --git a/google/cloud/run/v2/revision.proto b/google/cloud/run/v2/revision.proto new file mode 100644 index 000000000..0cb674e81 --- /dev/null +++ b/google/cloud/run/v2/revision.proto @@ -0,0 +1,278 @@ +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +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/k8s.min.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/run/v2;run"; +option java_multiple_files = true; +option java_outer_classname = "RevisionProto"; +option java_package = "com.google.cloud.run.v2"; + +// Cloud Run Revision Control Plane API. +service Revisions { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Gets information about a Revision. + rpc GetRevision(GetRevisionRequest) returns (Revision) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/services/*/revisions/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + } + + // List Revisions from a given Service, or from a given location. + rpc ListRevisions(ListRevisionsRequest) returns (ListRevisionsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*/services/*}/revisions" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Delete a Revision. + rpc DeleteRevision(DeleteRevisionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/services/*/revisions/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Revision" + metadata_type: "Revision" + }; + } +} + +// Request message for obtaining a Revision by its full name. +message GetRevisionRequest { + // Required. The full name of the Revision. + // Format: + // projects/{project}/locations/{location}/services/{service}/revisions/{revision} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "run.googleapis.com/Revision" + } + ]; +} + +// Request message for retrieving a list of Revisions. +message ListRevisionsRequest { + // Required. The Service from which the Revisions should be listed. + // To list all Revisions across Services, use "-" instead of Service name. + // Format: + // projects/{project}/locations/{location}/services/{service} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/Revision" + } + ]; + + // Maximum number of revisions to return in this call. + int32 page_size = 2; + + // A page token received from a previous call to ListRevisions. + // All other parameters must match. + string page_token = 3; + + // If true, returns deleted (but unexpired) resources along with active ones. + bool show_deleted = 4; +} + +// Response message containing a list of Revisions. +message ListRevisionsResponse { + // The resulting list of Revisions. + repeated Revision revisions = 1; + + // A token indicating there are more items than page_size. Use it in the next + // ListRevisions request to continue. + string next_page_token = 2; +} + +// Request message for deleting a retired Revision. +// Revision lifecycle is usually managed by making changes to the parent +// Service. Only retired revisions can be deleted with this API. +message DeleteRevisionRequest { + // Required. The name of the Revision to delete. + // Format: + // projects/{project}/locations/{location}/services/{service}/revisions/{revision} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "run.googleapis.com/Revision" + } + ]; + + // Indicates that the request should be validated without actually + // deleting any resources. + bool validate_only = 2; + + // A system-generated fingerprint for this version of the + // resource. This may be used to detect modification conflict during updates. + string etag = 3; +} + +// A Revision is an immutable snapshot of code and configuration. A Revision +// references a container image. Revisions are only created by updates to its +// parent Service. +message Revision { + option (google.api.resource) = { + type: "run.googleapis.com/Revision" + pattern: "projects/{project}/locations/{location}/services/{service}/revisions/{revision}" + style: DECLARATIVE_FRIENDLY + }; + + // Output only. The unique name of this Revision. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server assigned unique identifier for the Revision. The value is a UUID4 + // string and guaranteed to remain unchanged until the resource is deleted. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that monotonically increases every time the user + // modifies the desired state. + int64 generation = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // KRM-style labels for the resource. + // 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 + // Cloud Run will populate some labels with 'run.googleapis.com' or + // 'serving.knative.dev' namespaces. Those labels are read-only, and user + // changes will not be preserved. + map labels = 4; + + // KRM-style annotations for the resource. + map annotations = 5; + + // Output only. The creation time. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, 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]; + + // Output only. For a deleted resource, the time after which it will be + // permamently deleted. It is only populated as a response to a Delete + // request. + google.protobuf.Timestamp expire_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set the launch stage to a preview stage on write to allow use of preview + // features in that stage. On read, describes whether the resource uses + // preview features. Launch Stages are defined at [Google Cloud Platform + // Launch Stages](https://cloud.google.com/terms/launch-stages). + google.api.LaunchStage launch_stage = 10; + + // Output only. The name of the parent service. + string service = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "run.googleapis.com/Service" + } + ]; + + // Scaling settings for this revision. + RevisionScaling scaling = 12; + + // VPC Access configuration for this Revision. For more information, visit + // https://cloud.google.com/run/docs/configuring/connecting-vpc. + VpcAccess vpc_access = 13; + + // Sets the maximum number of requests that each serving instance can receive. + int32 max_instance_request_concurrency = 34; + + // Max allowed time for an instance to respond to a request. + google.protobuf.Duration timeout = 15; + + // 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. + string service_account = 16; + + // Holds the single container that defines the unit of execution for this + // Revision. + repeated Container containers = 17; + + // A list of Volumes to make available to containers. + repeated Volume volumes = 18; + + // The execution environment being used to host this Revision. + ExecutionEnvironment execution_environment = 20; + + // A reference to a customer managed encryption key (CMEK) to use to encrypt + // this container image. For more information, go to + // https://cloud.google.com/run/docs/securing/using-cmek + string encryption_key = 21 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; + + // Output only. Indicates whether the resource's reconciliation is still in progress. + // See comments in `Service.reconciling` for additional information on + // reconciliation process in Cloud Run. + bool reconciling = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Condition of this Revision, containing its readiness status, and + // detailed error information in case it did not reach a serving state. + repeated Condition conditions = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The generation of this Revision currently serving traffic. See comments in + // `reconciling` for additional information on reconciliation process in Cloud + // Run. + int64 observed_generation = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Google Console URI to obtain logs for the Revision. + string log_uri = 33 [(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/google/cloud/run/v2/revision_template.proto b/google/cloud/run/v2/revision_template.proto new file mode 100644 index 000000000..f20fb5eb6 --- /dev/null +++ b/google/cloud/run/v2/revision_template.proto @@ -0,0 +1,79 @@ +// 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.cloud.run.v2; + +import "google/api/resource.proto"; +import "google/cloud/run/v2/k8s.min.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/run/v2;run"; +option java_multiple_files = true; +option java_outer_classname = "RevisionTemplateProto"; +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. + string revision = 1 [(google.api.resource_reference) = { + type: "run.googleapis.com/Revision" + }]; + + // KRM-style labels for the resource. + map labels = 2; + + // KRM-style annotations for the resource. + map annotations = 3; + + // Scaling settings for this Revision. + RevisionScaling scaling = 4; + + // 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; + + // Max allowed time for an instance to respond to a request. + google.protobuf.Duration timeout = 8; + + // 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; + + // 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; + + // The sandbox environment to host this Revision. + ExecutionEnvironment execution_environment = 13; + + // A reference to a customer managed encryption key (CMEK) to use to encrypt + // this container image. For more information, go to + // https://cloud.google.com/run/docs/securing/using-cmek + string encryption_key = 14 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; + + // Sets the maximum number of requests that each serving instance can receive. + int32 max_instance_request_concurrency = 15; +} diff --git a/google/cloud/run/v2/run_grpc_service_config.json b/google/cloud/run/v2/run_grpc_service_config.json new file mode 100644 index 000000000..a41881b2b --- /dev/null +++ b/google/cloud/run/v2/run_grpc_service_config.json @@ -0,0 +1,29 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.run.v2.Services", "method": "ListServices" }, + { "service": "google.cloud.run.v2.Services", "method": "GetService" } + ], + "timeout": "10s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.run.v2.Services", "method": "CreateService" }, + { "service": "google.cloud.run.v2.Services", "method": "UpdateService" } + ], + "timeout": "15s" + }, + { + "name": [ + { "service": "google.cloud.run.v2.Services", "method": "DeleteService" } + ], + "timeout": "10s" + }] +} diff --git a/google/cloud/run/v2/run_v2.yaml b/google/cloud/run/v2/run_v2.yaml new file mode 100644 index 000000000..7abc23c00 --- /dev/null +++ b/google/cloud/run/v2/run_v2.yaml @@ -0,0 +1,37 @@ +type: google.api.Service +config_version: 3 +name: run.googleapis.com +title: Cloud Run Admin API + +apis: +- name: google.cloud.run.v2.Revisions +- name: google.cloud.run.v2.Services + +documentation: + rules: + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v2/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v2/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v2/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.run.v2.Revisions.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.run.v2.Services.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/run/v2/service.proto b/google/cloud/run/v2/service.proto new file mode 100644 index 000000000..51a29edc0 --- /dev/null +++ b/google/cloud/run/v2/service.proto @@ -0,0 +1,435 @@ +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +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/revision_template.proto"; +import "google/cloud/run/v2/traffic_target.proto"; +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/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/run/v2;run"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.google.cloud.run.v2"; + +// Cloud Run Service Control Plane API +service Services { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new Service in a given project and location. + rpc CreateService(CreateServiceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/services" + body: "service" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent,service,service_id"; + option (google.longrunning.operation_info) = { + response_type: "Service" + metadata_type: "Service" + }; + } + + // Gets information about a Service. + rpc GetService(GetServiceRequest) returns (Service) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/services/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + } + + // List Services. + rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/services" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a Service. + rpc UpdateService(UpdateServiceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{service.name=projects/*/locations/*/services/*}" + body: "service" + }; + option (google.api.routing) = { + routing_parameters { + field: "service.name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "service"; + option (google.longrunning.operation_info) = { + response_type: "Service" + metadata_type: "Service" + }; + } + + // Deletes a Service. + // This will cause the Service to stop serving traffic and will delete all + // revisions. + rpc DeleteService(DeleteServiceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/services/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Service" + metadata_type: "Service" + }; + } + + // Get the IAM Access Control policy currently in effect for the given + // Cloud Run Service. This result does not include any inherited policies. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + get: "/v2/{resource=projects/*/locations/*/services/*}:getIamPolicy" + }; + } + + // Sets the IAM Access control policy for the specified Service. Overwrites + // any existing policy. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v2/{resource=projects/*/locations/*/services/*}:setIamPolicy" + body: "*" + }; + } + + // Returns permissions that a caller has on the specified Project. + // + // There are no permissions required for making this API call. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v2/{resource=projects/*/locations/*/services/*}:testIamPermissions" + body: "*" + }; + } +} + +// Request message for creating a Service. +message CreateServiceRequest { + // Required. The location and project in which this service should be created. + // Format: projects/{projectnumber}/locations/{location} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/Service" + } + ]; + + // Required. The Service instance to create. + Service service = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The unique identifier for the Service. The name of the service becomes + // {parent}/services/{service_id}. + string service_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Indicates that the request should be validated and default values + // populated, without persisting the request or creating any resources. + bool validate_only = 4; +} + +// Request message for updating a service. +message UpdateServiceRequest { + // Required. The Service to be updated. + Service service = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates that the request should be validated and default values + // 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. Caller must have both create and update permissions for this call if + // this is set to true. + bool allow_missing = 4; +} + +// Request message for retrieving a list of Services. +message ListServicesRequest { + // Required. The location and project to list resources on. + // Location must be a valid GCP region, and may not be the "-" wildcard. + // Format: projects/{projectnumber}/locations/{location} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/Service" + } + ]; + + // Maximum number of Services to return in this call. + int32 page_size = 2; + + // A page token received from a previous call to ListServices. + // All other parameters must match. + string page_token = 3; + + // If true, returns deleted (but unexpired) resources along with active ones. + bool show_deleted = 4; +} + +// Response message containing a list of Services. +message ListServicesResponse { + // The resulting list of Services. + repeated Service services = 1; + + // A token indicating there are more items than page_size. Use it in the next + // ListServices request to continue. + string next_page_token = 2; +} + +// Request message for obtaining a Service by its full name. +message GetServiceRequest { + // Required. The full name of the Service. + // Format: projects/{projectnumber}/locations/{location}/services/{service} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "run.googleapis.com/Service" + } + ]; +} + +// Request message to delete a Service by its full name. +message DeleteServiceRequest { + // Required. The full name of the Service. + // Format: projects/{projectnumber}/locations/{location}/services/{service} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "run.googleapis.com/Service" + } + ]; + + // Indicates that the request should be validated without actually + // deleting any resources. + bool validate_only = 2; + + // A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 3; +} + +// Service acts as a top-level container that manages a set of +// configurations and revision templates which implement a network service. +// Service exists to provide a singular abstraction which can be access +// controlled, reasoned about, and which encapsulates software lifecycle +// decisions such as rollout policy and team resource ownership. +message Service { + option (google.api.resource) = { + type: "run.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/services/{service}" + style: DECLARATIVE_FRIENDLY + }; + + // The fully qualified name of this Service. In CreateServiceRequest, this + // field is ignored, and instead composed from CreateServiceRequest.parent and + // CreateServiceRequest.service_id. + // + // Format: + // projects/{project}/locations/{location}/services/{service_id} + string name = 1; + + // User-provided description of the Service. This field currently has a + // 512-character limit. + string description = 2; + + // Output only. Server assigned unique identifier for the trigger. The value is a UUID4 + // string and guaranteed to remain unchanged until the resource is deleted. + string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that monotonically increases every time the user + // modifies the desired state. + // Please note that unlike v1, this is an int64 value. As with most Google + // APIs, its JSON representation will be a `string` instead of an `integer`. + int64 generation = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Map of string keys and values 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 + // Cloud Run will populate some labels with 'run.googleapis.com' or + // 'serving.knative.dev' namespaces. Those labels are read-only, and user + // changes will not be preserved. + map labels = 5; + + // 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 will populate some annotations using + // 'run.googleapis.com' or 'serving.knative.dev' namespaces. This field + // follows Kubernetes annotations' namespacing, limits, and rules. More info: + // https://kubernetes.io/docs/user-guide/annotations + map annotations = 6; + + // Output only. The creation time. + google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The deletion time. + google.protobuf.Timestamp delete_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the time after which it will be + // permamently deleted. + google.protobuf.Timestamp expire_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the authenticated creator. + string creator = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the last authenticated modifier. + string last_modifier = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Arbitrary identifier for the API client. + string client = 13; + + // 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; + + // 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. + google.api.LaunchStage launch_stage = 16; + + // Settings for the Binary Authorization feature. + BinaryAuthorization binary_authorization = 17; + + // 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; + + // Output only. The generation of this Service currently serving traffic. See comments in + // `reconciling` for additional information on reconciliation process in Cloud + // Run. + // Please note that unlike v1, this is an int64 value. As with most Google + // APIs, its JSON representation will be a `string` instead of an `integer`. + int64 observed_generation = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Condition of this Service, containing its readiness status, and + // detailed error information in case it did not reach a serving state. See + // comments in `reconciling` for additional information on reconciliation + // process in Cloud Run. + Condition terminal_condition = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Conditions of all other associated sub-resources. They contain + // additional diagnostics information in case the Service does not reach its + // Serving state. See comments in `reconciling` for additional information on + // reconciliation process in Cloud Run. + repeated Condition conditions = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the latest revision that is serving traffic. See comments in + // `reconciling` for additional information on reconciliation process in Cloud + // Run. + string latest_ready_revision = 33 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "run.googleapis.com/Revision" + } + ]; + + // Output only. Name of the last created revision. See comments in `reconciling` for + // additional information on reconciliation process in Cloud Run. + string latest_created_revision = 34 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "run.googleapis.com/Revision" + } + ]; + + // Output only. Detailed status information for corresponding traffic targets. See comments + // in `reconciling` for additional information on reconciliation process in + // Cloud Run. + repeated TrafficTargetStatus traffic_statuses = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The main URI in which this Service is serving traffic. + string uri = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Returns true if the Service is currently being acted upon by the system to + // bring it into the desired state. + // + // When a new Service is created, or an existing one is updated, Cloud Run + // will asynchronously perform all necessary steps to bring the Service to the + // desired serving state. This process is called reconciliation. + // While reconciliation is in process, `observed_generation`, + // `latest_ready_revison`, `traffic_statuses`, and `uri` will have transient + // values that might mismatch the intended state: Once reconciliation is over + // (and this field is false), there are two possible outcomes: reconciliation + // succeeded and the serving state matches the Service, or there was an error, + // and reconciliation failed. This state can be found in + // `terminal_condition.state`. + // + // If reconciliation succeeded, the following fields will match: `traffic` and + // `traffic_statuses`, `observed_generation` and `generation`, + // `latest_ready_revision` and `latest_created_revision`. + // + // If reconciliation failed, `traffic_statuses`, `observed_generation`, and + // `latest_ready_revision` will have the state of the last serving revision, + // or empty for newly created Services. Additional information on the failure + // can be found in `terminal_condition` and `conditions`. + bool reconciling = 98 [(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/google/cloud/run/v2/traffic_target.proto b/google/cloud/run/v2/traffic_target.proto new file mode 100644 index 000000000..18a8c7d99 --- /dev/null +++ b/google/cloud/run/v2/traffic_target.proto @@ -0,0 +1,77 @@ +// 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.cloud.run.v2; + +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/run/v2;run"; +option java_multiple_files = true; +option java_outer_classname = "TrafficTargetProto"; +option java_package = "com.google.cloud.run.v2"; + +// Holds a single traffic routing entry for the Service. Allocations can be done +// to a specific Revision name, or pointing to the latest Ready Revision. +message TrafficTarget { + // The allocation type for this traffic target. + TrafficTargetAllocationType type = 1; + + // Revision to which to send this portion of traffic, if traffic allocation is + // by revision. + string revision = 2 [(google.api.resource_reference) = { + type: "run.googleapis.com/Revision" + }]; + + // Specifies percent of the traffic to this Revision. + // This defaults to zero if unspecified. + int32 percent = 3; + + // Indicates a string to be part of the URI to exclusively reference this + // target. + string tag = 4; +} + +// Represents the observed state of a single `TrafficTarget` entry. +message TrafficTargetStatus { + // The allocation type for this traffic target. + TrafficTargetAllocationType type = 1; + + // Revision to which this traffic is sent. + string revision = 2 [(google.api.resource_reference) = { + type: "run.googleapis.com/Revision" + }]; + + // Specifies percent of the traffic to this Revision. + int32 percent = 3; + + // Indicates the string used in the URI to exclusively reference this target. + string tag = 4; + + // Displays the target URI. + string uri = 5; +} + +// The type of instance allocation. +enum TrafficTargetAllocationType { + // Unspecified instance allocation type. + TRAFFIC_TARGET_ALLOCATION_TYPE_UNSPECIFIED = 0; + + // Allocates instances to the Service's latest ready Revision. + TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST = 1; + + // Allocates instances to a Revision by name. + TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION = 2; +} diff --git a/google/cloud/run/v2/vendor_settings.proto b/google/cloud/run/v2/vendor_settings.proto new file mode 100644 index 000000000..89748d5c7 --- /dev/null +++ b/google/cloud/run/v2/vendor_settings.proto @@ -0,0 +1,102 @@ +// 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.cloud.run.v2; + +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/run/v2;run"; +option java_multiple_files = true; +option java_outer_classname = "VendorSettingsProto"; +option java_package = "com.google.cloud.run.v2"; + +// VPC Access settings. For more information on creating a VPC Connector, visit +// https://cloud.google.com/vpc/docs/configure-serverless-vpc-access For +// information on how to configure Cloud Run with an existing VPC Connector, +// visit https://cloud.google.com/run/docs/configuring/connecting-vpc +message VpcAccess { + // Egress options for VPC access. + enum VpcEgress { + // Unspecified + VPC_EGRESS_UNSPECIFIED = 0; + + // All outbound traffic is routed through the VPC connector. + ALL_TRAFFIC = 1; + + // Only private IP ranges are routed through the VPC connector. + PRIVATE_RANGES_ONLY = 2; + } + + // VPC Access connector name. + // Format: projects/{project}/locations/{location}/connectors/{connector} + string connector = 1 [(google.api.resource_reference) = { + type: "vpcaccess.googleapis.com/Connector" + }]; + + // Traffic VPC egress settings. + VpcEgress egress = 2; +} + +// 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; + } + + // 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; +} + +// Settings for revision-level scaling settings. +message RevisionScaling { + // Minimum number of serving instances that this resource should have. + int32 min_instance_count = 1; + + // Maximum number of serving instances that this resource should have. + int32 max_instance_count = 2; +} + +// Allowed ingress traffic for the Container. +enum IngressTraffic { + // Unspecified + INGRESS_TRAFFIC_UNSPECIFIED = 0; + + // All inbound traffic is allowed. + INGRESS_TRAFFIC_ALL = 1; + + // Only internal traffic is allowed. + INGRESS_TRAFFIC_INTERNAL_ONLY = 2; + + // Both internal and Google Cloud Load Balancer traffic is allowed. + INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER = 3; +} + +// Alternatives for execution environments. +enum ExecutionEnvironment { + // Unspecified + EXECUTION_ENVIRONMENT_UNSPECIFIED = 0; + + // Uses the First Generation environment. + EXECUTION_ENVIRONMENT_GEN1 = 1; + + // Uses Second Generation environment. + EXECUTION_ENVIRONMENT_GEN2 = 2; +} diff --git a/google/cloud/scheduler/v1/BUILD.bazel b/google/cloud/scheduler/v1/BUILD.bazel index 5c36c7eb4..f5afd87a8 100644 --- a/google/cloud/scheduler/v1/BUILD.bazel +++ b/google/cloud/scheduler/v1/BUILD.bazel @@ -67,6 +67,7 @@ java_gapic_library( test_deps = [ ":scheduler_java_grpc", ], + transport = "grpc+rest", deps = [ ":scheduler_java_proto", ], @@ -75,6 +76,7 @@ java_gapic_library( java_gapic_test( name = "scheduler_java_gapic_test_suite", test_classes = [ + "com.google.cloud.scheduler.v1.CloudSchedulerClientHttpJsonTest", "com.google.cloud.scheduler.v1.CloudSchedulerClientTest", ], runtime_deps = [":scheduler_java_gapic_test"], @@ -83,6 +85,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-scheduler-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":scheduler_java_gapic", ":scheduler_java_grpc", @@ -119,6 +123,7 @@ go_gapic_library( grpc_service_config = "cloudscheduler_grpc_service_config.json", importpath = "cloud.google.com/go/scheduler/apiv1;scheduler", service_yaml = "cloudscheduler_v1.yaml", + transport = "grpc+rest", deps = [ ":scheduler_go_proto", ], @@ -148,12 +153,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "scheduler_py_gapic", srcs = [":scheduler_proto"], grpc_service_config = "cloudscheduler_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "scheduler_py_gapic_test", + srcs = [ + "scheduler_py_gapic_pytest.py", + "scheduler_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":scheduler_py_gapic"], ) # Open Source Packages @@ -313,6 +330,7 @@ csharp_gapic_library( srcs = [":scheduler_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudscheduler_grpc_service_config.json", + service_yaml = "cloudscheduler_v1.yaml", deps = [ ":scheduler_csharp_grpc", ":scheduler_csharp_proto", diff --git a/google/cloud/scheduler/v1/job.proto b/google/cloud/scheduler/v1/job.proto index d26070266..7e43ff164 100644 --- a/google/cloud/scheduler/v1/job.proto +++ b/google/cloud/scheduler/v1/job.proto @@ -22,7 +22,6 @@ import "google/cloud/scheduler/v1/target.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/scheduler/v1;scheduler"; option java_multiple_files = true; diff --git a/google/cloud/scheduler/v1/target.proto b/google/cloud/scheduler/v1/target.proto index 9a8f32f7c..07466ce97 100644 --- a/google/cloud/scheduler/v1/target.proto +++ b/google/cloud/scheduler/v1/target.proto @@ -18,7 +18,6 @@ syntax = "proto3"; package google.cloud.scheduler.v1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/scheduler/v1;scheduler"; option java_multiple_files = true; diff --git a/google/cloud/scheduler/v1beta1/BUILD.bazel b/google/cloud/scheduler/v1beta1/BUILD.bazel index 5df819700..3a6e1b92b 100644 --- a/google/cloud/scheduler/v1beta1/BUILD.bazel +++ b/google/cloud/scheduler/v1beta1/BUILD.bazel @@ -67,6 +67,7 @@ java_gapic_library( test_deps = [ ":scheduler_java_grpc", ], + transport = "grpc+rest", deps = [ ":scheduler_java_proto", ], @@ -75,6 +76,7 @@ java_gapic_library( java_gapic_test( name = "scheduler_java_gapic_test_suite", test_classes = [ + "com.google.cloud.scheduler.v1beta1.CloudSchedulerClientHttpJsonTest", "com.google.cloud.scheduler.v1beta1.CloudSchedulerClientTest", ], runtime_deps = [":scheduler_java_gapic_test"], @@ -83,6 +85,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-scheduler-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":scheduler_java_gapic", ":scheduler_java_grpc", @@ -119,6 +123,7 @@ go_gapic_library( grpc_service_config = "cloudscheduler_grpc_service_config.json", importpath = "cloud.google.com/go/scheduler/apiv1beta1;scheduler", service_yaml = "cloudscheduler_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":scheduler_go_proto", ], @@ -148,12 +153,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "scheduler_py_gapic", srcs = [":scheduler_proto"], grpc_service_config = "cloudscheduler_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "scheduler_py_gapic_test", + srcs = [ + "scheduler_py_gapic_pytest.py", + "scheduler_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":scheduler_py_gapic"], ) # Open Source Packages @@ -313,6 +330,7 @@ csharp_gapic_library( srcs = [":scheduler_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudscheduler_grpc_service_config.json", + service_yaml = "cloudscheduler_v1beta1.yaml", deps = [ ":scheduler_csharp_grpc", ":scheduler_csharp_proto", diff --git a/google/cloud/scheduler/v1beta1/job.proto b/google/cloud/scheduler/v1beta1/job.proto index ddfda31ed..4e8e3777f 100644 --- a/google/cloud/scheduler/v1beta1/job.proto +++ b/google/cloud/scheduler/v1beta1/job.proto @@ -22,7 +22,6 @@ import "google/cloud/scheduler/v1beta1/target.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1;scheduler"; option java_multiple_files = true; diff --git a/google/cloud/scheduler/v1beta1/target.proto b/google/cloud/scheduler/v1beta1/target.proto index 4b47e3567..7f5214f59 100644 --- a/google/cloud/scheduler/v1beta1/target.proto +++ b/google/cloud/scheduler/v1beta1/target.proto @@ -18,7 +18,6 @@ syntax = "proto3"; package google.cloud.scheduler.v1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1;scheduler"; option java_multiple_files = true; diff --git a/google/cloud/secretmanager/v1/BUILD.bazel b/google/cloud/secretmanager/v1/BUILD.bazel index 6c1b61962..e2ab76d44 100644 --- a/google/cloud/secretmanager/v1/BUILD.bazel +++ b/google/cloud/secretmanager/v1/BUILD.bazel @@ -77,6 +77,7 @@ java_gapic_library( ":secretmanager_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":secretmanager_java_proto", "//google/iam/v1:iam_java_proto", @@ -86,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "secretmanager_java_gapic_test_suite", test_classes = [ + "com.google.cloud.secretmanager.v1.SecretManagerServiceClientHttpJsonTest", "com.google.cloud.secretmanager.v1.SecretManagerServiceClientTest", ], runtime_deps = [":secretmanager_java_gapic_test"], @@ -94,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-secretmanager-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":secretmanager_java_gapic", ":secretmanager_java_grpc", @@ -131,6 +135,7 @@ go_gapic_library( importpath = "cloud.google.com/go/secretmanager/apiv1;secretmanager", metadata = True, service_yaml = "secretmanager_v1.yaml", + transport = "grpc+rest", deps = [ ":secretmanager_go_proto", "//google/iam/v1:iam_go_proto", @@ -163,12 +168,30 @@ 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", + opt_args = [ + "warehouse-package-name=google-cloud-secret-manager", + ], + transport = "grpc", + 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 @@ -327,6 +350,7 @@ csharp_gapic_library( srcs = [":secretmanager_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "secretmanager_grpc_service_config.json", + service_yaml = "secretmanager_v1.yaml", deps = [ ":secretmanager_csharp_grpc", ":secretmanager_csharp_proto", diff --git a/google/cloud/secretmanager/v1/resources.proto b/google/cloud/secretmanager/v1/resources.proto index 9b1896926..4b50a6715 100644 --- a/google/cloud/secretmanager/v1/resources.proto +++ b/google/cloud/secretmanager/v1/resources.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.SecretManager.V1"; @@ -97,6 +96,19 @@ message Secret { // Optional. Rotation policy attached to the [Secret][google.cloud.secretmanager.v1.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. At launch access by alias will only be supported on + // GetSecretVersion and AccessSecretVersion. + map version_aliases = 11 [(google.api.field_behavior) = OPTIONAL]; } // A secret version resource in the Secret Manager API. @@ -147,6 +159,11 @@ message SecretVersion { // Output only. Etag of the currently stored [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. string etag = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if payload checksum specified in [SecretPayload][google.cloud.secretmanager.v1.SecretPayload] object has been + // received by [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] on + // [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]. + bool client_specified_payload_checksum = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A policy that defines the replication and encryption configuration of data. @@ -313,4 +330,16 @@ message Rotation { message SecretPayload { // The secret data. Must be no larger than 64KiB. bytes data = 1; + + // Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the + // received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using + // the crc32c checksum and store it to include in future + // [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is + // not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the + // [SecretManagerService][google.cloud.secretmanager.v1.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/google/cloud/secrets/v1beta1/BUILD.bazel b/google/cloud/secrets/v1beta1/BUILD.bazel index 674b56d6d..aa69c8db2 100644 --- a/google/cloud/secrets/v1beta1/BUILD.bazel +++ b/google/cloud/secrets/v1beta1/BUILD.bazel @@ -65,6 +65,7 @@ java_gapic_library( ":secretmanager_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":secretmanager_java_proto", "//google/iam/v1:iam_java_proto", @@ -74,6 +75,7 @@ java_gapic_library( java_gapic_test( name = "secretmanager_java_gapic_test_suite", test_classes = [ + "com.google.cloud.secretmanager.v1beta1.SecretManagerServiceClientHttpJsonTest", "com.google.cloud.secretmanager.v1beta1.SecretManagerServiceClientTest", ], runtime_deps = [":secretmanager_java_gapic_test"], @@ -82,6 +84,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-secretmanager-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":secretmanager_java_gapic", ":secretmanager_java_grpc", @@ -118,6 +122,7 @@ go_gapic_library( grpc_service_config = "secretmanager_grpc_service_config.json", importpath = "cloud.google.com/go/secretmanager/apiv1beta1;secretmanager", service_yaml = "//google/cloud/secrets/v1beta1:secretmanager_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":secretmanager_go_proto", "//google/iam/v1:iam_go_proto", @@ -148,6 +153,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -158,6 +164,20 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=secretmanager", ], + transport = "grpc", + 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"], ) py_gapic_assembly_pkg( @@ -315,6 +335,7 @@ csharp_gapic_library( srcs = [":secretmanager_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "secretmanager_grpc_service_config.json", + service_yaml = "//google/cloud/secrets/v1beta1:secretmanager_v1beta1.yaml", deps = [ ":secretmanager_csharp_grpc", ":secretmanager_csharp_proto", diff --git a/google/cloud/secrets/v1beta1/resources.proto b/google/cloud/secrets/v1beta1/resources.proto index 4819addd5..fbdad0a51 100644 --- a/google/cloud/secrets/v1beta1/resources.proto +++ b/google/cloud/secrets/v1beta1/resources.proto @@ -19,7 +19,6 @@ package google.cloud.secrets.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.SecretManager.V1Beta1"; diff --git a/google/cloud/security/privateca/BUILD.bazel b/google/cloud/security/privateca/BUILD.bazel index b6797425e..25f5fe9f6 100644 --- a/google/cloud/security/privateca/BUILD.bazel +++ b/google/cloud/security/privateca/BUILD.bazel @@ -15,15 +15,15 @@ load( # Generates a Ruby wrapper client for privateca. # Ruby wrapper clients are versionless, but are generated from source protos -# for a particular service version, v1beta1 in this case. +# for a particular service version, v1 in this case. ruby_cloud_gapic_library( name = "privateca_ruby_wrapper", - srcs = ["//google/cloud/security/privateca/v1beta1:privateca_proto_with_info"], + srcs = ["//google/cloud/security/privateca/v1:privateca_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-security-private_ca", "ruby-cloud-gem-namespace=Google::Cloud::Security::PrivateCA", "ruby-cloud-env-prefix=PRIVATE_CA", - "ruby-cloud-wrapper-of=v1:0.0;v1beta1:0.0", + "ruby-cloud-wrapper-of=v1:0.3;v1beta1:0.0", "ruby-cloud-product-url=https://cloud.google.com/certificate-authority-service/", "ruby-cloud-api-id=privateca.googleapis.com", "ruby-cloud-api-shortname=privateca", diff --git a/google/cloud/security/privateca/v1/BUILD.bazel b/google/cloud/security/privateca/v1/BUILD.bazel index bf20dc3d4..b404eeade 100644 --- a/google/cloud/security/privateca/v1/BUILD.bazel +++ b/google/cloud/security/privateca/v1/BUILD.bazel @@ -42,9 +42,9 @@ proto_library_with_info( deps = [ ":privateca_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", "//google/iam/v1:iam_policy_proto", "//google/iam/v1:policy_proto", - "//google/cloud/location:location_proto", ], ) @@ -82,6 +82,7 @@ java_gapic_library( "//google/cloud/location:location_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":privateca_java_proto", "//google/api:api_java_proto", @@ -93,6 +94,7 @@ java_gapic_library( java_gapic_test( name = "privateca_java_gapic_test_suite", test_classes = [ + "com.google.cloud.security.privateca.v1.CertificateAuthorityServiceClientHttpJsonTest", "com.google.cloud.security.privateca.v1.CertificateAuthorityServiceClientTest", ], runtime_deps = [":privateca_java_gapic_test"], @@ -101,6 +103,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-security-privateca-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":privateca_java_gapic", ":privateca_java_grpc", @@ -139,6 +143,7 @@ go_gapic_library( importpath = "cloud.google.com/go/security/privateca/apiv1;privateca", metadata = True, service_yaml = "privateca_v1.yaml", + transport = "grpc+rest", deps = [ ":privateca_go_proto", "//google/cloud/location:location_go_proto", @@ -175,6 +180,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -184,6 +190,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-private-ca", ], + transport = "grpc", +) + +py_test( + name = "privateca_py_gapic_test", + srcs = [ + "privateca_py_gapic_pytest.py", + "privateca_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":privateca_py_gapic"], ) # Open Source Packages @@ -301,6 +318,7 @@ ruby_cloud_gapic_library( grpc_service_config = "privateca_grpc_service_config.json", ruby_cloud_description = "Certificate Authority Service is a highly available, scalable Google Cloud service that enables you to simplify, automate, and customize the deployment, management, and security of private certificate authorities (CA).", ruby_cloud_title = "Ceritificate Authority Service V1", + service_yaml = "privateca_v1.yaml", deps = [ ":privateca_ruby_grpc", ":privateca_ruby_proto", @@ -344,6 +362,7 @@ csharp_gapic_library( srcs = [":privateca_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "privateca_grpc_service_config.json", + service_yaml = "privateca_v1.yaml", deps = [ ":privateca_csharp_grpc", ":privateca_csharp_proto", diff --git a/google/cloud/security/privateca/v1/resources.proto b/google/cloud/security/privateca/v1/resources.proto index fb73f15b8..3f6dfb171 100644 --- a/google/cloud/security/privateca/v1/resources.proto +++ b/google/cloud/security/privateca/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/type/expr.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Security.PrivateCA.V1"; @@ -40,34 +39,6 @@ message CertificateAuthority { pattern: "projects/{project}/locations/{location}/caPools/{ca_pool}/certificateAuthorities/{certificate_authority}" }; - // URLs where a [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] will publish content. - message AccessUrls { - // The URL where this [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]'s CA certificate is - // published. This will only be set for CAs that have been activated. - string ca_certificate_access_url = 1; - - // The URLs where this [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]'s CRLs are published. This - // will only be set for CAs that have been activated. - repeated string crl_access_urls = 2; - } - - // A Cloud KMS key configuration that a [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] will use. - message KeyVersionSpec { - oneof KeyVersion { - // The resource name for an existing Cloud KMS CryptoKeyVersion in the - // format - // `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. - // This option enables full flexibility in the key's capabilities and - // properties. - string cloud_kms_key_version = 1; - - // The algorithm to use for creating a managed Cloud KMS key for a for a - // simplified experience. All managed keys will be have their - // [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] as `HSM`. - SignHashAlgorithm algorithm = 2; - } - } - // The type of a [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority], indicating its issuing chain. enum Type { // Not specified. @@ -115,6 +86,34 @@ message CertificateAuthority { DELETED = 5; } + // URLs where a [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] will publish content. + message AccessUrls { + // The URL where this [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]'s CA certificate is + // published. This will only be set for CAs that have been activated. + string ca_certificate_access_url = 1; + + // The URLs where this [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]'s CRLs are published. This + // will only be set for CAs that have been activated. + repeated string crl_access_urls = 2; + } + + // A Cloud KMS key configuration that a [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] will use. + message KeyVersionSpec { + oneof KeyVersion { + // The resource name for an existing Cloud KMS CryptoKeyVersion in the + // format + // `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. + // This option enables full flexibility in the key's capabilities and + // properties. + string cloud_kms_key_version = 1; + + // The algorithm to use for creating a managed Cloud KMS key for a for a + // simplified experience. All managed keys will be have their + // [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] as `HSM`. + SignHashAlgorithm algorithm = 2; + } + } + // The algorithm of a Cloud KMS CryptoKeyVersion of a // [CryptoKey][google.cloud.kms.v1.CryptoKey] with the // [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose] value @@ -122,7 +121,7 @@ message CertificateAuthority { // [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] // values. For RSA signing algorithms, the PSS algorithms should be preferred, // use PKCS1 algorithms if required for compatibility. For further - // recommandations, see + // recommendations, see // https://cloud.google.com/kms/docs/algorithms#algorithm_recommendations. enum SignHashAlgorithm { // Not specified. @@ -169,10 +168,13 @@ message CertificateAuthority { (google.api.field_behavior) = IMMUTABLE ]; - // Required. The desired lifetime of the CA certificate. Used to create the + // Required. Immutable. The desired lifetime of the CA certificate. Used to create the // "not_before_time" and "not_after_time" fields inside an X.509 // certificate. - google.protobuf.Duration lifetime = 4 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Duration lifetime = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; // Required. Immutable. Used when issuing certificates for this [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]. If this // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] is a self-signed CertificateAuthority, this key @@ -246,6 +248,19 @@ message CaPool { pattern: "projects/{project}/locations/{location}/caPools/{ca_pool}" }; + // The tier of a [CaPool][google.cloud.security.privateca.v1.CaPool], indicating its supported functionality and/or + // billing SKU. + enum Tier { + // Not specified. + TIER_UNSPECIFIED = 0; + + // Enterprise tier. + ENTERPRISE = 1; + + // DevOps tier. + DEVOPS = 2; + } + // Options relating to the publication of each [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]'s CA // certificate and CRLs and their inclusion as extensions in issued // [Certificates][google.cloud.security.privateca.v1.Certificate]. The options set here apply to certificates @@ -279,14 +294,14 @@ message CaPool { // Describes an RSA key that may be used in a [Certificate][google.cloud.security.privateca.v1.Certificate] issued from // a [CaPool][google.cloud.security.privateca.v1.CaPool]. message RsaKeyType { - // Optional. The minimum allowed RSA modulus size, in bits. If this is not set, - // or if set to zero, the service-level min RSA modulus size will - // continue to apply. + // Optional. The minimum allowed RSA modulus size (inclusive), in bits. If this is + // not set, or if set to zero, the service-level min RSA modulus size + // will continue to apply. int64 min_modulus_size = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The maximum allowed RSA modulus size, in bits. If this is not set, - // or if set to zero, the service will not enforce an explicit upper - // bound on RSA modulus sizes. + // Optional. The maximum allowed RSA modulus size (inclusive), in bits. If this is + // not set, or if set to zero, the service will not enforce an explicit + // upper bound on RSA modulus sizes. int64 max_modulus_size = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -382,19 +397,6 @@ message CaPool { CertificateExtensionConstraints passthrough_extensions = 6 [(google.api.field_behavior) = OPTIONAL]; } - // The tier of a [CaPool][google.cloud.security.privateca.v1.CaPool], indicating its supported functionality and/or - // billing SKU. - enum Tier { - // Not specified. - TIER_UNSPECIFIED = 0; - - // Enterprise tier. - ENTERPRISE = 1; - - // DevOps tier. - DEVOPS = 2; - } - // Output only. The resource name for this [CaPool][google.cloud.security.privateca.v1.CaPool] in the // format `projects/*/locations/*/caPools/*`. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -691,10 +693,9 @@ message SubordinateConfig { } oneof subordinate_config { - // Required. This can refer to a [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] in the same project that - // was used to create a subordinate [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]. This field - // is used for information and usability purposes only. The resource name - // is in the format + // Required. This can refer to a [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] that was used to create a + // subordinate [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]. This field is used for information + // and usability purposes only. The resource name is in the format // `projects/*/locations/*/caPools/*/certificateAuthorities/*`. string certificate_authority = 1 [ (google.api.field_behavior) = REQUIRED, @@ -985,6 +986,8 @@ message SubjectAltNames { repeated string ip_addresses = 4; // Contains additional subject alternative name values. + // For each custom_san, the `value` field must contain an ASN.1 encoded + // UTF8String. repeated X509Extension custom_sans = 5; } diff --git a/google/cloud/security/privateca/v1/service.proto b/google/cloud/security/privateca/v1/service.proto index f13ce093e..2ab595383 100644 --- a/google/cloud/security/privateca/v1/service.proto +++ b/google/cloud/security/privateca/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/security/privateca/v1/resources.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -385,11 +384,11 @@ message CreateCertificateRequest { // 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. + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). @@ -796,6 +795,11 @@ message DeleteCertificateAuthorityRequest { // Optional. This field allows the CA to be deleted even if the CA has // active certs. Active certs include both unrevoked and unexpired certs. bool ignore_active_certificates = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If this flag is set, the Certificate Authority will be deleted as soon as + // possible without a 30-day grace period where undeletion would have been + // allowed. If you proceed, there will be no way to recover this CA. + bool skip_grace_period = 5 [(google.api.field_behavior) = OPTIONAL]; } // Request message for diff --git a/google/cloud/security/privateca/v1beta1/BUILD.bazel b/google/cloud/security/privateca/v1beta1/BUILD.bazel index b74ee96a0..01deab24f 100644 --- a/google/cloud/security/privateca/v1beta1/BUILD.bazel +++ b/google/cloud/security/privateca/v1beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( test_deps = [ ":privateca_java_grpc", ], + transport = "grpc+rest", deps = [ ":privateca_java_proto", ], @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "privateca_java_gapic_test_suite", test_classes = [ + "com.google.cloud.security.privateca.v1beta1.CertificateAuthorityServiceClientHttpJsonTest", "com.google.cloud.security.privateca.v1beta1.CertificateAuthorityServiceClientTest", ], runtime_deps = [":privateca_java_gapic_test"], @@ -91,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-security-privateca-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":privateca_java_gapic", ":privateca_java_grpc", @@ -127,6 +131,7 @@ go_gapic_library( grpc_service_config = "privateca_grpc_service_config.json", importpath = "cloud.google.com/go/security/privateca/apiv1beta1;privateca", service_yaml = "privateca_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":privateca_go_proto", "//google/longrunning:longrunning_go_proto", @@ -160,6 +165,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -169,6 +175,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-private-ca", ], + transport = "grpc", +) + +py_test( + name = "privateca_py_gapic_test", + srcs = [ + "privateca_py_gapic_pytest.py", + "privateca_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":privateca_py_gapic"], ) py_gapic_assembly_pkg( @@ -327,6 +344,7 @@ csharp_gapic_library( srcs = [":privateca_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "privateca_grpc_service_config.json", + service_yaml = "privateca_v1beta1.yaml", deps = [ ":privateca_csharp_grpc", ":privateca_csharp_proto", diff --git a/google/cloud/security/privateca/v1beta1/privateca_v1beta1.yaml b/google/cloud/security/privateca/v1beta1/privateca_v1beta1.yaml index d9284bebc..e35a9216b 100644 --- a/google/cloud/security/privateca/v1beta1/privateca_v1beta1.yaml +++ b/google/cloud/security/privateca/v1beta1/privateca_v1beta1.yaml @@ -45,6 +45,18 @@ backend: - selector: google.longrunning.Operations.GetOperation deadline: 5.0 +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v1beta1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1beta1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1beta1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1beta1/{name=projects/*/locations/*}/operations' + authentication: rules: - selector: 'google.cloud.security.privateca.v1beta1.CertificateAuthorityService.*' diff --git a/google/cloud/security/privateca/v1beta1/resources.proto b/google/cloud/security/privateca/v1beta1/resources.proto index f2bf7de0f..5e98d97ac 100644 --- a/google/cloud/security/privateca/v1beta1/resources.proto +++ b/google/cloud/security/privateca/v1beta1/resources.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Security.PrivateCA.V1Beta1"; diff --git a/google/cloud/security/privateca/v1beta1/service.proto b/google/cloud/security/privateca/v1beta1/service.proto index 3cc010de7..965736b95 100644 --- a/google/cloud/security/privateca/v1beta1/service.proto +++ b/google/cloud/security/privateca/v1beta1/service.proto @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/security/privateca/v1beta1/resources.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/cloud/security/publicca/BUILD.bazel b/google/cloud/security/publicca/BUILD.bazel new file mode 100644 index 000000000..e016441ee --- /dev/null +++ b/google/cloud/security/publicca/BUILD.bazel @@ -0,0 +1,40 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-security-public_ca. + +# 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 publicca. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta1 in this case. +ruby_cloud_gapic_library( + name = "publicca_ruby_wrapper", + srcs = ["//google/cloud/security/publicca/v1beta1:publicca_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=publicca.googleapis.com", + "ruby-cloud-api-shortname=publicca", + "ruby-cloud-gem-name=google-cloud-security-public_ca", + "ruby-cloud-gem-namespace=Google::Cloud::Security::PublicCA", + "ruby-cloud-wrapper-of=v1beta1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/certificate-manager/docs/public-ca/", + ], + ruby_cloud_description = "Certificate Manager's Public Certificate Authority (CA) functionality allows you to provision and deploy widely trusted X.509 certificates after validating that the certificate requester controls the domains. Certificate Manager lets you directly and programmatically request publicly trusted TLS certificates that are already in the root of trust stores used by major browsers, operating systems, and applications. You can use these TLS certificates to authenticate and encrypt internet traffic.", + ruby_cloud_title = "Public Certificate Authority", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-security-publicca-ruby", + deps = [ + ":publicca_ruby_wrapper", + ], +) diff --git a/google/cloud/security/publicca/v1beta1/BUILD.bazel b/google/cloud/security/publicca/v1beta1/BUILD.bazel new file mode 100644 index 000000000..3cc179f5c --- /dev/null +++ b/google/cloud/security/publicca/v1beta1/BUILD.bazel @@ -0,0 +1,387 @@ +# 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 = "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 +############################################################################## +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_v1beta1_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "publicca_v1beta1.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.v1beta1.PublicCertificateAuthorityServiceClientHttpJsonTest", + "com.google.cloud.security.publicca.v1beta1.PublicCertificateAuthorityServiceClientTest", + ], + runtime_deps = [":publicca_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-security-publicca-v1beta1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":publicca_java_gapic", + ":publicca_java_grpc", + ":publicca_java_proto", + ":publicca_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "publicca_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/security/publicca/v1beta1", + 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_v1beta1_grpc_service_config.json", + importpath = "cloud.google.com/go/security/publicca/apiv1beta1;publicca", + metadata = True, + rest_numeric_enums = False, + service_yaml = "publicca_v1beta1.yaml", + transport = "grpc+rest", + deps = [ + ":publicca_go_proto", + ], +) + +go_test( + name = "publicca_go_gapic_test", + srcs = [":publicca_go_gapic_srcjar_test"], + embed = [":publicca_go_gapic"], + importpath = "cloud.google.com/go/security/publicca/apiv1beta1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-security-publicca-v1beta1-go", + deps = [ + ":publicca_go_gapic", + ":publicca_go_gapic_srcjar-metadata.srcjar", + ":publicca_go_gapic_srcjar-test.srcjar", + ":publicca_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +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_v1beta1_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "publicca_v1beta1.yaml", + transport = "grpc", + 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-v1beta1-py", + deps = [ + ":publicca_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "publicca_php_proto", + deps = [":publicca_proto"], +) + +php_grpc_library( + name = "publicca_php_grpc", + srcs = [":publicca_proto"], + deps = [":publicca_php_proto"], +) + +php_gapic_library( + name = "publicca_php_gapic", + srcs = [":publicca_proto_with_info"], + grpc_service_config = "publicca_v1beta1_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "publicca_v1beta1.yaml", + deps = [ + ":publicca_php_grpc", + ":publicca_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-security-publicca-v1beta1-php", + deps = [ + ":publicca_php_gapic", + ":publicca_php_grpc", + ":publicca_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +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_v1beta1_grpc_service_config.json", + package = "google.cloud.security.publicca.v1beta1", + rest_numeric_enums = False, + service_yaml = "publicca_v1beta1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "security-publicca-v1beta1-nodejs", + deps = [ + ":publicca_nodejs_gapic", + ":publicca_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 = "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-api-id=publicca.googleapis.com", + "ruby-cloud-api-shortname=publicca", + "ruby-cloud-gem-name=google-cloud-security-public_ca-v1beta1", + "ruby-cloud-gem-namespace=Google::Cloud::Security::PublicCA::V1beta1", + "ruby-cloud-product-url=https://cloud.google.com/certificate-manager/docs/public-ca/", + ], + grpc_service_config = "publicca_v1beta1_grpc_service_config.json", + rest_numeric_enums = False, + ruby_cloud_description = "Certificate Manager's Public Certificate Authority (CA) functionality allows you to provision and deploy widely trusted X.509 certificates after validating that the certificate requester controls the domains. Certificate Manager lets you directly and programmatically request publicly trusted TLS certificates that are already in the root of trust stores used by major browsers, operating systems, and applications. You can use these TLS certificates to authenticate and encrypt internet traffic.", + ruby_cloud_title = "Public Certificate Authority V1beta1", + service_yaml = "publicca_v1beta1.yaml", + deps = [ + ":publicca_ruby_grpc", + ":publicca_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-security-publicca-v1beta1-ruby", + deps = [ + ":publicca_ruby_gapic", + ":publicca_ruby_grpc", + ":publicca_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 = "publicca_csharp_proto", + 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_v1beta1_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "publicca_v1beta1.yaml", + deps = [ + ":publicca_csharp_grpc", + ":publicca_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-security-publicca-v1beta1-csharp", + deps = [ + ":publicca_csharp_gapic", + ":publicca_csharp_grpc", + ":publicca_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/security/publicca/v1beta1/publicca_v1beta1.yaml b/google/cloud/security/publicca/v1beta1/publicca_v1beta1.yaml new file mode 100644 index 000000000..f6f047a34 --- /dev/null +++ b/google/cloud/security/publicca/v1beta1/publicca_v1beta1.yaml @@ -0,0 +1,25 @@ +type: google.api.Service +config_version: 3 +name: publicca.googleapis.com +title: Public Certificate Authority API + +apis: +- name: google.cloud.security.publicca.v1beta1.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. + +backend: + rules: + - selector: google.cloud.security.publicca.v1beta1.PublicCertificateAuthorityService.CreateExternalAccountKey + deadline: 5.0 + +authentication: + rules: + - selector: google.cloud.security.publicca.v1beta1.PublicCertificateAuthorityService.CreateExternalAccountKey + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/security/publicca/v1beta1/publicca_v1beta1_grpc_service_config.json b/google/cloud/security/publicca/v1beta1/publicca_v1beta1_grpc_service_config.json new file mode 100644 index 000000000..94ace4229 --- /dev/null +++ b/google/cloud/security/publicca/v1beta1/publicca_v1beta1_grpc_service_config.json @@ -0,0 +1,21 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.security.publicca.v1beta1.PublicCertificateAuthorityService" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } + } + ] +} diff --git a/google/cloud/security/publicca/v1beta1/resources.proto b/google/cloud/security/publicca/v1beta1/resources.proto new file mode 100644 index 000000000..e081b2ab1 --- /dev/null +++ b/google/cloud/security/publicca/v1beta1/resources.proto @@ -0,0 +1,52 @@ +// 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.cloud.security.publicca.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Security.PublicCA.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/security/publicca/v1beta1;publicca"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.cloud.security.publicca.v1beta1"; +option php_namespace = "Google\\Cloud\\Security\\PublicCA\\V1beta1"; +option ruby_package = "Google::Cloud::Security::PublicCA::V1beta1"; + +// 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/google/cloud/security/publicca/v1beta1/service.proto b/google/cloud/security/publicca/v1beta1/service.proto new file mode 100644 index 000000000..8cee47338 --- /dev/null +++ b/google/cloud/security/publicca/v1beta1/service.proto @@ -0,0 +1,68 @@ +// 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.cloud.security.publicca.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/security/publicca/v1beta1/resources.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Security.PublicCA.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/security/publicca/v1beta1;publicca"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.google.cloud.security.publicca.v1beta1"; +option php_namespace = "Google\\Cloud\\Security\\PublicCA\\V1beta1"; +option ruby_package = "Google::Cloud::Security::PublicCA::V1beta1"; + +// 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.v1beta1.ExternalAccountKey] bound to the project. + rpc CreateExternalAccountKey(CreateExternalAccountKeyRequest) returns (ExternalAccountKey) { + option (google.api.http) = { + post: "/v1beta1/{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.v1beta1.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/google/cloud/securitycenter/securitycenter_v1beta1.yaml b/google/cloud/securitycenter/securitycenter_v1beta1.yaml deleted file mode 100644 index c3a5c91ed..000000000 --- a/google/cloud/securitycenter/securitycenter_v1beta1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -type: google.api.Service -config_version: 3 -name: securitycenter.googleapis.com -title: Cloud Security Command Center API - -apis: -- name: google.cloud.securitycenter.v1beta1.SecurityCenter - -documentation: - summary: |- - Cloud Security Command Center API provides access to temporal views of - assets and findings within an organization. - -backend: - rules: - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.CreateSource - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.CreateFinding - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.GetIamPolicy - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.GetOrganizationSettings - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.GetSource - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.GroupAssets - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.GroupFindings - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.ListAssets - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.ListFindings - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.ListSources - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.RunAssetDiscovery - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.SetFindingState - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.SetIamPolicy - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.TestIamPermissions - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.UpdateFinding - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.UpdateOrganizationSettings - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.UpdateSource - deadline: 60.0 - - selector: google.cloud.securitycenter.v1beta1.SecurityCenter.UpdateSecurityMarks - deadline: 60.0 - -http: - rules: - - selector: google.longrunning.Operations.ListOperations - get: '/v1beta1/{name=organizations/*/operations}' - - - selector: google.longrunning.Operations.GetOperation - get: '/v1beta1/{name=organizations/*/operations/*}' - - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1beta1/{name=organizations/*/operations/*}' - - - selector: google.longrunning.Operations.CancelOperation - post: '/v1beta1/{name=organizations/*/operations/*}:cancel' - body: '*' - - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/securitycenter/settings/v1beta1/BUILD.bazel b/google/cloud/securitycenter/settings/v1beta1/BUILD.bazel index ec90165b8..a82544efa 100644 --- a/google/cloud/securitycenter/settings/v1beta1/BUILD.bazel +++ b/google/cloud/securitycenter/settings/v1beta1/BUILD.bazel @@ -157,12 +157,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "settings_py_gapic", srcs = [":settings_proto"], grpc_service_config = "securitycenter_settings_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "settings_py_gapic_test", + srcs = [ + "settings_py_gapic_pytest.py", + "settings_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":settings_py_gapic"], ) # Open Source Packages @@ -247,8 +259,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -266,7 +278,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "settings_ruby_gapic", - srcs = [":settings_proto_with_info",], + srcs = [":settings_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-settings-v1beta1"], deps = [ ":settings_ruby_grpc", @@ -311,6 +323,7 @@ csharp_gapic_library( srcs = [":settings_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "securitycenter_settings_grpc_service_config.json", + service_yaml = "securitycenter_settings.yaml", deps = [ ":settings_csharp_grpc", ":settings_csharp_proto", diff --git a/google/cloud/securitycenter/settings/v1beta1/billing_settings.proto b/google/cloud/securitycenter/settings/v1beta1/billing_settings.proto index 149e32fcd..976ebbd1d 100644 --- a/google/cloud/securitycenter/settings/v1beta1/billing_settings.proto +++ b/google/cloud/securitycenter/settings/v1beta1/billing_settings.proto @@ -18,7 +18,6 @@ package google.cloud.securitycenter.settings.v1beta1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.SecurityCenter.Settings.V1Beta1"; diff --git a/google/cloud/securitycenter/settings/v1beta1/component_settings.proto b/google/cloud/securitycenter/settings/v1beta1/component_settings.proto index efeb831f0..8b352e38a 100644 --- a/google/cloud/securitycenter/settings/v1beta1/component_settings.proto +++ b/google/cloud/securitycenter/settings/v1beta1/component_settings.proto @@ -19,7 +19,6 @@ package google.cloud.securitycenter.settings.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.SecurityCenter.Settings.V1Beta1"; diff --git a/google/cloud/securitycenter/settings/v1beta1/detector.proto b/google/cloud/securitycenter/settings/v1beta1/detector.proto index c7c42bc33..65c7631a3 100644 --- a/google/cloud/securitycenter/settings/v1beta1/detector.proto +++ b/google/cloud/securitycenter/settings/v1beta1/detector.proto @@ -18,7 +18,6 @@ package google.cloud.securitycenter.settings.v1beta1; import "google/api/field_behavior.proto"; import "google/cloud/securitycenter/settings/v1beta1/billing_settings.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.SecurityCenter.Settings.V1Beta1"; diff --git a/google/cloud/securitycenter/settings/v1beta1/settings.proto b/google/cloud/securitycenter/settings/v1beta1/settings.proto index 1e99eacca..7f6b8daf4 100644 --- a/google/cloud/securitycenter/settings/v1beta1/settings.proto +++ b/google/cloud/securitycenter/settings/v1beta1/settings.proto @@ -22,7 +22,6 @@ import "google/cloud/securitycenter/settings/v1beta1/billing_settings.proto"; import "google/cloud/securitycenter/settings/v1beta1/component_settings.proto"; import "google/cloud/securitycenter/settings/v1beta1/sink_settings.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.SecurityCenter.Settings.V1Beta1"; diff --git a/google/cloud/securitycenter/settings/v1beta1/sink_settings.proto b/google/cloud/securitycenter/settings/v1beta1/sink_settings.proto index 388e375c3..1912af5cb 100644 --- a/google/cloud/securitycenter/settings/v1beta1/sink_settings.proto +++ b/google/cloud/securitycenter/settings/v1beta1/sink_settings.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.securitycenter.settings.v1beta1; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.SecurityCenter.Settings.V1Beta1"; diff --git a/google/cloud/securitycenter/v1/BUILD.bazel b/google/cloud/securitycenter/v1/BUILD.bazel index 62b1f44e8..d9d8a385f 100644 --- a/google/cloud/securitycenter/v1/BUILD.bazel +++ b/google/cloud/securitycenter/v1/BUILD.bazel @@ -9,27 +9,72 @@ # * 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") +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", + "go_test", + "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_grpc_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 = "securitycenter_proto", srcs = [ + "access.proto", "asset.proto", + "bigquery_export.proto", + "compliance.proto", + "connection.proto", + "contact_details.proto", + "container.proto", + "database.proto", + "exfiltration.proto", "external_system.proto", + "file.proto", "finding.proto", "folder.proto", + "iam_binding.proto", "indicator.proto", + "kubernetes.proto", + "label.proto", + "mitre_attack.proto", "mute_config.proto", "notification_config.proto", "notification_message.proto", "organization_settings.proto", + "process.proto", "resource.proto", "run_asset_discovery_response.proto", "security_marks.proto", @@ -61,18 +106,6 @@ proto_library_with_info( ], ) -############################################################################## -# Java -############################################################################## -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"], @@ -94,6 +127,7 @@ java_gapic_library( ":securitycenter_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":securitycenter_java_proto", "//google/api:api_java_proto", @@ -104,6 +138,7 @@ java_gapic_library( java_gapic_test( name = "securitycenter_java_gapic_test_suite", test_classes = [ + "com.google.cloud.securitycenter.v1.SecurityCenterClientHttpJsonTest", "com.google.cloud.securitycenter.v1.SecurityCenterClientTest", ], runtime_deps = [":securitycenter_java_gapic_test"], @@ -112,6 +147,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-securitycenter-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":securitycenter_java_gapic", ":securitycenter_java_grpc", @@ -120,17 +157,6 @@ java_gapic_assembly_gradle_pkg( ], ) -############################################################################## -# Go -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "go_test", -) - go_proto_library( name = "securitycenter_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], @@ -150,6 +176,7 @@ go_gapic_library( importpath = "cloud.google.com/go/securitycenter/apiv1;securitycenter", metadata = True, service_yaml = "securitycenter_v1.yaml", + transport = "grpc+rest", deps = [ ":securitycenter_go_proto", "//google/iam/v1:iam_go_proto", @@ -179,19 +206,24 @@ go_gapic_assembly_pkg( ], ) -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", -) - py_gapic_library( name = "securitycenter_py_gapic", srcs = [":securitycenter_proto"], grpc_service_config = "securitycenter_grpc_service_config.json", + transport = "grpc", + 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 @@ -202,17 +234,6 @@ py_gapic_assembly_pkg( ], ) -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", -) - php_proto_library( name = "securitycenter_php_proto", deps = [":securitycenter_proto"], @@ -245,15 +266,6 @@ php_gapic_assembly_pkg( ], ) -############################################################################## -# Node.js -############################################################################## -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/security-center", @@ -273,17 +285,6 @@ nodejs_gapic_assembly_pkg( ], ) -############################################################################## -# 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 = "securitycenter_ruby_proto", deps = [":securitycenter_proto"], @@ -324,17 +325,6 @@ 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 = "securitycenter_csharp_proto", deps = [":securitycenter_proto"], @@ -351,6 +341,7 @@ csharp_gapic_library( srcs = [":securitycenter_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "securitycenter_grpc_service_config.json", + service_yaml = "securitycenter_v1.yaml", deps = [ ":securitycenter_csharp_grpc", ":securitycenter_csharp_proto", @@ -367,15 +358,6 @@ csharp_gapic_assembly_pkg( ], ) -############################################################################## -# C++ -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "cc_grpc_library", - "cc_proto_library", -) - cc_proto_library( name = "securitycenter_cc_proto", deps = [":securitycenter_proto"], diff --git a/google/cloud/securitycenter/v1/access.proto b/google/cloud/securitycenter/v1/access.proto new file mode 100644 index 000000000..799b84fcc --- /dev/null +++ b/google/cloud/securitycenter/v1/access.proto @@ -0,0 +1,100 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "AccessProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents an access event. +message Access { + // Associated email, such as "foo@google.com". + // + // The email address of the authenticated user (or service account on behalf + // of 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; + + // What kind of user agent is associated, e.g. operating system shells, + // embedded or stand-alone applications, etc. + string user_agent_family = 4; + + // This is the API service that the service account made a call to, e.g. + // "iam.googleapis.com" + string service_name = 5; + + // The method that the service account called, e.g. "SetIamPolicy". + string method_name = 6; + + // 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 = 7; + + // The name of the service account key used to create or exchange + // credentials for authenticating the service account making 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 = 8; + + // Identity delegation history of an authenticated service account that makes + // the request. It contains information on the real authorities that try to + // access GCP 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 = 9; +} + +// 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/google/cloud/securitycenter/v1/asset.proto b/google/cloud/securitycenter/v1/asset.proto index b23a4232f..55ba5641a 100644 --- a/google/cloud/securitycenter/v1/asset.proto +++ b/google/cloud/securitycenter/v1/asset.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/cloud/securitycenter/v1/folder.proto"; import "google/cloud/securitycenter/v1/security_marks.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; diff --git a/google/cloud/securitycenter/v1/bigquery_export.proto b/google/cloud/securitycenter/v1/bigquery_export.proto new file mode 100644 index 000000000..850c66e5d --- /dev/null +++ b/google/cloud/securitycenter/v1/bigquery_export.proto @@ -0,0 +1,99 @@ +// 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.cloud.securitycenter.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "BigQueryExportProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Configures how to deliver Findings to BigQuery Instance. +message BigQueryExport { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/BigQueryExport" + pattern: "organizations/{organization}/bigQueryExports/{export}" + pattern: "folders/{folder}/bigQueryExports/{export}" + pattern: "projects/{project}/bigQueryExports/{export}" + }; + + // The relative resource name of this export. See: + // https://cloud.google.com/apis/design/resource_names#relative_resource_name. + // Example format: + // "organizations/{organization_id}/bigQueryExports/{export_id}" Example + // format: "folders/{folder_id}/bigQueryExports/{export_id}" Example format: + // "projects/{project_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 big query 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 big 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 big query 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, upload data to + // the big query dataset. + string principal = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/securitycenter/v1/compliance.proto b/google/cloud/securitycenter/v1/compliance.proto new file mode 100644 index 000000000..ca1353b69 --- /dev/null +++ b/google/cloud/securitycenter/v1/compliance.proto @@ -0,0 +1,39 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "ComplianceProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Contains compliance information about a security standard indicating unmet +// recommendations. +message Compliance { + // Refers to industry wide standards or benchmarks e.g. "cis", "pci", "owasp", + // etc. + string standard = 1; + + // Version of the standard/benchmark e.g. 1.1 + string version = 2; + + // Policies within the standard/benchmark e.g. A.12.4.1 + repeated string ids = 3; +} diff --git a/google/cloud/securitycenter/v1/connection.proto b/google/cloud/securitycenter/v1/connection.proto new file mode 100644 index 000000000..29e95546c --- /dev/null +++ b/google/cloud/securitycenter/v1/connection.proto @@ -0,0 +1,66 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "ConnectionProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// 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/google/cloud/securitycenter/v1/contact_details.proto b/google/cloud/securitycenter/v1/contact_details.proto new file mode 100644 index 000000000..c282d325b --- /dev/null +++ b/google/cloud/securitycenter/v1/contact_details.proto @@ -0,0 +1,37 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "ContactDetailsProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// The details pertaining to specific contacts +message ContactDetails { + // A list of contacts + repeated Contact contacts = 1; +} + +// Representa a single contact's email address +message Contact { + // An email address e.g. "person123@company.com" + string email = 1; +} diff --git a/google/cloud/securitycenter/v1/container.proto b/google/cloud/securitycenter/v1/container.proto new file mode 100644 index 000000000..65ca458cf --- /dev/null +++ b/google/cloud/securitycenter/v1/container.proto @@ -0,0 +1,45 @@ +// 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.cloud.securitycenter.v1; + +import "google/cloud/securitycenter/v1/label.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "ContainerProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Container associated with the finding. +message Container { + // Container name. + string name = 1; + + // Container image URI provided when configuring a pod/container. + // May identify a container image version using mutable tags. + string uri = 2; + + // Optional container image id, when 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; +} diff --git a/google/cloud/securitycenter/v1/database.proto b/google/cloud/securitycenter/v1/database.proto new file mode 100644 index 000000000..276b31004 --- /dev/null +++ b/google/cloud/securitycenter/v1/database.proto @@ -0,0 +1,52 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "DatabaseProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents database access information, such as queries. +// A database may be a sub-resource of an instance (as in the case of CloudSQL +// instances or Cloud Spanner instances), or the database instance itself. +// Some database resources may not have the full resource name populated +// because these resource types are not yet supported by Cloud Asset Inventory +// (e.g. CloudSQL databases). In these cases only the display name will be +// provided. +message Database { + // The full resource name of the database the user connected to, if it is + // supported by CAI. (https://google.aip.dev/122#full-resource-names) + string name = 1; + + // The human readable name of the database the user connected to. + string display_name = 2; + + // The username used to connect to the DB. This may not necessarily be an IAM + // principal, and has no required format. + string user_name = 3; + + // The SQL statement associated with the relevant access. + string query = 4; + + // The target usernames/roles/groups of a SQL privilege grant (not an IAM + // policy change). + repeated string grantees = 5; +} diff --git a/google/cloud/securitycenter/v1/exfiltration.proto b/google/cloud/securitycenter/v1/exfiltration.proto new file mode 100644 index 000000000..14e644f66 --- /dev/null +++ b/google/cloud/securitycenter/v1/exfiltration.proto @@ -0,0 +1,52 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "ExfiltrationProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Exfiltration represents a data exfiltration attempt of one or more +// sources to one or more targets. Sources represent the source +// of data that is exfiltrated, and Targets represents the destination 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; +} + +// Resource that has been exfiltrated or exfiltrated_to. +message ExfilResource { + // Resource's URI (https://google.aip.dev/122#full-resource-names) + string name = 1; + + // Subcomponents of the asset that is exfiltrated - these could be + // URIs used during exfiltration, table names, databases, filenames, etc. + // For example, multiple tables may be exfiltrated from the same CloudSQL + // instance, or multiple files from the same Cloud Storage bucket. + repeated string components = 2; +} diff --git a/google/cloud/securitycenter/v1/external_system.proto b/google/cloud/securitycenter/v1/external_system.proto index b5a99332f..8ba698138 100644 --- a/google/cloud/securitycenter/v1/external_system.proto +++ b/google/cloud/securitycenter/v1/external_system.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; @@ -38,7 +37,8 @@ message ExternalSystem { }; // External System Name e.g. jira, demisto, etc. - // e.g.: `organizations/1234/sources/5678/findings/123456/externalSystems/jira` + // e.g.: + // `organizations/1234/sources/5678/findings/123456/externalSystems/jira` // `folders/1234/sources/5678/findings/123456/externalSystems/jira` // `projects/1234/sources/5678/findings/123456/externalSystems/jira` string name = 1; diff --git a/google/cloud/securitycenter/v1/file.proto b/google/cloud/securitycenter/v1/file.proto new file mode 100644 index 000000000..d802dda6e --- /dev/null +++ b/google/cloud/securitycenter/v1/file.proto @@ -0,0 +1,52 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "FileProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// File information about the related binary/library used by an executable, or +// the script used by a script interpreter +message File { + // 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. + // (Currently only populated for Malicious Script Executed findings.) + string contents = 6; +} diff --git a/google/cloud/securitycenter/v1/finding.proto b/google/cloud/securitycenter/v1/finding.proto index 5556b5249..126d5e59f 100644 --- a/google/cloud/securitycenter/v1/finding.proto +++ b/google/cloud/securitycenter/v1/finding.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,13 +18,23 @@ package google.cloud.securitycenter.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/securitycenter/v1/access.proto"; +import "google/cloud/securitycenter/v1/compliance.proto"; +import "google/cloud/securitycenter/v1/connection.proto"; +import "google/cloud/securitycenter/v1/contact_details.proto"; +import "google/cloud/securitycenter/v1/container.proto"; +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/iam_binding.proto"; import "google/cloud/securitycenter/v1/indicator.proto"; +import "google/cloud/securitycenter/v1/kubernetes.proto"; +import "google/cloud/securitycenter/v1/mitre_attack.proto"; +import "google/cloud/securitycenter/v1/process.proto"; import "google/cloud/securitycenter/v1/security_marks.proto"; import "google/cloud/securitycenter/v1/vulnerability.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; @@ -109,7 +119,7 @@ message Finding { MEDIUM = 3; // Vulnerability: - // A low risk vulnerability hampers a security organization’s ability to + // 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. @@ -153,6 +163,9 @@ message Finding { // Describes a security observation that is for informational purposes. OBSERVATION = 4; + + // Describes an error that prevents some SCC functionality. + SCC_ERROR = 5; } // The relative resource name of this finding. See: @@ -200,11 +213,12 @@ message Finding { // to the finding. SecurityMarks security_marks = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The time at which the event took place, or when an update to the finding - // occurred. For example, if the finding represents an open firewall it would - // capture the time the detector believes the firewall became open. The - // accuracy is determined by the detector. If the finding were to be resolved - // afterward, this time would reflect when the finding was resolved. Must not + // 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 = 9; @@ -223,8 +237,9 @@ message Finding { // finding. string canonical_name = 14; - // Indicates the mute state of a finding (either unspecified, muted, unmuted - // or undefined). + // 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. @@ -249,8 +264,72 @@ message Finding { // information and external system finding fields. map external_systems = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + // MITRE ATT&CK tactics and techniques related to this finding. + // See: https://attack.mitre.org + MitreAttack mitre_attack = 25; + + // Access details associated to the Finding, such as more information on the + // caller, which method was accessed, from where, etc. + Access access = 26; + + // Contains information about the IP connection associated with the finding. + repeated Connection connections = 31; + // First known as mute_annotation. Records additional information about the // mute operation e.g. mute config that muted the finding, user who muted the - // finding, etc. + // finding, etc. Unlike other attributes of a finding, a finding provider + // shouldn't set the value of mute. string mute_initiator = 28; + + // Represents operating system processes associated with the Finding. + repeated Process processes = 30; + + // 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 = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Contains compliance information for security standards associated to the + // finding. + repeated Compliance compliances = 34; + + // Output only. The human readable display name of the finding source such as + // "Event Threat Detection" or "Security Health Analytics". + string parent_display_name = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Contains more detail about the finding. + string description = 37; + + // Represents exfiltration associated with the Finding. + Exfiltration exfiltration = 38; + + // Represents IAM bindings associated with the Finding. + repeated IamBinding iam_bindings = 39; + + // Next steps associate to the finding. + string next_steps = 40; + + // Containers associated with the finding. containers provides information + // for both Kubernetes and non-Kubernetes containers. + repeated Container containers = 42; + + // Kubernetes resources associated with the finding. + Kubernetes kubernetes = 43; + + // Database associated with the finding. + Database database = 44; } diff --git a/google/cloud/securitycenter/v1/folder.proto b/google/cloud/securitycenter/v1/folder.proto index 49c114d46..4078a527b 100644 --- a/google/cloud/securitycenter/v1/folder.proto +++ b/google/cloud/securitycenter/v1/folder.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; option java_multiple_files = true; diff --git a/google/cloud/securitycenter/v1/iam_binding.proto b/google/cloud/securitycenter/v1/iam_binding.proto new file mode 100644 index 000000000..c1e57a373 --- /dev/null +++ b/google/cloud/securitycenter/v1/iam_binding.proto @@ -0,0 +1,52 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "IamBindingProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// 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, + // e.g. "foo@google.com". + string member = 3; +} diff --git a/google/cloud/securitycenter/v1/indicator.proto b/google/cloud/securitycenter/v1/indicator.proto index f785156ff..1cbfdfa2c 100644 --- a/google/cloud/securitycenter/v1/indicator.proto +++ b/google/cloud/securitycenter/v1/indicator.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,25 +16,67 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; -import "google/api/annotations.proto"; - +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; option java_multiple_files = true; option java_outer_classname = "IndicatorProto"; option java_package = "com.google.cloud.securitycenter.v1"; -option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; option ruby_package = "Google::Cloud::SecurityCenter::V1"; - // 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. // Reference: 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; + } + + 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; + } + } + // List of ip addresses associated to 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/google/cloud/securitycenter/v1/kubernetes.proto b/google/cloud/securitycenter/v1/kubernetes.proto new file mode 100644 index 000000000..bf3bc3608 --- /dev/null +++ b/google/cloud/securitycenter/v1/kubernetes.proto @@ -0,0 +1,181 @@ +// 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.cloud.securitycenter.v1; + +import "google/cloud/securitycenter/v1/container.proto"; +import "google/cloud/securitycenter/v1/label.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "KubernetesProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Kubernetes related attributes. +message Kubernetes { + // 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 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 binding. + string ns = 1; + + // Name for binding. + string name = 2; + + // The Role or ClusterRole referenced by the binding. + Role role = 3; + + // Represents the subjects(s) 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 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 subject. + AuthType kind = 1; + + // Namespace for subject. + string ns = 2; + + // Name for subject. + string name = 3; + } + + // Conveys information about a Kubernetes access review (e.g. kubectl auth + // can-i ...) that was involved in a finding. + message AccessReview { + // Group is 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; + + // Name is the name of the resource being requested. Empty means all. + string name = 3; + + // Resource is the optional resource type requested. "*" means all. + string resource = 4; + + // Subresource is the optional subresource type. + string subresource = 5; + + // Verb is a Kubernetes resource API verb, like: get, list, watch, create, + // update, delete, proxy. "*" means all. + string verb = 6; + + // Version is the API Version of the Resource. "*" means all. + string version = 7; + } + + // Kubernetes Pods associated with the finding. This field will contain Pod + // records for each container that is owned by a Pod. + repeated Pod pods = 1; + + // Provides Kubernetes Node information. + repeated Node nodes = 2; + + // GKE Node Pools associated with the finding. This field will + // contain NodePool information for each Node, when it is available. + repeated NodePool node_pools = 3; + + // Provides Kubernetes role information for findings that involve + // Roles or ClusterRoles. + repeated Role roles = 4; + + // Provides Kubernetes role binding information for findings that involve + // RoleBindings or ClusterRoleBindings. + repeated Binding bindings = 5; + + // Provides information on any Kubernetes access reviews (i.e. privilege + // checks) relevant to the finding. + repeated AccessReview access_reviews = 6; +} diff --git a/google/cloud/securitycenter/v1/label.proto b/google/cloud/securitycenter/v1/label.proto new file mode 100644 index 000000000..30321d907 --- /dev/null +++ b/google/cloud/securitycenter/v1/label.proto @@ -0,0 +1,35 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "LabelProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Label represents a generic name=value label. Label has separate name and +// value fields to support filtering with contains(). +message Label { + // Label name. + string name = 1; + + // Label value. + string value = 2; +} diff --git a/google/cloud/securitycenter/v1/mitre_attack.proto b/google/cloud/securitycenter/v1/mitre_attack.proto new file mode 100644 index 000000000..ba654822b --- /dev/null +++ b/google/cloud/securitycenter/v1/mitre_attack.proto @@ -0,0 +1,208 @@ +// 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.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "MitreAttackProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// 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/ + enum Technique { + // Unspecified value. + TECHNIQUE_UNSPECIFIED = 0; + + // T1595 + ACTIVE_SCANNING = 1; + + // T1595.001 + SCANNING_IP_BLOCKS = 2; + + // T1105 + INGRESS_TOOL_TRANSFER = 3; + + // T1106 + NATIVE_API = 4; + + // T1129 + SHARED_MODULES = 5; + + // T1059 + COMMAND_AND_SCRIPTING_INTERPRETER = 6; + + // T1059.004 + UNIX_SHELL = 7; + + // T1496 + RESOURCE_HIJACKING = 8; + + // T1090 + PROXY = 9; + + // T1090.002 + EXTERNAL_PROXY = 10; + + // T1090.003 + MULTI_HOP_PROXY = 11; + + // T1568 + DYNAMIC_RESOLUTION = 12; + + // T1552 + UNSECURED_CREDENTIALS = 13; + + // T1078 + VALID_ACCOUNTS = 14; + + // T1078.003 + LOCAL_ACCOUNTS = 15; + + // T1078.004 + CLOUD_ACCOUNTS = 16; + + // T1498 + NETWORK_DENIAL_OF_SERVICE = 17; + + // T1069 + PERMISSION_GROUPS_DISCOVERY = 18; + + // T1069.003 + CLOUD_GROUPS = 19; + + // T1567 + EXFILTRATION_OVER_WEB_SERVICE = 20; + + // T1567.002 + EXFILTRATION_TO_CLOUD_STORAGE = 21; + + // T1098 + ACCOUNT_MANIPULATION = 22; + + // T1098.004 + SSH_AUTHORIZED_KEYS = 23; + + // T1543 + CREATE_OR_MODIFY_SYSTEM_PROCESS = 24; + + // T1539 + STEAL_WEB_SESSION_COOKIE = 25; + + // T1578 + MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE = 26; + + // T1190 + EXPLOIT_PUBLIC_FACING_APPLICATION = 27; + + // T1556 + MODIFY_AUTHENTICATION_PROCESS = 28; + + // T1485 + DATA_DESTRUCTION = 29; + + // T1484 + DOMAIN_POLICY_MODIFICATION = 30; + + // T1562 + IMPAIR_DEFENSES = 31; + + // T1046 + NETWORK_SERVICE_DISCOVERY = 32; + + // T1134 + ACCESS_TOKEN_MANIPULATION = 33; + + // T1548 + ABUSE_ELEVATION_CONTROL_MECHANISM = 34; + } + + // 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/google/cloud/securitycenter/v1/mute_config.proto b/google/cloud/securitycenter/v1/mute_config.proto index 78d63a66b..74426957b 100644 --- a/google/cloud/securitycenter/v1/mute_config.proto +++ b/google/cloud/securitycenter/v1/mute_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.securitycenter.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; diff --git a/google/cloud/securitycenter/v1/notification_config.proto b/google/cloud/securitycenter/v1/notification_config.proto index 7f670279a..7ab946628 100644 --- a/google/cloud/securitycenter/v1/notification_config.proto +++ b/google/cloud/securitycenter/v1/notification_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; diff --git a/google/cloud/securitycenter/v1/notification_message.proto b/google/cloud/securitycenter/v1/notification_message.proto index 6a9ce0852..3605dfbef 100644 --- a/google/cloud/securitycenter/v1/notification_message.proto +++ b/google/cloud/securitycenter/v1/notification_message.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1; import "google/cloud/securitycenter/v1/finding.proto"; import "google/cloud/securitycenter/v1/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; diff --git a/google/cloud/securitycenter/v1/organization_settings.proto b/google/cloud/securitycenter/v1/organization_settings.proto index 1dc772577..e8bc9687d 100644 --- a/google/cloud/securitycenter/v1/organization_settings.proto +++ b/google/cloud/securitycenter/v1/organization_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; diff --git a/google/cloud/securitycenter/v1/process.proto b/google/cloud/securitycenter/v1/process.proto new file mode 100644 index 000000000..480714be4 --- /dev/null +++ b/google/cloud/securitycenter/v1/process.proto @@ -0,0 +1,74 @@ +// 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.cloud.securitycenter.v1; + +import "google/cloud/securitycenter/v1/file.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; +option java_multiple_files = true; +option java_outer_classname = "ProcessProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents an operating system process. +message Process { + // The process name visible in utilities like `top` and `ps`; it can + // be accessed via `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`. + string name = 12; + + // File information for the process executable. + File binary = 3; + + // File information for libraries loaded by the process. + repeated File libraries = 4; + + // 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 = 5; + + // Process arguments as JSON encoded strings. + repeated string args = 6; + + // True if `args` is incomplete. + bool arguments_truncated = 7; + + // Process environment variables. + repeated EnvironmentVariable env_variables = 8; + + // True if `env_variables` is incomplete. + bool env_variables_truncated = 9; + + // The process id. + int64 pid = 10; + + // The parent process id. + int64 parent_pid = 11; +} + +// EnvironmentVariable is a name-value pair to store environment variables for +// 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/google/cloud/securitycenter/v1/resource.proto b/google/cloud/securitycenter/v1/resource.proto index 8377329eb..ab241d8bf 100644 --- a/google/cloud/securitycenter/v1/resource.proto +++ b/google/cloud/securitycenter/v1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1; import "google/api/field_behavior.proto"; import "google/cloud/securitycenter/v1/folder.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; @@ -34,10 +33,16 @@ message Resource { // https://cloud.google.com/apis/design/resource_names#full_resource_name string name = 1; + // The human readable name of the resource. + string display_name = 8; + + // The full resource type of the resource. + string type = 6; + // The full resource name of project that the resource belongs to. string project = 2; - // The human readable name of project that the resource belongs to. + // The project ID that the resource belongs to. string project_display_name = 3; // The full resource name of resource's parent. @@ -46,14 +51,8 @@ message Resource { // The human readable name of resource's parent. string parent_display_name = 5; - // The full resource type of the resource. - string type = 6; - // 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 = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The human readable name of the resource. - string display_name = 8; } diff --git a/google/cloud/securitycenter/v1/run_asset_discovery_response.proto b/google/cloud/securitycenter/v1/run_asset_discovery_response.proto index 20d084cae..70088c06a 100644 --- a/google/cloud/securitycenter/v1/run_asset_discovery_response.proto +++ b/google/cloud/securitycenter/v1/run_asset_discovery_response.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; diff --git a/google/cloud/securitycenter/v1/security_marks.proto b/google/cloud/securitycenter/v1/security_marks.proto index f055cd5ef..15c9769f2 100644 --- a/google/cloud/securitycenter/v1/security_marks.proto +++ b/google/cloud/securitycenter/v1/security_marks.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; diff --git a/google/cloud/securitycenter/v1/securitycenter_service.proto b/google/cloud/securitycenter/v1/securitycenter_service.proto index 9c8446c2f..cc4d3fbfe 100644 --- a/google/cloud/securitycenter/v1/securitycenter_service.proto +++ b/google/cloud/securitycenter/v1/securitycenter_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,11 +17,13 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; import public "google/cloud/securitycenter/v1/run_asset_discovery_response.proto"; + import "google/api/annotations.proto"; 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/bigquery_export.proto"; import "google/cloud/securitycenter/v1/external_system.proto"; import "google/cloud/securitycenter/v1/finding.proto"; import "google/cloud/securitycenter/v1/folder.proto"; @@ -143,6 +145,20 @@ service SecurityCenter { option (google.api.method_signature) = "name"; } + // Gets a big query export. + rpc GetBigQueryExport(GetBigQueryExportRequest) returns (BigQueryExport) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/bigQueryExports/*}" + additional_bindings { + get: "/v1/{name=folders/*/bigQueryExports/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/bigQueryExports/*}" + } + }; + 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) = { @@ -475,6 +491,72 @@ service SecurityCenter { }; option (google.api.method_signature) = "security_marks"; } + + // Creates a big query export. + rpc CreateBigQueryExport(CreateBigQueryExportRequest) returns (BigQueryExport) { + option (google.api.http) = { + post: "/v1/{parent=organizations/*}/bigQueryExports" + body: "big_query_export" + additional_bindings { + post: "/v1/{parent=folders/*}/bigQueryExports" + body: "big_query_export" + } + additional_bindings { + post: "/v1/{parent=projects/*}/bigQueryExports" + body: "big_query_export" + } + }; + option (google.api.method_signature) = "parent,big_query_export,big_query_export_id"; + } + + // Deletes an existing big query export. + rpc DeleteBigQueryExport(DeleteBigQueryExportRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=organizations/*/bigQueryExports/*}" + additional_bindings { + delete: "/v1/{name=folders/*/bigQueryExports/*}" + } + additional_bindings { + delete: "/v1/{name=projects/*/bigQueryExports/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a BigQuery export. + rpc UpdateBigQueryExport(UpdateBigQueryExportRequest) returns (BigQueryExport) { + option (google.api.http) = { + patch: "/v1/{big_query_export.name=organizations/*/bigQueryExports/*}" + body: "big_query_export" + additional_bindings { + patch: "/v1/{big_query_export.name=folders/*/bigQueryExports/*}" + body: "big_query_export" + } + additional_bindings { + patch: "/v1/{big_query_export.name=projects/*/bigQueryExports/*}" + body: "big_query_export" + } + }; + option (google.api.method_signature) = "big_query_export,update_mask"; + } + + // 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: "/v1/{parent=organizations/*}/bigQueryExports" + additional_bindings { + get: "/v1/{parent=folders/*}/bigQueryExports" + } + additional_bindings { + get: "/v1/{parent=projects/*}/bigQueryExports" + } + }; + option (google.api.method_signature) = "parent"; + } } // Request message for bulk findings update. @@ -633,6 +715,20 @@ message DeleteNotificationConfigRequest { ]; } +// Request message for retrieving a big query export. +message GetBigQueryExportRequest { + // Required. Name of the big query export to retrieve. Its format is + // 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) = { + type: "securitycenter.googleapis.com/BigQueryExport" + } + ]; +} + // Request message for retrieving a mute config. message GetMuteConfigRequest { // Required. Name of the mute config to retrieve. Its format is @@ -1459,37 +1555,6 @@ message ListFindingsRequest { message ListFindingsResponse { // Result containing the Finding and its StateChange. 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 full resource name of project that the resource belongs to. - string project_name = 2; - - // The human readable name of project that the resource belongs to. - string project_display_name = 3; - - // The full resource name of resource's parent. - string parent_name = 4; - - // The human readable name of resource's parent. - string parent_display_name = 5; - - // The full resource type of the resource. - string type = 6; - - // 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 = 7; - - // The human readable name of the resource. - string display_name = 8; - } - // The change in state of the finding. // // When querying across two points in time this describes @@ -1518,6 +1583,37 @@ message ListFindingsResponse { REMOVED = 4; } + // 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 = 8; + + // The full resource type of the resource. + string type = 6; + + // The full resource name of project that the resource belongs to. + string project_name = 2; + + // The project ID that the resource belongs to. + string project_display_name = 3; + + // The full resource name of resource's parent. + string parent_name = 4; + + // The human readable name of resource's parent. + string parent_display_name = 5; + + // 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 = 7; + } + // Finding matching the search request. Finding finding = 1; @@ -1681,6 +1777,89 @@ message UpdateSecurityMarksRequest { // The time at which the updated SecurityMarks take effect. // If not set uses current server time. Updates will be applied to the - // SecurityMarks that are active immediately preceding this time. + // SecurityMarks that are active immediately preceding this time. Must be + // earlier or equal to the server time. google.protobuf.Timestamp start_time = 3; } + +// Request message for creating a big query export. +message CreateBigQueryExportRequest { + // Required. Resource name of the new big query export's parent. Its format is + // "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/BigQueryExport" + } + ]; + + // Required. The big query 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 lower case letters, numbers, and hyphen, with the first + // character a letter, the last a letter or a number, and a 63 character + // maximum. + string big_query_export_id = 3 [(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 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]", "folders/[folder_id]", + // "projects/[project_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 deleting a big query export. +message DeleteBigQueryExportRequest { + // Required. Name of the big query export to delete. Its format is + // 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) = { + type: "securitycenter.googleapis.com/BigQueryExport" + } + ]; +} diff --git a/google/cloud/securitycenter/v1/securitycenter_v1.yaml b/google/cloud/securitycenter/v1/securitycenter_v1.yaml index fa97a9b15..662a65ed0 100644 --- a/google/cloud/securitycenter/v1/securitycenter_v1.yaml +++ b/google/cloud/securitycenter/v1/securitycenter_v1.yaml @@ -5,8 +5,10 @@ title: Security Command Center API apis: - name: google.cloud.securitycenter.v1.SecurityCenter +- name: google.longrunning.Operations types: +- name: google.cloud.securitycenter.v1.BigQueryExport - name: google.cloud.securitycenter.v1.BulkMuteFindingsResponse - name: google.cloud.securitycenter.v1.ExternalSystem - name: google.cloud.securitycenter.v1.MuteConfig @@ -30,7 +32,6 @@ http: rules: - selector: google.longrunning.Operations.CancelOperation post: '/v1/{name=organizations/*/operations/*}:cancel' - body: '*' - selector: google.longrunning.Operations.DeleteOperation delete: '/v1/{name=organizations/*/operations/*}' - selector: google.longrunning.Operations.GetOperation diff --git a/google/cloud/securitycenter/v1/source.proto b/google/cloud/securitycenter/v1/source.proto index 0df844dde..75c069a1c 100644 --- a/google/cloud/securitycenter/v1/source.proto +++ b/google/cloud/securitycenter/v1/source.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; diff --git a/google/cloud/securitycenter/v1/vulnerability.proto b/google/cloud/securitycenter/v1/vulnerability.proto index 4649adf90..3810d90c7 100644 --- a/google/cloud/securitycenter/v1/vulnerability.proto +++ b/google/cloud/securitycenter/v1/vulnerability.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter"; option java_multiple_files = true; @@ -46,6 +44,9 @@ message Cve { // 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; } // Additional Links diff --git a/google/cloud/securitycenter/v1beta1/BUILD.bazel b/google/cloud/securitycenter/v1beta1/BUILD.bazel index 8e6e5e387..b2c9d0cca 100644 --- a/google/cloud/securitycenter/v1beta1/BUILD.bazel +++ b/google/cloud/securitycenter/v1beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( ":securitycenter_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":securitycenter_java_proto", "//google/iam/v1:iam_java_proto", @@ -84,6 +85,7 @@ java_gapic_library( java_gapic_test( name = "securitycenter_java_gapic_test_suite", test_classes = [ + "com.google.cloud.securitycenter.v1beta1.SecurityCenterClientHttpJsonTest", "com.google.cloud.securitycenter.v1beta1.SecurityCenterClientTest", ], runtime_deps = [":securitycenter_java_gapic_test"], @@ -92,6 +94,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-securitycenter-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":securitycenter_java_gapic", ":securitycenter_java_grpc", @@ -129,6 +133,7 @@ go_gapic_library( grpc_service_config = "securitycenter_grpc_service_config.json", importpath = "cloud.google.com/go/securitycenter/apiv1beta1;securitycenter", service_yaml = "securitycenter_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":securitycenter_go_proto", "//google/iam/v1:iam_go_proto", @@ -164,12 +169,27 @@ 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 = "securitycenter_grpc_service_config.json", + transport = "grpc", + 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 @@ -256,8 +276,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -275,7 +295,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "securitycenter_ruby_gapic", - srcs = [":securitycenter_proto_with_info",], + srcs = [":securitycenter_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-securitycenter-v1beta1"], deps = [ ":securitycenter_ruby_grpc", @@ -320,6 +340,7 @@ csharp_gapic_library( srcs = [":securitycenter_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "securitycenter_grpc_service_config.json", + service_yaml = "securitycenter_v1beta1.yaml", deps = [ ":securitycenter_csharp_grpc", ":securitycenter_csharp_proto", diff --git a/google/cloud/securitycenter/v1beta1/asset.proto b/google/cloud/securitycenter/v1beta1/asset.proto index b73f7d5bc..415e7a2f0 100644 --- a/google/cloud/securitycenter/v1beta1/asset.proto +++ b/google/cloud/securitycenter/v1beta1/asset.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/securitycenter/v1beta1/security_marks.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/google/cloud/securitycenter/v1beta1/finding.proto b/google/cloud/securitycenter/v1beta1/finding.proto index 647b3b432..768bf411c 100644 --- a/google/cloud/securitycenter/v1beta1/finding.proto +++ b/google/cloud/securitycenter/v1beta1/finding.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/securitycenter/v1beta1/security_marks.proto"; diff --git a/google/cloud/securitycenter/v1beta1/organization_settings.proto b/google/cloud/securitycenter/v1beta1/organization_settings.proto index 88b2008a1..b447bf6e3 100644 --- a/google/cloud/securitycenter/v1beta1/organization_settings.proto +++ b/google/cloud/securitycenter/v1beta1/organization_settings.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto b/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto index 20d3b25b1..cab92d902 100644 --- a/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto +++ b/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/google/cloud/securitycenter/v1beta1/security_marks.proto b/google/cloud/securitycenter/v1beta1/security_marks.proto index 2547c3063..f1dc88d7c 100644 --- a/google/cloud/securitycenter/v1beta1/security_marks.proto +++ b/google/cloud/securitycenter/v1beta1/security_marks.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/google/cloud/securitycenter/v1beta1/securitycenter_service.proto b/google/cloud/securitycenter/v1beta1/securitycenter_service.proto index 351c1f4a3..55276ef7f 100644 --- a/google/cloud/securitycenter/v1beta1/securitycenter_service.proto +++ b/google/cloud/securitycenter/v1beta1/securitycenter_service.proto @@ -29,7 +29,6 @@ import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.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"; diff --git a/google/cloud/securitycenter/v1beta1/source.proto b/google/cloud/securitycenter/v1beta1/source.proto index fb1e6c6a4..a4a49749e 100644 --- a/google/cloud/securitycenter/v1beta1/source.proto +++ b/google/cloud/securitycenter/v1beta1/source.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/google/cloud/securitycenter/v1p1beta1/BUILD.bazel b/google/cloud/securitycenter/v1p1beta1/BUILD.bazel index 31a5bac6a..85ce05502 100644 --- a/google/cloud/securitycenter/v1p1beta1/BUILD.bazel +++ b/google/cloud/securitycenter/v1p1beta1/BUILD.bazel @@ -88,6 +88,7 @@ java_gapic_library( ":securitycenter_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":securitycenter_java_proto", "//google/iam/v1:iam_java_proto", @@ -97,6 +98,7 @@ java_gapic_library( java_gapic_test( name = "securitycenter_java_gapic_test_suite", test_classes = [ + "com.google.cloud.securitycenter.v1p1beta1.SecurityCenterClientHttpJsonTest", "com.google.cloud.securitycenter.v1p1beta1.SecurityCenterClientTest", ], runtime_deps = [":securitycenter_java_gapic_test"], @@ -105,6 +107,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-securitycenter-v1p1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":securitycenter_java_gapic", ":securitycenter_java_grpc", @@ -142,6 +146,7 @@ go_gapic_library( grpc_service_config = "securitycenter_grpc_service_config.json", importpath = "cloud.google.com/go/securitycenter/apiv1p1beta1;securitycenter", service_yaml = "securitycenter_v1p1beta1.yaml", + transport = "grpc+rest", deps = [ ":securitycenter_go_proto", "//google/iam/v1:iam_go_proto", @@ -177,12 +182,27 @@ 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 = "securitycenter_grpc_service_config.json", + transport = "grpc", + 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 @@ -342,6 +362,7 @@ csharp_gapic_library( srcs = [":securitycenter_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "securitycenter_grpc_service_config.json", + service_yaml = "securitycenter_v1p1beta1.yaml", deps = [ ":securitycenter_csharp_grpc", ":securitycenter_csharp_proto", diff --git a/google/cloud/securitycenter/v1p1beta1/asset.proto b/google/cloud/securitycenter/v1p1beta1/asset.proto index 9ee30783f..45fdcbf5a 100644 --- a/google/cloud/securitycenter/v1p1beta1/asset.proto +++ b/google/cloud/securitycenter/v1p1beta1/asset.proto @@ -21,7 +21,6 @@ import "google/cloud/securitycenter/v1p1beta1/folder.proto"; import "google/cloud/securitycenter/v1p1beta1/security_marks.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/finding.proto b/google/cloud/securitycenter/v1p1beta1/finding.proto index 572a368f8..5edd3d862 100644 --- a/google/cloud/securitycenter/v1p1beta1/finding.proto +++ b/google/cloud/securitycenter/v1p1beta1/finding.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/securitycenter/v1p1beta1/security_marks.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/folder.proto b/google/cloud/securitycenter/v1p1beta1/folder.proto index ec6df5edd..28a587163 100644 --- a/google/cloud/securitycenter/v1p1beta1/folder.proto +++ b/google/cloud/securitycenter/v1p1beta1/folder.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/notification_config.proto b/google/cloud/securitycenter/v1p1beta1/notification_config.proto index be5f6e0f5..faaab37b1 100644 --- a/google/cloud/securitycenter/v1p1beta1/notification_config.proto +++ b/google/cloud/securitycenter/v1p1beta1/notification_config.proto @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1p1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/notification_message.proto b/google/cloud/securitycenter/v1p1beta1/notification_message.proto index 5e671dd01..78a3e781f 100644 --- a/google/cloud/securitycenter/v1p1beta1/notification_message.proto +++ b/google/cloud/securitycenter/v1p1beta1/notification_message.proto @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1p1beta1; import "google/cloud/securitycenter/v1p1beta1/finding.proto"; import "google/cloud/securitycenter/v1p1beta1/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/organization_settings.proto b/google/cloud/securitycenter/v1p1beta1/organization_settings.proto index ad36d58a1..b80f046d6 100644 --- a/google/cloud/securitycenter/v1p1beta1/organization_settings.proto +++ b/google/cloud/securitycenter/v1p1beta1/organization_settings.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/resource.proto b/google/cloud/securitycenter/v1p1beta1/resource.proto index 0fe2d362a..3b2d2d437 100644 --- a/google/cloud/securitycenter/v1p1beta1/resource.proto +++ b/google/cloud/securitycenter/v1p1beta1/resource.proto @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1p1beta1; import "google/api/field_behavior.proto"; import "google/cloud/securitycenter/v1p1beta1/folder.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto b/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto index d867d201f..835e33fbd 100644 --- a/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto +++ b/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/security_marks.proto b/google/cloud/securitycenter/v1p1beta1/security_marks.proto index 22db26cba..2245605b3 100644 --- a/google/cloud/securitycenter/v1p1beta1/security_marks.proto +++ b/google/cloud/securitycenter/v1p1beta1/security_marks.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/securitycenter/v1p1beta1/source.proto b/google/cloud/securitycenter/v1p1beta1/source.proto index 5f36167ad..e2a556595 100644 --- a/google/cloud/securitycenter/v1p1beta1/source.proto +++ b/google/cloud/securitycenter/v1p1beta1/source.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/google/cloud/sensitiveaction/logging/v1/BUILD.bazel b/google/cloud/sensitiveaction/logging/v1/BUILD.bazel new file mode 100644 index 000000000..7d19c2287 --- /dev/null +++ b/google/cloud/sensitiveaction/logging/v1/BUILD.bazel @@ -0,0 +1,127 @@ +# This file was automatically generated by BuildFileGenerator + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", + "csharp_grpc_library", + "csharp_proto_library", + "go_proto_library", + "java_grpc_library", + "java_proto_library", + "moved_proto_library", + "php_grpc_library", + "php_proto_library", + "py_grpc_library", + "py_proto_library", + "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 = "logging_proto", + srcs = [ + "sensitive_action_payload.proto", + ], + deps = [ + "//google/cloud/securitycenter/v1:securitycenter_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/sensitiveaction/logging/v1", + protos = [":logging_proto"], + deps = [ + "//google/cloud/securitycenter/v1:securitycenter_go_proto", + ], +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "//google/cloud/securitycenter/v1:securitycenter_proto", + "@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"], +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +ruby_proto_library( + name = "logging_ruby_proto", + deps = [":logging_proto"], +) + +ruby_grpc_library( + name = "logging_ruby_grpc", + srcs = [":logging_proto"], + deps = [":logging_ruby_proto"], +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +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/google/cloud/sensitiveaction/logging/v1/sensitive_action_payload.proto b/google/cloud/sensitiveaction/logging/v1/sensitive_action_payload.proto new file mode 100644 index 000000000..4f1f2f9ca --- /dev/null +++ b/google/cloud/sensitiveaction/logging/v1/sensitive_action_payload.proto @@ -0,0 +1,66 @@ +// 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.cloud.sensitiveaction.logging.v1; + +import "google/cloud/securitycenter/v1/access.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SensitiveAction.Logging.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/sensitiveaction/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "SensitiveActionPayloadProto"; +option java_package = "com.google.cloud.sensitiveaction.logging.v1"; +option php_namespace = "Google\\Cloud\\SensitiveAction\\Logging\\V1"; +option ruby_package = "Google::Cloud::SensitiveAction::Logging::V1"; + +// Payload proto for sensitiveaction.googleapis.com/action +// Platform Log event that describes a sensitive action +message SensitiveAction { + // Used to reference a specific Cloud Logging LogEntry. + message SourceLogId { + // The GCP resource (organization, folder, or project) that the LogEntry + // came from. + string resource_container = 1; + + // The timestamp of the LogEntry. + google.protobuf.Timestamp log_time = 2; + + // The insert_id of the LogEntry. + string insert_id = 3; + + // A link to the Cloud Logging dashboard with a query for the LogEntry. + string query_uri = 4; + } + + // The type of action (eg. "change_organization_policy"). + string action_type = 1; + + // The time this action was detected. + google.protobuf.Timestamp action_time = 2; + + // GCP resources that are involved in the action. + repeated string affected_resources = 3; + + // Cloud Logging entries that were used to identify the action. + repeated SourceLogId source_log_ids = 4; + + // Link to documentation where you can learn more about sensitive actions. + string learn_more_uri = 5; + + // Access details associated to the sensitive action. + google.cloud.securitycenter.v1.Access access = 6; +} diff --git a/google/cloud/servicedirectory/v1/BUILD.bazel b/google/cloud/servicedirectory/v1/BUILD.bazel index 0b6f71499..e65513482 100644 --- a/google/cloud/servicedirectory/v1/BUILD.bazel +++ b/google/cloud/servicedirectory/v1/BUILD.bazel @@ -40,6 +40,7 @@ load( "py_gapic_library", "py_grpc_library", "py_proto_library", + "py_test", "ruby_cloud_gapic_library", "ruby_gapic_assembly_pkg", "ruby_grpc_library", @@ -97,6 +98,7 @@ java_gapic_library( ":servicedirectory_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":servicedirectory_java_proto", "//google/iam/v1:iam_java_proto", @@ -106,7 +108,9 @@ java_gapic_library( java_gapic_test( name = "servicedirectory_java_gapic_test_suite", test_classes = [ + "com.google.cloud.servicedirectory.v1.LookupServiceClientHttpJsonTest", "com.google.cloud.servicedirectory.v1.LookupServiceClientTest", + "com.google.cloud.servicedirectory.v1.RegistrationServiceClientHttpJsonTest", "com.google.cloud.servicedirectory.v1.RegistrationServiceClientTest", ], runtime_deps = [":servicedirectory_java_gapic_test"], @@ -115,6 +119,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-servicedirectory-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":servicedirectory_java_gapic", ":servicedirectory_java_grpc", @@ -140,6 +146,7 @@ go_gapic_library( grpc_service_config = "servicedirectory_grpc_service_config.json", importpath = "cloud.google.com/go/servicedirectory/apiv1;servicedirectory", service_yaml = "servicedirectory_v1.yaml", + transport = "grpc+rest", deps = [ ":servicedirectory_go_proto", "//google/iam/v1:iam_go_proto", @@ -170,6 +177,20 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-service-directory", ], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "servicedirectory_py_gapic_test", + srcs = [ + "servicedirectory_py_gapic_pytest.py", + "servicedirectory_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":servicedirectory_py_gapic"], ) # Open Source Packages @@ -287,6 +308,7 @@ csharp_gapic_library( srcs = [":servicedirectory_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "servicedirectory_grpc_service_config.json", + service_yaml = "servicedirectory_v1.yaml", deps = [ ":servicedirectory_csharp_grpc", ":servicedirectory_csharp_proto", diff --git a/google/cloud/servicedirectory/v1/endpoint.proto b/google/cloud/servicedirectory/v1/endpoint.proto index de561fe04..5748f304d 100644 --- a/google/cloud/servicedirectory/v1/endpoint.proto +++ b/google/cloud/servicedirectory/v1/endpoint.proto @@ -15,7 +15,6 @@ syntax = "proto3"; package google.cloud.servicedirectory.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; diff --git a/google/cloud/servicedirectory/v1/namespace.proto b/google/cloud/servicedirectory/v1/namespace.proto index 8d8afad31..e4a3c1ea7 100644 --- a/google/cloud/servicedirectory/v1/namespace.proto +++ b/google/cloud/servicedirectory/v1/namespace.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.servicedirectory.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; diff --git a/google/cloud/servicedirectory/v1/service.proto b/google/cloud/servicedirectory/v1/service.proto index c0eea5f71..803de1f5d 100644 --- a/google/cloud/servicedirectory/v1/service.proto +++ b/google/cloud/servicedirectory/v1/service.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.servicedirectory.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/servicedirectory/v1/endpoint.proto"; diff --git a/google/cloud/servicedirectory/v1beta1/BUILD.bazel b/google/cloud/servicedirectory/v1beta1/BUILD.bazel index 12b4c2c7e..e00053a2a 100644 --- a/google/cloud/servicedirectory/v1beta1/BUILD.bazel +++ b/google/cloud/servicedirectory/v1beta1/BUILD.bazel @@ -79,6 +79,7 @@ java_gapic_library( ":servicedirectory_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":servicedirectory_java_proto", "//google/iam/v1:iam_java_proto", @@ -88,7 +89,9 @@ java_gapic_library( java_gapic_test( name = "servicedirectory_java_gapic_test_suite", test_classes = [ + "com.google.cloud.servicedirectory.v1beta1.LookupServiceClientHttpJsonTest", "com.google.cloud.servicedirectory.v1beta1.LookupServiceClientTest", + "com.google.cloud.servicedirectory.v1beta1.RegistrationServiceClientHttpJsonTest", "com.google.cloud.servicedirectory.v1beta1.RegistrationServiceClientTest", ], runtime_deps = [":servicedirectory_java_gapic_test"], @@ -97,6 +100,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-servicedirectory-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":servicedirectory_java_gapic", ":servicedirectory_java_grpc", @@ -134,6 +139,7 @@ go_gapic_library( importpath = "cloud.google.com/go/servicedirectory/apiv1beta1;servicedirectory", metadata = True, service_yaml = "servicedirectory_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":servicedirectory_go_proto", "//google/iam/v1:iam_go_proto", @@ -165,6 +171,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -172,6 +179,20 @@ py_gapic_library( srcs = [":servicedirectory_proto"], grpc_service_config = "servicedirectory_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-service-directory"], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "servicedirectory_py_gapic_test", + srcs = [ + "servicedirectory_py_gapic_pytest.py", + "servicedirectory_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":servicedirectory_py_gapic"], ) # Open Source Packages @@ -332,6 +353,7 @@ csharp_gapic_library( srcs = [":servicedirectory_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "servicedirectory_grpc_service_config.json", + service_yaml = "servicedirectory_v1beta1.yaml", deps = [ ":servicedirectory_csharp_grpc", ":servicedirectory_csharp_proto", diff --git a/google/cloud/servicedirectory/v1beta1/endpoint.proto b/google/cloud/servicedirectory/v1beta1/endpoint.proto index d44af66de..7a3fbb2e6 100644 --- a/google/cloud/servicedirectory/v1beta1/endpoint.proto +++ b/google/cloud/servicedirectory/v1beta1/endpoint.proto @@ -19,7 +19,6 @@ package google.cloud.servicedirectory.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ServiceDirectory.V1Beta1"; diff --git a/google/cloud/servicedirectory/v1beta1/namespace.proto b/google/cloud/servicedirectory/v1beta1/namespace.proto index 40b73ba00..4fc1ce806 100644 --- a/google/cloud/servicedirectory/v1beta1/namespace.proto +++ b/google/cloud/servicedirectory/v1beta1/namespace.proto @@ -19,7 +19,6 @@ package google.cloud.servicedirectory.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ServiceDirectory.V1Beta1"; diff --git a/google/cloud/servicedirectory/v1beta1/service.proto b/google/cloud/servicedirectory/v1beta1/service.proto index f2f889fa3..4671bb663 100644 --- a/google/cloud/servicedirectory/v1beta1/service.proto +++ b/google/cloud/servicedirectory/v1beta1/service.proto @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/servicedirectory/v1beta1/endpoint.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ServiceDirectory.V1Beta1"; diff --git a/google/cloud/shell/v1/BUILD.bazel b/google/cloud/shell/v1/BUILD.bazel index 525ef751c..1b98b7c61 100644 --- a/google/cloud/shell/v1/BUILD.bazel +++ b/google/cloud/shell/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":shell_java_grpc", ], + transport = "grpc+rest", deps = [ ":shell_java_proto", ], @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "shell_java_gapic_test_suite", test_classes = [ + "com.google.cloud.shell.v1.CloudShellServiceClientHttpJsonTest", "com.google.cloud.shell.v1.CloudShellServiceClientTest", ], runtime_deps = [":shell_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-shell-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":shell_java_gapic", ":shell_java_grpc", @@ -125,6 +129,7 @@ go_gapic_library( importpath = "cloud.google.com/go/shell/apiv1;shell", metadata = True, service_yaml = "cloudshell_v1.yaml", + transport = "grpc+rest", deps = [ ":shell_go_proto", "//google/longrunning:longrunning_go_proto", @@ -158,12 +163,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "shell_py_gapic", srcs = [":shell_proto"], grpc_service_config = "cloudshell_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "shell_py_gapic_test", + srcs = [ + "shell_py_gapic_pytest.py", + "shell_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":shell_py_gapic"], ) # Open Source Packages @@ -323,6 +340,7 @@ csharp_gapic_library( srcs = [":shell_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudshell_grpc_service_config.json", + service_yaml = "cloudshell_v1.yaml", deps = [ ":shell_csharp_grpc", ":shell_csharp_proto", diff --git a/google/cloud/shell/v1/cloudshell.proto b/google/cloud/shell/v1/cloudshell.proto index f4b35b171..6d4f6c6b0 100644 --- a/google/cloud/shell/v1/cloudshell.proto +++ b/google/cloud/shell/v1/cloudshell.proto @@ -21,7 +21,6 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/shell/v1;shell"; diff --git a/google/cloud/shell/v1/cloudshell_v1.yaml b/google/cloud/shell/v1/cloudshell_v1.yaml index d79448c63..c042cece4 100644 --- a/google/cloud/shell/v1/cloudshell_v1.yaml +++ b/google/cloud/shell/v1/cloudshell_v1.yaml @@ -30,6 +30,17 @@ backend: - selector: 'google.longrunning.Operations.*' deadline: 30.0 +http: + rules: + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=operations}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=operations/**}' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=operations/**}' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=operations/**}:cancel' + authentication: rules: - selector: 'google.cloud.shell.v1.CloudShellService.*' diff --git a/google/cloud/speech/BUILD.bazel b/google/cloud/speech/BUILD.bazel index 582b9b968..f2c96e3ee 100644 --- a/google/cloud/speech/BUILD.bazel +++ b/google/cloud/speech/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-speech", "ruby-cloud-env-prefix=SPEECH", - "ruby-cloud-wrapper-of=v1:0.0;v1p1beta1:0.0", + "ruby-cloud-wrapper-of=v1:0.8;v1p1beta1:0.0", "ruby-cloud-product-url=https://cloud.google.com/speech-to-text", "ruby-cloud-api-id=speech.googleapis.com", "ruby-cloud-api-shortname=speech", diff --git a/google/cloud/speech/v1/BUILD.bazel b/google/cloud/speech/v1/BUILD.bazel index f1a61e4fa..e2a956c65 100644 --- a/google/cloud/speech/v1/BUILD.bazel +++ b/google/cloud/speech/v1/BUILD.bazel @@ -22,6 +22,7 @@ proto_library( name = "speech_proto", srcs = [ "cloud_speech.proto", + "cloud_speech_adaptation.proto", "resource.proto", ], deps = [ @@ -31,8 +32,9 @@ proto_library( "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", - "@com_google_protobuf//:any_proto", "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", "@com_google_protobuf//:wrappers_proto", ], @@ -78,6 +80,7 @@ java_gapic_library( test_deps = [ ":speech_java_grpc", ], + transport = "grpc+rest", deps = [ ":speech_java_proto", "//google/api:api_java_proto", @@ -87,6 +90,9 @@ java_gapic_library( java_gapic_test( name = "speech_java_gapic_test_suite", test_classes = [ + "com.google.cloud.speech.v1.AdaptationClientHttpJsonTest", + "com.google.cloud.speech.v1.AdaptationClientTest", + "com.google.cloud.speech.v1.SpeechClientHttpJsonTest", "com.google.cloud.speech.v1.SpeechClientTest", ], runtime_deps = [":speech_java_gapic_test"], @@ -95,6 +101,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-speech-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":speech_java_gapic", ":speech_java_grpc", @@ -133,12 +141,12 @@ go_gapic_library( importpath = "cloud.google.com/go/speech/apiv1;speech", metadata = True, service_yaml = "speech_v1.yaml", + transport = "grpc+rest", deps = [ ":speech_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", ], ) @@ -168,12 +176,25 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "speech_py_gapic", srcs = [":speech_proto"], grpc_service_config = "speech_grpc_service_config.json", + service_yaml = "speech_v1.yaml", + transport = "grpc", +) + +py_test( + name = "speech_py_gapic_test", + srcs = [ + "speech_py_gapic_pytest.py", + "speech_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":speech_py_gapic"], ) # Open Source Packages @@ -333,6 +354,7 @@ csharp_gapic_library( srcs = [":speech_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "speech_grpc_service_config.json", + service_yaml = "speech_v1.yaml", deps = [ ":speech_csharp_grpc", ":speech_csharp_proto", diff --git a/google/cloud/speech/v1/cloud_speech.proto b/google/cloud/speech/v1/cloud_speech.proto index 875ea250e..65aed9837 100644 --- a/google/cloud/speech/v1/cloud_speech.proto +++ b/google/cloud/speech/v1/cloud_speech.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/speech/v1/resource.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; @@ -384,6 +383,15 @@ message RecognitionConfig { //
// // + // + // + // + // + // + // + // + // // // // @@ -405,6 +413,16 @@ message RecognitionConfig { // For example, long-form audio. Ideally the audio is high-fidelity, // recorded at a 16khz or greater sampling rate. // + // + // + // + // + // + // + // + // //
Description
latest_longBest for long form content like media or conversation.
latest_shortBest for short form content like commands or single shot directed + // speech.
command_and_searchBest for short queries such as voice commands or voice search.
medical_conversationBest for audio that originated from a conversation between a + // medical provider and patient.
medical_dictationBest for audio that originated from dictation notes by a medical + // provider.
string model = 13; @@ -445,6 +463,8 @@ message SpeakerDiarizationConfig { // Description of audio data to be recognized. message RecognitionMetadata { + option deprecated = true; + // Use case categories that the audio recognition request can be described // by. enum InteractionType { @@ -820,6 +840,9 @@ message SpeechRecognitionResult { // Alternative hypotheses (a.k.a. n-best list). message SpeechRecognitionAlternative { // Transcript text representing the words that the user spoke. + // In languages that use spaces to separate words, the transcript might have a + // leading space if it isn't the first result. You can concatenate each result + // to obtain the full transcript without using a separator. string transcript = 1; // The confidence estimate between 0.0 and 1.0. A higher number diff --git a/google/cloud/speech/v1/cloud_speech_adaptation.proto b/google/cloud/speech/v1/cloud_speech_adaptation.proto new file mode 100644 index 000000000..b0d60ab4a --- /dev/null +++ b/google/cloud/speech/v1/cloud_speech_adaptation.proto @@ -0,0 +1,370 @@ +// 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.cloud.speech.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/speech/v1/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/genproto/googleapis/cloud/speech/v1;speech"; +option java_multiple_files = true; +option java_outer_classname = "SpeechAdaptationProto"; +option java_package = "com.google.cloud.speech.v1"; +option objc_class_prefix = "GCS"; + +// Service that implements Google Cloud Speech Adaptation API. +service Adaptation { + option (google.api.default_host) = "speech.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Create a set of phrase hints. Each item in the set can be a single word or + // a multi-word phrase. The items in the PhraseSet are favored by the + // recognition model when you send a call that includes the PhraseSet. + rpc CreatePhraseSet(CreatePhraseSetRequest) returns (PhraseSet) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/phraseSets" + body: "*" + }; + option (google.api.method_signature) = "parent,phrase_set,phrase_set_id"; + } + + // Get a phrase set. + rpc GetPhraseSet(GetPhraseSetRequest) returns (PhraseSet) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/phraseSets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List phrase sets. + rpc ListPhraseSet(ListPhraseSetRequest) returns (ListPhraseSetResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/phraseSets" + }; + option (google.api.method_signature) = "parent"; + } + + // Update a phrase set. + rpc UpdatePhraseSet(UpdatePhraseSetRequest) returns (PhraseSet) { + option (google.api.http) = { + patch: "/v1/{phrase_set.name=projects/*/locations/*/phraseSets/*}" + body: "phrase_set" + }; + option (google.api.method_signature) = "phrase_set,update_mask"; + } + + // Delete a phrase set. + rpc DeletePhraseSet(DeletePhraseSetRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/phraseSets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Create a custom class. + rpc CreateCustomClass(CreateCustomClassRequest) returns (CustomClass) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/customClasses" + body: "*" + }; + option (google.api.method_signature) = "parent,custom_class,custom_class_id"; + } + + // Get a custom class. + rpc GetCustomClass(GetCustomClassRequest) returns (CustomClass) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/customClasses/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List custom classes. + rpc ListCustomClasses(ListCustomClassesRequest) returns (ListCustomClassesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/customClasses" + }; + option (google.api.method_signature) = "parent"; + } + + // Update a custom class. + rpc UpdateCustomClass(UpdateCustomClassRequest) returns (CustomClass) { + option (google.api.http) = { + patch: "/v1/{custom_class.name=projects/*/locations/*/customClasses/*}" + body: "custom_class" + }; + option (google.api.method_signature) = "custom_class,update_mask"; + } + + // Delete a custom class. + rpc DeleteCustomClass(DeleteCustomClassRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/customClasses/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Message sent by the client for the `CreatePhraseSet` method. +message CreatePhraseSetRequest { + // Required. The parent resource where this phrase set will be created. Format: + // + // `projects/{project}/locations/{location}/phraseSets` + // + // Speech-to-Text supports three locations: `global`, `us` (US North America), + // and `eu` (Europe). If you are calling the `speech.googleapis.com` + // endpoint, use the `global` location. To specify a region, use a + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "speech.googleapis.com/PhraseSet" + } + ]; + + // Required. The ID to use for the phrase set, which will become the final + // component of the phrase set's resource name. + // + // This value should restrict to letters, numbers, and hyphens, with the first + // character a letter, the last a letter or a number, and be 4-63 characters. + string phrase_set_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The phrase set to create. + PhraseSet phrase_set = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Message sent by the client for the `UpdatePhraseSet` method. +message UpdatePhraseSetRequest { + // Required. The phrase set to update. + // + // The phrase set's `name` field is used to identify the set to be + // updated. Format: + // + // `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + // + // Speech-to-Text supports three locations: `global`, `us` (US North America), + // and `eu` (Europe). If you are calling the `speech.googleapis.com` + // endpoint, use the `global` location. To specify a region, use a + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. + PhraseSet phrase_set = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Message sent by the client for the `GetPhraseSet` method. +message GetPhraseSetRequest { + // Required. The name of the phrase set to retrieve. Format: + // + // `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + // + // Speech-to-Text supports three locations: `global`, `us` (US North America), + // and `eu` (Europe). If you are calling the `speech.googleapis.com` + // endpoint, use the `global` location. To specify a region, use a + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/PhraseSet" + } + ]; +} + +// Message sent by the client for the `ListPhraseSet` method. +message ListPhraseSetRequest { + // Required. The parent, which owns this collection of phrase set. Format: + // + // `projects/{project}/locations/{location}` + // + // Speech-to-Text supports three locations: `global`, `us` (US North America), + // and `eu` (Europe). If you are calling the `speech.googleapis.com` + // endpoint, use the `global` location. To specify a region, use a + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "speech.googleapis.com/PhraseSet" + } + ]; + + // The maximum number of phrase sets to return. The service may return + // fewer than this value. If unspecified, at most 50 phrase sets 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 `ListPhraseSet` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListPhraseSet` must + // match the call that provided the page token. + string page_token = 3; +} + +// Message returned to the client by the `ListPhraseSet` method. +message ListPhraseSetResponse { + // The phrase set. + repeated PhraseSet phrase_sets = 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; +} + +// Message sent by the client for the `DeletePhraseSet` method. +message DeletePhraseSetRequest { + // Required. The name of the phrase set to delete. Format: + // + // `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/PhraseSet" + } + ]; +} + +// Message sent by the client for the `CreateCustomClass` method. +message CreateCustomClassRequest { + // Required. The parent resource where this custom class will be created. Format: + // + // `projects/{project}/locations/{location}/customClasses` + // + // Speech-to-Text supports three locations: `global`, `us` (US North America), + // and `eu` (Europe). If you are calling the `speech.googleapis.com` + // endpoint, use the `global` location. To specify a region, use a + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "speech.googleapis.com/CustomClass" + } + ]; + + // Required. The ID to use for the custom class, which will become the final + // component of the custom class' resource name. + // + // This value should restrict to letters, numbers, and hyphens, with the first + // character a letter, the last a letter or a number, and be 4-63 characters. + string custom_class_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The custom class to create. + CustomClass custom_class = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Message sent by the client for the `UpdateCustomClass` method. +message UpdateCustomClassRequest { + // Required. The custom class to update. + // + // The custom class's `name` field is used to identify the custom class to be + // updated. Format: + // + // `projects/{project}/locations/{location}/customClasses/{custom_class}` + // + // Speech-to-Text supports three locations: `global`, `us` (US North America), + // and `eu` (Europe). If you are calling the `speech.googleapis.com` + // endpoint, use the `global` location. To specify a region, use a + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. + CustomClass custom_class = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Message sent by the client for the `GetCustomClass` method. +message GetCustomClassRequest { + // Required. The name of the custom class to retrieve. Format: + // + // `projects/{project}/locations/{location}/customClasses/{custom_class}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/CustomClass" + } + ]; +} + +// Message sent by the client for the `ListCustomClasses` method. +message ListCustomClassesRequest { + // Required. The parent, which owns this collection of custom classes. Format: + // + // `projects/{project}/locations/{location}/customClasses` + // + // Speech-to-Text supports three locations: `global`, `us` (US North America), + // and `eu` (Europe). If you are calling the `speech.googleapis.com` + // endpoint, use the `global` location. To specify a region, use a + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "speech.googleapis.com/CustomClass" + } + ]; + + // The maximum number of custom classes to return. The service may return + // fewer than this value. If unspecified, at most 50 custom classes 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 `ListCustomClass` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCustomClass` must + // match the call that provided the page token. + string page_token = 3; +} + +// Message returned to the client by the `ListCustomClasses` method. +message ListCustomClassesResponse { + // The custom classes. + repeated CustomClass custom_classes = 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; +} + +// Message sent by the client for the `DeleteCustomClass` method. +message DeleteCustomClassRequest { + // Required. The name of the custom class to delete. Format: + // + // `projects/{project}/locations/{location}/customClasses/{custom_class}` + // + // Speech-to-Text supports three locations: `global`, `us` (US North America), + // and `eu` (Europe). If you are calling the `speech.googleapis.com` + // endpoint, use the `global` location. To specify a region, use a + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/CustomClass" + } + ]; +} diff --git a/google/cloud/speech/v1/resource.proto b/google/cloud/speech/v1/resource.proto index edaeeff23..0ae5caa9e 100644 --- a/google/cloud/speech/v1/resource.proto +++ b/google/cloud/speech/v1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,8 +17,6 @@ syntax = "proto3"; package google.cloud.speech.v1; import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/speech/v1;speech"; diff --git a/google/cloud/speech/v1/speech_v1.yaml b/google/cloud/speech/v1/speech_v1.yaml index 4fccc89d1..d2a5ba9e0 100644 --- a/google/cloud/speech/v1/speech_v1.yaml +++ b/google/cloud/speech/v1/speech_v1.yaml @@ -4,6 +4,7 @@ name: speech.googleapis.com title: Cloud Speech-to-Text API apis: +- name: google.cloud.speech.v1.Adaptation - name: google.cloud.speech.v1.Speech types: @@ -19,6 +20,8 @@ documentation: backend: rules: + - selector: 'google.cloud.speech.v1.Adaptation.*' + deadline: 355.0 - selector: 'google.cloud.speech.v1.Speech.*' deadline: 355.0 - selector: 'google.longrunning.Operations.*' @@ -33,6 +36,10 @@ http: authentication: rules: + - selector: 'google.cloud.speech.v1.Adaptation.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.speech.v1.Speech.*' oauth: canonical_scopes: |- diff --git a/google/cloud/speech/v1p1beta1/BUILD.bazel b/google/cloud/speech/v1p1beta1/BUILD.bazel index 8eb868b2c..0f9c33419 100644 --- a/google/cloud/speech/v1p1beta1/BUILD.bazel +++ b/google/cloud/speech/v1p1beta1/BUILD.bazel @@ -79,6 +79,7 @@ java_gapic_library( test_deps = [ ":speech_java_grpc", ], + transport = "grpc+rest", deps = [ ":speech_java_proto", ], @@ -87,7 +88,9 @@ java_gapic_library( java_gapic_test( name = "speech_java_gapic_test_suite", test_classes = [ + "com.google.cloud.speech.v1p1beta1.AdaptationClientHttpJsonTest", "com.google.cloud.speech.v1p1beta1.AdaptationClientTest", + "com.google.cloud.speech.v1p1beta1.SpeechClientHttpJsonTest", "com.google.cloud.speech.v1p1beta1.SpeechClientTest", ], runtime_deps = [":speech_java_gapic_test"], @@ -96,6 +99,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-speech-v1p1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":speech_java_gapic", ":speech_java_grpc", @@ -134,6 +139,7 @@ go_gapic_library( importpath = "cloud.google.com/go/speech/apiv1p1beta1;speech", metadata = True, service_yaml = "speech_v1p1beta1.yaml", + transport = "grpc+rest", deps = [ ":speech_go_proto", "//google/longrunning:longrunning_go_proto", @@ -169,12 +175,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "speech_py_gapic", srcs = [":speech_proto"], grpc_service_config = "speech_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "speech_py_gapic_test", + srcs = [ + "speech_py_gapic_pytest.py", + "speech_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":speech_py_gapic"], ) # Open Source Packages @@ -334,6 +352,7 @@ csharp_gapic_library( srcs = [":speech_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "speech_grpc_service_config.json", + service_yaml = "speech_v1p1beta1.yaml", deps = [ ":speech_csharp_grpc", ":speech_csharp_proto", diff --git a/google/cloud/speech/v1p1beta1/cloud_speech.proto b/google/cloud/speech/v1p1beta1/cloud_speech.proto index ef499edd1..9bf36fccf 100644 --- a/google/cloud/speech/v1p1beta1/cloud_speech.proto +++ b/google/cloud/speech/v1p1beta1/cloud_speech.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/speech/v1p1beta1/resource.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; @@ -407,6 +406,15 @@ message RecognitionConfig { // Description // // + // latest_long + // Best for long form content like media or conversation. + // + // + // latest_short + // Best for short form content like commands or single shot directed + // speech. + // + // // command_and_search // Best for short queries such as voice commands or voice search. // @@ -428,6 +436,16 @@ message RecognitionConfig { // For example, long-form audio. Ideally the audio is high-fidelity, // recorded at a 16khz or greater sampling rate. // + // + // medical_conversation + // Best for audio that originated from a conversation between a + // medical provider and patient. + // + // + // medical_dictation + // Best for audio that originated from dictation notes by a medical + // provider. + // // string model = 13; @@ -468,6 +486,8 @@ message SpeakerDiarizationConfig { // Description of audio data to be recognized. message RecognitionMetadata { + option deprecated = true; + // Use case categories that the audio recognition request can be described // by. enum InteractionType { @@ -850,6 +870,9 @@ message SpeechRecognitionResult { // Alternative hypotheses (a.k.a. n-best list). message SpeechRecognitionAlternative { // Transcript text representing the words that the user spoke. + // In languages that use spaces to separate words, the transcript might have a + // leading space if it isn't the first result. You can concatenate each result + // to obtain the full transcript without using a separator. string transcript = 1; // The confidence estimate between 0.0 and 1.0. A higher number diff --git a/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto b/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto index de8ecdac9..45ca97f2d 100644 --- a/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto +++ b/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -132,8 +132,8 @@ message CreatePhraseSetRequest { // Speech-to-Text supports three locations: `global`, `us` (US North America), // and `eu` (Europe). If you are calling the `speech.googleapis.com` // endpoint, use the `global` location. To specify a region, use a - // [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or - // `eu` location value. + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -144,8 +144,8 @@ message CreatePhraseSetRequest { // Required. The ID to use for the phrase set, which will become the final // component of the phrase set's resource name. // - // This value should be 4-63 characters, and valid characters - // are /[a-z][0-9]-/. + // This value should restrict to letters, numbers, and hyphens, with the first + // character a letter, the last a letter or a number, and be 4-63 characters. string phrase_set_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The phrase set to create. @@ -164,8 +164,8 @@ message UpdatePhraseSetRequest { // Speech-to-Text supports three locations: `global`, `us` (US North America), // and `eu` (Europe). If you are calling the `speech.googleapis.com` // endpoint, use the `global` location. To specify a region, use a - // [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or - // `eu` location value. + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. PhraseSet phrase_set = 1 [(google.api.field_behavior) = REQUIRED]; // The list of fields to be updated. @@ -181,8 +181,8 @@ message GetPhraseSetRequest { // Speech-to-Text supports three locations: `global`, `us` (US North America), // and `eu` (Europe). If you are calling the `speech.googleapis.com` // endpoint, use the `global` location. To specify a region, use a - // [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or - // `eu` location value. + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -200,8 +200,8 @@ message ListPhraseSetRequest { // Speech-to-Text supports three locations: `global`, `us` (US North America), // and `eu` (Europe). If you are calling the `speech.googleapis.com` // endpoint, use the `global` location. To specify a region, use a - // [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or - // `eu` location value. + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -255,8 +255,8 @@ message CreateCustomClassRequest { // Speech-to-Text supports three locations: `global`, `us` (US North America), // and `eu` (Europe). If you are calling the `speech.googleapis.com` // endpoint, use the `global` location. To specify a region, use a - // [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or - // `eu` location value. + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -267,8 +267,8 @@ message CreateCustomClassRequest { // Required. The ID to use for the custom class, which will become the final // component of the custom class' resource name. // - // This value should be 4-63 characters, and valid characters - // are /[a-z][0-9]-/. + // This value should restrict to letters, numbers, and hyphens, with the first + // character a letter, the last a letter or a number, and be 4-63 characters. string custom_class_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The custom class to create. @@ -287,8 +287,8 @@ message UpdateCustomClassRequest { // Speech-to-Text supports three locations: `global`, `us` (US North America), // and `eu` (Europe). If you are calling the `speech.googleapis.com` // endpoint, use the `global` location. To specify a region, use a - // [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or - // `eu` location value. + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. CustomClass custom_class = 1 [(google.api.field_behavior) = REQUIRED]; // The list of fields to be updated. @@ -317,8 +317,8 @@ message ListCustomClassesRequest { // Speech-to-Text supports three locations: `global`, `us` (US North America), // and `eu` (Europe). If you are calling the `speech.googleapis.com` // endpoint, use the `global` location. To specify a region, use a - // [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or - // `eu` location value. + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -359,8 +359,8 @@ message DeleteCustomClassRequest { // Speech-to-Text supports three locations: `global`, `us` (US North America), // and `eu` (Europe). If you are calling the `speech.googleapis.com` // endpoint, use the `global` location. To specify a region, use a - // [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or - // `eu` location value. + // [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + // with matching `us` or `eu` location value. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/speech/v1p1beta1/resource.proto b/google/cloud/speech/v1p1beta1/resource.proto index 297f38908..0323b19e2 100644 --- a/google/cloud/speech/v1p1beta1/resource.proto +++ b/google/cloud/speech/v1p1beta1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,8 +17,6 @@ syntax = "proto3"; package google.cloud.speech.v1p1beta1; import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/speech/v1p1beta1;speech"; diff --git a/google/cloud/speech/v2/BUILD.bazel b/google/cloud/speech/v2/BUILD.bazel new file mode 100644 index 000000000..743a2fb34 --- /dev/null +++ b/google/cloud/speech/v2/BUILD.bazel @@ -0,0 +1,45 @@ +# 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 = "speech_proto", + srcs = [ + "cloud_speech.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 = "speech_proto_with_info", + deps = [ + ":speech_proto", + "//google/cloud:common_resources_proto", + ], +) diff --git a/google/cloud/speech/v2/cloud_speech.proto b/google/cloud/speech/v2/cloud_speech.proto new file mode 100644 index 000000000..a3512e316 --- /dev/null +++ b/google/cloud/speech/v2/cloud_speech.proto @@ -0,0 +1,1965 @@ +// 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.cloud.speech.v2; + +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 go_package = "google.golang.org/genproto/googleapis/cloud/speech/v2;speech"; +option java_multiple_files = true; +option java_outer_classname = "CloudSpeechProto"; +option java_package = "com.google.cloud.speech.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: "cloudkms.googleapis.com/CryptoKeyVersion" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" +}; + +// Enables speech transcription and resource management. +service Speech { + option (google.api.default_host) = "speech.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a [Recognizer][google.cloud.speech.v2.Recognizer]. + rpc CreateRecognizer(CreateRecognizerRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/recognizers" + body: "recognizer" + }; + option (google.api.method_signature) = "parent,recognizer,recognizer_id"; + option (google.longrunning.operation_info) = { + response_type: "Recognizer" + metadata_type: "OperationMetadata" + }; + } + + // Lists Recognizers. + rpc ListRecognizers(ListRecognizersRequest) + returns (ListRecognizersResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/recognizers" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the requested + // [Recognizer][google.cloud.speech.v2.Recognizer]. Fails with + // [NOT_FOUND][google.rpc.Code.NOT_FOUND] if the requested recognizer doesn't + // exist. + rpc GetRecognizer(GetRecognizerRequest) returns (Recognizer) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/recognizers/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the [Recognizer][google.cloud.speech.v2.Recognizer]. + rpc UpdateRecognizer(UpdateRecognizerRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{recognizer.name=projects/*/locations/*/recognizers/*}" + body: "recognizer" + }; + option (google.api.method_signature) = "recognizer,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Recognizer" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the [Recognizer][google.cloud.speech.v2.Recognizer]. + rpc DeleteRecognizer(DeleteRecognizerRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/recognizers/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Recognizer" + metadata_type: "OperationMetadata" + }; + } + + // Undeletes the [Recognizer][google.cloud.speech.v2.Recognizer]. + rpc UndeleteRecognizer(UndeleteRecognizerRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/recognizers/*}:undelete" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Recognizer" + metadata_type: "OperationMetadata" + }; + } + + // Performs synchronous Speech recognition: receive results after all audio + // has been sent and processed. + rpc Recognize(RecognizeRequest) returns (RecognizeResponse) { + option (google.api.http) = { + post: "/v2/{recognizer=projects/*/locations/*/recognizers/*}:recognize" + body: "*" + }; + option (google.api.method_signature) = + "recognizer,config,config_mask,content"; + option (google.api.method_signature) = "recognizer,config,config_mask,uri"; + } + + // Performs bidirectional streaming speech recognition: receive results while + // sending audio. This method is only available via the gRPC API (not REST). + rpc StreamingRecognize(stream StreamingRecognizeRequest) + returns (stream StreamingRecognizeResponse) {} + + // Performs batch asynchronous speech recognition: send a request with N + // audio files and receive a long running operation that can be polled to see + // when the transcriptions are finished. + rpc BatchRecognize(BatchRecognizeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{recognizer=projects/*/locations/*/recognizers/*}:batchRecognize" + body: "*" + }; + option (google.api.method_signature) = + "recognizer,config,config_mask,files"; + option (google.longrunning.operation_info) = { + response_type: "BatchRecognizeResponse" + metadata_type: "OperationMetadata" + }; + } + + // Returns the requested [Config][google.cloud.speech.v2.Config]. + rpc GetConfig(GetConfigRequest) returns (Config) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/config}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the [Config][google.cloud.speech.v2.Config]. + rpc UpdateConfig(UpdateConfigRequest) returns (Config) { + option (google.api.http) = { + patch: "/v2/{config.name=projects/*/locations/*/config}" + body: "config" + }; + option (google.api.method_signature) = "config,update_mask"; + } + + // Creates a [CustomClass][google.cloud.speech.v2.CustomClass]. + rpc CreateCustomClass(CreateCustomClassRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/customClasses" + body: "custom_class" + }; + option (google.api.method_signature) = + "parent,custom_class,custom_class_id"; + option (google.longrunning.operation_info) = { + response_type: "CustomClass" + metadata_type: "OperationMetadata" + }; + } + + // Lists CustomClasses. + rpc ListCustomClasses(ListCustomClassesRequest) + returns (ListCustomClassesResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/customClasses" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the requested + // [CustomClass][google.cloud.speech.v2.CustomClass]. + rpc GetCustomClass(GetCustomClassRequest) returns (CustomClass) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/customClasses/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the [CustomClass][google.cloud.speech.v2.CustomClass]. + rpc UpdateCustomClass(UpdateCustomClassRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{custom_class.name=projects/*/locations/*/customClasses/*}" + body: "custom_class" + }; + option (google.api.method_signature) = "custom_class,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "CustomClass" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the [CustomClass][google.cloud.speech.v2.CustomClass]. + rpc DeleteCustomClass(DeleteCustomClassRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/customClasses/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "CustomClass" + metadata_type: "OperationMetadata" + }; + } + + // Undeletes the [CustomClass][google.cloud.speech.v2.CustomClass]. + rpc UndeleteCustomClass(UndeleteCustomClassRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/customClasses/*}:undelete" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "CustomClass" + metadata_type: "OperationMetadata" + }; + } + + // Creates a [PhraseSet][google.cloud.speech.v2.PhraseSet]. + rpc CreatePhraseSet(CreatePhraseSetRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/phraseSets" + body: "phrase_set" + }; + option (google.api.method_signature) = "parent,phrase_set,phrase_set_id"; + option (google.longrunning.operation_info) = { + response_type: "PhraseSet" + metadata_type: "OperationMetadata" + }; + } + + // Lists PhraseSets. + rpc ListPhraseSets(ListPhraseSetsRequest) returns (ListPhraseSetsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/phraseSets" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the requested + // [PhraseSet][google.cloud.speech.v2.PhraseSet]. + rpc GetPhraseSet(GetPhraseSetRequest) returns (PhraseSet) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/phraseSets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the [PhraseSet][google.cloud.speech.v2.PhraseSet]. + rpc UpdatePhraseSet(UpdatePhraseSetRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{phrase_set.name=projects/*/locations/*/phraseSets/*}" + body: "phrase_set" + }; + option (google.api.method_signature) = "phrase_set,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "PhraseSet" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the [PhraseSet][google.cloud.speech.v2.PhraseSet]. + rpc DeletePhraseSet(DeletePhraseSetRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/phraseSets/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "PhraseSet" + metadata_type: "OperationMetadata" + }; + } + + // Undeletes the [PhraseSet][google.cloud.speech.v2.PhraseSet]. + rpc UndeletePhraseSet(UndeletePhraseSetRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/phraseSets/*}:undelete" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "PhraseSet" + metadata_type: "OperationMetadata" + }; + } +} + +// Request message for the +// [CreateRecognizer][google.cloud.speech.v2.Speech.CreateRecognizer] method. +message CreateRecognizerRequest { + // Required. The Recognizer to create. + Recognizer recognizer = 1 [(google.api.field_behavior) = REQUIRED]; + + // If set, validate the request and preview the Recognizer, but do not + // actually create it. + bool validate_only = 2; + + // The ID to use for the Recognizer, which will become the final component of + // the Recognizer's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + string recognizer_id = 3; + + // Required. The project and location where this Recognizer will be created. + // The expected format is `projects/{project}/locations/{location}`. + string parent = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "speech.googleapis.com/Recognizer" + } + ]; +} + +// Represents the metadata of a long-running operation. +message OperationMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation was last updated. + google.protobuf.Timestamp update_time = 2; + + // The resource path for the target of the operation. + string resource = 3; + + // The method that triggered the operation. + string method = 4; + + // The [KMS key + // name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which + // the content of the Operation is encrypted. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + string kms_key_name = 6 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; + + // The [KMS key version + // name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) + // with which content of the Operation is encrypted. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`. + string kms_key_version_name = 7 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + }]; + + // The request that spawned the Operation. + oneof request { + // The BatchRecognizeRequest that spawned the Operation. + BatchRecognizeRequest batch_recognize_request = 8; + + // The CreateRecognizerRequest that spawned the Operation. + CreateRecognizerRequest create_recognizer_request = 9; + + // The UpdateRecognizerRequest that spawned the Operation. + UpdateRecognizerRequest update_recognizer_request = 10; + + // The DeleteRecognizerRequest that spawned the Operation. + DeleteRecognizerRequest delete_recognizer_request = 11; + + // The UndeleteRecognizerRequest that spawned the Operation. + UndeleteRecognizerRequest undelete_recognizer_request = 12; + + // The CreateCustomClassRequest that spawned the Operation. + CreateCustomClassRequest create_custom_class_request = 13; + + // The UpdateCustomClassRequest that spawned the Operation. + UpdateCustomClassRequest update_custom_class_request = 14; + + // The DeleteCustomClassRequest that spawned the Operation. + DeleteCustomClassRequest delete_custom_class_request = 15; + + // The UndeleteCustomClassRequest that spawned the Operation. + UndeleteCustomClassRequest undelete_custom_class_request = 16; + + // The CreatePhraseSetRequest that spawned the Operation. + CreatePhraseSetRequest create_phrase_set_request = 17; + + // The UpdatePhraseSetRequest that spawned the Operation. + UpdatePhraseSetRequest update_phrase_set_request = 18; + + // The DeletePhraseSetRequest that spawned the Operation. + DeletePhraseSetRequest delete_phrase_set_request = 19; + + // The UndeletePhraseSetRequest that spawned the Operation. + UndeletePhraseSetRequest undelete_phrase_set_request = 20; + + // The UpdateConfigRequest that spawned the Operation. + UpdateConfigRequest update_config_request = 21; + } + + // The percent progress of the Operation. Values can range from 0-100. If the + // value is 100, then the operation is finished. + int32 progress_percent = 22; + + // Specific metadata per RPC + oneof metadata { + // Metadata specific to the BatchRecognize method. + BatchRecognizeMetadata batch_recognize_metadata = 23; + } +} + +// Request message for the +// [ListRecognizers][google.cloud.speech.v2.Speech.ListRecognizers] method. +message ListRecognizersRequest { + // Required. The project and location of Recognizers to list. The expected + // format is `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The maximum number of Recognizers to return. The service may return fewer + // than this value. If unspecified, at most 20 Recognizers will be returned. + // The maximum value is 20; values above 20 will be coerced to 20. + int32 page_size = 2; + + // A page token, received from a previous + // [ListRecognizers][google.cloud.speech.v2.Speech.ListRecognizers] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [ListRecognizers][google.cloud.speech.v2.Speech.ListRecognizers] must match + // the call that provided the page token. + string page_token = 3; + + // Whether, or not, to show resources that have been deleted. + bool show_deleted = 4; +} + +// Response message for the +// [ListRecognizers][google.cloud.speech.v2.Speech.ListRecognizers] method. +message ListRecognizersResponse { + // The list of requested Recognizers. + repeated Recognizer recognizers = 1; + + // A token, which can be sent as + // [page_token][google.cloud.speech.v2.ListRecognizersRequest.page_token] to + // retrieve the next page. If this field is omitted, there are no subsequent + // pages. This token expires after 72 hours. + string next_page_token = 2; +} + +// Request message for the +// [GetRecognizer][google.cloud.speech.v2.Speech.GetRecognizer] method. +message GetRecognizerRequest { + // Required. The name of the Recognizer to retrieve. The expected format is + // `projects/{project}/locations/{location}/recognizers/{recognizer}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/Recognizer" + } + ]; +} + +// Request message for the +// [UpdateRecognizer][google.cloud.speech.v2.Speech.UpdateRecognizer] method. +message UpdateRecognizerRequest { + // Required. The Recognizer to update. + // + // The Recognizer's `name` field is used to identify the Recognizer to update. + // Format: `projects/{project}/locations/{location}/recognizers/{recognizer}`. + Recognizer recognizer = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. If empty, all non-default valued fields are + // considered for update. Use `*` to update the entire Recognizer resource. + google.protobuf.FieldMask update_mask = 2; + + // If set, validate the request and preview the updated Recognizer, but do not + // actually update it. + bool validate_only = 4; +} + +// Request message for the +// [DeleteRecognizer][google.cloud.speech.v2.Speech.DeleteRecognizer] method. +message DeleteRecognizerRequest { + // Required. The name of the Recognizer to delete. + // Format: `projects/{project}/locations/{location}/recognizers/{recognizer}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/Recognizer" + } + ]; + + // If set, validate the request and preview the deleted Recognizer, but do not + // actually delete it. + bool validate_only = 2; + + // If set to true, and the Recognizer is not found, the request will succeed + // and be a no-op (no Operation is recorded in this case). + bool allow_missing = 4; + + // This checksum is computed by the server based on the value of other + // fields. This may be sent on update, undelete, and delete requests to ensure + // the client has an up-to-date value before proceeding. + string etag = 3; +} + +// Request message for the +// [UndeleteRecognizer][google.cloud.speech.v2.Speech.UndeleteRecognizer] +// method. +message UndeleteRecognizerRequest { + // Required. The name of the Recognizer to undelete. + // Format: `projects/{project}/locations/{location}/recognizers/{recognizer}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/Recognizer" + } + ]; + + // If set, validate the request and preview the undeleted Recognizer, but do + // not actually undelete it. + bool validate_only = 3; + + // This checksum is computed by the server based on the value of other + // fields. This may be sent on update, undelete, and delete requests to ensure + // the client has an up-to-date value before proceeding. + string etag = 4; +} + +// A Recognizer message. Stores recognition configuration and metadata. +message Recognizer { + option (google.api.resource) = { + type: "speech.googleapis.com/Recognizer" + pattern: "projects/{project}/locations/{location}/recognizers/{recognizer}" + style: DECLARATIVE_FRIENDLY + }; + + // Set of states that define the lifecycle of a Recognizer. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // The Recognizer is active and ready for use. + ACTIVE = 2; + + // This Recognizer has been deleted. + DELETED = 4; + } + + // Output only. The resource name of the Recognizer. + // Format: `projects/{project}/locations/{location}/recognizers/{recognizer}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. System-assigned unique identifier for the Recognizer. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User-settable, human-readable name for the Recognizer. Must be 63 + // characters or less. + string display_name = 3; + + // Required. Which model to use for recognition requests. Select the model + // best suited to your domain to get best results. + // + // Supported models: + // + // - `latest_long` + // + // Best for long form content like media or conversation. + // + // - `latest_short` + // + // Best for short form content like commands or single shot directed speech. + // When using this model, the service will stop transcribing audio after the + // first utterance is detected and completed. + // + // When using this model, + // [SEPARATE_RECOGNITION_PER_CHANNEL][google.cloud.speech.v2.RecognitionFeatures.MultiChannelMode.SEPARATE_RECOGNITION_PER_CHANNEL] + // is not supported; multi-channel audio is accepted, but only the first + // channel will be processed and transcribed. + string model = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The language of the supplied audio as a + // [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. + // + // Supported languages: + // + // - `en-US` + // + // - `en-GB` + // + // - `fr-FR` + // + // If additional languages are provided, recognition result will contain + // recognition in the most likely language detected. The recognition result + // will include the language tag of the language detected in the audio. + // When you create or update a Recognizer, these values are + // stored in normalized BCP-47 form. For example, "en-us" is stored as + // "en-US". + repeated string language_codes = 17 [(google.api.field_behavior) = REQUIRED]; + + // Default configuration to use for requests with this Recognizer. + // This can be overwritten by inline configuration in the + // [RecognizeRequest.config][google.cloud.speech.v2.RecognizeRequest.config] + // field. + RecognitionConfig default_recognition_config = 6; + + // Allows users to store small amounts of arbitrary data. + // Both the key and the value must be 63 characters or less each. + // At most 100 annotations. + map annotations = 7; + + // Output only. The Recognizer lifecycle state. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Creation time. + google.protobuf.Timestamp create_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The most recent time this Recognizer was modified. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this Recognizer was requested for deletion. + google.protobuf.Timestamp delete_time = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this Recognizer will be purged. + google.protobuf.Timestamp expire_time = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This checksum is computed by the server based on the value of + // other fields. This may be sent on update, undelete, and delete requests to + // ensure the client has an up-to-date value before proceeding. + string etag = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether or not this Recognizer is in the process of being + // updated. + bool reconciling = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The [KMS key + // name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which + // the Recognizer is encrypted. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + string kms_key_name = 15 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. The [KMS key version + // name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) + // with which the Recognizer is encrypted. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`. + string kms_key_version_name = 16 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + } + ]; +} + +// Automatically detected decoding parameters. +// Supported for the following encodings: +// * WAV_LINEAR16: 16-bit signed little-endian PCM samples in a WAV container. +// * WAV_MULAW: 8-bit companded mulaw samples in a WAV container. +// * WAV_ALAW: 8-bit companded alaw samples in a WAV container. +// * RFC4867_5_AMR: AMR frames with an rfc4867.5 header. +// * RFC4867_5_AMRWB: AMR-WB frames with an rfc4867.5 header. +// * FLAC: FLAC frames in the "native FLAC" container format. +// * MP3: MPEG audio frames with optional (ignored) ID3 metadata. +// * OGG_OPUS: Opus audio frames in an Ogg container. +// * WEBM_OPUS: Opus audio frames in a WebM container. +message AutoDetectDecodingConfig {} + +// Explicitly specified decoding parameters. +message ExplicitDecodingConfig { + // Supported audio data encodings. + enum AudioEncoding { + // Default value. This value is unused. + AUDIO_ENCODING_UNSPECIFIED = 0; + + // Headerless 16-bit signed little-endian PCM samples. + LINEAR16 = 1; + + // Headerless 8-bit companded mulaw samples. + MULAW = 2; + + // Headerless 8-bit companded alaw samples. + ALAW = 3; + } + + // Required. Encoding of the audio data sent for recognition. + AudioEncoding encoding = 1 [(google.api.field_behavior) = REQUIRED]; + + // Sample rate in Hertz of the audio data sent for recognition. Valid + // values are: 8000-48000. 16000 is optimal. For best results, set the + // sampling rate of the audio source to 16000 Hz. If that's not possible, use + // the native sample rate of the audio source (instead of re-sampling). + // Supported for the following encodings: + // * LINEAR16: Headerless 16-bit signed little-endian PCM samples. + // * MULAW: Headerless 8-bit companded mulaw samples. + // * ALAW: Headerless 8-bit companded alaw samples. + int32 sample_rate_hertz = 2; + + // Number of channels present in the audio data sent for recognition. + // Supported for the following encodings: + // * LINEAR16: Headerless 16-bit signed little-endian PCM samples. + // * MULAW: Headerless 8-bit companded mulaw samples. + // * ALAW: Headerless 8-bit companded alaw samples. + int32 audio_channel_count = 3; +} + +// Configuration to enable speaker diarization. +message SpeakerDiarizationConfig { + // Required. Minimum number of speakers in the conversation. This range gives + // you more flexibility by allowing the system to automatically determine the + // correct number of speakers. If not set, the default value is 2. + // + // To fix the number of speakers detected in the audio, set + // `min_speaker_count` = `max_speaker_count`. + int32 min_speaker_count = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Maximum number of speakers in the conversation. Valid values are: + // 1-6. Must be >= `min_speaker_count`. This range gives you more flexibility + // by allowing the system to automatically determine the correct number of + // speakers. + int32 max_speaker_count = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Available recognition features. +message RecognitionFeatures { + // Options for how to recognize multi-channel audio. + enum MultiChannelMode { + // Default value for the multi-channel mode. If the audio contains + // multiple channels, only the first channel will be transcribed; other + // channels will be ignored. + MULTI_CHANNEL_MODE_UNSPECIFIED = 0; + + // If selected, each channel in the provided audio is transcribed + // independently. This cannot be selected if the selected + // [model][google.cloud.speech.v2.Recognizer.model] is `latest_short`. + SEPARATE_RECOGNITION_PER_CHANNEL = 1; + } + + // If set to `true`, the server will attempt to filter out profanities, + // replacing all but the initial character in each filtered word with + // asterisks, for instance, "f***". If set to `false` or omitted, profanities + // won't be filtered out. + bool profanity_filter = 1; + + // If `true`, the top result includes a list of words and the start and end + // time offsets (timestamps) for those words. If `false`, no word-level time + // offset information is returned. The default is `false`. + bool enable_word_time_offsets = 2; + + // If `true`, the top result includes a list of words and the confidence for + // those words. If `false`, no word-level confidence information is returned. + // The default is `false`. + bool enable_word_confidence = 3; + + // If `true`, adds punctuation to recognition result hypotheses. This feature + // is only available in select languages. The default `false` value does not + // add punctuation to result hypotheses. + bool enable_automatic_punctuation = 4; + + // The spoken punctuation behavior for the call. If `true`, replaces spoken + // punctuation with the corresponding symbols in the request. For example, + // "how are you question mark" becomes "how are you?". See + // https://cloud.google.com/speech-to-text/docs/spoken-punctuation for + // support. If `false`, spoken punctuation is not replaced. + bool enable_spoken_punctuation = 14; + + // The spoken emoji behavior for the call. If `true`, adds spoken emoji + // formatting for the request. This will replace spoken emojis with the + // corresponding Unicode symbols in the final transcript. If `false`, spoken + // emojis are not replaced. + bool enable_spoken_emojis = 15; + + // Mode for recognizing multi-channel audio. + MultiChannelMode multi_channel_mode = 17; + + // Configuration to enable speaker diarization and set additional + // parameters to make diarization better suited for your application. + // When this is enabled, we send all the words from the beginning of the + // audio for the top alternative in every consecutive STREAMING responses. + // This is done in order to improve our speaker tags as our models learn to + // identify the speakers in the conversation over time. + // For non-streaming requests, the diarization results will be provided only + // in the top alternative of the FINAL SpeechRecognitionResult. + SpeakerDiarizationConfig diarization_config = 9; + + // Maximum number of recognition hypotheses to be returned. + // The server may return fewer than `max_alternatives`. + // Valid values are `0`-`30`. A value of `0` or `1` will return a maximum of + // one. If omitted, will return a maximum of one. + int32 max_alternatives = 16; +} + +// Provides "hints" to the speech recognizer to favor specific words and phrases +// in the results. Phrase sets can be specified as an inline resource, or a +// reference to an existing phrase set resource. +message SpeechAdaptation { + // A biasing phrase set, which can be either a string referencing the name of + // an existing phrase set resource, or an inline definition of a phrase set. + message AdaptationPhraseSet { + oneof value { + // The name of an existing phrase set resource. The user must have read + // access to the resource and it must not be deleted. + string phrase_set = 1 [(google.api.resource_reference) = { + type: "speech.googleapis.com/PhraseSet" + }]; + + // An inline defined phrase set. + PhraseSet inline_phrase_set = 2; + } + } + + // A list of inline or referenced phrase sets. + repeated AdaptationPhraseSet phrase_sets = 1; + + // A list of inline custom classes. Existing custom class resources can be + // referenced directly in a phrase set. + repeated CustomClass custom_classes = 2; +} + +// Provides information to the Recognizer that specifies how to process the +// recognition request. +message RecognitionConfig { + // Decoding parameters for audio being sent for recognition. + oneof decoding_config { + // Automatically detect decoding parameters. + // Preferred for supported formats. + AutoDetectDecodingConfig auto_decoding_config = 7; + + // Explicitly specified decoding parameters. + // Required if using headerless PCM audio (linear16, mulaw, alaw). + ExplicitDecodingConfig explicit_decoding_config = 8; + } + + // Speech recognition features to enable. + RecognitionFeatures features = 2; + + // Speech adaptation context that weights recognizer predictions for specific + // words and phrases. + SpeechAdaptation adaptation = 6; +} + +// Request message for the +// [Recognize][google.cloud.speech.v2.Speech.Recognize] method. Either +// `content` or `uri` must be supplied. Supplying both or neither returns +// [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. See [content +// limits](https://cloud.google.com/speech-to-text/quotas#content). +message RecognizeRequest { + // Required. The name of the Recognizer to use during recognition. The + // expected format is + // `projects/{project}/locations/{location}/recognizers/{recognizer}`. + string recognizer = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/Recognizer" + } + ]; + + // Features and audio metadata to use for the Automatic Speech Recognition. + // This field in combination with the + // [config_mask][google.cloud.speech.v2.RecognizeRequest.config_mask] field + // can be used to override parts of the + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config] + // of the Recognizer resource. + RecognitionConfig config = 1; + + // The list of fields in + // [config][google.cloud.speech.v2.RecognizeRequest.config] that override the + // values in the + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config] + // of the recognizer during this recognition request. If no mask is provided, + // all non-default valued fields in + // [config][google.cloud.speech.v2.RecognizeRequest.config] override the + // values in the recognizer for this recognition request. If a mask is + // provided, only the fields listed in the mask override the config in the + // recognizer for this recognition request. If a wildcard (`*`) is provided, + // [config][google.cloud.speech.v2.RecognizeRequest.config] completely + // overrides and replaces the config in the recognizer for this recognition + // request. + google.protobuf.FieldMask config_mask = 8; + + // The audio source, which is either inline content or a Google Cloud + // Storage URI. + oneof audio_source { + // The audio data bytes encoded as specified in + // [RecognitionConfig][google.cloud.speech.v2.RecognitionConfig]. As + // with all bytes fields, proto buffers use a pure binary representation, + // whereas JSON representations use base64. + bytes content = 5; + + // URI that points to a file that contains audio data bytes as specified in + // [RecognitionConfig][google.cloud.speech.v2.RecognitionConfig]. The file + // must not be compressed (for example, gzip). Currently, only Google Cloud + // Storage URIs are supported, which must be specified in the following + // format: `gs://bucket_name/object_name` (other URI formats return + // [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]). For more + // information, see [Request + // URIs](https://cloud.google.com/storage/docs/reference-uris). + string uri = 6; + } +} + +// Metadata about the recognition request and response. +message RecognitionResponseMetadata { + // When available, billed audio seconds for the corresponding request. + google.protobuf.Duration total_billed_duration = 6; +} + +// Alternative hypotheses (a.k.a. n-best list). +message SpeechRecognitionAlternative { + // Transcript text representing the words that the user spoke. + string transcript = 1; + + // The confidence estimate between 0.0 and 1.0. A higher number + // indicates an estimated greater likelihood that the recognized words are + // correct. This field is set only for the top alternative of a non-streaming + // result or, of a streaming result where + // [is_final][google.cloud.speech.v2.StreamingRecognitionResult.is_final] is + // set to `true`. This field is not guaranteed to be accurate and users should + // not rely on it to be always provided. The default of 0.0 is a sentinel + // value indicating `confidence` was not set. + float confidence = 2; + + // A list of word-specific information for each recognized word. + // When + // [enable_speaker_diarization][google.cloud.speech.v2.SpeakerDiarizationConfig.enable_speaker_diarization] + // is true, you will see all the words from the beginning of the audio. + repeated WordInfo words = 3; +} + +// Word-specific information for recognized words. +message WordInfo { + // Time offset relative to the beginning of the audio, + // and corresponding to the start of the spoken word. + // This field is only set if + // [enable_word_time_offsets][google.cloud.speech.v2.RecognitionFeatures.enable_word_time_offsets] + // is `true` and only in the top hypothesis. This is an experimental feature + // and the accuracy of the time offset can vary. + google.protobuf.Duration start_offset = 1; + + // Time offset relative to the beginning of the audio, + // and corresponding to the end of the spoken word. + // This field is only set if + // [enable_word_time_offsets][google.cloud.speech.v2.RecognitionFeatures.enable_word_time_offsets] + // is `true` and only in the top hypothesis. This is an experimental feature + // and the accuracy of the time offset can vary. + google.protobuf.Duration end_offset = 2; + + // The word corresponding to this set of information. + string word = 3; + + // The confidence estimate between 0.0 and 1.0. A higher number + // indicates an estimated greater likelihood that the recognized words are + // correct. This field is set only for the top alternative of a non-streaming + // result or, of a streaming result where + // [is_final][google.cloud.speech.v2.StreamingRecognitionResult.is_final] is + // set to `true`. This field is not guaranteed to be accurate and users should + // not rely on it to be always provided. The default of 0.0 is a sentinel + // value indicating `confidence` was not set. + float confidence = 4; + + // A distinct label is assigned for every speaker within the audio. This field + // specifies which one of those speakers was detected to have spoken this + // word. `speaker_label` is set if + // [enable_speaker_diarization][google.cloud.speech.v2.SpeakerDiarizationConfig.enable_speaker_diarization] + // is `true` and only in the top alternative. + string speaker_label = 6; +} + +// A speech recognition result corresponding to a portion of the audio. +message SpeechRecognitionResult { + // May contain one or more recognition hypotheses. These alternatives are + // ordered in terms of accuracy, with the top (first) alternative being the + // most probable, as ranked by the recognizer. + repeated SpeechRecognitionAlternative alternatives = 1; + + // For multi-channel audio, this is the channel number corresponding to the + // recognized result for the audio from that channel. + // For `audio_channel_count` = `N`, its output values can range from `1` to + // `N`. + int32 channel_tag = 2; + + // Time offset of the end of this result relative to the beginning of the + // audio. + google.protobuf.Duration result_end_offset = 4; + + // Output only. The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + // language tag of the language in this result. This language code was + // detected to have the most likelihood of being spoken in the audio. + string language_code = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Response message for the +// [Recognize][google.cloud.speech.v2.Speech.Recognize] method. +message RecognizeResponse { + // Sequential list of transcription results corresponding to sequential + // portions of audio. + repeated SpeechRecognitionResult results = 3; + + // Metadata about the recognition. + RecognitionResponseMetadata metadata = 2; +} + +// Available recognition features specific to streaming recognition requests. +message StreamingRecognitionFeatures { + // Events that a timeout can be set on for voice activity. + message VoiceActivityTimeout { + // Duration to timeout the stream if no speech begins. If this is set and + // no speech is detected in this duration at the start of the stream, the + // server will close the stream. + google.protobuf.Duration speech_start_timeout = 1; + + // Duration to timeout the stream after speech ends. If this is set and no + // speech is detected in this duration after speech was detected, the server + // will close the stream. + google.protobuf.Duration speech_end_timeout = 2; + } + + // If `true`, responses with voice activity speech events will be returned as + // they are detected. + bool enable_voice_activity_events = 1; + + // Whether or not to stream interim results to the client. If set to true, + // interim results will be streamed to the client. Otherwise, only the final + // response will be streamed back. + bool interim_results = 2; + + // If set, the server will automatically close the stream after the specified + // duration has elapsed after the last VOICE_ACTIVITY speech event has been + // sent. The field `voice_activity_events` must also be set to true. + VoiceActivityTimeout voice_activity_timeout = 3; +} + +// Provides configuration information for the StreamingRecognize request. +message StreamingRecognitionConfig { + // Required. Features and audio metadata to use for the Automatic Speech + // Recognition. This field in combination with the + // [config_mask][google.cloud.speech.v2.StreamingRecognitionConfig.config_mask] + // field can be used to override parts of the + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config] + // of the Recognizer resource. + RecognitionConfig config = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields in + // [config][google.cloud.speech.v2.StreamingRecognitionConfig.config] that + // override the values in the + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config] + // of the recognizer during this recognition request. If no mask is provided, + // all non-default valued fields in + // [config][google.cloud.speech.v2.StreamingRecognitionConfig.config] override + // the values in the recognizer for this recognition request. If a mask is + // provided, only the fields listed in the mask override the config in the + // recognizer for this recognition request. If a wildcard (`*`) is provided, + // [config][google.cloud.speech.v2.StreamingRecognitionConfig.config] + // completely overrides and replaces the config in the recognizer for this + // recognition request. + google.protobuf.FieldMask config_mask = 3; + + // Speech recognition features to enable specific to streaming audio + // recognition requests. + StreamingRecognitionFeatures streaming_features = 2; +} + +// Request message for the +// [StreamingRecognize][google.cloud.speech.v2.Speech.StreamingRecognize] +// method. Multiple +// [StreamingRecognizeRequest][google.cloud.speech.v2.StreamingRecognizeRequest] +// messages are sent. The first message must contain a +// [recognizer][google.cloud.speech.v2.StreamingRecognizeRequest.recognizer] and +// optionally a +// [streaming_config][google.cloud.speech.v2.StreamingRecognizeRequest.streaming_config] +// message and must not contain +// [audio][google.cloud.speech.v2.StreamingRecognizeRequest.audio]. All +// subsequent messages must contain +// [audio][google.cloud.speech.v2.StreamingRecognizeRequest.audio] and must not +// contain a +// [streaming_config][google.cloud.speech.v2.StreamingRecognizeRequest.streaming_config] +// message. +message StreamingRecognizeRequest { + // Required. Streaming recognition should start with an initial request having + // a `recognizer`. Subsequent requests carry the audio data to be recognized. + // + // The initial request with configuration can be omitted if the Recognizer + // being used has a + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config]. + string recognizer = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/Recognizer" + } + ]; + + oneof streaming_request { + // StreamingRecognitionConfig to be used in this recognition attempt. + // If provided, it will override the default RecognitionConfig stored in the + // Recognizer. + StreamingRecognitionConfig streaming_config = 6; + + // Inline audio bytes to be Recognized. + bytes audio = 5; + } +} + +// Request message for the +// [BatchRecognize][google.cloud.speech.v2.Speech.BatchRecognize] +// method. +message BatchRecognizeRequest { + // Required. Resource name of the recognizer to be used for ASR. + string recognizer = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/Recognizer" + } + ]; + + // Features and audio metadata to use for the Automatic Speech Recognition. + // This field in combination with the + // [config_mask][google.cloud.speech.v2.BatchRecognizeRequest.config_mask] + // field can be used to override parts of the + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config] + // of the Recognizer resource. + RecognitionConfig config = 4; + + // The list of fields in + // [config][google.cloud.speech.v2.BatchRecognizeRequest.config] that override + // the values in the + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config] + // of the recognizer during this recognition request. If no mask is provided, + // all given fields in + // [config][google.cloud.speech.v2.BatchRecognizeRequest.config] override the + // values in the recognizer for this recognition request. If a mask is + // provided, only the fields listed in the mask override the config in the + // recognizer for this recognition request. If a wildcard (`*`) is provided, + // [config][google.cloud.speech.v2.BatchRecognizeRequest.config] completely + // overrides and replaces the config in the recognizer for this recognition + // request. + google.protobuf.FieldMask config_mask = 5; + + // Audio files with file metadata for ASR. + repeated BatchRecognizeFileMetadata files = 3; +} + +// Response message for +// [BatchRecognize][google.cloud.speech.v2.Speech.BatchRecognize] that is +// packaged into a longrunning [Operation][google.longrunning.Operation]. +message BatchRecognizeResponse { + // Map from filename to the final result for that file. + map results = 1; +} + +// Final results for a single file. +message BatchRecognizeFileResult { + // The GCS URI to which recognition results were written. + string uri = 1; + + // Error if one was encountered. + google.rpc.Status error = 2; +} + +// Metadata about transcription for a single file (for example, progress +// percent). +message BatchRecognizeTranscriptionMetadata { + // How much of the file has been transcribed so far. + int32 progress_percent = 1; + + // Error if one was encountered. + google.rpc.Status error = 2; + + // The GCS URI to which recognition results will be written. + string uri = 3; +} + +// Operation metadata for +// [BatchRecognize][google.cloud.speech.v2.Speech.BatchRecognize]. +message BatchRecognizeMetadata { + // Map from provided filename to the transcription metadata for that file. + map transcription_metadata = 1; +} + +// Metadata about a single file in a batch for BatchRecognize. +message BatchRecognizeFileMetadata { + // The audio source, which is a Google Cloud Storage URI. + oneof audio_source { + // Cloud Storage URI for the audio file. + string uri = 1; + } + + // Features and audio metadata to use for the Automatic Speech Recognition. + // This field in combination with the + // [config_mask][google.cloud.speech.v2.BatchRecognizeFileMetadata.config_mask] + // field can be used to override parts of the + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config] + // of the Recognizer resource as well as the + // [config][google.cloud.speech.v2.BatchRecognizeRequest.config] at the + // request level. + RecognitionConfig config = 4; + + // The list of fields in + // [config][google.cloud.speech.v2.BatchRecognizeFileMetadata.config] that + // override the values in the + // [default_recognition_config][google.cloud.speech.v2.Recognizer.default_recognition_config] + // of the recognizer during this recognition request. If no mask is provided, + // all non-default valued fields in + // [config][google.cloud.speech.v2.BatchRecognizeFileMetadata.config] override + // the values in the recognizer for this recognition request. If a mask is + // provided, only the fields listed in the mask override the config in the + // recognizer for this recognition request. If a wildcard (`*`) is provided, + // [config][google.cloud.speech.v2.BatchRecognizeFileMetadata.config] + // completely overrides and replaces the config in the recognizer for this + // recognition request. + google.protobuf.FieldMask config_mask = 5; +} + +// A streaming speech recognition result corresponding to a portion of the audio +// that is currently being processed. +message StreamingRecognitionResult { + // May contain one or more recognition hypotheses. These alternatives are + // ordered in terms of accuracy, with the top (first) alternative being the + // most probable, as ranked by the recognizer. + repeated SpeechRecognitionAlternative alternatives = 1; + + // If `false`, this + // [StreamingRecognitionResult][google.cloud.speech.v2.StreamingRecognitionResult] + // represents an interim result that may change. If `true`, this is the final + // time the speech service will return this particular + // [StreamingRecognitionResult][google.cloud.speech.v2.StreamingRecognitionResult], + // the recognizer will not return any further hypotheses for this portion of + // the transcript and corresponding audio. + bool is_final = 2; + + // An estimate of the likelihood that the recognizer will not change its guess + // about this interim result. Values range from 0.0 (completely unstable) + // to 1.0 (completely stable). This field is only provided for interim results + // ([is_final][google.cloud.speech.v2.StreamingRecognitionResult.is_final]=`false`). + // The default of 0.0 is a sentinel value indicating `stability` was not set. + float stability = 3; + + // Time offset of the end of this result relative to the beginning of the + // audio. + google.protobuf.Duration result_end_offset = 4; + + // For multi-channel audio, this is the channel number corresponding to the + // recognized result for the audio from that channel. + // For + // `audio_channel_count` = `N`, its output values can range from `1` to `N`. + int32 channel_tag = 5; + + // Output only. The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + // language tag of the language in this result. This language code was + // detected to have the most likelihood of being spoken in the audio. + string language_code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `StreamingRecognizeResponse` is the only message returned to the client by +// `StreamingRecognize`. A series of zero or more `StreamingRecognizeResponse` +// messages are streamed back to the client. If there is no recognizable +// audio then no messages are streamed back to the client. +// +// Here are some examples of `StreamingRecognizeResponse`s that might +// be returned while processing audio: +// +// 1. results { alternatives { transcript: "tube" } stability: 0.01 } +// +// 2. results { alternatives { transcript: "to be a" } stability: 0.01 } +// +// 3. results { alternatives { transcript: "to be" } stability: 0.9 } +// results { alternatives { transcript: " or not to be" } stability: 0.01 } +// +// 4. results { alternatives { transcript: "to be or not to be" +// confidence: 0.92 } +// alternatives { transcript: "to bee or not to bee" } +// is_final: true } +// +// 5. results { alternatives { transcript: " that's" } stability: 0.01 } +// +// 6. results { alternatives { transcript: " that is" } stability: 0.9 } +// results { alternatives { transcript: " the question" } stability: 0.01 } +// +// 7. results { alternatives { transcript: " that is the question" +// confidence: 0.98 } +// alternatives { transcript: " that was the question" } +// is_final: true } +// +// Notes: +// +// - Only two of the above responses #4 and #7 contain final results; they are +// indicated by `is_final: true`. Concatenating these together generates the +// full transcript: "to be or not to be that is the question". +// +// - The others contain interim `results`. #3 and #6 contain two interim +// `results`: the first portion has a high stability and is less likely to +// change; the second portion has a low stability and is very likely to +// change. A UI designer might choose to show only high stability `results`. +// +// - The specific `stability` and `confidence` values shown above are only for +// illustrative purposes. Actual values may vary. +// +// - In each response, only one of these fields will be set: +// `error`, +// `speech_event_type`, or +// one or more (repeated) `results`. +message StreamingRecognizeResponse { + // Indicates the type of speech event. + enum SpeechEventType { + // No speech event specified. + SPEECH_EVENT_TYPE_UNSPECIFIED = 0; + + // 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 and will close the gRPC bidirectional + // stream. This event is only sent if there was a force cutoff due to + // silence being detected early. This event is only available through the + // `latest_short` [model][google.cloud.speech.v2.Recognizer.model]. + END_OF_SINGLE_UTTERANCE = 1; + + // This event indicates that the server has detected the beginning of human + // voice activity in the stream. This event can be returned multiple times + // if speech starts and stops repeatedly throughout the stream. This event + // is only sent if `voice_activity_events` is set to true. + SPEECH_ACTIVITY_BEGIN = 2; + + // This event indicates that the server has detected the end of human voice + // activity in the stream. This event can be returned multiple times if + // speech starts and stops repeatedly throughout the stream. This event is + // only sent if `voice_activity_events` is set to true. + SPEECH_ACTIVITY_END = 3; + } + + // This repeated list contains zero or more results that + // correspond to consecutive portions of the audio currently being processed. + // It contains zero or one + // [is_final][google.cloud.speech.v2.StreamingRecognitionResult.is_final]=`true` + // result (the newly settled portion), followed by zero or more + // [is_final][google.cloud.speech.v2.StreamingRecognitionResult.is_final]=`false` + // results (the interim results). + repeated StreamingRecognitionResult results = 6; + + // Indicates the type of speech event. + SpeechEventType speech_event_type = 3; + + // Time offset between the beginning of the audio and event emission. + google.protobuf.Duration speech_event_offset = 7; + + // Metadata about the recognition. + RecognitionResponseMetadata metadata = 5; +} + +// Message representing the config for the Speech-to-Text API. This includes an +// optional [KMS key](https://cloud.google.com/kms/docs/resource-hierarchy#keys) +// with which incoming data will be encrypted. +message Config { + option (google.api.resource) = { + type: "speech.googleapis.com/Config" + pattern: "projects/{project}/locations/{location}/config" + }; + + // Output only. The name of the config resource. There is exactly one config + // resource per project per location. The expected format is + // `projects/{project}/locations/{location}/config`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. An optional [KMS key + // name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) that if + // present, will be used to encrypt Speech-to-Text resources at-rest. Updating + // this key will not encrypt existing resources using this key; only new + // resources will be encrypted using this key. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + string kms_key_name = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. The most recent time this resource was modified. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for the +// [GetConfig][google.cloud.speech.v2.Speech.GetConfig] method. +message GetConfigRequest { + // Required. The name of the config to retrieve. There is exactly one config + // resource per project per location. The expected format is + // `projects/{project}/locations/{location}/config`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "speech.googleapis.com/Config" } + ]; +} + +// Request message for the +// [UpdateConfig][google.cloud.speech.v2.Speech.UpdateConfig] method. +message UpdateConfigRequest { + // Required. The config to update. + // + // The config's `name` field is used to identify the config to be updated. + // The expected format is `projects/{project}/locations/{location}/config`. + Config config = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// CustomClass for biasing in speech recognition. Used to define a set of words +// or phrases that represents a common concept or theme likely to appear in your +// audio, for example a list of passenger ship names. +message CustomClass { + option (google.api.resource) = { + type: "speech.googleapis.com/CustomClass" + pattern: "projects/{project}/locations/{location}/customClasses/{custom_class}" + style: DECLARATIVE_FRIENDLY + }; + + // An item of the class. + message ClassItem { + // The class item's value. + string value = 1; + } + + // Set of states that define the lifecycle of a CustomClass. + enum State { + // Unspecified state. This is only used/useful for distinguishing + // unset values. + STATE_UNSPECIFIED = 0; + + // The normal and active state. + ACTIVE = 2; + + // This CustomClass has been deleted. + DELETED = 4; + } + + // Output only. The resource name of the CustomClass. + // Format: + // `projects/{project}/locations/{location}/customClasses/{custom_class}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. System-assigned unique identifier for the CustomClass. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User-settable, human-readable name for the CustomClass. Must be 63 + // characters or less. + string display_name = 4; + + // A collection of class items. + repeated ClassItem items = 5; + + // Output only. The CustomClass lifecycle state. + State state = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Creation time. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The most recent time this resource was modified. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this resource was requested for deletion. + google.protobuf.Timestamp delete_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this resource will be purged. + google.protobuf.Timestamp expire_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows users to store small amounts of arbitrary data. + // Both the key and the value must be 63 characters or less each. + // At most 100 annotations. + map annotations = 10; + + // Output only. This checksum is computed by the server based on the value of + // other fields. This may be sent on update, undelete, and delete requests to + // ensure the client has an up-to-date value before proceeding. + string etag = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether or not this CustomClass is in the process of being + // updated. + bool reconciling = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The [KMS key + // name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which + // the CustomClass is encrypted. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + string kms_key_name = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. The [KMS key version + // name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) + // with which the CustomClass is encrypted. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`. + string kms_key_version_name = 14 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + } + ]; +} + +// PhraseSet for biasing in speech recognition. A PhraseSet is used to provide +// "hints" to the speech recognizer to favor specific words and phrases in the +// results. +message PhraseSet { + option (google.api.resource) = { + type: "speech.googleapis.com/PhraseSet" + pattern: "projects/{project}/locations/{location}/phraseSets/{phrase_set}" + style: DECLARATIVE_FRIENDLY + }; + + // A Phrase contains words and phrase "hints" so that the speech recognition + // is more likely to recognize them. This can be used to improve the accuracy + // for specific words and phrases, for example, if specific commands are + // typically spoken by the user. This can also be used to add additional words + // to the vocabulary of the recognizer. + // + // List items can also include CustomClass references containing groups of + // words that represent common concepts that occur in natural language. + message Phrase { + // The phrase itself. + string value = 1; + + // Hint Boost. Overrides the boost set at the phrase set level. + // Positive value will increase 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. Negative + // boost values would correspond to anti-biasing. Anti-biasing is not + // enabled, so negative boost will simply be ignored. Though `boost` can + // accept a wide range of positive values, most use cases are best served + // with values between 0 and 20. We recommend using a binary search approach + // to finding the optimal value for your use case. Speech recognition + // will skip PhraseSets with a boost value of 0. + float boost = 2; + } + + // Set of states that define the lifecycle of a PhraseSet. + enum State { + // Unspecified state. This is only used/useful for distinguishing + // unset values. + STATE_UNSPECIFIED = 0; + + // The normal and active state. + ACTIVE = 2; + + // This PhraseSet has been deleted. + DELETED = 4; + } + + // Output only. The resource name of the PhraseSet. + // Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. System-assigned unique identifier for the PhraseSet. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A list of word and phrases. + repeated Phrase phrases = 3; + + // Hint Boost. Positive value will increase 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. + // Valid `boost` values are between 0 (exclusive) and 20. We recommend using a + // binary search approach to finding the optimal value for your use case. + float boost = 4; + + // User-settable, human-readable name for the PhraseSet. Must be 63 + // characters or less. + string display_name = 5; + + // Output only. The PhraseSet lifecycle state. + State state = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Creation time. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The most recent time this resource was modified. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this resource was requested for deletion. + google.protobuf.Timestamp delete_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which this resource will be purged. + google.protobuf.Timestamp expire_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows users to store small amounts of arbitrary data. + // Both the key and the value must be 63 characters or less each. + // At most 100 annotations. + map annotations = 10; + + // Output only. This checksum is computed by the server based on the value of + // other fields. This may be sent on update, undelete, and delete requests to + // ensure the client has an up-to-date value before proceeding. + string etag = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether or not this PhraseSet is in the process of being + // updated. + bool reconciling = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The [KMS key + // name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which + // the PhraseSet is encrypted. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + string kms_key_name = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. The [KMS key version + // name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) + // with which the PhraseSet is encrypted. The expected format is + // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`. + string kms_key_version_name = 14 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + } + ]; +} + +// Request message for the +// [CreateCustomClass][google.cloud.speech.v2.Speech.CreateCustomClass] method. +message CreateCustomClassRequest { + // Required. The CustomClass to create. + CustomClass custom_class = 1 [(google.api.field_behavior) = REQUIRED]; + + // If set, validate the request and preview the CustomClass, but do not + // actually create it. + bool validate_only = 2; + + // The ID to use for the CustomClass, which will become the final component of + // the CustomClass's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + string custom_class_id = 3; + + // Required. The project and location where this CustomClass will be created. + // The expected format is `projects/{project}/locations/{location}`. + string parent = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "speech.googleapis.com/CustomClass" + } + ]; +} + +// Request message for the +// [ListCustomClasses][google.cloud.speech.v2.Speech.ListCustomClasses] method. +message ListCustomClassesRequest { + // Required. The project and location of CustomClass resources to list. The + // expected format is `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Number of results per requests. A valid page_size ranges from 0 to 20 + // inclusive. If the page_size is zero or unspecified, a page size of 5 will + // be chosen. If the page size exceeds 20, it will be coerced down to 20. Note + // that a call might return fewer results than the requested page size. + int32 page_size = 2; + + // A page token, received from a previous + // [ListCustomClasses][google.cloud.speech.v2.Speech.ListCustomClasses] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [ListCustomClasses][google.cloud.speech.v2.Speech.ListCustomClasses] must + // match the call that provided the page token. + string page_token = 3; + + // Whether, or not, to show resources that have been deleted. + bool show_deleted = 4; +} + +// Response message for the +// [ListCustomClasses][google.cloud.speech.v2.Speech.ListCustomClasses] method. +message ListCustomClassesResponse { + // The list of requested CustomClasses. + repeated CustomClass custom_classes = 1; + + // A token, which can be sent as + // [page_token][google.cloud.speech.v2.ListCustomClassesRequest.page_token] to + // retrieve the next page. If this field is omitted, there are no subsequent + // pages. This token expires after 72 hours. + string next_page_token = 2; +} + +// Request message for the +// [GetCustomClass][google.cloud.speech.v2.Speech.GetCustomClass] method. +message GetCustomClassRequest { + // Required. The name of the CustomClass to retrieve. The expected format is + // `projects/{project}/locations/{location}/customClasses/{custom_class}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/CustomClass" + } + ]; +} + +// Request message for the +// [UpdateCustomClass][google.cloud.speech.v2.Speech.UpdateCustomClass] method. +message UpdateCustomClassRequest { + // Required. The CustomClass to update. + // + // The CustomClass's `name` field is used to identify the CustomClass to + // update. Format: + // `projects/{project}/locations/{location}/customClasses/{custom_class}`. + CustomClass custom_class = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. If empty, all fields are considered for + // update. + google.protobuf.FieldMask update_mask = 2; + + // If set, validate the request and preview the updated CustomClass, but do + // not actually update it. + bool validate_only = 4; +} + +// Request message for the +// [DeleteCustomClass][google.cloud.speech.v2.Speech.DeleteCustomClass] method. +message DeleteCustomClassRequest { + // Required. The name of the CustomClass to delete. + // Format: + // `projects/{project}/locations/{location}/customClasses/{custom_class}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/CustomClass" + } + ]; + + // If set, validate the request and preview the deleted CustomClass, but do + // not actually delete it. + bool validate_only = 2; + + // If set to true, and the CustomClass is not found, the request will succeed + // and be a no-op (no Operation is recorded in this case). + bool allow_missing = 4; + + // This checksum is computed by the server based on the value of other + // fields. This may be sent on update, undelete, and delete requests to ensure + // the client has an up-to-date value before proceeding. + string etag = 3; +} + +// Request message for the +// [UndeleteCustomClass][google.cloud.speech.v2.Speech.UndeleteCustomClass] +// method. +message UndeleteCustomClassRequest { + // Required. The name of the CustomClass to undelete. + // Format: + // `projects/{project}/locations/{location}/customClasses/{custom_class}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/CustomClass" + } + ]; + + // If set, validate the request and preview the undeleted CustomClass, but do + // not actually undelete it. + bool validate_only = 3; + + // This checksum is computed by the server based on the value of other + // fields. This may be sent on update, undelete, and delete requests to ensure + // the client has an up-to-date value before proceeding. + string etag = 4; +} + +// Request message for the +// [CreatePhraseSet][google.cloud.speech.v2.Speech.CreatePhraseSet] method. +message CreatePhraseSetRequest { + // Required. The PhraseSet to create. + PhraseSet phrase_set = 1 [(google.api.field_behavior) = REQUIRED]; + + // If set, validate the request and preview the PhraseSet, but do not + // actually create it. + bool validate_only = 2; + + // The ID to use for the PhraseSet, which will become the final component of + // the PhraseSet's resource name. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + string phrase_set_id = 3; + + // Required. The project and location where this PhraseSet will be created. + // The expected format is `projects/{project}/locations/{location}`. + string parent = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "speech.googleapis.com/PhraseSet" + } + ]; +} + +// Request message for the +// [ListPhraseSets][google.cloud.speech.v2.Speech.ListPhraseSets] method. +message ListPhraseSetsRequest { + // Required. The project and location of PhraseSet resources to list. The + // expected format is `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The maximum number of PhraseSets to return. The service may return fewer + // than this value. If unspecified, at most 20 PhraseSets will be returned. + // The maximum value is 20; values above 20 will be coerced to 20. + int32 page_size = 2; + + // A page token, received from a previous + // [ListPhraseSets][google.cloud.speech.v2.Speech.ListPhraseSets] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [ListPhraseSets][google.cloud.speech.v2.Speech.ListPhraseSets] must match + // the call that provided the page token. + string page_token = 3; + + // Whether, or not, to show resources that have been deleted. + bool show_deleted = 4; +} + +// Response message for the +// [ListPhraseSets][google.cloud.speech.v2.Speech.ListPhraseSets] method. +message ListPhraseSetsResponse { + // The list of requested PhraseSets. + repeated PhraseSet phrase_sets = 1; + + // A token, which can be sent as + // [page_token][google.cloud.speech.v2.ListPhraseSetsRequest.page_token] to + // retrieve the next page. If this field is omitted, there are no subsequent + // pages. This token expires after 72 hours. + string next_page_token = 2; +} + +// Request message for the +// [GetPhraseSet][google.cloud.speech.v2.Speech.GetPhraseSet] method. +message GetPhraseSetRequest { + // Required. The name of the PhraseSet to retrieve. The expected format is + // `projects/{project}/locations/{location}/phraseSets/{phrase_set}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/PhraseSet" + } + ]; +} + +// Request message for the +// [UpdatePhraseSet][google.cloud.speech.v2.Speech.UpdatePhraseSet] method. +message UpdatePhraseSetRequest { + // Required. The PhraseSet to update. + // + // The PhraseSet's `name` field is used to identify the PhraseSet to update. + // Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}`. + PhraseSet phrase_set = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. If empty, all non-default valued fields are + // considered for update. Use `*` to update the entire PhraseSet resource. + google.protobuf.FieldMask update_mask = 2; + + // If set, validate the request and preview the updated PhraseSet, but do not + // actually update it. + bool validate_only = 4; +} + +// Request message for the +// [DeletePhraseSet][google.cloud.speech.v2.Speech.DeletePhraseSet] method. +message DeletePhraseSetRequest { + // Required. The name of the PhraseSet to delete. + // Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/PhraseSet" + } + ]; + + // If set, validate the request and preview the deleted PhraseSet, but do not + // actually delete it. + bool validate_only = 2; + + // If set to true, and the PhraseSet is not found, the request will succeed + // and be a no-op (no Operation is recorded in this case). + bool allow_missing = 4; + + // This checksum is computed by the server based on the value of other + // fields. This may be sent on update, undelete, and delete requests to ensure + // the client has an up-to-date value before proceeding. + string etag = 3; +} + +// Request message for the +// [UndeletePhraseSet][google.cloud.speech.v2.Speech.UndeletePhraseSet] +// method. +message UndeletePhraseSetRequest { + // Required. The name of the PhraseSet to undelete. + // Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "speech.googleapis.com/PhraseSet" + } + ]; + + // If set, validate the request and preview the undeleted PhraseSet, but do + // not actually undelete it. + bool validate_only = 3; + + // This checksum is computed by the server based on the value of other + // fields. This may be sent on update, undelete, and delete requests to ensure + // the client has an up-to-date value before proceeding. + string etag = 4; +} diff --git a/google/cloud/speech/v2/speech_grpc_service_config.json b/google/cloud/speech/v2/speech_grpc_service_config.json new file mode 100644 index 000000000..8d82bb436 --- /dev/null +++ b/google/cloud/speech/v2/speech_grpc_service_config.json @@ -0,0 +1,18 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.speech.v2.Speech" + } + ], + "timeout": "5000s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["DEADLINE_EXCEEDED", "UNAVAILABLE"] + } + } + ] +} diff --git a/google/cloud/speech/v2/speech_v2.yaml b/google/cloud/speech/v2/speech_v2.yaml new file mode 100644 index 000000000..2290d7648 --- /dev/null +++ b/google/cloud/speech/v2/speech_v2.yaml @@ -0,0 +1,56 @@ +type: google.api.Service +config_version: 3 +name: speech.googleapis.com +title: Cloud Speech-to-Text API + +apis: +- name: google.cloud.speech.v2.Speech +- name: google.longrunning.Operations + +types: +- name: google.cloud.speech.v2.AutoDetectDecodingConfig +- name: google.cloud.speech.v2.BatchRecognizeResponse +- name: google.cloud.speech.v2.Config +- name: google.cloud.speech.v2.CustomClass +- name: google.cloud.speech.v2.ExplicitDecodingConfig +- name: google.cloud.speech.v2.OperationMetadata +- name: google.cloud.speech.v2.PhraseSet +- name: google.cloud.speech.v2.Recognizer +- name: google.cloud.speech.v2.StreamingRecognitionResult + +documentation: + summary: Converts audio to text by applying powerful neural network models. + overview: |- + # Introduction + + Google Cloud Speech API provides speech recognition as a service. + +backend: + rules: + - selector: 'google.cloud.speech.v2.Speech.*' + deadline: 355.0 + - selector: 'google.longrunning.Operations.*' + deadline: 355.0 + +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v2/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v2/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v2/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v2/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.speech.v2.Speech.*' + 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/google/cloud/sql/v1/BUILD.bazel b/google/cloud/sql/v1/BUILD.bazel index 9c57ec2e9..d4a1bb618 100644 --- a/google/cloud/sql/v1/BUILD.bazel +++ b/google/cloud/sql/v1/BUILD.bazel @@ -179,12 +179,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "sql_py_gapic", srcs = [":sql_proto"], grpc_service_config = "sqladmin_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "sql_py_gapic_test", + srcs = [ + "sql_py_gapic_pytest.py", + "sql_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":sql_py_gapic"], ) # Open Source Packages @@ -271,8 +283,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) diff --git a/google/cloud/sql/v1/cloud_sql_instance_names.proto b/google/cloud/sql/v1/cloud_sql_instance_names.proto index 1d3e61679..777cb13f5 100644 --- a/google/cloud/sql/v1/cloud_sql_instance_names.proto +++ b/google/cloud/sql/v1/cloud_sql_instance_names.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.sql.v1; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/sql/v1;sql"; diff --git a/google/cloud/sql/v1/cloud_sql_instances.proto b/google/cloud/sql/v1/cloud_sql_instances.proto index d9441eb12..9e132a540 100644 --- a/google/cloud/sql/v1/cloud_sql_instances.proto +++ b/google/cloud/sql/v1/cloud_sql_instances.proto @@ -703,7 +703,7 @@ message DatabaseInstance { google.protobuf.BoolValue available = 2; } - // Any scheduled maintenancce for this instance. + // Any scheduled maintenance for this instance. message SqlScheduledMaintenance { // The start time of any upcoming scheduled maintenance for this instance. google.protobuf.Timestamp start_time = 1; diff --git a/google/cloud/sql/v1beta4/BUILD.bazel b/google/cloud/sql/v1beta4/BUILD.bazel index 77faee03a..4f0074074 100644 --- a/google/cloud/sql/v1beta4/BUILD.bazel +++ b/google/cloud/sql/v1beta4/BUILD.bazel @@ -169,12 +169,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "sql_py_gapic", srcs = [":sql_proto"], grpc_service_config = "sqladmin_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "sql_py_gapic_test", + srcs = [ + "sql_py_gapic_pytest.py", + "sql_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":sql_py_gapic"], ) # Open Source Packages diff --git a/google/cloud/sql/v1beta4/cloud_sql.proto b/google/cloud/sql/v1beta4/cloud_sql.proto index 8a7e7ca09..a1fdf391f 100644 --- a/google/cloud/sql/v1beta4/cloud_sql.proto +++ b/google/cloud/sql/v1beta4/cloud_sql.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,9 +17,9 @@ syntax = "proto3"; package google.cloud.sql.v1beta4; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/sql/v1beta4/cloud_sql_resources.proto"; -import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/sql/v1beta4;sql"; option java_multiple_files = true; diff --git a/google/cloud/sql/v1beta4/cloud_sql_connect.proto b/google/cloud/sql/v1beta4/cloud_sql_connect.proto index 128323920..114f51807 100644 --- a/google/cloud/sql/v1beta4/cloud_sql_connect.proto +++ b/google/cloud/sql/v1beta4/cloud_sql_connect.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,11 +17,11 @@ syntax = "proto3"; package google.cloud.sql.v1beta4; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/sql/v1beta4/cloud_sql_resources.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/sql/v1beta4;sql"; option java_multiple_files = true; @@ -79,24 +79,26 @@ message ConnectSettings { // The assigned IP addresses for the instance. repeated IpMapping ip_addresses = 3; - // The cloud region for the instance. e.g. **us-central1**, **europe-west1**. + // The cloud region for the instance. e.g. `us-central1`, `europe-west1`. // The region cannot be changed after instance creation. string region = 4; - // The database engine type and version. The **databaseVersion** + // The database engine type and version. The `databaseVersion` // field cannot be changed after instance creation. - // MySQL instances: **MYSQL_8_0**, **MYSQL_5_7** (default), - // or **MYSQL_5_6**. - // PostgreSQL instances: **POSTGRES_9_6**, **POSTGRES_10**, - // **POSTGRES_11** or **POSTGRES_12** (default). - // SQL Server instances: **SQLSERVER_2017_STANDARD** (default), - // **SQLSERVER_2017_ENTERPRISE**, **SQLSERVER_2017_EXPRESS**, or - // **SQLSERVER_2017_WEB**. + // MySQL instances: `MYSQL_8_0`, `MYSQL_5_7` (default), + // or `MYSQL_5_6`. + // PostgreSQL instances: `POSTGRES_9_6`, `POSTGRES_10`, + // `POSTGRES_11` or `POSTGRES_12` (default), `POSTGRES_13`, or `POSTGRES_14`. + // SQL Server instances: `SQLSERVER_2017_STANDARD` (default), + // `SQLSERVER_2017_ENTERPRISE`, `SQLSERVER_2017_EXPRESS`, + // `SQLSERVER_2017_WEB`, `SQLSERVER_2019_STANDARD`, + // `SQLSERVER_2019_ENTERPRISE`, `SQLSERVER_2019_EXPRESS`, or + // `SQLSERVER_2019_WEB`. SqlDatabaseVersion database_version = 31; - // **SECOND_GEN**: Cloud SQL database instance. - // **EXTERNAL**: A database server that is not managed by Google. - // This property is read-only; use the **tier** property in the **settings** + // `SECOND_GEN`: Cloud SQL database instance. + // `EXTERNAL`: A database server that is not managed by Google. + // This property is read-only; use the `tier` property in the `settings` // object to determine the database type. SqlBackendType backend_type = 32; } diff --git a/google/cloud/sql/v1beta4/cloud_sql_resources.proto b/google/cloud/sql/v1beta4/cloud_sql_resources.proto index 2c2528927..04ef3ac06 100644 --- a/google/cloud/sql/v1beta4/cloud_sql_resources.proto +++ b/google/cloud/sql/v1beta4/cloud_sql_resources.proto @@ -1,5 +1,4 @@ -// LINT: LEGACY_NAMES -// Copyright 2021 Google LLC +// 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. @@ -12,6 +11,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +// LINT: LEGACY_NAMES syntax = "proto3"; @@ -34,13 +34,13 @@ message AclEntry { // The time when this access control entry expires in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp expiration_time = 2; // Optional. A label to identify this entry. string name = 3 [(google.api.field_behavior) = OPTIONAL]; - // This is always **sql#aclEntry**. + // This is always `sql#aclEntry`. string kind = 4; } @@ -89,13 +89,13 @@ message BackupRetentionSettings { // Database instance backup configuration. message BackupConfiguration { // Start time for the daily backup configuration in UTC timezone in the 24 - // hour format - **HH:MM**. + // hour format - `HH:MM`. string start_time = 1; // Whether this configuration is enabled. google.protobuf.BoolValue enabled = 2; - // This is always **sql#backupConfiguration**. + // This is always `sql#backupConfiguration`. string kind = 3; // (MySQL only) Whether binary log is enabled. If backup configuration is @@ -121,7 +121,7 @@ message BackupConfiguration { // A BackupRun resource. message BackupRun { - // This is always **sql#backupRun**. + // This is always `sql#backupRun`. string kind = 1; // The status of this run. @@ -129,7 +129,7 @@ message BackupRun { // The time the run was enqueued in UTC timezone in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp enqueued_time = 3; // The identifier for this backup run. Unique only for a specific Cloud SQL @@ -138,12 +138,12 @@ message BackupRun { // The time the backup operation actually started in UTC timezone in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp start_time = 5; // The time the backup operation completed in UTC timezone in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp end_time = 6; // Information about why the backup operation failed. This is only present if @@ -159,7 +159,7 @@ message BackupRun { // The start time of the backup window during which this the backup was // attempted in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for - // example **2012-11-15T16:19:00.094Z**. + // example `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp window_start_time = 10; // Name of the database instance. @@ -183,7 +183,7 @@ message BackupRun { // Backup run list results. message BackupRunsListResponse { - // This is always **sql#backupRunsList**. + // This is always `sql#backupRunsList`. string kind = 1; // A list of backup runs in reverse chronological order of the enqueued time. @@ -202,7 +202,7 @@ message BinLogCoordinates { // Position (offset) within the binary log file. int64 bin_log_position = 2; - // This is always **sql#binLogCoordinates**. + // This is always `sql#binLogCoordinates`. string kind = 3; } @@ -211,13 +211,13 @@ message BackupContext { // The identifier of the backup. int64 backup_id = 1; - // This is always **sql#backupContext**. + // This is always `sql#backupContext`. string kind = 2; } // Database instance clone context. message CloneContext { - // This is always **sql#cloneContext**. + // This is always `sql#cloneContext`. string kind = 1; // Reserved for future use. @@ -234,11 +234,20 @@ message CloneContext { // Timestamp, if specified, identifies the time to which the source instance // is cloned. google.protobuf.Timestamp point_in_time = 5; + + // The name of the allocated ip range for the private ip CloudSQL instance. + // For example: "google-managed-services-default". If set, the cloned instance + // ip will be created in the allocated range. The range name must comply with + // [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name + // must be 1-63 characters long and match the regular expression + // [a-z]([-a-z0-9]*[a-z0-9])?. + // Reserved for future use. + string allocated_ip_range = 6; } // Represents a SQL database on the Cloud SQL instance. message Database { - // This is always **sql#database**. + // This is always `sql#database`. string kind = 1; // The Cloud SQL charset value. @@ -288,8 +297,8 @@ message DatabaseFlags { // in the Cloud SQL documentation. string name = 1; - // The value of the flag. Booleans are set to **on** for true - // and **off** for false. This field must be omitted if the flag + // The value of the flag. Boolean flags are set to `on` for true + // and `off` for false. This field must be omitted if the flag // doesn't take a value. string value = 2; } @@ -321,6 +330,34 @@ message InstanceReference { // A Cloud SQL instance resource. message DatabaseInstance { + // The current serving state of the database instance. + enum SqlInstanceState { + // The state of the instance is unknown. + SQL_INSTANCE_STATE_UNSPECIFIED = 0; + + // The instance is running, or has been stopped by owner. + RUNNABLE = 1; + + // The instance is not available, for example due to problems with billing. + SUSPENDED = 2; + + // The instance is being deleted. + PENDING_DELETE = 3; + + // The instance is being created. + PENDING_CREATE = 4; + + // The instance is down for maintenance. + MAINTENANCE = 5; + + // The creation of the instance failed or a fatal error occurred during + // maintenance. + FAILED = 6; + + // Deprecated + ONLINE_MAINTENANCE = 7 [deprecated = true]; + } + message SqlFailoverReplica { // The name of the failover replica. If specified at instance creation, a // failover replica is created for the instance. The name @@ -333,7 +370,7 @@ message DatabaseInstance { google.protobuf.BoolValue available = 2; } - // Any scheduled maintenancce for this instance. + // Any scheduled maintenance for this instance. message SqlScheduledMaintenance { // The start time of any upcoming scheduled maintenance for this instance. google.protobuf.Timestamp start_time = 1; @@ -378,41 +415,13 @@ message DatabaseInstance { optional int32 sql_min_recommended_increase_size_gb = 2; } - // The current serving state of the database instance. - enum SqlInstanceState { - // The state of the instance is unknown. - SQL_INSTANCE_STATE_UNSPECIFIED = 0; - - // The instance is running, or has been stopped by owner. - RUNNABLE = 1; - - // The instance is not available, for example due to problems with billing. - SUSPENDED = 2; - - // The instance is being deleted. - PENDING_DELETE = 3; - - // The instance is being created. - PENDING_CREATE = 4; - - // The instance is down for maintenance. - MAINTENANCE = 5; - - // The creation of the instance failed or a fatal error occurred during - // maintenance. - FAILED = 6; - - // Deprecated - ONLINE_MAINTENANCE = 7 [deprecated = true]; - } - - // This is always **sql#instance**. + // This is always `sql#instance`. string kind = 1; // The current serving state of the Cloud SQL instance. SqlInstanceState state = 2; - // The database engine type and version. The **databaseVersion** field cannot + // The database engine type and version. The `databaseVersion` field cannot // be changed after instance creation. SqlDatabaseVersion database_version = 3; @@ -420,7 +429,7 @@ message DatabaseInstance { Settings settings = 4; // This field is deprecated and will be removed from a future version of the - // API. Use the **settings.settingsVersion** field instead. + // API. Use the `settings.settingsVersion` field instead. string etag = 5; // The name and status of the failover replica. @@ -462,7 +471,7 @@ message DatabaseInstance { // to First Generation instances. string ipv6_address = 15 [deprecated = true]; - // The service account email address assigned to the instance.
This + // The service account email address assigned to the instance. \This // property is read-only. string service_account_email_address = 16; @@ -473,10 +482,10 @@ message DatabaseInstance { ReplicaConfiguration replica_configuration = 18; // The backend type. - // **SECOND_GEN**: Cloud SQL database instance. - // **EXTERNAL**: A database server that is not managed by Google. + // `SECOND_GEN`: Cloud SQL database instance. + // `EXTERNAL`: A database server that is not managed by Google. // - // This property is read-only; use the **tier** property in the **settings** + // This property is read-only; use the `tier` property in the `settings` // object to determine the database type. SqlBackendType backend_type = 19; @@ -493,11 +502,11 @@ message DatabaseInstance { 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**. + // * `us-central` (`FIRST_GEN` instances only) + // * `us-central1` (`SECOND_GEN` instances only) + // * `asia-east1` or `europe-west1`. // - // Defaults to **us-central** or **us-central1** depending on the instance + // Defaults to `us-central` or `us-central1` depending on the instance // type. The region cannot be changed after instance creation. string region = 24; @@ -511,7 +520,6 @@ message DatabaseInstance { // from for a regional instance. This value could be different // from the zone that was specified when the instance // was created if the instance has failed over to its secondary/failover zone. - // Reserved for future use. string secondary_gce_zone = 34; // Disk encryption configuration specific to an instance. @@ -531,7 +539,7 @@ message DatabaseInstance { google.protobuf.BoolValue satisfies_pzs = 35; // Output only. Stores the current database version running on the instance including - // minor version such as **MYSQL_8_0_18**. + // minor version such as `MYSQL_8_0_18`. string database_installed_version = 40 [(google.api.field_behavior) = OUTPUT_ONLY]; // This field represents the report generated by the proactive database @@ -544,13 +552,19 @@ message DatabaseInstance { // Output only. The time when the instance was created in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp create_time = 39 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // List all maintenance versions applicable on the instance + repeated string available_maintenance_versions = 41; + + // The current software version on the instance. + string maintenance_version = 42; } // Database list response. message DatabasesListResponse { - // This is always **sql#databasesList**. + // This is always `sql#databasesList`. string kind = 1; // List of database resources in the instance. @@ -560,7 +574,7 @@ message DatabasesListResponse { // Read-replica configuration for connecting to the on-premises primary // instance. message DemoteMasterConfiguration { - // This is always **sql#demoteMasterConfiguration**. + // This is always `sql#demoteMasterConfiguration`. string kind = 1; // MySQL specific configuration when replicating from a MySQL on-premises @@ -568,21 +582,21 @@ message DemoteMasterConfiguration { // username, password, certificates, and keys are not stored in the instance // metadata. The configuration information is used only to set up the // replication connection and is stored by MySQL in a file named - // **master.info** in the data directory. + // `master.info` in the data directory. DemoteMasterMySqlReplicaConfiguration mysql_replica_configuration = 2; } // Database instance demote primary instance context. message DemoteMasterContext { - // This is always **sql#demoteMasterContext**. + // This is always `sql#demoteMasterContext`. string kind = 1; - // Verify GTID consistency for demote operation. Default value: - // **True**. Setting this flag to false enables you to bypass GTID consistency - // check between on-premises primary instance and Cloud SQL instance during - // the demotion operation but also exposes you to the risk of future - // replication failures. Change the value only if you know the reason for the - // GTID divergence and are confident that doing so will not cause any + // Verify the GTID consistency for demote operation. Default value: + // `True`. Setting this flag to `false` enables you to bypass the GTID + // consistency check between on-premises primary instance and Cloud SQL + // instance during the demotion operation but also exposes you to the risk of + // future replication failures. Change the value only if you know the reason + // for the GTID divergence and are confident that doing so will not cause any // replication issues. google.protobuf.BoolValue verify_gtid_consistency = 2; @@ -600,7 +614,7 @@ message DemoteMasterContext { // Read-replica configuration specific to MySQL databases. message DemoteMasterMySqlReplicaConfiguration { - // This is always **sql#demoteMasterMysqlReplicaConfiguration**. + // This is always `sql#demoteMasterMysqlReplicaConfiguration`. string kind = 1; // The username for the replication connection. @@ -621,6 +635,19 @@ message DemoteMasterMySqlReplicaConfiguration { string ca_certificate = 6; } +enum SqlFileType { + // Unknown file type. + SQL_FILE_TYPE_UNSPECIFIED = 0; + + // File containing SQL statements. + SQL = 1; + + // File in CSV format. + CSV = 2; + + BAK = 4; +} + // Database instance export context. message ExportContext { message SqlCsvExportOptions { @@ -647,10 +674,10 @@ message ExportContext { // Options for exporting from MySQL. message MysqlExportOptions { // Option to include SQL statement required to set up replication. If set - // to **1**, the dump file includes a CHANGE MASTER TO statement with the + // to `1`, the dump file includes a CHANGE MASTER TO statement with the // binary log coordinates, and --set-gtid-purged is set to ON. If set to - // **2**, the CHANGE MASTER TO statement is written as a SQL comment and - // has no effect. If set to any value other than **1**, --set-gtid-purged + // `2`, the CHANGE MASTER TO statement is written as a SQL comment and + // has no effect. If set to any value other than `1`, --set-gtid-purged // is set to OFF. google.protobuf.Int32Value master_data = 1; } @@ -667,33 +694,33 @@ message ExportContext { } // The path to the file in Google Cloud Storage where the export will be - // stored. The URI is in the form **gs://bucketName/fileName**. If the file + // stored. The URI is in the form `gs://bucketName/fileName`. If the file // already exists, the request succeeds, but the operation fails. If - // **fileType** is **SQL** and the filename ends with .gz, + // `fileType` is `SQL` and the filename ends with .gz, // the contents are compressed. string uri = 1; - // Databases to be exported.
**MySQL instances:** If - // **fileType** is **SQL** and no database is specified, all - // databases are exported, except for the **mysql** system database. - // If **fileType** is **CSV**, you can specify one database, + // Databases to be exported.
`MySQL instances:` If + // `fileType` is `SQL` and no database is specified, all + // databases are exported, except for the `mysql` system database. + // If `fileType` is `CSV`, you can specify one database, // either by using this property or by using the - // **csvExportOptions.selectQuery** property, which takes precedence - // over this property.
**PostgreSQL instances:** You must specify - // one database to be exported. If **fileType** is **CSV**, + // `csvExportOptions.selectQuery` property, which takes precedence + // over this property.
`PostgreSQL instances:` You must specify + // one database to be exported. If `fileType` is `CSV`, // this database must match the one specified in the - // **csvExportOptions.selectQuery** property.
**SQL Server - // instances:** You must specify one database to be exported, and the - // **fileType** must be **BAK**. + // `csvExportOptions.selectQuery` property.
`SQL Server + // instances:` You must specify one database to be exported, and the + // `fileType` must be `BAK`. repeated string databases = 2; - // This is always **sql#exportContext**. + // This is always `sql#exportContext`. string kind = 3; // Options for exporting data as SQL statements. SqlExportOptions sql_export_options = 4; - // Options for exporting data as CSV. **MySQL** and **PostgreSQL** + // Options for exporting data as CSV. `MySQL` and `PostgreSQL` // instances only. SqlCsvExportOptions csv_export_options = 5; @@ -710,39 +737,47 @@ message FailoverContext { // this version doesn't match the current settings version. int64 settings_version = 1; - // This is always **sql#failoverContext**. + // This is always `sql#failoverContext`. string kind = 2; } // A flag resource. message Flag { // This is the name of the flag. Flag names always use underscores, not - // hyphens, for example: **max_allowed_packet** + // hyphens, for example: `max_allowed_packet` string name = 1; - // The type of the flag. Flags are typed to being **BOOLEAN**, **STRING**, - // **INTEGER** or **NONE**. **NONE** is used for flags which do not take a - // value, such as **skip_grant_tables**. + // The type of the flag. Flags are typed to being `BOOLEAN`, `STRING`, + // `INTEGER` or `NONE`. `NONE` is used for flags which do not take a + // value, such as `skip_grant_tables`. SqlFlagType type = 2; - // The database version this flag applies to. Can be **MYSQL_8_0**, - // **MYSQL_5_6**, or **MYSQL_5_7**. + // The database version this flag applies to. Can be + // MySQL instances: `MYSQL_8_0`, `MYSQL_8_0_18`, `MYSQL_8_0_26`, `MYSQL_5_7`, + // or `MYSQL_5_6`. PostgreSQL instances: `POSTGRES_9_6`, `POSTGRES_10`, + // `POSTGRES_11` or `POSTGRES_12`. SQL Server instances: + // `SQLSERVER_2017_STANDARD`, `SQLSERVER_2017_ENTERPRISE`, + // `SQLSERVER_2017_EXPRESS`, `SQLSERVER_2017_WEB`, `SQLSERVER_2019_STANDARD`, + // `SQLSERVER_2019_ENTERPRISE`, `SQLSERVER_2019_EXPRESS`, or + // `SQLSERVER_2019_WEB`. + // See [the complete + // list](/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion). repeated SqlDatabaseVersion applies_to = 3; - // For **STRING** flags, a list of strings that the value can be set to. + // For `STRING` flags, a list of strings that the value can be set to. repeated string allowed_string_values = 4; - // For **INTEGER** flags, the minimum allowed value. + // For `INTEGER` flags, the minimum allowed value. google.protobuf.Int64Value min_value = 5; - // For **INTEGER** flags, the maximum allowed value. + // For `INTEGER` flags, the maximum allowed value. google.protobuf.Int64Value max_value = 6; // Indicates whether changing this flag will trigger a database restart. Only // applicable to Second Generation instances. google.protobuf.BoolValue requires_restart = 7; - // This is always **sql#flag**. + // This is always `sql#flag`. string kind = 8; // Whether or not the flag is considered in beta. @@ -755,26 +790,13 @@ message Flag { // Flags list response. message FlagsListResponse { - // This is always **sql#flagsList**. + // This is always `sql#flagsList`. string kind = 1; // List of flags. repeated Flag items = 2; } -enum SqlFileType { - // Unknown file type. - SQL_FILE_TYPE_UNSPECIFIED = 0; - - // File containing SQL statements. - SQL = 1; - - // File in CSV format. - CSV = 2; - - BAK = 4; -} - // Database instance import context. message ImportContext { message SqlCsvImportOptions { @@ -804,12 +826,12 @@ message ImportContext { message SqlBakImportOptions { message EncryptionOptions { // Path to the Certificate (.cer) in Cloud Storage, in the form - // **gs://bucketName/fileName**. The instance must have write permissions + // `gs://bucketName/fileName`. The instance must have write permissions // to the bucket and read access to the file. string cert_path = 1; // Path to the Certificate Private Key (.pvk) in Cloud Storage, in the - // form **gs://bucketName/fileName**. The instance must have write + // form `gs://bucketName/fileName`. The instance must have write // permissions to the bucket and read access to the file. string pvk_path = 2; @@ -821,24 +843,24 @@ message ImportContext { } // Path to the import file in Cloud Storage, in the form - // **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported - // when **fileType** is **SQL**. The instance must have + // `gs://bucketName/fileName`. Compressed gzip files (.gz) are supported + // when `fileType` is `SQL`. The instance must have // write permissions to the bucket and read access to the file. string uri = 1; - // The target database for the import. If **fileType** is **SQL**, this field + // The target database for the import. If `fileType` is `SQL`, this field // is required only if the import file does not specify a database, and is // overridden by any database specification in the import file. If - // **fileType** is **CSV**, one database must be specified. + // `fileType` is `CSV`, one database must be specified. string database = 2; - // This is always **sql#importContext**. + // This is always `sql#importContext`. string kind = 3; // The file type for the specified uri. - // * **SQL**: The file contains SQL statements. - // * **CSV**: The file contains CSV data. - // * **BAK**: The file contains backup data for a SQL Server instance. + // * `SQL`: The file contains SQL statements. + // * `CSV`: The file contains CSV data. + // * `BAK`: The file contains backup data for a SQL Server instance. SqlFileType file_type = 4; // Options for importing data as CSV. @@ -889,7 +911,7 @@ message MySqlSyncConfig { // Database instances list response. message InstancesListResponse { - // This is always **sql#instancesList**. + // This is always `sql#instancesList`. string kind = 1; // List of warnings that occurred while handling the request. @@ -910,7 +932,7 @@ message InstancesListServerCasResponse { string active_version = 2; - // This is always **sql#instancesListServerCas**. + // This is always `sql#instancesListServerCas`. string kind = 3; } @@ -934,7 +956,7 @@ message InstancesTruncateLogRequest { // Instance verify external sync settings response. message SqlInstancesVerifyExternalSyncSettingsResponse { - // This is always **sql#migrationSettingErrorList**. + // This is always `sql#migrationSettingErrorList`. string kind = 1; // List of migration violations. @@ -1021,10 +1043,13 @@ message SqlExternalSyncSettingError { // The primary instance's binary log retention setting. BINLOG_RETENTION_SETTING = 25; + + // The primary instance has tables with unsupported storage engine. + UNSUPPORTED_STORAGE_ENGINE = 26; } - // Can be **sql#externalSyncSettingError** or - // **sql#externalSyncSettingWarning**. + // Can be `sql#externalSyncSettingError` or + // `sql#externalSyncSettingWarning`. string kind = 1; // Identifies the specific error that occurred. @@ -1041,7 +1066,7 @@ message IpConfiguration { // The resource link for the VPC network from which the Cloud SQL instance is // accessible for private IP. For example, - // **/projects/myProject/global/networks/default**. This setting can + // `/projects/myProject/global/networks/default`. This setting can // be updated, but it cannot be removed after it is set. string private_network = 2; @@ -1050,7 +1075,7 @@ message IpConfiguration { // The list of external networks that are allowed to connect to the instance // using the IP. In 'CIDR' notation, also known as 'slash' notation (for - // example: **157.197.200.0/24**). + // example: `157.197.200.0/24`). repeated AclEntry authorized_networks = 4; // The name of the allocated ip range for the private ip CloudSQL instance. @@ -1064,9 +1089,9 @@ message IpConfiguration { // Database instance IP Mapping. message IpMapping { - // The type of this IP address. A **PRIMARY** address is a public address that - // can accept incoming connections. A **PRIVATE** address is a private address - // that can accept incoming connections. An **OUTGOING** address is the source + // The type of this IP address. A `PRIMARY` address is a public address that + // can accept incoming connections. A `PRIVATE` address is a private address + // that can accept incoming connections. An `OUTGOING` address is the source // address of connections originating from the instance, if supported. SqlIpAddressType type = 1; @@ -1075,7 +1100,7 @@ message IpMapping { // The due time for this IP to be retired in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. This field is only available when + // `2012-11-15T16:19:00.094Z`. This field is only available when // the IP is scheduled to be retired. google.protobuf.Timestamp time_to_retire = 3; } @@ -1095,10 +1120,9 @@ message LocationPreference { // The preferred Compute Engine zone for the secondary/failover // (for example: us-central1-a, us-central1-b, etc.). - // Reserved for future use. string secondary_zone = 4; - // This is always **sql#locationPreference**. + // This is always `sql#locationPreference`. string kind = 3; } @@ -1111,12 +1135,12 @@ message MaintenanceWindow { // day of week (1-7), starting on Monday. google.protobuf.Int32Value day = 2; - // Maintenance timing setting: **canary** (Earlier) or **stable** (Later). + // Maintenance timing setting: `canary` (Earlier) or `stable` (Later). // [Learn // more](https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen). SqlUpdateTrack update_track = 3; - // This is always **sql#maintenanceWindow**. + // This is always `sql#maintenanceWindow`. string kind = 4; } @@ -1203,7 +1227,7 @@ message MySqlReplicaConfiguration { // certificate that it sends during the SSL handshake. google.protobuf.BoolValue verify_server_certificate = 10; - // This is always **sql#mysqlReplicaConfiguration**. + // This is always `sql#mysqlReplicaConfiguration`. string kind = 11; } @@ -1212,7 +1236,7 @@ message OnPremisesConfiguration { // The host and port of the on-premises instance in host:port format string host_port = 1; - // This is always **sql#onPremisesConfiguration**. + // This is always `sql#onPremisesConfiguration`. string kind = 2; // The username for connecting to on-premises instance. @@ -1243,7 +1267,7 @@ message DiskEncryptionConfiguration { // Resource name of KMS key for disk encryption string kms_key_name = 1; - // This is always **sql#diskEncryptionConfiguration**. + // This is always `sql#diskEncryptionConfiguration`. string kind = 2; } @@ -1252,7 +1276,7 @@ message DiskEncryptionStatus { // KMS key version used to encrypt the Cloud SQL instance resource string kms_key_version_name = 1; - // This is always **sql#diskEncryptionStatus**. + // This is always `sql#diskEncryptionStatus`. string kind = 2; } @@ -1384,7 +1408,7 @@ message Operation { DONE = 3; } - // This is always **sql#operation**. + // This is always `sql#operation`. string kind = 1; string target_link = 2; @@ -1397,17 +1421,17 @@ message Operation { // The time this operation was enqueued in UTC timezone in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp insert_time = 5; // The time this operation actually started in UTC timezone in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp start_time = 6; // The time this operation finished in UTC timezone in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp end_time = 7; // If errors occurred during processing of this operation, this field will be @@ -1415,18 +1439,18 @@ message Operation { OperationErrors error = 8; // The type of the operation. Valid values are: - // * **CREATE** - // * **DELETE** - // * **UPDATE** - // * **RESTART** - // * **IMPORT** - // * **EXPORT** - // * **BACKUP_VOLUME** - // * **RESTORE_VOLUME** - // * **CREATE_USER** - // * **DELETE_USER** - // * **CREATE_DATABASE** - // * **DELETE_DATABASE** + // * `CREATE` + // * `DELETE` + // * `UPDATE` + // * `RESTART` + // * `IMPORT` + // * `EXPORT` + // * `BACKUP_VOLUME` + // * `RESTORE_VOLUME` + // * `CREATE_USER` + // * `DELETE_USER` + // * `CREATE_DATABASE` + // * `DELETE_DATABASE` SqlOperationType operation_type = 9; // The context for import operation, if applicable. @@ -1455,7 +1479,7 @@ message Operation { // Database instance operation error. message OperationError { - // This is always **sql#operationError**. + // This is always `sql#operationError`. string kind = 1; // Identifies the specific error that occurred. @@ -1467,7 +1491,7 @@ message OperationError { // Database instance operation errors list wrapper. message OperationErrors { - // This is always **sql#operationErrors**. + // This is always `sql#operationErrors`. string kind = 1; // The list of errors encountered while processing this operation. @@ -1501,11 +1525,14 @@ message PasswordValidationPolicy { // Minimum interval after which the password can be changed. This flag is only // supported for PostgresSQL. google.protobuf.Duration password_change_interval = 5; + + // Whether the password policy is enabled or not. + google.protobuf.BoolValue enable_password_policy = 6; } // Operations list response. message OperationsListResponse { - // This is always **sql#operationsList**. + // This is always `sql#operationsList`. string kind = 1; // List of operation resources. @@ -1518,7 +1545,7 @@ message OperationsListResponse { // Read-replica configuration for connecting to the primary instance. message ReplicaConfiguration { - // This is always **sql#replicaConfiguration**. + // This is always `sql#replicaConfiguration`. string kind = 1; // MySQL specific configuration when replicating from a MySQL on-premises @@ -1526,11 +1553,11 @@ message ReplicaConfiguration { // username, password, certificates, and keys are not stored in the instance // metadata. The configuration information is used only to set up the // replication connection and is stored by MySQL in a file named - // **master.info** in the data directory. + // `master.info` in the data directory. MySqlReplicaConfiguration mysql_replica_configuration = 2; // Specifies if the replica is the failover target. If the field is set to - // **true** the replica will be designated as a failover replica. In case the + // `true` the replica will be designated as a failover replica. In case the // primary instance fails, the replica instance will be promoted as the new // primary instance. Only one replica can be specified as failover target, and // the replica has to be in different zone with the primary instance. @@ -1540,7 +1567,7 @@ message ReplicaConfiguration { // Database instance restore from backup context. // Backup context contains source instance id and project id. message RestoreBackupContext { - // This is always **sql#restoreBackupContext**. + // This is always `sql#restoreBackupContext`. string kind = 1; // The ID of the backup run to restore from. @@ -1555,7 +1582,7 @@ message RestoreBackupContext { // Instance rotate server CA context. message RotateServerCaContext { - // This is always **sql#rotateServerCaContext**. + // This is always `sql#rotateServerCaContext`. string kind = 1; // The fingerprint of the next version to be rotated to. If left unspecified, @@ -1591,10 +1618,10 @@ message Settings { repeated string authorized_gae_applications = 2 [deprecated = true]; // The tier (or machine type) for this instance, for example - // **db-custom-1-3840**. WARNING: Changing this restarts the instance. + // `db-custom-1-3840`. WARNING: Changing this restarts the instance. string tier = 3; - // This is always **sql#settings**. + // This is always `sql#settings`. string kind = 4; // User-provided labels, represented as a dictionary where each label is a @@ -1602,21 +1629,21 @@ message Settings { map user_labels = 5; // Availability type. Potential values: - // * **ZONAL**: The instance serves data from only one zone. Outages in that + // * `ZONAL`: The instance serves data from only one zone. Outages in that // zone affect data accessibility. - // * **REGIONAL**: The instance can serve data from more than one zone in a + // * `REGIONAL`: The instance can serve data from more than one zone in a // region (it is highly available)./ // // For more information, see [Overview of the High Availability // Configuration](https://cloud.google.com/sql/docs/mysql/high-availability). SqlAvailabilityType availability_type = 6; - // The pricing plan for this instance. This can be either **PER_USE** or - // **PACKAGE**. Only **PER_USE** is supported for Second Generation instances. + // The pricing plan for this instance. This can be either `PER_USE` or + // `PACKAGE`. Only `PER_USE` is supported for Second Generation instances. SqlPricingPlan pricing_plan = 7; // The type of replication this instance uses. This can be either - // **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only + // `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only // applicable to First Generation instances. SqlReplicationType replication_type = 8 [deprecated = true]; @@ -1626,9 +1653,9 @@ message Settings { // The activation policy specifies when the instance is activated; it is // applicable only when the instance state is RUNNABLE. Valid values: - // * **ALWAYS**: The instance is on, and remains so even in the absence of + // * `ALWAYS`: The instance is on, and remains so even in the absence of // connection requests. - // * **NEVER**: The instance is off; it is not activated, even if a + // * `NEVER`: The instance is off; it is not activated, even if a // connection request arrives. SqlActivationPolicy activation_policy = 10; @@ -1650,7 +1677,7 @@ message Settings { // The database flags passed to the instance at startup. repeated DatabaseFlags database_flags = 14; - // The type of data disk: **PD_SSD** (default) or **PD_HDD**. Not used for + // The type of data disk: `PD_SSD` (default) or `PD_HDD`. Not used for // First Generation instances. SqlDataDiskType data_disk_type = 15; @@ -1695,7 +1722,7 @@ message Settings { // SslCerts Resource message SslCert { - // This is always **sql#sslCert**. + // This is always `sql#sslCert`. string kind = 1; // Serial number, as extracted from the certificate. @@ -1706,7 +1733,7 @@ message SslCert { // The time when the certificate was created in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp create_time = 4; // User supplied name. Constrained to [a-zA-Z.-_ ]+. @@ -1714,7 +1741,7 @@ message SslCert { // The time when the certificate expires in // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. + // `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp expiration_time = 6; // Sha1 Fingerprint. @@ -1755,17 +1782,6 @@ message SslCertsInsertRequest { // Reschedule options for maintenance windows. message SqlInstancesRescheduleMaintenanceRequestBody { - message Reschedule { - // Required. The type of the reschedule. - RescheduleType reschedule_type = 1; - - // Optional. Timestamp when the maintenance shall be rescheduled to if - // reschedule_type=SPECIFIC_TIME, in - // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example - // **2012-11-15T16:19:00.094Z**. - google.protobuf.Timestamp schedule_time = 2 [(google.api.field_behavior) = OPTIONAL]; - } - enum RescheduleType { RESCHEDULE_TYPE_UNSPECIFIED = 0; @@ -1780,13 +1796,24 @@ message SqlInstancesRescheduleMaintenanceRequestBody { SPECIFIC_TIME = 3; } + message Reschedule { + // Required. The type of the reschedule. + RescheduleType reschedule_type = 1; + + // Optional. Timestamp when the maintenance shall be rescheduled to if + // reschedule_type=SPECIFIC_TIME, in + // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example + // `2012-11-15T16:19:00.094Z`. + google.protobuf.Timestamp schedule_time = 2 [(google.api.field_behavior) = OPTIONAL]; + } + // Required. The type of the reschedule the user wants. Reschedule reschedule = 3; } // SslCert insert response. message SslCertsInsertResponse { - // This is always **sql#sslCertsInsert**. + // This is always `sql#sslCertsInsert`. string kind = 1; // The operation to track the ssl certs insert request. @@ -1803,7 +1830,7 @@ message SslCertsInsertResponse { // SslCerts list response. message SslCertsListResponse { - // This is always **sql#sslCertsList**. + // This is always `sql#sslCertsList`. string kind = 1; // List of client certificates for the instance. @@ -1812,11 +1839,11 @@ message SslCertsListResponse { // Database Instance truncate log context. message TruncateLogContext { - // This is always **sql#truncateLogContext**. + // This is always `sql#truncateLogContext`. string kind = 1; - // The type of log to truncate. Valid values are **MYSQL_GENERAL_TABLE** and - // **MYSQL_SLOW_TABLE**. + // The type of log to truncate. Valid values are `MYSQL_GENERAL_TABLE` and + // `MYSQL_SLOW_TABLE`. string log_type = 2; } @@ -1836,6 +1863,12 @@ message SqlServerAuditConfig { // The name of the destination bucket (e.g., gs://mybucket). string bucket = 2; + + // How long to keep generated audit files. + google.protobuf.Duration retention_interval = 3; + + // How often to upload generated audit files. + google.protobuf.Duration upload_interval = 4; } // The status of a backup run. @@ -2000,6 +2033,12 @@ enum SqlDatabaseVersion { // The database major version is MySQL 8.0 and the minor version is 26. MYSQL_8_0_26 = 85; + // The database major version is MySQL 8.0 and the minor version is 27. + MYSQL_8_0_27 = 111; + + // The database major version is MySQL 8.0 and the minor version is 28. + MYSQL_8_0_28 = 132; + // The database version is PostgreSQL 13. POSTGRES_13 = 23; diff --git a/google/cloud/sql/v1beta4/cloud_sql_tiers.proto b/google/cloud/sql/v1beta4/cloud_sql_tiers.proto index c20c9b573..b6a1ea0fe 100644 --- a/google/cloud/sql/v1beta4/cloud_sql_tiers.proto +++ b/google/cloud/sql/v1beta4/cloud_sql_tiers.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -34,7 +34,7 @@ service SqlTiersService { "https://www.googleapis.com/auth/sqlservice.admin"; // Lists all available machine types (tiers) for Cloud SQL, for example, - // db-custom-1-3840. For related information, see [Pricing](/sql/pricing). + // `db-custom-1-3840`. For related information, see [Pricing](/sql/pricing). rpc List(SqlTiersListRequest) returns (TiersListResponse) { option (google.api.http) = { get: "/sql/v1beta4/projects/{project}/tiers" @@ -49,7 +49,7 @@ message SqlTiersListRequest { // Tiers list response. message TiersListResponse { - // This is always sql#tiersList. + // This is always `sql#tiersList`. string kind = 1; // List of tiers. @@ -58,14 +58,14 @@ message TiersListResponse { // A Google Cloud SQL service tier resource. message Tier { - // An identifier for the machine type, for example, db-custom-1-3840. For + // An identifier for the machine type, for example, `db-custom-1-3840`. For // related information, see [Pricing](/sql/pricing). string tier = 1; // The maximum RAM usage of this tier in bytes. int64 RAM = 2; - // This is always sql#tier. + // This is always `sql#tier`. string kind = 3; // The maximum disk size of this tier in bytes. diff --git a/google/cloud/sql/v1beta4/cloud_sql_users.proto b/google/cloud/sql/v1beta4/cloud_sql_users.proto index 42304c7d9..eb954333e 100644 --- a/google/cloud/sql/v1beta4/cloud_sql_users.proto +++ b/google/cloud/sql/v1beta4/cloud_sql_users.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,11 +17,11 @@ syntax = "proto3"; package google.cloud.sql.v1beta4; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/sql/v1beta4/cloud_sql_resources.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/sql/v1beta4;sql"; option java_multiple_files = true; @@ -84,38 +84,38 @@ message SqlUsersDeleteRequest { string project = 4; } -message SqlUsersUpdateRequest { - // Optional. Host of the user in the instance. - string host = 1 [(google.api.field_behavior) = OPTIONAL]; - +message SqlUsersInsertRequest { // Database instance ID. This does not include the project ID. - string instance = 2; - - // Name of the user in the instance. - string name = 3; + string instance = 1; // Project ID of the project that contains the instance. - string project = 4; + string project = 2; User body = 100; } -message SqlUsersInsertRequest { +message SqlUsersListRequest { // Database instance ID. This does not include the project ID. string instance = 1; // Project ID of the project that contains the instance. string project = 2; - - User body = 100; } -message SqlUsersListRequest { +message SqlUsersUpdateRequest { + // Optional. Host of the user in the instance. + string host = 1 [(google.api.field_behavior) = OPTIONAL]; + // Database instance ID. This does not include the project ID. - string instance = 1; + string instance = 2; + + // Name of the user in the instance. + string name = 3; // Project ID of the project that contains the instance. - string project = 2; + string project = 4; + + User body = 100; } // User level password validation policy. @@ -156,7 +156,7 @@ message User { CLOUD_IAM_SERVICE_ACCOUNT = 2; } - // This is always sql#user. + // This is always `sql#user`. string kind = 1; // The password for the user. @@ -167,24 +167,24 @@ message User { string etag = 3; // The name of the user in the Cloud SQL instance. Can be omitted for - // **update** since it is already specified in the URL. + // `update` because it is already specified in the URL. string name = 4; - // Optional. The host name from which the user can connect. For **insert** - // operations, host defaults to an empty string. For **update** + // Optional. The host from which the user can connect. For `insert` + // operations, host defaults to an empty string. For `update` // operations, host is specified as part of the request URL. The host name // cannot be updated after insertion. For a MySQL instance, it's required; // for a PostgreSQL or SQL Server instance, it's optional. string host = 5 [(google.api.field_behavior) = OPTIONAL]; // The name of the Cloud SQL instance. This does not include the project ID. - // Can be omitted for update since it is already specified on the + // Can be omitted for update because it is already specified on the // URL. string instance = 6; // The project ID of the project containing the Cloud SQL database. The Google // apps domain is prefixed if applicable. Can be omitted for - // update since it is already specified on the URL. + // update because it is already specified on the URL. string project = 7; // The user type. It determines the method to authenticate the user during diff --git a/google/cloud/stream/logging/v1/BUILD.bazel b/google/cloud/stream/logging/v1/BUILD.bazel new file mode 100644 index 000000000..c6c05b1d5 --- /dev/null +++ b/google/cloud/stream/logging/v1/BUILD.bazel @@ -0,0 +1,175 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "logging.proto", + ], + deps = [ + "@com_google_protobuf//:timestamp_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/stream/logging/v1", + protos = [":logging_proto"], + deps = [], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/cloud/stream/logging/v1/logging.proto b/google/cloud/stream/logging/v1/logging.proto new file mode 100644 index 000000000..85e550046 --- /dev/null +++ b/google/cloud/stream/logging/v1/logging.proto @@ -0,0 +1,184 @@ +// 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.cloud.stream.logging.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/stream/logging/v1;logging"; +option java_multiple_files = true; +option java_outer_classname = "LoggingProto"; +option java_package = "com.google.cloud.stream.logging.v1"; + +// OperationEventLog contains the time series data of the operations on the +// stream resources. Internally, these logs represent events happening in +// the control plane as result of API invocations against the stream resource +// entities. +message OperationEventLog { + // Enum for type of event being logged. + OperationEventType event_type = 1; + + // Timestamp when the event occurred. + google.protobuf.Timestamp event_time = 2; + + // Operation resource identifier. + string operation = 3; + + // Artifact created as a result of the operation. + repeated OperationArtifact operation_artifacts = 4; +} + +// OperationArtifact contains the information about the artifact created as +// result of the operation. +message OperationArtifact { + // Type of the artifact. + string artifact_type = 1; + + // Location of the artifact. + string artifact_uri = 2; +} + +// SessionEventLog contains the time series data regarding the streaming session +// to serve the end consumer. Internally, these logs represent events in the +// data plane streamer instance as a result of end consumer interacting with the +// stream resources. +message SessionEventLog { + // Enum for type of event being logged. + SessionEventType event_type = 1; + + // Timestamp when the event occurred. + google.protobuf.Timestamp event_time = 2; + + // Session identifier generated from the server. + string session_id = 3; +} + +// OperationEventType is the enum value for the state of operation. +enum OperationEventType { + // Unspecified operation event type. + OPERATION_EVENT_TYPE_UNSPECIFIED = 0; + + // Operation for create stream content started. + OPERATION_EVENT_CREATE_CONTENT_STARTED = 1; + + // Operation for create stream content ended. + OPERATION_EVENT_CREATE_CONTENT_ENDED = 2; + + // Operation for build stream content started. + OPERATION_EVENT_BUILD_CONTENT_STARTED = 3; + + // Operation for build stream content ended. + OPERATION_EVENT_BUILD_CONTENT_ENDED = 4; + + // Operation for update stream content started. + OPERATION_EVENT_UPDATE_CONTENT_STARTED = 5; + + // Operation for update stream content ended. + OPERATION_EVENT_UPDATE_CONTENT_ENDED = 6; + + // Operation for delete stream content started. + OPERATION_EVENT_DELETE_CONTENT_STARTED = 7; + + // Operation for delete stream content ended. + OPERATION_EVENT_DELETE_CONTENT_ENDED = 8; + + // Operation for create stream instance started. + OPERATION_EVENT_CREATE_INSTANCE_STARTED = 9; + + // Operation for create stream instance ended. + OPERATION_EVENT_CREATE_INSTANCE_ENDED = 10; + + // Operation for update stream instance started. + OPERATION_EVENT_UPDATE_INSTANCE_STARTED = 11; + + // Operation for update stream instance ended. + OPERATION_EVENT_UPDATE_INSTANCE_ENDED = 12; + + // Operation for delete stream instance started. + OPERATION_EVENT_DELETE_INSTANCE_STARTED = 13; + + // Operation for delete stream instance ended. + OPERATION_EVENT_DELETE_INSTANCE_ENDED = 14; +} + +// SessionEventType is the enum value for the state of session. +enum SessionEventType { + // Unspecified session event type. + SESSION_EVENT_TYPE_UNSPECIFIED = 0; + + // Session in streamer shutting down state. + SESSION_EVENT_SERVER_STREAMER_SHUTTING_DOWN = 1; + + // Session in streamer ready state. + SESSION_EVENT_SERVER_STREAMER_READY = 2; + + // Session in streamer binary started state. + SESSION_EVENT_SERVER_STREAMER_BINARY_STARTED = 3; + + // Session in streamer read pod image names state. + SESSION_EVENT_SERVER_STREAMER_READ_POD_IMAGE_NAMES = 4; + + // Session in streamer connected to game state. + SESSION_EVENT_SERVER_STREAMER_CONNECTED_TO_GAME = 5; + + // Session in streamer connected to client state. + SESSION_EVENT_SERVER_STREAMER_CONNECTED_TO_CLIENT = 6; + + // Session in streamer disconnected from client state. + SESSION_EVENT_SERVER_STREAMER_DISCONNECTED_FROM_CLIENT = 7; + + // Session in streamer received create session request state. + SESSION_EVENT_SERVER_STREAMER_RECEIVED_CREATE_SESSION_REQUEST = 8; + + // Session in streamer game message to stream closed state. + SESSION_EVENT_SERVER_STREAMER_GAME_MESSAGE_STREAM_CLOSED = 9; + + // Session in streamer game frame stream closed state. + SESSION_EVENT_SERVER_STREAMER_GAME_FRAME_STREAM_CLOSED = 10; + + // Session in streamer game message stream error state. + SESSION_EVENT_SERVER_STREAMER_GAME_MESSAGE_STREAM_ERROR = 11; + + // Session in streamer game audio stream error state. + SESSION_EVENT_SERVER_STREAMER_GAME_AUDIO_STREAM_ERROR = 12; + + // Session in streamer game audio stream closed state. + SESSION_EVENT_SERVER_STREAMER_GAME_AUDIO_STREAM_CLOSED = 13; + + // Session in streamer game frame stream error state. + SESSION_EVENT_SERVER_STREAMER_GAME_FRAME_STREAM_ERROR = 14; + + // Session in game disconnecting after paused too long state. + SESSION_EVENT_SERVER_GAME_DISCONNECTING_AFTER_PAUSED_TOO_LONG = 15; + + // Session in streamer received experiment configuration state. + SESSION_EVENT_SERVER_STREAMER_RECEIVED_EXPERIMENT_CONFIGURATION = 16; + + // Session in game connected to logging service state. + SESSION_EVENT_SERVER_GAME_CONNECTED_TO_LOGGING_SERVICE = 17; + + // Session in streamer determined session options state. + SESSION_EVENT_SERVER_STREAMER_DETERMINED_SESSION_OPTIONS = 18; + + // Session in streamer killed in middle of session state. + SESSION_EVENT_SERVER_STREAMER_KILLED_IN_MIDDLE_OF_SESSION = 19; + + // Session in game updated frame pipeline state. + SESSION_EVENT_SERVER_GAME_UPDATED_FRAME_PIPELINE = 20; + + // Session in server error state. + SESSION_EVENT_SERVER_ERROR = 21; +} diff --git a/google/cloud/talent/v4/BUILD.bazel b/google/cloud/talent/v4/BUILD.bazel index 0b9d1824a..70e201291 100644 --- a/google/cloud/talent/v4/BUILD.bazel +++ b/google/cloud/talent/v4/BUILD.bazel @@ -92,6 +92,7 @@ java_gapic_library( test_deps = [ ":talent_java_grpc", ], + transport = "grpc+rest", deps = [ ":talent_java_proto", ], @@ -100,10 +101,15 @@ java_gapic_library( java_gapic_test( name = "talent_java_gapic_test_suite", test_classes = [ + "com.google.cloud.talent.v4.CompanyServiceClientHttpJsonTest", "com.google.cloud.talent.v4.CompanyServiceClientTest", + "com.google.cloud.talent.v4.CompletionClientHttpJsonTest", "com.google.cloud.talent.v4.CompletionClientTest", + "com.google.cloud.talent.v4.EventServiceClientHttpJsonTest", "com.google.cloud.talent.v4.EventServiceClientTest", + "com.google.cloud.talent.v4.JobServiceClientHttpJsonTest", "com.google.cloud.talent.v4.JobServiceClientTest", + "com.google.cloud.talent.v4.TenantServiceClientHttpJsonTest", "com.google.cloud.talent.v4.TenantServiceClientTest", ], runtime_deps = [":talent_java_gapic_test"], @@ -112,6 +118,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-talent-v4-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":talent_java_gapic", ":talent_java_grpc", @@ -153,6 +161,7 @@ go_gapic_library( grpc_service_config = "talent_grpc_service_config.json", importpath = "cloud.google.com/go/talent/apiv4;talent", service_yaml = "//google/cloud/talent:talent_v4.yaml", + transport = "grpc+rest", deps = [ ":talent_go_proto", "//google/longrunning:longrunning_go_proto", @@ -187,12 +196,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "talent_py_gapic", srcs = [":talent_proto"], grpc_service_config = "talent_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "talent_py_gapic_test", + srcs = [ + "talent_py_gapic_pytest.py", + "talent_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":talent_py_gapic"], ) py_gapic_assembly_pkg( @@ -350,6 +371,7 @@ csharp_grpc_library( csharp_gapic_library( name = "talent_csharp_gapic", srcs = [":talent_proto_with_info"], + service_yaml = "//google/cloud/talent:talent_v4.yaml", deps = [ ":talent_csharp_grpc", ":talent_csharp_proto", diff --git a/google/cloud/talent/v4/common.proto b/google/cloud/talent/v4/common.proto index 9035f6ee6..79dbb2d5c 100644 --- a/google/cloud/talent/v4/common.proto +++ b/google/cloud/talent/v4/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,7 +22,6 @@ import "google/protobuf/wrappers.proto"; import "google/type/latlng.proto"; import "google/type/money.proto"; import "google/type/postal_address.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent"; option java_multiple_files = true; @@ -701,20 +700,6 @@ message CompensationInfo { google.protobuf.DoubleValue expected_units_per_year = 6; } - // Compensation range. - message CompensationRange { - // The maximum amount of compensation. If left empty, the value is set - // to a maximal compensation value and the currency code is set to - // match the [currency code][google.type.Money.currency_code] of - // min_compensation. - google.type.Money max_compensation = 2; - - // The minimum amount of compensation. If left empty, the value is set - // to zero and the currency code is set to match the - // [currency code][google.type.Money.currency_code] of max_compensation. - google.type.Money min_compensation = 1; - } - // The type of compensation. // // For compensation amounts specified in non-monetary amounts, @@ -790,6 +775,20 @@ message CompensationInfo { OTHER_COMPENSATION_UNIT = 7; } + // Compensation range. + message CompensationRange { + // The maximum amount of compensation. If left empty, the value is set + // to a maximal compensation value and the currency code is set to + // match the [currency code][google.type.Money.currency_code] of + // min_compensation. + google.type.Money max_compensation = 2; + + // The minimum amount of compensation. If left empty, the value is set + // to zero and the currency code is set to match the + // [currency code][google.type.Money.currency_code] of max_compensation. + google.type.Money min_compensation = 1; + } + // Job compensation information. // // At most one entry can be of type diff --git a/google/cloud/talent/v4/company.proto b/google/cloud/talent/v4/company.proto index 4c1bd8578..9845aa968 100644 --- a/google/cloud/talent/v4/company.proto +++ b/google/cloud/talent/v4/company.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.talent.v4; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/talent/v4/common.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4/company_service.proto b/google/cloud/talent/v4/company_service.proto index 94dcd126b..797d92108 100644 --- a/google/cloud/talent/v4/company_service.proto +++ b/google/cloud/talent/v4/company_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/talent/v4/completion_service.proto b/google/cloud/talent/v4/completion_service.proto index e4e6adf1c..c053c6ce1 100644 --- a/google/cloud/talent/v4/completion_service.proto +++ b/google/cloud/talent/v4/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,10 +17,10 @@ syntax = "proto3"; package google.cloud.talent.v4; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/talent/v4/common.proto"; -import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4/event.proto b/google/cloud/talent/v4/event.proto index ef3a40f41..53545d658 100644 --- a/google/cloud/talent/v4/event.proto +++ b/google/cloud/talent/v4/event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.talent.v4; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4/event_service.proto b/google/cloud/talent/v4/event_service.proto index 6ba11dee8..40f6c7e21 100644 --- a/google/cloud/talent/v4/event_service.proto +++ b/google/cloud/talent/v4/event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/talent/v4/filters.proto b/google/cloud/talent/v4/filters.proto index 7eddc93c9..8018dc551 100644 --- a/google/cloud/talent/v4/filters.proto +++ b/google/cloud/talent/v4/filters.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -21,7 +21,6 @@ import "google/cloud/talent/v4/common.proto"; import "google/protobuf/duration.proto"; import "google/type/latlng.proto"; import "google/type/timeofday.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent"; option java_multiple_files = true; @@ -95,8 +94,24 @@ message JobQuery { // Currently we don't support sorting by commute time. CommuteFilter commute_filter = 5; - // This filter specifies the exact company [Company.display_name][google.cloud.talent.v4.Company.display_name] - // of the jobs to search against. + // This filter specifies the company [Company.display_name][google.cloud.talent.v4.Company.display_name] + // of the jobs to search against. The company name must match the value + // exactly. + // + // Alternatively, the value being searched for can be wrapped in different + // match operators. + // `SUBSTRING_MATCH([value])` + // The company name must contain a case insensitive substring match of the + // value. Using this function may increase latency. + // + // Sample Value: `SUBSTRING_MATCH(google)` + // + // `MULTI_WORD_TOKEN_MATCH([value])` + // The value will be treated as a multi word token and the company name must + // contain a case insensitive match of the value. Using this function may + // increase latency. + // + // Sample Value: `MULTI_WORD_TOKEN_MATCH(google)` // // If a value isn't specified, jobs within the search results are // associated with any company. @@ -186,11 +201,15 @@ message LocationFilter { // Default value if the telecommute preference isn't specified. TELECOMMUTE_PREFERENCE_UNSPECIFIED = 0; - // Exclude telecommute jobs. - TELECOMMUTE_EXCLUDED = 1; + // Deprecated: Ignore telecommute status of jobs. Use + // TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs. + TELECOMMUTE_EXCLUDED = 1 [deprecated = true]; // Allow telecommute jobs. TELECOMMUTE_ALLOWED = 2; + + // Exclude telecommute jobs. + TELECOMMUTE_JOBS_EXCLUDED = 3; } // The address name, such as "Mountain View" or "Bay Area". @@ -224,13 +243,15 @@ message LocationFilter { // Allows the client to return jobs without a // set location, specifically, telecommuting jobs (telecommuting is considered - // by the service as a special location. + // by the service as a special location). // [Job.posting_region][google.cloud.talent.v4.Job.posting_region] indicates if a job permits telecommuting. // If this field is set to [TelecommutePreference.TELECOMMUTE_ALLOWED][google.cloud.talent.v4.LocationFilter.TelecommutePreference.TELECOMMUTE_ALLOWED], // telecommuting jobs are searched, and [address][google.cloud.talent.v4.LocationFilter.address] and [lat_lng][google.cloud.talent.v4.LocationFilter.lat_lng] are // ignored. If not set or set to - // [TelecommutePreference.TELECOMMUTE_EXCLUDED][google.cloud.talent.v4.LocationFilter.TelecommutePreference.TELECOMMUTE_EXCLUDED], telecommute job are not - // searched. + // [TelecommutePreference.TELECOMMUTE_EXCLUDED][google.cloud.talent.v4.LocationFilter.TelecommutePreference.TELECOMMUTE_EXCLUDED], the telecommute status of + // the jobs is ignored. Jobs that have [PostingRegion.TELECOMMUTE][google.cloud.talent.v4.PostingRegion.TELECOMMUTE] and have + // additional [Job.addresses][google.cloud.talent.v4.Job.addresses] may still be matched based on other location + // filters using [address][google.cloud.talent.v4.LocationFilter.address] or [latlng][]. // // This filter can be used by itself to search exclusively for telecommuting // jobs, or it can be combined with another location diff --git a/google/cloud/talent/v4/histogram.proto b/google/cloud/talent/v4/histogram.proto index cc6f7273c..0c3c9969b 100644 --- a/google/cloud/talent/v4/histogram.proto +++ b/google/cloud/talent/v4/histogram.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.talent.v4; -import "google/api/annotations.proto"; - option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent"; option java_multiple_files = true; option java_outer_classname = "HistogramProto"; diff --git a/google/cloud/talent/v4/job.proto b/google/cloud/talent/v4/job.proto index b926c3855..bd3156842 100644 --- a/google/cloud/talent/v4/job.proto +++ b/google/cloud/talent/v4/job.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/talent/v4/common.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4/job_service.proto b/google/cloud/talent/v4/job_service.proto index 5572b7c12..b17751dcb 100644 --- a/google/cloud/talent/v4/job_service.proto +++ b/google/cloud/talent/v4/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -25,7 +25,6 @@ import "google/cloud/talent/v4/filters.proto"; import "google/cloud/talent/v4/histogram.proto"; import "google/cloud/talent/v4/job.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -227,6 +226,32 @@ message DeleteJobRequest { ]; } +// An enum that specifies the job attributes that are returned in the +// [MatchingJob.job][google.cloud.talent.v4.SearchJobsResponse.MatchingJob.job] or +// [ListJobsResponse.jobs][google.cloud.talent.v4.ListJobsResponse.jobs] fields. +enum JobView { + // Default value. + JOB_VIEW_UNSPECIFIED = 0; + + // A ID only view of job, with following attributes: + // [Job.name][google.cloud.talent.v4.Job.name], [Job.requisition_id][google.cloud.talent.v4.Job.requisition_id], [Job.language_code][google.cloud.talent.v4.Job.language_code]. + JOB_VIEW_ID_ONLY = 1; + + // A minimal view of the job, with the following attributes: + // [Job.name][google.cloud.talent.v4.Job.name], [Job.requisition_id][google.cloud.talent.v4.Job.requisition_id], [Job.title][google.cloud.talent.v4.Job.title], + // [Job.company][google.cloud.talent.v4.Job.company], [Job.DerivedInfo.locations][google.cloud.talent.v4.Job.DerivedInfo.locations], [Job.language_code][google.cloud.talent.v4.Job.language_code]. + JOB_VIEW_MINIMAL = 2; + + // A small view of the job, with the following attributes in the search + // results: [Job.name][google.cloud.talent.v4.Job.name], [Job.requisition_id][google.cloud.talent.v4.Job.requisition_id], [Job.title][google.cloud.talent.v4.Job.title], + // [Job.company][google.cloud.talent.v4.Job.company], [Job.DerivedInfo.locations][google.cloud.talent.v4.Job.DerivedInfo.locations], [Job.visibility][google.cloud.talent.v4.Job.visibility], + // [Job.language_code][google.cloud.talent.v4.Job.language_code], [Job.description][google.cloud.talent.v4.Job.description]. + JOB_VIEW_SMALL = 3; + + // All available attributes are included in the search results. + JOB_VIEW_FULL = 4; +} + // List jobs request. message ListJobsRequest { // Required. The resource name of the tenant under which the job is created. @@ -282,32 +307,6 @@ message ListJobsRequest { JobView job_view = 5; } -// An enum that specifies the job attributes that are returned in the -// [MatchingJob.job][google.cloud.talent.v4.SearchJobsResponse.MatchingJob.job] or -// [ListJobsResponse.jobs][google.cloud.talent.v4.ListJobsResponse.jobs] fields. -enum JobView { - // Default value. - JOB_VIEW_UNSPECIFIED = 0; - - // A ID only view of job, with following attributes: - // [Job.name][google.cloud.talent.v4.Job.name], [Job.requisition_id][google.cloud.talent.v4.Job.requisition_id], [Job.language_code][google.cloud.talent.v4.Job.language_code]. - JOB_VIEW_ID_ONLY = 1; - - // A minimal view of the job, with the following attributes: - // [Job.name][google.cloud.talent.v4.Job.name], [Job.requisition_id][google.cloud.talent.v4.Job.requisition_id], [Job.title][google.cloud.talent.v4.Job.title], - // [Job.company][google.cloud.talent.v4.Job.company], [Job.DerivedInfo.locations][google.cloud.talent.v4.Job.DerivedInfo.locations], [Job.language_code][google.cloud.talent.v4.Job.language_code]. - JOB_VIEW_MINIMAL = 2; - - // A small view of the job, with the following attributes in the search - // results: [Job.name][google.cloud.talent.v4.Job.name], [Job.requisition_id][google.cloud.talent.v4.Job.requisition_id], [Job.title][google.cloud.talent.v4.Job.title], - // [Job.company][google.cloud.talent.v4.Job.company], [Job.DerivedInfo.locations][google.cloud.talent.v4.Job.DerivedInfo.locations], [Job.visibility][google.cloud.talent.v4.Job.visibility], - // [Job.language_code][google.cloud.talent.v4.Job.language_code], [Job.description][google.cloud.talent.v4.Job.description]. - JOB_VIEW_SMALL = 3; - - // All available attributes are included in the search results. - JOB_VIEW_FULL = 4; -} - // List jobs response. message ListJobsResponse { // The Jobs for a given company. @@ -326,75 +325,6 @@ message ListJobsResponse { // The Request body of the `SearchJobs` call. message SearchJobsRequest { - // Custom ranking information for [SearchJobsRequest][google.cloud.talent.v4.SearchJobsRequest]. - message CustomRankingInfo { - // The importance level for [CustomRankingInfo.ranking_expression][google.cloud.talent.v4.SearchJobsRequest.CustomRankingInfo.ranking_expression]. - enum ImportanceLevel { - // Default value if the importance level isn't specified. - IMPORTANCE_LEVEL_UNSPECIFIED = 0; - - // The given ranking expression is of None importance, existing relevance - // score (determined by API algorithm) dominates job's final ranking - // position. - NONE = 1; - - // The given ranking expression is of Low importance in terms of job's - // final ranking position compared to existing relevance - // score (determined by API algorithm). - LOW = 2; - - // The given ranking expression is of Mild importance in terms of job's - // final ranking position compared to existing relevance - // score (determined by API algorithm). - MILD = 3; - - // The given ranking expression is of Medium importance in terms of job's - // final ranking position compared to existing relevance - // score (determined by API algorithm). - MEDIUM = 4; - - // The given ranking expression is of High importance in terms of job's - // final ranking position compared to existing relevance - // score (determined by API algorithm). - HIGH = 5; - - // The given ranking expression is of Extreme importance, and dominates - // job's final ranking position with existing relevance - // score (determined by API algorithm) ignored. - EXTREME = 6; - } - - // Required. Controls over how important the score of - // [CustomRankingInfo.ranking_expression][google.cloud.talent.v4.SearchJobsRequest.CustomRankingInfo.ranking_expression] gets applied to job's final - // ranking position. - // - // An error is thrown if not specified. - ImportanceLevel importance_level = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Controls over how job documents get ranked on top of existing relevance - // score (determined by API algorithm). A combination of the ranking - // expression and relevance score is used to determine job's final ranking - // position. - // - // The syntax for this expression is a subset of Google SQL syntax. - // - // Supported operators are: +, -, *, /, where the left and right side of - // the operator is either a numeric [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes] key, - // integer/double value or an expression that can be evaluated to a number. - // - // Parenthesis are supported to adjust calculation precedence. The - // expression must be < 200 characters in length. - // - // The expression is considered invalid for a job if the expression - // references custom attributes that are not populated on the job or if the - // expression results in a divide by zero. If an expression is invalid for a - // job, that job is demoted to the end of the results. - // - // Sample ranking expression - // (year + 25) * 0.25 - (freshness / 0.5) - string ranking_expression = 2 [(google.api.field_behavior) = REQUIRED]; - } - // A string-represented enumeration of the job search mode. The service // operate differently for different modes of service. enum SearchMode { @@ -489,6 +419,75 @@ message SearchJobsRequest { KEYWORD_MATCH_TITLE_ONLY = 3; } + // Custom ranking information for [SearchJobsRequest][google.cloud.talent.v4.SearchJobsRequest]. + message CustomRankingInfo { + // The importance level for [CustomRankingInfo.ranking_expression][google.cloud.talent.v4.SearchJobsRequest.CustomRankingInfo.ranking_expression]. + enum ImportanceLevel { + // Default value if the importance level isn't specified. + IMPORTANCE_LEVEL_UNSPECIFIED = 0; + + // The given ranking expression is of None importance, existing relevance + // score (determined by API algorithm) dominates job's final ranking + // position. + NONE = 1; + + // The given ranking expression is of Low importance in terms of job's + // final ranking position compared to existing relevance + // score (determined by API algorithm). + LOW = 2; + + // The given ranking expression is of Mild importance in terms of job's + // final ranking position compared to existing relevance + // score (determined by API algorithm). + MILD = 3; + + // The given ranking expression is of Medium importance in terms of job's + // final ranking position compared to existing relevance + // score (determined by API algorithm). + MEDIUM = 4; + + // The given ranking expression is of High importance in terms of job's + // final ranking position compared to existing relevance + // score (determined by API algorithm). + HIGH = 5; + + // The given ranking expression is of Extreme importance, and dominates + // job's final ranking position with existing relevance + // score (determined by API algorithm) ignored. + EXTREME = 6; + } + + // Required. Controls over how important the score of + // [CustomRankingInfo.ranking_expression][google.cloud.talent.v4.SearchJobsRequest.CustomRankingInfo.ranking_expression] gets applied to job's final + // ranking position. + // + // An error is thrown if not specified. + ImportanceLevel importance_level = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Controls over how job documents get ranked on top of existing relevance + // score (determined by API algorithm). A combination of the ranking + // expression and relevance score is used to determine job's final ranking + // position. + // + // The syntax for this expression is a subset of Google SQL syntax. + // + // Supported operators are: +, -, *, /, where the left and right side of + // the operator is either a numeric [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes] key, + // integer/double value or an expression that can be evaluated to a number. + // + // Parenthesis are supported to adjust calculation precedence. The + // expression must be < 200 characters in length. + // + // The expression is considered invalid for a job if the expression + // references custom attributes that are not populated on the job or if the + // expression results in a divide by zero. If an expression is invalid for a + // job, that job is demoted to the end of the results. + // + // Sample ranking expression + // (year + 25) * 0.25 - (freshness / 0.5) + string ranking_expression = 2 [(google.api.field_behavior) = REQUIRED]; + } + // Required. The resource name of the tenant to search within. // // The format is "projects/{project_id}/tenants/{tenant_id}". For example, @@ -531,6 +530,8 @@ message SearchJobsRequest { // * `count(numeric_histogram_facet, list of buckets)`: Count the number of // matching entities within each bucket. // + // A maximum of 200 histogram buckets are supported. + // // Data types: // // * Histogram facet: facet names with format `[a-zA-Z][a-zA-Z0-9_]+`. diff --git a/google/cloud/talent/v4/jobs_v4.yaml b/google/cloud/talent/v4/jobs_v4.yaml index be67cd912..4f8c484b4 100644 --- a/google/cloud/talent/v4/jobs_v4.yaml +++ b/google/cloud/talent/v4/jobs_v4.yaml @@ -9,6 +9,7 @@ apis: - name: google.cloud.talent.v4.EventService - name: google.cloud.talent.v4.JobService - name: google.cloud.talent.v4.TenantService +- name: google.longrunning.Operations types: - name: google.cloud.talent.v4.BatchCreateJobsResponse diff --git a/google/cloud/talent/v4/tenant.proto b/google/cloud/talent/v4/tenant.proto index 1246dfb2b..018c5db58 100644 --- a/google/cloud/talent/v4/tenant.proto +++ b/google/cloud/talent/v4/tenant.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.talent.v4; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4/tenant_service.proto b/google/cloud/talent/v4/tenant_service.proto index 7962695c8..d509062c8 100644 --- a/google/cloud/talent/v4/tenant_service.proto +++ b/google/cloud/talent/v4/tenant_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/talent/v4beta1/BUILD.bazel b/google/cloud/talent/v4beta1/BUILD.bazel index ef702e64b..196728a02 100644 --- a/google/cloud/talent/v4beta1/BUILD.bazel +++ b/google/cloud/talent/v4beta1/BUILD.bazel @@ -1,4 +1,13 @@ # 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"]) @@ -12,8 +21,6 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "talent_proto", srcs = [ - "application.proto", - "application_service.proto", "batch.proto", "common.proto", "company.proto", @@ -25,8 +32,6 @@ proto_library( "histogram.proto", "job.proto", "job_service.proto", - "profile.proto", - "profile_service.proto", "tenant.proto", "tenant_service.proto", ], @@ -38,6 +43,7 @@ proto_library( "//google/longrunning:operations_proto", "//google/rpc:status_proto", "//google/type:date_proto", + "//google/type:dayofweek_proto", "//google/type:latlng_proto", "//google/type:money_proto", "//google/type:postal_address_proto", @@ -85,24 +91,31 @@ java_grpc_library( java_gapic_library( name = "talent_java_gapic", srcs = [":talent_proto_with_info"], + gapic_yaml = None, grpc_service_config = "talent_grpc_service_config.json", + service_yaml = "jobs_v4beta1.yaml", test_deps = [ ":talent_java_grpc", ], + transport = "grpc+rest", deps = [ ":talent_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "talent_java_gapic_test_suite", test_classes = [ - "com.google.cloud.talent.v4beta1.ApplicationServiceClientTest", + "com.google.cloud.talent.v4beta1.CompanyServiceClientHttpJsonTest", "com.google.cloud.talent.v4beta1.CompanyServiceClientTest", + "com.google.cloud.talent.v4beta1.CompletionClientHttpJsonTest", "com.google.cloud.talent.v4beta1.CompletionClientTest", + "com.google.cloud.talent.v4beta1.EventServiceClientHttpJsonTest", "com.google.cloud.talent.v4beta1.EventServiceClientTest", + "com.google.cloud.talent.v4beta1.JobServiceClientHttpJsonTest", "com.google.cloud.talent.v4beta1.JobServiceClientTest", - "com.google.cloud.talent.v4beta1.ProfileServiceClientTest", + "com.google.cloud.talent.v4beta1.TenantServiceClientHttpJsonTest", "com.google.cloud.talent.v4beta1.TenantServiceClientTest", ], runtime_deps = [":talent_java_gapic_test"], @@ -111,6 +124,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-talent-v4beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":talent_java_gapic", ":talent_java_grpc", @@ -140,6 +155,7 @@ go_proto_library( "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", "//google/type:date_go_proto", + "//google/type:dayofweek_go_proto", "//google/type:latlng_go_proto", "//google/type:money_go_proto", "//google/type:postaladdress_go_proto", @@ -152,13 +168,14 @@ go_gapic_library( srcs = [":talent_proto_with_info"], grpc_service_config = "talent_grpc_service_config.json", importpath = "cloud.google.com/go/talent/apiv4beta1;talent", - service_yaml = "//google/cloud/talent:talent_v4beta1.yaml", + metadata = True, + service_yaml = "jobs_v4beta1.yaml", + transport = "grpc+rest", deps = [ ":talent_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", ], ) @@ -175,6 +192,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-talent-v4beta1-go", deps = [ ":talent_go_gapic", + ":talent_go_gapic_srcjar-metadata.srcjar", ":talent_go_gapic_srcjar-test.srcjar", ":talent_go_proto", ], @@ -187,14 +205,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "talent_py_gapic", srcs = [":talent_proto"], grpc_service_config = "talent_grpc_service_config.json", + service_yaml = "jobs_v4beta1.yaml", + transport = "grpc", ) +py_test( + name = "talent_py_gapic_test", + srcs = [ + "talent_py_gapic_pytest.py", + "talent_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":talent_py_gapic"], +) + +# Open Source Packages py_gapic_assembly_pkg( name = "talent-v4beta1-py", deps = [ @@ -262,7 +294,7 @@ nodejs_gapic_library( grpc_service_config = "talent_grpc_service_config.json", main_service = "talent", package = "google.cloud.talent.v4beta1", - service_yaml = "//google/cloud/talent:talent_v4beta1.yaml", + service_yaml = "jobs_v4beta1.yaml", deps = [], ) @@ -300,11 +332,11 @@ ruby_cloud_gapic_library( name = "talent_ruby_gapic", srcs = [":talent_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-talent-v4beta1", - "ruby-cloud-env-prefix=TALENT", - "ruby-cloud-product-url=https://cloud.google.com/solutions/talent-solution", "ruby-cloud-api-id=jobs.googleapis.com", "ruby-cloud-api-shortname=jobs", + "ruby-cloud-env-prefix=TALENT", + "ruby-cloud-gem-name=google-cloud-talent-v4beta1", + "ruby-cloud-product-url=https://cloud.google.com/solutions/talent-solution", ], grpc_service_config = "talent_grpc_service_config.json", ruby_cloud_description = "Transform your job search and candidate matching capabilities with Cloud Talent Solution, designed to support enterprise talent acquisition technology and evolve with your growing needs. This AI solution includes features such as Job Search and Profile Search to provide candidates and employers with an enhanced talent acquisition experience.", @@ -352,6 +384,7 @@ csharp_gapic_library( srcs = [":talent_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "talent_grpc_service_config.json", + service_yaml = "jobs_v4beta1.yaml", deps = [ ":talent_csharp_grpc", ":talent_csharp_proto", @@ -371,4 +404,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "talent_cc_proto", + deps = [":talent_proto"], +) + +cc_grpc_library( + name = "talent_cc_grpc", + srcs = [":talent_proto"], + grpc_only = True, + deps = [":talent_cc_proto"], +) diff --git a/google/cloud/talent/v4beta1/application.proto b/google/cloud/talent/v4beta1/application.proto deleted file mode 100644 index ccb492089..000000000 --- a/google/cloud/talent/v4beta1/application.proto +++ /dev/null @@ -1,183 +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.cloud.talent.v4beta1; - -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/talent/v4beta1/common.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; -import "google/type/date.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; -option java_multiple_files = true; -option java_outer_classname = "ApplicationResourceProto"; -option java_package = "com.google.cloud.talent.v4beta1"; -option objc_class_prefix = "CTS"; - -// Resource that represents a job application record of a candidate. -message Application { - option (google.api.resource) = { - type: "jobs.googleapis.com/Application" - pattern: "projects/{project}/tenants/{tenant}/profiles/{profile}/applications/{application}" - }; - - // Enum that represents the application status. - enum ApplicationState { - // Default value. - APPLICATION_STATE_UNSPECIFIED = 0; - - // The current stage is in progress or pending, for example, interviews in - // progress. - IN_PROGRESS = 1; - - // The current stage was terminated by a candidate decision. - CANDIDATE_WITHDREW = 2; - - // The current stage was terminated by an employer or agency decision. - EMPLOYER_WITHDREW = 3; - - // The current stage is successfully completed, but the next stage (if - // applicable) has not begun. - COMPLETED = 4; - - // The current stage was closed without an exception, or terminated for - // reasons unrealated to the candidate. - CLOSED = 5; - } - - // The stage of the application. - enum ApplicationStage { - // Default value. - APPLICATION_STAGE_UNSPECIFIED = 0; - - // Candidate has applied or a recruiter put candidate into consideration but - // candidate is not yet screened / no decision has been made to move or not - // move the candidate to the next stage. - NEW = 1; - - // A recruiter decided to screen the candidate for this role. - SCREEN = 2; - - // Candidate is being / was sent to the customer / hiring manager for - // detailed review. - HIRING_MANAGER_REVIEW = 3; - - // Candidate was approved by the client / hiring manager and is being / was - // interviewed for the role. - INTERVIEW = 4; - - // Candidate will be / has been given an offer of employment. - OFFER_EXTENDED = 5; - - // Candidate has accepted their offer of employment. - OFFER_ACCEPTED = 6; - - // Candidate has begun (or completed) their employment or assignment with - // the employer. - STARTED = 7; - } - - // Required during application update. - // - // Resource name assigned to an application by the API. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}/applications/{application_id}". - // For example, "projects/foo/tenants/bar/profiles/baz/applications/qux". - string name = 1; - - // Required. Client side application identifier, used to uniquely identify the - // application. - // - // The maximum number of allowed characters is 255. - string external_id = 31 [(google.api.field_behavior) = REQUIRED]; - - // Output only. Resource name of the candidate of this application. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}". - // For example, "projects/foo/tenants/bar/profiles/baz". - string profile = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. Resource name of the job which the candidate applied for. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For example, - // "projects/foo/tenants/bar/jobs/baz". - string job = 4 [ - (google.api.resource_reference).type = "jobs.googleapis.com/Job", - (google.api.field_behavior) = REQUIRED - ]; - - // Resource name of the company which the candidate applied for. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". - // For example, "projects/foo/tenants/bar/companies/baz". - string company = 5 [ - (google.api.resource_reference) = { type: "jobs.googleapis.com/Company" } - ]; - - // The application date. - google.type.Date application_date = 7; - - // Required. What is the most recent stage of the application (that is, new, - // screen, send cv, hired, finished work)? This field is intentionally not - // comprehensive of every possible status, but instead, represents statuses - // that would be used to indicate to the ML models good / bad matches. - ApplicationStage stage = 11 [(google.api.field_behavior) = REQUIRED]; - - // The application state. - ApplicationState state = 13; - - // All interviews (screen, onsite, and so on) conducted as part of this - // application (includes details such as user conducting the interview, - // timestamp, feedback, and so on). - repeated Interview interviews = 16; - - // If the candidate is referred by a employee. - google.protobuf.BoolValue referral = 18; - - // Required. Reflects the time that the application was created. - google.protobuf.Timestamp create_time = 19 - [(google.api.field_behavior) = REQUIRED]; - - // The last update timestamp. - google.protobuf.Timestamp update_time = 20; - - // Free text reason behind the recruitement outcome (for example, reason for - // withdraw / reject, reason for an unsuccessful finish, and so on). - // - // Number of characters allowed is 100. - string outcome_notes = 21; - - // Outcome positiveness shows how positive the outcome is. - Outcome outcome = 22; - - // Output only. Indicates whether this job application is a match to - // application related filters. This value is only applicable in profile - // search response. - google.protobuf.BoolValue is_match = 28 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Job title snippet shows how the job title is related to a - // search query. It's empty if the job title isn't related to the search - // query. - string job_title_snippet = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/google/cloud/talent/v4beta1/application_service.proto b/google/cloud/talent/v4beta1/application_service.proto deleted file mode 100644 index c9f990dab..000000000 --- a/google/cloud/talent/v4beta1/application_service.proto +++ /dev/null @@ -1,181 +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.cloud.talent.v4beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/talent/v4beta1/application.proto"; -import "google/cloud/talent/v4beta1/common.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/field_mask.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; -option java_multiple_files = true; -option java_outer_classname = "ApplicationServiceProto"; -option java_package = "com.google.cloud.talent.v4beta1"; -option objc_class_prefix = "CTS"; - -// A service that handles application management, including CRUD and -// enumeration. -service ApplicationService { - option (google.api.default_host) = "jobs.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform," - "https://www.googleapis.com/auth/jobs"; - - // Creates a new application entity. - rpc CreateApplication(CreateApplicationRequest) returns (Application) { - option (google.api.http) = { - post: "/v4beta1/{parent=projects/*/tenants/*/profiles/*}/applications" - body: "*" - }; - option (google.api.method_signature) = "parent,application"; - } - - // Retrieves specified application. - rpc GetApplication(GetApplicationRequest) returns (Application) { - option (google.api.http) = { - get: "/v4beta1/{name=projects/*/tenants/*/profiles/*/applications/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates specified application. - rpc UpdateApplication(UpdateApplicationRequest) returns (Application) { - option (google.api.http) = { - patch: "/v4beta1/{application.name=projects/*/tenants/*/profiles/*/applications/*}" - body: "*" - }; - option (google.api.method_signature) = "application"; - } - - // Deletes specified application. - rpc DeleteApplication(DeleteApplicationRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v4beta1/{name=projects/*/tenants/*/profiles/*/applications/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Lists all applications associated with the profile. - rpc ListApplications(ListApplicationsRequest) returns (ListApplicationsResponse) { - option (google.api.http) = { - get: "/v4beta1/{parent=projects/*/tenants/*/profiles/*}/applications" - }; - option (google.api.method_signature) = "parent"; - } -} - -// The Request of the CreateApplication method. -message CreateApplicationRequest { - // Required. Resource name of the profile under which the application is created. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}". - // For example, "projects/foo/tenants/bar/profiles/baz". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "jobs.googleapis.com/Profile" - } - ]; - - // Required. The application to be created. - Application application = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request for getting a application by name. -message GetApplicationRequest { - // Required. The resource name of the application to be retrieved. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}/applications/{application_id}". - // For example, "projects/foo/tenants/bar/profiles/baz/applications/qux". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "jobs.googleapis.com/Application" - } - ]; -} - -// Request for updating a specified application. -message UpdateApplicationRequest { - // Required. The application resource to replace the current resource in the system. - Application application = 1 [(google.api.field_behavior) = REQUIRED]; - - // Strongly recommended for the best service experience. - // - // If [update_mask][google.cloud.talent.v4beta1.UpdateApplicationRequest.update_mask] is provided, only the specified fields in - // [application][google.cloud.talent.v4beta1.UpdateApplicationRequest.application] are updated. Otherwise all the fields are updated. - // - // A field mask to specify the application fields to be updated. Only - // top level fields of [Application][google.cloud.talent.v4beta1.Application] are supported. - google.protobuf.FieldMask update_mask = 2; -} - -// Request to delete a application. -message DeleteApplicationRequest { - // Required. The resource name of the application to be deleted. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}/applications/{application_id}". - // For example, "projects/foo/tenants/bar/profiles/baz/applications/qux". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "jobs.googleapis.com/Application" - } - ]; -} - -// List applications for which the client has ACL visibility. -message ListApplicationsRequest { - // Required. Resource name of the profile under which the application is created. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}", for - // example, "projects/foo/tenants/bar/profiles/baz". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "jobs.googleapis.com/Profile" - } - ]; - - // The starting indicator from which to return results. - string page_token = 2; - - // The maximum number of applications to be returned, at most 100. - // Default is 100 if a non-positive number is provided. - int32 page_size = 3; -} - -// The List applications response object. -message ListApplicationsResponse { - // Applications for the current client. - repeated Application applications = 1; - - // A token to retrieve the next page of results. - string next_page_token = 2; - - // Additional information for the API invocation, such as the request - // tracking id. - ResponseMetadata metadata = 3; -} diff --git a/google/cloud/talent/v4beta1/batch.proto b/google/cloud/talent/v4beta1/batch.proto index 074e87050..64a40e9ca 100644 --- a/google/cloud/talent/v4beta1/batch.proto +++ b/google/cloud/talent/v4beta1/batch.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.talent.v4beta1; -import "google/api/annotations.proto"; - option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; option java_outer_classname = "BatchProto"; diff --git a/google/cloud/talent/v4beta1/common.proto b/google/cloud/talent/v4beta1/common.proto index 13f774217..6125bcc8c 100644 --- a/google/cloud/talent/v4beta1/common.proto +++ b/google/cloud/talent/v4beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -19,12 +19,9 @@ package google.cloud.talent.v4beta1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; -import "google/type/date.proto"; import "google/type/latlng.proto"; import "google/type/money.proto"; import "google/type/postal_address.proto"; -import "google/type/timeofday.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; @@ -41,72 +38,6 @@ message TimestampRange { google.protobuf.Timestamp end_time = 2; } -// A resource that represents a location with full geographic information. -message Location { - // An enum which represents the type of a location. - enum LocationType { - // Default value if the type isn't specified. - LOCATION_TYPE_UNSPECIFIED = 0; - - // A country level location. - COUNTRY = 1; - - // A state or equivalent level location. - ADMINISTRATIVE_AREA = 2; - - // A county or equivalent level location. - SUB_ADMINISTRATIVE_AREA = 3; - - // A city or equivalent level location. - LOCALITY = 4; - - // A postal code level location. - POSTAL_CODE = 5; - - // A sublocality is a subdivision of a locality, for example a city borough, - // ward, or arrondissement. Sublocalities are usually recognized by a local - // political authority. For example, Manhattan and Brooklyn are recognized - // as boroughs by the City of New York, and are therefore modeled as - // sublocalities. - SUB_LOCALITY = 6; - - // A district or equivalent level location. - SUB_LOCALITY_1 = 7; - - // A smaller district or equivalent level display. - SUB_LOCALITY_2 = 8; - - // A neighborhood level location. - NEIGHBORHOOD = 9; - - // A street address level location. - STREET_ADDRESS = 10; - } - - // The type of a location, which corresponds to the address lines field of - // [google.type.PostalAddress][google.type.PostalAddress]. For example, "Downtown, Atlanta, GA, USA" - // has a type of [LocationType.NEIGHBORHOOD][google.cloud.talent.v4beta1.Location.LocationType.NEIGHBORHOOD], and "Kansas City, KS, USA" - // has a type of [LocationType.LOCALITY][google.cloud.talent.v4beta1.Location.LocationType.LOCALITY]. - LocationType location_type = 1; - - // Postal address of the location that includes human readable information, - // such as postal delivery and payments addresses. Given a postal address, - // a postal service can deliver items to a premises, P.O. Box, or other - // delivery location. - google.type.PostalAddress postal_address = 2; - - // An object representing a latitude/longitude pair. - google.type.LatLng lat_lng = 3; - - // Radius in miles of the job location. This value is derived from the - // location bounding box in which a circle with the specified radius - // centered from [google.type.LatLng][google.type.LatLng] covers the area associated with the - // job location. - // For example, currently, "Mountain View, CA, USA" has a radius of - // 6.17 miles. - double radius_miles = 4; -} - // An enum that represents the size of the company. enum CompanySize { // Default value if the size isn't specified. @@ -457,21 +388,6 @@ enum Visibility { SHARED_WITH_PUBLIC = 3; } -// Enum that represents the usage of the contact information. -enum ContactInfoUsage { - // Default value. - CONTACT_INFO_USAGE_UNSPECIFIED = 0; - - // Personal use. - PERSONAL = 1; - - // Work use. - WORK = 2; - - // School use. - SCHOOL = 3; -} - // Option for HTML content sanitization on user input fields, for example, job // description. By setting this option, user can determine whether and how // sanitization is performed on these fields. @@ -506,6 +422,72 @@ enum CommuteMethod { CYCLING = 4; } +// A resource that represents a location with full geographic information. +message Location { + // An enum which represents the type of a location. + enum LocationType { + // Default value if the type isn't specified. + LOCATION_TYPE_UNSPECIFIED = 0; + + // A country level location. + COUNTRY = 1; + + // A state or equivalent level location. + ADMINISTRATIVE_AREA = 2; + + // A county or equivalent level location. + SUB_ADMINISTRATIVE_AREA = 3; + + // A city or equivalent level location. + LOCALITY = 4; + + // A postal code level location. + POSTAL_CODE = 5; + + // A sublocality is a subdivision of a locality, for example a city borough, + // ward, or arrondissement. Sublocalities are usually recognized by a local + // political authority. For example, Manhattan and Brooklyn are recognized + // as boroughs by the City of New York, and are therefore modeled as + // sublocalities. + SUB_LOCALITY = 6; + + // A district or equivalent level location. + SUB_LOCALITY_1 = 7; + + // A smaller district or equivalent level display. + SUB_LOCALITY_2 = 8; + + // A neighborhood level location. + NEIGHBORHOOD = 9; + + // A street address level location. + STREET_ADDRESS = 10; + } + + // The type of a location, which corresponds to the address lines field of + // [google.type.PostalAddress][google.type.PostalAddress]. For example, "Downtown, Atlanta, GA, USA" + // has a type of [LocationType.NEIGHBORHOOD][google.cloud.talent.v4beta1.Location.LocationType.NEIGHBORHOOD], and "Kansas City, KS, USA" + // has a type of [LocationType.LOCALITY][google.cloud.talent.v4beta1.Location.LocationType.LOCALITY]. + LocationType location_type = 1; + + // Postal address of the location that includes human readable information, + // such as postal delivery and payments addresses. Given a postal address, + // a postal service can deliver items to a premises, P.O. Box, or other + // delivery location. + google.type.PostalAddress postal_address = 2; + + // An object representing a latitude/longitude pair. + google.type.LatLng lat_lng = 3; + + // Radius in miles of the job location. This value is derived from the + // location bounding box in which a circle with the specified radius + // centered from [google.type.LatLng][google.type.LatLng] covers the area associated with the + // job location. + // For example, currently, "Mountain View, CA, USA" has a radius of + // 6.17 miles. + double radius_miles = 4; +} + // Meta information related to the job searcher or entity // conducting the job search. This information is used to improve the // performance of the service. @@ -634,11 +616,19 @@ message CustomAttribute { // Currently at most 1 [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] is supported. repeated int64 long_values = 2; - // If the `filterable` flag is true, custom field values are searchable. - // If false, values are not searchable. + // If the `filterable` flag is true, the custom field values may be used for + // custom attribute filters [JobQuery.custom_attribute_filter][google.cloud.talent.v4beta1.JobQuery.custom_attribute_filter]. + // If false, these values may not be used for custom attribute filters. // // Default is false. bool filterable = 3; + + // If the `keyword_searchable` flag is true, the keywords in custom fields are + // searchable by keyword match. + // If false, the values are not searchable by keyword match. + // + // Default is false. + bool keyword_searchable = 4; } // Spell check result. @@ -705,20 +695,6 @@ message CompensationInfo { google.protobuf.DoubleValue expected_units_per_year = 6; } - // Compensation range. - message CompensationRange { - // The maximum amount of compensation. If left empty, the value is set - // to a maximal compensation value and the currency code is set to - // match the [currency code][google.type.Money.currency_code] of - // min_compensation. - google.type.Money max_compensation = 2; - - // The minimum amount of compensation. If left empty, the value is set - // to zero and the currency code is set to match the - // [currency code][google.type.Money.currency_code] of max_compensation. - google.type.Money min_compensation = 1; - } - // The type of compensation. // // For compensation amounts specified in non-monetary amounts, @@ -794,6 +770,20 @@ message CompensationInfo { OTHER_COMPENSATION_UNIT = 7; } + // Compensation range. + message CompensationRange { + // The maximum amount of compensation. If left empty, the value is set + // to a maximal compensation value and the currency code is set to + // match the [currency code][google.type.Money.currency_code] of + // min_compensation. + google.type.Money max_compensation = 2; + + // The minimum amount of compensation. If left empty, the value is set + // to zero and the currency code is set to match the + // [currency code][google.type.Money.currency_code] of max_compensation. + google.type.Money min_compensation = 1; + } + // Job compensation information. // // At most one entry can be of type @@ -816,83 +806,6 @@ message CompensationInfo { CompensationRange annualized_total_compensation_range = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Resource that represents a license or certification. -message Certification { - // Name of license or certification. - // - // Number of characters allowed is 100. - string display_name = 1; - - // Acquisition date or effective date of license or certification. - google.type.Date acquire_date = 2; - - // Expiration date of license of certification. - google.type.Date expire_date = 3; - - // Authority of license, such as government. - // - // Number of characters allowed is 100. - string authority = 4; - - // Description of license or certification. - // - // Number of characters allowed is 100,000. - string description = 5; -} - -// Resource that represents a skill of a candidate. -message Skill { - // Skill display name. - // - // For example, "Java", "Python". - // - // Number of characters allowed is 100. - string display_name = 1; - - // The last time this skill was used. - google.type.Date last_used_date = 2; - - // Skill proficiency level which indicates how proficient the candidate is at - // this skill. - SkillProficiencyLevel level = 3; - - // A paragraph describes context of this skill. - // - // Number of characters allowed is 100,000. - string context = 4; - - // Output only. Skill name snippet shows how the [display_name][google.cloud.talent.v4beta1.Skill.display_name] is related to a search - // query. It's empty if the [display_name][google.cloud.talent.v4beta1.Skill.display_name] isn't related to the search - // query. - string skill_name_snippet = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Details of an interview. -message Interview { - // The rating on this interview. - Rating rating = 6; - - // Required. The overall decision resulting from this interview (positive, negative, - // nuetral). - Outcome outcome = 7 [(google.api.field_behavior) = REQUIRED]; -} - -// The details of the score received for an assessment or interview. -message Rating { - // Overall score. - double overall = 1; - - // The minimum value for the score. - double min = 2; - - // The maximum value for the score. - double max = 3; - - // The steps within the score (for example, interval = 1 max = 5 - // min = 1 indicates that the score can be 1, 2, 3, 4, or 5) - double interval = 4; -} - // Metadata used for long running operations returned by CTS batch APIs. // It's used to replace [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata]. message BatchOperationMetadata { @@ -950,124 +863,3 @@ message BatchOperationMetadata { // [google.longrunning.Operation.done][google.longrunning.Operation.done] is set to `true`. google.protobuf.Timestamp end_time = 8; } - -// Enum that represents the skill proficiency level. -enum SkillProficiencyLevel { - // Default value. - SKILL_PROFICIENCY_LEVEL_UNSPECIFIED = 0; - - // Lacks any proficiency in this skill. - UNSKILLED = 6; - - // Have a common knowledge or an understanding of basic techniques and - // concepts. - FUNDAMENTAL_AWARENESS = 1; - - // Have the level of experience gained in a classroom and/or experimental - // scenarios or as a trainee on-the-job. - NOVICE = 2; - - // Be able to successfully complete tasks in this skill as requested. Help - // from an expert may be required from time to time, but can usually perform - // skill independently. - INTERMEDIATE = 3; - - // Can perform the actions associated with this skill without assistance. - ADVANCED = 4; - - // Known as an expert in this area. - EXPERT = 5; -} - -// The overall outcome /decision / result indicator. -enum Outcome { - // Default value. - OUTCOME_UNSPECIFIED = 0; - - // A positive outcome / passing indicator (for example, candidate was - // recommended for hiring or to be moved forward in the hiring process, - // candidate passed a test). - POSITIVE = 1; - - // A neutral outcome / no clear indicator (for example, no strong - // reccommendation either to move forward / not move forward, neutral score). - NEUTRAL = 2; - - // A negative outcome / failing indicator (for example, candidate was - // recommended to NOT move forward in the hiring process, failed a test). - NEGATIVE = 3; - - // The assessment outcome is not available or otherwise unknown (for example, - // candidate did not complete assessment). - OUTCOME_NOT_AVAILABLE = 4; -} - -// The type of candidate availability signal. -enum AvailabilitySignalType { - // Default value. - AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED = 0; - - // Job application signal. - // - // In the context of [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals], this signal is related - // to the candidate's most recent application. - // [last_update_time][google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time] is - // calculated from max([Application.create_time][google.cloud.talent.v4beta1.Application.create_time]) from all [Application][google.cloud.talent.v4beta1.Application] - // records where [Application.source][google.cloud.talent.v4beta1.Application.source] is any of the following: - // [APPLY_DIRECT_WEB][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_DIRECT_WEB] - // [APPLY_DIRECT_MOBILE_WEB][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_DIRECT_MOBILE_WEB] - // [APPLY_DIRECT_MOBILE_APP][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_DIRECT_MOBILE_APP] - // [APPLY_DIRECT_IN_PERSON][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_DIRECT_IN_PERSON] - // [APPLY_INDIRECT][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_INDIRECT] - // - // In the context of [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter], the filter is applied on - // [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals] where - // [type][google.cloud.talent.v4beta1.AvailabilitySignal.type] is JOB_APPLICATION. - JOB_APPLICATION = 1; - - // Resume update signal. - // - // In the context of [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals], this signal is related - // to the candidate's most recent update to their resume. - // For a [SummarizedProfile.summary][google.cloud.talent.v4beta1.SummarizedProfile.summary], - // [last_update_time][google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time] is - // calculated from max([Profile.resume_update_time][google.cloud.talent.v4beta1.Profile.resume_update_time]) from all - // [SummarizedProfile.profiles][google.cloud.talent.v4beta1.SummarizedProfile.profiles]. - // - // In the context of [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter], the filter is applied on - // [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals] where - // [type][google.cloud.talent.v4beta1.AvailabilitySignal.type] is RESUME_UPDATE. - RESUME_UPDATE = 2; - - // Candidate update signal. - // - // In the context of [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals], this signal is related - // to the candidate's most recent update to their profile. - // For a [SummarizedProfile.summary][google.cloud.talent.v4beta1.SummarizedProfile.summary], - // [last_update_time][google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time] is - // calculated from max([Profile.candidate_update_time][google.cloud.talent.v4beta1.Profile.candidate_update_time]) from all - // [SummarizedProfile.profiles][google.cloud.talent.v4beta1.SummarizedProfile.profiles]. - // - // In the context of [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter], the filter is applied on - // [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals] where - // [type][google.cloud.talent.v4beta1.AvailabilitySignal.type] is CANDIDATE_UPDATE. - CANDIDATE_UPDATE = 3; - - // Client submission signal. - // - // In the context of [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals], this signal is related - // to the candidate's most recent submission. - // [last_update_time][google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time] is - // calculated from max([Application.create_time][google.cloud.talent.v4beta1.Application.create_time]) from all [Application][google.cloud.talent.v4beta1.Application] - // records where [Application.stage][google.cloud.talent.v4beta1.Application.stage] is any of the following: - // [HIRING_MANAGER_REVIEW][google.cloud.talent.v4beta1.Application.ApplicationStage.HIRING_MANAGER_REVIEW] - // [INTERVIEW][google.cloud.talent.v4beta1.Application.ApplicationStage.INTERVIEW] - // [OFFER_EXTENDED][google.cloud.talent.v4beta1.Application.ApplicationStage.OFFER_EXTENDED] - // [OFFER_ACCEPTED][google.cloud.talent.v4beta1.Application.ApplicationStage.OFFER_ACCEPTED] - // [STARTED][google.cloud.talent.v4beta1.Application.ApplicationStage.STARTED] - // - // In the context of [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter], the filter is applied on - // [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals] where - // [type][google.cloud.talent.v4beta1.AvailabilitySignal.type] is CLIENT_SUBMISSION. - CLIENT_SUBMISSION = 4; -} diff --git a/google/cloud/talent/v4beta1/company.proto b/google/cloud/talent/v4beta1/company.proto index c68945723..e04f01334 100644 --- a/google/cloud/talent/v4beta1/company.proto +++ b/google/cloud/talent/v4beta1/company.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.cloud.talent.v4beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/talent/v4beta1/common.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4beta1/company_service.proto b/google/cloud/talent/v4beta1/company_service.proto index ac6a7d744..9fd72023a 100644 --- a/google/cloud/talent/v4beta1/company_service.proto +++ b/google/cloud/talent/v4beta1/company_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/talent/v4beta1/completion_service.proto b/google/cloud/talent/v4beta1/completion_service.proto index 2e45ac7d5..88d2977ec 100644 --- a/google/cloud/talent/v4beta1/completion_service.proto +++ b/google/cloud/talent/v4beta1/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -17,10 +17,10 @@ syntax = "proto3"; package google.cloud.talent.v4beta1; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/talent/v4beta1/common.proto"; -import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4beta1/event.proto b/google/cloud/talent/v4beta1/event.proto index c5a71553b..24f769ec2 100644 --- a/google/cloud/talent/v4beta1/event.proto +++ b/google/cloud/talent/v4beta1/event.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.cloud.talent.v4beta1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; @@ -51,10 +50,6 @@ message ClientEvent { // An event issued when a job seeker interacts with the application that // implements Cloud Talent Solution. JobEvent job_event = 5; - - // An event issued when a profile searcher interacts with the application - // that implements Cloud Talent Solution. - ProfileEvent profile_event = 6; } // Notes about the event provided by recruiters or other users, for example, @@ -180,55 +175,3 @@ message JobEvent { // for example, "projects/foo/tenants/bar/profiles/baz". string profile = 3; } - -// An event issued when a profile searcher interacts with the application -// that implements Cloud Talent Solution. -message ProfileEvent { - // The enum represents types of client events for a candidate profile. - enum ProfileEventType { - // Default value. - PROFILE_EVENT_TYPE_UNSPECIFIED = 0; - - // Send this event when a [ProfileEvent.profiles][google.cloud.talent.v4beta1.ProfileEvent.profiles] was sent as a part of - // a result set for a CTS API call and was rendered in the end user's UI - // (that is, the [ProfileEvent.recruiter][google.cloud.talent.v4beta1.ProfileEvent.recruiter]). - IMPRESSION = 1; - - // The VIEW event records the action of a candidate's profile being - // viewed by an end user. This is critical to tracking product metrics and - // should be sent for every profile VIEW that happens in your system, - // whether the event is associated with an API call (for example, a - // recruiter making a request for a result set and clicking on a profile) - // or not (a recruiter using the system to view profile details without - // making a request). - // - // For a VIEW events associated with API calls, the - // [ClientEvent.request_id][google.cloud.talent.v4beta1.ClientEvent.request_id] should be populated. If the VIEW is not - // associated with an API call, [request_id][google.cloud.talent.v4beta1.ClientEvent.request_id] should - // not be populated. - // - // This event requires a valid recruiter and one valid ID in profiles. - VIEW = 2; - - // The profile is bookmarked. - BOOKMARK = 3; - } - - // Required. Type of event. - ProfileEventType type = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The [profile name(s)][google.cloud.talent.v4beta1.Profile.name] associated with this client event. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}", - // for example, "projects/foo/tenants/bar/profiles/baz". - repeated string profiles = 2 [(google.api.field_behavior) = REQUIRED]; - - // The [job name(s)][google.cloud.talent.v4beta1.Job.name] associated with this client event. Leave it - // empty if the event isn't associated with a job. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}", for - // example, "projects/foo/tenants/bar/jobs/baz". - repeated string jobs = 6; -} diff --git a/google/cloud/talent/v4beta1/event_service.proto b/google/cloud/talent/v4beta1/event_service.proto index 4577352e9..6dfdfed61 100644 --- a/google/cloud/talent/v4beta1/event_service.proto +++ b/google/cloud/talent/v4beta1/event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/talent/v4beta1/filters.proto b/google/cloud/talent/v4beta1/filters.proto index a8cebd7e1..030506046 100644 --- a/google/cloud/talent/v4beta1/filters.proto +++ b/google/cloud/talent/v4beta1/filters.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -19,13 +19,8 @@ package google.cloud.talent.v4beta1; import "google/api/field_behavior.proto"; import "google/cloud/talent/v4beta1/common.proto"; import "google/protobuf/duration.proto"; -import "google/protobuf/field_mask.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; -import "google/type/date.proto"; import "google/type/latlng.proto"; import "google/type/timeofday.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; @@ -102,8 +97,24 @@ message JobQuery { // Currently we don't support sorting by commute time. CommuteFilter commute_filter = 5; - // This filter specifies the exact company [Company.display_name][google.cloud.talent.v4beta1.Company.display_name] - // of the jobs to search against. + // This filter specifies the company [Company.display_name][google.cloud.talent.v4beta1.Company.display_name] + // of the jobs to search against. The company name must match the value + // exactly. + // + // Alternatively, the value being searched for can be wrapped in different + // match operators. + // `SUBSTRING_MATCH([value])` + // The company name must contain a case insensitive substring match of the + // value. Using this function may increase latency. + // + // Sample Value: `SUBSTRING_MATCH(google)` + // + // `MULTI_WORD_TOKEN_MATCH([value])` + // The value will be treated as a multi word token and the company name must + // contain a case insensitive match of the value. Using this function may + // increase latency. + // + // Sample Value: `MULTI_WORD_TOKEN_MATCH(google)` // // If a value isn't specified, jobs within the search results are // associated with any company. @@ -138,7 +149,7 @@ message JobQuery { // Boolean expressions (AND/OR/NOT) are supported up to 3 levels of // nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100 // comparisons or functions are allowed in the expression. The expression - // must be < 6000 bytes in length. + // must be < 10000 bytes in length. // // Sample Query: // `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND @@ -186,241 +197,6 @@ message JobQuery { repeated string excluded_jobs = 13; } -// Filters to apply when performing the search query. -message ProfileQuery { - // Keywords to match any text fields of profiles. - // - // For example, "software engineer in Palo Alto". - string query = 1; - - // The location filter specifies geo-regions containing the profiles to - // search against. - // - // One of [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] or [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] must be - // provided or an error is thrown. If both [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] and - // [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] are provided, an error is thrown. - // - // The following logic is used to determine which locations in - // the profile to filter against: - // - // 1. All of the profile's geocoded [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where - // [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is true. - // - // 2. If the above set of locations is empty, all of the profile's geocoded - // [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where [Address.usage][google.cloud.talent.v4beta1.Address.usage] is - // CONTACT_INFO_USAGE_UNSPECIFIED and [Address.current][google.cloud.talent.v4beta1.Address.current] is true. - // - // 3. If the above set of locations is empty, all of the profile's geocoded - // [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL or - // CONTACT_INFO_USAGE_UNSPECIFIED and [Address.current][google.cloud.talent.v4beta1.Address.current] is not set. - // - // This means that any profiles without any [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] that match - // any of the above criteria will not be included in a search with location - // filter. Furthermore, any [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where [Address.usage][google.cloud.talent.v4beta1.Address.usage] is - // WORK or SCHOOL or where [Address.current][google.cloud.talent.v4beta1.Address.current] is false are not considered for - // location filter. - // - // If a location filter isn't specified, profiles fitting the other search - // criteria are retrieved regardless of where they're located. - // - // If [LocationFilter.negated][google.cloud.talent.v4beta1.LocationFilter.negated] is specified, the result doesn't contain - // profiles from that location. - // - // If [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] is provided, the - // [LocationType][google.cloud.talent.v4beta1.Location.LocationType], center - // point (latitude and longitude), and radius are automatically detected by - // the Google Maps Geocoding API and included as well. If - // [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] cannot be geocoded, the filter - // falls back to keyword search. - // - // If the detected - // [LocationType][google.cloud.talent.v4beta1.Location.LocationType] is - // [LocationType.SUB_ADMINISTRATIVE_AREA][google.cloud.talent.v4beta1.Location.LocationType.SUB_ADMINISTRATIVE_AREA], - // [LocationType.ADMINISTRATIVE_AREA][google.cloud.talent.v4beta1.Location.LocationType.ADMINISTRATIVE_AREA], - // or - // [LocationType.COUNTRY][google.cloud.talent.v4beta1.Location.LocationType.COUNTRY], - // the filter is performed against the detected location name (using exact - // text matching). Otherwise, the filter is performed against the detected - // center point and a radius of detected location radius + - // [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]. - // - // If [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] is provided, - // [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is the additional radius on top of the - // radius of the location geocoded from [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address]. If - // [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] is provided, - // [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is the only radius that is used. - // - // [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is 10 by default. Note that the value - // of [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is 0 if it is unset, so the server - // does not differentiate [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] that is - // explicitly set to 0 and [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] that is not - // set. Which means that if [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is explicitly - // set to 0, the server will use the default value of - // [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] which is 10. To work around this and - // effectively set [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] to 0, we recommend - // setting [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] to a very small decimal number - // (such as 0.00001). - // - // If [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is negative, an error is thrown. - repeated LocationFilter location_filters = 2; - - // Job title filter specifies job titles of profiles to match on. - // - // If a job title isn't specified, profiles with any titles are retrieved. - // - // If multiple values are specified, profiles are retrieved with any of the - // specified job titles. - // - // If [JobTitleFilter.negated][google.cloud.talent.v4beta1.JobTitleFilter.negated] is specified, the result won't contain - // profiles with the job titles. - // - // For example, search for profiles with a job title "Product Manager". - repeated JobTitleFilter job_title_filters = 3; - - // Employer filter specifies employers of profiles to match on. - // - // If an employer filter isn't specified, profiles with any employers are - // retrieved. - // - // If multiple employer filters are specified, profiles with any matching - // employers are retrieved. - // - // If [EmployerFilter.negated][google.cloud.talent.v4beta1.EmployerFilter.negated] is specified, the result won't contain - // profiles that match the employers. - // - // For example, search for profiles that have working experience at "Google - // LLC". - repeated EmployerFilter employer_filters = 4; - - // Education filter specifies education of profiles to match on. - // - // If an education filter isn't specified, profiles with any education are - // retrieved. - // - // If multiple education filters are specified, profiles that match any - // education filters are retrieved. - // - // If [EducationFilter.negated][google.cloud.talent.v4beta1.EducationFilter.negated] is specified, the result won't contain - // profiles that match the educations. - // - // For example, search for profiles with a master degree. - repeated EducationFilter education_filters = 5; - - // Skill filter specifies skill of profiles to match on. - // - // If a skill filter isn't specified, profiles with any skills are retrieved. - // - // If multiple skill filters are specified, profiles that match any skill - // filters are retrieved. - // - // If [SkillFilter.negated][google.cloud.talent.v4beta1.SkillFilter.negated] is specified, the result won't contain profiles - // that match the skills. - // - // For example, search for profiles that have "Java" and "Python" in skill - // list. - repeated SkillFilter skill_filters = 6; - - // Work experience filter specifies the total working experience of profiles - // to match on. - // - // If a work experience filter isn't specified, profiles with any - // professional experience are retrieved. - // - // If multiple work experience filters are specified, profiles that match any - // work experience filters are retrieved. - // - // For example, search for profiles with 10 years of work experience. - repeated WorkExperienceFilter work_experience_filter = 7; - - // Time filter specifies the create/update timestamp of the profiles to match - // on. - // - // For example, search for profiles created since "2018-1-1". - repeated TimeFilter time_filters = 8; - - // The hirable filter specifies the profile's hirable status to match on. - google.protobuf.BoolValue hirable_filter = 9; - - // The application date filters specify application date ranges to match on. - repeated ApplicationDateFilter application_date_filters = 10; - - // The application outcome notes filters specify the notes for the outcome of - // the job application. - repeated ApplicationOutcomeNotesFilter application_outcome_notes_filters = 11; - - // The application job filters specify the job applied for in the application. - repeated ApplicationJobFilter application_job_filters = 13; - - // This filter specifies a structured syntax to match against the - // [Profile.custom_attributes][google.cloud.talent.v4beta1.Profile.custom_attributes] that are marked as `filterable`. - // - // The syntax for this expression is a subset of Google SQL syntax. - // - // String custom attributes: supported operators are =, != where the left of - // the operator is a custom field key and the right of the operator is a - // string (surrounded by quotes) value. - // - // Numeric custom attributes: Supported operators are '>', '<' or '=' - // operators where the left of the operator is a custom field key and the - // right of the operator is a numeric value. - // - // Supported functions are LOWER() to - // perform case insensitive match and EMPTY() to filter on the - // existence of a key. - // - // Boolean expressions (AND/OR/NOT) are supported up to 3 levels of - // nesting (for example "((A AND B AND C) OR NOT D) AND E"), and there can be - // a maximum of 50 comparisons/functions in the expression. The expression - // must be < 2000 characters in length. - // - // Sample Query: - // (key1 = "TEST" OR LOWER(key1)="test" OR NOT EMPTY(key1)) - string custom_attribute_filter = 15; - - // Deprecated. Use availability_filters instead. - // - // The candidate availability filter which filters based on availability - // signals. - // - // Signal 1: Number of days since most recent job application. See - // [Availability.JobApplicationAvailabilitySignal][google.cloud.talent.v4beta1.Availability.JobApplicationAvailabilitySignal] for the details of this - // signal. - // - // Signal 2: Number of days since last profile update. See - // [Availability.ProfileUpdateAvailabilitySignal][google.cloud.talent.v4beta1.Availability.ProfileUpdateAvailabilitySignal] - // for the details of this signal. - // - // The candidate availability filter helps a recruiter understand if a - // specific candidate is likely to be actively seeking new job opportunities - // based on an aggregated set of signals. Specifically, the intent is NOT to - // indicate the candidate's potential qualification / interest / close ability - // for a specific job. - CandidateAvailabilityFilter candidate_availability_filter = 16 [deprecated = true]; - - // The availability filter which filters based on - // [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals]. - // - // The availability filter helps a recruiter understand if a - // specific candidate is likely to be actively seeking new job opportunities - // based on an aggregated set of signals. Specifically, the intent is NOT to - // indicate the candidate's potential qualification / interest / close ability - // for a specific job. - // - // There can be at most one [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] per - // [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type]. If there are multiple - // [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] for a [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type], - // an error is thrown. - repeated AvailabilityFilter availability_filters = 18; - - // Person name filter specifies person name of profiles to match on. - // - // If multiple person name filters are specified, profiles that match any - // person name filters are retrieved. - // - // For example, search for profiles of candidates with name "John Smith". - repeated PersonNameFilter person_name_filters = 17; -} - // Geographic region of the search. message LocationFilter { // Specify whether to include telecommute jobs. @@ -428,28 +204,35 @@ message LocationFilter { // Default value if the telecommute preference isn't specified. TELECOMMUTE_PREFERENCE_UNSPECIFIED = 0; - // Exclude telecommute jobs. - TELECOMMUTE_EXCLUDED = 1; + // Deprecated: Ignore telecommute status of jobs. Use + // TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs. + TELECOMMUTE_EXCLUDED = 1 [deprecated = true]; // Allow telecommute jobs. TELECOMMUTE_ALLOWED = 2; + + // Exclude telecommute jobs. + TELECOMMUTE_JOBS_EXCLUDED = 3; } // The address name, such as "Mountain View" or "Bay Area". string address = 1; - // CLDR region code of the country/region of the address. This is used - // to address ambiguity of the user-input location, for example, "Liverpool" - // against "Liverpool, NY, US" or "Liverpool, UK". + // CLDR region code of the country/region. This field may be used in two ways: // - // Set this field to bias location resolution toward a specific country - // or territory. If this field is not set, application behavior is biased - // toward the United States by default. + // 1) If telecommute preference is not set, this field is used address + // ambiguity of the user-input address. For example, "Liverpool" may refer to + // "Liverpool, NY, US" or "Liverpool, UK". This region code biases the + // address resolution toward a specific country or territory. If this field is + // not set, address resolution is biased toward the United States by default. + // + // 2) If telecommute preference is set to TELECOMMUTE_ALLOWED, the + // telecommute location filter will be limited to the region specified in this + // field. If this field is not set, the telecommute job locations will not be // // See - // https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html + // https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html // for details. Example: "CH" for Switzerland. - // Note that this filter is not applicable for Profile Search related queries. string region_code = 2; // The latitude and longitude of the geographic center to search from. This @@ -463,13 +246,15 @@ message LocationFilter { // Allows the client to return jobs without a // set location, specifically, telecommuting jobs (telecommuting is considered - // by the service as a special location. + // by the service as a special location). // [Job.posting_region][google.cloud.talent.v4beta1.Job.posting_region] indicates if a job permits telecommuting. // If this field is set to [TelecommutePreference.TELECOMMUTE_ALLOWED][google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference.TELECOMMUTE_ALLOWED], // telecommuting jobs are searched, and [address][google.cloud.talent.v4beta1.LocationFilter.address] and [lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] are // ignored. If not set or set to - // [TelecommutePreference.TELECOMMUTE_EXCLUDED][google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference.TELECOMMUTE_EXCLUDED], telecommute job are not - // searched. + // [TelecommutePreference.TELECOMMUTE_EXCLUDED][google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference.TELECOMMUTE_EXCLUDED], the telecommute status of + // the jobs is ignored. Jobs that have [PostingRegion.TELECOMMUTE][google.cloud.talent.v4beta1.PostingRegion.TELECOMMUTE] and have + // additional [Job.addresses][google.cloud.talent.v4beta1.Job.addresses] may still be matched based on other location + // filters using [address][google.cloud.talent.v4beta1.LocationFilter.address] or [latlng][]. // // This filter can be used by itself to search exclusively for telecommuting // jobs, or it can be combined with another location @@ -483,8 +268,6 @@ message LocationFilter { // Whether to apply negation to the filter so profiles matching the filter // are excluded. - // - // Currently only supported in profile search. bool negated = 6; } @@ -585,196 +368,3 @@ message CommuteFilter { google.type.TimeOfDay departure_time = 6; } } - -// Job title of the search. -message JobTitleFilter { - // Required. The job title. For example, "Software engineer", or "Product manager". - string job_title = 1 [(google.api.field_behavior) = REQUIRED]; - - // Whether to apply negation to the filter so profiles matching the filter - // are excluded. - bool negated = 2; -} - -// Skill filter of the search. -message SkillFilter { - // Required. The skill name. For example, "java", "j2ee", and so on. - string skill = 1 [(google.api.field_behavior) = REQUIRED]; - - // Whether to apply negation to the filter so profiles matching the filter - // are excluded. - bool negated = 2; -} - -// Employer filter of the search. -message EmployerFilter { - // Enum indicating which set of [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records] to search - // against. - enum EmployerFilterMode { - // Default value. - EMPLOYER_FILTER_MODE_UNSPECIFIED = 0; - - // Apply to all employers in [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records]. - ALL_EMPLOYMENT_RECORDS = 1; - - // Apply only to current employer in [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records]. - CURRENT_EMPLOYMENT_RECORDS_ONLY = 2; - - // Apply only to past (not current) employers in - // [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records]. - PAST_EMPLOYMENT_RECORDS_ONLY = 3; - } - - // Required. The name of the employer, for example "Google", "Alphabet". - string employer = 1 [(google.api.field_behavior) = REQUIRED]; - - // Define set of [EmploymentRecord][google.cloud.talent.v4beta1.EmploymentRecord]s to search against. - // - // Defaults to [EmployerFilterMode.ALL_EMPLOYMENT_RECORDS][google.cloud.talent.v4beta1.EmployerFilter.EmployerFilterMode.ALL_EMPLOYMENT_RECORDS]. - EmployerFilterMode mode = 2; - - // Whether to apply negation to the filter so profiles matching the filter - // is excluded. - bool negated = 3; -} - -// Education filter of the search. -message EducationFilter { - // The school name. For example "MIT", "University of California, Berkeley". - string school = 1; - - // The field of study. This is to search against value provided in - // [Degree.fields_of_study][google.cloud.talent.v4beta1.Degree.fields_of_study]. - // For example "Computer Science", "Mathematics". - string field_of_study = 2; - - // Education degree in ISCED code. Each value in degree covers a specific - // level of education, without any expansion to upper nor lower levels of - // education degree. - DegreeType degree_type = 3; - - // Whether to apply negation to the filter so profiles matching the filter - // is excluded. - bool negated = 6; -} - -// Work experience filter. -// -// This filter is used to search for profiles with working experience length -// between [min_experience][google.cloud.talent.v4beta1.WorkExperienceFilter.min_experience] and [max_experience][google.cloud.talent.v4beta1.WorkExperienceFilter.max_experience]. -message WorkExperienceFilter { - // The minimum duration of the work experience (inclusive). - google.protobuf.Duration min_experience = 1; - - // The maximum duration of the work experience (exclusive). - google.protobuf.Duration max_experience = 2; -} - -// Application Date Range Filter. -// -// The API matches profiles with [Application.application_date][google.cloud.talent.v4beta1.Application.application_date] between -// start date and end date (both boundaries are inclusive). The filter is -// ignored if both [start_date][google.cloud.talent.v4beta1.ApplicationDateFilter.start_date] and [end_date][google.cloud.talent.v4beta1.ApplicationDateFilter.end_date] are missing. -message ApplicationDateFilter { - // Start date. If it's missing, The API matches profiles with application date - // not after the end date. - google.type.Date start_date = 1; - - // End date. If it's missing, The API matches profiles with application date - // not before the start date. - google.type.Date end_date = 2; -} - -// Outcome Notes Filter. -message ApplicationOutcomeNotesFilter { - // Required. User entered or selected outcome reason. The API does an exact match on the - // [Application.outcome_notes][google.cloud.talent.v4beta1.Application.outcome_notes] in profiles. - string outcome_notes = 1 [(google.api.field_behavior) = REQUIRED]; - - // If true, The API excludes all candidates with any - // [Application.outcome_notes][google.cloud.talent.v4beta1.Application.outcome_notes] matching the outcome reason specified in - // the filter. - bool negated = 2; -} - -// Filter on the job information of Application. -message ApplicationJobFilter { - // The job requisition id in the application. The API does an exact match on - // the [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id] of [Application.job][google.cloud.talent.v4beta1.Application.job] in profiles. - string job_requisition_id = 2; - - // The job title in the application. The API does an exact match on the - // [Job.title][google.cloud.talent.v4beta1.Job.title] of [Application.job][google.cloud.talent.v4beta1.Application.job] in profiles. - string job_title = 3; - - // If true, the API excludes all profiles with any [Application.job][google.cloud.talent.v4beta1.Application.job] - // matching the filters. - bool negated = 4; -} - -// Filter on create timestamp or update timestamp of profiles. -message TimeFilter { - // Time fields can be used in TimeFilter. - enum TimeField { - // Default value. - TIME_FIELD_UNSPECIFIED = 0; - - // Earliest profile create time. - CREATE_TIME = 1; - - // Latest profile update time. - UPDATE_TIME = 2; - } - - // Start timestamp, matching profiles with the start time. If this field - // missing, The API matches profiles with create / update timestamp before the - // end timestamp. - google.protobuf.Timestamp start_time = 1; - - // End timestamp, matching profiles with the end time. If this field - // missing, The API matches profiles with create / update timestamp after the - // start timestamp. - google.protobuf.Timestamp end_time = 2; - - // Specifies which time field to filter profiles. - // - // Defaults to [TimeField.CREATE_TIME][google.cloud.talent.v4beta1.TimeFilter.TimeField.CREATE_TIME]. - TimeField time_field = 3; -} - -// Deprecated. Use AvailabilityFilter instead. -// -// Filter on availability signals. -message CandidateAvailabilityFilter { - option deprecated = true; - - // It is false by default. If true, API excludes all the potential available - // profiles. - bool negated = 1; -} - -// Filter on availability signals. -message AvailabilityFilter { - // Required. Type of signal to apply filter on. - AvailabilitySignalType signal_type = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Range of times to filter candidate signals by. - TimestampRange range = 2 [(google.api.field_behavior) = REQUIRED]; - - // If multiple [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] are provided, the default - // behavior is to OR all filters, but if this field is set to true, this - // particular [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] will be AND'ed against other - // [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter]. - bool required = 3; -} - -// Filter on person name. -message PersonNameFilter { - // Required. The person name. For example, "John Smith". - // - // Can be any combination of [PersonName.structured_name.given_name][], - // [PersonName.structured_name.middle_initial][], - // [PersonName.structured_name.family_name][], and - // [PersonName.formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name]. - string person_name = 1 [(google.api.field_behavior) = REQUIRED]; -} diff --git a/google/cloud/talent/v4beta1/histogram.proto b/google/cloud/talent/v4beta1/histogram.proto index 109386904..abe3901a6 100644 --- a/google/cloud/talent/v4beta1/histogram.proto +++ b/google/cloud/talent/v4beta1/histogram.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.talent.v4beta1; -import "google/api/annotations.proto"; - option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; option java_outer_classname = "HistogramProto"; diff --git a/google/cloud/talent/v4beta1/job.proto b/google/cloud/talent/v4beta1/job.proto index b1b24c64f..d3911e891 100644 --- a/google/cloud/talent/v4beta1/job.proto +++ b/google/cloud/talent/v4beta1/job.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -20,8 +20,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/talent/v4beta1/common.proto"; import "google/protobuf/timestamp.proto"; -import "google/type/postal_address.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4beta1/job_service.proto b/google/cloud/talent/v4beta1/job_service.proto index 5d26db909..c8e420d60 100644 --- a/google/cloud/talent/v4beta1/job_service.proto +++ b/google/cloud/talent/v4beta1/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -25,7 +25,6 @@ import "google/cloud/talent/v4beta1/filters.proto"; import "google/cloud/talent/v4beta1/histogram.proto"; import "google/cloud/talent/v4beta1/job.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -294,6 +293,32 @@ message BatchDeleteJobsRequest { string filter = 2 [(google.api.field_behavior) = REQUIRED]; } +// An enum that specifies the job attributes that are returned in the +// [MatchingJob.job][google.cloud.talent.v4beta1.SearchJobsResponse.MatchingJob.job] or +// [ListJobsResponse.jobs][google.cloud.talent.v4beta1.ListJobsResponse.jobs] fields. +enum JobView { + // Default value. + JOB_VIEW_UNSPECIFIED = 0; + + // A ID only view of job, with following attributes: + // [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.language_code][google.cloud.talent.v4beta1.Job.language_code]. + JOB_VIEW_ID_ONLY = 1; + + // A minimal view of the job, with the following attributes: + // [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.title][google.cloud.talent.v4beta1.Job.title], + // [Job.company][google.cloud.talent.v4beta1.Job.company], [Job.DerivedInfo.locations][google.cloud.talent.v4beta1.Job.DerivedInfo.locations], [Job.language_code][google.cloud.talent.v4beta1.Job.language_code]. + JOB_VIEW_MINIMAL = 2; + + // A small view of the job, with the following attributes in the search + // results: [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.title][google.cloud.talent.v4beta1.Job.title], + // [Job.company][google.cloud.talent.v4beta1.Job.company], [Job.DerivedInfo.locations][google.cloud.talent.v4beta1.Job.DerivedInfo.locations], [Job.visibility][google.cloud.talent.v4beta1.Job.visibility], + // [Job.language_code][google.cloud.talent.v4beta1.Job.language_code], [Job.description][google.cloud.talent.v4beta1.Job.description]. + JOB_VIEW_SMALL = 3; + + // All available attributes are included in the search results. + JOB_VIEW_FULL = 4; +} + // List jobs request. message ListJobsRequest { // Required. The resource name of the tenant under which the job is created. @@ -314,11 +339,14 @@ message ListJobsRequest { // // The fields eligible for filtering are: // - // * `companyName` (Required) + // * `companyName` // * `requisitionId` // * `status` Available values: OPEN, EXPIRED, ALL. Defaults to // OPEN if no value is specified. // + // At least one of `companyName` and `requisitionId` must present or an + // INVALID_ARGUMENT error is thrown. + // // Sample Query: // // * companyName = "projects/foo/tenants/bar/companies/baz" @@ -326,6 +354,8 @@ message ListJobsRequest { // requisitionId = "req-1" // * companyName = "projects/foo/tenants/bar/companies/baz" AND // status = "EXPIRED" + // * requisitionId = "req-1" + // * requisitionId = "req-1" AND status = "EXPIRED" string filter = 2 [(google.api.field_behavior) = REQUIRED]; // The starting point of a query result. @@ -345,32 +375,6 @@ message ListJobsRequest { JobView job_view = 5; } -// An enum that specifies the job attributes that are returned in the -// [MatchingJob.job][google.cloud.talent.v4beta1.SearchJobsResponse.MatchingJob.job] or -// [ListJobsResponse.jobs][google.cloud.talent.v4beta1.ListJobsResponse.jobs] fields. -enum JobView { - // Default value. - JOB_VIEW_UNSPECIFIED = 0; - - // A ID only view of job, with following attributes: - // [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.language_code][google.cloud.talent.v4beta1.Job.language_code]. - JOB_VIEW_ID_ONLY = 1; - - // A minimal view of the job, with the following attributes: - // [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.title][google.cloud.talent.v4beta1.Job.title], - // [Job.company][google.cloud.talent.v4beta1.Job.company], [Job.DerivedInfo.locations][google.cloud.talent.v4beta1.Job.DerivedInfo.locations], [Job.language_code][google.cloud.talent.v4beta1.Job.language_code]. - JOB_VIEW_MINIMAL = 2; - - // A small view of the job, with the following attributes in the search - // results: [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.title][google.cloud.talent.v4beta1.Job.title], - // [Job.company][google.cloud.talent.v4beta1.Job.company], [Job.DerivedInfo.locations][google.cloud.talent.v4beta1.Job.DerivedInfo.locations], [Job.visibility][google.cloud.talent.v4beta1.Job.visibility], - // [Job.language_code][google.cloud.talent.v4beta1.Job.language_code], [Job.description][google.cloud.talent.v4beta1.Job.description]. - JOB_VIEW_SMALL = 3; - - // All available attributes are included in the search results. - JOB_VIEW_FULL = 4; -} - // List jobs response. message ListJobsResponse { // The Jobs for a given company. @@ -389,6 +393,83 @@ message ListJobsResponse { // The Request body of the `SearchJobs` call. message SearchJobsRequest { + // A string-represented enumeration of the job search mode. The service + // operate differently for different modes of service. + enum SearchMode { + // The mode of the search method isn't specified. The default search + // behavior is identical to JOB_SEARCH search behavior. + SEARCH_MODE_UNSPECIFIED = 0; + + // The job search matches against all jobs, and featured jobs + // (jobs with promotionValue > 0) are not specially handled. + JOB_SEARCH = 1; + + // The job search matches only against featured jobs (jobs with a + // promotionValue > 0). This method doesn't return any jobs having a + // promotionValue <= 0. The search results order is determined by the + // promotionValue (jobs with a higher promotionValue are returned higher up + // in the search results), with relevance being used as a tiebreaker. + FEATURED_JOB_SEARCH = 2; + } + + // Controls whether highly similar jobs are returned next to each other in + // the search results. Jobs are identified as highly similar based on + // their titles, job categories, and locations. Highly similar results are + // clustered so that only one representative job of the cluster is + // displayed to the job seeker higher up in the results, with the other jobs + // being displayed lower down in the results. + enum DiversificationLevel { + // The diversification level isn't specified. + DIVERSIFICATION_LEVEL_UNSPECIFIED = 0; + + // Disables diversification. Jobs that would normally be pushed to the last + // page would not have their positions altered. This may result in highly + // similar jobs appearing in sequence in the search results. + DISABLED = 1; + + // Default diversifying behavior. The result list is ordered so that + // highly similar results are pushed to the end of the last page of search + // results. If you are using pageToken to page through the result set, + // latency might be lower but we can't guarantee that all results are + // returned. If you are using page offset, latency might be higher but all + // results are returned. + SIMPLE = 2; + } + + // Controls what keyword matching behavior the search has. When keyword + // matching is enabled, a keyword match returns jobs that may not match given + // category filters when there are matching keywords. For example, for the + // query "program manager" with KeywordMatchMode set to KEYWORD_MATCH_ALL, a + // job posting with the title "software developer," which doesn't fall into + // "program manager" ontology, and "program manager" appearing in its + // description will be surfaced. + // + // For queries like "cloud" that don't contain title or + // location specific ontology, jobs with "cloud" keyword matches are returned + // regardless of this enum's value. + // + // Use [Company.keyword_searchable_job_custom_attributes][google.cloud.talent.v4beta1.Company.keyword_searchable_job_custom_attributes] if + // company-specific globally matched custom field/attribute string values are + // needed. Enabling keyword match improves recall of subsequent search + // requests. + enum KeywordMatchMode { + // The keyword match option isn't specified. Defaults to + // [KeywordMatchMode.KEYWORD_MATCH_ALL][google.cloud.talent.v4beta1.SearchJobsRequest.KeywordMatchMode.KEYWORD_MATCH_ALL] behavior. + KEYWORD_MATCH_MODE_UNSPECIFIED = 0; + + // Disables keyword matching. + KEYWORD_MATCH_DISABLED = 1; + + // Enable keyword matching over [Job.title][google.cloud.talent.v4beta1.Job.title], + // [Job.description][google.cloud.talent.v4beta1.Job.description], [Job.company_display_name][google.cloud.talent.v4beta1.Job.company_display_name], [Job.addresses][google.cloud.talent.v4beta1.Job.addresses], + // [Job.qualifications][google.cloud.talent.v4beta1.Job.qualifications], and keyword searchable [Job.custom_attributes][google.cloud.talent.v4beta1.Job.custom_attributes] + // fields. + KEYWORD_MATCH_ALL = 2; + + // Only enable keyword matching over [Job.title][google.cloud.talent.v4beta1.Job.title]. + KEYWORD_MATCH_TITLE_ONLY = 3; + } + // Custom ranking information for [SearchJobsRequest][google.cloud.talent.v4beta1.SearchJobsRequest]. message CustomRankingInfo { // The importance level for [CustomRankingInfo.ranking_expression][google.cloud.talent.v4beta1.SearchJobsRequest.CustomRankingInfo.ranking_expression]. @@ -446,7 +527,7 @@ message SearchJobsRequest { // integer/double value or an expression that can be evaluated to a number. // // Parenthesis are supported to adjust calculation precedence. The - // expression must be < 100 characters in length. + // expression must be < 200 characters in length. // // The expression is considered invalid for a job if the expression // references custom attributes that are not populated on the job or if the @@ -458,49 +539,6 @@ message SearchJobsRequest { string ranking_expression = 2 [(google.api.field_behavior) = REQUIRED]; } - // A string-represented enumeration of the job search mode. The service - // operate differently for different modes of service. - enum SearchMode { - // The mode of the search method isn't specified. The default search - // behavior is identical to JOB_SEARCH search behavior. - SEARCH_MODE_UNSPECIFIED = 0; - - // The job search matches against all jobs, and featured jobs - // (jobs with promotionValue > 0) are not specially handled. - JOB_SEARCH = 1; - - // The job search matches only against featured jobs (jobs with a - // promotionValue > 0). This method doesn't return any jobs having a - // promotionValue <= 0. The search results order is determined by the - // promotionValue (jobs with a higher promotionValue are returned higher up - // in the search results), with relevance being used as a tiebreaker. - FEATURED_JOB_SEARCH = 2; - } - - // Controls whether highly similar jobs are returned next to each other in - // the search results. Jobs are identified as highly similar based on - // their titles, job categories, and locations. Highly similar results are - // clustered so that only one representative job of the cluster is - // displayed to the job seeker higher up in the results, with the other jobs - // being displayed lower down in the results. - enum DiversificationLevel { - // The diversification level isn't specified. - DIVERSIFICATION_LEVEL_UNSPECIFIED = 0; - - // Disables diversification. Jobs that would normally be pushed to the last - // page would not have their positions altered. This may result in highly - // similar jobs appearing in sequence in the search results. - DISABLED = 1; - - // Default diversifying behavior. The result list is ordered so that - // highly similar results are pushed to the end of the last page of search - // results. If you are using pageToken to page through the result set, - // latency might be lower but we can't guarantee that all results are - // returned. If you are using page offset, latency might be higher but all - // results are returned. - SIMPLE = 2; - } - // Required. The resource name of the tenant to search within. // // The format is "projects/{project_id}/tenants/{tenant_id}". For example, @@ -533,16 +571,8 @@ message SearchJobsRequest { // Defaults to false. bool enable_broadening = 5; - // Controls if the search job request requires the return of a precise - // count of the first 300 results. Setting this to `true` ensures - // consistency in the number of results per page. Best practice is to set this - // value to true if a client allows users to jump directly to a - // non-sequential search results page. - // - // Enabling this flag may adversely impact performance. - // - // Defaults to false. - bool require_precise_result_size = 6; + // This field is deprecated. + bool require_precise_result_size = 6 [deprecated = true]; // An expression specifies a histogram request against matching jobs. // @@ -555,6 +585,8 @@ message SearchJobsRequest { // * `count(numeric_histogram_facet, list of buckets)`: Count the number of // matching entities within each bucket. // + // A maximum of 200 histogram buckets are supported. + // // Data types: // // * Histogram facet: facet names with format `[a-zA-Z][a-zA-Z0-9_]+`. @@ -581,6 +613,9 @@ message SearchJobsRequest { // "FULL_TIME", "PART_TIME". // * company_size: histogram by [CompanySize][google.cloud.talent.v4beta1.CompanySize], for example, "SMALL", // "MEDIUM", "BIG". + // * publish_time_in_day: histogram by the [Job.posting_publish_time][google.cloud.talent.v4beta1.Job.posting_publish_time] + // in days. + // Must specify list of numeric buckets in spec. // * publish_time_in_month: histogram by the [Job.posting_publish_time][google.cloud.talent.v4beta1.Job.posting_publish_time] // in months. // Must specify list of numeric buckets in spec. @@ -634,7 +669,7 @@ message SearchJobsRequest { // bucket(100000, MAX)])` // * `count(string_custom_attribute["some-string-custom-attribute"])` // * `count(numeric_custom_attribute["some-numeric-custom-attribute"], - // [bucket(MIN, 0, "negative"), bucket(0, MAX, "non-negative"])` + // [bucket(MIN, 0, "negative"), bucket(0, MAX, "non-negative")])` repeated HistogramQuery histogram_queries = 7; // The desired job attributes returned for jobs in the search response. @@ -730,6 +765,14 @@ message SearchJobsRequest { // score (determined by API algorithm). CustomRankingInfo custom_ranking_info = 14; + // This field is deprecated. Please use + // [SearchJobsRequest.keyword_match_mode][google.cloud.talent.v4beta1.SearchJobsRequest.keyword_match_mode] going forward. + // + // To migrate, disable_keyword_match set to false maps to + // [KeywordMatchMode.KEYWORD_MATCH_ALL][google.cloud.talent.v4beta1.SearchJobsRequest.KeywordMatchMode.KEYWORD_MATCH_ALL], and disable_keyword_match set to + // true maps to [KeywordMatchMode.KEYWORD_MATCH_DISABLED][google.cloud.talent.v4beta1.SearchJobsRequest.KeywordMatchMode.KEYWORD_MATCH_DISABLED]. If + // [SearchJobsRequest.keyword_match_mode][google.cloud.talent.v4beta1.SearchJobsRequest.keyword_match_mode] is set, this field is ignored. + // // Controls whether to disable exact keyword match on [Job.title][google.cloud.talent.v4beta1.Job.title], // [Job.description][google.cloud.talent.v4beta1.Job.description], [Job.company_display_name][google.cloud.talent.v4beta1.Job.company_display_name], [Job.addresses][google.cloud.talent.v4beta1.Job.addresses], // [Job.qualifications][google.cloud.talent.v4beta1.Job.qualifications]. When disable keyword match is turned off, a @@ -750,6 +793,12 @@ message SearchJobsRequest { // // Defaults to false. bool disable_keyword_match = 16; + + // Controls what keyword match options to use. + // + // Defaults to [KeywordMatchMode.KEYWORD_MATCH_ALL][google.cloud.talent.v4beta1.SearchJobsRequest.KeywordMatchMode.KEYWORD_MATCH_ALL] if no value + // is specified. + KeywordMatchMode keyword_match_mode = 18; } // Response for SearchJob method. @@ -810,12 +859,10 @@ message SearchJobsResponse { // An estimation of the number of jobs that match the specified query. // // This number isn't guaranteed to be accurate. For accurate results, - // see [SearchJobsRequest.require_precise_result_size][google.cloud.talent.v4beta1.SearchJobsRequest.require_precise_result_size]. + // see [SearchJobsResponse.total_size][google.cloud.talent.v4beta1.SearchJobsResponse.total_size]. int32 estimated_total_size = 5; - // The precise result count, which is available only if the client set - // [SearchJobsRequest.require_precise_result_size][google.cloud.talent.v4beta1.SearchJobsRequest.require_precise_result_size] to `true`, or if the - // response is the last page of results. Otherwise, the value is `-1`. + // The precise result count with limit 100,000. int32 total_size = 6; // Additional information for the API invocation, such as the request diff --git a/google/cloud/talent/v4beta1/jobs_v4beta1.yaml b/google/cloud/talent/v4beta1/jobs_v4beta1.yaml index d418c1ac9..63869ab52 100644 --- a/google/cloud/talent/v4beta1/jobs_v4beta1.yaml +++ b/google/cloud/talent/v4beta1/jobs_v4beta1.yaml @@ -4,13 +4,12 @@ name: jobs.googleapis.com title: Cloud Talent Solution API apis: -- name: google.cloud.talent.v4beta1.ApplicationService - name: google.cloud.talent.v4beta1.CompanyService - name: google.cloud.talent.v4beta1.Completion - name: google.cloud.talent.v4beta1.EventService - name: google.cloud.talent.v4beta1.JobService -- name: google.cloud.talent.v4beta1.ProfileService - name: google.cloud.talent.v4beta1.TenantService +- name: google.longrunning.Operations types: - name: google.cloud.talent.v4beta1.BatchOperationMetadata @@ -34,8 +33,6 @@ documentation: backend: rules: - - selector: 'google.cloud.talent.v4beta1.ApplicationService.*' - deadline: 30.0 - selector: 'google.cloud.talent.v4beta1.CompanyService.*' deadline: 30.0 - selector: google.cloud.talent.v4beta1.Completion.CompleteQuery @@ -44,8 +41,6 @@ backend: deadline: 30.0 - selector: 'google.cloud.talent.v4beta1.JobService.*' deadline: 30.0 - - selector: 'google.cloud.talent.v4beta1.ProfileService.*' - deadline: 30.0 - selector: 'google.cloud.talent.v4beta1.TenantService.*' deadline: 30.0 - selector: 'google.longrunning.Operations.*' @@ -58,11 +53,6 @@ http: authentication: rules: - - selector: 'google.cloud.talent.v4beta1.ApplicationService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/jobs - selector: 'google.cloud.talent.v4beta1.CompanyService.*' oauth: canonical_scopes: |- @@ -83,11 +73,6 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/jobs - - selector: 'google.cloud.talent.v4beta1.ProfileService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/jobs - selector: 'google.cloud.talent.v4beta1.TenantService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/talent/v4beta1/profile.proto b/google/cloud/talent/v4beta1/profile.proto deleted file mode 100644 index e087a8cd3..000000000 --- a/google/cloud/talent/v4beta1/profile.proto +++ /dev/null @@ -1,783 +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.cloud.talent.v4beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/talent/v4beta1/common.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; -import "google/type/date.proto"; -import "google/type/postal_address.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; -option java_multiple_files = true; -option java_outer_classname = "ProfileResourceProto"; -option java_package = "com.google.cloud.talent.v4beta1"; -option objc_class_prefix = "CTS"; - -// Cloud Profile Discovery API definition - -// A resource that represents the profile for a job candidate (also referred to -// as a "single-source profile"). -message Profile { - option (google.api.resource) = { - type: "jobs.googleapis.com/Profile" - pattern: "projects/{project}/tenants/{tenant}/profiles/{profile}" - }; - - // Required during profile update. - // - // Resource name assigned to a profile by the API. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}", - // for example, "projects/foo/tenants/bar/profiles/baz". - string name = 1; - - // Profile's id in client system, if available. This value is unique for each - // profile inside a tenant. An error is thrown if another profile with the - // same external_id is created. - // - // The maximum number of bytes allowed is 100. - string external_id = 2; - - // The source description indicating where the profile is acquired. - // - // For example, if a candidate profile is acquired from a resume, the user can - // input "resume" here to indicate the source. - // - // The maximum number of bytes allowed is 100. - string source = 3; - - // The URI set by clients that links to this profile's client-side copy. - // - // The maximum number of bytes allowed is 4000. - string uri = 4; - - // The cluster id of the profile to associate with other profile(s) for the - // same candidate. - // - // This field should be generated by the customer. If a value is not provided, - // a random UUID is assigned to this field of the profile. - // - // This is used to link multiple profiles to the same candidate. For example, - // a client has a candidate with two profiles, where one was created recently - // and the other one was created 5 years ago. These two profiles may be very - // different. The clients can create the first profile and get a generated - // [group_id][google.cloud.talent.v4beta1.Profile.group_id], and assign it when the second profile is created, - // indicating these two profiles are referring to the same candidate. - string group_id = 5; - - // Indicates the hirable status of the candidate. - google.protobuf.BoolValue is_hirable = 6; - - // The timestamp when the profile was first created at this source. - google.protobuf.Timestamp create_time = 7; - - // The timestamp when the profile was last updated at this source. - google.protobuf.Timestamp update_time = 8; - - // The timestamp when the profile was last updated as a result of a direct or - // indirect action by a candidate. - // - // These actions include: - // - // * Direct actions such as the candidate submitting a new resume as part of a - // job application to the agency, using a self-service tool such as a website - // to update their profile, and so on. - // * Indirect actions by the candidate such as uploading a resume to a job - // board that is collected by the agency through a feed, providing a resume to - // a recruiter who then uploads it into the ATS, and so on. - // * Updates made to the candidate's profile by the recruiter as a result of - // interacting with the candidate (for example adding a skill or work - // preference, and so on). Changes to [recruiting_notes][google.cloud.talent.v4beta1.Profile.recruiting_notes] are specifically - // excluded from this action type. - // - // Note: [candidate_update_time][google.cloud.talent.v4beta1.Profile.candidate_update_time] must be greater than or equal to - // [resume_update_time][google.cloud.talent.v4beta1.Profile.resume_update_time] or an error is thrown. - google.protobuf.Timestamp candidate_update_time = 67; - - // The timestamp when the candidate's resume was added or updated on the - // candidate's profile. Whether that resume was directly uploaded by a - // candidate, pulled from a 3rd party job board feed, added by a recruiter, - // and so on. - // - // If this field is updated, it's expected that [resume][google.cloud.talent.v4beta1.Profile.resume] is provided in - // the create or update calls. - google.protobuf.Timestamp resume_update_time = 68; - - // The resume representing this profile. - Resume resume = 53; - - // The names of the candidate this profile references. - // - // Currently only one person name is supported. - repeated PersonName person_names = 11; - - // The candidate's postal addresses. It's highly recommended to - // input this information as accurately as possible to help improve search - // quality. Here are some recommendations: - // - // * Provide [Address.usage][google.cloud.talent.v4beta1.Address.usage] if possible, especially if the address is - // PERSONAL. During a search only personal addresses are considered. If there - // is no such address, all addresses with unspecified usage are assumed to be - // personal. - // * Provide [Address.current][google.cloud.talent.v4beta1.Address.current] for the current address if possible. During - // a search, only current addresses are considered. If there is no such - // address, all addresses are assumed to be current. - // - // When displaying a candidate's addresses, it is sometimes desirable to limit - // the number of addresses shown. In these cases we recommend that you display - // the addresses in the following order of priority: - // 1. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is true. - // 2. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is false or not - // set. - // 3. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is CONTACT_INFO_USAGE_UNSPECIFIED and - // [Address.current][google.cloud.talent.v4beta1.Address.current] is true. - // 4. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is CONTACT_INFO_USAGE_UNSPECIFIED and - // [Address.current][google.cloud.talent.v4beta1.Address.current] is false or not set. - repeated Address addresses = 12; - - // The candidate's email addresses. - repeated Email email_addresses = 13; - - // The candidate's phone number(s). - repeated Phone phone_numbers = 14; - - // The candidate's personal URIs. - repeated PersonalUri personal_uris = 15; - - // Available contact information besides [addresses][google.cloud.talent.v4beta1.Profile.addresses], [email_addresses][google.cloud.talent.v4beta1.Profile.email_addresses], - // [phone_numbers][google.cloud.talent.v4beta1.Profile.phone_numbers] and [personal_uris][google.cloud.talent.v4beta1.Profile.personal_uris]. For example, Hang-out, Skype. - repeated AdditionalContactInfo additional_contact_info = 16; - - // The employment history records of the candidate. It's highly recommended - // to input this information as accurately as possible to help improve search - // quality. Here are some recommendations: - // - // * Specify the start and end dates of the employment records. - // * List different employment types separately, no matter how minor the - // change is. - // For example, only job title is changed from "software engineer" to "senior - // software engineer". - // * Provide [EmploymentRecord.is_current][google.cloud.talent.v4beta1.EmploymentRecord.is_current] for the current employment if - // possible. If not, it's inferred from user inputs. - // - // The limitation for max number of employment records is 100. - repeated EmploymentRecord employment_records = 17; - - // The education history record of the candidate. It's highly recommended to - // input this information as accurately as possible to help improve search - // quality. Here are some recommendations: - // - // * Specify the start and end dates of the education records. - // * List each education type separately, no matter how minor the change is. - // For example, the profile contains the education experience from the same - // school but different degrees. - // * Provide [EducationRecord.is_current][google.cloud.talent.v4beta1.EducationRecord.is_current] for the current education if - // possible. If not, it's inferred from user inputs. - // - // The limitation for max number of education records is 100. - repeated EducationRecord education_records = 18; - - // The skill set of the candidate. It's highly recommended to provide as - // much information as possible to help improve the search quality. - // - // The limitation for max number of skills is 500. - repeated Skill skills = 19; - - // The individual or collaborative activities which the candidate has - // participated in, for example, open-source projects, class assignments that - // aren't listed in [employment_records][google.cloud.talent.v4beta1.Profile.employment_records]. - // - // The limitation for max number of activities is 50. - repeated Activity activities = 20; - - // The publications published by the candidate. - // - // The limitation for max number of publications is 50. - repeated Publication publications = 21; - - // The patents acquired by the candidate. - repeated Patent patents = 22; - - // The certifications acquired by the candidate. - repeated Certification certifications = 23; - - // Output only. The resource names of the candidate's applications. - repeated string applications = 47 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The resource names of the candidate's assignments. - repeated string assignments = 48 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // A map of fields to hold both filterable and non-filterable custom profile - // attributes that aren't covered by the provided structured fields. See - // [CustomAttribute][google.cloud.talent.v4beta1.CustomAttribute] for more details. - // - // At most 100 filterable and at most 100 unfilterable keys are supported. If - // limit is exceeded, an error is thrown. Custom attributes are `unfilterable` - // by default. These are filterable when the `filterable` flag is set to - // `true`. - // - // Numeric custom attributes: each key can only map to one numeric value, - // otherwise an error is thrown. Client can also filter on numeric custom - // attributes using '>', '<' or '=' operators. - // - // String custom attributes: each key can map up to 50 string values. For - // filterable string value, each value has a byte size of no more than 256B. - // For unfilterable string values, the maximum byte size of a single key is - // 64B. An error is thrown for any request exceeding the limit. - // The maximum total byte size is 10KB. - map custom_attributes = 26; - - // Output only. Indicates if a summarized profile was created as part of the - // profile creation API call. This flag does not indicate whether a profile is - // searchable or not. - bool processed = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Keyword snippet shows how the search result is related to a - // search query. This is only returned in [SearchProfilesResponse][google.cloud.talent.v4beta1.SearchProfilesResponse]. - string keyword_snippet = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Candidate's availability signals. - repeated AvailabilitySignal availability_signals = 70 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Derived locations of the profile, resolved from [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses]. - // - // [derived_addresses][google.cloud.talent.v4beta1.Profile.derived_addresses] are exactly matched to [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] in the - // same order. - repeated Location derived_addresses = 64 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Candidate availability signal. -message AvailabilitySignal { - // Type of signal. - AvailabilitySignalType type = 1; - - // Timestamp of when the given availability activity last happened. - google.protobuf.Timestamp last_update_time = 2; - - // Indicates if the [last_update_time][google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time] is within - // [AvailabilityFilter.range][google.cloud.talent.v4beta1.AvailabilityFilter.range]. - // - // Returned only in a search response when there is an [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] - // in [ProfileQuery.availability_filters][google.cloud.talent.v4beta1.ProfileQuery.availability_filters] where - // [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type] matches [type][google.cloud.talent.v4beta1.AvailabilitySignal.type]. - google.protobuf.BoolValue filter_satisfied = 3; -} - -// Resource that represents a resume. -message Resume { - // The format of a structured resume. - enum ResumeType { - // Default value. - RESUME_TYPE_UNSPECIFIED = 0; - - // The profile contents in HR-XML format. - // See https://schemas.liquid-technologies.com/hr-xml/2007-04-15/ for more - // information about Human Resources XML. - HRXML = 1; - - // Resume type not specified. - OTHER_RESUME_TYPE = 2; - } - - // Users can create a profile with only this field field, if [resume_type][google.cloud.talent.v4beta1.Resume.resume_type] - // is [HRXML][google.cloud.talent.v4beta1.Resume.ResumeType.HRXML]. For example, the API parses this field and - // creates a profile - // with all structured fields populated. [EmploymentRecord][google.cloud.talent.v4beta1.EmploymentRecord], - // [EducationRecord][google.cloud.talent.v4beta1.EducationRecord], and so on. An error is thrown if this field cannot be - // parsed. - // - // Note that the use of the functionality offered by this field to extract - // data from resumes is an Alpha feature and as such is not covered by any - // SLA. - string structured_resume = 1; - - // The format of [structured_resume][google.cloud.talent.v4beta1.Resume.structured_resume]. - ResumeType resume_type = 2; -} - -// Resource that represents the name of a person. -message PersonName { - // Resource that represents a person's structured name. - message PersonStructuredName { - // Given/first name. - // - // It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided. - // - // Number of characters allowed is 100. - string given_name = 1; - - // Preferred given/first name or nickname. - // - // Number of characters allowed is 100. - string preferred_name = 6; - - // Middle initial. - // - // It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided. - // - // Number of characters allowed is 20. - string middle_initial = 2; - - // Family/last name. - // - // It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided. - // - // Number of characters allowed is 100. - string family_name = 3; - - // Suffixes. - // - // Number of characters allowed is 20. - repeated string suffixes = 4; - - // Prefixes. - // - // Number of characters allowed is 20. - repeated string prefixes = 5; - } - - // The name of a person. It can be one of - // [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] or - // [structured_name][google.cloud.talent.v4beta1.PersonName.structured_name]. - oneof person_name { - // A string represents a person's full name. For example, "Dr. John Smith". - // - // Number of characters allowed is 100. - string formatted_name = 1; - - // A person's name in a structured way (last name, first name, suffix, and - // so on.) - PersonStructuredName structured_name = 2; - } - - // Preferred name for the person. This field is ignored if [structured_name][google.cloud.talent.v4beta1.PersonName.structured_name] - // is provided. - // - // Number of characters allowed is 100. - string preferred_name = 3; -} - -// Resource that represents a address. -message Address { - // The usage of the address. For example, SCHOOL, WORK, PERSONAL. - ContactInfoUsage usage = 1; - - // The address of a person. It can be one of - // [unstructured_address][google.cloud.talent.v4beta1.Address.unstructured_address] or - // [structured_address][google.cloud.talent.v4beta1.Address.structured_address]. - oneof address { - // Unstructured address. - // - // For example, "1600 Amphitheatre Pkwy, Mountain View, CA 94043", - // "Sunnyvale, California". - // - // Number of characters allowed is 100. - string unstructured_address = 2; - - // Structured address that contains street address, city, state, country, - // and so on. - google.type.PostalAddress structured_address = 3; - } - - // Indicates if it's the person's current address. - google.protobuf.BoolValue current = 4; -} - -// Resource that represents a person's email address. -message Email { - // The usage of the email address. For example, SCHOOL, WORK, PERSONAL. - ContactInfoUsage usage = 1; - - // Email address. - // - // Number of characters allowed is 4,000. - string email_address = 2; -} - -// Resource that represents a person's telephone number. -message Phone { - // Enum that represents the type of the telephone. - enum PhoneType { - // Default value. - PHONE_TYPE_UNSPECIFIED = 0; - - // A landline. - LANDLINE = 1; - - // A mobile. - MOBILE = 2; - - // A fax. - FAX = 3; - - // A pager. - PAGER = 4; - - // A TTY (test telephone) or TDD (telecommunication device for the deaf). - TTY_OR_TDD = 5; - - // A voicemail. - VOICEMAIL = 6; - - // A virtual telephone number is a number that can be routed to another - // number and managed by the user via Web, SMS, IVR, and so on. It is - // associated with a particular person, and may be routed to either a MOBILE - // or LANDLINE number. The [phone usage][google.cloud.talent.v4beta1.ContactInfoUsage] should - // be set to PERSONAL for these phone types. Some more information can be - // found here: https://en.wikipedia.org/wiki/Personal_Numbers - VIRTUAL = 7; - - // Voice over IP numbers. This includes TSoIP (Telephony Service over IP). - VOIP = 8; - - // In some regions (e.g. the USA), it is impossible to distinguish between - // fixed-line and mobile numbers by looking at the phone number itself. - MOBILE_OR_LANDLINE = 9; - } - - // The usage of the phone. For example, SCHOOL, WORK, PERSONAL. - ContactInfoUsage usage = 1; - - // The phone type. For example, LANDLINE, MOBILE, FAX. - PhoneType type = 2; - - // Phone number. - // - // Any phone formats are supported and only exact matches are performed on - // searches. For example, if a phone number in profile is provided in the - // format of "(xxx)xxx-xxxx", in profile searches the same phone format - // has to be provided. - // - // Number of characters allowed is 20. - string number = 3; - - // When this number is available. Any descriptive string is expected. - // - // Number of characters allowed is 100. - string when_available = 4; -} - -// Resource that represents a valid URI for a personal use. -message PersonalUri { - // The personal URI. - // - // Number of characters allowed is 4,000. - string uri = 1; -} - -// Resource that represents contact information other than phone, email, -// URI and addresses. -message AdditionalContactInfo { - // The usage of this contact method. For example, SCHOOL, WORK, PERSONAL. - ContactInfoUsage usage = 1; - - // The name of the contact method. - // - // For example, "hangout", "skype". - // - // Number of characters allowed is 100. - string name = 2; - - // The contact id. - // - // Number of characters allowed is 100. - string contact_id = 3; -} - -// Resource that represents an employment record of a candidate. -message EmploymentRecord { - // Start date of the employment. - google.type.Date start_date = 1; - - // End date of the employment. - google.type.Date end_date = 2; - - // The name of the employer company/organization. - // - // For example, "Google", "Alphabet", and so on. - // - // Number of characters allowed is 250. - string employer_name = 3; - - // The division name of the employment. - // - // For example, division, department, client, and so on. - // - // Number of characters allowed is 100. - string division_name = 4; - - // The physical address of the employer. - Address address = 5; - - // The job title of the employment. - // - // For example, "Software Engineer", "Data Scientist", and so on. - // - // Number of characters allowed is 250. - string job_title = 6; - - // The description of job content. - // - // Number of characters allowed is 100,000. - string job_description = 7; - - // If the jobs is a supervisor position. - google.protobuf.BoolValue is_supervisor = 8; - - // If this employment is self-employed. - google.protobuf.BoolValue is_self_employed = 9; - - // If this employment is current. - google.protobuf.BoolValue is_current = 10; - - // Output only. The job title snippet shows how the [job_title][google.cloud.talent.v4beta1.EmploymentRecord.job_title] is related - // to a search query. It's empty if the [job_title][google.cloud.talent.v4beta1.EmploymentRecord.job_title] isn't related to the - // search query. - string job_title_snippet = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The job description snippet shows how the [job_description][google.cloud.talent.v4beta1.EmploymentRecord.job_description] - // is related to a search query. It's empty if the [job_description][google.cloud.talent.v4beta1.EmploymentRecord.job_description] isn't - // related to the search query. - string job_description_snippet = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The employer name snippet shows how the [employer_name][google.cloud.talent.v4beta1.EmploymentRecord.employer_name] is - // related to a search query. It's empty if the [employer_name][google.cloud.talent.v4beta1.EmploymentRecord.employer_name] isn't - // related to the search query. - string employer_name_snippet = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Resource that represents an education record of a candidate. -message EducationRecord { - // The start date of the education. - google.type.Date start_date = 1; - - // The end date of the education. - google.type.Date end_date = 2; - - // The expected graduation date if currently pursuing a degree. - google.type.Date expected_graduation_date = 3; - - // The name of the school or institution. - // - // For example, "Stanford University", "UC Berkeley", and so on. - // - // Number of characters allowed is 250. - string school_name = 4; - - // The physical address of the education institution. - Address address = 5; - - // The degree information. It can be one of - // [degree_description][google.cloud.talent.v4beta1.EducationRecord.degree_description] or - // [structured_degree][google.cloud.talent.v4beta1.EducationRecord.structured_degree]. - oneof degree { - // The full description of the degree. - // - // For example, "Master of Science in Computer Science", "B.S in Math". - // - // Number of characters allowed is 100. - string degree_description = 6; - - // The structured notation of the degree. - Degree structured_degree = 7; - } - - // The description of the education. - // - // Number of characters allowed is 100,000. - string description = 8; - - // If this education is current. - google.protobuf.BoolValue is_current = 9; - - // Output only. The school name snippet shows how the [school_name][google.cloud.talent.v4beta1.EducationRecord.school_name] is related to a - // search query in search result. It's empty if the [school_name][google.cloud.talent.v4beta1.EducationRecord.school_name] isn't - // related to the search query. - string school_name_snippet = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The job description snippet shows how the [Degree][google.cloud.talent.v4beta1.Degree] is related to a search - // query in search result. It's empty if the [Degree][google.cloud.talent.v4beta1.Degree] isn't related to the - // search query. - string degree_snippet = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Resource that represents a degree pursuing or acquired by a candidate. -message Degree { - // ISCED degree type. - DegreeType degree_type = 1; - - // Full Degree name. - // - // For example, "B.S.", "Master of Arts", and so on. - // - // Number of characters allowed is 100. - string degree_name = 2; - - // Fields of study for the degree. - // - // For example, "Computer science", "engineering". - // - // Number of characters allowed is 100. - repeated string fields_of_study = 3; -} - -// Resource that represents an individual or collaborative activity participated -// in by a candidate, for example, an open-source project, a class assignment, -// and so on. -message Activity { - // Activity display name. - // - // Number of characters allowed is 100. - string display_name = 1; - - // Activity description. - // - // Number of characters allowed is 100,000. - string description = 2; - - // Activity URI. - // - // Number of characters allowed is 4,000. - string uri = 3; - - // The first creation date of the activity. - google.type.Date create_date = 4; - - // The last update date of the activity. - google.type.Date update_date = 5; - - // A list of team members involved in this activity. - // - // Number of characters allowed is 100. - // - // The limitation for max number of team members is 50. - repeated string team_members = 6; - - // A list of skills used in this activity. - // - // The limitation for max number of skills used is 50. - repeated Skill skills_used = 7; - - // Output only. Activity name snippet shows how the [display_name][google.cloud.talent.v4beta1.Activity.display_name] is related to a search - // query. It's empty if the [display_name][google.cloud.talent.v4beta1.Activity.display_name] isn't related to the search - // query. - string activity_name_snippet = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Activity description snippet shows how the - // [description][google.cloud.talent.v4beta1.Activity.description] is related to a search query. It's empty if the - // [description][google.cloud.talent.v4beta1.Activity.description] isn't related to the search query. - string activity_description_snippet = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Skill used snippet shows how the corresponding - // [skills_used][google.cloud.talent.v4beta1.Activity.skills_used] are related to a search query. It's empty if the - // corresponding [skills_used][google.cloud.talent.v4beta1.Activity.skills_used] are not related to the search query. - repeated string skills_used_snippet = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Resource that represents a publication resource of a candidate. -message Publication { - // A list of author names. - // - // Number of characters allowed is 100. - repeated string authors = 1; - - // The title of the publication. - // - // Number of characters allowed is 100. - string title = 2; - - // The description of the publication. - // - // Number of characters allowed is 100,000. - string description = 3; - - // The journal name of the publication. - // - // Number of characters allowed is 100. - string journal = 4; - - // Volume number. - // - // Number of characters allowed is 100. - string volume = 5; - - // The publisher of the journal. - // - // Number of characters allowed is 100. - string publisher = 6; - - // The publication date. - google.type.Date publication_date = 7; - - // The publication type. - // - // Number of characters allowed is 100. - string publication_type = 8; - - // ISBN number. - // - // Number of characters allowed is 100. - string isbn = 9; -} - -// Resource that represents the patent acquired by a candidate. -message Patent { - // Name of the patent. - // - // Number of characters allowed is 100. - string display_name = 1; - - // A list of inventors' names. - // - // Number of characters allowed for each is 100. - repeated string inventors = 2; - - // The status of the patent. - // - // Number of characters allowed is 100. - string patent_status = 3; - - // The date the last time the status of the patent was checked. - google.type.Date patent_status_date = 4; - - // The date that the patent was filed. - google.type.Date patent_filing_date = 5; - - // The name of the patent office. - // - // Number of characters allowed is 100. - string patent_office = 6; - - // The number of the patent. - // - // Number of characters allowed is 100. - string patent_number = 7; - - // The description of the patent. - // - // Number of characters allowed is 100,000. - string patent_description = 8; - - // The skills used in this patent. - repeated Skill skills_used = 9; -} diff --git a/google/cloud/talent/v4beta1/profile_service.proto b/google/cloud/talent/v4beta1/profile_service.proto deleted file mode 100644 index 0562a5590..000000000 --- a/google/cloud/talent/v4beta1/profile_service.proto +++ /dev/null @@ -1,467 +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.cloud.talent.v4beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/talent/v4beta1/common.proto"; -import "google/cloud/talent/v4beta1/filters.proto"; -import "google/cloud/talent/v4beta1/histogram.proto"; -import "google/cloud/talent/v4beta1/profile.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/field_mask.proto"; -import "google/rpc/status.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; -option java_multiple_files = true; -option java_outer_classname = "ProfileServiceProto"; -option java_package = "com.google.cloud.talent.v4beta1"; -option objc_class_prefix = "CTS"; - -// A service that handles profile management, including profile CRUD, -// enumeration and search. -service ProfileService { - option (google.api.default_host) = "jobs.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform," - "https://www.googleapis.com/auth/jobs"; - - // Lists profiles by filter. The order is unspecified. - rpc ListProfiles(ListProfilesRequest) returns (ListProfilesResponse) { - option (google.api.http) = { - get: "/v4beta1/{parent=projects/*/tenants/*}/profiles" - }; - option (google.api.method_signature) = "parent"; - } - - // Creates and returns a new profile. - rpc CreateProfile(CreateProfileRequest) returns (Profile) { - option (google.api.http) = { - post: "/v4beta1/{parent=projects/*/tenants/*}/profiles" - body: "*" - }; - option (google.api.method_signature) = "parent,profile"; - } - - // Gets the specified profile. - rpc GetProfile(GetProfileRequest) returns (Profile) { - option (google.api.http) = { - get: "/v4beta1/{name=projects/*/tenants/*/profiles/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates the specified profile and returns the updated result. - rpc UpdateProfile(UpdateProfileRequest) returns (Profile) { - option (google.api.http) = { - patch: "/v4beta1/{profile.name=projects/*/tenants/*/profiles/*}" - body: "*" - }; - option (google.api.method_signature) = "profile"; - } - - // Deletes the specified profile. - // Prerequisite: The profile has no associated applications or assignments - // associated. - rpc DeleteProfile(DeleteProfileRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v4beta1/{name=projects/*/tenants/*/profiles/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Searches for profiles within a tenant. - // - // For example, search by raw queries "software engineer in Mountain View" or - // search by structured filters (location filter, education filter, etc.). - // - // See [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest] for more information. - rpc SearchProfiles(SearchProfilesRequest) returns (SearchProfilesResponse) { - option (google.api.http) = { - post: "/v4beta1/{parent=projects/*/tenants/*}:search" - body: "*" - }; - } -} - -// List profiles request. -message ListProfilesRequest { - // Required. The resource name of the tenant under which the profile is created. - // - // The format is "projects/{project_id}/tenants/{tenant_id}". For example, - // "projects/foo/tenants/bar". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "jobs.googleapis.com/Profile" - } - ]; - - // The filter string specifies the profiles to be enumerated. - // - // Supported operator: =, AND - // - // The field(s) eligible for filtering are: - // - // * `externalId` - // * `groupId` - // - // externalId and groupId cannot be specified at the same time. If both - // externalId and groupId are provided, the API will return a bad request - // error. - // - // Sample Query: - // - // * externalId = "externalId-1" - // * groupId = "groupId-1" - string filter = 5; - - // The token that specifies the current offset (that is, starting result). - // - // Please set the value to [ListProfilesResponse.next_page_token][google.cloud.talent.v4beta1.ListProfilesResponse.next_page_token] to - // continue the list. - string page_token = 2; - - // The maximum number of profiles to be returned, at most 100. - // - // Default is 100 unless a positive number smaller than 100 is specified. - int32 page_size = 3; - - // A field mask to specify the profile fields to be listed in response. - // All fields are listed if it is unset. - // - // Valid values are: - // - // * name - google.protobuf.FieldMask read_mask = 4; -} - -// The List profiles response object. -message ListProfilesResponse { - // Profiles for the specific tenant. - repeated Profile profiles = 1; - - // A token to retrieve the next page of results. This is empty if there are no - // more results. - string next_page_token = 2; -} - -// Create profile request. -message CreateProfileRequest { - // Required. The name of the tenant this profile belongs to. - // - // The format is "projects/{project_id}/tenants/{tenant_id}". For example, - // "projects/foo/tenants/bar". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "jobs.googleapis.com/Tenant" - } - ]; - - // Required. The profile to be created. - Profile profile = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Get profile request. -message GetProfileRequest { - // Required. Resource name of the profile to get. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}". For - // example, "projects/foo/tenants/bar/profiles/baz". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "jobs.googleapis.com/Profile" - } - ]; -} - -// Update profile request -message UpdateProfileRequest { - // Required. Profile to be updated. - Profile profile = 1 [(google.api.field_behavior) = REQUIRED]; - - // A field mask to specify the profile fields to update. - // - // A full update is performed if it is unset. - google.protobuf.FieldMask update_mask = 2; -} - -// Delete profile request. -message DeleteProfileRequest { - // Required. Resource name of the profile to be deleted. - // - // The format is - // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}". For - // example, "projects/foo/tenants/bar/profiles/baz". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "jobs.googleapis.com/Profile" - } - ]; -} - -// The request body of the `SearchProfiles` call. -message SearchProfilesRequest { - // Required. The resource name of the tenant to search within. - // - // The format is "projects/{project_id}/tenants/{tenant_id}". For example, - // "projects/foo/tenants/bar". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "jobs.googleapis.com/Tenant" - } - ]; - - // Required. The meta information collected about the profile search user. This is used - // to improve the search quality of the service. These values are provided by - // users, and must be precise and consistent. - RequestMetadata request_metadata = 2 [(google.api.field_behavior) = REQUIRED]; - - // Search query to execute. See [ProfileQuery][google.cloud.talent.v4beta1.ProfileQuery] for more details. - ProfileQuery profile_query = 3; - - // A limit on the number of profiles returned in the search results. - // A value above the default value 10 can increase search response time. - // - // The maximum value allowed is 100. Otherwise an error is thrown. - int32 page_size = 4; - - // The pageToken, similar to offset enables users of the API to paginate - // through the search results. To retrieve the first page of results, set the - // pageToken to empty. The search response includes a - // [nextPageToken][google.cloud.talent.v4beta1.SearchProfilesResponse.next_page_token] field that can be - // used to populate the pageToken field for the next page of results. Using - // pageToken instead of offset increases the performance of the API, - // especially compared to larger offset values. - string page_token = 5; - - // An integer that specifies the current offset (that is, starting result) in - // search results. This field is only considered if [page_token][google.cloud.talent.v4beta1.SearchProfilesRequest.page_token] is unset. - // - // The maximum allowed value is 5000. Otherwise an error is thrown. - // - // For example, 0 means to search from the first profile, and 10 means to - // search from the 11th profile. This can be used for pagination, for example - // pageSize = 10 and offset = 10 means to search from the second page. - int32 offset = 6; - - // This flag controls the spell-check feature. If `false`, the - // service attempts to correct a misspelled query. - // - // For example, "enginee" is corrected to "engineer". - bool disable_spell_check = 7; - - // The criteria that determines how search results are sorted. - // Defaults is "relevance desc" if no value is specified. - // - // Supported options are: - // - // * "relevance desc": By descending relevance, as determined by the API - // algorithms. - // * "update_date desc": Sort by [Profile.update_time][google.cloud.talent.v4beta1.Profile.update_time] in descending order - // (recently updated profiles first). - // * "create_date desc": Sort by [Profile.create_time][google.cloud.talent.v4beta1.Profile.create_time] in descending order - // (recently created profiles first). - // * "first_name": Sort by [PersonName.PersonStructuredName.given_name][google.cloud.talent.v4beta1.PersonName.PersonStructuredName.given_name] in - // ascending order. - // * "first_name desc": Sort by [PersonName.PersonStructuredName.given_name][google.cloud.talent.v4beta1.PersonName.PersonStructuredName.given_name] - // in descending order. - // * "last_name": Sort by [PersonName.PersonStructuredName.family_name][google.cloud.talent.v4beta1.PersonName.PersonStructuredName.family_name] in - // ascending order. - // * "last_name desc": Sort by [PersonName.PersonStructuredName.family_name][google.cloud.talent.v4beta1.PersonName.PersonStructuredName.family_name] - // in ascending order. - string order_by = 8; - - // When sort by field is based on alphabetical order, sort values case - // sensitively (based on ASCII) when the value is set to true. Default value - // is case in-sensitive sort (false). - bool case_sensitive_sort = 9; - - // A list of expressions specifies histogram requests against matching - // profiles for [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest]. - // - // The expression syntax looks like a function definition with parameters. - // - // Function syntax: function_name(histogram_facet[, list of buckets]) - // - // Data types: - // - // * Histogram facet: facet names with format `[a-zA-Z][a-zA-Z0-9_]+`. - // * String: string like "any string with backslash escape for quote(\")." - // * Number: whole number and floating point number like 10, -1 and -0.01. - // * List: list of elements with comma(,) separator surrounded by square - // brackets. For example, [1, 2, 3] and ["one", "two", "three"]. - // - // Built-in constants: - // - // * MIN (minimum number similar to java Double.MIN_VALUE) - // * MAX (maximum number similar to java Double.MAX_VALUE) - // - // Built-in functions: - // - // * bucket(start, end[, label]) - // Bucket build-in function creates a bucket with range of [start, end). Note - // that the end is exclusive. - // For example, bucket(1, MAX, "positive number") or bucket(1, 10). - // - // Histogram Facets: - // - // * admin1: Admin1 is a global placeholder for referring to state, province, - // or the particular term a country uses to define the geographic structure - // below the country level. Examples include states codes such as "CA", "IL", - // "NY", and provinces, such as "BC". - // * locality: Locality is a global placeholder for referring to city, town, - // or the particular term a country uses to define the geographic structure - // below the admin1 level. Examples include city names such as - // "Mountain View" and "New York". - // * extended_locality: Extended locality is concatenated version of admin1 - // and locality with comma separator. For example, "Mountain View, CA" and - // "New York, NY". - // * postal_code: Postal code of profile which follows locale code. - // * country: Country code (ISO-3166-1 alpha-2 code) of profile, such as US, - // JP, GB. - // * job_title: Normalized job titles specified in EmploymentHistory. - // * company_name: Normalized company name of profiles to match on. - // * institution: The school name. For example, "MIT", - // "University of California, Berkeley" - // * degree: Highest education degree in ISCED code. Each value in degree - // covers a specific level of education, without any expansion to upper nor - // lower levels of education degree. - // * experience_in_months: experience in months. 0 means 0 month to 1 month - // (exclusive). - // * application_date: The application date specifies application start dates. - // See [ApplicationDateFilter][google.cloud.talent.v4beta1.ApplicationDateFilter] for more details. - // * application_outcome_notes: The application outcome reason specifies the - // reasons behind the outcome of the job application. - // See [ApplicationOutcomeNotesFilter][google.cloud.talent.v4beta1.ApplicationOutcomeNotesFilter] for more details. - // * application_job_title: The application job title specifies the job - // applied for in the application. - // See [ApplicationJobFilter][google.cloud.talent.v4beta1.ApplicationJobFilter] for more details. - // * hirable_status: Hirable status specifies the profile's hirable status. - // * string_custom_attribute: String custom attributes. Values can be accessed - // via square bracket notation like string_custom_attribute["key1"]. - // * numeric_custom_attribute: Numeric custom attributes. Values can be - // accessed via square bracket notation like numeric_custom_attribute["key1"]. - // - // Example expressions: - // - // * count(admin1) - // * count(experience_in_months, [bucket(0, 12, "1 year"), - // bucket(12, 36, "1-3 years"), bucket(36, MAX, "3+ years")]) - // * count(string_custom_attribute["assigned_recruiter"]) - // * count(numeric_custom_attribute["favorite_number"], - // [bucket(MIN, 0, "negative"), bucket(0, MAX, "non-negative")]) - repeated HistogramQuery histogram_queries = 10; - - // An id that uniquely identifies the result set of a - // [SearchProfiles][google.cloud.talent.v4beta1.ProfileService.SearchProfiles] call. The id should be - // retrieved from the - // [SearchProfilesResponse][google.cloud.talent.v4beta1.SearchProfilesResponse] message returned from a previous - // invocation of [SearchProfiles][google.cloud.talent.v4beta1.ProfileService.SearchProfiles]. - // - // A result set is an ordered list of search results. - // - // If this field is not set, a new result set is computed based on the - // [profile_query][google.cloud.talent.v4beta1.SearchProfilesRequest.profile_query]. A new [result_set_id][google.cloud.talent.v4beta1.SearchProfilesRequest.result_set_id] is returned as a handle to - // access this result set. - // - // If this field is set, the service will ignore the resource and - // [profile_query][google.cloud.talent.v4beta1.SearchProfilesRequest.profile_query] values, and simply retrieve a page of results from the - // corresponding result set. In this case, one and only one of [page_token][google.cloud.talent.v4beta1.SearchProfilesRequest.page_token] - // or [offset][google.cloud.talent.v4beta1.SearchProfilesRequest.offset] must be set. - // - // A typical use case is to invoke [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest] without this - // field, then use the resulting [result_set_id][google.cloud.talent.v4beta1.SearchProfilesRequest.result_set_id] in - // [SearchProfilesResponse][google.cloud.talent.v4beta1.SearchProfilesResponse] to page through the results. - string result_set_id = 12; - - // This flag is used to indicate whether the service will attempt to - // understand synonyms and terms related to the search query or treat the - // query "as is" when it generates a set of results. By default this flag is - // set to false, thus allowing expanded results to also be returned. For - // example a search for "software engineer" might also return candidates who - // have experience in jobs similar to software engineer positions. By setting - // this flag to true, the service will only attempt to deliver candidates has - // software engineer in his/her global fields by treating "software engineer" - // as a keyword. - // - // It is recommended to provide a feature in the UI (such as a checkbox) to - // allow recruiters to set this flag to true if they intend to search for - // longer boolean strings. - bool strict_keywords_search = 13; -} - -// Response of SearchProfiles method. -message SearchProfilesResponse { - // An estimation of the number of profiles that match the specified query. - // - // This number isn't guaranteed to be accurate. - int64 estimated_total_size = 1; - - // The spell checking result, and correction. - SpellingCorrection spell_correction = 2; - - // Additional information for the API invocation, such as the request - // tracking id. - ResponseMetadata metadata = 3; - - // A token to retrieve the next page of results. This is empty if there are no - // more results. - string next_page_token = 4; - - // The histogram results that match with specified - // [SearchProfilesRequest.histogram_queries][google.cloud.talent.v4beta1.SearchProfilesRequest.histogram_queries]. - repeated HistogramQueryResult histogram_query_results = 5; - - // The profile entities that match the specified [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest]. - repeated SummarizedProfile summarized_profiles = 6; - - // An id that uniquely identifies the result set of a - // [SearchProfiles][google.cloud.talent.v4beta1.ProfileService.SearchProfiles] call for consistent - // results. - string result_set_id = 7; -} - -// Profile entry with metadata inside [SearchProfilesResponse][google.cloud.talent.v4beta1.SearchProfilesResponse]. -message SummarizedProfile { - // A list of profiles that are linked by [Profile.group_id][google.cloud.talent.v4beta1.Profile.group_id]. - repeated Profile profiles = 1; - - // A profile summary shows the profile summary and how the profile matches the - // search query. - // - // In profile summary, the profiles with the same [Profile.group_id][google.cloud.talent.v4beta1.Profile.group_id] are - // merged together. Among profiles, same education/employment records may be - // slightly different but they are merged into one with best efforts. - // - // For example, in one profile the school name is "UC Berkeley" and the field - // study is "Computer Science" and in another one the school name is - // "University of California at Berkeley" and the field study is "CS". The API - // merges these two inputs into one and selects one value for each field. For - // example, the school name in summary is set to "University of California at - // Berkeley" and the field of study is set to "Computer Science". - Profile summary = 2; -} diff --git a/google/cloud/talent/v4beta1/tenant.proto b/google/cloud/talent/v4beta1/tenant.proto index 0328c143a..cf376a4b7 100644 --- a/google/cloud/talent/v4beta1/tenant.proto +++ b/google/cloud/talent/v4beta1/tenant.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -18,8 +18,6 @@ package google.cloud.talent.v4beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; diff --git a/google/cloud/talent/v4beta1/tenant_service.proto b/google/cloud/talent/v4beta1/tenant_service.proto index 3eb260d8a..3e40df914 100644 --- a/google/cloud/talent/v4beta1/tenant_service.proto +++ b/google/cloud/talent/v4beta1/tenant_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/tasks/v2/BUILD.bazel b/google/cloud/tasks/v2/BUILD.bazel index 497ab8e58..03144e77d 100644 --- a/google/cloud/tasks/v2/BUILD.bazel +++ b/google/cloud/tasks/v2/BUILD.bazel @@ -71,6 +71,7 @@ java_gapic_library( ":tasks_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":tasks_java_proto", "//google/iam/v1:iam_java_proto", @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "tasks_java_gapic_test_suite", test_classes = [ + "com.google.cloud.tasks.v2.CloudTasksClientHttpJsonTest", "com.google.cloud.tasks.v2.CloudTasksClientTest", ], runtime_deps = [":tasks_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-tasks-v2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":tasks_java_gapic", ":tasks_java_grpc", @@ -125,6 +129,7 @@ go_gapic_library( grpc_service_config = "cloudtasks_grpc_service_config.json", importpath = "cloud.google.com/go/cloudtasks/apiv2;tasks", service_yaml = "cloudtasks_v2.yaml", + transport = "grpc+rest", deps = [ ":tasks_go_proto", "//google/iam/v1:iam_go_proto", @@ -155,12 +160,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "tasks_py_gapic", srcs = [":tasks_proto"], grpc_service_config = "cloudtasks_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "tasks_py_gapic_test", + srcs = [ + "tasks_py_gapic_pytest.py", + "tasks_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":tasks_py_gapic"], ) py_gapic_assembly_pkg( @@ -319,6 +339,7 @@ csharp_gapic_library( srcs = [":tasks_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudtasks_grpc_service_config.json", + service_yaml = "cloudtasks_v2.yaml", deps = [ ":tasks_csharp_grpc", ":tasks_csharp_proto", diff --git a/google/cloud/tasks/v2/queue.proto b/google/cloud/tasks/v2/queue.proto index 483a1f61f..3de397925 100644 --- a/google/cloud/tasks/v2/queue.proto +++ b/google/cloud/tasks/v2/queue.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/tasks/v2/target.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2;tasks"; option java_multiple_files = true; diff --git a/google/cloud/tasks/v2/target.proto b/google/cloud/tasks/v2/target.proto index fca9cf81b..db7ef20f6 100644 --- a/google/cloud/tasks/v2/target.proto +++ b/google/cloud/tasks/v2/target.proto @@ -18,7 +18,6 @@ syntax = "proto3"; package google.cloud.tasks.v2; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2;tasks"; option java_multiple_files = true; diff --git a/google/cloud/tasks/v2/task.proto b/google/cloud/tasks/v2/task.proto index 70a2baba4..9669b21ae 100644 --- a/google/cloud/tasks/v2/task.proto +++ b/google/cloud/tasks/v2/task.proto @@ -22,7 +22,6 @@ import "google/cloud/tasks/v2/target.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2;tasks"; option java_multiple_files = true; diff --git a/google/cloud/tasks/v2beta2/BUILD.bazel b/google/cloud/tasks/v2beta2/BUILD.bazel index a1a8ab5a4..af7558dfb 100644 --- a/google/cloud/tasks/v2beta2/BUILD.bazel +++ b/google/cloud/tasks/v2beta2/BUILD.bazel @@ -71,6 +71,7 @@ java_gapic_library( ":tasks_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":tasks_java_proto", "//google/iam/v1:iam_java_proto", @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "tasks_java_gapic_test_suite", test_classes = [ + "com.google.cloud.tasks.v2beta2.CloudTasksClientHttpJsonTest", "com.google.cloud.tasks.v2beta2.CloudTasksClientTest", ], runtime_deps = [":tasks_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-tasks-v2beta2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":tasks_java_gapic", ":tasks_java_grpc", @@ -125,6 +129,7 @@ go_gapic_library( grpc_service_config = "cloudtasks_grpc_service_config.json", importpath = "cloud.google.com/go/cloudtasks/apiv2beta2;tasks", service_yaml = "cloudtasks_v2beta2.yaml", + transport = "grpc+rest", deps = [ ":tasks_go_proto", "//google/iam/v1:iam_go_proto", @@ -156,12 +161,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "tasks_py_gapic", srcs = [":tasks_proto"], grpc_service_config = "cloudtasks_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "tasks_py_gapic_test", + srcs = [ + "tasks_py_gapic_pytest.py", + "tasks_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":tasks_py_gapic"], ) py_gapic_assembly_pkg( @@ -320,6 +340,7 @@ csharp_gapic_library( srcs = [":tasks_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudtasks_grpc_service_config.json", + service_yaml = "cloudtasks_v2beta2.yaml", deps = [ ":tasks_csharp_grpc", ":tasks_csharp_proto", diff --git a/google/cloud/tasks/v2beta2/queue.proto b/google/cloud/tasks/v2beta2/queue.proto index f988d80cf..2d6ba2e1a 100644 --- a/google/cloud/tasks/v2beta2/queue.proto +++ b/google/cloud/tasks/v2beta2/queue.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/tasks/v2beta2/target.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2beta2;tasks"; option java_multiple_files = true; diff --git a/google/cloud/tasks/v2beta2/target.proto b/google/cloud/tasks/v2beta2/target.proto index 09c8fd781..7ee837dbd 100644 --- a/google/cloud/tasks/v2beta2/target.proto +++ b/google/cloud/tasks/v2beta2/target.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.tasks.v2beta2; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2beta2;tasks"; option java_multiple_files = true; diff --git a/google/cloud/tasks/v2beta2/task.proto b/google/cloud/tasks/v2beta2/task.proto index 873a6f938..5e5c35755 100644 --- a/google/cloud/tasks/v2beta2/task.proto +++ b/google/cloud/tasks/v2beta2/task.proto @@ -20,7 +20,6 @@ import "google/api/resource.proto"; import "google/cloud/tasks/v2beta2/target.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2beta2;tasks"; option java_multiple_files = true; diff --git a/google/cloud/tasks/v2beta3/BUILD.bazel b/google/cloud/tasks/v2beta3/BUILD.bazel index 009430eb4..2a849edd0 100644 --- a/google/cloud/tasks/v2beta3/BUILD.bazel +++ b/google/cloud/tasks/v2beta3/BUILD.bazel @@ -71,6 +71,7 @@ java_gapic_library( ":tasks_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":tasks_java_proto", "//google/iam/v1:iam_java_proto", @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "tasks_java_gapic_test_suite", test_classes = [ + "com.google.cloud.tasks.v2beta3.CloudTasksClientHttpJsonTest", "com.google.cloud.tasks.v2beta3.CloudTasksClientTest", ], runtime_deps = [":tasks_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-tasks-v2beta3-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":tasks_java_gapic", ":tasks_java_grpc", @@ -125,6 +129,7 @@ go_gapic_library( grpc_service_config = "cloudtasks_grpc_service_config.json", importpath = "cloud.google.com/go/cloudtasks/apiv2beta3;tasks", service_yaml = "cloudtasks_v2beta3.yaml", + transport = "grpc+rest", deps = [ ":tasks_go_proto", "//google/iam/v1:iam_go_proto", @@ -156,12 +161,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "tasks_py_gapic", srcs = [":tasks_proto"], grpc_service_config = "cloudtasks_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "tasks_py_gapic_test", + srcs = [ + "tasks_py_gapic_pytest.py", + "tasks_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":tasks_py_gapic"], ) py_gapic_assembly_pkg( @@ -320,6 +340,7 @@ csharp_gapic_library( srcs = [":tasks_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudtasks_grpc_service_config.json", + service_yaml = "cloudtasks_v2beta3.yaml", deps = [ ":tasks_csharp_grpc", ":tasks_csharp_proto", diff --git a/google/cloud/tasks/v2beta3/queue.proto b/google/cloud/tasks/v2beta3/queue.proto index acf5a7f4b..f892852be 100644 --- a/google/cloud/tasks/v2beta3/queue.proto +++ b/google/cloud/tasks/v2beta3/queue.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/tasks/v2beta3/target.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2beta3;tasks"; option java_multiple_files = true; diff --git a/google/cloud/tasks/v2beta3/target.proto b/google/cloud/tasks/v2beta3/target.proto index 691cf97fd..efebfedf7 100644 --- a/google/cloud/tasks/v2beta3/target.proto +++ b/google/cloud/tasks/v2beta3/target.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.tasks.v2beta3; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2beta3;tasks"; option java_multiple_files = true; diff --git a/google/cloud/tasks/v2beta3/task.proto b/google/cloud/tasks/v2beta3/task.proto index 8a6525666..b491b5aaa 100644 --- a/google/cloud/tasks/v2beta3/task.proto +++ b/google/cloud/tasks/v2beta3/task.proto @@ -21,7 +21,6 @@ import "google/cloud/tasks/v2beta3/target.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2beta3;tasks"; option java_multiple_files = true; diff --git a/google/cloud/texttospeech/tts.yaml b/google/cloud/texttospeech/tts.yaml deleted file mode 100644 index 77251f5d2..000000000 --- a/google/cloud/texttospeech/tts.yaml +++ /dev/null @@ -1,21 +0,0 @@ -type: google.api.Service -config_version: 3 -name: texttospeech.googleapis.com -title: Cloud Text-to-Speech API - -apis: -- name: google.cloud.texttospeech.v1beta1.TextToSpeech - -documentation: - summary: 'Cloud Text-to-Speech API.' - overview: |- - # Introduction - - Google Cloud Text-to-Speech API provides speech synthesis as a service. - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/texttospeech/tts_v1.yaml b/google/cloud/texttospeech/tts_v1.yaml deleted file mode 100644 index b025a16ce..000000000 --- a/google/cloud/texttospeech/tts_v1.yaml +++ /dev/null @@ -1,23 +0,0 @@ -type: google.api.Service -config_version: 3 -name: texttospeech.googleapis.com -title: Cloud Text-to-Speech API - -apis: -- name: google.cloud.texttospeech.v1.TextToSpeech - -documentation: - summary: |- - Synthesizes natural-sounding speech by applying powerful neural network - models. - overview: |- - # Introduction - - Google Cloud Text-to-Speech API provides speech synthesis as a service. - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/texttospeech/tts_v1beta1.yaml b/google/cloud/texttospeech/tts_v1beta1.yaml deleted file mode 100644 index fbff3e849..000000000 --- a/google/cloud/texttospeech/tts_v1beta1.yaml +++ /dev/null @@ -1,23 +0,0 @@ -type: google.api.Service -config_version: 3 -name: texttospeech.googleapis.com -title: Cloud Text-to-Speech API - -apis: -- name: google.cloud.texttospeech.v1beta1.TextToSpeech - -documentation: - summary: |- - Synthesizes natural-sounding speech by applying powerful neural network - models. - overview: |- - # Introduction - - Google Cloud Text-to-Speech API provides speech synthesis as a service. - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/texttospeech/v1/BUILD.bazel b/google/cloud/texttospeech/v1/BUILD.bazel index cab41d661..65a57b4dd 100644 --- a/google/cloud/texttospeech/v1/BUILD.bazel +++ b/google/cloud/texttospeech/v1/BUILD.bazel @@ -71,6 +71,7 @@ java_gapic_library( test_deps = [ ":texttospeech_java_grpc", ], + transport = "grpc+rest", deps = [ ":texttospeech_java_proto", "//google/api:api_java_proto", @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "texttospeech_java_gapic_test_suite", test_classes = [ + "com.google.cloud.texttospeech.v1.TextToSpeechClientHttpJsonTest", "com.google.cloud.texttospeech.v1.TextToSpeechClientTest", ], runtime_deps = [":texttospeech_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-texttospeech-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":texttospeech_java_gapic", ":texttospeech_java_grpc", @@ -124,6 +128,7 @@ go_gapic_library( importpath = "cloud.google.com/go/texttospeech/apiv1;texttospeech", metadata = True, service_yaml = "texttospeech_v1.yaml", + transport = "grpc+rest", deps = [ ":texttospeech_go_proto", ], @@ -154,12 +159,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "texttospeech_py_gapic", srcs = [":texttospeech_proto"], grpc_service_config = "texttospeech_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "texttospeech_py_gapic_test", + srcs = [ + "texttospeech_py_gapic_pytest.py", + "texttospeech_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":texttospeech_py_gapic"], ) # Open Source Packages @@ -319,6 +336,7 @@ csharp_gapic_library( srcs = [":texttospeech_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "texttospeech_grpc_service_config.json", + service_yaml = "texttospeech_v1.yaml", deps = [ ":texttospeech_csharp_grpc", ":texttospeech_csharp_proto", diff --git a/google/cloud/texttospeech/v1/cloud_tts.proto b/google/cloud/texttospeech/v1/cloud_tts.proto index a10bfe60d..4c4ae7bd7 100644 --- a/google/cloud/texttospeech/v1/cloud_tts.proto +++ b/google/cloud/texttospeech/v1/cloud_tts.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -58,19 +58,6 @@ service TextToSpeech { } } -// The top-level message sent by the client for the `ListVoices` method. -message ListVoicesRequest { - // Optional. Recommended. - // [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If - // specified, the ListVoices call will only return voices that can be used to - // synthesize this language_code. E.g. when specifying `"en-NZ"`, you will get - // supported `"en-\*"` voices; when specifying `"no"`, you will get supported - // `"no-\*"` (Norwegian) and `"nb-\*"` (Norwegian Bokmal) voices; specifying - // `"zh"` will also get supported `"cmn-\*"` voices; specifying `"zh-hk"` will - // also get supported `"yue-\*"` voices. - string language_code = 1 [(google.api.field_behavior) = OPTIONAL]; -} - // Gender of the voice as described in // [SSML voice element](https://www.w3.org/TR/speech-synthesis11/#edef_voice). enum SsmlVoiceGender { @@ -119,6 +106,19 @@ enum AudioEncoding { ALAW = 6; } +// The top-level message sent by the client for the `ListVoices` method. +message ListVoicesRequest { + // Optional. Recommended. + // [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. + // If not specified, the API will return all supported voices. + // If specified, the ListVoices call will only return voices that can be used + // to synthesize this language_code. For example, if you specify `"en-NZ"`, + // all `"en-NZ"` voices will be returned. If you specify `"no"`, both + // `"no-\*"` (Norwegian) and `"nb-\*"` (Norwegian Bokmal) voices will be + // returned. + string language_code = 1 [(google.api.field_behavior) = OPTIONAL]; +} + // The message returned to the client by the `ListVoices` method. message ListVoicesResponse { // The list of voices. @@ -197,6 +197,11 @@ message VoiceSelectionParams { // voice of the appropriate gender is not available, the synthesizer should // substitute a voice with a different gender rather than failing the request. SsmlVoiceGender ssml_gender = 3; + + // The configuration for a custom voice. If [CustomVoiceParams.model] is set, + // the service will choose the custom voice matching the specified + // configuration. + CustomVoiceParams custom_voice = 4; } // Description of audio data to be synthesized. @@ -255,6 +260,37 @@ message AudioConfig { ]; } +// Description of the custom voice to be synthesized. +message CustomVoiceParams { + // The usage of the synthesized audio. You must report your honest and + // correct usage of the service as it's regulated by contract and will cause + // significant difference in billing. + enum ReportedUsage { + // Request with reported usage unspecified will be rejected. + REPORTED_USAGE_UNSPECIFIED = 0; + + // For scenarios where the synthesized audio is not downloadable and can + // only be used once. For example, real-time request in IVR system. + REALTIME = 1; + + // For scenarios where the synthesized audio is downloadable and can be + // reused. For example, the synthesized audio is downloaded, stored in + // customer service system and played repeatedly. + OFFLINE = 2; + } + + // Required. The name of the AutoML model that synthesizes the custom voice. + string model = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "automl.googleapis.com/Model" + } + ]; + + // Optional. The usage of the synthesized audio to be reported. + ReportedUsage reported_usage = 3 [(google.api.field_behavior) = OPTIONAL]; +} + // The message returned to the client by the `SynthesizeSpeech` method. message SynthesizeSpeechResponse { // The audio data bytes encoded as specified in the request, including the diff --git a/google/cloud/texttospeech/v1beta1/BUILD.bazel b/google/cloud/texttospeech/v1beta1/BUILD.bazel index 805fd5536..852f99baa 100644 --- a/google/cloud/texttospeech/v1beta1/BUILD.bazel +++ b/google/cloud/texttospeech/v1beta1/BUILD.bazel @@ -71,6 +71,7 @@ java_gapic_library( test_deps = [ ":texttospeech_java_grpc", ], + transport = "grpc+rest", deps = [ ":texttospeech_java_proto", "//google/api:api_java_proto", @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "texttospeech_java_gapic_test_suite", test_classes = [ + "com.google.cloud.texttospeech.v1beta1.TextToSpeechClientHttpJsonTest", "com.google.cloud.texttospeech.v1beta1.TextToSpeechClientTest", ], runtime_deps = [":texttospeech_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-texttospeech-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":texttospeech_java_gapic", ":texttospeech_java_grpc", @@ -124,6 +128,7 @@ go_gapic_library( importpath = "cloud.google.com/go/texttospeech/apiv1beta1;texttospeech", metadata = True, service_yaml = "texttospeech_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":texttospeech_go_proto", ], @@ -154,12 +159,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "texttospeech_py_gapic", srcs = [":texttospeech_proto"], grpc_service_config = "texttospeech_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "texttospeech_py_gapic_test", + srcs = [ + "texttospeech_py_gapic_pytest.py", + "texttospeech_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":texttospeech_py_gapic"], ) # Open Source Packages @@ -319,6 +336,7 @@ csharp_gapic_library( srcs = [":texttospeech_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "texttospeech_grpc_service_config.json", + service_yaml = "texttospeech_v1beta1.yaml", deps = [ ":texttospeech_csharp_grpc", ":texttospeech_csharp_proto", diff --git a/google/cloud/timeseriesinsights/v1/BUILD.bazel b/google/cloud/timeseriesinsights/v1/BUILD.bazel new file mode 100644 index 000000000..1f33d1635 --- /dev/null +++ b/google/cloud/timeseriesinsights/v1/BUILD.bazel @@ -0,0 +1,383 @@ +# 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 = "timeseriesinsights_proto", + srcs = [ + "timeseries_insights.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/rpc:status_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "timeseriesinsights_proto_with_info", + deps = [ + ":timeseriesinsights_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +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 = "timeseriesinsights_java_proto", + deps = [":timeseriesinsights_proto"], +) + +java_grpc_library( + name = "timeseriesinsights_java_grpc", + srcs = [":timeseriesinsights_proto"], + deps = [":timeseriesinsights_java_proto"], +) + +java_gapic_library( + name = "timeseriesinsights_java_gapic", + srcs = [":timeseriesinsights_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "timeseries_insights_grpc_service_config.json", + service_yaml = "timeseriesinsights_v1.yaml", + test_deps = [ + ":timeseriesinsights_java_grpc", + "//google/cloud/location:location_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":timeseriesinsights_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "timeseriesinsights_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.timeseriesinsights.v1.TimeseriesInsightsControllerClientHttpJsonTest", + "com.google.cloud.timeseriesinsights.v1.TimeseriesInsightsControllerClientTest", + ], + runtime_deps = [":timeseriesinsights_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-timeseriesinsights-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":timeseriesinsights_java_gapic", + ":timeseriesinsights_java_grpc", + ":timeseriesinsights_java_proto", + ":timeseriesinsights_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "timeseriesinsights_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/timeseriesinsights/v1", + protos = [":timeseriesinsights_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/rpc:status_go_proto", + ], +) + +go_gapic_library( + name = "timeseriesinsights_go_gapic", + srcs = [":timeseriesinsights_proto_with_info"], + grpc_service_config = "timeseries_insights_grpc_service_config.json", + importpath = "cloud.google.com/go/timeseriesinsights/apiv1;timeseriesinsights", + metadata = True, + service_yaml = "timeseriesinsights_v1.yaml", + transport = "grpc+rest", + deps = [ + ":timeseriesinsights_go_proto", + "//google/cloud/location:location_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +go_test( + name = "timeseriesinsights_go_gapic_test", + srcs = [":timeseriesinsights_go_gapic_srcjar_test"], + embed = [":timeseriesinsights_go_gapic"], + importpath = "cloud.google.com/go/timeseriesinsights/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-timeseriesinsights-v1-go", + deps = [ + ":timeseriesinsights_go_gapic", + ":timeseriesinsights_go_gapic_srcjar-metadata.srcjar", + ":timeseriesinsights_go_gapic_srcjar-test.srcjar", + ":timeseriesinsights_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "timeseriesinsights_py_gapic", + srcs = [":timeseriesinsights_proto"], + grpc_service_config = "timeseries_insights_grpc_service_config.json", + service_yaml = "timeseriesinsights_v1.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "timeseriesinsights_py_gapic_test", + srcs = [ + "timeseriesinsights_py_gapic_pytest.py", + "timeseriesinsights_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":timeseriesinsights_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "timeseriesinsights-v1-py", + deps = [ + ":timeseriesinsights_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "timeseriesinsights_php_proto", + deps = [":timeseriesinsights_proto"], +) + +php_grpc_library( + name = "timeseriesinsights_php_grpc", + srcs = [":timeseriesinsights_proto"], + deps = [":timeseriesinsights_php_proto"], +) + +php_gapic_library( + name = "timeseriesinsights_php_gapic", + srcs = [":timeseriesinsights_proto_with_info"], + grpc_service_config = "timeseries_insights_grpc_service_config.json", + service_yaml = "timeseriesinsights_v1.yaml", + deps = [ + ":timeseriesinsights_php_grpc", + ":timeseriesinsights_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-timeseriesinsights-v1-php", + deps = [ + ":timeseriesinsights_php_gapic", + ":timeseriesinsights_php_grpc", + ":timeseriesinsights_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "timeseriesinsights_nodejs_gapic", + package_name = "@google-cloud/timeseriesinsights", + src = ":timeseriesinsights_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "timeseries_insights_grpc_service_config.json", + package = "google.cloud.timeseriesinsights.v1", + service_yaml = "timeseriesinsights_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "timeseriesinsights-v1-nodejs", + deps = [ + ":timeseriesinsights_nodejs_gapic", + ":timeseriesinsights_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 = "timeseriesinsights_ruby_proto", + deps = [":timeseriesinsights_proto"], +) + +ruby_grpc_library( + name = "timeseriesinsights_ruby_grpc", + srcs = [":timeseriesinsights_proto"], + deps = [":timeseriesinsights_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "timeseriesinsights_ruby_gapic", + srcs = [":timeseriesinsights_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-timeseriesinsights-v1", + ], + grpc_service_config = "timeseries_insights_grpc_service_config.json", + service_yaml = "timeseriesinsights_v1.yaml", + deps = [ + ":timeseriesinsights_ruby_grpc", + ":timeseriesinsights_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-timeseriesinsights-v1-ruby", + deps = [ + ":timeseriesinsights_ruby_gapic", + ":timeseriesinsights_ruby_grpc", + ":timeseriesinsights_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 = "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", + service_yaml = "timeseriesinsights_v1.yaml", + 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++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "timeseriesinsights_cc_proto", + deps = [":timeseriesinsights_proto"], +) + +cc_grpc_library( + name = "timeseriesinsights_cc_grpc", + srcs = [":timeseriesinsights_proto"], + grpc_only = True, + deps = [":timeseriesinsights_cc_proto"], +) diff --git a/google/cloud/timeseriesinsights/v1/timeseries_insights.proto b/google/cloud/timeseriesinsights/v1/timeseries_insights.proto new file mode 100644 index 000000000..4c985d1c7 --- /dev/null +++ b/google/cloud/timeseriesinsights/v1/timeseries_insights.proto @@ -0,0 +1,911 @@ +// 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.cloud.timeseriesinsights.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/duration.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/genproto/googleapis/cloud/timeseriesinsights/v1;timeseriesinsights"; +option java_multiple_files = true; +option java_outer_classname = "TimeseriesInsightsProto"; +option java_package = "com.google.cloud.timeseriesinsights.v1"; + +service TimeseriesInsightsController { + option (google.api.default_host) = "timeseriesinsights.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists [DataSets][google.cloud.timeseriesinsights.v1.DataSet] under the + // project. + // + // The order of the results is unspecified but deterministic. Newly created + // [DataSets][google.cloud.timeseriesinsights.v1.DataSet] will not necessarily + // be added to the end of this list. + rpc ListDataSets(ListDataSetsRequest) returns (ListDataSetsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/datasets" + additional_bindings { get: "/v1/{parent=projects/*}/datasets" } + }; + option (google.api.method_signature) = "parent"; + } + + // Create a [DataSet][google.cloud.timeseriesinsights.v1.DataSet] from data + // stored on Cloud Storage. + // + // The data must stay immutable while we process the + // [DataSet][google.cloud.timeseriesinsights.v1.DataSet] creation; otherwise, + // undefined outcomes might result. For more information, see + // [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. + rpc CreateDataSet(CreateDataSetRequest) returns (DataSet) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/datasets" + body: "dataset" + additional_bindings { + post: "/v1/{parent=projects/*}/datasets" + body: "dataset" + } + }; + option (google.api.method_signature) = "parent,dataset"; + } + + // Delete a [DataSet][google.cloud.timeseriesinsights.v1.DataSet] from the + // system. + // + // **NOTE**: If the [DataSet][google.cloud.timeseriesinsights.v1.DataSet] is + // still being processed, it will be aborted and deleted. + rpc DeleteDataSet(DeleteDataSetRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/datasets/*}" + additional_bindings { delete: "/v1/{name=projects/*/datasets/*}" } + }; + option (google.api.method_signature) = "name"; + } + + // Append events to a `LOADED` + // [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. + rpc AppendEvents(AppendEventsRequest) returns (AppendEventsResponse) { + option (google.api.http) = { + post: "/v1/{dataset=projects/*/locations/*/datasets/*}:appendEvents" + body: "*" + additional_bindings { + post: "/v1/{dataset=projects/*/datasets/*}:appendEvents" + body: "*" + } + }; + option (google.api.method_signature) = "dataset,events"; + } + + // Execute a Timeseries Insights query over a loaded + // [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. + rpc QueryDataSet(QueryDataSetRequest) returns (QueryDataSetResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/datasets/*}:query" + body: "*" + additional_bindings { + post: "/v1/{name=projects/*/datasets/*}:query" + body: "*" + } + }; + } + + // Evaluate an explicit slice from a loaded + // [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. + rpc EvaluateSlice(EvaluateSliceRequest) returns (EvaluatedSlice) { + option (google.api.http) = { + post: "/v1/{dataset=projects/*/locations/*/datasets/*}:evaluateSlice" + body: "*" + additional_bindings { + post: "/v1/{dataset=projects/*/datasets/*}:evaluateSlice" + body: "*" + } + }; + } +} + +// Mapping of BigQuery columns to timestamp, group_id and dimensions. +message BigqueryMapping { + // The column which should be used as the event timestamps. If not specified + // 'Timestamp' is used by default. The column may have TIMESTAMP or INT64 + // type (the latter is interpreted as microseconds since the Unix epoch). + string timestamp_column = 1; + + // The column which should be used as the group ID (grouping events into + // sessions). If not specified 'GroupId' is used by default, if the input + // table does not have such a column, random unique group IDs are + // generated automatically (different group ID per input row). + string group_id_column = 2; + + // The list of columns that should be translated to dimensions. If empty, + // all columns are translated to dimensions. The timestamp and group_id + // columns should not be listed here again. Columns are expected to have + // primitive types (STRING, INT64, FLOAT64 or NUMERIC). + repeated string dimension_column = 3; +} + +// A data source consists of multiple [Event] stored on +// Cloud Storage. Each Event should be in JSON format, with one Event +// per line, also known as JSON Lines format. +message DataSource { + // Data source URI. + // + // 1) Google Cloud Storage files (JSON) are defined in the following form. + // `gs://bucket_name/object_name`. For more information on Cloud Storage URIs, + // please see https://cloud.google.com/storage/docs/reference-uris. + string uri = 1; + + // For BigQuery inputs defines the columns that should be used for dimensions + // (including time and group ID). + BigqueryMapping bq_mapping = 2; +} + +// A collection of data sources sent for processing. +message DataSet { + option (google.api.resource) = { + type: "timeseriesinsights.googleapis.com/Dataset" + pattern: "projects/{project}/datasets/{dataset}" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}" + }; + + // DataSet state. + enum State { + // Unspecified / undefined state. + STATE_UNSPECIFIED = 0; + + // Dataset is unknown to the system; we have never seen this dataset before + // or we have seen this dataset but have fully GC-ed it. + UNKNOWN = 1; + + // Dataset processing is pending. + PENDING = 2; + + // Dataset is loading. + LOADING = 3; + + // Dataset is loaded and can be queried. + LOADED = 4; + + // Dataset is unloading. + UNLOADING = 5; + + // Dataset is unloaded and is removed from the system. + UNLOADED = 6; + + // Dataset processing failed. + FAILED = 7; + } + + // The dataset name, which will be used for querying, status and unload + // requests. This must be unique within a project. + string name = 1; + + // [Data dimension + // names][google.cloud.timeseriesinsights.v1.EventDimension.name] allowed for + // this DataSet. + // + // If left empty, all dimension names are included. This field works as a + // filter to avoid regenerating the data. + repeated string data_names = 2; + + // Input data. + repeated DataSource data_sources = 3; + + // Dataset state in the system. + State state = 4; + + // Dataset processing status. + google.rpc.Status status = 5; + + // Periodically we discard dataset [Event] that have timestamps older than + // 'ttl'. Omitting this field or a zero value means no events are discarded. + google.protobuf.Duration ttl = 6; +} + +// Represents an event dimension. +message EventDimension { + // Dimension name. + // + // **NOTE**: EventDimension names must be composed of alphanumeric characters + // only, and are case insensitive. Unicode characters are *not* supported. The + // underscore '_' is also allowed. + string name = 1; + + // Dimension value. + // + // **NOTE**: All entries of the dimension `name` must have the same `value` + // type. + oneof value { + // String representation. + // + // **NOTE**: String values are case insensitive. Unicode characters are + // supported. + string string_val = 2; + + // Long representation. + int64 long_val = 3; + + // Bool representation. + bool bool_val = 4; + + // Double representation. + double double_val = 5; + } +} + +// Represents an entry in a data source. +// +// Each Event has: +// +// * A timestamp at which the event occurs. +// * One or multiple dimensions. +// * Optionally, a group ID that allows clients to group logically related +// events (for example, all events representing payments transactions done by +// a user in a day have the same group ID). If a group ID is not provided, an +// internal one will be generated based on the content and `eventTime`. +// +// **NOTE**: +// +// * Internally, we discretize time in equal-sized chunks and we assume an +// event has a 0 +// [TimeseriesPoint.value][google.cloud.timeseriesinsights.v1.TimeseriesPoint.value] +// in a chunk that does not contain any occurrences of an event in the input. +// * The number of Events with the same group ID should be limited. +// * Group ID *cannot* be queried. +// * Group ID does *not* correspond to a user ID or the like. If a user ID is of +// interest to be queried, use a user ID `dimension` instead. +message Event { + // Event dimensions. + repeated EventDimension dimensions = 1; + + // Event group ID. + // + // **NOTE**: JSON encoding should use a string to hold a 64-bit integer value, + // because a native JSON number holds only 53 binary bits for an integer. + int64 group_id = 2; + + // Event timestamp. + google.protobuf.Timestamp event_time = 3; +} + +// Appends events to an existing DataSet. +message AppendEventsRequest { + // Events to be appended. + // + // **NOTE**: + // + // 0. The [DataSet] must be shown in a `LOADED` state + // in the results of [list method][ListDataSet]; otherwise, all events from + // the append request will be dropped, and a `NOT_FOUND` status will be + // returned. + // 0. All events in a single request must have the same + // [groupId][google.cloud.timeseriesinsights.v1.Event.group_id] if set; + // otherwise, an `INVALID_ARGUMENT` status will be returned. + // 0. If [groupId][google.cloud.timeseriesinsights.v1.Event.group_id] is not + // set (or 0), there + // should be only 1 event; otherwise, an `INVALID_ARGUMENT` status will be + // returned. + // 0. The events must be newer than the current time minus + // [DataSet TTL][google.cloud.timeseriesinsights.v1.DataSet.ttl] or they + // will be dropped. + repeated Event events = 1; + + // Required. The DataSet to which we want to append to in the format of + // "projects/{project}/datasets/{dataset}" + string dataset = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "timeseriesinsights.googleapis.com/Dataset" + } + ]; +} + +// Response for an AppendEvents RPC. +message AppendEventsResponse { + // Dropped events; empty if all events are successfully added. + repeated Event dropped_events = 1; +} + +// Create a DataSet request. +message CreateDataSetRequest { + // Required. Client project name which will own this DataSet in the format of + // 'projects/{project}'. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Required. Data set to be loaded. + DataSet dataset = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Unload DataSet request from the serving system. +message DeleteDataSetRequest { + // Required. Data set name in the format of + // "projects/{project}/datasets/{dataset}" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "timeseriesinsights.googleapis.com/Dataset" + } + ]; +} + +// List the DataSets created by the current project. +message ListDataSetsRequest { + // Required. Project owning the DataSet in the format of "projects/{project}". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Number of results to return in the list. + int32 page_size = 2; + + // Token to provide to skip to a particular spot in the list. + string page_token = 3; +} + +// Created DataSets list response. +message ListDataSetsResponse { + // The list of created DataSets. + repeated DataSet datasets = 1; + + // Token to receive the next page of results. + string next_page_token = 2; +} + +// A categorical dimension fixed to a certain value. +message PinnedDimension { + // The name of the dimension for which we are fixing its value. + string name = 1; + + // Dimension value. + // + // **NOTE**: The `value` type must match that in the data with the same + // `dimension` as name. + oneof value { + // A string value. This can be used for + // [dimensions][google.cloud.timeseriesinsights.v1.EventDimension] which + // have their value field set to + // [string_val][google.cloud.timeseriesinsights.v1.EventDimension.string_val]. + string string_val = 2; + + // A bool value. This can be used for + // [dimensions][google.cloud.timeseriesinsights.v1.EventDimension] which + // have their value field set to + // [bool_val][google.cloud.timeseriesinsights.v1.EventDimension.bool_val]. + bool bool_val = 3; + } +} + +// Parameters that control the sensitivity and other options for the time series +// forecast. +message ForecastParams { + // A time period of a fixed interval. + enum Period { + // Unknown or simply not given. + PERIOD_UNSPECIFIED = 0; + + // 1 hour + HOURLY = 5; + + // 24 hours + DAILY = 1; + + // 7 days + WEEKLY = 2; + + // 30 days + MONTHLY = 3; + + // 365 days + YEARLY = 4; + } + + // Optional. Penalize variations between the actual and forecasted values + // smaller than this. See the [anomalyScore](EvaluatedSlice.anomaly_score) + // formula for details on how this parameter impacts the score. + // + // Intuitively, anomaly scores summarize how statistically significant the + // change between the actual and forecasted value is compared with what we + // expect the change to be (see + // [expectedDeviation](EvaluatedSlice.expected_deviation)). However, in + // practice, depending on the application, changes smaller than certain + // absolute values, while statistically significant, may not be important. + // + // This parameter allows us to penalize such low absolute value changes. + // + // Must be in the (0.0, inf) range. + // + // If unspecified, it defaults to 0.000001. + optional double noise_threshold = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifying any known seasonality/periodicity in the time series + // for the slices we will analyze can improve the quality of the results. + // + // If unsure, simply leave it unspecified by not setting a value for this + // field. + // + // If your time series has multiple seasonal patterns, then set it to the most + // granular one (e.g. if it has daily and weekly patterns, set this to DAILY). + Period seasonality_hint = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The length of the returned [forecasted + // timeseries][EvaluatedSlice.forecast]. + // + // This duration is currently capped at 100 x + // [granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity]. + // + // Example: If the detection point is set to "2020-12-27T00:00:00Z", the + // [granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity] + // to "3600s" and the horizon_duration to "10800s", then we will generate 3 + // time series points (from "2020-12-27T01:00:00Z" to "2020-12-27T04:00:00Z"), + // for which we will return their forecasted values. + // + // **NOTE**: The horizon time is only used for forecasting not for anormaly + // detection. To detect anomalies for multiple points of time, + // simply send multiple queries with those as + // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time]. + google.protobuf.Duration horizon_duration = 13 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A point in a time series. +message TimeseriesPoint { + // The timestamp of this point. + google.protobuf.Timestamp time = 1; + + // The value for this point. + // + // It is computed by aggregating all events in the associated slice that are + // in the [time, time + granularity] range (see + // [granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity]) + // using the specified + // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric]. + optional double value = 2; +} + +// A time series. +message Timeseries { + // The points in this time series, ordered by their timestamp. + repeated TimeseriesPoint point = 1; +} + +// Forecast result for a given slice. +message EvaluatedSlice { + // Values for all categorical dimensions that uniquely identify this slice. + repeated PinnedDimension dimensions = 1; + + // The actual value at the detection time (see + // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time]). + // + // **NOTE**: This value can be an estimate, so it should not be used as a + // source of truth. + optional double detection_point_actual = 11; + + // The expected value at the detection time, which is obtained by forecasting + // on the historical time series. + optional double detection_point_forecast = 12; + + // How much our forecast model expects the detection point actual will + // deviate from its forecasted value based on how well it fit the input time + // series. + // + // In general, we expect the `detectionPointActual` to + // be in the `[detectionPointForecast - expectedDeviation, + // detectionPointForecast + expectedDeviation]` range. The more the actual + // value is outside this range, the more statistically significant the + // anomaly is. + // + // The expected deviation is always positive. + optional double expected_deviation = 16; + + // Summarizes how significant the change between the actual and forecasted + // detection points are compared with the historical patterns observed on the + // [history][google.cloud.timeseriesinsights.v1.EvaluatedSlice.history] time + // series. + // + // Defined as `|a - f| / (e + nt)`, where: + // + // - `a` is the + // [detectionPointActual][google.cloud.timeseriesinsights.v1.EvaluatedSlice.detection_point_actual]. + // - `f` is the + // [detectionPointForecast][google.cloud.timeseriesinsights.v1.EvaluatedSlice.detection_point_forecast]. + // - `e` is the + // [expectedDeviation][google.cloud.timeseriesinsights.v1.EvaluatedSlice.expected_deviation]. + // - `nt` is the + // [noiseThreshold][google.cloud.timeseriesinsights.v1.ForecastParams.noise_threshold]. + // + // Anomaly scores between different requests and data sets are comparable. As + // a guideline, the risk of a slice being an anomaly based on the anomaly + // score is: + // + // - **Very High** if anomaly_score > 5. + // - **High** if the anomaly_score is in the [2, 5] range. + // - **Medium** if the anomaly_score is in the [1, 2) range. + // - **Low** if the anomaly_score is < 1. + // + // If there were issues evaluating this slice, then the anomaly score will be + // set to -1.0 and the + // [status][google.cloud.timeseriesinsights.v1.EvaluatedSlice.status] field + // will contain details on what went wrong. + optional double anomaly_score = 17; + + // The actual values in the `[` + // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] + // `-` + // [forecastHistory][google.cloud.timeseriesinsights.v1.TimeseriesParams.forecast_history]`,` + // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] + // `]` time range. + // + // **NOTE**: This field is only populated + // https://old.reddit.com/r/nba?utm_source=reddit&utm_medium=usertext&utm_name=nba&utm_content=t5_2qo4sif + // [returnTimeseries][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.return_timeseries] + // is true. + Timeseries history = 5; + + // The forecasted values in the `[` + // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] + // `+` + // [granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity]`,` + // [forecastParams.horizonTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.forecast_params] + // `]` time range. + // + // **NOTE**: This field is only populated if + // [returnTimeseries][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.return_timeseries] + // is true. + Timeseries forecast = 10; + + // Evaluation status. Contains an error message if the anomaly_score is < 0. + // + // Possible error messages: + // - "Time series too sparse": The returned time series for this slice did not + // contain enough data points (we require a minimum of 10). + // - "Not enough recent time series points": The time series contains the + // minimum of 10 points, but there are not enough close in time to the + // detection point. + // - "Missing detection point data": There were not events to be aggregated + // within the [detectionTime + granularity] time interval, so we don't have an + // actual value with which we can compare our prediction. + // - "Data retrieval error": We failed to retrieve the time series data for + // this slice and could not evaluate it successfully. Should be a transient + // error. + // - "Internal server error": Internal unexpected error. + google.rpc.Status status = 18; +} + +// Parameters that control how we slice the data set and, optionally, filter +// slices that have some specific values on some dimensions (pinned dimensions). +message SlicingParams { + // Required. Dimensions over which we will group the events in slices. The + // names specified here come from the + // [EventDimension.name][google.cloud.timeseriesinsights.v1.EventDimension.name] + // field. At least one dimension name must be specified. All dimension names + // that do not exist in the queried DataSet will be ignored. + // + // Currently only dimensions that hold string values can be specified here. + repeated string dimension_names = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. We will only analyze slices for which + // [ForecastSlice.dimensions][ForecastSlice.dimensions] contain all of the + // following pinned dimensions. A query with a pinned dimension `{ name: "d3" + // stringVal: "v3" }` will only analyze events which contain the dimension `{ + // name: "d3" stringVal: "v3" }`. + // The + // [pinnedDimensions][google.cloud.timeseriesinsights.v1.SlicingParams.pinned_dimensions] + // and + // [dimensionNames][google.cloud.timeseriesinsights.v1.SlicingParams.dimension_names] + // fields can **not** share the same dimension names. + // + // Example a valid specification: + // + // ```json + // { + // dimensionNames: ["d1", "d2"], + // pinnedDimensions: [ + // { name: "d3" stringVal: "v3" }, + // { name: "d4" stringVal: "v4" } + // ] + // } + // ``` + // + // In the previous example we will slice the data set by dimensions "d1", + // "d2", "d3" and "d4", but we will only analyze slices for which "d3=v3" and + // "d4=v4". + // + // The following example is **invalid** as "d2" is present in both + // dimensionNames and pinnedDimensions: + // + // ```json + // { + // dimensionNames: ["d1", "d2"], + // pinnedDimensions: [ + // { name: "d2" stringVal: "v2" }, + // { name: "d4" stringVal: "v4" } + // ] + // } + // ``` + repeated PinnedDimension pinned_dimensions = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Parameters that control how we construct the time series for each slice. +message TimeseriesParams { + // Methods by which we can aggregate multiple events by a given + // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric]. + enum AggregationMethod { + // Unspecified. + AGGREGATION_METHOD_UNSPECIFIED = 0; + + // Aggregate multiple events by summing up the values found in the + // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] + // dimension. + SUM = 1; + + // Aggregate multiple events by averaging out the values found in the + // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] + // dimension. + AVERAGE = 2; + } + + // Required. How long should we go in the past when fetching the timeline used + // for forecasting each slice. + // + // This is used in combination with the + // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] + // parameter. The time series we construct will have the following time range: + // [detectionTime - forecastHistory, detectionTime + granularity]. + // + // The forecast history might be rounded up, so that a multiple of + // `granularity` is used to process the query. + // + // **NOTE**: Make sure there are enough events in the data set to cover the + // time interval: if the `detectionTime` is set to T, the data set should + // have enough events from "T - forecastHistory" to allow forecasting and + // anomaly detection. If too few events are found in this range, no anomaly + // will be reported. Users can use [EvaluateSlice][EvaluateSlice] to + // check the (approximate) count of events for each point of time in the + // range, by not setting `metric`. + google.protobuf.Duration forecast_history = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The time granularity of the time series (on the x-axis). Each + // time series point starting at time T will aggregate all events for a + // particular slice in [T, T + granularity) time windows. + // + // **NOTE**: The aggregation is decided based on the + // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] + // parameter. + // + // This granularity defines the query-time aggregation windows and is not + // necessarily related to any event time granularity in the raw data (though + // we do recommend that the query-time granularity is not finer than the + // ingestion-time one). + // + // Currently, the minimal supported granularity is 10 seconds. + google.protobuf.Duration granularity = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Denotes the + // [name][google.cloud.timeseriesinsights.v1.EventDimension.name] of a + // numerical dimension that will have its values aggregated to compute the + // y-axis of the time series. + // + // The aggregation method must also be specified by setting the + // [metricAggregationMethod][TimeseriesParams.metricAggregationMethod] field. + // + // **Note**: Currently, if the aggregation method is unspecified, we will + // default to SUM for backwards compatibility reasons, but new implementations + // should set the + // [metricAggregationMethod][TimeseriesParams.metricAggregationMethod] + // explicitly. + // + // If the metric is unspecified, we will use the number of events that each + // time series point contains as the point value. + // + // Example: Let's assume we have the following three events in our data set: + // ```json + // { + // eventTime: "2020-12-27T00:00:00Z", + // dimensions: [ + // { name: "d1" stringVal: "v1" }, + // { name: "d2" stringVal: "v2" } + // { name: "m1" longVal: 100 } + // { name: "m2" longVal: 11 } + // ] + // }, + // { + // eventTime: "2020-12-27T00:10:00Z", + // dimensions: [ + // { name: "d1" stringVal: "v1" }, + // { name: "d2" stringVal: "v2" } + // { name: "m1" longVal: 200 } + // { name: "m2" longVal: 22 } + // ] + // }, + // { + // eventTime: "2020-12-27T00:20:00Z", + // dimensions: [ + // { name: "d1" stringVal: "v1" }, + // { name: "d2" stringVal: "v2" } + // { name: "m1" longVal: 300 } + // { name: "m2" longVal: 33 } + // ] + // } + // ``` + // + // These events are all within the same hour, spaced 10 minutes between each + // of them. Assuming our + // [QueryDataSetRequest][google.cloud.timeseriesinsights.v1.QueryDataSetRequest] + // had set + // [slicingParams.dimensionNames][google.cloud.timeseriesinsights.v1.SlicingParams.dimension_names] + // to ["d1", "d2"] and + // [timeseries_params.granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity] + // to "3600s", then all the previous events will be aggregated into the same + // [timeseries point][google.cloud.timeseriesinsights.v1.TimeseriesPoint]. + // + // The time series point which they are all part of will have the + // [time][google.cloud.timeseriesinsights.v1.TimeseriesPoint.time] set to + // "2020-12-27T00:00:00Z" and the + // [value][google.cloud.timeseriesinsights.v1.TimeseriesPoint.value] populated + // based on this metric field: + // + // - If the metric is set to "m1" and metric_aggregation_method to SUM, then + // the value of the point will be 600. + // - If the metric is set to "m2" and metric_aggregation_method to SUM, then + // the value of the point will be 66. + // - If the metric is set to "m1" and metric_aggregation_method to AVERAGE, + // then the value of the point will be 200. + // - If the metric is set to "m2" and metric_aggregation_method to AVERAGE, + // then the value of the point will be 22. + // - If the metric field is "" or unspecified, then the value of the point + // will be 3, as we will simply count the events. + optional string metric = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Together with the + // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] field, + // specifies how we will aggregate multiple events to obtain the value of a + // time series point. See the + // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] + // documentation for more details. + // + // If the metric is not specified or "", then this field will be ignored. + AggregationMethod metric_aggregation_method = 5 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for performing a query against a loaded DataSet. +message QueryDataSetRequest { + // Required. Loaded DataSet to be queried in the format of + // "projects/{project}/datasets/{dataset}" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "timeseriesinsights.googleapis.com/Dataset" + } + ]; + + // Required. This is the point in time which we want to probe for anomalies. + // + // The corresponding + // [TimeseriesPoint][google.cloud.timeseriesinsights.v1.TimeseriesPoint] is + // referred to as the detection point. + // + // **NOTE**: As with any other time series point, the value is given by + // aggregating all events in the slice that are in the + // [detectionTime, detectionTime + granularity) time interval, where + // the granularity is specified in the + // [timeseriesParams.granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity] + // field. + google.protobuf.Timestamp detection_time = 11 + [(google.api.field_behavior) = REQUIRED]; + + // How many slices are returned in + // [QueryDataSetResponse.slices][google.cloud.timeseriesinsights.v1.QueryDataSetResponse.slices]. + // + // The returned slices are tentatively the ones with the highest [anomaly + // scores][EvaluatedSlice.anomaly_score] in the data set that match the query, + // but it is not guaranteed. + // + // Reducing this number will improve query performance, both in terms of + // latency and resource usage. + // + // Defaults to 50. + optional int32 num_returned_slices = 13; + + // Parameters controlling how we will split the data set into the slices that + // we will analyze. + SlicingParams slicing_params = 9; + + // Parameters controlling how we will build the time series used to predict + // the + // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] + // value for each slice. + TimeseriesParams timeseries_params = 10; + + // Parameters that control the time series forecasting models, such as the + // sensitivity of the anomaly detection. + ForecastParams forecast_params = 5; + + // If specified, we will return the actual and forecasted time for all + // returned slices. + // + // The time series are returned in the + // [EvaluatedSlice.history][google.cloud.timeseriesinsights.v1.EvaluatedSlice.history] + // and + // [EvaluatedSlice.forecast][google.cloud.timeseriesinsights.v1.EvaluatedSlice.forecast] + // fields. + bool return_timeseries = 8; +} + +// Response for a query executed by the system. +message QueryDataSetResponse { + // Loaded DataSet that was queried. + string name = 1; + + // Slices sorted in descending order by their + // [anomalyScore][google.cloud.timeseriesinsights.v1.EvaluatedSlice.anomaly_score]. + // + // At most + // [numReturnedSlices][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.num_returned_slices] + // slices are present in this field. + repeated EvaluatedSlice slices = 3; +} + +// Request for evaluateSlice. +message EvaluateSliceRequest { + // Required. Loaded DataSet to be queried in the format of + // "projects/{project}/datasets/{dataset}" + string dataset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "timeseriesinsights.googleapis.com/Dataset" + } + ]; + + // Required. Dimensions with pinned values that specify the slice for which we + // will fetch the time series. + repeated PinnedDimension pinned_dimensions = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. This is the point in time which we want to probe for anomalies. + // + // See documentation for + // [QueryDataSetRequest.detectionPoint][QueryDataSetRequest.detection_point]. + google.protobuf.Timestamp detection_time = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Parameters controlling how we will build the time series used to predict + // the + // [detectionTime][google.cloud.timeseriesinsights.v1.EvaluateSliceRequest.detection_time] + // value for this slice. + TimeseriesParams timeseries_params = 4; + + // Parameters that control the time series forecasting models, such as the + // sensitivity of the anomaly detection. + ForecastParams forecast_params = 5; +} diff --git a/google/cloud/timeseriesinsights/v1/timeseries_insights_grpc_service_config.json b/google/cloud/timeseriesinsights/v1/timeseries_insights_grpc_service_config.json new file mode 100644 index 000000000..c7c6a4f53 --- /dev/null +++ b/google/cloud/timeseriesinsights/v1/timeseries_insights_grpc_service_config.json @@ -0,0 +1,25 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController", "method": "ListDataSets" }, + { "service": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController", "method": "QueryDataSet" }, + { "service": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController", "method": "EvaluateSlice" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController", "method": "CreateDataSet" }, + { "service": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController", "method": "DeleteDataSet" }, + { "service": "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController", "method": "AppendEvents" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/timeseriesinsights/v1/timeseriesinsights_v1.yaml b/google/cloud/timeseriesinsights/v1/timeseriesinsights_v1.yaml new file mode 100644 index 000000000..5df5d9999 --- /dev/null +++ b/google/cloud/timeseriesinsights/v1/timeseriesinsights_v1.yaml @@ -0,0 +1,49 @@ +type: google.api.Service +config_version: 3 +name: timeseriesinsights.googleapis.com +title: Timeseries Insights API + +apis: +- name: google.cloud.location.Locations +- name: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController + +documentation: + summary: |- + Provides a Timeseries Insights service which operates over time series + data. Users can perform time series spike, trend, and anomaly detection. + With a straightforward API and easy to understand results, the service + makes it simple to gather insights from large amounts of time series data + (e.g. monitoring datasets) and integrate these insights in their + applications. + 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. + +backend: + rules: + - selector: google.cloud.location.Locations.GetLocation + deadline: 10.0 + - selector: google.cloud.location.Locations.ListLocations + deadline: 10.0 + - selector: 'google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.*' + deadline: 10.0 + - selector: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.QueryDataSet + deadline: 300.0 + +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.timeseriesinsights.v1.TimeseriesInsightsController.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/tpu/v1/BUILD.bazel b/google/cloud/tpu/v1/BUILD.bazel index e112a5a95..60d084067 100644 --- a/google/cloud/tpu/v1/BUILD.bazel +++ b/google/cloud/tpu/v1/BUILD.bazel @@ -87,6 +87,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-tpu-v1-java", + include_samples = True, deps = [ ":tpu_java_gapic", ":tpu_java_grpc", @@ -157,12 +158,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "tpu_py_gapic", srcs = [":tpu_proto"], grpc_service_config = "tpu_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "tpu_py_gapic_test", + srcs = [ + "tpu_py_gapic_pytest.py", + "tpu_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":tpu_py_gapic"], ) # Open Source Packages @@ -322,6 +335,7 @@ csharp_gapic_library( srcs = [":tpu_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "tpu_grpc_service_config.json", + service_yaml = "tpu_v1.yaml", deps = [ ":tpu_csharp_grpc", ":tpu_csharp_proto", diff --git a/google/cloud/tpu/v2alpha1/BUILD.bazel b/google/cloud/tpu/v2alpha1/BUILD.bazel index 9ae3af2e7..d23e8b696 100644 --- a/google/cloud/tpu/v2alpha1/BUILD.bazel +++ b/google/cloud/tpu/v2alpha1/BUILD.bazel @@ -91,6 +91,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-tpu-v2alpha1-java", + include_samples = True, deps = [ ":tpu_java_gapic", ":tpu_java_grpc", @@ -161,12 +162,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "tpu_py_gapic", srcs = [":tpu_proto"], grpc_service_config = "tpu_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "tpu_py_gapic_test", + srcs = [ + "tpu_py_gapic_pytest.py", + "tpu_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":tpu_py_gapic"], ) # Open Source Packages @@ -320,6 +333,7 @@ csharp_gapic_library( srcs = [":tpu_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "tpu_grpc_service_config.json", + service_yaml = "tpu.yaml", deps = [ ":tpu_csharp_grpc", ":tpu_csharp_proto", diff --git a/google/cloud/tpu/v2alpha1/cloud_tpu.proto b/google/cloud/tpu/v2alpha1/cloud_tpu.proto index d805128fc..612e1c4f5 100644 --- a/google/cloud/tpu/v2alpha1/cloud_tpu.proto +++ b/google/cloud/tpu/v2alpha1/cloud_tpu.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -448,6 +448,9 @@ message Node { // Output only. The Symptoms that have occurred to the TPU Node. repeated Symptom symptoms = 39 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Shielded Instance options. + ShieldedInstanceConfig shielded_instance_config = 45; } // Request for [ListNodes][google.cloud.tpu.v2alpha1.Tpu.ListNodes]. @@ -780,3 +783,9 @@ message GetGuestAttributesResponse { // The guest attributes for the TPU workers. repeated GuestAttributes guest_attributes = 1; } + +// A set of Shielded Instance options. +message ShieldedInstanceConfig { + // Defines whether the instance has Secure Boot enabled. + bool enable_secure_boot = 1; +} \ No newline at end of file diff --git a/google/cloud/translate/v3/BUILD.bazel b/google/cloud/translate/v3/BUILD.bazel index b499296f4..ef0b22293 100644 --- a/google/cloud/translate/v3/BUILD.bazel +++ b/google/cloud/translate/v3/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( ":translation_java_grpc", "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":translation_java_proto", "//google/api:api_java_proto", @@ -87,6 +88,7 @@ java_gapic_library( java_gapic_test( name = "translation_java_gapic_test_suite", test_classes = [ + "com.google.cloud.translate.v3.TranslationServiceClientHttpJsonTest", "com.google.cloud.translate.v3.TranslationServiceClientTest", ], runtime_deps = [":translation_java_gapic_test"], @@ -95,6 +97,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-translation-v3-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":translation_java_gapic", ":translation_java_grpc", @@ -136,6 +140,7 @@ go_gapic_library( importpath = "cloud.google.com/go/translate/apiv3;translate", metadata = True, service_yaml = "translate_v3.yaml", + transport = "grpc+rest", deps = [ ":translation_go_proto", "//google/cloud/location:location_go_proto", @@ -170,6 +175,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -177,6 +183,17 @@ py_gapic_library( srcs = [":translation_proto"], grpc_service_config = "translate_grpc_service_config.json", opt_args = ["python-gapic-name=translate"], + transport = "grpc", +) + +py_test( + name = "translation_py_gapic_test", + srcs = [ + "translation_py_gapic_pytest.py", + "translation_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":translation_py_gapic"], ) # Open Source Packages @@ -336,6 +353,7 @@ csharp_gapic_library( srcs = [":translation_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "translate_grpc_service_config.json", + service_yaml = "translate_v3.yaml", deps = [ ":translation_csharp_grpc", ":translation_csharp_proto", diff --git a/google/cloud/translate/v3/translation_service.proto b/google/cloud/translate/v3/translation_service.proto index 9f7702488..4ea17dadd 100644 --- a/google/cloud/translate/v3/translation_service.proto +++ b/google/cloud/translate/v3/translation_service.proto @@ -21,9 +21,7 @@ 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/rpc/status.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Translate.V3"; diff --git a/google/cloud/translate/v3beta1/BUILD.bazel b/google/cloud/translate/v3beta1/BUILD.bazel index e46a2d103..a141fcfe8 100644 --- a/google/cloud/translate/v3beta1/BUILD.bazel +++ b/google/cloud/translate/v3beta1/BUILD.bazel @@ -75,6 +75,7 @@ java_gapic_library( ":translation_java_grpc", "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":translation_java_proto", "//google/api:api_java_proto", @@ -86,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "translation_java_gapic_test_suite", test_classes = [ + "com.google.cloud.translate.v3beta1.TranslationServiceClientHttpJsonTest", "com.google.cloud.translate.v3beta1.TranslationServiceClientTest", ], runtime_deps = [":translation_java_gapic_test"], @@ -94,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-translation-v3beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":translation_java_gapic", ":translation_java_grpc", @@ -135,6 +139,7 @@ go_gapic_library( importpath = "cloud.google.com/go/translate/apiv3beta1;translate", metadata = True, service_yaml = "translate_v3beta1.yaml", + transport = "grpc+rest", deps = [ ":translation_go_proto", "//google/cloud/location:location_go_proto", @@ -169,6 +174,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -176,6 +182,17 @@ py_gapic_library( srcs = [":translation_proto"], grpc_service_config = "translate_grpc_service_config.json", opt_args = ["python-gapic-name=translate"], + transport = "grpc", +) + +py_test( + name = "translation_py_gapic_test", + srcs = [ + "translation_py_gapic_pytest.py", + "translation_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":translation_py_gapic"], ) # Open Source Packages @@ -327,6 +344,7 @@ csharp_gapic_library( srcs = [":translation_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "translate_grpc_service_config.json", + service_yaml = "translate_v3beta1.yaml", deps = [ ":translation_csharp_grpc", ":translation_csharp_proto", diff --git a/google/cloud/translate/v3beta1/translation_service.proto b/google/cloud/translate/v3beta1/translation_service.proto index 362d3ef33..05ad079fd 100644 --- a/google/cloud/translate/v3beta1/translation_service.proto +++ b/google/cloud/translate/v3beta1/translation_service.proto @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Translate.V3Beta1"; diff --git a/google/cloud/video/livestream/BUILD.bazel b/google/cloud/video/livestream/BUILD.bazel new file mode 100644 index 000000000..b462ba189 --- /dev/null +++ b/google/cloud/video/livestream/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-video-live_stream. + +# 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 livestream. +# 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 = "livestream_ruby_wrapper", + srcs = ["//google/cloud/video/livestream/v1:livestream_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-video-live_stream", + "ruby-cloud-wrapper-of=v1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/livestream/", + "ruby-cloud-api-id=livestream.googleapis.com", + "ruby-cloud-api-shortname=livestream", + ], + ruby_cloud_description = "The Live Stream API transcodes mezzanine live signals into direct-to-consumer streaming formats, including Dynamic Adaptive Streaming over HTTP (DASH/MPEG-DASH), and HTTP Live Streaming (HLS), for multiple device platforms.", + ruby_cloud_title = "Live Stream", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-video-livestream-ruby", + deps = [ + ":livestream_ruby_wrapper", + ], +) diff --git a/google/cloud/video/livestream/v1/BUILD.bazel b/google/cloud/video/livestream/v1/BUILD.bazel index bcb88ad01..d54d33b1a 100644 --- a/google/cloud/video/livestream/v1/BUILD.bazel +++ b/google/cloud/video/livestream/v1/BUILD.bazel @@ -79,6 +79,7 @@ java_gapic_library( test_deps = [ ":livestream_java_grpc", ], + transport = "grpc+rest", deps = [ ":livestream_java_proto", "//google/api:api_java_proto", @@ -88,6 +89,7 @@ java_gapic_library( java_gapic_test( name = "livestream_java_gapic_test_suite", test_classes = [ + "com.google.cloud.video.livestream.v1.LivestreamServiceClientHttpJsonTest", "com.google.cloud.video.livestream.v1.LivestreamServiceClientTest", ], runtime_deps = [":livestream_java_gapic_test"], @@ -96,6 +98,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-video-livestream-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":livestream_java_gapic", ":livestream_java_grpc", @@ -134,6 +138,7 @@ go_gapic_library( importpath = "cloud.google.com/go/video/livestream/apiv1;livestream", metadata = True, service_yaml = "livestream_v1.yaml", + transport = "grpc+rest", deps = [ ":livestream_go_proto", "//google/longrunning:longrunning_go_proto", @@ -168,6 +173,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -179,6 +185,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud.video", "python-gapic-name=live_stream", ], + transport = "grpc", +) + +py_test( + name = "livestream_py_gapic_test", + srcs = [ + "livestream_py_gapic_pytest.py", + "livestream_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":livestream_py_gapic"], ) # Open Source Packages @@ -285,8 +302,15 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "livestream_ruby_gapic", srcs = [":livestream_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-video-livestream-v1"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=livestream.googleapis.com", + "ruby-cloud-api-shortname=livestream", + "ruby-cloud-gem-name=google-cloud-video-live_stream-v1", + "ruby-cloud-product-url=https://cloud.google.com/livestream/", + ], grpc_service_config = "livestream_grpc_service_config.json", + ruby_cloud_description = "The Live Stream API transcodes mezzanine live signals into direct-to-consumer streaming formats, including Dynamic Adaptive Streaming over HTTP (DASH/MPEG-DASH), and HTTP Live Streaming (HLS), for multiple device platforms.", + ruby_cloud_title = "Live Stream V1", deps = [ ":livestream_ruby_grpc", ":livestream_ruby_proto", @@ -330,6 +354,7 @@ csharp_gapic_library( srcs = [":livestream_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "livestream_grpc_service_config.json", + service_yaml = "livestream_v1.yaml", deps = [ ":livestream_csharp_grpc", ":livestream_csharp_proto", @@ -349,4 +374,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "livestream_cc_proto", + deps = [":livestream_proto"], +) + +cc_grpc_library( + name = "livestream_cc_grpc", + srcs = [":livestream_proto"], + grpc_only = True, + deps = [":livestream_cc_proto"], +) diff --git a/google/cloud/video/livestream/v1/outputs.proto b/google/cloud/video/livestream/v1/outputs.proto index d54fa653f..90ab85b4f 100644 --- a/google/cloud/video/livestream/v1/outputs.proto +++ b/google/cloud/video/livestream/v1/outputs.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.video.livestream.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; @@ -106,7 +105,7 @@ message Manifest { // Maximum number of segments that this manifest holds. Once the manifest // reaches this maximum number of segments, whenever a new segment is added to // the manifest, the oldest segment will be removed from the manifest. - // The minimum value is 1 and the default value is 5. + // The minimum value is 3 and the default value is 5. int32 max_segment_count = 4; // How long to keep a segment on the output Google Cloud Storage bucket after diff --git a/google/cloud/video/livestream/v1/resources.proto b/google/cloud/video/livestream/v1/resources.proto index 40407465f..b9159ec97 100644 --- a/google/cloud/video/livestream/v1/resources.proto +++ b/google/cloud/video/livestream/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.video.livestream.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/video/livestream/v1/outputs.proto"; @@ -143,8 +142,7 @@ message Channel { // specified output location. STREAMING = 1; - // Channel is waiting for the input stream through the input. Live streams - // do not start yet. + // Channel is waiting for the input stream through the input. AWAITING_INPUT = 2; // Channel is running, but has trouble publishing the live streams onto the @@ -154,6 +152,7 @@ message Channel { // Channel is generating live streams with no input stream. Live streams are // filled out with black screen, while input stream is missing. + // Not supported yet. STREAMING_NO_INPUT = 5; // Channel is stopped, finishing live streams. @@ -366,6 +365,9 @@ message Event { // Event has been created but not scheduled yet. PENDING = 5; + + // Event was stopped before running for its full duration. + STOPPED = 6; } // The resource name of the event, in the form of: diff --git a/google/cloud/video/livestream/v1/service.proto b/google/cloud/video/livestream/v1/service.proto index c2c6f8797..8ef65d808 100644 --- a/google/cloud/video/livestream/v1/service.proto +++ b/google/cloud/video/livestream/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/video/stitcher/BUILD.bazel b/google/cloud/video/stitcher/BUILD.bazel new file mode 100644 index 000000000..e5f3d6188 --- /dev/null +++ b/google/cloud/video/stitcher/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-video-stitcher. + +# 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 videostitcher. +# 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 = "stitcher_ruby_wrapper", + srcs = ["//google/cloud/video/stitcher/v1:stitcher_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-video-stitcher", + "ruby-cloud-wrapper-of=v1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/video-stitcher/", + "ruby-cloud-api-id=videostitcher.googleapis.com", + "ruby-cloud-api-shortname=videostitcher", + ], + ruby_cloud_description = "The Video Stitcher API allows you to manipulate video content to dynamically insert ads prior to delivery to client devices. Using the Video Stitcher API, you can monetize your video-on-demand (VOD) and livestreaming videos by inserting ads as described by metadata stored on ad servers.", + ruby_cloud_title = "Video Stitcher", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-video-stitcher-ruby", + deps = [ + ":stitcher_ruby_wrapper", + ], +) diff --git a/google/cloud/video/stitcher/v1/BUILD.bazel b/google/cloud/video/stitcher/v1/BUILD.bazel new file mode 100644 index 000000000..99669a17a --- /dev/null +++ b/google/cloud/video/stitcher/v1/BUILD.bazel @@ -0,0 +1,383 @@ +# 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 = "stitcher_proto", + srcs = [ + "ad_tag_details.proto", + "cdn_keys.proto", + "companions.proto", + "events.proto", + "sessions.proto", + "slates.proto", + "stitch_details.proto", + "video_stitcher_service.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", + ], +) + +proto_library_with_info( + name = "stitcher_proto_with_info", + deps = [ + ":stitcher_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "stitcher_java_proto", + deps = [":stitcher_proto"], +) + +java_grpc_library( + name = "stitcher_java_grpc", + srcs = [":stitcher_proto"], + deps = [":stitcher_java_proto"], +) + +java_gapic_library( + name = "stitcher_java_gapic", + srcs = [":stitcher_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "videostitcher_grpc_service_config.json", + service_yaml = "videostitcher_v1.yaml", + test_deps = [ + ":stitcher_java_grpc", + ], + deps = [ + ":stitcher_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "stitcher_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.video.stitcher.v1.VideoStitcherServiceClientTest", + ], + runtime_deps = [":stitcher_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-video-stitcher-v1-java", + include_samples = True, + deps = [ + ":stitcher_java_gapic", + ":stitcher_java_grpc", + ":stitcher_java_proto", + ":stitcher_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "stitcher_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1", + protos = [":stitcher_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "stitcher_go_gapic", + srcs = [":stitcher_proto_with_info"], + grpc_service_config = "videostitcher_grpc_service_config.json", + importpath = "cloud.google.com/go/video/stitcher/apiv1;stitcher", + metadata = True, + service_yaml = "videostitcher_v1.yaml", + deps = [ + ":stitcher_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +go_test( + name = "stitcher_go_gapic_test", + srcs = [":stitcher_go_gapic_srcjar_test"], + embed = [":stitcher_go_gapic"], + importpath = "cloud.google.com/go/video/stitcher/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-video-stitcher-v1-go", + deps = [ + ":stitcher_go_gapic", + ":stitcher_go_gapic_srcjar-metadata.srcjar", + ":stitcher_go_gapic_srcjar-test.srcjar", + ":stitcher_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "stitcher_py_gapic", + srcs = [":stitcher_proto"], + grpc_service_config = "videostitcher_grpc_service_config.json", + service_yaml = "videostitcher_v1.yaml", + transport = "grpc+rest", +) + +py_test( + name = "stitcher_py_gapic_test", + srcs = [ + "stitcher_py_gapic_pytest.py", + "stitcher_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":stitcher_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "video-stitcher-v1-py", + deps = [ + ":stitcher_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "stitcher_php_proto", + deps = [":stitcher_proto"], +) + +php_grpc_library( + name = "stitcher_php_grpc", + srcs = [":stitcher_proto"], + deps = [":stitcher_php_proto"], +) + +php_gapic_library( + name = "stitcher_php_gapic", + srcs = [":stitcher_proto_with_info"], + grpc_service_config = "videostitcher_grpc_service_config.json", + service_yaml = "videostitcher_v1.yaml", + deps = [ + ":stitcher_php_grpc", + ":stitcher_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-video-stitcher-v1-php", + deps = [ + ":stitcher_php_gapic", + ":stitcher_php_grpc", + ":stitcher_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "stitcher_nodejs_gapic", + package_name = "@google-cloud/video-stitcher", + src = ":stitcher_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "videostitcher_grpc_service_config.json", + package = "google.cloud.video.stitcher.v1", + service_yaml = "videostitcher_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "video-stitcher-v1-nodejs", + deps = [ + ":stitcher_nodejs_gapic", + ":stitcher_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 = "stitcher_ruby_proto", + deps = [":stitcher_proto"], +) + +ruby_grpc_library( + name = "stitcher_ruby_grpc", + srcs = [":stitcher_proto"], + deps = [":stitcher_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "stitcher_ruby_gapic", + srcs = [":stitcher_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=videostitcher.googleapis.com", + "ruby-cloud-api-shortname=videostitcher", + "ruby-cloud-gem-name=google-cloud-video-stitcher-v1", + "ruby-cloud-product-url=https://cloud.google.com/video-stitcher/", + ], + grpc_service_config = "videostitcher_grpc_service_config.json", + ruby_cloud_description = "The Video Stitcher API allows you to manipulate video content to dynamically insert ads prior to delivery to client devices. Using the Video Stitcher API, you can monetize your video-on-demand (VOD) and livestreaming videos by inserting ads as described by metadata stored on ad servers.", + ruby_cloud_title = "Video Stitcher V1", + deps = [ + ":stitcher_ruby_grpc", + ":stitcher_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-video-stitcher-v1-ruby", + deps = [ + ":stitcher_ruby_gapic", + ":stitcher_ruby_grpc", + ":stitcher_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 = "stitcher_csharp_proto", + deps = [":stitcher_proto"], +) + +csharp_grpc_library( + name = "stitcher_csharp_grpc", + srcs = [":stitcher_proto"], + deps = [":stitcher_csharp_proto"], +) + +csharp_gapic_library( + name = "stitcher_csharp_gapic", + srcs = [":stitcher_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "videostitcher_grpc_service_config.json", + service_yaml = "videostitcher_v1.yaml", + deps = [ + ":stitcher_csharp_grpc", + ":stitcher_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-video-stitcher-v1-csharp", + deps = [ + ":stitcher_csharp_gapic", + ":stitcher_csharp_grpc", + ":stitcher_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "stitcher_cc_proto", + deps = [":stitcher_proto"], +) + +cc_grpc_library( + name = "stitcher_cc_grpc", + srcs = [":stitcher_proto"], + grpc_only = True, + deps = [":stitcher_cc_proto"], +) diff --git a/google/cloud/video/stitcher/v1/ad_tag_details.proto b/google/cloud/video/stitcher/v1/ad_tag_details.proto new file mode 100644 index 000000000..3c1c018b2 --- /dev/null +++ b/google/cloud/video/stitcher/v1/ad_tag_details.proto @@ -0,0 +1,95 @@ +// 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.cloud.video.stitcher.v1; + +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +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. +message LiveAdTagDetail { + option (google.api.resource) = { + type: "videostitcher.googleapis.com/LiveAdTagDetail" + pattern: "projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}" + }; + + // The resource name in the form of + // `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{id}`. + string name = 1; + + // A list of ad requests. + repeated AdRequest ad_requests = 2; +} + +// Information related to the details for one ad tag. +message VodAdTagDetail { + option (google.api.resource) = { + type: "videostitcher.googleapis.com/VodAdTagDetail" + pattern: "projects/{project}/locations/{location}/vodSessions/{vod_session}/vodAdTagDetails/{vod_ad_tag_detail}" + }; + + // The name of the ad tag detail for the specified VOD session, in the form of + // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{id}`. + string name = 1; + + // A list of ad requests for one ad tag. + repeated AdRequest ad_requests = 2; +} + +// Details of an ad request to an ad server. +message AdRequest { + // The ad tag URI processed with integrated macros. + string uri = 1; + + // The request metadata used to make the ad request. + RequestMetadata request_metadata = 2; + + // The response metadata received from the ad request. + ResponseMetadata response_metadata = 3; +} + +// Metadata for an ad request. +message RequestMetadata { + // The HTTP headers of the ad request. + google.protobuf.Struct headers = 1; +} + +// Metadata for the response of an ad request. +message ResponseMetadata { + // Error message received when making the ad request. + string error = 1; + + // Headers from the response. + google.protobuf.Struct headers = 2; + + // Status code for the response. + string status_code = 3; + + // Size in bytes of the response. + int32 size_bytes = 4; + + // Total time elapsed for the response. + google.protobuf.Duration duration = 5; + + // The body of the response. + string body = 6; +} diff --git a/google/cloud/video/stitcher/v1/cdn_keys.proto b/google/cloud/video/stitcher/v1/cdn_keys.proto new file mode 100644 index 000000000..254f415f8 --- /dev/null +++ b/google/cloud/video/stitcher/v1/cdn_keys.proto @@ -0,0 +1,67 @@ +// 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.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "CdnKeysProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Configuration for a CDN key. Used by the Video Stitcher +// to sign URIs for fetching video manifests and signing +// media segments for playback. +message CdnKey { + option (google.api.resource) = { + type: "videostitcher.googleapis.com/CdnKey" + pattern: "projects/{project}/locations/{location}/cdnKeys/{cdn_key}" + }; + + // Configuration associated with the CDN key. + oneof cdn_key_config { + // The configuration for a Google Cloud CDN key. + GoogleCdnKey google_cdn_key = 5; + + // The configuration for an Akamai CDN key. + AkamaiCdnKey akamai_cdn_key = 6; + } + + // The resource name of the CDN key, in the form of + // `projects/{project}/locations/{location}/cdnKeys/{id}`. + // The name is ignored when creating a CDN key. + string name = 1; + + // The hostname this key applies to. + string hostname = 4; +} + +// Configuration for a Google Cloud CDN key. +message GoogleCdnKey { + // Input only. Secret for this Google Cloud CDN key. + bytes private_key = 1 [(google.api.field_behavior) = INPUT_ONLY]; + + // The public name of the Google Cloud CDN key. + string key_name = 2; +} + +// Configuration for an Akamai CDN key. +message AkamaiCdnKey { + // Input only. Token key for the Akamai CDN edge configuration. + bytes token_key = 1 [(google.api.field_behavior) = INPUT_ONLY]; +} diff --git a/google/cloud/video/stitcher/v1/companions.proto b/google/cloud/video/stitcher/v1/companions.proto new file mode 100644 index 000000000..af57e92dd --- /dev/null +++ b/google/cloud/video/stitcher/v1/companions.proto @@ -0,0 +1,113 @@ +// 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.cloud.video.stitcher.v1; + +import "google/cloud/video/stitcher/v1/events.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "CompanionsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Metadata for companion ads. +message CompanionAds { + // Indicates how many of the companions should be displayed with the ad. + enum DisplayRequirement { + // Required companions are not specified. The default is ALL. + DISPLAY_REQUIREMENT_UNSPECIFIED = 0; + + // All companions are required to be displayed. + ALL = 1; + + // At least one of companions needs to be displayed. + ANY = 2; + + // All companions are optional for display. + NONE = 3; + } + + // Indicates how many of the companions should be displayed with the ad. + DisplayRequirement display_requirement = 1; + + // List of companion ads. + repeated Companion companions = 2; +} + +// Metadata for a companion. +message Companion { + // Ad resource associated with the companion ad. + oneof ad_resource { + // The IFrame ad resource associated with the companion ad. + IframeAdResource iframe_ad_resource = 10; + + // The static ad resource associated with the companion ad. + StaticAdResource static_ad_resource = 11; + + // The HTML ad resource associated with the companion ad. + HtmlAdResource html_ad_resource = 12; + } + + // The API necessary to communicate with the creative if available. + string api_framework = 1; + + // The pixel height of the placement slot for the intended creative. + int32 height_px = 2; + + // The pixel width of the placement slot for the intended creative. + int32 width_px = 3; + + // The pixel height of the creative. + int32 asset_height_px = 4; + + // The maximum pixel height of the creative in its expanded state. + int32 expanded_height_px = 5; + + // The pixel width of the creative. + int32 asset_width_px = 6; + + // The maximum pixel width of the creative in its expanded state. + int32 expanded_width_px = 7; + + // The ID used to identify the desired placement on a publisher's page. + // Values to be used should be discussed between publishers and + // advertisers. + string ad_slot_id = 8; + + // The list of tracking events for the companion. + repeated Event events = 9; +} + +// Metadata for an HTML ad resource. +message HtmlAdResource { + // The HTML to display for the ad resource. + string html_source = 1; +} + +// Metadata for an IFrame ad resource. +message IframeAdResource { + // URI source for an IFrame to display for the ad resource. + string uri = 1; +} + +// Metadata for a static ad resource. +message StaticAdResource { + // URI to the static file for the ad resource. + string uri = 1; + + // Describes the MIME type of the ad resource. + string creative_type = 2; +} diff --git a/google/cloud/video/stitcher/v1/events.proto b/google/cloud/video/stitcher/v1/events.proto new file mode 100644 index 000000000..3a5e967f5 --- /dev/null +++ b/google/cloud/video/stitcher/v1/events.proto @@ -0,0 +1,131 @@ +// 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.cloud.video.stitcher.v1; + +import "google/protobuf/duration.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "EventsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Describes an event and a trigger URI. +message Event { + // Describes the event that occurred. + enum EventType { + // The event type is unspecified. + EVENT_TYPE_UNSPECIFIED = 0; + + // First frame of creative ad viewed. + CREATIVE_VIEW = 1; + + // Creative ad started. + START = 2; + + // Start of an ad break. + BREAK_START = 3; + + // End of an ad break. + BREAK_END = 4; + + // Impression. + IMPRESSION = 5; + + // First quartile progress. + FIRST_QUARTILE = 6; + + // Midpoint progress. + MIDPOINT = 7; + + // Third quartile progress. + THIRD_QUARTILE = 8; + + // Ad progress completed. + COMPLETE = 9; + + // Specific progress event with an offset. + PROGRESS = 10; + + // Player muted. + MUTE = 11; + + // Player unmuted. + UNMUTE = 12; + + // Player paused. + PAUSE = 13; + + // Click event. + CLICK = 14; + + // Click-through event. + CLICK_THROUGH = 15; + + // Player rewinding. + REWIND = 16; + + // Player resumed. + RESUME = 17; + + // Error event. + ERROR = 18; + + // Ad expanded to a larger size. + EXPAND = 21; + + // Ad collapsed to a smaller size. + COLLAPSE = 22; + + // Non-linear ad closed. + CLOSE = 24; + + // Linear ad closed. + CLOSE_LINEAR = 25; + + // Ad skipped. + SKIP = 26; + + // Accept invitation event. + ACCEPT_INVITATION = 27; + } + + // Describes the event that occurred. + EventType type = 1; + + // The URI to trigger for this event. + string uri = 2; + + // The ID of the event. + string id = 3; + + // The offset in seconds if the event type is `PROGRESS`. + google.protobuf.Duration offset = 4; +} + +// Indicates a time in which a list of events should be triggered +// during media playback. +message ProgressEvent { + // The time when the following tracking events occurs. The time is in + // seconds relative to the start of the VOD asset. + google.protobuf.Duration time_offset = 1; + + // The list of progress tracking events for the ad break. These can be of + // the following IAB types: `BREAK_START`, `BREAK_END`, `IMPRESSION`, + // `CREATIVE_VIEW`, `START`, `FIRST_QUARTILE`, `MIDPOINT`, `THIRD_QUARTILE`, + // `COMPLETE`, `PROGRESS`. + repeated Event events = 2; +} diff --git a/google/cloud/video/stitcher/v1/sessions.proto b/google/cloud/video/stitcher/v1/sessions.proto new file mode 100644 index 000000000..8bbbea806 --- /dev/null +++ b/google/cloud/video/stitcher/v1/sessions.proto @@ -0,0 +1,246 @@ +// 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.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/video/stitcher/v1/companions.proto"; +import "google/cloud/video/stitcher/v1/events.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "SessionsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Metadata for a VOD session. +message VodSession { + option (google.api.resource) = { + type: "videostitcher.googleapis.com/VodSession" + pattern: "projects/{project}/locations/{location}/vodSessions/{vod_session}" + }; + + // Output only. The name of the VOD session, in the form of + // `projects/{project_number}/locations/{location}/vodSessions/{id}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata of what was stitched into the content. + Interstitials interstitials = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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]; + + // Required. Ad tag URI. + string ad_tag_uri = 6 [(google.api.field_behavior) = REQUIRED]; + + // 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: + // + // 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"` + map ad_tag_macro_map = 7; + + // Indicates whether client side ad tracking is enabled. If client + // side ad tracking is enabled, then the client player is expected + // to trigger playback and activity events itself. + // If this is set to false, server side ad tracking is enabled, + // causing the Video Stitcher service will trigger playback events + // on behalf of the client player. + bool client_ad_tracking = 8; + + // Additional options that affect the output of the manifest. + ManifestOptions manifest_options = 9; + + // Output only. The generated ID of the VodSession's source media. + string asset_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Describes what was stitched into a VOD session's manifest. +message Interstitials { + // List of ad breaks ordered by time. + repeated VodSessionAdBreak ad_breaks = 1; + + // Information related to the content of the VOD session. + VodSessionContent session_content = 2; +} + +// Metadata for an inserted ad in a VOD session. +message VodSessionAd { + // Duration in seconds of the ad. + google.protobuf.Duration duration = 1; + + // Metadata of companion ads associated with the ad. + CompanionAds companion_ads = 2; + + // The list of progress tracking events for the ad break. These can be of + // the following IAB types: `MUTE`, `UNMUTE`, `PAUSE`, `CLICK`, + // `CLICK_THROUGH`, `REWIND`, `RESUME`, `ERROR`, `FULLSCREEN`, + // `EXIT_FULLSCREEN`, `EXPAND`, `COLLAPSE`, `ACCEPT_INVITATION_LINEAR`, + // `CLOSE_LINEAR`, `SKIP`. + repeated Event activity_events = 3; +} + +// Metadata for the entire stitched content in a VOD session. +message VodSessionContent { + // The total duration in seconds of the content including the ads stitched + // in. + google.protobuf.Duration duration = 1; +} + +// Metadata for an inserted ad break. +message VodSessionAdBreak { + // List of events that are expected to be triggered, ordered by time. + repeated ProgressEvent progress_events = 1; + + // Ordered list of ads stitched into the ad break. + repeated VodSessionAd ads = 2; + + // Ad break end time in seconds relative to the start of the VOD asset. + google.protobuf.Duration end_time_offset = 3; + + // Ad break start time in seconds relative to the start of the VOD asset. + google.protobuf.Duration start_time_offset = 4; +} + +// Metadata for a live session. +message LiveSession { + option (google.api.resource) = { + type: "videostitcher.googleapis.com/LiveSession" + pattern: "projects/{project}/locations/{location}/liveSessions/{live_session}" + }; + + // Defines the stitcher behavior in case an ad does not align exactly with + // the ad break boundaries. If not specified, the default is COMPLETE_AD. + enum StitchingPolicy { + // Stitching policy is not specified. + STITCHING_POLICY_UNSPECIFIED = 0; + + // Finishes stitching the current ad before returning to content. + COMPLETE_AD = 1; + + // Cuts an ad short and returns to content in the middle of the ad. + CUT_CURRENT = 3; + } + + // Output only. The name of the live session, in the form of + // `projects/{project}/locations/{location}/liveSessions/{id}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URI to play the live session's ad-stitched stream. + string play_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The URI of the live session's source stream. + string source_uri = 3; + + // The default ad tag to use when no ad tag ids are specified in an ad break's + // SCTE-35 message. + // + // default_ad_tag_id is necessary when `adTagMap` has more than one key. Its + // value must be present in the `adTagMap`. + string default_ad_tag_id = 4; + + // Key value pairs for ad tags. Ads parsed from ad tags must be MP4 videos + // each with at least one audio track. + map ad_tag_map = 5; + + // 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: + // + // Ad tag URI: "https://doubleclick.google.com/ad/1?geo_id=[geoId]" + // + // Ad tag macros: `{"geoId": "123"}` + // + // Fully qualified ad tag: + // `"https://doubleclick.google.com/ad/1?geo_id=123"` + map ad_tag_macros = 6; + + // Whether client side ad tracking is enabled. If enabled, the client player + // is expected to trigger playback and activity events itself. Otherwise, + // server side ad tracking is enabled and the Video Stitcher API will trigger + // playback events on behalf of the client player. + bool client_ad_tracking = 7; + + // The default slate to use when no slates are specified in an ad break's + // SCTE-35 message. When specified, this value must match the ID for a slate + // that has already been created via the + // [CreateSlate](projects.locations.slates/create) method. + string default_slate_id = 8; + + // Defines the stitcher behavior in case an ad does not align exactly with + // the ad break boundaries. If not specified, the default is `COMPLETE_AD`. + StitchingPolicy stitching_policy = 9; + + // Additional options that affect the output of the manifest. + ManifestOptions manifest_options = 10; + + // Output only. The generated ID of the LiveSession's source stream. + string stream_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Metadata of an ad tag. +message AdTag { + // Ad tag URI template. + string uri = 1; +} + +// Options for manifest generation. +message ManifestOptions { + // Defines the ordering policy during manifest generation. + enum OrderPolicy { + // Ordering policy is not specified. + ORDER_POLICY_UNSPECIFIED = 0; + + // Order by ascending. + ASCENDING = 1; + + // Order by descending. + DESCENDING = 2; + } + + // If specified, the output manifest will only return renditions matching the + // specified filters. + repeated RenditionFilter include_renditions = 1; + + // If specified, the output manifest will orders the video and muxed + // renditions by bitrate according to the ordering policy. + OrderPolicy bitrate_order = 2; +} + +// Filters for a video or muxed redition. +message RenditionFilter { + // Bitrate in bits per second for the rendition. If set, only renditions with + // the exact bitrate will match. + int32 bitrate_bps = 1; + + // Codecs for the rendition. If set, only renditions with the exact value + // will match. + string codecs = 2; +} diff --git a/google/cloud/video/stitcher/v1/slates.proto b/google/cloud/video/stitcher/v1/slates.proto new file mode 100644 index 000000000..a52de6499 --- /dev/null +++ b/google/cloud/video/stitcher/v1/slates.proto @@ -0,0 +1,41 @@ +// 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.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "SlatesProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Slate object +message Slate { + option (google.api.resource) = { + type: "videostitcher.googleapis.com/Slate" + pattern: "projects/{project}/locations/{location}/slates/{slate}" + }; + + // Output only. The name of the slate, in the form of + // `projects/{project_number}/locations/{location}/slates/{id}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The URI to fetch the source content for the slate. This URI must return an + // MP4 video with at least one audio track. + string uri = 2; +} diff --git a/google/cloud/video/stitcher/v1/stitch_details.proto b/google/cloud/video/stitcher/v1/stitch_details.proto new file mode 100644 index 000000000..e23224e35 --- /dev/null +++ b/google/cloud/video/stitcher/v1/stitch_details.proto @@ -0,0 +1,60 @@ +// 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.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +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. +message VodStitchDetail { + option (google.api.resource) = { + type: "videostitcher.googleapis.com/VodStitchDetail" + pattern: "projects/{project}/locations/{location}/vodSessions/{vod_session}/vodStitchDetails/{vod_stitch_detail}" + }; + + // The name of the stitch detail in the specified VOD session, in the form of + // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`. + string name = 1; + + // A list of ad processing details for the fetched ad playlist. + repeated AdStitchDetail ad_stitch_details = 3; +} + +// Metadata for a stitched ad. +message AdStitchDetail { + // Required. The ad break ID of the processed ad. + string ad_break_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ad ID of the processed ad. + string ad_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The time offset of the processed ad. + google.protobuf.Duration ad_time_offset = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates the reason why the ad has been skipped. + string skip_reason = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The metadata of the chosen media file for the ad. + map media = 5 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/video/stitcher/v1/video_stitcher_service.proto b/google/cloud/video/stitcher/v1/video_stitcher_service.proto new file mode 100644 index 000000000..938f01c8a --- /dev/null +++ b/google/cloud/video/stitcher/v1/video_stitcher_service.proto @@ -0,0 +1,570 @@ +// 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.cloud.video.stitcher.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/video/stitcher/v1/ad_tag_details.proto"; +import "google/cloud/video/stitcher/v1/cdn_keys.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/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "VideoStitcherServiceProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Video-On-Demand content stitching API allows you to insert ads +// into (VoD) video on demand files. You will be able to render custom +// scrubber bars with highlighted ads, enforce ad policies, allow +// seamless playback and tracking on native players and monetize +// content with any standard VMAP compliant ad server. +service VideoStitcherService { + option (google.api.default_host) = "videostitcher.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new CDN key. + rpc CreateCdnKey(CreateCdnKeyRequest) returns (CdnKey) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/cdnKeys" + body: "cdn_key" + }; + option (google.api.method_signature) = "parent,cdn_key,cdn_key_id"; + } + + // Lists all CDN keys in the specified project and location. + rpc ListCdnKeys(ListCdnKeysRequest) returns (ListCdnKeysResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/cdnKeys" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the specified CDN key. + rpc GetCdnKey(GetCdnKeyRequest) returns (CdnKey) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/cdnKeys/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes the specified CDN key. + rpc DeleteCdnKey(DeleteCdnKeyRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/cdnKeys/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the specified CDN key. Only update fields specified + // in the call method body. + rpc UpdateCdnKey(UpdateCdnKeyRequest) returns (CdnKey) { + option (google.api.http) = { + patch: "/v1/{cdn_key.name=projects/*/locations/*/cdnKeys/*}" + body: "cdn_key" + }; + option (google.api.method_signature) = "cdn_key,update_mask"; + } + + // Creates a client side playback VOD session and returns the full + // tracking and playback metadata of the session. + rpc CreateVodSession(CreateVodSessionRequest) returns (VodSession) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/vodSessions" + body: "vod_session" + }; + option (google.api.method_signature) = "parent,vod_session"; + } + + // Returns the full tracking, playback metadata, and relevant ad-ops + // logs for the specified VOD session. + rpc GetVodSession(GetVodSessionRequest) returns (VodSession) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/vodSessions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns a list of detailed stitching information of the specified VOD + // session. + rpc ListVodStitchDetails(ListVodStitchDetailsRequest) returns (ListVodStitchDetailsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/vodSessions/*}/vodStitchDetails" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the specified stitching information for the specified VOD session. + rpc GetVodStitchDetail(GetVodStitchDetailRequest) returns (VodStitchDetail) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/vodSessions/*/vodStitchDetails/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Return the list of ad tag details for the specified VOD session. + rpc ListVodAdTagDetails(ListVodAdTagDetailsRequest) returns (ListVodAdTagDetailsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/vodSessions/*}/vodAdTagDetails" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the specified ad tag detail for the specified VOD session. + rpc GetVodAdTagDetail(GetVodAdTagDetailRequest) returns (VodAdTagDetail) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/vodSessions/*/vodAdTagDetails/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Return the list of ad tag details for the specified live session. + rpc ListLiveAdTagDetails(ListLiveAdTagDetailsRequest) returns (ListLiveAdTagDetailsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/liveSessions/*}/liveAdTagDetails" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the specified ad tag detail for the specified live session. + rpc GetLiveAdTagDetail(GetLiveAdTagDetailRequest) returns (LiveAdTagDetail) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/liveSessions/*/liveAdTagDetails/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a slate. + rpc CreateSlate(CreateSlateRequest) returns (Slate) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/slates" + body: "slate" + }; + option (google.api.method_signature) = "parent,slate,slate_id"; + } + + // Lists all slates in the specified project and location. + rpc ListSlates(ListSlatesRequest) returns (ListSlatesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/slates" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the specified slate. + rpc GetSlate(GetSlateRequest) returns (Slate) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/slates/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the specified slate. + rpc UpdateSlate(UpdateSlateRequest) returns (Slate) { + option (google.api.http) = { + patch: "/v1/{slate.name=projects/*/locations/*/slates/*}" + body: "slate" + }; + option (google.api.method_signature) = "slate,update_mask"; + } + + // Deletes the specified slate. + rpc DeleteSlate(DeleteSlateRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/slates/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new live session. + rpc CreateLiveSession(CreateLiveSessionRequest) returns (LiveSession) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/liveSessions" + body: "live_session" + }; + option (google.api.method_signature) = "parent,live_session"; + } + + // Returns the details for the specified live session. + rpc GetLiveSession(GetLiveSessionRequest) returns (LiveSession) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/liveSessions/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for VideoStitcherService.createCdnKey. +message CreateCdnKeyRequest { + // Required. The project in which the CDN key 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/CdnKey" + } + ]; + + // Required. The CDN key resource to create. + CdnKey cdn_key = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the CDN key, which will become the final component of + // the CDN key's resource name. + // + // This value should conform to RFC-1034, which restricts to + // lower-case letters, numbers, and hyphen, with the first character a + // letter, the last a letter or a number, and a 63 character maximum. + string cdn_key_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.listCdnKeys. +message ListCdnKeysRequest { + // Required. The project that contains the list of CDN keys, 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/CdnKey" + } + ]; + + // 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 VideoStitcher.ListCdnKeys. +message ListCdnKeysResponse { + // List of CDN keys. + repeated CdnKey cdn_keys = 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 VideoStitcherService.getCdnKey. +message GetCdnKeyRequest { + // Required. The name of the CDN key to be retrieved, in the form of + // `projects/{project}/locations/{location}/cdnKeys/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/CdnKey" + } + ]; +} + +// Request message for VideoStitcherService.deleteCdnKey. +message DeleteCdnKeyRequest { + // Required. The name of the CDN key to be deleted, in the form of + // `projects/{project_number}/locations/{location}/cdnKeys/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/CdnKey" + } + ]; +} + +// Request message for VideoStitcherService.updateCdnKey. +message UpdateCdnKeyRequest { + // Required. The CDN key resource which replaces the resource on the server. + CdnKey cdn_key = 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.createVodSession +message CreateVodSessionRequest { + // Required. The project and location in which the VOD session 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/VodSession" + } + ]; + + // Required. Parameters for creating a session. + VodSession vod_session = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.getVodSession +message GetVodSessionRequest { + // Required. The name of the VOD session to be retrieved, in the form of + // `projects/{project_number}/locations/{location}/vodSessions/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/VodSession" + } + ]; +} + +// Request message for VideoStitcherService.listVodStitchDetails. +message ListVodStitchDetailsRequest { + // Required. The VOD session where the stitch details belong to, in the form of + // `projects/{project}/locations/{location}/vodSessions/{id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "videostitcher.googleapis.com/VodStitchDetail" + } + ]; + + // The maximum number of items to return. + int32 page_size = 2; + + // The next_page_token value returned from a previous List request, if any. + string page_token = 3; +} + +// Response message for VideoStitcherService.listVodStitchDetails. +message ListVodStitchDetailsResponse { + // A List of stitch Details. + repeated VodStitchDetail vod_stitch_details = 1; + + // The pagination token. + string next_page_token = 2; +} + +// Request message for VideoStitcherService.getVodStitchDetail. +message GetVodStitchDetailRequest { + // Required. The name of the stitch detail in the specified VOD session, in the form of + // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/VodStitchDetail" + } + ]; +} + +// Request message for VideoStitcherService.listVodAdTagDetails. +message ListVodAdTagDetailsRequest { + // Required. The VOD session which the ad tag details belong to, in the form of + // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "videostitcher.googleapis.com/VodAdTagDetail" + } + ]; + + // The maximum number of items to return. + int32 page_size = 2; + + // The next_page_token value returned from a previous List request, if any. + string page_token = 3; +} + +// Response message for VideoStitcherService.listVodAdTagDetails. +message ListVodAdTagDetailsResponse { + // A List of ad tag details. + repeated VodAdTagDetail vod_ad_tag_details = 1; + + // The pagination token. + string next_page_token = 2; +} + +// Request message for VideoStitcherService.getVodAdTagDetail +message GetVodAdTagDetailRequest { + // Required. The name of the ad tag detail for the specified VOD session, in the form of + // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{vod_ad_tag_detail}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/VodAdTagDetail" + } + ]; +} + +// Request message for VideoStitcherService.listLiveAdTagDetails. +message ListLiveAdTagDetailsRequest { + // Required. The resource parent in the form of + // `projects/{project}/locations/{location}/liveSessions/{live_session}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "videostitcher.googleapis.com/LiveAdTagDetail" + } + ]; + + // The maximum number of items to return. + int32 page_size = 2; + + // The pagination token returned from a previous List request. + string page_token = 3; +} + +// Response message for VideoStitcherService.listLiveAdTagDetails. +message ListLiveAdTagDetailsResponse { + // A list of live session ad tag details. + repeated LiveAdTagDetail live_ad_tag_details = 1; + + // The pagination token. + string next_page_token = 2; +} + +// Request message for VideoStitcherService.getLiveAdTagDetail +message GetLiveAdTagDetailRequest { + // Required. The resource name in the form of + // `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/LiveAdTagDetail" + } + ]; +} + +// Request message for VideoStitcherService.createSlate. +message CreateSlateRequest { + // Required. The project in which the slate should be created, in the form of + // `projects/{project_number}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "videostitcher.googleapis.com/Slate" + } + ]; + + // Required. The unique identifier for the slate. + // This value should conform to RFC-1034, which restricts to + // lower-case letters, numbers, and hyphen, with the first character a + // letter, the last a letter or a number, and a 63 character maximum. + string slate_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The slate to create. + Slate slate = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.getSlate. +message GetSlateRequest { + // Required. The name of the slate to be retrieved, of the slate, in the form of + // `projects/{project_number}/locations/{location}/slates/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/Slate" + } + ]; +} + +// Request message for VideoStitcherService.listSlates. +message ListSlatesRequest { + // Required. The project to list slates, in the form of `projects/{project_number}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "videostitcher.googleapis.com/Slate" + } + ]; + + // 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 VideoStitcherService.listSlates. +message ListSlatesResponse { + // The list of slates + repeated Slate slates = 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 VideoStitcherService.updateSlate. +message UpdateSlateRequest { + // Required. The resource with updated fields. + Slate slate = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask which specifies fields which should be updated. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.deleteSlate. +message DeleteSlateRequest { + // Required. The name of the slate to be deleted, in the form of + // `projects/{project_number}/locations/{location}/slates/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/Slate" + } + ]; +} + +// Request message for VideoStitcherService.createLiveSession. +message CreateLiveSessionRequest { + // Required. The project and location in which the live session should be created, + // in the form of `projects/{project_number}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/LiveSession" + } + ]; + + // Required. Parameters for creating a live session. + LiveSession live_session = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.getSession. +message GetLiveSessionRequest { + // Required. The name of the live session, in the form of + // `projects/{project_number}/locations/{location}/liveSessions/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/LiveSession" + } + ]; +} diff --git a/google/cloud/video/stitcher/v1/videostitcher_grpc_service_config.json b/google/cloud/video/stitcher/v1/videostitcher_grpc_service_config.json new file mode 100644 index 000000000..ae048887d --- /dev/null +++ b/google/cloud/video/stitcher/v1/videostitcher_grpc_service_config.json @@ -0,0 +1,38 @@ +{ + "methodConfig": [{ + "name": [{ "service": "google.cloud.video.stitcher.v1.VideoStitcherService" }], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "CreateCdnKey" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListCdnKeys" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetCdnKey" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "DeleteCdnKey" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "UpdateCdnKey" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "CreateSlate" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListSlates" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetSlate" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "DeleteSlate" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "UpdateSlate" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "CreateLiveSession" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetLiveSession" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListLiveAdTagDetails" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetLiveAdTagDetail" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "CreateVodSession" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetVodSession" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListVodAdTagDetails" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetVodAdTagDetail" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListVodStitchDetails" }, + { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetVodStitchDetail" } + ], + "timeout": "60s" + }] +} diff --git a/google/cloud/video/stitcher/v1/videostitcher_v1.yaml b/google/cloud/video/stitcher/v1/videostitcher_v1.yaml new file mode 100644 index 000000000..d762119f7 --- /dev/null +++ b/google/cloud/video/stitcher/v1/videostitcher_v1.yaml @@ -0,0 +1,19 @@ +type: google.api.Service +config_version: 3 +name: videostitcher.googleapis.com +title: Video Stitcher API + +apis: +- name: google.cloud.video.stitcher.v1.VideoStitcherService + +backend: + rules: + - selector: 'google.cloud.video.stitcher.v1.VideoStitcherService.*' + deadline: 30.0 + +authentication: + rules: + - selector: 'google.cloud.video.stitcher.v1.VideoStitcherService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/video/transcoder/BUILD.bazel b/google/cloud/video/transcoder/BUILD.bazel index eabd5ca69..8d1c2b562 100644 --- a/google/cloud/video/transcoder/BUILD.bazel +++ b/google/cloud/video/transcoder/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-video-transcoder", "ruby-cloud-env-prefix=TRANSCODER", - "ruby-cloud-wrapper-of=v1:0.0;v1beta1:0.0", + "ruby-cloud-wrapper-of=v1:0.0", "ruby-cloud-product-url=https://cloud.google.com/transcoder/", "ruby-cloud-api-id=transcoder.googleapis.com", "ruby-cloud-api-shortname=transcoder", diff --git a/google/cloud/video/transcoder/v1/BUILD.bazel b/google/cloud/video/transcoder/v1/BUILD.bazel index 90cccb6aa..893703f84 100644 --- a/google/cloud/video/transcoder/v1/BUILD.bazel +++ b/google/cloud/video/transcoder/v1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":transcoder_java_grpc", ], + transport = "grpc+rest", deps = [ ":transcoder_java_proto", ], @@ -82,6 +83,7 @@ java_gapic_library( java_gapic_test( name = "transcoder_java_gapic_test_suite", test_classes = [ + "com.google.cloud.video.transcoder.v1.TranscoderServiceClientHttpJsonTest", "com.google.cloud.video.transcoder.v1.TranscoderServiceClientTest", ], runtime_deps = [":transcoder_java_gapic_test"], @@ -90,6 +92,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-video-transcoder-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":transcoder_java_gapic", ":transcoder_java_grpc", @@ -125,8 +129,9 @@ go_gapic_library( srcs = [":transcoder_proto_with_info"], grpc_service_config = "transcoder_grpc_service_config.json", importpath = "cloud.google.com/go/video/transcoder/apiv1;transcoder", - service_yaml = "transcoder_v1.yaml", metadata = True, + service_yaml = "transcoder_v1.yaml", + transport = "grpc+rest", deps = [ ":transcoder_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -145,8 +150,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-video-transcoder-v1-go", deps = [ ":transcoder_go_gapic", - ":transcoder_go_gapic_srcjar-test.srcjar", ":transcoder_go_gapic_srcjar-metadata.srcjar", + ":transcoder_go_gapic_srcjar-test.srcjar", ":transcoder_go_proto", ], ) @@ -158,12 +163,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "transcoder_py_gapic", srcs = [":transcoder_proto"], grpc_service_config = "transcoder_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "transcoder_py_gapic_test", + srcs = [ + "transcoder_py_gapic_pytest.py", + "transcoder_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":transcoder_py_gapic"], ) # Open Source Packages @@ -250,8 +267,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -323,6 +340,7 @@ csharp_gapic_library( srcs = [":transcoder_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "transcoder_grpc_service_config.json", + service_yaml = "transcoder_v1.yaml", deps = [ ":transcoder_csharp_grpc", ":transcoder_csharp_proto", diff --git a/google/cloud/video/transcoder/v1/resources.proto b/google/cloud/video/transcoder/v1/resources.proto index 42b9d62fa..ce3824ba4 100644 --- a/google/cloud/video/transcoder/v1/resources.proto +++ b/google/cloud/video/transcoder/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -60,12 +60,16 @@ message Job { // Input only. Specify the `input_uri` to populate empty `uri` fields in each element of // `Job.config.inputs` or `JobTemplate.config.inputs` when using template. // URI of the media. Input files must be at least 5 seconds in duration and - // stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). + // stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). See + // [Supported input and output + // formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats). string input_uri = 2 [(google.api.field_behavior) = INPUT_ONLY]; // Input only. Specify the `output_uri` to populate an empty `Job.config.output.uri` or // `JobTemplate.config.output.uri` when using template. - // URI for the output file(s). For example, `gs://my-bucket/outputs/`. + // URI for the output file(s). For example, `gs://my-bucket/outputs/`. See + // [Supported input and output + // formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats). string output_uri = 3 [(google.api.field_behavior) = INPUT_ONLY]; // Specify the `job_config` for the transcoding job. If you don't specify the @@ -104,6 +108,10 @@ message Job { // a value between 1 and 90. The default is 30. int32 ttl_after_completion_days = 15; + // The labels associated with this job. You can use these to organize and + // group your jobs. + map labels = 16; + // Output only. An error object that describes the reason for the failure. // This property is always present when `state` is `FAILED`. google.rpc.Status error = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -123,6 +131,10 @@ message JobTemplate { // The configuration for this template. JobConfig config = 2; + + // The labels associated with this job template. You can use these to organize + // and group your job templates. + map labels = 3; } // Job configuration @@ -154,6 +166,7 @@ message JobConfig { PubsubDestination pubsub_destination = 8; // List of output sprite sheets. + // Spritesheets require at least one VideoStream in the Jobconfig. repeated SpriteSheet sprite_sheets = 9; // List of overlays on the output video, in descending Z-order. @@ -168,7 +181,9 @@ message Input { // URI of the media. Input files must be at least 5 seconds in duration and // stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). - // If empty, the value will be populated from `Job.input_uri`. + // If empty, the value is populated from `Job.input_uri`. See + // [Supported input and output + // formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats). string uri = 2; // Preprocessing configurations. @@ -178,7 +193,9 @@ message Input { // Location of output file(s) in a Cloud Storage bucket. message Output { // URI for the output file(s). For example, `gs://my-bucket/outputs/`. - // If empty the value is populated from `Job.output_uri`. + // If empty, the value is populated from `Job.output_uri`. See + // [Supported input and output + // formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats). string uri = 1; } @@ -250,6 +267,10 @@ message MuxStream { // - `fmp4`- the corresponding file extension is `.m4s` // - `mp4` // - `vtt` + // + // See also: + // [Supported input and output + // formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats) string container = 3; // List of `ElementaryStream.key`s multiplexed in this stream. @@ -400,6 +421,18 @@ message Overlay { google.protobuf.Duration start_time_offset = 2; } + // Fade type for the overlay: `FADE_IN` or `FADE_OUT`. + enum FadeType { + // The fade type is not specified. + FADE_TYPE_UNSPECIFIED = 0; + + // Fade the overlay object into view. + FADE_IN = 1; + + // Fade the overlay object out of view. + FADE_OUT = 2; + } + // Display overlay object with fade animation. message AnimationFade { // Required. Type of fade animation: `FADE_IN` or `FADE_OUT`. @@ -443,18 +476,6 @@ message Overlay { } } - // Fade type for the overlay: `FADE_IN` or `FADE_OUT`. - enum FadeType { - // The fade type is not specified. - FADE_TYPE_UNSPECIFIED = 0; - - // Fade the overlay object into view. - FADE_IN = 1; - - // Fade the overlay object out of view. - FADE_OUT = 2; - } - // Image overlay. Image image = 1; @@ -466,6 +487,8 @@ message Overlay { // Preprocessing configurations. message PreprocessingConfig { // Color preprocessing configuration. + // + // **Note:** This configuration is not supported. message Color { // Control color saturation of the video. Enter a value between -1 and 1, // where -1 is fully desaturated and 1 is maximum saturation. 0 is no @@ -484,6 +507,8 @@ message PreprocessingConfig { } // Denoise preprocessing configuration. + // + // **Note:** This configuration is not supported. message Denoise { // Set strength of the denoise. Enter a value between 0 and 1. The higher // the value, the smoother the image. 0 is no denoising. The default is 0. @@ -499,6 +524,8 @@ message PreprocessingConfig { } // Deblock preprocessing configuration. + // + // **Note:** This configuration is not supported. message Deblock { // Set strength of the deblocker. Enter a value between 0 and 1. The higher // the value, the stronger the block removal. 0 is no deblocking. The @@ -525,9 +552,13 @@ message PreprocessingConfig { double lufs = 1; // Enable boosting high frequency components. The default is `false`. + // + // **Note:** This field is not supported. bool high_boost = 2; // Enable boosting low frequency components. The default is `false`. + // + // **Note:** This field is not supported. bool low_boost = 3; } @@ -906,11 +937,12 @@ message VideoStream { // Supported rate control modes: // // - `vbr` - variable bitrate - // - `crf` - constant rate factor string rate_control_mode = 6; // Target CRF level. Must be between 10 and 36, where 10 is the highest // quality and 36 is the most efficient compression. The default is 21. + // + // **Note:** This field is not supported. int32 crf_level = 7; // GOP mode can be either by frame count or duration. diff --git a/google/cloud/video/transcoder/v1/services.proto b/google/cloud/video/transcoder/v1/services.proto index 992b3a1eb..4d400c33b 100644 --- a/google/cloud/video/transcoder/v1/services.proto +++ b/google/cloud/video/transcoder/v1/services.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/cloud/video/transcoder/v1beta1/BUILD.bazel b/google/cloud/video/transcoder/v1beta1/BUILD.bazel deleted file mode 100644 index 60e897ed6..000000000 --- a/google/cloud/video/transcoder/v1beta1/BUILD.bazel +++ /dev/null @@ -1,343 +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. - -# 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 = "transcoder_proto", - srcs = [ - "resources.proto", - "services.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//:timestamp_proto", - ], -) - -proto_library_with_info( - name = "transcoder_proto_with_info", - deps = [ - ":transcoder_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_grpc_library", - "java_proto_library", -) - -java_proto_library( - name = "transcoder_java_proto", - deps = [":transcoder_proto"], -) - -java_grpc_library( - name = "transcoder_java_grpc", - srcs = [":transcoder_proto"], - deps = [":transcoder_java_proto"], -) - -java_gapic_library( - name = "transcoder_java_gapic", - srcs = [":transcoder_proto_with_info"], - grpc_service_config = "transcoder_grpc_service_config.json", - test_deps = [ - ":transcoder_java_grpc", - ], - deps = [ - ":transcoder_java_proto", - ], -) - -java_gapic_test( - name = "transcoder_java_gapic_test_suite", - test_classes = [ - "com.google.cloud.video.transcoder.v1beta1.TranscoderServiceClientTest", - ], - runtime_deps = [":transcoder_java_gapic_test"], -) - -# Open Source Packages -java_gapic_assembly_gradle_pkg( - name = "google-cloud-video-transcoder-v1beta1-java", - deps = [ - ":transcoder_java_gapic", - ":transcoder_java_grpc", - ":transcoder_java_proto", - ":transcoder_proto", - ], -) - -############################################################################## -# Go -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "go_test", -) - -go_proto_library( - name = "transcoder_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/cloud/video/transcoder/v1beta1", - protos = [":transcoder_proto"], - deps = [ - "//google/api:annotations_go_proto", - ], -) - -go_gapic_library( - name = "transcoder_go_gapic", - srcs = [":transcoder_proto_with_info"], - grpc_service_config = "transcoder_grpc_service_config.json", - importpath = "cloud.google.com/go/video/transcoder/apiv1beta1;transcoder", - metadata = True, - service_yaml = "transcoder_v1beta1.yaml", - deps = [ - ":transcoder_go_proto", - "@io_bazel_rules_go//proto/wkt:duration_go_proto", - ], -) - -go_test( - name = "transcoder_go_gapic_test", - srcs = [":transcoder_go_gapic_srcjar_test"], - embed = [":transcoder_go_gapic"], - importpath = "cloud.google.com/go/video/transcoder/apiv1beta1", -) - -# Open Source Packages -go_gapic_assembly_pkg( - name = "gapi-cloud-video-transcoder-v1beta1-go", - deps = [ - ":transcoder_go_gapic", - ":transcoder_go_gapic_srcjar-metadata.srcjar", - ":transcoder_go_gapic_srcjar-test.srcjar", - ":transcoder_go_proto", - ], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", -) - -py_gapic_library( - name = "transcoder_py_gapic", - srcs = [":transcoder_proto"], - grpc_service_config = "transcoder_grpc_service_config.json", -) - -# Open Source Packages -py_gapic_assembly_pkg( - name = "video-transcoder-v1beta1-py", - deps = [ - ":transcoder_py_gapic", - ], -) - -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", -) - -php_proto_library( - name = "transcoder_php_proto", - deps = [":transcoder_proto"], -) - -php_grpc_library( - name = "transcoder_php_grpc", - srcs = [":transcoder_proto"], - deps = [":transcoder_php_proto"], -) - -php_gapic_library( - name = "transcoder_php_gapic", - srcs = [":transcoder_proto_with_info"], - grpc_service_config = "transcoder_grpc_service_config.json", - service_yaml = "transcoder_v1beta1.yaml", - deps = [ - ":transcoder_php_grpc", - ":transcoder_php_proto", - ], -) - -# Open Source Packages -php_gapic_assembly_pkg( - name = "google-cloud-video-transcoder-v1beta1-php", - deps = [ - ":transcoder_php_gapic", - ":transcoder_php_grpc", - ":transcoder_php_proto", - ], -) - -############################################################################## -# Node.js -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", -) - -nodejs_gapic_library( - name = "transcoder_nodejs_gapic", - package_name = "@google-cloud/video-transcoder", - src = ":transcoder_proto_with_info", - extra_protoc_parameters = ["metadata"], - grpc_service_config = "transcoder_grpc_service_config.json", - package = "google.cloud.video.transcoder.v1beta1", - service_yaml = "transcoder_v1beta1.yaml", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "video-transcoder-v1beta1-nodejs", - deps = [ - ":transcoder_nodejs_gapic", - ":transcoder_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 = "transcoder_ruby_proto", - deps = [":transcoder_proto"], -) - -ruby_grpc_library( - name = "transcoder_ruby_grpc", - srcs = [":transcoder_proto"], - deps = [":transcoder_ruby_proto"], -) - -ruby_cloud_gapic_library( - name = "transcoder_ruby_gapic", - srcs = [":transcoder_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-api-id=transcoder.googleapis.com", - "ruby-cloud-api-shortname=transcoder", - "ruby-cloud-env-prefix=TRANSCODER", - "ruby-cloud-gem-name=google-cloud-video-transcoder-v1beta1", - "ruby-cloud-product-url=https://cloud.google.com/transcoder/", - ], - grpc_service_config = "transcoder_grpc_service_config.json", - ruby_cloud_description = "The Transcoder API allows you to convert video files and package them for optimized delivery to web, mobile and connected TVs.", - ruby_cloud_title = "Transcoder V1beta1", - deps = [ - ":transcoder_ruby_grpc", - ":transcoder_ruby_proto", - ], -) - -# Open Source Packages -ruby_gapic_assembly_pkg( - name = "google-cloud-video-transcoder-v1beta1-ruby", - deps = [ - ":transcoder_ruby_gapic", - ":transcoder_ruby_grpc", - ":transcoder_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 = "transcoder_csharp_proto", - deps = [":transcoder_proto"], -) - -csharp_grpc_library( - name = "transcoder_csharp_grpc", - srcs = [":transcoder_proto"], - deps = [":transcoder_csharp_proto"], -) - -csharp_gapic_library( - name = "transcoder_csharp_gapic", - srcs = [":transcoder_proto_with_info"], - common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "transcoder_grpc_service_config.json", - deps = [ - ":transcoder_csharp_grpc", - ":transcoder_csharp_proto", - ], -) - -# Open Source Packages -csharp_gapic_assembly_pkg( - name = "google-cloud-video-transcoder-v1beta1-csharp", - deps = [ - ":transcoder_csharp_gapic", - ":transcoder_csharp_grpc", - ":transcoder_csharp_proto", - ], -) - -############################################################################## -# C++ -############################################################################## -# Put your C++ rules here diff --git a/google/cloud/video/transcoder/v1beta1/resources.proto b/google/cloud/video/transcoder/v1beta1/resources.proto deleted file mode 100644 index 650b79885..000000000 --- a/google/cloud/video/transcoder/v1beta1/resources.proto +++ /dev/null @@ -1,944 +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 google.cloud.video.transcoder.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/timestamp.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/video/transcoder/v1beta1;transcoder"; -option java_multiple_files = true; -option java_outer_classname = "ResourcesProto"; -option java_package = "com.google.cloud.video.transcoder.v1beta1"; - -// Transcoding job resource. -message Job { - option (google.api.resource) = { - type: "transcoder.googleapis.com/Job" - pattern: "projects/{project}/locations/{location}/jobs/{job}" - }; - - // The origin URI. - message OriginUri { - // HLS manifest URI per https://tools.ietf.org/html/rfc8216#section-4.3.4. - // If multiple HLS manifests are created, only the first one is listed. - string hls = 1; - - // Dash manifest URI. If multiple Dash manifests are created, only the first - // one is listed. - string dash = 2; - } - - // The current state of the job. - enum ProcessingState { - // The processing state is not specified. - PROCESSING_STATE_UNSPECIFIED = 0; - - // The job is enqueued and will be picked up for processing soon. - PENDING = 1; - - // The job is being processed. - RUNNING = 2; - - // The job has been completed successfully. - SUCCEEDED = 3; - - // The job has failed. For additional information, see `failure_reason` and - // `failure_details` - FAILED = 4; - } - - // The resource name of the job. - // Format: `projects/{project}/locations/{location}/jobs/{job}` - string name = 1; - - // Input only. Specify the `input_uri` to populate empty `uri` fields in each element of - // `Job.config.inputs` or `JobTemplate.config.inputs` when using template. - // URI of the media. Input files must be at least 5 seconds in duration and - // stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). - string input_uri = 2 [(google.api.field_behavior) = INPUT_ONLY]; - - // Input only. Specify the `output_uri` to populate an empty `Job.config.output.uri` or - // `JobTemplate.config.output.uri` when using template. - // URI for the output file(s). For example, `gs://my-bucket/outputs/`. - string output_uri = 3 [(google.api.field_behavior) = INPUT_ONLY]; - - // Specify the `job_config` for the transcoding job. If you don't specify the - // `job_config`, the API selects `templateId`; this template ID is set to - // `preset/web-hd` by default. When you use a `template_id` to create a job, - // the `Job.config` is populated by the `JobTemplate.config`.
- oneof job_config { - // Input only. Specify the `template_id` to use for populating `Job.config`. The default - // is `preset/web-hd`. - // - // Preset Transcoder templates: - // - `preset/{preset_id}` - // - // - User defined JobTemplate: - // `{job_template_id}` - string template_id = 4 [(google.api.field_behavior) = INPUT_ONLY]; - - // The configuration for this job. - JobConfig config = 5; - } - - // Specify the priority of the job. Enter a value between 0 and 100, where 0 - // is the lowest priority and 100 is the highest priority. The default is 0. - int32 priority = 6; - - // Output only. The origin URI. - //

- OriginUri origin_uri = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The current state of the job. - ProcessingState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Estimated fractional progress, from `0` to `1` for each - // step. - // - Progress progress = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A description of the reason for the failure. This property is - // always present when `state` is `FAILED`. - string failure_reason = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. List of failure details. This property may contain additional - // information about the failure when `failure_reason` is present. - // - repeated FailureDetail failure_details = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time the job was created. - google.protobuf.Timestamp create_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time the transcoding started. - google.protobuf.Timestamp start_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The time the transcoding finished. - google.protobuf.Timestamp end_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Job time to live value in days, which will be effective after job - // completion. Job should be deleted automatically after the given TTL. Enter - // a value between 1 and 90. The default is 30. - int32 ttl_after_completion_days = 15; -} - -// Transcoding job template resource. -message JobTemplate { - option (google.api.resource) = { - type: "transcoder.googleapis.com/JobTemplate" - pattern: "projects/{project}/locations/{location}/jobTemplates/{job_template}" - }; - - // The resource name of the job template. - // Format: - // `projects/{project}/locations/{location}/jobTemplates/{job_template}` - string name = 1; - - // The configuration for this template. - JobConfig config = 2; -} - -// Job configuration -message JobConfig { - // List of input assets stored in Cloud Storage. - repeated Input inputs = 1; - - // List of `Edit atom`s. Defines the ultimate timeline of the resulting - // file or manifest. - repeated EditAtom edit_list = 2; - - // List of elementary streams. - repeated ElementaryStream elementary_streams = 3; - - // List of multiplexing settings for output streams. - repeated MuxStream mux_streams = 4; - - // List of output manifests. - repeated Manifest manifests = 5; - - // Output configuration. - Output output = 6; - - // List of ad breaks. Specifies where to insert ad break tags in the output - // manifests. - repeated AdBreak ad_breaks = 7; - - // Destination on Pub/Sub. - PubsubDestination pubsub_destination = 8; - - // List of output sprite sheets. - repeated SpriteSheet sprite_sheets = 9; - - // List of overlays on the output video, in descending Z-order. - repeated Overlay overlays = 10; -} - -// Input asset. -message Input { - // A unique key for this input. Must be specified when using advanced - // mapping and edit lists. - string key = 1; - - // URI of the media. Input files must be at least 5 seconds in duration and - // stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). - // If empty, the value will be populated from `Job.input_uri`. - string uri = 2; - - // Preprocessing configurations. - PreprocessingConfig preprocessing_config = 3; -} - -// Location of output file(s) in a Cloud Storage bucket. -message Output { - // URI for the output file(s). For example, `gs://my-bucket/outputs/`. - // If empty the value is populated from `Job.output_uri`. - string uri = 1; -} - -// Edit atom. -message EditAtom { - // A unique key for this atom. Must be specified when using advanced - // mapping. - string key = 1; - - // List of `Input.key`s identifying files that should be used in this atom. - // The listed `inputs` must have the same timeline. - repeated string inputs = 2; - - // End time in seconds for the atom, relative to the input file timeline. - // When `end_time_offset` is not specified, the `inputs` are used until - // the end of the atom. - google.protobuf.Duration end_time_offset = 3; - - // Start time in seconds for the atom, relative to the input file timeline. - // The default is `0s`. - google.protobuf.Duration start_time_offset = 4; -} - -// Ad break. -message AdBreak { - // Start time in seconds for the ad break, relative to the output file - // timeline. The default is `0s`. - google.protobuf.Duration start_time_offset = 1; -} - -// Encoding of an input file such as an audio, video, or text track. -// Elementary streams must be packaged before -// mapping and sharing between different output formats. -message ElementaryStream { - // A unique key for this elementary stream. - string key = 4; - - // Encoding of an audio, video, or text track. - oneof elementary_stream { - // Encoding of a video stream. - VideoStream video_stream = 1; - - // Encoding of an audio stream. - AudioStream audio_stream = 2; - - // Encoding of a text stream. For example, closed captions or subtitles. - TextStream text_stream = 3; - } -} - -// Multiplexing settings for output stream. -message MuxStream { - // A unique key for this multiplexed stream. HLS media manifests will be - // named `MuxStream.key` with the `".m3u8"` extension suffix. - string key = 1; - - // The name of the generated file. The default is `MuxStream.key` with the - // extension suffix corresponding to the `MuxStream.container`. - // - // Individual segments also have an incremental 10-digit zero-padded suffix - // starting from 0 before the extension, such as `"mux_stream0000000123.ts"`. - string file_name = 2; - - // The container format. The default is `"mp4"` - // - // Supported container formats: - // - 'ts' - // - 'fmp4'- the corresponding file extension is `".m4s"` - // - 'mp4' - // - 'vtt' - string container = 3; - - // List of `ElementaryStream.key`s multiplexed in this stream. - repeated string elementary_streams = 4; - - // Segment settings for `"ts"`, `"fmp4"` and `"vtt"`. - SegmentSettings segment_settings = 5; - - // Encryption settings. - Encryption encryption = 6; -} - -// Manifest configuration. -message Manifest { - // The manifest type can be either `"HLS"` or `"DASH"`. - enum ManifestType { - // The manifest type is not specified. - MANIFEST_TYPE_UNSPECIFIED = 0; - - // Create `"HLS"` manifest. The corresponding file extension is `".m3u8"`. - HLS = 1; - - // Create `"DASH"` manifest. The corresponding file extension is `".mpd"`. - DASH = 2; - } - - // The name of the generated file. The default is `"manifest"` with the - // extension suffix corresponding to the `Manifest.type`. - string file_name = 1; - - // Required. Type of the manifest, can be "HLS" or "DASH". - ManifestType type = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. List of user given `MuxStream.key`s that should appear in this manifest. - // - // When `Manifest.type` is `HLS`, a media manifest with name `MuxStream.key` - // and `.m3u8` extension is generated for each element of the - // `Manifest.mux_streams`. - repeated string mux_streams = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// A Pub/Sub destination. -message PubsubDestination { - // The name of the Pub/Sub topic to publish job completion notification - // to. For example: `projects/{project}/topics/{topic}`. - string topic = 1; -} - -// Sprite sheet configuration. -message SpriteSheet { - // Format type. The default is `"jpeg"`. - // - // Supported formats: - // - 'jpeg' - string format = 1; - - // Required. File name prefix for the generated sprite sheets. - // - // Each sprite sheet has an incremental 10-digit zero-padded suffix starting - // from 0 before the extension, such as `"sprite_sheet0000000123.jpeg"`. - string file_prefix = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The width of sprite in pixels. Must be an even integer. To preserve the - // source aspect ratio, set the [SpriteSheet.sprite_width_pixels][google.cloud.video.transcoder.v1beta1.SpriteSheet.sprite_width_pixels] field or - // the [SpriteSheet.sprite_height_pixels][google.cloud.video.transcoder.v1beta1.SpriteSheet.sprite_height_pixels] field, but not both (the API will - // automatically calculate the missing field). - int32 sprite_width_pixels = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The height of sprite in pixels. Must be an even integer. To preserve the - // source aspect ratio, set the [SpriteSheet.sprite_height_pixels][google.cloud.video.transcoder.v1beta1.SpriteSheet.sprite_height_pixels] field or - // the [SpriteSheet.sprite_width_pixels][google.cloud.video.transcoder.v1beta1.SpriteSheet.sprite_width_pixels] field, but not both (the API will - // automatically calculate the missing field). - int32 sprite_height_pixels = 4 [(google.api.field_behavior) = REQUIRED]; - - // The maximum number of sprites per row in a sprite sheet. The default is 0, - // which indicates no maximum limit. - int32 column_count = 5; - - // The maximum number of rows per sprite sheet. When the sprite sheet is full, - // a new sprite sheet is created. The default is 0, which indicates no maximum - // limit. - int32 row_count = 6; - - // Start time in seconds, relative to the output file timeline. Determines the - // first sprite to pick. The default is `0s`. - google.protobuf.Duration start_time_offset = 7; - - // End time in seconds, relative to the output file timeline. When - // `end_time_offset` is not specified, the sprites are generated until the end - // of the output file. - google.protobuf.Duration end_time_offset = 8; - - // Specify either total number of sprites or interval to create sprites. - oneof extraction_strategy { - // Total number of sprites. Create the specified number of sprites - // distributed evenly across the timeline of the output media. The default - // is 100. - int32 total_count = 9; - - // Starting from `0s`, create sprites at regular intervals. Specify the - // interval value in seconds. - google.protobuf.Duration interval = 10; - } - - // The quality of the generated sprite sheet. Enter a value between 1 - // and 100, where 1 is the lowest quality and 100 is the highest quality. - // The default is 100. A high quality value corresponds to a low image data - // compression ratio. - int32 quality = 11; -} - -// Overlay configuration. -message Overlay { - // 2D normalized coordinates. Default: `{0.0, 0.0}` - message NormalizedCoordinate { - // Normalized x coordinate. - double x = 1; - - // Normalized y coordinate. - double y = 2; - } - - // Overlaid jpeg image. - message Image { - // Required. URI of the JPEG image in Cloud Storage. For example, - // `gs://bucket/inputs/image.jpeg`. JPEG is the only supported image type. - string uri = 1 [(google.api.field_behavior) = REQUIRED]; - - // Normalized image resolution, based on output video resolution. Valid - // values: `0.0`–`1.0`. To respect the original image aspect ratio, set - // either `x` or `y` to `0.0`. To use the original image resolution, set - // both `x` and `y` to `0.0`. - NormalizedCoordinate resolution = 2; - - // 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 alpha = 3; - } - - // Display static overlay object. - message AnimationStatic { - // Normalized coordinates based on output video resolution. Valid - // values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay - // object. 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 xy = 1; - - // The time to start displaying the overlay object, in seconds. Default: 0 - google.protobuf.Duration start_time_offset = 2; - } - - // Display overlay object with fade animation. - message AnimationFade { - // Required. Type of fade animation: `FADE_IN` or `FADE_OUT`. - FadeType fade_type = 1 [(google.api.field_behavior) = REQUIRED]; - - // Normalized coordinates based on output video resolution. Valid - // values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay - // object. 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 xy = 2; - - // The time to start the fade animation, in seconds. Default: 0 - google.protobuf.Duration start_time_offset = 3; - - // The time to end the fade animation, in seconds. Default: - // `start_time_offset` + 1s - google.protobuf.Duration end_time_offset = 4; - } - - // End previous overlay animation from the video. Without AnimationEnd, the - // overlay object will keep the state of previous animation until the end of - // the video. - message AnimationEnd { - // The time to end overlay object, in seconds. Default: 0 - google.protobuf.Duration start_time_offset = 1; - } - - // Animation types. - message Animation { - // Animations can be static or fade, or they can end the previous animation. - oneof animation_type { - // Display static overlay object. - AnimationStatic animation_static = 1; - - // Display overlay object with fade animation. - AnimationFade animation_fade = 2; - - // End previous animation. - AnimationEnd animation_end = 3; - } - } - - // Fade type for the overlay: `FADE_IN` or `FADE_OUT`. - enum FadeType { - // The fade type is not specified. - FADE_TYPE_UNSPECIFIED = 0; - - // Fade the overlay object into view. - FADE_IN = 1; - - // Fade the overlay object out of view. - FADE_OUT = 2; - } - - // Image overlay. - Image image = 1; - - // List of Animations. The list should be chronological, without any time - // overlap. - repeated Animation animations = 2; -} - -// Preprocessing configurations. -message PreprocessingConfig { - // Color preprocessing configuration. - message Color { - // Control color saturation of the video. Enter a value between -1 and 1, - // where -1 is fully desaturated and 1 is maximum saturation. 0 is no - // change. The default is 0. - double saturation = 1; - - // Control black and white contrast of the video. Enter a value between -1 - // and 1, where -1 is minimum contrast and 1 is maximum contrast. 0 is no - // change. The default is 0. - double contrast = 2; - - // Control brightness of the video. Enter a value between -1 and 1, where -1 - // is minimum brightness and 1 is maximum brightness. 0 is no change. The - // default is 0. - double brightness = 3; - } - - // Denoise preprocessing configuration. - message Denoise { - // Set strength of the denoise. Enter a value between 0 and 1. The higher - // the value, the smoother the image. 0 is no denoising. The default is 0. - double strength = 1; - - // Set the denoiser mode. The default is `"standard"`. - // - // Supported denoiser modes: - // - 'standard' - // - 'grain' - string tune = 2; - } - - // Deblock preprocessing configuration. - message Deblock { - // Set strength of the deblocker. Enter a value between 0 and 1. The higher - // the value, the stronger the block removal. 0 is no deblocking. The - // default is 0. - double strength = 1; - - // Enable deblocker. The default is `false`. - bool enabled = 2; - } - - // Audio preprocessing configuration. - message Audio { - // Specify audio loudness normalization in loudness units relative to full - // scale (LUFS). Enter a value between -24 and 0 (the default), where: - // - // * -24 is the Advanced Television Systems Committee (ATSC A/85) standard - // * -23 is the EU R128 broadcast standard - // * -19 is the prior standard for online mono audio - // * -18 is the ReplayGain standard - // * -16 is the prior standard for stereo audio - // * -14 is the new online audio standard recommended by Spotify, as well - // as Amazon Echo - // * 0 disables normalization - double lufs = 1; - - // Enable boosting high frequency components. The default is `false`. - bool high_boost = 2; - - // Enable boosting low frequency components. The default is `false`. - bool low_boost = 3; - } - - // Video cropping configuration for the input video. The cropped input video - // is scaled to match the output resolution. - message Crop { - // The number of pixels to crop from the top. The default is 0. - int32 top_pixels = 1; - - // The number of pixels to crop from the bottom. The default is 0. - int32 bottom_pixels = 2; - - // The number of pixels to crop from the left. The default is 0. - int32 left_pixels = 3; - - // The number of pixels to crop from the right. The default is 0. - int32 right_pixels = 4; - } - - // Pad filter configuration for the input video. The padded input video - // is scaled after padding with black to match the output resolution. - message Pad { - // The number of pixels to add to the top. The default is 0. - int32 top_pixels = 1; - - // The number of pixels to add to the bottom. The default is 0. - int32 bottom_pixels = 2; - - // The number of pixels to add to the left. The default is 0. - int32 left_pixels = 3; - - // The number of pixels to add to the right. The default is 0. - int32 right_pixels = 4; - } - - // Color preprocessing configuration. - Color color = 1; - - // Denoise preprocessing configuration. - Denoise denoise = 2; - - // Deblock preprocessing configuration. - Deblock deblock = 3; - - // Audio preprocessing configuration. - Audio audio = 4; - - // Specify the video cropping configuration. - Crop crop = 5; - - // Specify the video pad filter configuration. - Pad pad = 6; -} - -// Video stream resource. -message VideoStream { - // Codec type. The following codecs are supported: - // - // * `h264` (default) - // * `h265` - // * `vp9` - string codec = 1; - - // Enforces the specified codec profile. The following profiles are supported: - // - // * `baseline` - // * `main` - // * `high` (default) - // - // The available options are - // FFmpeg-compatible. Note that certain values for this - // field may cause the transcoder to override other fields you set in the - // `VideoStream` message. - string profile = 2; - - // Enforces the specified codec tune. The available options are - // FFmpeg-compatible. Note that certain values for this - // field may cause the transcoder to override other fields you set in the - // `VideoStream` message. - string tune = 3; - - // Enforces the specified codec preset. The default is `veryfast`. The - // available options are - // FFmpeg-compatible. Note that certain values for this - // field may cause the transcoder to override other fields you set in the - // `VideoStream` message. - string preset = 4; - - // The height of the video in pixels. Must be an even integer. - // When not specified, the height is adjusted to match the specified width and - // input aspect ratio. If both are omitted, the input height is used. - int32 height_pixels = 5; - - // The width of the video in pixels. Must be an even integer. - // When not specified, the width is adjusted to match the specified height and - // input aspect ratio. If both are omitted, the input width is used. - int32 width_pixels = 6; - - // Pixel format to use. The default is `"yuv420p"`. - // - // Supported pixel formats: - // - 'yuv420p' pixel format. - // - 'yuv422p' pixel format. - // - 'yuv444p' pixel format. - // - 'yuv420p10' 10-bit HDR pixel format. - // - 'yuv422p10' 10-bit HDR pixel format. - // - 'yuv444p10' 10-bit HDR pixel format. - // - 'yuv420p12' 12-bit HDR pixel format. - // - 'yuv422p12' 12-bit HDR pixel format. - // - 'yuv444p12' 12-bit HDR pixel format. - string pixel_format = 7; - - // Required. The video bitrate in bits per second. The minimum value is 1,000. - // The maximum value for H264/H265 is 800,000,000. The maximum value for VP9 - // is 480,000,000. - int32 bitrate_bps = 8 [(google.api.field_behavior) = REQUIRED]; - - // Specify the `rate_control_mode`. The default is `"vbr"`. - // - // Supported rate control modes: - // - 'vbr' - variable bitrate - // - 'crf' - constant rate factor - string rate_control_mode = 9; - - // Use two-pass encoding strategy to achieve better video quality. - // `VideoStream.rate_control_mode` must be `"vbr"`. The default is `false`. - bool enable_two_pass = 10; - - // Target CRF level. Must be between 10 and 36, where 10 is the highest - // quality and 36 is the most efficient compression. The default is 21. - int32 crf_level = 11; - - // Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater - // than zero. The default is equal to `VideoStream.bitrate_bps`. - int32 vbv_size_bits = 12; - - // Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must - // be greater than zero. The default is equal to 90% of - // `VideoStream.vbv_size_bits`. - int32 vbv_fullness_bits = 13; - - // Specifies whether an open Group of Pictures (GOP) structure should be - // allowed or not. The default is `false`. - bool allow_open_gop = 14; - - // GOP mode can be either by frame count or duration. - oneof gop_mode { - // Select the GOP size based on the specified frame count. Must be greater - // than zero. - int32 gop_frame_count = 15; - - // Select the GOP size based on the specified duration. The default is - // `"3s"`. Note that `gopDuration` must be less than or equal to - // [`segmentDuration`](#SegmentSettings), and - // [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`. - google.protobuf.Duration gop_duration = 16; - } - - // The entropy coder to use. The default is `"cabac"`. - // - // Supported entropy coders: - // - 'cavlc' - // - 'cabac' - string entropy_coder = 17; - - // Allow B-pyramid for reference frame selection. This may not be supported - // on all decoders. The default is `false`. - bool b_pyramid = 18; - - // The number of consecutive B-frames. Must be greater than or equal to zero. - // Must be less than `VideoStream.gop_frame_count` if set. The default is 0. - int32 b_frame_count = 19; - - // Required. The target video frame rate in frames per second (FPS). Must be less than - // or equal to 120. Will default to the input frame rate if larger than the - // input frame rate. The API will generate an output FPS that is divisible by - // the input FPS, and smaller or equal to the target FPS. See - // [Calculate frame - // rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for - // more information. - double frame_rate = 20 [(google.api.field_behavior) = REQUIRED]; - - // Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and - // 1, where 0 disables the quantizer and 1 maximizes the quantizer. A - // higher value equals a lower bitrate but smoother image. The default is 0. - double aq_strength = 21; -} - -// Audio stream resource. -message AudioStream { - // The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`. - message AudioAtom { - // The audio channel. - message AudioChannel { - // Identifies which input file, track, and channel should be used. - message AudioChannelInput { - // Required. The `Input.key` that identifies the input file. - string key = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The zero-based index of the track in the input file. - int32 track = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The zero-based index of the channel in the input file. - int32 channel = 3 [(google.api.field_behavior) = REQUIRED]; - - // Audio volume control in dB. Negative values decrease volume, - // positive values increase. The default is 0. - double gain_db = 4; - } - - // List of `Job.inputs` for this audio channel. - repeated AudioChannelInput inputs = 2; - } - - // Required. The `EditAtom.key` that references the atom with audio inputs in the - // `Job.edit_list`. - string key = 1 [(google.api.field_behavior) = REQUIRED]; - - // List of `Channel`s for this audio stream. - // for in-depth explanation. - repeated AudioChannel channels = 2; - } - - // The codec for this audio stream. The default is `"aac"`. - // - // Supported audio codecs: - // - 'aac' - // - 'aac-he' - // - 'aac-he-v2' - // - 'mp3' - // - 'ac3' - // - 'eac3' - string codec = 1; - - // Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000. - int32 bitrate_bps = 2 [(google.api.field_behavior) = REQUIRED]; - - // Number of audio channels. Must be between 1 and 6. The default is 2. - int32 channel_count = 3; - - // A list of channel names specifying layout of the audio channels. - // This only affects the metadata embedded in the container headers, if - // supported by the specified format. The default is `["fl", "fr"]`. - // - // Supported channel names: - // - 'fl' - Front left channel - // - 'fr' - Front right channel - // - 'sl' - Side left channel - // - 'sr' - Side right channel - // - 'fc' - Front center channel - // - 'lfe' - Low frequency - repeated string channel_layout = 4; - - // The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`. - repeated AudioAtom mapping = 5; - - // The audio sample rate in Hertz. The default is 48000 Hertz. - int32 sample_rate_hertz = 6; -} - -// Encoding of a text stream. For example, closed captions or subtitles. -message TextStream { - // The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`. - message TextAtom { - // Identifies which input file and track should be used. - message TextInput { - // Required. The `Input.key` that identifies the input file. - string key = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The zero-based index of the track in the input file. - int32 track = 2 [(google.api.field_behavior) = REQUIRED]; - } - - // Required. The `EditAtom.key` that references atom with text inputs in the - // `Job.edit_list`. - string key = 1 [(google.api.field_behavior) = REQUIRED]; - - // List of `Job.inputs` that should be embedded in this atom. Only one - // input is supported. - repeated TextInput inputs = 2; - } - - // The codec for this text stream. The default is `"webvtt"`. - // - // Supported text codecs: - // - 'srt' - // - 'ttml' - // - 'cea608' - // - 'cea708' - // - 'webvtt' - string codec = 1; - - // Required. The BCP-47 language code, such as `"en-US"` or `"sr-Latn"`. For more - // information, see - // https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. - string language_code = 2 [(google.api.field_behavior) = REQUIRED]; - - // The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`. - repeated TextAtom mapping = 3; -} - -// Segment settings for `"ts"`, `"fmp4"` and `"vtt"`. -message SegmentSettings { - // Duration of the segments in seconds. The default is `"6.0s"`. Note that - // `segmentDuration` must be greater than or equal to - // [`gopDuration`](#videostream), and `segmentDuration` must be divisible by - // [`gopDuration`](#videostream). - google.protobuf.Duration segment_duration = 1; - - // Required. Create an individual segment file. The default is `false`. - bool individual_segments = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// Encryption settings. -message Encryption { - // Configuration for AES-128 encryption. - message Aes128Encryption { - // Required. URI of the key delivery service. This URI is inserted into the M3U8 - // header. - string key_uri = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Configuration for SAMPLE-AES encryption. - message SampleAesEncryption { - // Required. URI of the key delivery service. This URI is inserted into the M3U8 - // header. - string key_uri = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Configuration for MPEG Common Encryption (MPEG-CENC). - message MpegCommonEncryption { - // Required. 128 bit Key ID represented as lowercase hexadecimal digits for use with - // common encryption. - string key_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Specify the encryption scheme. - // - // Supported encryption schemes: - // - 'cenc' - // - 'cbcs' - string scheme = 2 [(google.api.field_behavior) = REQUIRED]; - } - - // Required. 128 bit encryption key represented as lowercase hexadecimal digits. - string key = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. 128 bit Initialization Vector (IV) represented as lowercase hexadecimal - // digits. - string iv = 2 [(google.api.field_behavior) = REQUIRED]; - - // Encryption mode can be either `aes` or `cenc`. - oneof encryption_mode { - // Configuration for AES-128 encryption. - Aes128Encryption aes_128 = 3; - - // Configuration for SAMPLE-AES encryption. - SampleAesEncryption sample_aes = 4; - - // Configuration for MPEG Common Encryption (MPEG-CENC). - MpegCommonEncryption mpeg_cenc = 5; - } -} - -// Estimated fractional progress for each step, from `0` to `1`. -message Progress { - // Estimated fractional progress for `analyzing` step. - double analyzed = 1; - - // Estimated fractional progress for `encoding` step. - double encoded = 2; - - // Estimated fractional progress for `uploading` step. - double uploaded = 3; - - // Estimated fractional progress for `notifying` step. - double notified = 4; -} - -// Additional information about the reasons for the failure. -message FailureDetail { - // A description of the failure. - string description = 1; -} diff --git a/google/cloud/video/transcoder/v1beta1/services.proto b/google/cloud/video/transcoder/v1beta1/services.proto deleted file mode 100644 index 1cfa185e6..000000000 --- a/google/cloud/video/transcoder/v1beta1/services.proto +++ /dev/null @@ -1,249 +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 google.cloud.video.transcoder.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/video/transcoder/v1beta1/resources.proto"; -import "google/protobuf/empty.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/video/transcoder/v1beta1;transcoder"; -option java_multiple_files = true; -option java_outer_classname = "ServicesProto"; -option java_package = "com.google.cloud.video.transcoder.v1beta1"; - -// Using the Transcoder API, you can queue asynchronous jobs for transcoding -// media into various output formats. Output formats may include different -// streaming standards such as HTTP Live Streaming (HLS) and Dynamic Adaptive -// Streaming over HTTP (DASH). You can also customize jobs using advanced -// features such as Digital Rights Management (DRM), audio equalization, content -// concatenation, and digital ad-stitch ready content generation. -service TranscoderService { - option deprecated = true; - option (google.api.default_host) = "transcoder.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - - // Creates a job in the specified region. - rpc CreateJob(CreateJobRequest) returns (Job) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/locations/*}/jobs" - body: "job" - }; - option (google.api.method_signature) = "parent,job"; - } - - // Lists jobs in the specified region. - rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/locations/*}/jobs" - }; - option (google.api.method_signature) = "parent"; - } - - // Returns the job data. - rpc GetJob(GetJobRequest) returns (Job) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/locations/*/jobs/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Deletes a job. - rpc DeleteJob(DeleteJobRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/locations/*/jobs/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Creates a job template in the specified region. - rpc CreateJobTemplate(CreateJobTemplateRequest) returns (JobTemplate) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/locations/*}/jobTemplates" - body: "job_template" - }; - option (google.api.method_signature) = "parent,job_template,job_template_id"; - } - - // Lists job templates in the specified region. - rpc ListJobTemplates(ListJobTemplatesRequest) returns (ListJobTemplatesResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/locations/*}/jobTemplates" - }; - option (google.api.method_signature) = "parent"; - } - - // Returns the job template data. - rpc GetJobTemplate(GetJobTemplateRequest) returns (JobTemplate) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/locations/*/jobTemplates/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Deletes a job template. - rpc DeleteJobTemplate(DeleteJobTemplateRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/locations/*/jobTemplates/*}" - }; - option (google.api.method_signature) = "name"; - } -} - -// Request message for `TranscoderService.CreateJob`. -message CreateJobRequest { - // Required. The parent location to create and process this job. - // Format: `projects/{project}/locations/{location}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. Parameters for creating transcoding job. - Job job = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for `TranscoderService.ListJobs`. -// The parent location from which to retrieve the collection of jobs. -message ListJobsRequest { - // Required. Format: `projects/{project}/locations/{location}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // The maximum number of items to return. - int32 page_size = 2; - - // The `next_page_token` value returned from a previous List request, if - // any. - string page_token = 3; -} - -// Request message for `TranscoderService.GetJob`. -message GetJobRequest { - // Required. The name of the job to retrieve. - // Format: `projects/{project}/locations/{location}/jobs/{job}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "transcoder.googleapis.com/Job" - } - ]; -} - -// Request message for `TranscoderService.DeleteJob`. -message DeleteJobRequest { - // Required. The name of the job to delete. - // Format: `projects/{project}/locations/{location}/jobs/{job}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "transcoder.googleapis.com/Job" - } - ]; -} - -// Response message for `TranscoderService.ListJobs`. -message ListJobsResponse { - // List of jobs in the specified region. - repeated Job jobs = 1; - - // The pagination token. - string next_page_token = 2; -} - -// Request message for `TranscoderService.CreateJobTemplate`. -message CreateJobTemplateRequest { - // Required. The parent location to create this job template. - // Format: `projects/{project}/locations/{location}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. Parameters for creating job template. - JobTemplate job_template = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The ID to use for the job template, which will become the final component - // of the job template's resource name. - // - // This value should be 4-63 characters, and valid characters must match the - // regular expression `[a-zA-Z][a-zA-Z0-9_-]*`. - string job_template_id = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for `TranscoderService.ListJobTemplates`. -message ListJobTemplatesRequest { - // Required. The parent location from which to retrieve the collection of job templates. - // Format: `projects/{project}/locations/{location}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // The maximum number of items to return. - int32 page_size = 2; - - // The `next_page_token` value returned from a previous List request, if - // any. - string page_token = 3; -} - -// Request message for `TranscoderService.GetJobTemplate`. -message GetJobTemplateRequest { - // Required. The name of the job template to retrieve. - // Format: - // `projects/{project}/locations/{location}/jobTemplates/{job_template}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "transcoder.googleapis.com/JobTemplate" - } - ]; -} - -// Request message for `TranscoderService.DeleteJobTemplate`. -message DeleteJobTemplateRequest { - // Required. The name of the job template to delete. - // `projects/{project}/locations/{location}/jobTemplates/{job_template}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "transcoder.googleapis.com/JobTemplate" - } - ]; -} - -// Response message for `TranscoderService.ListJobTemplates`. -message ListJobTemplatesResponse { - // List of job templates in the specified region. - repeated JobTemplate job_templates = 1; - - // The pagination token. - string next_page_token = 2; -} diff --git a/google/cloud/video/transcoder/v1beta1/transcoder_grpc_service_config.json b/google/cloud/video/transcoder/v1beta1/transcoder_grpc_service_config.json deleted file mode 100644 index 32cd39271..000000000 --- a/google/cloud/video/transcoder/v1beta1/transcoder_grpc_service_config.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "methodConfig": [{ - "name": [{ "service": "google.cloud.video.transcoder.v1beta1.TranscoderService" }], - "timeout": "60s", - "retryPolicy": { - "maxAttempts": 5, - "initialBackoff": "1s", - "maxBackoff": "10s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": ["UNAVAILABLE"] - } - }, - { - "name": [ - { "service": "google.cloud.video.transcoder.v1beta1.TranscoderService", "method": "CreateJob" }, - { "service": "google.cloud.video.transcoder.v1beta1.TranscoderService", "method": "ListJobs" }, - { "service": "google.cloud.video.transcoder.v1beta1.TranscoderService", "method": "GetJob" }, - { "service": "google.cloud.video.transcoder.v1beta1.TranscoderService", "method": "DeleteJob" }, - { "service": "google.cloud.video.transcoder.v1beta1.TranscoderService", "method": "CreateJobTemplate" }, - { "service": "google.cloud.video.transcoder.v1beta1.TranscoderService", "method": "ListJobTemplates" }, - { "service": "google.cloud.video.transcoder.v1beta1.TranscoderService", "method": "GetJobTemplate" }, - { "service": "google.cloud.video.transcoder.v1beta1.TranscoderService", "method": "DeleteJobTemplate" } - ], - "timeout": "60s" - }] -} diff --git a/google/cloud/video/transcoder/v1beta1/transcoder_v1beta1.yaml b/google/cloud/video/transcoder/v1beta1/transcoder_v1beta1.yaml deleted file mode 100644 index fff041e53..000000000 --- a/google/cloud/video/transcoder/v1beta1/transcoder_v1beta1.yaml +++ /dev/null @@ -1,24 +0,0 @@ -type: google.api.Service -config_version: 3 -name: transcoder.googleapis.com -title: Transcoder API - -apis: -- name: google.cloud.video.transcoder.v1beta1.TranscoderService - -documentation: - summary: |- - This API converts video files into formats suitable for consumer - distribution. - -backend: - rules: - - selector: 'google.cloud.video.transcoder.v1beta1.TranscoderService.*' - deadline: 30.0 - -authentication: - rules: - - selector: 'google.cloud.video.transcoder.v1beta1.TranscoderService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/videointelligence/v1/BUILD.bazel b/google/cloud/videointelligence/v1/BUILD.bazel index 4848beadc..b29e40e01 100644 --- a/google/cloud/videointelligence/v1/BUILD.bazel +++ b/google/cloud/videointelligence/v1/BUILD.bazel @@ -64,6 +64,7 @@ java_gapic_library( test_deps = [ ":videointelligence_java_grpc", ], + transport = "grpc+rest", deps = [ ":videointelligence_java_proto", ], @@ -72,6 +73,7 @@ java_gapic_library( java_gapic_test( name = "videointelligence_java_gapic_test_suite", test_classes = [ + "com.google.cloud.videointelligence.v1.VideoIntelligenceServiceClientHttpJsonTest", "com.google.cloud.videointelligence.v1.VideoIntelligenceServiceClientTest", ], runtime_deps = [":videointelligence_java_gapic_test"], @@ -80,6 +82,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-videointelligence-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":videointelligence_java_gapic", ":videointelligence_java_grpc", @@ -117,6 +121,7 @@ go_gapic_library( grpc_service_config = "videointelligence_grpc_service_config.json", importpath = "cloud.google.com/go/videointelligence/apiv1;videointelligence", service_yaml = "videointelligence_v1.yaml", + transport = "grpc+rest", deps = [ ":videointelligence_go_proto", "//google/longrunning:longrunning_go_proto", @@ -150,12 +155,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "videointelligence_py_gapic", srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "videointelligence_py_gapic_test", + srcs = [ + "videointelligence_py_gapic_pytest.py", + "videointelligence_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":videointelligence_py_gapic"], ) py_gapic_assembly_pkg( @@ -316,6 +333,7 @@ csharp_gapic_library( srcs = [":videointelligence_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "videointelligence_grpc_service_config.json", + service_yaml = "videointelligence_v1.yaml", deps = [ ":videointelligence_csharp_grpc", ":videointelligence_csharp_proto", diff --git a/google/cloud/videointelligence/v1beta2/BUILD.bazel b/google/cloud/videointelligence/v1beta2/BUILD.bazel index 29441a89f..0acc55229 100644 --- a/google/cloud/videointelligence/v1beta2/BUILD.bazel +++ b/google/cloud/videointelligence/v1beta2/BUILD.bazel @@ -64,6 +64,7 @@ java_gapic_library( test_deps = [ ":videointelligence_java_grpc", ], + transport = "grpc+rest", deps = [ ":videointelligence_java_proto", ], @@ -72,6 +73,7 @@ java_gapic_library( java_gapic_test( name = "videointelligence_java_gapic_test_suite", test_classes = [ + "com.google.cloud.videointelligence.v1beta2.VideoIntelligenceServiceClientHttpJsonTest", "com.google.cloud.videointelligence.v1beta2.VideoIntelligenceServiceClientTest", ], runtime_deps = [":videointelligence_java_gapic_test"], @@ -80,6 +82,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-videointelligence-v1beta2-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":videointelligence_java_gapic", ":videointelligence_java_grpc", @@ -117,6 +121,7 @@ go_gapic_library( grpc_service_config = "videointelligence_grpc_service_config.json", importpath = "cloud.google.com/go/videointelligence/apiv1beta2;videointelligence", service_yaml = "//google/cloud/videointelligence:videointelligence_v1beta2.yaml", + transport = "grpc+rest", deps = [ ":videointelligence_go_proto", "//google/longrunning:longrunning_go_proto", @@ -150,12 +155,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "videointelligence_py_gapic", srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "videointelligence_py_gapic_test", + srcs = [ + "videointelligence_py_gapic_pytest.py", + "videointelligence_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":videointelligence_py_gapic"], ) py_gapic_assembly_pkg( diff --git a/google/cloud/videointelligence/v1p1beta1/BUILD.bazel b/google/cloud/videointelligence/v1p1beta1/BUILD.bazel index 4539afcf5..7c677c989 100644 --- a/google/cloud/videointelligence/v1p1beta1/BUILD.bazel +++ b/google/cloud/videointelligence/v1p1beta1/BUILD.bazel @@ -64,6 +64,7 @@ java_gapic_library( test_deps = [ ":videointelligence_java_grpc", ], + transport = "grpc+rest", deps = [ ":videointelligence_java_proto", ], @@ -72,6 +73,7 @@ java_gapic_library( java_gapic_test( name = "videointelligence_java_gapic_test_suite", test_classes = [ + "com.google.cloud.videointelligence.v1p1beta1.VideoIntelligenceServiceClientHttpJsonTest", "com.google.cloud.videointelligence.v1p1beta1.VideoIntelligenceServiceClientTest", ], runtime_deps = [":videointelligence_java_gapic_test"], @@ -80,6 +82,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-videointelligence-v1p1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":videointelligence_java_gapic", ":videointelligence_java_grpc", @@ -117,6 +121,7 @@ go_gapic_library( grpc_service_config = "videointelligence_grpc_service_config.json", importpath = "cloud.google.com/go/videointelligence/apiv1p1beta1;videointelligence", service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", + transport = "grpc+rest", deps = [ ":videointelligence_go_proto", "//google/longrunning:longrunning_go_proto", @@ -150,12 +155,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "videointelligence_py_gapic", srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "videointelligence_py_gapic_test", + srcs = [ + "videointelligence_py_gapic_pytest.py", + "videointelligence_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":videointelligence_py_gapic"], ) py_gapic_assembly_pkg( @@ -316,6 +333,7 @@ csharp_gapic_library( srcs = [":videointelligence_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "videointelligence_grpc_service_config.json", + service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", deps = [ ":videointelligence_csharp_grpc", ":videointelligence_csharp_proto", diff --git a/google/cloud/videointelligence/v1p2beta1/BUILD.bazel b/google/cloud/videointelligence/v1p2beta1/BUILD.bazel index 1877c8c5e..5c9724fcd 100644 --- a/google/cloud/videointelligence/v1p2beta1/BUILD.bazel +++ b/google/cloud/videointelligence/v1p2beta1/BUILD.bazel @@ -64,6 +64,7 @@ java_gapic_library( test_deps = [ ":videointelligence_java_grpc", ], + transport = "grpc+rest", deps = [ ":videointelligence_java_proto", ], @@ -72,6 +73,7 @@ java_gapic_library( java_gapic_test( name = "videointelligence_java_gapic_test_suite", test_classes = [ + "com.google.cloud.videointelligence.v1p2beta1.VideoIntelligenceServiceClientHttpJsonTest", "com.google.cloud.videointelligence.v1p2beta1.VideoIntelligenceServiceClientTest", ], runtime_deps = [":videointelligence_java_gapic_test"], @@ -80,6 +82,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-videointelligence-v1p2beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":videointelligence_java_gapic", ":videointelligence_java_grpc", @@ -117,6 +121,7 @@ go_gapic_library( grpc_service_config = "videointelligence_grpc_service_config.json", importpath = "cloud.google.com/go/videointelligence/apiv1p2beta1;videointelligence", service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", + transport = "grpc+rest", deps = [ ":videointelligence_go_proto", "//google/longrunning:longrunning_go_proto", @@ -150,12 +155,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "videointelligence_py_gapic", srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "videointelligence_py_gapic_test", + srcs = [ + "videointelligence_py_gapic_pytest.py", + "videointelligence_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":videointelligence_py_gapic"], ) py_gapic_assembly_pkg( @@ -316,6 +333,7 @@ csharp_gapic_library( srcs = [":videointelligence_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "videointelligence_grpc_service_config.json", + service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", deps = [ ":videointelligence_csharp_grpc", ":videointelligence_csharp_proto", diff --git a/google/cloud/videointelligence/v1p2beta1/video_intelligence.proto b/google/cloud/videointelligence/v1p2beta1/video_intelligence.proto index 3b1d51cd7..c185c0aa9 100644 --- a/google/cloud/videointelligence/v1p2beta1/video_intelligence.proto +++ b/google/cloud/videointelligence/v1p2beta1/video_intelligence.proto @@ -405,6 +405,22 @@ message ObjectTrackingFrame { // Annotations corresponding to one tracked object. message ObjectTrackingAnnotation { + // Different representation of tracking info in non-streaming batch + // and streaming modes. + oneof track_info { + // Non-streaming batch mode ONLY. + // Each object track corresponds to one video segment where it appears. + VideoSegment segment = 3; + + // Streaming mode ONLY. + // In streaming mode, we do not know the end time of a tracked object + // before it is completed. Hence, there is no VideoSegment info returned. + // Instead, we provide a unique identifiable integer track_id so that + // the customers can correlate the results of the ongoing + // ObjectTrackAnnotation of the same track_id over time. + int64 track_id = 5; + } + // Entity to specify the object category that this track is labeled as. Entity entity = 1; @@ -413,9 +429,6 @@ message ObjectTrackingAnnotation { // Information corresponding to all frames where this object track appears. repeated ObjectTrackingFrame frames = 2; - - // Each object track corresponds to one video segment where it appears. - VideoSegment segment = 3; } // Video annotation feature. diff --git a/google/cloud/videointelligence/v1p3beta1/BUILD.bazel b/google/cloud/videointelligence/v1p3beta1/BUILD.bazel index 8c051321b..4c801f98d 100644 --- a/google/cloud/videointelligence/v1p3beta1/BUILD.bazel +++ b/google/cloud/videointelligence/v1p3beta1/BUILD.bazel @@ -64,6 +64,7 @@ java_gapic_library( test_deps = [ ":videointelligence_java_grpc", ], + transport = "grpc+rest", deps = [ ":videointelligence_java_proto", ], @@ -72,7 +73,9 @@ java_gapic_library( java_gapic_test( name = "videointelligence_java_gapic_test_suite", test_classes = [ + "com.google.cloud.videointelligence.v1p3beta1.StreamingVideoIntelligenceServiceClientHttpJsonTest", "com.google.cloud.videointelligence.v1p3beta1.StreamingVideoIntelligenceServiceClientTest", + "com.google.cloud.videointelligence.v1p3beta1.VideoIntelligenceServiceClientHttpJsonTest", "com.google.cloud.videointelligence.v1p3beta1.VideoIntelligenceServiceClientTest", ], runtime_deps = [":videointelligence_java_gapic_test"], @@ -81,6 +84,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-videointelligence-v1p3beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":videointelligence_java_gapic", ":videointelligence_java_grpc", @@ -151,12 +156,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "videointelligence_py_gapic", srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "videointelligence_py_gapic_test", + srcs = [ + "videointelligence_py_gapic_pytest.py", + "videointelligence_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":videointelligence_py_gapic"], ) py_gapic_assembly_pkg( @@ -244,8 +261,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -263,7 +280,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "videointelligence_ruby_gapic", - srcs = [":videointelligence_proto_with_info",], + srcs = [":videointelligence_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-video_intelligence-v1p3beta1", "ruby-cloud-env-prefix=VIDEO_INTELLIGENCE", @@ -317,6 +334,7 @@ csharp_gapic_library( srcs = [":videointelligence_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "videointelligence_grpc_service_config.json", + service_yaml = "//google/cloud/videointelligence:videointelligence_v1p3beta1.yaml", deps = [ ":videointelligence_csharp_grpc", ":videointelligence_csharp_proto", diff --git a/google/cloud/vision/v1/BUILD.bazel b/google/cloud/vision/v1/BUILD.bazel index d80588b29..f8f247d82 100644 --- a/google/cloud/vision/v1/BUILD.bazel +++ b/google/cloud/vision/v1/BUILD.bazel @@ -1,4 +1,13 @@ # 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"]) @@ -70,18 +79,23 @@ java_gapic_library( srcs = [":vision_proto_with_info"], gapic_yaml = "vision_gapic.yaml", grpc_service_config = "vision_grpc_service_config.json", + service_yaml = "vision_v1.yaml", test_deps = [ ":vision_java_grpc", ], + transport = "grpc+rest", deps = [ ":vision_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "vision_java_gapic_test_suite", test_classes = [ + "com.google.cloud.vision.v1.ImageAnnotatorClientHttpJsonTest", "com.google.cloud.vision.v1.ImageAnnotatorClientTest", + "com.google.cloud.vision.v1.ProductSearchClientHttpJsonTest", "com.google.cloud.vision.v1.ProductSearchClientTest", ], runtime_deps = [":vision_java_gapic_test"], @@ -90,6 +104,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-vision-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":vision_java_gapic", ":vision_java_grpc", @@ -128,7 +144,9 @@ go_gapic_library( srcs = [":vision_proto_with_info"], grpc_service_config = "vision_grpc_service_config.json", importpath = "cloud.google.com/go/vision/apiv1;vision", + metadata = True, service_yaml = "vision_v1.yaml", + transport = "grpc+rest", deps = [ ":vision_go_proto", "//google/longrunning:longrunning_go_proto", @@ -149,6 +167,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-vision-v1-go", deps = [ ":vision_go_gapic", + ":vision_go_gapic_srcjar-metadata.srcjar", ":vision_go_gapic_srcjar-test.srcjar", ":vision_go_proto", ], @@ -161,14 +180,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "vision_py_gapic", srcs = [":vision_proto"], grpc_service_config = "vision_grpc_service_config.json", + service_yaml = "vision_v1.yaml", + transport = "grpc", ) +py_test( + name = "vision_py_gapic_test", + srcs = [ + "vision_py_gapic_pytest.py", + "vision_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":vision_py_gapic"], +) + +# Open Source Packages py_gapic_assembly_pkg( name = "vision-v1-py", deps = [ @@ -201,7 +234,6 @@ php_grpc_library( php_gapic_library( name = "vision_php_gapic", srcs = [":vision_proto_with_info"], - gapic_yaml = "vision_gapic.yaml", grpc_service_config = "vision_grpc_service_config.json", service_yaml = "vision_v1.yaml", deps = [ @@ -275,13 +307,13 @@ ruby_cloud_gapic_library( name = "vision_ruby_gapic", srcs = [":vision_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-vision-v1", - "ruby-cloud-env-prefix=VISION", - "ruby-cloud-product-url=https://cloud.google.com/vision", "ruby-cloud-api-id=vision.googleapis.com", "ruby-cloud-api-shortname=vision", + "ruby-cloud-env-prefix=VISION", + "ruby-cloud-gem-name=google-cloud-vision-v1", "ruby-cloud-generate-standalone-snippets=true", "ruby-cloud-generate-yardoc-snippets=true", + "ruby-cloud-product-url=https://cloud.google.com/vision", ], grpc_service_config = "vision_grpc_service_config.json", ruby_cloud_description = "Cloud Vision API allows developers to easily integrate vision detection features within applications, including image labeling, face and landmark detection, optical character recognition (OCR), and tagging of explicit content.", @@ -329,6 +361,7 @@ csharp_gapic_library( srcs = [":vision_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "vision_grpc_service_config.json", + service_yaml = "vision_v1.yaml", deps = [ ":vision_csharp_grpc", ":vision_csharp_proto", @@ -350,7 +383,6 @@ csharp_gapic_assembly_pkg( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", - "cc_gapic_library", "cc_grpc_library", "cc_proto_library", ) @@ -363,17 +395,6 @@ cc_proto_library( cc_grpc_library( name = "vision_cc_grpc", srcs = [":vision_proto"], - generate_mocks = True, grpc_only = True, deps = [":vision_cc_proto"], ) - -cc_gapic_library( - name = "vision_cc_gapic", - src = ":vision_proto_with_info", - package = "google.cloud.vision.v1", - deps = [ - ":vision_cc_grpc", - ":vision_cc_proto", - ], -) diff --git a/google/cloud/vision/v1/geometry.proto b/google/cloud/vision/v1/geometry.proto index 376d2da39..7e0d24c2f 100644 --- a/google/cloud/vision/v1/geometry.proto +++ b/google/cloud/vision/v1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.vision.v1; -import "google/api/annotations.proto"; - option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1;vision"; option java_multiple_files = true; diff --git a/google/cloud/vision/v1/image_annotator.proto b/google/cloud/vision/v1/image_annotator.proto index 3852bed7c..6fed6112b 100644 --- a/google/cloud/vision/v1/image_annotator.proto +++ b/google/cloud/vision/v1/image_annotator.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -24,7 +24,6 @@ import "google/cloud/vision/v1/product_search.proto"; import "google/cloud/vision/v1/text_annotation.proto"; import "google/cloud/vision/v1/web_detection.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; import "google/type/color.proto"; @@ -47,8 +46,7 @@ service ImageAnnotator { "https://www.googleapis.com/auth/cloud-vision"; // Run image detection and annotation for a batch of images. - rpc BatchAnnotateImages(BatchAnnotateImagesRequest) - returns (BatchAnnotateImagesResponse) { + rpc BatchAnnotateImages(BatchAnnotateImagesRequest) returns (BatchAnnotateImagesResponse) { option (google.api.http) = { post: "/v1/images:annotate" body: "*" @@ -71,8 +69,7 @@ service ImageAnnotator { // AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each // file provided and perform detection and annotation for each image // extracted. - rpc BatchAnnotateFiles(BatchAnnotateFilesRequest) - returns (BatchAnnotateFilesResponse) { + rpc BatchAnnotateFiles(BatchAnnotateFilesRequest) returns (BatchAnnotateFilesResponse) { option (google.api.http) = { post: "/v1/files:annotate" body: "*" @@ -97,8 +94,7 @@ service ImageAnnotator { // // This service will write image annotation outputs to json files in customer // GCS bucket, each json file containing BatchAnnotateImagesResponse proto. - rpc AsyncBatchAnnotateImages(AsyncBatchAnnotateImagesRequest) - returns (google.longrunning.Operation) { + rpc AsyncBatchAnnotateImages(AsyncBatchAnnotateImagesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/images:asyncBatchAnnotate" body: "*" @@ -124,8 +120,7 @@ service ImageAnnotator { // `google.longrunning.Operations` interface. // `Operation.metadata` contains `OperationMetadata` (metadata). // `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results). - rpc AsyncBatchAnnotateFiles(AsyncBatchAnnotateFilesRequest) - returns (google.longrunning.Operation) { + rpc AsyncBatchAnnotateFiles(AsyncBatchAnnotateFilesRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/files:asyncBatchAnnotate" body: "*" @@ -146,6 +141,28 @@ service ImageAnnotator { } } +// A bucketized representation of likelihood, which is intended to give clients +// highly stable results across model upgrades. +enum Likelihood { + // Unknown likelihood. + UNKNOWN = 0; + + // It is very unlikely. + VERY_UNLIKELY = 1; + + // It is unlikely. + UNLIKELY = 2; + + // It is possible. + POSSIBLE = 3; + + // It is likely. + LIKELY = 4; + + // It is very likely. + VERY_LIKELY = 5; +} + // The type of Google Cloud Vision API detection to perform, and the maximum // number of results to return for that type. Multiple `Feature` objects can // be specified in the `features` list. @@ -206,7 +223,8 @@ message Feature { // Model to use for the feature. // Supported values: "builtin/stable" (the default if unset) and - // "builtin/latest". + // "builtin/latest". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also + // support "builtin/weekly" for the bleeding edge release updated weekly. string model = 3; } @@ -256,28 +274,6 @@ message Image { ImageSource source = 2; } -// A bucketized representation of likelihood, which is intended to give clients -// highly stable results across model upgrades. -enum Likelihood { - // Unknown likelihood. - UNKNOWN = 0; - - // It is very unlikely. - VERY_UNLIKELY = 1; - - // It is unlikely. - UNLIKELY = 2; - - // It is possible. - POSSIBLE = 3; - - // It is likely. - LIKELY = 4; - - // It is very likely. - VERY_LIKELY = 5; -} - // A face annotation object contains the results of face detection. message FaceAnnotation { // A face-specific landmark (for example, a face feature). @@ -578,30 +574,6 @@ message SafeSearchAnnotation { // covered nudity, lewd or provocative poses, or close-ups of sensitive // body areas. Likelihood racy = 9; - - // Confidence of adult_score. Range [0, 1]. 0 means not confident, 1 means - // very confident. - float adult_confidence = 16 [deprecated = true]; - - // Confidence of spoof_score. Range [0, 1]. 0 means not confident, 1 means - // very confident. - float spoof_confidence = 18 [deprecated = true]; - - // Confidence of medical_score. Range [0, 1]. 0 means not confident, 1 means - // very confident. - float medical_confidence = 20 [deprecated = true]; - - // Confidence of violence_score. Range [0, 1]. 0 means not confident, 1 means - // very confident. - float violence_confidence = 22 [deprecated = true]; - - // Confidence of racy_score. Range [0, 1]. 0 means not confident, 1 means very - // confident. - float racy_confidence = 24 [deprecated = true]; - - // Confidence of nsfw_score. Range [0, 1]. 0 means not confident, 1 means very - // confident. - float nsfw_confidence = 26 [deprecated = true]; } // Rectangle determined by min and max `LatLng` pairs. @@ -683,6 +655,9 @@ message TextDetectionParams { // DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence // score for TEXT_DETECTION as well. bool enable_text_detection_confidence_score = 9; + + // A list of advanced OCR options to fine-tune OCR behavior. + repeated string advanced_ocr_options = 11; } // Image context and/or feature-specific parameters. @@ -792,8 +767,7 @@ message AnnotateImageResponse { // Multiple image annotation requests are batched into a single service call. message BatchAnnotateImagesRequest { // Required. Individual image annotation requests for this batch. - repeated AnnotateImageRequest requests = 1 - [(google.api.field_behavior) = REQUIRED]; + repeated AnnotateImageRequest requests = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Target project and location to make a call. // @@ -864,10 +838,9 @@ message AnnotateFileResponse { // A list of requests to annotate files using the BatchAnnotateFiles API. message BatchAnnotateFilesRequest { - // Required. The list of file annotation requests. Right now we support only - // one AnnotateFileRequest in BatchAnnotateFilesRequest. - repeated AnnotateFileRequest requests = 1 - [(google.api.field_behavior) = REQUIRED]; + // Required. The list of file annotation requests. Right now we support only one + // AnnotateFileRequest in BatchAnnotateFilesRequest. + repeated AnnotateFileRequest requests = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Target project and location to make a call. // @@ -915,8 +888,7 @@ message AsyncAnnotateFileResponse { // Request for async image annotation for a list of images. message AsyncBatchAnnotateImagesRequest { // Required. Individual image annotation requests for this batch. - repeated AnnotateImageRequest requests = 1 - [(google.api.field_behavior) = REQUIRED]; + repeated AnnotateImageRequest requests = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The desired output location and metadata (e.g. format). OutputConfig output_config = 2 [(google.api.field_behavior) = REQUIRED]; @@ -946,8 +918,7 @@ message AsyncBatchAnnotateImagesResponse { // call. message AsyncBatchAnnotateFilesRequest { // Required. Individual async file annotation requests for this batch. - repeated AsyncAnnotateFileRequest requests = 1 - [(google.api.field_behavior) = REQUIRED]; + repeated AsyncAnnotateFileRequest requests = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Target project and location to make a call. // diff --git a/google/cloud/vision/v1/product_search.proto b/google/cloud/vision/v1/product_search.proto index 564925feb..a2a985058 100644 --- a/google/cloud/vision/v1/product_search.proto +++ b/google/cloud/vision/v1/product_search.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -20,7 +20,6 @@ import "google/api/resource.proto"; import "google/cloud/vision/v1/geometry.proto"; import "google/cloud/vision/v1/product_search_service.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1;vision"; diff --git a/google/cloud/vision/v1/product_search_service.proto b/google/cloud/vision/v1/product_search_service.proto index 5a61f5422..65680d909 100644 --- a/google/cloud/vision/v1/product_search_service.proto +++ b/google/cloud/vision/v1/product_search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/vision/v1/text_annotation.proto b/google/cloud/vision/v1/text_annotation.proto index db3bbdc5f..9c07c3220 100644 --- a/google/cloud/vision/v1/text_annotation.proto +++ b/google/cloud/vision/v1/text_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.vision.v1; import "google/cloud/vision/v1/geometry.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1;vision"; diff --git a/google/cloud/vision/v1/web_detection.proto b/google/cloud/vision/v1/web_detection.proto index 5d239b890..369a1350d 100644 --- a/google/cloud/vision/v1/web_detection.proto +++ b/google/cloud/vision/v1/web_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.cloud.vision.v1; -import "google/api/annotations.proto"; - option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1;vision"; option java_multiple_files = true; diff --git a/google/cloud/vision/v1p1beta1/BUILD.bazel b/google/cloud/vision/v1p1beta1/BUILD.bazel index bba94a5ff..3cb55d3e5 100644 --- a/google/cloud/vision/v1p1beta1/BUILD.bazel +++ b/google/cloud/vision/v1p1beta1/BUILD.bazel @@ -65,6 +65,7 @@ java_gapic_library( test_deps = [ ":vision_java_grpc", ], + transport = "grpc+rest", deps = [ ":vision_java_proto", ], @@ -73,6 +74,7 @@ java_gapic_library( java_gapic_test( name = "vision_java_gapic_test_suite", test_classes = [ + "com.google.cloud.vision.v1p1beta1.ImageAnnotatorClientHttpJsonTest", "com.google.cloud.vision.v1p1beta1.ImageAnnotatorClientTest", ], runtime_deps = [":vision_java_gapic_test"], @@ -81,6 +83,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-vision-v1p1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":vision_java_gapic", ":vision_java_grpc", @@ -118,7 +122,8 @@ go_gapic_library( srcs = [":vision_proto_with_info"], grpc_service_config = "vision_grpc_service_config.json", importpath = "cloud.google.com/go/vision/apiv1p1beta1;vision", - service_yaml = "//google/cloud/vision:vision_v1p1beta1.yaml", + service_yaml = "vision_v1p1beta1.yaml", + transport = "grpc+rest", deps = [ ":vision_go_proto", ], @@ -148,12 +153,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "vision_py_gapic", srcs = [":vision_proto"], grpc_service_config = "vision_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "vision_py_gapic_test", + srcs = [ + "vision_py_gapic_pytest.py", + "vision_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":vision_py_gapic"], ) py_gapic_assembly_pkg( @@ -223,7 +240,7 @@ nodejs_gapic_library( grpc_service_config = "vision_grpc_service_config.json", main_service = "vision", package = "google.cloud.vision.v1p1beta1", - service_yaml = "//google/cloud/vision:vision_v1p1beta1.yaml", + service_yaml = "vision_v1p1beta1.yaml", deps = [], ) @@ -240,8 +257,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -259,7 +276,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "vision_ruby_gapic", - srcs = [":vision_proto_with_info",], + srcs = [":vision_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-vision-v1p1beta1"], deps = [ ":vision_ruby_grpc", diff --git a/google/cloud/vision/v1p1beta1/image_annotator.proto b/google/cloud/vision/v1p1beta1/image_annotator.proto index daf6a2d27..f66ad504f 100644 --- a/google/cloud/vision/v1p1beta1/image_annotator.proto +++ b/google/cloud/vision/v1p1beta1/image_annotator.proto @@ -103,7 +103,8 @@ message Feature { // Model to use for the feature. // Supported values: "builtin/stable" (the default if unset) and - // "builtin/latest". + // "builtin/latest". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also + // support "builtin/weekly" for the bleeding edge release updated weekly. string model = 3; } @@ -498,6 +499,9 @@ message TextDetectionParams { // DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence // score for TEXT_DETECTION as well. bool enable_text_detection_confidence_score = 9; + + // A list of advanced OCR options to fine-tune OCR behavior. + repeated string advanced_ocr_options = 11; } // Image context and/or feature-specific parameters. diff --git a/google/cloud/vision/v1p1beta1/text_annotation.proto b/google/cloud/vision/v1p1beta1/text_annotation.proto index 928e6e88b..f85cc44df 100644 --- a/google/cloud/vision/v1p1beta1/text_annotation.proto +++ b/google/cloud/vision/v1p1beta1/text_annotation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.vision.v1p1beta1; -import "google/api/annotations.proto"; import "google/cloud/vision/v1p1beta1/geometry.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/vision/v1p1beta1/web_detection.proto b/google/cloud/vision/v1p1beta1/web_detection.proto index 28249cbde..c50e1ad62 100644 --- a/google/cloud/vision/v1p1beta1/web_detection.proto +++ b/google/cloud/vision/v1p1beta1/web_detection.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.vision.v1p1beta1; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1;vision"; diff --git a/google/cloud/vision/v1p2beta1/BUILD.bazel b/google/cloud/vision/v1p2beta1/BUILD.bazel index a7f49d548..c42770d4a 100644 --- a/google/cloud/vision/v1p2beta1/BUILD.bazel +++ b/google/cloud/vision/v1p2beta1/BUILD.bazel @@ -68,6 +68,7 @@ java_gapic_library( test_deps = [ ":vision_java_grpc", ], + transport = "grpc+rest", deps = [ ":vision_java_proto", ], @@ -76,6 +77,7 @@ java_gapic_library( java_gapic_test( name = "vision_java_gapic_test_suite", test_classes = [ + "com.google.cloud.vision.v1p2beta1.ImageAnnotatorClientHttpJsonTest", "com.google.cloud.vision.v1p2beta1.ImageAnnotatorClientTest", ], runtime_deps = [":vision_java_gapic_test"], @@ -84,6 +86,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-vision-v1p2beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":vision_java_gapic", ":vision_java_grpc", @@ -122,7 +126,8 @@ go_gapic_library( srcs = [":vision_proto_with_info"], grpc_service_config = "vision_grpc_service_config.json", importpath = "cloud.google.com/go/vision/apiv1p2beta1;vision", - service_yaml = "//google/cloud/vision:vision_v1p2beta1.yaml", + service_yaml = "vision_v1p2beta1.yaml", + transport = "grpc+rest", deps = [ ":vision_go_proto", "//google/longrunning:longrunning_go_proto", @@ -155,12 +160,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "vision_py_gapic", srcs = [":vision_proto"], grpc_service_config = "vision_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "vision_py_gapic_test", + srcs = [ + "vision_py_gapic_pytest.py", + "vision_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":vision_py_gapic"], ) py_gapic_assembly_pkg( @@ -230,7 +247,7 @@ nodejs_gapic_library( grpc_service_config = "vision_grpc_service_config.json", main_service = "vision", package = "google.cloud.vision.v1p2beta1", - service_yaml = "//google/cloud/vision:vision_v1p2beta1.yaml", + service_yaml = "vision_v1p2beta1.yaml", deps = [], ) @@ -247,8 +264,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -266,7 +283,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "vision_ruby_gapic", - srcs = [":vision_proto_with_info",], + srcs = [":vision_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-vision-v1p2beta1"], deps = [ ":vision_ruby_grpc", diff --git a/google/cloud/vision/v1p2beta1/image_annotator.proto b/google/cloud/vision/v1p2beta1/image_annotator.proto index eaf5abf05..264462d48 100644 --- a/google/cloud/vision/v1p2beta1/image_annotator.proto +++ b/google/cloud/vision/v1p2beta1/image_annotator.proto @@ -126,7 +126,8 @@ message Feature { // Model to use for the feature. // Supported values: "builtin/stable" (the default if unset) and - // "builtin/latest". + // "builtin/latest". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also + // support "builtin/weekly" for the bleeding edge release updated weekly. string model = 3; } @@ -529,6 +530,9 @@ message TextDetectionParams { // DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence // score for TEXT_DETECTION as well. bool enable_text_detection_confidence_score = 9; + + // A list of advanced OCR options to fine-tune OCR behavior. + repeated string advanced_ocr_options = 11; } // Image context and/or feature-specific parameters. diff --git a/google/cloud/vision/v1p2beta1/text_annotation.proto b/google/cloud/vision/v1p2beta1/text_annotation.proto index b35eb47e8..af568194a 100644 --- a/google/cloud/vision/v1p2beta1/text_annotation.proto +++ b/google/cloud/vision/v1p2beta1/text_annotation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.vision.v1p2beta1; -import "google/api/annotations.proto"; import "google/cloud/vision/v1p2beta1/geometry.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/vision/v1p2beta1/web_detection.proto b/google/cloud/vision/v1p2beta1/web_detection.proto index f2b9dfef0..2decb8596 100644 --- a/google/cloud/vision/v1p2beta1/web_detection.proto +++ b/google/cloud/vision/v1p2beta1/web_detection.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.vision.v1p2beta1; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1;vision"; diff --git a/google/cloud/vision/v1p3beta1/BUILD.bazel b/google/cloud/vision/v1p3beta1/BUILD.bazel index 727e8ae09..2fdc7f797 100644 --- a/google/cloud/vision/v1p3beta1/BUILD.bazel +++ b/google/cloud/vision/v1p3beta1/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":vision_java_grpc", ], + transport = "grpc+rest", deps = [ ":vision_java_proto", ], @@ -81,7 +82,9 @@ java_gapic_library( java_gapic_test( name = "vision_java_gapic_test_suite", test_classes = [ + "com.google.cloud.vision.v1p3beta1.ImageAnnotatorClientHttpJsonTest", "com.google.cloud.vision.v1p3beta1.ImageAnnotatorClientTest", + "com.google.cloud.vision.v1p3beta1.ProductSearchClientHttpJsonTest", "com.google.cloud.vision.v1p3beta1.ProductSearchClientTest", ], runtime_deps = [":vision_java_gapic_test"], @@ -90,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-vision-v1p3beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":vision_java_gapic", ":vision_java_grpc", @@ -128,7 +133,8 @@ go_gapic_library( srcs = [":vision_proto_with_info"], grpc_service_config = "vision_grpc_service_config.json", importpath = "cloud.google.com/go/vision/apiv1p3beta1;vision", - service_yaml = "//google/cloud/vision:vision_v1p3beta1.yaml", + service_yaml = "vision_v1p3beta1.yaml", + transport = "grpc+rest", deps = [ ":vision_go_proto", "//google/longrunning:longrunning_go_proto", @@ -161,12 +167,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "vision_py_gapic", srcs = [":vision_proto"], grpc_service_config = "vision_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "vision_py_gapic_test", + srcs = [ + "vision_py_gapic_pytest.py", + "vision_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":vision_py_gapic"], ) py_gapic_assembly_pkg( @@ -203,7 +221,7 @@ php_gapic_library( srcs = [":vision_proto_with_info"], gapic_yaml = "vision_gapic.yaml", grpc_service_config = "vision_grpc_service_config.json", - service_yaml = "//google/cloud/vision:vision_v1p3beta1.yaml", + service_yaml = "vision_v1p3beta1.yaml", deps = [ ":vision_php_grpc", ":vision_php_proto", @@ -237,7 +255,7 @@ nodejs_gapic_library( grpc_service_config = "vision_grpc_service_config.json", main_service = "vision", package = "google.cloud.vision.v1p3beta1", - service_yaml = "//google/cloud/vision:vision_v1p3beta1.yaml", + service_yaml = "vision_v1p3beta1.yaml", deps = [], ) diff --git a/google/cloud/vision/v1p3beta1/geometry.proto b/google/cloud/vision/v1p3beta1/geometry.proto index 28b768eaa..c2c524fb5 100644 --- a/google/cloud/vision/v1p3beta1/geometry.proto +++ b/google/cloud/vision/v1p3beta1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// 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. @@ -16,13 +16,12 @@ syntax = "proto3"; package google.cloud.vision.v1p3beta1; -import "google/api/annotations.proto"; - option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1;vision"; option java_multiple_files = true; option java_outer_classname = "GeometryProto"; option java_package = "com.google.cloud.vision.v1p3beta1"; +option objc_class_prefix = "GCVN"; // A vertex represents a 2D point in the image. // NOTE: the vertex coordinates are in the same scale as the original image. @@ -54,12 +53,6 @@ message BoundingPoly { repeated NormalizedVertex normalized_vertices = 2; } -// A normalized bounding polygon around a portion of an image. -message NormalizedBoundingPoly { - // Normalized vertices of the bounding polygon. - repeated NormalizedVertex vertices = 1; -} - // A 3D position in the image, used primarily for Face detection landmarks. // A valid Position must have both x and y coordinates. // The position coordinates are in the same scale as the original image. diff --git a/google/cloud/vision/v1p3beta1/image_annotator.proto b/google/cloud/vision/v1p3beta1/image_annotator.proto index c865ff53d..ebab14a6b 100644 --- a/google/cloud/vision/v1p3beta1/image_annotator.proto +++ b/google/cloud/vision/v1p3beta1/image_annotator.proto @@ -134,7 +134,8 @@ message Feature { // Model to use for the feature. // Supported values: "builtin/stable" (the default if unset) and - // "builtin/latest". + // "builtin/latest". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also + // support "builtin/weekly" for the bleeding edge release updated weekly. string model = 3; } @@ -557,6 +558,9 @@ message TextDetectionParams { // DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence // score for TEXT_DETECTION as well. bool enable_text_detection_confidence_score = 9; + + // A list of advanced OCR options to fine-tune OCR behavior. + repeated string advanced_ocr_options = 11; } // Image context and/or feature-specific parameters. @@ -677,7 +681,7 @@ message AnnotateFileResponse { // Multiple image annotation requests are batched into a single service call. message BatchAnnotateImagesRequest { // Individual image annotation requests for this batch. - repeated AnnotateImageRequest requests = 1; + repeated AnnotateImageRequest requests = 1 [(google.api.field_behavior) = REQUIRED]; } // Response to a batch image annotation request. diff --git a/google/cloud/vision/v1p3beta1/product_search.proto b/google/cloud/vision/v1p3beta1/product_search.proto index 6dde477c3..86ea1a064 100644 --- a/google/cloud/vision/v1p3beta1/product_search.proto +++ b/google/cloud/vision/v1p3beta1/product_search.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -11,13 +11,11 @@ // WITHOUT WARRANTIES OR CONDITIONS OF 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.vision.v1p3beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/vision/v1p3beta1/geometry.proto"; import "google/cloud/vision/v1p3beta1/product_search_service.proto"; @@ -28,41 +26,15 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1p3beta option java_multiple_files = true; option java_outer_classname = "ProductSearchProto"; option java_package = "com.google.cloud.vision.v1p3beta1"; +option objc_class_prefix = "GCVN"; // Parameters for a product search request. message ProductSearchParams { - // The resource name of the catalog to search. - // - // Format is: `productSearch/catalogs/CATALOG_NAME`. - string catalog_name = 1; - - // The category to search in. - // Optional. It is inferred by the system if it is not specified. - // [Deprecated] Use `product_category`. - ProductSearchCategory category = 2; - - // The product category to search in. - // Optional. It is inferred by the system if it is not specified. - // Supported values are `bag`, `shoe`, `sunglasses`, `dress`, `outerwear`, - // `skirt`, `top`, `shorts`, and `pants`. - string product_category = 5; - - // The bounding polygon around the area of interest in the image. - // Optional. If it is not specified, system discretion will be applied. - // [Deprecated] Use `bounding_poly`. - NormalizedBoundingPoly normalized_bounding_poly = 3; - // The bounding polygon around the area of interest in the image. - // Optional. If it is not specified, system discretion will be applied. + // If it is not specified, system discretion will be applied. BoundingPoly bounding_poly = 9; - // Specifies the verbosity of the product search results. - // Optional. Defaults to `BASIC`. - ProductSearchResultsView view = 4; - - // The resource name of a - // [ProductSet][google.cloud.vision.v1p3beta1.ProductSet] to be searched for - // similar images. + // The resource name of a [ProductSet][google.cloud.vision.v1p3beta1.ProductSet] to be searched for similar images. // // Format is: // `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`. @@ -71,40 +43,27 @@ message ProductSearchParams { }]; // The list of product categories to search in. Currently, we only consider - // the first category, and either "homegoods" or "apparel" should be - // specified. + // the first category, and either "homegoods-v2", "apparel-v2", "toys-v2", + // "packagedgoods-v1", or "general-v1" should be specified. The legacy + // categories "homegoods", "apparel", and "toys" are still supported but will + // be deprecated. For new products, please use "homegoods-v2", "apparel-v2", + // or "toys-v2" for better product search accuracy. It is recommended to + // migrate existing products to these categories as well. repeated string product_categories = 7; // The filtering expression. This can be used to restrict search results based // on Product labels. We currently support an AND of OR of key-value - // expressions, where each expression within an OR must have the same key. + // expressions, where each expression within an OR must have the same key. An + // '=' should be used to connect the key and value. // // For example, "(color = red OR color = blue) AND brand = Google" is - // acceptable, but not "(color = red OR brand = Google)" or "color: red". + // acceptable, but "(color = red OR brand = Google)" is not acceptable. + // "color: red" is not acceptable because it uses a ':' instead of an '='. string filter = 8; } // Results for a product search request. message ProductSearchResults { - // Information about a product. - message ProductInfo { - // Product ID. - string product_id = 1; - - // The URI of the image which matched the query image. - // - // This field is returned only if `view` is set to `FULL` in - // the request. - string image_uri = 2; - - // A confidence level on the match, ranging from 0 (no confidence) to - // 1 (full confidence). - // - // This field is returned only if `view` is set to `FULL` in - // the request. - float score = 3; - } - // Information about a product. message Result { // The Product. @@ -112,9 +71,6 @@ message ProductSearchResults { // A confidence level on the match, ranging from 0 (no confidence) to // 1 (full confidence). - // - // This field is returned only if `view` is set to `FULL` in - // the request. float score = 2; // The resource name of the image from the product that is the closest match @@ -122,45 +78,47 @@ message ProductSearchResults { string image = 3; } - // Product category. - // [Deprecated] Use `product_category`. - ProductSearchCategory category = 1; + // Prediction for what the object in the bounding box is. + message ObjectAnnotation { + // Object ID that should align with EntityAnnotation mid. + string mid = 1; - // Product category. - // Supported values are `bag` and `shoe`. - // [Deprecated] `product_category` is provided in each Product. - string product_category = 4; + // 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. + string language_code = 2; - // Timestamp of the index which provided these results. Changes made after - // this time are not reflected in the current results. - google.protobuf.Timestamp index_time = 2; + // Object name, expressed in its `language_code` language. + string name = 3; - // List of detected products. - repeated ProductInfo products = 3; + // Score of the result. Range [0, 1]. + float score = 4; + } - // List of results, one for each product match. - repeated Result results = 5; -} + // Information about the products similar to a single product in a query + // image. + message GroupedResult { + // The bounding polygon around the product detected in the query image. + BoundingPoly bounding_poly = 1; -// Supported product search categories. -enum ProductSearchCategory { - // Default value used when a category is not specified. - PRODUCT_SEARCH_CATEGORY_UNSPECIFIED = 0; + // List of results, one for each product match. + repeated Result results = 2; - // Shoes category. - SHOES = 1; + // List of generic predictions for the object in the bounding box. + repeated ObjectAnnotation object_annotations = 3; + } - // Bags category. - BAGS = 2; -} + // Timestamp of the index which provided these results. Products added to the + // product set and products removed from the product set after this time are + // not reflected in the current results. + google.protobuf.Timestamp index_time = 2; -// Specifies the fields to include in product search results. -enum ProductSearchResultsView { - // Product search results contain only `product_category` and `product_id`. - // Default value. - BASIC = 0; + // List of results, one for each product match. + repeated Result results = 5; - // Product search results contain `product_category`, `product_id`, - // `image_uri`, and `score`. - FULL = 1; + // List of results grouped by products detected in the query image. Each entry + // corresponds to one bounding polygon in the query image, and contains the + // matching products specific to that region. There may be duplicate product + // matches in the union of all the per-product results. + repeated GroupedResult product_grouped_results = 6; } diff --git a/google/cloud/vision/v1p3beta1/text_annotation.proto b/google/cloud/vision/v1p3beta1/text_annotation.proto index 3c256c577..633e404ed 100644 --- a/google/cloud/vision/v1p3beta1/text_annotation.proto +++ b/google/cloud/vision/v1p3beta1/text_annotation.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.vision.v1p3beta1; -import "google/api/annotations.proto"; import "google/cloud/vision/v1p3beta1/geometry.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/vision/v1p3beta1/web_detection.proto b/google/cloud/vision/v1p3beta1/web_detection.proto index cf9a22612..205dfe656 100644 --- a/google/cloud/vision/v1p3beta1/web_detection.proto +++ b/google/cloud/vision/v1p3beta1/web_detection.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.vision.v1p3beta1; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1;vision"; diff --git a/google/cloud/vision/v1p4beta1/BUILD.bazel b/google/cloud/vision/v1p4beta1/BUILD.bazel index c6184b161..2d89f7612 100644 --- a/google/cloud/vision/v1p4beta1/BUILD.bazel +++ b/google/cloud/vision/v1p4beta1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":vision_java_grpc", ], + transport = "grpc+rest", deps = [ ":vision_java_proto", ], @@ -82,7 +83,9 @@ java_gapic_library( java_gapic_test( name = "vision_java_gapic_test_suite", test_classes = [ + "com.google.cloud.vision.v1p4beta1.ImageAnnotatorClientHttpJsonTest", "com.google.cloud.vision.v1p4beta1.ImageAnnotatorClientTest", + "com.google.cloud.vision.v1p4beta1.ProductSearchClientHttpJsonTest", "com.google.cloud.vision.v1p4beta1.ProductSearchClientTest", ], runtime_deps = [":vision_java_gapic_test"], @@ -91,6 +94,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-vision-v1p4beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":vision_java_gapic", ":vision_java_grpc", @@ -129,7 +134,8 @@ go_gapic_library( srcs = [":vision_proto_with_info"], grpc_service_config = "vision_grpc_service_config.json", importpath = "cloud.google.com/go/vision/apiv1p4beta1;vision", - service_yaml = "//google/cloud/vision:vision_v1p4beta1.yaml", + service_yaml = "vision_v1p4beta1.yaml", + transport = "grpc+rest", deps = [ ":vision_go_proto", "//google/longrunning:longrunning_go_proto", @@ -162,12 +168,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "vision_py_gapic", srcs = [":vision_proto"], grpc_service_config = "vision_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "vision_py_gapic_test", + srcs = [ + "vision_py_gapic_pytest.py", + "vision_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":vision_py_gapic"], ) py_gapic_assembly_pkg( @@ -204,7 +222,7 @@ php_gapic_library( srcs = [":vision_proto_with_info"], gapic_yaml = "vision_gapic.yaml", grpc_service_config = "vision_grpc_service_config.json", - service_yaml = "//google/cloud/vision:vision_v1p4beta1.yaml", + service_yaml = "vision_v1p4beta1.yaml", deps = [ ":vision_php_grpc", ":vision_php_proto", @@ -238,7 +256,7 @@ nodejs_gapic_library( grpc_service_config = "vision_grpc_service_config.json", main_service = "vision", package = "google.cloud.vision.v1p4beta1", - service_yaml = "//google/cloud/vision:vision_v1p4beta1.yaml", + service_yaml = "vision_v1p4beta1.yaml", deps = [], ) @@ -255,8 +273,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -274,7 +292,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "vision_ruby_gapic", - srcs = [":vision_proto_with_info",], + srcs = [":vision_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-vision-v1p4beta1", "ruby-cloud-env-prefix=VISION", diff --git a/google/cloud/vision/v1p4beta1/face.proto b/google/cloud/vision/v1p4beta1/face.proto index 1786f26f0..d2ab72f0c 100644 --- a/google/cloud/vision/v1p4beta1/face.proto +++ b/google/cloud/vision/v1p4beta1/face.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.vision.v1p4beta1; -import "google/api/annotations.proto"; import "google/cloud/vision/v1p4beta1/geometry.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/vision/v1p4beta1/geometry.proto b/google/cloud/vision/v1p4beta1/geometry.proto index 18877188f..877fd8972 100644 --- a/google/cloud/vision/v1p4beta1/geometry.proto +++ b/google/cloud/vision/v1p4beta1/geometry.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.vision.v1p4beta1; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1;vision"; diff --git a/google/cloud/vision/v1p4beta1/image_annotator.proto b/google/cloud/vision/v1p4beta1/image_annotator.proto index 07217f398..cc7836974 100644 --- a/google/cloud/vision/v1p4beta1/image_annotator.proto +++ b/google/cloud/vision/v1p4beta1/image_annotator.proto @@ -26,7 +26,6 @@ import "google/cloud/vision/v1p4beta1/product_search.proto"; import "google/cloud/vision/v1p4beta1/text_annotation.proto"; import "google/cloud/vision/v1p4beta1/web_detection.proto"; import "google/longrunning/operations.proto"; -import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; import "google/type/color.proto"; @@ -176,7 +175,8 @@ message Feature { // Model to use for the feature. // Supported values: "builtin/stable" (the default if unset) and - // "builtin/latest". + // "builtin/latest". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also + // support "builtin/weekly" for the bleeding edge release updated weekly. string model = 3; } @@ -628,6 +628,9 @@ message TextDetectionParams { // DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence // score for TEXT_DETECTION as well. bool enable_text_detection_confidence_score = 9; + + // A list of advanced OCR options to fine-tune OCR behavior. + repeated string advanced_ocr_options = 11; } // Image context and/or feature-specific parameters. diff --git a/google/cloud/vision/v1p4beta1/product_search.proto b/google/cloud/vision/v1p4beta1/product_search.proto index 15baed1fd..ebb428acc 100644 --- a/google/cloud/vision/v1p4beta1/product_search.proto +++ b/google/cloud/vision/v1p4beta1/product_search.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.vision.v1p4beta1; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/cloud/vision/v1p4beta1/geometry.proto"; import "google/cloud/vision/v1p4beta1/product_search_service.proto"; diff --git a/google/cloud/vision/v1p4beta1/text_annotation.proto b/google/cloud/vision/v1p4beta1/text_annotation.proto index fbc35bb54..233c4c689 100644 --- a/google/cloud/vision/v1p4beta1/text_annotation.proto +++ b/google/cloud/vision/v1p4beta1/text_annotation.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.vision.v1p4beta1; -import "google/api/annotations.proto"; import "google/cloud/vision/v1p4beta1/geometry.proto"; option cc_enable_arenas = true; diff --git a/google/cloud/vision/v1p4beta1/web_detection.proto b/google/cloud/vision/v1p4beta1/web_detection.proto index 446a937f1..7d716570f 100644 --- a/google/cloud/vision/v1p4beta1/web_detection.proto +++ b/google/cloud/vision/v1p4beta1/web_detection.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.vision.v1p4beta1; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1;vision"; diff --git a/google/cloud/vision/vision_v1p1beta1.yaml b/google/cloud/vision/vision_v1p1beta1.yaml deleted file mode 100644 index 81ff06d19..000000000 --- a/google/cloud/vision/vision_v1p1beta1.yaml +++ /dev/null @@ -1,21 +0,0 @@ -type: google.api.Service -config_version: 3 -name: vision.googleapis.com -title: Google Cloud Vision API - -apis: -- name: google.cloud.vision.v1p1beta1.ImageAnnotator - -documentation: - summary: |- - Integrates Google Vision features, including image labeling, face, logo, and - landmark detection, optical character recognition (OCR), and detection of - explicit content, into applications. - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-vision diff --git a/google/cloud/vision/vision_v1p2beta1.yaml b/google/cloud/vision/vision_v1p2beta1.yaml deleted file mode 100644 index 0065f6302..000000000 --- a/google/cloud/vision/vision_v1p2beta1.yaml +++ /dev/null @@ -1,26 +0,0 @@ -type: google.api.Service -config_version: 3 -name: vision.googleapis.com -title: Google Cloud Vision API - -apis: -- name: google.cloud.vision.v1p2beta1.ImageAnnotator - -types: -- name: google.cloud.vision.v1p2beta1.AnnotateFileResponse -- name: google.cloud.vision.v1p2beta1.AsyncBatchAnnotateFilesResponse -- name: google.cloud.vision.v1p2beta1.OperationMetadata - -documentation: - summary: |- - Integrates Google Vision features, including image labeling, face, logo, and - landmark detection, optical character recognition (OCR), and detection of - explicit content, into applications. - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-vision diff --git a/google/cloud/vision/vision_v1p3beta1.yaml b/google/cloud/vision/vision_v1p3beta1.yaml deleted file mode 100644 index 8c384f050..000000000 --- a/google/cloud/vision/vision_v1p3beta1.yaml +++ /dev/null @@ -1,37 +0,0 @@ -type: google.api.Service -config_version: 3 -name: vision.googleapis.com -title: Cloud Vision API - -apis: -- name: google.cloud.vision.v1p3beta1.ProductSearch -- name: google.cloud.vision.v1p3beta1.ImageAnnotator - -types: -- name: google.cloud.vision.v1p3beta1.AnnotateFileResponse -- name: google.cloud.vision.v1p3beta1.AsyncBatchAnnotateFilesResponse -- name: google.cloud.vision.v1p3beta1.BatchOperationMetadata -- name: google.cloud.vision.v1p3beta1.ImportProductSetsResponse -- name: google.cloud.vision.v1p3beta1.OperationMetadata - -documentation: - summary: |- - Integrates Google Vision features, including image labeling, face, logo, and - landmark detection, optical character recognition (OCR), and detection of - explicit content, into applications. - -http: - rules: - - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=operations/*}' - additional_bindings: - - get: '/v1/{name=locations/*/operations/*}' - - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-vision diff --git a/google/cloud/vision/vision_v1p4beta1.yaml b/google/cloud/vision/vision_v1p4beta1.yaml deleted file mode 100644 index f5bdd9b9b..000000000 --- a/google/cloud/vision/vision_v1p4beta1.yaml +++ /dev/null @@ -1,39 +0,0 @@ -type: google.api.Service -config_version: 3 -name: vision.googleapis.com -title: Cloud Vision API - -apis: -- name: google.cloud.vision.v1p4beta1.ProductSearch -- name: google.cloud.vision.v1p4beta1.ImageAnnotator - -types: -- name: google.cloud.vision.v1p4beta1.BatchOperationMetadata -- name: google.cloud.vision.v1p4beta1.ImportProductSetsResponse -- name: google.cloud.vision.v1p4beta1.AnnotateFileResponse -- name: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesResponse -- name: google.cloud.vision.v1p4beta1.OperationMetadata -- name: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesResponse -- name: google.cloud.vision.v1p4beta1.BatchAnnotateFilesResponse - -documentation: - summary: |- - Integrates Google Vision features, including image labeling, face, logo, and - landmark detection, optical character recognition (OCR), and detection of - explicit content, into applications. - -http: - rules: - - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=operations/*}' - additional_bindings: - - get: '/v1/{name=locations/*/operations/*}' - - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-vision diff --git a/google/cloud/vmmigration/v1/BUILD.bazel b/google/cloud/vmmigration/v1/BUILD.bazel index 5bfd346e3..104f2fa9e 100644 --- a/google/cloud/vmmigration/v1/BUILD.bazel +++ b/google/cloud/vmmigration/v1/BUILD.bazel @@ -77,6 +77,7 @@ java_gapic_library( test_deps = [ ":vmmigration_java_grpc", ], + transport = "grpc+rest", deps = [ ":vmmigration_java_proto", "//google/api:api_java_proto", @@ -86,6 +87,7 @@ java_gapic_library( java_gapic_test( name = "vmmigration_java_gapic_test_suite", test_classes = [ + "com.google.cloud.vmmigration.v1.VmMigrationClientHttpJsonTest", "com.google.cloud.vmmigration.v1.VmMigrationClientTest", ], runtime_deps = [":vmmigration_java_gapic_test"], @@ -94,6 +96,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-vmmigration-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":vmmigration_java_gapic", ":vmmigration_java_grpc", @@ -131,13 +135,14 @@ go_gapic_library( srcs = [":vmmigration_proto_with_info"], grpc_service_config = "vmmigration_v1_grpc_service_config.json", importpath = "cloud.google.com/go/vmmigration/apiv1;vmmigration", - service_yaml = "vmmigration_v1.yaml", metadata = True, + service_yaml = "vmmigration_v1.yaml", + transport = "grpc+rest", deps = [ ":vmmigration_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_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", ], ) @@ -154,8 +159,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-vmmigration-v1-go", deps = [ ":vmmigration_go_gapic", - ":vmmigration_go_gapic_srcjar-test.srcjar", ":vmmigration_go_gapic_srcjar-metadata.srcjar", + ":vmmigration_go_gapic_srcjar-test.srcjar", ":vmmigration_go_proto", ], ) @@ -167,6 +172,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -176,6 +182,17 @@ py_gapic_library( opt_args = [ "warehouse-package-name=google-cloud-vm-migration", ], + transport = "grpc", +) + +py_test( + name = "vmmigration_py_gapic_test", + srcs = [ + "vmmigration_py_gapic_pytest.py", + "vmmigration_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":vmmigration_py_gapic"], ) # Open Source Packages @@ -262,8 +279,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -335,6 +352,7 @@ csharp_gapic_library( srcs = [":vmmigration_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "vmmigration_v1_grpc_service_config.json", + service_yaml = "vmmigration_v1.yaml", deps = [ ":vmmigration_csharp_grpc", ":vmmigration_csharp_proto", diff --git a/google/cloud/vmmigration/v1/vmmigration.proto b/google/cloud/vmmigration/v1/vmmigration.proto index 4b2a4e8f7..d5dfe9e0d 100644 --- a/google/cloud/vmmigration/v1/vmmigration.proto +++ b/google/cloud/vmmigration/v1/vmmigration.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -38,7 +38,8 @@ option ruby_package = "Google::Cloud::VMMigration::V1"; // VM Migration Service service VmMigration { option (google.api.default_host) = "vmmigration.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 Sources in a given project and location. rpc ListSources(ListSourcesRequest) returns (ListSourcesResponse) { @@ -107,7 +108,8 @@ service VmMigration { } // Lists Utilization Reports of the given Source. - rpc ListUtilizationReports(ListUtilizationReportsRequest) returns (ListUtilizationReportsResponse) { + rpc ListUtilizationReports(ListUtilizationReportsRequest) + returns (ListUtilizationReportsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/sources/*}/utilizationReports" }; @@ -115,7 +117,8 @@ service VmMigration { } // Gets a single Utilization Report. - rpc GetUtilizationReport(GetUtilizationReportRequest) returns (UtilizationReport) { + rpc GetUtilizationReport(GetUtilizationReportRequest) + returns (UtilizationReport) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/sources/*/utilizationReports/*}" }; @@ -123,12 +126,14 @@ service VmMigration { } // Creates a new UtilizationReport. - rpc CreateUtilizationReport(CreateUtilizationReportRequest) returns (google.longrunning.Operation) { + rpc CreateUtilizationReport(CreateUtilizationReportRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/sources/*}/utilizationReports" body: "utilization_report" }; - option (google.api.method_signature) = "parent,utilization_report,utilization_report_id"; + option (google.api.method_signature) = + "parent,utilization_report,utilization_report_id"; option (google.longrunning.operation_info) = { response_type: "UtilizationReport" metadata_type: "OperationMetadata" @@ -136,7 +141,8 @@ service VmMigration { } // Deletes a single Utilization Report. - rpc DeleteUtilizationReport(DeleteUtilizationReportRequest) returns (google.longrunning.Operation) { + rpc DeleteUtilizationReport(DeleteUtilizationReportRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/sources/*/utilizationReports/*}" }; @@ -148,7 +154,8 @@ service VmMigration { } // Lists DatacenterConnectors in a given Source. - rpc ListDatacenterConnectors(ListDatacenterConnectorsRequest) returns (ListDatacenterConnectorsResponse) { + rpc ListDatacenterConnectors(ListDatacenterConnectorsRequest) + returns (ListDatacenterConnectorsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/sources/*}/datacenterConnectors" }; @@ -156,7 +163,8 @@ service VmMigration { } // Gets details of a single DatacenterConnector. - rpc GetDatacenterConnector(GetDatacenterConnectorRequest) returns (DatacenterConnector) { + rpc GetDatacenterConnector(GetDatacenterConnectorRequest) + returns (DatacenterConnector) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/sources/*/datacenterConnectors/*}" }; @@ -164,12 +172,14 @@ service VmMigration { } // Creates a new DatacenterConnector in a given Source. - rpc CreateDatacenterConnector(CreateDatacenterConnectorRequest) returns (google.longrunning.Operation) { + rpc CreateDatacenterConnector(CreateDatacenterConnectorRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/sources/*}/datacenterConnectors" body: "datacenter_connector" }; - option (google.api.method_signature) = "parent,datacenter_connector,datacenter_connector_id"; + option (google.api.method_signature) = + "parent,datacenter_connector,datacenter_connector_id"; option (google.longrunning.operation_info) = { response_type: "DatacenterConnector" metadata_type: "OperationMetadata" @@ -177,7 +187,8 @@ service VmMigration { } // Deletes a single DatacenterConnector. - rpc DeleteDatacenterConnector(DeleteDatacenterConnectorRequest) returns (google.longrunning.Operation) { + rpc DeleteDatacenterConnector(DeleteDatacenterConnectorRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/sources/*/datacenterConnectors/*}" }; @@ -188,13 +199,29 @@ service VmMigration { }; } + // Upgrades the appliance relate to this DatacenterConnector to the in-place + // updateable version. + rpc UpgradeAppliance(UpgradeApplianceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{datacenter_connector=projects/*/locations/*/sources/*/datacenterConnectors/*}:upgradeAppliance" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "UpgradeApplianceResponse" + metadata_type: "OperationMetadata" + }; + } + // Creates a new MigratingVm in a given Source. - rpc CreateMigratingVm(CreateMigratingVmRequest) returns (google.longrunning.Operation) { + rpc CreateMigratingVm(CreateMigratingVmRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/sources/*}/migratingVms" body: "migrating_vm" }; - option (google.api.method_signature) = "parent,migrating_vm,migrating_vm_id"; + option (google.api.method_signature) = + "parent,migrating_vm,migrating_vm_id"; option (google.longrunning.operation_info) = { response_type: "MigratingVm" metadata_type: "OperationMetadata" @@ -202,7 +229,8 @@ service VmMigration { } // Lists MigratingVms in a given Source. - rpc ListMigratingVms(ListMigratingVmsRequest) returns (ListMigratingVmsResponse) { + rpc ListMigratingVms(ListMigratingVmsRequest) + returns (ListMigratingVmsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/sources/*}/migratingVms" }; @@ -218,7 +246,8 @@ service VmMigration { } // Updates the parameters of a single MigratingVm. - rpc UpdateMigratingVm(UpdateMigratingVmRequest) returns (google.longrunning.Operation) { + rpc UpdateMigratingVm(UpdateMigratingVmRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1/{migrating_vm.name=projects/*/locations/*/sources/*/migratingVms/*}" body: "migrating_vm" @@ -231,7 +260,8 @@ service VmMigration { } // Deletes a single MigratingVm. - rpc DeleteMigratingVm(DeleteMigratingVmRequest) returns (google.longrunning.Operation) { + rpc DeleteMigratingVm(DeleteMigratingVmRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*}" }; @@ -244,7 +274,8 @@ service VmMigration { // Starts migration for a VM. Starts the process of uploading // data and creating snapshots, in replication cycles scheduled by the policy. - rpc StartMigration(StartMigrationRequest) returns (google.longrunning.Operation) { + rpc StartMigration(StartMigrationRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{migrating_vm=projects/*/locations/*/sources/*/migratingVms/*}:startMigration" body: "*" @@ -260,7 +291,8 @@ service VmMigration { // the process of uploading data and creating snapshots; when called on a // completed cut-over migration, will update the migration to active state and // start the process of uploading data and creating snapshots. - rpc ResumeMigration(ResumeMigrationRequest) returns (google.longrunning.Operation) { + rpc ResumeMigration(ResumeMigrationRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{migrating_vm=projects/*/locations/*/sources/*/migratingVms/*}:resumeMigration" body: "*" @@ -274,7 +306,8 @@ service VmMigration { // Pauses a migration for a VM. If cycle tasks are running they will be // cancelled, preserving source task data. Further replication cycles will not // be triggered while the VM is paused. - rpc PauseMigration(PauseMigrationRequest) returns (google.longrunning.Operation) { + rpc PauseMigration(PauseMigrationRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{migrating_vm=projects/*/locations/*/sources/*/migratingVms/*}:pauseMigration" body: "*" @@ -287,7 +320,8 @@ service VmMigration { // Marks a migration as completed, deleting migration resources that are no // longer being used. Only applicable after cutover is done. - rpc FinalizeMigration(FinalizeMigrationRequest) returns (google.longrunning.Operation) { + rpc FinalizeMigration(FinalizeMigrationRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{migrating_vm=projects/*/locations/*/sources/*/migratingVms/*}:finalizeMigration" body: "*" @@ -300,7 +334,8 @@ service VmMigration { } // Initiates a Clone of a specific migrating VM. - rpc CreateCloneJob(CreateCloneJobRequest) returns (google.longrunning.Operation) { + rpc CreateCloneJob(CreateCloneJobRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/sources/*/migratingVms/*}/cloneJobs" body: "clone_job" @@ -313,7 +348,8 @@ service VmMigration { } // Initiates the cancellation of a running clone job. - rpc CancelCloneJob(CancelCloneJobRequest) returns (google.longrunning.Operation) { + rpc CancelCloneJob(CancelCloneJobRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*/cloneJobs/*}:cancel" body: "*" @@ -344,7 +380,8 @@ service VmMigration { // Initiates a Cutover of a specific migrating VM. // The returned LRO is completed when the cutover job resource is created // and the job is initiated. - rpc CreateCutoverJob(CreateCutoverJobRequest) returns (google.longrunning.Operation) { + rpc CreateCutoverJob(CreateCutoverJobRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/sources/*/migratingVms/*}/cutoverJobs" body: "cutover_job" @@ -357,7 +394,8 @@ service VmMigration { } // Initiates the cancellation of a running cutover job. - rpc CancelCutoverJob(CancelCutoverJobRequest) returns (google.longrunning.Operation) { + rpc CancelCutoverJob(CancelCutoverJobRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*/cutoverJobs/*}:cancel" body: "*" @@ -370,7 +408,8 @@ service VmMigration { } // Lists CutoverJobs of a given migrating VM. - rpc ListCutoverJobs(ListCutoverJobsRequest) returns (ListCutoverJobsResponse) { + rpc ListCutoverJobs(ListCutoverJobsRequest) + returns (ListCutoverJobsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/sources/*/migratingVms/*}/cutoverJobs" }; @@ -440,7 +479,8 @@ service VmMigration { } // Adds a MigratingVm to a Group. - rpc AddGroupMigration(AddGroupMigrationRequest) returns (google.longrunning.Operation) { + rpc AddGroupMigration(AddGroupMigrationRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{group=projects/*/locations/*/groups/*}:addGroupMigration" body: "*" @@ -453,7 +493,8 @@ service VmMigration { } // Removes a MigratingVm from a Group. - rpc RemoveGroupMigration(RemoveGroupMigrationRequest) returns (google.longrunning.Operation) { + rpc RemoveGroupMigration(RemoveGroupMigrationRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{group=projects/*/locations/*/groups/*}:removeGroupMigration" body: "*" @@ -469,7 +510,8 @@ service VmMigration { // // NOTE: TargetProject is a global resource; hence the only supported value // for location is `global`. - rpc ListTargetProjects(ListTargetProjectsRequest) returns (ListTargetProjectsResponse) { + rpc ListTargetProjects(ListTargetProjectsRequest) + returns (ListTargetProjectsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*}/targetProjects" }; @@ -491,12 +533,14 @@ service VmMigration { // // NOTE: TargetProject is a global resource; hence the only supported value // for location is `global`. - rpc CreateTargetProject(CreateTargetProjectRequest) returns (google.longrunning.Operation) { + rpc CreateTargetProject(CreateTargetProjectRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*}/targetProjects" body: "target_project" }; - option (google.api.method_signature) = "parent,target_project,target_project_id"; + option (google.api.method_signature) = + "parent,target_project,target_project_id"; option (google.longrunning.operation_info) = { response_type: "TargetProject" metadata_type: "OperationMetadata" @@ -507,7 +551,8 @@ service VmMigration { // // NOTE: TargetProject is a global resource; hence the only supported value // for location is `global`. - rpc UpdateTargetProject(UpdateTargetProjectRequest) returns (google.longrunning.Operation) { + rpc UpdateTargetProject(UpdateTargetProjectRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1/{target_project.name=projects/*/locations/*/targetProjects/*}" body: "target_project" @@ -523,7 +568,8 @@ service VmMigration { // // NOTE: TargetProject is a global resource; hence the only supported value // for location is `global`. - rpc DeleteTargetProject(DeleteTargetProjectRequest) returns (google.longrunning.Operation) { + rpc DeleteTargetProject(DeleteTargetProjectRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/targetProjects/*}" }; @@ -535,16 +581,6 @@ service VmMigration { } } -// ReplicationCycle contains information about the current replication cycle -// status. -message ReplicationCycle { - // The time the replication cycle has started. - google.protobuf.Timestamp start_time = 1; - - // The current progress in percentage of this cycle. - int32 progress_percent = 5; -} - // Controls the level of details of a Utilization Report. enum UtilizationReportView { // The default / unset value. @@ -560,11 +596,18 @@ enum UtilizationReportView { FULL = 2; } -// ReplicationSync contain information about the last replica sync to the cloud. -message ReplicationSync { - // The most updated snapshot created time in the source that finished - // replication. - google.protobuf.Timestamp last_sync_time = 1; +// Controls the level of details of a Migrating VM. +enum MigratingVmView { + // View is unspecified. The API will fallback to the default value. + MIGRATING_VM_VIEW_UNSPECIFIED = 0; + + // Get the migrating VM basic details. + // The basic details do not include the recent clone jobs and recent cutover + // jobs lists. + MIGRATING_VM_VIEW_BASIC = 1; + + // Include everything. + MIGRATING_VM_VIEW_FULL = 2; } // Types of disks supported for Compute Engine VM. @@ -607,6 +650,23 @@ enum ComputeEngineBootOption { COMPUTE_ENGINE_BOOT_OPTION_BIOS = 2; } +// ReplicationCycle contains information about the current replication cycle +// status. +message ReplicationCycle { + // The time the replication cycle has started. + google.protobuf.Timestamp start_time = 1; + + // The current progress in percentage of this cycle. + int32 progress_percent = 5; +} + +// ReplicationSync contain information about the last replica sync to the cloud. +message ReplicationSync { + // The most updated snapshot created time in the source that finished + // replication. + google.protobuf.Timestamp last_sync_time = 1; +} + // MigratingVm describes the VM that will be migrated from a Source environment // and its replication state. message MigratingVm { @@ -684,28 +744,33 @@ message MigratingVm { // The replication schedule policy. SchedulePolicy policy = 8; - // Output only. The time the migrating VM was created (this refers to this resource and not - // to the time it was installed in the source). - google.protobuf.Timestamp create_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time the migrating VM was created (this refers to this + // resource and not to the time it was installed in the source). + google.protobuf.Timestamp create_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The last time the migrating VM resource was updated. - google.protobuf.Timestamp update_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The most updated snapshot created time in the source that finished - // replication. + // Output only. The most updated snapshot created time in the source that + // finished replication. ReplicationSync last_sync = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. State of the MigratingVm. State state = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The last time the migrating VM state was updated. - google.protobuf.Timestamp state_time = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp state_time = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The percentage progress of the current running replication cycle. - ReplicationCycle current_sync_info = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The percentage progress of the current running replication + // cycle. + ReplicationCycle current_sync_info = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The group this migrating vm is included in, if any. The group is - // represented by the full path of the appropriate + // Output only. The group this migrating vm is included in, if any. The group + // is represented by the full path of the appropriate // [Group][google.cloud.vmmigration.v1.Group] resource. string group = 15 [ (google.api.field_behavior) = OUTPUT_ONLY, @@ -717,9 +782,25 @@ message MigratingVm { // The labels of the migrating VM. map labels = 16; - // Output only. Provides details on the state of the Migrating VM in case of an - // error in replication. + // Output only. The recent [clone jobs][google.cloud.vmmigration.v1.CloneJob] + // performed on the migrating VM. This field holds the vm's last completed + // clone job and the vm's running clone job, if one exists. + // Note: To have this field populated you need to explicitly request it via + // the "view" parameter of the Get/List request. + repeated CloneJob recent_clone_jobs = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Provides details on the state of the Migrating VM in case of + // an error in replication. google.rpc.Status error = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The recent cutover jobs performed on the migrating VM. + // This field holds the vm's last completed cutover job and the vm's + // running cutover job, if one exists. + // Note: To have this field populated you need to explicitly request it via + // the "view" parameter of the Get/List request. + repeated CutoverJob recent_cutover_jobs = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // CloneJob describes the process of creating a clone of a @@ -769,23 +850,31 @@ message CloneJob { // Details of the VM to create as the target of this clone job. oneof target_vm_details { // Output only. Details of the target VM in Compute Engine. - ComputeEngineTargetDetails compute_engine_target_details = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + ComputeEngineTargetDetails compute_engine_target_details = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; } - // Output only. The time the clone job was created (as an API call, not when it was - // actually created in the target). - google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time the clone job was created (as an API call, not when + // it was actually created in the target). + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the clone job was ended. + google.protobuf.Timestamp end_time = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // The name of the clone. - string name = 3; + // Output only. The name of the clone. + string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. State of the clone job. State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time the state was last updated. - google.protobuf.Timestamp state_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp state_time = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Provides details for the errors that led to the Clone Job's state. + // Output only. Provides details for the errors that led to the Clone Job's + // state. google.rpc.Status error = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -829,12 +918,18 @@ message CutoverJob { // Details of the VM to create as the target of this cutover job. oneof target_vm_details { // Output only. Details of the target VM in Compute Engine. - ComputeEngineTargetDetails compute_engine_target_details = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + ComputeEngineTargetDetails compute_engine_target_details = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; } - // Output only. The time the cutover job was created (as an API call, not when it was - // actually created in the target). - google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time the cutover job was created (as an API call, not when + // it was actually created in the target). + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the cutover job had finished. + google.protobuf.Timestamp end_time = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The name of the cutover job. string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -843,15 +938,18 @@ message CutoverJob { State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time the state was last updated. - google.protobuf.Timestamp state_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp state_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The current progress in percentage of the cutover job. int32 progress_percent = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Provides details for the errors that led to the Cutover Job's state. + // Output only. Provides details for the errors that led to the Cutover Job's + // state. google.rpc.Status error = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A message providing possible extra details about the current state. + // Output only. A message providing possible extra details about the current + // state. string state_message = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -899,9 +997,7 @@ message CancelCloneJobRequest { } // Response message for 'CancelCloneJob' request. -message CancelCloneJobResponse { - -} +message CancelCloneJobResponse {} // Request message for 'ListCloneJobsRequest' request. message ListCloneJobsRequest { @@ -913,10 +1009,10 @@ message ListCloneJobsRequest { } ]; - // Optional. The maximum number of clone jobs to return. The service may return - // fewer than this value. If unspecified, at most 500 clone jobs will be - // returned. The maximum value is 1000; values above 1000 will be coerced to - // 1000. + // Optional. The maximum number of clone jobs to return. The service may + // return fewer than this value. If unspecified, at most 500 clone jobs 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]; // Required. A page token, received from a previous `ListCloneJobs` call. @@ -938,8 +1034,8 @@ message ListCloneJobsResponse { // Output only. The list of clone jobs response. repeated CloneJob clone_jobs = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. + // Output only. A token, which can be sent as `page_token` to retrieve the + // next page. If this field is omitted, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Locations that could not be reached. @@ -974,10 +1070,12 @@ message Source { string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The create time timestamp. - 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 update time timestamp. - google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; // The labels of the source. map labels = 4; @@ -992,8 +1090,8 @@ message VmwareSourceDetails { // The credentials username. string username = 1; - // Input only. The credentials password. This is write only and can not be read in a GET - // operation. + // Input only. The credentials password. This is write only and can not be + // read in a GET operation. string password = 2 [(google.api.field_behavior) = INPUT_ONLY]; // The ip address of the vcenter this Source represents. @@ -1033,19 +1131,21 @@ message DatacenterConnector { ACTIVE = 4; } - // Output only. The time the connector was created (as an API call, not when it was - // actually installed). - google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time the connector was created (as an API call, not when + // it was actually installed). + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The last time the connector was updated with an API call. - google.protobuf.Timestamp update_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The connector's name. string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Immutable. A unique key for this connector. This key is internal to the OVA connector - // and is supplied with its creation during the registration process and can - // not be modified. + // Immutable. A unique key for this connector. This key is internal to the OVA + // connector and is supplied with its creation during the registration process + // and can not be modified. string registration_id = 12 [(google.api.field_behavior) = IMMUTABLE]; // The service account to use in the connector when communicating with the @@ -1056,18 +1156,101 @@ message DatacenterConnector { // connector during the registration process and can not be modified. string version = 6; - // Output only. The communication channel between the datacenter connector and GCP. + // Output only. The communication channel between the datacenter connector and + // GCP. string bucket = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. State of the DatacenterConnector, as determined by the health checks. + // Output only. State of the DatacenterConnector, as determined by the health + // checks. State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time the state was last set. - google.protobuf.Timestamp state_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp state_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Provides details on the state of the Datacenter Connector in case of an - // error. + // Output only. Provides details on the state of the Datacenter Connector in + // case of an error. google.rpc.Status error = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Appliance OVA version. + // This is the OVA which is manually installed by the user and contains the + // infrastructure for the automatically updatable components on the appliance. + string appliance_infrastructure_version = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Appliance last installed update bundle version. + // This is the version of the automatically updatable components on the + // appliance. + string appliance_software_version = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The available versions for updating this appliance. + AvailableUpdates available_versions = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the current / last upgradeAppliance operation. + UpgradeStatus upgrade_status = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// UpgradeStatus contains information about upgradeAppliance operation. +message UpgradeStatus { + // The possible values of the state. + enum State { + // The state was not sampled by the health checks yet. + STATE_UNSPECIFIED = 0; + + // The upgrade has started. + RUNNING = 1; + + // The upgrade failed. + FAILED = 2; + + // The upgrade finished successfully. + SUCCEEDED = 3; + } + + // The version to upgrade to. + string version = 1; + + // The state of the upgradeAppliance operation. + State state = 2; + + // Provides details on the state of the upgrade operation in case of an error. + google.rpc.Status error = 3; + + // The time the operation was started. + google.protobuf.Timestamp start_time = 4; + + // The version from which we upgraded. + string previous_version = 5; +} + +// Holds informatiom about the available versions for upgrade. +message AvailableUpdates { + // The newest deployable version of the appliance. + // The current appliance can't be updated into this version, and the owner + // must manually deploy this OVA to a new appliance. + ApplianceVersion new_deployable_appliance = 1; + + // The latest version for in place update. + // The current appliance can be updated to this version using the API or m4c + // CLI. + ApplianceVersion in_place_update = 2; +} + +// Describes an appliance version. +message ApplianceVersion { + // The appliance version. + string version = 1; + + // A link for downloading the version. + string uri = 2; + + // Determine whether it's critical to upgrade the appliance to this version. + bool critical = 3; + + // Link to a page that contains the version release notes. + string release_notes_uri = 4; } // Request message for 'ListSources' request. @@ -1105,8 +1288,8 @@ message ListSourcesResponse { // Output only. The list of sources response. repeated Source sources = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. + // Output only. A token, which can be sent as `page_token` to retrieve the + // next page. If this field is omitted, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Locations that could not be reached. @@ -1287,7 +1470,7 @@ message VmwareVmDetails { int64 committed_storage_mb = 12; // The VM's OS. See for example - // https://pubs.vmware.com/vi-sdk/visdk250/ReferenceGuide/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html + // https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html // for types of strings this might hold. string guest_description = 11; @@ -1305,13 +1488,14 @@ message VmwareVmsDetails { // [fetchInventory][google.cloud.vmmigration.v1.VmMigration.FetchInventory]. message FetchInventoryResponse { oneof SourceVms { - // Output only. The description of the VMs in a Source of type Vmware. - VmwareVmsDetails vmware_vms = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The description of the VMs in a Source of type Vmware. + VmwareVmsDetails vmware_vms = 1; } - // Output only. The timestamp when the source was last queried (if the result is from the - // cache). - google.protobuf.Timestamp update_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The timestamp when the source was last queried (if the result + // is from the cache). + google.protobuf.Timestamp update_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Utilization report details the utilization (CPU, memory, etc.) of selected @@ -1362,23 +1546,27 @@ message UtilizationReport { State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time the state was last set. - google.protobuf.Timestamp state_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp state_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Provides details on the state of the report in case of an error. + // Output only. Provides details on the state of the report in case of an + // error. google.rpc.Status error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The time the report was created (this refers to the time of the request, - // not the time the report creation completed). - google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time the report was created (this refers to the time of + // the request, not the time the report creation completed). + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Time frame of the report. TimeFrame time_frame = 7; - // Output only. The point in time when the time frame ends. Notice that the time - // frame is counted backwards. For instance if the "frame_end_time" value is - // 2021/01/20 and the time frame is WEEK then the report covers the week + // Output only. The point in time when the time frame ends. Notice that the + // time frame is counted backwards. For instance if the "frame_end_time" value + // is 2021/01/20 and the time frame is WEEK then the report covers the week // between 2021/01/20 and 2021/01/14. - google.protobuf.Timestamp frame_end_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp frame_end_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Total number of VMs included in the report. int32 vm_count = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -1453,8 +1641,8 @@ message ListUtilizationReportsRequest { // 1000. int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; - // Required. A page token, received from a previous `ListUtilizationReports` call. - // Provide this to retrieve the subsequent page. + // Required. A page token, received from a previous `ListUtilizationReports` + // call. Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to `ListUtilizationReports` // must match the call that provided the page token. @@ -1470,10 +1658,11 @@ message ListUtilizationReportsRequest { // Response message for 'ListUtilizationReports' request. message ListUtilizationReportsResponse { // Output only. The list of reports. - repeated UtilizationReport utilization_reports = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated UtilizationReport utilization_reports = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. + // Output only. A token, which can be sent as `page_token` to retrieve the + // next page. If this field is omitted, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Locations that could not be reached. @@ -1506,10 +1695,11 @@ message CreateUtilizationReportRequest { ]; // Required. The report to create. - UtilizationReport utilization_report = 2 [(google.api.field_behavior) = REQUIRED]; + UtilizationReport utilization_report = 2 + [(google.api.field_behavior) = REQUIRED]; - // Required. The ID to use for the report, which will become the final component of - // the reports's resource name. + // Required. The ID to use for the report, which will become the final + // component of the reports's resource name. // // This value maximum length is 63 characters, and valid characters // are /[a-z][0-9]-/. It must start with an english letter and must not @@ -1561,10 +1751,11 @@ message DeleteUtilizationReportRequest { // Response message for 'ListDatacenterConnectors' request. message ListDatacenterConnectorsResponse { // Output only. The list of sources response. - repeated DatacenterConnector datacenter_connectors = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated DatacenterConnector datacenter_connectors = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. + // Output only. A token, which can be sent as `page_token` to retrieve the + // next page. If this field is omitted, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Locations that could not be reached. @@ -1599,7 +1790,8 @@ message CreateDatacenterConnectorRequest { string datacenter_connector_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The create request body. - DatacenterConnector datacenter_connector = 3 [(google.api.field_behavior) = REQUIRED]; + DatacenterConnector datacenter_connector = 3 + [(google.api.field_behavior) = REQUIRED]; // 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 @@ -1643,6 +1835,35 @@ message DeleteDatacenterConnectorRequest { string request_id = 2; } +// Request message for 'UpgradeAppliance' request. +message UpgradeApplianceRequest { + // Required. The DatacenterConnector name. + string datacenter_connector = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "vmmigration.googleapis.com/DatacenterConnector" + } + ]; + + // A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server will know to ignore + // the request if it has already been completed. The server will guarantee + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2; +} + +// Response message for 'UpgradeAppliance' request. +message UpgradeApplianceResponse {} + // Request message for 'ListDatacenterConnectors' request. message ListDatacenterConnectorsRequest { // Required. The parent, which owns this collection of connectors. @@ -1653,14 +1874,14 @@ message ListDatacenterConnectorsRequest { } ]; - // Optional. The maximum number of connectors to return. The service may return - // fewer than this value. If unspecified, at most 500 sources will be + // Optional. The maximum number of connectors to return. The service may + // return fewer than this value. If unspecified, at most 500 sources 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]; - // Required. A page token, received from a previous `ListDatacenterConnectors` call. - // Provide this to retrieve the subsequent page. + // Required. A page token, received from a previous `ListDatacenterConnectors` + // call. Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to // `ListDatacenterConnectors` must match the call that provided the page @@ -1683,8 +1904,8 @@ message ComputeEngineTargetDefaults { // The full path of the resource of type TargetProject which represents the // Compute Engine project in which to create this VM. string target_project = 2 [(google.api.resource_reference) = { - type: "vmmigration.googleapis.com/TargetProject" - }]; + type: "vmmigration.googleapis.com/TargetProject" + }]; // The zone in which to create the VM. string zone = 3; @@ -1714,7 +1935,8 @@ message ComputeEngineTargetDefaults { ComputeEngineLicenseType license_type = 11; // Output only. The OS license returned from the adaptation module report. - AppliedLicense applied_license = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + AppliedLicense applied_license = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Compute instance scheduling information (if empty default is used). ComputeScheduling compute_scheduling = 13; @@ -1724,10 +1946,17 @@ message ComputeEngineTargetDefaults { bool secure_boot = 14; // Output only. The VM Boot Option, as set in the source vm. - ComputeEngineBootOption boot_option = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + ComputeEngineBootOption boot_option = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; // The metadata key/value pairs to assign to the VM. map metadata = 16; + + // Additional licenses to assign to the VM. + repeated string additional_licenses = 17; + + // The hostname to assign to the VM. + string hostname = 18; } // ComputeEngineTargetDetails is a collection of details for creating a VM in a @@ -1781,6 +2010,12 @@ message ComputeEngineTargetDetails { // The metadata key/value pairs to assign to the VM. map metadata = 16; + + // Additional licenses to assign to the VM. + repeated string additional_licenses = 17; + + // The hostname to assign to the VM. + string hostname = 18; } // NetworkInterface represents a NIC of a VM. @@ -1956,10 +2191,10 @@ message ListMigratingVmsRequest { } ]; - // Optional. The maximum number of migrating VMs to return. The service may return - // fewer than this value. If unspecified, at most 500 migrating VMs will be - // returned. The maximum value is 1000; values above 1000 will be coerced to - // 1000. + // Optional. The maximum number of migrating VMs to return. The service may + // return fewer than this value. If unspecified, at most 500 migrating VMs + // 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]; // Required. A page token, received from a previous `ListMigratingVms` call. @@ -1974,15 +2209,19 @@ message ListMigratingVmsRequest { // Optional. the order by fields for the result. string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The level of details of each migrating VM. + MigratingVmView view = 6 [(google.api.field_behavior) = OPTIONAL]; } // Response message for 'ListMigratingVms' request. message ListMigratingVmsResponse { // Output only. The list of Migrating VMs response. - repeated MigratingVm migrating_vms = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated MigratingVm migrating_vms = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. + // Output only. A token, which can be sent as `page_token` to retrieve the + // next page. If this field is omitted, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Locations that could not be reached. @@ -1998,6 +2237,9 @@ message GetMigratingVmRequest { type: "vmmigration.googleapis.com/MigratingVm" } ]; + + // Optional. The level of details of the migrating VM. + MigratingVmView view = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request message for 'UpdateMigratingVm' request. @@ -2051,9 +2293,7 @@ message StartMigrationRequest { } // Response message for 'StartMigration' request. -message StartMigrationResponse { - -} +message StartMigrationResponse {} // Request message for 'PauseMigration' request. message PauseMigrationRequest { @@ -2067,9 +2307,7 @@ message PauseMigrationRequest { } // Response message for 'PauseMigration' request. -message PauseMigrationResponse { - -} +message PauseMigrationResponse {} // Request message for 'ResumeMigration' request. message ResumeMigrationRequest { @@ -2083,9 +2321,7 @@ message ResumeMigrationRequest { } // Response message for 'ResumeMigration' request. -message ResumeMigrationResponse { - -} +message ResumeMigrationResponse {} // Request message for 'FinalizeMigration' request. message FinalizeMigrationRequest { @@ -2099,9 +2335,7 @@ message FinalizeMigrationRequest { } // Response message for 'FinalizeMigration' request. -message FinalizeMigrationResponse { - -} +message FinalizeMigrationResponse {} // TargetProject message represents a target Compute Engine project for a // migration or a clone. @@ -2111,8 +2345,8 @@ message TargetProject { pattern: "projects/{project}/locations/{location}/targetProjects/{target_project}" }; - // The name of the target project. - string name = 1; + // Output only. The name of the target project. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // The target project ID (number) or project name. string project = 2; @@ -2120,12 +2354,14 @@ message TargetProject { // The target project's description. string description = 3; - // Output only. The time this target project resource was created (not related to when the - // Compute Engine project it points to was created). - google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The time this target project resource was created (not related + // to when the Compute Engine project it points to was created). + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The last time the target project resource was updated. - google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for 'GetTargetProject' call. @@ -2172,10 +2408,11 @@ message ListTargetProjectsRequest { // Response message for 'ListTargetProjects' call. message ListTargetProjectsResponse { // Output only. The list of target response. - repeated TargetProject target_projects = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated TargetProject target_projects = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. + // Output only. A token, which can be sent as `page_token` to retrieve the + // next page. If this field is omitted, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Locations that could not be reached. @@ -2276,14 +2513,16 @@ message Group { pattern: "projects/{project}/locations/{location}/groups/{group}" }; - // The Group name. - string name = 1; + // Output only. The Group name. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The create time timestamp. - 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 update time timestamp. - google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; // User-provided description of the group. string description = 4; @@ -2327,8 +2566,8 @@ message ListGroupsResponse { // Output only. The list of groups response. repeated Group groups = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. + // Output only. A token, which can be sent as `page_token` to retrieve the + // next page. If this field is omitted, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Locations that could not be reached. @@ -2444,14 +2683,12 @@ message AddGroupMigrationRequest { // The full path name of the MigratingVm to add. string migrating_vm = 2 [(google.api.resource_reference) = { - type: "vmmigration.googleapis.com/MigratingVm" - }]; + type: "vmmigration.googleapis.com/MigratingVm" + }]; } // Response message for 'AddGroupMigration' request. -message AddGroupMigrationResponse { - -} +message AddGroupMigrationResponse {} // Request message for 'RemoveMigration' request. message RemoveGroupMigrationRequest { @@ -2465,14 +2702,12 @@ message RemoveGroupMigrationRequest { // The MigratingVm to remove. string migrating_vm = 2 [(google.api.resource_reference) = { - type: "vmmigration.googleapis.com/MigratingVm" - }]; + type: "vmmigration.googleapis.com/MigratingVm" + }]; } // Response message for 'RemoveMigration' request. -message RemoveGroupMigrationResponse { - -} +message RemoveGroupMigrationResponse {} // Request message for 'CreateCutoverJob' request. message CreateCutoverJobRequest { @@ -2518,9 +2753,7 @@ message CancelCutoverJobRequest { } // Response message for 'CancelCutoverJob' request. -message CancelCutoverJobResponse { - -} +message CancelCutoverJobResponse {} // Request message for 'ListCutoverJobsRequest' request. message ListCutoverJobsRequest { @@ -2532,10 +2765,10 @@ message ListCutoverJobsRequest { } ]; - // Optional. The maximum number of cutover jobs to return. The service may return - // fewer than this value. If unspecified, at most 500 cutover jobs will be - // returned. The maximum value is 1000; values above 1000 will be coerced to - // 1000. + // Optional. The maximum number of cutover jobs to return. The service may + // return fewer than this value. If unspecified, at most 500 cutover jobs 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]; // Required. A page token, received from a previous `ListCutoverJobs` call. @@ -2555,10 +2788,11 @@ message ListCutoverJobsRequest { // Response message for 'ListCutoverJobs' request. message ListCutoverJobsResponse { // Output only. The list of cutover jobs response. - repeated CutoverJob cutover_jobs = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated CutoverJob cutover_jobs = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. + // Output only. A token, which can be sent as `page_token` to retrieve the + // next page. If this field is omitted, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Locations that could not be reached. @@ -2579,10 +2813,12 @@ message GetCutoverJobRequest { // 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]; + 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]; + 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]; @@ -2595,8 +2831,9 @@ message OperationMetadata { // 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`. + // 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. @@ -2637,20 +2874,28 @@ message MigrationError { // Migrate for Compute encountered an error during utilization report // creation. UTILIZATION_REPORT_ERROR = 8; + + // Migrate for Compute encountered an error during appliance upgrade. + APPLIANCE_UPGRADE_ERROR = 9; } // Output only. The error code. ErrorCode code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The localized error message. - google.rpc.LocalizedMessage error_message = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.rpc.LocalizedMessage error_message = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Suggested action for solving the error. - google.rpc.LocalizedMessage action_item = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.rpc.LocalizedMessage action_item = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. URL(s) pointing to additional information on handling the current error. - repeated google.rpc.Help.Link help_links = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. URL(s) pointing to additional information on handling the + // current error. + repeated google.rpc.Help.Link help_links = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time the error occurred. - google.protobuf.Timestamp error_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp error_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/vmmigration/v1/vmmigration_v1.yaml b/google/cloud/vmmigration/v1/vmmigration_v1.yaml index 1fb4f41e5..72ff59de1 100644 --- a/google/cloud/vmmigration/v1/vmmigration_v1.yaml +++ b/google/cloud/vmmigration/v1/vmmigration_v1.yaml @@ -10,6 +10,7 @@ types: - name: google.cloud.vmmigration.v1.AddGroupMigrationResponse - name: google.cloud.vmmigration.v1.CancelCloneJobResponse - name: google.cloud.vmmigration.v1.CancelCutoverJobResponse +- name: google.cloud.vmmigration.v1.FetchInventoryResponse - name: google.cloud.vmmigration.v1.FinalizeMigrationResponse - name: google.cloud.vmmigration.v1.MigrationError - name: google.cloud.vmmigration.v1.OperationMetadata @@ -17,10 +18,11 @@ types: - name: google.cloud.vmmigration.v1.RemoveGroupMigrationResponse - name: google.cloud.vmmigration.v1.ResumeMigrationResponse - name: google.cloud.vmmigration.v1.StartMigrationResponse +- name: google.cloud.vmmigration.v1.UpgradeApplianceResponse documentation: summary: |- - Use the Migrate for Compute Engine API to programmatically migrate + Use the Migrate to Virtual Machines API to programmatically migrate workloads. rules: - selector: google.cloud.location.Locations.GetLocation @@ -60,6 +62,8 @@ backend: deadline: 60.0 - selector: 'google.cloud.vmmigration.v1.VmMigration.*' deadline: 60.0 + - selector: google.cloud.vmmigration.v1.VmMigration.FetchInventory + deadline: 120.0 - selector: 'google.iam.v1.IAMPolicy.*' deadline: 60.0 - selector: 'google.longrunning.Operations.*' diff --git a/google/cloud/vpcaccess/v1/BUILD.bazel b/google/cloud/vpcaccess/v1/BUILD.bazel index b0ae24f57..3349cda41 100644 --- a/google/cloud/vpcaccess/v1/BUILD.bazel +++ b/google/cloud/vpcaccess/v1/BUILD.bazel @@ -38,6 +38,7 @@ proto_library_with_info( deps = [ ":vpcaccess_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -67,18 +68,25 @@ java_grpc_library( java_gapic_library( name = "vpcaccess_java_gapic", srcs = [":vpcaccess_proto_with_info"], + gapic_yaml = None, grpc_service_config = "vpcaccess_grpc_service_config.json", + service_yaml = "vpcaccess_v1.yaml", test_deps = [ ":vpcaccess_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":vpcaccess_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "vpcaccess_java_gapic_test_suite", test_classes = [ + "com.google.cloud.vpcaccess.v1.VpcAccessServiceClientHttpJsonTest", "com.google.cloud.vpcaccess.v1.VpcAccessServiceClientTest", ], runtime_deps = [":vpcaccess_java_gapic_test"], @@ -87,6 +95,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-vpcaccess-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":vpcaccess_java_gapic", ":vpcaccess_java_grpc", @@ -124,8 +134,10 @@ go_gapic_library( importpath = "cloud.google.com/go/vpcaccess/apiv1;vpcaccess", metadata = True, service_yaml = "vpcaccess_v1.yaml", + transport = "grpc+rest", deps = [ ":vpcaccess_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", @@ -157,13 +169,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "vpcaccess_py_gapic", srcs = [":vpcaccess_proto"], grpc_service_config = "vpcaccess_grpc_service_config.json", - opt_args = ["warehouse-package-name=google-cloud-vpc-access"] + opt_args = ["warehouse-package-name=google-cloud-vpc-access"], + service_yaml = "vpcaccess_v1.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "vpcaccess_py_gapic_test", + srcs = [ + "vpcaccess_py_gapic_pytest.py", + "vpcaccess_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":vpcaccess_py_gapic"], ) # Open Source Packages @@ -271,15 +298,16 @@ ruby_cloud_gapic_library( name = "vpcaccess_ruby_gapic", srcs = [":vpcaccess_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-vpc_access-v1", - "ruby-cloud-env-prefix=VPC_ACCESS", - "ruby-cloud-product-url=https://cloud.google.com/vpc/docs/serverless-vpc-access", "ruby-cloud-api-id=vpcaccess.googleapis.com", "ruby-cloud-api-shortname=vpcaccess", + "ruby-cloud-env-prefix=VPC_ACCESS", + "ruby-cloud-gem-name=google-cloud-vpc_access-v1", + "ruby-cloud-product-url=https://cloud.google.com/vpc/docs/serverless-vpc-access", ], grpc_service_config = "vpcaccess_grpc_service_config.json", ruby_cloud_description = "Serverless VPC Access enables you to connect from a serverless environment on Google Cloud (Cloud Run, Cloud Functions, or the App Engine standard environment) directly to your VPC network. This connection makes it possible for your serverless environment to access Compute Engine VM instances, Memorystore instances, and any other resources with an internal IP address.", ruby_cloud_title = "Serverless VPC Access V1", + service_yaml = "vpcaccess_v1.yaml", deps = [ ":vpcaccess_ruby_grpc", ":vpcaccess_ruby_proto", @@ -323,6 +351,7 @@ csharp_gapic_library( srcs = [":vpcaccess_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "vpcaccess_grpc_service_config.json", + service_yaml = "vpcaccess_v1.yaml", deps = [ ":vpcaccess_csharp_grpc", ":vpcaccess_csharp_proto", diff --git a/google/cloud/vpcaccess/v1/vpc_access.proto b/google/cloud/vpcaccess/v1/vpc_access.proto index 24ac40dd2..bf2b2fc8b 100644 --- a/google/cloud/vpcaccess/v1/vpc_access.proto +++ b/google/cloud/vpcaccess/v1/vpc_access.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -89,20 +89,6 @@ message Connector { pattern: "projects/{project}/locations/{location}/connectors/{connector}" }; - // The subnet in which to house the connector - message Subnet { - // Subnet name (relative, not fully qualified). - // E.g. if the full subnet selfLink is - // https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetName} - // the correct input for this field would be {subnetName} - string name = 1; - - // Project in which the subnet exists. - // If not set, this project is assumed to be the project for which - // the connector create request was issued. - string project_id = 2; - } - // State of a connector. enum State { // Invalid state. @@ -124,6 +110,20 @@ message Connector { UPDATING = 5; } + // The subnet in which to house the connector + message Subnet { + // Subnet name (relative, not fully qualified). + // E.g. if the full subnet selfLink is + // https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetName} + // the correct input for this field would be {subnetName} + string name = 1; + + // Project in which the subnet exists. + // If not set, this project is assumed to be the project for which + // the connector create request was issued. + string project_id = 2; + } + // The resource name in the format `projects/*/locations/*/connectors/*`. string name = 1; @@ -140,7 +140,7 @@ message Connector { // Minimum throughput of the connector in Mbps. Default and min is 200. int32 min_throughput = 5; - // Maximum throughput of the connector in Mbps. Default is 200, max is 1000. + // Maximum throughput of the connector in Mbps. Default is 300, max is 1000. int32 max_throughput = 6; // Output only. List of projects using the connector. @@ -148,6 +148,15 @@ message Connector { // The subnet in which to house the VPC Access Connector. Subnet subnet = 8; + + // Machine type of VM Instance underlying connector. Default is e2-micro + string machine_type = 10; + + // Minimum value of instances in autoscaling group underlying the connector. + int32 min_instances = 11; + + // Maximum value of instances in autoscaling group underlying the connector. + int32 max_instances = 12; } // Request for creating a Serverless VPC Access connector. diff --git a/google/cloud/vpcaccess/v1/vpcaccess_v1.yaml b/google/cloud/vpcaccess/v1/vpcaccess_v1.yaml index 638c2f1ac..1ac8ed06a 100644 --- a/google/cloud/vpcaccess/v1/vpcaccess_v1.yaml +++ b/google/cloud/vpcaccess/v1/vpcaccess_v1.yaml @@ -4,7 +4,9 @@ name: vpcaccess.googleapis.com title: Serverless VPC Access API apis: +- name: google.cloud.location.Locations - name: google.cloud.vpcaccess.v1.VpcAccessService +- name: google.longrunning.Operations types: - name: google.cloud.vpcaccess.v1.OperationMetadata @@ -19,7 +21,9 @@ backend: rules: - selector: google.cloud.location.Locations.ListLocations deadline: 30.0 - - selector: 'google.cloud.vpcaccess.v1.VpcAccessService.*' + - selector: google.cloud.vpcaccess.v1.VpcAccessService.GetConnector + deadline: 30.0 + - selector: google.cloud.vpcaccess.v1.VpcAccessService.ListConnectors deadline: 30.0 - selector: 'google.longrunning.Operations.*' deadline: 30.0 diff --git a/google/cloud/webrisk/v1/BUILD.bazel b/google/cloud/webrisk/v1/BUILD.bazel index 464e1a495..51c18fcb3 100644 --- a/google/cloud/webrisk/v1/BUILD.bazel +++ b/google/cloud/webrisk/v1/BUILD.bazel @@ -62,6 +62,7 @@ java_gapic_library( test_deps = [ ":webrisk_java_grpc", ], + transport = "grpc+rest", deps = [ ":webrisk_java_proto", ], @@ -70,6 +71,7 @@ java_gapic_library( java_gapic_test( name = "webrisk_java_gapic_test_suite", test_classes = [ + "com.google.cloud.webrisk.v1.WebRiskServiceClientHttpJsonTest", "com.google.cloud.webrisk.v1.WebRiskServiceClientTest", ], runtime_deps = [":webrisk_java_gapic_test"], @@ -78,6 +80,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-webrisk-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":webrisk_java_gapic", ":webrisk_java_grpc", @@ -113,6 +117,7 @@ go_gapic_library( grpc_service_config = "webrisk_grpc_service_config.json", importpath = "cloud.google.com/go/webrisk/apiv1;webrisk", service_yaml = "webrisk_v1.yaml", + transport = "grpc+rest", deps = [ ":webrisk_go_proto", ], @@ -143,12 +148,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "webrisk_py_gapic", srcs = [":webrisk_proto"], grpc_service_config = "webrisk_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "webrisk_py_gapic_test", + srcs = [ + "webrisk_py_gapic_pytest.py", + "webrisk_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":webrisk_py_gapic"], ) py_gapic_assembly_pkg( @@ -306,6 +323,7 @@ csharp_gapic_library( srcs = [":webrisk_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "webrisk_grpc_service_config.json", + service_yaml = "webrisk_v1.yaml", deps = [ ":webrisk_csharp_grpc", ":webrisk_csharp_proto", diff --git a/google/cloud/webrisk/v1beta1/BUILD.bazel b/google/cloud/webrisk/v1beta1/BUILD.bazel index 91f9e8455..3e6167590 100644 --- a/google/cloud/webrisk/v1beta1/BUILD.bazel +++ b/google/cloud/webrisk/v1beta1/BUILD.bazel @@ -61,6 +61,7 @@ java_gapic_library( test_deps = [ ":webrisk_java_grpc", ], + transport = "grpc+rest", deps = [ ":webrisk_java_proto", ], @@ -69,6 +70,7 @@ java_gapic_library( java_gapic_test( name = "webrisk_java_gapic_test_suite", test_classes = [ + "com.google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1ClientHttpJsonTest", "com.google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1ClientTest", ], runtime_deps = [":webrisk_java_gapic_test"], @@ -77,6 +79,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-webrisk-v1beta1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":webrisk_java_gapic", ":webrisk_java_grpc", @@ -112,6 +116,7 @@ go_gapic_library( grpc_service_config = "webrisk_grpc_service_config.json", importpath = "cloud.google.com/go/webrisk/apiv1beta1;webrisk", service_yaml = "webrisk_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":webrisk_go_proto", ], @@ -142,12 +147,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "webrisk_py_gapic", srcs = [":webrisk_proto"], grpc_service_config = "webrisk_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "webrisk_py_gapic_test", + srcs = [ + "webrisk_py_gapic_pytest.py", + "webrisk_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":webrisk_py_gapic"], ) py_gapic_assembly_pkg( @@ -306,6 +323,7 @@ csharp_gapic_library( srcs = [":webrisk_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "webrisk_grpc_service_config.json", + service_yaml = "webrisk_v1beta1.yaml", deps = [ ":webrisk_csharp_grpc", ":webrisk_csharp_proto", diff --git a/google/cloud/websecurityscanner/v1/BUILD.bazel b/google/cloud/websecurityscanner/v1/BUILD.bazel index 06849f2e0..68284cc19 100644 --- a/google/cloud/websecurityscanner/v1/BUILD.bazel +++ b/google/cloud/websecurityscanner/v1/BUILD.bazel @@ -1,4 +1,13 @@ # 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"]) @@ -20,6 +29,7 @@ proto_library( "scan_config_error.proto", "scan_run.proto", "scan_run_error_trace.proto", + "scan_run_log.proto", "scan_run_warning_trace.proto", "web_security_scanner.proto", ], @@ -68,18 +78,23 @@ java_grpc_library( java_gapic_library( name = "websecurityscanner_java_gapic", srcs = [":websecurityscanner_proto_with_info"], + gapic_yaml = None, grpc_service_config = "websecurityscanner_grpc_service_config.json", + service_yaml = "websecurityscanner_v1.yaml", test_deps = [ ":websecurityscanner_java_grpc", ], + transport = "grpc+rest", deps = [ ":websecurityscanner_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "websecurityscanner_java_gapic_test_suite", test_classes = [ + "com.google.cloud.websecurityscanner.v1.WebSecurityScannerClientHttpJsonTest", "com.google.cloud.websecurityscanner.v1.WebSecurityScannerClientTest", ], runtime_deps = [":websecurityscanner_java_gapic_test"], @@ -88,6 +103,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-websecurityscanner-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":websecurityscanner_java_gapic", ":websecurityscanner_java_grpc", @@ -122,7 +139,9 @@ go_gapic_library( srcs = [":websecurityscanner_proto_with_info"], grpc_service_config = "websecurityscanner_grpc_service_config.json", importpath = "cloud.google.com/go/websecurityscanner/apiv1;websecurityscanner", + metadata = True, service_yaml = "websecurityscanner_v1.yaml", + transport = "grpc+rest", deps = [ ":websecurityscanner_go_proto", ], @@ -140,6 +159,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-websecurityscanner-v1-go", deps = [ ":websecurityscanner_go_gapic", + ":websecurityscanner_go_gapic_srcjar-metadata.srcjar", ":websecurityscanner_go_gapic_srcjar-test.srcjar", ":websecurityscanner_go_proto", ], @@ -152,12 +172,27 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "websecurityscanner_py_gapic", srcs = [":websecurityscanner_proto"], grpc_service_config = "websecurityscanner_grpc_service_config.json", + service_yaml = "websecurityscanner_v1.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "websecurityscanner_py_gapic_test", + srcs = [ + "websecurityscanner_py_gapic_pytest.py", + "websecurityscanner_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":websecurityscanner_py_gapic"], ) # Open Source Packages @@ -194,6 +229,7 @@ php_gapic_library( name = "websecurityscanner_php_gapic", srcs = [":websecurityscanner_proto_with_info"], grpc_service_config = "websecurityscanner_grpc_service_config.json", + service_yaml = "websecurityscanner_v1.yaml", deps = [ ":websecurityscanner_php_grpc", ":websecurityscanner_php_proto", @@ -264,15 +300,16 @@ ruby_cloud_gapic_library( name = "websecurityscanner_ruby_gapic", srcs = [":websecurityscanner_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-web_security_scanner-v1", - "ruby-cloud-env-prefix=WEB_SECURITY_SCANNER", - "ruby-cloud-product-url=https://cloud.google.com/security-command-center/docs/concepts-web-security-scanner-overview/", "ruby-cloud-api-id=websecurityscanner.googleapis.com", "ruby-cloud-api-shortname=websecurityscanner", + "ruby-cloud-env-prefix=WEB_SECURITY_SCANNER", + "ruby-cloud-gem-name=google-cloud-web_security_scanner-v1", + "ruby-cloud-product-url=https://cloud.google.com/security-command-center/docs/concepts-web-security-scanner-overview/", ], grpc_service_config = "websecurityscanner_grpc_service_config.json", ruby_cloud_description = "Web Security Scanner scans your Compute and App Engine apps for common web vulnerabilities.", ruby_cloud_title = "Web Security Scanner V1", + service_yaml = "websecurityscanner_v1.yaml", deps = [ ":websecurityscanner_ruby_grpc", ":websecurityscanner_ruby_proto", @@ -316,6 +353,7 @@ csharp_gapic_library( srcs = [":websecurityscanner_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "websecurityscanner_grpc_service_config.json", + service_yaml = "websecurityscanner_v1.yaml", deps = [ ":websecurityscanner_csharp_grpc", ":websecurityscanner_csharp_proto", diff --git a/google/cloud/websecurityscanner/v1/crawled_url.proto b/google/cloud/websecurityscanner/v1/crawled_url.proto index 37724b804..65fc000ff 100644 --- a/google/cloud/websecurityscanner/v1/crawled_url.proto +++ b/google/cloud/websecurityscanner/v1/crawled_url.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/websecurityscanner/v1/finding.proto b/google/cloud/websecurityscanner/v1/finding.proto index 32bd5d833..71fea9501 100644 --- a/google/cloud/websecurityscanner/v1/finding.proto +++ b/google/cloud/websecurityscanner/v1/finding.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -116,4 +116,7 @@ message Finding { // Output only. An addon containing information reported for an XSS, if any. Xss xss = 14; + + // Output only. An addon containing information reported for an XXE, if any. + Xxe xxe = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/websecurityscanner/v1/finding_addon.proto b/google/cloud/websecurityscanner/v1/finding_addon.proto index 4fb7ec1d3..1bcec8c71 100644 --- a/google/cloud/websecurityscanner/v1/finding_addon.proto +++ b/google/cloud/websecurityscanner/v1/finding_addon.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -145,3 +145,22 @@ message Xss { // The reproduction url for the seeding POST request of a Stored XSS. string stored_xss_seeding_url = 4; } + +// Information reported for an XXE. +message Xxe { + // Locations within a request where XML was substituted. + enum Location { + // Unknown Location. + LOCATION_UNSPECIFIED = 0; + + // The XML payload replaced the complete request body. + COMPLETE_REQUEST_BODY = 1; + } + + // The XML string that triggered the XXE vulnerability. Non-payload values + // might be redacted. + string payload_value = 1; + + // Location within the request where the payload was placed. + Location payload_location = 2; +} diff --git a/google/cloud/websecurityscanner/v1/finding_type_stats.proto b/google/cloud/websecurityscanner/v1/finding_type_stats.proto index 7eca01ed2..7999f76d6 100644 --- a/google/cloud/websecurityscanner/v1/finding_type_stats.proto +++ b/google/cloud/websecurityscanner/v1/finding_type_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/websecurityscanner/v1/scan_config.proto b/google/cloud/websecurityscanner/v1/scan_config.proto index 901d01e40..85641af2f 100644 --- a/google/cloud/websecurityscanner/v1/scan_config.proto +++ b/google/cloud/websecurityscanner/v1/scan_config.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -33,6 +33,8 @@ message ScanConfig { message Authentication { // Describes authentication configuration that uses a Google account. message GoogleAccount { + option deprecated = true; + // Required. The user name of the Google account. string username = 1; @@ -76,7 +78,7 @@ message ScanConfig { // Authentication configuration oneof authentication { // Authentication using a Google account. - GoogleAccount google_account = 1; + GoogleAccount google_account = 1 [deprecated = true]; // Authentication using a custom account. CustomAccount custom_account = 2; @@ -185,4 +187,7 @@ message ScanConfig { // Whether the scan configuration has enabled static IP address scan feature. // If enabled, the scanner will access applications from static IP addresses. bool static_ip_scan = 14; + + // Whether to keep scanning even if most requests return HTTP error codes. + bool ignore_http_status_errors = 15; } diff --git a/google/cloud/websecurityscanner/v1/scan_config_error.proto b/google/cloud/websecurityscanner/v1/scan_config_error.proto index 5d544578a..5924f9155 100644 --- a/google/cloud/websecurityscanner/v1/scan_config_error.proto +++ b/google/cloud/websecurityscanner/v1/scan_config_error.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/websecurityscanner/v1/scan_run.proto b/google/cloud/websecurityscanner/v1/scan_run.proto index 465c6cb67..71df3a043 100644 --- a/google/cloud/websecurityscanner/v1/scan_run.proto +++ b/google/cloud/websecurityscanner/v1/scan_run.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/google/cloud/websecurityscanner/v1/scan_run_error_trace.proto b/google/cloud/websecurityscanner/v1/scan_run_error_trace.proto index 5234eee22..0c41c1432 100644 --- a/google/cloud/websecurityscanner/v1/scan_run_error_trace.proto +++ b/google/cloud/websecurityscanner/v1/scan_run_error_trace.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -31,7 +31,7 @@ option ruby_package = "Google::Cloud::WebSecurityScanner::V1"; message ScanRunErrorTrace { // Output only. // Defines an error reason code. - // Next id: 7 + // Next id: 8 enum Code { // Default value is never used. CODE_UNSPECIFIED = 0; diff --git a/google/cloud/websecurityscanner/v1/scan_run_log.proto b/google/cloud/websecurityscanner/v1/scan_run_log.proto new file mode 100644 index 000000000..1ff167e3f --- /dev/null +++ b/google/cloud/websecurityscanner/v1/scan_run_log.proto @@ -0,0 +1,55 @@ +// 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.cloud.websecurityscanner.v1; + +import "google/cloud/websecurityscanner/v1/scan_run.proto"; +import "google/cloud/websecurityscanner/v1/scan_run_error_trace.proto"; + +option csharp_namespace = "Google.Cloud.WebSecurityScanner.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1;websecurityscanner"; +option java_multiple_files = true; +option java_outer_classname = "ScanRunLogProto"; +option java_package = "com.google.cloud.websecurityscanner.v1"; +option php_namespace = "Google\\Cloud\\WebSecurityScanner\\V1"; +option ruby_package = "Google::Cloud::WebSecurityScanner::V1"; + +// A ScanRunLog is an output-only proto used for Stackdriver customer logging. +// It is used for logs covering the start and end of scan pipelines. +// Other than an added summary, this is a subset of the ScanRun. +// Representation in logs is either a proto Struct, or converted to JSON. +// Next id: 9 +message ScanRunLog { + // Human friendly message about the event. + string summary = 1; + + // The resource name of the ScanRun being logged. + string name = 2; + + // The execution state of the ScanRun. + google.cloud.websecurityscanner.v1.ScanRun.ExecutionState execution_state = 3; + + // The result state of the ScanRun. + google.cloud.websecurityscanner.v1.ScanRun.ResultState result_state = 4; + + int64 urls_crawled_count = 5; + + int64 urls_tested_count = 6; + + bool has_findings = 7; + + google.cloud.websecurityscanner.v1.ScanRunErrorTrace error_trace = 8; +} diff --git a/google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto b/google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto index 43a5017df..dfc616977 100644 --- a/google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto +++ b/google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -51,6 +51,9 @@ message ScanRunWarningTrace { // Indicates that a scan is blocked by IAP. BLOCKED_BY_IAP = 4; + + // Indicates that no seeds is found for a scan + NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN = 5; } // Output only. Indicates the warning code. diff --git a/google/cloud/websecurityscanner/v1/web_security_scanner.proto b/google/cloud/websecurityscanner/v1/web_security_scanner.proto index 5f1bfcd41..efcc9bf2d 100644 --- a/google/cloud/websecurityscanner/v1/web_security_scanner.proto +++ b/google/cloud/websecurityscanner/v1/web_security_scanner.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.websecurityscanner.v1; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/cloud/websecurityscanner/v1/crawled_url.proto"; import "google/cloud/websecurityscanner/v1/finding.proto"; import "google/cloud/websecurityscanner/v1/finding_type_stats.proto"; @@ -24,7 +25,6 @@ import "google/cloud/websecurityscanner/v1/scan_config.proto"; import "google/cloud/websecurityscanner/v1/scan_run.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.WebSecurityScanner.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1;websecurityscanner"; diff --git a/google/cloud/websecurityscanner/v1alpha/BUILD.bazel b/google/cloud/websecurityscanner/v1alpha/BUILD.bazel index 69d519aa3..1d385ff19 100644 --- a/google/cloud/websecurityscanner/v1alpha/BUILD.bazel +++ b/google/cloud/websecurityscanner/v1alpha/BUILD.bazel @@ -69,6 +69,7 @@ java_gapic_library( test_deps = [ ":websecurityscanner_java_grpc", ], + transport = "grpc+rest", deps = [ ":websecurityscanner_java_proto", ], @@ -77,6 +78,7 @@ java_gapic_library( java_gapic_test( name = "websecurityscanner_java_gapic_test_suite", test_classes = [ + "com.google.cloud.websecurityscanner.v1alpha.WebSecurityScannerClientHttpJsonTest", "com.google.cloud.websecurityscanner.v1alpha.WebSecurityScannerClientTest", ], runtime_deps = [":websecurityscanner_java_gapic_test"], @@ -85,6 +87,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-websecurityscanner-v1alpha-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":websecurityscanner_java_gapic", ":websecurityscanner_java_grpc", @@ -120,6 +124,7 @@ go_gapic_library( grpc_service_config = "websecurityscanner_grpc_service_config.json", importpath = "cloud.google.com/go/cloud/websecurityscanner/apiv1alpha;websecurityscanner", service_yaml = "websecurityscanner_v1alpha.yaml", + transport = "grpc+rest", deps = [ ":websecurityscanner_go_proto", ], @@ -149,12 +154,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "websecurityscanner_py_gapic", srcs = [":websecurityscanner_proto"], grpc_service_config = "websecurityscanner_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "websecurityscanner_py_gapic_test", + srcs = [ + "websecurityscanner_py_gapic_pytest.py", + "websecurityscanner_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":websecurityscanner_py_gapic"], ) py_gapic_assembly_pkg( @@ -239,8 +256,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -258,7 +275,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "websecurityscanner_ruby_gapic", - srcs = [":websecurityscanner_proto_with_info",], + srcs = [":websecurityscanner_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-websecurityscanner-v1alpha"], deps = [ ":websecurityscanner_ruby_grpc", @@ -303,6 +320,7 @@ csharp_gapic_library( srcs = [":websecurityscanner_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "websecurityscanner_grpc_service_config.json", + service_yaml = "websecurityscanner_v1alpha.yaml", deps = [ ":websecurityscanner_csharp_grpc", ":websecurityscanner_csharp_proto", diff --git a/google/cloud/websecurityscanner/v1beta/BUILD.bazel b/google/cloud/websecurityscanner/v1beta/BUILD.bazel index 2d9b1314f..cbbaf83da 100644 --- a/google/cloud/websecurityscanner/v1beta/BUILD.bazel +++ b/google/cloud/websecurityscanner/v1beta/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":websecurityscanner_java_grpc", ], + transport = "grpc+rest", deps = [ ":websecurityscanner_java_proto", ], @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "websecurityscanner_java_gapic_test_suite", test_classes = [ + "com.google.cloud.websecurityscanner.v1beta.WebSecurityScannerClientHttpJsonTest", "com.google.cloud.websecurityscanner.v1beta.WebSecurityScannerClientTest", ], runtime_deps = [":websecurityscanner_java_gapic_test"], @@ -88,6 +90,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-websecurityscanner-v1beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":websecurityscanner_java_gapic", ":websecurityscanner_java_grpc", @@ -123,6 +127,7 @@ go_gapic_library( grpc_service_config = "websecurityscanner_grpc_service_config.json", importpath = "cloud.google.com/go/websecurityscanner/apiv1beta;websecurityscanner", service_yaml = "websecurityscanner_v1beta.yaml", + transport = "grpc+rest", deps = [ ":websecurityscanner_go_proto", ], @@ -152,12 +157,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "websecurityscanner_py_gapic", srcs = [":websecurityscanner_proto"], grpc_service_config = "websecurityscanner_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "websecurityscanner_py_gapic_test", + srcs = [ + "websecurityscanner_py_gapic_pytest.py", + "websecurityscanner_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":websecurityscanner_py_gapic"], ) py_gapic_assembly_pkg( @@ -315,6 +332,7 @@ csharp_gapic_library( srcs = [":websecurityscanner_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "websecurityscanner_grpc_service_config.json", + service_yaml = "websecurityscanner_v1beta.yaml", deps = [ ":websecurityscanner_csharp_grpc", ":websecurityscanner_csharp_proto", diff --git a/google/cloud/workflows/executions/v1/BUILD.bazel b/google/cloud/workflows/executions/v1/BUILD.bazel index 8bbd1c012..146281fc3 100644 --- a/google/cloud/workflows/executions/v1/BUILD.bazel +++ b/google/cloud/workflows/executions/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":executions_java_grpc", ], + transport = "grpc+rest", deps = [ ":executions_java_proto", "//google/api:api_java_proto", @@ -81,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "executions_java_gapic_test_suite", test_classes = [ + "com.google.cloud.workflows.executions.v1.ExecutionsClientHttpJsonTest", "com.google.cloud.workflows.executions.v1.ExecutionsClientTest", ], runtime_deps = [":executions_java_gapic_test"], @@ -89,6 +91,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-workflows-executions-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":executions_java_gapic", ":executions_java_grpc", @@ -125,6 +129,7 @@ go_gapic_library( importpath = "cloud.google.com/go/workflows/executions/apiv1;executions", metadata = True, service_yaml = "workflowexecutions_v1.yaml", + transport = "grpc+rest", deps = [ ":executions_go_proto", ], @@ -155,12 +160,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "executions_py_gapic", srcs = [":executions_proto"], grpc_service_config = "executions_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "executions_py_gapic_test", + srcs = [ + "executions_py_gapic_pytest.py", + "executions_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":executions_py_gapic"], ) # Open Source Packages @@ -321,6 +338,7 @@ csharp_gapic_library( srcs = [":executions_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "executions_grpc_service_config.json", + service_yaml = "workflowexecutions_v1.yaml", deps = [ ":executions_csharp_grpc", ":executions_csharp_proto", diff --git a/google/cloud/workflows/executions/v1beta/BUILD.bazel b/google/cloud/workflows/executions/v1beta/BUILD.bazel index 7bdfee1ca..56a16b675 100644 --- a/google/cloud/workflows/executions/v1beta/BUILD.bazel +++ b/google/cloud/workflows/executions/v1beta/BUILD.bazel @@ -61,6 +61,7 @@ java_gapic_library( test_deps = [ ":executions_java_grpc", ], + transport = "grpc+rest", deps = [ ":executions_java_proto", ], @@ -69,6 +70,7 @@ java_gapic_library( java_gapic_test( name = "executions_java_gapic_test_suite", test_classes = [ + "com.google.cloud.workflows.executions.v1beta.ExecutionsClientHttpJsonTest", "com.google.cloud.workflows.executions.v1beta.ExecutionsClientTest", ], runtime_deps = [":executions_java_gapic_test"], @@ -77,6 +79,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-workflows-executions-v1beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":executions_java_gapic", ":executions_java_grpc", @@ -112,6 +116,7 @@ go_gapic_library( grpc_service_config = "executions_grpc_service_config.json", importpath = "cloud.google.com/go/workflows/executions/apiv1beta;executions", service_yaml = "workflowexecutions_v1beta.yaml", + transport = "grpc+rest", deps = [ ":executions_go_proto", ], @@ -141,12 +146,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "executions_py_gapic", srcs = [":executions_proto"], grpc_service_config = "executions_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "executions_py_gapic_test", + srcs = [ + "executions_py_gapic_pytest.py", + "executions_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":executions_py_gapic"], ) # Open Source Packages @@ -307,6 +324,7 @@ csharp_gapic_library( srcs = [":executions_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "executions_grpc_service_config.json", + service_yaml = "workflowexecutions_v1beta.yaml", deps = [ ":executions_csharp_grpc", ":executions_csharp_proto", diff --git a/google/cloud/workflows/type/BUILD.bazel b/google/cloud/workflows/type/BUILD.bazel index 2e4cb6229..f72905a25 100644 --- a/google/cloud/workflows/type/BUILD.bazel +++ b/google/cloud/workflows/type/BUILD.bazel @@ -15,6 +15,7 @@ proto_library( "executions_system.proto", ], deps = [ + "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -71,6 +72,7 @@ moved_proto_library( name = "type_moved_proto", srcs = [":type_proto"], deps = [ + "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", ], ) diff --git a/google/cloud/workflows/type/engine_call.proto b/google/cloud/workflows/type/engine_call.proto index 0e93227fd..57d8c9216 100644 --- a/google/cloud/workflows/type/engine_call.proto +++ b/google/cloud/workflows/type/engine_call.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.workflows.type; +import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/workflows/type"; @@ -26,6 +27,24 @@ option java_package = "com.google.cloud.workflows.type"; // Logged during a workflow execution if the customer has requested call // logging. message EngineCallLog { + // The state of a function call. + enum State { + // Function call state is unspecified or unknown. + STATE_UNSPECIFIED = 0; + + // Function call is starting. + BEGUN = 1; + + // Function call has completed successfully. + SUCCEEDED = 2; + + // Function call did not succeed because an exception was raised. + EXCEPTION_RAISED = 3; + + // Function call handled an exception and is continuing. + EXCEPTION_HANDLED = 4; + } + // Information about an argument to a called function. message CallArg { // A function argument, serialized to a string. This may be truncated for @@ -35,8 +54,15 @@ message EngineCallLog { // Information about the start of a call. message Begun { - // The arguments passed to the function. + // The arguments passed to the function. Only one of 'args' and 'named_args' + // will be populated. repeated CallArg args = 1; + + // The arguments passed to the function, as a map with the argument names as + // the keys. The values may be JSON values or they may be the serialized + // string forms of the arguments truncated for size reasons. Only one of + // 'args' and 'named_args' will be populated. + map named_args = 2; } // Information about the end of a successful call. @@ -62,19 +88,17 @@ message EngineCallLog { string origin = 3; } - // The state of a function call. - enum State { - // Function call state is unspecified or unknown. - STATE_UNSPECIFIED = 0; - - // Function call is starting. - BEGUN = 1; + // Information about an exception which was handled. + message ExceptionHandled { + // The time when the call started. + google.protobuf.Timestamp call_start_time = 1; - // Function call has completed successfully. - SUCCEEDED = 2; + // The exception message which was handled, truncated if necessary. + string exception = 2; - // Function call did not succeed because an exception was raised. - EXCEPTION_RAISED = 3; + // The name of the step where the failure originates, if known. Truncated + // if necessary. + string origin = 3; } // The execution ID of the execution where the call occurred. @@ -101,5 +125,8 @@ message EngineCallLog { // Appears when a call returns because an exception was raised. ExceptionRaised exception_raised = 8; + + // Appears when an exception is handled and normal execution resumes. + ExceptionHandled exception_handled = 9; } } diff --git a/google/cloud/workflows/type/executions_system.proto b/google/cloud/workflows/type/executions_system.proto index 42e0321ed..13f9bf224 100644 --- a/google/cloud/workflows/type/executions_system.proto +++ b/google/cloud/workflows/type/executions_system.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -22,6 +22,24 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/workflows/type" // Logged during the lifetime of Workflow Execution. message ExecutionsSystemLog { + // Possible states of the execution. There could be more states in the future. + enum State { + // Invalid state. + STATE_UNSPECIFIED = 0; + + // The Workflow Execution is in progress. + ACTIVE = 1; + + // The Workflow Execution has finished successfully. + SUCCEEDED = 2; + + // The Workflow Execution failed with an error. + FAILED = 3; + + // The Workflow Execution has been stopped intentionally. + CANCELLED = 4; + } + // Detailed information about the start of the execution. message Start { // The execution input argument. @@ -45,24 +63,6 @@ message ExecutionsSystemLog { string source = 2; } - // Possible states of the execution. There could be more states in the future. - enum State { - // Invalid state. - STATE_UNSPECIFIED = 0; - - // The Workflow Execution is in progress. - ACTIVE = 1; - - // The Workflow Execution has finished successfully. - SUCCEEDED = 2; - - // The Workflow Execution failed with an error. - FAILED = 3; - - // The Workflow Execution has been stopped intentionally. - CANCELLED = 4; - } - // Human readable contents of the log in English. The size limit is 5 kB. string message = 1; diff --git a/google/cloud/workflows/v1/BUILD.bazel b/google/cloud/workflows/v1/BUILD.bazel index 04f576ed2..26f8ef87a 100644 --- a/google/cloud/workflows/v1/BUILD.bazel +++ b/google/cloud/workflows/v1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":workflows_java_grpc", ], + transport = "grpc+rest", deps = [ ":workflows_java_proto", "//google/api:api_java_proto", @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "workflows_java_gapic_test_suite", test_classes = [ + "com.google.cloud.workflows.v1.WorkflowsClientHttpJsonTest", "com.google.cloud.workflows.v1.WorkflowsClientTest", ], runtime_deps = [":workflows_java_gapic_test"], @@ -91,6 +93,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-workflows-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":workflows_java_gapic", ":workflows_java_grpc", @@ -128,6 +132,7 @@ go_gapic_library( importpath = "cloud.google.com/go/workflows/apiv1;workflows", metadata = True, service_yaml = "workflows_v1.yaml", + transport = "grpc+rest", deps = [ ":workflows_go_proto", "//google/longrunning:longrunning_go_proto", @@ -161,12 +166,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "workflows_py_gapic", srcs = [":workflows_proto"], grpc_service_config = "workflows_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "workflows_py_gapic_test", + srcs = [ + "workflows_py_gapic_pytest.py", + "workflows_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":workflows_py_gapic"], ) # Open Source Packages @@ -326,6 +343,7 @@ csharp_gapic_library( srcs = [":workflows_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "workflows_grpc_service_config.json", + service_yaml = "workflows_v1.yaml", deps = [ ":workflows_csharp_grpc", ":workflows_csharp_proto", diff --git a/google/cloud/workflows/v1beta/BUILD.bazel b/google/cloud/workflows/v1beta/BUILD.bazel index bb3b0a5a5..9391b2bf1 100644 --- a/google/cloud/workflows/v1beta/BUILD.bazel +++ b/google/cloud/workflows/v1beta/BUILD.bazel @@ -63,6 +63,7 @@ java_gapic_library( test_deps = [ ":workflows_java_grpc", ], + transport = "grpc+rest", deps = [ ":workflows_java_proto", ], @@ -71,6 +72,7 @@ java_gapic_library( java_gapic_test( name = "workflows_java_gapic_test_suite", test_classes = [ + "com.google.cloud.workflows.v1beta.WorkflowsClientHttpJsonTest", "com.google.cloud.workflows.v1beta.WorkflowsClientTest", ], runtime_deps = [":workflows_java_gapic_test"], @@ -79,6 +81,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-workflows-v1beta-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":workflows_java_gapic", ":workflows_java_grpc", @@ -115,6 +119,7 @@ go_gapic_library( grpc_service_config = "workflows_grpc_service_config.json", importpath = "cloud.google.com/go/workflows/apiv1beta;workflows", service_yaml = "workflows_v1beta.yaml", + transport = "grpc+rest", deps = [ ":workflows_go_proto", "//google/longrunning:longrunning_go_proto", @@ -147,12 +152,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "workflows_py_gapic", srcs = [":workflows_proto"], grpc_service_config = "workflows_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "workflows_py_gapic_test", + srcs = [ + "workflows_py_gapic_pytest.py", + "workflows_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":workflows_py_gapic"], ) # Open Source Packages @@ -312,6 +329,7 @@ csharp_gapic_library( srcs = [":workflows_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "workflows_grpc_service_config.json", + service_yaml = "workflows_v1beta.yaml", deps = [ ":workflows_csharp_grpc", ":workflows_csharp_proto", diff --git a/google/container/v1/BUILD.bazel b/google/container/v1/BUILD.bazel index cfc60eeea..ed2e76c84 100644 --- a/google/container/v1/BUILD.bazel +++ b/google/container/v1/BUILD.bazel @@ -30,6 +30,7 @@ proto_library( "//google/api:resource_proto", "//google/rpc:code_proto", "//google/rpc:status_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:timestamp_proto", "@com_google_protobuf//:wrappers_proto", @@ -161,6 +162,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -171,6 +173,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "warehouse-package-name=google-cloud-container", ], + transport = "grpc", +) + +py_test( + name = "container_py_gapic_test", + srcs = [ + "container_py_gapic_pytest.py", + "container_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":container_py_gapic"], ) # Open Source Packages @@ -330,6 +343,7 @@ csharp_gapic_library( srcs = [":container_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "container_grpc_service_config.json", + service_yaml = "container_v1.yaml", deps = [ ":container_csharp_grpc", ":container_csharp_proto", diff --git a/google/container/v1/cluster_service.proto b/google/container/v1/cluster_service.proto index 6dc6eeca6..5b71bb8da 100644 --- a/google/container/v1/cluster_service.proto +++ b/google/container/v1/cluster_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -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/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; @@ -350,6 +351,15 @@ service ClusterManager { option (google.api.method_signature) = "name"; } + // CompleteNodePoolUpgrade will signal an on-going node pool upgrade to + // complete. + rpc CompleteNodePoolUpgrade(CompleteNodePoolUpgradeRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}:completeUpgrade" + body: "*" + }; + } + // Rolls back a previously Aborted or Failed NodePool upgrade. // This makes no changes if the last upgrade successfully completed. rpc RollbackNodePoolUpgrade(RollbackNodePoolUpgradeRequest) returns (Operation) { @@ -488,6 +498,8 @@ message LinuxNodeConfig { // // The following parameters are supported. // + // net.core.busy_poll + // net.core.busy_read // net.core.netdev_max_backlog // net.core.rmem_max // net.core.wmem_default @@ -533,9 +545,21 @@ message NodeKubeletConfig { // Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". // The value must be a positive duration. string cpu_cfs_quota_period = 3; + + // Set the Pod PID limits. See + // https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits + // + // Controls the maximum number of processes allowed to run in a pod. The value + // must be greater than or equal to 1024 and less than 4194304. + int64 pod_pids_limit = 4; } // Parameters that describe the nodes in a cluster. +// +// GKE Autopilot clusters do not +// recognize parameters in `NodeConfig`. Use +// [AutoprovisioningNodePoolDefaults][google.container.v1.AutoprovisioningNodePoolDefaults] +// instead. message NodeConfig { // The name of a Google Compute Engine [machine // type](https://cloud.google.com/compute/docs/machine-types) @@ -577,6 +601,7 @@ message NodeConfig { // in length. These are 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 or be one of the reserved keys: + // // - "cluster-location" // - "cluster-name" // - "cluster-uid" @@ -707,6 +732,17 @@ message NodeConfig { // Enable or disable gvnic in the node pool. VirtualNIC gvnic = 29; + + // Spot flag for enabling Spot VM, which is a rebrand of + // the existing preemptible flag. + bool spot = 32; + + // Confidential nodes config. + // All the nodes in the node pool will be Confidential VM once enabled. + ConfidentialNodes confidential_nodes = 35; + + // Logging configuration. + NodePoolLoggingConfig logging_config = 38; } // Specifies options for controlling advanced machine features. @@ -719,6 +755,21 @@ message AdvancedMachineFeatures { // Parameters for node pool-level network config. message NodeNetworkConfig { + // Configuration of all network bandwidth tiers + message NetworkPerformanceConfig { + // Node network tier + enum Tier { + // Default value + TIER_UNSPECIFIED = 0; + + // Higher bandwidth, actual values based on VM size. + TIER_1 = 1; + } + + // Specifies the total network bandwidth tier for the NodePool. + optional Tier total_egress_bandwidth_tier = 1; + } + // Input only. Whether to create a new range for pod IPs in this node pool. // Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they // are not specified. @@ -759,6 +810,9 @@ message NodeNetworkConfig { // // This field cannot be changed after the node pool has been created. string pod_ipv4_cidr_block = 6; + + // Network bandwidth tier configuration. + optional NetworkPerformanceConfig network_performance_config = 11; } // A set of Shielded Instance options. @@ -825,8 +879,9 @@ message ReservationAffinity { Type consume_reservation_type = 1; // 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. + // SPECIFIC_RESERVATION by name, specify + // "compute.googleapis.com/reservation-name" as the key and specify the name + // of your reservation as its value. string key = 2; // Corresponds to the label value(s) of reservation resource(s). @@ -865,6 +920,27 @@ message NodeTaint { Effect effect = 3; } +// Collection of Kubernetes [node +// taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration). +message NodeTaints { + // List of node taints. + repeated NodeTaint taints = 1; +} + +// Collection of node-level [Kubernetes +// labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels). +message NodeLabels { + // Map of node label keys and node label values. + map labels = 1; +} + +// Collection of Compute Engine network tags that can be applied to a node's +// underlying VM instance. +message NetworkTags { + // List of network tags. + repeated string tags = 1; +} + // The authentication information for accessing the master endpoint. // Authentication can be done using HTTP basic auth or using client // certificates. @@ -1133,9 +1209,29 @@ message NetworkPolicy { // Configuration for Binary Authorization. message BinaryAuthorization { - // Enable Binary Authorization for this cluster. If enabled, all container - // images will be validated by Binary Authorization. - bool enabled = 1; + // Binary Authorization mode of operation. + enum EvaluationMode { + // Default value + EVALUATION_MODE_UNSPECIFIED = 0; + + // Disable BinaryAuthorization + DISABLED = 1; + + // Enforce Kubernetes admission requests with BinaryAuthorization using the + // project's singleton policy. This is equivalent to setting the + // enabled boolean to true. + PROJECT_SINGLETON_POLICY_ENFORCE = 2; + } + + // This field is deprecated. Leave this unset and instead configure + // BinaryAuthorization using evaluation_mode. If evaluation_mode is set to + // anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored. + bool enabled = 1 [deprecated = true]; + + // Mode of operation for binauthz policy evaluation. Currently the only + // options are equivalent to enable/disable. If unspecified, defaults to + // DISABLED. + EvaluationMode evaluation_mode = 2; } // Configuration for controlling how IPs are allocated in the cluster. @@ -1473,9 +1569,13 @@ message Cluster { // Notification configuration of the cluster. NotificationConfig notification_config = 49; - // Configuration of Confidential Nodes + // Configuration of Confidential Nodes. + // All the nodes in the cluster will be Confidential VM once enabled. ConfidentialNodes confidential_nodes = 50; + // Configuration for Identity Service component. + IdentityServiceConfig identity_service_config = 54; + // [Output only] Server-defined URL for the resource. string self_link = 100; @@ -1586,6 +1686,20 @@ message Cluster { // Monitoring configuration for the cluster. MonitoringConfig monitoring_config = 133; + + // Node pool configs that apply to all auto-provisioned node pools + // in autopilot clusters and node auto-provisioning enabled clusters. + NodePoolAutoConfig node_pool_auto_config = 136; +} + +// Node pool configs that apply to all auto-provisioned node pools +// in autopilot clusters and node auto-provisioning enabled clusters. +message NodePoolAutoConfig { + // The list of instance tags applied to all nodes. Tags are used to identify + // valid sources or targets for network firewalls and are specified by + // the client during cluster creation. Each tag within the list + // must comply with RFC1035. + NetworkTags network_tags = 1; } // Subset of Nodepool message that has defaults. @@ -1596,8 +1710,11 @@ message NodePoolDefaults { // Subset of NodeConfig message that has defaults. message NodeConfigDefaults { - // GCFS (Google Container File System, a.k.a Riptide) options. + // GCFS (Google Container File System, also known as Riptide) options. GcfsConfig gcfs_config = 1; + + // Logging configuration for node pools. + NodePoolLoggingConfig logging_config = 3; } // ClusterUpdate describes an update to the cluster. Exactly one update can @@ -1736,6 +1853,9 @@ message ClusterUpdate { // The desired monitoring configuration. MonitoringConfig desired_monitoring_config = 65; + // The desired Identity Service component configuration. + IdentityServiceConfig desired_identity_service_config = 66; + // ServiceExternalIPsConfig specifies the config for the use of Services with // ExternalIPs field. ServiceExternalIPsConfig desired_service_external_ips_config = 60; @@ -1754,6 +1874,13 @@ message ClusterUpdate { // The desired GCFS config for the cluster GcfsConfig desired_gcfs_config = 109; + + // The desired network tags that apply to all auto-provisioned node pools + // in autopilot clusters and node auto-provisioning enabled clusters. + NetworkTags desired_node_pool_auto_config_network_tags = 110; + + // The desired node pool logging configuration defaults for the cluster. + NodePoolLoggingConfig desired_node_pool_logging_config = 116; } // This operation resource represents operations that may have happened or are @@ -1934,7 +2061,7 @@ message OperationProgress { // CreateClusterRequest creates a cluster. message CreateClusterRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [deprecated = true]; @@ -1956,7 +2083,7 @@ message CreateClusterRequest { // GetClusterRequest gets the settings of a cluster. message GetClusterRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -1978,7 +2105,7 @@ message GetClusterRequest { // UpdateClusterRequest updates the settings of a cluster. message UpdateClusterRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2003,7 +2130,7 @@ message UpdateClusterRequest { // UpdateNodePoolRequests update a node pool's image and/or version. message UpdateNodePoolRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2055,23 +2182,48 @@ message UpdateNodePoolRequest { // Upgrade settings control disruption and speed of the upgrade. NodePool.UpgradeSettings upgrade_settings = 15; + // The desired network tags to be applied to all nodes in the node pool. + // If this field is not present, the tags will not be changed. Otherwise, + // the existing network tags will be *replaced* with the provided tags. + NetworkTags tags = 16; + + // The desired node taints to be applied to all nodes in the node pool. + // If this field is not present, the taints will not be changed. Otherwise, + // the existing node taints will be *replaced* with the provided taints. + NodeTaints taints = 17; + + // The desired node labels to be applied to all nodes in the node pool. + // If this field is not present, the labels will not be changed. Otherwise, + // the existing node labels will be *replaced* with the provided labels. + NodeLabels labels = 18; + // Parameters that can be configured on Linux nodes. LinuxNodeConfig linux_node_config = 19; // Node kubelet configs. NodeKubeletConfig kubelet_config = 20; + // Node network config. + NodeNetworkConfig node_network_config = 21; + // GCFS config. GcfsConfig gcfs_config = 22; + // Confidential nodes config. + // All the nodes in the node pool will be Confidential VM once enabled. + ConfidentialNodes confidential_nodes = 23; + // Enable or disable gvnic on the node pool. VirtualNIC gvnic = 29; + + // Logging configuration. + NodePoolLoggingConfig logging_config = 32; } // SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool. message SetNodePoolAutoscalingRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2101,7 +2253,7 @@ message SetNodePoolAutoscalingRequest { // SetLoggingServiceRequest sets the logging service of a cluster. message SetLoggingServiceRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2136,7 +2288,7 @@ message SetLoggingServiceRequest { // SetMonitoringServiceRequest sets the monitoring service of a cluster. message SetMonitoringServiceRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2171,7 +2323,7 @@ message SetMonitoringServiceRequest { // SetAddonsConfigRequest sets the addons associated with the cluster. message SetAddonsConfigRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2197,7 +2349,7 @@ message SetAddonsConfigRequest { // SetLocationsRequest sets the locations of the cluster. message SetLocationsRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2228,7 +2380,7 @@ message SetLocationsRequest { // UpdateMasterRequest updates the master of the cluster. message UpdateMasterRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2280,7 +2432,7 @@ message SetMasterAuthRequest { } // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2308,7 +2460,7 @@ message SetMasterAuthRequest { // DeleteClusterRequest deletes a cluster. message DeleteClusterRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2330,7 +2482,7 @@ message DeleteClusterRequest { // ListClustersRequest lists clusters. message ListClustersRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [deprecated = true]; @@ -2360,7 +2512,7 @@ message ListClustersResponse { // GetOperationRequest gets a single operation. message GetOperationRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2382,7 +2534,7 @@ message GetOperationRequest { // ListOperationsRequest lists operations. message ListOperationsRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [deprecated = true]; @@ -2401,7 +2553,7 @@ message ListOperationsRequest { // CancelOperationRequest cancels a single operation. message CancelOperationRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2433,7 +2585,7 @@ message ListOperationsResponse { // Gets the current Kubernetes Engine service configuration. message GetServerConfigRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2484,7 +2636,7 @@ message ServerConfig { // CreateNodePoolRequest creates a node pool for a cluster. message CreateNodePoolRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [deprecated = true]; @@ -2501,7 +2653,7 @@ message CreateNodePoolRequest { // Required. The node pool to create. NodePool node_pool = 4 [(google.api.field_behavior) = REQUIRED]; - // The parent (project, location, cluster id) where the node pool will be + // The parent (project, location, cluster name) where the node pool will be // created. Specified in the format // `projects/*/locations/*/clusters/*`. string parent = 6; @@ -2510,7 +2662,7 @@ message CreateNodePoolRequest { // DeleteNodePoolRequest deletes a node pool for a cluster. message DeleteNodePoolRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2537,7 +2689,7 @@ message DeleteNodePoolRequest { // ListNodePoolsRequest lists the node pool(s) for a cluster. message ListNodePoolsRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [deprecated = true]; @@ -2551,7 +2703,7 @@ message ListNodePoolsRequest { // This field has been deprecated and replaced by the parent field. string cluster_id = 3 [deprecated = true]; - // The parent (project, location, cluster id) where the node pools will be + // The parent (project, location, cluster name) where the node pools will be // listed. Specified in the format `projects/*/locations/*/clusters/*`. string parent = 5; } @@ -2559,7 +2711,7 @@ message ListNodePoolsRequest { // GetNodePoolRequest retrieves a node pool for a cluster. message GetNodePoolRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2583,6 +2735,35 @@ message GetNodePoolRequest { string name = 6; } +// Settings for blue-green upgrade. +message BlueGreenSettings { + // Standard rollout policy is the default policy for blue-green. + message StandardRolloutPolicy { + // Blue pool size to drain in a batch. + oneof update_batch_size { + // Percentage of the bool pool nodes to drain in a batch. + // The range of this field should be (0.0, 1.0]. + float batch_percentage = 1; + + // Number of blue nodes to drain in a batch. + int32 batch_node_count = 2; + } + + // Soak time after each batch gets drained. Default to zero. + optional google.protobuf.Duration batch_soak_duration = 3; + } + + // The rollout policy controls the general rollout progress of blue-green. + oneof rollout_policy { + // Standard policy for the blue-green upgrade. + StandardRolloutPolicy standard_rollout_policy = 1; + } + + // Time needed after draining entire blue pool. After this period, blue pool + // will be cleaned up. + optional google.protobuf.Duration node_pool_soak_duration = 2; +} + // NodePool contains the name and configuration for a cluster's node pool. // Node pools are a set of nodes (i.e. VM's), with a common configuration and // specification, under the control of the cluster master. They may have a set @@ -2613,6 +2794,29 @@ message NodePool { // simultaneously. It creates 2 additional (upgraded) nodes, then it brings // down 3 old (not yet upgraded) nodes at the same time. This ensures that // there are always at least 4 nodes available. + // + // These upgrade settings configure the upgrade strategy for the node pool. + // Use strategy to switch between the strategies applied to the node pool. + // + // If the strategy is ROLLING, use max_surge and max_unavailable to control + // the level of parallelism and the level of disruption caused by upgrade. + // 1. maxSurge controls the number of additional nodes that can be added to + // the node pool temporarily for the time of the upgrade to increase the + // number of available nodes. + // 2. maxUnavailable controls the number of nodes that can be simultaneously + // unavailable. + // 3. (maxUnavailable + maxSurge) determines the level of parallelism (how + // many nodes are being upgraded at the same time). + // + // If the strategy is BLUE_GREEN, use blue_green_settings to configure the + // blue-green upgrade related settings. + // 1. standard_rollout_policy is the default policy. The policy is used to + // control the way blue pool gets drained. The draining is executed in the + // batch mode. The batch size could be specified as either percentage of the + // node pool size or the number of nodes. batch_soak_duration is the soak + // time after each batch gets drained. + // 2. node_pool_soak_duration is the soak time after all blue nodes are + // drained. After this period, the blue pool nodes will be deleted. message UpgradeSettings { // The maximum number of nodes that can be created beyond the current size // of the node pool during the upgrade process. @@ -2622,6 +2826,69 @@ message NodePool { // the upgrade process. A node is considered available if its status is // Ready. int32 max_unavailable = 2; + + // Update strategy of the node pool. + optional NodePoolUpdateStrategy strategy = 3; + + // Settings for blue-green upgrade strategy. + optional BlueGreenSettings blue_green_settings = 4; + } + + // UpdateInfo contains resource (instance groups, etc), status and other + // intermediate information relevant to a node pool upgrade. + message UpdateInfo { + // Information relevant to blue-green upgrade. + message BlueGreenInfo { + // Phase represents the different stages blue-green upgrade is running in. + enum Phase { + // Unspecified phase. + PHASE_UNSPECIFIED = 0; + + // blue-green upgrade has been initiated. + UPDATE_STARTED = 1; + + // Start creating green pool nodes. + CREATING_GREEN_POOL = 2; + + // Start cordoning blue pool nodes. + CORDONING_BLUE_POOL = 3; + + // Start draining blue pool nodes. + DRAINING_BLUE_POOL = 4; + + // Start soaking time after draining entire blue pool. + NODE_POOL_SOAKING = 5; + + // Start deleting blue nodes. + DELETING_BLUE_POOL = 6; + + // Rollback has been initiated. + ROLLBACK_STARTED = 7; + } + + // Current blue-green upgrade phase. + Phase phase = 1; + + // The resource URLs of the [managed instance groups] + // (/compute/docs/instance-groups/creating-groups-of-managed-instances) + // associated with blue pool. + repeated string blue_instance_group_urls = 2; + + // The resource URLs of the [managed instance groups] + // (/compute/docs/instance-groups/creating-groups-of-managed-instances) + // associated with green pool. + repeated string green_instance_group_urls = 3; + + // Time to start deleting blue pool to complete blue-green upgrade, + // in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. + string blue_pool_deletion_start_time = 4; + + // Version of green pool. + string green_pool_version = 5; + } + + // Information of a blue-green upgrade. + BlueGreenInfo blue_green_info = 1; } // The current status of the node pool instance. @@ -2692,6 +2959,8 @@ message NodePool { // [Output only] The resource URLs of the [managed instance // groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) // associated with this node pool. + // During the node pool blue-green upgrade operation, the URLs contain both + // blue and green resources. repeated string instance_group_urls = 102; // [Output only] The status of the nodes in this pool instance. @@ -2721,6 +2990,10 @@ message NodePool { // Upgrade settings control disruption and speed of the upgrade. UpgradeSettings upgrade_settings = 107; + + // Output only. [Output only] Update info contains relevant information during a node + // pool update. + UpdateInfo update_info = 109 [(google.api.field_behavior) = OUTPUT_ONLY]; } // NodeManagement defines the set of node management services turned on for the @@ -2882,7 +3155,7 @@ message DailyMaintenanceWindow { // pool. message SetNodePoolManagementRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2912,7 +3185,7 @@ message SetNodePoolManagementRequest { // SetNodePoolSizeRequest sets the size of a node pool. message SetNodePoolSizeRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2939,12 +3212,21 @@ message SetNodePoolSizeRequest { string name = 7; } +// CompleteNodePoolUpgradeRequest sets the name of target node pool to complete +// upgrade. +message CompleteNodePoolUpgradeRequest { + // The name (project, location, cluster, node pool id) of the node pool to + // complete upgrade. + // Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`. + string name = 1; +} + // RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed // NodePool upgrade. This will be an no-op if the last upgrade successfully // completed. message RollbackNodePoolUpgradeRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -2966,6 +3248,10 @@ message RollbackNodePoolUpgradeRequest { // rollback upgrade. // Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`. string name = 6; + + // Option for rollback to ignore the PodDisruptionBudget. + // Default value is false. + bool respect_pdb = 7; } // ListNodePoolsResponse is the result of ListNodePoolsRequest. @@ -3026,16 +3312,19 @@ message AutoprovisioningNodePoolDefaults { // Specifies the node management options for NAP created node-pools. NodeManagement management = 4; - // Minimum CPU platform to be used for NAP created node pools. + // Deprecated. Minimum CPU platform to be used for NAP created node pools. // 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 [how to specify min CPU - // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) + // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). + // This field is deprecated, min_cpu_platform should be specified using + // https://cloud.google.com/requested-min-cpu-platform label selector on the + // pod. // To unset the min cpu platform field pass "automatic" // as field value. - string min_cpu_platform = 5; + string min_cpu_platform = 5 [deprecated = true]; // Size of the disk attached to each node, specified in GB. // The smallest allowed disk size is 10GB. @@ -3080,6 +3369,20 @@ message ResourceLimit { // NodePoolAutoscaling contains information required by cluster autoscaler to // adjust the size of the node pool to the current cluster usage. message NodePoolAutoscaling { + // Location policy specifies how zones are picked when scaling up the + // nodepool. + enum LocationPolicy { + // Not set. + LOCATION_POLICY_UNSPECIFIED = 0; + + // BALANCED is a best effort policy that aims to balance the sizes of + // different zones. + BALANCED = 1; + + // ANY policy picks zones that have the highest capacity available. + ANY = 2; + } + // Is autoscaling enabled for this node pool. bool enabled = 1; @@ -3093,6 +3396,21 @@ message NodePoolAutoscaling { // Can this node pool be deleted automatically. bool autoprovisioned = 4; + + // Location policy used when scaling up a nodepool. + LocationPolicy location_policy = 5; + + // Minimum number of nodes in the node pool. Must be greater than 1 less than + // total_max_node_count. + // The total_*_node_count fields are mutually exclusive with the *_node_count + // fields. + int32 total_min_node_count = 6; + + // Maximum number of nodes in the node pool. Must be greater than + // total_min_node_count. There has to be enough quota to scale up the cluster. + // The total_*_node_count fields are mutually exclusive with the *_node_count + // fields. + int32 total_max_node_count = 7; } // SetLabelsRequest sets the Google Cloud Platform labels on a Google Container @@ -3100,7 +3418,7 @@ message NodePoolAutoscaling { // resources used by that cluster message SetLabelsRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -3125,7 +3443,7 @@ message SetLabelsRequest { // resource to get the latest fingerprint. string label_fingerprint = 5 [(google.api.field_behavior) = REQUIRED]; - // The name (project, location, cluster id) of the cluster to set labels. + // The name (project, location, cluster name) of the cluster to set labels. // Specified in the format `projects/*/locations/*/clusters/*`. string name = 7; } @@ -3134,7 +3452,7 @@ message SetLabelsRequest { // a cluster. message SetLegacyAbacRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -3151,8 +3469,8 @@ message SetLegacyAbacRequest { // Required. Whether ABAC authorization will be enabled in the cluster. bool enabled = 4 [(google.api.field_behavior) = REQUIRED]; - // The name (project, location, cluster id) of the cluster to set legacy abac. - // Specified in the format `projects/*/locations/*/clusters/*`. + // The name (project, location, cluster name) of the cluster to set legacy + // abac. Specified in the format `projects/*/locations/*/clusters/*`. string name = 6; } @@ -3160,7 +3478,7 @@ message SetLegacyAbacRequest { // a node upgrade on each node pool to point to the new IP. message StartIPRotationRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -3174,7 +3492,7 @@ message StartIPRotationRequest { // This field has been deprecated and replaced by the name field. string cluster_id = 3 [deprecated = true]; - // The name (project, location, cluster id) of the cluster to start IP + // The name (project, location, cluster name) of the cluster to start IP // rotation. Specified in the format `projects/*/locations/*/clusters/*`. string name = 6; @@ -3185,7 +3503,7 @@ message StartIPRotationRequest { // CompleteIPRotationRequest moves the cluster master back into single-IP mode. message CompleteIPRotationRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -3199,7 +3517,7 @@ message CompleteIPRotationRequest { // This field has been deprecated and replaced by the name field. string cluster_id = 3 [deprecated = true]; - // The name (project, location, cluster id) of the cluster to complete IP + // The name (project, location, cluster name) of the cluster to complete IP // rotation. Specified in the format `projects/*/locations/*/clusters/*`. string name = 7; } @@ -3217,6 +3535,28 @@ message AcceleratorConfig { // NVIDIA [mig user // guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning). string gpu_partition_size = 3; + + // The configuration for GPU sharing options. + optional GPUSharingConfig gpu_sharing_config = 5; +} + +// GPUSharingConfig represents the GPU sharing configuration for Hardware +// Accelerators. +message GPUSharingConfig { + // The type of GPU sharing strategy currently provided. + enum GPUSharingStrategy { + // Default value. + GPU_SHARING_STRATEGY_UNSPECIFIED = 0; + + // GPUs are time-shared between containers. + TIME_SHARING = 1; + } + + // The max number of containers that can share a physical GPU. + int64 max_shared_clients_per_gpu = 1; + + // The type of GPU sharing strategy to enable on the GPU node. + optional GPUSharingStrategy gpu_sharing_strategy = 2; } // WorkloadMetadataConfig defines the metadata configuration to expose to @@ -3247,7 +3587,7 @@ message WorkloadMetadataConfig { // SetNetworkPolicyRequest enables/disables network policy for a cluster. message SetNetworkPolicyRequest { // Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [deprecated = true]; @@ -3264,7 +3604,7 @@ message SetNetworkPolicyRequest { // Required. Configuration options for the NetworkPolicy feature. NetworkPolicy network_policy = 4 [(google.api.field_behavior) = REQUIRED]; - // The name (project, location, cluster id) of the cluster to set networking + // The name (project, location, cluster name) of the cluster to set networking // policy. Specified in the format `projects/*/locations/*/clusters/*`. string name = 6; } @@ -3272,7 +3612,7 @@ message SetNetworkPolicyRequest { // SetMaintenancePolicyRequest sets the maintenance policy for a cluster. message SetMaintenancePolicyRequest { // Required. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). string project_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The name of the Google Compute Engine @@ -3287,8 +3627,8 @@ message SetMaintenancePolicyRequest { // clears the existing maintenance policy. MaintenancePolicy maintenance_policy = 4 [(google.api.field_behavior) = REQUIRED]; - // The name (project, location, cluster id) of the cluster to set maintenance - // policy. + // The name (project, location, cluster name) of the cluster to set + // maintenance policy. // Specified in the format `projects/*/locations/*/clusters/*`. string name = 5; } @@ -3422,7 +3762,7 @@ message GetOpenIDConfigResponse { // document returned by getOpenIDConfig. See the OpenID Connect // Discovery 1.0 specification for details. message GetJSONWebKeysRequest { - // The cluster (project, location, cluster id) to get keys for. Specified in + // The cluster (project, location, cluster name) to get keys for. Specified in // the format `projects/*/locations/*/clusters/*`. string parent = 1; } @@ -3558,6 +3898,13 @@ message WorkloadIdentityConfig { string workload_pool = 2; } +// IdentityServiceConfig is configuration for Identity Service which allows +// customers to use external identity providers with the K8S API +message IdentityServiceConfig { + // Whether to enable the Identity Service component + bool enabled = 1; +} + // Configuration for issuance of mTLS keys and certificates to Kubernetes pods. message MeshCertificates { // enable_certificates controls issuance of workload mTLS certificates. @@ -3761,22 +4108,6 @@ enum PrivateIPv6GoogleAccess { PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL = 3; } -// The datapath provider selects the implementation of the Kubernetes networking -// model for service resolution and network policy enforcement. -enum DatapathProvider { - // Default value. - DATAPATH_PROVIDER_UNSPECIFIED = 0; - - // Use the IPTables implementation based on kube-proxy. - LEGACY_DATAPATH = 1; - - // Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE - // Dataplane V2 - // documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2) - // for more. - ADVANCED_DATAPATH = 2; -} - // NotificationConfig is the configuration of notifications. message NotificationConfig { // Types of notifications currently supported. Can be used to filter what @@ -3828,8 +4159,7 @@ message NotificationConfig { // ConfidentialNodes is configuration for the confidential nodes feature, which // makes nodes run on confidential VMs. message ConfidentialNodes { - // Whether Confidential Nodes feature is enabled for all nodes in this - // cluster. + // Whether Confidential Nodes feature is enabled. bool enabled = 1; } @@ -3963,6 +4293,34 @@ message LoggingComponentConfig { message MonitoringConfig { // Monitoring components configuration MonitoringComponentConfig component_config = 1; + + // Enable Google Cloud Managed Service for Prometheus + // in the cluster. + ManagedPrometheusConfig managed_prometheus_config = 2; +} + +// NodePoolLoggingConfig specifies logging configuration for nodepools. +message NodePoolLoggingConfig { + // Logging variant configuration. + LoggingVariantConfig variant_config = 1; +} + +// LoggingVariantConfig specifies the behaviour of the logging component. +message LoggingVariantConfig { + // Logging component variants. + enum Variant { + // Default value. This shouldn't be used. + VARIANT_UNSPECIFIED = 0; + + // default logging variant. + DEFAULT = 1; + + // maximum logging throughput variant. + MAX_THROUGHPUT = 2; + } + + // Logging variant deployed on nodes. + Variant variant = 1; } // MonitoringComponentConfig is cluster monitoring component configuration. @@ -3974,9 +4332,54 @@ message MonitoringComponentConfig { // system components SYSTEM_COMPONENTS = 1; + + // kube-apiserver + APISERVER = 3; + + // kube-scheduler + SCHEDULER = 4; + + // kube-controller-manager + CONTROLLER_MANAGER = 5; } // Select components to collect metrics. An empty set would disable all // monitoring. repeated Component enable_components = 1; } + +// The datapath provider selects the implementation of the Kubernetes networking +// model for service resolution and network policy enforcement. +enum DatapathProvider { + // Default value. + DATAPATH_PROVIDER_UNSPECIFIED = 0; + + // Use the IPTables implementation based on kube-proxy. + LEGACY_DATAPATH = 1; + + // Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE + // Dataplane V2 + // documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2) + // for more. + ADVANCED_DATAPATH = 2; +} + +// Strategy used for node pool update. +enum NodePoolUpdateStrategy { + // Default value. + NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED = 0; + + // blue-green upgrade. + BLUE_GREEN = 2; + + // SURGE is the traditional way of upgrade a node pool. + // max_surge and max_unavailable determines the level of upgrade parallelism. + SURGE = 3; +} + +// ManagedPrometheusConfig defines the configuration for +// Google Cloud Managed Service for Prometheus. +message ManagedPrometheusConfig { + // Enable Managed Collection. + bool enabled = 1; +} diff --git a/google/container/v1/container_v1.yaml b/google/container/v1/container_v1.yaml index deb25d1c6..cd34ffbf8 100644 --- a/google/container/v1/container_v1.yaml +++ b/google/container/v1/container_v1.yaml @@ -7,6 +7,8 @@ apis: - name: google.container.v1.ClusterManager types: +- name: google.container.v1.GetOpenIDConfigRequest +- name: google.container.v1.GetOpenIDConfigResponse - name: google.container.v1.SecurityBulletinEvent - name: google.container.v1.UpgradeAvailableEvent - name: google.container.v1.UpgradeEvent diff --git a/google/container/v1beta1/BUILD.bazel b/google/container/v1beta1/BUILD.bazel index 8feaa4a47..2d1eb26bc 100644 --- a/google/container/v1beta1/BUILD.bazel +++ b/google/container/v1beta1/BUILD.bazel @@ -31,6 +31,7 @@ proto_library( "//google/rpc:code_proto", "//google/rpc:status_proto", "//google/type:date_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:timestamp_proto", "@com_google_protobuf//:wrappers_proto", @@ -163,6 +164,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -173,6 +175,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "warehouse-package-name=google-cloud-container", ], + transport = "grpc", +) + +py_test( + name = "container_py_gapic_test", + srcs = [ + "container_py_gapic_pytest.py", + "container_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":container_py_gapic"], ) # Open Source Packages @@ -332,6 +345,7 @@ csharp_gapic_library( srcs = [":container_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "container_grpc_service_config.json", + service_yaml = "container_v1beta1.yaml", deps = [ ":container_csharp_grpc", ":container_csharp_proto", diff --git a/google/container/v1beta1/cluster_service.proto b/google/container/v1beta1/cluster_service.proto index 32e851a17..0c53fdee0 100644 --- a/google/container/v1beta1/cluster_service.proto +++ b/google/container/v1beta1/cluster_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -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/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; @@ -334,6 +335,15 @@ service ClusterManager { option (google.api.method_signature) = "project_id,zone,cluster_id,node_pool_id"; } + // CompleteNodePoolUpgrade will signal an on-going node pool upgrade to + // complete. + rpc CompleteNodePoolUpgrade(CompleteNodePoolUpgradeRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}:completeUpgrade" + body: "*" + }; + } + // Rolls back a previously Aborted or Failed NodePool upgrade. // This makes no changes if the last upgrade successfully completed. rpc RollbackNodePoolUpgrade(RollbackNodePoolUpgradeRequest) returns (Operation) { @@ -472,11 +482,28 @@ service ClusterManager { // Parameters that can be configured on Linux nodes. message LinuxNodeConfig { + // Possible cgroup modes that can be used. + enum CgroupMode { + // CGROUP_MODE_UNSPECIFIED is when unspecified cgroup configuration is used. + // The default for the GKE node OS image will be used. + CGROUP_MODE_UNSPECIFIED = 0; + + // CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup configuration on + // the node image. + CGROUP_MODE_V1 = 1; + + // CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup configuration on + // the node image. + CGROUP_MODE_V2 = 2; + } + // The Linux kernel parameters to be applied to the nodes and all pods running // on the nodes. // // The following parameters are supported. // + // net.core.busy_poll + // net.core.busy_read // net.core.netdev_max_backlog // net.core.rmem_max // net.core.wmem_default @@ -487,6 +514,9 @@ message LinuxNodeConfig { // net.ipv4.tcp_wmem // net.ipv4.tcp_tw_reuse map sysctls = 1; + + // cgroup_mode specifies the cgroup mode to be used on the node. + CgroupMode cgroup_mode = 2; } // Node kubelet configs. @@ -522,9 +552,21 @@ message NodeKubeletConfig { // Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". // The value must be a positive duration. string cpu_cfs_quota_period = 3; + + // Set the Pod PID limits. See + // https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits + // + // Controls the maximum number of processes allowed to run in a pod. The value + // must be greater than or equal to 1024 and less than 4194304. + int64 pod_pids_limit = 4; } // Parameters that describe the nodes in a cluster. +// +// GKE Autopilot clusters do not +// recognize parameters in `NodeConfig`. Use +// [AutoprovisioningNodePoolDefaults][google.container.v1beta1.AutoprovisioningNodePoolDefaults] +// instead. message NodeConfig { // The name of a Google Compute Engine [machine // type](https://cloud.google.com/compute/docs/machine-types). @@ -567,6 +609,7 @@ message NodeConfig { // in length. These are 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 or be one of the reserved keys: + // // - "cluster-location" // - "cluster-name" // - "cluster-uid" @@ -659,7 +702,7 @@ message NodeConfig { // `minCpuPlatform: "Intel Haswell"` or // `minCpuPlatform: "Intel Sandy Bridge"`. For more // information, read [how to specify min CPU - // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) + // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). string min_cpu_platform = 13; // The workload metadata configuration for this node. @@ -705,6 +748,13 @@ message NodeConfig { // Spot flag for enabling Spot VM, which is a rebrand of // the existing preemptible flag. bool spot = 32; + + // Confidential nodes config. + // All the nodes in the node pool will be Confidential VM once enabled. + ConfidentialNodes confidential_nodes = 35; + + // Logging configuration. + NodePoolLoggingConfig logging_config = 38; } // Specifies options for controlling advanced machine features. @@ -717,6 +767,25 @@ message AdvancedMachineFeatures { // Parameters for node pool-level network config. message NodeNetworkConfig { + // Configuration of all network bandwidth tiers + message NetworkPerformanceConfig { + // Node network tier + enum Tier { + // Default value + TIER_UNSPECIFIED = 0; + + // Higher bandwidth, actual values based on VM size. + TIER_1 = 1; + } + + // Specifies the total network bandwidth tier for the NodePool. + optional Tier total_egress_bandwidth_tier = 1; + + // Specifies the network bandwidth tier for the NodePool for traffic to + // external/public IP addresses. + optional Tier external_ip_egress_bandwidth_tier = 2; + } + // Input only. Whether to create a new range for pod IPs in this node pool. // Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they // are not specified. @@ -757,6 +826,9 @@ message NodeNetworkConfig { // // This field cannot be changed after the node pool has been created. string pod_ipv4_cidr_block = 6; + + // Network bandwidth tier configuration. + optional NetworkPerformanceConfig network_performance_config = 11; } // A set of Shielded Instance options. @@ -834,8 +906,9 @@ message ReservationAffinity { Type consume_reservation_type = 1; // 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. + // SPECIFIC_RESERVATION by name, specify + // "compute.googleapis.com/reservation-name" as the key and specify the name + // of your reservation as its value. string key = 2; // Corresponds to the label value(s) of reservation resource(s). @@ -1193,6 +1266,30 @@ message NetworkPolicy { // Configuration for controlling how IPs are allocated in the cluster. message IPAllocationPolicy { + // Possible values for IP stack type + enum StackType { + // By default, the clusters will be IPV4 only + STACK_TYPE_UNSPECIFIED = 0; + + // The value used if the cluster is a IPV4 only + IPV4 = 1; + + // The value used if the cluster is a dual stack cluster + IPV4_IPV6 = 2; + } + + // IPv6 access type + enum IPv6AccessType { + // Default value, will be defaulted as type external. + IPV6_ACCESS_TYPE_UNSPECIFIED = 0; + + // Access type internal (all v6 addresses are internal IPs) + INTERNAL = 1; + + // Access type external (all v6 addresses are external IPs) + EXTERNAL = 2; + } + // Whether alias IPs will be used for pod IPs in the cluster. // This is used in conjunction with use_routes. It cannot // be true if use_routes is true. If both use_ip_aliases and use_routes are @@ -1323,13 +1420,45 @@ message IPAllocationPolicy { // use_ip_aliases is true. If both use_ip_aliases and use_routes are false, // then the server picks the default IP allocation mode bool use_routes = 15; + + // IP stack type + StackType stack_type = 16; + + // The ipv6 access type (internal or external) when create_subnetwork is true + IPv6AccessType ipv6_access_type = 17; + + // Output only. [Output only] The subnet's IPv6 CIDR block used by nodes and pods. + string subnet_ipv6_cidr_block = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Output only] The services IPv6 CIDR block for the cluster. + string services_ipv6_cidr_block = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Configuration for Binary Authorization. message BinaryAuthorization { - // Enable Binary Authorization for this cluster. If enabled, all container - // images will be validated by Google Binauthz. - bool enabled = 1; + // Binary Authorization mode of operation. + enum EvaluationMode { + // Default value + EVALUATION_MODE_UNSPECIFIED = 0; + + // Disable BinaryAuthorization + DISABLED = 1; + + // Enforce Kubernetes admission requests with BinaryAuthorization using the + // project's singleton policy. This is equivalent to setting the + // enabled boolean to true. + PROJECT_SINGLETON_POLICY_ENFORCE = 2; + } + + // This field is deprecated. Leave this unset and instead configure + // BinaryAuthorization using evaluation_mode. If evaluation_mode is set to + // anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored. + bool enabled = 1 [deprecated = true]; + + // Mode of operation for binauthz policy evaluation. Currently the only + // options are equivalent to enable/disable. If unspecified, defaults to + // DISABLED. + EvaluationMode evaluation_mode = 2; } // Configuration for the PodSecurityPolicy feature. @@ -1604,6 +1733,12 @@ message Cluster { // pods. MeshCertificates mesh_certificates = 67; + // Configuration for direct-path (via ALTS) with workload identity. + WorkloadALTSConfig workload_alts_config = 53; + + // Configuration for the fine-grained cost management feature. + CostManagementConfig cost_management_config = 45; + // Telemetry integration for the cluster. ClusterTelemetry cluster_telemetry = 46; @@ -1613,7 +1748,8 @@ message Cluster { // Notification configuration of the cluster. NotificationConfig notification_config = 49; - // Configuration of Confidential Nodes + // Configuration of Confidential Nodes. + // All the nodes in the cluster will be Confidential VM once enabled. ConfidentialNodes confidential_nodes = 50; // Configuration for Identity Service component. @@ -1736,6 +1872,49 @@ message Cluster { // Monitoring configuration for the cluster. MonitoringConfig monitoring_config = 133; + + // Node pool configs that apply to all auto-provisioned node pools + // in autopilot clusters and node auto-provisioning enabled clusters. + NodePoolAutoConfig node_pool_auto_config = 136; + + // Enable/Disable Protect API features for the cluster. + optional ProtectConfig protect_config = 137; +} + +// WorkloadConfig defines the flags to enable or disable the +// workload configurations for the cluster. +message WorkloadConfig { + // Mode defines how to audit the workload configs. + enum Mode { + // Default value meaning that no mode has been specified. + MODE_UNSPECIFIED = 0; + + // This disables Workload Configuration auditing on the cluster, + // meaning that nothing is surfaced. + DISABLED = 1; + + // Applies the default set of policy auditing to a cluster's workloads. + BASIC = 4; + + // Surfaces configurations that are not in line with the + // Pod Security Standard Baseline policy. + BASELINE = 2 [deprecated = true]; + + // Surfaces configurations that are not in line with the + // Pod Security Standard Restricted policy. + RESTRICTED = 3 [deprecated = true]; + } + + // Sets which mode of auditing should be used for the cluster's workloads. + optional Mode audit_mode = 1; +} + +// ProtectConfig defines the flags needed to enable/disable features for the +// Protect API. +message ProtectConfig { + // WorkloadConfig defines which actions are enabled for a cluster's workload + // configurations. + optional WorkloadConfig workload_config = 1; } // Subset of Nodepool message that has defaults. @@ -1746,8 +1925,21 @@ message NodePoolDefaults { // Subset of NodeConfig message that has defaults. message NodeConfigDefaults { - // GCFS (Google Container File System, a.k.a Riptide) options. + // GCFS (Google Container File System, also known as Riptide) options. GcfsConfig gcfs_config = 1; + + // Logging configuration for node pools. + NodePoolLoggingConfig logging_config = 3; +} + +// node pool configs that apply to all auto-provisioned node pools +// in autopilot clusters and node auto-provisioning enabled clusters +message NodePoolAutoConfig { + // The list of instance tags applied to all nodes. Tags are used to identify + // valid sources or targets for network firewalls and are specified by + // the client during cluster creation. Each tag within the list + // must comply with RFC1035. + NetworkTags network_tags = 1; } // ClusterUpdate describes an update to the cluster. Exactly one update can @@ -1900,9 +2092,15 @@ message ClusterUpdate { // pods. MeshCertificates desired_mesh_certificates = 67; + // Configuration for direct-path (via ALTS) with workload identity. + WorkloadALTSConfig desired_workload_alts_config = 62; + // Configuration for Shielded Nodes. ShieldedNodes desired_shielded_nodes = 48; + // The desired configuration for the fine-grained cost management feature. + CostManagementConfig desired_cost_management_config = 49; + // Configuration for master components. Master desired_master = 52; @@ -1925,6 +2123,16 @@ message ClusterUpdate { // The desired Identity Service component configuration. IdentityServiceConfig desired_identity_service_config = 66; + + // The desired network tags that apply to all auto-provisioned node pools + // in autopilot clusters and node auto-provisioning enabled clusters. + NetworkTags desired_node_pool_auto_config_network_tags = 110; + + // Enable/Disable Protect API features for the cluster. + optional ProtectConfig desired_protect_config = 112; + + // The desired node pool logging configuration defaults for the cluster. + NodePoolLoggingConfig desired_node_pool_logging_config = 116; } // This operation resource represents operations that may have happened or are @@ -2105,7 +2313,7 @@ message OperationProgress { // CreateClusterRequest creates a cluster. message CreateClusterRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [ deprecated = true, @@ -2133,7 +2341,7 @@ message CreateClusterRequest { // GetClusterRequest gets the settings of a cluster. message GetClusterRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2164,7 +2372,7 @@ message GetClusterRequest { // UpdateClusterRequest updates the settings of a cluster. message UpdateClusterRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2198,7 +2406,7 @@ message UpdateClusterRequest { // SetNodePoolVersionRequest updates the version of a node pool. message UpdateNodePoolRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2283,17 +2491,27 @@ message UpdateNodePoolRequest { // Node kubelet configs. NodeKubeletConfig kubelet_config = 20; + // Node network config. + NodeNetworkConfig node_network_config = 21; + // GCFS config. GcfsConfig gcfs_config = 22; + // Confidential nodes config. + // All the nodes in the node pool will be Confidential VM once enabled. + ConfidentialNodes confidential_nodes = 23; + // Enable or disable gvnic on the node pool. VirtualNIC gvnic = 29; + + // Logging configuration. + NodePoolLoggingConfig logging_config = 32; } // SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool. message SetNodePoolAutoscalingRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2335,7 +2553,7 @@ message SetNodePoolAutoscalingRequest { // SetLoggingServiceRequest sets the logging service of a cluster. message SetLoggingServiceRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2379,7 +2597,7 @@ message SetLoggingServiceRequest { // SetMonitoringServiceRequest sets the monitoring service of a cluster. message SetMonitoringServiceRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2423,7 +2641,7 @@ message SetMonitoringServiceRequest { // SetAddonsRequest sets the addons associated with the cluster. message SetAddonsConfigRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2458,7 +2676,7 @@ message SetAddonsConfigRequest { // SetLocationsRequest sets the locations of the cluster. message SetLocationsRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2498,7 +2716,7 @@ message SetLocationsRequest { // UpdateMasterRequest updates the master of the cluster. message UpdateMasterRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2559,7 +2777,7 @@ message SetMasterAuthRequest { } // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2596,7 +2814,7 @@ message SetMasterAuthRequest { // DeleteClusterRequest deletes a cluster. message DeleteClusterRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2627,7 +2845,7 @@ message DeleteClusterRequest { // ListClustersRequest lists clusters. message ListClustersRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [ deprecated = true, @@ -2663,7 +2881,7 @@ message ListClustersResponse { // GetOperationRequest gets a single operation. message GetOperationRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2694,7 +2912,7 @@ message GetOperationRequest { // ListOperationsRequest lists operations. message ListOperationsRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [ deprecated = true, @@ -2719,7 +2937,7 @@ message ListOperationsRequest { // CancelOperationRequest cancels a single operation. message CancelOperationRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2760,7 +2978,7 @@ message ListOperationsResponse { // Gets the current Kubernetes Engine service configuration. message GetServerConfigRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2854,7 +3072,7 @@ message WindowsVersions { // CreateNodePoolRequest creates a node pool for a cluster. message CreateNodePoolRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [ deprecated = true, @@ -2880,7 +3098,7 @@ message CreateNodePoolRequest { // Required. The node pool to create. NodePool node_pool = 4 [(google.api.field_behavior) = REQUIRED]; - // The parent (project, location, cluster id) where the node pool will be + // The parent (project, location, cluster name) where the node pool will be // created. Specified in the format // `projects/*/locations/*/clusters/*`. string parent = 6; @@ -2889,7 +3107,7 @@ message CreateNodePoolRequest { // DeleteNodePoolRequest deletes a node pool for a cluster. message DeleteNodePoolRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2928,7 +3146,7 @@ message DeleteNodePoolRequest { // ListNodePoolsRequest lists the node pool(s) for a cluster. message ListNodePoolsRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the parent field. string project_id = 1 [ deprecated = true, @@ -2951,7 +3169,7 @@ message ListNodePoolsRequest { (google.api.field_behavior) = REQUIRED ]; - // The parent (project, location, cluster id) where the node pools will be + // The parent (project, location, cluster name) where the node pools will be // listed. Specified in the format `projects/*/locations/*/clusters/*`. string parent = 5; } @@ -2959,7 +3177,7 @@ message ListNodePoolsRequest { // GetNodePoolRequest retrieves a node pool for a cluster. message GetNodePoolRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -2995,6 +3213,35 @@ message GetNodePoolRequest { string name = 6; } +// Settings for blue-green upgrade. +message BlueGreenSettings { + // Standard rollout policy is the default policy for blue-green. + message StandardRolloutPolicy { + // Blue pool size to drain in a batch. + oneof update_batch_size { + // Percentage of the bool pool nodes to drain in a batch. + // The range of this field should be (0.0, 1.0]. + float batch_percentage = 1; + + // Number of blue nodes to drain in a batch. + int32 batch_node_count = 2; + } + + // Soak time after each batch gets drained. Default to zero. + optional google.protobuf.Duration batch_soak_duration = 3; + } + + // The rollout policy controls the general rollout progress of blue-green. + oneof rollout_policy { + // Standard policy for the blue-green upgrade. + StandardRolloutPolicy standard_rollout_policy = 1; + } + + // Time needed after draining entire blue pool. After this period, blue pool + // will be cleaned up. + optional google.protobuf.Duration node_pool_soak_duration = 2; +} + // NodePool contains the name and configuration for a cluster's node pool. // Node pools are a set of nodes (i.e. VM's), with a common configuration and // specification, under the control of the cluster master. They may have a set @@ -3025,6 +3272,28 @@ message GetNodePoolRequest { // down 3 old (not yet upgraded) nodes at the same time. This ensures that // there are always at least 4 nodes available. message NodePool { + // These upgrade settings configure the upgrade strategy for the node pool. + // Use strategy to switch between the strategies applied to the node pool. + // + // If the strategy is SURGE, use max_surge and max_unavailable to control + // the level of parallelism and the level of disruption caused by upgrade. + // 1. maxSurge controls the number of additional nodes that can be added to + // the node pool temporarily for the time of the upgrade to increase the + // number of available nodes. + // 2. maxUnavailable controls the number of nodes that can be simultaneously + // unavailable. + // 3. (maxUnavailable + maxSurge) determines the level of parallelism (how + // many nodes are being upgraded at the same time). + // + // If the strategy is BLUE_GREEN, use blue_green_settings to configure the + // blue-green upgrade related settings. + // 1. standard_rollout_policy is the default policy. The policy is used to + // control the way blue pool gets drained. The draining is executed in the + // batch mode. The batch size could be specified as either percentage of the + // node pool size or the number of nodes. batch_soak_duration is the soak + // time after each batch gets drained. + // 2. node_pool_soak_duration is the soak time after all blue nodes are + // drained. After this period, the blue pool nodes will be deleted. message UpgradeSettings { // The maximum number of nodes that can be created beyond the current size // of the node pool during the upgrade process. @@ -3034,6 +3303,69 @@ message NodePool { // the upgrade process. A node is considered available if its status is // Ready. int32 max_unavailable = 2; + + // Update strategy of the node pool. + optional NodePoolUpdateStrategy strategy = 3; + + // Settings for blue-green upgrade strategy. + optional BlueGreenSettings blue_green_settings = 4; + } + + // UpdateInfo contains resource (instance groups, etc), status and other + // intermediate information relevant to a node pool upgrade. + message UpdateInfo { + // Information relevant to blue-green upgrade. + message BlueGreenInfo { + // Phase represents the different stages blue-green upgrade is running in. + enum Phase { + // Unspecified phase. + PHASE_UNSPECIFIED = 0; + + // blue-green upgrade has been initiated. + UPDATE_STARTED = 1; + + // Start creating green pool nodes. + CREATING_GREEN_POOL = 2; + + // Start cordoning blue pool nodes. + CORDONING_BLUE_POOL = 3; + + // Start draining blue pool nodes. + DRAINING_BLUE_POOL = 4; + + // Start soaking time after draining entire blue pool. + NODE_POOL_SOAKING = 5; + + // Start deleting blue nodes. + DELETING_BLUE_POOL = 6; + + // Rollback has been initiated. + ROLLBACK_STARTED = 7; + } + + // Current blue-green upgrade phase. + Phase phase = 1; + + // The resource URLs of the [managed instance groups] + // (/compute/docs/instance-groups/creating-groups-of-managed-instances) + // associated with blue pool. + repeated string blue_instance_group_urls = 2; + + // The resource URLs of the [managed instance groups] + // (/compute/docs/instance-groups/creating-groups-of-managed-instances) + // associated with green pool. + repeated string green_instance_group_urls = 3; + + // Time to start deleting blue pool to complete blue-green upgrade, + // in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. + string blue_pool_deletion_start_time = 4; + + // Version of green pool. + string green_pool_version = 5; + } + + // Information of a blue-green upgrade. + BlueGreenInfo blue_green_info = 1; } // The current status of the node pool instance. @@ -3121,6 +3453,8 @@ message NodePool { // [Output only] The resource URLs of the [managed instance // groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) // associated with this node pool. + // During the node pool blue-green upgrade operation, the URLs contain both + // blue and green resources. repeated string instance_group_urls = 102; // [Output only] The status of the nodes in this pool instance. @@ -3153,6 +3487,10 @@ message NodePool { // Specifies the node placement policy. PlacementPolicy placement_policy = 108; + + // Output only. [Output only] Update info contains relevant information during a node + // pool update. + UpdateInfo update_info = 109 [(google.api.field_behavior) = OUTPUT_ONLY]; } // NodeManagement defines the set of node management services turned on for the @@ -3308,7 +3646,7 @@ message DailyMaintenanceWindow { // pool. message SetNodePoolManagementRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -3350,7 +3688,7 @@ message SetNodePoolManagementRequest { // SetNodePoolSizeRequest sets the size of a node pool. message SetNodePoolSizeRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -3389,12 +3727,21 @@ message SetNodePoolSizeRequest { string name = 7; } +// CompleteNodePoolUpgradeRequest sets the name of target node pool to complete +// upgrade. +message CompleteNodePoolUpgradeRequest { + // The name (project, location, cluster, node pool id) of the node pool to + // complete upgrade. + // Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`. + string name = 1; +} + // RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed // NodePool upgrade. This will be an no-op if the last upgrade successfully // completed. message RollbackNodePoolUpgradeRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -3428,6 +3775,10 @@ message RollbackNodePoolUpgradeRequest { // rollback upgrade. // Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`. string name = 6; + + // Option for rollback to ignore the PodDisruptionBudget. + // Default value is false. + bool respect_pdb = 7; } // ListNodePoolsResponse is the result of ListNodePoolsRequest. @@ -3504,16 +3855,19 @@ message AutoprovisioningNodePoolDefaults { // NodeManagement configuration for this NodePool. NodeManagement management = 4; - // Minimum CPU platform to be used by this instance. 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 + // Deprecated. Minimum CPU platform to be used for NAP created node pools. + // 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 [how to specify min CPU - // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) + // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). + // This field is deprecated, min_cpu_platform should be specified using + // https://cloud.google.com/requested-min-cpu-platform label selector on the + // pod. // To unset the min cpu platform field pass "automatic" // as field value. - string min_cpu_platform = 5; + string min_cpu_platform = 5 [deprecated = true]; // Size of the disk attached to each node, specified in GB. // The smallest allowed disk size is 10GB. @@ -3559,6 +3913,20 @@ message ResourceLimit { // NodePoolAutoscaling contains information required by cluster autoscaler to // adjust the size of the node pool to the current cluster usage. message NodePoolAutoscaling { + // Location policy specifies how zones are picked when scaling up the + // nodepool. + enum LocationPolicy { + // Not set. + LOCATION_POLICY_UNSPECIFIED = 0; + + // BALANCED is a best effort policy that aims to balance the sizes of + // different zones. + BALANCED = 1; + + // ANY policy picks zones that have the highest capacity available. + ANY = 2; + } + // Is autoscaling enabled for this node pool. bool enabled = 1; @@ -3572,6 +3940,21 @@ message NodePoolAutoscaling { // Can this node pool be deleted automatically. bool autoprovisioned = 4; + + // Location policy used when scaling up a nodepool. + LocationPolicy location_policy = 5; + + // Minimum number of nodes in the node pool. Must be greater than 1 less than + // total_max_node_count. + // The total_*_node_count fields are mutually exclusive with the *_node_count + // fields. + int32 total_min_node_count = 6; + + // Maximum number of nodes in the node pool. Must be greater than + // total_min_node_count. There has to be enough quota to scale up the cluster. + // The total_*_node_count fields are mutually exclusive with the *_node_count + // fields. + int32 total_max_node_count = 7; } // SetLabelsRequest sets the Google Cloud Platform labels on a Google Container @@ -3579,7 +3962,7 @@ message NodePoolAutoscaling { // resources used by that cluster message SetLabelsRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -3613,7 +3996,7 @@ message SetLabelsRequest { // resource to get the latest fingerprint. string label_fingerprint = 5 [(google.api.field_behavior) = REQUIRED]; - // The name (project, location, cluster id) of the cluster to set labels. + // The name (project, location, cluster name) of the cluster to set labels. // Specified in the format `projects/*/locations/*/clusters/*`. string name = 7; } @@ -3622,7 +4005,7 @@ message SetLabelsRequest { // a cluster. message SetLegacyAbacRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -3648,8 +4031,8 @@ message SetLegacyAbacRequest { // Required. Whether ABAC authorization will be enabled in the cluster. bool enabled = 4 [(google.api.field_behavior) = REQUIRED]; - // The name (project, location, cluster id) of the cluster to set legacy abac. - // Specified in the format `projects/*/locations/*/clusters/*`. + // The name (project, location, cluster name) of the cluster to set legacy + // abac. Specified in the format `projects/*/locations/*/clusters/*`. string name = 6; } @@ -3657,7 +4040,7 @@ message SetLegacyAbacRequest { // a node upgrade on each node pool to point to the new IP. message StartIPRotationRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -3680,7 +4063,7 @@ message StartIPRotationRequest { (google.api.field_behavior) = REQUIRED ]; - // The name (project, location, cluster id) of the cluster to start IP + // The name (project, location, cluster name) of the cluster to start IP // rotation. Specified in the format `projects/*/locations/*/clusters/*`. string name = 6; @@ -3691,7 +4074,7 @@ message StartIPRotationRequest { // CompleteIPRotationRequest moves the cluster master back into single-IP mode. message CompleteIPRotationRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -3714,7 +4097,7 @@ message CompleteIPRotationRequest { (google.api.field_behavior) = REQUIRED ]; - // The name (project, location, cluster id) of the cluster to complete IP + // The name (project, location, cluster name) of the cluster to complete IP // rotation. Specified in the format `projects/*/locations/*/clusters/*`. string name = 7; } @@ -3732,6 +4115,31 @@ message AcceleratorConfig { // NVIDIA [mig user // guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning). string gpu_partition_size = 3; + + // The number of time-shared GPU resources to expose for each physical GPU. + int64 max_time_shared_clients_per_gpu = 4 [deprecated = true]; + + // The configuration for GPU sharing options. + optional GPUSharingConfig gpu_sharing_config = 5; +} + +// GPUSharingConfig represents the GPU sharing configuration for Hardware +// Accelerators. +message GPUSharingConfig { + // The type of GPU sharing strategy currently provided. + enum GPUSharingStrategy { + // Default value. + GPU_SHARING_STRATEGY_UNSPECIFIED = 0; + + // GPUs are time-shared between containers. + TIME_SHARING = 1; + } + + // The max number of containers that can share a physical GPU. + int64 max_shared_clients_per_gpu = 1; + + // The type of GPU sharing strategy to enable on the GPU node. + optional GPUSharingStrategy gpu_sharing_strategy = 2; } // ManagedPrometheusConfig defines the configuration for @@ -3800,7 +4208,7 @@ message WorkloadMetadataConfig { // SetNetworkPolicyRequest enables/disables network policy for a cluster. message SetNetworkPolicyRequest { // Required. Deprecated. The Google Developers Console [project ID or project - // number](https://developers.google.com/console/help/new/#projectnumber). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). // This field has been deprecated and replaced by the name field. string project_id = 1 [ deprecated = true, @@ -3826,7 +4234,7 @@ message SetNetworkPolicyRequest { // Required. Configuration options for the NetworkPolicy feature. NetworkPolicy network_policy = 4 [(google.api.field_behavior) = REQUIRED]; - // The name (project, location, cluster id) of the cluster to set networking + // The name (project, location, cluster name) of the cluster to set networking // policy. Specified in the format `projects/*/locations/*/clusters/*`. string name = 6; } @@ -3834,7 +4242,7 @@ message SetNetworkPolicyRequest { // SetMaintenancePolicyRequest sets the maintenance policy for a cluster. message SetMaintenancePolicyRequest { // Required. The Google Developers Console [project ID or project - // number](https://support.google.com/cloud/answer/6158840). + // number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). string project_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The name of the Google Compute Engine @@ -3849,8 +4257,8 @@ message SetMaintenancePolicyRequest { // clears the existing maintenance policy. MaintenancePolicy maintenance_policy = 4 [(google.api.field_behavior) = REQUIRED]; - // The name (project, location, cluster id) of the cluster to set maintenance - // policy. + // The name (project, location, cluster name) of the cluster to set + // maintenance policy. // Specified in the format `projects/*/locations/*/clusters/*`. string name = 5; } @@ -3898,7 +4306,7 @@ message Location { // Specified in the format `projects/*/locations/*`. string name = 2; - // Whether the location is recomended for GKE cluster scheduling. + // Whether the location is recommended for GKE cluster scheduling. bool recommended = 3; } @@ -4176,6 +4584,17 @@ message WorkloadIdentityConfig { string identity_provider = 3; } +// Configuration for direct-path (via ALTS) with workload identity. +message WorkloadALTSConfig { + // enable_alts controls whether the alts handshaker should be enabled or not + // for direct-path. + // + // Requires Workload Identity + // ([workload_pool][google.container.v1beta1.WorkloadIdentityConfig.workload_pool] + // must be non-empty). + google.protobuf.BoolValue enable_alts = 1; +} + // Configuration for issuance of mTLS keys and certificates to Kubernetes pods. message WorkloadCertificates { // enable_certificates controls issuance of workload mTLS certificates. @@ -4304,7 +4723,7 @@ message GetOpenIDConfigResponse { // document returned by getOpenIDConfig. See the OpenID Connect // Discovery 1.0 specification for details. message GetJSONWebKeysRequest { - // The cluster (project, location, cluster id) to get keys for. Specified in + // The cluster (project, location, cluster name) to get keys for. Specified in // the format `projects/*/locations/*/clusters/*`. string parent = 1; } @@ -4380,6 +4799,12 @@ message ReleaseChannel { Channel channel = 1; } +// Configuration for fine-grained cost management feature. +message CostManagementConfig { + // Whether the feature is enabled or not. + bool enabled = 1; +} + // Configuration for Cloud TPU. message TpuConfig { // Whether Cloud TPU integration is enabled or not. @@ -4413,22 +4838,6 @@ message Master { } -// The datapath provider selects the implementation of the Kubernetes networking -// // model for service resolution and network policy enforcement. -enum DatapathProvider { - // Default value. - DATAPATH_PROVIDER_UNSPECIFIED = 0; - - // Use the IPTables implementation based on kube-proxy. - LEGACY_DATAPATH = 1; - - // Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE - // Dataplane V2 - // documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2) - // for more. - ADVANCED_DATAPATH = 2; -} - // Autopilot is the configuration for Autopilot settings on the cluster. message Autopilot { // Enable Autopilot @@ -4486,8 +4895,7 @@ message NotificationConfig { // ConfidentialNodes is configuration for the confidential nodes feature, which // makes nodes run on confidential VMs. message ConfidentialNodes { - // Whether Confidential Nodes feature is enabled for all nodes in this - // cluster. + // Whether Confidential Nodes feature is enabled. bool enabled = 1; } @@ -4597,6 +5005,19 @@ message IdentityServiceConfig { bool enabled = 1; } +// Strategy used for node pool update. +enum NodePoolUpdateStrategy { + // Default value. + NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED = 0; + + // blue-green upgrade. + BLUE_GREEN = 2; + + // SURGE is the traditional way of upgrading a node pool. + // max_surge and max_unavailable determines the level of upgrade parallelism. + SURGE = 3; +} + // LoggingConfig is cluster logging configuration. message LoggingConfig { // Logging components configuration @@ -4631,6 +5052,30 @@ message MonitoringConfig { ManagedPrometheusConfig managed_prometheus_config = 2; } +// NodePoolLoggingConfig specifies logging configuration for nodepools. +message NodePoolLoggingConfig { + // Logging variant configuration. + LoggingVariantConfig variant_config = 1; +} + +// LoggingVariantConfig specifies the behaviour of the logging component. +message LoggingVariantConfig { + // Logging component variants. + enum Variant { + // Default value. This shouldn't be used. + VARIANT_UNSPECIFIED = 0; + + // default logging variant. + DEFAULT = 1; + + // maximum logging throughput variant. + MAX_THROUGHPUT = 2; + } + + // Logging variant deployed on nodes. + Variant variant = 1; +} + // MonitoringComponentConfig is cluster monitoring component configuration. message MonitoringComponentConfig { // GKE components exposing metrics @@ -4641,11 +5086,36 @@ message MonitoringComponentConfig { // system components SYSTEM_COMPONENTS = 1; - // workloads - WORKLOADS = 2; + // Deprecated: Use Google Cloud Managed Service for Prometheus. + WORKLOADS = 2 [deprecated = true]; + + // kube-apiserver + APISERVER = 3; + + // kube-scheduler + SCHEDULER = 4; + + // kube-controller-manager + CONTROLLER_MANAGER = 5; } // Select components to collect metrics. An empty set would disable all // monitoring. repeated Component enable_components = 1; } + +// The datapath provider selects the implementation of the Kubernetes networking +// model for service resolution and network policy enforcement. +enum DatapathProvider { + // Default value. + DATAPATH_PROVIDER_UNSPECIFIED = 0; + + // Use the IPTables implementation based on kube-proxy. + LEGACY_DATAPATH = 1; + + // Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE + // Dataplane V2 + // documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2) + // for more. + ADVANCED_DATAPATH = 2; +} diff --git a/google/container/v1beta1/container_v1beta1.yaml b/google/container/v1beta1/container_v1beta1.yaml index c1fa57626..f2dcefecd 100644 --- a/google/container/v1beta1/container_v1beta1.yaml +++ b/google/container/v1beta1/container_v1beta1.yaml @@ -7,6 +7,8 @@ apis: - name: google.container.v1beta1.ClusterManager types: +- name: google.container.v1beta1.GetOpenIDConfigRequest +- name: google.container.v1beta1.GetOpenIDConfigResponse - name: google.container.v1beta1.SecurityBulletinEvent - name: google.container.v1beta1.UpgradeAvailableEvent - name: google.container.v1beta1.UpgradeEvent diff --git a/google/dataflow/v1beta3/BUILD.bazel b/google/dataflow/v1beta3/BUILD.bazel index 716843cf3..1600127cf 100644 --- a/google/dataflow/v1beta3/BUILD.bazel +++ b/google/dataflow/v1beta3/BUILD.bazel @@ -75,23 +75,33 @@ java_grpc_library( java_gapic_library( name = "dataflow_java_gapic", srcs = [":dataflow_proto_with_info"], + gapic_yaml = None, grpc_service_config = "dataflow_grpc_service_config.json", + service_yaml = "dataflow_v1beta3.yaml", test_deps = [ ":dataflow_java_grpc", ], + transport = "grpc+rest", deps = [ ":dataflow_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "dataflow_java_gapic_test_suite", test_classes = [ + "com.google.dataflow.v1beta3.FlexTemplatesServiceClientHttpJsonTest", "com.google.dataflow.v1beta3.FlexTemplatesServiceClientTest", + "com.google.dataflow.v1beta3.JobsV1Beta3ClientHttpJsonTest", "com.google.dataflow.v1beta3.JobsV1Beta3ClientTest", + "com.google.dataflow.v1beta3.MessagesV1Beta3ClientHttpJsonTest", "com.google.dataflow.v1beta3.MessagesV1Beta3ClientTest", + "com.google.dataflow.v1beta3.MetricsV1Beta3ClientHttpJsonTest", "com.google.dataflow.v1beta3.MetricsV1Beta3ClientTest", + "com.google.dataflow.v1beta3.SnapshotsV1Beta3ClientHttpJsonTest", "com.google.dataflow.v1beta3.SnapshotsV1Beta3ClientTest", + "com.google.dataflow.v1beta3.TemplatesServiceClientHttpJsonTest", "com.google.dataflow.v1beta3.TemplatesServiceClientTest", ], runtime_deps = [":dataflow_java_gapic_test"], @@ -100,6 +110,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-dataflow-v1beta3-java", + transport = "grpc+rest", deps = [ ":dataflow_java_gapic", ":dataflow_java_grpc", @@ -135,8 +146,9 @@ go_gapic_library( srcs = [":dataflow_proto_with_info"], grpc_service_config = "dataflow_grpc_service_config.json", importpath = "cloud.google.com/go/dataflow/apiv1beta3;dataflow", - service_yaml = "dataflow_v1beta3.yaml", metadata = True, + service_yaml = "dataflow_v1beta3.yaml", + transport = "grpc+rest", deps = [ ":dataflow_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -155,8 +167,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-dataflow-v1beta3-go", deps = [ ":dataflow_go_gapic", - ":dataflow_go_gapic_srcjar-test.srcjar", ":dataflow_go_gapic_srcjar-metadata.srcjar", + ":dataflow_go_gapic_srcjar-test.srcjar", ":dataflow_go_proto", ], ) @@ -168,6 +180,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -175,10 +188,21 @@ py_gapic_library( srcs = [":dataflow_proto"], grpc_service_config = "dataflow_grpc_service_config.json", opt_args = [ - "warehouse-package-name=google-cloud-dataflow-client", - "python-gapic-namespace=google.cloud", "python-gapic-name=dataflow", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-dataflow-client", + ], + transport = "grpc+rest", +) + +py_test( + name = "dataflow_py_gapic_test", + srcs = [ + "dataflow_py_gapic_pytest.py", + "dataflow_py_gapic_test.py", ], + legacy_create_init = False, + deps = [":dataflow_py_gapic"], ) # Open Source Packages @@ -265,8 +289,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -286,11 +310,11 @@ ruby_cloud_gapic_library( name = "dataflow_ruby_gapic", srcs = [":dataflow_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-dataflow-v1beta3", - "ruby-cloud-env-prefix=DATAFLOW", - "ruby-cloud-product-url=https://cloud.google.com/dataflow", "ruby-cloud-api-id=dataflow.googleapis.com", "ruby-cloud-api-shortname=dataflow", + "ruby-cloud-env-prefix=DATAFLOW", + "ruby-cloud-gem-name=google-cloud-dataflow-v1beta3", + "ruby-cloud-product-url=https://cloud.google.com/dataflow", "ruby-cloud-service-override=JobsV1Beta3=Jobs;MessagesV1Beta3=Messages;MetricsV1Beta3=Metrics;SnapshotsV1Beta3=Snapshots", ], grpc_service_config = "dataflow_grpc_service_config.json", @@ -339,6 +363,7 @@ csharp_gapic_library( srcs = [":dataflow_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dataflow_grpc_service_config.json", + service_yaml = "dataflow_v1beta3.yaml", deps = [ ":dataflow_csharp_grpc", ":dataflow_csharp_proto", @@ -358,4 +383,20 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "dataflow_cc_proto", + deps = [":dataflow_proto"], +) + +cc_grpc_library( + name = "dataflow_cc_grpc", + srcs = [":dataflow_proto"], + grpc_only = True, + deps = [":dataflow_cc_proto"], +) diff --git a/google/dataflow/v1beta3/environment.proto b/google/dataflow/v1beta3/environment.proto index 914a87f07..04ad7d78e 100644 --- a/google/dataflow/v1beta3/environment.proto +++ b/google/dataflow/v1beta3/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -415,6 +415,10 @@ message SdkHarnessContainerImage { // Environment ID for the Beam runner API proto Environment that corresponds // to the current SDK Harness. string environment_id = 3; + + // The set of capabilities enumerated in the above Environment proto. See also + // https://github.com/apache/beam/blob/master/model/pipeline/src/main/proto/beam_runner_api.proto + repeated string capabilities = 4; } // Describes one particular pool of Cloud Dataflow workers to be diff --git a/google/dataflow/v1beta3/jobs.proto b/google/dataflow/v1beta3/jobs.proto index 8d6c49a9f..359b78732 100644 --- a/google/dataflow/v1beta3/jobs.proto +++ b/google/dataflow/v1beta3/jobs.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,12 +17,12 @@ syntax = "proto3"; package google.dataflow.v1beta3; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/dataflow/v1beta3/environment.proto"; import "google/dataflow/v1beta3/snapshots.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow"; @@ -50,6 +50,14 @@ service JobsV1Beta3 { // `projects.jobs.create` is not recommended, as your job will always start // in `us-central1`. rpc CreateJob(CreateJobRequest) returns (Job) { + option (google.api.http) = { + post: "/v1b3/projects/{project_id}/locations/{location}/jobs" + body: "job" + additional_bindings { + post: "/v1b3/projects/{project_id}/jobs" + body: "job" + } + }; } // Gets the state of the specified Cloud Dataflow job. @@ -60,6 +68,12 @@ service JobsV1Beta3 { // `projects.jobs.get` is not recommended, as you can only get the state of // jobs that are running in `us-central1`. rpc GetJob(GetJobRequest) returns (Job) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}" + additional_bindings { + get: "/v1b3/projects/{project_id}/jobs/{job_id}" + } + }; } // Updates the state of an existing Cloud Dataflow job. @@ -70,6 +84,14 @@ service JobsV1Beta3 { // `projects.jobs.update` is not recommended, as you can only update the state // of jobs that are running in `us-central1`. rpc UpdateJob(UpdateJobRequest) returns (Job) { + option (google.api.http) = { + put: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}" + body: "job" + additional_bindings { + put: "/v1b3/projects/{project_id}/jobs/{job_id}" + body: "job" + } + }; } // List the jobs of a project. @@ -81,10 +103,19 @@ service JobsV1Beta3 { // `projects.jobs.list` is not recommended, as you can only get the list of // jobs that are running in `us-central1`. rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/jobs" + additional_bindings { + get: "/v1b3/projects/{project_id}/jobs" + } + }; } // List the jobs of a project across all regions. rpc AggregatedListJobs(ListJobsRequest) returns (ListJobsResponse) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/jobs:aggregated" + }; } // Check for existence of active jobs in the given project across all regions. @@ -93,11 +124,18 @@ service JobsV1Beta3 { // Snapshot the state of a streaming job. rpc SnapshotJob(SnapshotJobRequest) returns (Snapshot) { + option (google.api.http) = { + post: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}:snapshot" + body: "*" + additional_bindings { + post: "/v1b3/projects/{project_id}/jobs/{job_id}:snapshot" + body: "*" + } + }; } } // Defines a job to be run by the Cloud Dataflow service. -// nextID: 26 message Job { // The unique ID of this job. // @@ -116,7 +154,7 @@ message Job { // existing Job. // // The name must match the regular expression - // `[a-z]([-a-z0-9]{0,38}[a-z0-9])?` + // `[a-z]([-a-z0-9]{0,1022}[a-z0-9])?` string name = 3; // The type of Cloud Dataflow job. @@ -277,7 +315,7 @@ message FileIODetails { string file_pattern = 1; } -// Metadata for a Cloud BigTable connector used by the job. +// Metadata for a Cloud Bigtable connector used by the job. message BigTableIODetails { // ProjectId accessed in the connection. string project_id = 1; @@ -359,10 +397,10 @@ message JobMetadata { // Identification of a BigQuery source used in the Dataflow job. repeated BigQueryIODetails bigquery_details = 3; - // Identification of a Cloud BigTable source used in the Dataflow job. + // Identification of a Cloud Bigtable source used in the Dataflow job. repeated BigTableIODetails big_table_details = 4; - // Identification of a PubSub source used in the Dataflow job. + // Identification of a Pub/Sub source used in the Dataflow job. repeated PubSubIODetails pubsub_details = 5; // Identification of a File source used in the Dataflow job. @@ -398,27 +436,6 @@ message PipelineDescription { repeated DisplayData display_data = 3; } -// Description of the type, names/ids, and input/outputs for a transform. -message TransformSummary { - // Type of transform. - KindType kind = 1; - - // SDK generated id of this transform instance. - string id = 2; - - // User provided name for this transform instance. - string name = 3; - - // Transform-specific display data. - repeated DisplayData display_data = 4; - - // User names for all collection outputs to this transform. - repeated string output_collection_name = 5; - - // User names for all collection inputs to this transform. - repeated string input_collection_name = 6; -} - // Type of transform or stage operation. enum KindType { // Unrecognized transform type. @@ -449,6 +466,27 @@ enum KindType { SHUFFLE_KIND = 8; } +// Description of the type, names/ids, and input/outputs for a transform. +message TransformSummary { + // Type of transform. + KindType kind = 1; + + // SDK generated id of this transform instance. + string id = 2; + + // User provided name for this transform instance. + string name = 3; + + // Transform-specific display data. + repeated DisplayData display_data = 4; + + // User names for all collection outputs to this transform. + repeated string output_collection_name = 5; + + // User names for all collection inputs to this transform. + repeated string input_collection_name = 6; +} + // Description of the composing transforms, names/ids, and input/outputs of a // stage of execution. Some composing transforms and sources may have been // generated by the Dataflow service during execution planning. @@ -613,22 +651,6 @@ message Step { google.protobuf.Struct properties = 3; } -// Additional information about how a Cloud Dataflow job will be executed that -// isn't contained in the submitted job. -message JobExecutionInfo { - // A mapping from each stage to the information about that stage. - map stages = 1; -} - -// Contains information about how a particular -// [google.dataflow.v1beta3.Step][google.dataflow.v1beta3.Step] will be executed. -message JobExecutionStageInfo { - // The steps associated with the execution stage. - // Note that stages may have several steps, and that a given step - // might be run by more than one stage. - repeated string step_name = 1; -} - // Describes the overall state of a [google.dataflow.v1beta3.Job][google.dataflow.v1beta3.Job]. enum JobState { // The job's run state isn't specified. @@ -703,6 +725,42 @@ enum JobState { JOB_STATE_RESOURCE_CLEANING_UP = 12; } +// Additional information about how a Cloud Dataflow job will be executed that +// isn't contained in the submitted job. +message JobExecutionInfo { + // A mapping from each stage to the information about that stage. + map stages = 1; +} + +// Contains information about how a particular +// [google.dataflow.v1beta3.Step][google.dataflow.v1beta3.Step] will be executed. +message JobExecutionStageInfo { + // The steps associated with the execution stage. + // Note that stages may have several steps, and that a given step + // might be run by more than one stage. + repeated string step_name = 1; +} + +// Selector for how much information is returned in Job responses. +enum JobView { + // The job view to return isn't specified, or is unknown. + // Responses will contain at least the `JOB_VIEW_SUMMARY` information, + // and may contain additional information. + JOB_VIEW_UNKNOWN = 0; + + // Request summary information only: + // Project ID, Job ID, job name, job type, job status, start/end time, + // and Cloud SDK version details. + JOB_VIEW_SUMMARY = 1; + + // Request all information available for this job. + JOB_VIEW_ALL = 2; + + // Request summary info and limited job description data for steps, labels and + // environment. + JOB_VIEW_DESCRIPTION = 3; +} + // Request to create a Cloud Dataflow job. message CreateJobRequest { // The ID of the Cloud Platform project that the job belongs to. @@ -740,26 +798,6 @@ message GetJobRequest { string location = 4; } -// Selector for how much information is returned in Job responses. -enum JobView { - // The job view to return isn't specified, or is unknown. - // Responses will contain at least the `JOB_VIEW_SUMMARY` information, - // and may contain additional information. - JOB_VIEW_UNKNOWN = 0; - - // Request summary information only: - // Project ID, Job ID, job name, job type, job status, start/end time, - // and Cloud SDK version details. - JOB_VIEW_SUMMARY = 1; - - // Request all information available for this job. - JOB_VIEW_ALL = 2; - - // Request summary info and limited job description data for steps, labels and - // environment. - JOB_VIEW_DESCRIPTION = 3; -} - // Request to update a Cloud Dataflow job. message UpdateJobRequest { // The ID of the Cloud Platform project that the job belongs to. diff --git a/google/dataflow/v1beta3/messages.proto b/google/dataflow/v1beta3/messages.proto index 7bf8d8e7b..f8d151ece 100644 --- a/google/dataflow/v1beta3/messages.proto +++ b/google/dataflow/v1beta3/messages.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,9 +17,9 @@ syntax = "proto3"; package google.dataflow.v1beta3; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow"; @@ -47,6 +47,12 @@ service MessagesV1Beta3 { // `projects.jobs.messages.list` is not recommended, as you can only request // the status of jobs that are running in `us-central1`. rpc ListJobMessages(ListJobMessagesRequest) returns (ListJobMessagesResponse) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/messages" + additional_bindings { + get: "/v1b3/projects/{project_id}/jobs/{job_id}/messages" + } + }; } } @@ -65,30 +71,6 @@ message JobMessage { JobMessageImportance message_importance = 4; } -// A rich message format, including a human readable string, a key for -// identifying the message, and structured data associated with the message for -// programmatic consumption. -message StructuredMessage { - // Structured data associated with this message. - message Parameter { - // Key or name for this parameter. - string key = 1; - - // Value for this parameter. - google.protobuf.Value value = 2; - } - - // Human-readable version of message. - string message_text = 1; - - // Identifier for this message type. Used by external systems to - // internationalize or personalize message. - string message_key = 2; - - // The structured data associated with this message. - repeated Parameter parameters = 3; -} - // Indicates the importance of the message. enum JobMessageImportance { // The message importance isn't specified, or is unknown. @@ -128,6 +110,30 @@ enum JobMessageImportance { JOB_MESSAGE_ERROR = 4; } +// A rich message format, including a human readable string, a key for +// identifying the message, and structured data associated with the message for +// programmatic consumption. +message StructuredMessage { + // Structured data associated with this message. + message Parameter { + // Key or name for this parameter. + string key = 1; + + // Value for this parameter. + google.protobuf.Value value = 2; + } + + // Human-readable version of message. + string message_text = 1; + + // Identifier for this message type. Used by external systems to + // internationalize or personalize message. + string message_key = 2; + + // The structured data associated with this message. + repeated Parameter parameters = 3; +} + // A structured message reporting an autoscaling decision made by the Dataflow // service. message AutoscalingEvent { @@ -177,8 +183,7 @@ message AutoscalingEvent { // num_workers value. google.protobuf.Timestamp time = 5; - // A short and friendly name for the worker pool this event refers to, - // populated from the value of PoolStageRelation::user_pool_name. + // A short and friendly name for the worker pool this event refers to. string worker_pool = 7; } diff --git a/google/dataflow/v1beta3/metrics.proto b/google/dataflow/v1beta3/metrics.proto index e90fb24be..823eeb7af 100644 --- a/google/dataflow/v1beta3/metrics.proto +++ b/google/dataflow/v1beta3/metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,9 +17,9 @@ syntax = "proto3"; package google.dataflow.v1beta3; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow"; @@ -47,12 +47,21 @@ service MetricsV1Beta3 { // `projects.jobs.getMetrics` is not recommended, as you can only request the // status of jobs that are running in `us-central1`. rpc GetJobMetrics(GetJobMetricsRequest) returns (JobMetrics) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/metrics" + additional_bindings { + get: "/v1b3/projects/{project_id}/jobs/{job_id}/metrics" + } + }; } // Request detailed information about the execution status of the job. // // EXPERIMENTAL. This API is subject to change or removal without notice. rpc GetJobExecutionDetails(GetJobExecutionDetailsRequest) returns (JobExecutionDetails) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/executionDetails" + }; } // Request detailed information about the execution status of a stage of the @@ -60,6 +69,9 @@ service MetricsV1Beta3 { // // EXPERIMENTAL. This API is subject to change or removal without notice. rpc GetStageExecutionDetails(GetStageExecutionDetailsRequest) returns (StageExecutionDetails) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/stages/{stage_id}/executionDetails" + }; } } @@ -218,6 +230,27 @@ message ProgressTimeseries { repeated Point data_points = 2; } +// The state of some component of job execution. +enum ExecutionState { + // The component state is unknown or unspecified. + EXECUTION_STATE_UNKNOWN = 0; + + // The component is not yet running. + EXECUTION_STATE_NOT_STARTED = 1; + + // The component is currently running. + EXECUTION_STATE_RUNNING = 2; + + // The component succeeded. + EXECUTION_STATE_SUCCEEDED = 3; + + // The component failed. + EXECUTION_STATE_FAILED = 4; + + // Execution of the component was cancelled. + EXECUTION_STATE_CANCELLED = 5; +} + // Information about a particular execution stage of a job. message StageSummary { // ID of this stage @@ -315,27 +348,6 @@ message WorkItemDetails { repeated MetricUpdate metrics = 7; } -// The state of some component of job execution. -enum ExecutionState { - // The component state is unknown or unspecified. - EXECUTION_STATE_UNKNOWN = 0; - - // The component is not yet running. - EXECUTION_STATE_NOT_STARTED = 1; - - // The component is currently running. - EXECUTION_STATE_RUNNING = 2; - - // The component succeeded. - EXECUTION_STATE_SUCCEEDED = 3; - - // The component failed. - EXECUTION_STATE_FAILED = 4; - - // Execution of the component was cancelled. - EXECUTION_STATE_CANCELLED = 5; -} - // Information about a worker message WorkerDetails { // Name of this worker diff --git a/google/dataflow/v1beta3/snapshots.proto b/google/dataflow/v1beta3/snapshots.proto index abde6ee4b..0868db8d3 100644 --- a/google/dataflow/v1beta3/snapshots.proto +++ b/google/dataflow/v1beta3/snapshots.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,9 +17,9 @@ syntax = "proto3"; package google.dataflow.v1beta3; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow"; @@ -40,29 +40,38 @@ service SnapshotsV1Beta3 { // Gets information about a snapshot. rpc GetSnapshot(GetSnapshotRequest) returns (Snapshot) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/snapshots/{snapshot_id}" + additional_bindings { + get: "/v1b3/projects/{project_id}/snapshots/{snapshot_id}" + } + }; } // Deletes a snapshot. rpc DeleteSnapshot(DeleteSnapshotRequest) returns (DeleteSnapshotResponse) { + option (google.api.http) = { + delete: "/v1b3/projects/{project_id}/locations/{location}/snapshots/{snapshot_id}" + additional_bindings { + delete: "/v1b3/projects/{project_id}/snapshots" + } + }; } // Lists snapshots. rpc ListSnapshots(ListSnapshotsRequest) returns (ListSnapshotsResponse) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/snapshots" + additional_bindings { + get: "/v1b3/projects/{project_id}/locations/{location}/snapshots" + } + additional_bindings { + get: "/v1b3/projects/{project_id}/snapshots" + } + }; } } -// Represents a Pubsub snapshot. -message PubsubSnapshotMetadata { - // The name of the Pubsub topic. - string topic_name = 1; - - // The name of the Pubsub snapshot. - string snapshot_name = 2; - - // The expire time of the Pubsub snapshot. - google.protobuf.Timestamp expire_time = 3; -} - // Snapshot state. enum SnapshotState { // Unknown state. @@ -85,6 +94,18 @@ enum SnapshotState { DELETED = 5; } +// Represents a Pubsub snapshot. +message PubsubSnapshotMetadata { + // The name of the Pubsub topic. + string topic_name = 1; + + // The name of the Pubsub snapshot. + string snapshot_name = 2; + + // The expire time of the Pubsub snapshot. + google.protobuf.Timestamp expire_time = 3; +} + // Represents a snapshot of a job. message Snapshot { // The unique ID of this snapshot. @@ -105,7 +126,7 @@ message Snapshot { // State of the snapshot. SnapshotState state = 6; - // PubSub snapshot metadata. + // Pub/Sub snapshot metadata. repeated PubsubSnapshotMetadata pubsub_metadata = 7; // User specified description of the snapshot. Maybe empty. diff --git a/google/dataflow/v1beta3/streaming.proto b/google/dataflow/v1beta3/streaming.proto index f20f6ddde..77577ca1b 100644 --- a/google/dataflow/v1beta3/streaming.proto +++ b/google/dataflow/v1beta3/streaming.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/dataflow/v1beta3/templates.proto b/google/dataflow/v1beta3/templates.proto index bb9d3f614..064e3a8a1 100644 --- a/google/dataflow/v1beta3/templates.proto +++ b/google/dataflow/v1beta3/templates.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,10 +17,10 @@ syntax = "proto3"; package google.dataflow.v1beta3; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/dataflow/v1beta3/environment.proto"; import "google/dataflow/v1beta3/jobs.proto"; import "google/rpc/status.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3"; option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow"; @@ -41,14 +41,36 @@ service TemplatesService { // Creates a Cloud Dataflow job from a template. rpc CreateJobFromTemplate(CreateJobFromTemplateRequest) returns (Job) { + option (google.api.http) = { + post: "/v1b3/projects/{project_id}/locations/{location}/templates" + body: "*" + additional_bindings { + post: "/v1b3/projects/{project_id}/templates" + body: "*" + } + }; } // Launch a template. rpc LaunchTemplate(LaunchTemplateRequest) returns (LaunchTemplateResponse) { + option (google.api.http) = { + post: "/v1b3/projects/{project_id}/locations/{location}/templates:launch" + body: "launch_parameters" + additional_bindings { + post: "/v1b3/projects/{project_id}/templates:launch" + body: "launch_parameters" + } + }; } // Get the template associated with a template. rpc GetTemplate(GetTemplateRequest) returns (GetTemplateResponse) { + option (google.api.http) = { + get: "/v1b3/projects/{project_id}/locations/{location}/templates:get" + additional_bindings { + get: "/v1b3/projects/{project_id}/templates:get" + } + }; } } @@ -63,6 +85,10 @@ service FlexTemplatesService { // Launch a job with a FlexTemplate. rpc LaunchFlexTemplate(LaunchFlexTemplateRequest) returns (LaunchFlexTemplateResponse) { + option (google.api.http) = { + post: "/v1b3/projects/{project_id}/locations/{location}/flexTemplates:launch" + body: "*" + }; } } @@ -213,6 +239,27 @@ message FlexTemplateRuntimeEnvironment { // Default is the container for the version of the SDK. Note this field is // only valid for portable pipelines. string sdk_container_image = 18; + + // Worker disk size, in gigabytes. + int32 disk_size_gb = 20; + + // The algorithm to use for autoscaling + AutoscalingAlgorithm autoscaling_algorithm = 21; + + // If true, save a heap dump before killing a thread or process which is GC + // thrashing or out of memory. The location of the heap file will either be + // echoed back to the user, or the user will be given the opportunity to + // download the heap file. + bool dump_heap_on_oom = 22; + + // Cloud Storage bucket (directory) to upload heap dumps to the given + // location. Enabling this implies that heap dumps should be generated on OOM + // (dump_heap_on_oom is set to true). + string save_heap_dumps_to_gcs_path = 23; + + // The machine type to use for launching the job. The default is + // n1-standard-1. + string launcher_machine_type = 24; } // A request to launch a Cloud Dataflow job from a FlexTemplate. @@ -263,7 +310,8 @@ message RuntimeEnvironment { // template if not specified. string machine_type = 6; - // Additional experiment flags for the job. + // Additional experiment flags for the job, specified with the + // `--experiments` option. repeated string additional_experiments = 7; // Network to which VMs will be assigned. If empty or unspecified, @@ -338,39 +386,6 @@ message ParameterMetadata { map custom_metadata = 7; } -// Metadata describing a template. -message TemplateMetadata { - // Required. The name of the template. - string name = 1; - - // Optional. A description of the template. - string description = 2; - - // The parameters for the template. - repeated ParameterMetadata parameters = 3; -} - -// SDK Information. -message SDKInfo { - // SDK Language. - enum Language { - // UNKNOWN Language. - UNKNOWN = 0; - - // Java. - JAVA = 1; - - // Python. - PYTHON = 2; - } - - // Required. The SDK Language. - Language language = 1; - - // Optional. The SDK version. - string version = 2; -} - // ParameterType specifies what kind of input we need for this parameter. enum ParameterType { // Default input type. @@ -404,6 +419,39 @@ enum ParameterType { PUBSUB_SUBSCRIPTION = 9; } +// Metadata describing a template. +message TemplateMetadata { + // Required. The name of the template. + string name = 1; + + // Optional. A description of the template. + string description = 2; + + // The parameters for the template. + repeated ParameterMetadata parameters = 3; +} + +// SDK Information. +message SDKInfo { + // SDK Language. + enum Language { + // UNKNOWN Language. + UNKNOWN = 0; + + // Java. + JAVA = 1; + + // Python. + PYTHON = 2; + } + + // Required. The SDK Language. + Language language = 1; + + // Optional. The SDK version. + string version = 2; +} + // RuntimeMetadata describing a runtime environment. message RuntimeMetadata { // SDK Info for the template. diff --git a/google/datastore/admin/v1/BUILD.bazel b/google/datastore/admin/v1/BUILD.bazel index a85c349e7..a1fad9e52 100644 --- a/google/datastore/admin/v1/BUILD.bazel +++ b/google/datastore/admin/v1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":admin_java_grpc", ], + transport = "grpc+rest", deps = [ ":admin_java_proto", "//google/api:api_java_proto", @@ -83,6 +84,7 @@ java_gapic_library( java_gapic_test( name = "admin_java_gapic_test_suite", test_classes = [ + "com.google.cloud.datastore.admin.v1.DatastoreAdminClientHttpJsonTest", "com.google.cloud.datastore.admin.v1.DatastoreAdminClientTest", ], runtime_deps = [":admin_java_gapic_test"], @@ -91,6 +93,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-datastore-admin-v1-java", + transport = "grpc+rest", deps = [ ":admin_java_gapic", ":admin_java_grpc", @@ -126,13 +129,14 @@ go_gapic_library( srcs = [":admin_proto_with_info"], grpc_service_config = "datastore_admin_grpc_service_config.json", importpath = "cloud.google.com/go/datastore/admin/apiv1;admin", - service_yaml = "datastore_v1.yaml", metadata = True, + service_yaml = "datastore_v1.yaml", + transport = "grpc+rest", deps = [ ":admin_go_proto", "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go//longrunning/autogen:go_default_library", "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", ], ) @@ -148,8 +152,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-datastore-admin-v1-go", deps = [ ":admin_go_gapic", - ":admin_go_gapic_srcjar-test.srcjar", ":admin_go_gapic_srcjar-metadata.srcjar", + ":admin_go_gapic_srcjar-test.srcjar", ":admin_go_proto", ], ) @@ -161,6 +165,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -168,6 +173,17 @@ py_gapic_library( srcs = [":admin_proto"], grpc_service_config = "datastore_admin_grpc_service_config.json", opt_args = ["python-gapic-namespace=google.cloud, python-gapic-name=datastore-admin"], + transport = "grpc", +) + +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 @@ -254,8 +270,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -328,6 +344,7 @@ csharp_gapic_library( srcs = [":admin_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "datastore_admin_grpc_service_config.json", + service_yaml = "datastore_v1.yaml", deps = [ ":admin_csharp_grpc", ":admin_csharp_proto", diff --git a/google/datastore/admin/v1/datastore_admin.proto b/google/datastore/admin/v1/datastore_admin.proto index 3bd4f4c72..0d624956e 100644 --- a/google/datastore/admin/v1/datastore_admin.proto +++ b/google/datastore/admin/v1/datastore_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -481,7 +481,7 @@ message IndexOperationMetadata { // design pattern. // // This singleton resource can be accessed at: -// `projects/{project_id}/datastore-firestore-migration` +// "projects/{project_id}/operations/datastore-firestore-migration" message DatastoreFirestoreMigrationMetadata { // The current state of migration from Cloud Datastore to Cloud Firestore in // Datastore mode. diff --git a/google/datastore/admin/v1/datastore_v1.yaml b/google/datastore/admin/v1/datastore_v1.yaml index 04421eaf7..29b337e31 100644 --- a/google/datastore/admin/v1/datastore_v1.yaml +++ b/google/datastore/admin/v1/datastore_v1.yaml @@ -5,6 +5,7 @@ title: Cloud Datastore API apis: - name: google.datastore.admin.v1.DatastoreAdmin +- name: google.longrunning.Operations types: - name: google.datastore.admin.v1.DatastoreFirestoreMigrationMetadata diff --git a/google/datastore/admin/v1/index.proto b/google/datastore/admin/v1/index.proto index a211e7c97..0162af523 100644 --- a/google/datastore/admin/v1/index.proto +++ b/google/datastore/admin/v1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.datastore.admin.v1; import "google/api/field_behavior.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Datastore.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/datastore/admin/v1;admin"; @@ -29,15 +28,6 @@ option ruby_package = "Google::Cloud::Datastore::Admin::V1"; // Datastore composite index definition. message Index { - // A property of an index. - message IndexedProperty { - // Required. The property name to index. - string name = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The indexed property's direction. Must not be DIRECTION_UNSPECIFIED. - Direction direction = 2 [(google.api.field_behavior) = REQUIRED]; - } - // For an ordered index, specifies whether each of the entity's ancestors // will be included. enum AncestorMode { @@ -65,6 +55,15 @@ message Index { DESCENDING = 2; } + // A property of an index. + message IndexedProperty { + // Required. The property name to index. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The indexed property's direction. Must not be DIRECTION_UNSPECIFIED. + Direction direction = 2 [(google.api.field_behavior) = REQUIRED]; + } + // The possible set of states of an index. enum State { // The state is unspecified. diff --git a/google/datastore/admin/v1/migration.proto b/google/datastore/admin/v1/migration.proto index aab41706f..dbbe473c9 100644 --- a/google/datastore/admin/v1/migration.proto +++ b/google/datastore/admin/v1/migration.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.datastore.admin.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.Datastore.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/datastore/admin/v1;admin"; option java_multiple_files = true; @@ -38,6 +36,21 @@ message MigrationStateEvent { // Datastore to Cloud Firestore in Datastore // mode](https://cloud.google.com/datastore/docs/upgrade-to-firestore). message MigrationProgressEvent { + // Concurrency modes for transactions in Cloud Firestore. + enum ConcurrencyMode { + // Unspecified. + CONCURRENCY_MODE_UNSPECIFIED = 0; + + // Pessimistic concurrency. + PESSIMISTIC = 1; + + // Optimistic concurrency. + OPTIMISTIC = 2; + + // Optimistic concurrency with entity groups. + OPTIMISTIC_WITH_ENTITY_GROUPS = 3; + } + // Details for the `PREPARE` step. message PrepareStepDetails { // The concurrency mode this database will use when it reaches the @@ -51,18 +64,6 @@ message MigrationProgressEvent { ConcurrencyMode concurrency_mode = 1; } - // Concurrency modes for transactions in Cloud Firestore. - enum ConcurrencyMode { - // Unspecified. - CONCURRENCY_MODE_UNSPECIFIED = 0; - - // Pessimistic concurrency. - PESSIMISTIC = 1; - - // Optimistic concurrency. - OPTIMISTIC = 2; - } - // The step that is starting. // // An event with step set to `START` indicates that the migration diff --git a/google/datastore/v1/BUILD.bazel b/google/datastore/v1/BUILD.bazel index 0170d766f..b36817d4a 100644 --- a/google/datastore/v1/BUILD.bazel +++ b/google/datastore/v1/BUILD.bazel @@ -66,6 +66,7 @@ java_gapic_library( test_deps = [ ":datastore_java_grpc", ], + transport = "grpc+rest", deps = [ ":datastore_java_proto", ], @@ -74,6 +75,7 @@ java_gapic_library( java_gapic_test( name = "datastore_java_gapic_test_suite", test_classes = [ + "com.google.cloud.datastore.v1.DatastoreClientHttpJsonTest", "com.google.cloud.datastore.v1.DatastoreClientTest", ], runtime_deps = [":datastore_java_gapic_test"], @@ -82,6 +84,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-datastore-v1-java", + transport = "grpc+rest", deps = [ ":datastore_java_gapic", ":datastore_java_grpc", @@ -118,8 +121,13 @@ go_gapic_library( grpc_service_config = "datastore_grpc_service_config.json", importpath = "cloud.google.com/go/datastore/apiv1;datastore", service_yaml = "datastore_v1.yaml", + transport = "grpc+rest", deps = [ ":datastore_go_proto", + "//google/longrunning:longrunning_go_gapic", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", ], ) @@ -147,6 +155,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -154,6 +163,17 @@ py_gapic_library( srcs = [":datastore_proto"], grpc_service_config = "datastore_grpc_service_config.json", opt_args = ["python-gapic-namespace=google.cloud"], + transport = "grpc", +) + +py_test( + name = "datastore_py_gapic_test", + srcs = [ + "datastore_py_gapic_pytest.py", + "datastore_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datastore_py_gapic"], ) py_gapic_assembly_pkg( @@ -224,6 +244,7 @@ nodejs_gapic_library( package = "google.datastore.v1", service_yaml = "datastore_v1.yaml", deps = [], + mixins = "google.longrunning.Operations", ) nodejs_gapic_assembly_pkg( @@ -312,6 +333,7 @@ csharp_gapic_library( srcs = [":datastore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "datastore_grpc_service_config.json", + service_yaml = "datastore_v1.yaml", deps = [ ":datastore_csharp_grpc", ":datastore_csharp_proto", diff --git a/google/datastore/v1/datastore.proto b/google/datastore/v1/datastore.proto index ad016194a..4c8ac7626 100644 --- a/google/datastore/v1/datastore.proto +++ b/google/datastore/v1/datastore.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/datastore/v1/entity.proto"; 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"; @@ -115,6 +116,12 @@ message LookupRequest { // Required. The ID of the project against which to make the request. string project_id = 8 [(google.api.field_behavior) = REQUIRED]; + // The ID of the database against which to make the request. + // + // '(default)' is not allowed; please use empty string '' to refer the default + // database. + string database_id = 9; + // The options for this lookup request. ReadOptions read_options = 1; @@ -138,6 +145,9 @@ message LookupResponse { // order of results in this field is undefined and has no relation to the // order of the keys in the input. repeated Key deferred = 3; + + // The time at which these entities were read or found missing. + google.protobuf.Timestamp read_time = 7; } // The request for [Datastore.RunQuery][google.datastore.v1.Datastore.RunQuery]. @@ -145,6 +155,12 @@ message RunQueryRequest { // Required. The ID of the project against which to make the request. string project_id = 8 [(google.api.field_behavior) = REQUIRED]; + // The ID of the database against which to make the request. + // + // '(default)' is not allowed; please use empty string '' to refer the default + // database. + string database_id = 9; + // Entities are partitioned into subsets, identified by a partition ID. // Queries are scoped to a single partition. // This partition ID is normalized with the standard default context @@ -159,7 +175,7 @@ message RunQueryRequest { // The query to run. Query query = 3; - // The GQL query to run. + // The GQL query to run. This query must be a non-aggregation query. GqlQuery gql_query = 7; } } @@ -178,6 +194,12 @@ message BeginTransactionRequest { // Required. The ID of the project against which to make the request. string project_id = 8 [(google.api.field_behavior) = REQUIRED]; + // The ID of the database against which to make the request. + // + // '(default)' is not allowed; please use empty string '' to refer the default + // database. + string database_id = 9; + // Options for a new transaction. TransactionOptions transaction_options = 10; } @@ -193,6 +215,12 @@ message RollbackRequest { // Required. The ID of the project against which to make the request. string project_id = 8 [(google.api.field_behavior) = REQUIRED]; + // The ID of the database against which to make the request. + // + // '(default)' is not allowed; please use empty string '' to refer the default + // database. + string database_id = 9; + // Required. The transaction identifier, returned by a call to // [Datastore.BeginTransaction][google.datastore.v1.Datastore.BeginTransaction]. bytes transaction = 1 [(google.api.field_behavior) = REQUIRED]; @@ -223,6 +251,12 @@ message CommitRequest { // Required. The ID of the project against which to make the request. string project_id = 8 [(google.api.field_behavior) = REQUIRED]; + // The ID of the database against which to make the request. + // + // '(default)' is not allowed; please use empty string '' to refer the default + // database. + string database_id = 9; + // The type of commit to perform. Defaults to `TRANSACTIONAL`. Mode mode = 5; @@ -259,6 +293,9 @@ message CommitResponse { // The number of index entries updated during the commit, or zero if none were // updated. int32 index_updates = 4; + + // The transaction commit timestamp. Not set for non-transactional commits. + google.protobuf.Timestamp commit_time = 8; } // The request for [Datastore.AllocateIds][google.datastore.v1.Datastore.AllocateIds]. @@ -266,6 +303,12 @@ message AllocateIdsRequest { // Required. The ID of the project against which to make the request. string project_id = 8 [(google.api.field_behavior) = REQUIRED]; + // The ID of the database against which to make the request. + // + // '(default)' is not allowed; please use empty string '' to refer the default + // database. + string database_id = 9; + // Required. A list of keys with incomplete key paths for which to allocate IDs. // No key may be reserved/read-only. repeated Key keys = 1 [(google.api.field_behavior) = REQUIRED]; @@ -283,7 +326,10 @@ message ReserveIdsRequest { // Required. The ID of the project against which to make the request. string project_id = 8 [(google.api.field_behavior) = REQUIRED]; - // If not empty, the ID of the database against which to make the request. + // The ID of the database against which to make the request. + // + // '(default)' is not allowed; please use empty string '' to refer the default + // database. string database_id = 9; // Required. A list of keys with complete key paths whose numeric IDs should not be @@ -328,9 +374,15 @@ message Mutation { // with the current version of the entity on the server. Conflicting mutations // are not applied, and are marked as such in MutationResult. oneof conflict_detection_strategy { - // The version of the entity that this mutation is being applied to. If this - // does not match the current version on the server, the mutation conflicts. + // The version of the entity that this mutation is being applied + // to. If this does not match the current version on the server, the + // mutation conflicts. int64 base_version = 8; + + // The update time of the entity that this mutation is being applied + // to. If this does not match the current update time on the server, the + // mutation conflicts. + google.protobuf.Timestamp update_time = 11; } } @@ -347,6 +399,12 @@ message MutationResult { // than the version of any possible future entity. int64 version = 4; + // The update time of the entity on the server after processing the mutation. + // If the mutation doesn't change anything on the server, then the timestamp + // will be the update timestamp of the current entity. This field will not be + // set after a 'delete'. + google.protobuf.Timestamp update_time = 6; + // Whether a conflict was detected for this mutation. Always false when a // conflict detection strategy field is not set in the mutation. bool conflict_detected = 5; @@ -366,18 +424,29 @@ message ReadOptions { EVENTUAL = 2; } - // If not specified, lookups and ancestor queries default to - // `read_consistency`=`STRONG`, global queries default to - // `read_consistency`=`EVENTUAL`. + // For Cloud Datastore, if read_consistency is not specified, then lookups and + // ancestor queries default to `read_consistency`=`STRONG`, global queries + // default to `read_consistency`=`EVENTUAL`. + // + // For Cloud Firestore in Datastore mode, if read_consistency is not specified + // then lookups and all queries default to `read_consistency`=`STRONG`. + // + // Explicitly setting `read_consistency`=`EVENTUAL` will result in eventually + // consistent lookups & queries in both Cloud Datastore & Cloud Firestore in + // Datastore mode. oneof consistency_type { // The non-transactional read consistency to use. - // Cannot be set to `STRONG` for global queries. ReadConsistency read_consistency = 1; // The identifier of the transaction in which to read. A // transaction identifier is returned by a call to // [Datastore.BeginTransaction][google.datastore.v1.Datastore.BeginTransaction]. bytes transaction = 2; + + // Reads entities as they were at the given time. This may not be older + // than 270 seconds. This value is only supported for Cloud Firestore in + // Datastore mode. + google.protobuf.Timestamp read_time = 4; } } @@ -395,7 +464,9 @@ message TransactionOptions { // Options specific to read-only transactions. message ReadOnly { - + // Reads entities at the given time. + // This may not be older than 60 seconds. + google.protobuf.Timestamp read_time = 1; } // The `mode` of the transaction, indicating whether write operations are diff --git a/google/datastore/v1/datastore_grpc_service_config.json b/google/datastore/v1/datastore_grpc_service_config.json index 48a210a8e..3cdd03ac0 100755 --- a/google/datastore/v1/datastore_grpc_service_config.json +++ b/google/datastore/v1/datastore_grpc_service_config.json @@ -10,6 +10,10 @@ "service": "google.datastore.v1.Datastore", "method": "RunQuery" }, + { + "service": "google.datastore.v1.Datastore", + "method": "RunAggregationQuery" + }, { "service": "google.datastore.v1.Datastore", "method": "ReserveIds" @@ -20,10 +24,7 @@ "initialBackoff": "0.100s", "maxBackoff": "60s", "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } }, { diff --git a/google/datastore/v1/datastore_v1.yaml b/google/datastore/v1/datastore_v1.yaml index bd26ed778..92aeb9880 100644 --- a/google/datastore/v1/datastore_v1.yaml +++ b/google/datastore/v1/datastore_v1.yaml @@ -5,6 +5,7 @@ title: Cloud Datastore API apis: - name: google.datastore.v1.Datastore +- name: google.longrunning.Operations documentation: summary: |- diff --git a/google/datastore/v1/entity.proto b/google/datastore/v1/entity.proto index 61286cd7a..010f1b3af 100644 --- a/google/datastore/v1/entity.proto +++ b/google/datastore/v1/entity.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.datastore.v1; -import "google/api/annotations.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/type/latlng.proto"; @@ -47,12 +46,15 @@ option ruby_package = "Google::Cloud::Datastore::V1"; // // Foreign partition IDs (in which the project ID does // not match the context project ID ) are discouraged. -// Reads and writes of foreign partition IDs may fail if the project is not in -// an active state. +// Reads and writes of foreign partition IDs may fail if the project is not in an active state. message PartitionId { // The ID of the project to which the entities belong. string project_id = 2; + // If not empty, the ID of the database to which the entities + // belong. + string database_id = 3; + // If not empty, the ID of the namespace to which the entities belong. string namespace_id = 4; } @@ -68,22 +70,33 @@ message Key { // If neither is set, the element is incomplete. message PathElement { // The kind of the entity. + // // A kind matching regex `__.*__` is reserved/read-only. // A kind must not contain more than 1500 bytes when UTF-8 encoded. // Cannot be `""`. + // + // Must be valid UTF-8 bytes. Legacy values that are not valid UTF-8 are + // encoded as `__bytes__` where `` is the base-64 encoding of the + // bytes. string kind = 1; // The type of ID. oneof id_type { // The auto-allocated ID of the entity. + // // Never equal to zero. Values less than zero are discouraged and may not // be supported in the future. int64 id = 2; // The name of the entity. + // // A name matching regex `__.*__` is reserved/read-only. // A name must not be more than 1500 bytes when UTF-8 encoded. // Cannot be `""`. + // + // Must be valid UTF-8 bytes. Legacy values that are not valid UTF-8 are + // encoded as `__bytes__` where `` is the base-64 encoding of the + // bytes. string name = 3; } } @@ -146,8 +159,8 @@ message Value { Key key_value = 5; // A UTF-8 encoded string value. - // When `exclude_from_indexes` is false (it is indexed), may have at most - // 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes. + // When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. + // Otherwise, may be set to at most 1,000,000 bytes. string string_value = 17; // A blob value. diff --git a/google/datastore/v1/query.proto b/google/datastore/v1/query.proto index 4cb3ef99b..cbe44932d 100644 --- a/google/datastore/v1/query.proto +++ b/google/datastore/v1/query.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -16,10 +16,10 @@ syntax = "proto3"; package google.datastore.v1; -import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; import "google/datastore/v1/entity.proto"; +import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; -import "google/type/latlng.proto"; option csharp_namespace = "Google.Cloud.Datastore.V1"; option go_package = "google.golang.org/genproto/googleapis/datastore/v1;datastore"; @@ -64,6 +64,12 @@ message EntityResult { // is always set except for eventually consistent reads. int64 version = 4; + // The time at which the entity was last changed. + // This field is set for [`FULL`][google.datastore.v1.EntityResult.ResultType.FULL] entity + // results. + // If this entity is missing, this field will not be set. + google.protobuf.Timestamp update_time = 5; + // A cursor that points to the position after the result entity. // Set only when the `EntityResult` is part of a `QueryResultBatch` message. bytes cursor = 3; @@ -179,7 +185,10 @@ message CompositeFilter { Operator op = 1; // The list of filters to combine. - // Must contain at least one filter. + // + // Requires: + // + // * At least one filter is present. repeated Filter filters = 2; } @@ -190,23 +199,68 @@ message PropertyFilter { // Unspecified. This value must not be used. OPERATOR_UNSPECIFIED = 0; - // Less than. + // The given `property` is less than the given `value`. + // + // Requires: + // + // * That `property` comes first in `order_by`. LESS_THAN = 1; - // Less than or equal. + // The given `property` is less than or equal to the given `value`. + // + // Requires: + // + // * That `property` comes first in `order_by`. LESS_THAN_OR_EQUAL = 2; - // Greater than. + // The given `property` is greater than the given `value`. + // + // Requires: + // + // * That `property` comes first in `order_by`. GREATER_THAN = 3; - // Greater than or equal. + // The given `property` is greater than or equal to the given `value`. + // + // Requires: + // + // * That `property` comes first in `order_by`. GREATER_THAN_OR_EQUAL = 4; - // Equal. + // The given `property` is equal to the given `value`. EQUAL = 5; - // Has ancestor. + // The given `property` is equal to at least one value in the given array. + // + // Requires: + // + // * That `value` is a non-empty `ArrayValue` with at most 10 values. + // * No other `IN` or `NOT_IN` is in the same query. + IN = 6; + + // The given `property` is not equal to the given `value`. + // + // Requires: + // + // * No other `NOT_EQUAL` or `NOT_IN` is in the same query. + // * That `property` comes first in the `order_by`. + NOT_EQUAL = 9; + + // Limit the result set to the given entity and its descendants. + // + // Requires: + // + // * That `value` is an entity key. HAS_ANCESTOR = 11; + + // The value of the `property` is not in the given array. + // + // Requires: + // + // * That `value` is a non-empty `ArrayValue` with at most 10 values. + // * No other `IN`, `NOT_IN`, `NOT_EQUAL` is in the same query. + // * That `field` comes first in the `order_by`. + NOT_IN = 13; } // The property to filter by. @@ -310,4 +364,16 @@ message QueryResultBatch { // is valid for all preceding batches. // The value will be zero for eventually consistent queries. int64 snapshot_version = 7; + + // Read timestamp this batch was returned from. + // This applies to the range of results from the query's `start_cursor` (or + // the beginning of the query if no cursor was given) to this batch's + // `end_cursor` (not the query's `end_cursor`). + // + // In a single transaction, subsequent query result batches for the same query + // can have a greater timestamp. Each batch's read timestamp + // is valid for all preceding batches. + // This value will not be set for eventually consistent queries in Cloud + // Datastore. + google.protobuf.Timestamp read_time = 8; } diff --git a/google/devtools/artifactregistry/v1/BUILD.bazel b/google/devtools/artifactregistry/v1/BUILD.bazel index 8cd6a3cf7..4c5719574 100644 --- a/google/devtools/artifactregistry/v1/BUILD.bazel +++ b/google/devtools/artifactregistry/v1/BUILD.bazel @@ -21,16 +21,29 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "artifactregistry_proto", srcs = [ + "apt_artifact.proto", "artifact.proto", + "file.proto", + "package.proto", "repository.proto", "service.proto", + "settings.proto", + "tag.proto", + "version.proto", + "yum_artifact.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", + "//google/longrunning:operations_proto", + "//google/rpc:status_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -76,6 +89,7 @@ java_gapic_library( ":artifactregistry_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":artifactregistry_java_proto", "//google/api:api_java_proto", @@ -86,6 +100,7 @@ java_gapic_library( java_gapic_test( name = "artifactregistry_java_gapic_test_suite", test_classes = [ + "com.google.devtools.artifactregistry.v1.ArtifactRegistryClientHttpJsonTest", "com.google.devtools.artifactregistry.v1.ArtifactRegistryClientTest", ], runtime_deps = [":artifactregistry_java_gapic_test"], @@ -94,6 +109,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-artifactregistry-v1-java", + transport = "grpc+rest", deps = [ ":artifactregistry_java_gapic", ":artifactregistry_java_grpc", @@ -121,6 +137,8 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/iam/v1:iam_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/rpc:status_go_proto", ], ) @@ -129,11 +147,16 @@ go_gapic_library( srcs = [":artifactregistry_proto_with_info"], grpc_service_config = "artifactregistry_grpc_service_config.json", importpath = "cloud.google.com/go/devtools/artifactregistry/apiv1;artifactregistry", - service_yaml = "artifactregistry_v1.yaml", metadata = True, + service_yaml = "artifactregistry_v1.yaml", + transport = "grpc+rest", deps = [ ":artifactregistry_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:struct_go_proto", ], ) @@ -149,8 +172,8 @@ go_gapic_assembly_pkg( name = "gapi-cloud-devtools-artifactregistry-v1-go", deps = [ ":artifactregistry_go_gapic", - ":artifactregistry_go_gapic_srcjar-test.srcjar", ":artifactregistry_go_gapic_srcjar-metadata.srcjar", + ":artifactregistry_go_gapic_srcjar-test.srcjar", ":artifactregistry_go_proto", ], ) @@ -162,6 +185,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -169,10 +193,24 @@ py_gapic_library( srcs = [":artifactregistry_proto"], grpc_service_config = "artifactregistry_grpc_service_config.json", opt_args = [ - "python-gapic-namespace=google.cloud", "python-gapic-name=artifactregistry", + "python-gapic-namespace=google.cloud", "warehouse-package-name=google-cloud-artifact-registry", ], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "artifactregistry_py_gapic_test", + srcs = [ + "artifactregistry_py_gapic_pytest.py", + "artifactregistry_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":artifactregistry_py_gapic"], ) # Open Source Packages @@ -259,8 +297,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -280,11 +318,11 @@ ruby_cloud_gapic_library( name = "artifactregistry_ruby_gapic", srcs = [":artifactregistry_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-artifact_registry-v1", - "ruby-cloud-env-prefix=ARTIFACT_REGISTRY", - "ruby-cloud-product-url=https://cloud.google.com/artifact-registry/", "ruby-cloud-api-id=artifactregistry.googleapis.com", "ruby-cloud-api-shortname=artifactregistry", + "ruby-cloud-env-prefix=ARTIFACT_REGISTRY", + "ruby-cloud-gem-name=google-cloud-artifact_registry-v1", + "ruby-cloud-product-url=https://cloud.google.com/artifact-registry/", ], grpc_service_config = "artifactregistry_grpc_service_config.json", ruby_cloud_description = "Artifact Registry stores and manages build artifacts in a scalable and integrated service built on Google infrastructure.", @@ -332,6 +370,7 @@ csharp_gapic_library( srcs = [":artifactregistry_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "artifactregistry_grpc_service_config.json", + service_yaml = "artifactregistry_v1.yaml", deps = [ ":artifactregistry_csharp_grpc", ":artifactregistry_csharp_proto", diff --git a/google/devtools/artifactregistry/v1/apt_artifact.proto b/google/devtools/artifactregistry/v1/apt_artifact.proto new file mode 100644 index 000000000..c8fcb10c4 --- /dev/null +++ b/google/devtools/artifactregistry/v1/apt_artifact.proto @@ -0,0 +1,116 @@ +// 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.devtools.artifactregistry.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; +option java_multiple_files = true; +option java_outer_classname = "AptArtifactProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// A detailed representation of an Apt artifact. Information in the record +// is derived from the archive's control file. +// See https://www.debian.org/doc/debian-policy/ch-controlfields.html +message AptArtifact { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/AptArtifact" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/aptArtifacts/{apt_artifact}" + }; + + // Package type is either binary or source. + enum PackageType { + // Package type is not specified. + PACKAGE_TYPE_UNSPECIFIED = 0; + + // Binary package. + BINARY = 1; + + // Source package. + SOURCE = 2; + } + + // Output only. The Artifact Registry resource name of the artifact. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Apt package name of the artifact. + string package_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An artifact is a binary or source package. + PackageType package_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Operating system architecture of the artifact. + string architecture = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Repository component of the artifact. + string component = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Contents of the artifact's control metadata file. + bytes control_file = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Google Cloud Storage location where the artifacts currently reside. +message ImportAptArtifactsGcsSource { + // Cloud Storage paths URI (e.g., gs://my_bucket//my_object). + repeated string uris = 1; + + // Supports URI wildcards for matching multiple objects from a single URI. + bool use_wildcards = 2; +} + +// The request to import new apt artifacts. +message ImportAptArtifactsRequest { + // The source location of the package binaries. + oneof source { + // Google Cloud Storage location where input content is located. + ImportAptArtifactsGcsSource gcs_source = 2; + } + + // The name of the parent resource where the artifacts will be imported. + string parent = 1; +} + +// Error information explaining why a package was not imported. +message ImportAptArtifactsErrorInfo { + // The source that was not imported. + oneof source { + // Google Cloud Storage location requested. + ImportAptArtifactsGcsSource gcs_source = 1; + } + + // The detailed error status. + google.rpc.Status error = 2; +} + +// The response message from importing APT artifacts. +message ImportAptArtifactsResponse { + // The Apt artifacts imported. + repeated AptArtifact apt_artifacts = 1; + + // Detailed error info for packages that were not imported. + repeated ImportAptArtifactsErrorInfo errors = 2; +} + +// The operation metadata for importing artifacts. +message ImportAptArtifactsMetadata { + +} diff --git a/google/devtools/artifactregistry/v1/artifact.proto b/google/devtools/artifactregistry/v1/artifact.proto index 9945bdee9..14173d57a 100644 --- a/google/devtools/artifactregistry/v1/artifact.proto +++ b/google/devtools/artifactregistry/v1/artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.devtools.artifactregistry.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; @@ -104,3 +103,14 @@ message ListDockerImagesResponse { // more artifacts to return. string next_page_token = 2; } + +// The request to get docker images. +message GetDockerImageRequest { + // Required. The name of the docker images. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/DockerImage" + } + ]; +} diff --git a/google/devtools/artifactregistry/v1/artifactregistry_v1.yaml b/google/devtools/artifactregistry/v1/artifactregistry_v1.yaml index 73e0791ce..2572b5ad9 100644 --- a/google/devtools/artifactregistry/v1/artifactregistry_v1.yaml +++ b/google/devtools/artifactregistry/v1/artifactregistry_v1.yaml @@ -7,7 +7,11 @@ apis: - name: google.devtools.artifactregistry.v1.ArtifactRegistry types: -- name: google.devtools.artifactregistry.v1.DockerImage +- name: google.devtools.artifactregistry.v1.ImportAptArtifactsMetadata +- name: google.devtools.artifactregistry.v1.ImportAptArtifactsResponse +- name: google.devtools.artifactregistry.v1.ImportYumArtifactsMetadata +- name: google.devtools.artifactregistry.v1.ImportYumArtifactsResponse +- name: google.devtools.artifactregistry.v1.OperationMetadata documentation: summary: |- @@ -34,8 +38,12 @@ documentation: 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.GetOperation - get: '/v1/{name=operations/*}' + get: '/v1/{name=projects/*/locations/*/operations/*}' authentication: rules: @@ -54,16 +62,56 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/cloud-platform.read-only - - selector: 'google.longrunning.Operations.*' + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.CreateRepository oauth: canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only - - selector: google.longrunning.Operations.CancelOperation + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.CreateTag oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.DeleteOperation + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.DeletePackage oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteRepository + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteTag + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteVersion + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.ImportAptArtifacts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.ImportYumArtifacts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.SetIamPolicy + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateProjectSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateRepository + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateTag + 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, + https://www.googleapis.com/auth/cloud-platform.read-only diff --git a/google/devtools/artifactregistry/v1/file.proto b/google/devtools/artifactregistry/v1/file.proto new file mode 100644 index 000000000..a6b284a92 --- /dev/null +++ b/google/devtools/artifactregistry/v1/file.proto @@ -0,0 +1,123 @@ +// 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.devtools.artifactregistry.v1; + +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; +option java_multiple_files = true; +option java_outer_classname = "FileProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// A hash of file content. +message Hash { + // The algorithm used to compute the hash. + enum HashType { + // Unspecified. + HASH_TYPE_UNSPECIFIED = 0; + + // SHA256 hash. + SHA256 = 1; + + // MD5 hash. + MD5 = 2; + } + + // The algorithm used to compute the hash value. + HashType type = 1; + + // The hash value. + bytes value = 2; +} + +// Files store content that is potentially associated with Packages or Versions. +message File { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/File" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/files/{file}" + }; + + // The name of the file, for example: + // "projects/p1/locations/us-central1/repositories/repo1/files/a%2Fb%2Fc.txt". + // If the file ID part contains slashes, they are escaped. + string name = 1; + + // The size of the File in bytes. + int64 size_bytes = 3; + + // The hashes of the file content. + repeated Hash hashes = 4; + + // The time when the File was created. + google.protobuf.Timestamp create_time = 5; + + // The time when the File was last updated. + google.protobuf.Timestamp update_time = 6; + + // The name of the Package or Version that owns this file, if any. + string owner = 7; +} + +// The request to list files. +message ListFilesRequest { + // The name of the repository whose files will be listed. For example: + // "projects/p1/locations/us-central1/repositories/repo1 + string parent = 1; + + // An expression for filtering the results of the request. Filter rules are + // case insensitive. The fields eligible for filtering are: + // + // * `name` + // * `owner` + // + // An example of using a filter: + // + // * `name="projects/p1/locations/us-central1/repositories/repo1/files/a/b/*"` --> Files with an + // ID starting with "a/b/". + // * `owner="projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/1.0"` --> + // Files owned by the version `1.0` in package `pkg1`. + string filter = 4; + + // The maximum number of files to return. + int32 page_size = 2; + + // The next_page_token value returned from a previous list request, if any. + string page_token = 3; + + // The field to order the results by. + string order_by = 5; +} + +// The response from listing files. +message ListFilesResponse { + // The files returned. + repeated File files = 1; + + // The token to retrieve the next page of files, or empty if there are no + // more files to return. + string next_page_token = 2; +} + +// The request to retrieve a file. +message GetFileRequest { + // The name of the file to retrieve. + string name = 1; +} diff --git a/google/devtools/artifactregistry/v1/package.proto b/google/devtools/artifactregistry/v1/package.proto new file mode 100644 index 000000000..e1b0129d3 --- /dev/null +++ b/google/devtools/artifactregistry/v1/package.proto @@ -0,0 +1,87 @@ +// 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.devtools.artifactregistry.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; +option java_multiple_files = true; +option java_outer_classname = "PackageProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// Packages are named collections of versions. +message Package { + + // The name of the package, for example: + // "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1". + // If the package ID part contains slashes, the slashes are escaped. + string name = 1; + + // The display name of the package. + string display_name = 2; + + // The time when the package was created. + google.protobuf.Timestamp create_time = 5; + + // The time when the package was last updated. This includes publishing a new + // version of the package. + google.protobuf.Timestamp update_time = 6; +} + +// The request to list packages. +message ListPackagesRequest { + // Required. The name of the parent resource whose packages will be listed. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED + ]; + + // The maximum number of packages to return. Maximum page size is 1,000. + int32 page_size = 2; + + // The next_page_token value returned from a previous list request, if any. + string page_token = 3; +} + +// The response from listing packages. +message ListPackagesResponse { + // The packages returned. + repeated Package packages = 1; + + // The token to retrieve the next page of packages, or empty if there are no + // more packages to return. + string next_page_token = 2; +} + +// The request to retrieve a package. +message GetPackageRequest { + // Required. The name of the package to retrieve. + string name = 1 [ + (google.api.field_behavior) = REQUIRED + ]; +} + +// The request to delete a package. +message DeletePackageRequest { + // Required. The name of the package to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED + ]; +} diff --git a/google/devtools/artifactregistry/v1/repository.proto b/google/devtools/artifactregistry/v1/repository.proto index f4a9e9fa4..092ade2b8 100644 --- a/google/devtools/artifactregistry/v1/repository.proto +++ b/google/devtools/artifactregistry/v1/repository.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,8 +18,8 @@ package google.devtools.artifactregistry.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; @@ -36,6 +36,32 @@ message Repository { pattern: "projects/{project}/locations/{location}/repositories/{repository}" }; + // MavenRepositoryConfig is maven related repository details. + // Provides additional configuration details for repositories of the maven + // format type. + message MavenRepositoryConfig { + // VersionPolicy is the version policy for the repository. + enum VersionPolicy { + // VERSION_POLICY_UNSPECIFIED - the version policy is not defined. + // When the version policy is not defined, no validation is performed + // for the versions. + VERSION_POLICY_UNSPECIFIED = 0; + + // RELEASE - repository will accept only Release versions. + RELEASE = 1; + + // SNAPSHOT - repository will accept only Snapshot versions. + SNAPSHOT = 2; + } + + // The repository with this flag will allow publishing + // the same snapshot versions. + bool allow_snapshot_overwrites = 1; + + // Version policy defines the versions that the registry will accept. + VersionPolicy version_policy = 2; + } + // A package format. enum Format { // Unspecified package format. @@ -60,6 +86,13 @@ message Repository { PYTHON = 8; } + // Repository-specific configurations. + oneof format_config { + // Maven repository config contains repository level configuration + // for the repositories of maven type. + MavenRepositoryConfig maven_config = 9; + } + // The name of the repository, for example: // "projects/p1/locations/us-central1/repositories/repo1". string name = 1; @@ -83,7 +116,7 @@ message Repository { // The time when the repository was last updated. google.protobuf.Timestamp update_time = 6; - // The Cloud KMS resource name of the customer managed encryption key that’s + // The Cloud KMS resource name of the customer managed encryption key that's // used to encrypt the contents of the Repository. Has the form: // `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. // This value may not be changed after the Repository has been created. @@ -100,7 +133,7 @@ message ListRepositoriesRequest { } ]; - // The maximum number of repositories to return. + // The maximum number of repositories to return. Maximum page size is 1,000. int32 page_size = 2; // The next_page_token value returned from a previous list request, if any. @@ -127,3 +160,42 @@ message GetRepositoryRequest { } ]; } + +// The request to create a new repository. +message CreateRepositoryRequest { + // Required. The name of the parent resource where the repository will be created. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "artifactregistry.googleapis.com/Repository" + } + ]; + + // The repository id to use for this repository. + string repository_id = 2; + + // The repository to be created. + Repository repository = 3; +} + +// The request to update a repository. +message UpdateRepositoryRequest { + // The repository that replaces the resource on the server. + Repository repository = 1; + + // 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; +} + +// The request to delete a repository. +message DeleteRepositoryRequest { + // Required. The name of the repository to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/Repository" + } + ]; +} diff --git a/google/devtools/artifactregistry/v1/service.proto b/google/devtools/artifactregistry/v1/service.proto index 535f1ba51..ed1cee05e 100644 --- a/google/devtools/artifactregistry/v1/service.proto +++ b/google/devtools/artifactregistry/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,9 +18,19 @@ package google.devtools.artifactregistry.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; +import "google/devtools/artifactregistry/v1/apt_artifact.proto"; import "google/devtools/artifactregistry/v1/artifact.proto"; +import "google/devtools/artifactregistry/v1/file.proto"; +import "google/devtools/artifactregistry/v1/package.proto"; import "google/devtools/artifactregistry/v1/repository.proto"; +import "google/devtools/artifactregistry/v1/settings.proto"; +import "google/devtools/artifactregistry/v1/tag.proto"; +import "google/devtools/artifactregistry/v1/version.proto"; +import "google/devtools/artifactregistry/v1/yum_artifact.proto"; +import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; @@ -57,6 +67,44 @@ service ArtifactRegistry { option (google.api.method_signature) = "parent"; } + // Gets a docker image. + rpc GetDockerImage(GetDockerImageRequest) returns (DockerImage) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/repositories/*/dockerImages/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Imports Apt artifacts. The returned Operation will complete once the + // resources are imported. Package, Version, and File resources are created + // based on the imported artifacts. Imported artifacts that conflict with + // existing resources are ignored. + rpc ImportAptArtifacts(ImportAptArtifactsRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/repositories/*}/aptArtifacts:import" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.devtools.artifactregistry.v1.ImportAptArtifactsResponse" + metadata_type: "google.devtools.artifactregistry.v1.ImportAptArtifactsMetadata" + }; + } + + // Imports Yum (RPM) artifacts. The returned Operation will complete once the + // resources are imported. Package, Version, and File resources are created + // based on the imported artifacts. Imported artifacts that conflict with + // existing resources are ignored. + rpc ImportYumArtifacts(ImportYumArtifactsRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/repositories/*}/yumArtifacts:import" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.devtools.artifactregistry.v1.ImportYumArtifactsResponse" + metadata_type: "google.devtools.artifactregistry.v1.ImportYumArtifactsMetadata" + }; + } + // Lists repositories. rpc ListRepositories(ListRepositoriesRequest) returns (ListRepositoriesResponse) { option (google.api.http) = { @@ -72,4 +120,202 @@ service ArtifactRegistry { }; option (google.api.method_signature) = "name"; } + + // Creates a repository. The returned Operation will finish once the + // repository has been created. Its response will be the created Repository. + rpc CreateRepository(CreateRepositoryRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/repositories" + body: "repository" + }; + option (google.api.method_signature) = "parent,repository,repository_id"; + option (google.longrunning.operation_info) = { + response_type: "google.devtools.artifactregistry.v1.Repository" + metadata_type: "google.devtools.artifactregistry.v1.OperationMetadata" + }; + } + + // Updates a repository. + rpc UpdateRepository(UpdateRepositoryRequest) returns (Repository) { + option (google.api.http) = { + patch: "/v1/{repository.name=projects/*/locations/*/repositories/*}" + body: "repository" + }; + option (google.api.method_signature) = "repository,update_mask"; + } + + // Deletes a repository and all of its contents. The returned Operation will + // finish once the repository has been deleted. It will not have any Operation + // metadata and will return a google.protobuf.Empty response. + rpc DeleteRepository(DeleteRepositoryRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/repositories/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.devtools.artifactregistry.v1.OperationMetadata" + }; + } + + // Lists packages. + rpc ListPackages(ListPackagesRequest) returns (ListPackagesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/repositories/*}/packages" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a package. + rpc GetPackage(GetPackageRequest) returns (Package) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/repositories/*/packages/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a package and all of its versions and tags. The returned operation + // will complete once the package has been deleted. + rpc DeletePackage(DeletePackageRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/repositories/*/packages/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.devtools.artifactregistry.v1.OperationMetadata" + }; + } + + // Lists versions. + rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/versions" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a version + rpc GetVersion(GetVersionRequest) returns (Version) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/repositories/*/packages/*/versions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a version and all of its content. The returned operation will + // complete once the version has been deleted. + rpc DeleteVersion(DeleteVersionRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/repositories/*/packages/*/versions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.devtools.artifactregistry.v1.OperationMetadata" + }; + } + + // Lists files. + rpc ListFiles(ListFilesRequest) returns (ListFilesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/repositories/*}/files" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a file. + rpc GetFile(GetFileRequest) returns (File) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/repositories/*/files/**}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists tags. + rpc ListTags(ListTagsRequest) returns (ListTagsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/tags" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a tag. + rpc GetTag(GetTagRequest) returns (Tag) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/repositories/*/packages/*/tags/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a tag. + rpc CreateTag(CreateTagRequest) returns (Tag) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/tags" + body: "tag" + }; + option (google.api.method_signature) = "parent,tag,tag_id"; + } + + // Updates a tag. + rpc UpdateTag(UpdateTagRequest) returns (Tag) { + option (google.api.http) = { + patch: "/v1/{tag.name=projects/*/locations/*/repositories/*/packages/*/tags/*}" + body: "tag" + }; + option (google.api.method_signature) = "tag,update_mask"; + } + + // Deletes a tag. + rpc DeleteTag(DeleteTagRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/repositories/*/packages/*/tags/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the IAM policy for a given resource. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1/{resource=projects/*/locations/*/repositories/*}:setIamPolicy" + body: "*" + }; + } + + // Gets the IAM policy for a given resource. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.http) = { + get: "/v1/{resource=projects/*/locations/*/repositories/*}:getIamPolicy" + }; + } + + // Tests if the caller has a list of permissions on a resource. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v1/{resource=projects/*/locations/*/repositories/*}:testIamPermissions" + body: "*" + }; + } + + // Retrieves the Settings for the Project. + rpc GetProjectSettings(GetProjectSettingsRequest) returns (ProjectSettings) { + option (google.api.http) = { + get: "/v1/{name=projects/*/projectSettings}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the Settings for the Project. + rpc UpdateProjectSettings(UpdateProjectSettingsRequest) returns (ProjectSettings) { + option (google.api.http) = { + patch: "/v1/{project_settings.name=projects/*/projectSettings}" + body: "project_settings" + }; + option (google.api.method_signature) = "project_settings,update_mask"; + } +} + +// Metadata type for longrunning-operations, currently empty. +message OperationMetadata { + } diff --git a/google/devtools/artifactregistry/v1/settings.proto b/google/devtools/artifactregistry/v1/settings.proto new file mode 100644 index 000000000..5c4e18c10 --- /dev/null +++ b/google/devtools/artifactregistry/v1/settings.proto @@ -0,0 +1,84 @@ +// 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.devtools.artifactregistry.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; +option java_multiple_files = true; +option java_outer_classname = "SettingsProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// The Artifact Registry settings that apply to a Project. +message ProjectSettings { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/ProjectSettings" + pattern: "projects/{project}/projectSettings" + }; + + // The possible redirection states for legacy repositories. + enum RedirectionState { + // No redirection status has been set. + REDIRECTION_STATE_UNSPECIFIED = 0; + + // Redirection is disabled. + REDIRECTION_FROM_GCR_IO_DISABLED = 1; + + // Redirection is enabled. + REDIRECTION_FROM_GCR_IO_ENABLED = 2; + + // Redirection is enabled, and has been finalized so cannot be reverted. + REDIRECTION_FROM_GCR_IO_FINALIZED = 3; + } + + // The name of the project's settings. + // + // Always of the form: + // projects/{project-id}/projectSettings + // + // In update request: never set + // In response: always set + string name = 1; + + // The redirection state of the legacy repositories in this project. + RedirectionState legacy_redirection_state = 2; +} + +// Gets the redirection status for a project. +message GetProjectSettingsRequest { + // Required. The name of the projectSettings resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/ProjectSettings" + } + ]; +} + +// Sets the settings of the project. +message UpdateProjectSettingsRequest { + // The project settings. + ProjectSettings project_settings = 2; + + // Field mask to support partial updates. + google.protobuf.FieldMask update_mask = 3; +} diff --git a/google/devtools/artifactregistry/v1/tag.proto b/google/devtools/artifactregistry/v1/tag.proto new file mode 100644 index 000000000..9e8dc6d70 --- /dev/null +++ b/google/devtools/artifactregistry/v1/tag.proto @@ -0,0 +1,118 @@ +// 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.devtools.artifactregistry.v1; + +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; +option java_multiple_files = true; +option java_outer_classname = "TagProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// Tags point to a version and represent an alternative name that can be used +// to access the version. +message Tag { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/Tag" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/packages/{package}/tags/{tag}" + }; + + // The name of the tag, for example: + // "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1". + // If the package part contains slashes, the slashes are escaped. + // The tag part can only have characters in [a-zA-Z0-9\-._~:@], anything else + // must be URL encoded. + string name = 1; + + // The name of the version the tag refers to, for example: + // "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/sha256:5243811" + // If the package or version ID parts contain slashes, the slashes are + // escaped. + string version = 2; +} + +// The request to list tags. +message ListTagsRequest { + // The name of the parent resource whose tags will be listed. + string parent = 1; + + // An expression for filtering the results of the request. Filter rules are + // case insensitive. The fields eligible for filtering are: + // + // * `version` + // + // An example of using a filter: + // + // * `version="projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/1.0"` + // --> Tags that are applied to the version `1.0` in package `pkg1`. + string filter = 4; + + // The maximum number of tags to return. Maximum page size is 10,000. + int32 page_size = 2; + + // The next_page_token value returned from a previous list request, if any. + string page_token = 3; +} + +// The response from listing tags. +message ListTagsResponse { + // The tags returned. + repeated Tag tags = 1; + + // The token to retrieve the next page of tags, or empty if there are no + // more tags to return. + string next_page_token = 2; +} + +// The request to retrieve a tag. +message GetTagRequest { + // The name of the tag to retrieve. + string name = 1; +} + +// The request to create a new tag. +message CreateTagRequest { + // The name of the parent resource where the tag will be created. + string parent = 1; + + // The tag id to use for this repository. + string tag_id = 2; + + // The tag to be created. + Tag tag = 3; +} + +// The request to create or update a tag. +message UpdateTagRequest { + // The tag that replaces the resource on the server. + Tag tag = 1; + + // 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; +} + +// The request to delete a tag. +message DeleteTagRequest { + // The name of the tag to delete. + string name = 1; +} diff --git a/google/devtools/artifactregistry/v1/version.proto b/google/devtools/artifactregistry/v1/version.proto new file mode 100644 index 000000000..f4ac0a92a --- /dev/null +++ b/google/devtools/artifactregistry/v1/version.proto @@ -0,0 +1,127 @@ +// 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.devtools.artifactregistry.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/devtools/artifactregistry/v1/tag.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; +option java_multiple_files = true; +option java_outer_classname = "VersionProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// The view, which determines what version information is returned in a +// response. +enum VersionView { + // The default / unset value. + // The API will default to the BASIC view. + VERSION_VIEW_UNSPECIFIED = 0; + + // Includes basic information about the version, but not any related tags. + BASIC = 1; + + // Include everything. + FULL = 2; +} + +// The body of a version resource. A version resource represents a +// collection of components, such as files and other data. This may correspond +// to a version in many package management schemes. +message Version { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/Version" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/packages/{package}/versions/{version}" + }; + + // The name of the version, for example: + // "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/art1". + // If the package or version ID parts contain slashes, the slashes are + // escaped. + string name = 1; + + // Optional. Description of the version, as specified in its metadata. + string description = 3; + + // The time when the version was created. + google.protobuf.Timestamp create_time = 5; + + // The time when the version was last updated. + google.protobuf.Timestamp update_time = 6; + + // Output only. A list of related tags. Will contain up to 100 tags that + // reference this version. + repeated Tag related_tags = 7; + + // Output only. Repository-specific Metadata stored against this version. + // The fields returned are defined by the underlying repository-specific + // resource. Currently, the only resource in use is + // [DockerImage][google.devtools.artifactregistry.v1.DockerImage] + google.protobuf.Struct metadata = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The request to list versions. +message ListVersionsRequest { + // The name of the parent resource whose versions will be listed. + string parent = 1; + + // The maximum number of versions to return. Maximum page size is 1,000. + int32 page_size = 2; + + // The next_page_token value returned from a previous list request, if any. + string page_token = 3; + + // The view that should be returned in the response. + VersionView view = 4; + + // Optional. The field to order the results by. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response from listing versions. +message ListVersionsResponse { + // The versions returned. + repeated Version versions = 1; + + // The token to retrieve the next page of versions, or empty if there are no + // more versions to return. + string next_page_token = 2; +} + +// The request to retrieve a version. +message GetVersionRequest { + // The name of the version to retrieve. + string name = 1; + + // The view that should be returned in the response. + VersionView view = 2; +} + +// The request to delete a version. +message DeleteVersionRequest { + // The name of the version to delete. + string name = 1; + + // By default, a version that is tagged may not be deleted. If force=true, the + // version and any tags pointing to the version are deleted. + bool force = 2; +} diff --git a/google/devtools/artifactregistry/v1/yum_artifact.proto b/google/devtools/artifactregistry/v1/yum_artifact.proto new file mode 100644 index 000000000..0d1faafe9 --- /dev/null +++ b/google/devtools/artifactregistry/v1/yum_artifact.proto @@ -0,0 +1,108 @@ +// 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.devtools.artifactregistry.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1;artifactregistry"; +option java_multiple_files = true; +option java_outer_classname = "YumArtifactProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// A detailed representation of a Yum artifact. +message YumArtifact { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/YumArtifact" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/yumArtifacts/{yum_artifact}" + }; + + // Package type is either binary or source. + enum PackageType { + // Package type is not specified. + PACKAGE_TYPE_UNSPECIFIED = 0; + + // Binary package (.rpm). + BINARY = 1; + + // Source package (.srpm). + SOURCE = 2; + } + + // Output only. The Artifact Registry resource name of the artifact. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The yum package name of the artifact. + string package_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An artifact is a binary or source package. + PackageType package_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Operating system architecture of the artifact. + string architecture = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Google Cloud Storage location where the artifacts currently reside. +message ImportYumArtifactsGcsSource { + // Cloud Storage paths URI (e.g., gs://my_bucket//my_object). + repeated string uris = 1; + + // Supports URI wildcards for matching multiple objects from a single URI. + bool use_wildcards = 2; +} + +// The request to import new yum artifacts. +message ImportYumArtifactsRequest { + // The source location of the package binaries. + oneof source { + // Google Cloud Storage location where input content is located. + ImportYumArtifactsGcsSource gcs_source = 2; + } + + // The name of the parent resource where the artifacts will be imported. + string parent = 1; +} + +// Error information explaining why a package was not imported. +message ImportYumArtifactsErrorInfo { + // The source that was not imported. + oneof source { + // Google Cloud Storage location requested. + ImportYumArtifactsGcsSource gcs_source = 1; + } + + // The detailed error status. + google.rpc.Status error = 2; +} + +// The response message from importing YUM artifacts. +message ImportYumArtifactsResponse { + // The yum artifacts imported. + repeated YumArtifact yum_artifacts = 1; + + // Detailed error info for packages that were not imported. + repeated ImportYumArtifactsErrorInfo errors = 2; +} + +// The operation metadata for importing artifacts. +message ImportYumArtifactsMetadata { + +} diff --git a/google/devtools/artifactregistry/v1beta2/BUILD.bazel b/google/devtools/artifactregistry/v1beta2/BUILD.bazel index 53bf39c36..60fb5c26b 100644 --- a/google/devtools/artifactregistry/v1beta2/BUILD.bazel +++ b/google/devtools/artifactregistry/v1beta2/BUILD.bazel @@ -21,6 +21,7 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "artifactregistry_proto", srcs = [ + "apt_artifact.proto", "file.proto", "package.proto", "repository.proto", @@ -28,7 +29,6 @@ proto_library( "settings.proto", "tag.proto", "version.proto", - "apt_artifact.proto", "yum_artifact.proto", ], deps = [ @@ -86,6 +86,7 @@ java_gapic_library( ":artifactregistry_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":artifactregistry_java_proto", "//google/iam/v1:iam_java_proto", @@ -95,6 +96,7 @@ java_gapic_library( java_gapic_test( name = "artifactregistry_java_gapic_test_suite", test_classes = [ + "com.google.devtools.artifactregistry.v1beta2.ArtifactRegistryClientHttpJsonTest", "com.google.devtools.artifactregistry.v1beta2.ArtifactRegistryClientTest", ], runtime_deps = [":artifactregistry_java_gapic_test"], @@ -103,6 +105,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-artifactregistry-v1beta2-java", + transport = "grpc+rest", deps = [ ":artifactregistry_java_gapic", ":artifactregistry_java_grpc", @@ -141,6 +144,7 @@ go_gapic_library( grpc_service_config = "artifactregistry_grpc_service_config.json", importpath = "cloud.google.com/go/devtools/artifactregistry/apiv1beta2;artifactregistry", service_yaml = "artifactregistry_v1beta2.yaml", + transport = "grpc+rest", deps = [ ":artifactregistry_go_proto", "//google/iam/v1:iam_go_proto", @@ -174,6 +178,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -185,6 +190,20 @@ py_gapic_library( "python-gapic-name=artifactregistry", "warehouse-package-name=google-cloud-artifact-registry", ], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "artifactregistry_py_gapic_test", + srcs = [ + "artifactregistry_py_gapic_pytest.py", + "artifactregistry_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":artifactregistry_py_gapic"], ) # Open Source Packages @@ -344,6 +363,7 @@ csharp_gapic_library( srcs = [":artifactregistry_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "artifactregistry_grpc_service_config.json", + service_yaml = "artifactregistry_v1beta2.yaml", deps = [ ":artifactregistry_csharp_grpc", ":artifactregistry_csharp_proto", diff --git a/google/devtools/artifactregistry/v1beta2/apt_artifact.proto b/google/devtools/artifactregistry/v1beta2/apt_artifact.proto index 338b216b9..c2fa7de4f 100644 --- a/google/devtools/artifactregistry/v1beta2/apt_artifact.proto +++ b/google/devtools/artifactregistry/v1beta2/apt_artifact.proto @@ -16,10 +16,8 @@ syntax = "proto3"; package google.devtools.artifactregistry.v1beta2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/longrunning/operations.proto"; import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1Beta2"; diff --git a/google/devtools/artifactregistry/v1beta2/file.proto b/google/devtools/artifactregistry/v1beta2/file.proto index 94dc22ab8..7d1cfb2dd 100644 --- a/google/devtools/artifactregistry/v1beta2/file.proto +++ b/google/devtools/artifactregistry/v1beta2/file.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.devtools.artifactregistry.v1beta2; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; @@ -79,7 +78,8 @@ message File { // The request to list files. message ListFilesRequest { - // The name of the parent resource whose files will be listed. + // The name of the repository whose files will be listed. For example: + // "projects/p1/locations/us-central1/repositories/repo1 string parent = 1; // An expression for filtering the results of the request. Filter rules are diff --git a/google/devtools/artifactregistry/v1beta2/package.proto b/google/devtools/artifactregistry/v1beta2/package.proto index 5a53ee8b6..a2336dd8b 100644 --- a/google/devtools/artifactregistry/v1beta2/package.proto +++ b/google/devtools/artifactregistry/v1beta2/package.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.devtools.artifactregistry.v1beta2; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1Beta2"; option go_package = "google.golang.org/genproto/googleapis/devtools/artifactregistry/v1beta2;artifactregistry"; diff --git a/google/devtools/artifactregistry/v1beta2/repository.proto b/google/devtools/artifactregistry/v1beta2/repository.proto index b9691d387..80ce9b486 100644 --- a/google/devtools/artifactregistry/v1beta2/repository.proto +++ b/google/devtools/artifactregistry/v1beta2/repository.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.devtools.artifactregistry.v1beta2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; diff --git a/google/devtools/artifactregistry/v1beta2/settings.proto b/google/devtools/artifactregistry/v1beta2/settings.proto index 4c2cb9ae0..2bd6e4126 100644 --- a/google/devtools/artifactregistry/v1beta2/settings.proto +++ b/google/devtools/artifactregistry/v1beta2/settings.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.devtools.artifactregistry.v1beta2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; diff --git a/google/devtools/artifactregistry/v1beta2/tag.proto b/google/devtools/artifactregistry/v1beta2/tag.proto index 5faeba490..e0b6f70c9 100644 --- a/google/devtools/artifactregistry/v1beta2/tag.proto +++ b/google/devtools/artifactregistry/v1beta2/tag.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.devtools.artifactregistry.v1beta2; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; diff --git a/google/devtools/artifactregistry/v1beta2/version.proto b/google/devtools/artifactregistry/v1beta2/version.proto index 12cf2137a..b875ff671 100644 --- a/google/devtools/artifactregistry/v1beta2/version.proto +++ b/google/devtools/artifactregistry/v1beta2/version.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.devtools.artifactregistry.v1beta2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/devtools/artifactregistry/v1beta2/tag.proto"; diff --git a/google/devtools/artifactregistry/v1beta2/yum_artifact.proto b/google/devtools/artifactregistry/v1beta2/yum_artifact.proto index fcaadc8ec..4befe4bd5 100644 --- a/google/devtools/artifactregistry/v1beta2/yum_artifact.proto +++ b/google/devtools/artifactregistry/v1beta2/yum_artifact.proto @@ -16,10 +16,8 @@ syntax = "proto3"; package google.devtools.artifactregistry.v1beta2; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/longrunning/operations.proto"; import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1Beta2"; diff --git a/google/devtools/build/buildeventservice.yaml b/google/devtools/build/buildeventservice.yaml deleted file mode 100644 index 4d5850029..000000000 --- a/google/devtools/build/buildeventservice.yaml +++ /dev/null @@ -1,17 +0,0 @@ -type: google.api.Service -config_version: 3 -name: buildeventservice.googleapis.com -title: Build Event Service Backend API - -apis: -- name: google.devtools.build.v1.PublishBuildEvent - -documentation: - summary: Handles build events from tools such as bazel. - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/devtools/build/v1/BUILD.bazel b/google/devtools/build/v1/BUILD.bazel index c46af5fa5..542ca78f2 100644 --- a/google/devtools/build/v1/BUILD.bazel +++ b/google/devtools/build/v1/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":build_java_grpc", ], + transport = "grpc+rest", deps = [ ":build_java_proto", ], @@ -84,6 +85,7 @@ java_gapic_library( java_gapic_test( name = "build_java_gapic_test_suite", test_classes = [ + "com.google.cloud.devtools.build.v1.PublishBuildEventClientHttpJsonTest", "com.google.cloud.devtools.build.v1.PublishBuildEventClientTest", ], runtime_deps = [":build_java_gapic_test"], @@ -92,6 +94,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-build-v1-java", + transport = "grpc+rest", deps = [ ":build_java_gapic", ":build_java_grpc", @@ -163,6 +166,17 @@ py_gapic_library( name = "build_py_gapic", srcs = [":build_proto"], grpc_service_config = "buildeventservice_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "build_py_gapic_test", + srcs = [ + "build_py_gapic_pytest.py", + "build_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":build_py_gapic"], ) # Open Source Packages @@ -247,8 +261,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -266,7 +280,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "build_ruby_gapic", - srcs = [":build_proto_with_info",], + srcs = [":build_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-build-v1"], deps = [ ":build_ruby_grpc", @@ -311,6 +325,7 @@ csharp_gapic_library( srcs = [":build_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "buildeventservice_grpc_service_config.json", + service_yaml = "buildeventservice_v1.yaml", deps = [ ":build_csharp_grpc", ":build_csharp_proto", diff --git a/google/devtools/build/v1/publish_build_event.proto b/google/devtools/build/v1/publish_build_event.proto index 9fd5171cf..687f5da2e 100644 --- a/google/devtools/build/v1/publish_build_event.proto +++ b/google/devtools/build/v1/publish_build_event.proto @@ -126,6 +126,14 @@ message PublishLifecycleEventRequest { // This should match the project used for the initial call to // PublishLifecycleEvent (containing a BuildEnqueued message). string project_id = 6 [(google.api.field_behavior) = REQUIRED]; + + // Whether to require a previously received matching parent lifecycle event + // for the current request's event before continuing processing. + // - InvocationAttemptStarted and BuildFinished events require a BuildEnqueued + // parent event. + // - InvocationAttemptFinished events require an InvocationAttemptStarted + // parent event. + bool check_preceding_lifecycle_events_present = 7; } // States which event has been committed. Any failure to commit will cause @@ -170,4 +178,10 @@ message PublishBuildToolEventStreamRequest { // This should match the project used for the initial call to // PublishLifecycleEvent (containing a BuildEnqueued message). string project_id = 6 [(google.api.field_behavior) = REQUIRED]; + + // Whether to require a previously received matching InvocationAttemptStarted + // event before continuing event processing for the event in the current + // request. BES only performs this check for events with sequence_number 1 + // i.e. the first event in the stream. + bool check_preceding_lifecycle_events_present = 7; } diff --git a/google/devtools/cloudbuild/cloudbuild.yaml b/google/devtools/cloudbuild/cloudbuild.yaml deleted file mode 100644 index ed211ab23..000000000 --- a/google/devtools/cloudbuild/cloudbuild.yaml +++ /dev/null @@ -1,58 +0,0 @@ -type: google.api.Service -config_version: 3 -name: cloudbuild.googleapis.com -title: Cloud Build API - -apis: -- name: google.devtools.cloudbuild.v1.CloudBuild - -types: -- name: google.devtools.cloudbuild.v1.BuildOperationMetadata -- name: google.devtools.cloudbuild.v1.ArtifactResult - -documentation: - summary: Creates and manages builds on Google Cloud Platform. - overview: |- - The Cloud Build API lets you to build an application or part of an - application from source code stored in Cloud Storage or a Cloud Source - Repository and package it into container images or artifacts. The images - are then stored in Container Registry and the artifacts are stored in Cloud - Storage. - -backend: - rules: - - selector: google.longrunning.Operations.ListOperations - deadline: 5.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 5.0 - - selector: google.longrunning.Operations.CancelOperation - deadline: 5.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.CreateBuild - deadline: 20.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.GetBuild - deadline: 5.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.ListBuilds - deadline: 20.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.CancelBuild - deadline: 5.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.RetryBuild - deadline: 20.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.CreateBuildTrigger - deadline: 5.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.GetBuildTrigger - deadline: 5.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.ListBuildTriggers - deadline: 5.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.DeleteBuildTrigger - deadline: 5.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.UpdateBuildTrigger - deadline: 5.0 - - selector: google.devtools.cloudbuild.v1.CloudBuild.RunBuildTrigger - deadline: 20.0 - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/devtools/cloudbuild/v1/BUILD.bazel b/google/devtools/cloudbuild/v1/BUILD.bazel index ca54053f6..af02d0f46 100644 --- a/google/devtools/cloudbuild/v1/BUILD.bazel +++ b/google/devtools/cloudbuild/v1/BUILD.bazel @@ -24,6 +24,7 @@ load( "proto_library_with_info", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", "ruby_cloud_gapic_library", "ruby_gapic_assembly_pkg", "ruby_grpc_library", @@ -79,6 +80,7 @@ java_gapic_library( test_deps = [ ":cloudbuild_java_grpc", ], + transport = "grpc+rest", deps = [ ":cloudbuild_java_proto", "//google/api:api_java_proto", @@ -88,6 +90,7 @@ java_gapic_library( java_gapic_test( name = "cloudbuild_java_gapic_test_suite", test_classes = [ + "com.google.cloud.devtools.cloudbuild.v1.CloudBuildClientHttpJsonTest", "com.google.cloud.devtools.cloudbuild.v1.CloudBuildClientTest", ], runtime_deps = [":cloudbuild_java_gapic_test"], @@ -96,6 +99,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-cloudbuild-v1-java", + transport = "grpc+rest", deps = [ ":cloudbuild_java_gapic", ":cloudbuild_java_grpc", @@ -122,6 +126,7 @@ go_gapic_library( grpc_service_config = "cloudbuild_grpc_service_config.json", importpath = "cloud.google.com/go/cloudbuild/apiv1;cloudbuild", service_yaml = "cloudbuild_v1.yaml", + transport = "grpc+rest", deps = [ ":cloudbuild_go_proto", "//google/api:httpbody_go_proto", @@ -160,6 +165,17 @@ py_gapic_library( "warehouse-package-name=google-cloud-build", "python-gapic-namespace=google.cloud.devtools", ], + transport = "grpc", +) + +py_test( + name = "cloudbuild_py_gapic_test", + srcs = [ + "cloudbuild_py_gapic_pytest.py", + "cloudbuild_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":cloudbuild_py_gapic"], ) py_gapic_assembly_pkg( @@ -220,6 +236,7 @@ load( "nodejs_gapic_assembly_pkg", "nodejs_gapic_library", ) + nodejs_gapic_library( name = "cloudbuild_nodejs_gapic", package_name = "@google-cloud/cloudbuild", @@ -303,6 +320,7 @@ csharp_gapic_library( srcs = [":cloudbuild_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudbuild_grpc_service_config.json", + service_yaml = "cloudbuild_v1.yaml", deps = [ ":cloudbuild_csharp_grpc", ":cloudbuild_csharp_proto", diff --git a/google/devtools/clouddebugger/v2/BUILD.bazel b/google/devtools/clouddebugger/v2/BUILD.bazel index 820b53301..a7697cddf 100644 --- a/google/devtools/clouddebugger/v2/BUILD.bazel +++ b/google/devtools/clouddebugger/v2/BUILD.bazel @@ -66,6 +66,7 @@ java_gapic_library( test_deps = [ ":clouddebugger_java_grpc", ], + transport = "grpc+rest", deps = [ ":clouddebugger_java_proto", ], @@ -74,7 +75,9 @@ java_gapic_library( java_gapic_test( name = "clouddebugger_java_gapic_test_suite", test_classes = [ + "com.google.cloud.debugger.v2.Controller2ClientHttpJsonTest", "com.google.cloud.debugger.v2.Controller2ClientTest", + "com.google.cloud.debugger.v2.Debugger2ClientHttpJsonTest", "com.google.cloud.debugger.v2.Debugger2ClientTest", ], runtime_deps = [":clouddebugger_java_gapic_test"], @@ -83,6 +86,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-clouddebugger-v2-java", + transport = "grpc+rest", deps = [ ":clouddebugger_java_gapic", ":clouddebugger_java_grpc", @@ -119,6 +123,7 @@ go_gapic_library( grpc_service_config = "clouddebugger_grpc_service_config.json", importpath = "cloud.google.com/go/debugger/apiv2;clouddebugger", service_yaml = "clouddebugger_v2.yaml", + transport = "grpc+rest", deps = [ ":clouddebugger_go_proto", ], @@ -159,8 +164,20 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=debugger", ], + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "clouddebugger_py_gapic_test", +# srcs = [ +# "clouddebugger_py_gapic_pytest.py", +# "clouddebugger_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":clouddebugger_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "devtools-clouddebugger-v2-py", @@ -327,6 +344,7 @@ csharp_gapic_library( srcs = [":clouddebugger_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "clouddebugger_grpc_service_config.json", + service_yaml = "clouddebugger_v2.yaml", deps = [ ":clouddebugger_csharp_grpc", ":clouddebugger_csharp_proto", @@ -341,7 +359,7 @@ csharp_gapic_assembly_pkg( deps = [ ":clouddebugger_csharp_gapic", ":clouddebugger_csharp_grpc", - ":clouddebugger_csharp_proto" + ":clouddebugger_csharp_proto", ], ) diff --git a/google/devtools/clouddebugger/v2/controller.proto b/google/devtools/clouddebugger/v2/controller.proto index ba620653f..9793f214b 100644 --- a/google/devtools/clouddebugger/v2/controller.proto +++ b/google/devtools/clouddebugger/v2/controller.proto @@ -21,7 +21,6 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/devtools/clouddebugger/v2/data.proto"; -import "google/protobuf/empty.proto"; option csharp_namespace = "Google.Cloud.Debugger.V2"; option go_package = "google.golang.org/genproto/googleapis/devtools/clouddebugger/v2;clouddebugger"; diff --git a/google/devtools/clouddebugger/v2/data.proto b/google/devtools/clouddebugger/v2/data.proto index a9008b172..ca8a8dfe7 100644 --- a/google/devtools/clouddebugger/v2/data.proto +++ b/google/devtools/clouddebugger/v2/data.proto @@ -20,7 +20,6 @@ package google.devtools.clouddebugger.v2; import "google/devtools/source/v1/source_context.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Debugger.V2"; diff --git a/google/devtools/clouderrorreporting/v1beta1/BUILD.bazel b/google/devtools/clouderrorreporting/v1beta1/BUILD.bazel index d0ec5de10..91517c337 100644 --- a/google/devtools/clouderrorreporting/v1beta1/BUILD.bazel +++ b/google/devtools/clouderrorreporting/v1beta1/BUILD.bazel @@ -74,6 +74,7 @@ java_gapic_library( test_deps = [ ":clouderrorreporting_java_grpc", ], + transport = "grpc+rest", deps = [ ":clouderrorreporting_java_proto", ], @@ -82,8 +83,11 @@ java_gapic_library( java_gapic_test( name = "clouderrorreporting_java_gapic_test_suite", test_classes = [ + "com.google.devtools.clouderrorreporting.v1beta1.ErrorGroupServiceClientHttpJsonTest", "com.google.devtools.clouderrorreporting.v1beta1.ErrorGroupServiceClientTest", + "com.google.devtools.clouderrorreporting.v1beta1.ErrorStatsServiceClientHttpJsonTest", "com.google.devtools.clouderrorreporting.v1beta1.ErrorStatsServiceClientTest", + "com.google.devtools.clouderrorreporting.v1beta1.ReportErrorsServiceClientHttpJsonTest", "com.google.devtools.clouderrorreporting.v1beta1.ReportErrorsServiceClientTest", ], runtime_deps = [":clouderrorreporting_java_gapic_test"], @@ -92,6 +96,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-clouderrorreporting-v1beta1-java", + transport = "grpc+rest", deps = [ ":clouderrorreporting_java_gapic", ":clouderrorreporting_java_grpc", @@ -128,6 +133,7 @@ go_gapic_library( grpc_service_config = "errorreporting_grpc_service_config.json", importpath = "cloud.google.com/go/devtools/clouderrorreporting/apiv1beta1;clouderrorreporting", service_yaml = "clouderrorreporting_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":clouderrorreporting_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -158,6 +164,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -168,6 +175,17 @@ py_gapic_library( "python-gapic-name=errorreporting", "python-gapic-namespace=google.cloud", ], + transport = "grpc", +) + +py_test( + name = "clouderrorreporting_py_gapic_test", + srcs = [ + "clouderrorreporting_py_gapic_pytest.py", + "clouderrorreporting_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":clouderrorreporting_py_gapic"], ) # Open Source Packages @@ -282,7 +300,7 @@ ruby_cloud_gapic_library( ], grpc_service_config = "errorreporting_grpc_service_config.json", ruby_cloud_description = "The Error Reporting API provides a simple endpoint to report errors from your running service, and read access to error groups and their associated errors.", - ruby_cloud_title = "Cloud Error Reporting V1beta1", + ruby_cloud_title = "Error Reporting V1beta1", deps = [ ":clouderrorreporting_ruby_grpc", ":clouderrorreporting_ruby_proto", @@ -326,6 +344,7 @@ csharp_gapic_library( srcs = [":clouderrorreporting_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "errorreporting_grpc_service_config.json", + service_yaml = "clouderrorreporting_v1beta1.yaml", deps = [ ":clouderrorreporting_csharp_grpc", ":clouderrorreporting_csharp_proto", diff --git a/google/devtools/clouderrorreporting/v1beta1/common.proto b/google/devtools/clouderrorreporting/v1beta1/common.proto index e9bb321e4..8025368ca 100644 --- a/google/devtools/clouderrorreporting/v1beta1/common.proto +++ b/google/devtools/clouderrorreporting/v1beta1/common.proto @@ -18,7 +18,6 @@ package google.devtools.clouderrorreporting.v1beta1; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ErrorReporting.V1Beta1"; diff --git a/google/devtools/cloudprofiler/cloudprofiler.yaml b/google/devtools/cloudprofiler/cloudprofiler.yaml deleted file mode 100644 index 660be9e6c..000000000 --- a/google/devtools/cloudprofiler/cloudprofiler.yaml +++ /dev/null @@ -1,31 +0,0 @@ -type: google.api.Service -config_version: 3 -name: cloudprofiler.googleapis.com -title: Stackdriver Profiler API - -apis: -- name: google.devtools.cloudprofiler.v2.ProfilerService - -documentation: - summary: Manages continuous profiling information. - overview: |- - The Stackdriver Profiler API manages the continuous profiling information - collected in cloud environments like App Engine, GKE and GCE. - -backend: - rules: - - selector: google.devtools.cloudprofiler.v2.ProfilerService.CreateProfile - deadline: 3600.0 - - selector: google.devtools.cloudprofiler.v2.ProfilerService.CreateOfflineProfile - deadline: 20.0 - - selector: google.devtools.cloudprofiler.v2.ProfilerService.UpdateProfile - deadline: 20.0 - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/monitoring, - https://www.googleapis.com/auth/monitoring.write diff --git a/google/devtools/cloudprofiler/v2/BUILD.bazel b/google/devtools/cloudprofiler/v2/BUILD.bazel index ccd4f9e9b..9cffd879e 100644 --- a/google/devtools/cloudprofiler/v2/BUILD.bazel +++ b/google/devtools/cloudprofiler/v2/BUILD.bazel @@ -69,6 +69,7 @@ java_gapic_library( test_deps = [ ":cloudprofiler_java_grpc", ], + transport = "grpc+rest", deps = [ ":cloudprofiler_java_proto", ], @@ -77,6 +78,7 @@ java_gapic_library( java_gapic_test( name = "cloudprofiler_java_gapic_test_suite", test_classes = [ + "com.google.devtools.cloudprofiler.v2.ProfilerServiceClientHttpJsonTest", "com.google.devtools.cloudprofiler.v2.ProfilerServiceClientTest", ], runtime_deps = [":cloudprofiler_java_gapic_test"], @@ -85,6 +87,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-cloudprofiler-v2-java", + transport = "grpc+rest", deps = [ ":cloudprofiler_java_gapic", ":cloudprofiler_java_grpc", @@ -120,6 +123,7 @@ go_gapic_library( grpc_service_config = "cloudprofiler_grpc_service_config.json", importpath = "cloud.google.com/go/devtools/cloudprofiler/apiv2;cloudprofiler", service_yaml = "cloudprofiler_v2.yaml", + transport = "grpc+rest", deps = [ ":cloudprofiler_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -150,12 +154,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "cloudprofiler_py_gapic", srcs = [":cloudprofiler_proto"], grpc_service_config = "cloudprofiler_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "cloudprofiler_py_gapic_test", + srcs = [ + "cloudprofiler_py_gapic_pytest.py", + "cloudprofiler_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":cloudprofiler_py_gapic"], ) # Open Source Packages @@ -314,6 +330,7 @@ csharp_gapic_library( srcs = [":cloudprofiler_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudprofiler_grpc_service_config.json", + service_yaml = "cloudprofiler_v2.yaml", deps = [ ":cloudprofiler_csharp_grpc", ":cloudprofiler_csharp_proto", diff --git a/google/devtools/cloudtrace/v1/BUILD.bazel b/google/devtools/cloudtrace/v1/BUILD.bazel index f7a9f0e65..d4905e05a 100644 --- a/google/devtools/cloudtrace/v1/BUILD.bazel +++ b/google/devtools/cloudtrace/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":cloudtrace_java_grpc", ], + transport = "grpc+rest", deps = [ ":cloudtrace_java_proto", ], @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "cloudtrace_java_gapic_test_suite", test_classes = [ + "com.google.cloud.trace.v1.TraceServiceClientHttpJsonTest", "com.google.cloud.trace.v1.TraceServiceClientTest", ], runtime_deps = [":cloudtrace_java_gapic_test"], @@ -88,6 +90,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-cloudtrace-v1-java", + transport = "grpc+rest", deps = [ ":cloudtrace_java_gapic", ":cloudtrace_java_grpc", @@ -123,6 +126,7 @@ go_gapic_library( grpc_service_config = "cloudtrace_grpc_service_config.json", importpath = "cloud.google.com/go/devtools/cloudtrace/apiv1;cloudtrace", service_yaml = "cloudtrace_v1.yaml", + transport = "grpc+rest", deps = [ ":cloudtrace_go_proto", ], @@ -152,13 +156,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "cloudtrace_py_gapic", srcs = [":cloudtrace_proto"], grpc_service_config = "cloudtrace_grpc_service_config.json", - opt_args=["python-gapic-namespace=google.cloud", "python-gapic-name=trace"] + opt_args = [ + "python-gapic-namespace=google.cloud", + "python-gapic-name=trace", + ], + transport = "grpc", +) + +py_test( + name = "cloudtrace_py_gapic_test", + srcs = [ + "cloudtrace_py_gapic_pytest.py", + "cloudtrace_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":cloudtrace_py_gapic"], ) # Open Source Packages @@ -316,6 +335,7 @@ csharp_gapic_library( srcs = [":cloudtrace_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudtrace_grpc_service_config.json", + service_yaml = "cloudtrace_v1.yaml", deps = [ ":cloudtrace_csharp_grpc", ":cloudtrace_csharp_proto", diff --git a/google/devtools/cloudtrace/v1/trace.proto b/google/devtools/cloudtrace/v1/trace.proto index d3948fa1e..3ab071abc 100644 --- a/google/devtools/cloudtrace/v1/trace.proto +++ b/google/devtools/cloudtrace/v1/trace.proto @@ -18,7 +18,6 @@ package google.devtools.cloudtrace.v1; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "google/api/annotations.proto"; diff --git a/google/devtools/cloudtrace/v2/BUILD.bazel b/google/devtools/cloudtrace/v2/BUILD.bazel index ac9e641a2..d5db754c3 100644 --- a/google/devtools/cloudtrace/v2/BUILD.bazel +++ b/google/devtools/cloudtrace/v2/BUILD.bazel @@ -76,6 +76,7 @@ java_gapic_library( test_deps = [ ":cloudtrace_java_grpc", ], + transport = "grpc+rest", deps = [ ":cloudtrace_java_proto", ], @@ -84,6 +85,7 @@ java_gapic_library( java_gapic_test( name = "cloudtrace_java_gapic_test_suite", test_classes = [ + "com.google.cloud.trace.v2.TraceServiceClientHttpJsonTest", "com.google.cloud.trace.v2.TraceServiceClientTest", ], runtime_deps = [":cloudtrace_java_gapic_test"], @@ -92,6 +94,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-cloudtrace-v2-java", + transport = "grpc+rest", deps = [ ":cloudtrace_java_gapic", ":cloudtrace_java_grpc", @@ -128,6 +131,7 @@ go_gapic_library( grpc_service_config = "cloudtrace_grpc_service_config.json", importpath = "cloud.google.com/go/devtools/cloudtrace/apiv2;cloudtrace", service_yaml = "cloudtrace_v2.yaml", + transport = "grpc+rest", deps = [ ":cloudtrace_go_proto", ], @@ -157,13 +161,28 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "cloudtrace_py_gapic", srcs = [":cloudtrace_proto"], grpc_service_config = "cloudtrace_grpc_service_config.json", - opt_args=["python-gapic-namespace=google.cloud", "python-gapic-name=trace"] + opt_args = [ + "python-gapic-namespace=google.cloud", + "python-gapic-name=trace", + ], + transport = "grpc", +) + +py_test( + name = "cloudtrace_py_gapic_test", + srcs = [ + "cloudtrace_py_gapic_pytest.py", + "cloudtrace_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":cloudtrace_py_gapic"], ) # Open Source Packages @@ -321,6 +340,7 @@ csharp_gapic_library( srcs = [":cloudtrace_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "cloudtrace_grpc_service_config.json", + service_yaml = "cloudtrace_v2.yaml", deps = [ ":cloudtrace_csharp_grpc", ":cloudtrace_csharp_proto", diff --git a/google/devtools/cloudtrace/v2/trace.proto b/google/devtools/cloudtrace/v2/trace.proto index 66669aa69..2a3f1e31d 100644 --- a/google/devtools/cloudtrace/v2/trace.proto +++ b/google/devtools/cloudtrace/v2/trace.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Trace.V2"; option go_package = "google.golang.org/genproto/googleapis/devtools/cloudtrace/v2;cloudtrace"; diff --git a/google/devtools/cloudtrace/v2/tracing.proto b/google/devtools/cloudtrace/v2/tracing.proto index a25a0dd79..7e91d92d1 100644 --- a/google/devtools/cloudtrace/v2/tracing.proto +++ b/google/devtools/cloudtrace/v2/tracing.proto @@ -22,7 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/devtools/cloudtrace/v2/trace.proto"; import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Trace.V2"; option go_package = "google.golang.org/genproto/googleapis/devtools/cloudtrace/v2;cloudtrace"; diff --git a/google/devtools/containeranalysis/containeranalysis_v1beta1.yaml b/google/devtools/containeranalysis/containeranalysis_v1beta1.yaml deleted file mode 100644 index 2bc16a989..000000000 --- a/google/devtools/containeranalysis/containeranalysis_v1beta1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -type: google.api.Service -config_version: 3 -name: containeranalysis.googleapis.com -title: Container Analysis API - -apis: -- name: google.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1 -- name: grafeas.v1beta1.GrafeasV1Beta1 - -documentation: - summary: |- - An implementation of the Grafeas API, which stores, and enables querying and - retrieval of critical metadata about all of your software artifacts. - overview: |- - The Container Analysis API allows you to store and retrieve metadata for a - container resource. - -backend: - rules: - - selector: google.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1.SetIamPolicy - deadline: 30.0 - - selector: google.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1.GetIamPolicy - deadline: 30.0 - - selector: google.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1.TestIamPermissions - deadline: 30.0 - - selector: google.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1.GetScanConfig - deadline: 30.0 - - selector: google.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1.ListScanConfigs - deadline: 30.0 - - selector: google.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1.UpdateScanConfig - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.GetOccurrence - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.ListOccurrences - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.DeleteOccurrence - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.CreateOccurrence - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.BatchCreateOccurrences - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.UpdateOccurrence - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.GetOccurrenceNote - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.GetNote - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.ListNotes - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.DeleteNote - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.CreateNote - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.BatchCreateNotes - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.UpdateNote - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.ListNoteOccurrences - deadline: 30.0 - - selector: grafeas.v1beta1.GrafeasV1Beta1.GetVulnerabilityOccurrencesSummary - deadline: 30.0 - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/devtools/containeranalysis/v1/BUILD.bazel b/google/devtools/containeranalysis/v1/BUILD.bazel index 7fd45d4dc..1b9e2776f 100644 --- a/google/devtools/containeranalysis/v1/BUILD.bazel +++ b/google/devtools/containeranalysis/v1/BUILD.bazel @@ -88,6 +88,7 @@ java_gapic_library( ":containeranalysis_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":containeranalysis_java_proto", "//google/api:api_java_proto", @@ -99,6 +100,7 @@ java_gapic_library( java_gapic_test( name = "containeranalysis_java_gapic_test_suite", test_classes = [ + "com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClientHttpJsonTest", "com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClientTest", ], runtime_deps = [":containeranalysis_java_gapic_test"], @@ -107,6 +109,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-containeranalysis-v1-java", + transport = "grpc+rest", deps = [ ":containeranalysis_java_gapic", ":containeranalysis_java_grpc", @@ -177,6 +180,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -184,6 +188,22 @@ py_gapic_library( srcs = [":containeranalysis_proto"], grpc_service_config = "containeranalysis_grpc_service_config.json", opt_args = ["python-gapic-namespace=google.cloud.devtools"], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + "//google/iam/v1:policy_py_proto", + "//grafeas/v1:grafeas_py_proto", + ], +) + +py_test( + name = "containeranalysis_py_gapic_test", + srcs = [ + "containeranalysis_py_gapic_pytest.py", + "containeranalysis_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":containeranalysis_py_gapic"], ) # Open Source Packages @@ -300,7 +320,7 @@ ruby_cloud_gapic_library( "ruby-cloud-product-url=https://cloud.google.com/container-registry/docs/container-analysis", "ruby-cloud-api-id=containeranalysis.googleapis.com", "ruby-cloud-api-shortname=containeranalysis", - "ruby-cloud-extra-dependencies=grafeas-v1=> 0.0|< 2.a", + "ruby-cloud-extra-dependencies=grafeas-v1=>= 0.4|< 2.a", ], grpc_service_config = "containeranalysis_grpc_service_config.json", ruby_cloud_description = "The Container Analysis API is an implementation of Grafeas. It stores, and enables querying and retrieval of, critical metadata about all of your software artifacts.", @@ -348,6 +368,7 @@ csharp_gapic_library( srcs = [":containeranalysis_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "containeranalysis_grpc_service_config.json", + service_yaml = "containeranalysis_v1.yaml", deps = [ ":containeranalysis_csharp_grpc", ":containeranalysis_csharp_proto", diff --git a/google/devtools/containeranalysis/v1/containeranalysis.proto b/google/devtools/containeranalysis/v1/containeranalysis.proto index 2bfd52ccf..c1bda557c 100644 --- a/google/devtools/containeranalysis/v1/containeranalysis.proto +++ b/google/devtools/containeranalysis/v1/containeranalysis.proto @@ -22,9 +22,6 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; -import "google/protobuf/timestamp.proto"; -import "grafeas/v1/common.proto"; -import "grafeas/v1/grafeas.proto"; import "grafeas/v1/severity.proto"; option csharp_namespace = "Google.Cloud.DevTools.ContainerAnalysis.V1"; diff --git a/google/devtools/containeranalysis/v1beta1/BUILD.bazel b/google/devtools/containeranalysis/v1beta1/BUILD.bazel index b5899bf6e..3435eaf89 100644 --- a/google/devtools/containeranalysis/v1beta1/BUILD.bazel +++ b/google/devtools/containeranalysis/v1beta1/BUILD.bazel @@ -101,11 +101,12 @@ java_grpc_library( java_gapic_library( name = "containeranalysis_java_gapic", srcs = [":containeranalysis_proto_with_info"], - grpc_service_config = "containeranalysis_grpc_service_config.json", gapic_yaml = "containeranalysis_gapic.yaml", + grpc_service_config = "containeranalysis_grpc_service_config.json", test_deps = [ ":containeranalysis_java_grpc", ] + _JAVA_GRPC_SUBPACKAGE_DEPS, + transport = "grpc+rest", deps = [ ":containeranalysis_java_proto", "//google/iam/v1:iam_java_proto", @@ -115,7 +116,9 @@ java_gapic_library( java_gapic_test( name = "containeranalysis_java_gapic_test_suite", test_classes = [ + "com.google.cloud.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1ClientHttpJsonTest", "com.google.cloud.devtools.containeranalysis.v1beta1.ContainerAnalysisV1Beta1ClientTest", + "com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1ClientHttpJsonTest", "com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1ClientTest", ], runtime_deps = ["containeranalysis_java_gapic_test"], @@ -124,6 +127,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-containeranalysis-v1beta1-java", + transport = "grpc+rest", deps = [ ":containeranalysis_java_gapic", ":containeranalysis_java_grpc", @@ -159,7 +163,8 @@ go_gapic_library( srcs = [":containeranalysis_proto_with_info"], grpc_service_config = "containeranalysis_grpc_service_config.json", importpath = "cloud.google.com/go/containeranalysis/apiv1beta1;containeranalysis", - service_yaml = "//google/devtools/containeranalysis:containeranalysis_v1beta1.yaml", + service_yaml = "containeranalysis_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":containeranalysis_go_proto", "//google/devtools/containeranalysis/v1beta1/attestation:attestation_go_proto", diff --git a/google/devtools/remoteworkers/v1test2/BUILD.bazel b/google/devtools/remoteworkers/v1test2/BUILD.bazel index bdc20958f..1a8c7a235 100644 --- a/google/devtools/remoteworkers/v1test2/BUILD.bazel +++ b/google/devtools/remoteworkers/v1test2/BUILD.bazel @@ -77,6 +77,7 @@ java_gapic_library( test_deps = [ ":remoteworkers_java_grpc", ], + transport = "grpc+rest", deps = [ ":remoteworkers_java_proto", ], @@ -85,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "remoteworkers_java_gapic_test_suite", test_classes = [ + "com.google.cloud.devtools.remoteworkers.v1test2.BotsClientHttpJsonTest", "com.google.cloud.devtools.remoteworkers.v1test2.BotsClientTest", ], runtime_deps = [":remoteworkers_java_gapic_test"], @@ -93,6 +95,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-remoteworkers-v1test2-java", + transport = "grpc+rest", deps = [ ":remoteworkers_java_gapic", ":remoteworkers_java_grpc", @@ -129,6 +132,7 @@ go_gapic_library( grpc_service_config = "remoteworkers_grpc_service_config.json", importpath = "cloud.google.com/go/devtools/remoteworkers/apiv1test2;remoteworkers", service_yaml = "remoteworkers_v1beta2.yaml", + transport = "grpc+rest", deps = [ ":remoteworkers_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -165,6 +169,17 @@ py_gapic_library( name = "remoteworkers_py_gapic", srcs = [":remoteworkers_proto"], grpc_service_config = "remoteworkers_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "remoteworkers_py_gapic_test", + srcs = [ + "remoteworkers_py_gapic_pytest.py", + "remoteworkers_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":remoteworkers_py_gapic"], ) # Open Source Packages @@ -249,8 +264,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -268,7 +283,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "remoteworkers_ruby_gapic", - srcs = [":remoteworkers_proto_with_info",], + srcs = [":remoteworkers_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-remoteworkers-v1test2"], deps = [ ":remoteworkers_ruby_grpc", @@ -313,6 +328,7 @@ csharp_gapic_library( srcs = [":remoteworkers_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "remoteworkers_grpc_service_config.json", + service_yaml = "remoteworkers_v1beta2.yaml", deps = [ ":remoteworkers_csharp_grpc", ":remoteworkers_csharp_proto", diff --git a/google/devtools/remoteworkers/v1test2/bots.proto b/google/devtools/remoteworkers/v1test2/bots.proto index 8df50bcfe..fc5024bcd 100644 --- a/google/devtools/remoteworkers/v1test2/bots.proto +++ b/google/devtools/remoteworkers/v1test2/bots.proto @@ -98,7 +98,7 @@ service Bots { message BotSession { option (google.api.resource) = { type: "remoteworkers.googleapis.com/BotSession" - pattern: "{unknown_path=**}/botSessions/{bot_session}" + pattern: "{unknown_path}/botSessions/{bot_session}" }; // The bot session name, as selected by the server. Output only during a call @@ -316,7 +316,8 @@ message CreateBotSessionRequest { // Required. The farm resource. string parent = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The bot session to create. Server-assigned fields like name must be unset. + // Required. The bot session to create. Server-assigned fields like name must + // be unset. BotSession bot_session = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -333,7 +334,8 @@ message UpdateBotSessionRequest { // Required. The bot session resource to update. BotSession bot_session = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. The fields on the bot that should be updated. See the BotSession resource - // for which fields are updatable by which caller. - google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED]; + // Required. The fields on the bot that should be updated. See the BotSession + // resource for which fields are updatable by which caller. + google.protobuf.FieldMask update_mask = 3 + [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/devtools/source/v1/BUILD.bazel b/google/devtools/source/v1/BUILD.bazel index d1a4e04d0..bf47cabbb 100644 --- a/google/devtools/source/v1/BUILD.bazel +++ b/google/devtools/source/v1/BUILD.bazel @@ -21,7 +21,7 @@ proto_library( proto_library_with_info( name = "source_proto_with_info", deps = [ - ":source_proto", + ":source_proto", ], ) @@ -51,9 +51,10 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-devtools-source-v1-java", + transport = "grpc+rest", deps = [ - ":source_java_proto", ":source_java_grpc", + ":source_java_proto", ":source_proto", ], ) @@ -81,8 +82,8 @@ go_proto_library( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_library", "py_gapic_assembly_pkg", + "py_gapic_library", ) py_gapic_library( @@ -93,6 +94,7 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=source_context", ], + transport = "grpc", ) # Open Source Packages @@ -132,7 +134,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/devtools/source/v1/source_context.proto b/google/devtools/source/v1/source_context.proto index 90b02c928..48e01de10 100644 --- a/google/devtools/source/v1/source_context.proto +++ b/google/devtools/source/v1/source_context.proto @@ -17,8 +17,6 @@ syntax = "proto3"; package google.devtools.source.v1; -import "google/api/annotations.proto"; - option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.DevTools.Source.V1"; option go_package = "google.golang.org/genproto/googleapis/devtools/source/v1;source"; diff --git a/google/devtools/testing/v1/BUILD.bazel b/google/devtools/testing/v1/BUILD.bazel index 5c338254c..533fd2969 100644 --- a/google/devtools/testing/v1/BUILD.bazel +++ b/google/devtools/testing/v1/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":testing_java_grpc", ], + transport = "grpc+rest", deps = [ ":testing_java_proto", ], @@ -81,8 +82,11 @@ java_gapic_library( java_gapic_test( name = "testing_java_gapic_test_suite", test_classes = [ + "com.google.devtools.testing.v1.ApplicationDetailServiceClientHttpJsonTest", "com.google.devtools.testing.v1.ApplicationDetailServiceClientTest", + "com.google.devtools.testing.v1.TestEnvironmentDiscoveryServiceClientHttpJsonTest", "com.google.devtools.testing.v1.TestEnvironmentDiscoveryServiceClientTest", + "com.google.devtools.testing.v1.TestExecutionServiceClientHttpJsonTest", "com.google.devtools.testing.v1.TestExecutionServiceClientTest", ], runtime_deps = [":testing_java_gapic_test"], @@ -91,6 +95,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-devtools-testing-v1-java", + transport = "grpc+rest", deps = [ ":testing_java_gapic", ":testing_java_grpc", @@ -170,8 +175,20 @@ py_gapic_library( name = "testing_py_gapic", srcs = [":testing_proto"], grpc_service_config = "testing_grpc_service_config.json", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "testing_py_gapic_test", +# srcs = [ +# "testing_py_gapic_pytest.py", +# "testing_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":testing_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "devtools-testing-v1-py", @@ -256,8 +273,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) diff --git a/google/devtools/testing/v1/test_execution.proto b/google/devtools/testing/v1/test_execution.proto index eaea47001..57c580f5f 100644 --- a/google/devtools/testing/v1/test_execution.proto +++ b/google/devtools/testing/v1/test_execution.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.devtools.testing.v1; import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/api/client.proto"; diff --git a/google/example/library/v1/BUILD.bazel b/google/example/library/v1/BUILD.bazel index c61b45c46..d7dea8c6a 100644 --- a/google/example/library/v1/BUILD.bazel +++ b/google/example/library/v1/BUILD.bazel @@ -37,6 +37,7 @@ load( "proto_library_with_info", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", "ruby_cloud_gapic_library", "ruby_gapic_assembly_pkg", "ruby_grpc_library", @@ -88,6 +89,7 @@ java_gapic_library( test_deps = [ ":library_java_grpc", ], + transport = "grpc+rest", deps = [ ":library_java_proto", ], @@ -96,6 +98,7 @@ java_gapic_library( java_gapic_test( name = "library_java_gapic_test_suite", test_classes = [ + "com.google.cloud.example.library.v1.LibraryServiceClientHttpJsonTest", "com.google.cloud.example.library.v1.LibraryServiceClientTest", ], runtime_deps = [":library_java_gapic_test"], @@ -104,6 +107,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-example-library-v1-java", + transport = "grpc+rest", deps = [ ":library_java_gapic", ":library_java_grpc", @@ -129,6 +133,7 @@ go_gapic_library( importpath = "google.golang.org/google/example/library/v1;library", metadata = True, service_yaml = "//google/example/library:library_example_v1.yaml", + transport = "grpc+rest", deps = [ ":library_go_proto", ], @@ -156,6 +161,17 @@ py_gapic_library( name = "library_py_gapic", srcs = [":library_proto"], grpc_service_config = "library_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "library_py_gapic_test", + srcs = [ + "library_py_gapic_pytest.py", + "library_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":library_py_gapic"], ) # Open Source Packages @@ -274,6 +290,7 @@ csharp_gapic_library( srcs = [":library_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "library_grpc_service_config.json", + service_yaml = "//google/example/library:library_example_v1.yaml", deps = [ ":library_csharp_grpc", ":library_csharp_proto", diff --git a/google/example/showcase/v1/compliance.proto b/google/example/showcase/v1/compliance.proto deleted file mode 100644 index f29a038ce..000000000 --- a/google/example/showcase/v1/compliance.proto +++ /dev/null @@ -1,167 +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 google.example.showcase.v1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "ComplicanceProto"; -option java_package = "com.google.example.showcase.v1"; - -// This service is used to test that GAPICs can transcode proto3 requests to -// REST format correctly for various types of HTTP annotations...... -service Compliance { - option (google.api.default_host) = "showcase.googleapis.com"; - - // This method echoes the ComplianceData request. This method exercises - // sending the entire request object in the REST body. - rpc RepeatDataBody(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - post: "/v1/repeat:body" - body: "*" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending the a message-type field in the REST body. Per AIP-127, only - // top-level, non-repeated fields can be sent this way. - rpc RepeatDataBodyInfo(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - post: "/v1/repeat:bodyinfo" - body: "info" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending all request fields as query parameters. - rpc RepeatDataQuery(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1/repeat:query" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending some parameters as "simple" path variables (i.e., of the form - // "/bar/{foo}" rather than "/{foo=bar/*}"), and the rest as query parameters. - rpc RepeatDataSimplePath(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1/repeat/{info.f_string}/{info.f_int32}/{info.f_double}/{info.f_bool}:simplepath" - }; - } - - // Same as RepeatDataSimplePath, but with a path resource. - rpc RepeatDataPathResource(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/*}/bool/{info.f_bool}:pathresource" - }; - } - - // Same as RepeatDataSimplePath, but with a trailing resource. - rpc RepeatDataPathTrailingResource(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/**}:pathtrailingresource" - }; - } -} - -message RepeatRequest { - string name = 1; - - ComplianceData info = 2; -} - -message RepeatResponse { - ComplianceData info = 1; -} - -// ComplianceData is a message used for testing REST transcoding of -// different data types. -message ComplianceData { - string f_string = 1; - - int32 f_int32 = 2; - - sint32 f_sint32 = 3; - - sfixed32 f_sfixed32 = 4; - - uint32 f_uint32 = 5; - - fixed32 f_fixed32 = 6; - - int64 f_int64 = 7; - - sint64 f_sint64 = 8; - - sfixed64 f_sfixed64 = 9; - - uint64 f_uint64 = 10; - - fixed64 f_fixed64 = 11; - - double f_double = 12; - - float f_float = 13; - - bool f_bool = 14; - - bytes f_bytes = 15; - - ComplianceDataChild f_child = 16; - - optional string p_string = 17; - - optional int32 p_int32 = 18; - - optional double p_double = 19; - - optional bool p_bool = 20; - - optional ComplianceDataChild p_child = 21; -} - -message ComplianceDataChild { - string f_string = 1; - - float f_float = 2; - - double f_double = 3; - - bool f_bool = 4; - - ComplianceDataGrandchild f_child = 5; - - optional string p_string = 6; - - optional float p_float = 7; - - optional double p_double = 8; - - optional bool p_bool = 9; - - optional ComplianceDataGrandchild p_child = 10; -} - -message ComplianceDataGrandchild { - string f_string = 1; - - double f_double = 2; - - bool f_bool = 3; -} diff --git a/google/example/showcase/v1/echo.proto b/google/example/showcase/v1/echo.proto deleted file mode 100644 index d04edac76..000000000 --- a/google/example/showcase/v1/echo.proto +++ /dev/null @@ -1,229 +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 google.example.showcase.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/rpc/status.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "EchoProto"; -option java_package = "com.google.example.showcase.v1"; -option ruby_package = "Google::Example::Showcase::V1"; - -// This service is used showcase the four main types of rpcs - unary, server -// side streaming, client side streaming, and bidirectional streaming. This -// service also exposes methods that explicitly implement server delay, and -// paginated calls. Set the 'showcase-trailer' metadata key on any method -// to have the values echoed in the response trailers. -service Echo { - option (google.api.default_host) = "showcase.googleapis.com"; - - // This method simply echoes the request. This method showcases unary RPCs. - rpc Echo(EchoRequest) returns (EchoResponse) { - option (google.api.http) = { - post: "/v1/echo:echo" - body: "*" - }; - } - - // This method splits the given content into words and will pass each word - // back through the stream. This method showcases server-side streaming RPCs. - rpc Expand(ExpandRequest) returns (stream EchoResponse) { - option (google.api.http) = { - post: "/v1/echo:expand" - body: "*" - }; - option (google.api.method_signature) = "content,error"; - } - - // This method will collect the words given to it. When the stream is closed - // by the client, this method will return the a concatenation of the strings - // passed to it. This method showcases client-side streaming RPCs. - rpc Collect(stream EchoRequest) returns (EchoResponse) { - option (google.api.http) = { - post: "/v1/echo:collect" - body: "*" - }; - } - - // This method, upon receiving a request on the stream, will pass the same - // content back on the stream. This method showcases bidirectional - // streaming RPCs. - rpc Chat(stream EchoRequest) returns (stream EchoResponse) { - } - - // This is similar to the Expand method but instead of returning a stream of - // expanded words, this method returns a paged list of expanded words. - rpc PagedExpand(PagedExpandRequest) returns (PagedExpandResponse) { - option (google.api.http) = { - post: "/v1/echo:pagedExpand" - body: "*" - }; - } - - // This method will wait for the requested amount of time and then return. - // This method showcases how a client handles a request timeout. - rpc Wait(WaitRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1/echo:wait" - body: "*" - }; - option (google.longrunning.operation_info) = { - response_type: "WaitResponse" - metadata_type: "WaitMetadata" - }; - } - - // This method will block (wait) for the requested amount of time - // and then return the response or error. - // This method showcases how a client handles delays or retries. - rpc Block(BlockRequest) returns (BlockResponse) { - option (google.api.http) = { - post: "/v1/echo:block" - body: "*" - }; - } -} - -// The request message used for the Echo, Collect and Chat methods. -// If content or opt are set in this message then the request will succeed. -// If status is set in this message then the status will be returned as an -// error. -message EchoRequest { - // The response contents. - oneof response { - // The content to be echoed by the server. - string content = 1; - - // The error to be thrown by the server. - google.rpc.Status error = 2; - } - - // The severity to be echoed by the server. - Severity severity = 3; -} - -// A severity enum used to test enum capabilities in GAPIC surfaces. -enum Severity { - // The severity is unnecessary. - UNNECESSARY = 0; - - // The severity is necessary. - NECESSARY = 1; - - // Urgent. - URGENT = 2; - - // Critical. - CRITICAL = 3; -} - -// The response message for the Echo methods. -message EchoResponse { - // The content specified in the request. - string content = 1; - - // The severity specified in the request. - Severity severity = 2; -} - -// The request message for the Expand method. -message ExpandRequest { - // The content that will be split into words and returned on the stream. - string content = 1; - - // The error that is thrown after all words are sent on the stream. - google.rpc.Status error = 2; -} - -// The request for the PagedExpand method. -message PagedExpandRequest { - // Required. The string to expand. - string content = 1 [(google.api.field_behavior) = REQUIRED]; - - // The amount of words to returned in each page. - int32 page_size = 2; - - // The position of the page to be returned. - string page_token = 3; -} - -// The response for the PagedExpand method. -message PagedExpandResponse { - // The words that were expanded. - repeated EchoResponse responses = 1; - - // The next page token. - string next_page_token = 2; -} - -// The request for Wait method. -message WaitRequest { - // The ending time or duration. - oneof end { - // The time that this operation will complete. - google.protobuf.Timestamp end_time = 1; - - // The duration of this operation. - google.protobuf.Duration ttl = 4; - } - - // The response. - oneof response { - // The error that will be returned by the server. If this code is specified - // to be the OK rpc code, an empty response will be returned. - google.rpc.Status error = 2; - - // The response to be returned on operation completion. - WaitResponse success = 3; - } -} - -// The result of the Wait operation. -message WaitResponse { - // This content of the result. - string content = 1; -} - -// The request for Block method. -message BlockRequest { - // The response. - oneof response { - // The error that will be returned by the server. If this code is specified - // to be the OK rpc code, an empty response will be returned. - google.rpc.Status error = 2; - - // The response to be returned that will signify successful method call. - BlockResponse success = 3; - } - - // The amount of time to block before returning a response. - google.protobuf.Duration response_delay = 1; -} - -// The response for Block method. -message BlockResponse { - // This content can contain anything, the server will not depend on a value - // here. - string content = 1; -} diff --git a/google/example/showcase/v1/sequence.proto b/google/example/showcase/v1/sequence.proto deleted file mode 100644 index 806284412..000000000 --- a/google/example/showcase/v1/sequence.proto +++ /dev/null @@ -1,138 +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 google.example.showcase.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/duration.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "SequenceProto"; -option java_package = "com.google.example.showcase.v1"; -option ruby_package = "Google::Showcase::V1"; - -service SequenceService { - option (google.api.default_host) = "showcase.googleapis.com"; - - // Creates a sequence. - rpc CreateSequence(CreateSequenceRequest) returns (Sequence) { - option (google.api.http) = { - post: "/v1/sequences" - body: "sequence" - }; - option (google.api.method_signature) = "sequence"; - } - - // Retrieves a sequence. - rpc GetSequenceReport(GetSequenceReportRequest) returns (SequenceReport) { - option (google.api.http) = { - get: "/v1/{name=sequences/*/sequenceReport}" - }; - option (google.api.method_signature) = "name"; - } - - // Attempts a sequence. - rpc AttemptSequence(AttemptSequenceRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - post: "/v1/{name=sequences/*}" - body: "*" - }; - option (google.api.method_signature) = "name"; - } -} - -message Sequence { - option (google.api.resource) = { - type: "showcase.googleapis.com/Sequence" - pattern: "sequences/{sequence}" - }; - - // A server response to an RPC Attempt in a sequence. - message Response { - // The status to return for an individual attempt. - google.rpc.Status status = 1; - - // The amount of time to delay sending the response. - google.protobuf.Duration delay = 2; - } - - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Sequence of responses to return in order for each attempt. If empty, the - // default response is an immediate OK. - repeated Response responses = 2; -} - -message SequenceReport { - option (google.api.resource) = { - type: "showcase.googleapis.com/SequenceReport" - pattern: "sequences/{sequence}/sequenceReport" - }; - - // Contains metrics on individual RPC Attempts in a sequence. - message Attempt { - // The attempt number - starting at 0. - int32 attempt_number = 1; - - // The deadline dictated by the attempt to the server. - google.protobuf.Timestamp attempt_deadline = 2; - - // The time that the server responded to the RPC attempt. Used for - // calculating attempt_delay. - google.protobuf.Timestamp response_time = 3; - - // The server perceived delay between sending the last response and - // receiving this attempt. Used for validating attempt delay backoff. - google.protobuf.Duration attempt_delay = 4; - - // The status returned to the attempt. - google.rpc.Status status = 5; - } - - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The set of RPC attempts received by the server for a Sequence. - repeated Attempt attempts = 2; -} - -message CreateSequenceRequest { - Sequence sequence = 1; -} - -message AttemptSequenceRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "showcase.googleapis.com/Sequence" - } - ]; -} - -message GetSequenceReportRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "showcase.googleapis.com/SequenceReport" - } - ]; -} diff --git a/google/example/showcase/v1/showcase_grpc_service_config.json b/google/example/showcase/v1/showcase_grpc_service_config.json deleted file mode 100644 index a3de35032..000000000 --- a/google/example/showcase/v1/showcase_grpc_service_config.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - {"service": "google.example.showcase.v1.Echo"}, - {"service": "google.example.showcase.v1.Messaging"}, - {"service": "google.example.showcase.v1.SequenceService"} - ], - "timeout": "500000s" - }, - { - "name": [ - { - "service": "google.example.showcase.v1.Echo", - "method": "Echou" - }, - { - "service": "google.example.showcase.v1.Echo", - "method": "Expand" - }, - { - "service": "google.example.showcase.v1.Echo", - "method": "PagedExpand" - }, - { - "service": "google.example.showcase.v1.Messaging", - "method": "GetRoomie" - }, - { - "service": "google.example.showcase.v1.Messaging", - "method": "ListRooms" - }, - { - "service": "google.example.showcase.v1.Messaging", - "method": "GetBlurb" - }, - { - "service": "google.example.showcase.v1.Messaging", - "method": "ListBlurbs" - }, - { - "service": "google.example.showcase.v1.Messaging", - "method": "SearchBlurbs" - }, - { - "service": "google.example.showcase.v1.Messaging", - "method": "Connect" - }, - { - "service": "google.example.showcase.v1.SequenceService", - "method": "AttemptSequence" - } - ], - "retryPolicy": { - "maxAttempts": 3, - "maxBackoff": "3s", - "initialBackoff": "0.1s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "UNAVAILABLE", - "UNKNOWN" - ] - }, - "timeout": "10s" - }, - { - "name": [ - { - "service": "google.example.showcase.v1.Identity", - "method": "GetUser" - }, - { - "service": "google.example.showcase.v1.Identity", - "method": "ListUsers" - } - ], - "retryPolicy": { - "maxAttempts": 5, - "maxBackoff": "3s", - "initialBackoff": "0.2s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "UNAVAILABLE", - "UNKNOWN" - ] - }, - "timeout": "5s" - } - ] -} diff --git a/google/example/showcase/v1/testing.proto b/google/example/showcase/v1/testing.proto deleted file mode 100644 index 4f71fecb4..000000000 --- a/google/example/showcase/v1/testing.proto +++ /dev/null @@ -1,392 +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 google.example.showcase.v1; - -import "google/api/annotations.proto"; -import "google/api/resource.proto"; -import "google/protobuf/empty.proto"; -import "google/api/client.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "TestingProto"; -option java_package = "com.google.example.showcase.v1"; -option ruby_package = "Google::Showcase::V1"; - -// A service to facilitate running discrete sets of tests -// against Showcase. -service Testing { - option (google.api.default_host) = "showcase.googleapis.com"; - - // Creates a new testing session. - rpc CreateSession(CreateSessionRequest) returns (Session) { - option (google.api.http) = { - post: "/v1/sessions" - body: "session" - }; - } - - // Gets a testing session. - rpc GetSession(GetSessionRequest) returns (Session) { - option (google.api.http) = { - get: "/v1/{name=sessions/*}" - }; - } - - // Lists the current test sessions. - rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) { - option (google.api.http) = { - get: "/v1/sessions" - }; - } - - // Delete a test session. - rpc DeleteSession(DeleteSessionRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1/{name=sessions/*}" - }; - } - - // Report on the status of a session. - // This generates a report detailing which tests have been completed, - // and an overall rollup. - rpc ReportSession(ReportSessionRequest) returns (ReportSessionResponse) { - option (google.api.http) = { - post: "/v1/{name=sessions/*}:report" - }; - } - - // List the tests of a sessesion. - rpc ListTests(ListTestsRequest) returns (ListTestsResponse) { - option (google.api.http) = { - get: "/v1/{parent=sessions/*}/tests" - }; - } - - // Explicitly decline to implement a test. - // - // This removes the test from subsequent `ListTests` calls, and - // attempting to do the test will error. - // - // This method will error if attempting to delete a required test. - rpc DeleteTest(DeleteTestRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1/{name=sessions/*/tests/*}" - }; - } - - // Register a response to a test. - // - // In cases where a test involves registering a final answer at the - // end of the test, this method provides the means to do so. - rpc VerifyTest(VerifyTestRequest) returns (VerifyTestResponse) { - option (google.api.http) = { - post: "/v1/{name=sessions/*/tests/*}:check" - }; - } -} - -// A session is a suite of tests, generally being made in the context -// of testing code generation. -// -// A session defines tests it may expect, based on which version of the -// code generation spec is in use. -message Session { - option (google.api.resource) = { - type: "showcase.googleapis.com/Session" - pattern: "sessions/{session}" - }; - - // The specification versions understood by Showcase. - enum Version { - // Unspecified version. If passed on creation, the session will default - // to using the latest stable release. - VERSION_UNSPECIFIED = 0; - - // The latest v1. Currently, this is v1.0. - V1_LATEST = 1; - - // v1.0. (Until the spec is "GA", this will be a moving target.) - V1_0 = 2; - } - - // The name of the session. The ID must conform to ^[a-z]+$ - // If this is not provided, Showcase chooses one at random. - string name = 1; - - // Required. The version this session is using. - Version version = 2; -} - -// The request for the CreateSession method. -message CreateSessionRequest { - // The session to be created. - // Sessions are immutable once they are created (although they can - // be deleted). - Session session = 1; -} - -// The request for the GetSession method. -message GetSessionRequest { - // The session to be retrieved. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// The request for the ListSessions method. -message ListSessionsRequest { - // The maximum number of sessions to return per page. - int32 page_size = 1; - - // The page token, for retrieving subsequent pages. - string page_token = 2; -} - -// Response for the ListSessions method. -message ListSessionsResponse { - // The sessions being returned. - repeated Session sessions = 1; - - // The next page token, if any. - // An empty value here means the last page has been reached. - string next_page_token = 2; -} - -// Request for the DeleteSession method. -message DeleteSessionRequest { - // The session to be deleted. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// Request message for reporting on a session. -message ReportSessionRequest { - // The session to be reported on. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// Response message for reporting on a session. -message ReportSessionResponse { - // The topline state of the report. - enum Result { - RESULT_UNSPECIFIED = 0; - - // The session is complete, and everything passed. - PASSED = 1; - - // The session had an explicit failure. - FAILED = 2; - - // The session is incomplete. This is a failure response. - INCOMPLETE = 3; - } - - // The state of the report. - Result result = 1; - - // The test runs of this session. - repeated TestRun test_runs = 2; -} - -message Test { - option (google.api.resource) = { - type: "showcase.googleapis.com/Test" - pattern: "sessions/{session}/tests/{test}" - }; - - // A blueprint is an explicit definition of methods and requests that are - // needed to be made to test this specific test case. Ideally this would be - // represented by something more robust like CEL, but as of writing this, I am - // unsure if CEL is ready. - message Blueprint { - option (google.api.resource) = { - type: "showcase.googleapis.com/Blueprint" - pattern: "sessions/{session}/tests/{test}/blueprints/{blueprint}" - }; - - // A message representing a method invocation. - message Invocation { - // The fully qualified name of the showcase method to be invoked. - string method = 1; - - // The request to be made if a specific request is necessary. - bytes serialized_request = 2; - } - - // The name of this blueprint. - string name = 1; - - // A description of this blueprint. - string description = 2; - - // The initial request to trigger this test. - Invocation request = 3; - - // An ordered list of method calls that can be called to trigger this test. - repeated Invocation additional_requests = 4; - } - - // Whether or not a test is required, recommended, or optional. - enum ExpectationLevel { - EXPECTATION_LEVEL_UNSPECIFIED = 0; - - // This test is strictly required. - REQUIRED = 1; - - // This test is recommended. - // - // If a generator explicitly ignores a recommended test (see `DeleteTest`), - // then the report may still pass, but with a warning. - // - // If a generator skips a recommended test and does not explicitly - // express that intention, the report will fail. - RECOMMENDED = 2; - - // This test is optional. - // - // If a generator explicitly ignores an optional test (see `DeleteTest`), - // then the report may still pass, and no warning will be issued. - // - // If a generator skips an optional test and does not explicitly - // express that intention, the report may still pass, but with a - // warning. - OPTIONAL = 3; - } - - // The name of the test. - // The tests/* portion of the names are hard-coded, and do not change - // from session to session. - string name = 1; - - // The expectation level for this test. - ExpectationLevel expectation_level = 2; - - // A description of the test. - string description = 3; - - // The blueprints that will satisfy this test. There may be multiple - // blueprints that can signal to the server that this test case is being - // exercised. Although multiple blueprints are specified, only a single - // blueprint needs to be run to signal that the test case was exercised. - repeated Blueprint blueprints = 4; -} - -// An issue found in the test. -message Issue { - // The different potential types of issues. - enum Type { - TYPE_UNSPECIFIED = 0; - - // The test was never instrumented. - SKIPPED = 1; - - // The test was started but never confirmed. - PENDING = 2; - - // The test was instrumented, but Showcase got an unexpected - // value when the generator tried to confirm success. - INCORRECT_CONFIRMATION = 3; - } - - // Severity levels. - enum Severity { - SEVERITY_UNSPECIFIED = 0; - - // Errors. - ERROR = 1; - - // Warnings. - WARNING = 2; - } - - // The type of the issue. - Type type = 1; - - // The severity of the issue. - Severity severity = 2; - - // A description of the issue. - string description = 3; -} - -// The request for the ListTests method. -message ListTestsRequest { - // The session. - string parent = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; - - // The maximum number of tests to return per page. - int32 page_size = 2; - - // The page token, for retrieving subsequent pages. - string page_token = 3; -} - -// The response for the ListTests method. -message ListTestsResponse { - // The tests being returned. - repeated Test tests = 1; - - // The next page token, if any. - // An empty value here means the last page has been reached. - string next_page_token = 2; -} - -// A TestRun is the result of running a Test. -message TestRun { - // The name of the test. - // The tests/* portion of the names are hard-coded, and do not change - // from session to session. - string test = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; - - // An issue found with the test run. If empty, this test run was successful. - Issue issue = 2; -} - -// Request message for deleting a test. -message DeleteTestRequest { - // The test to be deleted. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; -} - -message VerifyTestRequest { - // The test to have an answer registered to it. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; - - // The answer from the test. - bytes answer = 2; - - // The answers from the test if multiple are to be checked - repeated bytes answers = 3; -} - -message VerifyTestResponse { - // An issue if check answer was unsuccessful. This will be empty if the check - // answer succeeded. - Issue issue = 1; -} diff --git a/google/example/showcase/v1beta1/compliance.proto b/google/example/showcase/v1beta1/compliance.proto deleted file mode 100644 index 62686524b..000000000 --- a/google/example/showcase/v1beta1/compliance.proto +++ /dev/null @@ -1,168 +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 google.example.showcase.v1beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "ComplicanceProto"; -option java_package = "com.google.example.showcase.v1beta1"; - -// This service is used to test that GAPICs can transcode proto3 requests to -// REST format correctly for various types of HTTP annotations. -service Compliance { - option (google.api.default_host) = "showcase.googleapis.com"; - - // This method echoes the ComplianceData request. This method exercises - // sending the entire request object in the REST body. - rpc RepeatDataBody(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - post: "/v1beta1/repeat:body" - body: "*" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending the a message-type field in the REST body. Per AIP-127, only - // top-level, non-repeated fields can be sent this way. - rpc RepeatDataBodyInfo(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - post: "/v1beta1/repeat:bodyinfo" - body: "info" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending all request fields as query parameters. - rpc RepeatDataQuery(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta1/repeat:query" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending some parameters as "simple" path variables (i.e., of the form - // "/bar/{foo}" rather than "/{foo=bar/*}"), and the rest as query parameters. - rpc RepeatDataSimplePath(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta1/repeat/{info.f_string}/{info.f_int32}/{info.f_double}/{info.f_bool}:simplepath" - }; - } - - // Same as RepeatDataSimplePath, but with a path resource. - rpc RepeatDataPathResource(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta1/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/*}/bool/{info.f_bool}:pathresource" - }; - } - - // Same as RepeatDataSimplePath, but with a trailing resource. - rpc RepeatDataPathTrailingResource(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta1/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/**}:pathtrailingresource" - }; - } -} - -message RepeatRequest { - string name = 1; - - ComplianceData info = 2; -} - -message RepeatResponse { - ComplianceData info = 1; -} - -// ComplianceData is a message used for testing REST transcoding of -// different data types. -// scalar types -message ComplianceData { - string f_string = 1; - - int32 f_int32 = 2; - - sint32 f_sint32 = 3; - - sfixed32 f_sfixed32 = 4; - - uint32 f_uint32 = 5; - - fixed32 f_fixed32 = 6; - - int64 f_int64 = 7; - - sint64 f_sint64 = 8; - - sfixed64 f_sfixed64 = 9; - - uint64 f_uint64 = 10; - - fixed64 f_fixed64 = 11; - - double f_double = 12; - - float f_float = 13; - - bool f_bool = 14; - - bytes f_bytes = 15; - - ComplianceDataChild f_child = 16; - - optional string p_string = 17; - - optional int32 p_int32 = 18; - - optional double p_double = 19; - - optional bool p_bool = 20; - - optional ComplianceDataChild p_child = 21; -} - -message ComplianceDataChild { - string f_string = 1; - - float f_float = 2; - - double f_double = 3; - - bool f_bool = 4; - - ComplianceDataGrandchild f_child = 5; - - optional string p_string = 6; - - optional float p_float = 7; - - optional double p_double = 8; - - optional bool p_bool = 9; - - optional ComplianceDataGrandchild p_child = 10; -} - -message ComplianceDataGrandchild { - string f_string = 1; - - double f_double = 2; - - bool f_bool = 3; -} diff --git a/google/example/showcase/v1beta1/echo.proto b/google/example/showcase/v1beta1/echo.proto deleted file mode 100644 index dfcf65f59..000000000 --- a/google/example/showcase/v1beta1/echo.proto +++ /dev/null @@ -1,229 +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 google.example.showcase.v1beta1; - -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/rpc/status.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "EchoProto"; -option java_package = "com.google.example.showcase.v1beta1"; -option ruby_package = "Google::Example::Showcase::V1Beta1"; - -// This service is used showcase the four main types of rpcs - unary, server -// side streaming, client side streaming, and bidirectional streaming. This -// service also exposes methods that explicitly implement server delay, and -// paginated calls. Set the 'showcase-trailer' metadata key on any method -// to have the values echoed in the response trailers. -service Echo { - option (google.api.default_host) = "showcase.googleapis.com"; - - // This method simply echoes the request. This method showcases unary RPCs. - rpc Echo(EchoRequest) returns (EchoResponse) { - option (google.api.http) = { - post: "/v1beta1/echo:echo" - body: "*" - }; - } - - // This method splits the given content into words and will pass each word - // back through the stream. This method showcases server-side streaming RPCs. - rpc Expand(ExpandRequest) returns (stream EchoResponse) { - option (google.api.http) = { - post: "/v1beta1/echo:expand" - body: "*" - }; - option (google.api.method_signature) = "content,error"; - } - - // This method will collect the words given to it. When the stream is closed - // by the client, this method will return the a concatenation of the strings - // passed to it. This method showcases client-side streaming RPCs. - rpc Collect(stream EchoRequest) returns (EchoResponse) { - option (google.api.http) = { - post: "/v1beta1/echo:collect" - body: "*" - }; - } - - // This method, upon receiving a request on the stream, will pass the same - // content back on the stream. This method showcases bidirectional - // streaming RPCs. - rpc Chat(stream EchoRequest) returns (stream EchoResponse) { - } - - // This is similar to the Expand method but instead of returning a stream of - // expanded words, this method returns a paged list of expanded words. - rpc PagedExpand(PagedExpandRequest) returns (PagedExpandResponse) { - option (google.api.http) = { - post: "/v1beta1/echo:pagedExpand" - body: "*" - }; - } - - // This method will wait for the requested amount of time and then return. - // This method showcases how a client handles a request timeout. - rpc Wait(WaitRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1beta1/echo:wait" - body: "*" - }; - option (google.longrunning.operation_info) = { - response_type: "WaitResponse" - metadata_type: "WaitMetadata" - }; - } - - // This method will block (wait) for the requested amount of time - // and then return the response or error. - // This method showcases how a client handles delays or retries. - rpc Block(BlockRequest) returns (BlockResponse) { - option (google.api.http) = { - post: "/v1beta1/echo:block" - body: "*" - }; - } -} - -// The request message used for the Echo, Collect and Chat methods. -// If content or opt are set in this message then the request will succeed. -// If status is set in this message then the status will be returned as an -// error. -message EchoRequest { - // The response contents. - oneof response { - // The content to be echoed by the server. - string content = 1; - - // The error to be thrown by the server. - google.rpc.Status error = 2; - } - - // The severity to be echoed by the server. - Severity severity = 3; -} - -// The response message for the Echo methods. -message EchoResponse { - // The content specified in the request. - string content = 1; - - // The severity specified in the request. - Severity severity = 2; -} - -// The request message for the Expand method. -message ExpandRequest { - // The content that will be split into words and returned on the stream. - string content = 1; - - // The error that is thrown after all words are sent on the stream. - google.rpc.Status error = 2; -} - -// The request for the PagedExpand method. -message PagedExpandRequest { - // Required. The string to expand. - string content = 1 [(google.api.field_behavior) = REQUIRED]; - - // The amount of words to returned in each page. - int32 page_size = 2; - - // The position of the page to be returned. - string page_token = 3; -} - -// The response for the PagedExpand method. -message PagedExpandResponse { - // The words that were expanded. - repeated EchoResponse responses = 1; - - // The next page token. - string next_page_token = 2; -} - -// The request for Wait method. -message WaitRequest { - // The ending time or duration. - oneof end { - // The time that this operation will complete. - google.protobuf.Timestamp end_time = 1; - - // The duration of this operation. - google.protobuf.Duration ttl = 4; - } - - // The response. - oneof response { - // The error that will be returned by the server. If this code is specified - // to be the OK rpc code, an empty response will be returned. - google.rpc.Status error = 2; - - // The response to be returned on operation completion. - WaitResponse success = 3; - } -} - -// The result of the Wait operation. -message WaitResponse { - // This content of the result. - string content = 1; -} - -// The request for Block method. -message BlockRequest { - // The amount of time to block before returning a response. - google.protobuf.Duration response_delay = 1; - - // The response. - oneof response { - // The error that will be returned by the server. If this code is specified - // to be the OK rpc code, an empty response will be returned. - google.rpc.Status error = 2; - - // The response to be returned that will signify successful method call. - BlockResponse success = 3; - } -} - -// The response for Block method. -message BlockResponse { - // This content can contain anything, the server will not depend on a value - // here. - string content = 1; -} - -// A severity enum used to test enum capabilities in GAPIC surfaces. -enum Severity { - // The severity is unnecessary. - UNNECESSARY = 0; - - // The severity is necessary. - NECESSARY = 1; - - // Urgent. - URGENT = 2; - - // Critical. - CRITICAL = 3; -} diff --git a/google/example/showcase/v1beta1/sequence.proto b/google/example/showcase/v1beta1/sequence.proto deleted file mode 100644 index 50aad86fb..000000000 --- a/google/example/showcase/v1beta1/sequence.proto +++ /dev/null @@ -1,138 +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 google.example.showcase.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/duration.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "SequenceProto"; -option java_package = "com.google.example.showcase.v1beta1"; -option ruby_package = "Google::Showcase::V1Beta1"; - -service SequenceService { - option (google.api.default_host) = "showcase.googleapis.com"; - - // Creates a sequence. - rpc CreateSequence(CreateSequenceRequest) returns (Sequence) { - option (google.api.http) = { - post: "/v1beta1/sequences" - body: "sequence" - }; - option (google.api.method_signature) = "sequence"; - } - - // Retrieves a sequence. - rpc GetSequenceReport(GetSequenceReportRequest) returns (SequenceReport) { - option (google.api.http) = { - get: "/v1beta1/{name=sequences/*/sequenceReport}" - }; - option (google.api.method_signature) = "name"; - } - - // Attempts a sequence. - rpc AttemptSequence(AttemptSequenceRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - post: "/v1beta1/{name=sequences/*}" - body: "*" - }; - option (google.api.method_signature) = "name"; - } -} - -message Sequence { - option (google.api.resource) = { - type: "showcase.googleapis.com/Sequence" - pattern: "sequences/{sequence}" - }; - - // A server response to an RPC Attempt in a sequence. - message Response { - // The status to return for an individual attempt. - google.rpc.Status status = 1; - - // The amount of time to delay sending the response. - google.protobuf.Duration delay = 2; - } - - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Sequence of responses to return in order for each attempt. If empty, the - // default response is an immediate OK. - repeated Response responses = 2; -} - -message SequenceReport { - option (google.api.resource) = { - type: "showcase.googleapis.com/SequenceReport" - pattern: "sequences/{sequence}/sequenceReport" - }; - - // Contains metrics on individual RPC Attempts in a sequence. - message Attempt { - // The attempt number - starting at 0. - int32 attempt_number = 1; - - // The deadline dictated by the attempt to the server. - google.protobuf.Timestamp attempt_deadline = 2; - - // The time that the server responded to the RPC attempt. Used for - // calculating attempt_delay. - google.protobuf.Timestamp response_time = 3; - - // The server perceived delay between sending the last response and - // receiving this attempt. Used for validating attempt delay backoff. - google.protobuf.Duration attempt_delay = 4; - - // The status returned to the attempt. - google.rpc.Status status = 5; - } - - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The set of RPC attempts received by the server for a Sequence. - repeated Attempt attempts = 2; -} - -message CreateSequenceRequest { - Sequence sequence = 1; -} - -message AttemptSequenceRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "showcase.googleapis.com/Sequence" - } - ]; -} - -message GetSequenceReportRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "showcase.googleapis.com/SequenceReport" - } - ]; -} diff --git a/google/example/showcase/v1beta1/showcase_grpc_service_config.json b/google/example/showcase/v1beta1/showcase_grpc_service_config.json deleted file mode 100644 index 36697a01d..000000000 --- a/google/example/showcase/v1beta1/showcase_grpc_service_config.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - {"service": "google.example.showcase.v1beta1.Echo"}, - {"service": "google.example.showcase.v1beta1.Messaging"}, - {"service": "google.example.showcase.v1beta1.SequenceService"} - ], - "timeout": "5s" - }, - { - "name": [ - { - "service": "google.example.showcase.v1beta1.Echo", - "method": "Echo" - }, - { - "service": "google.example.showcase.v1beta1.Echo", - "method": "Expand" - }, - { - "service": "google.example.showcase.v1beta1.Echo", - "method": "PagedExpand" - }, - { - "service": "google.example.showcase.v1beta1.Messaging", - "method": "GetRoom" - }, - { - "service": "google.example.showcase.v1beta1.Messaging", - "method": "ListRooms" - }, - { - "service": "google.example.showcase.v1beta1.Messaging", - "method": "GetBlurb" - }, - { - "service": "google.example.showcase.v1beta1.Messaging", - "method": "ListBlurbs" - }, - { - "service": "google.example.showcase.v1beta1.Messaging", - "method": "SearchBlurbs" - }, - { - "service": "google.example.showcase.v1beta1.Messaging", - "method": "Connect" - }, - { - "service": "google.example.showcase.v1beta1.SequenceService", - "method": "AttemptSequence" - } - ], - "retryPolicy": { - "maxAttempts": 3, - "maxBackoff": "3s", - "initialBackoff": "0.1s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "UNAVAILABLE", - "UNKNOWN" - ] - }, - "timeout": "10s" - }, - { - "name": [ - { - "service": "google.example.showcase.v1beta1.Identity", - "method": "GetUser" - }, - { - "service": "google.example.showcase.v1beta1.Identity", - "method": "ListUsers" - } - ], - "retryPolicy": { - "maxAttempts": 5, - "maxBackoff": "3s", - "initialBackoff": "0.2s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "UNAVAILABLE", - "UNKNOWN" - ] - }, - "timeout": "5s" - } - ] -} diff --git a/google/example/showcase/v1beta1/testing.proto b/google/example/showcase/v1beta1/testing.proto deleted file mode 100644 index ea7455bbf..000000000 --- a/google/example/showcase/v1beta1/testing.proto +++ /dev/null @@ -1,392 +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 google.example.showcase.v1beta1; - -import "google/api/annotations.proto"; -import "google/api/resource.proto"; -import "google/protobuf/empty.proto"; -import "google/api/client.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "TestingProto"; -option java_package = "com.google.example.showcase.v1beta1"; -option ruby_package = "Google::Showcase::V1Beta1"; - -// A service to facilitate running discrete sets of tests -// against Showcase. -service Testing { - option (google.api.default_host) = "showcase.googleapis.com"; - - // Creates a new testing session. - rpc CreateSession(CreateSessionRequest) returns (Session) { - option (google.api.http) = { - post: "/v1beta1/sessions" - body: "session" - }; - } - - // Gets a testing session. - rpc GetSession(GetSessionRequest) returns (Session) { - option (google.api.http) = { - get: "/v1beta1/{name=sessions/*}" - }; - } - - // Lists the current test sessions. - rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) { - option (google.api.http) = { - get: "/v1beta1/sessions" - }; - } - - // Delete a test session. - rpc DeleteSession(DeleteSessionRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta1/{name=sessions/*}" - }; - } - - // Report on the status of a session. - // This generates a report detailing which tests have been completed, - // and an overall rollup. - rpc ReportSession(ReportSessionRequest) returns (ReportSessionResponse) { - option (google.api.http) = { - post: "/v1beta1/{name=sessions/*}:report" - }; - } - - // List the tests of a sessesion. - rpc ListTests(ListTestsRequest) returns (ListTestsResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=sessions/*}/tests" - }; - } - - // Explicitly decline to implement a test. - // - // This removes the test from subsequent `ListTests` calls, and - // attempting to do the test will error. - // - // This method will error if attempting to delete a required test. - rpc DeleteTest(DeleteTestRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta1/{name=sessions/*/tests/*}" - }; - } - - // Register a response to a test. - // - // In cases where a test involves registering a final answer at the - // end of the test, this method provides the means to do so. - rpc VerifyTest(VerifyTestRequest) returns (VerifyTestResponse) { - option (google.api.http) = { - post: "/v1beta1/{name=sessions/*/tests/*}:check" - }; - } -} - -// A session is a suite of tests, generally being made in the context -// of testing code generation. -// -// A session defines tests it may expect, based on which version of the -// code generation spec is in use. -message Session { - option (google.api.resource) = { - type: "showcase.googleapis.com/Session" - pattern: "sessions/{session}" - }; - - // The specification versions understood by Showcase. - enum Version { - // Unspecified version. If passed on creation, the session will default - // to using the latest stable release. - VERSION_UNSPECIFIED = 0; - - // The latest v1. Currently, this is v1.0. - V1_LATEST = 1; - - // v1.0. (Until the spec is "GA", this will be a moving target.) - V1_0 = 2; - } - - // The name of the session. The ID must conform to ^[a-z]+$ - // If this is not provided, Showcase chooses one at random. - string name = 1; - - // Required. The version this session is using. - Version version = 2; -} - -// The request for the CreateSession method. -message CreateSessionRequest { - // The session to be created. - // Sessions are immutable once they are created (although they can - // be deleted). - Session session = 1; -} - -// The request for the GetSession method. -message GetSessionRequest { - // The session to be retrieved. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// The request for the ListSessions method. -message ListSessionsRequest { - // The maximum number of sessions to return per page. - int32 page_size = 1; - - // The page token, for retrieving subsequent pages. - string page_token = 2; -} - -// Response for the ListSessions method. -message ListSessionsResponse { - // The sessions being returned. - repeated Session sessions = 1; - - // The next page token, if any. - // An empty value here means the last page has been reached. - string next_page_token = 2; -} - -// Request for the DeleteSession method. -message DeleteSessionRequest { - // The session to be deleted. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// Request message for reporting on a session. -message ReportSessionRequest { - // The session to be reported on. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// Response message for reporting on a session. -message ReportSessionResponse { - // The topline state of the report. - enum Result { - RESULT_UNSPECIFIED = 0; - - // The session is complete, and everything passed. - PASSED = 1; - - // The session had an explicit failure. - FAILED = 2; - - // The session is incomplete. This is a failure response. - INCOMPLETE = 3; - } - - // The state of the report. - Result result = 1; - - // The test runs of this session. - repeated TestRun test_runs = 2; -} - -message Test { - option (google.api.resource) = { - type: "showcase.googleapis.com/Test" - pattern: "sessions/{session}/tests/{test}" - }; - - // A blueprint is an explicit definition of methods and requests that are - // needed to be made to test this specific test case. Ideally this would be - // represented by something more robust like CEL, but as of writing this, I am - // unsure if CEL is ready. - message Blueprint { - option (google.api.resource) = { - type: "showcase.googleapis.com/Blueprint" - pattern: "sessions/{session}/tests/{test}/blueprints/{blueprint}" - }; - - // A message representing a method invocation. - message Invocation { - // The fully qualified name of the showcase method to be invoked. - string method = 1; - - // The request to be made if a specific request is necessary. - bytes serialized_request = 2; - } - - // The name of this blueprint. - string name = 1; - - // A description of this blueprint. - string description = 2; - - // The initial request to trigger this test. - Invocation request = 3; - - // An ordered list of method calls that can be called to trigger this test. - repeated Invocation additional_requests = 4; - } - - // Whether or not a test is required, recommended, or optional. - enum ExpectationLevel { - EXPECTATION_LEVEL_UNSPECIFIED = 0; - - // This test is strictly required. - REQUIRED = 1; - - // This test is recommended. - // - // If a generator explicitly ignores a recommended test (see `DeleteTest`), - // then the report may still pass, but with a warning. - // - // If a generator skips a recommended test and does not explicitly - // express that intention, the report will fail. - RECOMMENDED = 2; - - // This test is optional. - // - // If a generator explicitly ignores an optional test (see `DeleteTest`), - // then the report may still pass, and no warning will be issued. - // - // If a generator skips an optional test and does not explicitly - // express that intention, the report may still pass, but with a - // warning. - OPTIONAL = 3; - } - - // The name of the test. - // The tests/* portion of the names are hard-coded, and do not change - // from session to session. - string name = 1; - - // The expectation level for this test. - ExpectationLevel expectation_level = 2; - - // A description of the test. - string description = 3; - - // The blueprints that will satisfy this test. There may be multiple - // blueprints that can signal to the server that this test case is being - // exercised. Although multiple blueprints are specified, only a single - // blueprint needs to be run to signal that the test case was exercised. - repeated Blueprint blueprints = 4; -} - -// An issue found in the test. -message Issue { - // The different potential types of issues. - enum Type { - TYPE_UNSPECIFIED = 0; - - // The test was never instrumented. - SKIPPED = 1; - - // The test was started but never confirmed. - PENDING = 2; - - // The test was instrumented, but Showcase got an unexpected - // value when the generator tried to confirm success. - INCORRECT_CONFIRMATION = 3; - } - - // Severity levels. - enum Severity { - SEVERITY_UNSPECIFIED = 0; - - // Errors. - ERROR = 1; - - // Warnings. - WARNING = 2; - } - - // The type of the issue. - Type type = 1; - - // The severity of the issue. - Severity severity = 2; - - // A description of the issue. - string description = 3; -} - -// The request for the ListTests method. -message ListTestsRequest { - // The session. - string parent = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; - - // The maximum number of tests to return per page. - int32 page_size = 2; - - // The page token, for retrieving subsequent pages. - string page_token = 3; -} - -// The response for the ListTests method. -message ListTestsResponse { - // The tests being returned. - repeated Test tests = 1; - - // The next page token, if any. - // An empty value here means the last page has been reached. - string next_page_token = 2; -} - -// A TestRun is the result of running a Test. -message TestRun { - // The name of the test. - // The tests/* portion of the names are hard-coded, and do not change - // from session to session. - string test = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; - - // An issue found with the test run. If empty, this test run was successful. - Issue issue = 2; -} - -// Request message for deleting a test. -message DeleteTestRequest { - // The test to be deleted. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; -} - -message VerifyTestRequest { - // The test to have an answer registered to it. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; - - // The answer from the test. - bytes answer = 2; - - // The answers from the test if multiple are to be checked - repeated bytes answers = 3; -} - -message VerifyTestResponse { - // An issue if check answer was unsuccessful. This will be empty if the check - // answer succeeded. - Issue issue = 1; -} diff --git a/google/example/showcase/v1beta2/compliance.proto b/google/example/showcase/v1beta2/compliance.proto deleted file mode 100644 index f2cf59019..000000000 --- a/google/example/showcase/v1beta2/compliance.proto +++ /dev/null @@ -1,168 +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 google.example.showcase.v1beta2; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "ComplicanceProto"; -option java_package = "com.google.example.showcase.v1beta2"; - -// This service is used to test that GAPICs can transcode proto3 requests to -// REST format correctly for various types of HTTP annotations... -service Compliance { - option (google.api.default_host) = "showcase.googleapis.com"; - - // This method echoes the ComplianceData request. This method exercises - // sending the entire request object in the REST body. - rpc RepeatDataBody(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - post: "/v1beta2/repeat:body" - body: "*" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending the a message-type field in the REST body. Per AIP-127, only - // top-level, non-repeated fields can be sent this way. - rpc RepeatDataBodyInfo(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - post: "/v1beta2/repeat:bodyinfo" - body: "info" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending all request fields as query parameters. - rpc RepeatDataQuery(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta2/repeat:query" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending some parameters as "simple" path variables (i.e., of the form - // "/bar/{foo}" rather than "/{foo=bar/*}"), and the rest as query parameters. - rpc RepeatDataSimplePath(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta2/repeat/{info.f_string}/{info.f_int32}/{info.f_double}/{info.f_bool}:simplepath" - }; - } - - // Same as RepeatDataSimplePath, but with a path resource. - rpc RepeatDataPathResource(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta2/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/*}/bool/{info.f_bool}:pathresource" - }; - } - - // Same as RepeatDataSimplePath, but with a trailing resource. - rpc RepeatDataPathTrailingResource(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta2/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/**}:pathtrailingresource" - }; - } -} - -message RepeatRequest { - string name = 1; - - ComplianceData info = 2; -} - -message RepeatResponse { - ComplianceData info = 1; -} - -// ComplianceData is a message used for testing REST transcoding of -// different data types. -// scalar types -message ComplianceData { - string f_string = 1; - - int32 f_int32 = 2; - - sint32 f_sint32 = 3; - - sfixed32 f_sfixed32 = 4; - - uint32 f_uint32 = 5; - - fixed32 f_fixed32 = 6; - - int64 f_int64 = 7; - - sint64 f_sint64 = 8; - - sfixed64 f_sfixed64 = 9; - - uint64 f_uint64 = 10; - - fixed64 f_fixed64 = 11; - - double f_double = 12; - - float f_float = 13; - - bool f_bool = 14; - - bytes f_bytes = 15; - - ComplianceDataChild f_child = 16; - - optional string p_string = 17; - - optional int32 p_int32 = 18; - - optional double p_double = 19; - - optional bool p_bool = 20; - - optional ComplianceDataChild p_child = 21; -} - -message ComplianceDataChild { - string f_string = 1; - - float f_float = 2; - - double f_double = 3; - - bool f_bool = 4; - - ComplianceDataGrandchild f_child = 5; - - optional string p_string = 6; - - optional float p_float = 7; - - optional double p_double = 8; - - optional bool p_bool = 9; - - optional ComplianceDataGrandchild p_child = 10; -} - -message ComplianceDataGrandchild { - string f_string = 1; - - double f_double = 2; - - bool f_bool = 3; -} diff --git a/google/example/showcase/v1beta2/echo.proto b/google/example/showcase/v1beta2/echo.proto deleted file mode 100644 index cc6ec6280..000000000 --- a/google/example/showcase/v1beta2/echo.proto +++ /dev/null @@ -1,229 +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 google.example.showcase.v1beta2; - -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/rpc/status.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "EchoProto"; -option java_package = "com.google.example.showcase.v1beta2"; -option ruby_package = "Google::Example::Showcase::V1bBeta2"; - -// This service is used showcase the four main types of rpcs - unary, server -// side streaming, client side streaming, and bidirectional streaming. This -// service also exposes methods that explicitly implement server delay, and -// paginated calls. Set the 'showcase-trailer' metadata key on any method -// to have the values echoed in the response trailers. -service Echo { - option (google.api.default_host) = "showcase.googleapis.com"; - - // This method simply echoes the request. This method showcases unary RPCs. - rpc Echo(EchoRequest) returns (EchoResponse) { - option (google.api.http) = { - post: "/v1beta2/echo:echo" - body: "*" - }; - } - - // This method splits the given content into words and will pass each word - // back through the stream. This method showcases server-side streaming RPCs. - rpc Expand(ExpandRequest) returns (stream EchoResponse) { - option (google.api.http) = { - post: "/v1beta2/echo:expand" - body: "*" - }; - option (google.api.method_signature) = "content,error"; - } - - // This method will collect the words given to it. When the stream is closed - // by the client, this method will return the a concatenation of the strings - // passed to it. This method showcases client-side streaming RPCs. - rpc Collect(stream EchoRequest) returns (EchoResponse) { - option (google.api.http) = { - post: "/v1beta2/echo:collect" - body: "*" - }; - } - - // This method, upon receiving a request on the stream, will pass the same - // content back on the stream. This method showcases bidirectional - // streaming RPCs. - rpc Chat(stream EchoRequest) returns (stream EchoResponse) { - } - - // This is similar to the Expand method but instead of returning a stream of - // expanded words, this method returns a paged list of expanded words. - rpc PagedExpand(PagedExpandRequest) returns (PagedExpandResponse) { - option (google.api.http) = { - post: "/v1beta2/echo:pagedExpand" - body: "*" - }; - } - - // This method will wait for the requested amount of time and then return. - // This method showcases how a client handles a request timeout. - rpc Wait(WaitRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1beta2/echo:wait" - body: "*" - }; - option (google.longrunning.operation_info) = { - response_type: "WaitResponse" - metadata_type: "WaitMetadata" - }; - } - - // This method will block (wait) for the requested amount of time - // and then return the response or error. - // This method showcases how a client handles delays or retries. - rpc Block(BlockRequest) returns (BlockResponse) { - option (google.api.http) = { - post: "/v1beta2/echo:block" - body: "*" - }; - } -} - -// The request message used for the Echo, Collect and Chat methods. -// If content or opt are set in this message then the request will succeed. -// If status is set in this message then the status will be returned as an -// error. -message EchoRequest { - // The response contents. - oneof response { - // The content to be echoed by the server. - string content = 1; - - // The error to be thrown by the server. - google.rpc.Status error = 2; - } - - // The severity to be echoed by the server. - Severity severity = 3; -} - -// The response message for the Echo methods. -message EchoResponse { - // The content specified in the request. - string content = 1; - - // The severity specified in the request. - Severity severity = 2; -} - -// The request message for the Expand method. -message ExpandRequest { - // The content that will be split into words and returned on the stream. - string content = 1; - - // The error that is thrown after all words are sent on the stream. - google.rpc.Status error = 2; -} - -// The request for the PagedExpand method. -message PagedExpandRequest { - // Required. The string to expand. - string content = 1 [(google.api.field_behavior) = REQUIRED]; - - // The amount of words to returned in each page. - int32 page_size = 2; - - // The position of the page to be returned. - string page_token = 3; -} - -// The response for the PagedExpand method. -message PagedExpandResponse { - // The words that were expanded. - repeated EchoResponse responses = 1; - - // The next page token. - string next_page_token = 2; -} - -// The request for Wait method. -message WaitRequest { - // The ending time or duration. - oneof end { - // The time that this operation will complete. - google.protobuf.Timestamp end_time = 1; - - // The duration of this operation. - google.protobuf.Duration ttl = 4; - } - - // The response. - oneof response { - // The error that will be returned by the server. If this code is specified - // to be the OK rpc code, an empty response will be returned. - google.rpc.Status error = 2; - - // The response to be returned on operation completion. - WaitResponse success = 3; - } -} - -// The result of the Wait operation. -message WaitResponse { - // This content of the result. - string content = 1; -} - -// The request for Block method. -message BlockRequest { - // The amount of time to block before returning a response. - google.protobuf.Duration response_delay = 1; - - // The response. - oneof response { - // The error that will be returned by the server. If this code is specified - // to be the OK rpc code, an empty response will be returned. - google.rpc.Status error = 2; - - // The response to be returned that will signify successful method call. - BlockResponse success = 3; - } -} - -// The response for Block method. -message BlockResponse { - // This content can contain anything, the server will not depend on a value - // here. - string content = 1; -} - -// A severity enum used to test enum capabilities in GAPIC surfaces. -enum Severity { - // The severity is unnecessary. - UNNECESSARY = 0; - - // The severity is necessary. - NECESSARY = 1; - - // Urgent. - URGENT = 2; - - // Critical. - CRITICAL = 3; -} diff --git a/google/example/showcase/v1beta2/sequence.proto b/google/example/showcase/v1beta2/sequence.proto deleted file mode 100644 index e127d33d6..000000000 --- a/google/example/showcase/v1beta2/sequence.proto +++ /dev/null @@ -1,138 +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 google.example.showcase.v1beta2; - -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/empty.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "SequenceProto"; -option java_package = "com.google.example.showcase.v1beta2s"; -option ruby_package = "Google::Showcase::V1Beta2"; - -service SequenceService { - option (google.api.default_host) = "showcase.googleapis.com"; - - // Creates a sequence. - rpc CreateSequence(CreateSequenceRequest) returns (Sequence) { - option (google.api.http) = { - post: "/v1beta2/sequences" - body: "sequence" - }; - option (google.api.method_signature) = "sequence"; - } - - // Retrieves a sequence. - rpc GetSequenceReport(GetSequenceReportRequest) returns (SequenceReport) { - option (google.api.http) = { - get: "/v1beta2/{name=sequences/*/sequenceReport}" - }; - option (google.api.method_signature) = "name"; - } - - // Attempts a sequence. - rpc AttemptSequence(AttemptSequenceRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - post: "/v1beta2/{name=sequences/*}" - body: "*" - }; - option (google.api.method_signature) = "name"; - } -} - -message Sequence { - option (google.api.resource) = { - type: "showcase.googleapis.com/Sequence" - pattern: "sequences/{sequence}" - }; - - // A server response to an RPC Attempt in a sequence. - message Response { - // The status to return for an individual attempt. - google.rpc.Status status = 1; - - // The amount of time to delay sending the response. - google.protobuf.Duration delay = 2; - } - - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Sequence of responses to return in order for each attempt. If empty, the - // default response is an immediate OK. - repeated Response responses = 2; -} - -message SequenceReport { - option (google.api.resource) = { - type: "showcase.googleapis.com/SequenceReport" - pattern: "sequences/{sequence}/sequenceReport" - }; - - // Contains metrics on individual RPC Attempts in a sequence. - message Attempt { - // The attempt number - starting at 0. - int32 attempt_number = 1; - - // The deadline dictated by the attempt to the server. - google.protobuf.Timestamp attempt_deadline = 2; - - // The time that the server responded to the RPC attempt. Used for - // calculating attempt_delay. - google.protobuf.Timestamp response_time = 3; - - // The server perceived delay between sending the last response and - // receiving this attempt. Used for validating attempt delay backoff. - google.protobuf.Duration attempt_delay = 4; - - // The status returned to the attempt. - google.rpc.Status status = 5; - } - - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The set of RPC attempts received by the server for a Sequence. - repeated Attempt attempts = 2; -} - -message CreateSequenceRequest { - Sequence sequence = 1; -} - -message AttemptSequenceRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "showcase.googleapis.com/Sequence" - } - ]; -} - -message GetSequenceReportRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "showcase.googleapis.com/SequenceReport" - } - ]; -} diff --git a/google/example/showcase/v1beta2/showcase_grpc_service_config.json b/google/example/showcase/v1beta2/showcase_grpc_service_config.json deleted file mode 100644 index faf8aacf0..000000000 --- a/google/example/showcase/v1beta2/showcase_grpc_service_config.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - {"service": "google.example.showcase.v1beta2.Echo"}, - {"service": "google.example.showcase.v1beta2.Messaging"}, - {"service": "google.example.showcase.v1beta2.SequenceService"} - ], - "timeout": "5s" - }, - { - "name": [ - { - "service": "google.example.showcase.v1beta2.Echo", - "method": "Echo" - }, - { - "service": "google.example.showcase.v1beta2.Echo", - "method": "Expand" - }, - { - "service": "google.example.showcase.v1beta2.Echo", - "method": "PagedExpand" - }, - { - "service": "google.example.showcase.v1beta2.Messaging", - "method": "GetRoom" - }, - { - "service": "google.example.showcase.v1beta2.Messaging", - "method": "ListRooms" - }, - { - "service": "google.example.showcase.v1beta2.Messaging", - "method": "GetBlurb" - }, - { - "service": "google.example.showcase.v1beta2.Messaging", - "method": "ListBlurbs" - }, - { - "service": "google.example.showcase.v1beta2.Messaging", - "method": "SearchBlurbs" - }, - { - "service": "google.example.showcase.v1beta2.Messaging", - "method": "Connect" - }, - { - "service": "google.example.showcase.v1beta2.SequenceService", - "method": "AttemptSequence" - } - ], - "retryPolicy": { - "maxAttempts": 3, - "maxBackoff": "3s", - "initialBackoff": "0.1s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "UNAVAILABLE", - "UNKNOWN" - ] - }, - "timeout": "10s" - }, - { - "name": [ - { - "service": "google.example.showcase.v1beta2.Identity", - "method": "GetUser" - }, - { - "service": "google.example.showcase.v1beta2.Identity", - "method": "ListUsers" - } - ], - "retryPolicy": { - "maxAttempts": 5, - "maxBackoff": "3s", - "initialBackoff": "0.2s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "UNAVAILABLE", - "UNKNOWN" - ] - }, - "timeout": "5s" - } - ] -} diff --git a/google/example/showcase/v1beta2/testing.proto b/google/example/showcase/v1beta2/testing.proto deleted file mode 100644 index ccdbf2cee..000000000 --- a/google/example/showcase/v1beta2/testing.proto +++ /dev/null @@ -1,392 +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 google.example.showcase.v1beta2; - -import "google/api/annotations.proto"; -import "google/api/resource.proto"; -import "google/protobuf/empty.proto"; -import "google/api/client.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "TestingProto"; -option java_package = "com.google.example.showcase.v1beta2"; -option ruby_package = "Google::Showcase::V1Beta2"; - -// A service to facilitate running discrete sets of tests -// against Showcase. -service Testing { - option (google.api.default_host) = "showcase.googleapis.com"; - - // Creates a new testing session. - rpc CreateSession(CreateSessionRequest) returns (Session) { - option (google.api.http) = { - post: "/v1beta2/sessions" - body: "session" - }; - } - - // Gets a testing session. - rpc GetSession(GetSessionRequest) returns (Session) { - option (google.api.http) = { - get: "/v1beta2/{name=sessions/*}" - }; - } - - // Lists the current test sessions. - rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) { - option (google.api.http) = { - get: "/v1beta2/sessions" - }; - } - - // Delete a test session. - rpc DeleteSession(DeleteSessionRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta2/{name=sessions/*}" - }; - } - - // Report on the status of a session. - // This generates a report detailing which tests have been completed, - // and an overall rollup. - rpc ReportSession(ReportSessionRequest) returns (ReportSessionResponse) { - option (google.api.http) = { - post: "/v1beta2/{name=sessions/*}:report" - }; - } - - // List the tests of a sessesion. - rpc ListTests(ListTestsRequest) returns (ListTestsResponse) { - option (google.api.http) = { - get: "/v1beta2/{parent=sessions/*}/tests" - }; - } - - // Explicitly decline to implement a test. - // - // This removes the test from subsequent `ListTests` calls, and - // attempting to do the test will error. - // - // This method will error if attempting to delete a required test. - rpc DeleteTest(DeleteTestRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta2/{name=sessions/*/tests/*}" - }; - } - - // Register a response to a test. - // - // In cases where a test involves registering a final answer at the - // end of the test, this method provides the means to do so. - rpc VerifyTest(VerifyTestRequest) returns (VerifyTestResponse) { - option (google.api.http) = { - post: "/v1beta2/{name=sessions/*/tests/*}:check" - }; - } -} - -// A session is a suite of tests, generally being made in the context -// of testing code generation. -// -// A session defines tests it may expect, based on which version of the -// code generation spec is in use. -message Session { - option (google.api.resource) = { - type: "showcase.googleapis.com/Session" - pattern: "sessions/{session}" - }; - - // The specification versions understood by Showcase. - enum Version { - // Unspecified version. If passed on creation, the session will default - // to using the latest stable release. - VERSION_UNSPECIFIED = 0; - - // The latest v1. Currently, this is v1.0. - V1_LATEST = 1; - - // v1.0. (Until the spec is "GA", this will be a moving target.) - V1_0 = 2; - } - - // The name of the session. The ID must conform to ^[a-z]+$ - // If this is not provided, Showcase chooses one at random. - string name = 1; - - // Required. The version this session is using. - Version version = 2; -} - -// The request for the CreateSession method. -message CreateSessionRequest { - // The session to be created. - // Sessions are immutable once they are created (although they can - // be deleted). - Session session = 1; -} - -// The request for the GetSession method. -message GetSessionRequest { - // The session to be retrieved. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// The request for the ListSessions method. -message ListSessionsRequest { - // The maximum number of sessions to return per page. - int32 page_size = 1; - - // The page token, for retrieving subsequent pages. - string page_token = 2; -} - -// Response for the ListSessions method. -message ListSessionsResponse { - // The sessions being returned. - repeated Session sessions = 1; - - // The next page token, if any. - // An empty value here means the last page has been reached. - string next_page_token = 2; -} - -// Request for the DeleteSession method. -message DeleteSessionRequest { - // The session to be deleted. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// Request message for reporting on a session. -message ReportSessionRequest { - // The session to be reported on. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// Response message for reporting on a session. -message ReportSessionResponse { - // The topline state of the report. - enum Result { - RESULT_UNSPECIFIED = 0; - - // The session is complete, and everything passed. - PASSED = 1; - - // The session had an explicit failure. - FAILED = 2; - - // The session is incomplete. This is a failure response. - INCOMPLETE = 3; - } - - // The state of the report. - Result result = 1; - - // The test runs of this session. - repeated TestRun test_runs = 2; -} - -message Test { - option (google.api.resource) = { - type: "showcase.googleapis.com/Test" - pattern: "sessions/{session}/tests/{test}" - }; - - // A blueprint is an explicit definition of methods and requests that are - // needed to be made to test this specific test case. Ideally this would be - // represented by something more robust like CEL, but as of writing this, I am - // unsure if CEL is ready. - message Blueprint { - option (google.api.resource) = { - type: "showcase.googleapis.com/Blueprint" - pattern: "sessions/{session}/tests/{test}/blueprints/{blueprint}" - }; - - // A message representing a method invocation. - message Invocation { - // The fully qualified name of the showcase method to be invoked. - string method = 1; - - // The request to be made if a specific request is necessary. - bytes serialized_request = 2; - } - - // The name of this blueprint. - string name = 1; - - // A description of this blueprint. - string description = 2; - - // The initial request to trigger this test. - Invocation request = 3; - - // An ordered list of method calls that can be called to trigger this test. - repeated Invocation additional_requests = 4; - } - - // Whether or not a test is required, recommended, or optional. - enum ExpectationLevel { - EXPECTATION_LEVEL_UNSPECIFIED = 0; - - // This test is strictly required. - REQUIRED = 1; - - // This test is recommended. - // - // If a generator explicitly ignores a recommended test (see `DeleteTest`), - // then the report may still pass, but with a warning. - // - // If a generator skips a recommended test and does not explicitly - // express that intention, the report will fail. - RECOMMENDED = 2; - - // This test is optional. - // - // If a generator explicitly ignores an optional test (see `DeleteTest`), - // then the report may still pass, and no warning will be issued. - // - // If a generator skips an optional test and does not explicitly - // express that intention, the report may still pass, but with a - // warning. - OPTIONAL = 3; - } - - // The name of the test. - // The tests/* portion of the names are hard-coded, and do not change - // from session to session. - string name = 1; - - // The expectation level for this test. - ExpectationLevel expectation_level = 2; - - // A description of the test. - string description = 3; - - // The blueprints that will satisfy this test. There may be multiple - // blueprints that can signal to the server that this test case is being - // exercised. Although multiple blueprints are specified, only a single - // blueprint needs to be run to signal that the test case was exercised. - repeated Blueprint blueprints = 4; -} - -// An issue found in the test. -message Issue { - // The different potential types of issues. - enum Type { - TYPE_UNSPECIFIED = 0; - - // The test was never instrumented. - SKIPPED = 1; - - // The test was started but never confirmed. - PENDING = 2; - - // The test was instrumented, but Showcase got an unexpected - // value when the generator tried to confirm success. - INCORRECT_CONFIRMATION = 3; - } - - // Severity levels. - enum Severity { - SEVERITY_UNSPECIFIED = 0; - - // Errors. - ERROR = 1; - - // Warnings. - WARNING = 2; - } - - // The type of the issue. - Type type = 1; - - // The severity of the issue. - Severity severity = 2; - - // A description of the issue. - string description = 3; -} - -// The request for the ListTests method. -message ListTestsRequest { - // The session. - string parent = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; - - // The maximum number of tests to return per page. - int32 page_size = 2; - - // The page token, for retrieving subsequent pages. - string page_token = 3; -} - -// The response for the ListTests method. -message ListTestsResponse { - // The tests being returned. - repeated Test tests = 1; - - // The next page token, if any. - // An empty value here means the last page has been reached. - string next_page_token = 2; -} - -// A TestRun is the result of running a Test. -message TestRun { - // The name of the test. - // The tests/* portion of the names are hard-coded, and do not change - // from session to session. - string test = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; - - // An issue found with the test run. If empty, this test run was successful. - Issue issue = 2; -} - -// Request message for deleting a test. -message DeleteTestRequest { - // The test to be deleted. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; -} - -message VerifyTestRequest { - // The test to have an answer registered to it. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; - - // The answer from the test. - bytes answer = 2; - - // The answers from the test if multiple are to be checked - repeated bytes answers = 3; -} - -message VerifyTestResponse { - // An issue if check answer was unsuccessful. This will be empty if the check - // answer succeeded. - Issue issue = 1; -} diff --git a/google/example/showcase/v1beta3/compliance.proto b/google/example/showcase/v1beta3/compliance.proto deleted file mode 100644 index 429d9607d..000000000 --- a/google/example/showcase/v1beta3/compliance.proto +++ /dev/null @@ -1,167 +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 google.example.showcase.v1beta3; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "ComplicanceProto"; -option java_package = "com.google.example.showcase.v1beta3"; - -// This service is used to test that GAPICs can transcode proto3 requests to -// REST format correctly for various types of HTTP annotations...... -service Compliance { - option (google.api.default_host) = "showcase.googleapis.com"; - - // This method echoes the ComplianceData request. This method exercises - // sending the entire request object in the REST body. - rpc RepeatDataBody(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - post: "/v1beta3/repeat:body" - body: "*" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending the a message-type field in the REST body. Per AIP-127, only - // top-level, non-repeated fields can be sent this way. - rpc RepeatDataBodyInfo(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - post: "/v1beta3/repeat:bodyinfo" - body: "info" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending all request fields as query parameters. - rpc RepeatDataQuery(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta3/repeat:query" - }; - } - - // This method echoes the ComplianceData request. This method exercises - // sending some parameters as "simple" path variables (i.e., of the form - // "/bar/{foo}" rather than "/{foo=bar/*}"), and the rest as query parameters. - rpc RepeatDataSimplePath(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta3/repeat/{info.f_string}/{info.f_int32}/{info.f_double}/{info.f_bool}:simplepath" - }; - } - - // Same as RepeatDataSimplePath, but with a path resource. - rpc RepeatDataPathResource(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta3/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/*}/bool/{info.f_bool}:pathresource" - }; - } - - // Same as RepeatDataSimplePath, but with a trailing resource. - rpc RepeatDataPathTrailingResource(RepeatRequest) returns (RepeatResponse) { - option (google.api.http) = { - get: "/v1beta3/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/**}:pathtrailingresource" - }; - } -} - -message RepeatRequest { - string name = 1; - - ComplianceData info = 2; -} - -message RepeatResponse { - ComplianceData info = 1; -} - -// ComplianceData is a message used for testing REST transcoding of -// different data types. -message ComplianceData { - string f_string = 1; - - int32 f_int32 = 2; - - sint32 f_sint32 = 3; - - sfixed32 f_sfixed32 = 4; - - uint32 f_uint32 = 5; - - fixed32 f_fixed32 = 6; - - int64 f_int64 = 7; - - sint64 f_sint64 = 8; - - sfixed64 f_sfixed64 = 9; - - uint64 f_uint64 = 10; - - fixed64 f_fixed64 = 11; - - double f_double = 12; - - float f_float = 13; - - bool f_bool = 14; - - bytes f_bytes = 15; - - ComplianceDataChild f_child = 16; - - optional string p_string = 17; - - optional int32 p_int32 = 18; - - optional double p_double = 19; - - optional bool p_bool = 20; - - optional ComplianceDataChild p_child = 21; -} - -message ComplianceDataChild { - string f_string = 1; - - float f_float = 2; - - double f_double = 3; - - bool f_bool = 4; - - ComplianceDataGrandchild f_child = 5; - - optional string p_string = 6; - - optional float p_float = 7; - - optional double p_double = 8; - - optional bool p_bool = 9; - - optional ComplianceDataGrandchild p_child = 10; -} - -message ComplianceDataGrandchild { - string f_string = 1; - - double f_double = 2; - - bool f_bool = 3; -} diff --git a/google/example/showcase/v1beta3/echo.proto b/google/example/showcase/v1beta3/echo.proto deleted file mode 100644 index f4ec11310..000000000 --- a/google/example/showcase/v1beta3/echo.proto +++ /dev/null @@ -1,229 +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 google.example.showcase.v1beta3; - -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/rpc/status.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "EchoProto"; -option java_package = "com.google.example.showcase.v1beta3"; -option ruby_package = "Google::Example::Showcase::V1beta3"; - -// This service is used showcase the four main types of rpcs - unary, server -// side streaming, client side streaming, and bidirectional streaming. This -// service also exposes methods that explicitly implement server delay, and -// paginated calls. Set the 'showcase-trailer' metadata key on any method -// to have the values echoed in the response trailers. -service Echo { - option (google.api.default_host) = "showcase.googleapis.com"; - - // This method simply echoes the request. This method showcases unary RPCs. - rpc Echo(EchoRequest) returns (EchoResponse) { - option (google.api.http) = { - post: "/v1beta3/echo:echo" - body: "*" - }; - } - - // This method splits the given content into words and will pass each word - // back through the stream. This method showcases server-side streaming RPCs. - rpc Expand(ExpandRequest) returns (stream EchoResponse) { - option (google.api.http) = { - post: "/v1beta3/echo:expand" - body: "*" - }; - option (google.api.method_signature) = "content,error"; - } - - // This method will collect the words given to it. When the stream is closed - // by the client, this method will return the a concatenation of the strings - // passed to it. This method showcases client-side streaming RPCs. - rpc Collect(stream EchoRequest) returns (EchoResponse) { - option (google.api.http) = { - post: "/v1beta3/echo:collect" - body: "*" - }; - } - - // This method, upon receiving a request on the stream, will pass the same - // content back on the stream. This method showcases bidirectional - // streaming RPCs. - rpc Chat(stream EchoRequest) returns (stream EchoResponse) { - } - - // This is similar to the Expand method but instead of returning a stream of - // expanded words, this method returns a paged list of expanded words. - rpc PagedExpand(PagedExpandRequest) returns (PagedExpandResponse) { - option (google.api.http) = { - post: "/v1beta3/echo:pagedExpand" - body: "*" - }; - } - - // This method will wait for the requested amount of time and then return. - // This method showcases how a client handles a request timeout. - rpc Wait(WaitRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1beta3/echo:wait" - body: "*" - }; - option (google.longrunning.operation_info) = { - response_type: "WaitResponse" - metadata_type: "WaitMetadata" - }; - } - - // This method will block (wait) for the requested amount of time - // and then return the response or error. - // This method showcases how a client handles delays or retries. - rpc Block(BlockRequest) returns (BlockResponse) { - option (google.api.http) = { - post: "/v1beta3/echo:block" - body: "*" - }; - } -} - -// The request message used for the Echo, Collect and Chat methods. -// If content or opt are set in this message then the request will succeed. -// If status is set in this message then the status will be returned as an -// error. -message EchoRequest { - // The response contents. - oneof response { - // The content to be echoed by the server. - string content = 1; - - // The error to be thrown by the server. - google.rpc.Status error = 2; - } - - // The severity to be echoed by the server. - Severity severity = 3; -} - -// A severity enum used to test enum capabilities in GAPIC surfaces. -enum Severity { - // The severity is unnecessary. - UNNECESSARY = 0; - - // The severity is necessary. - NECESSARY = 1; - - // Urgent. - URGENT = 2; - - // Critical. - CRITICAL = 3; -} - -// The response message for the Echo methods. -message EchoResponse { - // The content specified in the request. - string content = 1; - - // The severity specified in the request. - Severity severity = 2; -} - -// The request message for the Expand method. -message ExpandRequest { - // The content that will be split into words and returned on the stream. - string content = 1; - - // The error that is thrown after all words are sent on the stream. - google.rpc.Status error = 2; -} - -// The request for the PagedExpand method. -message PagedExpandRequest { - // Required. The string to expand. - string content = 1 [(google.api.field_behavior) = REQUIRED]; - - // The amount of words to returned in each page. - int32 page_size = 2; - - // The position of the page to be returned. - string page_token = 3; -} - -// The response for the PagedExpand method. -message PagedExpandResponse { - // The words that were expanded. - repeated EchoResponse responses = 1; - - // The next page token. - string next_page_token = 2; -} - -// The request for Wait method. -message WaitRequest { - // The ending time or duration. - oneof end { - // The time that this operation will complete. - google.protobuf.Timestamp end_time = 1; - - // The duration of this operation. - google.protobuf.Duration ttl = 4; - } - - // The response. - oneof response { - // The error that will be returned by the server. If this code is specified - // to be the OK rpc code, an empty response will be returned. - google.rpc.Status error = 2; - - // The response to be returned on operation completion. - WaitResponse success = 3; - } -} - -// The result of the Wait operation. -message WaitResponse { - // This content of the result. - string content = 1; -} - -// The request for Block method. -message BlockRequest { - // The response. - oneof response { - // The error that will be returned by the server. If this code is specified - // to be the OK rpc code, an empty response will be returned. - google.rpc.Status error = 2; - - // The response to be returned that will signify successful method call. - BlockResponse success = 3; - } - - // The amount of time to block before returning a response. - google.protobuf.Duration response_delay = 1; -} - -// The response for Block method. -message BlockResponse { - // This content can contain anything, the server will not depend on a value - // here. - string content = 1; -} diff --git a/google/example/showcase/v1beta3/sequence.proto b/google/example/showcase/v1beta3/sequence.proto deleted file mode 100644 index d3d96233c..000000000 --- a/google/example/showcase/v1beta3/sequence.proto +++ /dev/null @@ -1,138 +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 google.example.showcase.v1beta3; - -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/empty.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "SequenceProto"; -option java_package = "com.google.example.showcase.v1beta3"; -option ruby_package = "Google::Showcase::V1beta3"; - -service SequenceService { - option (google.api.default_host) = "showcase.googleapis.com"; - - // Creates a sequence. - rpc CreateSequence(CreateSequenceRequest) returns (Sequence) { - option (google.api.http) = { - post: "/v1beta3/sequences" - body: "sequence" - }; - option (google.api.method_signature) = "sequence"; - } - - // Retrieves a sequence. - rpc GetSequenceReport(GetSequenceReportRequest) returns (SequenceReport) { - option (google.api.http) = { - get: "/v1beta3/{name=sequences/*/sequenceReport}" - }; - option (google.api.method_signature) = "name"; - } - - // Attempts a sequence. - rpc AttemptSequence(AttemptSequenceRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - post: "/v1beta3/{name=sequences/*}" - body: "*" - }; - option (google.api.method_signature) = "name"; - } -} - -message Sequence { - option (google.api.resource) = { - type: "showcase.googleapis.com/Sequence" - pattern: "sequences/{sequence}" - }; - - // A server response to an RPC Attempt in a sequence. - message Response { - // The status to return for an individual attempt. - google.rpc.Status status = 1; - - // The amount of time to delay sending the response. - google.protobuf.Duration delay = 2; - } - - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Sequence of responses to return in order for each attempt. If empty, the - // default response is an immediate OK. - repeated Response responses = 2; -} - -message SequenceReport { - option (google.api.resource) = { - type: "showcase.googleapis.com/SequenceReport" - pattern: "sequences/{sequence}/sequenceReport" - }; - - // Contains metrics on individual RPC Attempts in a sequence. - message Attempt { - // The attempt number - starting at 0. - int32 attempt_number = 1; - - // The deadline dictated by the attempt to the server. - google.protobuf.Timestamp attempt_deadline = 2; - - // The time that the server responded to the RPC attempt. Used for - // calculating attempt_delay. - google.protobuf.Timestamp response_time = 3; - - // The server perceived delay between sending the last response and - // receiving this attempt. Used for validating attempt delay backoff. - google.protobuf.Duration attempt_delay = 4; - - // The status returned to the attempt. - google.rpc.Status status = 5; - } - - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The set of RPC attempts received by the server for a Sequence. - repeated Attempt attempts = 2; -} - -message CreateSequenceRequest { - Sequence sequence = 1; -} - -message AttemptSequenceRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "showcase.googleapis.com/Sequence" - } - ]; -} - -message GetSequenceReportRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "showcase.googleapis.com/SequenceReport" - } - ]; -} diff --git a/google/example/showcase/v1beta3/showcase_grpc_service_config.json b/google/example/showcase/v1beta3/showcase_grpc_service_config.json deleted file mode 100644 index a79dea282..000000000 --- a/google/example/showcase/v1beta3/showcase_grpc_service_config.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - {"service": "google.example.showcase.v1beta3.Echo"}, - {"service": "google.example.showcase.v1beta3.Messaging"}, - {"service": "google.example.showcase.v1beta3.SequenceService"} - ], - "timeout": "500s" - }, - { - "name": [ - { - "service": "google.example.showcase.v1beta3.Echo", - "method": "Echo" - }, - { - "service": "google.example.showcase.v1beta3.Echo", - "method": "Expand" - }, - { - "service": "google.example.showcase.v1beta3.Echo", - "method": "PagedExpand" - }, - { - "service": "google.example.showcase.v1beta3.Messaging", - "method": "GetRoom" - }, - { - "service": "google.example.showcase.v1beta3.Messaging", - "method": "ListRooms" - }, - { - "service": "google.example.showcase.v1beta3.Messaging", - "method": "GetBlurb" - }, - { - "service": "google.example.showcase.v1beta3.Messaging", - "method": "ListBlurbs" - }, - { - "service": "google.example.showcase.v1beta3.Messaging", - "method": "SearchBlurbs" - }, - { - "service": "google.example.showcase.v1beta3.Messaging", - "method": "Connect" - }, - { - "service": "google.example.showcase.v1beta3.SequenceService", - "method": "AttemptSequence" - } - ], - "retryPolicy": { - "maxAttempts": 3, - "maxBackoff": "3s", - "initialBackoff": "0.1s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "UNAVAILABLE", - "UNKNOWN" - ] - }, - "timeout": "10s" - }, - { - "name": [ - { - "service": "google.example.showcase.v1beta3.Identity", - "method": "GetUser" - }, - { - "service": "google.example.showcase.v1beta3.Identity", - "method": "ListUsers" - } - ], - "retryPolicy": { - "maxAttempts": 5, - "maxBackoff": "3s", - "initialBackoff": "0.2s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "UNAVAILABLE", - "UNKNOWN" - ] - }, - "timeout": "5s" - } - ] -} diff --git a/google/example/showcase/v1beta3/testing.proto b/google/example/showcase/v1beta3/testing.proto deleted file mode 100644 index 1325ab79d..000000000 --- a/google/example/showcase/v1beta3/testing.proto +++ /dev/null @@ -1,392 +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 google.example.showcase.v1beta3; - -import "google/api/annotations.proto"; -import "google/api/resource.proto"; -import "google/protobuf/empty.proto"; -import "google/api/client.proto"; - -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; -option java_multiple_files = true; -option java_outer_classname = "TestingProto"; -option java_package = "com.google.example.showcase.v1beta3"; -option ruby_package = "Google::Showcase::V1beta3"; - -// A service to facilitate running discrete sets of tests -// against Showcase. -service Testing { - option (google.api.default_host) = "showcase.googleapis.com"; - - // Creates a new testing session. - rpc CreateSession(CreateSessionRequest) returns (Session) { - option (google.api.http) = { - post: "/v1beta3/sessions" - body: "session" - }; - } - - // Gets a testing session. - rpc GetSession(GetSessionRequest) returns (Session) { - option (google.api.http) = { - get: "/v1beta3/{name=sessions/*}" - }; - } - - // Lists the current test sessions. - rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) { - option (google.api.http) = { - get: "/v1beta3/sessions" - }; - } - - // Delete a test session. - rpc DeleteSession(DeleteSessionRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta3/{name=sessions/*}" - }; - } - - // Report on the status of a session. - // This generates a report detailing which tests have been completed, - // and an overall rollup. - rpc ReportSession(ReportSessionRequest) returns (ReportSessionResponse) { - option (google.api.http) = { - post: "/v1beta3/{name=sessions/*}:report" - }; - } - - // List the tests of a sessesion. - rpc ListTests(ListTestsRequest) returns (ListTestsResponse) { - option (google.api.http) = { - get: "/v1beta3/{parent=sessions/*}/tests" - }; - } - - // Explicitly decline to implement a test. - // - // This removes the test from subsequent `ListTests` calls, and - // attempting to do the test will error. - // - // This method will error if attempting to delete a required test. - rpc DeleteTest(DeleteTestRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta3/{name=sessions/*/tests/*}" - }; - } - - // Register a response to a test. - // - // In cases where a test involves registering a final answer at the - // end of the test, this method provides the means to do so. - rpc VerifyTest(VerifyTestRequest) returns (VerifyTestResponse) { - option (google.api.http) = { - post: "/v1beta3/{name=sessions/*/tests/*}:check" - }; - } -} - -// A session is a suite of tests, generally being made in the context -// of testing code generation. -// -// A session defines tests it may expect, based on which version of the -// code generation spec is in use. -message Session { - option (google.api.resource) = { - type: "showcase.googleapis.com/Session" - pattern: "sessions/{session}" - }; - - // The specification versions understood by Showcase. - enum Version { - // Unspecified version. If passed on creation, the session will default - // to using the latest stable release. - VERSION_UNSPECIFIED = 0; - - // The latest v1. Currently, this is v1.0. - V1_LATEST = 1; - - // v1.0. (Until the spec is "GA", this will be a moving target.) - V1_0 = 2; - } - - // The name of the session. The ID must conform to ^[a-z]+$ - // If this is not provided, Showcase chooses one at random. - string name = 1; - - // Required. The version this session is using. - Version version = 2; -} - -// The request for the CreateSession method. -message CreateSessionRequest { - // The session to be created. - // Sessions are immutable once they are created (although they can - // be deleted). - Session session = 1; -} - -// The request for the GetSession method. -message GetSessionRequest { - // The session to be retrieved. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// The request for the ListSessions method. -message ListSessionsRequest { - // The maximum number of sessions to return per page. - int32 page_size = 1; - - // The page token, for retrieving subsequent pages. - string page_token = 2; -} - -// Response for the ListSessions method. -message ListSessionsResponse { - // The sessions being returned. - repeated Session sessions = 1; - - // The next page token, if any. - // An empty value here means the last page has been reached. - string next_page_token = 2; -} - -// Request for the DeleteSession method. -message DeleteSessionRequest { - // The session to be deleted. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// Request message for reporting on a session. -message ReportSessionRequest { - // The session to be reported on. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; -} - -// Response message for reporting on a session. -message ReportSessionResponse { - // The topline state of the report. - enum Result { - RESULT_UNSPECIFIED = 0; - - // The session is complete, and everything passed. - PASSED = 1; - - // The session had an explicit failure. - FAILED = 2; - - // The session is incomplete. This is a failure response. - INCOMPLETE = 3; - } - - // The state of the report. - Result result = 1; - - // The test runs of this session. - repeated TestRun test_runs = 2; -} - -message Test { - option (google.api.resource) = { - type: "showcase.googleapis.com/Test" - pattern: "sessions/{session}/tests/{test}" - }; - - // A blueprint is an explicit definition of methods and requests that are - // needed to be made to test this specific test case. Ideally this would be - // represented by something more robust like CEL, but as of writing this, I am - // unsure if CEL is ready. - message Blueprint { - option (google.api.resource) = { - type: "showcase.googleapis.com/Blueprint" - pattern: "sessions/{session}/tests/{test}/blueprints/{blueprint}" - }; - - // A message representing a method invocation. - message Invocation { - // The fully qualified name of the showcase method to be invoked. - string method = 1; - - // The request to be made if a specific request is necessary. - bytes serialized_request = 2; - } - - // The name of this blueprint. - string name = 1; - - // A description of this blueprint. - string description = 2; - - // The initial request to trigger this test. - Invocation request = 3; - - // An ordered list of method calls that can be called to trigger this test. - repeated Invocation additional_requests = 4; - } - - // Whether or not a test is required, recommended, or optional. - enum ExpectationLevel { - EXPECTATION_LEVEL_UNSPECIFIED = 0; - - // This test is strictly required. - REQUIRED = 1; - - // This test is recommended. - // - // If a generator explicitly ignores a recommended test (see `DeleteTest`), - // then the report may still pass, but with a warning. - // - // If a generator skips a recommended test and does not explicitly - // express that intention, the report will fail. - RECOMMENDED = 2; - - // This test is optional. - // - // If a generator explicitly ignores an optional test (see `DeleteTest`), - // then the report may still pass, and no warning will be issued. - // - // If a generator skips an optional test and does not explicitly - // express that intention, the report may still pass, but with a - // warning. - OPTIONAL = 3; - } - - // The name of the test. - // The tests/* portion of the names are hard-coded, and do not change - // from session to session. - string name = 1; - - // The expectation level for this test. - ExpectationLevel expectation_level = 2; - - // A description of the test. - string description = 3; - - // The blueprints that will satisfy this test. There may be multiple - // blueprints that can signal to the server that this test case is being - // exercised. Although multiple blueprints are specified, only a single - // blueprint needs to be run to signal that the test case was exercised. - repeated Blueprint blueprints = 4; -} - -// An issue found in the test. -message Issue { - // The different potential types of issues. - enum Type { - TYPE_UNSPECIFIED = 0; - - // The test was never instrumented. - SKIPPED = 1; - - // The test was started but never confirmed. - PENDING = 2; - - // The test was instrumented, but Showcase got an unexpected - // value when the generator tried to confirm success. - INCORRECT_CONFIRMATION = 3; - } - - // Severity levels. - enum Severity { - SEVERITY_UNSPECIFIED = 0; - - // Errors. - ERROR = 1; - - // Warnings. - WARNING = 2; - } - - // The type of the issue. - Type type = 1; - - // The severity of the issue. - Severity severity = 2; - - // A description of the issue. - string description = 3; -} - -// The request for the ListTests method. -message ListTestsRequest { - // The session. - string parent = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Session" - }]; - - // The maximum number of tests to return per page. - int32 page_size = 2; - - // The page token, for retrieving subsequent pages. - string page_token = 3; -} - -// The response for the ListTests method. -message ListTestsResponse { - // The tests being returned. - repeated Test tests = 1; - - // The next page token, if any. - // An empty value here means the last page has been reached. - string next_page_token = 2; -} - -// A TestRun is the result of running a Test. -message TestRun { - // The name of the test. - // The tests/* portion of the names are hard-coded, and do not change - // from session to session. - string test = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; - - // An issue found with the test run. If empty, this test run was successful. - Issue issue = 2; -} - -// Request message for deleting a test. -message DeleteTestRequest { - // The test to be deleted. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; -} - -message VerifyTestRequest { - // The test to have an answer registered to it. - string name = 1 [(google.api.resource_reference) = { - type: "showcase.googleapis.com/Test" - }]; - - // The answer from the test. - bytes answer = 2; - - // The answers from the test if multiple are to be checked - repeated bytes answers = 3; -} - -message VerifyTestResponse { - // An issue if check answer was unsuccessful. This will be empty if the check - // answer succeeded. - Issue issue = 1; -} diff --git a/google/firestore/admin/firestore_admin_v1.yaml b/google/firestore/admin/firestore_admin_v1.yaml deleted file mode 100644 index aabec468e..000000000 --- a/google/firestore/admin/firestore_admin_v1.yaml +++ /dev/null @@ -1,48 +0,0 @@ -type: google.api.Service -config_version: 3 -name: firestore.googleapis.com -title: Google Cloud Firestore Admin API - -documentation: - summary: > - Accesses the NoSQL document database built for automatic scaling, - high performance, and ease of application development. - overview: | - (== suppress_warning control-presence ==) - (== suppress_warning quota-presence ==) - (== suppress_warning http-rest ==) - (== suppress_warning versioning-http-version-prefix ==) - -apis: -- name: google.firestore.admin.v1.FirestoreAdmin - -types: -- name: google.firestore.admin.v1.IndexOperationMetadata -- name: google.firestore.admin.v1.LocationMetadata -- name: google.firestore.admin.v1.ExportDocumentsMetadata -- name: google.firestore.admin.v1.ImportDocumentsMetadata -- name: google.firestore.admin.v1.ExportDocumentsResponse -- name: google.firestore.admin.v1.FieldOperationMetadata - -http: - rules: - - selector: google.longrunning.Operations.ListOperations - get: '/v1/{name=projects/*/databases/*}/operations' - - - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=projects/*/databases/*/operations/*}' - - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1/{name=projects/*/databases/*/operations/*}' - - - selector: google.longrunning.Operations.CancelOperation - post: '/v1/{name=projects/*/databases/*/operations/*}:cancel' - body: '*' - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/datastore diff --git a/google/firestore/admin/v1/BUILD.bazel b/google/firestore/admin/v1/BUILD.bazel index 8105ae804..db614ac62 100644 --- a/google/firestore/admin/v1/BUILD.bazel +++ b/google/firestore/admin/v1/BUILD.bazel @@ -34,8 +34,6 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", - "//google/type:latlng_proto", - "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", @@ -47,6 +45,7 @@ proto_library_with_info( deps = [ ":admin_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -78,19 +77,24 @@ java_gapic_library( srcs = [":admin_proto_with_info"], gapic_yaml = "firestore_gapic.yaml", grpc_service_config = "firestore_admin_grpc_service_config.json", + rest_numeric_enums = False, service_yaml = "firestore_v1.yaml", test_deps = [ ":admin_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":admin_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "admin_java_gapic_test_suite", test_classes = [ + "com.google.cloud.firestore.v1.FirestoreAdminClientHttpJsonTest", "com.google.cloud.firestore.v1.FirestoreAdminClientTest", ], runtime_deps = [":admin_java_gapic_test"], @@ -99,6 +103,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-firestore-admin-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":admin_java_gapic", ":admin_java_grpc", @@ -126,7 +132,6 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", - "//google/type:latlng_go_proto", ], ) @@ -136,13 +141,15 @@ go_gapic_library( grpc_service_config = "firestore_admin_grpc_service_config.json", importpath = "cloud.google.com/go/firestore/admin/apiv1;admin", metadata = True, + rest_numeric_enums = False, service_yaml = "firestore_v1.yaml", + transport = "grpc+rest", deps = [ ":admin_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", ], ) @@ -171,6 +178,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -178,9 +186,24 @@ py_gapic_library( srcs = [":admin_proto"], grpc_service_config = "firestore_admin_grpc_service_config.json", opt_args = [ - "python-gapic-namespace=google.cloud", "python-gapic-name=firestore_admin", + "python-gapic-namespace=google.cloud", + ], + rest_numeric_enums = False, + service_yaml = "firestore_v1.yaml", + transport = "grpc", + 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 @@ -217,6 +240,7 @@ php_gapic_library( name = "admin_php_gapic", srcs = [":admin_proto_with_info"], grpc_service_config = "firestore_admin_grpc_service_config.json", + rest_numeric_enums = False, service_yaml = "firestore_v1.yaml", deps = [ ":admin_php_grpc", @@ -250,6 +274,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "firestore_admin_grpc_service_config.json", package = "google.firestore.admin.v1", + rest_numeric_enums = False, service_yaml = "firestore_v1.yaml", deps = [], ) @@ -288,16 +313,18 @@ ruby_cloud_gapic_library( name = "admin_ruby_gapic", srcs = [":admin_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-firestore-admin-v1", - "ruby-cloud-env-prefix=FIRESTORE", - "ruby-cloud-product-url=https://cloud.google.com/firestore", "ruby-cloud-api-id=firestore.googleapis.com", "ruby-cloud-api-shortname=firestore", + "ruby-cloud-env-prefix=FIRESTORE", + "ruby-cloud-gem-name=google-cloud-firestore-admin-v1", + "ruby-cloud-product-url=https://cloud.google.com/firestore", "ruby-cloud-wrapper-gem-override=google-cloud-firestore", ], grpc_service_config = "firestore_admin_grpc_service_config.json", + rest_numeric_enums = False, ruby_cloud_description = "Cloud Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development.", ruby_cloud_title = "Cloud Firestore Admin V1", + service_yaml = "firestore_v1.yaml", deps = [ ":admin_ruby_grpc", ":admin_ruby_proto", @@ -341,6 +368,8 @@ csharp_gapic_library( srcs = [":admin_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "firestore_admin_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "firestore_v1.yaml", deps = [ ":admin_csharp_grpc", ":admin_csharp_proto", diff --git a/google/firestore/admin/v1/database.proto b/google/firestore/admin/v1/database.proto index 5b2cd7b6c..3f242c3e1 100644 --- a/google/firestore/admin/v1/database.proto +++ b/google/firestore/admin/v1/database.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,9 +18,6 @@ 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/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin"; @@ -44,6 +41,8 @@ message Database { // The type of the database. // See https://cloud.google.com/datastore/docs/firestore-or-datastore for // information about how to choose. + // + // Mode changes are only allowed if the database is empty. enum DatabaseType { // The default value. This value is used if the database type is omitted. DATABASE_TYPE_UNSPECIFIED = 0; @@ -60,21 +59,41 @@ message Database { // Not used. CONCURRENCY_MODE_UNSPECIFIED = 0; - // Use optimistic concurrency control by default. This setting is available - // for Cloud Firestore customers. + // Use optimistic concurrency control by default. This mode is available + // for Cloud Firestore databases. OPTIMISTIC = 1; - // Use pessimistic concurrency control by default. This setting is available - // for Cloud Firestore customers. + // Use pessimistic concurrency control by default. This mode is available + // for Cloud Firestore databases. + // // This is the default setting for Cloud Firestore. PESSIMISTIC = 2; - // Use optimistic concurrency control with entity groups by default. This is - // the only available setting for Cloud Datastore customers. - // This is the default setting for Cloud Datastore. + // Use optimistic concurrency control with entity groups by default. + // + // This is the only available mode for Cloud Datastore. + // + // This mode is also available for Cloud Firestore with Datastore Mode but + // is not recommended. OPTIMISTIC_WITH_ENTITY_GROUPS = 3; } + // The type of App Engine integration mode. + enum AppEngineIntegrationMode { + // Not used. + APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED = 0; + + // If an App Engine application exists in the same region as this database, + // App Engine configuration will impact this database. This includes + // disabling of the application & database, as well as disabling writes to + // the database. + ENABLED = 1; + + // Appengine has no affect on the ability of this database to serve + // requests. + DISABLED = 2; + } + // The resource name of the Database. // Format: `projects/{project}/databases/{database}` string name = 1; @@ -91,6 +110,18 @@ message Database { // The concurrency control mode to use for this database. ConcurrencyMode concurrency_mode = 15; + // The App Engine integration mode to use for this database. + AppEngineIntegrationMode app_engine_integration_mode = 19; + + // Output only. The key_prefix for this database. This key_prefix is used, in combination + // with the project id ("~") to construct the + // application id that is returned from the Cloud Datastore APIs in Google App + // Engine first generation runtimes. + // + // This value may be empty in which case the appid to use for URL-encoded keys + // is the project_id (eg: foo instead of v~foo). + string key_prefix = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + // 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. diff --git a/google/firestore/admin/v1/field.proto b/google/firestore/admin/v1/field.proto index 3e4224395..0bbb11d8a 100644 --- a/google/firestore/admin/v1/field.proto +++ b/google/firestore/admin/v1/field.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.firestore.admin.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/firestore/admin/v1/index.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin"; @@ -64,6 +63,38 @@ message Field { bool reverting = 4; } + // 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. + message TtlConfig { + // The state of applying the TTL configuration to all documents. + enum State { + // The state is unspecified or unknown. + STATE_UNSPECIFIED = 0; + + // The TTL is being applied. There is an active long-running operation to + // track the change. Newly written documents will have TTLs applied as + // requested. Requested TTLs on existing documents are still being + // processed. When TTLs on all existing documents have been processed, the + // state will move to 'ACTIVE'. + CREATING = 1; + + // The TTL is active for all documents. + ACTIVE = 2; + + // The TTL configuration could not be enabled for all existing documents. + // Newly written documents will continue to have their TTL applied. + // The LRO returned when last attempting to enable TTL for this `Field` + // has failed, and may have more details. + NEEDS_REPAIR = 3; + } + + // Output only. The state of the TTL configuration. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Required. A field name of the form // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` // @@ -97,4 +128,9 @@ message Field { // explicitly remove all indexes for this field, specify an index config // with an empty list of indexes. IndexConfig index_config = 2; + + // The TTL configuration for this `Field`. + // Setting or unsetting this will enable or disable the TTL for + // documents that have this `Field`. + TtlConfig ttl_config = 3; } diff --git a/google/firestore/admin/v1/firestore_admin.proto b/google/firestore/admin/v1/firestore_admin.proto index 772ea214b..c493673ae 100644 --- a/google/firestore/admin/v1/firestore_admin.proto +++ b/google/firestore/admin/v1/firestore_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -23,11 +23,9 @@ import "google/api/resource.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/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; -import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin"; diff --git a/google/firestore/admin/v1/firestore_v1.yaml b/google/firestore/admin/v1/firestore_v1.yaml index 38255d3a1..3b45b2f62 100644 --- a/google/firestore/admin/v1/firestore_v1.yaml +++ b/google/firestore/admin/v1/firestore_v1.yaml @@ -4,7 +4,9 @@ name: firestore.googleapis.com title: Cloud Firestore API apis: +- name: google.cloud.location.Locations - name: google.firestore.admin.v1.FirestoreAdmin +- name: google.longrunning.Operations types: - name: google.firestore.admin.v1.ExportDocumentsMetadata diff --git a/google/firestore/admin/v1/index.proto b/google/firestore/admin/v1/index.proto index 7e330a99c..066d4109f 100644 --- a/google/firestore/admin/v1/index.proto +++ b/google/firestore/admin/v1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.firestore.admin.v1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin"; @@ -36,6 +35,23 @@ message Index { pattern: "projects/{project}/databases/{database}/collectionGroups/{collection}/indexes/{index}" }; + // Query Scope defines the scope at which a query is run. This is specified on + // a StructuredQuery's `from` field. + enum QueryScope { + // The query scope is unspecified. Not a valid option. + QUERY_SCOPE_UNSPECIFIED = 0; + + // Indexes with a collection query scope specified allow queries + // against a collection that is the child of a specific document, specified + // at query time, and that has the collection id specified by the index. + COLLECTION = 1; + + // Indexes with a collection group query scope specified allow queries + // against all collections that has the collection id specified by the + // index. + COLLECTION_GROUP = 2; + } + // A field in an index. // The field_path describes which field is indexed, the value_mode describes // how the field value is indexed. @@ -77,23 +93,6 @@ message Index { } } - // Query Scope defines the scope at which a query is run. This is specified on - // a StructuredQuery's `from` field. - enum QueryScope { - // The query scope is unspecified. Not a valid option. - QUERY_SCOPE_UNSPECIFIED = 0; - - // Indexes with a collection query scope specified allow queries - // against a collection that is the child of a specific document, specified - // at query time, and that has the collection id specified by the index. - COLLECTION = 1; - - // Indexes with a collection group query scope specified allow queries - // against all collections that has the collection id specified by the - // index. - COLLECTION_GROUP = 2; - } - // The state of an index. During index creation, an index will be in the // `CREATING` state. If the index is created successfully, it will transition // to the `READY` state. If the index creation encounters a problem, the index diff --git a/google/firestore/admin/v1/location.proto b/google/firestore/admin/v1/location.proto index ce34de36b..8f7519c4d 100644 --- a/google/firestore/admin/v1/location.proto +++ b/google/firestore/admin/v1/location.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,6 @@ syntax = "proto3"; package google.firestore.admin.v1; -import "google/type/latlng.proto"; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin"; option java_multiple_files = true; diff --git a/google/firestore/admin/v1/operation.proto b/google/firestore/admin/v1/operation.proto index 1b918fdb1..654a6ad6c 100644 --- a/google/firestore/admin/v1/operation.proto +++ b/google/firestore/admin/v1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,6 @@ package google.firestore.admin.v1; import "google/firestore/admin/v1/index.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin"; @@ -77,6 +76,24 @@ message FieldOperationMetadata { Index index = 2; } + // Information about an TTL configuration change. + message TtlConfigDelta { + // Specifies how the TTL config is changing. + enum ChangeType { + // The type of change is not specified or known. + CHANGE_TYPE_UNSPECIFIED = 0; + + // The TTL config is being added. + ADD = 1; + + // The TTL config is being removed. + REMOVE = 2; + } + + // Specifies how the TTL configuration is changing. + ChangeType change_type = 1; + } + // The time this operation started. google.protobuf.Timestamp start_time = 1; @@ -100,6 +117,9 @@ message FieldOperationMetadata { // The progress, in bytes, of this operation. Progress progress_bytes = 7; + + // Describes the deltas of TTL configuration. + TtlConfigDelta ttl_config_delta = 8; } // Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from diff --git a/google/firestore/bundle/BUILD.bazel b/google/firestore/bundle/BUILD.bazel index 086beadb4..3a3b7ea74 100644 --- a/google/firestore/bundle/BUILD.bazel +++ b/google/firestore/bundle/BUILD.bazel @@ -43,6 +43,7 @@ java_proto_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-firestore-bundle-v1-java", + transport = "grpc+rest", deps = [ ":firestore_bundle_java_proto", ":firestore_bundle_proto", @@ -67,6 +68,7 @@ py_gapic_library( name = "firestore_bundle_py_gapic", srcs = [":firestore_bundle_proto"], opt_args = ["python-gapic-namespace=google.cloud"], + transport = "grpc", ) py_gapic_assembly_pkg( diff --git a/google/firestore/firestore_v1.yaml b/google/firestore/firestore_v1.yaml deleted file mode 100644 index e4aaeb919..000000000 --- a/google/firestore/firestore_v1.yaml +++ /dev/null @@ -1,15 +0,0 @@ -type: google.api.Service -config_version: 3 -name: firestore.googleapis.com -title: Google Cloud Firestore API - -apis: -- name: google.firestore.v1.Firestore - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/datastore diff --git a/google/firestore/firestore_v1beta1.yaml b/google/firestore/firestore_v1beta1.yaml deleted file mode 100644 index 9abd25c72..000000000 --- a/google/firestore/firestore_v1beta1.yaml +++ /dev/null @@ -1,15 +0,0 @@ -type: google.api.Service -config_version: 3 -name: firestore.googleapis.com -title: Google Cloud Firestore API - -apis: -- name: google.firestore.v1beta1.Firestore - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/datastore diff --git a/google/firestore/v1/BUILD.bazel b/google/firestore/v1/BUILD.bazel index fb7688695..2b29939cc 100644 --- a/google/firestore/v1/BUILD.bazel +++ b/google/firestore/v1/BUILD.bazel @@ -1,4 +1,13 @@ # 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"]) @@ -12,6 +21,7 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "firestore_proto", srcs = [ + "aggregation_result.proto", "common.proto", "document.proto", "firestore.proto", @@ -36,6 +46,7 @@ proto_library_with_info( deps = [ ":firestore_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) @@ -67,17 +78,24 @@ java_gapic_library( srcs = [":firestore_proto_with_info"], gapic_yaml = "firestore_gapic.yaml", grpc_service_config = "firestore_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "firestore_v1.yaml", test_deps = [ ":firestore_java_grpc", + "//google/cloud/location:location_java_grpc", ], + transport = "grpc+rest", deps = [ ":firestore_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) java_gapic_test( name = "firestore_java_gapic_test_suite", test_classes = [ + "com.google.cloud.firestore.v1.FirestoreClientHttpJsonTest", "com.google.cloud.firestore.v1.FirestoreClientTest", ], runtime_deps = [":firestore_java_gapic_test"], @@ -86,6 +104,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-firestore-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":firestore_java_gapic", ":firestore_java_grpc", @@ -122,9 +142,17 @@ go_gapic_library( srcs = [":firestore_proto_with_info"], grpc_service_config = "firestore_grpc_service_config.json", importpath = "cloud.google.com/go/firestore/apiv1;firestore", - service_yaml = "//google/firestore:firestore_v1.yaml", + metadata = True, + rest_numeric_enums = False, + service_yaml = "firestore_v1.yaml", + transport = "grpc+rest", deps = [ ":firestore_go_proto", + "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_gapic", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen:go_default_library", ], ) @@ -140,6 +168,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-firestore-v1-go", deps = [ ":firestore_go_gapic", + ":firestore_go_gapic_srcjar-metadata.srcjar", ":firestore_go_gapic_srcjar-test.srcjar", ":firestore_go_proto", ], @@ -152,6 +181,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -159,8 +189,24 @@ py_gapic_library( srcs = [":firestore_proto"], grpc_service_config = "firestore_grpc_service_config.json", opt_args = ["python-gapic-namespace=google.cloud"], + rest_numeric_enums = False, + service_yaml = "firestore_v1.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "firestore_py_gapic_test", + srcs = [ + "firestore_py_gapic_pytest.py", + "firestore_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":firestore_py_gapic"], ) +# Open Source Packages py_gapic_assembly_pkg( name = "firestore-v1-py", deps = [ @@ -193,6 +239,9 @@ php_grpc_library( php_gapic_library( name = "firestore_php_gapic", srcs = [":firestore_proto_with_info"], + grpc_service_config = "firestore_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "firestore_v1.yaml", deps = [ ":firestore_php_grpc", ":firestore_php_proto", @@ -225,7 +274,8 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "firestore_grpc_service_config.json", package = "google.firestore.v1", - service_yaml = "//google/firestore:firestore_v1.yaml", + rest_numeric_enums = False, + service_yaml = "firestore_v1.yaml", deps = [], ) @@ -263,15 +313,17 @@ ruby_cloud_gapic_library( name = "firestore_ruby_gapic", srcs = [":firestore_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-firestore-v1", - "ruby-cloud-env-prefix=FIRESTORE", - "ruby-cloud-product-url=https://cloud.google.com/firestore", "ruby-cloud-api-id=firestore.googleapis.com", "ruby-cloud-api-shortname=firestore", + "ruby-cloud-env-prefix=FIRESTORE", + "ruby-cloud-gem-name=google-cloud-firestore-v1", + "ruby-cloud-product-url=https://cloud.google.com/firestore", ], grpc_service_config = "firestore_grpc_service_config.json", + rest_numeric_enums = False, ruby_cloud_description = "Cloud Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development.", ruby_cloud_title = "Cloud Firestore V1", + service_yaml = "firestore_v1.yaml", deps = [ ":firestore_ruby_grpc", ":firestore_ruby_proto", @@ -315,6 +367,8 @@ csharp_gapic_library( srcs = [":firestore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "firestore_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "firestore_v1.yaml", deps = [ ":firestore_csharp_grpc", ":firestore_csharp_proto", diff --git a/google/firestore/v1/aggregation_result.proto b/google/firestore/v1/aggregation_result.proto new file mode 100644 index 000000000..538e3fef5 --- /dev/null +++ b/google/firestore/v1/aggregation_result.proto @@ -0,0 +1,42 @@ +// 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.firestore.v1; + +import "google/firestore/v1/document.proto"; + +option csharp_namespace = "Google.Cloud.Firestore.V1"; +option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore"; +option java_multiple_files = true; +option java_outer_classname = "AggregationResultProto"; +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"; + +// The result of a single bucket from a Firestore aggregation query. +// +// The keys of `aggregate_fields` are the same for all results in an aggregation +// query, unlike document queries which can have different fields present for +// each result. +message AggregationResult { + // The result of the aggregation functions, ex: `COUNT(*) AS total_docs`. + // + // The key is the [alias][google.firestore.v1.StructuredAggregationQuery.Aggregation.alias] + // assigned to the aggregation function on input and the size of this map + // equals the number of aggregation functions in the query. + map aggregate_fields = 2; +} diff --git a/google/firestore/v1/common.proto b/google/firestore/v1/common.proto index 3bc978ca9..588a9b81b 100644 --- a/google/firestore/v1/common.proto +++ b/google/firestore/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.firestore.v1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore"; @@ -48,7 +47,7 @@ message Precondition { bool exists = 1; // When set, the target document must exist and have been last updated at - // that time. + // that time. Timestamp must be microsecond aligned. google.protobuf.Timestamp update_time = 2; } } diff --git a/google/firestore/v1/document.proto b/google/firestore/v1/document.proto index 5238a943c..41283588e 100644 --- a/google/firestore/v1/document.proto +++ b/google/firestore/v1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.firestore.v1; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/type/latlng.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore"; diff --git a/google/firestore/v1/firestore.proto b/google/firestore/v1/firestore.proto index b149a7634..4cc6dc039 100644 --- a/google/firestore/v1/firestore.proto +++ b/google/firestore/v1/firestore.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,6 +19,7 @@ package google.firestore.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +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"; @@ -32,7 +33,6 @@ option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestor option java_multiple_files = true; option java_outer_classname = "FirestoreProto"; 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"; @@ -63,6 +63,9 @@ service Firestore { rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}" + additional_bindings { + get: "/v1/{parent=projects/*/databases/*/documents}/{collection_id}" + } }; } @@ -133,6 +136,29 @@ service Firestore { }; } + // Runs an aggregation query. + // + // Rather than producing [Document][google.firestore.v1.Document] results like [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery], + // this API allows running an aggregation to produce a series of + // [AggregationResult][google.firestore.v1.AggregationResult] server-side. + // + // High-Level Example: + // + // ``` + // -- Return the number of documents in table given a filter. + // SELECT COUNT(*) FROM ( SELECT * FROM k where a = true ); + // ``` + rpc RunAggregationQuery(RunAggregationQueryRequest) returns (stream RunAggregationQueryResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/databases/*/documents}:runAggregationQuery" + body: "*" + additional_bindings { + post: "/v1/{parent=projects/*/databases/*/documents/*/**}:runAggregationQuery" + body: "*" + } + }; + } + // Partitions a query by returning partition cursors that can be used to run // the query in parallel. The returned partition cursors are split points that // can be used by RunQuery as starting/end points for the query results. @@ -481,7 +507,9 @@ message RunQueryRequest { // The consistency mode for this transaction. // If not set, defaults to strong consistency. oneof consistency_selector { - // Reads documents in a transaction. + // Run the query within an already active transaction. + // + // The value here is the opaque transaction ID to execute the query in. bytes transaction = 5; // Starts a new transaction and reads the documents. @@ -504,8 +532,7 @@ message RunQueryResponse { // If set, no other fields will be set in this response. bytes transaction = 2; - // A query result. - // Not set when reporting partial progress. + // A query result, not set when reporting partial progress. Document document = 1; // The time at which the document was read. This may be monotonically @@ -520,6 +547,70 @@ message RunQueryResponse { // The number of results that have been skipped due to an offset between // the last response and the current response. int32 skipped_results = 4; + + // The continuation mode for the query. If present, it indicates the current + // query response stream has finished. This can be set with or without a + // `document` present, but when set, no more results are returned. + oneof continuation_selector { + // If present, Firestore has completely finished the request and no more + // documents will be returned. + bool done = 6; + } +} + +// The request for [Firestore.RunAggregationQuery][google.firestore.v1.Firestore.RunAggregationQuery]. +message RunAggregationQueryRequest { + // Required. The parent resource name. In the format: + // `projects/{project_id}/databases/{database_id}/documents` or + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + // For example: + // `projects/my-project/databases/my-database/documents` or + // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // The query to run. + oneof query_type { + // An aggregation query. + StructuredAggregationQuery structured_aggregation_query = 2; + } + + // The consistency mode for the query, defaults to strong consistency. + oneof consistency_selector { + // Run the aggregation within an already active transaction. + // + // The value here is the opaque transaction ID to execute the query in. + bytes transaction = 4; + + // Starts a new transaction as part of the query, defaulting to read-only. + // + // The new transaction ID will be returned as the first response in the + // stream. + TransactionOptions new_transaction = 5; + + // Executes the query at the given timestamp. + // + // Requires: + // + // * Cannot be more than 270 seconds in the past. + google.protobuf.Timestamp read_time = 6; + } +} + +// The response for [Firestore.RunAggregationQuery][google.firestore.v1.Firestore.RunAggregationQuery]. +message RunAggregationQueryResponse { + // A single aggregation result. + // + // Not present when reporting partial progress. + AggregationResult result = 1; + + // The transaction that was started as part of this request. + // + // Only present on the first response when the request requested to start + // a new transaction. + bytes transaction = 2; + + // The time at which the aggregate value is valid for. + google.protobuf.Timestamp read_time = 3; } // The request for [Firestore.PartitionQuery][google.firestore.v1.Firestore.PartitionQuery]. @@ -572,6 +663,14 @@ message PartitionQueryRequest { // if more results exist. A second call to PartitionQuery will return up to // 2 partitions, to complete the total of 10 specified in `partition_count`. int32 page_size = 5; + + // The consistency mode for this request. + // If not set, defaults to strong consistency. + oneof consistency_selector { + // Reads documents as they were at the given time. + // This may not be older than 270 seconds. + google.protobuf.Timestamp read_time = 6; + } } // The response for [Firestore.PartitionQuery][google.firestore.v1.Firestore.PartitionQuery]. @@ -856,6 +955,14 @@ message ListCollectionIdsRequest { // A page token. Must be a value from // [ListCollectionIdsResponse][google.firestore.v1.ListCollectionIdsResponse]. string page_token = 3; + + // The consistency mode for this request. + // If not set, defaults to strong consistency. + oneof consistency_selector { + // Reads documents as they were at the given time. + // This may not be older than 270 seconds. + google.protobuf.Timestamp read_time = 4; + } } // The response from [Firestore.ListCollectionIds][google.firestore.v1.Firestore.ListCollectionIds]. diff --git a/google/firestore/v1/firestore_grpc_service_config.json b/google/firestore/v1/firestore_grpc_service_config.json index 687278cef..aad5e1040 100755 --- a/google/firestore/v1/firestore_grpc_service_config.json +++ b/google/firestore/v1/firestore_grpc_service_config.json @@ -40,6 +40,10 @@ { "service": "google.firestore.v1.Firestore", "method": "PartitionQuery" + }, + { + "service": "google.firestore.v1.Firestore", + "method": "RunAggregationQuery" } ], "timeout": "300s", diff --git a/google/firestore/v1/firestore_v1.yaml b/google/firestore/v1/firestore_v1.yaml index 1f6599781..fdd01f74b 100644 --- a/google/firestore/v1/firestore_v1.yaml +++ b/google/firestore/v1/firestore_v1.yaml @@ -4,7 +4,9 @@ name: firestore.googleapis.com title: Cloud Firestore API apis: +- name: google.cloud.location.Locations - name: google.firestore.v1.Firestore +- name: google.longrunning.Operations documentation: summary: |- diff --git a/google/firestore/v1/query.proto b/google/firestore/v1/query.proto index 304499847..0d7a7b6bf 100644 --- a/google/firestore/v1/query.proto +++ b/google/firestore/v1/query.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,9 @@ syntax = "proto3"; package google.firestore.v1; +import "google/api/field_behavior.proto"; import "google/firestore/v1/document.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore"; @@ -65,7 +65,7 @@ message StructuredQuery { // Unspecified. This value must not be used. OPERATOR_UNSPECIFIED = 0; - // The results are required to satisfy each of the combined filters. + // Documents are required to satisfy all of the combined filters. AND = 1; } @@ -73,7 +73,10 @@ message StructuredQuery { Operator op = 1; // The list of filters to combine. - // Must contain at least one filter. + // + // Requires: + // + // * At least one filter is present. repeated Filter filters = 2; } @@ -213,8 +216,25 @@ message StructuredQuery { Direction direction = 2; } - // A reference to a field, such as `max(messages.time) as max_time`. + // A sort direction. + enum Direction { + // Unspecified. + DIRECTION_UNSPECIFIED = 0; + + // Ascending. + ASCENDING = 1; + + // Descending. + DESCENDING = 2; + } + + // A reference to a field in a document, ex: `stats.operations`. message FieldReference { + // The relative path of the document being referenced. + // + // Requires: + // + // * Conform to [document field name][google.firestore.v1.Document.fields] limitations. string field_path = 2; } @@ -227,18 +247,6 @@ message StructuredQuery { repeated FieldReference fields = 2; } - // A sort direction. - enum Direction { - // Unspecified. - DIRECTION_UNSPECIFIED = 0; - - // Ascending. - ASCENDING = 1; - - // Descending. - DESCENDING = 2; - } - // The projection to return. Projection select = 1; @@ -250,43 +258,174 @@ message StructuredQuery { // The order to apply to the query results. // - // Firestore guarantees a stable ordering through the following rules: + // Firestore allows callers to provide a full ordering, a partial ordering, or + // no ordering at all. In all cases, Firestore guarantees a stable ordering + // through the following rules: // - // * Any field required to appear in `order_by`, that is not already - // specified in `order_by`, is appended to the order in field name order - // by default. + // * The `order_by` is required to reference all fields used with an + // inequality filter. + // * All fields that are required to be in the `order_by` but are not already + // present are appended in lexicographical ordering of the field name. // * If an order on `__name__` is not specified, it is appended by default. // // Fields are appended with the same sort direction as the last order // specified, or 'ASCENDING' if no order was specified. For example: // - // * `SELECT * FROM Foo ORDER BY A` becomes - // `SELECT * FROM Foo ORDER BY A, __name__` - // * `SELECT * FROM Foo ORDER BY A DESC` becomes - // `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC` - // * `SELECT * FROM Foo WHERE A > 1` becomes - // `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__` + // * `ORDER BY a` becomes `ORDER BY a ASC, __name__ ASC` + // * `ORDER BY a DESC` becomes `ORDER BY a DESC, __name__ DESC` + // * `WHERE a > 1` becomes `WHERE a > 1 ORDER BY a ASC, __name__ ASC` + // * `WHERE __name__ > ... AND a > 1` becomes + // `WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC` repeated Order order_by = 4; - // A starting point for the query results. + // A potential prefix of a position in the result set to start the query at. + // + // The ordering of the result set is based on the `ORDER BY` clause of the + // original query. + // + // ``` + // SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC; + // ``` + // + // This query's results are ordered by `(b ASC, __name__ ASC)`. + // + // Cursors can reference either the full ordering or a prefix of the location, + // though it cannot reference more fields than what are in the provided + // `ORDER BY`. + // + // Continuing off the example above, attaching the following start cursors + // will have varying impact: + // + // - `START BEFORE (2, /k/123)`: start the query right before `a = 1 AND + // b > 2 AND __name__ > /k/123`. + // - `START AFTER (10)`: start the query right after `a = 1 AND b > 10`. + // + // Unlike `OFFSET` which requires scanning over the first N results to skip, + // a start cursor allows the query to begin at a logical position. This + // position is not required to match an actual result, it will scan forward + // from this position to find the next document. + // + // Requires: + // + // * The number of values cannot be greater than the number of fields + // specified in the `ORDER BY` clause. Cursor start_at = 7; - // A end point for the query results. + // A potential prefix of a position in the result set to end the query at. + // + // This is similar to `START_AT` but with it controlling the end position + // rather than the start position. + // + // Requires: + // + // * The number of values cannot be greater than the number of fields + // specified in the `ORDER BY` clause. Cursor end_at = 8; - // The number of results to skip. + // The number of documents to skip before returning the first result. // - // Applies before limit, but after all other constraints. Must be >= 0 if - // specified. + // This applies after the constraints specified by the `WHERE`, `START AT`, & + // `END AT` but before the `LIMIT` clause. + // + // Requires: + // + // * The value must be greater than or equal to zero if specified. int32 offset = 6; // The maximum number of results to return. // // Applies after all other constraints. - // Must be >= 0 if specified. + // + // Requires: + // + // * The value must be greater than or equal to zero if specified. google.protobuf.Int32Value limit = 5; } +// Firestore query for running an aggregation over a [StructuredQuery][google.firestore.v1.StructuredQuery]. +message StructuredAggregationQuery { + // Defines a aggregation that produces a single result. + message Aggregation { + // Count of documents that match the query. + // + // The `COUNT(*)` aggregation function operates on the entire document + // so it does not require a field reference. + message Count { + // Optional. Optional constraint on the maximum number of documents to count. + // + // This provides a way to set an upper bound on the number of documents + // to scan, limiting latency and cost. + // + // Unspecified is interpreted as no bound. + // + // High-Level Example: + // + // ``` + // AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); + // ``` + // + // Requires: + // + // * Must be greater than zero when present. + google.protobuf.Int64Value up_to = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // The type of aggregation to perform, required. + oneof operator { + // Count aggregator. + Count count = 1; + } + + // Optional. Optional name of the field to store the result of the aggregation into. + // + // If not provided, Firestore will pick a default name following the format + // `field_`. For example: + // + // ``` + // AGGREGATE + // COUNT_UP_TO(1) AS count_up_to_1, + // COUNT_UP_TO(2), + // COUNT_UP_TO(3) AS count_up_to_3, + // COUNT_UP_TO(4) + // OVER ( + // ... + // ); + // ``` + // + // becomes: + // + // ``` + // AGGREGATE + // COUNT_UP_TO(1) AS count_up_to_1, + // COUNT_UP_TO(2) AS field_1, + // COUNT_UP_TO(3) AS count_up_to_3, + // COUNT_UP_TO(4) AS field_2 + // OVER ( + // ... + // ); + // ``` + // + // Requires: + // + // * Must be unique across all aggregation aliases. + // * Conform to [document field name][google.firestore.v1.Document.fields] limitations. + string alias = 7 [(google.api.field_behavior) = OPTIONAL]; + } + + // The base query to aggregate over. + oneof query_type { + // Nested structured query. + StructuredQuery structured_query = 1; + } + + // Optional. Series of aggregations to apply over the results of the `structured_query`. + // + // Requires: + // + // * A minimum of one and maximum of five aggregations per query. + repeated Aggregation aggregations = 3 [(google.api.field_behavior) = OPTIONAL]; +} + // A position in a query result set. message Cursor { // The values that represent a position, in the order they appear in diff --git a/google/firestore/v1/write.proto b/google/firestore/v1/write.proto index c78437bab..c17e96ad9 100644 --- a/google/firestore/v1/write.proto +++ b/google/firestore/v1/write.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.firestore.v1; import "google/firestore/v1/common.proto"; import "google/firestore/v1/document.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.V1"; option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore"; diff --git a/google/firestore/v1beta1/BUILD.bazel b/google/firestore/v1beta1/BUILD.bazel index a65207739..185960b07 100644 --- a/google/firestore/v1beta1/BUILD.bazel +++ b/google/firestore/v1beta1/BUILD.bazel @@ -79,6 +79,7 @@ java_gapic_library( test_deps = [ ":firestore_java_grpc", ], + transport = "grpc+rest", deps = [ ":firestore_java_proto", ], @@ -87,6 +88,7 @@ java_gapic_library( java_gapic_test( name = "firestore_java_gapic_test_suite", test_classes = [ + "com.google.cloud.firestore.v1beta1.FirestoreClientHttpJsonTest", "com.google.cloud.firestore.v1beta1.FirestoreClientTest", ], runtime_deps = [":firestore_java_gapic_test"], @@ -95,6 +97,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-firestore-v1beta1-java", + transport = "grpc+rest", deps = [ ":firestore_java_gapic", ":firestore_java_grpc", @@ -131,7 +134,8 @@ go_gapic_library( srcs = [":firestore_proto_with_info"], grpc_service_config = "firestore_grpc_service_config.json", importpath = "cloud.google.com/go/firestore/apiv1beta1;firestore", - service_yaml = "//google/firestore:firestore_v1beta1.yaml", + service_yaml = "firestore_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":firestore_go_proto", ], @@ -161,12 +165,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "firestore_py_gapic", srcs = [":firestore_proto"], grpc_service_config = "firestore_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "firestore_py_gapic_test", + srcs = [ + "firestore_py_gapic_pytest.py", + "firestore_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":firestore_py_gapic"], ) # Open Source Packages @@ -233,7 +249,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "firestore_grpc_service_config.json", package = "google.firestore.v1beta1", - service_yaml = "//google/firestore:firestore_v1beta1.yaml", + service_yaml = "firestore_v1beta1.yaml", deps = [], ) @@ -250,8 +266,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -269,7 +285,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "firestore_ruby_gapic", - srcs = [":firestore_proto_with_info",], + srcs = [":firestore_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-firestore-v1beta1"], deps = [ ":firestore_ruby_grpc", @@ -314,6 +330,7 @@ csharp_gapic_library( srcs = [":firestore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "firestore_grpc_service_config.json", + service_yaml = "firestore_v1beta1.yaml", deps = [ ":firestore_csharp_grpc", ":firestore_csharp_proto", diff --git a/google/firestore/v1beta1/common.proto b/google/firestore/v1beta1/common.proto index 59c34dd5d..af26d0b6f 100644 --- a/google/firestore/v1beta1/common.proto +++ b/google/firestore/v1beta1/common.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.firestore.v1beta1; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore"; diff --git a/google/firestore/v1beta1/document.proto b/google/firestore/v1beta1/document.proto index 7b9d955b9..e425cd6e8 100644 --- a/google/firestore/v1beta1/document.proto +++ b/google/firestore/v1beta1/document.proto @@ -19,7 +19,6 @@ package google.firestore.v1beta1; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/type/latlng.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore"; diff --git a/google/firestore/v1beta1/query.proto b/google/firestore/v1beta1/query.proto index 0c14777a2..cfb5401e1 100644 --- a/google/firestore/v1beta1/query.proto +++ b/google/firestore/v1beta1/query.proto @@ -18,7 +18,6 @@ package google.firestore.v1beta1; import "google/firestore/v1beta1/document.proto"; import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore"; diff --git a/google/firestore/v1beta1/write.proto b/google/firestore/v1beta1/write.proto index 1ca3c1911..3fd1b5965 100644 --- a/google/firestore/v1beta1/write.proto +++ b/google/firestore/v1beta1/write.proto @@ -19,7 +19,6 @@ package google.firestore.v1beta1; import "google/firestore/v1beta1/common.proto"; import "google/firestore/v1beta1/document.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore"; diff --git a/google/geo/type/BUILD.bazel b/google/geo/type/BUILD.bazel index 474c8eeee..1892c969d 100644 --- a/google/geo/type/BUILD.bazel +++ b/google/geo/type/BUILD.bazel @@ -1,9 +1,13 @@ load("@rules_proto//proto:defs.bzl", "proto_library") -load("@com_google_googleapis_imports//:imports.bzl", - "cc_proto_library", - "go_proto_library", - "java_gapic_assembly_gradle_pkg", - "java_proto_library") +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_proto_library", + "go_proto_library", + "java_gapic_assembly_gradle_pkg", + "java_proto_library", + "py_gapic_library", + "py_proto_library", +) package(default_visibility = ["//visibility:public"]) @@ -31,13 +35,13 @@ java_proto_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-geo-type-java", + transport = "grpc+rest", deps = [ ":viewport_java_proto", ":viewport_proto", ], ) - ############################################################################## # Go ############################################################################## @@ -48,6 +52,14 @@ go_proto_library( deps = ["//google/type:latlng_go_proto"], ) +############################################################################## +# Python +############################################################################## +py_proto_library( + name = "viewport_py_proto", + deps = [":viewport_proto"], +) + ############################################################################## # C++ ############################################################################## diff --git a/google/home/enterprise/sdm/v1/BUILD.bazel b/google/home/enterprise/sdm/v1/BUILD.bazel index f528a81cd..8eba9dcaa 100644 --- a/google/home/enterprise/sdm/v1/BUILD.bazel +++ b/google/home/enterprise/sdm/v1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":sdm_java_grpc", ], + transport = "grpc+rest", deps = [ ":sdm_java_proto", ], @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "sdm_java_gapic_test_suite", test_classes = [ + "com.google.home.enterprise.sdm.v1.SmartDeviceManagementServiceClientHttpJsonTest", "com.google.home.enterprise.sdm.v1.SmartDeviceManagementServiceClientTest", ], runtime_deps = [":sdm_java_gapic_test"], @@ -88,6 +90,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-enterprise-sdm-v1-java", + transport = "grpc+rest", deps = [ ":sdm_java_gapic", ":sdm_java_grpc", @@ -123,6 +126,7 @@ go_gapic_library( grpc_service_config = "smart_device_management_grpc_service_config.json", importpath = "google.golang.org/google/home/enterprise/sdm/v1;sdm", service_yaml = "smartdevicemanagement_v1.yaml", + transport = "grpc+rest", deps = [ ":sdm_go_proto", ], @@ -152,12 +156,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "sdm_py_gapic", srcs = [":sdm_proto"], grpc_service_config = "smart_device_management_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "sdm_py_gapic_test", + srcs = [ + "sdm_py_gapic_pytest.py", + "sdm_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":sdm_py_gapic"], ) # Open Source Packages @@ -242,8 +258,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -261,7 +277,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "sdm_ruby_gapic", - srcs = [":sdm_proto_with_info",], + srcs = [":sdm_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-sdm-v1"], grpc_service_config = "smart_device_management_grpc_service_config.json", deps = [ @@ -307,6 +323,7 @@ csharp_gapic_library( srcs = [":sdm_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "smart_device_management_grpc_service_config.json", + service_yaml = "smartdevicemanagement_v1.yaml", deps = [ ":sdm_csharp_grpc", ":sdm_csharp_proto", diff --git a/google/home/enterprise/sdm/v1/smart_device_management_service.proto b/google/home/enterprise/sdm/v1/smart_device_management_service.proto index 188bc92e4..dec7076f4 100644 --- a/google/home/enterprise/sdm/v1/smart_device_management_service.proto +++ b/google/home/enterprise/sdm/v1/smart_device_management_service.proto @@ -18,8 +18,6 @@ package google.home.enterprise.sdm.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; import "google/home/enterprise/sdm/v1/device.proto"; import "google/home/enterprise/sdm/v1/site.proto"; import "google/protobuf/struct.proto"; diff --git a/google/home/graph/base.yaml b/google/home/graph/base.yaml deleted file mode 100644 index 20c3ff8fe..000000000 --- a/google/home/graph/base.yaml +++ /dev/null @@ -1,20 +0,0 @@ -type: google.api.Service -config_version: 3 -name: homegraph.googleapis.com -title: HomeGraph API - -apis: -- name: google.home.graph.v1.HomeGraphApiService - -backend: - rules: - - selector: google.home.graph.v1.HomeGraphApiService.RequestSyncDevices - deadline: 60.0 - - selector: google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification - deadline: 60.0 - - selector: google.home.graph.v1.HomeGraphApiService.DeleteAgentUser - deadline: 60.0 - - selector: google.home.graph.v1.HomeGraphApiService.Query - deadline: 60.0 - - selector: google.home.graph.v1.HomeGraphApiService.Sync - deadline: 60.0 diff --git a/google/home/graph/v1/BUILD.bazel b/google/home/graph/v1/BUILD.bazel index ccfea7f73..c51210e77 100644 --- a/google/home/graph/v1/BUILD.bazel +++ b/google/home/graph/v1/BUILD.bazel @@ -63,6 +63,7 @@ java_gapic_library( test_deps = [ ":graph_java_grpc", ], + transport = "grpc+rest", deps = [ ":graph_java_proto", ], @@ -71,6 +72,7 @@ java_gapic_library( java_gapic_test( name = "graph_java_gapic_test_suite", test_classes = [ + "com.google.home.graph.v1.HomeGraphApiServiceClientHttpJsonTest", "com.google.home.graph.v1.HomeGraphApiServiceClientTest", ], runtime_deps = [":graph_java_gapic_test"], @@ -79,6 +81,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-home-graph-v1-java", + transport = "grpc+rest", deps = [ ":graph_java_gapic", ":graph_java_grpc", @@ -114,6 +117,7 @@ go_gapic_library( grpc_service_config = "homegraph_grpc_service_config.json", importpath = "google.golang.org/api/homegraph/v1;graph", service_yaml = "homegraph_v1.yaml", + transport = "grpc+rest", deps = [ ":graph_go_proto", ], @@ -149,6 +153,17 @@ py_gapic_library( name = "graph_py_gapic", srcs = [":graph_proto"], grpc_service_config = "homegraph_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "graph_py_gapic_test", + srcs = [ + "graph_py_gapic_pytest.py", + "graph_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":graph_py_gapic"], ) # Open Source Packages @@ -232,8 +247,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -251,7 +266,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "graph_ruby_gapic", - srcs = [":graph_proto_with_info",], + srcs = [":graph_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-graph-v1"], deps = [ ":graph_ruby_grpc", @@ -296,6 +311,7 @@ csharp_gapic_library( srcs = [":graph_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "homegraph_grpc_service_config.json", + service_yaml = "homegraph_v1.yaml", deps = [ ":graph_csharp_grpc", ":graph_csharp_proto", diff --git a/google/home/graph/v1/homegraph.proto b/google/home/graph/v1/homegraph.proto index 6f17f0d7c..a2c206bf0 100644 --- a/google/home/graph/v1/homegraph.proto +++ b/google/home/graph/v1/homegraph.proto @@ -28,10 +28,9 @@ option go_package = "google.golang.org/genproto/googleapis/home/graph/v1;graph"; option java_outer_classname = "HomeGraphApiServiceProto"; option java_package = "com.google.home.graph.v1"; option php_namespace = "Google\\Home\\Graph\\V1"; - option (google.api.resource_definition) = { type: "homegraph.googleapis.com/AgentUserPath" - pattern: "agentUsers/{agent_user_path=**}" + pattern: "agentUsers/{agent_user_path}" }; // Google Home Graph API service. The Home Graph service provides support for diff --git a/google/iam/BUILD.bazel b/google/iam/BUILD.bazel index a87c57fec..dad2cec37 100644 --- a/google/iam/BUILD.bazel +++ b/google/iam/BUILD.bazel @@ -1 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-iam. + +# 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 iam. +# 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 = "iam_ruby_wrapper", + srcs = ["//google/iam/v2:iam_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-iam", + "ruby-cloud-wrapper-of=v2:0.0", + "ruby-cloud-product-url=https://cloud.google.com/iam", + "ruby-cloud-api-id=iam.googleapis.com", + "ruby-cloud-api-shortname=iam", + ], + ruby_cloud_description = "Manages identity and access control policies for Google Cloud Platform resources.", + ruby_cloud_title = "IAM", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-iam-ruby", + deps = [ + ":iam_ruby_wrapper", + ], +) diff --git a/google/iam/admin/v1/BUILD.bazel b/google/iam/admin/v1/BUILD.bazel index e30ca1a3e..be39c779a 100644 --- a/google/iam/admin/v1/BUILD.bazel +++ b/google/iam/admin/v1/BUILD.bazel @@ -30,10 +30,8 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/iam/v1:iam_policy_proto", - "//google/iam/v1:options_proto", "//google/iam/v1:policy_proto", "//google/type:expr_proto", - "@com_google_protobuf//:any_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", @@ -77,12 +75,16 @@ java_gapic_library( # This was manually replaced - build_gen shouldn't have removed it. gapic_yaml = "iam_gapic.yaml", grpc_service_config = "iam_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "iam.yaml", test_deps = [ ":admin_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc", deps = [ ":admin_java_proto", + "//google/api:api_java_proto", "//google/iam/v1:iam_java_proto", ], ) @@ -101,6 +103,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-iam-admin-v1-java", + include_samples = True, + transport = "grpc", deps = [ ":admin_java_gapic", ":admin_java_grpc", @@ -138,7 +142,9 @@ go_gapic_library( grpc_service_config = "iam_grpc_service_config.json", importpath = "cloud.google.com/go/iam/admin/apiv1;admin", metadata = True, + rest_numeric_enums = False, service_yaml = "iam.yaml", + transport = "grpc", deps = [ ":admin_go_proto", "//google/iam/v1:iam_go_proto", @@ -170,12 +176,27 @@ 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 = "iam_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +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 @@ -212,6 +233,8 @@ php_gapic_library( name = "admin_php_gapic", srcs = [":admin_proto_with_info"], grpc_service_config = "iam_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "iam.yaml", deps = [ ":admin_php_grpc", ":admin_php_proto", @@ -244,6 +267,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "iam_grpc_service_config.json", package = "google.iam.admin.v1", + rest_numeric_enums = False, service_yaml = "iam.yaml", deps = [], ) @@ -283,6 +307,8 @@ ruby_cloud_gapic_library( srcs = [":admin_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-iam-admin-v1"], grpc_service_config = "iam_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "iam.yaml", deps = [ ":admin_ruby_grpc", ":admin_ruby_proto", @@ -326,6 +352,8 @@ csharp_gapic_library( srcs = [":admin_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "iam_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "iam.yaml", deps = [ ":admin_csharp_grpc", ":admin_csharp_proto", diff --git a/google/iam/admin/v1/audit_data.proto b/google/iam/admin/v1/audit_data.proto index 06df16f13..b5b6eec0c 100644 --- a/google/iam/admin/v1/audit_data.proto +++ b/google/iam/admin/v1/audit_data.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.iam.admin.v1; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.Iam.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/iam/admin/v1;admin"; option java_multiple_files = true; diff --git a/google/iam/admin/v1/iam.proto b/google/iam/admin/v1/iam.proto index 47a610dc8..a93382362 100644 --- a/google/iam/admin/v1/iam.proto +++ b/google/iam/admin/v1/iam.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,24 +16,21 @@ syntax = "proto3"; package google.iam.admin.v1; +import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/iam/v1/iam_policy.proto"; -import "google/iam/v1/options.proto"; import "google/iam/v1/policy.proto"; -import "google/protobuf/any.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/type/expr.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Iam.Admin.V1"; option go_package = "google.golang.org/genproto/googleapis/iam/admin/v1;admin"; option java_multiple_files = true; -option java_outer_classname = "IamProto"; option java_package = "com.google.iam.admin.v1"; option php_namespace = "Google\\Cloud\\Iam\\Admin\\V1"; @@ -46,9 +43,9 @@ option php_namespace = "Google\\Cloud\\Iam\\Admin\\V1"; // * **Service account keys**, which service accounts use to authenticate with // Google APIs // * **IAM policies for service accounts**, which specify the roles that a -// member has for the service account +// principal has for the service account // * **IAM custom roles**, which help you limit the number of permissions that -// you grant to members +// you grant to principals // // In addition, you can use this service to complete the following tasks, among // others: @@ -56,6 +53,16 @@ option php_namespace = "Google\\Cloud\\Iam\\Admin\\V1"; // * Test whether a service account can use specific permissions // * Check which roles you can grant for a specific resource // * Lint, or validate, condition expressions in an IAM policy +// +// When you read data from the IAM API, each read is eventually consistent. In +// other words, if you write data with the IAM API, then immediately read that +// data, the read operation might return an older version of the data. To deal +// with this behavior, your application can retry the request with truncated +// exponential backoff. +// +// In contrast, writing data to the IAM API is sequentially consistent. In other +// words, write operations are always processed in the order in which they were +// received. service IAM { option (google.api.default_host) = "iam.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; @@ -90,7 +97,7 @@ service IAM { // // Updates a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. // - // You can update only the `display_name` and `description` fields. + // You can update only the `display_name` field. rpc UpdateServiceAccount(ServiceAccount) returns (ServiceAccount) { option (google.api.http) = { put: "/v1/{name=projects/*/serviceAccounts/*}" @@ -206,7 +213,11 @@ service IAM { option (google.api.method_signature) = "name,private_key_type,key_algorithm"; } - // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey], using a public key that you provide. + // Uploads the public key portion of a key pair that you manage, and + // associates the public key with a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. + // + // After you upload the public key, you can use the private key from the key + // pair as a service account key. rpc UploadServiceAccountKey(UploadServiceAccountKeyRequest) returns (ServiceAccountKey) { option (google.api.http) = { post: "/v1/{name=projects/*/serviceAccounts/*}/keys:upload" @@ -224,6 +235,25 @@ service IAM { option (google.api.method_signature) = "name"; } + // Disable a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]. A disabled service account key can be + // re-enabled with [EnableServiceAccountKey][google.iam.admin.v1.IAM.EnableServiceAccountKey]. + rpc DisableServiceAccountKey(DisableServiceAccountKeyRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/serviceAccounts/*/keys/*}:disable" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Enable a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]. + rpc EnableServiceAccountKey(EnableServiceAccountKeyRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/serviceAccounts/*/keys/*}:enable" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + // **Note:** This method is deprecated. Use the // [`signBlob`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signBlob) // method in the IAM Service Account Credentials API instead. If you currently @@ -260,7 +290,7 @@ service IAM { } // Gets the IAM policy that is attached to a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. This IAM - // policy specifies which members have access to the service account. + // policy specifies which principals have access to the service account. // // This method does not tell you whether the service account has been granted // any roles on other resources. To check whether a service account has role @@ -279,7 +309,7 @@ service IAM { // Sets the IAM policy that is attached to a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. // // Use this method to grant or revoke access to the service account. For - // example, you could grant a member the ability to impersonate the service + // example, you could grant a principal the ability to impersonate the service // account. // // This method does not enable the service account to access other resources. @@ -291,8 +321,10 @@ service IAM { // 3. Call the resource's `setIamPolicy` method to update its IAM policy. // // For detailed instructions, see - // [Granting roles to a service account for specific - // resources](https://cloud.google.com/iam/help/service-accounts/granting-access-to-service-accounts). + // [Manage access to project, folders, and + // organizations](https://cloud.google.com/iam/help/service-accounts/granting-access-to-service-accounts) + // or [Manage access to other + // resources](https://cloud.google.com/iam/help/access/manage-other-resources). rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { option (google.api.http) = { post: "/v1/{resource=projects/*/serviceAccounts/*}:setIamPolicy" @@ -377,7 +409,7 @@ service IAM { // // When you delete a custom role, the following changes occur immediately: // - // * You cannot bind a member to the custom role in an IAM + // * You cannot bind a principal to the custom role in an IAM // [Policy][google.iam.v1.Policy]. // * Existing bindings to the custom role are not changed, but they have no // effect. @@ -412,7 +444,7 @@ service IAM { } // Lists every permission that you can test on a resource. A permission is - // testable if you can check whether a member has that permission on the + // testable if you can check whether a principal has that permission on the // resource. rpc QueryTestablePermissions(QueryTestablePermissionsRequest) returns (QueryTestablePermissionsResponse) { option (google.api.http) = { @@ -605,8 +637,7 @@ message DeleteServiceAccountRequest { ]; } -// The request for -// [PatchServiceAccount][google.iam.admin.v1.PatchServiceAccount]. +// The service account patch request. // // You can patch only the `display_name` and `description` fields. You must use // the `update_mask` field to specify which of these fields you want to patch. @@ -709,9 +740,59 @@ message GetServiceAccountKeyRequest { } ]; - // The output format of the public key requested. - // X509_PEM is the default output format. - ServiceAccountPublicKeyType public_key_type = 2; + // Optional. The output format of the public key. The default is `TYPE_NONE`, which + // means that the public key is not returned. + ServiceAccountPublicKeyType public_key_type = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Supported key algorithms. +enum ServiceAccountKeyAlgorithm { + // An unspecified key algorithm. + KEY_ALG_UNSPECIFIED = 0; + + // 1k RSA Key. + KEY_ALG_RSA_1024 = 1; + + // 2k RSA Key. + KEY_ALG_RSA_2048 = 2; +} + +// Supported private key output formats. +enum ServiceAccountPrivateKeyType { + // Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`. + TYPE_UNSPECIFIED = 0; + + // PKCS12 format. + // The password for the PKCS12 file is `notasecret`. + // For more information, see https://tools.ietf.org/html/rfc7292. + TYPE_PKCS12_FILE = 1; + + // Google Credentials File format. + TYPE_GOOGLE_CREDENTIALS_FILE = 2; +} + +// Supported public key output formats. +enum ServiceAccountPublicKeyType { + // Do not return the public key. + TYPE_NONE = 0; + + // X509 PEM format. + TYPE_X509_PEM_FILE = 1; + + // Raw public key. + TYPE_RAW_PUBLIC_KEY = 2; +} + +// Service Account Key Origin. +enum ServiceAccountKeyOrigin { + // Unspecified key origin. + ORIGIN_UNSPECIFIED = 0; + + // Key is provided by user. + USER_PROVIDED = 1; + + // Key is provided by Google. + GOOGLE_PROVIDED = 2; } // Represents a service account key. @@ -785,6 +866,9 @@ message ServiceAccountKey { // The key type. ListServiceAccountKeysRequest.KeyType key_type = 10; + + // The key status. + bool disabled = 11; } // The service account key create request. @@ -821,10 +905,10 @@ message UploadServiceAccountKeyRequest { // `unique_id` of the service account. string name = 1; - // A field that allows clients to upload their own public key. If set, - // use this public key data to create a service account key for given - // service account. - // Please note, the expected format for this field is X509_PEM. + // The public key to associate with the service account. Must be an RSA public + // key that is wrapped in an X.509 v3 certificate. Include the first line, + // `-----BEGIN CERTIFICATE-----`, and the last line, + // `-----END CERTIFICATE-----`. bytes public_key_data = 2; } @@ -843,6 +927,38 @@ message DeleteServiceAccountKeyRequest { ]; } +// The service account key disable request. +message DisableServiceAccountKeyRequest { + // Required. The resource name of the service account key in the following format: + // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. + // + // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from + // the account. The `ACCOUNT` value can be the `email` address or the + // `unique_id` of the service account. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "iam.googleapis.com/Key" + } + ]; +} + +// The service account key enable request. +message EnableServiceAccountKeyRequest { + // Required. The resource name of the service account key in the following format: + // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. + // + // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from + // the account. The `ACCOUNT` value can be the `email` address or the + // `unique_id` of the service account. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "iam.googleapis.com/Key" + } + ]; +} + // Deprecated. [Migrate to Service Account Credentials // API](https://cloud.google.com/iam/help/credentials/migrate-api). // @@ -892,56 +1008,6 @@ message SignBlobResponse { bytes signature = 2 [deprecated = true]; } -// Supported key algorithms. -enum ServiceAccountKeyAlgorithm { - // An unspecified key algorithm. - KEY_ALG_UNSPECIFIED = 0; - - // 1k RSA Key. - KEY_ALG_RSA_1024 = 1; - - // 2k RSA Key. - KEY_ALG_RSA_2048 = 2; -} - -// Supported private key output formats. -enum ServiceAccountPrivateKeyType { - // Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`. - TYPE_UNSPECIFIED = 0; - - // PKCS12 format. - // The password for the PKCS12 file is `notasecret`. - // For more information, see https://tools.ietf.org/html/rfc7292. - TYPE_PKCS12_FILE = 1; - - // Google Credentials File format. - TYPE_GOOGLE_CREDENTIALS_FILE = 2; -} - -// Supported public key output formats. -enum ServiceAccountPublicKeyType { - // Unspecified. Returns nothing here. - TYPE_NONE = 0; - - // X509 PEM format. - TYPE_X509_PEM_FILE = 1; - - // Raw public key. - TYPE_RAW_PUBLIC_KEY = 2; -} - -// Service Account Key Origin. -enum ServiceAccountKeyOrigin { - // Unspecified key origin. - ORIGIN_UNSPECIFIED = 0; - - // Key is provided by user. - USER_PROVIDED = 1; - - // Key is provided by Google. - GOOGLE_PROVIDED = 2; -} - // Deprecated. [Migrate to Service Account Credentials // API](https://cloud.google.com/iam/help/credentials/migrate-api). // @@ -970,8 +1036,8 @@ message SignJwtRequest { // JWT Claims Set. For example: `{"sub": "user@example.com", "iat": 313435}` // // If the JWT Claims Set contains an expiration time (`exp`) claim, it must be - // an integer timestamp that is not in the past and no more than 1 hour in the - // future. + // an integer timestamp that is not in the past and no more than 12 hours in + // the future. // // If the JWT Claims Set does not contain an expiration time (`exp`) claim, // this claim is added automatically, with a timestamp that is 1 hour in the @@ -1018,8 +1084,8 @@ message Role { // The user has indicated this role is being deprecated. DEPRECATED = 4; - // This role is disabled and will not contribute permissions to any members - // it is granted to in policies. + // This role is disabled and will not contribute permissions to any + // principals it is granted to in policies. DISABLED = 5; // The user has indicated this role is currently in an EAP phase. @@ -1089,36 +1155,51 @@ message QueryGrantableRolesResponse { string next_page_token = 2; } +// A view for Role objects. +enum RoleView { + // Omits the `included_permissions` field. + // This is the default value. + BASIC = 0; + + // Returns all fields. + FULL = 1; +} + // The request to get all roles defined under a resource. message ListRolesRequest { // The `parent` parameter's value depends on the target resource for the // request, namely - // [`roles`](/iam/reference/rest/v1/roles), - // [`projects`](/iam/reference/rest/v1/projects.roles), or - // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each - // resource type's `parent` value format is described below: + // [`roles`](https://cloud.google.com/iam/reference/rest/v1/roles), + // [`projects`](https://cloud.google.com/iam/reference/rest/v1/projects.roles), + // or + // [`organizations`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles). + // Each resource type's `parent` value format is described below: // - // * [`roles.list()`](/iam/reference/rest/v1/roles/list): An empty string. + // * [`roles.list()`](https://cloud.google.com/iam/reference/rest/v1/roles/list): An empty string. // This method doesn't require a resource; it simply returns all - // [predefined roles](/iam/docs/understanding-roles#predefined_roles) in - // Cloud IAM. Example request URL: - // `https://iam.googleapis.com/v1/roles` + // [predefined + // roles](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles) + // in Cloud IAM. Example request URL: `https://iam.googleapis.com/v1/roles` // - // * [`projects.roles.list()`](/iam/reference/rest/v1/projects.roles/list): + // * [`projects.roles.list()`](https://cloud.google.com/iam/reference/rest/v1/projects.roles/list): // `projects/{PROJECT_ID}`. This method lists all project-level - // [custom roles](/iam/docs/understanding-custom-roles). + // [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles). // Example request URL: // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` // - // * [`organizations.roles.list()`](/iam/reference/rest/v1/organizations.roles/list): + // * [`organizations.roles.list()`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles/list): // `organizations/{ORGANIZATION_ID}`. This method lists all - // organization-level [custom roles](/iam/docs/understanding-custom-roles). + // organization-level [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles). // Example request URL: // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` // // Note: Wildcard (*) values are invalid; you must specify a complete project // ID or organization ID. - string parent = 1 [(google.api.resource_reference).type = "*"]; + string parent = 1 [(google.api.resource_reference) = { + type: "*" + }]; // Optional limit on the number of roles to include in the response. // @@ -1152,57 +1233,68 @@ message ListRolesResponse { message GetRoleRequest { // The `name` parameter's value depends on the target resource for the // request, namely - // [`roles`](/iam/reference/rest/v1/roles), - // [`projects`](/iam/reference/rest/v1/projects.roles), or - // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each - // resource type's `name` value format is described below: + // [`roles`](https://cloud.google.com/iam/reference/rest/v1/roles), + // [`projects`](https://cloud.google.com/iam/reference/rest/v1/projects.roles), + // or + // [`organizations`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles). + // Each resource type's `name` value format is described below: // - // * [`roles.get()`](/iam/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. + // * [`roles.get()`](https://cloud.google.com/iam/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. // This method returns results from all - // [predefined roles](/iam/docs/understanding-roles#predefined_roles) in - // Cloud IAM. Example request URL: + // [predefined + // roles](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles) + // in Cloud IAM. Example request URL: // `https://iam.googleapis.com/v1/roles/{ROLE_NAME}` // - // * [`projects.roles.get()`](/iam/reference/rest/v1/projects.roles/get): + // * [`projects.roles.get()`](https://cloud.google.com/iam/reference/rest/v1/projects.roles/get): // `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only - // [custom roles](/iam/docs/understanding-custom-roles) that have been - // created at the project level. Example request URL: + // [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that + // have been created at the project level. Example request URL: // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` // - // * [`organizations.roles.get()`](/iam/reference/rest/v1/organizations.roles/get): + // * [`organizations.roles.get()`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles/get): // `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method - // returns only [custom roles](/iam/docs/understanding-custom-roles) that + // returns only [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that // have been created at the organization level. Example request URL: // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` // // Note: Wildcard (*) values are invalid; you must specify a complete project // ID or organization ID. - string name = 1 [(google.api.resource_reference).type = "*"]; + string name = 1 [(google.api.resource_reference) = { + type: "*" + }]; } // The request to create a new role. message CreateRoleRequest { // The `parent` parameter's value depends on the target resource for the // request, namely - // [`projects`](/iam/reference/rest/v1/projects.roles) or - // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each - // resource type's `parent` value format is described below: + // [`projects`](https://cloud.google.com/iam/reference/rest/v1/projects.roles) + // or + // [`organizations`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles). + // Each resource type's `parent` value format is described below: // - // * [`projects.roles.create()`](/iam/reference/rest/v1/projects.roles/create): + // * [`projects.roles.create()`](https://cloud.google.com/iam/reference/rest/v1/projects.roles/create): // `projects/{PROJECT_ID}`. This method creates project-level - // [custom roles](/iam/docs/understanding-custom-roles). + // [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles). // Example request URL: // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` // - // * [`organizations.roles.create()`](/iam/reference/rest/v1/organizations.roles/create): + // * [`organizations.roles.create()`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles/create): // `organizations/{ORGANIZATION_ID}`. This method creates organization-level - // [custom roles](/iam/docs/understanding-custom-roles). Example request - // URL: + // [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles). + // Example request URL: // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` // // Note: Wildcard (*) values are invalid; you must specify a complete project // ID or organization ID. - string parent = 1 [(google.api.resource_reference).type = "*"]; + string parent = 1 [(google.api.resource_reference) = { + type: "*" + }]; // The role ID to use for this role. // @@ -1219,25 +1311,30 @@ message CreateRoleRequest { message UpdateRoleRequest { // The `name` parameter's value depends on the target resource for the // request, namely - // [`projects`](/iam/reference/rest/v1/projects.roles) or - // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each - // resource type's `name` value format is described below: + // [`projects`](https://cloud.google.com/iam/reference/rest/v1/projects.roles) + // or + // [`organizations`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles). + // Each resource type's `name` value format is described below: // - // * [`projects.roles.patch()`](/iam/reference/rest/v1/projects.roles/patch): + // * [`projects.roles.patch()`](https://cloud.google.com/iam/reference/rest/v1/projects.roles/patch): // `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method updates only - // [custom roles](/iam/docs/understanding-custom-roles) that have been - // created at the project level. Example request URL: + // [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that + // have been created at the project level. Example request URL: // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` // - // * [`organizations.roles.patch()`](/iam/reference/rest/v1/organizations.roles/patch): + // * [`organizations.roles.patch()`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles/patch): // `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method - // updates only [custom roles](/iam/docs/understanding-custom-roles) that + // updates only [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that // have been created at the organization level. Example request URL: // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` // // Note: Wildcard (*) values are invalid; you must specify a complete project // ID or organization ID. - string name = 1 [(google.api.resource_reference).type = "*"]; + string name = 1 [(google.api.resource_reference) = { + type: "*" + }]; // The updated role. Role role = 2; @@ -1250,25 +1347,30 @@ message UpdateRoleRequest { message DeleteRoleRequest { // The `name` parameter's value depends on the target resource for the // request, namely - // [`projects`](/iam/reference/rest/v1/projects.roles) or - // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each - // resource type's `name` value format is described below: + // [`projects`](https://cloud.google.com/iam/reference/rest/v1/projects.roles) + // or + // [`organizations`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles). + // Each resource type's `name` value format is described below: // - // * [`projects.roles.delete()`](/iam/reference/rest/v1/projects.roles/delete): + // * [`projects.roles.delete()`](https://cloud.google.com/iam/reference/rest/v1/projects.roles/delete): // `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method deletes only - // [custom roles](/iam/docs/understanding-custom-roles) that have been - // created at the project level. Example request URL: + // [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that + // have been created at the project level. Example request URL: // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` // - // * [`organizations.roles.delete()`](/iam/reference/rest/v1/organizations.roles/delete): + // * [`organizations.roles.delete()`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles/delete): // `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method - // deletes only [custom roles](/iam/docs/understanding-custom-roles) that + // deletes only [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that // have been created at the organization level. Example request URL: // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` // // Note: Wildcard (*) values are invalid; you must specify a complete project // ID or organization ID. - string name = 1 [(google.api.resource_reference).type = "*"]; + string name = 1 [(google.api.resource_reference) = { + type: "*" + }]; // Used to perform a consistent read-modify-write. bytes etag = 2; @@ -1278,25 +1380,30 @@ message DeleteRoleRequest { message UndeleteRoleRequest { // The `name` parameter's value depends on the target resource for the // request, namely - // [`projects`](/iam/reference/rest/v1/projects.roles) or - // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each - // resource type's `name` value format is described below: + // [`projects`](https://cloud.google.com/iam/reference/rest/v1/projects.roles) + // or + // [`organizations`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles). + // Each resource type's `name` value format is described below: // - // * [`projects.roles.undelete()`](/iam/reference/rest/v1/projects.roles/undelete): + // * [`projects.roles.undelete()`](https://cloud.google.com/iam/reference/rest/v1/projects.roles/undelete): // `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method undeletes - // only [custom roles](/iam/docs/understanding-custom-roles) that have been - // created at the project level. Example request URL: + // only [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that + // have been created at the project level. Example request URL: // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` // - // * [`organizations.roles.undelete()`](/iam/reference/rest/v1/organizations.roles/undelete): + // * [`organizations.roles.undelete()`](https://cloud.google.com/iam/reference/rest/v1/organizations.roles/undelete): // `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method - // undeletes only [custom roles](/iam/docs/understanding-custom-roles) that + // undeletes only [custom + // roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that // have been created at the organization level. Example request URL: // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` // // Note: Wildcard (*) values are invalid; you must specify a complete project // ID or organization ID. - string name = 1 [(google.api.resource_reference).type = "*"]; + string name = 1 [(google.api.resource_reference) = { + type: "*" + }]; // Used to perform a consistent read-modify-write. bytes etag = 2; @@ -1321,7 +1428,7 @@ message Permission { // The state of the permission with regards to custom roles. enum CustomRolesSupportLevel { - // Permission is fully supported for custom role use. + // Default state. Permission is fully supported for custom role use. SUPPORTED = 0; // Permission is being tested to check custom role compatibility. @@ -1461,7 +1568,7 @@ message LintResult { // This includes the following common scenarios: // // - Unsatisfiable condition: Expired timestamp in date/time condition. - // - Ineffective condition: Condition on a pair which is + // - Ineffective condition: Condition on a pair which is // granted unconditionally in another binding of the same policy. WARNING = 2; @@ -1514,13 +1621,3 @@ message LintPolicyResponse { // List of lint results sorted by `severity` in descending order. repeated LintResult lint_results = 1; } - -// A view for Role objects. -enum RoleView { - // Omits the `included_permissions` field. - // This is the default value. - BASIC = 0; - - // Returns all fields. - FULL = 1; -} diff --git a/google/iam/credentials/iamcredentials_v1.yaml b/google/iam/credentials/iamcredentials_v1.yaml deleted file mode 100644 index bba6921cf..000000000 --- a/google/iam/credentials/iamcredentials_v1.yaml +++ /dev/null @@ -1,17 +0,0 @@ -type: google.api.Service -config_version: 3 -name: iamcredentials.googleapis.com -title: IAM Service Account Credentials API - -apis: -- name: google.iam.credentials.v1.IAMCredentials - -documentation: - summary: IAM Service Account Credentials API - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/iam/credentials/v1/BUILD.bazel b/google/iam/credentials/v1/BUILD.bazel index d0faffd11..e23a4893b 100644 --- a/google/iam/credentials/v1/BUILD.bazel +++ b/google/iam/credentials/v1/BUILD.bazel @@ -63,6 +63,7 @@ java_gapic_library( test_deps = [ ":credentials_java_grpc", ], + transport = "grpc+rest", deps = [ ":credentials_java_proto", ], @@ -71,6 +72,7 @@ java_gapic_library( java_gapic_test( name = "credentials_java_gapic_test_suite", test_classes = [ + "com.google.cloud.iam.credentials.v1.IAMCredentialsClientHttpJsonTest", "com.google.cloud.iam.credentials.v1.IAMCredentialsClientTest", ], runtime_deps = [":credentials_java_gapic_test"], @@ -79,6 +81,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-iam-credentials-v1-java", + transport = "grpc+rest", deps = [ ":credentials_java_gapic", ":credentials_java_grpc", @@ -113,7 +116,8 @@ go_gapic_library( srcs = [":credentials_proto_with_info"], grpc_service_config = "iamcredentials_grpc_service_config.json", importpath = "cloud.google.com/go/iam/credentials/apiv1;credentials", - service_yaml = "//google/iam/credentials:iamcredentials_v1.yaml", + service_yaml = "iamcredentials_v1.yaml", + transport = "grpc+rest", deps = [ ":credentials_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -144,6 +148,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -155,6 +160,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=iam_credentials", ], + transport = "grpc", +) + +py_test( + name = "credentials_py_gapic_test", + srcs = [ + "credentials_py_gapic_pytest.py", + "credentials_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":credentials_py_gapic"], ) py_gapic_assembly_pkg( @@ -222,7 +238,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "iamcredentials_grpc_service_config.json", package = "google.iam.credentials.v1", - service_yaml = "//google/iam/credentials:iamcredentials_v1.yaml", + service_yaml = "iamcredentials_v1.yaml", deps = [], ) @@ -239,8 +255,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -258,7 +274,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "credentials_ruby_gapic", - srcs = [":credentials_proto_with_info",], + srcs = [":credentials_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-iam-credentials-v1", "ruby-cloud-env-prefix=IAM_CREDENTIALS", @@ -312,6 +328,7 @@ csharp_gapic_library( srcs = [":credentials_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "iamcredentials_grpc_service_config.json", + service_yaml = "iamcredentials_v1.yaml", deps = [ ":credentials_csharp_grpc", ":credentials_csharp_proto", diff --git a/google/iam/credentials/v1/common.proto b/google/iam/credentials/v1/common.proto index 045a0dfbc..17fc46009 100644 --- a/google/iam/credentials/v1/common.proto +++ b/google/iam/credentials/v1/common.proto @@ -27,6 +27,7 @@ option go_package = "google.golang.org/genproto/googleapis/iam/credentials/v1;cr option java_multiple_files = true; option java_outer_classname = "IAMCredentialsCommonProto"; option java_package = "com.google.cloud.iam.credentials.v1"; +option php_namespace = "Google\\Cloud\\Iam\\Credentials\\V1"; option (google.api.resource_definition) = { type: "iam.googleapis.com/ServiceAccount" pattern: "projects/{project}/serviceAccounts/{service_account}" diff --git a/google/iam/credentials/v1/iamcredentials.proto b/google/iam/credentials/v1/iamcredentials.proto index b5dcae87f..cd09fe451 100644 --- a/google/iam/credentials/v1/iamcredentials.proto +++ b/google/iam/credentials/v1/iamcredentials.proto @@ -26,6 +26,7 @@ option go_package = "google.golang.org/genproto/googleapis/iam/credentials/v1;cr option java_multiple_files = true; option java_outer_classname = "IAMCredentialsProto"; option java_package = "com.google.cloud.iam.credentials.v1"; +option php_namespace = "Google\\Cloud\\Iam\\Credentials\\V1"; // A service account is a special type of Google account that belongs to your // application or a virtual machine (VM), instead of to an individual end user. diff --git a/google/iam/iam_meta_api.yaml b/google/iam/iam_meta_api.yaml deleted file mode 100644 index 939856790..000000000 --- a/google/iam/iam_meta_api.yaml +++ /dev/null @@ -1,85 +0,0 @@ -type: google.api.Service -config_version: 2 -name: iam-meta-api.googleapis.com -title: IAM Meta API - -apis: -- name: google.iam.v1.IAMPolicy - -types: -- name: google.iam.v1.PolicyDelta - -documentation: - summary: Manages access control for Google Cloud Platform resources. - overview: |- - # Google Identity and Access Management (IAM) API - - Documentation of the access control API that will be implemented by all - 1st party services provided by the Google Cloud Platform (like Cloud - Storage, Compute Engine, App Engine). - - Any implementation of an API that offers access control features - will implement the google.iam.v1.IAMPolicy interface. - - ## Data model - - Access control is applied when a principal (user or service account), - takes some action on a resource exposed by a service. Resources, - identified by - URI-like names, are the unit of access control specification. It is up to - the service implementations to choose what granularity of access control - to support and what set of actions (permissions) to support for the - resources - they provide. For example one database service may allow access control to - be specified only at the Table level, whereas another might allow access - control to also be specified at the Column level. - - This is intentionally not a CRUD style API because access control policies - are created and deleted implicitly with the resources to which they are - attached. - - ## Policy - - A `Policy` consists of a list of bindings. A `Binding` binds a set of - members to a role, where the members can include user accounts, user - groups, user - domains, and service accounts. A role is a named set of permissions, - defined by the IAM system. The definition of a role is outside the - policy. - - A permission check involves determining the roles that include the - specified permission, and then determining if the principal specified by - the check is a member of a binding to at least one of these roles. The - membership check is recursive when a group is bound to a role. - 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. - - - 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: '/v1/{resource=**}:getIamPolicy' - body: '*' - - selector: google.iam.v1.IAMPolicy.SetIamPolicy - post: '/v1/{resource=**}:setIamPolicy' - body: '*' - - selector: google.iam.v1.IAMPolicy.TestIamPermissions - post: '/v1/{resource=**}:testIamPermissions' - body: '*' diff --git a/google/iam/v1/BUILD.bazel b/google/iam/v1/BUILD.bazel index ad624b595..d4b4647da 100644 --- a/google/iam/v1/BUILD.bazel +++ b/google/iam/v1/BUILD.bazel @@ -18,6 +18,7 @@ proto_library( "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", + "@com_google_protobuf//:field_mask_proto", ], ) @@ -50,17 +51,19 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## -load("@com_google_googleapis_imports//:imports.bzl", - "java_grpc_library", - "java_proto_library", - "java_gapic_assembly_gradle_pkg") +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_grpc_library", + "java_proto_library", +) java_proto_library( name = "iam_java_proto", deps = [ ":iam_policy_proto", - ":policy_proto", ":options_proto", + ":policy_proto", ], ) @@ -75,11 +78,13 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-iam-v1-java", + transport = "grpc+rest", deps = [ - "iam_java_proto", "iam_java_grpc", + "iam_java_proto", ], ) + ############################################################################## # Go ############################################################################## @@ -116,8 +121,9 @@ go_gapic_assembly_pkg( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", "cc_proto_library", - "cc_grpc_library") +) cc_proto_library( name = "iam_policy_cc_proto", @@ -151,17 +157,68 @@ load( py_proto_library( name = "iam_policy_py_proto", - deps = [":iam_policy_proto"] + deps = [":iam_policy_proto"], ) py_proto_library( name = "policy_py_proto", - deps = [":policy_proto"] + deps = [":policy_proto"], ) py_proto_library( name = "options_py_proto", - deps = [":options_proto"] + deps = [":options_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 = "iam_ruby_proto", + deps = [ + ":iam_policy_proto", + ":options_proto", + ":policy_proto", + "//google/iam/v1/logging:audit_data_proto", + ], +) + +ruby_grpc_library( + name = "iam_ruby_grpc", + srcs = [":iam_policy_proto"], + deps = [":iam_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "iam_ruby_gapic", + srcs = [":iam_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-iam-v1", + ], + ruby_cloud_description = "An add-on interface used by some Google API clients to provide IAM Policy calls.", + ruby_cloud_title = "IAM", + deps = [ + ":iam_ruby_grpc", + ":iam_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-iam-v1-ruby", + deps = [ + ":iam_ruby_gapic", + ":iam_ruby_grpc", + ":iam_ruby_proto", + ], ) ############################################################################## @@ -181,7 +238,7 @@ csharp_proto_library( ":iam_policy_proto", ":options_proto", ":policy_proto", - "//google/iam/v1/logging:audit_data_proto" + "//google/iam/v1/logging:audit_data_proto", ], ) diff --git a/google/iam/v1/iam_meta_api.yaml b/google/iam/v1/iam_meta_api.yaml index 939856790..6d1cc53df 100644 --- a/google/iam/v1/iam_meta_api.yaml +++ b/google/iam/v1/iam_meta_api.yaml @@ -1,5 +1,5 @@ type: google.api.Service -config_version: 2 +config_version: 3 name: iam-meta-api.googleapis.com title: IAM Meta API @@ -11,46 +11,6 @@ types: documentation: summary: Manages access control for Google Cloud Platform resources. - overview: |- - # Google Identity and Access Management (IAM) API - - Documentation of the access control API that will be implemented by all - 1st party services provided by the Google Cloud Platform (like Cloud - Storage, Compute Engine, App Engine). - - Any implementation of an API that offers access control features - will implement the google.iam.v1.IAMPolicy interface. - - ## Data model - - Access control is applied when a principal (user or service account), - takes some action on a resource exposed by a service. Resources, - identified by - URI-like names, are the unit of access control specification. It is up to - the service implementations to choose what granularity of access control - to support and what set of actions (permissions) to support for the - resources - they provide. For example one database service may allow access control to - be specified only at the Table level, whereas another might allow access - control to also be specified at the Column level. - - This is intentionally not a CRUD style API because access control policies - are created and deleted implicitly with the resources to which they are - attached. - - ## Policy - - A `Policy` consists of a list of bindings. A `Binding` binds a set of - members to a role, where the members can include user accounts, user - groups, user - domains, and service accounts. A role is a named set of permissions, - defined by the IAM system. The definition of a role is outside the - policy. - - A permission check involves determining the roles that include the - specified permission, and then determining if the principal specified by - the check is a member of a binding to at least one of these roles. The - membership check is recursive when a group is bound to a role. rules: - selector: google.iam.v1.IAMPolicy.GetIamPolicy description: |- @@ -62,11 +22,14 @@ documentation: 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. + 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 diff --git a/google/iam/v1/iam_policy.proto b/google/iam/v1/iam_policy.proto index 7072854e4..402b3459c 100644 --- a/google/iam/v1/iam_policy.proto +++ b/google/iam/v1/iam_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -11,18 +11,18 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -// syntax = "proto3"; package google.iam.v1; -import "google/iam/v1/options.proto"; -import "google/iam/v1/policy.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/iam/v1/options.proto"; +import "google/iam/v1/policy.proto"; +import "google/protobuf/field_mask.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Iam.V1"; @@ -32,7 +32,8 @@ option java_outer_classname = "IamPolicyProto"; option java_package = "com.google.iam.v1"; option php_namespace = "Google\\Cloud\\Iam\\V1"; -// ## API Overview +// API Overview +// // // Manages Identity and Access Management (IAM) policies. // @@ -62,6 +63,8 @@ service IAMPolicy { // Sets the access control policy on the specified resource. Replaces any // existing policy. + // + // Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors. rpc SetIamPolicy(SetIamPolicyRequest) returns (Policy) { option (google.api.http) = { post: "/v1/{resource=**}:setIamPolicy" @@ -81,7 +84,7 @@ service IAMPolicy { // 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. + // 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 @@ -107,6 +110,13 @@ message SetIamPolicyRequest { // valid policy but certain Cloud Platform services (such as Projects) // might reject them. Policy policy = 2 [(google.api.field_behavior) = REQUIRED]; + + // OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + // the fields in the mask will be modified. If no mask is provided, the + // following default mask is used: + // + // `paths: "bindings, etag"` + google.protobuf.FieldMask update_mask = 3; } // Request message for `GetIamPolicy` method. @@ -118,7 +128,7 @@ message GetIamPolicyRequest { (google.api.resource_reference).type = "*"]; // OPTIONAL: A `GetPolicyOptions` object for specifying options to - // `GetIamPolicy`. This field is only used by Cloud IAM. + // `GetIamPolicy`. GetPolicyOptions options = 2; } diff --git a/google/iam/v1/logging/BUILD.bazel b/google/iam/v1/logging/BUILD.bazel index 82876b51b..774f1aaf8 100644 --- a/google/iam/v1/logging/BUILD.bazel +++ b/google/iam/v1/logging/BUILD.bazel @@ -66,18 +66,19 @@ go_gapic_assembly_pkg( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", "py_gapic_library", - "py_gapic_assembly_pkg" ) py_gapic_library( name = "logging_py_gapic", - srcs =[":audit_data_proto"], + srcs = [":audit_data_proto"], opt_args = [ "warehouse-package-name=google-cloud-iam-logging", "python-gapic-namespace=google.cloud", "python-gapic-name=iam_logging", ], + transport = "grpc", ) # Open Source Packages diff --git a/google/iam/v1/logging/audit_data.proto b/google/iam/v1/logging/audit_data.proto index dfe441ba6..b0fdff05b 100644 --- a/google/iam/v1/logging/audit_data.proto +++ b/google/iam/v1/logging/audit_data.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.iam.v1.logging; -import "google/api/annotations.proto"; import "google/iam/v1/policy.proto"; option csharp_namespace = "Google.Cloud.Iam.V1.Logging"; diff --git a/google/iam/v1/options.proto b/google/iam/v1/options.proto index a4e17e588..4c94a36e5 100644 --- a/google/iam/v1/options.proto +++ b/google/iam/v1/options.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -11,14 +11,11 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -// syntax = "proto3"; package google.iam.v1; -import "google/api/annotations.proto"; - option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Iam.V1"; option go_package = "google.golang.org/genproto/googleapis/iam/v1;iam"; @@ -29,13 +26,23 @@ option php_namespace = "Google\\Cloud\\Iam\\V1"; // Encapsulates settings provided to GetIamPolicy. message GetPolicyOptions { - // Optional. The policy format version to be returned. + // Optional. The maximum policy version that will be used to format the + // policy. // // Valid values are 0, 1, and 3. Requests specifying an invalid value will be // rejected. // - // Requests for policies with any conditional bindings must specify version 3. - // Policies without any conditional bindings may specify any valid value or - // leave the field unset. + // Requests for policies with any conditional role bindings must specify + // version 3. Policies with no conditional role bindings may specify any valid + // value or leave the field unset. + // + // The policy in the response might use the policy version that you specified, + // or it might use a lower policy version. For example, if you specify version + // 3, but the policy has no conditional role bindings, the response uses + // version 1. + // + // To learn which resources support conditions in their IAM policies, see the + // [IAM + // documentation](https://cloud.google.com/iam/help/conditions/resource-policies). int32 requested_policy_version = 1; } diff --git a/google/iam/v1/policy.proto b/google/iam/v1/policy.proto index e3aba47e8..347ae7824 100644 --- a/google/iam/v1/policy.proto +++ b/google/iam/v1/policy.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// 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. @@ -11,14 +11,12 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -// syntax = "proto3"; package google.iam.v1; import "google/type/expr.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Iam.V1"; @@ -28,19 +26,24 @@ option java_outer_classname = "PolicyProto"; option java_package = "com.google.iam.v1"; option php_namespace = "Google\\Cloud\\Iam\\V1"; -// Defines an Identity and Access Management (IAM) policy. It is used to -// specify access control policies for Cloud Platform resources. +// 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` to a single `role`. Members can be user accounts, service accounts, -// Google groups, and domains (such as G Suite). A `role` is a named list of -// permissions (defined by IAM or configured by users). A `binding` can -// optionally specify a `condition`, which is a logic expression that further -// constrains the role binding based on attributes about the request and/or -// target resource. +// `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** +// **JSON example:** // // { // "bindings": [ @@ -55,18 +58,21 @@ option php_namespace = "Google\\Cloud\\Iam\\V1"; // }, // { // "role": "roles/resourcemanager.organizationViewer", -// "members": ["user:eve@example.com"], +// "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')", +// "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", // } // } -// ] +// ], +// "etag": "BwWWja0YfJA=", +// "version": 3 // } // -// **YAML Example** +// **YAML example:** // // bindings: // - members: @@ -82,31 +88,53 @@ option php_namespace = "Google\\Cloud\\Iam\\V1"; // 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 developer's guide](https://cloud.google.com/iam/docs). +// [IAM documentation](https://cloud.google.com/iam/docs/). message Policy { // Specifies the format of the policy. // - // Valid values are 0, 1, and 3. Requests specifying an invalid value will be - // rejected. + // 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. // - // Operations affecting conditional bindings must specify version 3. This can - // be either setting a conditional policy, modifying a conditional binding, - // or removing a binding (conditional or unconditional) from the stored - // conditional policy. - // Operations on non-conditional policies may specify any valid value or - // leave the field unset. + // If a policy does not include any conditions, operations on that policy may + // specify any valid version or leave the field unset. // - // If no etag is provided in the call to `setIamPolicy`, version compliance - // checks against the stored policy is skipped. + // To learn which resources support conditions in their IAM policies, see the + // [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). int32 version = 1; - // Associates a list of `members` to a `role`. Optionally may specify a - // `condition` that determines when binding is in effect. - // `bindings` with no members will result in an error. + // 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`. repeated Binding bindings = 4; + // Specifies cloud audit logging configuration for this policy. + repeated AuditConfig audit_configs = 6; + // `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 @@ -115,20 +143,20 @@ message Policy { // 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. // - // If no `etag` is provided in the call to `setIamPolicy`, then the existing - // policy is overwritten. Due to blind-set semantics of an etag-less policy, - // 'setIamPolicy' will not fail even if the incoming policy version does not - // meet the requirements for modifying the stored 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. bytes etag = 3; } -// Associates `members` with a `role`. +// Associates `members`, or principals, with a `role`. message Binding { - // Role that is assigned to `members`. + // Role that is assigned to the list of `members`, or principals. // For example, `roles/viewer`, `roles/editor`, or `roles/owner`. string role = 1; - // Specifies the identities requesting access for a Cloud Platform resource. + // Specifies the principals requesting access for a Cloud Platform resource. // `members` can have the following values: // // * `allUsers`: A special identifier that represents anyone who is @@ -147,6 +175,26 @@ message Binding { // * `group:{emailid}`: An email address that represents a Google group. // For example, `admins@example.com`. // + // * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + // identifier) representing a user that has been recently deleted. For + // example, `alice@example.com?uid=123456789012345678901`. If the user is + // recovered, this value reverts to `user:{emailid}` and the recovered user + // retains the role in the binding. + // + // * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + // unique identifier) representing a service account that has been recently + // deleted. For example, + // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + // If the service account is undeleted, this value reverts to + // `serviceAccount:{emailid}` and the undeleted service account retains the + // role in the binding. + // + // * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + // identifier) representing a Google group that has been recently + // deleted. For example, `admins@example.com?uid=123456789012345678901`. If + // the group is recovered, this value reverts to `group:{emailid}` and the + // recovered group retains the role in the binding. + // // // * `domain:{domain}`: The G Suite domain (primary) that represents all the // users of that domain. For example, `google.com` or `example.com`. @@ -155,12 +203,126 @@ message Binding { repeated string members = 2; // The condition that is associated with this binding. - // NOTE: An unsatisfied condition will not allow user access via current - // binding. Different bindings, including their conditions, are examined - // independently. + // + // 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). google.type.Expr condition = 3; } +// 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. +message AuditConfig { + // 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. + string service = 1; + + // The configuration for logging of each type of permission. + repeated AuditLogConfig audit_log_configs = 3; +} + +// 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. +message AuditLogConfig { + // The list of valid permission types for which logging can be configured. + // Admin writes are always logged, and are not configurable. + enum LogType { + // Default case. Should never be this. + LOG_TYPE_UNSPECIFIED = 0; + + // Admin reads. Example: CloudIAM getIamPolicy + ADMIN_READ = 1; + + // Data writes. Example: CloudSQL Users create + DATA_WRITE = 2; + + // Data reads. Example: CloudSQL Users list + DATA_READ = 3; + } + + // The log type that this config enables. + LogType log_type = 1; + + // Specifies the identities that do not cause logging for this type of + // permission. + // Follows the same format of [Binding.members][google.iam.v1.Binding.members]. + repeated string exempted_members = 2; +} + // The difference delta between two policies. message PolicyDelta { // The delta for Bindings between two policies. diff --git a/google/iam/v1beta/BUILD.bazel b/google/iam/v1beta/BUILD.bazel index 855a4f5e9..cba3c5b08 100644 --- a/google/iam/v1beta/BUILD.bazel +++ b/google/iam/v1beta/BUILD.bazel @@ -124,6 +124,7 @@ go_gapic_library( grpc_service_config = "iam_grpc_service_config.json", importpath = "cloud.google.com/go/iam/apiv1beta;iam", service_yaml = "iam_v1beta.yaml", + transport = "grpc+rest", deps = [ ":iam_go_proto", "//google/longrunning:longrunning_go_proto", @@ -156,12 +157,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "iam_py_gapic", srcs = [":iam_proto"], grpc_service_config = "iam_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "iam_py_gapic_test", + srcs = [ + "iam_py_gapic_pytest.py", + "iam_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":iam_py_gapic"], ) # Open Source Packages @@ -247,8 +260,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -266,7 +279,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "iam_ruby_gapic", - srcs = [":iam_proto_with_info",], + srcs = [":iam_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-iam-v1beta", "ruby-cloud-env-prefix=IAM", @@ -320,6 +333,7 @@ csharp_gapic_library( srcs = [":iam_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "iam_grpc_service_config.json", + service_yaml = "iam_v1beta.yaml", deps = [ ":iam_csharp_grpc", ":iam_csharp_proto", diff --git a/google/iam/v2/BUILD.bazel b/google/iam/v2/BUILD.bazel new file mode 100644 index 000000000..53bf23a4c --- /dev/null +++ b/google/iam/v2/BUILD.bazel @@ -0,0 +1,399 @@ +# 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 = "iam_proto", + srcs = [ + "deny.proto", + "policy.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/longrunning:operations_proto", + "//google/type:expr_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "iam_proto_with_info", + deps = [ + ":iam_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "iam_java_proto", + deps = [":iam_proto"], +) + +java_grpc_library( + name = "iam_java_grpc", + srcs = [":iam_proto"], + deps = [":iam_java_proto"], +) + +java_gapic_library( + name = "iam_java_gapic", + srcs = [":iam_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "iam_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "iam_v2.yaml", + test_deps = [ + ":iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":iam_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "iam_java_gapic_test_suite", + test_classes = [ + "com.google.iam.v2.PoliciesClientHttpJsonTest", + "com.google.iam.v2.PoliciesClientTest", + ], + runtime_deps = [":iam_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-iam-v2-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":iam_java_gapic", + ":iam_java_grpc", + ":iam_java_proto", + ":iam_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "iam_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/iam/v2", + protos = [":iam_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/type:expr_go_proto", + ], +) + +go_gapic_library( + name = "iam_go_gapic", + srcs = [":iam_proto_with_info"], + grpc_service_config = "iam_grpc_service_config.json", + importpath = "cloud.google.com/go/iam/apiv2;iam", + metadata = True, + rest_numeric_enums = False, + service_yaml = "iam_v2.yaml", + transport = "grpc+rest", + deps = [ + ":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", + ], +) + +go_test( + name = "iam_go_gapic_test", + srcs = [":iam_go_gapic_srcjar_test"], + embed = [":iam_go_gapic"], + importpath = "cloud.google.com/go/iam/apiv2", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-iam-v2-go", + deps = [ + ":iam_go_gapic", + ":iam_go_gapic_srcjar-metadata.srcjar", + ":iam_go_gapic_srcjar-test.srcjar", + ":iam_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "iam_py_gapic", + srcs = [":iam_proto"], + grpc_service_config = "iam_grpc_service_config.json", + opt_args = [ + "python-gapic-name=iam", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-iam", + ], + rest_numeric_enums = False, + service_yaml = "iam_v2.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "iam_py_gapic_test", + srcs = [ + "iam_py_gapic_pytest.py", + "iam_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":iam_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "iam-v2-py", + deps = [ + ":iam_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "iam_php_proto", + deps = [":iam_proto"], +) + +php_grpc_library( + name = "iam_php_grpc", + srcs = [":iam_proto"], + deps = [":iam_php_proto"], +) + +php_gapic_library( + name = "iam_php_gapic", + srcs = [":iam_proto_with_info"], + grpc_service_config = "iam_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "iam_v2.yaml", + deps = [ + ":iam_php_grpc", + ":iam_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-iam-v2-php", + deps = [ + ":iam_php_gapic", + ":iam_php_grpc", + ":iam_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "iam_nodejs_gapic", + package_name = "@google-cloud/iam", + src = ":iam_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "iam_grpc_service_config.json", + package = "google.iam.v2", + rest_numeric_enums = False, + service_yaml = "iam_v2.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "iam-v2-nodejs", + deps = [ + ":iam_nodejs_gapic", + ":iam_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 = "iam_ruby_proto", + deps = [":iam_proto"], +) + +ruby_grpc_library( + name = "iam_ruby_grpc", + srcs = [":iam_proto"], + deps = [":iam_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "iam_ruby_gapic", + srcs = [":iam_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=iam.googleapis.com", + "ruby-cloud-api-shortname=iam", + "ruby-cloud-gem-name=google-iam-v2", + "ruby-cloud-product-url=https://cloud.google.com/iam", + "ruby-cloud-wrapper-gem-override=google-iam-client", + ], + grpc_service_config = "iam_grpc_service_config.json", + rest_numeric_enums = False, + ruby_cloud_description = "Manages identity and access control policies for Google Cloud Platform resources.", + ruby_cloud_title = "IAM V2", + service_yaml = "iam_v2.yaml", + deps = [ + ":iam_ruby_grpc", + ":iam_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-iam-v2-ruby", + deps = [ + ":iam_ruby_gapic", + ":iam_ruby_grpc", + ":iam_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 = "iam_csharp_proto", + deps = [":iam_proto"], +) + +csharp_grpc_library( + name = "iam_csharp_grpc", + srcs = [":iam_proto"], + deps = [":iam_csharp_proto"], +) + +csharp_gapic_library( + name = "iam_csharp_gapic", + srcs = [":iam_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "iam_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "iam_v2.yaml", + deps = [ + ":iam_csharp_grpc", + ":iam_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-iam-v2-csharp", + deps = [ + ":iam_csharp_gapic", + ":iam_csharp_grpc", + ":iam_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "iam_cc_proto", + deps = [":iam_proto"], +) + +cc_grpc_library( + name = "iam_cc_grpc", + srcs = [":iam_proto"], + grpc_only = True, + deps = [":iam_cc_proto"], +) diff --git a/google/iam/v2/deny.proto b/google/iam/v2/deny.proto new file mode 100644 index 000000000..db9f15f89 --- /dev/null +++ b/google/iam/v2/deny.proto @@ -0,0 +1,109 @@ +// 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.iam.v2; + +import "google/type/expr.proto"; + +option csharp_namespace = "Google.Cloud.Iam.V2"; +option go_package = "google.golang.org/genproto/googleapis/iam/v2;iam"; +option java_multiple_files = true; +option java_outer_classname = "DenyRuleProto"; +option java_package = "com.google.iam.v2"; +option php_namespace = "Google\\Cloud\\Iam\\V2"; + +// A deny rule in an IAM deny policy. +message DenyRule { + // The identities that are prevented from using one or more permissions on + // Google Cloud resources. This field can contain the following values: + // + // * `principalSet://goog/public:all`: A special identifier that represents + // any principal that is on the internet, even if they do not have a Google + // Account or are not logged in. + // + // * `principal://goog/subject/{email_id}`: A specific Google Account. + // Includes Gmail, Cloud Identity, and Google Workspace user accounts. For + // example, `principal://goog/subject/alice@example.com`. + // + // * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific + // Google Account that was deleted recently. For example, + // `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If + // the Google Account is recovered, this identifier reverts to the standard + // identifier for a Google Account. + // + // * `principalSet://goog/group/{group_id}`: A Google group. For example, + // `principalSet://goog/group/admins@example.com`. + // + // * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group + // that was deleted recently. For example, + // `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`. If + // the Google group is restored, this identifier reverts to the standard + // identifier for a Google group. + // + // * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`: + // A Google Cloud service account. For example, + // `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`. + // + // * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`: + // A Google Cloud service account that was deleted recently. For example, + // `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`. + // If the service account is undeleted, this identifier reverts to the + // standard identifier for a service account. + // + // * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the + // principals associated with the specified Google Workspace or Cloud + // Identity customer ID. For example, + // `principalSet://goog/cloudIdentityCustomerId/C01Abc35`. + repeated string denied_principals = 1; + + // The identities that are excluded from the deny rule, even if they are + // listed in the `denied_principals`. For example, you could add a Google + // group to the `denied_principals`, then exclude specific users who belong to + // that group. + // + // This field can contain the same values as the `denied_principals` field, + // excluding `principalSet://goog/public:all`, which represents all users on + // the internet. + repeated string exception_principals = 2; + + // The permissions that are explicitly denied by this rule. Each permission + // uses the format `{service_fqdn}/{resource}.{verb}`, where `{service_fqdn}` + // is the fully qualified domain name for the service. For example, + // `iam.googleapis.com/roles.list`. + repeated string denied_permissions = 3; + + // Specifies the permissions that this rule excludes from the set of denied + // permissions given by `denied_permissions`. If a permission appears in + // `denied_permissions` _and_ in `exception_permissions` then it will _not_ be + // denied. + // + // The excluded permissions can be specified using the same syntax as + // `denied_permissions`. + repeated string exception_permissions = 4; + + // The condition that determines whether this deny rule applies to a request. + // If the condition expression evaluates to `true`, then the deny rule is + // applied; otherwise, the deny rule is not applied. + // + // Each deny rule is evaluated independently. If this deny rule does not apply + // to a request, other deny rules might still apply. + // + // The condition can use CEL functions that evaluate + // [resource + // tags](https://cloud.google.com/iam/help/conditions/resource-tags). Other + // functions and operators are not supported. + google.type.Expr denial_condition = 5; +} diff --git a/google/iam/v2/iam_grpc_service_config.json b/google/iam/v2/iam_grpc_service_config.json new file mode 100644 index 000000000..603087e01 --- /dev/null +++ b/google/iam/v2/iam_grpc_service_config.json @@ -0,0 +1,38 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.iam.v2.Policies", + "method": "ListPolicies" + }, + { + "service": "google.iam.v2.Policies", + "method": "GetPolicy" + }, + { + "service": "google.iam.v2.Policies", + "method": "CreatePolicy" + }, + { + "service": "google.iam.v2.Policies", + "method": "UpdatePolicy" + }, + { + "service": "google.iam.v2.Policies", + "method": "DeletePolicy" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } + } + ] +} diff --git a/google/iam/v2/iam_v2.yaml b/google/iam/v2/iam_v2.yaml new file mode 100644 index 000000000..9e03ac8a2 --- /dev/null +++ b/google/iam/v2/iam_v2.yaml @@ -0,0 +1,33 @@ +type: google.api.Service +config_version: 3 +name: iam.googleapis.com +title: Identity and Access Management (IAM) API + +apis: +- name: google.iam.v2.Policies +- name: google.longrunning.Operations + +types: +- name: google.iam.v2.PolicyOperationMetadata + +documentation: + summary: |- + Manages identity and access control for Google Cloud Platform resources, + including the creation of service accounts, which you can use to + authenticate to Google and make API calls. + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v2/{name=policies/*/*/*/operations/*}' + +authentication: + rules: + - selector: 'google.iam.v2.Policies.*' + 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 diff --git a/google/iam/v2/policy.proto b/google/iam/v2/policy.proto new file mode 100644 index 000000000..d8923d3b8 --- /dev/null +++ b/google/iam/v2/policy.proto @@ -0,0 +1,287 @@ +// 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.iam.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/iam/v2/deny.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Iam.V2"; +option go_package = "google.golang.org/genproto/googleapis/iam/v2;iam"; +option java_multiple_files = true; +option java_outer_classname = "PolicyProto"; +option java_package = "com.google.iam.v2"; +option php_namespace = "Google\\Cloud\\Iam\\V2"; + +// An interface for managing Identity and Access Management (IAM) policies. +service Policies { + option (google.api.default_host) = "iam.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Retrieves the policies of the specified kind that are attached to a + // resource. + // + // The response lists only policy metadata. In particular, policy rules are + // omitted. + rpc ListPolicies(ListPoliciesRequest) returns (ListPoliciesResponse) { + option (google.api.http) = { + get: "/v2/{parent=policies/*/*}" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a policy. + rpc GetPolicy(GetPolicyRequest) returns (Policy) { + option (google.api.http) = { + get: "/v2/{name=policies/*/*/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a policy. + rpc CreatePolicy(CreatePolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=policies/*/*}" + body: "policy" + }; + option (google.api.method_signature) = "parent,policy,policy_id"; + option (google.longrunning.operation_info) = { + response_type: "Policy" + metadata_type: "PolicyOperationMetadata" + }; + } + + // Updates the specified policy. + // + // You can update only the rules and the display name for the policy. + // + // To update a policy, you should use a read-modify-write loop: + // + // 1. Use [GetPolicy][google.iam.v2.Policies.GetPolicy] to read the current version of the policy. + // 2. Modify the policy as needed. + // 3. Use `UpdatePolicy` to write the updated policy. + // + // This pattern helps prevent conflicts between concurrent updates. + rpc UpdatePolicy(UpdatePolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + put: "/v2/{policy.name=policies/*/*/*}" + body: "policy" + }; + option (google.longrunning.operation_info) = { + response_type: "Policy" + metadata_type: "PolicyOperationMetadata" + }; + } + + // Deletes a policy. This action is permanent. + rpc DeletePolicy(DeletePolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=policies/*/*/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Policy" + metadata_type: "PolicyOperationMetadata" + }; + } +} + +// Data for an IAM policy. +message Policy { + // Immutable. The resource name of the `Policy`, which must be unique. Format: + // `policies/{attachment_point}/denypolicies/{policy_id}` + // + // + // The attachment point is identified by its URL-encoded full resource name, + // which means that the forward-slash character, `/`, must be written as + // `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies/my-deny-policy`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, requests can use the alphanumeric or the numeric ID. + // Responses always contain the numeric ID. + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The globally unique ID of the `Policy`. Assigned automatically when the + // `Policy` is created. + string uid = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The kind of the `Policy`. Always contains the value `DenyPolicy`. + string kind = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A user-specified description of the `Policy`. This value can be up to 63 + // characters. + string display_name = 4; + + // A key-value map to store arbitrary metadata for the `Policy`. Keys + // can be up to 63 characters. Values can be up to 255 characters. + map annotations = 5; + + // An opaque tag that identifies the current version of the `Policy`. IAM uses + // this value to help manage concurrent updates, so they do not cause one + // update to be overwritten by another. + // + // If this field is present in a [CreatePolicy][] request, the value is + // ignored. + string etag = 6; + + // Output only. The time when the `Policy` was created. + google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the `Policy` was last updated. + google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the `Policy` was deleted. Empty if the policy is not deleted. + google.protobuf.Timestamp delete_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A list of rules that specify the behavior of the `Policy`. All of the rules + // should be of the `kind` specified in the `Policy`. + repeated PolicyRule rules = 10; + + // Immutable. Specifies that this policy is managed by an authority and can only be + // modified by that authority. Usage is restricted. + string managing_authority = 11 [(google.api.field_behavior) = IMMUTABLE]; +} + +// A single rule in a `Policy`. +message PolicyRule { + oneof kind { + // A rule for a deny policy. + DenyRule deny_rule = 2; + } + + // A user-specified description of the rule. This value can be up to 256 + // characters. + string description = 1; +} + +// Request message for `ListPolicies`. +message ListPoliciesRequest { + // Required. The resource that the policy is attached to, along with the kind of policy + // to list. Format: + // `policies/{attachment_point}/denypolicies` + // + // + // The attachment point is identified by its URL-encoded full resource name, + // which means that the forward-slash character, `/`, must be written as + // `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, you can use the alphanumeric or the numeric ID. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of policies to return. IAM ignores this value and uses + // the value 1000. + int32 page_size = 2; + + // A page token received in a [ListPoliciesResponse][google.iam.v2.ListPoliciesResponse]. Provide this token to + // retrieve the next page. + string page_token = 3; +} + +// Response message for `ListPolicies`. +message ListPoliciesResponse { + // Metadata for the policies that are attached to the resource. + repeated Policy policies = 1; + + // A page token that you can use in a [ListPoliciesRequest][google.iam.v2.ListPoliciesRequest] to retrieve the + // next page. If this field is omitted, there are no additional pages. + string next_page_token = 2; +} + +// Request message for `GetPolicy`. +message GetPolicyRequest { + // Required. The resource name of the policy to retrieve. Format: + // `policies/{attachment_point}/denypolicies/{policy_id}` + // + // + // Use the URL-encoded full resource name, which means that the forward-slash + // character, `/`, must be written as `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies/my-policy`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, you can use the alphanumeric or the numeric ID. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for `CreatePolicy`. +message CreatePolicyRequest { + // Required. The resource that the policy is attached to, along with the kind of policy + // to create. Format: `policies/{attachment_point}/denypolicies` + // + // + // The attachment point is identified by its URL-encoded full resource name, + // which means that the forward-slash character, `/`, must be written as + // `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, you can use the alphanumeric or the numeric ID. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The policy to create. + Policy policy = 2 [(google.api.field_behavior) = REQUIRED]; + + // The ID to use for this policy, which will become the final component of + // the policy's resource name. The ID must contain 3 to 63 characters. It can + // contain lowercase letters and numbers, as well as dashes (`-`) and periods + // (`.`). The first character must be a lowercase letter. + string policy_id = 3; +} + +// Request message for `UpdatePolicy`. +message UpdatePolicyRequest { + // Required. The policy to update. + // + // To prevent conflicting updates, the `etag` value must match the value that + // is stored in IAM. If the `etag` values do not match, the request fails with + // a `409` error code and `ABORTED` status. + Policy policy = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for `DeletePolicy`. +message DeletePolicyRequest { + // Required. The resource name of the policy to delete. Format: + // `policies/{attachment_point}/denypolicies/{policy_id}` + // + // + // Use the URL-encoded full resource name, which means that the forward-slash + // character, `/`, must be written as `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies/my-policy`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, you can use the alphanumeric or the numeric ID. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The expected `etag` of the policy to delete. If the value does not match + // the value that is stored in IAM, the request fails with a `409` error code + // and `ABORTED` status. + // + // If you omit this field, the policy is deleted regardless of its current + // `etag`. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata for long-running `Policy` operations. +message PolicyOperationMetadata { + // Timestamp when the `google.longrunning.Operation` was created. + google.protobuf.Timestamp create_time = 1; +} diff --git a/google/iam/v2beta/BUILD.bazel b/google/iam/v2beta/BUILD.bazel new file mode 100644 index 000000000..b614c4e61 --- /dev/null +++ b/google/iam/v2beta/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. + +# 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 = "iam_proto", + srcs = [ + "deny.proto", + "policy.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/longrunning:operations_proto", + "//google/type:expr_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "iam_proto_with_info", + deps = [ + ":iam_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "iam_java_proto", + deps = [":iam_proto"], +) + +java_grpc_library( + name = "iam_java_grpc", + srcs = [":iam_proto"], + deps = [":iam_java_proto"], +) + +java_gapic_library( + name = "iam_java_gapic", + srcs = [":iam_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "iam_grpc_service_config.json", + service_yaml = "iam_v2beta.yaml", + test_deps = [ + ":iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":iam_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "iam_java_gapic_test_suite", + test_classes = [ + "com.google.iam.v2beta.PoliciesClientHttpJsonTest", + "com.google.iam.v2beta.PoliciesClientTest", + ], + runtime_deps = [":iam_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-iam-v2beta-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":iam_java_gapic", + ":iam_java_grpc", + ":iam_java_proto", + ":iam_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "iam_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/iam/v2beta", + protos = [":iam_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/type:expr_go_proto", + ], +) + +go_gapic_library( + name = "iam_go_gapic", + srcs = [":iam_proto_with_info"], + grpc_service_config = "iam_grpc_service_config.json", + importpath = "cloud.google.com/go/iam/apiv2beta;iam", + metadata = True, + service_yaml = "iam_v2beta.yaml", + transport = "grpc+rest", + deps = [ + ":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", + ], +) + +go_test( + name = "iam_go_gapic_test", + srcs = [":iam_go_gapic_srcjar_test"], + embed = [":iam_go_gapic"], + importpath = "cloud.google.com/go/iam/apiv2beta", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-iam-v2beta-go", + deps = [ + ":iam_go_gapic", + ":iam_go_gapic_srcjar-metadata.srcjar", + ":iam_go_gapic_srcjar-test.srcjar", + ":iam_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "iam_py_gapic", + srcs = [":iam_proto"], + grpc_service_config = "iam_grpc_service_config.json", + opt_args = [ + "python-gapic-name=iam", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-iam", + ], + service_yaml = "iam_v2beta.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "iam_py_gapic_test", + srcs = [ + "iam_py_gapic_pytest.py", + "iam_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":iam_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "iam-v2beta-py", + deps = [ + ":iam_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "iam_php_proto", + deps = [":iam_proto"], +) + +php_grpc_library( + name = "iam_php_grpc", + srcs = [":iam_proto"], + deps = [":iam_php_proto"], +) + +php_gapic_library( + name = "iam_php_gapic", + srcs = [":iam_proto_with_info"], + grpc_service_config = "iam_grpc_service_config.json", + service_yaml = "iam_v2beta.yaml", + deps = [ + ":iam_php_grpc", + ":iam_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-iam-v2beta-php", + deps = [ + ":iam_php_gapic", + ":iam_php_grpc", + ":iam_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "iam_nodejs_gapic", + package_name = "@google-cloud/iam", + src = ":iam_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "iam_grpc_service_config.json", + package = "google.iam.v2beta", + service_yaml = "iam_v2beta.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "iam-v2beta-nodejs", + deps = [ + ":iam_nodejs_gapic", + ":iam_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 = "iam_ruby_proto", + deps = [":iam_proto"], +) + +ruby_grpc_library( + name = "iam_ruby_grpc", + srcs = [":iam_proto"], + deps = [":iam_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "iam_ruby_gapic", + srcs = [":iam_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-iam-v2beta"], + grpc_service_config = "iam_grpc_service_config.json", + service_yaml = "iam_v2beta.yaml", + deps = [ + ":iam_ruby_grpc", + ":iam_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-iam-v2beta-ruby", + deps = [ + ":iam_ruby_gapic", + ":iam_ruby_grpc", + ":iam_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 = "iam_csharp_proto", + deps = [":iam_proto"], +) + +csharp_grpc_library( + name = "iam_csharp_grpc", + srcs = [":iam_proto"], + deps = [":iam_csharp_proto"], +) + +csharp_gapic_library( + name = "iam_csharp_gapic", + srcs = [":iam_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "iam_grpc_service_config.json", + service_yaml = "iam_v2beta.yaml", + deps = [ + ":iam_csharp_grpc", + ":iam_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-iam-v2beta-csharp", + deps = [ + ":iam_csharp_gapic", + ":iam_csharp_grpc", + ":iam_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "iam_cc_proto", + deps = [":iam_proto"], +) + +cc_grpc_library( + name = "iam_cc_grpc", + srcs = [":iam_proto"], + grpc_only = True, + deps = [":iam_cc_proto"], +) diff --git a/google/iam/v2beta/deny.proto b/google/iam/v2beta/deny.proto new file mode 100644 index 000000000..73ae7bbdf --- /dev/null +++ b/google/iam/v2beta/deny.proto @@ -0,0 +1,109 @@ +// 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.iam.v2beta; + +import "google/type/expr.proto"; + +option csharp_namespace = "Google.Cloud.Iam.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/iam/v2beta;iam"; +option java_multiple_files = true; +option java_outer_classname = "DenyRuleProto"; +option java_package = "com.google.iam.v2beta"; +option php_namespace = "Google\\Cloud\\Iam\\V2beta"; + +// A deny rule in an IAM deny policy. +message DenyRule { + // The identities that are prevented from using one or more permissions on + // Google Cloud resources. This field can contain the following values: + // + // * `principalSet://goog/public:all`: A special identifier that represents + // any principal that is on the internet, even if they do not have a Google + // Account or are not logged in. + // + // * `principal://goog/subject/{email_id}`: A specific Google Account. + // Includes Gmail, Cloud Identity, and Google Workspace user accounts. For + // example, `principal://goog/subject/alice@example.com`. + // + // * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific + // Google Account that was deleted recently. For example, + // `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If + // the Google Account is recovered, this identifier reverts to the standard + // identifier for a Google Account. + // + // * `principalSet://goog/group/{group_id}`: A Google group. For example, + // `principalSet://goog/group/admins@example.com`. + // + // * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group + // that was deleted recently. For example, + // `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`. If + // the Google group is restored, this identifier reverts to the standard + // identifier for a Google group. + // + // * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`: + // A Google Cloud service account. For example, + // `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`. + // + // * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`: + // A Google Cloud service account that was deleted recently. For example, + // `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`. + // If the service account is undeleted, this identifier reverts to the + // standard identifier for a service account. + // + // * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the + // principals associated with the specified Google Workspace or Cloud + // Identity customer ID. For example, + // `principalSet://goog/cloudIdentityCustomerId/C01Abc35`. + repeated string denied_principals = 1; + + // The identities that are excluded from the deny rule, even if they are + // listed in the `denied_principals`. For example, you could add a Google + // group to the `denied_principals`, then exclude specific users who belong to + // that group. + // + // This field can contain the same values as the `denied_principals` field, + // excluding `principalSet://goog/public:all`, which represents all users on + // the internet. + repeated string exception_principals = 2; + + // The permissions that are explicitly denied by this rule. Each permission + // uses the format `{service_fqdn}/{resource}.{verb}`, where `{service_fqdn}` + // is the fully qualified domain name for the service. For example, + // `iam.googleapis.com/roles.list`. + repeated string denied_permissions = 3; + + // Specifies the permissions that this rule excludes from the set of denied + // permissions given by `denied_permissions`. If a permission appears in + // `denied_permissions` _and_ in `exception_permissions` then it will _not_ be + // denied. + // + // The excluded permissions can be specified using the same syntax as + // `denied_permissions`. + repeated string exception_permissions = 4; + + // The condition that determines whether this deny rule applies to a request. + // If the condition expression evaluates to `true`, then the deny rule is + // applied; otherwise, the deny rule is not applied. + // + // Each deny rule is evaluated independently. If this deny rule does not apply + // to a request, other deny rules might still apply. + // + // The condition can use CEL functions that evaluate + // [resource + // tags](https://cloud.google.com/iam/help/conditions/resource-tags). Other + // functions and operators are not supported. + google.type.Expr denial_condition = 5; +} diff --git a/google/iam/v2beta/iam_grpc_service_config.json b/google/iam/v2beta/iam_grpc_service_config.json new file mode 100644 index 000000000..8db9764f0 --- /dev/null +++ b/google/iam/v2beta/iam_grpc_service_config.json @@ -0,0 +1,42 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.iam.v2beta.Policies", + "method": "ListPolicies" + }, + { + "service": "google.iam.v2beta.Policies", + "method": "GetPolicy" + }, + { + "service": "google.iam.v2beta.Policies", + "method": "CreatePolicy" + }, + { + "service": "google.iam.v2beta.Policies", + "method": "UpdatePolicy" + }, + { + "service": "google.iam.v2beta.Policies", + "method": "DeletePolicy" + }, + { + "service": "google.iam.v2beta.Policies", + "method": "GetEffectivePolicies" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } + } + ] +} diff --git a/google/iam/v2beta/iam_v2beta.yaml b/google/iam/v2beta/iam_v2beta.yaml new file mode 100644 index 000000000..a7d8d0158 --- /dev/null +++ b/google/iam/v2beta/iam_v2beta.yaml @@ -0,0 +1,33 @@ +type: google.api.Service +config_version: 3 +name: iam.googleapis.com +title: Identity and Access Management (IAM) API + +apis: +- name: google.iam.v2beta.Policies +- name: google.longrunning.Operations + +types: +- name: google.iam.v2beta.PolicyOperationMetadata + +documentation: + summary: |- + Manages identity and access control for Google Cloud Platform resources, + including the creation of service accounts, which you can use to + authenticate to Google and make API calls. + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v2beta/{name=policies/*/*/*/operations/*}' + +authentication: + rules: + - selector: 'google.iam.v2beta.Policies.*' + 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 diff --git a/google/iam/v2beta/policy.proto b/google/iam/v2beta/policy.proto new file mode 100644 index 000000000..99df3db0a --- /dev/null +++ b/google/iam/v2beta/policy.proto @@ -0,0 +1,283 @@ +// 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.iam.v2beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/iam/v2beta/deny.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Iam.V2Beta"; +option go_package = "google.golang.org/genproto/googleapis/iam/v2beta;iam"; +option java_multiple_files = true; +option java_outer_classname = "PolicyProto"; +option java_package = "com.google.iam.v2beta"; +option php_namespace = "Google\\Cloud\\Iam\\V2beta"; + +// An interface for managing Identity and Access Management (IAM) policies. +service Policies { + option (google.api.default_host) = "iam.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Retrieves the policies of the specified kind that are attached to a + // resource. + // + // The response lists only policy metadata. In particular, policy rules are + // omitted. + rpc ListPolicies(ListPoliciesRequest) returns (ListPoliciesResponse) { + option (google.api.http) = { + get: "/v2beta/{parent=policies/*/*}" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a policy. + rpc GetPolicy(GetPolicyRequest) returns (Policy) { + option (google.api.http) = { + get: "/v2beta/{name=policies/*/*/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a policy. + rpc CreatePolicy(CreatePolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{parent=policies/*/*}" + body: "policy" + }; + option (google.api.method_signature) = "parent,policy,policy_id"; + option (google.longrunning.operation_info) = { + response_type: "Policy" + metadata_type: "PolicyOperationMetadata" + }; + } + + // Updates the specified policy. + // + // You can update only the rules and the display name for the policy. + // + // To update a policy, you should use a read-modify-write loop: + // + // 1. Use [GetPolicy][google.iam.v2beta.Policies.GetPolicy] to read the current version of the policy. + // 2. Modify the policy as needed. + // 3. Use `UpdatePolicy` to write the updated policy. + // + // This pattern helps prevent conflicts between concurrent updates. + rpc UpdatePolicy(UpdatePolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + put: "/v2beta/{policy.name=policies/*/*/*}" + body: "policy" + }; + option (google.longrunning.operation_info) = { + response_type: "Policy" + metadata_type: "PolicyOperationMetadata" + }; + } + + // Deletes a policy. This action is permanent. + rpc DeletePolicy(DeletePolicyRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2beta/{name=policies/*/*/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Policy" + metadata_type: "PolicyOperationMetadata" + }; + } +} + +// Data for an IAM policy. +message Policy { + // Immutable. The resource name of the `Policy`, which must be unique. Format: + // `policies/{attachment_point}/denypolicies/{policy_id}` + // + // + // The attachment point is identified by its URL-encoded full resource name, + // which means that the forward-slash character, `/`, must be written as + // `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies/my-deny-policy`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, requests can use the alphanumeric or the numeric ID. + // Responses always contain the numeric ID. + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The globally unique ID of the `Policy`. Assigned automatically when the + // `Policy` is created. + string uid = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The kind of the `Policy`. Always contains the value `DenyPolicy`. + string kind = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A user-specified description of the `Policy`. This value can be up to 63 + // characters. + string display_name = 4; + + // A key-value map to store arbitrary metadata for the `Policy`. Keys + // can be up to 63 characters. Values can be up to 255 characters. + map annotations = 5; + + // An opaque tag that identifies the current version of the `Policy`. IAM uses + // this value to help manage concurrent updates, so they do not cause one + // update to be overwritten by another. + // + // If this field is present in a [CreatePolicy][] request, the value is + // ignored. + string etag = 6; + + // Output only. The time when the `Policy` was created. + google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the `Policy` was last updated. + google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the `Policy` was deleted. Empty if the policy is not deleted. + google.protobuf.Timestamp delete_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A list of rules that specify the behavior of the `Policy`. All of the rules + // should be of the `kind` specified in the `Policy`. + repeated PolicyRule rules = 10; +} + +// A single rule in a `Policy`. +message PolicyRule { + oneof kind { + // A rule for a deny policy. + DenyRule deny_rule = 2; + } + + // A user-specified description of the rule. This value can be up to 256 + // characters. + string description = 1; +} + +// Request message for `ListPolicies`. +message ListPoliciesRequest { + // Required. The resource that the policy is attached to, along with the kind of policy + // to list. Format: + // `policies/{attachment_point}/denypolicies` + // + // + // The attachment point is identified by its URL-encoded full resource name, + // which means that the forward-slash character, `/`, must be written as + // `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, you can use the alphanumeric or the numeric ID. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of policies to return. IAM ignores this value and uses + // the value 1000. + int32 page_size = 2; + + // A page token received in a [ListPoliciesResponse][google.iam.v2beta.ListPoliciesResponse]. Provide this token to + // retrieve the next page. + string page_token = 3; +} + +// Response message for `ListPolicies`. +message ListPoliciesResponse { + // Metadata for the policies that are attached to the resource. + repeated Policy policies = 1; + + // A page token that you can use in a [ListPoliciesRequest][google.iam.v2beta.ListPoliciesRequest] to retrieve the + // next page. If this field is omitted, there are no additional pages. + string next_page_token = 2; +} + +// Request message for `GetPolicy`. +message GetPolicyRequest { + // Required. The resource name of the policy to retrieve. Format: + // `policies/{attachment_point}/denypolicies/{policy_id}` + // + // + // Use the URL-encoded full resource name, which means that the forward-slash + // character, `/`, must be written as `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies/my-policy`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, you can use the alphanumeric or the numeric ID. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for `CreatePolicy`. +message CreatePolicyRequest { + // Required. The resource that the policy is attached to, along with the kind of policy + // to create. Format: `policies/{attachment_point}/denypolicies` + // + // + // The attachment point is identified by its URL-encoded full resource name, + // which means that the forward-slash character, `/`, must be written as + // `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, you can use the alphanumeric or the numeric ID. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The policy to create. + Policy policy = 2 [(google.api.field_behavior) = REQUIRED]; + + // The ID to use for this policy, which will become the final component of + // the policy's resource name. The ID must contain 3 to 63 characters. It can + // contain lowercase letters and numbers, as well as dashes (`-`) and periods + // (`.`). The first character must be a lowercase letter. + string policy_id = 3; +} + +// Request message for `UpdatePolicy`. +message UpdatePolicyRequest { + // Required. The policy to update. + // + // To prevent conflicting updates, the `etag` value must match the value that + // is stored in IAM. If the `etag` values do not match, the request fails with + // a `409` error code and `ABORTED` status. + Policy policy = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for `DeletePolicy`. +message DeletePolicyRequest { + // Required. The resource name of the policy to delete. Format: + // `policies/{attachment_point}/denypolicies/{policy_id}` + // + // + // Use the URL-encoded full resource name, which means that the forward-slash + // character, `/`, must be written as `%2F`. For example, + // `policies/cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies/my-policy`. + // + // For organizations and folders, use the numeric ID in the full resource + // name. For projects, you can use the alphanumeric or the numeric ID. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The expected `etag` of the policy to delete. If the value does not match + // the value that is stored in IAM, the request fails with a `409` error code + // and `ABORTED` status. + // + // If you omit this field, the policy is deleted regardless of its current + // `etag`. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata for long-running `Policy` operations. +message PolicyOperationMetadata { + // Timestamp when the `google.longrunning.Operation` was created. + google.protobuf.Timestamp create_time = 1; +} diff --git a/google/identity/accesscontextmanager/type/BUILD.bazel b/google/identity/accesscontextmanager/type/BUILD.bazel index d9f478c79..b3d562791 100644 --- a/google/identity/accesscontextmanager/type/BUILD.bazel +++ b/google/identity/accesscontextmanager/type/BUILD.bazel @@ -42,6 +42,7 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-accesscontextmanager-type-java", + transport = "grpc+rest", deps = [ ":type_java_grpc", ":type_java_proto", diff --git a/google/identity/accesscontextmanager/type/device_resources.proto b/google/identity/accesscontextmanager/type/device_resources.proto index e25367638..a3f000cf8 100644 --- a/google/identity/accesscontextmanager/type/device_resources.proto +++ b/google/identity/accesscontextmanager/type/device_resources.proto @@ -16,8 +16,6 @@ syntax = "proto3"; package google.identity.accesscontextmanager.type; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Identity.AccessContextManager.Type"; option go_package = "google.golang.org/genproto/googleapis/identity/accesscontextmanager/type"; option java_package = "com.google.identity.accesscontextmanager.type"; diff --git a/google/identity/accesscontextmanager/v1/BUILD.bazel b/google/identity/accesscontextmanager/v1/BUILD.bazel index 8d5eb4058..ed6c4a7c7 100644 --- a/google/identity/accesscontextmanager/v1/BUILD.bazel +++ b/google/identity/accesscontextmanager/v1/BUILD.bazel @@ -24,8 +24,8 @@ proto_library( "access_context_manager.proto", "access_level.proto", "access_policy.proto", - "service_perimeter.proto", "gcp_user_access_binding.proto", + "service_perimeter.proto", ], deps = [ "//google/api:annotations_proto", @@ -48,6 +48,41 @@ proto_library_with_info( ], ) +proto_library( + name = "access_level_proto", + srcs = [ + "access_level.proto", + ], + deps = [ + "//google/api:resource_proto", + "//google/identity/accesscontextmanager/type:type_proto", + "//google/type:expr_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library( + name = "access_policy_proto", + srcs = [ + "access_policy.proto", + ], + deps = [ + "//google/api:resource_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library( + name = "service_perimeter_proto", + srcs = [ + "service_perimeter.proto", + ], + deps = [ + "//google/api:resource_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + ############################################################################## # Java ############################################################################## @@ -78,6 +113,7 @@ java_gapic_library( test_deps = [ ":accesscontextmanager_java_grpc", ], + transport = "grpc+rest", deps = [ ":accesscontextmanager_java_proto", ], @@ -86,6 +122,7 @@ java_gapic_library( java_gapic_test( name = "accesscontextmanager_java_gapic_test_suite", test_classes = [ + "com.google.identity.accesscontextmanager.v1.AccessContextManagerClientHttpJsonTest", "com.google.identity.accesscontextmanager.v1.AccessContextManagerClientTest", ], runtime_deps = [":accesscontextmanager_java_gapic_test"], @@ -94,6 +131,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-accesscontextmanager-v1-java", + transport = "grpc+rest", deps = [ ":accesscontextmanager_java_gapic", ":accesscontextmanager_java_grpc", @@ -133,6 +171,7 @@ go_gapic_library( importpath = "cloud.google.com/go/identity/accesscontextmanager/apiv1;accesscontextmanager", metadata = True, service_yaml = "accesscontextmanager_v1.yaml", + transport = "grpc+rest", deps = [ ":accesscontextmanager_go_proto", "//google/longrunning:longrunning_go_proto", @@ -166,14 +205,42 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_proto_library", +) + +py_proto_library( + name = "access_level_py_proto", + deps = ["access_level_proto"], +) + +py_proto_library( + name = "access_policy_py_proto", + deps = ["access_policy_proto"], +) + +py_proto_library( + name = "service_perimeter_py_proto", + deps = ["service_perimeter_proto"], ) py_gapic_library( name = "accesscontextmanager_py_gapic", srcs = [":accesscontextmanager_proto"], grpc_service_config = "accesscontextmanager_grpc_service_config.json", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1376 is fixed +#py_test( +# name = "accesscontextmanager_py_gapic_test", +# srcs = [ +# "accesscontextmanager_py_gapic_pytest.py", +# "accesscontextmanager_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":accesscontextmanager_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "identity-accesscontextmanager-v1-py", @@ -250,7 +317,7 @@ nodejs_gapic_assembly_pkg( deps = [ ":accesscontextmanager_nodejs_gapic", ":accesscontextmanager_proto", - "//google/identity/accesscontextmanager/type:type_proto" + "//google/identity/accesscontextmanager/type:type_proto", ], ) @@ -334,6 +401,7 @@ csharp_gapic_library( srcs = [":accesscontextmanager_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "accesscontextmanager_grpc_service_config.json", + service_yaml = "accesscontextmanager_v1.yaml", deps = [ ":accesscontextmanager_csharp_grpc", ":accesscontextmanager_csharp_proto", diff --git a/google/identity/accesscontextmanager/v1/access_level.proto b/google/identity/accesscontextmanager/v1/access_level.proto index cb9be7df1..c4eece0a5 100644 --- a/google/identity/accesscontextmanager/v1/access_level.proto +++ b/google/identity/accesscontextmanager/v1/access_level.proto @@ -20,7 +20,6 @@ import "google/api/resource.proto"; import "google/identity/accesscontextmanager/type/device_resources.proto"; import "google/protobuf/timestamp.proto"; import "google/type/expr.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Identity.AccessContextManager.V1"; option go_package = "google.golang.org/genproto/googleapis/identity/accesscontextmanager/v1;accesscontextmanager"; diff --git a/google/identity/accesscontextmanager/v1/access_policy.proto b/google/identity/accesscontextmanager/v1/access_policy.proto index d93dc0f03..59f2d9119 100644 --- a/google/identity/accesscontextmanager/v1/access_policy.proto +++ b/google/identity/accesscontextmanager/v1/access_policy.proto @@ -18,7 +18,6 @@ package google.identity.accesscontextmanager.v1; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Identity.AccessContextManager.V1"; option go_package = "google.golang.org/genproto/googleapis/identity/accesscontextmanager/v1;accesscontextmanager"; diff --git a/google/identity/accesscontextmanager/v1/gcp_user_access_binding.proto b/google/identity/accesscontextmanager/v1/gcp_user_access_binding.proto index 1058f7d8d..28e06a68a 100644 --- a/google/identity/accesscontextmanager/v1/gcp_user_access_binding.proto +++ b/google/identity/accesscontextmanager/v1/gcp_user_access_binding.proto @@ -18,7 +18,6 @@ package google.identity.accesscontextmanager.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Identity.AccessContextManager.V1"; option go_package = "google.golang.org/genproto/googleapis/identity/accesscontextmanager/v1;accesscontextmanager"; diff --git a/google/identity/accesscontextmanager/v1/service_perimeter.proto b/google/identity/accesscontextmanager/v1/service_perimeter.proto index 818ca430e..3a676d22e 100644 --- a/google/identity/accesscontextmanager/v1/service_perimeter.proto +++ b/google/identity/accesscontextmanager/v1/service_perimeter.proto @@ -18,7 +18,6 @@ package google.identity.accesscontextmanager.v1; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Identity.AccessContextManager.V1"; option go_package = "google.golang.org/genproto/googleapis/identity/accesscontextmanager/v1;accesscontextmanager"; diff --git a/google/logging/type/BUILD.bazel b/google/logging/type/BUILD.bazel index 261b95bdb..bf3bbe4aa 100644 --- a/google/logging/type/BUILD.bazel +++ b/google/logging/type/BUILD.bazel @@ -25,9 +25,9 @@ proto_library( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", "java_grpc_library", "java_proto_library", - "java_gapic_assembly_gradle_pkg" ) java_proto_library( @@ -46,6 +46,7 @@ java_grpc_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-logging-type-java", + transport = "grpc+rest", deps = [ ":type_java_grpc", ":type_java_proto", @@ -130,7 +131,6 @@ load( "nodejs_gapic_library", ) - ############################################################################## # Ruby ############################################################################## diff --git a/google/logging/type/http_request.proto b/google/logging/type/http_request.proto index d34fe7be4..b878d60dc 100644 --- a/google/logging/type/http_request.proto +++ b/google/logging/type/http_request.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -17,7 +17,6 @@ syntax = "proto3"; package google.logging.type; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Logging.Type"; option go_package = "google.golang.org/genproto/googleapis/logging/type;ltype"; diff --git a/google/logging/type/log_severity.proto b/google/logging/type/log_severity.proto index 0762b5c93..bed71935f 100644 --- a/google/logging/type/log_severity.proto +++ b/google/logging/type/log_severity.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -16,13 +16,12 @@ syntax = "proto3"; package google.logging.type; -import "google/api/annotations.proto"; - option csharp_namespace = "Google.Cloud.Logging.Type"; option go_package = "google.golang.org/genproto/googleapis/logging/type;ltype"; option java_multiple_files = true; option java_outer_classname = "LogSeverityProto"; option java_package = "com.google.logging.type"; +option objc_class_prefix = "GLOG"; option php_namespace = "Google\\Cloud\\Logging\\Type"; option ruby_package = "Google::Cloud::Logging::Type"; diff --git a/google/logging/v2/BUILD.bazel b/google/logging/v2/BUILD.bazel index 9dac1dfbb..34772c6bf 100644 --- a/google/logging/v2/BUILD.bazel +++ b/google/logging/v2/BUILD.bazel @@ -1,5 +1,5 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel +# 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: @@ -35,6 +35,7 @@ proto_library( "//google/api:monitored_resource_proto", "//google/api:resource_proto", "//google/logging/type:type_proto", + "//google/longrunning:operations_proto", "//google/rpc:status_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:duration_proto", @@ -81,6 +82,7 @@ java_gapic_library( srcs = [":logging_proto_with_info"], gapic_yaml = "logging_gapic.yaml", grpc_service_config = "logging_grpc_service_config.json", + service_yaml = "logging_v2.yaml", test_deps = [ ":logging_java_grpc", ], @@ -133,6 +135,7 @@ go_proto_library( "//google/api:metric_go_proto", "//google/api:monitoredres_go_proto", "//google/logging/type:type_go_proto", + "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", ], ) @@ -142,11 +145,18 @@ go_gapic_library( srcs = [":logging_proto_with_info"], grpc_service_config = "logging_grpc_service_config.json", importpath = "cloud.google.com/go/logging/apiv2;logging", - service_yaml = "logging.yaml", + metadata = True, + service_yaml = "logging_v2.yaml", deps = [ ":logging_go_proto", + "//google/api:metric_go_proto", "//google/api:monitoredres_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", + "@io_bazel_rules_go//proto/wkt:struct_go_proto", ], ) @@ -162,6 +172,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-logging-v2-go", deps = [ ":logging_go_gapic", + ":logging_go_gapic_srcjar-metadata.srcjar", ":logging_go_gapic_srcjar-test.srcjar", ":logging_go_proto", ], @@ -181,11 +192,23 @@ py_gapic_library( srcs = [":logging_proto"], grpc_service_config = "logging_grpc_service_config.json", opt_args = [ - "python-gapic-namespace=google.cloud", "python-gapic-name=logging", + "python-gapic-namespace=google.cloud", ], + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1359 is fixed +#py_test( +# name = "logging_py_gapic_test", +# srcs = [ +# "logging_py_gapic_pytest.py", +# "logging_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":logging_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "logging-v2-py", @@ -255,7 +278,7 @@ nodejs_gapic_library( grpc_service_config = "logging_grpc_service_config.json", main_service = "logging", package = "google.logging.v2", - service_yaml = "logging.yaml", + service_yaml = "logging_v2.yaml", deps = [], ) @@ -293,11 +316,11 @@ ruby_cloud_gapic_library( name = "logging_ruby_gapic", srcs = [":logging_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-logging-v2", - "ruby-cloud-env-prefix=LOGGING", - "ruby-cloud-product-url=https://cloud.google.com/logging", "ruby-cloud-api-id=logging.googleapis.com", "ruby-cloud-api-shortname=logging", + "ruby-cloud-env-prefix=LOGGING", + "ruby-cloud-gem-name=google-cloud-logging-v2", + "ruby-cloud-product-url=https://cloud.google.com/logging", "ruby-cloud-service-override=ConfigServiceV2=ConfigService;LoggingServiceV2=LoggingService;MetricsServiceV2=MetricsService", "ruby-cloud-yard-strict=false", ], @@ -347,6 +370,7 @@ csharp_gapic_library( srcs = [":logging_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "logging_grpc_service_config.json", + service_yaml = "logging_v2.yaml", deps = [ ":logging_csharp_grpc", ":logging_csharp_proto", diff --git a/google/logging/v2/log_entry.proto b/google/logging/v2/log_entry.proto index 3ad2cfbb5..997129369 100644 --- a/google/logging/v2/log_entry.proto +++ b/google/logging/v2/log_entry.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -24,8 +24,6 @@ import "google/logging/type/log_severity.proto"; import "google/protobuf/any.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Logging.V2"; @@ -37,8 +35,6 @@ option php_namespace = "Google\\Cloud\\Logging\\V2"; option ruby_package = "Google::Cloud::Logging::V2"; // An individual entry in a log. -// -// message LogEntry { option (google.api.resource) = { type: "logging.googleapis.com/Log" @@ -62,12 +58,13 @@ message LogEntry { // // `[LOG_ID]` must be URL-encoded within `log_name`. Example: // `"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"`. + // // `[LOG_ID]` must be less than 512 characters long and can only include the // following characters: upper and lower case alphanumeric characters, // forward-slash, underscore, hyphen, and period. // // For backward compatibility, if `log_name` begins with a forward-slash, such - // as `/projects/...`, then the log entry is ingested as usual but the + // as `/projects/...`, then the log entry is ingested as usual, but the // forward-slash is removed. Listing the log entry will not show the leading // slash and filtering for a log name with a leading slash will never return // any results. @@ -126,7 +123,7 @@ message LogEntry { // de-duplication in the export of logs. // // If the `insert_id` is omitted when writing a log entry, the Logging API - // assigns its own unique identifier in this field. + // assigns its own unique identifier in this field. // // In queries, the `insert_id` is also used to order log entries that have // the same `log_name` and `timestamp` values. @@ -136,8 +133,20 @@ message LogEntry { // applicable. google.logging.type.HttpRequest http_request = 7 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A set of user-defined (key, value) data that provides additional - // information about the log entry. + // Optional. A map of key, value pairs that provides additional information about the + // log entry. The labels can be user-defined or system-defined. + // + // User-defined labels are arbitrary key, value pairs that you can use to + // classify logs. + // + // System-defined labels are defined by GCP services for platform logs. + // They have two components - a service namespace component and the + // attribute name. For example: `compute.googleapis.com/resource_name`. + // + // Cloud Logging truncates label keys that exceed 512 B and label + // values that exceed 64 KB upon their associated log entry being + // written. The truncation is indicated by an ellipsis at the + // end of the character string. map labels = 11 [(google.api.field_behavior) = OPTIONAL]; // Optional. Information about an operation associated with the log entry, if @@ -168,6 +177,10 @@ message LogEntry { // Optional. Source code location information associated with the log entry, if any. LogEntrySourceLocation source_location = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Information indicating this LogEntry is part of a sequence of multiple log + // entries split from a single LogEntry. + LogSplit split = 35 [(google.api.field_behavior) = OPTIONAL]; } // Additional information about a potentially long-running operation with which @@ -208,3 +221,21 @@ message LogEntrySourceLocation { // (Python). string function = 3 [(google.api.field_behavior) = OPTIONAL]; } + +// Additional information used to correlate multiple log entries. Used when a +// single LogEntry would exceed the Google Cloud Logging size limit and is +// split across multiple log entries. +message LogSplit { + // A globally unique identifier for all log entries in a sequence of split log + // entries. All log entries with the same |LogSplit.uid| are assumed to be + // part of the same sequence of split log entries. + string uid = 1; + + // The index of this LogEntry in the sequence of split log entries. Log + // entries are given |index| values 0, 1, ..., n-1 for a sequence of n log + // entries. + int32 index = 2; + + // The total number of log entries that the original LogEntry was split into. + int32 total_splits = 3; +} diff --git a/google/logging/v2/logging.proto b/google/logging/v2/logging.proto index f8b01a71e..b7f4f189d 100644 --- a/google/logging/v2/logging.proto +++ b/google/logging/v2/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -16,18 +16,15 @@ syntax = "proto3"; package google.logging.v2; +import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/monitored_resource.proto"; import "google/api/resource.proto"; import "google/logging/v2/log_entry.proto"; -import "google/logging/v2/logging_config.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; -import "google/protobuf/field_mask.proto"; -import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Logging.V2"; @@ -48,10 +45,10 @@ service LoggingServiceV2 { "https://www.googleapis.com/auth/logging.read," "https://www.googleapis.com/auth/logging.write"; - // Deletes all the log entries in a log. The log reappears if it receives new - // entries. Log entries written shortly before the delete operation might not - // be deleted. Entries received after the delete operation with a timestamp - // before the operation will be deleted. + // Deletes all the log entries in a log for the _Default Log Bucket. The log + // reappears if it receives new entries. Log entries written shortly before + // the delete operation might not be deleted. Entries received after the + // delete operation with a timestamp before the operation will be deleted. rpc DeleteLog(DeleteLogRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{log_name=projects/*/logs/*}" @@ -140,14 +137,15 @@ service LoggingServiceV2 { message DeleteLogRequest { // Required. The resource name of the log to delete: // - // "projects/[PROJECT_ID]/logs/[LOG_ID]" - // "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" - // "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]" - // "folders/[FOLDER_ID]/logs/[LOG_ID]" + // * `projects/[PROJECT_ID]/logs/[LOG_ID]` + // * `organizations/[ORGANIZATION_ID]/logs/[LOG_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]` + // * `folders/[FOLDER_ID]/logs/[LOG_ID]` // // `[LOG_ID]` must be URL-encoded. For example, // `"projects/my-project-id/logs/syslog"`, - // `"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"`. + // `"organizations/123/logs/cloudaudit.googleapis.com%2Factivity"`. + // // For more information about log names, see // [LogEntry][google.logging.v2.LogEntry]. string log_name = 1 [ @@ -163,15 +161,15 @@ message WriteLogEntriesRequest { // Optional. A default log resource name that is assigned to all log entries // in `entries` that do not specify a value for `log_name`: // - // "projects/[PROJECT_ID]/logs/[LOG_ID]" - // "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" - // "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]" - // "folders/[FOLDER_ID]/logs/[LOG_ID]" + // * `projects/[PROJECT_ID]/logs/[LOG_ID]` + // * `organizations/[ORGANIZATION_ID]/logs/[LOG_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]` + // * `folders/[FOLDER_ID]/logs/[LOG_ID]` // // `[LOG_ID]` must be URL-encoded. For example: // // "projects/my-project-id/logs/syslog" - // "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity" + // "organizations/123/logs/cloudaudit.googleapis.com%2Factivity" // // The permission `logging.logEntries.create` is needed on each project, // organization, billing account, or folder that is receiving new log @@ -214,14 +212,14 @@ message WriteLogEntriesRequest { // the entries later in the list. See the `entries.list` method. // // Log entries with timestamps that are more than the - // [logs retention period](https://cloud.google.com/logging/quota-policy) in + // [logs retention period](https://cloud.google.com/logging/quotas) in // the past or more than 24 hours in the future will not be available when // calling `entries.list`. However, those log entries can still be [exported // with // LogSinks](https://cloud.google.com/logging/docs/api/tasks/exporting-logs). // // To improve throughput and to avoid exceeding the - // [quota limit](https://cloud.google.com/logging/quota-policy) for calls to + // [quota limit](https://cloud.google.com/logging/quotas) for calls to // `entries.write`, you should try to include several log entries in this // list, rather than calling this method for each individual log entry. repeated LogEntry entries = 4 [(google.api.field_behavior) = REQUIRED]; @@ -240,7 +238,9 @@ message WriteLogEntriesRequest { } // Result returned from WriteLogEntries. -message WriteLogEntriesResponse {} +message WriteLogEntriesResponse { + +} // Error details for WriteLogEntries with partial success. message WriteLogEntriesPartialErrors { @@ -258,16 +258,17 @@ message ListLogEntriesRequest { // Required. Names of one or more parent resources from which to // retrieve log entries: // - // "projects/[PROJECT_ID]" - // "organizations/[ORGANIZATION_ID]" - // "billingAccounts/[BILLING_ACCOUNT_ID]" - // "folders/[FOLDER_ID]" + // * `projects/[PROJECT_ID]` + // * `organizations/[ORGANIZATION_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]` + // * `folders/[FOLDER_ID]` // - // May alternatively be one or more views - // projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] - // organization/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] - // billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] - // folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] + // May alternatively be one or more views: + // + // * `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` // // Projects listed in the `project_ids` field are added to this list. repeated string resource_names = 8 [ @@ -294,10 +295,10 @@ message ListLogEntriesRequest { // timestamps are returned in order of their `insert_id` values. string order_by = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The maximum number of results to return from this request. - // Default is 50. If the value is negative or exceeds 1000, - // the request is rejected. The presence of `next_page_token` in the - // response indicates that more results might be available. + // Optional. The maximum number of results to return from this request. Default is 50. + // If the value is negative or exceeds 1000, the request is rejected. The + // presence of `next_page_token` in the response indicates that more results + // might be available. int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. If present, then retrieve the next batch of results from the @@ -356,10 +357,10 @@ message ListMonitoredResourceDescriptorsResponse { message ListLogsRequest { // Required. The resource name that owns the logs: // - // "projects/[PROJECT_ID]" - // "organizations/[ORGANIZATION_ID]" - // "billingAccounts/[BILLING_ACCOUNT_ID]" - // "folders/[FOLDER_ID]" + // * `projects/[PROJECT_ID]` + // * `organizations/[ORGANIZATION_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]` + // * `folders/[FOLDER_ID]` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -379,17 +380,24 @@ message ListLogsRequest { string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. The resource name that owns the logs: - // projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] - // organization/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] - // billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] - // folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] + // + // * `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` // // To support legacy queries, it could also be: - // "projects/[PROJECT_ID]" - // "organizations/[ORGANIZATION_ID]" - // "billingAccounts/[BILLING_ACCOUNT_ID]" - // "folders/[FOLDER_ID]" - repeated string resource_names = 8 [(google.api.field_behavior) = OPTIONAL]; + // + // * `projects/[PROJECT_ID]` + // * `organizations/[ORGANIZATION_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]` + // * `folders/[FOLDER_ID]` + repeated string resource_names = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + child_type: "logging.googleapis.com/Log" + } + ]; } // Result returned from ListLogs. @@ -409,16 +417,17 @@ message ListLogsResponse { message TailLogEntriesRequest { // Required. Name of a parent resource from which to retrieve log entries: // - // "projects/[PROJECT_ID]" - // "organizations/[ORGANIZATION_ID]" - // "billingAccounts/[BILLING_ACCOUNT_ID]" - // "folders/[FOLDER_ID]" + // * `projects/[PROJECT_ID]` + // * `organizations/[ORGANIZATION_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]` + // * `folders/[FOLDER_ID]` // // May alternatively be one or more views: - // "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" - // "organization/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" - // "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" - // "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" + // + // * `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` + // * `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]` repeated string resource_names = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. A filter that chooses which log entries to return. See [Advanced diff --git a/google/logging/v2/logging.yaml b/google/logging/v2/logging.yaml deleted file mode 100644 index 5f90e52c7..000000000 --- a/google/logging/v2/logging.yaml +++ /dev/null @@ -1,141 +0,0 @@ -type: google.api.Service -config_version: 3 -name: logging.googleapis.com -title: Cloud Logging API - -apis: -- name: google.logging.v2.ConfigServiceV2 -- name: google.logging.v2.LoggingServiceV2 -- name: google.logging.v2.MetricsServiceV2 - -documentation: - summary: |- - Writes log entries and manages your Cloud Logging configuration. The table - entries below are presented in alphabetical order, not in order of common - use. For explanations of the concepts found in the table entries, read the - documentation at https://cloud.google.com/logging/docs. - overview: '# Introduction - -The Cloud Logging service.' - -backend: - rules: - - selector: 'google.logging.v2.ConfigServiceV2.*' - deadline: 60.0 - - selector: 'google.logging.v2.LoggingServiceV2.*' - deadline: 60.0 - - selector: google.logging.v2.LoggingServiceV2.ListLogEntries - deadline: 10.0 - - selector: google.logging.v2.LoggingServiceV2.TailLogEntries - deadline: 3600.0 - - selector: 'google.logging.v2.MetricsServiceV2.*' - deadline: 60.0 - -authentication: - rules: - - selector: 'google.logging.v2.ConfigServiceV2.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/logging.admin - - selector: google.logging.v2.ConfigServiceV2.GetBucket - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.ConfigServiceV2.GetCmekSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.ConfigServiceV2.GetExclusion - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.ConfigServiceV2.GetSink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.ConfigServiceV2.GetView - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.ConfigServiceV2.ListBuckets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.ConfigServiceV2.ListExclusions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.ConfigServiceV2.ListSinks - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.ConfigServiceV2.ListViews - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: 'google.logging.v2.LoggingServiceV2.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.LoggingServiceV2.DeleteLog - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/logging.admin - - selector: google.logging.v2.LoggingServiceV2.WriteLogEntries - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.write - - selector: 'google.logging.v2.MetricsServiceV2.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.write - - selector: google.logging.v2.MetricsServiceV2.GetLogMetric - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read - - selector: google.logging.v2.MetricsServiceV2.ListLogMetrics - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform, - https://www.googleapis.com/auth/cloud-platform.read-only, - https://www.googleapis.com/auth/logging.admin, - https://www.googleapis.com/auth/logging.read diff --git a/google/logging/v2/logging_config.proto b/google/logging/v2/logging_config.proto index 9b10932d6..ef0024063 100644 --- a/google/logging/v2/logging_config.proto +++ b/google/logging/v2/logging_config.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -16,14 +16,14 @@ syntax = "proto3"; package google.logging.v2; +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/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Logging.V2"; @@ -55,7 +55,7 @@ service ConfigServiceV2 { "https://www.googleapis.com/auth/logging.admin," "https://www.googleapis.com/auth/logging.read"; - // Lists buckets. + // Lists log buckets. rpc ListBuckets(ListBucketsRequest) returns (ListBucketsResponse) { option (google.api.http) = { get: "/v2/{parent=*/*/locations/*}/buckets" @@ -75,7 +75,7 @@ service ConfigServiceV2 { option (google.api.method_signature) = "parent"; } - // Gets a bucket. + // Gets a log bucket. rpc GetBucket(GetBucketRequest) returns (LogBucket) { option (google.api.http) = { get: "/v2/{name=*/*/locations/*/buckets/*}" @@ -94,8 +94,8 @@ service ConfigServiceV2 { }; } - // Creates a bucket that can be used to store log entries. Once a bucket has - // been created, the region cannot be changed. + // Creates a log bucket that can be used to store log entries. After a bucket + // has been created, the bucket's location cannot be changed. rpc CreateBucket(CreateBucketRequest) returns (LogBucket) { option (google.api.http) = { post: "/v2/{parent=*/*/locations/*}/buckets" @@ -119,16 +119,16 @@ service ConfigServiceV2 { }; } - // Updates a bucket. This method replaces the following fields in the + // Updates a log bucket. This method replaces the following fields in the // existing bucket with values from the new bucket: `retention_period` // // If the retention period is decreased and the bucket is locked, - // FAILED_PRECONDITION will be returned. + // `FAILED_PRECONDITION` will be returned. // - // If the bucket has a LifecycleState of DELETE_REQUESTED, FAILED_PRECONDITION - // will be returned. + // If the bucket has a `lifecycle_state` of `DELETE_REQUESTED`, then + // `FAILED_PRECONDITION` will be returned. // - // A buckets region may not be modified after it is created. + // After a bucket has been created, the bucket's location cannot be changed. rpc UpdateBucket(UpdateBucketRequest) returns (LogBucket) { option (google.api.http) = { patch: "/v2/{name=*/*/locations/*/buckets/*}" @@ -152,10 +152,11 @@ service ConfigServiceV2 { }; } - // Deletes a bucket. - // Moves the bucket to the DELETE_REQUESTED state. After 7 days, the - // bucket will be purged and all logs in the bucket will be permanently - // deleted. + // Deletes a log bucket. + // + // Changes the bucket's `lifecycle_state` to the `DELETE_REQUESTED` state. + // After 7 days, the bucket will be purged and all log entries in the bucket + // will be permanently deleted. rpc DeleteBucket(DeleteBucketRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=*/*/locations/*/buckets/*}" @@ -174,8 +175,8 @@ service ConfigServiceV2 { }; } - // Undeletes a bucket. A bucket that has been deleted may be undeleted within - // the grace period of 7 days. + // Undeletes a log bucket. A bucket that has been deleted can be undeleted + // within the grace period of 7 days. rpc UndeleteBucket(UndeleteBucketRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v2/{name=*/*/locations/*/buckets/*}:undelete" @@ -199,7 +200,7 @@ service ConfigServiceV2 { }; } - // Lists views on a bucket. + // Lists views on a log bucket. rpc ListViews(ListViewsRequest) returns (ListViewsResponse) { option (google.api.http) = { get: "/v2/{parent=*/*/locations/*/buckets/*}/views" @@ -219,7 +220,7 @@ service ConfigServiceV2 { option (google.api.method_signature) = "parent"; } - // Gets a view. + // Gets a view on a log bucket.. rpc GetView(GetViewRequest) returns (LogView) { option (google.api.http) = { get: "/v2/{name=*/*/locations/*/buckets/*/views/*}" @@ -238,8 +239,8 @@ service ConfigServiceV2 { }; } - // Creates a view over logs in a bucket. A bucket may contain a maximum of - // 50 views. + // Creates a view over log entries in a log bucket. A bucket may contain a + // maximum of 30 views. rpc CreateView(CreateViewRequest) returns (LogView) { option (google.api.http) = { post: "/v2/{parent=*/*/locations/*/buckets/*}/views" @@ -263,8 +264,11 @@ service ConfigServiceV2 { }; } - // Updates a view. This method replaces the following fields in the existing - // view with values from the new view: `filter`. + // Updates a view on a log bucket. This method replaces the following fields + // in the existing view with values from the new view: `filter`. + // If an `UNAVAILABLE` error is returned, this indicates that system is not in + // a state where it can update the view. If this occurs, please try again in a + // few minutes. rpc UpdateView(UpdateViewRequest) returns (LogView) { option (google.api.http) = { patch: "/v2/{name=*/*/locations/*/buckets/*/views/*}" @@ -288,7 +292,10 @@ service ConfigServiceV2 { }; } - // Deletes a view from a bucket. + // Deletes a view on a log bucket. + // If an `UNAVAILABLE` error is returned, this indicates that system is not in + // a state where it can delete the view. If this occurs, please try again in a + // few minutes. rpc DeleteView(DeleteViewRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=*/*/locations/*/buckets/*/views/*}" @@ -442,7 +449,7 @@ service ConfigServiceV2 { option (google.api.method_signature) = "sink_name"; } - // Lists all the exclusions in a parent resource. + // Lists all the exclusions on the _Default sink in a parent resource. rpc ListExclusions(ListExclusionsRequest) returns (ListExclusionsResponse) { option (google.api.http) = { get: "/v2/{parent=*/*}/exclusions" @@ -462,7 +469,7 @@ service ConfigServiceV2 { option (google.api.method_signature) = "parent"; } - // Gets the description of an exclusion. + // Gets the description of an exclusion in the _Default sink. rpc GetExclusion(GetExclusionRequest) returns (LogExclusion) { option (google.api.http) = { get: "/v2/{name=*/*/exclusions/*}" @@ -482,9 +489,9 @@ service ConfigServiceV2 { option (google.api.method_signature) = "name"; } - // Creates a new exclusion in a specified parent resource. - // Only log entries belonging to that resource can be excluded. - // You can have up to 10 exclusions in a resource. + // Creates a new exclusion in the _Default sink in a specified parent + // resource. Only log entries belonging to that resource can be excluded. You + // can have up to 10 exclusions in a resource. rpc CreateExclusion(CreateExclusionRequest) returns (LogExclusion) { option (google.api.http) = { post: "/v2/{parent=*/*}/exclusions" @@ -509,7 +516,8 @@ service ConfigServiceV2 { option (google.api.method_signature) = "parent,exclusion"; } - // Changes one or more properties of an existing exclusion. + // Changes one or more properties of an existing exclusion in the _Default + // sink. rpc UpdateExclusion(UpdateExclusionRequest) returns (LogExclusion) { option (google.api.http) = { patch: "/v2/{name=*/*/exclusions/*}" @@ -534,7 +542,7 @@ service ConfigServiceV2 { option (google.api.method_signature) = "name,exclusion,update_mask"; } - // Deletes an exclusion. + // Deletes an exclusion in the _Default sink. rpc DeleteExclusion(DeleteExclusionRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=*/*/exclusions/*}" @@ -554,29 +562,39 @@ service ConfigServiceV2 { option (google.api.method_signature) = "name"; } - // Gets the Logs Router CMEK settings for the given resource. + // Gets the Logging CMEK settings for the given resource. // - // Note: CMEK for the Logs Router can currently only be configured for GCP - // organizations. Once configured, it applies to all projects and folders in - // the GCP organization. + // Note: CMEK for the Log Router can be configured for Google Cloud projects, + // folders, organizations and billing accounts. Once configured for an + // organization, it applies to all projects and folders in the Google Cloud + // organization. // - // See [Enabling CMEK for Logs + // See [Enabling CMEK for Log // Router](https://cloud.google.com/logging/docs/routing/managed-encryption) // for more information. rpc GetCmekSettings(GetCmekSettingsRequest) returns (CmekSettings) { option (google.api.http) = { get: "/v2/{name=*/*}/cmekSettings" + additional_bindings { + get: "/v2/{name=projects/*}/cmekSettings" + } additional_bindings { get: "/v2/{name=organizations/*}/cmekSettings" } + additional_bindings { + get: "/v2/{name=folders/*}/cmekSettings" + } + additional_bindings { + get: "/v2/{name=billingAccounts/*}/cmekSettings" + } }; } - // Updates the Logs Router CMEK settings for the given resource. + // Updates the Log Router CMEK settings for the given resource. // - // Note: CMEK for the Logs Router can currently only be configured for GCP - // organizations. Once configured, it applies to all projects and folders in - // the GCP organization. + // Note: CMEK for the Log Router can currently only be configured for Google + // Cloud organizations. Once configured, it applies to all projects and + // folders in the Google Cloud organization. // // [UpdateCmekSettings][google.logging.v2.ConfigServiceV2.UpdateCmekSettings] // will fail if 1) `kms_key_name` is invalid, or 2) the associated service @@ -584,7 +602,7 @@ service ConfigServiceV2 { // `roles/cloudkms.cryptoKeyEncrypterDecrypter` role assigned for the key, or // 3) access to the key is disabled. // - // See [Enabling CMEK for Logs + // See [Enabling CMEK for Log // Router](https://cloud.google.com/logging/docs/routing/managed-encryption) // for more information. rpc UpdateCmekSettings(UpdateCmekSettingsRequest) returns (CmekSettings) { @@ -597,9 +615,82 @@ service ConfigServiceV2 { } }; } + + // Gets the Log Router settings for the given resource. + // + // Note: Settings for the Log Router can be get for Google Cloud projects, + // folders, organizations and billing accounts. Currently it can only be + // configured for organizations. Once configured for an organization, it + // applies to all projects and folders in the Google Cloud organization. + // + // See [Enabling CMEK for Log + // Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + // for more information. + rpc GetSettings(GetSettingsRequest) returns (Settings) { + option (google.api.http) = { + get: "/v2/{name=*/*}/settings" + additional_bindings { + get: "/v2/{name=projects/*}/settings" + } + additional_bindings { + get: "/v2/{name=organizations/*}/settings" + } + additional_bindings { + get: "/v2/{name=folders/*}/settings" + } + additional_bindings { + get: "/v2/{name=billingAccounts/*}/settings" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates the Log Router settings for the given resource. + // + // Note: Settings for the Log Router can currently only be configured for + // Google Cloud organizations. Once configured, it applies to all projects and + // folders in the Google Cloud organization. + // + // [UpdateSettings][google.logging.v2.ConfigServiceV2.UpdateSettings] + // will fail if 1) `kms_key_name` is invalid, or 2) the associated service + // account does not have the required + // `roles/cloudkms.cryptoKeyEncrypterDecrypter` role assigned for the key, or + // 3) access to the key is disabled. 4) `location_id` is not supported by + // Logging. 5) `location_id` violate OrgPolicy. + // + // See [Enabling CMEK for Log + // Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + // for more information. + rpc UpdateSettings(UpdateSettingsRequest) returns (Settings) { + option (google.api.http) = { + patch: "/v2/{name=*/*}/settings" + body: "settings" + additional_bindings { + patch: "/v2/{name=organizations/*}/settings" + body: "settings" + } + additional_bindings { + patch: "/v2/{name=folders/*}/settings" + body: "settings" + } + }; + option (google.api.method_signature) = "settings,update_mask"; + } + + // Copies a set of log entries from a log bucket to a Cloud Storage bucket. + rpc CopyLogEntries(CopyLogEntriesRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/entries:copy" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "CopyLogEntriesResponse" + metadata_type: "CopyLogEntriesMetadata" + }; + } } -// Describes a repository of logs. +// Describes a repository in which log entries are stored. message LogBucket { option (google.api.resource) = { type: "logging.googleapis.com/LogBucket" @@ -609,16 +700,20 @@ message LogBucket { pattern: "billingAccounts/{billing_account}/locations/{location}/buckets/{bucket}" }; - // The resource name of the bucket. + // Output only. The resource name of the bucket. + // // For example: - // "projects/my-project-id/locations/my-location/buckets/my-bucket-id The - // supported locations are: - // "global" // - // For the location of `global` it is unspecified where logs are actually - // stored. - // Once a bucket has been created, the location can not be changed. - string name = 1; + // `projects/my-project/locations/global/buckets/my-bucket` + // + // For a list of supported locations, see [Supported + // Regions](https://cloud.google.com/logging/docs/region-support) + // + // For the location of `global` it is unspecified where log entries are + // actually stored. + // + // After a bucket has been created, the location cannot be changed. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Describes this bucket. string description = 3; @@ -631,34 +726,38 @@ message LogBucket { google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Logs will be retained by default for this amount of time, after which they - // will automatically be deleted. The minimum retention period is 1 day. - // If this value is set to zero at bucket creation time, the default time of - // 30 days will be used. + // will automatically be deleted. The minimum retention period is 1 day. If + // this value is set to zero at bucket creation time, the default time of 30 + // days will be used. int32 retention_days = 11; - // Whether the bucket has been locked. - // The retention period on a locked bucket may not be changed. - // Locked buckets may only be deleted if they are empty. + // Whether the bucket is locked. + // + // The retention period on a locked bucket cannot be changed. Locked buckets + // may only be deleted if they are empty. bool locked = 9; // Output only. The bucket lifecycle state. LifecycleState lifecycle_state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; -} -// LogBucket lifecycle states. -enum LifecycleState { - // Unspecified state. This is only used/useful for distinguishing - // unset values. - LIFECYCLE_STATE_UNSPECIFIED = 0; - - // The normal and active state. - ACTIVE = 1; + // Log entry field paths that are denied access in this bucket. + // + // The following fields and their children are eligible: `textPayload`, + // `jsonPayload`, `protoPayload`, `httpRequest`, `labels`, `sourceLocation`. + // + // Restricting a repeated field will restrict all values. Adding a parent will + // block all child fields. (e.g. `foo.bar` will block `foo.bar.baz`) + repeated string restricted_fields = 15; - // The bucket has been marked for deletion by the user. - DELETE_REQUESTED = 2; + // The CMEK settings of the log bucket. If present, new log entries written to + // this log bucket are encrypted using the CMEK key provided in this + // configuration. If a log bucket has CMEK settings, the CMEK settings cannot + // be disabled later by updating the log bucket. Changing the KMS key is + // allowed. + CmekSettings cmek_settings = 19; } -// Describes a view over logs in a bucket. +// Describes a view over log entries in a bucket. message LogView { option (google.api.resource) = { type: "logging.googleapis.com/LogView" @@ -669,8 +768,10 @@ message LogView { }; // The resource name of the view. - // For example - // "projects/my-project-id/locations/my-location/buckets/my-bucket-id/views/my-view + // + // For example: + // + // `projects/my-project/locations/global/buckets/my-bucket/views/my-view` string name = 1; // Describes this view. @@ -683,21 +784,27 @@ message LogView { google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Filter that restricts which log entries in a bucket are visible in this - // view. Filters are restricted to be a logical AND of ==/!= of any of the + // view. + // + // Filters are restricted to be a logical AND of ==/!= of any of the // following: - // originating project/folder/organization/billing account. - // resource type - // log id - // Example: SOURCE("projects/myproject") AND resource.type = "gce_instance" - // AND LOG_ID("stdout") + // + // - originating project/folder/organization/billing account. + // - resource type + // - log id + // + // For example: + // + // SOURCE("projects/myproject") AND resource.type = "gce_instance" + // AND LOG_ID("stdout") string filter = 7; } // Describes a sink used to export log entries to one of the following -// destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a -// Cloud Pub/Sub topic. A logs filter controls which log entries are exported. -// The sink must be created within a project, organization, billing account, or -// folder. +// destinations in any project: a Cloud Storage bucket, a BigQuery dataset, a +// Pub/Sub topic or a Cloud Logging log bucket. A logs filter controls which log +// entries are exported. The sink must be created within a project, +// organization, billing account, or folder. message LogSink { option (google.api.resource) = { type: "logging.googleapis.com/LogSink" @@ -719,9 +826,10 @@ message LogSink { V1 = 2; } - // Required. The client-assigned sink identifier, unique within the project. Example: - // `"my-syslog-errors-to-pubsub"`. Sink identifiers are limited to 100 - // characters and can include only the following characters: upper and + // Required. The client-assigned sink identifier, unique within the project. + // + // For example: `"my-syslog-errors-to-pubsub"`. Sink identifiers are limited + // to 100 characters and can include only the following characters: upper and // lower-case alphanumeric characters, underscores, hyphens, and periods. // First character has to be alphanumeric. string name = 1 [(google.api.field_behavior) = REQUIRED]; @@ -732,9 +840,9 @@ message LogSink { // "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]" // "pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]" // - // The sink's `writer_identity`, set when the sink is created, must - // have permission to write to the destination or else the log - // entries are not exported. For more information, see + // The sink's `writer_identity`, set when the sink is created, must have + // permission to write to the destination or else the log entries are not + // exported. For more information, see // [Exporting Logs with // Sinks](https://cloud.google.com/logging/docs/api/tasks/exporting-logs). string destination = 3 [ @@ -747,20 +855,24 @@ message LogSink { // Optional. An [advanced logs // filter](https://cloud.google.com/logging/docs/view/advanced-queries). The // only exported log entries are those that are in the resource owning the - // sink and that match the filter. For example: + // sink and that match the filter. + // + // For example: // - // logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR + // `logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR` string filter = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. A description of this sink. + // // The maximum length of the description is 8000 characters. string description = 18 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set to True, then this sink is disabled and it does not - // export any log entries. + // Optional. If set to true, then this sink is disabled and it does not export any log + // entries. bool disabled = 19 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Log entries that match any of the exclusion filters will not be exported. + // Optional. Log entries that match any of these exclusion filters will not be exported. + // // If a log entry is matched by both `filter` and one of `exclusion_filters` // it will not be exported. repeated LogExclusion exclusions = 16 [(google.api.field_behavior) = OPTIONAL]; @@ -768,33 +880,42 @@ message LogSink { // Deprecated. This field is unused. VersionFormat output_version_format = 6 [deprecated = true]; - // Output only. An IAM identity—a service account or group—under which Logging - // writes the exported log entries to the sink's destination. This field is - // set by [sinks.create][google.logging.v2.ConfigServiceV2.CreateSink] and + // Output only. An IAM identity—a service account or group—under which Cloud + // Logging writes the exported log entries to the sink's destination. This + // field is set by + // [sinks.create][google.logging.v2.ConfigServiceV2.CreateSink] and // [sinks.update][google.logging.v2.ConfigServiceV2.UpdateSink] based on the // value of `unique_writer_identity` in those methods. // // Until you grant this identity write-access to the destination, log entry - // exports from this sink will fail. For more information, - // see [Granting Access for a + // exports from this sink will fail. For more information, see [Granting + // Access for a // Resource](https://cloud.google.com/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). // Consult the destination service's documentation to determine the // appropriate IAM roles to assign to the identity. + // + // Sinks that have a destination that is a log bucket in the same project as + // the sink do not have a writer_identity and no additional permissions are + // required. string writer_identity = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. This field applies only to sinks owned by organizations and - // folders. If the field is false, the default, only the logs owned by the - // sink's parent resource are available for export. If the field is true, then - // logs from all the projects, folders, and billing accounts contained in the + // Optional. This field applies only to sinks owned by organizations and folders. If the + // field is false, the default, only the logs owned by the sink's parent + // resource are available for export. If the field is true, then log entries + // from all the projects, folders, and billing accounts contained in the // sink's parent resource are also available for export. Whether a particular // log entry from the children is exported depends on the sink's filter - // expression. For example, if this field is true, then the filter + // expression. + // + // For example, if this field is true, then the filter // `resource.type=gce_instance` would export all Compute Engine VM instance - // log entries from all projects in the sink's parent. To only export entries - // from certain child projects, filter on the project part of the log name: + // log entries from all projects in the sink's parent. + // + // To only export entries from certain child projects, filter on the project + // part of the log name: // - // logName:("projects/test-project1/" OR "projects/test-project2/") AND - // resource.type=gce_instance + // logName:("projects/test-project1/" OR "projects/test-project2/") AND + // resource.type=gce_instance bool include_children = 9 [(google.api.field_behavior) = OPTIONAL]; // Destination dependent options. @@ -818,16 +939,17 @@ message LogSink { message BigQueryOptions { // Optional. Whether to use [BigQuery's partition // tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By - // default, Logging creates dated tables based on the log entries' timestamps, - // e.g. syslog_20170523. With partitioned tables the date suffix is no longer - // present and [special query + // default, Cloud Logging creates dated tables based on the log entries' + // timestamps, e.g. syslog_20170523. With partitioned tables the date suffix + // is no longer present and [special query // syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) // has to be used instead. In both cases, tables are sharded based on UTC // timezone. bool use_partitioned_tables = 1 [(google.api.field_behavior) = OPTIONAL]; - // Output only. True if new timestamp column based partitioning is in use, - // false if legacy ingestion-time partitioning is in use. + // Output only. True if new timestamp column based partitioning is in use, false if legacy + // ingestion-time partitioning is in use. + // // All new sinks will have this field set true and will use timestamp column // based partitioning. If use_partitioned_tables is false, this value has no // meaning and will be false. Legacy sinks using partitioned tables will have @@ -854,15 +976,15 @@ message ListBucketsRequest { } ]; - // Optional. If present, then retrieve the next batch of results from the - // preceding call to this method. `pageToken` must be the value of - // `nextPageToken` from the previous response. The values of other method - // parameters should be identical to those in the previous call. + // Optional. If present, then retrieve the next batch of results from the preceding call + // to this method. `pageToken` must be the value of `nextPageToken` from the + // previous response. The values of other method parameters should be + // identical to those in the previous call. string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The maximum number of results to return from this request. - // Non-positive values are ignored. The presence of `nextPageToken` in the - // response indicates that more results might be available. + // Optional. The maximum number of results to return from this request. Non-positive + // values are ignored. The presence of `nextPageToken` in the response + // indicates that more results might be available. int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -879,11 +1001,13 @@ message ListBucketsResponse { // The parameters to `CreateBucket`. message CreateBucketRequest { - // Required. The resource in which to create the bucket: + // Required. The resource in which to create the log bucket: // // "projects/[PROJECT_ID]/locations/[LOCATION_ID]" // - // Example: `"projects/my-logging-project/locations/global"` + // For example: + // + // `"projects/my-project/locations/global"` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -891,9 +1015,9 @@ message CreateBucketRequest { } ]; - // Required. A client-assigned identifier such as `"my-bucket"`. Identifiers are - // limited to 100 characters and can include only letters, digits, - // underscores, hyphens, and periods. + // Required. A client-assigned identifier such as `"my-bucket"`. Identifiers are limited + // to 100 characters and can include only letters, digits, underscores, + // hyphens, and periods. string bucket_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The new bucket. The region specified in the new bucket must be compliant @@ -911,10 +1035,9 @@ message UpdateBucketRequest { // "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" // "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" // - // Example: - // `"projects/my-project-id/locations/my-location/buckets/my-bucket-id"`. Also - // requires permission "resourcemanager.projects.updateLiens" to set the - // locked property + // For example: + // + // `"projects/my-project/locations/global/buckets/my-bucket"` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -926,13 +1049,13 @@ message UpdateBucketRequest { LogBucket bucket = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Field mask that specifies the fields in `bucket` that need an update. A - // bucket field will be overwritten if, and only if, it is in the update - // mask. `name` and output only fields cannot be updated. + // bucket field will be overwritten if, and only if, it is in the update mask. + // `name` and output only fields cannot be updated. // - // For a detailed `FieldMask` definition, see + // For a detailed `FieldMask` definition, see: // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask // - // Example: `updateMask=retention_days`. + // For example: `updateMask=retention_days` google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED]; } @@ -945,8 +1068,9 @@ message GetBucketRequest { // "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" // "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" // - // Example: - // `"projects/my-project-id/locations/my-location/buckets/my-bucket-id"`. + // For example: + // + // `"projects/my-project/locations/global/buckets/my-bucket"` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -964,8 +1088,9 @@ message DeleteBucketRequest { // "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" // "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" // - // Example: - // `"projects/my-project-id/locations/my-location/buckets/my-bucket-id"`. + // For example: + // + // `"projects/my-project/locations/global/buckets/my-bucket"` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -983,8 +1108,9 @@ message UndeleteBucketRequest { // "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" // "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" // - // Example: - // `"projects/my-project-id/locations/my-location/buckets/my-bucket-id"`. + // For example: + // + // `"projects/my-project/locations/global/buckets/my-bucket"` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1000,13 +1126,14 @@ message ListViewsRequest { // "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" string parent = 1 [(google.api.field_behavior) = REQUIRED]; - // Optional. If present, then retrieve the next batch of results from the - // preceding call to this method. `pageToken` must be the value of - // `nextPageToken` from the previous response. The values of other method - // parameters should be identical to those in the previous call. + // Optional. If present, then retrieve the next batch of results from the preceding call + // to this method. `pageToken` must be the value of `nextPageToken` from the + // previous response. The values of other method parameters should be + // identical to those in the previous call. string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The maximum number of results to return from this request. + // // Non-positive values are ignored. The presence of `nextPageToken` in the // response indicates that more results might be available. int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -1027,10 +1154,11 @@ message ListViewsResponse { message CreateViewRequest { // Required. The bucket in which to create the view // - // "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" + // `"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"` + // + // For example: // - // Example: - // `"projects/my-logging-project/locations/my-location/buckets/my-bucket"` + // `"projects/my-project/locations/global/buckets/my-bucket"` string parent = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The id to use for this view. @@ -1046,8 +1174,9 @@ message UpdateViewRequest { // // "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" // - // Example: - // `"projects/my-project-id/locations/my-location/buckets/my-bucket-id/views/my-view-id"`. + // For example: + // + // `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"` string name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The updated view. @@ -1060,7 +1189,7 @@ message UpdateViewRequest { // For a detailed `FieldMask` definition, see // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask // - // Example: `updateMask=filter`. + // For example: `updateMask=filter` google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -1070,8 +1199,9 @@ message GetViewRequest { // // "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" // - // Example: - // `"projects/my-project-id/locations/my-location/buckets/my-bucket-id/views/my-view-id"`. + // For example: + // + // `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1086,8 +1216,9 @@ message DeleteViewRequest { // // "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" // - // Example: - // `"projects/my-project-id/locations/my-location/buckets/my-bucket-id/views/my-view-id"`. + // For example: + // + // `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1143,7 +1274,9 @@ message GetSinkRequest { // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" // "folders/[FOLDER_ID]/sinks/[SINK_ID]" // - // Example: `"projects/my-project-id/sinks/my-sink-id"`. + // For example: + // + // `"projects/my-project/sinks/my-sink"` string sink_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1161,7 +1294,10 @@ message CreateSinkRequest { // "billingAccounts/[BILLING_ACCOUNT_ID]" // "folders/[FOLDER_ID]" // - // Examples: `"projects/my-logging-project"`, `"organizations/123456789"`. + // For examples: + // + // `"projects/my-project"` + // `"organizations/123456789"` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1176,9 +1312,9 @@ message CreateSinkRequest { // Optional. Determines the kind of IAM identity returned as `writer_identity` // in the new sink. If this value is omitted or set to false, and if the // sink's parent is a project, then the value returned as `writer_identity` is - // the same group or service account used by Logging before the addition of - // writer identities to this API. The sink's destination must be in the same - // project as the sink itself. + // the same group or service account used by Cloud Logging before the addition + // of writer identities to this API. The sink's destination must be in the + // same project as the sink itself. // // If this field is set to true, or if the sink is owned by a non-project // resource such as an organization, then the value of `writer_identity` will @@ -1197,7 +1333,9 @@ message UpdateSinkRequest { // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" // "folders/[FOLDER_ID]/sinks/[SINK_ID]" // - // Example: `"projects/my-project-id/sinks/my-sink-id"`. + // For example: + // + // `"projects/my-project/sinks/my-sink"` string sink_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1226,16 +1364,18 @@ message UpdateSinkRequest { // an update. A sink field will be overwritten if, and only if, it is // in the update mask. `name` and output only fields cannot be updated. // - // An empty updateMask is temporarily treated as using the following mask + // An empty `updateMask` is temporarily treated as using the following mask // for backwards compatibility purposes: - // destination,filter,includeChildren + // + // `destination,filter,includeChildren` + // // At some point in the future, behavior will be removed and specifying an - // empty updateMask will be an error. + // empty `updateMask` will be an error. // // For a detailed `FieldMask` definition, see // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask // - // Example: `updateMask=filter`. + // For example: `updateMask=filter` google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -1249,7 +1389,9 @@ message DeleteSinkRequest { // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" // "folders/[FOLDER_ID]/sinks/[SINK_ID]" // - // Example: `"projects/my-project-id/sinks/my-sink-id"`. + // For example: + // + // `"projects/my-project/sinks/my-sink"` string sink_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1258,12 +1400,11 @@ message DeleteSinkRequest { ]; } -// Specifies a set of log entries that are not to be stored in -// Logging. If your GCP resource receives a large volume of logs, you can -// use exclusions to reduce your chargeable logs. Exclusions are -// processed after log sinks, so you can export log entries before they are -// excluded. Note that organization-level and folder-level exclusions don't -// apply to child resources, and that you can't exclude audit log entries. +// Specifies a set of log entries that are filtered out by a sink. If +// your Google Cloud resource receives a large volume of log entries, you can +// use exclusions to reduce your chargeable logs. Note that exclusions on +// organization-level and folder-level sinks don't apply to child resources. +// Note also that you cannot modify the _Required sink or exclude logs from it. message LogExclusion { option (google.api.resource) = { type: "logging.googleapis.com/LogExclusion" @@ -1287,10 +1428,11 @@ message LogExclusion { // matches the log entries to be excluded. By using the [sample // function](https://cloud.google.com/logging/docs/view/advanced-queries#sample), // you can exclude less than 100% of the matching log entries. - // For example, the following query matches 99% of low-severity log - // entries from Google Cloud Storage buckets: // - // `"resource.type=gcs_bucket severity = ` or + // `attributes. = AND attributes. = `). Also, all + // attributes are stored as strings, so the only supported comparisons against + // attributes are string comparisons. In order to compare against number or + // boolean values, the values must be explicitly quoted to be treated as + // strings (for example, `attributes. = "10"` or + // `attributes. = "true"`). string filter = 6 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A filter to limit the search area to a rectangle defined by the + // Optional. A filter that limits the search area to a rectangle defined by the // northeast and southwest corner points. // - // When defined, only vehicles located within the area range will be returned. - google.geo.type.Viewport viewport = 7 - [(google.api.field_behavior) = OPTIONAL]; + // When defined, only vehicles located within the search area are returned. + google.geo.type.Viewport viewport = 7 [(google.api.field_behavior) = OPTIONAL]; } -// ListDeliveryVehicles response message. +// The `ListDeliveryVehicles` response message. message ListDeliveryVehiclesResponse { - // The list of delivery vehicles that meet the requested filtering criteria. + // The set of delivery vehicles that meet the requested filtering criteria. + // When no filter is specified, the request returns all delivery vehicles. A + // successful response can also be empty. An empty response indicates that no + // delivery vehicles were found meeting the requested filter criteria. repeated DeliveryVehicle delivery_vehicles = 1; - // Pass this token in the ListDeliveryVehiclesRequest to continue to list - // results. If all results have been returned, this field is an empty string - // or not present in the response. + // You can pass this token in the `ListDeliveryVehiclesRequest` to continue to + // list results. When all of the results are returned, this field won't be in + // the response, or it will be an empty string. string next_page_token = 2; - // Total number of delivery vehicles matching request criteria across all - // pages. + // The total number of delivery vehicles that match the request criteria, + // across all pages. int64 total_size = 3; } -// UpdateDeliveryVehicle request message. +// The `UpdateDeliveryVehicle` request message. message UpdateDeliveryVehicleRequest { - // Optional. The standard Fleet Engine request header. - maps.fleetengine.v1.RequestHeader header = 1 - [(google.api.field_behavior) = OPTIONAL]; + // Optional. The standard Delivery API request header. + DeliveryRequestHeader header = 1 [(google.api.field_behavior) = OPTIONAL]; - // Required. The DeliveryVehicle entity update to apply. - // The name of the DeliveryVehicle cannot be updated. + // Required. The `DeliveryVehicle` entity update to apply. + // Note: You cannot update the name of the `DeliveryVehicle`. DeliveryVehicle delivery_vehicle = 3 [(google.api.field_behavior) = REQUIRED]; - // Required. A field mask indicating which fields of the DeliveryVehicle to - // update. The update_mask must contain at least one field. - google.protobuf.FieldMask update_mask = 4 - [(google.api.field_behavior) = REQUIRED]; + // Required. A field mask that indicates which `DeliveryVehicle` fields to + // update. Note that the update_mask must contain at least one field. + // + // This is a comma-separated list of fully qualified names of fields. Example: + // `"remaining_vehicle_journey_segments"`. + google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED]; } -// CreateTask request message. +// The `BatchCreateTask` request message. +message BatchCreateTasksRequest { + // Optional. The standard Delivery API request header. + // Note: If you set this field, then the header field in the + // `CreateTaskRequest` messages must either be empty, or it must match this + // field. + DeliveryRequestHeader header = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The parent resource shared by all tasks. This value must be in the format + // `providers/{provider}`. The `provider` must be the Google Cloud Project ID. + // For example, `sample-cloud-project`. The parent field in the + // `CreateTaskRequest` messages must either be empty, or it must match this + // field. + string parent = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "fleetengine.googleapis.com/Task" + } + ]; + + // Required. The request message that specifies the resources to create. + // Note: You can create a maximum of 500 tasks in a batch. + repeated CreateTaskRequest requests = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// The `BatchCreateTask` response message. +message BatchCreateTasksResponse { + // The created Tasks. + repeated Task tasks = 1; +} + +// The `CreateTask` request message. message CreateTaskRequest { - // Optional. The standard Fleet Engine request header. - maps.fleetengine.v1.RequestHeader header = 1 - [(google.api.field_behavior) = OPTIONAL]; + // 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 Project ID (e.g. `sample-cloud-project`) - // of the Google Cloud Project of which the service account making - // this call is a member. + // 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 Task ID must be unique for each provider. IDs are subject to - // the following normalization and restrictions: + // Required. The Task ID must be unique, but it should be not a shipment tracking ID. To + // store a shipment tracking ID, use the `tracking_id` field. Note that + // multiple tasks can have the same `tracking_id`. Task IDs are subject to the + // following restrictions: // - // 1. IDs must be valid Unicode strings. - // 2. IDs are limited to a maximum length of 64 characters. - // 3. IDs will be normalized according to Unicode Normalization Form C + // * 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/). - // 4. IDs may not contain any of the following ASCII characters: '/', ':', - // '\\', '?', or '#'. + // * May not contain any of the following ASCII characters: '/', ':', '?', + // ',', or '#'. string task_id = 5 [(google.api.field_behavior) = REQUIRED]; - // Required. Task entity to create. + // Required. The Task entity to create. // When creating a Task, the following fields are required: // - // * type - // * state (must be set to 'OPEN' or request will fail) - // * tracking_id (must not be set for UNAVAILABLE or SCHEDULED_STOP tasks - // but required for all other task types.) - // * planned_location (optional for UNAVAILABLE tasks) - // * task_duration + // * `type` + // * `state` (must be set to `OPEN`) + // * `tracking_id` (must not be set for `UNAVAILABLE` or `SCHEDULED_STOP` + // tasks, but required for all other task types) + // * `planned_location` (optional for `UNAVAILABLE` tasks) + // * `task_duration` // - // All other Task fields are ignored. + // Note: The Task's `name` field is ignored. All other Task fields must not be + // set; otherwise, an error is returned. Task task = 4 [(google.api.field_behavior) = REQUIRED]; } -// GetTask request message. +// The `GetTask` request message. message GetTaskRequest { - // Optional. The standard Fleet Engine request header. - maps.fleetengine.v1.RequestHeader header = 1 - [(google.api.field_behavior) = OPTIONAL]; - - // Required. Must be in the format `providers/{provider}/tasks/{task}`. - // The provider must be the Project ID (e.g. `sample-cloud-project`) of the - // Google Cloud Project of which the service account making this call is a - // member. + // Optional. The standard Delivery API request header. + DeliveryRequestHeader header = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Must be in the format `providers/{provider}/tasks/{task}`. The `provider` + // must be the Google Cloud Project ID. For example, `sample-cloud-project`. string name = 3 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -310,85 +408,93 @@ message GetTaskRequest { ]; } -// SearchTasks request message containing the tracking_id used to search Tasks. +// The `SearchTasks` request message that contains the `tracking_id`. message SearchTasksRequest { - // Optional. The standard Fleet Engine request header. - maps.fleetengine.v1.RequestHeader header = 1 - [(google.api.field_behavior) = OPTIONAL]; + // 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 Project ID (for example, `sample-cloud-project`) - // of the Google Cloud Project of which the service account making - // this call is a member. + // The provider must be the Google Cloud Project ID. For example, + // `sample-cloud-project`. string parent = 3 [(google.api.field_behavior) = REQUIRED]; - // Required. Identifier for the related set of tasks that are being requested. + // 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 unspecified, the server will decide the number of - // results to return. + // 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. - // Provide this to retrieve the subsequent page. + // 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]; } -// SearchTasks response containing list of Tasks which met the search criteria -// in the SearchTasksRequest. +// The `SearchTasks` response. It contains the set of Tasks that meet the search +// criteria in the `SearchTasksRequest`. message SearchTasksResponse { - // The list of tasks for the requested tracking_id. + // 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, this field is an empty - // string or not present in the response. + // 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; } -// UpdateTask request message. +// The `UpdateTask` request message. message UpdateTaskRequest { - // Optional. The standard Fleet Engine request header. - maps.fleetengine.v1.RequestHeader header = 1 - [(google.api.field_behavior) = OPTIONAL]; + // Optional. The standard Delivery API request header. + DeliveryRequestHeader header = 1 [(google.api.field_behavior) = OPTIONAL]; // Required. The Task associated with the update. - // The following fields are maintained by the Fleet Engine. Do not update - // them using Task.update. - // * last_location - // * last_location_snappable - // * name - // * remaining_vehicle_journey_segments - // * task_outcome_location_source + // The following fields are maintained by Fleet Engine. Do not update + // them using `Task.update`. + // + // * `last_location`. + // * `last_location_snappable`. + // * `name`. + // * `remaining_vehicle_journey_segments`. + // * `task_outcome_location_source`. // - // The task_outcome cannot be changed once it has been set. + // Note: You cannot change the value of `task_outcome` once you set it. // - // If the Task has been assigned a delivery vehicle, do not set the Task state - // to CLOSED using Task.update. Instead, remove the VehicleStop containing - // the Task from the delivery vehicle, which automatically sets the Task - // state to CLOSED. + // If the Task has been assigned to a delivery vehicle, then don't set the + // Task state to CLOSED using `Task.update`. Instead, remove the `VehicleStop` + // that contains the Task from the delivery vehicle, which automatically sets + // the Task state to CLOSED. Task task = 3 [(google.api.field_behavior) = REQUIRED]; - // Required. The field mask indicating which fields in Task to - // update. The update_mask must contain at least one field. - google.protobuf.FieldMask update_mask = 4 - [(google.api.field_behavior) = REQUIRED]; + // Required. The field mask that indicates which Task fields to update. + // Note: The `update_mask` must contain at least one field. + // + // This is a comma-separated list of fully qualified names of fields. Example: + // `"task_outcome,task_outcome_time,task_outcome_location"`. + google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED]; } -// ListTasks request message. +// The `ListTasks` request message. message ListTasksRequest { - // Optional. The standard Fleet Engine request header. - maps.fleetengine.v1.RequestHeader header = 1 - [(google.api.field_behavior) = OPTIONAL]; + // 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 Project ID (for example, `sample-cloud-project`) - // of the Google Cloud Project of which the service account making - // this call is a member. + // The `provider` must be the Google Cloud Project ID. For example, + // `sample-cloud-project`. string parent = 3 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -396,36 +502,42 @@ message ListTasksRequest { } ]; - // Optional. The maximum number of Tasks to return. The service may return - // fewer than this value. If unspecified, the server will decide the number of - // results to return. + // 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 = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A page token, received from a previous `ListTasks` call. - // Provide this to retrieve the subsequent page. + // Optional. A page token received from a previous `ListTasks` call. + // You can provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to `ListTasks` must match // the call that provided the page token. string page_token = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A filter query to apply when listing tasks. - // See http://aip.dev/160 for examples of filter syntax. - // If no value is specified or filter is an empty string, all tasks will be - // returned. + // 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). string filter = 6 [(google.api.field_behavior) = OPTIONAL]; } -// ListTasks response containing list of Tasks which met the filter criteria -// in the ListTasksRequest. +// The `ListTasks` response that contains the set of Tasks that meet the filter +// criteria in the `ListTasksRequest`. message ListTasksResponse { - // The list of tasks that meet the requested filtering criteria. + // The set of Tasks that meet the requested filtering criteria. When no filter + // is specified, the request returns all tasks. A successful response can also + // be empty. An empty response indicates that no Tasks were found meeting the + // requested filter criteria. repeated Task tasks = 1; - // Pass this token in the ListTasksRequest to continue to list results. - // If all results have been returned, this field is an empty string or not - // present in the response. + // Pass this token in the `ListTasksRequest` 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; - // Total number of tasks matching request criteria across all pages. + // The total number of Tasks that match the request criteria, across all + // pages. int64 total_size = 3; } diff --git a/google/maps/fleetengine/delivery/v1/delivery_vehicles.proto b/google/maps/fleetengine/delivery/v1/delivery_vehicles.proto index ec40f48f3..c8e759a23 100644 --- a/google/maps/fleetengine/delivery/v1/delivery_vehicles.proto +++ b/google/maps/fleetengine/delivery/v1/delivery_vehicles.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,7 @@ package maps.fleetengine.delivery.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/maps/fleetengine/v1/fleetengine.proto"; +import "google/maps/fleetengine/delivery/v1/common.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; import "google/type/latlng.proto"; @@ -27,184 +27,208 @@ option go_package = "google.golang.org/genproto/googleapis/maps/fleetengine/deli option java_multiple_files = true; option java_outer_classname = "DeliveryVehicles"; option java_package = "google.maps.fleetengine.delivery.v1"; -option objc_class_prefix = "CFE"; +option objc_class_prefix = "CFED"; -// DeliveryVehicle metadata. +// The `DeliveryVehicle` message. A delivery vehicle transports shipments from a +// depot to a delivery location, and from a pickup location to the depot. In +// some cases, delivery vehicles also transport shipments directly from the +// pickup location to the delivery location. +// +// Note: gRPC and REST APIs use different field naming conventions. For example, +// the `DeliveryVehicle.current_route_segment` field in the gRPC API and the +// `DeliveryVehicle.currentRouteSegment` field in the REST API refer to the same +// field. message DeliveryVehicle { option (google.api.resource) = { type: "fleetengine.googleapis.com/DeliveryVehicle" pattern: "providers/{provider}/deliveryVehicles/{vehicle}" }; - // The unique name for this vehicle. - // The format is providers/{provider}/deliveryVehicles/{vehicle} + // The unique name of this Delivery Vehicle. + // The format is `providers/{provider}/deliveryVehicles/{vehicle}`. string name = 1; - // The last reported location of the vehicle. - maps.fleetengine.v1.VehicleLocation last_location = 2; + // The last reported location of the Delivery Vehicle. + DeliveryVehicleLocation last_location = 2; - // The Vehicle's navigation status. - maps.fleetengine.v1.NavigationStatus navigation_status = 3; + // The Delivery Vehicle's navigation status. + DeliveryVehicleNavigationStatus navigation_status = 3; - // The encoded polyline specifying the route the navigation recommends taking - // to the next waypoint. Your driver app updates this every time a stop is - // reached or passed, or the navigation reroutes. These LatLngs are returned - // in `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path` - // for all active tasks assigned to the vehicle. + // The encoded polyline specifying the route that the navigation recommends + // taking to the next waypoint. Your driver app updates this when a + // stop is reached or passed, and when the navigation reroutes. These LatLngs + // are returned in + // `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path` + // (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path` + // (REST) for all active Tasks assigned to the Vehicle. // - // There are a few cases where this field may not be used to populate - // `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`: + // There are a few cases where this field might not be used to populate + // `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path` + // (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path` + // (REST): // - // 1. The endpoint of the `current_route_segment` does not match - // `DeliveryVehicle.remaining_vehicle_journey_segments[0].stop`. + // * The endpoint of the `current_route_segment` does not match + // `DeliveryVehicle.remaining_vehicle_journey_segments[0].stop` (gRPC) or + // `DeliveryVehicle.remainingVehicleJourneySegments[0].stop` (REST). // - // 2. The driver app has not updated its location recently, so the last - // updated value for this field may be stale. + // * The driver app has not updated its location recently, so the last + // updated value for this field might be stale. // - // 3. The driver app has recently updated its location, but the - // `current_route_segment` is stale and points to a previous vehicle stop. + // * The driver app has recently updated its location, but the + // `current_route_segment` is stale, and points to a previous vehicle stop. // - // In these cases, Fleet Engine will populate this field with a - // route from the most recently passed VehicleStop to the upcoming VehicleStop - // to ensure the consumer of this field has the best available information on - // the current path of the delivery vehicle. + // In these cases, Fleet Engine populates this field with a route from the + // most recently passed VehicleStop to the upcoming VehicleStop to ensure that + // the consumer of this field has the best available information on the + // current path of the Delivery Vehicle. bytes current_route_segment = 4; // The location where the `current_route_segment` ends. This is not currently - // populated by the driver app, but it can be supplied on - // UpdateDeliveryVehicle calls as the latlng from the upcoming vehicle stop or - // the last latlng of the `current_route_segment`. Fleet Engine will then do - // its best to interpolate to an actual VehicleStop. + // populated by the driver app, but you can supply it on + // `UpdateDeliveryVehicle` calls. It is either the LatLng from the upcoming + // vehicle stop, or the last LatLng of the `current_route_segment`. Fleet + // Engine will then do its best to interpolate to an actual `VehicleStop`. // - // This field is ignored in UpdateDeliveryVehicle calls if the - // `DeliveryVehicle.current_route_segment` field is empty. + // This field is ignored in `UpdateDeliveryVehicle` calls if the + // `current_route_segment` field is empty. google.type.LatLng current_route_segment_end_point = 5; // The remaining driving distance for the `current_route_segment`. // This value is usually updated by the driver app because it is considered to // have more accurate information about the current route than Fleet Engine. - // However, it may be populated by Fleet Engine. For more information, see the - // documentation for `DeliveyVehicle.current_route_segment'. This field is - // returned in - // `Task.remaining_vehicle_journey_segment[0].driving_distance_meters` for all - // active tasks assigned to the vehicle. + // However, it might be populated by Fleet Engine. For more information, see + // [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment]. This field is returned in + // `Task.remaining_vehicle_journey_segments[0].driving_distance_meters` (gRPC) + // or `Task.remainingVehicleJourneySegments[0].drivingDistanceMeters` (REST) + // for all active Tasks assigned to the Delivery Vehicle. // - // This field is ignored in UpdateDeliveryVehicle calls if the - // `DeliveryVehicle.current_route_segment` field is empty. + // This field is ignored in `UpdateDeliveryVehicle` calls if the + // `current_route_segment` field is empty. google.protobuf.Int32Value remaining_distance_meters = 6; // The remaining driving time for the `current_route_segment`. // This value is usually updated by the driver app because it is considered to // have more accurate information about the current route than Fleet Engine. - // However, it may be populated by Fleet Engine. For more information, see the - // documentation for `DeliveyVehicle.current_route_segment'. This field is - // returned in `Task.remaining_vehicle_journey_segment[0].driving_duration` - // for all active tasks assigned to the vehicle. + // However, it might be populated by Fleet Engine. For more information, see + // [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment]. This field is + // returned in `Task.remaining_vehicle_journey_segments[0].driving_duration` + // (gRPC) or `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST) + // for all active tasks assigned to the Delivery Vehicle. // - // This field is ignored in UpdateDeliveryVehicle calls if the - // `DeliveryVehicle.current_route_segment` field is empty. + // This field is ignored in `UpdateDeliveryVehicle` calls if the + // `current_route_segment` field is empty. google.protobuf.Duration remaining_duration = 7; - // The journey segments assigned to this vehicle, starting from the vehicle's - // most recently reported location. + // The journey segments assigned to this Delivery Vehicle, starting from the + // Vehicle's most recently reported location. repeated VehicleJourneySegment remaining_vehicle_journey_segments = 8; - // List of custom delivery vehicle attributes. - // Each attribute has a unique key. - repeated maps.fleetengine.v1.VehicleAttribute attributes = 9; + // A list of custom Delivery Vehicle attributes. A Delivery Vehicle can have + // at most 50 attributes, and each attribute must have a unique key. + repeated DeliveryVehicleAttribute attributes = 9; } // A location with any additional identifiers. message LocationInfo { - // The lat/lng of the location. + // The location's coordinates. google.type.LatLng point = 1; } -// Represents a vehicle’s travel segment from its previous stop to the -// current stop. If it is the first active stop, then it is from +// Represents a Vehicle’s travel segment - from its previous stop to the +// current stop. If it is the first active stop, then it is from the // Vehicle’s current location to this stop. message VehicleJourneySegment { - // Specifies the actual stop location and the tasks associated with - // the stop. Some fields of the VehicleStop may not be present if this journey - // segment is part of JourneySharingInfo. + // Specifies the stop location, along with the Tasks associated with + // the stop. Some fields of the VehicleStop might not be present if this + // journey segment is part of `JourneySharingInfo`. VehicleStop stop = 1; // Output only. The travel distance from the previous stop to this stop. // If the current stop is the first stop in the list of journey // segments, then the starting point is the vehicle's location recorded - // at the time that this stop was added to the list. This field may not be - // present if this journey segment is part of JourneySharingInfo. + // at the time that this stop was added to the list. This field might not be + // present if this journey segment is part of `JourneySharingInfo`. google.protobuf.Int32Value driving_distance_meters = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The travel time from the previous stop to this stop. // If the current stop is the first stop in the list of journey - // segments, then the starting point is the vehicle's location recorded + // segments, then the starting point is the Vehicle's location recorded // at the time that this stop was added to the list. // // If this field is defined in the path - // `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].driving_duration`, + // `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or + // `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST), // then it may be populated with the value from - // `DeliveryVehicle.remaining_duration` so it provides the remaining driving - // duration from the driver app's latest known location, not the driving time - // from the previous stop. + // `DeliveryVehicle.remaining_duration` (gRPC) or + // `DeliveryVehicle.remainingDuration` (REST). + // This provides the remaining driving duration from the driver app's latest + // known location rather than the driving time from the previous stop. google.protobuf.Duration driving_duration = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The path from the previous stop to this stop. If the current stop is the + // Output only. The path from the previous stop to this stop. If the current stop is the // first stop in the list of journey segments, then this is the path from the // vehicle's current location to this stop at the time that the stop was - // added to the list. This field may not be present if this journey segment is - // part of JourneySharingInfo. + // added to the list. This field might not be present if this journey segment + // is part of `JourneySharingInfo`. // // If this field is defined in the path - // `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`, - // then it may be populated with the LatLngs decoded from - // `DeliveryVehicle.current_route_segment` so it provides the driving - // path from the driver app's latest known location, not the path from + // `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path` + // (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path` + // (REST), then it may be populated with the LatLngs decoded from + // `DeliveryVehicle.current_route_segment` (gRPC) or + // `DeliveryVehicle.currentRouteSegment` (REST). This provides the driving + // path from the driver app's latest known location rather than the path from // the previous stop. - repeated google.type.LatLng path = 5; + repeated google.type.LatLng path = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Describes a point where a vehicle will stop on its journey to perform -// one or more tasks. +// Describes a point where a Vehicle stops to perform one or more Tasks. message VehicleStop { - // Additional information about the task performed at this stop. + // Additional information about the Task performed at this stop. message TaskInfo { - // The task ID. This field will not be present when returned as part - // of GetTaskResponse or SearchTasksResponse. + // 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: + // + // * 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 task_id = 1; - // The time required to perform the task. + // The time required to perform the Task. google.protobuf.Duration task_duration = 2; } - // The current state of a VehicleStop. + // The current state of a `VehicleStop`. enum State { // Unknown. STATE_UNSPECIFIED = 0; - // Created but not actively routing to. + // Created, but not actively routing. NEW = 1; - // Assigned and actively routing to. + // Assigned and actively routing. ENROUTE = 2; - // Arrived at stop. Assumes that when the vehicle is routing to the next - // stop, all previous stops are completed. + // Arrived at stop. Assumes that when the Vehicle is routing to the next + // stop, that all previous stops have been completed. ARRIVED = 3; } - // Required. The location of the stop. Note that the locations in the tasks may not - // exactly match this location, but will be within a short distance. - // This field will not be present when returned as part of GetTaskResponse and - // SearchTasksResponse. + // Required. The location of the stop. Note that the locations in the Tasks 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. LocationInfo planned_location = 1 [(google.api.field_behavior) = REQUIRED]; - // The list of tasks to be performed at this stop. Some fields of TaskInfo - // will not be present when returned as part of GetTaskResponse or - // SearchTasksResponse. + // The list of Tasks to be performed at this stop. This field won't be + // populated in the response of either a `GetTask`, or a `SearchTasks` call. repeated TaskInfo tasks = 2; - // The state of the VehicleStop. This field will not be present when returned - // as part of GetTaskResponse or SearchTasksResponse. + // The state of the `VehicleStop`. This field won't be populated in the + // response of either a `GetTask`, or a `SearchTasks` call. State state = 3; } diff --git a/google/maps/fleetengine/delivery/v1/fleetengine.yaml b/google/maps/fleetengine/delivery/v1/fleetengine.yaml index b0c3d398f..8f22a94f4 100644 --- a/google/maps/fleetengine/delivery/v1/fleetengine.yaml +++ b/google/maps/fleetengine/delivery/v1/fleetengine.yaml @@ -11,12 +11,16 @@ apis: documentation: summary: |- Enables Fleet Engine for access to the On Demand Rides and Deliveries and - Last Mile Fleet Solution APIs. + Last Mile Fleet Solution APIs. Customer's use of Google Maps Content in + the Cloud Logging Services is subject to the Google Maps Platform Terms of + Service located at https://cloud.google.com/maps-platform/terms. backend: rules: - selector: 'maps.fleetengine.delivery.v1.DeliveryService.*' deadline: 10.0 + - selector: maps.fleetengine.delivery.v1.DeliveryService.BatchCreateTasks + deadline: 60.0 - selector: maps.fleetengine.delivery.v1.DeliveryService.GetDeliveryVehicle deadline: 4.0 - selector: maps.fleetengine.delivery.v1.DeliveryService.GetTask diff --git a/google/maps/fleetengine/delivery/v1/header.proto b/google/maps/fleetengine/delivery/v1/header.proto new file mode 100644 index 000000000..17d9f6794 --- /dev/null +++ b/google/maps/fleetengine/delivery/v1/header.proto @@ -0,0 +1,103 @@ +// 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 maps.fleetengine.delivery.v1; + +import "google/api/field_behavior.proto"; + +option go_package = "google.golang.org/genproto/googleapis/maps/fleetengine/delivery/v1;delivery"; +option java_multiple_files = true; +option java_outer_classname = "Headers"; +option java_package = "google.maps.fleetengine.delivery.v1"; +option objc_class_prefix = "CFED"; + +// A RequestHeader contains fields common to all Delivery RPC requests. +message DeliveryRequestHeader { + // Possible types of SDK. + enum SdkType { + // The default value. This value is used if the `sdk_type` is omitted. + SDK_TYPE_UNSPECIFIED = 0; + + // The calling SDK is Consumer. + CONSUMER = 1; + + // The calling SDK is Driver. + DRIVER = 2; + + // The calling SDK is JavaScript. + JAVASCRIPT = 3; + } + + // The platform of the calling SDK. + enum Platform { + // The default value. This value is used if the platform is omitted. + PLATFORM_UNSPECIFIED = 0; + + // The request is coming from Android. + ANDROID = 1; + + // The request is coming from iOS. + IOS = 2; + + // The request is coming from the web. + WEB = 3; + } + + // 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. If none + // is specified, the response may be in any language, with a preference for + // English if such a name exists. Field value example: `en-US`. + string language_code = 1; + + // Required. CLDR region code of the region where the request originates. + // Field value example: `US`. + string region_code = 2 [(google.api.field_behavior) = REQUIRED]; + + // Version of the calling SDK, if applicable. + // The version format is "major.minor.patch", example: `1.1.2`. + string sdk_version = 3; + + // Version of the operating system on which the calling SDK is running. + // Field value examples: `4.4.1`, `12.1`. + string os_version = 4; + + // Model of the device on which the calling SDK is running. + // Field value examples: `iPhone12,1`, `SM-G920F`. + string device_model = 5; + + // The type of SDK sending the request. + SdkType sdk_type = 6; + + // Version of the MapSDK which the calling SDK depends on, if applicable. + // The version format is "major.minor.patch", example: `5.2.1`. + string maps_sdk_version = 7; + + // Version of the NavSDK which the calling SDK depends on, if applicable. + // The version format is "major.minor.patch", example: `2.1.0`. + string nav_sdk_version = 8; + + // Platform of the calling SDK. + Platform platform = 9; + + // Manufacturer of the Android device from the calling SDK, only applicable + // for the Android SDKs. + // Field value example: `Samsung`. + string manufacturer = 10; + + // Android API level of the calling SDK, only applicable for the Android SDKs. + // Field value example: `23`. + int32 android_api_level = 11; +} diff --git a/google/maps/fleetengine/delivery/v1/tasks.proto b/google/maps/fleetengine/delivery/v1/tasks.proto index 972220f89..b56132c73 100644 --- a/google/maps/fleetengine/delivery/v1/tasks.proto +++ b/google/maps/fleetengine/delivery/v1/tasks.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,8 +18,8 @@ package maps.fleetengine.delivery.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/maps/fleetengine/delivery/v1/common.proto"; import "google/maps/fleetengine/delivery/v1/delivery_vehicles.proto"; -import "google/maps/fleetengine/v1/fleetengine.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; @@ -27,171 +27,184 @@ option go_package = "google.golang.org/genproto/googleapis/maps/fleetengine/deli option java_multiple_files = true; option java_outer_classname = "Tasks"; option java_package = "google.maps.fleetengine.delivery.v1"; -option objc_class_prefix = "CFE"; - -// 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 shipment can have multiple tasks associated with it; for -// example, one task for the pickup and one for the dropoff or transfer. -// Different tasks for a given shipment can be handled by different vehicles; -// for example, one vehicle handles the pickup and drives the shipment to the -// hub, while another drives the same shipment from the hub to the dropoff. +option objc_class_prefix = "CFED"; + +// 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 +// shipment can have multiple Tasks associated with it. For example, there could +// be one Task for the pickup, and one for the drop-off or transfer. Also, +// different Tasks for a given shipment can be handled by different vehicles. +// For example, one vehicle could handle the pickup, driving the shipment to the +// hub, while another vehicle drives the same shipment from the hub to the +// drop-off location. +// +// Note: gRPC and REST APIs use different field naming conventions. For example, +// the `Task.journey_sharing_info` field in the gRPC API and the +// `DeliveryVehicle.journeySharingInfo` field in the REST API refer to the same +// field. message Task { option (google.api.resource) = { type: "fleetengine.googleapis.com/Task" pattern: "providers/{provider}/tasks/{task}" }; - // Journey sharing specific fields. - message JourneySharingInfo { - // Tracking information for each stop that the assigned vehicle will - // travel to before completing this task. This list may contain stops - // from other tasks. - // - // The first segment, - // `Task.journey_sharing_info.remaining_vehicle_journey_segments[0]`, - // contains route information from the driver's last known location to the - // upcoming VehicleStop. This current route information usually comes from - // the driver app except for some cases noted in the documentation for - // `DeliveyVehicle.current_route_segment`. The other segments in - // `Task.journey_sharing_info.remaining_vehicle_journey_segments` are - // populated by Fleet Engine and provide route information between the - // remaining VehicleStops. - repeated VehicleJourneySegment remaining_vehicle_journey_segments = 1; - - // Indicates the last reported location of the assigned vehicle - // along the route. - maps.fleetengine.v1.VehicleLocation last_location = 2; - - // Indicates whether the vehicle's lastLocation can be snapped to - // the `current_route_segment`. False if `last_location` or - // `current_route_segment` do not exist. This value is computed by - // Fleet Engine. Any update from clients will be ignored. - bool last_location_snappable = 3; - } - - // The type of a Task. + // The type of Task. enum Type { - // Default, the task type is not known. + // Default, the Task type is unknown. TYPE_UNSPECIFIED = 0; - // A pickup task is the action taken for picking up a shipment from an end + // A pickup Task is the action taken for picking up a shipment from a // customer. Depot or feeder vehicle pickups should use the `SCHEDULED_STOP` // type. PICKUP = 1; - // A delivery task is the action taken for delivering a shipment to an end + // A delivery Task is the action taken for delivering a shipment to an end // customer. Depot or feeder vehicle dropoffs should use the // `SCHEDULED_STOP` type. DELIVERY = 2; - // A scheduled stop task is used for planning purposes. For example, it may - // represent picking up or dropping off shipments at feeder vehicles or - // depots. It should not be used for any shipments that are picked up or + // A scheduled stop Task is used for planning purposes. For example, it + // could represent picking up or dropping off shipments from feeder vehicles + // or depots. It shouldn't be used for any shipments that are picked up or // dropped off from an end customer. SCHEDULED_STOP = 3; - // A task that indicates unavailability (e.g. driver breaks or vehicle - // refueling). + // A Task that means the Vehicle is not available for service. For example, + // this can happen when the driver takes a break, or when the vehicle + // is being refueled. UNAVAILABLE = 4; } - // The state of a Task indicating its progression. + // The state of a Task. This indicates the Tasks's progress. enum State { - // Default, used for an unspecified or unrecognized Task state. + // Default. Used for an unspecified or unrecognized Task state. STATE_UNSPECIFIED = 0; - // The task has not yet been assigned a delivery vehicle, or the delivery - // vehicle has not yet passed the task's assigned vehicle stop. + // Either the Task has not yet been assigned to a delivery vehicle, or the + // delivery vehicle has not yet passed the Task's assigned vehicle stop. OPEN = 1; - // When the vehicle this task was assigned to passes the vehicle stop of - // this task. + // When the vehicle passes the vehicle stop for this Task. CLOSED = 2; } - // The outcome of attempting to execute a task. When TaskState is closed, - // this indicates whether it was completed successfully or not. + // The outcome of attempting to execute a Task. When `TaskState` is closed, + // `TaskOutcome` indicates whether it was completed successfully. enum TaskOutcome { - // Task outcome before being set. + // The Task outcome before its value is set. TASK_OUTCOME_UNSPECIFIED = 0; - // Task was completed successfully. + // The Task completed successfully. SUCCEEDED = 1; - // Task could not be completed or was cancelled. + // Either the Task couldn't be completed, or it was cancelled. FAILED = 2; } - // The identity of the source which populated the task_outcome_location. + // The identity of the source that populated the `task_outcome_location`. enum TaskOutcomeLocationSource { - // Task outcome before being set. + // The Task outcome before it is set. TASK_OUTCOME_LOCATION_SOURCE_UNSPECIFIED = 0; - // The provider specified the task_outcome_location. + // The provider-specified the `task_outcome_location`. PROVIDER = 2; - // The provider did not specify the task_outcome_location so Fleet Engine + // The provider didn't specify the `task_outcome_location`, so Fleet Engine // used the last known vehicle location. LAST_VEHICLE_LOCATION = 3; } - // In the format `providers/{provider_id}/tasks/{task_id}`. The task_id must - // be a unique identifier and not a `tracking_id`. To store a `tracking_id` of - // a shipment use the `tracking_id` field. Multiple tasks can have the same - // `tracking_id`. + // Journey sharing specific fields. + message JourneySharingInfo { + // Tracking information for the stops that the assigned vehicle will make + // before it completes this Task. Note that this list can contain stops + // from other tasks. + // + // The first segment, + // `Task.journey_sharing_info.remaining_vehicle_journey_segments[0]` (gRPC) + // or `Task.journeySharingInfo.remainingVehicleJourneySegments[0]` (REST), + // contains route information from the driver's last known location to the + // upcoming `VehicleStop`. Current route information usually comes from the + // driver app, except for some cases noted in the documentation for + // [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment]. The other segments in + // `Task.journey_sharing_info.remaining_vehicle_journey_segments` (gRPC) or + // `Task.journeySharingInfo.remainingVehicleJourneySegments` (REST) are + // populated by Fleet Engine. They provide route information between the + // remaining `VehicleStops`. + repeated VehicleJourneySegment remaining_vehicle_journey_segments = 1; + + // Indicates the vehicle's last reported location of the assigned vehicle. + DeliveryVehicleLocation last_location = 2; + + // Indicates whether the vehicle's lastLocation can be snapped to + // the `current_route_segment`. This value is False if either + // `last_location` or `current_route_segment` don't exist. This value is + // computed by Fleet Engine. Updates from clients are ignored. + bool last_location_snappable = 3; + } + + // Must be in the format `providers/{provider}/tasks/{task}`. string name = 1; - // Required. Immutable. Defines the type of the task; for example, a break or shipment. + // Required. Immutable. Defines the type of the Task. For example, a break or shipment. Type type = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; - // Required. The current execution state of the task. + // Required. The current execution state of the Task. State state = 3 [(google.api.field_behavior) = REQUIRED]; - // The outcome of the task. + // The outcome of the Task. TaskOutcome task_outcome = 9; - // The timestamp of when the task's outcome was set (from provider). + // The timestamp that indicates when the Task's outcome was set by the + // provider. google.protobuf.Timestamp task_outcome_time = 10; - // Location where the task's outcome was set. Updated as part of UpdateTask. - // redacted as part of SearchTasks requests. If not explicitly updated by - // provider then Fleet Engine will populate it by default with the last known - // vehicle location (raw location). + // The location where the Task's outcome was set. This value is updated as + // part of `UpdateTask`. If this value isn't explicitly updated by the + // provider, then Fleet Engine populates it by default with the last known + // vehicle location (the *raw* location). LocationInfo task_outcome_location = 11; // Indicates where the value of the `task_outcome_location` came from. TaskOutcomeLocationSource task_outcome_location_source = 12; - // Immutable. This field facilitates the storing of an ID for the customer to avoid - // unnecessary or complicated mapping. Cannot be set for Tasks of type - // `UNAVAILABLE` or `SCHEDULED_STOP`. IDs are subject to the - // following normalization and restrictions: + // Immutable. This field facilitates the storing of an ID so you can avoid using a + // complicated mapping. You cannot set `tracking_id` for Tasks of type + // `UNAVAILABLE` and `SCHEDULED_STOP`. These IDs are subject to the + // following restrictions: // - // 1. IDs must be valid Unicode strings. - // 2. IDs are limited to a maximum length of 64 characters. - // 3. IDs will be normalized according to Unicode Normalization Form C + // * 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/). - // 4. IDs may not contain any of the following ASCII characters: '/', ':', - // '\\', '?', or '#'. + // * May not contain any of the following ASCII characters: '/', ':', '?', + // ',', or '#'. string tracking_id = 4 [(google.api.field_behavior) = IMMUTABLE]; - // Output only. The ID of the vehicle making this Task. + // Output only. The ID of the vehicle that is executing this Task. Delivery Vehicle 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 delivery_vehicle_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Immutable. The location where the task is to be completed. - // Optional for `UNAVAILABLE` Tasks, required for all others. + // Immutable. The location where the Task will be completed. + // Optional for `UNAVAILABLE` Tasks, but required for all other Tasks. LocationInfo planned_location = 6 [(google.api.field_behavior) = IMMUTABLE]; - // Required. Immutable. Additional time to perform an action at this location. + // Required. Immutable. The time needed to execute a Task at this location. google.protobuf.Duration task_duration = 7 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; - // Output only. Journey sharing specific fields. Not populated when state is `CLOSED`. + // Output only. Journey sharing-specific fields. Not populated when state is `CLOSED`. JourneySharingInfo journey_sharing_info = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/maps/fleetengine/v1/BUILD.bazel b/google/maps/fleetengine/v1/BUILD.bazel index 209984c67..fb29fc424 100644 --- a/google/maps/fleetengine/v1/BUILD.bazel +++ b/google/maps/fleetengine/v1/BUILD.bazel @@ -34,6 +34,7 @@ proto_library( "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", + "//google/api:routing_proto", "//google/type:latlng_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", @@ -175,8 +176,20 @@ py_gapic_library( name = "fleetengine_py_gapic", srcs = [":fleetengine_proto"], grpc_service_config = "fleetengine_grpc_service_config.json", + transport = "grpc", ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1371 is fixed +#py_test( +# name = "fleetengine_py_gapic_test", +# srcs = [ +# "fleetengine_py_gapic_pytest.py", +# "fleetengine_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":fleetengine_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "maps-fleetengine-v1-py", @@ -253,6 +266,7 @@ nodejs_gapic_assembly_pkg( deps = [ ":fleetengine_nodejs_gapic", ":fleetengine_proto", + "//google/geo/type:viewport_proto", ], ) diff --git a/google/maps/fleetengine/v1/fleetengine.proto b/google/maps/fleetengine/v1/fleetengine.proto index 211067717..2e659c992 100644 --- a/google/maps/fleetengine/v1/fleetengine.proto +++ b/google/maps/fleetengine/v1/fleetengine.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -44,13 +44,13 @@ message TerminalPointId { string value = 4; } -// Describes the location of a pickup or dropoff. +// Describes the location of a waypoint. message TerminalLocation { - // Required. Denotes the actual location of a pickup or dropoff. + // Required. Denotes the location of a trip waypoint. google.type.LatLng point = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. ID of the terminal point. - TerminalPointId terminal_point_id = 2 [(google.api.field_behavior) = REQUIRED]; + // ID of the terminal point. + TerminalPointId terminal_point_id = 2; // Deprecated. string access_point_id = 3 [deprecated = true]; @@ -65,45 +65,102 @@ message TerminalLocation { // Describes a stopping point on a vehicle's route or an ending point on a // vehicle's trip. message TripWaypoint { - // The location where this waypoint is + // The location of this waypoint. TerminalLocation location = 1; - // The trip this waypoint is part of + // The trip associated with this waypoint. string trip_id = 2; - // The type described the role the waypoint plays for this trip such as a - // pickup or dropoff. + // The role this waypoint plays in this trip, such as pickup or dropoff. WaypointType waypoint_type = 3; - // The path calculated by Fleet Engine from the previous waypoint to the - // current waypoint. + // The path from the previous waypoint to the current waypoint. Undefined for + // the first waypoint in a list. This field is only populated when requested. repeated google.type.LatLng path_to_waypoint = 4; - // The path calculated by the server from the previous waypoint to the current - // waypoint. Decoding is not yet supported. + // The encoded path from the previous waypoint to the current waypoint. + // + //

Note: This field is intended only for use by the Driver SDK and Consumer + // SDK. Decoding is not yet supported. string encoded_path_to_waypoint = 5; - // The traffic conditions along the path to this waypoint. - // Note that traffic is only available for Geo Enterprise Rides and Deliveries - // Solution customers. + // The traffic conditions along the path to this waypoint. Note that traffic + // is only available for Google Map Platform Rides and Deliveries Solution + // customers. ConsumableTrafficPolyline traffic_to_waypoint = 10; - // The path distance calculated by Fleet Engine from the previous waypoint to - // the current waypoint. If the waypoint is the first waypoint in the list - // (e.g., `Vehicle.waypoints[0]` or `Trip.remaining_waypoints[0]`), then the - // value of this field is undefined. + // The path distance from the previous waypoint to the current waypoint. + // Undefined for the first waypoint in a list. google.protobuf.Int32Value distance_meters = 6; - // The arrival time to this waypoint calculated by Fleet Engine. + // The estimated time of arrival at this waypoint. Undefined for the first + // waypoint in a list. google.protobuf.Timestamp eta = 7; - // The travel time from previous waypoint to this point. If the waypoint is - // the first waypoint in the list (e.g., `Vehicle.waypoints[0]` or - // `Trip.remaining_waypoints[0]`), then this value indicates the remaining - // time to the waypoint. + // The travel time from previous waypoint to this point. Undefined for the + // first waypoint in a list. google.protobuf.Duration duration = 8; } +// The type of a trip. +enum TripType { + // Default, used for unspecified or unrecognized trip types. + UNKNOWN_TRIP_TYPE = 0; + + // The trip may share a vehicle with other trips. + SHARED = 1; + + // The trip is exclusive to a vehicle. + EXCLUSIVE = 2; +} + +// The type of waypoint. +enum WaypointType { + // Unknown or unspecified waypoint type. + UNKNOWN_WAYPOINT_TYPE = 0; + + // Waypoints for picking up riders or items. + PICKUP_WAYPOINT_TYPE = 1; + + // Waypoints for dropping off riders or items. + DROP_OFF_WAYPOINT_TYPE = 2; + + // Waypoints for intermediate destinations in a multi-destination trip. + INTERMEDIATE_DESTINATION_WAYPOINT_TYPE = 3; +} + +// The type of polyline format. +enum PolylineFormatType { + // The format is unspecified or unknown. + UNKNOWN_FORMAT_TYPE = 0; + + // A list of `google.type.LatLng`. + LAT_LNG_LIST_TYPE = 1; + + // A polyline encoded with a polyline compression algorithm. Decoding is not + // yet supported. + ENCODED_POLYLINE_TYPE = 2; +} + +// The vehicle's navigation status. +enum NavigationStatus { + // Unspecified navigation status. + UNKNOWN_NAVIGATION_STATUS = 0; + + // The Driver app's navigation is in `FREE_NAV` mode. + NO_GUIDANCE = 1; + + // Turn-by-turn navigation is available and the Driver app navigation has + // entered `GUIDED_NAV` mode. + ENROUTE_TO_DESTINATION = 2; + + // The vehicle has gone off the suggested route. + OFF_ROUTE = 3; + + // The vehicle is within approximately 50m of the destination. + ARRIVED_AT_DESTINATION = 4; +} + // Describes a vehicle attribute as a key-value pair. The "key:value" string // length cannot exceed 256 characters. message VehicleAttribute { @@ -158,7 +215,8 @@ message VehicleLocation { // Accuracy of `speed` in meters/second. google.protobuf.DoubleValue speed_accuracy = 7; - // The time when `location` was reported by the sensor. + // The time when `location` was reported by the sensor according to the + // sensor's clock. google.protobuf.Timestamp update_time = 4; // Output only. The time when the server received the location information. @@ -194,8 +252,7 @@ message VehicleLocation { // Input only. Accuracy of `raw_location` as a radius, in meters. google.protobuf.DoubleValue raw_location_accuracy = 25 [(google.api.field_behavior) = INPUT_ONLY]; - // Input only. Supplemental location provided by the integrating app, such as the location - // provided by Fused Location Provider. + // Input only. Supplemental location provided by the integrating app. google.type.LatLng supplemental_location = 18 [(google.api.field_behavior) = INPUT_ONLY]; // Input only. Timestamp associated with the supplemental location. @@ -211,65 +268,6 @@ message VehicleLocation { bool road_snapped = 26 [deprecated = true]; } -// The type of a trip. -enum TripType { - // Default, used for unspecified or unrecognized trip types. - UNKNOWN_TRIP_TYPE = 0; - - // The trip may share a vehicle with other trips. - SHARED = 1; - - // The trip is exclusive to a vehicle. - EXCLUSIVE = 2; -} - -// The type of waypoint. -enum WaypointType { - // Unknown or unspecified waypoint type. - UNKNOWN_WAYPOINT_TYPE = 0; - - // Waypoints for picking up riders or items. - PICKUP_WAYPOINT_TYPE = 1; - - // Waypoints for dropping off riders or items. - DROP_OFF_WAYPOINT_TYPE = 2; - - // Waypoints for intermediate destinations in a multi-destination trip. - INTERMEDIATE_DESTINATION_WAYPOINT_TYPE = 3; -} - -// The type of polyline format. -enum PolylineFormatType { - // The format is unspecified or unknown. - UNKNOWN_FORMAT_TYPE = 0; - - // A list of `google.type.LatLng`. - LAT_LNG_LIST_TYPE = 1; - - // A polyline encoded with a polyline compression algorithm. Decoding is not - // yet supported. - ENCODED_POLYLINE_TYPE = 2; -} - -// The vehicle's navigation status. -enum NavigationStatus { - // Unspecified navigation status. - UNKNOWN_NAVIGATION_STATUS = 0; - - // The Driver app's navigation is in `FREE_NAV` mode. - NO_GUIDANCE = 1; - - // Turn-by-turn navigation is available and the Driver app navigation has - // entered `GUIDED_NAV` mode. - ENROUTE_TO_DESTINATION = 2; - - // The vehicle has gone off the suggested route. - OFF_ROUTE = 3; - - // The vehicle is within approximately 50m of the destination. - ARRIVED_AT_DESTINATION = 4; -} - // The sensor or methodology used to determine the location. enum LocationSensor { // The sensor is unspecified or unknown. @@ -289,4 +287,7 @@ enum LocationSensor { // The fused location provider in Google Play services. FUSED_LOCATION_PROVIDER = 100; + + // The location provider on Apple operating systems. + CORE_LOCATION = 200; } diff --git a/google/maps/fleetengine/v1/fleetengine_grpc_service_config.json b/google/maps/fleetengine/v1/fleetengine_grpc_service_config.json index fdbc04850..0d93501d8 100644 --- a/google/maps/fleetengine/v1/fleetengine_grpc_service_config.json +++ b/google/maps/fleetengine/v1/fleetengine_grpc_service_config.json @@ -25,6 +25,7 @@ "name": [ { "service": "maps.fleetengine.delivery.v1.DeliveryService", "method": "CreateDeliveryVehicle" }, { "service": "maps.fleetengine.delivery.v1.DeliveryService", "method": "GetDeliveryVehicle" }, + { "service": "maps.fleetengine.delivery.v1.DeliveryService", "method": "BatchCreateTasks" }, { "service": "maps.fleetengine.delivery.v1.DeliveryService", "method": "CreateTask" }, { "service": "maps.fleetengine.delivery.v1.DeliveryService", "method": "GetTask" }, { "service": "maps.fleetengine.delivery.v1.DeliveryService", "method": "UpdateTask" }, diff --git a/google/maps/fleetengine/v1/header.proto b/google/maps/fleetengine/v1/header.proto index c20f90732..978061fe2 100644 --- a/google/maps/fleetengine/v1/header.proto +++ b/google/maps/fleetengine/v1/header.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/fleetengine/v1/traffic.proto b/google/maps/fleetengine/v1/traffic.proto index 11768bc93..819ffaa60 100644 --- a/google/maps/fleetengine/v1/traffic.proto +++ b/google/maps/fleetengine/v1/traffic.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/fleetengine/v1/trip_api.proto b/google/maps/fleetengine/v1/trip_api.proto index 1066429bc..8031d951a 100644 --- a/google/maps/fleetengine/v1/trip_api.proto +++ b/google/maps/fleetengine/v1/trip_api.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,8 +17,10 @@ syntax = "proto3"; package maps.fleetengine.v1; 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/maps/fleetengine/v1/fleetengine.proto"; import "google/maps/fleetengine/v1/header.proto"; import "google/maps/fleetengine/v1/trips.proto"; @@ -26,7 +28,6 @@ import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/maps/fleetengine/v1;fleetengine"; option java_multiple_files = true; @@ -44,6 +45,12 @@ service TripService { post: "/v1/{parent=providers/*}/trips" body: "trip" }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{provider_id=providers/*}" + } + }; } // Get information about a single trip. @@ -51,6 +58,12 @@ service TripService { option (google.api.http) = { get: "/v1/{name=providers/*/trips/*}" }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{provider_id=providers/*}" + } + }; } // Report billable trip usage. @@ -59,6 +72,12 @@ service TripService { post: "/v1/{name=providers/*/billableTrips/*}:report" body: "*" }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{provider_id=providers/*}" + } + }; } // Get all the trips for a specific vehicle. @@ -67,6 +86,12 @@ service TripService { post: "/v1/{parent=providers/*}/trips:search" body: "*" }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{provider_id=providers/*}" + } + }; } // Updates trip data. @@ -75,6 +100,12 @@ service TripService { put: "/v1/{name=providers/*/trips/*}" body: "trip" }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{provider_id=providers/*}" + } + }; } } @@ -94,15 +125,15 @@ message CreateTripRequest { } ]; - // Required. Unique Trip ID; must be unique per provider. + // Required. Unique Trip ID. // Subject to the following restrictions: // - // 1. IDs must not contain any of the following ASCII characters: '/', ':', - // '?', or '#'. - // 2. IDs are limited to a maximum length of 64 characters. - // 3. IDs must be valid Unicode strings. - // 4. IDs must be normalized according to Unicode Normalization Form C + // * 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 trip_id = 5 [(google.api.field_behavior) = REQUIRED]; // Required. Trip entity to create. diff --git a/google/maps/fleetengine/v1/trips.proto b/google/maps/fleetengine/v1/trips.proto index f42ed651a..46ba96b47 100644 --- a/google/maps/fleetengine/v1/trips.proto +++ b/google/maps/fleetengine/v1/trips.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -73,24 +73,23 @@ message Trip { // trips. repeated TerminalLocation intermediate_destinations = 14; - // Indicates the last time the Trip.intermediate_destinations was modified. - // Your server should cache this value and pass it in UpdateTripRequest - // when update Trip.intermediate_destination_index to ensure the + // Indicates the last time the `intermediate_destinations` was modified. + // Your server should cache this value and pass it in `UpdateTripRequest` + // when update `intermediate_destination_index` to ensure the // Trip.intermediate_destinations is not changed. google.protobuf.Timestamp intermediate_destinations_version = 25; - // When TripStatus is ENROUTE_TO_INTERMEDIATE_DESTINATION, a number between - // [0..N-1] indicating which intermediate destination the vehicle will cross - // next. - // When TripStatus is ARRIVED_AT_INTERMEDIATE_DESTINATION, a number between - // [0..N-1] indicating which intermediate destination the vehicle is at. - // The provider sets this value. If there are no intermediate_destinations, - // this field is ignored. + // When `TripStatus` is `ENROUTE_TO_INTERMEDIATE_DESTINATION`, a number + // between [0..N-1] indicating which intermediate destination the vehicle will + // cross next. When `TripStatus` is `ARRIVED_AT_INTERMEDIATE_DESTINATION`, a + // number between [0..N-1] indicating which intermediate destination the + // vehicle is at. The provider sets this value. If there are no + // `intermediate_destinations`, this field is ignored. int32 intermediate_destination_index = 15; // Input only. The actual time and location of the driver's arrival at // an intermediate destination. - // This field is for provider to provide feedback on actual arriaval + // This field is for provider to provide feedback on actual arrival // information at intermediate destinations. repeated StopLocation actual_intermediate_destination_arrival_points = 33 [(google.api.field_behavior) = INPUT_ONLY]; @@ -113,75 +112,62 @@ message Trip { google.protobuf.Timestamp dropoff_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The full path from the current location to the dropoff point, inclusive. - // If this is a shared ride, this path could include waypoints from other - // trips. + // This path could include waypoints from other trips. repeated TripWaypoint remaining_waypoints = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - // This field supports manual ordering of the waypoints for the trip. - // It contains all of the remaining waypoints of vehicle assigned, as well as - // the pickup and drop-off waypoints for this trip. - // If the trip hasn't been assigned to a vehicle, then this field is ignored. - // For privacy reasons, this field is only populated by the server on - // UpdateTrip and CreateTrip calls, and NOT on GetTrip calls. + // This field supports manual ordering of the waypoints for the trip. It + // contains all of the remaining waypoints for the assigned vehicle, as well + // as the pickup and drop-off waypoints for this trip. If the trip hasn't been + // assigned to a vehicle, then this field is ignored. For privacy reasons, + // this field is only populated by the server on UpdateTrip and CreateTrip + // calls, NOT on GetTrip calls. repeated TripWaypoint vehicle_waypoints = 20; // Output only. Anticipated route for this trip to the first entry in remaining_waypoints. - // If back_to_back or shared trips are enabled, the waypoints may belong to a - // different trip. + // Note that the first waypoint may belong to a different trip. repeated google.type.LatLng route = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. An encoded path to the next waypoint. This field facilitates journey - // sharing between a Driver app and a Rider app. Your driver app is - // responsible for setting this field on all of its current trips by passing - // Vehicle.current_route_segment to UpdateVehicle. Note: This field is - // intended only for use by the Driver SDK and Consumer SDK. + // Output only. An encoded path to the next waypoint. + // + // Note: This field is intended only for use by the Driver SDK and Consumer + // SDK. Decoding is not yet supported. string current_route_segment = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Indicates the last time the route was modified. Note: This field is - // intended only for use by the Driver SDK and Consumer SDK. + // Output only. Indicates the last time the route was modified. + // + // Note: This field is intended only for use by the Driver SDK and Consumer + // SDK. google.protobuf.Timestamp current_route_segment_version = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. When available, the traffic conditions along the - // current_route_segment. Note: This field is intended only - // for use by the Driver SDK and Consumer SDK. + // Output only. Indicates the traffic conditions along the `current_route_segment` when + // they're available. + // + // Note: This field is intended only for use by the Driver SDK and Consumer + // SDK. ConsumableTrafficPolyline current_route_segment_traffic = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Indicates the last time the current_route_segment_traffic was modified. + // Output only. Indicates the last time the `current_route_segment_traffic` was modified. + // // Note: This field is intended only for use by the Driver SDK and Consumer // SDK. google.protobuf.Timestamp current_route_segment_traffic_version = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The waypoint where current_route_segment ends. This can be supplied by - // drivers on UpdateVehicle calls either as a full trip waypoint, a waypoint - // latlng, or as a the last latlng of the current_route_segment. Fleet Engine - // will then do its best to interpolate to an actual waypoint if it is not - // fully specified. It will be returned in GetTrip calls. It is not respected - // in Create/Update Trip calls. + // Output only. The waypoint where `current_route_segment` ends. TripWaypoint current_route_segment_end_point = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The remaining driving distance in Trip.current_route_segment field. - // This field facilitates journey sharing between a driver and rider and - // Fleet Engine does not update it. Your driver app is responsible for setting - // field on all of its current trips by passing - // Vehicle.remaining_distance_meters to an Vehicle.update call. - // The value is unspecified if the trip is not assigned to a vehicle, or the - // trip is inactive (completed or cancelled), or driver hasn't updated this - // value. + // Output only. The remaining driving distance in the `current_route_segment` field. The + // value is unspecified if the trip is not assigned to a vehicle, or the trip + // is completed or cancelled. google.protobuf.Int32Value remaining_distance_meters = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The ETA to the next waypoint (the first entry in the - // Trip.remaining_waypoints field). This field facilitates journey sharing - // between a driver and a consumer. Fleet Engine does not update this value. - // Your driver app is responsible for setting this field by passing - // Vehicle.remaining_time_seconds in a call to Vehicle.update. FleetEngine - // converts the Vehicle.remaining_time_seconds to Trip.eta_to_first_waypoint, - // and returns it to the rider. The value is unspecified if the trip is not - // assigned to a vehicle, or the trip is inactive (completed or cancelled), or - // driver hasn't updated this value. + // Output only. The ETA to the next waypoint (the first entry in the `remaining_waypoints` + // field). The value is unspecified if the trip is not assigned to a vehicle, + // or the trip is inactive (completed or cancelled). google.protobuf.Timestamp eta_to_first_waypoint = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The duration from when the Trip data is returned to the time in - // Trip.eta_to_first_waypoint. + // `Trip.eta_to_first_waypoint`. The value is unspecified if the trip is not + // assigned to a vehicle, or the trip is inactive (completed or cancelled). google.protobuf.Duration remaining_time_to_first_waypoint = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Indicates the last time that `remaining_waypoints` was changed (a @@ -202,9 +188,9 @@ message Trip { // Output only. Indicates the last reported location of the vehicle along the route. VehicleLocation last_location = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Indicates whether the vehicle's last_location can be snapped to - // the current_route_segment. False if last_location or current_route_segment - // doesn't exist. + // Output only. Indicates whether the vehicle's `last_location` can be snapped to + // the current_route_segment. False if `last_location` or + // `current_route_segment` doesn't exist. // It is computed by Fleet Engine. Any update from clients will be ignored. bool last_location_snappable = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/maps/fleetengine/v1/vehicle_api.proto b/google/maps/fleetengine/v1/vehicle_api.proto index b3d4dec7f..4dfbb3a41 100644 --- a/google/maps/fleetengine/v1/vehicle_api.proto +++ b/google/maps/fleetengine/v1/vehicle_api.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,8 +17,10 @@ syntax = "proto3"; package maps.fleetengine.v1; 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/maps/fleetengine/v1/fleetengine.proto"; import "google/maps/fleetengine/v1/header.proto"; import "google/maps/fleetengine/v1/vehicles.proto"; @@ -27,7 +29,6 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; import "google/type/latlng.proto"; -import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/maps/fleetengine/v1;fleetengine"; option java_multiple_files = true; @@ -72,6 +73,12 @@ service VehicleService { post: "/v1/{parent=providers/*}/vehicles" body: "vehicle" }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{provider_id=providers/*}" + } + }; } // Returns a vehicle from the Fleet Engine. @@ -79,6 +86,12 @@ service VehicleService { option (google.api.http) = { get: "/v1/{name=providers/*/vehicles/*}" }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{provider_id=providers/*}" + } + }; } // Writes updated vehicle data to the Fleet Engine. @@ -103,6 +116,12 @@ service VehicleService { put: "/v1/{name=providers/*/vehicles/*}" body: "vehicle" }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{provider_id=providers/*}" + } + }; } // Deprecated: Use the `UpdateVehicle` method instead. @@ -113,6 +132,12 @@ service VehicleService { 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. @@ -125,6 +150,12 @@ service VehicleService { post: "/v1/{name=providers/*/vehicles/*}:updateAttributes" body: "*" }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{provider_id=providers/*}" + } + }; } // Returns a paginated list of vehicles associated with @@ -133,6 +164,12 @@ service VehicleService { option (google.api.http) = { get: "/v1/{parent=providers/*}/vehicles" }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{provider_id=providers/*}" + } + }; } // Returns a list of vehicles that match the request options. @@ -141,6 +178,12 @@ service VehicleService { post: "/v1/{parent=providers/*}/vehicles:search" body: "*" }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{provider_id=providers/*}" + } + }; } // Returns a list of vehicles that match the request @@ -153,6 +196,12 @@ service VehicleService { post: "/v1/{parent=providers/*}/vehicles:searchFuzzed" body: "*" }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{provider_id=providers/*}" + } + }; } } @@ -167,15 +216,15 @@ message CreateVehicleRequest { // this call is a member. string parent = 3 [(google.api.field_behavior) = REQUIRED]; - // Required. Unique Vehicle ID; must be unique per provider. + // Required. Unique Vehicle ID. // Subject to the following restrictions: // - // 1. IDs must not contain any of the following ASCII characters: '/', ':', - // '?', or '#'. - // 2. IDs are limited to a maximum length of 64 characters. - // 3. IDs must be valid Unicode strings. - // 4. IDs must be normalized according to Unicode Normalization Form C + // * 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 vehicle_id = 4 [(google.api.field_behavior) = REQUIRED]; // Required. The Vehicle entity to create. When creating a Vehicle, the following @@ -344,6 +393,23 @@ message SearchVehiclesRequest { COST = 5; } + // Specifies the types of restrictions on a vehicle's current trips. + enum CurrentTripsPresent { + // Only vehicles without trips can appear in search results. + // A validation exception is thrown if `include_back_to_back` is true. See + // the `include_back_to_back` flag for more details. + CURRENT_TRIPS_PRESENT_UNSPECIFIED = 0; + + // Vehicles without trips can appear in search results. + // A validation exception is thrown if `include_back_to_back` is true. + NONE = 1; + + // Vehicles with at most 5 current trips and 10 waypoints are included + // in the search results. + // A validation exception is thrown if `include_back_to_back` is true. + ANY = 2; + } + // The standard Fleet Engine request header. RequestHeader header = 1; @@ -374,10 +440,12 @@ message SearchVehiclesRequest { // the capacity value. int32 minimum_capacity = 8 [(google.api.field_behavior) = REQUIRED]; - // Required. Restricts the search to only those vehicles that support at least - // one of the specified trip types. + // Required. Represents the type of proposed trip. Eligible vehicles are those + // that can support at least one of the specified trip type. // - // At the present time, only `EXCLUSIVE` is supported. + // `EXCLUSIVE` and `SHARED` may not be included together. + // `SHARED` is not supported when `current_trips_present` is + // `CURRENT_TRIPS_PRESENT_UNSPECIFIED`. repeated TripType trip_types = 9 [(google.api.field_behavior) = REQUIRED]; // Restricts the search to only those vehicles that have updated their @@ -429,10 +497,12 @@ message SearchVehiclesRequest { // ``` // (required_attributes[0] AND required_attributes[1] AND ...) // AND - // (required_one_of_attributes[0][0] AND required_one_of_attributes[0][1] AND + // (required_one_of_attribute_sets[0][0] AND + // required_one_of_attribute_sets[0][1] AND // ...) // OR - // (required_one_of_attributes[1][0] AND required_one_of_attributes[1][1] AND + // (required_one_of_attribute_sets[1][0] AND + // required_one_of_attribute_sets[1][1] AND // ...) // ``` // @@ -459,6 +529,13 @@ message SearchVehiclesRequest { // Indicates the trip associated with this `SearchVehicleRequest`. string trip_id = 19; + + // Restricts vehicles from appearing in the search results based on + // their current trips. + // + // When current_trips_present is `NONE` or `ANY`, `trip_types` can be either + // `EXCLUSIVE` or `SHARED`, but not both. + CurrentTripsPresent current_trips_present = 21; } // `SearchVehicles` response message. diff --git a/google/maps/fleetengine/v1/vehicles.proto b/google/maps/fleetengine/v1/vehicles.proto index 728c2e1ef..be9e73dd6 100644 --- a/google/maps/fleetengine/v1/vehicles.proto +++ b/google/maps/fleetengine/v1/vehicles.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -66,7 +66,7 @@ message Vehicle { // The vehicle state. VehicleState vehicle_state = 2; - // Supported trip types. + // Trip types supported by this vehicle. repeated TripType supported_trip_types = 3; // Output only. List of `trip_id`'s for trips currently assigned to this vehicle. @@ -80,7 +80,7 @@ message Vehicle { int32 maximum_capacity = 6; // List of vehicle attributes. A vehicle can have at most 50 - // attributes, and each attribute has a unique key. + // attributes, and each attribute must have a unique key. repeated VehicleAttribute attributes = 8; // The type of this vehicle. Can be used to filter vehicles in @@ -94,20 +94,19 @@ message Vehicle { repeated TerminalLocation route = 12 [deprecated = true]; // The polyline specifying the route the driver app intends to take to - // the next waypoint. Your driver app updates this every time a waypoint is - // passed or the driver reroutes. This list is also returned in + // the next waypoint. This list is also returned in // `Trip.current_route_segment` for all active trips assigned to the vehicle. - // Note: This field is intended only for use by the Driver SDK. + // + // Note: This field is intended only for use by the Driver SDK. Decoding is + // not yet supported. string current_route_segment = 20; - // Input only. Fleet Engine uses this information to improve its - // understanding of a Trip, but does not populate the field in its responses. - // Note: This field is intended only for use by the Driver SDK. + // Input only. Fleet Engine uses this information to improve Journey Sharing. TrafficPolylineData current_route_segment_traffic = 28 [(google.api.field_behavior) = INPUT_ONLY]; - // Output only. Time when `current_route_segment` was set. It should be - // stored by the client and passed in future `GetVehicle` requests to - // prevent returning routes that haven't changed. + // Output only. Time when `current_route_segment` was set. It can be stored by the client + // and passed in future `GetVehicle` requests to prevent returning routes that + // haven't changed. google.protobuf.Timestamp current_route_segment_version = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // The waypoint where `current_route_segment` ends. This can be supplied by @@ -118,40 +117,36 @@ message Vehicle { // `current_route_segment` is also specified. TripWaypoint current_route_segment_end_point = 24; - // The remaining driving distance for the `current_route_segment`. This field - // facilitates journey sharing between the Driver app and the Consumer app. - // This value is provided by the Driver SDK. This field is also returned in - // `Trip.remaining_distance_meters` for all active trips assigned to the - // vehicle. The value is unspecified if the `current_route_segment` field is - // empty, or if the Driver app has not updated its value. + // The remaining driving distance for the `current_route_segment`. + // This value is also returned in `Trip.remaining_distance_meters` for all + // active trips assigned to the vehicle. The value is unspecified if the + // `current_route_segment` field is empty. google.protobuf.Int32Value remaining_distance_meters = 18; - // The ETA to the first entry in the `waypoints` - // field. This field facilitates journey sharing between a Driver app and a - // Consumer app. Is is provided by the Driver SDK. This field is also returned - // in `Trip.eta_to_first_waypoint` for all active trips assigned to the - // vehicle. The value is unspecified if the `waypoints` field is empty, or the - // Driver app has not updated its value. + // The ETA to the first entry in the `waypoints` field. The value is + // unspecified if the `waypoints` field is empty or the + // `Vehicle.current_route_segment` field is empty. + // + // When updating a vehicle, `remaining_time_seconds` takes precedence over + // `eta_to_first_waypoint` in the same request. google.protobuf.Timestamp eta_to_first_waypoint = 19; - // Input only. The remaining driving time for the `current_route_segment`. This field - // facilitates journey sharing between the Driver app and the Consumer app. - // This value is updated by the Driver SDK. Fleet Engine does not update it. - // The value is unspecified if the `Vehicle.current_route_segment` field is - // empty, or if the Driver app has not updated its value. This value should - // match `eta_to_first_waypoint` - `current_time` if all parties are using the - // same clock. When updating a - // vehicle, if you update both `eta_to_first_waypoint` and - // `remaining_time_seconds` in the same request, `remaining_time_seconds` - // takes precedence. + // Input only. The remaining driving time for the `current_route_segment`. The value is + // unspecified if the `waypoints` field is empty or the + // `Vehicle.current_route_segment` field is empty. This value should match + // `eta_to_first_waypoint` - `current_time` if all parties are using the same + // clock. + // + // When updating a vehicle, `remaining_time_seconds` takes precedence over + // `eta_to_first_waypoint` in the same request. google.protobuf.Int32Value remaining_time_seconds = 25 [(google.api.field_behavior) = INPUT_ONLY]; // The remaining waypoints assigned to this Vehicle. repeated TripWaypoint waypoints = 22; - // Output only. Last time the `waypoints` field was updated. Clients should cache - // this value and pass it in `GetVehicleRequest` to ensure the - // `waypoints` field is only returned if it is updated. + // Output only. Last time the `waypoints` field was updated. Clients should cache this + // value and pass it in `GetVehicleRequest` to ensure the `waypoints` field is + // only returned if it is updated. google.protobuf.Timestamp waypoints_version = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; // Indicates if the driver accepts back-to-back trips. If `true`, @@ -239,10 +234,16 @@ message VisualTrafficReportPolylineRendering { int32 length_meters = 3 [(google.api.field_behavior) = REQUIRED]; } - // Optional. Road stretches that should be rendered along the polyline. Note that - // the stretches are guaranteed to not overlap, and that they do not - // necessarily span the full route. In the absence of a road stretch to style, - // the client should apply the default for the route. + // Optional. Road stretches that should be rendered along the polyline. Stretches + //

    + //
  • are + // guaranteed to not overlap, and
  • + //
  • do not necessarily + // span the full route.
  • + //
+ // + //

In the absence of a road stretch to style, the client should apply the + // default for the route. repeated RoadStretch road_stretch = 1 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/maps/mapsplatformdatasets/v1alpha/BUILD.bazel b/google/maps/mapsplatformdatasets/v1alpha/BUILD.bazel new file mode 100644 index 000000000..e53bfd058 --- /dev/null +++ b/google/maps/mapsplatformdatasets/v1alpha/BUILD.bazel @@ -0,0 +1,377 @@ +# 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 = "mapsplatformdatasets_proto", + srcs = [ + "data_source.proto", + "dataset.proto", + "maps_platform_datasets.proto", + "maps_platform_datasets_alpha_service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "mapsplatformdatasets_proto_with_info", + deps = [ + ":mapsplatformdatasets_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "mapsplatformdatasets_java_proto", + deps = [":mapsplatformdatasets_proto"], +) + +java_grpc_library( + name = "mapsplatformdatasets_java_grpc", + srcs = [":mapsplatformdatasets_proto"], + deps = [":mapsplatformdatasets_java_proto"], +) + +java_gapic_library( + name = "mapsplatformdatasets_java_gapic", + srcs = [":mapsplatformdatasets_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + service_yaml = "mapsplatformdatasets_v1alpha.yaml", + test_deps = [ + ":mapsplatformdatasets_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":mapsplatformdatasets_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "mapsplatformdatasets_java_gapic_test_suite", + test_classes = [ + "com.google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1AlphaClientHttpJsonTest", + "com.google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1AlphaClientTest", + ], + runtime_deps = [":mapsplatformdatasets_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-maps-mapsplatformdatasets-v1alpha-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":mapsplatformdatasets_java_gapic", + ":mapsplatformdatasets_java_grpc", + ":mapsplatformdatasets_java_proto", + ":mapsplatformdatasets_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "mapsplatformdatasets_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/maps/mapsplatformdatasets/v1alpha", + protos = [":mapsplatformdatasets_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", + metadata = True, + service_yaml = "mapsplatformdatasets_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":mapsplatformdatasets_go_proto", + ], +) + +go_test( + name = "mapsplatformdatasets_go_gapic_test", + srcs = [":mapsplatformdatasets_go_gapic_srcjar_test"], + embed = [":mapsplatformdatasets_go_gapic"], + importpath = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-maps-mapsplatformdatasets-v1alpha-go", + deps = [ + ":mapsplatformdatasets_go_gapic", + ":mapsplatformdatasets_go_gapic_srcjar-metadata.srcjar", + ":mapsplatformdatasets_go_gapic_srcjar-test.srcjar", + ":mapsplatformdatasets_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "mapsplatformdatasets_py_gapic", + srcs = [":mapsplatformdatasets_proto"], + grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + service_yaml = "mapsplatformdatasets_v1alpha.yaml", + transport = "grpc", + deps = [ + ], +) + +py_test( + name = "mapsplatformdatasets_py_gapic_test", + srcs = [ + "mapsplatformdatasets_py_gapic_pytest.py", + "mapsplatformdatasets_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":mapsplatformdatasets_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "maps-mapsplatformdatasets-v1alpha-py", + deps = [ + ":mapsplatformdatasets_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "mapsplatformdatasets_php_proto", + deps = [":mapsplatformdatasets_proto"], +) + +php_grpc_library( + name = "mapsplatformdatasets_php_grpc", + srcs = [":mapsplatformdatasets_proto"], + deps = [":mapsplatformdatasets_php_proto"], +) + +php_gapic_library( + name = "mapsplatformdatasets_php_gapic", + srcs = [":mapsplatformdatasets_proto_with_info"], + grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + service_yaml = "mapsplatformdatasets_v1alpha.yaml", + deps = [ + ":mapsplatformdatasets_php_grpc", + ":mapsplatformdatasets_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-maps-mapsplatformdatasets-v1alpha-php", + deps = [ + ":mapsplatformdatasets_php_gapic", + ":mapsplatformdatasets_php_grpc", + ":mapsplatformdatasets_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "mapsplatformdatasets_nodejs_gapic", + package_name = "@google-cloud/mapsplatformdatasets", + src = ":mapsplatformdatasets_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + package = "google.maps.mapsplatformdatasets.v1alpha", + service_yaml = "mapsplatformdatasets_v1alpha.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "maps-mapsplatformdatasets-v1alpha-nodejs", + deps = [ + ":mapsplatformdatasets_nodejs_gapic", + ":mapsplatformdatasets_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 = "mapsplatformdatasets_ruby_proto", + deps = [":mapsplatformdatasets_proto"], +) + +ruby_grpc_library( + name = "mapsplatformdatasets_ruby_grpc", + srcs = [":mapsplatformdatasets_proto"], + deps = [":mapsplatformdatasets_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", + service_yaml = "mapsplatformdatasets_v1alpha.yaml", + deps = [ + ":mapsplatformdatasets_ruby_grpc", + ":mapsplatformdatasets_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-maps-mapsplatformdatasets-v1alpha-ruby", + deps = [ + ":mapsplatformdatasets_ruby_gapic", + ":mapsplatformdatasets_ruby_grpc", + ":mapsplatformdatasets_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 = "mapsplatformdatasets_csharp_proto", + deps = [":mapsplatformdatasets_proto"], +) + +csharp_grpc_library( + name = "mapsplatformdatasets_csharp_grpc", + srcs = [":mapsplatformdatasets_proto"], + deps = [":mapsplatformdatasets_csharp_proto"], +) + +csharp_gapic_library( + name = "mapsplatformdatasets_csharp_gapic", + srcs = [":mapsplatformdatasets_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + service_yaml = "mapsplatformdatasets_v1alpha.yaml", + deps = [ + ":mapsplatformdatasets_csharp_grpc", + ":mapsplatformdatasets_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-maps-mapsplatformdatasets-v1alpha-csharp", + deps = [ + ":mapsplatformdatasets_csharp_gapic", + ":mapsplatformdatasets_csharp_grpc", + ":mapsplatformdatasets_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "mapsplatformdatasets_cc_proto", + deps = [":mapsplatformdatasets_proto"], +) + +cc_grpc_library( + name = "mapsplatformdatasets_cc_grpc", + srcs = [":mapsplatformdatasets_proto"], + grpc_only = True, + deps = [":mapsplatformdatasets_cc_proto"], +) diff --git a/google/maps/mapsplatformdatasets/v1alpha/data_source.proto b/google/maps/mapsplatformdatasets/v1alpha/data_source.proto new file mode 100644 index 000000000..cc80b58f3 --- /dev/null +++ b/google/maps/mapsplatformdatasets/v1alpha/data_source.proto @@ -0,0 +1,64 @@ +// 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 = "google.golang.org/genproto/googleapis/maps/mapsplatformdatasets/v1alpha;mapsplatformdatasets"; +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/google/maps/mapsplatformdatasets/v1alpha/dataset.proto b/google/maps/mapsplatformdatasets/v1alpha/dataset.proto new file mode 100644 index 000000000..64e83cb4d --- /dev/null +++ b/google/maps/mapsplatformdatasets/v1alpha/dataset.proto @@ -0,0 +1,110 @@ +// 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 = "google.golang.org/genproto/googleapis/maps/mapsplatformdatasets/v1alpha;mapsplatformdatasets"; +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/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets.proto b/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets.proto new file mode 100644 index 000000000..7f2f42035 --- /dev/null +++ b/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets.proto @@ -0,0 +1,167 @@ +// 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 = "google.golang.org/genproto/googleapis/maps/mapsplatformdatasets/v1alpha;mapsplatformdatasets"; +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/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets_alpha_service.proto b/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets_alpha_service.proto new file mode 100644 index 000000000..fe071546f --- /dev/null +++ b/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets_alpha_service.proto @@ -0,0 +1,97 @@ +// 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 = "google.golang.org/genproto/googleapis/maps/mapsplatformdatasets/v1alpha;mapsplatformdatasets"; +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/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_grpc_service_config.json b/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_grpc_service_config.json new file mode 100644 index 000000000..0c07307bf --- /dev/null +++ b/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_grpc_service_config.json @@ -0,0 +1,53 @@ +{ + "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/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_v1alpha.yaml b/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_v1alpha.yaml new file mode 100644 index 000000000..7b0a54a12 --- /dev/null +++ b/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_v1alpha.yaml @@ -0,0 +1,22 @@ +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: mapsplatformdatasets.googleapis.com API. + +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 diff --git a/google/maps/playablelocations/v3/BUILD.bazel b/google/maps/playablelocations/v3/BUILD.bazel index 7ec1bbf8b..1e463dc77 100644 --- a/google/maps/playablelocations/v3/BUILD.bazel +++ b/google/maps/playablelocations/v3/BUILD.bazel @@ -69,6 +69,7 @@ java_gapic_library( test_deps = [ ":playablelocations_java_grpc", ], + transport = "grpc+rest", deps = [ ":playablelocations_java_proto", ], @@ -77,6 +78,7 @@ java_gapic_library( java_gapic_test( name = "playablelocations_java_gapic_test_suite", test_classes = [ + "com.google.maps.playablelocations.v3.PlayableLocationsClientHttpJsonTest", "com.google.maps.playablelocations.v3.PlayableLocationsClientTest", ], runtime_deps = [":playablelocations_java_gapic_test"], @@ -85,6 +87,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-maps-playablelocations-v3-java", + transport = "grpc+rest", deps = [ ":playablelocations_java_gapic", ":playablelocations_java_grpc", @@ -123,6 +126,7 @@ go_gapic_library( grpc_service_config = "playablelocations_grpc_service_config.json", importpath = "google.golang.org/google/maps/playablelocations/v3;playablelocations", service_yaml = "playablelocations_v3.yaml", + transport = "grpc+rest", deps = [ ":playablelocations_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -219,8 +223,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -238,7 +242,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "playablelocations_ruby_gapic", - srcs = [":playablelocations_proto_with_info",], + srcs = [":playablelocations_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-playablelocations-v3"], deps = [ ":playablelocations_ruby_grpc", diff --git a/google/maps/playablelocations/v3/resources.proto b/google/maps/playablelocations/v3/resources.proto index 29f5e628e..5ca381068 100644 --- a/google/maps/playablelocations/v3/resources.proto +++ b/google/maps/playablelocations/v3/resources.proto @@ -17,8 +17,6 @@ syntax = "proto3"; package google.maps.playablelocations.v3; import "google/api/field_behavior.proto"; -import "google/protobuf/field_mask.proto"; -import "google/type/latlng.proto"; option csharp_namespace = "Google.Maps.PlayableLocations.V3"; option go_package = "google.golang.org/genproto/googleapis/maps/playablelocations/v3;playablelocations"; diff --git a/google/maps/regionlookup/v1alpha/BUILD.bazel b/google/maps/regionlookup/v1alpha/BUILD.bazel new file mode 100644 index 000000000..8b470e1df --- /dev/null +++ b/google/maps/regionlookup/v1alpha/BUILD.bazel @@ -0,0 +1,373 @@ +# 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 = "regionlookup_proto", + srcs = [ + "region_identifier.proto", + "region_lookup_service.proto", + "region_match.proto", + "region_search_values.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/type:latlng_proto", + ], +) + +proto_library_with_info( + name = "regionlookup_proto_with_info", + deps = [ + ":regionlookup_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "regionlookup_java_proto", + deps = [":regionlookup_proto"], +) + +java_grpc_library( + name = "regionlookup_java_grpc", + srcs = [":regionlookup_proto"], + deps = [":regionlookup_java_proto"], +) + +java_gapic_library( + name = "regionlookup_java_gapic", + srcs = [":regionlookup_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "regionlookup_grpc_service_config.json", + service_yaml = "regionlookup_v1alpha.yaml", + test_deps = [ + ":regionlookup_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":regionlookup_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "regionlookup_java_gapic_test_suite", + test_classes = [ + "com.google.maps.regionlookup.v1alpha.RegionLookupClientHttpJsonTest", + "com.google.maps.regionlookup.v1alpha.RegionLookupClientTest", + ], + runtime_deps = [":regionlookup_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-maps-regionlookup-v1alpha-java", + transport = "grpc+rest", + deps = [ + ":regionlookup_java_gapic", + ":regionlookup_java_grpc", + ":regionlookup_java_proto", + ":regionlookup_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "regionlookup_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/maps/regionlookup/v1alpha", + protos = [":regionlookup_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/type:latlng_go_proto", + ], +) + +go_gapic_library( + name = "regionlookup_go_gapic", + srcs = [":regionlookup_proto_with_info"], + grpc_service_config = "regionlookup_grpc_service_config.json", + importpath = "google.golang.org/google/maps/regionlookup/v1alpha;regionlookup", + metadata = True, + service_yaml = "regionlookup_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":regionlookup_go_proto", + ], +) + +go_test( + name = "regionlookup_go_gapic_test", + srcs = [":regionlookup_go_gapic_srcjar_test"], + embed = [":regionlookup_go_gapic"], + importpath = "google.golang.org/google/maps/regionlookup/v1alpha", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-maps-regionlookup-v1alpha-go", + deps = [ + ":regionlookup_go_gapic", + ":regionlookup_go_gapic_srcjar-metadata.srcjar", + ":regionlookup_go_gapic_srcjar-test.srcjar", + ":regionlookup_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "regionlookup_py_gapic", + srcs = [":regionlookup_proto"], + grpc_service_config = "regionlookup_grpc_service_config.json", + service_yaml = "regionlookup_v1alpha.yaml", + transport = "grpc", +) + +py_test( + name = "regionlookup_py_gapic_test", + srcs = [ + "regionlookup_py_gapic_pytest.py", + "regionlookup_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":regionlookup_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "maps-regionlookup-v1alpha-py", + deps = [ + ":regionlookup_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "regionlookup_php_proto", + deps = [":regionlookup_proto"], +) + +php_grpc_library( + name = "regionlookup_php_grpc", + srcs = [":regionlookup_proto"], + deps = [":regionlookup_php_proto"], +) + +php_gapic_library( + name = "regionlookup_php_gapic", + srcs = [":regionlookup_proto_with_info"], + grpc_service_config = "regionlookup_grpc_service_config.json", + service_yaml = "regionlookup_v1alpha.yaml", + deps = [ + ":regionlookup_php_grpc", + ":regionlookup_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-maps-regionlookup-v1alpha-php", + deps = [ + ":regionlookup_php_gapic", + ":regionlookup_php_grpc", + ":regionlookup_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "regionlookup_nodejs_gapic", + package_name = "@google-cloud/regionlookup", + src = ":regionlookup_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "regionlookup_grpc_service_config.json", + package = "google.maps.regionlookup.v1alpha", + service_yaml = "regionlookup_v1alpha.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "maps-regionlookup-v1alpha-nodejs", + deps = [ + ":regionlookup_nodejs_gapic", + ":regionlookup_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 = "regionlookup_ruby_proto", + deps = [":regionlookup_proto"], +) + +ruby_grpc_library( + name = "regionlookup_ruby_grpc", + srcs = [":regionlookup_proto"], + deps = [":regionlookup_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "regionlookup_ruby_gapic", + srcs = [":regionlookup_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-maps-regionlookup-v1alpha", + ], + grpc_service_config = "regionlookup_grpc_service_config.json", + deps = [ + ":regionlookup_ruby_grpc", + ":regionlookup_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-maps-regionlookup-v1alpha-ruby", + deps = [ + ":regionlookup_ruby_gapic", + ":regionlookup_ruby_grpc", + ":regionlookup_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 = "regionlookup_csharp_proto", + deps = [":regionlookup_proto"], +) + +csharp_grpc_library( + name = "regionlookup_csharp_grpc", + srcs = [":regionlookup_proto"], + deps = [":regionlookup_csharp_proto"], +) + +csharp_gapic_library( + name = "regionlookup_csharp_gapic", + srcs = [":regionlookup_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "regionlookup_grpc_service_config.json", + service_yaml = "regionlookup_v1alpha.yaml", + deps = [ + ":regionlookup_csharp_grpc", + ":regionlookup_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-maps-regionlookup-v1alpha-csharp", + deps = [ + ":regionlookup_csharp_gapic", + ":regionlookup_csharp_grpc", + ":regionlookup_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "regionlookup_cc_proto", + deps = [":regionlookup_proto"], +) + +cc_grpc_library( + name = "regionlookup_cc_grpc", + srcs = [":regionlookup_proto"], + grpc_only = True, + deps = [":regionlookup_cc_proto"], +) diff --git a/google/maps/regionlookup/v1alpha/region_identifier.proto b/google/maps/regionlookup/v1alpha/region_identifier.proto new file mode 100644 index 000000000..f5e6fea14 --- /dev/null +++ b/google/maps/regionlookup/v1alpha/region_identifier.proto @@ -0,0 +1,161 @@ +// 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.regionlookup.v1alpha; + +import "google/api/field_behavior.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.RegionLookup.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/maps/regionlookup/v1alpha;regionlookup"; +option java_multiple_files = true; +option java_outer_classname = "RegionIdentifierProto"; +option java_package = "com.google.maps.regionlookup.v1alpha"; +option objc_class_prefix = "MRLV1A"; +option php_namespace = "Google\\Maps\\RegionLookup\\V1alpha"; + +// Region Identifier. +// +// Identifies a region to look up. +// +// One of place or unit_code must be specified. If none is specified, +// an INVALID_ARGUMENT error is returned. region_code must also be specified +// except when place_type is "country". +// +// place and unit_code specify a location to match a Place ID to. For +// example if place is "California" and region_code "US" the API +// returns the following matched_place_id results when the following +// place_types are specified: +// +// place_type: matched_place_id results: +// administrative_area_level_1 Place ID for The State of California +// (All other supported types) No Match +// +// If unit_code is "6" (FIPs code for California) and region_code is "US +// the API returns the following matched_place_id results when the +// following place_types are specified: +// +// place type: matched_place_id results: +// administrative_area_level_1 Place ID for The State of California +// (All other supported types) No Match +// +// or if unit_code is "US" the API returns the following results when +// the following place_types are specified: +// +// place type: matched_place_id results: +// country Place ID for the United States +// (All other supported types) No Match +// +// If no match is found, matched_place_id is not set. +// +// Candidate Place IDs are returned when a lookup finds a region with a +// different place_type then the one requested. For example if place is +// "California" and place_type is "country" the Place ID for The State of +// California is returned as a candidate in the candidate_place_ids field. +// +// Next available tag: 10 +message RegionIdentifier { + // Possible place types to match to. + enum PlaceType { + // Default value. This value is unused. + PLACE_TYPE_UNSPECIFIED = 0; + + // Postal code. + POSTAL_CODE = 1; + + // Administrative area level 1 (State in the US). + ADMINISTRATIVE_AREA_LEVEL_1 = 2; + + // Administrative area level 2 (County in the US). + ADMINISTRATIVE_AREA_LEVEL_2 = 3; + + // Locality (City). + LOCALITY = 4; + + // Neighborhood. + NEIGHBORHOOD = 5; + + // Country. + COUNTRY = 6; + + // Sublocality. + SUBLOCALITY = 7; + + // Administrative area level 3. + ADMINISTRATIVE_AREA_LEVEL_3 = 8; + + // Administrative area level 4. + ADMINISTRATIVE_AREA_LEVEL_4 = 9; + + // School district. + SCHOOL_DISTRICT = 10; + } + + // The location must be specified by one of the following: + oneof location { + // The name of the region to match to a Place ID. + // + // The place field is used in combination with place_type to look up + // the region Place ID. + // + // For example: + // If place_type is "locality", a valid place can be "Palo Alto, CA". + // + // If place_type is "postal_code", a valid place can be "94109". + // + // If place_type is "country", a valid place can be "United States". + // etc. + // + // region_code is required when place is specified except when + // place_type is "country". + string place = 4; + + // The FIPs state or county codes (US only) or ISO-3166-1 country code to be + // matched. + // + // The unit_code field is used in combination with place_type to look up + // the region Place ID. + // + // For example: + // If place_type is "country", a valid unit_code can be "US" (ISO-3166-1 + // Alpha-2 code for United States) or "BR" (ISO-3166-1 Alpha-2 code for + // Brazil). + // + // If place_type is "administrative_area_level_1" (state) and region_code is + // "US", a valid unit_code can be "6" (FIPs code for California) or + // "12"(FIPs code for Florida). + // + // If place_type is "administrative_area_level_2" (county) and region_code + // is "US", a valid unit_code can be "6001" (FIPs code for Alameda County in + // California) or "12086" (FIPs code for Miami-Dade County in Florida). + // + // region_code is required when specifying a FIPs code. region_code is + // ignored for ISO-3166-1 country codes. + string unit_code = 5; + } + + // Required. Place type to match. + PlaceType place_type = 6 [(google.api.field_behavior) = REQUIRED]; + + // The BCP-47 language code, such as "en-US" or "sr-Latn", corresponding to + // the language in which the place name and address is requested. If none is + // requested, then it defaults to English. + string language_code = 7; + + // Two-letter ISO-3166 country/region code for the location you're trying to + // match. region_code is optional if place_type is "country". + string region_code = 8; +} diff --git a/google/maps/regionlookup/v1alpha/region_lookup_service.proto b/google/maps/regionlookup/v1alpha/region_lookup_service.proto new file mode 100644 index 000000000..c87200d50 --- /dev/null +++ b/google/maps/regionlookup/v1alpha/region_lookup_service.proto @@ -0,0 +1,149 @@ +// 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.regionlookup.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/maps/regionlookup/v1alpha/region_identifier.proto"; +import "google/maps/regionlookup/v1alpha/region_match.proto"; +import "google/maps/regionlookup/v1alpha/region_search_values.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.RegionLookup.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/maps/regionlookup/v1alpha;regionlookup"; +option java_multiple_files = true; +option java_outer_classname = "RegionLookupServiceProto"; +option java_package = "com.google.maps.regionlookup.v1alpha"; +option objc_class_prefix = "MRLV1A"; +option php_namespace = "Google\\Maps\\RegionLookup\\V1alpha"; + +// Service definition for the Region Lookup API. +service RegionLookup { + option (google.api.default_host) = "regionlookup.googleapis.com"; + + // Lookup region RPC. + // + // Looks up a set of region Place IDs of types related to geographic + // boundaries. + // + // The API looks up a region Place ID using the `RegionIdentifier` proto. See + // `RegionIdentifier` for more details and examples. + // + // The following region place types are supported for look up: postal_code, + // administrative_area_level_1, administrative_area_level_2, locality, + // neighborhood, and country. + rpc LookupRegion(LookupRegionRequest) returns (LookupRegionResponse) { + option (google.api.http) = { + post: "/v1alpha:lookupRegion" + body: "*" + }; + } + + // Search region RPC. + // + // Searches for a set of region Place IDs of types related to geographic + // boundaries. + // + // Similar to `LookupRegion` RPC but instead of looking up Place IDs for the + // given `RegionIdentifier`, the API searches for Region Place IDs by + // considering all regions that are contained within a specified location. The + // `RegionSearchValue` is used to specify the search values. See + // `RegionSearchValue` for more details and examples. + // + // The following region place types are supported for searching: postal_code, + // administrative_area_level_1, administrative_area_level_2, locality, + // neighborhood, and country. + rpc SearchRegion(SearchRegionRequest) returns (SearchRegionResponse) { + option (google.api.http) = { + post: "/v1alpha:searchRegion" + body: "*" + }; + } +} + +// Lookup Region Request. +// +// Next available tag: 4 +message LookupRegionRequest { + // Each `RegionIdentifier` represents the desired fields used to lookup a + // single region. See `RegionIdentifier` proto for more details and examples. + repeated RegionIdentifier identifiers = 1; + + // The maximum number of matches to return. The service may return fewer than + // this value. + // + // If unspecified, at most 50 matches 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 `LookupRegion` call. Provide this to + // retrieve the subsequent page. + // + // When paginating, all other parameters provided to `LookupRegion` must match + // the call that provided the page token. + string page_token = 3; +} + +// Lookup Region Response. +// +// Next available tag: 3 +message LookupRegionResponse { + // Lookup region matches, one for each `RegionIdentifier` in + // `LookupRegionRequest.identifiers`. + repeated RegionMatch matches = 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; +} + +// Search Region Request. +// +// Next available tag: 4 +message SearchRegionRequest { + // Each value represents desired search values of a single region to match. + // The API tries to match them to Place IDs. See `RegionSearchValue` + // proto for more info and examples. + repeated RegionSearchValue search_values = 1; + + // The maximum number of matches to return. The service may return fewer than + // this value. + // + // If unspecified, at most 50 matches 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 `SearchRegion` call. Provide this to + // retrieve the subsequent page. + // + // When paginating, all other parameters provided to `LookupRegion` must match + // the call that provided the page token. + string page_token = 3; +} + +// Match Region Response. +// +// Next available tag: 3 +message SearchRegionResponse { + // Search region matches, one for each `RegionSearchValue` in + // `SearchRegionRequest.search_values`. + repeated RegionMatch matches = 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; +} diff --git a/google/maps/regionlookup/v1alpha/region_match.proto b/google/maps/regionlookup/v1alpha/region_match.proto new file mode 100644 index 000000000..e0037bb3b --- /dev/null +++ b/google/maps/regionlookup/v1alpha/region_match.proto @@ -0,0 +1,41 @@ +// 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.regionlookup.v1alpha; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.RegionLookup.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/maps/regionlookup/v1alpha;regionlookup"; +option java_multiple_files = true; +option java_outer_classname = "RegionMatchProto"; +option java_package = "com.google.maps.regionlookup.v1alpha"; +option objc_class_prefix = "MRLV1A"; +option php_namespace = "Google\\Maps\\RegionLookup\\V1alpha"; + +// Region Match. +// +// Next available tag: 5 +message RegionMatch { + // Place ID of the region that is matched. If region is found, this field is + // not set. + string matched_place_id = 1; + + // Region candidate IDs. Up to three candidates may be returned. + repeated string candidate_place_ids = 2; + + // Matching debug information for when no match is found. + string debug_info = 3; +} diff --git a/google/maps/regionlookup/v1alpha/region_search_values.proto b/google/maps/regionlookup/v1alpha/region_search_values.proto new file mode 100644 index 000000000..956dd2f37 --- /dev/null +++ b/google/maps/regionlookup/v1alpha/region_search_values.proto @@ -0,0 +1,131 @@ +// 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.regionlookup.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/type/latlng.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.RegionLookup.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/maps/regionlookup/v1alpha;regionlookup"; +option java_multiple_files = true; +option java_outer_classname = "RegionSearchValuesProto"; +option java_package = "com.google.maps.regionlookup.v1alpha"; +option objc_class_prefix = "MRLV1A"; +option php_namespace = "Google\\Maps\\RegionLookup\\V1alpha"; + +// Region Search Values. +// +// Desired search values of a single region. +// +// Location must be specified by one of the following: address, latlng or +// place_id. If none is specified, an INVALID_ARGUMENT error is returned. +// region_code must also be provided when address is specified. +// +// The fields address, latlng and place_id specify a location contained inside +// the region to match. For example if address is "1600 Amphitheatre Pkwy, +// Mountain View, CA 94043" the API returns the following matched_place_id +// results when the following place_types are specified: +// +// place_type: matched_place_id results: +// postal_code Place ID for "94043" +// administrative_area_level_1 Place ID for The State of California +// administrative_area_level_2 Place ID for Santa Clara County +// etc. +// +// More Examples: +// +// If latlng is "latitude: 37.4220656 longitude: -122.0862784" and place_type +// is "locality", the result contains the Place ID (of type "locality") for +// that location (the Place ID of Mountain View, CA, in this case). +// +// If place_id is "ChIJj61dQgK6j4AR4GeTYWZsKWw" (Place ID for Google office in +// Mountain view, CA) and place_type is "locality", the result contains the +// Place ID (of type "locality") for that location (the Place ID of Mountain +// View, CA, in this case). +// +// If no match is found, matched_place_id is not set. +// +// Candidates Place IDs are returned when a search finds multiple Place +// IDs for the location specified. For example if the API is searching for +// region Place IDs of type neighboorhood for a location that is contained +// within multiple neighboords. The Place Ids will be returned as candidates in +// the candidate_place_ids field. +// +// Next available tag: 10 +message RegionSearchValue { + // Possible place types to match to. + enum PlaceType { + // Default value. This value is unused. + PLACE_TYPE_UNSPECIFIED = 0; + + // Postal code. + POSTAL_CODE = 1; + + // Administrative area level 1 (State in the US). + ADMINISTRATIVE_AREA_LEVEL_1 = 2; + + // Administrative area level 2 (County in the US). + ADMINISTRATIVE_AREA_LEVEL_2 = 3; + + // Locality (City). + LOCALITY = 4; + + // Neighborhood. + NEIGHBORHOOD = 5; + + // Country. + COUNTRY = 6; + + // Sublocality. + SUBLOCALITY = 7; + + // Administrative area level 3. + ADMINISTRATIVE_AREA_LEVEL_3 = 8; + + // Administrative area level 4. + ADMINISTRATIVE_AREA_LEVEL_4 = 9; + + // School district. + SCHOOL_DISTRICT = 10; + } + + // The location must be specified by one of the following: + oneof location { + // The unstructured street address that is contained inside a region to + // match. region_code is required when address is specified. + string address = 1; + + // The latitude and longitude that is contained inside a region to match. + google.type.LatLng latlng = 2; + + // The Place ID that is contained inside a region to match. + string place_id = 3; + } + + // Required. The type of the place to match. + PlaceType place_type = 6 [(google.api.field_behavior) = REQUIRED]; + + // The BCP-47 language code, such as "en-US" or "sr-Latn", corresponding to + // the language in which the place name and address is requested. If none is + // requested, then it defaults to English. + string language_code = 7; + + // Two-letter ISO-3166 country/region code for the location you're trying to + // match. region_code is required when address is specified. + string region_code = 8; +} diff --git a/google/maps/regionlookup/v1alpha/regionlookup_grpc_service_config.json b/google/maps/regionlookup/v1alpha/regionlookup_grpc_service_config.json new file mode 100644 index 000000000..289492929 --- /dev/null +++ b/google/maps/regionlookup/v1alpha/regionlookup_grpc_service_config.json @@ -0,0 +1,24 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.maps.regionlookup.v1alpha.RegionLookup", + "method": "LookupRegion" + }, + { + "service": "google.maps.regionlookup.v1alpha.RegionLookup", + "method": "SearchRegion" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + } + ] +} diff --git a/google/maps/regionlookup/v1alpha/regionlookup_v1alpha.yaml b/google/maps/regionlookup/v1alpha/regionlookup_v1alpha.yaml new file mode 100644 index 000000000..878e4a023 --- /dev/null +++ b/google/maps/regionlookup/v1alpha/regionlookup_v1alpha.yaml @@ -0,0 +1,10 @@ +type: google.api.Service +config_version: 3 +name: regionlookup.googleapis.com +title: Region Lookup API + +apis: +- name: google.maps.regionlookup.v1alpha.RegionLookup + +documentation: + summary: regionlookup.googleapis.com API. diff --git a/google/maps/roads/v1op/BUILD.bazel b/google/maps/roads/v1op/BUILD.bazel index 9877db94a..2fc9e3339 100644 --- a/google/maps/roads/v1op/BUILD.bazel +++ b/google/maps/roads/v1op/BUILD.bazel @@ -62,6 +62,7 @@ java_gapic_library( test_deps = [ ":roads_java_grpc", ], + transport = "grpc+rest", deps = [ ":roads_java_proto", ], @@ -69,13 +70,17 @@ java_gapic_library( java_gapic_test( name = "roads_java_gapic_test_suite", - test_classes = ["com.google.maps.roads.v1op.RoadsServiceClientTest"], + test_classes = [ + "com.google.maps.roads.v1op.RoadsServiceClientHttpJsonTest", + "com.google.maps.roads.v1op.RoadsServiceClientTest", + ], runtime_deps = ["roads_java_gapic_test"], ) # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-maps-roads-v1op-java", + transport = "grpc+rest", deps = [ ":roads_java_gapic", ":roads_java_grpc", @@ -118,6 +123,7 @@ go_gapic_library( grpc_service_config = "roads_grpc_service_config.json", importpath = "developers.google.com/maps/go/roads/v1op;roads", service_yaml = "roads_v1op.yaml", + transport = "grpc+rest", deps = [ ":roads_go_proto", ], @@ -147,12 +153,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "roads_py_gapic", srcs = [":roads_proto"], grpc_service_config = "roads_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "roads_py_gapic_test", + srcs = [ + "roads_py_gapic_pytest.py", + "roads_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":roads_py_gapic"], ) # Open Source Packages @@ -243,8 +261,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -262,7 +280,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "roads_ruby_gapic", - srcs = [":roads_proto_with_info",], + srcs = [":roads_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-roads-v1op"], deps = [ ":roads_ruby_grpc", diff --git a/google/maps/roads/v1op/roads.proto b/google/maps/roads/v1op/roads.proto index e1a93718c..d11e4d0e4 100644 --- a/google/maps/roads/v1op/roads.proto +++ b/google/maps/roads/v1op/roads.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.maps.roads.v1op; -import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/protobuf/wrappers.proto"; import "google/type/latlng.proto"; diff --git a/google/maps/routes/v1/BUILD.bazel b/google/maps/routes/v1/BUILD.bazel index b793dc675..a46ceb2a2 100644 --- a/google/maps/routes/v1/BUILD.bazel +++ b/google/maps/routes/v1/BUILD.bazel @@ -74,6 +74,7 @@ java_grpc_library( java_gapic_assembly_gradle_pkg( name = "google-maps-routes-v1-java", + transport = "grpc+rest", deps = [ "//google/maps/routes/v1:routes_java_grpc", "//google/maps/routes/v1:routes_java_proto", @@ -110,12 +111,27 @@ go_proto_library( load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_library", + "py_test", ) py_gapic_library( name = "routes_py_gapic", srcs = [":routes_proto"], grpc_service_config = "routes_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/geo/type:viewport_py_proto", + ], +) + +py_test( + name = "routes_py_gapic_test", + srcs = [ + "routes_py_gapic_pytest.py", + "routes_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":routes_py_gapic"], ) ############################################################################## diff --git a/google/maps/routes/v1/compute_custom_routes_request.proto b/google/maps/routes/v1/compute_custom_routes_request.proto index 45db4c91f..ee8cb0da4 100644 --- a/google/maps/routes/v1/compute_custom_routes_request.proto +++ b/google/maps/routes/v1/compute_custom_routes_request.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -108,9 +108,34 @@ message RouteObjective { bool include_tolls = 4 [(google.api.field_behavior) = OPTIONAL]; } + // Customized data layer that customers use to generated route annotations or + // influence the generated route. + message CustomLayer { + // Information about a dataset that customers uploaded in advance. The + // dataset information will be used for generating route annotations or to + // influence routing. + message DatasetInfo { + // Required. ID of a customer uploaded dataset for which will be used to annotate or + // influence the route. If the dataset does not exist or is not yet ready, + // the request will fail. + string dataset_id = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. A dataset that the customer uploaded in advance. + DatasetInfo dataset_info = 1 [(google.api.field_behavior) = REQUIRED]; + } + // The route objective. oneof objective { // The RateCard objective. RateCard rate_card = 1; } + + // Optional. Specifies the custom data layer being used to affect generated routes. + // Customers can turn off the custom layer by not setting this field. Once a + // custom layer is being set, the custom layer will be used to generate route + // annotations (CustomLayerInfo) in the returned routes, the annotations can + // be turned off using `X-Goog-FieldMask` header (see + // https://cloud.google.com/apis/docs/system-parameters). + CustomLayer custom_layer = 2 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/maps/routes/v1/compute_custom_routes_response.proto b/google/maps/routes/v1/compute_custom_routes_response.proto index b65a6fd8d..10fcb6707 100644 --- a/google/maps/routes/v1/compute_custom_routes_response.proto +++ b/google/maps/routes/v1/compute_custom_routes_response.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/routes/v1/compute_route_matrix_request.proto b/google/maps/routes/v1/compute_route_matrix_request.proto index b0dc48d1f..82c95aacc 100644 --- a/google/maps/routes/v1/compute_route_matrix_request.proto +++ b/google/maps/routes/v1/compute_route_matrix_request.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/routes/v1/compute_routes_request.proto b/google/maps/routes/v1/compute_routes_request.proto index 689c3f20b..2d72da78b 100644 --- a/google/maps/routes/v1/compute_routes_request.proto +++ b/google/maps/routes/v1/compute_routes_request.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -88,6 +88,16 @@ message ComputeRoutesRequest { // affected by this value. If you don't provide this value, then the display // units are inferred from the location of the request. Units units = 11; + + // If optimizeWaypointOrder is set to true, an attempt is made to re-order the + // specified intermediate waypoints to minimize the overall cost of the route. + // If any of the intermediate waypoints is via waypoint the request fails. Use + // ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index to find + // the new ordering. If routes.optimized_intermediate_waypoint_index is not + // requested in the `X-Goog-FieldMask` header, the request fails. If + // optimizeWaypointOrder is set to false, + // ComputeRoutesResponse.optimized_intermediate_waypoint_index is empty. + bool optimize_waypoint_order = 13; } // Encapsulates a set of optional conditions to satisfy when calculating the diff --git a/google/maps/routes/v1/compute_routes_response.proto b/google/maps/routes/v1/compute_routes_response.proto index 7c500bcfd..d7ed34264 100644 --- a/google/maps/routes/v1/compute_routes_response.proto +++ b/google/maps/routes/v1/compute_routes_response.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/routes/v1/custom_route.proto b/google/maps/routes/v1/custom_route.proto index df1893b48..9b80f7f9e 100644 --- a/google/maps/routes/v1/custom_route.proto +++ b/google/maps/routes/v1/custom_route.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/routes/v1/fallback_info.proto b/google/maps/routes/v1/fallback_info.proto index 55d0d6ae2..ef88f91d4 100644 --- a/google/maps/routes/v1/fallback_info.proto +++ b/google/maps/routes/v1/fallback_info.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/routes/v1/polyline.proto b/google/maps/routes/v1/polyline.proto index 220b8a60b..d85851625 100644 --- a/google/maps/routes/v1/polyline.proto +++ b/google/maps/routes/v1/polyline.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/routes/v1/route.proto b/google/maps/routes/v1/route.proto index e5efad13c..9da103388 100644 --- a/google/maps/routes/v1/route.proto +++ b/google/maps/routes/v1/route.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -47,8 +47,8 @@ message Route { int32 distance_meters = 2; // The length of time needed to navigate the route. If you set the - // `route_preference` to `TRAFFIC_UNAWARE`, then this value is the same as - // `static_duration`. If you set the `route_preference` to either + // `routing_preference` to `TRAFFIC_UNAWARE`, then this value is the same as + // `static_duration`. If you set the `routing_preference` to either // `TRAFFIC_AWARE` or `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated // taking traffic conditions into account. google.protobuf.Duration duration = 3; @@ -72,6 +72,16 @@ message Route { // Additional information about the route. RouteTravelAdvisory travel_advisory = 9; + + // If ComputeRoutesRequest.optimize_waypoint_order is set to true, this field + // contains the optimized ordering of intermediates waypoints. + // otherwise, this field is empty. + // For example, suppose the input is Origin: LA; Intermediates: Dallas, + // Bangor, Phoenix; Destination: New York; and the optimized intermediate + // waypoint order is: Phoenix, Dallas, Bangor. Then this field contains the + // values [2, 0, 1]. The index starts with 0 for the first intermediate + // waypoint. + repeated int32 optimized_intermediate_waypoint_index = 10; } // Encapsulates the additional information that the user should be informed @@ -100,6 +110,10 @@ message RouteTravelAdvisory { // polyline: A ---- B ---- C ---- D ---- E ---- F ---- G // speed_reading_intervals: [A,C), [C,D), [D,G). repeated SpeedReadingInterval speed_reading_intervals = 3; + + // Information related to the custom layer data that the customer specified + // (e.g. time spent in a customer specified area). + CustomLayerInfo custom_layer_info = 4; } // Encapsulates the additional information that the user should be informed @@ -123,6 +137,10 @@ message RouteLegTravelAdvisory { // polyline: A ---- B ---- C ---- D ---- E ---- F ---- G // speed_reading_intervals: [A,C), [C,D), [D,G). repeated SpeedReadingInterval speed_reading_intervals = 2; + + // Information related to the custom layer data that the customer specified + // (e.g. time spent in a customer specified area). + CustomLayerInfo custom_layer_info = 3; } // Encapsulates the additional information that the user should be informed @@ -146,7 +164,8 @@ message RouteLegStepTravelAdvisory { message TrafficRestriction { // The restriction based on the vehicle's license plate last character. If // this field does not exist, then no restriction on route. - LicensePlateLastCharacterRestriction license_plate_last_character_restriction = 1; + LicensePlateLastCharacterRestriction + license_plate_last_character_restriction = 1; } // Encapsulates the license plate last character restriction. @@ -337,3 +356,31 @@ message SpeedReadingInterval { // Traffic speed in this interval. Speed speed = 3; } + +// Encapsulates statistics about the time spent and distance travelled in a +// custom area. +message CustomLayerInfo { + // Encapsulates areas related information on a `Route` or on a `RouteLeg`. + message AreaInfo { + // ID of an area inside a customer provided dataset. An area represents a + // collection of polygons on the map that are of concern to the customer. + // For example, the customer may be interested in knowing whether a + // returned route is traveling through multiple busy city blocks during + // a predefined period of time. An area ID is unique within a single + // dataset uploaded by a customer. That is, a (customer_id, dataset_id, + // area_id) triplet should uniquely identify a set of polygons on the map + // that "activates" following a common schedule. + string area_id = 1; + + // Total distance traveled in the area (in meters). + float distance_in_area_meters = 2; + + // Total time spent in the area. + google.protobuf.Duration duration_in_area = 3; + } + + // Encapsulates information about areas in the custom layer on the Route. + // This field is only populated if a route travels through areas in the + // custom layer. + repeated AreaInfo area_info = 1; +} diff --git a/google/maps/routes/v1/route_matrix_element.proto b/google/maps/routes/v1/route_matrix_element.proto index 351491bd6..db77f4af5 100644 --- a/google/maps/routes/v1/route_matrix_element.proto +++ b/google/maps/routes/v1/route_matrix_element.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -49,8 +49,8 @@ message RouteMatrixElement { int32 distance_meters = 4; // The length of time needed to navigate the route. If you set the - // `route_preference` to `TRAFFIC_UNAWARE`, then this value is the same as - // `static_duration`. If you set the `route_preference` to either + // `routing_preference` to `TRAFFIC_UNAWARE`, then this value is the same as + // `static_duration`. If you set the `routing_preference` to either // `TRAFFIC_AWARE` or `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated // taking traffic conditions into account. google.protobuf.Duration duration = 5; diff --git a/google/maps/routes/v1/route_service.proto b/google/maps/routes/v1/route_service.proto index 81d838f70..5aa3f0cea 100644 --- a/google/maps/routes/v1/route_service.proto +++ b/google/maps/routes/v1/route_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,13 +17,13 @@ syntax = "proto3"; package google.maps.routes.v1; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/maps/routes/v1/compute_custom_routes_request.proto"; import "google/maps/routes/v1/compute_custom_routes_response.proto"; import "google/maps/routes/v1/compute_route_matrix_request.proto"; import "google/maps/routes/v1/compute_routes_request.proto"; import "google/maps/routes/v1/compute_routes_response.proto"; import "google/maps/routes/v1/route_matrix_element.proto"; -import "google/api/client.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; diff --git a/google/maps/routes/v1/toll_passes.proto b/google/maps/routes/v1/toll_passes.proto index 8fd6c3fcb..64b39ed0a 100644 --- a/google/maps/routes/v1/toll_passes.proto +++ b/google/maps/routes/v1/toll_passes.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -30,6 +30,14 @@ enum TollPass { // Not used. If this value is used, then the request fails. TOLL_PASS_UNSPECIFIED = 0; + // One of many Sydney toll pass providers. + // https://www.myetoll.com.au + AU_ETOLL_TAG = 82; + + // One of many Sydney toll pass providers. + // https://www.tollpay.com.au/ + AU_EWAY_TAG = 83; + // Australia-wide toll pass. // See additional details at https://www.linkt.com.au/. AU_LINKT = 2; @@ -37,12 +45,18 @@ enum TollPass { // Argentina toll pass. See additional details at https://telepase.com.ar AR_TELEPASE = 3; + // Brazil toll pass. See additional details at https://www.autoexpreso.com + BR_AUTO_EXPRESO = 81; + // Brazil toll pass. See additional details at https://conectcar.com. BR_CONECTCAR = 7; // Brazil toll pass. See additional details at https://movemais.com. BR_MOVE_MAIS = 8; + // Brazil toll pass. See additional details at https://pasorapido.gob.do/ + BR_PASSA_RAPIDO = 88; + // Brazil toll pass. See additional details at https://www.semparar.com.br. BR_SEM_PARAR = 9; @@ -53,6 +67,21 @@ enum TollPass { // https://veloe.com.br/site/onde-usar. BR_VELOE = 11; + // Canada to United States border crossing. + CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD = 84; + + // Canada to United States border crossing. + CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD = 85; + + // Ontario, Canada to Michigan, United States border crossing. + CA_US_BLUE_WATER_EDGE_PASS = 18; + + // Ontario, Canada to Michigan, United States border crossing. + CA_US_CONNEXION = 19; + + // Canada to United States border crossing. + CA_US_NEXUS_CARD = 20; + // Indonesia. // E-card provided by multiple banks used to pay for tolls. All e-cards // via banks are charged the same so only one enum value is needed. E.g. @@ -61,6 +90,12 @@ enum TollPass { // BNI https://www.bni.co.id/id-id/ebanking/tapcash ID_E_TOLL = 16; + // India. + IN_FASTAG = 78; + + // India, HP state plate exemption. + IN_LOCAL_HP_PLATE_EXEMPT = 79; + // Mexico toll pass. MX_TAG_IAVE = 12; @@ -72,23 +107,197 @@ enum TollPass { // https://www.viapass.com.mx/viapass/web_home.aspx. MX_VIAPASS = 14; - // State pass of California, United States. Passes vary between Standard, - // Flex, and Clean Air. Flex and Clean Air have settings for carpool. See - // additional details at https://www.bayareafastrak.org/en/home/index.shtml. + // AL, USA. + US_AL_FREEDOM_PASS = 21; + + // AK, USA. + US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS = 22; + + // CA, USA. US_CA_FASTRAK = 4; - // State pass of Illinois, United States. See additional details at - // https://www.illinoistollway.com/about-ipass. - US_IL_IPASS = 5; + // Indicates driver has any FasTrak pass in addition to the DMV issued Clean + // Air Vehicle (CAV) sticker. + // https://www.bayareafastrak.org/en/guide/doINeedFlex.shtml + US_CA_FASTRAK_CAV_STICKER = 86; + + // CO, USA. + US_CO_EXPRESSTOLL = 23; + + // CO, USA. + US_CO_GO_PASS = 24; + + // DE, USA. + US_DE_EZPASSDE = 25; + + // FL, USA. + US_FL_BOB_SIKES_TOLL_BRIDGE_PASS = 65; + + // FL, USA. + US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD = 66; - // State pass of Massachusetts, United States. See additional details at - // https://www.mass.gov/ezdrivema. + // FL, USA. + US_FL_EPASS = 67; + + // FL, USA. + US_FL_GIBA_TOLL_PASS = 68; + + // FL, USA. + US_FL_LEEWAY = 69; + + // FL, USA. + US_FL_SUNPASS = 70; + + // FL, USA. + US_FL_SUNPASS_PRO = 71; + + // IL, USA. + US_IL_EZPASSIL = 73; + + // IL, USA. + US_IL_IPASS = 72; + + // IN, USA. + US_IN_EZPASSIN = 26; + + // KS, USA. + US_KS_BESTPASS_HORIZON = 27; + + // KS, USA. + US_KS_KTAG = 28; + + // KS, USA. + US_KS_NATIONALPASS = 29; + + // KS, USA. + US_KS_PREPASS_ELITEPASS = 30; + + // KY, USA. + US_KY_RIVERLINK = 31; + + // LA, USA. + US_LA_GEAUXPASS = 32; + + // LA, USA. + US_LA_TOLL_TAG = 33; + + // MA, USA. US_MA_EZPASSMA = 6; - // State pass of New York, United States. See additional details at - // https://www.e-zpassny.com. - US_NY_EZPASSNY = 15; + // MD, USA. + US_MD_EZPASSMD = 34; + + // ME, USA. + US_ME_EZPASSME = 35; + + // MI, USA. + US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD = 36; - // State pass of the Washington state, United States. + // MI, USA. + US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG = 37; + + // MI, USA. + US_MI_IQ_PROX_CARD = 38; + + // MI, USA. + US_MI_MACKINAC_BRIDGE_MAC_PASS = 39; + + // MI, USA. + US_MI_NEXPRESS_TOLL = 40; + + // MN, USA. + US_MN_EZPASSMN = 41; + + // NC, USA. + US_NC_EZPASSNC = 42; + + // NC, USA. + US_NC_PEACH_PASS = 87; + + // NC, USA. + US_NC_QUICK_PASS = 43; + + // NH, USA. + US_NH_EZPASSNH = 80; + + // NJ, USA. + US_NJ_DOWNBEACH_EXPRESS_PASS = 75; + + // NJ, USA. + US_NJ_EZPASSNJ = 74; + + // NY, USA. + US_NY_EXPRESSPASS = 76; + + // NY, USA. + US_NY_EZPASSNY = 77; + + // OH, USA. + US_OH_EZPASSOH = 44; + + // PA, USA. + US_PA_EZPASSPA = 45; + + // RI, USA. + US_RI_EZPASSRI = 46; + + // SC, USA. + US_SC_PALPASS = 47; + + // TX, USA. + US_TX_BANCPASS = 48; + + // TX, USA. + US_TX_DEL_RIO_PASS = 49; + + // TX, USA. + US_TX_EFAST_PASS = 50; + + // TX, USA. + US_TX_EAGLE_PASS_EXPRESS_CARD = 51; + + // TX, USA. + US_TX_EPTOLL = 52; + + // TX, USA. + US_TX_EZ_CROSS = 53; + + // TX, USA. + US_TX_EZTAG = 54; + + // TX, USA. + US_TX_LAREDO_TRADE_TAG = 55; + + // TX, USA. + US_TX_PLUSPASS = 56; + + // TX, USA. + US_TX_TOLLTAG = 57; + + // TX, USA. + US_TX_TXTAG = 58; + + // TX, USA. + US_TX_XPRESS_CARD = 59; + + // UT, USA. + US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD = 60; + + // VA, USA. + US_VA_EZPASSVA = 61; + + // WA, USA. + US_WA_BREEZEBY = 17; + + // WA, USA. US_WA_GOOD_TO_GO = 1; + + // WV, USA. + US_WV_EZPASSWV = 62; + + // WV, USA. + US_WV_MEMORIAL_BRIDGE_TICKETS = 63; + + // WV, USA. + US_WV_NEWELL_TOLL_BRIDGE_TICKET = 64; } diff --git a/google/maps/routes/v1/vehicle_emission_type.proto b/google/maps/routes/v1/vehicle_emission_type.proto index 36efeee02..2a098f0a9 100644 --- a/google/maps/routes/v1/vehicle_emission_type.proto +++ b/google/maps/routes/v1/vehicle_emission_type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/maps/routes/v1/waypoint.proto b/google/maps/routes/v1/waypoint.proto index e979a3318..25de06a7a 100644 --- a/google/maps/routes/v1/waypoint.proto +++ b/google/maps/routes/v1/waypoint.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.maps.routes.v1; -import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; import "google/type/latlng.proto"; @@ -42,14 +41,16 @@ message Waypoint { string place_id = 2; } - // Marks this waypoint as a milestone, as opposed to a stopping point. For + // 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` 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 the `legs` array, but they do route the journey through the // waypoint. You can only set this value on waypoints that are intermediates. - // If you set this field on terminal waypoints, then the request fails. + // The request fails if you set this field on terminal waypoints. + // If ComputeRoutesRequest.optimize_waypoint_order is set to true then + // this field cannot be set to true; otherwise, the request fails. bool via = 3; // Indicates that the waypoint is meant for vehicles to stop at, where the diff --git a/google/maps/routes/v1alpha/route_service.proto b/google/maps/routes/v1alpha/route_service.proto index 633a7a555..fb2167a3f 100644 --- a/google/maps/routes/v1alpha/route_service.proto +++ b/google/maps/routes/v1alpha/route_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,13 +17,13 @@ syntax = "proto3"; package google.maps.routes.v1alpha; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/maps/routes/v1/compute_custom_routes_request.proto"; import "google/maps/routes/v1/compute_custom_routes_response.proto"; import "google/maps/routes/v1/compute_route_matrix_request.proto"; import "google/maps/routes/v1/compute_routes_request.proto"; import "google/maps/routes/v1/compute_routes_response.proto"; import "google/maps/routes/v1/route_matrix_element.proto"; -import "google/api/client.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1Alpha"; diff --git a/google/maps/routespreferred/v1/BUILD.bazel b/google/maps/routespreferred/v1/BUILD.bazel index f62e86db3..44a195e24 100644 --- a/google/maps/routespreferred/v1/BUILD.bazel +++ b/google/maps/routespreferred/v1/BUILD.bazel @@ -40,6 +40,7 @@ java_gapic_library( test_deps = [ "//google/maps/routes/v1:routes_java_grpc", ], + transport = "grpc+rest", deps = [ "//google/maps/routes/v1:routes_java_proto", ], @@ -48,6 +49,7 @@ java_gapic_library( java_gapic_test( name = "routespreferred_java_gapic_test_suite", test_classes = [ + "com.google.maps.routespreferred.v1.RoutesPreferredClientHttpJsonTest", "com.google.maps.routespreferred.v1.RoutesPreferredClientTest", ], runtime_deps = [":routespreferred_java_gapic_test"], @@ -56,6 +58,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-maps-routespreferred-v1-java", + transport = "grpc+rest", deps = [ ":routespreferred_java_gapic", "//google/maps/routes/v1:routes_java_grpc", # needed for test mocks @@ -85,6 +88,7 @@ go_gapic_library( grpc_service_config = "", importpath = "developers.google.com/maps/go/routespreferred/v1;routes", service_yaml = "routespreferred_v1.yaml", + transport = "grpc+rest", deps = [ "//google/maps/routes/v1:routes_go_proto", ], diff --git a/google/maps/routing/v2/BUILD.bazel b/google/maps/routing/v2/BUILD.bazel new file mode 100644 index 000000000..429a08a46 --- /dev/null +++ b/google/maps/routing/v2/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. + +# 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 = "routing_proto", + srcs = [ + "fallback_info.proto", + "location.proto", + "maneuver.proto", + "navigation_instruction.proto", + "polyline.proto", + "route.proto", + "route_modifiers.proto", + "route_travel_mode.proto", + "routes_service.proto", + "routing_preference.proto", + "speed_reading_interval.proto", + "toll_info.proto", + "toll_passes.proto", + "units.proto", + "vehicle_emission_type.proto", + "vehicle_info.proto", + "waypoint.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/geo/type:viewport_proto", + "//google/rpc:status_proto", + "//google/type:latlng_proto", + "//google/type:money_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:struct_proto", + "@com_google_protobuf//:timestamp_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "routing_proto_with_info", + deps = [ + ":routing_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_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "routing_java_proto", + deps = [":routing_proto"], +) + +java_grpc_library( + name = "routing_java_grpc", + srcs = [":routing_proto"], + deps = [":routing_java_proto"], +) + +java_gapic_library( + name = "routing_java_gapic", + srcs = [":routing_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "library_grpc_service_config.json", + service_yaml = "routes_v2.yaml", + test_deps = [ + ":routing_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":routing_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "routing_java_gapic_test_suite", + test_classes = [ + "com.google.maps.routing.v2.RoutesClientHttpJsonTest", + "com.google.maps.routing.v2.RoutesClientTest", + ], + runtime_deps = [":routing_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-maps-routing-v2-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":routing_java_gapic", + ":routing_java_grpc", + ":routing_java_proto", + ":routing_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "routing_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/maps/routing/v2", + protos = [":routing_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/geo/type:viewport_go_proto", + "//google/rpc:status_go_proto", + "//google/type:latlng_go_proto", + "//google/type:money_go_proto", + ], +) + +go_gapic_library( + name = "routing_go_gapic", + srcs = [":routing_proto_with_info"], + grpc_service_config = "library_grpc_service_config.json", + importpath = "google.golang.org/google/maps/routing/v2;routing", + metadata = True, + service_yaml = "routes_v2.yaml", + transport = "grpc+rest", + deps = [ + ":routing_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +go_test( + name = "routing_go_gapic_test", + srcs = [":routing_go_gapic_srcjar_test"], + embed = [":routing_go_gapic"], + importpath = "google.golang.org/google/maps/routing/v2", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-maps-routing-v2-go", + deps = [ + ":routing_go_gapic", + ":routing_go_gapic_srcjar-metadata.srcjar", + ":routing_go_gapic_srcjar-test.srcjar", + ":routing_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "routing_py_gapic", + srcs = [":routing_proto"], + grpc_service_config = "library_grpc_service_config.json", + service_yaml = "routes_v2.yaml", + transport = "grpc", + deps = [ + "//google/geo/type:viewport_py_proto", + ], +) + +py_test( + name = "routing_py_gapic_test", + srcs = [ + "routing_py_gapic_pytest.py", + "routing_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":routing_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "maps-routing-v2-py", + deps = [ + ":routing_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "routing_php_proto", + deps = [":routing_proto"], +) + +php_grpc_library( + name = "routing_php_grpc", + srcs = [":routing_proto"], + deps = [":routing_php_proto"], +) + +php_gapic_library( + name = "routing_php_gapic", + srcs = [":routing_proto_with_info"], + grpc_service_config = "library_grpc_service_config.json", + service_yaml = "routes_v2.yaml", + deps = [ + ":routing_php_grpc", + ":routing_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-maps-routing-v2-php", + deps = [ + ":routing_php_gapic", + ":routing_php_grpc", + ":routing_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "routing_nodejs_gapic", + package_name = "@googlemaps/routing", + src = ":routing_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "library_grpc_service_config.json", + package = "google.maps.routing.v2", + service_yaml = "routes_v2.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "maps-routing-v2-nodejs", + deps = [ + ":routing_nodejs_gapic", + ":routing_proto", + "//google/geo/type:viewport_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 = "routing_ruby_proto", + deps = [":routing_proto"], +) + +ruby_grpc_library( + name = "routing_ruby_grpc", + srcs = [":routing_proto"], + deps = [":routing_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "routing_ruby_gapic", + srcs = [":routing_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=routes.googleapis.com", + "ruby-cloud-api-shortname=routes", + "ruby-cloud-gem-name=google-maps-routing-v2", + "ruby-cloud-product-url=https://developers.google.com/maps/documentation/", + ], + grpc_service_config = "library_grpc_service_config.json", + ruby_cloud_description = "Routing includes the process of calculating a path along the road network, complete with an Estimated Time of Arrival (ETA).", + ruby_cloud_title = "Routes V2", + service_yaml = "routes_v2.yaml", + deps = [ + ":routing_ruby_grpc", + ":routing_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-maps-routing-v2-ruby", + deps = [ + ":routing_ruby_gapic", + ":routing_ruby_grpc", + ":routing_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 = "routing_csharp_proto", + deps = [":routing_proto"], +) + +csharp_grpc_library( + name = "routing_csharp_grpc", + srcs = [":routing_proto"], + deps = [":routing_csharp_proto"], +) + +csharp_gapic_library( + name = "routing_csharp_gapic", + srcs = [":routing_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "library_grpc_service_config.json", + service_yaml = "routes_v2.yaml", + deps = [ + ":routing_csharp_grpc", + ":routing_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-maps-routing-v2-csharp", + deps = [ + ":routing_csharp_gapic", + ":routing_csharp_grpc", + ":routing_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "routing_cc_proto", + deps = [":routing_proto"], +) + +cc_grpc_library( + name = "routing_cc_grpc", + srcs = [":routing_proto"], + grpc_only = True, + deps = [":routing_cc_proto"], +) diff --git a/google/maps/routing/v2/fallback_info.proto b/google/maps/routing/v2/fallback_info.proto new file mode 100644 index 000000000..e8ba95205 --- /dev/null +++ b/google/maps/routing/v2/fallback_info.proto @@ -0,0 +1,72 @@ +// 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.routing.v2; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "FallbackInfoProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// Information related to how and why a fallback result was used. If this field +// is set, then it means the server used a different routing mode from your +// preferred mode as fallback. +message FallbackInfo { + // Routing mode used for the response. If fallback was triggered, the mode + // may be different from routing preference set in the original client + // request. + FallbackRoutingMode routing_mode = 1; + + // The reason why fallback response was used instead of the original response. + // This field is only populated when the fallback mode is triggered and the + // fallback response is returned. + FallbackReason reason = 2; +} + +// Reasons for using fallback response. +enum FallbackReason { + // No fallback reason specified. + FALLBACK_REASON_UNSPECIFIED = 0; + + // A server error happened while calculating routes with your preferred + // routing mode, but we were able to return a result calculated by an + // alternative mode. + SERVER_ERROR = 1; + + // We were not able to finish the calculation with your preferred routing mode + // on time, but we were able to return a result calculated by an alternative + // mode. + LATENCY_EXCEEDED = 2; +} + +// Actual routing mode used for returned fallback response. +enum FallbackRoutingMode { + // Not used. + FALLBACK_ROUTING_MODE_UNSPECIFIED = 0; + + // Indicates the "TRAFFIC_UNAWARE" routing mode was used to compute the + // response. + FALLBACK_TRAFFIC_UNAWARE = 1; + + // Indicates the "TRAFFIC_AWARE" routing mode was used to compute the + // response. + FALLBACK_TRAFFIC_AWARE = 2; +} diff --git a/google/maps/routing/v2/library_grpc_service_config.json b/google/maps/routing/v2/library_grpc_service_config.json new file mode 100644 index 000000000..b31a13966 --- /dev/null +++ b/google/maps/routing/v2/library_grpc_service_config.json @@ -0,0 +1,16 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.maps.routing.v2.RoutesService", "method": "ComputeRoutes" }, + { "service": "google.maps.routing.v2.RoutesService", "method": "ComputeRouteMatrix" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/google/maps/routing/v2/location.proto b/google/maps/routing/v2/location.proto new file mode 100644 index 000000000..45c08b808 --- /dev/null +++ b/google/maps/routing/v2/location.proto @@ -0,0 +1,43 @@ +// 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.routing.v2; + +import "google/protobuf/wrappers.proto"; +import "google/type/latlng.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "LocationProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// 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. You can use this + // field only for `DRIVE` and `TWO_WHEELER` travel modes. + google.protobuf.Int32Value heading = 2; +} diff --git a/google/maps/routing/v2/maneuver.proto b/google/maps/routing/v2/maneuver.proto new file mode 100644 index 000000000..b87f8f97f --- /dev/null +++ b/google/maps/routing/v2/maneuver.proto @@ -0,0 +1,88 @@ +// 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.routing.v2; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "ManeuverProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +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.). +enum Maneuver { + // Not used. + MANEUVER_UNSPECIFIED = 0; + + // Turn slightly to the left. + TURN_SLIGHT_LEFT = 1; + + // Turn sharply to the left. + TURN_SHARP_LEFT = 2; + + // Make a left u-turn. + UTURN_LEFT = 3; + + // Turn left. + TURN_LEFT = 4; + + // Turn slightly to the right. + TURN_SLIGHT_RIGHT = 5; + + // Turn sharply to the right. + TURN_SHARP_RIGHT = 6; + + // Make a right u-turn. + UTURN_RIGHT = 7; + + // Turn right. + TURN_RIGHT = 8; + + // Go straight. + STRAIGHT = 9; + + // Take the left ramp. + RAMP_LEFT = 10; + + // Take the right ramp. + RAMP_RIGHT = 11; + + // Merge into traffic. + MERGE = 12; + + // Take the left fork. + FORK_LEFT = 13; + + // Take the right fork. + FORK_RIGHT = 14; + + // Take the ferry. + FERRY = 15; + + // Take the train leading onto the ferry. + FERRY_TRAIN = 16; + + // Turn left at the roundabout. + ROUNDABOUT_LEFT = 17; + + // Turn right at the roundabout. + ROUNDABOUT_RIGHT = 18; +} diff --git a/google/maps/routing/v2/navigation_instruction.proto b/google/maps/routing/v2/navigation_instruction.proto new file mode 100644 index 000000000..dfe017cf5 --- /dev/null +++ b/google/maps/routing/v2/navigation_instruction.proto @@ -0,0 +1,40 @@ +// 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.routing.v2; + +import "google/maps/routing/v2/maneuver.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "NavigationInstructionProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +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] +message NavigationInstruction { + // Encapsulates the navigation instructions for the current step (e.g., turn + // left, merge, straight, etc.). This field determines which icon to display. + Maneuver maneuver = 1; + + // Instructions for navigating this step. + string instructions = 2; +} diff --git a/google/maps/routing/v2/polyline.proto b/google/maps/routing/v2/polyline.proto new file mode 100644 index 000000000..19f6b2679 --- /dev/null +++ b/google/maps/routing/v2/polyline.proto @@ -0,0 +1,74 @@ +// 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.routing.v2; + +import "google/protobuf/struct.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "PolylineProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// Encapsulates an encoded polyline. +message Polyline { + // Encapsulates the type of polyline. Defaults to encoded_polyline. + oneof polyline_type { + // The string encoding of the polyline using the [polyline encoding + // algorithm](https://developers.google.com/maps/documentation/utilities/polylinealgorithm) + string encoded_polyline = 1; + + // Specifies a polyline using the [GeoJSON LineString + // format](https://tools.ietf.org/html/rfc7946#section-3.1.4) + google.protobuf.Struct geo_json_linestring = 2; + } +} + +// A set of values that specify the quality of the polyline. +enum PolylineQuality { + // No polyline quality preference specified. Defaults to `OVERVIEW`. + POLYLINE_QUALITY_UNSPECIFIED = 0; + + // Specifies a high-quality polyline - which is composed using more points + // than `OVERVIEW`, at the cost of increased response size. Use this value + // when you need more precision. + HIGH_QUALITY = 1; + + // Specifies an overview polyline - which is composed using a small number of + // points. Use this value when displaying an overview of the route. Using this + // option has a lower request latency compared to using the + // `HIGH_QUALITY` option. + OVERVIEW = 2; +} + +// Specifies the preferred type of polyline to be returned. +enum PolylineEncoding { + // No polyline type preference specified. Defaults to `ENCODED_POLYLINE`. + POLYLINE_ENCODING_UNSPECIFIED = 0; + + // Specifies a polyline encoded using the [polyline encoding + // algorithm](https://developers.google.com/maps/documentation/utilities/polylinealgorithm). + ENCODED_POLYLINE = 1; + + // Specifies a polyline using the [GeoJSON LineString + // format](https://tools.ietf.org/html/rfc7946#section-3.1.4) + GEO_JSON_LINESTRING = 2; +} diff --git a/google/maps/routing/v2/route.proto b/google/maps/routing/v2/route.proto new file mode 100644 index 000000000..8f4304f08 --- /dev/null +++ b/google/maps/routing/v2/route.proto @@ -0,0 +1,208 @@ +// 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.routing.v2; + +import "google/geo/type/viewport.proto"; +import "google/maps/routing/v2/location.proto"; +import "google/maps/routing/v2/navigation_instruction.proto"; +import "google/maps/routing/v2/polyline.proto"; +import "google/maps/routing/v2/speed_reading_interval.proto"; +import "google/maps/routing/v2/toll_info.proto"; +import "google/protobuf/duration.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "RouteProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// Encapsulates a route, which consists of a series of connected road segments +// that join beginning, ending, and intermediate waypoints. +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. + // 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`. + repeated RouteLeg legs = 1; + + // The travel distance of the route, in meters. + int32 distance_meters = 2; + + // The length of time needed to navigate the route. If you set the + // `routing_preference` to `TRAFFIC_UNAWARE`, then this value is the same as + // `static_duration`. If you set the `routing_preference` to either + // `TRAFFIC_AWARE` or `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated + // taking traffic conditions into account. + google.protobuf.Duration duration = 3; + + // The duration of traveling through the route without taking traffic + // conditions into consideration. + google.protobuf.Duration static_duration = 4; + + // The overall route polyline. This polyline will be the combined polyline of + // all `legs`. + Polyline polyline = 5; + + // A description of the route. + string description = 6; + + // An array of warnings to show when displaying the route. + repeated string warnings = 7; + + // The viewport bounding box of the polyline. + google.geo.type.Viewport viewport = 8; + + // Additional information about the route. + RouteTravelAdvisory travel_advisory = 9; +} + +// Encapsulates the additional information that the user should be informed +// about, such as possible traffic zone restriction etc. +message RouteTravelAdvisory { + // Encapsulates information about tolls on the Route. + // This field is only populated if we expect there are tolls on the Route. + // If this field is set but the estimated_price subfield is not populated, + // we expect that road contains tolls but we do not know an estimated price. + // If this field is not set, then we expect there is no toll on the Route. + TollInfo toll_info = 2; + + // Speed reading intervals detailing traffic density. Applicable in case of + // `TRAFFIC_AWARE` and `TRAFFIC_AWARE_OPTIMAL` routing preferences. + // The intervals cover the entire polyline of the route without overlap. + // The start point of a specified interval is the same as the end point of the + // preceding interval. + // + // Example: + // + // polyline: A ---- B ---- C ---- D ---- E ---- F ---- G + // speed_reading_intervals: [A,C), [C,D), [D,G). + repeated SpeedReadingInterval speed_reading_intervals = 3; +} + +// Encapsulates the additional information that the user should be informed +// about, such as possible traffic zone restriction etc. on a route leg. +message RouteLegTravelAdvisory { + // Encapsulates information about tolls on the specific RouteLeg. + // This field is only populated if we expect there are tolls on the RouteLeg. + // If this field is set but the estimated_price subfield is not populated, + // we expect that road contains tolls but we do not know an estimated price. + // If this field does not exist, then there is no toll on the RouteLeg. + TollInfo toll_info = 1; + + // Speed reading intervals detailing traffic density. Applicable in case of + // `TRAFFIC_AWARE` and `TRAFFIC_AWARE_OPTIMAL` routing preferences. + // The intervals cover the entire polyline of the RouteLg without overlap. + // The start point of a specified interval is the same as the end point of the + // preceding interval. + // + // Example: + // + // polyline: A ---- B ---- C ---- D ---- E ---- F ---- G + // speed_reading_intervals: [A,C), [C,D), [D,G). + repeated SpeedReadingInterval speed_reading_intervals = 2; +} + +// Encapsulates the additional information that the user should be informed +// about, such as possible traffic zone restriction on a leg step. +message RouteLegStepTravelAdvisory { + // Speed reading intervals detailing traffic density. Applicable in case of + // `TRAFFIC_AWARE` and `TRAFFIC_AWARE_OPTIMAL` routing preferences. + // The intervals cover the entire polyline of the RouteLegStep without + // overlap. The start point of a specified interval is the same as the end + // point of the preceding interval. + // + // Example: + // + // polyline: A ---- B ---- C ---- D ---- E ---- F ---- G + // speed_reading_intervals: [A,C), [C,D), [D,G). + repeated SpeedReadingInterval speed_reading_intervals = 1; +} + +// Encapsulates a segment between non-`via` waypoints. +message RouteLeg { + // The travel distance of the route leg, in meters. + int32 distance_meters = 1; + + // The length of time needed to navigate the leg. If the `route_preference` + // is set to `TRAFFIC_UNAWARE`, then this value is the same as + // `static_duration`. If the `route_preference` is either `TRAFFIC_AWARE` or + // `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated taking traffic + // conditions into account. + google.protobuf.Duration duration = 2; + + // The duration of traveling through the leg, calculated without taking + // traffic conditions into consideration. + google.protobuf.Duration static_duration = 3; + + // The overall polyline for this leg. This includes that each `step`'s + // polyline. + Polyline polyline = 4; + + // The start location of this leg. This might be different from the provided + // `origin`. For example, when the provided `origin` is not near a road, this + // is a point on the road. + Location start_location = 5; + + // The end location of this leg. This might be different from the provided + // `destination`. For example, when the provided `destination` is not near a + // road, this is a point on the road. + Location end_location = 6; + + // An array of steps denoting segments within this leg. Each step represents + // one navigation instruction. + repeated RouteLegStep steps = 7; + + // Encapsulates the additional information that the user should be informed + // about, such as possible traffic zone restriction etc. on a route leg. + RouteLegTravelAdvisory travel_advisory = 8; +} + +// Encapsulates a segment of a `RouteLeg`. A step corresponds to a single +// navigation instruction. Route legs are made up of steps. +message RouteLegStep { + // The travel distance of this step, in meters. In some circumstances, this + // field might not have a value. + int32 distance_meters = 1; + + // The duration of travel through this step without taking traffic conditions + // into consideration. In some circumstances, this field might not have a + // value. + google.protobuf.Duration static_duration = 2; + + // The polyline associated with this step. + Polyline polyline = 3; + + // The start location of this step. + Location start_location = 4; + + // The end location of this step. + Location end_location = 5; + + // Navigation instructions. + NavigationInstruction navigation_instruction = 6; + + // Encapsulates the additional information that the user should be informed + // about, such as possible traffic zone restriction on a leg step. + RouteLegStepTravelAdvisory travel_advisory = 7; +} diff --git a/google/maps/routing/v2/route_modifiers.proto b/google/maps/routing/v2/route_modifiers.proto new file mode 100644 index 000000000..01fcdad3e --- /dev/null +++ b/google/maps/routing/v2/route_modifiers.proto @@ -0,0 +1,64 @@ +// 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.routing.v2; + +import "google/maps/routing/v2/toll_passes.proto"; +import "google/maps/routing/v2/vehicle_info.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "RouteModifiersProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// Encapsulates a set of optional conditions to satisfy when calculating the +// routes. +message RouteModifiers { + // Specifies whether to avoid toll roads where reasonable. Preference will be + // given to routes not containing toll roads. Applies only to the `DRIVE` and + // `TWO_WHEELER` travel modes. + bool avoid_tolls = 1; + + // Specifies whether to avoid highways where reasonable. Preference will be + // given to routes not containing highways. Applies only to the `DRIVE` and + // `TWO_WHEELER` travel modes. + bool avoid_highways = 2; + + // Specifies whether to avoid ferries where reasonable. Preference will be + // given to routes not containing travel by ferries. + // Applies only to the `DRIVE` and`TWO_WHEELER` travel modes. + bool avoid_ferries = 3; + + // Specifies whether to avoid navigating indoors where reasonable. Preference + // will be given to routes not containing indoor navigation. + // Applies only to the `WALK` travel mode. + bool avoid_indoor = 4; + + // Specifies the vehicle information. + VehicleInfo vehicle_info = 5; + + // Encapsulates information about toll passes. + // If toll passes are provided, the API tries to return the pass price. If + // 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 travel modes. + repeated TollPass toll_passes = 6; +} diff --git a/google/maps/routing/v2/route_travel_mode.proto b/google/maps/routing/v2/route_travel_mode.proto new file mode 100644 index 000000000..adc091e16 --- /dev/null +++ b/google/maps/routing/v2/route_travel_mode.proto @@ -0,0 +1,46 @@ +// 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.routing.v2; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "RouteTravelModeProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// A set of values used to specify the mode of travel. +enum RouteTravelMode { + // No travel mode specified. Defaults to `DRIVE`. + TRAVEL_MODE_UNSPECIFIED = 0; + + // Travel by passenger car. + DRIVE = 1; + + // Travel by bicycle. + BICYCLE = 2; + + // Travel by walking. + WALK = 3; + + // Two-wheeled, motorized vehicle. For example, motorcycle. Note that this + // differs from the `BICYCLE` travel mode which covers human-powered mode. + TWO_WHEELER = 4; +} diff --git a/google/maps/routing/v2/routes_service.proto b/google/maps/routing/v2/routes_service.proto new file mode 100644 index 000000000..e252a87b6 --- /dev/null +++ b/google/maps/routing/v2/routes_service.proto @@ -0,0 +1,311 @@ +// 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.routing.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/maps/routing/v2/fallback_info.proto"; +import "google/maps/routing/v2/polyline.proto"; +import "google/maps/routing/v2/route.proto"; +import "google/maps/routing/v2/route_modifiers.proto"; +import "google/maps/routing/v2/route_travel_mode.proto"; +import "google/maps/routing/v2/routing_preference.proto"; +import "google/maps/routing/v2/units.proto"; +import "google/maps/routing/v2/waypoint.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "RoutesServiceProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// The Routes API. +service Routes { + option (google.api.default_host) = "routes.googleapis.com"; + + // Returns the primary route along with optional alternate routes, given a set + // of terminal and intermediate waypoints. + // + // **NOTE:** This method requires that you specify a response field mask in + // 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 + // 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). + // + // For example, in this method: + // + // * Field mask of all available fields (for manual inspection): + // `X-Goog-FieldMask: *` + // * Field mask of Route-level duration, distance, and polyline (an example + // production setup): + // `X-Goog-FieldMask: + // routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline` + // + // Google discourage the use of the wildcard (`*`) response field mask, or + // specifying the field mask at the top level (`routes`), because: + // + // * Selecting only the fields that you need helps our server save computation + // cycles, allowing us to return the result to you with a lower latency. + // * Selecting only the fields that you need + // in your production job ensures stable latency performance. We might add + // more response fields in the future, and those new fields might require + // extra computation time. If you select all fields, or if you select all + // fields at the top level, then you might experience performance degradation + // because any new field we add will be automatically included in the + // response. + // * Selecting only the fields that you need results in a smaller response + // size, and thus higher network throughput. + rpc ComputeRoutes(ComputeRoutesRequest) returns (ComputeRoutesResponse) { + option (google.api.http) = { + post: "/directions/v2:computeRoutes" + body: "*" + }; + } + + // Takes in a list of origins and destinations and returns a stream containing + // route information for each combination of origin and destination. + // + // **NOTE:** This method requires that you specify a response field mask in + // 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 + // paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). + // + // For example, in this method: + // + // * Field mask of all available fields (for manual inspection): + // `X-Goog-FieldMask: *` + // * Field mask of route durations, distances, element status, condition, and + // element indices (an example production setup): + // `X-Goog-FieldMask: + // originIndex,destinationIndex,status,condition,distanceMeters,duration` + // + // It is critical that you include `status` in your field mask as otherwise + // all messages will appear to be OK. Google discourages the use of the + // wildcard (`*`) response field mask, because: + // + // * Selecting only the fields that you need helps our server save computation + // cycles, allowing us to return the result to you with a lower latency. + // * Selecting only the fields that you need in your production job ensures + // stable latency performance. We might add more response fields in the + // future, and those new fields might require extra computation time. If you + // select all fields, or if you select all fields at the top level, then you + // might experience performance degradation because any new field we add will + // be automatically included in the response. + // * Selecting only the fields that you need results in a smaller response + // size, and thus higher network throughput. + rpc ComputeRouteMatrix(ComputeRouteMatrixRequest) returns (stream RouteMatrixElement) { + option (google.api.http) = { + post: "/distanceMatrix/v2:computeRouteMatrix" + body: "*" + }; + } +} + +// ComputeRoutes request message. +message ComputeRoutesRequest { + // Required. Origin waypoint. + Waypoint origin = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Destination waypoint. + Waypoint destination = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A set of waypoints along the route (excluding terminal points), + // for either stopping at or passing by. Up to 25 intermediate waypoints are + // supported. + repeated Waypoint intermediates = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the mode of transportation. + RouteTravelMode travel_mode = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies how to compute the route. The server + // attempts to use the selected routing preference to compute the route. If + // the routing preference results in an error or an extra long latency, then + // an error is returned. In the future, we might implement a fallback + // mechanism to use a different option when the preferred option does not give + // a valid result. You can specify this option only when the `travel_mode` is + // `DRIVE` or `TWO_WHEELER`, otherwise the request fails. + RoutingPreference routing_preference = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies your preference for the quality of the polyline. + PolylineQuality polyline_quality = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the preferred encoding for the polyline. + PolylineEncoding polyline_encoding = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The departure time. If you don't set this value, then this value + // defaults to the time that you made the request. If you set this value to a + // time that has already occurred, then the request fails. + google.protobuf.Timestamp departure_time = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether to calculate alternate routes in addition to the route. + bool compute_alternative_routes = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A set of conditions to satisfy that affect the way routes are + // calculated. + 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) + // 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. Specifies the units of measure for the display fields. This + // includes the `instruction` field in `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 request. + Units units = 11 [(google.api.field_behavior) = OPTIONAL]; +} + +// 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. + // 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. + repeated Route routes = 1; + + // In some cases when the server is not able to compute the route results with + // all of the input preferences, it may fallback to using a different way of + // computation. When fallback mode is used, this field contains detailed info + // about the fallback response. Otherwise this field is unset. + FallbackInfo fallback_info = 2; +} + +// ComputeRouteMatrix request message +message ComputeRouteMatrixRequest { + // Required. Array of origins, which determines the rows of the response 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. + repeated RouteMatrixOrigin origins = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Array of destinations, which determines the columns of the response matrix. + repeated RouteMatrixDestination destinations = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies the mode of transportation. + RouteTravelMode travel_mode = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies how to compute the route. The server attempts to use the selected + // routing preference to compute the route. If the routing preference results + // in an error or an extra long latency, an error is returned. In the future, + // we might implement a fallback mechanism to use a different option when the + // preferred option does not give a valid result. You can specify this option + // only when the `travel_mode` is `DRIVE` or `TWO_WHEELER`, otherwise the + // request fails. + RoutingPreference routing_preference = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The departure time. If you don't set this value, this defaults to the time + // that you made the request. If you set this value to a time that has already + // occurred, the request fails. + google.protobuf.Timestamp departure_time = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A single origin for ComputeRouteMatrixRequest +message RouteMatrixOrigin { + // Required. Origin waypoint + Waypoint waypoint = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Modifiers for every route that takes this as the origin + RouteModifiers route_modifiers = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A single destination for ComputeRouteMatrixRequest +message RouteMatrixDestination { + // Required. Destination waypoint + Waypoint waypoint = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Encapsulates route information computed for an origin/destination pair in the +// ComputeRouteMatrix API. This proto can be streamed to the client. +message RouteMatrixElement { + // Zero-based index of the origin in the request. + optional int32 origin_index = 1; + + // Zero-based index of the destination in the request. + optional int32 destination_index = 2; + + // Error status code for this element. + google.rpc.Status status = 3; + + // Indicates whether the route was found or not. Independent of status. + RouteMatrixElementCondition condition = 9; + + // The travel distance of the route, in meters. + int32 distance_meters = 4; + + // The length of time needed to navigate the route. If you set the + // `routing_preference` to `TRAFFIC_UNAWARE`, then this value is the same as + // `static_duration`. If you set the `routing_preference` to either + // `TRAFFIC_AWARE` or `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated + // taking traffic conditions into account. + google.protobuf.Duration duration = 5; + + // The duration of traveling through the route without taking traffic + // conditions into consideration. + google.protobuf.Duration static_duration = 6; + + // Additional information about the route. For example: restriction + // information and toll information + RouteTravelAdvisory travel_advisory = 7; + + // In some cases when the server is not able to compute the route with the + // given preferences for this particular origin/destination pair, it may + // fall back to using a different mode of computation. When fallback mode is + // used, this field contains detailed information about the fallback response. + // Otherwise this field is unset. + FallbackInfo fallback_info = 8; +} + +// The condition of the route being returned. +enum RouteMatrixElementCondition { + // Only used when the `status` of the element is not OK. + ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED = 0; + + // A route was found, and the corresponding information was filled out for the + // element. + ROUTE_EXISTS = 1; + + // No route could be found. Fields containing route information, such as + // `distance_meters` or `duration`, will not be filled out in the element. + ROUTE_NOT_FOUND = 2; +} diff --git a/google/maps/routing/v2/routes_v2.yaml b/google/maps/routing/v2/routes_v2.yaml new file mode 100644 index 000000000..2bbdc5a1e --- /dev/null +++ b/google/maps/routing/v2/routes_v2.yaml @@ -0,0 +1,10 @@ +type: google.api.Service +config_version: 3 +name: routes.googleapis.com +title: Routes API + +apis: +- name: google.maps.routing.v2.Routes + +documentation: + summary: routes.googleapis.com API. diff --git a/google/maps/routing/v2/routing_preference.proto b/google/maps/routing/v2/routing_preference.proto new file mode 100644 index 000000000..0b9108f1f --- /dev/null +++ b/google/maps/routing/v2/routing_preference.proto @@ -0,0 +1,55 @@ +// 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.routing.v2; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "RoutingPreferenceProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// A set of values that specify factors to take into consideration when +// calculating the route. +enum RoutingPreference { + // No routing preference specified. Default to `TRAFFIC_UNAWARE`. + ROUTING_PREFERENCE_UNSPECIFIED = 0; + + // 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` DRIVE and TWO_WHEELER choice of route and + // duration are based on road network and average time-independent traffic + // conditions. 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 frequency. + TRAFFIC_UNAWARE = 1; + + // Calculates routes taking live traffic conditions into consideration. + // In contrast to `TRAFFIC_AWARE_OPTIMAL`, some optimizations are applied to + // significantly reduce latency. + TRAFFIC_AWARE = 2; + + // Calculates the routes taking live traffic conditions into consideration, + // without applying most performance optimizations. Using this value produces + // the highest latency. + TRAFFIC_AWARE_OPTIMAL = 3; +} diff --git a/google/maps/routing/v2/speed_reading_interval.proto b/google/maps/routing/v2/speed_reading_interval.proto new file mode 100644 index 000000000..6f43f7cc0 --- /dev/null +++ b/google/maps/routing/v2/speed_reading_interval.proto @@ -0,0 +1,57 @@ +// 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.routing.v2; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "SpeedReadingIntervalProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +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. +message SpeedReadingInterval { + // The classification of polyline speed based on traffic data. + enum Speed { + // Default value. This value is unused. + SPEED_UNSPECIFIED = 0; + + // Normal speed, no slowdown is detected. + NORMAL = 1; + + // Slowdown detected, but no traffic jam formed. + SLOW = 2; + + // Traffic jam detected. + TRAFFIC_JAM = 3; + } + + // The starting index of this interval in the polyline. + optional int32 start_polyline_point_index = 1; + + // The ending index of this interval in the polyline. + optional int32 end_polyline_point_index = 2; + + // Traffic speed in this interval. + Speed speed = 3; +} diff --git a/google/maps/routing/v2/toll_info.proto b/google/maps/routing/v2/toll_info.proto new file mode 100644 index 000000000..b98a0cbc2 --- /dev/null +++ b/google/maps/routing/v2/toll_info.proto @@ -0,0 +1,40 @@ +// 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.routing.v2; + +import "google/type/money.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "TollInfoProto"; +option java_package = "com.google.maps.routing.v2"; +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` or on a `RouteLeg`. +message TollInfo { + // The monetary amount of tolls for the corresponding Route or 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 multiple items to reflect tolls in different + // currencies. + repeated google.type.Money estimated_price = 1; +} diff --git a/google/maps/routing/v2/toll_passes.proto b/google/maps/routing/v2/toll_passes.proto new file mode 100644 index 000000000..c46259bdf --- /dev/null +++ b/google/maps/routing/v2/toll_passes.proto @@ -0,0 +1,321 @@ +// 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.routing.v2; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "TollPassesProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// List of toll passes around the world that we support. +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. + AU_ETOLL_TAG = 82; + + // Sydney toll pass. See additional details at https://www.tollpay.com.au. + AU_EWAY_TAG = 83; + + // Australia-wide toll pass. + // See additional details at https://www.linkt.com.au/. + AU_LINKT = 2; + + // Argentina toll pass. See additional details at https://telepase.com.ar + AR_TELEPASE = 3; + + // Brazil toll pass. See additional details at https://www.autoexpreso.com + BR_AUTO_EXPRESO = 81; + + // Brazil toll pass. See additional details at https://conectcar.com. + BR_CONECTCAR = 7; + + // Brazil toll pass. See additional details at https://movemais.com. + BR_MOVE_MAIS = 8; + + // Brazil toll pass. See additional details at https://pasorapido.gob.do/ + BR_PASSA_RAPIDO = 88; + + // Brazil toll pass. See additional details at https://www.semparar.com.br. + BR_SEM_PARAR = 9; + + // Brazil toll pass. See additional details at https://taggy.com.br. + BR_TAGGY = 10; + + // Brazil toll pass. See additional details at + // https://veloe.com.br/site/onde-usar. + BR_VELOE = 11; + + // Canada to United States border crossing. + CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD = 84; + + // Canada to United States border crossing. + CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD = 85; + + // Ontario, Canada to Michigan, United States border crossing. + CA_US_BLUE_WATER_EDGE_PASS = 18; + + // Ontario, Canada to Michigan, United States border crossing. + CA_US_CONNEXION = 19; + + // Canada to United States border crossing. + CA_US_NEXUS_CARD = 20; + + // Indonesia. + // E-card provided by multiple banks used to pay for tolls. All e-cards + // via banks are charged the same so only one enum value is needed. E.g. + // - Bank Mandiri https://www.bankmandiri.co.id/e-money + // - BCA https://www.bca.co.id/flazz + // - BNI https://www.bni.co.id/id-id/ebanking/tapcash + ID_E_TOLL = 16; + + // India. + IN_FASTAG = 78; + + // India, HP state plate exemption. + IN_LOCAL_HP_PLATE_EXEMPT = 79; + + // Mexico toll pass. + // https://iave.capufe.gob.mx/#/ + MX_IAVE = 90; + + // Mexico + // https://www.pase.com.mx + MX_PASE = 91; + + // Mexico + // https://operadoravial.com/quick-pass/ + MX_QUICKPASS = 93; + + // http://appsh.chihuahua.gob.mx/transparencia/?doc=/ingresos/TelepeajeFormato4.pdf + MX_SISTEMA_TELEPEAJE_CHIHUAHUA = 89; + + // Mexico + MX_TAG_IAVE = 12; + + // Mexico toll pass company. One of many operating in Mexico City. See + // additional details at https://www.televia.com.mx. + MX_TAG_TELEVIA = 13; + + // Mexico toll pass company. One of many operating in Mexico City. + // https://www.televia.com.mx + MX_TELEVIA = 92; + + // Mexico toll pass. See additional details at + // https://www.viapass.com.mx/viapass/web_home.aspx. + MX_VIAPASS = 14; + + // AL, USA. + US_AL_FREEDOM_PASS = 21; + + // AK, USA. + US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS = 22; + + // CA, USA. + US_CA_FASTRAK = 4; + + // Indicates driver has any FasTrak pass in addition to the DMV issued Clean + // Air Vehicle (CAV) sticker. + // https://www.bayareafastrak.org/en/guide/doINeedFlex.shtml + US_CA_FASTRAK_CAV_STICKER = 86; + + // CO, USA. + US_CO_EXPRESSTOLL = 23; + + // CO, USA. + US_CO_GO_PASS = 24; + + // DE, USA. + US_DE_EZPASSDE = 25; + + // FL, USA. + US_FL_BOB_SIKES_TOLL_BRIDGE_PASS = 65; + + // FL, USA. + US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD = 66; + + // FL, USA. + US_FL_EPASS = 67; + + // FL, USA. + US_FL_GIBA_TOLL_PASS = 68; + + // FL, USA. + US_FL_LEEWAY = 69; + + // FL, USA. + US_FL_SUNPASS = 70; + + // FL, USA. + US_FL_SUNPASS_PRO = 71; + + // IL, USA. + US_IL_EZPASSIL = 73; + + // IL, USA. + US_IL_IPASS = 72; + + // IN, USA. + US_IN_EZPASSIN = 26; + + // KS, USA. + US_KS_BESTPASS_HORIZON = 27; + + // KS, USA. + US_KS_KTAG = 28; + + // KS, USA. + US_KS_NATIONALPASS = 29; + + // KS, USA. + US_KS_PREPASS_ELITEPASS = 30; + + // KY, USA. + US_KY_RIVERLINK = 31; + + // LA, USA. + US_LA_GEAUXPASS = 32; + + // LA, USA. + US_LA_TOLL_TAG = 33; + + // MA, USA. + US_MA_EZPASSMA = 6; + + // MD, USA. + US_MD_EZPASSMD = 34; + + // ME, USA. + US_ME_EZPASSME = 35; + + // MI, USA. + US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD = 36; + + // MI, USA. + US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG = 37; + + // MI, USA. + US_MI_IQ_PROX_CARD = 38; + + // MI, USA. + US_MI_MACKINAC_BRIDGE_MAC_PASS = 39; + + // MI, USA. + US_MI_NEXPRESS_TOLL = 40; + + // MN, USA. + US_MN_EZPASSMN = 41; + + // NC, USA. + US_NC_EZPASSNC = 42; + + // NC, USA. + US_NC_PEACH_PASS = 87; + + // NC, USA. + US_NC_QUICK_PASS = 43; + + // NH, USA. + US_NH_EZPASSNH = 80; + + // NJ, USA. + US_NJ_DOWNBEACH_EXPRESS_PASS = 75; + + // NJ, USA. + US_NJ_EZPASSNJ = 74; + + // NY, USA. + US_NY_EXPRESSPASS = 76; + + // NY, USA. + US_NY_EZPASSNY = 77; + + // OH, USA. + US_OH_EZPASSOH = 44; + + // PA, USA. + US_PA_EZPASSPA = 45; + + // RI, USA. + US_RI_EZPASSRI = 46; + + // SC, USA. + US_SC_PALPASS = 47; + + // TX, USA. + US_TX_BANCPASS = 48; + + // TX, USA. + US_TX_DEL_RIO_PASS = 49; + + // TX, USA. + US_TX_EFAST_PASS = 50; + + // TX, USA. + US_TX_EAGLE_PASS_EXPRESS_CARD = 51; + + // TX, USA. + US_TX_EPTOLL = 52; + + // TX, USA. + US_TX_EZ_CROSS = 53; + + // TX, USA. + US_TX_EZTAG = 54; + + // TX, USA. + US_TX_LAREDO_TRADE_TAG = 55; + + // TX, USA. + US_TX_PLUSPASS = 56; + + // TX, USA. + US_TX_TOLLTAG = 57; + + // TX, USA. + US_TX_TXTAG = 58; + + // TX, USA. + US_TX_XPRESS_CARD = 59; + + // UT, USA. + US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD = 60; + + // VA, USA. + US_VA_EZPASSVA = 61; + + // WA, USA. + US_WA_BREEZEBY = 17; + + // WA, USA. + US_WA_GOOD_TO_GO = 1; + + // WV, USA. + US_WV_EZPASSWV = 62; + + // WV, USA. + US_WV_MEMORIAL_BRIDGE_TICKETS = 63; + + // WV, USA. + US_WV_NEWELL_TOLL_BRIDGE_TICKET = 64; +} diff --git a/google/maps/routing/v2/units.proto b/google/maps/routing/v2/units.proto new file mode 100644 index 000000000..32424046a --- /dev/null +++ b/google/maps/routing/v2/units.proto @@ -0,0 +1,40 @@ +// 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.routing.v2; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "UnitsProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// A set of values that specify the unit of measure used in the display. +enum Units { + // Units of measure not specified. Defaults to the unit of measure inferred + // from the request. + UNITS_UNSPECIFIED = 0; + + // Metric units of measure. + METRIC = 1; + + // Imperial (English) units of measure. + IMPERIAL = 2; +} diff --git a/google/maps/routing/v2/vehicle_emission_type.proto b/google/maps/routing/v2/vehicle_emission_type.proto new file mode 100644 index 000000000..d372986e6 --- /dev/null +++ b/google/maps/routing/v2/vehicle_emission_type.proto @@ -0,0 +1,43 @@ +// 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.routing.v2; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "VehicleEmissionTypeProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// A set of values describing the vehicle's emission type. +// Applies only to the DRIVE travel mode. +enum VehicleEmissionType { + // No emission type specified. Default to GASOLINE. + VEHICLE_EMISSION_TYPE_UNSPECIFIED = 0; + + // Gasoline/petrol fueled vehicle. + GASOLINE = 1; + + // Electricity powered vehicle. + ELECTRIC = 2; + + // Hybrid fuel (such as gasoline + electric) vehicle. + HYBRID = 3; +} diff --git a/google/maps/routing/v2/vehicle_info.proto b/google/maps/routing/v2/vehicle_info.proto new file mode 100644 index 000000000..1393fbde9 --- /dev/null +++ b/google/maps/routing/v2/vehicle_info.proto @@ -0,0 +1,37 @@ +// 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.routing.v2; + +import "google/maps/routing/v2/vehicle_emission_type.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "VehicleInfoProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// Encapsulates the vehicle information, such as the license plate last +// character. +message VehicleInfo { + // Describes the vehicle's emission type. + // Applies only to the DRIVE travel mode. + VehicleEmissionType emission_type = 2; +} diff --git a/google/maps/routing/v2/waypoint.proto b/google/maps/routing/v2/waypoint.proto new file mode 100644 index 000000000..a97b043c1 --- /dev/null +++ b/google/maps/routing/v2/waypoint.proto @@ -0,0 +1,71 @@ +// 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.routing.v2; + +import "google/maps/routing/v2/location.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Routing.V2"; +option go_package = "google.golang.org/genproto/googleapis/maps/routing/v2;routing"; +option java_multiple_files = true; +option java_outer_classname = "WaypointProto"; +option java_package = "com.google.maps.routing.v2"; +option objc_class_prefix = "GMRV2"; +option php_namespace = "Google\\Maps\\Routing\\V2"; +option ruby_package = "Google::Maps::Routing::V2"; + +// Encapsulates a waypoint. Waypoints mark both the beginning and end of a +// route, and include intermediate stops along the route. +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; + } + + // 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` 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 the `legs` array, but they do route the journey through the + // waypoint. You can only set this value on waypoints that are intermediates. + // The request fails if you set this field on terminal waypoints. + // If `ComputeRoutesRequest.optimize_waypoint_order` + // is set to true then this field cannot be set to + // true; otherwise, the request fails. + bool via = 3; + + // Indicates that the waypoint is meant for vehicles to stop at, where the + // intention is to either pickup or drop-off. When you set this value, the + // 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`. + 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' + // travel modes. + bool side_of_road = 5; +} diff --git a/google/monitoring/dashboard/v1/BUILD.bazel b/google/monitoring/dashboard/v1/BUILD.bazel index 85c6673c5..4017523c4 100644 --- a/google/monitoring/dashboard/v1/BUILD.bazel +++ b/google/monitoring/dashboard/v1/BUILD.bazel @@ -22,14 +22,19 @@ proto_library( name = "dashboard_proto", srcs = [ "alertchart.proto", + "collapsible_group.proto", "common.proto", "dashboard.proto", + "dashboard_filter.proto", "dashboards_service.proto", "drilldowns.proto", "layouts.proto", + "logs_panel.proto", "metrics.proto", "scorecard.proto", "service.proto", + "table.proto", + "table_display_options.proto", "text.proto", "widget.proto", "xychart.proto", @@ -37,12 +42,10 @@ proto_library( deps = [ "//google/api:annotations_proto", "//google/api:client_proto", - "//google/api:distribution_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", ], ) @@ -86,6 +89,7 @@ java_gapic_library( test_deps = [ ":dashboard_java_grpc", ], + transport = "grpc+rest", deps = [ ":dashboard_java_proto", "//google/api:api_java_proto", @@ -95,6 +99,7 @@ java_gapic_library( java_gapic_test( name = "dashboard_java_gapic_test_suite", test_classes = [ + "com.google.cloud.monitoring.dashboard.v1.DashboardsServiceClientHttpJsonTest", "com.google.cloud.monitoring.dashboard.v1.DashboardsServiceClientTest", ], runtime_deps = [":dashboard_java_gapic_test"], @@ -103,6 +108,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-monitoring-dashboard-v1-java", + transport = "grpc+rest", deps = [ ":dashboard_java_gapic", ":dashboard_java_grpc", @@ -129,7 +135,6 @@ go_proto_library( protos = [":dashboard_proto"], deps = [ "//google/api:annotations_go_proto", - "//google/api:distribution_go_proto", ], ) @@ -140,6 +145,7 @@ go_gapic_library( importpath = "cloud.google.com/go/monitoring/dashboard/apiv1;dashboard", metadata = True, service_yaml = "monitoring.yaml", + transport = "grpc+rest", deps = [ ":dashboard_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -171,12 +177,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "dashboard_py_gapic", srcs = [":dashboard_proto"], grpc_service_config = "dashboards_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "dashboard_py_gapic_test", + srcs = [ + "dashboard_py_gapic_pytest.py", + "dashboard_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dashboard_py_gapic"], ) # Open Source Packages @@ -337,6 +355,7 @@ csharp_gapic_library( srcs = [":dashboard_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dashboards_grpc_service_config.json", + service_yaml = "monitoring.yaml", deps = [ ":dashboard_csharp_grpc", ":dashboard_csharp_proto", @@ -370,7 +389,6 @@ cc_proto_library( cc_grpc_library( name = "dashboard_cc_grpc", srcs = [":dashboard_proto"], - generate_mocks = True, grpc_only = True, deps = [":dashboard_cc_proto"], ) diff --git a/google/monitoring/dashboard/v1/alertchart.proto b/google/monitoring/dashboard/v1/alertchart.proto index a795e063a..2a92423b8 100644 --- a/google/monitoring/dashboard/v1/alertchart.proto +++ b/google/monitoring/dashboard/v1/alertchart.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/monitoring/dashboard/v1/collapsible_group.proto b/google/monitoring/dashboard/v1/collapsible_group.proto new file mode 100644 index 000000000..513560eb1 --- /dev/null +++ b/google/monitoring/dashboard/v1/collapsible_group.proto @@ -0,0 +1,32 @@ +// 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.monitoring.dashboard.v1; + +option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; +option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard"; +option java_multiple_files = true; +option java_outer_classname = "CollapsibleGroupProto"; +option java_package = "com.google.monitoring.dashboard.v1"; +option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1"; +option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1"; + +// A widget that groups the other widgets. All widgets that are within +// the area spanned by the grouping widget are considered member widgets. +message CollapsibleGroup { + // The collapsed state of the widget on first page load. + bool collapsed = 1; +} diff --git a/google/monitoring/dashboard/v1/common.proto b/google/monitoring/dashboard/v1/common.proto index 804cf1387..6b8e6b3d5 100644 --- a/google/monitoring/dashboard/v1/common.proto +++ b/google/monitoring/dashboard/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.monitoring.dashboard.v1; -import "google/api/distribution.proto"; import "google/protobuf/duration.proto"; option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; diff --git a/google/monitoring/dashboard/v1/dashboard.proto b/google/monitoring/dashboard/v1/dashboard.proto index 54c8a013e..66f4c5300 100644 --- a/google/monitoring/dashboard/v1/dashboard.proto +++ b/google/monitoring/dashboard/v1/dashboard.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,6 +18,7 @@ package google.monitoring.dashboard.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/monitoring/dashboard/v1/dashboard_filter.proto"; import "google/monitoring/dashboard/v1/layouts.proto"; option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; @@ -69,4 +70,10 @@ message Dashboard { // arranged vertically. ColumnLayout column_layout = 9; } + + // Filters to reduce the amount of data charted based on the filter criteria. + repeated DashboardFilter dashboard_filters = 11; + + // Labels applied to the dashboard + map labels = 12; } diff --git a/google/monitoring/dashboard/v1/dashboard_filter.proto b/google/monitoring/dashboard/v1/dashboard_filter.proto new file mode 100644 index 000000000..fba5cf63e --- /dev/null +++ b/google/monitoring/dashboard/v1/dashboard_filter.proto @@ -0,0 +1,68 @@ +// 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.monitoring.dashboard.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; +option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard"; +option java_multiple_files = true; +option java_outer_classname = "DashboardFilterProto"; +option java_package = "com.google.monitoring.dashboard.v1"; +option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1"; +option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1"; + +// A filter to reduce the amount of data charted in relevant widgets. +message DashboardFilter { + // The type for the dashboard filter + enum FilterType { + // Filter type is unspecified. This is not valid in a well-formed request. + FILTER_TYPE_UNSPECIFIED = 0; + + // Filter on a resource label value + RESOURCE_LABEL = 1; + + // Filter on a metrics label value + METRIC_LABEL = 2; + + // Filter on a user metadata label value + USER_METADATA_LABEL = 3; + + // Filter on a system metadata label value + SYSTEM_METADATA_LABEL = 4; + + // Filter on a group id + GROUP = 5; + } + + // Required. The key for the label + string label_key = 1 [(google.api.field_behavior) = REQUIRED]; + + // The placeholder text that can be referenced in a filter string or MQL + // query. If omitted, the dashboard filter will be applied to all relevant + // widgets in the dashboard. + string template_variable = 3; + + // The default value used in the filter comparison + oneof default_value { + // A variable-length string value. + string string_value = 4; + } + + // The specified filter type + FilterType filter_type = 5; +} diff --git a/google/monitoring/dashboard/v1/dashboards_service.proto b/google/monitoring/dashboard/v1/dashboards_service.proto index b703a9184..4e99c4f7e 100644 --- a/google/monitoring/dashboard/v1/dashboards_service.proto +++ b/google/monitoring/dashboard/v1/dashboards_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,12 +17,11 @@ syntax = "proto3"; package google.monitoring.dashboard.v1; import "google/api/annotations.proto"; +import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/monitoring/dashboard/v1/dashboard.proto"; import "google/protobuf/empty.proto"; -import "google/protobuf/field_mask.proto"; -import "google/api/client.proto"; option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard"; diff --git a/google/monitoring/dashboard/v1/drilldowns.proto b/google/monitoring/dashboard/v1/drilldowns.proto index 92c8256c3..b0a11e0a3 100644 --- a/google/monitoring/dashboard/v1/drilldowns.proto +++ b/google/monitoring/dashboard/v1/drilldowns.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.monitoring.dashboard.v1; -import "google/monitoring/dashboard/v1/common.proto"; - option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard"; option java_multiple_files = true; diff --git a/google/monitoring/dashboard/v1/layouts.proto b/google/monitoring/dashboard/v1/layouts.proto index 81d6a5bd0..94be37aa5 100644 --- a/google/monitoring/dashboard/v1/layouts.proto +++ b/google/monitoring/dashboard/v1/layouts.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/monitoring/dashboard/v1/logs_panel.proto b/google/monitoring/dashboard/v1/logs_panel.proto new file mode 100644 index 000000000..a5fb66c7d --- /dev/null +++ b/google/monitoring/dashboard/v1/logs_panel.proto @@ -0,0 +1,38 @@ +// 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.monitoring.dashboard.v1; + +option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; +option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard"; +option java_multiple_files = true; +option java_outer_classname = "LogsPanelProto"; +option java_package = "com.google.monitoring.dashboard.v1"; +option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1"; +option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1"; + +// A widget that displays a stream of log. +message LogsPanel { + // A filter that chooses which log entries to return. See [Advanced Logs + // Queries](https://cloud.google.com/logging/docs/view/advanced-queries). + // Only log entries that match the filter are returned. An empty filter + // matches all log entries. + string filter = 1; + + // The names of logging resources to collect logs for. Currently only projects + // are supported. If empty, the widget will default to the host project. + repeated string resource_names = 2; +} diff --git a/google/monitoring/dashboard/v1/metrics.proto b/google/monitoring/dashboard/v1/metrics.proto index dc2bb93dc..c5ae8f718 100644 --- a/google/monitoring/dashboard/v1/metrics.proto +++ b/google/monitoring/dashboard/v1/metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -148,6 +148,18 @@ message Threshold { BELOW = 2; } + // An axis identifier. + enum TargetAxis { + // The target axis was not specified. Defaults to Y1. + TARGET_AXIS_UNSPECIFIED = 0; + + // The y_axis (the right axis of chart). + Y1 = 1; + + // The y2_axis (the left axis of chart). + Y2 = 2; + } + // A label for the threshold. string label = 1; @@ -161,6 +173,10 @@ message Threshold { // The direction for the current threshold. Direction is not allowed in a // XyChart. Direction direction = 4; + + // The target axis to use for plotting the threshold. Target axis is not + // allowed in a Scorecard. + TargetAxis target_axis = 5; } // Defines the possible types of spark chart supported by the `Scorecard`. diff --git a/google/monitoring/dashboard/v1/scorecard.proto b/google/monitoring/dashboard/v1/scorecard.proto index f7a556fa8..2cb2e4b2e 100644 --- a/google/monitoring/dashboard/v1/scorecard.proto +++ b/google/monitoring/dashboard/v1/scorecard.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,7 +19,6 @@ package google.monitoring.dashboard.v1; import "google/api/field_behavior.proto"; import "google/monitoring/dashboard/v1/metrics.proto"; import "google/protobuf/duration.proto"; -import "google/protobuf/empty.proto"; option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard"; diff --git a/google/monitoring/dashboard/v1/service.proto b/google/monitoring/dashboard/v1/service.proto index 6d5d9a357..f7e5e44ae 100644 --- a/google/monitoring/dashboard/v1/service.proto +++ b/google/monitoring/dashboard/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/monitoring/dashboard/v1/table.proto b/google/monitoring/dashboard/v1/table.proto new file mode 100644 index 000000000..8165c3a9b --- /dev/null +++ b/google/monitoring/dashboard/v1/table.proto @@ -0,0 +1,59 @@ +// 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.monitoring.dashboard.v1; + +import "google/api/field_behavior.proto"; +import "google/monitoring/dashboard/v1/metrics.proto"; +import "google/monitoring/dashboard/v1/table_display_options.proto"; +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; +option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard"; +option java_multiple_files = true; +option java_outer_classname = "TableProto"; +option java_package = "com.google.monitoring.dashboard.v1"; +option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1"; +option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1"; + +// A table that displays time series data. +message TimeSeriesTable { + // Groups a time series query definition with table options. + message TableDataSet { + // Required. Fields for querying time series data from the + // Stackdriver metrics API. + TimeSeriesQuery time_series_query = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A template string for naming `TimeSeries` in the resulting data set. + // This should be a string with interpolations of the form `${label_name}`, + // which will resolve to the label's value i.e. + // "${resource.labels.project_id}." + string table_template = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The lower bound on data point frequency for this data set, implemented by + // specifying the minimum alignment period to use in a time series query + // For example, if the data is published once every 10 minutes, the + // `min_alignment_period` should be at least 10 minutes. It would not + // make sense to fetch and align data at one minute intervals. + google.protobuf.Duration min_alignment_period = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Table display options for configuring how the table is rendered. + TableDisplayOptions table_display_options = 4 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The data displayed in this table. + repeated TableDataSet data_sets = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/monitoring/dashboard/v1/table_display_options.proto b/google/monitoring/dashboard/v1/table_display_options.proto new file mode 100644 index 000000000..b94b20b11 --- /dev/null +++ b/google/monitoring/dashboard/v1/table_display_options.proto @@ -0,0 +1,34 @@ +// 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.monitoring.dashboard.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; +option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard"; +option java_multiple_files = true; +option java_outer_classname = "TableDisplayOptionsProto"; +option java_package = "com.google.monitoring.dashboard.v1"; +option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1"; +option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1"; + +// Table display options that can be reused. +message TableDisplayOptions { + // Optional. Columns to display in the table. Leave empty to display all available + // columns. Note: This field is for future features and is not currently used. + repeated string shown_columns = 1 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/monitoring/dashboard/v1/text.proto b/google/monitoring/dashboard/v1/text.proto index 2b1ddd3bb..ed75a19f2 100644 --- a/google/monitoring/dashboard/v1/text.proto +++ b/google/monitoring/dashboard/v1/text.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. diff --git a/google/monitoring/dashboard/v1/widget.proto b/google/monitoring/dashboard/v1/widget.proto index 8cf3c3f0c..bb50eec8e 100644 --- a/google/monitoring/dashboard/v1/widget.proto +++ b/google/monitoring/dashboard/v1/widget.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -18,7 +18,10 @@ package google.monitoring.dashboard.v1; import "google/api/field_behavior.proto"; import "google/monitoring/dashboard/v1/alertchart.proto"; +import "google/monitoring/dashboard/v1/collapsible_group.proto"; +import "google/monitoring/dashboard/v1/logs_panel.proto"; import "google/monitoring/dashboard/v1/scorecard.proto"; +import "google/monitoring/dashboard/v1/table.proto"; import "google/monitoring/dashboard/v1/text.proto"; import "google/monitoring/dashboard/v1/xychart.proto"; import "google/protobuf/empty.proto"; @@ -53,5 +56,15 @@ message Widget { // A chart of alert policy data. AlertChart alert_chart = 7; + + // A widget that displays time series data in a tabular format. + TimeSeriesTable time_series_table = 8; + + // A widget that groups the other widgets. All widgets that are within + // the area spanned by the grouping widget are considered member widgets. + CollapsibleGroup collapsible_group = 9; + + // A widget that shows a stream of logs. + LogsPanel logs_panel = 10; } } diff --git a/google/monitoring/dashboard/v1/xychart.proto b/google/monitoring/dashboard/v1/xychart.proto index c29542c27..11a26a49c 100644 --- a/google/monitoring/dashboard/v1/xychart.proto +++ b/google/monitoring/dashboard/v1/xychart.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -59,6 +59,18 @@ message XyChart { HEATMAP = 4; } + // An axis identifier. + enum TargetAxis { + // The target axis was not specified. Defaults to Y1. + TARGET_AXIS_UNSPECIFIED = 0; + + // The y_axis (the right axis of chart). + Y1 = 1; + + // The y2_axis (the left axis of chart). + Y2 = 2; + } + // Required. Fields for querying time series data from the // Stackdriver metrics API. TimeSeriesQuery time_series_query = 1 [(google.api.field_behavior) = REQUIRED]; @@ -77,6 +89,9 @@ message XyChart { // `min_alignment_period` should be at least 10 minutes. It would not // make sense to fetch and align data at one minute intervals. google.protobuf.Duration min_alignment_period = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The target axis to use for plotting the metric. + TargetAxis target_axis = 5 [(google.api.field_behavior) = OPTIONAL]; } // A chart axis. @@ -119,6 +134,9 @@ message XyChart { // The properties applied to the Y axis. Axis y_axis = 7; + // The properties applied to the Y2 axis. + Axis y2_axis = 9; + // Display options for the chart. ChartOptions chart_options = 8; } diff --git a/google/monitoring/metricsscope/v1/BUILD.bazel b/google/monitoring/metricsscope/v1/BUILD.bazel index b10d19137..d9d4dc9c3 100644 --- a/google/monitoring/metricsscope/v1/BUILD.bazel +++ b/google/monitoring/metricsscope/v1/BUILD.bazel @@ -161,6 +161,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -172,6 +173,17 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "ware-house-package-name=google-cloud-monitoring-metrics-scopes", ], + transport = "grpc", +) + +py_test( + name = "metricsscope_py_gapic_test", + srcs = [ + "metricsscope_py_gapic_pytest.py", + "metricsscope_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":metricsscope_py_gapic"], ) # Open Source Packages @@ -331,6 +343,7 @@ csharp_gapic_library( srcs = [":metricsscope_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "metricsscopes_grpc_service_config.json", + service_yaml = "monitoring.yaml", deps = [ ":metricsscope_csharp_grpc", ":metricsscope_csharp_proto", diff --git a/google/monitoring/v3/BUILD.bazel b/google/monitoring/v3/BUILD.bazel index bbad59ae2..79737b732 100644 --- a/google/monitoring/v3/BUILD.bazel +++ b/google/monitoring/v3/BUILD.bazel @@ -212,8 +212,20 @@ py_gapic_library( srcs = [":monitoring_proto"], grpc_service_config = "monitoring_grpc_service_config.json", opt_args = ["python-gapic-namespace=google.cloud"], + 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"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "monitoring-v3-py", @@ -372,6 +384,7 @@ csharp_gapic_library( srcs = [":monitoring_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "monitoring_grpc_service_config.json", + service_yaml = "monitoring.yaml", deps = [ ":monitoring_csharp_grpc", ":monitoring_csharp_proto", diff --git a/google/monitoring/v3/alert.proto b/google/monitoring/v3/alert.proto index b63b318a2..10256483c 100644 --- a/google/monitoring/v3/alert.proto +++ b/google/monitoring/v3/alert.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -51,7 +51,8 @@ message AlertPolicy { // The text 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 - // smaller. + // smaller. This text can be [templatized by using + // variables](https://cloud.google.com/monitoring/alerts/doc-variables). string content = 1; // The format of the `content` field. Presently, only the value @@ -87,6 +88,26 @@ message AlertPolicy { } } + // A condition control that determines how metric-threshold conditions + // are evaluated when data stops arriving. + // This control doesn't affect metric-absence policies. + enum EvaluationMissingData { + // An unspecified evaluation missing data option. Equivalent to + // EVALUATION_MISSING_DATA_NO_OP. + EVALUATION_MISSING_DATA_UNSPECIFIED = 0; + + // If there is no data to evaluate the condition, then evaluate the + // condition as false. + EVALUATION_MISSING_DATA_INACTIVE = 1; + + // If there is no data to evaluate the condition, then evaluate the + // condition as true. + EVALUATION_MISSING_DATA_ACTIVE = 2; + + // Do not evaluate the condition to any value if there is no data. + EVALUATION_MISSING_DATA_NO_OP = 3; + } + // A condition type that compares a collection of time series // against a threshold. message MetricThreshold { @@ -168,6 +189,10 @@ message AlertPolicy { // or by the ratio, if `denominator_filter` and `denominator_aggregations` // are specified. Trigger trigger = 7; + + // A condition control that determines how metric-threshold conditions + // are evaluated when data stops arriving. + EvaluationMissingData evaluation_missing_data = 11; } // A condition type that checks that monitored resources @@ -267,6 +292,10 @@ message AlertPolicy { // or by the ratio, if `denominator_filter` and `denominator_aggregations` // are specified. Trigger trigger = 3; + + // A condition control that determines how metric-threshold conditions + // are evaluated when data stops arriving. + EvaluationMissingData evaluation_missing_data = 4; } // Required if the condition exists. The unique resource name for this @@ -274,13 +303,13 @@ message AlertPolicy { // // projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID] // - // `[CONDITION_ID]` is assigned by Stackdriver Monitoring when the + // `[CONDITION_ID]` is assigned by Cloud Monitoring when the // condition is created as part of a new or updated alerting policy. // // When calling the // [alertPolicies.create][google.monitoring.v3.AlertPolicyService.CreateAlertPolicy] // method, do not include the `name` field in the conditions of the - // requested alerting policy. Stackdriver Monitoring creates the + // requested alerting policy. Cloud Monitoring creates the // condition identifiers and includes them in the new policy. // // When calling the @@ -320,26 +349,6 @@ message AlertPolicy { } } - // Control over how the notification channels in `notification_channels` - // are notified when this alert fires. - message AlertStrategy { - // Control over the rate of notifications sent to this alert policy's - // notification channels. - message NotificationRateLimit { - // Not more than one notification per `period`. - google.protobuf.Duration period = 1; - } - - // Required for alert policies with a `LogMatch` condition. - // - // This limit is not implemented for alert policies that are not log-based. - NotificationRateLimit notification_rate_limit = 1; - - // If an alert policy that was active has no data for this long, any open - // incidents will close - google.protobuf.Duration auto_close = 3; - } - // Operators for combining conditions. enum ConditionCombinerType { // An unspecified combiner. @@ -361,12 +370,32 @@ message AlertPolicy { AND_WITH_MATCHING_RESOURCE = 3; } + // Control over how the notification channels in `notification_channels` + // are notified when this alert fires. + message AlertStrategy { + // Control over the rate of notifications sent to this alert policy's + // notification channels. + message NotificationRateLimit { + // Not more than one notification per `period`. + google.protobuf.Duration period = 1; + } + + // Required for alert policies with a `LogMatch` condition. + // + // This limit is not implemented for alert policies that are not log-based. + NotificationRateLimit notification_rate_limit = 1; + + // If an alert policy that was active has no data for this long, any open + // incidents will close + google.protobuf.Duration auto_close = 3; + } + // Required if the policy exists. The resource name for this policy. The // format is: // // projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] // - // `[ALERT_POLICY_ID]` is assigned by Stackdriver Monitoring when the policy + // `[ALERT_POLICY_ID]` is assigned by Cloud Monitoring when the policy // is created. When calling the // [alertPolicies.create][google.monitoring.v3.AlertPolicyService.CreateAlertPolicy] // method, do not include the `name` field in the alerting policy passed as diff --git a/google/monitoring/v3/alert_service.proto b/google/monitoring/v3/alert_service.proto index 3d229e503..dd82f658d 100644 --- a/google/monitoring/v3/alert_service.proto +++ b/google/monitoring/v3/alert_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -33,14 +33,14 @@ option php_namespace = "Google\\Cloud\\Monitoring\\V3"; option ruby_package = "Google::Cloud::Monitoring::V3"; // The AlertPolicyService API is used to manage (list, create, delete, -// edit) alert policies in Stackdriver Monitoring. An alerting policy is +// edit) alert policies in Cloud Monitoring. An alerting policy is // a description of the conditions under which some aspect of your // system is considered to be "unhealthy" and the ways to notify // people or services about this state. In addition to using this API, alert // policies can also be managed through -// [Stackdriver Monitoring](https://cloud.google.com/monitoring/docs/), +// [Cloud Monitoring](https://cloud.google.com/monitoring/docs/), // which can be reached by clicking the "Monitoring" tab in -// [Cloud Console](https://console.cloud.google.com/). +// [Cloud console](https://console.cloud.google.com/). service AlertPolicyService { option (google.api.default_host) = "monitoring.googleapis.com"; option (google.api.oauth_scopes) = @@ -103,7 +103,7 @@ message CreateAlertPolicyRequest { // // Note that this field names the parent container in which the alerting // policy will be written, not the name of the created policy. |name| must be - // a host project of a workspace, otherwise INVALID_ARGUMENT error will + // a host project of a Metrics Scope, otherwise INVALID_ARGUMENT error will // return. The alerting policy that is returned will have a name that contains // a normalized representation of this name as a prefix but adds a suffix of // the form `/alertPolicies/[ALERT_POLICY_ID]`, identifying the policy in the diff --git a/google/monitoring/v3/metric.proto b/google/monitoring/v3/metric.proto index 23bdb0741..e09e579e3 100644 --- a/google/monitoring/v3/metric.proto +++ b/google/monitoring/v3/metric.proto @@ -16,12 +16,10 @@ syntax = "proto3"; package google.monitoring.v3; -import "google/api/distribution.proto"; import "google/api/label.proto"; import "google/api/metric.proto"; import "google/api/monitored_resource.proto"; import "google/monitoring/v3/common.proto"; -import "google/protobuf/duration.proto"; option csharp_namespace = "Google.Cloud.Monitoring.V3"; option go_package = "google.golang.org/genproto/googleapis/monitoring/v3;monitoring"; diff --git a/google/monitoring/v3/metric_service.proto b/google/monitoring/v3/metric_service.proto index ca3a24939..5dd11d3e8 100644 --- a/google/monitoring/v3/metric_service.proto +++ b/google/monitoring/v3/metric_service.proto @@ -22,10 +22,8 @@ import "google/api/field_behavior.proto"; import "google/api/metric.proto"; import "google/api/monitored_resource.proto"; import "google/api/resource.proto"; -import "google/monitoring/v3/alert.proto"; import "google/monitoring/v3/common.proto"; import "google/monitoring/v3/metric.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/rpc/status.proto"; diff --git a/google/monitoring/v3/notification_service.proto b/google/monitoring/v3/notification_service.proto index bf0652ed9..986092720 100644 --- a/google/monitoring/v3/notification_service.proto +++ b/google/monitoring/v3/notification_service.proto @@ -23,7 +23,6 @@ import "google/api/resource.proto"; import "google/monitoring/v3/notification.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.Monitoring.V3"; diff --git a/google/monitoring/v3/query_service.proto b/google/monitoring/v3/query_service.proto index 80bb41263..eae40ff6b 100644 --- a/google/monitoring/v3/query_service.proto +++ b/google/monitoring/v3/query_service.proto @@ -17,8 +17,6 @@ syntax = "proto3"; package google.monitoring.v3; import "google/api/annotations.proto"; -import "google/api/label.proto"; -import "google/monitoring/v3/metric.proto"; import "google/monitoring/v3/metric_service.proto"; import "google/api/client.proto"; diff --git a/google/monitoring/v3/service.proto b/google/monitoring/v3/service.proto index 0e61d3def..dd00f50f5 100644 --- a/google/monitoring/v3/service.proto +++ b/google/monitoring/v3/service.proto @@ -16,10 +16,8 @@ syntax = "proto3"; package google.monitoring.v3; -import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; -import "google/protobuf/timestamp.proto"; import "google/type/calendar_period.proto"; option csharp_namespace = "Google.Cloud.Monitoring.V3"; diff --git a/google/monitoring/v3/uptime_service.proto b/google/monitoring/v3/uptime_service.proto index df68e0ef9..6e5d99a9c 100644 --- a/google/monitoring/v3/uptime_service.proto +++ b/google/monitoring/v3/uptime_service.proto @@ -20,9 +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/longrunning/operations.proto"; import "google/monitoring/v3/uptime.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -51,7 +49,8 @@ service UptimeCheckService { // Lists the existing valid Uptime check configurations for the project // (leaving out any invalid configurations). - rpc ListUptimeCheckConfigs(ListUptimeCheckConfigsRequest) returns (ListUptimeCheckConfigsResponse) { + rpc ListUptimeCheckConfigs(ListUptimeCheckConfigsRequest) + returns (ListUptimeCheckConfigsResponse) { option (google.api.http) = { get: "/v3/{parent=projects/*}/uptimeCheckConfigs" }; @@ -59,7 +58,8 @@ service UptimeCheckService { } // Gets a single Uptime check configuration. - rpc GetUptimeCheckConfig(GetUptimeCheckConfigRequest) returns (UptimeCheckConfig) { + rpc GetUptimeCheckConfig(GetUptimeCheckConfigRequest) + returns (UptimeCheckConfig) { option (google.api.http) = { get: "/v3/{name=projects/*/uptimeCheckConfigs/*}" }; @@ -67,7 +67,8 @@ service UptimeCheckService { } // Creates a new Uptime check configuration. - rpc CreateUptimeCheckConfig(CreateUptimeCheckConfigRequest) returns (UptimeCheckConfig) { + rpc CreateUptimeCheckConfig(CreateUptimeCheckConfigRequest) + returns (UptimeCheckConfig) { option (google.api.http) = { post: "/v3/{parent=projects/*}/uptimeCheckConfigs" body: "uptime_check_config" @@ -79,7 +80,8 @@ service UptimeCheckService { // configuration with a new one or replace only certain fields in the current // configuration by specifying the fields to be updated via `updateMask`. // Returns the updated configuration. - rpc UpdateUptimeCheckConfig(UpdateUptimeCheckConfigRequest) returns (UptimeCheckConfig) { + rpc UpdateUptimeCheckConfig(UpdateUptimeCheckConfigRequest) + returns (UptimeCheckConfig) { option (google.api.http) = { patch: "/v3/{uptime_check_config.name=projects/*/uptimeCheckConfigs/*}" body: "uptime_check_config" @@ -90,7 +92,8 @@ service UptimeCheckService { // Deletes an Uptime check configuration. Note that this method will fail // if the Uptime check configuration is referenced by an alert policy or // other dependent configs that would be rendered invalid by the deletion. - rpc DeleteUptimeCheckConfig(DeleteUptimeCheckConfigRequest) returns (google.protobuf.Empty) { + rpc DeleteUptimeCheckConfig(DeleteUptimeCheckConfigRequest) + returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v3/{name=projects/*/uptimeCheckConfigs/*}" }; @@ -98,7 +101,8 @@ service UptimeCheckService { } // Returns the list of IP addresses that checkers run from - rpc ListUptimeCheckIps(ListUptimeCheckIpsRequest) returns (ListUptimeCheckIpsResponse) { + rpc ListUptimeCheckIps(ListUptimeCheckIpsRequest) + returns (ListUptimeCheckIpsResponse) { option (google.api.http) = { get: "/v3/uptimeCheckIps" }; @@ -107,8 +111,9 @@ service UptimeCheckService { // The protocol for the `ListUptimeCheckConfigs` request. message ListUptimeCheckConfigsRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) - // whose Uptime check configurations are listed. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) whose + // Uptime check configurations are listed. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string parent = 1 [ @@ -162,8 +167,9 @@ message GetUptimeCheckConfigRequest { // The protocol for the `CreateUptimeCheckConfig` request. message CreateUptimeCheckConfigRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) in - // which to create the Uptime check. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) in which + // to create the Uptime check. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string parent = 1 [ @@ -174,7 +180,8 @@ message CreateUptimeCheckConfigRequest { ]; // Required. The new Uptime check configuration. - UptimeCheckConfig uptime_check_config = 2 [(google.api.field_behavior) = REQUIRED]; + UptimeCheckConfig uptime_check_config = 2 + [(google.api.field_behavior) = REQUIRED]; } // The protocol for the `UpdateUptimeCheckConfig` request. @@ -196,7 +203,8 @@ message UpdateUptimeCheckConfigRequest { // The following fields can be updated: `display_name`, // `http_check`, `tcp_check`, `timeout`, `content_matchers`, and // `selected_regions`. - UptimeCheckConfig uptime_check_config = 3 [(google.api.field_behavior) = REQUIRED]; + UptimeCheckConfig uptime_check_config = 3 + [(google.api.field_behavior) = REQUIRED]; } // The protocol for the `DeleteUptimeCheckConfig` request. diff --git a/google/partner/aistreams/v1alpha1/BUILD.bazel b/google/partner/aistreams/v1alpha1/BUILD.bazel index 28c2169d6..0f3e10c04 100644 --- a/google/partner/aistreams/v1alpha1/BUILD.bazel +++ b/google/partner/aistreams/v1alpha1/BUILD.bazel @@ -72,6 +72,7 @@ java_gapic_library( test_deps = [ ":aistreams_java_grpc", ], + transport = "grpc+rest", deps = [ ":aistreams_java_proto", ], @@ -80,6 +81,7 @@ java_gapic_library( java_gapic_test( name = "aistreams_java_gapic_test_suite", test_classes = [ + "com.google.partner.aistreams.v1alpha1.AIStreamsClientHttpJsonTest", "com.google.partner.aistreams.v1alpha1.AIStreamsClientTest", ], runtime_deps = [":aistreams_java_gapic_test"], @@ -88,6 +90,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-partner-aistreams-v1alpha1-java", + transport = "grpc+rest", deps = [ ":aistreams_java_gapic", ":aistreams_java_grpc", @@ -124,6 +127,7 @@ go_gapic_library( grpc_service_config = "aistreams_grpc_service_config.json", importpath = "cloud.google.com/go/partner/aistreams/apiv1alpha1;aistreams", service_yaml = "aistreams_v1alpha1.yaml", + transport = "grpc+rest", deps = [ ":aistreams_go_proto", "//google/longrunning:longrunning_go_proto", @@ -156,12 +160,24 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "aistreams_py_gapic", srcs = [":aistreams_proto"], grpc_service_config = "aistreams_grpc_service_config.json", + transport = "grpc", +) + +py_test( + name = "aistreams_py_gapic_test", + srcs = [ + "aistreams_py_gapic_pytest.py", + "aistreams_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":aistreams_py_gapic"], ) # Open Source Packages @@ -247,8 +263,8 @@ nodejs_gapic_assembly_pkg( ############################################################################## 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", ) @@ -266,7 +282,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "aistreams_ruby_gapic", - srcs = [":aistreams_proto_with_info",], + srcs = [":aistreams_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-aistreams-v1alpha1"], grpc_service_config = "aistreams_grpc_service_config.json", deps = [ @@ -312,6 +328,7 @@ csharp_gapic_library( srcs = [":aistreams_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "aistreams_grpc_service_config.json", + service_yaml = "aistreams_v1alpha1.yaml", deps = [ ":aistreams_csharp_grpc", ":aistreams_csharp_proto", diff --git a/google/privacy/dlp/v2/BUILD.bazel b/google/privacy/dlp/v2/BUILD.bazel index 5c0cfd88c..976df6629 100644 --- a/google/privacy/dlp/v2/BUILD.bazel +++ b/google/privacy/dlp/v2/BUILD.bazel @@ -70,6 +70,7 @@ java_gapic_library( test_deps = [ ":dlp_java_grpc", ], + transport = "grpc+rest", deps = [ ":dlp_java_proto", ], @@ -78,6 +79,7 @@ java_gapic_library( java_gapic_test( name = "dlp_java_gapic_test_suite", test_classes = [ + "com.google.cloud.dlp.v2.DlpServiceClientHttpJsonTest", "com.google.cloud.dlp.v2.DlpServiceClientTest", ], runtime_deps = [":dlp_java_gapic_test"], @@ -86,6 +88,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-privacy-dlp-v2-java", + transport = "grpc+rest", deps = [ ":dlp_java_gapic", ":dlp_java_grpc", @@ -125,6 +128,7 @@ go_gapic_library( grpc_service_config = "dlp_grpc_service_config.json", importpath = "cloud.google.com/go/dlp/apiv2;dlp", service_yaml = "dlp_v2.yaml", + transport = "grpc+rest", deps = [ ":dlp_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -155,6 +159,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -162,6 +167,17 @@ py_gapic_library( srcs = [":dlp_proto"], grpc_service_config = "dlp_grpc_service_config.json", opt_args = ["python-gapic-namespace=google.cloud"], + transport = "grpc", +) + +py_test( + name = "dlp_py_gapic_test", + srcs = [ + "dlp_py_gapic_pytest.py", + "dlp_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":dlp_py_gapic"], ) py_gapic_assembly_pkg( @@ -319,6 +335,7 @@ csharp_gapic_library( srcs = [":dlp_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "dlp_grpc_service_config.json", + service_yaml = "dlp_v2.yaml", deps = [ ":dlp_csharp_grpc", ":dlp_csharp_proto", diff --git a/google/privacy/dlp/v2/dlp.proto b/google/privacy/dlp/v2/dlp.proto index 26f5872e8..4dc3a3862 100644 --- a/google/privacy/dlp/v2/dlp.proto +++ b/google/privacy/dlp/v2/dlp.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.privacy.dlp.v2; +import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; @@ -28,7 +29,6 @@ import "google/rpc/status.proto"; import "google/type/date.proto"; import "google/type/dayofweek.proto"; import "google/type/timeofday.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.Dlp.V2"; option go_package = "google.golang.org/genproto/googleapis/privacy/dlp/v2;dlp"; @@ -133,7 +133,7 @@ service DlpService { }; } - // Returns a list of the sensitive information types that the DLP API + // Returns a list of the sensitive information types that DLP API // supports. See https://cloud.google.com/dlp/docs/infotypes-reference to // learn more. rpc ListInfoTypes(ListInfoTypesRequest) returns (ListInfoTypesResponse) { @@ -146,7 +146,7 @@ service DlpService { option (google.api.method_signature) = "parent"; } - // Creates an InspectTemplate for re-using frequently used configuration + // 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. rpc CreateInspectTemplate(CreateInspectTemplateRequest) returns (InspectTemplate) { @@ -245,7 +245,7 @@ service DlpService { option (google.api.method_signature) = "name"; } - // Creates a DeidentifyTemplate for re-using frequently used configuration + // 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. @@ -505,7 +505,7 @@ 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 cancelled if + // 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. @@ -660,7 +660,7 @@ service DlpService { } } -// List of exclude infoTypes. +// List of excluded infoTypes. message ExcludeInfoTypes { // InfoType list in ExclusionRule rule drops a finding when it overlaps or // contained within with a finding of an infoType from this list. For @@ -719,8 +719,14 @@ message InspectionRuleSet { // When used with redactContent only info_types and min_likelihood are currently // used. message InspectConfig { - // Configuration to control the number of findings returned. Cannot be set if - // de-identification is requested. + // Configuration to control the number of findings returned for inspection. + // This is not used for de-identification or data profiling. + // + // When redacting sensitive data from images, finding limits don't apply. They + // can cause unexpected or inconsistent results, where only some data is + // redacted. Don't include finding limits in + // [RedactImage][google.privacy.dlp.v2.DlpService.RedactImage] + // requests. Otherwise, Cloud DLP returns an error. message FindingLimits { // Max findings configuration per infoType, per content item or long // running DlpJob. @@ -769,21 +775,29 @@ message InspectConfig { Likelihood min_likelihood = 2; // Configuration to control the number of findings returned. + // This is not used for data profiling. + // + // When redacting sensitive data from images, finding limits don't apply. They + // can cause unexpected or inconsistent results, where only some data is + // redacted. Don't include finding limits in + // [RedactImage][google.privacy.dlp.v2.DlpService.RedactImage] + // requests. Otherwise, Cloud DLP returns an error. FindingLimits limits = 3; // When true, a contextual quote from the data that triggered a finding is - // included in the response; see Finding.quote. + // included in the response; see [Finding.quote][google.privacy.dlp.v2.Finding.quote]. + // This is not used for data profiling. bool include_quote = 4; // When true, excludes type information of the findings. + // This is not used for data profiling. bool exclude_info_types = 5; // CustomInfoTypes provided by the user. See // https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. repeated CustomInfoType custom_info_types = 6; - // List of options defining data content to scan. - // If empty, text, images, and other content will be included. + // Deprecated and unused. repeated ContentOption content_options = 8; // Set of rules to apply to the findings for this InspectConfig. @@ -825,6 +839,12 @@ message ByteContentItem { // pdf PDF = 8; + // pptx, pptm, potx, potm, pot + POWERPOINT_DOCUMENT = 9; + + // xlsx, xlsm, xltx, xltm + EXCEL_DOCUMENT = 10; + // avro AVRO = 11; @@ -998,7 +1018,7 @@ message ContentLocation { // * Datastore namespace: {namespace} // // Nested names could be absent if the embedded object has no string - // identifier (for an example an image contained within a document). + // identifier (for example, an image contained within a document). string container_name = 1; // Type of the container within the file with location of the finding. @@ -1016,14 +1036,14 @@ message ContentLocation { MetadataLocation metadata_location = 8; } - // Findings container modification timestamp, if applicable. - // For Google Cloud Storage contains last file modification timestamp. - // For BigQuery table contains last_modified_time property. - // For Datastore - not populated. + // Finding container modification timestamp, if applicable. For Cloud Storage, + // this field contains the last file modification timestamp. For a BigQuery + // table, this field contains the last_modified_time property. For Datastore, + // this field isn't populated. google.protobuf.Timestamp container_timestamp = 6; - // Findings container version, if available - // ("generation" for Google Cloud Storage). + // Finding container version, if available + // ("generation" for Cloud Storage). string container_version = 7; } @@ -1078,7 +1098,7 @@ message TableLocation { // Represents a container that may contain DLP findings. // Examples of a container include a file, table, or database record. message Container { - // Container type, for example BigQuery or Google Cloud Storage. + // Container type, for example BigQuery or Cloud Storage. string type = 1; // Project where the finding was found. @@ -1088,33 +1108,35 @@ message Container { // A string representation of the full container name. // Examples: // - BigQuery: 'Project:DataSetId.TableId' - // - Google Cloud Storage: 'gs://Bucket/folders/filename.txt' + // - Cloud Storage: 'gs://Bucket/folders/filename.txt' string full_path = 3; // The root of the container. // Examples: + // // - For BigQuery table `project_id:dataset_id.table_id`, the root is // `dataset_id` - // - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root + // - For Cloud Storage file `gs://bucket/folder/filename.txt`, the root // is `gs://bucket` string root_path = 4; // The rest of the path after the root. // Examples: + // // - For BigQuery table `project_id:dataset_id.table_id`, the relative path is // `table_id` - // - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative + // - For Cloud Storage file `gs://bucket/folder/filename.txt`, the relative // path is `folder/filename.txt` string relative_path = 5; - // Findings container modification timestamp, if applicable. - // For Google Cloud Storage contains last file modification timestamp. - // For BigQuery table contains last_modified_time property. - // For Datastore - not populated. + // Findings container modification timestamp, if applicable. For Cloud + // Storage, this field contains the last file modification timestamp. For a + // BigQuery table, this field contains the last_modified_time property. For + // Datastore, this field isn't populated. google.protobuf.Timestamp update_time = 6; // Findings container version, if available - // ("generation" for Google Cloud Storage). + // ("generation" for Cloud Storage). string version = 7; } @@ -1234,7 +1256,7 @@ message RedactImageResponse { InspectResult inspect_result = 3; } -// Request to de-identify a list of items. +// Request to de-identify a ContentItem. message DeidentifyContentRequest { // Parent resource name. // @@ -1359,7 +1381,7 @@ message ReidentifyContentRequest { string location_id = 7; } -// Results of re-identifying a item. +// Results of re-identifying an item. message ReidentifyContentResponse { // The re-identified item. ContentItem item = 1; @@ -1426,7 +1448,7 @@ message OutputStorageConfig { // `timestamp`. BASIC_COLUMNS = 1; - // Schema tailored to findings from scanning Google Cloud Storage. + // Schema tailored to findings from scanning Cloud Storage. GCS_COLUMNS = 2; // Schema tailored to findings from scanning Google Datastore. @@ -1444,8 +1466,8 @@ message OutputStorageConfig { // Store findings in an existing table or a new table in an existing // dataset. If table_id is not set a new one will be generated // for you with the following format: - // dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for - // generating the date details. + // dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used + // for generating the date details. // // For Inspect, each column in an existing output table must have the same // name, type, and mode of a field in the `Finding` object. @@ -1546,6 +1568,213 @@ message InfoTypeDescription { // Description of the infotype. Translated when language is provided in the // request. string description = 4; + + // A list of available versions for the infotype. + repeated VersionDescription versions = 9; + + // The category of the infoType. + repeated InfoTypeCategory categories = 10; +} + +// Classification of infoTypes to organize them according to geographic +// location, industry, and data type. +message InfoTypeCategory { + // Enum of the current locations. + // We might add more locations in the future. + enum LocationCategory { + // Unused location + LOCATION_UNSPECIFIED = 0; + + // The infoType is not issued by or tied to a specific region, but is used + // almost everywhere. + GLOBAL = 1; + + // The infoType is typically used in Argentina. + ARGENTINA = 2; + + // The infoType is typically used in Australia. + AUSTRALIA = 3; + + // The infoType is typically used in Belgium. + BELGIUM = 4; + + // The infoType is typically used in Brazil. + BRAZIL = 5; + + // The infoType is typically used in Canada. + CANADA = 6; + + // The infoType is typically used in Chile. + CHILE = 7; + + // The infoType is typically used in China. + CHINA = 8; + + // The infoType is typically used in Colombia. + COLOMBIA = 9; + + // The infoType is typically used in Denmark. + DENMARK = 10; + + // The infoType is typically used in France. + FRANCE = 11; + + // The infoType is typically used in Finland. + FINLAND = 12; + + // The infoType is typically used in Germany. + GERMANY = 13; + + // The infoType is typically used in Hong Kong. + HONG_KONG = 14; + + // The infoType is typically used in India. + INDIA = 15; + + // The infoType is typically used in Indonesia. + INDONESIA = 16; + + // The infoType is typically used in Ireland. + IRELAND = 17; + + // The infoType is typically used in Israel. + ISRAEL = 18; + + // The infoType is typically used in Italy. + ITALY = 19; + + // The infoType is typically used in Japan. + JAPAN = 20; + + // The infoType is typically used in Korea. + KOREA = 21; + + // The infoType is typically used in Mexico. + MEXICO = 22; + + // The infoType is typically used in the Netherlands. + THE_NETHERLANDS = 23; + + // The infoType is typically used in Norway. + NORWAY = 24; + + // The infoType is typically used in Paraguay. + PARAGUAY = 25; + + // The infoType is typically used in Peru. + PERU = 26; + + // The infoType is typically used in Poland. + POLAND = 27; + + // The infoType is typically used in Portugal. + PORTUGAL = 28; + + // The infoType is typically used in Singapore. + SINGAPORE = 29; + + // The infoType is typically used in South Africa. + SOUTH_AFRICA = 30; + + // The infoType is typically used in Spain. + SPAIN = 31; + + // The infoType is typically used in Sweden. + SWEDEN = 32; + + // The infoType is typically used in Taiwan. + TAIWAN = 33; + + // The infoType is typically used in Thailand. + THAILAND = 34; + + // The infoType is typically used in Turkey. + TURKEY = 35; + + // The infoType is typically used in the United Kingdom. + UNITED_KINGDOM = 36; + + // The infoType is typically used in the United States. + UNITED_STATES = 37; + + // The infoType is typically used in Uruguay. + URUGUAY = 38; + + // The infoType is typically used in Venezuela. + VENEZUELA = 39; + + // The infoType is typically used in Google internally. + INTERNAL = 40; + } + + // Enum of the current industries in the category. + // We might add more industries in the future. + enum IndustryCategory { + // Unused industry + INDUSTRY_UNSPECIFIED = 0; + + // The infoType is typically used in the finance industry. + FINANCE = 1; + + // The infoType is typically used in the health industry. + HEALTH = 2; + + // The infoType is typically used in the telecommunications industry. + TELECOMMUNICATIONS = 3; + } + + // Enum of the current types in the category. + // We might add more types in the future. + enum TypeCategory { + // Unused type + TYPE_UNSPECIFIED = 0; + + // Personally identifiable information, for example, a + // name or phone number + PII = 1; + + // Personally identifiable information that is especially sensitive, for + // example, a passport number. + SPII = 2; + + // Attributes that can partially identify someone, especially in + // combination with other attributes, like age, height, and gender. + DEMOGRAPHIC = 3; + + // Confidential or secret information, for example, a password. + CREDENTIAL = 4; + + // An identification document issued by a government. + GOVERNMENT_ID = 5; + + // A document, for example, a resume or source code. + DOCUMENT = 6; + + // Information that is not sensitive on its own, but provides details about + // the circumstances surrounding an entity or an event. + CONTEXTUAL_INFORMATION = 7; + } + + oneof category { + // The region or country that issued the ID or document represented by the + // infoType. + LocationCategory location_category = 1; + + // The group of relevant businesses where this infoType is commonly used + IndustryCategory industry_category = 2; + + // The class of identifiers where this infoType belongs + TypeCategory type_category = 3; + } +} + +// Details about each available version for an infotype. +message VersionDescription { + // Name of the version + string version = 1; + + // Description of the version. + string description = 2; } // Request for the list of infoTypes. @@ -1999,10 +2228,10 @@ message AnalyzeDataSourceRiskDetails { repeated Value quasi_ids_values = 1; // The estimated probability that a given individual sharing these - // quasi-identifier values is in the dataset. This value, typically called - // δ, is the ratio between the number of records in the dataset with these - // quasi-identifier values, and the total number of individuals (inside - // *and* outside the dataset) with these quasi-identifier values. + // quasi-identifier values is in the dataset. This value, typically + // called δ, is the ratio between the number of records in the dataset + // with these quasi-identifier values, and the total number of individuals + // (inside *and* outside the dataset) with these quasi-identifier values. // For example, if there are 15 individuals in the dataset who share the // same quasi-identifier values, and an estimated 100 people in the entire // population with these values, then δ is 0.15. @@ -2172,6 +2401,9 @@ message DeidentifyConfig { // specific locations within structured datasets, such as transforming // a column within a table. RecordTransformations record_transformations = 2; + + // Treat the dataset as an image and redact. + ImageTransformations image_transformations = 4; } // Mode for handling transformation errors. If left unspecified, the default @@ -2179,6 +2411,49 @@ message DeidentifyConfig { TransformationErrorHandling transformation_error_handling = 3; } +// A type of transformation that is applied over images. +message ImageTransformations { + // Configuration for determining how redaction of images should occur. + message ImageTransformation { + // Apply transformation to the selected info_types. + message SelectedInfoTypes { + // Required. InfoTypes to apply the transformation to. Required. Provided InfoType + // must be unique within the ImageTransformations message. + repeated InfoType info_types = 5 [(google.api.field_behavior) = REQUIRED]; + } + + // Apply transformation to all findings. + message AllInfoTypes { + + } + + // Apply to all text. + message AllText { + + } + + oneof target { + // Apply transformation to the selected info_types. + SelectedInfoTypes selected_info_types = 4; + + // Apply transformation to all findings not specified in other + // ImageTransformation's selected_info_types. Only one instance is allowed + // within the ImageTransformations message. + AllInfoTypes all_info_types = 5; + + // Apply transformation to all text that doesn't match an infoType. Only + // one instance is allowed within the ImageTransformations message. + AllText all_text = 6; + } + + // The color to use when redacting content from an image. If not + // specified, the default is black. + Color redaction_color = 3; + } + + repeated ImageTransformation transforms = 2; +} + // How to handle transformation errors during de-identification. A // transformation error occurs when the requested transformation is incompatible // with the data. For example, trying to de-identify an IP address using a @@ -2355,7 +2630,7 @@ message CryptoDeterministicConfig { // plaintext would be used as is for encryption. // // Note that case (1) is expected when an `InfoTypeTransformation` is - // applied to both structured and non-structured `ContentItem`s. + // applied to both structured and unstructured `ContentItem`s. FieldId context = 3; } @@ -2390,7 +2665,7 @@ message RedactConfig { // Characters to skip when doing deidentification of a value. These will be left // alone and skipped. message CharsToIgnore { - // Convenience enum for indication common characters to not transform. + // Convenience enum for indicating common characters to not transform. enum CommonCharsToIgnore { // Unused. COMMON_CHARS_TO_IGNORE_UNSPECIFIED = 0; @@ -2436,6 +2711,21 @@ message CharacterMaskConfig { // Number of characters to mask. If not set, all matching chars will be // masked. Skipped characters do not count towards this tally. + // + // If `number_to_mask` is negative, this denotes inverse masking. Cloud DLP + // masks all but a number of characters. + // For example, suppose you have the following values: + // + // - `masking_character` is `*` + // - `number_to_mask` is `-4` + // - `reverse_order` is `false` + // - `CharsToIgnore` includes `-` + // - Input string is `1234-5678-9012-3456` + // + // The resulting de-identified string is + // `****-****-****-3456`. Cloud DLP masks all but the last four characters. + // If `reverse_order` is `true`, all but the first four characters are masked + // as `1234-****-****-****`. int32 number_to_mask = 2; // Mask characters in reverse order. For example, if `masking_character` is @@ -2529,7 +2819,7 @@ message BucketingConfig { message CryptoReplaceFfxFpeConfig { // These are commonly used subsets of the alphabet that the FFX mode // natively supports. In the algorithm, the alphabet is selected using - // the "radix". Therefore each corresponds to particular radix. + // the "radix". Therefore each corresponds to a particular radix. enum FfxCommonNativeAlphabet { // Unused. FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED = 0; @@ -2562,7 +2852,7 @@ message CryptoReplaceFfxFpeConfig { // a default tweak will be used. // // Note that case (1) is expected when an `InfoTypeTransformation` is - // applied to both structured and non-structured `ContentItem`s. + // applied to both structured and unstructured `ContentItem`s. // Currently, the referenced field may be of value type integer or string. // // The tweak is constructed as a sequence of bytes in big endian byte order @@ -2818,7 +3108,7 @@ message RecordCondition { repeated Condition conditions = 1; } - // An expression, consisting or an operator and conditions. + // An expression, consisting of an operator and conditions. message Expressions { // Logical operators for conditional checks. enum LogicalOperator { @@ -2857,6 +3147,18 @@ message TransformationOverview { // Only one of 'transformation', 'field_transformation', or 'record_suppress' // will be set. message TransformationSummary { + // Possible outcomes of transformations. + enum TransformationResultCode { + // Unused + TRANSFORMATION_RESULT_CODE_UNSPECIFIED = 0; + + // Transformation completed without an error. + SUCCESS = 1; + + // Transformation had an error. + ERROR = 2; + } + // A collection that informs the user the number of times a particular // `TransformationResultCode` and error details occurred. message SummaryResult { @@ -2871,18 +3173,6 @@ message TransformationSummary { string details = 3; } - // Possible outcomes of transformations. - enum TransformationResultCode { - // Unused - TRANSFORMATION_RESULT_CODE_UNSPECIFIED = 0; - - // Transformation completed without an error. - SUCCESS = 1; - - // Transformation had an error. - ERROR = 2; - } - // Set if the transformation was limited to a specific InfoType. InfoType info_type = 1; @@ -2907,10 +3197,209 @@ message TransformationSummary { int64 transformed_bytes = 7; } +// A flattened description of a `PrimitiveTransformation` or +// `RecordSuppression`. +message TransformationDescription { + // The transformation type. + TransformationType type = 1; + + // A description of the transformation. This is empty for a + // RECORD_SUPPRESSION, or is the output of calling toString() on the + // `PrimitiveTransformation` protocol buffer message for any other type of + // transformation. + string description = 2; + + // A human-readable string representation of the `RecordCondition` + // corresponding to this transformation. Set if a `RecordCondition` was used + // to determine whether or not to apply this transformation. + // + // Examples: + // * (age_field > 85) + // * (age_field <= 18) + // * (zip_field exists) + // * (zip_field == 01234) && (city_field != "Springville") + // * (zip_field == 01234) && (age_field <= 18) && (city_field exists) + string condition = 3; + + // Set if the transformation was limited to a specific `InfoType`. + InfoType info_type = 4; +} + +// Details about a single transformation. This object contains a description of +// the transformation, information about whether the transformation was +// successfully applied, and the precise location where the transformation +// occurred. These details are stored in a user-specified BigQuery table. +message TransformationDetails { + // The name of the job that completed the transformation. + string resource_name = 1; + + // The top level name of the container where the transformation is located + // (this will be the source file name or table name). + string container_name = 2; + + // Description of transformation. This would only contain more than one + // element if there were multiple matching transformations and which one to + // apply was ambiguous. Not set for states that contain no transformation, + // currently only state that contains no transformation is + // TransformationResultStateType.METADATA_UNRETRIEVABLE. + repeated TransformationDescription transformation = 3; + + // Status of the transformation, if transformation was not successful, this + // will specify what caused it to fail, otherwise it will show that the + // transformation was successful. + TransformationResultStatus status_details = 4; + + // The number of bytes that were transformed. If transformation was + // unsuccessful or did not take place because there was no content to + // transform, this will be zero. + int64 transformed_bytes = 5; + + // The precise location of the transformed content in the original container. + TransformationLocation transformation_location = 6; +} + +// Specifies the location of a transformation. +message TransformationLocation { + oneof location_type { + // For infotype transformations, link to the corresponding findings ID so + // that location information does not need to be duplicated. Each findings + // ID correlates to an entry in the findings output table, this table only + // gets created when users specify to save findings (add the save findings + // action to the request). + string finding_id = 1; + + // For record transformations, provide a field and container information. + RecordTransformation record_transformation = 2; + } + + // Information about the functionality of the container where this finding + // occurred, if available. + TransformationContainerType container_type = 3; +} + +message RecordTransformation { + // For record transformations, provide a field. + FieldId field_id = 1; + + // Findings container modification timestamp, if applicable. + google.protobuf.Timestamp container_timestamp = 2; + + // Container version, if available ("generation" for Cloud Storage). + string container_version = 3; +} + +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. + TransformationResultStatusType result_status_type = 1; + + // Detailed error codes and messages + google.rpc.Status details = 2; +} + +// Enum of possible outcomes of transformations. SUCCESS if transformation and +// storing of transformation was successful, otherwise, reason for not +// transforming. +enum TransformationResultStatusType { + STATE_TYPE_UNSPECIFIED = 0; + + // This will be set when a finding could not be transformed (i.e. outside user + // set bucket range). + INVALID_TRANSFORM = 1; + + // This will be set when a BigQuery transformation was successful but could + // not be stored back in BigQuery because the transformed row exceeds + // BigQuery's max row size. + BIGQUERY_MAX_ROW_SIZE_EXCEEDED = 2; + + // This will be set when there is a finding in the custom metadata of a file, + // but at the write time of the transformed file, this key / value pair is + // unretrievable. + METADATA_UNRETRIEVABLE = 3; + + // This will be set when the transformation and storing of it is successful. + SUCCESS = 4; +} + +// Describes functionality of a given container in its original format. +enum TransformationContainerType { + TRANSFORM_UNKNOWN_CONTAINER = 0; + + TRANSFORM_BODY = 1; + + TRANSFORM_METADATA = 2; + + TRANSFORM_TABLE = 3; +} + +// An enum of rules that can be used to transform a value. Can be a +// record suppression, or one of the transformation rules specified under +// `PrimitiveTransformation`. +enum TransformationType { + // Unused + TRANSFORMATION_TYPE_UNSPECIFIED = 0; + + // Record suppression + RECORD_SUPPRESSION = 1; + + // Replace value + REPLACE_VALUE = 2; + + // Replace value using a dictionary. + REPLACE_DICTIONARY = 15; + + // Redact + REDACT = 3; + + // Character mask + CHARACTER_MASK = 4; + + // FFX-FPE + CRYPTO_REPLACE_FFX_FPE = 5; + + // Fixed size bucketing + FIXED_SIZE_BUCKETING = 6; + + // Bucketing + BUCKETING = 7; + + // Replace with info type + REPLACE_WITH_INFO_TYPE = 8; + + // Time part + TIME_PART = 9; + + // Crypto hash + CRYPTO_HASH = 10; + + // Date shift + DATE_SHIFT = 12; + + // Deterministic crypto + CRYPTO_DETERMINISTIC_CONFIG = 13; + + // Redact image + REDACT_IMAGE = 14; +} + +// Config for storing transformation details. +message TransformationDetailsStorageConfig { + // Location to store the transformation summary. + oneof type { + // The BigQuery table in which to store the output. This may be an existing + // table or in a new table in an existing dataset. + // If table_id is not set a new one will be generated for you with the + // following format: + // dlp_googleapis_transformation_details_yyyy_mm_dd_[dlp_job_id]. Pacific + // time zone will be used for generating the date details. + BigQueryTable table = 1; + } +} + // Schedule for inspect job triggers. message Schedule { oneof option { - // With this option a job is started a regular periodic basis. For + // With this option a job is started on a regular periodic basis. For // example: every day (86400 seconds). // // A scheduled start time will be skipped if the previous @@ -3099,7 +3588,7 @@ message Action { OutputStorageConfig output_config = 1; } - // Publish a message into given Pub/Sub topic when DlpJob has completed. The + // 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). @@ -3117,31 +3606,88 @@ message Action { // This action is only available for projects which are parts of // an organization and whitelisted for the alpha Cloud Security Command // Center. - // The action will publish count of finding instances and their info types. - // The summary of findings will be persisted in CSCC and are governed by CSCC - // service-specific policy, see https://cloud.google.com/terms/service-terms - // Only a single instance of this action can be specified. - // Compatible with: Inspect + // The action will publish the count of finding instances and their info + // types. The summary of findings will be persisted in CSCC and are governed + // by CSCC service-specific policy, see + // https://cloud.google.com/terms/service-terms Only a single instance of this + // action can be specified. Compatible with: Inspect message PublishSummaryToCscc { } - // Publish findings of a DlpJob to Data Catalog. Labels summarizing the - // results of the DlpJob will be applied to the entry for the resource scanned - // in Data Catalog. Any labels previously written by another DlpJob will - // be deleted. InfoType naming patterns are strictly enforced when using this - // feature. Note that the findings will be persisted in Data Catalog - // storage and are governed by Data Catalog service-specific policy, see - // https://cloud.google.com/terms/service-terms - // Only a single instance of this action can be specified and only allowed if - // all resources being scanned are BigQuery tables. + // Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag + // templates are applied to the resource that Cloud DLP scanned. Data + // Catalog tag templates are stored in the same project and region where the + // BigQuery table exists. For Cloud DLP to create and apply the tag template, + // the Cloud DLP service agent must have the + // `roles/datacatalog.tagTemplateOwner` permission on the project. The tag + // template contains fields summarizing the results of the DlpJob. Any field + // values previously written by another DlpJob are deleted. [InfoType naming + // patterns][google.privacy.dlp.v2.InfoType] are strictly enforced when using + // this feature. + // + // Findings are persisted in Data Catalog storage and are governed by + // service-specific policies for Data Catalog. For more information, see + // [Service Specific Terms](https://cloud.google.com/terms/service-terms). + // + // Only a single instance of this action can be specified. This action is + // allowed only if all resources being scanned are BigQuery tables. // Compatible with: Inspect message PublishFindingsToCloudDataCatalog { } - // Enable email notification to project owners and editors on jobs's - // completion/failure. + // Create a de-identified copy of the requested table or files. + // + // A TransformationDetail will be created for each transformation. + // + // If any rows in BigQuery are skipped during de-identification + // (transformation errors or row size exceeds BigQuery insert API limits) they + // are placed in the failure output table. If the original row exceeds + // the BigQuery insert API limit it will be truncated when written to the + // failure output table. The failure output table can be set in the + // action.deidentify.output.big_query_output.deidentified_failure_output_table + // field, if no table is set, a table will be automatically created in the + // same project and dataset as the original table. + // + // Compatible with: Inspect + message Deidentify { + // User specified deidentify templates and configs for structured, + // unstructured, and image files. + TransformationConfig transformation_config = 7; + + // Config for storing transformation details. This is separate from the + // de-identified content, and contains metadata about the successful + // transformations and/or failures that occurred while de-identifying. This + // needs to be set in order for users to access information about the status + // of each transformation (see + // [TransformationDetails][google.privacy.dlp.v2.TransformationDetails] + // message for more information about what is noted). + TransformationDetailsStorageConfig transformation_details_storage_config = 3; + + oneof output { + // Required. User settable Cloud Storage bucket and folders to store 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. + // + // Form of: gs://bucket/folder/ or gs://bucket + string cloud_storage_output = 9 [(google.api.field_behavior) = REQUIRED]; + } + + // List of user-specified file type groups to transform. If specified, only + // the files with these filetypes 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. + repeated FileType file_types_to_transform = 8; + } + + // Sends an email when the job completes. The email goes to IAM project owners + // and technical [Essential + // Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts). message JobNotificationEmails { } @@ -3158,7 +3704,7 @@ message Action { // Save resulting findings in a provided location. SaveFindings save_findings = 1; - // Publish a notification to a pubsub topic. + // Publish a notification to a Pub/Sub topic. PublishToPubSub pub_sub = 2; // Publish summary to Cloud Security Command Center (Alpha). @@ -3167,6 +3713,9 @@ message Action { // Publish findings to Cloud Datahub. PublishFindingsToCloudDataCatalog publish_findings_to_cloud_data_catalog = 5; + // Create a de-identified copy of the input data. + Deidentify deidentify = 7; + // Enable email notification for project owners and editors on job's // completion/failure. JobNotificationEmails job_notification_emails = 8; @@ -3176,6 +3725,34 @@ message Action { } } +// User specified templates and configs for how to deidentify structured, +// unstructures, and image files. User must provide either a unstructured +// deidentify template or at least one redact image config. +message TransformationConfig { + // De-identify template. + // If this template is specified, it will serve as the default de-identify + // template. This template cannot contain `record_transformations` since it + // can be used for unstructured content such as free-form text files. If this + // template is not set, a default `ReplaceWithInfoTypeConfig` will be used to + // de-identify unstructured content. + string deidentify_template = 1; + + // Structured de-identify template. + // If this template is specified, it will serve as the de-identify template + // for structured content such as delimited files and tables. If this template + // is not set but the `deidentify_template` is set, then `deidentify_template` + // will also apply to the structured content. If neither template is set, a + // default `ReplaceWithInfoTypeConfig` will be used to de-identify structured + // content. + string structured_deidentify_template = 2; + + // Image redact template. + // If this template is specified, it will serve as the de-identify template + // for images. If this template is not set, all findings in the image will be + // redacted with a black box. + string image_redact_template = 4; +} + // Request message for CreateInspectTemplate. message CreateInspectTemplateRequest { // Required. Parent resource name. @@ -3283,7 +3860,7 @@ message ListInspectTemplatesRequest { // to `ListInspectTemplates`. string page_token = 2; - // Size of the page, can be limited by server. If zero server returns + // Size of the page, can be limited by the server. If zero server returns // a page of max size 100. int32 page_size = 3; @@ -3296,10 +3873,10 @@ message ListInspectTemplatesRequest { // // Supported fields are: // - // - `create_time`: corresponds to time the template was created. - // - `update_time`: corresponds to time the template was last updated. - // - `name`: corresponds to template's name. - // - `display_name`: corresponds to template's display name. + // - `create_time`: corresponds to the time the template was created. + // - `update_time`: corresponds to the time the template was last updated. + // - `name`: corresponds to the template's name. + // - `display_name`: corresponds to the template's display name. string order_by = 4; // Deprecated. This field has no effect. @@ -3498,11 +4075,11 @@ message ListJobTriggersRequest { // // Supported fields are: // - // - `create_time`: corresponds to time the JobTrigger was created. - // - `update_time`: corresponds to time the JobTrigger was last updated. + // - `create_time`: corresponds to the time the JobTrigger was created. + // - `update_time`: corresponds to the time the JobTrigger was last updated. // - `last_run_time`: corresponds to the last time the JobTrigger ran. - // - `name`: corresponds to JobTrigger's name. - // - `display_name`: corresponds to JobTrigger's display name. + // - `name`: corresponds to the JobTrigger's name. + // - `display_name`: corresponds to the JobTrigger's display name. // - `status`: corresponds to JobTrigger's status. string order_by = 4; @@ -3578,6 +4155,134 @@ message InspectJobConfig { repeated Action actions = 4; } +// A task to execute when a data profile has been generated. +message DataProfileAction { + // If set, the detailed data profiles will be persisted to the location + // 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. + BigQueryTable profile_table = 1; + } + + // Send a Pub/Sub message into the given Pub/Sub topic to connect other + // systems to data profile generation. The message payload data will + // be the byte serialization of `DataProfilePubSubMessage`. + message PubSubNotification { + // The levels of detail that can be included in the Pub/Sub message. + enum DetailLevel { + // Unused. + DETAIL_LEVEL_UNSPECIFIED = 0; + + // The full table data profile. + TABLE_PROFILE = 1; + + // The resource name of the table. + RESOURCE_NAME = 2; + } + + // Cloud Pub/Sub topic to send notifications to. + // Format is projects/{project}/topics/{topic}. + string topic = 1; + + // The type of event that triggers a Pub/Sub. At most one + // `PubSubNotification` per EventType is permitted. + EventType event = 2; + + // Conditions (e.g., data risk or sensitivity level) for triggering a + // Pub/Sub. + DataProfilePubSubCondition pubsub_condition = 3; + + // How much data to include in the Pub/Sub message. If the user wishes to + // limit the size of the message, they can use resource_name and fetch the + // profile fields they wish to. Per table profile (not per column). + DetailLevel detail_of_message = 4; + } + + // Types of event that can trigger an action. + enum EventType { + // Unused. + EVENT_TYPE_UNSPECIFIED = 0; + + // 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 + CHANGED_PROFILE = 2; + + // Table data risk score or sensitivity score increased. + SCORE_INCREASED = 3; + + // A user (non-internal) error occurred. + ERROR_CHANGED = 4; + } + + oneof action { + // Export data profiles into a provided location. + Export export_data = 1; + + // Publish a message into the Pub/Sub topic. + PubSubNotification pub_sub_notification = 2; + } +} + +// Configuration for setting up a job to scan resources for profile generation. +// Only one data profile configuration may exist per organization, folder, +// or project. +// +// The generated data profiles are retained according to the +// [data retention policy] +// (https://cloud.google.com/dlp/docs/data-profiles#retention). +message DataProfileJobConfig { + // The data to scan. + DataProfileLocation location = 1; + + // The project that will run the scan. The DLP service + // account that exists within this project must have access to all resources + // that are profiled, and the Cloud DLP API must be enabled. + string project_id = 5; + + // Detection logic for profile generation. + // + // Not all template features are used by profiles. FindingLimits, + // include_quote and exclude_info_types have no impact on + // data profiling. + // + // Multiple templates may be provided if there is data in multiple regions. + // At most one template must be specified per-region (including "global"). + // Each region is scanned using the applicable template. If no region-specific + // template is specified, but a "global" template is specified, it will be + // copied to that region and used instead. If no global or region-specific + // template is provided for a region with data, that region's data will not be + // scanned. + // + // For more information, see + // https://cloud.google.com/dlp/docs/data-profiles#data_residency. + repeated string inspect_templates = 7; + + // Actions to execute at the completion of the job. + repeated DataProfileAction data_profile_actions = 6; +} + +// The data that will be profiled. +message DataProfileLocation { + // 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; + } +} + // Combines all of the information about a DLP job. message DlpJob { option (google.api.resource) = { @@ -3601,7 +4306,7 @@ message DlpJob { // The job is no longer running. DONE = 3; - // The job was canceled before it could complete. + // The job was canceled before it could be completed. CANCELED = 4; // The job had an error and did not complete. @@ -3609,7 +4314,7 @@ message DlpJob { // The job is currently accepting findings via hybridInspect. // A hybrid job in ACTIVE state may continue to have findings added to it - // through calling of hybridInspect. After the job has finished no more + // 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; } @@ -3695,13 +4400,13 @@ message ListDlpJobsRequest { // * Supported fields/values for inspect jobs: // - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED // - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - // - `trigger_name` - The resource name of the trigger that created job. - // - 'end_time` - Corresponds to time the job finished. - // - 'start_time` - Corresponds to time the job finished. + // - `trigger_name` - The name of the trigger that created the job. + // - 'end_time` - Corresponds to the time the job finished. + // - 'start_time` - Corresponds to the time the job finished. // * Supported fields for risk analysis jobs: // - `state` - RUNNING|CANCELED|FINISHED|FAILED - // - 'end_time` - Corresponds to time the job finished. - // - 'start_time` - Corresponds to time the job finished. + // - 'end_time` - Corresponds to the time the job finished. + // - 'start_time` - Corresponds to the time the job finished. // * The operator must be `=` or `!=`. // // Examples: @@ -3732,9 +4437,9 @@ message ListDlpJobsRequest { // // Supported fields are: // - // - `create_time`: corresponds to time the job was created. - // - `end_time`: corresponds to time the job ended. - // - `name`: corresponds to job's name. + // - `create_time`: corresponds to the time the job was created. + // - `end_time`: corresponds to the time the job ended. + // - `name`: corresponds to the job's name. // - `state`: corresponds to `state` string order_by = 6; @@ -3891,7 +4596,7 @@ message ListDeidentifyTemplatesRequest { // to `ListDeidentifyTemplates`. string page_token = 2; - // Size of the page, can be limited by server. If zero server returns + // Size of the page, can be limited by the server. If zero server returns // a page of max size 100. int32 page_size = 3; @@ -3904,10 +4609,10 @@ message ListDeidentifyTemplatesRequest { // // Supported fields are: // - // - `create_time`: corresponds to time the template was created. - // - `update_time`: corresponds to time the template was last updated. - // - `name`: corresponds to template's name. - // - `display_name`: corresponds to template's display name. + // - `create_time`: corresponds to the time the template was created. + // - `update_time`: corresponds to the time the template was last updated. + // - `name`: corresponds to the template's name. + // - `display_name`: corresponds to the template's display name. string order_by = 4; // Deprecated. This field has no effect. @@ -3941,11 +4646,11 @@ 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 Google Cloud Storage +// dictionary creation are stored in the specified Cloud Storage // location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries // that satisfy the size requirements. message LargeCustomDictionaryConfig { - // Location to store dictionary artifacts in Google Cloud Storage. These files + // Location to store dictionary artifacts in Cloud Storage. These files // will only be accessible by project owners and the DLP API. If any of these // artifacts are modified, the dictionary is considered invalid and can no // longer be used. @@ -4018,7 +4723,7 @@ message StoredInfoTypeVersion { // appearing first. // // For example, some of the data for stored custom dictionaries is put in - // the user's Google Cloud Storage bucket, and if this data is modified or + // the user's Cloud Storage bucket, and if this data is modified or // deleted by the user or another system, the dictionary becomes invalid. // // If any errors occur, fix the problem indicated by the error message and @@ -4141,10 +4846,6 @@ message ListStoredInfoTypesRequest { // `projects/`PROJECT_ID`/locations/`LOCATION_ID // + Projects scope, no location specified (defaults to global):
// `projects/`PROJECT_ID - // + Organizations scope, location specified:
- // `organizations/`ORG_ID`/locations/`LOCATION_ID - // + Organizations scope, no location specified (defaults to global):
- // `organizations/`ORG_ID // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4162,7 +4863,7 @@ message ListStoredInfoTypesRequest { // to `ListStoredInfoTypes`. string page_token = 2; - // Size of the page, can be limited by server. If zero server returns + // Size of the page, can be limited by the server. If zero server returns // a page of max size 100. int32 page_size = 3; @@ -4175,7 +4876,7 @@ message ListStoredInfoTypesRequest { // // Supported fields are: // - // - `create_time`: corresponds to time the most recent version of the + // - `create_time`: corresponds to the time the most recent version of the // resource was created. // - `state`: corresponds to the state of the resource. // - `name`: corresponds to resource name. @@ -4352,7 +5053,7 @@ enum MatchingType { MATCHING_TYPE_INVERSE_MATCH = 3; } -// Options describing which parts of the provided content should be scanned. +// Deprecated and unused. enum ContentOption { // Includes entire content of a file or a data stream. CONTENT_UNSPECIFIED = 0; @@ -4417,3 +5118,255 @@ enum StoredInfoTypeState { // use the `UpdateStoredInfoType` method to create a new version. 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; + + // 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; + + // 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; +} + +// 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; + + // 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. + DataProfileJobConfig data_profile_job = 3; +} + +// The profile for a scanned table. +message TableDataProfile { + // 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. + string project_data_profile = 2; + + // The GCP project ID that owns the BigQuery dataset. + string dataset_project_id = 24; + + // The BigQuery 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. + string dataset_id = 25; + + // The BigQuery table ID. + string table_id = 26; + + // The resource name of the table. + // https://cloud.google.com/apis/design/resource_names#full_resource_name + string full_resource = 3; + + // Success or error status from the most recent profile generation attempt. + // May be empty if the profile is still being generated. + ProfileStatus profile_status = 21; + + // State of a profile. + State state = 22; + + // The sensitivity score of this table. + SensitivityScore sensitivity_score = 5; + + // The data risk level of this table. + DataRiskLevel data_risk_level = 6; + + // The infoTypes predicted from this table's data. + repeated InfoTypeSummary predicted_info_types = 27; + + // Other infoTypes found in this table's data. + repeated OtherInfoTypeSummary other_info_types = 28; + + // The snapshot of the configurations used to generate the profile. + DataProfileConfigSnapshot config_snapshot = 7; + + // The time when this table was last modified + google.protobuf.Timestamp last_modified_time = 8; + + // Optional. The time when this table expires. + google.protobuf.Timestamp expiration_time = 9; + + // The number of columns profiled in the table. + int64 scanned_column_count = 10; + + // The number of columns skipped in the table because of an error. + int64 failed_column_count = 11; + + // The size of the table when the profile was generated. + int64 table_size_bytes = 12; + + // Number of rows in the table when the profile was generated. + int64 row_count = 13; + + // How the table is encrypted. + EncryptionStatus encryption_status = 14; + + // How broadly a resource has been shared. + ResourceVisibility resource_visibility = 15; + + // The last time the profile was generated. + google.protobuf.Timestamp profile_last_generated = 16; + + // The labels applied to the resource at the time the profile was generated. + map resource_labels = 17; + + // The time at which the table was created. + google.protobuf.Timestamp create_time = 23; +} + +message ProfileStatus { + // Profiling status code and optional message + google.rpc.Status status = 1; + + // Time when the profile generation status was updated + google.protobuf.Timestamp timestamp = 3; +} + +// How a resource is encrypted. +enum EncryptionStatus { + // Unused. + ENCRYPTION_STATUS_UNSPECIFIED = 0; + + // Google manages server-side encryption keys on your behalf. + ENCRYPTION_GOOGLE_MANAGED = 1; + + // Customer provides the key. + ENCRYPTION_CUSTOMER_MANAGED = 2; +} + +// The infoType details for this column. +message InfoTypeSummary { + // The infoType. + InfoType info_type = 1; + + // Approximate percentage of non-null rows that contained data detected by + // this infotype. + int32 estimated_prevalence = 2; +} + +// Infotype details for other infoTypes found within a column. +message OtherInfoTypeSummary { + // The other infoType. + InfoType info_type = 1; + + // Approximate percentage of non-null rows that contained data detected by + // this infotype. + int32 estimated_prevalence = 2; +} + +// A condition for determining whether a Pub/Sub should be triggered. +message DataProfilePubSubCondition { + // Various score levels for resources. + enum ProfileScoreBucket { + // Unused. + PROFILE_SCORE_BUCKET_UNSPECIFIED = 0; + + // High risk/sensitivity detected. + HIGH = 1; + + // Medium or high risk/sensitivity detected. + MEDIUM_OR_HIGH = 2; + } + + // A condition consisting of a value. + message PubSubCondition { + // The value for the condition to trigger. + oneof value { + // The minimum data risk score that triggers the condition. + ProfileScoreBucket minimum_risk_score = 1; + + // The minimum sensitivity level that triggers the condition. + ProfileScoreBucket minimum_sensitivity_score = 2; + } + } + + // An expression, consisting of an operator and conditions. + message PubSubExpressions { + // Logical operators for conditional checks. + enum PubSubLogicalOperator { + // Unused. + LOGICAL_OPERATOR_UNSPECIFIED = 0; + + // Conditional OR. + OR = 1; + + // Conditional AND. + AND = 2; + } + + // The operator to apply to the collection of conditions. + PubSubLogicalOperator logical_operator = 1; + + // Conditions to apply to the expression. + repeated PubSubCondition conditions = 2; + } + + // An expression. + PubSubExpressions expressions = 1; +} + +// Pub/Sub topic message for a DataProfileAction.PubSubNotification event. +// To receive a message of protocol buffer schema type, convert the message data +// to an object of this proto class. +message DataProfilePubSubMessage { + // If `DetailLevel` is `TABLE_PROFILE` this will be fully populated. + // Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and + // `full_resource` will be populated. + TableDataProfile profile = 1; + + // The event that caused the Pub/Sub message to be sent. + DataProfileAction.EventType event = 2; +} diff --git a/google/privacy/dlp/v2/dlp_v2.yaml b/google/privacy/dlp/v2/dlp_v2.yaml index d737692c7..617a0e7ee 100644 --- a/google/privacy/dlp/v2/dlp_v2.yaml +++ b/google/privacy/dlp/v2/dlp_v2.yaml @@ -4,8 +4,13 @@ name: dlp.googleapis.com title: Cloud Data Loss Prevention (DLP) API apis: +- name: google.cloud.location.Locations - name: google.privacy.dlp.v2.DlpService +types: +- name: google.privacy.dlp.v2.DataProfilePubSubMessage +- name: google.privacy.dlp.v2.TransformationDetails + documentation: summary: |- Provides methods for detection, risk analysis, and de-identification of diff --git a/google/privacy/dlp/v2/storage.proto b/google/privacy/dlp/v2/storage.proto index a9011213f..7709f546b 100644 --- a/google/privacy/dlp/v2/storage.proto +++ b/google/privacy/dlp/v2/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.privacy.dlp.v2; -import "google/api/annotations.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; @@ -41,16 +40,30 @@ message InfoType { string version = 2; } -// A reference to a StoredInfoType to use with scanning. -message StoredType { - // Resource name of the requested `StoredInfoType`, for example - // `organizations/433245324/storedInfoTypes/432452342` or - // `projects/project-id/storedInfoTypes/432452342`. - string name = 1; +// Score is a summary of all elements in the data profile. +// A higher number means more sensitive. +message SensitivityScore { + // Various score levels for resources. + enum SensitivityScoreLevel { + // Unused. + SENSITIVITY_SCORE_UNSPECIFIED = 0; + + // No sensitive information detected. Limited access. + SENSITIVITY_LOW = 10; + + // Medium risk - PII, potentially sensitive data, or fields with free-text + // data that are at higher risk of having intermittent sensitive data. + // Consider limiting access. + SENSITIVITY_MODERATE = 20; + + // High risk – SPII may be present. Exfiltration of data may lead to user + // data loss. Re-identification of users may be possible. Consider limiting + // usage and or removing SPII. + SENSITIVITY_HIGH = 30; + } - // Timestamp indicating when the version of the `StoredInfoType` used for - // inspection was created. Output-only field, populated by the system. - google.protobuf.Timestamp create_time = 2; + // The score applied to the resource. + SensitivityScoreLevel score = 1; } // Categorization of results based on how likely they are to represent a match, @@ -73,6 +86,18 @@ enum Likelihood { VERY_LIKELY = 5; } +// A reference to a StoredInfoType to use with scanning. +message StoredType { + // Resource name of the requested `StoredInfoType`, for example + // `organizations/433245324/storedInfoTypes/432452342` or + // `projects/project-id/storedInfoTypes/432452342`. + string name = 1; + + // Timestamp indicating when the version of the `StoredInfoType` used for + // inspection was created. Output-only field, populated by the system. + google.protobuf.Timestamp create_time = 2; +} + // Custom information type provided by the user. Used to find domain-specific // sensitive information configurable to the data in question. message CustomInfoType { @@ -85,7 +110,7 @@ message CustomInfoType { // Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane) // will be replaced with whitespace when scanning for matches, so the // dictionary phrase "Sam Johnson" will match all three phrases "sam johnson", - // Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane) + // "Sam, Johnson", and "Sam (Johnson)". Additionally, the characters // surrounding any match must be of a different type than the adjacent // characters within the word, so letters must be next to non-letters and // digits next to non-digits. For example, the dictionary word "jen" will @@ -98,7 +123,7 @@ message CustomInfoType { // [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 - // [limits](https://cloud.google.com/dlp/limits) page contains details about + // `StoredInfoType` API. message Dictionary { // Message defining a list of words or phrases to search for in the data. message WordList { @@ -124,7 +149,7 @@ message CustomInfoType { // (https://github.com/google/re2/wiki/Syntax) can be found under the // google/re2 repository on GitHub. string pattern = 1; - // (https://github.com/google/re2/wiki/Syntax) can be found under the + // The index of the submatch to extract as findings. When not // specified, the entire match is returned. No more than 3 may be included. repeated int32 group_indexes = 2; @@ -135,10 +160,12 @@ message CustomInfoType { // [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). // These types of transformations are // those that perform pseudonymization, thereby producing a "surrogate" as - // [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). + // output. This should be used in conjunction with a field on the // transformation such as `surrogate_info_type`. This CustomInfoType does // not support the use of `detection_rules`. - message SurrogateType {} + message SurrogateType { + + } // Deprecated; use `InspectionRuleSet` instead. Rule for modifying a // `CustomInfoType` to alter behavior under certain circumstances, depending @@ -148,7 +175,11 @@ message CustomInfoType { // Message for specifying a window around a finding to apply a detection // rule. message Proximity { - // Number of characters before the finding to consider. + // Number of characters before the finding to consider. For tabular data, + // 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). int32 window_before = 1; // Number of characters after the finding to consider. @@ -180,14 +211,19 @@ message CustomInfoType { // Regular expression pattern defining what qualifies as a hotword. Regex hotword_regex = 1; - // Proximity of the finding within which the entire hotword must reside. - // The total length of the window cannot exceed 1000 characters. Note that - // the finding itself will be included in the window, so that hotwords may - // be used to match substrings of the finding itself. For example, the - // certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be - // adjusted upwards if the area code is known to be the local area code of - // a company office using the hotword regex "\(xxx\)", where "xxx" - // is the area code in question. + // Range of characters within which the entire hotword must reside. + // The total length of the window cannot exceed 1000 characters. + // The finding itself will be included in the window, so that hotwords can + // be used to match substrings of the finding itself. Suppose you + // want Cloud DLP to promote the likelihood of the phone number + // regex "\(\d{3}\) \d{3}-\d{4}" if the area code is known to be the + // area code of a company's office. In this case, use the hotword regex + // "\(xxx\)", where "xxx" is the area code in question. + // + // 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). Proximity proximity = 2; // Likelihood adjustment to apply to all matching findings. @@ -284,6 +320,67 @@ message DatastoreOptions { KindExpression kind = 2; } +// Definitions of file type groups to scan. New types will be added to this +// list. +enum FileType { + // Includes all files. + FILE_TYPE_UNSPECIFIED = 0; + + // Includes all file extensions not covered by another entry. Binary + // scanning attempts to convert the content of the file to utf_8 to scan + // the file. + // If you wish to avoid this fall back, specify one or more of the other + // FileType's in your storage scan. + BINARY_FILE = 1; + + // Included file extensions: + // asc,asp, aspx, brf, c, cc,cfm, cgi, cpp, csv, cxx, c++, cs, css, dart, + // 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. + TEXT_FILE = 2; + + // Included file extensions: + // bmp, gif, jpg, jpeg, jpe, png. + // bytes_limit_per_file has no effect on image files. + // Image inspection is restricted to 'global', 'us', 'asia', and 'europe'. + IMAGE = 3; + + // Word files >30 MB will be scanned as binary files. + // Included file extensions: + // docx, dotx, docm, dotm + WORD = 5; + + // PDF files >30 MB will be scanned as binary files. + // Included file extensions: + // pdf + PDF = 6; + + // Included file extensions: + // avro + AVRO = 7; + + // Included file extensions: + // csv + CSV = 8; + + // Included file extensions: + // tsv + TSV = 9; + + // Powerpoint files >30 MB will be scanned as binary files. + // Included file extensions: + // pptx, pptm, potx, potm, pot + POWERPOINT = 11; + + // Excel files >30 MB will be scanned as binary files. + // Included file extensions: + // xlsx, xlsm, xltx, xltm + EXCEL = 12; +} + // Message representing a set of files in a Cloud Storage bucket. Regular // expressions are used to allow fine-grained control over which files in the // bucket to include. @@ -330,7 +427,7 @@ message CloudStorageRegexFileSet { // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found // under the google/re2 repository on GitHub. repeated string include_regex = 2; - // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found + // A list of regular expressions matching file paths to exclude. All files in // the bucket that match at least one of these regular expressions will be // excluded from the scan. @@ -339,10 +436,9 @@ message CloudStorageRegexFileSet { // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found // under the google/re2 repository on GitHub. repeated string exclude_regex = 3; - // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found } -// Options defining a file or a set of files within a Google Cloud Storage +// Options defining a file or a set of files within a Cloud Storage // bucket. message CloudStorageOptions { // Set of files to scan. @@ -478,7 +574,7 @@ message BigQueryOptions { // Shared message indicating Cloud storage type. message StorageConfig { // Configuration of the timespan of the items to include in scanning. - // Currently only supported when inspecting Google Cloud Storage and BigQuery. + // Currently only supported when inspecting Cloud Storage and BigQuery. message TimespanConfig { // Exclude files, tables, or rows older than this value. // If not set, no lower time limit is applied. @@ -491,7 +587,8 @@ message StorageConfig { // Specification of the field containing the timestamp of scanned items. // Used for data sources like Datastore and BigQuery. // - // For BigQuery: + // For BigQuery + // // If this value is not specified and the table was modified between the // given start and end times, the entire table will be scanned. If this // value is specified, then rows are filtered based on the given start and @@ -500,17 +597,34 @@ message StorageConfig { // Valid data types of the provided BigQuery column are: `INTEGER`, `DATE`, // `TIMESTAMP`, and `DATETIME`. // - // For Datastore: + // If your BigQuery table is [partitioned at ingestion + // time](https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time), + // you can use any of the following pseudo-columns as your timestamp field. + // When used with Cloud DLP, these pseudo-column names are case sensitive. + // + //

    + //
  • _PARTITIONTIME
  • + //
  • _PARTITIONDATE
  • + //
  • _PARTITION_LOAD_TIME
  • + //
+ // + // For Datastore + // // If this value is specified, then entities are filtered based on the given // start and end times. If an entity does not contain the provided timestamp // property or contains empty or invalid values, then it is included. // Valid data types of the provided timestamp property are: `TIMESTAMP`. + // + // See the + // [known issue](https://cloud.google.com/dlp/docs/known-issues#bq-timespan) + // related to this operation. FieldId timestamp_field = 3; // When the job is started by a JobTrigger we will automatically figure out // a valid start_time to avoid scanning files that have not been modified // since the last time the JobTrigger executed. This will be based on the - // time of the execution of the last run of the JobTrigger. + // time of the execution of the last run of the JobTrigger or the timespan + // end_time used in the last run of the JobTrigger. bool enable_auto_population_of_timespan_config = 4; } @@ -518,7 +632,7 @@ message StorageConfig { // Google Cloud Datastore options. DatastoreOptions datastore_options = 2; - // Google Cloud Storage options. + // Cloud Storage options. CloudStorageOptions cloud_storage_options = 3; // BigQuery options. @@ -531,57 +645,6 @@ message StorageConfig { TimespanConfig timespan_config = 6; } -// Definitions of file type groups to scan. New types will be added to this -// list. -enum FileType { - // Includes all files. - FILE_TYPE_UNSPECIFIED = 0; - - // Includes all file extensions not covered by another entry. Binary - // scanning attempts to convert the content of the file to utf_8 to scan - // the file. - // If you wish to avoid this fall back, specify one or more of the other - // FileType's in your storage scan. - BINARY_FILE = 1; - - // Included file extensions: - // asc,asp, aspx, brf, c, cc,cfm, cgi, cpp, csv, cxx, c++, cs, css, dart, - // 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. - TEXT_FILE = 2; - - // Included file extensions: - // bmp, gif, jpg, jpeg, jpe, png. - // bytes_limit_per_file has no effect on image files. - // Image inspection is restricted to 'global', 'us', 'asia', and 'europe'. - IMAGE = 3; - - // Word files >30 MB will be scanned as binary files. - // Included file extensions: - // docx, dotx, docm, dotm - WORD = 5; - - // PDF files >30 MB will be scanned as binary files. - // Included file extensions: - // pdf - PDF = 6; - - // Included file extensions: - // avro - AVRO = 7; - - // Included file extensions: - // csv - CSV = 8; - - // Included file extensions: - // tsv - TSV = 9; -} - // Configuration to control jobs where the content being inspected is outside // of Google Cloud Platform. message HybridOptions { diff --git a/google/pubsub/v1/BUILD.bazel b/google/pubsub/v1/BUILD.bazel index 255098ee7..1c37f6602 100644 --- a/google/pubsub/v1/BUILD.bazel +++ b/google/pubsub/v1/BUILD.bazel @@ -69,6 +69,7 @@ java_gapic_library( ":pubsub_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":pubsub_java_proto", "//google/iam/v1:iam_java_proto", @@ -78,7 +79,9 @@ java_gapic_library( java_gapic_test( name = "pubsub_java_gapic_test_suite", test_classes = [ + "com.google.cloud.pubsub.v1.SubscriptionAdminClientHttpJsonTest", "com.google.cloud.pubsub.v1.SubscriptionAdminClientTest", + "com.google.cloud.pubsub.v1.TopicAdminClientHttpJsonTest", "com.google.cloud.pubsub.v1.TopicAdminClientTest", ], runtime_deps = [":pubsub_java_gapic_test"], @@ -87,6 +90,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-pubsub-v1-java", + transport = "grpc+rest", deps = [ ":pubsub_java_gapic", ":pubsub_java_grpc", @@ -102,13 +106,31 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "pubsub_py_gapic", srcs = [":pubsub_proto"], grpc_service_config = "pubsub_grpc_service_config.json", - opt_args = ["add-iam-methods"], + opt_args = [ + "warehouse-package-name=google-cloud-pubsub", + "add-iam-methods", + ], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "pubsub_py_gapic_test", + srcs = [ + "pubsub_py_gapic_pytest.py", + "pubsub_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":pubsub_py_gapic"], ) py_gapic_assembly_pkg( @@ -143,6 +165,7 @@ go_gapic_library( grpc_service_config = "pubsub_grpc_service_config.json", importpath = "cloud.google.com/go/pubsub/apiv1;pubsub", service_yaml = ":pubsub_v1.yaml", + transport = "grpc+rest", deps = [ ":pubsub_go_proto", "//google/iam/v1:iam_go_proto", @@ -227,6 +250,7 @@ nodejs_gapic_library( bundle_config = "pubsub_gapic.yaml", extra_protoc_parameters = ["template=typescript_gapic"], grpc_service_config = "pubsub_grpc_service_config.json", + handwritten_layer = True, main_service = "pubsub", service_yaml = ":pubsub_v1.yaml", deps = [], @@ -320,6 +344,7 @@ csharp_gapic_library( name = "pubsub_csharp_gapic", srcs = [":pubsub_proto_with_info"], grpc_service_config = "pubsub_grpc_service_config.json", + service_yaml = ":pubsub_v1.yaml", deps = [ ":pubsub_csharp_grpc", ":pubsub_csharp_proto", diff --git a/google/pubsub/v1/pubsub.proto b/google/pubsub/v1/pubsub.proto index b1d65626c..5ab209bbd 100644 --- a/google/pubsub/v1/pubsub.proto +++ b/google/pubsub/v1/pubsub.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -642,6 +642,20 @@ message Subscription { pattern: "projects/{project}/subscriptions/{subscription}" }; + // Possible states for a subscription. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The subscription can actively receive messages + ACTIVE = 1; + + // The subscription cannot receive messages because of an error with the + // resource to which it pushes messages. See the more detailed error state + // in the corresponding configuration. + RESOURCE_ERROR = 2; + } + // Required. The name of the subscription. It must have the format // `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must // start with a letter, and contain only letters (`[A-Za-z]`), numbers @@ -659,10 +673,17 @@ message Subscription { ]; // If push delivery is used with this subscription, this field is - // used to configure it. An empty `pushConfig` signifies that the subscriber - // will pull and ack messages using API methods. + // used to configure it. Either `pushConfig` or `bigQueryConfig` can be set, + // but not both. If both are empty, then the subscriber will pull and ack + // messages using API methods. PushConfig push_config = 4; + // If delivery to BigQuery is used with this subscription, this field is + // used to configure it. Either `pushConfig` or `bigQueryConfig` can be set, + // but not both. If both are empty, then the subscriber will pull and ack + // messages using API methods. + BigQueryConfig bigquery_config = 18; + // The approximate amount of time (on a best-effort basis) Pub/Sub waits for // the subscriber to acknowledge receipt before resending the message. In the // interval after the message is delivered and before it is acknowledged, it @@ -752,6 +773,19 @@ message Subscription { // the endpoint will not be made. bool detached = 15; + // If true, Pub/Sub provides the following guarantees for the delivery of + // a message with a given value of `message_id` on this subscription: + // + // * The message sent to a subscriber is guaranteed not to be resent + // before the message's acknowledgement deadline expires. + // * An acknowledged message will not be resent to a subscriber. + // + // Note that subscribers may still receive multiple copies of a message + // when `enable_exactly_once_delivery` is true if the message was published + // multiple times by a publisher client. These copies are considered distinct + // by Pub/Sub and have distinct `message_id` values. + bool enable_exactly_once_delivery = 16; + // Output only. Indicates the minimum duration for which a message is retained // after it is published to the subscription's topic. If this field is set, // messages published to the subscription's topic in the last @@ -760,6 +794,10 @@ message Subscription { // in responses from the server; it is ignored if it is set in any requests. google.protobuf.Duration topic_message_retention_duration = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An output-only field indicating whether or not the subscription can receive + // messages. + State state = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A policy that specifies how Cloud Pub/Sub retries message delivery. @@ -889,6 +927,53 @@ message PushConfig { } } +// Configuration for a BigQuery subscription. +message BigQueryConfig { + // Possible states for a BigQuery subscription. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The subscription can actively send messages to BigQuery + ACTIVE = 1; + + // Cannot write to the BigQuery table because of permission denied errors. + PERMISSION_DENIED = 2; + + // Cannot write to the BigQuery table because it does not exist. + NOT_FOUND = 3; + + // Cannot write to the BigQuery table due to a schema mismatch. + SCHEMA_MISMATCH = 4; + } + + // The name of the table to which to write data, of the form + // {projectId}:{datasetId}.{tableId} + string table = 1; + + // When true, use the topic's schema as the columns to write to in BigQuery, + // if it exists. + bool use_topic_schema = 2; + + // When true, write the subscription name, message_id, publish_time, + // attributes, and ordering_key to additional columns in the table. The + // subscription name, message_id, and publish_time fields are put in their own + // columns while all other message properties (other than data) are written to + // a JSON object in the attributes column. + bool write_metadata = 3; + + // When true and use_topic_schema is true, any fields that are a part of the + // topic schema that are not part of the BigQuery table schema are dropped + // when writing to BigQuery. Otherwise, the schemas must be kept in sync and + // any messages with extra fields are not written and remain in the + // subscription's backlog. + bool drop_unknown_fields = 4; + + // Output only. An output-only field that indicates whether or not the subscription can + // receive messages. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // A message and its corresponding acknowledgment ID. message ReceivedMessage { // This ID can be used to acknowledge the received message. @@ -1163,8 +1248,35 @@ message StreamingPullRequest { // Response for the `StreamingPull` method. This response is used to stream // messages from the server to the client. message StreamingPullResponse { + // Acknowledgement IDs sent in one or more previous requests to acknowledge a + // previously received message. + message AcknowledgeConfirmation { + // Successfully processed acknowledgement IDs. + repeated string ack_ids = 1 [ctype = CORD]; + + // List of acknowledgement IDs that were malformed or whose acknowledgement + // deadline has expired. + repeated string invalid_ack_ids = 2 [ctype = CORD]; + + // List of acknowledgement IDs that were out of order. + repeated string unordered_ack_ids = 3 [ctype = CORD]; + } + + // Acknowledgement IDs sent in one or more previous requests to modify the + // deadline for a specific message. + message ModifyAckDeadlineConfirmation { + // Successfully processed acknowledgement IDs. + repeated string ack_ids = 1 [ctype = CORD]; + + // List of acknowledgement IDs that were malformed or whose acknowledgement + // deadline has expired. + repeated string invalid_ack_ids = 2 [ctype = CORD]; + } + // Subscription properties sent as part of the response. message SubscriptionProperties { + // True iff exactly once delivery is enabled for this subscription. + bool exactly_once_delivery_enabled = 1; // True iff message ordering is enabled for this subscription. bool message_ordering_enabled = 2; } @@ -1172,6 +1284,16 @@ message StreamingPullResponse { // Received Pub/Sub messages. This will not be empty. repeated ReceivedMessage received_messages = 1; + reserved 2; + + // This field will only be set if `enable_exactly_once_delivery` is set to + // `true`. + AcknowledgeConfirmation acknowledge_confirmation = 5; + + // This field will only be set if `enable_exactly_once_delivery` is set to + // `true`. + ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + // Properties associated with this subscription. SubscriptionProperties subscription_properties = 4; } diff --git a/google/rpc/BUILD.bazel b/google/rpc/BUILD.bazel index 304538b8c..8ffa5a49c 100644 --- a/google/rpc/BUILD.bazel +++ b/google/rpc/BUILD.bazel @@ -31,9 +31,11 @@ proto_library( ############################################################################## # Java ############################################################################## -load("@com_google_googleapis_imports//:imports.bzl", - "java_gapic_assembly_gradle_pkg", - "java_proto_library") +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_proto_library", +) java_proto_library( name = "rpc_java_proto", @@ -49,15 +51,15 @@ java_proto_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-rpc-java", + transport = "grpc+rest", deps = [ - ":rpc_java_proto", - ":code_proto", "error_details_proto", - "status_proto" + "status_proto", + ":code_proto", + ":rpc_java_proto", ], ) - ############################################################################## # Go ############################################################################## diff --git a/google/rpc/context/BUILD.bazel b/google/rpc/context/BUILD.bazel index 8fbfbb0a7..eb76ab35d 100644 --- a/google/rpc/context/BUILD.bazel +++ b/google/rpc/context/BUILD.bazel @@ -26,8 +26,8 @@ proto_library( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", "java_proto_library", - "java_gapic_assembly_gradle_pkg" ) java_proto_library( @@ -40,13 +40,13 @@ java_proto_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-context-java", + transport = "grpc+rest", deps = [ ":attribute_context_java_proto", ":attribute_context_proto", ], ) - ############################################################################## # Go ############################################################################## @@ -61,7 +61,6 @@ go_proto_library( importpath = "google.golang.org/genproto/googleapis/rpc/context/attribute_context", protos = [":attribute_context_proto"], deps = [ - ], ) @@ -141,5 +140,3 @@ cc_proto_library( name = "attribute_context_cc_proto", deps = [":attribute_context_proto"], ) - - diff --git a/google/spanner/admin/database/v1/BUILD.bazel b/google/spanner/admin/database/v1/BUILD.bazel index 92463e11c..031faeb75 100644 --- a/google/spanner/admin/database/v1/BUILD.bazel +++ b/google/spanner/admin/database/v1/BUILD.bazel @@ -1,4 +1,13 @@ # 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"]) @@ -67,10 +76,12 @@ java_gapic_library( srcs = [":database_proto_with_info"], gapic_yaml = "spanner_admin_database_gapic.yaml", grpc_service_config = "spanner_admin_database_grpc_service_config.json", + service_yaml = "spanner.yaml", test_deps = [ ":database_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":database_java_proto", "//google/iam/v1:iam_java_proto", @@ -80,6 +91,7 @@ java_gapic_library( java_gapic_test( name = "database_java_gapic_test_suite", test_classes = [ + "com.google.cloud.spanner.admin.database.v1.DatabaseAdminClientHttpJsonTest", "com.google.cloud.spanner.admin.database.v1.DatabaseAdminClientTest", ], runtime_deps = [":database_java_gapic_test"], @@ -88,6 +100,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-admin-database-v1-java", + transport = "grpc+rest", deps = [ ":database_java_gapic", ":database_java_grpc", @@ -125,7 +138,8 @@ go_gapic_library( srcs = [":database_proto_with_info"], grpc_service_config = "spanner_admin_database_grpc_service_config.json", importpath = "cloud.google.com/go/spanner/admin/database/apiv1;database", - service_yaml = "spanner_admin_database.yaml", + service_yaml = "spanner.yaml", + transport = "grpc+rest", deps = [ ":database_go_proto", "//google/iam/v1:iam_go_proto", @@ -159,6 +173,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -169,6 +184,21 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=spanner_admin_database", ], + service_yaml = "spanner.yaml", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "database_py_gapic_test", + srcs = [ + "database_py_gapic_pytest.py", + "database_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":database_py_gapic"], ) py_gapic_assembly_pkg( @@ -205,7 +235,7 @@ php_gapic_library( srcs = [":database_proto_with_info"], gapic_yaml = "spanner_admin_database_gapic.yaml", grpc_service_config = "spanner_admin_database_grpc_service_config.json", - service_yaml = "spanner_admin_database.yaml", + service_yaml = "spanner.yaml", deps = [ ":database_php_grpc", ":database_php_proto", @@ -235,10 +265,13 @@ nodejs_gapic_library( name = "database_nodejs_gapic", package_name = "@google-cloud/spanner", src = ":database_proto_with_info", - extra_protoc_parameters = ["metadata", "template=typescript_gapic"], + extra_protoc_parameters = [ + "metadata", + "template=typescript_gapic", + ], grpc_service_config = "spanner_admin_database_grpc_service_config.json", package = "google.spanner.admin.database.v1", - service_yaml = "spanner_admin_database.yaml", + service_yaml = "spanner.yaml", deps = [], ) @@ -286,6 +319,7 @@ ruby_cloud_gapic_library( grpc_service_config = "spanner_admin_database_grpc_service_config.json", ruby_cloud_description = "Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.", ruby_cloud_title = "Cloud Spanner Database Admin V1", + service_yaml = "spanner.yaml", deps = [ ":database_ruby_grpc", ":database_ruby_proto", @@ -329,6 +363,7 @@ csharp_gapic_library( srcs = [":database_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "spanner_admin_database_grpc_service_config.json", + service_yaml = "spanner.yaml", deps = [ ":database_csharp_grpc", ":database_csharp_proto", diff --git a/google/spanner/admin/database/v1/backup.proto b/google/spanner/admin/database/v1/backup.proto index 1e9ce3005..5e019543e 100644 --- a/google/spanner/admin/database/v1/backup.proto +++ b/google/spanner/admin/database/v1/backup.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.spanner.admin.database.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; @@ -120,6 +119,27 @@ message Backup { // Output only. The database dialect information for the backup. 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 + // `projects//instances//backups/`. + // Referencing backups may exist in different instances. The existence of + // any referencing backup prevents the backup from being deleted. When the + // copy operation is done (either successfully completed or cancelled or the + // 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" + } + ]; + + // Output only. The max allowed expiration time of the backup, with + // microseconds granularity. A backup's expiration time can be configured in + // 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]; } // The request for [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]. @@ -185,6 +205,86 @@ message CreateBackupMetadata { google.protobuf.Timestamp cancel_time = 4; } +// 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/`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Instance" + } + ]; + + // Required. The id of the backup copy. + // The `backup_id` appended to `parent` forms the full backup_uri of the form + // `projects//instances//backups/`. + string backup_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The source backup to be copied. + // The source backup needs to be in READY state for it to be copied. + // Once CopyBackup is in progress, the source backup cannot be deleted or + // cleaned up on expiration until CopyBackup is finished. + // Values are of the form: + // `projects//instances//backups/`. + string source_backup = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Backup" + } + ]; + + // Required. The expiration time of the backup in microsecond granularity. + // The expiration time must be at least 6 hours and at most 366 days + // 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]; +} + +// Metadata type for the google.longrunning.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" + }]; + + // 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" + }]; + + // The progress of the + // [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup] operation. + OperationProgress progress = 3; + + // The time at which cancellation of CopyBackup operation was received. + // [Operations.CancelOperation][google.longrunning.Operations.CancelOperation] + // starts asynchronous cancellation on a long-running operation. The server + // makes a best effort to cancel the operation, but success is not guaranteed. + // Clients can use + // [Operations.GetOperation][google.longrunning.Operations.GetOperation] or + // other methods to check whether the cancellation succeeded or whether the + // operation completed despite cancellation. On successful cancellation, + // the operation is not deleted; instead, it becomes an operation with + // an [Operation.error][google.longrunning.Operation.error] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`. + google.protobuf.Timestamp cancel_time = 4; +} + // 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 @@ -327,6 +427,8 @@ message ListBackupOperationsRequest { // 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 + // fields. // * `error` - Error associated with the long-running operation. // * `response.@type` - the type of response. // * `response.` - any field in response.value. @@ -338,8 +440,11 @@ message ListBackupOperationsRequest { // Here are a few examples: // // * `done:true` - The operation is complete. - // * `metadata.database:prod` - The database the backup was taken from has - // a name containing the string "prod". + // * `(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". // * `(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` \ @@ -348,6 +453,29 @@ message ListBackupOperationsRequest { // * The backup name contains the string "howl". // * The operation started before 2018-03-28T14:50:00Z. // * The operation resulted in an error. + // * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata) AND` \ + // `(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 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` \ + // `(metadata.database:test_db)) OR` \ + // `((metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata) + // AND` \ + // `(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 + // "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 resulted in an error. string filter = 2; // Number of operations to be returned in the response. If 0 or @@ -366,11 +494,11 @@ message ListBackupOperationsRequest { message ListBackupOperationsResponse { // The list of matching backup [long-running // operations][google.longrunning.Operation]. Each operation's name will be - // prefixed by the backup's name and the operation's - // [metadata][google.longrunning.Operation.metadata] will be of type - // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]. Operations returned include those that are - // pending or have completed/failed/canceled within the last 7 days. - // Operations returned are ordered by + // prefixed by the backup's name. The operation's + // [metadata][google.longrunning.Operation.metadata] field type + // `metadata.type_url` describes the type of the metadata. Operations returned + // include those that are pending or have completed/failed/canceled within the + // last 7 days. Operations returned are ordered by // `operation.metadata.value.progress.start_time` in descending order starting // from the most recently started operation. repeated google.longrunning.Operation operations = 1; @@ -442,3 +570,40 @@ message CreateBackupEncryptionConfig { } ]; } + +// Encryption configuration for the copied backup. +message CopyBackupEncryptionConfig { + // Encryption types for the backup. + enum EncryptionType { + // 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. + 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. + CUSTOMER_MANAGED_ENCRYPTION = 3; + } + + // Required. The encryption type of the backup. + EncryptionType encryption_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // 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 + // `projects//locations//keyRings//cryptoKeys/`. + string kms_key_name = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; +} diff --git a/google/spanner/admin/database/v1/common.proto b/google/spanner/admin/database/v1/common.proto index 739a48645..720ebb95d 100644 --- a/google/spanner/admin/database/v1/common.proto +++ b/google/spanner/admin/database/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.spanner.admin.database.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; diff --git a/google/spanner/admin/database/v1/spanner.yaml b/google/spanner/admin/database/v1/spanner.yaml new file mode 100644 index 000000000..b15d46664 --- /dev/null +++ b/google/spanner/admin/database/v1/spanner.yaml @@ -0,0 +1,68 @@ +type: google.api.Service +config_version: 3 +name: spanner.googleapis.com +title: Cloud Spanner API + +apis: +- name: google.longrunning.Operations +- name: google.spanner.admin.database.v1.DatabaseAdmin + +types: +- name: google.spanner.admin.database.v1.CopyBackupMetadata +- name: google.spanner.admin.database.v1.CreateBackupMetadata +- name: google.spanner.admin.database.v1.CreateDatabaseMetadata +- name: google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata +- name: google.spanner.admin.database.v1.RestoreDatabaseMetadata +- name: google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata + +documentation: + summary: |- + Cloud Spanner is a managed, mission-critical, globally consistent and + scalable relational database service. + +backend: + rules: + - selector: 'google.longrunning.Operations.*' + deadline: 3600.0 + - selector: 'google.spanner.admin.database.v1.DatabaseAdmin.*' + deadline: 3600.0 + +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/instances/*/databases/*/operations/*}:cancel' + additional_bindings: + - post: '/v1/{name=projects/*/instances/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/instances/*/backups/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/instanceConfigs/*/operations/*}:cancel' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/instances/*/databases/*/operations/*}' + additional_bindings: + - delete: '/v1/{name=projects/*/instances/*/operations/*}' + - delete: '/v1/{name=projects/*/instances/*/backups/*/operations/*}' + - delete: '/v1/{name=projects/*/instanceConfigs/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/instances/*/databases/*/operations/*}' + additional_bindings: + - get: '/v1/{name=projects/*/instances/*/operations/*}' + - get: '/v1/{name=projects/*/instances/*/backups/*/operations/*}' + - get: '/v1/{name=projects/*/instanceConfigs/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/instances/*/databases/*/operations}' + additional_bindings: + - get: '/v1/{name=projects/*/instances/*/operations}' + - get: '/v1/{name=projects/*/instances/*/backups/*/operations}' + - get: '/v1/{name=projects/*/instanceConfigs/*/operations}' + +authentication: + rules: + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/spanner.admin + - selector: 'google.spanner.admin.database.v1.DatabaseAdmin.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/spanner.admin diff --git a/google/spanner/admin/database/v1/spanner_admin_database.yaml b/google/spanner/admin/database/v1/spanner_admin_database.yaml deleted file mode 100644 index 2f0860a66..000000000 --- a/google/spanner/admin/database/v1/spanner_admin_database.yaml +++ /dev/null @@ -1,41 +0,0 @@ -type: google.api.Service -config_version: 3 -name: spanner.googleapis.com -title: Cloud Spanner Database Admin API - -apis: - - name: google.spanner.admin.database.v1.DatabaseAdmin - mixins: - - name: google.iam.v1.IAMPolicy - -types: - - name: google.spanner.admin.database.v1.CreateDatabaseMetadata - - name: google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata - -authentication: - rules: - - selector: google.spanner.admin.database.v1.DatabaseAdmin.*, - google.iam.v1.IAMPolicy.*, - google.longrunning.Operations.* - oauth: - canonical_scopes: https://www.googleapis.com/auth/spanner.admin, - https://www.googleapis.com/auth/cloud-platform - -http: - rules: - - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=projects/*/instances/*/databases/*/operations/*}' - additional_bindings: - - get: '/v1/{name=projects/*/instances/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v1/{name=projects/*/instances/*/databases/*/operations}' - additional_bindings: - - get: '/v1/{name=projects/*/instances/*/operations}' - - selector: google.longrunning.Operations.CancelOperation - post: '/v1/{name=projects/*/instances/*/databases/*/operations/*}:cancel' - additional_bindings: - - post: '/v1/{name=projects/*/instances/*/operations/*}:cancel' - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1/{name=projects/*/instances/*/databases/*/operations/*}' - additional_bindings: - - delete: '/v1/{name=projects/*/instances/*/operations/*}' diff --git a/google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json b/google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json index b3ad84982..c839313c0 100755 --- a/google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json +++ b/google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json @@ -45,6 +45,10 @@ { "service": "google.spanner.admin.database.v1.DatabaseAdmin", "method": "ListBackupOperations" + }, + { + "service": "google.spanner.admin.database.v1.DatabaseAdmin", + "method": "ListDatabaseRoles" } ], "timeout": "3600s", @@ -86,6 +90,10 @@ "service": "google.spanner.admin.database.v1.DatabaseAdmin", "method": "CreateBackup" }, + { + "service": "google.spanner.admin.database.v1.DatabaseAdmin", + "method": "CopyBackup" + }, { "service": "google.spanner.admin.database.v1.DatabaseAdmin", "method": "RestoreDatabase" diff --git a/google/spanner/admin/database/v1/spanner_database_admin.proto b/google/spanner/admin/database/v1/spanner_database_admin.proto index 89d582412..91489ae4b 100644 --- a/google/spanner/admin/database/v1/spanner_database_admin.proto +++ b/google/spanner/admin/database/v1/spanner_database_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -24,7 +24,6 @@ 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/timestamp.proto"; import "google/spanner/admin/database/v1/backup.proto"; import "google/spanner/admin/database/v1/common.proto"; @@ -188,6 +187,10 @@ service DatabaseAdmin { post: "/v1/{resource=projects/*/instances/*/backups/*}:testIamPermissions" body: "*" } + additional_bindings { + post: "/v1/{resource=projects/*/instances/*/databases/*/databaseRoles/*}:testIamPermissions" + body: "*" + } }; option (google.api.method_signature) = "resource,permissions"; } @@ -216,6 +219,30 @@ service DatabaseAdmin { }; } + // Starts copying a Cloud Spanner Backup. + // The returned backup [long-running operation][google.longrunning.Operation] + // will have a name of the format + // `projects//instances//backups//operations/` + // and can be used to track copying of the backup. The operation is associated + // with the destination backup. + // 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. + 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.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]. rpc GetBackup(GetBackupRequest) returns (Backup) { option (google.api.http) = { @@ -311,6 +338,14 @@ service DatabaseAdmin { }; option (google.api.method_signature) = "parent"; } + + // Lists Cloud Spanner database roles. + rpc ListDatabaseRoles(ListDatabaseRolesRequest) returns (ListDatabaseRolesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/instances/*/databases/*}/databaseRoles" + }; + option (google.api.method_signature) = "parent"; + } } // Information about the database restore. @@ -645,6 +680,8 @@ message ListDatabaseOperationsRequest { // 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 + // fields. // * `error` - Error associated with the long-running operation. // * `response.@type` - the type of response. // * `response.` - any field in response.value. @@ -843,3 +880,51 @@ enum RestoreSourceType { // A backup was used as the source of the restore. BACKUP = 1; } + +// A Cloud Spanner database role. +message DatabaseRole { + option (google.api.resource) = { + type: "spanner.googleapis.com/DatabaseRole" + pattern: "projects/{project}/instances/{instance}/databases/{database}/databaseRoles/{role}" + }; + + // 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. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// 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`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Database" + } + ]; + + // Number of database roles 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.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]. +message ListDatabaseRolesResponse { + // Database roles that matched the request. + repeated DatabaseRole database_roles = 1; + + // `next_page_token` can be sent in a subsequent + // [ListDatabaseRoles][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles] + // call to fetch more of the matching roles. + string next_page_token = 2; +} diff --git a/google/spanner/admin/instance/v1/BUILD.bazel b/google/spanner/admin/instance/v1/BUILD.bazel index ed4429ec0..92c4a962d 100644 --- a/google/spanner/admin/instance/v1/BUILD.bazel +++ b/google/spanner/admin/instance/v1/BUILD.bazel @@ -12,6 +12,7 @@ load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") proto_library( name = "instance_proto", srcs = [ + "common.proto", "spanner_instance_admin.proto", ], deps = [ @@ -68,6 +69,7 @@ java_gapic_library( ":instance_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":instance_java_proto", "//google/iam/v1:iam_java_proto", @@ -77,6 +79,7 @@ java_gapic_library( java_gapic_test( name = "instance_java_gapic_test_suite", test_classes = [ + "com.google.cloud.spanner.admin.instance.v1.InstanceAdminClientHttpJsonTest", "com.google.cloud.spanner.admin.instance.v1.InstanceAdminClientTest", ], runtime_deps = [":instance_java_gapic_test"], @@ -85,6 +88,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-admin-instance-v1-java", + transport = "grpc+rest", deps = [ ":instance_java_gapic", ":instance_java_grpc", @@ -122,6 +126,7 @@ go_gapic_library( grpc_service_config = "spanner_admin_instance_grpc_service_config.json", importpath = "cloud.google.com/go/spanner/admin/instance/apiv1;instance", service_yaml = "spanner_admin_instance.yaml", + transport = "grpc+rest", deps = [ ":instance_go_proto", "//google/iam/v1:iam_go_proto", @@ -155,6 +160,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -165,6 +171,20 @@ py_gapic_library( "python-gapic-namespace=google.cloud", "python-gapic-name=spanner_admin_instance", ], + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "instance_py_gapic_test", + srcs = [ + "instance_py_gapic_pytest.py", + "instance_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":instance_py_gapic"], ) py_gapic_assembly_pkg( @@ -231,7 +251,10 @@ nodejs_gapic_library( name = "instance_nodejs_gapic", package_name = "@google-cloud/spanner", src = ":instance_proto_with_info", - extra_protoc_parameters = ["metadata","template=typescript_gapic"], + extra_protoc_parameters = [ + "metadata", + "template=typescript_gapic", + ], grpc_service_config = "spanner_admin_instance_grpc_service_config.json", package = "google.spanner.admin.instance.v1", service_yaml = "spanner_admin_instance.yaml", @@ -325,6 +348,7 @@ csharp_gapic_library( srcs = [":instance_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "spanner_admin_instance_grpc_service_config.json", + service_yaml = "spanner_admin_instance.yaml", deps = [ ":instance_csharp_grpc", ":instance_csharp_proto", diff --git a/google/spanner/admin/instance/v1/common.proto b/google/spanner/admin/instance/v1/common.proto new file mode 100644 index 000000000..e93b33476 --- /dev/null +++ b/google/spanner/admin/instance/v1/common.proto @@ -0,0 +1,42 @@ +// 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.spanner.admin.instance.v1; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Spanner.Admin.Instance.V1"; +option go_package = "google.golang.org/genproto/googleapis/spanner/admin/instance/v1;instance"; +option java_multiple_files = true; +option java_outer_classname = "CommonProto"; +option java_package = "com.google.spanner.admin.instance.v1"; +option php_namespace = "Google\\Cloud\\Spanner\\Admin\\Instance\\V1"; +option ruby_package = "Google::Cloud::Spanner::Admin::Instance::V1"; + +// Encapsulates progress related information for a Cloud Spanner long +// running instance operations. +message OperationProgress { + // Percent completion of the operation. + // Values are between 0 and 100 inclusive. + int32 progress_percent = 1; + + // Time the request was received. + google.protobuf.Timestamp start_time = 2; + + // If set, the time at which this operation failed or was completed + // successfully. + google.protobuf.Timestamp end_time = 3; +} diff --git a/google/spanner/admin/instance/v1/spanner_instance_admin.proto b/google/spanner/admin/instance/v1/spanner_instance_admin.proto index de86f2686..85b041134 100644 --- a/google/spanner/admin/instance/v1/spanner_instance_admin.proto +++ b/google/spanner/admin/instance/v1/spanner_instance_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -26,6 +26,7 @@ import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +import "google/spanner/admin/instance/v1/common.proto"; option csharp_namespace = "Google.Cloud.Spanner.Admin.Instance.V1"; option go_package = "google.golang.org/genproto/googleapis/spanner/admin/instance/v1;instance"; @@ -63,7 +64,8 @@ service InstanceAdmin { "https://www.googleapis.com/auth/spanner.admin"; // Lists the supported instance configurations for a given project. - rpc ListInstanceConfigs(ListInstanceConfigsRequest) returns (ListInstanceConfigsResponse) { + rpc ListInstanceConfigs(ListInstanceConfigsRequest) + returns (ListInstanceConfigsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*}/instanceConfigs" }; @@ -78,6 +80,153 @@ service InstanceAdmin { option (google.api.method_signature) = "name"; } + // Creates an instance config 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 config. The instance config name is assigned by the caller. If the + // named instance config already exists, `CreateInstanceConfig` returns + // `ALREADY_EXISTS`. + // + // Immediately after the request returns: + // + // * The instance config is readable via the API, with all requested + // attributes. The instance config's + // [reconciling][google.spanner.admin.instance.v1.InstanceConfig.reconciling] + // field is set to true. Its state is `CREATING`. + // + // While the operation is pending: + // + // * Cancelling the operation renders the instance config immediately + // unreadable via the API. + // * Except for deleting the creating resource, all other attempts to modify + // the instance config are rejected. + // + // Upon completion of the returned operation: + // + // * Instances can be created using the instance configuration. + // * The instance config's + // [reconciling][google.spanner.admin.instance.v1.InstanceConfig.reconciling] + // field becomes false. Its 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 config. The + // [metadata][google.longrunning.Operation.metadata] field type is + // [CreateInstanceConfigMetadata][google.spanner.admin.instance.v1.CreateInstanceConfigMetadata]. + // The [response][google.longrunning.Operation.response] field type is + // [InstanceConfig][google.spanner.admin.instance.v1.InstanceConfig], if + // successful. + // + // Authorization requires `spanner.instanceConfigs.create` permission on + // the resource + // [parent][google.spanner.admin.instance.v1.CreateInstanceConfigRequest.parent]. + rpc CreateInstanceConfig(CreateInstanceConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/instanceConfigs" + body: "*" + }; + option (google.api.method_signature) = + "parent,instance_config,instance_config_id"; + option (google.longrunning.operation_info) = { + response_type: "google.spanner.admin.instance.v1.InstanceConfig" + metadata_type: "google.spanner.admin.instance.v1.CreateInstanceConfigMetadata" + }; + } + + // Updates an instance config. The returned + // [long-running operation][google.longrunning.Operation] can be used to track + // the progress of updating the instance. If the named instance config does + // not exist, returns `NOT_FOUND`. + // + // Only user managed configurations can be updated. + // + // Immediately after the request returns: + // + // * The instance config's + // [reconciling][google.spanner.admin.instance.v1.InstanceConfig.reconciling] + // field is set to true. + // + // While the operation is pending: + // + // * Cancelling the operation sets its metadata's + // [cancel_time][google.spanner.admin.instance.v1.UpdateInstanceConfigMetadata.cancel_time]. + // The operation is guaranteed to succeed at undoing all changes, after + // which point it terminates with a `CANCELLED` status. + // * All other attempts to modify the instance config are rejected. + // * Reading the instance config via the API continues to give the + // pre-request values. + // + // Upon completion of the returned operation: + // + // * Creating instances using the instance configuration uses the new + // values. + // * The instance config's new values are readable via the API. + // * The instance config's + // [reconciling][google.spanner.admin.instance.v1.InstanceConfig.reconciling] + // field becomes false. + // + // The returned [long-running operation][google.longrunning.Operation] will + // have a name of the format + // `/operations/` and can be used to track + // the instance config modification. The + // [metadata][google.longrunning.Operation.metadata] field type is + // [UpdateInstanceConfigMetadata][google.spanner.admin.instance.v1.UpdateInstanceConfigMetadata]. + // The [response][google.longrunning.Operation.response] field type is + // [InstanceConfig][google.spanner.admin.instance.v1.InstanceConfig], if + // successful. + // + // Authorization requires `spanner.instanceConfigs.update` permission on + // the resource [name][google.spanner.admin.instance.v1.InstanceConfig.name]. + rpc UpdateInstanceConfig(UpdateInstanceConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{instance_config.name=projects/*/instanceConfigs/*}" + body: "*" + }; + option (google.api.method_signature) = "instance_config,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "google.spanner.admin.instance.v1.InstanceConfig" + metadata_type: "google.spanner.admin.instance.v1.UpdateInstanceConfigMetadata" + }; + } + + // Deletes the instance config. Deletion is only allowed when no + // instances are using the configuration. If any instances are using + // the config, returns `FAILED_PRECONDITION`. + // + // Only user managed configurations can be deleted. + // + // Authorization requires `spanner.instanceConfigs.delete` permission on + // the resource [name][google.spanner.admin.instance.v1.InstanceConfig.name]. + rpc DeleteInstanceConfig(DeleteInstanceConfigRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/instanceConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the user-managed instance config [long-running + // operations][google.longrunning.Operation] in the given project. An instance + // config operation has a name of the form + // `projects//instanceConfigs//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. + rpc ListInstanceConfigOperations(ListInstanceConfigOperationsRequest) + returns (ListInstanceConfigOperationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*}/instanceConfigOperations" + }; + option (google.api.method_signature) = "parent"; + } + // Lists all instances in the given project. rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { option (google.api.http) = { @@ -128,7 +277,8 @@ service InstanceAdmin { // [CreateInstanceMetadata][google.spanner.admin.instance.v1.CreateInstanceMetadata]. // The [response][google.longrunning.Operation.response] field type is // [Instance][google.spanner.admin.instance.v1.Instance], if successful. - rpc CreateInstance(CreateInstanceRequest) returns (google.longrunning.Operation) { + rpc CreateInstance(CreateInstanceRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*}/instances" body: "*" @@ -154,9 +304,9 @@ service InstanceAdmin { // Until completion of the returned operation: // // * Cancelling the operation sets its metadata's - // [cancel_time][google.spanner.admin.instance.v1.UpdateInstanceMetadata.cancel_time], and begins - // restoring resources to their pre-request values. The operation - // is guaranteed to succeed at undoing all resource changes, + // [cancel_time][google.spanner.admin.instance.v1.UpdateInstanceMetadata.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 are rejected. // * Reading the instance via the API continues to give the pre-request @@ -179,8 +329,9 @@ service InstanceAdmin { // [Instance][google.spanner.admin.instance.v1.Instance], if successful. // // Authorization requires `spanner.instances.update` permission on - // resource [name][google.spanner.admin.instance.v1.Instance.name]. - rpc UpdateInstance(UpdateInstanceRequest) returns (google.longrunning.Operation) { + // the resource [name][google.spanner.admin.instance.v1.Instance.name]. + rpc UpdateInstance(UpdateInstanceRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1/{instance.name=projects/*/instances/*}" body: "*" @@ -215,7 +366,8 @@ service InstanceAdmin { // // Authorization requires `spanner.instances.setIamPolicy` 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/*}:setIamPolicy" body: "*" @@ -228,7 +380,8 @@ service InstanceAdmin { // // Authorization requires `spanner.instances.getIamPolicy` 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/*}:getIamPolicy" body: "*" @@ -242,7 +395,8 @@ service InstanceAdmin { // result in a NOT_FOUND error if the user has `spanner.instances.list` // permission on the containing Google Cloud Project. Otherwise returns an // empty set of permissions. - 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/*}:testIamPermissions" body: "*" @@ -307,21 +461,105 @@ message InstanceConfig { pattern: "projects/{project}/instanceConfigs/{instance_config}" }; + // The type of this configuration. + enum Type { + // Unspecified. + TYPE_UNSPECIFIED = 0; + + // Google managed configuration. + GOOGLE_MANAGED = 1; + + // User managed configuration. + USER_MANAGED = 2; + } + + // Indicates the current state of the instance config. + enum State { + // Not specified. + STATE_UNSPECIFIED = 0; + + // The instance config is still being created. + CREATING = 1; + + // The instance config is fully created and ready to be used to create + // instances. + READY = 2; + } + // A unique identifier for the instance configuration. Values // are of the form - // `projects//instanceConfigs/[a-z][-a-z0-9]*` + // `projects//instanceConfigs/[a-z][-a-z0-9]*`. string name = 1; // The name of this instance configuration as it appears in UIs. string display_name = 2; + // Output only. Whether this instance config is a Google or User Managed + // Configuration. + Type config_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The geographic placement of nodes in this instance configuration and their // replication properties. repeated ReplicaInfo replicas = 3; - // Allowed values of the “default_leader” schema option for databases in + // Output only. The available optional replicas to choose from for user + // managed configurations. Populated for Google managed configurations. + repeated ReplicaInfo optional_replicas = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Base configuration name, e.g. projects//instanceConfigs/nam3, + // based on which this configuration is created. Only set for user managed + // configurations. `base_config` must refer to a configuration of type + // GOOGLE_MANAGED in the same project as this configuration. + string base_config = 7 [(google.api.resource_reference) = { + type: "spanner.googleapis.com/InstanceConfig" + }]; + + // Cloud Labels are a flexible and lightweight mechanism for organizing cloud + // resources into groups that reflect a customer's organizational needs and + // deployment strategies. Cloud Labels can be used to filter collections of + // resources. They can be used to control how resource metrics are aggregated. + // And they can be used as arguments to policy management rules (e.g. route, + // firewall, load balancing, etc.). + // + // * Label keys must be between 1 and 63 characters long and must conform to + // the following regular expression: `[a-z][a-z0-9_-]{0,62}`. + // * Label values must be between 0 and 63 characters long and must conform + // to the regular expression `[a-z0-9_-]{0,63}`. + // * No more than 64 labels can be associated with a given resource. + // + // See https://goo.gl/xmQnxf for more information on and examples of labels. + // + // If you plan to use labels in your own code, please note that additional + // characters may be allowed in the future. Therefore, you are advised to use + // an internal label representation, such as JSON, which doesn't rely upon + // specific characters being disallowed. For example, representing labels + // as the string: name + "_" + value would prove problematic if we were to + // allow "_" in a future release. + map labels = 8; + + // etag is used for optimistic concurrency control as a way + // to help prevent simultaneous updates of a instance config from overwriting + // each other. It is strongly suggested that systems make use of the etag in + // the read-modify-write cycle to perform instance config updates in order to + // avoid race conditions: An etag is returned in the response which contains + // instance configs, and systems are expected to put that etag in the request + // to update instance config to ensure that their change will be applied to + // the same version of the instance config. + // If no etag is provided in the call to update instance config, then the + // existing instance config is overwritten blindly. + string etag = 9; + + // Allowed values of the "default_leader" schema option for databases in // instances that use this instance configuration. repeated string leader_options = 4; + + // Output only. If true, the instance config is being created or updated. If + // false, there are no ongoing operations for the instance config. + bool reconciling = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current instance config state. + State state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } // An isolated set of Cloud Spanner resources on which databases can be hosted. @@ -350,38 +588,47 @@ message Instance { // after the instance is created. Values are of the form // `projects//instances/[a-z][-a-z0-9]*[a-z0-9]`. The final // segment of the name must be between 2 and 64 characters in length. - string name = 1; + string name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The name of the instance'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.resource_reference) = { - type: "spanner.googleapis.com/InstanceConfig" - }]; + string config = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/InstanceConfig" + } + ]; // Required. The descriptive name for this instance as it appears in UIs. // Must be unique per project and between 4 and 30 characters in length. - string display_name = 3; + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; - // Required. The number of nodes allocated to this instance. This may be zero - // in API responses for instances that are not yet in state `READY`. + // The number of nodes allocated to this instance. At most one of either + // node_count or processing_units should be present in the message. This + // may be zero in API responses for instances that are not yet in state + // `READY`. // // See [the - // documentation](https://cloud.google.com/spanner/docs/instances#node_count) - // for more information about nodes. + // documentation](https://cloud.google.com/spanner/docs/compute-capacity) + // for more information about nodes and processing units. int32 node_count = 5; // The number of processing units allocated to this instance. At most one of // processing_units or node_count should be present in the message. This may // be zero in API responses for instances that are not yet in state `READY`. + // + // See [the + // documentation](https://cloud.google.com/spanner/docs/compute-capacity) + // for more information about nodes and processing units. int32 processing_units = 9; // Output only. The current instance state. For - // [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance], the state must be - // either omitted or set to `CREATING`. For - // [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance], the state must be - // either omitted or set to `READY`. + // [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance], + // the state must be either omitted or set to `CREATING`. For + // [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance], + // the state must be either omitted or set to `READY`. State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Cloud Labels are a flexible and lightweight mechanism for organizing cloud @@ -392,9 +639,9 @@ message Instance { // firewall, load balancing, etc.). // // * Label keys must be between 1 and 63 characters long and must conform to - // the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. + // the following regular expression: `[a-z][a-z0-9_-]{0,62}`. // * Label values must be between 0 and 63 characters long and must conform - // to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. + // to the regular expression `[a-z0-9_-]{0,63}`. // * No more than 64 labels can be associated with a given resource. // // See https://goo.gl/xmQnxf for more information on and examples of labels. @@ -409,9 +656,18 @@ message Instance { // Deprecated. This field is not populated. repeated string endpoint_uris = 8; + + // Output only. The time at which the instance was created. + google.protobuf.Timestamp create_time = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the instance was most recently updated. + google.protobuf.Timestamp update_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; } -// The request for [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs]. +// The request for +// [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs]. message ListInstanceConfigsRequest { // Required. The name of the project for which a list of supported instance // configurations is requested. Values are of the form @@ -429,18 +685,20 @@ message ListInstanceConfigsRequest { // If non-empty, `page_token` should contain a // [next_page_token][google.spanner.admin.instance.v1.ListInstanceConfigsResponse.next_page_token] - // from a previous [ListInstanceConfigsResponse][google.spanner.admin.instance.v1.ListInstanceConfigsResponse]. + // from a previous + // [ListInstanceConfigsResponse][google.spanner.admin.instance.v1.ListInstanceConfigsResponse]. string page_token = 3; } -// The response for [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs]. +// The response for +// [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs]. message ListInstanceConfigsResponse { // The list of requested instance configurations. repeated InstanceConfig instance_configs = 1; // `next_page_token` can be sent in a subsequent - // [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs] call to - // fetch more of the matching instance configurations. + // [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs] + // call to fetch more of the matching instance configurations. string next_page_token = 2; } @@ -457,7 +715,175 @@ message GetInstanceConfigRequest { ]; } -// The request for [GetInstance][google.spanner.admin.instance.v1.InstanceAdmin.GetInstance]. +// The request for +// [CreateInstanceConfigRequest][InstanceAdmin.CreateInstanceConfigRequest]. +message CreateInstanceConfigRequest { + // Required. The name of the project in which to create the instance config. + // Values are of the form `projects/`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Required. The ID of the instance config to create. Valid identifiers are + // of the form `custom-[-a-z0-9]*[a-z0-9]` and must be between 2 and 64 + // characters in length. The `custom-` prefix is required to avoid name + // conflicts with Google managed configurations. + string instance_config_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The InstanceConfig proto of the configuration to create. + // instance_config.name must be + // `/instanceConfigs/`. + // instance_config.base_config must be a Google managed configuration name, + // e.g. /instanceConfigs/us-east1, /instanceConfigs/nam3. + InstanceConfig instance_config = 3 [(google.api.field_behavior) = REQUIRED]; + + // An option to validate, but not actually execute, a request, + // and provide the same response. + bool validate_only = 4; +} + +// The request for +// [UpdateInstanceConfigRequest][InstanceAdmin.UpdateInstanceConfigRequest]. +message UpdateInstanceConfigRequest { + // Required. The user instance config to update, which must always include the + // instance config name. Otherwise, only fields mentioned in + // [update_mask][google.spanner.admin.instance.v1.UpdateInstanceConfigRequest.update_mask] + // need be included. To prevent conflicts of concurrent updates, + // [etag][google.spanner.admin.instance.v1.InstanceConfig.reconciling] can + // be used. + InstanceConfig instance_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. A mask specifying which fields in + // [InstanceConfig][google.spanner.admin.instance.v1.InstanceConfig] should be + // updated. The field mask must always be specified; this prevents any future + // fields in [InstanceConfig][google.spanner.admin.instance.v1.InstanceConfig] + // from being erased accidentally by clients that do not know about them. Only + // display_name and labels can be updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; + + // An option to validate, but not actually execute, a request, + // and provide the same response. + bool validate_only = 3; +} + +// The request for +// [DeleteInstanceConfigRequest][InstanceAdmin.DeleteInstanceConfigRequest]. +message DeleteInstanceConfigRequest { + // Required. The name of the instance configuration to be deleted. + // Values are of the form + // `projects//instanceConfigs/` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/InstanceConfig" + } + ]; + + // Used for optimistic concurrency control as a way to help prevent + // simultaneous deletes of an instance config from overwriting each + // other. If not empty, the API + // only deletes the instance config when the etag provided matches the current + // status of the requested instance config. Otherwise, deletes the instance + // config without checking the current status of the requested instance + // config. + string etag = 2; + + // An option to validate, but not actually execute, a request, + // and provide the same response. + bool validate_only = 3; +} + +// The request for +// [ListInstanceConfigOperations][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigOperations]. +message ListInstanceConfigOperationsRequest { + // Required. The project of the instance config operations. + // Values are of the form `projects/`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // 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 + // [CreateInstanceConfigMetadata][google.spanner.admin.instance.v1.CreateInstanceConfigMetadata] + // is + // `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata`. + // * `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.CreateInstanceConfigMetadata) + // AND` \ + // `(metadata.instance_config.name:custom-config) AND` \ + // `(metadata.progress.start_time < \"2021-03-28T14:50:00Z\") AND` \ + // `(error:*)` - Return operations where: + // * The operation's metadata type is + // [CreateInstanceConfigMetadata][google.spanner.admin.instance.v1.CreateInstanceConfigMetadata]. + // * The instance config name contains "custom-config". + // * The operation started before 2021-03-28T14:50:00Z. + // * The operation resulted in an error. + string filter = 2; + + // 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; + + // If non-empty, `page_token` should contain a + // [next_page_token][google.spanner.admin.instance.v1.ListInstanceConfigOperationsResponse.next_page_token] + // from a previous + // [ListInstanceConfigOperationsResponse][google.spanner.admin.instance.v1.ListInstanceConfigOperationsResponse] + // to the same `parent` and with the same `filter`. + string page_token = 4; +} + +// The response for +// [ListInstanceConfigOperations][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigOperations]. +message ListInstanceConfigOperationsResponse { + // The list of matching instance config [long-running + // operations][google.longrunning.Operation]. Each operation's name will be + // prefixed by the instance config'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 + // [ListInstanceConfigOperations][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigOperations] + // call to fetch more of the matching metadata. + string next_page_token = 2; +} + +// The request for +// [GetInstance][google.spanner.admin.instance.v1.InstanceAdmin.GetInstance]. message GetInstanceRequest { // Required. The name of the requested instance. Values are of the form // `projects//instances/`. @@ -468,13 +894,15 @@ message GetInstanceRequest { } ]; - // If field_mask is present, specifies the subset of [Instance][google.spanner.admin.instance.v1.Instance] fields that - // should be returned. - // If absent, all [Instance][google.spanner.admin.instance.v1.Instance] fields are returned. + // If field_mask is present, specifies the subset of + // [Instance][google.spanner.admin.instance.v1.Instance] fields that should be + // returned. If absent, all + // [Instance][google.spanner.admin.instance.v1.Instance] fields are returned. google.protobuf.FieldMask field_mask = 2; } -// The request for [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance]. +// The request for +// [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance]. message CreateInstanceRequest { // Required. The name of the project in which to create the instance. Values // are of the form `projects/`. @@ -495,7 +923,8 @@ message CreateInstanceRequest { Instance instance = 3 [(google.api.field_behavior) = REQUIRED]; } -// The request for [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances]. +// The request for +// [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances]. message ListInstancesRequest { // Required. The name of the project for which a list of instances is // requested. Values are of the form `projects/`. @@ -511,8 +940,9 @@ message ListInstancesRequest { int32 page_size = 2; // If non-empty, `page_token` should contain a - // [next_page_token][google.spanner.admin.instance.v1.ListInstancesResponse.next_page_token] from a - // previous [ListInstancesResponse][google.spanner.admin.instance.v1.ListInstancesResponse]. + // [next_page_token][google.spanner.admin.instance.v1.ListInstancesResponse.next_page_token] + // from a previous + // [ListInstancesResponse][google.spanner.admin.instance.v1.ListInstancesResponse]. string page_token = 3; // An expression for filtering the results of the request. Filter rules are @@ -537,31 +967,38 @@ message ListInstancesRequest { string filter = 4; } -// The response for [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances]. +// The response for +// [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances]. message ListInstancesResponse { // The list of requested instances. repeated Instance instances = 1; // `next_page_token` can be sent in a subsequent - // [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances] call to fetch more - // of the matching instances. + // [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances] + // call to fetch more of the matching instances. string next_page_token = 2; } -// The request for [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance]. +// The request for +// [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance]. message UpdateInstanceRequest { // Required. The instance to update, which must always include the instance - // name. Otherwise, only fields mentioned in [field_mask][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need be included. + // name. Otherwise, only fields mentioned in + // [field_mask][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] + // need be included. Instance instance = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. A mask specifying which fields in [Instance][google.spanner.admin.instance.v1.Instance] should be updated. + // Required. A mask specifying which fields in + // [Instance][google.spanner.admin.instance.v1.Instance] should be updated. // The field mask must always be specified; this prevents any future fields in - // [Instance][google.spanner.admin.instance.v1.Instance] from being erased accidentally by clients that do not know - // about them. - google.protobuf.FieldMask field_mask = 2 [(google.api.field_behavior) = REQUIRED]; + // [Instance][google.spanner.admin.instance.v1.Instance] from being erased + // accidentally by clients that do not know about them. + google.protobuf.FieldMask field_mask = 2 + [(google.api.field_behavior) = REQUIRED]; } -// The request for [DeleteInstance][google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstance]. +// The request for +// [DeleteInstance][google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstance]. message DeleteInstanceRequest { // Required. The name of the instance to be deleted. Values are of the form // `projects//instances/` @@ -580,8 +1017,8 @@ message CreateInstanceMetadata { Instance instance = 1; // The time at which the - // [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance] request was - // received. + // [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance] + // request was received. google.protobuf.Timestamp start_time = 2; // The time at which this operation was cancelled. If set, this operation is @@ -599,7 +1036,8 @@ message UpdateInstanceMetadata { // The desired end state of the update. Instance instance = 1; - // The time at which [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance] + // The time at which + // [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance] // request was received. google.protobuf.Timestamp start_time = 2; @@ -611,3 +1049,33 @@ message UpdateInstanceMetadata { // The time at which this operation failed or was completed successfully. google.protobuf.Timestamp end_time = 4; } + +// Metadata type for the operation returned by +// [CreateInstanceConfig][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig]. +message CreateInstanceConfigMetadata { + // The target instance config end state. + InstanceConfig instance_config = 1; + + // The progress of the + // [CreateInstanceConfig][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig] + // operation. + OperationProgress progress = 2; + + // The time at which this operation was cancelled. + google.protobuf.Timestamp cancel_time = 3; +} + +// Metadata type for the operation returned by +// [UpdateInstanceConfig][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstanceConfig]. +message UpdateInstanceConfigMetadata { + // The desired instance config after updating. + InstanceConfig instance_config = 1; + + // The progress of the + // [UpdateInstanceConfig][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstanceConfig] + // operation. + OperationProgress progress = 2; + + // The time at which this operation was cancelled. + google.protobuf.Timestamp cancel_time = 3; +} diff --git a/google/spanner/v1/BUILD.bazel b/google/spanner/v1/BUILD.bazel index 7301e902e..610b859f1 100644 --- a/google/spanner/v1/BUILD.bazel +++ b/google/spanner/v1/BUILD.bazel @@ -73,6 +73,7 @@ java_gapic_library( test_deps = [ ":spanner_java_grpc", ], + transport = "grpc+rest", deps = [ ":spanner_java_proto", ], @@ -81,6 +82,7 @@ java_gapic_library( java_gapic_test( name = "spanner_java_gapic_test_suite", test_classes = [ + "com.google.cloud.spanner.v1.SpannerClientHttpJsonTest", "com.google.cloud.spanner.v1.SpannerClientTest", ], runtime_deps = [":spanner_java_gapic_test"], @@ -89,6 +91,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-spanner-v1-java", + transport = "grpc+rest", deps = [ ":spanner_java_gapic", ":spanner_java_grpc", @@ -125,6 +128,7 @@ go_gapic_library( grpc_service_config = "spanner_grpc_service_config.json", importpath = "cloud.google.com/go/spanner/apiv1;spanner", service_yaml = "spanner.yaml", + transport = "grpc+rest", deps = [ ":spanner_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", @@ -155,6 +159,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -162,6 +167,17 @@ py_gapic_library( srcs = [":spanner_proto"], grpc_service_config = "spanner_grpc_service_config.json", opt_args = ["python-gapic-namespace=google.cloud"], + transport = "grpc", +) + +py_test( + name = "spanner_py_gapic_test", + srcs = [ + "spanner_py_gapic_pytest.py", + "spanner_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":spanner_py_gapic"], ) py_gapic_assembly_pkg( @@ -227,8 +243,12 @@ nodejs_gapic_library( name = "spanner_nodejs_gapic", package_name = "@google-cloud/spanner", src = ":spanner_proto_with_info", - extra_protoc_parameters = ["metadata", "template=typescript_gapic"], + extra_protoc_parameters = [ + "metadata", + "template=typescript_gapic", + ], grpc_service_config = "spanner_grpc_service_config.json", + handwritten_layer = True, main_service = "spanner", package = "google.spanner.v1", service_yaml = "spanner.yaml", @@ -321,6 +341,7 @@ csharp_gapic_library( srcs = [":spanner_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "spanner_grpc_service_config.json", + service_yaml = "spanner.yaml", deps = [ ":spanner_csharp_grpc", ":spanner_csharp_proto", diff --git a/google/spanner/v1/commit_response.proto b/google/spanner/v1/commit_response.proto index 4850600f0..69e073092 100644 --- a/google/spanner/v1/commit_response.proto +++ b/google/spanner/v1/commit_response.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,8 +16,6 @@ syntax = "proto3"; package google.spanner.v1; -import "google/api/annotations.proto"; -import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Spanner.V1"; diff --git a/google/spanner/v1/keys.proto b/google/spanner/v1/keys.proto index ddcd18126..df3607aa4 100644 --- a/google/spanner/v1/keys.proto +++ b/google/spanner/v1/keys.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.spanner.v1; -import "google/api/annotations.proto"; import "google/protobuf/struct.proto"; option csharp_namespace = "Google.Cloud.Spanner.V1"; diff --git a/google/spanner/v1/mutation.proto b/google/spanner/v1/mutation.proto index ccadb2f8f..eae0af72d 100644 --- a/google/spanner/v1/mutation.proto +++ b/google/spanner/v1/mutation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,7 @@ syntax = "proto3"; package google.spanner.v1; -import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; import "google/protobuf/struct.proto"; import "google/spanner/v1/keys.proto"; @@ -36,7 +36,7 @@ message Mutation { // [replace][google.spanner.v1.Mutation.replace] operations. message Write { // Required. The table whose rows will be written. - string table = 1; + string table = 1 [(google.api.field_behavior) = REQUIRED]; // The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written. // @@ -59,7 +59,7 @@ message Mutation { // Arguments to [delete][google.spanner.v1.Mutation.delete] operations. message Delete { // Required. The table whose rows will be deleted. - string table = 1; + string table = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The primary keys of the rows within [table][google.spanner.v1.Mutation.Delete.table] to delete. The // primary keys must be specified in the order in which they appear in the @@ -67,7 +67,7 @@ message Mutation { // statement used to create the table). // Delete is idempotent. The transaction will succeed even if some or all // rows do not exist. - KeySet key_set = 2; + KeySet key_set = 2 [(google.api.field_behavior) = REQUIRED]; } // Required. The operation to perform. diff --git a/google/spanner/v1/query_plan.proto b/google/spanner/v1/query_plan.proto index 690c36ea9..9ea40fe4a 100644 --- a/google/spanner/v1/query_plan.proto +++ b/google/spanner/v1/query_plan.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.spanner.v1; -import "google/api/annotations.proto"; import "google/protobuf/struct.proto"; option csharp_namespace = "Google.Cloud.Spanner.V1"; diff --git a/google/spanner/v1/result_set.proto b/google/spanner/v1/result_set.proto index d6ba978de..714d8bea9 100644 --- a/google/spanner/v1/result_set.proto +++ b/google/spanner/v1/result_set.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,7 @@ syntax = "proto3"; package google.spanner.v1; -import "google/api/annotations.proto"; import "google/protobuf/struct.proto"; -import "google/spanner/v1/commit_response.proto"; import "google/spanner/v1/query_plan.proto"; import "google/spanner/v1/transaction.proto"; import "google/spanner/v1/type.proto"; diff --git a/google/spanner/v1/spanner.proto b/google/spanner/v1/spanner.proto index 04cc007f5..ef772170b 100644 --- a/google/spanner/v1/spanner.proto +++ b/google/spanner/v1/spanner.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -300,8 +300,8 @@ message CreateSessionRequest { } ]; - // The session to create. - Session session = 2; + // Required. The session to create. + Session session = 2 [(google.api.field_behavior) = REQUIRED]; } // The request for [BatchCreateSessions][google.spanner.v1.Spanner.BatchCreateSessions]. @@ -358,6 +358,9 @@ message Session { // Output only. The approximate timestamp when the session is last used. It is // typically earlier than the actual last use time. google.protobuf.Timestamp approximate_last_use_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The database role which created this session. + string creator_role = 5; } // The request for [GetSession][google.spanner.v1.Spanner.GetSession]. @@ -647,7 +650,7 @@ message ExecuteBatchDmlRequest { // A single DML statement. message Statement { // Required. The DML string. - string sql = 1; + string sql = 1 [(google.api.field_behavior) = REQUIRED]; // Parameter names and values that bind to placeholders in the DML string. // diff --git a/google/spanner/v1/spanner.yaml b/google/spanner/v1/spanner.yaml index 99fe5149e..f0e3826cd 100644 --- a/google/spanner/v1/spanner.yaml +++ b/google/spanner/v1/spanner.yaml @@ -1,56 +1,59 @@ -# This service config is currently set for generating client libraries for the -# non-admin API. Use the spanner_admin_*.yaml service configs to generate admin -# client libraries. - type: google.api.Service config_version: 3 name: spanner.googleapis.com title: Cloud Spanner API apis: - - name: google.spanner.v1.Spanner +- name: google.spanner.v1.Spanner -authentication: +documentation: + summary: |- + Cloud Spanner is a managed, mission-critical, globally consistent and + scalable relational database service. + +backend: rules: - - selector: google.spanner.v1.Spanner.* - oauth: - canonical_scopes: https://www.googleapis.com/auth/spanner.data, - https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + deadline: 3600.0 + - selector: 'google.spanner.v1.Spanner.*' + deadline: 3600.0 http: rules: - - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=projects/*/instances/*/databases/*/operations/*}' - additional_bindings: - - get: '/v1/{name=projects/*/instances/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v1/{name=projects/*/instances/*/databases/*/operations}' - additional_bindings: - - get: '/v1/{name=projects/*/instances/*/operations}' - selector: google.longrunning.Operations.CancelOperation post: '/v1/{name=projects/*/instances/*/databases/*/operations/*}:cancel' additional_bindings: - - post: '/v1/{name=projects/*/instances/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/instances/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/instances/*/backups/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/instanceConfigs/*/operations/*}:cancel' - selector: google.longrunning.Operations.DeleteOperation delete: '/v1/{name=projects/*/instances/*/databases/*/operations/*}' additional_bindings: - - delete: '/v1/{name=projects/*/instances/*/operations/*}' - -documentation: - summary: - Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service. + - delete: '/v1/{name=projects/*/instances/*/operations/*}' + - delete: '/v1/{name=projects/*/instances/*/backups/*/operations/*}' + - delete: '/v1/{name=projects/*/instanceConfigs/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/instances/*/databases/*/operations/*}' + additional_bindings: + - get: '/v1/{name=projects/*/instances/*/operations/*}' + - get: '/v1/{name=projects/*/instances/*/backups/*/operations/*}' + - get: '/v1/{name=projects/*/instanceConfigs/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/instances/*/databases/*/operations}' + additional_bindings: + - get: '/v1/{name=projects/*/instances/*/operations}' + - get: '/v1/{name=projects/*/instances/*/backups/*/operations}' + - get: '/v1/{name=projects/*/instanceConfigs/*/operations}' +authentication: rules: - - selector: google.iam.v1.SetIamPolicyRequest.resource - description: | - REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects//instances/` for instance resources and `projects//instances//databases/` for databases resources. - - selector: google.iam.v1.GetIamPolicyRequest.resource - description: | - REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects//instances/` for instance resources and `projects//instances//databases/` for database resources. - - selector: google.iam.v1.TestIamPermissionsRequest.resource - description: | - REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects//instances/` for instance resources and `projects//instances//databases/` for database resources. - - selector: google.iam.v1.TestIamPermissionsRequest.permissions - description: | - REQUIRED: The set of permissions to check for 'resource'. - Permissions with wildcards (such as '*', 'spanner.*', 'spanner.instances.*') are not allowed. + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/spanner.admin + - selector: 'google.spanner.v1.Spanner.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/spanner.data diff --git a/google/spanner/v1/transaction.proto b/google/spanner/v1/transaction.proto index debc226e3..3577f797c 100644 --- a/google/spanner/v1/transaction.proto +++ b/google/spanner/v1/transaction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.spanner.v1; -import "google/api/annotations.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; @@ -36,7 +35,8 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // completed, the session can immediately be re-used for the next transaction. // It is not necessary to create a new session for each transaction. // -// Transaction Modes: +// Transaction modes: +// // Cloud Spanner supports three transaction modes: // // 1. Locking read-write. This type of transaction is the only way @@ -45,11 +45,18 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // Locking read-write transactions may abort, requiring the // application to retry. // -// 2. Snapshot read-only. This transaction type provides guaranteed -// consistency across several reads, but does not allow -// writes. Snapshot read-only transactions can be configured to -// read at timestamps in the past. Snapshot read-only -// transactions do not need to be committed. +// 2. Snapshot read-only. Snapshot read-only transactions provide guaranteed +// consistency across several reads, but do not allow +// writes. Snapshot read-only transactions can be configured to read at +// timestamps in the past, or configured to perform a strong read +// (where Spanner will select a timestamp such that the read is +// guaranteed to see the effects of all transactions that have committed +// before the start of the read). Snapshot read-only transactions do not +// need to be committed. +// +// Queries on change streams must be performed with the snapshot read-only +// transaction mode, specifying a strong read. Please see +// [TransactionOptions.ReadOnly.strong][google.spanner.v1.TransactionOptions.ReadOnly.strong] for more details. // // 3. Partitioned DML. This type of transaction is used to execute // a single Partitioned DML statement. Partitioned DML partitions @@ -64,11 +71,12 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // not conflict with read-write transactions. As a consequence of not // taking locks, they also do not abort, so retry loops are not needed. // -// Transactions may only read/write data in a single database. They -// may, however, read/write data in different tables within that +// Transactions may only read-write data in a single database. They +// may, however, read-write data in different tables within that // database. // -// Locking Read-Write Transactions: +// Locking read-write transactions: +// // Locking transactions may be used to atomically read-modify-write // data anywhere in a database. This type of transaction is externally // consistent. @@ -79,7 +87,7 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // active as long as the transaction continues to do reads, and the // transaction has not been terminated by // [Commit][google.spanner.v1.Spanner.Commit] or -// [Rollback][google.spanner.v1.Spanner.Rollback]. Long periods of +// [Rollback][google.spanner.v1.Spanner.Rollback]. Long periods of // inactivity at the client may cause Cloud Spanner to release a // transaction's locks and abort it. // @@ -91,6 +99,7 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // transaction. // // Semantics: +// // Cloud Spanner can commit the transaction if all read locks it acquired // are still valid at commit time, and it is able to acquire write // locks for all writes. Cloud Spanner can abort the transaction for any @@ -102,7 +111,8 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // use Cloud Spanner locks for any sort of mutual exclusion other than // between Cloud Spanner transactions themselves. // -// Retrying Aborted Transactions: +// Retrying aborted transactions: +// // When a transaction aborts, the application can choose to retry the // whole transaction again. To maximize the chances of successfully // committing the retry, the client should execute the retry in the @@ -117,7 +127,8 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // instead, it is better to limit the total amount of time spent // retrying. // -// Idle Transactions: +// Idle transactions: +// // A transaction is considered idle if it has no outstanding reads or // SQL queries and has not started a read or SQL query within the last 10 // seconds. Idle transactions can be aborted by Cloud Spanner so that they @@ -128,7 +139,8 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // SQL query in the transaction (for example, `SELECT 1`) prevents the // transaction from becoming idle. // -// Snapshot Read-Only Transactions: +// Snapshot read-only transactions: +// // Snapshot read-only transactions provides a simpler method than // locking read-write transactions for doing several consistent // reads. However, this type of transaction does not support writes. @@ -160,13 +172,12 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // // If the Cloud Spanner database to be read is geographically distributed, // stale read-only transactions can execute more quickly than strong -// or read-write transaction, because they are able to execute far +// or read-write transactions, because they are able to execute far // from the leader replica. // // Each type of timestamp bound is discussed in detail below. // -// Strong: -// Strong reads are guaranteed to see the effects of all transactions +// Strong: Strong reads are guaranteed to see the effects of all transactions // that have committed before the start of the read. Furthermore, all // rows yielded by a single read are consistent with each other -- if // any part of the read observes a transaction, all parts of the read @@ -178,9 +189,13 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // reads should be executed within a transaction or at an exact read // timestamp. // +// Queries on change streams (see below for more details) must also specify +// the strong read timestamp bound. +// // See [TransactionOptions.ReadOnly.strong][google.spanner.v1.TransactionOptions.ReadOnly.strong]. // -// Exact Staleness: +// Exact staleness: +// // These timestamp bounds execute reads at a user-specified // timestamp. Reads at a timestamp are guaranteed to see a consistent // prefix of the global transaction history: they observe @@ -201,7 +216,8 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // See [TransactionOptions.ReadOnly.read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.read_timestamp] and // [TransactionOptions.ReadOnly.exact_staleness][google.spanner.v1.TransactionOptions.ReadOnly.exact_staleness]. // -// Bounded Staleness: +// Bounded staleness: +// // Bounded staleness modes allow Cloud Spanner to pick the read timestamp, // subject to a user-provided staleness bound. Cloud Spanner chooses the // newest timestamp within the staleness bound that allows execution @@ -230,7 +246,8 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // See [TransactionOptions.ReadOnly.max_staleness][google.spanner.v1.TransactionOptions.ReadOnly.max_staleness] and // [TransactionOptions.ReadOnly.min_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.min_read_timestamp]. // -// Old Read Timestamps and Garbage Collection: +// Old read timestamps and garbage collection: +// // Cloud Spanner continuously garbage collects deleted and overwritten data // in the background to reclaim storage space. This process is known // as "version GC". By default, version GC reclaims versions after they @@ -240,7 +257,41 @@ option ruby_package = "Google::Cloud::Spanner::V1"; // timestamp become too old while executing. Reads and SQL queries with // too-old read timestamps fail with the error `FAILED_PRECONDITION`. // -// Partitioned DML Transactions: +// You can configure and extend the `VERSION_RETENTION_PERIOD` of a +// database up to a period as long as one week, which allows Cloud Spanner +// to perform reads up to one week in the past. +// +// Querying change Streams: +// +// A Change Stream is a schema object that can be configured to watch data +// changes on the entire database, a set of tables, or a set of columns +// in a database. +// +// When a change stream is created, Spanner automatically defines a +// corresponding SQL Table-Valued Function (TVF) that can be used to query +// the change records in the associated change stream using the +// ExecuteStreamingSql API. The name of the TVF for a change stream is +// generated from the name of the change stream: READ_. +// +// All queries on change stream TVFs must be executed using the +// ExecuteStreamingSql API with a single-use read-only transaction with a +// strong read-only timestamp_bound. The change stream TVF allows users to +// specify the start_timestamp and end_timestamp for the time range of +// interest. All change records within the retention period is accessible +// using the strong read-only timestamp_bound. All other TransactionOptions +// are invalid for change stream queries. +// +// In addition, if TransactionOptions.read_only.return_read_timestamp is set +// to true, a special value of 2^63 - 2 will be returned in the +// [Transaction][google.spanner.v1.Transaction] message that describes the +// transaction, instead of a valid read timestamp. This special value should be +// discarded and not used for any subsequent queries. +// +// Please see https://cloud.google.com/spanner/docs/change-streams +// for more details on how to query the change stream TVFs. +// +// Partitioned DML transactions: +// // Partitioned DML transactions are used to execute DML statements with a // different execution strategy that provides different, and often better, // scalability properties for large, table-wide operations than DML in a diff --git a/google/spanner/v1/type.proto b/google/spanner/v1/type.proto index f88e7b251..712ec187f 100644 --- a/google/spanner/v1/type.proto +++ b/google/spanner/v1/type.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,7 +16,6 @@ syntax = "proto3"; package google.spanner.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; option csharp_namespace = "Google.Cloud.Spanner.V1"; @@ -164,4 +163,12 @@ enum TypeAnnotationCode { // [NUMERIC][google.spanner.v1.TypeCode.NUMERIC] when a client interacts with PostgreSQL-enabled // Spanner databases. PG_NUMERIC = 2; + + // PostgreSQL compatible JSONB type. This annotation needs to be applied to + // [Type][google.spanner.v1.Type] instances having [JSON][google.spanner.v1.TypeCode.JSON] + // type code to specify that values of this type should be treated as + // PostgreSQL JSONB values. Currently this annotation is always needed for + // [JSON][google.spanner.v1.TypeCode.JSON] when a client interacts with PostgreSQL-enabled + // Spanner databases. + PG_JSONB = 3; } diff --git a/google/storage/v1/BUILD.bazel b/google/storage/v1/BUILD.bazel index d2142c055..a02ed5f7d 100644 --- a/google/storage/v1/BUILD.bazel +++ b/google/storage/v1/BUILD.bazel @@ -7,7 +7,6 @@ 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 = "storage_proto", @@ -16,33 +15,19 @@ proto_library( "storage_resources.proto", ], deps = [ - "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/iam/v1:iam_policy_proto", - "//google/iam/v1:policy_proto", - "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", "@com_google_protobuf//:wrappers_proto", ], ) -proto_library_with_info( - name = "storage_proto_with_info", - deps = [ - ":storage_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_grpc_library", "java_proto_library", ) @@ -58,49 +43,12 @@ java_grpc_library( deps = [":storage_java_proto"], ) -java_gapic_library( - name = "storage_java_gapic", - srcs = [":storage_proto_with_info"], - gapic_yaml = "storage_gapic.yaml", - grpc_service_config = "storage_grpc_service_config.json", - test_deps = [ - ":storage_java_grpc", - "//google/iam/v1:iam_java_grpc", - ], - deps = [ - ":storage_java_proto", - "//google/iam/v1:iam_java_proto", - ], -) - -java_gapic_test( - name = "storage_java_gapic_test_suite", - test_classes = [ - "com.google.cloud.google.storage.v1.StorageClientTest", - ], - runtime_deps = [":storage_java_gapic_test"], -) - -# Open Source Packages -java_gapic_assembly_gradle_pkg( - name = "google-cloud-storage-v1-java", - deps = [ - ":storage_java_gapic", - ":storage_java_grpc", - ":storage_java_proto", - ":storage_proto", - ], -) - ############################################################################## # Go ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", - "go_gapic_assembly_pkg", - "go_gapic_library", "go_proto_library", - "go_test", ) go_proto_library( @@ -114,108 +62,59 @@ go_proto_library( ], ) -go_gapic_library( - name = "storage_go_gapic", - srcs = [":storage_proto_with_info"], - grpc_service_config = "storage_grpc_service_config.json", - importpath = "cloud.google.com/go/storage/apiv1;storage", - service_yaml = "storage_v1.yaml", +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "storage_moved_proto", + srcs = [":storage_proto"], deps = [ - ":storage_go_proto", - "//google/iam/v1:iam_go_proto", + "//google/api:field_behavior_proto", + "//google/iam/v1:iam_policy_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + "@com_google_protobuf//:wrappers_proto", ], ) -go_test( - name = "storage_go_gapic_test", - srcs = [":storage_go_gapic_srcjar_test"], - embed = [":storage_go_gapic"], - importpath = "cloud.google.com/go/storage/apiv1", +py_proto_library( + name = "storage_py_proto", + deps = [":storage_moved_proto"], ) -# Open Source Packages -go_gapic_assembly_pkg( - name = "gapi-cloud-storage-v1-go", - deps = [ - ":storage_go_gapic", - ":storage_go_gapic_srcjar-test.srcjar", - ":storage_go_proto", - ], +py_grpc_library( + name = "storage_py_grpc", + srcs = [":storage_moved_proto"], + deps = [":storage_py_proto"], ) ############################################################################## -# Python +# PHP ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", + "php_grpc_library", + "php_proto_library", ) -py_gapic_library( - name = "storage_py_gapic", - srcs = [":storage_proto"], - grpc_service_config = "storage_grpc_service_config.json", +php_proto_library( + name = "storage_php_proto", + deps = [":storage_proto"], ) -# Open Source Packages -py_gapic_assembly_pkg( - name = "storage-v1-py", - deps = [ - ":storage_py_gapic", - ], +php_grpc_library( + name = "storage_php_grpc", + srcs = [":storage_proto"], + deps = [":storage_php_proto"], ) -############################################################################## -# PHP -############################################################################## -# Note: The GCS gRPC API is launching without PHP client library support (see -# https://buganizer.corp.google.com/issues/118459221#comment3), but we need to -# generate Bazel build rules for all languages must be present else the -# build_gen step will fail with NPE. We further needed to comment out the -# PHP lines here because building PHP clients requires all RPCs in the service -# definitions to contain http_rule annotations. -#load( -# "@com_google_googleapis_imports//:imports.bzl", -# "php_gapic_assembly_pkg", -# "php_gapic_library", -# "php_grpc_library", -# "php_proto_library", -#) -# -#php_proto_library( -# name = "storage_php_proto", -# deps = [":storage_proto"], -#) -# -#php_grpc_library( -# name = "storage_php_grpc", -# srcs = [":storage_proto"], -# deps = [":storage_php_proto"], -#) -# -#php_gapic_library( -# name = "storage_php_gapic", -# src = ":storage_proto_with_info", -# gapic_yaml = "storage_gapic.yaml", -# package = "google.storage.v1", -# service_yaml = "storage_v1.yaml", -# deps = [ -# ":storage_php_grpc", -# ":storage_php_proto", -# ], -#) -# -## Open Source Packages -#php_gapic_assembly_pkg( -# name = "google-cloud-storage-v1-php", -# deps = [ -# ":storage_php_gapic", -# ":storage_php_grpc", -# ":storage_php_proto", -# ], -#) - ############################################################################## # Node.js ############################################################################## @@ -225,31 +124,12 @@ load( "nodejs_gapic_library", ) -nodejs_gapic_library( - name = "storage_nodejs_gapic", - src = ":storage_proto_with_info", - extra_protoc_parameters = ["metadata"], - grpc_service_config = "storage_grpc_service_config.json", - package = "google.storage.v1", - service_yaml = "storage_v1.yaml", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "storage-v1-nodejs", - deps = [ - ":storage_nodejs_gapic", - ":storage_proto", - ], -) ############################################################################## # Ruby ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", - "ruby_gapic_assembly_pkg", - "ruby_cloud_gapic_library", "ruby_grpc_library", "ruby_proto_library", ) @@ -265,33 +145,11 @@ ruby_grpc_library( deps = [":storage_ruby_proto"], ) -ruby_cloud_gapic_library( - name = "storage_ruby_gapic", - srcs = [":storage_proto_with_info",], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-storage-v1"], - deps = [ - ":storage_ruby_grpc", - ":storage_ruby_proto", - ], -) - -# Open Source Packages -ruby_gapic_assembly_pkg( - name = "google-cloud-storage-v1-ruby", - deps = [ - ":storage_ruby_gapic", - ":storage_ruby_grpc", - ":storage_ruby_proto", - ], -) - ############################################################################## # C# ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", - "csharp_gapic_assembly_pkg", - "csharp_gapic_library", "csharp_grpc_library", "csharp_proto_library", ) @@ -307,28 +165,6 @@ csharp_grpc_library( deps = [":storage_csharp_proto"], ) -# Client streaming unsupported in C#, cannot build. -# csharp_gapic_library( -# name = "storage_csharp_gapic", -# srcs = [":storage_proto_with_info"], -# grpc_service_config = "storage_grpc_service_config.json", -# common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", -# deps = [ -# ":storage_csharp_grpc", -# ":storage_csharp_proto", -# ], -# ) - -# # Open Source Packages -# csharp_gapic_assembly_pkg( -# name = "google-cloud-storage-v1-csharp", -# deps = [ -# ":storage_csharp_gapic", -# ":storage_csharp_grpc", -# ":storage_csharp_proto", -# ], -# ) - ############################################################################## # C++ ############################################################################## @@ -346,7 +182,6 @@ cc_proto_library( cc_grpc_library( name = "storage_cc_grpc", srcs = [":storage_proto"], - generate_mocks = True, grpc_only = True, deps = [":storage_cc_proto"], ) diff --git a/google/storage/v1/storage.proto b/google/storage/v1/storage.proto index 7ba34bffe..11418166d 100644 --- a/google/storage/v1/storage.proto +++ b/google/storage/v1/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -18,321 +18,14 @@ package google.storage.v1; import "google/api/field_behavior.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"; import "google/protobuf/wrappers.proto"; import "google/storage/v1/storage_resources.proto"; -import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/storage/v1;storage"; option java_multiple_files = true; option java_package = "com.google.storage.v1"; -// Manages Google Cloud Storage resources. -service Storage { - option (google.api.default_host) = "storage.googleapis.com"; - option (google.api.oauth_scopes) = - "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"; - - // Permanently deletes the ACL entry for the specified entity on the specified - // bucket. - rpc DeleteBucketAccessControl(DeleteBucketAccessControlRequest) returns (google.protobuf.Empty) { - } - - // Returns the ACL entry for the specified entity on the specified bucket. - rpc GetBucketAccessControl(GetBucketAccessControlRequest) returns (BucketAccessControl) { - } - - // Creates a new ACL entry on the specified bucket. - rpc InsertBucketAccessControl(InsertBucketAccessControlRequest) returns (BucketAccessControl) { - } - - // Retrieves ACL entries on the specified bucket. - rpc ListBucketAccessControls(ListBucketAccessControlsRequest) returns (ListBucketAccessControlsResponse) { - } - - // Updates an ACL entry on the specified bucket. Equivalent to - // PatchBucketAccessControl, but all unspecified fields will be - // reset to their default values. - rpc UpdateBucketAccessControl(UpdateBucketAccessControlRequest) returns (BucketAccessControl) { - } - - // Updates an ACL entry on the specified bucket. - rpc PatchBucketAccessControl(PatchBucketAccessControlRequest) returns (BucketAccessControl) { - } - - // Permanently deletes an empty bucket. - rpc DeleteBucket(DeleteBucketRequest) returns (google.protobuf.Empty) { - } - - // Returns metadata for the specified bucket. - rpc GetBucket(GetBucketRequest) returns (Bucket) { - } - - // Creates a new bucket. - rpc InsertBucket(InsertBucketRequest) returns (Bucket) { - } - - // List active object change notification channels for this bucket. - rpc ListChannels(ListChannelsRequest) returns (ListChannelsResponse) { - } - - // Retrieves a list of buckets for a given project. - rpc ListBuckets(ListBucketsRequest) returns (ListBucketsResponse) { - } - - // Locks retention policy on a bucket. - rpc LockBucketRetentionPolicy(LockRetentionPolicyRequest) returns (Bucket) { - } - - // Gets the IAM policy for the specified bucket. - rpc GetBucketIamPolicy(GetIamPolicyRequest) returns (google.iam.v1.Policy) { - } - - // Updates an IAM policy for the specified bucket. - rpc SetBucketIamPolicy(SetIamPolicyRequest) returns (google.iam.v1.Policy) { - } - - // Tests a set of permissions on the given bucket to see which, if - // any, are held by the caller. - rpc TestBucketIamPermissions(TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { - } - - // Updates a bucket. Changes to the bucket will be readable immediately after - // writing, but configuration changes may take time to propagate. - rpc PatchBucket(PatchBucketRequest) returns (Bucket) { - } - - // Updates a bucket. Equivalent to PatchBucket, but always replaces all - // mutatable fields of the bucket with new values, reverting all - // unspecified fields to their default values. - // Like PatchBucket, Changes to the bucket will be readable immediately after - // writing, but configuration changes may take time to propagate. - rpc UpdateBucket(UpdateBucketRequest) returns (Bucket) { - } - - // Halts "Object Change Notification" push messagages. - // See https://cloud.google.com/storage/docs/object-change-notification - // Note: this is not related to the newer "Notifications" resource, which - // are stopped using DeleteNotification. - rpc StopChannel(StopChannelRequest) returns (google.protobuf.Empty) { - } - - // Permanently deletes the default object ACL entry for the specified entity - // on the specified bucket. - rpc DeleteDefaultObjectAccessControl(DeleteDefaultObjectAccessControlRequest) returns (google.protobuf.Empty) { - } - - // Returns the default object ACL entry for the specified entity on the - // specified bucket. - rpc GetDefaultObjectAccessControl(GetDefaultObjectAccessControlRequest) returns (ObjectAccessControl) { - } - - // Creates a new default object ACL entry on the specified bucket. - rpc InsertDefaultObjectAccessControl(InsertDefaultObjectAccessControlRequest) returns (ObjectAccessControl) { - } - - // Retrieves default object ACL entries on the specified bucket. - rpc ListDefaultObjectAccessControls(ListDefaultObjectAccessControlsRequest) returns (ListObjectAccessControlsResponse) { - } - - // Updates a default object ACL entry on the specified bucket. - rpc PatchDefaultObjectAccessControl(PatchDefaultObjectAccessControlRequest) returns (ObjectAccessControl) { - } - - // Updates a default object ACL entry on the specified bucket. Equivalent to - // PatchDefaultObjectAccessControl, but modifies all unspecified fields to - // their default values. - rpc UpdateDefaultObjectAccessControl(UpdateDefaultObjectAccessControlRequest) returns (ObjectAccessControl) { - } - - // Permanently deletes a notification subscription. - // Note: Older, "Object Change Notification" push subscriptions should be - // deleted using StopChannel instead. - rpc DeleteNotification(DeleteNotificationRequest) returns (google.protobuf.Empty) { - } - - // View a notification configuration. - rpc GetNotification(GetNotificationRequest) returns (Notification) { - } - - // Creates a notification subscription for a given bucket. - // These notifications, when triggered, publish messages to the specified - // Cloud Pub/Sub topics. - // See https://cloud.google.com/storage/docs/pubsub-notifications. - rpc InsertNotification(InsertNotificationRequest) returns (Notification) { - } - - // Retrieves a list of notification subscriptions for a given bucket. - rpc ListNotifications(ListNotificationsRequest) returns (ListNotificationsResponse) { - } - - // Permanently deletes the ACL entry for the specified entity on the specified - // object. - rpc DeleteObjectAccessControl(DeleteObjectAccessControlRequest) returns (google.protobuf.Empty) { - } - - // Returns the ACL entry for the specified entity on the specified object. - rpc GetObjectAccessControl(GetObjectAccessControlRequest) returns (ObjectAccessControl) { - } - - // Creates a new ACL entry on the specified object. - rpc InsertObjectAccessControl(InsertObjectAccessControlRequest) returns (ObjectAccessControl) { - } - - // Retrieves ACL entries on the specified object. - rpc ListObjectAccessControls(ListObjectAccessControlsRequest) returns (ListObjectAccessControlsResponse) { - } - - // Patches an ACL entry on the specified object. Patch is similar to update, - // but only applies or appends the specified fields in the - // object_access_control object. Other fields are unaffected. - rpc PatchObjectAccessControl(PatchObjectAccessControlRequest) returns (ObjectAccessControl) { - } - - // Updates an ACL entry on the specified object. - rpc UpdateObjectAccessControl(UpdateObjectAccessControlRequest) returns (ObjectAccessControl) { - } - - // Concatenates a list of existing objects into a new object in the same - // bucket. - rpc ComposeObject(ComposeObjectRequest) returns (Object) { - } - - // Copies a source object to a destination object. Optionally overrides - // metadata. - rpc CopyObject(CopyObjectRequest) returns (Object) { - } - - // Deletes an object and its metadata. Deletions are permanent if versioning - // is not enabled for the bucket, or if the `generation` parameter - // is used. - rpc DeleteObject(DeleteObjectRequest) returns (google.protobuf.Empty) { - } - - // Retrieves an object's metadata. - rpc GetObject(GetObjectRequest) returns (Object) { - } - - // Reads an object's data. - rpc GetObjectMedia(GetObjectMediaRequest) returns (stream GetObjectMediaResponse) { - } - - // Stores a new object and metadata. - // - // An object can be written either in a single message stream or in a - // resumable sequence of message streams. To write using a single stream, - // the client should include in the first message of the stream an - // `InsertObjectSpec` describing the destination bucket, object, and any - // preconditions. Additionally, the final message must set 'finish_write' to - // true, or else it is an error. - // - // For a resumable write, the client should instead call - // `StartResumableWrite()` and provide that method an `InsertObjectSpec.` - // They should then attach the returned `upload_id` to the first message of - // each following call to `Insert`. If there is an error or the connection is - // broken during the resumable `Insert()`, the client should check the status - // of the `Insert()` by calling `QueryWriteStatus()` and continue writing from - // the returned `committed_size`. This may be less than the amount of data the - // client previously sent. - // - // The service will not view the object as complete until the client has - // sent an `Insert` with `finish_write` set to `true`. Sending any - // requests on a stream after sending a request with `finish_write` set to - // `true` will cause an error. The client **should** check the - // `Object` it receives to determine how much data the service was - // able to commit and whether the service views the object as complete. - rpc InsertObject(stream InsertObjectRequest) returns (Object) { - } - - // Retrieves a list of objects matching the criteria. - rpc ListObjects(ListObjectsRequest) returns (ListObjectsResponse) { - } - - // Rewrites a source object to a destination object. Optionally overrides - // metadata. - rpc RewriteObject(RewriteObjectRequest) returns (RewriteResponse) { - } - - // Starts a resumable write. How long the write operation remains valid, and - // what happens when the write operation becomes invalid, are - // service-dependent. - rpc StartResumableWrite(StartResumableWriteRequest) returns (StartResumableWriteResponse) { - } - - // Determines the `committed_size` for an object that is being written, which - // can then be used as the `write_offset` for the next `Write()` call. - // - // If the object does not exist (i.e., the object has been deleted, or the - // first `Write()` has not yet reached the service), this method returns the - // error `NOT_FOUND`. - // - // The client **may** call `QueryWriteStatus()` at any time to determine how - // much data has been processed for this object. This is useful if the - // client is buffering data and needs to know which data can be safely - // evicted. For any sequence of `QueryWriteStatus()` calls for a given - // object name, the sequence of returned `committed_size` values will be - // non-decreasing. - rpc QueryWriteStatus(QueryWriteStatusRequest) returns (QueryWriteStatusResponse) { - } - - // Updates an object's metadata. - rpc PatchObject(PatchObjectRequest) returns (Object) { - } - - // Updates an object's metadata. Equivalent to PatchObject, but always - // replaces all mutatable fields of the bucket with new values, reverting all - // unspecified fields to their default values. - rpc UpdateObject(UpdateObjectRequest) returns (Object) { - } - - // Gets the IAM policy for the specified object. - rpc GetObjectIamPolicy(GetIamPolicyRequest) returns (google.iam.v1.Policy) { - } - - // Updates an IAM policy for the specified object. - rpc SetObjectIamPolicy(SetIamPolicyRequest) returns (google.iam.v1.Policy) { - } - - // Tests a set of permissions on the given object to see which, if - // any, are held by the caller. - rpc TestObjectIamPermissions(TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { - } - - // Watch for changes on all objects in a bucket. - rpc WatchAllObjects(WatchAllObjectsRequest) returns (Channel) { - } - - // Retrieves the name of a project's Google Cloud Storage service account. - rpc GetServiceAccount(GetProjectServiceAccountRequest) returns (ServiceAccount) { - } - - // Creates a new HMAC key for the given service account. - rpc CreateHmacKey(CreateHmacKeyRequest) returns (CreateHmacKeyResponse) { - } - - // Deletes a given HMAC key. Key must be in an INACTIVE state. - rpc DeleteHmacKey(DeleteHmacKeyRequest) returns (google.protobuf.Empty) { - } - - // Gets an existing HMAC key metadata for the given id. - rpc GetHmacKey(GetHmacKeyRequest) returns (HmacKeyMetadata) { - } - - // Lists HMAC keys under a given project with the additional filters provided. - rpc ListHmacKeys(ListHmacKeysRequest) returns (ListHmacKeysResponse) { - } - - // Updates a given HMAC key state between ACTIVE and INACTIVE. - rpc UpdateHmacKey(UpdateHmacKeyRequest) returns (HmacKeyMetadata) { - } -} - // Request message for DeleteBucketAccessControl. message DeleteBucketAccessControlRequest { // Required. Name of a bucket. @@ -1163,7 +856,9 @@ message GetObjectMediaRequest { // A negative `read_offset` value will be interpreted as the number of bytes // back from the end of the object to be returned. For example, if an object's // length is 15 bytes, a GetObjectMediaRequest with `read_offset` = -5 and - // `read_limit` = 3 would return bytes 10 through 12 of the object. + // `read_limit` = 3 would return bytes 10 through 12 of the object. Requesting + // a negative offset whose magnitude is larger than the size of the object + // will result in an error. int64 read_offset = 4; // The maximum number of `data` bytes the server is allowed to return in the @@ -1408,11 +1103,23 @@ message ListObjectsRequest { // Versioning](https://cloud.google.com/storage/docs/object-versioning). bool versions = 9; + // Filter results to objects whose names are lexicographically equal to or + // after lexicographic_start. If lexicographic_end is also set, the objects + // listed have names between lexicographic_start (inclusive) and + // lexicographic_end (exclusive). + string lexicographic_start = 11; + + // Filter results to objects whose names are lexicographically before + // lexicographic_end. If lexicographic_start is also set, the objects listed + // have names between lexicographic_start (inclusive) and lexicographic_end + // (exclusive). + string lexicographic_end = 12; + // A set of parameters common to all Storage API requests. CommonRequestParams common_request_params = 10; } -// Request object for `ByteStream.QueryWriteStatus`. +// Request object for `QueryWriteStatus`. message QueryWriteStatusRequest { // Required. The name of the resume token for the object whose write status is being // requested. @@ -1425,7 +1132,7 @@ message QueryWriteStatusRequest { CommonRequestParams common_request_params = 3; } -// Response object for `ByteStream.QueryWriteStatus`. +// Response object for `QueryWriteStatus`. message QueryWriteStatusResponse { // The number of bytes that have been processed for the given object. int64 committed_size = 1; @@ -1433,6 +1140,9 @@ message QueryWriteStatusResponse { // `complete` is `true` only if the client has sent a `InsertObjectRequest` // with `finish_write` set to true, and the server has processed that request. bool complete = 2; + + // The metadata for the uploaded object. Only set if `complete` is `true`. + Object resource = 3; } // Request message for RewriteObject. @@ -1576,7 +1286,7 @@ message StartResumableWriteRequest { CommonRequestParams common_request_params = 4; } -// Response object for ByteStream.StartResumableWrite. +// Response object for `StartResumableWrite`. message StartResumableWriteResponse { // The upload_id of the newly started resumable write operation. This // value should be copied into the `InsertObjectRequest.upload_id` field. @@ -1888,94 +1598,8 @@ message CommonRequestParams { // with applications that run cron jobs on App Engine on a user's behalf. // You can choose any arbitrary string that uniquely identifies a user, but it // is limited to 40 characters. - // Overrides user_ip if both are provided. string quota_user = 2; // Subset of fields to include in the response. google.protobuf.FieldMask fields = 4; } - -// Shared constants. -message ServiceConstants { - // A collection of constant values meaningful to the Storage API. - enum Values { - option allow_alias = true; - - // Unused. Proto3 requires first enum to be 0. - VALUES_UNSPECIFIED = 0; - - // The maximum size chunk that can will be returned in a single - // ReadRequest. - // 2 MiB. - MAX_READ_CHUNK_BYTES = 2097152; - - // The maximum size chunk that can be sent in a single InsertObjectRequest. - // 2 MiB. - MAX_WRITE_CHUNK_BYTES = 2097152; - - // The maximum size of an object in MB - whether written in a single stream - // or composed from multiple other objects. - // 5 TiB. - MAX_OBJECT_SIZE_MB = 5242880; - - // The maximum length field name that can be sent in a single - // custom metadata field. - // 1 KiB. - MAX_CUSTOM_METADATA_FIELD_NAME_BYTES = 1024; - - // The maximum length field value that can be sent in a single - // custom_metadata field. - // 4 KiB. - MAX_CUSTOM_METADATA_FIELD_VALUE_BYTES = 4096; - - // The maximum total bytes that can be populated into all field names and - // values of the custom_metadata for one object. - // 8 KiB. - MAX_CUSTOM_METADATA_TOTAL_SIZE_BYTES = 8192; - - // The maximum total bytes that can be populated into all bucket metadata - // fields. - // 20 KiB. - MAX_BUCKET_METADATA_TOTAL_SIZE_BYTES = 20480; - - // The maximum number of NotificationConfigurations that can be registered - // for a given bucket. - MAX_NOTIFICATION_CONFIGS_PER_BUCKET = 100; - - // The maximum number of LifecycleRules that can be registered for a given - // bucket. - MAX_LIFECYCLE_RULES_PER_BUCKET = 100; - - // The maximum number of custom attributes per NotificationConfig. - MAX_NOTIFICATION_CUSTOM_ATTRIBUTES = 5; - - // The maximum length of a custom attribute key included in - // NotificationConfig. - MAX_NOTIFICATION_CUSTOM_ATTRIBUTE_KEY_LENGTH = 256; - - // The maximum length of a custom attribute value included in a - // NotificationConfig. - MAX_NOTIFICATION_CUSTOM_ATTRIBUTE_VALUE_LENGTH = 1024; - - // The maximum number of key/value entries per bucket label. - MAX_LABELS_ENTRIES_COUNT = 64; - - // The maximum character length of the key or value in a bucket - // label map. - MAX_LABELS_KEY_VALUE_LENGTH = 63; - - // The maximum byte size of the key or value in a bucket label - // map. - MAX_LABELS_KEY_VALUE_BYTES = 128; - - // The maximum number of object IDs that can be included in a - // DeleteObjectsRequest. - MAX_OBJECT_IDS_PER_DELETE_OBJECTS_REQUEST = 1000; - - // The maximum number of days for which a token returned by the - // GetListObjectsSplitPoints RPC is valid. - SPLIT_TOKEN_MAX_VALID_DAYS = 14; - } - - -} diff --git a/google/storage/v1/storage_gapic.yaml b/google/storage/v1/storage_gapic.yaml deleted file mode 100644 index 63019c449..000000000 --- a/google/storage/v1/storage_gapic.yaml +++ /dev/null @@ -1,5 +0,0 @@ -type: com.google.api.codegen.ConfigProto -config_schema_version: 2.0.0 -language_settings: - java: - package_name: com.google.cloud.google.storage.v1 diff --git a/google/storage/v1/storage_grpc_service_config.json b/google/storage/v1/storage_grpc_service_config.json deleted file mode 100644 index 75ee215d7..000000000 --- a/google/storage/v1/storage_grpc_service_config.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "methodConfig": [{ - "name": [{ "service": "google.storage.v1.Storage"}], - "timeout": "60s", - "retryPolicy": { - "maxAttempts": 5, - "initialBackoff": "1s", - "maxBackoff": "60s", - "backoffMultiplier": 2, - "retryableStatusCodes": [ - "DEADLINE_EXCEEDED", "UNAVAILABLE" - ] - } - }] -} diff --git a/google/storage/v1/storage_resources.proto b/google/storage/v1/storage_resources.proto index 45c0ce6ad..7baa8342c 100644 --- a/google/storage/v1/storage_resources.proto +++ b/google/storage/v1/storage_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -78,7 +78,25 @@ message Bucket { google.protobuf.Timestamp locked_time = 2; } + // Public Access Prevention configuration values. + enum PublicAccessPrevention { + // No specified PublicAccessPrevention. + PUBLIC_ACCESS_PREVENTION_UNSPECIFIED = 0; + + // Prevents access from being granted to public members 'allUsers' and + // 'allAuthenticatedUsers'. Prevents attempts to grant new access to + // public members. + ENFORCED = 1; + + // This setting is inherited from Org Policy. Does not prevent access from + // being granted to public members 'allUsers' or 'allAuthenticatedUsers'. + INHERITED = 2; + } + UniformBucketLevelAccess uniform_bucket_level_access = 1; + + // Whether IAM will enforce public access prevention. + PublicAccessPrevention public_access_prevention = 2; } // Lifecycle properties of a bucket. @@ -89,8 +107,8 @@ message Bucket { message Rule { // An action to take on an object. message Action { - // Type of the action. Currently, only `Delete` and - // `SetStorageClass` are supported. + // Type of the action. Currently, only `Delete`, `SetStorageClass`, and + // `AbortIncompleteMultipartUpload` are supported. string type = 1; // Target storage class. Required iff the type of the action is @@ -129,10 +147,38 @@ message Bucket { // A regular expression that satisfies the RE2 syntax. This condition is // satisfied when the name of the object matches the RE2 pattern. Note: // This feature is currently in the "Early Access" launch stage and is - // only available to a whitelisted set of users; that means that this + // only available to an allowlisted set of users; that means that this // feature may be changed in backward-incompatible ways and that it is // not guaranteed to be released. string matches_pattern = 6; + + // Number of days that has elapsed since the custom timestamp set on an + // object. + int32 days_since_custom_time = 7; + + // An object matches this condition if the custom timestamp set on the + // object is before this timestamp. + google.protobuf.Timestamp custom_time_before = 8; + + // This condition is relevant only for versioned objects. An object + // version satisfies this condition only if these many days have been + // passed since it became noncurrent. The value of the field must be a + // nonnegative integer. If it's zero, the object version will become + // eligible for Lifecycle action as soon as it becomes noncurrent. + int32 days_since_noncurrent_time = 9; + + // This condition is relevant only for versioned objects. An object + // version satisfies this condition only if it became noncurrent before + // the specified timestamp. + google.protobuf.Timestamp noncurrent_time_before = 10; + + // List of object name prefixes. If any prefix exactly matches the + // beginning of the object name, the condition evaluates to true. + repeated string matches_prefix = 11; + + // List of object name suffixes. If any suffix exactly matches the + // end of the object name, the condition evaluates to true. + repeated string matches_suffix = 12; } // The action to take. @@ -199,6 +245,15 @@ message Bucket { string not_found_page = 2; } + // Configuration for a bucket's Autoclass feature. + message Autoclass { + // Enables Autoclass. + bool enabled = 1; + + // Latest instant at which the `enabled` bit was flipped. + google.protobuf.Timestamp toggle_time = 2; + } + // Access controls on the bucket. repeated BucketAccessControl acl = 1; @@ -212,13 +267,14 @@ message Bucket { // The creation time of the bucket in // [https://tools.ietf.org/html/rfc3339][RFC 3339] format. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. google.protobuf.Timestamp time_created = 4; // The ID of the bucket. For buckets, the `id` and `name` properties are the // same. // Attempting to update this field after the bucket is created will result in - // an error. + // a [FieldViolation][google.rpc.BadRequest.FieldViolation]. string id = 5; // The name of the bucket. @@ -227,11 +283,13 @@ message Bucket { string name = 6; // The project number of the project the bucket belongs to. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. int64 project_number = 7; // The metadata generation of this bucket. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. int64 metageneration = 8; // The bucket's [https://www.w3.org/TR/cors/][Cross-Origin Resource Sharing] @@ -255,11 +313,13 @@ message Bucket { // HTTP 1.1 [https://tools.ietf.org/html/rfc7232#section-2.3"]Entity tag] // for the bucket. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. string etag = 12; // The modification time of the bucket. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. google.protobuf.Timestamp updated = 13; // The default value for event-based hold on newly created objects in this @@ -321,10 +381,17 @@ message Bucket { // The zone or zones from which the bucket is intended to use zonal quota. // Requests for data from outside the specified affinities are still allowed - // but won’t be able to use zonal quota. The values are case-insensitive. + // but won't be able to use zonal quota. The values are case-insensitive. // Attempting to update this field after bucket is created will result in an // error. - repeated string zone_affinity = 25; + repeated string zone_affinity = 25 [deprecated = true]; + + // Reserved for future use. + bool satisfies_pzs = 26; + + // The bucket's autoclass configuration. If there is no configuration, the + // Autoclass feature will be disabled and have no effect on the bucket. + Autoclass autoclass = 28; } // An access-control entry. @@ -646,12 +713,14 @@ message Object { // preconditions and for detecting changes in metadata. A metageneration // number is only meaningful in the context of a particular generation of a // particular object. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. int64 metageneration = 6; // The deletion time of the object. Will be returned if and only if this // version of the object has been deleted. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. google.protobuf.Timestamp time_deleted = 7; // Content-Type of the object data, matching @@ -662,16 +731,18 @@ message Object { // Content-Length of the object data in bytes, matching // [https://tools.ietf.org/html/rfc7230#section-3.3.2][RFC 7230 §3.3.2]. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. int64 size = 9; // The creation time of the object. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. google.protobuf.Timestamp time_created = 10; // CRC32c checksum. For more information about using the CRC32c // checksum, see - // [https://cloud.google.com/storage/docs/hashes-etags#_JSONAPI][Hashes and + // [https://cloud.google.com/storage/docs/hashes-etags#json-api][Hashes and // ETags: Best Practices]. This is a server determined value and should not be // supplied by the user when sending an Object. The server will ignore any // value provided. Users should instead use the object_checksums field on the @@ -680,13 +751,14 @@ message Object { // Number of underlying components that make up this object. Components are // accumulated by compose operations. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. int32 component_count = 12; // MD5 hash of the data; encoded using base64 as per // [https://tools.ietf.org/html/rfc4648#section-4][RFC 4648 §4]. For more // information about using the MD5 hash, see - // [https://cloud.google.com/storage/docs/hashes-etags#_JSONAPI][Hashes and + // [https://cloud.google.com/storage/docs/hashes-etags#json-api][Hashes and // ETags: Best Practices]. This is a server determined value and should not be // supplied by the user when sending an Object. The server will ignore any // value provided. Users should instead use the object_checksums field on the @@ -695,11 +767,13 @@ message Object { // HTTP 1.1 Entity tag for the object. See // [https://tools.ietf.org/html/rfc7232#section-2.3][RFC 7232 §2.3]. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. string etag = 14; // The modification time of the object metadata. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. google.protobuf.Timestamp updated = 15; // Storage class of the object. @@ -711,7 +785,8 @@ message Object { // The time at which the object's storage class was last changed. When the // object is initially created, it will be set to time_created. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. google.protobuf.Timestamp time_storage_class_updated = 18; // Whether an object is under temporary hold. While this flag is set to true, @@ -764,16 +839,21 @@ message Object { string bucket = 25; // The content generation of this object. Used for object versioning. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. int64 generation = 26; // The owner of the object. This will always be the uploader of the object. - // Attempting to set this field will result in an error. + // Attempting to set or update this field will result in a + // [FieldViolation][google.rpc.BadRequest.FieldViolation]. Owner owner = 27; // Metadata of customer-supplied encryption key, if the object is encrypted by // such a key. CustomerEncryption customer_encryption = 28; + + // A user-specified timestamp set on an object. + google.protobuf.Timestamp custom_time = 30; } // An access-control entry. diff --git a/google/storage/v1/storage_v1.yaml b/google/storage/v1/storage_v1.yaml deleted file mode 100644 index 95c36ab19..000000000 --- a/google/storage/v1/storage_v1.yaml +++ /dev/null @@ -1,32 +0,0 @@ -type: google.api.Service -config_version: 3 -name: storage.googleapis.com -title: Cloud Storage API - -apis: -- name: google.storage.v1.Storage - -enums: -- name: google.storage.v1.ServiceConstants.Values - -documentation: - summary: 'Lets you store and retrieve potentially-large, immutable data objects.' - overview: |- - The Google Cloud Storage API allows applications to read and write data - through the abstractions of buckets and objects, which are similar to - directories and files except that buckets cannot contain other buckets, - and directory-level operations (like directory rename) are not supported. - Buckets share a single global namespace, and each bucket belongs to a - specific project that has an associated owner that pays for the data - stored in the bucket. This API is accessed using standard gRPC requests. - -authentication: - rules: - - selector: 'google.storage.v1.Storage.*' - oauth: - canonical_scopes: |- - 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 diff --git a/google/storage/v2/BUILD.bazel b/google/storage/v2/BUILD.bazel index 29a83049c..633183745 100644 --- a/google/storage/v2/BUILD.bazel +++ b/google/storage/v2/BUILD.bazel @@ -27,6 +27,7 @@ proto_library( "//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/type:date_proto", @@ -75,6 +76,7 @@ java_gapic_library( ":storage_java_grpc", "//google/iam/v1:iam_java_grpc", ], + transport = "grpc+rest", deps = [ ":storage_java_proto", "//google/iam/v1:iam_java_proto", @@ -84,6 +86,7 @@ java_gapic_library( java_gapic_test( name = "storage_java_gapic_test_suite", test_classes = [ + "com.google.storage.v2.StorageClientHttpJsonTest", "com.google.storage.v2.StorageClientTest", ], runtime_deps = [":storage_java_gapic_test"], @@ -92,6 +95,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-storage-v2-java", + transport = "grpc+rest", deps = [ ":storage_java_gapic", ":storage_java_grpc", @@ -167,8 +171,24 @@ py_gapic_library( name = "storage_py_gapic", srcs = [":storage_proto"], grpc_service_config = "storage_grpc_service_config.json", + transport = "grpc", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + "//google/iam/v1:policy_py_proto", + ], ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1377 is fixed +#py_test( +# name = "storage_py_gapic_test", +# srcs = [ +# "storage_py_gapic_pytest.py", +# "storage_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":storage_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "storage-v2-py", diff --git a/google/storage/v2/storage.proto b/google/storage/v2/storage.proto index 6c9f8887a..f6b522a30 100644 --- a/google/storage/v2/storage.proto +++ b/google/storage/v2/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -19,6 +19,7 @@ package google.storage.v2; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/api/routing.proto"; import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; import "google/protobuf/empty.proto"; @@ -67,57 +68,135 @@ service Storage { // Permanently deletes an empty bucket. rpc DeleteBucket(DeleteBucketRequest) returns (google.protobuf.Empty) { + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "name"; } // Returns metadata for the specified bucket. rpc GetBucket(GetBucketRequest) returns (Bucket) { + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "name"; } // Creates a new bucket. rpc CreateBucket(CreateBucketRequest) returns (Bucket) { + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{project=**}" + } + }; option (google.api.method_signature) = "parent,bucket,bucket_id"; } // Retrieves a list of buckets for a given project. rpc ListBuckets(ListBucketsRequest) returns (ListBucketsResponse) { + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{project=**}" + } + }; option (google.api.method_signature) = "parent"; } // Locks retention policy on a bucket. rpc LockBucketRetentionPolicy(LockBucketRetentionPolicyRequest) returns (Bucket) { + option (google.api.routing) = { + routing_parameters { + field: "bucket" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "bucket"; } - // Gets the IAM policy for a specified bucket. + // Gets the IAM policy for a specified bucket or object. rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.routing) = { + routing_parameters { + field: "resource" + path_template: "{bucket=**}" + } + routing_parameters { + field: "resource" + path_template: "{bucket=projects/*/buckets/*}/objects/**" + } + }; option (google.api.method_signature) = "resource"; } - // Updates an IAM policy for the specified bucket. + // Updates an IAM policy for the specified bucket or object. rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + option (google.api.routing) = { + routing_parameters { + field: "resource" + path_template: "{bucket=**}" + } + routing_parameters { + field: "resource" + path_template: "{bucket=projects/*/buckets/*}/objects/**" + } + }; option (google.api.method_signature) = "resource,policy"; } - // Tests a set of permissions on the given bucket to see which, if + // Tests a set of permissions on the given bucket or object to see which, if // any, are held by the caller. rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.routing) = { + routing_parameters { + field: "resource" + path_template: "{bucket=**}" + } + routing_parameters { + field: "resource" + path_template: "{bucket=projects/*/buckets/*}/objects/**" + } + }; option (google.api.method_signature) = "resource,permissions"; } // Updates a bucket. Equivalent to JSON API's storage.buckets.patch method. rpc UpdateBucket(UpdateBucketRequest) returns (Bucket) { + option (google.api.routing) = { + routing_parameters { + field: "bucket.name" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "bucket,update_mask"; } // Permanently deletes a notification subscription. rpc DeleteNotification(DeleteNotificationRequest) returns (google.protobuf.Empty) { + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{bucket=projects/*/buckets/*}/**" + } + }; option (google.api.method_signature) = "name"; } // View a notification config. rpc GetNotification(GetNotificationRequest) returns (Notification) { + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{bucket=projects/*/buckets/*}/**" + } + }; option (google.api.method_signature) = "name"; } @@ -126,35 +205,81 @@ service Storage { // Pub/Sub topics. // See https://cloud.google.com/storage/docs/pubsub-notifications. rpc CreateNotification(CreateNotificationRequest) returns (Notification) { + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "parent,notification"; } // Retrieves a list of notification subscriptions for a given bucket. rpc ListNotifications(ListNotificationsRequest) returns (ListNotificationsResponse) { + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "parent"; } // Concatenates a list of existing objects into a new object in the same // bucket. rpc ComposeObject(ComposeObjectRequest) returns (Object) { + option (google.api.routing) = { + routing_parameters { + field: "destination.bucket" + path_template: "{bucket=**}" + } + }; } // Deletes an object and its metadata. Deletions are permanent if versioning - // is not enabled for the bucket, or if the `generation` parameter - // is used. + // is not enabled for the bucket, or if the `generation` parameter is used. rpc DeleteObject(DeleteObjectRequest) returns (google.protobuf.Empty) { + option (google.api.routing) = { + routing_parameters { + field: "bucket" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "bucket,object"; option (google.api.method_signature) = "bucket,object,generation"; } + // Cancels an in-progress resumable upload. + rpc CancelResumableWrite(CancelResumableWriteRequest) returns (CancelResumableWriteResponse) { + option (google.api.routing) = { + routing_parameters { + field: "upload_id" + path_template: "{bucket=projects/*/buckets/*}/**" + } + }; + option (google.api.method_signature) = "upload_id"; + } + // Retrieves an object's metadata. rpc GetObject(GetObjectRequest) returns (Object) { + option (google.api.routing) = { + routing_parameters { + field: "bucket" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "bucket,object"; option (google.api.method_signature) = "bucket,object,generation"; } // Reads an object's data. rpc ReadObject(ReadObjectRequest) returns (stream ReadObjectResponse) { + option (google.api.routing) = { + routing_parameters { + field: "bucket" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "bucket,object"; option (google.api.method_signature) = "bucket,object,generation"; } @@ -162,6 +287,12 @@ service Storage { // Updates an object's metadata. // Equivalent to JSON API's storage.objects.patch. rpc UpdateObject(UpdateObjectRequest) returns (Object) { + option (google.api.routing) = { + routing_parameters { + field: "object.bucket" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "object,update_mask"; } @@ -175,13 +306,37 @@ service Storage { // true, or else it is an error. // // For a resumable write, the client should instead call - // `StartResumableWrite()` and provide that method an `WriteObjectSpec.` + // `StartResumableWrite()`, populating a `WriteObjectSpec` into that request. // They should then attach the returned `upload_id` to the first message of - // each following call to `Create`. If there is an error or the connection is - // broken during the resumable `Create()`, the client should check the status - // of the `Create()` by calling `QueryWriteStatus()` and continue writing from - // the returned `persisted_size`. This may be less than the amount of data the - // client previously sent. + // each following call to `WriteObject`. If the stream is closed before + // finishing the upload (either explicitly by the client or due to a network + // error or an error response from the server), the client should do as + // follows: + // - Check the result Status of the stream, to determine if writing can be + // resumed on this stream or must be restarted from scratch (by calling + // `StartResumableWrite()`). The resumable errors are DEADLINE_EXCEEDED, + // INTERNAL, and UNAVAILABLE. For each case, the client should use binary + // exponential backoff before retrying. Additionally, writes can be + // resumed after RESOURCE_EXHAUSTED errors, but only after taking + // appropriate measures, which may include reducing aggregate send rate + // across clients and/or requesting a quota increase for your project. + // - If the call to `WriteObject` returns `ABORTED`, that indicates + // concurrent attempts to update the resumable write, caused either by + // multiple racing clients or by a single client where the previous + // request was timed out on the client side but nonetheless reached the + // server. In this case the client should take steps to prevent further + // concurrent writes (e.g., increase the timeouts, stop using more than + // one process to perform the upload, etc.), and then should follow the + // steps below for resuming the upload. + // - For resumable errors, the client should call `QueryWriteStatus()` and + // then continue writing from the returned `persisted_size`. This may be + // less than the amount of data the client previously sent. Note also that + // it is acceptable to send data starting at an offset earlier than the + // returned `persisted_size`; in this case, the service will skip data at + // offsets that were already persisted (without checking that it matches + // the previously written data), and write only the data starting from the + // persisted offset. This behavior can make client-side handling simpler + // in some cases. // // The service will not view the object as complete until the client has // sent a `WriteObjectRequest` with `finish_write` set to `true`. Sending any @@ -189,23 +344,58 @@ service Storage { // `true` will cause an error. The client **should** check the response it // receives to determine how much data the service was able to commit and // whether the service views the object as complete. + // + // Attempting to resume an already finalized object will result in an OK + // status, with a WriteObjectResponse containing the finalized object's + // metadata. rpc WriteObject(stream WriteObjectRequest) returns (WriteObjectResponse) { + option (google.api.routing) = { + routing_parameters { + field: "write_object_spec.resource.bucket" + path_template: "{bucket=**}" + } + routing_parameters { + field: "upload_id" + path_template: "{bucket=projects/*/buckets/*}/**" + } + }; } // Retrieves a list of objects matching the criteria. rpc ListObjects(ListObjectsRequest) returns (ListObjectsResponse) { + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "{bucket=**}" + } + }; option (google.api.method_signature) = "parent"; } // Rewrites a source object to a destination object. Optionally overrides // metadata. rpc RewriteObject(RewriteObjectRequest) returns (RewriteResponse) { + option (google.api.routing) = { + routing_parameters { + field: "source_bucket" + } + routing_parameters { + field: "destination_bucket" + path_template: "{bucket=**}" + } + }; } // Starts a resumable write. How long the write operation remains valid, and // what happens when the write operation becomes invalid, are // service-dependent. rpc StartResumableWrite(StartResumableWriteRequest) returns (StartResumableWriteResponse) { + option (google.api.routing) = { + routing_parameters { + field: "write_object_spec.resource.bucket" + path_template: "{bucket=**}" + } + }; } // Determines the `persisted_size` for an object that is being written, which @@ -222,36 +412,73 @@ service Storage { // object name, the sequence of returned `persisted_size` values will be // non-decreasing. rpc QueryWriteStatus(QueryWriteStatusRequest) returns (QueryWriteStatusResponse) { + option (google.api.routing) = { + routing_parameters { + field: "upload_id" + path_template: "{bucket=projects/*/buckets/*}/**" + } + }; option (google.api.method_signature) = "upload_id"; } // Retrieves the name of a project's Google Cloud Storage service account. rpc GetServiceAccount(GetServiceAccountRequest) returns (ServiceAccount) { + option (google.api.routing) = { + routing_parameters { + field: "project" + } + }; option (google.api.method_signature) = "project"; } // Creates a new HMAC key for the given service account. rpc CreateHmacKey(CreateHmacKeyRequest) returns (CreateHmacKeyResponse) { + option (google.api.routing) = { + routing_parameters { + field: "project" + } + }; option (google.api.method_signature) = "project,service_account_email"; } // Deletes a given HMAC key. Key must be in an INACTIVE state. rpc DeleteHmacKey(DeleteHmacKeyRequest) returns (google.protobuf.Empty) { + option (google.api.routing) = { + routing_parameters { + field: "project" + } + }; option (google.api.method_signature) = "access_id,project"; } // Gets an existing HMAC key metadata for the given id. rpc GetHmacKey(GetHmacKeyRequest) returns (HmacKeyMetadata) { + option (google.api.routing) = { + routing_parameters { + field: "project" + } + }; option (google.api.method_signature) = "access_id,project"; } // Lists HMAC keys under a given project with the additional filters provided. rpc ListHmacKeys(ListHmacKeysRequest) returns (ListHmacKeysResponse) { + option (google.api.routing) = { + routing_parameters { + field: "project" + } + }; option (google.api.method_signature) = "project"; } // Updates a given HMAC key state between ACTIVE and INACTIVE. rpc UpdateHmacKey(UpdateHmacKeyRequest) returns (HmacKeyMetadata) { + option (google.api.routing) = { + routing_parameters { + field: "hmac_key.project" + path_template: "{project=**}" + } + }; option (google.api.method_signature) = "hmac_key,update_mask"; } } @@ -272,9 +499,6 @@ message DeleteBucketRequest { // If set, only deletes the bucket if its metageneration does not match this // value. optional int64 if_metageneration_not_match = 3; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 5; } // Request message for GetBucket. @@ -295,9 +519,6 @@ message GetBucketRequest { // value, the request will return an error. optional int64 if_metageneration_not_match = 3; - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 4; - // Mask specifying which fields to read. // A "*" field may be used to indicate all fields. // If no mask is specified, will default to all fields. @@ -314,21 +535,26 @@ message CreateBucketRequest { } ]; - // Required. Properties of the new bucket being inserted. - // The project and name of the bucket are specified in this request, not in - // the bucket resource. - Bucket bucket = 2 [(google.api.field_behavior) = REQUIRED]; + // Properties of the new bucket being inserted. + // The project and name of the bucket are specified in the parent and + // bucket_id fields, respectively. Populating those fields in `bucket` will + // result in an error. + Bucket bucket = 2; - // The ID to use for this bucket, which will become the final component of + // Required. The ID to use for this bucket, which will become the final component of // the bucket's resource name. For example, the value `foo` might result in // a bucket with the name `projects/123456/buckets/foo`. - string bucket_id = 3; + string bucket_id = 3 [(google.api.field_behavior) = REQUIRED]; // Apply a predefined set of access controls to this bucket. - PredefinedBucketAcl predefined_acl = 4; + // Valid values are "authenticatedRead", "private", "projectPrivate", + // "publicRead", or "publicReadWrite". + string predefined_acl = 6; // Apply a predefined set of default object access controls to this bucket. - PredefinedObjectAcl predefined_default_object_acl = 5; + // Valid values are "authenticatedRead", "bucketOwnerFullControl", + // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". + string predefined_default_object_acl = 7; } // Request message for ListBuckets. @@ -359,9 +585,6 @@ message ListBucketsRequest { // items.acl, and items.default_object_acl. // * may be used to mean "all fields". optional google.protobuf.FieldMask read_mask = 5; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 6; } // The result of a call to Buckets.ListBuckets @@ -384,19 +607,16 @@ message LockBucketRetentionPolicyRequest { } ]; - // Makes the operation conditional on whether bucket's current metageneration + // Required. Makes the operation conditional on whether bucket's current metageneration // matches the given value. Must be positive. - int64 if_metageneration_match = 2; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 3; + int64 if_metageneration_match = 2 [(google.api.field_behavior) = REQUIRED]; } // Request for UpdateBucket method. message UpdateBucketRequest { - // The bucket to update. + // Required. The bucket to update. // The bucket's `name` field will be used to identify the bucket. - Bucket bucket = 1; + Bucket bucket = 1 [(google.api.field_behavior) = REQUIRED]; // If set, will only modify the bucket if its metageneration matches this // value. @@ -407,12 +627,16 @@ message UpdateBucketRequest { optional int64 if_metageneration_not_match = 3; // Apply a predefined set of access controls to this bucket. - PredefinedBucketAcl predefined_acl = 4; + // Valid values are "authenticatedRead", "private", "projectPrivate", + // "publicRead", or "publicReadWrite". + string predefined_acl = 8; // Apply a predefined set of default object access controls to this bucket. - PredefinedObjectAcl predefined_default_object_acl = 5; + // Valid values are "authenticatedRead", "bucketOwnerFullControl", + // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". + string predefined_default_object_acl = 9; - // List of fields to be updated. + // Required. List of fields to be updated. // // To specify ALL fields, equivalent to the JSON API's "update" function, // specify a single field with the value `*`. Note: not recommended. If a new @@ -422,10 +646,7 @@ message UpdateBucketRequest { // Not specifying any fields is an error. // Not specifying a field while setting that field to a non-default value is // an error. - google.protobuf.FieldMask update_mask = 6; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 7; + google.protobuf.FieldMask update_mask = 6 [(google.api.field_behavior) = REQUIRED]; } // Request message for DeleteNotification. @@ -478,7 +699,8 @@ message ListNotificationsRequest { // The maximum number of notifications to return. The service may return fewer // than this value. - // The maximum value is 100; values above 100 will be coerced to 100. + // The default value is 100. Specifying a value above 100 will result in a + // page_size of 100. int32 page_size = 2; // A page token, received from a previous `ListNotifications` call. @@ -511,9 +733,9 @@ message ComposeObjectRequest { optional int64 if_generation_match = 1; } - // The source object's name. All source objects must reside in the same + // Required. The source object's name. All source objects must reside in the same // bucket. - string name = 1; + string name = 1 [(google.api.field_behavior) = REQUIRED]; // The generation of this object to use as the source. int64 generation = 2; @@ -529,7 +751,9 @@ message ComposeObjectRequest { repeated SourceObject source_objects = 2; // Apply a predefined set of access controls to the destination object. - PredefinedObjectAcl destination_predefined_acl = 3; + // Valid values are "authenticatedRead", "bucketOwnerFullControl", + // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". + string destination_predefined_acl = 9; // Makes the operation conditional on whether the object's current generation // matches the given value. Setting to 0 makes the operation succeed only if @@ -550,13 +774,10 @@ message ComposeObjectRequest { // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 7; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 8; } // Message for deleting an object. -// Either `bucket` and `object` *or* `upload_id` **must** be set (but not both). +// `bucket` and `object` **must** be set. message DeleteObjectRequest { // Required. Name of the bucket in which the object resides. string bucket = 1 [(google.api.field_behavior) = REQUIRED]; @@ -564,11 +785,6 @@ message DeleteObjectRequest { // Required. The name of the object to delete (when not using a resumable write). string object = 2 [(google.api.field_behavior) = REQUIRED]; - // The resumable upload_id of the object to delete (when deleting an - // in-progress resumable write). This should be copied from the `upload_id` - // field of `StartResumableWriteResponse`. - string upload_id = 3; - // If present, permanently deletes a specific revision of this object (as // opposed to the latest version, the default). int64 generation = 4; @@ -578,7 +794,7 @@ message DeleteObjectRequest { // there are no live versions of the object. optional int64 if_generation_match = 5; - // Makes the operation conditional on whether the object's current generation + // Makes the operation conditional on whether the object's live generation // does not match the given value. If no live object exists, the precondition // fails. Setting to 0 makes the operation succeed only if there is a live // version of the object. @@ -594,18 +810,29 @@ message DeleteObjectRequest { // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 10; +} + +// Message for canceling an in-progress resumable upload. +// `upload_id` **must** be set. +message CancelResumableWriteRequest { + // Required. The upload_id of the resumable upload to cancel. This should be copied + // from the `upload_id` field of `StartResumableWriteResponse`. + string upload_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Empty response message for canceling an in-progress resumable upload, will be +// extended as needed. +message CancelResumableWriteResponse { - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 11; } // Request message for ReadObject. message ReadObjectRequest { - // The name of the bucket containing the object to read. - string bucket = 1; + // Required. The name of the bucket containing the object to read. + string bucket = 1 [(google.api.field_behavior) = REQUIRED]; - // The name of the object to read. - string object = 2; + // Required. The name of the object to read. + string object = 2 [(google.api.field_behavior) = REQUIRED]; // If present, selects a specific revision of this object (as opposed // to the latest version, the default). @@ -618,8 +845,8 @@ message ReadObjectRequest { // back from the end of the object to be returned. For example, if an object's // length is 15 bytes, a ReadObjectRequest with `read_offset` = -5 and // `read_limit` = 3 would return bytes 10 through 12 of the object. Requesting - // a negative offset whose magnitude is larger than the size of the object - // will result in an error. + // a negative offset with magnitude larger than the size of the object will + // return the entire object. int64 read_offset = 4; // The maximum number of `data` bytes the server is allowed to return in the @@ -636,7 +863,7 @@ message ReadObjectRequest { // there are no live versions of the object. optional int64 if_generation_match = 6; - // Makes the operation conditional on whether the object's current generation + // Makes the operation conditional on whether the object's live generation // does not match the given value. If no live object exists, the precondition // fails. Setting to 0 makes the operation succeed only if there is a live // version of the object. @@ -653,9 +880,6 @@ message ReadObjectRequest { // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 10; - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 11; - // Mask specifying which fields to read. // The checksummed_data field and its children will always be present. // If no mask is specified, will default to all fields except metadata.owner @@ -681,7 +905,7 @@ message GetObjectRequest { // there are no live versions of the object. optional int64 if_generation_match = 4; - // Makes the operation conditional on whether the object's current generation + // Makes the operation conditional on whether the object's live generation // does not match the given value. If no live object exists, the precondition // fails. Setting to 0 makes the operation succeed only if there is a live // version of the object. @@ -698,9 +922,6 @@ message GetObjectRequest { // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 8; - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 9; - // Mask specifying which fields to read. // If no mask is specified, will default to all fields except metadata.acl and // metadata.owner. @@ -708,7 +929,7 @@ message GetObjectRequest { optional google.protobuf.FieldMask read_mask = 10; } -// Response message for GetObject. +// Response message for ReadObject. message ReadObjectResponse { // A portion of the data for the object. The service **may** leave `data` // empty for any given `ReadResponse`. This enables the service to inform the @@ -733,18 +954,20 @@ message ReadObjectResponse { // Describes an attempt to insert an object, possibly over multiple requests. message WriteObjectSpec { - // Destination object, including its name and its metadata. - Object resource = 1; + // Required. Destination object, including its name and its metadata. + Object resource = 1 [(google.api.field_behavior) = REQUIRED]; // Apply a predefined set of access controls to this object. - PredefinedObjectAcl predefined_acl = 2; + // Valid values are "authenticatedRead", "bucketOwnerFullControl", + // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". + string predefined_acl = 7; // Makes the operation conditional on whether the object's current // generation matches the given value. Setting to 0 makes the operation // succeed only if there are no live versions of the object. optional int64 if_generation_match = 3; - // Makes the operation conditional on whether the object's current + // Makes the operation conditional on whether the object's live // generation does not match the given value. If no live object exists, the // precondition fails. Setting to 0 makes the operation succeed only if // there is a live version of the object. @@ -757,6 +980,17 @@ message WriteObjectSpec { // Makes the operation conditional on whether the object's current // metageneration does not match the given value. optional int64 if_metageneration_not_match = 6; + + // The expected final object size being uploaded. + // If this value is set, closing the stream after writing fewer or more than + // `object_size` bytes will result in an OUT_OF_RANGE error. + // + // This situation is considered a client error, and if such an error occurs + // you must start the upload over from scratch, this time sending the correct + // number of bytes. + // + // The `object_size` value is ignored for one-shot (non-resumable) writes. + optional int64 object_size = 8; } // Request message for WriteObject. @@ -810,9 +1044,6 @@ message WriteObjectRequest { // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 8; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 9; } // Response message for WriteObject. @@ -888,9 +1119,6 @@ message ListObjectsRequest { // have names between lexicographic_start (inclusive) and lexicographic_end // (exclusive). string lexicographic_end = 11; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 9; } // Request object for `QueryWriteStatus`. @@ -901,9 +1129,6 @@ message QueryWriteStatusRequest { // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 2; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 3; } // Response object for `QueryWriteStatus`. @@ -923,21 +1148,53 @@ message QueryWriteStatusResponse { } // Request message for RewriteObject. +// If the source object is encrypted using a Customer-Supplied Encryption Key +// the key information must be provided in the copy_source_encryption_algorithm, +// copy_source_encryption_key_bytes, and copy_source_encryption_key_sha256_bytes +// fields. If the destination object should be encrypted the keying information +// should be provided in the encryption_algorithm, encryption_key_bytes, and +// encryption_key_sha256_bytes fields of the +// common_object_request_params.customer_encryption field. message RewriteObjectRequest { + // Required. Immutable. The name of the destination object. + // See the + // [Naming Guidelines](https://cloud.google.com/storage/docs/naming-objects). + // Example: `test.txt` + // The `name` field by itself does not uniquely identify a Cloud Storage + // object. A Cloud Storage object is uniquely identified by the tuple of + // (bucket, object, generation). + string destination_name = 24 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. The name of the bucket containing the destination object. + string destination_bucket = 25 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "storage.googleapis.com/Bucket" + } + ]; + + // The name of the Cloud KMS key that will be used to encrypt the destination + // object. The Cloud KMS key must be located in same location as the object. + // If the parameter is not specified, the request uses the destination + // bucket's default encryption key, if any, or else the Google-managed + // encryption key. + string destination_kms_key = 27 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; + // Properties of the destination, post-rewrite object. - // Includes bucket name, object name, KMS key. + // The `name`, `bucket` and `kms_key` fields must not be populated (these + // values are specified in the `destination_name`, `destination_bucket`, and + // `destination_kms_key` fields). + // If `destination` is present it will be used to construct the destination + // object's metadata; otherwise the destination object's metadata will be + // copied from the source object. Object destination = 1; - // List of fields to be updated in the destination object from `destination`. - // If the mask is not present, all fields from the source object will be - // copied excepting ACL. If the mask is present but specifies no fields, no - // fields will be copied. - // Non-ACL metadata not included in the mask will be copied from the source - // object. - // If not present, all fields from the destination will be set from - // `destination`. - google.protobuf.FieldMask rewrite_mask = 23; - // Required. Name of the bucket in which to find the source object. string source_bucket = 2 [(google.api.field_behavior) = REQUIRED]; @@ -956,14 +1213,16 @@ message RewriteObjectRequest { string rewrite_token = 5; // Apply a predefined set of access controls to the destination object. - PredefinedObjectAcl destination_predefined_acl = 6; + // Valid values are "authenticatedRead", "bucketOwnerFullControl", + // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". + string destination_predefined_acl = 28; // Makes the operation conditional on whether the object's current generation // matches the given value. Setting to 0 makes the operation succeed only if // there are no live versions of the object. optional int64 if_generation_match = 7; - // Makes the operation conditional on whether the object's current generation + // Makes the operation conditional on whether the object's live generation // does not match the given value. If no live object exists, the precondition // fails. Setting to 0 makes the operation succeed only if there is a live // version of the object. @@ -977,11 +1236,11 @@ message RewriteObjectRequest { // metageneration does not match the given value. optional int64 if_metageneration_not_match = 10; - // Makes the operation conditional on whether the source object's current + // Makes the operation conditional on whether the source object's live // generation matches the given value. optional int64 if_source_generation_match = 11; - // Makes the operation conditional on whether the source object's current + // Makes the operation conditional on whether the source object's live // generation does not match the given value. optional int64 if_source_generation_not_match = 12; @@ -1003,22 +1262,22 @@ message RewriteObjectRequest { // `rewriteToken` is invalid. int64 max_bytes_rewritten_per_call = 15; - // The algorithm used to encrypt the source object, if any. + // The algorithm used to encrypt the source object, if any. Used if the source + // object was encrypted with a Customer-Supplied Encryption Key. string copy_source_encryption_algorithm = 16; - // The encryption key used to encrypt the source object, if any. - // In raw bytes format (not base64-encoded). + // The raw bytes (not base64-encoded) AES-256 encryption key used to encrypt + // the source object, if it was encrypted with a Customer-Supplied Encryption + // Key. bytes copy_source_encryption_key_bytes = 21; - // The SHA-256 hash of the key used to encrypt the source object, if any. - // In raw bytes format (not base64-encoded). + // The raw bytes (not base64-encoded) SHA256 hash of the encryption key used + // to encrypt the source object, if it was encrypted with a Customer-Supplied + // Encryption Key. bytes copy_source_encryption_key_sha256_bytes = 22; // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 19; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 20; } // A rewrite response. @@ -1046,14 +1305,11 @@ message RewriteResponse { // Request message StartResumableWrite. message StartResumableWriteRequest { - // The destination bucket, object, and metadata, as well as any preconditions. - WriteObjectSpec write_object_spec = 1; + // Required. The destination bucket, object, and metadata, as well as any preconditions. + WriteObjectSpec write_object_spec = 1 [(google.api.field_behavior) = REQUIRED]; // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 3; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 4; } // Response object for `StartResumableWrite`. @@ -1065,19 +1321,19 @@ message StartResumableWriteResponse { // Request message for UpdateObject. message UpdateObjectRequest { - // The object to update. + // Required. The object to update. // The object's bucket and name fields are used to identify the object to // update. If present, the object's generation field selects a specific // revision of this object whose metadata should be updated. Otherwise, - // assumes the current, live version of the object. - Object object = 1; + // assumes the live version of the object. + Object object = 1 [(google.api.field_behavior) = REQUIRED]; // Makes the operation conditional on whether the object's current generation // matches the given value. Setting to 0 makes the operation succeed only if // there are no live versions of the object. optional int64 if_generation_match = 2; - // Makes the operation conditional on whether the object's current generation + // Makes the operation conditional on whether the object's live generation // does not match the given value. If no live object exists, the precondition // fails. Setting to 0 makes the operation succeed only if there is a live // version of the object. @@ -1092,9 +1348,11 @@ message UpdateObjectRequest { optional int64 if_metageneration_not_match = 5; // Apply a predefined set of access controls to this object. - PredefinedObjectAcl predefined_acl = 6; + // Valid values are "authenticatedRead", "bucketOwnerFullControl", + // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". + string predefined_acl = 10; - // List of fields to be updated. + // Required. List of fields to be updated. // // To specify ALL fields, equivalent to the JSON API's "update" function, // specify a single field with the value `*`. Note: not recommended. If a new @@ -1104,32 +1362,29 @@ message UpdateObjectRequest { // Not specifying any fields is an error. // Not specifying a field while setting that field to a non-default value is // an error. - google.protobuf.FieldMask update_mask = 7; + google.protobuf.FieldMask update_mask = 7 [(google.api.field_behavior) = REQUIRED]; // A set of parameters common to Storage API requests concerning an object. CommonObjectRequestParams common_object_request_params = 8; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 9; } // Request message for GetServiceAccount. message GetServiceAccountRequest { - // Required. Project ID. + // Required. Project ID, in the format of "projects/". + // can be the project ID or project number. string project = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "cloudresourcemanager.googleapis.com/Project" } ]; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 2; } // Request message for CreateHmacKey. message CreateHmacKeyRequest { - // Required. The project that the HMAC-owning service account lives in. + // Required. The project that the HMAC-owning service account lives in, in the format of + // "projects/". + // can be the project ID or project number. string project = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1139,9 +1394,6 @@ message CreateHmacKeyRequest { // Required. The service account to create the HMAC for. string service_account_email = 2 [(google.api.field_behavior) = REQUIRED]; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 3; } // Create hmac response. The only time the secret for an HMAC will be returned. @@ -1159,16 +1411,15 @@ message DeleteHmacKeyRequest { // Required. The identifying key for the HMAC to delete. string access_id = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The project id the HMAC key lies in. + // Required. The project that owns the HMAC key, in the format of + // "projects/". + // can be the project ID or project number. string project = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "cloudresourcemanager.googleapis.com/Project" } ]; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 3; } // Request object to get metadata on a given HMAC key. @@ -1176,21 +1427,22 @@ message GetHmacKeyRequest { // Required. The identifying key for the HMAC to delete. string access_id = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The project id the HMAC key lies in. + // Required. The project the HMAC key lies in, in the format of + // "projects/". + // can be the project ID or project number. string project = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "cloudresourcemanager.googleapis.com/Project" } ]; - - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 3; } // Request to fetch a list of HMAC keys under a given project. message ListHmacKeysRequest { - // Required. The project id to list HMAC keys for. + // Required. The project to list HMAC keys for, in the format of + // "projects/". + // can be the project ID or project number. string project = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1198,20 +1450,17 @@ message ListHmacKeysRequest { } ]; - // Optional. The maximum number of keys to return. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A previously returned token from ListHmacKeysResponse to get the next page. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + // The maximum number of keys to return. + int32 page_size = 2; - // Optional. If set, filters to only return HMAC keys for specified service account. - string service_account_email = 4 [(google.api.field_behavior) = OPTIONAL]; + // A previously returned token from ListHmacKeysResponse to get the next page. + string page_token = 3; - // Optional. If set, return deleted keys that have not yet been wiped out. - bool show_deleted_keys = 5 [(google.api.field_behavior) = OPTIONAL]; + // If set, filters to only return HMAC keys for specified service account. + string service_account_email = 4; - // Optional. A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 6 [(google.api.field_behavior) = OPTIONAL]; + // If set, return deleted keys that have not yet been wiped out. + bool show_deleted_keys = 5; } // Hmac key list response with next page information. @@ -1225,6 +1474,9 @@ message ListHmacKeysResponse { } // Request object to update an HMAC key state. +// HmacKeyMetadata.state is required and the only writable field in +// UpdateHmacKey operation. Specifying fields other than state will result in an +// error. message UpdateHmacKeyRequest { // Required. The HMAC key to update. // If present, the hmac_key's `id` field will be used to identify the key. @@ -1232,38 +1484,27 @@ message UpdateHmacKeyRequest { // identify the key. HmacKeyMetadata hmac_key = 1 [(google.api.field_behavior) = REQUIRED]; - // A set of parameters common to all Storage API requests. - CommonRequestParams common_request_params = 2; - // Update mask for hmac_key. + // Not specifying any fields will mean only the `state` field is updated to + // the value specified in `hmac_key`. google.protobuf.FieldMask update_mask = 3; } // Parameters that can be passed to any object request. message CommonObjectRequestParams { - // Encryption algorithm used with Customer-Supplied Encryption Keys feature. + // Encryption algorithm used with the Customer-Supplied Encryption Keys + // feature. string encryption_algorithm = 1; - // Encryption key used with Customer-Supplied Encryption Keys feature. + // Encryption key used with the Customer-Supplied Encryption Keys feature. // In raw bytes format (not base64-encoded). bytes encryption_key_bytes = 4; - // SHA256 hash of encryption key used with Customer-Supplied Encryption Keys - // feature. + // SHA256 hash of encryption key used with the Customer-Supplied Encryption + // Keys feature. bytes encryption_key_sha256_bytes = 5; } -// Parameters that can be passed to any request. -message CommonRequestParams { - // Required. Required when using buckets with Requestor Pays feature enabled. - string user_project = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - } - ]; -} - // Shared constants. message ServiceConstants { // A collection of constant values meaningful to the Storage API. @@ -1390,8 +1631,8 @@ message Bucket { // Encryption properties of a bucket. message Encryption { - // A Cloud KMS key that will be used to encrypt objects inserted into this - // bucket, if no encryption method is specified. + // The name of the Cloud KMS key that will be used to encrypt objects + // inserted into this bucket, if no encryption method is specified. string default_kms_key = 1 [(google.api.resource_reference) = { type: "cloudkms.googleapis.com/CryptoKey" }]; @@ -1406,32 +1647,17 @@ message Bucket { bool enabled = 1; // The deadline time for changing - // `iamConfig.uniformBucketLevelAccess.enabled` from - // true to false in [RFC 3339](https://tools.ietf.org/html/rfc3339). + // `iamConfig.uniformBucketLevelAccess.enabled` from `true` to `false`. // Mutable until the specified deadline is reached, but not afterward. google.protobuf.Timestamp lock_time = 2; } - // Public Access Prevention config values. - enum PublicAccessPrevention { - // No specified PublicAccessPrevention. - PUBLIC_ACCESS_PREVENTION_UNSPECIFIED = 0; - - // Prevents access from being granted to public members 'allUsers' and - // 'allAuthenticatedUsers'. Prevents attempts to grant new access to - // public members. - ENFORCED = 1; - - // This setting is inherited from Org Policy. Does not prevent access from - // being granted to public members 'allUsers' or 'allAuthenticatedUsers'. - INHERITED = 2; - } - // Bucket restriction options currently enforced on the bucket. UniformBucketLevelAccess uniform_bucket_level_access = 1; - // Whether IAM will enforce public access prevention. - PublicAccessPrevention public_access_prevention = 2; + // Whether IAM will enforce public access prevention. Valid values are + // "enforced" or "inherited". + string public_access_prevention = 3; } // Lifecycle properties of a bucket. @@ -1442,8 +1668,8 @@ message Bucket { message Rule { // An action to take on an object. message Action { - // Type of the action. Currently, only `Delete` and - // `SetStorageClass` are supported. + // Type of the action. Currently, only `Delete`, `SetStorageClass`, and + // `AbortIncompleteMultipartUpload` are supported. string type = 1; // Target storage class. Required iff the type of the action is @@ -1499,6 +1725,14 @@ message Bucket { // version satisfies this condition only if it became noncurrent before // the specified date in UTC. google.type.Date noncurrent_time_before = 10; + + // List of object name prefixes. If any prefix exactly matches the + // beginning of the object name, the condition evaluates to true. + repeated string matches_prefix = 11; + + // List of object name suffixes. If any suffix exactly matches the + // end of the object name, the condition evaluates to true. + repeated string matches_suffix = 12; } // The action to take. @@ -1515,7 +1749,8 @@ message Bucket { // Logging-related properties of a bucket. message Logging { - // The destination bucket where the current bucket's logs should be placed. + // The destination bucket where the current bucket's logs should be placed, + // using path format (like `projects/123456/buckets/foo`). string log_bucket = 1; // A prefix for log object names. @@ -1525,8 +1760,7 @@ message Bucket { // Retention policy properties of a bucket. message RetentionPolicy { // Server-determined value that indicates the time from which policy was - // enforced and effective. This value is in - // [https://tools.ietf.org/html/rfc3339][RFC 3339] format. + // enforced and effective. google.protobuf.Timestamp effective_time = 1; // Once locked, an object retention policy cannot be modified. @@ -1536,7 +1770,7 @@ message Bucket { // duration must be greater than zero and less than 100 years. Note that // enforcement of retention periods less than a day is not guaranteed. Such // periods should only be used for testing purposes. - int64 retention_period = 3; + optional int64 retention_period = 3; } // Properties of a bucket related to versioning. @@ -1566,12 +1800,25 @@ message Bucket { } // Configuration for Custom Dual Regions. It should specify precisely two - // eligible regions within the same Multiregion. + // eligible regions within the same Multiregion. More information on regions + // may be found [https://cloud.google.com/storage/docs/locations][here]. message CustomPlacementConfig { // List of locations to use for data placement. repeated string data_locations = 1; } + // Configuration for a bucket's Autoclass feature. + message Autoclass { + // Enables Autoclass. + bool enabled = 1; + + // Output only. Latest instant at which the `enabled` field was set to true after being + // disabled/unconfigured or set to false after being enabled. If Autoclass + // is enabled when the bucket is created, the toggle_time is set to the + // bucket creation time. + google.protobuf.Timestamp toggle_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Immutable. The name of the bucket. string name = 1 [(google.api.field_behavior) = IMMUTABLE]; @@ -1580,7 +1827,14 @@ message Bucket { // name" of other Cloud Storage APIs. Example: "pub". string bucket_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Immutable. The project which owns this bucket. + // The etag of the bucket. + // If included in the metadata of an UpdateBucketRequest, the operation will + // only be performed if the etag matches that of the bucket. + string etag = 29; + + // Immutable. The project which owns this bucket, in the format of + // "projects/". + // can be the project ID or project number. string project = 3 [ (google.api.field_behavior) = IMMUTABLE, (google.api.resource_reference) = { @@ -1634,8 +1888,7 @@ message Bucket { // for more information. Lifecycle lifecycle = 10; - // Output only. The creation time of the bucket in - // [https://tools.ietf.org/html/rfc3339][RFC 3339] format. + // Output only. The creation time of the bucket. // Attempting to set or update this field will result in a // [FieldViolation][google.rpc.BadRequest.FieldViolation]. google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -1706,9 +1959,13 @@ message Bucket { // Reserved for future use. bool satisfies_pzs = 25; - // Configuration that, if present, specifies the data placement for a Custom - // Dual Region. + // Configuration that, if present, specifies the data placement for a + // [https://cloud.google.com/storage/docs/use-dual-regions][Dual Region]. CustomPlacementConfig custom_placement_config = 26; + + // The bucket's Autoclass configuration. If there is no configuration, the + // Autoclass feature will be disabled and have no effect on the bucket. + Autoclass autoclass = 28; } // An access-control entry. @@ -1725,7 +1982,8 @@ message BucketAccessControl { // * `group-{groupid}` // * `group-{email}` // * `domain-{domain}` - // * `project-{team-projectid}` + // * `project-{team}-{projectnumber}` + // * `project-{team}-{projectid}` // * `allUsers` // * `allAuthenticatedUsers` // Examples: @@ -1734,11 +1992,23 @@ message BucketAccessControl { // `group-example@googlegroups.com` // * All members of the Google Apps for Business domain `example.com` would be // `domain-example.com` + // For project entities, `project-{team}-{projectnumber}` format will be + // returned on response. string entity = 3; + // Output only. The alternative entity format, if exists. For project entities, + // `project-{team}-{projectid}` format will be returned on response. + string entity_alt = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The ID for the entity, if any. string entity_id = 4; + // The etag of the BucketAccessControl. + // If included in the metadata of an update or delete request message, the + // operation operation will only be performed if the etag matches that of the + // bucket's BucketAccessControl. + string etag = 8; + // The email address associated with the entity, if any. string email = 5; @@ -1779,28 +2049,39 @@ message ObjectChecksums { // Hmac Key Metadata, which includes all information other than the secret. message HmacKeyMetadata { - // Resource name ID of the key in the format /. - string id = 1; + // Immutable. Resource name ID of the key in the format + // /. + // can be the project ID or project number. + string id = 1 [(google.api.field_behavior) = IMMUTABLE]; - // Globally unique id for keys. - string access_id = 2; + // Immutable. Globally unique id for keys. + string access_id = 2 [(google.api.field_behavior) = IMMUTABLE]; - // The project ID that the hmac key is contained in. - string project = 3 [(google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - }]; + // Immutable. Identifies the project that owns the service account of the specified HMAC + // key, in the format "projects/". can + // be the project ID or project number. + string project = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; - // Email of the service account the key authenticates as. - string service_account_email = 4; + // Output only. Email of the service account the key authenticates as. + string service_account_email = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // State of the key. One of ACTIVE, INACTIVE, or DELETED. + // Writable, can be updated by UpdateHmacKey operation. string state = 5; - // The creation time of the HMAC key in RFC 3339 format. - google.protobuf.Timestamp create_time = 6; + // Output only. The creation time of the HMAC key. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last modification time of the HMAC key metadata. + google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The last modification time of the HMAC key metadata in RFC 3339 format. - google.protobuf.Timestamp update_time = 7; + // The etag of the HMAC key. + string etag = 8; } // A directive to publish Pub/Sub notifications upon changes to a bucket. @@ -1812,42 +2093,48 @@ message Notification { // Required. The resource name of this notification. // Format: - // `projects/{project}/buckets/{bucket}/notificationConfigs/{notification` The - // `{project}` portion may be `_` for globally unique buckets. + // `projects/{project}/buckets/{bucket}/notificationConfigs/{notification}` + // The `{project}` portion may be `_` for globally unique buckets. string name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The Pub/Sub topic to which this subscription publishes. Formatted as: // '//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}' string topic = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. If present, only send notifications about listed event types. If empty, + // The etag of the Notification. + // If included in the metadata of GetNotificationRequest, the operation will + // only be performed if the etag matches that of the Notification. + string etag = 7; + + // If present, only send notifications about listed event types. If empty, // sent notifications for all event types. - repeated string event_types = 3 [(google.api.field_behavior) = OPTIONAL]; + repeated string event_types = 3; - // Optional. An optional list of additional attributes to attach to each Pub/Sub + // A list of additional attributes to attach to each Pub/Sub // message published for this notification subscription. - map custom_attributes = 4 [(google.api.field_behavior) = OPTIONAL]; + map custom_attributes = 4; - // Optional. If present, only apply this notification config to object names that + // If present, only apply this notification config to object names that // begin with this prefix. - string object_name_prefix = 5 [(google.api.field_behavior) = OPTIONAL]; + string object_name_prefix = 5; // Required. The desired content of the Payload. string payload_format = 6 [(google.api.field_behavior) = REQUIRED]; } +// Describes the Customer-Supplied Encryption Key mechanism used to store an +// Object's data at rest. +message CustomerEncryption { + // The encryption algorithm. + string encryption_algorithm = 1; + + // SHA256 hash value of the encryption key. + // In raw bytes format (not base64-encoded). + bytes key_sha256_bytes = 3; +} + // An object. message Object { - // Describes the customer-specified mechanism used to store the data at rest. - message CustomerEncryption { - // The encryption algorithm. - string encryption_algorithm = 1; - - // SHA256 hash value of the encryption key. - // In raw bytes format (not base64-encoded). - bytes key_sha256_bytes = 3; - } - // Immutable. The name of this object. Nearly any sequence of unicode characters is // valid. See // [Guidelines](https://cloud.google.com/storage/docs/naming-objects). @@ -1865,6 +2152,12 @@ message Object { } ]; + // The etag of the object. + // If included in the metadata of an update or delete request message, the + // operation will only be performed if the etag matches that of the live + // object. + string etag = 27; + // Immutable. The content generation of this object. Used for object versioning. // Attempting to set or update this field will result in a // [FieldViolation][google.rpc.BadRequest.FieldViolation]. @@ -1937,6 +2230,11 @@ message Object { ObjectChecksums checksums = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The modification time of the object metadata. + // Set initially to object creation time and then updated whenever any + // metadata of the object changes. This includes changes made by a requester, + // such as modifying custom metadata, as well as changes made by Cloud Storage + // on behalf of a requester, such as changing the storage class based on an + // Object Lifecycle Configuration. // Attempting to set or update this field will result in a // [FieldViolation][google.rpc.BadRequest.FieldViolation]. google.protobuf.Timestamp update_time = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -1961,8 +2259,7 @@ message Object { bool temporary_hold = 20; // A server-determined value that specifies the earliest time that the - // object's retention period expires. This value is in - // [https://tools.ietf.org/html/rfc3339][RFC 3339] format. + // object's retention period expires. // Note 1: This field is not provided for objects with an active event-based // hold, since retention expiration is unknown until the hold is removed. // Note 2: This value can be provided even when temporary hold is set (so that @@ -1991,7 +2288,7 @@ message Object { // [FieldViolation][google.rpc.BadRequest.FieldViolation]. Owner owner = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Metadata of customer-supplied encryption key, if the object is encrypted by + // Metadata of Customer-Supplied Encryption Key, if the object is encrypted by // such a key. CustomerEncryption customer_encryption = 25; @@ -2013,7 +2310,8 @@ message ObjectAccessControl { // * `group-{groupid}` // * `group-{email}` // * `domain-{domain}` - // * `project-{team-projectid}` + // * `project-{team}-{projectnumber}` + // * `project-{team}-{projectid}` // * `allUsers` // * `allAuthenticatedUsers` // Examples: @@ -2022,11 +2320,23 @@ message ObjectAccessControl { // `group-example@googlegroups.com`. // * All members of the Google Apps for Business domain `example.com` would be // `domain-example.com`. + // For project entities, `project-{team}-{projectnumber}` format will be + // returned on response. string entity = 3; + // Output only. The alternative entity format, if exists. For project entities, + // `project-{team}-{projectid}` format will be returned on response. + string entity_alt = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The ID for the entity, if any. string entity_id = 4; + // The etag of the ObjectAccessControl. + // If included in the metadata of an update or delete request message, the + // operation will only be performed if the etag matches that of the live + // object's ObjectAccessControl. + string etag = 8; + // The email address associated with the entity, if any. string email = 5; @@ -2088,57 +2398,3 @@ message ContentRange { // The complete length of the object data. int64 complete_length = 3; } - -// Predefined or "canned" aliases for sets of specific object ACL entries. -enum PredefinedObjectAcl { - // No predefined ACL. - PREDEFINED_OBJECT_ACL_UNSPECIFIED = 0; - - // Object owner gets `OWNER` access, and - // `allAuthenticatedUsers` get `READER` access. - OBJECT_ACL_AUTHENTICATED_READ = 1; - - // Object owner gets `OWNER` access, and project team owners get - // `OWNER` access. - OBJECT_ACL_BUCKET_OWNER_FULL_CONTROL = 2; - - // Object owner gets `OWNER` access, and project team owners get - // `READER` access. - OBJECT_ACL_BUCKET_OWNER_READ = 3; - - // Object owner gets `OWNER` access. - OBJECT_ACL_PRIVATE = 4; - - // Object owner gets `OWNER` access, and project team members get - // access according to their roles. - OBJECT_ACL_PROJECT_PRIVATE = 5; - - // Object owner gets `OWNER` access, and `allUsers` - // get `READER` access. - OBJECT_ACL_PUBLIC_READ = 6; -} - -// A set of predefined, or "canned," ACLs that can be set on a -// bucket instead of manually specifying a complete ACL. -enum PredefinedBucketAcl { - // No predefined ACL. - PREDEFINED_BUCKET_ACL_UNSPECIFIED = 0; - - // Project team owners get `OWNER` access, and - // `allAuthenticatedUsers` get `READER` access. - BUCKET_ACL_AUTHENTICATED_READ = 1; - - // Project team owners get `OWNER` access. - BUCKET_ACL_PRIVATE = 2; - - // Project team members get access according to their roles. - BUCKET_ACL_PROJECT_PRIVATE = 3; - - // Project team owners get `OWNER` access, and - // `allUsers` get `READER` access. - BUCKET_ACL_PUBLIC_READ = 4; - - // Project team owners get `OWNER` access, and - // `allUsers` get `WRITER` access. - BUCKET_ACL_PUBLIC_READ_WRITE = 5; -} diff --git a/google/storagetransfer/logging/BUILD.bazel b/google/storagetransfer/logging/BUILD.bazel new file mode 100644 index 000000000..085866e35 --- /dev/null +++ b/google/storagetransfer/logging/BUILD.bazel @@ -0,0 +1,179 @@ +# This file was automatically generated by BuildFileGenerator + +# 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 = [ + "transfer_activity_log.proto", + ], + deps = [ + "//google/api:field_behavior_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +java_grpc_library( + name = "logging_java_grpc", + srcs = [":logging_proto"], + deps = [":logging_java_proto"], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/storagetransfer/logging", + protos = [":logging_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "//google/api:field_behavior_proto", + "@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"], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_grpc_library( + name = "logging_php_grpc", + srcs = [":logging_proto"], + deps = [":logging_php_proto"], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + + +############################################################################## +# Ruby +############################################################################## +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# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +csharp_grpc_library( + name = "logging_csharp_grpc", + srcs = [":logging_proto"], + deps = [":logging_csharp_proto"], +) + +############################################################################## +# C++ +############################################################################## +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/google/storagetransfer/logging/transfer_activity_log.proto b/google/storagetransfer/logging/transfer_activity_log.proto new file mode 100644 index 000000000..642e19020 --- /dev/null +++ b/google/storagetransfer/logging/transfer_activity_log.proto @@ -0,0 +1,282 @@ +// 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.storagetransfer.logging; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/storagetransfer/logging;logging"; +option java_multiple_files = true; +option java_outer_classname = "TransferActivityLogProto"; +option java_package = "com.google.storagetransfer.logging"; +option csharp_namespace = "Google.StorageTransfer.Logging"; +option php_namespace = "Google\\StorageTransfer\\Logging"; +option ruby_package = "Google::StorageTransfer::Logging"; + +// AWS S3 object metadata. +message AwsS3ObjectMetadata { + // Required. Name of the S3 bucket. + string bucket = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name/key of the object. + string object_key = 2 [(google.api.field_behavior) = REQUIRED]; + + // Last modified time of the object. + google.protobuf.Timestamp last_modified_time = 3; + + // The MD5 checksum of the object's content. + string md5 = 4; + + // Required. Size of the object in bytes. + int64 size = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// AWS S3 bucket metadata. +message AwsS3BucketMetadata { + // Required. Name of the S3 bucket. + string bucket = 1 [(google.api.field_behavior) = REQUIRED]; + + // The path of transfer objects as an object key prefix ending with "/". + string path = 2; +} + +// Google Cloud Storage object metadata. +message GcsObjectMetadata { + // Required. Name of the Cloud Storage bucket. + string bucket = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name/key of the object. + string object_key = 2 [(google.api.field_behavior) = REQUIRED]; + + // Last modified time of the object. + google.protobuf.Timestamp last_modified_time = 3; + + // The MD5 checksum of the object's content. + string md5 = 4; + + // The CRC32C checksum of the object's content. + string crc32c = 5; + + // Required. Size of the object in bytes. + int64 size = 6 [(google.api.field_behavior) = REQUIRED]; +} + +// Google Cloud Storage bucket metadata. +message GcsBucketMetadata { + // Required. Name of the Cloud Storage bucket. + string bucket = 1 [(google.api.field_behavior) = REQUIRED]; + + // The path of transfer objects as an object key prefix ending with "/". + string path = 2; +} + +// Azure Blob Storage blob metadata. +message AzureBlobMetadata { + // Required. Name of the Azure Blob storage account. + string account = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the container. + string container = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the blob. + string blob_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Last modified time of the blob. + google.protobuf.Timestamp last_modified_time = 4; + + // The MD5 checksum of the object's content. + string md5 = 5; + + // Required. Size of the blob in bytes. + int64 size = 6 [(google.api.field_behavior) = REQUIRED]; +} + +// Azure Blob Storage container metadata. +message AzureBlobContainerMetadata { + // Required. Name of the Azure Blob storage account. + string account = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the container. + string container = 2 [(google.api.field_behavior) = REQUIRED]; + + // The path of transfer blobs as a blob name prefix ending with "/". + string path = 3; +} + +// POSIX file metadata. +message PosixFileMetadata { + // Required. Path of a file. + string path = 1 [(google.api.field_behavior) = REQUIRED]; + + // Last modified time (mtime) of the file. + google.protobuf.Timestamp last_modified_time = 2; + + // The CRC32C checksum of the object's content. + string crc32c = 3; + + // Required. Size of the file in bytes. + int64 size = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// HTTP file metadata. +message HttpFileMetadata { + // Required. Url of the HTTP file. + string url = 1 [(google.api.field_behavior) = REQUIRED]; + + // The MD5 checksum of the file's content. + string md5 = 2; + + // Size of the file in bytes. + int64 size = 3; +} + +// HTTP manifest file metadata. +message HttpManifestMetadata { + // Required. Url of the HTTP manifest which contains the list of HTTP files to + // transfer. + string url = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata of a blob/file/object. +message ObjectMetadata { + // Required. Storage system type of the object. + StorageSystemType type = 1 [(google.api.field_behavior) = REQUIRED]; + + oneof metadata { + // Object metadata of AWS S3. + AwsS3ObjectMetadata aws_s3_object = 3; + + // Blob metadata of Azure Blob Storage. + AzureBlobMetadata azure_blob = 4; + + // Object metadata of Google Cloud Storage. + GcsObjectMetadata gcs_object = 5; + + // File/directory metadata of POSIX file system. + PosixFileMetadata posix_file = 6; + + // Metadata of a file on a HTTP server. + HttpFileMetadata http_file = 7; + } +} + +// Metadata of a bucket/container/directory +message ContainerMetadata { + // Required. Storage system type of the object. + StorageSystemType type = 1 [(google.api.field_behavior) = REQUIRED]; + + oneof metadata { + // Bucket metadata of AWS S3. + AwsS3BucketMetadata aws_s3_bucket = 3; + + // Container metadata of Azure Blob Storage. + AzureBlobContainerMetadata azure_blob_container = 4; + + // Bucket metadata of Google Cloud Storage. + GcsBucketMetadata gcs_bucket = 5; + + // Directory metadata of POSIX file system. + PosixFileMetadata posix_directory = 6; + + // Metadata of a manifest file on a HTTP server. + HttpManifestMetadata http_manifest = 7; + } +} + +// Schema of log payload of transfer activity. +message TransferActivityLog { + // Possible actions which a transfer operation can make. + enum Action { + // Unspeficied action. + ACTION_UNSPECIFIED = 0; + + // Finding work to do, such as listing files in a directory or listing + // objects in a bucket. + FIND = 1; + + // Copying files or objects. + COPY = 2; + + // Deleting files or objects at destination. + DELETE = 3; + } + + // Status of an action. + message Status { + // Required. A string value of the Google RPC code as the status of the + // action. The action succeeded if it's `OK`, and failed otherwise. + string status_code = 1 [(google.api.field_behavior) = REQUIRED]; + + // A string that represents the type of error encountered. Populated only if + // status_code is not `OK`. + string error_type = 2; + + // A human-readable error message for the failure. Populated only if + // status_code is not `OK`. + string error_message = 3; + } + + // Required. Name of the transfer operation. + string operation = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The action which the transfer operation made. + Action action = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Status of the action. + Status status = 3 [(google.api.field_behavior) = REQUIRED]; + + // Metadata of source bucket/container/directory. Only set if the action is + // FIND. + ContainerMetadata source_container = 4; + + // Metadata of destination bucket/container/directory. Only set if the action + // is FIND. + ContainerMetadata destination_container = 5; + + // Metadata of the source blob/file/object. Only set if the action is COPY or + // DELETE when deletion is applied to source. + ObjectMetadata source_object = 6; + + // Metadata of the destination blob/file/object. Only set if the action is + // or DELETE when deletion is applied to destination. + ObjectMetadata destination_object = 7; + + // Required. Completion time of the action. + google.protobuf.Timestamp complete_time = 8 + [(google.api.field_behavior) = REQUIRED]; +} + +// Type of the storage system. +enum StorageSystemType { + // Unspecified. + STORAGE_SYSTEM_TYPE_UNSPECIFIED = 0; + + // AWS S3. + AWS_S3 = 1; + + // Azure Blob Storage. + AZURE_BLOB = 2; + + // Google Cloud Storage. + GCS = 3; + + // POSIX file system. + POSIX_FS = 4; + + // HTTP/HTTPS servers. + HTTP = 5; +} diff --git a/google/storagetransfer/v1/BUILD.bazel b/google/storagetransfer/v1/BUILD.bazel index 745b252ae..3becedcf0 100644 --- a/google/storagetransfer/v1/BUILD.bazel +++ b/google/storagetransfer/v1/BUILD.bazel @@ -28,11 +28,11 @@ 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:code_proto", "//google/type:date_proto", "//google/type:timeofday_proto", - "@com_google_protobuf//:any_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -74,18 +74,23 @@ java_grpc_library( java_gapic_library( name = "storagetransfer_java_gapic", srcs = [":storagetransfer_proto_with_info"], + gapic_yaml = None, grpc_service_config = "storagetransfer_grpc_service_config.json", + service_yaml = "storagetransfer_v1.yaml", test_deps = [ ":storagetransfer_java_grpc", ], + transport = "grpc+rest", deps = [ ":storagetransfer_java_proto", + "//google/api:api_java_proto", ], ) java_gapic_test( name = "storagetransfer_java_gapic_test_suite", test_classes = [ + "com.google.storagetransfer.v1.proto.StorageTransferServiceClientHttpJsonTest", "com.google.storagetransfer.v1.proto.StorageTransferServiceClientTest", ], runtime_deps = [":storagetransfer_java_gapic_test"], @@ -94,6 +99,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-storagetransfer-v1-java", + transport = "grpc+rest", deps = [ ":storagetransfer_java_gapic", ":storagetransfer_java_grpc", @@ -134,12 +140,12 @@ go_gapic_library( importpath = "cloud.google.com/go/storagetransfer/apiv1;storagetransfer", metadata = True, service_yaml = "storagetransfer_v1.yaml", + transport = "grpc+rest", deps = [ ":storagetransfer_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", ], ) @@ -169,6 +175,7 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -176,10 +183,21 @@ py_gapic_library( srcs = [":storagetransfer_proto"], grpc_service_config = "storagetransfer_grpc_service_config.json", opt_args = [ - "warehouse-package-name=google-cloud-storage-transfer", - "python-gapic-namespace=google.cloud", "python-gapic-name=storage_transfer", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-storage-transfer", + ], + transport = "grpc", +) + +py_test( + name = "storagetransfer_py_gapic_test", + srcs = [ + "storagetransfer_py_gapic_pytest.py", + "storagetransfer_py_gapic_test.py", ], + legacy_create_init = False, + deps = [":storagetransfer_py_gapic"], ) # Open Source Packages @@ -287,10 +305,10 @@ ruby_cloud_gapic_library( name = "storagetransfer_ruby_gapic", srcs = [":storagetransfer_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-storage_transfer-v1", - "ruby-cloud-product-url=https://cloud.google.com/storage-transfer-service/", "ruby-cloud-api-id=storagetransfer.googleapis.com", "ruby-cloud-api-shortname=storagetransfer", + "ruby-cloud-gem-name=google-cloud-storage_transfer-v1", + "ruby-cloud-product-url=https://cloud.google.com/storage-transfer-service/", ], grpc_service_config = "storagetransfer_grpc_service_config.json", ruby_cloud_description = "Storage Transfer Service allows you to quickly import online data into Cloud Storage. You can also set up a repeating schedule for transferring data, as well as transfer data within Cloud Storage, from one bucket to another.", @@ -338,6 +356,7 @@ csharp_gapic_library( srcs = [":storagetransfer_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "storagetransfer_grpc_service_config.json", + service_yaml = "storagetransfer_v1.yaml", deps = [ ":storagetransfer_csharp_grpc", ":storagetransfer_csharp_proto", diff --git a/google/storagetransfer/v1/storagetransfer_grpc_service_config.json b/google/storagetransfer/v1/storagetransfer_grpc_service_config.json index b29bd34cd..405621cfe 100644 --- a/google/storagetransfer/v1/storagetransfer_grpc_service_config.json +++ b/google/storagetransfer/v1/storagetransfer_grpc_service_config.json @@ -1,12 +1,21 @@ { - "methodConfig": [ - { - "name": [ - { - "service": "google.storagetransfer.v1.StorageTransferService" - } - ], - "timeout": "60s" + "methodConfig": [{ + "name": [{ "service": "google.storagetransfer.v1.StorageTransferService"}, + { "service": "google.longrunning.Operations"}], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 2, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] } - ] -} + }, + { + "name": [{ "service": "google.storagetransfer.v1.StorageTransferService", "method": "CreateTransferJob"}], + "timeout" : "60s" + } +] +} \ No newline at end of file diff --git a/google/storagetransfer/v1/storagetransfer_v1.yaml b/google/storagetransfer/v1/storagetransfer_v1.yaml index aa2337eb9..434e7df7a 100644 --- a/google/storagetransfer/v1/storagetransfer_v1.yaml +++ b/google/storagetransfer/v1/storagetransfer_v1.yaml @@ -4,11 +4,10 @@ name: storagetransfer.googleapis.com title: Storage Transfer API apis: +- name: google.longrunning.Operations - name: google.storagetransfer.v1.StorageTransferService types: -- name: google.storagetransfer.v1.RunTransferJobMetadata -- name: google.storagetransfer.v1.RunTransferJobResponse - name: google.storagetransfer.v1.TransferOperation documentation: @@ -48,7 +47,7 @@ documentation: - selector: google.longrunning.Operations.ListOperations description: |- - Lists transfer operations. Operations are ordered by their creation + Lists transfer operations. Operations are ordered by their creation time in reverse chronological order. backend: diff --git a/google/storagetransfer/v1/transfer.proto b/google/storagetransfer/v1/transfer.proto index d28262813..802cc1046 100644 --- a/google/storagetransfer/v1/transfer.proto +++ b/google/storagetransfer/v1/transfer.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -20,7 +20,6 @@ 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/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/storagetransfer/v1/transfer_types.proto"; @@ -38,19 +37,17 @@ option ruby_package = "Google::Cloud::StorageTransfer::V1"; // source external to Google to a Cloud Storage bucket. service StorageTransferService { option (google.api.default_host) = "storagetransfer.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"; // Returns the Google service account that is used by Storage Transfer // Service to access buckets in the project where transfers // run or in other projects. Each Google service account is associated - // with one Google Cloud Platform Console project. Users + // with one Google Cloud project. Users // should add this service account to the Google Cloud Storage bucket // ACLs to grant access to Storage Transfer Service. This service // account is created and owned by Storage Transfer Service and can // only be used by Storage Transfer Service. - rpc GetGoogleServiceAccount(GetGoogleServiceAccountRequest) - returns (GoogleServiceAccount) { + rpc GetGoogleServiceAccount(GetGoogleServiceAccountRequest) returns (GoogleServiceAccount) { option (google.api.http) = { get: "/v1/googleServiceAccounts/{project_id}" }; @@ -67,8 +64,8 @@ service StorageTransferService { // Updates a transfer job. Updating a job's transfer spec does not affect // transfer operations that are running already. // - // **Note:** The job's [status][google.storagetransfer.v1.TransferJob.status] - // field can be modified using this RPC (for example, to set a job's status to + // **Note:** The job's [status][google.storagetransfer.v1.TransferJob.status] field can be modified + // using this RPC (for example, to set a job's status to // [DELETED][google.storagetransfer.v1.TransferJob.Status.DELETED], // [DISABLED][google.storagetransfer.v1.TransferJob.Status.DISABLED], or // [ENABLED][google.storagetransfer.v1.TransferJob.Status.ENABLED]). @@ -87,16 +84,14 @@ service StorageTransferService { } // Lists transfer jobs. - rpc ListTransferJobs(ListTransferJobsRequest) - returns (ListTransferJobsResponse) { + rpc ListTransferJobs(ListTransferJobsRequest) returns (ListTransferJobsResponse) { option (google.api.http) = { get: "/v1/transferJobs" }; } // Pauses a transfer operation. - rpc PauseTransferOperation(PauseTransferOperationRequest) - returns (google.protobuf.Empty) { + rpc PauseTransferOperation(PauseTransferOperationRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v1/{name=transferOperations/**}:pause" body: "*" @@ -104,8 +99,7 @@ service StorageTransferService { } // Resumes a transfer operation that is paused. - rpc ResumeTransferOperation(ResumeTransferOperationRequest) - returns (google.protobuf.Empty) { + rpc ResumeTransferOperation(ResumeTransferOperationRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v1/{name=transferOperations/**}:resume" body: "*" @@ -114,9 +108,8 @@ service StorageTransferService { // Attempts to start a new TransferOperation for the current TransferJob. A // TransferJob has a maximum of one active TransferOperation. If this method - // is called while a TransferOperation is active, an error wil be returned. - rpc RunTransferJob(RunTransferJobRequest) - returns (google.longrunning.Operation) { + // is called while a TransferOperation is active, an error will be returned. + rpc RunTransferJob(RunTransferJobRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{job_name=transferJobs/**}:run" body: "*" @@ -126,12 +119,62 @@ service StorageTransferService { metadata_type: "TransferOperation" }; } + + // Deletes a transfer job. Deleting a transfer job sets its status to + // [DELETED][google.storagetransfer.v1.TransferJob.Status.DELETED]. + rpc DeleteTransferJob(DeleteTransferJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{job_name=transferJobs/**}" + }; + } + + // Creates an agent pool resource. + rpc CreateAgentPool(CreateAgentPoolRequest) returns (AgentPool) { + option (google.api.http) = { + post: "/v1/projects/{project_id=*}/agentPools" + body: "agent_pool" + }; + option (google.api.method_signature) = "project_id,agent_pool,agent_pool_id"; + } + + // Updates an existing agent pool resource. + rpc UpdateAgentPool(UpdateAgentPoolRequest) returns (AgentPool) { + option (google.api.http) = { + patch: "/v1/{agent_pool.name=projects/*/agentPools/*}" + body: "agent_pool" + }; + option (google.api.method_signature) = "agent_pool,update_mask"; + } + + // Gets an agent pool. + rpc GetAgentPool(GetAgentPoolRequest) returns (AgentPool) { + option (google.api.http) = { + get: "/v1/{name=projects/*/agentPools/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists agent pools. + rpc ListAgentPools(ListAgentPoolsRequest) returns (ListAgentPoolsResponse) { + option (google.api.http) = { + get: "/v1/projects/{project_id=*}/agentPools" + }; + option (google.api.method_signature) = "project_id"; + } + + // Deletes an agent pool. + rpc DeleteAgentPool(DeleteAgentPoolRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/agentPools/*}" + }; + option (google.api.method_signature) = "name"; + } } // Request passed to GetGoogleServiceAccount. message GetGoogleServiceAccountRequest { - // Required. The ID of the Google Cloud Platform Console project that the - // Google service account is associated with. + // Required. The ID of the Google Cloud project that the Google service + // account is associated with. string project_id = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -146,21 +189,20 @@ message UpdateTransferJobRequest { // Required. The name of job to update. string job_name = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The ID of the Google Cloud Platform Console project that owns the + // Required. The ID of the Google Cloud project that owns the // job. string project_id = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. The job to update. `transferJob` is expected to specify only - // four fields: - // [description][google.storagetransfer.v1.TransferJob.description], + // Required. The job to update. `transferJob` is expected to specify one or more of + // five fields: [description][google.storagetransfer.v1.TransferJob.description], // [transfer_spec][google.storagetransfer.v1.TransferJob.transfer_spec], // [notification_config][google.storagetransfer.v1.TransferJob.notification_config], - // and [status][google.storagetransfer.v1.TransferJob.status]. An - // `UpdateTransferJobRequest` that specifies other fields are rejected with - // the error [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. Updating a - // job status to - // [DELETED][google.storagetransfer.v1.TransferJob.Status.DELETED] requires - // `storagetransfer.jobs.delete` permissions. + // [logging_config][google.storagetransfer.v1.TransferJob.logging_config], and + // [status][google.storagetransfer.v1.TransferJob.status]. An `UpdateTransferJobRequest` that specifies + // other fields are rejected with the error + // [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. Updating a job status + // to [DELETED][google.storagetransfer.v1.TransferJob.Status.DELETED] requires + // `storagetransfer.jobs.delete` permission. TransferJob transfer_job = 3 [(google.api.field_behavior) = REQUIRED]; // The field mask of the fields in `transferJob` that are to be updated in @@ -168,21 +210,30 @@ message UpdateTransferJobRequest { // [description][google.storagetransfer.v1.TransferJob.description], // [transfer_spec][google.storagetransfer.v1.TransferJob.transfer_spec], // [notification_config][google.storagetransfer.v1.TransferJob.notification_config], - // and [status][google.storagetransfer.v1.TransferJob.status]. To update the - // `transfer_spec` of the job, a complete transfer specification must be - // provided. An incomplete specification missing any required fields is - // rejected with the error + // [logging_config][google.storagetransfer.v1.TransferJob.logging_config], and + // [status][google.storagetransfer.v1.TransferJob.status]. To update the `transfer_spec` of the job, a + // complete transfer specification must be provided. An incomplete + // specification missing any required fields is rejected with the error // [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. google.protobuf.FieldMask update_transfer_job_field_mask = 4; } // Request passed to GetTransferJob. message GetTransferJobRequest { - // Required. - // The job to get. + // Required. The job to get. string job_name = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The ID of the Google Cloud Platform Console project that owns the + // Required. The ID of the Google Cloud project that owns the + // job. + string project_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request passed to DeleteTransferJob. +message DeleteTransferJobRequest { + // Required. The job to delete. + string job_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the Google Cloud project that owns the // job. string project_id = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -237,7 +288,100 @@ message RunTransferJobRequest { // Required. The name of the transfer job. string job_name = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The ID of the Google Cloud Platform Console project that owns the - // transfer job. + // Required. The ID of the Google Cloud project that owns the transfer + // job. string project_id = 2 [(google.api.field_behavior) = REQUIRED]; } + +// Specifies the request passed to CreateAgentPool. +message CreateAgentPoolRequest { + // Required. The ID of the Google Cloud project that owns the + // agent pool. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The agent pool to create. + AgentPool agent_pool = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the agent pool to create. + // + // The `agent_pool_id` must meet the following requirements: + // + // * Length of 128 characters or less. + // * Not start with the string `goog`. + // * Start with a lowercase ASCII character, followed by: + // * Zero or more: lowercase Latin alphabet characters, numerals, + // hyphens (`-`), periods (`.`), underscores (`_`), or tildes (`~`). + // * One or more numerals or lowercase ASCII characters. + // + // As expressed by the regular expression: + // `^(?!goog)[a-z]([a-z0-9-._~]*[a-z0-9])?$`. + string agent_pool_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Specifies the request passed to UpdateAgentPool. +message UpdateAgentPoolRequest { + // Required. The agent pool to update. `agent_pool` is expected to specify following + // fields: + // + // * [name][google.storagetransfer.v1.AgentPool.name] + // + // * [display_name][google.storagetransfer.v1.AgentPool.display_name] + // + // * [bandwidth_limit][google.storagetransfer.v1.AgentPool.bandwidth_limit] + // An `UpdateAgentPoolRequest` with any other fields is rejected + // with the error [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. + AgentPool agent_pool = 1 [(google.api.field_behavior) = REQUIRED]; + + // The [field mask] + // (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf) + // of the fields in `agentPool` to update in this request. + // The following `agentPool` fields can be updated: + // + // * [display_name][google.storagetransfer.v1.AgentPool.display_name] + // + // * [bandwidth_limit][google.storagetransfer.v1.AgentPool.bandwidth_limit] + google.protobuf.FieldMask update_mask = 2; +} + +// Specifies the request passed to GetAgentPool. +message GetAgentPoolRequest { + // Required. The name of the agent pool to get. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Specifies the request passed to DeleteAgentPool. +message DeleteAgentPoolRequest { + // Required. The name of the agent pool to delete. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request passed to ListAgentPools. +message ListAgentPoolsRequest { + // Required. The ID of the Google Cloud project that owns the job. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // An optional list of query parameters specified as JSON text in the + // form of: + // + // `{"agentPoolNames":["agentpool1","agentpool2",...]}` + // + // Since `agentPoolNames` support multiple values, its values must be + // specified with array notation. When the filter is either empty or not + // provided, the list returns all agent pools for the project. + string filter = 2; + + // The list page size. The max allowed value is `256`. + int32 page_size = 3; + + // The list page token. + string page_token = 4; +} + +// Response from ListAgentPools. +message ListAgentPoolsResponse { + // A list of agent pools. + repeated AgentPool agent_pools = 1; + + // The list next page token. + string next_page_token = 2; +} diff --git a/google/storagetransfer/v1/transfer_types.proto b/google/storagetransfer/v1/transfer_types.proto index 6301c57eb..4e1a3b5f2 100644 --- a/google/storagetransfer/v1/transfer_types.proto +++ b/google/storagetransfer/v1/transfer_types.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -16,9 +16,8 @@ syntax = "proto3"; package google.storagetransfer.v1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; -import "google/protobuf/any.proto"; +import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/code.proto"; @@ -64,13 +63,6 @@ message AwsAccessKey { message AzureCredentials { // Required. Azure shared access signature (SAS). // - // - // // For more information about SAS, see // [Grant limited access to Azure Storage resources using shared access // signatures @@ -78,41 +70,41 @@ message AzureCredentials { string sas_token = 2 [(google.api.field_behavior) = REQUIRED]; } -// Conditions that determine which objects will be transferred. Applies only +// Conditions that determine which objects are transferred. Applies only // to Cloud Data Sources such as S3, Azure, and Cloud Storage. // // The "last modification time" refers to the time of the // last change to the object's content or metadata — specifically, this is // the `updated` property of Cloud Storage objects, the `LastModified` field // of S3 objects, and the `Last-Modified` header of Azure blobs. +// +// Transfers with a [PosixFilesystem][google.storagetransfer.v1.PosixFilesystem] source or destination don't support +// `ObjectConditions`. message ObjectConditions { - // If specified, only objects with a "last modification time" before - // `NOW` - `min_time_elapsed_since_last_modification` and objects that don't - // have a "last modification time" are transferred. - // - // For each [TransferOperation][google.storagetransfer.v1.TransferOperation] - // started by this [TransferJob][google.storagetransfer.v1.TransferJob], `NOW` - // refers to the [start_time] - // [google.storagetransfer.v1.TransferOperation.start_time] of the - // `TransferOperation`. + // Ensures that objects are not transferred until a specific minimum time + // has elapsed after the "last modification time". When a + // [TransferOperation][google.storagetransfer.v1.TransferOperation] begins, objects with a "last modification time" are + // transferred only if the elapsed time between the + // [start_time][google.storagetransfer.v1.TransferOperation.start_time] of the `TransferOperation` + // and the "last modification time" of the object is equal to or + // greater than the value of min_time_elapsed_since_last_modification`. + // Objects that do not have a "last modification time" are also transferred. google.protobuf.Duration min_time_elapsed_since_last_modification = 1; - // If specified, only objects with a "last modification time" on or after - // `NOW` - `max_time_elapsed_since_last_modification` and objects that don't - // have a "last modification time" are transferred. - // - // For each [TransferOperation][google.storagetransfer.v1.TransferOperation] - // started by this [TransferJob][google.storagetransfer.v1.TransferJob], - // `NOW` refers to the [start_time] - // [google.storagetransfer.v1.TransferOperation.start_time] of the - // `TransferOperation`. + // Ensures that objects are not transferred if a specific maximum time + // has elapsed since the "last modification time". + // When a [TransferOperation][google.storagetransfer.v1.TransferOperation] begins, objects with a + // "last modification time" are transferred only if the elapsed time + // between the [start_time][google.storagetransfer.v1.TransferOperation.start_time] of the + // `TransferOperation`and the "last modification time" of the object + // is less than the value of max_time_elapsed_since_last_modification`. + // Objects that do not have a "last modification time" are also transferred. google.protobuf.Duration max_time_elapsed_since_last_modification = 2; // If you specify `include_prefixes`, Storage Transfer Service uses the items // in the `include_prefixes` array to determine which objects to include in a // transfer. Objects must start with one of the matching `include_prefixes` - // for inclusion in the transfer. If [exclude_prefixes] - // [google.storagetransfer.v1.ObjectConditions.exclude_prefixes] is specified, + // for inclusion in the transfer. If [exclude_prefixes][google.storagetransfer.v1.ObjectConditions.exclude_prefixes] is specified, // objects must not start with any of the `exclude_prefixes` specified for // inclusion in the transfer. // @@ -161,10 +153,8 @@ message ObjectConditions { // namespace. No exclude-prefix may be a prefix of another // exclude-prefix. // - // * If [include_prefixes] - // [google.storagetransfer.v1.ObjectConditions.include_prefixes] is - // specified, then each exclude-prefix must start with the value of a path - // explicitly included by `include_prefixes`. + // * If [include_prefixes][google.storagetransfer.v1.ObjectConditions.include_prefixes] is specified, then each exclude-prefix must + // start with the value of a path explicitly included by `include_prefixes`. // // The max size of `exclude_prefixes` is 1000. // @@ -187,7 +177,7 @@ message ObjectConditions { google.protobuf.Timestamp last_modified_since = 5; // If specified, only objects with a "last modification time" before this - // timestamp and objects that don't have a "last modification time" will be + // timestamp and objects that don't have a "last modification time" are // transferred. google.protobuf.Timestamp last_modified_before = 6; } @@ -220,9 +210,9 @@ message AwsS3Data { // bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)). string bucket_name = 1 [(google.api.field_behavior) = REQUIRED]; - // Input only. AWS access key used to sign the API requests to the AWS S3 - // bucket. Permissions on the bucket must be granted to the access ID of the - // AWS access key. This field is required. + // Input only. AWS access key used to sign the API requests to the AWS S3 bucket. + // Permissions on the bucket must be granted to the access ID of the AWS + // access key. // // For information on our data retention policy for user credentials, see // [User credentials](/storage-transfer/docs/data-retention#user-credentials). @@ -235,13 +225,15 @@ message AwsS3Data { // a '/'. string path = 3; - // Input only. Role arn to support temporary credentials via - // AssumeRoleWithWebIdentity. + // The Amazon Resource Name (ARN) of the role to support temporary + // credentials via `AssumeRoleWithWebIdentity`. For more information about + // ARNs, see [IAM + // ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). // - // When role arn is provided, transfer service will fetch temporary - // credentials for the session using AssumeRoleWithWebIdentity call for the - // provided role using the [GoogleServiceAccount] for this project. - string role_arn = 4 [(google.api.field_behavior) = INPUT_ONLY]; + // When a role ARN is provided, Transfer Service fetches temporary + // credentials for the session using a `AssumeRoleWithWebIdentity` call for + // the provided role using the [GoogleServiceAccount][google.storagetransfer.v1.GoogleServiceAccount] for this project. + string role_arn = 4; } // An AzureBlobStorageData resource can be a data source, but not a data sink. @@ -255,8 +247,7 @@ message AzureBlobStorageData { // Required. The name of the Azure Storage account. string storage_account = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Input only. Credentials used to authenticate API requests to - // Azure. + // Required. Input only. Credentials used to authenticate API requests to Azure. // // For information on our data retention policy for user credentials, see // [User credentials](/storage-transfer/docs/data-retention#user-credentials). @@ -300,10 +291,10 @@ message AzureBlobStorageData { // `/`. // // * If the specified size of an object does not match the actual size of the -// object fetched, the object will not be transferred. +// object fetched, the object is not transferred. // // * If the specified MD5 does not match the MD5 computed from the transferred -// bytes, the object transfer will fail. +// bytes, the object transfer fails. // // * Ensure that each URL you specify is publicly accessible. For // example, in Cloud Storage you can @@ -314,8 +305,7 @@ message AzureBlobStorageData { // HTTP server to support `Range` requests and to return a `Content-Length` // header in each response. // -// * [ObjectConditions][google.storagetransfer.v1.ObjectConditions] have no -// effect when filtering objects to transfer. +// * [ObjectConditions][google.storagetransfer.v1.ObjectConditions] have no effect when filtering objects to transfer. message HttpData { // Required. The URL that points to the file that stores the object list // entries. This file must allow public access. Currently, only URLs with @@ -323,28 +313,209 @@ message HttpData { string list_url = 1 [(google.api.field_behavior) = REQUIRED]; } +// A POSIX filesystem resource. +message PosixFilesystem { + // Root directory path to the filesystem. + string root_directory = 1; +} + +// An AwsS3CompatibleData resource. +message AwsS3CompatibleData { + // Required. Specifies the name of the bucket. + string bucket_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Specifies the root path to transfer objects. + // + // Must be an empty string or full path name that ends with a '/'. This + // field is treated as an object prefix. As such, it should generally not + // begin with a '/'. + string path = 2; + + // Required. Specifies the endpoint of the storage service. + string endpoint = 3 [(google.api.field_behavior) = REQUIRED]; + + // Specifies the region to sign requests with. This can be left blank if + // requests should be signed with an empty region. + string region = 5; + + // Specifies the metadata of the S3 compatible data provider. Each provider + // may contain some attributes that do not apply to all S3-compatible data + // providers. When not specified, S3CompatibleMetadata is used by default. + oneof data_provider { + // A S3 compatible metadata. + S3CompatibleMetadata s3_metadata = 4; + } +} + +// S3CompatibleMetadata contains the metadata fields that apply to the basic +// types of S3-compatible data providers. +message S3CompatibleMetadata { + // The authentication and authorization method used by the storage service. + enum AuthMethod { + // AuthMethod is not specified. + AUTH_METHOD_UNSPECIFIED = 0; + + // Auth requests with AWS SigV4. + AUTH_METHOD_AWS_SIGNATURE_V4 = 1; + + // Auth requests with AWS SigV2. + AUTH_METHOD_AWS_SIGNATURE_V2 = 2; + } + + // The request model of the API. + enum RequestModel { + // RequestModel is not specified. + REQUEST_MODEL_UNSPECIFIED = 0; + + // Perform requests using Virtual Hosted Style. + // Example: https://bucket-name.s3.region.amazonaws.com/key-name + REQUEST_MODEL_VIRTUAL_HOSTED_STYLE = 1; + + // Perform requests using Path Style. + // Example: https://s3.region.amazonaws.com/bucket-name/key-name + REQUEST_MODEL_PATH_STYLE = 2; + } + + // The agent network protocol to access the storage service. + enum NetworkProtocol { + // NetworkProtocol is not specified. + NETWORK_PROTOCOL_UNSPECIFIED = 0; + + // Perform requests using HTTPS. + NETWORK_PROTOCOL_HTTPS = 1; + + // Not recommended: This sends data in clear-text. This is only + // appropriate within a closed network or for publicly available data. + // Perform requests using HTTP. + NETWORK_PROTOCOL_HTTP = 2; + } + + // The Listing API to use for discovering objects. + enum ListApi { + // ListApi is not specified. + LIST_API_UNSPECIFIED = 0; + + // Perform listing using ListObjectsV2 API. + LIST_OBJECTS_V2 = 1; + + // Legacy ListObjects API. + LIST_OBJECTS = 2; + } + + // Specifies the authentication and authorization method used by the storage + // service. When not specified, Transfer Service will attempt to determine + // right auth method to use. + AuthMethod auth_method = 1; + + // Specifies the API request model used to call the storage service. When not + // specified, the default value of RequestModel + // REQUEST_MODEL_VIRTUAL_HOSTED_STYLE is used. + RequestModel request_model = 2; + + // Specifies the network protocol of the agent. When not specified, the + // default value of NetworkProtocol NETWORK_PROTOCOL_HTTPS is used. + NetworkProtocol protocol = 3; + + // The Listing API to use for discovering objects. When not specified, + // Transfer Service will attempt to determine the right API to use. + ListApi list_api = 4; +} + +// Represents an On-Premises Agent pool. +message AgentPool { + option (google.api.resource) = { + type: "storagetransfer.googleapis.com/agentPools" + pattern: "projects/{project_id}/agentPools/{agent_pool_id}" + }; + + // The state of an AgentPool. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // This is an initialization state. During this stage, the resources such as + // Pub/Sub topics are allocated for the AgentPool. + CREATING = 1; + + // Determines that the AgentPool is created for use. At this state, Agents + // can join the AgentPool and participate in the transfer jobs in that pool. + CREATED = 2; + + // Determines that the AgentPool deletion has been initiated, and all the + // resources are scheduled to be cleaned up and freed. + DELETING = 3; + } + + // Specifies a bandwidth limit for an agent pool. + message BandwidthLimit { + // Bandwidth rate in megabytes per second, distributed across all the agents + // in the pool. + int64 limit_mbps = 1; + } + + // Required. Specifies a unique string that identifies the agent pool. + // + // Format: `projects/{project_id}/agentPools/{agent_pool_id}` + string name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Specifies the client-specified AgentPool description. + string display_name = 3; + + // Output only. Specifies the state of the AgentPool. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Specifies the bandwidth limit details. If this field is unspecified, the + // default value is set as 'No Limit'. + BandwidthLimit bandwidth_limit = 5; +} + // TransferOptions define the actions to be performed on objects in a transfer. message TransferOptions { + // Specifies when to overwrite an object in the sink when an object with + // matching name is found in the source. + enum OverwriteWhen { + // Overwrite behavior is unspecified. + OVERWRITE_WHEN_UNSPECIFIED = 0; + + // Overwrites destination objects with the source objects, only if the + // objects have the same name but different HTTP ETags or checksum values. + DIFFERENT = 1; + + // Never overwrites a destination object if a source object has the + // same name. In this case, the source object is not transferred. + NEVER = 2; + + // Always overwrite the destination object with the source object, even if + // the HTTP Etags or checksum values are the same. + ALWAYS = 3; + } + // When to overwrite objects that already exist in the sink. The default is // that only objects that are different from the source are ovewritten. If // true, all objects in the sink whose name matches an object in the source - // will be overwritten with the source object. + // are overwritten with the source object. bool overwrite_objects_already_existing_in_sink = 1; // Whether objects that exist only in the sink should be deleted. // - // **Note:** This option and [delete_objects_from_source_after_transfer] - // [google.storagetransfer.v1.TransferOptions.delete_objects_from_source_after_transfer] - // are mutually exclusive. + // **Note:** This option and [delete_objects_from_source_after_transfer][google.storagetransfer.v1.TransferOptions.delete_objects_from_source_after_transfer] are + // mutually exclusive. bool delete_objects_unique_in_sink = 2; // Whether objects should be deleted from the source after they are // transferred to the sink. // - // **Note:** This option and [delete_objects_unique_in_sink] - // [google.storagetransfer.v1.TransferOptions.delete_objects_unique_in_sink] - // are mutually exclusive. + // **Note:** This option and [delete_objects_unique_in_sink][google.storagetransfer.v1.TransferOptions.delete_objects_unique_in_sink] are mutually + // exclusive. bool delete_objects_from_source_after_transfer = 3; + + // When to overwrite objects that already exist in the sink. If not set, + // overwrite behavior is determined by + // [overwrite_objects_already_existing_in_sink][google.storagetransfer.v1.TransferOptions.overwrite_objects_already_existing_in_sink]. + OverwriteWhen overwrite_when = 4; + + // Represents the selected metadata options for a transfer job. + MetadataOptions metadata_options = 5; } // Configuration for running a transfer. @@ -353,6 +524,9 @@ message TransferSpec { oneof data_sink { // A Cloud Storage data sink. GcsData gcs_data_sink = 4; + + // A POSIX Filesystem data sink. + PosixFilesystem posix_data_sink = 13; } // The read source of the data. @@ -366,8 +540,22 @@ message TransferSpec { // An HTTP URL data source. HttpData http_data_source = 3; + // A POSIX Filesystem data source. + PosixFilesystem posix_data_source = 14; + // An Azure Blob Storage data source. AzureBlobStorageData azure_blob_storage_data_source = 8; + + // An AWS S3 compatible data source. + AwsS3CompatibleData aws_s3_compatible_data_source = 19; + } + + // Represents a supported data container type which is required for transfer + // jobs which needs a data source, a data sink and an intermediate location to + // transfer data through. This is validated on TransferJob creation. + oneof intermediate_data_location { + // Cloud Storage intermediate data location. + GcsData gcs_intermediate_data_location = 16; } // Only objects that satisfy these object conditions are included in the set @@ -381,39 +569,236 @@ message TransferSpec { // are specified, the request fails with an // [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] error. TransferOptions transfer_options = 6; + + // A manifest file provides a list of objects to be transferred from the data + // source. This field points to the location of the manifest file. + // Otherwise, the entire source bucket is used. ObjectConditions still apply. + TransferManifest transfer_manifest = 15; + + // Specifies the agent pool name associated with the posix data source. When + // unspecified, the default name is used. + string source_agent_pool_name = 17; + + // Specifies the agent pool name associated with the posix data sink. When + // unspecified, the default name is used. + string sink_agent_pool_name = 18; +} + +// Specifies the metadata options for running a transfer. +message MetadataOptions { + // Whether symlinks should be skipped or preserved during a transfer job. + enum Symlink { + // Symlink behavior is unspecified. + SYMLINK_UNSPECIFIED = 0; + + // Do not preserve symlinks during a transfer job. + SYMLINK_SKIP = 1; + + // Preserve symlinks during a transfer job. + SYMLINK_PRESERVE = 2; + } + + // Options for handling file mode attribute. + enum Mode { + // Mode behavior is unspecified. + MODE_UNSPECIFIED = 0; + + // Do not preserve mode during a transfer job. + MODE_SKIP = 1; + + // Preserve mode during a transfer job. + MODE_PRESERVE = 2; + } + + // Options for handling file GID attribute. + enum GID { + // GID behavior is unspecified. + GID_UNSPECIFIED = 0; + + // Do not preserve GID during a transfer job. + GID_SKIP = 1; + + // Preserve GID during a transfer job. + GID_NUMBER = 2; + } + + // Options for handling file UID attribute. + enum UID { + // UID behavior is unspecified. + UID_UNSPECIFIED = 0; + + // Do not preserve UID during a transfer job. + UID_SKIP = 1; + + // Preserve UID during a transfer job. + UID_NUMBER = 2; + } + + // Options for handling Cloud Storage object ACLs. + enum Acl { + // ACL behavior is unspecified. + ACL_UNSPECIFIED = 0; + + // Use the destination bucket's default object ACLS, if applicable. + ACL_DESTINATION_BUCKET_DEFAULT = 1; + + // Preserve the object's original ACLs. This requires the service account + // to have `storage.objects.getIamPolicy` permission for the source object. + // [Uniform bucket-level + // access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) + // must not be enabled on either the source or destination buckets. + ACL_PRESERVE = 2; + } + + // Options for handling Google Cloud Storage object storage class. + enum StorageClass { + // Storage class behavior is unspecified. + STORAGE_CLASS_UNSPECIFIED = 0; + + // Use the destination bucket's default storage class. + STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT = 1; + + // Preserve the object's original storage class. This is only supported for + // transfers from Google Cloud Storage buckets. + STORAGE_CLASS_PRESERVE = 2; + + // Set the storage class to STANDARD. + STORAGE_CLASS_STANDARD = 3; + + // Set the storage class to NEARLINE. + STORAGE_CLASS_NEARLINE = 4; + + // Set the storage class to COLDLINE. + STORAGE_CLASS_COLDLINE = 5; + + // Set the storage class to ARCHIVE. + STORAGE_CLASS_ARCHIVE = 6; + } + + // Options for handling temporary holds for Google Cloud Storage objects. + enum TemporaryHold { + // Temporary hold behavior is unspecified. + TEMPORARY_HOLD_UNSPECIFIED = 0; + + // Do not set a temporary hold on the destination object. + TEMPORARY_HOLD_SKIP = 1; + + // Preserve the object's original temporary hold status. + TEMPORARY_HOLD_PRESERVE = 2; + } + + // Options for handling the KmsKey setting for Google Cloud Storage objects. + enum KmsKey { + // KmsKey behavior is unspecified. + KMS_KEY_UNSPECIFIED = 0; + + // Use the destination bucket's default encryption settings. + KMS_KEY_DESTINATION_BUCKET_DEFAULT = 1; + + // Preserve the object's original Cloud KMS customer-managed encryption key + // (CMEK) if present. Objects that do not use a Cloud KMS encryption key + // will be encrypted using the destination bucket's encryption settings. + KMS_KEY_PRESERVE = 2; + } + + // Options for handling `timeCreated` metadata for Google Cloud Storage + // objects. + enum TimeCreated { + // TimeCreated behavior is unspecified. + TIME_CREATED_UNSPECIFIED = 0; + + // Do not preserve the `timeCreated` metadata from the source object. + TIME_CREATED_SKIP = 1; + + // Preserves the source object's `timeCreated` metadata in the `customTime` + // field in the destination object. Note that any value stored in the + // source object's `customTime` field will not be propagated to the + // destination object. + TIME_CREATED_PRESERVE_AS_CUSTOM_TIME = 2; + } + + // Specifies how symlinks should be handled by the transfer. By default, + // symlinks are not preserved. Only applicable to transfers involving + // POSIX file systems, and ignored for other transfers. + Symlink symlink = 1; + + // Specifies how each file's mode attribute should be handled by the transfer. + // By default, mode is not preserved. Only applicable to transfers involving + // POSIX file systems, and ignored for other transfers. + Mode mode = 2; + + // Specifies how each file's POSIX group ID (GID) attribute should be handled + // by the transfer. By default, GID is not preserved. Only applicable to + // transfers involving POSIX file systems, and ignored for other transfers. + GID gid = 3; + + // Specifies how each file's POSIX user ID (UID) attribute should be handled + // by the transfer. By default, UID is not preserved. Only applicable to + // transfers involving POSIX file systems, and ignored for other transfers. + UID uid = 4; + + // Specifies how each object's ACLs should be preserved for transfers between + // Google Cloud Storage buckets. If unspecified, the default behavior is the + // same as ACL_DESTINATION_BUCKET_DEFAULT. + Acl acl = 5; + + // Specifies the storage class to set on objects being transferred to Google + // Cloud Storage buckets. If unspecified, the default behavior is the same as + // [STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT][google.storagetransfer.v1.MetadataOptions.StorageClass.STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT]. + StorageClass storage_class = 6; + + // Specifies how each object's temporary hold status should be preserved for + // transfers between Google Cloud Storage buckets. If unspecified, the + // default behavior is the same as + // [TEMPORARY_HOLD_PRESERVE][google.storagetransfer.v1.MetadataOptions.TemporaryHold.TEMPORARY_HOLD_PRESERVE]. + TemporaryHold temporary_hold = 7; + + // Specifies how each object's Cloud KMS customer-managed encryption key + // (CMEK) is preserved for transfers between Google Cloud Storage buckets. If + // unspecified, the default behavior is the same as + // [KMS_KEY_DESTINATION_BUCKET_DEFAULT][google.storagetransfer.v1.MetadataOptions.KmsKey.KMS_KEY_DESTINATION_BUCKET_DEFAULT]. + KmsKey kms_key = 8; + + // Specifies how each object's `timeCreated` metadata is preserved for + // transfers between Google Cloud Storage buckets. If unspecified, the + // default behavior is the same as + // [TIME_CREATED_SKIP][google.storagetransfer.v1.MetadataOptions.TimeCreated.TIME_CREATED_SKIP]. + TimeCreated time_created = 9; +} + +// Specifies where the manifest is located. +message TransferManifest { + // Specifies the path to the manifest in Cloud Storage. The Google-managed + // service account for the transfer must have `storage.objects.get` + // permission for this object. An example path is + // `gs://bucket_name/path/manifest.csv`. + string location = 1; } // Transfers can be scheduled to recur or to run just once. message Schedule { // Required. The start date of a transfer. Date boundaries are determined - // relative to UTC time. If `schedule_start_date` and - // [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day] + // relative to UTC time. If `schedule_start_date` and [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day] // are in the past relative to the job's creation time, the transfer starts // the day after you schedule the transfer request. // // **Note:** When starting jobs at or near midnight UTC it is possible that - // a job will start later than expected. For example, if you send an outbound + // a job starts later than expected. For example, if you send an outbound // request on June 1 one millisecond prior to midnight UTC and the Storage - // Transfer Service server receives the request on June 2, then it will create + // Transfer Service server receives the request on June 2, then it creates // a TransferJob with `schedule_start_date` set to June 2 and a // `start_time_of_day` set to midnight UTC. The first scheduled - // [TransferOperation][google.storagetransfer.v1.TransferOperation] will take - // place on June 3 at midnight UTC. - google.type.Date schedule_start_date = 1 - [(google.api.field_behavior) = REQUIRED]; + // [TransferOperation][google.storagetransfer.v1.TransferOperation] takes place on June 3 at midnight UTC. + google.type.Date schedule_start_date = 1 [(google.api.field_behavior) = REQUIRED]; // The last day a transfer runs. Date boundaries are determined relative to - // UTC time. A job will run once per 24 hours within the following guidelines: + // UTC time. A job runs once per 24 hours within the following guidelines: // - // * If `schedule_end_date` and - // [schedule_start_date][google.storagetransfer.v1.Schedule.schedule_start_date] - // are the same and in + // * If `schedule_end_date` and [schedule_start_date][google.storagetransfer.v1.Schedule.schedule_start_date] are the same and in // the future relative to UTC, the transfer is executed only one time. // * If `schedule_end_date` is later than `schedule_start_date` and - // `schedule_end_date` is in the future relative to UTC, the job will - // run each day at - // [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day] - // through `schedule_end_date`. + // `schedule_end_date` is in the future relative to UTC, the job runs each + // day at [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day] through `schedule_end_date`. google.type.Date schedule_end_date = 2; // The time in UTC that a transfer job is scheduled to run. Transfers may @@ -423,8 +808,7 @@ message Schedule { // // * One-time transfers run immediately. // * Recurring transfers run immediately, and each day at midnight UTC, - // through - // [schedule_end_date][google.storagetransfer.v1.Schedule.schedule_end_date]. + // through [schedule_end_date][google.storagetransfer.v1.Schedule.schedule_end_date]. // // If `start_time_of_day` is specified: // @@ -434,15 +818,11 @@ message Schedule { google.type.TimeOfDay start_time_of_day = 3; // The time in UTC that no further transfer operations are scheduled. Combined - // with - // [schedule_end_date][google.storagetransfer.v1.Schedule.schedule_end_date], - // `end_time_of_day` specifies the end date and time for starting new transfer - // operations. This field must be greater than or equal to the timestamp - // corresponding to the combintation of - // [schedule_start_date][google.storagetransfer.v1.Schedule.schedule_start_date] - // and - // [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day], - // and is subject to the following: + // with [schedule_end_date][google.storagetransfer.v1.Schedule.schedule_end_date], `end_time_of_day` specifies the end date and + // time for starting new transfer operations. This field must be greater than + // or equal to the timestamp corresponding to the combintation of + // [schedule_start_date][google.storagetransfer.v1.Schedule.schedule_start_date] and [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day], and is subject to the + // following: // // * If `end_time_of_day` is not set and `schedule_end_date` is set, then // a default value of `23:59:59` is used for `end_time_of_day`. @@ -465,10 +845,10 @@ message TransferJob { // Zero is an illegal value. STATUS_UNSPECIFIED = 0; - // New transfers will be performed based on the schedule. + // New transfers are performed based on the schedule. ENABLED = 1; - // New transfers will not be scheduled. + // New transfers are not scheduled. DISABLED = 2; // This is a soft delete state. After a transfer job is set to this @@ -480,19 +860,28 @@ message TransferJob { // A unique name (within the transfer project) assigned when the job is // created. If this field is empty in a CreateTransferJobRequest, Storage - // Transfer Service will assign a unique name. Otherwise, the specified name + // Transfer Service assigns a unique name. Otherwise, the specified name // is used as the unique name for this job. // // If the specified name is in use by a job, the creation request fails with // an [ALREADY_EXISTS][google.rpc.Code.ALREADY_EXISTS] error. // // This name must start with `"transferJobs/"` prefix and end with a letter or - // a number, and should be no more than 128 characters. This name must not - // start with 'transferJobs/OPI'. 'transferJobs/OPI' is a reserved prefix. - // Example: + // a number, and should be no more than 128 characters. For transfers + // involving PosixFilesystem, this name must start with `transferJobs/OPI` + // specifically. For all other transfer types, this name must not start with + // `transferJobs/OPI`. + // + // Non-PosixFilesystem example: // `"transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$"` // - // Invalid job names will fail with an + // PosixFilesystem example: + // `"transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$"` + // + // Applications must not rely on the enforcement of naming requirements + // involving OPI. + // + // Invalid job names fail with an // [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] error. string name = 1; @@ -500,18 +889,22 @@ message TransferJob { // bytes when Unicode-encoded. string description = 2; - // The ID of the Google Cloud Platform Project that owns the job. + // The ID of the Google Cloud project that owns the job. string project_id = 3; // Transfer specification. TransferSpec transfer_spec = 4; - // Notification configuration. + // Notification configuration. This is not supported for transfers involving + // PosixFilesystem. NotificationConfig notification_config = 11; + // Logging configuration. + LoggingConfig logging_config = 14; + // Specifies schedule for the transfer job. - // This is an optional field. When the field is not set, the job will never - // execute a transfer, unless you invoke RunTransferJob or update the job to + // This is an optional field. When the field is not set, the job never + // executes a transfer, unless you invoke RunTransferJob or update the job to // have a non-empty schedule. Schedule schedule = 5; @@ -520,23 +913,19 @@ message TransferJob { // // **Note:** The effect of the new job status takes place during a subsequent // job run. For example, if you change the job status from - // [ENABLED][google.storagetransfer.v1.TransferJob.Status.ENABLED] to - // [DISABLED][google.storagetransfer.v1.TransferJob.Status.DISABLED], and an - // operation spawned by the transfer is running, the status change would not - // affect the current operation. + // [ENABLED][google.storagetransfer.v1.TransferJob.Status.ENABLED] to [DISABLED][google.storagetransfer.v1.TransferJob.Status.DISABLED], and an operation + // spawned by the transfer is running, the status change would not affect the + // current operation. Status status = 6; // Output only. The time that the transfer job was created. - google.protobuf.Timestamp creation_time = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp creation_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time that the transfer job was last modified. - google.protobuf.Timestamp last_modification_time = 8 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp last_modification_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time that the transfer job was deleted. - google.protobuf.Timestamp deletion_time = 9 - [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp deletion_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // The name of the most recently started TransferOperation of this JobConfig. // Present if a TransferOperation has been created for this JobConfig. @@ -564,7 +953,7 @@ message ErrorSummary { // Error samples. // - // At most 5 error log entries will be recorded for a given + // At most 5 error log entries are recorded for a given // error code for a single transfer operation. repeated ErrorLogEntry error_log_entries = 3; } @@ -626,29 +1015,50 @@ message TransferCounters { // Bytes that failed to be deleted from the data sink. int64 bytes_failed_to_delete_from_sink = 16; + + // For transfers involving PosixFilesystem only. + // + // Number of directories found while listing. For example, if the root + // directory of the transfer is `base/` and there are two other directories, + // `a/` and `b/` under this directory, the count after listing `base/`, + // `base/a/` and `base/b/` is 3. + int64 directories_found_from_source = 17; + + // For transfers involving PosixFilesystem only. + // + // Number of listing failures for each directory found at the source. + // Potential failures when listing a directory include permission failure or + // block failure. If listing a directory fails, no files in the directory are + // transferred. + int64 directories_failed_to_list_from_source = 18; + + // For transfers involving PosixFilesystem only. + // + // Number of successful listings for each directory found at the source. + int64 directories_successfully_listed_from_source = 19; + + // Number of successfully cleaned up intermediate objects. + int64 intermediate_objects_cleaned_up = 22; + + // Number of intermediate objects failed cleaned up. + int64 intermediate_objects_failed_cleaned_up = 23; } -// Specification to configure notifications published to Cloud Pub/Sub. -// Notifications will be published to the customer-provided topic using the +// Specification to configure notifications published to Pub/Sub. +// Notifications are published to the customer-provided topic using the // following `PubsubMessage.attributes`: // -// * `"eventType"`: one of the -// [EventType][google.storagetransfer.v1.NotificationConfig.EventType] values -// * `"payloadFormat"`: one of the -// [PayloadFormat][google.storagetransfer.v1.NotificationConfig.PayloadFormat] -// values -// * `"projectId"`: the -// [project_id][google.storagetransfer.v1.TransferOperation.project_id] of the +// * `"eventType"`: one of the [EventType][google.storagetransfer.v1.NotificationConfig.EventType] values +// * `"payloadFormat"`: one of the [PayloadFormat][google.storagetransfer.v1.NotificationConfig.PayloadFormat] values +// * `"projectId"`: the [project_id][google.storagetransfer.v1.TransferOperation.project_id] of the // `TransferOperation` // * `"transferJobName"`: the -// [transfer_job_name][google.storagetransfer.v1.TransferOperation.transfer_job_name] -// of the `TransferOperation` -// * `"transferOperationName"`: the -// [name][google.storagetransfer.v1.TransferOperation.name] of the +// [transfer_job_name][google.storagetransfer.v1.TransferOperation.transfer_job_name] of the +// `TransferOperation` +// * `"transferOperationName"`: the [name][google.storagetransfer.v1.TransferOperation.name] of the // `TransferOperation` // -// The `PubsubMessage.data` will contain a -// [TransferOperation][google.storagetransfer.v1.TransferOperation] resource +// The `PubsubMessage.data` contains a [TransferOperation][google.storagetransfer.v1.TransferOperation] resource // formatted according to the specified `PayloadFormat`. message NotificationConfig { // Enum for specifying event types for which notifications are to be @@ -688,9 +1098,9 @@ message NotificationConfig { JSON = 2; } - // Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish + // Required. The `Topic.name` of the Pub/Sub topic to which to publish // notifications. Must be of the format: `projects/{project}/topics/{topic}`. - // Not matching this format will result in an + // Not matching this format results in an // [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] error. string pubsub_topic = 1 [(google.api.field_behavior) = REQUIRED]; @@ -702,6 +1112,63 @@ message NotificationConfig { PayloadFormat payload_format = 3 [(google.api.field_behavior) = REQUIRED]; } +// Specifies the logging behavior for transfer operations. +// +// For cloud-to-cloud transfers, logs are sent to Cloud Logging. See +// [Read transfer +// logs](https://cloud.google.com/storage-transfer/docs/read-transfer-logs) for +// details. +// +// For transfers to or from a POSIX file system, logs are stored in the +// Cloud Storage bucket that is the source or sink of the transfer. +// See [Managing Transfer for on-premises jobs] +// (https://cloud.google.com/storage-transfer/docs/managing-on-prem-jobs#viewing-logs) +// for details. +message LoggingConfig { + // Loggable actions. + enum LoggableAction { + // Default value. This value is unused. + LOGGABLE_ACTION_UNSPECIFIED = 0; + + // Listing objects in a bucket. + FIND = 1; + + // Deleting objects at the source or the destination. + DELETE = 2; + + // Copying objects to Google Cloud Storage. + COPY = 3; + } + + // Loggable action states. + enum LoggableActionState { + // Default value. This value is unused. + LOGGABLE_ACTION_STATE_UNSPECIFIED = 0; + + // `LoggableAction` completed successfully. `SUCCEEDED` actions are + // logged as [INFO][google.logging.type.LogSeverity.INFO]. + SUCCEEDED = 1; + + // `LoggableAction` terminated in an error state. `FAILED` actions are + // logged as [ERROR][google.logging.type.LogSeverity.ERROR]. + FAILED = 2; + } + + // Specifies the actions to be logged. If empty, no logs are generated. + // Not supported for transfers with PosixFilesystem data sources; use + // [enable_onprem_gcs_transfer_logs][google.storagetransfer.v1.LoggingConfig.enable_onprem_gcs_transfer_logs] instead. + repeated LoggableAction log_actions = 1; + + // States in which `log_actions` are logged. If empty, no logs are generated. + // Not supported for transfers with PosixFilesystem data sources; use + // [enable_onprem_gcs_transfer_logs][google.storagetransfer.v1.LoggingConfig.enable_onprem_gcs_transfer_logs] instead. + repeated LoggableActionState log_action_states = 2; + + // For transfers with a PosixFilesystem source, this option enables the Cloud + // Storage transfer logs for this transfer. + bool enable_onprem_gcs_transfer_logs = 3; +} + // A description of the execution of a transfer. message TransferOperation { // The status of a TransferOperation. @@ -731,7 +1198,7 @@ message TransferOperation { // A globally unique ID assigned by the system. string name = 1; - // The ID of the Google Cloud Platform Project that owns the operation. + // The ID of the Google Cloud project that owns the operation. string project_id = 2; // Transfer specification. diff --git a/google/streetview/publish/v1/BUILD.bazel b/google/streetview/publish/v1/BUILD.bazel index 304e4fd1d..553dc0d36 100644 --- a/google/streetview/publish/v1/BUILD.bazel +++ b/google/streetview/publish/v1/BUILD.bazel @@ -32,6 +32,7 @@ proto_library( "//google/longrunning:operations_proto", "//google/rpc:status_proto", "//google/type:latlng_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", @@ -74,10 +75,12 @@ java_gapic_library( srcs = [":publish_proto_with_info"], gapic_yaml = "streetview_publish_gapic.yaml", grpc_service_config = "streetview_publish_grpc_service_config.json", + rest_numeric_enums = False, service_yaml = "streetviewpublish.yaml", test_deps = [ ":publish_java_grpc", ], + transport = "grpc+rest", deps = [ ":publish_java_proto", "//google/api:api_java_proto", @@ -87,6 +90,7 @@ java_gapic_library( java_gapic_test( name = "publish_java_gapic_test_suite", test_classes = [ + "com.google.streetview.publish.v1.StreetViewPublishServiceClientHttpJsonTest", "com.google.streetview.publish.v1.StreetViewPublishServiceClientTest", ], runtime_deps = [":publish_java_gapic_test"], @@ -95,6 +99,8 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-streetview-publish-v1-java", + include_samples = True, + transport = "grpc+rest", deps = [ ":publish_java_gapic", ":publish_java_grpc", @@ -133,12 +139,15 @@ go_gapic_library( grpc_service_config = "streetview_publish_grpc_service_config.json", importpath = "google.golang.org/google/streetview/publish/v1;publish", metadata = True, + rest_numeric_enums = False, service_yaml = "streetviewpublish.yaml", + transport = "grpc+rest", deps = [ ":publish_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", ], ) @@ -167,14 +176,31 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( name = "publish_py_gapic", srcs = [":publish_proto"], grpc_service_config = "streetview_publish_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "streetviewpublish.yaml", + transport = "grpc", + deps = [ + ], ) +# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1375 is fixed +#py_test( +# name = "publish_py_gapic_test", +# srcs = [ +# "publish_py_gapic_pytest.py", +# "publish_py_gapic_test.py", +# ], +# legacy_create_init = False, +# deps = [":publish_py_gapic"], +#) + # Open Source Packages py_gapic_assembly_pkg( name = "streetview-publish-v1-py", @@ -209,6 +235,7 @@ php_gapic_library( name = "publish_php_gapic", srcs = [":publish_proto_with_info"], grpc_service_config = "streetview_publish_grpc_service_config.json", + rest_numeric_enums = False, service_yaml = "streetviewpublish.yaml", deps = [ ":publish_php_grpc", @@ -242,6 +269,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "streetview_publish_grpc_service_config.json", package = "google.streetview.publish.v1", + rest_numeric_enums = False, service_yaml = "streetviewpublish.yaml", deps = [], ) @@ -281,6 +309,8 @@ ruby_cloud_gapic_library( srcs = [":publish_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-publish-v1"], grpc_service_config = "streetview_publish_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "streetviewpublish.yaml", deps = [ ":publish_ruby_grpc", ":publish_ruby_proto", @@ -324,6 +354,8 @@ csharp_gapic_library( srcs = [":publish_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "streetview_publish_grpc_service_config.json", + rest_numeric_enums = False, + service_yaml = "streetviewpublish.yaml", deps = [ ":publish_csharp_grpc", ":publish_csharp_proto", diff --git a/google/streetview/publish/v1/resources.proto b/google/streetview/publish/v1/resources.proto index 813c783b4..2082eee97 100644 --- a/google/streetview/publish/v1/resources.proto +++ b/google/streetview/publish/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.streetview.publish.v1; import "google/api/field_behavior.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/type/latlng.proto"; @@ -86,6 +87,9 @@ message Pose { // NaN indicates an unmeasured quantity. double roll = 5; + // Time of the GPS record since UTC epoch. + google.protobuf.Timestamp gps_record_timestamp_unix_epoch = 6; + // Level (the floor in a building) used to configure vertical navigation. Level level = 7; @@ -98,6 +102,36 @@ message Pose { float accuracy_meters = 9; } +// IMU data from the device sensors. +message Imu { + // A Generic 3d measurement sample. + message Measurement3d { + // The timestamp of the IMU measurement. + google.protobuf.Timestamp capture_time = 1; + + // The sensor measurement in the x axis. + float x = 2; + + // The sensor measurement in the y axis. + float y = 3; + + // The sensor measurement in the z axis. + float z = 4; + } + + // The accelerometer measurements in meters/sec^2 with increasing timestamps + // from devices. + repeated Measurement3d accel_mpsps = 1; + + // The gyroscope measurements in radians/sec with increasing timestamps from + // devices. + repeated Measurement3d gyro_rps = 2; + + // The magnetometer measurements of the magnetic field in microtesla (uT) with + // increasing timestamps from devices. + repeated Measurement3d mag_ut = 3; +} + // Place metadata for an entity. message Place { // Place identifier, as described in @@ -214,3 +248,259 @@ message Photo { // 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. +message PhotoSequence { + // Primary source of GPS measurements. + enum GpsSource { + // GPS in raw_gps_timeline takes precedence if it exists. + PHOTO_SEQUENCE = 0; + + // GPS in Camera Motion Metadata Track (CAMM) takes precedence if it exists. + CAMERA_MOTION_METADATA_TRACK = 1; + } + + // Output only. Unique identifier for the photo sequence. + // This also acts as a long running operation ID if uploading is performed + // asynchronously. + string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Photos with increasing timestamps. + repeated Photo photos = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Input only. Required when creating photo sequence. The resource name + // where the bytes of the photo sequence (in the form of video) are uploaded. + UploadRef upload_reference = 3 [(google.api.field_behavior) = INPUT_ONLY]; + + // Optional. Absolute time when the photo sequence starts to be captured. + // 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]; + + // 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). + repeated Pose raw_gps_timeline = 7 [(google.api.field_behavior) = INPUT_ONLY]; + + // Input only. If both raw_gps_timeline and + // the Camera Motion Metadata Track (CAMM) contain GPS measurements, + // indicate which takes precedence. + GpsSource gps_source = 8 [(google.api.field_behavior) = INPUT_ONLY]; + + // Input only. Three axis IMU data for the collection. + // If this data is too large to put in the request, then it should be put in + // the CAMM track for the video. This data always takes precedence over the + // equivalent CAMM data, if it exists. + 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]; + + // 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. 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. + 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. + 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. + string filename = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A rectangle in geographical coordinates. +message LatLngBounds { + // The southwest corner of these bounds. + google.type.LatLng southwest = 1; + + // The northeast corner of these bounds. + google.type.LatLng northeast = 2; +} + +// The processing state of the sequence. The states move as follows: +// +// ``` +// +-------------------------+ +// | | +// +---v---+ +----------+ +----+----+ +// |PENDING+-->PROCESSING+-->PROCESSED| +// +---+---+ +----+-----+ +----+----+ +// | | | +// | +--v---+ | +// +-------->FAILED<---------+ +// +------+ +// ``` +// +// The sequence may move to FAILED from any state. Additionally, a processed +// sequence may be re-processed at any time. +enum ProcessingState { + // The state is unspecified, this is the default value. + PROCESSING_STATE_UNSPECIFIED = 0; + + // The sequence has not yet started processing. + PENDING = 1; + + // The sequence is currently in processing. + PROCESSING = 2; + + // The sequence has finished processing including refining position. + PROCESSED = 3; + + // The sequence failed processing. See FailureReason for more details. + FAILED = 4; +} + +// The possible reasons this [PhotoSequence] +// [google.streetview.publish.v1.PhotoSequence] failed to process. +enum ProcessingFailureReason { + // The failure reason is unspecified, this is the default value. + PROCESSING_FAILURE_REASON_UNSPECIFIED = 0; + + // Video frame's resolution is too small. + LOW_RESOLUTION = 1; + + // This video has been uploaded before. + DUPLICATE = 2; + + // Too few GPS points. + INSUFFICIENT_GPS = 3; + + // No overlap between the time frame of GPS track and the time frame of + // video. + NO_OVERLAP_GPS = 4; + + // GPS is invalid (e.x. all GPS points are at (0,0)) + INVALID_GPS = 5; + + // The sequence of photos could not be accurately located in the world. + FAILED_TO_REFINE_POSITIONS = 6; + + // The sequence was taken down for policy reasons. + TAKEDOWN = 7; + + // The video file was corrupt or could not be decoded. + CORRUPT_VIDEO = 8; + + // A permanent failure in the underlying system occurred. + INTERNAL = 9; + + // The video format is invalid or unsupported. + INVALID_VIDEO_FORMAT = 10; + + // Invalid image aspect ratio found. + INVALID_VIDEO_DIMENSIONS = 11; + + // Invalid capture time. Timestamps were from the future. + INVALID_CAPTURE_TIME = 12; + + // GPS data contains a gap greater than 5 seconds in duration. + GPS_DATA_GAP = 13; + + // GPS data is too erratic to be processed. + JUMPY_GPS = 14; + + // IMU (Accelerometer, Gyroscope, etc.) data are not valid. They may be + // missing required fields (x, y, z or time), may not be formatted correctly, + // or any other issue that prevents our systems from parsing it. + INVALID_IMU = 15; + + // Too few IMU points. + INSUFFICIENT_IMU = 21; + + // Insufficient overlap in the time frame between GPS, IMU, and other time + // series data. + INSUFFICIENT_OVERLAP_TIME_SERIES = 22; + + // IMU (Accelerometer, Gyroscope, etc.) data contain gaps greater than 0.1 + // seconds in duration. + IMU_DATA_GAP = 16; + + // The camera is not supported. + UNSUPPORTED_CAMERA = 17; + + // Some frames were indoors, which is unsupported. + NOT_OUTDOORS = 18; + + // Not enough video frames. + INSUFFICIENT_VIDEO_FRAMES = 19; +} + +// Additional details to accompany the ProcessingFailureReason enum. +// This message is always expected to be used in conjunction with +// ProcessingFailureReason, and the oneof value set in this message should match +// the FailureReason. +message ProcessingFailureDetails { + // Only one set of details will be set, and must match the corresponding enum + // in ProcessingFailureReason. + oneof details { + // See InsufficientGpsFailureDetails. + InsufficientGpsFailureDetails insufficient_gps_details = 1; + + // See GpsDataGapFailureDetails. + GpsDataGapFailureDetails gps_data_gap_details = 2; + + // See ImuDataGapFailureDetails. + ImuDataGapFailureDetails imu_data_gap_details = 3; + + // See NotOutdoorsFailureDetails. + NotOutdoorsFailureDetails not_outdoors_details = 4; + } +} + +// Details related to ProcessingFailureReason#INSUFFICIENT_GPS. +message InsufficientGpsFailureDetails { + // The number of GPS points that were found in the video. + optional int32 gps_points_found = 1; +} + +// Details related to ProcessingFailureReason#GPS_DATA_GAP. +// If there are multiple GPS data gaps, only the one with the largest duration +// is reported here. +message GpsDataGapFailureDetails { + // The duration of the gap in GPS data that was found. + optional google.protobuf.Duration gap_duration = 1; + + // Relative time (from the start of the video stream) when the gap started. + optional google.protobuf.Duration gap_start_time = 2; +} + +// Details related to ProcessingFailureReason#IMU_DATA_GAP. +// If there are multiple IMU data gaps, only the one with the largest duration +// is reported here. +message ImuDataGapFailureDetails { + // The duration of the gap in IMU data that was found. + optional google.protobuf.Duration gap_duration = 1; + + // Relative time (from the start of the video stream) when the gap started. + optional google.protobuf.Duration gap_start_time = 2; +} + +// Details related to ProcessingFailureReason#NOT_OUTDOORS. +// If there are multiple indoor frames found, the first frame is recorded here. +message NotOutdoorsFailureDetails { + // Relative time (from the start of the video stream) when an indoor frame was + // found. + optional google.protobuf.Duration start_time = 1; +} diff --git a/google/streetview/publish/v1/rpcmessages.proto b/google/streetview/publish/v1/rpcmessages.proto index 2460a2fbc..a3aae444e 100644 --- a/google/streetview/publish/v1/rpcmessages.proto +++ b/google/streetview/publish/v1/rpcmessages.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -144,7 +144,9 @@ message ListPhotosRequest { // Optional. The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`. // - // The filters supported at the moment are: `placeId`. + // The filters supported are: `placeId`, `min_latitude`, `max_latitude`, + // `min_longitude`, and `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 @@ -235,6 +237,67 @@ message BatchDeletePhotosRequest { repeated string photo_ids = 1 [(google.api.field_behavior) = REQUIRED]; } +// Request to create a +// [PhotoSequence][google.streetview.publish.v1.PhotoSequence] from a video. +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]. + INPUT_TYPE_UNSPECIFIED = 0; + + // 360 Video. + VIDEO = 1; + + // Extensible Device Metadata, http://www.xdm.org + XDM = 2; + } + + // Required. [PhotoSequence][google.streetview.publish.v1.PhotoSequence] to + // create. + PhotoSequence photo_sequence = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The input form of + // [PhotoSequence][google.streetview.publish.v1.PhotoSequence]. + InputType input_type = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request to get a [PhotoSequence][google.streetview.publish.v1.PhotoSequence]. +// +// By default +// +// * does not return the download URL for the +// [PhotoSequence][google.streetview.publish.v1.PhotoSequence]. +// +// Parameters: +// +// * `view` controls if the download URL for the +// [PhotoSequence][google.streetview.publish.v1.PhotoSequence] is +// returned. +message GetPhotoSequenceRequest { + // Required. ID of the photo sequence. + string sequence_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Specifies if a download URL for the photo sequence should be returned in + // `download_url` of individual photos in the + // [PhotoSequence][google.streetview.publish.v1.PhotoSequence] response. + // > Note: Currently not implemented. + PhotoView view = 2 [deprecated = true]; + + // Optional. The filter expression. For example: `published_status=PUBLISHED`. + // + // The filters supported are: `published_status`. See + // https://google.aip.dev/160 for more information. + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request to delete a +// [PhotoSequence][google.streetview.publish.v1.PhotoSequence]. +message DeletePhotoSequenceRequest { + // Required. ID of the + // [PhotoSequence][google.streetview.publish.v1.PhotoSequence]. + string sequence_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + // Response to batch delete of one or more // [Photos][google.streetview.publish.v1.Photo]. message BatchDeletePhotosResponse { @@ -243,6 +306,69 @@ message BatchDeletePhotosResponse { repeated google.rpc.Status status = 1; } +// Request to list all photo sequences that belong to the user sending the +// request. +// +// Parameters: +// +// * `pageSize` determines the maximum number of photo sequences to return. +// * `pageToken` is the next page token value returned from a previous +// [ListPhotoSequences][google.streetview.publish.v1.StreetViewPublishService.ListPhotoSequences] +// request, if any. +message ListPhotoSequencesRequest { + // Optional. The maximum number of photo sequences to return. + // `pageSize` must be non-negative. If `pageSize` is zero or is not + // provided, the default page size of 100 is used. + // The number of photo sequences returned in the response may be less than + // `pageSize` if the number of matches is less than `pageSize`. + // This is currently unimplemented but is in process. + int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The + // [nextPageToken][google.streetview.publish.v1.ListPhotosResponse.next_page_token] + // value returned from a previous + // [ListPhotoSequences][google.streetview.publish.v1.StreetViewPublishService.ListPhotoSequences] + // request, if any. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // 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" + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response to list all photo sequences that belong to a user. +message ListPhotoSequencesResponse { + // List of photo sequences via [Operation][google.longrunning.Operation] + // interface. + // + // The maximum number of items returned is based on the + // [pageSize][google.streetview.publish.v1.ListPhotoSequencesRequest.page_size] + // field in the request. + // + // Each item in the list can have three possible states, + // + // * `Operation.done` = false, if the processing of + // [PhotoSequence][google.streetview.publish.v1.PhotoSequence] is not + // finished yet. + // * `Operation.done` = true and `Operation.error` is populated, if there was + // an error in processing. + // * `Operation.done` = true and `Operation.response` contains a + // [PhotoSequence][google.streetview.publish.v1.PhotoSequence] message, + // In each sequence, only + // [Id][google.streetview.publish.v1.PhotoSequence.id] is populated. + repeated google.longrunning.Operation photo_sequences = 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; +} + // Specifies which view of the [Photo][google.streetview.publish.v1.Photo] // to include in the response. enum PhotoView { diff --git a/google/streetview/publish/v1/streetview_publish.proto b/google/streetview/publish/v1/streetview_publish.proto index 879e76754..11aa968e0 100644 --- a/google/streetview/publish/v1/streetview_publish.proto +++ b/google/streetview/publish/v1/streetview_publish.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// 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. @@ -244,4 +244,106 @@ service StreetViewPublishService { }; option (google.api.method_signature) = "photo_ids"; } + + // Creates an upload session to start uploading photo sequence data. + // The upload URL of the returned + // [UploadRef][google.streetview.publish.v1.UploadRef] is used to upload the + // data for the `photoSequence`. + // + // After the upload is complete, the + // [UploadRef][google.streetview.publish.v1.UploadRef] is used with + // [CreatePhotoSequence][google.streetview.publish.v1.StreetViewPublishService.CreatePhotoSequence] + // to create the [PhotoSequence][google.streetview.publish.v1.PhotoSequence] + // object entry. + rpc StartPhotoSequenceUpload(google.protobuf.Empty) returns (UploadRef) { + option (google.api.http) = { + post: "/v1/photoSequence:startUpload" + body: "*" + }; + } + + // After the client finishes uploading the + // [PhotoSequence][google.streetview.publish.v1.PhotoSequence] with the + // returned [UploadRef][google.streetview.publish.v1.UploadRef], + // [CreatePhotoSequence][google.streetview.publish.v1.StreetViewPublishService.CreatePhotoSequence] + // extracts a sequence of 360 photos from a video or Extensible Device + // Metadata (XDM, http://www.xdm.org/) to be published to Street View on + // Google Maps. + // + // `CreatePhotoSequence` returns an [Operation][google.longrunning.Operation], + // with the [PhotoSequence][google.streetview.publish.v1.PhotoSequence] Id set + // in the `Operation.name` field. + // + // 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) { + option (google.api.http) = { + post: "/v1/photoSequence" + body: "photo_sequence" + }; + option (google.api.method_signature) = "photo_sequence,input_type"; + option (google.longrunning.operation_info) = { + response_type: "PhotoSequence" + metadata_type: "google.protobuf.Empty" + }; + } + + // Gets the metadata of the specified + // [PhotoSequence][google.streetview.publish.v1.PhotoSequence] via the + // [Operation][google.longrunning.Operation] interface. + // + // This method returns the following three types of responses: + // + // * `Operation.done` = false, if the processing of + // [PhotoSequence][google.streetview.publish.v1.PhotoSequence] is not + // finished yet. + // * `Operation.done` = true and `Operation.error` is populated, if there was + // an error in processing. + // * `Operation.done` = true and `Operation.response` is poulated, which + // contains a [PhotoSequence][google.streetview.publish.v1.PhotoSequence] + // message. + // + // 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 + // [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) { + option (google.api.http) = { + get: "/v1/photoSequence/{sequence_id}" + }; + option (google.longrunning.operation_info) = { + response_type: "PhotoSequence" + metadata_type: "google.protobuf.Empty" + }; + } + + // Lists all the [PhotoSequences][google.streetview.publish.v1.PhotoSequence] + // that belong to the user, in descending CreatePhotoSequence timestamp order. + rpc ListPhotoSequences(ListPhotoSequencesRequest) returns (ListPhotoSequencesResponse) { + option (google.api.http) = { + get: "/v1/photoSequences" + }; + } + + // Deletes a [PhotoSequence][google.streetview.publish.v1.PhotoSequence] and + // its metadata. + // + // 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.FAILED_PRECONDITION][google.rpc.Code.FAILED_PRECONDITION] if the photo sequence ID is not + // yet finished processing. + rpc DeletePhotoSequence(DeletePhotoSequenceRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/photoSequence/{sequence_id}" + }; + option (google.api.method_signature) = "sequence_id"; + } } diff --git a/google/type/BUILD.bazel b/google/type/BUILD.bazel index a7ad4d4d2..3da292fe9 100644 --- a/google/type/BUILD.bazel +++ b/google/type/BUILD.bazel @@ -103,9 +103,11 @@ proto_library( ############################################################################## # Java ############################################################################## -load("@com_google_googleapis_imports//:imports.bzl", - "java_gapic_assembly_gradle_pkg", - "java_proto_library") +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_proto_library", +) java_proto_library( name = "type_java_proto", @@ -135,8 +137,8 @@ java_proto_library( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-type-java", + transport = "grpc+rest", deps = [ - ":type_java_proto", ":calendar_period_proto", ":color_proto", ":date_proto", @@ -154,10 +156,10 @@ java_gapic_assembly_gradle_pkg( ":postal_address_proto", ":quaternion_proto", ":timeofday_proto", + ":type_java_proto", ], ) - ############################################################################## # Go ############################################################################## diff --git a/grafeas/v1/BUILD.bazel b/grafeas/v1/BUILD.bazel index e29021b2c..400abffb7 100644 --- a/grafeas/v1/BUILD.bazel +++ b/grafeas/v1/BUILD.bazel @@ -37,6 +37,7 @@ proto_library( "provenance.proto", "severity.proto", "slsa_provenance.proto", + "slsa_provenance_zero_two.proto", "upgrade.proto", "vulnerability.proto", ], @@ -49,6 +50,7 @@ proto_library( "@com_google_protobuf//:any_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -72,12 +74,12 @@ proto_library( "compliance.proto", ], deps = [ + ":severity_proto", "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/rpc:status_proto", - ":severity_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -153,9 +155,10 @@ java_gapic_library( test_deps = [ ":grafeas_java_grpc", ], + transport = "grpc", deps = [ - ":grafeas_java_proto", ":common_proto", + ":grafeas_java_proto", "//google/api:api_java_proto", ], ) @@ -165,14 +168,16 @@ java_gapic_test( test_classes = [ "io.grafeas.v1.GrafeasClientTest", ], - runtime_deps = [":grafeas_java_gapic_test", - ":common_proto", - ], + runtime_deps = [ + ":common_proto", + ":grafeas_java_gapic_test", + ], ) # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-grafeas-v1-java", + transport = "grpc", deps = [ ":grafeas_java_gapic", ":grafeas_java_grpc", @@ -185,6 +190,7 @@ java_proto_library( name = "common_java_proto", deps = [":common_proto"], ) + ############################################################################## # Go ############################################################################## @@ -200,8 +206,9 @@ go_proto_library( name = "grafeas_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], importpath = "google.golang.org/genproto/googleapis/grafeas/v1", - protos = [":grafeas_proto", - ], + protos = [ + ":grafeas_proto", + ], deps = [ "//google/api:annotations_go_proto", "//google/rpc:status_go_proto", @@ -215,6 +222,7 @@ go_gapic_library( importpath = "cloud.google.com/go/grafeas/apiv1;grafeas", metadata = True, service_yaml = "//grafeas:grafeas_v1.yaml", + transport = "grpc", deps = [ ":grafeas_go_proto", ], @@ -248,9 +256,10 @@ go_proto_library( name = "compliance_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], importpath = "google.golang.org/genproto/googleapis/grafeas/v1", - protos = [":compliance_proto", - ":severity_proto", - ], + protos = [ + ":compliance_proto", + ":severity_proto", + ], deps = [ "//google/api:annotations_go_proto", "//google/rpc:status_go_proto", @@ -286,6 +295,13 @@ load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_proto_library", + "py_test", +) + +py_proto_library( + name = "grafeas_py_proto", + deps = ["grafeas_proto"], ) py_gapic_library( @@ -293,6 +309,17 @@ py_gapic_library( srcs = [":grafeas_proto"], grpc_service_config = "grafeas_grpc_service_config.json", opt_args = ["python-gapic-namespace=grafeas"], + transport = "grpc", +) + +py_test( + name = "grafeas_py_gapic_test", + srcs = [ + "grafeas_py_gapic_pytest.py", + "grafeas_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":grafeas_py_gapic"], ) # Open Source Packages @@ -450,6 +477,7 @@ csharp_gapic_library( srcs = [":grafeas_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "grafeas_grpc_service_config.json", + service_yaml = "//grafeas:grafeas_v1.yaml", deps = [ ":grafeas_csharp_grpc", ":grafeas_csharp_proto", diff --git a/grafeas/v1/common.proto b/grafeas/v1/common.proto index 29a666320..80bd78699 100644 --- a/grafeas/v1/common.proto +++ b/grafeas/v1/common.proto @@ -119,3 +119,32 @@ message EnvelopeSignature { bytes sig = 1; string keyid = 2; } + +// Indicates the location at which a package was found. +message FileLocation { + // For jars that are contained inside .war files, this filepath + // can indicate the path to war file combined with the path to jar file. + string file_path = 1; +} + +// License information. +message License { + // Often a single license can be used to represent the licensing terms. + // Sometimes it is necessary to include a choice of one or more licenses + // or some combination of license identifiers. + // Examples: "LGPL-2.1-only OR MIT", "LGPL-2.1-only AND MIT", + // "GPL-2.0-or-later WITH Bison-exception-2.2". + string expression = 1; + + // Comments + string comments = 2; +} + +// Digest information. +message Digest { + // `SHA1`, `SHA512` etc. + string algo = 1; + + // Value of the digest. + bytes digest_bytes = 2; +} diff --git a/grafeas/v1/compliance.proto b/grafeas/v1/compliance.proto index 7913151eb..688fa8259 100644 --- a/grafeas/v1/compliance.proto +++ b/grafeas/v1/compliance.proto @@ -52,6 +52,9 @@ message ComplianceVersion { // The CPE URI (https://cpe.mitre.org/specification/) this benchmark is // applicable to. string cpe_uri = 1; + // The name of the document that defines this benchmark, e.g. "CIS + // Container-Optimized OS". + string benchmark_document = 3; // The version of the benchmark. This is set to the version of the OS-specific // CIS document the benchmark is defined in. string version = 2; diff --git a/grafeas/v1/cvss.proto b/grafeas/v1/cvss.proto index bc2ed5209..ab7e2b8d0 100644 --- a/grafeas/v1/cvss.proto +++ b/grafeas/v1/cvss.proto @@ -20,6 +20,7 @@ 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"; +option java_outer_classname = "CVSSProto"; // Common Vulnerability Scoring System version 3. // For details, see https://www.first.org/cvss/specification-document @@ -86,10 +87,8 @@ message CVSSv3 { // Common Vulnerability Scoring System. // For details, see https://www.first.org/cvss/specification-document -// This is a message we will try to use for storing multiple versions of -// CVSS. The intention is that as new versions of CVSS scores get added, we -// will be able to modify this message rather than adding new protos for each -// new version of the score. +// This is a message we will try to use for storing various versions of CVSS +// rather than making a separate proto for storing a specific version. message CVSS { // The base score is a function of the base metric scores. float base_score = 1; diff --git a/grafeas/v1/dsse_attestation.proto b/grafeas/v1/dsse_attestation.proto index 0264ab991..34ba3df9f 100644 --- a/grafeas/v1/dsse_attestation.proto +++ b/grafeas/v1/dsse_attestation.proto @@ -49,4 +49,4 @@ message DSSEAttestationOccurrence { oneof decoded_payload { InTotoStatement statement = 2; } -} \ No newline at end of file +} diff --git a/grafeas/v1/intoto_statement.proto b/grafeas/v1/intoto_statement.proto index 9e4067cbb..1f798d0d6 100644 --- a/grafeas/v1/intoto_statement.proto +++ b/grafeas/v1/intoto_statement.proto @@ -18,6 +18,7 @@ package grafeas.v1; import "grafeas/v1/intoto_provenance.proto"; import "grafeas/v1/slsa_provenance.proto"; +import "grafeas/v1/slsa_provenance_zero_two.proto"; option go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas"; option java_multiple_files = true; @@ -38,6 +39,7 @@ message InTotoStatement { oneof predicate { InTotoProvenance provenance = 4; SlsaProvenance slsa_provenance = 5; + SlsaProvenanceZeroTwo slsa_provenance_zero_two = 6; } } message Subject { diff --git a/grafeas/v1/package.proto b/grafeas/v1/package.proto index 078c88c77..61b21dbf0 100644 --- a/grafeas/v1/package.proto +++ b/grafeas/v1/package.proto @@ -16,6 +16,9 @@ syntax = "proto3"; package grafeas.v1; +import "google/api/field_behavior.proto"; +import "grafeas/v1/common.proto"; + option go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas"; option java_multiple_files = true; option java_package = "io.grafeas.v1"; @@ -34,9 +37,9 @@ enum Architecture { // This represents a particular channel of distribution for a given package. // E.g., Debian's jessie-backports dpkg mirror. message Distribution { - // Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) + // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) // denoting the package manager version distributing a package. - string cpe_uri = 1; + string cpe_uri = 1 [(google.api.field_behavior) = REQUIRED]; // The CPU architecture for which packages in this distribution channel were // built. @@ -58,10 +61,11 @@ message Distribution { // An occurrence of a particular package installation found within a system's // filesystem. E.g., glibc was found in `/var/lib/dpkg/status`. message Location { - // Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) - // denoting the package manager version distributing a package. + // Deprecated. + // The CPE URI in [CPE format](https://cpe.mitre.org/specification/) string cpe_uri = 1; + // Deprecated. // The version installed at this location. Version version = 2; @@ -69,25 +73,81 @@ message Location { string path = 3; } -// This represents a particular package that is distributed over various -// channels. E.g., glibc (aka libc6) is distributed by many, at various -// versions. +// PackageNote represents a particular package version. message PackageNote { - // Required. Immutable. The name of the package. - string name = 1; + // The name of the package. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + // Deprecated. // The various channels by which a package is distributed. repeated Distribution distribution = 10; + + // The type of package; whether native or non native (e.g., ruby gems, + // node.js packages, etc.). + string package_type = 11; + + // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) + // denoting the package manager version distributing a package. + // The cpe_uri will be blank for language packages. + string cpe_uri = 12; + + // The CPU architecture for which packages in this distribution channel were + // built. Architecture will be blank for language packages. + Architecture architecture = 13; + + // The version of the package. + Version version = 14; + + // A freeform text denoting the maintainer of this package. + string maintainer = 15; + + // The homepage for this package. + string url = 16; + + // The description of this package. + string description = 17; + + // Licenses that have been declared by the authors of the package. + License license = 18; + + // Hash value, typically a file digest, that allows unique + // identification a specific package. + repeated Digest digest = 19; } // Details on how a particular software package was installed on a system. message PackageOccurrence { - // Output only. The name of the installed package. - string name = 1; + // The name of the installed package. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OUTPUT_ONLY + ]; - // Required. All of the places within the filesystem versions of this package + // All of the places within the filesystem versions of this package // have been found. repeated Location location = 2; + + // The type of package; whether native or non native (e.g., ruby gems, + // node.js packages, etc.). + string package_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) + // denoting the package manager version distributing a package. + // The cpe_uri will be blank for language packages. + string cpe_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The CPU architecture for which packages in this distribution channel were + // built. Architecture will be blank for language packages. + Architecture architecture = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Licenses that have been declared by the authors of the package. + License license = 6; + + // The version of the package. + Version version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Version contains structured information about the version of a package. diff --git a/grafeas/v1/slsa_provenance.proto b/grafeas/v1/slsa_provenance.proto index b585f0b7b..c038af064 100644 --- a/grafeas/v1/slsa_provenance.proto +++ b/grafeas/v1/slsa_provenance.proto @@ -23,6 +23,7 @@ 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"; +option java_outer_classname = "SlsaProvenanceProto"; message SlsaProvenance { // Steps taken to build the artifact. @@ -111,4 +112,4 @@ message SlsaProvenance { // incomplete unless metadata.completeness.materials is true. Unset or null is // equivalent to empty. repeated Material materials = 4; -} \ No newline at end of file +} diff --git a/grafeas/v1/slsa_provenance_zero_two.proto b/grafeas/v1/slsa_provenance_zero_two.proto new file mode 100644 index 000000000..11cdd1c0b --- /dev/null +++ b/grafeas/v1/slsa_provenance_zero_two.proto @@ -0,0 +1,82 @@ +// Copyright 2021 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 "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.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"; +option java_outer_classname = "SlsaProvenanceZeroTwoProto"; + +message SlsaProvenanceZeroTwo { + // See full explanation of fields at slsa.dev/provenance/v0.2. + + // Identifies the entity that executed the recipe, which is trusted to have + // correctly performed the operation and populated this provenance. + message SlsaBuilder { + string id = 1; + } + + // The collection of artifacts that influenced the build including sources, + // dependencies, build tools, base images, and so on. + message SlsaMaterial { + string uri = 1; + map digest = 2; + } + + // Identifies the event that kicked off the build. + message SlsaInvocation { + SlsaConfigSource config_source = 1; + google.protobuf.Struct parameters = 2; + google.protobuf.Struct environment = 3; + } + + // Describes where the config file that kicked off the build came from. + // This is effectively a pointer to the source where buildConfig came from. + message SlsaConfigSource { + string uri = 1; + map digest = 2; + string entry_point = 3; + } + + // Other properties of the build. + message SlsaMetadata { + string build_invocation_id = 1; + google.protobuf.Timestamp build_started_on = 2; + google.protobuf.Timestamp build_finished_on = 3; + SlsaCompleteness completeness = 4; + bool reproducible = 5; + } + + // Indicates that the builder claims certain fields in this message to be + // complete. + message SlsaCompleteness { + bool parameters = 1; + bool environment = 2; + bool materials = 3; + } + + SlsaBuilder builder = 1; + string build_type = 2; + SlsaInvocation invocation = 3; + google.protobuf.Struct build_config = 4; + SlsaMetadata metadata = 5; + repeated SlsaMaterial materials = 6; +} diff --git a/grafeas/v1/swagger/grafeas.swagger.json b/grafeas/v1/swagger/grafeas.swagger.json new file mode 100644 index 000000000..c592e29e9 --- /dev/null +++ b/grafeas/v1/swagger/grafeas.swagger.json @@ -0,0 +1,3199 @@ +{ + "swagger": "2.0", + "info": { + "title": "grafeas.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "Grafeas" + }, + { + "name": "Projects" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/projects": { + "get": { + "summary": "Lists projects.", + "operationId": "Projects_ListProjects", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/projectListProjectsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "filter", + "description": "The filter expression.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "pageSize", + "description": "Number of projects 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": [ + "Projects" + ] + }, + "post": { + "summary": "Creates a new project.", + "operationId": "Projects_CreateProject", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/projectProject" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "description": "The project to create.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/projectProject" + } + } + ], + "tags": [ + "Projects" + ] + } + }, + "/v1/{name_1}": { + "get": { + "summary": "Gets the specified note.", + "operationId": "Grafeas_GetNote", + "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 note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/notes/[^/]+" + } + ], + "tags": [ + "Grafeas" + ] + }, + "delete": { + "summary": "Deletes the specified note.", + "operationId": "Grafeas_DeleteNote", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name_1", + "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/[^/]+/notes/[^/]+" + } + ], + "tags": [ + "Grafeas" + ] + }, + "patch": { + "summary": "Updates the specified note.", + "operationId": "Grafeas_UpdateNote", + "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 note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/notes/[^/]+" + }, + { + "name": "body", + "description": "The updated note.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1Note" + } + }, + { + "name": "updateMask", + "description": "The fields to update.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{name_2}": { + "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_2", + "description": "The name of the project in the form of `projects/{PROJECT_ID}`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + } + ], + "tags": [ + "Projects" + ] + }, + "delete": { + "summary": "Deletes the specified project.", + "operationId": "Projects_DeleteProject", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name_2", + "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.", + "operationId": "Grafeas_GetOccurrence", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Occurrence" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name", + "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/[^/]+/occurrences/[^/]+" + } + ], + "tags": [ + "Grafeas" + ] + }, + "delete": { + "summary": "Deletes the specified occurrence. For example, use this method to delete an\noccurrence when the occurrence is no longer applicable for the given\nresource.", + "operationId": "Grafeas_DeleteOccurrence", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name", + "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/[^/]+/occurrences/[^/]+" + } + ], + "tags": [ + "Grafeas" + ] + }, + "patch": { + "summary": "Updates the specified occurrence.", + "operationId": "Grafeas_UpdateOccurrence", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Occurrence" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name", + "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/[^/]+/occurrences/[^/]+" + }, + { + "name": "body", + "description": "The updated occurrence.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1Occurrence" + } + }, + { + "name": "updateMask", + "description": "The fields to update.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{name}/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_GetOccurrenceNote", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Note" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name", + "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/[^/]+/occurrences/[^/]+" + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{name}/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_ListNoteOccurrences", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListNoteOccurrencesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name", + "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/[^/]+/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/{parent}/notes": { + "get": { + "summary": "Lists notes for the specified project.", + "operationId": "Grafeas_ListNotes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListNotesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "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/[^/]+" + }, + { + "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" + ] + }, + "post": { + "summary": "Creates a new note.", + "operationId": "Grafeas_CreateNote", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Note" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The name of the project in the form of `projects/[PROJECT_ID]`, under which\nthe note is to be created.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + }, + { + "name": "body", + "description": "The note to create.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1Note" + } + }, + { + "name": "noteId", + "description": "The ID to use for this note.", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{parent}/notes:batchCreate": { + "post": { + "summary": "Creates new notes in batch.", + "operationId": "Grafeas_BatchCreateNotes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1BatchCreateNotesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The name of the project in the form of `projects/[PROJECT_ID]`, under which\nthe notes are to be created.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "notes": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/v1Note" + }, + "description": "The notes to create. Max allowed length is 1000.", + "required": [ + "notes" + ] + } + }, + "description": "Request to create notes in batch.", + "required": [ + "notes" + ] + } + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{parent}/occurrences": { + "get": { + "summary": "Lists occurrences for the specified project.", + "operationId": "Grafeas_ListOccurrences", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListOccurrencesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "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/[^/]+" + }, + { + "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" + ] + }, + "post": { + "summary": "Creates a new occurrence.", + "operationId": "Grafeas_CreateOccurrence", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Occurrence" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The name of the project in the form of `projects/[PROJECT_ID]`, under which\nthe occurrence is to be created.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + }, + { + "name": "body", + "description": "The occurrence to create.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1Occurrence" + } + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{parent}/occurrences:batchCreate": { + "post": { + "summary": "Creates new occurrences in batch.", + "operationId": "Grafeas_BatchCreateOccurrences", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1BatchCreateOccurrencesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The name of the project in the form of `projects/[PROJECT_ID]`, under which\nthe occurrences are to be created.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "occurrences": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Occurrence" + }, + "description": "The occurrences to create. Max allowed length is 1000.", + "required": [ + "occurrences" + ] + } + }, + "description": "Request to create occurrences in batch.", + "required": [ + "occurrences" + ] + } + } + ], + "tags": [ + "Grafeas" + ] + } + } + }, + "definitions": { + "AliasContextKind": { + "type": "string", + "enum": [ + "KIND_UNSPECIFIED", + "FIXED", + "MOVABLE", + "OTHER" + ], + "default": "KIND_UNSPECIFIED", + "description": "The type of an alias.\n\n - KIND_UNSPECIFIED: Unknown.\n - FIXED: Git tag.\n - MOVABLE: Git branch.\n - OTHER: Used to specify non-standard aliases. For example, if a Git repo has a\nref named \"refs/foo/bar\"." + }, + "AttestationNoteHint": { + "type": "object", + "properties": { + "humanReadableName": { + "type": "string", + "description": "Required. The human readable name of this attestation authority, for\nexample \"qa\"." + } + }, + "description": "This submessage provides human-readable hints about the purpose of the\nauthority. Because the name of a note acts as its resource reference, it is\nimportant to disambiguate the canonical name of the Note (which might be a\nUUID for security purposes) from \"readable\" names more suitable for debug\noutput. Note that these hints should not be used to look up authorities in\nsecurity sensitive contexts, such as when looking up attestations to\nverify." + }, + "CVSSAuthentication": { + "type": "string", + "enum": [ + "AUTHENTICATION_UNSPECIFIED", + "AUTHENTICATION_MULTIPLE", + "AUTHENTICATION_SINGLE", + "AUTHENTICATION_NONE" + ], + "default": "AUTHENTICATION_UNSPECIFIED" + }, + "ComplianceNoteCisBenchmark": { + "type": "object", + "properties": { + "profileLevel": { + "type": "integer", + "format": "int32" + }, + "severity": { + "$ref": "#/definitions/v1Severity" + } + }, + "description": "A compliance check that is a CIS benchmark." + }, + "DSSEAttestationNoteDSSEHint": { + "type": "object", + "properties": { + "humanReadableName": { + "type": "string", + "description": "Required. The human readable name of this attestation authority, for example \"cloudbuild-prod\"." + } + }, + "description": "This submessage provides human-readable hints about the purpose of the\nauthority. Because the name of a note acts as its resource reference, it is\nimportant to disambiguate the canonical name of the Note (which might be a\nUUID for security purposes) from \"readable\" names more suitable for debug\noutput. Note that these hints should not be used to look up authorities in\nsecurity sensitive contexts, such as when looking up attestations to\nverify." + }, + "DeploymentOccurrencePlatform": { + "type": "string", + "enum": [ + "PLATFORM_UNSPECIFIED", + "GKE", + "FLEX", + "CUSTOM" + ], + "default": "PLATFORM_UNSPECIFIED", + "description": "Types of platforms.\n\n - PLATFORM_UNSPECIFIED: Unknown.\n - GKE: Google Container Engine.\n - FLEX: Google App Engine: Flexible Environment.\n - CUSTOM: Custom user-defined platform." + }, + "DiscoveryOccurrenceAnalysisStatus": { + "type": "string", + "enum": [ + "ANALYSIS_STATUS_UNSPECIFIED", + "PENDING", + "SCANNING", + "FINISHED_SUCCESS", + "FINISHED_FAILED", + "FINISHED_UNSUPPORTED" + ], + "default": "ANALYSIS_STATUS_UNSPECIFIED", + "description": "Analysis status for a resource. Currently for initial analysis only (not\nupdated in continuous analysis).\n\n - ANALYSIS_STATUS_UNSPECIFIED: Unknown.\n - PENDING: Resource is known but no action has been taken yet.\n - SCANNING: Resource is being analyzed.\n - FINISHED_SUCCESS: Analysis has finished successfully.\n - FINISHED_FAILED: Analysis has finished unsuccessfully, the analysis itself is in a bad\nstate.\n - FINISHED_UNSUPPORTED: The resource is known not to be supported" + }, + "DiscoveryOccurrenceContinuousAnalysis": { + "type": "string", + "enum": [ + "CONTINUOUS_ANALYSIS_UNSPECIFIED", + "ACTIVE", + "INACTIVE" + ], + "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." + }, + "SlsaProvenanceMaterial": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "digest": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "SlsaProvenanceSlsaRecipe": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials." + }, + "definedInMaterial": { + "type": "string", + "format": "int64", + "description": "Index in materials containing the recipe steps that are not implied by recipe.type.\nFor example, if the recipe type were \"make\", then this would point to the source containing the Makefile, not the make program itself.\nSet to -1 if the recipe doesn't come from a material, as zero is default unset value for int64." + }, + "entryPoint": { + "type": "string", + "description": "String identifying the entry point into the build.\nThis is often a path to a configuration file and/or a target label within that file.\nThe syntax and meaning are defined by recipe.type.\nFor example, if the recipe type were \"make\", then this would reference the directory in which to run make as well as which target to use." + }, + "arguments": { + "$ref": "#/definitions/protobufAny", + "description": "Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint.\nFor example, if the recipe type were \"make\", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint.\nDepending on the recipe Type, the structure may be different." + }, + "environment": { + "$ref": "#/definitions/protobufAny", + "description": "Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy.\nDepending on the recipe Type, the structure may be different." + } + }, + "description": "Steps taken to build the artifact.\nFor a TaskRun, typically each container corresponds to one step in the recipe." + }, + "SlsaProvenanceZeroTwoSlsaConfigSource": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "digest": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "entryPoint": { + "type": "string" + } + }, + "description": "Describes where the config file that kicked off the build came from.\nThis is effectively a pointer to the source where buildConfig came from." + }, + "SlsaProvenanceZeroTwoSlsaInvocation": { + "type": "object", + "properties": { + "configSource": { + "$ref": "#/definitions/SlsaProvenanceZeroTwoSlsaConfigSource" + }, + "parameters": { + "type": "object" + }, + "environment": { + "type": "object" + } + }, + "description": "Identifies the event that kicked off the build." + }, + "SlsaProvenanceZeroTwoSlsaMaterial": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "digest": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "The collection of artifacts that influenced the build including sources,\ndependencies, build tools, base images, and so on." + }, + "VersionVersionKind": { + "type": "string", + "enum": [ + "VERSION_KIND_UNSPECIFIED", + "NORMAL", + "MINIMUM", + "MAXIMUM" + ], + "default": "VERSION_KIND_UNSPECIFIED", + "description": "Whether this is an ordinary package version or a sentinel MIN/MAX version.\n\n - VERSION_KIND_UNSPECIFIED: Unknown.\n - NORMAL: A standard package version.\n - MINIMUM: A special version representing negative infinity.\n - MAXIMUM: A special version representing positive infinity." + }, + "VulnerabilityNoteDetail": { + "type": "object", + "properties": { + "severityName": { + "type": "string", + "description": "The distro assigned severity of this vulnerability." + }, + "description": { + "type": "string", + "description": "A vendor-specific description of this vulnerability." + }, + "packageType": { + "type": "string", + "description": "The type of package; whether native or non native (e.g., ruby gems,\nnode.js packages, etc.)." + }, + "affectedCpeUri": { + "type": "string", + "description": "Required. The [CPE URI](https://cpe.mitre.org/specification/) this\nvulnerability affects." + }, + "affectedPackage": { + "type": "string", + "description": "Required. The package this vulnerability affects." + }, + "affectedVersionStart": { + "$ref": "#/definitions/v1Version", + "description": "The version number at the start of an interval in which this vulnerability\nexists. A vulnerability can affect a package between version numbers\nthat are disjoint sets of intervals (example: [1.0.0-1.1.0], [2.4.6-2.4.8]\nand [4.5.6-4.6.8]) each of which will be represented in its own Detail.\nIf a specific affected version is provided by a vulnerability database,\naffected_version_start and affected_version_end will be the same in that\nDetail." + }, + "affectedVersionEnd": { + "$ref": "#/definitions/v1Version", + "description": "The version number at the end of an interval in which this vulnerability\nexists. A vulnerability can affect a package between version numbers\nthat are disjoint sets of intervals (example: [1.0.0-1.1.0], [2.4.6-2.4.8]\nand [4.5.6-4.6.8]) each of which will be represented in its own Detail.\nIf a specific affected version is provided by a vulnerability database,\naffected_version_start and affected_version_end will be the same in that\nDetail." + }, + "fixedCpeUri": { + "type": "string", + "description": "The distro recommended [CPE URI](https://cpe.mitre.org/specification/)\nto update to that contains a fix for this vulnerability. It is possible\nfor this to be different from the affected_cpe_uri." + }, + "fixedPackage": { + "type": "string", + "description": "The distro recommended package to update to that contains a fix for this\nvulnerability. It is possible for this to be different from the affected_package." + }, + "fixedVersion": { + "$ref": "#/definitions/v1Version", + "description": "The distro recommended version to update to that contains a\nfix for this vulnerability. Setting this to VersionKind.MAXIMUM means no\nsuch version is yet available." + }, + "isObsolete": { + "type": "boolean", + "description": "Whether this detail is obsolete. Occurrences are expected not to point to\nobsolete details." + }, + "sourceUpdateTime": { + "type": "string", + "format": "date-time", + "description": "The time this information was last changed at the source. This is an\nupstream timestamp from the underlying information source - e.g. Ubuntu\nsecurity tracker." + }, + "source": { + "type": "string", + "description": "The source from which the information in this Detail was obtained." + }, + "vendor": { + "type": "string", + "description": "The name of the vendor of the product." + } + }, + "description": "A detail for a distro and package affected by this vulnerability and its\nassociated fix (if one is available)." + }, + "VulnerabilityNoteWindowsDetail": { + "type": "object", + "properties": { + "cpeUri": { + "type": "string", + "description": "Required. The [CPE URI](https://cpe.mitre.org/specification/) this\nvulnerability affects." + }, + "name": { + "type": "string", + "description": "Required. The name of this vulnerability." + }, + "description": { + "type": "string", + "description": "The description of this vulnerability." + }, + "fixingKbs": { + "type": "array", + "items": { + "$ref": "#/definitions/WindowsDetailKnowledgeBase" + }, + "description": "Required. The names of the KBs which have hotfixes to mitigate this\nvulnerability. Note that there may be multiple hotfixes (and thus\nmultiple KBs) that mitigate a given vulnerability. Currently any listed\nKBs presence is considered a fix." + } + } + }, + "VulnerabilityOccurrencePackageIssue": { + "type": "object", + "properties": { + "affectedCpeUri": { + "type": "string", + "description": "Required. The [CPE URI](https://cpe.mitre.org/specification/) this\nvulnerability was found in." + }, + "affectedPackage": { + "type": "string", + "description": "Required. The package this vulnerability was found in." + }, + "affectedVersion": { + "$ref": "#/definitions/v1Version", + "description": "Required. The version of the package that is installed on the resource\naffected by this vulnerability." + }, + "fixedCpeUri": { + "type": "string", + "description": "The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was\nfixed in. It is possible for this to be different from\nthe affected_cpe_uri." + }, + "fixedPackage": { + "type": "string", + "description": "The package this vulnerability was fixed in. It is possible for this to be\ndifferent from the affected_package." + }, + "fixedVersion": { + "$ref": "#/definitions/v1Version", + "description": "Required. The version of the package this vulnerability was fixed in.\nSetting this to VersionKind.MAXIMUM means no fix is yet available." + }, + "fixAvailable": { + "type": "boolean", + "description": "Output only. Whether a fix is available for this package.", + "readOnly": true + }, + "packageType": { + "type": "string", + "description": "The type of package (e.g. OS, MAVEN, GO)." + }, + "effectiveSeverity": { + "$ref": "#/definitions/v1Severity", + "description": "The distro or language system assigned severity for this vulnerability\nwhen that is available and note provider assigned severity when it is not\navailable." + }, + "fileLocation": { + "type": "array", + "items": { + "$ref": "#/definitions/v1FileLocation" + }, + "description": "The location at which this package was found." + } + }, + "description": "A detail for a distro and package this vulnerability occurrence was found in\nand its associated fix (if one is available)." + }, + "WindowsDetailKnowledgeBase": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The KB name (generally of the form KB[0-9]+ (e.g., KB123456))." + }, + "url": { + "type": "string", + "description": "A link to the KB in the [Windows update catalog]\n(https://www.catalog.update.microsoft.com/)." + } + } + }, + "WindowsUpdateCategory": { + "type": "object", + "properties": { + "categoryId": { + "type": "string", + "description": "The identifier of the category." + }, + "name": { + "type": "string", + "description": "The localized name of the category." + } + }, + "description": "The category to which the update belongs." + }, + "WindowsUpdateIdentity": { + "type": "object", + "properties": { + "updateId": { + "type": "string", + "description": "The revision independent identifier of the update." + }, + "revision": { + "type": "integer", + "format": "int32", + "description": "The revision number of the update." + } + }, + "description": "The unique identifier of the update." + }, + "grafeasv1Location": { + "type": "object", + "properties": { + "cpeUri": { + "type": "string", + "title": "Deprecated.\nThe CPE URI in [CPE format](https://cpe.mitre.org/specification/)" + }, + "version": { + "$ref": "#/definitions/v1Version", + "description": "Deprecated.\nThe version installed at this location." + }, + "path": { + "type": "string", + "description": "The path from which we gathered that this package/version is installed." + } + }, + "description": "An occurrence of a particular package installation found within a system's\nfilesystem. E.g., glibc was found in `/var/lib/dpkg/status`." + }, + "projectListProjectsResponse": { + "type": "object", + "properties": { + "projects": { + "type": "array", + "items": { + "$ref": "#/definitions/projectProject" + }, + "description": "The projects requested." + }, + "nextPageToken": { + "type": "string", + "description": "The next pagination token in the list response. It should be used as\n`page_token` for the following request. An empty value means no more\nresults." + } + }, + "description": "Response for listing projects." + }, + "projectProject": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the project in the form of `projects/{PROJECT_ID}`." + } + }, + "description": "Describes a Grafeas project." + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := ptypes.MarshalAny(foo)\n ...\n foo := \u0026pb.Foo{}\n if err := ptypes.UnmarshalAny(any, foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "protobufNullValue": { + "type": "string", + "enum": [ + "NULL_VALUE" + ], + "default": "NULL_VALUE", + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]." + }, + "message": { + "type": "string", + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\n[google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + }, + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use." + } + }, + "description": "- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\n[google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "title": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:" + }, + "v1AliasContext": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/definitions/AliasContextKind", + "description": "The alias kind." + }, + "name": { + "type": "string", + "description": "The alias name." + } + }, + "description": "An alias to a repo revision." + }, + "v1Architecture": { + "type": "string", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "default": "ARCHITECTURE_UNSPECIFIED", + "description": "Instruction set architectures supported by various package managers.\n\n - ARCHITECTURE_UNSPECIFIED: Unknown architecture.\n - X86: X86 architecture.\n - X64: X64 architecture." + }, + "v1Artifact": { + "type": "object", + "properties": { + "checksum": { + "type": "string", + "description": "Hash or checksum value of a binary, or Docker Registry 2.0 digest of a\ncontainer." + }, + "id": { + "type": "string", + "description": "Artifact ID, if any; for container images, this will be a URL by digest\nlike `gcr.io/projectID/imagename@sha256:123456`." + }, + "names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Related artifact names. This may be the path to a binary or jar file, or in\nthe case of a container build, the name used to push the container image to\nGoogle Container Registry, as presented to `docker push`. Note that a\nsingle Artifact ID can have multiple names, for example if two tags are\napplied to one image." + } + }, + "description": "Artifact describes a build product." + }, + "v1AttestationNote": { + "type": "object", + "properties": { + "hint": { + "$ref": "#/definitions/AttestationNoteHint", + "description": "Hint hints at the purpose of the attestation authority." + } + }, + "description": "Note kind that represents a logical attestation \"role\" or \"authority\". For\nexample, an organization might have one `Authority` for \"QA\" and one for\n\"build\". This note is intended to act strictly as a grouping mechanism for\nthe attached occurrences (Attestations). This grouping mechanism also\nprovides a security boundary, since IAM ACLs gate the ability for a principle\nto attach an occurrence to a given note. It also provides a single point of\nlookup to find all attached attestation occurrences, even if they don't all\nlive in the same project." + }, + "v1AttestationOccurrence": { + "type": "object", + "properties": { + "serializedPayload": { + "type": "string", + "format": "byte", + "description": "Required. The serialized payload that is verified by one or more `signatures`." + }, + "signatures": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Signature" + }, + "description": "One or more signatures over `serialized_payload`. Verifier implementations\nshould consider this attestation message verified if at least one\n`signature` verifies `serialized_payload`. See `Signature` in common.proto\nfor more details on signature structure and verification." + }, + "jwts": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Jwt" + }, + "description": "One or more JWTs encoding a self-contained attestation.\nEach JWT encodes the payload that it verifies within the JWT itself. \nVerifier implementation SHOULD ignore the `serialized_payload` field \nwhen verifying these JWTs.\nIf only JWTs are present on this AttestationOccurrence, then the\n`serialized_payload` SHOULD be left empty.\nEach JWT SHOULD encode a claim specific to the `resource_uri` of this\nOccurrence, but this is not validated by Grafeas metadata API\nimplementations. The JWT itself is opaque to Grafeas." + } + }, + "description": "Occurrence that represents a single \"attestation\". The authenticity of an\nattestation can be verified using the attached signature. If the verifier\ntrusts the public key of the signer, then verifying the signature is\nsufficient to establish trust. In this circumstance, the authority to which\nthis attestation is attached is primarily useful for lookup (how to find\nthis attestation if you already know the authority and artifact to be\nverified) and intent (for which authority this attestation was intended to\nsign." + }, + "v1BatchCreateNotesResponse": { + "type": "object", + "properties": { + "notes": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Note" + }, + "description": "The notes that were created." + } + }, + "description": "Response for creating notes in batch." + }, + "v1BatchCreateOccurrencesResponse": { + "type": "object", + "properties": { + "occurrences": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Occurrence" + }, + "description": "The occurrences that were created." + } + }, + "description": "Response for creating occurrences in batch." + }, + "v1BuildNote": { + "type": "object", + "properties": { + "builderVersion": { + "type": "string", + "description": "Required. Immutable. Version of the builder which produced this build." + } + }, + "description": "Note holding the version of the provider's builder and the signature of the\nprovenance message in the build details occurrence." + }, + "v1BuildOccurrence": { + "type": "object", + "properties": { + "provenance": { + "$ref": "#/definitions/v1BuildProvenance", + "description": "The actual provenance for the build." + }, + "provenanceBytes": { + "type": "string", + "description": "Serialized JSON representation of the provenance, used in generating the\nbuild signature in the corresponding build note. After verifying the\nsignature, `provenance_bytes` can be unmarshalled and compared to the\nprovenance to confirm that it is unchanged. A base64-encoded string\nrepresentation of the provenance bytes is used for the signature in order\nto interoperate with openssl which expects this format for signature\nverification.\n\nThe serialized form is captured both to avoid ambiguity in how the\nprovenance is marshalled to json as well to prevent incompatibilities with\nfuture changes." + }, + "intotoProvenance": { + "$ref": "#/definitions/v1InTotoProvenance", + "description": "Deprecated. See InTotoStatement for the replacement.\nIn-toto Provenance representation as defined in spec." + }, + "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." + } + }, + "description": "Details of a build occurrence." + }, + "v1BuildProvenance": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Required. Unique identifier of the build." + }, + "projectId": { + "type": "string", + "description": "ID of the project." + }, + "commands": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Command" + }, + "description": "Commands requested by the build." + }, + "builtArtifacts": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Artifact" + }, + "description": "Output of the build." + }, + "createTime": { + "type": "string", + "format": "date-time", + "description": "Time at which the build was created." + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "Time at which execution of the build was started." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "Time at which execution of the build was finished." + }, + "creator": { + "type": "string", + "description": "E-mail address of the user who initiated this build. Note that this was the\nuser's e-mail address at the time the build was initiated; this address may\nnot represent the same end-user for all time." + }, + "logsUri": { + "type": "string", + "description": "URI where any logs for this provenance were written." + }, + "sourceProvenance": { + "$ref": "#/definitions/v1Source", + "description": "Details of the Source input to the build." + }, + "triggerId": { + "type": "string", + "description": "Trigger identifier if the build was triggered automatically; empty if not." + }, + "buildOptions": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Special options applied to this build. This is a catch-all field where\nbuild providers can enter any desired additional details." + }, + "builderVersion": { + "type": "string", + "description": "Version string of the builder at the time this build was executed." + } + }, + "description": "Provenance of a build. Contains all information needed to verify the full\ndetails about the build from source to completion." + }, + "v1BuilderConfig": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "v1CVSS": { + "type": "object", + "properties": { + "baseScore": { + "type": "number", + "format": "float", + "description": "The base score is a function of the base metric scores." + }, + "exploitabilityScore": { + "type": "number", + "format": "float" + }, + "impactScore": { + "type": "number", + "format": "float" + }, + "attackVector": { + "$ref": "#/definitions/v1CVSSAttackVector", + "description": "Base Metrics\nRepresents the intrinsic characteristics of a vulnerability that are\nconstant over time and across user environments." + }, + "attackComplexity": { + "$ref": "#/definitions/v1CVSSAttackComplexity" + }, + "authentication": { + "$ref": "#/definitions/CVSSAuthentication" + }, + "privilegesRequired": { + "$ref": "#/definitions/v1CVSSPrivilegesRequired" + }, + "userInteraction": { + "$ref": "#/definitions/v1CVSSUserInteraction" + }, + "scope": { + "$ref": "#/definitions/v1CVSSScope" + }, + "confidentialityImpact": { + "$ref": "#/definitions/v1CVSSImpact" + }, + "integrityImpact": { + "$ref": "#/definitions/v1CVSSImpact" + }, + "availabilityImpact": { + "$ref": "#/definitions/v1CVSSImpact" + } + }, + "description": "Common Vulnerability Scoring System.\nFor details, see https://www.first.org/cvss/specification-document\nThis is a message we will try to use for storing various versions of CVSS\nrather than making a separate proto for storing a specific version." + }, + "v1CVSSAttackComplexity": { + "type": "string", + "enum": [ + "ATTACK_COMPLEXITY_UNSPECIFIED", + "ATTACK_COMPLEXITY_LOW", + "ATTACK_COMPLEXITY_HIGH" + ], + "default": "ATTACK_COMPLEXITY_UNSPECIFIED" + }, + "v1CVSSAttackVector": { + "type": "string", + "enum": [ + "ATTACK_VECTOR_UNSPECIFIED", + "ATTACK_VECTOR_NETWORK", + "ATTACK_VECTOR_ADJACENT", + "ATTACK_VECTOR_LOCAL", + "ATTACK_VECTOR_PHYSICAL" + ], + "default": "ATTACK_VECTOR_UNSPECIFIED" + }, + "v1CVSSImpact": { + "type": "string", + "enum": [ + "IMPACT_UNSPECIFIED", + "IMPACT_HIGH", + "IMPACT_LOW", + "IMPACT_NONE" + ], + "default": "IMPACT_UNSPECIFIED" + }, + "v1CVSSPrivilegesRequired": { + "type": "string", + "enum": [ + "PRIVILEGES_REQUIRED_UNSPECIFIED", + "PRIVILEGES_REQUIRED_NONE", + "PRIVILEGES_REQUIRED_LOW", + "PRIVILEGES_REQUIRED_HIGH" + ], + "default": "PRIVILEGES_REQUIRED_UNSPECIFIED" + }, + "v1CVSSScope": { + "type": "string", + "enum": [ + "SCOPE_UNSPECIFIED", + "SCOPE_UNCHANGED", + "SCOPE_CHANGED" + ], + "default": "SCOPE_UNSPECIFIED" + }, + "v1CVSSUserInteraction": { + "type": "string", + "enum": [ + "USER_INTERACTION_UNSPECIFIED", + "USER_INTERACTION_NONE", + "USER_INTERACTION_REQUIRED" + ], + "default": "USER_INTERACTION_UNSPECIFIED" + }, + "v1CVSSv3": { + "type": "object", + "properties": { + "baseScore": { + "type": "number", + "format": "float", + "description": "The base score is a function of the base metric scores." + }, + "exploitabilityScore": { + "type": "number", + "format": "float" + }, + "impactScore": { + "type": "number", + "format": "float" + }, + "attackVector": { + "$ref": "#/definitions/v1CVSSv3AttackVector", + "description": "Base Metrics\nRepresents the intrinsic characteristics of a vulnerability that are\nconstant over time and across user environments." + }, + "attackComplexity": { + "$ref": "#/definitions/v1CVSSv3AttackComplexity" + }, + "privilegesRequired": { + "$ref": "#/definitions/v1CVSSv3PrivilegesRequired" + }, + "userInteraction": { + "$ref": "#/definitions/v1CVSSv3UserInteraction" + }, + "scope": { + "$ref": "#/definitions/v1CVSSv3Scope" + }, + "confidentialityImpact": { + "$ref": "#/definitions/v1CVSSv3Impact" + }, + "integrityImpact": { + "$ref": "#/definitions/v1CVSSv3Impact" + }, + "availabilityImpact": { + "$ref": "#/definitions/v1CVSSv3Impact" + } + }, + "title": "Common Vulnerability Scoring System version 3.\nFor details, see https://www.first.org/cvss/specification-document" + }, + "v1CVSSv3AttackComplexity": { + "type": "string", + "enum": [ + "ATTACK_COMPLEXITY_UNSPECIFIED", + "ATTACK_COMPLEXITY_LOW", + "ATTACK_COMPLEXITY_HIGH" + ], + "default": "ATTACK_COMPLEXITY_UNSPECIFIED" + }, + "v1CVSSv3AttackVector": { + "type": "string", + "enum": [ + "ATTACK_VECTOR_UNSPECIFIED", + "ATTACK_VECTOR_NETWORK", + "ATTACK_VECTOR_ADJACENT", + "ATTACK_VECTOR_LOCAL", + "ATTACK_VECTOR_PHYSICAL" + ], + "default": "ATTACK_VECTOR_UNSPECIFIED" + }, + "v1CVSSv3Impact": { + "type": "string", + "enum": [ + "IMPACT_UNSPECIFIED", + "IMPACT_HIGH", + "IMPACT_LOW", + "IMPACT_NONE" + ], + "default": "IMPACT_UNSPECIFIED" + }, + "v1CVSSv3PrivilegesRequired": { + "type": "string", + "enum": [ + "PRIVILEGES_REQUIRED_UNSPECIFIED", + "PRIVILEGES_REQUIRED_NONE", + "PRIVILEGES_REQUIRED_LOW", + "PRIVILEGES_REQUIRED_HIGH" + ], + "default": "PRIVILEGES_REQUIRED_UNSPECIFIED" + }, + "v1CVSSv3Scope": { + "type": "string", + "enum": [ + "SCOPE_UNSPECIFIED", + "SCOPE_UNCHANGED", + "SCOPE_CHANGED" + ], + "default": "SCOPE_UNSPECIFIED" + }, + "v1CVSSv3UserInteraction": { + "type": "string", + "enum": [ + "USER_INTERACTION_UNSPECIFIED", + "USER_INTERACTION_NONE", + "USER_INTERACTION_REQUIRED" + ], + "default": "USER_INTERACTION_UNSPECIFIED" + }, + "v1CloudRepoSourceContext": { + "type": "object", + "properties": { + "repoId": { + "$ref": "#/definitions/v1RepoId", + "description": "The ID of the repo." + }, + "revisionId": { + "type": "string", + "description": "A revision ID." + }, + "aliasContext": { + "$ref": "#/definitions/v1AliasContext", + "description": "An alias, which may be a branch or tag." + } + }, + "description": "A CloudRepoSourceContext denotes a particular revision in a Google Cloud\nSource Repo." + }, + "v1Command": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Required. Name of the command, as presented on the command line, or if the\ncommand is packaged as a Docker container, as presented to `docker pull`." + }, + "env": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Environment variables set before running this command." + }, + "args": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Command-line arguments used when executing this command." + }, + "dir": { + "type": "string", + "description": "Working directory (relative to project source root) used when running this\ncommand." + }, + "id": { + "type": "string", + "description": "Optional unique identifier for this command, used in wait_for to reference\nthis command as a dependency." + }, + "waitFor": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The ID(s) of the command(s) that this command depends on." + } + }, + "description": "Command describes a step performed as part of the build pipeline." + }, + "v1Completeness": { + "type": "object", + "properties": { + "arguments": { + "type": "boolean", + "description": "If true, the builder claims that recipe.arguments is complete, meaning that all external inputs are properly captured in the recipe." + }, + "environment": { + "type": "boolean", + "description": "If true, the builder claims that recipe.environment is claimed to be complete." + }, + "materials": { + "type": "boolean", + "description": "If true, the builder claims that materials are complete, usually through some controls to prevent network access. Sometimes called \"hermetic\"." + } + }, + "description": "Indicates that the builder claims certain fields in this message to be complete." + }, + "v1ComplianceNote": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title that identifies this compliance check." + }, + "description": { + "type": "string", + "description": "A description about this compliance check." + }, + "version": { + "type": "array", + "items": { + "$ref": "#/definitions/v1ComplianceVersion" + }, + "description": "The OS and config versions the benchmark applies to." + }, + "rationale": { + "type": "string", + "description": "A rationale for the existence of this compliance check." + }, + "remediation": { + "type": "string", + "description": "A description of remediation steps if the compliance check fails." + }, + "cisBenchmark": { + "$ref": "#/definitions/ComplianceNoteCisBenchmark" + }, + "scanInstructions": { + "type": "string", + "format": "byte", + "description": "Serialized scan instructions with a predefined format." + } + } + }, + "v1ComplianceOccurrence": { + "type": "object", + "properties": { + "nonCompliantFiles": { + "type": "array", + "items": { + "$ref": "#/definitions/v1NonCompliantFile" + } + }, + "nonComplianceReason": { + "type": "string" + } + }, + "description": "An indication that the compliance checks in the associated ComplianceNote\nwere not satisfied for particular resources or a specified reason." + }, + "v1ComplianceVersion": { + "type": "object", + "properties": { + "cpeUri": { + "type": "string", + "description": "The CPE URI (https://cpe.mitre.org/specification/) this benchmark is\napplicable to." + }, + "benchmarkDocument": { + "type": "string", + "description": "The name of the document that defines this benchmark, e.g. \"CIS Container-Optimized OS\"." + }, + "version": { + "type": "string", + "description": "The version of the benchmark. This is set to the version of the OS-specific\nCIS document the benchmark is defined in." + } + }, + "description": "Describes the CIS benchmark version that is applicable to a given OS and \nos version." + }, + "v1DSSEAttestationNote": { + "type": "object", + "properties": { + "hint": { + "$ref": "#/definitions/DSSEAttestationNoteDSSEHint", + "description": "DSSEHint hints at the purpose of the attestation authority." + } + } + }, + "v1DSSEAttestationOccurrence": { + "type": "object", + "properties": { + "envelope": { + "$ref": "#/definitions/v1Envelope", + "description": "If doing something security critical, make sure to verify the signatures in this metadata." + }, + "statement": { + "$ref": "#/definitions/v1InTotoStatement" + } + }, + "description": "Deprecated. Prefer to use a regular Occurrence, and populate the\nEnvelope at the top level of the Occurrence." + }, + "v1DeploymentNote": { + "type": "object", + "properties": { + "resourceUri": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required. Resource URI for the artifact being deployed." + } + }, + "description": "An artifact that can be deployed in some runtime." + }, + "v1DeploymentOccurrence": { + "type": "object", + "properties": { + "userEmail": { + "type": "string", + "description": "Identity of the user that triggered this deployment." + }, + "deployTime": { + "type": "string", + "format": "date-time", + "description": "Required. Beginning of the lifetime of this deployment." + }, + "undeployTime": { + "type": "string", + "format": "date-time", + "description": "End of the lifetime of this deployment." + }, + "config": { + "type": "string", + "description": "Configuration used to create this deployment." + }, + "address": { + "type": "string", + "description": "Address of the runtime element hosting this deployment." + }, + "resourceUri": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Output only. Resource URI for the artifact being deployed taken from\nthe deployable field with the same name.", + "readOnly": true + }, + "platform": { + "$ref": "#/definitions/DeploymentOccurrencePlatform", + "description": "Platform hosting this deployment." + } + }, + "description": "The period during which some deployable was active in a runtime." + }, + "v1Digest": { + "type": "object", + "properties": { + "algo": { + "type": "string", + "description": "`SHA1`, `SHA512` etc." + }, + "digestBytes": { + "type": "string", + "format": "byte", + "description": "Value of the digest." + } + }, + "description": "Digest information." + }, + "v1DiscoveryNote": { + "type": "object", + "properties": { + "analysisKind": { + "$ref": "#/definitions/v1NoteKind", + "description": "Required. Immutable. The kind of analysis that is handled by this\ndiscovery." + } + }, + "description": "A note that indicates a type of analysis a provider would perform. This note\nexists in a provider's project. A `Discovery` occurrence is created in a\nconsumer's project at the start of analysis." + }, + "v1DiscoveryOccurrence": { + "type": "object", + "properties": { + "continuousAnalysis": { + "$ref": "#/definitions/DiscoveryOccurrenceContinuousAnalysis", + "description": "Whether the resource is continuously analyzed." + }, + "analysisStatus": { + "$ref": "#/definitions/DiscoveryOccurrenceAnalysisStatus", + "description": "The status of discovery for the resource." + }, + "analysisStatusError": { + "$ref": "#/definitions/rpcStatus", + "description": "When an error is encountered this will contain a LocalizedMessage under\ndetails to show to the user. The LocalizedMessage is output only and\npopulated by the API." + }, + "cpe": { + "type": "string", + "description": "The CPE of the resource being scanned." + }, + "lastScanTime": { + "type": "string", + "format": "date-time", + "description": "The last time this resource was scanned." + }, + "archiveTime": { + "type": "string", + "format": "date-time", + "description": "The time occurrences related to this discovery occurrence were archived.", + "readOnly": true + } + }, + "description": "Provides information about the analysis status of a discovered resource." + }, + "v1Distribution": { + "type": "object", + "properties": { + "cpeUri": { + "type": "string", + "description": "The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)\ndenoting the package manager version distributing a package.", + "required": [ + "cpe_uri" + ] + }, + "architecture": { + "$ref": "#/definitions/v1Architecture", + "description": "The CPU architecture for which packages in this distribution channel were\nbuilt." + }, + "latestVersion": { + "$ref": "#/definitions/v1Version", + "description": "The latest available version of this package in this distribution channel." + }, + "maintainer": { + "type": "string", + "description": "A freeform string denoting the maintainer of this package." + }, + "url": { + "type": "string", + "description": "The distribution channel-specific homepage for this package." + }, + "description": { + "type": "string", + "description": "The distribution channel-specific description of this package." + } + }, + "description": "This represents a particular channel of distribution for a given package.\nE.g., Debian's jessie-backports dpkg mirror.", + "required": [ + "cpeUri" + ] + }, + "v1Envelope": { + "type": "object", + "properties": { + "payload": { + "type": "string", + "format": "byte" + }, + "payloadType": { + "type": "string" + }, + "signatures": { + "type": "array", + "items": { + "$ref": "#/definitions/v1EnvelopeSignature" + } + } + }, + "description": "MUST match https://github.com/secure-systems-lab/dsse/blob/master/envelope.proto.\nAn authenticated message of arbitrary type." + }, + "v1EnvelopeSignature": { + "type": "object", + "properties": { + "sig": { + "type": "string", + "format": "byte" + }, + "keyid": { + "type": "string" + } + } + }, + "v1FileHashes": { + "type": "object", + "properties": { + "fileHash": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Hash" + }, + "description": "Required. Collection of file hashes." + } + }, + "description": "Container message for hashes of byte content of files, used in source\nmessages to verify integrity of source input to the build." + }, + "v1FileLocation": { + "type": "object", + "properties": { + "filePath": { + "type": "string", + "description": "For jars that are contained inside .war files, this filepath\ncan indicate the path to war file combined with the path to jar file." + } + }, + "description": "Indicates the location at which a package was found." + }, + "v1Fingerprint": { + "type": "object", + "properties": { + "v1Name": { + "type": "string", + "description": "Required. The layer ID of the final layer in the Docker image's v1\nrepresentation." + }, + "v2Blob": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required. The ordered list of v2 blobs that represent a given image." + }, + "v2Name": { + "type": "string", + "description": "Output only. The name of the image's v2 blobs computed via:\n [bottom] := v2_blob[bottom]\n [N] := sha256(v2_blob[N] + \" \" + v2_name[N+1])\nOnly the name of the final blob is kept.", + "readOnly": true + } + }, + "description": "A set of properties that uniquely identify a given Docker image." + }, + "v1GerritSourceContext": { + "type": "object", + "properties": { + "hostUri": { + "type": "string", + "description": "The URI of a running Gerrit instance." + }, + "gerritProject": { + "type": "string", + "description": "The full project name within the host. Projects may be nested, so\n\"project/subproject\" is a valid project name. The \"repo name\" is the\nhostURI/project." + }, + "revisionId": { + "type": "string", + "description": "A revision (commit) ID." + }, + "aliasContext": { + "$ref": "#/definitions/v1AliasContext", + "description": "An alias, which may be a branch or tag." + } + }, + "description": "A SourceContext referring to a Gerrit project." + }, + "v1GitSourceContext": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "Git repository URL." + }, + "revisionId": { + "type": "string", + "description": "Git commit hash." + } + }, + "description": "A GitSourceContext denotes a particular revision in a third party Git\nrepository (e.g., GitHub)." + }, + "v1Hash": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Required. The type of hash that was performed, e.g. \"SHA-256\"." + }, + "value": { + "type": "string", + "format": "byte", + "description": "Required. The hash value." + } + }, + "description": "Container message for hash values." + }, + "v1ImageNote": { + "type": "object", + "properties": { + "resourceUrl": { + "type": "string", + "description": "Required. Immutable. The resource_url for the resource representing the\nbasis of associated occurrence images." + }, + "fingerprint": { + "$ref": "#/definitions/v1Fingerprint", + "description": "Required. Immutable. The fingerprint of the base image." + } + }, + "description": "Basis describes the base image portion (Note) of the DockerImage\nrelationship. Linked occurrences are derived from this or an equivalent image\nvia:\n FROM \u003cBasis.resource_url\u003e\nOr an equivalent reference, e.g., a tag of the resource_url." + }, + "v1ImageOccurrence": { + "type": "object", + "properties": { + "fingerprint": { + "$ref": "#/definitions/v1Fingerprint", + "description": "Required. The fingerprint of the derived image." + }, + "distance": { + "type": "integer", + "format": "int32", + "description": "Output only. The number of layers by which this image differs from the\nassociated image basis.", + "readOnly": true + }, + "layerInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Layer" + }, + "description": "This contains layer-specific metadata, if populated it has length\n\"distance\" and is ordered with [distance] being the layer immediately\nfollowing the base image and [1] being the final layer." + }, + "baseResourceUrl": { + "type": "string", + "description": "Output only. This contains the base image URL for the derived image\noccurrence.", + "readOnly": true + } + }, + "description": "Details of the derived image portion of the DockerImage relationship. This\nimage would be produced from a Dockerfile with FROM \u003cDockerImage.Basis in\nattached Note\u003e." + }, + "v1InTotoProvenance": { + "type": "object", + "properties": { + "builderConfig": { + "$ref": "#/definitions/v1BuilderConfig" + }, + "recipe": { + "$ref": "#/definitions/v1Recipe", + "description": "Identifies the configuration used for the build.\nWhen combined with materials, this SHOULD fully describe the build,\nsuch that re-running this recipe results in bit-for-bit identical output\n(if the build is reproducible)." + }, + "metadata": { + "$ref": "#/definitions/v1Metadata" + }, + "materials": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on.\nThis is considered to be incomplete unless metadata.completeness.materials is true. Unset or null is equivalent to empty." + } + } + }, + "v1InTotoStatement": { + "type": "object", + "properties": { + "_type": { + "type": "string", + "description": "Always `https://in-toto.io/Statement/v0.1`." + }, + "subject": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Subject" + } + }, + "predicateType": { + "type": "string", + "description": "`https://slsa.dev/provenance/v0.1` for SlsaProvenance." + }, + "provenance": { + "$ref": "#/definitions/v1InTotoProvenance" + }, + "slsaProvenance": { + "$ref": "#/definitions/v1SlsaProvenance" + }, + "slsaProvenanceZeroTwo": { + "$ref": "#/definitions/v1SlsaProvenanceZeroTwo" + } + }, + "description": "Spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement\nThe serialized InTotoStatement will be stored as Envelope.payload.\nEnvelope.payloadType is always \"application/vnd.in-toto+json\"." + }, + "v1Jwt": { + "type": "object", + "properties": { + "compactJwt": { + "type": "string", + "title": "The compact encoding of a JWS, which is always three base64 encoded strings\njoined by periods. For details, see:\nhttps://tools.ietf.org/html/rfc7515.html#section-3.1" + } + } + }, + "v1Layer": { + "type": "object", + "properties": { + "directive": { + "type": "string", + "description": "Required. The recovered Dockerfile directive used to construct this layer.\nSee https://docs.docker.com/engine/reference/builder/ for more information." + }, + "arguments": { + "type": "string", + "description": "The recovered arguments to the Dockerfile directive." + } + }, + "description": "Layer holds metadata specific to a layer of a Docker image." + }, + "v1License": { + "type": "object", + "properties": { + "expression": { + "type": "string", + "description": "Often a single license can be used to represent the licensing terms.\nSometimes it is necessary to include a choice of one or more licenses\nor some combination of license identifiers.\nExamples: \"LGPL-2.1-only OR MIT\", \"LGPL-2.1-only AND MIT\",\n\"GPL-2.0-or-later WITH Bison-exception-2.2\"." + }, + "comments": { + "type": "string", + "title": "Comments" + } + }, + "description": "License information." + }, + "v1ListNoteOccurrencesResponse": { + "type": "object", + "properties": { + "occurrences": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Occurrence" + }, + "description": "The occurrences attached to the specified note." + }, + "nextPageToken": { + "type": "string", + "description": "Token to provide to skip to a particular spot in the list." + } + }, + "description": "Response for listing occurrences for a note." + }, + "v1ListNotesResponse": { + "type": "object", + "properties": { + "notes": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Note" + }, + "description": "The notes requested." + }, + "nextPageToken": { + "type": "string", + "description": "The next pagination token in the list response. It should be used as\n`page_token` for the following request. An empty value means no more\nresults." + } + }, + "description": "Response for listing notes." + }, + "v1ListOccurrencesResponse": { + "type": "object", + "properties": { + "occurrences": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Occurrence" + }, + "description": "The occurrences requested." + }, + "nextPageToken": { + "type": "string", + "description": "The next pagination token in the list response. It should be used as\n`page_token` for the following request. An empty value means no more\nresults." + } + }, + "description": "Response for listing occurrences." + }, + "v1Metadata": { + "type": "object", + "properties": { + "buildInvocationId": { + "type": "string", + "description": "Identifies the particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis.\nThe value SHOULD be globally unique, per in-toto Provenance spec." + }, + "buildStartedOn": { + "type": "string", + "format": "date-time", + "description": "The timestamp of when the build started." + }, + "buildFinishedOn": { + "type": "string", + "format": "date-time", + "description": "The timestamp of when the build completed." + }, + "completeness": { + "$ref": "#/definitions/v1Completeness", + "description": "Indicates that the builder claims certain fields in this message to be complete." + }, + "reproducible": { + "type": "boolean", + "description": "If true, the builder claims that running the recipe on materials will produce bit-for-bit identical output." + } + }, + "description": "Other properties of the build." + }, + "v1NonCompliantFile": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Empty if `display_command` is set." + }, + "displayCommand": { + "type": "string", + "description": "Command to display the non-compliant files." + }, + "reason": { + "type": "string", + "description": "Explains why a file is non compliant for a CIS check." + } + }, + "description": "Details about files that caused a compliance check to fail." + }, + "v1Note": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Output only. The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "readOnly": true + }, + "shortDescription": { + "type": "string", + "description": "A one sentence description of this note." + }, + "longDescription": { + "type": "string", + "description": "A detailed description of this note." + }, + "kind": { + "$ref": "#/definitions/v1NoteKind", + "description": "Output only. The type of analysis. This field can be used as a filter in\nlist requests.", + "readOnly": true + }, + "relatedUrl": { + "type": "array", + "items": { + "$ref": "#/definitions/v1RelatedUrl" + }, + "description": "URLs associated with this note." + }, + "expirationTime": { + "type": "string", + "format": "date-time", + "description": "Time of expiration for this note. Empty if note does not expire." + }, + "createTime": { + "type": "string", + "format": "date-time", + "description": "Output only. The time this note was created. This field can be used as a\nfilter in list requests.", + "readOnly": true + }, + "updateTime": { + "type": "string", + "format": "date-time", + "description": "Output only. The time this note was last updated. This field can be used as\na filter in list requests.", + "readOnly": true + }, + "relatedNoteNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Other notes related to this note." + }, + "vulnerability": { + "$ref": "#/definitions/v1VulnerabilityNote", + "description": "A note describing a package vulnerability." + }, + "build": { + "$ref": "#/definitions/v1BuildNote", + "description": "A note describing build provenance for a verifiable build." + }, + "image": { + "$ref": "#/definitions/v1ImageNote", + "description": "A note describing a base image." + }, + "package": { + "$ref": "#/definitions/v1PackageNote", + "description": "A note describing a package hosted by various package managers." + }, + "deployment": { + "$ref": "#/definitions/v1DeploymentNote", + "description": "A note describing something that can be deployed." + }, + "discovery": { + "$ref": "#/definitions/v1DiscoveryNote", + "description": "A note describing the initial analysis of a resource." + }, + "attestation": { + "$ref": "#/definitions/v1AttestationNote", + "description": "A note describing an attestation role." + }, + "upgrade": { + "$ref": "#/definitions/v1UpgradeNote", + "description": "A note describing available package upgrades." + }, + "compliance": { + "$ref": "#/definitions/v1ComplianceNote", + "description": "A note describing a compliance check." + }, + "dsseAttestation": { + "$ref": "#/definitions/v1DSSEAttestationNote", + "description": "A note describing a dsse attestation note." + } + }, + "description": "A type of analysis that can be done for a resource." + }, + "v1NoteKind": { + "type": "string", + "enum": [ + "NOTE_KIND_UNSPECIFIED", + "VULNERABILITY", + "BUILD", + "IMAGE", + "PACKAGE", + "DEPLOYMENT", + "DISCOVERY", + "ATTESTATION", + "UPGRADE", + "COMPLIANCE", + "DSSE_ATTESTATION" + ], + "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" + }, + "v1Occurrence": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Output only. The name of the occurrence in the form of\n`projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", + "readOnly": true + }, + "resourceUri": { + "type": "string", + "description": "Required. Immutable. A URI that represents the resource for which the\noccurrence applies. For example,\n`https://gcr.io/project/image@sha256:123abc` for a Docker image." + }, + "noteName": { + "type": "string", + "description": "Required. Immutable. The analysis note associated with this occurrence, in\nthe form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. This field can be\nused as a filter in list requests." + }, + "kind": { + "$ref": "#/definitions/v1NoteKind", + "description": "Output only. This explicitly denotes which of the occurrence details are\nspecified. This field can be used as a filter in list requests.", + "readOnly": true + }, + "remediation": { + "type": "string", + "description": "A description of actions that can be taken to remedy the note." + }, + "createTime": { + "type": "string", + "format": "date-time", + "description": "Output only. The time this occurrence was created.", + "readOnly": true + }, + "updateTime": { + "type": "string", + "format": "date-time", + "description": "Output only. The time this occurrence was last updated.", + "readOnly": true + }, + "vulnerability": { + "$ref": "#/definitions/v1VulnerabilityOccurrence", + "description": "Describes a security vulnerability." + }, + "build": { + "$ref": "#/definitions/v1BuildOccurrence", + "description": "Describes a verifiable build." + }, + "image": { + "$ref": "#/definitions/v1ImageOccurrence", + "description": "Describes how this resource derives from the basis in the associated\nnote." + }, + "package": { + "$ref": "#/definitions/v1PackageOccurrence", + "description": "Describes the installation of a package on the linked resource." + }, + "deployment": { + "$ref": "#/definitions/v1DeploymentOccurrence", + "description": "Describes the deployment of an artifact on a runtime." + }, + "discovery": { + "$ref": "#/definitions/v1DiscoveryOccurrence", + "description": "Describes when a resource was discovered." + }, + "attestation": { + "$ref": "#/definitions/v1AttestationOccurrence", + "description": "Describes an attestation of an artifact." + }, + "upgrade": { + "$ref": "#/definitions/v1UpgradeOccurrence", + "description": "Describes an available package upgrade on the linked resource." + }, + "compliance": { + "$ref": "#/definitions/v1ComplianceOccurrence", + "description": "Describes a compliance violation on a linked resource." + }, + "dsseAttestation": { + "$ref": "#/definitions/v1DSSEAttestationOccurrence", + "description": "Describes an attestation of an artifact using dsse." + }, + "envelope": { + "$ref": "#/definitions/v1Envelope", + "title": "https://github.com/secure-systems-lab/dsse" + } + }, + "description": "An instance of an analysis type that has been found on a resource." + }, + "v1PackageNote": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the package.", + "required": [ + "name" + ] + }, + "distribution": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Distribution" + }, + "description": "Deprecated.\nThe various channels by which a package is distributed." + }, + "packageType": { + "type": "string", + "description": "The type of package; whether native or non native (e.g., ruby gems,\nnode.js packages, etc.)." + }, + "cpeUri": { + "type": "string", + "description": "The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)\ndenoting the package manager version distributing a package.\nThe cpe_uri will be blank for language packages." + }, + "architecture": { + "$ref": "#/definitions/v1Architecture", + "description": "The CPU architecture for which packages in this distribution channel were\nbuilt. Architecture will be blank for language packages." + }, + "version": { + "$ref": "#/definitions/v1Version", + "description": "The version of the package." + }, + "maintainer": { + "type": "string", + "description": "A freeform text denoting the maintainer of this package." + }, + "url": { + "type": "string", + "description": "The homepage for this package." + }, + "description": { + "type": "string", + "description": "The description of this package." + }, + "license": { + "$ref": "#/definitions/v1License", + "description": "Licenses that have been declared by the authors of the package." + }, + "digest": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Digest" + }, + "description": "Hash value, typically a file digest, that allows unique\nidentification a specific package." + } + }, + "description": "PackageNote represents a particular package version.", + "required": [ + "name" + ] + }, + "v1PackageOccurrence": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the installed package.", + "readOnly": true, + "required": [ + "name" + ] + }, + "location": { + "type": "array", + "items": { + "$ref": "#/definitions/grafeasv1Location" + }, + "description": "All of the places within the filesystem versions of this package\nhave been found." + }, + "packageType": { + "type": "string", + "description": "The type of package; whether native or non native (e.g., ruby gems,\nnode.js packages, etc.).", + "readOnly": true + }, + "cpeUri": { + "type": "string", + "description": "The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)\ndenoting the package manager version distributing a package.\nThe cpe_uri will be blank for language packages.", + "readOnly": true + }, + "architecture": { + "$ref": "#/definitions/v1Architecture", + "description": "The CPU architecture for which packages in this distribution channel were\nbuilt. Architecture will be blank for language packages." + }, + "license": { + "$ref": "#/definitions/v1License", + "description": "Licenses that have been declared by the authors of the package." + }, + "version": { + "$ref": "#/definitions/v1Version", + "description": "The version of the package." + } + }, + "description": "Details on how a particular software package was installed on a system.", + "required": [ + "name" + ] + }, + "v1ProjectRepoId": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "The ID of the project." + }, + "repoName": { + "type": "string", + "description": "The name of the repo. Leave empty for the default repo." + } + }, + "description": "Selects a repo using a Google Cloud Platform project ID (e.g.,\nwinged-cargo-31) and a repo name within that project." + }, + "v1Recipe": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials." + }, + "definedInMaterial": { + "type": "string", + "format": "int64", + "description": "Index in materials containing the recipe steps that are not implied by recipe.type.\nFor example, if the recipe type were \"make\", then this would point to the source containing the Makefile, not the make program itself.\nSet to -1 if the recipe doesn't come from a material, as zero is default unset value for int64." + }, + "entryPoint": { + "type": "string", + "description": "String identifying the entry point into the build.\nThis is often a path to a configuration file and/or a target label within that file.\nThe syntax and meaning are defined by recipe.type.\nFor example, if the recipe type were \"make\", then this would reference the directory in which to run make as well as which target to use." + }, + "arguments": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + }, + "description": "Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint.\nFor example, if the recipe type were \"make\", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint.\nSince the arguments field can greatly vary in structure, depending on the builder and recipe type, this is of form \"Any\"." + }, + "environment": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + }, + "description": "Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy.\nSince the environment field can greatly vary in structure, depending on the builder and recipe type, this is of form \"Any\"." + } + }, + "description": "Steps taken to build the artifact.\nFor a TaskRun, typically each container corresponds to one step in the recipe." + }, + "v1RelatedUrl": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "Specific URL associated with the resource." + }, + "label": { + "type": "string", + "description": "Label to describe usage of the URL." + } + }, + "description": "Metadata for any related URL information." + }, + "v1RepoId": { + "type": "object", + "properties": { + "projectRepoId": { + "$ref": "#/definitions/v1ProjectRepoId", + "description": "A combination of a project ID and a repo name." + }, + "uid": { + "type": "string", + "description": "A server-assigned, globally unique identifier." + } + }, + "description": "A unique identifier for a Cloud Repo." + }, + "v1Severity": { + "type": "string", + "enum": [ + "SEVERITY_UNSPECIFIED", + "MINIMAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "default": "SEVERITY_UNSPECIFIED", + "description": "Note provider assigned severity/impact ranking.\n\n - SEVERITY_UNSPECIFIED: Unknown.\n - MINIMAL: Minimal severity.\n - LOW: Low severity.\n - MEDIUM: Medium severity.\n - HIGH: High severity.\n - CRITICAL: Critical severity." + }, + "v1Signature": { + "type": "object", + "properties": { + "signature": { + "type": "string", + "format": "byte", + "description": "The content of the signature, an opaque bytestring.\nThe payload that this signature verifies MUST be unambiguously provided\nwith the Signature during verification. A wrapper message might provide\nthe payload explicitly. Alternatively, a message might have a canonical\nserialization that can always be unambiguously computed to derive the\npayload." + }, + "publicKeyId": { + "type": "string", + "description": "The identifier for the public key that verifies this signature.\n * The `public_key_id` is required.\n * The `public_key_id` SHOULD be an RFC3986 conformant URI.\n * When possible, the `public_key_id` SHOULD be an immutable reference,\n such as a cryptographic digest.\n\nExamples of valid `public_key_id`s:\n\nOpenPGP V4 public key fingerprint:\n * \"openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA\"\nSee https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr for more\ndetails on this scheme.\n\nRFC6920 digest-named SubjectPublicKeyInfo (digest of the DER\nserialization):\n * \"ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU\"\n * \"nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5\"" + } + }, + "description": "Verifiers (e.g. Kritis implementations) MUST verify signatures\nwith respect to the trust anchors defined in policy (e.g. a Kritis policy).\nTypically this means that the verifier has been configured with a map from\n`public_key_id` to public key material (and any required parameters, e.g.\nsigning algorithm).\n\nIn particular, verification implementations MUST NOT treat the signature\n`public_key_id` as anything more than a key lookup hint. The `public_key_id`\nDOES NOT validate or authenticate a public key; it only provides a mechanism\nfor quickly selecting a public key ALREADY CONFIGURED on the verifier through\na trusted channel. Verification implementations MUST reject signatures in any\nof the following circumstances:\n * The `public_key_id` is not recognized by the verifier.\n * The public key that `public_key_id` refers to does not verify the\n signature with respect to the payload.\n\nThe `signature` contents SHOULD NOT be \"attached\" (where the payload is\nincluded with the serialized `signature` bytes). Verifiers MUST ignore any\n\"attached\" payload and only verify signatures with respect to explicitly\nprovided payload (e.g. a `payload` field on the proto message that holds\nthis Signature, or the canonical serialization of the proto message that\nholds this signature)." + }, + "v1SlsaProvenance": { + "type": "object", + "properties": { + "builder": { + "$ref": "#/definitions/v1SlsaProvenanceSlsaBuilder" + }, + "recipe": { + "$ref": "#/definitions/SlsaProvenanceSlsaRecipe", + "description": "Identifies the configuration used for the build.\nWhen combined with materials, this SHOULD fully describe the build,\nsuch that re-running this recipe results in bit-for-bit identical output\n(if the build is reproducible)." + }, + "metadata": { + "$ref": "#/definitions/v1SlsaProvenanceSlsaMetadata" + }, + "materials": { + "type": "array", + "items": { + "$ref": "#/definitions/SlsaProvenanceMaterial" + }, + "description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on.\nThis is considered to be incomplete unless metadata.completeness.materials is true. Unset or null is equivalent to empty." + } + } + }, + "v1SlsaProvenanceSlsaBuilder": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "v1SlsaProvenanceSlsaCompleteness": { + "type": "object", + "properties": { + "arguments": { + "type": "boolean", + "description": "If true, the builder claims that recipe.arguments is complete, meaning that all external inputs are properly captured in the recipe." + }, + "environment": { + "type": "boolean", + "description": "If true, the builder claims that recipe.environment is claimed to be complete." + }, + "materials": { + "type": "boolean", + "description": "If true, the builder claims that materials are complete, usually through some controls to prevent network access. Sometimes called \"hermetic\"." + } + }, + "description": "Indicates that the builder claims certain fields in this message to be complete." + }, + "v1SlsaProvenanceSlsaMetadata": { + "type": "object", + "properties": { + "buildInvocationId": { + "type": "string", + "description": "Identifies the particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis.\nThe value SHOULD be globally unique, per in-toto Provenance spec." + }, + "buildStartedOn": { + "type": "string", + "format": "date-time", + "description": "The timestamp of when the build started." + }, + "buildFinishedOn": { + "type": "string", + "format": "date-time", + "description": "The timestamp of when the build completed." + }, + "completeness": { + "$ref": "#/definitions/v1SlsaProvenanceSlsaCompleteness", + "description": "Indicates that the builder claims certain fields in this message to be complete." + }, + "reproducible": { + "type": "boolean", + "description": "If true, the builder claims that running the recipe on materials will produce bit-for-bit identical output." + } + }, + "description": "Other properties of the build." + }, + "v1SlsaProvenanceZeroTwo": { + "type": "object", + "properties": { + "builder": { + "$ref": "#/definitions/v1SlsaProvenanceZeroTwoSlsaBuilder" + }, + "buildType": { + "type": "string" + }, + "invocation": { + "$ref": "#/definitions/SlsaProvenanceZeroTwoSlsaInvocation" + }, + "buildConfig": { + "type": "object" + }, + "metadata": { + "$ref": "#/definitions/v1SlsaProvenanceZeroTwoSlsaMetadata" + }, + "materials": { + "type": "array", + "items": { + "$ref": "#/definitions/SlsaProvenanceZeroTwoSlsaMaterial" + } + } + } + }, + "v1SlsaProvenanceZeroTwoSlsaBuilder": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "description": "Identifies the entity that executed the recipe, which is trusted to have\ncorrectly performed the operation and populated this provenance." + }, + "v1SlsaProvenanceZeroTwoSlsaCompleteness": { + "type": "object", + "properties": { + "parameters": { + "type": "boolean" + }, + "environment": { + "type": "boolean" + }, + "materials": { + "type": "boolean" + } + }, + "description": "Indicates that the builder claims certain fields in this message to be\ncomplete." + }, + "v1SlsaProvenanceZeroTwoSlsaMetadata": { + "type": "object", + "properties": { + "buildInvocationId": { + "type": "string" + }, + "buildStartedOn": { + "type": "string", + "format": "date-time" + }, + "buildFinishedOn": { + "type": "string", + "format": "date-time" + }, + "completeness": { + "$ref": "#/definitions/v1SlsaProvenanceZeroTwoSlsaCompleteness" + }, + "reproducible": { + "type": "boolean" + } + }, + "description": "Other properties of the build." + }, + "v1Source": { + "type": "object", + "properties": { + "artifactStorageSourceUri": { + "type": "string", + "description": "If provided, the input binary artifacts for the build came from this\nlocation." + }, + "fileHashes": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/v1FileHashes" + }, + "description": "Hash(es) of the build source, which can be used to verify that the original\nsource integrity was maintained in the build.\n\nThe keys to this map are file paths used as build source and the values\ncontain the hash values for those files.\n\nIf the build source came in a single package such as a gzipped tarfile\n(.tar.gz), the FileHash will be for the single path to that file." + }, + "context": { + "$ref": "#/definitions/v1SourceContext", + "description": "If provided, the source code used for the build came from this location." + }, + "additionalContexts": { + "type": "array", + "items": { + "$ref": "#/definitions/v1SourceContext" + }, + "description": "If provided, some of the source code used for the build may be found in\nthese locations, in the case where the source repository had multiple\nremotes or submodules. This list will not include the context specified in\nthe context field." + } + }, + "description": "Source describes the location of the source used for the build." + }, + "v1SourceContext": { + "type": "object", + "properties": { + "cloudRepo": { + "$ref": "#/definitions/v1CloudRepoSourceContext", + "description": "A SourceContext referring to a revision in a Google Cloud Source Repo." + }, + "gerrit": { + "$ref": "#/definitions/v1GerritSourceContext", + "description": "A SourceContext referring to a Gerrit project." + }, + "git": { + "$ref": "#/definitions/v1GitSourceContext", + "description": "A SourceContext referring to any third party Git repo (e.g., GitHub)." + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels with user defined metadata." + } + }, + "description": "A SourceContext is a reference to a tree of files. A SourceContext together\nwith a path point to a unique revision of a single file or directory." + }, + "v1Subject": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "digest": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "`\"\u003cALGORITHM\u003e\": \"\u003cHEX_VALUE\u003e\"`\nAlgorithms can be e.g. sha256, sha512\nSee https://github.com/in-toto/attestation/blob/main/spec/field_types.md#DigestSet" + } + } + }, + "v1UpgradeDistribution": { + "type": "object", + "properties": { + "cpeUri": { + "type": "string", + "description": "Required - The specific operating system this metadata applies to. See\nhttps://cpe.mitre.org/specification/." + }, + "classification": { + "type": "string", + "title": "The operating system classification of this Upgrade, as specified by the\nupstream operating system upgrade feed. For Windows the classification is\none of the category_ids listed at https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ff357803(v=vs.85)" + }, + "severity": { + "type": "string", + "description": "The severity as specified by the upstream operating system." + }, + "cve": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The cve tied to this Upgrade." + } + }, + "description": "The Upgrade Distribution represents metadata about the Upgrade for each\noperating system (CPE). Some distributions have additional metadata around\nupdates, classifying them into various categories and severities." + }, + "v1UpgradeNote": { + "type": "object", + "properties": { + "package": { + "type": "string", + "description": "Required for non-Windows OS. The package this Upgrade is for." + }, + "version": { + "$ref": "#/definitions/v1Version", + "description": "Required for non-Windows OS. The version of the package in machine + human\nreadable form." + }, + "distributions": { + "type": "array", + "items": { + "$ref": "#/definitions/v1UpgradeDistribution" + }, + "description": "Metadata about the upgrade for each specific operating system." + }, + "windowsUpdate": { + "$ref": "#/definitions/v1WindowsUpdate", + "description": "Required for Windows OS. Represents the metadata about the Windows update." + } + }, + "description": "An Upgrade Note represents a potential upgrade of a package to a given\nversion. For each package version combination (i.e. bash 4.0, bash 4.1,\nbash 4.1.2), there will be an Upgrade Note. For Windows, windows_update field\nrepresents the information related to the update." + }, + "v1UpgradeOccurrence": { + "type": "object", + "properties": { + "package": { + "type": "string", + "description": "Required for non-Windows OS. The package this Upgrade is for." + }, + "parsedVersion": { + "$ref": "#/definitions/v1Version", + "description": "Required for non-Windows OS. The version of the package in a machine +\nhuman readable form." + }, + "distribution": { + "$ref": "#/definitions/v1UpgradeDistribution", + "description": "Metadata about the upgrade for available for the specific operating system\nfor the resource_url. This allows efficient filtering, as well as\nmaking it easier to use the occurrence." + }, + "windowsUpdate": { + "$ref": "#/definitions/v1WindowsUpdate", + "description": "Required for Windows OS. Represents the metadata about the Windows update." + } + }, + "description": "An Upgrade Occurrence represents that a specific resource_url could install a\nspecific upgrade. This presence is supplied via local sources (i.e. it is\npresent in the mirror and the running system has noticed its availability).\nFor Windows, both distribution and windows_update contain information for the\nWindows update." + }, + "v1Version": { + "type": "object", + "properties": { + "epoch": { + "type": "integer", + "format": "int32", + "description": "Used to correct mistakes in the version numbering scheme." + }, + "name": { + "type": "string", + "description": "Required only when version kind is NORMAL. The main part of the version\nname." + }, + "revision": { + "type": "string", + "description": "The iteration of the package build from the above version." + }, + "inclusive": { + "type": "boolean", + "description": "Whether this version is specifying part of an inclusive range. Grafeas\ndoes not have the capability to specify version ranges; instead we have\nfields that specify start version and end versions. At times this is\ninsufficient - we also need to specify whether the version is included in\nthe range or is excluded from the range. This boolean is expected to be set\nto true when the version is included in a range." + }, + "kind": { + "$ref": "#/definitions/VersionVersionKind", + "description": "Required. Distinguishes between sentinel MIN/MAX versions and normal\nversions." + }, + "fullName": { + "type": "string", + "description": "Human readable version string. This string is of the form\n\u003cepoch\u003e:\u003cname\u003e-\u003crevision\u003e and is only set when kind is NORMAL." + } + }, + "description": "Version contains structured information about the version of a package." + }, + "v1VulnerabilityNote": { + "type": "object", + "properties": { + "cvssScore": { + "type": "number", + "format": "float", + "description": "The CVSS score of this vulnerability. CVSS score is on a scale of 0 - 10\nwhere 0 indicates low severity and 10 indicates high severity." + }, + "severity": { + "$ref": "#/definitions/v1Severity", + "description": "The note provider assigned severity of this vulnerability." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/VulnerabilityNoteDetail" + }, + "description": "Details of all known distros and packages affected by this vulnerability." + }, + "cvssV3": { + "$ref": "#/definitions/v1CVSSv3", + "description": "The full description of the CVSSv3 for this vulnerability." + }, + "windowsDetails": { + "type": "array", + "items": { + "$ref": "#/definitions/VulnerabilityNoteWindowsDetail" + }, + "description": "Windows details get their own format because the information format and\nmodel don't match a normal detail. Specifically Windows updates are done as\npatches, thus Windows vulnerabilities really are a missing package, rather\nthan a package being at an incorrect version." + }, + "sourceUpdateTime": { + "type": "string", + "format": "date-time", + "description": "The time this information was last changed at the source. This is an\nupstream timestamp from the underlying information source - e.g. Ubuntu\nsecurity tracker." + } + }, + "description": "A security vulnerability that can be found in resources." + }, + "v1VulnerabilityOccurrence": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of package; whether native or non native (e.g., ruby gems, node.js\npackages, etc.)." + }, + "severity": { + "$ref": "#/definitions/v1Severity", + "description": "Output only. The note provider assigned severity of this vulnerability.", + "readOnly": true + }, + "cvssScore": { + "type": "number", + "format": "float", + "description": "Output only. The CVSS score of this vulnerability. CVSS score is on a\nscale of 0 - 10 where 0 indicates low severity and 10 indicates high\nseverity.", + "readOnly": true + }, + "cvssv3": { + "$ref": "#/definitions/v1CVSS", + "description": "The cvss v3 score for the vulnerability." + }, + "packageIssue": { + "type": "array", + "items": { + "$ref": "#/definitions/VulnerabilityOccurrencePackageIssue" + }, + "description": "Required. The set of affected locations and their fixes (if available)\nwithin the associated resource." + }, + "shortDescription": { + "type": "string", + "description": "Output only. A one sentence description of this vulnerability.", + "readOnly": true + }, + "longDescription": { + "type": "string", + "description": "Output only. A detailed description of this vulnerability.", + "readOnly": true + }, + "relatedUrls": { + "type": "array", + "items": { + "$ref": "#/definitions/v1RelatedUrl" + }, + "description": "Output only. URLs related to this vulnerability.", + "readOnly": true + }, + "effectiveSeverity": { + "$ref": "#/definitions/v1Severity", + "description": "The distro assigned severity for this vulnerability when it is available,\notherwise this is the note provider assigned severity.\n\nWhen there are multiple PackageIssues for this vulnerability, they can have\ndifferent effective severities because some might be provided by the distro\nwhile others are provided by the language ecosystem for a language pack.\nFor this reason, it is advised to use the effective severity on the\nPackageIssue level. In the case where multiple PackageIssues have differing\neffective severities, this field should be the highest severity for any of\nthe PackageIssues." + }, + "fixAvailable": { + "type": "boolean", + "description": "Output only. Whether at least one of the affected packages has a fix\navailable.", + "readOnly": true + } + }, + "description": "An occurrence of a severity vulnerability on a resource." + }, + "v1WindowsUpdate": { + "type": "object", + "properties": { + "identity": { + "$ref": "#/definitions/WindowsUpdateIdentity", + "description": "Required - The unique identifier for the update." + }, + "title": { + "type": "string", + "description": "The localized title of the update." + }, + "description": { + "type": "string", + "description": "The localized description of the update." + }, + "categories": { + "type": "array", + "items": { + "$ref": "#/definitions/WindowsUpdateCategory" + }, + "description": "The list of categories to which the update belongs." + }, + "kbArticleIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The Microsoft Knowledge Base article IDs that are associated with the\nupdate." + }, + "supportUrl": { + "type": "string", + "description": "The hyperlink to the support information for the update." + }, + "lastPublishedTimestamp": { + "type": "string", + "format": "date-time", + "description": "The last published timestamp of the update." + } + }, + "description": "Windows Update represents the metadata about the update for the Windows\noperating system. The fields in this message come from the Windows Update API\ndocumented at\nhttps://docs.microsoft.com/en-us/windows/win32/api/wuapi/nn-wuapi-iupdate." + } + } +} diff --git a/grafeas/v1/vulnerability.proto b/grafeas/v1/vulnerability.proto index 434e14983..70ab550af 100644 --- a/grafeas/v1/vulnerability.proto +++ b/grafeas/v1/vulnerability.proto @@ -209,6 +209,9 @@ message VulnerabilityOccurrence { // available. grafeas.v1.Severity effective_severity = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The location at which this package was found. + repeated FileLocation file_location = 10; } // Output only. A one sentence description of this vulnerability. diff --git a/repository_rules.bzl b/repository_rules.bzl index ecccc7673..feb334eb7 100644 --- a/repository_rules.bzl +++ b/repository_rules.bzl @@ -65,6 +65,7 @@ def switched_rules_by_language( python = False, ruby = False, csharp = False, + go_test = False, rules_override = {}): """Switches rules in the generated imports.bzl between no-op and the actual implementation. @@ -106,6 +107,9 @@ def switched_rules_by_language( ruby (bool): Enable Ruby specific rules. False by default. python (bool): Enable Python-specific rules. False by default. csharp (bool): Enable C# specific rules. False by default. + go_test (bool): A special temporary flag to disable only go_test targets. This is needed to + support rules_go version 0.24.0+, which made importmap duplicates an error instead of a + warning. More details: https://github.com/bazelbuild/rules_go/issues/1986. rules_override (dict): Custom rule overrides (for advanced usage). """ @@ -162,6 +166,10 @@ def switched_rules_by_language( python and grpc and gapic, "@gapic_generator_python//rules_python_gapic:py_gapic.bzl", ) + rules["py_test"] = _switch( + python and grpc and gapic, + "native.py_test", + ) rules["py_gapic_assembly_pkg"] = _switch( python and grpc and gapic, "@gapic_generator_python//rules_python_gapic:py_gapic_pkg.bzl", @@ -179,7 +187,7 @@ def switched_rules_by_language( "@io_bazel_rules_go//go:def.bzl", ) rules["go_test"] = _switch( - go and grpc and gapic, + go and grpc and gapic and go_test, "@io_bazel_rules_go//go:def.bzl", ) rules["go_gapic_library"] = _switch(